From 10ba13d3b7676c514332fde9c1a0ad742c36795b Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 12:25:55 -0700 Subject: [PATCH 01/53] schematic generation --- .github/workflows/general.yml | 6 + build/README.md | 1 + doc/d3-hwschematic-assets/LICENSE | 277 + .../d3-hwschematic-dark.css | 96 + doc/d3-hwschematic-assets/d3-hwschematic.css | 91 + doc/d3-hwschematic-assets/d3-hwschematic.js | 2887 + doc/d3-hwschematic-assets/d3/LICENSE | 27 + doc/d3-hwschematic-assets/d3/dist/d3.js | 19708 +++ doc/d3-hwschematic-assets/d3/dist/d3.min.js | 2 + doc/d3-hwschematic-assets/d3/dist/d3.node.js | 278 + doc/d3-hwschematic-assets/d3/dist/package.js | 16 + doc/d3-hwschematic-assets/elkjs/LICENSE.md | 264 + doc/d3-hwschematic-assets/elkjs/README.md | 378 + .../elkjs/lib/elk-api.d.ts | 131 + .../elkjs/lib/elk-api.js | 224 + .../elkjs/lib/elk-worker.d.ts | 1 + .../elkjs/lib/elk-worker.js | 100643 +++++++++++++++ .../elkjs/lib/elk-worker.min.js | 6149 + .../elkjs/lib/elk.bundled.d.ts | 13 + .../elkjs/lib/elk.bundled.js | 6444 + doc/d3-hwschematic-assets/elkjs/lib/main.d.ts | 13 + doc/d3-hwschematic-assets/elkjs/lib/main.js | 67 + doc/d3-hwschematic-assets/elkjs/package.json | 53 + test/arbiter_test.dart | 14 + test/fifo_test.dart | 23 + test/one_hot_test.dart | 25 +- test/rf_test.dart | 27 + test/rotate_test.dart | 13 + tool/converters/json_html.sh | 100 + tool/converters/verilog_html.sh | 25 + tool/converters/verilog_json.sh | 30 + tool/gh_actions/create_htmls.sh | 10 + tool/gh_actions/install_d3_hwschematic.sh | 26 + tool/gh_actions/install_synthesis.sh | 36 + tool/gh_codespaces/run_setup.sh | 3 + tool/synthesize.sh | 34 + 36 files changed, 138134 insertions(+), 1 deletion(-) create mode 100644 build/README.md create mode 100644 doc/d3-hwschematic-assets/LICENSE create mode 100644 doc/d3-hwschematic-assets/d3-hwschematic-dark.css create mode 100644 doc/d3-hwschematic-assets/d3-hwschematic.css create mode 100644 doc/d3-hwschematic-assets/d3-hwschematic.js create mode 100644 doc/d3-hwschematic-assets/d3/LICENSE create mode 100644 doc/d3-hwschematic-assets/d3/dist/d3.js create mode 100644 doc/d3-hwschematic-assets/d3/dist/d3.min.js create mode 100644 doc/d3-hwschematic-assets/d3/dist/d3.node.js create mode 100644 doc/d3-hwschematic-assets/d3/dist/package.js create mode 100644 doc/d3-hwschematic-assets/elkjs/LICENSE.md create mode 100644 doc/d3-hwschematic-assets/elkjs/README.md create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-api.js create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/main.d.ts create mode 100644 doc/d3-hwschematic-assets/elkjs/lib/main.js create mode 100644 doc/d3-hwschematic-assets/elkjs/package.json create mode 100755 tool/converters/json_html.sh create mode 100755 tool/converters/verilog_html.sh create mode 100755 tool/converters/verilog_json.sh create mode 100755 tool/gh_actions/create_htmls.sh create mode 100755 tool/gh_actions/install_d3_hwschematic.sh create mode 100755 tool/gh_actions/install_synthesis.sh create mode 100755 tool/synthesize.sh diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 2df04091..fbd1cb88 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -67,6 +67,12 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh + - name: Run project tests + run: tool/gh_actions/run_tests.sh + + - name: Generate HTML for examples + run: tool/gh_actions/create_htmls.sh + - name: Generate project documentation run: tool/gh_actions/generate_documentation.sh diff --git a/build/README.md b/build/README.md new file mode 100644 index 00000000..567fed47 --- /dev/null +++ b/build/README.md @@ -0,0 +1 @@ +This directory is for Verilog output and HTML conversion of components. diff --git a/doc/d3-hwschematic-assets/LICENSE b/doc/d3-hwschematic-assets/LICENSE new file mode 100644 index 00000000..d3087e4c --- /dev/null +++ b/doc/d3-hwschematic-assets/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/doc/d3-hwschematic-assets/d3-hwschematic-dark.css b/doc/d3-hwschematic-assets/d3-hwschematic-dark.css new file mode 100644 index 00000000..de7803b7 --- /dev/null +++ b/doc/d3-hwschematic-assets/d3-hwschematic-dark.css @@ -0,0 +1,96 @@ +.d3-hwschematic text { + font-family: monospace; +} + +.d3-hwschematic .node { + stroke: #BDBDBD; + stroke-width: 1px; + fill: #e6ffff; + border: 2px; +} + + +.d3-hwschematic .node-0 { + fill: white; +} + +.d3-hwschematic .node-1 { +} + +.d3-hwschematic .node text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic.node-operator { + stroke: lime; + stroke-width: 1px; + fill: aquamarine; + border: 2px; +} + +.d3-hwschematic.node-operator text { + font-style: normal; + font-family: monospace; + fill: lime; + stroke-width: 0; +} + +.d3-hwschematic .node-external-port { + stroke: lime; + stroke-width: 0; + fill: #BDBDBD; + border: 1px; +} + +.d3-hwschematic .node-external-port text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic .link { + stroke: lime; + fill: none; +} + +.d3-hwschematic .junction-point { + stroke: lime; + fill: lime; +} + +.d3-hwschematic .link-selected { + stroke: orange; + fill: none; +} + +.d3-hwschematic .link-wrap { + stroke-width: 8; + fill: none; + stroke: transparent; + stroke-opacity: .6; +} +.d3-hwschematic .link-wrap.link-wrap-activated { + stroke: deepskyblue; +} + +.d3-hwschematic .port { + stroke: lime; + opacity: .6; +} + +.d3-hwschematic tspan { + white-space: pre; +} + +.d3-hwschematic-tooltip { + z-index: 2; + background: cornsilk; + border: 1px solid black; + border-radius: 5px; + padding: 5px; + position: fixed; +} \ No newline at end of file diff --git a/doc/d3-hwschematic-assets/d3-hwschematic.css b/doc/d3-hwschematic-assets/d3-hwschematic.css new file mode 100644 index 00000000..37ad3ba2 --- /dev/null +++ b/doc/d3-hwschematic-assets/d3-hwschematic.css @@ -0,0 +1,91 @@ +.d3-hwschematic text { + font-family: monospace; +} + +.d3-hwschematic .node { + stroke: #BDBDBD; + stroke-width: 1px; + fill: #e6ffff; + border: 2px; +} + + +.d3-hwschematic .node-0 { + fill: white; +} + +.d3-hwschematic .node-1 { +} + +.d3-hwschematic .node text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic.node-operator { + stroke: BLACK; + stroke-width: 1px; + fill: aquamarine; + border: 2px; +} + +.d3-hwschematic.node-operator text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic .node-external-port { + stroke: #000; + stroke-width: 0; + fill: #BDBDBD; + border: 1px; +} + +.d3-hwschematic .node-external-port text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic .link { + stroke: #000; + fill: none; +} + +.d3-hwschematic .link-selected { + stroke: orange; + fill: none; +} + +.d3-hwschematic .link-wrap { + stroke-width: 8; + fill: none; + stroke: transparent; + stroke-opacity: .6; +} +.d3-hwschematic .link-wrap.link-wrap-activated { + stroke: deepskyblue; +} + +.d3-hwschematic .port { + stroke: #000; + opacity: .6; +} + +.d3-hwschematic tspan { + white-space: pre; +} + +.d3-hwschematic-tooltip { + z-index: 2; + background: cornsilk; + border: 1px solid black; + border-radius: 5px; + padding: 5px; + position: fixed; +} \ No newline at end of file diff --git a/doc/d3-hwschematic-assets/d3-hwschematic.js b/doc/d3-hwschematic-assets/d3-hwschematic.js new file mode 100644 index 00000000..7d12d9fd --- /dev/null +++ b/doc/d3-hwschematic-assets/d3-hwschematic.js @@ -0,0 +1,2887 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3'), require('elkjs')) : + typeof define === 'function' && define.amd ? define(['exports', 'd3', 'elkjs'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.ELK)); +})(this, (function (exports, d3, ELK) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + + var d3__namespace = /*#__PURE__*/_interopNamespace(d3); + var ELK__default = /*#__PURE__*/_interopDefaultLegacy(ELK); + + var PORT_MARKERS = { + "WEST": { + "INPUT": "#westInPortMarker", + "OUTPUT": "#westOutPortMarker"}, + "EAST": { + "INPUT": "#eastInPortMarker", + "OUTPUT": "#eastOutPortMarker"}, + "NORTH": { + "INPUT": "#northInPortMarker", + "OUTPUT": "#northOutPortMarker"}, + "SOUTH": { + "INPUT": "#southInPortMarker" , + "OUTPUT": "#southOutPortMarker"}, + }; + + function addMarkers(defs, PORT_PIN_SIZE) { + // real size of marker + var w = 7; + var h = 10; + + function addMarker(id, arrowTranslate, arrowRotate=0) { + var rightArrow = "M 0 4 2 4 2 0 7 5 2 10 2 6 0 6 Z"; + var trans = ""; + + if (arrowTranslate[0] !== 0 || arrowTranslate[1] !== 0) + trans += "translate(" + arrowTranslate[0] + ", " + arrowTranslate[1] + ")"; + + if (arrowRotate !== 0) + trans += "rotate(" + arrowRotate + ")"; + + var cont = defs.append("g"); + + cont + .attr("id", id) + .attr("class", "port") + .append("path") + .attr("d", rightArrow); + + if (trans) + cont + .attr("transform", trans); + } + + var horizYOffset = (PORT_PIN_SIZE[1] - h) * 0.5; + var horizYOffset2 = (PORT_PIN_SIZE[1] + h) * 0.5; + + var vertXOffset = -(PORT_PIN_SIZE[1] - w) * 0.5; + addMarker("westInPortMarker", [0, horizYOffset]); + addMarker("westOutPortMarker",[w, horizYOffset2], 180); + + addMarker("eastInPortMarker", [w, horizYOffset2], 180); + addMarker("eastOutPortMarker",[0, horizYOffset]); + + addMarker("northInPortMarker", [vertXOffset, -w], 90); + addMarker("northOutPortMarker",[vertXOffset, 0], 270); + + addMarker("southInPortMarker", [vertXOffset, w], 270); + addMarker("southOutPortMarker",[vertXOffset, 0], 90); + } + + function getIOMarker(d) { + var side = d.properties.side; + var portType = d.direction; + var marker = PORT_MARKERS[side][portType]; + if (marker === undefined) { + throw new Error("Wrong side, portType", side, portType) + } + return marker; + } + + function portLevel(port){ + if(!port.parent) return 0; + else { + return portLevel(port.parent)+1; + } + + } + + /* + * Basic renderer which renders node as a box with ports, optionally with the body text + */ + class GenericNodeRenderer { + /** + * @param schematic instance of HwSchematic + **/ + constructor(schematic) { + this.schematic = schematic; + } + /** + * check if this selector should be used for this node + **/ + selector(node) { + // always return true, because this is a default renderer which just renders a box with ports + return true; + } + + getNodeLabelWidth(d) { + var schematic = this.schematic; + var widthOfText = schematic.widthOfText.bind(schematic); + return widthOfText(d.hwMeta.name); + } + + /** + * Init bodyText and resolve size of node from body text and ports + * + * @param d component node + * + */ + initNodeSizes(d) { + var schematic = this.schematic; + if (d.properties["org.eclipse.elk.noLayout"]) + return; + var widthOfText = schematic.widthOfText.bind(schematic); + + var labelW = this.getNodeLabelWidth(d); + var max = Math.max; + var bodyTextSize = this.initBodyTextLines(d); + const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; + bodyTextSize[0] = Math.min(bodyTextSize[0], MBT[0]); + bodyTextSize[1] = Math.min(bodyTextSize[1], MBT[1]); + + // {PortSide: (portCnt, portWidth)} + var portDim = { + "WEST": [0, 0], + "EAST": [0, 0], + "SOUTH": [0, 0], + "NORTH": [0, 0] + }; + var PORT_PIN_SIZE_x = schematic.PORT_PIN_SIZE[0], + PORT_PIN_SIZE_y = schematic.PORT_PIN_SIZE[1]; + var CHAR_WIDTH = schematic.CHAR_WIDTH; + if (d.ports != null) + d.ports.forEach(function(p) { + var t = p.properties.side; + var indent = 0; + if (portLevel(p) > 0) + indent = (portLevel(p)+1) * CHAR_WIDTH; + var portW = widthOfText(p.hwMeta.name) + indent; + var pDim = portDim[t]; + if (pDim === undefined) + throw new Error(t); + pDim[0]++; + pDim[1] = max(pDim[1], portW); + + // dimension of connection pin + p.width = PORT_PIN_SIZE_x; + p.height = PORT_PIN_SIZE_y; + }); + + var west = portDim["WEST"], + east = portDim["EAST"], + south = portDim["SOUTH"], + north = portDim["NORTH"]; + + var portColums = 0; + if (west[0] && west[1] > 0) + portColums += 1; + if (east[0] && east[1] > 0) + portColums += 1; + + var middleSpacing = 0; + if (portColums == 2) + middleSpacing = schematic.NODE_MIDDLE_PORT_SPACING; + var portW = max(west[1], east[1]); + + d.portLabelWidth = portW; + d.width = max(portW * portColums + middleSpacing, labelW, + max(south[0], north[0]) * schematic.PORT_HEIGHT) + + bodyTextSize[0] + CHAR_WIDTH; + d.height = max(max(west[0], east[0]) * schematic.PORT_HEIGHT, + bodyTextSize[1], + max(south[1], north[1]) * CHAR_WIDTH); + } + + /** + * Split bodyText of one to lines and resolve dimensions of body text + * + * @param d component node + */ + initBodyTextLines(d) { + var schematic = this.schematic; + var max = Math.max; + var bt = d.hwMeta.bodyText; + if (bt) { + if (typeof bt === "string") { + bt = d.hwMeta.bodyText = bt.split("\n"); + } + var bodyTextW = 0; + bt.forEach(function(line) { + bodyTextW = max(bodyTextW, line.length); + }); + bodyTextW *= schematic.CHAR_WIDTH; + var bodyTextH = bt.length * schematic.CHAR_HEIGHT; + } else { + var bodyTextW = 0; + var bodyTextH = 0; + } + var pad = schematic.BODY_TEXT_PADDING; + if (bodyTextW > 0) + bodyTextW += pad[1] + pad[3]; + if (bodyTextH > 0) + bodyTextH += pad[0] + pad[2]; + return [bodyTextW, bodyTextH]; + } + + /** + * @param bodyTexts list of strings + */ + renderTextLines(bodyTexts) { + var schematic = this.schematic; + const padTop = schematic.BODY_TEXT_PADDING[0]; + const padLeft = schematic.BODY_TEXT_PADDING[3]; + const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; + const CHAR_WIDTH = schematic.CHAR_WIDTH; + const CHAR_HEIGHT = schematic.CHAR_HEIGHT; + + bodyTexts.each(function() { + var bodyText = d3__namespace.select(this); + var d = bodyText.data()[0]; + var bodyTextLines = d.hwMeta.bodyText; + var _MBT = [MBT[0] / CHAR_WIDTH, MBT[1] / CHAR_HEIGHT]; + + if (bodyTextLines && (!d.children + || d.children.length == 0)) { + bodyTextLines.forEach(function(line, dy) { + if (line.length > _MBT[0]) + line = line.slice(0, _MBT[0] - 3) + "..."; + if (dy > _MBT[1]) + return; + bodyText + .append("tspan") + .attr("x", d.portLabelWidth + padLeft) + .attr("y", padTop) + .attr("dy", dy + "em") + .text(line); + }); + } + }); + } + + /** + * Prepare node before ELK processing + * */ + prepare(node) { + this.initNodeSizes(node); + } + + /** + * Render svg of node + * + * @param root root svg element where nodes should be rendered + * @param nodeG svg g for each node with data binded + * */ + render(root, nodeG) { + var node = nodeG + .attr("class", function(d) { + var cssClass; + if (d.hwMeta && d.hwMeta.isExternalPort) { + cssClass = "node-external-port"; + } else { + let depth = 0; + let parent = d.hwMeta.parent; + while (parent) { + ++depth; + parent = parent.hwMeta.parent; + } + if (depth % 2 === 0) { + cssClass = "node node-0"; + } else { + cssClass = "node node-1"; + } + } + if (d.hwMeta.cssClass) { + cssClass += " " + d.hwMeta.cssClass; + } + return cssClass; + }) + .attr("style", function(d) { return d.hwMeta.cssStyle; }); + var nodeBody = node.append("rect"); + // set dimensions and style of node + nodeBody + .attr("width", function(d) { return d.width }) + .attr("height", function(d) { return d.height }) + .attr("rx", 5) // rounded corners + .attr("ry", 5); + + // apply node positions + node + .attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }); + + // spot node label + node.append("text") + .text(function(d) { + if (d.hwMeta && !d.hwMeta.isExternalPort) { + return d.hwMeta.name; + } else { + return ""; + } + }); + + // spot node body text + node.append("text") + .call(this.renderTextLines.bind(this)); + + this.renderPorts(node); + } + + renderPorts(node) { + var schematic = this.schematic; + var PORT_HEIGHT = schematic.PORT_HEIGHT; + var CHAR_WIDTH = schematic.CHAR_WIDTH; + var portG = node.selectAll(".port") + .data(function(d) { + return d.ports || []; + }) + .enter() + .append("g") + .attr("style", (d) => d.hwMeta.cssStyle) + .attr("class", (d) => { + if (d.hwMeta.cssStyle) { + return "port " + d.hwMeta.cssClass; + } else { + return "port"; + } + }); + + // apply port positions + portG + .attr("transform", function(d) { + return "translate(" + d.x + "," + d.y + ")" + }); + + node.each(function(d) { + var ignorePortLabel = typeof d.children !== "undefined"; + if (d.ports != null) { + d.ports.forEach(function(p) { + p.ignoreLabel = ignorePortLabel; + }); + } + }); + + // spot port name + portG.append("text") + .text(function(d, i) { + /*var next_d = port_data[i+1]; + if (next_d && next_d.hwMeta.level > d.hwMeta.level) { + console.log(d.hwMeta.name); + //d.hwMeta.name=toString("+"); + } + */ + if (d.ignoreLabel) + return ""; + else if (d.parent) { + var indent = '-'.repeat(portLevel(d)); + var side = d.properties.side; + if (side == "WEST") { + return indent + d.hwMeta.name; } else if (side == "EAST") { + return d.hwMeta.name + indent; + } else { + throw new Error(side); + } + } else + return d.hwMeta.name; + }) + .attr("x", function(d) { + var side = d.properties.side; + if (side == "WEST") { + return 7; + } else if (side == "EAST") { + if (typeof this.getBBox == "undefined") { + // JSDOM under nodejs + return -this.textContent.length * CHAR_WIDTH - CHAR_WIDTH / 2 + } + return -this.getBBox().width - CHAR_WIDTH / 2; + } else if (side == "NORTH") { + return 0; + } else if (side == "SOUTH") { + return 0; + } else { + throw new Error(side); + } + }) + .attr("y", PORT_HEIGHT * 0.75); + + // spot input/output marker + portG.append("use") + .attr("href", getIOMarker); + } + } + + /** + * Container for node renderer instances. + * This object initiates the node to renderer binding process in prepare() + * and executes node rendering in render() + */ + class NodeRendererContainer { + constructor() { + this.renderers = []; + } + + // add new renderer + registerRenderer(renderer) { + var rs = this.renderers; + for (var i = 0; i < rs.length; i++) { + var r = rs[i]; + if (r.constructor === GenericNodeRenderer) { + // insert custom renderer before GenericNodeRenderer + // to prevent GenericNodeRenderer.selector from prematurely halting renderers.some + rs.splice(i, 0, renderer); + return; + } + } + rs.push(renderer); + } + + // Bind node to renderer recursively + prepare(node) { + var r = null; + this.renderers.some(function(ren) { + if (ren.selector(node)) + r = ren; + return r != null; + }); + if (r == null) { + throw new Error("Can not resolve renderer for node " + node); + } + node.hwMeta.renderer = r; + r.prepare(node); + var prep = this.prepare.bind(this); + if (node.children) { + node.children.forEach(prep); + } + if (node._children) { + node._children.forEach(prep); + } + } + + // Render all nodes using selected renderer + render(root, nodeG) { + var renderers = this.renderers; + var nodesForRenderer = renderers.map(() => []); + nodeG.each(function(d) { + var n = this; + renderers.forEach(function(r, i) { + if (d.hwMeta.renderer === r) { + nodesForRenderer[i].push(n); + } + }); + }); + nodesForRenderer.forEach(function(nodes, i) { + if (nodes.length) { + nodes = d3__namespace.selectAll(nodes); + renderers[i].render(root, nodes); + } + }); + } + } + + /** + * Library of functions which creates shapes of operator nodes (gate symbols) + **/ + + + /** + * Draw a circle for arithmetic nodes + */ + function nodeCircle(root) { + root.append("circle") + .attr("r", "12.5") + .attr("cx", "12.5") + .attr("cy", "12.5"); + } + + /** + * Draw a negation circle for nodes like NOT, NAND, NOR, etc... + */ + function negationCircle(root, x, y) { + root.append("circle") + .attr("cx", x) + .attr("cy", y) + .attr("r", "3"); + } + + function nodeCircleWithText(root, text) { + // width="25" height="25" + var tl = text.length; + if (tl > 2) { + throw new Error("Text too big for small node circle"); + } + var x = 8; + if (tl === 2) + x = 4; + + nodeCircle(root); + root.append("text") + .attr("x", x) + .attr("y", 16) + .text(text); + } + + function nodeBiggerCircleWithText(root, text) { + // width="25" height="25" + var tl = text.length; + if (tl > 6) { + throw new Error("Text too big for small node circle"); + } + var x = 6; + + root.append("circle") + .attr("r", "25") + .attr("cx", "25") + .attr("cy", "25"); + root.append("text") + .attr("x", x) + .attr("y", 28.5) + .text(text); + } + function operatorBox(root) { + root.append("rect") + .attr("width", "25") + .attr("height", "25") + .attr("x", "0") + .attr("y", "0"); + } + + + /** + * Draw a AND gate symbol + */ + function AND(root, addName = true) { + // width="30" height="25" + var g = root.append("g"); + g.append("path") + .attr("d", "M0,0 L0,25 L15,25 A15 12.5 0 0 0 15,0 Z"); + g.attr("transform", "scale(0.8) translate(0, 3)"); + if (addName) + root.append("text") + .attr("x", 8) + .attr("y", 16) + .text("&"); + return g; + } + + /** + * Draw a NAND gate symbol + */ + function NAND(root) { + // width="30" height="25" + AND(root, false); + negationCircle(root, 34, 12.5); + } + + + var OR_SHAPE_PATH = "M3,0 A30 25 0 0 1 3,25 A30 25 0 0 0 33,12.5 A30 25 0 0 0 3,0 z"; + /** + * Draw a OR gate symbol + */ + function OR(root, addName = true) { + // width="30" height="25" + var g = root.append("g"); + g.append("path") + .attr("d", OR_SHAPE_PATH); + g.attr("transform", "scale(0.8) translate(0, 3)"); + if (addName) + root.append("text") + .attr("x", 5) + .attr("y", 16) + .text("or"); + return g; + } + + /** + * Draw a NOR gate symbol + */ + function NOR(root) { + // width="33" height="25" + var g = OR(root, false); + g.append("circle") + .attr("cx", "34") + .attr("cy", "12.5") + .attr("r", "3"); + root.append("text") + .attr("x", 5) + .attr("y", 16) + .text("!|"); + } + + + /** + * Draw a XOR gate symbol + */ + function XOR(root) { + var g = OR(root, false); + g.append("path") + .attr("d", "M0,0 A30 25 0 0 1 0,25"); + root.append("text") + .attr("x", 8) + .attr("y", 16) + .text("^"); + + return g; + } + + + /** + * Draw a NXOR gate symbol + */ + function NXOR(root) { + // width="33" height="25" + var g = XOR(root); + negationCircle(g, 35, 12.5); + root.append("text") + .attr("x", 4) + .attr("y", 16) + .text("!^"); + } + + /** + * Draw a NOT gate symbol + */ + function NOT(root) { + // width="30" height="20" + root.append("path") + .attr("d", "M0,2.5 L0,22.5 L20,12.5 Z"); + negationCircle(root, 23, 12.5); + root.append("text") + .attr("x", 2) + .attr("y", 16) + .text("!"); + } + + /** + * Draw a FF register symbol + */ + function FF(root) { + // width="25" height="25" + operatorBox(root); + + root.append("path") + .attr("d", "M0,2 L5,7 L0,12"); + + root.append("text") + .attr("x", 5) + .attr("y", 16) + .text("FF"); + } + + function FF_ARST(root, arstPolarity, clkPolarity) { + root.append("rect") + .attr("width", "40") + .attr("height", "50") + .attr("x", "0") + .attr("y", "0"); + + //component name + root.append("text") + .attr("x", 7) + .attr("y", 16) + .text("ADFF"); + + //triangle + root.append("path") + .attr("d", "M0,7.5 L6,12.5 L0,17.5 z"); + + if (!clkPolarity) { + root.append("circle") + .attr("cx", 1) + .attr("cy", 12.5) + .attr("r", "1.5") + .style("fill", "white"); + } + + if (!arstPolarity) { + root.append("circle") + .attr("cx", 1) + .attr("cy", 25) + .attr("r", "1.5") + .style("fill", "white"); + } + + root.append("text") + .attr("x", 4) + .attr("y", 27.5) + .style("font-size", "8px") + .text("ARST"); + } + function DLATCH(root, enPolarity) { + root.append("rect") + .attr("width", "50") + .attr("height", "25") + .attr("x", "0") + .attr("y", "0"); + + root.append("text") + .attr("x", 3) + .attr("y", 12) + .text("DLATCH"); + + if (!enPolarity) { + root.append("circle") + .attr("cx", 1) + .attr("cy", 16.5) + .attr("r", "1.5") + .style("fill", "white"); + } + + root.append("text") + .attr("x", 4) + .attr("y", 19) + .style("font-size", "8px") + .text("en"); + } + function RISING_EDGE(root) { + // width="25" height="25" + operatorBox(root); + + root.append("path") + .attr("d", "M5,20 L12.5,20 L12.5,5 L20,5"); + } + + function FALLING_EDGE(root) { + // width="25" height="25" + operatorBox(root); + + root.append("path") + .attr("d", "M5,5 L12.5,5 L12.5,20 L20,20"); + } + + + const DEFAULT_NODE_SIZE = [25, 25]; + const SHAPES = { + "NOT": [NOT, DEFAULT_NODE_SIZE], + + "AND": [AND, DEFAULT_NODE_SIZE], + "NAND": [NAND, DEFAULT_NODE_SIZE], + "OR": [OR, DEFAULT_NODE_SIZE], + "NOR": [NOR, DEFAULT_NODE_SIZE], + "XOR": [XOR, DEFAULT_NODE_SIZE], + "NXOR": [NXOR, DEFAULT_NODE_SIZE], + + "RISING_EDGE": [RISING_EDGE, DEFAULT_NODE_SIZE], + "FALLING_EDGE": [FALLING_EDGE, DEFAULT_NODE_SIZE], + + "ADD": [function ADD(root) { + nodeCircleWithText(root, "+"); + }, DEFAULT_NODE_SIZE], + "SUB": [function SUB(root) { + nodeCircleWithText(root, "-"); + }, DEFAULT_NODE_SIZE], + + "EQ": [function EQ(root) { + nodeCircleWithText(root, "="); + }, DEFAULT_NODE_SIZE], + "NE": [function NE(root) { + nodeCircleWithText(root, "!="); + }, DEFAULT_NODE_SIZE], + "LT": [function LT(root) { + nodeCircleWithText(root, "<"); + }, DEFAULT_NODE_SIZE], + "LE": [function LE(root) { + nodeCircleWithText(root, "<="); + }, DEFAULT_NODE_SIZE], + "GE": [function GE(root) { + nodeCircleWithText(root, ">="); + }, DEFAULT_NODE_SIZE], + "GT": [function GT(root) { + nodeCircleWithText(root, ">"); + }, DEFAULT_NODE_SIZE], + "SHL": [function GT(root) { + nodeCircleWithText(root, "<<"); + }, DEFAULT_NODE_SIZE], + "SHR": [function GT(root) { + nodeCircleWithText(root, ">>"); + }, DEFAULT_NODE_SIZE], + "SHIFT": [function GT(root) { + nodeBiggerCircleWithText(root, "<<,>>"); + }, [50, 50]], + "MUL": [function GT(root) { + nodeCircleWithText(root, "*"); + }, DEFAULT_NODE_SIZE], + "DIV": [function GT(root) { + nodeCircleWithText(root, "/"); + }, DEFAULT_NODE_SIZE], + + "FF": [FF, DEFAULT_NODE_SIZE], + "FF_ARST_clk0_rst0": [(root) => { return FF_ARST(root, false, false)}, [40, 50]], + "FF_ARST_clk1_rst1": [(root) => { return FF_ARST(root, true, true)}, [40, 50]], + "FF_ARST_clk0_rst1": [(root) => { return FF_ARST(root, true, false)}, [40, 50]], + "FF_ARST_clk1_rst0": [(root) => { return FF_ARST(root, false, true)}, [40, 50]], + "DLATCH_en0": [(root) => {return DLATCH(root,false)}, [50, 25]], + "DLATCH_en1": [(root) => {return DLATCH(root,true)}, [50, 25]], + + + }; + + /* + * Render a operator node using predefined shape + * */ + class OperatorNodeRenderer extends GenericNodeRenderer { + constructor(schematic) { + super(schematic); + this.SHAPES = SHAPES; + this._defsAdded = false; + } + + prepare(node) { + if (!this._defsAdded) { + var defs = this.schematic.defs; + var SHAPES = this.SHAPES; + for (const [name, [constructorFn, _]] of Object.entries(SHAPES)) { + this.addShapeToDefs(defs, name, constructorFn); + } + this._defsAdded = true; + } + [node.width, node.height] = this.SHAPES[node.hwMeta.name][1]; + } + + selector(node) { + return node.hwMeta.cls === "Operator" && typeof this.SHAPES[node.hwMeta.name] !== "undefined"; + } + + addShapeToDefs(defs, id, shape) { + var cont = defs.append("g") + .attr("id", id) + .attr("class", "d3-hwschematic node-operator"); + // [note] we need to add d3-hwschematic as well because object in refs are recognized as outside objects when useds + shape(cont); + } + + /** + * Render svg of node + * + * @param root root svg element where nodes should be rendered + * @param nodeG svg g for each node with data binded + * */ + render(root, nodeG) { + // apply node positions + nodeG.attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }) + .attr("class", (d) => d.hwMeta.cssClass) + .attr("style", (d) => d.hwMeta.cssStyle) + .append("use") + .attr("href", function(d) { + return "#" + d.hwMeta.name + }); + } + } + + /** + * Draw a multiplexer operator symbol + */ + function MUX_SHAPE(root) { + // width="20" height="40" + root.append("path") + .attr("d","M0,0 L20,10 L20,30 L0,40 Z"); + } + + class MuxNodeRenderer extends GenericNodeRenderer { + constructor(schematic) { + super(schematic); + this.DEFULT_NODE_SIZE = [20, 40]; + this._defsAdded = false; + } + + prepare(node) { + if (!this._defsAdded) { + var defs = this.schematic.defs; + this.addShapeToDefs(defs); + this._defsAdded = true; + } + node.width = this.DEFULT_NODE_SIZE[0]; + node.height = this.DEFULT_NODE_SIZE[1]; + } + + selector(node) { + return node.hwMeta.cls == "Operator" && ( + node.hwMeta.name === "MUX" || + node.hwMeta.name === "LATCHED_MUX" + ); + } + + addShapeToDefs(defs) { + var cont = defs.append("g"); + cont.attr("id", "MUX"); + cont.attr("class", "d3-hwschematic node-operator"); + MUX_SHAPE(cont); + + var cont = defs.append("g"); + cont.attr("id", "LATCHED_MUX"); + cont.attr("class", "d3-hwschematic node-operator"); + MUX_SHAPE(cont); + cont.append("text") + .text("LA") + .attr("y", "10") + .attr("x", "10") + .attr("style", "writing-mode: tb;"); + } + + /** + * Render svg of node + * + * @param root root svg element where nodes should be rendered + * @param nodeG svg g for each node with data binded + * */ + render(root, nodeG) { + // apply node positions + nodeG.attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }) + .attr("class", (d) => d.hwMeta.cssClass) + .attr("style", (d) => d.hwMeta.cssStyle) + .append("use") + .attr("href", function (d) { + return "#" + d.hwMeta.name; + }); + + + } + } + + class SliceNodeRenderer extends GenericNodeRenderer { + selector(node) { + return node.hwMeta.name === "SLICE" || node.hwMeta.name === "CONCAT"; + } + + getNodeLabelWidth(node) { + return 0; + } + + render(root, nodeG) { + nodeG + .attr("class", (d) => d.hwMeta.cssClass) + .attr("style", (d) => d.hwMeta.cssStyle); + + // spot node main body and set dimensions and style of node + nodeG.append("rect") + .attr("width", function(d) { return d.width }) + .attr("height", function(d) { return d.height }) + .attr("class", "node") + .attr("rx", 5) // rounded corners + .attr("ry", 5); + + // black thick line + nodeG.append("rect") + .attr("x", function (d) { + if (d.hwMeta.name == "SLICE") { + return 0; + } else { + return d.width - 3; + } + }) + .attr("width", "3") + .attr("height", function(d) { return d.height }) + .attr("style", "fill:black;"); + + // apply node positions + nodeG.attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }); + + this.renderPorts(nodeG); + } + } + + const RUNNING_IN_NODE = (typeof require !== "undefined"); + const NO_LAYOUT = "org.eclipse.elk.noLayout"; + // kgraph properties that shall be copied + const KGRAPH_KEYS = [ + 'x', 'y', + 'width', 'height', + "sections", + 'sourcePoint', + 'targetPoint', + 'junctionPoints', + 'properties' + ].reduce(function(p, c) { p[c] = 1; return p; }, {}); + + /** + * Webworker creates new graph object and layout props has to be copied back + * to original graph + * + * @param srcGraph: + * new graph from ELK worker + * @param dstGraph: + * original graph provided by user + * @param d3Objs: + * {str(dst obj id): dst obj} + */ + function copyElkProps(srcGraph, dstGraph, d3Objs) { + // init d3Objs + d3Objs[dstGraph.id] = dstGraph; + (dstGraph.edges || []).forEach(function(e) { + if (e.id in d3Objs && d3Objs[e.id] !== e) + throw new Error("Duplicit edge" + e.id); + d3Objs[e.id] = e; + }); + (dstGraph.children || []).forEach(function(n) { + d3Objs[n.id] = n; + }); + (dstGraph.ports || []).forEach(function(p) { + d3Objs[p.id] = p; + }); + + // copy props from this node + copyProps(srcGraph, dstGraph); + (srcGraph.ports || []).forEach(function(p) { + copyProps(p, d3Objs[p.id]); + }); + (srcGraph.labels || []).forEach(function(l, i) { + copyProps(l, dstGraph.labels[i]); + }); + // copy props from edges in this node + (srcGraph.edges || []).forEach(function(e) { + var l = d3Objs[e.id]; + copyProps(e, l); + copyProps(e.source, l.source); + copyProps(e.target, l.target); + // make sure the bendpoint array is valid + l.bendPoints = e.bendPoints || []; + }); + // copy props of children + (srcGraph.children || []).forEach(function(n) { + copyElkProps(n, d3Objs[n.id], d3Objs); + }); + } + function copyProps(src, dst) { + var keys = KGRAPH_KEYS; + for (var k in src) { + if (keys[k]) { + dst[k] = src[k]; + } + } + } + + /** + * Convert section from ELK json to svg path string + */ + function section2svgPath(section) { + var pathBuff = ["M", section.startPoint.x, section.startPoint.y]; + if (section.bendPoints) + section.bendPoints.forEach(function(bp, i) { + pathBuff.push("L"); + pathBuff.push(bp.x); + pathBuff.push(bp.y); + }); + + pathBuff.push("L"); + pathBuff.push(section.endPoint.x); + pathBuff.push(section.endPoint.y); + return pathBuff.join(" ") + } + + /** + * Set the scale to value so + * the available space is used to it's maximum. + */ + function zoomToFit(node, width, height, g) { + var xOffset = -node.x; + var yOffset = -node.y; + var w = node.width || 1; + var h = node.height || 1; + // scale everything so that it fits the specified size + var scale = Math.min(width / w, height / h); + // centering + xOffset += ((width / scale - node.width) / 2); + yOffset += ((height / scale - node.height) / 2); + + // if a transformation group was specified we + // perform a 'zoomToFit' + var t = d3__namespace.zoomTransform(g.node()); + t.k = scale; + t.x = xOffset * scale; + t.y = yOffset * scale; + if (!RUNNING_IN_NODE) { + g = g.transition() + .duration(200); + } + g.attr("transform", t); + } + + function isDescendant(node, child) { + var parent = child.parent; + while (parent) { + if (parent == node) { + return true; + } + parent = parent.parent; + } + return false; + } + function toAbsolutePositionsEdges(n, nodeMap) { + // edges + (n.edges || []).forEach(function(e) { + // transform edge coordinates to absolute coordinates. Note that + // node coordinates are already absolute and that + // edge coordinates are relative to the source node's parent node + // (unless the target node is a descendant of the source node) + var srcNode = nodeMap[e.source]; + var tgtNode = nodeMap[e.target]; + var relative = isDescendant(srcNode, tgtNode) ? + srcNode : srcNode.parent; + + var offset = { x: 0, y: 0 }; + if (relative) { + offset.x = relative.x || 0; + offset.y = relative.y || 0; + } + if (relative.padding) { + offset.x += relative.padding.left || 0; + offset.y += relative.padding.top || 0; + } + if (e.sections) + e.sections.forEach(function(s) { + // ... and apply it to the edge + if (s.startPoint) { + s.startPoint.x += offset.x; + s.startPoint.y += offset.y; + } + if (s.endPoint) { + s.endPoint.x += offset.x; + s.endPoint.y += offset.y; + } + (s.bendPoints || []).forEach(function(bp) { + bp.x += offset.x; + bp.y += offset.y; + }); + }); + if (e.junctionPoints) + e.junctionPoints.forEach(function(jp) { + jp.x += offset.x; + jp.y += offset.y; + }); + }); + // children + (n.children || []).forEach(function(c) { + toAbsolutePositionsEdges(c, nodeMap); + }); + } + function toAbsolutePositions(n, offset, nodeMap) { + n.x = (n.x || 0) + offset.x; + n.y = (n.y || 0) + offset.y; + nodeMap[n.id] = n; + // the offset for the children has to include padding + var childOffset = { x: n.x, y: n.y }; + if (n.padding) { + childOffset.x += n.padding.left || 0; + childOffset.y += n.padding.top || 0; + } + // children + (n.children || []).forEach(function(c) { + c.parent = n; + toAbsolutePositions(c, childOffset, nodeMap); + }); + } + + + /** + * Clean all layout possitions from nodes, nets and ports + */ + function cleanLayout(n) { + delete n.x; + delete n.y; + (n.ports || []).forEach(function(p) { + delete p.x; + delete p.y; + }); + (n.edges || []).forEach(function(e) { + delete e.sections; + delete e.junctionPoints; + }); + (n.children || []).forEach(function(c) { + cleanLayout(c); + }); + } + + function renderLinks(root, edges) { + let junctionPoints = []; + + let link = root.selectAll(".link") + .data(edges) + .enter() + .append("path") + .attr("class", "link") + .attr("d", function(d) { + if (!d.sections) { + d._svgPath = ""; + return ""; + } + if (d.bendpoints || d.sections.length > 1) { + throw new Error("NotImplemented"); + } + if(d.junctionPoints) + d.junctionPoints.forEach(function (jp) { + junctionPoints.push(jp); + }); + d._svgPath = section2svgPath(d.sections[0]); + return d._svgPath; + }); + + let linkWrap = root.selectAll(".link-wrap") + .data(edges) + .enter() + .append("path") + .attr("class", function (d) { + let cssClass; + if (d.hwMeta.parent) { + cssClass = d.hwMeta.parent.hwMeta.cssClass; + } else { + cssClass = d.hwMeta.cssClass; + } + if (typeof cssClass !== 'undefined') { + return "link-wrap " + cssClass; + } else { + return "link-wrap"; + } + }) + .attr("style", function (d) { + if (d.hwMeta.parent) { + return d.hwMeta.parent.hwMeta.cssStyle; + } else { + return d.hwMeta.cssStyle + } + }) + .attr("d", function(d) { + return d._svgPath; + }); + + let junctionPoint = root.selectAll(".junction-point") + .data(junctionPoints) + .enter() + .append("circle") + .attr("r", "3") + .attr("cx", function(d) { + return d.x; + }) + .attr("cy", function(d) { + return d.y; + }) + .attr("class", "junction-point"); + + return [link, linkWrap, junctionPoint]; + } + + class Tooltip { + constructor(root) { + let t = this.tooltip = document.createElement("div"); + t.className = "d3-hwschematic-tooltip"; + t.style.display = "none"; + t.style.possition = "absolute"; + root.appendChild(t); + } + + show(evt, text) { + let t = this.tooltip; + t.style.display = "block"; + t.innerHTML = text; + t.style.left = evt.pageX + 10 + 'px'; + t.style.top = evt.pageY + 10 + 'px'; + } + + hide() { + this.tooltip.style.display = "none"; + } + } + + function yosysTranslateIcons(node, cell) { + let meta = node.hwMeta; + const t = cell.type; + + if (t === "$mux" || t === "$pmux") { + meta.cls = "Operator"; + meta.name = "MUX"; + } else if (t === "$gt") { + meta.cls = "Operator"; + meta.name = "GT"; + } else if (t === "$lt") { + meta.cls = "Operator"; + meta.name = "LT"; + } else if (t === "$ge") { + meta.cls = "Operator"; + meta.name = "GE"; + } else if (t === "$le") { + meta.cls = "Operator"; + meta.name = "LE"; + } else if (t === "$not" || t === "$logic_not") { + meta.cls = "Operator"; + meta.name = "NOT"; + } else if (t === "$logic_and" || t === "$and") { + meta.cls = "Operator"; + meta.name = "AND"; + } else if (t === "$logic_or" || t === "$or") { + meta.cls = "Operator"; + meta.name = "OR"; + } else if (t === "$xor") { + meta.cls = "Operator"; + meta.name = "XOR"; + } else if (t === "$eq") { + meta.cls = "Operator"; + meta.name = "EQ"; + } else if (t === "$ne") { + meta.cls = "Operator"; + meta.name = "NE"; + } else if (t === "$add") { + meta.cls = "Operator"; + meta.name = "ADD"; + } else if (t === "$sub") { + meta.cls = "Operator"; + meta.name = "SUB"; + } else if (t === "$mul") { + meta.cls = "Operator"; + meta.name = "MUL"; + } else if (t === "$div") { + meta.cls = "Operator"; + meta.name = "DIV"; + } else if (t === "$slice") { + meta.cls = "Operator"; + meta.name = "SLICE"; + } else if (t === "$concat") { + meta.cls = "Operator"; + meta.name = "CONCAT"; + } else if (t === "$adff") { + meta.cls = "Operator"; + let arstPolarity = cell.parameters["ARST_POLARITY"]; + let clkPolarity = cell.parameters["CLK_POLARITY"]; + if (clkPolarity && arstPolarity) { + meta.name = "FF_ARST_clk1_rst1"; + } else if (clkPolarity) { + meta.name = "FF_ARST_clk1_rst0"; + } else if (arstPolarity) { + meta.name = "FF_ARST_clk0_rst1"; + } else { + meta.name = "FF_ARST_clk0_rst0"; + } + } else if (t === "$dff") { + meta.cls = "Operator"; + meta.name = "FF"; + } else if (t === "$shift" || t === "$shiftx") { + meta.cls = "Operator"; + meta.name = "SHIFT"; + } else if (t === "$dlatch") { + meta.cls = "Operator"; + let enPolarity = cell.parameters["EN_POLARITY"]; + if (enPolarity) { + meta.name = "DLATCH_en1"; + } else { + meta.name = "DLATCH_en0"; + + } + } + } + + function getPortSide(portName, direction, nodeName) { + if (direction === "input" && nodeName === "MUX" && portName === "S") { + return "SOUTH"; + } + if (direction === "output") { + return "EAST"; + } + if (direction === "input") { + return "WEST"; + } + throw new Error("Unknown direction " + direction); + } + + function orderClkAndRstPorts(node) { + let index = 0; + for (let port of node.ports) { + let dstIndex = index; + if (port.hwMeta.name === "CLK") { + dstIndex = node.ports.length - 1; + } else if (port.hwMeta.name === "ARST") { + dstIndex = node.ports.length - 2; + } + if (index !== dstIndex) { + let otherPort = node.ports[dstIndex]; + node.ports[dstIndex] = port; + node.ports[index] = otherPort; + otherPort.properties.index = port.properties.index; + port.properties.index = dstIndex; + } + ++index; + } + } + + function iterNetnameBits(netnames, fn) { + for (const [netname, netObj] of Object.entries(netnames)) { + for (const bit of netObj.bits) { + fn(netname, bit, Number.isInteger(bit), isConst(bit)); + } + } + } + + function getNetNamesDict(yosysModule) { + let netnamesDict = {}; // yosys bits (netId): netname + + iterNetnameBits(yosysModule.netnames, (netname, bit, isInt, isStr) => { + if (isInt) { + netnamesDict[bit] = netname; + } else if (!isStr) { + throw new Error("Invalid type in bits: " + typeof bit); + } + }); + return netnamesDict; + } + + function isConst(val) { + return (typeof val === "string"); + } + + function getConstNodeName(nameArray) { + let nodeName = nameArray.reverse().join(""); + nodeName = ["0b", nodeName].join(""); + if (nodeName.match(/^0b[01]+$/g)) { + let res = BigInt(nodeName).toString(16); + return ["0x", res].join(""); + } + return nodeName; + } + + function addEdge(edge, portId, edgeDict, startIndex, width) { + let edgeArr = edgeDict[portId]; + if (edgeArr === undefined) { + edgeArr = edgeDict[portId] = []; + } + edgeArr[startIndex] = [edge, width]; + } + + function getSourceAndTarget2(edge) { + return [edge.sources, edge.targets, false, true]; + } + + function getSourceAndTargetForCell(edge) { + return [edge.targets, edge.sources, true, false]; + } + + function getPortNameSplice(startIndex, width) { + if (width === 1) { + return `[${startIndex}]`; + } else if (width > 1) { + let endIndex = startIndex + width; + return `[${endIndex}:${startIndex}]`; + } + + throw new Error("Incorrect width" + width); + + } + + + function hideChildrenAndNodes(node, yosysModule) { + if (yosysModule !== null) { + if (node.children.length === 0 && node.edges.length === 0) { + delete node.children; + delete node.edges; + + } else { + node._children = node.children; + delete node.children; + node._edges = node.edges; + delete node.edges; + } + } + } + + + function updatePortIndices(ports) { + let index = 0; + for (let port of ports) { + port.properties.index = index; + ++index; + } + } + + function dividePorts(ports) { + let north = []; + let east = []; + let south = []; + let west = []; + + for (let port of ports) { + let side = port.properties.side; + if (side === "NORTH") { + north.push(port); + } else if (side === "EAST") { + east.push(port); + } else if (side === "SOUTH") { + south.push(port); + } else if (side === "WEST") { + west.push(port); + } else { + throw new Error("Invalid port side: " + side); + } + } + + return [north, east, south, west]; + } + + function convertPortOrderingFromYosysToElk(node) { + let [north, east, south, west] = dividePorts(node.ports); + node.ports = north.concat(east, south.reverse(), west.reverse()); + updatePortIndices(node.ports); + + } + + function getTopModuleName(yosysJson) { + let topModuleName = undefined; + for (const [moduleName, moduleObj] of Object.entries(yosysJson.modules)) { + if (moduleObj.attributes.top) { + topModuleName = moduleName; + break; + } + } + + if (topModuleName === undefined) { + throw new Error("Cannot find top"); + } + + return topModuleName; + } + + function getNodePorts(node, dict){ + for (let port of node.ports) { + dict[port.id] = port; + } + + } + function getPortIdToPortDict(node) { + let PortIdToPortDict = {}; + + getNodePorts(node, PortIdToPortDict); + for (let child of node.children) { + getNodePorts(child, PortIdToPortDict); + } + + return PortIdToPortDict; + } + function getNodeIdToNodeDict(node,) { + let nodeIdToNodeDict = {}; + nodeIdToNodeDict[node.id] = node; + for (let child of node.children) { + nodeIdToNodeDict[child.id] = child; + } + return nodeIdToNodeDict; + } + + function getPortToEdgeDict(edges) { + let portToEdgeDict = {}; + for (let edge of edges) { + let targets = edge.targets; + let sources = edge.sources; + for (let [_, portId] of sources) { + portToEdgeDict[portId] = edge; + } + + for (let [_, portId] of targets) { + portToEdgeDict[portId] = edge; + } + } + return portToEdgeDict; + } + + function getChildSourcePorts(ports) { + let sourcePorts = []; + for(let port of ports) { + if (port !== undefined && port.direction === "INPUT") { + sourcePorts.push(port); + } + } + + return sourcePorts; + } + + function getEdgeTargetsIndex(targets, portId) { + for(let i = 0; i < targets.length; ++i) { + let target = targets[i]; + let [_, targetPortId] = target; + + if (portId === targetPortId) { + return i; + } + } + throw new Error("PortId was not found"); + + } + function aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict) { + let i = 0; + if (targetPort.properties.index !== 0) { + throw new Error("Port index is not zero, need to regenerate indices in port labels"); + } + for (let oldTargetPort of childSourcePorts) { + let oldTargetPortId = oldTargetPort.id; + let edge = portIdToEdgeDict[oldTargetPortId]; + let edgeTargetsIndex = getEdgeTargetsIndex(edge.targets, oldTargetPortId); + edge.targets[edgeTargetsIndex][0] = targetNode.id; + let newTargetPortIndex = targetPort.properties.index + i; + if (i === 0) { + targetNode.ports[newTargetPortIndex] = oldTargetPort; + } + else { + targetNode.ports.splice(newTargetPortIndex, 0, oldTargetPort); + } + oldTargetPort.properties.index = newTargetPortIndex; + ++i; + } + + + } + + function getChildTargetPortId(child) { + for (let port of child.ports) { + if (port !== undefined && port.direction === "OUTPUT") + { + return port.id; + } + } + + throw new Error("Concat child has no target"); + } + + function aggregate(node, childrenConcats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict) { + let edgesToDelete = new Set(); + let childrenToDelete = new Set(); + + for (let child of childrenConcats) { + let childTargetPortId = getChildTargetPortId(child); + let edge = portIdToEdgeDict[childTargetPortId]; + if (edge === undefined) { + continue; + } + let targets = edge.targets; + + if (targets !== undefined && targets.length === 1) { + let [nodeId, portId] = targets[0]; + let targetNode = nodeIdToNodeDict[nodeId]; + let targetPort = portIdToPortDict[portId]; + let childSourcePorts = getChildSourcePorts(child.ports); + if (targetNode === undefined) { + throw new Error("Target node of target port is undefined"); + } + if (targetNode.hwMeta.cls === "Operator" && targetNode.hwMeta.name === "CONCAT") { + aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict); + edgesToDelete.add(edge.id); + childrenToDelete.add(child.id); + } + } + } + node.children = node.children.filter((c) => { + return !childrenToDelete.has(c.id); + }); + node.edges = node.edges.filter((e) => { + return !edgesToDelete.has(e.id); + }); + } + + function fillConcats(children) { + let concats = []; + for (let child of children) { + if (child.hwMeta.cls === "Operator" && child.hwMeta.name === "CONCAT") { + concats.push(child); + } + } + return concats; + + } + + function aggregateConcants(node) { + let concats = fillConcats(node.children); + let portIdToEdgeDict = getPortToEdgeDict(node.edges); + let portIdToPortDict = getPortIdToPortDict(node); + let nodeIdToNodeDict = getNodeIdToNodeDict(node); + aggregate(node, concats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict); + } + + class LNodeMaker { + constructor(name, yosysModule, idCounter, yosysModules, hierarchyLevel, nodePortNames) { + this.name = name; + this.yosysModule = yosysModule; + this.idCounter = idCounter; + this.yosysModules = yosysModules; + this.hierarchyLevel = hierarchyLevel; + this.nodePortNames = nodePortNames; + this.childrenWithoutPortArray = []; + this.nodeIdToCell = {}; + } + + make() { + if (this.name === undefined) { + throw new Error("Name is undefined"); + } + + let node = this.makeNode(this.name); + + if (this.yosysModule) { + // cell with module definition, load ports, edges and children from module def. recursively + this.fillPorts(node, this.yosysModule.ports, (p) => { + return p.direction + }, undefined); + this.fillChildren(node); + this.fillEdges(node); + + if (node.children !== undefined && node.children.length > 0) { + aggregateConcants(node); + } + + } + + if (node.children !== undefined) { + for (let child of node.children) { + convertPortOrderingFromYosysToElk(child); + if (child.hwMeta.cls === "Operator" && child.hwMeta.name.startsWith("FF")) { + orderClkAndRstPorts(child); + } + } + } + + if (this.hierarchyLevel > 1) { + hideChildrenAndNodes(node, this.yosysModule); + } + + node.hwMeta.maxId = this.idCounter - 1; + return node; + } + makeNode(name) { + let node = { + "id": this.idCounter.toString(), //generate, each component has unique id + "hwMeta": { // [d3-hwschematic specific] + "name": name, // optional str + "cls": "", // optional str + "maxId": 2, // max id of any object in this node used to avoid re-counting object if new object is generated + }, + "properties": { // recommended renderer settings + "org.eclipse.elk.portConstraints": "FIXED_ORDER", // can be also "FREE" or other value accepted by ELK + "org.eclipse.elk.layered.mergeEdges": 1 + }, + "ports": [], // list of LPort + "edges": [], // list of LEdge + "children": [], // list of LNode + }; + ++this.idCounter; + return node; + } + + fillPorts(node, ports, getPortDirectionFn, cellObj) { + const isSplit = cellObj !== undefined && cellObj.type === "$slice"; + const isConcat = cellObj !== undefined && cellObj.type === "$concat"; + let portByName = this.nodePortNames[node.id]; + if (portByName === undefined) { + portByName = {}; + this.nodePortNames[node.id] = portByName; + } + for (let [portName, portObj] of Object.entries(ports)) { + let originalPortName = portName; + if (isSplit || isConcat) { + if (portName === "Y") { + portName = ""; + } + if (isSplit) { + if (portName === "A") { + portName = getPortNameSplice(cellObj.parameters.OFFSET, cellObj.parameters.Y_WIDTH); + } + } else if (isConcat) { + let par = cellObj.parameters; + if (portName === "A") { + portName = getPortNameSplice(0, par.A_WIDTH); + } else if (portName === "B") { + portName = getPortNameSplice(par.A_WIDTH, par.B_WIDTH); + } + } + } + let direction = getPortDirectionFn(portObj); + this.makeLPort(node.ports, portByName, originalPortName, portName, direction, node.hwMeta.name); + } + } + + makeLPort(portList, portByName, originalName, name, direction, nodeName) { + if (name === undefined) { + throw new Error("Name is undefined"); + } + + let portSide = getPortSide(name, direction, nodeName); + let port = { + "id": this.idCounter.toString(), + "hwMeta": { // [d3-hwschematic specific] + "name": name, + }, + "direction": direction.toUpperCase(), // [d3-hwschematic specific] controls direction marker + "properties": { + "side": portSide, + "index": 0 // The order is assumed as clockwise, starting with the leftmost port on the top side. + // Required only for components with "org.eclipse.elk.portConstraints": "FIXED_ORDER" + }, + "children": [], // list of LPort, if the port should be collapsed rename this property to "_children" + }; + port.properties.index = portList.length; + portList.push(port); + portByName[originalName] = port; + ++this.idCounter; + return port; + } + + fillChildren(node) { + // iterate all cells and lookup for modules and construct them recursively + for (const [cellName, cellObj] of Object.entries(this.yosysModule.cells)) { + let moduleName = cellObj.type; //module name + let cellModuleObj = this.yosysModules[moduleName]; + let nodeBuilder = new LNodeMaker(cellName, cellModuleObj, this.idCounter, this.yosysModules, + this.hierarchyLevel + 1, this.nodePortNames); + let subNode = nodeBuilder.make(); + this.idCounter = nodeBuilder.idCounter; + node.children.push(subNode); + yosysTranslateIcons(subNode, cellObj); + this.nodeIdToCell[subNode.id] = cellObj; + if (cellModuleObj === undefined) { + if (cellObj.port_directions === undefined) { + // throw new Error("[Todo] if modules does not have definition in modules and its name does not \ + // start with $, then it does not have port_directions. Must add port to sources and targets of an edge") + + this.childrenWithoutPortArray.push([cellObj, subNode]); + continue; + } + this.fillPorts(subNode, cellObj.port_directions, (p) => { + return p; + }, cellObj); + } + } + } + + fillEdges(node) { + + let edgeTargetsDict = {}; + let edgeSourcesDict = {}; + let constNodeDict = {}; + let [edgeDict, edgeArray] = this.getEdgeDictFromPorts( + node, constNodeDict, edgeTargetsDict, edgeSourcesDict); + let netnamesDict = getNetNamesDict(this.yosysModule); + + function getPortName(bit) { + return netnamesDict[bit]; + } + + for (let i = 0; i < node.children.length; i++) { + const subNode = node.children[i]; + if (constNodeDict[subNode.id] === 1) { + //skip constants to iterate original cells + continue; + } + + let cell = this.nodeIdToCell[subNode.id]; + if (cell.port_directions === undefined) { + continue; + } + let connections = cell.connections; + let portDirections = cell.port_directions; + + + if (connections === undefined) { + throw new Error("Cannot find cell for subNode" + subNode.hwMeta.name); + } + + let portI = 0; + let portByName = this.nodePortNames[subNode.id]; + for (const [portName, bits] of Object.entries(connections)) { + let portObj; + let direction; + if (portName.startsWith("$")) { + portObj = subNode.ports[portI++]; + direction = portObj.direction.toLowerCase(); //use direction from module port definition + } else { + portObj = portByName[portName]; + direction = portDirections[portName]; + } + + this.loadNets(node, subNode.id, portObj.id, bits, direction, edgeDict, constNodeDict, + edgeArray, getPortName, getSourceAndTargetForCell, edgeTargetsDict, edgeSourcesDict); + + } + } + // source null target null == direction is output + + for (const [cellObj, subNode] of this.childrenWithoutPortArray) { + for (const [portName, bits] of Object.entries(cellObj.connections)) { + let port = null; + for (const bit of bits) { + let edge = edgeDict[bit]; + if (edge === undefined) { + throw new Error("[Todo] create edge"); + } + let edgePoints; + let direction; + if (edge.sources.length === 0 && edge.targets.length === 0) { + direction = "output"; + edgePoints = edge.sources; + } else if (edge.sources.length === 0) { + // no sources -> add as source + direction = "output"; + edgePoints = edge.sources; + } else { + direction = "input"; + edgePoints = edge.targets; + } + + if (port === null) { + let portByName = this.nodePortNames[subNode.id]; + if (portByName === undefined) { + portByName = {}; + this.nodePortNames[subNode.id] = portByName; + } + port = this.makeLPort(subNode.ports, portByName, portName, portName, direction, subNode.hwMeta.name); + } + + edgePoints.push([subNode.id, port.id]); + } + } + + } + + let edgeSet = {}; // [sources, targets]: true + for (const edge of edgeArray) { + let key = [edge.sources, null, edge.targets]; + if (!edgeSet[key]) // filter duplicities + { + edgeSet[key] = true; + node.edges.push(edge); + } + } + + } + + getEdgeDictFromPorts(node, constNodeDict, edgeTargetsDict, edgeSourcesDict) { + let edgeDict = {}; // yosys bits (netId): LEdge + let edgeArray = []; + let portsIndex = 0; + for (const [portName, portObj] of Object.entries(this.yosysModule.ports)) { + let port = node.ports[portsIndex]; + portsIndex++; + + function getPortName2() { + return portName; + } + + this.loadNets(node, node.id, port.id, portObj.bits, portObj.direction, + edgeDict, constNodeDict, edgeArray, getPortName2, getSourceAndTarget2, + edgeTargetsDict, edgeSourcesDict); + + } + return [edgeDict, edgeArray]; + } + + /* + * Iterate bits representing yosys net names, which are used to get edges from the edgeDict. + * If edges are not present in the dictionary, they are created and inserted into it. Eventually, + * nodes are completed by filling sources and targets properties of LEdge. + */ + loadNets(node, nodeId, portId, bits, direction, edgeDict, constNodeDict, edgeArray, + getPortName, getSourceAndTarget, edgeTargetsDict, edgeSourcesDict) { + for (let i = 0; i < bits.length; ++i) { + let startIndex = i; + let width = 1; + let bit = bits[i]; + let portName = getPortName(bit); + let edge = edgeDict[bit]; + let netIsConst = isConst(bit); + if (netIsConst || edge === undefined) { + // create edge if it is not in edgeDict + if (portName === undefined) { + if (!netIsConst) { + throw new Error("Netname is undefined"); + } + portName = bit; + } + edge = this.makeLEdge(portName); + edgeDict[bit] = edge; + edgeArray.push(edge); + if (netIsConst) { + i = this.addConstNodeToSources(node, bits, edge.sources, i, constNodeDict); + width = i - startIndex + 1; + } + } + + let [a, b, targetA, targetB] = getSourceAndTarget(edge); + if (direction === "input") { + a.push([nodeId, portId]); + if (targetA) { + addEdge(edge, portId, edgeTargetsDict, startIndex, width); + } else { + addEdge(edge, portId, edgeSourcesDict, startIndex, width); + } + } else if (direction === "output") { + b.push([nodeId, portId]); + if (targetB) { + addEdge(edge, portId, edgeTargetsDict, startIndex, width); + } else { + addEdge(edge, portId, edgeSourcesDict, startIndex, width); + } + } else { + throw new Error("Unknown direction " + direction); + } + } + } + + makeLEdge(name) { + if (name === undefined) { + throw new Error("Name is undefined"); + } + let edge = { + "id": this.idCounter.toString(), + "sources": [], + "targets": [], // [id of LNode, id of LPort] + "hwMeta": { // [d3-hwschematic specific] + "name": name, // optional string, displayed on mouse over + } + }; + ++this.idCounter; + return edge; + } + + addConstNodeToSources(node, bits, sources, i, constNodeDict) { + let nameArray = []; + for (i; i < bits.length; ++i) { + let bit = bits[i]; + if (isConst(bit)) { + nameArray.push(bit); + } else { + break; + } + } + --i; + // If bit is a constant, create a node with constant + let nodeName = getConstNodeName(nameArray); + let constSubNode; + let port; + [constSubNode, port] = this.addConstNode(node, nodeName, constNodeDict); + sources.push([constSubNode.id, port.id]); + return i; + } + + addConstNode(node, nodeName, constNodeDict) { + let port; + + let nodeBuilder = new LNodeMaker(nodeName, undefined, this.idCounter, null, + this.hierarchyLevel + 1, this.nodePortNames); + let subNode = nodeBuilder.make(); + this.idCounter = nodeBuilder.idCounter; + + let portByName = this.nodePortNames[subNode.id] = {}; + port = this.makeLPort(subNode.ports, portByName, "O0", "O0", "output", subNode.hwMeta.name); + node.children.push(subNode); + constNodeDict[subNode.id] = 1; + + return [subNode, port]; + } + + + } + + function yosys(yosysJson) { + let nodePortNames = {}; + let rootNodeBuilder = new LNodeMaker("root", null, 0, null, 0, nodePortNames); + let output = rootNodeBuilder.make(); + let topModuleName = getTopModuleName(yosysJson); + + let nodeBuilder = new LNodeMaker(topModuleName, yosysJson.modules[topModuleName], rootNodeBuilder.idCounter, + yosysJson.modules, 1, nodePortNames); + let node = nodeBuilder.make(); + output.children.push(node); + output.hwMeta.maxId = nodeBuilder.idCounter - 1; + //yosysTranslateIcons(output); + //print output to console + //console.log(JSON.stringify(output, null, 2)); + + return output; + } + + function hyperEdgeListToEdges(eList, newEdges, idOffset) { + for (let ei = 0; ei < eList.length; ei++) { + let e = eList[ei]; + let isHyperEdge = typeof e.sources !== "undefined"; + if (isHyperEdge) { + let src; + let dst; + if (e.sources.length === 1 && e.targets.length === 1) { + src = e.sources[0]; + dst = e.targets[0]; + e.source = src[0]; + e.sourcePort = src[1]; + e.target = dst[0]; + e.targetPort = dst[1]; + delete e.sources; + delete e.targets; + newEdges.push(e); + } else { + for (let s = 0; s < e.sources.length; s++) { + src = e.sources[s]; + for (let t = 0; t < e.targets.length; t++) { + dst = e.targets[t]; + idOffset += 1; + newEdges.push({ + "hwMeta": { "parent": e }, + "id": "" + idOffset, + "source": src[0], + "sourcePort": src[1], + "target": dst[0], + "targetPort": dst[1], + }); + } + } + } + } else { + newEdges.push(e); + } + } + return idOffset; + } + + /** + * Convert hyperEdges to edges in whole graph + * + * @param n root node + * @param idOffset int, max id in graph, used for generating + * of new edges from hyperEdges + **/ + function hyperEdgesToEdges(n, idOffset) { + let newEdges; + if (n.edges) { + newEdges = []; + idOffset = hyperEdgeListToEdges(n.edges, newEdges, idOffset); + n.edges = newEdges; + } + if (n._edges) { + newEdges = []; + idOffset = hyperEdgeListToEdges(n._edges, newEdges, idOffset); + n._edges = newEdges; + } + if (n.children) { + for (let i = 0; i < n.children.length; i++) { + idOffset = hyperEdgesToEdges(n.children[i], idOffset); + } + } + if (n._children) { + for (let i = 0; i < n._children.length; i++) { + idOffset = hyperEdgesToEdges(n._children[i], idOffset); + } + } + return idOffset + } + + /** + * Get parent of net for net + **/ + function getNet(e) { + if (typeof e.hwMeta.parent !== "undefined") { + return e.hwMeta.parent; + } else { + return e; + } + } + + function initNodeParents(node, parent) { + node.hwMeta.parent = parent; + (node.children || []).forEach(function(n) { + initNodeParents(n, node); + }); + (node._children || []).forEach(function(n) { + initNodeParents(n, node); + }); + + } + function expandPorts(node) { + let portList = []; + if (node.ports) + node.ports.forEach(function (port) {expandPorts4port(port, portList);}); + //node.hwMeta.parent = parent; + node.ports = portList; + (node.children || node._children || []).forEach(function(n) { + expandPorts(n); + }); + } + + function expandPorts4port(port, portList){ + if (port.hwMeta.connectedAsParent) { + return; + } + portList.push(port); + (port.children || []).forEach(function(p) { + p.parent = port; + expandPorts4port(p, portList); + }); + + } + + /* + * Collect list of expanded nodes + */ + function computeLayoutCacheKey(n, res) { + res.push(n.id); + if (n.children) { + n.children.forEach((d) => { computeLayoutCacheKey(d, res); }); + } + } + + /* + * Store current state of layout + */ + function serializeLayout(n) { + var res = { + "id": n.id, + "x": n.x, + "y": n.y, + "width": n.width, + "height": n.height, + }; + if (n.ports) { + res["ports"] = n.ports.map(function(p) { + return { + "id": p.id, + "x": p.x, + "y": p.y, + "width": p.width, + "height": p.height, + }; + }); + } + if (n.edges) { + res["edges"] = n.edges.map(function(e) { + return { + "id": e.id, + "sections": e.sections, + "junctionPoints": e.junctionPoints + }; + }); + } + if (n.children) { + res["children"] = n.children.map(function(c) { + return serializeLayout(c) + }); + } + return res; + } + + // apply cached element positions and size + function applyCachedState(n, state) { + if (n.id != state.id) { + throw new Error("Cached state not matching current data"); + } + n.x = state.x; + n.y = state.y; + n.width = state.width; + n.height = state.height; + if (n.ports) { + state.ports.forEach(function(s, i) { + var p = n.ports[i]; + if (p.id != s.id) { + throw new Error("Cached state not matching current data"); + } + p.x = s.x; + p.y = s.y; + p.width = s.width; + p.height = s.height; + }); + } + if (n.edges) { + state.edges.forEach(function(s, i) { + var p = n.edges[i]; + if (p.id != s.id) { + throw new Error("Cached state not matching current data"); + } + p.sections = s.sections; + p.junctionPoints = s.junctionPoints; + }); + } + if (n.children) { + state.children.forEach(function(s, i) { + var c = n.children[i]; + return applyCachedState(c, s); + }); + } + } + + class d3elk { + constructor() { + // containers + this.graph = {}; // internal (hierarchical graph) + this._options = {}; + // dimensions + this.width = 0; + this.height = 0; + this._transformGroup = undefined; + + // the layouter instance + this.layouter = new ELK__default["default"]({ + algorithms: ['layered'], + }); + this._invalidateCaches(); + } + + /** + * Set or get the available area, the positions of the layouted graph are + * currently scaled down. + */ + size(size) { + if (!arguments.length) + return [this.width, this.height]; + var old_w = this.width; + var old_h = this.height; + this.width = size[0]; + this.height = size[1]; + + if (this.graph != null) { + if (old_w !== this.width || old_h !== this.height) { + this._layoutCache = {}; + } + this.graph.width = this.width; + this.graph.height = this.height; + } + return this; + }; + + /** + * Sets the group used to perform 'zoomToFit'. + */ + transformGroup(g) { + if (!arguments.length) + return this._transformGroup; + this._transformGroup = g; + return this; + } + + options(opts) { + if (!arguments.length) + return this._options; + this._options = opts; + return this; + } + + /** + * Start the layout process. + */ + start() { + var cacheKey = []; + computeLayoutCacheKey(this.graph, cacheKey); + var state = this._layoutCache[cacheKey]; + var _this = this; + if (typeof state !== 'undefined') { + // load layout from cache + return new Promise((resolve, reject) => { + resolve(); + }).then( + function() { + applyCachedState(_this.graph, state); + } + ) + } else { + // run layouter + this._cleanLayout(); + this._currentLayoutCacheKey = cacheKey; + return this.layouter.layout( + this.graph, + { layoutOptions: this._options } + ).then( + this._applyLayout.bind(this), + function(e) { + // Error while running elkjs layouter + _this._currentLayoutCacheKey = null; + throw e; + } + ); + } + } + + // get currently visible nodes + getNodes() { + if (this.__nodeCache != null) + return this.__nodeCache; + + var queue = [this.graph], + nodes = [], + parent; + + // note that svg z-index is document order, literally + while ((parent = queue.pop()) != null) { + if (!parent.properties[NO_LAYOUT]) { + nodes.push(parent); + (parent.children || []).forEach(function(c) { + queue.push(c); + }); + } + } + this.__nodeCache = nodes; + return nodes; + } + + + // get currently visible ports + getPorts() { + if (this.__portsCache != null) + return this.__portsCache; + + var ports = d3__namespace.merge(this.getNodes().map(function(n) { + return n.ports || []; + })); + this.__portsCache = ports; + } + + + // get currently visible edges + getEdges() { + if (this.__edgesCache != null) + return this.__edgesCache; + + var edgesOfChildren = d3__namespace.merge( + this.getNodes() + .filter(function(n) { + return n.children; + }) + .map(function(n) { + return n.edges || []; + }) + ); + + this.__edgesCache = edgesOfChildren; + return this.__edgesCache; + } + + // bind graph data + kgraph(root) { + if (!arguments.length) + return this.graph; + + var g = this.graph = root; + this._invalidateCaches(); + + if (!g.id) + g.id = "root"; + if (!g.properties) + g.properties = { 'algorithm': 'layered' }; + if (!g.properties.algorithm) + g.properties.algorithm = 'layered'; + if (!g.width) + g.width = this.width; + if (!g.height) + g.height = this.height; + + return this; + }; + /** + * If a top level transform group is specified, we set the scale to value so + * the available space is used to it's maximum. + */ + zoomToFit(node) { + if (!this._transformGroup) { + return; + } + if (node === null) { + node = this.graph; + } + zoomToFit(node, this.width, this.height, this._transformGroup); + } + + terminate() { + if (this.layouter) + this.layouter.terminateWorker(); + } + + /** + * Clean all layout possitions from nodes, nets and ports + */ + _cleanLayout(n) { + if (!arguments.length) + var n = this.graph; + cleanLayout(n); + return this; + } + _invalidateCaches() { + // cached used to avoid execuiton of elkjs to resolve the layout of + // graph if executed previously with same input + // {sorted list of expanded node ids: {nodeId: {"x": ..., "y": ..., + // "ports": {portId: [x, y]}}, + // edgeId: [points] }} + this._layoutCache = {}; + this._currentLayoutCacheKey = null; + + // {id(str): object from input graph} used to access graph objects by it's id + this._d3ObjMap = {}; + this.markLayoutDirty(); + }; + markLayoutDirty() { + this.__nodeCache = null; + this.__portsCache = null; + this.__edgesCache = null; + } + /** + * Apply layout for the kgraph style. Converts relative positions to + * absolute positions. + */ + _applyLayout(kgraph) { + this.zoomToFit(kgraph); + var nodeMap = {}; + // convert to absolute positions + toAbsolutePositions(kgraph, { x: 0, y: 0 }, nodeMap); + toAbsolutePositionsEdges(kgraph, nodeMap); + copyElkProps(kgraph, this.graph, this._d3ObjMap); + this._layoutCache[this._currentLayoutCacheKey] = serializeLayout(this.graph); + + return this.graph; + } + } + + function findGraph(nodeArray, nodeName) { + for (let node of nodeArray) { + if (node.hwMeta.name === nodeName) { + return node + } + } + throw new Error("Node is not found: " + nodeName); + } + + function selectGraphRootByPath(graph, path) { + let pathArray = path.split("/"); + let first = true; + let newGraph = graph; + for (let nodeName of pathArray) { + if (first && nodeName === "") { + first = false; + continue; + } + newGraph = findGraph((newGraph.children || newGraph._children), nodeName); + } + if (graph !== newGraph) { + //case if path has nonzero length + //copy because we need to make graph immutable because we will need it later + graph = Object.assign({}, graph); + graph.children = [newGraph]; + } + return graph; + + } + + function getNameOfEdge(e) { + let name = "unnamed"; + if (e.hwMeta) { + if (typeof e.hwMeta.name === "undefined") { + let p = e.hwMeta.parent; + let pIsHyperEdge = typeof p.sources !== "undefined"; + if (pIsHyperEdge && p.hwMeta) { + name = p.hwMeta.name; + } + } else { + name = e.hwMeta.name; + } + } + return name; + } + + function toggleHideChildren(node) { + let children; + let nextFocusTarget; + if (node.children) { + // children are visible, will collapse + children = node.children; + nextFocusTarget = node.hwMeta.parent; + } else { + // children are hidden, will expand + children = node._children; + nextFocusTarget = node; + } + + let tmpChildren = node.children; + node.children = node._children; + node._children = tmpChildren; + let tmpEdges = node.edges; + node.edges = node._edges; + node._edges = tmpEdges; + node.hwMeta.renderer.prepare(node); + return [children, nextFocusTarget]; + } + + /** + * HwScheme builds scheme diagrams after bindData(data) is called + * + * @param svg: root svg element where scheme will be rendered + * @attention zoom is not applied it is only used for focusing on objects + * @note do specify size of svg to have optimal result + */ + class HwSchematic { + constructor(svg) { + // flag for performance debug + this._PERF = false; + // main svg element + this.svg = svg; + // default sizes of elements + this.PORT_PIN_SIZE = [7, 13]; + this.PORT_HEIGHT = this.PORT_PIN_SIZE[1]; + this.CHAR_WIDTH = 7.55; + this.CHAR_HEIGHT = 13; + this.NODE_MIDDLE_PORT_SPACING = 20; + this.MAX_NODE_BODY_TEXT_SIZE = [400, 400]; + // top, right, bottom, left + this.BODY_TEXT_PADDING = [15, 10, 0, 10]; + svg.classed("d3-hwschematic", true); + this.defs = svg.append("defs"); + this.root = svg.append("g"); + this.errorText = null; + this._nodes = null; + this._edges = null; + + // graph layouter to resolve positions of elements + this.layouter = new d3elk(); + this.layouter + .options({ + edgeRouting: "ORTHOGONAL", + }) + .transformGroup(this.root); + + // shared tooltip object + this.tooltip = new Tooltip(document.getElementsByTagName('body')[0]); + + // renderer instances responsible for rendering of component nodes + this.nodeRenderers = new NodeRendererContainer(); + addMarkers(this.defs, this.PORT_PIN_SIZE); + let rs = this.nodeRenderers; + rs.registerRenderer(new OperatorNodeRenderer(this)); + rs.registerRenderer(new MuxNodeRenderer(this)); + rs.registerRenderer(new SliceNodeRenderer(this)); + rs.registerRenderer(new GenericNodeRenderer(this)); + } + + widthOfText(text) { + if (text) { + return text.length * this.CHAR_WIDTH; + } else { + return 0; + } + } + + removeGraph() { + this.root.selectAll("*").remove(); + } + + updateGlobalSize() { + let width = parseInt(this.svg.style("width") || this.svg.attr("width"), 10); + let height = parseInt(this.svg.style("height") || this.svg.attr("height"), 10); + + this.layouter + .size([width, height]); + } + + /** + * Set bind graph data to graph rendering engine + * + * @return promise for this job + */ + bindData(graph) { + this.removeGraph(); + let postCompaction = "layered.compaction.postCompaction.strategy"; + if (!graph.properties[postCompaction]) { + graph.properties[postCompaction] = "EDGE_LENGTH"; + } + hyperEdgesToEdges(graph, graph.hwMeta.maxId); + initNodeParents(graph, null); + expandPorts(graph); + + if (this._PERF) { + let t0 = new Date().getTime(); + this.nodeRenderers.prepare(graph); + let t1 = new Date().getTime(); + console.log("> nodeRenderers.prepare() : " + (t1 - t0) + " ms"); + } else { + // nodes are ordered, children at the end + this.nodeRenderers.prepare(graph); + } + this.layouter + .kgraph(graph); + return this._draw(); + } + /* + * @returns subnode selected by path wrapped in a new root + * */ + static selectGraphRootByPath(graph, path) { + return selectGraphRootByPath(graph, path); + } + /* + * Resolve layout and draw a component graph from layout data + */ + _draw() { + this.updateGlobalSize(); + + let layouter = this.layouter; + this._nodes = layouter.getNodes().slice(1); // skip root node + this._edges = layouter.getEdges(); + let t0; + if (this._PERF) { + t0 = new Date().getTime(); + } + let _this = this; + return layouter.start() + .then( + function (g) { + if (_this._PERF) { + let t1 = new Date().getTime(); + console.log("> layouter.start() : " + (t1 - t0) + " ms"); + t0 = t1; + } + _this._applyLayout(g); + if (_this._PERF) { + let t1 = new Date().getTime(); + console.log("> HwSchematic._applyLayout() : " + (t1 - t0) + " ms"); + } + }, + function (e) { + // Error while running d3-elkjs layouter + throw e; + } + ); + } + + /** + * Draw a component graph from layout data + */ + _applyLayout() { + let root = this.root; + + let node = root.selectAll(".node") + .data(this._nodes) + .enter() + .append("g"); + this.nodeRenderers.render(root, node); + + let _this = this; + node.on("click", function (ev, d) { + let [children, nextFocusTarget] = toggleHideChildren(d); + if (!children || children.length === 0) { + return; // does not have anything to expand + } + _this.layouter.markLayoutDirty(); + _this.removeGraph(); + _this._draw().then( + function () { + _this.layouter.zoomToFit(nextFocusTarget); + }, + function (e) { + // Error while applying of layout + throw e; + } + ); + }); + + this._applyLayoutLinks(); + } + + _applyLayoutLinks() { + let _this = this; + let edges = this._edges; + + let [link, linkWrap, _] = renderLinks(this.root, edges); + // build netToLink + let netToLink = {}; + edges.forEach(function (e) { + netToLink[getNet(e).id] = { + "core": [], + "wrap": [] + }; + }); + linkWrap._groups.forEach(function (lg) { + lg.forEach(function (l) { + let e = d3__namespace.select(l).data()[0]; + netToLink[getNet(e).id]["wrap"].push(l); + }); + }); + link._groups.forEach(function (lg) { + lg.forEach(function (l) { + let e = d3__namespace.select(l).data()[0]; + netToLink[getNet(e).id]["core"].push(l); + }); + }); + + // set highlingt and tooltip on mouser over over the net + linkWrap.on("mouseover", function (ev, d) { + let netWrap = netToLink[getNet(d).id]["wrap"]; + d3__namespace.selectAll(netWrap) + .classed("link-wrap-activated", true); + + _this.tooltip.show(ev, getNameOfEdge(d)); + }); + linkWrap.on("mouseout", function (ev, d) { + let netWrap = netToLink[getNet(d).id]["wrap"]; + d3__namespace.selectAll(netWrap) + .classed("link-wrap-activated", false); + + _this.tooltip.hide(); + }); + + // set link highlight on net click + function onLinkClick(ev, d) { + let net = getNet(d); + let doSelect = net.selected = !net.selected; + // propagate click on all nets with same source + + let netCore = netToLink[net.id]["core"]; + d3__namespace.selectAll(netCore) + .classed("link-selected", doSelect); + ev.stopPropagation(); + } + + // Select net on click + link.on("click", onLinkClick); + linkWrap.on("click", onLinkClick); + } + + static fromYosys(yosysJson) { + return yosys(yosysJson); + } + + terminate() { + if (this.layouter) { + this.layouter.terminate(); + } + } + + setErrorText(msg) { + this.root.selectAll("*").remove(); + let errText = this.errorText; + if (!errText) { + errText = this.errorText = this.root.append("text") + .attr("x", "50%") + .attr("y", "50%") + .attr("dominant-baseline", "middle") + .attr("text-anchor", "middle") + .style("font-size", "34px"); + } + errText.text(msg); + let t = d3__namespace.zoomTransform(this.root.node()); + t.k = 1; + t.x = 0; + t.y = 0; + this.root.attr("transform", t); + + } + } + + exports.HwSchematic = HwSchematic; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/doc/d3-hwschematic-assets/d3/LICENSE b/doc/d3-hwschematic-assets/d3/LICENSE new file mode 100644 index 00000000..894ddc65 --- /dev/null +++ b/doc/d3-hwschematic-assets/d3/LICENSE @@ -0,0 +1,27 @@ +Copyright 2010-2020 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/doc/d3-hwschematic-assets/d3/dist/d3.js b/doc/d3-hwschematic-assets/d3/dist/d3.js new file mode 100644 index 00000000..50605bd3 --- /dev/null +++ b/doc/d3-hwschematic-assets/d3/dist/d3.js @@ -0,0 +1,19708 @@ +// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {})); +}(this, (function (exports) { 'use strict'; + +var version = "6.7.0"; + +function ascending$3(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +function bisector(f) { + let delta = f; + let compare = f; + + if (f.length === 1) { + delta = (d, x) => f(d) - x; + compare = ascendingComparator(f); + } + + function left(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + while (lo < hi) { + const mid = (lo + hi) >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + } + return lo; + } + + function right(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + while (lo < hi) { + const mid = (lo + hi) >>> 1; + if (compare(a[mid], x) > 0) hi = mid; + else lo = mid + 1; + } + return lo; + } + + function center(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + const i = left(a, x, lo, hi - 1); + return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; + } + + return {left, center, right}; +} + +function ascendingComparator(f) { + return (d, x) => ascending$3(f(d), x); +} + +function number$3(x) { + return x === null ? NaN : +x; +} + +function* numbers(values, valueof) { + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + yield value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + yield value; + } + } + } +} + +const ascendingBisect = bisector(ascending$3); +const bisectRight = ascendingBisect.right; +const bisectLeft = ascendingBisect.left; +const bisectCenter = bisector(number$3).center; + +function count$1(values, valueof) { + let count = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + ++count; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + ++count; + } + } + } + return count; +} + +function length$3(array) { + return array.length | 0; +} + +function empty$2(length) { + return !(length > 0); +} + +function arrayify(values) { + return typeof values !== "object" || "length" in values ? values : Array.from(values); +} + +function reducer(reduce) { + return values => reduce(...values); +} + +function cross$2(...values) { + const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop()); + values = values.map(arrayify); + const lengths = values.map(length$3); + const j = values.length - 1; + const index = new Array(j + 1).fill(0); + const product = []; + if (j < 0 || lengths.some(empty$2)) return product; + while (true) { + product.push(index.map((j, i) => values[i][j])); + let i = j; + while (++index[i] === lengths[i]) { + if (i === 0) return reduce ? product.map(reduce) : product; + index[i--] = 0; + } + } +} + +function cumsum(values, valueof) { + var sum = 0, index = 0; + return Float64Array.from(values, valueof === undefined + ? v => (sum += +v || 0) + : v => (sum += +valueof(v, index++, values) || 0)); +} + +function descending$2(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function variance(values, valueof) { + let count = 0; + let delta; + let mean = 0; + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + delta = value - mean; + mean += delta / ++count; + sum += delta * (value - mean); + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + delta = value - mean; + mean += delta / ++count; + sum += delta * (value - mean); + } + } + } + if (count > 1) return sum / (count - 1); +} + +function deviation(values, valueof) { + const v = variance(values, valueof); + return v ? Math.sqrt(v) : v; +} + +function extent$1(values, valueof) { + let min; + let max; + if (valueof === undefined) { + for (const value of values) { + if (value != null) { + if (min === undefined) { + if (value >= value) min = max = value; + } else { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null) { + if (min === undefined) { + if (value >= value) min = max = value; + } else { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } + return [min, max]; +} + +// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423 +class Adder { + constructor() { + this._partials = new Float64Array(32); + this._n = 0; + } + add(x) { + const p = this._partials; + let i = 0; + for (let j = 0; j < this._n && j < 32; j++) { + const y = p[j], + hi = x + y, + lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x); + if (lo) p[i++] = lo; + x = hi; + } + p[i] = x; + this._n = i + 1; + return this; + } + valueOf() { + const p = this._partials; + let n = this._n, x, y, lo, hi = 0; + if (n > 0) { + hi = p[--n]; + while (n > 0) { + x = hi; + y = p[--n]; + hi = x + y; + lo = y - (hi - x); + if (lo) break; + } + if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) { + y = lo * 2; + x = hi + y; + if (y == x - hi) hi = x; + } + } + return hi; + } +} + +function fsum(values, valueof) { + const adder = new Adder(); + if (valueof === undefined) { + for (let value of values) { + if (value = +value) { + adder.add(value); + } + } + } else { + let index = -1; + for (let value of values) { + if (value = +valueof(value, ++index, values)) { + adder.add(value); + } + } + } + return +adder; +} + +function fcumsum(values, valueof) { + const adder = new Adder(); + let index = -1; + return Float64Array.from(values, valueof === undefined + ? v => adder.add(+v || 0) + : v => adder.add(+valueof(v, ++index, values) || 0) + ); +} + +class InternMap extends Map { + constructor(entries, key = keyof) { + super(); + Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); + if (entries != null) for (const [key, value] of entries) this.set(key, value); + } + get(key) { + return super.get(intern_get(this, key)); + } + has(key) { + return super.has(intern_get(this, key)); + } + set(key, value) { + return super.set(intern_set(this, key), value); + } + delete(key) { + return super.delete(intern_delete(this, key)); + } +} + +class InternSet extends Set { + constructor(values, key = keyof) { + super(); + Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); + if (values != null) for (const value of values) this.add(value); + } + has(value) { + return super.has(intern_get(this, value)); + } + add(value) { + return super.add(intern_set(this, value)); + } + delete(value) { + return super.delete(intern_delete(this, value)); + } +} + +function intern_get({_intern, _key}, value) { + const key = _key(value); + return _intern.has(key) ? _intern.get(key) : value; +} + +function intern_set({_intern, _key}, value) { + const key = _key(value); + if (_intern.has(key)) return _intern.get(key); + _intern.set(key, value); + return value; +} + +function intern_delete({_intern, _key}, value) { + const key = _key(value); + if (_intern.has(key)) { + value = _intern.get(value); + _intern.delete(key); + } + return value; +} + +function keyof(value) { + return value !== null && typeof value === "object" ? value.valueOf() : value; +} + +function identity$9(x) { + return x; +} + +function group(values, ...keys) { + return nest(values, identity$9, identity$9, keys); +} + +function groups(values, ...keys) { + return nest(values, Array.from, identity$9, keys); +} + +function rollup(values, reduce, ...keys) { + return nest(values, identity$9, reduce, keys); +} + +function rollups(values, reduce, ...keys) { + return nest(values, Array.from, reduce, keys); +} + +function index$4(values, ...keys) { + return nest(values, identity$9, unique, keys); +} + +function indexes(values, ...keys) { + return nest(values, Array.from, unique, keys); +} + +function unique(values) { + if (values.length !== 1) throw new Error("duplicate key"); + return values[0]; +} + +function nest(values, map, reduce, keys) { + return (function regroup(values, i) { + if (i >= keys.length) return reduce(values); + const groups = new InternMap(); + const keyof = keys[i++]; + let index = -1; + for (const value of values) { + const key = keyof(value, ++index, values); + const group = groups.get(key); + if (group) group.push(value); + else groups.set(key, [value]); + } + for (const [key, values] of groups) { + groups.set(key, regroup(values, i)); + } + return map(groups); + })(values, 0); +} + +function permute(source, keys) { + return Array.from(keys, key => source[key]); +} + +function sort(values, ...F) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + values = Array.from(values); + let [f = ascending$3] = F; + if (f.length === 1 || F.length > 1) { + const index = Uint32Array.from(values, (d, i) => i); + if (F.length > 1) { + F = F.map(f => values.map(f)); + index.sort((i, j) => { + for (const f of F) { + const c = ascending$3(f[i], f[j]); + if (c) return c; + } + }); + } else { + f = values.map(f); + index.sort((i, j) => ascending$3(f[i], f[j])); + } + return permute(values, index); + } + return values.sort(f); +} + +function groupSort(values, reduce, key) { + return (reduce.length === 1 + ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending$3(av, bv) || ascending$3(ak, bk))) + : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending$3(ak, bk)))) + .map(([key]) => key); +} + +var array$5 = Array.prototype; + +var slice$4 = array$5.slice; + +function constant$b(x) { + return function() { + return x; + }; +} + +var e10 = Math.sqrt(50), + e5 = Math.sqrt(10), + e2 = Math.sqrt(2); + +function ticks(start, stop, count) { + var reverse, + i = -1, + n, + ticks, + step; + + stop = +stop, start = +start, count = +count; + if (start === stop && count > 0) return [start]; + if (reverse = stop < start) n = start, start = stop, stop = n; + if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; + + if (step > 0) { + let r0 = Math.round(start / step), r1 = Math.round(stop / step); + if (r0 * step < start) ++r0; + if (r1 * step > stop) --r1; + ticks = new Array(n = r1 - r0 + 1); + while (++i < n) ticks[i] = (r0 + i) * step; + } else { + step = -step; + let r0 = Math.round(start * step), r1 = Math.round(stop * step); + if (r0 / step < start) ++r0; + if (r1 / step > stop) --r1; + ticks = new Array(n = r1 - r0 + 1); + while (++i < n) ticks[i] = (r0 + i) / step; + } + + if (reverse) ticks.reverse(); + + return ticks; +} + +function tickIncrement(start, stop, count) { + var step = (stop - start) / Math.max(0, count), + power = Math.floor(Math.log(step) / Math.LN10), + error = step / Math.pow(10, power); + return power >= 0 + ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) + : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); +} + +function tickStep(start, stop, count) { + var step0 = Math.abs(stop - start) / Math.max(0, count), + step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), + error = step0 / step1; + if (error >= e10) step1 *= 10; + else if (error >= e5) step1 *= 5; + else if (error >= e2) step1 *= 2; + return stop < start ? -step1 : step1; +} + +function nice$1(start, stop, count) { + let prestep; + while (true) { + const step = tickIncrement(start, stop, count); + if (step === prestep || step === 0 || !isFinite(step)) { + return [start, stop]; + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } + prestep = step; + } +} + +function thresholdSturges(values) { + return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1; +} + +function bin() { + var value = identity$9, + domain = extent$1, + threshold = thresholdSturges; + + function histogram(data) { + if (!Array.isArray(data)) data = Array.from(data); + + var i, + n = data.length, + x, + values = new Array(n); + + for (i = 0; i < n; ++i) { + values[i] = value(data[i], i, data); + } + + var xz = domain(values), + x0 = xz[0], + x1 = xz[1], + tz = threshold(values, x0, x1); + + // Convert number of thresholds into uniform thresholds, and nice the + // default domain accordingly. + if (!Array.isArray(tz)) { + const max = x1, tn = +tz; + if (domain === extent$1) [x0, x1] = nice$1(x0, x1, tn); + tz = ticks(x0, x1, tn); + + // If the last threshold is coincident with the domain’s upper bound, the + // last bin will be zero-width. If the default domain is used, and this + // last threshold is coincident with the maximum input value, we can + // extend the niced upper bound by one tick to ensure uniform bin widths; + // otherwise, we simply remove the last threshold. Note that we don’t + // coerce values or the domain to numbers, and thus must be careful to + // compare order (>=) rather than strict equality (===)! + if (tz[tz.length - 1] >= x1) { + if (max >= x1 && domain === extent$1) { + const step = tickIncrement(x0, x1, tn); + if (isFinite(step)) { + if (step > 0) { + x1 = (Math.floor(x1 / step) + 1) * step; + } else if (step < 0) { + x1 = (Math.ceil(x1 * -step) + 1) / -step; + } + } + } else { + tz.pop(); + } + } + } + + // Remove any thresholds outside the domain. + var m = tz.length; + while (tz[0] <= x0) tz.shift(), --m; + while (tz[m - 1] > x1) tz.pop(), --m; + + var bins = new Array(m + 1), + bin; + + // Initialize bins. + for (i = 0; i <= m; ++i) { + bin = bins[i] = []; + bin.x0 = i > 0 ? tz[i - 1] : x0; + bin.x1 = i < m ? tz[i] : x1; + } + + // Assign data to bins by value, ignoring any outside the domain. + for (i = 0; i < n; ++i) { + x = values[i]; + if (x0 <= x && x <= x1) { + bins[bisectRight(tz, x, 0, m)].push(data[i]); + } + } + + return bins; + } + + histogram.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$b(_), histogram) : value; + }; + + histogram.domain = function(_) { + return arguments.length ? (domain = typeof _ === "function" ? _ : constant$b([_[0], _[1]]), histogram) : domain; + }; + + histogram.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$b(slice$4.call(_)) : constant$b(_), histogram) : threshold; + }; + + return histogram; +} + +function max$3(values, valueof) { + let max; + if (valueof === undefined) { + for (const value of values) { + if (value != null + && (max < value || (max === undefined && value >= value))) { + max = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (max < value || (max === undefined && value >= value))) { + max = value; + } + } + } + return max; +} + +function min$2(values, valueof) { + let min; + if (valueof === undefined) { + for (const value of values) { + if (value != null + && (min > value || (min === undefined && value >= value))) { + min = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (min > value || (min === undefined && value >= value))) { + min = value; + } + } + } + return min; +} + +// Based on https://github.com/mourner/quickselect +// ISC license, Copyright 2018 Vladimir Agafonkin. +function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending$3) { + while (right > left) { + if (right - left > 600) { + const n = right - left + 1; + const m = k - left + 1; + const z = Math.log(n); + const s = 0.5 * Math.exp(2 * z / 3); + const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); + const newLeft = Math.max(left, Math.floor(k - m * s / n + sd)); + const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd)); + quickselect(array, k, newLeft, newRight, compare); + } + + const t = array[k]; + let i = left; + let j = right; + + swap$1(array, left, k); + if (compare(array[right], t) > 0) swap$1(array, left, right); + + while (i < j) { + swap$1(array, i, j), ++i, --j; + while (compare(array[i], t) < 0) ++i; + while (compare(array[j], t) > 0) --j; + } + + if (compare(array[left], t) === 0) swap$1(array, left, j); + else ++j, swap$1(array, j, right); + + if (j <= k) left = j + 1; + if (k <= j) right = j - 1; + } + return array; +} + +function swap$1(array, i, j) { + const t = array[i]; + array[i] = array[j]; + array[j] = t; +} + +function quantile$1(values, p, valueof) { + values = Float64Array.from(numbers(values, valueof)); + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return min$2(values); + if (p >= 1) return max$3(values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = max$3(quickselect(values, i0).subarray(0, i0 + 1)), + value1 = min$2(values.subarray(i0 + 1)); + return value0 + (value1 - value0) * (i - i0); +} + +function quantileSorted(values, p, valueof = number$3) { + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values); + if (p >= 1) return +valueof(values[n - 1], n - 1, values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = +valueof(values[i0], i0, values), + value1 = +valueof(values[i0 + 1], i0 + 1, values); + return value0 + (value1 - value0) * (i - i0); +} + +function freedmanDiaconis(values, min, max) { + return Math.ceil((max - min) / (2 * (quantile$1(values, 0.75) - quantile$1(values, 0.25)) * Math.pow(count$1(values), -1 / 3))); +} + +function scott(values, min, max) { + return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count$1(values), -1 / 3))); +} + +function maxIndex(values, valueof) { + let max; + let maxIndex = -1; + let index = -1; + if (valueof === undefined) { + for (const value of values) { + ++index; + if (value != null + && (max < value || (max === undefined && value >= value))) { + max = value, maxIndex = index; + } + } + } else { + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (max < value || (max === undefined && value >= value))) { + max = value, maxIndex = index; + } + } + } + return maxIndex; +} + +function mean(values, valueof) { + let count = 0; + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + ++count, sum += value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + ++count, sum += value; + } + } + } + if (count) return sum / count; +} + +function median(values, valueof) { + return quantile$1(values, 0.5, valueof); +} + +function* flatten(arrays) { + for (const array of arrays) { + yield* array; + } +} + +function merge(arrays) { + return Array.from(flatten(arrays)); +} + +function minIndex(values, valueof) { + let min; + let minIndex = -1; + let index = -1; + if (valueof === undefined) { + for (const value of values) { + ++index; + if (value != null + && (min > value || (min === undefined && value >= value))) { + min = value, minIndex = index; + } + } + } else { + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (min > value || (min === undefined && value >= value))) { + min = value, minIndex = index; + } + } + } + return minIndex; +} + +function pairs(values, pairof = pair) { + const pairs = []; + let previous; + let first = false; + for (const value of values) { + if (first) pairs.push(pairof(previous, value)); + previous = value; + first = true; + } + return pairs; +} + +function pair(a, b) { + return [a, b]; +} + +function sequence(start, stop, step) { + start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; + + var i = -1, + n = Math.max(0, Math.ceil((stop - start) / step)) | 0, + range = new Array(n); + + while (++i < n) { + range[i] = start + i * step; + } + + return range; +} + +function least(values, compare = ascending$3) { + let min; + let defined = false; + if (compare.length === 1) { + let minValue; + for (const element of values) { + const value = compare(element); + if (defined + ? ascending$3(value, minValue) < 0 + : ascending$3(value, value) === 0) { + min = element; + minValue = value; + defined = true; + } + } + } else { + for (const value of values) { + if (defined + ? compare(value, min) < 0 + : compare(value, value) === 0) { + min = value; + defined = true; + } + } + } + return min; +} + +function leastIndex(values, compare = ascending$3) { + if (compare.length === 1) return minIndex(values, compare); + let minValue; + let min = -1; + let index = -1; + for (const value of values) { + ++index; + if (min < 0 + ? compare(value, value) === 0 + : compare(value, minValue) < 0) { + minValue = value; + min = index; + } + } + return min; +} + +function greatest(values, compare = ascending$3) { + let max; + let defined = false; + if (compare.length === 1) { + let maxValue; + for (const element of values) { + const value = compare(element); + if (defined + ? ascending$3(value, maxValue) > 0 + : ascending$3(value, value) === 0) { + max = element; + maxValue = value; + defined = true; + } + } + } else { + for (const value of values) { + if (defined + ? compare(value, max) > 0 + : compare(value, value) === 0) { + max = value; + defined = true; + } + } + } + return max; +} + +function greatestIndex(values, compare = ascending$3) { + if (compare.length === 1) return maxIndex(values, compare); + let maxValue; + let max = -1; + let index = -1; + for (const value of values) { + ++index; + if (max < 0 + ? compare(value, value) === 0 + : compare(value, maxValue) > 0) { + maxValue = value; + max = index; + } + } + return max; +} + +function scan(values, compare) { + const index = leastIndex(values, compare); + return index < 0 ? undefined : index; +} + +var shuffle$1 = shuffler(Math.random); + +function shuffler(random) { + return function shuffle(array, i0 = 0, i1 = array.length) { + let m = i1 - (i0 = +i0); + while (m) { + const i = random() * m-- | 0, t = array[m + i0]; + array[m + i0] = array[i + i0]; + array[i + i0] = t; + } + return array; + }; +} + +function sum$1(values, valueof) { + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value = +value) { + sum += value; + } + } + } else { + let index = -1; + for (let value of values) { + if (value = +valueof(value, ++index, values)) { + sum += value; + } + } + } + return sum; +} + +function transpose(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = min$2(matrix, length$2), transpose = new Array(m); ++i < m;) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { + row[j] = matrix[j][i]; + } + } + return transpose; +} + +function length$2(d) { + return d.length; +} + +function zip() { + return transpose(arguments); +} + +function every(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + let index = -1; + for (const value of values) { + if (!test(value, ++index, values)) { + return false; + } + } + return true; +} + +function some(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + let index = -1; + for (const value of values) { + if (test(value, ++index, values)) { + return true; + } + } + return false; +} + +function filter$1(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + const array = []; + let index = -1; + for (const value of values) { + if (test(value, ++index, values)) { + array.push(value); + } + } + return array; +} + +function map$1(values, mapper) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + if (typeof mapper !== "function") throw new TypeError("mapper is not a function"); + return Array.from(values, (value, index) => mapper(value, index, values)); +} + +function reduce(values, reducer, value) { + if (typeof reducer !== "function") throw new TypeError("reducer is not a function"); + const iterator = values[Symbol.iterator](); + let done, next, index = -1; + if (arguments.length < 3) { + ({done, value} = iterator.next()); + if (done) return; + ++index; + } + while (({done, value: next} = iterator.next()), !done) { + value = reducer(value, next, ++index, values); + } + return value; +} + +function reverse$1(values) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + return Array.from(values).reverse(); +} + +function difference(values, ...others) { + values = new Set(values); + for (const other of others) { + for (const value of other) { + values.delete(value); + } + } + return values; +} + +function disjoint(values, other) { + const iterator = other[Symbol.iterator](), set = new Set(); + for (const v of values) { + if (set.has(v)) return false; + let value, done; + while (({value, done} = iterator.next())) { + if (done) break; + if (Object.is(v, value)) return false; + set.add(value); + } + } + return true; +} + +function set$2(values) { + return values instanceof Set ? values : new Set(values); +} + +function intersection(values, ...others) { + values = new Set(values); + others = others.map(set$2); + out: for (const value of values) { + for (const other of others) { + if (!other.has(value)) { + values.delete(value); + continue out; + } + } + } + return values; +} + +function superset(values, other) { + const iterator = values[Symbol.iterator](), set = new Set(); + for (const o of other) { + if (set.has(o)) continue; + let value, done; + while (({value, done} = iterator.next())) { + if (done) return false; + set.add(value); + if (Object.is(o, value)) break; + } + } + return true; +} + +function subset(values, other) { + return superset(other, values); +} + +function union(...others) { + const set = new Set(); + for (const other of others) { + for (const o of other) { + set.add(o); + } + } + return set; +} + +var slice$3 = Array.prototype.slice; + +function identity$8(x) { + return x; +} + +var top = 1, + right = 2, + bottom = 3, + left = 4, + epsilon$5 = 1e-6; + +function translateX(x) { + return "translate(" + x + ",0)"; +} + +function translateY(y) { + return "translate(0," + y + ")"; +} + +function number$2(scale) { + return d => +scale(d); +} + +function center$1(scale, offset) { + offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; + if (scale.round()) offset = Math.round(offset); + return d => +scale(d) + offset; +} + +function entering() { + return !this.__axis; +} + +function axis(orient, scale) { + var tickArguments = [], + tickValues = null, + tickFormat = null, + tickSizeInner = 6, + tickSizeOuter = 6, + tickPadding = 3, + offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, + k = orient === top || orient === left ? -1 : 1, + x = orient === left || orient === right ? "x" : "y", + transform = orient === top || orient === bottom ? translateX : translateY; + + function axis(context) { + var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues, + format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$8) : tickFormat, + spacing = Math.max(tickSizeInner, 0) + tickPadding, + range = scale.range(), + range0 = +range[0] + offset, + range1 = +range[range.length - 1] + offset, + position = (scale.bandwidth ? center$1 : number$2)(scale.copy(), offset), + selection = context.selection ? context.selection() : context, + path = selection.selectAll(".domain").data([null]), + tick = selection.selectAll(".tick").data(values, scale).order(), + tickExit = tick.exit(), + tickEnter = tick.enter().append("g").attr("class", "tick"), + line = tick.select("line"), + text = tick.select("text"); + + path = path.merge(path.enter().insert("path", ".tick") + .attr("class", "domain") + .attr("stroke", "currentColor")); + + tick = tick.merge(tickEnter); + + line = line.merge(tickEnter.append("line") + .attr("stroke", "currentColor") + .attr(x + "2", k * tickSizeInner)); + + text = text.merge(tickEnter.append("text") + .attr("fill", "currentColor") + .attr(x, k * spacing) + .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); + + if (context !== selection) { + path = path.transition(context); + tick = tick.transition(context); + line = line.transition(context); + text = text.transition(context); + + tickExit = tickExit.transition(context) + .attr("opacity", epsilon$5) + .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); }); + + tickEnter + .attr("opacity", epsilon$5) + .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); }); + } + + tickExit.remove(); + + path + .attr("d", orient === left || orient === right + ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1) + : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1)); + + tick + .attr("opacity", 1) + .attr("transform", function(d) { return transform(position(d) + offset); }); + + line + .attr(x + "2", k * tickSizeInner); + + text + .attr(x, k * spacing) + .text(format); + + selection.filter(entering) + .attr("fill", "none") + .attr("font-size", 10) + .attr("font-family", "sans-serif") + .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); + + selection + .each(function() { this.__axis = position; }); + } + + axis.scale = function(_) { + return arguments.length ? (scale = _, axis) : scale; + }; + + axis.ticks = function() { + return tickArguments = slice$3.call(arguments), axis; + }; + + axis.tickArguments = function(_) { + return arguments.length ? (tickArguments = _ == null ? [] : slice$3.call(_), axis) : tickArguments.slice(); + }; + + axis.tickValues = function(_) { + return arguments.length ? (tickValues = _ == null ? null : slice$3.call(_), axis) : tickValues && tickValues.slice(); + }; + + axis.tickFormat = function(_) { + return arguments.length ? (tickFormat = _, axis) : tickFormat; + }; + + axis.tickSize = function(_) { + return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner; + }; + + axis.tickSizeInner = function(_) { + return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner; + }; + + axis.tickSizeOuter = function(_) { + return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter; + }; + + axis.tickPadding = function(_) { + return arguments.length ? (tickPadding = +_, axis) : tickPadding; + }; + + axis.offset = function(_) { + return arguments.length ? (offset = +_, axis) : offset; + }; + + return axis; +} + +function axisTop(scale) { + return axis(top, scale); +} + +function axisRight(scale) { + return axis(right, scale); +} + +function axisBottom(scale) { + return axis(bottom, scale); +} + +function axisLeft(scale) { + return axis(left, scale); +} + +var noop$3 = {value: () => {}}; + +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} + +function Dispatch(_) { + this._ = _; +} + +function parseTypenames$1(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); + return {type: t, name: name}; + }); +} + +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, + T = parseTypenames$1(typename + "", _), + t, + i = -1, + n = T.length; + + // If no callback was specified, return the callback of the given type and name. + if (arguments.length < 2) { + while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t; + return; + } + + // If a type was specified, set the callback for the given type and name. + // Otherwise, if a null callback was specified, remove callbacks of the given name. + if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback); + else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null); + } + + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + } +}; + +function get$1(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} + +function set$1(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop$3, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) type.push({name: name, value: callback}); + return type; +} + +var xhtml = "http://www.w3.org/1999/xhtml"; + +var namespaces = { + svg: "http://www.w3.org/2000/svg", + xhtml: xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; + +function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins +} + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, + uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml + ? document.createElement(name) + : document.createElementNS(uri, name); + }; +} + +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} + +function creator(name) { + var fullname = namespace(name); + return (fullname.local + ? creatorFixed + : creatorInherit)(fullname); +} + +function none$2() {} + +function selector(selector) { + return selector == null ? none$2 : function() { + return this.querySelector(selector); + }; +} + +function selection_select(select) { + if (typeof select !== "function") select = selector(select); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + + return new Selection$1(subgroups, this._parents); +} + +function array$4(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function empty$1() { + return []; +} + +function selectorAll(selector) { + return selector == null ? empty$1 : function() { + return this.querySelectorAll(selector); + }; +} + +function arrayAll(select) { + return function() { + var group = select.apply(this, arguments); + return group == null ? [] : array$4(group); + }; +} + +function selection_selectAll(select) { + if (typeof select === "function") select = arrayAll(select); + else select = selectorAll(select); + + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + + return new Selection$1(subgroups, parents); +} + +function matcher(selector) { + return function() { + return this.matches(selector); + }; +} + +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +var find$1 = Array.prototype.find; + +function childFind(match) { + return function() { + return find$1.call(this.children, match); + }; +} + +function childFirst() { + return this.firstElementChild; +} + +function selection_selectChild(match) { + return this.select(match == null ? childFirst + : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +var filter = Array.prototype.filter; + +function children() { + return this.children; +} + +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} + +function selection_selectChildren(match) { + return this.selectAll(match == null ? children + : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +function selection_filter(match) { + if (typeof match !== "function") match = matcher(match); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + + return new Selection$1(subgroups, this._parents); +} + +function sparse(update) { + return new Array(update.length); +} + +function selection_enter() { + return new Selection$1(this._enter || this._groups.map(sparse), this._parents); +} + +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} + +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, + insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, + querySelector: function(selector) { return this._parent.querySelector(selector); }, + querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } +}; + +function constant$a(x) { + return function() { + return x; + }; +} + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, + node, + groupLength = group.length, + dataLength = data.length; + + // Put any non-null nodes that fit into update. + // Put any null nodes into enter. + // Put any remaining data into enter. + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + + // Put any non-null nodes that don’t fit into exit. + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} + +function bindKey(parent, group, enter, update, exit, data, key) { + var i, + node, + nodeByKeyValue = new Map, + groupLength = group.length, + dataLength = data.length, + keyValues = new Array(groupLength), + keyValue; + + // Compute the key for each node. + // If multiple nodes have the same key, the duplicates are added to exit. + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + + // Compute the key for each datum. + // If there a node associated with this key, join and add it to update. + // If there is not (or the key is a duplicate), add it to enter. + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + + // Add any remaining nodes that were not bound to data to exit. + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) { + exit[i] = node; + } + } +} + +function datum(node) { + return node.__data__; +} + +function selection_data(value, key) { + if (!arguments.length) return Array.from(this, datum); + + var bind = key ? bindKey : bindIndex, + parents = this._parents, + groups = this._groups; + + if (typeof value !== "function") value = constant$a(value); + + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], + group = groups[j], + groupLength = group.length, + data = array$4(value.call(parent, parent && parent.__data__, j, parents)), + dataLength = data.length, + enterGroup = enter[j] = new Array(dataLength), + updateGroup = update[j] = new Array(dataLength), + exitGroup = exit[j] = new Array(groupLength); + + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + + // Now connect the enter nodes to their following update node, such that + // appendChild can insert the materialized enter node before this node, + // rather than at the end of the parent node. + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength); + previous._next = next || null; + } + } + } + + update = new Selection$1(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} + +function selection_exit() { + return new Selection$1(this._exit || this._groups.map(sparse), this._parents); +} + +function selection_join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + enter = typeof onenter === "function" ? onenter(enter) : enter.append(onenter + ""); + if (onupdate != null) update = onupdate(update); + if (onexit == null) exit.remove(); else onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +function selection_merge(selection) { + if (!(selection instanceof Selection$1)) throw new Error("invalid merge"); + + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + + return new Selection$1(merges, this._parents); +} + +function selection_order() { + + for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + + return this; +} + +function selection_sort(compare) { + if (!compare) compare = ascending$2; + + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + + return new Selection$1(sortgroups, this._parents).order(); +} + +function ascending$2(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +function selection_call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +function selection_nodes() { + return Array.from(this); +} + +function selection_node() { + + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) return node; + } + } + + return null; +} + +function selection_size() { + let size = 0; + for (const node of this) ++size; // eslint-disable-line no-unused-vars + return size; +} + +function selection_empty() { + return !this.node(); +} + +function selection_each(callback) { + + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) callback.call(node, node.__data__, i, group); + } + } + + return this; +} + +function attrRemove$1(name) { + return function() { + this.removeAttribute(name); + }; +} + +function attrRemoveNS$1(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} + +function attrConstant$1(name, value) { + return function() { + this.setAttribute(name, value); + }; +} + +function attrConstantNS$1(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} + +function attrFunction$1(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttribute(name); + else this.setAttribute(name, v); + }; +} + +function attrFunctionNS$1(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttributeNS(fullname.space, fullname.local); + else this.setAttributeNS(fullname.space, fullname.local, v); + }; +} + +function selection_attr(name, value) { + var fullname = namespace(name); + + if (arguments.length < 2) { + var node = this.node(); + return fullname.local + ? node.getAttributeNS(fullname.space, fullname.local) + : node.getAttribute(fullname); + } + + return this.each((value == null + ? (fullname.local ? attrRemoveNS$1 : attrRemove$1) : (typeof value === "function" + ? (fullname.local ? attrFunctionNS$1 : attrFunction$1) + : (fullname.local ? attrConstantNS$1 : attrConstant$1)))(fullname, value)); +} + +function defaultView(node) { + return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node + || (node.document && node) // node is a Window + || node.defaultView; // node is a Document +} + +function styleRemove$1(name) { + return function() { + this.style.removeProperty(name); + }; +} + +function styleConstant$1(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} + +function styleFunction$1(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.style.removeProperty(name); + else this.style.setProperty(name, v, priority); + }; +} + +function selection_style(name, value, priority) { + return arguments.length > 1 + ? this.each((value == null + ? styleRemove$1 : typeof value === "function" + ? styleFunction$1 + : styleConstant$1)(name, value, priority == null ? "" : priority)) + : styleValue(this.node(), name); +} + +function styleValue(node, name) { + return node.style.getPropertyValue(name) + || defaultView(node).getComputedStyle(node, null).getPropertyValue(name); +} + +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} + +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} + +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) delete this[name]; + else this[name] = v; + }; +} + +function selection_property(name, value) { + return arguments.length > 1 + ? this.each((value == null + ? propertyRemove : typeof value === "function" + ? propertyFunction + : propertyConstant)(name, value)) + : this.node()[name]; +} + +function classArray(string) { + return string.trim().split(/^|\s+/); +} + +function classList(node) { + return node.classList || new ClassList(node); +} + +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} + +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; + +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.add(names[i]); +} + +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.remove(names[i]); +} + +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} + +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} + +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} + +function selection_classed(name, value) { + var names = classArray(name + ""); + + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) if (!list.contains(names[i])) return false; + return true; + } + + return this.each((typeof value === "function" + ? classedFunction : value + ? classedTrue + : classedFalse)(names, value)); +} + +function textRemove() { + this.textContent = ""; +} + +function textConstant$1(value) { + return function() { + this.textContent = value; + }; +} + +function textFunction$1(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} + +function selection_text(value) { + return arguments.length + ? this.each(value == null + ? textRemove : (typeof value === "function" + ? textFunction$1 + : textConstant$1)(value)) + : this.node().textContent; +} + +function htmlRemove() { + this.innerHTML = ""; +} + +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} + +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} + +function selection_html(value) { + return arguments.length + ? this.each(value == null + ? htmlRemove : (typeof value === "function" + ? htmlFunction + : htmlConstant)(value)) + : this.node().innerHTML; +} + +function raise() { + if (this.nextSibling) this.parentNode.appendChild(this); +} + +function selection_raise() { + return this.each(raise); +} + +function lower() { + if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); +} + +function selection_lower() { + return this.each(lower); +} + +function selection_append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +function constantNull() { + return null; +} + +function selection_insert(name, before) { + var create = typeof name === "function" ? name : creator(name), + select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +function remove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); +} + +function selection_remove() { + return this.each(remove); +} + +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} + +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} + +function selection_clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +function selection_datum(value) { + return arguments.length + ? this.property("__data__", value) + : this.node().__data__; +} + +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} + +function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + return {type: t, name: name}; + }); +} + +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) on.length = i; + else delete this.__on; + }; +} + +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options}; + if (!on) this.__on = [o]; + else on.push(o); + }; +} + +function selection_on(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + + if (arguments.length < 2) { + var on = this.node().__on; + if (on) for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); + return this; +} + +function dispatchEvent(node, type, params) { + var window = defaultView(node), + event = window.CustomEvent; + + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else event.initEvent(type, false, false); + } + + node.dispatchEvent(event); +} + +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} + +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} + +function selection_dispatch(type, params) { + return this.each((typeof params === "function" + ? dispatchFunction + : dispatchConstant)(type, params)); +} + +function* selection_iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) yield node; + } + } +} + +var root$1 = [null]; + +function Selection$1(groups, parents) { + this._groups = groups; + this._parents = parents; +} + +function selection() { + return new Selection$1([[document.documentElement]], root$1); +} + +function selection_selection() { + return this; +} + +Selection$1.prototype = selection.prototype = { + constructor: Selection$1, + select: selection_select, + selectAll: selection_selectAll, + selectChild: selection_selectChild, + selectChildren: selection_selectChildren, + filter: selection_filter, + data: selection_data, + enter: selection_enter, + exit: selection_exit, + join: selection_join, + merge: selection_merge, + selection: selection_selection, + order: selection_order, + sort: selection_sort, + call: selection_call, + nodes: selection_nodes, + node: selection_node, + size: selection_size, + empty: selection_empty, + each: selection_each, + attr: selection_attr, + style: selection_style, + property: selection_property, + classed: selection_classed, + text: selection_text, + html: selection_html, + raise: selection_raise, + lower: selection_lower, + append: selection_append, + insert: selection_insert, + remove: selection_remove, + clone: selection_clone, + datum: selection_datum, + on: selection_on, + dispatch: selection_dispatch, + [Symbol.iterator]: selection_iterator +}; + +function select(selector) { + return typeof selector === "string" + ? new Selection$1([[document.querySelector(selector)]], [document.documentElement]) + : new Selection$1([[selector]], root$1); +} + +function create$1(name) { + return select(creator(name).call(document.documentElement)); +} + +var nextId = 0; + +function local$1() { + return new Local; +} + +function Local() { + this._ = "@" + (++nextId).toString(36); +} + +Local.prototype = local$1.prototype = { + constructor: Local, + get: function(node) { + var id = this._; + while (!(id in node)) if (!(node = node.parentNode)) return; + return node[id]; + }, + set: function(node, value) { + return node[this._] = value; + }, + remove: function(node) { + return this._ in node && delete node[this._]; + }, + toString: function() { + return this._; + } +}; + +function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) event = sourceEvent; + return event; +} + +function pointer(event, node) { + event = sourceEvent(event); + if (node === undefined) node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +function pointers(events, node) { + if (events.target) { // i.e., instanceof Event, not TouchList or iterable + events = sourceEvent(events); + if (node === undefined) node = events.currentTarget; + events = events.touches || [events]; + } + return Array.from(events, event => pointer(event, node)); +} + +function selectAll(selector) { + return typeof selector === "string" + ? new Selection$1([document.querySelectorAll(selector)], [document.documentElement]) + : new Selection$1([selector == null ? [] : array$4(selector)], root$1); +} + +function nopropagation$2(event) { + event.stopImmediatePropagation(); +} + +function noevent$2(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +function dragDisable(view) { + var root = view.document.documentElement, + selection = select(view).on("dragstart.drag", noevent$2, true); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent$2, true); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} + +function yesdrag(view, noclick) { + var root = view.document.documentElement, + selection = select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent$2, true); + setTimeout(function() { selection.on("click.drag", null); }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +var constant$9 = x => () => x; + +function DragEvent(type, { + sourceEvent, + subject, + target, + identifier, + active, + x, y, dx, dy, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + subject: {value: subject, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + identifier: {value: identifier, enumerable: true, configurable: true}, + active: {value: active, enumerable: true, configurable: true}, + x: {value: x, enumerable: true, configurable: true}, + y: {value: y, enumerable: true, configurable: true}, + dx: {value: dx, enumerable: true, configurable: true}, + dy: {value: dy, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +DragEvent.prototype.on = function() { + var value = this._.on.apply(this._, arguments); + return value === this._ ? this : value; +}; + +// Ignore right-click, since that should open the context menu. +function defaultFilter$2(event) { + return !event.ctrlKey && !event.button; +} + +function defaultContainer() { + return this.parentNode; +} + +function defaultSubject(event, d) { + return d == null ? {x: event.x, y: event.y} : d; +} + +function defaultTouchable$2() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +function drag() { + var filter = defaultFilter$2, + container = defaultContainer, + subject = defaultSubject, + touchable = defaultTouchable$2, + gestures = {}, + listeners = dispatch("start", "drag", "end"), + active = 0, + mousedownx, + mousedowny, + mousemoving, + touchending, + clickDistance2 = 0; + + function drag(selection) { + selection + .on("mousedown.drag", mousedowned) + .filter(touchable) + .on("touchstart.drag", touchstarted) + .on("touchmove.drag", touchmoved) + .on("touchend.drag touchcancel.drag", touchended) + .style("touch-action", "none") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + function mousedowned(event, d) { + if (touchending || !filter.call(this, event, d)) return; + var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse"); + if (!gesture) return; + select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true); + dragDisable(event.view); + nopropagation$2(event); + mousemoving = false; + mousedownx = event.clientX; + mousedowny = event.clientY; + gesture("start", event); + } + + function mousemoved(event) { + noevent$2(event); + if (!mousemoving) { + var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; + mousemoving = dx * dx + dy * dy > clickDistance2; + } + gestures.mouse("drag", event); + } + + function mouseupped(event) { + select(event.view).on("mousemove.drag mouseup.drag", null); + yesdrag(event.view, mousemoving); + noevent$2(event); + gestures.mouse("end", event); + } + + function touchstarted(event, d) { + if (!filter.call(this, event, d)) return; + var touches = event.changedTouches, + c = container.call(this, event, d), + n = touches.length, i, gesture; + + for (i = 0; i < n; ++i) { + if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) { + nopropagation$2(event); + gesture("start", event, touches[i]); + } + } + } + + function touchmoved(event) { + var touches = event.changedTouches, + n = touches.length, i, gesture; + + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + noevent$2(event); + gesture("drag", event, touches[i]); + } + } + } + + function touchended(event) { + var touches = event.changedTouches, + n = touches.length, i, gesture; + + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + nopropagation$2(event); + gesture("end", event, touches[i]); + } + } + } + + function beforestart(that, container, event, d, identifier, touch) { + var dispatch = listeners.copy(), + p = pointer(touch || event, container), dx, dy, + s; + + if ((s = subject.call(that, new DragEvent("beforestart", { + sourceEvent: event, + target: drag, + identifier, + active, + x: p[0], + y: p[1], + dx: 0, + dy: 0, + dispatch + }), d)) == null) return; + + dx = s.x - p[0] || 0; + dy = s.y - p[1] || 0; + + return function gesture(type, event, touch) { + var p0 = p, n; + switch (type) { + case "start": gestures[identifier] = gesture, n = active++; break; + case "end": delete gestures[identifier], --active; // nobreak + case "drag": p = pointer(touch || event, container), n = active; break; + } + dispatch.call( + type, + that, + new DragEvent(type, { + sourceEvent: event, + subject: s, + target: drag, + identifier, + active: n, + x: p[0] + dx, + y: p[1] + dy, + dx: p[0] - p0[0], + dy: p[1] - p0[1], + dispatch + }), + d + ); + }; + } + + drag.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant$9(!!_), drag) : filter; + }; + + drag.container = function(_) { + return arguments.length ? (container = typeof _ === "function" ? _ : constant$9(_), drag) : container; + }; + + drag.subject = function(_) { + return arguments.length ? (subject = typeof _ === "function" ? _ : constant$9(_), drag) : subject; + }; + + drag.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$9(!!_), drag) : touchable; + }; + + drag.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? drag : value; + }; + + drag.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); + }; + + return drag; +} + +function define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} + +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) prototype[key] = definition[key]; + return prototype; +} + +function Color() {} + +var darker = 0.7; +var brighter = 1 / darker; + +var reI = "\\s*([+-]?\\d+)\\s*", + reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", + reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", + reHex = /^#([0-9a-f]{3,8})$/, + reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), + reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), + reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), + reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), + reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), + reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); + +var named = { + aliceblue: 0xf0f8ff, + antiquewhite: 0xfaebd7, + aqua: 0x00ffff, + aquamarine: 0x7fffd4, + azure: 0xf0ffff, + beige: 0xf5f5dc, + bisque: 0xffe4c4, + black: 0x000000, + blanchedalmond: 0xffebcd, + blue: 0x0000ff, + blueviolet: 0x8a2be2, + brown: 0xa52a2a, + burlywood: 0xdeb887, + cadetblue: 0x5f9ea0, + chartreuse: 0x7fff00, + chocolate: 0xd2691e, + coral: 0xff7f50, + cornflowerblue: 0x6495ed, + cornsilk: 0xfff8dc, + crimson: 0xdc143c, + cyan: 0x00ffff, + darkblue: 0x00008b, + darkcyan: 0x008b8b, + darkgoldenrod: 0xb8860b, + darkgray: 0xa9a9a9, + darkgreen: 0x006400, + darkgrey: 0xa9a9a9, + darkkhaki: 0xbdb76b, + darkmagenta: 0x8b008b, + darkolivegreen: 0x556b2f, + darkorange: 0xff8c00, + darkorchid: 0x9932cc, + darkred: 0x8b0000, + darksalmon: 0xe9967a, + darkseagreen: 0x8fbc8f, + darkslateblue: 0x483d8b, + darkslategray: 0x2f4f4f, + darkslategrey: 0x2f4f4f, + darkturquoise: 0x00ced1, + darkviolet: 0x9400d3, + deeppink: 0xff1493, + deepskyblue: 0x00bfff, + dimgray: 0x696969, + dimgrey: 0x696969, + dodgerblue: 0x1e90ff, + firebrick: 0xb22222, + floralwhite: 0xfffaf0, + forestgreen: 0x228b22, + fuchsia: 0xff00ff, + gainsboro: 0xdcdcdc, + ghostwhite: 0xf8f8ff, + gold: 0xffd700, + goldenrod: 0xdaa520, + gray: 0x808080, + green: 0x008000, + greenyellow: 0xadff2f, + grey: 0x808080, + honeydew: 0xf0fff0, + hotpink: 0xff69b4, + indianred: 0xcd5c5c, + indigo: 0x4b0082, + ivory: 0xfffff0, + khaki: 0xf0e68c, + lavender: 0xe6e6fa, + lavenderblush: 0xfff0f5, + lawngreen: 0x7cfc00, + lemonchiffon: 0xfffacd, + lightblue: 0xadd8e6, + lightcoral: 0xf08080, + lightcyan: 0xe0ffff, + lightgoldenrodyellow: 0xfafad2, + lightgray: 0xd3d3d3, + lightgreen: 0x90ee90, + lightgrey: 0xd3d3d3, + lightpink: 0xffb6c1, + lightsalmon: 0xffa07a, + lightseagreen: 0x20b2aa, + lightskyblue: 0x87cefa, + lightslategray: 0x778899, + lightslategrey: 0x778899, + lightsteelblue: 0xb0c4de, + lightyellow: 0xffffe0, + lime: 0x00ff00, + limegreen: 0x32cd32, + linen: 0xfaf0e6, + magenta: 0xff00ff, + maroon: 0x800000, + mediumaquamarine: 0x66cdaa, + mediumblue: 0x0000cd, + mediumorchid: 0xba55d3, + mediumpurple: 0x9370db, + mediumseagreen: 0x3cb371, + mediumslateblue: 0x7b68ee, + mediumspringgreen: 0x00fa9a, + mediumturquoise: 0x48d1cc, + mediumvioletred: 0xc71585, + midnightblue: 0x191970, + mintcream: 0xf5fffa, + mistyrose: 0xffe4e1, + moccasin: 0xffe4b5, + navajowhite: 0xffdead, + navy: 0x000080, + oldlace: 0xfdf5e6, + olive: 0x808000, + olivedrab: 0x6b8e23, + orange: 0xffa500, + orangered: 0xff4500, + orchid: 0xda70d6, + palegoldenrod: 0xeee8aa, + palegreen: 0x98fb98, + paleturquoise: 0xafeeee, + palevioletred: 0xdb7093, + papayawhip: 0xffefd5, + peachpuff: 0xffdab9, + peru: 0xcd853f, + pink: 0xffc0cb, + plum: 0xdda0dd, + powderblue: 0xb0e0e6, + purple: 0x800080, + rebeccapurple: 0x663399, + red: 0xff0000, + rosybrown: 0xbc8f8f, + royalblue: 0x4169e1, + saddlebrown: 0x8b4513, + salmon: 0xfa8072, + sandybrown: 0xf4a460, + seagreen: 0x2e8b57, + seashell: 0xfff5ee, + sienna: 0xa0522d, + silver: 0xc0c0c0, + skyblue: 0x87ceeb, + slateblue: 0x6a5acd, + slategray: 0x708090, + slategrey: 0x708090, + snow: 0xfffafa, + springgreen: 0x00ff7f, + steelblue: 0x4682b4, + tan: 0xd2b48c, + teal: 0x008080, + thistle: 0xd8bfd8, + tomato: 0xff6347, + turquoise: 0x40e0d0, + violet: 0xee82ee, + wheat: 0xf5deb3, + white: 0xffffff, + whitesmoke: 0xf5f5f5, + yellow: 0xffff00, + yellowgreen: 0x9acd32 +}; + +define(Color, color, { + copy: function(channels) { + return Object.assign(new this.constructor, this, channels); + }, + displayable: function() { + return this.rgb().displayable(); + }, + hex: color_formatHex, // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); + +function color_formatHex() { + return this.rgb().formatHex(); +} + +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} + +function color_formatRgb() { + return this.rgb().formatRgb(); +} + +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 + : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 + : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 + : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 + : null) // invalid hex + : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) + : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) + : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) + : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) + : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) + : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) + : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins + : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) + : null; +} + +function rgbn(n) { + return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); +} + +function rgba(r, g, b, a) { + if (a <= 0) r = g = b = NaN; + return new Rgb(r, g, b, a); +} + +function rgbConvert(o) { + if (!(o instanceof Color)) o = color(o); + if (!o) return new Rgb; + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} + +function rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} + +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} + +define(Rgb, rgb, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb: function() { + return this; + }, + displayable: function() { + return (-0.5 <= this.r && this.r < 255.5) + && (-0.5 <= this.g && this.g < 255.5) + && (-0.5 <= this.b && this.b < 255.5) + && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); + +function rgb_formatHex() { + return "#" + hex(this.r) + hex(this.g) + hex(this.b); +} + +function rgb_formatRgb() { + var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); + return (a === 1 ? "rgb(" : "rgba(") + + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + + (a === 1 ? ")" : ", " + a + ")"); +} + +function hex(value) { + value = Math.max(0, Math.min(255, Math.round(value) || 0)); + return (value < 16 ? "0" : "") + value.toString(16); +} + +function hsla(h, s, l, a) { + if (a <= 0) h = s = l = NaN; + else if (l <= 0 || l >= 1) h = s = NaN; + else if (s <= 0) h = NaN; + return new Hsl(h, s, l, a); +} + +function hslConvert(o) { + if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) o = color(o); + if (!o) return new Hsl; + if (o instanceof Hsl) return o; + o = o.rgb(); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = NaN, + s = max - min, + l = (max + min) / 2; + if (s) { + if (r === max) h = (g - b) / s + (g < b) * 6; + else if (g === max) h = (b - r) / s + 2; + else h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} + +function hsl$2(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} + +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Hsl, hsl$2, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb: function() { + var h = this.h % 360 + (this.h < 0) * 360, + s = isNaN(h) || isNaN(this.s) ? 0 : this.s, + l = this.l, + m2 = l + (l < 0.5 ? l : 1 - l) * s, + m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + displayable: function() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) + && (0 <= this.l && this.l <= 1) + && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl: function() { + var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); + return (a === 1 ? "hsl(" : "hsla(") + + (this.h || 0) + ", " + + (this.s || 0) * 100 + "%, " + + (this.l || 0) * 100 + "%" + + (a === 1 ? ")" : ", " + a + ")"); + } +})); + +/* From FvD 13.37, CSS Color Module Level 3 */ +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 + : h < 180 ? m2 + : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 + : m1) * 255; +} + +const radians$1 = Math.PI / 180; +const degrees$2 = 180 / Math.PI; + +// https://observablehq.com/@mbostock/lab-and-rgb +const K = 18, + Xn = 0.96422, + Yn = 1, + Zn = 0.82521, + t0$1 = 4 / 29, + t1$1 = 6 / 29, + t2 = 3 * t1$1 * t1$1, + t3 = t1$1 * t1$1 * t1$1; + +function labConvert(o) { + if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); + if (o instanceof Hcl) return hcl2lab(o); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = rgb2lrgb(o.r), + g = rgb2lrgb(o.g), + b = rgb2lrgb(o.b), + y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; + if (r === g && g === b) x = z = y; else { + x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); + z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); + } + return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); +} + +function gray(l, opacity) { + return new Lab(l, 0, 0, opacity == null ? 1 : opacity); +} + +function lab$1(l, a, b, opacity) { + return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); +} + +function Lab(l, a, b, opacity) { + this.l = +l; + this.a = +a; + this.b = +b; + this.opacity = +opacity; +} + +define(Lab, lab$1, extend(Color, { + brighter: function(k) { + return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + darker: function(k) { + return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + rgb: function() { + var y = (this.l + 16) / 116, + x = isNaN(this.a) ? y : y + this.a / 500, + z = isNaN(this.b) ? y : y - this.b / 200; + x = Xn * lab2xyz(x); + y = Yn * lab2xyz(y); + z = Zn * lab2xyz(z); + return new Rgb( + lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), + lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), + lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), + this.opacity + ); + } +})); + +function xyz2lab(t) { + return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1; +} + +function lab2xyz(t) { + return t > t1$1 ? t * t * t : t2 * (t - t0$1); +} + +function lrgb2rgb(x) { + return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); +} + +function rgb2lrgb(x) { + return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); +} + +function hclConvert(o) { + if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); + if (!(o instanceof Lab)) o = labConvert(o); + if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); + var h = Math.atan2(o.b, o.a) * degrees$2; + return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); +} + +function lch(l, c, h, opacity) { + return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function hcl$2(h, c, l, opacity) { + return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function Hcl(h, c, l, opacity) { + this.h = +h; + this.c = +c; + this.l = +l; + this.opacity = +opacity; +} + +function hcl2lab(o) { + if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); + var h = o.h * radians$1; + return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); +} + +define(Hcl, hcl$2, extend(Color, { + brighter: function(k) { + return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); + }, + darker: function(k) { + return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); + }, + rgb: function() { + return hcl2lab(this).rgb(); + } +})); + +var A = -0.14861, + B = +1.78277, + C = -0.29227, + D = -0.90649, + E = +1.97294, + ED = E * D, + EB = E * B, + BC_DA = B * C - D * A; + +function cubehelixConvert(o) { + if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), + bl = b - l, + k = (E * (g - l) - C * bl) / D, + s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 + h = s ? Math.atan2(k, bl) * degrees$2 - 120 : NaN; + return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); +} + +function cubehelix$3(h, s, l, opacity) { + return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); +} + +function Cubehelix(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Cubehelix, cubehelix$3, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + rgb: function() { + var h = isNaN(this.h) ? 0 : (this.h + 120) * radians$1, + l = +this.l, + a = isNaN(this.s) ? 0 : this.s * l * (1 - l), + cosh = Math.cos(h), + sinh = Math.sin(h); + return new Rgb( + 255 * (l + a * (A * cosh + B * sinh)), + 255 * (l + a * (C * cosh + D * sinh)), + 255 * (l + a * (E * cosh)), + this.opacity + ); + } +})); + +function basis$1(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + + (4 - 6 * t2 + 3 * t3) * v1 + + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + + t3 * v3) / 6; +} + +function basis$2(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), + v1 = values[i], + v2 = values[i + 1], + v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, + v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis$1((t - i / n) * n, v0, v1, v2, v3); + }; +} + +function basisClosed$1(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), + v0 = values[(i + n - 1) % n], + v1 = values[i % n], + v2 = values[(i + 1) % n], + v3 = values[(i + 2) % n]; + return basis$1((t - i / n) * n, v0, v1, v2, v3); + }; +} + +var constant$8 = x => () => x; + +function linear$2(a, d) { + return function(t) { + return a + t * d; + }; +} + +function exponential$1(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} + +function hue$1(a, b) { + var d = b - a; + return d ? linear$2(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$8(isNaN(a) ? b : a); +} + +function gamma$1(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential$1(a, b, y) : constant$8(isNaN(a) ? b : a); + }; +} + +function nogamma(a, b) { + var d = b - a; + return d ? linear$2(a, d) : constant$8(isNaN(a) ? b : a); +} + +var interpolateRgb = (function rgbGamma(y) { + var color = gamma$1(y); + + function rgb$1(start, end) { + var r = color((start = rgb(start)).r, (end = rgb(end)).r), + g = color(start.g, end.g), + b = color(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + + rgb$1.gamma = rgbGamma; + + return rgb$1; +})(1); + +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, + r = new Array(n), + g = new Array(n), + b = new Array(n), + i, color; + for (i = 0; i < n; ++i) { + color = rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} + +var rgbBasis = rgbSpline(basis$2); +var rgbBasisClosed = rgbSpline(basisClosed$1); + +function numberArray(a, b) { + if (!b) b = []; + var n = a ? Math.min(b.length, a.length) : 0, + c = b.slice(), + i; + return function(t) { + for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} + +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +function array$3(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} + +function genericArray(a, b) { + var nb = b ? b.length : 0, + na = a ? Math.min(nb, a.length) : 0, + x = new Array(na), + c = new Array(nb), + i; + + for (i = 0; i < na; ++i) x[i] = interpolate$2(a[i], b[i]); + for (; i < nb; ++i) c[i] = b[i]; + + return function(t) { + for (i = 0; i < na; ++i) c[i] = x[i](t); + return c; + }; +} + +function date$1(a, b) { + var d = new Date; + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +function interpolateNumber(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +function object$1(a, b) { + var i = {}, + c = {}, + k; + + if (a === null || typeof a !== "object") a = {}; + if (b === null || typeof b !== "object") b = {}; + + for (k in b) { + if (k in a) { + i[k] = interpolate$2(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + reB = new RegExp(reA.source, "g"); + +function zero(b) { + return function() { + return b; + }; +} + +function one(b) { + return function(t) { + return b(t) + ""; + }; +} + +function interpolateString(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b + am, // current match in a + bm, // current match in b + bs, // string preceding current number in b, if any + i = -1, // index in s + s = [], // string constants and placeholders + q = []; // number interpolators + + // Coerce inputs to strings. + a = a + "", b = b + ""; + + // Interpolate pairs of numbers in a & b. + while ((am = reA.exec(a)) + && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { // a string precedes the next number in b + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match + if (s[i]) s[i] += bm; // coalesce with previous string + else s[++i] = bm; + } else { // interpolate non-matching numbers + s[++i] = null; + q.push({i: i, x: interpolateNumber(am, bm)}); + } + bi = reB.lastIndex; + } + + // Add remains of b. + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + + // Special optimization for only a single match. + // Otherwise, interpolate each of the numbers and rejoin the string. + return s.length < 2 ? (q[0] + ? one(q[0].x) + : zero(b)) + : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); +} + +function interpolate$2(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? constant$8(b) + : (t === "number" ? interpolateNumber + : t === "string" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString) + : b instanceof color ? interpolateRgb + : b instanceof Date ? date$1 + : isNumberArray(b) ? numberArray + : Array.isArray(b) ? genericArray + : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object$1 + : interpolateNumber)(a, b); +} + +function discrete(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; + }; +} + +function hue(a, b) { + var i = hue$1(+a, +b); + return function(t) { + var x = i(t); + return x - 360 * Math.floor(x / 360); + }; +} + +function interpolateRound(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} + +var degrees$1 = 180 / Math.PI; + +var identity$7 = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; + +function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees$1, + skewX: Math.atan(skewX) * degrees$1, + scaleX: scaleX, + scaleY: scaleY + }; +} + +var svgNode; + +/* eslint-disable no-undef */ +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity$7 : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} + +function parseSvg(value) { + if (value == null) return identity$7; + if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) return identity$7; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path + q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b)}); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + + function skewX(a, b, s, q) { + if (a !== b) { + q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b)}); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + + return function(a, b) { + var s = [], // string constants and placeholders + q = []; // number interpolators + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; // gc + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} + +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +var epsilon2$1 = 1e-12; + +function cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; +} + +function sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; +} + +function tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); +} + +var interpolateZoom = (function zoomRho(rho, rho2, rho4) { + + // p0 = [ux0, uy0, w0] + // p1 = [ux1, uy1, w1] + function zoom(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], + ux1 = p1[0], uy1 = p1[1], w1 = p1[2], + dx = ux1 - ux0, + dy = uy1 - uy0, + d2 = dx * dx + dy * dy, + i, + S; + + // Special case for u0 ≅ u1. + if (d2 < epsilon2$1) { + S = Math.log(w1 / w0) / rho; + i = function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(rho * t * S) + ]; + }; + } + + // General case. + else { + var d1 = Math.sqrt(d2), + b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), + b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), + r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), + r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / rho; + i = function(t) { + var s = t * S, + coshr0 = cosh(r0), + u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / cosh(rho * s + r0) + ]; + }; + } + + i.duration = S * 1000 * rho / Math.SQRT2; + + return i; + } + + zoom.rho = function(_) { + var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; + return zoomRho(_1, _2, _4); + }; + + return zoom; +})(Math.SQRT2, 2, 4); + +function hsl(hue) { + return function(start, end) { + var h = hue((start = hsl$2(start)).h, (end = hsl$2(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + } +} + +var hsl$1 = hsl(hue$1); +var hslLong = hsl(nogamma); + +function lab(start, end) { + var l = nogamma((start = lab$1(start)).l, (end = lab$1(end)).l), + a = nogamma(start.a, end.a), + b = nogamma(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.l = l(t); + start.a = a(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; +} + +function hcl(hue) { + return function(start, end) { + var h = hue((start = hcl$2(start)).h, (end = hcl$2(end)).h), + c = nogamma(start.c, end.c), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.c = c(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + } +} + +var hcl$1 = hcl(hue$1); +var hclLong = hcl(nogamma); + +function cubehelix$1(hue) { + return (function cubehelixGamma(y) { + y = +y; + + function cubehelix(start, end) { + var h = hue((start = cubehelix$3(start)).h, (end = cubehelix$3(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(Math.pow(t, y)); + start.opacity = opacity(t); + return start + ""; + }; + } + + cubehelix.gamma = cubehelixGamma; + + return cubehelix; + })(1); +} + +var cubehelix$2 = cubehelix$1(hue$1); +var cubehelixLong = cubehelix$1(nogamma); + +function piecewise(interpolate, values) { + if (values === undefined) values = interpolate, interpolate = interpolate$2; + var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); + while (i < n) I[i] = interpolate(v, v = values[++i]); + return function(t) { + var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); + return I[i](t - i); + }; +} + +function quantize$1(interpolator, n) { + var samples = new Array(n); + for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); + return samples; +} + +var frame = 0, // is an animation frame pending? + timeout$1 = 0, // is a timeout pending? + interval$1 = 0, // are any timers active? + pokeDelay = 1000, // how frequently we check for clock skew + taskHead, + taskTail, + clockLast = 0, + clockNow = 0, + clockSkew = 0, + clock = typeof performance === "object" && performance.now ? performance : Date, + setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; + +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} + +function clearNow() { + clockNow = 0; +} + +function Timer() { + this._call = + this._time = + this._next = null; +} + +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) taskTail._next = this; + else taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; + +function timer(callback, delay, time) { + var t = new Timer; + t.restart(callback, delay, time); + return t; +} + +function timerFlush() { + now(); // Get the current time, if not already set. + ++frame; // Pretend we’ve set an alarm, if we haven’t already. + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) t._call.call(null, e); + t = t._next; + } + --frame; +} + +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + frame = timeout$1 = 0; + try { + timerFlush(); + } finally { + frame = 0; + nap(); + clockNow = 0; + } +} + +function poke() { + var now = clock.now(), delay = now - clockLast; + if (delay > pokeDelay) clockSkew -= delay, clockLast = now; +} + +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} + +function sleep(time) { + if (frame) return; // Soonest alarm already set, or will be. + if (timeout$1) timeout$1 = clearTimeout(timeout$1); + var delay = time - clockNow; // Strictly less than if we recomputed clockNow. + if (delay > 24) { + if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew); + if (interval$1) interval$1 = clearInterval(interval$1); + } else { + if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay); + frame = 1, setFrame(wake); + } +} + +function timeout(callback, delay, time) { + var t = new Timer; + delay = delay == null ? 0 : +delay; + t.restart(elapsed => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +function interval(callback, delay, time) { + var t = new Timer, total = delay; + if (delay == null) return t.restart(callback, delay, time), t; + t._restart = t.restart; + t.restart = function(callback, delay, time) { + delay = +delay, time = time == null ? now() : +time; + t._restart(function tick(elapsed) { + elapsed += total; + t._restart(tick, total += delay, time); + callback(elapsed); + }, delay, time); + }; + t.restart(callback, delay, time); + return t; +} + +var emptyOn = dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; + +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; + +function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) node.__transition = {}; + else if (id in schedules) return; + create(node, id, { + name: name, + index: index, // For context during callback. + group: group, // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} + +function init(node, id) { + var schedule = get(node, id); + if (schedule.state > CREATED) throw new Error("too late; already scheduled"); + return schedule; +} + +function set(node, id) { + var schedule = get(node, id); + if (schedule.state > STARTED) throw new Error("too late; already running"); + return schedule; +} + +function get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found"); + return schedule; +} + +function create(node, id, self) { + var schedules = node.__transition, + tween; + + // Initialize the self timer when the transition is created. + // Note the actual delay is not known until the first callback! + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + + // If the elapsed delay is less than our first sleep, start immediately. + if (self.delay <= elapsed) start(elapsed - self.delay); + } + + function start(elapsed) { + var i, j, n, o; + + // If the state is not SCHEDULED, then we previously errored on start. + if (self.state !== SCHEDULED) return stop(); + + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) continue; + + // While this element already has a starting transition during this frame, + // defer starting an interrupting transition until that transition has a + // chance to tick (and possibly end); see d3/d3-transition#54! + if (o.state === STARTED) return timeout(start); + + // Interrupt the active transition, if any. + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + + // Cancel any pre-empted transitions. + else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + + // Defer the first tick to end of the current frame; see d3/d3#1576. + // Note the transition may be canceled after start and before the first tick! + // Note this must be scheduled before the start event; see d3/d3-transition#16! + // Assuming this is successful, subsequent callbacks go straight to tick. + timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + + // Dispatch the start event. + // Note this must be done before the tween are initialized. + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) return; // interrupted + self.state = STARTED; + + // Initialize the tween, deleting null tween. + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), + i = -1, + n = tween.length; + + while (++i < n) { + tween[i].call(node, t); + } + + // Dispatch the end event. + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) return; // eslint-disable-line no-unused-vars + delete node.__transition; + } +} + +function interrupt(node, name) { + var schedules = node.__transition, + schedule, + active, + empty = true, + i; + + if (!schedules) return; + + name = name == null ? null : name + ""; + + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { empty = false; continue; } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + + if (empty) delete node.__transition; +} + +function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = set(this, id), + tween = schedule.tween; + + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! + // Otherwise, copy-on-write. + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + + schedule.tween = tween1; + }; +} + +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") throw new Error; + return function() { + var schedule = set(this, id), + tween = schedule.tween; + + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! + // Otherwise, copy-on-write. + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) tween1.push(t); + } + + schedule.tween = tween1; + }; +} + +function transition_tween(name, value) { + var id = this._id; + + name += ""; + + if (arguments.length < 2) { + var tween = get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} + +function tweenValue(transition, name, value) { + var id = transition._id; + + transition.each(function() { + var schedule = set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + + return function(node) { + return get(node, id).value[name]; + }; +} + +function interpolate$1(a, b) { + var c; + return (typeof b === "number" ? interpolateNumber + : b instanceof color ? interpolateRgb + : (c = color(b)) ? (b = c, interpolateRgb) + : interpolateString)(a, b); +} + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} + +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} + +function attrConstant(name, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function attrConstantNS(fullname, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function attrFunction(name, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function attrFunctionNS(fullname, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate$1; + return this.attrTween(name, typeof value === "function" + ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) + : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) + : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); +} + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} + +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} + +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} + +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} + +function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} + +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} + +function transition_delay(value) { + var id = this._id; + + return arguments.length + ? this.each((typeof value === "function" + ? delayFunction + : delayConstant)(id, value)) + : get(this.node(), id).delay; +} + +function durationFunction(id, value) { + return function() { + set(this, id).duration = +value.apply(this, arguments); + }; +} + +function durationConstant(id, value) { + return value = +value, function() { + set(this, id).duration = value; + }; +} + +function transition_duration(value) { + var id = this._id; + + return arguments.length + ? this.each((typeof value === "function" + ? durationFunction + : durationConstant)(id, value)) + : get(this.node(), id).duration; +} + +function easeConstant(id, value) { + if (typeof value !== "function") throw new Error; + return function() { + set(this, id).ease = value; + }; +} + +function transition_ease(value) { + var id = this._id; + + return arguments.length + ? this.each(easeConstant(id, value)) + : get(this.node(), id).ease; +} + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") throw new Error; + set(this, id).ease = v; + }; +} + +function transition_easeVarying(value) { + if (typeof value !== "function") throw new Error; + return this.each(easeVarying(this._id, value)); +} + +function transition_filter(match) { + if (typeof match !== "function") match = matcher(match); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + + return new Transition(subgroups, this._parents, this._name, this._id); +} + +function transition_merge(transition) { + if (transition._id !== this._id) throw new Error; + + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + + return new Transition(merges, this._parents, this._name, this._id); +} + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) t = t.slice(0, i); + return !t || t === "start"; + }); +} + +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : set; + return function() { + var schedule = sit(this, id), + on = schedule.on; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); + + schedule.on = on1; + }; +} + +function transition_on(name, listener) { + var id = this._id; + + return arguments.length < 2 + ? get(this.node(), id).on.on(name) + : this.each(onFunction(id, name, listener)); +} + +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) if (+i !== id) return; + if (parent) parent.removeChild(this); + }; +} + +function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +function transition_select(select) { + var name = this._name, + id = this._id; + + if (typeof select !== "function") select = selector(select); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, get(node, id)); + } + } + } + + return new Transition(subgroups, this._parents, name, id); +} + +function transition_selectAll(select) { + var name = this._name, + id = this._id; + + if (typeof select !== "function") select = selectorAll(select); + + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + + return new Transition(subgroups, parents, name, id); +} + +var Selection = selection.prototype.constructor; + +function transition_selection() { + return new Selection(this._groups, this._parents); +} + +function styleNull(name, interpolate) { + var string00, + string10, + interpolate0; + return function() { + var string0 = styleValue(this, name), + string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, string10 = string1); + }; +} + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} + +function styleConstant(name, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function styleFunction(name, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0 = styleValue(this, name), + value1 = value(this), + string1 = value1 + ""; + if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = set(this, id), + on = schedule.on, + listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); + + schedule.on = on1; + }; +} + +function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate$1; + return value == null ? this + .styleTween(name, styleNull(name, i)) + .on("end.style." + name, styleRemove(name)) + : typeof value === "function" ? this + .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))) + .each(styleMaybeRemove(this._id, name)) + : this + .styleTween(name, styleConstant(name, i, value), priority) + .on("end.style." + name, null); +} + +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} + +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} + +function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +function textConstant(value) { + return function() { + this.textContent = value; + }; +} + +function textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} + +function transition_text(value) { + return this.tween("text", typeof value === "function" + ? textFunction(tweenValue(this, "text", value)) + : textConstant(value == null ? "" : value + "")); +} + +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} + +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} + +function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + return this.tween(key, textTween(value)); +} + +function transition_transition() { + var name = this._name, + id0 = this._id, + id1 = newId(); + + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + + return new Transition(groups, this._parents, name, id1); +} + +function transition_end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = {value: reject}, + end = {value: function() { if (--size === 0) resolve(); }}; + + that.each(function() { + var schedule = set(this, id), + on = schedule.on; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + + schedule.on = on1; + }); + + // The selection was empty, resolve end immediately + if (size === 0) resolve(); + }); +} + +var id = 0; + +function Transition(groups, parents, name, id) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id; +} + +function transition(name) { + return selection().transition(name); +} + +function newId() { + return ++id; +} + +var selection_prototype = selection.prototype; + +Transition.prototype = transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition_transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: transition_tween, + delay: transition_delay, + duration: transition_duration, + ease: transition_ease, + easeVarying: transition_easeVarying, + end: transition_end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +const linear$1 = t => +t; + +function quadIn(t) { + return t * t; +} + +function quadOut(t) { + return t * (2 - t); +} + +function quadInOut(t) { + return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2; +} + +function cubicIn(t) { + return t * t * t; +} + +function cubicOut(t) { + return --t * t * t + 1; +} + +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +var exponent$1 = 3; + +var polyIn = (function custom(e) { + e = +e; + + function polyIn(t) { + return Math.pow(t, e); + } + + polyIn.exponent = custom; + + return polyIn; +})(exponent$1); + +var polyOut = (function custom(e) { + e = +e; + + function polyOut(t) { + return 1 - Math.pow(1 - t, e); + } + + polyOut.exponent = custom; + + return polyOut; +})(exponent$1); + +var polyInOut = (function custom(e) { + e = +e; + + function polyInOut(t) { + return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2; + } + + polyInOut.exponent = custom; + + return polyInOut; +})(exponent$1); + +var pi$4 = Math.PI, + halfPi$3 = pi$4 / 2; + +function sinIn(t) { + return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi$3); +} + +function sinOut(t) { + return Math.sin(t * halfPi$3); +} + +function sinInOut(t) { + return (1 - Math.cos(pi$4 * t)) / 2; +} + +// tpmt is two power minus ten times t scaled to [0,1] +function tpmt(x) { + return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494; +} + +function expIn(t) { + return tpmt(1 - +t); +} + +function expOut(t) { + return 1 - tpmt(t); +} + +function expInOut(t) { + return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2; +} + +function circleIn(t) { + return 1 - Math.sqrt(1 - t * t); +} + +function circleOut(t) { + return Math.sqrt(1 - --t * t); +} + +function circleInOut(t) { + return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2; +} + +var b1 = 4 / 11, + b2 = 6 / 11, + b3 = 8 / 11, + b4 = 3 / 4, + b5 = 9 / 11, + b6 = 10 / 11, + b7 = 15 / 16, + b8 = 21 / 22, + b9 = 63 / 64, + b0 = 1 / b1 / b1; + +function bounceIn(t) { + return 1 - bounceOut(1 - t); +} + +function bounceOut(t) { + return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9; +} + +function bounceInOut(t) { + return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2; +} + +var overshoot = 1.70158; + +var backIn = (function custom(s) { + s = +s; + + function backIn(t) { + return (t = +t) * t * (s * (t - 1) + t); + } + + backIn.overshoot = custom; + + return backIn; +})(overshoot); + +var backOut = (function custom(s) { + s = +s; + + function backOut(t) { + return --t * t * ((t + 1) * s + t) + 1; + } + + backOut.overshoot = custom; + + return backOut; +})(overshoot); + +var backInOut = (function custom(s) { + s = +s; + + function backInOut(t) { + return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2; + } + + backInOut.overshoot = custom; + + return backInOut; +})(overshoot); + +var tau$5 = 2 * Math.PI, + amplitude = 1, + period = 0.3; + +var elasticIn = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticIn(t) { + return a * tpmt(-(--t)) * Math.sin((s - t) / p); + } + + elasticIn.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticIn.period = function(p) { return custom(a, p); }; + + return elasticIn; +})(amplitude, period); + +var elasticOut = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticOut(t) { + return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p); + } + + elasticOut.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticOut.period = function(p) { return custom(a, p); }; + + return elasticOut; +})(amplitude, period); + +var elasticInOut = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticInOut(t) { + return ((t = t * 2 - 1) < 0 + ? a * tpmt(-t) * Math.sin((s - t) / p) + : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2; + } + + elasticInOut.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticInOut.period = function(p) { return custom(a, p); }; + + return elasticInOut; +})(amplitude, period); + +var defaultTiming = { + time: null, // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; + +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} + +function selection_transition(name) { + var id, + timing; + + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + + return new Transition(groups, this._parents, name, id); +} + +selection.prototype.interrupt = selection_interrupt; +selection.prototype.transition = selection_transition; + +var root = [null]; + +function active(node, name) { + var schedules = node.__transition, + schedule, + i; + + if (schedules) { + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) { + return new Transition([[node]], root, name, +i); + } + } + } + + return null; +} + +var constant$7 = x => () => x; + +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + selection: {value: selection, enumerable: true, configurable: true}, + mode: {value: mode, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +function nopropagation$1(event) { + event.stopImmediatePropagation(); +} + +function noevent$1(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +var MODE_DRAG = {name: "drag"}, + MODE_SPACE = {name: "space"}, + MODE_HANDLE = {name: "handle"}, + MODE_CENTER = {name: "center"}; + +const {abs: abs$3, max: max$2, min: min$1} = Math; + +function number1(e) { + return [+e[0], +e[1]]; +} + +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} + +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; }, + output: function(xy) { return xy && [xy[0][0], xy[1][0]]; } +}; + +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; }, + output: function(xy) { return xy && [xy[0][1], xy[1][1]]; } +}; + +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { return xy == null ? null : number2(xy); }, + output: function(xy) { return xy; } +}; + +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; + +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; + +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; + +var signsX = { + overlay: +1, + selection: +1, + n: null, + e: +1, + s: null, + w: -1, + nw: -1, + ne: +1, + se: +1, + sw: -1 +}; + +var signsY = { + overlay: +1, + selection: +1, + n: -1, + e: null, + s: +1, + w: null, + nw: -1, + ne: -1, + se: +1, + sw: +1 +}; + +function type(t) { + return {type: t}; +} + +// Ignore right-click, since that should open the context menu. +function defaultFilter$1(event) { + return !event.ctrlKey && !event.button; +} + +function defaultExtent$1() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} + +function defaultTouchable$1() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +// Like d3.local, but with the name “__brush” rather than auto-generated. +function local(node) { + while (!node.__brush) if (!(node = node.parentNode)) return; + return node.__brush; +} + +function empty(extent) { + return extent[0][0] === extent[1][0] + || extent[0][1] === extent[1][1]; +} + +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} + +function brushX() { + return brush$1(X); +} + +function brushY() { + return brush$1(Y); +} + +function brush() { + return brush$1(XY); +} + +function brush$1(dim) { + var extent = defaultExtent$1, + filter = defaultFilter$1, + touchable = defaultTouchable$1, + keys = true, + listeners = dispatch("start", "brush", "end"), + handleSize = 6, + touchending; + + function brush(group) { + var overlay = group + .property("__brush", initialize) + .selectAll(".overlay") + .data([type("overlay")]); + + overlay.enter().append("rect") + .attr("class", "overlay") + .attr("pointer-events", "all") + .attr("cursor", cursors.overlay) + .merge(overlay) + .each(function() { + var extent = local(this).extent; + select(this) + .attr("x", extent[0][0]) + .attr("y", extent[0][1]) + .attr("width", extent[1][0] - extent[0][0]) + .attr("height", extent[1][1] - extent[0][1]); + }); + + group.selectAll(".selection") + .data([type("selection")]) + .enter().append("rect") + .attr("class", "selection") + .attr("cursor", cursors.selection) + .attr("fill", "#777") + .attr("fill-opacity", 0.3) + .attr("stroke", "#fff") + .attr("shape-rendering", "crispEdges"); + + var handle = group.selectAll(".handle") + .data(dim.handles, function(d) { return d.type; }); + + handle.exit().remove(); + + handle.enter().append("rect") + .attr("class", function(d) { return "handle handle--" + d.type; }) + .attr("cursor", function(d) { return cursors[d.type]; }); + + group + .each(redraw) + .attr("fill", "none") + .attr("pointer-events", "all") + .on("mousedown.brush", started) + .filter(touchable) + .on("touchstart.brush", started) + .on("touchmove.brush", touchmoved) + .on("touchend.brush touchcancel.brush", touchended) + .style("touch-action", "none") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + brush.move = function(group, selection) { + if (group.tween) { + group + .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); }) + .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); }) + .tween("brush", function() { + var that = this, + state = that.__brush, + emit = emitter(that, arguments), + selection0 = state.selection, + selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), + i = interpolate$2(selection0, selection1); + + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group + .each(function() { + var that = this, + args = arguments, + state = that.__brush, + selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), + emit = emitter(that, args).beforestart(); + + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start().brush().end(); + }); + } + }; + + brush.clear = function(group) { + brush.move(group, null); + }; + + function redraw() { + var group = select(this), + selection = local(this).selection; + + if (selection) { + group.selectAll(".selection") + .style("display", null) + .attr("x", selection[0][0]) + .attr("y", selection[0][1]) + .attr("width", selection[1][0] - selection[0][0]) + .attr("height", selection[1][1] - selection[0][1]); + + group.selectAll(".handle") + .style("display", null) + .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; }) + .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; }) + .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; }) + .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; }); + } + + else { + group.selectAll(".selection,.handle") + .style("display", "none") + .attr("x", null) + .attr("y", null) + .attr("width", null) + .attr("height", null); + } + } + + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) this.starting = false, this.emit("start", event, mode); + else this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type, event, mode) { + var d = select(this.that).datum(); + listeners.call( + type, + this.that, + new BrushEvent(type, { + sourceEvent: event, + target: brush, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + + function started(event) { + if (touchending && !event.touches) return; + if (!filter.apply(this, arguments)) return; + + var that = this, + type = event.target.__data__.type, + mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE), + signX = dim === Y ? null : signsX[type], + signY = dim === X ? null : signsY[type], + state = local(that), + extent = state.extent, + selection = state.selection, + W = extent[0][0], w0, w1, + N = extent[0][1], n0, n1, + E = extent[1][0], e0, e1, + S = extent[1][1], s0, s1, + dx = 0, + dy = 0, + moving, + shifting = signX && signY && keys && event.shiftKey, + lockX, + lockY, + points = Array.from(event.touches || [event], t => { + const i = t.identifier; + t = pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + + if (type === "overlay") { + if (selection) moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min$1(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min$1(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max$2(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max$2(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) move(); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + + var group = select(that) + .attr("pointer-events", "none"); + + var overlay = group.selectAll(".overlay") + .attr("cursor", cursors[type]); + + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = select(event.view) + .on("mousemove.brush", moved, true) + .on("mouseup.brush", ended, true); + if (keys) view + .on("keydown.brush", keydowned, true) + .on("keyup.brush", keyupped, true); + + dragDisable(event.view); + } + + redraw.call(that); + emit.start(event, mode.name); + + function moved(event) { + for (const p of event.changedTouches || [event]) { + for (const d of points) + if (d.identifier === p.identifier) d.cur = pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs$3(point.cur[0] - point[0]) > abs$3(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + noevent$1(event); + move(event); + } + + function move(event) { + const point = points[0], point0 = point.point0; + var t; + + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) dx = max$2(W - w0, min$1(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) dy = max$2(N - n0, min$1(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) w1 = max$2(W, min$1(E, points[0][0])), e1 = max$2(W, min$1(E, points[1][0])), signX = 1; + if (signY) n1 = max$2(N, min$1(S, points[0][1])), s1 = max$2(N, min$1(S, points[1][1])), signY = 1; + } else { + if (signX < 0) dx = max$2(W - w0, min$1(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) dx = max$2(W - e0, min$1(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) dy = max$2(N - n0, min$1(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) dy = max$2(N - s0, min$1(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) w1 = max$2(W, min$1(E, w0 - dx * signX)), e1 = max$2(W, min$1(E, e0 + dx * signX)); + if (signY) n1 = max$2(N, min$1(S, n0 - dy * signY)), s1 = max$2(N, min$1(S, s0 + dy * signY)); + break; + } + } + + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]); + } + + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]); + } + + if (state.selection) selection = state.selection; // May be set by brush.move! + if (lockX) w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) n1 = selection[0][1], s1 = selection[1][1]; + + if (selection[0][0] !== w1 + || selection[0][1] !== n1 + || selection[1][0] !== e1 + || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event, mode.name); + } + } + + function ended(event) { + nopropagation$1(event); + if (event.touches) { + if (event.touches.length) return; + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! + } else { + yesdrag(event.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) selection = state.selection; // May be set by brush.move (on start)! + if (empty(selection)) state.selection = null, redraw.call(that); + emit.end(event, mode.name); + } + + function keydowned(event) { + switch (event.keyCode) { + case 16: { // SHIFT + shifting = signX && signY; + break; + } + case 18: { // ALT + if (mode === MODE_HANDLE) { + if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(); + } + break; + } + case 32: { // SPACE; takes priority over ALT + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx; + if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(); + } + break; + } + default: return; + } + noevent$1(event); + } + + function keyupped(event) { + switch (event.keyCode) { + case 16: { // SHIFT + if (shifting) { + lockX = lockY = shifting = false; + move(); + } + break; + } + case 18: { // ALT + if (mode === MODE_CENTER) { + if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; + if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; + mode = MODE_HANDLE; + move(); + } + break; + } + case 32: { // SPACE + if (mode === MODE_SPACE) { + if (event.altKey) { + if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; + if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type]); + move(); + } + break; + } + default: return; + } + noevent$1(event); + } + } + + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + + function touchended(event) { + emitter(this, arguments).ended(event); + } + + function initialize() { + var state = this.__brush || {selection: null}; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + + brush.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant$7(number2(_)), brush) : extent; + }; + + brush.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant$7(!!_), brush) : filter; + }; + + brush.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$7(!!_), brush) : touchable; + }; + + brush.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush) : handleSize; + }; + + brush.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush) : keys; + }; + + brush.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush : value; + }; + + return brush; +} + +var abs$2 = Math.abs; +var cos$2 = Math.cos; +var sin$2 = Math.sin; +var pi$3 = Math.PI; +var halfPi$2 = pi$3 / 2; +var tau$4 = pi$3 * 2; +var max$1 = Math.max; +var epsilon$4 = 1e-12; + +function range$1(i, j) { + return Array.from({length: j - i}, (_, k) => i + k); +} + +function compareValue(compare) { + return function(a, b) { + return compare( + a.source.value + a.target.value, + b.source.value + b.target.value + ); + }; +} + +function chord() { + return chord$1(false, false); +} + +function chordTranspose() { + return chord$1(false, true); +} + +function chordDirected() { + return chord$1(true, false); +} + +function chord$1(directed, transpose) { + var padAngle = 0, + sortGroups = null, + sortSubgroups = null, + sortChords = null; + + function chord(matrix) { + var n = matrix.length, + groupSums = new Array(n), + groupIndex = range$1(0, n), + chords = new Array(n * n), + groups = new Array(n), + k = 0, dx; + + matrix = Float64Array.from({length: n * n}, transpose + ? (_, i) => matrix[i % n][i / n | 0] + : (_, i) => matrix[i / n | 0][i % n]); + + // Compute the scaling factor from value to angle in [0, 2pi]. + for (let i = 0; i < n; ++i) { + let x = 0; + for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i]; + k += groupSums[i] = x; + } + k = max$1(0, tau$4 - padAngle * n) / k; + dx = k ? padAngle : tau$4 / n; + + // Compute the angles for each group and constituent chord. + { + let x = 0; + if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b])); + for (const i of groupIndex) { + const x0 = x; + if (directed) { + const subgroupIndex = range$1(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]); + if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b])); + for (const j of subgroupIndex) { + if (j < 0) { + const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null}); + chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]}; + } else { + const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); + chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + } + } + groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; + } else { + const subgroupIndex = range$1(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]); + if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b])); + for (const j of subgroupIndex) { + let chord; + if (i < j) { + chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); + chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + } else { + chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null}); + chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + if (i === j) chord.source = chord.target; + } + if (chord.source && chord.target && chord.source.value < chord.target.value) { + const source = chord.source; + chord.source = chord.target; + chord.target = source; + } + } + groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; + } + x += dx; + } + } + + // Remove empty chords. + chords = Object.values(chords); + chords.groups = groups; + return sortChords ? chords.sort(sortChords) : chords; + } + + chord.padAngle = function(_) { + return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle; + }; + + chord.sortGroups = function(_) { + return arguments.length ? (sortGroups = _, chord) : sortGroups; + }; + + chord.sortSubgroups = function(_) { + return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups; + }; + + chord.sortChords = function(_) { + return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._; + }; + + return chord; +} + +const pi$2 = Math.PI, + tau$3 = 2 * pi$2, + epsilon$3 = 1e-6, + tauEpsilon = tau$3 - epsilon$3; + +function Path$1() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; +} + +function path() { + return new Path$1; +} + +Path$1.prototype = path.prototype = { + constructor: Path$1, + moveTo: function(x, y) { + this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y); + }, + closePath: function() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + }, + lineTo: function(x, y) { + this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y); + }, + quadraticCurveTo: function(x1, y1, x, y) { + this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y); + }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { + this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y); + }, + arcTo: function(x1, y1, x2, y2, r) { + x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; + var x0 = this._x1, + y0 = this._y1, + x21 = x2 - x1, + y21 = y2 - y1, + x01 = x0 - x1, + y01 = y0 - y1, + l01_2 = x01 * x01 + y01 * y01; + + // Is the radius negative? Error. + if (r < 0) throw new Error("negative radius: " + r); + + // Is this path empty? Move to (x1,y1). + if (this._x1 === null) { + this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); + } + + // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. + else if (!(l01_2 > epsilon$3)); + + // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? + // Equivalently, is (x1,y1) coincident with (x2,y2)? + // Or, is the radius zero? Line to (x1,y1). + else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$3) || !r) { + this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); + } + + // Otherwise, draw an arc! + else { + var x20 = x2 - x0, + y20 = y2 - y0, + l21_2 = x21 * x21 + y21 * y21, + l20_2 = x20 * x20 + y20 * y20, + l21 = Math.sqrt(l21_2), + l01 = Math.sqrt(l01_2), + l = r * Math.tan((pi$2 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), + t01 = l / l01, + t21 = l / l21; + + // If the start tangent is not coincident with (x0,y0), line to. + if (Math.abs(t01 - 1) > epsilon$3) { + this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); + } + + this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); + } + }, + arc: function(x, y, r, a0, a1, ccw) { + x = +x, y = +y, r = +r, ccw = !!ccw; + var dx = r * Math.cos(a0), + dy = r * Math.sin(a0), + x0 = x + dx, + y0 = y + dy, + cw = 1 ^ ccw, + da = ccw ? a0 - a1 : a1 - a0; + + // Is the radius negative? Error. + if (r < 0) throw new Error("negative radius: " + r); + + // Is this path empty? Move to (x0,y0). + if (this._x1 === null) { + this._ += "M" + x0 + "," + y0; + } + + // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). + else if (Math.abs(this._x1 - x0) > epsilon$3 || Math.abs(this._y1 - y0) > epsilon$3) { + this._ += "L" + x0 + "," + y0; + } + + // Is this arc empty? We’re done. + if (!r) return; + + // Does the angle go the wrong way? Flip the direction. + if (da < 0) da = da % tau$3 + tau$3; + + // Is this a complete circle? Draw two arcs to complete the circle. + if (da > tauEpsilon) { + this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); + } + + // Is this arc non-empty? Draw an arc! + else if (da > epsilon$3) { + this._ += "A" + r + "," + r + ",0," + (+(da >= pi$2)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); + } + }, + rect: function(x, y, w, h) { + this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; + }, + toString: function() { + return this._; + } +}; + +var slice$2 = Array.prototype.slice; + +function constant$6(x) { + return function() { + return x; + }; +} + +function defaultSource$1(d) { + return d.source; +} + +function defaultTarget(d) { + return d.target; +} + +function defaultRadius$1(d) { + return d.radius; +} + +function defaultStartAngle(d) { + return d.startAngle; +} + +function defaultEndAngle(d) { + return d.endAngle; +} + +function defaultPadAngle() { + return 0; +} + +function defaultArrowheadRadius() { + return 10; +} + +function ribbon(headRadius) { + var source = defaultSource$1, + target = defaultTarget, + sourceRadius = defaultRadius$1, + targetRadius = defaultRadius$1, + startAngle = defaultStartAngle, + endAngle = defaultEndAngle, + padAngle = defaultPadAngle, + context = null; + + function ribbon() { + var buffer, + s = source.apply(this, arguments), + t = target.apply(this, arguments), + ap = padAngle.apply(this, arguments) / 2, + argv = slice$2.call(arguments), + sr = +sourceRadius.apply(this, (argv[0] = s, argv)), + sa0 = startAngle.apply(this, argv) - halfPi$2, + sa1 = endAngle.apply(this, argv) - halfPi$2, + tr = +targetRadius.apply(this, (argv[0] = t, argv)), + ta0 = startAngle.apply(this, argv) - halfPi$2, + ta1 = endAngle.apply(this, argv) - halfPi$2; + + if (!context) context = buffer = path(); + + if (ap > epsilon$4) { + if (abs$2(sa1 - sa0) > ap * 2 + epsilon$4) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap); + else sa0 = sa1 = (sa0 + sa1) / 2; + if (abs$2(ta1 - ta0) > ap * 2 + epsilon$4) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap); + else ta0 = ta1 = (ta0 + ta1) / 2; + } + + context.moveTo(sr * cos$2(sa0), sr * sin$2(sa0)); + context.arc(0, 0, sr, sa0, sa1); + if (sa0 !== ta0 || sa1 !== ta1) { + if (headRadius) { + var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2; + context.quadraticCurveTo(0, 0, tr2 * cos$2(ta0), tr2 * sin$2(ta0)); + context.lineTo(tr * cos$2(ta2), tr * sin$2(ta2)); + context.lineTo(tr2 * cos$2(ta1), tr2 * sin$2(ta1)); + } else { + context.quadraticCurveTo(0, 0, tr * cos$2(ta0), tr * sin$2(ta0)); + context.arc(0, 0, tr, ta0, ta1); + } + } + context.quadraticCurveTo(0, 0, sr * cos$2(sa0), sr * sin$2(sa0)); + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + if (headRadius) ribbon.headRadius = function(_) { + return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : headRadius; + }; + + ribbon.radius = function(_) { + return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; + }; + + ribbon.sourceRadius = function(_) { + return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; + }; + + ribbon.targetRadius = function(_) { + return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : targetRadius; + }; + + ribbon.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : startAngle; + }; + + ribbon.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : endAngle; + }; + + ribbon.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : padAngle; + }; + + ribbon.source = function(_) { + return arguments.length ? (source = _, ribbon) : source; + }; + + ribbon.target = function(_) { + return arguments.length ? (target = _, ribbon) : target; + }; + + ribbon.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), ribbon) : context; + }; + + return ribbon; +} + +function ribbon$1() { + return ribbon(); +} + +function ribbonArrow() { + return ribbon(defaultArrowheadRadius); +} + +var array$2 = Array.prototype; + +var slice$1 = array$2.slice; + +function ascending$1(a, b) { + return a - b; +} + +function area$3(ring) { + var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1]; + while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1]; + return area; +} + +var constant$5 = x => () => x; + +function contains$2(ring, hole) { + var i = -1, n = hole.length, c; + while (++i < n) if (c = ringContains(ring, hole[i])) return c; + return 0; +} + +function ringContains(ring, point) { + var x = point[0], y = point[1], contains = -1; + for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) { + var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1]; + if (segmentContains(pi, pj, point)) return 0; + if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains; + } + return contains; +} + +function segmentContains(a, b, c) { + var i; return collinear$1(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]); +} + +function collinear$1(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]); +} + +function within(p, q, r) { + return p <= q && q <= r || r <= q && q <= p; +} + +function noop$2() {} + +var cases = [ + [], + [[[1.0, 1.5], [0.5, 1.0]]], + [[[1.5, 1.0], [1.0, 1.5]]], + [[[1.5, 1.0], [0.5, 1.0]]], + [[[1.0, 0.5], [1.5, 1.0]]], + [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], + [[[1.0, 0.5], [1.0, 1.5]]], + [[[1.0, 0.5], [0.5, 1.0]]], + [[[0.5, 1.0], [1.0, 0.5]]], + [[[1.0, 1.5], [1.0, 0.5]]], + [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], + [[[1.5, 1.0], [1.0, 0.5]]], + [[[0.5, 1.0], [1.5, 1.0]]], + [[[1.0, 1.5], [1.5, 1.0]]], + [[[0.5, 1.0], [1.0, 1.5]]], + [] +]; + +function contours() { + var dx = 1, + dy = 1, + threshold = thresholdSturges, + smooth = smoothLinear; + + function contours(values) { + var tz = threshold(values); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + var domain = extent$1(values), start = domain[0], stop = domain[1]; + tz = tickStep(start, stop, tz); + tz = sequence(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz); + } else { + tz = tz.slice().sort(ascending$1); + } + + return tz.map(function(value) { + return contour(values, value); + }); + } + + // Accumulate, smooth contour rings, assign holes to exterior rings. + // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js + function contour(values, value) { + var polygons = [], + holes = []; + + isorings(values, value, function(ring) { + smooth(ring, values, value); + if (area$3(ring) > 0) polygons.push([ring]); + else holes.push(ring); + }); + + holes.forEach(function(hole) { + for (var i = 0, n = polygons.length, polygon; i < n; ++i) { + if (contains$2((polygon = polygons[i])[0], hole) !== -1) { + polygon.push(hole); + return; + } + } + }); + + return { + type: "MultiPolygon", + value: value, + coordinates: polygons + }; + } + + // Marching squares with isolines stitched into rings. + // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js + function isorings(values, value, callback) { + var fragmentByStart = new Array, + fragmentByEnd = new Array, + x, y, t0, t1, t2, t3; + + // Special case for the first row (y = -1, t2 = t3 = 0). + x = y = -1; + t1 = values[0] >= value; + cases[t1 << 1].forEach(stitch); + while (++x < dx - 1) { + t0 = t1, t1 = values[x + 1] >= value; + cases[t0 | t1 << 1].forEach(stitch); + } + cases[t1 << 0].forEach(stitch); + + // General case for the intermediate rows. + while (++y < dy - 1) { + x = -1; + t1 = values[y * dx + dx] >= value; + t2 = values[y * dx] >= value; + cases[t1 << 1 | t2 << 2].forEach(stitch); + while (++x < dx - 1) { + t0 = t1, t1 = values[y * dx + dx + x + 1] >= value; + t3 = t2, t2 = values[y * dx + x + 1] >= value; + cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch); + } + cases[t1 | t2 << 3].forEach(stitch); + } + + // Special case for the last row (y = dy - 1, t0 = t1 = 0). + x = -1; + t2 = values[y * dx] >= value; + cases[t2 << 2].forEach(stitch); + while (++x < dx - 1) { + t3 = t2, t2 = values[y * dx + x + 1] >= value; + cases[t2 << 2 | t3 << 3].forEach(stitch); + } + cases[t2 << 3].forEach(stitch); + + function stitch(line) { + var start = [line[0][0] + x, line[0][1] + y], + end = [line[1][0] + x, line[1][1] + y], + startIndex = index(start), + endIndex = index(end), + f, g; + if (f = fragmentByEnd[startIndex]) { + if (g = fragmentByStart[endIndex]) { + delete fragmentByEnd[f.end]; + delete fragmentByStart[g.start]; + if (f === g) { + f.ring.push(end); + callback(f.ring); + } else { + fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)}; + } + } else { + delete fragmentByEnd[f.end]; + f.ring.push(end); + fragmentByEnd[f.end = endIndex] = f; + } + } else if (f = fragmentByStart[endIndex]) { + if (g = fragmentByEnd[startIndex]) { + delete fragmentByStart[f.start]; + delete fragmentByEnd[g.end]; + if (f === g) { + f.ring.push(end); + callback(f.ring); + } else { + fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)}; + } + } else { + delete fragmentByStart[f.start]; + f.ring.unshift(start); + fragmentByStart[f.start = startIndex] = f; + } + } else { + fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]}; + } + } + } + + function index(point) { + return point[0] * 2 + point[1] * (dx + 1) * 4; + } + + function smoothLinear(ring, values, value) { + ring.forEach(function(point) { + var x = point[0], + y = point[1], + xt = x | 0, + yt = y | 0, + v0, + v1 = values[yt * dx + xt]; + if (x > 0 && x < dx && xt === x) { + v0 = values[yt * dx + xt - 1]; + point[0] = x + (value - v0) / (v1 - v0) - 0.5; + } + if (y > 0 && y < dy && yt === y) { + v0 = values[(yt - 1) * dx + xt]; + point[1] = y + (value - v0) / (v1 - v0) - 0.5; + } + }); + } + + contours.contour = contour; + + contours.size = function(_) { + if (!arguments.length) return [dx, dy]; + var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]); + if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); + return dx = _0, dy = _1, contours; + }; + + contours.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), contours) : threshold; + }; + + contours.smooth = function(_) { + return arguments.length ? (smooth = _ ? smoothLinear : noop$2, contours) : smooth === smoothLinear; + }; + + return contours; +} + +// TODO Optimize edge cases. +// TODO Optimize index calculation. +// TODO Optimize arguments. +function blurX(source, target, r) { + var n = source.width, + m = source.height, + w = (r << 1) + 1; + for (var j = 0; j < m; ++j) { + for (var i = 0, sr = 0; i < n + r; ++i) { + if (i < n) { + sr += source.data[i + j * n]; + } + if (i >= r) { + if (i >= w) { + sr -= source.data[i - w + j * n]; + } + target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w); + } + } + } +} + +// TODO Optimize edge cases. +// TODO Optimize index calculation. +// TODO Optimize arguments. +function blurY(source, target, r) { + var n = source.width, + m = source.height, + w = (r << 1) + 1; + for (var i = 0; i < n; ++i) { + for (var j = 0, sr = 0; j < m + r; ++j) { + if (j < m) { + sr += source.data[i + j * n]; + } + if (j >= r) { + if (j >= w) { + sr -= source.data[i + (j - w) * n]; + } + target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w); + } + } + } +} + +function defaultX$1(d) { + return d[0]; +} + +function defaultY$1(d) { + return d[1]; +} + +function defaultWeight() { + return 1; +} + +function density() { + var x = defaultX$1, + y = defaultY$1, + weight = defaultWeight, + dx = 960, + dy = 500, + r = 20, // blur radius + k = 2, // log2(grid cell size) + o = r * 3, // grid offset, to pad for blur + n = (dx + o * 2) >> k, // grid width + m = (dy + o * 2) >> k, // grid height + threshold = constant$5(20); + + function density(data) { + var values0 = new Float32Array(n * m), + values1 = new Float32Array(n * m); + + data.forEach(function(d, i, data) { + var xi = (+x(d, i, data) + o) >> k, + yi = (+y(d, i, data) + o) >> k, + wi = +weight(d, i, data); + if (xi >= 0 && xi < n && yi >= 0 && yi < m) { + values0[xi + yi * n] += wi; + } + }); + + // TODO Optimize. + blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); + blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); + blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); + blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); + blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); + blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); + + var tz = threshold(values0); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + var stop = max$3(values0); + tz = tickStep(0, stop, tz); + tz = sequence(0, Math.floor(stop / tz) * tz, tz); + tz.shift(); + } + + return contours() + .thresholds(tz) + .size([n, m]) + (values0) + .map(transform); + } + + function transform(geometry) { + geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel. + geometry.coordinates.forEach(transformPolygon); + return geometry; + } + + function transformPolygon(coordinates) { + coordinates.forEach(transformRing); + } + + function transformRing(coordinates) { + coordinates.forEach(transformPoint); + } + + // TODO Optimize. + function transformPoint(coordinates) { + coordinates[0] = coordinates[0] * Math.pow(2, k) - o; + coordinates[1] = coordinates[1] * Math.pow(2, k) - o; + } + + function resize() { + o = r * 3; + n = (dx + o * 2) >> k; + m = (dy + o * 2) >> k; + return density; + } + + density.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant$5(+_), density) : x; + }; + + density.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant$5(+_), density) : y; + }; + + density.weight = function(_) { + return arguments.length ? (weight = typeof _ === "function" ? _ : constant$5(+_), density) : weight; + }; + + density.size = function(_) { + if (!arguments.length) return [dx, dy]; + var _0 = +_[0], _1 = +_[1]; + if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); + return dx = _0, dy = _1, resize(); + }; + + density.cellSize = function(_) { + if (!arguments.length) return 1 << k; + if (!((_ = +_) >= 1)) throw new Error("invalid cell size"); + return k = Math.floor(Math.log(_) / Math.LN2), resize(); + }; + + density.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), density) : threshold; + }; + + density.bandwidth = function(_) { + if (!arguments.length) return Math.sqrt(r * (r + 1)); + if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth"); + return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize(); + }; + + return density; +} + +const EPSILON = Math.pow(2, -52); +const EDGE_STACK = new Uint32Array(512); + +class Delaunator { + + static from(points, getX = defaultGetX, getY = defaultGetY) { + const n = points.length; + const coords = new Float64Array(n * 2); + + for (let i = 0; i < n; i++) { + const p = points[i]; + coords[2 * i] = getX(p); + coords[2 * i + 1] = getY(p); + } + + return new Delaunator(coords); + } + + constructor(coords) { + const n = coords.length >> 1; + if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.'); + + this.coords = coords; + + // arrays that will store the triangulation graph + const maxTriangles = Math.max(2 * n - 5, 0); + this._triangles = new Uint32Array(maxTriangles * 3); + this._halfedges = new Int32Array(maxTriangles * 3); + + // temporary arrays for tracking the edges of the advancing convex hull + this._hashSize = Math.ceil(Math.sqrt(n)); + this._hullPrev = new Uint32Array(n); // edge to prev edge + this._hullNext = new Uint32Array(n); // edge to next edge + this._hullTri = new Uint32Array(n); // edge to adjacent triangle + this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash + + // temporary arrays for sorting points + this._ids = new Uint32Array(n); + this._dists = new Float64Array(n); + + this.update(); + } + + update() { + const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this; + const n = coords.length >> 1; + + // populate an array of point indices; calculate input data bbox + let minX = Infinity; + let minY = Infinity; + let maxX = -Infinity; + let maxY = -Infinity; + + for (let i = 0; i < n; i++) { + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + if (x < minX) minX = x; + if (y < minY) minY = y; + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + this._ids[i] = i; + } + const cx = (minX + maxX) / 2; + const cy = (minY + maxY) / 2; + + let minDist = Infinity; + let i0, i1, i2; + + // pick a seed point close to the center + for (let i = 0; i < n; i++) { + const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]); + if (d < minDist) { + i0 = i; + minDist = d; + } + } + const i0x = coords[2 * i0]; + const i0y = coords[2 * i0 + 1]; + + minDist = Infinity; + + // find the point closest to the seed + for (let i = 0; i < n; i++) { + if (i === i0) continue; + const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]); + if (d < minDist && d > 0) { + i1 = i; + minDist = d; + } + } + let i1x = coords[2 * i1]; + let i1y = coords[2 * i1 + 1]; + + let minRadius = Infinity; + + // find the third point which forms the smallest circumcircle with the first two + for (let i = 0; i < n; i++) { + if (i === i0 || i === i1) continue; + const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]); + if (r < minRadius) { + i2 = i; + minRadius = r; + } + } + let i2x = coords[2 * i2]; + let i2y = coords[2 * i2 + 1]; + + if (minRadius === Infinity) { + // order collinear points by dx (or dy if all x are identical) + // and return the list as a hull + for (let i = 0; i < n; i++) { + this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]); + } + quicksort(this._ids, this._dists, 0, n - 1); + const hull = new Uint32Array(n); + let j = 0; + for (let i = 0, d0 = -Infinity; i < n; i++) { + const id = this._ids[i]; + if (this._dists[id] > d0) { + hull[j++] = id; + d0 = this._dists[id]; + } + } + this.hull = hull.subarray(0, j); + this.triangles = new Uint32Array(0); + this.halfedges = new Uint32Array(0); + return; + } + + // swap the order of the seed points for counter-clockwise orientation + if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { + const i = i1; + const x = i1x; + const y = i1y; + i1 = i2; + i1x = i2x; + i1y = i2y; + i2 = i; + i2x = x; + i2y = y; + } + + const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y); + this._cx = center.x; + this._cy = center.y; + + for (let i = 0; i < n; i++) { + this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y); + } + + // sort the points by distance from the seed triangle circumcenter + quicksort(this._ids, this._dists, 0, n - 1); + + // set up the seed triangle as the starting hull + this._hullStart = i0; + let hullSize = 3; + + hullNext[i0] = hullPrev[i2] = i1; + hullNext[i1] = hullPrev[i0] = i2; + hullNext[i2] = hullPrev[i1] = i0; + + hullTri[i0] = 0; + hullTri[i1] = 1; + hullTri[i2] = 2; + + hullHash.fill(-1); + hullHash[this._hashKey(i0x, i0y)] = i0; + hullHash[this._hashKey(i1x, i1y)] = i1; + hullHash[this._hashKey(i2x, i2y)] = i2; + + this.trianglesLen = 0; + this._addTriangle(i0, i1, i2, -1, -1, -1); + + for (let k = 0, xp, yp; k < this._ids.length; k++) { + const i = this._ids[k]; + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + + // skip near-duplicate points + if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue; + xp = x; + yp = y; + + // skip seed triangle points + if (i === i0 || i === i1 || i === i2) continue; + + // find a visible edge on the convex hull using edge hash + let start = 0; + for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) { + start = hullHash[(key + j) % this._hashSize]; + if (start !== -1 && start !== hullNext[start]) break; + } + + start = hullPrev[start]; + let e = start, q; + while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) { + e = q; + if (e === start) { + e = -1; + break; + } + } + if (e === -1) continue; // likely a near-duplicate point; skip it + + // add the first triangle from the point + let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]); + + // recursively flip triangles from the point until they satisfy the Delaunay condition + hullTri[i] = this._legalize(t + 2); + hullTri[e] = t; // keep track of boundary triangles on the hull + hullSize++; + + // walk forward through the hull, adding more triangles and flipping recursively + let n = hullNext[e]; + while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) { + t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]); + hullTri[i] = this._legalize(t + 2); + hullNext[n] = n; // mark as removed + hullSize--; + n = q; + } + + // walk backward from the other side, adding more triangles and flipping + if (e === start) { + while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) { + t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]); + this._legalize(t + 2); + hullTri[q] = t; + hullNext[e] = e; // mark as removed + hullSize--; + e = q; + } + } + + // update the hull indices + this._hullStart = hullPrev[i] = e; + hullNext[e] = hullPrev[n] = i; + hullNext[i] = n; + + // save the two new edges in the hash table + hullHash[this._hashKey(x, y)] = i; + hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e; + } + + this.hull = new Uint32Array(hullSize); + for (let i = 0, e = this._hullStart; i < hullSize; i++) { + this.hull[i] = e; + e = hullNext[e]; + } + + // trim typed triangle mesh arrays + this.triangles = this._triangles.subarray(0, this.trianglesLen); + this.halfedges = this._halfedges.subarray(0, this.trianglesLen); + } + + _hashKey(x, y) { + return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize; + } + + _legalize(a) { + const {_triangles: triangles, _halfedges: halfedges, coords} = this; + + let i = 0; + let ar = 0; + + // recursion eliminated with a fixed-size stack + while (true) { + const b = halfedges[a]; + + /* if the pair of triangles doesn't satisfy the Delaunay condition + * (p1 is inside the circumcircle of [p0, pl, pr]), flip them, + * then do the same check/flip recursively for the new pair of triangles + * + * pl pl + * /||\ / \ + * al/ || \bl al/ \a + * / || \ / \ + * / a||b \ flip /___ar___\ + * p0\ || /p1 => p0\---bl---/p1 + * \ || / \ / + * ar\ || /br b\ /br + * \||/ \ / + * pr pr + */ + const a0 = a - a % 3; + ar = a0 + (a + 2) % 3; + + if (b === -1) { // convex hull edge + if (i === 0) break; + a = EDGE_STACK[--i]; + continue; + } + + const b0 = b - b % 3; + const al = a0 + (a + 1) % 3; + const bl = b0 + (b + 2) % 3; + + const p0 = triangles[ar]; + const pr = triangles[a]; + const pl = triangles[al]; + const p1 = triangles[bl]; + + const illegal = inCircle( + coords[2 * p0], coords[2 * p0 + 1], + coords[2 * pr], coords[2 * pr + 1], + coords[2 * pl], coords[2 * pl + 1], + coords[2 * p1], coords[2 * p1 + 1]); + + if (illegal) { + triangles[a] = p1; + triangles[b] = p0; + + const hbl = halfedges[bl]; + + // edge swapped on the other side of the hull (rare); fix the halfedge reference + if (hbl === -1) { + let e = this._hullStart; + do { + if (this._hullTri[e] === bl) { + this._hullTri[e] = a; + break; + } + e = this._hullPrev[e]; + } while (e !== this._hullStart); + } + this._link(a, hbl); + this._link(b, halfedges[ar]); + this._link(ar, bl); + + const br = b0 + (b + 1) % 3; + + // don't worry about hitting the cap: it can only happen on extremely degenerate input + if (i < EDGE_STACK.length) { + EDGE_STACK[i++] = br; + } + } else { + if (i === 0) break; + a = EDGE_STACK[--i]; + } + } + + return ar; + } + + _link(a, b) { + this._halfedges[a] = b; + if (b !== -1) this._halfedges[b] = a; + } + + // add a new triangle given vertex indices and adjacent half-edge ids + _addTriangle(i0, i1, i2, a, b, c) { + const t = this.trianglesLen; + + this._triangles[t] = i0; + this._triangles[t + 1] = i1; + this._triangles[t + 2] = i2; + + this._link(t, a); + this._link(t + 1, b); + this._link(t + 2, c); + + this.trianglesLen += 3; + + return t; + } +} + +// monotonically increases with real angle, but doesn't need expensive trigonometry +function pseudoAngle(dx, dy) { + const p = dx / (Math.abs(dx) + Math.abs(dy)); + return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1] +} + +function dist(ax, ay, bx, by) { + const dx = ax - bx; + const dy = ay - by; + return dx * dx + dy * dy; +} + +// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check +function orientIfSure(px, py, rx, ry, qx, qy) { + const l = (ry - py) * (qx - px); + const r = (rx - px) * (qy - py); + return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; +} + +// a more robust orientation test that's stable in a given triangle (to fix robustness issues) +function orient(rx, ry, qx, qy, px, py) { + const sign = orientIfSure(px, py, rx, ry, qx, qy) || + orientIfSure(rx, ry, qx, qy, px, py) || + orientIfSure(qx, qy, px, py, rx, ry); + return sign < 0; +} + +function inCircle(ax, ay, bx, by, cx, cy, px, py) { + const dx = ax - px; + const dy = ay - py; + const ex = bx - px; + const ey = by - py; + const fx = cx - px; + const fy = cy - py; + + const ap = dx * dx + dy * dy; + const bp = ex * ex + ey * ey; + const cp = fx * fx + fy * fy; + + return dx * (ey * cp - bp * fy) - + dy * (ex * cp - bp * fx) + + ap * (ex * fy - ey * fx) < 0; +} + +function circumradius(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = (ey * bl - dy * cl) * d; + const y = (dx * cl - ex * bl) * d; + + return x * x + y * y; +} + +function circumcenter(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = ax + (ey * bl - dy * cl) * d; + const y = ay + (dx * cl - ex * bl) * d; + + return {x, y}; +} + +function quicksort(ids, dists, left, right) { + if (right - left <= 20) { + for (let i = left + 1; i <= right; i++) { + const temp = ids[i]; + const tempDist = dists[temp]; + let j = i - 1; + while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--]; + ids[j + 1] = temp; + } + } else { + const median = (left + right) >> 1; + let i = left + 1; + let j = right; + swap(ids, median, i); + if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right); + if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right); + if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i); + + const temp = ids[i]; + const tempDist = dists[temp]; + while (true) { + do i++; while (dists[ids[i]] < tempDist); + do j--; while (dists[ids[j]] > tempDist); + if (j < i) break; + swap(ids, i, j); + } + ids[left + 1] = ids[j]; + ids[j] = temp; + + if (right - i + 1 >= j - left) { + quicksort(ids, dists, i, right); + quicksort(ids, dists, left, j - 1); + } else { + quicksort(ids, dists, left, j - 1); + quicksort(ids, dists, i, right); + } + } +} + +function swap(arr, i, j) { + const tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; +} + +function defaultGetX(p) { + return p[0]; +} +function defaultGetY(p) { + return p[1]; +} + +const epsilon$2 = 1e-6; + +class Path { + constructor() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; + } + moveTo(x, y) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; + } + closePath() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + } + lineTo(x, y) { + this._ += `L${this._x1 = +x},${this._y1 = +y}`; + } + arc(x, y, r) { + x = +x, y = +y, r = +r; + const x0 = x + r; + const y0 = y; + if (r < 0) throw new Error("negative radius"); + if (this._x1 === null) this._ += `M${x0},${y0}`; + else if (Math.abs(this._x1 - x0) > epsilon$2 || Math.abs(this._y1 - y0) > epsilon$2) this._ += "L" + x0 + "," + y0; + if (!r) return; + this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`; + } + rect(x, y, w, h) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`; + } + value() { + return this._ || null; + } +} + +class Polygon { + constructor() { + this._ = []; + } + moveTo(x, y) { + this._.push([x, y]); + } + closePath() { + this._.push(this._[0].slice()); + } + lineTo(x, y) { + this._.push([x, y]); + } + value() { + return this._.length ? this._ : null; + } +} + +class Voronoi { + constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) { + if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds"); + this.delaunay = delaunay; + this._circumcenters = new Float64Array(delaunay.points.length * 2); + this.vectors = new Float64Array(delaunay.points.length * 2); + this.xmax = xmax, this.xmin = xmin; + this.ymax = ymax, this.ymin = ymin; + this._init(); + } + update() { + this.delaunay.update(); + this._init(); + return this; + } + _init() { + const {delaunay: {points, hull, triangles}, vectors} = this; + + // Compute circumcenters. + const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2); + for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) { + const t1 = triangles[i] * 2; + const t2 = triangles[i + 1] * 2; + const t3 = triangles[i + 2] * 2; + const x1 = points[t1]; + const y1 = points[t1 + 1]; + const x2 = points[t2]; + const y2 = points[t2 + 1]; + const x3 = points[t3]; + const y3 = points[t3 + 1]; + + const dx = x2 - x1; + const dy = y2 - y1; + const ex = x3 - x1; + const ey = y3 - y1; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const ab = (dx * ey - dy * ex) * 2; + + if (!ab) { + // degenerate case (collinear diagram) + x = (x1 + x3) / 2 - 1e8 * ey; + y = (y1 + y3) / 2 + 1e8 * ex; + } + else if (Math.abs(ab) < 1e-8) { + // almost equal points (degenerate triangle) + x = (x1 + x3) / 2; + y = (y1 + y3) / 2; + } else { + const d = 1 / ab; + x = x1 + (ey * bl - dy * cl) * d; + y = y1 + (dx * cl - ex * bl) * d; + } + circumcenters[j] = x; + circumcenters[j + 1] = y; + } + + // Compute exterior cell rays. + let h = hull[hull.length - 1]; + let p0, p1 = h * 4; + let x0, x1 = points[2 * h]; + let y0, y1 = points[2 * h + 1]; + vectors.fill(0); + for (let i = 0; i < hull.length; ++i) { + h = hull[i]; + p0 = p1, x0 = x1, y0 = y1; + p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1]; + vectors[p0 + 2] = vectors[p1] = y0 - y1; + vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0; + } + } + render(context) { + const buffer = context == null ? context = new Path : undefined; + const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this; + if (hull.length <= 1) return null; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) continue; + const ti = Math.floor(i / 3) * 2; + const tj = Math.floor(j / 3) * 2; + const xi = circumcenters[ti]; + const yi = circumcenters[ti + 1]; + const xj = circumcenters[tj]; + const yj = circumcenters[tj + 1]; + this._renderSegment(xi, yi, xj, yj, context); + } + let h0, h1 = hull[hull.length - 1]; + for (let i = 0; i < hull.length; ++i) { + h0 = h1, h1 = hull[i]; + const t = Math.floor(inedges[h1] / 3) * 2; + const x = circumcenters[t]; + const y = circumcenters[t + 1]; + const v = h0 * 4; + const p = this._project(x, y, vectors[v + 2], vectors[v + 3]); + if (p) this._renderSegment(x, y, p[0], p[1], context); + } + return buffer && buffer.value(); + } + renderBounds(context) { + const buffer = context == null ? context = new Path : undefined; + context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin); + return buffer && buffer.value(); + } + renderCell(i, context) { + const buffer = context == null ? context = new Path : undefined; + const points = this._clip(i); + if (points === null || !points.length) return; + context.moveTo(points[0], points[1]); + let n = points.length; + while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2; + for (let i = 2; i < n; i += 2) { + if (points[i] !== points[i-2] || points[i+1] !== points[i-1]) + context.lineTo(points[i], points[i + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + *cellPolygons() { + const {delaunay: {points}} = this; + for (let i = 0, n = points.length / 2; i < n; ++i) { + const cell = this.cellPolygon(i); + if (cell) cell.index = i, yield cell; + } + } + cellPolygon(i) { + const polygon = new Polygon; + this.renderCell(i, polygon); + return polygon.value(); + } + _renderSegment(x0, y0, x1, y1, context) { + let S; + const c0 = this._regioncode(x0, y0); + const c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + context.moveTo(x0, y0); + context.lineTo(x1, y1); + } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) { + context.moveTo(S[0], S[1]); + context.lineTo(S[2], S[3]); + } + } + contains(i, x, y) { + if ((x = +x, x !== x) || (y = +y, y !== y)) return false; + return this.delaunay._step(i, x, y) === i; + } + *neighbors(i) { + const ci = this._clip(i); + if (ci) for (const j of this.delaunay.neighbors(i)) { + const cj = this._clip(j); + // find the common edge + if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) { + for (let aj = 0, lj = cj.length; aj < lj; aj += 2) { + if (ci[ai] == cj[aj] + && ci[ai + 1] == cj[aj + 1] + && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj] + && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj] + ) { + yield j; + break loop; + } + } + } + } + } + _cell(i) { + const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this; + const e0 = inedges[i]; + if (e0 === -1) return null; // coincident point + const points = []; + let e = e0; + do { + const t = Math.floor(e / 3); + points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]); + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) break; // bad triangulation + e = halfedges[e]; + } while (e !== e0 && e !== -1); + return points; + } + _clip(i) { + // degenerate case (1 valid point: return the box) + if (i === 0 && this.delaunay.hull.length === 1) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + const points = this._cell(i); + if (points === null) return null; + const {vectors: V} = this; + const v = i * 4; + return V[v] || V[v + 1] + ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) + : this._clipFinite(i, points); + } + _clipFinite(i, points) { + const n = points.length; + let P = null; + let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; + let c0, c1 = this._regioncode(x1, y1); + let e0, e1; + for (let j = 0; j < n; j += 2) { + x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; + c0 = c1, c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + e0 = e1, e1 = 0; + if (P) P.push(x1, y1); + else P = [x1, y1]; + } else { + let S, sx0, sy0, sx1, sy1; + if (c0 === 0) { + if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue; + [sx0, sy0, sx1, sy1] = S; + } else { + if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue; + [sx1, sy1, sx0, sy0] = S; + e0 = e1, e1 = this._edgecode(sx0, sy0); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + if (P) P.push(sx0, sy0); + else P = [sx0, sy0]; + } + e0 = e1, e1 = this._edgecode(sx1, sy1); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + if (P) P.push(sx1, sy1); + else P = [sx1, sy1]; + } + } + if (P) { + e0 = e1, e1 = this._edgecode(P[0], P[1]); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + return P; + } + _clipSegment(x0, y0, x1, y1, c0, c1) { + while (true) { + if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1]; + if (c0 & c1) return null; + let x, y, c = c0 || c1; + if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax; + else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin; + else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax; + else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin; + if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0); + else x1 = x, y1 = y, c1 = this._regioncode(x1, y1); + } + } + _clipInfinite(i, points, vx0, vy0, vxn, vyn) { + let P = Array.from(points), p; + if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]); + if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]); + if (P = this._clipFinite(i, P)) { + for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) { + c0 = c1, c1 = this._edgecode(P[j], P[j + 1]); + if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length; + } + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]; + } + return P; + } + _edge(i, e0, e1, P, j) { + while (e0 !== e1) { + let x, y; + switch (e0) { + case 0b0101: e0 = 0b0100; continue; // top-left + case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top + case 0b0110: e0 = 0b0010; continue; // top-right + case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right + case 0b1010: e0 = 0b1000; continue; // bottom-right + case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom + case 0b1001: e0 = 0b0001; continue; // bottom-left + case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left + } + if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) { + P.splice(j, 0, x, y), j += 2; + } + } + if (P.length > 4) { + for (let i = 0; i < P.length; i+= 2) { + const j = (i + 2) % P.length, k = (i + 4) % P.length; + if (P[i] === P[j] && P[j] === P[k] + || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) + P.splice(j, 2), i -= 2; + } + } + return j; + } + _project(x0, y0, vx, vy) { + let t = Infinity, c, x, y; + if (vy < 0) { // top + if (y0 <= this.ymin) return null; + if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx; + } else if (vy > 0) { // bottom + if (y0 >= this.ymax) return null; + if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx; + } + if (vx > 0) { // right + if (x0 >= this.xmax) return null; + if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy; + } else if (vx < 0) { // left + if (x0 <= this.xmin) return null; + if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy; + } + return [x, y]; + } + _edgecode(x, y) { + return (x === this.xmin ? 0b0001 + : x === this.xmax ? 0b0010 : 0b0000) + | (y === this.ymin ? 0b0100 + : y === this.ymax ? 0b1000 : 0b0000); + } + _regioncode(x, y) { + return (x < this.xmin ? 0b0001 + : x > this.xmax ? 0b0010 : 0b0000) + | (y < this.ymin ? 0b0100 + : y > this.ymax ? 0b1000 : 0b0000); + } +} + +const tau$2 = 2 * Math.PI, pow$2 = Math.pow; + +function pointX(p) { + return p[0]; +} + +function pointY(p) { + return p[1]; +} + +// A triangulation is collinear if all its triangles have a non-null area +function collinear(d) { + const {triangles, coords} = d; + for (let i = 0; i < triangles.length; i += 3) { + const a = 2 * triangles[i], + b = 2 * triangles[i + 1], + c = 2 * triangles[i + 2], + cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) + - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); + if (cross > 1e-10) return false; + } + return true; +} + +function jitter(x, y, r) { + return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r]; +} + +class Delaunay { + static from(points, fx = pointX, fy = pointY, that) { + return new Delaunay("length" in points + ? flatArray(points, fx, fy, that) + : Float64Array.from(flatIterable(points, fx, fy, that))); + } + constructor(points) { + this._delaunator = new Delaunator(points); + this.inedges = new Int32Array(points.length / 2); + this._hullIndex = new Int32Array(points.length / 2); + this.points = this._delaunator.coords; + this._init(); + } + update() { + this._delaunator.update(); + this._init(); + return this; + } + _init() { + const d = this._delaunator, points = this.points; + + // check for collinear + if (d.hull && d.hull.length > 2 && collinear(d)) { + this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i) + .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors + const e = this.collinear[0], f = this.collinear[this.collinear.length - 1], + bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ], + r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]); + for (let i = 0, n = points.length / 2; i < n; ++i) { + const p = jitter(points[2 * i], points[2 * i + 1], r); + points[2 * i] = p[0]; + points[2 * i + 1] = p[1]; + } + this._delaunator = new Delaunator(points); + } else { + delete this.collinear; + } + + const halfedges = this.halfedges = this._delaunator.halfedges; + const hull = this.hull = this._delaunator.hull; + const triangles = this.triangles = this._delaunator.triangles; + const inedges = this.inedges.fill(-1); + const hullIndex = this._hullIndex.fill(-1); + + // Compute an index from each point to an (arbitrary) incoming halfedge + // Used to give the first neighbor of each point; for this reason, + // on the hull we give priority to exterior halfedges + for (let e = 0, n = halfedges.length; e < n; ++e) { + const p = triangles[e % 3 === 2 ? e - 2 : e + 1]; + if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e; + } + for (let i = 0, n = hull.length; i < n; ++i) { + hullIndex[hull[i]] = i; + } + + // degenerate case: 1 or 2 (distinct) points + if (hull.length <= 2 && hull.length > 0) { + this.triangles = new Int32Array(3).fill(-1); + this.halfedges = new Int32Array(3).fill(-1); + this.triangles[0] = hull[0]; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + inedges[hull[0]] = 1; + if (hull.length === 2) inedges[hull[1]] = 0; + } + } + voronoi(bounds) { + return new Voronoi(this, bounds); + } + *neighbors(i) { + const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this; + + // degenerate case with several collinear points + if (collinear) { + const l = collinear.indexOf(i); + if (l > 0) yield collinear[l - 1]; + if (l < collinear.length - 1) yield collinear[l + 1]; + return; + } + + const e0 = inedges[i]; + if (e0 === -1) return; // coincident point + let e = e0, p0 = -1; + do { + yield p0 = triangles[e]; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) return; // bad triangulation + e = halfedges[e]; + if (e === -1) { + const p = hull[(_hullIndex[i] + 1) % hull.length]; + if (p !== p0) yield p; + return; + } + } while (e !== e0); + } + find(x, y, i = 0) { + if ((x = +x, x !== x) || (y = +y, y !== y)) return -1; + const i0 = i; + let c; + while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c; + return c; + } + _step(i, x, y) { + const {inedges, hull, _hullIndex, halfedges, triangles, points} = this; + if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1); + let c = i; + let dc = pow$2(x - points[i * 2], 2) + pow$2(y - points[i * 2 + 1], 2); + const e0 = inedges[i]; + let e = e0; + do { + let t = triangles[e]; + const dt = pow$2(x - points[t * 2], 2) + pow$2(y - points[t * 2 + 1], 2); + if (dt < dc) dc = dt, c = t; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) break; // bad triangulation + e = halfedges[e]; + if (e === -1) { + e = hull[(_hullIndex[i] + 1) % hull.length]; + if (e !== t) { + if (pow$2(x - points[e * 2], 2) + pow$2(y - points[e * 2 + 1], 2) < dc) return e; + } + break; + } + } while (e !== e0); + return c; + } + render(context) { + const buffer = context == null ? context = new Path : undefined; + const {points, halfedges, triangles} = this; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) continue; + const ti = triangles[i] * 2; + const tj = triangles[j] * 2; + context.moveTo(points[ti], points[ti + 1]); + context.lineTo(points[tj], points[tj + 1]); + } + this.renderHull(context); + return buffer && buffer.value(); + } + renderPoints(context, r = 2) { + const buffer = context == null ? context = new Path : undefined; + const {points} = this; + for (let i = 0, n = points.length; i < n; i += 2) { + const x = points[i], y = points[i + 1]; + context.moveTo(x + r, y); + context.arc(x, y, r, 0, tau$2); + } + return buffer && buffer.value(); + } + renderHull(context) { + const buffer = context == null ? context = new Path : undefined; + const {hull, points} = this; + const h = hull[0] * 2, n = hull.length; + context.moveTo(points[h], points[h + 1]); + for (let i = 1; i < n; ++i) { + const h = 2 * hull[i]; + context.lineTo(points[h], points[h + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + hullPolygon() { + const polygon = new Polygon; + this.renderHull(polygon); + return polygon.value(); + } + renderTriangle(i, context) { + const buffer = context == null ? context = new Path : undefined; + const {points, triangles} = this; + const t0 = triangles[i *= 3] * 2; + const t1 = triangles[i + 1] * 2; + const t2 = triangles[i + 2] * 2; + context.moveTo(points[t0], points[t0 + 1]); + context.lineTo(points[t1], points[t1 + 1]); + context.lineTo(points[t2], points[t2 + 1]); + context.closePath(); + return buffer && buffer.value(); + } + *trianglePolygons() { + const {triangles} = this; + for (let i = 0, n = triangles.length / 3; i < n; ++i) { + yield this.trianglePolygon(i); + } + } + trianglePolygon(i) { + const polygon = new Polygon; + this.renderTriangle(i, polygon); + return polygon.value(); + } +} + +function flatArray(points, fx, fy, that) { + const n = points.length; + const array = new Float64Array(n * 2); + for (let i = 0; i < n; ++i) { + const p = points[i]; + array[i * 2] = fx.call(that, p, i, points); + array[i * 2 + 1] = fy.call(that, p, i, points); + } + return array; +} + +function* flatIterable(points, fx, fy, that) { + let i = 0; + for (const p of points) { + yield fx.call(that, p, i, points); + yield fy.call(that, p, i, points); + ++i; + } +} + +var EOL = {}, + EOF = {}, + QUOTE = 34, + NEWLINE = 10, + RETURN = 13; + +function objectConverter(columns) { + return new Function("d", "return {" + columns.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "] || \"\""; + }).join(",") + "}"); +} + +function customConverter(columns, f) { + var object = objectConverter(columns); + return function(row, i) { + return f(object(row), i, columns); + }; +} + +// Compute unique columns in order of discovery. +function inferColumns(rows) { + var columnSet = Object.create(null), + columns = []; + + rows.forEach(function(row) { + for (var column in row) { + if (!(column in columnSet)) { + columns.push(columnSet[column] = column); + } + } + }); + + return columns; +} + +function pad$1(value, width) { + var s = value + "", length = s.length; + return length < width ? new Array(width - length + 1).join(0) + s : s; +} + +function formatYear$1(year) { + return year < 0 ? "-" + pad$1(-year, 6) + : year > 9999 ? "+" + pad$1(year, 6) + : pad$1(year, 4); +} + +function formatDate(date) { + var hours = date.getUTCHours(), + minutes = date.getUTCMinutes(), + seconds = date.getUTCSeconds(), + milliseconds = date.getUTCMilliseconds(); + return isNaN(date) ? "Invalid Date" + : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2) + + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z" + : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z" + : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z" + : ""); +} + +function dsvFormat(delimiter) { + var reFormat = new RegExp("[\"" + delimiter + "\n\r]"), + DELIMITER = delimiter.charCodeAt(0); + + function parse(text, f) { + var convert, columns, rows = parseRows(text, function(row, i) { + if (convert) return convert(row, i - 1); + columns = row, convert = f ? customConverter(row, f) : objectConverter(row); + }); + rows.columns = columns || []; + return rows; + } + + function parseRows(text, f) { + var rows = [], // output rows + N = text.length, + I = 0, // current character index + n = 0, // current line number + t, // current token + eof = N <= 0, // current token followed by EOF? + eol = false; // current token followed by EOL? + + // Strip the trailing newline. + if (text.charCodeAt(N - 1) === NEWLINE) --N; + if (text.charCodeAt(N - 1) === RETURN) --N; + + function token() { + if (eof) return EOF; + if (eol) return eol = false, EOL; + + // Unescape quotes. + var i, j = I, c; + if (text.charCodeAt(j) === QUOTE) { + while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE); + if ((i = I) >= N) eof = true; + else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true; + else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } + return text.slice(j + 1, i - 1).replace(/""/g, "\""); + } + + // Find next delimiter or newline. + while (I < N) { + if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true; + else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } + else if (c !== DELIMITER) continue; + return text.slice(j, i); + } + + // Return last token before EOF. + return eof = true, text.slice(j, N); + } + + while ((t = token()) !== EOF) { + var row = []; + while (t !== EOL && t !== EOF) row.push(t), t = token(); + if (f && (row = f(row, n++)) == null) continue; + rows.push(row); + } + + return rows; + } + + function preformatBody(rows, columns) { + return rows.map(function(row) { + return columns.map(function(column) { + return formatValue(row[column]); + }).join(delimiter); + }); + } + + function format(rows, columns) { + if (columns == null) columns = inferColumns(rows); + return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n"); + } + + function formatBody(rows, columns) { + if (columns == null) columns = inferColumns(rows); + return preformatBody(rows, columns).join("\n"); + } + + function formatRows(rows) { + return rows.map(formatRow).join("\n"); + } + + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + + function formatValue(value) { + return value == null ? "" + : value instanceof Date ? formatDate(value) + : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\"" + : value; + } + + return { + parse: parse, + parseRows: parseRows, + format: format, + formatBody: formatBody, + formatRows: formatRows, + formatRow: formatRow, + formatValue: formatValue + }; +} + +var csv$1 = dsvFormat(","); + +var csvParse = csv$1.parse; +var csvParseRows = csv$1.parseRows; +var csvFormat = csv$1.format; +var csvFormatBody = csv$1.formatBody; +var csvFormatRows = csv$1.formatRows; +var csvFormatRow = csv$1.formatRow; +var csvFormatValue = csv$1.formatValue; + +var tsv$1 = dsvFormat("\t"); + +var tsvParse = tsv$1.parse; +var tsvParseRows = tsv$1.parseRows; +var tsvFormat = tsv$1.format; +var tsvFormatBody = tsv$1.formatBody; +var tsvFormatRows = tsv$1.formatRows; +var tsvFormatRow = tsv$1.formatRow; +var tsvFormatValue = tsv$1.formatValue; + +function autoType(object) { + for (var key in object) { + var value = object[key].trim(), number, m; + if (!value) value = null; + else if (value === "true") value = true; + else if (value === "false") value = false; + else if (value === "NaN") value = NaN; + else if (!isNaN(number = +value)) value = number; + else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) { + if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " "); + value = new Date(value); + } + else continue; + object[key] = value; + } + return object; +} + +// https://github.com/d3/d3-dsv/issues/45 +const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours(); + +function responseBlob(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.blob(); +} + +function blob(input, init) { + return fetch(input, init).then(responseBlob); +} + +function responseArrayBuffer(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.arrayBuffer(); +} + +function buffer(input, init) { + return fetch(input, init).then(responseArrayBuffer); +} + +function responseText(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.text(); +} + +function text(input, init) { + return fetch(input, init).then(responseText); +} + +function dsvParse(parse) { + return function(input, init, row) { + if (arguments.length === 2 && typeof init === "function") row = init, init = undefined; + return text(input, init).then(function(response) { + return parse(response, row); + }); + }; +} + +function dsv(delimiter, input, init, row) { + if (arguments.length === 3 && typeof init === "function") row = init, init = undefined; + var format = dsvFormat(delimiter); + return text(input, init).then(function(response) { + return format.parse(response, row); + }); +} + +var csv = dsvParse(csvParse); +var tsv = dsvParse(tsvParse); + +function image(input, init) { + return new Promise(function(resolve, reject) { + var image = new Image; + for (var key in init) image[key] = init[key]; + image.onerror = reject; + image.onload = function() { resolve(image); }; + image.src = input; + }); +} + +function responseJson(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + if (response.status === 204 || response.status === 205) return; + return response.json(); +} + +function json(input, init) { + return fetch(input, init).then(responseJson); +} + +function parser(type) { + return (input, init) => text(input, init) + .then(text => (new DOMParser).parseFromString(text, type)); +} + +var xml = parser("application/xml"); + +var html = parser("text/html"); + +var svg = parser("image/svg+xml"); + +function center(x, y) { + var nodes, strength = 1; + + if (x == null) x = 0; + if (y == null) y = 0; + + function force() { + var i, + n = nodes.length, + node, + sx = 0, + sy = 0; + + for (i = 0; i < n; ++i) { + node = nodes[i], sx += node.x, sy += node.y; + } + + for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) { + node = nodes[i], node.x -= sx, node.y -= sy; + } + } + + force.initialize = function(_) { + nodes = _; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + return force; +} + +function tree_add(d) { + const x = +this._x.call(null, d), + y = +this._y.call(null, d); + return add(this.cover(x, y), x, y, d); +} + +function add(tree, x, y, d) { + if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points + + var parent, + node = tree._root, + leaf = {data: d}, + x0 = tree._x0, + y0 = tree._y0, + x1 = tree._x1, + y1 = tree._y1, + xm, + ym, + xp, + yp, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return tree._root = leaf, tree; + + // Find the existing leaf for the new point, or add it. + while (node.length) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; + } + + // Is the new point is exactly coincident with the existing point? + xp = +tree._x.call(null, node.data); + yp = +tree._y.call(null, node.data); + if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; + + // Otherwise, split the leaf node until the old and new point are separated. + do { + parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); + return parent[j] = node, parent[i] = leaf, tree; +} + +function addAll(data) { + var d, i, n = data.length, + x, + y, + xz = new Array(n), + yz = new Array(n), + x0 = Infinity, + y0 = Infinity, + x1 = -Infinity, + y1 = -Infinity; + + // Compute the points and their extent. + for (i = 0; i < n; ++i) { + if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; + xz[i] = x; + yz[i] = y; + if (x < x0) x0 = x; + if (x > x1) x1 = x; + if (y < y0) y0 = y; + if (y > y1) y1 = y; + } + + // If there were no (valid) points, abort. + if (x0 > x1 || y0 > y1) return this; + + // Expand the tree to cover the new points. + this.cover(x0, y0).cover(x1, y1); + + // Add the new points. + for (i = 0; i < n; ++i) { + add(this, xz[i], yz[i], data[i]); + } + + return this; +} + +function tree_cover(x, y) { + if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points + + var x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1; + + // If the quadtree has no extent, initialize them. + // Integer extent are necessary so that if we later double the extent, + // the existing quadrant boundaries don’t change due to floating point error! + if (isNaN(x0)) { + x1 = (x0 = Math.floor(x)) + 1; + y1 = (y0 = Math.floor(y)) + 1; + } + + // Otherwise, double repeatedly to cover. + else { + var z = x1 - x0 || 1, + node = this._root, + parent, + i; + + while (x0 > x || x >= x1 || y0 > y || y >= y1) { + i = (y < y0) << 1 | (x < x0); + parent = new Array(4), parent[i] = node, node = parent, z *= 2; + switch (i) { + case 0: x1 = x0 + z, y1 = y0 + z; break; + case 1: x0 = x1 - z, y1 = y0 + z; break; + case 2: x1 = x0 + z, y0 = y1 - z; break; + case 3: x0 = x1 - z, y0 = y1 - z; break; + } + } + + if (this._root && this._root.length) this._root = node; + } + + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + return this; +} + +function tree_data() { + var data = []; + this.visit(function(node) { + if (!node.length) do data.push(node.data); while (node = node.next) + }); + return data; +} + +function tree_extent(_) { + return arguments.length + ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) + : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; +} + +function Quad(node, x0, y0, x1, y1) { + this.node = node; + this.x0 = x0; + this.y0 = y0; + this.x1 = x1; + this.y1 = y1; +} + +function tree_find(x, y, radius) { + var data, + x0 = this._x0, + y0 = this._y0, + x1, + y1, + x2, + y2, + x3 = this._x1, + y3 = this._y1, + quads = [], + node = this._root, + q, + i; + + if (node) quads.push(new Quad(node, x0, y0, x3, y3)); + if (radius == null) radius = Infinity; + else { + x0 = x - radius, y0 = y - radius; + x3 = x + radius, y3 = y + radius; + radius *= radius; + } + + while (q = quads.pop()) { + + // Stop searching if this quadrant can’t contain a closer node. + if (!(node = q.node) + || (x1 = q.x0) > x3 + || (y1 = q.y0) > y3 + || (x2 = q.x1) < x0 + || (y2 = q.y1) < y0) continue; + + // Bisect the current quadrant. + if (node.length) { + var xm = (x1 + x2) / 2, + ym = (y1 + y2) / 2; + + quads.push( + new Quad(node[3], xm, ym, x2, y2), + new Quad(node[2], x1, ym, xm, y2), + new Quad(node[1], xm, y1, x2, ym), + new Quad(node[0], x1, y1, xm, ym) + ); + + // Visit the closest quadrant first. + if (i = (y >= ym) << 1 | (x >= xm)) { + q = quads[quads.length - 1]; + quads[quads.length - 1] = quads[quads.length - 1 - i]; + quads[quads.length - 1 - i] = q; + } + } + + // Visit this point. (Visiting coincident points isn’t necessary!) + else { + var dx = x - +this._x.call(null, node.data), + dy = y - +this._y.call(null, node.data), + d2 = dx * dx + dy * dy; + if (d2 < radius) { + var d = Math.sqrt(radius = d2); + x0 = x - d, y0 = y - d; + x3 = x + d, y3 = y + d; + data = node.data; + } + } + } + + return data; +} + +function tree_remove(d) { + if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points + + var parent, + node = this._root, + retainer, + previous, + next, + x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1, + x, + y, + xm, + ym, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return this; + + // Find the leaf node for the point. + // While descending, also retain the deepest parent with a non-removed sibling. + if (node.length) while (true) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (!(parent = node, node = node[i = bottom << 1 | right])) return this; + if (!node.length) break; + if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; + } + + // Find the point to remove. + while (node.data !== d) if (!(previous = node, node = node.next)) return this; + if (next = node.next) delete node.next; + + // If there are multiple coincident points, remove just the point. + if (previous) return (next ? previous.next = next : delete previous.next), this; + + // If this is the root point, remove it. + if (!parent) return this._root = next, this; + + // Remove this leaf. + next ? parent[i] = next : delete parent[i]; + + // If the parent now contains exactly one leaf, collapse superfluous parents. + if ((node = parent[0] || parent[1] || parent[2] || parent[3]) + && node === (parent[3] || parent[2] || parent[1] || parent[0]) + && !node.length) { + if (retainer) retainer[j] = node; + else this._root = node; + } + + return this; +} + +function removeAll(data) { + for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); + return this; +} + +function tree_root() { + return this._root; +} + +function tree_size() { + var size = 0; + this.visit(function(node) { + if (!node.length) do ++size; while (node = node.next) + }); + return size; +} + +function tree_visit(callback) { + var quads = [], q, node = this._root, child, x0, y0, x1, y1; + if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { + var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + } + } + return this; +} + +function tree_visitAfter(callback) { + var quads = [], next = [], q; + if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + var node = q.node; + if (node.length) { + var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + } + next.push(q); + } + while (q = next.pop()) { + callback(q.node, q.x0, q.y0, q.x1, q.y1); + } + return this; +} + +function defaultX(d) { + return d[0]; +} + +function tree_x(_) { + return arguments.length ? (this._x = _, this) : this._x; +} + +function defaultY(d) { + return d[1]; +} + +function tree_y(_) { + return arguments.length ? (this._y = _, this) : this._y; +} + +function quadtree(nodes, x, y) { + var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); + return nodes == null ? tree : tree.addAll(nodes); +} + +function Quadtree(x, y, x0, y0, x1, y1) { + this._x = x; + this._y = y; + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + this._root = undefined; +} + +function leaf_copy(leaf) { + var copy = {data: leaf.data}, next = copy; + while (leaf = leaf.next) next = next.next = {data: leaf.data}; + return copy; +} + +var treeProto = quadtree.prototype = Quadtree.prototype; + +treeProto.copy = function() { + var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), + node = this._root, + nodes, + child; + + if (!node) return copy; + + if (!node.length) return copy._root = leaf_copy(node), copy; + + nodes = [{source: node, target: copy._root = new Array(4)}]; + while (node = nodes.pop()) { + for (var i = 0; i < 4; ++i) { + if (child = node.source[i]) { + if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); + else node.target[i] = leaf_copy(child); + } + } + } + + return copy; +}; + +treeProto.add = tree_add; +treeProto.addAll = addAll; +treeProto.cover = tree_cover; +treeProto.data = tree_data; +treeProto.extent = tree_extent; +treeProto.find = tree_find; +treeProto.remove = tree_remove; +treeProto.removeAll = removeAll; +treeProto.root = tree_root; +treeProto.size = tree_size; +treeProto.visit = tree_visit; +treeProto.visitAfter = tree_visitAfter; +treeProto.x = tree_x; +treeProto.y = tree_y; + +function constant$4(x) { + return function() { + return x; + }; +} + +function jiggle(random) { + return (random() - 0.5) * 1e-6; +} + +function x$3(d) { + return d.x + d.vx; +} + +function y$3(d) { + return d.y + d.vy; +} + +function collide(radius) { + var nodes, + radii, + random, + strength = 1, + iterations = 1; + + if (typeof radius !== "function") radius = constant$4(radius == null ? 1 : +radius); + + function force() { + var i, n = nodes.length, + tree, + node, + xi, + yi, + ri, + ri2; + + for (var k = 0; k < iterations; ++k) { + tree = quadtree(nodes, x$3, y$3).visitAfter(prepare); + for (i = 0; i < n; ++i) { + node = nodes[i]; + ri = radii[node.index], ri2 = ri * ri; + xi = node.x + node.vx; + yi = node.y + node.vy; + tree.visit(apply); + } + } + + function apply(quad, x0, y0, x1, y1) { + var data = quad.data, rj = quad.r, r = ri + rj; + if (data) { + if (data.index > node.index) { + var x = xi - data.x - data.vx, + y = yi - data.y - data.vy, + l = x * x + y * y; + if (l < r * r) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + l = (r - (l = Math.sqrt(l))) / l * strength; + node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); + node.vy += (y *= l) * r; + data.vx -= x * (r = 1 - r); + data.vy -= y * r; + } + } + return; + } + return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; + } + } + + function prepare(quad) { + if (quad.data) return quad.r = radii[quad.data.index]; + for (var i = quad.r = 0; i < 4; ++i) { + if (quad[i] && quad[i].r > quad.r) { + quad.r = quad[i].r; + } + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + radii = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; + }; + + return force; +} + +function index$3(d) { + return d.index; +} + +function find(nodeById, nodeId) { + var node = nodeById.get(nodeId); + if (!node) throw new Error("node not found: " + nodeId); + return node; +} + +function link$2(links) { + var id = index$3, + strength = defaultStrength, + strengths, + distance = constant$4(30), + distances, + nodes, + count, + bias, + random, + iterations = 1; + + if (links == null) links = []; + + function defaultStrength(link) { + return 1 / Math.min(count[link.source.index], count[link.target.index]); + } + + function force(alpha) { + for (var k = 0, n = links.length; k < iterations; ++k) { + for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { + link = links[i], source = link.source, target = link.target; + x = target.x + target.vx - source.x - source.vx || jiggle(random); + y = target.y + target.vy - source.y - source.vy || jiggle(random); + l = Math.sqrt(x * x + y * y); + l = (l - distances[i]) / l * alpha * strengths[i]; + x *= l, y *= l; + target.vx -= x * (b = bias[i]); + target.vy -= y * b; + source.vx += x * (b = 1 - b); + source.vy += y * b; + } + } + } + + function initialize() { + if (!nodes) return; + + var i, + n = nodes.length, + m = links.length, + nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])), + link; + + for (i = 0, count = new Array(n); i < m; ++i) { + link = links[i], link.index = i; + if (typeof link.source !== "object") link.source = find(nodeById, link.source); + if (typeof link.target !== "object") link.target = find(nodeById, link.target); + count[link.source.index] = (count[link.source.index] || 0) + 1; + count[link.target.index] = (count[link.target.index] || 0) + 1; + } + + for (i = 0, bias = new Array(m); i < m; ++i) { + link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); + } + + strengths = new Array(m), initializeStrength(); + distances = new Array(m), initializeDistance(); + } + + function initializeStrength() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + strengths[i] = +strength(links[i], i, links); + } + } + + function initializeDistance() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + distances[i] = +distance(links[i], i, links); + } + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.links = function(_) { + return arguments.length ? (links = _, initialize(), force) : links; + }; + + force.id = function(_) { + return arguments.length ? (id = _, force) : id; + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initializeStrength(), force) : strength; + }; + + force.distance = function(_) { + return arguments.length ? (distance = typeof _ === "function" ? _ : constant$4(+_), initializeDistance(), force) : distance; + }; + + return force; +} + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a$1 = 1664525; +const c$3 = 1013904223; +const m = 4294967296; // 2^32 + +function lcg$1() { + let s = 1; + return () => (s = (a$1 * s + c$3) % m) / m; +} + +function x$2(d) { + return d.x; +} + +function y$2(d) { + return d.y; +} + +var initialRadius = 10, + initialAngle = Math.PI * (3 - Math.sqrt(5)); + +function simulation(nodes) { + var simulation, + alpha = 1, + alphaMin = 0.001, + alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), + alphaTarget = 0, + velocityDecay = 0.6, + forces = new Map(), + stepper = timer(step), + event = dispatch("tick", "end"), + random = lcg$1(); + + if (nodes == null) nodes = []; + + function step() { + tick(); + event.call("tick", simulation); + if (alpha < alphaMin) { + stepper.stop(); + event.call("end", simulation); + } + } + + function tick(iterations) { + var i, n = nodes.length, node; + + if (iterations === undefined) iterations = 1; + + for (var k = 0; k < iterations; ++k) { + alpha += (alphaTarget - alpha) * alphaDecay; + + forces.forEach(function(force) { + force(alpha); + }); + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (node.fx == null) node.x += node.vx *= velocityDecay; + else node.x = node.fx, node.vx = 0; + if (node.fy == null) node.y += node.vy *= velocityDecay; + else node.y = node.fy, node.vy = 0; + } + } + + return simulation; + } + + function initializeNodes() { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.index = i; + if (node.fx != null) node.x = node.fx; + if (node.fy != null) node.y = node.fy; + if (isNaN(node.x) || isNaN(node.y)) { + var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle; + node.x = radius * Math.cos(angle); + node.y = radius * Math.sin(angle); + } + if (isNaN(node.vx) || isNaN(node.vy)) { + node.vx = node.vy = 0; + } + } + } + + function initializeForce(force) { + if (force.initialize) force.initialize(nodes, random); + return force; + } + + initializeNodes(); + + return simulation = { + tick: tick, + + restart: function() { + return stepper.restart(step), simulation; + }, + + stop: function() { + return stepper.stop(), simulation; + }, + + nodes: function(_) { + return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes; + }, + + alpha: function(_) { + return arguments.length ? (alpha = +_, simulation) : alpha; + }, + + alphaMin: function(_) { + return arguments.length ? (alphaMin = +_, simulation) : alphaMin; + }, + + alphaDecay: function(_) { + return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; + }, + + alphaTarget: function(_) { + return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; + }, + + velocityDecay: function(_) { + return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; + }, + + randomSource: function(_) { + return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random; + }, + + force: function(name, _) { + return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); + }, + + find: function(x, y, radius) { + var i = 0, + n = nodes.length, + dx, + dy, + d2, + node, + closest; + + if (radius == null) radius = Infinity; + else radius *= radius; + + for (i = 0; i < n; ++i) { + node = nodes[i]; + dx = x - node.x; + dy = y - node.y; + d2 = dx * dx + dy * dy; + if (d2 < radius) closest = node, radius = d2; + } + + return closest; + }, + + on: function(name, _) { + return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); + } + }; +} + +function manyBody() { + var nodes, + node, + random, + alpha, + strength = constant$4(-30), + strengths, + distanceMin2 = 1, + distanceMax2 = Infinity, + theta2 = 0.81; + + function force(_) { + var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate); + for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + strengths = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); + } + + function accumulate(quad) { + var strength = 0, q, c, weight = 0, x, y, i; + + // For internal nodes, accumulate forces from child quadrants. + if (quad.length) { + for (x = y = i = 0; i < 4; ++i) { + if ((q = quad[i]) && (c = Math.abs(q.value))) { + strength += q.value, weight += c, x += c * q.x, y += c * q.y; + } + } + quad.x = x / weight; + quad.y = y / weight; + } + + // For leaf nodes, accumulate forces from coincident quadrants. + else { + q = quad; + q.x = q.data.x; + q.y = q.data.y; + do strength += strengths[q.data.index]; + while (q = q.next); + } + + quad.value = strength; + } + + function apply(quad, x1, _, x2) { + if (!quad.value) return true; + + var x = quad.x - node.x, + y = quad.y - node.y, + w = x2 - x1, + l = x * x + y * y; + + // Apply the Barnes-Hut approximation if possible. + // Limit forces for very close nodes; randomize direction if coincident. + if (w * w / theta2 < l) { + if (l < distanceMax2) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + node.vx += x * quad.value * alpha / l; + node.vy += y * quad.value * alpha / l; + } + return true; + } + + // Otherwise, process points directly. + else if (quad.length || l >= distanceMax2) return; + + // Limit forces for very close nodes; randomize direction if coincident. + if (quad.data !== node || quad.next) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + } + + do if (quad.data !== node) { + w = strengths[quad.data.index] * alpha / l; + node.vx += x * w; + node.vy += y * w; + } while (quad = quad.next); + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.distanceMin = function(_) { + return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); + }; + + force.distanceMax = function(_) { + return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); + }; + + force.theta = function(_) { + return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); + }; + + return force; +} + +function radial$1(radius, x, y) { + var nodes, + strength = constant$4(0.1), + strengths, + radiuses; + + if (typeof radius !== "function") radius = constant$4(+radius); + if (x == null) x = 0; + if (y == null) y = 0; + + function force(alpha) { + for (var i = 0, n = nodes.length; i < n; ++i) { + var node = nodes[i], + dx = node.x - x || 1e-6, + dy = node.y - y || 1e-6, + r = Math.sqrt(dx * dx + dy * dy), + k = (radiuses[i] - r) * strengths[i] * alpha / r; + node.vx += dx * k; + node.vy += dy * k; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + radiuses = new Array(n); + for (i = 0; i < n; ++i) { + radiuses[i] = +radius(nodes[i], i, nodes); + strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _, initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + return force; +} + +function x$1(x) { + var strength = constant$4(0.1), + nodes, + strengths, + xz; + + if (typeof x !== "function") x = constant$4(x == null ? 0 : +x); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + xz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : x; + }; + + return force; +} + +function y$1(y) { + var strength = constant$4(0.1), + nodes, + strengths, + yz; + + if (typeof y !== "function") y = constant$4(y == null ? 0 : +y); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + yz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : y; + }; + + return force; +} + +function formatDecimal(x) { + return Math.abs(x = Math.round(x)) >= 1e21 + ? x.toLocaleString("en").replace(/,/g, "") + : x.toString(10); +} + +// Computes the decimal coefficient and exponent of the specified number x with +// significant digits p, where x is positive and p is in [1, 21] or undefined. +// For example, formatDecimalParts(1.23) returns ["123", 0]. +function formatDecimalParts(x, p) { + if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity + var i, coefficient = x.slice(0, i); + + // The string returned by toExponential either has the form \d\.\d+e[-+]\d+ + // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). + return [ + coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, + +x.slice(i + 1) + ]; +} + +function exponent(x) { + return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; +} + +function formatGroup(grouping, thousands) { + return function(value, width) { + var i = value.length, + t = [], + j = 0, + g = grouping[0], + length = 0; + + while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) break; + g = grouping[j = (j + 1) % grouping.length]; + } + + return t.reverse().join(thousands); + }; +} + +function formatNumerals(numerals) { + return function(value) { + return value.replace(/[0-9]/g, function(i) { + return numerals[+i]; + }); + }; +} + +// [[fill]align][sign][symbol][0][width][,][.precision][~][type] +var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; + +function formatSpecifier(specifier) { + if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier); + var match; + return new FormatSpecifier({ + fill: match[1], + align: match[2], + sign: match[3], + symbol: match[4], + zero: match[5], + width: match[6], + comma: match[7], + precision: match[8] && match[8].slice(1), + trim: match[9], + type: match[10] + }); +} + +formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof + +function FormatSpecifier(specifier) { + this.fill = specifier.fill === undefined ? " " : specifier.fill + ""; + this.align = specifier.align === undefined ? ">" : specifier.align + ""; + this.sign = specifier.sign === undefined ? "-" : specifier.sign + ""; + this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + ""; + this.zero = !!specifier.zero; + this.width = specifier.width === undefined ? undefined : +specifier.width; + this.comma = !!specifier.comma; + this.precision = specifier.precision === undefined ? undefined : +specifier.precision; + this.trim = !!specifier.trim; + this.type = specifier.type === undefined ? "" : specifier.type + ""; +} + +FormatSpecifier.prototype.toString = function() { + return this.fill + + this.align + + this.sign + + this.symbol + + (this.zero ? "0" : "") + + (this.width === undefined ? "" : Math.max(1, this.width | 0)) + + (this.comma ? "," : "") + + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) + + (this.trim ? "~" : "") + + this.type; +}; + +// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k. +function formatTrim(s) { + out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { + switch (s[i]) { + case ".": i0 = i1 = i; break; + case "0": if (i0 === 0) i0 = i; i1 = i; break; + default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break; + } + } + return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; +} + +var prefixExponent; + +function formatPrefixAuto(x, p) { + var d = formatDecimalParts(x, p); + if (!d) return x + ""; + var coefficient = d[0], + exponent = d[1], + i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, + n = coefficient.length; + return i === n ? coefficient + : i > n ? coefficient + new Array(i - n + 1).join("0") + : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) + : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y! +} + +function formatRounded(x, p) { + var d = formatDecimalParts(x, p); + if (!d) return x + ""; + var coefficient = d[0], + exponent = d[1]; + return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient + : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) + : coefficient + new Array(exponent - coefficient.length + 2).join("0"); +} + +var formatTypes = { + "%": (x, p) => (x * 100).toFixed(p), + "b": (x) => Math.round(x).toString(2), + "c": (x) => x + "", + "d": formatDecimal, + "e": (x, p) => x.toExponential(p), + "f": (x, p) => x.toFixed(p), + "g": (x, p) => x.toPrecision(p), + "o": (x) => Math.round(x).toString(8), + "p": (x, p) => formatRounded(x * 100, p), + "r": formatRounded, + "s": formatPrefixAuto, + "X": (x) => Math.round(x).toString(16).toUpperCase(), + "x": (x) => Math.round(x).toString(16) +}; + +function identity$6(x) { + return x; +} + +var map = Array.prototype.map, + prefixes = ["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"]; + +function formatLocale$1(locale) { + var group = locale.grouping === undefined || locale.thousands === undefined ? identity$6 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), + currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "", + currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "", + decimal = locale.decimal === undefined ? "." : locale.decimal + "", + numerals = locale.numerals === undefined ? identity$6 : formatNumerals(map.call(locale.numerals, String)), + percent = locale.percent === undefined ? "%" : locale.percent + "", + minus = locale.minus === undefined ? "\u2212" : locale.minus + "", + nan = locale.nan === undefined ? "NaN" : locale.nan + ""; + + function newFormat(specifier) { + specifier = formatSpecifier(specifier); + + var fill = specifier.fill, + align = specifier.align, + sign = specifier.sign, + symbol = specifier.symbol, + zero = specifier.zero, + width = specifier.width, + comma = specifier.comma, + precision = specifier.precision, + trim = specifier.trim, + type = specifier.type; + + // The "n" type is an alias for ",g". + if (type === "n") comma = true, type = "g"; + + // The "" type, and any invalid type, is an alias for ".12~g". + else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; + + // If zero fill is specified, padding goes after sign and before digits. + if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "="; + + // Compute the prefix and suffix. + // For SI-prefix, the suffix is lazily computed. + var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", + suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; + + // What format function should we use? + // Is this an integer type? + // Can this type generate exponential notation? + var formatType = formatTypes[type], + maybeSuffix = /[defgprs%]/.test(type); + + // Set the default precision if not specified, + // or clamp the specified precision to the supported range. + // For significant precision, it must be in [1, 21]. + // For fixed precision, it must be in [0, 20]. + precision = precision === undefined ? 6 + : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) + : Math.max(0, Math.min(20, precision)); + + function format(value) { + var valuePrefix = prefix, + valueSuffix = suffix, + i, n, c; + + if (type === "c") { + valueSuffix = formatType(value) + valueSuffix; + value = ""; + } else { + value = +value; + + // Determine the sign. -0 is not less than 0, but 1 / -0 is! + var valueNegative = value < 0 || 1 / value < 0; + + // Perform the initial formatting. + value = isNaN(value) ? nan : formatType(Math.abs(value), precision); + + // Trim insignificant zeros. + if (trim) value = formatTrim(value); + + // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign. + if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; + + // Compute the prefix and suffix. + valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; + valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); + + // Break the formatted value into the integer “value” part that can be + // grouped, and fractional or exponential “suffix” part that is not. + if (maybeSuffix) { + i = -1, n = value.length; + while (++i < n) { + if (c = value.charCodeAt(i), 48 > c || c > 57) { + valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; + value = value.slice(0, i); + break; + } + } + } + } + + // If the fill character is not "0", grouping is applied before padding. + if (comma && !zero) value = group(value, Infinity); + + // Compute the padding. + var length = valuePrefix.length + value.length + valueSuffix.length, + padding = length < width ? new Array(width - length + 1).join(fill) : ""; + + // If the fill character is "0", grouping is applied after padding. + if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; + + // Reconstruct the final output based on the desired alignment. + switch (align) { + case "<": value = valuePrefix + value + valueSuffix + padding; break; + case "=": value = valuePrefix + padding + value + valueSuffix; break; + case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break; + default: value = padding + valuePrefix + value + valueSuffix; break; + } + + return numerals(value); + } + + format.toString = function() { + return specifier + ""; + }; + + return format; + } + + function formatPrefix(specifier, value) { + var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), + e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, + k = Math.pow(10, -e), + prefix = prefixes[8 + e / 3]; + return function(value) { + return f(k * value) + prefix; + }; + } + + return { + format: newFormat, + formatPrefix: formatPrefix + }; +} + +var locale$1; +exports.format = void 0; +exports.formatPrefix = void 0; + +defaultLocale$1({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); + +function defaultLocale$1(definition) { + locale$1 = formatLocale$1(definition); + exports.format = locale$1.format; + exports.formatPrefix = locale$1.formatPrefix; + return locale$1; +} + +function precisionFixed(step) { + return Math.max(0, -exponent(Math.abs(step))); +} + +function precisionPrefix(step, value) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); +} + +function precisionRound(step, max) { + step = Math.abs(step), max = Math.abs(max) - step; + return Math.max(0, exponent(max) - exponent(step)) + 1; +} + +var epsilon$1 = 1e-6; +var epsilon2 = 1e-12; +var pi$1 = Math.PI; +var halfPi$1 = pi$1 / 2; +var quarterPi = pi$1 / 4; +var tau$1 = pi$1 * 2; + +var degrees = 180 / pi$1; +var radians = pi$1 / 180; + +var abs$1 = Math.abs; +var atan = Math.atan; +var atan2$1 = Math.atan2; +var cos$1 = Math.cos; +var ceil = Math.ceil; +var exp = Math.exp; +var hypot = Math.hypot; +var log$1 = Math.log; +var pow$1 = Math.pow; +var sin$1 = Math.sin; +var sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; }; +var sqrt$2 = Math.sqrt; +var tan = Math.tan; + +function acos$1(x) { + return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x); +} + +function asin$1(x) { + return x > 1 ? halfPi$1 : x < -1 ? -halfPi$1 : Math.asin(x); +} + +function haversin(x) { + return (x = sin$1(x / 2)) * x; +} + +function noop$1() {} + +function streamGeometry(geometry, stream) { + if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) { + streamGeometryType[geometry.type](geometry, stream); + } +} + +var streamObjectType = { + Feature: function(object, stream) { + streamGeometry(object.geometry, stream); + }, + FeatureCollection: function(object, stream) { + var features = object.features, i = -1, n = features.length; + while (++i < n) streamGeometry(features[i].geometry, stream); + } +}; + +var streamGeometryType = { + Sphere: function(object, stream) { + stream.sphere(); + }, + Point: function(object, stream) { + object = object.coordinates; + stream.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]); + }, + LineString: function(object, stream) { + streamLine(object.coordinates, stream, 0); + }, + MultiLineString: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) streamLine(coordinates[i], stream, 0); + }, + Polygon: function(object, stream) { + streamPolygon(object.coordinates, stream); + }, + MultiPolygon: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) streamPolygon(coordinates[i], stream); + }, + GeometryCollection: function(object, stream) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) streamGeometry(geometries[i], stream); + } +}; + +function streamLine(coordinates, stream, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + stream.lineStart(); + while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]); + stream.lineEnd(); +} + +function streamPolygon(coordinates, stream) { + var i = -1, n = coordinates.length; + stream.polygonStart(); + while (++i < n) streamLine(coordinates[i], stream, 1); + stream.polygonEnd(); +} + +function geoStream(object, stream) { + if (object && streamObjectType.hasOwnProperty(object.type)) { + streamObjectType[object.type](object, stream); + } else { + streamGeometry(object, stream); + } +} + +var areaRingSum$1 = new Adder(); + +// hello? + +var areaSum$1 = new Adder(), + lambda00$2, + phi00$2, + lambda0$2, + cosPhi0$1, + sinPhi0$1; + +var areaStream$1 = { + point: noop$1, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: function() { + areaRingSum$1 = new Adder(); + areaStream$1.lineStart = areaRingStart$1; + areaStream$1.lineEnd = areaRingEnd$1; + }, + polygonEnd: function() { + var areaRing = +areaRingSum$1; + areaSum$1.add(areaRing < 0 ? tau$1 + areaRing : areaRing); + this.lineStart = this.lineEnd = this.point = noop$1; + }, + sphere: function() { + areaSum$1.add(tau$1); + } +}; + +function areaRingStart$1() { + areaStream$1.point = areaPointFirst$1; +} + +function areaRingEnd$1() { + areaPoint$1(lambda00$2, phi00$2); +} + +function areaPointFirst$1(lambda, phi) { + areaStream$1.point = areaPoint$1; + lambda00$2 = lambda, phi00$2 = phi; + lambda *= radians, phi *= radians; + lambda0$2 = lambda, cosPhi0$1 = cos$1(phi = phi / 2 + quarterPi), sinPhi0$1 = sin$1(phi); +} + +function areaPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + phi = phi / 2 + quarterPi; // half the angular distance from south pole + + // Spherical excess E for a spherical triangle with vertices: south pole, + // previous point, current point. Uses a formula derived from Cagnoli’s + // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). + var dLambda = lambda - lambda0$2, + sdLambda = dLambda >= 0 ? 1 : -1, + adLambda = sdLambda * dLambda, + cosPhi = cos$1(phi), + sinPhi = sin$1(phi), + k = sinPhi0$1 * sinPhi, + u = cosPhi0$1 * cosPhi + k * cos$1(adLambda), + v = k * sdLambda * sin$1(adLambda); + areaRingSum$1.add(atan2$1(v, u)); + + // Advance the previous points. + lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi; +} + +function area$2(object) { + areaSum$1 = new Adder(); + geoStream(object, areaStream$1); + return areaSum$1 * 2; +} + +function spherical(cartesian) { + return [atan2$1(cartesian[1], cartesian[0]), asin$1(cartesian[2])]; +} + +function cartesian(spherical) { + var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi); + return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)]; +} + +function cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +} + +function cartesianCross(a, b) { + return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]]; +} + +// TODO return a +function cartesianAddInPlace(a, b) { + a[0] += b[0], a[1] += b[1], a[2] += b[2]; +} + +function cartesianScale(vector, k) { + return [vector[0] * k, vector[1] * k, vector[2] * k]; +} + +// TODO return d +function cartesianNormalizeInPlace(d) { + var l = sqrt$2(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l, d[1] /= l, d[2] /= l; +} + +var lambda0$1, phi0, lambda1, phi1, // bounds + lambda2, // previous lambda-coordinate + lambda00$1, phi00$1, // first point + p0, // previous 3D point + deltaSum, + ranges, + range; + +var boundsStream$1 = { + point: boundsPoint$1, + lineStart: boundsLineStart, + lineEnd: boundsLineEnd, + polygonStart: function() { + boundsStream$1.point = boundsRingPoint; + boundsStream$1.lineStart = boundsRingStart; + boundsStream$1.lineEnd = boundsRingEnd; + deltaSum = new Adder(); + areaStream$1.polygonStart(); + }, + polygonEnd: function() { + areaStream$1.polygonEnd(); + boundsStream$1.point = boundsPoint$1; + boundsStream$1.lineStart = boundsLineStart; + boundsStream$1.lineEnd = boundsLineEnd; + if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); + else if (deltaSum > epsilon$1) phi1 = 90; + else if (deltaSum < -epsilon$1) phi0 = -90; + range[0] = lambda0$1, range[1] = lambda1; + }, + sphere: function() { + lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); + } +}; + +function boundsPoint$1(lambda, phi) { + ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; +} + +function linePoint(lambda, phi) { + var p = cartesian([lambda * radians, phi * radians]); + if (p0) { + var normal = cartesianCross(p0, p), + equatorial = [normal[1], -normal[0], 0], + inflection = cartesianCross(equatorial, normal); + cartesianNormalizeInPlace(inflection); + inflection = spherical(inflection); + var delta = lambda - lambda2, + sign = delta > 0 ? 1 : -1, + lambdai = inflection[0] * degrees * sign, + phii, + antimeridian = abs$1(delta) > 180; + if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { + phii = inflection[1] * degrees; + if (phii > phi1) phi1 = phii; + } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { + phii = -inflection[1] * degrees; + if (phii < phi0) phi0 = phii; + } else { + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; + } + if (antimeridian) { + if (lambda < lambda2) { + if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; + } else { + if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; + } + } else { + if (lambda1 >= lambda0$1) { + if (lambda < lambda0$1) lambda0$1 = lambda; + if (lambda > lambda1) lambda1 = lambda; + } else { + if (lambda > lambda2) { + if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; + } else { + if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; + } + } + } + } else { + ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); + } + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; + p0 = p, lambda2 = lambda; +} + +function boundsLineStart() { + boundsStream$1.point = linePoint; +} + +function boundsLineEnd() { + range[0] = lambda0$1, range[1] = lambda1; + boundsStream$1.point = boundsPoint$1; + p0 = null; +} + +function boundsRingPoint(lambda, phi) { + if (p0) { + var delta = lambda - lambda2; + deltaSum.add(abs$1(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta); + } else { + lambda00$1 = lambda, phi00$1 = phi; + } + areaStream$1.point(lambda, phi); + linePoint(lambda, phi); +} + +function boundsRingStart() { + areaStream$1.lineStart(); +} + +function boundsRingEnd() { + boundsRingPoint(lambda00$1, phi00$1); + areaStream$1.lineEnd(); + if (abs$1(deltaSum) > epsilon$1) lambda0$1 = -(lambda1 = 180); + range[0] = lambda0$1, range[1] = lambda1; + p0 = null; +} + +// Finds the left-right distance between two longitudes. +// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want +// the distance between ±180° to be 360°. +function angle(lambda0, lambda1) { + return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1; +} + +function rangeCompare(a, b) { + return a[0] - b[0]; +} + +function rangeContains(range, x) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; +} + +function bounds(feature) { + var i, n, a, b, merged, deltaMax, delta; + + phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity); + ranges = []; + geoStream(feature, boundsStream$1); + + // First, sort ranges by their minimum longitudes. + if (n = ranges.length) { + ranges.sort(rangeCompare); + + // Then, merge any ranges that overlap. + for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) { + b = ranges[i]; + if (rangeContains(a, b[0]) || rangeContains(a, b[1])) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + + // Finally, find the largest gap between the merged ranges. + // The final bounding box will be the inverse of this gap. + for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) { + b = merged[i]; + if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1]; + } + } + + ranges = range = null; + + return lambda0$1 === Infinity || phi0 === Infinity + ? [[NaN, NaN], [NaN, NaN]] + : [[lambda0$1, phi0], [lambda1, phi1]]; +} + +var W0, W1, + X0$1, Y0$1, Z0$1, + X1$1, Y1$1, Z1$1, + X2$1, Y2$1, Z2$1, + lambda00, phi00, // first point + x0$4, y0$4, z0; // previous point + +var centroidStream$1 = { + sphere: noop$1, + point: centroidPoint$1, + lineStart: centroidLineStart$1, + lineEnd: centroidLineEnd$1, + polygonStart: function() { + centroidStream$1.lineStart = centroidRingStart$1; + centroidStream$1.lineEnd = centroidRingEnd$1; + }, + polygonEnd: function() { + centroidStream$1.lineStart = centroidLineStart$1; + centroidStream$1.lineEnd = centroidLineEnd$1; + } +}; + +// Arithmetic mean of Cartesian vectors. +function centroidPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi); + centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)); +} + +function centroidPointCartesian(x, y, z) { + ++W0; + X0$1 += (x - X0$1) / W0; + Y0$1 += (y - Y0$1) / W0; + Z0$1 += (z - Z0$1) / W0; +} + +function centroidLineStart$1() { + centroidStream$1.point = centroidLinePointFirst; +} + +function centroidLinePointFirst(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi); + x0$4 = cosPhi * cos$1(lambda); + y0$4 = cosPhi * sin$1(lambda); + z0 = sin$1(phi); + centroidStream$1.point = centroidLinePoint; + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidLinePoint(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi), + x = cosPhi * cos$1(lambda), + y = cosPhi * sin$1(lambda), + z = sin$1(phi), + w = atan2$1(sqrt$2((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z); + W1 += w; + X1$1 += w * (x0$4 + (x0$4 = x)); + Y1$1 += w * (y0$4 + (y0$4 = y)); + Z1$1 += w * (z0 + (z0 = z)); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidLineEnd$1() { + centroidStream$1.point = centroidPoint$1; +} + +// See J. E. Brock, The Inertia Tensor for a Spherical Triangle, +// J. Applied Mechanics 42, 239 (1975). +function centroidRingStart$1() { + centroidStream$1.point = centroidRingPointFirst; +} + +function centroidRingEnd$1() { + centroidRingPoint(lambda00, phi00); + centroidStream$1.point = centroidPoint$1; +} + +function centroidRingPointFirst(lambda, phi) { + lambda00 = lambda, phi00 = phi; + lambda *= radians, phi *= radians; + centroidStream$1.point = centroidRingPoint; + var cosPhi = cos$1(phi); + x0$4 = cosPhi * cos$1(lambda); + y0$4 = cosPhi * sin$1(lambda); + z0 = sin$1(phi); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidRingPoint(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi), + x = cosPhi * cos$1(lambda), + y = cosPhi * sin$1(lambda), + z = sin$1(phi), + cx = y0$4 * z - z0 * y, + cy = z0 * x - x0$4 * z, + cz = x0$4 * y - y0$4 * x, + m = hypot(cx, cy, cz), + w = asin$1(m), // line weight = angle + v = m && -w / m; // area weight multiplier + X2$1.add(v * cx); + Y2$1.add(v * cy); + Z2$1.add(v * cz); + W1 += w; + X1$1 += w * (x0$4 + (x0$4 = x)); + Y1$1 += w * (y0$4 + (y0$4 = y)); + Z1$1 += w * (z0 + (z0 = z)); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroid$1(object) { + W0 = W1 = + X0$1 = Y0$1 = Z0$1 = + X1$1 = Y1$1 = Z1$1 = 0; + X2$1 = new Adder(); + Y2$1 = new Adder(); + Z2$1 = new Adder(); + geoStream(object, centroidStream$1); + + var x = +X2$1, + y = +Y2$1, + z = +Z2$1, + m = hypot(x, y, z); + + // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid. + if (m < epsilon2) { + x = X1$1, y = Y1$1, z = Z1$1; + // If the feature has zero length, fall back to arithmetic mean of point vectors. + if (W1 < epsilon$1) x = X0$1, y = Y0$1, z = Z0$1; + m = hypot(x, y, z); + // If the feature still has an undefined ccentroid, then return. + if (m < epsilon2) return [NaN, NaN]; + } + + return [atan2$1(y, x) * degrees, asin$1(z / m) * degrees]; +} + +function constant$3(x) { + return function() { + return x; + }; +} + +function compose(a, b) { + + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + + return compose; +} + +function rotationIdentity(lambda, phi) { + return [abs$1(lambda) > pi$1 ? lambda + Math.round(-lambda / tau$1) * tau$1 : lambda, phi]; +} + +rotationIdentity.invert = rotationIdentity; + +function rotateRadians(deltaLambda, deltaPhi, deltaGamma) { + return (deltaLambda %= tau$1) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) + : rotationLambda(deltaLambda)) + : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) + : rotationIdentity); +} + +function forwardRotationLambda(deltaLambda) { + return function(lambda, phi) { + return lambda += deltaLambda, [lambda > pi$1 ? lambda - tau$1 : lambda < -pi$1 ? lambda + tau$1 : lambda, phi]; + }; +} + +function rotationLambda(deltaLambda) { + var rotation = forwardRotationLambda(deltaLambda); + rotation.invert = forwardRotationLambda(-deltaLambda); + return rotation; +} + +function rotationPhiGamma(deltaPhi, deltaGamma) { + var cosDeltaPhi = cos$1(deltaPhi), + sinDeltaPhi = sin$1(deltaPhi), + cosDeltaGamma = cos$1(deltaGamma), + sinDeltaGamma = sin$1(deltaGamma); + + function rotation(lambda, phi) { + var cosPhi = cos$1(phi), + x = cos$1(lambda) * cosPhi, + y = sin$1(lambda) * cosPhi, + z = sin$1(phi), + k = z * cosDeltaPhi + x * sinDeltaPhi; + return [ + atan2$1(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), + asin$1(k * cosDeltaGamma + y * sinDeltaGamma) + ]; + } + + rotation.invert = function(lambda, phi) { + var cosPhi = cos$1(phi), + x = cos$1(lambda) * cosPhi, + y = sin$1(lambda) * cosPhi, + z = sin$1(phi), + k = z * cosDeltaGamma - y * sinDeltaGamma; + return [ + atan2$1(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), + asin$1(k * cosDeltaPhi - x * sinDeltaPhi) + ]; + }; + + return rotation; +} + +function rotation(rotate) { + rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0); + + function forward(coordinates) { + coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians); + return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; + } + + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians); + return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; + }; + + return forward; +} + +// Generates a circle centered at [0°, 0°], with a given radius and precision. +function circleStream(stream, radius, delta, direction, t0, t1) { + if (!delta) return; + var cosRadius = cos$1(radius), + sinRadius = sin$1(radius), + step = direction * delta; + if (t0 == null) { + t0 = radius + direction * tau$1; + t1 = radius - step / 2; + } else { + t0 = circleRadius(cosRadius, t0); + t1 = circleRadius(cosRadius, t1); + if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1; + } + for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) { + point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]); + stream.point(point[0], point[1]); + } +} + +// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. +function circleRadius(cosRadius, point) { + point = cartesian(point), point[0] -= cosRadius; + cartesianNormalizeInPlace(point); + var radius = acos$1(-point[1]); + return ((-point[2] < 0 ? -radius : radius) + tau$1 - epsilon$1) % tau$1; +} + +function circle$2() { + var center = constant$3([0, 0]), + radius = constant$3(90), + precision = constant$3(6), + ring, + rotate, + stream = {point: point}; + + function point(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= degrees, x[1] *= degrees; + } + + function circle() { + var c = center.apply(this, arguments), + r = radius.apply(this, arguments) * radians, + p = precision.apply(this, arguments) * radians; + ring = []; + rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert; + circleStream(stream, r, p, 1); + c = {type: "Polygon", coordinates: [ring]}; + ring = rotate = null; + return c; + } + + circle.center = function(_) { + return arguments.length ? (center = typeof _ === "function" ? _ : constant$3([+_[0], +_[1]]), circle) : center; + }; + + circle.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$3(+_), circle) : radius; + }; + + circle.precision = function(_) { + return arguments.length ? (precision = typeof _ === "function" ? _ : constant$3(+_), circle) : precision; + }; + + return circle; +} + +function clipBuffer() { + var lines = [], + line; + return { + point: function(x, y, m) { + line.push([x, y, m]); + }, + lineStart: function() { + lines.push(line = []); + }, + lineEnd: noop$1, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + }, + result: function() { + var result = lines; + lines = []; + line = null; + return result; + } + }; +} + +function pointEqual(a, b) { + return abs$1(a[0] - b[0]) < epsilon$1 && abs$1(a[1] - b[1]) < epsilon$1; +} + +function Intersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; // another intersection + this.e = entry; // is an entry? + this.v = false; // visited + this.n = this.p = null; // next & previous +} + +// A generalized polygon clipping algorithm: given a polygon that has been cut +// into its visible line segments, and rejoins the segments by interpolating +// along the clip edge. +function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) { + var subject = [], + clip = [], + i, + n; + + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n], x; + + if (pointEqual(p0, p1)) { + if (!p0[2] && !p1[2]) { + stream.lineStart(); + for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]); + stream.lineEnd(); + return; + } + // handle degenerate cases by moving the point + p1[0] += 2 * epsilon$1; + } + + subject.push(x = new Intersection(p0, segment, null, true)); + clip.push(x.o = new Intersection(p0, null, x, false)); + subject.push(x = new Intersection(p1, segment, null, false)); + clip.push(x.o = new Intersection(p1, null, x, true)); + }); + + if (!subject.length) return; + + clip.sort(compareIntersection); + link$1(subject); + link$1(clip); + + for (i = 0, n = clip.length; i < n; ++i) { + clip[i].e = startInside = !startInside; + } + + var start = subject[0], + points, + point; + + while (1) { + // Find first unvisited intersection. + var current = start, + isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + stream.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, stream); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, stream); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + stream.lineEnd(); + } +} + +function link$1(array) { + if (!(n = array.length)) return; + var n, + i = 0, + a = array[0], + b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; +} + +function longitude(point) { + if (abs$1(point[0]) <= pi$1) + return point[0]; + else + return sign$1(point[0]) * ((abs$1(point[0]) + pi$1) % tau$1 - pi$1); +} + +function polygonContains(polygon, point) { + var lambda = longitude(point), + phi = point[1], + sinPhi = sin$1(phi), + normal = [sin$1(lambda), -cos$1(lambda), 0], + angle = 0, + winding = 0; + + var sum = new Adder(); + + if (sinPhi === 1) phi = halfPi$1 + epsilon$1; + else if (sinPhi === -1) phi = -halfPi$1 - epsilon$1; + + for (var i = 0, n = polygon.length; i < n; ++i) { + if (!(m = (ring = polygon[i]).length)) continue; + var ring, + m, + point0 = ring[m - 1], + lambda0 = longitude(point0), + phi0 = point0[1] / 2 + quarterPi, + sinPhi0 = sin$1(phi0), + cosPhi0 = cos$1(phi0); + + for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) { + var point1 = ring[j], + lambda1 = longitude(point1), + phi1 = point1[1] / 2 + quarterPi, + sinPhi1 = sin$1(phi1), + cosPhi1 = cos$1(phi1), + delta = lambda1 - lambda0, + sign = delta >= 0 ? 1 : -1, + absDelta = sign * delta, + antimeridian = absDelta > pi$1, + k = sinPhi0 * sinPhi1; + + sum.add(atan2$1(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta))); + angle += antimeridian ? delta + sign * tau$1 : delta; + + // Are the longitudes either side of the point’s meridian (lambda), + // and are the latitudes smaller than the parallel (phi)? + if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) { + var arc = cartesianCross(cartesian(point0), cartesian(point1)); + cartesianNormalizeInPlace(arc); + var intersection = cartesianCross(normal, arc); + cartesianNormalizeInPlace(intersection); + var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]); + if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) { + winding += antimeridian ^ delta >= 0 ? 1 : -1; + } + } + } + } + + // First, determine whether the South pole is inside or outside: + // + // It is inside if: + // * the polygon winds around it in a clockwise direction. + // * the polygon does not (cumulatively) wind around it, but has a negative + // (counter-clockwise) area. + // + // Second, count the (signed) number of times a segment crosses a lambda + // from the point to the South pole. If it is zero, then the point is the + // same side as the South pole. + + return (angle < -epsilon$1 || angle < epsilon$1 && sum < -epsilon2) ^ (winding & 1); +} + +function clip(pointVisible, clipLine, interpolate, start) { + return function(sink) { + var line = clipLine(sink), + ringBuffer = clipBuffer(), + ringSink = clipLine(ringBuffer), + polygonStarted = false, + polygon, + segments, + ring; + + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = merge(segments); + var startInside = polygonContains(polygon, start); + if (segments.length) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + clipRejoin(segments, compareIntersection, startInside, interpolate, sink); + } else if (startInside) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + sink.lineStart(); + interpolate(null, null, 1, sink); + sink.lineEnd(); + } + if (polygonStarted) sink.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + sink.polygonStart(); + sink.lineStart(); + interpolate(null, null, 1, sink); + sink.lineEnd(); + sink.polygonEnd(); + } + }; + + function point(lambda, phi) { + if (pointVisible(lambda, phi)) sink.point(lambda, phi); + } + + function pointLine(lambda, phi) { + line.point(lambda, phi); + } + + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + + function pointRing(lambda, phi) { + ring.push([lambda, phi]); + ringSink.point(lambda, phi); + } + + function ringStart() { + ringSink.lineStart(); + ring = []; + } + + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringSink.lineEnd(); + + var clean = ringSink.clean(), + ringSegments = ringBuffer.result(), + i, n = ringSegments.length, m, + segment, + point; + + ring.pop(); + polygon.push(ring); + ring = null; + + if (!n) return; + + // No intersections. + if (clean & 1) { + segment = ringSegments[0]; + if ((m = segment.length - 1) > 0) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + sink.lineStart(); + for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]); + sink.lineEnd(); + } + return; + } + + // Rejoin connected segments. + // TODO reuse ringBuffer.rejoin()? + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + + segments.push(ringSegments.filter(validSegment)); + } + + return clip; + }; +} + +function validSegment(segment) { + return segment.length > 1; +} + +// Intersections are sorted along the clip edge. For both antimeridian cutting +// and circle clipping, the same comparison is used. +function compareIntersection(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfPi$1 - epsilon$1 : halfPi$1 - a[1]) + - ((b = b.x)[0] < 0 ? b[1] - halfPi$1 - epsilon$1 : halfPi$1 - b[1]); +} + +var clipAntimeridian = clip( + function() { return true; }, + clipAntimeridianLine, + clipAntimeridianInterpolate, + [-pi$1, -halfPi$1] +); + +// Takes a line and cuts into visible segments. Return values: 0 - there were +// intersections or the line was empty; 1 - no intersections; 2 - there were +// intersections, and the first and last segments should be rejoined. +function clipAntimeridianLine(stream) { + var lambda0 = NaN, + phi0 = NaN, + sign0 = NaN, + clean; // no intersections + + return { + lineStart: function() { + stream.lineStart(); + clean = 1; + }, + point: function(lambda1, phi1) { + var sign1 = lambda1 > 0 ? pi$1 : -pi$1, + delta = abs$1(lambda1 - lambda0); + if (abs$1(delta - pi$1) < epsilon$1) { // line crosses a pole + stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$1 : -halfPi$1); + stream.point(sign0, phi0); + stream.lineEnd(); + stream.lineStart(); + stream.point(sign1, phi0); + stream.point(lambda1, phi0); + clean = 0; + } else if (sign0 !== sign1 && delta >= pi$1) { // line crosses antimeridian + if (abs$1(lambda0 - sign0) < epsilon$1) lambda0 -= sign0 * epsilon$1; // handle degeneracies + if (abs$1(lambda1 - sign1) < epsilon$1) lambda1 -= sign1 * epsilon$1; + phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1); + stream.point(sign0, phi0); + stream.lineEnd(); + stream.lineStart(); + stream.point(sign1, phi0); + clean = 0; + } + stream.point(lambda0 = lambda1, phi0 = phi1); + sign0 = sign1; + }, + lineEnd: function() { + stream.lineEnd(); + lambda0 = phi0 = NaN; + }, + clean: function() { + return 2 - clean; // if intersections, rejoin first and last segments + } + }; +} + +function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) { + var cosPhi0, + cosPhi1, + sinLambda0Lambda1 = sin$1(lambda0 - lambda1); + return abs$1(sinLambda0Lambda1) > epsilon$1 + ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1) + - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0)) + / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) + : (phi0 + phi1) / 2; +} + +function clipAntimeridianInterpolate(from, to, direction, stream) { + var phi; + if (from == null) { + phi = direction * halfPi$1; + stream.point(-pi$1, phi); + stream.point(0, phi); + stream.point(pi$1, phi); + stream.point(pi$1, 0); + stream.point(pi$1, -phi); + stream.point(0, -phi); + stream.point(-pi$1, -phi); + stream.point(-pi$1, 0); + stream.point(-pi$1, phi); + } else if (abs$1(from[0] - to[0]) > epsilon$1) { + var lambda = from[0] < to[0] ? pi$1 : -pi$1; + phi = direction * lambda / 2; + stream.point(-lambda, phi); + stream.point(0, phi); + stream.point(lambda, phi); + } else { + stream.point(to[0], to[1]); + } +} + +function clipCircle(radius) { + var cr = cos$1(radius), + delta = 6 * radians, + smallRadius = cr > 0, + notHemisphere = abs$1(cr) > epsilon$1; // TODO optimise for this common case + + function interpolate(from, to, direction, stream) { + circleStream(stream, radius, delta, direction, from, to); + } + + function visible(lambda, phi) { + return cos$1(lambda) * cos$1(phi) > cr; + } + + // Takes a line and cuts into visible segments. Return values used for polygon + // clipping: 0 - there were intersections or the line was empty; 1 - no + // intersections 2 - there were intersections, and the first and last segments + // should be rejoined. + function clipLine(stream) { + var point0, // previous point + c0, // code for previous point + v0, // visibility of previous point + v00, // visibility of first point + clean; // no intersections + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(lambda, phi) { + var point1 = [lambda, phi], + point2, + v = visible(lambda, phi), + c = smallRadius + ? v ? 0 : code(lambda, phi) + : v ? code(lambda + (lambda < 0 ? pi$1 : -pi$1), phi) : 0; + if (!point0 && (v00 = v0 = v)) stream.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) + point1[2] = 1; + } + if (v !== v0) { + clean = 0; + if (v) { + // outside going in + stream.lineStart(); + point2 = intersect(point1, point0); + stream.point(point2[0], point2[1]); + } else { + // inside going out + point2 = intersect(point0, point1); + stream.point(point2[0], point2[1], 2); + stream.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + // If the codes for two points are different, or are both zero, + // and there this segment intersects with the small circle. + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + stream.lineStart(); + stream.point(t[0][0], t[0][1]); + stream.point(t[1][0], t[1][1]); + stream.lineEnd(); + } else { + stream.point(t[1][0], t[1][1]); + stream.lineEnd(); + stream.lineStart(); + stream.point(t[0][0], t[0][1], 3); + } + } + } + if (v && (!point0 || !pointEqual(point0, point1))) { + stream.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) stream.lineEnd(); + point0 = null; + }, + // Rejoin first and last segments if there were intersections and the first + // and last points were visible. + clean: function() { + return clean | ((v00 && v0) << 1); + } + }; + } + + // Intersects the great circle between a and b with the clip circle. + function intersect(a, b, two) { + var pa = cartesian(a), + pb = cartesian(b); + + // We have two planes, n1.p = d1 and n2.p = d2. + // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2). + var n1 = [1, 0, 0], // normal + n2 = cartesianCross(pa, pb), + n2n2 = cartesianDot(n2, n2), + n1n2 = n2[0], // cartesianDot(n1, n2), + determinant = n2n2 - n1n2 * n1n2; + + // Two polar points. + if (!determinant) return !two && a; + + var c1 = cr * n2n2 / determinant, + c2 = -cr * n1n2 / determinant, + n1xn2 = cartesianCross(n1, n2), + A = cartesianScale(n1, c1), + B = cartesianScale(n2, c2); + cartesianAddInPlace(A, B); + + // Solve |p(t)|^2 = 1. + var u = n1xn2, + w = cartesianDot(A, u), + uu = cartesianDot(u, u), + t2 = w * w - uu * (cartesianDot(A, A) - 1); + + if (t2 < 0) return; + + var t = sqrt$2(t2), + q = cartesianScale(u, (-w - t) / uu); + cartesianAddInPlace(q, A); + q = spherical(q); + + if (!two) return q; + + // Two intersection points. + var lambda0 = a[0], + lambda1 = b[0], + phi0 = a[1], + phi1 = b[1], + z; + + if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z; + + var delta = lambda1 - lambda0, + polar = abs$1(delta - pi$1) < epsilon$1, + meridian = polar || delta < epsilon$1; + + if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; + + // Check that the first point is between a and b. + if (meridian + ? polar + ? phi0 + phi1 > 0 ^ q[1] < (abs$1(q[0] - lambda0) < epsilon$1 ? phi0 : phi1) + : phi0 <= q[1] && q[1] <= phi1 + : delta > pi$1 ^ (lambda0 <= q[0] && q[0] <= lambda1)) { + var q1 = cartesianScale(u, (-w + t) / uu); + cartesianAddInPlace(q1, A); + return [q, spherical(q1)]; + } + } + + // Generates a 4-bit vector representing the location of a point relative to + // the small circle's bounding box. + function code(lambda, phi) { + var r = smallRadius ? radius : pi$1 - radius, + code = 0; + if (lambda < -r) code |= 1; // left + else if (lambda > r) code |= 2; // right + if (phi < -r) code |= 4; // below + else if (phi > r) code |= 8; // above + return code; + } + + return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$1, radius - pi$1]); +} + +function clipLine(a, b, x0, y0, x1, y1) { + var ax = a[0], + ay = a[1], + bx = b[0], + by = b[1], + t0 = 0, + t1 = 1, + dx = bx - ax, + dy = by - ay, + r; + + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy; + if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy; + return true; +} + +var clipMax = 1e9, clipMin = -clipMax; + +// TODO Use d3-polygon’s polygonContains here for the ring check? +// TODO Eliminate duplicate buffering in clipBuffer and polygon.push? + +function clipRectangle(x0, y0, x1, y1) { + + function visible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + + function interpolate(from, to, direction, stream) { + var a = 0, a1 = 0; + if (from == null + || (a = corner(from, direction)) !== (a1 = corner(to, direction)) + || comparePoint(from, to) < 0 ^ direction > 0) { + do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + while ((a = (a + direction + 4) % 4) !== a1); + } else { + stream.point(to[0], to[1]); + } + } + + function corner(p, direction) { + return abs$1(p[0] - x0) < epsilon$1 ? direction > 0 ? 0 : 3 + : abs$1(p[0] - x1) < epsilon$1 ? direction > 0 ? 2 : 1 + : abs$1(p[1] - y0) < epsilon$1 ? direction > 0 ? 1 : 0 + : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon + } + + function compareIntersection(a, b) { + return comparePoint(a.x, b.x); + } + + function comparePoint(a, b) { + var ca = corner(a, 1), + cb = corner(b, 1); + return ca !== cb ? ca - cb + : ca === 0 ? b[1] - a[1] + : ca === 1 ? a[0] - b[0] + : ca === 2 ? a[1] - b[1] + : b[0] - a[0]; + } + + return function(stream) { + var activeStream = stream, + bufferStream = clipBuffer(), + segments, + polygon, + ring, + x__, y__, v__, // first point + x_, y_, v_, // previous point + first, + clean; + + var clipStream = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: polygonStart, + polygonEnd: polygonEnd + }; + + function point(x, y) { + if (visible(x, y)) activeStream.point(x, y); + } + + function polygonInside() { + var winding = 0; + + for (var i = 0, n = polygon.length; i < n; ++i) { + for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) { + a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1]; + if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; } + else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; } + } + } + + return winding; + } + + // Buffer geometry within a polygon and then clip it en masse. + function polygonStart() { + activeStream = bufferStream, segments = [], polygon = [], clean = true; + } + + function polygonEnd() { + var startInside = polygonInside(), + cleanInside = clean && startInside, + visible = (segments = merge(segments)).length; + if (cleanInside || visible) { + stream.polygonStart(); + if (cleanInside) { + stream.lineStart(); + interpolate(null, null, 1, stream); + stream.lineEnd(); + } + if (visible) { + clipRejoin(segments, compareIntersection, startInside, interpolate, stream); + } + stream.polygonEnd(); + } + activeStream = stream, segments = polygon = ring = null; + } + + function lineStart() { + clipStream.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + + // TODO rather than special-case polygons, simply handle them separately. + // Ideally, coincident intersection points should be jittered to avoid + // clipping issues. + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferStream.rejoin(); + segments.push(bufferStream.result()); + } + clipStream.point = point; + if (v_) activeStream.lineEnd(); + } + + function linePoint(x, y) { + var v = visible(x, y); + if (polygon) ring.push([x, y]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + activeStream.lineStart(); + activeStream.point(x, y); + } + } else { + if (v && v_) activeStream.point(x, y); + else { + var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], + b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))]; + if (clipLine(a, b, x0, y0, x1, y1)) { + if (!v_) { + activeStream.lineStart(); + activeStream.point(a[0], a[1]); + } + activeStream.point(b[0], b[1]); + if (!v) activeStream.lineEnd(); + clean = false; + } else if (v) { + activeStream.lineStart(); + activeStream.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + + return clipStream; + }; +} + +function extent() { + var x0 = 0, + y0 = 0, + x1 = 960, + y1 = 500, + cache, + cacheStream, + clip; + + return clip = { + stream: function(stream) { + return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream); + }, + extent: function(_) { + return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]]; + } + }; +} + +var lengthSum$1, + lambda0, + sinPhi0, + cosPhi0; + +var lengthStream$1 = { + sphere: noop$1, + point: noop$1, + lineStart: lengthLineStart, + lineEnd: noop$1, + polygonStart: noop$1, + polygonEnd: noop$1 +}; + +function lengthLineStart() { + lengthStream$1.point = lengthPointFirst$1; + lengthStream$1.lineEnd = lengthLineEnd; +} + +function lengthLineEnd() { + lengthStream$1.point = lengthStream$1.lineEnd = noop$1; +} + +function lengthPointFirst$1(lambda, phi) { + lambda *= radians, phi *= radians; + lambda0 = lambda, sinPhi0 = sin$1(phi), cosPhi0 = cos$1(phi); + lengthStream$1.point = lengthPoint$1; +} + +function lengthPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + var sinPhi = sin$1(phi), + cosPhi = cos$1(phi), + delta = abs$1(lambda - lambda0), + cosDelta = cos$1(delta), + sinDelta = sin$1(delta), + x = cosPhi * sinDelta, + y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta, + z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta; + lengthSum$1.add(atan2$1(sqrt$2(x * x + y * y), z)); + lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi; +} + +function length$1(object) { + lengthSum$1 = new Adder(); + geoStream(object, lengthStream$1); + return +lengthSum$1; +} + +var coordinates = [null, null], + object = {type: "LineString", coordinates: coordinates}; + +function distance(a, b) { + coordinates[0] = a; + coordinates[1] = b; + return length$1(object); +} + +var containsObjectType = { + Feature: function(object, point) { + return containsGeometry(object.geometry, point); + }, + FeatureCollection: function(object, point) { + var features = object.features, i = -1, n = features.length; + while (++i < n) if (containsGeometry(features[i].geometry, point)) return true; + return false; + } +}; + +var containsGeometryType = { + Sphere: function() { + return true; + }, + Point: function(object, point) { + return containsPoint(object.coordinates, point); + }, + MultiPoint: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsPoint(coordinates[i], point)) return true; + return false; + }, + LineString: function(object, point) { + return containsLine(object.coordinates, point); + }, + MultiLineString: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsLine(coordinates[i], point)) return true; + return false; + }, + Polygon: function(object, point) { + return containsPolygon(object.coordinates, point); + }, + MultiPolygon: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsPolygon(coordinates[i], point)) return true; + return false; + }, + GeometryCollection: function(object, point) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) if (containsGeometry(geometries[i], point)) return true; + return false; + } +}; + +function containsGeometry(geometry, point) { + return geometry && containsGeometryType.hasOwnProperty(geometry.type) + ? containsGeometryType[geometry.type](geometry, point) + : false; +} + +function containsPoint(coordinates, point) { + return distance(coordinates, point) === 0; +} + +function containsLine(coordinates, point) { + var ao, bo, ab; + for (var i = 0, n = coordinates.length; i < n; i++) { + bo = distance(coordinates[i], point); + if (bo === 0) return true; + if (i > 0) { + ab = distance(coordinates[i], coordinates[i - 1]); + if ( + ab > 0 && + ao <= ab && + bo <= ab && + (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab + ) + return true; + } + ao = bo; + } + return false; +} + +function containsPolygon(coordinates, point) { + return !!polygonContains(coordinates.map(ringRadians), pointRadians(point)); +} + +function ringRadians(ring) { + return ring = ring.map(pointRadians), ring.pop(), ring; +} + +function pointRadians(point) { + return [point[0] * radians, point[1] * radians]; +} + +function contains$1(object, point) { + return (object && containsObjectType.hasOwnProperty(object.type) + ? containsObjectType[object.type] + : containsGeometry)(object, point); +} + +function graticuleX(y0, y1, dy) { + var y = sequence(y0, y1 - epsilon$1, dy).concat(y1); + return function(x) { return y.map(function(y) { return [x, y]; }); }; +} + +function graticuleY(x0, x1, dx) { + var x = sequence(x0, x1 - epsilon$1, dx).concat(x1); + return function(y) { return x.map(function(x) { return [x, y]; }); }; +} + +function graticule() { + var x1, x0, X1, X0, + y1, y0, Y1, Y0, + dx = 10, dy = dx, DX = 90, DY = 360, + x, y, X, Y, + precision = 2.5; + + function graticule() { + return {type: "MultiLineString", coordinates: lines()}; + } + + function lines() { + return sequence(ceil(X0 / DX) * DX, X1, DX).map(X) + .concat(sequence(ceil(Y0 / DY) * DY, Y1, DY).map(Y)) + .concat(sequence(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs$1(x % DX) > epsilon$1; }).map(x)) + .concat(sequence(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs$1(y % DY) > epsilon$1; }).map(y)); + } + + graticule.lines = function() { + return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; }); + }; + + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ + X(X0).concat( + Y(Y1).slice(1), + X(X1).reverse().slice(1), + Y(Y0).reverse().slice(1)) + ] + }; + }; + + graticule.extent = function(_) { + if (!arguments.length) return graticule.extentMinor(); + return graticule.extentMajor(_).extentMinor(_); + }; + + graticule.extentMajor = function(_) { + if (!arguments.length) return [[X0, Y0], [X1, Y1]]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + + graticule.extentMinor = function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + + graticule.step = function(_) { + if (!arguments.length) return graticule.stepMinor(); + return graticule.stepMajor(_).stepMinor(_); + }; + + graticule.stepMajor = function(_) { + if (!arguments.length) return [DX, DY]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + + graticule.stepMinor = function(_) { + if (!arguments.length) return [dx, dy]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = graticuleX(y0, y1, 90); + y = graticuleY(x0, x1, precision); + X = graticuleX(Y0, Y1, 90); + Y = graticuleY(X0, X1, precision); + return graticule; + }; + + return graticule + .extentMajor([[-180, -90 + epsilon$1], [180, 90 - epsilon$1]]) + .extentMinor([[-180, -80 - epsilon$1], [180, 80 + epsilon$1]]); +} + +function graticule10() { + return graticule()(); +} + +function interpolate(a, b) { + var x0 = a[0] * radians, + y0 = a[1] * radians, + x1 = b[0] * radians, + y1 = b[1] * radians, + cy0 = cos$1(y0), + sy0 = sin$1(y0), + cy1 = cos$1(y1), + sy1 = sin$1(y1), + kx0 = cy0 * cos$1(x0), + ky0 = cy0 * sin$1(x0), + kx1 = cy1 * cos$1(x1), + ky1 = cy1 * sin$1(x1), + d = 2 * asin$1(sqrt$2(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))), + k = sin$1(d); + + var interpolate = d ? function(t) { + var B = sin$1(t *= d) / k, + A = sin$1(d - t) / k, + x = A * kx0 + B * kx1, + y = A * ky0 + B * ky1, + z = A * sy0 + B * sy1; + return [ + atan2$1(y, x) * degrees, + atan2$1(z, sqrt$2(x * x + y * y)) * degrees + ]; + } : function() { + return [x0 * degrees, y0 * degrees]; + }; + + interpolate.distance = d; + + return interpolate; +} + +var identity$5 = x => x; + +var areaSum = new Adder(), + areaRingSum = new Adder(), + x00$2, + y00$2, + x0$3, + y0$3; + +var areaStream = { + point: noop$1, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: function() { + areaStream.lineStart = areaRingStart; + areaStream.lineEnd = areaRingEnd; + }, + polygonEnd: function() { + areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop$1; + areaSum.add(abs$1(areaRingSum)); + areaRingSum = new Adder(); + }, + result: function() { + var area = areaSum / 2; + areaSum = new Adder(); + return area; + } +}; + +function areaRingStart() { + areaStream.point = areaPointFirst; +} + +function areaPointFirst(x, y) { + areaStream.point = areaPoint; + x00$2 = x0$3 = x, y00$2 = y0$3 = y; +} + +function areaPoint(x, y) { + areaRingSum.add(y0$3 * x - x0$3 * y); + x0$3 = x, y0$3 = y; +} + +function areaRingEnd() { + areaPoint(x00$2, y00$2); +} + +var x0$2 = Infinity, + y0$2 = x0$2, + x1 = -x0$2, + y1 = x1; + +var boundsStream = { + point: boundsPoint, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: noop$1, + polygonEnd: noop$1, + result: function() { + var bounds = [[x0$2, y0$2], [x1, y1]]; + x1 = y1 = -(y0$2 = x0$2 = Infinity); + return bounds; + } +}; + +function boundsPoint(x, y) { + if (x < x0$2) x0$2 = x; + if (x > x1) x1 = x; + if (y < y0$2) y0$2 = y; + if (y > y1) y1 = y; +} + +// TODO Enforce positive area for exterior, negative area for interior? + +var X0 = 0, + Y0 = 0, + Z0 = 0, + X1 = 0, + Y1 = 0, + Z1 = 0, + X2 = 0, + Y2 = 0, + Z2 = 0, + x00$1, + y00$1, + x0$1, + y0$1; + +var centroidStream = { + point: centroidPoint, + lineStart: centroidLineStart, + lineEnd: centroidLineEnd, + polygonStart: function() { + centroidStream.lineStart = centroidRingStart; + centroidStream.lineEnd = centroidRingEnd; + }, + polygonEnd: function() { + centroidStream.point = centroidPoint; + centroidStream.lineStart = centroidLineStart; + centroidStream.lineEnd = centroidLineEnd; + }, + result: function() { + var centroid = Z2 ? [X2 / Z2, Y2 / Z2] + : Z1 ? [X1 / Z1, Y1 / Z1] + : Z0 ? [X0 / Z0, Y0 / Z0] + : [NaN, NaN]; + X0 = Y0 = Z0 = + X1 = Y1 = Z1 = + X2 = Y2 = Z2 = 0; + return centroid; + } +}; + +function centroidPoint(x, y) { + X0 += x; + Y0 += y; + ++Z0; +} + +function centroidLineStart() { + centroidStream.point = centroidPointFirstLine; +} + +function centroidPointFirstLine(x, y) { + centroidStream.point = centroidPointLine; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function centroidPointLine(x, y) { + var dx = x - x0$1, dy = y - y0$1, z = sqrt$2(dx * dx + dy * dy); + X1 += z * (x0$1 + x) / 2; + Y1 += z * (y0$1 + y) / 2; + Z1 += z; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function centroidLineEnd() { + centroidStream.point = centroidPoint; +} + +function centroidRingStart() { + centroidStream.point = centroidPointFirstRing; +} + +function centroidRingEnd() { + centroidPointRing(x00$1, y00$1); +} + +function centroidPointFirstRing(x, y) { + centroidStream.point = centroidPointRing; + centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y); +} + +function centroidPointRing(x, y) { + var dx = x - x0$1, + dy = y - y0$1, + z = sqrt$2(dx * dx + dy * dy); + + X1 += z * (x0$1 + x) / 2; + Y1 += z * (y0$1 + y) / 2; + Z1 += z; + + z = y0$1 * x - x0$1 * y; + X2 += z * (x0$1 + x); + Y2 += z * (y0$1 + y); + Z2 += z * 3; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function PathContext(context) { + this._context = context; +} + +PathContext.prototype = { + _radius: 4.5, + pointRadius: function(_) { + return this._radius = _, this; + }, + polygonStart: function() { + this._line = 0; + }, + polygonEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line === 0) this._context.closePath(); + this._point = NaN; + }, + point: function(x, y) { + switch (this._point) { + case 0: { + this._context.moveTo(x, y); + this._point = 1; + break; + } + case 1: { + this._context.lineTo(x, y); + break; + } + default: { + this._context.moveTo(x + this._radius, y); + this._context.arc(x, y, this._radius, 0, tau$1); + break; + } + } + }, + result: noop$1 +}; + +var lengthSum = new Adder(), + lengthRing, + x00, + y00, + x0, + y0; + +var lengthStream = { + point: noop$1, + lineStart: function() { + lengthStream.point = lengthPointFirst; + }, + lineEnd: function() { + if (lengthRing) lengthPoint(x00, y00); + lengthStream.point = noop$1; + }, + polygonStart: function() { + lengthRing = true; + }, + polygonEnd: function() { + lengthRing = null; + }, + result: function() { + var length = +lengthSum; + lengthSum = new Adder(); + return length; + } +}; + +function lengthPointFirst(x, y) { + lengthStream.point = lengthPoint; + x00 = x0 = x, y00 = y0 = y; +} + +function lengthPoint(x, y) { + x0 -= x, y0 -= y; + lengthSum.add(sqrt$2(x0 * x0 + y0 * y0)); + x0 = x, y0 = y; +} + +function PathString() { + this._string = []; +} + +PathString.prototype = { + _radius: 4.5, + _circle: circle$1(4.5), + pointRadius: function(_) { + if ((_ = +_) !== this._radius) this._radius = _, this._circle = null; + return this; + }, + polygonStart: function() { + this._line = 0; + }, + polygonEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line === 0) this._string.push("Z"); + this._point = NaN; + }, + point: function(x, y) { + switch (this._point) { + case 0: { + this._string.push("M", x, ",", y); + this._point = 1; + break; + } + case 1: { + this._string.push("L", x, ",", y); + break; + } + default: { + if (this._circle == null) this._circle = circle$1(this._radius); + this._string.push("M", x, ",", y, this._circle); + break; + } + } + }, + result: function() { + if (this._string.length) { + var result = this._string.join(""); + this._string = []; + return result; + } else { + return null; + } + } +}; + +function circle$1(radius) { + return "m0," + radius + + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + + "z"; +} + +function index$2(projection, context) { + var pointRadius = 4.5, + projectionStream, + contextStream; + + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + geoStream(object, projectionStream(contextStream)); + } + return contextStream.result(); + } + + path.area = function(object) { + geoStream(object, projectionStream(areaStream)); + return areaStream.result(); + }; + + path.measure = function(object) { + geoStream(object, projectionStream(lengthStream)); + return lengthStream.result(); + }; + + path.bounds = function(object) { + geoStream(object, projectionStream(boundsStream)); + return boundsStream.result(); + }; + + path.centroid = function(object) { + geoStream(object, projectionStream(centroidStream)); + return centroidStream.result(); + }; + + path.projection = function(_) { + return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$5) : (projection = _).stream, path) : projection; + }; + + path.context = function(_) { + if (!arguments.length) return context; + contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return path; + }; + + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + + return path.projection(projection).context(context); +} + +function transform$1(methods) { + return { + stream: transformer$3(methods) + }; +} + +function transformer$3(methods) { + return function(stream) { + var s = new TransformStream; + for (var key in methods) s[key] = methods[key]; + s.stream = stream; + return s; + }; +} + +function TransformStream() {} + +TransformStream.prototype = { + constructor: TransformStream, + point: function(x, y) { this.stream.point(x, y); }, + sphere: function() { this.stream.sphere(); }, + lineStart: function() { this.stream.lineStart(); }, + lineEnd: function() { this.stream.lineEnd(); }, + polygonStart: function() { this.stream.polygonStart(); }, + polygonEnd: function() { this.stream.polygonEnd(); } +}; + +function fit(projection, fitBounds, object) { + var clip = projection.clipExtent && projection.clipExtent(); + projection.scale(150).translate([0, 0]); + if (clip != null) projection.clipExtent(null); + geoStream(object, projection.stream(boundsStream)); + fitBounds(boundsStream.result()); + if (clip != null) projection.clipExtent(clip); + return projection; +} + +function fitExtent(projection, extent, object) { + return fit(projection, function(b) { + var w = extent[1][0] - extent[0][0], + h = extent[1][1] - extent[0][1], + k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), + x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, + y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +function fitSize(projection, size, object) { + return fitExtent(projection, [[0, 0], size], object); +} + +function fitWidth(projection, width, object) { + return fit(projection, function(b) { + var w = +width, + k = w / (b[1][0] - b[0][0]), + x = (w - k * (b[1][0] + b[0][0])) / 2, + y = -k * b[0][1]; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +function fitHeight(projection, height, object) { + return fit(projection, function(b) { + var h = +height, + k = h / (b[1][1] - b[0][1]), + x = -k * b[0][0], + y = (h - k * (b[1][1] + b[0][1])) / 2; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +var maxDepth = 16, // maximum depth of subdivision + cosMinDistance = cos$1(30 * radians); // cos(minimum angular distance) + +function resample(project, delta2) { + return +delta2 ? resample$1(project, delta2) : resampleNone(project); +} + +function resampleNone(project) { + return transformer$3({ + point: function(x, y) { + x = project(x, y); + this.stream.point(x[0], x[1]); + } + }); +} + +function resample$1(project, delta2) { + + function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, + dy = y1 - y0, + d2 = dx * dx + dy * dy; + if (d2 > 4 * delta2 && depth--) { + var a = a0 + a1, + b = b0 + b1, + c = c0 + c1, + m = sqrt$2(a * a + b * b + c * c), + phi2 = asin$1(c /= m), + lambda2 = abs$1(abs$1(c) - 1) < epsilon$1 || abs$1(lambda0 - lambda1) < epsilon$1 ? (lambda0 + lambda1) / 2 : atan2$1(b, a), + p = project(lambda2, phi2), + x2 = p[0], + y2 = p[1], + dx2 = x2 - x0, + dy2 = y2 - y0, + dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > delta2 // perpendicular projected distance + || abs$1((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end + || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream); + } + } + } + return function(stream) { + var lambda00, x00, y00, a00, b00, c00, // first point + lambda0, x0, y0, a0, b0, c0; // previous point + + var resampleStream = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; }, + polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; } + }; + + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + + function lineStart() { + x0 = NaN; + resampleStream.point = linePoint; + stream.lineStart(); + } + + function linePoint(lambda, phi) { + var c = cartesian([lambda, phi]), p = project(lambda, phi); + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + + function lineEnd() { + resampleStream.point = point; + stream.lineEnd(); + } + + function ringStart() { + lineStart(); + resampleStream.point = ringPoint; + resampleStream.lineEnd = ringEnd; + } + + function ringPoint(lambda, phi) { + linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resampleStream.point = linePoint; + } + + function ringEnd() { + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream); + resampleStream.lineEnd = lineEnd; + lineEnd(); + } + + return resampleStream; + }; +} + +var transformRadians = transformer$3({ + point: function(x, y) { + this.stream.point(x * radians, y * radians); + } +}); + +function transformRotate(rotate) { + return transformer$3({ + point: function(x, y) { + var r = rotate(x, y); + return this.stream.point(r[0], r[1]); + } + }); +} + +function scaleTranslate(k, dx, dy, sx, sy) { + function transform(x, y) { + x *= sx; y *= sy; + return [dx + k * x, dy - k * y]; + } + transform.invert = function(x, y) { + return [(x - dx) / k * sx, (dy - y) / k * sy]; + }; + return transform; +} + +function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) { + if (!alpha) return scaleTranslate(k, dx, dy, sx, sy); + var cosAlpha = cos$1(alpha), + sinAlpha = sin$1(alpha), + a = cosAlpha * k, + b = sinAlpha * k, + ai = cosAlpha / k, + bi = sinAlpha / k, + ci = (sinAlpha * dy - cosAlpha * dx) / k, + fi = (sinAlpha * dx + cosAlpha * dy) / k; + function transform(x, y) { + x *= sx; y *= sy; + return [a * x - b * y + dx, dy - b * x - a * y]; + } + transform.invert = function(x, y) { + return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)]; + }; + return transform; +} + +function projection(project) { + return projectionMutator(function() { return project; })(); +} + +function projectionMutator(projectAt) { + var project, + k = 150, // scale + x = 480, y = 250, // translate + lambda = 0, phi = 0, // center + deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate + alpha = 0, // post-rotate angle + sx = 1, // reflectX + sy = 1, // reflectX + theta = null, preclip = clipAntimeridian, // pre-clip angle + x0 = null, y0, x1, y1, postclip = identity$5, // post-clip extent + delta2 = 0.5, // precision + projectResample, + projectTransform, + projectRotateTransform, + cache, + cacheStream; + + function projection(point) { + return projectRotateTransform(point[0] * radians, point[1] * radians); + } + + function invert(point) { + point = projectRotateTransform.invert(point[0], point[1]); + return point && [point[0] * degrees, point[1] * degrees]; + } + + projection.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream))))); + }; + + projection.preclip = function(_) { + return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip; + }; + + projection.postclip = function(_) { + return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; + }; + + projection.clipAngle = function(_) { + return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees; + }; + + projection.clipExtent = function(_) { + return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + + projection.scale = function(_) { + return arguments.length ? (k = +_, recenter()) : k; + }; + + projection.translate = function(_) { + return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y]; + }; + + projection.center = function(_) { + return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees]; + }; + + projection.rotate = function(_) { + return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees]; + }; + + projection.angle = function(_) { + return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees; + }; + + projection.reflectX = function(_) { + return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0; + }; + + projection.reflectY = function(_) { + return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0; + }; + + projection.precision = function(_) { + return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$2(delta2); + }; + + projection.fitExtent = function(extent, object) { + return fitExtent(projection, extent, object); + }; + + projection.fitSize = function(size, object) { + return fitSize(projection, size, object); + }; + + projection.fitWidth = function(width, object) { + return fitWidth(projection, width, object); + }; + + projection.fitHeight = function(height, object) { + return fitHeight(projection, height, object); + }; + + function recenter() { + var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), + transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha); + rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma); + projectTransform = compose(project, transform); + projectRotateTransform = compose(rotate, projectTransform); + projectResample = resample(projectTransform, delta2); + return reset(); + } + + function reset() { + cache = cacheStream = null; + return projection; + } + + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return recenter(); + }; +} + +function conicProjection(projectAt) { + var phi0 = 0, + phi1 = pi$1 / 3, + m = projectionMutator(projectAt), + p = m(phi0, phi1); + + p.parallels = function(_) { + return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees]; + }; + + return p; +} + +function cylindricalEqualAreaRaw(phi0) { + var cosPhi0 = cos$1(phi0); + + function forward(lambda, phi) { + return [lambda * cosPhi0, sin$1(phi) / cosPhi0]; + } + + forward.invert = function(x, y) { + return [x / cosPhi0, asin$1(y * cosPhi0)]; + }; + + return forward; +} + +function conicEqualAreaRaw(y0, y1) { + var sy0 = sin$1(y0), n = (sy0 + sin$1(y1)) / 2; + + // Are the parallels symmetrical around the Equator? + if (abs$1(n) < epsilon$1) return cylindricalEqualAreaRaw(y0); + + var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt$2(c) / n; + + function project(x, y) { + var r = sqrt$2(c - 2 * n * sin$1(y)) / n; + return [r * sin$1(x *= n), r0 - r * cos$1(x)]; + } + + project.invert = function(x, y) { + var r0y = r0 - y, + l = atan2$1(x, abs$1(r0y)) * sign$1(r0y); + if (r0y * n < 0) + l -= pi$1 * sign$1(x) * sign$1(r0y); + return [l / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))]; + }; + + return project; +} + +function conicEqualArea() { + return conicProjection(conicEqualAreaRaw) + .scale(155.424) + .center([0, 33.6442]); +} + +function albers() { + return conicEqualArea() + .parallels([29.5, 45.5]) + .scale(1070) + .translate([480, 250]) + .rotate([96, 0]) + .center([-0.6, 38.7]); +} + +// The projections must have mutually exclusive clip regions on the sphere, +// as this will avoid emitting interleaving lines and polygons. +function multiplex(streams) { + var n = streams.length; + return { + point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); }, + sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); }, + lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); }, + lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); }, + polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); }, + polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); } + }; +} + +// A composite projection for the United States, configured by default for +// 960×500. The projection also works quite well at 960×600 if you change the +// scale to 1285 and adjust the translate accordingly. The set of standard +// parallels for each region comes from USGS, which is published here: +// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers +function albersUsa() { + var cache, + cacheStream, + lower48 = albers(), lower48Point, + alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338 + hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007 + point, pointStream = {point: function(x, y) { point = [x, y]; }}; + + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + return point = null, + (lower48Point.point(x, y), point) + || (alaskaPoint.point(x, y), point) + || (hawaiiPoint.point(x, y), point); + } + + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), + t = lower48.translate(), + x = (coordinates[0] - t[0]) / k, + y = (coordinates[1] - t[1]) / k; + return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska + : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii + : lower48).invert(coordinates); + }; + + albersUsa.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]); + }; + + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_), alaska.precision(_), hawaii.precision(_); + return reset(); + }; + + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + + lower48Point = lower48 + .translate(_) + .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]) + .stream(pointStream); + + alaskaPoint = alaska + .translate([x - 0.307 * k, y + 0.201 * k]) + .clipExtent([[x - 0.425 * k + epsilon$1, y + 0.120 * k + epsilon$1], [x - 0.214 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) + .stream(pointStream); + + hawaiiPoint = hawaii + .translate([x - 0.205 * k, y + 0.212 * k]) + .clipExtent([[x - 0.214 * k + epsilon$1, y + 0.166 * k + epsilon$1], [x - 0.115 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) + .stream(pointStream); + + return reset(); + }; + + albersUsa.fitExtent = function(extent, object) { + return fitExtent(albersUsa, extent, object); + }; + + albersUsa.fitSize = function(size, object) { + return fitSize(albersUsa, size, object); + }; + + albersUsa.fitWidth = function(width, object) { + return fitWidth(albersUsa, width, object); + }; + + albersUsa.fitHeight = function(height, object) { + return fitHeight(albersUsa, height, object); + }; + + function reset() { + cache = cacheStream = null; + return albersUsa; + } + + return albersUsa.scale(1070); +} + +function azimuthalRaw(scale) { + return function(x, y) { + var cx = cos$1(x), + cy = cos$1(y), + k = scale(cx * cy); + if (k === Infinity) return [2, 0]; + return [ + k * cy * sin$1(x), + k * sin$1(y) + ]; + } +} + +function azimuthalInvert(angle) { + return function(x, y) { + var z = sqrt$2(x * x + y * y), + c = angle(z), + sc = sin$1(c), + cc = cos$1(c); + return [ + atan2$1(x * sc, z * cc), + asin$1(z && y * sc / z) + ]; + } +} + +var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) { + return sqrt$2(2 / (1 + cxcy)); +}); + +azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) { + return 2 * asin$1(z / 2); +}); + +function azimuthalEqualArea() { + return projection(azimuthalEqualAreaRaw) + .scale(124.75) + .clipAngle(180 - 1e-3); +} + +var azimuthalEquidistantRaw = azimuthalRaw(function(c) { + return (c = acos$1(c)) && c / sin$1(c); +}); + +azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) { + return z; +}); + +function azimuthalEquidistant() { + return projection(azimuthalEquidistantRaw) + .scale(79.4188) + .clipAngle(180 - 1e-3); +} + +function mercatorRaw(lambda, phi) { + return [lambda, log$1(tan((halfPi$1 + phi) / 2))]; +} + +mercatorRaw.invert = function(x, y) { + return [x, 2 * atan(exp(y)) - halfPi$1]; +}; + +function mercator() { + return mercatorProjection(mercatorRaw) + .scale(961 / tau$1); +} + +function mercatorProjection(project) { + var m = projection(project), + center = m.center, + scale = m.scale, + translate = m.translate, + clipExtent = m.clipExtent, + x0 = null, y0, x1, y1; // clip extent + + m.scale = function(_) { + return arguments.length ? (scale(_), reclip()) : scale(); + }; + + m.translate = function(_) { + return arguments.length ? (translate(_), reclip()) : translate(); + }; + + m.center = function(_) { + return arguments.length ? (center(_), reclip()) : center(); + }; + + m.clipExtent = function(_) { + return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + + function reclip() { + var k = pi$1 * scale(), + t = m(rotation(m.rotate()).invert([0, 0])); + return clipExtent(x0 == null + ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw + ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] + : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]); + } + + return reclip(); +} + +function tany(y) { + return tan((halfPi$1 + y) / 2); +} + +function conicConformalRaw(y0, y1) { + var cy0 = cos$1(y0), + n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)), + f = cy0 * pow$1(tany(y0), n) / n; + + if (!n) return mercatorRaw; + + function project(x, y) { + if (f > 0) { if (y < -halfPi$1 + epsilon$1) y = -halfPi$1 + epsilon$1; } + else { if (y > halfPi$1 - epsilon$1) y = halfPi$1 - epsilon$1; } + var r = f / pow$1(tany(y), n); + return [r * sin$1(n * x), f - r * cos$1(n * x)]; + } + + project.invert = function(x, y) { + var fy = f - y, r = sign$1(n) * sqrt$2(x * x + fy * fy), + l = atan2$1(x, abs$1(fy)) * sign$1(fy); + if (fy * n < 0) + l -= pi$1 * sign$1(x) * sign$1(fy); + return [l / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$1]; + }; + + return project; +} + +function conicConformal() { + return conicProjection(conicConformalRaw) + .scale(109.5) + .parallels([30, 30]); +} + +function equirectangularRaw(lambda, phi) { + return [lambda, phi]; +} + +equirectangularRaw.invert = equirectangularRaw; + +function equirectangular() { + return projection(equirectangularRaw) + .scale(152.63); +} + +function conicEquidistantRaw(y0, y1) { + var cy0 = cos$1(y0), + n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0), + g = cy0 / n + y0; + + if (abs$1(n) < epsilon$1) return equirectangularRaw; + + function project(x, y) { + var gy = g - y, nx = n * x; + return [gy * sin$1(nx), g - gy * cos$1(nx)]; + } + + project.invert = function(x, y) { + var gy = g - y, + l = atan2$1(x, abs$1(gy)) * sign$1(gy); + if (gy * n < 0) + l -= pi$1 * sign$1(x) * sign$1(gy); + return [l / n, g - sign$1(n) * sqrt$2(x * x + gy * gy)]; + }; + + return project; +} + +function conicEquidistant() { + return conicProjection(conicEquidistantRaw) + .scale(131.154) + .center([0, 13.9389]); +} + +var A1 = 1.340264, + A2 = -0.081106, + A3 = 0.000893, + A4 = 0.003796, + M = sqrt$2(3) / 2, + iterations = 12; + +function equalEarthRaw(lambda, phi) { + var l = asin$1(M * sin$1(phi)), l2 = l * l, l6 = l2 * l2 * l2; + return [ + lambda * cos$1(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), + l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) + ]; +} + +equalEarthRaw.invert = function(x, y) { + var l = y, l2 = l * l, l6 = l2 * l2 * l2; + for (var i = 0, delta, fy, fpy; i < iterations; ++i) { + fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y; + fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2); + l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2; + if (abs$1(delta) < epsilon2) break; + } + return [ + M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos$1(l), + asin$1(sin$1(l) / M) + ]; +}; + +function equalEarth() { + return projection(equalEarthRaw) + .scale(177.158); +} + +function gnomonicRaw(x, y) { + var cy = cos$1(y), k = cos$1(x) * cy; + return [cy * sin$1(x) / k, sin$1(y) / k]; +} + +gnomonicRaw.invert = azimuthalInvert(atan); + +function gnomonic() { + return projection(gnomonicRaw) + .scale(144.049) + .clipAngle(60); +} + +function identity$4() { + var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect + alpha = 0, ca, sa, // angle + x0 = null, y0, x1, y1, // clip extent + kx = 1, ky = 1, + transform = transformer$3({ + point: function(x, y) { + var p = projection([x, y]); + this.stream.point(p[0], p[1]); + } + }), + postclip = identity$5, + cache, + cacheStream; + + function reset() { + kx = k * sx; + ky = k * sy; + cache = cacheStream = null; + return projection; + } + + function projection (p) { + var x = p[0] * kx, y = p[1] * ky; + if (alpha) { + var t = y * ca - x * sa; + x = x * ca + y * sa; + y = t; + } + return [x + tx, y + ty]; + } + projection.invert = function(p) { + var x = p[0] - tx, y = p[1] - ty; + if (alpha) { + var t = y * ca + x * sa; + x = x * ca - y * sa; + y = t; + } + return [x / kx, y / ky]; + }; + projection.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream)); + }; + projection.postclip = function(_) { + return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; + }; + projection.clipExtent = function(_) { + return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + projection.scale = function(_) { + return arguments.length ? (k = +_, reset()) : k; + }; + projection.translate = function(_) { + return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty]; + }; + projection.angle = function(_) { + return arguments.length ? (alpha = _ % 360 * radians, sa = sin$1(alpha), ca = cos$1(alpha), reset()) : alpha * degrees; + }; + projection.reflectX = function(_) { + return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0; + }; + projection.reflectY = function(_) { + return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0; + }; + projection.fitExtent = function(extent, object) { + return fitExtent(projection, extent, object); + }; + projection.fitSize = function(size, object) { + return fitSize(projection, size, object); + }; + projection.fitWidth = function(width, object) { + return fitWidth(projection, width, object); + }; + projection.fitHeight = function(height, object) { + return fitHeight(projection, height, object); + }; + + return projection; +} + +function naturalEarth1Raw(lambda, phi) { + var phi2 = phi * phi, phi4 = phi2 * phi2; + return [ + lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), + phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) + ]; +} + +naturalEarth1Raw.invert = function(x, y) { + var phi = y, i = 25, delta; + do { + var phi2 = phi * phi, phi4 = phi2 * phi2; + phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / + (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4))); + } while (abs$1(delta) > epsilon$1 && --i > 0); + return [ + x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), + phi + ]; +}; + +function naturalEarth1() { + return projection(naturalEarth1Raw) + .scale(175.295); +} + +function orthographicRaw(x, y) { + return [cos$1(y) * sin$1(x), sin$1(y)]; +} + +orthographicRaw.invert = azimuthalInvert(asin$1); + +function orthographic() { + return projection(orthographicRaw) + .scale(249.5) + .clipAngle(90 + epsilon$1); +} + +function stereographicRaw(x, y) { + var cy = cos$1(y), k = 1 + cos$1(x) * cy; + return [cy * sin$1(x) / k, sin$1(y) / k]; +} + +stereographicRaw.invert = azimuthalInvert(function(z) { + return 2 * atan(z); +}); + +function stereographic() { + return projection(stereographicRaw) + .scale(250) + .clipAngle(142); +} + +function transverseMercatorRaw(lambda, phi) { + return [log$1(tan((halfPi$1 + phi) / 2)), -lambda]; +} + +transverseMercatorRaw.invert = function(x, y) { + return [-y, 2 * atan(exp(x)) - halfPi$1]; +}; + +function transverseMercator() { + var m = mercatorProjection(transverseMercatorRaw), + center = m.center, + rotate = m.rotate; + + m.center = function(_) { + return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]); + }; + + m.rotate = function(_) { + return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]); + }; + + return rotate([0, 0, 90]) + .scale(159.155); +} + +function defaultSeparation$1(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +function meanX(children) { + return children.reduce(meanXReduce, 0) / children.length; +} + +function meanXReduce(x, c) { + return x + c.x; +} + +function maxY(children) { + return 1 + children.reduce(maxYReduce, 0); +} + +function maxYReduce(y, c) { + return Math.max(y, c.y); +} + +function leafLeft(node) { + var children; + while (children = node.children) node = children[0]; + return node; +} + +function leafRight(node) { + var children; + while (children = node.children) node = children[children.length - 1]; + return node; +} + +function cluster() { + var separation = defaultSeparation$1, + dx = 1, + dy = 1, + nodeSize = false; + + function cluster(root) { + var previousNode, + x = 0; + + // First walk, computing the initial x & y values. + root.eachAfter(function(node) { + var children = node.children; + if (children) { + node.x = meanX(children); + node.y = maxY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + var left = leafLeft(root), + right = leafRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + return root.eachAfter(nodeSize ? function(node) { + node.x = (node.x - root.x) * dx; + node.y = (root.y - node.y) * dy; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * dx; + node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; + }); + } + + cluster.separation = function(x) { + return arguments.length ? (separation = x, cluster) : separation; + }; + + cluster.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); + }; + + cluster.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); + }; + + return cluster; +} + +function count(node) { + var sum = 0, + children = node.children, + i = children && children.length; + if (!i) sum = 1; + else while (--i >= 0) sum += children[i].value; + node.value = sum; +} + +function node_count() { + return this.eachAfter(count); +} + +function node_each(callback, that) { + let index = -1; + for (const node of this) { + callback.call(that, node, ++index, this); + } + return this; +} + +function node_eachBefore(callback, that) { + var node = this, nodes = [node], children, i, index = -1; + while (node = nodes.pop()) { + callback.call(that, node, ++index, this); + if (children = node.children) { + for (i = children.length - 1; i >= 0; --i) { + nodes.push(children[i]); + } + } + } + return this; +} + +function node_eachAfter(callback, that) { + var node = this, nodes = [node], next = [], children, i, n, index = -1; + while (node = nodes.pop()) { + next.push(node); + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + nodes.push(children[i]); + } + } + } + while (node = next.pop()) { + callback.call(that, node, ++index, this); + } + return this; +} + +function node_find(callback, that) { + let index = -1; + for (const node of this) { + if (callback.call(that, node, ++index, this)) { + return node; + } + } +} + +function node_sum(value) { + return this.eachAfter(function(node) { + var sum = +value(node.data) || 0, + children = node.children, + i = children && children.length; + while (--i >= 0) sum += children[i].value; + node.value = sum; + }); +} + +function node_sort(compare) { + return this.eachBefore(function(node) { + if (node.children) { + node.children.sort(compare); + } + }); +} + +function node_path(end) { + var start = this, + ancestor = leastCommonAncestor(start, end), + nodes = [start]; + while (start !== ancestor) { + start = start.parent; + nodes.push(start); + } + var k = nodes.length; + while (end !== ancestor) { + nodes.splice(k, 0, end); + end = end.parent; + } + return nodes; +} + +function leastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = a.ancestors(), + bNodes = b.ancestors(), + c = null; + a = aNodes.pop(); + b = bNodes.pop(); + while (a === b) { + c = a; + a = aNodes.pop(); + b = bNodes.pop(); + } + return c; +} + +function node_ancestors() { + var node = this, nodes = [node]; + while (node = node.parent) { + nodes.push(node); + } + return nodes; +} + +function node_descendants() { + return Array.from(this); +} + +function node_leaves() { + var leaves = []; + this.eachBefore(function(node) { + if (!node.children) { + leaves.push(node); + } + }); + return leaves; +} + +function node_links() { + var root = this, links = []; + root.each(function(node) { + if (node !== root) { // Don’t include the root’s parent, if any. + links.push({source: node.parent, target: node}); + } + }); + return links; +} + +function* node_iterator() { + var node = this, current, next = [node], children, i, n; + do { + current = next.reverse(), next = []; + while (node = current.pop()) { + yield node; + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + next.push(children[i]); + } + } + } + } while (next.length); +} + +function hierarchy(data, children) { + if (data instanceof Map) { + data = [undefined, data]; + if (children === undefined) children = mapChildren; + } else if (children === undefined) { + children = objectChildren; + } + + var root = new Node$1(data), + node, + nodes = [root], + child, + childs, + i, + n; + + while (node = nodes.pop()) { + if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { + node.children = childs; + for (i = n - 1; i >= 0; --i) { + nodes.push(child = childs[i] = new Node$1(childs[i])); + child.parent = node; + child.depth = node.depth + 1; + } + } + } + + return root.eachBefore(computeHeight); +} + +function node_copy() { + return hierarchy(this).eachBefore(copyData); +} + +function objectChildren(d) { + return d.children; +} + +function mapChildren(d) { + return Array.isArray(d) ? d[1] : null; +} + +function copyData(node) { + if (node.data.value !== undefined) node.value = node.data.value; + node.data = node.data.data; +} + +function computeHeight(node) { + var height = 0; + do node.height = height; + while ((node = node.parent) && (node.height < ++height)); +} + +function Node$1(data) { + this.data = data; + this.depth = + this.height = 0; + this.parent = null; +} + +Node$1.prototype = hierarchy.prototype = { + constructor: Node$1, + count: node_count, + each: node_each, + eachAfter: node_eachAfter, + eachBefore: node_eachBefore, + find: node_find, + sum: node_sum, + sort: node_sort, + path: node_path, + ancestors: node_ancestors, + descendants: node_descendants, + leaves: node_leaves, + links: node_links, + copy: node_copy, + [Symbol.iterator]: node_iterator +}; + +function array$1(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function shuffle(array) { + var m = array.length, + t, + i; + + while (m) { + i = Math.random() * m-- | 0; + t = array[m]; + array[m] = array[i]; + array[i] = t; + } + + return array; +} + +function enclose(circles) { + var i = 0, n = (circles = shuffle(Array.from(circles))).length, B = [], p, e; + + while (i < n) { + p = circles[i]; + if (e && enclosesWeak(e, p)) ++i; + else e = encloseBasis(B = extendBasis(B, p)), i = 0; + } + + return e; +} + +function extendBasis(B, p) { + var i, j; + + if (enclosesWeakAll(p, B)) return [p]; + + // If we get here then B must have at least one element. + for (i = 0; i < B.length; ++i) { + if (enclosesNot(p, B[i]) + && enclosesWeakAll(encloseBasis2(B[i], p), B)) { + return [B[i], p]; + } + } + + // If we get here then B must have at least two elements. + for (i = 0; i < B.length - 1; ++i) { + for (j = i + 1; j < B.length; ++j) { + if (enclosesNot(encloseBasis2(B[i], B[j]), p) + && enclosesNot(encloseBasis2(B[i], p), B[j]) + && enclosesNot(encloseBasis2(B[j], p), B[i]) + && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { + return [B[i], B[j], p]; + } + } + } + + // If we get here then something is very wrong. + throw new Error; +} + +function enclosesNot(a, b) { + var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; + return dr < 0 || dr * dr < dx * dx + dy * dy; +} + +function enclosesWeak(a, b) { + var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function enclosesWeakAll(a, B) { + for (var i = 0; i < B.length; ++i) { + if (!enclosesWeak(a, B[i])) { + return false; + } + } + return true; +} + +function encloseBasis(B) { + switch (B.length) { + case 1: return encloseBasis1(B[0]); + case 2: return encloseBasis2(B[0], B[1]); + case 3: return encloseBasis3(B[0], B[1], B[2]); + } +} + +function encloseBasis1(a) { + return { + x: a.x, + y: a.y, + r: a.r + }; +} + +function encloseBasis2(a, b) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, + l = Math.sqrt(x21 * x21 + y21 * y21); + return { + x: (x1 + x2 + x21 / l * r21) / 2, + y: (y1 + y2 + y21 / l * r21) / 2, + r: (l + r1 + r2) / 2 + }; +} + +function encloseBasis3(a, b, c) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x3 = c.x, y3 = c.y, r3 = c.r, + a2 = x1 - x2, + a3 = x1 - x3, + b2 = y1 - y2, + b3 = y1 - y3, + c2 = r2 - r1, + c3 = r3 - r1, + d1 = x1 * x1 + y1 * y1 - r1 * r1, + d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, + d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, + ab = a3 * b2 - a2 * b3, + xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, + xb = (b3 * c2 - b2 * c3) / ab, + ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, + yb = (a2 * c3 - a3 * c2) / ab, + A = xb * xb + yb * yb - 1, + B = 2 * (r1 + xa * xb + ya * yb), + C = xa * xa + ya * ya - r1 * r1, + r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + return { + x: x1 + xa + xb * r, + y: y1 + ya + yb * r, + r: r + }; +} + +function place(b, a, c) { + var dx = b.x - a.x, x, a2, + dy = b.y - a.y, y, b2, + d2 = dx * dx + dy * dy; + if (d2) { + a2 = a.r + c.r, a2 *= a2; + b2 = b.r + c.r, b2 *= b2; + if (a2 > b2) { + x = (d2 + b2 - a2) / (2 * d2); + y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); + c.x = b.x - x * dx - y * dy; + c.y = b.y - x * dy + y * dx; + } else { + x = (d2 + a2 - b2) / (2 * d2); + y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); + c.x = a.x + x * dx - y * dy; + c.y = a.y + x * dy + y * dx; + } + } else { + c.x = a.x + c.r; + c.y = a.y; + } +} + +function intersects(a, b) { + var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function score(node) { + var a = node._, + b = node.next._, + ab = a.r + b.r, + dx = (a.x * b.r + b.x * a.r) / ab, + dy = (a.y * b.r + b.y * a.r) / ab; + return dx * dx + dy * dy; +} + +function Node(circle) { + this._ = circle; + this.next = null; + this.previous = null; +} + +function packEnclose(circles) { + if (!(n = (circles = array$1(circles)).length)) return 0; + + var a, b, c, n, aa, ca, i, j, k, sj, sk; + + // Place the first circle. + a = circles[0], a.x = 0, a.y = 0; + if (!(n > 1)) return a.r; + + // Place the second circle. + b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; + if (!(n > 2)) return a.r + b.r; + + // Place the third circle. + place(b, a, c = circles[2]); + + // Initialize the front-chain using the first three circles a, b and c. + a = new Node(a), b = new Node(b), c = new Node(c); + a.next = c.previous = b; + b.next = a.previous = c; + c.next = b.previous = a; + + // Attempt to place each remaining circle… + pack: for (i = 3; i < n; ++i) { + place(a._, b._, c = circles[i]), c = new Node(c); + + // Find the closest intersecting circle on the front-chain, if any. + // “Closeness” is determined by linear distance along the front-chain. + // “Ahead” or “behind” is likewise determined by linear distance. + j = b.next, k = a.previous, sj = b._.r, sk = a._.r; + do { + if (sj <= sk) { + if (intersects(j._, c._)) { + b = j, a.next = b, b.previous = a, --i; + continue pack; + } + sj += j._.r, j = j.next; + } else { + if (intersects(k._, c._)) { + a = k, a.next = b, b.previous = a, --i; + continue pack; + } + sk += k._.r, k = k.previous; + } + } while (j !== k.next); + + // Success! Insert the new circle c between a and b. + c.previous = a, c.next = b, a.next = b.previous = b = c; + + // Compute the new closest circle pair to the centroid. + aa = score(a); + while ((c = c.next) !== b) { + if ((ca = score(c)) < aa) { + a = c, aa = ca; + } + } + b = a.next; + } + + // Compute the enclosing circle of the front chain. + a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a); + + // Translate the circles to put the enclosing circle around the origin. + for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; + + return c.r; +} + +function siblings(circles) { + packEnclose(circles); + return circles; +} + +function optional(f) { + return f == null ? null : required(f); +} + +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +function constantZero() { + return 0; +} + +function constant$2(x) { + return function() { + return x; + }; +} + +function defaultRadius(d) { + return Math.sqrt(d.value); +} + +function index$1() { + var radius = null, + dx = 1, + dy = 1, + padding = constantZero; + + function pack(root) { + root.x = dx / 2, root.y = dy / 2; + if (radius) { + root.eachBefore(radiusLeaf(radius)) + .eachAfter(packChildren(padding, 0.5)) + .eachBefore(translateChild(1)); + } else { + root.eachBefore(radiusLeaf(defaultRadius)) + .eachAfter(packChildren(constantZero, 1)) + .eachAfter(packChildren(padding, root.r / Math.min(dx, dy))) + .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + } + return root; + } + + pack.radius = function(x) { + return arguments.length ? (radius = optional(x), pack) : radius; + }; + + pack.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; + }; + + pack.padding = function(x) { + return arguments.length ? (padding = typeof x === "function" ? x : constant$2(+x), pack) : padding; + }; + + return pack; +} + +function radiusLeaf(radius) { + return function(node) { + if (!node.children) { + node.r = Math.max(0, +radius(node) || 0); + } + }; +} + +function packChildren(padding, k) { + return function(node) { + if (children = node.children) { + var children, + i, + n = children.length, + r = padding(node) * k || 0, + e; + + if (r) for (i = 0; i < n; ++i) children[i].r += r; + e = packEnclose(children); + if (r) for (i = 0; i < n; ++i) children[i].r -= r; + node.r = e + r; + } + }; +} + +function translateChild(k) { + return function(node) { + var parent = node.parent; + node.r *= k; + if (parent) { + node.x = parent.x + k * node.x; + node.y = parent.y + k * node.y; + } + }; +} + +function roundNode(node) { + node.x0 = Math.round(node.x0); + node.y0 = Math.round(node.y0); + node.x1 = Math.round(node.x1); + node.y1 = Math.round(node.y1); +} + +function treemapDice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (x1 - x0) / parent.value; + + while (++i < n) { + node = nodes[i], node.y0 = y0, node.y1 = y1; + node.x0 = x0, node.x1 = x0 += node.value * k; + } +} + +function partition() { + var dx = 1, + dy = 1, + padding = 0, + round = false; + + function partition(root) { + var n = root.height + 1; + root.x0 = + root.y0 = padding; + root.x1 = dx; + root.y1 = dy / n; + root.eachBefore(positionNode(dy, n)); + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(dy, n) { + return function(node) { + if (node.children) { + treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n); + } + var x0 = node.x0, + y0 = node.y0, + x1 = node.x1 - padding, + y1 = node.y1 - padding; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + }; + } + + partition.round = function(x) { + return arguments.length ? (round = !!x, partition) : round; + }; + + partition.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy]; + }; + + partition.padding = function(x) { + return arguments.length ? (padding = +x, partition) : padding; + }; + + return partition; +} + +var preroot = {depth: -1}, + ambiguous = {}; + +function defaultId(d) { + return d.id; +} + +function defaultParentId(d) { + return d.parentId; +} + +function stratify() { + var id = defaultId, + parentId = defaultParentId; + + function stratify(data) { + var nodes = Array.from(data), + n = nodes.length, + d, + i, + root, + parent, + node, + nodeId, + nodeKey, + nodeByKey = new Map; + + for (i = 0; i < n; ++i) { + d = nodes[i], node = nodes[i] = new Node$1(d); + if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { + nodeKey = node.id = nodeId; + nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); + } + if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) { + node.parent = nodeId; + } + } + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (nodeId = node.parent) { + parent = nodeByKey.get(nodeId); + if (!parent) throw new Error("missing: " + nodeId); + if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); + if (parent.children) parent.children.push(node); + else parent.children = [node]; + node.parent = parent; + } else { + if (root) throw new Error("multiple roots"); + root = node; + } + } + + if (!root) throw new Error("no root"); + root.parent = preroot; + root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); + root.parent = null; + if (n > 0) throw new Error("cycle"); + + return root; + } + + stratify.id = function(x) { + return arguments.length ? (id = required(x), stratify) : id; + }; + + stratify.parentId = function(x) { + return arguments.length ? (parentId = required(x), stratify) : parentId; + }; + + return stratify; +} + +function defaultSeparation(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +// function radialSeparation(a, b) { +// return (a.parent === b.parent ? 1 : 2) / a.depth; +// } + +// This function is used to traverse the left contour of a subtree (or +// subforest). It returns the successor of v on this contour. This successor is +// either given by the leftmost child of v or by the thread of v. The function +// returns null if and only if v is on the highest level of its subtree. +function nextLeft(v) { + var children = v.children; + return children ? children[0] : v.t; +} + +// This function works analogously to nextLeft. +function nextRight(v) { + var children = v.children; + return children ? children[children.length - 1] : v.t; +} + +// Shifts the current subtree rooted at w+. This is done by increasing +// prelim(w+) and mod(w+) by shift. +function moveSubtree(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; +} + +// All other shifts, applied to the smaller subtrees between w- and w+, are +// performed by this function. To prepare the shifts, we have to adjust +// change(w+), shift(w+), and change(w-). +function executeShifts(v) { + var shift = 0, + change = 0, + children = v.children, + i = children.length, + w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } +} + +// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, +// returns the specified (default) ancestor. +function nextAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; +} + +function TreeNode(node, i) { + this._ = node; + this.parent = null; + this.children = null; + this.A = null; // default ancestor + this.a = this; // ancestor + this.z = 0; // prelim + this.m = 0; // mod + this.c = 0; // change + this.s = 0; // shift + this.t = null; // thread + this.i = i; // number +} + +TreeNode.prototype = Object.create(Node$1.prototype); + +function treeRoot(root) { + var tree = new TreeNode(root, 0), + node, + nodes = [tree], + child, + children, + i, + n; + + while (node = nodes.pop()) { + if (children = node._.children) { + node.children = new Array(n = children.length); + for (i = n - 1; i >= 0; --i) { + nodes.push(child = node.children[i] = new TreeNode(children[i], i)); + child.parent = node; + } + } + } + + (tree.parent = new TreeNode(null, 0)).children = [tree]; + return tree; +} + +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +function tree() { + var separation = defaultSeparation, + dx = 1, + dy = 1, + nodeSize = null; + + function tree(root) { + var t = treeRoot(root); + + // Compute the layout using Buchheim et al.’s algorithm. + t.eachAfter(firstWalk), t.parent.m = -t.z; + t.eachBefore(secondWalk); + + // If a fixed node size is specified, scale x and y. + if (nodeSize) root.eachBefore(sizeNode); + + // If a fixed tree size is specified, scale x and y based on the extent. + // Compute the left-most, right-most, and depth-most nodes for extents. + else { + var left = root, + right = root, + bottom = root; + root.eachBefore(function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var s = left === right ? 1 : separation(left, right) / 2, + tx = s - left.x, + kx = dx / (right.x + s + tx), + ky = dy / (bottom.depth || 1); + root.eachBefore(function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + + return root; + } + + // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is + // applied recursively to the children of v, as well as the function + // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the + // node v is placed to the midpoint of its outermost children. + function firstWalk(v) { + var children = v.children, + siblings = v.parent.children, + w = v.i ? siblings[v.i - 1] : null; + if (children) { + executeShifts(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + + // Computes all real x-coordinates by summing up the modifiers recursively. + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + + // The core of the algorithm. Here, a new subtree is combined with the + // previous subtrees. Threads are used to traverse the inside and outside + // contours of the left and right subtree up to the highest common level. The + // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the + // superscript o means outside and i means inside, the subscript - means left + // subtree and + means right subtree. For summing up the modifiers along the + // contour, we use respective variables si+, si-, so-, and so+. Whenever two + // nodes of the inside contours conflict, we compute the left one of the + // greatest uncommon ancestors using the function ANCESTOR and call MOVE + // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. + // Finally, we add a new thread (if necessary). + function apportion(v, w, ancestor) { + if (w) { + var vip = v, + vop = v, + vim = w, + vom = vip.parent.children[0], + sip = vip.m, + sop = vop.m, + sim = vim.m, + som = vom.m, + shift; + while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { + vom = nextLeft(vom); + vop = nextRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + moveSubtree(nextAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !nextRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !nextLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + + function sizeNode(node) { + node.x *= dx; + node.y = node.depth * dy; + } + + tree.separation = function(x) { + return arguments.length ? (separation = x, tree) : separation; + }; + + tree.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]); + }; + + tree.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null); + }; + + return tree; +} + +function treemapSlice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (y1 - y0) / parent.value; + + while (++i < n) { + node = nodes[i], node.x0 = x0, node.x1 = x1; + node.y0 = y0, node.y1 = y0 += node.value * k; + } +} + +var phi = (1 + Math.sqrt(5)) / 2; + +function squarifyRatio(ratio, parent, x0, y0, x1, y1) { + var rows = [], + nodes = parent.children, + row, + nodeValue, + i0 = 0, + i1 = 0, + n = nodes.length, + dx, dy, + value = parent.value, + sumValue, + minValue, + maxValue, + newRatio, + minRatio, + alpha, + beta; + + while (i0 < n) { + dx = x1 - x0, dy = y1 - y0; + + // Find the next non-empty node. + do sumValue = nodes[i1++].value; while (!sumValue && i1 < n); + minValue = maxValue = sumValue; + alpha = Math.max(dy / dx, dx / dy) / (value * ratio); + beta = sumValue * sumValue * alpha; + minRatio = Math.max(maxValue / beta, beta / minValue); + + // Keep adding nodes while the aspect ratio maintains or improves. + for (; i1 < n; ++i1) { + sumValue += nodeValue = nodes[i1].value; + if (nodeValue < minValue) minValue = nodeValue; + if (nodeValue > maxValue) maxValue = nodeValue; + beta = sumValue * sumValue * alpha; + newRatio = Math.max(maxValue / beta, beta / minValue); + if (newRatio > minRatio) { sumValue -= nodeValue; break; } + minRatio = newRatio; + } + + // Position and record the row orientation. + rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); + value -= sumValue, i0 = i1; + } + + return rows; +} + +var squarify = (function custom(ratio) { + + function squarify(parent, x0, y0, x1, y1) { + squarifyRatio(ratio, parent, x0, y0, x1, y1); + } + + squarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return squarify; +})(phi); + +function index() { + var tile = squarify, + round = false, + dx = 1, + dy = 1, + paddingStack = [0], + paddingInner = constantZero, + paddingTop = constantZero, + paddingRight = constantZero, + paddingBottom = constantZero, + paddingLeft = constantZero; + + function treemap(root) { + root.x0 = + root.y0 = 0; + root.x1 = dx; + root.y1 = dy; + root.eachBefore(positionNode); + paddingStack = [0]; + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(node) { + var p = paddingStack[node.depth], + x0 = node.x0 + p, + y0 = node.y0 + p, + x1 = node.x1 - p, + y1 = node.y1 - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + if (node.children) { + p = paddingStack[node.depth + 1] = paddingInner(node) / 2; + x0 += paddingLeft(node) - p; + y0 += paddingTop(node) - p; + x1 -= paddingRight(node) - p; + y1 -= paddingBottom(node) - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + tile(node, x0, y0, x1, y1); + } + } + + treemap.round = function(x) { + return arguments.length ? (round = !!x, treemap) : round; + }; + + treemap.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; + }; + + treemap.tile = function(x) { + return arguments.length ? (tile = required(x), treemap) : tile; + }; + + treemap.padding = function(x) { + return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); + }; + + treemap.paddingInner = function(x) { + return arguments.length ? (paddingInner = typeof x === "function" ? x : constant$2(+x), treemap) : paddingInner; + }; + + treemap.paddingOuter = function(x) { + return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); + }; + + treemap.paddingTop = function(x) { + return arguments.length ? (paddingTop = typeof x === "function" ? x : constant$2(+x), treemap) : paddingTop; + }; + + treemap.paddingRight = function(x) { + return arguments.length ? (paddingRight = typeof x === "function" ? x : constant$2(+x), treemap) : paddingRight; + }; + + treemap.paddingBottom = function(x) { + return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant$2(+x), treemap) : paddingBottom; + }; + + treemap.paddingLeft = function(x) { + return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant$2(+x), treemap) : paddingLeft; + }; + + return treemap; +} + +function binary(parent, x0, y0, x1, y1) { + var nodes = parent.children, + i, n = nodes.length, + sum, sums = new Array(n + 1); + + for (sums[0] = sum = i = 0; i < n; ++i) { + sums[i + 1] = sum += nodes[i].value; + } + + partition(0, n, parent.value, x0, y0, x1, y1); + + function partition(i, j, value, x0, y0, x1, y1) { + if (i >= j - 1) { + var node = nodes[i]; + node.x0 = x0, node.y0 = y0; + node.x1 = x1, node.y1 = y1; + return; + } + + var valueOffset = sums[i], + valueTarget = (value / 2) + valueOffset, + k = i + 1, + hi = j - 1; + + while (k < hi) { + var mid = k + hi >>> 1; + if (sums[mid] < valueTarget) k = mid + 1; + else hi = mid; + } + + if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; + + var valueLeft = sums[k] - valueOffset, + valueRight = value - valueLeft; + + if ((x1 - x0) > (y1 - y0)) { + var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1; + partition(i, k, valueLeft, x0, y0, xk, y1); + partition(k, j, valueRight, xk, y0, x1, y1); + } else { + var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1; + partition(i, k, valueLeft, x0, y0, x1, yk); + partition(k, j, valueRight, x0, yk, x1, y1); + } + } +} + +function sliceDice(parent, x0, y0, x1, y1) { + (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1); +} + +var resquarify = (function custom(ratio) { + + function resquarify(parent, x0, y0, x1, y1) { + if ((rows = parent._squarify) && (rows.ratio === ratio)) { + var rows, + row, + nodes, + i, + j = -1, + n, + m = rows.length, + value = parent.value; + + while (++j < m) { + row = rows[j], nodes = row.children; + for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); + value -= row.value; + } + } else { + parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); + rows.ratio = ratio; + } + } + + resquarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return resquarify; +})(phi); + +function area$1(polygon) { + var i = -1, + n = polygon.length, + a, + b = polygon[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + + return area / 2; +} + +function centroid(polygon) { + var i = -1, + n = polygon.length, + x = 0, + y = 0, + a, + b = polygon[n - 1], + c, + k = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + k += c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + + return k *= 3, [x / k, y / k]; +} + +// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of +// the 3D cross product in a quadrant I Cartesian coordinate system (+x is +// right, +y is up). Returns a positive value if ABC is counter-clockwise, +// negative if clockwise, and zero if the points are collinear. +function cross$1(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); +} + +function lexicographicOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; +} + +// Computes the upper convex hull per the monotone chain algorithm. +// Assumes points.length >= 3, is sorted by x, unique in y. +// Returns an array of indices into points in left-to-right order. +function computeUpperHullIndexes(points) { + const n = points.length, + indexes = [0, 1]; + let size = 2, i; + + for (i = 2; i < n; ++i) { + while (size > 1 && cross$1(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size; + indexes[size++] = i; + } + + return indexes.slice(0, size); // remove popped points +} + +function hull(points) { + if ((n = points.length) < 3) return null; + + var i, + n, + sortedPoints = new Array(n), + flippedPoints = new Array(n); + + for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i]; + sortedPoints.sort(lexicographicOrder); + for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]]; + + var upperIndexes = computeUpperHullIndexes(sortedPoints), + lowerIndexes = computeUpperHullIndexes(flippedPoints); + + // Construct the hull polygon, removing possible duplicate endpoints. + var skipLeft = lowerIndexes[0] === upperIndexes[0], + skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1], + hull = []; + + // Add upper hull in right-to-l order. + // Then add lower hull in left-to-right order. + for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]); + for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]); + + return hull; +} + +function contains(polygon, point) { + var n = polygon.length, + p = polygon[n - 1], + x = point[0], y = point[1], + x0 = p[0], y0 = p[1], + x1, y1, + inside = false; + + for (var i = 0; i < n; ++i) { + p = polygon[i], x1 = p[0], y1 = p[1]; + if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside; + x0 = x1, y0 = y1; + } + + return inside; +} + +function length(polygon) { + var i = -1, + n = polygon.length, + b = polygon[n - 1], + xa, + ya, + xb = b[0], + yb = b[1], + perimeter = 0; + + while (++i < n) { + xa = xb; + ya = yb; + b = polygon[i]; + xb = b[0]; + yb = b[1]; + xa -= xb; + ya -= yb; + perimeter += Math.hypot(xa, ya); + } + + return perimeter; +} + +var defaultSource = Math.random; + +var uniform = (function sourceRandomUniform(source) { + function randomUniform(min, max) { + min = min == null ? 0 : +min; + max = max == null ? 1 : +max; + if (arguments.length === 1) max = min, min = 0; + else max -= min; + return function() { + return source() * max + min; + }; + } + + randomUniform.source = sourceRandomUniform; + + return randomUniform; +})(defaultSource); + +var int = (function sourceRandomInt(source) { + function randomInt(min, max) { + if (arguments.length < 2) max = min, min = 0; + min = Math.floor(min); + max = Math.floor(max) - min; + return function() { + return Math.floor(source() * max + min); + }; + } + + randomInt.source = sourceRandomInt; + + return randomInt; +})(defaultSource); + +var normal = (function sourceRandomNormal(source) { + function randomNormal(mu, sigma) { + var x, r; + mu = mu == null ? 0 : +mu; + sigma = sigma == null ? 1 : +sigma; + return function() { + var y; + + // If available, use the second previously-generated uniform random. + if (x != null) y = x, x = null; + + // Otherwise, generate a new x and y. + else do { + x = source() * 2 - 1; + y = source() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + + return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r); + }; + } + + randomNormal.source = sourceRandomNormal; + + return randomNormal; +})(defaultSource); + +var logNormal = (function sourceRandomLogNormal(source) { + var N = normal.source(source); + + function randomLogNormal() { + var randomNormal = N.apply(this, arguments); + return function() { + return Math.exp(randomNormal()); + }; + } + + randomLogNormal.source = sourceRandomLogNormal; + + return randomLogNormal; +})(defaultSource); + +var irwinHall = (function sourceRandomIrwinHall(source) { + function randomIrwinHall(n) { + if ((n = +n) <= 0) return () => 0; + return function() { + for (var sum = 0, i = n; i > 1; --i) sum += source(); + return sum + i * source(); + }; + } + + randomIrwinHall.source = sourceRandomIrwinHall; + + return randomIrwinHall; +})(defaultSource); + +var bates = (function sourceRandomBates(source) { + var I = irwinHall.source(source); + + function randomBates(n) { + // use limiting distribution at n === 0 + if ((n = +n) === 0) return source; + var randomIrwinHall = I(n); + return function() { + return randomIrwinHall() / n; + }; + } + + randomBates.source = sourceRandomBates; + + return randomBates; +})(defaultSource); + +var exponential = (function sourceRandomExponential(source) { + function randomExponential(lambda) { + return function() { + return -Math.log1p(-source()) / lambda; + }; + } + + randomExponential.source = sourceRandomExponential; + + return randomExponential; +})(defaultSource); + +var pareto = (function sourceRandomPareto(source) { + function randomPareto(alpha) { + if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha"); + alpha = 1 / -alpha; + return function() { + return Math.pow(1 - source(), alpha); + }; + } + + randomPareto.source = sourceRandomPareto; + + return randomPareto; +})(defaultSource); + +var bernoulli = (function sourceRandomBernoulli(source) { + function randomBernoulli(p) { + if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); + return function() { + return Math.floor(source() + p); + }; + } + + randomBernoulli.source = sourceRandomBernoulli; + + return randomBernoulli; +})(defaultSource); + +var geometric = (function sourceRandomGeometric(source) { + function randomGeometric(p) { + if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); + if (p === 0) return () => Infinity; + if (p === 1) return () => 1; + p = Math.log1p(-p); + return function() { + return 1 + Math.floor(Math.log1p(-source()) / p); + }; + } + + randomGeometric.source = sourceRandomGeometric; + + return randomGeometric; +})(defaultSource); + +var gamma = (function sourceRandomGamma(source) { + var randomNormal = normal.source(source)(); + + function randomGamma(k, theta) { + if ((k = +k) < 0) throw new RangeError("invalid k"); + // degenerate distribution if k === 0 + if (k === 0) return () => 0; + theta = theta == null ? 1 : +theta; + // exponential distribution if k === 1 + if (k === 1) return () => -Math.log1p(-source()) * theta; + + var d = (k < 1 ? k + 1 : k) - 1 / 3, + c = 1 / (3 * Math.sqrt(d)), + multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1; + return function() { + do { + do { + var x = randomNormal(), + v = 1 + c * x; + } while (v <= 0); + v *= v * v; + var u = 1 - source(); + } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v))); + return d * v * multiplier() * theta; + }; + } + + randomGamma.source = sourceRandomGamma; + + return randomGamma; +})(defaultSource); + +var beta = (function sourceRandomBeta(source) { + var G = gamma.source(source); + + function randomBeta(alpha, beta) { + var X = G(alpha), + Y = G(beta); + return function() { + var x = X(); + return x === 0 ? 0 : x / (x + Y()); + }; + } + + randomBeta.source = sourceRandomBeta; + + return randomBeta; +})(defaultSource); + +var binomial = (function sourceRandomBinomial(source) { + var G = geometric.source(source), + B = beta.source(source); + + function randomBinomial(n, p) { + n = +n; + if ((p = +p) >= 1) return () => n; + if (p <= 0) return () => 0; + return function() { + var acc = 0, nn = n, pp = p; + while (nn * pp > 16 && nn * (1 - pp) > 16) { + var i = Math.floor((nn + 1) * pp), + y = B(i, nn - i + 1)(); + if (y <= pp) { + acc += i; + nn -= i; + pp = (pp - y) / (1 - y); + } else { + nn = i - 1; + pp /= y; + } + } + var sign = pp < 0.5, + pFinal = sign ? pp : 1 - pp, + g = G(pFinal); + for (var s = g(), k = 0; s <= nn; ++k) s += g(); + return acc + (sign ? k : nn - k); + }; + } + + randomBinomial.source = sourceRandomBinomial; + + return randomBinomial; +})(defaultSource); + +var weibull = (function sourceRandomWeibull(source) { + function randomWeibull(k, a, b) { + var outerFunc; + if ((k = +k) === 0) { + outerFunc = x => -Math.log(x); + } else { + k = 1 / k; + outerFunc = x => Math.pow(x, k); + } + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + return a + b * outerFunc(-Math.log1p(-source())); + }; + } + + randomWeibull.source = sourceRandomWeibull; + + return randomWeibull; +})(defaultSource); + +var cauchy = (function sourceRandomCauchy(source) { + function randomCauchy(a, b) { + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + return a + b * Math.tan(Math.PI * source()); + }; + } + + randomCauchy.source = sourceRandomCauchy; + + return randomCauchy; +})(defaultSource); + +var logistic = (function sourceRandomLogistic(source) { + function randomLogistic(a, b) { + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + var u = source(); + return a + b * Math.log(u / (1 - u)); + }; + } + + randomLogistic.source = sourceRandomLogistic; + + return randomLogistic; +})(defaultSource); + +var poisson = (function sourceRandomPoisson(source) { + var G = gamma.source(source), + B = binomial.source(source); + + function randomPoisson(lambda) { + return function() { + var acc = 0, l = lambda; + while (l > 16) { + var n = Math.floor(0.875 * l), + t = G(n)(); + if (t > l) return acc + B(n - 1, l / t)(); + acc += n; + l -= t; + } + for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source()); + return acc + k; + }; + } + + randomPoisson.source = sourceRandomPoisson; + + return randomPoisson; +})(defaultSource); + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const mul = 0x19660D; +const inc = 0x3C6EF35F; +const eps = 1 / 0x100000000; + +function lcg(seed = Math.random()) { + let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0; + return () => (state = mul * state + inc | 0, eps * (state >>> 0)); +} + +function initRange(domain, range) { + switch (arguments.length) { + case 0: break; + case 1: this.range(domain); break; + default: this.range(range).domain(domain); break; + } + return this; +} + +function initInterpolator(domain, interpolator) { + switch (arguments.length) { + case 0: break; + case 1: { + if (typeof domain === "function") this.interpolator(domain); + else this.range(domain); + break; + } + default: { + this.domain(domain); + if (typeof interpolator === "function") this.interpolator(interpolator); + else this.range(interpolator); + break; + } + } + return this; +} + +const implicit = Symbol("implicit"); + +function ordinal() { + var index = new Map(), + domain = [], + range = [], + unknown = implicit; + + function scale(d) { + var key = d + "", i = index.get(key); + if (!i) { + if (unknown !== implicit) return unknown; + index.set(key, i = domain.push(d)); + } + return range[(i - 1) % range.length]; + } + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = [], index = new Map(); + for (const value of _) { + const key = value + ""; + if (index.has(key)) continue; + index.set(key, domain.push(value)); + } + return scale; + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function band() { + var scale = ordinal().unknown(undefined), + domain = scale.domain, + ordinalRange = scale.range, + r0 = 0, + r1 = 1, + step, + bandwidth, + round = false, + paddingInner = 0, + paddingOuter = 0, + align = 0.5; + + delete scale.unknown; + + function rescale() { + var n = domain().length, + reverse = r1 < r0, + start = reverse ? r1 : r0, + stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = sequence(n).map(function(i) { return start + step * i; }); + return ordinalRange(reverse ? values.reverse() : values); + } + + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1]; + }; + + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + + scale.bandwidth = function() { + return bandwidth; + }; + + scale.step = function() { + return step; + }; + + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + + scale.copy = function() { + return band(domain(), [r0, r1]) + .round(round) + .paddingInner(paddingInner) + .paddingOuter(paddingOuter) + .align(align); + }; + + return initRange.apply(rescale(), arguments); +} + +function pointish(scale) { + var copy = scale.copy; + + scale.padding = scale.paddingOuter; + delete scale.paddingInner; + delete scale.paddingOuter; + + scale.copy = function() { + return pointish(copy()); + }; + + return scale; +} + +function point$4() { + return pointish(band.apply(null, arguments).paddingInner(1)); +} + +function constants(x) { + return function() { + return x; + }; +} + +function number$1(x) { + return +x; +} + +var unit = [0, 1]; + +function identity$3(x) { + return x; +} + +function normalize(a, b) { + return (b -= (a = +a)) + ? function(x) { return (x - a) / b; } + : constants(isNaN(b) ? NaN : 0.5); +} + +function clamper(a, b) { + var t; + if (a > b) t = a, a = b, b = t; + return function(x) { return Math.max(a, Math.min(b, x)); }; +} + +// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1]. +// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b]. +function bimap(domain, range, interpolate) { + var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; + if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0); + else d0 = normalize(d0, d1), r0 = interpolate(r0, r1); + return function(x) { return r0(d0(x)); }; +} + +function polymap(domain, range, interpolate) { + var j = Math.min(domain.length, range.length) - 1, + d = new Array(j), + r = new Array(j), + i = -1; + + // Reverse descending domains. + if (domain[j] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + + while (++i < j) { + d[i] = normalize(domain[i], domain[i + 1]); + r[i] = interpolate(range[i], range[i + 1]); + } + + return function(x) { + var i = bisectRight(domain, x, 1, j) - 1; + return r[i](d[i](x)); + }; +} + +function copy$1(source, target) { + return target + .domain(source.domain()) + .range(source.range()) + .interpolate(source.interpolate()) + .clamp(source.clamp()) + .unknown(source.unknown()); +} + +function transformer$2() { + var domain = unit, + range = unit, + interpolate = interpolate$2, + transform, + untransform, + unknown, + clamp = identity$3, + piecewise, + output, + input; + + function rescale() { + var n = Math.min(domain.length, range.length); + if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]); + piecewise = n > 2 ? polymap : bimap; + output = input = null; + return scale; + } + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); + } + + scale.invert = function(y) { + return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); + }; + + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + + scale.rangeRound = function(_) { + return range = Array.from(_), interpolate = interpolateRound, rescale(); + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3; + }; + + scale.interpolate = function(_) { + return arguments.length ? (interpolate = _, rescale()) : interpolate; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t, u) { + transform = t, untransform = u; + return rescale(); + }; +} + +function continuous() { + return transformer$2()(identity$3, identity$3); +} + +function tickFormat(start, stop, count, specifier) { + var step = tickStep(start, stop, count), + precision; + specifier = formatSpecifier(specifier == null ? ",f" : specifier); + switch (specifier.type) { + case "s": { + var value = Math.max(Math.abs(start), Math.abs(stop)); + if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision; + return exports.formatPrefix(specifier, value); + } + case "": + case "e": + case "g": + case "p": + case "r": { + if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e"); + break; + } + case "f": + case "%": { + if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2; + break; + } + } + return exports.format(specifier); +} + +function linearish(scale) { + var domain = scale.domain; + + scale.ticks = function(count) { + var d = domain(); + return ticks(d[0], d[d.length - 1], count == null ? 10 : count); + }; + + scale.tickFormat = function(count, specifier) { + var d = domain(); + return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); + }; + + scale.nice = function(count) { + if (count == null) count = 10; + + var d = domain(); + var i0 = 0; + var i1 = d.length - 1; + var start = d[i0]; + var stop = d[i1]; + var prestep; + var step; + var maxIter = 10; + + if (stop < start) { + step = start, start = stop, stop = step; + step = i0, i0 = i1, i1 = step; + } + + while (maxIter-- > 0) { + step = tickIncrement(start, stop, count); + if (step === prestep) { + d[i0] = start; + d[i1] = stop; + return domain(d); + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } else { + break; + } + prestep = step; + } + + return scale; + }; + + return scale; +} + +function linear() { + var scale = continuous(); + + scale.copy = function() { + return copy$1(scale, linear()); + }; + + initRange.apply(scale, arguments); + + return linearish(scale); +} + +function identity$2(domain) { + var unknown; + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : x; + } + + scale.invert = scale; + + scale.domain = scale.range = function(_) { + return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return identity$2(domain).unknown(unknown); + }; + + domain = arguments.length ? Array.from(domain, number$1) : [0, 1]; + + return linearish(scale); +} + +function nice(domain, interval) { + domain = domain.slice(); + + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + t; + + if (x1 < x0) { + t = i0, i0 = i1, i1 = t; + t = x0, x0 = x1, x1 = t; + } + + domain[i0] = interval.floor(x0); + domain[i1] = interval.ceil(x1); + return domain; +} + +function transformLog(x) { + return Math.log(x); +} + +function transformExp(x) { + return Math.exp(x); +} + +function transformLogn(x) { + return -Math.log(-x); +} + +function transformExpn(x) { + return -Math.exp(-x); +} + +function pow10(x) { + return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; +} + +function powp(base) { + return base === 10 ? pow10 + : base === Math.E ? Math.exp + : function(x) { return Math.pow(base, x); }; +} + +function logp(base) { + return base === Math.E ? Math.log + : base === 10 && Math.log10 + || base === 2 && Math.log2 + || (base = Math.log(base), function(x) { return Math.log(x) / base; }); +} + +function reflect(f) { + return function(x) { + return -f(-x); + }; +} + +function loggish(transform) { + var scale = transform(transformLog, transformExp), + domain = scale.domain, + base = 10, + logs, + pows; + + function rescale() { + logs = logp(base), pows = powp(base); + if (domain()[0] < 0) { + logs = reflect(logs), pows = reflect(pows); + transform(transformLogn, transformExpn); + } else { + transform(transformLog, transformExp); + } + return scale; + } + + scale.base = function(_) { + return arguments.length ? (base = +_, rescale()) : base; + }; + + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + + scale.ticks = function(count) { + var d = domain(), + u = d[0], + v = d[d.length - 1], + r; + + if (r = v < u) i = u, u = v, v = i; + + var i = logs(u), + j = logs(v), + p, + k, + t, + n = count == null ? 10 : +count, + z = []; + + if (!(base % 1) && j - i < n) { + i = Math.floor(i), j = Math.ceil(j); + if (u > 0) for (; i <= j; ++i) { + for (k = 1, p = pows(i); k < base; ++k) { + t = p * k; + if (t < u) continue; + if (t > v) break; + z.push(t); + } + } else for (; i <= j; ++i) { + for (k = base - 1, p = pows(i); k >= 1; --k) { + t = p * k; + if (t < u) continue; + if (t > v) break; + z.push(t); + } + } + if (z.length * 2 < n) z = ticks(u, v, n); + } else { + z = ticks(i, j, Math.min(j - i, n)).map(pows); + } + + return r ? z.reverse() : z; + }; + + scale.tickFormat = function(count, specifier) { + if (specifier == null) specifier = base === 10 ? ".0e" : ","; + if (typeof specifier !== "function") specifier = exports.format(specifier); + if (count === Infinity) return specifier; + if (count == null) count = 10; + var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? + return function(d) { + var i = d / pows(Math.round(logs(d))); + if (i * base < base - 0.5) i *= base; + return i <= k ? specifier(d) : ""; + }; + }; + + scale.nice = function() { + return domain(nice(domain(), { + floor: function(x) { return pows(Math.floor(logs(x))); }, + ceil: function(x) { return pows(Math.ceil(logs(x))); } + })); + }; + + return scale; +} + +function log() { + var scale = loggish(transformer$2()).domain([1, 10]); + + scale.copy = function() { + return copy$1(scale, log()).base(scale.base()); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function transformSymlog(c) { + return function(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / c)); + }; +} + +function transformSymexp(c) { + return function(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * c; + }; +} + +function symlogish(transform) { + var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); + + scale.constant = function(_) { + return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; + }; + + return linearish(scale); +} + +function symlog() { + var scale = symlogish(transformer$2()); + + scale.copy = function() { + return copy$1(scale, symlog()).constant(scale.constant()); + }; + + return initRange.apply(scale, arguments); +} + +function transformPow(exponent) { + return function(x) { + return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); + }; +} + +function transformSqrt(x) { + return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); +} + +function transformSquare(x) { + return x < 0 ? -x * x : x * x; +} + +function powish(transform) { + var scale = transform(identity$3, identity$3), + exponent = 1; + + function rescale() { + return exponent === 1 ? transform(identity$3, identity$3) + : exponent === 0.5 ? transform(transformSqrt, transformSquare) + : transform(transformPow(exponent), transformPow(1 / exponent)); + } + + scale.exponent = function(_) { + return arguments.length ? (exponent = +_, rescale()) : exponent; + }; + + return linearish(scale); +} + +function pow() { + var scale = powish(transformer$2()); + + scale.copy = function() { + return copy$1(scale, pow()).exponent(scale.exponent()); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function sqrt$1() { + return pow.apply(null, arguments).exponent(0.5); +} + +function square$1(x) { + return Math.sign(x) * x * x; +} + +function unsquare(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); +} + +function radial() { + var squared = continuous(), + range = [0, 1], + round = false, + unknown; + + function scale(x) { + var y = unsquare(squared(x)); + return isNaN(y) ? unknown : round ? Math.round(y) : y; + } + + scale.invert = function(y) { + return squared.invert(square$1(y)); + }; + + scale.domain = function(_) { + return arguments.length ? (squared.domain(_), scale) : squared.domain(); + }; + + scale.range = function(_) { + return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square$1)), scale) : range.slice(); + }; + + scale.rangeRound = function(_) { + return scale.range(_).round(true); + }; + + scale.round = function(_) { + return arguments.length ? (round = !!_, scale) : round; + }; + + scale.clamp = function(_) { + return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return radial(squared.domain(), range) + .round(round) + .clamp(squared.clamp()) + .unknown(unknown); + }; + + initRange.apply(scale, arguments); + + return linearish(scale); +} + +function quantile() { + var domain = [], + range = [], + thresholds = [], + unknown; + + function rescale() { + var i = 0, n = Math.max(1, range.length); + thresholds = new Array(n - 1); + while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n); + return scale; + } + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : range[bisectRight(thresholds, x)]; + } + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return i < 0 ? [NaN, NaN] : [ + i > 0 ? thresholds[i - 1] : domain[0], + i < thresholds.length ? thresholds[i] : domain[domain.length - 1] + ]; + }; + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort(ascending$3); + return rescale(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.quantiles = function() { + return thresholds.slice(); + }; + + scale.copy = function() { + return quantile() + .domain(domain) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(scale, arguments); +} + +function quantize() { + var x0 = 0, + x1 = 1, + n = 1, + domain = [0.5], + range = [0, 1], + unknown; + + function scale(x) { + return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; + } + + function rescale() { + var i = -1; + domain = new Array(n); + while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1); + return scale; + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1]; + }; + + scale.range = function(_) { + return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice(); + }; + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return i < 0 ? [NaN, NaN] + : i < 1 ? [x0, domain[0]] + : i >= n ? [domain[n - 1], x1] + : [domain[i - 1], domain[i]]; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : scale; + }; + + scale.thresholds = function() { + return domain.slice(); + }; + + scale.copy = function() { + return quantize() + .domain([x0, x1]) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(linearish(scale), arguments); +} + +function threshold() { + var domain = [0.5], + range = [0, 1], + unknown, + n = 1; + + function scale(x) { + return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; + } + + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice(); + }; + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return [domain[i - 1], domain[i]]; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return threshold() + .domain(domain) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(scale, arguments); +} + +var t0 = new Date, + t1 = new Date; + +function newInterval(floori, offseti, count, field) { + + function interval(date) { + return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; + } + + interval.floor = function(date) { + return floori(date = new Date(+date)), date; + }; + + interval.ceil = function(date) { + return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; + }; + + interval.round = function(date) { + var d0 = interval(date), + d1 = interval.ceil(date); + return date - d0 < d1 - date ? d0 : d1; + }; + + interval.offset = function(date, step) { + return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; + }; + + interval.range = function(start, stop, step) { + var range = [], previous; + start = interval.ceil(start); + step = step == null ? 1 : Math.floor(step); + if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date + do range.push(previous = new Date(+start)), offseti(start, step), floori(start); + while (previous < start && start < stop); + return range; + }; + + interval.filter = function(test) { + return newInterval(function(date) { + if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); + }, function(date, step) { + if (date >= date) { + if (step < 0) while (++step <= 0) { + while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty + } else while (--step >= 0) { + while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty + } + } + }); + }; + + if (count) { + interval.count = function(start, end) { + t0.setTime(+start), t1.setTime(+end); + floori(t0), floori(t1); + return Math.floor(count(t0, t1)); + }; + + interval.every = function(step) { + step = Math.floor(step); + return !isFinite(step) || !(step > 0) ? null + : !(step > 1) ? interval + : interval.filter(field + ? function(d) { return field(d) % step === 0; } + : function(d) { return interval.count(0, d) % step === 0; }); + }; + } + + return interval; +} + +var millisecond = newInterval(function() { + // noop +}, function(date, step) { + date.setTime(+date + step); +}, function(start, end) { + return end - start; +}); + +// An optimized implementation for this simple case. +millisecond.every = function(k) { + k = Math.floor(k); + if (!isFinite(k) || !(k > 0)) return null; + if (!(k > 1)) return millisecond; + return newInterval(function(date) { + date.setTime(Math.floor(date / k) * k); + }, function(date, step) { + date.setTime(+date + step * k); + }, function(start, end) { + return (end - start) / k; + }); +}; +var milliseconds = millisecond.range; + +const durationSecond = 1000; +const durationMinute = durationSecond * 60; +const durationHour = durationMinute * 60; +const durationDay = durationHour * 24; +const durationWeek = durationDay * 7; +const durationMonth = durationDay * 30; +const durationYear = durationDay * 365; + +var second = newInterval(function(date) { + date.setTime(date - date.getMilliseconds()); +}, function(date, step) { + date.setTime(+date + step * durationSecond); +}, function(start, end) { + return (end - start) / durationSecond; +}, function(date) { + return date.getUTCSeconds(); +}); +var seconds = second.range; + +var minute = newInterval(function(date) { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); +}, function(date, step) { + date.setTime(+date + step * durationMinute); +}, function(start, end) { + return (end - start) / durationMinute; +}, function(date) { + return date.getMinutes(); +}); +var minutes = minute.range; + +var hour = newInterval(function(date) { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); +}, function(date, step) { + date.setTime(+date + step * durationHour); +}, function(start, end) { + return (end - start) / durationHour; +}, function(date) { + return date.getHours(); +}); +var hours = hour.range; + +var day = newInterval( + date => date.setHours(0, 0, 0, 0), + (date, step) => date.setDate(date.getDate() + step), + (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, + date => date.getDate() - 1 +); +var days = day.range; + +function weekday(i) { + return newInterval(function(date) { + date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); + date.setHours(0, 0, 0, 0); + }, function(date, step) { + date.setDate(date.getDate() + step * 7); + }, function(start, end) { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; + }); +} + +var sunday = weekday(0); +var monday = weekday(1); +var tuesday = weekday(2); +var wednesday = weekday(3); +var thursday = weekday(4); +var friday = weekday(5); +var saturday = weekday(6); + +var sundays = sunday.range; +var mondays = monday.range; +var tuesdays = tuesday.range; +var wednesdays = wednesday.range; +var thursdays = thursday.range; +var fridays = friday.range; +var saturdays = saturday.range; + +var month = newInterval(function(date) { + date.setDate(1); + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setMonth(date.getMonth() + step); +}, function(start, end) { + return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; +}, function(date) { + return date.getMonth(); +}); +var months = month.range; + +var year = newInterval(function(date) { + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setFullYear(date.getFullYear() + step); +}, function(start, end) { + return end.getFullYear() - start.getFullYear(); +}, function(date) { + return date.getFullYear(); +}); + +// An optimized implementation for this simple case. +year.every = function(k) { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { + date.setFullYear(Math.floor(date.getFullYear() / k) * k); + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); + }, function(date, step) { + date.setFullYear(date.getFullYear() + step * k); + }); +}; +var years = year.range; + +var utcMinute = newInterval(function(date) { + date.setUTCSeconds(0, 0); +}, function(date, step) { + date.setTime(+date + step * durationMinute); +}, function(start, end) { + return (end - start) / durationMinute; +}, function(date) { + return date.getUTCMinutes(); +}); +var utcMinutes = utcMinute.range; + +var utcHour = newInterval(function(date) { + date.setUTCMinutes(0, 0, 0); +}, function(date, step) { + date.setTime(+date + step * durationHour); +}, function(start, end) { + return (end - start) / durationHour; +}, function(date) { + return date.getUTCHours(); +}); +var utcHours = utcHour.range; + +var utcDay = newInterval(function(date) { + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCDate(date.getUTCDate() + step); +}, function(start, end) { + return (end - start) / durationDay; +}, function(date) { + return date.getUTCDate() - 1; +}); +var utcDays = utcDay.range; + +function utcWeekday(i) { + return newInterval(function(date) { + date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); + date.setUTCHours(0, 0, 0, 0); + }, function(date, step) { + date.setUTCDate(date.getUTCDate() + step * 7); + }, function(start, end) { + return (end - start) / durationWeek; + }); +} + +var utcSunday = utcWeekday(0); +var utcMonday = utcWeekday(1); +var utcTuesday = utcWeekday(2); +var utcWednesday = utcWeekday(3); +var utcThursday = utcWeekday(4); +var utcFriday = utcWeekday(5); +var utcSaturday = utcWeekday(6); + +var utcSundays = utcSunday.range; +var utcMondays = utcMonday.range; +var utcTuesdays = utcTuesday.range; +var utcWednesdays = utcWednesday.range; +var utcThursdays = utcThursday.range; +var utcFridays = utcFriday.range; +var utcSaturdays = utcSaturday.range; + +var utcMonth = newInterval(function(date) { + date.setUTCDate(1); + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCMonth(date.getUTCMonth() + step); +}, function(start, end) { + return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; +}, function(date) { + return date.getUTCMonth(); +}); +var utcMonths = utcMonth.range; + +var utcYear = newInterval(function(date) { + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCFullYear(date.getUTCFullYear() + step); +}, function(start, end) { + return end.getUTCFullYear() - start.getUTCFullYear(); +}, function(date) { + return date.getUTCFullYear(); +}); + +// An optimized implementation for this simple case. +utcYear.every = function(k) { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { + date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); + }, function(date, step) { + date.setUTCFullYear(date.getUTCFullYear() + step * k); + }); +}; +var utcYears = utcYear.range; + +function ticker(year, month, week, day, hour, minute) { + + const tickIntervals = [ + [second, 1, durationSecond], + [second, 5, 5 * durationSecond], + [second, 15, 15 * durationSecond], + [second, 30, 30 * durationSecond], + [minute, 1, durationMinute], + [minute, 5, 5 * durationMinute], + [minute, 15, 15 * durationMinute], + [minute, 30, 30 * durationMinute], + [ hour, 1, durationHour ], + [ hour, 3, 3 * durationHour ], + [ hour, 6, 6 * durationHour ], + [ hour, 12, 12 * durationHour ], + [ day, 1, durationDay ], + [ day, 2, 2 * durationDay ], + [ week, 1, durationWeek ], + [ month, 1, durationMonth ], + [ month, 3, 3 * durationMonth ], + [ year, 1, durationYear ] + ]; + + function ticks(start, stop, count) { + const reverse = stop < start; + if (reverse) [start, stop] = [stop, start]; + const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count); + const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop + return reverse ? ticks.reverse() : ticks; + } + + function tickInterval(start, stop, count) { + const target = Math.abs(stop - start) / count; + const i = bisector(([,, step]) => step).right(tickIntervals, target); + if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count)); + if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1)); + const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; + return t.every(step); + } + + return [ticks, tickInterval]; +} + +const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute); +const [timeTicks, timeTickInterval] = ticker(year, month, sunday, day, hour, minute); + +function localDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); + date.setFullYear(d.y); + return date; + } + return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); +} + +function utcDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); + date.setUTCFullYear(d.y); + return date; + } + return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); +} + +function newDate(y, m, d) { + return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; +} + +function formatLocale(locale) { + var locale_dateTime = locale.dateTime, + locale_date = locale.date, + locale_time = locale.time, + locale_periods = locale.periods, + locale_weekdays = locale.days, + locale_shortWeekdays = locale.shortDays, + locale_months = locale.months, + locale_shortMonths = locale.shortMonths; + + var periodRe = formatRe(locale_periods), + periodLookup = formatLookup(locale_periods), + weekdayRe = formatRe(locale_weekdays), + weekdayLookup = formatLookup(locale_weekdays), + shortWeekdayRe = formatRe(locale_shortWeekdays), + shortWeekdayLookup = formatLookup(locale_shortWeekdays), + monthRe = formatRe(locale_months), + monthLookup = formatLookup(locale_months), + shortMonthRe = formatRe(locale_shortMonths), + shortMonthLookup = formatLookup(locale_shortMonths); + + var formats = { + "a": formatShortWeekday, + "A": formatWeekday, + "b": formatShortMonth, + "B": formatMonth, + "c": null, + "d": formatDayOfMonth, + "e": formatDayOfMonth, + "f": formatMicroseconds, + "g": formatYearISO, + "G": formatFullYearISO, + "H": formatHour24, + "I": formatHour12, + "j": formatDayOfYear, + "L": formatMilliseconds, + "m": formatMonthNumber, + "M": formatMinutes, + "p": formatPeriod, + "q": formatQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatSeconds, + "u": formatWeekdayNumberMonday, + "U": formatWeekNumberSunday, + "V": formatWeekNumberISO, + "w": formatWeekdayNumberSunday, + "W": formatWeekNumberMonday, + "x": null, + "X": null, + "y": formatYear, + "Y": formatFullYear, + "Z": formatZone, + "%": formatLiteralPercent + }; + + var utcFormats = { + "a": formatUTCShortWeekday, + "A": formatUTCWeekday, + "b": formatUTCShortMonth, + "B": formatUTCMonth, + "c": null, + "d": formatUTCDayOfMonth, + "e": formatUTCDayOfMonth, + "f": formatUTCMicroseconds, + "g": formatUTCYearISO, + "G": formatUTCFullYearISO, + "H": formatUTCHour24, + "I": formatUTCHour12, + "j": formatUTCDayOfYear, + "L": formatUTCMilliseconds, + "m": formatUTCMonthNumber, + "M": formatUTCMinutes, + "p": formatUTCPeriod, + "q": formatUTCQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatUTCSeconds, + "u": formatUTCWeekdayNumberMonday, + "U": formatUTCWeekNumberSunday, + "V": formatUTCWeekNumberISO, + "w": formatUTCWeekdayNumberSunday, + "W": formatUTCWeekNumberMonday, + "x": null, + "X": null, + "y": formatUTCYear, + "Y": formatUTCFullYear, + "Z": formatUTCZone, + "%": formatLiteralPercent + }; + + var parses = { + "a": parseShortWeekday, + "A": parseWeekday, + "b": parseShortMonth, + "B": parseMonth, + "c": parseLocaleDateTime, + "d": parseDayOfMonth, + "e": parseDayOfMonth, + "f": parseMicroseconds, + "g": parseYear, + "G": parseFullYear, + "H": parseHour24, + "I": parseHour24, + "j": parseDayOfYear, + "L": parseMilliseconds, + "m": parseMonthNumber, + "M": parseMinutes, + "p": parsePeriod, + "q": parseQuarter, + "Q": parseUnixTimestamp, + "s": parseUnixTimestampSeconds, + "S": parseSeconds, + "u": parseWeekdayNumberMonday, + "U": parseWeekNumberSunday, + "V": parseWeekNumberISO, + "w": parseWeekdayNumberSunday, + "W": parseWeekNumberMonday, + "x": parseLocaleDate, + "X": parseLocaleTime, + "y": parseYear, + "Y": parseFullYear, + "Z": parseZone, + "%": parseLiteralPercent + }; + + // These recursive directive definitions must be deferred. + formats.x = newFormat(locale_date, formats); + formats.X = newFormat(locale_time, formats); + formats.c = newFormat(locale_dateTime, formats); + utcFormats.x = newFormat(locale_date, utcFormats); + utcFormats.X = newFormat(locale_time, utcFormats); + utcFormats.c = newFormat(locale_dateTime, utcFormats); + + function newFormat(specifier, formats) { + return function(date) { + var string = [], + i = -1, + j = 0, + n = specifier.length, + c, + pad, + format; + + if (!(date instanceof Date)) date = new Date(+date); + + while (++i < n) { + if (specifier.charCodeAt(i) === 37) { + string.push(specifier.slice(j, i)); + if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); + else pad = c === "e" ? " " : "0"; + if (format = formats[c]) c = format(date, pad); + string.push(c); + j = i + 1; + } + } + + string.push(specifier.slice(j, i)); + return string.join(""); + }; + } + + function newParse(specifier, Z) { + return function(string) { + var d = newDate(1900, undefined, 1), + i = parseSpecifier(d, specifier, string += "", 0), + week, day$1; + if (i != string.length) return null; + + // If a UNIX timestamp is specified, return it. + if ("Q" in d) return new Date(d.Q); + if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); + + // If this is utcParse, never use the local timezone. + if (Z && !("Z" in d)) d.Z = 0; + + // The am-pm flag is 0 for AM, and 1 for PM. + if ("p" in d) d.H = d.H % 12 + d.p * 12; + + // If the month was not specified, inherit from the quarter. + if (d.m === undefined) d.m = "q" in d ? d.q : 0; + + // Convert day-of-week and week-of-year to day-of-year. + if ("V" in d) { + if (d.V < 1 || d.V > 53) return null; + if (!("w" in d)) d.w = 1; + if ("Z" in d) { + week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay(); + week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week); + week = utcDay.offset(week, (d.V - 1) * 7); + d.y = week.getUTCFullYear(); + d.m = week.getUTCMonth(); + d.d = week.getUTCDate() + (d.w + 6) % 7; + } else { + week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay(); + week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week); + week = day.offset(week, (d.V - 1) * 7); + d.y = week.getFullYear(); + d.m = week.getMonth(); + d.d = week.getDate() + (d.w + 6) % 7; + } + } else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; + day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); + d.m = 0; + d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7; + } + + // If a time zone is specified, all fields are interpreted as UTC and then + // offset according to the specified time zone. + if ("Z" in d) { + d.H += d.Z / 100 | 0; + d.M += d.Z % 100; + return utcDate(d); + } + + // Otherwise, all fields are in local time. + return localDate(d); + }; + } + + function parseSpecifier(d, specifier, string, j) { + var i = 0, + n = specifier.length, + m = string.length, + c, + parse; + + while (i < n) { + if (j >= m) return -1; + c = specifier.charCodeAt(i++); + if (c === 37) { + c = specifier.charAt(i++); + parse = parses[c in pads ? specifier.charAt(i++) : c]; + if (!parse || ((j = parse(d, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + + return j; + } + + function parsePeriod(d, string, i) { + var n = periodRe.exec(string.slice(i)); + return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseShortWeekday(d, string, i) { + var n = shortWeekdayRe.exec(string.slice(i)); + return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseWeekday(d, string, i) { + var n = weekdayRe.exec(string.slice(i)); + return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseShortMonth(d, string, i) { + var n = shortMonthRe.exec(string.slice(i)); + return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseMonth(d, string, i) { + var n = monthRe.exec(string.slice(i)); + return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseLocaleDateTime(d, string, i) { + return parseSpecifier(d, locale_dateTime, string, i); + } + + function parseLocaleDate(d, string, i) { + return parseSpecifier(d, locale_date, string, i); + } + + function parseLocaleTime(d, string, i) { + return parseSpecifier(d, locale_time, string, i); + } + + function formatShortWeekday(d) { + return locale_shortWeekdays[d.getDay()]; + } + + function formatWeekday(d) { + return locale_weekdays[d.getDay()]; + } + + function formatShortMonth(d) { + return locale_shortMonths[d.getMonth()]; + } + + function formatMonth(d) { + return locale_months[d.getMonth()]; + } + + function formatPeriod(d) { + return locale_periods[+(d.getHours() >= 12)]; + } + + function formatQuarter(d) { + return 1 + ~~(d.getMonth() / 3); + } + + function formatUTCShortWeekday(d) { + return locale_shortWeekdays[d.getUTCDay()]; + } + + function formatUTCWeekday(d) { + return locale_weekdays[d.getUTCDay()]; + } + + function formatUTCShortMonth(d) { + return locale_shortMonths[d.getUTCMonth()]; + } + + function formatUTCMonth(d) { + return locale_months[d.getUTCMonth()]; + } + + function formatUTCPeriod(d) { + return locale_periods[+(d.getUTCHours() >= 12)]; + } + + function formatUTCQuarter(d) { + return 1 + ~~(d.getUTCMonth() / 3); + } + + return { + format: function(specifier) { + var f = newFormat(specifier += "", formats); + f.toString = function() { return specifier; }; + return f; + }, + parse: function(specifier) { + var p = newParse(specifier += "", false); + p.toString = function() { return specifier; }; + return p; + }, + utcFormat: function(specifier) { + var f = newFormat(specifier += "", utcFormats); + f.toString = function() { return specifier; }; + return f; + }, + utcParse: function(specifier) { + var p = newParse(specifier += "", true); + p.toString = function() { return specifier; }; + return p; + } + }; +} + +var pads = {"-": "", "_": " ", "0": "0"}, + numberRe = /^\s*\d+/, // note: ignores next directive + percentRe = /^%/, + requoteRe = /[\\^$*+?|[\]().{}]/g; + +function pad(value, fill, width) { + var sign = value < 0 ? "-" : "", + string = (sign ? -value : value) + "", + length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} + +function requote(s) { + return s.replace(requoteRe, "\\$&"); +} + +function formatRe(names) { + return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); +} + +function formatLookup(names) { + return new Map(names.map((name, i) => [name.toLowerCase(), i])); +} + +function parseWeekdayNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.w = +n[0], i + n[0].length) : -1; +} + +function parseWeekdayNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.u = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.U = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberISO(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.V = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.W = +n[0], i + n[0].length) : -1; +} + +function parseFullYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 4)); + return n ? (d.y = +n[0], i + n[0].length) : -1; +} + +function parseYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; +} + +function parseZone(d, string, i) { + var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); + return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +} + +function parseQuarter(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; +} + +function parseMonthNumber(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +} + +function parseDayOfMonth(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.d = +n[0], i + n[0].length) : -1; +} + +function parseDayOfYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; +} + +function parseHour24(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.H = +n[0], i + n[0].length) : -1; +} + +function parseMinutes(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.M = +n[0], i + n[0].length) : -1; +} + +function parseSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.S = +n[0], i + n[0].length) : -1; +} + +function parseMilliseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.L = +n[0], i + n[0].length) : -1; +} + +function parseMicroseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 6)); + return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; +} + +function parseLiteralPercent(d, string, i) { + var n = percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} + +function parseUnixTimestamp(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.Q = +n[0], i + n[0].length) : -1; +} + +function parseUnixTimestampSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.s = +n[0], i + n[0].length) : -1; +} + +function formatDayOfMonth(d, p) { + return pad(d.getDate(), p, 2); +} + +function formatHour24(d, p) { + return pad(d.getHours(), p, 2); +} + +function formatHour12(d, p) { + return pad(d.getHours() % 12 || 12, p, 2); +} + +function formatDayOfYear(d, p) { + return pad(1 + day.count(year(d), d), p, 3); +} + +function formatMilliseconds(d, p) { + return pad(d.getMilliseconds(), p, 3); +} + +function formatMicroseconds(d, p) { + return formatMilliseconds(d, p) + "000"; +} + +function formatMonthNumber(d, p) { + return pad(d.getMonth() + 1, p, 2); +} + +function formatMinutes(d, p) { + return pad(d.getMinutes(), p, 2); +} + +function formatSeconds(d, p) { + return pad(d.getSeconds(), p, 2); +} + +function formatWeekdayNumberMonday(d) { + var day = d.getDay(); + return day === 0 ? 7 : day; +} + +function formatWeekNumberSunday(d, p) { + return pad(sunday.count(year(d) - 1, d), p, 2); +} + +function dISO(d) { + var day = d.getDay(); + return (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); +} + +function formatWeekNumberISO(d, p) { + d = dISO(d); + return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2); +} + +function formatWeekdayNumberSunday(d) { + return d.getDay(); +} + +function formatWeekNumberMonday(d, p) { + return pad(monday.count(year(d) - 1, d), p, 2); +} + +function formatYear(d, p) { + return pad(d.getFullYear() % 100, p, 2); +} + +function formatYearISO(d, p) { + d = dISO(d); + return pad(d.getFullYear() % 100, p, 2); +} + +function formatFullYear(d, p) { + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatFullYearISO(d, p) { + var day = d.getDay(); + d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatZone(d) { + var z = d.getTimezoneOffset(); + return (z > 0 ? "-" : (z *= -1, "+")) + + pad(z / 60 | 0, "0", 2) + + pad(z % 60, "0", 2); +} + +function formatUTCDayOfMonth(d, p) { + return pad(d.getUTCDate(), p, 2); +} + +function formatUTCHour24(d, p) { + return pad(d.getUTCHours(), p, 2); +} + +function formatUTCHour12(d, p) { + return pad(d.getUTCHours() % 12 || 12, p, 2); +} + +function formatUTCDayOfYear(d, p) { + return pad(1 + utcDay.count(utcYear(d), d), p, 3); +} + +function formatUTCMilliseconds(d, p) { + return pad(d.getUTCMilliseconds(), p, 3); +} + +function formatUTCMicroseconds(d, p) { + return formatUTCMilliseconds(d, p) + "000"; +} + +function formatUTCMonthNumber(d, p) { + return pad(d.getUTCMonth() + 1, p, 2); +} + +function formatUTCMinutes(d, p) { + return pad(d.getUTCMinutes(), p, 2); +} + +function formatUTCSeconds(d, p) { + return pad(d.getUTCSeconds(), p, 2); +} + +function formatUTCWeekdayNumberMonday(d) { + var dow = d.getUTCDay(); + return dow === 0 ? 7 : dow; +} + +function formatUTCWeekNumberSunday(d, p) { + return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); +} + +function UTCdISO(d) { + var day = d.getUTCDay(); + return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); +} + +function formatUTCWeekNumberISO(d, p) { + d = UTCdISO(d); + return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); +} + +function formatUTCWeekdayNumberSunday(d) { + return d.getUTCDay(); +} + +function formatUTCWeekNumberMonday(d, p) { + return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); +} + +function formatUTCYear(d, p) { + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCYearISO(d, p) { + d = UTCdISO(d); + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCFullYear(d, p) { + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCFullYearISO(d, p) { + var day = d.getUTCDay(); + d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCZone() { + return "+0000"; +} + +function formatLiteralPercent() { + return "%"; +} + +function formatUnixTimestamp(d) { + return +d; +} + +function formatUnixTimestampSeconds(d) { + return Math.floor(+d / 1000); +} + +var locale; +exports.timeFormat = void 0; +exports.timeParse = void 0; +exports.utcFormat = void 0; +exports.utcParse = void 0; + +defaultLocale({ + dateTime: "%x, %X", + date: "%-m/%-d/%Y", + time: "%-I:%M:%S %p", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); + +function defaultLocale(definition) { + locale = formatLocale(definition); + exports.timeFormat = locale.format; + exports.timeParse = locale.parse; + exports.utcFormat = locale.utcFormat; + exports.utcParse = locale.utcParse; + return locale; +} + +var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; + +function formatIsoNative(date) { + return date.toISOString(); +} + +var formatIso = Date.prototype.toISOString + ? formatIsoNative + : exports.utcFormat(isoSpecifier); + +function parseIsoNative(string) { + var date = new Date(string); + return isNaN(date) ? null : date; +} + +var parseIso = +new Date("2000-01-01T00:00:00.000Z") + ? parseIsoNative + : exports.utcParse(isoSpecifier); + +function date(t) { + return new Date(t); +} + +function number(t) { + return t instanceof Date ? +t : +new Date(+t); +} + +function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { + var scale = continuous(), + invert = scale.invert, + domain = scale.domain; + + var formatMillisecond = format(".%L"), + formatSecond = format(":%S"), + formatMinute = format("%I:%M"), + formatHour = format("%I %p"), + formatDay = format("%a %d"), + formatWeek = format("%b %d"), + formatMonth = format("%B"), + formatYear = format("%Y"); + + function tickFormat(date) { + return (second(date) < date ? formatMillisecond + : minute(date) < date ? formatSecond + : hour(date) < date ? formatMinute + : day(date) < date ? formatHour + : month(date) < date ? (week(date) < date ? formatDay : formatWeek) + : year(date) < date ? formatMonth + : formatYear)(date); + } + + scale.invert = function(y) { + return new Date(invert(y)); + }; + + scale.domain = function(_) { + return arguments.length ? domain(Array.from(_, number)) : domain().map(date); + }; + + scale.ticks = function(interval) { + var d = domain(); + return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); + }; + + scale.tickFormat = function(count, specifier) { + return specifier == null ? tickFormat : format(specifier); + }; + + scale.nice = function(interval) { + var d = domain(); + if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); + return interval ? domain(nice(d, interval)) : scale; + }; + + scale.copy = function() { + return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); + }; + + return scale; +} + +function time() { + return initRange.apply(calendar(timeTicks, timeTickInterval, year, month, sunday, day, hour, minute, second, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments); +} + +function utcTime() { + return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments); +} + +function transformer$1() { + var x0 = 0, + x1 = 1, + t0, + t1, + k10, + transform, + interpolator = identity$3, + clamp = false, + unknown; + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x)); + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1]; + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + function range(interpolate) { + return function(_) { + var r0, r1; + return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)]; + }; + } + + scale.range = range(interpolate$2); + + scale.rangeRound = range(interpolateRound); + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0); + return scale; + }; +} + +function copy(source, target) { + return target + .domain(source.domain()) + .interpolator(source.interpolator()) + .clamp(source.clamp()) + .unknown(source.unknown()); +} + +function sequential() { + var scale = linearish(transformer$1()(identity$3)); + + scale.copy = function() { + return copy(scale, sequential()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialLog() { + var scale = loggish(transformer$1()).domain([1, 10]); + + scale.copy = function() { + return copy(scale, sequentialLog()).base(scale.base()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialSymlog() { + var scale = symlogish(transformer$1()); + + scale.copy = function() { + return copy(scale, sequentialSymlog()).constant(scale.constant()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialPow() { + var scale = powish(transformer$1()); + + scale.copy = function() { + return copy(scale, sequentialPow()).exponent(scale.exponent()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialSqrt() { + return sequentialPow.apply(null, arguments).exponent(0.5); +} + +function sequentialQuantile() { + var domain = [], + interpolator = identity$3; + + function scale(x) { + if (x != null && !isNaN(x = +x)) return interpolator((bisectRight(domain, x, 1) - 1) / (domain.length - 1)); + } + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort(ascending$3); + return scale; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + scale.range = function() { + return domain.map((d, i) => interpolator(i / (domain.length - 1))); + }; + + scale.quantiles = function(n) { + return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n)); + }; + + scale.copy = function() { + return sequentialQuantile(interpolator).domain(domain); + }; + + return initInterpolator.apply(scale, arguments); +} + +function transformer() { + var x0 = 0, + x1 = 0.5, + x2 = 1, + s = 1, + t0, + t1, + t2, + k10, + k21, + interpolator = identity$3, + transform, + clamp = false, + unknown; + + function scale(x) { + return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x)); + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2]; + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + function range(interpolate) { + return function(_) { + var r0, r1, r2; + return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)]; + }; + } + + scale.range = range(interpolate$2); + + scale.rangeRound = range(interpolateRound); + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1; + return scale; + }; +} + +function diverging$1() { + var scale = linearish(transformer()(identity$3)); + + scale.copy = function() { + return copy(scale, diverging$1()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingLog() { + var scale = loggish(transformer()).domain([0.1, 1, 10]); + + scale.copy = function() { + return copy(scale, divergingLog()).base(scale.base()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingSymlog() { + var scale = symlogish(transformer()); + + scale.copy = function() { + return copy(scale, divergingSymlog()).constant(scale.constant()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingPow() { + var scale = powish(transformer()); + + scale.copy = function() { + return copy(scale, divergingPow()).exponent(scale.exponent()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingSqrt() { + return divergingPow.apply(null, arguments).exponent(0.5); +} + +function colors(specifier) { + var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; + while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); + return colors; +} + +var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"); + +var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"); + +var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"); + +var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"); + +var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"); + +var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"); + +var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"); + +var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"); + +var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"); + +var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"); + +var ramp$1 = scheme => rgbBasis(scheme[scheme.length - 1]); + +var scheme$q = new Array(3).concat( + "d8b365f5f5f55ab4ac", + "a6611adfc27d80cdc1018571", + "a6611adfc27df5f5f580cdc1018571", + "8c510ad8b365f6e8c3c7eae55ab4ac01665e", + "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", + "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", + "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", + "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", + "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30" +).map(colors); + +var BrBG = ramp$1(scheme$q); + +var scheme$p = new Array(3).concat( + "af8dc3f7f7f77fbf7b", + "7b3294c2a5cfa6dba0008837", + "7b3294c2a5cff7f7f7a6dba0008837", + "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", + "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", + "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", + "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", + "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", + "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b" +).map(colors); + +var PRGn = ramp$1(scheme$p); + +var scheme$o = new Array(3).concat( + "e9a3c9f7f7f7a1d76a", + "d01c8bf1b6dab8e1864dac26", + "d01c8bf1b6daf7f7f7b8e1864dac26", + "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", + "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", + "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", + "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", + "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", + "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419" +).map(colors); + +var PiYG = ramp$1(scheme$o); + +var scheme$n = new Array(3).concat( + "998ec3f7f7f7f1a340", + "5e3c99b2abd2fdb863e66101", + "5e3c99b2abd2f7f7f7fdb863e66101", + "542788998ec3d8daebfee0b6f1a340b35806", + "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", + "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", + "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", + "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", + "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08" +).map(colors); + +var PuOr = ramp$1(scheme$n); + +var scheme$m = new Array(3).concat( + "ef8a62f7f7f767a9cf", + "ca0020f4a58292c5de0571b0", + "ca0020f4a582f7f7f792c5de0571b0", + "b2182bef8a62fddbc7d1e5f067a9cf2166ac", + "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", + "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", + "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", + "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", + "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061" +).map(colors); + +var RdBu = ramp$1(scheme$m); + +var scheme$l = new Array(3).concat( + "ef8a62ffffff999999", + "ca0020f4a582bababa404040", + "ca0020f4a582ffffffbababa404040", + "b2182bef8a62fddbc7e0e0e09999994d4d4d", + "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", + "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", + "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", + "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", + "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a" +).map(colors); + +var RdGy = ramp$1(scheme$l); + +var scheme$k = new Array(3).concat( + "fc8d59ffffbf91bfdb", + "d7191cfdae61abd9e92c7bb6", + "d7191cfdae61ffffbfabd9e92c7bb6", + "d73027fc8d59fee090e0f3f891bfdb4575b4", + "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", + "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", + "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", + "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", + "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695" +).map(colors); + +var RdYlBu = ramp$1(scheme$k); + +var scheme$j = new Array(3).concat( + "fc8d59ffffbf91cf60", + "d7191cfdae61a6d96a1a9641", + "d7191cfdae61ffffbfa6d96a1a9641", + "d73027fc8d59fee08bd9ef8b91cf601a9850", + "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", + "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", + "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", + "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", + "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837" +).map(colors); + +var RdYlGn = ramp$1(scheme$j); + +var scheme$i = new Array(3).concat( + "fc8d59ffffbf99d594", + "d7191cfdae61abdda42b83ba", + "d7191cfdae61ffffbfabdda42b83ba", + "d53e4ffc8d59fee08be6f59899d5943288bd", + "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", + "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", + "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", + "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", + "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2" +).map(colors); + +var Spectral = ramp$1(scheme$i); + +var scheme$h = new Array(3).concat( + "e5f5f999d8c92ca25f", + "edf8fbb2e2e266c2a4238b45", + "edf8fbb2e2e266c2a42ca25f006d2c", + "edf8fbccece699d8c966c2a42ca25f006d2c", + "edf8fbccece699d8c966c2a441ae76238b45005824", + "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", + "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b" +).map(colors); + +var BuGn = ramp$1(scheme$h); + +var scheme$g = new Array(3).concat( + "e0ecf49ebcda8856a7", + "edf8fbb3cde38c96c688419d", + "edf8fbb3cde38c96c68856a7810f7c", + "edf8fbbfd3e69ebcda8c96c68856a7810f7c", + "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", + "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", + "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b" +).map(colors); + +var BuPu = ramp$1(scheme$g); + +var scheme$f = new Array(3).concat( + "e0f3dba8ddb543a2ca", + "f0f9e8bae4bc7bccc42b8cbe", + "f0f9e8bae4bc7bccc443a2ca0868ac", + "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", + "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", + "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", + "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081" +).map(colors); + +var GnBu = ramp$1(scheme$f); + +var scheme$e = new Array(3).concat( + "fee8c8fdbb84e34a33", + "fef0d9fdcc8afc8d59d7301f", + "fef0d9fdcc8afc8d59e34a33b30000", + "fef0d9fdd49efdbb84fc8d59e34a33b30000", + "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", + "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", + "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000" +).map(colors); + +var OrRd = ramp$1(scheme$e); + +var scheme$d = new Array(3).concat( + "ece2f0a6bddb1c9099", + "f6eff7bdc9e167a9cf02818a", + "f6eff7bdc9e167a9cf1c9099016c59", + "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", + "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", + "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", + "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636" +).map(colors); + +var PuBuGn = ramp$1(scheme$d); + +var scheme$c = new Array(3).concat( + "ece7f2a6bddb2b8cbe", + "f1eef6bdc9e174a9cf0570b0", + "f1eef6bdc9e174a9cf2b8cbe045a8d", + "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", + "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", + "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", + "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858" +).map(colors); + +var PuBu = ramp$1(scheme$c); + +var scheme$b = new Array(3).concat( + "e7e1efc994c7dd1c77", + "f1eef6d7b5d8df65b0ce1256", + "f1eef6d7b5d8df65b0dd1c77980043", + "f1eef6d4b9dac994c7df65b0dd1c77980043", + "f1eef6d4b9dac994c7df65b0e7298ace125691003f", + "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", + "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f" +).map(colors); + +var PuRd = ramp$1(scheme$b); + +var scheme$a = new Array(3).concat( + "fde0ddfa9fb5c51b8a", + "feebe2fbb4b9f768a1ae017e", + "feebe2fbb4b9f768a1c51b8a7a0177", + "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", + "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", + "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", + "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a" +).map(colors); + +var RdPu = ramp$1(scheme$a); + +var scheme$9 = new Array(3).concat( + "edf8b17fcdbb2c7fb8", + "ffffcca1dab441b6c4225ea8", + "ffffcca1dab441b6c42c7fb8253494", + "ffffccc7e9b47fcdbb41b6c42c7fb8253494", + "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", + "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", + "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58" +).map(colors); + +var YlGnBu = ramp$1(scheme$9); + +var scheme$8 = new Array(3).concat( + "f7fcb9addd8e31a354", + "ffffccc2e69978c679238443", + "ffffccc2e69978c67931a354006837", + "ffffccd9f0a3addd8e78c67931a354006837", + "ffffccd9f0a3addd8e78c67941ab5d238443005a32", + "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", + "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529" +).map(colors); + +var YlGn = ramp$1(scheme$8); + +var scheme$7 = new Array(3).concat( + "fff7bcfec44fd95f0e", + "ffffd4fed98efe9929cc4c02", + "ffffd4fed98efe9929d95f0e993404", + "ffffd4fee391fec44ffe9929d95f0e993404", + "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", + "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", + "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506" +).map(colors); + +var YlOrBr = ramp$1(scheme$7); + +var scheme$6 = new Array(3).concat( + "ffeda0feb24cf03b20", + "ffffb2fecc5cfd8d3ce31a1c", + "ffffb2fecc5cfd8d3cf03b20bd0026", + "ffffb2fed976feb24cfd8d3cf03b20bd0026", + "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", + "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", + "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026" +).map(colors); + +var YlOrRd = ramp$1(scheme$6); + +var scheme$5 = new Array(3).concat( + "deebf79ecae13182bd", + "eff3ffbdd7e76baed62171b5", + "eff3ffbdd7e76baed63182bd08519c", + "eff3ffc6dbef9ecae16baed63182bd08519c", + "eff3ffc6dbef9ecae16baed64292c62171b5084594", + "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", + "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b" +).map(colors); + +var Blues = ramp$1(scheme$5); + +var scheme$4 = new Array(3).concat( + "e5f5e0a1d99b31a354", + "edf8e9bae4b374c476238b45", + "edf8e9bae4b374c47631a354006d2c", + "edf8e9c7e9c0a1d99b74c47631a354006d2c", + "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", + "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", + "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b" +).map(colors); + +var Greens = ramp$1(scheme$4); + +var scheme$3 = new Array(3).concat( + "f0f0f0bdbdbd636363", + "f7f7f7cccccc969696525252", + "f7f7f7cccccc969696636363252525", + "f7f7f7d9d9d9bdbdbd969696636363252525", + "f7f7f7d9d9d9bdbdbd969696737373525252252525", + "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", + "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000" +).map(colors); + +var Greys = ramp$1(scheme$3); + +var scheme$2 = new Array(3).concat( + "efedf5bcbddc756bb1", + "f2f0f7cbc9e29e9ac86a51a3", + "f2f0f7cbc9e29e9ac8756bb154278f", + "f2f0f7dadaebbcbddc9e9ac8756bb154278f", + "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", + "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", + "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d" +).map(colors); + +var Purples = ramp$1(scheme$2); + +var scheme$1 = new Array(3).concat( + "fee0d2fc9272de2d26", + "fee5d9fcae91fb6a4acb181d", + "fee5d9fcae91fb6a4ade2d26a50f15", + "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", + "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", + "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", + "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d" +).map(colors); + +var Reds = ramp$1(scheme$1); + +var scheme = new Array(3).concat( + "fee6cefdae6be6550d", + "feeddefdbe85fd8d3cd94701", + "feeddefdbe85fd8d3ce6550da63603", + "feeddefdd0a2fdae6bfd8d3ce6550da63603", + "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", + "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", + "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704" +).map(colors); + +var Oranges = ramp$1(scheme); + +function cividis(t) { + t = Math.max(0, Math.min(1, t)); + return "rgb(" + + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", " + + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", " + + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67))))))) + + ")"; +} + +var cubehelix = cubehelixLong(cubehelix$3(300, 0.5, 0.0), cubehelix$3(-240, 0.5, 1.0)); + +var warm = cubehelixLong(cubehelix$3(-100, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); + +var cool = cubehelixLong(cubehelix$3(260, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); + +var c$2 = cubehelix$3(); + +function rainbow(t) { + if (t < 0 || t > 1) t -= Math.floor(t); + var ts = Math.abs(t - 0.5); + c$2.h = 360 * t - 100; + c$2.s = 1.5 - 1.5 * ts; + c$2.l = 0.8 - 0.9 * ts; + return c$2 + ""; +} + +var c$1 = rgb(), + pi_1_3 = Math.PI / 3, + pi_2_3 = Math.PI * 2 / 3; + +function sinebow(t) { + var x; + t = (0.5 - t) * Math.PI; + c$1.r = 255 * (x = Math.sin(t)) * x; + c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x; + c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x; + return c$1 + ""; +} + +function turbo(t) { + t = Math.max(0, Math.min(1, t)); + return "rgb(" + + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", " + + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", " + + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66))))))) + + ")"; +} + +function ramp(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; + }; +} + +var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")); + +var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")); + +var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")); + +var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")); + +function constant$1(x) { + return function constant() { + return x; + }; +} + +var abs = Math.abs; +var atan2 = Math.atan2; +var cos = Math.cos; +var max = Math.max; +var min = Math.min; +var sin = Math.sin; +var sqrt = Math.sqrt; + +var epsilon = 1e-12; +var pi = Math.PI; +var halfPi = pi / 2; +var tau = 2 * pi; + +function acos(x) { + return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); +} + +function asin(x) { + return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +} + +function arcInnerRadius(d) { + return d.innerRadius; +} + +function arcOuterRadius(d) { + return d.outerRadius; +} + +function arcStartAngle(d) { + return d.startAngle; +} + +function arcEndAngle(d) { + return d.endAngle; +} + +function arcPadAngle(d) { + return d && d.padAngle; // Note: optional! +} + +function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { + var x10 = x1 - x0, y10 = y1 - y0, + x32 = x3 - x2, y32 = y3 - y2, + t = y32 * x10 - x32 * y10; + if (t * t < epsilon) return; + t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; + return [x0 + t * x10, y0 + t * y10]; +} + +// Compute perpendicular offset line of length rc. +// http://mathworld.wolfram.com/Circle-LineIntersection.html +function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { + var x01 = x0 - x1, + y01 = y0 - y1, + lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), + ox = lo * y01, + oy = -lo * x01, + x11 = x0 + ox, + y11 = y0 + oy, + x10 = x1 + ox, + y10 = y1 + oy, + x00 = (x11 + x10) / 2, + y00 = (y11 + y10) / 2, + dx = x10 - x11, + dy = y10 - y11, + d2 = dx * dx + dy * dy, + r = r1 - rc, + D = x11 * y10 - x10 * y11, + d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), + cx0 = (D * dy - dx * d) / d2, + cy0 = (-D * dx - dy * d) / d2, + cx1 = (D * dy + dx * d) / d2, + cy1 = (-D * dx + dy * d) / d2, + dx0 = cx0 - x00, + dy0 = cy0 - y00, + dx1 = cx1 - x00, + dy1 = cy1 - y00; + + // Pick the closer of the two intersection points. + // TODO Is there a faster way to determine which intersection to use? + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + + return { + cx: cx0, + cy: cy0, + x01: -ox, + y01: -oy, + x11: cx0 * (r1 / r - 1), + y11: cy0 * (r1 / r - 1) + }; +} + +function arc() { + var innerRadius = arcInnerRadius, + outerRadius = arcOuterRadius, + cornerRadius = constant$1(0), + padRadius = null, + startAngle = arcStartAngle, + endAngle = arcEndAngle, + padAngle = arcPadAngle, + context = null; + + function arc() { + var buffer, + r, + r0 = +innerRadius.apply(this, arguments), + r1 = +outerRadius.apply(this, arguments), + a0 = startAngle.apply(this, arguments) - halfPi, + a1 = endAngle.apply(this, arguments) - halfPi, + da = abs(a1 - a0), + cw = a1 > a0; + + if (!context) context = buffer = path(); + + // Ensure that the outer radius is always larger than the inner radius. + if (r1 < r0) r = r1, r1 = r0, r0 = r; + + // Is it a point? + if (!(r1 > epsilon)) context.moveTo(0, 0); + + // Or is it a circle or annulus? + else if (da > tau - epsilon) { + context.moveTo(r1 * cos(a0), r1 * sin(a0)); + context.arc(0, 0, r1, a0, a1, !cw); + if (r0 > epsilon) { + context.moveTo(r0 * cos(a1), r0 * sin(a1)); + context.arc(0, 0, r0, a1, a0, cw); + } + } + + // Or is it a circular or annular sector? + else { + var a01 = a0, + a11 = a1, + a00 = a0, + a10 = a1, + da0 = da, + da1 = da, + ap = padAngle.apply(this, arguments) / 2, + rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), + rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), + rc0 = rc, + rc1 = rc, + t0, + t1; + + // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. + if (rp > epsilon) { + var p0 = asin(rp / r0 * sin(ap)), + p1 = asin(rp / r1 * sin(ap)); + if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; + else da0 = 0, a00 = a10 = (a0 + a1) / 2; + if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; + else da1 = 0, a01 = a11 = (a0 + a1) / 2; + } + + var x01 = r1 * cos(a01), + y01 = r1 * sin(a01), + x10 = r0 * cos(a10), + y10 = r0 * sin(a10); + + // Apply rounded corners? + if (rc > epsilon) { + var x11 = r1 * cos(a11), + y11 = r1 * sin(a11), + x00 = r0 * cos(a00), + y00 = r0 * sin(a00), + oc; + + // Restrict the corner radius according to the sector angle. + if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) { + var ax = x01 - oc[0], + ay = y01 - oc[1], + bx = x11 - oc[0], + by = y11 - oc[1], + kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), + lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = min(rc, (r0 - lc) / (kc - 1)); + rc1 = min(rc, (r1 - lc) / (kc + 1)); + } + } + + // Is the sector collapsed to a line? + if (!(da1 > epsilon)) context.moveTo(x01, y01); + + // Does the sector’s outer ring have rounded corners? + else if (rc1 > epsilon) { + t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); + t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + + context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); + context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the outer ring just a circular arc? + else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); + + // Is there no inner ring, and it’s a circular sector? + // Or perhaps it’s an annular sector collapsed due to padding? + if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); + + // Does the sector’s inner ring (or point) have rounded corners? + else if (rc0 > epsilon) { + t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); + t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); + + context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); + context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the inner ring just a circular arc? + else context.arc(0, 0, r0, a10, a00, cw); + } + + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, + a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; + return [cos(a) * r, sin(a) * r]; + }; + + arc.innerRadius = function(_) { + return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : innerRadius; + }; + + arc.outerRadius = function(_) { + return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : outerRadius; + }; + + arc.cornerRadius = function(_) { + return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : cornerRadius; + }; + + arc.padRadius = function(_) { + return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), arc) : padRadius; + }; + + arc.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : startAngle; + }; + + arc.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : endAngle; + }; + + arc.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : padAngle; + }; + + arc.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), arc) : context; + }; + + return arc; +} + +var slice = Array.prototype.slice; + +function array(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function Linear(context) { + this._context = context; +} + +Linear.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // proceed + default: this._context.lineTo(x, y); break; + } + } +}; + +function curveLinear(context) { + return new Linear(context); +} + +function x(p) { + return p[0]; +} + +function y(p) { + return p[1]; +} + +function line(x$1, y$1) { + var defined = constant$1(true), + context = null, + curve = curveLinear, + output = null; + + x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant$1(x$1); + y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant$1(y$1); + + function line(data) { + var i, + n = (data = array(data)).length, + d, + defined0 = false, + buffer; + + if (context == null) output = curve(buffer = path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) output.lineStart(); + else output.lineEnd(); + } + if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); + } + + if (buffer) return output = null, buffer + "" || null; + } + + line.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), line) : x$1; + }; + + line.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), line) : y$1; + }; + + line.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), line) : defined; + }; + + line.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; + }; + + line.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; + }; + + return line; +} + +function area(x0, y0, y1) { + var x1 = null, + defined = constant$1(true), + context = null, + curve = curveLinear, + output = null; + + x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant$1(+x0); + y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant$1(0) : constant$1(+y0); + y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant$1(+y1); + + function area(data) { + var i, + j, + k, + n = (data = array(data)).length, + d, + defined0 = false, + buffer, + x0z = new Array(n), + y0z = new Array(n); + + if (context == null) output = curve(buffer = path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) { + j = i; + output.areaStart(); + output.lineStart(); + } else { + output.lineEnd(); + output.lineStart(); + for (k = i - 1; k >= j; --k) { + output.point(x0z[k], y0z[k]); + } + output.lineEnd(); + output.areaEnd(); + } + } + if (defined0) { + x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); + output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); + } + } + + if (buffer) return output = null, buffer + "" || null; + } + + function arealine() { + return line().defined(defined).curve(curve).context(context); + } + + area.x = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), x1 = null, area) : x0; + }; + + area.x0 = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), area) : x0; + }; + + area.x1 = function(_) { + return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : x1; + }; + + area.y = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), y1 = null, area) : y0; + }; + + area.y0 = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), area) : y0; + }; + + area.y1 = function(_) { + return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : y1; + }; + + area.lineX0 = + area.lineY0 = function() { + return arealine().x(x0).y(y0); + }; + + area.lineY1 = function() { + return arealine().x(x0).y(y1); + }; + + area.lineX1 = function() { + return arealine().x(x1).y(y0); + }; + + area.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), area) : defined; + }; + + area.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; + }; + + area.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; + }; + + return area; +} + +function descending$1(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function identity$1(d) { + return d; +} + +function pie() { + var value = identity$1, + sortValues = descending$1, + sort = null, + startAngle = constant$1(0), + endAngle = constant$1(tau), + padAngle = constant$1(0); + + function pie(data) { + var i, + n = (data = array(data)).length, + j, + k, + sum = 0, + index = new Array(n), + arcs = new Array(n), + a0 = +startAngle.apply(this, arguments), + da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), + a1, + p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), + pa = p * (da < 0 ? -1 : 1), + v; + + for (i = 0; i < n; ++i) { + if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { + sum += v; + } + } + + // Optionally sort the arcs by previously-computed values or by data. + if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); + else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); + + // Compute the arcs! They are stored in the original data's order. + for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { + j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { + data: data[j], + index: i, + value: v, + startAngle: a0, + endAngle: a1, + padAngle: p + }; + } + + return arcs; + } + + pie.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), pie) : value; + }; + + pie.sortValues = function(_) { + return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; + }; + + pie.sort = function(_) { + return arguments.length ? (sort = _, sortValues = null, pie) : sort; + }; + + pie.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : startAngle; + }; + + pie.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : endAngle; + }; + + pie.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : padAngle; + }; + + return pie; +} + +var curveRadialLinear = curveRadial$1(curveLinear); + +function Radial(curve) { + this._curve = curve; +} + +Radial.prototype = { + areaStart: function() { + this._curve.areaStart(); + }, + areaEnd: function() { + this._curve.areaEnd(); + }, + lineStart: function() { + this._curve.lineStart(); + }, + lineEnd: function() { + this._curve.lineEnd(); + }, + point: function(a, r) { + this._curve.point(r * Math.sin(a), r * -Math.cos(a)); + } +}; + +function curveRadial$1(curve) { + + function radial(context) { + return new Radial(curve(context)); + } + + radial._curve = curve; + + return radial; +} + +function lineRadial(l) { + var c = l.curve; + + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + + l.curve = function(_) { + return arguments.length ? c(curveRadial$1(_)) : c()._curve; + }; + + return l; +} + +function lineRadial$1() { + return lineRadial(line().curve(curveRadialLinear)); +} + +function areaRadial() { + var a = area().curve(curveRadialLinear), + c = a.curve, + x0 = a.lineX0, + x1 = a.lineX1, + y0 = a.lineY0, + y1 = a.lineY1; + + a.angle = a.x, delete a.x; + a.startAngle = a.x0, delete a.x0; + a.endAngle = a.x1, delete a.x1; + a.radius = a.y, delete a.y; + a.innerRadius = a.y0, delete a.y0; + a.outerRadius = a.y1, delete a.y1; + a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; + a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; + a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; + a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; + + a.curve = function(_) { + return arguments.length ? c(curveRadial$1(_)) : c()._curve; + }; + + return a; +} + +function pointRadial(x, y) { + return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; +} + +function linkSource(d) { + return d.source; +} + +function linkTarget(d) { + return d.target; +} + +function link(curve) { + var source = linkSource, + target = linkTarget, + x$1 = x, + y$1 = y, + context = null; + + function link() { + var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); + if (!context) context = buffer = path(); + curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); + if (buffer) return context = null, buffer + "" || null; + } + + link.source = function(_) { + return arguments.length ? (source = _, link) : source; + }; + + link.target = function(_) { + return arguments.length ? (target = _, link) : target; + }; + + link.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), link) : x$1; + }; + + link.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), link) : y$1; + }; + + link.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), link) : context; + }; + + return link; +} + +function curveHorizontal(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); +} + +function curveVertical(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1); +} + +function curveRadial(context, x0, y0, x1, y1) { + var p0 = pointRadial(x0, y0), + p1 = pointRadial(x0, y0 = (y0 + y1) / 2), + p2 = pointRadial(x1, y0), + p3 = pointRadial(x1, y1); + context.moveTo(p0[0], p0[1]); + context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]); +} + +function linkHorizontal() { + return link(curveHorizontal); +} + +function linkVertical() { + return link(curveVertical); +} + +function linkRadial() { + var l = link(curveRadial); + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + return l; +} + +var circle = { + draw: function(context, size) { + var r = Math.sqrt(size / pi); + context.moveTo(r, 0); + context.arc(0, 0, r, 0, tau); + } +}; + +var cross = { + draw: function(context, size) { + var r = Math.sqrt(size / 5) / 2; + context.moveTo(-3 * r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, -3 * r); + context.lineTo(r, -3 * r); + context.lineTo(r, -r); + context.lineTo(3 * r, -r); + context.lineTo(3 * r, r); + context.lineTo(r, r); + context.lineTo(r, 3 * r); + context.lineTo(-r, 3 * r); + context.lineTo(-r, r); + context.lineTo(-3 * r, r); + context.closePath(); + } +}; + +var tan30 = Math.sqrt(1 / 3), + tan30_2 = tan30 * 2; + +var diamond = { + draw: function(context, size) { + var y = Math.sqrt(size / tan30_2), + x = y * tan30; + context.moveTo(0, -y); + context.lineTo(x, 0); + context.lineTo(0, y); + context.lineTo(-x, 0); + context.closePath(); + } +}; + +var ka = 0.89081309152928522810, + kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), + kx = Math.sin(tau / 10) * kr, + ky = -Math.cos(tau / 10) * kr; + +var star = { + draw: function(context, size) { + var r = Math.sqrt(size * ka), + x = kx * r, + y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for (var i = 1; i < 5; ++i) { + var a = tau * i / 5, + c = Math.cos(a), + s = Math.sin(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); + } +}; + +var square = { + draw: function(context, size) { + var w = Math.sqrt(size), + x = -w / 2; + context.rect(x, x, w, w); + } +}; + +var sqrt3 = Math.sqrt(3); + +var triangle = { + draw: function(context, size) { + var y = -Math.sqrt(size / (sqrt3 * 3)); + context.moveTo(0, y * 2); + context.lineTo(-sqrt3 * y, -y); + context.lineTo(sqrt3 * y, -y); + context.closePath(); + } +}; + +var c = -0.5, + s = Math.sqrt(3) / 2, + k = 1 / Math.sqrt(12), + a = (k / 2 + 1) * 3; + +var wye = { + draw: function(context, size) { + var r = Math.sqrt(size / a), + x0 = r / 2, + y0 = r * k, + x1 = x0, + y1 = r * k + r, + x2 = -x1, + y2 = y1; + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + context.lineTo(c * x0 - s * y0, s * x0 + c * y0); + context.lineTo(c * x1 - s * y1, s * x1 + c * y1); + context.lineTo(c * x2 - s * y2, s * x2 + c * y2); + context.lineTo(c * x0 + s * y0, c * y0 - s * x0); + context.lineTo(c * x1 + s * y1, c * y1 - s * x1); + context.lineTo(c * x2 + s * y2, c * y2 - s * x2); + context.closePath(); + } +}; + +var symbols = [ + circle, + cross, + diamond, + square, + star, + triangle, + wye +]; + +function symbol(type, size) { + var context = null; + type = typeof type === "function" ? type : constant$1(type || circle); + size = typeof size === "function" ? size : constant$1(size === undefined ? 64 : +size); + + function symbol() { + var buffer; + if (!context) context = buffer = path(); + type.apply(this, arguments).draw(context, +size.apply(this, arguments)); + if (buffer) return context = null, buffer + "" || null; + } + + symbol.type = function(_) { + return arguments.length ? (type = typeof _ === "function" ? _ : constant$1(_), symbol) : type; + }; + + symbol.size = function(_) { + return arguments.length ? (size = typeof _ === "function" ? _ : constant$1(+_), symbol) : size; + }; + + symbol.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, symbol) : context; + }; + + return symbol; +} + +function noop() {} + +function point$3(that, x, y) { + that._context.bezierCurveTo( + (2 * that._x0 + that._x1) / 3, + (2 * that._y0 + that._y1) / 3, + (that._x0 + 2 * that._x1) / 3, + (that._y0 + 2 * that._y1) / 3, + (that._x0 + 4 * that._x1 + x) / 6, + (that._y0 + 4 * that._y1 + y) / 6 + ); +} + +function Basis(context) { + this._context = context; +} + +Basis.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 3: point$3(this, this._x1, this._y1); // proceed + case 2: this._context.lineTo(this._x1, this._y1); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basis(context) { + return new Basis(context); +} + +function BasisClosed(context) { + this._context = context; +} + +BasisClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x2, this._y2); + this._context.closePath(); + break; + } + case 2: { + this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); + this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x2, this._y2); + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x2 = x, this._y2 = y; break; + case 1: this._point = 2; this._x3 = x, this._y3 = y; break; + case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basisClosed(context) { + return new BasisClosed(context); +} + +function BasisOpen(context) { + this._context = context; +} + +BasisOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; + case 3: this._point = 4; // proceed + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basisOpen(context) { + return new BasisOpen(context); +} + +class Bump { + constructor(context, x) { + this._context = context; + this._x = x; + } + areaStart() { + this._line = 0; + } + areaEnd() { + this._line = NaN; + } + lineStart() { + this._point = 0; + } + lineEnd() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + } + point(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: { + this._point = 1; + if (this._line) this._context.lineTo(x, y); + else this._context.moveTo(x, y); + break; + } + case 1: this._point = 2; // proceed + default: { + if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y); + else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y); + break; + } + } + this._x0 = x, this._y0 = y; + } +} + +function bumpX(context) { + return new Bump(context, true); +} + +function bumpY(context) { + return new Bump(context, false); +} + +function Bundle(context, beta) { + this._basis = new Basis(context); + this._beta = beta; +} + +Bundle.prototype = { + lineStart: function() { + this._x = []; + this._y = []; + this._basis.lineStart(); + }, + lineEnd: function() { + var x = this._x, + y = this._y, + j = x.length - 1; + + if (j > 0) { + var x0 = x[0], + y0 = y[0], + dx = x[j] - x0, + dy = y[j] - y0, + i = -1, + t; + + while (++i <= j) { + t = i / j; + this._basis.point( + this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), + this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) + ); + } + } + + this._x = this._y = null; + this._basis.lineEnd(); + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +var bundle = (function custom(beta) { + + function bundle(context) { + return beta === 1 ? new Basis(context) : new Bundle(context, beta); + } + + bundle.beta = function(beta) { + return custom(+beta); + }; + + return bundle; +})(0.85); + +function point$2(that, x, y) { + that._context.bezierCurveTo( + that._x1 + that._k * (that._x2 - that._x0), + that._y1 + that._k * (that._y2 - that._y0), + that._x2 + that._k * (that._x1 - x), + that._y2 + that._k * (that._y1 - y), + that._x2, + that._y2 + ); +} + +function Cardinal(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +Cardinal.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x2, this._y2); break; + case 3: point$2(this, this._x1, this._y1); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; this._x1 = x, this._y1 = y; break; + case 2: this._point = 3; // proceed + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinal = (function custom(tension) { + + function cardinal(context) { + return new Cardinal(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalClosed(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinalClosed = (function custom(tension) { + + function cardinal(context) { + return new CardinalClosed(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalOpen(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; + case 3: this._point = 4; // proceed + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinalOpen = (function custom(tension) { + + function cardinal(context) { + return new CardinalOpen(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function point$1(that, x, y) { + var x1 = that._x1, + y1 = that._y1, + x2 = that._x2, + y2 = that._y2; + + if (that._l01_a > epsilon) { + var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, + n = 3 * that._l01_a * (that._l01_a + that._l12_a); + x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; + y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; + } + + if (that._l23_a > epsilon) { + var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, + m = 3 * that._l23_a * (that._l23_a + that._l12_a); + x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; + y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; + } + + that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); +} + +function CatmullRom(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRom.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x2, this._y2); break; + case 3: this.point(this._x2, this._y2); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; // proceed + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRom = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function CatmullRomClosed(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRomClosed = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function CatmullRomOpen(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; + case 3: this._point = 4; // proceed + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRomOpen = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function LinearClosed(context) { + this._context = context; +} + +LinearClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._point) this._context.closePath(); + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) this._context.lineTo(x, y); + else this._point = 1, this._context.moveTo(x, y); + } +}; + +function linearClosed(context) { + return new LinearClosed(context); +} + +function sign(x) { + return x < 0 ? -1 : 1; +} + +// Calculate the slopes of the tangents (Hermite-type interpolation) based on +// the following paper: Steffen, M. 1990. A Simple Method for Monotonic +// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. +// NOV(II), P. 443, 1990. +function slope3(that, x2, y2) { + var h0 = that._x1 - that._x0, + h1 = x2 - that._x1, + s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), + s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), + p = (s0 * h1 + s1 * h0) / (h0 + h1); + return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +} + +// Calculate a one-sided slope. +function slope2(that, t) { + var h = that._x1 - that._x0; + return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +} + +// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations +// "you can express cubic Hermite interpolation in terms of cubic Bézier curves +// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". +function point(that, t0, t1) { + var x0 = that._x0, + y0 = that._y0, + x1 = that._x1, + y1 = that._y1, + dx = (x1 - x0) / 3; + that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +} + +function MonotoneX(context) { + this._context = context; +} + +MonotoneX.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = + this._t0 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x1, this._y1); break; + case 3: point(this, this._t0, slope2(this, this._t0)); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + var t1 = NaN; + + x = +x, y = +y; + if (x === this._x1 && y === this._y1) return; // Ignore coincident points. + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break; + default: point(this, this._t0, t1 = slope3(this, x, y)); break; + } + + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + this._t0 = t1; + } +}; + +function MonotoneY(context) { + this._context = new ReflectContext(context); +} + +(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { + MonotoneX.prototype.point.call(this, y, x); +}; + +function ReflectContext(context) { + this._context = context; +} + +ReflectContext.prototype = { + moveTo: function(x, y) { this._context.moveTo(y, x); }, + closePath: function() { this._context.closePath(); }, + lineTo: function(x, y) { this._context.lineTo(y, x); }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } +}; + +function monotoneX(context) { + return new MonotoneX(context); +} + +function monotoneY(context) { + return new MonotoneY(context); +} + +function Natural(context) { + this._context = context; +} + +Natural.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = []; + this._y = []; + }, + lineEnd: function() { + var x = this._x, + y = this._y, + n = x.length; + + if (n) { + this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); + if (n === 2) { + this._context.lineTo(x[1], y[1]); + } else { + var px = controlPoints(x), + py = controlPoints(y); + for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { + this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); + } + } + } + + if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); + this._line = 1 - this._line; + this._x = this._y = null; + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +// See https://www.particleincell.com/2012/bezier-splines/ for derivation. +function controlPoints(x) { + var i, + n = x.length - 1, + m, + a = new Array(n), + b = new Array(n), + r = new Array(n); + a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; + for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; + a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; + for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; + a[n - 1] = r[n - 1] / b[n - 1]; + for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; + b[n - 1] = (x[n] + a[n - 1]) / 2; + for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; + return [a, b]; +} + +function natural(context) { + return new Natural(context); +} + +function Step(context, t) { + this._context = context; + this._t = t; +} + +Step.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN; + this._point = 0; + }, + lineEnd: function() { + if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // proceed + default: { + if (this._t <= 0) { + this._context.lineTo(this._x, y); + this._context.lineTo(x, y); + } else { + var x1 = this._x * (1 - this._t) + x * this._t; + this._context.lineTo(x1, this._y); + this._context.lineTo(x1, y); + } + break; + } + } + this._x = x, this._y = y; + } +}; + +function step(context) { + return new Step(context, 0.5); +} + +function stepBefore(context) { + return new Step(context, 0); +} + +function stepAfter(context) { + return new Step(context, 1); +} + +function none$1(series, order) { + if (!((n = series.length) > 1)) return; + for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { + s0 = s1, s1 = series[order[i]]; + for (j = 0; j < m; ++j) { + s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; + } + } +} + +function none(series) { + var n = series.length, o = new Array(n); + while (--n >= 0) o[n] = n; + return o; +} + +function stackValue(d, key) { + return d[key]; +} + +function stackSeries(key) { + const series = []; + series.key = key; + return series; +} + +function stack() { + var keys = constant$1([]), + order = none, + offset = none$1, + value = stackValue; + + function stack(data) { + var sz = Array.from(keys.apply(this, arguments), stackSeries), + i, n = sz.length, j = -1, + oz; + + for (const d of data) { + for (i = 0, ++j; i < n; ++i) { + (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d; + } + } + + for (i = 0, oz = array(order(sz)); i < n; ++i) { + sz[oz[i]].index = i; + } + + offset(sz, oz); + return sz; + } + + stack.keys = function(_) { + return arguments.length ? (keys = typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : keys; + }; + + stack.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), stack) : value; + }; + + stack.order = function(_) { + return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : order; + }; + + stack.offset = function(_) { + return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset; + }; + + return stack; +} + +function expand(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { + for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; + if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; + } + none$1(series, order); +} + +function diverging(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { + for (yp = yn = 0, i = 0; i < n; ++i) { + if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { + d[0] = yp, d[1] = yp += dy; + } else if (dy < 0) { + d[1] = yn, d[0] = yn += dy; + } else { + d[0] = 0, d[1] = dy; + } + } + } +} + +function silhouette(series, order) { + if (!((n = series.length) > 0)) return; + for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { + for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; + s0[j][1] += s0[j][0] = -y / 2; + } + none$1(series, order); +} + +function wiggle(series, order) { + if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; + for (var y = 0, j = 1, s0, m, n; j < m; ++j) { + for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { + var si = series[order[i]], + sij0 = si[j][1] || 0, + sij1 = si[j - 1][1] || 0, + s3 = (sij0 - sij1) / 2; + for (var k = 0; k < i; ++k) { + var sk = series[order[k]], + skj0 = sk[j][1] || 0, + skj1 = sk[j - 1][1] || 0; + s3 += skj0 - skj1; + } + s1 += sij0, s2 += s3 * sij0; + } + s0[j - 1][1] += s0[j - 1][0] = y; + if (s1) y -= s2 / s1; + } + s0[j - 1][1] += s0[j - 1][0] = y; + none$1(series, order); +} + +function appearance(series) { + var peaks = series.map(peak); + return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); +} + +function peak(series) { + var i = -1, j = 0, n = series.length, vi, vj = -Infinity; + while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; + return j; +} + +function ascending(series) { + var sums = series.map(sum); + return none(series).sort(function(a, b) { return sums[a] - sums[b]; }); +} + +function sum(series) { + var s = 0, i = -1, n = series.length, v; + while (++i < n) if (v = +series[i][1]) s += v; + return s; +} + +function descending(series) { + return ascending(series).reverse(); +} + +function insideOut(series) { + var n = series.length, + i, + j, + sums = series.map(sum), + order = appearance(series), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + + for (i = 0; i < n; ++i) { + j = order[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + + return bottoms.reverse().concat(tops); +} + +function reverse(series) { + return none(series).reverse(); +} + +var constant = x => () => x; + +function ZoomEvent(type, { + sourceEvent, + target, + transform, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + transform: {value: transform, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +function Transform(k, x, y) { + this.k = k; + this.x = x; + this.y = y; +} + +Transform.prototype = { + constructor: Transform, + scale: function(k) { + return k === 1 ? this : new Transform(this.k * k, this.x, this.y); + }, + translate: function(x, y) { + return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); + }, + apply: function(point) { + return [point[0] * this.k + this.x, point[1] * this.k + this.y]; + }, + applyX: function(x) { + return x * this.k + this.x; + }, + applyY: function(y) { + return y * this.k + this.y; + }, + invert: function(location) { + return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; + }, + invertX: function(x) { + return (x - this.x) / this.k; + }, + invertY: function(y) { + return (y - this.y) / this.k; + }, + rescaleX: function(x) { + return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); + }, + rescaleY: function(y) { + return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; + +var identity = new Transform(1, 0, 0); + +transform.prototype = Transform.prototype; + +function transform(node) { + while (!node.__zoom) if (!(node = node.parentNode)) return identity; + return node.__zoom; +} + +function nopropagation(event) { + event.stopImmediatePropagation(); +} + +function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +// Ignore right-click, since that should open the context menu. +// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event +function defaultFilter(event) { + return (!event.ctrlKey || event.type === 'wheel') && !event.button; +} + +function defaultExtent() { + var e = this; + if (e instanceof SVGElement) { + e = e.ownerSVGElement || e; + if (e.hasAttribute("viewBox")) { + e = e.viewBox.baseVal; + return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; + } + return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; + } + return [[0, 0], [e.clientWidth, e.clientHeight]]; +} + +function defaultTransform() { + return this.__zoom || identity; +} + +function defaultWheelDelta(event) { + return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1); +} + +function defaultTouchable() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +function defaultConstrain(transform, extent, translateExtent) { + var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], + dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], + dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], + dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1]; + return transform.translate( + dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), + dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) + ); +} + +function zoom() { + var filter = defaultFilter, + extent = defaultExtent, + constrain = defaultConstrain, + wheelDelta = defaultWheelDelta, + touchable = defaultTouchable, + scaleExtent = [0, Infinity], + translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], + duration = 250, + interpolate = interpolateZoom, + listeners = dispatch("start", "zoom", "end"), + touchstarting, + touchfirst, + touchending, + touchDelay = 500, + wheelDelay = 150, + clickDistance2 = 0, + tapDistance = 10; + + function zoom(selection) { + selection + .property("__zoom", defaultTransform) + .on("wheel.zoom", wheeled) + .on("mousedown.zoom", mousedowned) + .on("dblclick.zoom", dblclicked) + .filter(touchable) + .on("touchstart.zoom", touchstarted) + .on("touchmove.zoom", touchmoved) + .on("touchend.zoom touchcancel.zoom", touchended) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + zoom.transform = function(collection, transform, point, event) { + var selection = collection.selection ? collection.selection() : collection; + selection.property("__zoom", defaultTransform); + if (collection !== selection) { + schedule(collection, transform, point, event); + } else { + selection.interrupt().each(function() { + gesture(this, arguments) + .event(event) + .start() + .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform) + .end(); + }); + } + }; + + zoom.scaleBy = function(selection, k, p, event) { + zoom.scaleTo(selection, function() { + var k0 = this.__zoom.k, + k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return k0 * k1; + }, p, event); + }; + + zoom.scaleTo = function(selection, k, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), + t0 = this.__zoom, + p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, + p1 = t0.invert(p0), + k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); + }, p, event); + }; + + zoom.translateBy = function(selection, x, y, event) { + zoom.transform(selection, function() { + return constrain(this.__zoom.translate( + typeof x === "function" ? x.apply(this, arguments) : x, + typeof y === "function" ? y.apply(this, arguments) : y + ), extent.apply(this, arguments), translateExtent); + }, null, event); + }; + + zoom.translateTo = function(selection, x, y, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), + t = this.__zoom, + p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; + return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate( + typeof x === "function" ? -x.apply(this, arguments) : -x, + typeof y === "function" ? -y.apply(this, arguments) : -y + ), e, translateExtent); + }, p, event); + }; + + function scale(transform, k) { + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); + return k === transform.k ? transform : new Transform(k, transform.x, transform.y); + } + + function translate(transform, p0, p1) { + var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k; + return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y); + } + + function centroid(extent) { + return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2]; + } + + function schedule(transition, transform, point, event) { + transition + .on("start.zoom", function() { gesture(this, arguments).event(event).start(); }) + .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); }) + .tween("zoom", function() { + var that = this, + args = arguments, + g = gesture(that, args).event(event), + e = extent.apply(that, args), + p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, + w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), + a = that.__zoom, + b = typeof transform === "function" ? transform.apply(that, args) : transform, + i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); + return function(t) { + if (t === 1) t = b; // Avoid rounding error on end. + else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); } + g.zoom(null, t); + }; + }); + } + + function gesture(that, args, clean) { + return (!clean && that.__zooming) || new Gesture(that, args); + } + + function Gesture(that, args) { + this.that = that; + this.args = args; + this.active = 0; + this.sourceEvent = null; + this.extent = extent.apply(that, args); + this.taps = 0; + } + + Gesture.prototype = { + event: function(event) { + if (event) this.sourceEvent = event; + return this; + }, + start: function() { + if (++this.active === 1) { + this.that.__zooming = this; + this.emit("start"); + } + return this; + }, + zoom: function(key, transform) { + if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]); + if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]); + if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]); + this.that.__zoom = transform; + this.emit("zoom"); + return this; + }, + end: function() { + if (--this.active === 0) { + delete this.that.__zooming; + this.emit("end"); + } + return this; + }, + emit: function(type) { + var d = select(this.that).datum(); + listeners.call( + type, + this.that, + new ZoomEvent(type, { + sourceEvent: this.sourceEvent, + target: zoom, + type, + transform: this.that.__zoom, + dispatch: listeners + }), + d + ); + } + }; + + function wheeled(event, ...args) { + if (!filter.apply(this, arguments)) return; + var g = gesture(this, args).event(event), + t = this.__zoom, + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), + p = pointer(event); + + // If the mouse is in the same location as before, reuse it. + // If there were recent wheel events, reset the wheel idle timeout. + if (g.wheel) { + if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { + g.mouse[1] = t.invert(g.mouse[0] = p); + } + clearTimeout(g.wheel); + } + + // If this wheel event won’t trigger a transform change, ignore it. + else if (t.k === k) return; + + // Otherwise, capture the mouse point and location at the start. + else { + g.mouse = [p, t.invert(p)]; + interrupt(this); + g.start(); + } + + noevent(event); + g.wheel = setTimeout(wheelidled, wheelDelay); + g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); + + function wheelidled() { + g.wheel = null; + g.end(); + } + } + + function mousedowned(event, ...args) { + if (touchending || !filter.apply(this, arguments)) return; + var g = gesture(this, args, true).event(event), + v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), + p = pointer(event, currentTarget), + currentTarget = event.currentTarget, + x0 = event.clientX, + y0 = event.clientY; + + dragDisable(event.view); + nopropagation(event); + g.mouse = [p, this.__zoom.invert(p)]; + interrupt(this); + g.start(); + + function mousemoved(event) { + noevent(event); + if (!g.moved) { + var dx = event.clientX - x0, dy = event.clientY - y0; + g.moved = dx * dx + dy * dy > clickDistance2; + } + g.event(event) + .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent)); + } + + function mouseupped(event) { + v.on("mousemove.zoom mouseup.zoom", null); + yesdrag(event.view, g.moved); + noevent(event); + g.event(event).end(); + } + } + + function dblclicked(event, ...args) { + if (!filter.apply(this, arguments)) return; + var t0 = this.__zoom, + p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), + p1 = t0.invert(p0), + k1 = t0.k * (event.shiftKey ? 0.5 : 2), + t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); + + noevent(event); + if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event); + else select(this).call(zoom.transform, t1, p0, event); + } + + function touchstarted(event, ...args) { + if (!filter.apply(this, arguments)) return; + var touches = event.touches, + n = touches.length, + g = gesture(this, args, event.changedTouches.length === n).event(event), + started, i, t, p; + + nopropagation(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer(t, this); + p = [p, this.__zoom.invert(p), t.identifier]; + if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; + else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0; + } + + if (touchstarting) touchstarting = clearTimeout(touchstarting); + + if (started) { + if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay); + interrupt(this); + g.start(); + } + } + + function touchmoved(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), + touches = event.changedTouches, + n = touches.length, i, t, p, l; + + noevent(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer(t, this); + if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p; + else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p; + } + t = g.that.__zoom; + if (g.touch1) { + var p0 = g.touch0[0], l0 = g.touch0[1], + p1 = g.touch1[0], l1 = g.touch1[1], + dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, + dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; + t = scale(t, Math.sqrt(dp / dl)); + p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + } + else if (g.touch0) p = g.touch0[0], l = g.touch0[1]; + else return; + + g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); + } + + function touchended(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), + touches = event.changedTouches, + n = touches.length, i, t; + + nopropagation(event); + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, touchDelay); + for (i = 0; i < n; ++i) { + t = touches[i]; + if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0; + else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1; + } + if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1; + if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else { + g.end(); + // If this was a dbltap, reroute to the (optional) dblclick.zoom handler. + if (g.taps === 2) { + t = pointer(t, this); + if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { + var p = select(this).on("dblclick.zoom"); + if (p) p.apply(this, arguments); + } + } + } + } + + zoom.wheelDelta = function(_) { + return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta; + }; + + zoom.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter; + }; + + zoom.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable; + }; + + zoom.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; + }; + + zoom.scaleExtent = function(_) { + return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; + }; + + zoom.translateExtent = function(_) { + return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; + }; + + zoom.constrain = function(_) { + return arguments.length ? (constrain = _, zoom) : constrain; + }; + + zoom.duration = function(_) { + return arguments.length ? (duration = +_, zoom) : duration; + }; + + zoom.interpolate = function(_) { + return arguments.length ? (interpolate = _, zoom) : interpolate; + }; + + zoom.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? zoom : value; + }; + + zoom.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); + }; + + zoom.tapDistance = function(_) { + return arguments.length ? (tapDistance = +_, zoom) : tapDistance; + }; + + return zoom; +} + +exports.Adder = Adder; +exports.Delaunay = Delaunay; +exports.FormatSpecifier = FormatSpecifier; +exports.InternMap = InternMap; +exports.InternSet = InternSet; +exports.Voronoi = Voronoi; +exports.active = active; +exports.arc = arc; +exports.area = area; +exports.areaRadial = areaRadial; +exports.ascending = ascending$3; +exports.autoType = autoType; +exports.axisBottom = axisBottom; +exports.axisLeft = axisLeft; +exports.axisRight = axisRight; +exports.axisTop = axisTop; +exports.bin = bin; +exports.bisect = bisectRight; +exports.bisectCenter = bisectCenter; +exports.bisectLeft = bisectLeft; +exports.bisectRight = bisectRight; +exports.bisector = bisector; +exports.blob = blob; +exports.brush = brush; +exports.brushSelection = brushSelection; +exports.brushX = brushX; +exports.brushY = brushY; +exports.buffer = buffer; +exports.chord = chord; +exports.chordDirected = chordDirected; +exports.chordTranspose = chordTranspose; +exports.cluster = cluster; +exports.color = color; +exports.contourDensity = density; +exports.contours = contours; +exports.count = count$1; +exports.create = create$1; +exports.creator = creator; +exports.cross = cross$2; +exports.csv = csv; +exports.csvFormat = csvFormat; +exports.csvFormatBody = csvFormatBody; +exports.csvFormatRow = csvFormatRow; +exports.csvFormatRows = csvFormatRows; +exports.csvFormatValue = csvFormatValue; +exports.csvParse = csvParse; +exports.csvParseRows = csvParseRows; +exports.cubehelix = cubehelix$3; +exports.cumsum = cumsum; +exports.curveBasis = basis; +exports.curveBasisClosed = basisClosed; +exports.curveBasisOpen = basisOpen; +exports.curveBumpX = bumpX; +exports.curveBumpY = bumpY; +exports.curveBundle = bundle; +exports.curveCardinal = cardinal; +exports.curveCardinalClosed = cardinalClosed; +exports.curveCardinalOpen = cardinalOpen; +exports.curveCatmullRom = catmullRom; +exports.curveCatmullRomClosed = catmullRomClosed; +exports.curveCatmullRomOpen = catmullRomOpen; +exports.curveLinear = curveLinear; +exports.curveLinearClosed = linearClosed; +exports.curveMonotoneX = monotoneX; +exports.curveMonotoneY = monotoneY; +exports.curveNatural = natural; +exports.curveStep = step; +exports.curveStepAfter = stepAfter; +exports.curveStepBefore = stepBefore; +exports.descending = descending$2; +exports.deviation = deviation; +exports.difference = difference; +exports.disjoint = disjoint; +exports.dispatch = dispatch; +exports.drag = drag; +exports.dragDisable = dragDisable; +exports.dragEnable = yesdrag; +exports.dsv = dsv; +exports.dsvFormat = dsvFormat; +exports.easeBack = backInOut; +exports.easeBackIn = backIn; +exports.easeBackInOut = backInOut; +exports.easeBackOut = backOut; +exports.easeBounce = bounceOut; +exports.easeBounceIn = bounceIn; +exports.easeBounceInOut = bounceInOut; +exports.easeBounceOut = bounceOut; +exports.easeCircle = circleInOut; +exports.easeCircleIn = circleIn; +exports.easeCircleInOut = circleInOut; +exports.easeCircleOut = circleOut; +exports.easeCubic = cubicInOut; +exports.easeCubicIn = cubicIn; +exports.easeCubicInOut = cubicInOut; +exports.easeCubicOut = cubicOut; +exports.easeElastic = elasticOut; +exports.easeElasticIn = elasticIn; +exports.easeElasticInOut = elasticInOut; +exports.easeElasticOut = elasticOut; +exports.easeExp = expInOut; +exports.easeExpIn = expIn; +exports.easeExpInOut = expInOut; +exports.easeExpOut = expOut; +exports.easeLinear = linear$1; +exports.easePoly = polyInOut; +exports.easePolyIn = polyIn; +exports.easePolyInOut = polyInOut; +exports.easePolyOut = polyOut; +exports.easeQuad = quadInOut; +exports.easeQuadIn = quadIn; +exports.easeQuadInOut = quadInOut; +exports.easeQuadOut = quadOut; +exports.easeSin = sinInOut; +exports.easeSinIn = sinIn; +exports.easeSinInOut = sinInOut; +exports.easeSinOut = sinOut; +exports.every = every; +exports.extent = extent$1; +exports.fcumsum = fcumsum; +exports.filter = filter$1; +exports.forceCenter = center; +exports.forceCollide = collide; +exports.forceLink = link$2; +exports.forceManyBody = manyBody; +exports.forceRadial = radial$1; +exports.forceSimulation = simulation; +exports.forceX = x$1; +exports.forceY = y$1; +exports.formatDefaultLocale = defaultLocale$1; +exports.formatLocale = formatLocale$1; +exports.formatSpecifier = formatSpecifier; +exports.fsum = fsum; +exports.geoAlbers = albers; +exports.geoAlbersUsa = albersUsa; +exports.geoArea = area$2; +exports.geoAzimuthalEqualArea = azimuthalEqualArea; +exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw; +exports.geoAzimuthalEquidistant = azimuthalEquidistant; +exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw; +exports.geoBounds = bounds; +exports.geoCentroid = centroid$1; +exports.geoCircle = circle$2; +exports.geoClipAntimeridian = clipAntimeridian; +exports.geoClipCircle = clipCircle; +exports.geoClipExtent = extent; +exports.geoClipRectangle = clipRectangle; +exports.geoConicConformal = conicConformal; +exports.geoConicConformalRaw = conicConformalRaw; +exports.geoConicEqualArea = conicEqualArea; +exports.geoConicEqualAreaRaw = conicEqualAreaRaw; +exports.geoConicEquidistant = conicEquidistant; +exports.geoConicEquidistantRaw = conicEquidistantRaw; +exports.geoContains = contains$1; +exports.geoDistance = distance; +exports.geoEqualEarth = equalEarth; +exports.geoEqualEarthRaw = equalEarthRaw; +exports.geoEquirectangular = equirectangular; +exports.geoEquirectangularRaw = equirectangularRaw; +exports.geoGnomonic = gnomonic; +exports.geoGnomonicRaw = gnomonicRaw; +exports.geoGraticule = graticule; +exports.geoGraticule10 = graticule10; +exports.geoIdentity = identity$4; +exports.geoInterpolate = interpolate; +exports.geoLength = length$1; +exports.geoMercator = mercator; +exports.geoMercatorRaw = mercatorRaw; +exports.geoNaturalEarth1 = naturalEarth1; +exports.geoNaturalEarth1Raw = naturalEarth1Raw; +exports.geoOrthographic = orthographic; +exports.geoOrthographicRaw = orthographicRaw; +exports.geoPath = index$2; +exports.geoProjection = projection; +exports.geoProjectionMutator = projectionMutator; +exports.geoRotation = rotation; +exports.geoStereographic = stereographic; +exports.geoStereographicRaw = stereographicRaw; +exports.geoStream = geoStream; +exports.geoTransform = transform$1; +exports.geoTransverseMercator = transverseMercator; +exports.geoTransverseMercatorRaw = transverseMercatorRaw; +exports.gray = gray; +exports.greatest = greatest; +exports.greatestIndex = greatestIndex; +exports.group = group; +exports.groupSort = groupSort; +exports.groups = groups; +exports.hcl = hcl$2; +exports.hierarchy = hierarchy; +exports.histogram = bin; +exports.hsl = hsl$2; +exports.html = html; +exports.image = image; +exports.index = index$4; +exports.indexes = indexes; +exports.interpolate = interpolate$2; +exports.interpolateArray = array$3; +exports.interpolateBasis = basis$2; +exports.interpolateBasisClosed = basisClosed$1; +exports.interpolateBlues = Blues; +exports.interpolateBrBG = BrBG; +exports.interpolateBuGn = BuGn; +exports.interpolateBuPu = BuPu; +exports.interpolateCividis = cividis; +exports.interpolateCool = cool; +exports.interpolateCubehelix = cubehelix$2; +exports.interpolateCubehelixDefault = cubehelix; +exports.interpolateCubehelixLong = cubehelixLong; +exports.interpolateDate = date$1; +exports.interpolateDiscrete = discrete; +exports.interpolateGnBu = GnBu; +exports.interpolateGreens = Greens; +exports.interpolateGreys = Greys; +exports.interpolateHcl = hcl$1; +exports.interpolateHclLong = hclLong; +exports.interpolateHsl = hsl$1; +exports.interpolateHslLong = hslLong; +exports.interpolateHue = hue; +exports.interpolateInferno = inferno; +exports.interpolateLab = lab; +exports.interpolateMagma = magma; +exports.interpolateNumber = interpolateNumber; +exports.interpolateNumberArray = numberArray; +exports.interpolateObject = object$1; +exports.interpolateOrRd = OrRd; +exports.interpolateOranges = Oranges; +exports.interpolatePRGn = PRGn; +exports.interpolatePiYG = PiYG; +exports.interpolatePlasma = plasma; +exports.interpolatePuBu = PuBu; +exports.interpolatePuBuGn = PuBuGn; +exports.interpolatePuOr = PuOr; +exports.interpolatePuRd = PuRd; +exports.interpolatePurples = Purples; +exports.interpolateRainbow = rainbow; +exports.interpolateRdBu = RdBu; +exports.interpolateRdGy = RdGy; +exports.interpolateRdPu = RdPu; +exports.interpolateRdYlBu = RdYlBu; +exports.interpolateRdYlGn = RdYlGn; +exports.interpolateReds = Reds; +exports.interpolateRgb = interpolateRgb; +exports.interpolateRgbBasis = rgbBasis; +exports.interpolateRgbBasisClosed = rgbBasisClosed; +exports.interpolateRound = interpolateRound; +exports.interpolateSinebow = sinebow; +exports.interpolateSpectral = Spectral; +exports.interpolateString = interpolateString; +exports.interpolateTransformCss = interpolateTransformCss; +exports.interpolateTransformSvg = interpolateTransformSvg; +exports.interpolateTurbo = turbo; +exports.interpolateViridis = viridis; +exports.interpolateWarm = warm; +exports.interpolateYlGn = YlGn; +exports.interpolateYlGnBu = YlGnBu; +exports.interpolateYlOrBr = YlOrBr; +exports.interpolateYlOrRd = YlOrRd; +exports.interpolateZoom = interpolateZoom; +exports.interrupt = interrupt; +exports.intersection = intersection; +exports.interval = interval; +exports.isoFormat = formatIso; +exports.isoParse = parseIso; +exports.json = json; +exports.lab = lab$1; +exports.lch = lch; +exports.least = least; +exports.leastIndex = leastIndex; +exports.line = line; +exports.lineRadial = lineRadial$1; +exports.linkHorizontal = linkHorizontal; +exports.linkRadial = linkRadial; +exports.linkVertical = linkVertical; +exports.local = local$1; +exports.map = map$1; +exports.matcher = matcher; +exports.max = max$3; +exports.maxIndex = maxIndex; +exports.mean = mean; +exports.median = median; +exports.merge = merge; +exports.min = min$2; +exports.minIndex = minIndex; +exports.namespace = namespace; +exports.namespaces = namespaces; +exports.nice = nice$1; +exports.now = now; +exports.pack = index$1; +exports.packEnclose = enclose; +exports.packSiblings = siblings; +exports.pairs = pairs; +exports.partition = partition; +exports.path = path; +exports.permute = permute; +exports.pie = pie; +exports.piecewise = piecewise; +exports.pointRadial = pointRadial; +exports.pointer = pointer; +exports.pointers = pointers; +exports.polygonArea = area$1; +exports.polygonCentroid = centroid; +exports.polygonContains = contains; +exports.polygonHull = hull; +exports.polygonLength = length; +exports.precisionFixed = precisionFixed; +exports.precisionPrefix = precisionPrefix; +exports.precisionRound = precisionRound; +exports.quadtree = quadtree; +exports.quantile = quantile$1; +exports.quantileSorted = quantileSorted; +exports.quantize = quantize$1; +exports.quickselect = quickselect; +exports.radialArea = areaRadial; +exports.radialLine = lineRadial$1; +exports.randomBates = bates; +exports.randomBernoulli = bernoulli; +exports.randomBeta = beta; +exports.randomBinomial = binomial; +exports.randomCauchy = cauchy; +exports.randomExponential = exponential; +exports.randomGamma = gamma; +exports.randomGeometric = geometric; +exports.randomInt = int; +exports.randomIrwinHall = irwinHall; +exports.randomLcg = lcg; +exports.randomLogNormal = logNormal; +exports.randomLogistic = logistic; +exports.randomNormal = normal; +exports.randomPareto = pareto; +exports.randomPoisson = poisson; +exports.randomUniform = uniform; +exports.randomWeibull = weibull; +exports.range = sequence; +exports.reduce = reduce; +exports.reverse = reverse$1; +exports.rgb = rgb; +exports.ribbon = ribbon$1; +exports.ribbonArrow = ribbonArrow; +exports.rollup = rollup; +exports.rollups = rollups; +exports.scaleBand = band; +exports.scaleDiverging = diverging$1; +exports.scaleDivergingLog = divergingLog; +exports.scaleDivergingPow = divergingPow; +exports.scaleDivergingSqrt = divergingSqrt; +exports.scaleDivergingSymlog = divergingSymlog; +exports.scaleIdentity = identity$2; +exports.scaleImplicit = implicit; +exports.scaleLinear = linear; +exports.scaleLog = log; +exports.scaleOrdinal = ordinal; +exports.scalePoint = point$4; +exports.scalePow = pow; +exports.scaleQuantile = quantile; +exports.scaleQuantize = quantize; +exports.scaleRadial = radial; +exports.scaleSequential = sequential; +exports.scaleSequentialLog = sequentialLog; +exports.scaleSequentialPow = sequentialPow; +exports.scaleSequentialQuantile = sequentialQuantile; +exports.scaleSequentialSqrt = sequentialSqrt; +exports.scaleSequentialSymlog = sequentialSymlog; +exports.scaleSqrt = sqrt$1; +exports.scaleSymlog = symlog; +exports.scaleThreshold = threshold; +exports.scaleTime = time; +exports.scaleUtc = utcTime; +exports.scan = scan; +exports.schemeAccent = Accent; +exports.schemeBlues = scheme$5; +exports.schemeBrBG = scheme$q; +exports.schemeBuGn = scheme$h; +exports.schemeBuPu = scheme$g; +exports.schemeCategory10 = category10; +exports.schemeDark2 = Dark2; +exports.schemeGnBu = scheme$f; +exports.schemeGreens = scheme$4; +exports.schemeGreys = scheme$3; +exports.schemeOrRd = scheme$e; +exports.schemeOranges = scheme; +exports.schemePRGn = scheme$p; +exports.schemePaired = Paired; +exports.schemePastel1 = Pastel1; +exports.schemePastel2 = Pastel2; +exports.schemePiYG = scheme$o; +exports.schemePuBu = scheme$c; +exports.schemePuBuGn = scheme$d; +exports.schemePuOr = scheme$n; +exports.schemePuRd = scheme$b; +exports.schemePurples = scheme$2; +exports.schemeRdBu = scheme$m; +exports.schemeRdGy = scheme$l; +exports.schemeRdPu = scheme$a; +exports.schemeRdYlBu = scheme$k; +exports.schemeRdYlGn = scheme$j; +exports.schemeReds = scheme$1; +exports.schemeSet1 = Set1; +exports.schemeSet2 = Set2; +exports.schemeSet3 = Set3; +exports.schemeSpectral = scheme$i; +exports.schemeTableau10 = Tableau10; +exports.schemeYlGn = scheme$8; +exports.schemeYlGnBu = scheme$9; +exports.schemeYlOrBr = scheme$7; +exports.schemeYlOrRd = scheme$6; +exports.select = select; +exports.selectAll = selectAll; +exports.selection = selection; +exports.selector = selector; +exports.selectorAll = selectorAll; +exports.shuffle = shuffle$1; +exports.shuffler = shuffler; +exports.some = some; +exports.sort = sort; +exports.stack = stack; +exports.stackOffsetDiverging = diverging; +exports.stackOffsetExpand = expand; +exports.stackOffsetNone = none$1; +exports.stackOffsetSilhouette = silhouette; +exports.stackOffsetWiggle = wiggle; +exports.stackOrderAppearance = appearance; +exports.stackOrderAscending = ascending; +exports.stackOrderDescending = descending; +exports.stackOrderInsideOut = insideOut; +exports.stackOrderNone = none; +exports.stackOrderReverse = reverse; +exports.stratify = stratify; +exports.style = styleValue; +exports.subset = subset; +exports.sum = sum$1; +exports.superset = superset; +exports.svg = svg; +exports.symbol = symbol; +exports.symbolCircle = circle; +exports.symbolCross = cross; +exports.symbolDiamond = diamond; +exports.symbolSquare = square; +exports.symbolStar = star; +exports.symbolTriangle = triangle; +exports.symbolWye = wye; +exports.symbols = symbols; +exports.text = text; +exports.thresholdFreedmanDiaconis = freedmanDiaconis; +exports.thresholdScott = scott; +exports.thresholdSturges = thresholdSturges; +exports.tickFormat = tickFormat; +exports.tickIncrement = tickIncrement; +exports.tickStep = tickStep; +exports.ticks = ticks; +exports.timeDay = day; +exports.timeDays = days; +exports.timeFormatDefaultLocale = defaultLocale; +exports.timeFormatLocale = formatLocale; +exports.timeFriday = friday; +exports.timeFridays = fridays; +exports.timeHour = hour; +exports.timeHours = hours; +exports.timeInterval = newInterval; +exports.timeMillisecond = millisecond; +exports.timeMilliseconds = milliseconds; +exports.timeMinute = minute; +exports.timeMinutes = minutes; +exports.timeMonday = monday; +exports.timeMondays = mondays; +exports.timeMonth = month; +exports.timeMonths = months; +exports.timeSaturday = saturday; +exports.timeSaturdays = saturdays; +exports.timeSecond = second; +exports.timeSeconds = seconds; +exports.timeSunday = sunday; +exports.timeSundays = sundays; +exports.timeThursday = thursday; +exports.timeThursdays = thursdays; +exports.timeTickInterval = timeTickInterval; +exports.timeTicks = timeTicks; +exports.timeTuesday = tuesday; +exports.timeTuesdays = tuesdays; +exports.timeWednesday = wednesday; +exports.timeWednesdays = wednesdays; +exports.timeWeek = sunday; +exports.timeWeeks = sundays; +exports.timeYear = year; +exports.timeYears = years; +exports.timeout = timeout; +exports.timer = timer; +exports.timerFlush = timerFlush; +exports.transition = transition; +exports.transpose = transpose; +exports.tree = tree; +exports.treemap = index; +exports.treemapBinary = binary; +exports.treemapDice = treemapDice; +exports.treemapResquarify = resquarify; +exports.treemapSlice = treemapSlice; +exports.treemapSliceDice = sliceDice; +exports.treemapSquarify = squarify; +exports.tsv = tsv; +exports.tsvFormat = tsvFormat; +exports.tsvFormatBody = tsvFormatBody; +exports.tsvFormatRow = tsvFormatRow; +exports.tsvFormatRows = tsvFormatRows; +exports.tsvFormatValue = tsvFormatValue; +exports.tsvParse = tsvParse; +exports.tsvParseRows = tsvParseRows; +exports.union = union; +exports.utcDay = utcDay; +exports.utcDays = utcDays; +exports.utcFriday = utcFriday; +exports.utcFridays = utcFridays; +exports.utcHour = utcHour; +exports.utcHours = utcHours; +exports.utcMillisecond = millisecond; +exports.utcMilliseconds = milliseconds; +exports.utcMinute = utcMinute; +exports.utcMinutes = utcMinutes; +exports.utcMonday = utcMonday; +exports.utcMondays = utcMondays; +exports.utcMonth = utcMonth; +exports.utcMonths = utcMonths; +exports.utcSaturday = utcSaturday; +exports.utcSaturdays = utcSaturdays; +exports.utcSecond = second; +exports.utcSeconds = seconds; +exports.utcSunday = utcSunday; +exports.utcSundays = utcSundays; +exports.utcThursday = utcThursday; +exports.utcThursdays = utcThursdays; +exports.utcTickInterval = utcTickInterval; +exports.utcTicks = utcTicks; +exports.utcTuesday = utcTuesday; +exports.utcTuesdays = utcTuesdays; +exports.utcWednesday = utcWednesday; +exports.utcWednesdays = utcWednesdays; +exports.utcWeek = utcSunday; +exports.utcWeeks = utcSundays; +exports.utcYear = utcYear; +exports.utcYears = utcYears; +exports.variance = variance; +exports.version = version; +exports.window = defaultView; +exports.xml = xml; +exports.zip = zip; +exports.zoom = zoom; +exports.zoomIdentity = identity; +exports.zoomTransform = transform; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/doc/d3-hwschematic-assets/d3/dist/d3.min.js b/doc/d3-hwschematic-assets/d3/dist/d3.min.js new file mode 100644 index 00000000..05cd5cae --- /dev/null +++ b/doc/d3-hwschematic-assets/d3/dist/d3.min.js @@ -0,0 +1,2 @@ +// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}function e(t){let e=t,r=t;function i(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)<0?e=o+1:i=o}return e}return 1===t.length&&(e=(n,e)=>t(n)-e,r=function(t){return(e,r)=>n(t(e),r)}(t)),{left:i,center:function(t,n,r,o){null==r&&(r=0),null==o&&(o=t.length);const a=i(t,n,r,o-1);return a>r&&e(t[a-1],n)>-e(t[a],n)?a-1:a},right:function(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)>0?i=o:e=o+1}return e}}}function r(t){return null===t?NaN:+t}const i=e(n),o=i.right,a=i.left,u=e(r).center;function c(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function f(t){return 0|t.length}function s(t){return!(t>0)}function l(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function h(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function d(t,n){const e=h(t,n);return e?Math.sqrt(e):e}function p(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r=o&&(e=r=o):(e>o&&(e=o),r0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}class y extends Map{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(_(this,t))}has(t){return super.has(_(this,t))}set(t,n){return super.set(b(this,t),n)}delete(t){return super.delete(m(this,t))}}class v extends Set{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(_(this,t))}add(t){return super.add(b(this,t))}delete(t){return super.delete(m(this,t))}}function _({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function b({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function m({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(e),t.delete(r)),e}function x(t){return null!==t&&"object"==typeof t?t.valueOf():t}function w(t){return t}function M(t,...n){return S(t,w,w,n)}function A(t,n,...e){return S(t,w,n,e)}function T(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function S(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new y,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function E(t,n){return Array.from(n,(n=>t[n]))}function k(t,...e){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[r=n]=e;if(1===r.length||e.length>1){const i=Uint32Array.from(t,((t,n)=>n));return e.length>1?(e=e.map((n=>t.map(n))),i.sort(((t,r)=>{for(const i of e){const e=n(i[t],i[r]);if(e)return e}}))):(r=t.map(r),i.sort(((t,e)=>n(r[t],r[e])))),E(t,i)}return t.sort(r)}var N=Array.prototype.slice;function C(t){return function(){return t}}var P=Math.sqrt(50),z=Math.sqrt(10),D=Math.sqrt(2);function q(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n0){let e=Math.round(t/a),r=Math.round(n/a);for(e*an&&--r,o=new Array(i=r-e+1);++un&&--r,o=new Array(i=r-e+1);++u=0?(o>=P?10:o>=z?5:o>=D?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=P?10:o>=z?5:o>=D?2:1)}function F(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=P?i*=10:o>=z?i*=5:o>=D&&(i*=2),n0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function I(t){return Math.ceil(Math.log(c(t))/Math.LN2)+1}function U(){var t=w,n=p,e=I;function r(r){Array.isArray(r)||(r=Array.from(r));var i,a,u=r.length,c=new Array(u);for(i=0;i=l)if(t>=l&&n===p){const t=R(s,l,e);isFinite(t)&&(t>0?l=(Math.floor(l/t)+1)*t:t<0&&(l=(Math.ceil(l*-t)+1)/-t))}else h.pop()}for(var d=h.length;h[0]<=s;)h.shift(),--d;for(;h[d-1]>l;)h.pop(),--d;var g,y=new Array(d+1);for(i=0;i<=d;++i)(g=y[i]=[]).x0=i>0?h[i-1]:s,g.x1=i=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e=i)&&(e=i)}return e}function Y(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function L(t,e,r=0,i=t.length-1,o=n){for(;i>r;){if(i-r>600){const n=i-r+1,a=e-r+1,u=Math.log(n),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(n-c)/n)*(a-n/2<0?-1:1);L(t,e,Math.max(r,Math.floor(e-a*c/n+f)),Math.min(i,Math.floor(e+(n-a)*c/n+f)),o)}const n=t[e];let a=r,u=i;for(j(t,r,e),o(t[i],n)>0&&j(t,r,i);a0;)--u}0===o(t[r],n)?j(t,r,u):(++u,j(t,u,i)),u<=e&&(r=u+1),e<=u&&(i=u-1)}return t}function j(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function H(t,n,e){if(r=(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,e))).length){if((n=+n)<=0||r<2)return Y(t);if(n>=1)return B(t);var r,i=(r-1)*n,o=Math.floor(i),a=B(L(t,o).subarray(0,o+1));return a+(Y(t.subarray(o+1))-a)*(i-o)}}function X(t,n,e=r){if(i=t.length){if((n=+n)<=0||i<2)return+e(t[0],0,t);if(n>=1)return+e(t[i-1],i-1,t);var i,o=(i-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function G(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e=o)&&(e=o,r=i);return r}function V(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function $(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function W(t,n){return[t,n]}function Z(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r+t(n)}function st(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function lt(){return!this.__axis}function ht(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=1===t||4===t?-1:1,s=4===t||2===t?"x":"y",l=1===t||3===t?ut:ct;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):ot:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?st:ft)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),A=w.enter().append("g").attr("class","tick"),T=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(A),T=T.merge(A.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(A.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),T=T.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",at).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),A.attr("opacity",at).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",4===t||2===t?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),T.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(lt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=it.call(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:it.call(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:it.call(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}var dt={value:()=>{}};function pt(){for(var t,n=0,e=arguments.length,r={};n=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function vt(t,n){for(var e,r=0,i=t.length;r0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),mt.hasOwnProperty(n)?{space:mt[n],local:t}:t}function wt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===bt&&n.documentElement.namespaceURI===bt?n.createElement(t):n.createElementNS(e,t)}}function Mt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function At(t){var n=xt(t);return(n.local?Mt:wt)(n)}function Tt(){}function St(t){return null==t?Tt:function(){return this.querySelector(t)}}function Et(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function kt(){return[]}function Nt(t){return null==t?kt:function(){return this.querySelectorAll(t)}}function Ct(t){return function(){return this.matches(t)}}function Pt(t){return function(n){return n.matches(t)}}var zt=Array.prototype.find;function Dt(){return this.firstElementChild}var qt=Array.prototype.filter;function Rt(){return this.children}function Ft(t){return new Array(t.length)}function Ot(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function It(t){return function(){return t}}function Ut(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;un?1:t>=n?0:NaN}function jt(t){return function(){this.removeAttribute(t)}}function Ht(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xt(t,n){return function(){this.setAttribute(t,n)}}function Gt(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Vt(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function $t(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Wt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zt(t){return function(){this.style.removeProperty(t)}}function Kt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Qt(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function Jt(t,n){return t.style.getPropertyValue(n)||Wt(t).getComputedStyle(t,null).getPropertyValue(n)}function tn(t){return function(){delete this[t]}}function nn(t,n){return function(){this[t]=n}}function en(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function rn(t){return t.trim().split(/^|\s+/)}function on(t){return t.classList||new an(t)}function an(t){this._node=t,this._names=rn(t.getAttribute("class")||"")}function un(t,n){for(var e=on(t),r=-1,i=n.length;++r=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function Tn(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Cn=[null];function Pn(t,n){this._groups=t,this._parents=n}function zn(){return new Pn([[document.documentElement]],Cn)}function Dn(t){return"string"==typeof t?new Pn([[document.querySelector(t)]],[document.documentElement]):new Pn([[t]],Cn)}Pn.prototype=zn.prototype={constructor:Pn,select:function(t){"function"!=typeof t&&(t=St(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i=x&&(x=m+1);!(b=y[x])&&++x=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Lt);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?Zt:"function"==typeof n?Qt:Kt)(t,n,null==e?"":e)):Jt(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?tn:"function"==typeof n?en:nn)(t,n)):this.node()[t]},classed:function(t,n){var e=rn(t+"");if(arguments.length<2){for(var r=on(this.node()),i=-1,o=e.length;++i()=>t;function Hn(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:s}})}function Xn(t){return!t.ctrlKey&&!t.button}function Gn(){return this.parentNode}function Vn(t,n){return null==n?{x:t.x,y:t.y}:n}function $n(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Zn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Kn(){}Hn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Qn=.7,Jn=1/Qn,te="\\s*([+-]?\\d+)\\s*",ne="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",ee="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",re=/^#([0-9a-f]{3,8})$/,ie=new RegExp("^rgb\\("+[te,te,te]+"\\)$"),oe=new RegExp("^rgb\\("+[ee,ee,ee]+"\\)$"),ae=new RegExp("^rgba\\("+[te,te,te,ne]+"\\)$"),ue=new RegExp("^rgba\\("+[ee,ee,ee,ne]+"\\)$"),ce=new RegExp("^hsl\\("+[ne,ee,ee]+"\\)$"),fe=new RegExp("^hsla\\("+[ne,ee,ee,ne]+"\\)$"),se={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function le(){return this.rgb().formatHex()}function he(){return this.rgb().formatRgb()}function de(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=re.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?pe(n):3===e?new _e(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?ge(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?ge(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=ie.exec(t))?new _e(n[1],n[2],n[3],1):(n=oe.exec(t))?new _e(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=ae.exec(t))?ge(n[1],n[2],n[3],n[4]):(n=ue.exec(t))?ge(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=ce.exec(t))?we(n[1],n[2]/100,n[3]/100,1):(n=fe.exec(t))?we(n[1],n[2]/100,n[3]/100,n[4]):se.hasOwnProperty(t)?pe(se[t]):"transparent"===t?new _e(NaN,NaN,NaN,0):null}function pe(t){return new _e(t>>16&255,t>>8&255,255&t,1)}function ge(t,n,e,r){return r<=0&&(t=n=e=NaN),new _e(t,n,e,r)}function ye(t){return t instanceof Kn||(t=de(t)),t?new _e((t=t.rgb()).r,t.g,t.b,t.opacity):new _e}function ve(t,n,e,r){return 1===arguments.length?ye(t):new _e(t,n,e,null==r?1:r)}function _e(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function be(){return"#"+xe(this.r)+xe(this.g)+xe(this.b)}function me(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function xe(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function we(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Te(t,n,e,r)}function Me(t){if(t instanceof Te)return new Te(t.h,t.s,t.l,t.opacity);if(t instanceof Kn||(t=de(t)),!t)return new Te;if(t instanceof Te)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&c<1?0:a,new Te(a,u,c,t.opacity)}function Ae(t,n,e,r){return 1===arguments.length?Me(t):new Te(t,n,e,null==r?1:r)}function Te(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Se(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Wn(Kn,de,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:le,formatHex:le,formatHsl:function(){return Me(this).formatHsl()},formatRgb:he,toString:he}),Wn(_e,ve,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:be,formatHex:be,formatRgb:me,toString:me})),Wn(Te,Ae,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new Te(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new Te(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new _e(Se(t>=240?t-240:t+120,i,r),Se(t,i,r),Se(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const Ee=Math.PI/180,ke=180/Math.PI,Ne=.96422,Ce=.82521,Pe=4/29,ze=6/29,De=3*ze*ze;function qe(t){if(t instanceof Fe)return new Fe(t.l,t.a,t.b,t.opacity);if(t instanceof je)return He(t);t instanceof _e||(t=ye(t));var n,e,r=Be(t.r),i=Be(t.g),o=Be(t.b),a=Oe((.2225045*r+.7168786*i+.0606169*o)/1);return r===i&&i===o?n=e=a:(n=Oe((.4360747*r+.3850649*i+.1430804*o)/Ne),e=Oe((.0139322*r+.0971045*i+.7141733*o)/Ce)),new Fe(116*a-16,500*(n-a),200*(a-e),t.opacity)}function Re(t,n,e,r){return 1===arguments.length?qe(t):new Fe(t,n,e,null==r?1:r)}function Fe(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Oe(t){return t>.008856451679035631?Math.pow(t,1/3):t/De+Pe}function Ie(t){return t>ze?t*t*t:De*(t-Pe)}function Ue(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Be(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ye(t){if(t instanceof je)return new je(t.h,t.c,t.l,t.opacity);if(t instanceof Fe||(t=qe(t)),0===t.a&&0===t.b)return new je(NaN,0=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r()=>t;function ar(t,n){return function(e){return t+e*n}}function ur(t,n){var e=n-t;return e?ar(t,e>180||e<-180?e-360*Math.round(e/360):e):or(isNaN(t)?n:t)}function cr(t){return 1==(t=+t)?fr:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):or(isNaN(n)?e:n)}}function fr(t,n){var e=n-t;return e?ar(t,e):or(isNaN(t)?n:t)}var sr=function t(n){var e=cr(n);function r(t,n){var r=e((t=ve(t)).r,(n=ve(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=fr(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function lr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;eo&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:_r(e,r)})),o=xr.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:_r(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:_r(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:_r(t,e)},{i:u-2,x:_r(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e=0&&n._call.call(null,t),n=n._next;--Gr}function oi(){Zr=(Wr=Qr.now())+Kr,Gr=Vr=0;try{ii()}finally{Gr=0,function(){var t,n,e=Hr,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Hr=n);Xr=t,ui(r)}(),Zr=0}}function ai(){var t=Qr.now(),n=t-Wr;n>1e3&&(Kr-=n,Wr=t)}function ui(t){Gr||(Vr&&(Vr=clearTimeout(Vr)),t-Zr>24?(t<1/0&&(Vr=setTimeout(oi,t-Qr.now()-Kr)),$r&&($r=clearInterval($r))):($r||(Wr=Qr.now(),$r=setInterval(ai,1e3)),Gr=1,Jr(oi)))}function ci(t,n,e){var r=new ei;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}ei.prototype=ri.prototype={constructor:ei,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ti():+e)+(null==n?0:+n),this._next||Xr===this||(Xr?Xr._next=this:Hr=this,Xr=this),this._call=t,this._time=e,ui()},stop:function(){this._call&&(this._call=null,this._time=1/0,ui())}};var fi=pt("start","end","cancel","interrupt"),si=[];function li(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=1,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var f,s,l,h;if(1!==e.state)return c();for(f in i)if((h=i[f]).name===e.name){if(3===h.state)return ci(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+f0)throw new Error("too late; already scheduled");return e}function di(t,n){var e=pi(t,n);if(e.state>3)throw new Error("too late; already running");return e}function pi(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function gi(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function yi(t,n){var e,r;return function(){var i=di(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?hi:di;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}var Fi=zn.prototype.constructor;function Oi(t){return function(){this.style.removeProperty(t)}}function Ii(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Ui(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&Ii(t,o,e)),r}return o._value=n,o}function Bi(t){return function(n){this.textContent=t.call(this,n)}}function Yi(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&Bi(r)),n}return r._value=t,r}var Li=0;function ji(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Hi(t){return zn().transition(t)}function Xi(){return++Li}var Gi=zn.prototype;ji.prototype=Hi.prototype={constructor:ji,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=St(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a()=>t;function mo(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function xo(t){t.stopImmediatePropagation()}function wo(t){t.preventDefault(),t.stopImmediatePropagation()}var Mo={name:"drag"},Ao={name:"space"},To={name:"handle"},So={name:"center"};const{abs:Eo,max:ko,min:No}=Math;function Co(t){return[+t[0],+t[1]]}function Po(t){return[Co(t[0]),Co(t[1])]}var zo={name:"x",handles:["w","e"].map(Bo),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Do={name:"y",handles:["n","s"].map(Bo),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},qo={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Bo),input:function(t){return null==t?null:Po(t)},output:function(t){return t}},Ro={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Fo={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Oo={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Io={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Uo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Bo(t){return{type:t}}function Yo(t){return!t.ctrlKey&&!t.button}function Lo(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function jo(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ho(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Xo(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Go(t){var n,e=Lo,r=Yo,i=jo,o=!0,a=pt("start","brush","end"),u=6;function c(n){var e=n.property("__brush",g).selectAll(".overlay").data([Bo("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Ro.overlay).merge(e).each((function(){var t=Ho(this).extent;Dn(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),n.selectAll(".selection").data([Bo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Ro.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return Ro[t.type]})),n.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(){var t=Dn(this),n=Ho(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?n[1][0]-u/2:n[0][0]-u/2})).attr("y",(function(t){return"s"===t.type[0]?n[1][1]-u/2:n[0][1]-u/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+u:u})).attr("height",(function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+u:u}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new l(t,n,e):r}function l(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function h(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,a,u,c,l,h,d,p,g,y,v,_=this,b=e.target.__data__.type,m="selection"===(o&&e.metaKey?b="overlay":b)?Mo:o&&e.altKey?So:To,x=t===Do?null:Io[b],w=t===zo?null:Uo[b],M=Ho(_),A=M.extent,T=M.selection,S=A[0][0],E=A[0][1],k=A[1][0],N=A[1][1],C=0,P=0,z=x&&w&&o&&e.shiftKey,D=Array.from(e.touches||[e],(t=>{const n=t.identifier;return(t=In(t,_)).point0=t.slice(),t.identifier=n,t}));if("overlay"===b){T&&(g=!0);const n=[D[0],D[1]||D[0]];M.selection=T=[[i=t===Do?S:No(n[0][0],n[1][0]),u=t===zo?E:No(n[0][1],n[1][1])],[l=t===Do?k:ko(n[0][0],n[1][0]),d=t===zo?N:ko(n[0][1],n[1][1])]],D.length>1&&U()}else i=T[0][0],u=T[0][1],l=T[1][0],d=T[1][1];a=i,c=u,h=l,p=d;var q=Dn(_).attr("pointer-events","none"),R=q.selectAll(".overlay").attr("cursor",Ro[b]);gi(_);var F=s(_,arguments,!0).beforestart();if(e.touches)F.moved=I,F.ended=B;else{var O=Dn(e.view).on("mousemove.brush",I,!0).on("mouseup.brush",B,!0);o&&O.on("keydown.brush",Y,!0).on("keyup.brush",L,!0),Yn(e.view)}f.call(_),F.start(e,m.name)}function I(t){for(const n of t.changedTouches||[t])for(const t of D)t.identifier===n.identifier&&(t.cur=In(n,_));if(z&&!y&&!v&&1===D.length){const t=D[0];Eo(t.cur[0]-t[0])>Eo(t.cur[1]-t[1])?v=!0:y=!0}for(const t of D)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,wo(t),U(t)}function U(t){const n=D[0],e=n.point0;var r;switch(C=n[0]-e[0],P=n[1]-e[1],m){case Ao:case Mo:x&&(C=ko(S-i,No(k-l,C)),a=i+C,h=l+C),w&&(P=ko(E-u,No(N-d,P)),c=u+P,p=d+P);break;case To:D[1]?(x&&(a=ko(S,No(k,D[0][0])),h=ko(S,No(k,D[1][0])),x=1),w&&(c=ko(E,No(N,D[0][1])),p=ko(E,No(N,D[1][1])),w=1)):(x<0?(C=ko(S-i,No(k-i,C)),a=i+C,h=l):x>0&&(C=ko(S-l,No(k-l,C)),a=i,h=l+C),w<0?(P=ko(E-u,No(N-u,P)),c=u+P,p=d):w>0&&(P=ko(E-d,No(N-d,P)),c=u,p=d+P));break;case So:x&&(a=ko(S,No(k,i-C*x)),h=ko(S,No(k,l+C*x))),w&&(c=ko(E,No(N,u-P*w)),p=ko(E,No(N,d+P*w)))}h0&&(i=a-C),w<0?d=p-P:w>0&&(u=c-P),m=Ao,R.attr("cursor",Ro.selection),U());break;default:return}wo(t)}function L(t){switch(t.keyCode){case 16:z&&(y=v=z=!1,U());break;case 18:m===So&&(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To,U());break;case 32:m===Ao&&(t.altKey?(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=So):(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To),R.attr("cursor",Ro[b]),U());break;default:return}wo(t)}}function d(t){s(this,arguments).moved(t)}function p(t){s(this,arguments).ended(t)}function g(){var n=this.__brush||{selection:null};return n.extent=Po(e.apply(this,arguments)),n.dim=t,n}return c.move=function(n,e){n.tween?n.on("start.brush",(function(t){s(this,arguments).beforestart().start(t)})).on("interrupt.brush end.brush",(function(t){s(this,arguments).end(t)})).tween("brush",(function(){var n=this,r=n.__brush,i=s(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=Mr(o,a);function c(t){r.selection=1===t&&null===a?null:u(t),f.call(n),i.brush()}return null!==o&&null!==a?c:c(1)})):n.each((function(){var n=this,r=arguments,i=n.__brush,o=t.input("function"==typeof e?e.apply(n,r):e,i.extent),a=s(n,r).beforestart();gi(n),i.selection=null===o?null:o,f.call(n),a.start().brush().end()}))},c.clear=function(t){c.move(t,null)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=Dn(this.that).datum();a.call(n,this.that,new mo(n,{sourceEvent:e,target:c,selection:t.output(this.state.selection),mode:r,dispatch:a}),i)}},c.extent=function(t){return arguments.length?(e="function"==typeof t?t:bo(Po(t)),c):e},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:bo(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:bo(!!t),c):i},c.handleSize=function(t){return arguments.length?(u=+t,c):u},c.keyModifiers=function(t){return arguments.length?(o=!!t,c):o},c.on=function(){var t=a.on.apply(a,arguments);return t===a?c:t},c}var Vo=Math.abs,$o=Math.cos,Wo=Math.sin,Zo=Math.PI,Ko=Zo/2,Qo=2*Zo,Jo=Math.max,ta=1e-12;function na(t,n){return Array.from({length:n-t},((n,e)=>t+e))}function ea(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function ra(t,n){var e=0,r=null,i=null,o=null;function a(a){var u,c=a.length,f=new Array(c),s=na(0,c),l=new Array(c*c),h=new Array(c),d=0;a=Float64Array.from({length:c*c},n?(t,n)=>a[n%c][n/c|0]:(t,n)=>a[n/c|0][n%c]);for(let n=0;nr(f[t],f[n])));for(const e of s){const r=n;if(t){const t=na(1+~c,c).filter((t=>t<0?a[~t*c+e]:a[e*c+t]));i&&t.sort(((t,n)=>i(t<0?-a[~t*c+e]:a[e*c+t],n<0?-a[~n*c+e]:a[e*c+n])));for(const r of t)if(r<0){(l[~r*c+e]||(l[~r*c+e]={source:null,target:null})).target={index:e,startAngle:n,endAngle:n+=a[~r*c+e]*d,value:a[~r*c+e]}}else{(l[e*c+r]||(l[e*c+r]={source:null,target:null})).source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}else{const t=na(0,c).filter((t=>a[e*c+t]||a[t*c+e]));i&&t.sort(((t,n)=>i(a[e*c+t],a[e*c+n])));for(const r of t){let t;if(eaa)if(Math.abs(s*u-c*f)>aa&&i){var h=e-o,d=r-a,p=u*u+c*c,g=h*h+d*d,y=Math.sqrt(p),v=Math.sqrt(l),_=i*Math.tan((ia-Math.acos((p+l-g)/(2*y*v)))/2),b=_/v,m=_/y;Math.abs(b-1)>aa&&(this._+="L"+(t+b*f)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>f*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,o=!!o;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>aa||Math.abs(this._y1-f)>aa)&&(this._+="L"+c+","+f),e&&(l<0&&(l=l%oa+oa),l>ua?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=c)+","+(this._y1=f):l>aa&&(this._+="A"+e+","+e+",0,"+ +(l>=ia)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var sa=Array.prototype.slice;function la(t){return function(){return t}}function ha(t){return t.source}function da(t){return t.target}function pa(t){return t.radius}function ga(t){return t.startAngle}function ya(t){return t.endAngle}function va(){return 0}function _a(){return 10}function ba(t){var n=ha,e=da,r=pa,i=pa,o=ga,a=ya,u=va,c=null;function f(){var f,s=n.apply(this,arguments),l=e.apply(this,arguments),h=u.apply(this,arguments)/2,d=sa.call(arguments),p=+r.apply(this,(d[0]=s,d)),g=o.apply(this,d)-Ko,y=a.apply(this,d)-Ko,v=+i.apply(this,(d[0]=l,d)),_=o.apply(this,d)-Ko,b=a.apply(this,d)-Ko;if(c||(c=f=fa()),h>ta&&(Vo(y-g)>2*h+ta?y>g?(g+=h,y-=h):(g-=h,y+=h):g=y=(g+y)/2,Vo(b-_)>2*h+ta?b>_?(_+=h,b-=h):(_-=h,b+=h):_=b=(_+b)/2),c.moveTo(p*$o(g),p*Wo(g)),c.arc(0,0,p,g,y),g!==_||y!==b)if(t){var m=+t.apply(this,arguments),x=v-m,w=(_+b)/2;c.quadraticCurveTo(0,0,x*$o(_),x*Wo(_)),c.lineTo(v*$o(w),v*Wo(w)),c.lineTo(x*$o(b),x*Wo(b))}else c.quadraticCurveTo(0,0,v*$o(_),v*Wo(_)),c.arc(0,0,v,_,b);if(c.quadraticCurveTo(0,0,p*$o(g),p*Wo(g)),c.closePath(),f)return c=null,f+""||null}return t&&(f.headRadius=function(n){return arguments.length?(t="function"==typeof n?n:la(+n),f):t}),f.radius=function(t){return arguments.length?(r=i="function"==typeof t?t:la(+t),f):r},f.sourceRadius=function(t){return arguments.length?(r="function"==typeof t?t:la(+t),f):r},f.targetRadius=function(t){return arguments.length?(i="function"==typeof t?t:la(+t),f):i},f.startAngle=function(t){return arguments.length?(o="function"==typeof t?t:la(+t),f):o},f.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:la(+t),f):a},f.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:la(+t),f):u},f.source=function(t){return arguments.length?(n=t,f):n},f.target=function(t){return arguments.length?(e=t,f):e},f.context=function(t){return arguments.length?(c=null==t?null:t,f):c},f}var ma=Array.prototype.slice;function xa(t,n){return t-n}var wa=t=>()=>t;function Ma(t,n){for(var e,r=-1,i=n.length;++rr!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function Ta(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function Sa(){}var Ea=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ka(){var t=1,n=1,e=I,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(xa);else{var r=p(t),i=r[0],a=r[1];n=F(i,a,n),n=Z(Math.floor(i/n)*n,Math.floor(a/n)*n,n)}return n.map((function(n){return o(t,n)}))}function o(e,i){var o=[],u=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=e[0]>=r,Ea[f<<1].forEach(p);for(;++o=r,Ea[c|f<<1].forEach(p);Ea[f<<0].forEach(p);for(;++u=r,s=e[u*t]>=r,Ea[f<<1|s<<2].forEach(p);++o=r,l=s,s=e[u*t+o+1]>=r,Ea[c|f<<1|s<<2|l<<3].forEach(p);Ea[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,Ea[s<<2].forEach(p);for(;++o=r,Ea[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}Ea[s<<3].forEach(p)}(e,i,(function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n0?o.push([t]):u.push(t)})),u.forEach((function(t){for(var n,e=0,r=o.length;e0&&a0&&u=0&&o>=0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:Sa,i):r===u},i}function Na(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[u-o+a*r]),n.data[u-e+a*r]=c/Math.min(u+1,r-1+o-u,o))}function Ca(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=c/Math.min(u+1,i-1+o-u,o))}function Pa(t){return t[0]}function za(t){return t[1]}function Da(){return 1}const qa=Math.pow(2,-52),Ra=new Uint32Array(512);class Fa{static from(t,n=Ha,e=Xa){const r=t.length,i=new Float64Array(2*r);for(let o=0;o>1;if(n>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*n-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:e,_hullTri:r,_hullHash:i}=this,o=t.length>>1;let a=1/0,u=1/0,c=-1/0,f=-1/0;for(let n=0;nc&&(c=e),r>f&&(f=r),this._ids[n]=n}const s=(a+c)/2,l=(u+f)/2;let h,d,p,g=1/0;for(let n=0;n0&&(d=n,g=e)}let _=t[2*d],b=t[2*d+1],m=1/0;for(let n=0;nr&&(n[e++]=i,r=this._dists[i])}return this.hull=n.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Ua(y,v,_,b,x,w)){const t=d,n=_,e=b;d=p,_=x,b=w,p=t,x=n,w=e}const M=function(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c);return{x:t+(f*s-u*l)*h,y:n+(a*l-c*s)*h}}(y,v,_,b,x,w);this._cx=M.x,this._cy=M.y;for(let n=0;n0&&Math.abs(f-o)<=qa&&Math.abs(s-a)<=qa)continue;if(o=f,a=s,c===h||c===d||c===p)continue;let l=0;for(let t=0,n=this._hashKey(f,s);t0?3-e:1+e)/4}(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:e,coords:r}=this;let i=0,o=0;for(;;){const a=e[t],u=t-t%3;if(o=u+(t+2)%3,-1===a){if(0===i)break;t=Ra[--i];continue}const c=a-a%3,f=u+(t+1)%3,s=c+(a+2)%3,l=n[o],h=n[t],d=n[f],p=n[s];if(Ba(r[2*l],r[2*l+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){n[t]=p,n[a]=l;const r=e[s];if(-1===r){let n=this._hullStart;do{if(this._hullTri[n]===s){this._hullTri[n]=t;break}n=this._hullPrev[n]}while(n!==this._hullStart)}this._link(t,r),this._link(a,e[o]),this._link(o,s);const u=c+(a+1)%3;i=33306690738754716e-32*Math.abs(a+u)?a-u:0}function Ua(t,n,e,r,i,o){return(Ia(i,o,t,n,e,r)||Ia(t,n,e,r,i,o)||Ia(e,r,i,o,t,n))<0}function Ba(t,n,e,r,i,o,a,u){const c=t-a,f=n-u,s=e-a,l=r-u,h=i-a,d=o-u,p=s*s+l*l,g=h*h+d*d;return c*(l*g-p*d)-f*(s*g-p*h)+(c*c+f*f)*(s*d-l*h)<0}function Ya(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=(f*s-u*l)*h,p=(a*l-c*s)*h;return d*d+p*p}function La(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const r=t[i],o=n[r];let a=i-1;for(;a>=e&&n[t[a]]>o;)t[a+1]=t[a--];t[a+1]=r}else{let i=e+1,o=r;ja(t,e+r>>1,i),n[t[e]]>n[t[r]]&&ja(t,e,r),n[t[i]]>n[t[r]]&&ja(t,i,r),n[t[e]]>n[t[i]]&&ja(t,e,i);const a=t[i],u=n[a];for(;;){do{i++}while(n[t[i]]u);if(o=o-e?(La(t,n,i,r),La(t,n,e,o-1)):(La(t,n,e,o-1),La(t,n,i,r))}}function ja(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function Ha(t){return t[0]}function Xa(t){return t[1]}const Ga=1e-6;class Va{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,e){const r=(t=+t)+(e=+e),i=n=+n;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>Ga||Math.abs(this._y1-i)>Ga)&&(this._+="L"+r+","+i),e&&(this._+=`A${e},${e},0,1,1,${t-e},${n}A${e},${e},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,n,e,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+e}v${+r}h${-e}Z`}value(){return this._||null}}class $a{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class Wa{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this,i=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,r,o=0,a=0,u=e.length;o1;)i-=2;for(let t=2;t4)for(let t=0;t0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)this.xmax?2:0)|(nthis.ymax?8:0)}}const Za=2*Math.PI,Ka=Math.pow;function Qa(t){return t[0]}function Ja(t){return t[1]}function tu(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class nu{static from(t,n=Qa,e=Ja,r){return new nu("length"in t?function(t,n,e,r){const i=t.length,o=new Float64Array(2*i);for(let a=0;a2&&function(t){const{triangles:n,coords:e}=t;for(let t=0;t1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:n.length/2},((t,n)=>n)).sort(((t,e)=>n[2*t]-n[2*e]||n[2*t+1]-n[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],r=[n[2*t],n[2*t+1],n[2*e],n[2*e+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let t=0,e=n.length/2;t0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],this.triangles[1]=r[1],this.triangles[2]=r[1],o[r[0]]=1,2===r.length&&(o[r[1]]=0))}voronoi(t){return new Wa(this,t)}*neighbors(t){const{inedges:n,hull:e,_hullIndex:r,halfedges:i,triangles:o,collinear:a}=this;if(a){const n=a.indexOf(t);return n>0&&(yield a[n-1]),void(n=0&&i!==e&&i!==r;)e=i;return i}_step(t,n,e){const{inedges:r,hull:i,_hullIndex:o,halfedges:a,triangles:u,points:c}=this;if(-1===r[t]||!c.length)return(t+1)%(c.length>>1);let f=t,s=Ka(n-c[2*t],2)+Ka(e-c[2*t+1],2);const l=r[t];let h=l;do{let r=u[h];const l=Ka(n-c[2*r],2)+Ka(e-c[2*r+1],2);if(l9999?"+"+au(t,6):au(t,4)}(t.getUTCFullYear())+"-"+au(t.getUTCMonth()+1,2)+"-"+au(t.getUTCDate(),2)+(i?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"."+au(i,3)+"Z":r?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"Z":e||n?"T"+au(n,2)+":"+au(e,2)+"Z":"")}function cu(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return ru;if(f)return f=!1,eu;var n,r,i=a;if(34===t.charCodeAt(i)){for(;a++=o?c=!0:10===(r=t.charCodeAt(a++))?f=!0:13===r&&(f=!0,10===t.charCodeAt(a)&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;aNu(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var Ru=qu("application/xml"),Fu=qu("text/html"),Ou=qu("image/svg+xml");function Iu(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,c,f,s,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,v=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Uu(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Bu(t){return t[0]}function Yu(t){return t[1]}function Lu(t,n,e){var r=new ju(null==n?Bu:n,null==e?Yu:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ju(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Hu(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var Xu=Lu.prototype=ju.prototype;function Gu(t){return function(){return t}}function Vu(t){return 1e-6*(t()-.5)}function $u(t){return t.x+t.vx}function Wu(t){return t.y+t.vy}function Zu(t){return t.index}function Ku(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}Xu.copy=function(){var t,n,e=new ju(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Hu(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Hu(n));return e},Xu.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Iu(this.cover(n,e),n,e,t)},Xu.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;es&&(s=r),il&&(l=i));if(c>s||f>l)return this;for(this.cover(c,f).cover(s,l),e=0;et||t>=i||r>n||n>=o;)switch(u=(nh||(o=c.y0)>d||(a=c.x1)=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,g.data),b=n-+this._y.call(null,g.data),m=_*_+b*b;if(m=(u=(p+y)/2))?p=u:y=u,(s=a>=(c=(g+v)/2))?g=c:v=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},Xu.removeAll=function(t){for(var n=0,e=t.length;n1?r[0]+r.slice(2):r,+t.slice(e+1)]}function rc(t){return(t=ec(Math.abs(t)))?t[1]:NaN}var ic,oc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ac(t){if(!(n=oc.exec(t)))throw new Error("invalid format: "+t);var n;return new uc({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function uc(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function cc(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}ac.prototype=uc.prototype,uc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fc={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>cc(100*t,n),r:cc,s:function(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(ic=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ec(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sc(t){return t}var lc,hc=Array.prototype.map,dc=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function pc(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?sc:(n=hc.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?sc:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(hc.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function l(t){var n=(t=ac(t)).fill,e=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,_=t.type;"n"===_?(g=!0,_="g"):fc[_]||(void 0===y&&(y=12),v=!0,_="g"),(d||"0"===n&&"="===e)&&(d=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",m="$"===h?o:/[%p]/.test(_)?c:"",x=fc[_],w=/[defgprs%]/.test(_);function M(t){var i,o,c,h=b,M=m;if("c"===_)M=x(t)+M,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:x(Math.abs(t),y),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&"+"!==l&&(A=!1),h=(A?"("===l?l:f:"-"===l||"("===l?"":l)+h,M=("s"===_?dc[8+ic/3]:"")+M+(A&&"("===l?")":""),w)for(i=-1,o=t.length;++i(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var T=h.length+t.length+M.length,S=T>1)+h+t+M+S.slice(T);break;default:t=S+h+t+M}return u(t)}return y=void 0===y?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),M.toString=function(){return t+""},M}return{format:l,formatPrefix:function(t,n){var e=l(((t=ac(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3))),i=Math.pow(10,-r),o=dc[8+r/3];return function(t){return e(i*t)+o}}}}function gc(n){return lc=pc(n),t.format=lc.format,t.formatPrefix=lc.formatPrefix,lc}function yc(t){return Math.max(0,-rc(Math.abs(t)))}function vc(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3)))-rc(Math.abs(t)))}function _c(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,rc(n)-rc(t))+1}t.format=void 0,t.formatPrefix=void 0,gc({thousands:",",grouping:[3],currency:["$",""]});var bc=1e-6,mc=1e-12,xc=Math.PI,wc=xc/2,Mc=xc/4,Ac=2*xc,Tc=180/xc,Sc=xc/180,Ec=Math.abs,kc=Math.atan,Nc=Math.atan2,Cc=Math.cos,Pc=Math.ceil,zc=Math.exp,Dc=Math.hypot,qc=Math.log,Rc=Math.pow,Fc=Math.sin,Oc=Math.sign||function(t){return t>0?1:t<0?-1:0},Ic=Math.sqrt,Uc=Math.tan;function Bc(t){return t>1?0:t<-1?xc:Math.acos(t)}function Yc(t){return t>1?wc:t<-1?-wc:Math.asin(t)}function Lc(t){return(t=Fc(t/2))*t}function jc(){}function Hc(t,n){t&&Gc.hasOwnProperty(t.type)&&Gc[t.type](t,n)}var Xc={Feature:function(t,n){Hc(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r=0?1:-1,i=r*e,o=Cc(n=(n*=Sc)/2+Mc),a=Fc(n),u=tf*a,c=Jc*o+u*Cc(i),f=u*r*Fc(i);df.add(Nc(f,c)),Qc=t,Jc=o,tf=a}function mf(t){return[Nc(t[1],t[0]),Yc(t[2])]}function xf(t){var n=t[0],e=t[1],r=Cc(e);return[r*Cc(n),r*Fc(n),Fc(e)]}function wf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Mf(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Af(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Tf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Sf(t){var n=Ic(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Ef,kf,Nf,Cf,Pf,zf,Df,qf,Rf,Ff,Of,If,Uf,Bf,Yf,Lf,jf={point:Hf,lineStart:Gf,lineEnd:Vf,polygonStart:function(){jf.point=$f,jf.lineStart=Wf,jf.lineEnd=Zf,sf=new g,gf.polygonStart()},polygonEnd:function(){gf.polygonEnd(),jf.point=Hf,jf.lineStart=Gf,jf.lineEnd=Vf,df<0?(nf=-(rf=180),ef=-(of=90)):sf>bc?of=90:sf<-1e-6&&(ef=-90),hf[0]=nf,hf[1]=rf},sphere:function(){nf=-(rf=180),ef=-(of=90)}};function Hf(t,n){lf.push(hf=[nf=t,rf=t]),nof&&(of=n)}function Xf(t,n){var e=xf([t*Sc,n*Sc]);if(ff){var r=Mf(ff,e),i=Mf([r[1],-r[0],0],r);Sf(i),i=mf(i);var o,a=t-af,u=a>0?1:-1,c=i[0]*Tc*u,f=Ec(a)>180;f^(u*afof&&(of=o):f^(u*af<(c=(c+360)%360-180)&&cof&&(of=n)),f?tKf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t):rf>=nf?(trf&&(rf=t)):t>af?Kf(nf,t)>Kf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t)}else lf.push(hf=[nf=t,rf=t]);nof&&(of=n),ff=e,af=t}function Gf(){jf.point=Xf}function Vf(){hf[0]=nf,hf[1]=rf,jf.point=Hf,ff=null}function $f(t,n){if(ff){var e=t-af;sf.add(Ec(e)>180?e+(e>0?360:-360):e)}else uf=t,cf=n;gf.point(t,n),Xf(t,n)}function Wf(){gf.lineStart()}function Zf(){$f(uf,cf),gf.lineEnd(),Ec(sf)>bc&&(nf=-(rf=180)),hf[0]=nf,hf[1]=rf,ff=null}function Kf(t,n){return(n-=t)<0?n+360:n}function Qf(t,n){return t[0]-n[0]}function Jf(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nxc?t+Math.round(-t/Ac)*Ac:t,n]}function ps(t,n,e){return(t%=Ac)?n||e?hs(ys(t),vs(n,e)):ys(t):n||e?vs(n,e):ds}function gs(t){return function(n,e){return[(n+=t)>xc?n-Ac:n<-xc?n+Ac:n,e]}}function ys(t){var n=gs(t);return n.invert=gs(-t),n}function vs(t,n){var e=Cc(t),r=Fc(t),i=Cc(n),o=Fc(n);function a(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*e+u*r;return[Nc(c*i-s*o,u*e-f*r),Yc(s*i+c*o)]}return a.invert=function(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*i-c*o;return[Nc(c*i+f*o,u*e+s*r),Yc(s*e-u*r)]},a}function _s(t){function n(n){return(n=t(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n}return t=ps(t[0]*Sc,t[1]*Sc,t.length>2?t[2]*Sc:0),n.invert=function(n){return(n=t.invert(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n},n}function bs(t,n,e,r,i,o){if(e){var a=Cc(n),u=Fc(n),c=r*e;null==i?(i=n+r*Ac,o=n-c/2):(i=ms(a,i),o=ms(a,o),(r>0?io)&&(i+=r*Ac));for(var f,s=i;r>0?s>o:s1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function ws(t,n){return Ec(t[0]-n[0])=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Ts(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r=0?1:-1,E=S*T,k=E>xc,N=v*M;if(c.add(Nc(N*S*Fc(E),_*A+N*Cc(E))),a+=k?T+S*Ac:T,k^p>=e^x>=e){var C=Mf(xf(d),xf(m));Sf(C);var P=Mf(o,C);Sf(P);var z=(k^T>=0?-1:1)*Yc(P[2]);(r>z||r===z&&(C[0]||C[1]))&&(u+=k^T>=0?1:-1)}}return(a<-1e-6||a0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(Ns))}return h}}function Ns(t){return t.length>1}function Cs(t,n){return((t=t.x)[0]<0?t[1]-wc-bc:wc-t[1])-((n=n.x)[0]<0?n[1]-wc-bc:wc-n[1])}ds.invert=ds;var Ps=ks((function(){return!0}),(function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?xc:-xc,c=Ec(o-e);Ec(c-xc)0?wc:-wc),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=xc&&(Ec(e-i)bc?kc((Fc(n)*(o=Cc(r))*Fc(e)-Fc(r)*(i=Cc(n))*Fc(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}),(function(t,n,e,r){var i;if(null==t)i=e*wc,r.point(-xc,i),r.point(0,i),r.point(xc,i),r.point(xc,0),r.point(xc,-i),r.point(0,-i),r.point(-xc,-i),r.point(-xc,0),r.point(-xc,i);else if(Ec(t[0]-n[0])>bc){var o=t[0]0,i=Ec(n)>bc;function o(t,e){return Cc(t)*Cc(e)>n}function a(t,e,r){var i=[1,0,0],o=Mf(xf(t),xf(e)),a=wf(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=Mf(i,o),h=Tf(i,f);Af(h,Tf(o,s));var d=l,p=wf(h,d),g=wf(d,d),y=p*p-g*(wf(h,h)-1);if(!(y<0)){var v=Ic(y),_=Tf(d,(-p-v)/g);if(Af(_,h),_=mf(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x0^_[1]<(Ec(_[0]-m)xc^(m<=_[0]&&_[0]<=x)){var S=Tf(d,(-p+v)/g);return Af(S,h),[_,mf(S)]}}}function u(n,e){var i=r?t:xc-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return ks(o,(function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],g=o(l,h),y=r?g?0:u(l,h):g?u(l+(l<0?xc:-xc),h):0;if(!n&&(f=c=g)&&t.lineStart(),g!==c&&(!(d=a(n,p))||ws(n,d)||ws(p,d))&&(p[2]=1),g!==c)s=0,g?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1],2),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;y&e||!(v=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1],3)))}!g||n&&ws(n,p)||t.point(p[0],p[1]),n=p,c=g,e=y},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}}),(function(n,r,i,o){bs(o,t,e,i,n,r)}),r?[0,-t]:[-xc,t-xc])}var Ds,qs,Rs,Fs,Os=1e9,Is=-Os;function Us(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return Ec(r[0]-t)0?0:3:Ec(r[0]-e)0?2:1:Ec(r[1]-n)0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,g,y,v,_,b=a,m=xs(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(M(l,h),d&&y&&m.rejoin(),c.push(m.result()));x.point=w,y&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;er&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=V(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&As(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),v)l=o,h=a,d=u,v=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&y)b.point(o,a);else{var c=[p=Math.max(Is,Math.min(Os,p)),g=Math.max(Is,Math.min(Os,g))],m=[o=Math.max(Is,Math.min(Os,o)),a=Math.max(Is,Math.min(Os,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a0)){if(a/=h,h<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,g=a,y=u}return x}}var Bs={sphere:jc,point:jc,lineStart:function(){Bs.point=Ls,Bs.lineEnd=Ys},lineEnd:jc,polygonStart:jc,polygonEnd:jc};function Ys(){Bs.point=Bs.lineEnd=jc}function Ls(t,n){qs=t*=Sc,Rs=Fc(n*=Sc),Fs=Cc(n),Bs.point=js}function js(t,n){t*=Sc;var e=Fc(n*=Sc),r=Cc(n),i=Ec(t-qs),o=Cc(i),a=r*Fc(i),u=Fs*e-Rs*r*o,c=Rs*e+Fs*r*o;Ds.add(Nc(Ic(a*a+u*u),c)),qs=t,Rs=e,Fs=r}function Hs(t){return Ds=new g,Wc(t,Bs),+Ds}var Xs=[null,null],Gs={type:"LineString",coordinates:Xs};function Vs(t,n){return Xs[0]=t,Xs[1]=n,Hs(Gs)}var $s={Feature:function(t,n){return Zs(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r0&&(i=Vs(t[o],t[o-1]))>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))bc})).map(c)).concat(Z(Pc(o/d)*d,i,d).filter((function(t){return Ec(t%g)>bc})).map(f))}return v.lines=function(){return _().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),v.precision(y)):[[r,u],[e,a]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),v.precision(y)):[[n,o],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(y=+h,c=el(o,i,90),f=rl(n,t,y),s=el(u,a,90),l=rl(r,e,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}var ol,al,ul,cl,fl=t=>t,sl=new g,ll=new g,hl={point:jc,lineStart:jc,lineEnd:jc,polygonStart:function(){hl.lineStart=dl,hl.lineEnd=yl},polygonEnd:function(){hl.lineStart=hl.lineEnd=hl.point=jc,sl.add(Ec(ll)),ll=new g},result:function(){var t=sl/2;return sl=new g,t}};function dl(){hl.point=pl}function pl(t,n){hl.point=gl,ol=ul=t,al=cl=n}function gl(t,n){ll.add(cl*t-ul*n),ul=t,cl=n}function yl(){gl(ol,al)}var vl=1/0,_l=vl,bl=-vl,ml=bl,xl={point:function(t,n){tbl&&(bl=t);n<_l&&(_l=n);n>ml&&(ml=n)},lineStart:jc,lineEnd:jc,polygonStart:jc,polygonEnd:jc,result:function(){var t=[[vl,_l],[bl,ml]];return bl=ml=-(_l=vl=1/0),t}};var wl,Ml,Al,Tl,Sl=0,El=0,kl=0,Nl=0,Cl=0,Pl=0,zl=0,Dl=0,ql=0,Rl={point:Fl,lineStart:Ol,lineEnd:Bl,polygonStart:function(){Rl.lineStart=Yl,Rl.lineEnd=Ll},polygonEnd:function(){Rl.point=Fl,Rl.lineStart=Ol,Rl.lineEnd=Bl},result:function(){var t=ql?[zl/ql,Dl/ql]:Pl?[Nl/Pl,Cl/Pl]:kl?[Sl/kl,El/kl]:[NaN,NaN];return Sl=El=kl=Nl=Cl=Pl=zl=Dl=ql=0,t}};function Fl(t,n){Sl+=t,El+=n,++kl}function Ol(){Rl.point=Il}function Il(t,n){Rl.point=Ul,Fl(Al=t,Tl=n)}function Ul(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,Fl(Al=t,Tl=n)}function Bl(){Rl.point=Fl}function Yl(){Rl.point=jl}function Ll(){Hl(wl,Ml)}function jl(t,n){Rl.point=Hl,Fl(wl=Al=t,Ml=Tl=n)}function Hl(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,zl+=(i=Tl*t-Al*n)*(Al+t),Dl+=i*(Tl+n),ql+=3*i,Fl(Al=t,Tl=n)}function Xl(t){this._context=t}Xl.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Ac)}},result:jc};var Gl,Vl,$l,Wl,Zl,Kl=new g,Ql={point:jc,lineStart:function(){Ql.point=Jl},lineEnd:function(){Gl&&th(Vl,$l),Ql.point=jc},polygonStart:function(){Gl=!0},polygonEnd:function(){Gl=null},result:function(){var t=+Kl;return Kl=new g,t}};function Jl(t,n){Ql.point=th,Vl=Wl=t,$l=Zl=n}function th(t,n){Wl-=t,Zl-=n,Kl.add(Ic(Wl*Wl+Zl*Zl)),Wl=t,Zl=n}function nh(){this._string=[]}function eh(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function rh(t){return function(n){var e=new ih;for(var r in t)e[r]=t[r];return e.stream=n,e}}function ih(){}function oh(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Wc(e,t.stream(xl)),n(xl.result()),null!=r&&t.clipExtent(r),t}function ah(t,n,e){return oh(t,(function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])}),e)}function uh(t,n,e){return ah(t,[[0,0],n],e)}function ch(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])}),e)}function fh(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])}),e)}nh.prototype={_radius:4.5,_circle:eh(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=eh(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},ih.prototype={constructor:ih,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sh=Cc(30*Sc);function lh(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,g,y){var v=f-r,_=s-i,b=v*v+_*_;if(b>4*n&&g--){var m=a+h,x=u+d,w=c+p,M=Ic(m*m+x*x+w*w),A=Yc(w/=M),T=Ec(Ec(w)-1)n||Ec((v*N+_*C)/b-.5)>.3||a*h+u*d+c*p2?t[2]%360*Sc:0,N()):[y*Tc,v*Tc,_*Tc]},E.angle=function(t){return arguments.length?(b=t%360*Sc,N()):b*Tc},E.reflectX=function(t){return arguments.length?(m=t?-1:1,N()):m<0},E.reflectY=function(t){return arguments.length?(x=t?-1:1,N()):x<0},E.precision=function(t){return arguments.length?(a=lh(u,S=t*t),C()):Ic(S)},E.fitExtent=function(t,n){return ah(E,t,n)},E.fitSize=function(t,n){return uh(E,t,n)},E.fitWidth=function(t,n){return ch(E,t,n)},E.fitHeight=function(t,n){return fh(E,t,n)},function(){return n=t.apply(this,arguments),E.invert=n.invert&&k,N()}}function yh(t){var n=0,e=xc/3,r=gh(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Sc,e=t[1]*Sc):[n*Tc,e*Tc]},i}function vh(t,n){var e=Fc(t),r=(e+Fc(n))/2;if(Ec(r)0?n<-wc+bc&&(n=-wc+bc):n>wc-bc&&(n=wc-bc);var e=i/Rc(Sh(n),r);return[e*Fc(r*t),i-e*Cc(r*t)]}return o.invert=function(t,n){var e=i-n,o=Oc(r)*Ic(t*t+e*e),a=Nc(t,Ec(e))*Oc(e);return e*r<0&&(a-=xc*Oc(t)*Oc(e)),[a/r,2*kc(Rc(i/o,1/r))-wc]},o}function kh(t,n){return[t,n]}function Nh(t,n){var e=Cc(t),r=t===n?Fc(t):(e-Cc(n))/(n-t),i=e/r+t;if(Ec(r)=0;)n+=e[r].value;else n=1;t.value=n}function Xh(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=Vh)):void 0===n&&(n=Gh);for(var e,r,i,o,a,u=new Zh(t),c=[u];e=c.pop();)if((i=n(e.data))&&(a=(i=Array.from(i)).length))for(e.children=i,o=a-1;o>=0;--o)c.push(r=i[o]=new Zh(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Wh)}function Gh(t){return t.children}function Vh(t){return Array.isArray(t)?t[1]:null}function $h(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function Wh(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Zh(t){this.data=t,this.depth=this.height=0,this.parent=null}function Kh(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(Array.from(t))).length,o=[];r0&&e*e>r*r+i*i}function nd(t,n){for(var e=0;e(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function ad(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function ud(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function cd(t){this._=t,this.next=null,this.previous=null}function fd(t){if(!(i=(t=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(t)).length))return 0;var n,e,r,i,o,a,u,c,f,s,l;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;od(e,n,r=t[2]),n=new cd(n),e=new cd(e),r=new cd(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;ubc&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ih.invert=xh(Yc),Uh.invert=xh((function(t){return 2*kc(t)})),Bh.invert=function(t,n){return[-n,2*kc(zc(t))-wc]},Zh.prototype=Xh.prototype={constructor:Zh,count:function(){return this.eachAfter(Hh)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,o=this,a=[o],u=[],c=-1;o=a.pop();)if(u.push(o),e=o.children)for(r=0,i=e.length;r=0;--r)o.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Xh(this).eachBefore($h)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;eh&&(h=u),y=s*s*g,(d=Math.max(h/y,y/l))>p){s-=u;break}p=d}v.push(a={value:s,dice:c1?n:1)},e}(Pd);var qd=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l1?n:1)},e}(Pd);function Rd(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function Fd(t,n){return t[0]-n[0]||t[1]-n[1]}function Od(t){const n=t.length,e=[0,1];let r,i=2;for(r=2;r1&&Rd(t[e[i-2]],t[e[i-1]],t[r])<=0;)--i;e[i++]=r}return e.slice(0,i)}var Id=Math.random,Ud=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Id),Bd=function t(n){function e(t,e){return arguments.length<2&&(e=t,t=0),t=Math.floor(t),e=Math.floor(e)-t,function(){return Math.floor(n()*e+t)}}return e.source=t,e}(Id),Yd=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Id),Ld=function t(n){var e=Yd.source(n);function r(){var t=e.apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(Id),jd=function t(n){function e(t){return(t=+t)<=0?()=>0:function(){for(var e=0,r=t;r>1;--r)e+=n();return e+r*n()}}return e.source=t,e}(Id),Hd=function t(n){var e=jd.source(n);function r(t){if(0==(t=+t))return n;var r=e(t);return function(){return r()/t}}return r.source=t,r}(Id),Xd=function t(n){function e(t){return function(){return-Math.log1p(-n())/t}}return e.source=t,e}(Id),Gd=function t(n){function e(t){if((t=+t)<0)throw new RangeError("invalid alpha");return t=1/-t,function(){return Math.pow(1-n(),t)}}return e.source=t,e}(Id),Vd=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return function(){return Math.floor(n()+t)}}return e.source=t,e}(Id),$d=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return 0===t?()=>1/0:1===t?()=>1:(t=Math.log1p(-t),function(){return 1+Math.floor(Math.log1p(-n())/t)})}return e.source=t,e}(Id),Wd=function t(n){var e=Yd.source(n)();function r(t,r){if((t=+t)<0)throw new RangeError("invalid k");if(0===t)return()=>0;if(r=null==r?1:+r,1===t)return()=>-Math.log1p(-n())*r;var i=(t<1?t+1:t)-1/3,o=1/(3*Math.sqrt(i)),a=t<1?()=>Math.pow(n(),1/t):()=>1;return function(){do{do{var t=e(),u=1+o*t}while(u<=0);u*=u*u;var c=1-n()}while(c>=1-.0331*t*t*t*t&&Math.log(c)>=.5*t*t+i*(1-u+Math.log(u)));return i*u*a()*r}}return r.source=t,r}(Id),Zd=function t(n){var e=Wd.source(n);function r(t,n){var r=e(t),i=e(n);return function(){var t=r();return 0===t?0:t/(t+i())}}return r.source=t,r}(Id),Kd=function t(n){var e=$d.source(n),r=Zd.source(n);function i(t,n){return t=+t,(n=+n)>=1?()=>t:n<=0?()=>0:function(){for(var i=0,o=t,a=n;o*a>16&&o*(1-a)>16;){var u=Math.floor((o+1)*a),c=r(u,o-u+1)();c<=a?(i+=u,o-=u,a=(a-c)/(1-c)):(o=u-1,a/=c)}for(var f=a<.5,s=e(f?a:1-a),l=s(),h=0;l<=o;++h)l+=s();return i+(f?h:o-h)}}return i.source=t,i}(Id),Qd=function t(n){function e(t,e,r){var i;return 0==(t=+t)?i=t=>-Math.log(t):(t=1/t,i=n=>Math.pow(n,t)),e=null==e?0:+e,r=null==r?1:+r,function(){return e+r*i(-Math.log1p(-n()))}}return e.source=t,e}(Id),Jd=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){return t+e*Math.tan(Math.PI*n())}}return e.source=t,e}(Id),tp=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){var r=n();return t+e*Math.log(r/(1-r))}}return e.source=t,e}(Id),np=function t(n){var e=Wd.source(n),r=Kd.source(n);function i(t){return function(){for(var i=0,o=t;o>16;){var a=Math.floor(.875*o),u=e(a)();if(u>o)return i+r(a-1,o/u)();i+=a,o-=u}for(var c=-Math.log1p(-n()),f=0;c<=o;++f)c-=Math.log1p(-n());return i+f}}return i.source=t,i}(Id);const ep=1/4294967296;function rp(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function ip(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const op=Symbol("implicit");function ap(){var t=new Map,n=[],e=[],r=op;function i(i){var o=i+"",a=t.get(o);if(!a){if(r!==op)return r;t.set(o,a=n.push(i))}return e[(a-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Map;for(const r of e){const e=r+"";t.has(e)||t.set(e,n.push(r))}return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return ap(n,e).unknown(r)},rp.apply(i,arguments),i}function up(){var t,n,e=ap().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,u=!1,c=0,f=0,s=.5;function l(){var e=r().length,l=an&&(e=t,t=n,n=e),function(e){return Math.max(t,Math.min(n,e))}}(a[0],a[t-1])),r=t>2?pp:dp,i=o=null,l}function l(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),_r)))(e)))},l.domain=function(t){return arguments.length?(a=Array.from(t,fp),s()):a.slice()},l.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},l.rangeRound=function(t){return u=Array.from(t),c=Ar,s()},l.clamp=function(t){return arguments.length?(f=!!t||lp,s()):f!==lp},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function vp(){return yp()(lp,lp)}function _p(n,e,r,i){var o,a=F(n,e,r);switch((i=ac(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=vc(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=_c(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=yc(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function bp(t){var n=t.domain;return t.ticks=function(t){var e=n();return q(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return _p(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,u=o.length-1,c=o[a],f=o[u],s=10;for(f0;){if((i=R(c,f,e))===r)return o[a]=c,o[u]=f,n(o);if(i>0)c=Math.floor(c/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,f=Math.floor(f*i)/i}r=i}return t},t}function mp(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a0){for(;h<=d;++h)for(s=1,f=r(h);sc)break;g.push(l)}}else for(;h<=d;++h)for(s=a-1,f=r(h);s>=1;--s)if(!((l=f*s)c)break;g.push(l)}2*g.length0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a=n)for(;t(n),!e(n);)n.setTime(n-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););}))},e&&(i.count=function(n,r){return Ip.setTime(+n),Up.setTime(+r),t(Ip),t(Up),Math.floor(e(Ip,Up))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var Yp=Bp((function(){}),(function(t,n){t.setTime(+t+n)}),(function(t,n){return n-t}));Yp.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Bp((function(n){n.setTime(Math.floor(n/t)*t)}),(function(n,e){n.setTime(+n+e*t)}),(function(n,e){return(e-n)/t})):Yp:null};var Lp=Yp.range;const jp=1e3,Hp=6e4,Xp=36e5,Gp=864e5,Vp=6048e5,$p=2592e6,Wp=31536e6;var Zp=Bp((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,n){t.setTime(+t+n*jp)}),(function(t,n){return(n-t)/jp}),(function(t){return t.getUTCSeconds()})),Kp=Zp.range,Qp=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getMinutes()})),Jp=Qp.range,tg=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp-t.getMinutes()*Hp)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getHours()})),ng=tg.range,eg=Bp((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Gp),(t=>t.getDate()-1)),rg=eg.range;function ig(t){return Bp((function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),(function(t,n){t.setDate(t.getDate()+7*n)}),(function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Vp}))}var og=ig(0),ag=ig(1),ug=ig(2),cg=ig(3),fg=ig(4),sg=ig(5),lg=ig(6),hg=og.range,dg=ag.range,pg=ug.range,gg=cg.range,yg=fg.range,vg=sg.range,_g=lg.range,bg=Bp((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,n){t.setMonth(t.getMonth()+n)}),(function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),mg=bg.range,xg=Bp((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n)}),(function(t,n){return n.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));xg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,e){n.setFullYear(n.getFullYear()+e*t)})):null};var wg=xg.range,Mg=Bp((function(t){t.setUTCSeconds(0,0)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getUTCMinutes()})),Ag=Mg.range,Tg=Bp((function(t){t.setUTCMinutes(0,0,0)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getUTCHours()})),Sg=Tg.range,Eg=Bp((function(t){t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+n)}),(function(t,n){return(n-t)/Gp}),(function(t){return t.getUTCDate()-1})),kg=Eg.range;function Ng(t){return Bp((function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+7*n)}),(function(t,n){return(n-t)/Vp}))}var Cg=Ng(0),Pg=Ng(1),zg=Ng(2),Dg=Ng(3),qg=Ng(4),Rg=Ng(5),Fg=Ng(6),Og=Cg.range,Ig=Pg.range,Ug=zg.range,Bg=Dg.range,Yg=qg.range,Lg=Rg.range,jg=Fg.range,Hg=Bp((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCMonth(t.getUTCMonth()+n)}),(function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),Xg=Hg.range,Gg=Bp((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)}),(function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Gg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null};var Vg=Gg.range;function $g(t,n,r,i,o,a){const u=[[Zp,1,jp],[Zp,5,5e3],[Zp,15,15e3],[Zp,30,3e4],[a,1,Hp],[a,5,3e5],[a,15,9e5],[a,30,18e5],[o,1,Xp],[o,3,108e5],[o,6,216e5],[o,12,432e5],[i,1,Gp],[i,2,1728e5],[r,1,Vp],[n,1,$p],[n,3,7776e6],[t,1,Wp]];function c(n,r,i){const o=Math.abs(r-n)/i,a=e((([,,t])=>t)).right(u,o);if(a===u.length)return t.every(F(n/Wp,r/Wp,i));if(0===a)return Yp.every(Math.max(F(n,r,i),1));const[c,f]=u[o/u[a-1][2]=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:bv,s:mv,S:By,u:Yy,U:Ly,V:Hy,w:Xy,W:Gy,x:null,X:null,y:Vy,Y:Wy,Z:Ky,"%":_v},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Qy,e:Qy,f:rv,g:pv,G:yv,H:Jy,I:tv,j:nv,L:ev,m:iv,M:ov,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:bv,s:mv,S:av,u:uv,U:cv,V:sv,w:lv,W:hv,x:null,X:null,y:dv,Y:gv,Z:vv,"%":_v},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=_.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return A(t,n,e,r)},d:wy,e:wy,f:ky,g:_y,G:vy,H:Ay,I:Ay,j:My,L:Ey,m:xy,M:Ty,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s.get(r[0].toLowerCase()),e+r[0].length):-1},q:my,Q:Cy,s:Py,S:Sy,u:dy,U:py,V:gy,w:hy,W:yy,x:function(t,n,r){return A(t,e,n,r)},X:function(t,n,e){return A(t,r,n,e)},y:_y,Y:vy,Z:by,"%":Ny};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=ty(ny(o.y,0,1))).getUTCDay(),r=i>4||0===i?Pg.ceil(r):Pg(r),r=Eg.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=Jg(ny(o.y,0,1))).getDay(),r=i>4||0===i?ag.ceil(r):ag(r),r=eg.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?ty(ny(o.y,0,1)).getUTCDay():Jg(ny(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,ty(o)):Jg(o)}}function A(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in iy?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}var ry,iy={"-":"",_:" ",0:"0"},oy=/^\s*\d+/,ay=/^%/,uy=/[\\^$*+?|[\]().{}]/g;function cy(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o[t.toLowerCase(),n])))}function hy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function dy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function py(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function gy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function yy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function vy(t,n,e){var r=oy.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function _y(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function by(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function my(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function xy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function wy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function My(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Ay(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Ty(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Sy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Ey(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ky(t,n,e){var r=oy.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Ny(t,n,e){var r=ay.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Cy(t,n,e){var r=oy.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Py(t,n,e){var r=oy.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function zy(t,n){return cy(t.getDate(),n,2)}function Dy(t,n){return cy(t.getHours(),n,2)}function qy(t,n){return cy(t.getHours()%12||12,n,2)}function Ry(t,n){return cy(1+eg.count(xg(t),t),n,3)}function Fy(t,n){return cy(t.getMilliseconds(),n,3)}function Oy(t,n){return Fy(t,n)+"000"}function Iy(t,n){return cy(t.getMonth()+1,n,2)}function Uy(t,n){return cy(t.getMinutes(),n,2)}function By(t,n){return cy(t.getSeconds(),n,2)}function Yy(t){var n=t.getDay();return 0===n?7:n}function Ly(t,n){return cy(og.count(xg(t)-1,t),n,2)}function jy(t){var n=t.getDay();return n>=4||0===n?fg(t):fg.ceil(t)}function Hy(t,n){return t=jy(t),cy(fg.count(xg(t),t)+(4===xg(t).getDay()),n,2)}function Xy(t){return t.getDay()}function Gy(t,n){return cy(ag.count(xg(t)-1,t),n,2)}function Vy(t,n){return cy(t.getFullYear()%100,n,2)}function $y(t,n){return cy((t=jy(t)).getFullYear()%100,n,2)}function Wy(t,n){return cy(t.getFullYear()%1e4,n,4)}function Zy(t,n){var e=t.getDay();return cy((t=e>=4||0===e?fg(t):fg.ceil(t)).getFullYear()%1e4,n,4)}function Ky(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+cy(n/60|0,"0",2)+cy(n%60,"0",2)}function Qy(t,n){return cy(t.getUTCDate(),n,2)}function Jy(t,n){return cy(t.getUTCHours(),n,2)}function tv(t,n){return cy(t.getUTCHours()%12||12,n,2)}function nv(t,n){return cy(1+Eg.count(Gg(t),t),n,3)}function ev(t,n){return cy(t.getUTCMilliseconds(),n,3)}function rv(t,n){return ev(t,n)+"000"}function iv(t,n){return cy(t.getUTCMonth()+1,n,2)}function ov(t,n){return cy(t.getUTCMinutes(),n,2)}function av(t,n){return cy(t.getUTCSeconds(),n,2)}function uv(t){var n=t.getUTCDay();return 0===n?7:n}function cv(t,n){return cy(Cg.count(Gg(t)-1,t),n,2)}function fv(t){var n=t.getUTCDay();return n>=4||0===n?qg(t):qg.ceil(t)}function sv(t,n){return t=fv(t),cy(qg.count(Gg(t),t)+(4===Gg(t).getUTCDay()),n,2)}function lv(t){return t.getUTCDay()}function hv(t,n){return cy(Pg.count(Gg(t)-1,t),n,2)}function dv(t,n){return cy(t.getUTCFullYear()%100,n,2)}function pv(t,n){return cy((t=fv(t)).getUTCFullYear()%100,n,2)}function gv(t,n){return cy(t.getUTCFullYear()%1e4,n,4)}function yv(t,n){var e=t.getUTCDay();return cy((t=e>=4||0===e?qg(t):qg.ceil(t)).getUTCFullYear()%1e4,n,4)}function vv(){return"+0000"}function _v(){return"%"}function bv(t){return+t}function mv(t){return Math.floor(+t/1e3)}function xv(n){return ry=ey(n),t.timeFormat=ry.format,t.timeParse=ry.parse,t.utcFormat=ry.utcFormat,t.utcParse=ry.utcParse,ry}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,xv({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var wv="%Y-%m-%dT%H:%M:%S.%LZ";var Mv=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(wv);var Av=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(wv);function Tv(t){return new Date(t)}function Sv(t){return t instanceof Date?+t:+new Date(+t)}function Ev(t,n,e,r,i,o,a,u,c,f){var s=vp(),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),g=f("%I:%M"),y=f("%I %p"),v=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y");function x(t){return(c(t)hr(t[t.length-1]),Xv=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Dv),Gv=Hv(Xv),Vv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Dv),$v=Hv(Vv),Wv=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Dv),Zv=Hv(Wv),Kv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Dv),Qv=Hv(Kv),Jv=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Dv),t_=Hv(Jv),n_=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Dv),e_=Hv(n_),r_=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Dv),i_=Hv(r_),o_=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Dv),a_=Hv(o_),u_=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Dv),c_=Hv(u_),f_=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Dv),s_=Hv(f_),l_=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Dv),h_=Hv(l_),d_=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Dv),p_=Hv(d_),g_=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Dv),y_=Hv(g_),v_=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Dv),__=Hv(v_),b_=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Dv),m_=Hv(b_),x_=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Dv),w_=Hv(x_),M_=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Dv),A_=Hv(M_),T_=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Dv),S_=Hv(T_),E_=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Dv),k_=Hv(E_),N_=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Dv),C_=Hv(N_),P_=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Dv),z_=Hv(P_),D_=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Dv),q_=Hv(D_),R_=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Dv),F_=Hv(R_),O_=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Dv),I_=Hv(O_),U_=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Dv),B_=Hv(U_),Y_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Dv),L_=Hv(Y_),j_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Dv),H_=Hv(j_);var X_=Lr(tr(300,.5,0),tr(-240,.5,1)),G_=Lr(tr(-100,.75,.35),tr(80,1.5,.8)),V_=Lr(tr(260,.75,.35),tr(80,1.5,.8)),$_=tr();var W_=ve(),Z_=Math.PI/3,K_=2*Math.PI/3;function Q_(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var J_=Q_(Dv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),tb=Q_(Dv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),nb=Q_(Dv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),eb=Q_(Dv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function rb(t){return function(){return t}}var ib=Math.abs,ob=Math.atan2,ab=Math.cos,ub=Math.max,cb=Math.min,fb=Math.sin,sb=Math.sqrt,lb=1e-12,hb=Math.PI,db=hb/2,pb=2*hb;function gb(t){return t>1?0:t<-1?hb:Math.acos(t)}function yb(t){return t>=1?db:t<=-1?-db:Math.asin(t)}function vb(t){return t.innerRadius}function _b(t){return t.outerRadius}function bb(t){return t.startAngle}function mb(t){return t.endAngle}function xb(t){return t&&t.padAngle}function wb(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*hC*C+P*P&&(A=S,T=E),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}var Ab=Array.prototype.slice;function Tb(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Sb(t){this._context=t}function Eb(t){return new Sb(t)}function kb(t){return t[0]}function Nb(t){return t[1]}function Cb(t,n){var e=rb(!0),r=null,i=Eb,o=null;function a(a){var u,c,f,s=(a=Tb(a)).length,l=!1;for(null==r&&(o=i(f=fa())),u=0;u<=s;++u)!(u=s;--l)u.point(y[l],v[l]);u.lineEnd(),u.areaEnd()}g&&(y[f]=+t(h,f,c),v[f]=+n(h,f,c),u.point(r?+r(h,f,c):y[f],e?+e(h,f,c):v[f]))}if(d)return u=null,d+""||null}function f(){return Cb().defined(i).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?kb:rb(+t),n="function"==typeof n?n:rb(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?Nb:rb(+e),c.x=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),r=null,c):t},c.x0=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),c):t},c.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:rb(+t),c):r},c.y=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),e=null,c):n},c.y0=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),c):n},c.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:rb(+t),c):e},c.lineX0=c.lineY0=function(){return f().x(t).y(n)},c.lineY1=function(){return f().x(t).y(e)},c.lineX1=function(){return f().x(r).y(n)},c.defined=function(t){return arguments.length?(i="function"==typeof t?t:rb(!!t),c):i},c.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),c):a},c.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),c):o},c}function zb(t,n){return nt?1:n>=t?0:NaN}function Db(t){return t}Sb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var qb=Fb(Eb);function Rb(t){this._curve=t}function Fb(t){function n(n){return new Rb(t(n))}return n._curve=t,n}function Ob(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Ib(){return Ob(Cb().curve(qb))}function Ub(){var t=Pb().curve(qb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Ob(e())},delete t.lineX0,t.lineEndAngle=function(){return Ob(r())},delete t.lineX1,t.lineInnerRadius=function(){return Ob(i())},delete t.lineY0,t.lineOuterRadius=function(){return Ob(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Bb(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Yb(t){return t.source}function Lb(t){return t.target}function jb(t){var n=Yb,e=Lb,r=kb,i=Nb,o=null;function a(){var a,u=Ab.call(arguments),c=n.apply(this,u),f=e.apply(this,u);if(o||(o=a=fa()),t(o,+r.apply(this,(u[0]=c,u)),+i.apply(this,u),+r.apply(this,(u[0]=f,u)),+i.apply(this,u)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.y=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function Hb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Xb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Gb(t,n,e,r,i){var o=Bb(n,e),a=Bb(n,e=(e+i)/2),u=Bb(r,e),c=Bb(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],c[0],c[1])}Rb.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Vb={draw:function(t,n){var e=Math.sqrt(n/hb);t.moveTo(e,0),t.arc(0,0,e,0,pb)}},$b={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Wb=Math.sqrt(1/3),Zb=2*Wb,Kb={draw:function(t,n){var e=Math.sqrt(n/Zb),r=e*Wb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Qb=Math.sin(hb/10)/Math.sin(7*hb/10),Jb=Math.sin(pb/10)*Qb,tm=-Math.cos(pb/10)*Qb,nm={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Jb*e,i=tm*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=pb*o/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*e,-u*e),t.lineTo(u*r-c*i,c*r+u*i)}t.closePath()}},em={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},rm=Math.sqrt(3),im={draw:function(t,n){var e=-Math.sqrt(n/(3*rm));t.moveTo(0,2*e),t.lineTo(-rm*e,-e),t.lineTo(rm*e,-e),t.closePath()}},om=-.5,am=Math.sqrt(3)/2,um=1/Math.sqrt(12),cm=3*(um/2+1),fm={draw:function(t,n){var e=Math.sqrt(n/cm),r=e/2,i=e*um,o=r,a=e*um+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(om*r-am*i,am*r+om*i),t.lineTo(om*o-am*a,am*o+om*a),t.lineTo(om*u-am*c,am*u+om*c),t.lineTo(om*r+am*i,om*i-am*r),t.lineTo(om*o+am*a,om*a-am*o),t.lineTo(om*u+am*c,om*c-am*u),t.closePath()}},sm=[Vb,$b,Kb,em,nm,im,fm];function lm(){}function hm(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function dm(t){this._context=t}function pm(t){this._context=t}function gm(t){this._context=t}dm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:hm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},pm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},gm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};class ym{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}function vm(t,n){this._basis=new dm(t),this._beta=n}vm.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var _m=function t(n){function e(t){return 1===n?new dm(t):new vm(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function bm(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function mm(t,n){this._context=t,this._k=(1-n)/6}mm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:bm(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var xm=function t(n){function e(t){return new mm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function wm(t,n){this._context=t,this._k=(1-n)/6}wm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Mm=function t(n){function e(t){return new wm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Am(t,n){this._context=t,this._k=(1-n)/6}Am.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Tm=function t(n){function e(t){return new Am(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Sm(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>lb){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>lb){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Em(t,n){this._context=t,this._alpha=n}Em.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var km=function t(n){function e(t){return n?new Em(t,n):new mm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Nm(t,n){this._context=t,this._alpha=n}Nm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Cm=function t(n){function e(t){return n?new Nm(t,n):new wm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Pm(t,n){this._context=t,this._alpha=n}Pm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var zm=function t(n){function e(t){return n?new Pm(t,n):new Am(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Dm(t){this._context=t}function qm(t){return t<0?-1:1}function Rm(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(qm(o)+qm(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function Fm(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Om(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function Im(t){this._context=t}function Um(t){this._context=new Bm(t)}function Bm(t){this._context=t}function Ym(t){this._context=t}function Lm(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o=0;)e[n]=n;return e}function Gm(t,n){return t[n]}function Vm(t){const n=[];return n.key=t,n}function $m(t){var n=t.map(Wm);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Wm(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++eo&&(o=n,r=e);return r}function Zm(t){var n=t.map(Km);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Km(t){for(var n,e=0,r=-1,i=t.length;++r=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var Qm=t=>()=>t;function Jm(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function tx(t,n,e){this.k=t,this.x=n,this.y=e}tx.prototype={constructor:tx,scale:function(t){return 1===t?this:new tx(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new tx(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var nx=new tx(1,0,0);function ex(t){for(;!t.__zoom;)if(!(t=t.parentNode))return nx;return t.__zoom}function rx(t){t.stopImmediatePropagation()}function ix(t){t.preventDefault(),t.stopImmediatePropagation()}function ox(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function ax(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function ux(){return this.__zoom||nx}function cx(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function fx(){return navigator.maxTouchPoints||"ontouchstart"in this}function sx(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}ex.prototype=tx.prototype,t.Adder=g,t.Delaunay=nu,t.FormatSpecifier=uc,t.InternMap=y,t.InternSet=v,t.Voronoi=Wa,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>1&&e.name===n)return new ji([[t]],_o,n,+r);return null},t.arc=function(){var t=vb,n=_b,e=rb(0),r=null,i=bb,o=mb,a=xb,u=null;function c(){var c,f,s=+t.apply(this,arguments),l=+n.apply(this,arguments),h=i.apply(this,arguments)-db,d=o.apply(this,arguments)-db,p=ib(d-h),g=d>h;if(u||(u=c=fa()),llb)if(p>pb-lb)u.moveTo(l*ab(h),l*fb(h)),u.arc(0,0,l,h,d,!g),s>lb&&(u.moveTo(s*ab(d),s*fb(d)),u.arc(0,0,s,d,h,g));else{var y,v,_=h,b=d,m=h,x=d,w=p,M=p,A=a.apply(this,arguments)/2,T=A>lb&&(r?+r.apply(this,arguments):sb(s*s+l*l)),S=cb(ib(l-s)/2,+e.apply(this,arguments)),E=S,k=S;if(T>lb){var N=yb(T/s*fb(A)),C=yb(T/l*fb(A));(w-=2*N)>lb?(m+=N*=g?1:-1,x-=N):(w=0,m=x=(h+d)/2),(M-=2*C)>lb?(_+=C*=g?1:-1,b-=C):(M=0,_=b=(h+d)/2)}var P=l*ab(_),z=l*fb(_),D=s*ab(x),q=s*fb(x);if(S>lb){var R,F=l*ab(b),O=l*fb(b),I=s*ab(m),U=s*fb(m);if(plb?k>lb?(y=Mb(I,U,P,z,l,k,g),v=Mb(F,O,D,q,l,k,g),u.moveTo(y.cx+y.x01,y.cy+y.y01),klb&&w>lb?E>lb?(y=Mb(D,q,F,O,s,-E,g),v=Mb(P,z,I,U,s,-E,g),u.lineTo(y.cx+y.x01,y.cy+y.y01),E>a,f=i+2*u>>a,s=wa(20);function l(r){var i=new Float32Array(c*f),l=new Float32Array(c*f);r.forEach((function(r,o,s){var l=+t(r,o,s)+u>>a,h=+n(r,o,s)+u>>a,d=+e(r,o,s);l>=0&&l=0&&h>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a);var d=s(i);if(!Array.isArray(d)){var p=B(i);d=F(0,p,d),(d=Z(0,Math.floor(p/d)*d,d)).shift()}return ka().thresholds(d).size([c,f])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function y(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,l}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:wa(+n),l):t},l.y=function(t){return arguments.length?(n="function"==typeof t?t:wa(+t),l):n},l.weight=function(t){return arguments.length?(e="function"==typeof t?t:wa(+t),l):e},l.size=function(t){if(!arguments.length)return[r,i];var n=+t[0],e=+t[1];if(!(n>=0&&e>=0))throw new Error("invalid size");return r=n,i=e,y()},l.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),l):s},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},t.contours=ka,t.count=c,t.create=function(t){return Dn(At(t).call(document.documentElement))},t.creator=At,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(l)).map(f),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(s))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}},t.csv=Pu,t.csvFormat=hu,t.csvFormatBody=du,t.csvFormatRow=gu,t.csvFormatRows=pu,t.csvFormatValue=yu,t.csvParse=su,t.csvParseRows=lu,t.cubehelix=tr,t.cumsum=function(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)},t.curveBasis=function(t){return new dm(t)},t.curveBasisClosed=function(t){return new pm(t)},t.curveBasisOpen=function(t){return new gm(t)},t.curveBumpX=function(t){return new ym(t,!0)},t.curveBumpY=function(t){return new ym(t,!1)},t.curveBundle=_m,t.curveCardinal=xm,t.curveCardinalClosed=Mm,t.curveCardinalOpen=Tm,t.curveCatmullRom=km,t.curveCatmullRomClosed=Cm,t.curveCatmullRomOpen=zm,t.curveLinear=Eb,t.curveLinearClosed=function(t){return new Dm(t)},t.curveMonotoneX=function(t){return new Im(t)},t.curveMonotoneY=function(t){return new Um(t)},t.curveNatural=function(t){return new Ym(t)},t.curveStep=function(t){return new jm(t,.5)},t.curveStepAfter=function(t){return new jm(t,1)},t.curveStepBefore=function(t){return new jm(t,0)},t.descending=function(t,n){return nt?1:n>=t?0:NaN},t.deviation=d,t.difference=function(t,...n){t=new Set(t);for(const e of n)for(const n of e)t.delete(n);return t},t.disjoint=function(t,n){const e=n[Symbol.iterator](),r=new Set;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0},t.dispatch=pt,t.drag=function(){var t,n,e,r,i=Xn,o=Gn,a=Vn,u=$n,c={},f=pt("start","drag","end"),s=0,l=0;function h(t){t.on("mousedown.drag",d).filter(u).on("touchstart.drag",y).on("touchmove.drag",v).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(a,u){if(!r&&i.call(this,a,u)){var c=b(this,o.call(this,a,u),a,u,"mouse");c&&(Dn(a.view).on("mousemove.drag",p,!0).on("mouseup.drag",g,!0),Yn(a.view),Un(a),e=!1,t=a.clientX,n=a.clientY,c("start",a))}}function p(r){if(Bn(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>l}c.mouse("drag",r)}function g(t){Dn(t.view).on("mousemove.drag mouseup.drag",null),Ln(t.view,e),Bn(t),c.mouse("end",t)}function y(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),c=a.length;for(e=0;e+t,t.easePoly=Ki,t.easePolyIn=Wi,t.easePolyInOut=Ki,t.easePolyOut=Zi,t.easeQuad=Vi,t.easeQuadIn=function(t){return t*t},t.easeQuadInOut=Vi,t.easeQuadOut=function(t){return t*(2-t)},t.easeSin=to,t.easeSinIn=function(t){return 1==+t?1:1-Math.cos(t*Ji)},t.easeSinInOut=to,t.easeSinOut=function(t){return Math.sin(t*Ji)},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0},t.extent=p,t.fcumsum=function(t,n){const e=new g;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e},t.forceCenter=function(t,n){var e,r=1;function i(){var i,o,a=e.length,u=0,c=0;for(i=0;if+p||os+p||ac.index){var g=f-u.x-u.vx,y=s-u.y-u.vy,v=g*g+y*y;vt.r&&(t.r=t[n].r)}function c(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r[u(t,n,r),t])));for(a=0,i=new Array(f);a=u)){(t.data!==n||t.next)&&(0===l&&(p+=(l=Vu(e))*l),0===h&&(p+=(h=Vu(e))*h),p(t=(1664525*t+1013904223)%Qu)/Qu}();function l(){h(),f.call("tick",n),e1?(null==e?u.delete(t):u.set(t,p(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=Gu(.1);function o(t){for(var i,o=0,a=n.length;o=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++eKf(r[0],r[1])&&(r[1]=i[1]),Kf(i[0],r[1])>Kf(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Kf(r[1],i[0]))>a&&(a=u,nf=i[0],rf=r[1])}return lf=hf=null,nf===1/0||ef===1/0?[[NaN,NaN],[NaN,NaN]]:[[nf,ef],[rf,of]]},t.geoCentroid=function(t){Ef=kf=Nf=Cf=Pf=zf=Df=qf=0,Rf=new g,Ff=new g,Of=new g,Wc(t,ts);var n=+Rf,e=+Ff,r=+Of,i=Dc(n,e,r);return i2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Bh,t.gray=function(t,n){return new Fe(t,0,0,null==n?1:n)},t.greatest=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)>0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)>0:0===e(n,n))&&(r=n,i=!0);return r},t.greatestIndex=function(t,e=n){if(1===e.length)return G(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)>0)&&(r=n,i=o);return i},t.group=M,t.groupSort=function(t,e,r){return(1===e.length?k(A(t,e,r),(([t,e],[r,i])=>n(e,i)||n(t,r))):k(M(t,r),(([t,r],[i,o])=>e(r,o)||n(t,i)))).map((([t])=>t))},t.groups=function(t,...n){return S(t,Array.from,w,n)},t.hcl=Le,t.hierarchy=Xh,t.histogram=U,t.hsl=Ae,t.html=Fu,t.image=function(t,n){return new Promise((function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t}))},t.index=function(t,...n){return S(t,w,T,n)},t.indexes=function(t,...n){return S(t,Array.from,T,n)},t.interpolate=Mr,t.interpolateArray=function(t,n){return(gr(n)?pr:yr)(t,n)},t.interpolateBasis=rr,t.interpolateBasisClosed=ir,t.interpolateBlues=q_,t.interpolateBrBG=Gv,t.interpolateBuGn=s_,t.interpolateBuPu=h_,t.interpolateCividis=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},t.interpolateCool=V_,t.interpolateCubehelix=Yr,t.interpolateCubehelixDefault=X_,t.interpolateCubehelixLong=Lr,t.interpolateDate=vr,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateGnBu=p_,t.interpolateGreens=F_,t.interpolateGreys=I_,t.interpolateHcl=Ir,t.interpolateHclLong=Ur,t.interpolateHsl=Rr,t.interpolateHslLong=Fr,t.interpolateHue=function(t,n){var e=ur(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateInferno=nb,t.interpolateLab=function(t,n){var e=fr((t=Re(t)).l,(n=Re(n)).l),r=fr(t.a,n.a),i=fr(t.b,n.b),o=fr(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateMagma=tb,t.interpolateNumber=_r,t.interpolateNumberArray=pr,t.interpolateObject=br,t.interpolateOrRd=y_,t.interpolateOranges=H_,t.interpolatePRGn=$v,t.interpolatePiYG=Zv,t.interpolatePlasma=eb,t.interpolatePuBu=m_,t.interpolatePuBuGn=__,t.interpolatePuOr=Qv,t.interpolatePuRd=w_,t.interpolatePurples=B_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return $_.h=360*t-100,$_.s=1.5-1.5*n,$_.l=.8-.9*n,$_+""},t.interpolateRdBu=t_,t.interpolateRdGy=e_,t.interpolateRdPu=A_,t.interpolateRdYlBu=i_,t.interpolateRdYlGn=a_,t.interpolateReds=L_,t.interpolateRgb=sr,t.interpolateRgbBasis=hr,t.interpolateRgbBasisClosed=dr,t.interpolateRound=Ar,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,W_.r=255*(n=Math.sin(t))*n,W_.g=255*(n=Math.sin(t+Z_))*n,W_.b=255*(n=Math.sin(t+K_))*n,W_+""},t.interpolateSpectral=c_,t.interpolateString=wr,t.interpolateTransformCss=Cr,t.interpolateTransformSvg=Pr,t.interpolateTurbo=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},t.interpolateViridis=J_,t.interpolateWarm=G_,t.interpolateYlGn=k_,t.interpolateYlGnBu=S_,t.interpolateYlOrBr=C_,t.interpolateYlOrRd=z_,t.interpolateZoom=Dr,t.interrupt=gi,t.intersection=function(t,...n){t=new Set(t),n=n.map(et);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},t.interval=function(t,n,e){var r=new ei,i=n;return null==n?(r.restart(t,n,e),r):(r._restart=r.restart,r.restart=function(t,n,e){n=+n,e=null==e?ti():+e,r._restart((function o(a){a+=i,r._restart(o,i+=n,e),t(a)}),n,e)},r.restart(t,n,e),r)},t.isoFormat=Mv,t.isoParse=Av,t.json=function(t,n){return fetch(t,n).then(Du)},t.lab=Re,t.lch=function(t,n,e,r){return 1===arguments.length?Ye(t):new je(e,n,t,null==r?1:r)},t.least=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)<0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)<0:0===e(n,n))&&(r=n,i=!0);return r},t.leastIndex=K,t.line=Cb,t.lineRadial=Ib,t.linkHorizontal=function(){return jb(Hb)},t.linkRadial=function(){var t=jb(Gb);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return jb(Xb)},t.local=Rn,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))},t.matcher=Ct,t.max=B,t.maxIndex=G,t.mean=function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e},t.median=function(t,n){return H(t,.5,n)},t.merge=V,t.min=Y,t.minIndex=$,t.namespace=xt,t.namespaces=mt,t.nice=O,t.now=ti,t.pack=function(){var t=null,n=1,e=1,r=hd;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(gd(t)).eachAfter(yd(r,.5)).eachBefore(vd(1)):i.eachBefore(gd(pd)).eachAfter(yd(hd,1)).eachAfter(yd(r,i.r/Math.min(n,e))).eachBefore(vd(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=sd(n),i):t},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:dd(+t),i):r},i},t.packEnclose=Kh,t.packSiblings=function(t){return fd(t),t},t.pairs=function(t,n=W){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e},t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&bd(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a0&&(d+=l);for(null!=n?p.sort((function(t,e){return n(g[t],g[e])})):null!=e&&p.sort((function(t,n){return e(a[t],a[n])})),u=0,f=d?(v-h*b)/d:0;u0?l*f:0)+b,g[c]={data:a[c],index:u,value:l,startAngle:y,endAngle:s,padAngle:_};return g}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:rb(+t),a):o},a},t.piecewise=jr,t.pointRadial=Bb,t.pointer=In,t.pointers=function(t,n){return t.target&&(t=On(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>In(t,n)))},t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++eu!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;n(n=1664525*n+1013904223|0,ep*(n>>>0))},t.randomLogNormal=Ld,t.randomLogistic=tp,t.randomNormal=Yd,t.randomPareto=Gd,t.randomPoisson=np,t.randomUniform=Ud,t.randomWeibull=Qd,t.range=Z,t.reduce=function(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rgb=ve,t.ribbon=function(){return ba()},t.ribbonArrow=function(){return ba(_a)},t.rollup=A,t.rollups=function(t,n,...e){return S(t,Array.from,n,e)},t.scaleBand=up,t.scaleDiverging=function t(){var n=bp(Pv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleDivergingLog=function t(){var n=Ep(Pv()).domain([.1,1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleDivergingPow=zv,t.scaleDivergingSqrt=function(){return zv.apply(null,arguments).exponent(.5)},t.scaleDivergingSymlog=function t(){var n=Cp(Pv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleIdentity=function t(n){var e;function r(t){return null==t||isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,fp),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,fp):[0,1],bp(r)},t.scaleImplicit=op,t.scaleLinear=function t(){var n=vp();return n.copy=function(){return gp(n,t())},rp.apply(n,arguments),bp(n)},t.scaleLog=function t(){var n=Ep(yp()).domain([1,10]);return n.copy=function(){return gp(n,t()).base(n.base())},rp.apply(n,arguments),n},t.scaleOrdinal=ap,t.scalePoint=function(){return cp(up.apply(null,arguments).paddingInner(1))},t.scalePow=Rp,t.scaleQuantile=function t(){var e,r=[],i=[],a=[];function u(){var t=0,n=Math.max(1,i.length);for(a=new Array(n-1);++t0?a[n-1]:r[0],n=i?[a[i-1],r]:[a[n-1],a[n]]},c.unknown=function(t){return arguments.length?(n=t,c):c},c.thresholds=function(){return a.slice()},c.copy=function(){return t().domain([e,r]).range(u).unknown(n)},rp.apply(bp(c),arguments)},t.scaleRadial=function t(){var n,e=vp(),r=[0,1],i=!1;function o(t){var r=Op(e(t));return isNaN(r)?n:i?Math.round(r):r}return o.invert=function(t){return e.invert(Fp(t))},o.domain=function(t){return arguments.length?(e.domain(t),o):e.domain()},o.range=function(t){return arguments.length?(e.range((r=Array.from(t,fp)).map(Fp)),o):r.slice()},o.rangeRound=function(t){return o.range(t).round(!0)},o.round=function(t){return arguments.length?(i=!!t,o):i},o.clamp=function(t){return arguments.length?(e.clamp(t),o):e.clamp()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(e.domain(),r).round(i).clamp(e.clamp()).unknown(n)},rp.apply(o,arguments),bp(o)},t.scaleSequential=function t(){var n=bp(kv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=Ep(kv()).domain([1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleSequentialPow=Cv,t.scaleSequentialQuantile=function t(){var e=[],r=lp;function i(t){if(null!=t&&!isNaN(t=+t))return r((o(e,t,1)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(n),i},i.interpolator=function(t){return arguments.length?(r=t,i):r},i.range=function(){return e.map(((t,n)=>r(n/(e.length-1))))},i.quantiles=function(t){return Array.from({length:t+1},((n,r)=>H(e,r/t)))},i.copy=function(){return t(r).domain(e)},ip.apply(i,arguments)},t.scaleSequentialSqrt=function(){return Cv.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Cp(kv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleSqrt=function(){return Rp.apply(null,arguments).exponent(.5)},t.scaleSymlog=function t(){var n=Cp(yp());return n.copy=function(){return gp(n,t()).constant(n.constant())},rp.apply(n,arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],i=1;function a(t){return null!=t&&t<=t?r[o(e,t,0,i)]:n}return a.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},a.unknown=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},rp.apply(a,arguments)},t.scaleTime=function(){return rp.apply(Ev(Kg,Qg,xg,bg,og,eg,tg,Qp,Zp,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return rp.apply(Ev(Wg,Zg,Gg,Hg,Cg,Eg,Tg,Mg,Zp,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scan=function(t,n){const e=K(t,n);return e<0?void 0:e},t.schemeAccent=Rv,t.schemeBlues=D_,t.schemeBrBG=Xv,t.schemeBuGn=f_,t.schemeBuPu=l_,t.schemeCategory10=qv,t.schemeDark2=Fv,t.schemeGnBu=d_,t.schemeGreens=R_,t.schemeGreys=O_,t.schemeOrRd=g_,t.schemeOranges=j_,t.schemePRGn=Vv,t.schemePaired=Ov,t.schemePastel1=Iv,t.schemePastel2=Uv,t.schemePiYG=Wv,t.schemePuBu=b_,t.schemePuBuGn=v_,t.schemePuOr=Kv,t.schemePuRd=x_,t.schemePurples=U_,t.schemeRdBu=Jv,t.schemeRdGy=n_,t.schemeRdPu=M_,t.schemeRdYlBu=r_,t.schemeRdYlGn=o_,t.schemeReds=Y_,t.schemeSet1=Bv,t.schemeSet2=Yv,t.schemeSet3=Lv,t.schemeSpectral=u_,t.schemeTableau10=jv,t.schemeYlGn=E_,t.schemeYlGnBu=T_,t.schemeYlOrBr=N_,t.schemeYlOrRd=P_,t.select=Dn,t.selectAll=function(t){return"string"==typeof t?new Pn([document.querySelectorAll(t)],[document.documentElement]):new Pn([null==t?[]:Et(t)],Cn)},t.selection=zn,t.selector=St,t.selectorAll=Nt,t.shuffle=Q,t.shuffler=J,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1},t.sort=k,t.stack=function(){var t=rb([]),n=Xm,e=Hm,r=Gm;function i(i){var o,a,u=Array.from(t.apply(this,arguments),Vm),c=u.length,f=-1;for(const t of i)for(o=0,++f;o0)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):(r[0]=0,r[1]=i)},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a0)throw new Error("cycle");return o}return e.id=function(n){return arguments.length?(t=ld(n),e):t},e.parentId=function(t){return arguments.length?(n=ld(t),e):n},e},t.style=Jt,t.subset=function(t,n){return rt(n,t)},t.sum=function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e},t.superset=rt,t.svg=Ou,t.symbol=function(t,n){var e=null;function r(){var r;if(e||(e=r=fa()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return t="function"==typeof t?t:rb(t||Vb),n="function"==typeof n?n:rb(void 0===n?64:+n),r.type=function(n){return arguments.length?(t="function"==typeof n?n:rb(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r},t.symbolCircle=Vb,t.symbolCross=$b,t.symbolDiamond=Kb,t.symbolSquare=em,t.symbolStar=nm,t.symbolTriangle=im,t.symbolWye=fm,t.symbols=sm,t.text=Nu,t.thresholdFreedmanDiaconis=function(t,n,e){return Math.ceil((e-n)/(2*(H(t,.75)-H(t,.25))*Math.pow(c(t),-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*d(t)*Math.pow(c(t),-1/3)))},t.thresholdSturges=I,t.tickFormat=_p,t.tickIncrement=R,t.tickStep=F,t.ticks=q,t.timeDay=eg,t.timeDays=rg,t.timeFormatDefaultLocale=xv,t.timeFormatLocale=ey,t.timeFriday=sg,t.timeFridays=vg,t.timeHour=tg,t.timeHours=ng,t.timeInterval=Bp,t.timeMillisecond=Yp,t.timeMilliseconds=Lp,t.timeMinute=Qp,t.timeMinutes=Jp,t.timeMonday=ag,t.timeMondays=dg,t.timeMonth=bg,t.timeMonths=mg,t.timeSaturday=lg,t.timeSaturdays=_g,t.timeSecond=Zp,t.timeSeconds=Kp,t.timeSunday=og,t.timeSundays=hg,t.timeThursday=fg,t.timeThursdays=yg,t.timeTickInterval=Qg,t.timeTicks=Kg,t.timeTuesday=ug,t.timeTuesdays=pg,t.timeWednesday=cg,t.timeWednesdays=gg,t.timeWeek=og,t.timeWeeks=hg,t.timeYear=xg,t.timeYears=wg,t.timeout=ci,t.timer=ri,t.timerFlush=ii,t.transition=Hi,t.transpose=tt,t.tree=function(){var t=Ad,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new Nd(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Nd(r[i],i)),e.parent=n;return(a.parent=new Nd(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore((function(t){t.xs.x&&(s=t),t.depth>l.depth&&(l=t)}));var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),g=e/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Sd(u),o=Td(o),u&&o;)c=Td(c),(a=Sd(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(Ed(kd(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Sd(a)&&(a.t=u,a.m+=l-s),o&&!Td(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Dd,n=!1,e=1,r=1,i=[0],o=hd,a=hd,u=hd,c=hd,f=hd;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(_d),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}var l=f[n],h=r/2+l,d=n+1,p=e-1;for(;d>>1;f[g]c-o){var _=r?(i*v+a*y)/r:a;t(n,d,y,i,o,_,c),t(d,e,v,_,o,a,c)}else{var b=r?(o*v+c*y)/r:c;t(n,d,y,i,o,a,b),t(d,e,v,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=bd,t.treemapResquarify=qd,t.treemapSlice=Cd,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Cd:bd)(t,n,e,r,i)},t.treemapSquarify=Dd,t.tsv=zu,t.tsvFormat=mu,t.tsvFormatBody=xu,t.tsvFormatRow=Mu,t.tsvFormatRows=wu,t.tsvFormatValue=Au,t.tsvParse=_u,t.tsvParseRows=bu,t.union=function(...t){const n=new Set;for(const e of t)for(const t of e)n.add(t);return n},t.utcDay=Eg,t.utcDays=kg,t.utcFriday=Rg,t.utcFridays=Lg,t.utcHour=Tg,t.utcHours=Sg,t.utcMillisecond=Yp,t.utcMilliseconds=Lp,t.utcMinute=Mg,t.utcMinutes=Ag,t.utcMonday=Pg,t.utcMondays=Ig,t.utcMonth=Hg,t.utcMonths=Xg,t.utcSaturday=Fg,t.utcSaturdays=jg,t.utcSecond=Zp,t.utcSeconds=Kp,t.utcSunday=Cg,t.utcSundays=Og,t.utcThursday=qg,t.utcThursdays=Yg,t.utcTickInterval=Zg,t.utcTicks=Wg,t.utcTuesday=zg,t.utcTuesdays=Ug,t.utcWednesday=Dg,t.utcWednesdays=Bg,t.utcWeek=Cg,t.utcWeeks=Og,t.utcYear=Gg,t.utcYears=Vg,t.variance=h,t.version="6.7.0",t.window=Wt,t.xml=Ru,t.zip=function(){return tt(arguments)},t.zoom=function(){var t,n,e,r=ox,i=ax,o=sx,a=cx,u=fx,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=Dr,h=pt("start","zoom","end"),d=500,p=0,g=10;function y(t){t.property("__zoom",ux).on("wheel.zoom",M).on("mousedown.zoom",A).on("dblclick.zoom",T).filter(u).on("touchstart.zoom",S).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new tx(n,t.x,t.y)}function _(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new tx(t.k,r,i)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function m(t,n,e,r){t.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=x(t,o).event(r),u=i.apply(t,o),c=null==e?b(u):"function"==typeof e?e.apply(t,o):e,f=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),s=t.__zoom,h="function"==typeof n?n.apply(t,o):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new tx(e,c[0]-n[0]*e,c[1]-n[1]*e)}a.zoom(null,t)}}))}function x(t,n,e){return!e&&t.__zooming||new w(t,n)}function w(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function M(t,...n){if(r.apply(this,arguments)){var e=x(this,n).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),s=In(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=i.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[s,i.invert(s)],gi(this),e.start()}ix(t),e.wheel=setTimeout(l,150),e.zoom("mouse",o(_(v(i,u),e.mouse[0],e.mouse[1]),e.extent,f))}function l(){e.wheel=null,e.end()}}function A(t,...n){if(!e&&r.apply(this,arguments)){var i=x(this,n,!0).event(t),a=Dn(t.view).on("mousemove.zoom",h,!0).on("mouseup.zoom",d,!0),u=In(t,c),c=t.currentTarget,s=t.clientX,l=t.clientY;Yn(t.view),rx(t),i.mouse=[u,this.__zoom.invert(u)],gi(this),i.start()}function h(t){if(ix(t),!i.moved){var n=t.clientX-s,e=t.clientY-l;i.moved=n*n+e*e>p}i.event(t).zoom("mouse",o(_(i.that.__zoom,i.mouse[0]=In(t,c),i.mouse[1]),i.extent,f))}function d(t){a.on("mousemove.zoom mouseup.zoom",null),Ln(t.view,i.moved),ix(t),i.event(t).end()}}function T(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=In(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),c=e.k*(t.shiftKey?.5:2),l=o(_(v(e,c),a,u),i.apply(this,n),f);ix(t),s>0?Dn(this).transition().duration(s).call(m,l,a,t):Dn(this).call(y.transform,l,a,t)}}function S(e,...i){if(r.apply(this,arguments)){var o,a,u,c,f=e.touches,s=f.length,l=x(this,i,e.changedTouches.length===s).event(e);for(rx(e),a=0;a dist/package.js && rollup -c","test":"tape 'test/**/*-test.js'","prepublishOnly":"yarn test","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js"}; +export var devDependencies = {"json2module":"0.0","rimraf":"3","rollup":"2","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"5","rollup-plugin-terser":"7","tape":"4","tape-await":"0.1"}; +export var dependencies = {"d3-array":"2","d3-axis":"2","d3-brush":"2","d3-chord":"2","d3-color":"2","d3-contour":"2","d3-delaunay":"5","d3-dispatch":"2","d3-drag":"2","d3-dsv":"2","d3-ease":"2","d3-fetch":"2","d3-force":"2","d3-format":"2","d3-geo":"2","d3-hierarchy":"2","d3-interpolate":"2","d3-path":"2","d3-polygon":"2","d3-quadtree":"2","d3-random":"2","d3-scale":"3","d3-scale-chromatic":"2","d3-selection":"2","d3-shape":"2","d3-time":"2","d3-time-format":"3","d3-timer":"2","d3-transition":"2","d3-zoom":"2"}; diff --git a/doc/d3-hwschematic-assets/elkjs/LICENSE.md b/doc/d3-hwschematic-assets/elkjs/LICENSE.md new file mode 100644 index 00000000..2849d27f --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/LICENSE.md @@ -0,0 +1,264 @@ +# Eclipse Public License - v 2.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF +THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +## 1. DEFINITIONS + +“Contribution” means: + +- a\) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and +- b\) in the case of each subsequent Contributor: + - i\) changes to the Program, and + - ii\) additions to the Program; + + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + “originates” from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's + behalf. Contributions do not include changes or additions to the + Program that are not Modified Works. + +“Contributor” means any person or entity that Distributes the Program. + +“Licensed Patents” mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +“Program” means the Contributions Distributed in accordance with this +Agreement. + +“Recipient” means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +“Derivative Works” shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +“Modified Works” shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +“Distribute” means the acts of a) distributing or b) making available in +any manner that enables the transfer of a copy. + +“Source Code” means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +“Secondary License” means either the GNU General Public License, Version +2.0, or any later versions of that license, including any exceptions or +additional permissions as identified by the initial Contributor. + +## 2. GRANT OF RIGHTS + +- a\) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. +- b\) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent license + under Licensed Patents to make, use, sell, offer to sell, import and + otherwise transfer the Contribution of such Contributor, if any, in + Source Code or other form. This patent license shall apply to the + combination of the Contribution and the Program if, at the time the + Contribution is added by the Contributor, such addition of the + Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. +- c\) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. Each + Contributor disclaims any liability to Recipient for claims brought by + any other entity based on infringement of intellectual property rights + or otherwise. As a condition to exercising the rights and licenses + granted hereunder, each Recipient hereby assumes sole responsibility to + secure any other intellectual property rights needed, if any. For + example, if a third party patent license is required to allow Recipient + to Distribute the Program, it is Recipient's responsibility to acquire + that license before distributing the Program. +- d\) Each Contributor represents that to its knowledge it has sufficient + copyright rights in its Contribution, if any, to grant the copyright + license set forth in this Agreement. +- e\) Notwithstanding the terms of any Secondary License, no Contributor + makes additional grants to any Recipient (other than those set forth in + this Agreement) as a result of such Recipient's receipt of the Program + under the terms of a Secondary License (if permitted under the terms of + Section 3). + +## 3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + +- a\) the Program must also be made available as Source Code, in accordance + with section 3.2, and the Contributor must accompany the Program with a + statement that the Source Code for the Program is available under this + Agreement, and informs Recipients how to obtain it in a reasonable + manner on or through a medium customarily used for software exchange; + and +- b\) the Contributor may Distribute the Program under a license different + than this Agreement, provided that such license: + - i\) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including warranties or + conditions of title and non-infringement, and implied warranties or + conditions of merchantability and fitness for a particular purpose; + - ii\) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, incidental + and consequential damages, such as lost profits; + - iii\) does not attempt to limit or alter the recipients' rights in the + Source Code under section 3.2; and + - iv\) requires any subsequent distribution of the Program by any party to + be under a license that satisfies the requirements of this section 3. + +3.2 When the Program is Distributed as Source Code: + +- a\) it must be made available under this Agreement, or if the Program (i) + is combined with other material in a separate file or files made + available under a Secondary License, and (ii) the initial Contributor + attached to the Source Code the notice described in Exhibit A of this + Agreement, then the Program may be made available under the terms of + such Secondary Licenses, and +- b\) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability (‘notices’) contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +## 4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, the +Contributor who includes the Program in a commercial product offering +should do so in a manner which does not create potential liability for +other Contributors. Therefore, if a Contributor includes the Program in +a commercial product offering, such Contributor (“Commercial +Contributor”) hereby agrees to defend and indemnify every other +Contributor (“Indemnified Contributor”) against any losses, damages and +costs (collectively “Losses”) arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the +Program in a commercial product offering. The obligations in this +section do not apply to any claims or Losses relating to any actual or +alleged intellectual property infringement. In order to qualify, an +Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial +Contributor to control, and cooperate with the Commercial Contributor +in, the defense and any related settlement negotiations. The Indemnified +Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages. + +## 5. NO WARRANTY {#warranty} + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. + +## 6. DISCLAIMER OF LIABILITY {#disclaimer} + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +## 7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further action +by the parties hereto, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including +a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or +hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails +to comply with any of the material terms or conditions of this Agreement +and does not cure such failure in a reasonable period of time after +becoming aware of such noncompliance. If all Recipient's rights under +this Agreement terminate, Recipient agrees to cease use and distribution +of the Program as soon as reasonably practicable. However, Recipient's +obligations under this Agreement and any licenses granted by Recipient +relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and may +only be modified in the following manner. The Agreement Steward reserves +the right to publish new versions (including revisions) of this +Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the +initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is +published, Contributor may elect to Distribute the Program (including +its Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +## Exhibit A – Form of Secondary Licenses Notice {#exhibit-a} + +“This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}.” + +> Simply including a copy of this Agreement, including this Exhibit A is +> not sufficient to license the Source Code under Secondary Licenses. +> +> If it is not possible or desirable to put the notice in a particular +> file, then You may include the notice in a location (such as a LICENSE +> file in a relevant directory) where a recipient would be likely to +> look for such a notice. +> +> You may add additional accurate notices of copyright ownership. diff --git a/doc/d3-hwschematic-assets/elkjs/README.md b/doc/d3-hwschematic-assets/elkjs/README.md new file mode 100644 index 00000000..03af287a --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/README.md @@ -0,0 +1,378 @@ +

+ +

+ +The [Eclipse Layout Kernel (ELK)](https://www.eclipse.org/elk/) implements an infrastructure to connect diagram editors or viewers to automatic layout algorithms. This library takes the layout-relevant part of ELK and makes it available to the JavaScript world. +ELK's flagship is a layer-based layout algorithm that is particularly suited for node-link diagrams with an inherent direction and ports (explicit attachment points on a node's border). It is based on the ideas originally introduced by Sugiyama et al. An example can be seen in the screenshot below. + +Note that elkjs is not a diagramming framework itself - it computes positions for the elements of a diagram. + +elkjs is the successor of [klayjs](https://github.com/kieler/klayjs). + +#### Demonstrator +You can see elkjs [live in action](https://rtsys.informatik.uni-kiel.de/elklive/) in conjunction with TypeFox's [sprotty](https://github.com/eclipse/sprotty) diagramming framework. + +![](https://raw.githubusercontent.com/kieler/elkjs/master/doc/example_complexRouter.svg) + + +# FAQs and Recurring Issues +The following list includes some recurring topics that may have been addressed in issues already: + +* [#100][ejs100], [elk#355][e355], [elk#627][e627] - How to consider previous layout results, including + * dynamic layout, and + * incrementally adding nodes and edges to an existing layout. + +* [elk#315][e315]: Standalone edge routing. + +* [#85][ejs85] elkjs itself is a graph layout engine _only_. In other words, no rendering, styling, etc. is provided. + +* [#127][ejs127], [#141][ejs141], [#142][ejs142] - Issues due to the underlying code transpilation by GWT and/or due to the outdated usage of js modules: + * `g is not defined`, + * `Can't resolve web-worker`, and + * general usage as part of react, webpack, etc. + * [#6][ejs6] Poor modularization + * Contributions here are welcome! + +[ejs6]: https://github.com/kieler/elkjs/issues/6 +[ejs85]: https://github.com/kieler/elkjs/issues/85 +[ejs100]: https://github.com/kieler/elkjs/issues/100 +[ejs127]: https://github.com/kieler/elkjs/issues/127 +[ejs141]: https://github.com/kieler/elkjs/issues/141 +[ejs142]: https://github.com/kieler/elkjs/issues/142 +[e315]: https://github.com/eclipse/elk/issues/315 +[e355]: https://github.com/eclipse/elk/issues/355 +[e627]: https://github.com/eclipse/elk/issues/627 + +# Installation +The latest released version: +```bash +npm install elkjs +``` +Development version based on ELK's `master` branch. +```bash +npm install elkjs@next +``` + +# Releases and Versioning + +Releases are partly synchronized with ELK's versions: the minor version number is always the same but the revision number may diverge. For instance, elkjs 0.3.0 equals the functionality of ELK 0.3.0 but elkjs 0.3.2 may be different from ELK 0.3.2. This is necessary as there may be fixes that solely concern elkjs and should be released independently of ELK. + +# Files +The library consists of two main files: +* `elk-api.js`: Provides the API and only the API. +* `elk-worker.js`: Provides the code that actually knows how to lay out a graph. This is the file that is generated from ELK's Java code base using GWT. + +Two further files are provided: +* `elk.bundled.js`: A bundled version of the two previous files, ready to be dropped into a browser's ` + + +``` + +```html + + + + +``` + +## Typescript +```ts +import ELK from 'elkjs/lib/elk.bundled.js' +const elk = new ELK() + + +import ELK from 'elkjs/lib/elk-api' +const elk = new ELK({ + workerUrl: './elk-worker.min.js' +}) +``` + +## Debugging +For debugging purposes you may want to use the non-minified versions that are available as well. +In this case the non-minified webworker version can be configured like so: +```js +const ELK = require('elkjs/lib/elk-api.js') +const elk = new ELK({ + workerFactory: function(url) { // the value of 'url' is irrelevant here + const { Worker } = require('elkjs/lib/elk-worker.js') // non-minified + return new Worker(url) + } +}) +``` + +# API + +The elkjs library provides a single object: the `ELK`. The `ELK` has a constructor that can be used +to construct it: +* `new ELK(options)` - the `ELK` can be fed with options, all of which are optional: + * `defaultLayoutOptions` - an object with default layout options specified as key/value pairs + that are used if no further layout options are passed to the `layout(graph, options)` method (see below). Default: `{}`. + * `algorithms` - an array of algorithm ids (only the suffix). Default: `[ 'layered', 'stress', 'mrtree', 'radial', 'force', 'disco' ]`. Note that the `box`, `fixed`, and `random` layouters are always included. + * `workerUrl` - a path to the `elk-worker.js` script. As a consequence the `ELK` will use a Web Worker to execute the layout. Default: `undefined`. + +Apart from that the `ELK` offers the following methods: +* `layout(graph, options)` + * `graph` - the graph to be laid out in [ELK JSON](http://www.eclipse.org/elk/documentation/tooldevelopers/graphdatastructure/jsonformat.html). Mandatory! + * `options` - a configuration object. Optional. + * `layoutOptions`: its most important purpose is to pass _global_ layout options. + That is, layout options that are applied to every graph element unless the element specifies the option itself. + * `logging`: boolean (_since 0.6.0_). Whether logging information shall be passed back as part of the laid out graph. `false` by default. + * `measureExecutionTime`: boolean (_since 0.6.0_). Whether execution time (in seconds) information shall be passed back as part of the laid out graph. `false` by default. + * returns a `Promise`, which passes either the laid out graph on success or a (hopefully helpful) error on failure. +* `knownLayoutOptions()` + * returns an array of of known layout options. For each option additional information + such as its `id` and `group` is given. +* `knownLayoutAlgorithms()` + * returns an array of registered layout algorithms (see above) + alongside further information about each algorithm. +* `knownLayoutCategories()` + * returns an array of registered layout categories. +* `terminateWorker()` - in case a Web Worker is used, the worker's `terminate()` method is called. + +The three methods starting with `known` basically return information +that, in the Java world, would be retrieved from the [`LayoutMetaDataService`](http://www.eclipse.org/elk/documentation/algorithmdevelopers/metadatalanguage.html). + + +# Logging and Execution Times +(_Since 0.6.0_) + +ELK provides some means to log debug information during layout algorithm execution. +The details can be found in the [_Algorithm Debugging_](https://www.eclipse.org/elk/documentation/algorithmdevelopers/algorithmdebugging.html) section of ELK's documentation. +Not all of it is available in elkjs though, for instance, it is not possible to save intermediate results of the laid out graphs. +Furthermore, while internally execution time is measured in _nanoseconds_ on the Java side, +in elkjs we have to resort to _milliseconds_. +Note that the returned execution times are in seconds. +For small graphs this may often result in execution times being reported as `0`. + +See below an example call and the example output. +```js +elk.layout(simpleGraph, { + layoutOptions: { + 'algorithm': 'layered' + }, + logging: true, + measureExecutionTime: true +}) +``` +```js +{ + "id": "root", + "children": [ ... ], + "edges": [ ... ], + "logging": { + "name": "Recursive Graph Layout", + "executionTime": 0.000096, + "children": [ { + "name": "Layered layout", + "logs": [ + "ELK Layered uses the following 17 modules:", + " Slot 01: org.eclipse.elk.alg.layered.p1cycles.GreedyCycleBreaker", + [ ... ] + " Slot 16: org.eclipse.elk.alg.layered.intermediate.ReversedEdgeRestorer" + ], + "executionTime": 0.000072, + "children": [ { "name": "Greedy cycle removal", "executionTime": 0.000002 }, + [ ... ] + { "name": "Restoring reversed edges", "executionTime": 0 } ] + } ] + } +} +``` + +# Building + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kieler/elkjs) + +For building, a checkout of the [ELK](https://github.com/eclipse/elk) repository is required +and should be located in the same directory as the checkout of this repository. Like so: + +``` +some_dir/ + ├── elkjs + └── elk +``` + +```bash +npm install +npm run build +``` + +For a new release, the following version numbers have to be changed: +* `version` in `package.json`, +* `melk` in `build.gradle`, and +* don't forget to checkout the correct release tag of ELK's repository. + +Afterwards you can find the created files in the `lib` folder. + +Current procedure +```bash +git checkout -b releases/0.x.x +# Update versions and commit the changes +npm install +npm run build +npm run test +# Add ./lib/ directory and commit +git tag 0.x.x +# Push release branch an tags to remote +npm publish +``` + +# Links +In the following a list of asorted links to other projects and sites that may prove helpful: +* [Execution time comparison to Java ELK](https://github.com/kieler/elk-speed) +* How to specify [node label placement](http://kieler.github.io/klayjs-d3/examples/node_labels/) +* How to enforce certain [node positioning](http://kieler.github.io/klayjs-d3/examples/interactive/) (topological) + +# Example Users of elkjs + +- Schematics + - [netlistsvg](https://github.com/nturley/netlistsvg) - electronic and gate level schematics as SVG + - [d3-hwschematic](https://github.com/Nic30/d3-hwschematic) - interactive digital circuit analysis and documentation, particularly for FPGA-based designs +- Cytoscape [adapter](https://github.com/cytoscape/cytoscape.js-elk) +- [reaflow](https://reaflow.dev) - Node-based editor built on elkjs in React +- Wrapping elkjs into a [docker-based microservice](https://github.com/elbosso/elkjsmicroservice) +- [sprotty](https://github.com/eclipse/sprotty) - A diagramming framework +- [Eclipse 4diac](https://www.fordiac.org) +- [capellambse-context-diagrams](https://github.com/DSD-DBS/capellambse-context-diagrams) - Generating systems engineering context diagrams for [Capella](https://www.eclipse.org/capella/) in Python + +Note: We are happy to extend this list further, so please contact us if you have a project to add + +# Thanks + +* [@automata](https://github.com/automata) for the very first `klayjs` version +* [@aranega](https://github.com/aranega) for making emfgwt work for us +* [@EyMaddis](https://github.com/EyMaddis) for valuable API discussions +* The team working on the layout algorithms + * [@spoenemann](https://github.com/spoenemann) + * [@le-cds](https://github.com/le-cds) + * [@uruuru](https://github.com/uruuru) + * [@eNBeWe](https://github.com/eNBeWe) + * the vast number of students that contributed to ELK diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts new file mode 100644 index 00000000..139ffbda --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export interface LayoutOptions { + [key: string]: string +} + +export interface ElkPoint { + x: number + y: number +} + +export interface ElkGraphElement { + id?: string + labels?: ElkLabel[] + layoutOptions?: LayoutOptions +} + +export interface ElkShape extends ElkGraphElement { + x?: number + y?: number + width?: number + height?: number +} + +export interface ElkNode extends ElkShape { + id: string + children?: ElkNode[] + ports?: ElkPort[] + edges?: ElkExtendedEdge[] +} + +export interface ElkPort extends ElkShape { + id: string +} + +export interface ElkLabel extends ElkShape { + text?: string +} + +/** + * @deprecated use ElkExtendedEdge directly + */ +export interface ElkEdge extends ElkGraphElement { + id: string + junctionPoints?: ElkPoint[] +} + +/** + * @deprecated use ElkExtendedEdge instead + */ +export interface ElkPrimitiveEdge extends ElkEdge { + source: string + sourcePort?: string + target: string + targetPort?: string + sourcePoint?: ElkPoint + targetPoint?: ElkPoint + bendPoints?: ElkPoint[] +} + +export interface ElkExtendedEdge extends ElkEdge { + sources: string[] + targets: string[] + sections?: ElkEdgeSection[] +} + +export interface ElkEdgeSection extends ElkGraphElement { + id: string + startPoint: ElkPoint + endPoint: ElkPoint + bendPoints?: ElkPoint[] + incomingShape?: string + outgoingShape?: string + incomingSections?: string[] + outgoingSections?: string[] +} + +export interface ElkLayoutArguments { + layoutOptions?: LayoutOptions + logging?: boolean + measureExecutionTime?: boolean +} + +export interface ElkCommonDescription { + id?: string + name?: string + description?: string +} + +export interface ElkLayoutAlgorithmDescription extends ElkCommonDescription { + category?: string + knownOptions?: string[] + supportedFeatures?: string[] +} + +export interface ElkLayoutOptionDescription extends ElkCommonDescription { + group?: string + type?: string + targets?: string[] +} + +export interface ElkLayoutCategoryDescription extends ElkCommonDescription { + knownLayouters?: string[] +} + +export interface ELK { + layout(graph: ElkNode, args?: ElkLayoutArguments): Promise; + knownLayoutAlgorithms(): Promise + knownLayoutOptions(): Promise + knownLayoutCategories(): Promise +} + +export interface ELKConstructorArguments { + defaultLayoutOptions?: LayoutOptions + algorithms?: string[] + workerUrl?: string + workerFactory?: (url?: string) => Worker +} + +declare const ElkConstructor: { + new(args?: ELKConstructorArguments): ELK; +}; +export default ElkConstructor; diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-api.js b/doc/d3-hwschematic-assets/elkjs/lib/elk-api.js new file mode 100644 index 00000000..b60e8bdc --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk-api.js @@ -0,0 +1,224 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +"use strict"; + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELK; +ELK.default = ELK; +},{"./elk-api.js":1}]},{},[2])(2) +}); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts new file mode 100644 index 00000000..77606b21 --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts @@ -0,0 +1 @@ +export type Worker = Worker diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js new file mode 100644 index 00000000..56c55756 --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js @@ -0,0 +1,100643 @@ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var _xblockexpression; + +// -------------- GENERATED CODE -------------- +var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {198:1, 47:1}, $intern_4 = {198:1, 47:1, 125:1}, $intern_5 = {224:1, 3:1}, $intern_6 = {47:1}, $intern_7 = {83:1}, $intern_8 = {20:1, 28:1, 14:1}, $intern_9 = 1965, $intern_10 = {20:1, 28:1, 14:1, 21:1}, $intern_11 = {83:1, 171:1, 161:1}, $intern_12 = {20:1, 28:1, 14:1, 21:1, 84:1}, $intern_13 = {20:1, 28:1, 14:1, 271:1, 21:1, 84:1}, $intern_14 = {47:1, 125:1}, $intern_15 = {345:1, 42:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {164:1}, $intern_19 = {38:1}, $intern_20 = {l:4194303, m:4194303, h:524287}, $intern_21 = {196:1}, $intern_22 = {245:1, 3:1, 35:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 14:1}, $intern_25 = {3:1, 20:1, 28:1, 14:1}, $intern_26 = {152:1, 3:1, 20:1, 28:1, 14:1, 15:1, 54:1}, $intern_27 = {3:1, 4:1, 5:1, 165:1}, $intern_28 = {3:1, 83:1}, $intern_29 = {20:1, 14:1, 21:1}, $intern_30 = {3:1, 20:1, 28:1, 14:1, 21:1}, $intern_31 = {20:1, 14:1, 21:1, 84:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 165:1}, $intern_35 = 1073741824, $intern_36 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_37 = {20:1, 28:1, 52:1, 14:1, 15:1}, $intern_38 = {20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_39 = {45:1}, $intern_40 = {365:1}, $intern_41 = 1.0E-4, $intern_42 = -2147483648, $intern_43 = {3:1, 102:1, 60:1, 78:1}, $intern_44 = {195:1, 3:1, 4:1}, $intern_45 = 1000, $intern_46 = 65535, $intern_47 = 1900, $intern_48 = {48:1, 3:1, 4:1}, $intern_49 = {3:1, 4:1, 35:1, 199:1}, $intern_50 = 4194303, $intern_51 = 1048575, $intern_52 = 524288, $intern_53 = 4194304, $intern_54 = 17592186044416, $intern_55 = 1000000000, $intern_56 = -17592186044416, $intern_57 = {3:1, 102:1, 73:1, 60:1, 78:1}, $intern_58 = {3:1, 289:1, 78:1}, $intern_59 = Infinity, $intern_60 = -Infinity, $intern_61 = 4096, $intern_62 = {3:1, 4:1, 364:1}, $intern_63 = 65536, $intern_64 = 55296, $intern_65 = {104:1, 3:1, 4:1}, $intern_66 = 100000, $intern_67 = 0.3010299956639812, $intern_68 = 4294967295, $intern_69 = 4294967296, $intern_70 = {42:1}, $intern_71 = {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1}, $intern_72 = {3:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_73 = {20:1, 14:1, 15:1}, $intern_74 = {3:1, 62:1}, $intern_75 = {182:1}, $intern_76 = {3:1, 4:1, 83:1}, $intern_77 = {3:1, 4:1, 20:1, 28:1, 14:1, 53:1, 21:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_85 = {3:1, 35:1, 22:1, 297:1}, $intern_86 = {3:1, 4:1, 5:1, 842:1}, $intern_87 = {525:1, 670:1}, $intern_88 = {62:1}, $intern_89 = {169:1, 45:1}, $intern_90 = {130:1}, $intern_91 = {177:1, 3:1, 4:1}, $intern_92 = {212:1, 326:1}, $intern_93 = {3:1, 4:1, 5:1, 595:1}, $intern_94 = 0.01, $intern_95 = {3:1, 94:1, 134:1}, $intern_96 = {209:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 192:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 106:1, 120:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 122:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 141:1, 106:1, 120:1}, $intern_105 = {51:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 474:1, 141:1, 106:1, 120:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 141:1, 193:1, 203:1, 106:1, 120:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 141:1, 1943:1, 203:1, 106:1, 120:1}, $intern_109 = {3:1, 4:1, 142:1, 207:1, 414:1}, $intern_110 = {3:1, 4:1, 116:1, 207:1, 414:1}, $intern_111 = {225:1}, $intern_112 = {3:1, 4:1, 5:1, 593:1}, $intern_113 = {123:1, 51:1}, $intern_114 = {402:1, 225:1}, $intern_115 = {832:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 840:1}, $intern_117 = 1.0E-5, $intern_118 = 1.0E-6, $intern_119 = 0.09999999999999998, $intern_120 = 1.0E-8, $intern_121 = 4.71238898038469, $intern_122 = 3.141592653589793, $intern_123 = 6.283185307179586, $intern_124 = 4.9E-324, $intern_125 = {3:1, 4:1, 5:1, 106:1}, $intern_126 = 5.497787143782138, $intern_127 = 3.9269908169872414, $intern_128 = 2.356194490192345, $intern_129 = {331:1}, $intern_130 = {288:1}, $intern_131 = 0.05, $intern_132 = 1.2999999523162842, $intern_133 = {92:1, 90:1}, $intern_134 = 32768, $intern_135 = {105:1, 92:1, 90:1, 56:1, 49:1, 97:1}, $intern_136 = {190:1, 3:1, 4:1}, $intern_137 = 1024, $intern_138 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1}, $intern_139 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 47:1, 15:1, 54:1, 67:1, 63:1, 58:1, 588:1}, $intern_140 = {415:1, 672:1}, $intern_141 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}, $intern_142 = {366:1, 143:1}, $intern_143 = {3:1, 4:1, 5:1, 126:1}, $intern_144 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 58:1}, $intern_145 = {3:1, 6:1, 4:1, 5:1, 192:1}, $intern_146 = {3:1, 4:1, 5:1, 165:1, 367:1}, $intern_147 = {76:1}, $intern_148 = {3:1, 20:1, 14:1, 15:1, 58:1, 589:1, 76:1, 69:1, 95:1}, $intern_149 = 8192, $intern_150 = 2048, $intern_151 = {3:1, 4:1, 5:1, 247:1}, $intern_152 = {3:1, 4:1, 5:1, 673:1}, $intern_153 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 69:1}, $intern_154 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 69:1, 95:1}, $intern_155 = {3:1, 4:1, 5:1, 674:1}, $intern_156 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 76:1, 69:1, 95:1}, $intern_157 = {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 69:1}, $intern_158 = {47:1, 125:1, 279:1}, $intern_159 = {72:1, 332:1}, $intern_160 = 1316, $intern_161 = -32768, $intern_162 = {55:1}, $intern_163 = {3:1, 4:1, 5:1, 119:1}, $intern_164 = {92:1, 90:1, 591:1, 1935:1}, $intern_165 = 1114111, $intern_166 = {3:1, 117:1}, $intern_167 = {3:1, 4:1, 5:1, 368:1}; +var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; +function setGwtProperty(propertyName, propertyValue){ + typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); +} + +function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ + ensureModuleInit(); + var initFnList = initFnList_0; + $moduleName = modName; + $moduleBase = modBase; + permutationId = softPermutationId; + function initializeModules(){ + for (var i = 0; i < initFnList.length; i++) { + initFnList[i](); + } + } + + if (errFn) { + try { + $entry(initializeModules)(); + } + catch (e) { + errFn(modName, e); + } + } + else { + $entry(initializeModules)(); + } +} + +function ensureModuleInit(){ + initFnList_0 == null && (initFnList_0 = []); +} + +function addInitFunctions(){ + ensureModuleInit(); + var initFnList = initFnList_0; + for (var i = 0; i < arguments.length; i++) { + initFnList.push(arguments[i]); + } +} + +function typeMarkerFn(){ +} + +function toString_40(object){ + var number; + if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { + return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); + } + return object.toString(); +} + +function portableObjCreate(obj){ + function F(){ + } + + ; + F.prototype = obj || {}; + return new F; +} + +function makeLambdaFunction(samMethod, ctor, ctorArguments){ + var lambda = function(){ + return samMethod.apply(lambda, arguments); + } + ; + ctor.apply(lambda, ctorArguments); + return lambda; +} + +function emptyMethod(){ +} + +function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ + var prototypesByTypeId = prototypesByTypeId_0, superPrototype; + var prototype_0 = prototypesByTypeId[typeId]; + var clazz = prototype_0 instanceof Array?prototype_0[0]:null; + if (prototype_0 && !clazz) { + _ = prototype_0; + } + else { + _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); + _.castableTypeMap = castableTypeMap; + !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); + prototypesByTypeId[typeId] = _; + } + for (var i = 3; i < arguments.length; ++i) { + arguments[i].prototype = _; + } + clazz && (_.___clazz = clazz); +} + +function bootstrap(){ + prototypesByTypeId_0 = {}; + !Array.isArray && (Array.isArray = function(vArg){ + return Object.prototype.toString.call(vArg) === '[object Array]'; + } + ); + function now_0(){ + return (new Date).getTime(); + } + + !Date.now && (Date.now = now_0); +} + +$wnd.goog = $wnd.goog || {}; +$wnd.goog.global = $wnd.goog.global || $wnd; +bootstrap(); +function $equals(this$static, other){ + return maskUndefined(this$static) === maskUndefined(other); +} + +function Object_0(){ +} + +function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ + return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other); +} + +function getClass__Ljava_lang_Class___devirtual$(this$static){ + return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; +} + +function hashCode__I__devirtual$(this$static){ + return instanceOfString(this$static)?getHashCode_1(this$static):instanceOfDouble(this$static)?$hashCode_0(this$static):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static)?1231:1237:hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getHashCode_0(this$static):$hashCode(this$static); +} + +defineClass(1, null, {}, Object_0); +_.equals_0 = function equals(other){ + return $equals(this, other); +} +; +_.getClass_0 = function getClass_0(){ + return this.___clazz; +} +; +_.hashCode_1 = function hashCode_0(){ + return getHashCode_0(this); +} +; +_.toString_0 = function toString_1(){ + var number; + return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); +} +; +_.equals = function(other){ + return this.equals_0(other); +} +; +_.hashCode = function(){ + return this.hashCode_1(); +} +; +_.toString = function(){ + return this.toString_0(); +} +; +function canCast(src_0, dstId){ + if (instanceOfString(src_0)) { + return !!stringCastMap[dstId]; + } + else if (src_0.castableTypeMap) { + return !!src_0.castableTypeMap[dstId]; + } + else if (instanceOfDouble(src_0)) { + return !!doubleCastMap[dstId]; + } + else if (instanceOfBoolean(src_0)) { + return !!booleanCastMap[dstId]; + } + return false; +} + +function castTo(src_0, dstId){ + checkCriticalType(src_0 == null || canCast(src_0, dstId)); + return src_0; +} + +function castToArray(src_0){ + var elementTypeCategory; + checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))); + return src_0; +} + +function castToBoolean(src_0){ + checkCriticalType(src_0 == null || instanceOfBoolean(src_0)); + return src_0; +} + +function castToDouble(src_0){ + checkCriticalType(src_0 == null || instanceOfDouble(src_0)); + return src_0; +} + +function castToJso(src_0){ + checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn)); + return src_0; +} + +function castToString(src_0){ + checkCriticalType(src_0 == null || instanceOfString(src_0)); + return src_0; +} + +function charToString(x_0){ + return String.fromCharCode(x_0); +} + +function hasJavaObjectVirtualDispatch(src_0){ + return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function instanceOf(src_0, dstId){ + return src_0 != null && canCast(src_0, dstId); +} + +function instanceOfBoolean(src_0){ + return typeof src_0 === 'boolean'; +} + +function instanceOfDouble(src_0){ + return typeof src_0 === 'number'; +} + +function instanceOfJso(src_0){ + return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn); +} + +function instanceOfString(src_0){ + return typeof src_0 === 'string'; +} + +function isJsObjectOrFunction(src_0){ + return typeof src_0 === 'object' || typeof src_0 === 'function'; +} + +function maskUndefined(src_0){ + return src_0 == null?null:src_0; +} + +function round_int(x_0){ + return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; +} + +function throwClassCastExceptionUnlessNull(o){ + checkCriticalType(o == null); + return o; +} + +var booleanCastMap, doubleCastMap, stringCastMap; +function $ensureNamesAreInitialized(this$static){ + if (this$static.typeName != null) { + return; + } + initializeNames(this$static); +} + +function $getEnumConstants(this$static){ + return this$static.enumConstantsFunc && this$static.enumConstantsFunc(); +} + +function $getName(this$static){ + $ensureNamesAreInitialized(this$static); + return this$static.typeName; +} + +function $toString_5(this$static){ + return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName); +} + +function Class(){ + ++nextSequentialId; + this.typeName = null; + this.simpleName = null; + this.packageName = null; + this.compoundName = null; + this.canonicalName = null; + this.typeId = null; + this.arrayLiterals = null; +} + +function createClassObject(packageName, compoundClassName){ + var clazz; + clazz = new Class; + clazz.packageName = packageName; + clazz.compoundName = compoundClassName; + return clazz; +} + +function createForClass(packageName, compoundClassName, typeId){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + return clazz; +} + +function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + clazz.modifiers = enumConstantsFunc?8:0; + clazz.enumSuperclass = superclass; + clazz.enumConstantsFunc = enumConstantsFunc; + clazz.enumValueOfFunc = enumValueOfFunc; + return clazz; +} + +function createForInterface(packageName, compoundClassName){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + clazz.modifiers = 2; + return clazz; +} + +function createForPrimitive(className, primitiveTypeId){ + var clazz; + clazz = createClassObject('', className); + clazz.typeId = primitiveTypeId; + clazz.modifiers = 1; + return clazz; +} + +function getClassLiteralForArray_0(leafClass, dimensions){ + var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; + return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); +} + +function getPrototypeForClass(clazz){ + if (clazz.isPrimitive()) { + return null; + } + var typeId = clazz.typeId; + return prototypesByTypeId_0[typeId]; +} + +function initializeNames(clazz){ + if (clazz.isArray_1()) { + var componentType = clazz.componentType; + componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName()); + clazz.canonicalName = componentType.getCanonicalName() + '[]'; + clazz.simpleName = componentType.getSimpleName() + '[]'; + return; + } + var packageName = clazz.packageName; + var compoundName = clazz.compoundName; + compoundName = compoundName.split('/'); + clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); + clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); + clazz.simpleName = compoundName[compoundName.length - 1]; +} + +function join_0(separator, strings){ + var i = 0; + while (!strings[i] || strings[i] == '') { + i++; + } + var result = strings[i++]; + for (; i < strings.length; i++) { + if (!strings[i] || strings[i] == '') { + continue; + } + result += separator + strings[i]; + } + return result; +} + +function maybeSetClassLiteral(typeId, clazz){ + var proto; + if (!typeId) { + return; + } + clazz.typeId = typeId; + var prototype_0 = getPrototypeForClass(clazz); + if (!prototype_0) { + prototypesByTypeId_0[typeId] = [clazz]; + return; + } + prototype_0.___clazz = clazz; +} + +defineClass(290, 1, {290:1, 2026:1}, Class); +_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ + var clazz; + clazz = new Class; + clazz.modifiers = 4; + dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); + return clazz; +} +; +_.getCanonicalName = function getCanonicalName(){ + $ensureNamesAreInitialized(this); + return this.canonicalName; +} +; +_.getName = function getName(){ + return $getName(this); +} +; +_.getSimpleName = function getSimpleName(){ + return $ensureNamesAreInitialized(this) , this.simpleName; +} +; +_.isArray_1 = function isArray_1(){ + return (this.modifiers & 4) != 0; +} +; +_.isPrimitive = function isPrimitive(){ + return (this.modifiers & 1) != 0; +} +; +_.toString_0 = function toString_44(){ + return $toString_5(this); +} +; +_.modifiers = 0; +var nextSequentialId = 1; +var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); +var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 290); +defineClass(1998, 1, $intern_1); +var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 1998); +function $clinit_Absent(){ + $clinit_Absent = emptyMethod; + INSTANCE = new Absent; +} + +function Absent(){ +} + +defineClass(1170, 1998, $intern_1, Absent); +_.equals_0 = function equals_0(object){ + return object === this; +} +; +_.hashCode_1 = function hashCode_1(){ + return 2040732332; +} +; +_.toString_0 = function toString_2(){ + return 'Optional.absent()'; +} +; +_.transform = function transform(function_0){ + checkNotNull(function_0); + return $clinit_Absent() , INSTANCE; +} +; +var INSTANCE; +var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1170); +function $appendTo(this$static, appendable, parts){ + checkNotNull(appendable); + if (parts.hasNext_0()) { + $append_7(appendable, $toString(parts.next_1())); + while (parts.hasNext_0()) { + $append_7(appendable, this$static.separator); + $append_7(appendable, $toString(parts.next_1())); + } + } + return appendable; +} + +function $appendTo_0(this$static, builder, parts){ + var impossible; + try { + $appendTo(this$static, builder, parts); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 597)) { + impossible = $e0; + throw toJs(new AssertionError_0(impossible)); + } + else + throw toJs($e0); + } + return builder; +} + +function $join(this$static, parts){ + return $appendTo_0(this$static, new StringBuilder, parts).string; +} + +function $toString(part){ + checkNotNull(part); + return instanceOf(part, 475)?castTo(part, 475):toString_40(part); +} + +function Joiner(){ + this.separator = castToString(checkNotNull(', ')); +} + +defineClass(628, 1, {}, Joiner); +var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 628); +function equal(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function badElementIndex(index_0, size_0){ + if (index_0 < 0) { + return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0)])); + } + else if (size_0 < 0) { + throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); + } + else { + return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0), valueOf_4(size_0)])); + } +} + +function badPositionIndex(index_0, size_0, desc){ + if (index_0 < 0) { + return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0)])); + } + else if (size_0 < 0) { + throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); + } + else { + return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0), valueOf_4(size_0)])); + } +} + +function badPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || start_0 > size_0) { + return badPositionIndex(start_0, size_0, 'start index'); + } + if (end < 0 || end > size_0) { + return badPositionIndex(end, size_0, 'end index'); + } + return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(end), valueOf_4(start_0)])); +} + +function checkArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkArgument_1(b, p1){ + if (!b) { + throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1])))); + } +} + +function checkArgument_2(b, errorMessageTemplate, p1, p2){ + if (!b) { + throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2])))); + } +} + +function checkElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0))); + } + return index_0; +} + +function checkNotNull(reference){ + if (reference == null) { + throw toJs(new NullPointerException); + } + return reference; +} + +function checkNotNull_0(reference, errorMessage){ + if (reference == null) { + throw toJs(new NullPointerException_0(errorMessage)); + } + return reference; +} + +function checkPositionIndex(index_0, size_0){ + if (index_0 < 0 || index_0 > size_0) { + throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index'))); + } + return index_0; +} + +function checkPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || end < start_0 || end > size_0) { + throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0))); + } +} + +function checkState(expression){ + if (!expression) { + throw toJs(new IllegalStateException); + } +} + +function checkState_0(expression){ + if (!expression) { + throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); + } +} + +var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate'); +function toStringHelper(components){ + var builder, first, o, o$iterator; + builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40); + first = true; + for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) { + o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++)); + first || (builder.string += ',' , builder); + builder.string += '' + o; + first = false; + } + return (builder.string += ')' , builder).string; +} + +function $apply(this$static, t){ + var i; + for (i = 0; i < this$static.components.array.length; i++) { + if (!castTo($get_12(this$static.components, i), 169).apply_1(t)) { + return false; + } + } + return true; +} + +function Predicates$AndPredicate(components){ + this.components = components; +} + +defineClass(582, 1, {169:1, 582:1, 3:1, 45:1}, Predicates$AndPredicate); +_.test_0 = function test_0(input_0){ + return $apply(this, input_0); +} +; +_.apply_1 = function apply_1(t){ + return $apply(this, t); +} +; +_.equals_0 = function equals_1(obj){ + var that; + if (instanceOf(obj, 582)) { + that = castTo(obj, 582); + return $equals_2(this.components, that.components); + } + return false; +} +; +_.hashCode_1 = function hashCode_2(){ + return hashCode_48(this.components) + 306654252; +} +; +_.toString_0 = function toString_3(){ + return toStringHelper(this.components); +} +; +var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 582); +function Present(reference){ + this.reference = reference; +} + +defineClass(408, 1998, {408:1, 3:1}, Present); +_.equals_0 = function equals_2(object){ + var other; + if (instanceOf(object, 408)) { + other = castTo(object, 408); + return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference); + } + return false; +} +; +_.hashCode_1 = function hashCode_3(){ + return 1502476572 + hashCode__I__devirtual$(this.reference); +} +; +_.toString_0 = function toString_4(){ + return 'Optional.of(' + this.reference + ')'; +} +; +_.transform = function transform_0(function_0){ + return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.')); +} +; +var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 408); +function lenientFormat(template, args){ + var builder, i, i0, placeholderStart, templateStart; + template = template == null?'null':(checkCriticalNotNull(template) , template); + for (i0 = 0; i0 < args.length; i0++) { + args[i0] = lenientToString(args[i0]); + } + builder = new StringBuilder_0; + templateStart = 0; + i = 0; + while (i < args.length) { + placeholderStart = template.indexOf('%s', templateStart); + if (placeholderStart == -1) { + break; + } + builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart); + $append_10(builder, args[i++]); + templateStart = placeholderStart + 2; + } + $append_9(builder, template, templateStart, template.length); + if (i < args.length) { + builder.string += ' ['; + $append_10(builder, args[i++]); + while (i < args.length) { + builder.string += ', '; + $append_10(builder, args[i++]); + } + builder.string += ']'; + } + return builder.string; +} + +function lenientToString(o){ + var e, number, objectToString; + try { + return o == null?'null':toString_40(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + e = $e0; + objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16)); + $log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e); + return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>'; + } + else + throw toJs($e0); + } +} + +function $forEachRemaining(this$static, consumer){ + checkCriticalNotNull(consumer); + while (this$static.hasNext_0()) { + consumer.accept(this$static.next_1()); + } +} + +function $remove_21(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove(){ + throw toJs(new UnsupportedOperationException); +} + +defineClass(198, 1, $intern_3); +_.forEachRemaining = function forEachRemaining(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_0(){ + $remove(); +} +; +var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 198); +defineClass(1978, 198, $intern_4); +_.remove = function remove_1(){ + $remove(); +} +; +_.add_1 = function add_1(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_1(e){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 1978); +function AbstractIndexedListIterator(size_0){ + AbstractIndexedListIterator_0.call(this, size_0, 0); +} + +function AbstractIndexedListIterator_0(size_0, position){ + checkPositionIndex(position, size_0); + this.size_0 = size_0; + this.position = position; +} + +defineClass(386, 1978, $intern_4); +_.hasNext_0 = function hasNext(){ + return this.position < this.size_0; +} +; +_.hasPrevious = function hasPrevious(){ + return this.position > 0; +} +; +_.next_1 = function next_0(){ + if (this.position >= this.size_0) { + throw toJs(new NoSuchElementException); + } + return this.get_0(this.position++); +} +; +_.nextIndex_0 = function nextIndex_0(){ + return this.position; +} +; +_.previous_0 = function previous_0(){ + if (this.position <= 0) { + throw toJs(new NoSuchElementException); + } + return this.get_0(--this.position); +} +; +_.previousIndex = function previousIndex(){ + return this.position - 1; +} +; +_.position = 0; +_.size_0 = 0; +var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 386); +function $hasNext(this$static){ + checkState(this$static.state != 3); + switch (this$static.state) { + case 2: + return false; + case 0: + return true; + } + return $tryToComputeNext(this$static); +} + +function $next(this$static){ + var result; + if (!$hasNext(this$static)) { + throw toJs(new NoSuchElementException); + } + this$static.state = 1; + result = this$static.next_0; + this$static.next_0 = null; + return result; +} + +function $tryToComputeNext(this$static){ + this$static.state = 3; + this$static.next_0 = this$static.computeNext(); + if (this$static.state != 2) { + this$static.state = 0; + return true; + } + return false; +} + +defineClass(699, 198, $intern_3); +_.hasNext_0 = function hasNext_0(){ + return $hasNext(this); +} +; +_.next_1 = function next_1(){ + return $next(this); +} +; +_.state = 1; +var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 699); +function $containsEntry(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 14); + return !!collection && collection.contains(value_0); +} + +function $containsValue(this$static, value_0){ + var collection, collection$iterator; + for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) { + collection = castTo(collection$iterator.next_1(), 14); + if (collection.contains(value_0)) { + return true; + } + } + return false; +} + +function $keySet(this$static){ + var result; + result = this$static.keySet; + return !result?(this$static.keySet = this$static.createKeySet()):result; +} + +function $keys(this$static){ + var result; + result = this$static.keys_0; + return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result; +} + +function $remove_0(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 14); + return !!collection && collection.remove_1(value_0); +} + +defineClass(1986, 1, {224:1}); +_.asMap_0 = function asMap(){ + var result; + return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; +} +; +_.equals_0 = function equals_3(object){ + return equalsImpl_1(this, object); +} +; +_.hashCode_1 = function hashCode_4(){ + return hashCode__I__devirtual$(this.asMap_0()); +} +; +_.isEmpty = function isEmpty(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet(){ + return $keySet(this); +} +; +_.toString_0 = function toString_5(){ + return toString_40(this.asMap_0()); +} +; +var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 1986); +function $clear(this$static){ + var collection, collection$iterator; + for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) { + collection = castTo(collection$iterator.next_1(), 14); + collection.clear_0(); + } + this$static.map_0.clear_0(); + this$static.totalSize = 0; +} + +function $containsKey(this$static, key){ + return this$static.map_0.containsKey(key); +} + +function $entries(this$static){ + var result; + return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result; +} + +function $get(this$static, key){ + var collection; + collection = castTo(this$static.map_0.get_3(key), 14); + !collection && (collection = this$static.createCollection_0(key)); + return this$static.wrapCollection(key, collection); +} + +function $put(this$static, key, value_0){ + var collection; + collection = castTo(this$static.map_0.get_3(key), 14); + if (!collection) { + collection = this$static.createCollection_0(key); + if (collection.add_2(value_0)) { + ++this$static.totalSize; + this$static.map_0.put(key, collection); + return true; + } + else { + throw toJs(new AssertionError_0('New Collection violated the Collection spec')); + } + } + else if (collection.add_2(value_0)) { + ++this$static.totalSize; + return true; + } + else { + return false; + } +} + +function $removeAll(this$static, key){ + var collection, output; + collection = castTo(this$static.map_0.remove_0(key), 14); + if (!collection) { + return this$static.createUnmodifiableEmptyCollection(); + } + output = this$static.createCollection(); + output.addAll(collection); + this$static.totalSize -= collection.size_1(); + collection.clear_0(); + return this$static.unmodifiableCollectionSubclass(output); +} + +function $removeValuesForKey(this$static, key){ + var collection, count; + collection = castTo(safeRemove_0(this$static.map_0, key), 14); + if (collection) { + count = collection.size_1(); + collection.clear_0(); + this$static.totalSize -= count; + } +} + +function $values(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +function $wrapList(this$static, key, list, ancestor){ + return instanceOf(list, 54)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor); +} + +function AbstractMapBasedMultimap(map_0){ + checkArgument(map_0.isEmpty()); + this.map_0 = map_0; +} + +function iteratorOrListIterator(collection){ + return instanceOf(collection, 15)?castTo(collection, 15).listIterator_0():collection.iterator_0(); +} + +function lambda$1(keyToValueCollectionEntry_0){ + var key, valueCollection; + key = keyToValueCollectionEntry_0.getKey(); + valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 14); + return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); +} + +defineClass(726, 1986, $intern_5); +_.clear_0 = function clear_0(){ + $clear(this); +} +; +_.containsKey = function containsKey(key){ + return $containsKey(this, key); +} +; +_.createAsMap = function createAsMap(){ + return new AbstractMapBasedMultimap$AsMap(this, this.map_0); +} +; +_.createCollection_0 = function createCollection(key){ + return this.createCollection(); +} +; +_.createKeySet = function createKeySet(){ + return new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){ + return this.unmodifiableCollectionSubclass(this.createCollection()); +} +; +_.entryIterator = function entryIterator_0(){ + return new AbstractMapBasedMultimap$2(this); +} +; +_.entrySpliterator = function entrySpliterator_0(){ + return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize); +} +; +_.get_1 = function get_0(key){ + return $get(this, key); +} +; +_.removeAll = function removeAll(key){ + return $removeAll(this, key); +} +; +_.size_1 = function size_1(){ + return this.totalSize; +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){ + return $clinit_Collections() , new Collections$UnmodifiableCollection(collection); +} +; +_.valueIterator_0 = function valueIterator(){ + return new AbstractMapBasedMultimap$1(this); +} +; +_.valueSpliterator = function valueSpliterator(){ + return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize); +} +; +_.wrapCollection = function wrapCollection(key, collection){ + return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null); +} +; +_.totalSize = 0; +var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 726); +function $asMap(this$static){ + var result; + return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result; +} + +defineClass(1631, 726, $intern_5); +_.createCollection = function createCollection_0(){ + return new ArrayList_0(this.expectedValuesPerKey); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.get_1 = function get_1(key){ + return castTo($get(this, key), 15); +} +; +_.removeAll = function removeAll_0(key){ + return castTo($removeAll(this, key), 15); +} +; +_.asMap_0 = function asMap_0(){ + return $asMap(this); +} +; +_.equals_0 = function equals_4(object){ + return equalsImpl_1(this, object); +} +; +_.get_2 = function get_2(key){ + return castTo($get(this, key), 15); +} +; +_.removeAll_0 = function removeAll_1(key){ + return castTo($removeAll(this, key), 15); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){ + return unmodifiableList(castTo(collection, 15)); +} +; +_.wrapCollection = function wrapCollection_0(key, collection){ + return $wrapList(this, key, castTo(collection, 15), null); +} +; +var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1631); +function AbstractMapBasedMultimap$Itr(this$0){ + this.this$01 = this$0; + this.keyIterator = this$0.map_0.entrySet_0().iterator_0(); + this.key = null; + this.collection = null; + this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2); +} + +defineClass(732, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_0(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_1(){ + return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0(); +} +; +_.next_1 = function next_2(){ + var mapEntry; + if (!this.valueIterator.hasNext_0()) { + mapEntry = castTo(this.keyIterator.next_1(), 42); + this.key = mapEntry.getKey(); + this.collection = castTo(mapEntry.getValue(), 14); + this.valueIterator = this.collection.iterator_0(); + } + return this.output(this.key, this.valueIterator.next_1()); +} +; +_.remove = function remove_2(){ + this.valueIterator.remove(); + this.collection.isEmpty() && this.keyIterator.remove(); + --this.this$01.totalSize; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 732); +function AbstractMapBasedMultimap$1(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1099, 732, $intern_6, AbstractMapBasedMultimap$1); +_.output = function output_0(key, value_0){ + return value_0; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1099); +function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ +} + +defineClass(1100, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); +_.apply_0 = function apply_2(arg0){ + return castTo(arg0, 14).spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1100); +function AbstractMapBasedMultimap$2(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1101, 732, $intern_6, AbstractMapBasedMultimap$2); +_.output = function output_1(key, value_0){ + return new ImmutableEntry(key, value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1101); +function $forEach_2(this$static, consumer){ + var entry, entry$iterator; + checkCriticalNotNull(consumer); + for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + consumer.accept_1(entry.getKey(), entry.getValue()); + } +} + +function $merge(this$static, key, value_0, remappingFunction){ + var currentValue, newValue; + checkCriticalNotNull(remappingFunction); + checkCriticalNotNull(value_0); + currentValue = this$static.get_3(key); + newValue = currentValue == null?value_0:addAll_21(castTo(currentValue, 15), castTo(value_0, 14)); + newValue == null?this$static.remove_0(key):this$static.put(key, newValue); + return newValue; +} + +var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map'); +function $containsEntry_0(this$static, entry){ + var key, ourValue, value_0; + key = entry.getKey(); + value_0 = entry.getValue(); + ourValue = this$static.get_3(key); + if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) { + return false; + } + if (ourValue == null && !this$static.containsKey(key)) { + return false; + } + return true; +} + +function $implFindEntry(this$static, key, remove){ + var entry, iter, k; + for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) { + entry = castTo(iter.next_1(), 42); + k = entry.getKey(); + if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) { + if (remove) { + entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue()); + iter.remove(); + } + return entry; + } + } + return null; +} + +function $putAll(this$static, map_0){ + var e, e$iterator; + checkCriticalNotNull(map_0); + for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 42); + this$static.put(e.getKey(), e.getValue()); + } +} + +function $toString_0(this$static){ + var entry, entry$iterator, joiner; + joiner = new StringJoiner(', ', '{', '}'); + for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + $add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue())); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function $toString_1(this$static, o){ + return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o); +} + +function getEntryKeyOrNull(entry){ + return !entry?null:entry.key; +} + +function getEntryValueOrNull(entry){ + return !entry?null:entry.getValue(); +} + +defineClass(1967, 1, $intern_7); +_.forEach = function forEach(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_1(){ + this.entrySet_0().clear_0(); +} +; +_.containsEntry = function containsEntry(entry){ + return $containsEntry_0(this, entry); +} +; +_.containsKey = function containsKey_0(key){ + return !!$implFindEntry(this, key, false); +} +; +_.containsValue = function containsValue(value_0){ + var entry, entry$iterator, v; + for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + v = entry.getValue(); + if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) { + return true; + } + } + return false; +} +; +_.equals_0 = function equals_5(obj){ + var entry, entry$iterator, otherMap; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 83)) { + return false; + } + otherMap = castTo(obj, 83); + if (this.size_1() != otherMap.size_1()) { + return false; + } + for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if (!this.containsEntry(entry)) { + return false; + } + } + return true; +} +; +_.get_3 = function get_3(key){ + return getEntryValueOrNull($implFindEntry(this, key, false)); +} +; +_.hashCode_1 = function hashCode_5(){ + return hashCode_47(this.entrySet_0()); +} +; +_.isEmpty = function isEmpty_0(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet_0(){ + return new AbstractMap$1(this); +} +; +_.put = function put(key, value_0){ + throw toJs(new UnsupportedOperationException_0('Put not supported on this map')); +} +; +_.putAll = function putAll(map_0){ + $putAll(this, map_0); +} +; +_.remove_0 = function remove_3(key){ + return getEntryValueOrNull($implFindEntry(this, key, true)); +} +; +_.size_1 = function size_2(){ + return this.entrySet_0().size_1(); +} +; +_.toString_0 = function toString_6(){ + return $toString_0(this); +} +; +_.values_0 = function values_1(){ + return new AbstractMap$2(this); +} +; +var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 1967); +function $entrySet(this$static){ + var result; + result = this$static.entrySet; + return !result?(this$static.entrySet = this$static.createEntrySet()):result; +} + +defineClass(1987, 1967, $intern_7); +_.createKeySet = function createKeySet_0(){ + return new Maps$KeySet(this); +} +; +_.entrySet_0 = function entrySet(){ + return $entrySet(this); +} +; +_.keySet_0 = function keySet_1(){ + var result; + result = this.keySet; + return !result?(this.keySet = this.createKeySet()):result; +} +; +_.values_0 = function values_2(){ + var result; + result = this.values; + return !result?(this.values = new Maps$Values(this)):result; +} +; +var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 1987); +function $get_0(this$static, key){ + var collection, k; + collection = castTo(safeGet(this$static.submap, key), 14); + if (!collection) { + return null; + } + k = key; + return this$static.this$01_1.wrapCollection(k, collection); +} + +function $remove_1(this$static, key){ + var collection, output; + collection = castTo(this$static.submap.remove_0(key), 14); + if (!collection) { + return null; + } + output = this$static.this$01_1.createCollection(); + output.addAll(collection); + this$static.this$01_1.totalSize -= collection.size_1(); + collection.clear_0(); + return output; +} + +function $wrapEntry(this$static, entry){ + var key; + key = entry.getKey(); + return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 14))); +} + +function AbstractMapBasedMultimap$AsMap(this$0, submap){ + this.this$01_1 = this$0; + this.submap = submap; +} + +defineClass(389, 1987, $intern_7, AbstractMapBasedMultimap$AsMap); +_.get_3 = function get_4(key){ + return $get_0(this, key); +} +; +_.remove_0 = function remove_4(key){ + return $remove_1(this, key); +} +; +_.clear_0 = function clear_2(){ + this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this)); +} +; +_.containsKey = function containsKey_1(key){ + return safeContainsKey(this.submap, key); +} +; +_.createEntrySet_0 = function createEntrySet(){ + return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this); +} +; +_.createEntrySet = function(){ + return this.createEntrySet_0(); +} +; +_.equals_0 = function equals_6(object){ + return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object); +} +; +_.hashCode_1 = function hashCode_6(){ + return hashCode__I__devirtual$(this.submap); +} +; +_.keySet_0 = function keySet_2(){ + return this.this$01_1.keySet_0(); +} +; +_.size_1 = function size_3(){ + return this.submap.size_1(); +} +; +_.toString_0 = function toString_7(){ + return toString_40(this.submap); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 389); +function $forEach_0(this$static, action){ + var t, t$iterator; + checkCriticalNotNull(action); + for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + action.accept(t); + } +} + +var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable'); +function $addAll(this$static, c){ + var changed, e, e$iterator; + checkCriticalNotNull(c); + changed = false; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + changed = changed | this$static.add_2(e); + } + return changed; +} + +function $advanceToFind(this$static, o, remove){ + var e, iter; + for (iter = this$static.iterator_0(); iter.hasNext_0();) { + e = iter.next_1(); + if (maskUndefined(o) === maskUndefined(e) || o != null && equals_Ljava_lang_Object__Z__devirtual$(o, e)) { + remove && iter.remove(); + return true; + } + } + return false; +} + +function $clear_0(this$static){ + var iter; + for (iter = this$static.iterator_0(); iter.hasNext_0();) { + iter.next_1(); + iter.remove(); + } +} + +function $containsAll(this$static, c){ + var e, e$iterator; + checkCriticalNotNull(c); + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + if (!this$static.contains(e)) { + return false; + } + } + return true; +} + +function $removeAll_0(this$static, c){ + var changed, iter, o; + checkCriticalNotNull(c); + changed = false; + for (iter = new ArrayList$1(this$static); iter.i < iter.this$01.array.length;) { + o = $next_7(iter); + if ($advanceToFind(c, o, false)) { + $remove_13(iter); + changed = true; + } + } + return changed; +} + +function $toArray(this$static){ + return this$static.toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.size_1(), 5, 1)); +} + +function $toArray_0(this$static, a){ + var i, it, result, size_0; + size_0 = this$static.size_1(); + a.length < size_0 && (a = stampJavaTypeInfo_1(new Array(size_0), a)); + result = a; + it = this$static.iterator_0(); + for (i = 0; i < size_0; ++i) { + setCheck(result, i, it.next_1()); + } + a.length > size_0 && setCheck(a, size_0, null); + return a; +} + +function $toString_2(this$static){ + var e, e$iterator, joiner; + joiner = new StringJoiner(', ', '[', ']'); + for (e$iterator = this$static.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $add_9(joiner, maskUndefined(e) === maskUndefined(this$static)?'(this Collection)':e == null?'null':toString_40(e)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +defineClass(28, 1, $intern_8); +_.forEach_0 = function forEach_0(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream(){ + return this.stream(); +} +; +_.spliterator_0 = function spliterator_0(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_0(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_2(o){ + throw toJs(new UnsupportedOperationException_0('Add not supported on this collection')); +} +; +_.addAll = function addAll(c){ + return $addAll(this, c); +} +; +_.clear_0 = function clear_3(){ + $clear_0(this); +} +; +_.contains = function contains(o){ + return $advanceToFind(this, o, false); +} +; +_.containsAll = function containsAll(c){ + return $containsAll(this, c); +} +; +_.isEmpty = function isEmpty_1(){ + return this.size_1() == 0; +} +; +_.remove_1 = function remove_5(o){ + return $advanceToFind(this, o, true); +} +; +_.toArray = function toArray(){ + return $toArray(this); +} +; +_.toArray_0 = function toArray_0(a){ + return $toArray_0(this, a); +} +; +_.toString_0 = function toString_8(){ + return $toString_2(this); +} +; +var Ljava_util_AbstractCollection_2_classLit = createForClass('java.util', 'AbstractCollection', 28); +var Ljava_util_Set_2_classLit = createForInterface('java.util', 'Set'); +function $equals_0(this$static, o){ + var other; + if (maskUndefined(o) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(o, 21)) { + return false; + } + other = castTo(o, 21); + if (other.size_1() != this$static.size_1()) { + return false; + } + return this$static.containsAll(other); +} + +function $removeAll_1(this$static, c){ + var iter, o, o$iterator, size_0; + checkCriticalNotNull(c); + size_0 = this$static.map_0.size_1(); + if (size_0 < c.size_1()) { + for (iter = this$static.map_0.keySet_0().iterator_0(); iter.hasNext_0();) { + o = iter.next_1(); + c.contains(o) && iter.remove(); + } + } + else { + for (o$iterator = c.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + this$static.map_0.remove_0(o) != null; + } + } + return size_0 != this$static.map_0.size_1(); +} + +defineClass($intern_9, 28, $intern_10); +_.spliterator_0 = function spliterator_1(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_7(o){ + return $equals_0(this, o); +} +; +_.hashCode_1 = function hashCode_7(){ + return hashCode_47(this); +} +; +var Ljava_util_AbstractSet_2_classLit = createForClass('java.util', 'AbstractSet', $intern_9); +defineClass(1970, $intern_9, $intern_10); +var Lcom_google_common_collect_Sets$ImprovedAbstractSet_2_classLit = createForClass('com.google.common.collect', 'Sets/ImprovedAbstractSet', 1970); +function $contains(this$static, o){ + var entry, key, value_0; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + key = entry.getKey(); + value_0 = safeGet(this$static.map_1(), key); + return equal(value_0, entry.getValue()) && (value_0 != null || this$static.map_1().containsKey(key)); + } + return false; +} + +defineClass(1971, 1970, $intern_10); +_.clear_0 = function clear_4(){ + this.map_1().clear_0(); +} +; +_.contains = function contains_0(o){ + return $contains(this, o); +} +; +_.isEmpty = function isEmpty_2(){ + return this.map_1().isEmpty(); +} +; +_.remove_1 = function remove_6(o){ + var entry; + if (this.contains(o)) { + entry = castTo(o, 42); + return this.map_1().keySet_0().remove_1(entry.getKey()); + } + return false; +} +; +_.size_1 = function size_4(){ + return this.map_1().size_1(); +} +; +var Lcom_google_common_collect_Maps$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Maps/EntrySet', 1971); +function AbstractMapBasedMultimap$AsMap$AsMapEntries(this$1){ + this.this$11 = this$1; +} + +defineClass(1097, 1971, $intern_10, AbstractMapBasedMultimap$AsMap$AsMapEntries); +_.contains = function contains_1(o){ + return safeContains(this.this$11.submap.entrySet_0(), o); +} +; +_.iterator_0 = function iterator_0(){ + return new AbstractMapBasedMultimap$AsMap$AsMapIterator(this.this$11); +} +; +_.map_1 = function map_1(){ + return this.this$11; +} +; +_.remove_1 = function remove_7(o){ + var entry; + if (!safeContains(this.this$11.submap.entrySet_0(), o)) { + return false; + } + entry = castTo(o, 42); + $removeValuesForKey(this.this$11.this$01_1, entry.getKey()); + return true; +} +; +_.spliterator_0 = function spliterator_2(){ + return map_2(this.this$11.submap.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type(this.this$11)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries', 1097); +function AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1098, 1, {}, AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type); +_.apply_0 = function apply_3(arg0){ + return $wrapEntry(this.$$outer_0, castTo(arg0, 42)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type', 1098); +function AbstractMapBasedMultimap$AsMap$AsMapIterator(this$1){ + this.this$11 = this$1; + this.delegateIterator = this.this$11.submap.entrySet_0().iterator_0(); +} + +defineClass(730, 1, $intern_6, AbstractMapBasedMultimap$AsMap$AsMapIterator); +_.forEachRemaining = function forEachRemaining_1(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_3(){ + var entry; + return entry = castTo(this.delegateIterator.next_1(), 42) , this.collection = castTo(entry.getValue(), 14) , $wrapEntry(this.this$11, entry); +} +; +_.hasNext_0 = function hasNext_2(){ + return this.delegateIterator.hasNext_0(); +} +; +_.remove = function remove_8(){ + checkState_0(!!this.collection); + this.delegateIterator.remove(); + this.this$11.this$01_1.totalSize -= this.collection.size_1(); + this.collection.clear_0(); + this.collection = null; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapIterator', 730); +function Maps$KeySet(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 83); +} + +defineClass(532, 1970, $intern_10, Maps$KeySet); +_.clear_0 = function clear_5(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_2(o){ + return this.map_0.containsKey(o); +} +; +_.forEach_0 = function forEach_1(action){ + checkNotNull(action); + this.map_0.forEach(new Maps$KeySet$lambda$0$Type(action)); +} +; +_.isEmpty = function isEmpty_3(){ + return this.map_0.isEmpty(); +} +; +_.iterator_0 = function iterator_1(){ + return new Maps$1(this.map_0.entrySet_0().iterator_0()); +} +; +_.remove_1 = function remove_9(o){ + if (this.map_0.containsKey(o)) { + this.map_0.remove_0(o); + return true; + } + return false; +} +; +_.size_1 = function size_5(){ + return this.map_0.size_1(); +} +; +var Lcom_google_common_collect_Maps$KeySet_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet', 532); +function AbstractMapBasedMultimap$KeySet(this$0, subMap){ + this.this$01 = this$0; + Maps$KeySet.call(this, subMap); +} + +defineClass(318, 532, $intern_10, AbstractMapBasedMultimap$KeySet); +_.clear_0 = function clear_6(){ + var entryIterator; + clear_20((entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator))); +} +; +_.containsAll = function containsAll_0(c){ + return this.map_0.keySet_0().containsAll(c); +} +; +_.equals_0 = function equals_8(object){ + return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.map_0.keySet_0(), object); +} +; +_.hashCode_1 = function hashCode_8(){ + return hashCode__I__devirtual$(this.map_0.keySet_0()); +} +; +_.iterator_0 = function iterator_2(){ + var entryIterator; + return entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator); +} +; +_.remove_1 = function remove_10(key){ + var collection, count; + count = 0; + collection = castTo(this.map_0.remove_0(key), 14); + if (collection) { + count = collection.size_1(); + collection.clear_0(); + this.this$01.totalSize -= count; + } + return count > 0; +} +; +_.spliterator_0 = function spliterator_3(){ + return this.map_0.keySet_0().spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet', 318); +function AbstractMapBasedMultimap$KeySet$1(this$1, val$entryIterator){ + this.this$11 = this$1; + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(731, 1, $intern_6, AbstractMapBasedMultimap$KeySet$1); +_.forEachRemaining = function forEachRemaining_2(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_3(){ + return this.val$entryIterator2.hasNext_0(); +} +; +_.next_1 = function next_4(){ + this.entry = castTo(this.val$entryIterator2.next_1(), 42); + return this.entry.getKey(); +} +; +_.remove = function remove_11(){ + var collection; + checkState_0(!!this.entry); + collection = castTo(this.entry.getValue(), 14); + this.val$entryIterator2.remove(); + this.this$11.this$01.totalSize -= collection.size_1(); + collection.clear_0(); + this.entry = null; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet/1', 731); +function AbstractMapBasedMultimap$SortedAsMap(this$0, submap){ + this.this$01_0 = this$0; + AbstractMapBasedMultimap$AsMap.call(this, this$0, submap); +} + +defineClass(491, 389, {83:1, 161:1}, AbstractMapBasedMultimap$SortedAsMap); +_.createKeySet = function createKeySet_1(){ + return this.createKeySet_0(); +} +; +_.keySet_0 = function keySet_3(){ + return this.keySet_1(); +} +; +_.createKeySet_0 = function createKeySet_2(){ + return new AbstractMapBasedMultimap$SortedKeySet(this.this$01_0, this.sortedMap()); +} +; +_.keySet_1 = function keySet_4(){ + var result; + return result = this.sortedKeySet , !result?(this.sortedKeySet = this.createKeySet_0()):result; +} +; +_.sortedMap = function sortedMap(){ + return castTo(this.submap, 161); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedAsMap', 491); +function AbstractMapBasedMultimap$NavigableAsMap(this$0, submap){ + this.this$01 = this$0; + AbstractMapBasedMultimap$SortedAsMap.call(this, this$0, submap); +} + +defineClass(542, 491, $intern_11, AbstractMapBasedMultimap$NavigableAsMap); +_.createKeySet = function createKeySet_3(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); +} +; +_.createKeySet_0 = function createKeySet_4(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); +} +; +_.keySet_0 = function keySet_5(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); +} +; +_.keySet_1 = function keySet_6(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); +} +; +_.sortedMap = function sortedMap_0(){ + return castTo(castTo(this.submap, 161), 171); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableAsMap', 542); +function AbstractMapBasedMultimap$SortedKeySet(this$0, subMap){ + AbstractMapBasedMultimap$KeySet.call(this, this$0, subMap); +} + +defineClass(490, 318, $intern_12, AbstractMapBasedMultimap$SortedKeySet); +_.spliterator_0 = function spliterator_4(){ + return this.map_0.keySet_0().spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedKeySet', 490); +function AbstractMapBasedMultimap$NavigableKeySet(this$0, subMap){ + AbstractMapBasedMultimap$SortedKeySet.call(this, this$0, subMap); +} + +defineClass(388, 490, $intern_13, AbstractMapBasedMultimap$NavigableKeySet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableKeySet', 388); +function $addToMap(this$static){ + this$static.ancestor?$addToMap(this$static.ancestor):this$static.this$01_0.map_0.put(this$static.key, this$static.delegate); +} + +function $refreshIfEmpty(this$static){ + var newDelegate; + if (this$static.ancestor) { + $refreshIfEmpty(this$static.ancestor); + if (this$static.ancestor.delegate != this$static.ancestorDelegate) { + throw toJs(new ConcurrentModificationException); + } + } + else if (this$static.delegate.isEmpty()) { + newDelegate = castTo(this$static.this$01_0.map_0.get_3(this$static.key), 14); + !!newDelegate && (this$static.delegate = newDelegate); + } +} + +function $removeIfEmpty(this$static){ + this$static.ancestor?$removeIfEmpty(this$static.ancestor):this$static.delegate.isEmpty() && this$static.this$01_0.map_0.remove_0(this$static.key); +} + +function $size(this$static){ + $refreshIfEmpty(this$static); + return this$static.delegate.size_1(); +} + +function AbstractMapBasedMultimap$WrappedCollection(this$0, key, delegate, ancestor){ + this.this$01_0 = this$0; + this.key = key; + this.delegate = delegate; + this.ancestor = ancestor; + this.ancestorDelegate = !ancestor?null:ancestor.delegate; +} + +defineClass(541, 28, $intern_8, AbstractMapBasedMultimap$WrappedCollection); +_.add_2 = function add_3(value_0){ + var changed, wasEmpty; + $refreshIfEmpty(this); + wasEmpty = this.delegate.isEmpty(); + changed = this.delegate.add_2(value_0); + if (changed) { + ++this.this$01_0.totalSize; + wasEmpty && $addToMap(this); + } + return changed; +} +; +_.addAll = function addAll_0(collection){ + var changed, newSize, oldSize; + if (collection.isEmpty()) { + return false; + } + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + changed = this.delegate.addAll(collection); + if (changed) { + newSize = this.delegate.size_1(); + this.this$01_0.totalSize += newSize - oldSize; + oldSize == 0 && $addToMap(this); + } + return changed; +} +; +_.clear_0 = function clear_7(){ + var oldSize; + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + if (oldSize == 0) { + return; + } + this.delegate.clear_0(); + this.this$01_0.totalSize -= oldSize; + $removeIfEmpty(this); +} +; +_.contains = function contains_3(o){ + $refreshIfEmpty(this); + return this.delegate.contains(o); +} +; +_.containsAll = function containsAll_1(c){ + $refreshIfEmpty(this); + return this.delegate.containsAll(c); +} +; +_.equals_0 = function equals_9(object){ + if (object === this) { + return true; + } + $refreshIfEmpty(this); + return equals_Ljava_lang_Object__Z__devirtual$(this.delegate, object); +} +; +_.hashCode_1 = function hashCode_9(){ + $refreshIfEmpty(this); + return hashCode__I__devirtual$(this.delegate); +} +; +_.iterator_0 = function iterator_3(){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this); +} +; +_.remove_1 = function remove_12(o){ + var changed; + $refreshIfEmpty(this); + changed = this.delegate.remove_1(o); + if (changed) { + --this.this$01_0.totalSize; + $removeIfEmpty(this); + } + return changed; +} +; +_.size_1 = function size_6(){ + return $size(this); +} +; +_.spliterator_0 = function spliterator_5(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +_.toString_0 = function toString_9(){ + $refreshIfEmpty(this); + return toString_40(this.delegate); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection', 541); +function $sort_0(this$static, c){ + var a, i; + a = this$static.toArray(); + mergeSort(a, 0, a.length, c); + for (i = 0; i < a.length; i++) { + this$static.set_2(i, a[i]); + } +} + +var Ljava_util_List_2_classLit = createForInterface('java.util', 'List'); +function AbstractMapBasedMultimap$WrappedList(this$0, key, delegate, ancestor){ + this.this$01 = this$0; + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, ancestor); +} + +defineClass(728, 541, {20:1, 28:1, 14:1, 15:1}, AbstractMapBasedMultimap$WrappedList); +_.sort_0 = function sort_0(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_6(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +_.add_3 = function add_4(index_0, element){ + var wasEmpty; + $refreshIfEmpty(this); + wasEmpty = this.delegate.isEmpty(); + castTo(this.delegate, 15).add_3(index_0, element); + ++this.this$01.totalSize; + wasEmpty && $addToMap(this); +} +; +_.addAll_0 = function addAll_1(index_0, c){ + var changed, newSize, oldSize; + if (c.isEmpty()) { + return false; + } + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + changed = castTo(this.delegate, 15).addAll_0(index_0, c); + if (changed) { + newSize = this.delegate.size_1(); + this.this$01.totalSize += newSize - oldSize; + oldSize == 0 && $addToMap(this); + } + return changed; +} +; +_.get_0 = function get_5(index_0){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).get_0(index_0); +} +; +_.indexOf_0 = function indexOf(o){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).indexOf_0(o); +} +; +_.listIterator_0 = function listIterator(){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this); +} +; +_.listIterator_1 = function listIterator_0(index_0){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this, index_0); +} +; +_.remove_2 = function remove_13(index_0){ + var value_0; + $refreshIfEmpty(this); + value_0 = castTo(this.delegate, 15).remove_2(index_0); + --this.this$01.totalSize; + $removeIfEmpty(this); + return value_0; +} +; +_.set_2 = function set_2(index_0, element){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).set_2(index_0, element); +} +; +_.subList = function subList_0(fromIndex, toIndex){ + $refreshIfEmpty(this); + return $wrapList(this.this$01, this.key, castTo(this.delegate, 15).subList(fromIndex, toIndex), !this.ancestor?this:this.ancestor); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList', 728); +function AbstractMapBasedMultimap$RandomAccessWrappedList(this$0, key, delegate, ancestor){ + AbstractMapBasedMultimap$WrappedList.call(this, this$0, key, delegate, ancestor); +} + +defineClass(1096, 728, {20:1, 28:1, 14:1, 15:1, 54:1}, AbstractMapBasedMultimap$RandomAccessWrappedList); +var Lcom_google_common_collect_AbstractMapBasedMultimap$RandomAccessWrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/RandomAccessWrappedList', 1096); +function $$init(this$static){ + this$static.originalDelegate = this$static.this$11_0.delegate; +} + +function $remove_2(this$static){ + this$static.delegateIterator.remove(); + --this$static.this$11_0.this$01_0.totalSize; + $removeIfEmpty(this$static.this$11_0); +} + +function $validateIterator(this$static){ + $refreshIfEmpty(this$static.this$11_0); + if (this$static.this$11_0.delegate != this$static.originalDelegate) { + throw toJs(new ConcurrentModificationException); + } +} + +function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this$1){ + this.this$11_0 = this$1; + $$init(this); + this.delegateIterator = iteratorOrListIterator(this$1.delegate); +} + +function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0(this$1, delegateIterator){ + this.this$11_0 = this$1; + $$init(this); + this.delegateIterator = delegateIterator; +} + +defineClass(620, 1, $intern_6, AbstractMapBasedMultimap$WrappedCollection$WrappedIterator); +_.forEachRemaining = function forEachRemaining_3(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_4(){ + $validateIterator(this); + return this.delegateIterator.hasNext_0(); +} +; +_.next_1 = function next_5(){ + $validateIterator(this); + return this.delegateIterator.next_1(); +} +; +_.remove = function remove_14(){ + $remove_2(this); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator', 620); +function AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this$1){ + this.this$11 = this$1; + AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.call(this, this$1); +} + +function AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this$1, index_0){ + this.this$11 = this$1; + AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0.call(this, this$1, castTo(this$1.delegate, 15).listIterator_1(index_0)); +} + +defineClass(729, 620, $intern_14, AbstractMapBasedMultimap$WrappedList$WrappedListIterator, AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0); +_.remove = function remove_15(){ + $remove_2(this); +} +; +_.add_1 = function add_5(value_0){ + var wasEmpty; + wasEmpty = $size(this.this$11) == 0; + ($validateIterator(this) , castTo(this.delegateIterator, 125)).add_1(value_0); + ++this.this$11.this$01.totalSize; + wasEmpty && $addToMap(this.this$11); +} +; +_.hasPrevious = function hasPrevious_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).nextIndex_0(); +} +; +_.previous_0 = function previous_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previous_0(); +} +; +_.previousIndex = function previousIndex_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previousIndex(); +} +; +_.set_1 = function set_3(value_0){ + ($validateIterator(this) , castTo(this.delegateIterator, 125)).set_1(value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList$WrappedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList/WrappedListIterator', 729); +function AbstractMapBasedMultimap$WrappedSortedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(727, 541, $intern_12, AbstractMapBasedMultimap$WrappedSortedSet); +_.spliterator_0 = function spliterator_7(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSortedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSortedSet', 727); +function AbstractMapBasedMultimap$WrappedNavigableSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedSortedSet.call(this, this$0, key, delegate); +} + +defineClass(1095, 727, $intern_13, AbstractMapBasedMultimap$WrappedNavigableSet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedNavigableSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedNavigableSet', 1095); +function AbstractMapBasedMultimap$WrappedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(1094, 541, $intern_10, AbstractMapBasedMultimap$WrappedSet); +_.spliterator_0 = function spliterator_8(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSet', 1094); +function AbstractMapBasedMultimap$lambda$1$Type(){ +} + +defineClass(1103, 1, {}, AbstractMapBasedMultimap$lambda$1$Type); +_.apply_0 = function apply_4(arg0){ + return lambda$1(castTo(arg0, 42)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$1$Type', 1103); +function AbstractMapBasedMultimap$lambda$2$Type(key_0){ + this.key_0 = key_0; +} + +defineClass(1102, 1, {}, AbstractMapBasedMultimap$lambda$2$Type); +_.apply_0 = function apply_5(arg0){ + return new ImmutableEntry(this.key_0, arg0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$2$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$2$Type', 1102); +var Ljava_util_Map$Entry_2_classLit = createForInterface('java.util', 'Map/Entry'); +defineClass(345, 1, $intern_15); +_.equals_0 = function equals_10(object){ + var that; + if (instanceOf(object, 42)) { + that = castTo(object, 42); + return equal(this.getKey(), that.getKey()) && equal(this.getValue(), that.getValue()); + } + return false; +} +; +_.hashCode_1 = function hashCode_10(){ + var k, v; + k = this.getKey(); + v = this.getValue(); + return (k == null?0:hashCode__I__devirtual$(k)) ^ (v == null?0:hashCode__I__devirtual$(v)); +} +; +_.setValue = function setValue(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_10(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Lcom_google_common_collect_AbstractMapEntry_2_classLit = createForClass('com.google.common.collect', 'AbstractMapEntry', 345); +defineClass(1988, 28, $intern_8); +_.clear_0 = function clear_8(){ + this.multimap_0().clear_0(); +} +; +_.contains = function contains_4(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $containsEntry(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.remove_1 = function remove_16(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $remove_0(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.size_1 = function size_7(){ + return this.multimap_0().totalSize; +} +; +var Lcom_google_common_collect_Multimaps$Entries_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Entries', 1988); +function AbstractMultimap$Entries(this$0){ + this.this$01 = this$0; +} + +defineClass(733, 1988, $intern_8, AbstractMultimap$Entries); +_.iterator_0 = function iterator_4(){ + return this.this$01.entryIterator(); +} +; +_.multimap_0 = function multimap_0(){ + return this.this$01; +} +; +_.spliterator_0 = function spliterator_9(){ + return this.this$01.entrySpliterator(); +} +; +var Lcom_google_common_collect_AbstractMultimap$Entries_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Entries', 733); +function AbstractMultimap$EntrySet(this$0){ + AbstractMultimap$Entries.call(this, this$0); +} + +defineClass(734, 733, $intern_10, AbstractMultimap$EntrySet); +_.spliterator_0 = function spliterator_10(){ + return this.this$01.entrySpliterator(); +} +; +_.equals_0 = function equals_11(obj){ + return equalsImpl_3(this, obj); +} +; +_.hashCode_1 = function hashCode_11(){ + return hashCodeImpl_0(this); +} +; +var Lcom_google_common_collect_AbstractMultimap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/EntrySet', 734); +function AbstractMultimap$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(735, 28, $intern_8, AbstractMultimap$Values); +_.clear_0 = function clear_9(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_5(o){ + return $containsValue(this.this$01, o); +} +; +_.iterator_0 = function iterator_5(){ + return this.this$01.valueIterator_0(); +} +; +_.size_1 = function size_8(){ + return this.this$01.totalSize; +} +; +_.spliterator_0 = function spliterator_11(){ + return this.this$01.valueSpliterator(); +} +; +var Lcom_google_common_collect_AbstractMultimap$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Values', 735); +function lambda$0_1(entry_1){ + entry_1.val$backingEntry2.getKey(); + castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); + $add(); +} + +function lambda$1_1(action_0, entry_1){ + var count, elem, i; + elem = entry_1.val$backingEntry2.getKey(); + count = castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); + for (i = 0; i < count; i++) { + action_0.accept(elem); + } +} + +function $add(){ + throw toJs(new UnsupportedOperationException); +} + +function $entrySet_0(this$static){ + var result; + result = this$static.entrySet; + !result && (this$static.entrySet = result = new AbstractMultiset$EntrySet(this$static)); + return result; +} + +function $forEachEntry(this$static, action){ + checkNotNull(action); + $entrySet_0(this$static).forEach_0(new Multiset$lambda$0$Type); +} + +defineClass(1989, 28, {835:1, 20:1, 28:1, 14:1}); +_.forEach_0 = function forEach_2(action){ + checkNotNull(action); + $entrySet_0(this).forEach_0(new Multiset$lambda$1$Type(action)); +} +; +_.spliterator_0 = function spliterator_12(){ + var entrySpliterator; + return entrySpliterator = $entrySet_0(this).spliterator_0() , flatMap(entrySpliterator, new Multisets$lambda$3$Type, 64 | entrySpliterator.characteristics_0() & 1296, this.multimap.totalSize); +} +; +_.add_2 = function add_6(element){ + $add(); + return true; +} +; +_.addAll = function addAll_2(elementsToAdd){ + return checkNotNull(this) , checkNotNull(elementsToAdd) , instanceOf(elementsToAdd, 543)?addAllImpl(castTo(elementsToAdd, 835)):!elementsToAdd.isEmpty() && addAll_7(this, elementsToAdd.iterator_0()); +} +; +_.contains = function contains_6(element){ + var values; + return values = castTo(safeGet($asMap(this.multimap), element), 14) , (!values?0:values.size_1()) > 0; +} +; +_.equals_0 = function equals_12(object){ + return equalsImpl_2(this, object); +} +; +_.hashCode_1 = function hashCode_12(){ + return hashCode__I__devirtual$($entrySet_0(this)); +} +; +_.isEmpty = function isEmpty_4(){ + return $entrySet_0(this).isEmpty(); +} +; +_.remove_1 = function remove_17(element){ + return $remove_5(this, element, 1) > 0; +} +; +_.toString_0 = function toString_11(){ + return toString_40($entrySet_0(this)); +} +; +var Lcom_google_common_collect_AbstractMultiset_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset', 1989); +defineClass(1991, 1970, $intern_10); +_.clear_0 = function clear_10(){ + $clear(this.this$01.multimap); +} +; +_.contains = function contains_7(o){ + var count, entry; + if (instanceOf(o, 492)) { + entry = castTo(o, 416); + if (castTo(entry.val$backingEntry2.getValue(), 14).size_1() <= 0) { + return false; + } + count = $count(this.this$01, entry.val$backingEntry2.getKey()); + return count == castTo(entry.val$backingEntry2.getValue(), 14).size_1(); + } + return false; +} +; +_.remove_1 = function remove_18(object){ + var element, entry, entryCount, multiset; + if (instanceOf(object, 492)) { + entry = castTo(object, 416); + element = entry.val$backingEntry2.getKey(); + entryCount = castTo(entry.val$backingEntry2.getValue(), 14).size_1(); + if (entryCount != 0) { + multiset = this.this$01; + return setCountImpl(multiset, element, entryCount); + } + } + return false; +} +; +var Lcom_google_common_collect_Multisets$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multisets/EntrySet', 1991); +function AbstractMultiset$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1109, 1991, $intern_10, AbstractMultiset$EntrySet); +_.iterator_0 = function iterator_6(){ + return new Multimaps$Keys$1($entrySet($asMap(this.this$01.multimap)).iterator_0()); +} +; +_.size_1 = function size_9(){ + return $asMap(this.this$01.multimap).size_1(); +} +; +var Lcom_google_common_collect_AbstractMultiset$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset/EntrySet', 1109); +function AbstractSetMultimap(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(619, 726, $intern_5); +_.createCollection = function createCollection_1(){ + return this.createCollection_1(); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_1(){ + return this.createUnmodifiableEmptyCollection_0(); +} +; +_.get_1 = function get_6(key){ + return this.get_4(key); +} +; +_.removeAll = function removeAll_2(key){ + return this.removeAll_1(key); +} +; +_.asMap_0 = function asMap_1(){ + var result; + return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; +} +; +_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_2(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_SET; +} +; +_.equals_0 = function equals_13(object){ + return equalsImpl_1(this, object); +} +; +_.get_4 = function get_7(key){ + return castTo($get(this, key), 21); +} +; +_.removeAll_1 = function removeAll_3(key){ + return castTo($removeAll(this, key), 21); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_1(collection){ + return $clinit_Collections() , new Collections$UnmodifiableSet(castTo(collection, 21)); +} +; +_.wrapCollection = function wrapCollection_1(key, collection){ + return new AbstractMapBasedMultimap$WrappedSet(this, key, castTo(collection, 21)); +} +; +var Lcom_google_common_collect_AbstractSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSetMultimap', 619); +function $values_0(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +defineClass(1657, 619, $intern_5); +_.createCollection = function createCollection_2(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createCollection_1 = function createCollection_3(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_3(){ + return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); +} +; +_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_4(){ + return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); +} +; +_.get_1 = function get_8(key){ + return castTo(castTo($get(this, key), 21), 84); +} +; +_.get_4 = function get_9(key){ + return castTo(castTo($get(this, key), 21), 84); +} +; +_.removeAll = function removeAll_4(key){ + return castTo(castTo($removeAll(this, key), 21), 84); +} +; +_.removeAll_1 = function removeAll_5(key){ + return castTo(castTo($removeAll(this, key), 21), 84); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_2(collection){ + return instanceOf(collection, 271)?unmodifiableNavigableSet(castTo(collection, 271)):($clinit_Collections() , new Collections$UnmodifiableSortedSet(castTo(collection, 84))); +} +; +_.asMap_0 = function asMap_2(){ + var result; + return result = this.asMap , !result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result; +} +; +_.wrapCollection = function wrapCollection_2(key, collection){ + return instanceOf(collection, 271)?new AbstractMapBasedMultimap$WrappedNavigableSet(this, key, castTo(collection, 271)):new AbstractMapBasedMultimap$WrappedSortedSet(this, key, castTo(collection, 84)); +} +; +var Lcom_google_common_collect_AbstractSortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedSetMultimap', 1657); +function AbstractSortedKeySortedSetMultimap(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1658, 1657, $intern_5); +_.asMap_0 = function asMap_3(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); +} +; +_.keySet_0 = function keySet_7(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); +} +; +_.createKeySet = function createKeySet_5(){ + return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +var Lcom_google_common_collect_AbstractSortedKeySortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedKeySortedSetMultimap', 1658); +defineClass(2010, 1, {1947:1}); +_.equals_0 = function equals_14(obj){ + return equalsImpl_4(this, obj); +} +; +_.hashCode_1 = function hashCode_13(){ + var result; + return hashCode_47((result = this.cellSet , !result?(this.cellSet = new AbstractTable$CellSet(this)):result)); +} +; +_.toString_0 = function toString_12(){ + var map_0; + return $toString_0((map_0 = this.rowMap , !map_0?(this.rowMap = new ArrayTable$RowMap(this)):map_0)); +} +; +var Lcom_google_common_collect_AbstractTable_2_classLit = createForClass('com.google.common.collect', 'AbstractTable', 2010); +function AbstractTable$CellSet(this$0){ + this.this$01 = this$0; +} + +defineClass(665, $intern_9, $intern_10, AbstractTable$CellSet); +_.clear_0 = function clear_11(){ + $clear_1(); +} +; +_.contains = function contains_8(o){ + var cell, row; + if (instanceOf(o, 468)) { + cell = castTo(o, 682); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); + return !!row && safeContains(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); + } + return false; +} +; +_.iterator_0 = function iterator_7(){ + return $cellIterator(this.this$01); +} +; +_.remove_1 = function remove_19(o){ + var cell, row; + if (instanceOf(o, 468)) { + cell = castTo(o, 682); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); + return !!row && safeRemove(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); + } + return false; +} +; +_.size_1 = function size_10(){ + return $size_0(this.this$01); +} +; +_.spliterator_0 = function spliterator_13(){ + return $cellSpliterator(this.this$01); +} +; +var Lcom_google_common_collect_AbstractTable$CellSet_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/CellSet', 665); +function AbstractTable$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(1928, 28, $intern_8, AbstractTable$Values); +_.clear_0 = function clear_12(){ + $clear_1(); +} +; +_.contains = function contains_9(o){ + return $containsValue_0(this.this$01, o); +} +; +_.iterator_0 = function iterator_8(){ + return $valuesIterator(this.this$01); +} +; +_.size_1 = function size_11(){ + return $size_0(this.this$01); +} +; +_.spliterator_0 = function spliterator_14(){ + return $valuesSpliterator(this.this$01); +} +; +var Lcom_google_common_collect_AbstractTable$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/Values', 1928); +function ArrayListMultimapGwtSerializationDependencies(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(1632, 1631, $intern_5); +var Lcom_google_common_collect_ArrayListMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimapGwtSerializationDependencies', 1632); +function ArrayListMultimap(){ + ArrayListMultimap_0.call(this, 12, 3); +} + +function ArrayListMultimap_0(expectedKeys, expectedValuesPerKey){ + ArrayListMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(expectedKeys))); + checkNonnegative(expectedValuesPerKey, 'expectedValuesPerKey'); + this.expectedValuesPerKey = expectedValuesPerKey; +} + +defineClass(513, 1632, $intern_5, ArrayListMultimap, ArrayListMultimap_0); +_.createCollection = function createCollection_4(){ + return new ArrayList_0(this.expectedValuesPerKey); +} +; +_.expectedValuesPerKey = 0; +var Lcom_google_common_collect_ArrayListMultimap_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimap', 513); +function $at(this$static, rowIndex, columnIndex){ + checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); + checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); + return this$static.array[rowIndex][columnIndex]; +} + +function $cellIterator(this$static){ + return new ArrayTable$1(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); +} + +function $cellSpliterator(this$static){ + return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 273, new ArrayTable$1methodref$getCell$Type(this$static)); +} + +function $clear_1(){ + throw toJs(new UnsupportedOperationException); +} + +function $containsValue_0(this$static, value_0){ + var element, element$array, element$index, element$max, row, row$array, row$index, row$max; + for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + for (element$array = row , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + if (maskUndefined(value_0) === maskUndefined(element) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, element)) { + return true; + } + } + } + return false; +} + +function $eraseAll(this$static){ + var row, row$array, row$index, row$max; + for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + fill0_2(row, row.length, null); + } +} + +function $get_1(this$static, rowKey, columnKey){ + var columnIndex, rowIndex; + rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); + return !rowIndex || !columnIndex?null:$at(this$static, rowIndex.value_0, columnIndex.value_0); +} + +function $getValue(this$static, index_0){ + var columnIndex, rowIndex; + rowIndex = index_0 / this$static.columnList.delegateList_0().size_1() | 0; + columnIndex = index_0 % this$static.columnList.delegateList_0().size_1(); + return $at(this$static, rowIndex, columnIndex); +} + +function $put_0(this$static, rowKey, columnKey, value_0){ + var columnIndex, rowIndex; + checkNotNull(rowKey); + checkNotNull(columnKey); + rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); + checkArgument_2(!!rowIndex, 'Row %s not in %s', rowKey, this$static.rowList); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); + checkArgument_2(!!columnIndex, 'Column %s not in %s', columnKey, this$static.columnList); + return $set(this$static, rowIndex.value_0, columnIndex.value_0, value_0); +} + +function $rowMap(this$static){ + var map_0; + map_0 = this$static.rowMap; + return !map_0?(this$static.rowMap = new ArrayTable$RowMap(this$static)):map_0; +} + +function $set(this$static, rowIndex, columnIndex, value_0){ + var oldValue; + checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); + checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); + oldValue = this$static.array[rowIndex][columnIndex]; + setCheck(this$static.array[rowIndex], columnIndex, value_0); + return oldValue; +} + +function $size_0(this$static){ + return this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(); +} + +function $values_1(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractTable$Values(this$static)):result; +} + +function $valuesIterator(this$static){ + return new ArrayTable$3(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); +} + +function $valuesSpliterator(this$static){ + return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 16, new ArrayTable$2methodref$getValue$Type(this$static)); +} + +function ArrayTable(rowKeys, columnKeys){ + var tmpArray; + this.rowList = ($clinit_ImmutableList() , checkNotNull(rowKeys) , $clinit_ImmutableList() , copyFromCollection(rowKeys)); + this.columnList = (checkNotNull(columnKeys) , copyFromCollection(columnKeys)); + checkArgument(this.rowList.delegateList_0().isEmpty() == this.columnList.delegateList_0().isEmpty()); + this.rowKeyToIndex = indexMap(this.rowList); + this.columnKeyToIndex = indexMap(this.columnList); + tmpArray = initMultidimensionalArray(Ljava_lang_Object_2_classLit, [$intern_16, $intern_2], [5, 1], 5, [this.rowList.delegateList_0().size_1(), this.columnList.delegateList_0().size_1()], 2); + this.array = tmpArray; + $eraseAll(this); +} + +defineClass(664, 2010, {664:1, 1947:1, 3:1}, ArrayTable); +var Lcom_google_common_collect_ArrayTable_2_classLit = createForClass('com.google.common.collect', 'ArrayTable', 664); +function ArrayTable$1(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1924, 386, $intern_4, ArrayTable$1); +_.get_0 = function get_10(index_0){ + return new ArrayTable$2(this.this$01, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1', 1924); +function ArrayTable$1methodref$getCell$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1925, 1, {}, ArrayTable$1methodref$getCell$Type); +_.apply_2 = function apply_6(arg0){ + return new ArrayTable$2(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$1methodref$getCell$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1methodref$getCell$Type', 1925); +defineClass(2011, 1, {682:1}); +_.equals_0 = function equals_15(obj){ + var other; + if (obj === this) { + return true; + } + if (instanceOf(obj, 468)) { + other = castTo(obj, 682); + return equal($get_2(this.this$01.rowList, this.rowIndex), $get_2(other.this$01.rowList, other.rowIndex)) && equal($get_2(this.this$01.columnList, this.columnIndex), $get_2(other.this$01.columnList, other.columnIndex)) && equal($at(this.this$01, this.rowIndex, this.columnIndex), $at(other.this$01, other.rowIndex, other.columnIndex)); + } + return false; +} +; +_.hashCode_1 = function hashCode_14(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [$get_2(this.this$01.rowList, this.rowIndex), $get_2(this.this$01.columnList, this.columnIndex), $at(this.this$01, this.rowIndex, this.columnIndex)])); +} +; +_.toString_0 = function toString_13(){ + return '(' + $get_2(this.this$01.rowList, this.rowIndex) + ',' + $get_2(this.this$01.columnList, this.columnIndex) + ')=' + $at(this.this$01, this.rowIndex, this.columnIndex); +} +; +var Lcom_google_common_collect_Tables$AbstractCell_2_classLit = createForClass('com.google.common.collect', 'Tables/AbstractCell', 2011); +function ArrayTable$2(this$0, val$index){ + this.this$01 = this$0; + this.val$index2 = val$index; + this.rowIndex = this.val$index2 / this.this$01.columnList.delegateList_0().size_1() | 0; + this.columnIndex = this.val$index2 % this.this$01.columnList.delegateList_0().size_1(); +} + +defineClass(468, 2011, {468:1, 682:1}, ArrayTable$2); +_.columnIndex = 0; +_.rowIndex = 0; +_.val$index2 = 0; +var Lcom_google_common_collect_ArrayTable$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2', 468); +function ArrayTable$2methodref$getValue$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1927, 1, {}, ArrayTable$2methodref$getValue$Type); +_.apply_2 = function apply_7(arg0){ + return $getValue(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$2methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2methodref$getValue$Type', 1927); +function ArrayTable$3(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1926, 386, $intern_4, ArrayTable$3); +_.get_0 = function get_11(index_0){ + return $getValue(this.this$01, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$3_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/3', 1926); +function $forEachEntry_0(this$static, action){ + this$static.entryIterator().forEachRemaining(action); +} + +defineClass(1979, 1967, $intern_7); +_.clear_0 = function clear_13(){ + clear_20(this.entryIterator()); +} +; +_.entrySet_0 = function entrySet_0(){ + return new Maps$IteratorBasedAbstractMap$1(this); +} +; +_.entrySpliterator = function entrySpliterator_1(){ + return new Spliterators$IteratorSpliterator_1(this.entryIterator(), this.size_1()); +} +; +var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap', 1979); +function $getEntry(this$static, index_0){ + checkElementIndex(index_0, this$static.keyIndex.delegate.map_0.size_1()); + return new ArrayTable$ArrayMap$1(this$static, index_0); +} + +function $getKey(this$static, index_0){ + return $asList($keySet_0(this$static.keyIndex)).get_0(index_0); +} + +function ArrayTable$ArrayMap(keyIndex){ + this.keyIndex = keyIndex; +} + +defineClass(828, 1979, $intern_7); +_.clear_0 = function clear_14(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_2(key){ + return $containsKey_0(this.keyIndex, key); +} +; +_.entryIterator = function entryIterator_1(){ + return new ArrayTable$ArrayMap$2(this, this.keyIndex.delegate.map_0.size_1()); +} +; +_.entrySpliterator = function entrySpliterator_2(){ + return indexed(this.keyIndex.delegate.map_0.size_1(), 16, new ArrayTable$ArrayMap$0methodref$getEntry$Type(this)); +} +; +_.get_3 = function get_12(key){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 19); + return !index_0?null:this.getValue_0(index_0.value_0); +} +; +_.isEmpty = function isEmpty_5(){ + return this.keyIndex.delegate.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_8(){ + return $keySet_0(this.keyIndex); +} +; +_.put = function put_0(key, value_0){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 19); + if (!index_0) { + throw toJs(new IllegalArgumentException_0(this.getKeyRole() + ' ' + key + ' not in ' + $keySet_0(this.keyIndex))); + } + return this.setValue_0(index_0.value_0, value_0); +} +; +_.remove_0 = function remove_20(key){ + throw toJs(new UnsupportedOperationException); +} +; +_.size_1 = function size_12(){ + return this.keyIndex.delegate.map_0.size_1(); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap', 828); +function ArrayTable$ArrayMap$0methodref$getEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1923, 1, {}, ArrayTable$ArrayMap$0methodref$getEntry$Type); +_.apply_2 = function apply_8(arg0){ + return $getEntry(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap$0methodref$getEntry$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/0methodref$getEntry$Type', 1923); +function ArrayTable$ArrayMap$1(this$1, val$index){ + this.this$11 = this$1; + this.val$index2 = val$index; +} + +defineClass(1921, 345, $intern_15, ArrayTable$ArrayMap$1); +_.getKey = function getKey(){ + return $getKey(this.this$11, this.val$index2); +} +; +_.getValue = function getValue(){ + return this.this$11.getValue_0(this.val$index2); +} +; +_.setValue = function setValue_0(value_0){ + return this.this$11.setValue_0(this.val$index2, value_0); +} +; +_.val$index2 = 0; +var Lcom_google_common_collect_ArrayTable$ArrayMap$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/1', 1921); +function ArrayTable$ArrayMap$2(this$1, $anonymous0){ + this.this$11 = this$1; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1922, 386, $intern_4, ArrayTable$ArrayMap$2); +_.get_0 = function get_13(index_0){ + return $getEntry(this.this$11, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/2', 1922); +function ArrayTable$Row(this$0, rowIndex){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.columnKeyToIndex); + this.rowIndex = rowIndex; +} + +defineClass(1920, 828, $intern_7, ArrayTable$Row); +_.getKeyRole = function getKeyRole(){ + return 'Column'; +} +; +_.getValue_0 = function getValue_0(index_0){ + return $at(this.this$01, this.rowIndex, index_0); +} +; +_.setValue_0 = function setValue_1(index_0, newValue){ + return $set(this.this$01, this.rowIndex, index_0, newValue); +} +; +_.rowIndex = 0; +var Lcom_google_common_collect_ArrayTable$Row_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/Row', 1920); +function $put_1(){ + throw toJs(new UnsupportedOperationException); +} + +function $setValue(){ + throw toJs(new UnsupportedOperationException); +} + +function ArrayTable$RowMap(this$0){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.rowKeyToIndex); +} + +defineClass(829, 828, $intern_7, ArrayTable$RowMap); +_.getValue_0 = function getValue_1(index_0){ + return new ArrayTable$Row(this.this$01, index_0); +} +; +_.put = function put_1(key, value_0){ + return castTo(value_0, 83) , $put_1(); +} +; +_.setValue_0 = function setValue_2(index_0, newValue){ + return castTo(newValue, 83) , $setValue(); +} +; +_.getKeyRole = function getKeyRole_0(){ + return 'Row'; +} +; +var Lcom_google_common_collect_ArrayTable$RowMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/RowMap', 829); +function checkEntryNotNull(key, value_0){ + if (key == null) { + throw toJs(new NullPointerException_0('null key in entry: null=' + value_0)); + } + else if (value_0 == null) { + throw toJs(new NullPointerException_0('null value in entry: ' + key + '=null')); + } +} + +function checkNonnegative(value_0, name_0){ + if (value_0 < 0) { + throw toJs(new IllegalArgumentException_0(name_0 + ' cannot be negative but was: ' + value_0)); + } + return value_0; +} + +function flatMap(fromSpliterator, function_0, topCharacteristics, topSize){ + checkArgument_0((topCharacteristics & $intern_17) == 0, 'flatMap does not support SUBSIZED characteristic'); + checkArgument_0((topCharacteristics & 4) == 0, 'flatMap does not support SORTED characteristic'); + checkNotNull(fromSpliterator); + checkNotNull(function_0); + return new CollectSpliterators$1FlatMapSpliterator(fromSpliterator, topCharacteristics, topSize, function_0); +} + +function indexed(size_0, extraCharacteristics, function_0){ + return new CollectSpliterators$1WithCharacteristics(range_0(size_0).spliterator_1(), function_0, extraCharacteristics); +} + +function map_2(fromSpliterator, function_0){ + checkNotNull(fromSpliterator); + checkNotNull(function_0); + return new CollectSpliterators$1(fromSpliterator, function_0); +} + +function $forEachRemaining_0(this$static, consumer){ + while (this$static.tryAdvance(consumer)) + ; +} + +function CollectSpliterators$1(val$fromSpliterator, val$function){ + this.val$fromSpliterator1 = val$fromSpliterator; + this.val$function2 = val$function; +} + +defineClass(1120, 1, $intern_18, CollectSpliterators$1); +_.characteristics_0 = function characteristics_0(){ + return this.val$fromSpliterator1.characteristics_0() & -262; +} +; +_.estimateSize_0 = function estimateSize(){ + return this.val$fromSpliterator1.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_4(action){ + this.val$fromSpliterator1.forEachRemaining(new CollectSpliterators$1$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance(action){ + return this.val$fromSpliterator1.tryAdvance(new CollectSpliterators$1$lambda$0$Type(action, this.val$function2)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1', 1120); +function CollectSpliterators$1$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1121, 1, $intern_19, CollectSpliterators$1$lambda$0$Type); +_.accept = function accept_0(arg0){ + this.action_0.accept(this.function_1.apply_0(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$0$Type', 1121); +function CollectSpliterators$1$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1122, 1, $intern_19, CollectSpliterators$1$lambda$1$Type); +_.accept = function accept_1(arg0){ + this.action_0.accept(this.function_1.apply_0(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$1$Type', 1122); +function $lambda$0(this$static, function_1, fromElement_1){ + return this$static.prefix = castTo(function_1.apply_0(fromElement_1), 164); +} + +function CollectSpliterators$1FlatMapSpliterator(from, characteristics, estimatedSize, val$function){ + this.val$function6 = val$function; + this.prefix = null; + this.from = from; + this.characteristics = characteristics; + this.estimatedSize = estimatedSize; +} + +function lambda$1_0(function_0, action_1, fromElement_2){ + castTo(function_0.apply_0(fromElement_2), 164).forEachRemaining(action_1); +} + +defineClass(1123, 1, $intern_18, CollectSpliterators$1FlatMapSpliterator); +_.characteristics_0 = function characteristics_1(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_0(){ + !!this.prefix && (this.estimatedSize = max_1(this.estimatedSize, this.prefix.estimateSize_0())); + return max_1(this.estimatedSize, 0); +} +; +_.forEachRemaining = function forEachRemaining_5(action){ + if (this.prefix) { + this.prefix.forEachRemaining(action); + this.prefix = null; + } + this.from.forEachRemaining(new CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(this.val$function6, action)); + this.estimatedSize = 0; +} +; +_.tryAdvance = function tryAdvance_0(action){ + while (true) { + if (!!this.prefix && this.prefix.tryAdvance(action)) { + neq(this.estimatedSize, $intern_20) && (this.estimatedSize = sub_2(this.estimatedSize, 1)); + return true; + } + else { + this.prefix = null; + } + if (!this.from.tryAdvance(new CollectSpliterators$1FlatMapSpliterator$lambda$0$Type(this, this.val$function6))) { + return false; + } + } +} +; +_.characteristics = 0; +_.estimatedSize = 0; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator', 1123); +function CollectSpliterators$1FlatMapSpliterator$lambda$0$Type($$outer_0, function_1){ + this.$$outer_0 = $$outer_0; + this.function_1 = function_1; +} + +defineClass(1124, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$0$Type); +_.accept = function accept_2(arg0){ + $lambda$0(this.$$outer_0, this.function_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type', 1124); +function CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(function_0, action_1){ + this.function_0 = function_0; + this.action_1 = action_1; +} + +defineClass(1125, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$1$Type); +_.accept = function accept_3(arg0){ + lambda$1_0(this.function_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type', 1125); +function CollectSpliterators$1WithCharacteristics(delegate, val$function, val$extraCharacteristics){ + this.val$function2 = val$function; + this.val$extraCharacteristics3 = val$extraCharacteristics; + this.delegate = delegate; +} + +defineClass(1117, 1, $intern_18, CollectSpliterators$1WithCharacteristics); +_.characteristics_0 = function characteristics_2(){ + return 16464 | this.val$extraCharacteristics3; +} +; +_.estimateSize_0 = function estimateSize_1(){ + return this.delegate.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_6(action){ + this.delegate.forEachRemaining_0(new CollectSpliterators$1WithCharacteristics$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance_1(action){ + return this.delegate.tryAdvance_0(new CollectSpliterators$1WithCharacteristics$lambda$0$Type(action, this.val$function2)); +} +; +_.val$extraCharacteristics3 = 0; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics', 1117); +function CollectSpliterators$1WithCharacteristics$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1118, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$0$Type); +_.accept_0 = function accept_4(arg0){ + this.action_0.accept(this.function_1.apply_2(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$0$Type', 1118); +function CollectSpliterators$1WithCharacteristics$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1119, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$1$Type); +_.accept_0 = function accept_5(arg0){ + this.action_0.accept(this.function_1.apply_2(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$1$Type', 1119); +function safeContains(collection, object){ + checkNotNull(collection); + try { + return collection.contains(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function safeRemove(collection, object){ + checkNotNull(collection); + try { + return collection.remove_1(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function $equals_1(this$static, obj){ + var compareResult, that; + if (instanceOf(obj, 245)) { + that = castTo(obj, 245); + try { + compareResult = this$static.compareTo(that); + return compareResult == 0; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 205)) + throw toJs($e0); + } + } + return false; +} + +function Cut(endpoint){ + this.endpoint = endpoint; +} + +defineClass(245, 1, $intern_22); +_.compareTo_0 = function compareTo_0(that){ + return this.compareTo(castTo(that, 245)); +} +; +_.compareTo = function compareTo(that){ + var result; + if (that == ($clinit_Cut$BelowAll() , INSTANCE_1)) { + return 1; + } + if (that == ($clinit_Cut$AboveAll() , INSTANCE_0)) { + return -1; + } + result = ($clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, that.endpoint)); + if (result != 0) { + return result; + } + return instanceOf(this, 519) == instanceOf(that, 519)?0:instanceOf(this, 519)?1:-1; +} +; +_.endpoint_0 = function endpoint_0(){ + return this.endpoint; +} +; +_.equals_0 = function equals_16(obj){ + return $equals_1(this, obj); +} +; +var Lcom_google_common_collect_Cut_2_classLit = createForClass('com.google.common.collect', 'Cut', 245); +function $clinit_Cut$AboveAll(){ + $clinit_Cut$AboveAll = emptyMethod; + INSTANCE_0 = new Cut$AboveAll; +} + +function Cut$AboveAll(){ + Cut.call(this, null); +} + +defineClass(1761, 245, $intern_22, Cut$AboveAll); +_.compareTo = function compareTo_1(o){ + return o == this?0:1; +} +; +_.describeAsLowerBound = function describeAsLowerBound(sb){ + throw toJs(new AssertionError); +} +; +_.describeAsUpperBound = function describeAsUpperBound(sb){ + sb.string += '+\u221E)'; +} +; +_.endpoint_0 = function endpoint_1(){ + throw toJs(new IllegalStateException_0('range unbounded on this side')); +} +; +_.hashCode_1 = function hashCode_15(){ + return $clinit_System() , getIdentityHashCode(this); +} +; +_.isLessThan = function isLessThan(value_0){ + return false; +} +; +_.toString_0 = function toString_14(){ + return '+\u221E'; +} +; +var INSTANCE_0; +var Lcom_google_common_collect_Cut$AboveAll_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveAll', 1761); +function Cut$AboveValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 35)); +} + +defineClass(519, 245, {245:1, 519:1, 3:1, 35:1}, Cut$AboveValue); +_.describeAsLowerBound = function describeAsLowerBound_0(sb){ + $append_10((sb.string += '(' , sb), this.endpoint); +} +; +_.describeAsUpperBound = function describeAsUpperBound_0(sb){ + $append_5($append_10(sb, this.endpoint), 93); +} +; +_.hashCode_1 = function hashCode_16(){ + return ~hashCode__I__devirtual$(this.endpoint); +} +; +_.isLessThan = function isLessThan_0(value_0){ + return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) < 0; +} +; +_.toString_0 = function toString_15(){ + return '/' + this.endpoint + '\\'; +} +; +var Lcom_google_common_collect_Cut$AboveValue_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveValue', 519); +function $clinit_Cut$BelowAll(){ + $clinit_Cut$BelowAll = emptyMethod; + INSTANCE_1 = new Cut$BelowAll; +} + +function Cut$BelowAll(){ + Cut.call(this, null); +} + +defineClass(1760, 245, $intern_22, Cut$BelowAll); +_.compareTo = function compareTo_2(o){ + return o == this?0:-1; +} +; +_.describeAsLowerBound = function describeAsLowerBound_1(sb){ + sb.string += '(-\u221E'; +} +; +_.describeAsUpperBound = function describeAsUpperBound_1(sb){ + throw toJs(new AssertionError); +} +; +_.endpoint_0 = function endpoint_2(){ + throw toJs(new IllegalStateException_0('range unbounded on this side')); +} +; +_.hashCode_1 = function hashCode_17(){ + return $clinit_System() , getIdentityHashCode(this); +} +; +_.isLessThan = function isLessThan_1(value_0){ + return true; +} +; +_.toString_0 = function toString_16(){ + return '-\u221E'; +} +; +var INSTANCE_1; +var Lcom_google_common_collect_Cut$BelowAll_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowAll', 1760); +function Cut$BelowValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 35)); +} + +defineClass(1762, 245, $intern_22, Cut$BelowValue); +_.describeAsLowerBound = function describeAsLowerBound_2(sb){ + $append_10((sb.string += '[' , sb), this.endpoint); +} +; +_.describeAsUpperBound = function describeAsUpperBound_2(sb){ + $append_5($append_10(sb, this.endpoint), 41); +} +; +_.hashCode_1 = function hashCode_18(){ + return hashCode__I__devirtual$(this.endpoint); +} +; +_.isLessThan = function isLessThan_2(value_0){ + return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) <= 0; +} +; +_.toString_0 = function toString_17(){ + return '\\' + this.endpoint + '/'; +} +; +var Lcom_google_common_collect_Cut$BelowValue_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowValue', 1762); +function FluentIterable(){ + $clinit_Absent(); +} + +function concatNoDefensiveCopy(inputs){ + var input_0, input$array, input$index, input$max; + for (input$array = inputs , input$index = 0 , input$max = input$array.length; input$index < input$max; ++input$index) { + input_0 = input$array[input$index]; + checkNotNull(input_0); + } + return new FluentIterable$3(inputs); +} + +defineClass(537, 1, $intern_23); +_.forEach_0 = function forEach_3(action){ + $forEach_0(this, action); +} +; +_.toString_0 = function toString_18(){ + return toString_25(castTo(checkNotNull_0(this, 'use Optional.orNull() instead of Optional.or(null)'), 20).iterator_0()); +} +; +var Lcom_google_common_collect_FluentIterable_2_classLit = createForClass('com.google.common.collect', 'FluentIterable', 537); +function FluentIterable$2(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(433, 537, $intern_23, FluentIterable$2); +_.iterator_0 = function iterator_9(){ + return new Iterators$ConcatenatedIterator(transform_2(this.val$inputs1.iterator_0(), new Iterables$10)); +} +; +var Lcom_google_common_collect_FluentIterable$2_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/2', 433); +function $iterator(this$static){ + return new Iterators$ConcatenatedIterator(new FluentIterable$3$1(this$static.val$inputs1.length, this$static.val$inputs1)); +} + +function FluentIterable$3(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(1046, 537, $intern_23, FluentIterable$3); +_.iterator_0 = function iterator_10(){ + return $iterator(this); +} +; +var Lcom_google_common_collect_FluentIterable$3_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3', 1046); +function FluentIterable$3$1($anonymous0, val$inputs){ + this.val$inputs3 = val$inputs; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(708, 386, $intern_4, FluentIterable$3$1); +_.get_0 = function get_14(i){ + return this.val$inputs3[i].iterator_0(); +} +; +var Lcom_google_common_collect_FluentIterable$3$1_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3/1', 708); +defineClass(1972, 1, {}); +_.toString_0 = function toString_19(){ + return toString_40(this.delegate_0().coll); +} +; +var Lcom_google_common_collect_ForwardingObject_2_classLit = createForClass('com.google.common.collect', 'ForwardingObject', 1972); +defineClass(1973, 1972, $intern_24); +_.delegate_0 = function delegate_0(){ + return this.delegate_1(); +} +; +_.forEach_0 = function forEach_4(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_0(){ + return this.stream(); +} +; +_.spliterator_0 = function spliterator_15(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_1(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_7(element){ + return this.delegate_1() , $add_4(); +} +; +_.addAll = function addAll_3(collection){ + return this.delegate_1() , $addAll_3(); +} +; +_.clear_0 = function clear_15(){ + this.delegate_1() , $clear_5(); +} +; +_.contains = function contains_10(object){ + return this.delegate_1().contains(object); +} +; +_.containsAll = function containsAll_2(collection){ + return this.delegate_1().containsAll(collection); +} +; +_.isEmpty = function isEmpty_6(){ + return this.delegate_1().coll.isEmpty(); +} +; +_.iterator_0 = function iterator_11(){ + return this.delegate_1().iterator_0(); +} +; +_.remove_1 = function remove_21(object){ + return this.delegate_1() , $remove_14(); +} +; +_.size_1 = function size_13(){ + return this.delegate_1().coll.size_1(); +} +; +_.toArray = function toArray_1(){ + return this.delegate_1().toArray(); +} +; +_.toArray_0 = function toArray_2(array){ + return this.delegate_1().toArray_0(array); +} +; +var Lcom_google_common_collect_ForwardingCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingCollection', 1973); +function $clinit_ImmutableCollection(){ + $clinit_ImmutableCollection = emptyMethod; + new ForwardingImmutableCollection(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +function $asList(this$static){ + var list; + list = this$static.asList; + return !list?(this$static.asList = this$static.createAsList()):list; +} + +defineClass(1980, 28, $intern_25); +_.iterator_0 = function iterator_12(){ + return this.iterator_1(); +} +; +_.add_2 = function add_8(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_4(newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_16(){ + throw toJs(new UnsupportedOperationException); +} +; +_.contains = function contains_11(object){ + return object != null && $advanceToFind(this, object, false); +} +; +_.createAsList = function createAsList(){ + switch (this.size_1()) { + case 0: + return $clinit_ImmutableList() , $clinit_ImmutableList() , EMPTY; + case 1: + return $clinit_ImmutableList() , new SingletonImmutableList(checkNotNull(this.iterator_1().next_1())); + default:return new RegularImmutableAsList_0(this, this.toArray()); + } +} +; +_.remove_1 = function remove_22(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_ImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection', 1980); +function ForwardingImmutableCollection(delegate){ + $clinit_ImmutableCollection(); + this.delegate = delegate; +} + +defineClass(712, 1980, $intern_25, ForwardingImmutableCollection); +_.iterator_0 = function iterator_14(){ + return unmodifiableIterator(this.delegate.iterator_0()); +} +; +_.contains = function contains_12(object){ + return object != null && this.delegate.contains(object); +} +; +_.containsAll = function containsAll_3(targets){ + return this.delegate.containsAll(targets); +} +; +_.isEmpty = function isEmpty_7(){ + return this.delegate.isEmpty(); +} +; +_.iterator_1 = function iterator_13(){ + return unmodifiableIterator(this.delegate.iterator_0()); +} +; +_.size_1 = function size_14(){ + return this.delegate.size_1(); +} +; +_.toArray = function toArray_3(){ + return this.delegate.toArray(); +} +; +_.toArray_0 = function toArray_4(other){ + return this.delegate.toArray_0(other); +} +; +_.toString_0 = function toString_20(){ + return toString_40(this.delegate); +} +; +var Lcom_google_common_collect_ForwardingImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableCollection', 712); +function $clinit_ImmutableList(){ + $clinit_ImmutableList = emptyMethod; + $clinit_ImmutableCollection(); + EMPTY = new RegularImmutableList(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +function $listIterator(this$static, index_0){ + return new ImmutableList$1(this$static, this$static.size_1(), index_0); +} + +function $reverse(this$static){ + var list; + list = (checkNotNull(this$static) , this$static?new ArrayList_1(this$static):newArrayList_0(this$static.iterator_0())); + reverse_2(list); + return unsafeDelegateList(list); +} + +function copyFromCollection(collection){ + $clinit_ImmutableList(); + var elements; + elements = collection.toArray(); + switch (elements.length) { + case 0: + return EMPTY; + case 1: + return new SingletonImmutableList(checkNotNull(elements[0])); + default:return new RegularImmutableList(nullCheckedList(elements)); + } +} + +function nullCheckedList(array){ + var castedArray, i, len; + for (i = 0 , len = array.length; i < len; i++) { + if (array[i] == null) { + throw toJs(new NullPointerException_0('at index ' + i)); + } + } + castedArray = array; + return new Arrays$ArrayList(castedArray); +} + +function unsafeDelegateList(list){ + var castedList; + switch (list.size_1()) { + case 0: + return EMPTY; + case 1: + return new SingletonImmutableList(checkNotNull(list.get_0(0))); + default:castedList = list; + return new RegularImmutableList(castedList); + } +} + +defineClass(152, 1980, $intern_26); +_.iterator_0 = function iterator_16(){ + return this.iterator_1(); +} +; +_.listIterator_0 = function listIterator_1(){ + return this.listIterator_2(0); +} +; +_.listIterator_1 = function listIterator_3(index_0){ + return this.listIterator_2(index_0); +} +; +_.sort_0 = function sort_1(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_16(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.subList = function subList_2(fromIndex, toIndex){ + return this.subList_0(fromIndex, toIndex); +} +; +_.add_3 = function add_9(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_5(index_0, newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.equals_0 = function equals_17(obj){ + return equalsImpl(this, obj); +} +; +_.hashCode_1 = function hashCode_19(){ + return hashCodeImpl(this); +} +; +_.indexOf_0 = function indexOf_0(object){ + return object == null?-1:indexOfRandomAccess(this, object); +} +; +_.iterator_1 = function iterator_15(){ + return this.listIterator_2(0); +} +; +_.listIterator_2 = function listIterator_2(index_0){ + return $listIterator(this, index_0); +} +; +_.remove_2 = function remove_23(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_4(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.subList_0 = function subList_1(fromIndex, toIndex){ + var wrapper; + return unsafeDelegateList((wrapper = new Lists$1(this) , new AbstractList$SubList(wrapper, fromIndex, toIndex))); +} +; +var EMPTY; +var Lcom_google_common_collect_ImmutableList_2_classLit = createForClass('com.google.common.collect', 'ImmutableList', 152); +function $get_2(this$static, index_0){ + return this$static.delegateList_0().get_0(index_0); +} + +defineClass(2006, 152, $intern_26); +_.iterator_0 = function iterator_18(){ + return unmodifiableIterator(this.delegateList_0().iterator_0()); +} +; +_.subList = function subList_4(fromIndex, toIndex){ + return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); +} +; +_.contains = function contains_13(object){ + return object != null && this.delegateList_0().contains(object); +} +; +_.containsAll = function containsAll_4(targets){ + return this.delegateList_0().containsAll(targets); +} +; +_.equals_0 = function equals_18(obj){ + return equals_Ljava_lang_Object__Z__devirtual$(this.delegateList_0(), obj); +} +; +_.get_0 = function get_15(index_0){ + return $get_2(this, index_0); +} +; +_.hashCode_1 = function hashCode_20(){ + return hashCode__I__devirtual$(this.delegateList_0()); +} +; +_.indexOf_0 = function indexOf_1(object){ + return this.delegateList_0().indexOf_0(object); +} +; +_.isEmpty = function isEmpty_8(){ + return this.delegateList_0().isEmpty(); +} +; +_.iterator_1 = function iterator_17(){ + return unmodifiableIterator(this.delegateList_0().iterator_0()); +} +; +_.size_1 = function size_15(){ + return this.delegateList_0().size_1(); +} +; +_.subList_0 = function subList_3(fromIndex, toIndex){ + return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); +} +; +_.toArray = function toArray_5(){ + return this.delegateList_0().toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.delegateList_0().size_1(), 5, 1)); +} +; +_.toArray_0 = function toArray_6(other){ + return this.delegateList_0().toArray_0(other); +} +; +_.toString_0 = function toString_21(){ + return toString_40(this.delegateList_0()); +} +; +var Lcom_google_common_collect_ForwardingImmutableList_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableList', 2006); +function $clinit_ImmutableMap(){ + $clinit_ImmutableMap = emptyMethod; + EMPTY_0 = new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [])); +} + +function $entrySet_1(this$static){ + if (this$static.cachedEntrySet) { + return this$static.cachedEntrySet; + } + return this$static.cachedEntrySet = this$static.createEntrySet_1(); +} + +function $keySet_0(this$static){ + if (this$static.cachedKeySet) { + return this$static.cachedKeySet; + } + return this$static.cachedKeySet = this$static.createKeySet_1(); +} + +function $put_2(){ + throw toJs(new UnsupportedOperationException); +} + +function fromEntryList(entries){ + $clinit_ImmutableMap(); + var entry, entryArray, size_0; + size_0 = entries.array.length; + switch (size_0) { + case 0: + return EMPTY_0; + case 1: + entry = castTo(getOnlyElement(new ArrayList$1(entries)), 42); + return of(entry.getKey(), entry.getValue()); + default:entryArray = castTo($toArray_2(entries, initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, entries.array.length, 0, 1)), 165); + return new RegularImmutableMap(entryArray); + } +} + +function of(k1, v1){ + return $clinit_ImmutableMap() , checkEntryNotNull(k1, v1) , new SingletonImmutableBiMap(k1, v1); +} + +function of_0(k1, v1, k2, v2){ + $clinit_ImmutableMap(); + return new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [(checkEntryNotNull(k1, v1) , new ImmutableEntry(k1, v1)), (checkEntryNotNull(k2, v2) , new ImmutableEntry(k2, v2))])); +} + +defineClass(714, 1, $intern_28); +_.entrySet_0 = function entrySet_1(){ + return $entrySet_1(this); +} +; +_.forEach = function forEach_5(consumer){ + $forEach_2(this, consumer); +} +; +_.keySet_0 = function keySet_9(){ + return $keySet_0(this); +} +; +_.merge = function merge_0(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.values_0 = function values_4(){ + return this.values_2(); +} +; +_.clear_0 = function clear_17(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_3(key){ + return this.get_3(key) != null; +} +; +_.containsValue = function containsValue_0(value_0){ + return this.values_2().contains(value_0); +} +; +_.createKeySet_1 = function createKeySet_6(){ + return new ImmutableMapKeySet(this); +} +; +_.createValues = function createValues(){ + return new ImmutableMapValues(this); +} +; +_.equals_0 = function equals_19(object){ + return equalsImpl_0(this, object); +} +; +_.hashCode_1 = function hashCode_21(){ + return $entrySet_1(this).hashCode_1(); +} +; +_.isEmpty = function isEmpty_9(){ + return this.size_1() == 0; +} +; +_.put = function put_2(k, v){ + return $put_2(); +} +; +_.remove_0 = function remove_24(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_22(){ + return toStringImpl(this); +} +; +_.values_2 = function values_3(){ + if (this.cachedValues) { + return this.cachedValues; + } + return this.cachedValues = this.createValues(); +} +; +_.cachedEntrySet = null; +_.cachedKeySet = null; +_.cachedValues = null; +var EMPTY_0; +var Lcom_google_common_collect_ImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap', 714); +function $containsKey_0(this$static, key){ + return safeContainsKey(this$static.delegate, key); +} + +function $get_3(this$static, key){ + return key == null?null:safeGet(this$static.delegate, key); +} + +function ForwardingImmutableMap(entries){ + var delegate, entry, entry$array, entry$index, entry$max, key, previous; + delegate = new LinkedHashMap; + for (entry$array = entries , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { + entry = entry$array[entry$index]; + key = checkNotNull(entry.getKey()); + previous = $put_11(delegate, key, checkNotNull(entry.getValue())); + if (previous != null) { + throw toJs(new IllegalArgumentException_0('duplicate key: ' + key)); + } + } + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(715, 714, $intern_28); +_.containsKey = function containsKey_4(key){ + return $containsKey_0(this, key); +} +; +_.containsValue = function containsValue_1(value_0){ + return $containsValue_3(this.delegate, value_0); +} +; +_.createEntrySet_1 = function createEntrySet_0(){ + return unsafeDelegate(new ForwardingImmutableMap$1(this)); +} +; +_.createKeySet_1 = function createKeySet_7(){ + return unsafeDelegate($keySet_1(this.delegate)); +} +; +_.createValues = function createValues_0(){ + return $clinit_ImmutableCollection() , new ForwardingImmutableCollection($values_2(this.delegate)); +} +; +_.equals_0 = function equals_20(object){ + return $equals_7(this.delegate, object); +} +; +_.get_3 = function get_16(key){ + return $get_3(this, key); +} +; +_.hashCode_1 = function hashCode_22(){ + return hashCode__I__devirtual$(this.delegate.map_0); +} +; +_.isEmpty = function isEmpty_10(){ + return this.delegate.map_0.isEmpty(); +} +; +_.size_1 = function size_16(){ + return this.delegate.map_0.size_1(); +} +; +_.toString_0 = function toString_23(){ + return toString_40(this.delegate.map_0); +} +; +var Lcom_google_common_collect_ForwardingImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap', 715); +defineClass(1974, 1973, $intern_29); +_.delegate_0 = function delegate_1(){ + return this.delegate_2(); +} +; +_.delegate_1 = function delegate_2(){ + return this.delegate_2(); +} +; +_.spliterator_0 = function spliterator_17(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_21(object){ + return object === this || this.delegate_2().equals_0(object); +} +; +_.hashCode_1 = function hashCode_23(){ + return this.delegate_2().hashCode_1(); +} +; +var Lcom_google_common_collect_ForwardingSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSet', 1974); +function ForwardingImmutableMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1069, 1974, $intern_29, ForwardingImmutableMap$1); +_.delegate_0 = function delegate_3(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.delegate_1 = function delegate_4(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.contains = function contains_14(object){ + if (instanceOf(object, 42) && castTo(object, 42).getKey() == null) { + return false; + } + try { + return $contains_3($entrySet_2(this.this$01.delegate), object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205)) { + return false; + } + else + throw toJs($e0); + } +} +; +_.delegate_2 = function delegate_5(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.toArray_0 = function toArray_7(array){ + var result; + result = $toArray_5($entrySet_2(this.this$01.delegate), array); + $entrySet_2(this.this$01.delegate).coll.size_1() < result.length && setCheck(result, $entrySet_2(this.this$01.delegate).coll.size_1(), null); + return result; +} +; +var Lcom_google_common_collect_ForwardingImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap/1', 1069); +function unsafeDelegate(delegate){ + $clinit_ImmutableCollection(); + switch (delegate.size_1()) { + case 0: + return $clinit_RegularImmutableSet() , EMPTY_2; + case 1: + return new SingletonImmutableSet(delegate.iterator_0().next_1()); + default:return new RegularImmutableSet(delegate); + } +} + +defineClass(1981, 1980, $intern_30); +_.iterator_0 = function iterator_19(){ + return this.iterator_1(); +} +; +_.spliterator_0 = function spliterator_18(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_22(obj){ + return equalsImpl_3(this, obj); +} +; +_.hashCode_1 = function hashCode_24(){ + return hashCodeImpl_0(this); +} +; +var Lcom_google_common_collect_ImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableSet', 1981); +function ForwardingImmutableSet(delegate){ + $clinit_ImmutableCollection(); + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableSet(delegate)); +} + +defineClass(703, 1981, $intern_30); +_.iterator_0 = function iterator_21(){ + return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); +} +; +_.contains = function contains_15(object){ + return object != null && $contains_2(this.delegate, object); +} +; +_.containsAll = function containsAll_5(targets){ + return $containsAll_0(this.delegate, targets); +} +; +_.hashCode_1 = function hashCode_25(){ + return hashCode__I__devirtual$(this.delegate.coll); +} +; +_.isEmpty = function isEmpty_11(){ + return this.delegate.coll.isEmpty(); +} +; +_.iterator_1 = function iterator_20(){ + return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); +} +; +_.size_1 = function size_17(){ + return this.delegate.coll.size_1(); +} +; +_.toArray = function toArray_8(){ + return this.delegate.coll.toArray(); +} +; +_.toArray_0 = function toArray_9(other){ + return $toArray_4(this.delegate, other); +} +; +_.toString_0 = function toString_24(){ + return toString_40(this.delegate.coll); +} +; +var Lcom_google_common_collect_ForwardingImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableSet', 703); +defineClass(1975, 1974, $intern_31); +_.delegate_0 = function delegate_6(){ + return this.unmodifiableDelegate; +} +; +_.delegate_1 = function delegate_7(){ + return this.unmodifiableDelegate; +} +; +_.delegate_2 = function delegate_8(){ + return this.unmodifiableDelegate; +} +; +_.spliterator_0 = function spliterator_19(){ + return new SortedSet$1(this); +} +; +var Lcom_google_common_collect_ForwardingSortedSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSortedSet', 1975); +function $clear_2(this$static){ + this$static.size_0 = 0; + fill_2(this$static.hashTableKToV, null); + fill_2(this$static.hashTableVToK, null); + this$static.firstInKeyInsertionOrder = null; + this$static.lastInKeyInsertionOrder = null; + ++this$static.modCount; +} + +function $containsValue_1(this$static, value_0){ + return !!$seekByValue(this$static, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); +} + +function $delete(this$static, entry){ + var bucketEntry, bucketEntry0, keyBucket, prevBucketEntry, valueBucket; + keyBucket = entry.keyHash & this$static.mask; + prevBucketEntry = null; + for (bucketEntry0 = this$static.hashTableKToV[keyBucket]; true; bucketEntry0 = bucketEntry0.nextInKToVBucket) { + if (bucketEntry0 == entry) { + !prevBucketEntry?(this$static.hashTableKToV[keyBucket] = entry.nextInKToVBucket):(prevBucketEntry.nextInKToVBucket = entry.nextInKToVBucket); + break; + } + prevBucketEntry = bucketEntry0; + } + valueBucket = entry.valueHash & this$static.mask; + prevBucketEntry = null; + for (bucketEntry = this$static.hashTableVToK[valueBucket]; true; bucketEntry = bucketEntry.nextInVToKBucket) { + if (bucketEntry == entry) { + !prevBucketEntry?(this$static.hashTableVToK[valueBucket] = entry.nextInVToKBucket):(prevBucketEntry.nextInVToKBucket = entry.nextInVToKBucket); + break; + } + prevBucketEntry = bucketEntry; + } + !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry.nextInKeyInsertionOrder):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry.nextInKeyInsertionOrder); + !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry.prevInKeyInsertionOrder):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry.prevInKeyInsertionOrder); + --this$static.size_0; + ++this$static.modCount; +} + +function $forEach(this$static, action){ + var entry; + checkNotNull(action); + for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { + action.accept_1(entry.key, entry.value_0); + } +} + +function $get_4(this$static, key){ + return valueOrNull($seekByKey(this$static, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))))); +} + +function $insert(this$static, entry, oldEntryForKey){ + var keyBucket, valueBucket; + keyBucket = entry.keyHash & this$static.mask; + entry.nextInKToVBucket = this$static.hashTableKToV[keyBucket]; + this$static.hashTableKToV[keyBucket] = entry; + valueBucket = entry.valueHash & this$static.mask; + entry.nextInVToKBucket = this$static.hashTableVToK[valueBucket]; + this$static.hashTableVToK[valueBucket] = entry; + if (!oldEntryForKey) { + entry.prevInKeyInsertionOrder = this$static.lastInKeyInsertionOrder; + entry.nextInKeyInsertionOrder = null; + !this$static.lastInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(this$static.lastInKeyInsertionOrder.nextInKeyInsertionOrder = entry); + this$static.lastInKeyInsertionOrder = entry; + } + else { + entry.prevInKeyInsertionOrder = oldEntryForKey.prevInKeyInsertionOrder; + !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry); + entry.nextInKeyInsertionOrder = oldEntryForKey.nextInKeyInsertionOrder; + !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry); + } + ++this$static.size_0; + ++this$static.modCount; +} + +function $inverse(this$static){ + var result; + result = this$static.inverse; + return !result?(this$static.inverse = new HashBiMap$Inverse(this$static)):result; +} + +function $put_3(this$static, key, value_0){ + var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + oldEntryForKey = $seekByKey(this$static, key, keyHash); + if (!!oldEntryForKey && valueHash == oldEntryForKey.valueHash && equal(value_0, oldEntryForKey.value_0)) { + return value_0; + } + oldEntryForValue = $seekByValue(this$static, value_0, valueHash); + if (oldEntryForValue) { + throw toJs(new IllegalArgumentException_0('value already present: ' + value_0)); + } + newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); + if (oldEntryForKey) { + $delete(this$static, oldEntryForKey); + $insert(this$static, newEntry, oldEntryForKey); + oldEntryForKey.prevInKeyInsertionOrder = null; + oldEntryForKey.nextInKeyInsertionOrder = null; + return oldEntryForKey.value_0; + } + else { + $insert(this$static, newEntry, null); + $rehashIfNecessary(this$static); + return null; + } +} + +function $putInverse(this$static, value_0, key, force){ + var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + oldEntryForValue = $seekByValue(this$static, value_0, valueHash); + oldEntryForKey = $seekByKey(this$static, key, keyHash); + if (!!oldEntryForValue && keyHash == oldEntryForValue.keyHash && equal(key, oldEntryForValue.key)) { + return key; + } + else if (!!oldEntryForKey && !force) { + throw toJs(new IllegalArgumentException_0('key already present: ' + key)); + } + !!oldEntryForValue && $delete(this$static, oldEntryForValue); + !!oldEntryForKey && $delete(this$static, oldEntryForKey); + newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); + $insert(this$static, newEntry, oldEntryForKey); + if (oldEntryForKey) { + oldEntryForKey.prevInKeyInsertionOrder = null; + oldEntryForKey.nextInKeyInsertionOrder = null; + } + if (oldEntryForValue) { + oldEntryForValue.prevInKeyInsertionOrder = null; + oldEntryForValue.nextInKeyInsertionOrder = null; + } + $rehashIfNecessary(this$static); + return !oldEntryForValue?null:oldEntryForValue.key; +} + +function $rehashIfNecessary(this$static){ + var entry, newTableSize, oldKToV; + oldKToV = this$static.hashTableKToV; + if (needsResizing(this$static.size_0, oldKToV.length)) { + newTableSize = oldKToV.length * 2; + this$static.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); + this$static.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); + this$static.mask = newTableSize - 1; + this$static.size_0 = 0; + for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { + $insert(this$static, entry, entry); + } + ++this$static.modCount; + } +} + +function $seekByKey(this$static, key, keyHash){ + var entry; + for (entry = this$static.hashTableKToV[keyHash & this$static.mask]; entry; entry = entry.nextInKToVBucket) { + if (keyHash == entry.keyHash && equal(key, entry.key)) { + return entry; + } + } + return null; +} + +function $seekByValue(this$static, value_0, valueHash){ + var entry; + for (entry = this$static.hashTableVToK[valueHash & this$static.mask]; entry; entry = entry.nextInVToKBucket) { + if (valueHash == entry.valueHash && equal(value_0, entry.value_0)) { + return entry; + } + } + return null; +} + +function HashBiMap(){ + var tableSize; + checkNonnegative(16, 'expectedSize'); + tableSize = closedTableSize(16); + this.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); + this.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); + this.firstInKeyInsertionOrder = null; + this.lastInKeyInsertionOrder = null; + this.size_0 = 0; + this.mask = tableSize - 1; + this.modCount = 0; +} + +defineClass(533, 1979, $intern_28, HashBiMap); +_.putAll = function putAll_0(map_0){ + $putAll(this, map_0); +} +; +_.values_0 = function values_5(){ + var result; + return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); +} +; +_.clear_0 = function clear_18(){ + $clear_2(this); +} +; +_.containsKey = function containsKey_5(key){ + return !!$seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); +} +; +_.containsValue = function containsValue_2(value_0){ + return $containsValue_1(this, value_0); +} +; +_.entryIterator = function entryIterator_2(){ + return new HashBiMap$1(this, this); +} +; +_.forEach = function forEach_6(action){ + $forEach(this, action); +} +; +_.get_3 = function get_17(key){ + return $get_4(this, key); +} +; +_.keySet_0 = function keySet_10(){ + return new HashBiMap$KeySet(this); +} +; +_.put = function put_3(key, value_0){ + return $put_3(this, key, value_0); +} +; +_.remove_0 = function remove_25(key){ + var entry; + entry = $seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); + if (!entry) { + return null; + } + else { + $delete(this, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return entry.value_0; + } +} +; +_.size_1 = function size_18(){ + return this.size_0; +} +; +_.values_1 = function values_6(){ + var result; + return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); +} +; +_.mask = 0; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_HashBiMap_2_classLit = createForClass('com.google.common.collect', 'HashBiMap', 533); +function $hasNext_0(this$static){ + if (this$static.this$01.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + return !!this$static.next_0 && this$static.remaining > 0; +} + +function HashBiMap$Itr(this$0){ + this.this$01 = this$0; + this.next_0 = this.this$01.firstInKeyInsertionOrder; + this.expectedModCount = this.this$01.modCount; + this.remaining = this.this$01.size_0; +} + +defineClass(534, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_7(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_5(){ + return $hasNext_0(this); +} +; +_.next_1 = function next_6(){ + var entry; + if (!$hasNext_0(this)) { + throw toJs(new NoSuchElementException); + } + entry = this.next_0; + this.next_0 = entry.nextInKeyInsertionOrder; + this.toRemove = entry; + --this.remaining; + return this.output_0(entry); +} +; +_.remove = function remove_26(){ + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + checkState_0(!!this.toRemove); + $delete(this.this$01, this.toRemove); + this.expectedModCount = this.this$01.modCount; + this.toRemove = null; +} +; +_.expectedModCount = 0; +_.remaining = 0; +_.toRemove = null; +var Lcom_google_common_collect_HashBiMap$Itr_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Itr', 534); +function HashBiMap$1(this$0, this$0_1){ + this.this$02 = this$0_1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1011, 534, $intern_6, HashBiMap$1); +_.output_0 = function output_2(entry){ + return new HashBiMap$1$MapEntry(this, entry); +} +; +var Lcom_google_common_collect_HashBiMap$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1', 1011); +function HashBiMap$1$MapEntry(this$1, entry){ + this.this$11 = this$1; + this.delegate = entry; +} + +defineClass(1012, 345, $intern_15, HashBiMap$1$MapEntry); +_.getKey = function getKey_0(){ + return this.delegate.key; +} +; +_.getValue = function getValue_2(){ + return this.delegate.value_0; +} +; +_.setValue = function setValue_3(value_0){ + var newEntry, oldValue, valueHash; + oldValue = this.delegate.value_0; + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + if (valueHash == this.delegate.valueHash && (maskUndefined(value_0) === maskUndefined(oldValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, oldValue))) { + return value_0; + } + checkArgument_1(!$seekByValue(this.this$11.this$02, value_0, valueHash), value_0); + $delete(this.this$11.this$02, this.delegate); + newEntry = new HashBiMap$BiEntry(this.delegate.key, this.delegate.keyHash, value_0, valueHash); + $insert(this.this$11.this$02, newEntry, this.delegate); + this.delegate.prevInKeyInsertionOrder = null; + this.delegate.nextInKeyInsertionOrder = null; + this.this$11.expectedModCount = this.this$11.this$02.modCount; + this.this$11.toRemove == this.delegate && (this.this$11.toRemove = newEntry); + this.delegate = newEntry; + return oldValue; +} +; +var Lcom_google_common_collect_HashBiMap$1$MapEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1/MapEntry', 1012); +function ImmutableEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(238, 345, {345:1, 238:1, 3:1, 42:1}, ImmutableEntry); +_.getKey = function getKey_1(){ + return this.key; +} +; +_.getValue = function getValue_3(){ + return this.value_0; +} +; +_.setValue = function setValue_4(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_ImmutableEntry_2_classLit = createForClass('com.google.common.collect', 'ImmutableEntry', 238); +function HashBiMap$BiEntry(key, keyHash, value_0, valueHash){ + ImmutableEntry.call(this, key, value_0); + this.keyHash = keyHash; + this.valueHash = valueHash; +} + +defineClass(317, 238, {345:1, 317:1, 238:1, 3:1, 42:1}, HashBiMap$BiEntry); +_.keyHash = 0; +_.valueHash = 0; +var Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/BiEntry', 317); +function $get_5(this$static, value_0){ + return keyOrNull($seekByValue(this$static.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))))); +} + +function HashBiMap$Inverse(this$0){ + this.this$01 = this$0; +} + +function lambda$0(action_0, k_1, v_2){ + action_0.accept_1(v_2, k_1); +} + +defineClass(610, 1979, $intern_28, HashBiMap$Inverse); +_.putAll = function putAll_1(map_0){ + $putAll(this, map_0); +} +; +_.values_0 = function values_7(){ + return new HashBiMap$KeySet(this.this$01); +} +; +_.clear_0 = function clear_19(){ + $clear_2(this.this$01); +} +; +_.containsKey = function containsKey_6(value_0){ + return $containsValue_1(this.this$01, value_0); +} +; +_.entryIterator = function entryIterator_3(){ + return new HashBiMap$Inverse$1(this, this.this$01); +} +; +_.forEach = function forEach_7(action){ + checkNotNull(action); + $forEach(this.this$01, new HashBiMap$Inverse$lambda$0$Type(action)); +} +; +_.get_3 = function get_18(value_0){ + return $get_5(this, value_0); +} +; +_.keySet_0 = function keySet_11(){ + return new HashBiMap$Inverse$InverseKeySet(this); +} +; +_.put = function put_4(value_0, key){ + return $putInverse(this.this$01, value_0, key, false); +} +; +_.remove_0 = function remove_27(value_0){ + var entry; + entry = $seekByValue(this.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); + if (!entry) { + return null; + } + else { + $delete(this.this$01, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return entry.key; + } +} +; +_.size_1 = function size_19(){ + return this.this$01.size_0; +} +; +_.values_1 = function values_8(){ + return new HashBiMap$KeySet(this.this$01); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse', 610); +function HashBiMap$Inverse$1(this$1, this$0){ + this.this$11 = this$1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1008, 534, $intern_6, HashBiMap$Inverse$1); +_.output_0 = function output_3(entry){ + return new HashBiMap$Inverse$1$InverseEntry(this, entry); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1', 1008); +function HashBiMap$Inverse$1$InverseEntry(this$2, entry){ + this.this$21 = this$2; + this.delegate = entry; +} + +defineClass(1009, 345, $intern_15, HashBiMap$Inverse$1$InverseEntry); +_.getKey = function getKey_2(){ + return this.delegate.value_0; +} +; +_.getValue = function getValue_4(){ + return this.delegate.key; +} +; +_.setValue = function setValue_5(key){ + var keyHash, newEntry, oldKey; + oldKey = this.delegate.key; + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + if (keyHash == this.delegate.keyHash && (maskUndefined(key) === maskUndefined(oldKey) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, oldKey))) { + return key; + } + checkArgument_1(!$seekByKey(this.this$21.this$11.this$01, key, keyHash), key); + $delete(this.this$21.this$11.this$01, this.delegate); + newEntry = new HashBiMap$BiEntry(key, keyHash, this.delegate.value_0, this.delegate.valueHash); + this.delegate = newEntry; + $insert(this.this$21.this$11.this$01, newEntry, null); + this.this$21.expectedModCount = this.this$21.this$11.this$01.modCount; + return oldKey; +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$1$InverseEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1/InverseEntry', 1009); +function HashBiMap$Inverse$InverseKeySet(this$1){ + this.this$11 = this$1; + Maps$KeySet.call(this, this$1); +} + +defineClass(611, 532, $intern_10, HashBiMap$Inverse$InverseKeySet); +_.iterator_0 = function iterator_22(){ + return new HashBiMap$Inverse$InverseKeySet$1(this.this$11.this$01); +} +; +_.remove_1 = function remove_28(o){ + var entry; + entry = $seekByValue(this.this$11.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); + if (!entry) { + return false; + } + else { + $delete(this.this$11.this$01, entry); + return true; + } +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet', 611); +function HashBiMap$Inverse$InverseKeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1007, 534, $intern_6, HashBiMap$Inverse$InverseKeySet$1); +_.output_0 = function output_4(entry){ + return entry.value_0; +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet/1', 1007); +function HashBiMap$Inverse$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1010, 1, {}, HashBiMap$Inverse$lambda$0$Type); +_.accept_1 = function accept_6(arg0, arg1){ + lambda$0(this.action_0, arg0, arg1); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/lambda$0$Type', 1010); +function HashBiMap$KeySet(this$0){ + this.this$01 = this$0; + Maps$KeySet.call(this, this$0); +} + +defineClass(609, 532, $intern_10, HashBiMap$KeySet); +_.iterator_0 = function iterator_23(){ + return new HashBiMap$KeySet$1(this.this$01); +} +; +_.remove_1 = function remove_29(o){ + var entry; + entry = $seekByKey(this.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); + if (!entry) { + return false; + } + else { + $delete(this.this$01, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return true; + } +} +; +var Lcom_google_common_collect_HashBiMap$KeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet', 609); +function HashBiMap$KeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1006, 534, $intern_6, HashBiMap$KeySet$1); +_.output_0 = function output_5(entry){ + return entry.key; +} +; +var Lcom_google_common_collect_HashBiMap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet/1', 1006); +function HashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1093, 619, $intern_5); +var Lcom_google_common_collect_HashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'HashMultimapGwtSerializationDependencies', 1093); +function HashMultimap(){ + HashMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(12))); + checkArgument(true); + this.expectedValuesPerKey = 2; +} + +defineClass(265, 1093, $intern_5, HashMultimap); +_.createCollection = function createCollection_5(){ + return new HashSet_0(capacity_0(this.expectedValuesPerKey)); +} +; +_.createCollection_1 = function createCollection_6(){ + return new HashSet_0(capacity_0(this.expectedValuesPerKey)); +} +; +_.expectedValuesPerKey = 2; +var Lcom_google_common_collect_HashMultimap_2_classLit = createForClass('com.google.common.collect', 'HashMultimap', 265); +function closedTableSize(expectedEntries){ + var tableSize; + expectedEntries = $wnd.Math.max(expectedEntries, 2); + tableSize = highestOneBit(expectedEntries); + if (expectedEntries > tableSize) { + tableSize <<= 1; + return tableSize > 0?tableSize:$intern_35; + } + return tableSize; +} + +function needsResizing(size_0, tableSize){ + return size_0 > tableSize && tableSize < $intern_35; +} + +defineClass(1999, 152, $intern_26); +_.contains = function contains_16(target){ + return this.delegateCollection().contains(target); +} +; +_.isEmpty = function isEmpty_12(){ + return this.delegateCollection().isEmpty(); +} +; +_.size_1 = function size_20(){ + return this.delegateCollection().size_1(); +} +; +var Lcom_google_common_collect_ImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'ImmutableAsList', 1999); +function ImmutableBiMap(delegate){ + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(1931, 715, $intern_28); +_.values_2 = function values_9(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_0 = function values_10(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_1 = function values_11(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +var Lcom_google_common_collect_ImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableBiMap', 1931); +defineClass(1977, 1, {}); +var Lcom_google_common_collect_ImmutableCollection$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection/Builder', 1977); +function ImmutableEnumSet(delegate){ + ForwardingImmutableSet.call(this, delegate); +} + +function asImmutable(delegate){ + $clinit_ImmutableCollection(); + switch (delegate.size_0) { + case 0: + return $clinit_RegularImmutableSet() , EMPTY_2; + case 1: + return new SingletonImmutableSet(getOnlyElement(new EnumSet$EnumSetImpl$IteratorImpl(delegate))); + default:return new ImmutableEnumSet(delegate); + } +} + +defineClass(1022, 703, $intern_30, ImmutableEnumSet); +var Lcom_google_common_collect_ImmutableEnumSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableEnumSet', 1022); +function ImmutableList$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + AbstractIndexedListIterator_0.call(this, $anonymous0, $anonymous1); +} + +defineClass(969, 386, $intern_4, ImmutableList$1); +_.get_0 = function get_19(index_0){ + return this.this$01.get_0(index_0); +} +; +var Lcom_google_common_collect_ImmutableList$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/1', 969); +function ImmutableList$Builder(capacity){ + this.contents = (checkNonnegative(capacity, 'initialArraySize') , new ArrayList_0(capacity)); +} + +defineClass(968, 1977, {}, ImmutableList$Builder); +var Lcom_google_common_collect_ImmutableList$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/Builder', 968); +function ImmutableMap$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(614, 198, $intern_3, ImmutableMap$1); +_.hasNext_0 = function hasNext_6(){ + return this.val$entryIterator2.hasNext_0(); +} +; +_.next_1 = function next_7(){ + return castTo(this.val$entryIterator2.next_1(), 42).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/1', 614); +function ImmutableMap$2methodref$getKey$Type(){ +} + +defineClass(1041, 1, {}, ImmutableMap$2methodref$getKey$Type); +_.apply_0 = function apply_9(arg0){ + return castTo(arg0, 42).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$2methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/2methodref$getKey$Type', 1041); +function $put_4(this$static, key, value_0){ + $add_3(this$static.entries_0, ($clinit_ImmutableMap() , checkEntryNotNull(key, value_0) , new ImmutableEntry(key, value_0))); + return this$static; +} + +function ImmutableMap$Builder(initCapacity){ + this.entries_0 = (checkNonnegative(initCapacity, 'initialArraySize') , new ArrayList_0(initCapacity)); +} + +defineClass(1040, 1, {}, ImmutableMap$Builder); +var Lcom_google_common_collect_ImmutableMap$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/Builder', 1040); +defineClass(2000, 1981, $intern_30); +_.iterator_0 = function iterator_25(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.createAsList = function createAsList_0(){ + return new IndexedImmutableSet$1(this); +} +; +_.forEach_0 = function forEach_8(consumer){ + var i, n; + checkNotNull(consumer); + n = this.size_1(); + for (i = 0; i < n; i++) { + consumer.accept(castTo($asList($entrySet_1(this.map_0)).get_0(i), 42).getKey()); + } +} +; +_.iterator_1 = function iterator_24(){ + var list; + return (list = this.asList , !list?(this.asList = new IndexedImmutableSet$1(this)):list).iterator_1(); +} +; +_.spliterator_0 = function spliterator_20(){ + return indexed(this.size_1(), 1296, new IndexedImmutableSet$0methodref$get$Type(this)); +} +; +var Lcom_google_common_collect_IndexedImmutableSet_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet', 2000); +function $get_6(this$static, index_0){ + return castTo($asList($entrySet_1(this$static.map_0)).get_0(index_0), 42).getKey(); +} + +function ImmutableMapKeySet(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1180, 2000, $intern_30, ImmutableMapKeySet); +_.iterator_0 = function iterator_27(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.contains = function contains_17(object){ + return this.map_0.containsKey(object); +} +; +_.forEach_0 = function forEach_9(action){ + checkNotNull(action); + $forEach_2(this.map_0, new ImmutableMapKeySet$lambda$0$Type(action)); +} +; +_.iterator_1 = function iterator_26(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.size_1 = function size_21(){ + return this.map_0.size_1(); +} +; +_.spliterator_0 = function spliterator_21(){ + return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMap$2methodref$getKey$Type); +} +; +var Lcom_google_common_collect_ImmutableMapKeySet_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet', 1180); +function ImmutableMapKeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1181, 1, {}, ImmutableMapKeySet$lambda$0$Type); +_.accept_1 = function accept_7(arg0, arg1){ + $clinit_ImmutableCollection(); + this.action_0.accept(arg0); +} +; +var Lcom_google_common_collect_ImmutableMapKeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet/lambda$0$Type', 1181); +function ImmutableMapValues(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1178, 1980, $intern_25, ImmutableMapValues); +_.iterator_0 = function iterator_29(){ + return new ImmutableMapValues$1(this); +} +; +_.contains = function contains_18(object){ + return object != null && contains_19(new ImmutableMapValues$1(this), object); +} +; +_.iterator_1 = function iterator_28(){ + return new ImmutableMapValues$1(this); +} +; +_.size_1 = function size_22(){ + return this.map_0.size_1(); +} +; +_.spliterator_0 = function spliterator_22(){ + return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMapValues$0methodref$getValue$Type); +} +; +var Lcom_google_common_collect_ImmutableMapValues_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues', 1178); +function ImmutableMapValues$0methodref$getValue$Type(){ +} + +defineClass(1179, 1, {}, ImmutableMapValues$0methodref$getValue$Type); +_.apply_0 = function apply_10(arg0){ + return castTo(arg0, 42).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/0methodref$getValue$Type', 1179); +function ImmutableMapValues$1(this$0){ + this.this$01 = this$0; + this.entryItr = $entrySet_1(this.this$01.map_0).iterator_1(); +} + +defineClass(626, 198, $intern_3, ImmutableMapValues$1); +_.hasNext_0 = function hasNext_7(){ + return this.entryItr.hasNext_0(); +} +; +_.next_1 = function next_8(){ + return castTo(this.entryItr.next_1(), 42).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/1', 626); +function IndexedImmutableSet$0methodref$get$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1182, 1, {}, IndexedImmutableSet$0methodref$get$Type); +_.apply_2 = function apply_11(arg0){ + return $get_6(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_IndexedImmutableSet$0methodref$get$Type_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/0methodref$get$Type', 1182); +function IndexedImmutableSet$1(this$0){ + $clinit_ImmutableList(); + this.this$01 = this$0; +} + +defineClass(752, 1999, $intern_26, IndexedImmutableSet$1); +_.delegateCollection = function delegateCollection(){ + return this.this$01; +} +; +_.get_0 = function get_20(index_0){ + return $get_6(this.this$01, index_0); +} +; +_.size_1 = function size_23(){ + return this.this$01.map_0.size_1(); +} +; +var Lcom_google_common_collect_IndexedImmutableSet$1_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/1', 752); +function addAll_6(addTo, elementsToAdd){ + var c; + if (instanceOf(elementsToAdd, 14)) { + c = castTo(elementsToAdd, 14); + return addTo.addAll(c); + } + return addAll_7(addTo, castTo(checkNotNull(elementsToAdd), 20).iterator_0()); +} + +function all_0(iterable, predicate){ + return all_1(iterable.iterator_0(), predicate); +} + +function any_0(iterable, predicate){ + return indexOf_2(iterable.iterator_0(), predicate) != -1; +} + +function concat_0(inputs){ + return checkNotNull(inputs) , new FluentIterable$2(inputs); +} + +function filter_0(unfiltered, retainIfTrue){ + checkNotNull(unfiltered); + checkNotNull(retainIfTrue); + return new Iterables$4(unfiltered, retainIfTrue); +} + +function get_21(iterable){ + checkNotNull(iterable); + return get_22(new Iterators$ConcatenatedIterator(transform_2(iterable.val$inputs1.iterator_0(), new Iterables$10))); +} + +function getLast(iterable){ + var list; + if (iterable) { + list = iterable; + if (list.isEmpty()) { + throw toJs(new NoSuchElementException); + } + return list.get_0(list.size_1() - 1); + } + return getLast_0(iterable.iterator_0()); +} + +function isEmpty_13(iterable){ + if (instanceOf(iterable, 14)) { + return castTo(iterable, 14).isEmpty(); + } + return !iterable.iterator_0().hasNext_0(); +} + +function transform_1(fromIterable, function_0){ + checkNotNull(fromIterable); + checkNotNull(function_0); + return new Iterables$5(fromIterable, function_0); +} + +function Iterables$10(){ +} + +defineClass(44, 1, {}, Iterables$10); +_.apply_0 = function apply_12(iterable){ + return castTo(iterable, 20).iterator_0(); +} +; +_.equals_0 = function equals_23(other){ + return this === other; +} +; +var Lcom_google_common_collect_Iterables$10_2_classLit = createForClass('com.google.common.collect', 'Iterables/10', 44); +function $iterator_0(this$static){ + return filter_1(this$static.val$unfiltered1.iterator_0(), this$static.val$retainIfTrue2); +} + +function Iterables$4(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; + FluentIterable.call(this); +} + +function lambda$0_0(retainIfTrue_0, action_1, a_2){ + retainIfTrue_0.test_0(a_2) && action_1.accept(a_2); +} + +defineClass(1042, 537, $intern_23, Iterables$4); +_.forEach_0 = function forEach_10(action){ + checkNotNull(action); + this.val$unfiltered1.forEach_0(new Iterables$4$lambda$0$Type(this.val$retainIfTrue2, action)); +} +; +_.iterator_0 = function iterator_30(){ + return $iterator_0(this); +} +; +var Lcom_google_common_collect_Iterables$4_2_classLit = createForClass('com.google.common.collect', 'Iterables/4', 1042); +function Iterables$4$lambda$0$Type(retainIfTrue_0, action_1){ + this.retainIfTrue_0 = retainIfTrue_0; + this.action_1 = action_1; +} + +defineClass(1043, 1, $intern_19, Iterables$4$lambda$0$Type); +_.accept = function accept_8(arg0){ + lambda$0_0(this.retainIfTrue_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_Iterables$4$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/4/lambda$0$Type', 1043); +function Iterables$5(val$fromIterable, val$function){ + this.val$fromIterable1 = val$fromIterable; + this.val$function2 = val$function; + FluentIterable.call(this); +} + +defineClass(1044, 537, $intern_23, Iterables$5); +_.forEach_0 = function forEach_11(action){ + checkNotNull(action); + $forEach_0(this.val$fromIterable1, new Iterables$5$lambda$0$Type(action, this.val$function2)); +} +; +_.iterator_0 = function iterator_31(){ + return transform_2(new AbstractEList$EIterator(this.val$fromIterable1), this.val$function2); +} +; +var Lcom_google_common_collect_Iterables$5_2_classLit = createForClass('com.google.common.collect', 'Iterables/5', 1044); +function Iterables$5$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1045, 1, $intern_19, Iterables$5$lambda$0$Type); +_.accept = function accept_9(arg0){ + this.action_0.accept($apply_27(arg0)); +} +; +var Lcom_google_common_collect_Iterables$5$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/5/lambda$0$Type', 1045); +function addAll_7(addTo, iterator){ + var wasModified; + checkNotNull(addTo); + checkNotNull(iterator); + wasModified = false; + while (iterator.hasNext_0()) { + wasModified = wasModified | addTo.add_2(iterator.next_1()); + } + return wasModified; +} + +function advance(iterator){ + var i; + checkNotNull(iterator); + checkArgument_0(true, 'numberToAdvance must be nonnegative'); + for (i = 0; i < 0 && $hasNext_1(iterator); i++) { + $next_0(iterator); + } + return i; +} + +function all_1(iterator, predicate){ + var element; + checkNotNull(predicate); + while (iterator.hasNext_0()) { + element = iterator.next_1(); + if (!$apply_18(castTo(element, 10))) { + return false; + } + } + return true; +} + +function clear_20(iterator){ + checkNotNull(iterator); + while (iterator.hasNext_0()) { + iterator.next_1(); + iterator.remove(); + } +} + +function contains_19(iterator, element){ + if (element == null) { + while (iterator.entryItr.hasNext_0()) { + if (castTo(iterator.entryItr.next_1(), 42).getValue() == null) { + return true; + } + } + } + else { + while (iterator.entryItr.hasNext_0()) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, castTo(iterator.entryItr.next_1(), 42).getValue())) { + return true; + } + } + } + return false; +} + +function elementsEqual(iterator1, iterator2){ + var o1, o2; + while (iterator1.hasNext_0()) { + if (!iterator2.hasNext_0()) { + return false; + } + o1 = iterator1.next_1(); + o2 = iterator2.next_1(); + if (!(maskUndefined(o1) === maskUndefined(o2) || o1 != null && equals_Ljava_lang_Object__Z__devirtual$(o1, o2))) { + return false; + } + } + return !iterator2.hasNext_0(); +} + +function filter_1(unfiltered, retainIfTrue){ + checkNotNull(unfiltered); + checkNotNull(retainIfTrue); + return new Iterators$5(unfiltered, retainIfTrue); +} + +function get_22(iterator){ + var skipped; + skipped = advance(iterator); + if (!$hasNext_1(iterator)) { + throw toJs(new IndexOutOfBoundsException_0('position (0) must be less than the number of elements that remained (' + skipped + ')')); + } + return $next_0(iterator); +} + +function getLast_0(iterator){ + var current; + while (true) { + current = iterator.next_1(); + if (!iterator.hasNext_0()) { + return current; + } + } +} + +function getLast_1(iterator){ + return $hasNext_5(iterator.val$edgesIter2)?getLast_0(iterator):null; +} + +function getNext(iterator){ + return iterator.hasNext_0()?iterator.next_1():null; +} + +function getOnlyElement(iterator){ + var first, i, sb; + first = iterator.next_1(); + if (!iterator.hasNext_0()) { + return first; + } + sb = $append_10($append_11(new StringBuilder, 'expected one element but was: <'), first); + for (i = 0; i < 4 && iterator.hasNext_0(); i++) { + $append_10((sb.string += ', ' , sb), iterator.next_1()); + } + iterator.hasNext_0() && (sb.string += ', ...' , sb); + sb.string += '>'; + throw toJs(new IllegalArgumentException_0(sb.string)); +} + +function indexOf_2(iterator, predicate){ + var current, i; + checkNotNull_0(predicate, 'predicate'); + for (i = 0; iterator.hasNext_0(); i++) { + current = iterator.next_1(); + if (predicate.apply_1(current)) { + return i; + } + } + return -1; +} + +function size_24(iterator){ + var count; + count = 0; + while (iterator.hasNext_0()) { + iterator.next_1(); + count = add_20(count, 1); + } + return saturatedCast(count); +} + +function toString_25(iterator){ + var first, sb; + sb = $append_5(new StringBuilder, 91); + first = true; + while (iterator.hasNext_0()) { + first || (sb.string += ', ' , sb); + first = false; + $append_10(sb, iterator.next_1()); + } + return (sb.string += ']' , sb).string; +} + +function transform_2(fromIterator, function_0){ + checkNotNull(function_0); + return new Iterators$6(fromIterator, function_0); +} + +function unmodifiableIterator(iterator){ + var result; + checkNotNull(iterator); + if (instanceOf(iterator, 198)) { + result = castTo(iterator, 198); + return result; + } + return new Iterators$1(iterator); +} + +function Iterators$1(val$iterator){ + this.val$iterator1 = val$iterator; +} + +defineClass(1071, 198, $intern_3, Iterators$1); +_.hasNext_0 = function hasNext_8(){ + return this.val$iterator1.hasNext_0(); +} +; +_.next_1 = function next_9(){ + return this.val$iterator1.next_1(); +} +; +var Lcom_google_common_collect_Iterators$1_2_classLit = createForClass('com.google.common.collect', 'Iterators/1', 1071); +function Iterators$5(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; +} + +defineClass(1072, 699, $intern_3, Iterators$5); +_.computeNext = function computeNext(){ + var element; + while (this.val$unfiltered1.hasNext_0()) { + element = this.val$unfiltered1.next_1(); + if (this.val$retainIfTrue2.apply_1(element)) { + return element; + } + } + return this.state = 2 , null; +} +; +var Lcom_google_common_collect_Iterators$5_2_classLit = createForClass('com.google.common.collect', 'Iterators/5', 1072); +function TransformedIterator(backingIterator){ + this.backingIterator = castTo(checkNotNull(backingIterator), 47); +} + +defineClass(487, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_8(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_9(){ + return this.backingIterator.hasNext_0(); +} +; +_.next_1 = function next_10(){ + return this.transform_0(this.backingIterator.next_1()); +} +; +_.remove = function remove_30(){ + this.backingIterator.remove(); +} +; +var Lcom_google_common_collect_TransformedIterator_2_classLit = createForClass('com.google.common.collect', 'TransformedIterator', 487); +function Iterators$6($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1073, 487, $intern_6, Iterators$6); +_.transform_0 = function transform_3(from){ + return this.val$function2.apply_0(from); +} +; +var Lcom_google_common_collect_Iterators$6_2_classLit = createForClass('com.google.common.collect', 'Iterators/6', 1073); +function Iterators$9(val$value){ + this.val$value1 = val$value; +} + +defineClass(717, 198, $intern_3, Iterators$9); +_.hasNext_0 = function hasNext_10(){ + return !this.done_0; +} +; +_.next_1 = function next_11(){ + if (this.done_0) { + throw toJs(new NoSuchElementException); + } + this.done_0 = true; + return this.val$value1; +} +; +_.done_0 = false; +var Lcom_google_common_collect_Iterators$9_2_classLit = createForClass('com.google.common.collect', 'Iterators/9', 717); +function $clinit_Iterators$ArrayItr(){ + $clinit_Iterators$ArrayItr = emptyMethod; + EMPTY_1 = new Iterators$ArrayItr(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1)); +} + +function Iterators$ArrayItr(array){ + AbstractIndexedListIterator_0.call(this, 0, 0); + this.array = array; + this.offset = 0; +} + +defineClass(1070, 386, $intern_4, Iterators$ArrayItr); +_.get_0 = function get_23(index_0){ + return this.array[this.offset + index_0]; +} +; +_.offset = 0; +var EMPTY_1; +var Lcom_google_common_collect_Iterators$ArrayItr_2_classLit = createForClass('com.google.common.collect', 'Iterators/ArrayItr', 1070); +function $getTopMetaIterator(this$static){ + while (!this$static.topMetaIterator || !this$static.topMetaIterator.hasNext_0()) { + if (!!this$static.metaIterators && !$isEmpty(this$static.metaIterators)) { + this$static.topMetaIterator = castTo($removeFirst(this$static.metaIterators), 47); + } + else { + return null; + } + } + return this$static.topMetaIterator; +} + +function $hasNext_1(this$static){ + var topConcat; + while (!castTo(checkNotNull(this$static.iterator), 47).hasNext_0()) { + this$static.topMetaIterator = $getTopMetaIterator(this$static); + if (!this$static.topMetaIterator) { + return false; + } + this$static.iterator = castTo(this$static.topMetaIterator.next_1(), 47); + if (instanceOf(this$static.iterator, 39)) { + topConcat = castTo(this$static.iterator, 39); + this$static.iterator = topConcat.iterator; + !this$static.metaIterators && (this$static.metaIterators = new ArrayDeque); + $addFirst(this$static.metaIterators, this$static.topMetaIterator); + if (topConcat.metaIterators) { + while (!$isEmpty(topConcat.metaIterators)) { + $addFirst(this$static.metaIterators, castTo($removeLast(topConcat.metaIterators), 47)); + } + } + this$static.topMetaIterator = topConcat.topMetaIterator; + } + } + return true; +} + +function $next_0(this$static){ + if ($hasNext_1(this$static)) { + this$static.toRemove = this$static.iterator; + return this$static.iterator.next_1(); + } + else { + throw toJs(new NoSuchElementException); + } +} + +function Iterators$ConcatenatedIterator(metaIterator){ + this.iterator = ($clinit_Iterators$ArrayItr() , EMPTY_1); + this.topMetaIterator = castTo(checkNotNull(metaIterator), 47); +} + +defineClass(39, 1, {39:1, 47:1}, Iterators$ConcatenatedIterator); +_.forEachRemaining = function forEachRemaining_9(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_11(){ + return $hasNext_1(this); +} +; +_.next_1 = function next_12(){ + return $next_0(this); +} +; +_.remove = function remove_31(){ + checkState_0(!!this.toRemove); + this.toRemove.remove(); + this.toRemove = null; +} +; +var Lcom_google_common_collect_Iterators$ConcatenatedIterator_2_classLit = createForClass('com.google.common.collect', 'Iterators/ConcatenatedIterator', 39); +function $compareTo(this$static, other){ + return this$static.ordinal - other.ordinal; +} + +function $name(this$static){ + return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; +} + +function $toString_3(this$static){ + return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; +} + +function Enum(name_0, ordinal){ + this.name_0 = name_0; + this.ordinal = ordinal; +} + +function createValueOfMap(enumConstants){ + var result, value_0, value$array, value$index, value$max; + result = {}; + for (value$array = enumConstants , value$index = 0 , value$max = value$array.length; value$index < value$max; ++value$index) { + value_0 = value$array[value$index]; + result[':' + (value_0.name_0 != null?value_0.name_0:'' + value_0.ordinal)] = value_0; + } + return result; +} + +function valueOf(map_0, name_0){ + var result; + checkCriticalNotNull(name_0); + result = map_0[':' + name_0]; + checkCriticalArgument_1(!!result, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [name_0])); + return result; +} + +function valueOf_0(enumType, name_0){ + var enumValueOfFunc; + enumValueOfFunc = (checkCriticalNotNull(enumType) , enumType).enumValueOfFunc; + checkCriticalArgument(!!enumValueOfFunc); + checkCriticalNotNull(name_0); + return enumValueOfFunc(name_0); +} + +defineClass(22, 1, {3:1, 35:1, 22:1}); +_.compareTo_0 = function compareTo_3(other){ + return $compareTo(this, castTo(other, 22)); +} +; +_.equals_0 = function equals_24(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_26(){ + return getHashCode_0(this); +} +; +_.toString_0 = function toString_26(){ + return $toString_3(this); +} +; +_.ordinal = 0; +var Ljava_lang_Enum_2_classLit = createForClass('java.lang', 'Enum', 22); +function $clinit_Iterators$EmptyModifiableIterator(){ + $clinit_Iterators$EmptyModifiableIterator = emptyMethod; + INSTANCE_2 = new Iterators$EmptyModifiableIterator; +} + +function Iterators$EmptyModifiableIterator(){ + Enum.call(this, 'INSTANCE', 0); +} + +function valueOf_1(name_0){ + $clinit_Iterators$EmptyModifiableIterator(); + return valueOf(($clinit_Iterators$EmptyModifiableIterator$Map() , $MAP), name_0); +} + +function values_12(){ + $clinit_Iterators$EmptyModifiableIterator(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]); +} + +defineClass(538, 22, {538:1, 3:1, 35:1, 22:1, 47:1}, Iterators$EmptyModifiableIterator); +_.forEachRemaining = function forEachRemaining_10(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_12(){ + return false; +} +; +_.next_1 = function next_13(){ + throw toJs(new NoSuchElementException); +} +; +_.remove = function remove_32(){ + checkState_0(false); +} +; +var INSTANCE_2; +var Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit = createForEnum('com.google.common.collect', 'Iterators/EmptyModifiableIterator', 538, Ljava_lang_Enum_2_classLit, values_12, valueOf_1); +function $clinit_Iterators$EmptyModifiableIterator$Map(){ + $clinit_Iterators$EmptyModifiableIterator$Map = emptyMethod; + $MAP = createValueOfMap(($clinit_Iterators$EmptyModifiableIterator() , stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]))); +} + +var $MAP; +function LinkedHashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1834, 619, $intern_5); +var Lcom_google_common_collect_LinkedHashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimapGwtSerializationDependencies', 1834); +function LinkedHashMultimap(){ + LinkedHashMultimapGwtSerializationDependencies.call(this, new LinkedHashMap_0(capacity_0(16))); + checkNonnegative(2, 'expectedValuesPerKey'); + this.valueSetCapacity = 2; + this.multimapHeaderEntry = new LinkedHashMultimap$ValueEntry(null, null, 0, null); + succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); +} + +function succeedsInMultimap(pred, succ){ + pred.successorInMultimap = succ; + succ.predecessorInMultimap = pred; +} + +function succeedsInValueSet(pred, succ){ + pred.setSuccessorInValueSet(succ); + succ.setPredecessorInValueSet(pred); +} + +defineClass(1835, 1834, $intern_5, LinkedHashMultimap); +_.createCollection = function createCollection_7(){ + return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); +} +; +_.clear_0 = function clear_21(){ + $clear(this); + succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); +} +; +_.createCollection_1 = function createCollection_8(){ + return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); +} +; +_.createCollection_0 = function createCollection_9(key){ + return new LinkedHashMultimap$ValueSet(this, key, this.valueSetCapacity); +} +; +_.entryIterator = function entryIterator_4(){ + return new LinkedHashMultimap$1(this); +} +; +_.entrySpliterator = function entrySpliterator_3(){ + var result; + return new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17); +} +; +_.keySet_0 = function keySet_12(){ + var result; + return result = this.keySet , !result?(this.keySet = new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result; +} +; +_.valueIterator_0 = function valueIterator_0(){ + return new Maps$2(new LinkedHashMultimap$1(this)); +} +; +_.valueSpliterator = function valueSpliterator_0(){ + var result; + return map_2(new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17), new LinkedHashMultimap$0methodref$getValue$Type); +} +; +_.valueSetCapacity = 2; +var Lcom_google_common_collect_LinkedHashMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap', 1835); +function LinkedHashMultimap$0methodref$getValue$Type(){ +} + +defineClass(1838, 1, {}, LinkedHashMultimap$0methodref$getValue$Type); +_.apply_0 = function apply_13(arg0){ + return castTo(arg0, 42).getValue(); +} +; +var Lcom_google_common_collect_LinkedHashMultimap$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/0methodref$getValue$Type', 1838); +function $next_1(this$static){ + var result; + if (this$static.nextEntry == this$static.this$01.multimapHeaderEntry) { + throw toJs(new NoSuchElementException); + } + result = this$static.nextEntry; + this$static.toRemove = result; + this$static.nextEntry = this$static.nextEntry.successorInMultimap; + return result; +} + +function LinkedHashMultimap$1(this$0){ + this.this$01 = this$0; + this.nextEntry = this.this$01.multimapHeaderEntry.successorInMultimap; +} + +defineClass(824, 1, $intern_6, LinkedHashMultimap$1); +_.forEachRemaining = function forEachRemaining_11(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_14(){ + return $next_1(this); +} +; +_.hasNext_0 = function hasNext_13(){ + return this.nextEntry != this.this$01.multimapHeaderEntry; +} +; +_.remove = function remove_33(){ + checkState_0(!!this.toRemove); + $remove_0(this.this$01, this.toRemove.key, this.toRemove.value_0); + this.toRemove = null; +} +; +var Lcom_google_common_collect_LinkedHashMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/1', 824); +function LinkedHashMultimap$ValueEntry(key, value_0, smearedValueHash, nextInValueBucket){ + ImmutableEntry.call(this, key, value_0); + this.smearedValueHash = smearedValueHash; + this.nextInValueBucket = nextInValueBucket; +} + +defineClass(330, 238, {345:1, 238:1, 330:1, 2020:1, 3:1, 42:1}, LinkedHashMultimap$ValueEntry); +_.getSuccessorInValueSet = function getSuccessorInValueSet(){ + return this.successorInValueSet; +} +; +_.setPredecessorInValueSet = function setPredecessorInValueSet(entry){ + this.predecessorInValueSet = entry; +} +; +_.setSuccessorInValueSet = function setSuccessorInValueSet(entry){ + this.successorInValueSet = entry; +} +; +_.smearedValueHash = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueEntry', 330); +function $rehashIfNecessary_0(this$static){ + var bucket, entry, hashTable, mask, valueEntry; + if (needsResizing(this$static.size_0, this$static.hashTable.length)) { + hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, this$static.hashTable.length * 2, 0, 1); + this$static.hashTable = hashTable; + mask = hashTable.length - 1; + for (entry = this$static.firstEntry; entry != this$static; entry = entry.getSuccessorInValueSet()) { + valueEntry = castTo(entry, 330); + bucket = valueEntry.smearedValueHash & mask; + valueEntry.nextInValueBucket = hashTable[bucket]; + hashTable[bucket] = valueEntry; + } + } +} + +function $remove_3(this$static, o){ + var bucket, entry, prev, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); + bucket = smearedHash & this$static.hashTable.length - 1; + prev = null; + for (entry = this$static.hashTable[bucket]; entry; prev = entry , entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { + !prev?(this$static.hashTable[bucket] = entry.nextInValueBucket):(prev.nextInValueBucket = entry.nextInValueBucket); + succeedsInValueSet(entry.predecessorInValueSet, entry.successorInValueSet); + succeedsInMultimap(entry.predecessorInMultimap, entry.successorInMultimap); + --this$static.size_0; + ++this$static.modCount; + return true; + } + } + return false; +} + +function LinkedHashMultimap$ValueSet(this$0, key, expectedValues){ + var hashTable, tableSize; + this.this$01 = this$0; + this.key = key; + this.firstEntry = this; + this.lastEntry = this; + tableSize = closedTableSize(expectedValues); + hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, tableSize, 0, 1); + this.hashTable = hashTable; +} + +defineClass(1836, 1970, {2020:1, 20:1, 28:1, 14:1, 21:1}, LinkedHashMultimap$ValueSet); +_.add_2 = function add_10(value_0){ + var bucket, entry, newEntry, rowHead, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + bucket = smearedHash & this.hashTable.length - 1; + rowHead = this.hashTable[bucket]; + for (entry = rowHead; entry; entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, value_0)) { + return false; + } + } + newEntry = new LinkedHashMultimap$ValueEntry(this.key, value_0, smearedHash, rowHead); + succeedsInValueSet(this.lastEntry, newEntry); + newEntry.successorInValueSet = this; + this.lastEntry = newEntry; + succeedsInMultimap(this.this$01.multimapHeaderEntry.predecessorInMultimap, newEntry); + succeedsInMultimap(newEntry, this.this$01.multimapHeaderEntry); + this.hashTable[bucket] = newEntry; + ++this.size_0; + ++this.modCount; + $rehashIfNecessary_0(this); + return true; +} +; +_.clear_0 = function clear_22(){ + var entry, valueEntry; + fill_2(this.hashTable, null); + this.size_0 = 0; + for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { + valueEntry = castTo(entry, 330); + succeedsInMultimap(valueEntry.predecessorInMultimap, valueEntry.successorInMultimap); + } + this.firstEntry = this; + this.lastEntry = this; + ++this.modCount; +} +; +_.contains = function contains_20(o){ + var entry, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); + for (entry = this.hashTable[smearedHash & this.hashTable.length - 1]; entry; entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { + return true; + } + } + return false; +} +; +_.forEach_0 = function forEach_12(action){ + var entry; + checkNotNull(action); + for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { + action.accept(castTo(entry, 330).value_0); + } +} +; +_.getSuccessorInValueSet = function getSuccessorInValueSet_0(){ + return this.firstEntry; +} +; +_.iterator_0 = function iterator_32(){ + return new LinkedHashMultimap$ValueSet$1(this); +} +; +_.remove_1 = function remove_34(o){ + return $remove_3(this, o); +} +; +_.setPredecessorInValueSet = function setPredecessorInValueSet_0(entry){ + this.lastEntry = entry; +} +; +_.setSuccessorInValueSet = function setSuccessorInValueSet_0(entry){ + this.firstEntry = entry; +} +; +_.size_1 = function size_25(){ + return this.size_0; +} +; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueSet_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet', 1836); +function $checkForComodification(this$static){ + if (this$static.this$11.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function LinkedHashMultimap$ValueSet$1(this$1){ + this.this$11 = this$1; + this.nextEntry = this.this$11.firstEntry; + this.expectedModCount = this.this$11.modCount; +} + +defineClass(1837, 1, $intern_6, LinkedHashMultimap$ValueSet$1); +_.forEachRemaining = function forEachRemaining_12(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_14(){ + return $checkForComodification(this) , this.nextEntry != this.this$11; +} +; +_.next_1 = function next_15(){ + var entry, result; + $checkForComodification(this); + if (this.nextEntry == this.this$11) { + throw toJs(new NoSuchElementException); + } + entry = castTo(this.nextEntry, 330); + result = entry.value_0; + this.toRemove = entry; + this.nextEntry = entry.successorInValueSet; + return result; +} +; +_.remove = function remove_35(){ + $checkForComodification(this); + checkState_0(!!this.toRemove); + $remove_3(this.this$11, this.toRemove.value_0); + this.expectedModCount = this.this$11.modCount; + this.toRemove = null; +} +; +_.expectedModCount = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueSet$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet/1', 1837); +function $addNode(this$static, key, value_0, nextSibling){ + var keyList, keyTail, node; + node = new LinkedListMultimap$Node(key, value_0); + if (!this$static.head) { + this$static.head = this$static.tail = node; + $put_6(this$static.keyToKeyList, key, new LinkedListMultimap$KeyList(node)); + ++this$static.modCount; + } + else if (!nextSibling) { + this$static.tail.next_0 = node; + node.previous = this$static.tail; + this$static.tail = node; + keyList = castTo($get_10(this$static.keyToKeyList, key), 283); + if (!keyList) { + $put_6(this$static.keyToKeyList, key, keyList = new LinkedListMultimap$KeyList(node)); + ++this$static.modCount; + } + else { + ++keyList.count; + keyTail = keyList.tail; + keyTail.nextSibling = node; + node.previousSibling = keyTail; + keyList.tail = node; + } + } + else { + keyList = castTo($get_10(this$static.keyToKeyList, key), 283); + ++keyList.count; + node.previous = nextSibling.previous; + node.previousSibling = nextSibling.previousSibling; + node.next_0 = nextSibling; + node.nextSibling = nextSibling; + !nextSibling.previousSibling?(castTo($get_10(this$static.keyToKeyList, key), 283).head = node):(nextSibling.previousSibling.nextSibling = node); + !nextSibling.previous?(this$static.head = node):(nextSibling.previous.next_0 = node); + nextSibling.previous = node; + nextSibling.previousSibling = node; + } + ++this$static.size_0; + return node; +} + +function $clear_3(this$static){ + this$static.head = null; + this$static.tail = null; + $reset(this$static.keyToKeyList); + this$static.size_0 = 0; + ++this$static.modCount; +} + +function $containsKey_1(this$static, key){ + return $containsKey_3(this$static.keyToKeyList, key); +} + +function $removeAll_2(this$static, key){ + var oldValues; + oldValues = unmodifiableList(newArrayList_0(new LinkedListMultimap$ValueForKeyIterator(this$static, key))); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this$static, key)); + return oldValues; +} + +function $removeNode(this$static, node){ + var keyList; + node.previous?(node.previous.next_0 = node.next_0):(this$static.head = node.next_0); + node.next_0?(node.next_0.previous = node.previous):(this$static.tail = node.previous); + if (!node.previousSibling && !node.nextSibling) { + keyList = castTo($remove_6(this$static.keyToKeyList, node.key), 283); + keyList.count = 0; + ++this$static.modCount; + } + else { + keyList = castTo($get_10(this$static.keyToKeyList, node.key), 283); + --keyList.count; + !node.previousSibling?(keyList.head = node.nextSibling):(node.previousSibling.nextSibling = node.nextSibling); + !node.nextSibling?(keyList.tail = node.previousSibling):(node.nextSibling.previousSibling = node.previousSibling); + } + --this$static.size_0; +} + +function LinkedListMultimap(){ + this.keyToKeyList = new HashMap_0(capacity_0(12)); +} + +function checkElement(node){ + if (!node) { + throw toJs(new NoSuchElementException); + } +} + +defineClass(766, 1986, $intern_5, LinkedListMultimap); +_.asMap_0 = function asMap_4(){ + var result; + return result = this.asMap , !result?(this.asMap = new Multimaps$AsMap(this)):result; +} +; +_.equals_0 = function equals_25(object){ + return equalsImpl_1(this, object); +} +; +_.get_1 = function get_24(key){ + return new LinkedListMultimap$1(this, key); +} +; +_.removeAll = function removeAll_6(key){ + return $removeAll_2(this, key); +} +; +_.clear_0 = function clear_23(){ + $clear_3(this); +} +; +_.containsKey = function containsKey_7(key){ + return $containsKey_1(this, key); +} +; +_.createAsMap = function createAsMap_0(){ + return new Multimaps$AsMap(this); +} +; +_.createKeySet = function createKeySet_8(){ + return new LinkedListMultimap$1KeySetImpl(this); +} +; +_.get_2 = function get_25(key){ + return new LinkedListMultimap$1(this, key); +} +; +_.isEmpty = function isEmpty_14(){ + return !this.head; +} +; +_.removeAll_0 = function removeAll_7(key){ + return $removeAll_2(this, key); +} +; +_.size_1 = function size_26(){ + return this.size_0; +} +; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_LinkedListMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap', 766); +function $equals_2(this$static, o){ + var elem, elem$iterator, elemOther, iterOther, other; + if (maskUndefined(o) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(o, 15)) { + return false; + } + other = castTo(o, 15); + if (this$static.size_1() != other.size_1()) { + return false; + } + iterOther = other.iterator_0(); + for (elem$iterator = this$static.iterator_0(); elem$iterator.hasNext_0();) { + elem = elem$iterator.next_1(); + elemOther = iterOther.next_1(); + if (!(maskUndefined(elem) === maskUndefined(elemOther) || elem != null && equals_Ljava_lang_Object__Z__devirtual$(elem, elemOther))) { + return false; + } + } + return true; +} + +function $indexOf(this$static, toFind){ + var i, n; + for (i = 0 , n = this$static.size_1(); i < n; ++i) { + if (equals_57(toFind, this$static.get_0(i))) { + return i; + } + } + return -1; +} + +defineClass(52, 28, $intern_37); +_.sort_0 = function sort_2(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_23(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.add_3 = function add_11(index_0, element){ + throw toJs(new UnsupportedOperationException_0('Add not supported on this list')); +} +; +_.add_2 = function add_12(obj){ + this.add_3(this.size_1(), obj); + return true; +} +; +_.addAll_0 = function addAll_8(index_0, c){ + var changed, e, e$iterator; + checkCriticalNotNull(c); + changed = false; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + this.add_3(index_0++, e); + changed = true; + } + return changed; +} +; +_.clear_0 = function clear_24(){ + this.removeRange(0, this.size_1()); +} +; +_.equals_0 = function equals_26(o){ + return $equals_2(this, o); +} +; +_.hashCode_1 = function hashCode_27(){ + return hashCode_48(this); +} +; +_.indexOf_0 = function indexOf_3(toFind){ + return $indexOf(this, toFind); +} +; +_.iterator_0 = function iterator_33(){ + return new AbstractList$IteratorImpl(this); +} +; +_.listIterator_0 = function listIterator_4(){ + return this.listIterator_1(0); +} +; +_.listIterator_1 = function listIterator_5(from){ + return new AbstractList$ListIteratorImpl(this, from); +} +; +_.remove_2 = function remove_36(index_0){ + throw toJs(new UnsupportedOperationException_0('Remove not supported on this list')); +} +; +_.removeRange = function removeRange(fromIndex, endIndex){ + var i, iter; + iter = this.listIterator_1(fromIndex); + for (i = fromIndex; i < endIndex; ++i) { + iter.next_1(); + iter.remove(); + } +} +; +_.set_2 = function set_5(index_0, o){ + throw toJs(new UnsupportedOperationException_0('Set not supported on this list')); +} +; +_.subList = function subList_5(fromIndex, toIndex){ + return new AbstractList$SubList(this, fromIndex, toIndex); +} +; +_.modCount = 0; +var Ljava_util_AbstractList_2_classLit = createForClass('java.util', 'AbstractList', 52); +function $add_0(this$static, index_0, element){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(element); +} + +function $addAll_0(this$static, index_0, c){ + var e, e$iterator, iter, modified; + checkCriticalNotNull(c); + modified = false; + iter = this$static.listIterator_1(index_0); + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + iter.add_1(e); + modified = true; + } + return modified; +} + +function $get_7(this$static, index_0){ + var iter; + iter = this$static.listIterator_1(index_0); + try { + return iter.next_1(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't get element " + index_0)); + } + else + throw toJs($e0); + } +} + +function $remove_4(this$static, index_0){ + var iter, old; + iter = this$static.listIterator_1(index_0); + try { + old = iter.next_1(); + iter.remove(); + return old; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't remove element " + index_0)); + } + else + throw toJs($e0); + } +} + +defineClass(1964, 52, $intern_37); +_.add_3 = function add_13(index_0, element){ + $add_0(this, index_0, element); +} +; +_.addAll_0 = function addAll_9(index_0, c){ + return $addAll_0(this, index_0, c); +} +; +_.get_0 = function get_26(index_0){ + return $get_7(this, index_0); +} +; +_.iterator_0 = function iterator_34(){ + return this.listIterator_1(0); +} +; +_.remove_2 = function remove_37(index_0){ + return $remove_4(this, index_0); +} +; +_.set_2 = function set_6(index_0, element){ + var iter, old; + iter = this.listIterator_1(index_0); + try { + old = iter.next_1(); + iter.set_1(element); + return old; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't set element " + index_0)); + } + else + throw toJs($e0); + } +} +; +var Ljava_util_AbstractSequentialList_2_classLit = createForClass('java.util', 'AbstractSequentialList', 1964); +function $listIterator_0(this$static, index_0){ + return new LinkedListMultimap$ValueForKeyIterator_0(this$static.this$01, this$static.val$key2, index_0); +} + +function LinkedListMultimap$1(this$0, val$key){ + this.this$01 = this$0; + this.val$key2 = val$key; +} + +defineClass(636, 1964, $intern_37, LinkedListMultimap$1); +_.listIterator_1 = function listIterator_6(index_0){ + return $listIterator_0(this, index_0); +} +; +_.size_1 = function size_27(){ + var keyList; + keyList = castTo($get_10(this.this$01.keyToKeyList, this.val$key2), 283); + return !keyList?0:keyList.count; +} +; +var Lcom_google_common_collect_LinkedListMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1', 636); +function LinkedListMultimap$1KeySetImpl(this$0){ + this.this$01 = this$0; +} + +defineClass(1297, 1970, $intern_10, LinkedListMultimap$1KeySetImpl); +_.contains = function contains_21(key){ + return $containsKey_1(this.this$01, key); +} +; +_.iterator_0 = function iterator_35(){ + return new LinkedListMultimap$DistinctKeyIterator(this.this$01); +} +; +_.remove_1 = function remove_38(o){ + return !$removeAll_2(this.this$01, o).list.isEmpty(); +} +; +_.size_1 = function size_28(){ + return $size_2(this.this$01.keyToKeyList); +} +; +var Lcom_google_common_collect_LinkedListMultimap$1KeySetImpl_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1KeySetImpl', 1297); +function $checkForConcurrentModification(this$static){ + if (this$static.this$01.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function LinkedListMultimap$DistinctKeyIterator(this$0){ + this.this$01 = this$0; + this.seenKeys = new HashSet_0(capacity_0($keySet(this.this$01).size_1())); + this.next_0 = this.this$01.head; + this.expectedModCount = this.this$01.modCount; +} + +defineClass(1296, 1, $intern_6, LinkedListMultimap$DistinctKeyIterator); +_.forEachRemaining = function forEachRemaining_13(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_15(){ + $checkForConcurrentModification(this); + return !!this.next_0; +} +; +_.next_1 = function next_16(){ + $checkForConcurrentModification(this); + checkElement(this.next_0); + this.current = this.next_0; + $add_6(this.seenKeys, this.current.key); + do { + this.next_0 = this.next_0.next_0; + } + while (!!this.next_0 && !$add_6(this.seenKeys, this.next_0.key)); + return this.current.key; +} +; +_.remove = function remove_39(){ + $checkForConcurrentModification(this); + checkState_0(!!this.current); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this.this$01, this.current.key)); + this.current = null; + this.expectedModCount = this.this$01.modCount; +} +; +_.expectedModCount = 0; +var Lcom_google_common_collect_LinkedListMultimap$DistinctKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/DistinctKeyIterator', 1296); +function LinkedListMultimap$KeyList(firstNode){ + this.head = firstNode; + this.tail = firstNode; + firstNode.previousSibling = null; + firstNode.nextSibling = null; + this.count = 1; +} + +defineClass(283, 1, {283:1}, LinkedListMultimap$KeyList); +_.count = 0; +var Lcom_google_common_collect_LinkedListMultimap$KeyList_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/KeyList', 283); +function LinkedListMultimap$Node(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(1295, 345, $intern_15, LinkedListMultimap$Node); +_.getKey = function getKey_3(){ + return this.key; +} +; +_.getValue = function getValue_5(){ + return this.value_0; +} +; +_.setValue = function setValue_6(newValue){ + var result; + result = this.value_0; + this.value_0 = newValue; + return result; +} +; +var Lcom_google_common_collect_LinkedListMultimap$Node_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/Node', 1295); +function $next_2(this$static){ + checkElement(this$static.next_0); + this$static.previous = this$static.current = this$static.next_0; + this$static.next_0 = this$static.next_0.nextSibling; + ++this$static.nextIndex; + return this$static.current.value_0; +} + +function $previous(this$static){ + checkElement(this$static.previous); + this$static.next_0 = this$static.current = this$static.previous; + this$static.previous = this$static.previous.previousSibling; + --this$static.nextIndex; + return this$static.current.value_0; +} + +function LinkedListMultimap$ValueForKeyIterator(this$0, key){ + var keyList; + this.this$01 = this$0; + this.key = key; + keyList = castTo($get_10(this$0.keyToKeyList, key), 283); + this.next_0 = !keyList?null:keyList.head; +} + +function LinkedListMultimap$ValueForKeyIterator_0(this$0, key, index_0){ + var keyList, size_0; + this.this$01 = this$0; + keyList = castTo($get_10(this$0.keyToKeyList, key), 283); + size_0 = !keyList?0:keyList.count; + checkPositionIndex(index_0, size_0); + if (index_0 >= (size_0 / 2 | 0)) { + this.previous = !keyList?null:keyList.tail; + this.nextIndex = size_0; + while (index_0++ < size_0) { + $previous(this); + } + } + else { + this.next_0 = !keyList?null:keyList.head; + while (index_0-- > 0) { + $next_2(this); + } + } + this.key = key; + this.current = null; +} + +defineClass(560, 1, $intern_14, LinkedListMultimap$ValueForKeyIterator, LinkedListMultimap$ValueForKeyIterator_0); +_.forEachRemaining = function forEachRemaining_14(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_14(value_0){ + this.previous = $addNode(this.this$01, this.key, value_0, this.next_0); + ++this.nextIndex; + this.current = null; +} +; +_.hasNext_0 = function hasNext_16(){ + return !!this.next_0; +} +; +_.hasPrevious = function hasPrevious_1(){ + return !!this.previous; +} +; +_.next_1 = function next_17(){ + return $next_2(this); +} +; +_.nextIndex_0 = function nextIndex_2(){ + return this.nextIndex; +} +; +_.previous_0 = function previous_2(){ + return $previous(this); +} +; +_.previousIndex = function previousIndex_1(){ + return this.nextIndex - 1; +} +; +_.remove = function remove_40(){ + checkState_0(!!this.current); + if (this.current != this.next_0) { + this.previous = this.current.previousSibling; + --this.nextIndex; + } + else { + this.next_0 = this.current.nextSibling; + } + $removeNode(this.this$01, this.current); + this.current = null; +} +; +_.set_1 = function set_7(value_0){ + checkState(!!this.current); + this.current.value_0 = value_0; +} +; +_.nextIndex = 0; +var Lcom_google_common_collect_LinkedListMultimap$ValueForKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/ValueForKeyIterator', 560); +function computeArrayListCapacity(arraySize){ + checkNonnegative(arraySize, 'arraySize'); + return saturatedCast(add_20(add_20(5, arraySize), arraySize / 10 | 0)); +} + +function equalsImpl(thisList, other){ + var i, otherList, size_0; + if (maskUndefined(other) === maskUndefined(checkNotNull(thisList))) { + return true; + } + if (!instanceOf(other, 15)) { + return false; + } + otherList = castTo(other, 15); + size_0 = thisList.size_1(); + if (size_0 != otherList.size_1()) { + return false; + } + if (instanceOf(otherList, 54)) { + for (i = 0; i < size_0; i++) { + if (!equal(thisList.get_0(i), otherList.get_0(i))) { + return false; + } + } + return true; + } + else { + return elementsEqual(thisList.iterator_0(), otherList.iterator_0()); + } +} + +function hashCodeImpl(list){ + var hashCode, o, o$iterator; + hashCode = 1; + for (o$iterator = list.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + hashCode = 31 * hashCode + (o == null?0:hashCode__I__devirtual$(o)); + hashCode = ~~hashCode; + } + return hashCode; +} + +function indexOfRandomAccess(list, element){ + var i, size_0; + size_0 = list.size_1(); + if (element == null) { + for (i = 0; i < size_0; i++) { + if (list.get_0(i) == null) { + return i; + } + } + } + else { + for (i = 0; i < size_0; i++) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, list.get_0(i))) { + return i; + } + } + } + return -1; +} + +function newArrayList(elements){ + checkNotNull(elements); + return instanceOf(elements, 14)?new ArrayList_1(castTo(elements, 14)):newArrayList_0(elements.iterator_0()); +} + +function newArrayList_0(elements){ + var list; + list = new ArrayList; + addAll_7(list, elements); + return list; +} + +function newArrayList_1(elements){ + var capacity, list; + checkNotNull(elements); + capacity = computeArrayListCapacity(elements.length); + list = new ArrayList_0(capacity); + addAll_15(list, elements); + return list; +} + +function newArrayListWithCapacity(initialArraySize){ + checkNonnegative(initialArraySize, 'initialArraySize'); + return new ArrayList_0(initialArraySize); +} + +function newArrayListWithExpectedSize(estimatedSize){ + return new ArrayList_0((checkNonnegative(estimatedSize, 'arraySize') , saturatedCast(add_20(add_20(5, estimatedSize), estimatedSize / 10 | 0)))); +} + +function newLinkedList(elements){ + var list; + list = new LinkedList; + addAll_6(list, elements); + return list; +} + +function reverse_0(list){ + return instanceOf(list, 152)?$reverse(castTo(list, 152)):instanceOf(list, 131)?castTo(list, 131).forwardList:instanceOf(list, 54)?new Lists$RandomAccessReverseList(list):new Lists$ReverseList(list); +} + +defineClass(1018, 52, $intern_37); +_.add_3 = function add_15(index_0, element){ + this.backingList.add_3(index_0, element); +} +; +_.addAll_0 = function addAll_10(index_0, c){ + return this.backingList.addAll_0(index_0, c); +} +; +_.contains = function contains_22(o){ + return this.backingList.contains(o); +} +; +_.get_0 = function get_27(index_0){ + return this.backingList.get_0(index_0); +} +; +_.remove_2 = function remove_41(index_0){ + return this.backingList.remove_2(index_0); +} +; +_.set_2 = function set_8(index_0, element){ + return this.backingList.set_2(index_0, element); +} +; +_.size_1 = function size_29(){ + return this.backingList.size_1(); +} +; +var Lcom_google_common_collect_Lists$AbstractListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/AbstractListWrapper', 1018); +defineClass(1019, 1018, $intern_38); +var Lcom_google_common_collect_Lists$RandomAccessListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessListWrapper', 1019); +function Lists$1($anonymous0){ + this.backingList = castTo(checkNotNull($anonymous0), 15); +} + +defineClass(1021, 1019, $intern_38, Lists$1); +_.listIterator_1 = function listIterator_7(index_0){ + return this.backingList.listIterator_1(index_0); +} +; +var Lcom_google_common_collect_Lists$1_2_classLit = createForClass('com.google.common.collect', 'Lists/1', 1021); +function $listIterator_1(this$static, index_0){ + var forwardIterator, start_0; + start_0 = $reversePosition(this$static, index_0); + forwardIterator = this$static.forwardList.listIterator_1(start_0); + return new Lists$ReverseList$1(this$static, forwardIterator); +} + +function $reverseIndex(this$static, index_0){ + var size_0; + size_0 = this$static.forwardList.size_1(); + checkElementIndex(index_0, size_0); + return size_0 - 1 - index_0; +} + +function $reversePosition(this$static, index_0){ + var size_0; + size_0 = this$static.forwardList.size_1(); + checkPositionIndex(index_0, size_0); + return size_0 - index_0; +} + +function Lists$ReverseList(forwardList){ + this.forwardList = castTo(checkNotNull(forwardList), 15); +} + +defineClass(131, 52, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Lists$ReverseList); +_.add_3 = function add_16(index_0, element){ + this.forwardList.add_3($reversePosition(this, index_0), element); +} +; +_.clear_0 = function clear_25(){ + this.forwardList.clear_0(); +} +; +_.get_0 = function get_28(index_0){ + return this.forwardList.get_0($reverseIndex(this, index_0)); +} +; +_.iterator_0 = function iterator_36(){ + return $listIterator_1(this, 0); +} +; +_.listIterator_1 = function listIterator_8(index_0){ + return $listIterator_1(this, index_0); +} +; +_.remove_2 = function remove_42(index_0){ + return this.forwardList.remove_2($reverseIndex(this, index_0)); +} +; +_.removeRange = function removeRange_0(fromIndex, toIndex){ + (checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex)))).clear_0(); +} +; +_.set_2 = function set_9(index_0, element){ + return this.forwardList.set_2($reverseIndex(this, index_0), element); +} +; +_.size_1 = function size_30(){ + return this.forwardList.size_1(); +} +; +_.subList = function subList_6(fromIndex, toIndex){ + return checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex))); +} +; +var Lcom_google_common_collect_Lists$ReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList', 131); +function Lists$RandomAccessReverseList(forwardList){ + Lists$ReverseList.call(this, forwardList); +} + +defineClass(280, 131, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, Lists$RandomAccessReverseList); +var Lcom_google_common_collect_Lists$RandomAccessReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessReverseList', 280); +function $next_3(this$static){ + if (!this$static.val$forwardIterator2.hasPrevious()) { + throw toJs(new NoSuchElementException); + } + this$static.canRemoveOrSet = true; + return this$static.val$forwardIterator2.previous_0(); +} + +function Lists$ReverseList$1(this$1, val$forwardIterator){ + this.this$11 = this$1; + this.val$forwardIterator2 = val$forwardIterator; +} + +defineClass(1020, 1, $intern_14, Lists$ReverseList$1); +_.forEachRemaining = function forEachRemaining_15(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_17(e){ + this.val$forwardIterator2.add_1(e); + this.val$forwardIterator2.previous_0(); + this.canRemoveOrSet = false; +} +; +_.hasNext_0 = function hasNext_17(){ + return this.val$forwardIterator2.hasPrevious(); +} +; +_.hasPrevious = function hasPrevious_2(){ + return this.val$forwardIterator2.hasNext_0(); +} +; +_.next_1 = function next_18(){ + return $next_3(this); +} +; +_.nextIndex_0 = function nextIndex_3(){ + return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()); +} +; +_.previous_0 = function previous_3(){ + if (!this.val$forwardIterator2.hasNext_0()) { + throw toJs(new NoSuchElementException); + } + this.canRemoveOrSet = true; + return this.val$forwardIterator2.next_1(); +} +; +_.previousIndex = function previousIndex_2(){ + return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()) - 1; +} +; +_.remove = function remove_43(){ + checkState_0(this.canRemoveOrSet); + this.val$forwardIterator2.remove(); + this.canRemoveOrSet = false; +} +; +_.set_1 = function set_10(e){ + checkState(this.canRemoveOrSet); + this.val$forwardIterator2.set_1(e); +} +; +_.canRemoveOrSet = false; +var Lcom_google_common_collect_Lists$ReverseList$1_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList/1', 1020); +function asMapEntryIterator(set_0, function_0){ + return new Maps$3(set_0.iterator_0(), function_0); +} + +function capacity_0(expectedSize){ + if (expectedSize < 3) { + checkNonnegative(expectedSize, 'expectedSize'); + return expectedSize + 1; + } + if (expectedSize < $intern_35) { + return round_int(expectedSize / 0.75 + 1); + } + return $intern_0; +} + +function equalsImpl_0(map_0, object){ + var o; + if (map_0 === object) { + return true; + } + else if (instanceOf(object, 83)) { + o = castTo(object, 83); + return equalsImpl_3($entrySet_1(map_0), o.entrySet_0()); + } + return false; +} + +function indexMap(list){ + var builder, e, e$iterator, i; + builder = new ImmutableMap$Builder(list.delegateList_0().size_1()); + i = 0; + for (e$iterator = unmodifiableIterator(list.delegateList_0().iterator_0()); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $put_4(builder, e, valueOf_4(i++)); + } + return fromEntryList(builder.entries_0); +} + +function keyOrNull(entry){ + return !entry?null:entry.key; +} + +function safeContainsKey(map_0, key){ + checkNotNull(map_0); + try { + return map_0.containsKey(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function safeGet(map_0, key){ + checkNotNull(map_0); + try { + return map_0.get_3(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return null; + } + else + throw toJs($e0); + } +} + +function safeRemove_0(map_0, key){ + checkNotNull(map_0); + try { + return map_0.remove_0(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return null; + } + else + throw toJs($e0); + } +} + +function toStringImpl(map_0){ + var entry, entry$iterator, first, sb; + sb = $append_5((checkNonnegative(map_0.size_1(), 'size') , new StringBuilder_0), 123); + first = true; + for (entry$iterator = $entrySet_1(map_0).iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + first || (sb.string += ', ' , sb); + first = false; + $append_10($append_5($append_10(sb, entry.getKey()), 61), entry.getValue()); + } + return (sb.string += '}' , sb).string; +} + +function valueOrNull(entry){ + return !entry?null:entry.value_0; +} + +function $transform(entry){ + return castTo(entry, 42).getKey(); +} + +function Maps$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(432, 487, $intern_6, Maps$1); +_.transform_0 = function transform_4(entry){ + return $transform(entry); +} +; +var Lcom_google_common_collect_Maps$1_2_classLit = createForClass('com.google.common.collect', 'Maps/1', 432); +function Maps$2($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(698, 487, $intern_6, Maps$2); +_.transform_0 = function transform_5(entry){ + return castTo(entry, 42).getValue(); +} +; +var Lcom_google_common_collect_Maps$2_2_classLit = createForClass('com.google.common.collect', 'Maps/2', 698); +function Maps$3($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(962, 487, $intern_6, Maps$3); +_.transform_0 = function transform_6(key){ + return new ImmutableEntry(key, $apply_0(this.val$function2, key)); +} +; +var Lcom_google_common_collect_Maps$3_2_classLit = createForClass('com.google.common.collect', 'Maps/3', 962); +function Maps$IteratorBasedAbstractMap$1(this$1){ + this.this$11 = this$1; +} + +defineClass(959, 1971, $intern_10, Maps$IteratorBasedAbstractMap$1); +_.forEach_0 = function forEach_13(action){ + $forEachEntry_0(this.this$11, action); +} +; +_.iterator_0 = function iterator_37(){ + return this.this$11.entryIterator(); +} +; +_.map_1 = function map_3(){ + return this.this$11; +} +; +_.spliterator_0 = function spliterator_24(){ + return this.this$11.entrySpliterator(); +} +; +var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap$1_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap/1', 959); +function Maps$KeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(960, 1, {}, Maps$KeySet$lambda$0$Type); +_.accept_1 = function accept_10(arg0, arg1){ + this.action_0.accept(arg0); +} +; +var Lcom_google_common_collect_Maps$KeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet/lambda$0$Type', 960); +function Maps$Values(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 83); +} + +defineClass(958, 28, $intern_8, Maps$Values); +_.clear_0 = function clear_26(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_23(o){ + return this.map_0.containsValue(o); +} +; +_.forEach_0 = function forEach_14(action){ + checkNotNull(action); + this.map_0.forEach(new Maps$Values$lambda$0$Type(action)); +} +; +_.isEmpty = function isEmpty_15(){ + return this.map_0.isEmpty(); +} +; +_.iterator_0 = function iterator_38(){ + return new Maps$2(this.map_0.entrySet_0().iterator_0()); +} +; +_.remove_1 = function remove_44(o){ + var entry, entry$iterator; + try { + return $advanceToFind(this, o, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 41)) { + for (entry$iterator = this.map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if (equal(o, entry.getValue())) { + this.map_0.remove_0(entry.getKey()); + return true; + } + } + return false; + } + else + throw toJs($e0); + } +} +; +_.size_1 = function size_31(){ + return this.map_0.size_1(); +} +; +var Lcom_google_common_collect_Maps$Values_2_classLit = createForClass('com.google.common.collect', 'Maps/Values', 958); +function Maps$Values$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(961, 1, {}, Maps$Values$lambda$0$Type); +_.accept_1 = function accept_11(arg0, arg1){ + this.action_0.accept(arg1); +} +; +var Lcom_google_common_collect_Maps$Values$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/Values/lambda$0$Type', 961); +function equalsImpl_1(multimap, object){ + var that; + if (object === multimap) { + return true; + } + if (instanceOf(object, 224)) { + that = castTo(object, 224); + return equals_Ljava_lang_Object__Z__devirtual$(multimap.asMap_0(), that.asMap_0()); + } + return false; +} + +function $removeValuesForKey_0(this$static, key){ + this$static.multimap.keySet_0().remove_1(key); +} + +function Multimaps$AsMap(multimap){ + this.multimap = castTo(checkNotNull(multimap), 224); +} + +defineClass(736, 1987, $intern_7, Multimaps$AsMap); +_.get_3 = function get_29(key){ + return this.multimap.containsKey(key)?this.multimap.get_1(key):null; +} +; +_.remove_0 = function remove_45(key){ + return this.multimap.containsKey(key)?this.multimap.removeAll(key):null; +} +; +_.clear_0 = function clear_27(){ + this.multimap.clear_0(); +} +; +_.containsKey = function containsKey_8(key){ + return this.multimap.containsKey(key); +} +; +_.createEntrySet_0 = function createEntrySet_1(){ + return new Multimaps$AsMap$EntrySet(this); +} +; +_.createEntrySet = function(){ + return this.createEntrySet_0(); +} +; +_.isEmpty = function isEmpty_16(){ + return this.multimap.isEmpty(); +} +; +_.keySet_0 = function keySet_13(){ + return this.multimap.keySet_0(); +} +; +_.size_1 = function size_32(){ + return this.multimap.keySet_0().size_1(); +} +; +var Lcom_google_common_collect_Multimaps$AsMap_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap', 736); +function Multimaps$AsMap$EntrySet(this$1){ + this.this$11 = this$1; +} + +defineClass(1104, 1971, $intern_10, Multimaps$AsMap$EntrySet); +_.iterator_0 = function iterator_39(){ + return asMapEntryIterator(this.this$11.multimap.keySet_0(), new Multimaps$AsMap$EntrySet$1(this)); +} +; +_.map_1 = function map_4(){ + return this.this$11; +} +; +_.remove_1 = function remove_46(o){ + var entry; + if (!$contains(this, o)) { + return false; + } + entry = castTo(o, 42); + $removeValuesForKey_0(this.this$11, entry.getKey()); + return true; +} +; +var Lcom_google_common_collect_Multimaps$AsMap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet', 1104); +function $apply_0(this$static, key){ + return this$static.this$21.this$11.multimap.get_1(key); +} + +function Multimaps$AsMap$EntrySet$1(this$2){ + this.this$21 = this$2; +} + +defineClass(1108, 1, {}, Multimaps$AsMap$EntrySet$1); +_.apply_0 = function apply_14(key){ + return $apply_0(this, key); +} +; +_.equals_0 = function equals_27(other){ + return this === other; +} +; +var Lcom_google_common_collect_Multimaps$AsMap$EntrySet$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet/1', 1108); +function $count(this$static, element){ + var values; + values = castTo(safeGet($asMap(this$static.multimap), element), 14); + return !values?0:values.size_1(); +} + +function $remove_5(this$static, element, occurrences){ + var i, iterator, oldCount, values, values0; + checkNonnegative(occurrences, 'occurrences'); + if (occurrences == 0) { + return values0 = castTo(safeGet($asMap(this$static.multimap), element), 14) , !values0?0:values0.size_1(); + } + values = castTo(safeGet($asMap(this$static.multimap), element), 14); + if (!values) { + return 0; + } + oldCount = values.size_1(); + if (occurrences >= oldCount) { + values.clear_0(); + } + else { + iterator = values.iterator_0(); + for (i = 0; i < occurrences; i++) { + iterator.next_1(); + iterator.remove(); + } + } + return oldCount; +} + +function Multimaps$Keys(multimap){ + this.multimap = multimap; +} + +defineClass(543, 1989, {543:1, 835:1, 20:1, 28:1, 14:1}, Multimaps$Keys); +_.clear_0 = function clear_28(){ + $clear(this.multimap); +} +; +_.contains = function contains_24(element){ + return $containsKey(this.multimap, element); +} +; +_.forEach_0 = function forEach_15(consumer){ + checkNotNull(consumer); + $forEach_0($entries(this.multimap), new Multimaps$Keys$lambda$1$Type(consumer)); +} +; +_.iterator_0 = function iterator_40(){ + return new Maps$1($entries(this.multimap).this$01.entryIterator()); +} +; +_.size_1 = function size_33(){ + return this.multimap.totalSize; +} +; +_.spliterator_0 = function spliterator_25(){ + return map_2($entries(this.multimap).spliterator_0(), new Multimaps$Keys$0methodref$getKey$Type); +} +; +var Lcom_google_common_collect_Multimaps$Keys_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys', 543); +function Multimaps$Keys$0methodref$getKey$Type(){ +} + +defineClass(1106, 1, {}, Multimaps$Keys$0methodref$getKey$Type); +_.apply_0 = function apply_15(arg0){ + return castTo(arg0, 42).getKey(); +} +; +var Lcom_google_common_collect_Multimaps$Keys$0methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/0methodref$getKey$Type', 1106); +function Multimaps$Keys$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1105, 487, $intern_6, Multimaps$Keys$1); +_.transform_0 = function transform_7(backingEntry){ + return new Multimaps$Keys$1$1(castTo(backingEntry, 42)); +} +; +var Lcom_google_common_collect_Multimaps$Keys$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1', 1105); +defineClass(1990, 1, {416:1}); +_.equals_0 = function equals_28(object){ + var that; + if (instanceOf(object, 492)) { + that = castTo(object, 416); + return castTo(this.val$backingEntry2.getValue(), 14).size_1() == castTo(that.val$backingEntry2.getValue(), 14).size_1() && equal(this.val$backingEntry2.getKey(), that.val$backingEntry2.getKey()); + } + return false; +} +; +_.hashCode_1 = function hashCode_28(){ + var e; + e = this.val$backingEntry2.getKey(); + return (e == null?0:hashCode__I__devirtual$(e)) ^ castTo(this.val$backingEntry2.getValue(), 14).size_1(); +} +; +_.toString_0 = function toString_27(){ + var n, text_0; + text_0 = valueOf_7(this.val$backingEntry2.getKey()); + n = castTo(this.val$backingEntry2.getValue(), 14).size_1(); + return n == 1?text_0:text_0 + ' x ' + n; +} +; +var Lcom_google_common_collect_Multisets$AbstractEntry_2_classLit = createForClass('com.google.common.collect', 'Multisets/AbstractEntry', 1990); +function Multimaps$Keys$1$1(val$backingEntry){ + this.val$backingEntry2 = val$backingEntry; +} + +defineClass(492, 1990, {492:1, 416:1}, Multimaps$Keys$1$1); +var Lcom_google_common_collect_Multimaps$Keys$1$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1/1', 492); +function Multimaps$Keys$lambda$1$Type(consumer_0){ + this.consumer_0 = consumer_0; +} + +defineClass(1107, 1, $intern_19, Multimaps$Keys$lambda$1$Type); +_.accept = function accept_12(arg0){ + this.consumer_0.accept(castTo(arg0, 42).getKey()); +} +; +var Lcom_google_common_collect_Multimaps$Keys$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/lambda$1$Type', 1107); +function Multiset$lambda$0$Type(){ +} + +defineClass(1110, 1, $intern_19, Multiset$lambda$0$Type); +_.accept = function accept_13(arg0){ + lambda$0_1(castTo(arg0, 416)); +} +; +var Lcom_google_common_collect_Multiset$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$0$Type', 1110); +function Multiset$lambda$1$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(737, 1, $intern_19, Multiset$lambda$1$Type); +_.accept = function accept_14(arg0){ + lambda$1_1(this.action_0, castTo(arg0, 416)); +} +; +var Lcom_google_common_collect_Multiset$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$1$Type', 737); +function addAllImpl(elements){ + if ($entrySet_0(elements).isEmpty()) { + return false; + } + $forEachEntry(elements, new Multisets$0methodref$add$Type); + return true; +} + +function equalsImpl_2(multiset, object){ + var entry, entry$iterator, that; + if (object === multiset) { + return true; + } + if (instanceOf(object, 543)) { + that = castTo(object, 835); + if (multiset.multimap.totalSize != that.multimap.totalSize || $entrySet_0(multiset).size_1() != $entrySet_0(that).size_1()) { + return false; + } + for (entry$iterator = $entrySet_0(that).iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 416); + if ($count(multiset, entry.val$backingEntry2.getKey()) != castTo(entry.val$backingEntry2.getValue(), 14).size_1()) { + return false; + } + } + return true; + } + return false; +} + +function lambda$3(entry_0){ + return new Spliterators$IteratorSpliterator(nCopies(castTo(entry_0.val$backingEntry2.getValue(), 14).size_1(), entry_0.val$backingEntry2.getKey()), 16); +} + +function setCountImpl(self_0, element, oldCount){ + var values, oldCount_0, values_0, delta; + checkNonnegative(oldCount, 'oldCount'); + checkNonnegative(0, 'newCount'); + values = castTo(safeGet($asMap(self_0.multimap), element), 14); + if ((!values?0:values.size_1()) == oldCount) { + checkNonnegative(0, 'count'); + oldCount_0 = (values_0 = castTo(safeGet($asMap(self_0.multimap), element), 14) , !values_0?0:values_0.size_1()); + delta = -oldCount_0; + delta > 0?$add():delta < 0 && $remove_5(self_0, element, -delta); + return true; + } + else { + return false; + } +} + +function Multisets$0methodref$add$Type(){ +} + +defineClass(1111, 1, {}, Multisets$0methodref$add$Type); +var Lcom_google_common_collect_Multisets$0methodref$add$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/0methodref$add$Type', 1111); +function Multisets$lambda$3$Type(){ +} + +defineClass(738, 1, {}, Multisets$lambda$3$Type); +_.apply_0 = function apply_16(arg0){ + return lambda$3(castTo(arg0, 416)); +} +; +var Lcom_google_common_collect_Multisets$lambda$3$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/lambda$3$Type', 738); +defineClass(2008, 1, $intern_1); +var Lcom_google_common_collect_RangeGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'RangeGwtSerializationDependencies', 2008); +function $clinit_Range(){ + $clinit_Range = emptyMethod; + new Range_0(($clinit_Cut$BelowAll() , INSTANCE_1), ($clinit_Cut$AboveAll() , INSTANCE_0)); +} + +function $apply_1(this$static, input_0){ + return checkNotNull(input_0) , this$static.lowerBound.isLessThan(input_0) && !this$static.upperBound.isLessThan(input_0); +} + +function Range_0(lowerBound, upperBound){ + this.lowerBound = castTo(checkNotNull(lowerBound), 245); + this.upperBound = castTo(checkNotNull(upperBound), 245); + if (lowerBound.compareTo(upperBound) > 0 || lowerBound == ($clinit_Cut$AboveAll() , INSTANCE_0) || upperBound == ($clinit_Cut$BelowAll() , INSTANCE_1)) { + throw toJs(new IllegalArgumentException_0('Invalid range: ' + toString_29(lowerBound, upperBound))); + } +} + +function closed_0(lower, upper){ + $clinit_Range(); + return new Range_0(new Cut$BelowValue(lower), new Cut$AboveValue(upper)); +} + +function toString_29(lowerBound, upperBound){ + var sb; + sb = new StringBuilder_0; + lowerBound.describeAsLowerBound(sb); + sb.string += '..'; + upperBound.describeAsUpperBound(sb); + return sb.string; +} + +defineClass(514, 2008, {169:1, 514:1, 3:1, 45:1}, Range_0); +_.apply_1 = function apply_17(input_0){ + return $apply_1(this, castTo(input_0, 35)); +} +; +_.test_0 = function test_1(input_0){ + return $apply_1(this, castTo(input_0, 35)); +} +; +_.equals_0 = function equals_29(object){ + var other; + if (instanceOf(object, 514)) { + other = castTo(object, 514); + return $equals_1(this.lowerBound, other.lowerBound) && $equals_1(this.upperBound, other.upperBound); + } + return false; +} +; +_.hashCode_1 = function hashCode_29(){ + return this.lowerBound.hashCode_1() * 31 + this.upperBound.hashCode_1(); +} +; +_.toString_0 = function toString_28(){ + return toString_29(this.lowerBound, this.upperBound); +} +; +var Lcom_google_common_collect_Range_2_classLit = createForClass('com.google.common.collect', 'Range', 514); +function RegularImmutableAsList(delegate, delegateList){ + this.delegate = delegate; + this.delegateList = delegateList; +} + +function RegularImmutableAsList_0(delegate, array){ + $clinit_ImmutableList(); + RegularImmutableAsList.call(this, delegate, unsafeDelegateList(new Arrays$ArrayList(array))); +} + +defineClass(778, 1999, $intern_26, RegularImmutableAsList_0); +_.listIterator_1 = function listIterator_10(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +_.delegateCollection = function delegateCollection_0(){ + return this.delegate; +} +; +_.get_0 = function get_30(index_0){ + return $get_2(this.delegateList, index_0); +} +; +_.listIterator_2 = function listIterator_9(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +var Lcom_google_common_collect_RegularImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableAsList', 778); +function RegularImmutableList(delegate){ + this.delegate = ($clinit_Collections() , instanceOf(delegate, 54)?new Collections$UnmodifiableRandomAccessList(delegate):new Collections$UnmodifiableList(delegate)); +} + +defineClass(646, 2006, $intern_26, RegularImmutableList); +_.delegateList_0 = function delegateList_0(){ + return this.delegate; +} +; +var Lcom_google_common_collect_RegularImmutableList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableList', 646); +function RegularImmutableMap(entries){ + ForwardingImmutableMap.call(this, entries); +} + +defineClass(616, 715, $intern_28, RegularImmutableMap); +var Lcom_google_common_collect_RegularImmutableMap_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableMap', 616); +function $clinit_RegularImmutableSet(){ + $clinit_RegularImmutableSet = emptyMethod; + $clinit_ImmutableCollection(); + EMPTY_2 = new RegularImmutableSet(($clinit_Collections() , $clinit_Collections() , EMPTY_SET)); +} + +function RegularImmutableSet(delegate){ + $clinit_RegularImmutableSet(); + ForwardingImmutableSet.call(this, delegate); +} + +defineClass(716, 703, $intern_30, RegularImmutableSet); +var EMPTY_2; +var Lcom_google_common_collect_RegularImmutableSet_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableSet', 716); +function equalsImpl_3(s, object){ + var o; + if (maskUndefined(s) === maskUndefined(object)) { + return true; + } + if (instanceOf(object, 21)) { + o = castTo(object, 21); + try { + return s.size_1() == o.size_1() && s.containsAll(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 173) || instanceOf($e0, 205)) { + return false; + } + else + throw toJs($e0); + } + } + return false; +} + +function hashCodeImpl_0(s){ + var hashCode, o, o$iterator; + hashCode = 0; + for (o$iterator = s.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + hashCode += o != null?hashCode__I__devirtual$(o):0; + hashCode = ~~hashCode; + } + return hashCode; +} + +function intersection_0(set1, set2){ + checkNotNull_0(set1, 'set1'); + checkNotNull_0(set2, 'set2'); + return new Sets$2(set1, set2); +} + +function newHashSet(elements){ + return instanceOf(elements, 14)?new HashSet_1(castTo(elements, 14)):newHashSet_0(elements.iterator_0()); +} + +function newHashSet_0(elements){ + var set_0; + set_0 = new HashSet; + addAll_7(set_0, elements); + return set_0; +} + +function newHashSet_1(elements){ + var set_0; + set_0 = new HashSet_0(capacity_0(elements.length)); + addAll_15(set_0, elements); + return set_0; +} + +function newLinkedHashSet(elements){ + var set_0; + if (elements) { + return new LinkedHashSet_1(elements); + } + set_0 = new LinkedHashSet; + addAll_6(set_0, elements); + return set_0; +} + +function newTreeSet(elements){ + var set_0; + set_0 = new TreeSet; + addAll_6(set_0, elements); + return set_0; +} + +function unmodifiableNavigableSet(set_0){ + if (instanceOf(set_0, 607)) { + return set_0; + } + return new Sets$UnmodifiableNavigableSet(set_0); +} + +defineClass(1976, $intern_9, $intern_10); +_.iterator_0 = function iterator_41(){ + return new Sets$2$1(this.val$set11, this.val$set22); +} +; +_.add_2 = function add_18(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_11(newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_29(){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_47(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_Sets$SetView_2_classLit = createForClass('com.google.common.collect', 'Sets/SetView', 1976); +function $size_1(this$static){ + var e, e$iterator, size_0; + size_0 = 0; + for (e$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this$static.val$set11); e$iterator.i < e$iterator.this$11.all.length;) { + e = $next_8(e$iterator); + this$static.val$set22.contains(e) && ++size_0; + } + return size_0; +} + +function Sets$2(val$set1, val$set2){ + this.val$set11 = val$set1; + this.val$set22 = val$set2; +} + +defineClass(963, 1976, $intern_10, Sets$2); +_.iterator_0 = function iterator_42(){ + return new Sets$2$1(this.val$set11, this.val$set22); +} +; +_.contains = function contains_25(object){ + return $contains_5(this.val$set11, object) && this.val$set22.contains(object); +} +; +_.containsAll = function containsAll_6(collection){ + return $containsAll(this.val$set11, collection) && this.val$set22.containsAll(collection); +} +; +_.isEmpty = function isEmpty_17(){ + return disjoint(this.val$set22, this.val$set11); +} +; +_.parallelStream = function parallelStream_1(){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$5methodref$contains$Type(this.val$set22)); +} +; +_.size_1 = function size_34(){ + return $size_1(this); +} +; +_.stream = function stream_2(){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$4methodref$contains$Type(this.val$set22)); +} +; +var Lcom_google_common_collect_Sets$2_2_classLit = createForClass('com.google.common.collect', 'Sets/2', 963); +function Sets$2$1(val$set1, val$set2){ + this.val$set12 = val$set1; + this.val$set23 = val$set2; + this.itr = new EnumSet$EnumSetImpl$IteratorImpl(this.val$set12); +} + +defineClass(700, 699, $intern_3, Sets$2$1); +_.computeNext = function computeNext_0(){ + var e; + while ($hasNext_4(this.itr)) { + e = $next_8(this.itr); + if (this.val$set23.contains(e)) { + return e; + } + } + return this.state = 2 , null; +} +; +var Lcom_google_common_collect_Sets$2$1_2_classLit = createForClass('com.google.common.collect', 'Sets/2/1', 700); +function Sets$2$4methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(964, 1, $intern_39, Sets$2$4methodref$contains$Type); +_.test_0 = function test_2(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$4methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/4methodref$contains$Type', 964); +function Sets$2$5methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(965, 1, $intern_39, Sets$2$5methodref$contains$Type); +_.test_0 = function test_3(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$5methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/5methodref$contains$Type', 965); +function Sets$UnmodifiableNavigableSet(delegate){ + this.delegate = castTo(checkNotNull(delegate), 271); + this.unmodifiableDelegate = ($clinit_Collections() , new Collections$UnmodifiableSortedSet(delegate)); +} + +defineClass(607, 1975, {607:1, 3:1, 20:1, 14:1, 271:1, 21:1, 84:1}, Sets$UnmodifiableNavigableSet); +_.delegate_0 = function delegate_9(){ + return this.unmodifiableDelegate; +} +; +_.delegate_1 = function delegate_10(){ + return this.unmodifiableDelegate; +} +; +_.delegate_2 = function delegate_11(){ + return this.unmodifiableDelegate; +} +; +_.forEach_0 = function forEach_16(action){ + this.delegate.forEach_0(action); +} +; +_.parallelStream = function parallelStream_2(){ + return this.delegate.parallelStream(); +} +; +_.stream = function stream_3(){ + return this.delegate.stream(); +} +; +var Lcom_google_common_collect_Sets$UnmodifiableNavigableSet_2_classLit = createForClass('com.google.common.collect', 'Sets/UnmodifiableNavigableSet', 607); +function SingletonImmutableBiMap(key, value_0){ + ImmutableBiMap.call(this, singletonMap(checkNotNull(key), checkNotNull(value_0))); + this.singleValue = value_0; +} + +defineClass(1932, 1931, $intern_28, SingletonImmutableBiMap); +_.values_2 = function values_13(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_0 = function values_14(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_1 = function values_15(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +var Lcom_google_common_collect_SingletonImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableBiMap', 1932); +function SingletonImmutableList(element){ + $clinit_ImmutableList(); + this.delegate = ($clinit_Collections() , new Collections$SingletonList(checkNotNull(element))); +} + +defineClass(647, 2006, $intern_26, SingletonImmutableList); +_.delegateList_0 = function delegateList_1(){ + return this.delegate; +} +; +var Lcom_google_common_collect_SingletonImmutableList_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableList', 647); +function SingletonImmutableSet(element){ + $clinit_ImmutableCollection(); + this.element = checkNotNull(element); +} + +defineClass(350, 1981, $intern_30, SingletonImmutableSet); +_.iterator_0 = function iterator_44(){ + return new Iterators$9(this.element); +} +; +_.contains = function contains_26(object){ + return equals_Ljava_lang_Object__Z__devirtual$(this.element, object); +} +; +_.iterator_1 = function iterator_43(){ + return new Iterators$9(this.element); +} +; +_.size_1 = function size_35(){ + return 1; +} +; +var Lcom_google_common_collect_SingletonImmutableSet_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableSet', 350); +function concat_1(streams){ + var characteristics, estimatedSize, isParallel, splitr, splitrsBuilder, stream, stream$array, stream$index, stream$max; + isParallel = false; + characteristics = 336; + estimatedSize = 0; + splitrsBuilder = new ImmutableList$Builder(streams.length); + for (stream$array = streams , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + isParallel = isParallel | ($throwIfTerminated(stream) , false); + splitr = ($terminate(stream) , stream.spliterator); + $add_3(splitrsBuilder.contents, checkNotNull(splitr)); + characteristics &= splitr.characteristics_0(); + estimatedSize = saturatedAdd(estimatedSize, splitr.estimateSize_0()); + } + return castTo(castTo($onClose(new StreamImpl(null, flatMap(new Spliterators$IteratorSpliterator(($clinit_ImmutableList() , copyFromCollection(splitrsBuilder.contents)), 16), new Streams$lambda$0$Type, characteristics, estimatedSize)), new Streams$lambda$1$Type(streams)), 670), 833); +} + +function lambda$1_2(streams_0){ + var stream, stream$array, stream$index, stream$max; + for (stream$array = streams_0 , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + $close(stream); + } +} + +function Streams$lambda$0$Type(){ +} + +defineClass(1115, 1, {}, Streams$lambda$0$Type); +_.apply_0 = function apply_18(arg0){ + return castTo(arg0, 164); +} +; +var Lcom_google_common_collect_Streams$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$0$Type', 1115); +function Streams$lambda$1$Type(streams_0){ + this.streams_0 = streams_0; +} + +defineClass(1116, 1, $intern_40, Streams$lambda$1$Type); +_.run = function run_0(){ + lambda$1_2(this.streams_0); +} +; +var Lcom_google_common_collect_Streams$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$1$Type', 1116); +function equalsImpl_4(table, obj){ + var result, result0, that; + if (obj === table) { + return true; + } + else if (instanceOf(obj, 664)) { + that = castTo(obj, 1947); + return $equals_0((result0 = table.cellSet , !result0?(table.cellSet = new AbstractTable$CellSet(table)):result0), (result = that.cellSet , !result?(that.cellSet = new AbstractTable$CellSet(that)):result)); + } + else { + return false; + } +} + +function TreeMultimap(keyComparator, valueComparator){ + AbstractSortedKeySortedSetMultimap.call(this, new TreeMap_0(keyComparator)); + this.keyComparator = keyComparator; + this.valueComparator = valueComparator; +} + +function create(keyComparator, valueComparator){ + return new TreeMultimap(castTo(checkNotNull(keyComparator), 62), castTo(checkNotNull(valueComparator), 62)); +} + +defineClass(1659, 1658, $intern_5, TreeMultimap); +_.asMap_0 = function asMap_5(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); +} +; +_.createCollection = function createCollection_10(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createCollection_1 = function createCollection_11(){ + return new TreeSet_0(this.valueComparator); +} +; +_.keySet_0 = function keySet_14(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); +} +; +_.createAsMap = function createAsMap_1(){ + return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0); +} +; +_.createCollection_0 = function createCollection_12(key){ + key == null && this.keyComparator.compare_1(key, key); + return new TreeSet_0(this.valueComparator); +} +; +var Lcom_google_common_collect_TreeMultimap_2_classLit = createForClass('com.google.common.collect', 'TreeMultimap', 1659); +function $clinit_DoubleMath(){ + $clinit_DoubleMath = emptyMethod; + $wnd.Math.log(2); +} + +function fuzzyCompare(a, b){ + $clinit_DoubleMath(); + return checkNonNegative($intern_41) , $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b)?0:a < b?-1:a > b?1:compare_0(isNaN(a), isNaN(b)); +} + +function fuzzyEquals(a, b){ + $clinit_DoubleMath(); + checkNonNegative($intern_41); + return $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b); +} + +function saturatedAdd(a, b){ + var naiveSum; + naiveSum = add_20(a, b); + if (lt(xor_0(a, b), 0) | gte_0(xor_0(a, naiveSum), 0)) { + return naiveSum; + } + return add_20($intern_20, xor_0(shru_0(naiveSum, 63), 1)); +} + +function checkNonNegative(x_0){ + if (!(x_0 >= 0)) { + throw toJs(new IllegalArgumentException_0('tolerance (' + x_0 + ') must be >= 0')); + } + return x_0; +} + +function compare_0(a, b){ + return a == b?0:a?1:-1; +} + +function saturatedCast(value_0){ + if (compare_2(value_0, $intern_0) > 0) { + return $intern_0; + } + if (compare_2(value_0, $intern_42) < 0) { + return $intern_42; + } + return toInt_0(value_0); +} + +function $$init_0(this$static){ + this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); +} + +function $addSuppressed(this$static, exception){ + checkCriticalNotNull_0(exception, 'Cannot suppress a null exception.'); + checkCriticalArgument_0(exception != this$static, 'Exception can not suppress itself.'); + if (this$static.disableSuppression) { + return; + } + this$static.suppressedExceptions == null?(this$static.suppressedExceptions = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Throwable_2_classLit, 1), $intern_16, 78, 0, [exception])):(this$static.suppressedExceptions[this$static.suppressedExceptions.length] = exception); +} + +function $fillInStackTrace(this$static){ + if (this$static.writableStackTrace) { + this$static.backingJsObject !== '__noinit__' && this$static.initializeBackingError(); + this$static.stackTrace = null; + } + return this$static; +} + +function $linkBack(this$static, error){ + if (error instanceof Object) { + try { + error.__java$exception = this$static; + if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && $doc.documentMode < 9) { + return; + } + var throwable = this$static; + Object.defineProperties(error, {cause:{get:function(){ + var cause = throwable.getCause(); + return cause && cause.getBackingJsObject(); + } + }, suppressed:{get:function(){ + return throwable.getBackingSuppressed(); + } + }}); + } + catch (ignored) { + } + } +} + +function $printStackTraceImpl(this$static, out, ident){ + var t, t$array, t$index, t$max, theCause; + $printStackTraceItems(this$static); + for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this$static.suppressedExceptions) , t$index = 0 , t$max = t$array.length; t$index < t$max; ++t$index) { + t = t$array[t$index]; + $printStackTraceImpl(t, out, '\t' + ident); + } + theCause = this$static.cause_0; + !!theCause && $printStackTraceImpl(theCause, out, ident); +} + +function $printStackTraceItems(this$static){ + var element$array, element$index, element$max, stackTrace; + for (element$array = (this$static.stackTrace == null && (this$static.stackTrace = ($clinit_StackTraceCreator() , stackTrace = collector_1.getStackTrace(this$static) , dropInternalFrames(stackTrace))) , this$static.stackTrace) , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) + ; +} + +function $setBackingJsObject(this$static, backingJsObject){ + this$static.backingJsObject = backingJsObject; + $linkBack(this$static, backingJsObject); +} + +function $toString_4(this$static, message){ + var className; + className = $getName(this$static.___clazz); + return message == null?className:className + ': ' + message; +} + +function Throwable(){ + $$init_0(this); + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function Throwable_0(message){ + $$init_0(this); + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function Throwable_1(message, cause){ + $$init_0(this); + this.cause_0 = cause; + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function fixIE(e){ + if (!('stack' in e)) { + try { + throw e; + } + catch (ignored) { + } + } + return e; +} + +defineClass(78, 1, {3:1, 78:1}); +_.createError = function createError(msg){ + return new Error(msg); +} +; +_.getBackingJsObject = function getBackingJsObject(){ + return this.backingJsObject; +} +; +_.getBackingSuppressed = function getBackingSuppressed(){ + return $toArray_7($map_0(stream_4((this.suppressedExceptions == null && (this.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this.suppressedExceptions)), new Throwable$lambda$0$Type), new StreamImpl$0methodref$lambda$2$Type); +} +; +_.getCause = function getCause(){ + return this.cause_0; +} +; +_.getMessage = function getMessage(){ + return this.detailMessage; +} +; +_.initializeBackingError = function initializeBackingError(){ + $setBackingJsObject(this, fixIE(this.createError($toString_4(this, this.detailMessage)))); + captureStackTrace(this); +} +; +_.toString_0 = function toString_30(){ + return $toString_4(this, this.getMessage()); +} +; +_.backingJsObject = '__noinit__'; +_.disableSuppression = false; +_.writableStackTrace = true; +var Ljava_lang_Throwable_2_classLit = createForClass('java.lang', 'Throwable', 78); +defineClass(102, 78, {3:1, 102:1, 78:1}); +var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 102); +function RuntimeException(){ + Throwable.call(this); +} + +function RuntimeException_0(message){ + Throwable_0.call(this, message); +} + +defineClass(60, 102, $intern_43, RuntimeException, RuntimeException_0); +var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 60); +defineClass(598, 60, $intern_43); +var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 598); +defineClass(863, 598, $intern_43); +var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 863); +function $clinit_JavaScriptException(){ + $clinit_JavaScriptException = emptyMethod; + NOT_SET = new Object_0; +} + +function $ensureInit(this$static){ + var exception; + if (this$static.message_0 == null) { + exception = maskUndefined(this$static.e) === maskUndefined(NOT_SET)?null:this$static.e; + this$static.name_0 = exception == null?'null':instanceOfJso(exception)?getExceptionName0(castToJso(exception)):instanceOfString(exception)?'String':$getName(getClass__Ljava_lang_Class___devirtual$(exception)); + this$static.description = this$static.description + ': ' + (instanceOfJso(exception)?getExceptionDescription0(castToJso(exception)):exception + ''); + this$static.message_0 = '(' + this$static.name_0 + ') ' + this$static.description; + } +} + +function JavaScriptException(e){ + $clinit_JavaScriptException(); + $$init_0(this); + $fillInStackTrace(this); + this.backingJsObject = e; + $linkBack(this, e); + this.detailMessage = e == null?'null':toString_40(e); + this.description = ''; + this.e = e; + this.description = ''; +} + +function getExceptionDescription0(e){ + return e == null?null:e.message; +} + +function getExceptionName0(e){ + return e == null?null:e.name; +} + +defineClass(477, 863, {477:1, 3:1, 102:1, 60:1, 78:1}, JavaScriptException); +_.getMessage = function getMessage_0(){ + $ensureInit(this); + return this.message_0; +} +; +_.getThrown = function getThrown(){ + return maskUndefined(this.e) === maskUndefined(NOT_SET)?null:this.e; +} +; +var NOT_SET; +var Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptException', 477); +function $equals_3(this$static, other){ + return !!this$static && !!this$static.equals?this$static.equals(other):maskUndefined(this$static) === maskUndefined(other); +} + +function $hashCode(this$static){ + return !!this$static && !!this$static.hashCode?this$static.hashCode():getHashCode_0(this$static); +} + +var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); +function now_1(){ + if (Date.now) { + return Date.now(); + } + return (new Date).getTime(); +} + +function escapeChar(c, escapeTable){ + var lookedUp = escapeTable_0[c.charCodeAt(0)]; + return lookedUp == null?c:lookedUp; +} + +function escapeValue(toEscape){ + var escapeTable = (!escapeTable_0 && (escapeTable_0 = initEscapeTable()) , escapeTable_0); + var s = toEscape.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(x_0){ + return escapeChar(x_0, escapeTable); + } + ); + return '"' + s + '"'; +} + +function initEscapeTable(){ + var out = ['\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', '\\n', '\\u000B', '\\f', '\\r', '\\u000E', '\\u000F', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001A', '\\u001B', '\\u001C', '\\u001D', '\\u001E', '\\u001F']; + out[34] = '\\"'; + out[92] = '\\\\'; + out[173] = '\\u00ad'; + out[1536] = '\\u0600'; + out[1537] = '\\u0601'; + out[1538] = '\\u0602'; + out[1539] = '\\u0603'; + out[1757] = '\\u06dd'; + out[1807] = '\\u070f'; + out[6068] = '\\u17b4'; + out[6069] = '\\u17b5'; + out[8203] = '\\u200b'; + out[8204] = '\\u200c'; + out[8205] = '\\u200d'; + out[8206] = '\\u200e'; + out[8207] = '\\u200f'; + out[8232] = '\\u2028'; + out[8233] = '\\u2029'; + out[8234] = '\\u202a'; + out[8235] = '\\u202b'; + out[8236] = '\\u202c'; + out[8237] = '\\u202d'; + out[8238] = '\\u202e'; + out[8288] = '\\u2060'; + out[8289] = '\\u2061'; + out[8290] = '\\u2062'; + out[8291] = '\\u2063'; + out[8292] = '\\u2064'; + out[8298] = '\\u206a'; + out[8299] = '\\u206b'; + out[8300] = '\\u206c'; + out[8301] = '\\u206d'; + out[8302] = '\\u206e'; + out[8303] = '\\u206f'; + out[65279] = '\\ufeff'; + out[65529] = '\\ufff9'; + out[65530] = '\\ufffa'; + out[65531] = '\\ufffb'; + return out; +} + +var escapeTable_0; +defineClass(1948, 1, {}); +var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 1948); +function $clinit_Impl(){ + $clinit_Impl = emptyMethod; + !!($clinit_StackTraceCreator() , collector_1); +} + +function apply_19(jsFunction, thisObj, args){ + return jsFunction.apply(thisObj, args); + var __0; +} + +function enter_0(){ + var now_0; + if (entryDepth != 0) { + now_0 = now_1(); + if (now_0 - watchdogEntryDepthLastScheduled > 2000) { + watchdogEntryDepthLastScheduled = now_0; + watchdogEntryDepthTimerId = $wnd.setTimeout(watchdogEntryDepthRun, 10); + } + } + if (entryDepth++ == 0) { + $flushEntryCommands(($clinit_SchedulerImpl() , INSTANCE_3)); + return true; + } + return false; +} + +function entry_2(jsFunction){ + $clinit_Impl(); + return function(){ + return entry0_0(jsFunction, this, arguments); + var __0; + } + ; +} + +function entry0_0(jsFunction, thisObj, args){ + var initialEntry; + initialEntry = enter_0(); + try { + return apply_19(jsFunction, thisObj, args); + } + finally { + exit(initialEntry); + } +} + +function exit(initialEntry){ + initialEntry && $flushFinallyCommands(($clinit_SchedulerImpl() , INSTANCE_3)); + --entryDepth; + if (initialEntry) { + if (watchdogEntryDepthTimerId != -1) { + watchdogEntryDepthCancel(watchdogEntryDepthTimerId); + watchdogEntryDepthTimerId = -1; + } + } +} + +function reportToBrowser(e){ + $clinit_Impl(); + $wnd.setTimeout(function(){ + throw e; + } + , 0); +} + +function watchdogEntryDepthCancel(timerId){ + $wnd.clearTimeout(timerId); +} + +function watchdogEntryDepthRun(){ + entryDepth != 0 && (entryDepth = 0); + watchdogEntryDepthTimerId = -1; +} + +var entryDepth = 0, watchdogEntryDepthLastScheduled = 0, watchdogEntryDepthTimerId = -1; +function $clinit_SchedulerImpl(){ + $clinit_SchedulerImpl = emptyMethod; + INSTANCE_3 = new SchedulerImpl; +} + +function $flushEntryCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.entryCommands) { + rescheduled = null; + do { + oldQueue = this$static.entryCommands; + this$static.entryCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.entryCommands); + this$static.entryCommands = rescheduled; + } +} + +function $flushFinallyCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.finallyCommands) { + rescheduled = null; + do { + oldQueue = this$static.finallyCommands; + this$static.finallyCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.finallyCommands); + this$static.finallyCommands = rescheduled; + } +} + +function SchedulerImpl(){ +} + +function push_0(queue, task){ + !queue && (queue = []); + queue[queue.length] = task; + return queue; +} + +function runScheduledTasks(tasks, rescheduled){ + var e, i, j, t; + for (i = 0 , j = tasks.length; i < j; i++) { + t = tasks[i]; + try { + t[1]?t[0].$_nullMethod() && (rescheduled = push_0(rescheduled, t)):t[0].$_nullMethod(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + e = $e0; + $clinit_Impl(); + reportToBrowser(instanceOf(e, 477)?castTo(e, 477).getThrown():e); + } + else + throw toJs($e0); + } + } + return rescheduled; +} + +defineClass(890, 1948, {}, SchedulerImpl); +var INSTANCE_3; +var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 890); +function $clinit_StackTraceCreator(){ + $clinit_StackTraceCreator = emptyMethod; + var c, enforceLegacy; + enforceLegacy = !supportsErrorStack(); + c = new StackTraceCreator$CollectorModernNoSourceMap; + collector_1 = enforceLegacy?new StackTraceCreator$CollectorLegacy:c; +} + +function captureStackTrace(error){ + $clinit_StackTraceCreator(); + collector_1.collect(error); +} + +function dropInternalFrames(stackTrace){ + var dropFrameUntilFnName, dropFrameUntilFnName2, i, numberOfFramesToSearch; + dropFrameUntilFnName = 'captureStackTrace'; + dropFrameUntilFnName2 = 'initializeBackingError'; + numberOfFramesToSearch = $wnd.Math.min(stackTrace.length, 5); + for (i = numberOfFramesToSearch - 1; i >= 0; i--) { + if ($equals_5(stackTrace[i].methodName, dropFrameUntilFnName) || $equals_5(stackTrace[i].methodName, dropFrameUntilFnName2)) { + stackTrace.length >= i + 1 && stackTrace.splice(0, i + 1); + break; + } + } + return stackTrace; +} + +function extractFunctionName(fnName){ + var fnRE = /function(?:\s+([\w$]+))?\s*\(/; + var match_0 = fnRE.exec(fnName); + return match_0 && match_0[1] || 'anonymous'; +} + +function parseInt_0(number){ + $clinit_StackTraceCreator(); + return parseInt(number) || -1; +} + +function split_1(t){ + $clinit_StackTraceCreator(); + var e = t.backingJsObject; + if (e && e.stack) { + var stack_0 = e.stack; + var toString_0 = e + '\n'; + stack_0.substring(0, toString_0.length) == toString_0 && (stack_0 = stack_0.substring(toString_0.length)); + return stack_0.split('\n'); + } + return []; +} + +function supportsErrorStack(){ + if (Error.stackTraceLimit > 0) { + $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; + return true; + } + return 'stack' in new Error; +} + +var collector_1; +defineClass(1960, 1, {}); +var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 1960); +function StackTraceCreator$CollectorLegacy(){ +} + +defineClass(864, 1960, {}, StackTraceCreator$CollectorLegacy); +_.collect = function collect(error){ + var seen = {}, name_1; + var fnStack = []; + error['fnStack'] = fnStack; + var callee = arguments.callee.caller; + while (callee) { + var name_0 = ($clinit_StackTraceCreator() , callee.name || (callee.name = extractFunctionName(callee.toString()))); + fnStack.push(name_0); + var keyName = ':' + name_0; + var withThisName = seen[keyName]; + if (withThisName) { + var i, j; + for (i = 0 , j = withThisName.length; i < j; i++) { + if (withThisName[i] === callee) { + return; + } + } + } + (withThisName || (seen[keyName] = [])).push(callee); + callee = callee.caller; + } +} +; +_.getStackTrace = function getStackTrace(t){ + var i, length_0, stack_0, stackTrace; + stack_0 = ($clinit_StackTraceCreator() , t && t['fnStack']?t['fnStack']:[]); + length_0 = stack_0.length; + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, length_0, 0, 1); + for (i = 0; i < length_0; i++) { + stackTrace[i] = new StackTraceElement(stack_0[i], null, -1); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorLegacy_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorLegacy', 864); +function $parse(this$static, stString){ + var closeParen, col, endFileUrlIndex, fileName, index_0, lastColonIndex, line, location_0, toReturn; + location_0 = ''; + if (stString.length == 0) { + return this$static.createSte('Unknown', 'anonymous', -1, -1); + } + toReturn = $trim(stString); + $equals_5(toReturn.substr(0, 3), 'at ') && (toReturn = toReturn.substr(3)); + toReturn = toReturn.replace(/\[.*?\]/g, ''); + index_0 = toReturn.indexOf('('); + if (index_0 == -1) { + index_0 = toReturn.indexOf('@'); + if (index_0 == -1) { + location_0 = toReturn; + toReturn = ''; + } + else { + location_0 = $trim(toReturn.substr(index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + } + else { + closeParen = toReturn.indexOf(')', index_0); + location_0 = toReturn.substr(index_0 + 1, closeParen - (index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + index_0 = $indexOf_1(toReturn, fromCodePoint(46)); + index_0 != -1 && (toReturn = toReturn.substr(index_0 + 1)); + (toReturn.length == 0 || $equals_5(toReturn, 'Anonymous function')) && (toReturn = 'anonymous'); + lastColonIndex = $lastIndexOf(location_0, fromCodePoint(58)); + endFileUrlIndex = $lastIndexOf_0(location_0, fromCodePoint(58), lastColonIndex - 1); + line = -1; + col = -1; + fileName = 'Unknown'; + if (lastColonIndex != -1 && endFileUrlIndex != -1) { + fileName = location_0.substr(0, endFileUrlIndex); + line = parseInt_0(location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1))); + col = parseInt_0(location_0.substr(lastColonIndex + 1)); + } + return this$static.createSte(fileName, toReturn, line, col); +} + +defineClass(1961, 1960, {}); +_.collect = function collect_0(error){ +} +; +_.createSte = function createSte(fileName, method, line, col){ + return new StackTraceElement(method, fileName + '@' + col, line < 0?-1:line); +} +; +_.getStackTrace = function getStackTrace_0(t){ + var addIndex, i, length_0, stack_0, stackTrace, ste; + stack_0 = split_1(t); + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); + addIndex = 0; + length_0 = stack_0.length; + if (length_0 == 0) { + return stackTrace; + } + ste = $parse(this, stack_0[0]); + $equals_5(ste.methodName, 'anonymous') || (stackTrace[addIndex++] = ste); + for (i = 1; i < length_0; i++) { + stackTrace[addIndex++] = $parse(this, stack_0[i]); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModern_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModern', 1961); +function StackTraceCreator$CollectorModernNoSourceMap(){ +} + +defineClass(865, 1961, {}, StackTraceCreator$CollectorModernNoSourceMap); +_.createSte = function createSte_0(fileName, method, line, col){ + return new StackTraceElement(method, fileName, -1); +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModernNoSourceMap_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModernNoSourceMap', 865); +function $clinit_DateTimeFormat(){ + $clinit_DateTimeFormat = emptyMethod; + new HashMap; +} + +function $addPart(this$static, buf, count){ + var oldLength; + if (buf.string.length > 0) { + $add_3(this$static.patternParts, new DateTimeFormat$PatternPart(buf.string, count)); + oldLength = buf.string.length; + 0 < oldLength?(buf.string = buf.string.substr(0, 0)):0 > oldLength && (buf.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); + } +} + +function $format(this$static, date, timeZone){ + var ch_0, diff, i, j, keepDate, keepTime, n, toAppendTo, trailQuote; + !timeZone && (timeZone = createTimeZone(date.jsdate.getTimezoneOffset())); + diff = (date.jsdate.getTimezoneOffset() - timeZone.standardOffset) * 60000; + keepDate = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); + keepTime = keepDate; + if (keepDate.jsdate.getTimezoneOffset() != date.jsdate.getTimezoneOffset()) { + diff > 0?(diff -= 86400000):(diff += 86400000); + keepTime = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); + } + toAppendTo = new StringBuilder_0; + n = this$static.pattern.length; + for (i = 0; i < n;) { + ch_0 = $charAt(this$static.pattern, i); + if (ch_0 >= 97 && ch_0 <= 122 || ch_0 >= 65 && ch_0 <= 90) { + for (j = i + 1; j < n && $charAt(this$static.pattern, j) == ch_0; ++j) + ; + $subFormat(toAppendTo, ch_0, j - i, keepDate, keepTime, timeZone); + i = j; + } + else if (ch_0 == 39) { + ++i; + if (i < n && $charAt(this$static.pattern, i) == 39) { + toAppendTo.string += "'"; + ++i; + continue; + } + trailQuote = false; + while (!trailQuote) { + j = i; + while (j < n && $charAt(this$static.pattern, j) != 39) { + ++j; + } + if (j >= n) { + throw toJs(new IllegalArgumentException_0("Missing trailing '")); + } + j + 1 < n && $charAt(this$static.pattern, j + 1) == 39?++j:(trailQuote = true); + $append_11(toAppendTo, $substring_1(this$static.pattern, i, j)); + i = j + 1; + } + } + else { + toAppendTo.string += String.fromCharCode(ch_0); + ++i; + } + } + return toAppendTo.string; +} + +function $formatFractionalSeconds(buf, count, date){ + var time, value_0; + time = fromDouble_0(date.jsdate.getTime()); + if (compare_2(time, 0) < 0) { + value_0 = $intern_45 - toInt_0(mod(neg_0(time), $intern_45)); + value_0 == $intern_45 && (value_0 = 0); + } + else { + value_0 = toInt_0(mod(time, $intern_45)); + } + if (count == 1) { + value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); + $append_5(buf, 48 + value_0 & $intern_46); + } + else if (count == 2) { + value_0 = $wnd.Math.min((value_0 + 5) / 10 | 0, 99); + $zeroPaddingNumber(buf, value_0, 2); + } + else { + $zeroPaddingNumber(buf, value_0, 3); + count > 3 && $zeroPaddingNumber(buf, 0, count - 3); + } +} + +function $formatMonth(buf, count, date){ + var value_0; + value_0 = date.jsdate.getMonth(); + switch (count) { + case 5: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value_0]); + break; + case 4: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value_0]); + break; + case 3: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value_0]); + break; + default:$zeroPaddingNumber(buf, value_0 + 1, count); + } +} + +function $formatYear(buf, count, date){ + var value_0; + value_0 = date.jsdate.getFullYear() - $intern_47 + $intern_47; + value_0 < 0 && (value_0 = -value_0); + switch (count) { + case 1: + buf.string += value_0; + break; + case 2: + $zeroPaddingNumber(buf, value_0 % 100, 2); + break; + default:$zeroPaddingNumber(buf, value_0, count); + } +} + +function $getNextCharCountInPattern(pattern, start_0){ + var ch_0, next; + ch_0 = (checkCriticalStringElementIndex(start_0, pattern.length) , pattern.charCodeAt(start_0)); + next = start_0 + 1; + while (next < pattern.length && (checkCriticalStringElementIndex(next, pattern.length) , pattern.charCodeAt(next) == ch_0)) { + ++next; + } + return next - start_0; +} + +function $identifyAbutStart(this$static){ + var abut, i, len; + abut = false; + len = this$static.patternParts.array.length; + for (i = 0; i < len; i++) { + if ($isNumeric(castTo($get_11(this$static.patternParts, i), 434))) { + if (!abut && i + 1 < len && $isNumeric(castTo($get_11(this$static.patternParts, i + 1), 434))) { + abut = true; + castTo($get_11(this$static.patternParts, i), 434).abutStart = true; + } + } + else { + abut = false; + } + } +} + +function $isNumeric(part){ + var i; + if (part.count <= 0) { + return false; + } + i = $indexOf_1('MLydhHmsSDkK', fromCodePoint($charAt(part.text_0, 0))); + return i > 1 || i >= 0 && part.count < 3; +} + +function $matchString(text_0, start_0, data_0, pos){ + var bestMatch, bestMatchLength, count, i, length_0, textInLowerCase; + count = data_0.length; + bestMatchLength = 0; + bestMatch = -1; + textInLowerCase = $toLowerCase(text_0.substr(start_0), ($clinit_Locale() , ROOT)); + for (i = 0; i < count; ++i) { + length_0 = data_0[i].length; + if (length_0 > bestMatchLength && $startsWith(textInLowerCase, $toLowerCase(data_0[i], ROOT))) { + bestMatch = i; + bestMatchLength = length_0; + } + } + bestMatch >= 0 && (pos[0] = start_0 + bestMatchLength); + return bestMatch; +} + +function $parse_0(this$static, text_0, date){ + var abutPass, abutPat, abutStart, cal, count, i, parsePos, part, s; + cal = new DateRecord; + parsePos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); + abutPat = -1; + abutStart = 0; + abutPass = 0; + for (i = 0; i < this$static.patternParts.array.length; ++i) { + part = castTo($get_11(this$static.patternParts, i), 434); + if (part.count > 0) { + if (abutPat < 0 && part.abutStart) { + abutPat = i; + abutStart = parsePos[0]; + abutPass = 0; + } + if (abutPat >= 0) { + count = part.count; + if (i == abutPat) { + count -= abutPass++; + if (count == 0) { + return 0; + } + } + if (!$subParse(text_0, parsePos, part, count, cal)) { + i = abutPat - 1; + parsePos[0] = abutStart; + continue; + } + } + else { + abutPat = -1; + if (!$subParse(text_0, parsePos, part, 0, cal)) { + return 0; + } + } + } + else { + abutPat = -1; + if ($charAt(part.text_0, 0) == 32) { + s = parsePos[0]; + $skipSpace(text_0, parsePos); + if (parsePos[0] > s) { + continue; + } + } + else if ($startsWith_0(text_0, part.text_0, parsePos[0])) { + parsePos[0] += part.text_0.length; + continue; + } + return 0; + } + } + if (!$calcDate(cal, date)) { + return 0; + } + return parsePos[0]; +} + +function $parse_1(this$static, text_0){ + var charsConsumed, curDate, date; + curDate = new Date_0; + date = new Date_1(curDate.jsdate.getFullYear() - $intern_47, curDate.jsdate.getMonth(), curDate.jsdate.getDate()); + charsConsumed = $parse_0(this$static, text_0, date); + if (charsConsumed == 0 || charsConsumed < text_0.length) { + throw toJs(new IllegalArgumentException_0(text_0)); + } + return date; +} + +function $parseInt(text_0, pos){ + var ch_0, ind, ret; + ret = 0; + ind = pos[0]; + if (ind >= text_0.length) { + return -1; + } + ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); + while (ch_0 >= 48 && ch_0 <= 57) { + ret = ret * 10 + (ch_0 - 48); + ++ind; + if (ind >= text_0.length) { + break; + } + ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); + } + ind > pos[0]?(pos[0] = ind):(ret = -1); + return ret; +} + +function $parsePattern(this$static, pattern){ + var buf, ch_0, count, i, inQuote; + buf = new StringBuilder_0; + inQuote = false; + for (i = 0; i < pattern.length; i++) { + ch_0 = (checkCriticalStringElementIndex(i, pattern.length) , pattern.charCodeAt(i)); + if (ch_0 == 32) { + $addPart(this$static, buf, 0); + buf.string += ' '; + $addPart(this$static, buf, 0); + while (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 32)) { + ++i; + } + continue; + } + if (inQuote) { + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += String.fromCharCode(ch_0); + ++i; + } + else { + inQuote = false; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + continue; + } + if ($indexOf_1('GyMLdkHmsSEcDahKzZv', fromCodePoint(ch_0)) > 0) { + $addPart(this$static, buf, 0); + buf.string += String.fromCharCode(ch_0); + count = $getNextCharCountInPattern(pattern, i); + $addPart(this$static, buf, count); + i += count - 1; + continue; + } + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += "'"; + ++i; + } + else { + inQuote = true; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + } + $addPart(this$static, buf, 0); + $identifyAbutStart(this$static); +} + +function $parseTimeZoneOffset(text_0, pos, cal){ + var offset, sign, st, value_0; + if (pos[0] >= text_0.length) { + cal.tzOffset = 0; + return true; + } + switch ($charAt(text_0, pos[0])) { + case 43: + sign = 1; + break; + case 45: + sign = -1; + break; + default:cal.tzOffset = 0; + return true; + } + ++pos[0]; + st = pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 == 0 && pos[0] == st) { + return false; + } + if (pos[0] < text_0.length && $charAt(text_0, pos[0]) == 58) { + offset = value_0 * 60; + ++pos[0]; + st = pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 == 0 && pos[0] == st) { + return false; + } + offset += value_0; + } + else { + offset = value_0; + offset < 24 && pos[0] - st <= 2?(offset *= 60):(offset = offset % 100 + (offset / 100 | 0) * 60); + } + offset *= sign; + cal.tzOffset = -offset; + return true; +} + +function $skipSpace(text_0, pos){ + while (pos[0] < text_0.length && $indexOf_1(' \t\r\n', fromCodePoint($charAt(text_0, pos[0]))) >= 0) { + ++pos[0]; + } +} + +function $subFormat(buf, ch_0, count, adjustedDate, adjustedTime, timezone){ + var value_0, value0, value1, value10, value2, value3, value4, value5, value6, value7, value8, value9; + switch (ch_0) { + case 71: + value0 = adjustedDate.jsdate.getFullYear() - $intern_47 >= -1900?1:0; + count >= 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini'])[value0]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['BC', 'AD'])[value0]); + break; + case 121: + $formatYear(buf, count, adjustedDate); + break; + case 77: + $formatMonth(buf, count, adjustedDate); + break; + case 107: + value1 = adjustedTime.jsdate.getHours(); + value1 == 0?$zeroPaddingNumber(buf, 24, count):$zeroPaddingNumber(buf, value1, count); + break; + case 83: + $formatFractionalSeconds(buf, count, adjustedTime); + break; + case 69: + value2 = adjustedDate.jsdate.getDay(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value2]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value2]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value2]); + break; + case 97: + adjustedTime.jsdate.getHours() >= 12 && adjustedTime.jsdate.getHours() < 24?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[1]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[0]); + break; + case 104: + value3 = adjustedTime.jsdate.getHours() % 12; + value3 == 0?$zeroPaddingNumber(buf, 12, count):$zeroPaddingNumber(buf, value3, count); + break; + case 75: + value4 = adjustedTime.jsdate.getHours() % 12; + $zeroPaddingNumber(buf, value4, count); + break; + case 72: + value5 = adjustedTime.jsdate.getHours(); + $zeroPaddingNumber(buf, value5, count); + break; + case 99: + value6 = adjustedDate.jsdate.getDay(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value6]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value6]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value6]):$zeroPaddingNumber(buf, value6, 1); + break; + case 76: + value7 = adjustedDate.jsdate.getMonth(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value7]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value7]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value7]):$zeroPaddingNumber(buf, value7 + 1, count); + break; + case 81: + value8 = adjustedDate.jsdate.getMonth() / 3 | 0; + count < 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Q1', 'Q2', 'Q3', 'Q4'])[value8]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'])[value8]); + break; + case 100: + value9 = adjustedDate.jsdate.getDate(); + $zeroPaddingNumber(buf, value9, count); + break; + case 109: + value10 = adjustedTime.jsdate.getMinutes(); + $zeroPaddingNumber(buf, value10, count); + break; + case 115: + value_0 = adjustedTime.jsdate.getSeconds(); + $zeroPaddingNumber(buf, value_0, count); + break; + case 122: + count < 4?$append_11(buf, timezone.tzNames[0]):$append_11(buf, timezone.tzNames[1]); + break; + case 118: + $append_11(buf, timezone.timezoneID); + break; + case 90: + count < 3?$append_11(buf, $getRFCTimeZoneString(timezone)):count == 3?$append_11(buf, $getISOTimeZoneString(timezone)):$append_11(buf, composeGMTString(timezone.standardOffset)); + break; + default:return false; + } + return true; +} + +function $subParse(text_0, pos, part, digitCount, cal){ + var ch_0, start_0, value_0; + $skipSpace(text_0, pos); + start_0 = pos[0]; + ch_0 = $charAt(part.text_0, 0); + value_0 = -1; + if ($isNumeric(part)) { + if (digitCount > 0) { + if (start_0 + digitCount > text_0.length) { + return false; + } + value_0 = $parseInt(text_0.substr(0, start_0 + digitCount), pos); + } + else { + value_0 = $parseInt(text_0, pos); + } + } + switch (ch_0) { + case 71: + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini']), pos); + cal.era = value_0; + return true; + case 77: + return $subParseMonth(text_0, pos, cal, value_0, start_0); + case 76: + return $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0); + case 69: + return $subParseDayOfWeek(text_0, pos, start_0, cal); + case 99: + return $subParseStandaloneDay(text_0, pos, start_0, cal); + case 97: + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM']), pos); + cal.ampm = value_0; + return true; + case 121: + return $subParseYear(text_0, pos, start_0, value_0, part, cal); + case 100: + if (value_0 <= 0) { + return false; + } + + cal.dayOfMonth = value_0; + return true; + case 83: + if (value_0 < 0) { + return false; + } + + return $subParseFractionalSeconds(value_0, start_0, pos[0], cal); + case 104: + value_0 == 12 && (value_0 = 0); + case 75: + case 72: + if (value_0 < 0) { + return false; + } + + cal.hours = value_0; + cal.midnightIs24 = false; + return true; + case 107: + if (value_0 < 0) { + return false; + } + + cal.hours = value_0; + cal.midnightIs24 = true; + return true; + case 109: + if (value_0 < 0) { + return false; + } + + cal.minutes = value_0; + return true; + case 115: + if (value_0 < 0) { + return false; + } + + cal.seconds = value_0; + return true; + case 90: + if (start_0 < text_0.length && (checkCriticalStringElementIndex(start_0, text_0.length) , text_0.charCodeAt(start_0) == 90)) { + ++pos[0]; + cal.tzOffset = 0; + return true; + } + + case 122: + case 118: + return $subParseTimeZoneInGMT(text_0, start_0, pos, cal); + default:return false; + } +} + +function $subParseDayOfWeek(text_0, pos, start_0, cal){ + var value_0; + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); + if (value_0 < 0) { + return false; + } + cal.dayOfWeek = value_0; + return true; +} + +function $subParseFractionalSeconds(value_0, start_0, end, cal){ + var a, i; + i = end - start_0; + if (i < 3) { + while (i < 3) { + value_0 *= 10; + ++i; + } + } + else { + a = 1; + while (i > 3) { + a *= 10; + --i; + } + value_0 = (value_0 + (a >> 1)) / a | 0; + } + cal.milliseconds = value_0; + return true; +} + +function $subParseMonth(text_0, pos, cal, value_0, start_0){ + if (value_0 < 0) { + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); + if (value_0 < 0) { + return false; + } + cal.month = value_0; + return true; + } + else if (value_0 > 0) { + cal.month = value_0 - 1; + return true; + } + return false; +} + +function $subParseStandaloneDay(text_0, pos, start_0, cal){ + var value_0; + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); + if (value_0 < 0) { + return false; + } + cal.dayOfWeek = value_0; + return true; +} + +function $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0){ + if (value_0 < 0) { + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); + if (value_0 < 0) { + return false; + } + cal.month = value_0; + return true; + } + else if (value_0 > 0) { + cal.month = value_0 - 1; + return true; + } + return false; +} + +function $subParseTimeZoneInGMT(text_0, start_0, pos, cal){ + if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'GMT'.length), 'GMT')) { + pos[0] = start_0 + 3; + return $parseTimeZoneOffset(text_0, pos, cal); + } + if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'UTC'.length), 'UTC')) { + pos[0] = start_0 + 3; + return $parseTimeZoneOffset(text_0, pos, cal); + } + return $parseTimeZoneOffset(text_0, pos, cal); +} + +function $subParseYear(text_0, pos, start_0, value_0, part, cal){ + var ambiguousTwoDigitYear, ch_0, date, defaultCenturyStartYear; + ch_0 = 32; + if (value_0 < 0) { + if (pos[0] >= text_0.length) { + return false; + } + ch_0 = $charAt(text_0, pos[0]); + if (ch_0 != 43 && ch_0 != 45) { + return false; + } + ++pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 < 0) { + return false; + } + ch_0 == 45 && (value_0 = -value_0); + } + if (ch_0 == 32 && pos[0] - start_0 == 2 && part.count == 2) { + date = new Date_0; + defaultCenturyStartYear = date.jsdate.getFullYear() - $intern_47 + $intern_47 - 80; + ambiguousTwoDigitYear = defaultCenturyStartYear % 100; + cal.ambiguousYear = value_0 == ambiguousTwoDigitYear; + value_0 += (defaultCenturyStartYear / 100 | 0) * 100 + (value_0 < ambiguousTwoDigitYear?100:0); + } + cal.year = value_0; + return true; +} + +function $zeroPaddingNumber(buf, value_0, minWidth){ + var b, i; + b = 10; + for (i = 0; i < minWidth - 1; i++) { + value_0 < b && (buf.string += '0' , buf); + b *= 10; + } + buf.string += value_0; +} + +defineClass(1050, 1, {}); +var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 1050); +function $clinit_DateTimeFormat_0(){ + $clinit_DateTimeFormat_0 = emptyMethod; + $clinit_DateTimeFormat(); + cache = new HashMap; +} + +function DateTimeFormat(pattern){ + $clinit_DateTimeFormat(); + this.patternParts = new ArrayList; + this.pattern = pattern; + $parsePattern(this, pattern); +} + +function getFormat(pattern, dtfi){ + $clinit_DateTimeFormat_0(); + var defaultDtfi, dtf; + defaultDtfi = $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); + dtf = null; + dtfi == defaultDtfi && (dtf = castTo($getStringValue(cache, pattern), 615)); + if (!dtf) { + dtf = new DateTimeFormat(pattern); + dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); + } + return dtf; +} + +defineClass(615, 1050, {615:1}, DateTimeFormat); +var cache; +var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 615); +defineClass(2001, 1, {}); +var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 2001); +defineClass(2002, 2001, {}); +var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 2002); +function $clinit_LocaleInfo(){ + $clinit_LocaleInfo = emptyMethod; + instance_0 = new LocaleInfo; +} + +function $getDateTimeFormatInfo(this$static){ + !this$static.dateTimeFormatInfo && (this$static.dateTimeFormatInfo = new DateTimeFormatInfoImpl); + return this$static.dateTimeFormatInfo; +} + +function LocaleInfo(){ +} + +defineClass(1090, 1, {}, LocaleInfo); +var instance_0; +var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 1090); +function $getISOTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 58, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; + data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_46; + data_0[5] = data_0[5] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function $getRFCTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; + data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_46; + data_0[4] = data_0[4] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function TimeZone(){ +} + +function composeGMTString(offset){ + var data_0; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); + if (offset <= 0) { + data_0[3] = 43; + offset = -offset; + } + data_0[4] = data_0[4] + ((offset / 60 | 0) / 10 | 0) & $intern_46; + data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_46; + data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_46; + data_0[8] = data_0[8] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function composePOSIXTimeZoneID(offset){ + var str; + if (offset == 0) { + return 'Etc/GMT'; + } + if (offset < 0) { + offset = -offset; + str = 'Etc/GMT-'; + } + else { + str = 'Etc/GMT+'; + } + return str + offsetDisplay(offset); +} + +function composeUTCString(offset){ + var str; + if (offset == 0) { + return 'UTC'; + } + if (offset < 0) { + offset = -offset; + str = 'UTC+'; + } + else { + str = 'UTC-'; + } + return str + offsetDisplay(offset); +} + +function createTimeZone(timeZoneOffsetInMinutes){ + var tz; + tz = new TimeZone; + tz.standardOffset = timeZoneOffsetInMinutes; + tz.timezoneID = composePOSIXTimeZoneID(timeZoneOffsetInMinutes); + tz.tzNames = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 2, 6, 1); + tz.tzNames[0] = composeUTCString(timeZoneOffsetInMinutes); + tz.tzNames[1] = composeUTCString(timeZoneOffsetInMinutes); + return tz; +} + +function offsetDisplay(offset){ + var hour, mins; + hour = offset / 60 | 0; + mins = offset % 60; + if (mins == 0) { + return '' + hour; + } + return '' + hour + ':' + ('' + mins); +} + +defineClass(1918, 1, {}, TimeZone); +_.standardOffset = 0; +var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 1918); +function DateTimeFormatInfoImpl(){ +} + +defineClass(1258, 2002, {}, DateTimeFormatInfoImpl); +var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 1258); +function DateTimeFormat$PatternPart(txt, cnt){ + this.text_0 = txt; + this.count = cnt; + this.abutStart = false; +} + +defineClass(434, 1, {434:1}, DateTimeFormat$PatternPart); +_.abutStart = false; +_.count = 0; +var Lcom_google_gwt_i18n_shared_DateTimeFormat$PatternPart_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat/PatternPart', 434); +function $compareTo_0(this$static, other){ + return compare_6(fromDouble_0(this$static.jsdate.getTime()), fromDouble_0(other.jsdate.getTime())); +} + +function $fixDaylightSavings(this$static, requestedHours){ + var badHours, copy, day, newTime, originalTimeInMillis, timeDiff, timeDiffHours, timeDiffMinutes; + requestedHours %= 24; + if (this$static.jsdate.getHours() != requestedHours) { + copy = new $wnd.Date(this$static.jsdate.getTime()); + copy.setDate(copy.getDate() + 1); + timeDiff = this$static.jsdate.getTimezoneOffset() - copy.getTimezoneOffset(); + if (timeDiff > 0) { + timeDiffHours = timeDiff / 60 | 0; + timeDiffMinutes = timeDiff % 60; + day = this$static.jsdate.getDate(); + badHours = this$static.jsdate.getHours(); + badHours + timeDiffHours >= 24 && ++day; + newTime = new $wnd.Date(this$static.jsdate.getFullYear(), this$static.jsdate.getMonth(), day, requestedHours + timeDiffHours, this$static.jsdate.getMinutes() + timeDiffMinutes, this$static.jsdate.getSeconds(), this$static.jsdate.getMilliseconds()); + this$static.jsdate.setTime(newTime.getTime()); + } + } + originalTimeInMillis = this$static.jsdate.getTime(); + this$static.jsdate.setTime(originalTimeInMillis + 3600000); + this$static.jsdate.getHours() != requestedHours && this$static.jsdate.setTime(originalTimeInMillis); +} + +function $setDate(this$static, date){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setDate(date); + $fixDaylightSavings(this$static, hours); +} + +function $setHours(this$static, hours){ + this$static.jsdate.setHours(hours); + $fixDaylightSavings(this$static, hours); +} + +function $setMinutes(this$static, minutes){ + var hours; + hours = this$static.jsdate.getHours() + (minutes / 60 | 0); + this$static.jsdate.setMinutes(minutes); + $fixDaylightSavings(this$static, hours); +} + +function $setMonth(this$static, month){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setMonth(month); + $fixDaylightSavings(this$static, hours); +} + +function $setSeconds(this$static, seconds){ + var hours; + hours = this$static.jsdate.getHours() + (seconds / 3600 | 0); + this$static.jsdate.setSeconds(seconds); + $fixDaylightSavings(this$static, hours); +} + +function $setTime(this$static, time){ + this$static.jsdate.setTime(toDouble_0(time)); +} + +function $setYear(this$static, year){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setFullYear(year + $intern_47); + $fixDaylightSavings(this$static, hours); +} + +function Date_0(){ + this.jsdate = new $wnd.Date; +} + +function Date_1(year, month, date){ + this.jsdate = new $wnd.Date; + this.jsdate.setFullYear(year + $intern_47, month, date); + this.jsdate.setHours(0, 0, 0, 0); + $fixDaylightSavings(this, 0); +} + +function Date_2(date){ + this.jsdate = new $wnd.Date(toDouble_0(date)); +} + +function padTwo(number){ + return number < 10?'0' + number:'' + number; +} + +defineClass(199, 1, $intern_49, Date_0, Date_1, Date_2); +_.compareTo_0 = function compareTo_4(other){ + return $compareTo_0(this, castTo(other, 199)); +} +; +_.equals_0 = function equals_30(obj){ + return instanceOf(obj, 199) && eq(fromDouble_0(this.jsdate.getTime()), fromDouble_0(castTo(obj, 199).jsdate.getTime())); +} +; +_.hashCode_1 = function hashCode_30(){ + var time; + time = fromDouble_0(this.jsdate.getTime()); + return toInt_0(xor_0(time, shru_0(time, 32))); +} +; +_.toString_0 = function toString_31(){ + var hourOffset, minuteOffset, offset; + offset = -this.jsdate.getTimezoneOffset(); + hourOffset = (offset >= 0?'+':'') + (offset / 60 | 0); + minuteOffset = padTwo($wnd.Math.abs(offset) % 60); + return ($clinit_Date$StringData() , DAYS)[this.jsdate.getDay()] + ' ' + MONTHS[this.jsdate.getMonth()] + ' ' + padTwo(this.jsdate.getDate()) + ' ' + padTwo(this.jsdate.getHours()) + ':' + padTwo(this.jsdate.getMinutes()) + ':' + padTwo(this.jsdate.getSeconds()) + ' GMT' + hourOffset + minuteOffset + ' ' + this.jsdate.getFullYear(); +} +; +var Ljava_util_Date_2_classLit = createForClass('java.util', 'Date', 199); +function $calcDate(this$static, date){ + var adjustment, daysInCurrentMonth, defaultCenturyStart, offset, orgDayOfMonth, orgMonth, tmp; + this$static.era == 0 && this$static.year > 0 && (this$static.year = -(this$static.year - 1)); + this$static.year > $intern_42 && $setYear(date, this$static.year - $intern_47); + orgDayOfMonth = date.jsdate.getDate(); + $setDate(date, 1); + this$static.month >= 0 && $setMonth(date, this$static.month); + if (this$static.dayOfMonth >= 0) { + $setDate(date, this$static.dayOfMonth); + } + else if (this$static.month >= 0) { + tmp = new Date_1(date.jsdate.getFullYear() - $intern_47, date.jsdate.getMonth(), 35); + daysInCurrentMonth = 35 - tmp.jsdate.getDate(); + $setDate(date, $wnd.Math.min(daysInCurrentMonth, orgDayOfMonth)); + } + else { + $setDate(date, orgDayOfMonth); + } + this$static.hours < 0 && (this$static.hours = date.jsdate.getHours()); + this$static.ampm > 0 && this$static.hours < 12 && (this$static.hours += 12); + $setHours(date, this$static.hours == 24 && this$static.midnightIs24?0:this$static.hours); + this$static.minutes >= 0 && $setMinutes(date, this$static.minutes); + this$static.seconds >= 0 && $setSeconds(date, this$static.seconds); + this$static.milliseconds >= 0 && $setTime(date, add_20(mul_0(div(fromDouble_0(date.jsdate.getTime()), $intern_45), $intern_45), this$static.milliseconds)); + if (this$static.ambiguousYear) { + defaultCenturyStart = new Date_0; + $setYear(defaultCenturyStart, defaultCenturyStart.jsdate.getFullYear() - $intern_47 - 80); + lt(fromDouble_0(date.jsdate.getTime()), fromDouble_0(defaultCenturyStart.jsdate.getTime())) && $setYear(date, defaultCenturyStart.jsdate.getFullYear() - $intern_47 + 100); + } + if (this$static.dayOfWeek >= 0) { + if (this$static.dayOfMonth == -1) { + adjustment = (7 + this$static.dayOfWeek - date.jsdate.getDay()) % 7; + adjustment > 3 && (adjustment -= 7); + orgMonth = date.jsdate.getMonth(); + $setDate(date, date.jsdate.getDate() + adjustment); + date.jsdate.getMonth() != orgMonth && $setDate(date, date.jsdate.getDate() + (adjustment > 0?-7:7)); + } + else { + if (date.jsdate.getDay() != this$static.dayOfWeek) { + return false; + } + } + } + if (this$static.tzOffset > $intern_42) { + offset = date.jsdate.getTimezoneOffset(); + $setTime(date, add_20(fromDouble_0(date.jsdate.getTime()), (this$static.tzOffset - offset) * 60 * $intern_45)); + } + return true; +} + +function DateRecord(){ + Date_0.call(this); + this.era = -1; + this.ambiguousYear = false; + this.year = $intern_42; + this.month = -1; + this.dayOfMonth = -1; + this.ampm = -1; + this.midnightIs24 = false; + this.hours = -1; + this.minutes = -1; + this.seconds = -1; + this.milliseconds = -1; + this.dayOfWeek = -1; + this.tzOffset = $intern_42; +} + +defineClass(1915, 199, $intern_49, DateRecord); +_.ambiguousYear = false; +_.ampm = 0; +_.dayOfMonth = 0; +_.dayOfWeek = 0; +_.era = 0; +_.hours = 0; +_.midnightIs24 = false; +_.milliseconds = 0; +_.minutes = 0; +_.month = 0; +_.seconds = 0; +_.tzOffset = 0; +_.year = 0; +var Lcom_google_gwt_i18n_shared_impl_DateRecord_2_classLit = createForClass('com.google.gwt.i18n.shared.impl', 'DateRecord', 1915); +defineClass(1966, 1, {}); +_.isArray_0 = function isArray(){ + return null; +} +; +_.isBoolean = function isBoolean(){ + return null; +} +; +_.isNumber = function isNumber(){ + return null; +} +; +_.isObject = function isObject(){ + return null; +} +; +_.isString = function isString(){ + return null; +} +; +var Lcom_google_gwt_json_client_JSONValue_2_classLit = createForClass('com.google.gwt.json.client', 'JSONValue', 1966); +function $get_8(this$static, index_0){ + var v = this$static.jsArray[index_0]; + var func = ($clinit_JSONParser() , typeMap)[typeof v]; + return func?func(v):throwUnknownTypeException(typeof v); +} + +function $set_0(this$static, index_0, value_0){ + var previous; + previous = $get_8(this$static, index_0); + $set0(this$static, index_0, value_0); + return previous; +} + +function $set0(this$static, index_0, value_0){ + if (value_0) { + var func = value_0.getUnwrapper(); + value_0 = func(value_0); + } + else { + value_0 = undefined; + } + this$static.jsArray[index_0] = value_0; +} + +function JSONArray(){ + this.jsArray = []; +} + +function JSONArray_0(arr){ + this.jsArray = arr; +} + +function unwrap(value_0){ + return value_0.jsArray; +} + +defineClass(216, 1966, {216:1}, JSONArray, JSONArray_0); +_.equals_0 = function equals_31(other){ + if (!instanceOf(other, 216)) { + return false; + } + return $equals_3(this.jsArray, castTo(other, 216).jsArray); +} +; +_.getUnwrapper = function getUnwrapper(){ + return unwrap; +} +; +_.hashCode_1 = function hashCode_31(){ + return $hashCode(this.jsArray); +} +; +_.isArray_0 = function isArray_0(){ + return this; +} +; +_.toString_0 = function toString_32(){ + var c, i, sb; + sb = new StringBuilder_1('['); + for (i = 0 , c = this.jsArray.length; i < c; i++) { + i > 0 && (sb.string += ',' , sb); + $append_10(sb, $get_8(this, i)); + } + sb.string += ']'; + return sb.string; +} +; +var Lcom_google_gwt_json_client_JSONArray_2_classLit = createForClass('com.google.gwt.json.client', 'JSONArray', 216); +function $clinit_JSONBoolean(){ + $clinit_JSONBoolean = emptyMethod; + FALSE = new JSONBoolean(false); + TRUE = new JSONBoolean(true); +} + +function JSONBoolean(value_0){ + this.value_0 = value_0; +} + +function unwrap_0(value_0){ + return value_0.value_0; +} + +defineClass(483, 1966, {483:1}, JSONBoolean); +_.getUnwrapper = function getUnwrapper_0(){ + return unwrap_0; +} +; +_.isBoolean = function isBoolean_0(){ + return this; +} +; +_.toString_0 = function toString_33(){ + return $clinit_Boolean() , '' + this.value_0; +} +; +_.value_0 = false; +var FALSE, TRUE; +var Lcom_google_gwt_json_client_JSONBoolean_2_classLit = createForClass('com.google.gwt.json.client', 'JSONBoolean', 483); +function JSONException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(985, 60, $intern_43, JSONException); +var Lcom_google_gwt_json_client_JSONException_2_classLit = createForClass('com.google.gwt.json.client', 'JSONException', 985); +function $clinit_JSONNull(){ + $clinit_JSONNull = emptyMethod; + instance_1 = new JSONNull; +} + +function JSONNull(){ +} + +function unwrap_1(){ + return null; +} + +defineClass(1023, 1966, {}, JSONNull); +_.getUnwrapper = function getUnwrapper_1(){ + return unwrap_1; +} +; +_.toString_0 = function toString_34(){ + return 'null'; +} +; +var instance_1; +var Lcom_google_gwt_json_client_JSONNull_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNull', 1023); +function JSONNumber(value_0){ + this.value_0 = value_0; +} + +function unwrap_2(value_0){ + return value_0.value_0; +} + +defineClass(258, 1966, {258:1}, JSONNumber); +_.equals_0 = function equals_32(other){ + if (!instanceOf(other, 258)) { + return false; + } + return this.value_0 == castTo(other, 258).value_0; +} +; +_.getUnwrapper = function getUnwrapper_2(){ + return unwrap_2; +} +; +_.hashCode_1 = function hashCode_32(){ + return $hashCode_0(this.value_0); +} +; +_.isNumber = function isNumber_0(){ + return this; +} +; +_.toString_0 = function toString_35(){ + return this.value_0 + ''; +} +; +_.value_0 = 0; +var Lcom_google_gwt_json_client_JSONNumber_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNumber', 258); +function $computeKeys0(this$static, result){ + var jsObject = this$static.jsObject; + var i = 0; + for (var key in jsObject) { + jsObject.hasOwnProperty(key) && (result[i++] = key); + } + return result; +} + +function $containsKey_2(this$static, key){ + return key in this$static.jsObject; +} + +function $get_9(this$static, key){ + if (key == null) { + throw toJs(new NullPointerException); + } + return $get0(this$static, key); +} + +function $get0(this$static, key){ + var jsObject = this$static.jsObject; + var v; + key = String(key); + jsObject.hasOwnProperty(key) && (v = jsObject[key]); + var func = ($clinit_JSONParser() , typeMap)[typeof v]; + var ret = func?func(v):throwUnknownTypeException(typeof v); + return ret; +} + +function $put_5(this$static, key, jsonValue){ + var previous; + if (key == null) { + throw toJs(new NullPointerException); + } + previous = $get_9(this$static, key); + $put0(this$static, key, jsonValue); + return previous; +} + +function $put0(this$static, key, value_0){ + if (value_0) { + var func = value_0.getUnwrapper(); + this$static.jsObject[key] = func(value_0); + } + else { + delete this$static.jsObject[key]; + } +} + +function JSONObject(){ + JSONObject_0.call(this, {}); +} + +function JSONObject_0(jsValue){ + this.jsObject = jsValue; +} + +function unwrap_3(value_0){ + return value_0.jsObject; +} + +defineClass(183, 1966, {183:1}, JSONObject, JSONObject_0); +_.equals_0 = function equals_33(other){ + if (!instanceOf(other, 183)) { + return false; + } + return $equals_3(this.jsObject, castTo(other, 183).jsObject); +} +; +_.getUnwrapper = function getUnwrapper_3(){ + return unwrap_3; +} +; +_.hashCode_1 = function hashCode_33(){ + return $hashCode(this.jsObject); +} +; +_.isObject = function isObject_0(){ + return this; +} +; +_.toString_0 = function toString_36(){ + var first, key, key$array, key$index, key$max, keys_0, sb; + sb = new StringBuilder_1('{'); + first = true; + keys_0 = $computeKeys0(this, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)); + for (key$array = keys_0 , key$index = 0 , key$max = key$array.length; key$index < key$max; ++key$index) { + key = key$array[key$index]; + first?(first = false):(sb.string += ', ' , sb); + $append_11(sb, escapeValue(key)); + sb.string += ':'; + $append_10(sb, $get_9(this, key)); + } + sb.string += '}'; + return sb.string; +} +; +var Lcom_google_gwt_json_client_JSONObject_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject', 183); +function JSONObject$1(this$0, val$keys){ + this.this$01 = this$0; + this.val$keys2 = val$keys; +} + +defineClass(596, $intern_9, $intern_10, JSONObject$1); +_.contains = function contains_27(o){ + return instanceOfString(o) && $containsKey_2(this.this$01, castToString(o)); +} +; +_.iterator_0 = function iterator_45(){ + return new AbstractList$IteratorImpl(new Arrays$ArrayList(this.val$keys2)); +} +; +_.size_1 = function size_36(){ + return this.val$keys2.length; +} +; +var Lcom_google_gwt_json_client_JSONObject$1_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject/1', 596); +function $clinit_JSONParser(){ + $clinit_JSONParser = emptyMethod; + typeMap = {'boolean':createBoolean, 'number':createNumber, 'string':createString, 'object':createObject, 'function':createObject, 'undefined':createUndefined}; +} + +function createBoolean(v){ + return $clinit_JSONBoolean() , v?TRUE:FALSE; +} + +function createNumber(v){ + return new JSONNumber(v); +} + +function createObject(o){ + if (!o) { + return $clinit_JSONNull() , instance_1; + } + var v = o.valueOf?o.valueOf():o; + if (v !== o) { + var func = typeMap[typeof v]; + return func?func(v):throwUnknownTypeException(typeof v); + } + else if (o instanceof Array || o instanceof $wnd.Array) { + return new JSONArray_0(o); + } + else { + return new JSONObject_0(o); + } +} + +function createString(v){ + return new JSONString(v); +} + +function createUndefined(){ + return null; +} + +function throwUnknownTypeException(typeString){ + $clinit_JSONParser(); + throw toJs(new JSONException("Unexpected typeof result '" + typeString + "'; please report this bug to the GWT team")); +} + +var typeMap; +function JSONString(value_0){ + if (value_0 == null) { + throw toJs(new NullPointerException); + } + this.value_0 = value_0; +} + +function unwrap_4(value_0){ + return value_0.value_0; +} + +defineClass(204, 1966, {204:1}, JSONString); +_.equals_0 = function equals_34(other){ + if (!instanceOf(other, 204)) { + return false; + } + return $equals_5(this.value_0, castTo(other, 204).value_0); +} +; +_.getUnwrapper = function getUnwrapper_4(){ + return unwrap_4; +} +; +_.hashCode_1 = function hashCode_34(){ + return getHashCode_1(this.value_0); +} +; +_.isString = function isString_0(){ + return this; +} +; +_.toString_0 = function toString_37(){ + return escapeValue(this.value_0); +} +; +var Lcom_google_gwt_json_client_JSONString_2_classLit = createForClass('com.google.gwt.json.client', 'JSONString', 204); +function canSet(array, value_0){ + var elementTypeCategory; + switch (getElementTypeCategory(array)) { + case 6: + return instanceOfString(value_0); + case 7: + return instanceOfDouble(value_0); + case 8: + return instanceOfBoolean(value_0); + case 3: + return Array.isArray(value_0) && (elementTypeCategory = getElementTypeCategory(value_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16)); + case 11: + return value_0 != null && typeof value_0 === 'function'; + case 12: + return value_0 != null && (typeof value_0 === 'object' || typeof value_0 == 'function'); + case 0: + return canCast(value_0, array.__elementTypeId$); + case 2: + return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn); + case 1: + return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn) || canCast(value_0, array.__elementTypeId$); + default:return true; + } +} + +function getClassLiteralForArray(clazz, dimensions){ + return getClassLiteralForArray_0(clazz, dimensions); +} + +function getElementTypeCategory(array){ + return array.__elementTypeCategory$ == null?10:array.__elementTypeCategory$; +} + +function initMultidimensionalArray(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, count){ + return initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, 0, count); +} + +function initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count){ + var elementTypeCategory, i, isLastDimension, length_0, result; + length_0 = dimExprs[index_0]; + isLastDimension = index_0 == count - 1; + elementTypeCategory = isLastDimension?leafElementTypeCategory:0; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + leafElementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, count - index_0), castableTypeMapExprs[index_0], elementTypeIds[index_0], elementTypeCategory, result); + if (!isLastDimension) { + ++index_0; + for (i = 0; i < length_0; ++i) { + result[i] = initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count); + } + } + return result; +} + +function initUnidimensionalArray(leafClassLiteral, castableTypeMap, elementTypeId, length_0, elementTypeCategory, dimensions){ + var result; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + elementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, dimensions), castableTypeMap, elementTypeId, elementTypeCategory, result); + return result; +} + +function initializeArrayElementsWithDefaults(elementTypeCategory, length_0){ + var array = new Array(length_0); + var initValue; + switch (elementTypeCategory) { + case 14: + case 15: + initValue = 0; + break; + case 16: + initValue = false; + break; + default:return array; + } + for (var i = 0; i < length_0; ++i) { + array[i] = initValue; + } + return array; +} + +function isJavaArray(src_0){ + return Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function setCheck(array, index_0, value_0){ + checkCriticalArrayType(value_0 == null || canSet(array, value_0)); + return array[index_0] = value_0; +} + +function stampJavaTypeInfo(arrayClass, castableTypeMap, elementTypeId, elementTypeCategory, array){ + array.___clazz = arrayClass; + array.castableTypeMap = castableTypeMap; + array.typeMarker = typeMarkerFn; + array.__elementTypeId$ = elementTypeId; + array.__elementTypeCategory$ = elementTypeCategory; + return array; +} + +function stampJavaTypeInfo_0(array, referenceType){ + getElementTypeCategory(referenceType) != 10 && stampJavaTypeInfo(getClass__Ljava_lang_Class___devirtual$(referenceType), referenceType.castableTypeMap, referenceType.__elementTypeId$, getElementTypeCategory(referenceType), array); + return array; +} + +function create_0(value_0){ + var a0, a1, a2; + a0 = value_0 & $intern_50; + a1 = value_0 >> 22 & $intern_50; + a2 = value_0 < 0?$intern_51:0; + return create0(a0, a1, a2); +} + +function create_1(a){ + return create0(a.l, a.m, a.h); +} + +function create0(l, m, h){ + return {l:l, m:m, h:h}; +} + +function divMod(a, b, computeRemainder){ + var aIsCopy, aIsMinValue, aIsNegative, bpower, c, negative; + if (b.l == 0 && b.m == 0 && b.h == 0) { + throw toJs(new ArithmeticException('divide by zero')); + } + if (a.l == 0 && a.m == 0 && a.h == 0) { + computeRemainder && (remainder = create0(0, 0, 0)); + return create0(0, 0, 0); + } + if (b.h == $intern_52 && b.m == 0 && b.l == 0) { + return divModByMinValue(a, computeRemainder); + } + negative = false; + if (b.h >> 19 != 0) { + b = neg(b); + negative = !negative; + } + bpower = powerOfTwo(b); + aIsNegative = false; + aIsMinValue = false; + aIsCopy = false; + if (a.h == $intern_52 && a.m == 0 && a.l == 0) { + aIsMinValue = true; + aIsNegative = true; + if (bpower == -1) { + a = create_1(($clinit_BigLongLib$Const() , MAX_VALUE)); + aIsCopy = true; + negative = !negative; + } + else { + c = shr(a, bpower); + negative && negate(c); + computeRemainder && (remainder = create0(0, 0, 0)); + return c; + } + } + else if (a.h >> 19 != 0) { + aIsNegative = true; + a = neg(a); + aIsCopy = true; + negative = !negative; + } + if (bpower != -1) { + return divModByShift(a, bpower, negative, aIsNegative, computeRemainder); + } + if (compare_1(a, b) < 0) { + computeRemainder && (aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h))); + return create0(0, 0, 0); + } + return divModHelper(aIsCopy?a:create0(a.l, a.m, a.h), b, negative, aIsNegative, aIsMinValue, computeRemainder); +} + +function divModByMinValue(a, computeRemainder){ + if (a.h == $intern_52 && a.m == 0 && a.l == 0) { + computeRemainder && (remainder = create0(0, 0, 0)); + return create_1(($clinit_BigLongLib$Const() , ONE)); + } + computeRemainder && (remainder = create0(a.l, a.m, a.h)); + return create0(0, 0, 0); +} + +function divModByShift(a, bpower, negative, aIsNegative, computeRemainder){ + var c; + c = shr(a, bpower); + negative && negate(c); + if (computeRemainder) { + a = maskRight(a, bpower); + aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h)); + } + return c; +} + +function divModHelper(a, b, negative, aIsNegative, aIsMinValue, computeRemainder){ + var bshift, gte, quotient, shift_0, a1, a2, a0; + shift_0 = numberOfLeadingZeros(b) - numberOfLeadingZeros(a); + bshift = shl(b, shift_0); + quotient = create0(0, 0, 0); + while (shift_0 >= 0) { + gte = trialSubtract(a, bshift); + if (gte) { + shift_0 < 22?(quotient.l |= 1 << shift_0 , undefined):shift_0 < 44?(quotient.m |= 1 << shift_0 - 22 , undefined):(quotient.h |= 1 << shift_0 - 44 , undefined); + if (a.l == 0 && a.m == 0 && a.h == 0) { + break; + } + } + a1 = bshift.m; + a2 = bshift.h; + a0 = bshift.l; + bshift.h = a2 >>> 1; + bshift.m = a1 >>> 1 | (a2 & 1) << 21; + bshift.l = a0 >>> 1 | (a1 & 1) << 21; + --shift_0; + } + negative && negate(quotient); + if (computeRemainder) { + if (aIsNegative) { + remainder = neg(a); + aIsMinValue && (remainder = sub_1(remainder, ($clinit_BigLongLib$Const() , ONE))); + } + else { + remainder = create0(a.l, a.m, a.h); + } + } + return quotient; +} + +function maskRight(a, bits){ + var b0, b1, b2; + if (bits <= 22) { + b0 = a.l & (1 << bits) - 1; + b1 = b2 = 0; + } + else if (bits <= 44) { + b0 = a.l; + b1 = a.m & (1 << bits - 22) - 1; + b2 = 0; + } + else { + b0 = a.l; + b1 = a.m; + b2 = a.h & (1 << bits - 44) - 1; + } + return create0(b0, b1, b2); +} + +function negate(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_50; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; + a.l = neg0; + a.m = neg1; + a.h = neg2; +} + +function numberOfLeadingZeros(a){ + var b1, b2; + b2 = numberOfLeadingZeros_0(a.h); + if (b2 == 32) { + b1 = numberOfLeadingZeros_0(a.m); + return b1 == 32?numberOfLeadingZeros_0(a.l) + 32:b1 + 20 - 10; + } + else { + return b2 - 12; + } +} + +function powerOfTwo(a){ + var h, l, m; + l = a.l; + if ((l & l - 1) != 0) { + return -1; + } + m = a.m; + if ((m & m - 1) != 0) { + return -1; + } + h = a.h; + if ((h & h - 1) != 0) { + return -1; + } + if (h == 0 && m == 0 && l == 0) { + return -1; + } + if (h == 0 && m == 0 && l != 0) { + return numberOfTrailingZeros(l); + } + if (h == 0 && m != 0 && l == 0) { + return numberOfTrailingZeros(m) + 22; + } + if (h != 0 && m == 0 && l == 0) { + return numberOfTrailingZeros(h) + 44; + } + return -1; +} + +function toDoubleHelper(a){ + return a.l + a.m * $intern_53 + a.h * $intern_54; +} + +function trialSubtract(a, b){ + var sum0, sum1, sum2; + sum2 = a.h - b.h; + if (sum2 < 0) { + return false; + } + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 += sum1 >> 22; + if (sum2 < 0) { + return false; + } + a.l = sum0 & $intern_50; + a.m = sum1 & $intern_50; + a.h = sum2 & $intern_51; + return true; +} + +var remainder; +function add_19(a, b){ + var sum0, sum1, sum2; + sum0 = a.l + b.l; + sum1 = a.m + b.m + (sum0 >> 22); + sum2 = a.h + b.h + (sum1 >> 22); + return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); +} + +function and(a, b){ + return create0(a.l & b.l, a.m & b.m, a.h & b.h); +} + +function compare_1(a, b){ + var a0, a1, a2, b0, b1, b2, signA, signB; + signA = a.h >> 19; + signB = b.h >> 19; + if (signA != signB) { + return signB - signA; + } + a2 = a.h; + b2 = b.h; + if (a2 != b2) { + return a2 - b2; + } + a1 = a.m; + b1 = b.m; + if (a1 != b1) { + return a1 - b1; + } + a0 = a.l; + b0 = b.l; + return a0 - b0; +} + +function fromDouble(value_0){ + var a0, a1, a2, negative, result; + if (isNaN(value_0)) { + return $clinit_BigLongLib$Const() , ZERO; + } + if (value_0 < -9223372036854775808) { + return $clinit_BigLongLib$Const() , MIN_VALUE; + } + if (value_0 >= 9223372036854775807) { + return $clinit_BigLongLib$Const() , MAX_VALUE; + } + negative = false; + if (value_0 < 0) { + negative = true; + value_0 = -value_0; + } + a2 = 0; + if (value_0 >= $intern_54) { + a2 = round_int(value_0 / $intern_54); + value_0 -= a2 * $intern_54; + } + a1 = 0; + if (value_0 >= $intern_53) { + a1 = round_int(value_0 / $intern_53); + value_0 -= a1 * $intern_53; + } + a0 = round_int(value_0); + result = create0(a0, a1, a2); + negative && negate(result); + return result; +} + +function mul(a, b){ + var a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c0, c00, c01, c1, c10, c11, c12, c13, c2, c22, c23, c24, p0, p1, p2, p3, p4; + a0 = a.l & 8191; + a1 = a.l >> 13 | (a.m & 15) << 9; + a2 = a.m >> 4 & 8191; + a3 = a.m >> 17 | (a.h & 255) << 5; + a4 = (a.h & 1048320) >> 8; + b0 = b.l & 8191; + b1 = b.l >> 13 | (b.m & 15) << 9; + b2 = b.m >> 4 & 8191; + b3 = b.m >> 17 | (b.h & 255) << 5; + b4 = (b.h & 1048320) >> 8; + p0 = a0 * b0; + p1 = a1 * b0; + p2 = a2 * b0; + p3 = a3 * b0; + p4 = a4 * b0; + if (b1 != 0) { + p1 += a0 * b1; + p2 += a1 * b1; + p3 += a2 * b1; + p4 += a3 * b1; + } + if (b2 != 0) { + p2 += a0 * b2; + p3 += a1 * b2; + p4 += a2 * b2; + } + if (b3 != 0) { + p3 += a0 * b3; + p4 += a1 * b3; + } + b4 != 0 && (p4 += a0 * b4); + c00 = p0 & $intern_50; + c01 = (p1 & 511) << 13; + c0 = c00 + c01; + c10 = p0 >> 22; + c11 = p1 >> 9; + c12 = (p2 & 262143) << 4; + c13 = (p3 & 31) << 17; + c1 = c10 + c11 + c12 + c13; + c22 = p2 >> 18; + c23 = p3 >> 5; + c24 = (p4 & 4095) << 8; + c2 = c22 + c23 + c24; + c1 += c0 >> 22; + c0 &= $intern_50; + c2 += c1 >> 22; + c1 &= $intern_50; + c2 &= $intern_51; + return create0(c0, c1, c2); +} + +function neg(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_50; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; + return create0(neg0, neg1, neg2); +} + +function not(a){ + return create0(~a.l & $intern_50, ~a.m & $intern_50, ~a.h & $intern_51); +} + +function or(a, b){ + return create0(a.l | b.l, a.m | b.m, a.h | b.h); +} + +function shl(a, n){ + var res0, res1, res2; + n &= 63; + if (n < 22) { + res0 = a.l << n; + res1 = a.m << n | a.l >> 22 - n; + res2 = a.h << n | a.m >> 22 - n; + } + else if (n < 44) { + res0 = 0; + res1 = a.l << n - 22; + res2 = a.m << n - 22 | a.l >> 44 - n; + } + else { + res0 = 0; + res1 = 0; + res2 = a.l << n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function shr(a, n){ + var a2, negative, res0, res1, res2; + n &= 63; + a2 = a.h; + negative = (a2 & $intern_52) != 0; + negative && (a2 |= -1048576); + if (n < 22) { + res2 = a2 >> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = negative?$intern_51:0; + res1 = a2 >> n - 22; + res0 = a.m >> n - 22 | a2 << 44 - n; + } + else { + res2 = negative?$intern_51:0; + res1 = negative?$intern_50:0; + res0 = a2 >> n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function shru(a, n){ + var a2, res0, res1, res2; + n &= 63; + a2 = a.h & $intern_51; + if (n < 22) { + res2 = a2 >>> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = 0; + res1 = a2 >>> n - 22; + res0 = a.m >> n - 22 | a.h << 44 - n; + } + else { + res2 = 0; + res1 = 0; + res0 = a2 >>> n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function sub_1(a, b){ + var sum0, sum1, sum2; + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 = a.h - b.h + (sum1 >> 22); + return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); +} + +function toDouble(a){ + if (compare_1(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { + return -toDoubleHelper(neg(a)); + } + return a.l + a.m * $intern_53 + a.h * $intern_54; +} + +function toInt(a){ + return a.l | a.m << 22; +} + +function toString_38(a){ + var digits, rem, res, tenPowerLong, zeroesNeeded; + if (a.l == 0 && a.m == 0 && a.h == 0) { + return '0'; + } + if (a.h == $intern_52 && a.m == 0 && a.l == 0) { + return '-9223372036854775808'; + } + if (a.h >> 19 != 0) { + return '-' + toString_38(neg(a)); + } + rem = a; + res = ''; + while (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + tenPowerLong = create_0($intern_55); + rem = divMod(rem, tenPowerLong, true); + digits = '' + toInt(remainder); + if (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + zeroesNeeded = 9 - digits.length; + for (; zeroesNeeded > 0; zeroesNeeded--) { + digits = '0' + digits; + } + } + res = digits + res; + } + return res; +} + +function xor(a, b){ + return create0(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); +} + +function $clinit_BigLongLib$Const(){ + $clinit_BigLongLib$Const = emptyMethod; + MAX_VALUE = create0($intern_50, $intern_50, 524287); + MIN_VALUE = create0(0, 0, $intern_52); + ONE = create_0(1); + create_0(2); + ZERO = create_0(0); +} + +var MAX_VALUE, MIN_VALUE, ONE, ZERO; +function toJava(e){ + var javaException; + if (instanceOf(e, 78)) { + return e; + } + javaException = e && e.__java$exception; + if (!javaException) { + javaException = new JavaScriptException(e); + captureStackTrace(javaException); + } + return javaException; +} + +function toJs(t){ + return t.backingJsObject; +} + +function add_20(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a + b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul(add_19(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function and_0(a, b){ + return createLongEmul(and(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function compare_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if (!isNaN(result)) { + return result; + } + } + return compare_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b); +} + +function createLongEmul(big_0){ + var a2; + a2 = big_0.h; + if (a2 == 0) { + return big_0.l + big_0.m * $intern_53; + } + if (a2 == $intern_51) { + return big_0.l + big_0.m * $intern_53 - $intern_54; + } + return big_0; +} + +function div(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a / b; + if ($intern_56 < result && result < $intern_54) { + return result < 0?$wnd.Math.ceil(result):$wnd.Math.floor(result); + } + } + return createLongEmul(divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, false)); +} + +function eq(a, b){ + return compare_2(a, b) == 0; +} + +function fromDouble_0(value_0){ + if ($intern_56 < value_0 && value_0 < $intern_54) { + return value_0 < 0?$wnd.Math.ceil(value_0):$wnd.Math.floor(value_0); + } + return createLongEmul(fromDouble(value_0)); +} + +function gt(a, b){ + return compare_2(a, b) > 0; +} + +function gte_0(a, b){ + return compare_2(a, b) >= 0; +} + +function isSmallLong0(value_0){ + return typeof value_0 === 'number'; +} + +function lt(a, b){ + return compare_2(a, b) < 0; +} + +function mod(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a % b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul((divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, true) , remainder)); +} + +function mul_0(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a * b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul(mul(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function neg_0(a){ + var result; + if (isSmallLong0(a)) { + result = 0 - a; + if (!isNaN(result)) { + return result; + } + } + return createLongEmul(neg(a)); +} + +function neq(a, b){ + return compare_2(a, b) != 0; +} + +function not_0(a){ + return createLongEmul(not(isSmallLong0(a)?toBigLong(a):a)); +} + +function or_0(a, b){ + return createLongEmul(or(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function shl_0(a, n){ + return createLongEmul(shl(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function shr_0(a, n){ + return createLongEmul(shr(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function shru_0(a, n){ + return createLongEmul(shru(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function sub_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul(sub_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function toBigLong(longValue){ + var a0, a1, a3, value_0; + value_0 = longValue; + a3 = 0; + if (value_0 < 0) { + value_0 += $intern_54; + a3 = $intern_51; + } + a1 = round_int(value_0 / $intern_53); + a0 = round_int(value_0 - a1 * $intern_53); + return create0(a0, a1, a3); +} + +function toDouble_0(a){ + var d; + if (isSmallLong0(a)) { + d = a; + return d == -0.?0:d; + } + return toDouble(a); +} + +function toInt_0(a){ + if (isSmallLong0(a)) { + return a | 0; + } + return toInt(a); +} + +function toString_39(a){ + if (isSmallLong0(a)) { + return '' + a; + } + return toString_38(a); +} + +function xor_0(a, b){ + return createLongEmul(xor(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function init(){ + $clinit_ElkJs(); + exportLayout(); +} + +function $split(this$static, input_0){ + return input_0.split(this$static); +} + +defineClass(1962, 1, {525:1}); +var Ljava_io_OutputStream_2_classLit = createForClass('java.io', 'OutputStream', 1962); +defineClass(1963, 1962, {525:1}); +var Ljava_io_FilterOutputStream_2_classLit = createForClass('java.io', 'FilterOutputStream', 1963); +function PrintStream(){ +} + +defineClass(866, 1963, {525:1}, PrintStream); +var Ljava_io_PrintStream_2_classLit = createForClass('java.io', 'PrintStream', 866); +function $replace0(this$static, start_0, end, toInsert){ + this$static.string = $substring_1(this$static.string, 0, start_0) + ('' + toInsert) + $substring_0(this$static.string, end); +} + +function $substring(this$static, end){ + return $substring_1(this$static.string, 0, end); +} + +function AbstractStringBuilder(string){ + this.string = string; +} + +defineClass(418, 1, {475:1}); +_.toString_0 = function toString_41(){ + return this.string; +} +; +var Ljava_lang_AbstractStringBuilder_2_classLit = createForClass('java.lang', 'AbstractStringBuilder', 418); +function ArithmeticException(explanation){ + RuntimeException_0.call(this, explanation); +} + +defineClass(529, 60, $intern_43, ArithmeticException); +var Ljava_lang_ArithmeticException_2_classLit = createForClass('java.lang', 'ArithmeticException', 529); +function IndexOutOfBoundsException(){ + RuntimeException.call(this); +} + +function IndexOutOfBoundsException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(73, 60, $intern_57, IndexOutOfBoundsException, IndexOutOfBoundsException_0); +var Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'IndexOutOfBoundsException', 73); +function ArrayIndexOutOfBoundsException(){ + IndexOutOfBoundsException.call(this); +} + +function ArrayIndexOutOfBoundsException_0(msg){ + IndexOutOfBoundsException_0.call(this, msg); +} + +defineClass(320, 73, {3:1, 320:1, 102:1, 73:1, 60:1, 78:1}, ArrayIndexOutOfBoundsException, ArrayIndexOutOfBoundsException_0); +var Ljava_lang_ArrayIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'ArrayIndexOutOfBoundsException', 320); +function ArrayStoreException(){ + RuntimeException.call(this); +} + +function ArrayStoreException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(528, 60, $intern_43, ArrayStoreException, ArrayStoreException_0); +var Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang', 'ArrayStoreException', 528); +function Error_0(message){ + Throwable_0.call(this, message); +} + +function Error_1(message, cause){ + Throwable_1.call(this, message, cause); +} + +defineClass(289, 78, $intern_58, Error_0); +var Ljava_lang_Error_2_classLit = createForClass('java.lang', 'Error', 289); +function AssertionError(){ + Throwable.call(this); +} + +function AssertionError_0(message){ + Error_1.call(this, message == null?'null':toString_40(message), instanceOf(message, 78)?castTo(message, 78):null); +} + +defineClass(194, 289, $intern_58, AssertionError, AssertionError_0); +var Ljava_lang_AssertionError_2_classLit = createForClass('java.lang', 'AssertionError', 194); +function $clinit_Boolean(){ + $clinit_Boolean = emptyMethod; + FALSE_0 = false; + TRUE_0 = true; +} + +function $booleanValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $compareTo_1(this$static, b){ + return compare_3((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); +} + +function compare_3(x_0, y_0){ + $clinit_Boolean(); + return x_0 == y_0?0:x_0?1:-1; +} + +function compareTo_Ljava_lang_Object__I__devirtual$(this$static, other){ + $clinit_Boolean(); + return instanceOfString(this$static)?$compareTo_9(this$static, castToString(other)):instanceOfDouble(this$static)?$compareTo_4(this$static, castToDouble(other)):instanceOfBoolean(this$static)?$compareTo_1(this$static, castToBoolean(other)):this$static.compareTo_0(other); +} + +booleanCastMap = {3:1, 476:1, 35:1}; +var FALSE_0, TRUE_0; +var Ljava_lang_Boolean_2_classLit = createForClass('java.lang', 'Boolean', 476); +function __parseAndValidateDouble(s){ + floatRegex == null && (floatRegex = new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$')); + if (!floatRegex.test(s)) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + return parseFloat(s); +} + +function __parseAndValidateInt(s, lowerBound, upperBound){ + var i, isTooLow, length_0, startIndex, toReturn; + if (s == null) { + throw toJs(new NumberFormatException('null')); + } + length_0 = s.length; + startIndex = length_0 > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 45 || (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 43))?1:0; + for (i = startIndex; i < length_0; i++) { + if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + } + toReturn = parseInt(s, 10); + isTooLow = toReturn < lowerBound; + if (isNaN(toReturn)) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + else if (isTooLow || toReturn > upperBound) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + return toReturn; +} + +function __parseAndValidateLong(s){ + var c, firstTime, head, i, length_0, maxDigits, minValue, negative, orig, radixPower, toReturn; + if (s == null) { + throw toJs(new NumberFormatException('null')); + } + orig = s; + length_0 = s.length; + negative = false; + if (length_0 > 0) { + c = (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0)); + if (c == 45 || c == 43) { + s = s.substr(1); + --length_0; + negative = c == 45; + } + } + if (length_0 == 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + while (s.length > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 48)) { + s = s.substr(1); + --length_0; + } + if (length_0 > ($clinit_Number$__ParseLong() , maxLengthForRadix)[10]) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + for (i = 0; i < length_0; i++) { + if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + } + toReturn = 0; + maxDigits = maxDigitsForRadix[10]; + radixPower = maxDigitsRadixPower[10]; + minValue = neg_0(maxValueForRadix[10]); + firstTime = true; + head = length_0 % maxDigits; + if (head > 0) { + toReturn = -parseInt(s.substr(0, head), 10); + s = s.substr(head); + length_0 -= head; + firstTime = false; + } + while (length_0 >= maxDigits) { + head = parseInt(s.substr(0, maxDigits), 10); + s = s.substr(maxDigits); + length_0 -= maxDigits; + if (firstTime) { + firstTime = false; + } + else { + if (compare_2(toReturn, minValue) < 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + toReturn = mul_0(toReturn, radixPower); + } + toReturn = sub_2(toReturn, head); + } + if (compare_2(toReturn, 0) > 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + if (!negative) { + toReturn = neg_0(toReturn); + if (compare_2(toReturn, 0) < 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + } + return toReturn; +} + +function doubleValue__D__devirtual$(this$static){ + return instanceOfDouble(this$static)?(checkCriticalNotNull(this$static) , this$static):this$static.doubleValue(); +} + +defineClass(236, 1, {3:1, 236:1}); +var floatRegex; +var Ljava_lang_Number_2_classLit = createForClass('java.lang', 'Number', 236); +function $compareTo_2(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Byte(value_0){ + this.value_0 = value_0; +} + +function valueOf_2(b){ + var rebase, result; + rebase = b + 128; + result = ($clinit_Byte$BoxedValues() , boxedValues)[rebase]; + !result && (result = boxedValues[rebase] = new Byte(b)); + return result; +} + +defineClass(217, 236, {3:1, 217:1, 35:1, 236:1}, Byte); +_.compareTo_0 = function compareTo_5(b){ + return $compareTo_2(this, castTo(b, 217)); +} +; +_.doubleValue = function doubleValue_0(){ + return this.value_0; +} +; +_.equals_0 = function equals_35(o){ + return instanceOf(o, 217) && castTo(o, 217).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_35(){ + return this.value_0; +} +; +_.toString_0 = function toString_42(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Byte_2_classLit = createForClass('java.lang', 'Byte', 217); +function $clinit_Byte$BoxedValues(){ + $clinit_Byte$BoxedValues = emptyMethod; + boxedValues = initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, 256, 0, 1); +} + +var boxedValues; +function $compareTo_3(this$static, c){ + return this$static.value_0 - c.value_0; +} + +function Character(value_0){ + this.value_0 = value_0; +} + +function digit_0(c){ + if (c >= 48 && c < 48 + $wnd.Math.min(10, 10)) { + return c - 48; + } + if (c >= 97 && c < 97) { + return c - 97 + 10; + } + if (c >= 65 && c < 65) { + return c - 65 + 10; + } + return -1; +} + +function valueOf_3(c){ + var result; + if (c < 128) { + result = ($clinit_Character$BoxedValues() , boxedValues_0)[c]; + !result && (result = boxedValues_0[c] = new Character(c)); + return result; + } + return new Character(c); +} + +defineClass(172, 1, {3:1, 172:1, 35:1}, Character); +_.compareTo_0 = function compareTo_6(c){ + return $compareTo_3(this, castTo(c, 172)); +} +; +_.equals_0 = function equals_36(o){ + return instanceOf(o, 172) && castTo(o, 172).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_36(){ + return this.value_0; +} +; +_.toString_0 = function toString_43(){ + return String.fromCharCode(this.value_0); +} +; +_.value_0 = 0; +var digitRegex; +var Ljava_lang_Character_2_classLit = createForClass('java.lang', 'Character', 172); +function $clinit_Character$BoxedValues(){ + $clinit_Character$BoxedValues = emptyMethod; + boxedValues_0 = initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, 128, 0, 1); +} + +var boxedValues_0; +function ClassCastException(){ + RuntimeException.call(this); +} + +function ClassCastException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(205, 60, {3:1, 205:1, 102:1, 60:1, 78:1}, ClassCastException, ClassCastException_0); +var Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang', 'ClassCastException', 205); +function $compareTo_4(this$static, b){ + return compare_4((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); +} + +function $doubleValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $equals_4(this$static, o){ + return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(o); +} + +function $floatValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $hashCode_0(this$static){ + return round_int((checkCriticalNotNull(this$static) , this$static)); +} + +function $intValue(this$static){ + return round_int((checkCriticalNotNull(this$static) , this$static)); +} + +function $toString_6(this$static){ + return '' + (checkCriticalNotNull(this$static) , this$static); +} + +function compare_4(x_0, y_0){ + if (x_0 < y_0) { + return -1; + } + if (x_0 > y_0) { + return 1; + } + if (x_0 == y_0) { + return x_0 == 0?compare_4(1 / x_0, 1 / y_0):0; + } + return isNaN(x_0)?isNaN(y_0)?0:1:-1; +} + +function isInfinite(x_0){ + return !isNaN(x_0) && !isFinite(x_0); +} + +doubleCastMap = {3:1, 35:1, 333:1, 236:1}; +var Ljava_lang_Double_2_classLit = createForClass('java.lang', 'Double', 333); +function $compareTo_5(this$static, b){ + return compare_4(this$static.value_0, b.value_0); +} + +function Float(value_0){ + this.value_0 = value_0; +} + +function Float_0(s){ + this.value_0 = parseFloat_0(s); +} + +function parseFloat_0(s){ + var doubleValue; + doubleValue = __parseAndValidateDouble(s); + if (doubleValue > 3.4028234663852886E38) { + return $intern_59; + } + else if (doubleValue < -3.4028234663852886E38) { + return $intern_60; + } + return doubleValue; +} + +defineClass(155, 236, {3:1, 35:1, 155:1, 236:1}, Float, Float_0); +_.compareTo_0 = function compareTo_7(b){ + return $compareTo_5(this, castTo(b, 155)); +} +; +_.doubleValue = function doubleValue_1(){ + return this.value_0; +} +; +_.equals_0 = function equals_37(o){ + return instanceOf(o, 155) && $equals_4(this.value_0, castTo(o, 155).value_0); +} +; +_.hashCode_1 = function hashCode_37(){ + return round_int(this.value_0); +} +; +_.toString_0 = function toString_45(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Float_2_classLit = createForClass('java.lang', 'Float', 155); +function IllegalArgumentException(){ + RuntimeException.call(this); +} + +function IllegalArgumentException_0(message){ + RuntimeException_0.call(this, message); +} + +function IllegalArgumentException_1(cause){ + Throwable_1.call(this, 'The given string does not match the expected format for individual spacings.', cause); +} + +defineClass(32, 60, {3:1, 102:1, 32:1, 60:1, 78:1}, IllegalArgumentException, IllegalArgumentException_0, IllegalArgumentException_1); +var Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang', 'IllegalArgumentException', 32); +function IllegalStateException(){ + RuntimeException.call(this); +} + +function IllegalStateException_0(s){ + RuntimeException_0.call(this, s); +} + +defineClass(71, 60, $intern_43, IllegalStateException, IllegalStateException_0); +var Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang', 'IllegalStateException', 71); +function $compareTo_6(this$static, b){ + return compare_5(this$static.value_0, b.value_0); +} + +function Integer(value_0){ + this.value_0 = value_0; +} + +function bitCount(x_0){ + x_0 -= x_0 >> 1 & 1431655765; + x_0 = (x_0 >> 2 & 858993459) + (x_0 & 858993459); + x_0 = (x_0 >> 4) + x_0 & 252645135; + x_0 += x_0 >> 8; + x_0 += x_0 >> 16; + return x_0 & 63; +} + +function compare_5(x_0, y_0){ + return x_0 < y_0?-1:x_0 > y_0?1:0; +} + +function highestOneBit(i){ + var rtn; + if (i < 0) { + return $intern_42; + } + else if (i == 0) { + return 0; + } + else { + for (rtn = $intern_35; (rtn & i) == 0; rtn >>= 1) + ; + return rtn; + } +} + +function numberOfLeadingZeros_0(i){ + var m, n, y_0; + if (i < 0) { + return 0; + } + else if (i == 0) { + return 32; + } + else { + y_0 = -(i >> 16); + m = y_0 >> 16 & 16; + n = 16 - m; + i = i >> m; + y_0 = i - 256; + m = y_0 >> 16 & 8; + n += m; + i <<= m; + y_0 = i - $intern_61; + m = y_0 >> 16 & 4; + n += m; + i <<= m; + y_0 = i - $intern_17; + m = y_0 >> 16 & 2; + n += m; + i <<= m; + y_0 = i >> 14; + m = y_0 & ~(y_0 >> 1); + return n + 2 - m; + } +} + +function numberOfTrailingZeros(i){ + var r, rtn; + if (i == 0) { + return 32; + } + else { + rtn = 0; + for (r = 1; (r & i) == 0; r <<= 1) { + ++rtn; + } + return rtn; + } +} + +function reverse_1(i){ + var nibbles; + nibbles = ($clinit_Integer$ReverseNibbles() , reverseNibbles); + return nibbles[i >>> 28] | nibbles[i >> 24 & 15] << 4 | nibbles[i >> 20 & 15] << 8 | nibbles[i >> 16 & 15] << 12 | nibbles[i >> 12 & 15] << 16 | nibbles[i >> 8 & 15] << 20 | nibbles[i >> 4 & 15] << 24 | nibbles[i & 15] << 28; +} + +function rotateLeft(i, distance){ + while (distance-- > 0) { + i = i << 1 | (i < 0?1:0); + } + return i; +} + +function valueOf_4(i){ + var rebase, result; + if (i > -129 && i < 128) { + rebase = i + 128; + result = ($clinit_Integer$BoxedValues() , boxedValues_1)[rebase]; + !result && (result = boxedValues_1[rebase] = new Integer(i)); + return result; + } + return new Integer(i); +} + +defineClass(19, 236, {3:1, 35:1, 19:1, 236:1}, Integer); +_.compareTo_0 = function compareTo_8(b){ + return $compareTo_6(this, castTo(b, 19)); +} +; +_.doubleValue = function doubleValue_2(){ + return this.value_0; +} +; +_.equals_0 = function equals_38(o){ + return instanceOf(o, 19) && castTo(o, 19).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_38(){ + return this.value_0; +} +; +_.toString_0 = function toString_46(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Integer_2_classLit = createForClass('java.lang', 'Integer', 19); +function $clinit_Integer$BoxedValues(){ + $clinit_Integer$BoxedValues = emptyMethod; + boxedValues_1 = initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 256, 0, 1); +} + +var boxedValues_1; +function $clinit_Integer$ReverseNibbles(){ + $clinit_Integer$ReverseNibbles = emptyMethod; + reverseNibbles = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); +} + +var reverseNibbles; +function $compareTo_7(this$static, b){ + return compare_6(this$static.value_0, b.value_0); +} + +function Long(value_0){ + this.value_0 = value_0; +} + +function compare_6(x_0, y_0){ + return compare_2(x_0, y_0) < 0?-1:compare_2(x_0, y_0) > 0?1:0; +} + +function valueOf_5(i){ + var rebase, result; + if (compare_2(i, -129) > 0 && compare_2(i, 128) < 0) { + rebase = toInt_0(i) + 128; + result = ($clinit_Long$BoxedValues() , boxedValues_2)[rebase]; + !result && (result = boxedValues_2[rebase] = new Long(i)); + return result; + } + return new Long(i); +} + +defineClass(162, 236, {3:1, 35:1, 162:1, 236:1}, Long); +_.compareTo_0 = function compareTo_9(b){ + return $compareTo_7(this, castTo(b, 162)); +} +; +_.doubleValue = function doubleValue_3(){ + return toDouble_0(this.value_0); +} +; +_.equals_0 = function equals_39(o){ + return instanceOf(o, 162) && eq(castTo(o, 162).value_0, this.value_0); +} +; +_.hashCode_1 = function hashCode_39(){ + return toInt_0(this.value_0); +} +; +_.toString_0 = function toString_47(){ + return '' + toString_39(this.value_0); +} +; +_.value_0 = 0; +var Ljava_lang_Long_2_classLit = createForClass('java.lang', 'Long', 162); +function $clinit_Long$BoxedValues(){ + $clinit_Long$BoxedValues = emptyMethod; + boxedValues_2 = initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 256, 0, 1); +} + +var boxedValues_2; +function max_1(x_0, y_0){ + return compare_2(x_0, y_0) > 0?x_0:y_0; +} + +function signum(d){ + return d == 0 || isNaN(d)?d:d < 0?-1:1; +} + +defineClass(2039, 1, {}); +function NegativeArraySizeException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(1831, 60, $intern_43, NegativeArraySizeException); +var Ljava_lang_NegativeArraySizeException_2_classLit = createForClass('java.lang', 'NegativeArraySizeException', 1831); +function NullPointerException(){ + RuntimeException.call(this); +} + +function NullPointerException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(173, 598, {3:1, 102:1, 173:1, 60:1, 78:1}, NullPointerException, NullPointerException_0); +_.createError = function createError_0(msg){ + return new TypeError(msg); +} +; +var Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang', 'NullPointerException', 173); +function $clinit_Number$__ParseLong(){ + $clinit_Number$__ParseLong = emptyMethod; + var i; + maxDigitsForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); + maxDigitsRadixPower = initUnidimensionalArray(I_classLit, $intern_48, 25, 37, 15, 1); + maxLengthForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); + maxValueForRadix = initUnidimensionalArray(J_classLit, $intern_62, 25, 37, 14, 1); + for (i = 2; i <= 36; i++) { + maxDigitsRadixPower[i] = round_int($wnd.Math.pow(i, maxDigitsForRadix[i])); + maxValueForRadix[i] = div($intern_20, maxDigitsRadixPower[i]); + } +} + +var maxDigitsForRadix, maxDigitsRadixPower, maxLengthForRadix, maxValueForRadix; +function NumberFormatException(message){ + IllegalArgumentException_0.call(this, message); +} + +defineClass(127, 32, {3:1, 102:1, 32:1, 127:1, 60:1, 78:1}, NumberFormatException); +var Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang', 'NumberFormatException', 127); +function $compareTo_8(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Short(value_0){ + this.value_0 = value_0; +} + +function valueOf_6(s){ + var rebase, result; + if (s > -129 && s < 128) { + rebase = s + 128; + result = ($clinit_Short$BoxedValues() , boxedValues_3)[rebase]; + !result && (result = boxedValues_3[rebase] = new Short(s)); + return result; + } + return new Short(s); +} + +defineClass(184, 236, {3:1, 35:1, 236:1, 184:1}, Short); +_.compareTo_0 = function compareTo_10(b){ + return $compareTo_8(this, castTo(b, 184)); +} +; +_.doubleValue = function doubleValue_4(){ + return this.value_0; +} +; +_.equals_0 = function equals_40(o){ + return instanceOf(o, 184) && castTo(o, 184).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_40(){ + return this.value_0; +} +; +_.toString_0 = function toString_48(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Short_2_classLit = createForClass('java.lang', 'Short', 184); +function $clinit_Short$BoxedValues(){ + $clinit_Short$BoxedValues = emptyMethod; + boxedValues_3 = initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 256, 0, 1); +} + +var boxedValues_3; +function StackTraceElement(methodName, fileName, lineNumber){ + this.className = 'Unknown'; + this.methodName = methodName; + this.fileName = fileName; + this.lineNumber = lineNumber; +} + +defineClass(310, 1, {3:1, 310:1}, StackTraceElement); +_.equals_0 = function equals_41(other){ + var st; + if (instanceOf(other, 310)) { + st = castTo(other, 310); + return this.lineNumber == st.lineNumber && this.methodName == st.methodName && this.className == st.className && this.fileName == st.fileName; + } + return false; +} +; +_.hashCode_1 = function hashCode_41(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(this.lineNumber), this.className, this.methodName, this.fileName])); +} +; +_.toString_0 = function toString_49(){ + return this.className + '.' + this.methodName + '(' + (this.fileName != null?this.fileName:'Unknown Source') + (this.lineNumber >= 0?':' + this.lineNumber:'') + ')'; +} +; +_.lineNumber = 0; +var Ljava_lang_StackTraceElement_2_classLit = createForClass('java.lang', 'StackTraceElement', 310); +function $charAt(this$static, index_0){ + checkCriticalStringElementIndex(index_0, this$static.length); + return this$static.charCodeAt(index_0); +} + +function $compareTo_9(this$static, other){ + var a, b; + a = (checkCriticalNotNull(this$static) , this$static); + b = (checkCriticalNotNull(other) , other); + return a == b?0:a < b?-1:1; +} + +function $equals_5(this$static, other){ + return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other); +} + +function $equalsIgnoreCase(this$static, other){ + checkCriticalNotNull(this$static); + if (other == null) { + return false; + } + if ($equals_5(this$static, other)) { + return true; + } + return this$static.length == other.length && $equals_5(this$static.toLowerCase(), other.toLowerCase()); +} + +function $getChars0(this$static, srcBegin, srcEnd, dst, dstBegin){ + while (srcBegin < srcEnd) { + dst[dstBegin++] = $charAt(this$static, srcBegin++); + } +} + +function $indexOf_0(this$static, codePoint, startIndex){ + return $indexOf_2(this$static, fromCodePoint(codePoint), startIndex); +} + +function $indexOf_1(this$static, str){ + return this$static.indexOf(str); +} + +function $indexOf_2(this$static, str, startIndex){ + return this$static.indexOf(str, startIndex); +} + +function $intern(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $lastIndexOf(this$static, str){ + return this$static.lastIndexOf(str); +} + +function $lastIndexOf_0(this$static, str, start_0){ + return this$static.lastIndexOf(str, start_0); +} + +function $split_0(this$static, regex){ + var compiled, count, lastNonEmpty, lastTrail, matchIndex, matchObj, out, trail; + compiled = new RegExp(regex, 'g'); + out = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); + count = 0; + trail = this$static; + lastTrail = null; + while (true) { + matchObj = compiled.exec(trail); + if (matchObj == null || trail == '') { + out[count] = trail; + break; + } + else { + matchIndex = matchObj.index; + out[count] = trail.substr(0, matchIndex); + trail = $substring_1(trail, matchIndex + matchObj[0].length, trail.length); + compiled.lastIndex = 0; + if (lastTrail == trail) { + out[count] = trail.substr(0, 1); + trail = trail.substr(1); + } + lastTrail = trail; + ++count; + } + } + if (this$static.length > 0) { + lastNonEmpty = out.length; + while (lastNonEmpty > 0 && out[lastNonEmpty - 1] == '') { + --lastNonEmpty; + } + lastNonEmpty < out.length && (out.length = lastNonEmpty); + } + return out; +} + +function $startsWith(this$static, prefix){ + return $equals_5(this$static.substr(0, prefix.length), prefix); +} + +function $startsWith_0(this$static, prefix, toffset){ + return toffset >= 0 && $equals_5(this$static.substr(toffset, prefix.length), prefix); +} + +function $substring_0(this$static, beginIndex){ + return this$static.substr(beginIndex); +} + +function $substring_1(this$static, beginIndex, endIndex){ + return this$static.substr(beginIndex, endIndex - beginIndex); +} + +function $toCharArray(this$static){ + var charArr, n; + n = this$static.length; + charArr = initUnidimensionalArray(C_classLit, $intern_44, 25, n, 15, 1); + $getChars0(this$static, 0, n, charArr, 0); + return charArr; +} + +function $toLowerCase(this$static, locale){ + return locale == ($clinit_Locale() , $clinit_Locale() , defaultLocale)?this$static.toLocaleLowerCase():this$static.toLowerCase(); +} + +function $toString_7(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $trim(this$static){ + var end, length_0, start_0; + length_0 = this$static.length; + start_0 = 0; + while (start_0 < length_0 && (checkCriticalStringElementIndex(start_0, this$static.length) , this$static.charCodeAt(start_0) <= 32)) { + ++start_0; + } + end = length_0; + while (end > start_0 && (checkCriticalStringElementIndex(end - 1, this$static.length) , this$static.charCodeAt(end - 1) <= 32)) { + --end; + } + return start_0 > 0 || end < length_0?this$static.substr(start_0, end - start_0):this$static; +} + +function fromCharCode(array){ + return String.fromCharCode.apply(null, array); +} + +function fromCodePoint(codePoint){ + var hiSurrogate, loSurrogate; + if (codePoint >= $intern_63) { + hiSurrogate = $intern_64 + (codePoint - $intern_63 >> 10 & 1023) & $intern_46; + loSurrogate = 56320 + (codePoint - $intern_63 & 1023) & $intern_46; + return String.fromCharCode(hiSurrogate) + ('' + String.fromCharCode(loSurrogate)); + } + else { + return String.fromCharCode(codePoint & $intern_46); + } +} + +function valueOf_7(x_0){ + return x_0 == null?'null':toString_40(x_0); +} + +function valueOf_8(x_0){ + return valueOf_9(x_0, 0, x_0.length); +} + +function valueOf_9(x_0, offset, count){ + var batchEnd, batchStart, end, s; + end = offset + count; + checkCriticalStringBounds(offset, end, x_0.length); + s = ''; + for (batchStart = offset; batchStart < end;) { + batchEnd = $wnd.Math.min(batchStart + 10000, end); + s += fromCharCode(x_0.slice(batchStart, batchEnd)); + batchStart = batchEnd; + } + return s; +} + +stringCastMap = {3:1, 475:1, 35:1, 2:1}; +var Ljava_lang_String_2_classLit = createForClass('java.lang', 'String', 2); +function $append(this$static, x_0){ + this$static.string += String.fromCharCode(x_0); + return this$static; +} + +function $append_0(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_1(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_2(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_3(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_4(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $deleteCharAt(this$static, start_0){ + this$static.string = $substring_1(this$static.string, 0, start_0) + '' + $substring_0(this$static.string, start_0 + 1); + return this$static; +} + +function StringBuffer(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuffer_0(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuffer_1(s){ + AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); +} + +defineClass(107, 418, {475:1}, StringBuffer, StringBuffer_0, StringBuffer_1); +var Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang', 'StringBuffer', 107); +function $append_5(this$static, x_0){ + this$static.string += String.fromCharCode(x_0); + return this$static; +} + +function $append_6(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_7(this$static, x_0){ + return this$static.string += '' + x_0 , this$static; +} + +function $append_8(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_9(this$static, x_0, start_0, end){ + this$static.string += '' + $substring_1(x_0 == null?'null':toString_40(x_0), start_0, end); + return this$static; +} + +function $append_10(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_11(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_12(this$static, x_0){ + this$static.string += valueOf_9(x_0, 0, x_0.length); + return this$static; +} + +function $append_13(this$static, x_0, len){ + this$static.string += valueOf_9(x_0, 0, len); + return this$static; +} + +function $insert_0(this$static, index_0, x_0){ + this$static.string = $substring_1(this$static.string, 0, index_0) + ('' + x_0) + $substring_0(this$static.string, index_0); + return this$static; +} + +function StringBuilder(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuilder_0(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuilder_1(s){ + AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); +} + +defineClass(100, 418, {475:1}, StringBuilder, StringBuilder_0, StringBuilder_1); +var Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang', 'StringBuilder', 100); +function StringIndexOutOfBoundsException(message){ + IndexOutOfBoundsException_0.call(this, message); +} + +defineClass(687, 73, $intern_57, StringIndexOutOfBoundsException); +var Ljava_lang_StringIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'StringIndexOutOfBoundsException', 687); +function $clinit_System(){ + $clinit_System = emptyMethod; + err_0 = new PrintStream; +} + +function arraycopy(src_0, srcOfs, dest, destOfs, len){ + $clinit_System(); + var destArray, destComp, destEnd, destType, destlen, srcArray, srcComp, srcType, srclen; + checkCriticalNotNull_0(src_0, 'src'); + checkCriticalNotNull_0(dest, 'dest'); + srcType = getClass__Ljava_lang_Class___devirtual$(src_0); + destType = getClass__Ljava_lang_Class___devirtual$(dest); + checkCriticalArrayType_0((srcType.modifiers & 4) != 0, 'srcType is not an array'); + checkCriticalArrayType_0((destType.modifiers & 4) != 0, 'destType is not an array'); + srcComp = srcType.componentType; + destComp = destType.componentType; + checkCriticalArrayType_0((srcComp.modifiers & 1) != 0?srcComp == destComp:(destComp.modifiers & 1) == 0, "Array types don't match"); + srclen = src_0.length; + destlen = dest.length; + if (srcOfs < 0 || destOfs < 0 || len < 0 || srcOfs + len > srclen || destOfs + len > destlen) { + throw toJs(new IndexOutOfBoundsException); + } + if ((srcComp.modifiers & 1) == 0 && srcType != destType) { + srcArray = castToArray(src_0); + destArray = castToArray(dest); + if (maskUndefined(src_0) === maskUndefined(dest) && srcOfs < destOfs) { + srcOfs += len; + for (destEnd = destOfs + len; destEnd-- > destOfs;) { + setCheck(destArray, destEnd, srcArray[--srcOfs]); + } + } + else { + for (destEnd = destOfs + len; destOfs < destEnd;) { + setCheck(destArray, destOfs++, srcArray[srcOfs++]); + } + } + } + else + len > 0 && copy_0(src_0, srcOfs, dest, destOfs, len, true); +} + +defineClass(2043, 1, {}); +var err_0; +function Throwable$lambda$0$Type(){ +} + +defineClass(844, 1, {}, Throwable$lambda$0$Type); +_.apply_0 = function apply_20(arg0){ + return castTo(arg0, 78).backingJsObject; +} +; +var Ljava_lang_Throwable$lambda$0$Type_2_classLit = createForClass('java.lang', 'Throwable/lambda$0$Type', 844); +function UnsupportedOperationException(){ + RuntimeException.call(this); +} + +function UnsupportedOperationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(41, 60, {3:1, 102:1, 60:1, 78:1, 41:1}, UnsupportedOperationException, UnsupportedOperationException_0); +var Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang', 'UnsupportedOperationException', 41); +function $clinit_BigDecimal(){ + $clinit_BigDecimal = emptyMethod; + var i, j, j0; + new BigDecimal(1, 0); + new BigDecimal(10, 0); + new BigDecimal(0, 0); + BI_SCALED_BY_ZERO = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); + CH_ZEROS = initUnidimensionalArray(C_classLit, $intern_44, 25, 100, 15, 1); + DOUBLE_FIVE_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); + DOUBLE_FIVE_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_FIVE_POW.length, 15, 1); + DOUBLE_TEN_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 10, 100, $intern_45, 10000, $intern_66, 1000000, 10000000, 100000000, $intern_55, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000]); + DOUBLE_TEN_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_TEN_POW.length, 15, 1); + ZERO_SCALED_BY = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); + i = 0; + for (; i < ZERO_SCALED_BY.length; i++) { + BI_SCALED_BY_ZERO[i] = new BigDecimal(i, 0); + ZERO_SCALED_BY[i] = new BigDecimal(0, i); + CH_ZEROS[i] = 48; + } + for (; i < CH_ZEROS.length; i++) { + CH_ZEROS[i] = 48; + } + for (j0 = 0; j0 < DOUBLE_FIVE_POW_BIT_LENGTH.length; j0++) { + DOUBLE_FIVE_POW_BIT_LENGTH[j0] = bitLength(DOUBLE_FIVE_POW[j0]); + } + for (j = 0; j < DOUBLE_TEN_POW_BIT_LENGTH.length; j++) { + DOUBLE_TEN_POW_BIT_LENGTH[j] = bitLength(DOUBLE_TEN_POW[j]); + } + $clinit_Multiplication(); +} + +function $compareTo_10(this$static, val){ + var diffPrecision, diffScale, thisSign, thisUnscaled, valUnscaled, valueSign; + thisSign = $signum(this$static); + valueSign = $signum(val); + if (thisSign == valueSign) { + if (this$static.scale == val.scale && this$static.bitLength < 54 && val.bitLength < 54) { + return this$static.smallValue < val.smallValue?-1:this$static.smallValue > val.smallValue?1:0; + } + diffScale = this$static.scale - val.scale; + diffPrecision = (this$static.precision > 0?this$static.precision:$wnd.Math.floor((this$static.bitLength - 1) * $intern_67) + 1) - (val.precision > 0?val.precision:$wnd.Math.floor((val.bitLength - 1) * $intern_67) + 1); + if (diffPrecision > diffScale + 1) { + return thisSign; + } + else if (diffPrecision < diffScale - 1) { + return -thisSign; + } + else { + thisUnscaled = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal); + valUnscaled = (!val.intVal && (val.intVal = valueOf_10(val.smallValue)) , val.intVal); + diffScale < 0?(thisUnscaled = $multiply(thisUnscaled, powerOf10(-diffScale))):diffScale > 0 && (valUnscaled = $multiply(valUnscaled, powerOf10(diffScale))); + return $compareTo_11(thisUnscaled, valUnscaled); + } + } + else + return thisSign < valueSign?-1:1; +} + +function $initFrom(this$static, val){ + var begin, ch_0, i, last, offset, scaleString, unscaled, unscaledBuffer; + begin = 0; + offset = 0; + last = val.length; + scaleString = null; + unscaledBuffer = new StringBuilder_0; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { + ++offset; + ++begin; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 45))) { + throw toJs(new NumberFormatException('For input string: "' + val + '"')); + } + } + while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 46) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { + ++offset; + } + unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 46)) { + ++offset; + begin = offset; + while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { + ++offset; + } + this$static.scale = offset - begin; + unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); + } + else { + this$static.scale = 0; + } + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 101 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 69))) { + ++offset; + begin = offset; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { + ++offset; + offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 45) && ++begin; + } + scaleString = val.substr(begin, last - begin); + this$static.scale = this$static.scale - __parseAndValidateInt(scaleString, $intern_42, $intern_0); + if (this$static.scale != round_int(this$static.scale)) { + throw toJs(new NumberFormatException('Scale out of range.')); + } + } + unscaled = unscaledBuffer.string; + if (unscaled.length < 16) { + this$static.smallValue = (unscaledRegex == null && (unscaledRegex = new RegExp('^[+-]?\\d*$', 'i')) , unscaledRegex.test(unscaled)?parseInt(unscaled, 10):NaN); + if (isNaN(this$static.smallValue)) { + throw toJs(new NumberFormatException('For input string: "' + val + '"')); + } + this$static.bitLength = bitLength(this$static.smallValue); + } + else { + $setUnscaledValue(this$static, new BigInteger_4(unscaled)); + } + this$static.precision = unscaledBuffer.string.length; + for (i = 0; i < unscaledBuffer.string.length; ++i) { + ch_0 = $charAt(unscaledBuffer.string, i); + if (ch_0 != 45 && ch_0 != 48) { + break; + } + --this$static.precision; + } + this$static.precision == 0 && (this$static.precision = 1); +} + +function $setUnscaledValue(this$static, unscaledValue){ + var value_0; + this$static.intVal = unscaledValue; + this$static.bitLength = bitLength_1(unscaledValue); + this$static.bitLength < 54 && (this$static.smallValue = (value_0 = unscaledValue.numberLength > 1?or_0(shl_0(unscaledValue.digits[1], 32), and_0(unscaledValue.digits[0], $intern_68)):and_0(unscaledValue.digits[0], $intern_68) , toDouble_0(mul_0(unscaledValue.sign, value_0)))); +} + +function $signum(this$static){ + if (this$static.bitLength < 54) { + return this$static.smallValue < 0?-1:this$static.smallValue > 0?1:0; + } + return (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign; +} + +function $toPlainString(this$static){ + var begin, delta, intStr, result; + intStr = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); + if (this$static.scale == 0 || this$static.bitLength == 0 && this$static.smallValue != -1 && this$static.scale < 0) { + return intStr; + } + begin = $signum(this$static) < 0?1:0; + delta = this$static.scale; + result = (intStr.length + 1 + $wnd.Math.abs(round_int(this$static.scale)) , new StringBuilder_0); + begin == 1 && (result.string += '-' , result); + if (this$static.scale > 0) { + delta -= intStr.length - begin; + if (delta >= 0) { + result.string += '0.'; + for (; delta > CH_ZEROS.length; delta -= CH_ZEROS.length) { + $append_12(result, CH_ZEROS); + } + $append_13(result, CH_ZEROS, round_int(delta)); + $append_11(result, intStr.substr(begin)); + } + else { + delta = begin - delta; + $append_11(result, $substring_1(intStr, begin, round_int(delta))); + result.string += '.'; + $append_11(result, $substring_0(intStr, round_int(delta))); + } + } + else { + $append_11(result, intStr.substr(begin)); + for (; delta < -CH_ZEROS.length; delta += CH_ZEROS.length) { + $append_12(result, CH_ZEROS); + } + $append_13(result, CH_ZEROS, round_int(-delta)); + } + return result.string; +} + +function $toString_8(this$static){ + var begin, end, exponent, intString, result; + if (this$static.toStringImage != null) { + return this$static.toStringImage; + } + if (this$static.bitLength < 32) { + this$static.toStringImage = toDecimalScaledString(fromDouble_0(this$static.smallValue), round_int(this$static.scale)); + return this$static.toStringImage; + } + intString = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); + if (this$static.scale == 0) { + return intString; + } + begin = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign < 0?2:1; + end = intString.length; + exponent = -this$static.scale + end - begin; + result = new StringBuilder; + result.string += '' + intString; + if (this$static.scale > 0 && exponent >= -6) { + if (exponent >= 0) { + $insert_0(result, end - round_int(this$static.scale), String.fromCharCode(46)); + } + else { + result.string = $substring_1(result.string, 0, begin - 1) + '0.' + $substring_0(result.string, begin - 1); + $insert_0(result, begin + 1, valueOf_9(CH_ZEROS, 0, -round_int(exponent) - 1)); + } + } + else { + if (end - begin >= 1) { + $insert_0(result, begin, String.fromCharCode(46)); + ++end; + } + $insert_0(result, end, String.fromCharCode(69)); + exponent > 0 && $insert_0(result, ++end, String.fromCharCode(43)); + $insert_0(result, ++end, '' + toString_39(fromDouble_0(exponent))); + } + this$static.toStringImage = result.string; + return this$static.toStringImage; +} + +function BigDecimal(smallValue, scale){ + this.scale = scale; + this.bitLength = bitLength_0(smallValue); + this.bitLength < 54?(this.smallValue = toDouble_0(smallValue)):(this.intVal = valueOf_11(smallValue)); +} + +function BigDecimal_0(val){ + $clinit_BigDecimal(); + $initFrom(this, val); +} + +function bitLength(value_0){ + var negative, result; + if (value_0 > -140737488355328 && value_0 < 140737488355328) { + if (value_0 == 0) { + return 0; + } + negative = value_0 < 0; + negative && (value_0 = -value_0); + result = round_int($wnd.Math.floor($wnd.Math.log(value_0) / 0.6931471805599453)); + (!negative || value_0 != $wnd.Math.pow(2, result)) && ++result; + return result; + } + return bitLength_0(fromDouble_0(value_0)); +} + +function bitLength_0(value_0){ + var high; + compare_2(value_0, 0) < 0 && (value_0 = not_0(value_0)); + return high = toInt_0(shr_0(value_0, 32)) , 64 - (high != 0?numberOfLeadingZeros_0(high):numberOfLeadingZeros_0(toInt_0(value_0)) + 32); +} + +defineClass(240, 236, {3:1, 35:1, 236:1, 240:1}, BigDecimal, BigDecimal_0); +_.compareTo_0 = function compareTo_11(val){ + return $compareTo_10(this, castTo(val, 240)); +} +; +_.doubleValue = function doubleValue_5(){ + return __parseAndValidateDouble($toString_8(this)); +} +; +_.equals_0 = function equals_42(x_0){ + var x1; + if (this === x_0) { + return true; + } + if (instanceOf(x_0, 240)) { + x1 = castTo(x_0, 240); + return this.scale == x1.scale && $compareTo_10(this, x1) == 0; + } + return false; +} +; +_.hashCode_1 = function hashCode_42(){ + var longValue; + if (this.hashCode_0 != 0) { + return this.hashCode_0; + } + if (this.bitLength < 54) { + longValue = fromDouble_0(this.smallValue); + this.hashCode_0 = toInt_0(and_0(longValue, -1)); + this.hashCode_0 = 33 * this.hashCode_0 + toInt_0(and_0(shr_0(longValue, 32), -1)); + this.hashCode_0 = 17 * this.hashCode_0 + round_int(this.scale); + return this.hashCode_0; + } + this.hashCode_0 = 17 * $hashCode_1(this.intVal) + round_int(this.scale); + return this.hashCode_0; +} +; +_.toString_0 = function toString_50(){ + return $toString_8(this); +} +; +_.bitLength = 0; +_.hashCode_0 = 0; +_.precision = 0; +_.scale = 0; +_.smallValue = 0; +var BI_SCALED_BY_ZERO, CH_ZEROS, DOUBLE_FIVE_POW, DOUBLE_FIVE_POW_BIT_LENGTH, DOUBLE_TEN_POW, DOUBLE_TEN_POW_BIT_LENGTH, ZERO_SCALED_BY, unscaledRegex; +var Ljava_math_BigDecimal_2_classLit = createForClass('java.math', 'BigDecimal', 240); +function $clinit_BigInteger(){ + $clinit_BigInteger = emptyMethod; + var i; + ONE_0 = new BigInteger_0(1, 1); + TEN = new BigInteger_0(1, 10); + ZERO_0 = new BigInteger_0(0, 0); + MINUS_ONE = new BigInteger_0(-1, 1); + SMALL_VALUES = stampJavaTypeInfo(getClassLiteralForArray(Ljava_math_BigInteger_2_classLit, 1), $intern_16, 91, 0, [ZERO_0, ONE_0, new BigInteger_0(1, 2), new BigInteger_0(1, 3), new BigInteger_0(1, 4), new BigInteger_0(1, 5), new BigInteger_0(1, 6), new BigInteger_0(1, 7), new BigInteger_0(1, 8), new BigInteger_0(1, 9), TEN]); + TWO_POWS = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + for (i = 0; i < TWO_POWS.length; i++) { + TWO_POWS[i] = valueOf_11(shl_0(1, i)); + } +} + +function $compareTo_11(this$static, val){ + if (this$static.sign > val.sign) { + return 1; + } + if (this$static.sign < val.sign) { + return -1; + } + if (this$static.numberLength > val.numberLength) { + return this$static.sign; + } + if (this$static.numberLength < val.numberLength) { + return -val.sign; + } + return this$static.sign * compareArrays(this$static.digits, val.digits, this$static.numberLength); +} + +function $cutOffLeadingZeroes(this$static){ + while (this$static.numberLength > 0 && this$static.digits[--this$static.numberLength] == 0) + ; + this$static.digits[this$static.numberLength++] == 0 && (this$static.sign = 0); +} + +function $equals_6(this$static, x_0){ + var x1; + if (maskUndefined(this$static) === maskUndefined(x_0)) { + return true; + } + if (instanceOf(x_0, 91)) { + x1 = castTo(x_0, 91); + return this$static.sign == x1.sign && this$static.numberLength == x1.numberLength && $equalsArrays(this$static, x1.digits); + } + return false; +} + +function $equalsArrays(this$static, b){ + var i; + for (i = this$static.numberLength - 1; i >= 0 && this$static.digits[i] === b[i]; i--) + ; + return i < 0; +} + +function $getFirstNonzeroDigit(this$static){ + var i; + if (this$static.firstNonzeroDigit == -2) { + if (this$static.sign == 0) { + i = -1; + } + else { + for (i = 0; this$static.digits[i] == 0; i++) + ; + } + this$static.firstNonzeroDigit = i; + } + return this$static.firstNonzeroDigit; +} + +function $hashCode_1(this$static){ + var i; + if (this$static.hashCode_0 != 0) { + return this$static.hashCode_0; + } + for (i = 0; i < this$static.digits.length; i++) { + this$static.hashCode_0 = this$static.hashCode_0 * 33 + (this$static.digits[i] & -1); + } + this$static.hashCode_0 = this$static.hashCode_0 * this$static.sign; + return this$static.hashCode_0; +} + +function $multiply(this$static, val){ + if (val.sign == 0) { + return ZERO_0; + } + if (this$static.sign == 0) { + return ZERO_0; + } + return $clinit_Multiplication() , karatsuba(this$static, val); +} + +function $pow(this$static, exp_0){ + var x_0; + if (exp_0 < 0) { + throw toJs(new ArithmeticException('Negative exponent')); + } + if (exp_0 == 0) { + return ONE_0; + } + else if (exp_0 == 1 || $equals_6(this$static, ONE_0) || $equals_6(this$static, ZERO_0)) { + return this$static; + } + if (!$testBit(this$static, 0)) { + x_0 = 1; + while (!$testBit(this$static, x_0)) { + ++x_0; + } + return $multiply(getPowerOfTwo(x_0 * exp_0), $pow($shiftRight(this$static, x_0), exp_0)); + } + return pow_0(this$static, exp_0); +} + +function $shiftLeft(this$static, n){ + if (n == 0 || this$static.sign == 0) { + return this$static; + } + return n > 0?shiftLeft(this$static, n):shiftRight(this$static, -n); +} + +function $shiftRight(this$static, n){ + if (n == 0 || this$static.sign == 0) { + return this$static; + } + return n > 0?shiftRight(this$static, n):shiftLeft(this$static, -n); +} + +function $testBit(this$static, n){ + var digit, firstNonZeroDigit, intCount; + if (n == 0) { + return (this$static.digits[0] & 1) != 0; + } + if (n < 0) { + throw toJs(new ArithmeticException('Negative bit address')); + } + intCount = n >> 5; + if (intCount >= this$static.numberLength) { + return this$static.sign < 0; + } + digit = this$static.digits[intCount]; + n = 1 << (n & 31); + if (this$static.sign < 0) { + firstNonZeroDigit = $getFirstNonzeroDigit(this$static); + if (intCount < firstNonZeroDigit) { + return false; + } + else + firstNonZeroDigit == intCount?(digit = -digit):(digit = ~digit); + } + return (digit & n) != 0; +} + +function BigInteger(sign, val){ + this.sign = sign; + if (val < $intern_69) { + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val | 0]); + } + else { + this.numberLength = 2; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val % $intern_69 | 0, val / $intern_69 | 0]); + } +} + +function BigInteger_0(sign, value_0){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [value_0]); +} + +function BigInteger_1(sign, numberLength, digits){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = numberLength; + this.digits = digits; +} + +function BigInteger_2(sign, val){ + this.sign = sign; + if (eq(and_0(val, -4294967296), 0)) { + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val)]); + } + else { + this.numberLength = 2; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val), toInt_0(shr_0(val, 32))]); + } +} + +function BigInteger_3(digits){ + $clinit_BigInteger(); + if (digits.length == 0) { + this.sign = 0; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); + } + else { + this.sign = 1; + this.numberLength = digits.length; + this.digits = digits; + $cutOffLeadingZeroes(this); + } +} + +function BigInteger_4(val){ + $clinit_BigInteger(); + BigInteger_5.call(this, val); +} + +function BigInteger_5(val){ + checkCriticalNotNull(val); + if (val.length == 0) { + throw toJs(new NumberFormatException('Zero length BigInteger')); + } + setFromString(this, val); +} + +function getPowerOfTwo(exp_0){ + var bitN, intCount, resDigits; + if (exp_0 < TWO_POWS.length) { + return TWO_POWS[exp_0]; + } + intCount = exp_0 >> 5; + bitN = exp_0 & 31; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, intCount + 1, 15, 1); + resDigits[intCount] = 1 << bitN; + return new BigInteger_1(1, intCount + 1, resDigits); +} + +function setFromString(bi, val){ + var bigRadix, bigRadixDigit, bigRadixDigitsLength, charsPerInt, digitIndex, digits, endChar, newDigit, numberLength, sign, startChar, stringLength, substrEnd, substrStart, topChars; + stringLength = val.length; + endChar = stringLength; + checkCriticalStringElementIndex(0, val.length); + if (val.charCodeAt(0) == 45) { + sign = -1; + startChar = 1; + --stringLength; + } + else { + sign = 1; + startChar = 0; + } + charsPerInt = ($clinit_Conversion() , digitFitInInt)[10]; + bigRadixDigitsLength = stringLength / charsPerInt | 0; + topChars = stringLength % charsPerInt; + topChars != 0 && ++bigRadixDigitsLength; + digits = initUnidimensionalArray(I_classLit, $intern_48, 25, bigRadixDigitsLength, 15, 1); + bigRadix = bigRadices[8]; + digitIndex = 0; + substrEnd = startChar + (topChars == 0?charsPerInt:topChars); + for (substrStart = startChar; substrStart < endChar; substrStart = substrEnd , substrEnd = substrStart + charsPerInt) { + bigRadixDigit = __parseAndValidateInt(val.substr(substrStart, substrEnd - substrStart), $intern_42, $intern_0); + newDigit = ($clinit_Multiplication() , multiplyByInt(digits, digits, digitIndex, bigRadix)); + newDigit += inplaceAdd(digits, digitIndex, bigRadixDigit); + digits[digitIndex++] = newDigit; + } + numberLength = digitIndex; + bi.sign = sign; + bi.numberLength = numberLength; + bi.digits = digits; + $cutOffLeadingZeroes(bi); +} + +function valueOf_10(val){ + $clinit_BigInteger(); + if (val < 0) { + if (val != -1) { + return new BigInteger(-1, -val); + } + return MINUS_ONE; + } + else + return val <= 10?SMALL_VALUES[round_int(val)]:new BigInteger(1, val); +} + +function valueOf_11(val){ + $clinit_BigInteger(); + if (compare_2(val, 0) < 0) { + if (compare_2(val, -1) != 0) { + return new BigInteger_2(-1, neg_0(val)); + } + return MINUS_ONE; + } + else + return compare_2(val, 10) <= 0?SMALL_VALUES[toInt_0(val)]:new BigInteger_2(1, val); +} + +defineClass(91, 236, {3:1, 35:1, 236:1, 91:1}, BigInteger, BigInteger_0, BigInteger_1, BigInteger_2, BigInteger_3, BigInteger_4); +_.compareTo_0 = function compareTo_12(val){ + return $compareTo_11(this, castTo(val, 91)); +} +; +_.doubleValue = function doubleValue_6(){ + return __parseAndValidateDouble(toDecimalScaledString_0(this, 0)); +} +; +_.equals_0 = function equals_43(x_0){ + return $equals_6(this, x_0); +} +; +_.hashCode_1 = function hashCode_43(){ + return $hashCode_1(this); +} +; +_.toString_0 = function toString_51(){ + return toDecimalScaledString_0(this, 0); +} +; +_.firstNonzeroDigit = -2; +_.hashCode_0 = 0; +_.numberLength = 0; +_.sign = 0; +var MINUS_ONE, ONE_0, SMALL_VALUES, TEN, TWO_POWS, ZERO_0; +var Ljava_math_BigInteger_2_classLit = createForClass('java.math', 'BigInteger', 91); +function bitLength_1(val){ + var bLength, highDigit, i; + if (val.sign == 0) { + return 0; + } + bLength = val.numberLength << 5; + highDigit = val.digits[val.numberLength - 1]; + if (val.sign < 0) { + i = $getFirstNonzeroDigit(val); + if (i == val.numberLength - 1) { + --highDigit; + highDigit = highDigit | 0; + } + } + bLength -= numberOfLeadingZeros_0(highDigit); + return bLength; +} + +function shiftLeft(source, count){ + var intCount, resDigits, resLength, result; + intCount = count >> 5; + count &= 31; + resLength = source.numberLength + intCount + (count == 0?0:1); + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); + shiftLeft_0(resDigits, source.digits, intCount, count); + result = new BigInteger_1(source.sign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function shiftLeft_0(result, source, intCount, count){ + var i, i0, rightShiftCount; + if (count == 0) { + arraycopy(source, 0, result, intCount, result.length - intCount); + } + else { + rightShiftCount = 32 - count; + result[result.length - 1] = 0; + for (i0 = result.length - 1; i0 > intCount; i0--) { + result[i0] |= source[i0 - intCount - 1] >>> rightShiftCount; + result[i0 - 1] = source[i0 - intCount - 1] << count; + } + } + for (i = 0; i < intCount; i++) { + result[i] = 0; + } +} + +function shiftLeftOneBit(result, source, srcLen){ + var carry, i, val; + carry = 0; + for (i = 0; i < srcLen; i++) { + val = source[i]; + result[i] = val << 1 | carry; + carry = val >>> 31; + } + carry != 0 && (result[srcLen] = carry); +} + +function shiftRight(source, count){ + var i, intCount, resDigits, resLength, result; + intCount = count >> 5; + count &= 31; + if (intCount >= source.numberLength) { + return source.sign < 0?($clinit_BigInteger() , MINUS_ONE):($clinit_BigInteger() , ZERO_0); + } + resLength = source.numberLength - intCount; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength + 1, 15, 1); + shiftRight_0(resDigits, resLength, source.digits, intCount, count); + if (source.sign < 0) { + for (i = 0; i < intCount && source.digits[i] == 0; i++) + ; + if (i < intCount || count > 0 && source.digits[i] << 32 - count != 0) { + for (i = 0; i < resLength && resDigits[i] == -1; i++) { + resDigits[i] = 0; + } + i == resLength && ++resLength; + ++resDigits[i]; + } + } + result = new BigInteger_1(source.sign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function shiftRight_0(result, resultLen, source, intCount, count){ + var allZero, i, leftShiftCount; + allZero = true; + for (i = 0; i < intCount; i++) { + allZero = allZero & source[i] == 0; + } + if (count == 0) { + arraycopy(source, intCount, result, 0, resultLen); + i = resultLen; + } + else { + leftShiftCount = 32 - count; + allZero = allZero & source[i] << leftShiftCount == 0; + for (i = 0; i < resultLen - 1; i++) { + result[i] = source[i + intCount] >>> count | source[i + intCount + 1] << leftShiftCount; + } + result[i] = source[i + intCount] >>> count; + ++i; + } + return allZero; +} + +function $clinit_Conversion(){ + $clinit_Conversion = emptyMethod; + bigRadices = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [$intern_42, 1162261467, $intern_35, 1220703125, 362797056, 1977326743, $intern_35, 387420489, $intern_55, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, $intern_35, 1291467969, 1544804416, 1838265625, 60466176]); + digitFitInInt = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); +} + +function divideLongByBillion(a){ + var aPos, quot, rem; + if (compare_2(a, 0) >= 0) { + quot = div(a, $intern_55); + rem = mod(a, $intern_55); + } + else { + aPos = shru_0(a, 1); + quot = div(aPos, 500000000); + rem = mod(aPos, 500000000); + rem = add_20(shl_0(rem, 1), and_0(a, 1)); + } + return or_0(shl_0(rem, 32), and_0(quot, $intern_68)); +} + +function toDecimalScaledString(value_0, scale){ + $clinit_Conversion(); + var currentChar, endPoint, exponent, insertPoint, j, j0, negNumber, prev, resLengthInChars, result, result1, result10, startPoint, v; + negNumber = compare_2(value_0, 0) < 0; + negNumber && (value_0 = neg_0(value_0)); + if (compare_2(value_0, 0) == 0) { + switch (scale) { + case 0: + return '0'; + case 1: + return '0.0'; + case 2: + return '0.00'; + case 3: + return '0.000'; + case 4: + return '0.0000'; + case 5: + return '0.00000'; + case 6: + return '0.000000'; + default:result10 = new StringBuilder; + scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); + result10.string += scale == $intern_42?'2147483648':'' + -scale; + return result10.string; + } + } + resLengthInChars = 18; + result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + v = value_0; + do { + prev = v; + v = div(v, 10); + result[--currentChar] = toInt_0(add_20(48, sub_2(prev, mul_0(v, 10)))) & $intern_46; + } + while (compare_2(v, 0) != 0); + exponent = sub_2(sub_2(sub_2(resLengthInChars, currentChar), scale), 1); + if (scale == 0) { + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + if (scale > 0 && compare_2(exponent, -6) >= 0) { + if (compare_2(exponent, 0) >= 0) { + insertPoint = currentChar + toInt_0(exponent); + for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { + result[j0 + 1] = result[j0]; + } + result[++insertPoint] = 46; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); + } + for (j = 2; lt(j, add_20(neg_0(exponent), 1)); j++) { + result[--currentChar] = 48; + } + result[--currentChar] = 46; + result[--currentChar] = 48; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + startPoint = currentChar + 1; + endPoint = resLengthInChars; + result1 = new StringBuilder_0; + negNumber && (result1.string += '-' , result1); + if (endPoint - startPoint >= 1) { + $append_5(result1, result[currentChar]); + result1.string += '.'; + result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + result1.string += 'E'; + compare_2(exponent, 0) > 0 && (result1.string += '+' , result1); + result1.string += '' + toString_39(exponent); + return result1.string; +} + +function toDecimalScaledString_0(val, scale){ + $clinit_Conversion(); + var currentChar, delta, digits, endPoint, exponent, highDigit, i, i1, insertPoint, j, j0, negNumber, numberLength, prev, previous, res, resDigit, resLengthInChars, result, result1, result10, result11, sign, startPoint, temp, temp1, tempLen, v; + sign = val.sign; + numberLength = val.numberLength; + digits = val.digits; + if (sign == 0) { + switch (scale) { + case 0: + return '0'; + case 1: + return '0.0'; + case 2: + return '0.00'; + case 3: + return '0.000'; + case 4: + return '0.0000'; + case 5: + return '0.00000'; + case 6: + return '0.000000'; + default:result10 = new StringBuilder; + scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); + result10.string += -scale; + return result10.string; + } + } + resLengthInChars = numberLength * 10 + 1 + 7; + result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + if (numberLength == 1) { + highDigit = digits[0]; + if (highDigit < 0) { + v = and_0(highDigit, $intern_68); + do { + prev = v; + v = div(v, 10); + result[--currentChar] = 48 + toInt_0(sub_2(prev, mul_0(v, 10))) & $intern_46; + } + while (compare_2(v, 0) != 0); + } + else { + v = highDigit; + do { + prev = v; + v = v / 10 | 0; + result[--currentChar] = 48 + (prev - v * 10) & $intern_46; + } + while (v != 0); + } + } + else { + temp = initUnidimensionalArray(I_classLit, $intern_48, 25, numberLength, 15, 1); + tempLen = numberLength; + arraycopy(digits, 0, temp, 0, tempLen); + BIG_LOOP: while (true) { + result11 = 0; + for (i1 = tempLen - 1; i1 >= 0; i1--) { + temp1 = add_20(shl_0(result11, 32), and_0(temp[i1], $intern_68)); + res = divideLongByBillion(temp1); + temp[i1] = toInt_0(res); + result11 = toInt_0(shr_0(res, 32)); + } + resDigit = toInt_0(result11); + previous = currentChar; + do { + result[--currentChar] = 48 + resDigit % 10 & $intern_46; + } + while ((resDigit = resDigit / 10 | 0) != 0 && currentChar != 0); + delta = 9 - previous + currentChar; + for (i = 0; i < delta && currentChar > 0; i++) { + result[--currentChar] = 48; + } + j = tempLen - 1; + for (; temp[j] == 0; j--) { + if (j == 0) { + break BIG_LOOP; + } + } + tempLen = j + 1; + } + while (result[currentChar] == 48) { + ++currentChar; + } + } + negNumber = sign < 0; + exponent = resLengthInChars - currentChar - scale - 1; + if (scale == 0) { + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + if (scale > 0 && exponent >= -6) { + if (exponent >= 0) { + insertPoint = currentChar + exponent; + for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { + result[j0 + 1] = result[j0]; + } + result[++insertPoint] = 46; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); + } + for (j = 2; j < -exponent + 1; j++) { + result[--currentChar] = 48; + } + result[--currentChar] = 46; + result[--currentChar] = 48; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + startPoint = currentChar + 1; + endPoint = resLengthInChars; + result1 = new StringBuilder_0; + negNumber && (result1.string += '-' , result1); + if (endPoint - startPoint >= 1) { + $append_5(result1, result[currentChar]); + result1.string += '.'; + result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + result1.string += 'E'; + exponent > 0 && (result1.string += '+' , result1); + result1.string += '' + exponent; + return result1.string; +} + +var bigRadices, digitFitInInt; +function add_21(op1, op2){ + var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, res0, resDigits, resSign, valueHi, valueLo; + op1Sign = op1.sign; + op2Sign = op2.sign; + if (op1Sign == 0) { + return op2; + } + if (op2Sign == 0) { + return op1; + } + op1Len = op1.numberLength; + op2Len = op2.numberLength; + if (op1Len + op2Len == 2) { + a = and_0(op1.digits[0], $intern_68); + b = and_0(op2.digits[0], $intern_68); + if (op1Sign == op2Sign) { + res0 = add_20(a, b); + valueLo = toInt_0(res0); + valueHi = toInt_0(shru_0(res0, 32)); + return valueHi == 0?new BigInteger_0(op1Sign, valueLo):new BigInteger_1(op1Sign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); + } + return valueOf_11(op1Sign < 0?sub_2(b, a):sub_2(a, b)); + } + else if (op1Sign == op2Sign) { + resSign = op1Sign; + resDigits = op1Len >= op2Len?add_22(op1.digits, op1Len, op2.digits, op2Len):add_22(op2.digits, op2Len, op1.digits, op1Len); + } + else { + cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); + if (cmp == 0) { + return $clinit_BigInteger() , ZERO_0; + } + if (cmp == 1) { + resSign = op1Sign; + resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); + } + else { + resSign = op2Sign; + resDigits = subtract_0(op2.digits, op2Len, op1.digits, op1Len); + } + } + res = new BigInteger_1(resSign, resDigits.length, resDigits); + $cutOffLeadingZeroes(res); + return res; +} + +function add_22(a, aSize, b, bSize){ + var res; + res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize + 1, 15, 1); + add_23(res, a, aSize, b, bSize); + return res; +} + +function add_23(res, a, aSize, b, bSize){ + var carry, i; + carry = add_20(and_0(a[0], $intern_68), and_0(b[0], $intern_68)); + res[0] = toInt_0(carry); + carry = shr_0(carry, 32); + if (aSize >= bSize) { + for (i = 1; i < bSize; i++) { + carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_68)); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + } + else { + for (i = 1; i < aSize; i++) { + carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < bSize; i++) { + carry = add_20(carry, and_0(b[i], $intern_68)); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + } + compare_2(carry, 0) != 0 && (res[i] = toInt_0(carry)); +} + +function compareArrays(a, b, size_0){ + var i; + for (i = size_0 - 1; i >= 0 && a[i] === b[i]; i--) + ; + return i < 0?0:lt(and_0(a[i], $intern_68), and_0(b[i], $intern_68))?-1:1; +} + +function inplaceAdd(a, aSize, addend){ + var carry, i; + carry = and_0(addend, $intern_68); + for (i = 0; compare_2(carry, 0) != 0 && i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_68)); + a[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + return toInt_0(carry); +} + +function subtract(op1, op2){ + var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, resDigits, resSign; + op1Sign = op1.sign; + op2Sign = op2.sign; + if (op2Sign == 0) { + return op1; + } + if (op1Sign == 0) { + return op2.sign == 0?op2:new BigInteger_1(-op2.sign, op2.numberLength, op2.digits); + } + op1Len = op1.numberLength; + op2Len = op2.numberLength; + if (op1Len + op2Len == 2) { + a = and_0(op1.digits[0], $intern_68); + b = and_0(op2.digits[0], $intern_68); + op1Sign < 0 && (a = neg_0(a)); + op2Sign < 0 && (b = neg_0(b)); + return valueOf_11(sub_2(a, b)); + } + cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); + if (cmp == -1) { + resSign = -op2Sign; + resDigits = op1Sign == op2Sign?subtract_0(op2.digits, op2Len, op1.digits, op1Len):add_22(op2.digits, op2Len, op1.digits, op1Len); + } + else { + resSign = op1Sign; + if (op1Sign == op2Sign) { + if (cmp == 0) { + return $clinit_BigInteger() , ZERO_0; + } + resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); + } + else { + resDigits = add_22(op1.digits, op1Len, op2.digits, op2Len); + } + } + res = new BigInteger_1(resSign, resDigits.length, resDigits); + $cutOffLeadingZeroes(res); + return res; +} + +function subtract_0(a, aSize, b, bSize){ + var res; + res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize, 15, 1); + subtract_1(res, a, aSize, b, bSize); + return res; +} + +function subtract_1(res, a, aSize, b, bSize){ + var borrow, i; + borrow = 0; + for (i = 0; i < bSize; i++) { + borrow = add_20(borrow, sub_2(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } + for (; i < aSize; i++) { + borrow = add_20(borrow, and_0(a[i], $intern_68)); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } +} + +function $clinit_Multiplication(){ + $clinit_Multiplication = emptyMethod; + var fivePow, i; + bigFivePows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + bigTenPows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + fivePow = 1; + for (i = 0; i <= 18; i++) { + bigFivePows[i] = valueOf_11(fivePow); + bigTenPows[i] = valueOf_11(shl_0(fivePow, i)); + fivePow = mul_0(fivePow, 5); + } + for (; i < bigTenPows.length; i++) { + bigFivePows[i] = $multiply(bigFivePows[i - 1], bigFivePows[1]); + bigTenPows[i] = $multiply(bigTenPows[i - 1], ($clinit_BigInteger() , TEN)); + } +} + +function karatsuba(op1, op2){ + $clinit_Multiplication(); + var lower, lowerOp1, lowerOp2, middle, ndiv2, temp, upper, upperOp1, upperOp2; + if (op2.numberLength > op1.numberLength) { + temp = op1; + op1 = op2; + op2 = temp; + } + if (op2.numberLength < 63) { + return multiplyPAP(op1, op2); + } + ndiv2 = (op1.numberLength & -2) << 4; + upperOp1 = $shiftRight(op1, ndiv2); + upperOp2 = $shiftRight(op2, ndiv2); + lowerOp1 = subtract(op1, $shiftLeft(upperOp1, ndiv2)); + lowerOp2 = subtract(op2, $shiftLeft(upperOp2, ndiv2)); + upper = karatsuba(upperOp1, upperOp2); + lower = karatsuba(lowerOp1, lowerOp2); + middle = karatsuba(subtract(upperOp1, lowerOp1), subtract(lowerOp2, upperOp2)); + middle = add_21(add_21(middle, upper), lower); + middle = $shiftLeft(middle, ndiv2); + upper = $shiftLeft(upper, ndiv2 << 1); + return add_21(add_21(upper, middle), lower); +} + +function multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits){ + if (aLen == 0 || bLen == 0) { + return; + } + aLen == 1?(resDigits[bLen] = multiplyByInt(resDigits, bDigits, bLen, aDigits[0])):bLen == 1?(resDigits[aLen] = multiplyByInt(resDigits, aDigits, aLen, bDigits[0])):multPAP(aDigits, bDigits, resDigits, aLen, bLen); +} + +function multPAP(a, b, t, aLen, bLen){ + var aI, carry, i, j; + if (maskUndefined(a) === maskUndefined(b) && aLen == bLen) { + square(a, aLen, t); + return; + } + for (i = 0; i < aLen; i++) { + carry = 0; + aI = a[i]; + for (j = 0; j < bLen; j++) { + carry = add_20(add_20(mul_0(and_0(aI, $intern_68), and_0(b[j], $intern_68)), and_0(t[i + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); + t[i + j] = toInt_0(carry); + carry = shru_0(carry, 32); + } + t[i + bLen] = toInt_0(carry); + } +} + +function multiplyByInt(res, a, aSize, factor){ + $clinit_Multiplication(); + var carry, i; + carry = 0; + for (i = 0; i < aSize; i++) { + carry = add_20(mul_0(and_0(a[i], $intern_68), and_0(factor, $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[i] = toInt_0(carry); + carry = shru_0(carry, 32); + } + return toInt_0(carry); +} + +function multiplyPAP(a, b){ + var aDigits, aLen, bDigits, bLen, resDigits, resLength, resSign, result, val, valueHi, valueLo; + aLen = a.numberLength; + bLen = b.numberLength; + resLength = aLen + bLen; + resSign = a.sign != b.sign?-1:1; + if (resLength == 2) { + val = mul_0(and_0(a.digits[0], $intern_68), and_0(b.digits[0], $intern_68)); + valueLo = toInt_0(val); + valueHi = toInt_0(shru_0(val, 32)); + return valueHi == 0?new BigInteger_0(resSign, valueLo):new BigInteger_1(resSign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); + } + aDigits = a.digits; + bDigits = b.digits; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); + multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits); + result = new BigInteger_1(resSign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function pow_0(base, exponent){ + $clinit_Multiplication(); + var acc, res; + res = ($clinit_BigInteger() , ONE_0); + acc = base; + for (; exponent > 1; exponent >>= 1) { + (exponent & 1) != 0 && (res = $multiply(res, acc)); + acc.numberLength == 1?(acc = $multiply(acc, acc)):(acc = new BigInteger_3(square(acc.digits, acc.numberLength, initUnidimensionalArray(I_classLit, $intern_48, 25, acc.numberLength << 1, 15, 1)))); + } + res = $multiply(res, acc); + return res; +} + +function powerOf10(exp_0){ + $clinit_Multiplication(); + var intExp, longExp, powerOfFive, res; + intExp = round_int(exp_0); + if (exp_0 < bigTenPows.length) { + return bigTenPows[intExp]; + } + else if (exp_0 <= 50) { + return $pow(($clinit_BigInteger() , TEN), intExp); + } + else if (exp_0 <= $intern_45) { + return $shiftLeft($pow(bigFivePows[1], intExp), intExp); + } + if (exp_0 > 1000000) { + throw toJs(new ArithmeticException('power of ten too big')); + } + if (exp_0 <= $intern_0) { + return $shiftLeft($pow(bigFivePows[1], intExp), intExp); + } + powerOfFive = $pow(bigFivePows[1], $intern_0); + res = powerOfFive; + longExp = fromDouble_0(exp_0 - $intern_0); + intExp = round_int(exp_0 % $intern_0); + while (compare_2(longExp, $intern_0) > 0) { + res = $multiply(res, powerOfFive); + longExp = sub_2(longExp, $intern_0); + } + res = $multiply(res, $pow(bigFivePows[1], intExp)); + res = $shiftLeft(res, $intern_0); + longExp = fromDouble_0(exp_0 - $intern_0); + while (compare_2(longExp, $intern_0) > 0) { + res = $shiftLeft(res, $intern_0); + longExp = sub_2(longExp, $intern_0); + } + res = $shiftLeft(res, intExp); + return res; +} + +function square(a, aLen, res){ + var carry, i, i0, index_0, j; + for (i0 = 0; i0 < aLen; i0++) { + carry = 0; + for (j = i0 + 1; j < aLen; j++) { + carry = add_20(add_20(mul_0(and_0(a[i0], $intern_68), and_0(a[j], $intern_68)), and_0(res[i0 + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[i0 + j] = toInt_0(carry); + carry = shru_0(carry, 32); + } + res[i0 + aLen] = toInt_0(carry); + } + shiftLeftOneBit(res, res, aLen << 1); + carry = 0; + for (i = 0 , index_0 = 0; i < aLen; ++i , index_0++) { + carry = add_20(add_20(mul_0(and_0(a[i], $intern_68), and_0(a[i], $intern_68)), and_0(res[index_0], $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + ++index_0; + carry = add_20(carry, and_0(res[index_0], $intern_68)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + } + return res; +} + +var bigFivePows, bigTenPows; +function $containsKey_3(this$static, key){ + return instanceOfString(key)?$hasStringValue(this$static, key):!!$getEntry_0(this$static.hashCodeMap, key); +} + +function $containsValue_2(this$static, value_0, entries){ + var entry, entry$iterator; + for (entry$iterator = entries.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if (this$static.equals_1(value_0, entry.getValue())) { + return true; + } + } + return false; +} + +function $get_10(this$static, key){ + return instanceOfString(key)?$getStringValue(this$static, key):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, key)); +} + +function $getStringValue(this$static, key){ + return key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key); +} + +function $hasStringValue(this$static, key){ + return key == null?!!$getEntry_0(this$static.hashCodeMap, null):$contains_7(this$static.stringMap, key); +} + +function $put_6(this$static, key, value_0){ + return instanceOfString(key)?$putStringValue(this$static, key, value_0):$put_9(this$static.hashCodeMap, key, value_0); +} + +function $putStringValue(this$static, key, value_0){ + return key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0); +} + +function $remove_6(this$static, key){ + return instanceOfString(key)?key == null?$remove_19(this$static.hashCodeMap, null):$remove_20(this$static.stringMap, key):$remove_19(this$static.hashCodeMap, key); +} + +function $reset(this$static){ + this$static.hashCodeMap = new InternalHashCodeMap(this$static); + this$static.stringMap = new InternalStringMap(this$static); + structureChanged(this$static); +} + +function $size_2(this$static){ + return this$static.hashCodeMap.size_0 + this$static.stringMap.size_0; +} + +function AbstractHashMap(ignored, alsoIgnored){ + checkCriticalArgument_0(ignored >= 0, 'Negative initial capacity'); + checkCriticalArgument_0(alsoIgnored >= 0, 'Non-positive load factor'); + $reset(this); +} + +defineClass(488, 1967, $intern_7); +_.clear_0 = function clear_30(){ + $reset(this); +} +; +_.containsKey = function containsKey_9(key){ + return $containsKey_3(this, key); +} +; +_.containsValue = function containsValue_3(value_0){ + return $containsValue_2(this, value_0, this.stringMap) || $containsValue_2(this, value_0, this.hashCodeMap); +} +; +_.entrySet_0 = function entrySet_2(){ + return new AbstractHashMap$EntrySet(this); +} +; +_.get_3 = function get_31(key){ + return $get_10(this, key); +} +; +_.put = function put_5(key, value_0){ + return $put_6(this, key, value_0); +} +; +_.remove_0 = function remove_48(key){ + return $remove_6(this, key); +} +; +_.size_1 = function size_37(){ + return $size_2(this); +} +; +var Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util', 'AbstractHashMap', 488); +function $contains_0(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function AbstractHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(261, $intern_9, $intern_10, AbstractHashMap$EntrySet); +_.clear_0 = function clear_31(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_28(o){ + return $contains_0(this, o); +} +; +_.iterator_0 = function iterator_46(){ + return new AbstractHashMap$EntrySetIterator(this.this$01); +} +; +_.remove_1 = function remove_49(entry){ + var key; + if ($contains_0(this, entry)) { + key = castTo(entry, 42).getKey(); + this.this$01.remove_0(key); + return true; + } + return false; +} +; +_.size_1 = function size_38(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractHashMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySet', 261); +function $computeHasNext(this$static){ + if (this$static.current.hasNext_0()) { + return true; + } + if (this$static.current != this$static.stringMapEntries) { + return false; + } + this$static.current = new InternalHashCodeMap$1(this$static.this$01.hashCodeMap); + return this$static.current.hasNext_0(); +} + +function $next_4(this$static){ + var rv; + checkStructuralChange(this$static.this$01, this$static); + checkCriticalElement(this$static.hasNext); + this$static.last = this$static.current; + rv = castTo(this$static.current.next_1(), 42); + this$static.hasNext = $computeHasNext(this$static); + return rv; +} + +function $remove_7(this$static){ + checkCriticalState(!!this$static.last); + checkStructuralChange(this$static.this$01, this$static); + this$static.last.remove(); + this$static.last = null; + this$static.hasNext = $computeHasNext(this$static); + recordLastKnownStructure(this$static.this$01, this$static); +} + +function AbstractHashMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.stringMapEntries = new InternalStringMap$1(this.this$01.stringMap); + this.current = this.stringMapEntries; + this.hasNext = $computeHasNext(this); + this.$modCount = this$0.$modCount; +} + +defineClass(262, 1, $intern_6, AbstractHashMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_16(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_19(){ + return $next_4(this); +} +; +_.hasNext_0 = function hasNext_18(){ + return this.hasNext; +} +; +_.remove = function remove_50(){ + $remove_7(this); +} +; +_.hasNext = false; +var Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySetIterator', 262); +function $hasNext_2(this$static){ + return this$static.i < this$static.this$01_0.size_1(); +} + +function $next_5(this$static){ + checkCriticalElement(this$static.i < this$static.this$01_0.size_1()); + return this$static.this$01_0.get_0(this$static.last = this$static.i++); +} + +function $remove_8(this$static){ + checkCriticalState(this$static.last != -1); + this$static.this$01_0.remove_2(this$static.last); + this$static.i = this$static.last; + this$static.last = -1; +} + +function AbstractList$IteratorImpl(this$0){ + this.this$01_0 = this$0; +} + +defineClass(417, 1, $intern_6, AbstractList$IteratorImpl); +_.forEachRemaining = function forEachRemaining_17(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_19(){ + return $hasNext_2(this); +} +; +_.next_1 = function next_20(){ + return $next_5(this); +} +; +_.remove = function remove_51(){ + $remove_8(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/IteratorImpl', 417); +function $add_1(this$static, o){ + this$static.this$01.add_3(this$static.i, o); + ++this$static.i; + this$static.last = -1; +} + +function AbstractList$ListIteratorImpl(this$0, start_0){ + this.this$01 = this$0; + AbstractList$IteratorImpl.call(this, this$0); + checkCriticalPositionIndex(start_0, this$0.size_1()); + this.i = start_0; +} + +defineClass(96, 417, $intern_14, AbstractList$ListIteratorImpl); +_.remove = function remove_52(){ + $remove_8(this); +} +; +_.add_1 = function add_24(o){ + $add_1(this, o); +} +; +_.hasPrevious = function hasPrevious_3(){ + return this.i > 0; +} +; +_.nextIndex_0 = function nextIndex_4(){ + return this.i; +} +; +_.previous_0 = function previous_4(){ + return checkCriticalElement(this.i > 0) , this.this$01.get_0(this.last = --this.i); +} +; +_.previousIndex = function previousIndex_3(){ + return this.i - 1; +} +; +_.set_1 = function set_11(o){ + checkCriticalState(this.last != -1); + this.this$01.set_2(this.last, o); +} +; +var Ljava_util_AbstractList$ListIteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/ListIteratorImpl', 96); +function AbstractList$SubList(wrapped, fromIndex, toIndex){ + checkCriticalPositionIndexes(fromIndex, toIndex, wrapped.size_1()); + this.wrapped = wrapped; + this.fromIndex = fromIndex; + this.size_0 = toIndex - fromIndex; +} + +defineClass(219, 52, $intern_37, AbstractList$SubList); +_.add_3 = function add_25(index_0, element){ + checkCriticalPositionIndex(index_0, this.size_0); + this.wrapped.add_3(this.fromIndex + index_0, element); + ++this.size_0; +} +; +_.get_0 = function get_32(index_0){ + checkCriticalElementIndex(index_0, this.size_0); + return this.wrapped.get_0(this.fromIndex + index_0); +} +; +_.remove_2 = function remove_53(index_0){ + var result; + checkCriticalElementIndex(index_0, this.size_0); + result = this.wrapped.remove_2(this.fromIndex + index_0); + --this.size_0; + return result; +} +; +_.set_2 = function set_12(index_0, element){ + checkCriticalElementIndex(index_0, this.size_0); + return this.wrapped.set_2(this.fromIndex + index_0, element); +} +; +_.size_1 = function size_39(){ + return this.size_0; +} +; +_.fromIndex = 0; +_.size_0 = 0; +var Ljava_util_AbstractList$SubList_2_classLit = createForClass('java.util', 'AbstractList/SubList', 219); +function AbstractMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(384, $intern_9, $intern_10, AbstractMap$1); +_.clear_0 = function clear_32(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_29(key){ + return this.this$01.containsKey(key); +} +; +_.iterator_0 = function iterator_47(){ + var outerIter; + return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter); +} +; +_.remove_1 = function remove_54(key){ + if (this.this$01.containsKey(key)) { + this.this$01.remove_0(key); + return true; + } + return false; +} +; +_.size_1 = function size_40(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractMap$1_2_classLit = createForClass('java.util', 'AbstractMap/1', 384); +function AbstractMap$1$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(691, 1, $intern_6, AbstractMap$1$1); +_.forEachRemaining = function forEachRemaining_18(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_20(){ + return this.val$outerIter2.hasNext_0(); +} +; +_.next_1 = function next_21(){ + var entry; + return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getKey(); +} +; +_.remove = function remove_55(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util', 'AbstractMap/1/1', 691); +function AbstractMap$2(this$0){ + this.this$01 = this$0; +} + +defineClass(226, 28, $intern_8, AbstractMap$2); +_.clear_0 = function clear_33(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_30(value_0){ + return this.this$01.containsValue(value_0); +} +; +_.iterator_0 = function iterator_48(){ + var outerIter; + return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter); +} +; +_.size_1 = function size_41(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractMap$2_2_classLit = createForClass('java.util', 'AbstractMap/2', 226); +function AbstractMap$2$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(294, 1, $intern_6, AbstractMap$2$1); +_.forEachRemaining = function forEachRemaining_19(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_21(){ + return this.val$outerIter2.hasNext_0(); +} +; +_.next_1 = function next_22(){ + var entry; + return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getValue(); +} +; +_.remove = function remove_56(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$2$1_2_classLit = createForClass('java.util', 'AbstractMap/2/1', 294); +function $setValue_0(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = value_0; + return oldValue; +} + +defineClass(484, 1, {484:1, 42:1}); +_.equals_0 = function equals_44(other){ + var entry; + if (!instanceOf(other, 42)) { + return false; + } + entry = castTo(other, 42); + return equals_57(this.key, entry.getKey()) && equals_57(this.value_0, entry.getValue()); +} +; +_.getKey = function getKey_4(){ + return this.key; +} +; +_.getValue = function getValue_6(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_44(){ + return hashCode_54(this.key) ^ hashCode_54(this.value_0); +} +; +_.setValue = function setValue_7(value_0){ + return $setValue_0(this, value_0); +} +; +_.toString_0 = function toString_52(){ + return this.key + '=' + this.value_0; +} +; +var Ljava_util_AbstractMap$AbstractEntry_2_classLit = createForClass('java.util', 'AbstractMap/AbstractEntry', 484); +function AbstractMap$SimpleEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(383, 484, {484:1, 383:1, 42:1}, AbstractMap$SimpleEntry); +var Ljava_util_AbstractMap$SimpleEntry_2_classLit = createForClass('java.util', 'AbstractMap/SimpleEntry', 383); +defineClass(1984, 1, $intern_70); +_.equals_0 = function equals_45(other){ + var entry; + if (!instanceOf(other, 42)) { + return false; + } + entry = castTo(other, 42); + return equals_57(this.getKey(), entry.getKey()) && equals_57(this.getValue(), entry.getValue()); +} +; +_.hashCode_1 = function hashCode_45(){ + return hashCode_54(this.getKey()) ^ hashCode_54(this.getValue()); +} +; +_.toString_0 = function toString_53(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util', 'AbstractMapEntry', 1984); +function $containsEntry_1(this$static, entry){ + var key, lookupEntry; + key = entry.getKey(); + lookupEntry = $getEntry_1(this$static, key); + return !!lookupEntry && equals_57(lookupEntry.value_0, entry.getValue()); +} + +function $containsKey_4(this$static, k){ + var key; + key = k; + return !!$getEntry_1(this$static, key); +} + +function getKeyOrNSE(entry){ + if (!entry) { + throw toJs(new NoSuchElementException); + } + return entry.key; +} + +defineClass(1992, 1967, $intern_11); +_.containsEntry = function containsEntry_0(entry){ + return $containsEntry_1(this, entry); +} +; +_.containsKey = function containsKey_10(k){ + return $containsKey_4(this, k); +} +; +_.entrySet_0 = function entrySet_3(){ + return new AbstractNavigableMap$EntrySet(this); +} +; +_.get_3 = function get_33(k){ + var key; + key = k; + return getEntryValueOrNull($getEntry_1(this, key)); +} +; +_.keySet_0 = function keySet_15(){ + return new AbstractNavigableMap$NavigableKeySet(this); +} +; +var Ljava_util_AbstractNavigableMap_2_classLit = createForClass('java.util', 'AbstractNavigableMap', 1992); +function AbstractNavigableMap$EntrySet(this$0){ + this.this$01_0 = this$0; +} + +defineClass(739, $intern_9, $intern_10, AbstractNavigableMap$EntrySet); +_.contains = function contains_31(o){ + return instanceOf(o, 42) && $containsEntry_1(this.this$01_0, castTo(o, 42)); +} +; +_.iterator_0 = function iterator_49(){ + return new TreeMap$EntryIterator(this.this$01_0); +} +; +_.remove_1 = function remove_57(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $removeEntry(this.this$01_0, entry); + } + return false; +} +; +_.size_1 = function size_42(){ + return this.this$01_0.size_0; +} +; +var Ljava_util_AbstractNavigableMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/EntrySet', 739); +function AbstractNavigableMap$NavigableKeySet(map_0){ + this.map_0 = map_0; +} + +defineClass(493, $intern_9, $intern_13, AbstractNavigableMap$NavigableKeySet); +_.spliterator_0 = function spliterator_26(){ + return new SortedSet$1(this); +} +; +_.clear_0 = function clear_34(){ + $clear_8(this.map_0); +} +; +_.contains = function contains_32(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_50(){ + var entryIterator; + return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet(this.map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_58(o){ + if ($containsKey_4(this.map_0, o)) { + $remove_26(this.map_0, o); + return true; + } + return false; +} +; +_.size_1 = function size_43(){ + return this.map_0.size_0; +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet', 493); +function AbstractNavigableMap$NavigableKeySet$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(494, 1, $intern_6, AbstractNavigableMap$NavigableKeySet$1); +_.forEachRemaining = function forEachRemaining_20(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_22(){ + return $hasNext_2(this.val$entryIterator2.iter); +} +; +_.next_1 = function next_23(){ + var entry; + return entry = $next_11(this.val$entryIterator2) , entry.getKey(); +} +; +_.remove = function remove_59(){ + $remove_27(this.val$entryIterator2); +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet$1_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet/1', 494); +defineClass(2004, 28, $intern_8); +_.add_2 = function add_26(o){ + return checkCriticalState_0($offer(this, o)) , true; +} +; +_.addAll = function addAll_12(c){ + checkCriticalNotNull(c); + checkCriticalArgument_0(c != this, "Can't add a queue to itself"); + return $addAll(this, c); +} +; +_.clear_0 = function clear_35(){ + while ($poll_0(this) != null) + ; +} +; +var Ljava_util_AbstractQueue_2_classLit = createForClass('java.util', 'AbstractQueue', 2004); +function $$init_1(this$static){ + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); +} + +function $addFirst(this$static, e){ + checkCriticalNotNull(e); + this$static.head = this$static.head - 1 & this$static.array.length - 1; + setCheck(this$static.array, this$static.head, e); + $ensureCapacity(this$static); +} + +function $addLast(this$static, e){ + checkCriticalNotNull(e); + setCheck(this$static.array, this$static.tail, e); + this$static.tail = this$static.tail + 1 & this$static.array.length - 1; + $ensureCapacity(this$static); +} + +function $clear_4(this$static){ + if (this$static.head == this$static.tail) { + return; + } + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); + this$static.head = 0; + this$static.tail = 0; +} + +function $contains_1(it, o){ + if (o == null) { + return false; + } + while (it.currentIndex != it.fence) { + if (equals_Ljava_lang_Object__Z__devirtual$(o, $next_6(it))) { + return true; + } + } + return false; +} + +function $copyElements(this$static, dest, count){ + var dstIdx, i, mask; + mask = this$static.array.length - 1; + for (i = this$static.head , dstIdx = 0; dstIdx < count; i = i + 1 & mask , ++dstIdx) { + setCheck(dest, dstIdx, this$static.array[i]); + } +} + +function $ensureCapacity(this$static){ + var newArray, newLength, numElements; + if (this$static.head != this$static.tail) { + return; + } + numElements = this$static.array.length; + newLength = highestOneBit($wnd.Math.max(8, numElements)) << 1; + if (this$static.head != 0) { + newArray = createFrom(this$static.array, newLength); + $copyElements(this$static, newArray, numElements); + this$static.array = newArray; + this$static.head = 0; + } + else { + setLength(this$static.array, newLength); + } + this$static.tail = numElements; +} + +function $isEmpty(this$static){ + return this$static.head == this$static.tail; +} + +function $pollFirst(this$static){ + var e; + e = this$static.array[this$static.head]; + if (e == null) { + return null; + } + setCheck(this$static.array, this$static.head, null); + this$static.head = this$static.head + 1 & this$static.array.length - 1; + return e; +} + +function $pollLast(this$static){ + var e; + e = this$static.array[this$static.tail - 1 & this$static.array.length - 1]; + if (e == null) { + return null; + } + this$static.tail = this$static.tail - 1 & this$static.array.length - 1; + setCheck(this$static.array, this$static.tail, null); + return e; +} + +function $remove_9(it, o){ + if ($contains_1(it, o)) { + $remove_10(it); + return true; + } + return false; +} + +function $removeAtIndex(this$static, i){ + var headDistance, mask, size_0, tailDistance; + mask = this$static.array.length - 1; + headDistance = i - this$static.head & mask; + tailDistance = this$static.tail - i & mask; + size_0 = this$static.tail - this$static.head & mask; + checkConcurrentModification(headDistance < size_0); + if (headDistance >= tailDistance) { + $shiftLeftAtIndex(this$static, i); + return -1; + } + else { + $shiftRightAtIndex(this$static, i); + return 1; + } +} + +function $removeFirst(this$static){ + var e; + e = $pollFirst(this$static); + checkCriticalElement(e != null); + return e; +} + +function $removeLast(this$static){ + var e; + e = $pollLast(this$static); + checkCriticalElement(e != null); + return e; +} + +function $shiftLeftAtIndex(this$static, i){ + var mask, nextOffset; + mask = this$static.array.length - 1; + this$static.tail = this$static.tail - 1 & mask; + while (i != this$static.tail) { + nextOffset = i + 1 & mask; + setCheck(this$static.array, i, this$static.array[nextOffset]); + i = nextOffset; + } + setCheck(this$static.array, this$static.tail, null); +} + +function $shiftRightAtIndex(this$static, i){ + var mask, prevOffset; + mask = this$static.array.length - 1; + while (i != this$static.head) { + prevOffset = i - 1 & mask; + setCheck(this$static.array, i, this$static.array[prevOffset]); + i = prevOffset; + } + setCheck(this$static.array, this$static.head, null); + this$static.head = this$static.head + 1 & mask; +} + +function ArrayDeque(){ + $$init_1(this); +} + +function ArrayDeque_0(numElements){ + $$init_1(this); + setLength(this.array, highestOneBit($wnd.Math.max(8, numElements)) << 1); +} + +function checkConcurrentModification(expression){ + if (!expression) { + throw toJs(new ConcurrentModificationException); + } +} + +defineClass(302, 28, {4:1, 20:1, 28:1, 14:1}, ArrayDeque, ArrayDeque_0); +_.add_2 = function add_27(e){ + return $addLast(this, e) , true; +} +; +_.clear_0 = function clear_36(){ + $clear_4(this); +} +; +_.contains = function contains_33(o){ + return $contains_1(new ArrayDeque$IteratorImpl(this), o); +} +; +_.isEmpty = function isEmpty_18(){ + return $isEmpty(this); +} +; +_.iterator_0 = function iterator_51(){ + return new ArrayDeque$IteratorImpl(this); +} +; +_.remove_1 = function remove_60(o){ + return $remove_9(new ArrayDeque$IteratorImpl(this), o); +} +; +_.size_1 = function size_44(){ + return this.tail - this.head & this.array.length - 1; +} +; +_.spliterator_0 = function spliterator_27(){ + return new Spliterators$IteratorSpliterator(this, 272); +} +; +_.toArray_0 = function toArray_10(out){ + var size_0; + size_0 = this.tail - this.head & this.array.length - 1; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + $copyElements(this, out, size_0); + out.length > size_0 && setCheck(out, size_0, null); + return out; +} +; +_.head = 0; +_.tail = 0; +var Ljava_util_ArrayDeque_2_classLit = createForClass('java.util', 'ArrayDeque', 302); +function $next_6(this$static){ + var e; + checkCriticalElement(this$static.currentIndex != this$static.fence); + e = this$static.this$01.array[this$static.currentIndex]; + checkConcurrentModification(this$static.fence == this$static.this$01.tail && e != null); + this$static.lastIndex = this$static.currentIndex; + this$static.currentIndex = this$static.currentIndex + 1 & this$static.this$01.array.length - 1; + return e; +} + +function $remove_10(this$static){ + checkCriticalState(this$static.lastIndex >= 0); + if ($removeAtIndex(this$static.this$01, this$static.lastIndex) < 0) { + this$static.currentIndex = this$static.currentIndex - 1 & this$static.this$01.array.length - 1; + this$static.fence = this$static.this$01.tail; + } + this$static.lastIndex = -1; +} + +function ArrayDeque$IteratorImpl(this$0){ + this.this$01 = this$0; + this.currentIndex = this.this$01.head; + this.fence = this.this$01.tail; +} + +defineClass(446, 1, $intern_6, ArrayDeque$IteratorImpl); +_.forEachRemaining = function forEachRemaining_21(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_23(){ + return this.currentIndex != this.fence; +} +; +_.next_1 = function next_24(){ + return $next_6(this); +} +; +_.remove = function remove_61(){ + $remove_10(this); +} +; +_.currentIndex = 0; +_.fence = 0; +_.lastIndex = -1; +var Ljava_util_ArrayDeque$IteratorImpl_2_classLit = createForClass('java.util', 'ArrayDeque/IteratorImpl', 446); +function $$init_2(this$static){ + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $add_2(this$static, index_0, o){ + checkCriticalPositionIndex(index_0, this$static.array.length); + insertTo(this$static.array, index_0, o); +} + +function $add_3(this$static, o){ + this$static.array[this$static.array.length] = o; + return true; +} + +function $addAll_1(this$static, index_0, c){ + var cArray, len; + checkCriticalPositionIndex(index_0, this$static.array.length); + cArray = c.toArray(); + len = cArray.length; + if (len == 0) { + return false; + } + insertTo_0(this$static.array, index_0, cArray); + return true; +} + +function $addAll_2(this$static, c){ + var cArray, len; + cArray = c.toArray(); + len = cArray.length; + if (len == 0) { + return false; + } + insertTo_0(this$static.array, this$static.array.length, cArray); + return true; +} + +function $forEach_1(this$static, consumer){ + var e, e$array, e$index, e$max; + checkCriticalNotNull(consumer); + for (e$array = this$static.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + consumer.accept(e); + } +} + +function $get_11(this$static, index_0){ + checkCriticalElementIndex(index_0, this$static.array.length); + return this$static.array[index_0]; +} + +function $indexOf_3(this$static, o, index_0){ + for (; index_0 < this$static.array.length; ++index_0) { + if (equals_57(o, this$static.array[index_0])) { + return index_0; + } + } + return -1; +} + +function $remove_11(this$static, index_0){ + var previous; + previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); + removeFrom(this$static.array, index_0, 1); + return previous; +} + +function $remove_12(this$static, o){ + var i; + i = $indexOf_3(this$static, o, 0); + if (i == -1) { + return false; + } + $remove_11(this$static, i); + return true; +} + +function $removeRange(this$static, fromIndex, endIndex){ + var count; + checkCriticalPositionIndexes(fromIndex, endIndex, this$static.array.length); + count = endIndex - fromIndex; + removeFrom(this$static.array, fromIndex, count); +} + +function $set_1(this$static, index_0, o){ + var previous; + previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); + this$static.array[index_0] = o; + return previous; +} + +function $sort(this$static, c){ + sort_4(this$static.array, this$static.array.length, c); +} + +function $toArray_1(this$static){ + return clone_0(this$static.array, this$static.array.length); +} + +function $toArray_2(this$static, out){ + var i, size_0; + size_0 = this$static.array.length; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + for (i = 0; i < size_0; ++i) { + setCheck(out, i, this$static.array[i]); + } + out.length > size_0 && setCheck(out, size_0, null); + return out; +} + +function ArrayList(){ + $$init_2(this); +} + +function ArrayList_0(initialCapacity){ + $$init_2(this); + checkCriticalArgument_0(initialCapacity >= 0, 'Initial capacity must not be negative'); +} + +function ArrayList_1(c){ + $$init_2(this); + insertTo_0(this.array, 0, c.toArray()); +} + +defineClass(12, 52, $intern_71, ArrayList, ArrayList_0, ArrayList_1); +_.add_3 = function add_28(index_0, o){ + $add_2(this, index_0, o); +} +; +_.add_2 = function add_29(o){ + return $add_3(this, o); +} +; +_.addAll_0 = function addAll_13(index_0, c){ + return $addAll_1(this, index_0, c); +} +; +_.addAll = function addAll_14(c){ + return $addAll_2(this, c); +} +; +_.clear_0 = function clear_37(){ + this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_34(o){ + return $indexOf_3(this, o, 0) != -1; +} +; +_.forEach_0 = function forEach_17(consumer){ + $forEach_1(this, consumer); +} +; +_.get_0 = function get_34(index_0){ + return $get_11(this, index_0); +} +; +_.indexOf_0 = function indexOf_4(o){ + return $indexOf_3(this, o, 0); +} +; +_.isEmpty = function isEmpty_19(){ + return this.array.length == 0; +} +; +_.iterator_0 = function iterator_52(){ + return new ArrayList$1(this); +} +; +_.remove_2 = function remove_62(index_0){ + return $remove_11(this, index_0); +} +; +_.remove_1 = function remove_63(o){ + return $remove_12(this, o); +} +; +_.removeRange = function removeRange_1(fromIndex, endIndex){ + $removeRange(this, fromIndex, endIndex); +} +; +_.set_2 = function set_13(index_0, o){ + return $set_1(this, index_0, o); +} +; +_.size_1 = function size_45(){ + return this.array.length; +} +; +_.sort_0 = function sort_3(c){ + $sort(this, c); +} +; +_.toArray = function toArray_11(){ + return $toArray_1(this); +} +; +_.toArray_0 = function toArray_12(out){ + return $toArray_2(this, out); +} +; +var Ljava_util_ArrayList_2_classLit = createForClass('java.util', 'ArrayList', 12); +function $hasNext_3(this$static){ + return this$static.i < this$static.this$01.array.length; +} + +function $next_7(this$static){ + checkCriticalElement(this$static.i < this$static.this$01.array.length); + this$static.last = this$static.i++; + return this$static.this$01.array[this$static.last]; +} + +function $remove_13(this$static){ + checkCriticalState(this$static.last != -1); + $remove_11(this$static.this$01, this$static.i = this$static.last); + this$static.last = -1; +} + +function ArrayList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(7, 1, $intern_6, ArrayList$1); +_.forEachRemaining = function forEachRemaining_22(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_24(){ + return $hasNext_3(this); +} +; +_.next_1 = function next_25(){ + return $next_7(this); +} +; +_.remove = function remove_64(){ + $remove_13(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_ArrayList$1_2_classLit = createForClass('java.util', 'ArrayList/1', 7); +function copyOf(original, newLength){ + checkCriticalArraySize(newLength); + return copyPrimitiveArray(original, initUnidimensionalArray(I_classLit, $intern_48, 25, newLength, 15, 1), newLength); +} + +function copyOf_0(original, newLength){ + var copy, result; + checkCriticalArraySize(newLength); + return copy = (result = original.slice(0, newLength) , stampJavaTypeInfo_0(result, original)) , copy.length = newLength , copy; +} + +function copyPrimitiveArray(original, copy, to){ + var copyLen, len; + len = original.length; + copyLen = $wnd.Math.min(to, len); + copy_0(original, 0, copy, 0, copyLen, true); + return copy; +} + +function deepToString(a, arraysIveSeen){ + var joiner, obj, obj$array, obj$index, obj$max, objArray, old, tempSet, elementTypeCategory; + if (a == null) { + return 'null'; + } + old = arraysIveSeen.map_0.put(a, arraysIveSeen); + if (old != null) { + return '[...]'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (obj$array = a , obj$index = 0 , obj$max = obj$array.length; obj$index < obj$max; ++obj$index) { + obj = obj$array[obj$index]; + if (obj != null && (getClass__Ljava_lang_Class___devirtual$(obj).modifiers & 4) != 0) { + if (Array.isArray(obj) && (elementTypeCategory = getElementTypeCategory(obj) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))) { + if (arraysIveSeen.map_0.containsKey(obj)) { + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '[...]'); + } + else { + objArray = castToArray(obj); + tempSet = new HashSet_1(arraysIveSeen); + $add_9(joiner, deepToString(objArray, tempSet)); + } + } + else + instanceOf(obj, 177)?$add_9(joiner, toString_61(castTo(obj, 177))):instanceOf(obj, 190)?$add_9(joiner, toString_54(castTo(obj, 190))):instanceOf(obj, 195)?$add_9(joiner, toString_55(castTo(obj, 195))):instanceOf(obj, 2012)?$add_9(joiner, toString_60(castTo(obj, 2012))):instanceOf(obj, 48)?$add_9(joiner, toString_58(castTo(obj, 48))):instanceOf(obj, 364)?$add_9(joiner, toString_59(castTo(obj, 364))):instanceOf(obj, 832)?$add_9(joiner, toString_57(castTo(obj, 832))):instanceOf(obj, 104) && $add_9(joiner, toString_56(castTo(obj, 104))); + } + else { + $add_9(joiner, obj == null?'null':toString_40(obj)); + } + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function equals_46(array1, array2){ + var i, val1, val2; + if (maskUndefined(array1) === maskUndefined(array2)) { + return true; + } + if (array1 == null || array2 == null) { + return false; + } + if (array1.length != array2.length) { + return false; + } + for (i = 0; i < array1.length; ++i) { + val1 = array1[i]; + val2 = array2[i]; + if (!(maskUndefined(val1) === maskUndefined(val2) || val1 != null && equals_Ljava_lang_Object__Z__devirtual$(val1, val2))) { + return false; + } + } + return true; +} + +function fill_0(a, fromIndex, toIndex, val){ + checkCriticalArrayBounds_0(fromIndex, toIndex, a.length); + fill0(a, fromIndex, toIndex, val); +} + +function fill_1(a, val){ + fill0_0(a, a.length, val); +} + +function fill_2(a, val){ + fill0_2(a, a.length, val); +} + +function fill_3(a){ + fill0_3(a, a.length); +} + +function fill0(a, fromIndex, toIndex, val){ + var i; + for (i = fromIndex; i < toIndex; ++i) { + a[i] = val; + } +} + +function fill0_0(a, toIndex, val){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = val; + } +} + +function fill0_1(a, toIndex){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = -1; + } +} + +function fill0_2(a, toIndex, val){ + var i; + for (i = 0; i < toIndex; ++i) { + setCheck(a, i, val); + } +} + +function fill0_3(a, toIndex){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = false; + } +} + +function hashCode_46(a){ + var e, e$array, e$index, e$max, hashCode; + hashCode = 1; + for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function insertionSort(array, low, high, comp){ + var i, j, t; + for (i = low + 1; i < high; ++i) { + for (j = i; j > low && comp.compare_1(array[j - 1], array[j]) > 0; --j) { + t = array[j]; + setCheck(array, j, array[j - 1]); + setCheck(array, j - 1, t); + } + } +} + +function merge_1(src_0, srcLow, srcMid, srcHigh, dest, destLow, destHigh, comp){ + var topIdx; + topIdx = srcMid; + while (destLow < destHigh) { + topIdx >= srcHigh || srcLow < srcMid && comp.compare_1(src_0[srcLow], src_0[topIdx]) <= 0?setCheck(dest, destLow++, src_0[srcLow++]):setCheck(dest, destLow++, src_0[topIdx++]); + } +} + +function mergeSort(x_0, fromIndex, toIndex, comp){ + var temp; + comp = ($clinit_Comparators() , !comp?INTERNAL_NATURAL_ORDER:comp); + temp = x_0.slice(fromIndex, toIndex); + mergeSort_0(temp, x_0, fromIndex, toIndex, -fromIndex, comp); +} + +function mergeSort_0(temp, array, low, high, ofs, comp){ + var length_0, tempHigh, tempLow, tempMid; + length_0 = high - low; + if (length_0 < 7) { + insertionSort(array, low, high, comp); + return; + } + tempLow = low + ofs; + tempHigh = high + ofs; + tempMid = tempLow + (tempHigh - tempLow >> 1); + mergeSort_0(array, temp, tempLow, tempMid, -ofs, comp); + mergeSort_0(array, temp, tempMid, tempHigh, -ofs, comp); + if (comp.compare_1(temp[tempMid - 1], temp[tempMid]) <= 0) { + while (low < high) { + setCheck(array, low++, temp[tempLow++]); + } + return; + } + merge_1(temp, tempLow, tempMid, tempHigh, array, low, high, comp); +} + +function sort_4(x_0, toIndex, c){ + checkCriticalArrayBounds_0(0, toIndex, x_0.length); + mergeSort(x_0, 0, toIndex, c); +} + +function sort_5(x_0, c){ + mergeSort(x_0, 0, x_0.length, c); +} + +function spliterator_28(array, endExclusive){ + return checkCriticalArrayBounds(endExclusive, array.length) , new Spliterators$ArraySpliterator(array, endExclusive); +} + +function stream_4(array){ + return new StreamImpl(null, spliterator_28(array, array.length)); +} + +function toString_54(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_55(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, String.fromCharCode(element)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_56(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_57(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_58(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_59(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + toString_39(element)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_60(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_61(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function Arrays$0methodref$compare$Type(){ +} + +defineClass(2013, $wnd.Function, {}, Arrays$0methodref$compare$Type); +_.compare_0 = function compare_7(d1, d2){ + return compare_4(d1, d2); +} +; +function $get_12(this$static, index_0){ + checkCriticalElementIndex(index_0, this$static.array.length); + return this$static.array[index_0]; +} + +function $toArray_3(this$static, out){ + var i, size_0; + size_0 = this$static.array.length; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + for (i = 0; i < size_0; ++i) { + setCheck(out, i, this$static.array[i]); + } + out.length > size_0 && setCheck(out, size_0, null); + return out; +} + +function Arrays$ArrayList(array){ + checkCriticalNotNull(array); + this.array = array; +} + +defineClass(154, 52, $intern_72, Arrays$ArrayList); +_.contains = function contains_35(o){ + return $indexOf(this, o) != -1; +} +; +_.forEach_0 = function forEach_18(consumer){ + var e, e$array, e$index, e$max; + checkCriticalNotNull(consumer); + for (e$array = this.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + consumer.accept(e); + } +} +; +_.get_0 = function get_35(index_0){ + return $get_12(this, index_0); +} +; +_.set_2 = function set_14(index_0, value_0){ + var was; + was = (checkCriticalElementIndex(index_0, this.array.length) , this.array[index_0]); + setCheck(this.array, index_0, value_0); + return was; +} +; +_.size_1 = function size_46(){ + return this.array.length; +} +; +_.sort_0 = function sort_6(c){ + sort_4(this.array, this.array.length, c); +} +; +_.toArray = function toArray_13(){ + return $toArray_3(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.array.length, 5, 1)); +} +; +_.toArray_0 = function toArray_14(out){ + return $toArray_3(this, out); +} +; +var Ljava_util_Arrays$ArrayList_2_classLit = createForClass('java.util', 'Arrays/ArrayList', 154); +function $clinit_Collections(){ + $clinit_Collections = emptyMethod; + EMPTY_LIST = new Collections$EmptyList; + EMPTY_MAP = new Collections$EmptyMap; + EMPTY_SET = new Collections$EmptySet; +} + +function addAll_15(c, a){ + $clinit_Collections(); + var e, e$array, e$index, e$max, result; + result = false; + for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + result = result | c.add_2(e); + } + return result; +} + +function disjoint(c1, c2){ + $clinit_Collections(); + var iterating, o, o$iterator, testing; + iterating = c1; + testing = c2; + if (instanceOf(c1, 21) && !instanceOf(c2, 21)) { + iterating = c2; + testing = c1; + } + for (o$iterator = iterating.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + if (testing.contains(o)) { + return false; + } + } + return true; +} + +function hashCode_47(collection){ + $clinit_Collections(); + var e, e$iterator, hashCode; + hashCode = 0; + for (e$iterator = collection.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + hashCode = hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function hashCode_48(list){ + $clinit_Collections(); + var e, e$iterator, hashCode; + hashCode = 1; + for (e$iterator = list.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function nCopies(n, o){ + $clinit_Collections(); + var i, list; + list = new ArrayList; + for (i = 0; i < n; ++i) { + list.array[list.array.length] = o; + } + return new Collections$UnmodifiableRandomAccessList(list); +} + +function reverse_2(l){ + var t; + $clinit_Collections(); + var head, headElem, iBack, iFront, tail, tailElem; + if (instanceOf(l, 54)) { + for (iFront = 0 , iBack = l.size_1() - 1; iFront < iBack; ++iFront , --iBack) { + t = l.get_0(iFront); + l.set_2(iFront, l.get_0(iBack)); + l.set_2(iBack, t); + } + } + else { + head = l.listIterator_0(); + tail = l.listIterator_1(l.size_1()); + while (head.nextIndex_0() < tail.previousIndex()) { + headElem = head.next_1(); + tailElem = tail.previous_0(); + head.set_1(tailElem); + tail.set_1(headElem); + } + } +} + +function reverseOrder(cmp){ + $clinit_Collections(); + return !cmp?($clinit_Comparators() , $clinit_Comparators() , REVERSE_NATURAL_ORDER):cmp.reversed(); +} + +function singletonMap(key, value_0){ + $clinit_Collections(); + var map_0; + map_0 = new HashMap_0(1); + instanceOfString(key)?$putStringValue(map_0, key, value_0):$put_9(map_0.hashCodeMap, key, value_0); + return new Collections$UnmodifiableMap(map_0); +} + +function unmodifiableList(list){ + $clinit_Collections(); + return instanceOf(list, 54)?new Collections$UnmodifiableRandomAccessList(list):new Collections$UnmodifiableList(list); +} + +var EMPTY_LIST, EMPTY_MAP, EMPTY_SET; +function $get_13(location_0){ + checkCriticalElementIndex(location_0, 0); + return null; +} + +function Collections$EmptyList(){ +} + +defineClass(940, 52, $intern_72, Collections$EmptyList); +_.contains = function contains_36(object){ + return false; +} +; +_.get_0 = function get_36(location_0){ + return $get_13(location_0); +} +; +_.iterator_0 = function iterator_53(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.listIterator_0 = function listIterator_11(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.size_1 = function size_47(){ + return 0; +} +; +var Ljava_util_Collections$EmptyList_2_classLit = createForClass('java.util', 'Collections/EmptyList', 940); +function $clinit_Collections$EmptyListIterator(){ + $clinit_Collections$EmptyListIterator = emptyMethod; + INSTANCE_4 = new Collections$EmptyListIterator; +} + +function Collections$EmptyListIterator(){ +} + +defineClass(941, 1, $intern_14, Collections$EmptyListIterator); +_.forEachRemaining = function forEachRemaining_23(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_30(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasNext_0 = function hasNext_25(){ + return false; +} +; +_.hasPrevious = function hasPrevious_4(){ + return false; +} +; +_.next_1 = function next_26(){ + throw toJs(new NoSuchElementException); +} +; +_.nextIndex_0 = function nextIndex_5(){ + return 0; +} +; +_.previous_0 = function previous_5(){ + throw toJs(new NoSuchElementException); +} +; +_.previousIndex = function previousIndex_4(){ + return -1; +} +; +_.remove = function remove_65(){ + throw toJs(new IllegalStateException); +} +; +_.set_1 = function set_15(o){ + throw toJs(new IllegalStateException); +} +; +var INSTANCE_4; +var Ljava_util_Collections$EmptyListIterator_2_classLit = createForClass('java.util', 'Collections/EmptyListIterator', 941); +function Collections$EmptyMap(){ +} + +defineClass(943, 1967, $intern_28, Collections$EmptyMap); +_.containsKey = function containsKey_11(key){ + return false; +} +; +_.containsValue = function containsValue_4(value_0){ + return false; +} +; +_.entrySet_0 = function entrySet_4(){ + return $clinit_Collections() , EMPTY_SET; +} +; +_.get_3 = function get_37(key){ + return null; +} +; +_.keySet_0 = function keySet_16(){ + return $clinit_Collections() , EMPTY_SET; +} +; +_.size_1 = function size_48(){ + return 0; +} +; +_.values_0 = function values_16(){ + return $clinit_Collections() , EMPTY_LIST; +} +; +var Ljava_util_Collections$EmptyMap_2_classLit = createForClass('java.util', 'Collections/EmptyMap', 943); +function Collections$EmptySet(){ +} + +defineClass(942, $intern_9, $intern_30, Collections$EmptySet); +_.contains = function contains_37(object){ + return false; +} +; +_.iterator_0 = function iterator_54(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.size_1 = function size_49(){ + return 0; +} +; +var Ljava_util_Collections$EmptySet_2_classLit = createForClass('java.util', 'Collections/EmptySet', 942); +function Collections$SingletonList(element){ + this.element = element; +} + +defineClass(599, 52, {3:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Collections$SingletonList); +_.contains = function contains_38(item_0){ + return equals_57(this.element, item_0); +} +; +_.get_0 = function get_38(index_0){ + checkCriticalElementIndex(index_0, 1); + return this.element; +} +; +_.size_1 = function size_50(){ + return 1; +} +; +var Ljava_util_Collections$SingletonList_2_classLit = createForClass('java.util', 'Collections/SingletonList', 599); +function $add_4(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_3(){ + throw toJs(new UnsupportedOperationException); +} + +function $clear_5(){ + throw toJs(new UnsupportedOperationException); +} + +function $contains_2(this$static, o){ + return this$static.coll.contains(o); +} + +function $containsAll_0(this$static, c){ + return this$static.coll.containsAll(c); +} + +function $remove_14(){ + throw toJs(new UnsupportedOperationException); +} + +function $toArray_4(this$static, a){ + return this$static.coll.toArray_0(a); +} + +function Collections$UnmodifiableCollection(coll){ + this.coll = coll; +} + +defineClass(372, 1, $intern_24, Collections$UnmodifiableCollection); +_.forEach_0 = function forEach_19(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_3(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.spliterator_0 = function spliterator_29(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_5(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_31(o){ + return $add_4(); +} +; +_.addAll = function addAll_16(c){ + return $addAll_3(); +} +; +_.clear_0 = function clear_38(){ + $clear_5(); +} +; +_.contains = function contains_39(o){ + return $contains_2(this, o); +} +; +_.containsAll = function containsAll_7(c){ + return $containsAll_0(this, c); +} +; +_.isEmpty = function isEmpty_20(){ + return this.coll.isEmpty(); +} +; +_.iterator_0 = function iterator_55(){ + return new Collections$UnmodifiableCollectionIterator(this.coll.iterator_0()); +} +; +_.remove_1 = function remove_66(o){ + return $remove_14(); +} +; +_.size_1 = function size_51(){ + return this.coll.size_1(); +} +; +_.toArray = function toArray_15(){ + return this.coll.toArray(); +} +; +_.toArray_0 = function toArray_16(a){ + return $toArray_4(this, a); +} +; +_.toString_0 = function toString_62(){ + return toString_40(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollection', 372); +function $remove_15(){ + throw toJs(new UnsupportedOperationException); +} + +function Collections$UnmodifiableCollectionIterator(it){ + this.it = it; +} + +defineClass(371, 1, $intern_6, Collections$UnmodifiableCollectionIterator); +_.forEachRemaining = function forEachRemaining_24(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_26(){ + return this.it.hasNext_0(); +} +; +_.next_1 = function next_27(){ + return this.it.next_1(); +} +; +_.remove = function remove_67(){ + $remove_15(); +} +; +var Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollectionIterator', 371); +function Collections$UnmodifiableList(list){ + Collections$UnmodifiableCollection.call(this, list); + this.list = list; +} + +defineClass(531, 372, $intern_73, Collections$UnmodifiableList); +_.spliterator_0 = function spliterator_30(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.add_3 = function add_32(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_17(index_0, c){ + throw toJs(new UnsupportedOperationException); +} +; +_.equals_0 = function equals_47(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.list, o); +} +; +_.get_0 = function get_39(index_0){ + return this.list.get_0(index_0); +} +; +_.hashCode_1 = function hashCode_49(){ + return hashCode__I__devirtual$(this.list); +} +; +_.indexOf_0 = function indexOf_5(o){ + return this.list.indexOf_0(o); +} +; +_.isEmpty = function isEmpty_21(){ + return this.list.isEmpty(); +} +; +_.listIterator_0 = function listIterator_12(){ + return new Collections$UnmodifiableListIterator(this.list.listIterator_1(0)); +} +; +_.listIterator_1 = function listIterator_13(from){ + return new Collections$UnmodifiableListIterator(this.list.listIterator_1(from)); +} +; +_.remove_2 = function remove_68(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_16(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.sort_0 = function sort_7(c){ + throw toJs(new UnsupportedOperationException); +} +; +_.subList = function subList_7(fromIndex, toIndex){ + return new Collections$UnmodifiableList(this.list.subList(fromIndex, toIndex)); +} +; +var Ljava_util_Collections$UnmodifiableList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableList', 531); +function Collections$UnmodifiableListIterator(lit){ + Collections$UnmodifiableCollectionIterator.call(this, lit); + this.lit = lit; +} + +defineClass(690, 371, $intern_14, Collections$UnmodifiableListIterator); +_.remove = function remove_69(){ + $remove_15(); +} +; +_.add_1 = function add_33(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasPrevious = function hasPrevious_5(){ + return this.lit.hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_6(){ + return this.lit.nextIndex_0(); +} +; +_.previous_0 = function previous_6(){ + return this.lit.previous_0(); +} +; +_.previousIndex = function previousIndex_5(){ + return this.lit.previousIndex(); +} +; +_.set_1 = function set_17(o){ + throw toJs(new UnsupportedOperationException); +} +; +var Ljava_util_Collections$UnmodifiableListIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableListIterator', 690); +function $containsValue_3(this$static, val){ + return this$static.map_0.containsValue(val); +} + +function $entrySet_2(this$static){ + !this$static.entrySet && (this$static.entrySet = new Collections$UnmodifiableMap$UnmodifiableEntrySet(this$static.map_0.entrySet_0())); + return this$static.entrySet; +} + +function $equals_7(this$static, o){ + return equals_Ljava_lang_Object__Z__devirtual$(this$static.map_0, o); +} + +function $keySet_1(this$static){ + !this$static.keySet && (this$static.keySet = new Collections$UnmodifiableSet(this$static.map_0.keySet_0())); + return this$static.keySet; +} + +function $values_2(this$static){ + !this$static.values && (this$static.values = new Collections$UnmodifiableCollection(this$static.map_0.values_0())); + return this$static.values; +} + +function Collections$UnmodifiableMap(map_0){ + this.map_0 = map_0; +} + +defineClass(600, 1, $intern_7, Collections$UnmodifiableMap); +_.forEach = function forEach_20(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge_2(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_39(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_12(key){ + return this.map_0.containsKey(key); +} +; +_.containsValue = function containsValue_5(val){ + return $containsValue_3(this, val); +} +; +_.entrySet_0 = function entrySet_5(){ + return $entrySet_2(this); +} +; +_.equals_0 = function equals_48(o){ + return $equals_7(this, o); +} +; +_.get_3 = function get_40(key){ + return this.map_0.get_3(key); +} +; +_.hashCode_1 = function hashCode_50(){ + return hashCode__I__devirtual$(this.map_0); +} +; +_.isEmpty = function isEmpty_22(){ + return this.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_17(){ + return $keySet_1(this); +} +; +_.put = function put_6(key, value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_0 = function remove_70(key){ + throw toJs(new UnsupportedOperationException); +} +; +_.size_1 = function size_52(){ + return this.map_0.size_1(); +} +; +_.toString_0 = function toString_63(){ + return toString_40(this.map_0); +} +; +_.values_0 = function values_17(){ + return $values_2(this); +} +; +var Ljava_util_Collections$UnmodifiableMap_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap', 600); +function Collections$UnmodifiableSet(set_0){ + Collections$UnmodifiableCollection.call(this, set_0); +} + +defineClass(382, 372, $intern_29, Collections$UnmodifiableSet); +_.spliterator_0 = function spliterator_31(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_49(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.coll, o); +} +; +_.hashCode_1 = function hashCode_51(){ + return hashCode__I__devirtual$(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSet', 382); +function $contains_3(this$static, o){ + return this$static.coll.contains(o); +} + +function $toArray_5(this$static, a){ + var result; + result = this$static.coll.toArray_0(a); + $wrap(result, this$static.coll.size_1()); + return result; +} + +function $wrap(array, size_0){ + var i; + for (i = 0; i < size_0; ++i) { + setCheck(array, i, new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(array[i], 42))); + } +} + +function Collections$UnmodifiableMap$UnmodifiableEntrySet(s){ + Collections$UnmodifiableSet.call(this, s); +} + +defineClass(944, 382, $intern_29, Collections$UnmodifiableMap$UnmodifiableEntrySet); +_.contains = function contains_40(o){ + return $contains_3(this, o); +} +; +_.containsAll = function containsAll_8(o){ + return this.coll.containsAll(o); +} +; +_.iterator_0 = function iterator_56(){ + var it; + it = this.coll.iterator_0(); + return new Collections$UnmodifiableMap$UnmodifiableEntrySet$1(it); +} +; +_.toArray = function toArray_17(){ + var array; + array = this.coll.toArray(); + $wrap(array, array.length); + return array; +} +; +_.toArray_0 = function toArray_18(a){ + return $toArray_5(this, a); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet', 944); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(val$it){ + this.val$it2 = val$it; +} + +defineClass(945, 1, $intern_6, Collections$UnmodifiableMap$UnmodifiableEntrySet$1); +_.forEachRemaining = function forEachRemaining_25(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_28(){ + return new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(this.val$it2.next_1(), 42)); +} +; +_.hasNext_0 = function hasNext_27(){ + return this.val$it2.hasNext_0(); +} +; +_.remove = function remove_71(){ + throw toJs(new UnsupportedOperationException); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/1', 945); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(entry){ + this.entry = entry; +} + +defineClass(688, 1, $intern_70, Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry); +_.equals_0 = function equals_50(o){ + return this.entry.equals_0(o); +} +; +_.getKey = function getKey_5(){ + return this.entry.getKey(); +} +; +_.getValue = function getValue_7(){ + return this.entry.getValue(); +} +; +_.hashCode_1 = function hashCode_52(){ + return this.entry.hashCode_1(); +} +; +_.setValue = function setValue_8(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_64(){ + return toString_40(this.entry); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry', 688); +function Collections$UnmodifiableRandomAccessList(list){ + Collections$UnmodifiableList.call(this, list); +} + +defineClass(601, 531, {20:1, 14:1, 15:1, 54:1}, Collections$UnmodifiableRandomAccessList); +var Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableRandomAccessList', 601); +function Collections$UnmodifiableSortedSet(sortedSet){ + Collections$UnmodifiableSet.call(this, sortedSet); + this.sortedSet = sortedSet; +} + +defineClass(689, 382, $intern_31, Collections$UnmodifiableSortedSet); +_.spliterator_0 = function spliterator_32(){ + return new SortedSet$1(this); +} +; +_.equals_0 = function equals_51(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.sortedSet, o); +} +; +_.hashCode_1 = function hashCode_53(){ + return hashCode__I__devirtual$(this.sortedSet); +} +; +var Ljava_util_Collections$UnmodifiableSortedSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSortedSet', 689); +function Comparator$lambda$0$Type(){ +} + +defineClass(847, 1, $intern_74, Comparator$lambda$0$Type); +_.compare_1 = function compare_8(a, b){ + var c; + return c = lambda$2_6(castTo(a, 11), castTo(b, 11)) , c != 0?c:lambda$4_6(castTo(a, 11), castTo(b, 11)); +} +; +_.equals_0 = function equals_52(other){ + return this === other; +} +; +_.reversed = function reversed_0(){ + return new Comparators$ReversedComparator(this); +} +; +var Ljava_util_Comparator$lambda$0$Type_2_classLit = createForClass('java.util', 'Comparator/lambda$0$Type', 847); +function $clinit_Comparators(){ + $clinit_Comparators = emptyMethod; + INTERNAL_NATURAL_ORDER = new Comparators$NaturalOrderComparator; + NATURAL_ORDER = new Comparators$NaturalOrderComparator; + REVERSE_NATURAL_ORDER = new Comparators$ReverseNaturalOrderComparator; +} + +var INTERNAL_NATURAL_ORDER, NATURAL_ORDER, REVERSE_NATURAL_ORDER; +function $compare(a, b){ + return checkCriticalNotNull(a) , compareTo_Ljava_lang_Object__I__devirtual$(a, (checkCriticalNotNull(b) , b)); +} + +function Comparators$NaturalOrderComparator(){ +} + +defineClass(751, 1, $intern_74, Comparators$NaturalOrderComparator); +_.compare_1 = function compare_9(a, b){ + return $compare(castTo(a, 35), castTo(b, 35)); +} +; +_.equals_0 = function equals_53(other){ + return this === other; +} +; +_.reversed = function reversed_1(){ + return $clinit_Comparators() , REVERSE_NATURAL_ORDER; +} +; +var Ljava_util_Comparators$NaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/NaturalOrderComparator', 751); +function $compare_0(a, b){ + return checkCriticalNotNull(b) , compareTo_Ljava_lang_Object__I__devirtual$(b, (checkCriticalNotNull(a) , a)); +} + +function Comparators$ReverseNaturalOrderComparator(){ +} + +defineClass(1177, 1, $intern_74, Comparators$ReverseNaturalOrderComparator); +_.compare_1 = function compare_10(a, b){ + return $compare_0(castTo(a, 35), castTo(b, 35)); +} +; +_.equals_0 = function equals_54(other){ + return this === other; +} +; +_.reversed = function reversed_2(){ + return $clinit_Comparators() , NATURAL_ORDER; +} +; +var Ljava_util_Comparators$ReverseNaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/ReverseNaturalOrderComparator', 1177); +function Comparators$ReversedComparator(comparator){ + this.comparator = comparator; +} + +defineClass(64, 1, $intern_74, Comparators$ReversedComparator); +_.equals_0 = function equals_55(other){ + return this === other; +} +; +_.compare_1 = function compare_11(a, b){ + return this.comparator.compare_1(b, a); +} +; +_.reversed = function reversed_3(){ + return this.comparator; +} +; +var Ljava_util_Comparators$ReversedComparator_2_classLit = createForClass('java.util', 'Comparators/ReversedComparator', 64); +function checkStructuralChange(host, iterator){ + if (iterator.$modCount != host.$modCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function recordLastKnownStructure(host, iterator){ + iterator.$modCount = host.$modCount; +} + +function structureChanged(host){ + var modCount, modCountable; + modCountable = host; + modCount = modCountable.$modCount | 0; + modCountable.$modCount = modCount + 1; +} + +function ConcurrentModificationException(){ + RuntimeException.call(this); +} + +defineClass(166, 60, $intern_43, ConcurrentModificationException); +var Ljava_util_ConcurrentModificationException_2_classLit = createForClass('java.util', 'ConcurrentModificationException', 166); +function $clinit_Date$StringData(){ + $clinit_Date$StringData = emptyMethod; + DAYS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']); + MONTHS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); +} + +var DAYS, MONTHS; +function $accept(this$static, value_0){ + var compensatedValue, newSum; + this$static.count = add_20(this$static.count, 1); + this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); + this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); + this$static.naiveSum += value_0; + compensatedValue = value_0 - this$static.sumError; + newSum = this$static.sum + compensatedValue; + this$static.sumError = newSum - this$static.sum - compensatedValue; + this$static.sum = newSum; +} + +function $getSum(this$static){ + var compensatedSum; + compensatedSum = this$static.sum + this$static.sumError; + if (isNaN(compensatedSum) && isInfinite(this$static.naiveSum)) { + return this$static.naiveSum; + } + return compensatedSum; +} + +function DoubleSummaryStatistics(){ +} + +defineClass(1904, 1, $intern_75, DoubleSummaryStatistics); +_.accept_2 = function accept_15(value_0){ + $accept(this, value_0); +} +; +_.toString_0 = function toString_65(){ + return 'DoubleSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?$getSum(this) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + $getSum(this) + ']'; +} +; +_.count = 0; +_.max_0 = $intern_60; +_.min_0 = $intern_59; +_.naiveSum = 0; +_.sum = 0; +_.sumError = 0; +var Ljava_util_DoubleSummaryStatistics_2_classLit = createForClass('java.util', 'DoubleSummaryStatistics', 1904); +function EmptyStackException(){ + RuntimeException.call(this); +} + +defineClass(1805, 60, $intern_43, EmptyStackException); +var Ljava_util_EmptyStackException_2_classLit = createForClass('java.util', 'EmptyStackException', 1805); +function $clear_6(this$static){ + $clear_0(this$static.keySet); + this$static.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.values.length, 5, 1); +} + +function $containsKey_5(this$static, key){ + return $contains_5(this$static.keySet, key); +} + +function $get_14(this$static, k){ + return $contains_5(this$static.keySet, k)?this$static.values[castTo(k, 22).ordinal]:null; +} + +function $put_7(this$static, key, value_0){ + $add_5(this$static.keySet, key); + return $set_2(this$static, key.ordinal, value_0); +} + +function $put_8(this$static, key, value_0){ + return $put_7(this$static, castTo(key, 22), value_0); +} + +function $remove_16(this$static, key){ + return $remove_17(this$static.keySet, key)?$set_2(this$static, castTo(key, 22).ordinal, null):null; +} + +function $set_2(this$static, ordinal, value_0){ + var was; + was = this$static.values[ordinal]; + this$static.values[ordinal] = value_0; + return was; +} + +function EnumMap(type_0){ + var all; + this.keySet = (all = castTo(type_0.enumConstantsFunc && type_0.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.keySet.all.length, 5, 1); +} + +defineClass(451, 1967, $intern_7, EnumMap); +_.put = function put_7(key, value_0){ + return $put_8(this, key, value_0); +} +; +_.clear_0 = function clear_40(){ + $clear_6(this); +} +; +_.containsKey = function containsKey_13(key){ + return $containsKey_5(this, key); +} +; +_.containsValue = function containsValue_6(value_0){ + var key, key$iterator; + for (key$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this.keySet); key$iterator.i < key$iterator.this$11.all.length;) { + key = $next_8(key$iterator); + if (equals_57(value_0, this.values[key.ordinal])) { + return true; + } + } + return false; +} +; +_.entrySet_0 = function entrySet_6(){ + return new EnumMap$EntrySet(this); +} +; +_.get_3 = function get_41(k){ + return $get_14(this, k); +} +; +_.remove_0 = function remove_72(key){ + return $remove_16(this, key); +} +; +_.size_1 = function size_53(){ + return this.keySet.size_0; +} +; +var Ljava_util_EnumMap_2_classLit = createForClass('java.util', 'EnumMap', 451); +function $contains_4(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function EnumMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1352, $intern_9, $intern_10, EnumMap$EntrySet); +_.clear_0 = function clear_41(){ + $clear_6(this.this$01); +} +; +_.contains = function contains_41(o){ + return $contains_4(this, o); +} +; +_.iterator_0 = function iterator_57(){ + return new EnumMap$EntrySetIterator(this.this$01); +} +; +_.remove_1 = function remove_73(entry){ + var key; + if ($contains_4(this, entry)) { + key = castTo(entry, 42).getKey(); + $remove_16(this.this$01, key); + return true; + } + return false; +} +; +_.size_1 = function size_54(){ + return this.this$01.keySet.size_0; +} +; +var Ljava_util_EnumMap$EntrySet_2_classLit = createForClass('java.util', 'EnumMap/EntrySet', 1352); +function EnumMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.it = new EnumSet$EnumSetImpl$IteratorImpl(this.this$01.keySet); +} + +defineClass(1353, 1, $intern_6, EnumMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_26(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_29(){ + return this.key = $next_8(this.it) , new EnumMap$MapEntry(this.this$01, this.key); +} +; +_.hasNext_0 = function hasNext_28(){ + return $hasNext_4(this.it); +} +; +_.remove = function remove_74(){ + checkCriticalState(!!this.key); + $remove_16(this.this$01, this.key); + this.key = null; +} +; +var Ljava_util_EnumMap$EntrySetIterator_2_classLit = createForClass('java.util', 'EnumMap/EntrySetIterator', 1353); +function EnumMap$MapEntry(this$0, key){ + this.this$01 = this$0; + this.key = key; +} + +defineClass(1354, 1984, $intern_70, EnumMap$MapEntry); +_.getKey = function getKey_6(){ + return this.key; +} +; +_.getValue = function getValue_8(){ + return this.this$01.values[this.key.ordinal]; +} +; +_.setValue = function setValue_9(value_0){ + return $set_2(this.this$01, this.key.ordinal, value_0); +} +; +var Ljava_util_EnumMap$MapEntry_2_classLit = createForClass('java.util', 'EnumMap/MapEntry', 1354); +function allOf(elementType){ + var all, set_0; + all = castTo(elementType.enumConstantsFunc && elementType.enumConstantsFunc(), 9); + set_0 = castTo(clone_0(all, all.length), 9); + return new EnumSet$EnumSetImpl(all, set_0, all.length); +} + +function of_1(first){ + var all, set_0, clazz, superclass; + set_0 = (all = castTo($getEnumConstants((clazz = first.___clazz , superclass = clazz.enumSuperclass , superclass == Ljava_lang_Enum_2_classLit?clazz:superclass)), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + $add_5(set_0, first); + return set_0; +} + +function of_2(first, rest){ + var set_0; + set_0 = of_1(first); + addAll_15(set_0, rest); + return set_0; +} + +defineClass(174, $intern_9, {20:1, 28:1, 14:1, 174:1, 21:1}); +var Ljava_util_EnumSet_2_classLit = createForClass('java.util', 'EnumSet', 174); +function $add_5(this$static, e){ + var ordinal; + checkCriticalNotNull(e); + ordinal = e.ordinal; + if (!this$static.set_0[ordinal]) { + setCheck(this$static.set_0, ordinal, e); + ++this$static.size_0; + return true; + } + return false; +} + +function $clone(this$static){ + var clonedSet; + clonedSet = castTo(clone_0(this$static.set_0, this$static.set_0.length), 9); + return new EnumSet$EnumSetImpl(this$static.all, clonedSet, this$static.size_0); +} + +function $contains_5(this$static, o){ + return instanceOf(o, 22) && $containsEnum(this$static, castTo(o, 22)); +} + +function $containsEnum(this$static, e){ + return !!e && this$static.set_0[e.ordinal] == e; +} + +function $remove_17(this$static, o){ + return instanceOf(o, 22) && $removeEnum(this$static, castTo(o, 22)); +} + +function $removeEnum(this$static, e){ + if (!!e && this$static.set_0[e.ordinal] == e) { + setCheck(this$static.set_0, e.ordinal, null); + --this$static.size_0; + return true; + } + return false; +} + +function EnumSet$EnumSetImpl(all, set_0, size_0){ + this.all = all; + this.set_0 = set_0; + this.size_0 = size_0; +} + +defineClass(156, 174, {20:1, 28:1, 14:1, 174:1, 156:1, 21:1}, EnumSet$EnumSetImpl); +_.add_2 = function add_34(e){ + return $add_5(this, castTo(e, 22)); +} +; +_.contains = function contains_42(o){ + return $contains_5(this, o); +} +; +_.iterator_0 = function iterator_58(){ + return new EnumSet$EnumSetImpl$IteratorImpl(this); +} +; +_.remove_1 = function remove_75(o){ + return $remove_17(this, o); +} +; +_.size_1 = function size_55(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_EnumSet$EnumSetImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl', 156); +function $findNext(this$static){ + var c; + ++this$static.i; + for (c = this$static.this$11.all.length; this$static.i < c; ++this$static.i) { + if (this$static.this$11.set_0[this$static.i]) { + return; + } + } +} + +function $hasNext_4(this$static){ + return this$static.i < this$static.this$11.all.length; +} + +function $next_8(this$static){ + checkCriticalElement(this$static.i < this$static.this$11.all.length); + this$static.last = this$static.i; + $findNext(this$static); + return this$static.this$11.set_0[this$static.last]; +} + +function EnumSet$EnumSetImpl$IteratorImpl(this$1){ + this.this$11 = this$1; + $findNext(this); +} + +defineClass(343, 1, $intern_6, EnumSet$EnumSetImpl$IteratorImpl); +_.forEachRemaining = function forEachRemaining_27(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_30(){ + return $next_8(this); +} +; +_.hasNext_0 = function hasNext_29(){ + return $hasNext_4(this); +} +; +_.remove = function remove_76(){ + checkCriticalState(this.last != -1); + setCheck(this.this$11.set_0, this.last, null); + --this.this$11.size_0; + this.last = -1; +} +; +_.i = -1; +_.last = -1; +var Ljava_util_EnumSet$EnumSetImpl$IteratorImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl/IteratorImpl', 343); +function HashMap(){ + $reset(this); +} + +function HashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); +} + +function HashMap_1(toBeCopied){ + $reset(this); + $putAll(this, toBeCopied); +} + +defineClass(43, 488, $intern_76, HashMap, HashMap_0, HashMap_1); +_.equals_1 = function equals_56(value1, value2){ + return maskUndefined(value1) === maskUndefined(value2) || value1 != null && equals_Ljava_lang_Object__Z__devirtual$(value1, value2); +} +; +_.getHashCode = function getHashCode(key){ + var hashCode; + hashCode = hashCode__I__devirtual$(key); + return hashCode | 0; +} +; +var Ljava_util_HashMap_2_classLit = createForClass('java.util', 'HashMap', 43); +function $add_6(this$static, o){ + var old; + old = this$static.map_0.put(o, this$static); + return old == null; +} + +function $contains_6(this$static, o){ + return this$static.map_0.containsKey(o); +} + +function $remove_18(this$static, o){ + return this$static.map_0.remove_0(o) != null; +} + +function HashSet(){ + this.map_0 = new HashMap; +} + +function HashSet_0(initialCapacity){ + this.map_0 = new HashMap_0(initialCapacity); +} + +function HashSet_1(c){ + this.map_0 = new HashMap_0(c.size_1()); + $addAll(this, c); +} + +function HashSet_2(map_0){ + this.map_0 = map_0; +} + +defineClass(53, $intern_9, $intern_77, HashSet, HashSet_0, HashSet_1); +_.add_2 = function add_35(o){ + return $add_6(this, o); +} +; +_.clear_0 = function clear_42(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_43(o){ + return $contains_6(this, o); +} +; +_.isEmpty = function isEmpty_23(){ + return this.map_0.size_1() == 0; +} +; +_.iterator_0 = function iterator_59(){ + return this.map_0.keySet_0().iterator_0(); +} +; +_.remove_1 = function remove_77(o){ + return $remove_18(this, o); +} +; +_.size_1 = function size_56(){ + return this.map_0.size_1(); +} +; +var Ljava_util_HashSet_2_classLit = createForClass('java.util', 'HashSet', 53); +function $accept_0(this$static, value_0){ + this$static.count = add_20(this$static.count, 1); + this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); + this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); + this$static.sum = add_20(this$static.sum, value_0); +} + +function IntSummaryStatistics(){ +} + +defineClass(1781, 1, $intern_21, IntSummaryStatistics); +_.accept_0 = function accept_16(value_0){ + $accept_0(this, value_0); +} +; +_.toString_0 = function toString_66(){ + return 'IntSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?toDouble_0(this.sum) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + toString_39(this.sum) + ']'; +} +; +_.count = 0; +_.max_0 = $intern_42; +_.min_0 = $intern_0; +_.sum = 0; +var Ljava_util_IntSummaryStatistics_2_classLit = createForClass('java.util', 'IntSummaryStatistics', 1781); +function $findEntryInChain(this$static, key, chain){ + var entry, entry$array, entry$index, entry$max; + for (entry$array = chain , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { + entry = entry$array[entry$index]; + if (this$static.host.equals_1(key, entry.getKey())) { + return entry; + } + } + return null; +} + +function $getChainOrEmpty(this$static, hashCode){ + var chain; + chain = this$static.backingMap.get(hashCode); + return chain == null?new Array:chain; +} + +function $getEntry_0(this$static, key){ + return $findEntryInChain(this$static, key, $getChainOrEmpty(this$static, key == null?0:this$static.host.getHashCode(key))); +} + +function $put_9(this$static, key, value_0){ + var chain, chain0, entry, hashCode; + hashCode = key == null?0:this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); + if (chain0.length == 0) { + this$static.backingMap.set(hashCode, chain0); + } + else { + entry = $findEntryInChain(this$static, key, chain0); + if (entry) { + return entry.setValue(value_0); + } + } + setCheck(chain0, chain0.length, new AbstractMap$SimpleEntry(key, value_0)); + ++this$static.size_0; + structureChanged(this$static.host); + return null; +} + +function $remove_19(this$static, key){ + var chain, chain0, entry, hashCode, i; + hashCode = key == null?0:this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); + for (i = 0; i < chain0.length; i++) { + entry = chain0[i]; + if (this$static.host.equals_1(key, entry.getKey())) { + if (chain0.length == 1) { + chain0.length = 0; + $delete_0(this$static.backingMap, hashCode); + } + else { + chain0.splice(i, 1); + } + --this$static.size_0; + structureChanged(this$static.host); + return entry.getValue(); + } + } + return null; +} + +function InternalHashCodeMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1049, 1, $intern_23, InternalHashCodeMap); +_.forEach_0 = function forEach_21(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_60(){ + return new InternalHashCodeMap$1(this); +} +; +_.size_0 = 0; +var Ljava_util_InternalHashCodeMap_2_classLit = createForClass('java.util', 'InternalHashCodeMap', 1049); +function InternalHashCodeMap$1(this$0){ + this.this$01 = this$0; + this.chains = this.this$01.backingMap.entries(); + this.chain = new Array; +} + +defineClass(711, 1, $intern_6, InternalHashCodeMap$1); +_.forEachRemaining = function forEachRemaining_28(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_31(){ + return this.lastEntry = this.chain[this.itemIndex++] , this.lastEntry; +} +; +_.hasNext_0 = function hasNext_30(){ + var current; + if (this.itemIndex < this.chain.length) { + return true; + } + current = this.chains.next(); + if (!current.done) { + this.chain = current.value[1]; + this.itemIndex = 0; + return true; + } + return false; +} +; +_.remove = function remove_78(){ + $remove_19(this.this$01, this.lastEntry.getKey()); + this.itemIndex != 0 && --this.itemIndex; +} +; +_.itemIndex = 0; +_.lastEntry = null; +var Ljava_util_InternalHashCodeMap$1_2_classLit = createForClass('java.util', 'InternalHashCodeMap/1', 711); +function $delete_0(this$static, key){ + var fn; + fn = this$static['delete']; + fn.call(this$static, key); +} + +function $delete_1(this$static, key){ + var fn; + fn = this$static['delete']; + fn.call(this$static, key); +} + +function $clinit_InternalJsMapFactory(){ + $clinit_InternalJsMapFactory = emptyMethod; + jsMapCtor = getJsMapConstructor(); +} + +function canHandleObjectCreateAndProto(){ + if (!Object.create || !Object.getOwnPropertyNames) { + return false; + } + var protoField = '__proto__'; + var map_0 = Object.create(null); + if (map_0[protoField] !== undefined) { + return false; + } + var keys_0 = Object.getOwnPropertyNames(map_0); + if (keys_0.length != 0) { + return false; + } + map_0[protoField] = 42; + if (map_0[protoField] !== 42) { + return false; + } + if (Object.getOwnPropertyNames(map_0).length == 0) { + return false; + } + return true; +} + +function getJsMapConstructor(){ + function isCorrectIterationProtocol(){ + try { + return (new Map).entries().next().done; + } + catch (e) { + return false; + } + } + + if (typeof Map === 'function' && Map.prototype.entries && isCorrectIterationProtocol()) { + return Map; + } + else { + return getJsMapPolyFill(); + } +} + +function getJsMapPolyFill(){ + function Stringmap(){ + this.obj = this.createObject(); + } + + ; + Stringmap.prototype.createObject = function(key){ + return Object.create(null); + } + ; + Stringmap.prototype.get = function(key){ + return this.obj[key]; + } + ; + Stringmap.prototype.set = function(key, value_0){ + this.obj[key] = value_0; + } + ; + Stringmap.prototype['delete'] = function(key){ + delete this.obj[key]; + } + ; + Stringmap.prototype.keys = function(){ + return Object.getOwnPropertyNames(this.obj); + } + ; + Stringmap.prototype.entries = function(){ + var keys_0 = this.keys(); + var map_0 = this; + var nextIndex = 0; + return {next:function(){ + if (nextIndex >= keys_0.length) + return {done:true}; + var key = keys_0[nextIndex++]; + return {value:[key, map_0.get(key)], done:false}; + } + }; + } + ; + if (!canHandleObjectCreateAndProto()) { + Stringmap.prototype.createObject = function(){ + return {}; + } + ; + Stringmap.prototype.get = function(key){ + return this.obj[':' + key]; + } + ; + Stringmap.prototype.set = function(key, value_0){ + this.obj[':' + key] = value_0; + } + ; + Stringmap.prototype['delete'] = function(key){ + delete this.obj[':' + key]; + } + ; + Stringmap.prototype.keys = function(){ + var result = []; + for (var key in this.obj) { + key.charCodeAt(0) == 58 && result.push(key.substring(1)); + } + return result; + } + ; + } + return Stringmap; +} + +function newJsMap(){ + $clinit_InternalJsMapFactory(); + return new jsMapCtor; +} + +var jsMapCtor; +function $contains_7(this$static, key){ + return !(this$static.backingMap.get(key) === undefined); +} + +function $get_15(this$static, key){ + return this$static.backingMap.get(key); +} + +function $put_10(this$static, key, value_0){ + var oldValue; + oldValue = this$static.backingMap.get(key); + this$static.backingMap.set(key, value_0 === undefined?null:value_0); + if (oldValue === undefined) { + ++this$static.size_0; + structureChanged(this$static.host); + } + else { + ++this$static.valueMod; + } + return oldValue; +} + +function $remove_20(this$static, key){ + var value_0; + value_0 = this$static.backingMap.get(key); + if (value_0 === undefined) { + ++this$static.valueMod; + } + else { + $delete_1(this$static.backingMap, key); + --this$static.size_0; + structureChanged(this$static.host); + } + return value_0; +} + +function InternalStringMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1047, 1, $intern_23, InternalStringMap); +_.forEach_0 = function forEach_22(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_61(){ + return new InternalStringMap$1(this); +} +; +_.size_0 = 0; +_.valueMod = 0; +var Ljava_util_InternalStringMap_2_classLit = createForClass('java.util', 'InternalStringMap', 1047); +function InternalStringMap$1(this$0){ + this.this$01 = this$0; + this.entries_0 = this.this$01.backingMap.entries(); + this.current = this.entries_0.next(); +} + +defineClass(710, 1, $intern_6, InternalStringMap$1); +_.forEachRemaining = function forEachRemaining_29(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_32(){ + return this.last = this.current , this.current = this.entries_0.next() , new InternalStringMap$2(this.this$01, this.last, this.this$01.valueMod); +} +; +_.hasNext_0 = function hasNext_31(){ + return !this.current.done; +} +; +_.remove = function remove_79(){ + $remove_20(this.this$01, this.last.value[0]); +} +; +var Ljava_util_InternalStringMap$1_2_classLit = createForClass('java.util', 'InternalStringMap/1', 710); +function InternalStringMap$2(this$0, val$entry, val$lastValueMod){ + this.this$01 = this$0; + this.val$entry2 = val$entry; + this.val$lastValueMod3 = val$lastValueMod; +} + +defineClass(1048, 1984, $intern_70, InternalStringMap$2); +_.getKey = function getKey_7(){ + return this.val$entry2.value[0]; +} +; +_.getValue = function getValue_9(){ + if (this.this$01.valueMod != this.val$lastValueMod3) { + return $get_15(this.this$01, this.val$entry2.value[0]); + } + return this.val$entry2.value[1]; +} +; +_.setValue = function setValue_10(object){ + return $put_10(this.this$01, this.val$entry2.value[0], object); +} +; +_.val$lastValueMod3 = 0; +var Ljava_util_InternalStringMap$2_2_classLit = createForClass('java.util', 'InternalStringMap/2', 1048); +function $$init_3(this$static){ + this$static.head = new LinkedHashMap$ChainEntry(this$static); + this$static.map_0 = new HashMap; +} + +function $clear_7(this$static){ + $reset(this$static.map_0); + this$static.head.prev = this$static.head; + this$static.head.next_0 = this$static.head; +} + +function $containsKey_6(this$static, key){ + return $containsKey_3(this$static.map_0, key); +} + +function $get_16(this$static, key){ + var entry; + entry = castTo($get_10(this$static.map_0, key), 387); + if (entry) { + $recordAccess(this$static, entry); + return entry.value_0; + } + return null; +} + +function $put_11(this$static, key, value_0){ + var newEntry, old, oldValue; + old = castTo($get_10(this$static.map_0, key), 387); + if (!old) { + newEntry = new LinkedHashMap$ChainEntry_0(this$static, key, value_0); + $put_6(this$static.map_0, key, newEntry); + $addToEnd(newEntry); + return null; + } + else { + oldValue = $setValue_0(old, value_0); + $recordAccess(this$static, old); + return oldValue; + } +} + +function $recordAccess(this$static, entry){ + if (this$static.accessOrder) { + $remove_23(entry); + $addToEnd(entry); + } +} + +function $remove_22(this$static, key){ + var entry; + entry = castTo($remove_6(this$static.map_0, key), 387); + if (entry) { + $remove_23(entry); + return entry.value_0; + } + return null; +} + +function LinkedHashMap(){ + HashMap.call(this); + $$init_3(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +function LinkedHashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); + $$init_3(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +defineClass(228, 43, $intern_76, LinkedHashMap, LinkedHashMap_0); +_.clear_0 = function clear_43(){ + $clear_7(this); +} +; +_.containsKey = function containsKey_14(key){ + return $containsKey_6(this, key); +} +; +_.containsValue = function containsValue_7(value_0){ + var node; + node = this.head.next_0; + while (node != this.head) { + if (equals_57(node.value_0, value_0)) { + return true; + } + node = node.next_0; + } + return false; +} +; +_.entrySet_0 = function entrySet_7(){ + return new LinkedHashMap$EntrySet(this); +} +; +_.get_3 = function get_42(key){ + return $get_16(this, key); +} +; +_.put = function put_8(key, value_0){ + return $put_11(this, key, value_0); +} +; +_.remove_0 = function remove_80(key){ + return $remove_22(this, key); +} +; +_.size_1 = function size_57(){ + return $size_2(this.map_0); +} +; +_.accessOrder = false; +var Ljava_util_LinkedHashMap_2_classLit = createForClass('java.util', 'LinkedHashMap', 228); +function $addToEnd(this$static){ + var tail; + tail = this$static.this$01.head.prev; + this$static.prev = tail; + this$static.next_0 = this$static.this$01.head; + tail.next_0 = this$static.this$01.head.prev = this$static; +} + +function $remove_23(this$static){ + this$static.next_0.prev = this$static.prev; + this$static.prev.next_0 = this$static.next_0; + this$static.next_0 = this$static.prev = null; +} + +function LinkedHashMap$ChainEntry(this$0){ + LinkedHashMap$ChainEntry_0.call(this, this$0, null, null); +} + +function LinkedHashMap$ChainEntry_0(this$0, key, value_0){ + this.this$01 = this$0; + AbstractMap$SimpleEntry.call(this, key, value_0); +} + +defineClass(387, 383, {484:1, 383:1, 387:1, 42:1}, LinkedHashMap$ChainEntry, LinkedHashMap$ChainEntry_0); +var Ljava_util_LinkedHashMap$ChainEntry_2_classLit = createForClass('java.util', 'LinkedHashMap/ChainEntry', 387); +function $contains_8(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function LinkedHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(701, $intern_9, $intern_10, LinkedHashMap$EntrySet); +_.clear_0 = function clear_44(){ + $clear_7(this.this$01); +} +; +_.contains = function contains_44(o){ + return $contains_8(this, o); +} +; +_.iterator_0 = function iterator_62(){ + return new LinkedHashMap$EntrySet$EntryIterator(this); +} +; +_.remove_1 = function remove_81(entry){ + var key; + if ($contains_8(this, entry)) { + key = castTo(entry, 42).getKey(); + $remove_22(this.this$01, key); + return true; + } + return false; +} +; +_.size_1 = function size_58(){ + return $size_2(this.this$01.map_0); +} +; +var Ljava_util_LinkedHashMap$EntrySet_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet', 701); +function $next_9(this$static){ + checkStructuralChange(this$static.this$11.this$01.map_0, this$static); + checkCriticalElement(this$static.next_0 != this$static.this$11.this$01.head); + this$static.last = this$static.next_0; + this$static.next_0 = this$static.next_0.next_0; + return this$static.last; +} + +function LinkedHashMap$EntrySet$EntryIterator(this$1){ + this.this$11 = this$1; + this.next_0 = this$1.this$01.head.next_0; + recordLastKnownStructure(this$1.this$01.map_0, this); +} + +defineClass(702, 1, $intern_6, LinkedHashMap$EntrySet$EntryIterator); +_.forEachRemaining = function forEachRemaining_30(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_33(){ + return $next_9(this); +} +; +_.hasNext_0 = function hasNext_32(){ + return this.next_0 != this.this$11.this$01.head; +} +; +_.remove = function remove_82(){ + checkCriticalState(!!this.last); + checkStructuralChange(this.this$11.this$01.map_0, this); + $remove_23(this.last); + $remove_6(this.this$11.this$01.map_0, this.last.key); + recordLastKnownStructure(this.this$11.this$01.map_0, this); + this.last = null; +} +; +var Ljava_util_LinkedHashMap$EntrySet$EntryIterator_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet/EntryIterator', 702); +function LinkedHashSet(){ + HashSet_2.call(this, new LinkedHashMap); +} + +function LinkedHashSet_0(ignored){ + HashSet_2.call(this, new LinkedHashMap_0(ignored)); +} + +function LinkedHashSet_1(c){ + HashSet_2.call(this, new LinkedHashMap); + $addAll(this, c); +} + +defineClass(178, 53, $intern_77, LinkedHashSet, LinkedHashSet_0, LinkedHashSet_1); +var Ljava_util_LinkedHashSet_2_classLit = createForClass('java.util', 'LinkedHashSet', 178); +function $$init_4(this$static){ + this$static.header = new LinkedList$Node; + this$static.tail = new LinkedList$Node; +} + +function $add_7(this$static, o){ + $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); + return true; +} + +function $addFirst_0(this$static, o){ + $addNode_0(this$static, o, this$static.header, this$static.header.next_0); +} + +function $addLast_0(this$static, o){ + $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); +} + +function $addNode_0(this$static, o, prev, next){ + var node; + node = new LinkedList$Node; + node.value_0 = o; + node.prev = prev; + node.next_0 = next; + next.prev = prev.next_0 = node; + ++this$static.size_0; +} + +function $getFirst(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return this$static.header.next_0.value_0; +} + +function $getLast(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return this$static.tail.prev.value_0; +} + +function $listIterator_2(this$static, index_0){ + var i, node; + checkCriticalPositionIndex(index_0, this$static.size_0); + if (index_0 >= this$static.size_0 >> 1) { + node = this$static.tail; + for (i = this$static.size_0; i > index_0; --i) { + node = node.prev; + } + } + else { + node = this$static.header.next_0; + for (i = 0; i < index_0; ++i) { + node = node.next_0; + } + } + return new LinkedList$ListIteratorImpl(this$static, index_0, node); +} + +function $poll(this$static){ + return this$static.size_0 == 0?null:(checkCriticalElement(this$static.size_0 != 0) , $removeNode_0(this$static, this$static.header.next_0)); +} + +function $removeFirst_0(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return $removeNode_0(this$static, this$static.header.next_0); +} + +function $removeLast_0(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return $removeNode_0(this$static, this$static.tail.prev); +} + +function $removeNode_0(this$static, node){ + var oldValue; + oldValue = node.value_0; + node.next_0.prev = node.prev; + node.prev.next_0 = node.next_0; + node.next_0 = node.prev = null; + node.value_0 = null; + --this$static.size_0; + return oldValue; +} + +function $reset_0(this$static){ + this$static.header.next_0 = this$static.tail; + this$static.tail.prev = this$static.header; + this$static.header.prev = this$static.tail.next_0 = null; + this$static.size_0 = 0; +} + +function LinkedList(){ + $$init_4(this); + $reset_0(this); +} + +function LinkedList_0(c){ + $$init_4(this); + $reset_0(this); + $addAll(this, c); +} + +defineClass(68, 1964, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1}, LinkedList, LinkedList_0); +_.add_2 = function add_36(o){ + return $add_7(this, o); +} +; +_.clear_0 = function clear_45(){ + $reset_0(this); +} +; +_.listIterator_1 = function listIterator_14(index_0){ + return $listIterator_2(this, index_0); +} +; +_.size_1 = function size_59(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_LinkedList_2_classLit = createForClass('java.util', 'LinkedList', 68); +function $add_8(this$static, o){ + $addNode_0(this$static.this$01, o, this$static.currentNode.prev, this$static.currentNode); + ++this$static.currentIndex; + this$static.lastNode = null; +} + +function $hasNext_5(this$static){ + return this$static.currentNode != this$static.this$01.tail; +} + +function $next_10(this$static){ + checkCriticalElement(this$static.currentNode != this$static.this$01.tail); + this$static.lastNode = this$static.currentNode; + this$static.currentNode = this$static.currentNode.next_0; + ++this$static.currentIndex; + return this$static.lastNode.value_0; +} + +function $previous_0(this$static){ + checkCriticalElement(this$static.currentNode.prev != this$static.this$01.header); + this$static.lastNode = this$static.currentNode = this$static.currentNode.prev; + --this$static.currentIndex; + return this$static.lastNode.value_0; +} + +function $remove_24(this$static){ + var nextNode; + checkCriticalState(!!this$static.lastNode); + nextNode = this$static.lastNode.next_0; + $removeNode_0(this$static.this$01, this$static.lastNode); + this$static.currentNode == this$static.lastNode?(this$static.currentNode = nextNode):--this$static.currentIndex; + this$static.lastNode = null; +} + +function LinkedList$ListIteratorImpl(this$0, index_0, startNode){ + this.this$01 = this$0; + this.currentNode = startNode; + this.currentIndex = index_0; +} + +defineClass(970, 1, $intern_14, LinkedList$ListIteratorImpl); +_.forEachRemaining = function forEachRemaining_31(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_37(o){ + $add_8(this, o); +} +; +_.hasNext_0 = function hasNext_33(){ + return $hasNext_5(this); +} +; +_.hasPrevious = function hasPrevious_6(){ + return this.currentNode.prev != this.this$01.header; +} +; +_.next_1 = function next_34(){ + return $next_10(this); +} +; +_.nextIndex_0 = function nextIndex_7(){ + return this.currentIndex; +} +; +_.previous_0 = function previous_7(){ + return $previous_0(this); +} +; +_.previousIndex = function previousIndex_6(){ + return this.currentIndex - 1; +} +; +_.remove = function remove_83(){ + $remove_24(this); +} +; +_.set_1 = function set_18(o){ + checkCriticalState(!!this.lastNode); + this.lastNode.value_0 = o; +} +; +_.currentIndex = 0; +_.lastNode = null; +var Ljava_util_LinkedList$ListIteratorImpl_2_classLit = createForClass('java.util', 'LinkedList/ListIteratorImpl', 970); +function LinkedList$Node(){ +} + +defineClass(608, 1, {}, LinkedList$Node); +var Ljava_util_LinkedList$Node_2_classLit = createForClass('java.util', 'LinkedList/Node', 608); +function $clinit_Locale(){ + $clinit_Locale = emptyMethod; + ROOT = new Locale$1; + defaultLocale = new Locale$4; +} + +defineClass(1959, 1, {}); +var ROOT, defaultLocale; +var Ljava_util_Locale_2_classLit = createForClass('java.util', 'Locale', 1959); +function Locale$1(){ +} + +defineClass(861, 1959, {}, Locale$1); +_.toString_0 = function toString_67(){ + return ''; +} +; +var Ljava_util_Locale$1_2_classLit = createForClass('java.util', 'Locale/1', 861); +function Locale$4(){ +} + +defineClass(862, 1959, {}, Locale$4); +_.toString_0 = function toString_68(){ + return 'unknown'; +} +; +var Ljava_util_Locale$4_2_classLit = createForClass('java.util', 'Locale/4', 862); +function NoSuchElementException(){ + RuntimeException.call(this); +} + +function NoSuchElementException_0(){ + RuntimeException_0.call(this, 'There is no more element.'); +} + +defineClass(109, 60, {3:1, 102:1, 60:1, 78:1, 109:1}, NoSuchElementException, NoSuchElementException_0); +var Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util', 'NoSuchElementException', 109); +function equals_57(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function hashCode_54(o){ + return o != null?hashCode__I__devirtual$(o):0; +} + +function requireNonNull(obj, message){ + if (obj == null) { + throw toJs(new NullPointerException_0(message)); + } + return obj; +} + +function $clinit_Optional(){ + $clinit_Optional = emptyMethod; + EMPTY_3 = new Optional(null); +} + +function $get_17(this$static){ + checkCriticalElement(this$static.ref != null); + return this$static.ref; +} + +function $ifPresent(this$static, consumer){ + this$static.ref != null && $accept_4(consumer, this$static.ref); +} + +function $map(this$static, mapper){ + checkCriticalNotNull(mapper); + if (this$static.ref != null) { + return ofNullable(mapper.apply_0(this$static.ref)); + } + return EMPTY_3; +} + +function $orElse(this$static){ + return this$static.ref != null?this$static.ref:null; +} + +function Optional(ref){ + $clinit_Optional(); + this.ref = ref; +} + +function ofNullable(value_0){ + return value_0 == null?EMPTY_3:new Optional(checkCriticalNotNull(value_0)); +} + +defineClass(404, 1, {404:1}, Optional); +_.equals_0 = function equals_58(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 404)) { + return false; + } + other = castTo(obj, 404); + return equals_57(this.ref, other.ref); +} +; +_.hashCode_1 = function hashCode_55(){ + return hashCode_54(this.ref); +} +; +_.toString_0 = function toString_69(){ + return this.ref != null?'Optional.of(' + valueOf_7(this.ref) + ')':'Optional.empty()'; +} +; +var EMPTY_3; +var Ljava_util_Optional_2_classLit = createForClass('java.util', 'Optional', 404); +function $clinit_OptionalDouble(){ + $clinit_OptionalDouble = emptyMethod; + EMPTY_4 = new OptionalDouble; +} + +function $orElse_0(this$static){ + return this$static.present?this$static.ref:0; +} + +function $orElseGet(this$static, other){ + return this$static.present?this$static.ref:other.getAsDouble(); +} + +function OptionalDouble(){ + this.ref = 0; + this.present = false; +} + +function OptionalDouble_0(value_0){ + $clinit_OptionalDouble(); + this.ref = value_0; + this.present = true; +} + +defineClass(463, 1, {463:1}, OptionalDouble, OptionalDouble_0); +_.equals_0 = function equals_59(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 463)) { + return false; + } + other = castTo(obj, 463); + return this.present == other.present && compare_4(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_56(){ + return this.present?round_int(this.ref):0; +} +; +_.toString_0 = function toString_70(){ + return this.present?'OptionalDouble.of(' + ('' + this.ref) + ')':'OptionalDouble.empty()'; +} +; +_.present = false; +_.ref = 0; +var EMPTY_4; +var Ljava_util_OptionalDouble_2_classLit = createForClass('java.util', 'OptionalDouble', 463); +function $clinit_OptionalInt(){ + $clinit_OptionalInt = emptyMethod; + EMPTY_5 = new OptionalInt; +} + +function $orElse_1(this$static){ + return this$static.present?this$static.ref:0; +} + +function OptionalInt(){ + this.ref = 0; + this.present = false; +} + +function OptionalInt_0(value_0){ + $clinit_OptionalInt(); + this.ref = value_0; + this.present = true; +} + +defineClass(517, 1, {517:1}, OptionalInt, OptionalInt_0); +_.equals_0 = function equals_60(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 517)) { + return false; + } + other = castTo(obj, 517); + return this.present == other.present && compare_5(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_57(){ + return this.present?this.ref:0; +} +; +_.toString_0 = function toString_71(){ + return this.present?'OptionalInt.of(' + ('' + this.ref) + ')':'OptionalInt.empty()'; +} +; +_.present = false; +_.ref = 0; +var EMPTY_5; +var Ljava_util_OptionalInt_2_classLit = createForClass('java.util', 'OptionalInt', 517); +function $addAll_4(this$static, c){ + var e, e$iterator, oldSize; + checkCriticalNotNull(c); + checkCriticalArgument(c != this$static); + oldSize = this$static.heap.array.length; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $add_3(this$static.heap, checkCriticalNotNull(e)); + } + if (oldSize != this$static.heap.array.length) { + $makeHeap(this$static, 0); + return true; + } + return false; +} + +function $makeHeap(this$static, node){ + var rightChild; + if (node * 2 + 1 >= this$static.heap.array.length) { + return; + } + $makeHeap(this$static, 2 * node + 1); + rightChild = 2 * node + 2; + rightChild < this$static.heap.array.length && $makeHeap(this$static, rightChild); + $mergeHeaps(this$static, node); +} + +function $mergeHeaps(this$static, node){ + var heapSize, smallestChild, value_0, leftChild, rightChild, smallestChild_0; + heapSize = this$static.heap.array.length; + value_0 = $get_11(this$static.heap, node); + while (node * 2 + 1 < heapSize) { + smallestChild = (leftChild = 2 * node + 1 , rightChild = leftChild + 1 , smallestChild_0 = leftChild , rightChild < heapSize && this$static.cmp.compare_1($get_11(this$static.heap, rightChild), $get_11(this$static.heap, leftChild)) < 0 && (smallestChild_0 = rightChild) , smallestChild_0); + if (this$static.cmp.compare_1(value_0, $get_11(this$static.heap, smallestChild)) < 0) { + break; + } + $set_1(this$static.heap, node, $get_11(this$static.heap, smallestChild)); + node = smallestChild; + } + $set_1(this$static.heap, node, value_0); +} + +function $offer(this$static, e){ + var childNode, node; + checkCriticalNotNull(e); + node = this$static.heap.array.length; + $add_3(this$static.heap, e); + while (node > 0) { + childNode = node; + node = (node - 1) / 2 | 0; + if (this$static.cmp.compare_1($get_11(this$static.heap, node), e) <= 0) { + $set_1(this$static.heap, childNode, e); + return true; + } + $set_1(this$static.heap, childNode, $get_11(this$static.heap, node)); + } + $set_1(this$static.heap, node, e); + return true; +} + +function $poll_0(this$static){ + var value_0; + value_0 = this$static.heap.array.length == 0?null:$get_11(this$static.heap, 0); + value_0 != null && $removeAtIndex_0(this$static, 0); + return value_0; +} + +function $remove_25(this$static, o){ + var index_0; + index_0 = o == null?-1:$indexOf_3(this$static.heap, o, 0); + if (index_0 < 0) { + return false; + } + $removeAtIndex_0(this$static, index_0); + return true; +} + +function $removeAtIndex_0(this$static, index_0){ + var lastValue; + lastValue = $remove_11(this$static.heap, this$static.heap.array.length - 1); + if (index_0 < this$static.heap.array.length) { + $set_1(this$static.heap, index_0, lastValue); + $mergeHeaps(this$static, index_0); + } +} + +function PriorityQueue(comparator){ + this.heap = new ArrayList_0(11); + this.cmp = ($clinit_Comparators() , comparator); +} + +defineClass(503, 2004, $intern_8, PriorityQueue); +_.addAll = function addAll_18(c){ + return $addAll_4(this, c); +} +; +_.clear_0 = function clear_46(){ + this.heap.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_45(o){ + return (o == null?-1:$indexOf_3(this.heap, o, 0)) != -1; +} +; +_.iterator_0 = function iterator_63(){ + return new PriorityQueue$1(this); +} +; +_.remove_1 = function remove_84(o){ + return $remove_25(this, o); +} +; +_.size_1 = function size_60(){ + return this.heap.array.length; +} +; +_.spliterator_0 = function spliterator_33(){ + return new Spliterators$IteratorSpliterator(this, 256); +} +; +_.toArray = function toArray_19(){ + return $toArray_1(this.heap); +} +; +_.toArray_0 = function toArray_20(a){ + return $toArray_2(this.heap, a); +} +; +var Ljava_util_PriorityQueue_2_classLit = createForClass('java.util', 'PriorityQueue', 503); +function PriorityQueue$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1277, 1, $intern_6, PriorityQueue$1); +_.forEachRemaining = function forEachRemaining_32(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_34(){ + return this.i < this.this$01.heap.array.length; +} +; +_.next_1 = function next_35(){ + checkCriticalElement(this.i < this.this$01.heap.array.length); + this.last = this.i++; + return $get_11(this.this$01.heap, this.last); +} +; +_.remove = function remove_85(){ + checkCriticalState(this.last != -1); + $removeAtIndex_0(this.this$01, this.i = this.last); + this.last = -1; +} +; +_.i = 0; +_.last = -1; +var Ljava_util_PriorityQueue$1_2_classLit = createForClass('java.util', 'PriorityQueue/1', 1277); +function $clinit_Random(){ + $clinit_Random = emptyMethod; + var i, i0, twoToTheXMinus24Tmp, twoToTheXMinus48Tmp; + twoToTheXMinus24 = initUnidimensionalArray(D_classLit, $intern_65, 25, 25, 15, 1); + twoToTheXMinus48 = initUnidimensionalArray(D_classLit, $intern_65, 25, 33, 15, 1); + twoToTheXMinus48Tmp = 1.52587890625E-5; + for (i0 = 32; i0 >= 0; i0--) { + twoToTheXMinus48[i0] = twoToTheXMinus48Tmp; + twoToTheXMinus48Tmp *= 0.5; + } + twoToTheXMinus24Tmp = 1; + for (i = 24; i >= 0; i--) { + twoToTheXMinus24[i] = twoToTheXMinus24Tmp; + twoToTheXMinus24Tmp *= 0.5; + } +} + +function $nextDouble(this$static){ + return $nextInternal(this$static, 26) * $intern_78 + $nextInternal(this$static, 27) * $intern_79; +} + +function $nextInt(this$static, n){ + var bits, val; + checkCriticalArgument(n > 0); + if ((n & -n) == n) { + return round_int(n * $nextInternal(this$static, 31) * 4.6566128730773926E-10); + } + do { + bits = $nextInternal(this$static, 31); + val = bits % n; + } + while (bits - val + (n - 1) < 0); + return round_int(val); +} + +function $nextInternal(this$static, bits){ + var carry, dval, h, hi, l, lo; + hi = this$static.seedhi * $intern_80 + this$static.seedlo * 1502; + lo = this$static.seedlo * $intern_80 + 11; + carry = $wnd.Math.floor(lo * $intern_81); + hi += carry; + lo -= carry * $intern_82; + hi %= $intern_82; + this$static.seedhi = hi; + this$static.seedlo = lo; + if (bits <= 24) { + return $wnd.Math.floor(this$static.seedhi * twoToTheXMinus24[bits]); + } + else { + h = this$static.seedhi * (1 << bits - 24); + l = $wnd.Math.floor(this$static.seedlo * twoToTheXMinus48[bits]); + dval = h + l; + dval >= 2147483648 && (dval -= $intern_69); + return dval; + } +} + +function $nextLong(this$static){ + return add_20(shl_0(fromDouble_0($nextInternal(this$static, 32)), 32), fromDouble_0($nextInternal(this$static, 32))); +} + +function $setSeed(this$static, seedhi, seedlo){ + this$static.seedhi = seedhi ^ 1502; + this$static.seedlo = seedlo ^ $intern_80; +} + +function $setSeed_0(this$static, seed){ + $setSeed(this$static, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); +} + +function Random(){ + $clinit_Random(); + var hi, lo, seed; + seed = uniqueSeed++ + Date.now(); + hi = round_int($wnd.Math.floor(seed * $intern_81)) & $intern_83; + lo = round_int(seed - hi * $intern_82); + this.seedhi = hi ^ 1502; + this.seedlo = lo ^ $intern_80; +} + +function Random_0(seed){ + $clinit_Random(); + $setSeed(this, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); +} + +defineClass(230, 1, {230:1}, Random, Random_0); +_.seedhi = 0; +_.seedlo = 0; +var twoToTheXMinus24, twoToTheXMinus48, uniqueSeed = 0; +var Ljava_util_Random_2_classLit = createForClass('java.util', 'Random', 230); +function $initIterator(this$static){ + if (!this$static.it) { + this$static.it = this$static.collection.iterator_0(); + this$static.estimateSize = this$static.collection.size_1(); + } +} + +function $tryAdvance(this$static, consumer){ + checkCriticalNotNull(consumer); + $initIterator(this$static); + if (this$static.it.hasNext_0()) { + consumer.accept(this$static.it.next_1()); + return true; + } + return false; +} + +function Spliterators$IteratorSpliterator(collection, characteristics){ + this.collection = (checkCriticalNotNull(collection) , collection); + this.characteristics = (characteristics & $intern_61) == 0?characteristics | 64 | $intern_17:characteristics; +} + +function Spliterators$IteratorSpliterator_0(it){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 0; + this.estimateSize = $intern_20; +} + +function Spliterators$IteratorSpliterator_1(it, size_0){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 16449; + this.estimateSize = size_0; +} + +defineClass(27, 1, $intern_18, Spliterators$IteratorSpliterator, Spliterators$IteratorSpliterator_0, Spliterators$IteratorSpliterator_1); +_.characteristics_0 = function characteristics_3(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_2(){ + $initIterator(this); + return this.estimateSize; +} +; +_.forEachRemaining = function forEachRemaining_33(consumer){ + $initIterator(this); + this.it.forEachRemaining(consumer); +} +; +_.tryAdvance = function tryAdvance_2(consumer){ + return $tryAdvance(this, consumer); +} +; +_.characteristics = 0; +_.estimateSize = 0; +var Ljava_util_Spliterators$IteratorSpliterator_2_classLit = createForClass('java.util', 'Spliterators/IteratorSpliterator', 27); +function SortedSet$1($anonymous0){ + Spliterators$IteratorSpliterator.call(this, $anonymous0, 21); +} + +defineClass(485, 27, $intern_18, SortedSet$1); +var Ljava_util_SortedSet$1_2_classLit = createForClass('java.util', 'SortedSet/1', 485); +function $forEachRemaining_1(this$static, consumer){ + while (this$static.tryAdvance_0(consumer)) + ; +} + +function Spliterator$OfDouble$0methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(602, 1, $intern_75, Spliterator$OfDouble$0methodref$accept$Type); +_.accept_2 = function accept_17(arg0){ + this.$$outer_0.accept(arg0); +} +; +var Ljava_util_Spliterator$OfDouble$0methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/0methodref$accept$Type', 602); +function Spliterator$OfDouble$1methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(603, 1, $intern_75, Spliterator$OfDouble$1methodref$accept$Type); +_.accept_2 = function accept_18(arg0){ + this.$$outer_0.accept(arg0); +} +; +var Ljava_util_Spliterator$OfDouble$1methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/1methodref$accept$Type', 603); +function Spliterator$OfInt$2methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(604, 1, $intern_21, Spliterator$OfInt$2methodref$accept$Type); +_.accept_0 = function accept_19(arg0){ + this.$$outer_0.accept(valueOf_4(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$2methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/2methodref$accept$Type', 604); +function Spliterator$OfInt$3methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(605, 1, $intern_21, Spliterator$OfInt$3methodref$accept$Type); +_.accept_0 = function accept_20(arg0){ + this.$$outer_0.accept(valueOf_4(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$3methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/3methodref$accept$Type', 605); +function checkCriticalArrayBounds(end, length_0){ + if (0 > end || end > length_0) { + throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: 0, toIndex: ' + end + ', length: ' + length_0)); + } +} + +function Spliterators$BaseSpliterator(size_0, characteristics){ + this.sizeEstimate = size_0; + this.characteristics = (characteristics & 64) != 0?characteristics | $intern_17:characteristics; +} + +defineClass(617, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_34(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.characteristics_0 = function characteristics_4(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_3(){ + return this.sizeEstimate; +} +; +_.characteristics = 0; +_.sizeEstimate = 0; +var Ljava_util_Spliterators$BaseSpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseSpliterator', 617); +function Spliterators$AbstractDoubleSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(721, 617, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_35(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_36(consumer){ + instanceOf(consumer, 182)?$forEachRemaining_1(this, castTo(consumer, 182)):$forEachRemaining_1(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_3(consumer){ + return instanceOf(consumer, 182)?this.tryAdvance_0(castTo(consumer, 182)):this.tryAdvance_0(new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractDoubleSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractDoubleSpliterator', 721); +function Spliterators$AbstractIntSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(720, 617, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_37(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_38(consumer){ + instanceOf(consumer, 196)?$forEachRemaining_1(this, castTo(consumer, 196)):$forEachRemaining_1(this, new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_4(consumer){ + return instanceOf(consumer, 196)?this.tryAdvance_0(castTo(consumer, 196)):this.tryAdvance_0(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractIntSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractIntSpliterator', 720); +function Spliterators$AbstractSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(540, 617, $intern_18); +var Ljava_util_Spliterators$AbstractSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractSpliterator', 540); +function $forEachRemaining_2(this$static, consumer){ + checkCriticalNotNull(consumer); + while (this$static.index_0 < this$static.limit) { + this$static.consume(consumer, this$static.index_0++); + } +} + +function $tryAdvance_0(this$static, consumer){ + checkCriticalNotNull(consumer); + if (this$static.index_0 < this$static.limit) { + this$static.consume(consumer, this$static.index_0++); + return true; + } + return false; +} + +function Spliterators$BaseArraySpliterator(limit, characteristics){ + this.index_0 = 0; + this.limit = limit; + this.characteristics = characteristics | 64 | $intern_17; +} + +defineClass(692, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_39(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.characteristics_0 = function characteristics_5(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_4(){ + return this.limit - this.index_0; +} +; +_.characteristics = 0; +_.index_0 = 0; +_.limit = 0; +var Ljava_util_Spliterators$BaseArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseArraySpliterator', 692); +function $consume(this$static, consumer, index_0){ + consumer.accept(this$static.array[index_0]); +} + +function Spliterators$ArraySpliterator(array, limit){ + Spliterators$BaseArraySpliterator.call(this, limit, 1040); + this.array = array; +} + +defineClass(947, 692, $intern_18, Spliterators$ArraySpliterator); +_.consume = function consume(consumer, index_0){ + $consume(this, castTo(consumer, 38), index_0); +} +; +_.forEachRemaining = function forEachRemaining_40(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.tryAdvance = function tryAdvance_5(consumer){ + return $tryAdvance_0(this, consumer); +} +; +var Ljava_util_Spliterators$ArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/ArraySpliterator', 947); +function $consume_0(this$static, consumer, index_0){ + consumer.accept_2(this$static.array[index_0]); +} + +function Spliterators$DoubleArraySpliterator(array, characteristics){ + Spliterators$DoubleArraySpliterator_0.call(this, array, array.length, characteristics); +} + +function Spliterators$DoubleArraySpliterator_0(array, limit, characteristics){ + Spliterators$BaseArraySpliterator.call(this, limit, characteristics); + this.array = array; +} + +defineClass(693, 692, $intern_18, Spliterators$DoubleArraySpliterator); +_.consume = function consume_0(consumer, index_0){ + $consume_0(this, castTo(consumer, 182), index_0); +} +; +_.forEachRemaining_0 = function forEachRemaining_41(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_42(consumer){ + instanceOf(consumer, 182)?$forEachRemaining_2(this, castTo(consumer, 182)):$forEachRemaining_2(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance_0 = function tryAdvance_6(consumer){ + return $tryAdvance_0(this, consumer); +} +; +_.tryAdvance = function tryAdvance_7(consumer){ + return instanceOf(consumer, 182)?$tryAdvance_0(this, castTo(consumer, 182)):$tryAdvance_0(this, new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$DoubleArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/DoubleArraySpliterator', 693); +function $clinit_Spliterators$EmptySpliterator(){ + $clinit_Spliterators$EmptySpliterator = emptyMethod; + $clinit_Spliterators$EmptySpliterator(); + OF_INT = new Spliterators$EmptySpliterator$OfInt; +} + +defineClass(1968, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_43(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.characteristics_0 = function characteristics_6(){ + return 16448; +} +; +_.estimateSize_0 = function estimateSize_5(){ + return 0; +} +; +var OF_INT; +var Ljava_util_Spliterators$EmptySpliterator_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator', 1968); +function $forEachRemaining_3(consumer){ + checkCriticalNotNull(consumer); +} + +function $tryAdvance_1(consumer){ + return checkCriticalNotNull(consumer) , false; +} + +function Spliterators$EmptySpliterator$OfInt(){ +} + +defineClass(946, 1968, $intern_18, Spliterators$EmptySpliterator$OfInt); +_.forEachRemaining_0 = function forEachRemaining_44(consumer){ + $forEachRemaining_3(consumer); +} +; +_.forEachRemaining = function forEachRemaining_45(consumer){ + instanceOf(consumer, 196)?$forEachRemaining_3(castTo(consumer, 196)):$forEachRemaining_3(new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance_0 = function tryAdvance_8(consumer){ + return $tryAdvance_1(consumer); +} +; +_.tryAdvance = function tryAdvance_9(consumer){ + return instanceOf(consumer, 196)?$tryAdvance_1(castTo(consumer, 196)):$tryAdvance_1(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$EmptySpliterator$OfInt_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator/OfInt', 946); +function $addElement(this$static, o){ + $add_3(this$static.arrayList, o); +} + +function $elementAt(this$static, index_0){ + return checkArrayElementIndex(index_0, this$static.arrayList.array.length) , $get_11(this$static.arrayList, index_0); +} + +function $setElementAt(this$static, o, index_0){ + checkArrayElementIndex(index_0, this$static.arrayList.array.length); + $set_1(this$static.arrayList, index_0, o); +} + +function Vector(){ + this.arrayList = new ArrayList; +} + +function checkArrayElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new ArrayIndexOutOfBoundsException); + } +} + +defineClass(580, 52, $intern_84, Vector); +_.add_3 = function add_38(index_0, o){ + checkArrayElementIndex(index_0, this.arrayList.array.length + 1); + $add_2(this.arrayList, index_0, o); +} +; +_.add_2 = function add_39(o){ + return $add_3(this.arrayList, o); +} +; +_.addAll_0 = function addAll_19(index_0, c){ + checkArrayElementIndex(index_0, this.arrayList.array.length + 1); + return $addAll_1(this.arrayList, index_0, c); +} +; +_.addAll = function addAll_20(c){ + return $addAll_2(this.arrayList, c); +} +; +_.clear_0 = function clear_47(){ + this.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_46(elem){ + return $indexOf_3(this.arrayList, elem, 0) != -1; +} +; +_.containsAll = function containsAll_9(c){ + return $containsAll(this.arrayList, c); +} +; +_.forEach_0 = function forEach_23(consumer){ + $forEach_1(this.arrayList, consumer); +} +; +_.get_0 = function get_43(index_0){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $get_11(this.arrayList, index_0); +} +; +_.indexOf_0 = function indexOf_6(elem){ + return $indexOf_3(this.arrayList, elem, 0); +} +; +_.isEmpty = function isEmpty_24(){ + return this.arrayList.array.length == 0; +} +; +_.iterator_0 = function iterator_64(){ + return new ArrayList$1(this.arrayList); +} +; +_.remove_2 = function remove_86(index_0){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $remove_11(this.arrayList, index_0); +} +; +_.removeRange = function removeRange_2(fromIndex, endIndex){ + $removeRange(this.arrayList, fromIndex, endIndex); +} +; +_.set_2 = function set_19(index_0, elem){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $set_1(this.arrayList, index_0, elem); +} +; +_.size_1 = function size_61(){ + return this.arrayList.array.length; +} +; +_.sort_0 = function sort_8(c){ + $sort(this.arrayList, c); +} +; +_.subList = function subList_8(fromIndex, toIndex){ + return new AbstractList$SubList(this.arrayList, fromIndex, toIndex); +} +; +_.toArray = function toArray_21(){ + return $toArray_1(this.arrayList); +} +; +_.toArray_0 = function toArray_22(a){ + return $toArray_2(this.arrayList, a); +} +; +_.toString_0 = function toString_72(){ + return $toString_2(this.arrayList); +} +; +var Ljava_util_Vector_2_classLit = createForClass('java.util', 'Vector', 580); +function $pop(this$static){ + var sz; + sz = this$static.arrayList.array.length; + if (sz > 0) { + return checkArrayElementIndex(sz - 1, this$static.arrayList.array.length) , $remove_11(this$static.arrayList, sz - 1); + } + else { + throw toJs(new EmptyStackException); + } +} + +function $push(this$static, o){ + $add_3(this$static.arrayList, o); + return o; +} + +function Stack(){ + Vector.call(this); +} + +defineClass(809, 580, $intern_84, Stack); +var Ljava_util_Stack_2_classLit = createForClass('java.util', 'Stack', 809); +function $add_9(this$static, newElement){ + !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); + $append_8(this$static.builder, newElement); + return this$static; +} + +function $merge_0(this$static, other){ + var otherLength; + if (other.builder) { + otherLength = other.builder.string.length; + !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); + $append_9(this$static.builder, other.builder, other.prefix.length, otherLength); + } + return this$static; +} + +function $toString_9(this$static){ + return !this$static.builder?this$static.emptyValue:this$static.suffix.length == 0?this$static.builder.string:this$static.builder.string + ('' + this$static.suffix); +} + +function StringJoiner(delimiter, prefix, suffix){ + this.delimiter = (checkCriticalNotNull(delimiter) , delimiter); + this.prefix = (checkCriticalNotNull(prefix) , prefix); + this.suffix = (checkCriticalNotNull(suffix) , suffix); + this.emptyValue = this.prefix + ('' + this.suffix); +} + +defineClass(206, 1, {206:1}, StringJoiner); +_.toString_0 = function toString_73(){ + return $toString_9(this); +} +; +var Ljava_util_StringJoiner_2_classLit = createForClass('java.util', 'StringJoiner', 206); +function $clear_8(this$static){ + this$static.root = null; + this$static.size_0 = 0; +} + +function $getEntry_1(this$static, key){ + var c, childNum, tree; + tree = this$static.root; + while (tree) { + c = this$static.cmp.compare_1(key, tree.key); + if (c == 0) { + return tree; + } + childNum = c < 0?0:1; + tree = tree.child[childNum]; + } + return null; +} + +function $getFirstEntry(this$static){ + var nextNode, node; + if (!this$static.root) { + return null; + } + node = this$static.root; + while (nextNode = node.child[0]) { + node = nextNode; + } + return node; +} + +function $getNodeAfter(this$static, key, inclusive){ + var c, foundNode, node; + foundNode = null; + node = this$static.root; + while (node) { + c = this$static.cmp.compare_1(key, node.key); + if (inclusive && c == 0) { + return node; + } + if (c >= 0) { + node = node.child[1]; + } + else { + foundNode = node; + node = node.child[0]; + } + } + return foundNode; +} + +function $getNodeBefore(this$static, key, inclusive){ + var c, foundNode, node; + foundNode = null; + node = this$static.root; + while (node) { + c = this$static.cmp.compare_1(key, node.key); + if (inclusive && c == 0) { + return node; + } + if (c <= 0) { + node = node.child[0]; + } + else { + foundNode = node; + node = node.child[1]; + } + } + return foundNode; +} + +function $inOrderAdd(this$static, list, type_0, current, fromKey, fromInclusive, toKey, toInclusive){ + var leftNode, rightNode; + if (!current) { + return; + } + leftNode = current.child[0]; + !!leftNode && $inOrderAdd(this$static, list, type_0, leftNode, fromKey, fromInclusive, toKey, toInclusive); + $inRange(this$static, type_0, current.key, fromKey, fromInclusive, toKey, toInclusive) && list.add_2(current); + rightNode = current.child[1]; + !!rightNode && $inOrderAdd(this$static, list, type_0, rightNode, fromKey, fromInclusive, toKey, toInclusive); +} + +function $inRange(this$static, type_0, key, fromKey, fromInclusive, toKey, toInclusive){ + var compare, compare0; + if (type_0.fromKeyValid() && (compare0 = this$static.cmp.compare_1(key, fromKey) , compare0 < 0 || !fromInclusive && compare0 == 0)) { + return false; + } + if (type_0.toKeyValid() && (compare = this$static.cmp.compare_1(key, toKey) , compare > 0 || !toInclusive && compare == 0)) { + return false; + } + return true; +} + +function $insert_1(this$static, tree, newNode, state){ + var c, childNum; + if (!tree) { + return newNode; + } + else { + c = this$static.cmp.compare_1(newNode.key, tree.key); + if (c == 0) { + state.value_0 = $setValue_0(tree, newNode.value_0); + state.found = true; + return tree; + } + childNum = c < 0?0:1; + tree.child[childNum] = $insert_1(this$static, tree.child[childNum], newNode, state); + if ($isRed(tree.child[childNum])) { + if ($isRed(tree.child[1 - childNum])) { + tree.isRed = true; + tree.child[0].isRed = false; + tree.child[1].isRed = false; + } + else { + $isRed(tree.child[childNum].child[childNum])?(tree = $rotateSingle(tree, 1 - childNum)):$isRed(tree.child[childNum].child[1 - childNum]) && (tree = $rotateDouble(tree, 1 - childNum)); + } + } + } + return tree; +} + +function $isRed(node){ + return !!node && node.isRed; +} + +function $put_12(this$static, key, value_0){ + var node, state; + node = new TreeMap$Node(key, value_0); + state = new TreeMap$State; + this$static.root = $insert_1(this$static, this$static.root, node, state); + state.found || ++this$static.size_0; + this$static.root.isRed = false; + return state.value_0; +} + +function $remove_26(this$static, k){ + var key, state; + key = k; + state = new TreeMap$State; + $removeWithState(this$static, key, state); + return state.value_0; +} + +function $removeEntry(this$static, entry){ + var state; + state = new TreeMap$State; + state.matchValue = true; + state.value_0 = entry.getValue(); + return $removeWithState(this$static, entry.getKey(), state); +} + +function $removeWithState(this$static, key, state){ + var c, dir_0, dir2, found, grandparent, head, last, newNode, node, parent_0, sibling; + if (!this$static.root) { + return false; + } + found = null; + parent_0 = null; + head = new TreeMap$Node(null, null); + dir_0 = 1; + head.child[1] = this$static.root; + node = head; + while (node.child[dir_0]) { + last = dir_0; + grandparent = parent_0; + parent_0 = node; + node = node.child[dir_0]; + c = this$static.cmp.compare_1(key, node.key); + dir_0 = c < 0?0:1; + c == 0 && (!state.matchValue || equals_57(node.value_0, state.value_0)) && (found = node); + if (!(!!node && node.isRed) && !$isRed(node.child[dir_0])) { + if ($isRed(node.child[1 - dir_0])) { + parent_0 = parent_0.child[last] = $rotateSingle(node, dir_0); + } + else if (!$isRed(node.child[1 - dir_0])) { + sibling = parent_0.child[1 - last]; + if (sibling) { + if (!$isRed(sibling.child[1 - last]) && !$isRed(sibling.child[last])) { + parent_0.isRed = false; + sibling.isRed = true; + node.isRed = true; + } + else { + dir2 = grandparent.child[1] == parent_0?1:0; + $isRed(sibling.child[last])?(grandparent.child[dir2] = $rotateDouble(parent_0, last)):$isRed(sibling.child[1 - last]) && (grandparent.child[dir2] = $rotateSingle(parent_0, last)); + node.isRed = grandparent.child[dir2].isRed = true; + grandparent.child[dir2].child[0].isRed = false; + grandparent.child[dir2].child[1].isRed = false; + } + } + } + } + } + if (found) { + state.found = true; + state.value_0 = found.value_0; + if (node != found) { + newNode = new TreeMap$Node(node.key, node.value_0); + $replaceNode(this$static, head, found, newNode); + parent_0 == found && (parent_0 = newNode); + } + parent_0.child[parent_0.child[1] == node?1:0] = node.child[!node.child[0]?1:0]; + --this$static.size_0; + } + this$static.root = head.child[1]; + !!this$static.root && (this$static.root.isRed = false); + return state.found; +} + +function $replaceNode(this$static, head, node, newNode){ + var direction, parent_0; + parent_0 = head; + direction = parent_0.key == null || this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; + while (parent_0.child[direction] != node) { + parent_0 = parent_0.child[direction]; + direction = this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; + } + parent_0.child[direction] = newNode; + newNode.isRed = node.isRed; + newNode.child[0] = node.child[0]; + newNode.child[1] = node.child[1]; + node.child[0] = null; + node.child[1] = null; +} + +function $rotateDouble(tree, rotateDirection){ + var otherChildDir; + otherChildDir = 1 - rotateDirection; + tree.child[otherChildDir] = $rotateSingle(tree.child[otherChildDir], otherChildDir); + return $rotateSingle(tree, rotateDirection); +} + +function $rotateSingle(tree, rotateDirection){ + var otherChildDir, save; + otherChildDir = 1 - rotateDirection; + save = tree.child[otherChildDir]; + tree.child[otherChildDir] = save.child[rotateDirection]; + save.child[rotateDirection] = tree; + tree.isRed = true; + save.isRed = false; + return save; +} + +function TreeMap(){ + TreeMap_0.call(this, null); +} + +function TreeMap_0(c){ + this.root = null; + this.cmp = ($clinit_Comparators() , !c?INTERNAL_NATURAL_ORDER:c); +} + +defineClass(544, 1992, {3:1, 83:1, 171:1, 161:1}, TreeMap, TreeMap_0); +_.clear_0 = function clear_48(){ + $clear_8(this); +} +; +_.entrySet_0 = function entrySet_8(){ + return new TreeMap$EntrySet(this); +} +; +_.put = function put_9(key, value_0){ + return $put_12(this, key, value_0); +} +; +_.remove_0 = function remove_87(k){ + return $remove_26(this, k); +} +; +_.size_1 = function size_62(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_TreeMap_2_classLit = createForClass('java.util', 'TreeMap', 544); +function $next_11(this$static){ + return this$static.last = castTo($next_5(this$static.iter), 42); +} + +function $remove_27(this$static){ + $remove_8(this$static.iter); + $removeEntry(this$static.this$01, this$static.last); + this$static.last = null; +} + +function TreeMap$EntryIterator(this$0){ + TreeMap$EntryIterator_0.call(this, this$0, ($clinit_TreeMap$SubMapType() , All)); +} + +function TreeMap$EntryIterator_0(this$0, type_0){ + var list; + this.this$01 = this$0; + list = new ArrayList; + $inOrderAdd(this$0, list, type_0, this$0.root, null, false, null, false); + this.iter = new AbstractList$ListIteratorImpl(list, 0); +} + +defineClass(390, 1, $intern_6, TreeMap$EntryIterator); +_.forEachRemaining = function forEachRemaining_46(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_36(){ + return $next_11(this); +} +; +_.hasNext_0 = function hasNext_35(){ + return $hasNext_2(this.iter); +} +; +_.remove = function remove_88(){ + $remove_27(this); +} +; +var Ljava_util_TreeMap$EntryIterator_2_classLit = createForClass('java.util', 'TreeMap/EntryIterator', 390); +function TreeMap$EntrySet(this$0){ + this.this$01 = this$0; + AbstractNavigableMap$EntrySet.call(this, this$0); +} + +defineClass(435, 739, $intern_10, TreeMap$EntrySet); +_.clear_0 = function clear_49(){ + $clear_8(this.this$01); +} +; +var Ljava_util_TreeMap$EntrySet_2_classLit = createForClass('java.util', 'TreeMap/EntrySet', 435); +function TreeMap$Node(key, value_0){ + AbstractMap$SimpleEntry.call(this, key, value_0); + this.child = initUnidimensionalArray(Ljava_util_TreeMap$Node_2_classLit, $intern_27, 436, 2, 0, 1); + this.isRed = true; +} + +defineClass(436, 383, {484:1, 383:1, 42:1, 436:1}, TreeMap$Node); +_.isRed = false; +var Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util', 'TreeMap/Node', 436); +function TreeMap$State(){ +} + +defineClass(621, 1, {}, TreeMap$State); +_.toString_0 = function toString_74(){ + return 'State: mv=' + this.matchValue + ' value=' + this.value_0 + ' done=' + this.done_0 + ' found=' + this.found; +} +; +_.done_0 = false; +_.found = false; +_.matchValue = false; +var Ljava_util_TreeMap$State_2_classLit = createForClass('java.util', 'TreeMap/State', 621); +function $clinit_TreeMap$SubMapType(){ + $clinit_TreeMap$SubMapType = emptyMethod; + All = new TreeMap$SubMapType('All', 0); + Head = new TreeMap$SubMapType$1; + Range_1 = new TreeMap$SubMapType$2; + Tail = new TreeMap$SubMapType$3; +} + +function TreeMap$SubMapType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_12(name_0){ + $clinit_TreeMap$SubMapType(); + return valueOf(($clinit_TreeMap$SubMapType$Map() , $MAP_0), name_0); +} + +function values_18(){ + $clinit_TreeMap$SubMapType(); + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]); +} + +defineClass(297, 22, $intern_85, TreeMap$SubMapType); +_.fromKeyValid = function fromKeyValid(){ + return false; +} +; +_.toKeyValid = function toKeyValid(){ + return false; +} +; +var All, Head, Range_1, Tail; +var Ljava_util_TreeMap$SubMapType_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType', 297, Ljava_lang_Enum_2_classLit, values_18, valueOf_12); +function TreeMap$SubMapType$1(){ + TreeMap$SubMapType.call(this, 'Head', 1); +} + +defineClass(1112, 297, $intern_85, TreeMap$SubMapType$1); +_.toKeyValid = function toKeyValid_0(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$1_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/1', 1112, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$2(){ + TreeMap$SubMapType.call(this, 'Range', 2); +} + +defineClass(1113, 297, $intern_85, TreeMap$SubMapType$2); +_.fromKeyValid = function fromKeyValid_0(){ + return true; +} +; +_.toKeyValid = function toKeyValid_1(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$2_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/2', 1113, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$3(){ + TreeMap$SubMapType.call(this, 'Tail', 3); +} + +defineClass(1114, 297, $intern_85, TreeMap$SubMapType$3); +_.fromKeyValid = function fromKeyValid_1(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$3_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/3', 1114, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function $clinit_TreeMap$SubMapType$Map(){ + $clinit_TreeMap$SubMapType$Map = emptyMethod; + $MAP_0 = createValueOfMap(($clinit_TreeMap$SubMapType() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]))); +} + +var $MAP_0; +function $add_10(this$static, o){ + return $put_12(this$static.map_0, o, ($clinit_Boolean() , FALSE_0)) == null; +} + +function $ceiling(this$static, e){ + return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, true)); +} + +function $floor(this$static, e){ + return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, true)); +} + +function $higher(this$static, e){ + return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, false)); +} + +function $lower(this$static, e){ + return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, false)); +} + +function $remove_28(this$static, o){ + return $remove_26(this$static.map_0, o) != null; +} + +function TreeSet(){ + this.map_0 = new TreeMap; +} + +function TreeSet_0(c){ + this.map_0 = new TreeMap_0(c); +} + +defineClass(208, $intern_9, {3:1, 20:1, 28:1, 14:1, 271:1, 21:1, 84:1, 208:1}, TreeSet, TreeSet_0); +_.spliterator_0 = function spliterator_34(){ + return new SortedSet$1(this); +} +; +_.add_2 = function add_40(o){ + return $add_10(this, o); +} +; +_.clear_0 = function clear_50(){ + $clear_8(this.map_0); +} +; +_.contains = function contains_47(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_65(){ + var entryIterator; + return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_89(o){ + return $remove_28(this, o); +} +; +_.size_1 = function size_63(){ + return this.map_0.size_0; +} +; +var Ljava_util_TreeSet_2_classLit = createForClass('java.util', 'TreeSet', 208); +function lambda$0_2(comparator_0, t_1, u_2){ + return comparator_0.compare_1(t_1, u_2) <= 0?u_2:t_1; +} + +function lambda$1_3(comparator_0, t_1, u_2){ + return comparator_0.compare_1(t_1, u_2) <= 0?t_1:u_2; +} + +function BinaryOperator$lambda$0$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(966, 1, {}, BinaryOperator$lambda$0$Type); +_.apply_3 = function apply_21(arg0, arg1){ + return lambda$0_2(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$0$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$0$Type', 966); +function BinaryOperator$lambda$1$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(967, 1, {}, BinaryOperator$lambda$1$Type); +_.apply_3 = function apply_22(arg0, arg1){ + return lambda$1_3(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$1$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$1$Type', 967); +function Function$lambda$0$Type(){ +} + +defineClass(846, 1, {}, Function$lambda$0$Type); +_.apply_0 = function apply_23(t){ + return t; +} +; +var Ljava_util_function_Function$lambda$0$Type_2_classLit = createForClass('java.util.function', 'Function/lambda$0$Type', 846); +function Predicate$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(431, 1, $intern_39, Predicate$lambda$2$Type); +_.test_0 = function test_4(t){ + return !this.$$outer_0.test_0(t); +} +; +var Ljava_util_function_Predicate$lambda$2$Type_2_classLit = createForClass('java.util.function', 'Predicate/lambda$2$Type', 431); +defineClass(572, 1, {572:1}); +var Ljava_util_logging_Handler_2_classLit = createForClass('java.util.logging', 'Handler', 572); +function $clinit_Level(){ + $clinit_Level = emptyMethod; + INFO = new Level$LevelInfo; +} + +defineClass(2007, 1, $intern_1); +_.getName = function getName_0(){ + return 'DUMMY'; +} +; +_.toString_0 = function toString_75(){ + return this.getName(); +} +; +var INFO; +var Ljava_util_logging_Level_2_classLit = createForClass('java.util.logging', 'Level', 2007); +function Level$LevelInfo(){ +} + +defineClass(1621, 2007, $intern_1, Level$LevelInfo); +_.getName = function getName_1(){ + return 'INFO'; +} +; +var Ljava_util_logging_Level$LevelInfo_2_classLit = createForClass('java.util.logging', 'Level/LevelInfo', 1621); +function $addLoggerImpl(this$static, logger){ + (($clinit_Logger() , LOGGING_OFF)?null:logger.name_0).length == 0 && $addHandler(logger, new SimpleConsoleLogHandler); + $putStringValue(this$static.loggerMap, LOGGING_OFF?null:logger.name_0, logger); +} + +function $ensureLogger(this$static, name_0){ + var logger, newLogger, name_1, parentName; + logger = castTo($getStringValue(this$static.loggerMap, name_0), 512); + if (!logger) { + newLogger = new Logger(name_0); + name_1 = ($clinit_Logger() , LOGGING_OFF)?null:newLogger.name_0; + parentName = $substring_1(name_1, 0, $wnd.Math.max(0, $lastIndexOf(name_1, fromCodePoint(46)))); + $setParent(newLogger, $ensureLogger(this$static, parentName)); + (LOGGING_OFF?null:newLogger.name_0).length == 0 && $addHandler(newLogger, new SimpleConsoleLogHandler); + $putStringValue(this$static.loggerMap, LOGGING_OFF?null:newLogger.name_0, newLogger); + return newLogger; + } + return logger; +} + +function LogManager(){ + this.loggerMap = new HashMap; +} + +function getLogManager(){ + var rootLogger; + if (!singleton) { + singleton = new LogManager; + rootLogger = new Logger(''); + $setLevel(rootLogger, ($clinit_Level() , INFO)); + $addLoggerImpl(singleton, rootLogger); + } + return singleton; +} + +defineClass(1640, 1, {}, LogManager); +var singleton; +var Ljava_util_logging_LogManager_2_classLit = createForClass('java.util.logging', 'LogManager', 1640); +function LogRecord(msg){ + this.msg = msg; + $clinit_System(); + fromDouble_0(Date.now()); +} + +defineClass(1780, 1, $intern_1, LogRecord); +_.thrown = null; +var Ljava_util_logging_LogRecord_2_classLit = createForClass('java.util.logging', 'LogRecord', 1780); +function $clinit_Logger(){ + $clinit_Logger = emptyMethod; + LOGGING_OFF = true; + ALL_ENABLED = false; + INFO_ENABLED = false; + WARNING_ENABLED = false; + SEVERE_ENABLED = false; +} + +function $actuallyLog(this$static, record){ + var handler$array, handler$array0, handler$index, handler$index0, handler$max, handler$max0, logger; + for (handler$array0 = $getHandlers(this$static) , handler$index0 = 0 , handler$max0 = handler$array0.length; handler$index0 < handler$max0; ++handler$index0) { + $publish(record); + } + logger = !LOGGING_OFF && this$static.useParentHandlers?LOGGING_OFF?null:this$static.parent_0:null; + while (logger) { + for (handler$array = $getHandlers(logger) , handler$index = 0 , handler$max = handler$array.length; handler$index < handler$max; ++handler$index) { + $publish(record); + } + logger = !LOGGING_OFF && logger.useParentHandlers?LOGGING_OFF?null:logger.parent_0:null; + } +} + +function $addHandler(this$static, handler){ + if (LOGGING_OFF) { + return; + } + $add_3(this$static.handlers, handler); +} + +function $getEffectiveLevel(this$static){ + var effectiveLevel, logger; + if (this$static.level) { + return this$static.level; + } + logger = LOGGING_OFF?null:this$static.parent_0; + while (logger) { + effectiveLevel = LOGGING_OFF?null:logger.level; + if (effectiveLevel) { + return effectiveLevel; + } + logger = LOGGING_OFF?null:logger.parent_0; + } + return $clinit_Level() , INFO; +} + +function $getHandlers(this$static){ + if (LOGGING_OFF) { + return initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, 0, 0, 1); + } + return castTo($toArray_2(this$static.handlers, initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, this$static.handlers.array.length, 0, 1)), 842); +} + +function $log(this$static, msg, thrown){ + var record; + (ALL_ENABLED?($getEffectiveLevel(this$static) , true):INFO_ENABLED?($clinit_Level() , true):WARNING_ENABLED?($clinit_Level() , true):SEVERE_ENABLED && ($clinit_Level() , false)) && (record = new LogRecord(msg) , record.thrown = thrown , $actuallyLog(this$static, record) , undefined); +} + +function $setLevel(this$static, newLevel){ + if (LOGGING_OFF) { + return; + } + this$static.level = newLevel; +} + +function $setParent(this$static, newParent){ + if (LOGGING_OFF) { + return; + } + !!newParent && (this$static.parent_0 = newParent); +} + +function Logger(name_0){ + $clinit_Logger(); + if (LOGGING_OFF) { + return; + } + this.name_0 = name_0; + this.useParentHandlers = true; + this.handlers = new ArrayList; +} + +function getLogger(){ + $clinit_Logger(); + if (LOGGING_OFF) { + return new Logger(null); + } + return $ensureLogger(getLogManager(), 'com.google.common.base.Strings'); +} + +defineClass(512, 1, {512:1}, Logger); +_.useParentHandlers = false; +var ALL_ENABLED = false, INFO_ENABLED = false, LOGGING_OFF = false, SEVERE_ENABLED = false, WARNING_ENABLED = false; +var Ljava_util_logging_Logger_2_classLit = createForClass('java.util.logging', 'Logger', 512); +function $publish(record){ + var console_0, level, val; + console_0 = $equals_5(typeof(console_0), 'undefined')?null:new ConsoleLogger; + if (!console_0) { + return; + } + $clinit_Level(); + level = (val = 900 , val >= $intern_45?'error':val >= 900?'warn':val >= 800?'info':'log'); + $log_0(level, record.msg); + !!record.thrown && $log_1(console_0, level, record.thrown, 'Exception: ', true); +} + +function SimpleConsoleLogHandler(){ +} + +defineClass(819, 572, {572:1}, SimpleConsoleLogHandler); +var Ljava_util_logging_SimpleConsoleLogHandler_2_classLit = createForClass('java.util.logging', 'SimpleConsoleLogHandler', 819); +function of_3(supplier, accumulator, combiner, finisher, characteristics){ + checkCriticalNotNull(supplier); + checkCriticalNotNull(accumulator); + checkCriticalNotNull(combiner); + checkCriticalNotNull(finisher); + checkCriticalNotNull(characteristics); + return new CollectorImpl(supplier, accumulator, finisher); +} + +function of_4(supplier, accumulator, combiner, characteristics){ + checkCriticalNotNull(supplier); + checkCriticalNotNull(accumulator); + checkCriticalNotNull(combiner); + checkCriticalNotNull(characteristics); + return new CollectorImpl(supplier, accumulator, new Function$lambda$0$Type); +} + +function $clinit_Collector$Characteristics(){ + $clinit_Collector$Characteristics = emptyMethod; + CONCURRENT = new Collector$Characteristics('CONCURRENT', 0); + IDENTITY_FINISH = new Collector$Characteristics('IDENTITY_FINISH', 1); + UNORDERED = new Collector$Characteristics('UNORDERED', 2); +} + +function Collector$Characteristics(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_13(name_0){ + $clinit_Collector$Characteristics(); + return valueOf(($clinit_Collector$Characteristics$Map() , $MAP_1), name_0); +} + +function values_19(){ + $clinit_Collector$Characteristics(); + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]); +} + +defineClass(132, 22, {3:1, 35:1, 22:1, 132:1}, Collector$Characteristics); +var CONCURRENT, IDENTITY_FINISH, UNORDERED; +var Ljava_util_stream_Collector$Characteristics_2_classLit = createForEnum('java.util.stream', 'Collector/Characteristics', 132, Ljava_lang_Enum_2_classLit, values_19, valueOf_13); +function $clinit_Collector$Characteristics$Map(){ + $clinit_Collector$Characteristics$Map = emptyMethod; + $MAP_1 = createValueOfMap(($clinit_Collector$Characteristics() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]))); +} + +var $MAP_1; +function CollectorImpl(supplier, accumulator, finisher){ + this.supplier = supplier; + this.accumulator = accumulator; + $clinit_Collections(); + this.finisher = finisher; +} + +defineClass(744, 1, {}, CollectorImpl); +var Ljava_util_stream_CollectorImpl_2_classLit = createForClass('java.util.stream', 'CollectorImpl', 744); +function addAll_21(collection, items){ + collection.addAll(items); + return collection; +} + +function groupingBy0(supplier, classifier, downstream){ + return of_3(supplier, new Collectors$lambda$7$Type(classifier), new Collectors$lambda$8$Type, new Collectors$lambda$9$Type(downstream), stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); +} + +function lambda$26(op_0, u_2){ + return setCheck(u_2, 0, $apply_2(u_2[0], valueOf_5(1))); +} + +function lambda$27(op_0, u1_1, u2_2){ + setCheck(u1_1, 0, $apply_2(u1_1[0], u2_2[0])); + return u1_1; +} + +function lambda$4(a_0, b_1){ + return valueOf_5(add_20(valueOf_5(a_0.value_0).value_0, b_1.value_0)); +} + +function lambda$42(c1_0, c2_1){ + return c1_0.addAll(c2_1) , c1_0; +} + +function lambda$50(c1_0, c2_1){ + return $addAll(c1_0, c2_1) , c1_0; +} + +function lambda$7(classifier_0, m_1, o_2){ + var k, l; + k = ($clinit_Boolean() , $test(o_2)?true:false); + l = castTo(m_1.get_3(k), 15); + if (!l) { + l = new ArrayList; + m_1.put(k, l); + } + l.add_2(o_2); +} + +function lambda$9(downstream_1, m_2){ + var entry, entry$iterator, result; + result = new HashMap; + for (entry$iterator = m_2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + $put_6(result, entry.getKey(), streamAndCollect(downstream_1, castTo(entry.getValue(), 15))); + } + return result; +} + +function mergeAll(m1, m2, mergeFunction){ + var entry, entry$iterator; + for (entry$iterator = m2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + m1.merge(entry.getKey(), entry.getValue(), mergeFunction); + } + return m1; +} + +function partitioningBy(predicate, downstream){ + return groupingBy0(new Collectors$lambda$22$Type, new Collectors$12methodref$test$Type(predicate), downstream); +} + +function reducing(identity, op){ + return of_3(new Collectors$lambda$25$Type(identity), new Collectors$lambda$26$Type(op), new Collectors$lambda$27$Type(op), new Collectors$lambda$28$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); +} + +function streamAndCollect(downstream, list){ + var a, t, t$iterator; + a = downstream.supplier.get_5(); + for (t$iterator = list.iterator_0(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + downstream.accumulator.accept_1(a, t); + } + return downstream.finisher.apply_0(a); +} + +function Collectors$10methodref$merge$Type(){ +} + +defineClass(1060, 1, {}, Collectors$10methodref$merge$Type); +_.apply_3 = function apply_24(arg0, arg1){ + return $merge_0(castTo(arg0, 206), castTo(arg1, 206)); +} +; +var Ljava_util_stream_Collectors$10methodref$merge$Type_2_classLit = createForClass('java.util.stream', 'Collectors/10methodref$merge$Type', 1060); +function Collectors$11methodref$toString$Type(){ +} + +defineClass(1061, 1, {}, Collectors$11methodref$toString$Type); +_.apply_0 = function apply_25(arg0){ + return $toString_9(castTo(arg0, 206)); +} +; +var Ljava_util_stream_Collectors$11methodref$toString$Type_2_classLit = createForClass('java.util.stream', 'Collectors/11methodref$toString$Type', 1061); +function Collectors$12methodref$test$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1062, 1, {}, Collectors$12methodref$test$Type); +_.apply_0 = function apply_26(arg0){ + return $clinit_Boolean() , $test(arg0)?true:false; +} +; +var Ljava_util_stream_Collectors$12methodref$test$Type_2_classLit = createForClass('java.util.stream', 'Collectors/12methodref$test$Type', 1062); +function Collectors$20methodref$add$Type(){ +} + +defineClass(251, 1, {}, Collectors$20methodref$add$Type); +_.accept_1 = function accept_21(arg0, arg1){ + castTo(arg0, 14).add_2(arg1); +} +; +var Ljava_util_stream_Collectors$20methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/20methodref$add$Type', 251); +function Collectors$21methodref$ctor$Type(){ +} + +defineClass(253, 1, {}, Collectors$21methodref$ctor$Type); +_.get_5 = function get_44(){ + return new ArrayList; +} +; +var Ljava_util_stream_Collectors$21methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/21methodref$ctor$Type', 253); +function Collectors$23methodref$ctor$Type(){ +} + +defineClass(346, 1, {}, Collectors$23methodref$ctor$Type); +_.get_5 = function get_45(){ + return new HashSet; +} +; +var Ljava_util_stream_Collectors$23methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/23methodref$ctor$Type', 346); +function Collectors$24methodref$add$Type(){ +} + +defineClass(347, 1, {}, Collectors$24methodref$add$Type); +_.accept_1 = function accept_22(arg0, arg1){ + $add_6(castTo(arg0, 53), arg1); +} +; +var Ljava_util_stream_Collectors$24methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/24methodref$add$Type', 347); +function Collectors$4methodref$addAll$Type(){ +} + +defineClass(1055, 1, {}, Collectors$4methodref$addAll$Type); +_.apply_3 = function apply_27(arg0, arg1){ + return addAll_21(castTo(arg0, 15), castTo(arg1, 14)); +} +; +var Ljava_util_stream_Collectors$4methodref$addAll$Type_2_classLit = createForClass('java.util.stream', 'Collectors/4methodref$addAll$Type', 1055); +function Collectors$9methodref$add$Type(){ +} + +defineClass(1059, 1, {}, Collectors$9methodref$add$Type); +_.accept_1 = function accept_23(arg0, arg1){ + $add_9(castTo(arg0, 206), castTo(arg1, 475)); +} +; +var Ljava_util_stream_Collectors$9methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/9methodref$add$Type', 1059); +function Collectors$lambda$15$Type(){ + this.delimiter_0 = ';,;'; + this.prefix_1 = ''; + this.suffix_2 = ''; +} + +defineClass(1058, 1, {}, Collectors$lambda$15$Type); +_.get_5 = function get_46(){ + return new StringJoiner(this.delimiter_0, this.prefix_1, this.suffix_2); +} +; +var Ljava_util_stream_Collectors$lambda$15$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$15$Type', 1058); +function Collectors$lambda$22$Type(){ +} + +defineClass(1063, 1, {}, Collectors$lambda$22$Type); +_.get_5 = function get_47(){ + var partition; + return partition = new LinkedHashMap , $put_11(partition, ($clinit_Boolean() , false), new ArrayList) , $put_11(partition, true, new ArrayList) , partition; +} +; +var Ljava_util_stream_Collectors$lambda$22$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$22$Type', 1063); +function Collectors$lambda$25$Type(identity_0){ + this.identity_0 = identity_0; +} + +defineClass(1064, 1, {}, Collectors$lambda$25$Type); +_.get_5 = function get_48(){ + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.identity_0]); +} +; +var Ljava_util_stream_Collectors$lambda$25$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$25$Type', 1064); +function Collectors$lambda$26$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1065, 1, {}, Collectors$lambda$26$Type); +_.accept_1 = function accept_24(arg0, arg1){ + lambda$26(this.op_0, castToArray(arg0)); +} +; +var Ljava_util_stream_Collectors$lambda$26$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$26$Type', 1065); +function Collectors$lambda$27$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1066, 1, {}, Collectors$lambda$27$Type); +_.apply_3 = function apply_28(arg0, arg1){ + return lambda$27(this.op_0, castToArray(arg0), castToArray(arg1)); +} +; +var Ljava_util_stream_Collectors$lambda$27$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$27$Type', 1066); +function Collectors$lambda$28$Type(){ +} + +defineClass(1067, 1, {}, Collectors$lambda$28$Type); +_.apply_0 = function apply_29(arg0){ + return castToArray(arg0)[0]; +} +; +var Ljava_util_stream_Collectors$lambda$28$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$28$Type', 1067); +function $apply_2(arg0, arg1){ + return lambda$4(castTo(arg0, 162), castTo(arg1, 162)); +} + +function Collectors$lambda$4$Type(){ +} + +defineClass(713, 1, {}, Collectors$lambda$4$Type); +_.apply_3 = function apply_30(arg0, arg1){ + return $apply_2(arg0, arg1); +} +; +var Ljava_util_stream_Collectors$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$4$Type', 713); +function Collectors$lambda$42$Type(){ +} + +defineClass(252, 1, {}, Collectors$lambda$42$Type); +_.apply_3 = function apply_31(arg0, arg1){ + return lambda$42(castTo(arg0, 14), castTo(arg1, 14)); +} +; +var Ljava_util_stream_Collectors$lambda$42$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$42$Type', 252); +function Collectors$lambda$50$Type(){ +} + +defineClass(348, 1, {}, Collectors$lambda$50$Type); +_.apply_3 = function apply_32(arg0, arg1){ + return lambda$50(castTo(arg0, 53), castTo(arg1, 53)); +} +; +var Ljava_util_stream_Collectors$lambda$50$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$50$Type', 348); +function Collectors$lambda$51$Type(){ +} + +defineClass(349, 1, {}, Collectors$lambda$51$Type); +_.apply_0 = function apply_33(arg0){ + return castTo(arg0, 53); +} +; +var Ljava_util_stream_Collectors$lambda$51$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$51$Type', 349); +function Collectors$lambda$7$Type(classifier_0){ + this.classifier_0 = classifier_0; +} + +defineClass(1054, 1, {}, Collectors$lambda$7$Type); +_.accept_1 = function accept_25(arg0, arg1){ + lambda$7(this.classifier_0, castTo(arg0, 83), arg1); +} +; +var Ljava_util_stream_Collectors$lambda$7$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$7$Type', 1054); +function Collectors$lambda$8$Type(){ +} + +defineClass(1056, 1, {}, Collectors$lambda$8$Type); +_.apply_3 = function apply_34(arg0, arg1){ + return mergeAll(castTo(arg0, 83), castTo(arg1, 83), new Collectors$4methodref$addAll$Type); +} +; +var Ljava_util_stream_Collectors$lambda$8$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$8$Type', 1056); +function Collectors$lambda$9$Type(downstream_1){ + this.downstream_1 = downstream_1; +} + +defineClass(1057, 1, {}, Collectors$lambda$9$Type); +_.apply_0 = function apply_35(arg0){ + return lambda$9(this.downstream_1, castTo(arg0, 83)); +} +; +var Ljava_util_stream_Collectors$lambda$9$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$9$Type', 1057); +function $close(this$static){ + if (!this$static.root) { + this$static.terminated = true; + $runClosers(this$static); + } + else { + this$static.root.close_0(); + } +} + +function $onClose(this$static, closeHandler){ + !this$static.root?$add_3(this$static.onClose, closeHandler):$onClose(this$static.root, closeHandler); + return this$static; +} + +function $runClosers(this$static){ + var e, i, size_0, suppressed, throwables; + throwables = new ArrayList; + $forEach_1(this$static.onClose, new TerminatableStream$lambda$0$Type(throwables)); + this$static.onClose.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (throwables.array.length != 0) { + e = (checkCriticalElementIndex(0, throwables.array.length) , castTo(throwables.array[0], 78)); + for (i = 1 , size_0 = throwables.array.length; i < size_0; ++i) { + suppressed = (checkCriticalElementIndex(i, throwables.array.length) , castTo(throwables.array[i], 78)); + suppressed != e && $addSuppressed(e, suppressed); + } + if (instanceOf(e, 60)) { + throw toJs(castTo(e, 60)); + } + if (instanceOf(e, 289)) { + throw toJs(castTo(e, 289)); + } + } +} + +function $terminate(this$static){ + if (!this$static.root) { + $throwIfTerminated(this$static); + this$static.terminated = true; + } + else { + $terminate(this$static.root); + } +} + +function $throwIfTerminated(this$static){ + if (this$static.root) { + $throwIfTerminated(this$static.root); + } + else if (this$static.terminated) { + throw toJs(new IllegalStateException_0("Stream already terminated, can't be modified or used")); + } +} + +function TerminatableStream(previous){ + if (!previous) { + this.root = null; + this.onClose = new ArrayList; + } + else { + this.root = previous; + this.onClose = null; + } +} + +function lambda$0_3(throwables_0, runnable_1){ + var e; + try { + runnable_1.run(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + e = $e0; + throwables_0.array[throwables_0.array.length] = e; + } + else + throw toJs($e0); + } +} + +defineClass(539, 1, {}); +_.close_0 = function close_0(){ + $close(this); +} +; +_.terminated = false; +var Ljava_util_stream_TerminatableStream_2_classLit = createForClass('java.util.stream', 'TerminatableStream', 539); +function $collect(this$static){ + var acc; + $terminate(this$static); + acc = new DoubleSummaryStatistics; + $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$2$Type(acc)); + return acc; +} + +function $max(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(stats.max_0); +} + +function $min(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(stats.min_0); +} + +function $sorted(this$static){ + var sortingSpliterator; + $throwIfTerminated(this$static); + sortingSpliterator = new DoubleStreamImpl$2(this$static, this$static.spliterator.sizeEstimate, this$static.spliterator.characteristics | 4); + return new DoubleStreamImpl(this$static, sortingSpliterator); +} + +function $toArray_6(this$static){ + var entries; + $terminate(this$static); + entries = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); + $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$0$Type(entries)); + return entries; +} + +function DoubleStreamImpl(previous, spliterator){ + TerminatableStream.call(this, previous); + this.spliterator = spliterator; +} + +function lambda$0_4(entries_0, value_1){ + return entries_0[entries_0.length] = value_1; +} + +defineClass(812, 539, $intern_87, DoubleStreamImpl); +_.close_0 = function close_1(){ + $close(this); +} +; +var Ljava_util_stream_DoubleStreamImpl_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl', 812); +function $tryAdvance_2(this$static, action){ + var list; + if (!this$static.ordered) { + list = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); + $forEachRemaining_1(this$static.this$01.spliterator, new DoubleStreamImpl$2$lambda$0$Type(list)); + list.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); + this$static.ordered = new Spliterators$DoubleArraySpliterator(list, this$static.characteristics); + } + return $tryAdvance_0(this$static.ordered, action); +} + +function DoubleStreamImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + Spliterators$AbstractDoubleSpliterator.call(this, $anonymous0, $anonymous1); +} + +function lambda$0_5(list_0, item_1){ + return list_0[list_0.length] = item_1; +} + +defineClass(1784, 721, $intern_18, DoubleStreamImpl$2); +_.tryAdvance_0 = function tryAdvance_10(action){ + return $tryAdvance_2(this, castTo(action, 182)); +} +; +_.ordered = null; +var Ljava_util_stream_DoubleStreamImpl$2_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2', 1784); +function DoubleStreamImpl$2$lambda$0$Type(list_0){ + this.list_0 = list_0; +} + +defineClass(1785, 1, $intern_75, DoubleStreamImpl$2$lambda$0$Type); +_.accept_2 = function accept_26(arg0){ + lambda$0_5(this.list_0, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$2$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2/lambda$0$Type', 1785); +function DoubleStreamImpl$lambda$0$Type(entries_0){ + this.entries_0 = entries_0; +} + +defineClass(1782, 1, $intern_75, DoubleStreamImpl$lambda$0$Type); +_.accept_2 = function accept_27(arg0){ + lambda$0_4(this.entries_0, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$0$Type', 1782); +function DoubleStreamImpl$lambda$2$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1783, 1, $intern_75, DoubleStreamImpl$lambda$2$Type); +_.accept_2 = function accept_28(arg0){ + $accept(this.acc_1, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$2$Type', 1783); +function range_0(endExclusive){ + if (0 >= endExclusive) { + return new IntStreamImpl$Empty; + } + return rangeClosed(endExclusive - 1); +} + +function rangeClosed(endInclusive){ + var count, spliterator; + if (0 > endInclusive) { + return new IntStreamImpl$Empty; + } + count = endInclusive + 1; + spliterator = new IntStream$5(count, endInclusive); + return new IntStreamImpl(null, spliterator); +} + +function $tryAdvance_3(this$static, action){ + if (this$static.next_0 <= this$static.val$endInclusive5) { + action.accept_0(this$static.next_0++); + return true; + } + return false; +} + +function IntStream$5($anonymous0, val$endInclusive){ + this.val$startInclusive4 = 0; + this.val$endInclusive5 = val$endInclusive; + Spliterators$AbstractIntSpliterator.call(this, $anonymous0, 17493); + this.next_0 = this.val$startInclusive4; +} + +defineClass(1358, 720, $intern_18, IntStream$5); +_.tryAdvance_0 = function tryAdvance_11(action){ + return $tryAdvance_3(this, castTo(action, 196)); +} +; +_.next_0 = 0; +_.val$endInclusive5 = 0; +_.val$startInclusive4 = 0; +var Ljava_util_stream_IntStream$5_2_classLit = createForClass('java.util.stream', 'IntStream/5', 1358); +function $collect_0(this$static){ + var acc; + $terminate(this$static); + acc = new IntSummaryStatistics; + $forEachRemaining_1(this$static.spliterator, new IntStreamImpl$lambda$4$Type(acc)); + return acc; +} + +function $max_0(this$static){ + var stats; + stats = $collect_0(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalInt() , $clinit_OptionalInt() , EMPTY_5; + } + return $clinit_OptionalInt() , new OptionalInt_0(stats.max_0); +} + +function IntStreamImpl(previous, spliterator){ + TerminatableStream.call(this, previous); + this.spliterator = spliterator; +} + +defineClass(787, 539, $intern_87, IntStreamImpl); +_.close_0 = function close_2(){ + $close(this); +} +; +_.spliterator_1 = function spliterator_35(){ + return $terminate(this) , this.spliterator; +} +; +var Ljava_util_stream_IntStreamImpl_2_classLit = createForClass('java.util.stream', 'IntStreamImpl', 787); +function IntStreamImpl$Empty(){ + TerminatableStream.call(this, null); +} + +defineClass(788, 539, $intern_87, IntStreamImpl$Empty); +_.close_0 = function close_3(){ + $close(this); +} +; +_.spliterator_1 = function spliterator_36(){ + return $terminate(this) , $clinit_Spliterators$EmptySpliterator() , OF_INT; +} +; +var Ljava_util_stream_IntStreamImpl$Empty_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/Empty', 788); +function IntStreamImpl$lambda$4$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1463, 1, $intern_21, IntStreamImpl$lambda$4$Type); +_.accept_0 = function accept_29(arg0){ + $accept_0(this.acc_1, arg0); +} +; +var Ljava_util_stream_IntStreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/lambda$4$Type', 1463); +var Ljava_util_stream_Stream_2_classLit = createForInterface('java.util.stream', 'Stream'); +function $clinit_StreamImpl(){ + $clinit_StreamImpl = emptyMethod; + NULL_CONSUMER = new StreamImpl$lambda$0$Type; +} + +function $anyMatch(this$static, predicate){ + return ($throwIfTerminated(this$static) , $spliterator(new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)))).tryAdvance(NULL_CONSUMER); +} + +function $collect_1(this$static, collector){ + var lastArg; + return collector.finisher.apply_0($reduce(this$static, collector.supplier.get_5(), (lastArg = new StreamImpl$lambda$4$Type(collector) , lastArg))); +} + +function $count_0(this$static){ + var count; + $terminate(this$static); + count = 0; + while (this$static.spliterator.tryAdvance(new StreamImpl$lambda$1$Type)) { + count = add_20(count, 1); + } + return count; +} + +function $distinct(this$static){ + var seen; + $throwIfTerminated(this$static); + seen = new HashSet; + return $filter(this$static, new StreamImpl$1methodref$add$Type(seen)); +} + +function $filter(this$static, predicate){ + $throwIfTerminated(this$static); + return new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)); +} + +function $findFirst(this$static){ + var holder; + $terminate(this$static); + holder = new StreamImpl$ValueConsumer; + if (this$static.spliterator.tryAdvance(holder)) { + return $clinit_Optional() , new Optional(checkCriticalNotNull(holder.value_0)); + } + return $clinit_Optional() , $clinit_Optional() , EMPTY_3; +} + +function $flatMap(this$static, mapper){ + var flatMapSpliterator, spliteratorOfStreams; + $throwIfTerminated(this$static); + spliteratorOfStreams = new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator); + flatMapSpliterator = new StreamImpl$1(spliteratorOfStreams); + return new StreamImpl(this$static, flatMapSpliterator); +} + +function $forEach_3(this$static, action){ + $terminate(this$static); + this$static.spliterator.forEachRemaining(action); +} + +function $map_0(this$static, mapper){ + $throwIfTerminated(this$static); + return new StreamImpl(this$static, new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator)); +} + +function $mapToDouble(this$static, mapper){ + $throwIfTerminated(this$static); + return new DoubleStreamImpl(this$static, new StreamImpl$MapToDoubleSpliterator(mapper, this$static.spliterator)); +} + +function $mapToInt(this$static, mapper){ + $throwIfTerminated(this$static); + return new IntStreamImpl(this$static, new StreamImpl$MapToIntSpliterator(mapper, this$static.spliterator)); +} + +function $max_1(this$static, comparator){ + return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$0$Type(comparator))); +} + +function $min_0(this$static, comparator){ + return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$1$Type(comparator))); +} + +function $reduce(this$static, identity, accumulator){ + var consumer; + $terminate(this$static); + consumer = new StreamImpl$ValueConsumer; + consumer.value_0 = identity; + this$static.spliterator.forEachRemaining(new StreamImpl$lambda$5$Type(consumer, accumulator)); + return consumer.value_0; +} + +function $reduce_0(this$static, accumulator){ + var consumer; + consumer = new StreamImpl$ValueConsumer; + if (!this$static.spliterator.tryAdvance(consumer)) { + $terminate(this$static); + return $clinit_Optional() , $clinit_Optional() , EMPTY_3; + } + return $clinit_Optional() , new Optional(checkCriticalNotNull($reduce(this$static, consumer.value_0, accumulator))); +} + +function $sorted_0(this$static){ + var c; + $throwIfTerminated(this$static); + c = ($clinit_Comparators() , $clinit_Comparators() , NATURAL_ORDER); + return $sorted_1(this$static, c); +} + +function $sorted_1(this$static, comparator){ + var sortedSpliterator; + $throwIfTerminated(this$static); + sortedSpliterator = new StreamImpl$5(this$static, this$static.spliterator.estimateSize_0(), this$static.spliterator.characteristics_0() | 4, comparator); + return new StreamImpl(this$static, sortedSpliterator); +} + +function $spliterator(this$static){ + $terminate(this$static); + return this$static.spliterator; +} + +function $toArray_7(this$static, generator){ + var collected; + collected = castTo($collect_1(this$static, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + return collected.toArray_0($apply_3(collected.size_1())); +} + +function StreamImpl(prev, spliterator){ + $clinit_StreamImpl(); + TerminatableStream.call(this, prev); + this.spliterator = spliterator; +} + +function lambda$4_0(collector_0, a_1, t_2){ + $clinit_StreamImpl(); + collector_0.accumulator.accept_1(a_1, t_2); + return a_1; +} + +function lambda$5(consumer_0, accumulator_1, item_2){ + $clinit_StreamImpl(); + $accept_1(consumer_0, accumulator_1.apply_3(consumer_0.value_0, item_2)); +} + +defineClass(30, 539, {525:1, 670:1, 833:1}, StreamImpl); +_.close_0 = function close_4(){ + $close(this); +} +; +var NULL_CONSUMER; +var Ljava_util_stream_StreamImpl_2_classLit = createForClass('java.util.stream', 'StreamImpl', 30); +function $apply_3(arg0){ + return $clinit_StreamImpl() , initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, arg0, 5, 1); +} + +function StreamImpl$0methodref$lambda$2$Type(){ +} + +defineClass(845, 1, {}, StreamImpl$0methodref$lambda$2$Type); +_.apply_2 = function apply_36(arg0){ + return $apply_3(arg0); +} +; +var Ljava_util_stream_StreamImpl$0methodref$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/0methodref$lambda$2$Type', 845); +function $advanceToNextSpliterator(this$static){ + while (!this$static.next_0) { + if (!$tryAdvance_6(this$static.val$spliteratorOfStreams5, new StreamImpl$1$lambda$0$Type(this$static))) { + return false; + } + } + return true; +} + +function $lambda$0_0(this$static, n_0){ + if (n_0) { + this$static.nextStream = n_0; + this$static.next_0 = ($terminate(n_0) , n_0.spliterator); + } +} + +function StreamImpl$1(val$spliteratorOfStreams){ + this.val$spliteratorOfStreams5 = val$spliteratorOfStreams; + Spliterators$AbstractSpliterator.call(this, $intern_20, 0); +} + +defineClass(1084, 540, $intern_18, StreamImpl$1); +_.tryAdvance = function tryAdvance_12(action){ + while ($advanceToNextSpliterator(this)) { + if (this.next_0.tryAdvance(action)) { + return true; + } + else { + $close(this.nextStream); + this.nextStream = null; + this.next_0 = null; + } + } + return false; +} +; +var Ljava_util_stream_StreamImpl$1_2_classLit = createForClass('java.util.stream', 'StreamImpl/1', 1084); +function StreamImpl$1$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1085, 1, $intern_19, StreamImpl$1$lambda$0$Type); +_.accept = function accept_30(arg0){ + $lambda$0_0(this.$$outer_0, castTo(arg0, 833)); +} +; +var Ljava_util_stream_StreamImpl$1$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1/lambda$0$Type', 1085); +function StreamImpl$1methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1086, 1, $intern_39, StreamImpl$1methodref$add$Type); +_.test_0 = function test_5(arg0){ + return $add_6(this.$$outer_0, arg0); +} +; +var Ljava_util_stream_StreamImpl$1methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1methodref$add$Type', 1086); +function StreamImpl$5(this$0, $anonymous0, $anonymous1, val$comparator){ + this.this$01 = this$0; + this.val$comparator5 = val$comparator; + Spliterators$AbstractSpliterator.call(this, $anonymous0, $anonymous1); +} + +defineClass(1087, 540, $intern_18, StreamImpl$5); +_.tryAdvance = function tryAdvance_13(action){ + var list; + if (!this.ordered) { + list = new ArrayList; + this.this$01.spliterator.forEachRemaining(new StreamImpl$5$2methodref$add$Type(list)); + $clinit_Collections(); + $sort(list, this.val$comparator5); + this.ordered = new Spliterators$IteratorSpliterator(list, 16); + } + return $tryAdvance(this.ordered, action); +} +; +_.ordered = null; +var Ljava_util_stream_StreamImpl$5_2_classLit = createForClass('java.util.stream', 'StreamImpl/5', 1087); +function StreamImpl$5$2methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1088, 1, $intern_19, StreamImpl$5$2methodref$add$Type); +_.accept = function accept_31(arg0){ + $add_3(this.$$outer_0, arg0); +} +; +var Ljava_util_stream_StreamImpl$5$2methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/5/2methodref$add$Type', 1088); +function $lambda$0_1(this$static, action_1, item_1){ + if (this$static.filter.test_0(item_1)) { + this$static.found = true; + action_1.accept(item_1); + } +} + +function StreamImpl$FilterSpliterator(filter, original){ + Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -16449); + checkCriticalNotNull(filter); + this.filter = filter; + this.original = original; +} + +defineClass(722, 540, $intern_18, StreamImpl$FilterSpliterator); +_.tryAdvance = function tryAdvance_14(action){ + this.found = false; + while (!this.found && this.original.tryAdvance(new StreamImpl$FilterSpliterator$lambda$0$Type(this, action))) + ; + return this.found; +} +; +_.found = false; +var Ljava_util_stream_StreamImpl$FilterSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator', 722); +function StreamImpl$FilterSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1079, 1, $intern_19, StreamImpl$FilterSpliterator$lambda$0$Type); +_.accept = function accept_32(arg0){ + $lambda$0_1(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$FilterSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator/lambda$0$Type', 1079); +function $lambda$0_2(this$static, action_1, u_1){ + action_1.accept_2(this$static.map_0.applyAsDouble(u_1)); +} + +function $tryAdvance_4(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToDoubleSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToDoubleSpliterator(map_0, original){ + Spliterators$AbstractDoubleSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(1075, 721, $intern_18, StreamImpl$MapToDoubleSpliterator); +_.tryAdvance_0 = function tryAdvance_15(action){ + return $tryAdvance_4(this, castTo(action, 182)); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator', 1075); +function StreamImpl$MapToDoubleSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1078, 1, $intern_19, StreamImpl$MapToDoubleSpliterator$lambda$0$Type); +_.accept = function accept_33(arg0){ + $lambda$0_2(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator/lambda$0$Type', 1078); +function $lambda$0_3(this$static, action_1, u_1){ + action_1.accept_0(this$static.map_0.applyAsInt(u_1)); +} + +function $tryAdvance_5(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToIntSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToIntSpliterator(map_0, original){ + Spliterators$AbstractIntSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(1074, 720, $intern_18, StreamImpl$MapToIntSpliterator); +_.tryAdvance_0 = function tryAdvance_16(action){ + return $tryAdvance_5(this, castTo(action, 196)); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator', 1074); +function StreamImpl$MapToIntSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1077, 1, $intern_19, StreamImpl$MapToIntSpliterator$lambda$0$Type); +_.accept = function accept_34(arg0){ + $lambda$0_3(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator/lambda$0$Type', 1077); +function $lambda$0_4(this$static, action_1, u_1){ + action_1.accept(this$static.map_0.apply_0(u_1)); +} + +function $tryAdvance_6(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToObjSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToObjSpliterator(map_0, original){ + Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(719, 540, $intern_18, StreamImpl$MapToObjSpliterator); +_.tryAdvance = function tryAdvance_17(action){ + return $tryAdvance_6(this, action); +} +; +var Ljava_util_stream_StreamImpl$MapToObjSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator', 719); +function StreamImpl$MapToObjSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1076, 1, $intern_19, StreamImpl$MapToObjSpliterator$lambda$0$Type); +_.accept = function accept_35(arg0){ + $lambda$0_4(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToObjSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator/lambda$0$Type', 1076); +function $accept_1(this$static, value_0){ + this$static.value_0 = value_0; +} + +function StreamImpl$ValueConsumer(){ +} + +defineClass(618, 1, $intern_19, StreamImpl$ValueConsumer); +_.accept = function accept_36(value_0){ + $accept_1(this, value_0); +} +; +var Ljava_util_stream_StreamImpl$ValueConsumer_2_classLit = createForClass('java.util.stream', 'StreamImpl/ValueConsumer', 618); +function StreamImpl$lambda$0$Type(){ +} + +defineClass(1080, 1, $intern_19, StreamImpl$lambda$0$Type); +_.accept = function accept_37(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$0$Type', 1080); +function StreamImpl$lambda$1$Type(){ +} + +defineClass(1081, 1, $intern_19, StreamImpl$lambda$1$Type); +_.accept = function accept_38(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$1$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$1$Type', 1081); +function StreamImpl$lambda$4$Type(collector_0){ + this.collector_0 = collector_0; +} + +defineClass(1082, 1, {}, StreamImpl$lambda$4$Type); +_.apply_3 = function apply_37(arg0, arg1){ + return lambda$4_0(this.collector_0, arg0, arg1); +} +; +var Ljava_util_stream_StreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$4$Type', 1082); +function StreamImpl$lambda$5$Type(consumer_0, accumulator_1){ + this.consumer_0 = consumer_0; + this.accumulator_1 = accumulator_1; +} + +defineClass(1083, 1, $intern_19, StreamImpl$lambda$5$Type); +_.accept = function accept_39(arg0){ + lambda$5(this.consumer_0, this.accumulator_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$lambda$5$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$5$Type', 1083); +function TerminatableStream$lambda$0$Type(throwables_0){ + this.throwables_0 = throwables_0; +} + +defineClass(1089, 1, $intern_19, TerminatableStream$lambda$0$Type); +_.accept = function accept_40(arg0){ + lambda$0_3(this.throwables_0, castTo(arg0, 365)); +} +; +var Ljava_util_stream_TerminatableStream$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'TerminatableStream/lambda$0$Type', 1089); +function clone_0(array, toIndex){ + var result; + result = array.slice(0, toIndex); + return stampJavaTypeInfo_0(result, array); +} + +function copy_0(src_0, srcOfs, dest, destOfs, len, overwrite){ + var batchEnd, batchStart, destArray, end, spliceArgs; + if (maskUndefined(src_0) === maskUndefined(dest)) { + src_0 = src_0.slice(srcOfs, srcOfs + len); + srcOfs = 0; + } + destArray = dest; + for (batchStart = srcOfs , end = srcOfs + len; batchStart < end;) { + batchEnd = $wnd.Math.min(batchStart + 10000, end); + len = batchEnd - batchStart; + spliceArgs = src_0.slice(batchStart, batchEnd); + spliceArgs.splice(0, 0, destOfs, overwrite?len:0); + Array.prototype.splice.apply(destArray, spliceArgs); + batchStart = batchEnd; + destOfs += len; + } +} + +function createFrom(array, length_0){ + return stampJavaTypeInfo_1(new Array(length_0), array); +} + +function insertTo(array, index_0, value_0){ + array.splice(index_0, 0, value_0); +} + +function insertTo_0(array, index_0, values){ + copy_0(values, 0, array, index_0, values.length, false); +} + +function removeFrom(array, index_0, deleteCount){ + array.splice(index_0, deleteCount); +} + +function setLength(array, length_0){ + array.length = length_0; +} + +defineClass(2041, 1, {}); +function stampJavaTypeInfo_1(array, referenceType){ + return stampJavaTypeInfo_0(array, referenceType); +} + +function $groupStart(msg, expanded){ + (!expanded && console.groupCollapsed != null?console.groupCollapsed:console.group != null?console.group:console.log).call(console, msg); +} + +function $log_0(level, message){ + var logFn; + logFn = console[level]; + logFn.call(console, message); +} + +function $log_1(this$static, level, t, label_0, expanded){ + var cause, suppressed, suppressed$array, suppressed$index, suppressed$max; + $groupStart(label_0 + $toString_4(t, t.getMessage()), expanded); + $log_0(level, getBackingErrorStack(t)); + cause = t.cause_0; + !!cause && $log_1(this$static, level, cause, 'Caused by: ', false); + for (suppressed$array = (t.suppressedExceptions == null && (t.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , t.suppressedExceptions) , suppressed$index = 0 , suppressed$max = suppressed$array.length; suppressed$index < suppressed$max; ++suppressed$index) { + suppressed = suppressed$array[suppressed$index]; + $log_1(this$static, level, suppressed, 'Suppressed: ', false); + } + console.groupEnd != null && console.groupEnd.call(console); +} + +function ConsoleLogger(){ +} + +function getBackingErrorStack(t){ + var backingError = t.backingJsObject; + function stringify(fnStack){ + if (!fnStack || fnStack.length == 0) { + return ''; + } + return '\t' + fnStack.join('\n\t'); + } + + return backingError && (backingError.stack || stringify(t['fnStack'])); +} + +defineClass(1914, 1, {}, ConsoleLogger); +var Ljavaemul_internal_ConsoleLogger_2_classLit = createForClass('javaemul.internal', 'ConsoleLogger', 1914); +function getIdentityHashCode(o){ + switch (typeof(o)) { + case 'string': + return getHashCode_1(o); + case 'number': + return round_int(o); + case 'boolean': + return $clinit_Boolean() , o?1231:1237; + default:return o == null?0:getHashCode_0(o); + } +} + +function checkCriticalArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkCriticalArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkCriticalArgument_1(expression, errorMessageArgs){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(format('Enum constant undefined: %s', errorMessageArgs))); + } +} + +function checkCriticalArrayBounds_0(start_0, end, length_0){ + if (start_0 > end) { + throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); + } + if (start_0 < 0 || end > length_0) { + throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); + } +} + +function checkCriticalArraySize(size_0){ + if (size_0 < 0) { + throw toJs(new NegativeArraySizeException('Negative array size: ' + size_0)); + } +} + +function checkCriticalArrayType(expression){ + if (!expression) { + throw toJs(new ArrayStoreException); + } +} + +function checkCriticalArrayType_0(expression, errorMessage){ + if (!expression) { + throw toJs(new ArrayStoreException_0(errorMessage)); + } +} + +function checkCriticalElement(expression){ + if (!expression) { + throw toJs(new NoSuchElementException); + } +} + +function checkCriticalElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalNotNull(reference){ + if (reference == null) { + throw toJs(new NullPointerException); + } + return reference; +} + +function checkCriticalNotNull_0(reference, errorMessage){ + if (reference == null) { + throw toJs(new NullPointerException_0(errorMessage)); + } +} + +function checkCriticalPositionIndex(index_0, size_0){ + if (index_0 < 0 || index_0 > size_0) { + throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || end > size_0) { + throw toJs(new IndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', size: ' + size_0)); + } + if (start_0 > end) { + throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); + } +} + +function checkCriticalState(expression){ + if (!expression) { + throw toJs(new IllegalStateException); + } +} + +function checkCriticalState_0(expression){ + if (!expression) { + throw toJs(new IllegalStateException_0('Unable to add element to queue')); + } +} + +function checkCriticalStringBounds(start_0, end, length_0){ + if (start_0 < 0 || end > length_0 || end < start_0) { + throw toJs(new StringIndexOutOfBoundsException('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); + } +} + +function checkCriticalStringElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new StringIndexOutOfBoundsException('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalType(expression){ + if (!expression) { + throw toJs(new ClassCastException_0(null)); + } +} + +function format(template, args){ + var builder, i, placeholderStart, templateStart; + template = template == null?'null':(checkCriticalNotNull(template) , template); + builder = new StringBuilder_0; + templateStart = 0; + i = 0; + while (i < args.length) { + placeholderStart = template.indexOf('%s', templateStart); + if (placeholderStart == -1) { + break; + } + $append_11(builder, template.substr(templateStart, placeholderStart - templateStart)); + $append_10(builder, args[i++]); + templateStart = placeholderStart + 2; + } + $append_11(builder, template.substr(templateStart)); + if (i < args.length) { + builder.string += ' ['; + $append_10(builder, args[i++]); + while (i < args.length) { + builder.string += ', '; + $append_10(builder, args[i++]); + } + builder.string += ']'; + } + return builder.string; +} + +defineClass(2038, 1, {}); +function getHashCode_0(o){ + return o.$H || (o.$H = ++nextHashId); +} + +var nextHashId = 0; +function $clinit_StringHashCache(){ + $clinit_StringHashCache = emptyMethod; + back_0 = new Object_0; + front = new Object_0; +} + +function compute(str){ + var hashCode, i, n, nBatch; + hashCode = 0; + n = str.length; + nBatch = n - 4; + i = 0; + while (i < nBatch) { + hashCode = (checkCriticalStringElementIndex(i + 3, str.length) , str.charCodeAt(i + 3) + (checkCriticalStringElementIndex(i + 2, str.length) , 31 * (str.charCodeAt(i + 2) + (checkCriticalStringElementIndex(i + 1, str.length) , 31 * (str.charCodeAt(i + 1) + (checkCriticalStringElementIndex(i, str.length) , 31 * (str.charCodeAt(i) + 31 * hashCode))))))); + hashCode = hashCode | 0; + i += 4; + } + while (i < n) { + hashCode = hashCode * 31 + $charAt(str, i++); + } + hashCode = hashCode | 0; + return hashCode; +} + +function getHashCode_1(str){ + $clinit_StringHashCache(); + var hashCode, key, result; + key = ':' + str; + result = front[key]; + if (result != null) { + return round_int((checkCriticalNotNull(result) , result)); + } + result = back_0[key]; + hashCode = result == null?compute(str):round_int((checkCriticalNotNull(result) , result)); + increment_0(); + front[key] = hashCode; + return hashCode; +} + +function increment_0(){ + if (count_0 == 256) { + back_0 = front; + front = new Object_0; + count_0 = 0; + } + ++count_0; +} + +var back_0, count_0 = 0, front; +function triangulate(vertices){ + var bottomright, boundary, c, i, invalidTriangles, onBoundary, other, other$iterator, sa, sb, sc, size_0, superTriangle, tEdge, tEdge$iterator, tEdge$iterator0, tEdges, topleft, triangle, triangle$iterator, triangle$iterator0, triangulation, v, v$iterator, vertex, vertex$iterator; + topleft = new KVector_1($intern_59, $intern_59); + bottomright = new KVector_1($intern_60, $intern_60); + for (v$iterator = new ArrayList$1(vertices); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 8); + topleft.x_0 = $wnd.Math.min(topleft.x_0, v.x_0); + topleft.y_0 = $wnd.Math.min(topleft.y_0, v.y_0); + bottomright.x_0 = $wnd.Math.max(bottomright.x_0, v.x_0); + bottomright.y_0 = $wnd.Math.max(bottomright.y_0, v.y_0); + } + size_0 = new KVector_1(bottomright.x_0 - topleft.x_0, bottomright.y_0 - topleft.y_0); + sa = new KVector_1(topleft.x_0 - 50, topleft.y_0 - size_0.x_0 - 50); + sb = new KVector_1(topleft.x_0 - 50, bottomright.y_0 + size_0.x_0 + 50); + sc = new KVector_1(bottomright.x_0 + size_0.y_0 / 2 + 50, topleft.y_0 + size_0.y_0 / 2); + superTriangle = new TTriangle(sa, sb, sc); + triangulation = new HashSet; + invalidTriangles = new ArrayList; + boundary = new ArrayList; + triangulation.map_0.put(superTriangle, triangulation); + for (vertex$iterator = new ArrayList$1(vertices); vertex$iterator.i < vertex$iterator.this$01.array.length;) { + vertex = castTo($next_7(vertex$iterator), 8); + invalidTriangles.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (triangle$iterator0 = triangulation.map_0.keySet_0().iterator_0(); triangle$iterator0.hasNext_0();) { + triangle = castTo(triangle$iterator0.next_1(), 308); + c = triangle.circumcenter; + $distance_0(c, triangle.a); + fuzzyCompare($distance_0(triangle.circumcenter, vertex), $distance_0(triangle.circumcenter, triangle.a)) < 0 && (invalidTriangles.array[invalidTriangles.array.length] = triangle , true); + } + boundary.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (triangle$iterator = new ArrayList$1(invalidTriangles); triangle$iterator.i < triangle$iterator.this$01.array.length;) { + triangle = castTo($next_7(triangle$iterator), 308); + for (tEdge$iterator0 = new ArrayList$1(triangle.tEdges); tEdge$iterator0.i < tEdge$iterator0.this$01.array.length;) { + tEdge = castTo($next_7(tEdge$iterator0), 168); + onBoundary = true; + for (other$iterator = new ArrayList$1(invalidTriangles); other$iterator.i < other$iterator.this$01.array.length;) { + other = castTo($next_7(other$iterator), 308); + other != triangle && (equals_57(tEdge, $get_11(other.tEdges, 0)) || equals_57(tEdge, $get_11(other.tEdges, 1)) || equals_57(tEdge, $get_11(other.tEdges, 2))) && (onBoundary = false); + } + onBoundary && (boundary.array[boundary.array.length] = tEdge , true); + } + } + $removeAll_1(triangulation, invalidTriangles); + $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$0$Type); + for (tEdge$iterator = new ArrayList$1(boundary); tEdge$iterator.i < tEdge$iterator.this$01.array.length;) { + tEdge = castTo($next_7(tEdge$iterator), 168); + $add_6(triangulation, new TTriangle(vertex, tEdge.u, tEdge.v)); + } + } + tEdges = new HashSet; + $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$1$Type(tEdges)); + i = tEdges.map_0.keySet_0().iterator_0(); + while (i.hasNext_0()) { + tEdge = castTo(i.next_1(), 168); + ($contains_9(superTriangle, tEdge.u) || $contains_9(superTriangle, tEdge.v)) && i.remove(); + } + $forEach_0(tEdges, new BowyerWatsonTriangulation$lambda$2$Type); + return tEdges; +} + +function BowyerWatsonTriangulation$lambda$0$Type(){ +} + +defineClass(1768, 1, $intern_19, BowyerWatsonTriangulation$lambda$0$Type); +_.accept = function accept_41(arg0){ + castTo(arg0, 308); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$0$Type', 1768); +function BowyerWatsonTriangulation$lambda$1$Type(tEdges_0){ + this.tEdges_0 = tEdges_0; +} + +defineClass(1769, 1, $intern_19, BowyerWatsonTriangulation$lambda$1$Type); +_.accept = function accept_42(arg0){ + $addAll(this.tEdges_0, castTo(arg0, 308).tEdges); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$1$Type', 1769); +function BowyerWatsonTriangulation$lambda$2$Type(){ +} + +defineClass(1770, 1, $intern_19, BowyerWatsonTriangulation$lambda$2$Type); +_.accept = function accept_43(arg0){ + castTo(arg0, 168); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$2$Type', 1770); +function createSpanningTree(tEdges, root, costFunction){ + var edge, edge$iterator, edge$iterator0, edgeList, edges, minST, nextEdge, nextNode, nodeInTree, subTree, treeNodes, weight; + weight = new HashMap; + for (edge$iterator0 = tEdges.map_0.keySet_0().iterator_0(); edge$iterator0.hasNext_0();) { + edge = castTo(edge$iterator0.next_1(), 168); + $put_6(weight, edge, costFunction.cost(edge)); + } + edgeList = (checkNotNull(tEdges) , tEdges?new ArrayList_1(tEdges):newArrayList_0(tEdges.map_0.keySet_0().iterator_0())); + $sort(edgeList, new NaiveMinST$lambda$0$Type(weight)); + edges = newLinkedHashSet(edgeList); + minST = new Tree(root); + treeNodes = new HashMap; + $put_9(treeNodes.hashCodeMap, root, minST); + while (edges.map_0.size_1() != 0) { + nextEdge = null; + nextNode = null; + nodeInTree = null; + for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 168); + if ($doubleValue(castToDouble(getEntryValueOrNull($getEntry_0(weight.hashCodeMap, edge)))) <= $intern_59) { + if ($containsKey_3(treeNodes, edge.u) && !$containsKey_3(treeNodes, edge.v)) { + nextNode = edge.v; + nodeInTree = edge.u; + nextEdge = edge; + break; + } + if ($containsKey_3(treeNodes, edge.v)) { + if (!$containsKey_3(treeNodes, edge.u)) { + nextNode = edge.u; + nodeInTree = edge.v; + nextEdge = edge; + break; + } + } + } + } + if (!nextEdge) { + break; + } + subTree = new Tree(nextNode); + $add_3(castTo(getEntryValueOrNull($getEntry_0(treeNodes.hashCodeMap, nodeInTree)), 221).children, subTree); + $put_9(treeNodes.hashCodeMap, nextNode, subTree); + edges.map_0.remove_0(nextEdge) != null; + } + return minST; +} + +function lambda$0_6(weight_0, e1_1, e2_2){ + return $compareTo_4(castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e1_1))), castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e2_2)))); +} + +function NaiveMinST$lambda$0$Type(weight_0){ + this.weight_0 = weight_0; +} + +defineClass(1765, 1, $intern_88, NaiveMinST$lambda$0$Type); +_.compare_1 = function compare_12(arg0, arg1){ + return lambda$0_6(this.weight_0, castTo(arg0, 168), castTo(arg1, 168)); +} +; +_.equals_0 = function equals_61(other){ + return this === other; +} +; +_.reversed = function reversed_4(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_NaiveMinST$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NaiveMinST/lambda$0$Type', 1765); +function $execute(this$static){ + var calcu; + sortPortLists(this$static.adapter); + calculateLabelAndNodeSizes(this$static.adapter); + calcu = new NodeMarginCalculator(this$static.adapter); + $process(calcu); +} + +function NodeMicroLayout(adapter){ + this.adapter = adapter; +} + +defineClass(499, 1, {}, NodeMicroLayout); +var Lorg_eclipse_elk_alg_common_NodeMicroLayout_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NodeMicroLayout', 499); +function TEdge(u, v){ + this.u = u; + this.v = v; +} + +defineClass(168, 1, {168:1}, TEdge); +_.equals_0 = function equals_62(obj){ + var other; + if (instanceOf(obj, 168)) { + other = castTo(obj, 168); + return equals_57(this.u, other.u) && equals_57(this.v, other.v) || equals_57(this.u, other.v) && equals_57(this.v, other.u); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_58(){ + return hashCode_54(this.u) + hashCode_54(this.v); +} +; +var Lorg_eclipse_elk_alg_common_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TEdge', 168); +function $contains_9(this$static, vertex){ + return equals_57(vertex, $get_11(this$static.vertices, 0)) || equals_57(vertex, $get_11(this$static.vertices, 1)) || equals_57(vertex, $get_11(this$static.vertices, 2)); +} + +function TTriangle(a, b, c){ + var ab, ac, bc, e, f, g, px, py; + this.a = a; + this.b = b; + this.c = c; + this.tEdges = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_TEdge_2_classLit, 1), $intern_2, 168, 0, [new TEdge(a, b), new TEdge(b, c), new TEdge(c, a)])); + this.vertices = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [a, b, c])); + this.circumcenter = (ab = $sub_0($clone_0(this.b), this.a) , ac = $sub_0($clone_0(this.c), this.a) , bc = $sub_0($clone_0(this.c), this.b) , e = ab.x_0 * (this.a.x_0 + this.b.x_0) + ab.y_0 * (this.a.y_0 + this.b.y_0) , f = ac.x_0 * (this.a.x_0 + this.c.x_0) + ac.y_0 * (this.a.y_0 + this.c.y_0) , g = 2 * (ab.x_0 * bc.y_0 - ab.y_0 * bc.x_0) , px = (ac.y_0 * e - ab.y_0 * f) / g , py = (ab.x_0 * f - ac.x_0 * e) / g , new KVector_1(px, py)); +} + +defineClass(308, 1, {308:1}, TTriangle); +_.equals_0 = function equals_63(obj){ + var other; + if (instanceOf(obj, 308)) { + other = castTo(obj, 308); + return $contains_9(this, other.a) && $contains_9(this, other.b) && $contains_9(this, other.c); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_59(){ + return hashCode_54(this.a) + hashCode_54(this.b) + hashCode_54(this.c); +} +; +var Lorg_eclipse_elk_alg_common_TTriangle_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TTriangle', 308); +function Tree(n){ + this.node = n; + this.children = new ArrayList; +} + +defineClass(221, 1, {221:1}, Tree); +var Lorg_eclipse_elk_alg_common_Tree_2_classLit = createForClass('org.eclipse.elk.alg.common', 'Tree', 221); +function $go(this$static){ + var h, h$iterator, p, p$iterator; + $clinit_Collections(); + $sort(this$static.points, this$static.comparator); + for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { + p = $next_7(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_7(h$iterator), 679); + h.handle(p); + } + } +} + +function Scanline(points, comparator, eventHandlers){ + this.comparator = comparator; + this.points = points; + this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); +} + +function execute(points, comparator, eventHandlers){ + var copy; + copy = (checkNotNull(points) , new ArrayList_1(points)); + $go(new Scanline(copy, comparator, eventHandlers)); +} + +defineClass(1254, 1, {}, Scanline); +var Lorg_eclipse_elk_alg_common_compaction_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction', 'Scanline', 1254); +var Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.common.compaction', 'Scanline/EventHandler'); +function $supports(this$static, direction){ + return $containsEnum(this$static.supportedDirections, direction); +} + +function CGraph(supportedDirections){ + this.cNodes = new ArrayList; + this.cGroups = new ArrayList; + this.predefinedHorizontalConstraints = new ArrayList; + this.predefinedVerticalConstraints = new ArrayList; + this.supportedDirections = supportedDirections; +} + +defineClass(1692, 1, {}, CGraph); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGraph', 1692); +function $addCNode(this$static, cNode){ + if (cNode.cGroup) { + throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); + } + $add_6(this$static.cNodes, cNode); + cNode.cGroup = this$static; + !this$static.reference && (this$static.reference = cNode); +} + +function CGroup(){ + this.cNodes = new LinkedHashSet; + this.incomingConstraints = new HashSet; + this.outDegree = 0; + this.outDegreeReal = 0; +} + +defineClass(307, 1, {307:1}, CGroup); +_.delta = 0; +_.deltaNormalized = 0; +_.id_0 = 0; +_.outDegree = 0; +_.outDegreeReal = 0; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup', 307); +function $create(this$static, graph){ + $add_3(graph.cGroups, this$static.group_0); + return this$static.group_0; +} + +function $master(this$static, master){ + this$static.group_0.master = master; + return this$static; +} + +function $nodes(this$static, nodes){ + var n, n$array, n$index, n$max; + for (n$array = nodes , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { + n = n$array[n$index]; + $addCNode(this$static.group_0, n); + } + return this$static; +} + +function CGroup$CGroupBuilder(){ + this.group_0 = new CGroup; +} + +defineClass(815, 1, {}, CGroup$CGroupBuilder); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup$CGroupBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup/CGroupBuilder', 815); +function CNode(){ + this.cGroupOffset = new KVector; + this.constraints = new ArrayList; +} + +defineClass(57, 1, {57:1}, CNode); +_.toString_0 = function toString_76(){ + var number; + if (this.toStringDelegate) { + return castToString(this.toStringDelegate.apply_0(this)); + } + return $ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit) , Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit.typeName + '@' + (number = getHashCode_0(this) >>> 0 , number.toString(16)); +} +; +_.id_0 = 0; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode', 57); +function $create_0(this$static, graph){ + $add_3(graph.cNodes, this$static.node); + return this$static.node; +} + +function $hitbox(this$static, hitbox){ + this$static.node.hitbox = hitbox; + return this$static; +} + +function $origin(this$static, origin_0){ + this$static.node.origin_0 = origin_0; + return this$static; +} + +function $toStringDelegate(this$static, delegate){ + this$static.node.toStringDelegate = delegate; + return this$static; +} + +function CNode$CNodeBuilder(){ + this.node = new CNode; +} + +defineClass(814, 1, {}, CNode$CNodeBuilder); +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode$CNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode/CNodeBuilder', 814); +function eq_0(d1, d2){ + return $clinit_DoubleMath() , checkNonNegative($intern_41) , $wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2); +} + +function gt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) > 0; +} + +function le(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) <= 0; +} + +function lt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) < 0; +} + +function $clinit_ISpacingsHandler(){ + $clinit_ISpacingsHandler = emptyMethod; + DEFAULT_SPACING_HANDLER = new ISpacingsHandler$1; +} + +var DEFAULT_SPACING_HANDLER; +function ISpacingsHandler$1(){ +} + +defineClass(1525, 1, {}, ISpacingsHandler$1); +_.getHorizontalSpacing = function getHorizontalSpacing(cNode1, cNode2){ + return 0; +} +; +_.getVerticalSpacing = function getVerticalSpacing(cNode1, cNode2){ + return 0; +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ISpacingsHandler/1', 1525); +function LongestPathCompaction(){ +} + +defineClass(1790, 1, {}, LongestPathCompaction); +_.compact = function compact(compactor){ + var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; + minStartPos = $intern_59; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); + } + sinks = new LinkedList; + for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 307); + group.startPos = minStartPos; + group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 307); + diff = group.reference.hitbox.x_0; + for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { + node = castTo(node$iterator0.next_1(), 57); + suggestedX = group.startPos + node.cGroupOffset.x_0; + !$isLocked(compactor, group, compactor.direction) || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); + } + diff -= group.reference.startPos; + group.delta += diff; + compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); + for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 57); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 57); + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing(node, incNode)); + incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); + $isLocked_0(compactor, incNode, compactor.direction) && (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); + --incNode.cGroup.outDegree; + incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); + } + } + } + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.hitbox.x_0 = cNode.startPos; + } +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_LongestPathCompaction_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'LongestPathCompaction', 1790); +function $clinit_OneDimensionalCompactor(){ + $clinit_OneDimensionalCompactor = emptyMethod; + LONGEST_PATH_COMPACTION = new LongestPathCompaction; + SCANLINE_CONSTRAINTS = new ScanlineConstraintCalculator; + QUADRATIC_CONSTRAINTS = new QuadraticConstraintCalculation; +} + +function $calculateConstraints(this$static){ + var cNode, cNode$iterator, cstrs; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.constraints.clear_0(); + } + $isHorizontal(this$static.direction)?(cstrs = this$static.cGraph.predefinedHorizontalConstraints):(cstrs = this$static.cGraph.predefinedVerticalConstraints); + $forEach_1(cstrs, new OneDimensionalCompactor$lambda$0$Type(this$static)); + this$static.constraintAlgorithm.calculateConstraints(this$static); + $calculateConstraintsForCGroups(this$static); +} + +function $calculateConstraintsForCGroups(this$static){ + var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; + for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 307); + group.outDegree = 0; + group.outDegreeReal = 0; + group.incomingConstraints.map_0.clear_0(); + } + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 307); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 57); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 57); + if (inc.cGroup != group) { + $add_6(group.incomingConstraints, inc); + ++inc.cGroup.outDegree; + ++inc.cGroup.outDegreeReal; + } + } + } + } +} + +function $calculateGroupOffsets(this$static){ + var group, group$iterator, n, n$iterator, n$iterator0; + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 307); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 57); + $reset_5(n.cGroupOffset); + (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); + } + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; + n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; + } + } + return this$static; +} + +function $changeDirection(this$static, dir_0){ + var oldDirection; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + if (!$supports(this$static.cGraph, dir_0)) { + throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); + } + if (dir_0 == this$static.direction) { + return this$static; + } + oldDirection = this$static.direction; + this$static.direction = dir_0; + switch (oldDirection.ordinal) { + case 0: + switch (dir_0.ordinal) { + case 2: + $calculateConstraints(this$static); + break; + case 1: + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 4: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 2: + switch (dir_0.ordinal) { + case 1: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + break; + case 4: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 1: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + break; + case 4: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 4: + switch (dir_0.ordinal) { + case 2: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 1: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + } + + break; + case 3: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 1: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 4: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + } + + } + return this$static; +} + +function $compact(this$static){ + var g, g$iterator, n, n$iterator; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection(this$static, LEFT_6); + for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 307); + g.outDegree = g.outDegreeReal; + } + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + n.startPos = $intern_60; + } + this$static.compactionAlgorithm.compact(this$static); + return this$static; +} + +function $isLocked(this$static, group, dir_0){ + var n, n$iterator; + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if ($isLocked_0(this$static, n, dir_0)) { + return true; + } + } + return false; +} + +function $isLocked_0(this$static, node, dir_0){ + if (this$static.lockFun) { + return this$static.lockFun.isLocked(node, dir_0); + } + return false; +} + +function $lambda$0_5(this$static, p_0){ + this$static.direction == ($clinit_Direction_0() , LEFT_6) || this$static.direction == UP_1?castTo(p_0.first, 57).constraints.add_2(castTo(p_0.second, 57)):castTo(p_0.second, 57).constraints.add_2(castTo(p_0.first, 57)); +} + +function $mirrorHitboxes(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; + } + $calculateGroupOffsets(this$static); +} + +function $reverseConstraints(this$static){ + var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; + incMap = new HashMap; + for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + $put_6(incMap, cNode, new ArrayList); + } + for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator1), 57); + cNode.startPos = $intern_60; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 57); + castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); + } + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.constraints.clear_0(); + cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); + } + $calculateConstraintsForCGroups(this$static); +} + +function $setCompactionAlgorithm(this$static, compactor){ + this$static.compactionAlgorithm = compactor; + return this$static; +} + +function $setConstraintAlgorithm(this$static, theConstraintAlgorithm){ + this$static.constraintAlgorithm = theConstraintAlgorithm; + return this$static; +} + +function $setLockFunction(this$static, fun){ + this$static.lockFun = fun; + return this$static; +} + +function $setSpacingsHandler(this$static, handler){ + this$static.spacingsHandler = handler; + return this$static; +} + +function $transposeHitboxes(this$static){ + var cNode, cNode$iterator, tmp; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + tmp = cNode.hitbox.x_0; + cNode.hitbox.x_0 = cNode.hitbox.y_0; + cNode.hitbox.y_0 = tmp; + tmp = cNode.hitbox.width_0; + cNode.hitbox.width_0 = cNode.hitbox.height; + cNode.hitbox.height = tmp; + tmp = cNode.cGroupOffset.x_0; + cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; + cNode.cGroupOffset.y_0 = tmp; + } + $calculateGroupOffsets(this$static); +} + +function OneDimensionalCompactor(cGraph){ + $clinit_OneDimensionalCompactor(); + var n, n$iterator; + this.compactionAlgorithm = LONGEST_PATH_COMPACTION; + this.constraintAlgorithm = SCANLINE_CONSTRAINTS; + this.spacingsHandler = ($clinit_ISpacingsHandler() , DEFAULT_SPACING_HANDLER); + this.direction = ($clinit_Direction_0() , UNDEFINED_2); + this.cGraph = cGraph; + $calculateGroupOffsets(this); + for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + !n.cGroup && $create($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [n])), cGraph); + n.hitboxPreCompaction = new ElkRectangle_1(n.hitbox); + } +} + +defineClass(1690, 1, {}, OneDimensionalCompactor); +_.finished = false; +var LONGEST_PATH_COMPACTION, QUADRATIC_CONSTRAINTS, SCANLINE_CONSTRAINTS; +var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor', 1690); +function OneDimensionalCompactor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1691, 1, $intern_19, OneDimensionalCompactor$lambda$0$Type); +_.accept = function accept_44(arg0){ + $lambda$0_5(this.$$outer_0, castTo(arg0, 46)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1691); +function QuadraticConstraintCalculation(){ +} + +defineClass(1791, 1, {}, QuadraticConstraintCalculation); +_.calculateConstraints = function calculateConstraints(compactor){ + var cNode, cNode$iterator, cNode1, cNode1$iterator, cNode2, cNode2$iterator, spacing; + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.constraints.clear_0(); + } + for (cNode1$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode1$iterator.i < cNode1$iterator.this$01.array.length;) { + cNode1 = castTo($next_7(cNode1$iterator), 57); + for (cNode2$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode2$iterator.i < cNode2$iterator.this$01.array.length;) { + cNode2 = castTo($next_7(cNode2$iterator), 57); + if (cNode1 == cNode2) { + continue; + } + if (!!cNode1.cGroup && cNode1.cGroup == cNode2.cGroup) { + continue; + } + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getVerticalSpacing(cNode1, cNode2)):(spacing = compactor.spacingsHandler.getHorizontalSpacing(cNode1, cNode2)); + (cNode2.hitbox.x_0 > cNode1.hitbox.x_0 || cNode1.hitbox.x_0 == cNode2.hitbox.x_0 && cNode1.hitbox.width_0 < cNode2.hitbox.width_0) && gt_0(cNode2.hitbox.y_0 + cNode2.hitbox.height + spacing, cNode1.hitbox.y_0) && lt_0(cNode2.hitbox.y_0, cNode1.hitbox.y_0 + cNode1.hitbox.height + spacing) && cNode1.constraints.add_2(cNode2); + } + } +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_QuadraticConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'QuadraticConstraintCalculation', 1791); +function $applyOr(this$static, other){ + this$static.left = this$static.left | other.left; + this$static.right = this$static.right | other.right; + this$static.up = this$static.up | other.up; + this$static.down = this$static.down | other.down; +} + +function $get_18(this$static, direction){ + switch (direction.ordinal) { + case 2: + return this$static.left; + case 1: + return this$static.right; + case 4: + return this$static.up; + case 3: + return this$static.down; + default:return false; + } +} + +function $set_3(this$static, value_0, direction){ + switch (direction.ordinal) { + case 2: + this$static.left = value_0; + break; + case 1: + this$static.right = value_0; + break; + case 4: + this$static.up = value_0; + break; + case 3: + this$static.down = value_0; + } +} + +function $set_4(this$static){ + this$static.left = false; + this$static.right = false; + this$static.up = false; + this$static.down = false; +} + +function Quadruplet(){ + $set_4(this); +} + +defineClass(522, 1, {522:1}, Quadruplet); +_.down = false; +_.left = false; +_.right = false; +_.up = false; +var Lorg_eclipse_elk_alg_common_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'Quadruplet', 522); +function $overlap(n1, n2){ + if (!n1 || !n2 || n1 == n2) { + return false; + } + return le(n1.hitbox.x_0, n2.hitbox.x_0 + n2.hitbox.width_0) && le(n2.hitbox.x_0, n1.hitbox.x_0 + n1.hitbox.width_0); +} + +function $sweep(this$static, filterFun){ + var n, n$iterator, points; + points = new ArrayList; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + if (filterFun.apply_1(n)) { + $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, true)); + $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, false)); + } + } + $reset_1(this$static.constraintsScanlineHandler); + execute(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [this$static.constraintsScanlineHandler]))); +} + +function ScanlineConstraintCalculator(){ + this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type; + this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler(this); +} + +function lambda$0_7(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.hitbox.y_0; + p1_0.low || (y1 += p1_0.node.hitbox.height); + y2 = p2_1.node.hitbox.y_0; + p2_1.low || (y2 += p2_1.node.hitbox.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(803, 1, {}, ScanlineConstraintCalculator); +_.calculateConstraints = function calculateConstraints_0(theCompactor){ + this.compactor = theCompactor; + $sweep(this, new ScanlineConstraintCalculator$lambda$1$Type); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator', 803); +function $handle(this$static, p){ + var left, right; + p.low?$insert_2(this$static, p):(left = castTo($lower(this$static.intervals, p.node), 57) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right = castTo($higher(this$static.intervals, p.node), 57) , !!right && this$static.cand[right.id_0] == p.node && !!right.cGroup && right.cGroup != p.node.cGroup && p.node.constraints.add_2(right) , $remove_28(this$static.intervals, p.node) , undefined); +} + +function $insert_2(this$static, p){ + var right, success; + success = $add_10(this$static.intervals, p.node); + if (!success) { + throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline constraint calculation.')); + } + ($overlap(p.node, castTo($floor(this$static.intervals, p.node), 57)) || $overlap(p.node, castTo($ceiling(this$static.intervals, p.node), 57))) && ($clinit_System() , p.node + ' has overlap.'); + this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 57); + right = castTo($higher(this$static.intervals, p.node), 57); + !!right && (this$static.cand[right.id_0] = p.node); +} + +function $reset_1(this$static){ + var index_0, n, n$iterator; + $clear_8(this$static.intervals.map_0); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, $intern_2, 57, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); + index_0 = 0; + for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + n.id_0 = index_0++; + } +} + +function ScanlineConstraintCalculator$ConstraintsScanlineHandler(this$0){ + this.this$01 = this$0; + this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type), 62)); +} + +function lambda$0_8(c1_0, c2_1){ + return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); +} + +defineClass(1718, 1, {679:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler); +_.handle = function handle(p){ + $handle(this, castTo(p, 464)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1718); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1719, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_13(arg0, arg1){ + return lambda$0_8(castTo(arg0, 57), castTo(arg1, 57)); +} +; +_.equals_0 = function equals_64(other){ + return this === other; +} +; +_.reversed = function reversed_5(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1719); +function ScanlineConstraintCalculator$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(464, 1, {464:1}, ScanlineConstraintCalculator$Timestamp); +_.low = false; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/Timestamp', 464); +function ScanlineConstraintCalculator$lambda$0$Type(){ +} + +defineClass(1720, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type); +_.compare_1 = function compare_14(arg0, arg1){ + return lambda$0_7(castTo(arg0, 464), castTo(arg1, 464)); +} +; +_.equals_0 = function equals_65(other){ + return this === other; +} +; +_.reversed = function reversed_6(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$0$Type', 1720); +function ScanlineConstraintCalculator$lambda$1$Type(){ +} + +defineClass(1721, 1, $intern_89, ScanlineConstraintCalculator$lambda$1$Type); +_.apply_1 = function apply_38(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_66(other){ + return this === other; +} +; +_.test_0 = function test_6(input_0){ + return castTo(input_0, 57) , true; +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$1$Type', 1721); +function $clinit_HighLevelSortingCriterion(){ + $clinit_HighLevelSortingCriterion = emptyMethod; + NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST = new HighLevelSortingCriterion('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST', 0); + CORNER_CASES_THAN_SINGLE_SIDE_LAST = new HighLevelSortingCriterion('CORNER_CASES_THAN_SINGLE_SIDE_LAST', 1); +} + +function HighLevelSortingCriterion(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_14(name_0){ + $clinit_HighLevelSortingCriterion(); + return valueOf(($clinit_HighLevelSortingCriterion$Map() , $MAP_2), name_0); +} + +function values_20(){ + $clinit_HighLevelSortingCriterion(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]); +} + +defineClass(428, 22, {3:1, 35:1, 22:1, 428:1}, HighLevelSortingCriterion); +var CORNER_CASES_THAN_SINGLE_SIDE_LAST, NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST; +var Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'HighLevelSortingCriterion', 428, Ljava_lang_Enum_2_classLit, values_20, valueOf_14); +function $clinit_HighLevelSortingCriterion$Map(){ + $clinit_HighLevelSortingCriterion$Map = emptyMethod; + $MAP_2 = createValueOfMap(($clinit_HighLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]))); +} + +var $MAP_2; +function $clinit_LowLevelSortingCriterion(){ + $clinit_LowLevelSortingCriterion = emptyMethod; + BY_SIZE = new LowLevelSortingCriterion('BY_SIZE', 0); + BY_SIZE_AND_SHAPE = new LowLevelSortingCriterion('BY_SIZE_AND_SHAPE', 1); +} + +function LowLevelSortingCriterion(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_15(name_0){ + $clinit_LowLevelSortingCriterion(); + return valueOf(($clinit_LowLevelSortingCriterion$Map() , $MAP_3), name_0); +} + +function values_21(){ + $clinit_LowLevelSortingCriterion(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]); +} + +defineClass(427, 22, {3:1, 35:1, 22:1, 427:1}, LowLevelSortingCriterion); +var BY_SIZE, BY_SIZE_AND_SHAPE; +var Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'LowLevelSortingCriterion', 427, Ljava_lang_Enum_2_classLit, values_21, valueOf_15); +function $clinit_LowLevelSortingCriterion$Map(){ + $clinit_LowLevelSortingCriterion$Map = emptyMethod; + $MAP_3 = createValueOfMap(($clinit_LowLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]))); +} + +var $MAP_3; +var Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit = createForInterface('org.eclipse.elk.core.data', 'ILayoutMetaDataProvider'); +function $clinit_PolyominoOptions(){ + $clinit_PolyominoOptions = emptyMethod; + POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT = ($clinit_TraversalStrategy() , QUADRANTS_LINE_BY_LINE); + POLYOMINO_TRAVERSAL_STRATEGY = new Property_1('org.eclipse.elk.polyomino.traversalStrategy', POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT); + POLYOMINO_LOW_LEVEL_SORT_DEFAULT = ($clinit_LowLevelSortingCriterion() , BY_SIZE_AND_SHAPE); + POLYOMINO_LOW_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.lowLevelSort', POLYOMINO_LOW_LEVEL_SORT_DEFAULT); + POLYOMINO_HIGH_LEVEL_SORT_DEFAULT = ($clinit_HighLevelSortingCriterion() , NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST); + POLYOMINO_HIGH_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.highLevelSort', POLYOMINO_HIGH_LEVEL_SORT_DEFAULT); + POLYOMINO_FILL = new Property_1('org.eclipse.elk.polyomino.fill', ($clinit_Boolean() , true)); +} + +function PolyominoOptions(){ + $clinit_PolyominoOptions(); +} + +defineClass(853, 1, $intern_90, PolyominoOptions); +_.apply_4 = function apply_39(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.traversalStrategy'), 'polyomino'), 'Polyomino Traversal Strategy'), 'Traversal strategy for trying different candidate positions for polyominoes.'), POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.lowLevelSort'), 'polyomino'), 'Polyomino Secondary Sorting Criterion'), 'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'), POLYOMINO_LOW_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.highLevelSort'), 'polyomino'), 'Polyomino Primary Sorting Criterion'), 'Possible primary sorting criteria for the processing order of polyominoes.'), POLYOMINO_HIGH_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.fill'), 'polyomino'), 'Fill Polyominoes'), 'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); +} +; +var POLYOMINO_FILL, POLYOMINO_HIGH_LEVEL_SORT, POLYOMINO_HIGH_LEVEL_SORT_DEFAULT, POLYOMINO_LOW_LEVEL_SORT, POLYOMINO_LOW_LEVEL_SORT_DEFAULT, POLYOMINO_TRAVERSAL_STRATEGY, POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT; +var Lorg_eclipse_elk_alg_common_compaction_options_PolyominoOptions_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.options', 'PolyominoOptions', 853); +function $clinit_TraversalStrategy(){ + $clinit_TraversalStrategy = emptyMethod; + SPIRAL = new TraversalStrategy('SPIRAL', 0); + LINE_BY_LINE = new TraversalStrategy('LINE_BY_LINE', 1); + MANHATTAN = new TraversalStrategy('MANHATTAN', 2); + JITTER = new TraversalStrategy('JITTER', 3); + QUADRANTS_LINE_BY_LINE = new TraversalStrategy('QUADRANTS_LINE_BY_LINE', 4); + QUADRANTS_MANHATTAN = new TraversalStrategy('QUADRANTS_MANHATTAN', 5); + QUADRANTS_JITTER = new TraversalStrategy('QUADRANTS_JITTER', 6); + COMBINE_LINE_BY_LINE_MANHATTAN = new TraversalStrategy('COMBINE_LINE_BY_LINE_MANHATTAN', 7); + COMBINE_JITTER_MANHATTAN = new TraversalStrategy('COMBINE_JITTER_MANHATTAN', 8); +} + +function TraversalStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_16(name_0){ + $clinit_TraversalStrategy(); + return valueOf(($clinit_TraversalStrategy$Map() , $MAP_4), name_0); +} + +function values_22(){ + $clinit_TraversalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]); +} + +defineClass(250, 22, {3:1, 35:1, 22:1, 250:1}, TraversalStrategy); +var COMBINE_JITTER_MANHATTAN, COMBINE_LINE_BY_LINE_MANHATTAN, JITTER, LINE_BY_LINE, MANHATTAN, QUADRANTS_JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, SPIRAL; +var Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'TraversalStrategy', 250, Ljava_lang_Enum_2_classLit, values_22, valueOf_16); +function $clinit_TraversalStrategy$Map(){ + $clinit_TraversalStrategy$Map = emptyMethod; + $MAP_4 = createValueOfMap(($clinit_TraversalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]))); +} + +var $MAP_4; +function $getOther(this$static, some_0){ + if (some_0 == this$static.source) { + return this$static.target; + } + else if (some_0 == this$static.target) { + return this$static.source; + } + else { + throw toJs(new IllegalArgumentException_0('Node ' + some_0 + ' not part of edge ' + this$static)); + } +} + +function NEdge(){ +} + +defineClass(213, 1, {213:1}, NEdge); +_.toString_0 = function toString_77(){ + return 'NEdge[id=' + this.id_0 + ' w=' + this.weight + ' d=' + this.delta + ']'; +} +; +_.delta = 1; +_.id_0 = 0; +_.internalId = 0; +_.treeEdge = false; +_.weight = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge', 213); +function $create_1(this$static){ + if (!this$static.edge.source || !this$static.edge.target) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit.simpleName + ' must have a source and target ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit.simpleName) + ' specified.'))); + } + if (this$static.edge.source == this$static.edge.target) { + throw toJs(new IllegalStateException_0('Network simplex does not support self-loops: ' + this$static.edge + ' ' + this$static.edge.source + ' ' + this$static.edge.target)); + } + $add_11(this$static.edge.source.outgoingEdges, this$static.edge); + $add_11(this$static.edge.target.incomingEdges, this$static.edge); + return this$static.edge; +} + +function $delta(this$static, delta){ + this$static.edge.delta = delta; + return this$static; +} + +function $source(this$static, source){ + this$static.edge.source = source; + return this$static; +} + +function $target(this$static, target){ + this$static.edge.target = target; + return this$static; +} + +function $weight(this$static, weight){ + this$static.edge.weight = weight; + return this$static; +} + +function NEdge$NEdgeBuilder(){ + this.edge = new NEdge; +} + +defineClass(176, 1, {}, NEdge$NEdgeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge$NEdgeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge/NEdgeBuilder', 176); +function $createArtificialRootAndConnect(this$static, nodesToConnect){ + var root, src_0, src$iterator; + root = $create_2(new NNode$NNodeBuilder, this$static); + for (src$iterator = new ArrayList$1(nodesToConnect); src$iterator.i < src$iterator.this$01.array.length;) { + src_0 = castTo($next_7(src$iterator), 121); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0), root), src_0)); + } + return root; +} + +function $dfs(this$static, node, mark){ + var edge, edge$iterator, other; + if (mark[node.internalId]) { + return; + } + mark[node.internalId] = true; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + other = $getOther(edge, node); + $dfs(this$static, other, mark); + } +} + +function $findConCompRepresentatives(this$static){ + var ccRep, mark, node, node$iterator; + ccRep = new ArrayList; + mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.nodes.array.length, 16, 1); + fill0_3(mark, mark.length); + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + if (!mark[node.internalId]) { + ccRep.array[ccRep.array.length] = node; + $dfs(this$static, node, mark); + } + } + return ccRep; +} + +function $makeConnected(this$static){ + var ccRep, id_0, n, n$iterator, root; + id_0 = 0; + for (n$iterator = new ArrayList$1(this$static.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 121); + n.internalId = id_0++; + } + ccRep = $findConCompRepresentatives(this$static); + root = null; + ccRep.array.length > 1 && (root = $createArtificialRootAndConnect(this$static, ccRep)); + return root; +} + +function NGraph(){ + this.nodes = new ArrayList; +} + +defineClass(653, 1, {}, NGraph); +var Lorg_eclipse_elk_alg_common_networksimplex_NGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NGraph', 653); +function $getConnectedEdges(this$static){ + if (this$static.incomingEdgesModCnt != this$static.incomingEdges.modCount || this$static.outgoingEdgesModCnt != this$static.outgoingEdges.modCount) { + this$static.allEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(this$static.allEdges, this$static.incomingEdges); + $addAll_2(this$static.allEdges, this$static.outgoingEdges); + this$static.incomingEdgesModCnt = this$static.incomingEdges.modCount; + this$static.outgoingEdgesModCnt = this$static.outgoingEdges.modCount; + } + return this$static.allEdges; +} + +function NNode(){ + this.outgoingEdges = new NNode$ChangeAwareArrayList; + this.incomingEdges = new NNode$ChangeAwareArrayList; + this.allEdges = new ArrayList; + this.unknownCutvalues = new ArrayList; +} + +defineClass(121, 1, {121:1}, NNode); +_.incomingEdgesModCnt = -1; +_.internalId = 0; +_.layer = 0; +_.outgoingEdgesModCnt = -1; +_.treeNode = false; +var Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode', 121); +function $add_11(this$static, e){ + ++this$static.modCount; + return $add_3(this$static.list, e); +} + +function $remove_29(this$static, o){ + ++this$static.modCount; + return $remove_12(this$static.list, o); +} + +function NNode$ChangeAwareArrayList(){ + this.list = new ArrayList; +} + +defineClass(795, 1, $intern_73, NNode$ChangeAwareArrayList); +_.forEach_0 = function forEach_24(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_4(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.sort_0 = function sort_9(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_37(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_6(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.add_3 = function add_41(index_0, element){ + ++this.modCount; + $add_2(this.list, index_0, element); +} +; +_.add_2 = function add_42(e){ + return $add_11(this, e); +} +; +_.addAll_0 = function addAll_22(index_0, c){ + ++this.modCount; + return $addAll_1(this.list, index_0, c); +} +; +_.addAll = function addAll_23(c){ + ++this.modCount; + return $addAll_2(this.list, c); +} +; +_.clear_0 = function clear_51(){ + ++this.modCount; + this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_48(o){ + return $indexOf_3(this.list, o, 0) != -1; +} +; +_.containsAll = function containsAll_10(c){ + return $containsAll(this.list, c); +} +; +_.get_0 = function get_49(index_0){ + return $get_11(this.list, index_0); +} +; +_.indexOf_0 = function indexOf_7(o){ + return $indexOf_3(this.list, o, 0); +} +; +_.isEmpty = function isEmpty_25(){ + return this.list.array.length == 0; +} +; +_.iterator_0 = function iterator_66(){ + return unmodifiableIterator(new ArrayList$1(this.list)); +} +; +_.listIterator_0 = function listIterator_15(){ + throw toJs(new UnsupportedOperationException); +} +; +_.listIterator_1 = function listIterator_16(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_2 = function remove_90(index_0){ + ++this.modCount; + return $remove_11(this.list, index_0); +} +; +_.remove_1 = function remove_91(o){ + return $remove_29(this, o); +} +; +_.set_2 = function set_20(index_0, element){ + ++this.modCount; + return $set_1(this.list, index_0, element); +} +; +_.size_1 = function size_64(){ + return this.list.array.length; +} +; +_.subList = function subList_9(fromIndex, toIndex){ + return new AbstractList$SubList(this.list, fromIndex, toIndex); +} +; +_.toArray = function toArray_23(){ + return $toArray_1(this.list); +} +; +_.toArray_0 = function toArray_24(a){ + return $toArray_2(this.list, a); +} +; +_.modCount = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$ChangeAwareArrayList_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/ChangeAwareArrayList', 795); +function $create_2(this$static, graph){ + $add_3(graph.nodes, this$static.node); + return this$static.node; +} + +function $origin_0(this$static, origin_0){ + this$static.node.origin_0 = origin_0; + return this$static; +} + +function NNode$NNodeBuilder(){ + this.node = new NNode; +} + +defineClass(269, 1, {}, NNode$NNodeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$NNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/NNodeBuilder', 269); +function $balance(this$static, filling){ + var i, newLayer, node, node$iterator, range; + range = null; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + if (node.incomingEdges.list.array.length == node.outgoingEdges.list.array.length) { + newLayer = node.layer; + range = $minimalSpan(node); + for (i = node.layer - castTo(range.first, 19).value_0 + 1; i < node.layer + castTo(range.second, 19).value_0; i++) { + filling[i] < filling[newLayer] && (newLayer = i); + } + if (filling[newLayer] < filling[node.layer]) { + --filling[node.layer]; + ++filling[newLayer]; + node.layer = newLayer; + } + } + } +} + +function $cutvalues(this$static){ + var edge, edge$iterator, leafs, node, node$iterator, node$iterator0, source, target, toDetermine, treeEdgeCount; + leafs = new ArrayList; + for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 121); + treeEdgeCount = 0; + node.unknownCutvalues.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.treeEdge) { + $add_3(node.unknownCutvalues, edge); + ++treeEdgeCount; + } + } + treeEdgeCount == 1 && (leafs.array[leafs.array.length] = node , true); + } + for (node$iterator = new ArrayList$1(leafs); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + while (node.unknownCutvalues.array.length == 1) { + toDetermine = castTo($next_7(new ArrayList$1(node.unknownCutvalues)), 213); + this$static.cutvalue[toDetermine.internalId] = toDetermine.weight; + source = toDetermine.source; + target = toDetermine.target; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + equals_Ljava_lang_Object__Z__devirtual$(edge, toDetermine) || (edge.treeEdge?source == edge.source || target == edge.target?(this$static.cutvalue[toDetermine.internalId] -= this$static.cutvalue[edge.internalId] - edge.weight):(this$static.cutvalue[toDetermine.internalId] += this$static.cutvalue[edge.internalId] - edge.weight):node == source?edge.source == node?(this$static.cutvalue[toDetermine.internalId] += edge.weight):(this$static.cutvalue[toDetermine.internalId] -= edge.weight):edge.source == node?(this$static.cutvalue[toDetermine.internalId] -= edge.weight):(this$static.cutvalue[toDetermine.internalId] += edge.weight)); + } + $remove_12(source.unknownCutvalues, toDetermine); + $remove_12(target.unknownCutvalues, toDetermine); + source == node?(node = toDetermine.target):(node = toDetermine.source); + } + } +} + +function $enterEdge(this$static, leave){ + var edge, edge$iterator, repSlack, replace, slack, source, target; + if (!leave.treeEdge) { + throw toJs(new IllegalArgumentException_0('The input edge is not a tree edge.')); + } + replace = null; + repSlack = $intern_0; + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + source = edge.source; + target = edge.target; + if ($isInHead(this$static, source, leave) && !$isInHead(this$static, target, leave)) { + slack = target.layer - source.layer - edge.delta; + if (slack < repSlack) { + repSlack = slack; + replace = edge; + } + } + } + return replace; +} + +function $exchange(this$static, leave, enter){ + var delta, node, node$iterator; + if (!leave.treeEdge) { + throw toJs(new IllegalArgumentException_0('Given leave edge is no tree edge.')); + } + if (enter.treeEdge) { + throw toJs(new IllegalArgumentException_0('Given enter edge is a tree edge already.')); + } + leave.treeEdge = false; + $remove_18(this$static.treeEdges, leave); + enter.treeEdge = true; + $add_6(this$static.treeEdges, enter); + delta = enter.target.layer - enter.source.layer - enter.delta; + $isInHead(this$static, enter.target, leave) || (delta = -delta); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + $isInHead(this$static, node, leave) || (node.layer += delta); + } + this$static.postOrder = 1; + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); + $cutvalues(this$static); +} + +function $execute_0(this$static, monitor){ + var e, iter, node, node$iterator, removeSubtrees; + $begin(monitor, 'Network simplex', 1); + if (this$static.graph_0.nodes.array.length < 1) { + $done_0(monitor); + return; + } + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.layer = 0; + } + removeSubtrees = this$static.graph_0.nodes.array.length >= 40; + removeSubtrees && $removeSubtrees(this$static); + $initialize(this$static); + $feasibleTree(this$static); + e = $leaveEdge(this$static); + iter = 0; + while (!!e && iter < this$static.iterationLimit) { + $exchange(this$static, e, $enterEdge(this$static, e)); + e = $leaveEdge(this$static); + ++iter; + } + removeSubtrees && $reattachSubtrees(this$static); + this$static.balance?$balance(this$static, $normalize(this$static)):$normalize(this$static); + this$static.cutvalue = null; + this$static.edges = null; + this$static.treeEdges = null; + this$static.edgeVisited = null; + this$static.lowestPoID = null; + this$static.poID = null; + this$static.sources = null; + this$static.subtreeNodesStack = null; + $done_0(monitor); +} + +function $feasibleTree(this$static){ + var e, node, node$iterator, slack; + $layeringTopologicalNumbering(this$static, this$static.sources); + if (this$static.edges.array.length > 0) { + fill_3(this$static.edgeVisited); + while ($tightTreeDFS(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)) < this$static.graph_0.nodes.array.length) { + e = $minimalSlack(this$static); + slack = e.target.layer - e.source.layer - e.delta; + e.target.treeNode && (slack = -slack); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.treeNode && (node.layer += slack); + } + fill_3(this$static.edgeVisited); + } + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); + $cutvalues(this$static); + } +} + +function $initialize(this$static){ + var counter, edge, edge$iterator, index_0, n, n$iterator, node, node$iterator, numEdges, numNodes, theEdges; + numNodes = this$static.graph_0.nodes.array.length; + for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 121); + n.treeNode = false; + } + this$static.poID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); + this$static.lowestPoID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); + this$static.sources = new ArrayList; + index_0 = 0; + theEdges = new ArrayList; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.internalId = index_0++; + node.incomingEdges.list.array.length == 0 && $add_3(this$static.sources, node); + $addAll_2(theEdges, node.outgoingEdges); + } + counter = 0; + for (edge$iterator = new ArrayList$1(theEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + edge.internalId = counter++; + edge.treeEdge = false; + } + numEdges = theEdges.array.length; + if (this$static.cutvalue == null || this$static.cutvalue.length < numEdges) { + this$static.cutvalue = initUnidimensionalArray(D_classLit, $intern_65, 25, numEdges, 15, 1); + this$static.edgeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, numEdges, 16, 1); + } + else { + fill_3(this$static.edgeVisited); + } + this$static.edges = theEdges; + this$static.treeEdges = new LinkedHashSet_0(capacity_0(this$static.edges.array.length)); + this$static.postOrder = 1; +} + +function $isInHead(this$static, node, edge){ + var source, target; + source = edge.source; + target = edge.target; + if (this$static.lowestPoID[source.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[source.internalId] && this$static.lowestPoID[target.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[target.internalId]) { + if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { + return false; + } + return true; + } + if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { + return true; + } + return false; +} + +function $layeringTopologicalNumbering(this$static, initialRootNodes){ + var edge, edge$iterator, incident, node, node$iterator, roots, target; + incident = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.graph_0.nodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + incident[node.internalId] += node.incomingEdges.list.array.length; + } + roots = newLinkedList(initialRootNodes); + while (roots.size_0 != 0) { + node = castTo(roots.size_0 == 0?null:(checkCriticalElement(roots.size_0 != 0) , $removeNode_0(roots, roots.header.next_0)), 121); + for (edge$iterator = unmodifiableIterator(new ArrayList$1(node.outgoingEdges.list)); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + target = edge.target; + target.layer = $wnd.Math.max(target.layer, node.layer + edge.delta); + --incident[target.internalId]; + incident[target.internalId] == 0 && ($addNode_0(roots, target, roots.tail.prev, roots.tail) , true); + } + } +} + +function $leaveEdge(this$static){ + var edge, edge$iterator; + for (edge$iterator = this$static.treeEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + if (edge.treeEdge && this$static.cutvalue[edge.internalId] < -1.0E-10) { + return edge; + } + } + return null; +} + +function $minimalSlack(this$static){ + var curSlack, edge, edge$iterator, minSlack, minSlackEdge; + minSlack = $intern_0; + minSlackEdge = null; + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.source.treeNode ^ edge.target.treeNode) { + curSlack = edge.target.layer - edge.source.layer - edge.delta; + if (curSlack < minSlack) { + minSlack = curSlack; + minSlackEdge = edge; + } + } + } + return minSlackEdge; +} + +function $minimalSpan(node){ + var currentSpan, edge, edge$iterator, minSpanIn, minSpanOut; + minSpanOut = $intern_0; + minSpanIn = $intern_0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + currentSpan = edge.target.layer - edge.source.layer; + edge.target == node && currentSpan < minSpanIn?(minSpanIn = currentSpan):currentSpan < minSpanOut && (minSpanOut = currentSpan); + } + minSpanIn == $intern_0 && (minSpanIn = -1); + minSpanOut == $intern_0 && (minSpanOut = -1); + return new Pair(valueOf_4(minSpanIn), valueOf_4(minSpanOut)); +} + +function $normalize(this$static){ + var filling, highest, layerID, lowest, node, node$iterator, node$iterator0, nodeCntInLayer, nodeCntInLayer$array, nodeCntInLayer$index, nodeCntInLayer$max; + highest = $intern_42; + lowest = $intern_0; + for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 121); + lowest = $wnd.Math.min(lowest, node.layer); + highest = $wnd.Math.max(highest, node.layer); + } + filling = initUnidimensionalArray(I_classLit, $intern_48, 25, highest - lowest + 1, 15, 1); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.layer -= lowest; + ++filling[node.layer]; + } + layerID = 0; + if (this$static.previousLayeringNodeCounts != null) { + for (nodeCntInLayer$array = this$static.previousLayeringNodeCounts , nodeCntInLayer$index = 0 , nodeCntInLayer$max = nodeCntInLayer$array.length; nodeCntInLayer$index < nodeCntInLayer$max; ++nodeCntInLayer$index) { + nodeCntInLayer = nodeCntInLayer$array[nodeCntInLayer$index]; + filling[layerID++] += nodeCntInLayer; + if (filling.length == layerID) { + break; + } + } + } + return filling; +} + +function $postorderTraversal(this$static, node){ + var edge, edge$iterator, lowest; + lowest = $intern_0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.treeEdge && !this$static.edgeVisited[edge.internalId]) { + this$static.edgeVisited[edge.internalId] = true; + lowest = $wnd.Math.min(lowest, $postorderTraversal(this$static, $getOther(edge, node))); + } + } + this$static.poID[node.internalId] = this$static.postOrder; + this$static.lowestPoID[node.internalId] = $wnd.Math.min(lowest, this$static.postOrder++); + return this$static.lowestPoID[node.internalId]; +} + +function $reattachSubtrees(this$static){ + var edge, leafy, node, placed; + while (!$isEmpty(this$static.subtreeNodesStack)) { + leafy = castTo($removeFirst(this$static.subtreeNodesStack), 46); + node = castTo(leafy.first, 121); + edge = castTo(leafy.second, 213); + placed = $getOther(edge, node); + if (edge.target == node) { + $add_11(placed.outgoingEdges, edge); + node.layer = placed.layer + edge.delta; + } + else { + $add_11(placed.incomingEdges, edge); + node.layer = placed.layer - edge.delta; + } + $add_3(this$static.graph_0.nodes, node); + } +} + +function $removeSubtrees(this$static){ + var edge, isOutEdge, leafs, leafy, node, node$iterator, other; + this$static.subtreeNodesStack = new ArrayDeque; + leafs = new LinkedList; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + $getConnectedEdges(node).array.length == 1 && ($addNode_0(leafs, node, leafs.tail.prev, leafs.tail) , true); + } + while (leafs.size_0 != 0) { + node = castTo(leafs.size_0 == 0?null:(checkCriticalElement(leafs.size_0 != 0) , $removeNode_0(leafs, leafs.header.next_0)), 121); + if ($getConnectedEdges(node).array.length == 0) { + continue; + } + edge = castTo($get_11($getConnectedEdges(node), 0), 213); + isOutEdge = node.outgoingEdges.list.array.length > 0; + other = $getOther(edge, node); + isOutEdge?$remove_29(other.incomingEdges, edge):$remove_29(other.outgoingEdges, edge); + $getConnectedEdges(other).array.length == 1 && ($addNode_0(leafs, other, leafs.tail.prev, leafs.tail) , true); + leafy = new Pair(node, edge); + $addFirst(this$static.subtreeNodesStack, leafy); + $remove_12(this$static.graph_0.nodes, node); + } +} + +function $tightTreeDFS(this$static, node){ + var edge, edge$iterator, nodeCount, opposite; + nodeCount = 1; + node.treeNode = true; + opposite = null; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (!this$static.edgeVisited[edge.internalId]) { + this$static.edgeVisited[edge.internalId] = true; + opposite = $getOther(edge, node); + if (edge.treeEdge) { + nodeCount += $tightTreeDFS(this$static, opposite); + } + else if (!opposite.treeNode && edge.delta == edge.target.layer - edge.source.layer) { + edge.treeEdge = true; + $add_6(this$static.treeEdges, edge); + nodeCount += $tightTreeDFS(this$static, opposite); + } + } + } + return nodeCount; +} + +function $withBalancing(this$static, doBalance){ + this$static.balance = doBalance; + return this$static; +} + +function $withIterationLimit(this$static, limit){ + this$static.iterationLimit = limit; + return this$static; +} + +function $withPreviousLayering(this$static, considerPreviousLayering){ + this$static.previousLayeringNodeCounts = considerPreviousLayering; + return this$static; +} + +function NetworkSimplex(){ +} + +function forGraph(graph){ + var ns; + ns = new NetworkSimplex; + ns.graph_0 = graph; + return ns; +} + +defineClass(1630, 1, {}, NetworkSimplex); +_.balance = false; +_.iterationLimit = $intern_0; +_.postOrder = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NetworkSimplex_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NetworkSimplex', 1630); +function calculateLabelAndNodeSizes(adapter){ + $forEach_1(adapter.getNodes(), new NodeLabelAndSizeCalculator$lambda$0$Type(adapter)); +} + +function sortPortLists(adapter){ + var node, node$iterator; + for (node$iterator = new ArrayList$1($getNodes(adapter)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 680); + node.sortPortList(); + } +} + +function computeInsideNodeLabelPadding(node, layoutDirection){ + var col, col$array, col$array0, col$index, col$index0, col$max, col$max0, labelCell, labelCellContainer, nodeContext, padding, row, row$array, row$array0, row$index, row$index0, row$max, row$max0; + nodeContext = new NodeContext(node); + createNodeLabelCells(nodeContext, !(layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1)); + labelCellContainer = nodeContext.insideNodeLabelContainer; + padding = new ElkPadding; + for (col$array0 = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , col$index0 = 0 , col$max0 = col$array0.length; col$index0 < col$max0; ++col$index0) { + col = col$array0[col$index0]; + labelCell = $getCell(labelCellContainer, BEGIN, col); + !!labelCell && (padding.top_0 = $wnd.Math.max(padding.top_0, labelCell.getMinimumHeight())); + } + for (col$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , col$index = 0 , col$max = col$array.length; col$index < col$max; ++col$index) { + col = col$array[col$index]; + labelCell = $getCell(labelCellContainer, END, col); + !!labelCell && (padding.bottom = $wnd.Math.max(padding.bottom, labelCell.getMinimumHeight())); + } + for (row$array0 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index0 = 0 , row$max0 = row$array0.length; row$index0 < row$max0; ++row$index0) { + row = row$array0[row$index0]; + labelCell = $getCell(labelCellContainer, row, BEGIN); + !!labelCell && (padding.left = $wnd.Math.max(padding.left, labelCell.getMinimumWidth())); + } + for (row$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + labelCell = $getCell(labelCellContainer, row, END); + !!labelCell && (padding.right = $wnd.Math.max(padding.right, labelCell.getMinimumWidth())); + } + if (padding.top_0 > 0) { + padding.top_0 += labelCellContainer.padding.top_0; + padding.top_0 += labelCellContainer.gap; + } + if (padding.bottom > 0) { + padding.bottom += labelCellContainer.padding.bottom; + padding.bottom += labelCellContainer.gap; + } + if (padding.left > 0) { + padding.left += labelCellContainer.padding.left; + padding.left += labelCellContainer.gap; + } + if (padding.right > 0) { + padding.right += labelCellContainer.padding.right; + padding.right += labelCellContainer.gap; + } + return padding; +} + +function process(graph, node, applyStuff, ignoreInsidePortLabels){ + var horizontalLayoutMode, layoutDirection, minSize, nodeContext, outerNodeLabelsOverhang; + nodeContext = new NodeContext(node); + createPortContexts(nodeContext, ignoreInsidePortLabels); + horizontalLayoutMode = true; + if (!!graph && graph.hasProperty(($clinit_CoreOptions() , DIRECTION_0))) { + layoutDirection = castTo(graph.getProperty(($clinit_CoreOptions() , DIRECTION_0)), 103); + horizontalLayoutMode = layoutDirection == ($clinit_Direction_0() , UNDEFINED_2) || layoutDirection == LEFT_6 || layoutDirection == RIGHT_6; + } + createNodeLabelCellContainers(nodeContext, false); + $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, false, horizontalLayoutMode)); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, ($clinit_ContainerArea() , BEGIN), ($clinit_PortSide() , NORTH_3)); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, END, SOUTH_2); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, BEGIN, WEST_2); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, END, EAST_2); + setupNorthOrSouthPortLabelCell(nodeContext, NORTH_3); + setupNorthOrSouthPortLabelCell(nodeContext, SOUTH_2); + setupEastOrWestPortLabelCell(nodeContext, EAST_2); + setupEastOrWestPortLabelCell(nodeContext, WEST_2); + $clinit_NodeLabelAndSizeUtilities(); + minSize = nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE)) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))?getMinimumNodeOrClientAreaSize(nodeContext):null; + !!minSize && $setCenterCellMinimumSize(nodeContext.insideNodeLabelContainer, minSize); + setupNodePaddingForPortsWithOffset(nodeContext); + calculateHorizontalPortPlacementSize(nodeContext); + calculateVerticalPortPlacementSize(nodeContext); + configureCellSystemSizeContributions(nodeContext); + setNodeWidth(nodeContext); + placeHorizontalPorts(nodeContext); + placePortLabels(nodeContext, NORTH_3); + placePortLabels(nodeContext, SOUTH_2); + updateVerticalInsidePortLabelCellPadding(nodeContext); + setNodeHeight(nodeContext); + if (!applyStuff) { + return nodeContext.nodeSize; + } + offsetSouthernPortsByNodeSize(nodeContext); + placeVerticalPorts(nodeContext); + placePortLabels(nodeContext, EAST_2); + placePortLabels(nodeContext, WEST_2); + outerNodeLabelsOverhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); + placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, NORTH_3); + placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, SOUTH_2); + placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, EAST_2); + placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, WEST_2); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$2(nodeContext.nodeLabelCells), 0)), new LabelPlacer$lambda$0$Type); + $forEach_3($filter(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new LabelPlacer$lambda$1$Type), new LabelPlacer$lambda$2$Type); + setNodePadding(nodeContext); + nodeContext.node.setSize(nodeContext.nodeSize); + $forEach_3(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new NodeLabelAndSizeUtilities$lambda$0$Type); + return nodeContext.nodeSize; +} + +function NodeLabelAndSizeCalculator$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1294, 1, $intern_19, NodeLabelAndSizeCalculator$lambda$0$Type); +_.accept = function accept_45(arg0){ + process(this.graph_0, castTo(arg0, 680), true, false); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_NodeLabelAndSizeCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeLabelAndSizeCalculator/lambda$0$Type', 1294); +function $computeLabelBox(labelBox, label_0, incomingEdge, node, port, portLabelSpace, labelSpacing){ + labelBox.x_0 = node.getPosition().x_0; + labelBox.y_0 = node.getPosition().y_0; + if (port) { + labelBox.x_0 += port.getPosition().x_0; + labelBox.y_0 += port.getPosition().y_0; + } + labelBox.width_0 = label_0.getSize().x_0; + labelBox.height = label_0.getSize().y_0; + if (!port) { + incomingEdge?(labelBox.x_0 -= labelSpacing + label_0.getSize().x_0):(labelBox.x_0 += node.getSize().x_0 + labelSpacing); + } + else { + switch (port.getSide().ordinal) { + case 0: + case 2: + labelBox.x_0 += port.getSize().x_0 + labelSpacing + portLabelSpace.x_0 + labelSpacing; + break; + case 4: + labelBox.x_0 -= labelSpacing + portLabelSpace.x_0 + labelSpacing + label_0.getSize().x_0; + break; + case 1: + labelBox.x_0 += port.getSize().x_0 + labelSpacing; + labelBox.y_0 -= labelSpacing + portLabelSpace.y_0 + labelSpacing + label_0.getSize().y_0; + break; + case 3: + labelBox.x_0 += port.getSize().x_0 + labelSpacing; + labelBox.y_0 += port.getSize().y_0 + labelSpacing + portLabelSpace.y_0 + labelSpacing; + } + } +} + +function $excludeEdgeHeadTailLabels(this$static){ + this$static.includeEdgeHeadTailLabels = false; + return this$static; +} + +function $process(this$static){ + var node, node$iterator, spacing; + spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); + for (node$iterator = new ArrayList$1(this$static.adapter.getNodes()); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 680); + $processNode_0(this$static, node, spacing); + } +} + +function $processEdgeHeadTailLabels(boundingBox, outgoingEdges, incomingEdges, node, port, portLabelSpace, labelSpacing){ + var edge, edge$iterator, edge$iterator0, label_0, label$iterator, labelBox; + labelBox = new ElkRectangle; + for (edge$iterator0 = outgoingEdges.iterator_0(); edge$iterator0.hasNext_0();) { + edge = castTo(edge$iterator0.next_1(), 839); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL))) { + $computeLabelBox(labelBox, label_0, false, node, port, portLabelSpace, labelSpacing); + $union(boundingBox, labelBox); + } + } + } + for (edge$iterator = incomingEdges.iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 839); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { + $computeLabelBox(labelBox, label_0, true, node, port, portLabelSpace, labelSpacing); + $union(boundingBox, labelBox); + } + } + } +} + +function $processNode(this$static, node){ + var spacing; + spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); + $processNode_0(this$static, node, spacing); +} + +function $processNode_0(this$static, node, labelSpacing){ + var boundingBox, elementBox, label_0, label$iterator, margin, port, port$iterator, portX, portY, requiredPortLabelSpace; + boundingBox = new ElkRectangle_0(node.getPosition().x_0, node.getPosition().y_0, node.getSize().x_0, node.getSize().y_0); + elementBox = new ElkRectangle; + if (this$static.includeLabels) { + for (label$iterator = new ArrayList$1(node.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + elementBox.x_0 = label_0.getPosition().x_0 + node.getPosition().x_0; + elementBox.y_0 = label_0.getPosition().y_0 + node.getPosition().y_0; + elementBox.width_0 = label_0.getSize().x_0; + elementBox.height = label_0.getSize().y_0; + $union(boundingBox, elementBox); + } + } + for (port$iterator = new ArrayList$1(node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 838); + portX = port.getPosition().x_0 + node.getPosition().x_0; + portY = port.getPosition().y_0 + node.getPosition().y_0; + if (this$static.includePorts) { + elementBox.x_0 = portX; + elementBox.y_0 = portY; + elementBox.width_0 = port.getSize().x_0; + elementBox.height = port.getSize().y_0; + $union(boundingBox, elementBox); + } + if (this$static.includePortLabels) { + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + elementBox.x_0 = label_0.getPosition().x_0 + portX; + elementBox.y_0 = label_0.getPosition().y_0 + portY; + elementBox.width_0 = label_0.getSize().x_0; + elementBox.height = label_0.getSize().y_0; + $union(boundingBox, elementBox); + } + } + if (this$static.includeEdgeHeadTailLabels) { + requiredPortLabelSpace = new KVector_1(-labelSpacing, -labelSpacing); + if (castTo(node.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).contains(($clinit_PortLabelPlacement() , OUTSIDE_0))) { + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + requiredPortLabelSpace.x_0 += label_0.getSize().x_0 + labelSpacing; + requiredPortLabelSpace.y_0 += label_0.getSize().y_0 + labelSpacing; + } + } + requiredPortLabelSpace.x_0 = $wnd.Math.max(requiredPortLabelSpace.x_0, 0); + requiredPortLabelSpace.y_0 = $wnd.Math.max(requiredPortLabelSpace.y_0, 0); + $processEdgeHeadTailLabels(boundingBox, port.getOutgoingEdges(), port.getIncomingEdges(), node, port, requiredPortLabelSpace, labelSpacing); + } + } + this$static.includeEdgeHeadTailLabels && $processEdgeHeadTailLabels(boundingBox, node.getOutgoingEdges(), node.getIncomingEdges(), node, null, null, labelSpacing); + margin = new ElkMargin_2(node.getMargin()); + margin.top_0 = $wnd.Math.max(0, node.getPosition().y_0 - boundingBox.y_0); + margin.bottom = $wnd.Math.max(0, boundingBox.y_0 + boundingBox.height - (node.getPosition().y_0 + node.getSize().y_0)); + margin.left = $wnd.Math.max(0, node.getPosition().x_0 - boundingBox.x_0); + margin.right = $wnd.Math.max(0, boundingBox.x_0 + boundingBox.width_0 - (node.getPosition().x_0 + node.getSize().x_0)); + node.setMargin(margin); +} + +function NodeMarginCalculator(adapter){ + this.adapter = adapter; +} + +defineClass(558, 1, {}, NodeMarginCalculator); +_.includeEdgeHeadTailLabels = true; +_.includeLabels = true; +_.includePortLabels = true; +_.includePorts = true; +var Lorg_eclipse_elk_alg_common_nodespacing_NodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeMarginCalculator', 558); +function $setContributesToMinimumHeight(this$static, contributesToMinimumHeight){ + this$static.contributesToMinimumHeight = contributesToMinimumHeight; +} + +function Cell(){ + this.padding = new ElkPadding; + this.cellRectangle = new ElkRectangle; +} + +defineClass(212, 1, {212:1}); +_.contributesToMinimumHeight = false; +_.contributesToMinimumWidth = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'Cell', 212); +function $getMinimumHeight(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; +} + +function AtomicCell(){ + Cell.call(this); + this.minimumContentAreaSize = new KVector; +} + +defineClass(124, 212, {124:1, 212:1}, AtomicCell); +_.getMinimumHeight = function getMinimumHeight(){ + return $getMinimumHeight(this); +} +; +_.getMinimumWidth = function getMinimumWidth(){ + var padding; + padding = this.padding; + return this.minimumContentAreaSize.x_0 + padding.left + padding.right; +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_AtomicCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'AtomicCell', 124); +function $clinit_ContainerArea(){ + $clinit_ContainerArea = emptyMethod; + BEGIN = new ContainerArea('BEGIN', 0); + CENTER = new ContainerArea('CENTER', 1); + END = new ContainerArea('END', 2); +} + +function ContainerArea(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_17(name_0){ + $clinit_ContainerArea(); + return valueOf(($clinit_ContainerArea$Map() , $MAP_5), name_0); +} + +function values_23(){ + $clinit_ContainerArea(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]); +} + +defineClass(232, 22, {3:1, 35:1, 22:1, 232:1}, ContainerArea); +var BEGIN, CENTER, END; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerArea', 232, Ljava_lang_Enum_2_classLit, values_23, valueOf_17); +function $clinit_ContainerArea$Map(){ + $clinit_ContainerArea$Map = emptyMethod; + $MAP_5 = createValueOfMap(($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]))); +} + +var $MAP_5; +function $applyHorizontalLayout(cell, x_0, width_0){ + var cellRect; + if (cell) { + cellRect = cell.cellRectangle; + cellRect.x_0 = x_0; + cellRect.width_0 = width_0; + } +} + +function $applyVerticalLayout(cell, y_0, height){ + var cellRect; + if (cell) { + cellRect = cell.cellRectangle; + cellRect.y_0 = y_0; + cellRect.height = height; + } +} + +function ContainerCell(){ + Cell.call(this); +} + +function minHeightOfCell(cell, respectContributionFlag){ + if (!cell) { + return 0; + } + if (respectContributionFlag && !cell.contributesToMinimumHeight) { + return 0; + } + if (instanceOf(cell, 124)) { + if (castTo(cell, 124).minimumContentAreaSize.y_0 == 0) { + return 0; + } + } + return cell.getMinimumHeight(); +} + +function minWidthOfCell(cell, respectContributionFlag){ + if (!cell) { + return 0; + } + if (respectContributionFlag && !cell.contributesToMinimumWidth) { + return 0; + } + if (instanceOf(cell, 124)) { + if (castTo(cell, 124).minimumContentAreaSize.x_0 == 0) { + return 0; + } + } + return cell.getMinimumWidth(); +} + +defineClass(326, 212, $intern_92); +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerCell', 326); +function $clinit_GridContainerCell(){ + $clinit_GridContainerCell = emptyMethod; + ROWS = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length; + COLUMNS = ROWS; +} + +function $applyHeightToRow(this$static, row, y_0, rowHeights){ + var column; + for (column = 0; column < COLUMNS; column++) { + $applyVerticalLayout(this$static.cells_0[row.ordinal][column], y_0, rowHeights[row.ordinal]); + } +} + +function $applyWidthToColumn(this$static, column, x_0, colWidths){ + var row; + for (row = 0; row < ROWS; row++) { + $applyHorizontalLayout(this$static.cells_0[row][column.ordinal], x_0, colWidths[column.ordinal]); + } +} + +function $applyWidthsToRow(this$static, row, colWidths){ + var cellPadding, cellRectangle, centerWidth, freeContentAreaWidth; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + $applyWidthToColumn(this$static, ($clinit_ContainerArea() , BEGIN), cellRectangle.x_0 + cellPadding.left, colWidths); + $applyWidthToColumn(this$static, END, cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - colWidths[2], colWidths); + freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + if (colWidths[0] > 0) { + colWidths[0] += this$static.gap; + freeContentAreaWidth -= colWidths[0]; + } + if (colWidths[2] > 0) { + colWidths[2] += this$static.gap; + freeContentAreaWidth -= colWidths[2]; + } + centerWidth = $wnd.Math.max(0, freeContentAreaWidth); + colWidths[1] = $wnd.Math.max(colWidths[1], freeContentAreaWidth); + $applyWidthToColumn(this$static, CENTER, cellRectangle.x_0 + cellPadding.left + colWidths[0] - (colWidths[1] - freeContentAreaWidth) / 2, colWidths); + if (row == CENTER) { + this$static.centerCellRect.width_0 = centerWidth; + this$static.centerCellRect.x_0 = cellRectangle.x_0 + cellPadding.left + (centerWidth - freeContentAreaWidth) / 2; + } +} + +function $getCell(this$static, row, col){ + return this$static.cells_0[row.ordinal][col.ordinal]; +} + +function $minColumnWidths(this$static, row, respectContributionFlag){ + var colWidths; + colWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minWidthOfColumn(this$static, ($clinit_ContainerArea() , BEGIN), row, respectContributionFlag), $minWidthOfColumn(this$static, CENTER, row, respectContributionFlag), $minWidthOfColumn(this$static, END, row, respectContributionFlag)]); + if (this$static.symmetrical) { + colWidths[0] = $wnd.Math.max(colWidths[0], colWidths[2]); + colWidths[2] = colWidths[0]; + } + return colWidths; +} + +function $minHeightOfRow(this$static, row, respectContributionFlag){ + var column, maxMinHeight; + maxMinHeight = 0; + for (column = 0; column < COLUMNS; column++) { + maxMinHeight = $wnd.Math.max(maxMinHeight, minHeightOfCell(this$static.cells_0[row.ordinal][column], respectContributionFlag)); + } + row == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinHeight = $wnd.Math.max(maxMinHeight, this$static.centerCellMinimumSize.y_0)); + return maxMinHeight; +} + +function $minRowHeights(this$static, respectContributionFlag){ + var rowHeights; + rowHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minHeightOfRow(this$static, ($clinit_ContainerArea() , BEGIN), respectContributionFlag), $minHeightOfRow(this$static, CENTER, respectContributionFlag), $minHeightOfRow(this$static, END, respectContributionFlag)]); + if (this$static.symmetrical) { + rowHeights[0] = $wnd.Math.max(rowHeights[0], rowHeights[2]); + rowHeights[2] = rowHeights[0]; + } + return rowHeights; +} + +function $minWidthOfColumn(this$static, column, row, respectContributionFlag){ + var maxMinWidth, rowIndex; + maxMinWidth = 0; + if (!row) { + for (rowIndex = 0; rowIndex < ROWS; rowIndex++) { + maxMinWidth = $wnd.Math.max(maxMinWidth, minWidthOfCell(this$static.cells_0[rowIndex][column.ordinal], respectContributionFlag)); + } + } + else { + maxMinWidth = minWidthOfCell(this$static.cells_0[row.ordinal][column.ordinal], respectContributionFlag); + } + column == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinWidth = $wnd.Math.max(maxMinWidth, this$static.centerCellMinimumSize.x_0)); + return maxMinWidth; +} + +function $setCell(this$static, row, col, cell){ + setCheck(this$static.cells_0[row.ordinal], col.ordinal, cell); +} + +function $setCenterCellMinimumSize(this$static, minimumSize){ + this$static.centerCellMinimumSize = new KVector_2(minimumSize); +} + +function $sumWithGaps(this$static, values){ + var activeComponents, sum, val, val$array, val$index, val$max; + sum = 0; + activeComponents = 0; + for (val$array = values , val$index = 0 , val$max = val$array.length; val$index < val$max; ++val$index) { + val = val$array[val$index]; + if (val > 0) { + sum += val; + ++activeComponents; + } + } + activeComponents > 1 && (sum += this$static.gap * (activeComponents - 1)); + return sum; +} + +function GridContainerCell(tabular, symmetrical, gap){ + $clinit_GridContainerCell(); + ContainerCell.call(this); + this.cells_0 = initMultidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, [$intern_16, $intern_93], [595, 212], 0, [ROWS, COLUMNS], 2); + this.centerCellRect = new ElkRectangle; + this.tabular = tabular; + this.symmetrical = symmetrical; + this.gap = gap; +} + +defineClass(1473, 326, $intern_92, GridContainerCell); +_.getMinimumHeight = function getMinimumHeight_0(){ + var height; + height = 0; + this.onlyCenterCellContributesToMinimumSize?this.centerCellMinimumSize?(height = this.centerCellMinimumSize.y_0):!!this.cells_0[1][1] && (height = this.cells_0[1][1].getMinimumHeight()):(height = $sumWithGaps(this, $minRowHeights(this, true))); + return height > 0?height + this.padding.top_0 + this.padding.bottom:0; +} +; +_.getMinimumWidth = function getMinimumWidth_0(){ + var area, area$array, area$index, area$max, width_0; + width_0 = 0; + if (this.onlyCenterCellContributesToMinimumSize) { + this.centerCellMinimumSize?(width_0 = this.centerCellMinimumSize.x_0):!!this.cells_0[1][1] && (width_0 = this.cells_0[1][1].getMinimumWidth()); + } + else if (this.tabular) { + width_0 = $sumWithGaps(this, $minColumnWidths(this, null, true)); + } + else { + for (area$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { + area = area$array[area$index]; + width_0 = $wnd.Math.max(width_0, $sumWithGaps(this, $minColumnWidths(this, area, true))); + } + } + return width_0 > 0?width_0 + this.padding.left + this.padding.right:0; +} +; +_.layoutChildrenHorizontally = function layoutChildrenHorizontally(){ + var colWidths, row, row$array, row$index, row$max; + if (this.tabular) { + colWidths = $minColumnWidths(this, null, false); + for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + $applyWidthsToRow(this, row, colWidths); + } + } + else { + for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + colWidths = $minColumnWidths(this, row, false); + $applyWidthsToRow(this, row, colWidths); + } + } +} +; +_.layoutChildrenVertically = function layoutChildrenVertically(){ + var cellPadding, cellRectangle, freeContentAreaHeight, rowHeights; + cellRectangle = this.cellRectangle; + cellPadding = this.padding; + rowHeights = $minRowHeights(this, false); + $applyHeightToRow(this, ($clinit_ContainerArea() , BEGIN), cellRectangle.y_0 + cellPadding.top_0, rowHeights); + $applyHeightToRow(this, END, cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - rowHeights[2], rowHeights); + freeContentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + if (rowHeights[0] > 0) { + rowHeights[0] += this.gap; + freeContentAreaHeight -= rowHeights[0]; + } + if (rowHeights[2] > 0) { + rowHeights[2] += this.gap; + freeContentAreaHeight -= rowHeights[2]; + } + this.centerCellRect.height = $wnd.Math.max(0, freeContentAreaHeight); + this.centerCellRect.y_0 = cellRectangle.y_0 + cellPadding.top_0 + (this.centerCellRect.height - freeContentAreaHeight) / 2; + rowHeights[1] = $wnd.Math.max(rowHeights[1], freeContentAreaHeight); + $applyHeightToRow(this, CENTER, cellRectangle.y_0 + cellPadding.top_0 + rowHeights[0] - (rowHeights[1] - freeContentAreaHeight) / 2, rowHeights); +} +; +_.centerCellMinimumSize = null; +_.gap = 0; +_.onlyCenterCellContributesToMinimumSize = false; +_.symmetrical = false; +_.tabular = false; +var COLUMNS = 0, ROWS = 0; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_GridContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'GridContainerCell', 1473); +function $clinit_HorizontalLabelAlignment(){ + $clinit_HorizontalLabelAlignment = emptyMethod; + LEFT = new HorizontalLabelAlignment('LEFT', 0); + CENTER_0 = new HorizontalLabelAlignment('CENTER', 1); + RIGHT = new HorizontalLabelAlignment('RIGHT', 2); +} + +function HorizontalLabelAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_18(name_0){ + $clinit_HorizontalLabelAlignment(); + return valueOf(($clinit_HorizontalLabelAlignment$Map() , $MAP_6), name_0); +} + +function values_24(){ + $clinit_HorizontalLabelAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]); +} + +defineClass(461, 22, {3:1, 35:1, 22:1, 461:1}, HorizontalLabelAlignment); +var CENTER_0, LEFT, RIGHT; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'HorizontalLabelAlignment', 461, Ljava_lang_Enum_2_classLit, values_24, valueOf_18); +function $clinit_HorizontalLabelAlignment$Map(){ + $clinit_HorizontalLabelAlignment$Map = emptyMethod; + $MAP_6 = createValueOfMap(($clinit_HorizontalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]))); +} + +var $MAP_6; +function $$init_5(this$static){ + this$static.horizontalAlignment = ($clinit_HorizontalLabelAlignment() , CENTER_0); + this$static.verticalAlignment = ($clinit_VerticalLabelAlignment() , CENTER_1); + this$static.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this$static.minimumContentAreaSize = new KVector; +} + +function $addLabel(this$static, label_0){ + var labelSize; + $add_3(this$static.labels, label_0); + labelSize = label_0.getSize(); + if (this$static.horizontalLayoutMode) { + this$static.minimumContentAreaSize.x_0 = $wnd.Math.max(this$static.minimumContentAreaSize.x_0, labelSize.x_0); + this$static.minimumContentAreaSize.y_0 += labelSize.y_0; + this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.y_0 += this$static.gap); + } + else { + this$static.minimumContentAreaSize.x_0 += labelSize.x_0; + this$static.minimumContentAreaSize.y_0 = $wnd.Math.max(this$static.minimumContentAreaSize.y_0, labelSize.y_0); + this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.x_0 += this$static.gap); + } +} + +function $applyHorizontalModeLabelLayout(this$static){ + var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, yPos; + cellRect = this$static.cellRectangle; + cellPadding = this$static.padding; + yPos = cellRect.y_0; + this$static.verticalAlignment == ($clinit_VerticalLabelAlignment() , CENTER_1)?(yPos += (cellRect.height - this$static.minimumContentAreaSize.y_0) / 2):this$static.verticalAlignment == BOTTOM && (yPos += cellRect.height - this$static.minimumContentAreaSize.y_0); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + labelSize = label_0.getSize(); + labelPos = new KVector; + labelPos.y_0 = yPos; + yPos += labelSize.y_0 + this$static.gap; + switch (this$static.horizontalAlignment.ordinal) { + case 0: + labelPos.x_0 = cellRect.x_0 + cellPadding.left; + break; + case 1: + labelPos.x_0 = cellRect.x_0 + cellPadding.left + (cellRect.width_0 - labelSize.x_0) / 2; + break; + case 2: + labelPos.x_0 = cellRect.x_0 + cellRect.width_0 - cellPadding.right - labelSize.x_0; + } + label_0.setPosition(labelPos); + } +} + +function $applyLabelLayout(this$static){ + this$static.horizontalLayoutMode?$applyHorizontalModeLabelLayout(this$static):$applyVerticalModeLabelLayout(this$static); +} + +function $applyVerticalModeLabelLayout(this$static){ + var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, xPos; + cellRect = this$static.cellRectangle; + cellPadding = this$static.padding; + xPos = cellRect.x_0; + this$static.horizontalAlignment == ($clinit_HorizontalLabelAlignment() , CENTER_0)?(xPos += (cellRect.width_0 - this$static.minimumContentAreaSize.x_0) / 2):this$static.horizontalAlignment == RIGHT && (xPos += cellRect.width_0 - this$static.minimumContentAreaSize.x_0); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + labelSize = label_0.getSize(); + labelPos = new KVector; + labelPos.x_0 = xPos; + xPos += labelSize.x_0 + this$static.gap; + switch (this$static.verticalAlignment.ordinal) { + case 0: + labelPos.y_0 = cellRect.y_0 + cellPadding.top_0; + break; + case 1: + labelPos.y_0 = cellRect.y_0 + cellPadding.top_0 + (cellRect.height - labelSize.y_0) / 2; + break; + case 2: + labelPos.y_0 = cellRect.y_0 + cellRect.height - cellPadding.bottom - labelSize.y_0; + } + label_0.setPosition(labelPos); + } +} + +function $getMinimumHeight_0(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; +} + +function $getMinimumWidth(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.x_0 + padding.left + padding.right; +} + +function $setHorizontalAlignment(this$static, newHorizontalAlignment){ + requireNonNull(newHorizontalAlignment, 'Horizontal alignment cannot be null'); + this$static.horizontalAlignment = newHorizontalAlignment; + return this$static; +} + +function $setVerticalAlignment(this$static, newVerticalAlignment){ + requireNonNull(newVerticalAlignment, 'Vertical alignment cannot be null'); + this$static.verticalAlignment = newVerticalAlignment; + return this$static; +} + +function LabelCell(gap){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = true; +} + +function LabelCell_0(gap, nodeLabelLocation, horizontalLayoutMode){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; + this.horizontalAlignment = nodeLabelLocation.horizontalAlignment; + this.verticalAlignment = nodeLabelLocation.verticalAlignment; +} + +function LabelCell_1(gap, horizontalLayoutMode){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; +} + +defineClass(306, 212, {212:1, 306:1}, LabelCell, LabelCell_0, LabelCell_1); +_.getMinimumHeight = function getMinimumHeight_1(){ + return $getMinimumHeight_0(this); +} +; +_.getMinimumWidth = function getMinimumWidth_1(){ + return $getMinimumWidth(this); +} +; +_.gap = 0; +_.horizontalLayoutMode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'LabelCell', 306); +function $getMinimumHeight_1(this$static){ + var activeCells, cellHeight, cellHeight$array, cellHeight$index, cellHeight$max, cellHeights, height; + height = 0; + if (this$static.containerMode == 0) { + cellHeights = $minCellHeights(this$static, true); + activeCells = 0; + for (cellHeight$array = cellHeights , cellHeight$index = 0 , cellHeight$max = cellHeight$array.length; cellHeight$index < cellHeight$max; ++cellHeight$index) { + cellHeight = cellHeight$array[cellHeight$index]; + if (cellHeight > 0) { + height += cellHeight; + ++activeCells; + } + } + activeCells > 1 && (height += this$static.gap * (activeCells - 1)); + } + else { + height = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$2$Type), new StripContainerCell$lambda$3$Type))); + } + return height > 0?height + this$static.padding.top_0 + this$static.padding.bottom:0; +} + +function $getMinimumWidth_0(this$static){ + var activeCells, cellWidth, cellWidth$array, cellWidth$index, cellWidth$max, cellWidths, width_0; + width_0 = 0; + if (this$static.containerMode == 0) { + width_0 = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$0$Type), new StripContainerCell$lambda$1$Type))); + } + else { + cellWidths = $minCellWidths(this$static, true); + activeCells = 0; + for (cellWidth$array = cellWidths , cellWidth$index = 0 , cellWidth$max = cellWidth$array.length; cellWidth$index < cellWidth$max; ++cellWidth$index) { + cellWidth = cellWidth$array[cellWidth$index]; + if (cellWidth > 0) { + width_0 += cellWidth; + ++activeCells; + } + } + activeCells > 1 && (width_0 += this$static.gap * (activeCells - 1)); + } + return width_0 > 0?width_0 + this$static.padding.left + this$static.padding.right:0; +} + +function $layoutChildrenHorizontally(this$static){ + var cellPadding, cellRectangle, cellWidths, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, freeContentAreaWidth, width_0, xPos; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + if (this$static.containerMode == 0) { + xPos = cellRectangle.x_0 + cellPadding.left; + width_0 = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { + childCell = childCell$array0[childCell$index0]; + $applyHorizontalLayout(childCell, xPos, width_0); + } + } + else { + cellWidths = $minCellWidths(this$static, false); + $applyHorizontalLayout(this$static.cells_0[0], cellRectangle.x_0 + cellPadding.left, cellWidths[0]); + $applyHorizontalLayout(this$static.cells_0[2], cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - cellWidths[2], cellWidths[2]); + freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + if (cellWidths[0] > 0) { + freeContentAreaWidth -= cellWidths[0] + this$static.gap; + cellWidths[0] += this$static.gap; + } + cellWidths[2] > 0 && (freeContentAreaWidth -= cellWidths[2] + this$static.gap); + cellWidths[1] = $wnd.Math.max(cellWidths[1], freeContentAreaWidth); + $applyHorizontalLayout(this$static.cells_0[1], cellRectangle.x_0 + cellPadding.left + cellWidths[0] - (cellWidths[1] - freeContentAreaWidth) / 2, cellWidths[1]); + } + for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { + childCell = childCell$array[childCell$index]; + instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenHorizontally(); + } +} + +function $layoutChildrenVertically(this$static){ + var cellHeights, cellPadding, cellRectangle, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, contentAreaFreeHeight, contentAreaHeight, height, yPos; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + if (this$static.containerMode == 0) { + cellHeights = $minCellHeights(this$static, false); + $applyVerticalLayout(this$static.cells_0[0], cellRectangle.y_0 + cellPadding.top_0, cellHeights[0]); + $applyVerticalLayout(this$static.cells_0[2], cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - cellHeights[2], cellHeights[2]); + contentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + contentAreaFreeHeight = contentAreaHeight; + if (cellHeights[0] > 0) { + cellHeights[0] += this$static.gap; + contentAreaFreeHeight -= cellHeights[0]; + } + cellHeights[2] > 0 && (contentAreaFreeHeight -= cellHeights[2] + this$static.gap); + cellHeights[1] = $wnd.Math.max(cellHeights[1], contentAreaFreeHeight); + $applyVerticalLayout(this$static.cells_0[1], cellRectangle.y_0 + cellPadding.top_0 + cellHeights[0] - (cellHeights[1] - contentAreaFreeHeight) / 2, cellHeights[1]); + } + else { + yPos = cellRectangle.y_0 + cellPadding.top_0; + height = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { + childCell = childCell$array0[childCell$index0]; + $applyVerticalLayout(childCell, yPos, height); + } + } + for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { + childCell = childCell$array[childCell$index]; + instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenVertically(); + } +} + +function $minCellHeights(this$static, respectContributionFlag){ + var cellHeights; + cellHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minHeightOfCell(this$static.cells_0[0], respectContributionFlag), minHeightOfCell(this$static.cells_0[1], respectContributionFlag), minHeightOfCell(this$static.cells_0[2], respectContributionFlag)]); + if (this$static.symmetrical) { + cellHeights[0] = $wnd.Math.max(cellHeights[0], cellHeights[2]); + cellHeights[2] = cellHeights[0]; + } + return cellHeights; +} + +function $minCellWidths(this$static, respectContributionFlag){ + var cellWidths; + cellWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minWidthOfCell(this$static.cells_0[0], respectContributionFlag), minWidthOfCell(this$static.cells_0[1], respectContributionFlag), minWidthOfCell(this$static.cells_0[2], respectContributionFlag)]); + if (this$static.symmetrical) { + cellWidths[0] = $wnd.Math.max(cellWidths[0], cellWidths[2]); + cellWidths[2] = cellWidths[0]; + } + return cellWidths; +} + +function $setCell_0(this$static, area, cell){ + this$static.cells_0[area.ordinal] = cell; +} + +function StripContainerCell(mode, symmetrical, gap){ + ContainerCell.call(this); + this.cells_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, $intern_93, 212, ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length, 0, 1); + this.containerMode = mode; + this.symmetrical = symmetrical; + this.gap = gap; +} + +function lambda$0_9(cell_0){ + return !!cell_0 && cell_0.contributesToMinimumWidth; +} + +function lambda$2(cell_0){ + return !!cell_0 && cell_0.contributesToMinimumHeight; +} + +defineClass(244, 326, {212:1, 326:1, 244:1}, StripContainerCell); +_.getMinimumHeight = function getMinimumHeight_2(){ + return $getMinimumHeight_1(this); +} +; +_.getMinimumWidth = function getMinimumWidth_2(){ + return $getMinimumWidth_0(this); +} +; +_.layoutChildrenHorizontally = function layoutChildrenHorizontally_0(){ + $layoutChildrenHorizontally(this); +} +; +_.layoutChildrenVertically = function layoutChildrenVertically_0(){ + $layoutChildrenVertically(this); +} +; +_.containerMode = 0; +_.gap = 0; +_.symmetrical = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell', 244); +function StripContainerCell$lambda$0$Type(){ +} + +defineClass(1626, 1, $intern_39, StripContainerCell$lambda$0$Type); +_.test_0 = function test_7(arg0){ + return lambda$0_9(castTo(arg0, 212)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$0$Type', 1626); +function StripContainerCell$lambda$1$Type(){ +} + +defineClass(1627, 1, {}, StripContainerCell$lambda$1$Type); +_.applyAsDouble = function applyAsDouble(arg0){ + return castTo(arg0, 212).getMinimumWidth(); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$1$Type', 1627); +function StripContainerCell$lambda$2$Type(){ +} + +defineClass(1628, 1, $intern_39, StripContainerCell$lambda$2$Type); +_.test_0 = function test_8(arg0){ + return lambda$2(castTo(arg0, 212)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$2$Type', 1628); +function StripContainerCell$lambda$3$Type(){ +} + +defineClass(1629, 1, {}, StripContainerCell$lambda$3$Type); +_.applyAsDouble = function applyAsDouble_0(arg0){ + return castTo(arg0, 212).getMinimumHeight(); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$3$Type', 1629); +function $clinit_VerticalLabelAlignment(){ + $clinit_VerticalLabelAlignment = emptyMethod; + TOP = new VerticalLabelAlignment('TOP', 0); + CENTER_1 = new VerticalLabelAlignment('CENTER', 1); + BOTTOM = new VerticalLabelAlignment('BOTTOM', 2); +} + +function VerticalLabelAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_19(name_0){ + $clinit_VerticalLabelAlignment(); + return valueOf(($clinit_VerticalLabelAlignment$Map() , $MAP_7), name_0); +} + +function values_25(){ + $clinit_VerticalLabelAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]); +} + +defineClass(462, 22, {3:1, 35:1, 22:1, 462:1}, VerticalLabelAlignment); +var BOTTOM, CENTER_1, TOP; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'VerticalLabelAlignment', 462, Ljava_lang_Enum_2_classLit, values_25, valueOf_19); +function $clinit_VerticalLabelAlignment$Map(){ + $clinit_VerticalLabelAlignment$Map = emptyMethod; + $MAP_7 = createValueOfMap(($clinit_VerticalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]))); +} + +var $MAP_7; +function $getPortAlignment(this$static, portSide){ + var alignment; + alignment = null; + switch (portSide.ordinal) { + case 1: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_NORTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_NORTH_0), 249)); + break; + case 3: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_SOUTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_SOUTH_0), 249)); + break; + case 2: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_EAST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_EAST_0), 249)); + break; + case 4: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_WEST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_WEST_0), 249)); + } + !alignment && (alignment = castTo(this$static.node.getProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_DEFAULT)), 249)); + return alignment; +} + +function NodeContext(node){ + var symmetry; + this.portContexts = create(new NodeContext$0methodref$comparePortSides$Type, new NodeContext$1methodref$comparePortContexts$Type); + this.insidePortLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); + this.outsideNodeLabelContainers = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); + this.nodeLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit), 290)); + this.node = node; + this.nodeSize = new KVector_2(node.getSize()); + this.treatAsCompoundNode = node.isCompoundNode() || $booleanValue(castToBoolean(node.getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); + this.sizeConstraints = castTo(node.getProperty(($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + this.sizeOptions = castTo(node.getProperty(NODE_SIZE_OPTIONS_6), 21); + this.portConstraints = castTo(node.getProperty(PORT_CONSTRAINTS_1), 98); + this.portLabelsPlacement = castTo(node.getProperty(PORT_LABELS_PLACEMENT_5), 21); + if (!isValid_1(this.portLabelsPlacement)) { + throw toJs(new UnsupportedConfigurationException_0('Invalid port label placement: ' + this.portLabelsPlacement)); + } + this.portLabelsTreatAsGroup = $booleanValue(castToBoolean(node.getProperty(PORT_LABELS_TREAT_AS_GROUP_0))); + this.nodeLabelPlacement = castTo(node.getProperty(NODE_LABELS_PLACEMENT_5), 21); + if (!isValid_0(this.nodeLabelPlacement)) { + throw toJs(new UnsupportedConfigurationException_0('Invalid node label placement: ' + this.nodeLabelPlacement)); + } + this.nodeLabelsPadding = castTo(getIndividualOrInherited_0(node, NODE_LABELS_PADDING_0), 116); + this.nodeLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_NODE_0))); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_LABEL_0))); + this.portPortSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_PORT_PORT_0))); + this.portLabelSpacingHorizontal = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_HORIZONTAL_0))); + this.portLabelSpacingVertical = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_VERTICAL_0))); + this.surroundingPortMargins = castTo(getIndividualOrInherited_0(node, SPACING_PORTS_SURROUNDING_0), 142); + this.labelCellSpacing = 2 * this.labelLabelSpacing; + symmetry = !this.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); + this.nodeContainer = new StripContainerCell(0, symmetry, 0); + this.nodeContainerMiddleRow = new StripContainerCell(1, symmetry, 0); + $setCell_0(this.nodeContainer, ($clinit_ContainerArea() , CENTER), this.nodeContainerMiddleRow); +} + +function comparePortContexts(portContext1, portContext2){ + var portSideComparison; + portSideComparison = comparePortSides(portContext1.port.getSide(), portContext2.port.getSide()); + if (portSideComparison != 0) { + return portSideComparison; + } + switch (portContext1.port.getSide().ordinal) { + case 1: + case 2: + return compare_5(portContext1.port.getVolatileId(), portContext2.port.getVolatileId()); + case 3: + case 4: + return compare_5(portContext2.port.getVolatileId(), portContext1.port.getVolatileId()); + } + return 0; +} + +function comparePortSides(portSide1, portSide2){ + return compare_5(portSide1.ordinal, portSide2.ordinal); +} + +defineClass(789, 1, {}, NodeContext); +_.labelCellSpacing = 0; +_.labelLabelSpacing = 0; +_.nodeLabelSpacing = 0; +_.portLabelSpacingHorizontal = 0; +_.portLabelSpacingVertical = 0; +_.portLabelsTreatAsGroup = false; +_.portPortSpacing = 0; +_.treatAsCompoundNode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext', 789); +function NodeContext$0methodref$comparePortSides$Type(){ +} + +defineClass(1471, 1, $intern_88, NodeContext$0methodref$comparePortSides$Type); +_.compare_1 = function compare_15(arg0, arg1){ + return comparePortSides(castTo(arg0, 61), castTo(arg1, 61)); +} +; +_.equals_0 = function equals_67(other){ + return this === other; +} +; +_.reversed = function reversed_7(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$0methodref$comparePortSides$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/0methodref$comparePortSides$Type', 1471); +function NodeContext$1methodref$comparePortContexts$Type(){ +} + +defineClass(1472, 1, $intern_88, NodeContext$1methodref$comparePortContexts$Type); +_.compare_1 = function compare_16(arg0, arg1){ + return comparePortContexts(castTo(arg0, 111), castTo(arg1, 111)); +} +; +_.equals_0 = function equals_68(other){ + return this === other; +} +; +_.reversed = function reversed_8(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$1methodref$comparePortContexts$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/1methodref$comparePortContexts$Type', 1472); +function $clinit_NodeLabelLocation(){ + $clinit_NodeLabelLocation = emptyMethod; + OUT_T_L = new NodeLabelLocation('OUT_T_L', 0, ($clinit_HorizontalLabelAlignment() , LEFT), ($clinit_VerticalLabelAlignment() , BOTTOM), ($clinit_ContainerArea() , BEGIN), BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(($clinit_NodeLabelPlacement() , OUTSIDE), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0]))])); + OUT_T_C = new NodeLabelLocation('OUT_T_C', 1, CENTER_0, BOTTOM, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); + OUT_T_R = new NodeLabelLocation('OUT_T_R', 2, RIGHT, BOTTOM, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0]))])); + OUT_B_L = new NodeLabelLocation('OUT_B_L', 3, LEFT, TOP, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0]))])); + OUT_B_C = new NodeLabelLocation('OUT_B_C', 4, CENTER_0, TOP, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); + OUT_B_R = new NodeLabelLocation('OUT_B_R', 5, RIGHT, TOP, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0]))])); + OUT_L_T = new NodeLabelLocation('OUT_L_T', 6, RIGHT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_TOP_0, H_PRIORITY]))])); + OUT_L_C = new NodeLabelLocation('OUT_L_C', 7, RIGHT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0, H_PRIORITY]))])); + OUT_L_B = new NodeLabelLocation('OUT_L_B', 8, RIGHT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_BOTTOM_0, H_PRIORITY]))])); + OUT_R_T = new NodeLabelLocation('OUT_R_T', 9, LEFT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_TOP_0, H_PRIORITY]))])); + OUT_R_C = new NodeLabelLocation('OUT_R_C', 10, LEFT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0, H_PRIORITY]))])); + OUT_R_B = new NodeLabelLocation('OUT_R_B', 11, LEFT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_BOTTOM_0, H_PRIORITY]))])); + IN_T_L = new NodeLabelLocation('IN_T_L', 12, LEFT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0, H_PRIORITY]))])); + IN_T_C = new NodeLabelLocation('IN_T_C', 13, CENTER_0, TOP, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); + IN_T_R = new NodeLabelLocation('IN_T_R', 14, RIGHT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0, H_PRIORITY]))])); + IN_C_L = new NodeLabelLocation('IN_C_L', 15, LEFT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0, H_PRIORITY]))])); + IN_C_C = new NodeLabelLocation('IN_C_C', 16, CENTER_0, CENTER_1, CENTER, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0, H_PRIORITY]))])); + IN_C_R = new NodeLabelLocation('IN_C_R', 17, RIGHT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0, H_PRIORITY]))])); + IN_B_L = new NodeLabelLocation('IN_B_L', 18, LEFT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0, H_PRIORITY]))])); + IN_B_C = new NodeLabelLocation('IN_B_C', 19, CENTER_0, BOTTOM, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); + IN_B_R = new NodeLabelLocation('IN_B_R', 20, RIGHT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0, H_PRIORITY]))])); + UNDEFINED = new NodeLabelLocation('UNDEFINED', 21, null, null, null, null, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [])); +} + +function $getOutsideSide(this$static){ + switch (this$static.ordinal) { + case 0: + case 1: + case 2: + return $clinit_PortSide() , NORTH_3; + case 3: + case 4: + case 5: + return $clinit_PortSide() , SOUTH_2; + case 6: + case 7: + case 8: + return $clinit_PortSide() , WEST_2; + case 9: + case 10: + case 11: + return $clinit_PortSide() , EAST_2; + default:return $clinit_PortSide() , UNDEFINED_5; + } +} + +function $isInsideLocation(this$static){ + switch (this$static.ordinal) { + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + return true; + default:return false; + } +} + +function NodeLabelLocation(enum$name, enum$ordinal, horizontalAlignment, verticalAlignment, row, column, assignedPlacements){ + Enum.call(this, enum$name, enum$ordinal); + this.horizontalAlignment = horizontalAlignment; + this.verticalAlignment = verticalAlignment; + this.containerRow = row; + this.containerColumn = column; + this.assignedPlacements = newArrayList_1(assignedPlacements); +} + +function fromNodeLabelPlacement(labelPlacement){ + $clinit_NodeLabelLocation(); + var location_0, location$array, location$index, location$max; + for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { + location_0 = location$array[location$index]; + if ($indexOf_3(location_0.assignedPlacements, labelPlacement, 0) != -1) { + return location_0; + } + } + return UNDEFINED; +} + +function valueOf_20(name_0){ + $clinit_NodeLabelLocation(); + return valueOf(($clinit_NodeLabelLocation$Map() , $MAP_8), name_0); +} + +function values_26(){ + $clinit_NodeLabelLocation(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit, 1), $intern_36, 159, 0, [OUT_T_L, OUT_T_C, OUT_T_R, OUT_B_L, OUT_B_C, OUT_B_R, OUT_L_T, OUT_L_C, OUT_L_B, OUT_R_T, OUT_R_C, OUT_R_B, IN_T_L, IN_T_C, IN_T_R, IN_C_L, IN_C_C, IN_C_R, IN_B_L, IN_B_C, IN_B_R, UNDEFINED]); +} + +defineClass(159, 22, {3:1, 35:1, 22:1, 159:1}, NodeLabelLocation); +var IN_B_C, IN_B_L, IN_B_R, IN_C_C, IN_C_L, IN_C_R, IN_T_C, IN_T_L, IN_T_R, OUT_B_C, OUT_B_L, OUT_B_R, OUT_L_B, OUT_L_C, OUT_L_T, OUT_R_B, OUT_R_C, OUT_R_T, OUT_T_C, OUT_T_L, OUT_T_R, UNDEFINED; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeLabelLocation', 159, Ljava_lang_Enum_2_classLit, values_26, valueOf_20); +function $clinit_NodeLabelLocation$Map(){ + $clinit_NodeLabelLocation$Map = emptyMethod; + $MAP_8 = createValueOfMap(values_26()); +} + +var $MAP_8; +function $applyPortPosition(this$static){ + this$static.port.setPosition(this$static.portPosition); +} + +function PortContext(parentNodeContext, port){ + var portLabelsNextToPort; + this.portMargin = new ElkMargin; + this.port = port; + this.portPosition = new KVector_2(port.getPosition()); + portLabelsNextToPort = parentNodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + parentNodeContext.portLabelsPlacement.contains(INSIDE_0)?parentNodeContext.treatAsCompoundNode?(this.labelsNextToPort = portLabelsNextToPort && !port.hasCompoundConnections()):(this.labelsNextToPort = true):parentNodeContext.portLabelsPlacement.contains(OUTSIDE_0)?portLabelsNextToPort?(this.labelsNextToPort = !(port.getIncomingEdges().iterator_0().hasNext_0() || port.getOutgoingEdges().iterator_0().hasNext_0())):(this.labelsNextToPort = false):(this.labelsNextToPort = false); +} + +defineClass(111, 1, {111:1}, PortContext); +_.labelsNextToPort = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_PortContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'PortContext', 111); +function configureCellSystemSizeContributions(nodeContext){ + var freePortPlacement, labelCell, location_0, location$array, location$index, location$max, overhang; + if (nodeContext.sizeConstraints.isEmpty()) { + return; + } + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORTS_0))) { + castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumWidth = true; + freePortPlacement = nodeContext.portConstraints != ($clinit_PortConstraints() , FIXED_RATIO) && nodeContext.portConstraints != FIXED_POS; + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124), freePortPlacement); + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124), freePortPlacement); + $setContributesToMinimumHeight(nodeContext.nodeContainerMiddleRow, freePortPlacement); + if (nodeContext.sizeConstraints.contains(PORT_LABELS)) { + castTo($get_14(nodeContext.insidePortLabelCells, NORTH_3), 124).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124).contributesToMinimumWidth = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; + } + } + if (nodeContext.sizeConstraints.contains(NODE_LABELS)) { + nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; + nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; + overhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); + for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { + location_0 = location$array[location$index]; + labelCell = castTo($get_14(nodeContext.nodeLabelCells, location_0), 306); + if (labelCell) { + if ($isInsideLocation(location_0)) { + labelCell.contributesToMinimumHeight = true; + labelCell.contributesToMinimumWidth = true; + } + else { + labelCell.contributesToMinimumHeight = !overhang; + labelCell.contributesToMinimumWidth = !overhang; + } + } + } + } + if (nodeContext.sizeConstraints.contains(MINIMUM_SIZE) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + if (!nodeContext.insideNodeLabelContainer.contributesToMinimumHeight) { + nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; + nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; + nodeContext.insideNodeLabelContainer.onlyCenterCellContributesToMinimumSize = true; + } + } +} + +function updateVerticalInsidePortLabelCellPadding(nodeContext){ + var bottomBorderOffset, bottomPadding, eastCell, topBorderOffset, topPadding, westCell; + if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { + return; + } + topBorderOffset = nodeContext.nodeContainer.padding.top_0 + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124)) + nodeContext.labelCellSpacing; + bottomBorderOffset = nodeContext.nodeContainer.padding.bottom + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124)) + nodeContext.labelCellSpacing; + eastCell = castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124); + westCell = castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124); + topPadding = $wnd.Math.max(0, eastCell.padding.top_0 - topBorderOffset); + topPadding = $wnd.Math.max(topPadding, westCell.padding.top_0 - topBorderOffset); + bottomPadding = $wnd.Math.max(0, eastCell.padding.bottom - bottomBorderOffset); + bottomPadding = $wnd.Math.max(bottomPadding, westCell.padding.bottom - bottomBorderOffset); + eastCell.padding.top_0 = topPadding; + westCell.padding.top_0 = topPadding; + eastCell.padding.bottom = bottomPadding; + westCell.padding.bottom = bottomPadding; +} + +function calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ + var cell, portContext, portContext$iterator, rightmostPortBorder; + rightmostPortBorder = 0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + rightmostPortBorder = $wnd.Math.max(rightmostPortBorder, portContext.portPosition.x_0 + portContext.port.getSize().x_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + cell.padding.left = 0; + cell.minimumContentAreaSize.x_0 = rightmostPortBorder; +} + +function calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ + var cell, currentPortContext, currentPortRatio, currentPortWidth, minWidth, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortRatio, previousPortWidth, requiredSpace; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.isEmpty()) { + cell.padding.left = 0; + cell.padding.right = 0; + return; + } + portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + minWidth = 0; + portContextIterator = portContexts.iterator_0(); + previousPortContext = null; + previousPortRatio = 0; + previousPortWidth = 0; + while (portContextIterator.hasNext_0()) { + currentPortContext = castTo(portContextIterator.next_1(), 111); + currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); + currentPortWidth = currentPortContext.port.getSize().x_0; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); + if (!previousPortContext) { + !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.left > 0 && (minWidth = $wnd.Math.max(minWidth, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.left + currentPortContext.portMargin.left, currentPortRatio))); + } + else { + requiredSpace = previousPortWidth + previousPortContext.portMargin.right + nodeContext.portPortSpacing + currentPortContext.portMargin.left; + minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); + } + previousPortContext = currentPortContext; + previousPortRatio = currentPortRatio; + previousPortWidth = currentPortWidth; + } + if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.right > 0) { + requiredSpace = previousPortWidth + nodeContext.surroundingPortMargins.right; + portLabelsInside && (requiredSpace += previousPortContext.portMargin.right); + minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); + } + cell.padding.left = 0; + cell.minimumContentAreaSize.x_0 = minWidth; +} + +function calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, portSide){ + var cell, width_0; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + cell.padding.left = 0; + cell.padding.right = 0; + return; + } + cell.padding.left = nodeContext.surroundingPortMargins.left; + cell.padding.right = nodeContext.surroundingPortMargins.right; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); + width_0 = portWidthPlusPortPortSpacing(nodeContext, portSide); + $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (width_0 += 2 * nodeContext.portPortSpacing); + cell.minimumContentAreaSize.x_0 = width_0; +} + +function calculateHorizontalPortPlacementSize(nodeContext){ + switch (nodeContext.portConstraints.ordinal) { + case 5: + calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, SOUTH_2); + break; + case 4: + calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, SOUTH_2); + break; + default:calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, SOUTH_2); + } +} + +function computeHorizontalPortMargins(nodeContext, portSide){ + var labelWidth, labelsBounds, overhang, portContext, portContext$iterator, portWidth; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + labelWidth = portContext.portLabelCell?$getMinimumWidth(portContext.portLabelCell):0; + if (labelWidth > 0) { + if (portContext.labelsNextToPort) { + portWidth = portContext.port.getSize().x_0; + if (labelWidth > portWidth) { + overhang = (labelWidth - portWidth) / 2; + portContext.portMargin.left = overhang; + portContext.portMargin.right = overhang; + } + } + else { + portContext.portMargin.right = nodeContext.portLabelSpacingHorizontal + labelWidth; + } + } + else if (isFixed(nodeContext.portLabelsPlacement)) { + labelsBounds = getLabelsBounds(portContext.port); + labelsBounds.x_0 < 0 && (portContext.portMargin.left = -labelsBounds.x_0); + labelsBounds.x_0 + labelsBounds.width_0 > portContext.port.getSize().x_0 && (portContext.portMargin.right = labelsBounds.x_0 + labelsBounds.width_0 - portContext.port.getSize().x_0); + } + } +} + +function minSizeRequiredToRespectSpacing(spacing, secondRatio){ + return $clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(0 - secondRatio) <= $intern_94 || 0 == secondRatio || isNaN(0) && isNaN(secondRatio)?0:spacing / secondRatio; +} + +function portWidthPlusPortPortSpacing(nodeContext, portSide){ + var portContext, portContextIterator, result; + result = 0; + portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 111); + result += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right; + portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); + } + return result; +} + +function setupPortMargins(nodeContext, portSide){ + var alwaysSameSide, alwaysSameSideAbove, leftmostPortContext, portContextIterator, portContexts, portLabelsOutside, rightmostPortContext, spaceEfficient, spaceEfficientPortLabels, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); + computeHorizontalPortMargins(nodeContext, portSide); + leftmostPortContext = null; + rightmostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + leftmostPortContext = castTo(portContextIterator.next_1(), 111); + rightmostPortContext = leftmostPortContext; + while (portContextIterator.hasNext_0()) { + rightmostPortContext = castTo(portContextIterator.next_1(), 111); + } + leftmostPortContext.portMargin.left = 0; + rightmostPortContext.portMargin.right = 0; + spaceEfficientPortLabels && !leftmostPortContext.labelsNextToPort && (leftmostPortContext.portMargin.right = 0); + } + if (uniformPortSpacing) { + unifyPortMargins(portContexts); + if (portLabelsOutside) { + leftmostPortContext.portMargin.left = 0; + rightmostPortContext.portMargin.right = 0; + } + } +} + +function unifyPortMargins(portContexts){ + var maxLeft, maxRight, portContext, portContext$iterator, portContext$iterator0; + maxLeft = 0; + maxRight = 0; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + maxLeft = $wnd.Math.max(maxLeft, portContext.portMargin.left); + maxRight = $wnd.Math.max(maxRight, portContext.portMargin.right); + } + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portMargin.left = maxLeft; + portContext.portMargin.right = maxRight; + } +} + +function calculateWidthDueToLabels(nodeContext, portSide){ + var minCellSize, portContext, portContext$iterator, theAppropriateCell; + theAppropriateCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + minCellSize = theAppropriateCell.minimumContentAreaSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + !!portContext.portLabelCell && (minCellSize.x_0 = $wnd.Math.max(minCellSize.x_0, $getMinimumWidth(portContext.portLabelCell))); + } + if (minCellSize.x_0 > 0) { + switch (portSide.ordinal) { + case 2: + theAppropriateCell.padding.right = nodeContext.portLabelSpacingHorizontal; + break; + case 4: + theAppropriateCell.padding.left = nodeContext.portLabelSpacingHorizontal; + } + } +} + +function createInsidePortLabelCell(nodeContext, container, containerArea, portSide){ + var portLabelCell; + portLabelCell = new AtomicCell; + container.cells_0[containerArea.ordinal] = portLabelCell; + $put_7(nodeContext.insidePortLabelCells, portSide, portLabelCell); +} + +function setupEastOrWestPortLabelCell(nodeContext, portSide){ + nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && calculateWidthDueToLabels(nodeContext, portSide); + setupTopAndBottomPadding(nodeContext, portSide); +} + +function setupNorthOrSouthPortLabelCell(nodeContext, portSide){ + var padding; + padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; + switch (portSide.ordinal) { + case 1: + nodeContext.portLabelSpacingVertical >= 0 && (padding.top_0 = nodeContext.portLabelSpacingVertical); + break; + case 3: + nodeContext.portLabelSpacingVertical >= 0 && (padding.bottom = nodeContext.portLabelSpacingVertical); + } + if (nodeContext.surroundingPortMargins) { + padding.left = nodeContext.surroundingPortMargins.left; + padding.right = nodeContext.surroundingPortMargins.right; + } +} + +function setupTopAndBottomPadding(nodeContext, portSide){ + var padding; + if (nodeContext.surroundingPortMargins) { + padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; + padding.top_0 = nodeContext.surroundingPortMargins.top_0; + padding.bottom = nodeContext.surroundingPortMargins.bottom; + } +} + +function placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ + var nodeLabelContainer, nodeLabelContainerRect, nodeSize; + nodeSize = nodeContext.nodeSize; + nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); + nodeLabelContainerRect = nodeLabelContainer.cellRectangle; + nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); + nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); + nodeLabelContainerRect.width_0 = $wnd.Math.max(nodeLabelContainerRect.width_0, nodeSize.x_0); + nodeLabelContainerRect.width_0 > nodeSize.x_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.width_0 = nodeSize.x_0); + nodeLabelContainerRect.x_0 = -(nodeLabelContainerRect.width_0 - nodeSize.x_0) / 2; + switch (portSide.ordinal) { + case 1: + nodeLabelContainerRect.y_0 = -nodeLabelContainerRect.height; + break; + case 3: + nodeLabelContainerRect.y_0 = nodeSize.y_0; + } + $layoutChildrenHorizontally(nodeLabelContainer); + $layoutChildrenVertically(nodeLabelContainer); +} + +function placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ + var nodeLabelContainer, nodeLabelContainerRect, nodeSize; + nodeSize = nodeContext.nodeSize; + nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); + nodeLabelContainerRect = nodeLabelContainer.cellRectangle; + nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); + nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); + nodeLabelContainerRect.height = $wnd.Math.max(nodeLabelContainerRect.height, nodeSize.y_0); + nodeLabelContainerRect.height > nodeSize.y_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.height = nodeSize.y_0); + nodeLabelContainerRect.y_0 = -(nodeLabelContainerRect.height - nodeSize.y_0) / 2; + switch (portSide.ordinal) { + case 4: + nodeLabelContainerRect.x_0 = -nodeLabelContainerRect.width_0; + break; + case 2: + nodeLabelContainerRect.x_0 = nodeSize.x_0; + } + $layoutChildrenHorizontally(nodeLabelContainer); + $layoutChildrenVertically(nodeLabelContainer); +} + +function LabelPlacer$lambda$0$Type(){ +} + +defineClass(1476, 1, $intern_19, LabelPlacer$lambda$0$Type); +_.accept = function accept_46(arg0){ + $applyLabelLayout(castTo(arg0, 306)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$0$Type', 1476); +function LabelPlacer$lambda$1$Type(){ +} + +defineClass(1477, 1, $intern_39, LabelPlacer$lambda$1$Type); +_.test_0 = function test_9(arg0){ + return !!castTo(arg0, 111).portLabelCell; +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$1$Type', 1477); +function LabelPlacer$lambda$2$Type(){ +} + +defineClass(1478, 1, $intern_19, LabelPlacer$lambda$2$Type); +_.accept = function accept_47(arg0){ + $applyLabelLayout(castTo(arg0, 111).portLabelCell); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$2$Type', 1478); +function $clinit_NodeLabelAndSizeUtilities(){ + $clinit_NodeLabelAndSizeUtilities = emptyMethod; + EFFECTIVELY_FIXED_SIZE_CONSTRAINTS = of_1(($clinit_SizeConstraint() , PORT_LABELS)); +} + +function getMinimumNodeOrClientAreaSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var minSize; + minSize = new KVector_2(castTo(nodeContext.node.getProperty(($clinit_CoreOptions() , NODE_SIZE_MINIMUM_5)), 8)); + if (nodeContext.sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + return minSize; +} + +function getMinimumNodeSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { + return getMinimumNodeOrClientAreaSize(nodeContext); + } + } + return null; +} + +function isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide){ + $clinit_NodeLabelAndSizeUtilities(); + var alwaysSameSide, firstPort, portContexts, spaceEfficient; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.size_1() >= 2) { + firstPort = castTo(portContexts.iterator_0().next_1(), 111); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_SAME_SIDE)); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + return !firstPort.labelsNextToPort && !alwaysSameSide && (portContexts.size_1() == 2 || spaceEfficient); + } + else { + return false; + } +} + +function offsetSouthernPortsByNodeSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var nodeHeight, portContext, portContext$iterator, portPosition; + nodeHeight = nodeContext.nodeSize.y_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, ($clinit_PortSide() , SOUTH_2)), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portPosition = portContext.portPosition; + portPosition.y_0 += nodeHeight; + } +} + +function setNodePadding(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var clientArea, nodePadding, nodeRect; + if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , COMPUTE_PADDING))) { + return; + } + nodeRect = nodeContext.nodeContainer.cellRectangle; + clientArea = new ElkRectangle_1(nodeContext.insideNodeLabelContainer.centerCellRect); + nodePadding = new ElkPadding; + nodePadding.left = clientArea.x_0 - nodeRect.x_0; + nodePadding.top_0 = clientArea.y_0 - nodeRect.y_0; + nodePadding.right = nodeRect.x_0 + nodeRect.width_0 - (clientArea.x_0 + clientArea.width_0); + nodePadding.bottom = nodeRect.y_0 + nodeRect.height - (clientArea.y_0 + clientArea.height); + nodeContext.node.setPadding(nodePadding); +} + +function setupNodePaddingForPortsWithOffset(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var insidePart, insidePartIsBigger, nodeCellPadding, portBorderOffset, portContext, portContext$iterator, symmetry; + nodeCellPadding = nodeContext.nodeContainer.padding; + for (portContext$iterator = $values_0(nodeContext.portContexts).this$01.valueIterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portBorderOffset = 0; + if (portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { + portBorderOffset = $doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))); + if (portBorderOffset < 0) { + switch (portContext.port.getSide().ordinal) { + case 1: + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, -portBorderOffset); + break; + case 3: + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, -portBorderOffset); + break; + case 2: + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, -portBorderOffset); + break; + case 4: + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, -portBorderOffset); + } + } + } + if (isFixed(nodeContext.portLabelsPlacement)) { + insidePart = computeInsidePart_0(portContext.port, portBorderOffset); + symmetry = !castTo(nodeContext.node.getProperty(NODE_SIZE_OPTIONS_6), 174).contains(($clinit_SizeOptions() , ASYMMETRICAL)); + insidePartIsBigger = false; + switch (portContext.port.getSide().ordinal) { + case 1: + insidePartIsBigger = insidePart > nodeCellPadding.top_0; + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, nodeCellPadding.bottom); + nodeCellPadding.bottom = nodeCellPadding.top_0 + portBorderOffset; + } + + break; + case 3: + insidePartIsBigger = insidePart > nodeCellPadding.bottom; + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, nodeCellPadding.top_0); + nodeCellPadding.top_0 = nodeCellPadding.bottom + portBorderOffset; + } + + break; + case 2: + insidePartIsBigger = insidePart > nodeCellPadding.right; + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); + nodeCellPadding.left = nodeCellPadding.right + portBorderOffset; + } + + break; + case 4: + insidePartIsBigger = insidePart > nodeCellPadding.left; + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); + nodeCellPadding.right = nodeCellPadding.left + portBorderOffset; + } + + } + } + } +} + +var EFFECTIVELY_FIXED_SIZE_CONSTRAINTS; +function NodeLabelAndSizeUtilities$lambda$0$Type(){ +} + +defineClass(1475, 1, $intern_19, NodeLabelAndSizeUtilities$lambda$0$Type); +_.accept = function accept_48(arg0){ + $clinit_NodeLabelAndSizeUtilities(); + $applyPortPosition(castTo(arg0, 111)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelAndSizeUtilities$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelAndSizeUtilities/lambda$0$Type', 1475); +function createNodeLabelCellContainers(nodeContext, onlyInside){ + var eastContainer, northContainer, southContainer, symmetry, tabularNodeLabels, westContainer; + symmetry = !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); + tabularNodeLabels = nodeContext.sizeOptions.contains(FORCE_TABULAR_NODE_LABELS); + nodeContext.insideNodeLabelContainer = new GridContainerCell(tabularNodeLabels, symmetry, nodeContext.labelCellSpacing); + !!nodeContext.nodeLabelsPadding && $copy(nodeContext.insideNodeLabelContainer.padding, nodeContext.nodeLabelsPadding); + $setCell_0(nodeContext.nodeContainerMiddleRow, ($clinit_ContainerArea() , CENTER), nodeContext.insideNodeLabelContainer); + if (!onlyInside) { + northContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); + northContainer.padding.bottom = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3), northContainer); + southContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); + southContainer.padding.top_0 = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, SOUTH_2, southContainer); + westContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); + westContainer.padding.right = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, WEST_2, westContainer); + eastContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); + eastContainer.padding.left = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, EAST_2, eastContainer); + } +} + +function createNodeLabelCells(nodeContext, horizontalLayoutMode){ + createNodeLabelCellContainers(nodeContext, true); + $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, true, horizontalLayoutMode)); +} + +function handleNodeLabel(nodeContext, label_0, onlyInside, horizontalLayoutMode){ + var labelLocation, labelPlacement; + labelPlacement = label_0.hasProperty(($clinit_CoreOptions() , NODE_LABELS_PLACEMENT_5))?castTo(label_0.getProperty(NODE_LABELS_PLACEMENT_5), 21):nodeContext.nodeLabelPlacement; + labelLocation = fromNodeLabelPlacement(labelPlacement); + if (labelLocation == ($clinit_NodeLabelLocation() , UNDEFINED)) { + return; + } + if (onlyInside && !$isInsideLocation(labelLocation)) { + return; + } + $addLabel(retrieveNodeLabelCell(nodeContext, labelLocation, horizontalLayoutMode), label_0); +} + +function lambda$0_10(nodeContext_0, onlyInside_1, horizontalLayoutMode_2, label_3){ + handleNodeLabel(nodeContext_0, label_3, onlyInside_1, horizontalLayoutMode_2); +} + +function retrieveNodeLabelCell(nodeContext, nodeLabelLocation, horizontalLayoutMode){ + var containerCell, nodeLabelCell, outsideSide; + nodeLabelCell = castTo($get_14(nodeContext.nodeLabelCells, nodeLabelLocation), 306); + if (!nodeLabelCell) { + nodeLabelCell = new LabelCell_0(nodeContext.labelLabelSpacing, nodeLabelLocation, horizontalLayoutMode); + $put_7(nodeContext.nodeLabelCells, nodeLabelLocation, nodeLabelCell); + if ($isInsideLocation(nodeLabelLocation)) { + $setCell(nodeContext.insideNodeLabelContainer, nodeLabelLocation.containerRow, nodeLabelLocation.containerColumn, nodeLabelCell); + } + else { + outsideSide = $getOutsideSide(nodeLabelLocation); + containerCell = castTo($get_14(nodeContext.outsideNodeLabelContainers, outsideSide), 244); + switch (outsideSide.ordinal) { + case 1: + case 3: + nodeLabelCell.contributesToMinimumHeight = true; + $setCell_0(containerCell, nodeLabelLocation.containerColumn, nodeLabelCell); + break; + case 4: + case 2: + nodeLabelCell.contributesToMinimumWidth = true; + $setCell_0(containerCell, nodeLabelLocation.containerRow, nodeLabelCell); + } + } + } + return nodeLabelCell; +} + +function NodeLabelCellCreator$lambda$0$Type(nodeContext_0, onlyInside_1, horizontalLayoutMode_2){ + this.nodeContext_0 = nodeContext_0; + this.onlyInside_1 = onlyInside_1; + this.horizontalLayoutMode_2 = horizontalLayoutMode_2; +} + +defineClass(790, 1, $intern_19, NodeLabelCellCreator$lambda$0$Type); +_.accept = function accept_49(arg0){ + lambda$0_10(this.nodeContext_0, this.onlyInside_1, this.horizontalLayoutMode_2, castTo(arg0, 181)); +} +; +_.horizontalLayoutMode_2 = false; +_.onlyInside_1 = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelCellCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelCellCreator/lambda$0$Type', 790); +function setNodeHeight(nodeContext){ + var height, minNodeSize, nodeCellRectangle, nodeSize; + nodeSize = nodeContext.nodeSize; + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { + height = nodeSize.y_0; + } + else { + height = $getMinimumHeight_1(nodeContext.nodeContainer); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , EAST_2)), 244))); + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, WEST_2), 244))); + } + minNodeSize = getMinimumNodeSize(nodeContext); + !!minNodeSize && (height = $wnd.Math.max(height, minNodeSize.y_0)); + if (nodeContext.sizeConstraints.contains(PORTS_0)) { + if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , EAST_2)), 124))); + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124))); + } + } + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.y_0 = $wnd.Math.max(nodeSize.y_0, height)):(nodeSize.y_0 = height); + nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; + nodeCellRectangle.y_0 = 0; + nodeCellRectangle.height = height; + $layoutChildrenVertically(nodeContext.nodeContainer); +} + +function setNodeWidth(nodeContext){ + var minNodeSize, nodeCellRectangle, nodeSize, width_0; + nodeSize = nodeContext.nodeSize; + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { + width_0 = nodeSize.x_0; + } + else { + width_0 = $getMinimumWidth_0(nodeContext.nodeContainer); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3)), 244))); + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, SOUTH_2), 244))); + } + minNodeSize = getMinimumNodeSize(nodeContext); + !!minNodeSize && (width_0 = $wnd.Math.max(width_0, minNodeSize.x_0)); + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.x_0 = $wnd.Math.max(nodeSize.x_0, width_0)):(nodeSize.x_0 = width_0); + nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; + nodeCellRectangle.x_0 = 0; + nodeCellRectangle.width_0 = width_0; + $layoutChildrenHorizontally(nodeContext.nodeContainer); +} + +function createPortContext(nodeContext, port, imPortLabels){ + var portContext; + portContext = new PortContext(nodeContext, port); + $put(nodeContext.portContexts, port.getSide(), portContext); + if (imPortLabels && !isFixed(nodeContext.portLabelsPlacement)) { + portContext.portLabelCell = new LabelCell(nodeContext.labelLabelSpacing); + $forEach_1(port.getLabels(), new PortContextCreator$lambda$0$Type(portContext)); + } +} + +function createPortContexts(nodeContext, ignoreInsidePortLabels){ + var imPortLabels, port, port$iterator, volatileId; + imPortLabels = !ignoreInsidePortLabels || !nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + volatileId = 0; + for (port$iterator = new ArrayList$1(nodeContext.node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 838); + if (port.getSide() == ($clinit_PortSide() , UNDEFINED_5)) { + throw toJs(new IllegalArgumentException_0('Label and node size calculator can only be used with ports that have port sides assigned.')); + } + port.setVolatileId(volatileId++); + createPortContext(nodeContext, port, imPortLabels); + } +} + +function lambda$0_11(portContext_0, label_1){ + $addLabel(portContext_0.portLabelCell, label_1); +} + +function PortContextCreator$lambda$0$Type(portContext_0){ + this.portContext_0 = portContext_0; +} + +defineClass(1474, 1, $intern_19, PortContextCreator$lambda$0$Type); +_.accept = function accept_50(arg0){ + lambda$0_11(this.portContext_0, castTo(arg0, 181)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_PortContextCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'PortContextCreator/lambda$0$Type', 1474); +function constrainedInsidePortLabelPlacement(nodeContext, portSide){ + var insidePortLabelContainer, labelContainerRect, leftBorder, overlapRemovalDirection, overlapRemover, padding, padding0, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, rightBorder, startCoordinate, stripHeight, verticalLabelAlignment, actualMinX, actualMaxX; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) { + simpleInsidePortLabelPlacement(nodeContext, portSide); + return; + } + overlapRemovalDirection = portSide == NORTH_3?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP); + verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , TOP):($clinit_VerticalLabelAlignment() , BOTTOM); + insidePortLabelContainer = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + labelContainerRect = insidePortLabelContainer.cellRectangle; + leftBorder = labelContainerRect.x_0 + maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.left, nodeContext.surroundingPortMargins.left, nodeContext.nodeLabelSpacing])); + rightBorder = labelContainerRect.x_0 + labelContainerRect.width_0 - maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.right, nodeContext.surroundingPortMargins.right, nodeContext.nodeLabelSpacing])); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingVertical); + startCoordinate = portSide == NORTH_3?$intern_60:$intern_59; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portPosition = portContext.portPosition; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); + portLabelCell.verticalAlignment = verticalLabelAlignment; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + portLabelCellRect.x_0 = portPosition.x_0 - (portLabelCellRect.width_0 - portSize.x_0) / 2; + actualMinX = $wnd.Math.min(leftBorder, portPosition.x_0); + actualMaxX = $wnd.Math.max(rightBorder, portPosition.x_0 + portSize.x_0); + portLabelCellRect.x_0 < actualMinX?(portLabelCellRect.x_0 = actualMinX):portLabelCellRect.x_0 + portLabelCellRect.width_0 > actualMaxX && (portLabelCellRect.x_0 = actualMaxX - portLabelCellRect.width_0); + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); + startCoordinate = portSide == NORTH_3?$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0):$wnd.Math.min(startCoordinate, portPosition.y_0); + } + startCoordinate += portSide == NORTH_3?nodeContext.portLabelSpacingVertical:-nodeContext.portLabelSpacingVertical; + stripHeight = $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); + stripHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = stripHeight); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portLabelCellRect = portContext.portLabelCell.cellRectangle; + portLabelCellRect.x_0 -= portContext.portPosition.x_0; + portLabelCellRect.y_0 -= portContext.portPosition.y_0; + } +} + +function constrainedOutsidePortLabelPlacement(nodeContext, portSide){ + var overlapRemovalDirection, overlapRemover, padding, padding0, padding1, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, portWithSpecialNeeds, startCoordinate, verticalLabelAlignment; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.size_1() <= 2 || portSide == ($clinit_PortSide() , EAST_2) || portSide == ($clinit_PortSide() , WEST_2)) { + simpleOutsidePortLabelPlacement(nodeContext, portSide); + return; + } + portWithSpecialNeeds = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + overlapRemovalDirection = portSide == ($clinit_PortSide() , NORTH_3)?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN); + verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , BOTTOM):($clinit_VerticalLabelAlignment() , TOP); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingHorizontal); + startCoordinate = portSide == NORTH_3?$intern_59:$intern_60; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portPosition = portContext.portPosition; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding1 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding1.top_0 + padding1.bottom); + if (portWithSpecialNeeds) { + portLabelCellRect.x_0 = portPosition.x_0 - (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding.left + padding.right) - nodeContext.portLabelSpacingHorizontal; + portWithSpecialNeeds = false; + } + else { + portLabelCellRect.x_0 = portPosition.x_0 + portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + } + requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); + portLabelCell.verticalAlignment = verticalLabelAlignment; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); + startCoordinate = portSide == NORTH_3?$wnd.Math.min(startCoordinate, portPosition.y_0):$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0); + } + startCoordinate += portSide == NORTH_3?-nodeContext.portLabelSpacingVertical:nodeContext.portLabelSpacingVertical; + $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portLabelCellRect = portContext.portLabelCell.cellRectangle; + portLabelCellRect.x_0 -= portContext.portPosition.x_0; + portLabelCellRect.y_0 -= portContext.portPosition.y_0; + } +} + +function placePortLabels(nodeContext, portSide){ + var constrainedPlacement; + constrainedPlacement = !nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) || nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_POS); + nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))?constrainedPlacement?constrainedInsidePortLabelPlacement(nodeContext, portSide):simpleInsidePortLabelPlacement(nodeContext, portSide):nodeContext.portLabelsPlacement.contains(OUTSIDE_0) && (constrainedPlacement?constrainedOutsidePortLabelPlacement(nodeContext, portSide):simpleOutsidePortLabelPlacement(nodeContext, portSide)); +} + +function portLabelBorderOffsetForPortSide(nodeContext, portSide){ + switch (portSide.ordinal) { + case 1: + return nodeContext.nodeContainer.padding.top_0 + nodeContext.portLabelSpacingVertical; + case 3: + return nodeContext.nodeContainer.padding.bottom + nodeContext.portLabelSpacingVertical; + case 2: + return nodeContext.nodeContainer.padding.right + nodeContext.portLabelSpacingHorizontal; + case 4: + return nodeContext.nodeContainer.padding.left + nodeContext.portLabelSpacingHorizontal; + default:return 0; + } +} + +function simpleInsidePortLabelPlacement(nodeContext, portSide){ + var insideNorthOrSouthPortLabelAreaHeight, labelBorderOffset, labelHeight, padding, padding0, portBorderOffset, portContext, portContext$iterator, portLabelCell, portLabelCellRect, portLabelSpacingHorizontal, portLabelSpacingVertical, portSize; + insideNorthOrSouthPortLabelAreaHeight = 0; + labelBorderOffset = portLabelBorderOffsetForPortSide(nodeContext, portSide); + portLabelSpacingHorizontal = nodeContext.portLabelSpacingHorizontal; + portLabelSpacingVertical = nodeContext.portLabelSpacingVertical; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portBorderOffset = portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?$doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))):0; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + switch (portSide.ordinal) { + case 1: + portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; + portLabelCellRect.y_0 = portSize.y_0 + portBorderOffset + labelBorderOffset; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + break; + case 3: + portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; + portLabelCellRect.y_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.height; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + break; + case 2: + portLabelCellRect.x_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.width_0; + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + } + else { + portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; + } + + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + break; + case 4: + portLabelCellRect.x_0 = portSize.x_0 + portBorderOffset + labelBorderOffset; + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + } + else { + portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; + } + + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && (insideNorthOrSouthPortLabelAreaHeight = $wnd.Math.max(insideNorthOrSouthPortLabelAreaHeight, portLabelCellRect.height)); + } + insideNorthOrSouthPortLabelAreaHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = insideNorthOrSouthPortLabelAreaHeight); +} + +function simpleOutsidePortLabelPlacement(nodeContext, portSide){ + var alwaysAbove, labelHeight, padding, padding0, placeFirstPortDifferently, portContext, portContext$iterator, portContexts, portLabelCell, portLabelCellRect, portSize; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + placeFirstPortDifferently = isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide); + alwaysAbove = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_OTHER_SAME_SIDE)); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + switch (portSide.ordinal) { + case 1: + if (portContext.labelsNextToPort) { + portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + else { + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + } + + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + break; + case 3: + if (portContext.labelsNextToPort) { + portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + else { + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + } + + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + break; + case 2: + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + } + else { + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + } + + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + break; + case 4: + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + } + else { + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + } + + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + placeFirstPortDifferently = false; + } +} + +function $clinit_PortPlacementCalculator(){ + $clinit_PortPlacementCalculator = emptyMethod; + PORT_RATIO_OR_POSITION = new Property_0('portRatioOrPosition', 0); +} + +function calculateVerticalPortXCoordinate(portContext, nodeWidth){ + var port; + port = portContext.port; + return port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth; +} + +function placeHorizontalFixedPosPorts(nodeContext, portSide){ + var port, portContext, portContext$iterator; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + } +} + +function placeHorizontalFixedRatioPorts(nodeContext, portSide){ + var nodeWidth, port, portContext, portContext$iterator; + nodeWidth = nodeContext.nodeSize.x_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = nodeWidth * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + } +} + +function placeHorizontalFreePorts(nodeContext, portSide){ + var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementWidth, currentXPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; + insidePortLabelCellPadding = insidePortLabelCell.padding; + portAlignment = $getPortAlignment(nodeContext, portSide); + availableSpace = insidePortLabelCellRectangle.width_0 - insidePortLabelCellPadding.left - insidePortLabelCellPadding.right; + calculatedPortPlacementWidth = insidePortLabelCell.minimumContentAreaSize.x_0; + currentXPos = insidePortLabelCellRectangle.x_0 + insidePortLabelCellPadding.left; + spaceBetweenPorts = nodeContext.portPortSpacing; + if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { + calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; + portAlignment = CENTER_6; + } + if (availableSpace < calculatedPortPlacementWidth && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { + if (portAlignment == DISTRIBUTED) { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + currentXPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + } + } + else { + if (availableSpace < calculatedPortPlacementWidth) { + calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; + portAlignment = CENTER_6; + } + switch (portAlignment.ordinal) { + case 3: + currentXPos += (availableSpace - calculatedPortPlacementWidth) / 2; + break; + case 4: + currentXPos += availableSpace - calculatedPortPlacementWidth; + break; + case 0: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentXPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = currentXPos + portContext.portMargin.left; + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + currentXPos += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right + spaceBetweenPorts; + } +} + +function placeHorizontalPorts(nodeContext){ + $clinit_PortPlacementCalculator(); + switch (nodeContext.portConstraints.ordinal) { + case 5: + placeHorizontalFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFixedPosPorts(nodeContext, SOUTH_2); + break; + case 4: + placeHorizontalFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFixedRatioPorts(nodeContext, SOUTH_2); + break; + default:placeHorizontalFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFreePorts(nodeContext, SOUTH_2); + } +} + +function placeVerticalFixedPosPorts(nodeContext, portSide){ + var nodeWidth, port, portContext, portContext$iterator; + nodeWidth = nodeContext.nodeSize.x_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); + } +} + +function placeVerticalFixedRatioPorts(nodeContext, portSide){ + var nodeSize, portContext, portContext$iterator; + nodeSize = nodeContext.nodeSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = calculateVerticalPortXCoordinate(portContext, nodeSize.x_0); + portContext.portPosition.y_0 = nodeSize.y_0 * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); + } +} + +function placeVerticalFreePorts(nodeContext, portSide){ + var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementHeight, currentYPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, nodeWidth, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; + insidePortLabelCellPadding = insidePortLabelCell.padding; + portAlignment = $getPortAlignment(nodeContext, portSide); + availableSpace = insidePortLabelCellRectangle.height - insidePortLabelCellPadding.top_0 - insidePortLabelCellPadding.bottom; + calculatedPortPlacementHeight = insidePortLabelCell.minimumContentAreaSize.y_0; + currentYPos = insidePortLabelCellRectangle.y_0 + insidePortLabelCellPadding.top_0; + spaceBetweenPorts = nodeContext.portPortSpacing; + nodeWidth = nodeContext.nodeSize.x_0; + if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { + calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; + portAlignment = CENTER_6; + } + if (availableSpace < calculatedPortPlacementHeight && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { + if (portAlignment == DISTRIBUTED) { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + currentYPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + } + } + else { + if (availableSpace < calculatedPortPlacementHeight) { + calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; + portAlignment = CENTER_6; + } + switch (portAlignment.ordinal) { + case 3: + currentYPos += (availableSpace - calculatedPortPlacementHeight) / 2; + break; + case 4: + currentYPos += availableSpace - calculatedPortPlacementHeight; + break; + case 0: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentYPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); + portContext.portPosition.y_0 = currentYPos + portContext.portMargin.top_0; + currentYPos += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom + spaceBetweenPorts; + } +} + +function placeVerticalPorts(nodeContext){ + $clinit_PortPlacementCalculator(); + switch (nodeContext.portConstraints.ordinal) { + case 5: + placeVerticalFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFixedPosPorts(nodeContext, WEST_2); + break; + case 4: + placeVerticalFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFixedRatioPorts(nodeContext, WEST_2); + break; + default:placeVerticalFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFreePorts(nodeContext, WEST_2); + } +} + +var PORT_RATIO_OR_POSITION; +function calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ + var bottommostPortBorder, cell, portContext, portContext$iterator; + bottommostPortBorder = 0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + bottommostPortBorder = $wnd.Math.max(bottommostPortBorder, portContext.portPosition.y_0 + portContext.port.getSize().y_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + cell.padding.top_0 = 0; + cell.minimumContentAreaSize.y_0 = bottommostPortBorder; +} + +function calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ + var cell, currentPortContext, currentPortHeight, currentPortRatio, minHeight, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortHeight, previousPortRatio, requiredSpace; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.isEmpty()) { + cell.padding.top_0 = 0; + cell.padding.bottom = 0; + return; + } + portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + minHeight = 0; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); + portContextIterator = portContexts.iterator_0(); + previousPortContext = null; + previousPortRatio = 0; + previousPortHeight = 0; + while (portContextIterator.hasNext_0()) { + currentPortContext = castTo(portContextIterator.next_1(), 111); + currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); + currentPortHeight = currentPortContext.port.getSize().y_0; + if (!previousPortContext) { + !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.top_0 > 0 && (minHeight = $wnd.Math.max(minHeight, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.top_0 + currentPortContext.portMargin.top_0, currentPortRatio))); + } + else { + requiredSpace = previousPortHeight + previousPortContext.portMargin.bottom + nodeContext.portPortSpacing + currentPortContext.portMargin.top_0; + minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); + } + previousPortContext = currentPortContext; + previousPortRatio = currentPortRatio; + previousPortHeight = currentPortHeight; + } + if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.bottom > 0) { + requiredSpace = previousPortHeight + nodeContext.surroundingPortMargins.bottom; + portLabelsInside && (requiredSpace += previousPortContext.portMargin.bottom); + minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); + } + cell.padding.top_0 = 0; + cell.minimumContentAreaSize.y_0 = minHeight; +} + +function calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, portSide){ + var cell, height; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + cell.padding.top_0 = 0; + cell.padding.bottom = 0; + return; + } + cell.padding.top_0 = nodeContext.surroundingPortMargins.top_0; + cell.padding.bottom = nodeContext.surroundingPortMargins.bottom; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); + height = portHeightPlusPortPortSpacing(nodeContext, portSide); + $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (height += 2 * nodeContext.portPortSpacing); + cell.minimumContentAreaSize.y_0 = height; +} + +function calculateVerticalPortPlacementSize(nodeContext){ + switch (nodeContext.portConstraints.ordinal) { + case 5: + calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, WEST_2); + break; + case 4: + calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, WEST_2); + break; + default:calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, WEST_2); + } +} + +function computeVerticalPortMargins(nodeContext, portSide){ + var firstLabelHeight, firstLabelOverhang, labelHeight, labelsBounds, overhang, portContext, portContext$iterator, portHeight; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + labelHeight = portContext.portLabelCell?$getMinimumHeight_0(portContext.portLabelCell):0; + if (labelHeight > 0) { + if (portContext.labelsNextToPort) { + portHeight = portContext.port.getSize().y_0; + if (labelHeight > portHeight) { + if (nodeContext.portLabelsTreatAsGroup || portContext.portLabelCell.labels.array.length == 1) { + overhang = (labelHeight - portHeight) / 2; + portContext.portMargin.top_0 = overhang; + portContext.portMargin.bottom = overhang; + } + else { + firstLabelHeight = castTo($get_11(portContext.portLabelCell.labels, 0), 181).getSize().y_0; + firstLabelOverhang = (firstLabelHeight - portHeight) / 2; + portContext.portMargin.top_0 = $wnd.Math.max(0, firstLabelOverhang); + portContext.portMargin.bottom = labelHeight - firstLabelOverhang - portHeight; + } + } + } + else { + portContext.portMargin.bottom = nodeContext.portLabelSpacingVertical + labelHeight; + } + } + else if (isFixed(nodeContext.portLabelsPlacement)) { + labelsBounds = getLabelsBounds(portContext.port); + labelsBounds.y_0 < 0 && (portContext.portMargin.top_0 = -labelsBounds.y_0); + labelsBounds.y_0 + labelsBounds.height > portContext.port.getSize().y_0 && (portContext.portMargin.bottom = labelsBounds.y_0 + labelsBounds.height - portContext.port.getSize().y_0); + } + } +} + +function portHeightPlusPortPortSpacing(nodeContext, portSide){ + var portContext, portContextIterator, result; + result = 0; + portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 111); + result += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom; + portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); + } + return result; +} + +function setupPortMargins_0(nodeContext, portSide){ + var alwaysSameSide, alwaysSameSideAbove, bottommostPortContext, portContextIterator, portContexts, portLabelsOutside, spaceEfficient, spaceEfficientPortLabels, topmostPortContext, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); + computeVerticalPortMargins(nodeContext, portSide); + topmostPortContext = null; + bottommostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + topmostPortContext = castTo(portContextIterator.next_1(), 111); + bottommostPortContext = topmostPortContext; + while (portContextIterator.hasNext_0()) { + bottommostPortContext = castTo(portContextIterator.next_1(), 111); + } + topmostPortContext.portMargin.top_0 = 0; + bottommostPortContext.portMargin.bottom = 0; + spaceEfficientPortLabels && !topmostPortContext.labelsNextToPort && (topmostPortContext.portMargin.bottom = 0); + } + if (uniformPortSpacing) { + unifyPortMargins_0(portContexts); + if (portLabelsOutside) { + topmostPortContext.portMargin.top_0 = 0; + bottommostPortContext.portMargin.bottom = 0; + } + } +} + +function unifyPortMargins_0(portContexts){ + var maxBottom, maxTop, portContext, portContext$iterator, portContext$iterator0; + maxTop = 0; + maxBottom = 0; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + maxTop = $wnd.Math.max(maxTop, portContext.portMargin.top_0); + maxBottom = $wnd.Math.max(maxBottom, portContext.portMargin.bottom); + } + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portMargin.top_0 = maxTop; + portContext.portMargin.bottom = maxBottom; + } +} + +function $removeOverlaps(overlapRemover){ + var alreadyPlacedNodes, currNode, currNode$iterator, currRect, overlapNode, overlapNode$iterator, overlapRect, stripSize, verticalGap, yPos; + verticalGap = overlapRemover.gapVertical; + alreadyPlacedNodes = new HashSet; + stripSize = 0; + for (currNode$iterator = new ArrayList$1(overlapRemover.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_7(currNode$iterator), 222); + yPos = 0; + $sort_0(currNode.overlappingNodes, new GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); + for (overlapNode$iterator = $listIterator_2(currNode.overlappingNodes, 0); overlapNode$iterator.currentNode != overlapNode$iterator.this$01.tail;) { + overlapNode = castTo($next_10(overlapNode$iterator), 222); + if (alreadyPlacedNodes.map_0.containsKey(overlapNode)) { + currRect = currNode.rectangle; + overlapRect = overlapNode.rectangle; + yPos < overlapRect.y_0 + overlapRect.height + verticalGap && yPos + currRect.height + verticalGap > overlapRect.y_0 && (yPos = overlapRect.y_0 + overlapRect.height + verticalGap); + } + } + currNode.rectangle.y_0 = yPos; + alreadyPlacedNodes.map_0.put(currNode, alreadyPlacedNodes); + stripSize = $wnd.Math.max(stripSize, currNode.rectangle.y_0 + currNode.rectangle.height); + } + return stripSize; +} + +function GreedyRectangleStripOverlapRemover(){ +} + +function compareByYCoordinate(node1, node2){ + return compare_4(node1.rectangle.y_0, node2.rectangle.y_0); +} + +defineClass(1829, 1, {}, GreedyRectangleStripOverlapRemover); +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover', 1829); +function GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type(){ +} + +defineClass(1830, 1, $intern_88, GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); +_.compare_1 = function compare_17(arg0, arg1){ + return compareByYCoordinate(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.equals_0 = function equals_69(other){ + return this === other; +} +; +_.reversed = function reversed_9(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type', 1830); +function $computeOverlaps(this$static){ + var currNode, currNode$iterator, entry, entryIterator, intersectingNode, intersectingNode$iterator, intersectingNodes, intersectingRectangle, scanlinePos; + intersectingNodes = new TreeSet_0(castTo(checkNotNull(new RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type), 62)); + scanlinePos = $intern_60; + for (currNode$iterator = new ArrayList$1(this$static.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_7(currNode$iterator), 222); + scanlinePos = currNode.rectangle.x_0; + while (intersectingNodes.map_0.size_0 != 0) { + intersectingRectangle = castTo(getKeyOrNSE($getFirstEntry(intersectingNodes.map_0)), 222); + if (intersectingRectangle.rectangle.x_0 + intersectingRectangle.rectangle.width_0 < scanlinePos) { + $remove_26(intersectingNodes.map_0, intersectingRectangle) != null; + } + else { + break; + } + } + for (intersectingNode$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(intersectingNodes.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(intersectingNode$iterator.val$entryIterator2.iter);) { + intersectingNode = (entry = $next_11(intersectingNode$iterator.val$entryIterator2) , castTo(entry.getKey(), 222)); + $add_7(intersectingNode.overlappingNodes, currNode); + $add_7(currNode.overlappingNodes, intersectingNode); + } + $put_12(intersectingNodes.map_0, currNode, ($clinit_Boolean() , FALSE_0)) == null; + } +} + +function $exportRectangle(this$static, rectangleNode){ + var originalRectangle, rectangle; + rectangle = rectangleNode.rectangle; + originalRectangle = rectangleNode.originalRectangle; + switch (this$static.overlapRemovalDirection.ordinal) { + case 0: + originalRectangle.y_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; + break; + case 1: + originalRectangle.y_0 += this$static.startCoordinate; + break; + case 2: + originalRectangle.x_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; + break; + case 3: + originalRectangle.x_0 = this$static.startCoordinate + rectangle.y_0; + } +} + +function $importRectangle(this$static, rectangle){ + switch (this$static.overlapRemovalDirection.ordinal) { + case 0: + case 1: + return rectangle; + case 2: + case 3: + return new ElkRectangle_0(rectangle.y_0, 0, rectangle.height, rectangle.width_0); + default:return null; + } +} + +function $removeOverlaps_0(this$static){ + var stripSize; + !this$static.overlapRemovalStrategy && (this$static.overlapRemovalStrategy = new GreedyRectangleStripOverlapRemover); + $sort(this$static.rectangleNodes, new RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); + $computeOverlaps(this$static); + stripSize = $removeOverlaps(this$static); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.rectangleNodes, 16)), new RectangleStripOverlapRemover$lambda$1$Type(this$static)); + return stripSize; +} + +function $withGap(this$static, theVerticalGap){ + this$static.gapVertical = theVerticalGap; + return this$static; +} + +function $withStartCoordinate(this$static, coordinate){ + this$static.startCoordinate = coordinate; + return this$static; +} + +function RectangleStripOverlapRemover(){ + this.rectangleNodes = new ArrayList; +} + +function compareLeftRectangleBorders(rn1, rn2){ + return compare_4(rn1.rectangle.x_0, rn2.rectangle.x_0); +} + +function compareRightRectangleBorders(rn1, rn2){ + return compare_4(rn1.rectangle.x_0 + rn1.rectangle.width_0, rn2.rectangle.x_0 + rn2.rectangle.width_0); +} + +function createForDirection(direction){ + var remover; + remover = new RectangleStripOverlapRemover; + remover.overlapRemovalDirection = direction; + return remover; +} + +defineClass(1786, 1, {}, RectangleStripOverlapRemover); +_.gapVertical = 5; +_.startCoordinate = 0; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover', 1786); +function RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type(){ +} + +defineClass(1787, 1, $intern_88, RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); +_.compare_1 = function compare_18(arg0, arg1){ + return compareLeftRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.equals_0 = function equals_70(other){ + return this === other; +} +; +_.reversed = function reversed_10(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type', 1787); +function RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type(){ +} + +defineClass(1789, 1, $intern_88, RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type); +_.compare_1 = function compare_19(arg0, arg1){ + return compareRightRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.equals_0 = function equals_71(other){ + return this === other; +} +; +_.reversed = function reversed_11(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type', 1789); +function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection = emptyMethod; + UP = new RectangleStripOverlapRemover$OverlapRemovalDirection('UP', 0); + DOWN = new RectangleStripOverlapRemover$OverlapRemovalDirection('DOWN', 1); + LEFT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('LEFT', 2); + RIGHT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('RIGHT', 3); +} + +function RectangleStripOverlapRemover$OverlapRemovalDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_21(name_0){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); + return valueOf(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map() , $MAP_9), name_0); +} + +function values_27(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]); +} + +defineClass(406, 22, {3:1, 35:1, 22:1, 406:1}, RectangleStripOverlapRemover$OverlapRemovalDirection); +var DOWN, LEFT_0, RIGHT_0, UP; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit = createForEnum('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/OverlapRemovalDirection', 406, Ljava_lang_Enum_2_classLit, values_27, valueOf_21); +function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map = emptyMethod; + $MAP_9 = createValueOfMap(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]))); +} + +var $MAP_9; +function RectangleStripOverlapRemover$RectangleNode(originalRectangle, rectangle){ + this.overlappingNodes = new LinkedList; + this.originalRectangle = originalRectangle; + this.rectangle = rectangle; +} + +defineClass(222, 1, {222:1}, RectangleStripOverlapRemover$RectangleNode); +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$RectangleNode_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/RectangleNode', 222); +function RectangleStripOverlapRemover$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1788, 1, $intern_19, RectangleStripOverlapRemover$lambda$1$Type); +_.accept = function accept_51(arg0){ + $exportRectangle(this.$$outer_0, castTo(arg0, 222)); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/lambda$1$Type', 1788); +function $packPolyominoes(polyHolder){ + var grid, next, offX, offY, poly, poly$iterator, polys, successorBasedOnCost; + polys = polyHolder.polys; + grid = polyHolder.grid; + switch (castTo($getProperty(polyHolder, ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT)), 427).ordinal) { + case 0: + $sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparator)); + break; + case 1: + default:$sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparatorWithShape)); + } + switch (castTo($getProperty(polyHolder, POLYOMINO_HIGH_LEVEL_SORT), 428).ordinal) { + case 1: + $sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); + $sort(polys, new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); + $sort(polys, new PolyominoCompactor$CornerCasesGreaterThanRestComparator); + break; + case 0: + default:$sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); + $sort(polys, new PolyominoCompactor$MinNumOfExtensionDirectionsComparator); + } + switch (castTo($getProperty(polyHolder, POLYOMINO_TRAVERSAL_STRATEGY), 250).ordinal) { + case 0: + successorBasedOnCost = new SuccessorMaxNormWindingInMathPosSense; + break; + case 1: + successorBasedOnCost = new SuccessorLineByLine; + break; + case 2: + successorBasedOnCost = new SuccessorManhattan; + break; + case 3: + successorBasedOnCost = new SuccessorJitter; + break; + case 5: + successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorManhattan); + break; + case 4: + successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorLineByLine); + break; + case 7: + successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorLineByLine), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); + break; + case 8: + successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorJitter), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); + break; + case 6: + default:successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorJitter); + } + for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_7(poly$iterator), 167); + offX = 0; + offY = 0; + next = new Pair(valueOf_4(offX), valueOf_4(offY)); + while ($intersectsWithCenterBased_0(grid, poly, offX, offY)) { + next = castTo(successorBasedOnCost.apply_3(next, poly), 46); + offX = castTo(next.first, 19).value_0; + offY = castTo(next.second, 19).value_0; + } + $addFilledCellsFrom_0(grid, poly, offX, offY); + } +} + +function $compare_1(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + numDir1 = numDir1 == 2?1:0; + numDir1 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir1 = 0); + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + numDir2 = numDir2 == 2?1:0; + numDir2 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir2 = 0); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$CornerCasesGreaterThanRestComparator(){ +} + +defineClass(1304, 1, $intern_88, PolyominoCompactor$CornerCasesGreaterThanRestComparator); +_.compare_1 = function compare_20(o1, o2){ + return $compare_1(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_72(other){ + return this === other; +} +; +_.reversed = function reversed_12(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator', 1304); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1307, 1, {}, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_40(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type', 1307); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type(){ +} + +defineClass(1308, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type); +_.test_0 = function test_10(arg0){ + return castTo(arg0, 323).horizontal; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type', 1308); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type(){ +} + +defineClass(1309, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type); +_.test_0 = function test_11(arg0){ + return castTo(arg0, 323).horizontal; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type', 1309); +function $compare_2(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator(){ +} + +defineClass(1302, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionDirectionsComparator); +_.compare_1 = function compare_21(o1, o2){ + return $compare_2(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_73(other){ + return this === other; +} +; +_.reversed = function reversed_13(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator', 1302); +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type(){ +} + +defineClass(1305, 1, {}, PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type); +_.apply_0 = function apply_41(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type', 1305); +function $compare_3(o1, o2){ + var numExt1, numExt2; + numExt1 = o1.polyominoExtensions.array.length; + numExt2 = o2.polyominoExtensions.array.length; + if (numExt1 < numExt2) { + return -1; + } + if (numExt1 == numExt2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinNumOfExtensionsComparator(){ +} + +defineClass(767, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionsComparator); +_.compare_1 = function compare_22(o1, o2){ + return $compare_3(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_74(other){ + return this === other; +} +; +_.reversed = function reversed_14(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionsComparator', 767); +function $compare_4(o1, o2){ + var halfPeri1, halfPeri2; + halfPeri1 = o1.xSize + o1.ySize; + halfPeri2 = o2.xSize + o2.ySize; + if (halfPeri1 < halfPeri2) { + return -1; + } + if (halfPeri1 == halfPeri2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinPerimeterComparator(){ +} + +defineClass(1300, 1, $intern_88, PolyominoCompactor$MinPerimeterComparator); +_.compare_1 = function compare_23(o1, o2){ + return $compare_4(castTo(o1, 321), castTo(o2, 321)); +} +; +_.equals_0 = function equals_75(other){ + return this === other; +} +; +_.reversed = function reversed_15(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparator', 1300); +function $compare_5(o1, o2){ + var height, val1, val2, width_0; + width_0 = o1.xSize; + height = o1.ySize; + width_0 < height?(width_0 *= width_0):(height *= height); + val1 = width_0 + height; + width_0 = o2.xSize; + height = o2.ySize; + width_0 < height?(width_0 *= width_0):(height *= height); + val2 = width_0 + height; + if (val1 < val2) { + return -1; + } + if (val1 == val2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinPerimeterComparatorWithShape(){ +} + +defineClass(1301, 1, $intern_88, PolyominoCompactor$MinPerimeterComparatorWithShape); +_.compare_1 = function compare_24(o1, o2){ + return $compare_5(castTo(o1, 321), castTo(o2, 321)); +} +; +_.equals_0 = function equals_76(other){ + return this === other; +} +; +_.reversed = function reversed_16(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparatorWithShape_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparatorWithShape', 1301); +function $compare_6(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + numDir1 = numDir1 == 1?1:0; + numDir2 = numDir2 == 1?1:0; + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator(){ +} + +defineClass(1303, 1, $intern_88, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); +_.compare_1 = function compare_25(o1, o2){ + return $compare_6(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_77(other){ + return this === other; +} +; +_.reversed = function reversed_17(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator', 1303); +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1306, 1, {}, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_42(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type', 1306); +function fillPolyomino(poly){ + var eastProfile, height, northProfile, southProfile, westProfile, width_0, x_0, xi, xi0, xi1, y_0, yi, yi0, yi1; + width_0 = poly.xSize; + northProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); + southProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); + height = poly.ySize; + eastProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); + westProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); + for (xi0 = 0; xi0 < width_0; xi0++) { + y_0 = 0; + while (y_0 < height && !$isBlocked(poly, xi0, y_0)) { + ++y_0; + } + northProfile[xi0] = y_0; + } + for (xi1 = 0; xi1 < width_0; xi1++) { + y_0 = height - 1; + while (y_0 >= 0 && !$isBlocked(poly, xi1, y_0)) { + --y_0; + } + southProfile[xi1] = y_0; + } + for (yi0 = 0; yi0 < height; yi0++) { + x_0 = 0; + while (x_0 < width_0 && !$isBlocked(poly, x_0, yi0)) { + ++x_0; + } + eastProfile[yi0] = x_0; + } + for (yi1 = 0; yi1 < height; yi1++) { + x_0 = width_0 - 1; + while (x_0 >= 0 && !$isBlocked(poly, x_0, yi1)) { + --x_0; + } + westProfile[yi1] = x_0; + } + for (xi = 0; xi < width_0; xi++) { + for (yi = 0; yi < height; yi++) { + xi < westProfile[yi] && xi > eastProfile[yi] && yi < southProfile[xi] && yi > northProfile[xi] && $set_5(poly, xi, yi, false, true); + } + } +} + +function $apply_4(this$static, coords, poly){ + return poly.polyominoExtensions.array.length > 0?$apply_9(this$static.externalFun, coords, poly):$apply_9(this$static.normalFun, coords, poly); +} + +function SuccessorCombination(normalFun, externalFun){ + this.normalFun = normalFun; + this.externalFun = externalFun; +} + +defineClass(777, 1, {}, SuccessorCombination); +_.apply_3 = function apply_43(coords, poly){ + return $apply_4(this, castTo(coords, 46), castTo(poly, 167)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorCombination_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorCombination', 777); +function $apply_5(coords){ + var cost, newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + newX = x_0; + newY = y_0; + cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); + if (x_0 <= 0 && x_0 == y_0) { + newX = 0; + newY = y_0 - 1; + } + else { + if (x_0 == -cost && y_0 != cost) { + newX = y_0; + newY = x_0; + y_0 >= 0 && ++newX; + } + else { + newX = -y_0; + newY = x_0; + } + } + return new Pair(valueOf_4(newX), valueOf_4(newY)); +} + +function SuccessorJitter(){ +} + +defineClass(644, 1, {}, SuccessorJitter); +_.apply_3 = function apply_44(coords, poly){ + var lastArg; + return $apply_5((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorJitter_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorJitter', 644); +function $apply_6(coords){ + var x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + if (x_0 >= 0) { + if (x_0 == y_0) { + return new Pair(valueOf_4(-x_0 - 1), valueOf_4(-x_0 - 1)); + } + if (x_0 == -y_0) { + return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); + } + } + if ($wnd.Math.abs(x_0) > $wnd.Math.abs(y_0)) { + if (x_0 < 0) { + return new Pair(valueOf_4(-x_0), valueOf_4(y_0)); + } + return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); + } + return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); +} + +function SuccessorLineByLine(){ +} + +defineClass(643, 1, {}, SuccessorLineByLine); +_.apply_3 = function apply_45(coords, poly){ + var lastArg; + return $apply_6((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorLineByLine_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorLineByLine', 643); +function $apply_7(coords){ + var newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + newX = x_0; + newY = y_0; + if (x_0 == 0 && y_0 == 0) { + newY -= 1; + } + else { + if (x_0 == -1 && y_0 <= 0) { + newX = 0; + newY -= 2; + } + else { + if (x_0 <= 0 && y_0 > 0) { + newX -= 1; + newY -= 1; + } + else { + if (x_0 >= 0 && y_0 < 0) { + newX += 1; + newY += 1; + } + else { + if (x_0 > 0 && y_0 >= 0) { + newX -= 1; + newY += 1; + } + else { + newX += 1; + newY -= 1; + } + } + } + } + } + return new Pair(valueOf_4(newX), valueOf_4(newY)); +} + +function SuccessorManhattan(){ +} + +defineClass(568, 1, {}, SuccessorManhattan); +_.apply_3 = function apply_46(coords, poly){ + var lastArg; + return $apply_7((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorManhattan_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorManhattan', 568); +function $apply_8(coords){ + var cost, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); + if (x_0 < cost && y_0 == -cost) { + return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); + } + if (x_0 == cost && y_0 < cost) { + return new Pair(valueOf_4(x_0), valueOf_4(y_0 + 1)); + } + if (x_0 >= -cost && y_0 == cost) { + return new Pair(valueOf_4(x_0 - 1), valueOf_4(y_0)); + } + return new Pair(valueOf_4(x_0), valueOf_4(y_0 - 1)); +} + +function SuccessorMaxNormWindingInMathPosSense(){ +} + +defineClass(1356, 1, {}, SuccessorMaxNormWindingInMathPosSense); +_.apply_3 = function apply_47(coords, poly){ + var lastArg; + return $apply_8((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorMaxNormWindingInMathPosSense_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorMaxNormWindingInMathPosSense', 1356); +function $apply_9(this$static, coords, poly){ + return $apply_10(this$static, castTo(coords, 46), castTo(poly, 167)); +} + +function $apply_10(this$static, coords, poly){ + var containsNeg, containsPos, detectDirections, dirSet, invalid, newX, newY, nextCoords; + if (!equals_Ljava_lang_Object__Z__devirtual$(poly, this$static.lastPoly)) { + this$static.lastPoly = poly; + detectDirections = new SuccessorQuadrantsGeneric$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(poly.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + this$static.posX = true; + this$static.posY = true; + this$static.negX = true; + this$static.negY = true; + containsPos = dirSet.contains(($clinit_Direction() , NORTH)); + containsNeg = dirSet.contains(SOUTH); + containsPos && !containsNeg && (this$static.posY = false); + !containsPos && containsNeg && (this$static.negY = false); + containsPos = dirSet.contains(EAST); + containsNeg = dirSet.contains(WEST); + containsPos && !containsNeg && (this$static.negX = false); + !containsPos && containsNeg && (this$static.posX = false); + } + nextCoords = castTo(this$static.costFun.apply_3(coords, poly), 46); + newX = castTo(nextCoords.first, 19).value_0; + newY = castTo(nextCoords.second, 19).value_0; + invalid = false; + newX < 0?this$static.negX || (invalid = true):this$static.posX || (invalid = true); + newY < 0?this$static.negY || (invalid = true):this$static.posY || (invalid = true); + return invalid?$apply_10(this$static, nextCoords, poly):nextCoords; +} + +function SuccessorQuadrantsGeneric(costFun){ + this.costFun = costFun; +} + +defineClass(400, 1, {}, SuccessorQuadrantsGeneric); +_.apply_3 = function apply_48(coords, poly){ + return $apply_9(this, coords, poly); +} +; +_.negX = false; +_.negY = false; +_.posX = false; +_.posY = false; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric', 400); +function SuccessorQuadrantsGeneric$lambda$0$Type(){ +} + +defineClass(1357, 1, {}, SuccessorQuadrantsGeneric$lambda$0$Type); +_.apply_0 = function apply_49(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric/lambda$0$Type', 1357); +function $clinit_Direction(){ + $clinit_Direction = emptyMethod; + NORTH = new Direction('NORTH', 0); + EAST = new Direction('EAST', 1); + SOUTH = new Direction('SOUTH', 2); + WEST = new Direction('WEST', 3); + NORTH.horizontal = false; + EAST.horizontal = true; + SOUTH.horizontal = false; + WEST.horizontal = true; +} + +function Direction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_22(name_0){ + $clinit_Direction(); + return valueOf(($clinit_Direction$Map() , $MAP_10), name_0); +} + +function values_28(){ + $clinit_Direction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]); +} + +defineClass(323, 22, {3:1, 35:1, 22:1, 323:1}, Direction); +_.horizontal = false; +var EAST, NORTH, SOUTH, WEST; +var Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit = createForEnum('org.eclipse.elk.alg.common.polyomino.structures', 'Direction', 323, Ljava_lang_Enum_2_classLit, values_28, valueOf_22); +function $clinit_Direction$Map(){ + $clinit_Direction$Map = emptyMethod; + $MAP_10 = createValueOfMap(($clinit_Direction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]))); +} + +var $MAP_10; +function $incModTen(num){ + if (num > 8) { + return 0; + } + return num + 1; +} + +function $isBlocked(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 1); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $isEmpty_0(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $isWeaklyBlocked(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 2); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $retrieve(this$static, x_0, y_0){ + var value_0, xRest, xWord; + xWord = x_0 >> 5; + xRest = x_0 & 31; + value_0 = and_0(shru_0(this$static.grid[y_0][xWord], toInt_0(shl_0(xRest, 1))), 3); + return value_0; +} + +function $set_5(this$static, x_0, y_0, msb, lsb){ + var mask, xRest, xWord; + try { + if (x_0 >= this$static.xSize) { + throw toJs(new ArrayIndexOutOfBoundsException); + } + xWord = x_0 >> 5; + xRest = x_0 & 31; + mask = shl_0(1, toInt_0(shl_0(xRest, 1))); + lsb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); + mask = shl_0(mask, 1); + msb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +defineClass(1298, 1, {}); +_.toString_0 = function toString_78(){ + var count, item_0, output, x_0, x0, y_0; + output = ' '; + count = valueOf_4(0); + for (x0 = 0; x0 < this.xSize; x0++) { + output += '' + count.value_0; + count = valueOf_4($incModTen(count.value_0)); + } + output += '\n'; + count = valueOf_4(0); + for (y_0 = 0; y_0 < this.ySize; y_0++) { + output += '' + count.value_0; + count = valueOf_4($incModTen(count.value_0)); + for (x_0 = 0; x_0 < this.xSize; x_0++) { + item_0 = $retrieve(this, x_0, y_0); + compare_2(item_0, 0) == 0?(output += '_'):compare_2(item_0, 1) == 0?(output += 'X'):(output += '0'); + } + output += '\n'; + } + return $substring_1(output, 0, output.length - 1); +} +; +_.xSize = 0; +_.ySize = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_TwoBitGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'TwoBitGrid', 1298); +function $addFilledCellsFrom(this$static, other, xOffset, yOffset){ + var x_0, xTranslated, y_0, yTranslated; + for (x_0 = 0; x_0 < other.xSize; x_0++) { + xTranslated = x_0 - other.xCenter + xOffset; + for (y_0 = 0; y_0 < other.ySize; y_0++) { + yTranslated = y_0 - other.yCenter + yOffset; + $isBlocked(other, x_0, y_0)?$isWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated) || $setBlockedCenterBased(this$static, xTranslated, yTranslated):$isWeaklyBlocked(other, x_0, y_0) && ($isBlockedCenterBased(this$static, xTranslated, yTranslated) || $setWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated)); + } + } +} + +function $addFilledCellsFrom_0(this$static, other, xOffset, yOffset){ + var ext, ext$iterator; + $addFilledCellsFrom(this$static, other, xOffset, yOffset); + $setX(other, this$static.xCenter - other.xCenter + xOffset); + $setY(other, this$static.yCenter - other.yCenter + yOffset); + for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_7(ext$iterator), 324); + switch (ext.first.ordinal) { + case 0: + $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, 0, other.x_0 + ext.third.value_0, other.y_0 - 1); + break; + case 1: + $weaklyBlockArea(this$static, other.x_0 + other.xSize, other.y_0 + ext.second.value_0, this$static.xSize - 1, other.y_0 + ext.third.value_0); + break; + case 2: + $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, other.y_0 + other.ySize, other.x_0 + ext.third.value_0, this$static.ySize - 1); + break; + default:$weaklyBlockArea(this$static, 0, other.y_0 + ext.second.value_0, other.x_0 - 1, other.y_0 + ext.third.value_0); + } + } +} + +function $getFilledBounds(this$static){ + var gridHeight, gridWidth, height, maxX, maxY, minX, minY, width_0, xi, yi; + gridWidth = this$static.xSize; + gridHeight = this$static.ySize; + minX = $intern_0; + maxX = $intern_42; + minY = $intern_0; + maxY = $intern_42; + for (xi = 0; xi < gridWidth; ++xi) { + for (yi = 0; yi < gridHeight; ++yi) { + if ($isBlocked(this$static, xi, yi)) { + minX = $wnd.Math.min(minX, xi); + maxX = $wnd.Math.max(maxX, xi); + minY = $wnd.Math.min(minY, yi); + maxY = $wnd.Math.max(maxY, yi); + } + } + } + width_0 = maxX - minX + 1; + height = maxY - minY + 1; + return new Quadruple(valueOf_4(minX), valueOf_4(minY), valueOf_4(width_0), valueOf_4(height)); +} + +function $intersectsWithCenterBased(this$static, other, xOffset, yOffset){ + var x_0, xTranslated, y_0, yTranslated, xt, yt; + for (x_0 = 0; x_0 < other.xSize; x_0++) { + xTranslated = x_0 - other.xCenter + xOffset; + for (y_0 = 0; y_0 < other.ySize; y_0++) { + yTranslated = y_0 - other.yCenter + yOffset; + if ((xt = xTranslated , yt = yTranslated , xt += this$static.xCenter , yt += this$static.yCenter , xt >= 0 && yt >= 0 && xt < this$static.xSize && yt < this$static.ySize) && (!$isEmpty_0(other, x_0, y_0) && $isBlockedCenterBased(this$static, xTranslated, yTranslated) || $isBlocked(other, x_0, y_0) && !$isEmptyCenterBased(this$static, xTranslated, yTranslated))) { + return true; + } + } + } + return false; +} + +function $intersectsWithCenterBased_0(this$static, other, xOffset, yOffset){ + var bottomY, ext, ext$iterator, intersects, leftX, rightX, topY; + if ($intersectsWithCenterBased(this$static, other, xOffset, yOffset)) { + return true; + } + else { + for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_7(ext$iterator), 324); + intersects = false; + leftX = this$static.xCenter - other.xCenter + xOffset; + rightX = leftX + other.xSize; + topY = this$static.yCenter - other.yCenter + yOffset; + bottomY = topY + other.ySize; + switch (ext.first.ordinal) { + case 0: + intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, 0, leftX + ext.third.value_0, topY - 1); + break; + case 1: + intersects = $weaklyIntersectsArea(this$static, rightX, topY + ext.second.value_0, this$static.xSize - 1, topY + ext.third.value_0); + break; + case 2: + intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, bottomY, leftX + ext.third.value_0, this$static.ySize - 1); + break; + default:intersects = $weaklyIntersectsArea(this$static, 0, topY + ext.second.value_0, leftX - 1, topY + ext.third.value_0); + } + if (intersects) { + return true; + } + } + } + return false; +} + +function $isBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $isEmptyCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isEmpty_0(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $isWeaklyBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isWeaklyBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $reinitialize(this$static, width_0, height){ + this$static.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); + this$static.xSize = width_0; + this$static.ySize = height; + this$static.xCenter = width_0 - 1 >> 1; + this$static.yCenter = height - 1 >> 1; +} + +function $setBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, false, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $setWeaklyBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, true, false); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $weaklyBlockArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ + var xi, yi; + for (yi = yUpperleft; yi <= yBottomRight; yi++) { + for (xi = xUpperLeft; xi <= xBottomRight; xi++) { + $isBlocked(this$static, xi, yi) || $set_5(this$static, xi, yi, true, false); + } + } +} + +function $weaklyIntersectsArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ + var xi, yi; + for (yi = yUpperleft; yi <= yBottomRight; yi++) { + for (xi = xUpperLeft; xi <= xBottomRight; xi++) { + if ($isBlocked(this$static, xi, yi)) { + return true; + } + } + } + return false; +} + +function PlanarGrid(width_0, height){ + this.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); + this.xSize = width_0; + this.ySize = height; + this.xCenter = width_0 - 1 >> 1; + this.yCenter = height - 1 >> 1; +} + +defineClass(321, 1298, {321:1}, PlanarGrid); +_.xCenter = 0; +_.yCenter = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_PlanarGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'PlanarGrid', 321); +function $setX(this$static, val){ + this$static.x_0 = val; +} + +function $setY(this$static, val){ + this$static.y_0 = val; +} + +function Polyomino(extensions){ + PlanarGrid.call(this, 0, 0); + this.polyominoExtensions = extensions; +} + +defineClass(167, 321, {321:1, 167:1}); +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyomino_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyomino', 167); +var Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IPropertyHolder'); +function $copyProperties(this$static, other){ + var otherMap; + if (!other) { + return this$static; + } + otherMap = other.getAllProperties(); + otherMap.isEmpty() || (!this$static.propertyMap?(this$static.propertyMap = new HashMap_1(otherMap)):$putAll(this$static.propertyMap, otherMap)); + return this$static; +} + +function $getAllProperties(this$static){ + return !this$static.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this$static.propertyMap; +} + +function $getProperty(this$static, property){ + var defaultValue, value_0; + value_0 = (!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $get_10(this$static.propertyMap, property)); + if (value_0 != null) { + return value_0; + } + defaultValue = property.getDefault(); + instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, defaultValue)) , this$static); + return defaultValue; +} + +function $hasProperty(this$static, property){ + return !!this$static.propertyMap && $containsKey_3(this$static.propertyMap, property); +} + +function $setProperty(this$static, property, value_0){ + return value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)) , this$static; +} + +function $setProperty_0(this$static, property, value_0){ + value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)); + return this$static; +} + +function MapPropertyHolder(){ +} + +defineClass(134, 1, $intern_95, MapPropertyHolder); +_.setProperty = function setProperty(property, value_0){ + return $setProperty(this, property, value_0); +} +; +_.getAllProperties = function getAllProperties(){ + return $getAllProperties(this); +} +; +_.getProperty = function getProperty(property){ + return $getProperty(this, property); +} +; +_.hasProperty = function hasProperty(property){ + return $hasProperty(this, property); +} +; +var Lorg_eclipse_elk_graph_properties_MapPropertyHolder_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'MapPropertyHolder', 134); +function Polyominoes(polys, aspectRatio, fill){ + var gridHeight, gridWidth, poly, poly$iterator; + this.polys = new ArrayList; + gridWidth = 0; + gridHeight = 0; + for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_7(poly$iterator), 167); + fill && fillPolyomino(poly); + $add_3(this.polys, poly); + gridWidth += poly.xSize; + gridHeight += poly.ySize; + } + if (this.polys.array.length > 0) { + poly = castTo($get_11(this.polys, 0), 167); + gridWidth += poly.xSize; + gridHeight += poly.ySize; + } + gridWidth *= 2; + gridHeight *= 2; + aspectRatio > 1?(gridWidth = round_int($wnd.Math.ceil(gridWidth * aspectRatio))):(gridHeight = round_int($wnd.Math.ceil(gridHeight / aspectRatio))); + this.grid = new PlanarGrid(gridWidth, gridHeight); +} + +defineClass(1299, 134, $intern_95, Polyominoes); +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyominoes_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyominoes', 1299); +function compact_0(tree, orthogonal){ + svg_0 = new SVGImage; + orthogonalCompaction = orthogonal; + root_0 = tree; + castTo(root_0.node, 65); + drawTree(root_0, svg_0, null); + compactTree(root_0); +} + +function compactTree(tree){ + var child, child$iterator, compactionVector, minUnderlap, rc, rt; + $forEach_1(tree.children, new DepthFirstCompaction$0methodref$compactTree$Type); + for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 221); + compactionVector = $sub_0($clone_0(castTo(tree.node, 65).vertex), castTo(child.node, 65).vertex); + if (orthogonalCompaction) { + rt = castTo(tree.node, 65).rect; + rc = castTo(child.node, 65).rect; + if ($wnd.Math.abs(compactionVector.x_0) >= $wnd.Math.abs(compactionVector.y_0)) { + compactionVector.y_0 = 0; + rc.y_0 + rc.height > rt.y_0 && rc.y_0 < rt.y_0 + rt.height && $scaleToLength(compactionVector, $wnd.Math.max(rt.x_0 - (rc.x_0 + rc.width_0), rc.x_0 - (rt.x_0 + rt.width_0))); + } + else { + compactionVector.x_0 = 0; + rc.x_0 + rc.width_0 > rt.x_0 && rc.x_0 < rt.x_0 + rt.width_0 && $scaleToLength(compactionVector, $wnd.Math.max(rt.y_0 - (rc.y_0 + rc.height), rc.y_0 - (rt.y_0 + rt.height))); + } + } + else { + $scaleToLength(compactionVector, $underlap(castTo(tree.node, 65), castTo(child.node, 65))); + } + minUnderlap = $wnd.Math.sqrt(compactionVector.x_0 * compactionVector.x_0 + compactionVector.y_0 * compactionVector.y_0); + minUnderlap = getMinUnderlap(root_0, child, minUnderlap, compactionVector); + $scaleToLength(compactionVector, minUnderlap); + $translate(castTo(child.node, 65), compactionVector); + $forEach_1(child.children, new DepthFirstCompaction$lambda$1$Type(compactionVector)); + castTo(root_0.node, 65); + drawTree(root_0, svg_0, child); + } +} + +function drawTree(t, svgImage, mark){ + castTo(t.node, 65); + castTo(t.node, 65); + castTo(t.node, 65); + $forEach_1(t.children, new DepthFirstCompaction$lambda$2$Type(mark, svgImage, t)); +} + +function getMinUnderlap(tree, child, currentMinUnderlap, compactionVector){ + var c, c$iterator, minUnderlap; + minUnderlap = $wnd.Math.min(currentMinUnderlap, minUnderlapWithSubtree(castTo(tree.node, 65), child, currentMinUnderlap, compactionVector)); + for (c$iterator = new ArrayList$1(tree.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_7(c$iterator), 221); + c != child && (minUnderlap = $wnd.Math.min(minUnderlap, getMinUnderlap(c, child, minUnderlap, compactionVector))); + } + return minUnderlap; +} + +function lambda$1_4(compactionVector_0, c_1){ + $translate(castTo(c_1.node, 65), compactionVector_0); + $forEach_1(c_1.children, new DepthFirstCompaction$lambda$1$Type(compactionVector_0)); +} + +function lambda$2_0(mark_0, svgImage_1, t_2, c_3){ + c_3 == mark_0?(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0):(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0); + drawTree(c_3, svgImage_1, mark_0); +} + +function minUnderlapWithSubtree(r, tree, currentMinUnderlap, compactionVector){ + var c, child, child$iterator, minUnderlap; + minUnderlap = currentMinUnderlap; + for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 221); + c = castTo(child.node, 65); + if (fuzzyCompare(r.rect.x_0, c.rect.x_0 + c.rect.width_0) <= 0 && fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) <= 0 && fuzzyCompare(r.rect.y_0, c.rect.y_0 + c.rect.height) <= 0 && fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) <= 0) { + if (fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) == 0 && compactionVector.x_0 < 0 || fuzzyCompare(c.rect.x_0 + c.rect.width_0, r.rect.x_0) == 0 && compactionVector.x_0 > 0 || fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) == 0 && compactionVector.y_0 < 0 || fuzzyCompare(c.rect.y_0 + c.rect.height, r.rect.y_0) == 0 && compactionVector.y_0 > 0) { + minUnderlap = 0; + break; + } + } + else { + minUnderlap = $wnd.Math.min(minUnderlap, $distance(r, c, compactionVector)); + } + minUnderlap = $wnd.Math.min(minUnderlap, minUnderlapWithSubtree(r, child, minUnderlap, compactionVector)); + } + return minUnderlap; +} + +var orthogonalCompaction = false, root_0, svg_0; +function DepthFirstCompaction$0methodref$compactTree$Type(){ +} + +defineClass(1766, 1, $intern_19, DepthFirstCompaction$0methodref$compactTree$Type); +_.accept = function accept_52(arg0){ + compactTree(castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$0methodref$compactTree$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/0methodref$compactTree$Type', 1766); +function DepthFirstCompaction$lambda$1$Type(compactionVector_0){ + this.compactionVector_0 = compactionVector_0; +} + +defineClass(810, 1, $intern_19, DepthFirstCompaction$lambda$1$Type); +_.accept = function accept_53(arg0){ + lambda$1_4(this.compactionVector_0, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$1$Type', 810); +function DepthFirstCompaction$lambda$2$Type(mark_0, svgImage_1, t_2){ + this.mark_0 = mark_0; + this.svgImage_1 = svgImage_1; + this.t_2 = t_2; +} + +defineClass(1767, 1, $intern_19, DepthFirstCompaction$lambda$2$Type); +_.accept = function accept_54(arg0){ + lambda$2_0(this.mark_0, this.svgImage_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$2$Type', 1767); +function $clinit_InternalProperties(){ + $clinit_InternalProperties = emptyMethod; + DEBUG_SVG = new Property_0('debugSVG', ($clinit_Boolean() , false)); + OVERLAPS_EXISTED = new Property_0('overlapsExisted', true); +} + +var DEBUG_SVG, OVERLAPS_EXISTED; +function $distance(this$static, other, v){ + var distance, e1, e1$iterator, e2, e2$iterator, result; + result = $intern_59; + for (e1$iterator = new ArrayList$1(getRectEdges(this$static.rect)); e1$iterator.i < e1$iterator.this$01.array.length;) { + e1 = castTo($next_7(e1$iterator), 168); + for (e2$iterator = new ArrayList$1(getRectEdges(other.rect)); e2$iterator.i < e2$iterator.this$01.array.length;) { + e2 = castTo($next_7(e2$iterator), 168); + distance = distance_0(e1.u, e1.v, e2.u, e2.v, v); + result = $wnd.Math.min(result, distance); + } + } + return result; +} + +function $setCenterPosition(this$static, p){ + $translate(this$static, $sub_0(new KVector_1(p.x_0, p.y_0), this$static.vertex)); +} + +function $translate(this$static, v){ + $add_19(this$static.vertex, v); + this$static.rect.x_0 += v.x_0; + this$static.rect.y_0 += v.y_0; +} + +function $underlap(this$static, other){ + var hScale, horizontalCenterDistance, horizontalUnderlap, scale, vScale, verticalCenterDistance, verticalUnderlap; + horizontalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).x_0 - $getCenter(other.rect).x_0); + verticalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).y_0 - $getCenter(other.rect).y_0); + horizontalUnderlap = 0; + verticalUnderlap = 0; + hScale = 1; + vScale = 1; + if (horizontalCenterDistance > this$static.rect.width_0 / 2 + other.rect.width_0 / 2) { + horizontalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.x_0 - (other.rect.x_0 + other.rect.width_0)), $wnd.Math.abs(this$static.rect.x_0 + this$static.rect.width_0 - other.rect.x_0)); + hScale = 1 - horizontalUnderlap / horizontalCenterDistance; + } + if (verticalCenterDistance > this$static.rect.height / 2 + other.rect.height / 2) { + verticalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.y_0 - (other.rect.y_0 + other.rect.height)), $wnd.Math.abs(this$static.rect.y_0 + this$static.rect.height - other.rect.y_0)); + vScale = 1 - verticalUnderlap / verticalCenterDistance; + } + scale = $wnd.Math.min(hScale, vScale); + return (1 - scale) * $wnd.Math.sqrt(horizontalCenterDistance * horizontalCenterDistance + verticalCenterDistance * verticalCenterDistance); +} + +function Node_0(v, r){ + this.originalVertex = v; + this.vertex = $clone_0(this.originalVertex); + this.rect = new ElkRectangle_1(r); +} + +defineClass(65, 1, {65:1}, Node_0); +var Lorg_eclipse_elk_alg_common_spore_Node_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'Node', 65); +function $overlap_0(n1, n2){ + if (!n1 || !n2 || n1 == n2) { + return false; + } + return fuzzyCompare(n1.rect.x_0, n2.rect.x_0 + n2.rect.width_0) < 0 && fuzzyCompare(n2.rect.x_0, n1.rect.x_0 + n1.rect.width_0) < 0; +} + +function $sweep_0(this$static, nodes){ + var n, n$iterator, overlapsScanlineHandler, points; + points = new ArrayList; + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 65); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, true)); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, false)); + } + overlapsScanlineHandler = new ScanlineOverlapCheck$OverlapsScanlineHandler(this$static); + $clear_8(overlapsScanlineHandler.intervalsSortLeft.map_0); + execute(points, this$static.overlapsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [overlapsScanlineHandler]))); +} + +function ScanlineOverlapCheck(oh){ + this.overlapsScanlineComparator = new ScanlineOverlapCheck$lambda$0$Type; + this.overlapHandler = oh; +} + +function lambda$0_12(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.rect.y_0; + p1_0.low || (y1 += p1_0.node.rect.height); + y2 = p2_1.node.rect.y_0; + p2_1.low || (y2 += p2_1.node.rect.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(1250, 1, {}, ScanlineOverlapCheck); +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck', 1250); +function $handle_0(this$static, p){ + p.low?$insert_3(this$static, p):$remove_28(this$static.intervalsSortLeft, p.node); +} + +function $insert_3(this$static, p){ + var entry, entryIterator, other, other$iterator, overlapsFound, success; + success = $add_10(this$static.intervalsSortLeft, p.node); + if (!success) { + throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline overlap calculation.')); + } + overlapsFound = false; + for (other$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this$static.intervalsSortLeft.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(other$iterator.val$entryIterator2.iter);) { + other = (entry = $next_11(other$iterator.val$entryIterator2) , castTo(entry.getKey(), 65)); + if ($overlap_0(p.node, other)) { + $handle_4(this$static.this$01.overlapHandler, p.node, other); + overlapsFound = true; + } + else { + if (overlapsFound) { + break; + } + } + } +} + +function ScanlineOverlapCheck$OverlapsScanlineHandler(this$0){ + this.this$01 = this$0; + this.intervalsSortLeft = new TreeSet_0(castTo(checkNotNull(new ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type), 62)); +} + +function lambda$0_13(n1_0, n2_1){ + var cmp; + cmp = compare_4(n1_0.rect.x_0, n2_1.rect.x_0); + if (cmp != 0) { + return cmp; + } + cmp = compare_4(n1_0.originalVertex.x_0, n2_1.originalVertex.x_0); + if (cmp != 0) { + return cmp; + } + return compare_4(n1_0.originalVertex.y_0, n2_1.originalVertex.y_0); +} + +defineClass(1251, 1, {679:1}, ScanlineOverlapCheck$OverlapsScanlineHandler); +_.handle = function handle_0(p){ + $handle_0(this, castTo(p, 440)); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler', 1251); +function ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1252, 1, $intern_88, ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_26(arg0, arg1){ + return lambda$0_13(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_78(other){ + return this === other; +} +; +_.reversed = function reversed_18(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type', 1252); +function ScanlineOverlapCheck$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(440, 1, {440:1}, ScanlineOverlapCheck$Timestamp); +_.low = false; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/Timestamp', 440); +function ScanlineOverlapCheck$lambda$0$Type(){ +} + +defineClass(1253, 1, $intern_88, ScanlineOverlapCheck$lambda$0$Type); +_.compare_1 = function compare_27(arg0, arg1){ + return lambda$0_12(castTo(arg0, 440), castTo(arg1, 440)); +} +; +_.equals_0 = function equals_79(other){ + return this === other; +} +; +_.reversed = function reversed_19(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/lambda$0$Type', 1253); +function SVGImage(){ +} + +defineClass(550, 1, {}, SVGImage); +var Lorg_eclipse_elk_alg_common_utils_SVGImage_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'SVGImage', 550); +function UniqueTriple(f, s, t){ + this.first = f; + this.second = s; + this.third = t; +} + +defineClass(324, 1, {324:1}, UniqueTriple); +_.toString_0 = function toString_79(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; +} +; +var Lorg_eclipse_elk_alg_common_utils_UniqueTriple_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'UniqueTriple', 324); +function getRectEdges(r){ + var rectEdegs; + rectEdegs = new ArrayList; + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0 + r.width_0, r.y_0))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0, r.y_0 + r.height))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0 + r.width_0, r.y_0))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0, r.y_0 + r.height))); + return rectEdegs; +} + +function overlap_0(r1, r2){ + var horizontalCenterDistance, horizontalOverlap, verticalCenterDistance, verticalOverlap; + horizontalOverlap = $wnd.Math.min($wnd.Math.abs(r1.x_0 - (r2.x_0 + r2.width_0)), $wnd.Math.abs(r1.x_0 + r1.width_0 - r2.x_0)); + verticalOverlap = $wnd.Math.min($wnd.Math.abs(r1.y_0 - (r2.y_0 + r2.height)), $wnd.Math.abs(r1.y_0 + r1.height - r2.y_0)); + horizontalCenterDistance = $wnd.Math.abs(r1.x_0 + r1.width_0 / 2 - (r2.x_0 + r2.width_0 / 2)); + if (horizontalCenterDistance > r1.width_0 / 2 + r2.width_0 / 2) { + return 1; + } + verticalCenterDistance = $wnd.Math.abs(r1.y_0 + r1.height / 2 - (r2.y_0 + r2.height / 2)); + if (verticalCenterDistance > r1.height / 2 + r2.height / 2) { + return 1; + } + if (horizontalCenterDistance == 0 && verticalCenterDistance == 0) { + return 0; + } + if (horizontalCenterDistance == 0) { + return verticalOverlap / verticalCenterDistance + 1; + } + if (verticalCenterDistance == 0) { + return horizontalOverlap / horizontalCenterDistance + 1; + } + return $wnd.Math.min(horizontalOverlap / horizontalCenterDistance, verticalOverlap / verticalCenterDistance) + 1; +} + +defineClass(209, 1, $intern_96); +var Lorg_eclipse_elk_core_AbstractLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core', 'AbstractLayoutProvider', 209); +function DisCoLayoutProvider(){ +} + +defineClass(1132, 209, $intern_96, DisCoLayoutProvider); +_.layout = function layout(layoutGraph, progressMonitor){ + var lad, layoutProvider, requestedAlgorithm, transformer; + $begin(progressMonitor, 'Connected Components Compaction', 1); + this.componentSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_DisCoOptions() , SPACING_COMPONENT_COMPONENT)))); + if ($hasProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + transformer = new ElkGraphTransformer(this.componentSpacing); + this.result = $importGraph(transformer, layoutGraph); + switch (castTo($getProperty_0(layoutGraph, ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY)), 481).ordinal) { + case 0: + $compact_0(new DisCoPolyominoCompactor, this.result); + $setProperty_1(layoutGraph, DEBUG_DISCO_POLYS_0, $getProperty(this.result, DEBUG_DISCO_POLYS_0)); + break; + default:$clinit_System(); + } + $applyLayout(transformer); + $setProperty_1(layoutGraph, DEBUG_DISCO_GRAPH_0, this.result); + $done_0(progressMonitor); +} +; +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_DisCoLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoLayoutProvider', 1132); +function $applyToDCGraph(this$static){ + var absoluteIntPositionX, absoluteIntPositionY, absolutePositionOnCanvas, gridCrop, originalCoordinates, padding, paddingHori, paddingVert, parentHeight, parentWidth, poly, poly$iterator; + gridCrop = $getFilledBounds(this$static.grid); + padding = castTo($getProperty(this$static.cmpGraph, ($clinit_DisCoOptions() , PADDING)), 116); + paddingHori = padding.left + padding.right; + paddingVert = padding.top_0 + padding.bottom; + parentWidth = gridCrop.third.value_0 * this$static.gridCellSizeX + paddingHori; + parentHeight = gridCrop.fourth.value_0 * this$static.gridCellSizeY + paddingVert; + $setDimensions(this$static.cmpGraph, new KVector_1(parentWidth, parentHeight)); + for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_7(poly$iterator), 562); + absoluteIntPositionX = poly.x_0 - gridCrop.first.value_0; + absoluteIntPositionY = poly.y_0 - gridCrop.second.value_0; + absolutePositionOnCanvas = $add_19($scale_0(new KVector_1(absoluteIntPositionX, absoluteIntPositionY), poly.cellSizeX, poly.cellSizeY), $scale($sub($clone_0($getDimensionsOfBoundingRectangle(poly.representee)), poly.pWidth * poly.cellSizeX, poly.pHeight * poly.cellSizeY), -0.5)); + originalCoordinates = $getMinCorner(poly.representee); + $setOffset(poly.representee, $sub_0(absolutePositionOnCanvas, originalCoordinates)); + } +} + +function $compact_0(this$static, graph){ + var gridCellRecommendation; + this$static.cmpGraph = graph; + this$static.polys = new ArrayList; + gridCellRecommendation = $computeCellSize(this$static.cmpGraph); + this$static.gridCellSizeX = gridCellRecommendation; + this$static.gridCellSizeY = gridCellRecommendation; + this$static.fill = $booleanValue(castToBoolean($getProperty(this$static.cmpGraph, ($clinit_PolyominoOptions() , POLYOMINO_FILL)))); + this$static.aspectRatio = castToDouble($getProperty(this$static.cmpGraph, ($clinit_CoreOptions() , ASPECT_RATIO_5))); + this$static.aspectRatio == null && (this$static.aspectRatio = 1); + $doubleValue(this$static.aspectRatio) > 1?(this$static.gridCellSizeX *= $doubleValue(this$static.aspectRatio)):(this$static.gridCellSizeY /= $doubleValue(this$static.aspectRatio)); + $createPolyominoes(this$static); + $packPolyominoes_0(this$static); + $applyToDCGraph(this$static); + $setProperty_0(this$static.cmpGraph, ($clinit_DisCoOptions() , DEBUG_DISCO_POLYS_0), this$static.polys); +} + +function $computeCellSize(graph){ + var bounds, comp, comp$iterator, comps, denominator, height, numOfComps, numerator, prodTerm, sumTerm, width_0; + sumTerm = 0; + prodTerm = 0; + comps = graph.components; + numOfComps = comps.map_0.size_1(); + for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 561); + bounds = (comp.changed && $update(comp) , comp.bounds); + width_0 = bounds.x_0; + height = bounds.y_0; + sumTerm += width_0 + height; + prodTerm += width_0 * height; + } + numerator = $wnd.Math.sqrt(400 * numOfComps * prodTerm - 4 * prodTerm + sumTerm * sumTerm) + sumTerm; + denominator = 2 * (100 * numOfComps - 1); + if (denominator == 0) { + return numerator; + } + return numerator / denominator; +} + +function $createPolyominoes(this$static){ + var comp, comp$iterator, comps, poly; + comps = this$static.cmpGraph.components; + for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 561); + poly = new DCPolyomino(comp, this$static.gridCellSizeX, this$static.gridCellSizeY); + $add_3(this$static.polys, poly); + } +} + +function $packPolyominoes_0(this$static){ + var id_0, poly$iterator, polyHolder; + id_0 = 0; + for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + castTo($next_7(poly$iterator), 562); + ++id_0; + } + polyHolder = new Polyominoes(this$static.polys, $doubleValue(this$static.aspectRatio), this$static.fill); + $packPolyominoes(polyHolder); + this$static.polys = polyHolder.polys; + this$static.grid = polyHolder.grid; +} + +function DisCoPolyominoCompactor(){ +} + +defineClass(1244, 1, {}, DisCoPolyominoCompactor); +_.fill = false; +_.gridCellSizeX = 0; +_.gridCellSizeY = 0; +var Lorg_eclipse_elk_alg_disco_DisCoPolyominoCompactor_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoPolyominoCompactor', 1244); +function $addElements(this$static, elements){ + var elem, elem$iterator; + for (elem$iterator = elements.iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + this$static.changed = true; + $add_6(this$static.shapes, elem); + elem.cp = this$static; + } +} + +function $getDimensionsOfBoundingRectangle(this$static){ + this$static.changed && $update(this$static); + return this$static.bounds; +} + +function $getMinCorner(this$static){ + this$static.changed && $update(this$static); + return this$static.minCornerOfBoundingRectangle; +} + +function $intersects(this$static, rect){ + var elem, elem$iterator; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + if (intersects_1(rect, elem.shape_0) || contains_51(rect, elem.shape_0)) { + return true; + } + } + return false; +} + +function $setOffset(this$static, offset){ + this$static.changed = true; + this$static.offset = offset; +} + +function $update(this$static){ + var dir_0, elem, elem$iterator, elemBounds, ext, ext$iterator, maxPos, maxX, maxY, minPos, minX, minY; + this$static.changed = false; + minX = $intern_59; + maxX = $intern_60; + minY = $intern_59; + maxY = $intern_60; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + elemBounds = elem.bounds; + minX = $wnd.Math.min(minX, elemBounds.x_0); + maxX = $wnd.Math.max(maxX, elemBounds.x_0 + elemBounds.width_0); + minY = $wnd.Math.min(minY, elemBounds.y_0); + maxY = $wnd.Math.max(maxY, elemBounds.y_0 + elemBounds.height); + for (ext$iterator = new ArrayList$1(elem.extensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_7(ext$iterator), 395); + dir_0 = ext.direction; + if (dir_0.horizontal) { + minPos = elemBounds.y_0 + ext.offset.y_0; + maxPos = minPos + ext.width_0; + minY = $wnd.Math.min(minY, minPos); + maxY = $wnd.Math.max(maxY, maxPos); + } + else { + minPos = elemBounds.x_0 + ext.offset.x_0; + maxPos = minPos + ext.width_0; + minX = $wnd.Math.min(minX, minPos); + maxX = $wnd.Math.max(maxX, maxPos); + } + } + } + this$static.bounds = new KVector_1(maxX - minX, maxY - minY); + this$static.minCornerOfBoundingRectangle = new KVector_1(minX + this$static.offset.x_0, minY + this$static.offset.y_0); +} + +function DCComponent(){ + this.offset = new KVector_1(0, 0); + this.shapes = new HashSet; +} + +defineClass(561, 1, {561:1}, DCComponent); +_.changed = true; +var Lorg_eclipse_elk_alg_disco_graph_DCComponent_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCComponent', 561); +function $clinit_DCDirection(){ + $clinit_DCDirection = emptyMethod; + NORTH_0 = new DCDirection('NORTH', 0); + EAST_0 = new DCDirection('EAST', 1); + SOUTH_0 = new DCDirection('SOUTH', 2); + WEST_0 = new DCDirection('WEST', 3); + NORTH_0.horizontal = false; + EAST_0.horizontal = true; + SOUTH_0.horizontal = false; + WEST_0.horizontal = true; +} + +function DCDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_23(name_0){ + $clinit_DCDirection(); + return valueOf(($clinit_DCDirection$Map() , $MAP_11), name_0); +} + +function values_29(){ + $clinit_DCDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]); +} + +defineClass(394, 22, {3:1, 35:1, 22:1, 394:1}, DCDirection); +_.horizontal = false; +var EAST_0, NORTH_0, SOUTH_0, WEST_0; +var Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit = createForEnum('org.eclipse.elk.alg.disco.graph', 'DCDirection', 394, Ljava_lang_Enum_2_classLit, values_29, valueOf_23); +function $clinit_DCDirection$Map(){ + $clinit_DCDirection$Map = emptyMethod; + $MAP_11 = createValueOfMap(($clinit_DCDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]))); +} + +var $MAP_11; +function DCElement(polyPath){ + var maxX, maxY, minX, minY, v, v$iterator; + this.extensions = new ArrayList; + this.shape_0 = polyPath; + minX = $intern_59; + minY = $intern_59; + maxX = $intern_60; + maxY = $intern_60; + for (v$iterator = $listIterator_2(polyPath, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(v$iterator), 8); + minX = $wnd.Math.min(minX, v.x_0); + minY = $wnd.Math.min(minY, v.y_0); + maxX = $wnd.Math.max(maxX, v.x_0); + maxY = $wnd.Math.max(maxY, v.y_0); + } + this.bounds = new ElkRectangle_0(minX, minY, maxX - minX, maxY - minY); +} + +defineClass(266, 134, {3:1, 266:1, 94:1, 134:1}, DCElement); +var Lorg_eclipse_elk_alg_disco_graph_DCElement_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCElement', 266); +function $setOffset_0(this$static, offset){ + this$static.offset = offset; +} + +function DCExtension(parent_0, direction, middlePos, width_0){ + var bounds, halfWidth; + this.direction = direction; + this.width_0 = width_0; + bounds = parent_0.bounds; + $setOffset_0(this, new KVector_1(-bounds.x_0, -bounds.y_0)); + $add_19(this.offset, middlePos); + halfWidth = width_0 / 2; + direction.horizontal?$sub(this.offset, 0, halfWidth):$sub(this.offset, halfWidth, 0); + $add_3(parent_0.extensions, this); +} + +defineClass(395, 1, {395:1}, DCExtension); +_.width_0 = 0; +var Lorg_eclipse_elk_alg_disco_graph_DCExtension_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCExtension', 395); +function $setDimensions(this$static, dimensions){ + this$static.dimensions = dimensions; +} + +function DCGraph(components){ + var component, elements, elements$iterator; + this.components = new LinkedHashSet; + for (elements$iterator = new ArrayList$1(components); elements$iterator.i < elements$iterator.this$01.array.length;) { + elements = castTo($next_7(elements$iterator), 14); + component = new DCComponent; + $addElements(component, elements); + $add_6(this.components, component); + } +} + +function DCGraph_0(components){ + DCGraph.call(this, components); +} + +defineClass(755, 134, $intern_95, DCGraph_0); +var Lorg_eclipse_elk_alg_disco_graph_DCGraph_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCGraph', 755); +function $clinit_CompactionStrategy(){ + $clinit_CompactionStrategy = emptyMethod; + POLYOMINO = new CompactionStrategy; +} + +function CompactionStrategy(){ + Enum.call(this, 'POLYOMINO', 0); +} + +function valueOf_24(name_0){ + $clinit_CompactionStrategy(); + return valueOf(($clinit_CompactionStrategy$Map() , $MAP_12), name_0); +} + +function values_30(){ + $clinit_CompactionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]); +} + +defineClass(481, 22, {3:1, 35:1, 22:1, 481:1}, CompactionStrategy); +var POLYOMINO; +var Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.disco.options', 'CompactionStrategy', 481, Ljava_lang_Enum_2_classLit, values_30, valueOf_24); +function $clinit_CompactionStrategy$Map(){ + $clinit_CompactionStrategy$Map = emptyMethod; + $MAP_12 = createValueOfMap(($clinit_CompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]))); +} + +var $MAP_12; +function $clinit_DisCoMetaDataProvider(){ + $clinit_DisCoMetaDataProvider = emptyMethod; + COMPONENT_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy() , POLYOMINO); + COMPONENT_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.disco.componentCompaction.strategy', COMPONENT_COMPACTION_STRATEGY_DEFAULT); + COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM = new Property('org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'); + DEBUG_DISCO_GRAPH = new Property('org.eclipse.elk.disco.debug.discoGraph'); + DEBUG_DISCO_POLYS = new Property('org.eclipse.elk.disco.debug.discoPolys'); +} + +function DisCoMetaDataProvider(){ + $clinit_DisCoMetaDataProvider(); +} + +defineClass(854, 1, $intern_90, DisCoMetaDataProvider); +_.apply_4 = function apply_50(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.strategy'), 'componentCompaction'), 'Connected Components Compaction Strategy'), 'Strategy for packing different connected components in order to save space and enhance readability of a graph.'), COMPONENT_COMPACTION_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'), 'componentCompaction'), 'Connected Components Layout Algorithm'), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoGraph'), 'debug'), 'DCGraph'), 'Access to the DCGraph is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoPolys'), 'debug'), 'List of Polyominoes'), 'Access to the polyominoes is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); + $apply_11((new DisCoOptions , registry)); +} +; +var COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM, COMPONENT_COMPACTION_STRATEGY, COMPONENT_COMPACTION_STRATEGY_DEFAULT, DEBUG_DISCO_GRAPH, DEBUG_DISCO_POLYS; +var Lorg_eclipse_elk_alg_disco_options_DisCoMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoMetaDataProvider', 854); +function $clinit_DisCoOptions(){ + $clinit_DisCoOptions = emptyMethod; + SPACING_COMPONENT_COMPONENT = ($clinit_CoreOptions() , SPACING_COMPONENT_COMPONENT_1); + EDGE_THICKNESS = EDGE_THICKNESS_1; + ASPECT_RATIO = ASPECT_RATIO_5; + PADDING = PADDING_6; + POLYOMINO_LOW_LEVEL_SORT_0 = ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT); + POLYOMINO_HIGH_LEVEL_SORT_0 = POLYOMINO_HIGH_LEVEL_SORT; + POLYOMINO_TRAVERSAL_STRATEGY_0 = POLYOMINO_TRAVERSAL_STRATEGY; + POLYOMINO_FILL_0 = POLYOMINO_FILL; + COMPONENT_COMPACTION_STRATEGY_0 = ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY); + COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0 = COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM; + DEBUG_DISCO_GRAPH_0 = DEBUG_DISCO_GRAPH; + DEBUG_DISCO_POLYS_0 = DEBUG_DISCO_POLYS; +} + +function $apply_11(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.disco'), 'ELK DisCo'), 'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'), new DisCoOptions$DiscoFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.aspectRatio', $getDefault(ASPECT_RATIO)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.padding', $getDefault(PADDING)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.lowLevelSort', $getDefault(POLYOMINO_LOW_LEVEL_SORT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.highLevelSort', $getDefault(POLYOMINO_HIGH_LEVEL_SORT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.traversalStrategy', $getDefault(POLYOMINO_TRAVERSAL_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.fill', $getDefault(POLYOMINO_FILL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.strategy', $getDefault(COMPONENT_COMPACTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm', $getDefault(COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoGraph', $getDefault(DEBUG_DISCO_GRAPH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoPolys', $getDefault(DEBUG_DISCO_POLYS_0)); +} + +function DisCoOptions(){ + $clinit_DisCoOptions(); +} + +defineClass(998, 1, $intern_90, DisCoOptions); +_.apply_4 = function apply_51(registry){ + $apply_11(registry); +} +; +var ASPECT_RATIO, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0, COMPONENT_COMPACTION_STRATEGY_0, DEBUG_DISCO_GRAPH_0, DEBUG_DISCO_POLYS_0, EDGE_THICKNESS, PADDING, POLYOMINO_FILL_0, POLYOMINO_HIGH_LEVEL_SORT_0, POLYOMINO_LOW_LEVEL_SORT_0, POLYOMINO_TRAVERSAL_STRATEGY_0, SPACING_COMPONENT_COMPONENT; +var Lorg_eclipse_elk_alg_disco_options_DisCoOptions_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions', 998); +function DisCoOptions$DiscoFactory(){ +} + +defineClass(999, 1, {}, DisCoOptions$DiscoFactory); +_.create_0 = function create_2(){ + var provider; + return provider = new DisCoLayoutProvider , provider; +} +; +_.destroy = function destroy(obj){ +} +; +var Lorg_eclipse_elk_alg_disco_options_DisCoOptions$DiscoFactory_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions/DiscoFactory', 999); +function $addExtensionsToPoly(this$static, elem){ + var baseX, baseY, compCorner, dir_0, elemPos, extension, extension$iterator, extensions, polyDir, polyoOffset, pos, xe, xp, xpPlusWidth, ye, yp, ypPlusWidth; + extensions = elem.extensions; + compCorner = $getMinCorner(this$static.representee); + polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); + baseX = compCorner.x_0 - polyoOffset.x_0; + baseY = compCorner.y_0 - polyoOffset.y_0; + elemPos = elem.bounds; + baseX = elemPos.x_0 - baseX; + baseY = elemPos.y_0 - baseY; + for (extension$iterator = new ArrayList$1(extensions); extension$iterator.i < extension$iterator.this$01.array.length;) { + extension = castTo($next_7(extension$iterator), 395); + pos = extension.offset; + xe = baseX + pos.x_0; + ye = baseY + pos.y_0; + xp = round_int(xe / this$static.cellSizeX); + yp = round_int(ye / this$static.cellSizeY); + dir_0 = extension.direction; + switch (dir_0.ordinal) { + case 0: + polyDir = ($clinit_Direction() , NORTH); + break; + case 1: + polyDir = ($clinit_Direction() , EAST); + break; + case 2: + polyDir = ($clinit_Direction() , SOUTH); + break; + default:polyDir = ($clinit_Direction() , WEST); + } + if (dir_0.horizontal) { + ypPlusWidth = round_int((ye + extension.width_0) / this$static.cellSizeY); + $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(yp), valueOf_4(ypPlusWidth))); + dir_0 == ($clinit_DCDirection() , WEST_0)?$weaklyBlockArea(this$static, 0, yp, xp, ypPlusWidth):$weaklyBlockArea(this$static, xp, yp, this$static.pWidth - 1, ypPlusWidth); + } + else { + xpPlusWidth = round_int((xe + extension.width_0) / this$static.cellSizeX); + $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(xp), valueOf_4(xpPlusWidth))); + dir_0 == ($clinit_DCDirection() , NORTH_0)?$weaklyBlockArea(this$static, xp, 0, xpPlusWidth, yp):$weaklyBlockArea(this$static, xp, yp, xpPlusWidth, this$static.pHeight - 1); + } + } +} + +function $computeLowResDimension(dim, cellSize){ + var cellFit, fitTruncated; + cellFit = dim / cellSize; + fitTruncated = round_int(cellFit); + cellFit > fitTruncated && ++fitTruncated; + return fitTruncated; +} + +function $fillCells(this$static){ + var baseX, compCorner, curX, curY, polyoOffset, x_0, y_0; + compCorner = $getMinCorner(this$static.representee); + polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); + baseX = compCorner.x_0 - polyoOffset.x_0; + curY = compCorner.y_0 - polyoOffset.y_0; + for (y_0 = 0; y_0 < this$static.pHeight; y_0++) { + curX = baseX; + for (x_0 = 0; x_0 < this$static.pWidth; x_0++) { + $intersects(this$static.representee, new ElkRectangle_0(curX, curY, this$static.cellSizeX, this$static.cellSizeY)) && $set_5(this$static, x_0, y_0, false, true); + curX += this$static.cellSizeX; + } + curY += this$static.cellSizeY; + } +} + +function DCPolyomino(comp, csX, csY){ + var compDims, elem, elem$iterator; + Polyomino.call(this, new ArrayList); + this.cellSizeX = csX; + this.cellSizeY = csY; + this.representee = comp; + compDims = (comp.changed && $update(comp) , comp.bounds); + this.pWidth = $computeLowResDimension(compDims.x_0, this.cellSizeX); + this.pHeight = $computeLowResDimension(compDims.y_0, this.cellSizeY); + $reinitialize(this, this.pWidth, this.pHeight); + $fillCells(this); + for (elem$iterator = this.representee.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + elem.extensions.array.length > 0 && $addExtensionsToPoly(this, elem); + } +} + +defineClass(562, 167, {321:1, 167:1, 562:1}, DCPolyomino); +_.cellSizeX = 0; +_.cellSizeY = 0; +_.pHeight = 0; +_.pWidth = 0; +var Lorg_eclipse_elk_alg_disco_structures_DCPolyomino_2_classLit = createForClass('org.eclipse.elk.alg.disco.structures', 'DCPolyomino', 562); +function $clinit_ElkGraphComponentsProcessor(){ + $clinit_ElkGraphComponentsProcessor = emptyMethod; + visited_0 = new ArrayList; + incidenceMap = new HashMap; + components_0 = new ArrayList; +} + +function addNodesToIncidenceSet(incidentNodes, edges, chooseNode){ + var edge, edge$iterator; + for (edge$iterator = edges.iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 79); + $add_6(incidentNodes, castTo(chooseNode.apply_0(edge), 33)); + } +} + +function computeIncidences(nodes){ + var adjacentAndInsideParent, adjacentNodes, connectedToParentPort, edges, incomingEdge, incomingEdge$iterator, node, node$iterator, nodesAtPort, outgoingEdge, outgoingEdge$iterator, port, sameHierarchyLevel; + adjacentAndInsideParent = new HashMap; + for (node$iterator = new AbstractEList$EIterator(nodes); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + adjacentNodes = new HashSet; + $put_6(incidenceMap, node, adjacentNodes); + sameHierarchyLevel = new ElkGraphComponentsProcessor$lambda$0$Type; + edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)])))), 83); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(($clinit_Boolean() , true)), 14), new ElkGraphComponentsProcessor$lambda$1$Type); + connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); + for (incomingEdge$iterator = connectedToParentPort.iterator_0(); incomingEdge$iterator.hasNext_0();) { + incomingEdge = castTo(incomingEdge$iterator.next_1(), 79); + port = getSourcePort(incomingEdge); + if (port) { + nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); + if (!nodesAtPort) { + nodesAtPort = getInnerNeighborsOfPort(port); + $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); + } + $addAll(adjacentNodes, nodesAtPort); + } + } + edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH])))), 83); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(true), 14), new ElkGraphComponentsProcessor$lambda$3$Type); + connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); + for (outgoingEdge$iterator = connectedToParentPort.iterator_0(); outgoingEdge$iterator.hasNext_0();) { + outgoingEdge = castTo(outgoingEdge$iterator.next_1(), 79); + port = getTargetPort(outgoingEdge); + if (port) { + nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); + if (!nodesAtPort) { + nodesAtPort = getInnerNeighborsOfPort(port); + $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); + } + $addAll(adjacentNodes, nodesAtPort); + } + } + } +} + +function dfs(start_0, component){ + var adjacentNodes, node, node$iterator; + $add_3(visited_0, start_0); + component.add_2(start_0); + adjacentNodes = castTo($get_10(incidenceMap, start_0), 21); + if (adjacentNodes) { + for (node$iterator = adjacentNodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + $indexOf_3(visited_0, node, 0) != -1 || dfs(node, component); + } + } +} + +function getInnerNeighborsOfPort(port){ + var allEdges, inwardsPredicate, nodeMapper, portParent; + portParent = $getParent_3(port); + inwardsPredicate = new ElkGraphComponentsProcessor$lambda$5$Type(portParent); + nodeMapper = new ElkGraphComponentsProcessor$lambda$6$Type(portParent); + allEdges = new ArrayList; + $addAll_2(allEdges, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); + $addAll_2(allEdges, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); + return castTo($collect_1($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(allEdges, 16)), inwardsPredicate), nodeMapper), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); +} + +function lambda$0_14(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return $getParent_2(getSourceNode(edge_0)) == $getParent_2(getTargetNode_0(edge_0)); +} + +function lambda$2_1(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return getSourceNode(edge_0) == $getParent_2(getTargetNode_0(edge_0)); +} + +function lambda$4_1(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return getTargetNode_0(edge_0) == $getParent_2(getSourceNode(edge_0)); +} + +function lambda$5_0(portParent_0, edge_1){ + $clinit_ElkGraphComponentsProcessor(); + return portParent_0 == $getParent_2(getSourceNode(edge_1)) || portParent_0 == $getParent_2(getTargetNode_0(edge_1)); +} + +function lambda$6(portParent_0, edge_1){ + $clinit_ElkGraphComponentsProcessor(); + return portParent_0 == getSourceNode(edge_1)?getTargetNode_0(edge_1):getSourceNode(edge_1); +} + +function split_2(graph){ + $clinit_ElkGraphComponentsProcessor(); + var children, component, node, node$iterator; + visited_0 = new ArrayList; + incidenceMap = new HashMap; + components_0 = new ArrayList; + children = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); + computeIncidences(children); + for (node$iterator = new AbstractEList$EIterator(children); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + if ($indexOf_3(visited_0, node, 0) == -1) { + component = new ArrayList; + $add_3(components_0, component); + dfs(node, component); + } + } + return components_0; +} + +var components_0, incidenceMap, visited_0; +function $test(arg0){ + return lambda$0_14(castTo(arg0, 79)); +} + +function ElkGraphComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1268, 1, $intern_39, ElkGraphComponentsProcessor$lambda$0$Type); +_.test_0 = function test_12(arg0){ + return $test(arg0); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$0$Type', 1268); +function ElkGraphComponentsProcessor$lambda$1$Type(){ +} + +defineClass(1269, 1, {}, ElkGraphComponentsProcessor$lambda$1$Type); +_.apply_0 = function apply_52(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getSourceNode(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$1$Type', 1269); +function ElkGraphComponentsProcessor$lambda$2$Type(){ +} + +defineClass(1270, 1, $intern_39, ElkGraphComponentsProcessor$lambda$2$Type); +_.test_0 = function test_13(arg0){ + return lambda$2_1(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$2$Type', 1270); +function ElkGraphComponentsProcessor$lambda$3$Type(){ +} + +defineClass(1271, 1, {}, ElkGraphComponentsProcessor$lambda$3$Type); +_.apply_0 = function apply_53(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getTargetNode_0(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$3$Type', 1271); +function ElkGraphComponentsProcessor$lambda$4$Type(){ +} + +defineClass(1272, 1, $intern_39, ElkGraphComponentsProcessor$lambda$4$Type); +_.test_0 = function test_14(arg0){ + return lambda$4_1(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$4$Type', 1272); +function ElkGraphComponentsProcessor$lambda$5$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1273, 1, $intern_39, ElkGraphComponentsProcessor$lambda$5$Type); +_.test_0 = function test_15(arg0){ + return lambda$5_0(this.portParent_0, castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$5$Type', 1273); +function ElkGraphComponentsProcessor$lambda$6$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1274, 1, {}, ElkGraphComponentsProcessor$lambda$6$Type); +_.apply_0 = function apply_54(arg0){ + return lambda$6(this.portParent_0, castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$6$Type', 1274); +function $adjustFirstSegment(source, chain, dir_0){ + var firstPoint, iter; + firstPoint = (checkCriticalElement(chain.size_0 != 0) , castTo($removeNode_0(chain, chain.header.next_0), 8)); + switch (dir_0.ordinal) { + case 0: + firstPoint.y_0 = 0; + break; + case 2: + firstPoint.y_0 = source.height; + break; + case 3: + firstPoint.x_0 = 0; + break; + default:firstPoint.x_0 = source.width_0; + } + iter = $listIterator_2(chain, 0); + $add_8(iter, firstPoint); + return chain; +} + +function $adjustRelatedPort(port, edgePoint, dir_0){ + dir_0.horizontal?$setY_3(port, edgePoint.y_0 - port.height / 2):$setX_2(port, edgePoint.x_0 - port.width_0 / 2); +} + +function $applyLayout(this$static){ + var adjustedPorts, dir_0, edge, edgeSection, graphDimensions, inEntry, inEntry$iterator, label_0, label$iterator, newHeight, newPoints, newWidth, oldHeight, oldWidth, outEntry, outEntry$iterator, port, port$iterator, portToAdjust, px, py, xFactor, yFactor; + graphDimensions = this$static.transformedGraph.dimensions; + newWidth = graphDimensions.x_0; + newHeight = graphDimensions.y_0; + oldWidth = this$static.parent_0.width_0; + oldHeight = this$static.parent_0.height; + $setDimensions_0(this$static.parent_0, graphDimensions.x_0, graphDimensions.y_0); + xFactor = newWidth / oldWidth; + yFactor = newHeight / oldHeight; + for (label$iterator = new AbstractEList$EIterator($getLabels_1(this$static.parent_0)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + $setX_2(label_0, label_0.x_0 * xFactor); + $setY_3(label_0, label_0.y_0 * yFactor); + } + for (port$iterator = new AbstractEList$EIterator($getPorts_3(this$static.parent_0)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + px = port.x_0; + py = port.y_0; + px > 0 && $setX_2(port, px * xFactor); + py > 0 && $setY_3(port, py * yFactor); + } + $forEach_2(this$static.elementMapping, new ElkGraphTransformer$OffsetApplier); + adjustedPorts = new ArrayList; + for (inEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.incomingExtensionsMapping)).this$01); inEntry$iterator.hasNext;) { + inEntry = $next_4(inEntry$iterator); + edge = castTo(inEntry.getKey(), 79); + dir_0 = castTo(inEntry.getValue(), 395).direction; + edgeSection = firstEdgeSection(edge, false, false); + newPoints = $adjustFirstSegment(getSourceNode(edge), createVectorChain(edgeSection), dir_0); + applyVectorChain(newPoints, edgeSection); + portToAdjust = getSourcePort(edge); + if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { + adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; + $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.header.next_0.value_0, 8)), dir_0); + } + } + for (outEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.outgoingExtensionsMapping)).this$01); outEntry$iterator.hasNext;) { + outEntry = $next_4(outEntry$iterator); + edge = castTo(outEntry.getKey(), 79); + dir_0 = castTo(outEntry.getValue(), 395).direction; + edgeSection = firstEdgeSection(edge, false, false); + newPoints = $adjustFirstSegment(getTargetNode_0(edge), reverse_3(createVectorChain(edgeSection)), dir_0); + newPoints = reverse_3(newPoints); + applyVectorChain(newPoints, edgeSection); + portToAdjust = getTargetPort(edge); + if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { + adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; + $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.tail.prev.value_0, 8)), dir_0); + } + } +} + +function $computeIntersection(p1, p2, p3, p4){ + var denominator, factor1, factor2, x_0, x1, x2, x3, x4, y_0, y1, y2, y3, y4; + x1 = p1.x_0; + y1 = p1.y_0; + x2 = p2.x_0; + y2 = p2.y_0; + x3 = p3.x_0; + y3 = p3.y_0; + x4 = p4.x_0; + y4 = p4.y_0; + factor1 = x1 * y2 - y1 * x2; + factor2 = x3 * y4 - y3 * x4; + denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); + x_0 = (factor1 * (x3 - x4) - factor2 * (x1 - x2)) / denominator; + y_0 = (factor1 * (y3 - y4) - factor2 * (y1 - y2)) / denominator; + return new KVector_1(x_0, y_0); +} + +function $getContour(edgePoints, thickness){ + var ccwMerged, ccwPoints, current, currentPoint, cwMerged, cwPoints, i, i0, i1, i2, intersectionPoint, numberOfPoints, orthPoints, predecessor, radius, successor; + ccwPoints = new ArrayList; + cwPoints = new ArrayList; + radius = thickness / 2; + numberOfPoints = edgePoints.size_1(); + current = castTo(edgePoints.get_0(0), 8); + successor = castTo(edgePoints.get_0(1), 8); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + for (i0 = 2; i0 < numberOfPoints; i0++) { + predecessor = current; + current = successor; + successor = castTo(edgePoints.get_0(i0), 8); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, predecessor.x_0, predecessor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + } + orthPoints = $getOrthogonalPoints(successor.x_0, successor.y_0, current.x_0, current.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + ccwMerged = new KVectorChain; + cwMerged = new ArrayList; + $add_7(ccwMerged, (checkCriticalElementIndex(0, ccwPoints.array.length) , castTo(ccwPoints.array[0], 8))); + for (i1 = 1; i1 < ccwPoints.array.length - 2; i1 += 2) { + currentPoint = (checkCriticalElementIndex(i1, ccwPoints.array.length) , castTo(ccwPoints.array[i1], 8)); + intersectionPoint = $computeIntersection((checkCriticalElementIndex(i1 - 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 - 1], 8)), currentPoint, (checkCriticalElementIndex(i1 + 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 1], 8)), (checkCriticalElementIndex(i1 + 2, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 2], 8))); + !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?($addNode_0(ccwMerged, currentPoint, ccwMerged.tail.prev, ccwMerged.tail) , true):($addNode_0(ccwMerged, intersectionPoint, ccwMerged.tail.prev, ccwMerged.tail) , true); + } + $add_7(ccwMerged, castTo($get_11(ccwPoints, ccwPoints.array.length - 1), 8)); + $add_3(cwMerged, (checkCriticalElementIndex(0, cwPoints.array.length) , castTo(cwPoints.array[0], 8))); + for (i2 = 1; i2 < cwPoints.array.length - 2; i2 += 2) { + currentPoint = (checkCriticalElementIndex(i2, cwPoints.array.length) , castTo(cwPoints.array[i2], 8)); + intersectionPoint = $computeIntersection((checkCriticalElementIndex(i2 - 1, cwPoints.array.length) , castTo(cwPoints.array[i2 - 1], 8)), currentPoint, (checkCriticalElementIndex(i2 + 1, cwPoints.array.length) , castTo(cwPoints.array[i2 + 1], 8)), (checkCriticalElementIndex(i2 + 2, cwPoints.array.length) , castTo(cwPoints.array[i2 + 2], 8))); + !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?(cwMerged.array[cwMerged.array.length] = currentPoint , true):(cwMerged.array[cwMerged.array.length] = intersectionPoint , true); + } + $add_3(cwMerged, castTo($get_11(cwPoints, cwPoints.array.length - 1), 8)); + for (i = cwMerged.array.length - 1; i >= 0; i--) { + $add_7(ccwMerged, (checkCriticalElementIndex(i, cwMerged.array.length) , castTo(cwMerged.array[i], 8))); + } + return ccwMerged; +} + +function $getOrthogonalPoints(curX, curY, nxtX, nxtY, radius){ + var angleRadians, difX, difY, orthAngleCCW, orthAngleCW, xCCW, xCW, yCCW, yCW; + difX = nxtX - curX; + difY = nxtY - curY; + angleRadians = $wnd.Math.atan2(difX, difY); + orthAngleCCW = angleRadians + $intern_97; + orthAngleCW = angleRadians - $intern_97; + xCCW = radius * $wnd.Math.sin(orthAngleCCW) + curX; + yCCW = radius * $wnd.Math.cos(orthAngleCCW) + curY; + xCW = radius * $wnd.Math.sin(orthAngleCW) + curX; + yCW = radius * $wnd.Math.cos(orthAngleCW) + curY; + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [new KVector_1(xCCW, yCCW), new KVector_1(xCW, yCW)])); +} + +function $importElkEdge(this$static, edge, newComponent){ + var componentLabel, contour, edgeSection, label_0, label$iterator, labels, points, shape_0, thickness; + edgeSection = firstEdgeSection(edge, false, false); + points = createVectorChain(edgeSection); + thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); + contour = $getContour(points, thickness + this$static.componentSpacing); + shape_0 = new DCElement(contour); + $copyProperties(shape_0, edge); + $put_6(this$static.elementMapping, edge, shape_0); + newComponent.array[newComponent.array.length] = shape_0; + labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + newComponent.array[newComponent.array.length] = componentLabel; + } + return shape_0; +} + +function $importElkEdges(this$static, edges, newComponent){ + var componentEdge, edge, edge$iterator; + for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 79); + componentEdge = castTo($get_10(this$static.elementMapping, edge), 266); + !componentEdge && ($getParent_2(getSourceNode(edge)) == $getParent_2(getTargetNode_0(edge))?$importElkEdge(this$static, edge, newComponent):getSourceNode(edge) == $getParent_2(getTargetNode_0(edge))?$get_10(this$static.incomingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getTargetNode_0(edge)) != null && $importExtension(this$static, edge, newComponent, false):$get_10(this$static.outgoingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getSourceNode(edge)) != null && $importExtension(this$static, edge, newComponent, true)); + } +} + +function $importElkShape(this$static, element, considerWhenApplyingOffset, offsetX, offsetY){ + var coords, halfComponentSpacing, shape_0, x0, x1, y0, y1; + if (!(instanceOf(element, 239) || instanceOf(element, 354) || instanceOf(element, 186))) { + throw toJs(new IllegalArgumentException_0('Method only works for ElkNode-, ElkLabel and ElkPort-objects.')); + } + halfComponentSpacing = this$static.componentSpacing / 2; + x0 = element.x_0 + offsetX - halfComponentSpacing; + y0 = element.y_0 + offsetY - halfComponentSpacing; + x1 = x0 + element.width_0 + this$static.componentSpacing; + y1 = y0 + element.height + this$static.componentSpacing; + coords = new KVectorChain; + $add_7(coords, new KVector_1(x0, y0)); + $add_7(coords, new KVector_1(x0, y1)); + $add_7(coords, new KVector_1(x1, y1)); + $add_7(coords, new KVector_1(x1, y0)); + shape_0 = new DCElement(coords); + $copyProperties(shape_0, element); + considerWhenApplyingOffset && $put_6(this$static.elementMapping, element, shape_0); + return shape_0; +} + +function $importExtension(this$static, edge, newComponent, outgoingExtension){ + var componentLabel, contour, dir_0, edgeSection, extParent, extensionWidth, fixedEdgePoints, innerPoint, label_0, label$iterator, labels, middlePos, outerPoint, points, shape_0, thickness; + edgeSection = firstEdgeSection(edge, false, false); + points = createVectorChain(edgeSection); + outgoingExtension && (points = reverse_3(points)); + thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); + outerPoint = (checkCriticalElement(points.size_0 != 0) , castTo(points.header.next_0.value_0, 8)); + innerPoint = castTo($get_7(points, 1), 8); + if (points.size_0 > 2) { + fixedEdgePoints = new ArrayList; + $addAll_2(fixedEdgePoints, new AbstractList$SubList(points, 1, points.size_0)); + contour = $getContour(fixedEdgePoints, thickness + this$static.componentSpacing); + shape_0 = new DCElement(contour); + $copyProperties(shape_0, edge); + newComponent.array[newComponent.array.length] = shape_0; + } + else { + outgoingExtension?(shape_0 = castTo($get_10(this$static.elementMapping, getSourceNode(edge)), 266)):(shape_0 = castTo($get_10(this$static.elementMapping, getTargetNode_0(edge)), 266)); + } + extParent = getSourceNode(edge); + outgoingExtension && (extParent = getTargetNode_0(edge)); + dir_0 = $nearestSide(outerPoint, extParent); + extensionWidth = thickness + this$static.componentSpacing; + if (dir_0.horizontal) { + extensionWidth += $wnd.Math.abs(outerPoint.y_0 - innerPoint.y_0); + middlePos = new KVector_1(innerPoint.x_0, (innerPoint.y_0 + outerPoint.y_0) / 2); + } + else { + extensionWidth += $wnd.Math.abs(outerPoint.x_0 - innerPoint.x_0); + middlePos = new KVector_1((innerPoint.x_0 + outerPoint.x_0) / 2, innerPoint.y_0); + } + outgoingExtension?$put_6(this$static.outgoingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)):$put_6(this$static.incomingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)); + $put_6(this$static.elementMapping, edge, shape_0); + labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + newComponent.array[newComponent.array.length] = componentLabel; + } +} + +function $importGraph(this$static, graph){ + var component, component$iterator, componentLabel, componentNode, componentPort, components, edgeSet, label_0, label$iterator, label$iterator0, labels, node, node$iterator, nodeX, nodeY, port, port$iterator, portX, portY, ports, result, subResult; + this$static.parent_0 = graph; + components = split_2(graph); + result = new ArrayList; + for (component$iterator = new ArrayList$1(components); component$iterator.i < component$iterator.this$01.array.length;) { + component = castTo($next_7(component$iterator), 15); + subResult = new ArrayList; + result.array[result.array.length] = subResult; + edgeSet = new HashSet; + for (node$iterator = component.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + componentNode = $importElkShape(this$static, node, true, 0, 0); + subResult.array[subResult.array.length] = componentNode; + nodeX = node.x_0; + nodeY = node.y_0; + new KVector_1(nodeX, nodeY); + labels = (!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels); + for (label$iterator0 = new AbstractEList$EIterator(labels); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator0), 137); + componentLabel = $importElkShape(this$static, label_0, false, nodeX, nodeY); + subResult.array[subResult.array.length] = componentLabel; + } + ports = (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports); + for (port$iterator = new AbstractEList$EIterator(ports); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + componentPort = $importElkShape(this$static, port, false, nodeX, nodeY); + subResult.array[subResult.array.length] = componentPort; + portX = port.x_0 + nodeX; + portY = port.y_0 + nodeY; + labels = (!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + componentLabel = $importElkShape(this$static, label_0, false, portX, portY); + subResult.array[subResult.array.length] = componentLabel; + } + } + $addAll(edgeSet, newHashSet(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [allOutgoingEdges(node), allIncomingEdges(node)])))); + } + $importElkEdges(this$static, edgeSet, subResult); + } + this$static.transformedGraph = new DCGraph_0(result); + $copyProperties(this$static.transformedGraph, graph); + return this$static.transformedGraph; +} + +function $nearestSide(point, node){ + var distance, result, shortestDistance; + shortestDistance = $intern_98; + result = ($clinit_DCDirection() , NORTH_0); + shortestDistance = $wnd.Math.abs(point.y_0); + distance = $wnd.Math.abs(node.height - point.y_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = SOUTH_0; + } + distance = $wnd.Math.abs(point.x_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = WEST_0; + } + distance = $wnd.Math.abs(node.width_0 - point.x_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = EAST_0; + } + return result; +} + +function ElkGraphTransformer(componentSpacing){ + this.elementMapping = new HashMap; + this.incomingExtensionsMapping = new HashMap; + this.outgoingExtensionsMapping = new HashMap; + this.componentSpacing = componentSpacing; +} + +defineClass(1241, 1, {}, ElkGraphTransformer); +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer', 1241); +function $accept_2(this$static, elem, poly){ + var applier, edgeSection, points, shape_0; + this$static.offset = poly.cp.offset; + if (instanceOf(elem, 352)) { + edgeSection = firstEdgeSection(castTo(elem, 79), false, false); + points = createVectorChain(edgeSection); + applier = new ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$static); + $forEach_0(points, applier); + applyVectorChain(points, edgeSection); + elem.getProperty(($clinit_CoreOptions() , JUNCTION_POINTS_0)) != null && $forEach_0(castTo(elem.getProperty(JUNCTION_POINTS_0), 74), applier); + } + else { + shape_0 = castTo(elem, 470); + shape_0.setX(shape_0.getX() + this$static.offset.x_0); + shape_0.setY(shape_0.getY() + this$static.offset.y_0); + } +} + +function ElkGraphTransformer$OffsetApplier(){ +} + +defineClass(1242, 1, {}, ElkGraphTransformer$OffsetApplier); +_.accept_1 = function accept_55(elem, poly){ + $accept_2(this, castTo(elem, 160), castTo(poly, 266)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier', 1242); +function $accept_3(this$static, point){ + $add_18(point, this$static.this$11.offset.x_0, this$static.this$11.offset.y_0); +} + +function ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$1){ + this.this$11 = this$1; +} + +defineClass(1243, 1, $intern_19, ElkGraphTransformer$OffsetApplier$OffSetToChainApplier); +_.accept = function accept_56(point){ + $accept_3(this, castTo(point, 8)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier$OffSetToChainApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier', 1243); +function $buildIncidenceLists(graph){ + var edge, edge$iterator, incidence, n, node, node$iterator; + n = graph.nodes.array.length; + incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + incidence[node.id_0] = new LinkedList; + } + for (edge$iterator = new ArrayList$1(graph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + incidence[edge.source.id_0].add_2(edge); + incidence[edge.target.id_0].add_2(edge); + } + return incidence; +} + +function $dfs_0(this$static, node, last, graph, visited, incidence){ + var component, edge, edge$iterator; + if (!visited[node.id_0]) { + visited[node.id_0] = true; + component = graph; + !component && (component = new FGraph); + $add_3(component.nodes, node); + for (edge$iterator = incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 282); + if (edge.target == last || edge.source == last) { + continue; + } + edge.source != node && $dfs_0(this$static, edge.source, node, component, visited, incidence); + edge.target != node && $dfs_0(this$static, edge.target, node, component, visited, incidence); + $add_3(component.edges, edge); + $addAll_2(component.labels, edge.labels); + } + return component; + } + return null; +} + +function $moveGraph(destGraph, sourceGraph, offsetx, offsety){ + var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, label_0, label$iterator, node, node$iterator; + graphOffset = new KVector_1(offsetx, offsety); + $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_0() , BB_UPLEFT)), 8)); + for (node$iterator = new ArrayList$1(sourceGraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + $add_19(node.position, graphOffset); + $add_3(destGraph.nodes, node); + } + for (edge$iterator = new ArrayList$1(sourceGraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + for (bendpoint$iterator = new ArrayList$1(edge.bendpoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { + bendpoint = castTo($next_7(bendpoint$iterator), 559); + $add_19(bendpoint.position, graphOffset); + } + $add_3(destGraph.edges, edge); + } + for (label$iterator = new ArrayList$1(sourceGraph.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 447); + $add_19(label_0.position, graphOffset); + $add_3(destGraph.labels, label_0); + } +} + +function $recombine(components){ + var broadestRow, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, result, size_0, spacing, totalArea, xpos, ypos; + if (components.size_1() == 1) { + return castTo(components.get_0(0), 231); + } + else if (components.size_1() <= 0) { + return new FGraph; + } + for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 231); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_42; + maxy = $intern_42; + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + priority += castTo($getProperty(node, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + minx = $wnd.Math.min(minx, node.position.x_0 - node.size_0.x_0 / 2); + miny = $wnd.Math.min(miny, node.position.y_0 - node.size_0.y_0 / 2); + maxx = $wnd.Math.max(maxx, node.position.x_0 + node.size_0.x_0 / 2); + maxy = $wnd.Math.max(maxy, node.position.y_0 + node.size_0.y_0 / 2); + } + $setProperty_0(graph, ($clinit_ForceOptions() , PRIORITY), valueOf_4(priority)); + $setProperty_0(graph, ($clinit_InternalProperties_0() , BB_UPLEFT), new KVector_1(minx, miny)); + $setProperty_0(graph, BB_LOWRIGHT, new KVector_1(maxx, maxy)); + } + $clinit_Collections(); + components.sort_0(new ComponentsProcessor$1); + result = new FGraph; + $copyProperties(result, castTo(components.get_0(0), 94)); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 231); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_ForceOptions() , ASPECT_RATIO_0))))); + spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 231); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $moveGraph(result, graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + return result; +} + +function $split_1(this$static, graph){ + var comp, comp$iterator, components, id_0, incidence, node, node$iterator, node$iterator0, separate, visited; + separate = castToBoolean($getProperty(graph, ($clinit_ForceOptions() , SEPARATE_CONNECTED_COMPONENTS))); + if (separate == null || (checkCriticalNotNull(separate) , separate)) { + visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.nodes.array.length, 16, 1); + incidence = $buildIncidenceLists(graph); + components = new LinkedList; + for (node$iterator0 = new ArrayList$1(graph.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 144); + comp = $dfs_0(this$static, node, null, null, visited, incidence); + if (comp) { + $copyProperties(comp, graph); + $addNode_0(components, comp, components.tail.prev, components.tail); + } + } + if (components.size_0 > 1) { + for (comp$iterator = $listIterator_2(components, 0); comp$iterator.currentNode != comp$iterator.this$01.tail;) { + comp = castTo($next_10(comp$iterator), 231); + id_0 = 0; + for (node$iterator = new ArrayList$1(comp.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit, 1), $intern_100, 231, 0, [graph])); +} + +function ComponentsProcessor(){ +} + +defineClass(753, 1, {}, ComponentsProcessor); +var Lorg_eclipse_elk_alg_force_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor', 753); +function $compare_7(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_ForceOptions() , PRIORITY)), 19).value_0 - castTo($getProperty(graph1, PRIORITY), 19).value_0; + if (prio == 0) { + size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph1, BB_UPLEFT), 8)); + size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT), 8)), castTo($getProperty(graph2, BB_UPLEFT), 8)); + return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); + } + return prio; +} + +function ComponentsProcessor$1(){ +} + +defineClass(1232, 1, $intern_88, ComponentsProcessor$1); +_.compare_1 = function compare_28(graph1, graph2){ + return $compare_7(castTo(graph1, 231), castTo(graph2, 231)); +} +; +_.equals_0 = function equals_80(other){ + return this === other; +} +; +_.reversed = function reversed_20(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_force_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor/1', 1232); +function $applyLayout_0(fgraph){ + var endLocation, fedge, fedge$iterator, flabel, flabel$iterator, fnode, fnode$iterator, height, kedge, kedgeSection, kgraph, klabel, knode, labelPos, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, nodePos, object, offset, padding, pos, size_0, startLocation, width_0, v, v_0; + kgraph = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , ORIGIN)), 33); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_42; + maxYPos = $intern_42; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + pos = node.position; + size_0 = node.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + padding = castTo($getProperty_0(kgraph, ($clinit_ForceOptions() , PADDING_0)), 116); + offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); + for (fnode$iterator = new ArrayList$1(fgraph.nodes); fnode$iterator.i < fnode$iterator.this$01.array.length;) { + fnode = castTo($next_7(fnode$iterator), 144); + object = $getProperty(fnode, ORIGIN); + if (instanceOf(object, 239)) { + knode = castTo(object, 33); + nodePos = $add_19(fnode.position, offset); + $setLocation_1(knode, nodePos.x_0 - knode.width_0 / 2, nodePos.y_0 - knode.height / 2); + } + } + for (fedge$iterator = new ArrayList$1(fgraph.edges); fedge$iterator.i < fedge$iterator.this$01.array.length;) { + fedge = castTo($next_7(fedge$iterator), 282); + kedge = castTo($getProperty(fedge, ORIGIN), 79); + kedgeSection = firstEdgeSection(kedge, true, true); + startLocation = (v = $sub_0($clone_0(fedge.target.position), fedge.source.position) , clipVector(v, fedge.source.size_0.x_0, fedge.source.size_0.y_0) , $add_19(v, fedge.source.position)); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + endLocation = (v_0 = $sub_0($clone_0(fedge.source.position), fedge.target.position) , clipVector(v_0, fedge.target.size_0.x_0, fedge.target.size_0.y_0) , $add_19(v_0, fedge.target.position)); + $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); + } + for (flabel$iterator = new ArrayList$1(fgraph.labels); flabel$iterator.i < flabel$iterator.this$01.array.length;) { + flabel = castTo($next_7(flabel$iterator), 447); + klabel = castTo($getProperty(flabel, ORIGIN), 137); + labelPos = $add_19(flabel.position, offset); + $setLocation_1(klabel, labelPos.x_0, labelPos.y_0); + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + resizeNode_1(kgraph, width_0, height, false, true); +} + +function $importGraph_0(kgraph){ + var elemMap, fgraph; + fgraph = new FGraph; + $copyProperties(fgraph, kgraph); + $setProperty_0(fgraph, ($clinit_InternalProperties_0() , ORIGIN), kgraph); + elemMap = new HashMap; + $transformNodes(kgraph, fgraph, elemMap); + $transformEdges(kgraph, fgraph, elemMap); + return fgraph; +} + +function $transformEdges(parentNode, fgraph, elemMap){ + var kedge, kedge$iterator, klabel, klabel$iterator, knode, knode$iterator, newEdge, newLabel; + for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { + knode = castTo($doNext(knode$iterator), 33); + for (kedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(knode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(kedge$iterator);) { + kedge = castTo($next_0(kedge$iterator), 79); + !kedge.sources && (kedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 4, 7)); + if (!(kedge.sources.size_0 <= 1 && (!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets.size_0 <= 1))) { + throw toJs(new UnsupportedGraphException('Graph must not contain hyperedges.')); + } + if (!$isHierarchical(kedge) && knode != connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))) { + newEdge = new FEdge; + $copyProperties(newEdge, kedge); + $setProperty_0(newEdge, ($clinit_InternalProperties_0() , ORIGIN), kedge); + $setSource(newEdge, castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, knode)), 144)); + $setTarget(newEdge, castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))), 144)); + $add_3(fgraph.edges, newEdge); + for (klabel$iterator = new AbstractEList$EIterator((!kedge.labels && (kedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, kedge, 1, 7)) , kedge.labels)); klabel$iterator.cursor != klabel$iterator.this$01_2.size_1();) { + klabel = castTo($doNext(klabel$iterator), 137); + newLabel = new FLabel(newEdge, klabel.text_0); + $copyProperties(newLabel, klabel); + $setProperty_0(newLabel, ORIGIN, klabel); + newLabel.size_0.x_0 = $wnd.Math.max(klabel.width_0, 1); + newLabel.size_0.y_0 = $wnd.Math.max(klabel.height, 1); + $refreshPosition(newLabel); + $add_3(fgraph.labels, newLabel); + } + } + } + } +} + +function $transformNodes(parentNode, fgraph, elemMap){ + var index_0, knode, knode$iterator, label_0, newNode, portConstraints; + index_0 = 0; + for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { + knode = castTo($doNext(knode$iterator), 33); + label_0 = ''; + (!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels).size_0 == 0 || (label_0 = castTo($get_20((!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels), 0), 137).text_0); + newNode = new FNode(label_0); + $copyProperties(newNode, knode); + $setProperty_0(newNode, ($clinit_InternalProperties_0() , ORIGIN), knode); + newNode.id_0 = index_0++; + newNode.position.x_0 = knode.x_0 + knode.width_0 / 2; + newNode.position.y_0 = knode.y_0 + knode.height / 2; + newNode.size_0.x_0 = $wnd.Math.max(knode.width_0, 1); + newNode.size_0.y_0 = $wnd.Math.max(knode.height, 1); + $add_3(fgraph.nodes, newNode); + $put_9(elemMap.hashCodeMap, knode, newNode); + portConstraints = castTo($getProperty_0(knode, ($clinit_ForceOptions() , PORT_CONSTRAINTS)), 98); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4) && (portConstraints = FREE); + } +} + +function $layout(this$static, elkGraph, progressMonitor){ + var builder, comp, comp$iterator, components, fgraph; + $begin(progressMonitor, 'ELK Force', 1); + $booleanValue(castToBoolean($getProperty_0(elkGraph, ($clinit_ForceOptions() , OMIT_NODE_MICRO_LAYOUT)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(elkGraph))) , builder)); + fgraph = $importGraph_0(elkGraph); + $setOptions(fgraph); + $updateModel(this$static, castTo($getProperty(fgraph, MODEL_0), 424)); + components = $split_1(this$static.componentsProcessor, fgraph); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 231); + $layout_0(this$static.forceModel, comp, $subTask(progressMonitor, 1 / components.size_1())); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + $done_0(progressMonitor); +} + +function $setOptions(fgraph){ + var randomSeed, val; + randomSeed = castTo($getProperty(fgraph, ($clinit_ForceOptions() , RANDOM_SEED)), 19); + if (randomSeed) { + val = randomSeed.value_0; + val == 0?$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random):$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(val)); + } + else { + $setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(1)); + } +} + +function $updateModel(this$static, strategy){ + switch (strategy.ordinal) { + case 0: + instanceOf(this$static.forceModel, 631) || (this$static.forceModel = new EadesModel); + break; + case 1: + instanceOf(this$static.forceModel, 632) || (this$static.forceModel = new FruchtermanReingoldModel); + } +} + +function ForceLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; +} + +defineClass(740, 209, $intern_96, ForceLayoutProvider); +_.layout = function layout_0(elkGraph, progressMonitor){ + $layout(this, elkGraph, progressMonitor); +} +; +var Lorg_eclipse_elk_alg_force_ForceLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ForceLayoutProvider', 740); +function FParticle(){ + this.position = new KVector; + this.size_0 = new KVector; +} + +defineClass(357, 134, {3:1, 357:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_force_graph_FParticle_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FParticle', 357); +function FBendpoint(edge){ + FParticle.call(this); + this.edge = edge; + $add_3(edge.bendpoints, this); +} + +defineClass(559, 357, {3:1, 559:1, 357:1, 94:1, 134:1}, FBendpoint); +_.toString_0 = function toString_80(){ + var index_0; + if (this.edge) { + index_0 = $indexOf_3(this.edge.bendpoints, this, 0); + return index_0 >= 0?'b' + index_0 + '[' + $toString_10(this.edge) + ']':'b[' + $toString_10(this.edge) + ']'; + } + return 'b_' + getHashCode_0(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FBendpoint_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FBendpoint', 559); +function $distributeBendpoints(this$static){ + var bendPoint, bendPoint$iterator, count, incr, pos, sourcePos, targetPos; + count = this$static.bendpoints.array.length; + if (count > 0) { + sourcePos = this$static.source.position; + targetPos = this$static.target.position; + incr = $scale($sub_0(new KVector_1(targetPos.x_0, targetPos.y_0), sourcePos), 1 / (count + 1)); + pos = new KVector_1(sourcePos.x_0, sourcePos.y_0); + for (bendPoint$iterator = new ArrayList$1(this$static.bendpoints); bendPoint$iterator.i < bendPoint$iterator.this$01.array.length;) { + bendPoint = castTo($next_7(bendPoint$iterator), 559); + bendPoint.position.x_0 = pos.x_0; + bendPoint.position.y_0 = pos.y_0; + $add_19(pos, incr); + } + } +} + +function $setSource(this$static, theSource){ + this$static.source = theSource; +} + +function $setTarget(this$static, theTarget){ + this$static.target = theTarget; +} + +function $toString_10(this$static){ + return !!this$static.source && !!this$static.target?$toString_11(this$static.source) + '->' + $toString_11(this$static.target):'e_' + getHashCode_0(this$static); +} + +function FEdge(){ + this.bendpoints = new ArrayList; + this.labels = new ArrayList; +} + +defineClass(282, 134, {3:1, 282:1, 94:1, 134:1}, FEdge); +_.toString_0 = function toString_81(){ + return $toString_10(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FEdge_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FEdge', 282); +function $calcAdjacency(this$static){ + var edge, edge$iterator, n; + n = this$static.nodes.array.length; + this$static.adjacency = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [n, n], 2); + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + this$static.adjacency[edge.source.id_0][edge.target.id_0] += castTo($getProperty(edge, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + } +} + +function $getConnection(this$static, particle1, particle2){ + var node1, node2; + if (instanceOf(particle1, 144) && !!particle2) { + node1 = castTo(particle1, 144); + node2 = particle2; + return this$static.adjacency[node1.id_0][node2.id_0] + this$static.adjacency[node2.id_0][node1.id_0]; + } + return 0; +} + +function FGraph(){ + this.nodes = new ArrayList; + this.edges = new ArrayList; + this.labels = new ArrayList; + this.bendPoints = new ArrayList; +} + +defineClass(231, 134, {3:1, 231:1, 94:1, 134:1}, FGraph); +var Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FGraph', 231); +function $refreshPosition(this$static){ + var newLabelPosition, placeInline, pos, spacing, src_0, srcToTgt, tgt, toLabelCenter; + placeInline = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_ForceOptions() , EDGE_LABELS_INLINE)))); + src_0 = this$static.edge.source.position; + tgt = this$static.edge.target.position; + if (placeInline) { + srcToTgt = $scale($sub_0(new KVector_1(tgt.x_0, tgt.y_0), src_0), 0.5); + toLabelCenter = $scale($clone_0(this$static.size_0), 0.5); + newLabelPosition = $sub_0($add_19(new KVector_1(src_0.x_0, src_0.y_0), srcToTgt), toLabelCenter); + $set_9(this$static.position, newLabelPosition); + } + else { + spacing = $doubleValue(castToDouble($getProperty(this$static.edge, SPACING_EDGE_LABEL))); + pos = this$static.position; + if (src_0.x_0 >= tgt.x_0) { + if (src_0.y_0 >= tgt.y_0) { + pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; + pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 - spacing - this$static.size_0.y_0; + } + else { + pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; + pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 + spacing; + } + } + else { + if (src_0.y_0 >= tgt.y_0) { + pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; + pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 + spacing; + } + else { + pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; + pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 - spacing - this$static.size_0.y_0; + } + } + } +} + +function FLabel(fedge, text_0){ + FParticle.call(this); + this.edge = fedge; + this.text_0 = text_0; + $add_3(this.edge.labels, this); +} + +defineClass(447, 357, {3:1, 447:1, 357:1, 94:1, 134:1}, FLabel); +_.toString_0 = function toString_82(){ + return this.text_0 == null || this.text_0.length == 0?'l[' + $toString_10(this.edge) + ']':'l_' + this.text_0; +} +; +var Lorg_eclipse_elk_alg_force_graph_FLabel_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FLabel', 447); +function $toString_11(this$static){ + return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; +} + +function FNode(label_0){ + FParticle.call(this); + this.displacement = new KVector; + this.label_0 = label_0; +} + +defineClass(144, 357, {3:1, 144:1, 357:1, 94:1, 134:1}, FNode); +_.toString_0 = function toString_83(){ + return $toString_11(this); +} +; +_.id_0 = 0; +var Lorg_eclipse_elk_alg_force_graph_FNode_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FNode', 144); +function $initialize_0(this$static, fgraph){ + var bends, count, edge, edge$iterator, i, node, node$iterator, pos, posScale; + this$static.graph_0 = fgraph; + this$static.random_0 = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , RANDOM)), 230); + $calcAdjacency(fgraph); + this$static.dispBound = $wnd.Math.max(fgraph.nodes.array.length * 16 + fgraph.edges.array.length, 256); + if (!$booleanValue(castToBoolean($getProperty(fgraph, ($clinit_ForceOptions() , INTERACTIVE))))) { + posScale = this$static.graph_0.nodes.array.length; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + pos = node.position; + pos.x_0 = $nextDouble(this$static.random_0) * posScale; + pos.y_0 = $nextDouble(this$static.random_0) * posScale; + } + } + bends = fgraph.bendPoints; + for (edge$iterator = new ArrayList$1(fgraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + count = castTo($getProperty(edge, REPULSIVE_POWER_0), 19).value_0; + if (count > 0) { + for (i = 0; i < count; i++) { + $add_3(bends, new FBendpoint(edge)); + } + $distributeBendpoints(edge); + } + } +} + +function $iterationDone(this$static){ + var edge, edge$iterator, label_0, label$iterator; + for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 447); + $refreshPosition(label_0); + } + $distributeBendpoints(edge); + } +} + +function $layout_0(this$static, fgraph, monitor){ + var d, displacement, iterations, u, u$iterator, v, v$iterator, v$iterator0; + $begin(monitor, 'Component Layout', 1); + this$static.initialize(fgraph); + iterations = 0; + while (this$static.moreIterations(iterations)) { + for (v$iterator0 = new ArrayList$1(fgraph.nodes); v$iterator0.i < v$iterator0.this$01.array.length;) { + v = castTo($next_7(v$iterator0), 144); + for (u$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(u$iterator);) { + u = castTo($next_0(u$iterator), 357); + if (u != v) { + displacement = this$static.calcDisplacement(u, v); + !!displacement && $add_19(v.displacement, displacement); + } + } + } + for (v$iterator = new ArrayList$1(fgraph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + d = v.displacement; + $bound(d, -this$static.dispBound, -this$static.dispBound, this$static.dispBound, this$static.dispBound); + $add_19(v.position, d); + $reset_5(d); + } + this$static.iterationDone(); + ++iterations; + } + $done_0(monitor); +} + +function avoidSamePosition(random, u, v){ + var pu, pv; + pu = u.position; + pv = v.position; + while (pu.x_0 - pv.x_0 == 0 && pu.y_0 - pv.y_0 == 0) { + pu.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pu.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pv.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pv.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + } +} + +defineClass(2003, 1, {}); +_.initialize = function initialize(fgraph){ + $initialize_0(this, fgraph); +} +; +_.iterationDone = function iterationDone(){ + $iterationDone(this); +} +; +_.dispBound = 0; +var Lorg_eclipse_elk_alg_force_model_AbstractForceModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'AbstractForceModel', 2003); +function EadesModel(){ + this.maxIterations = castTo($getDefault(($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; + this.springLength = $doubleValue(castToDouble($getDefault(SPACING_NODE_NODE))); + this.repulsionFactor = $doubleValue(castToDouble($getDefault(REPULSION_0))); +} + +function attractive(d, s){ + return d > 0?$wnd.Math.log(d / s):-100; +} + +function repulsive(d, r){ + return d > 0?r / (d * d):r * 100; +} + +defineClass(631, 2003, {631:1}, EadesModel); +_.calcDisplacement = function calcDisplacement(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_0(forcee.position), forcer.position); + length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); + d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); + connection = $getConnection(this.graph_0, forcer, forcee); + connection > 0?(force = -attractive(d, this.springLength) * connection):(force = repulsive(d, this.repulsionFactor) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0); + $scale(displacement, force / length_0); + return displacement; +} +; +_.initialize = function initialize_0(graph){ + $initialize_0(this, graph); + this.maxIterations = castTo($getProperty(graph, ($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; + this.springLength = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))); + this.repulsionFactor = $doubleValue(castToDouble($getProperty(graph, REPULSION_0))); +} +; +_.moreIterations = function moreIterations(count){ + return count < this.maxIterations; +} +; +_.maxIterations = 0; +_.repulsionFactor = 0; +_.springLength = 0; +var Lorg_eclipse_elk_alg_force_model_EadesModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'EadesModel', 631); +function FruchtermanReingoldModel(){ + this.temperature = $doubleValue(castToDouble($getDefault(($clinit_ForceOptions() , TEMPERATURE_0)))); +} + +function attractive_0(d, k){ + return d * d / k; +} + +function repulsive_0(d, k){ + return d > 0?k * k / d:k * k * 100; +} + +defineClass(632, 2003, {632:1}, FruchtermanReingoldModel); +_.calcDisplacement = function calcDisplacement_0(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_0(forcee.position), forcer.position); + length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); + d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); + force = repulsive_0(d, this.k) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + connection = $getConnection(this.graph_0, forcer, forcee); + connection > 0 && (force -= attractive_0(d, this.k) * connection); + $scale(displacement, force * this.temperature / length_0); + return displacement; +} +; +_.initialize = function initialize_1(graph){ + var area, c, n, totalHeight, totalWidth, v, v$iterator; + $initialize_0(this, graph); + this.temperature = $doubleValue(castToDouble($getProperty(graph, ($clinit_ForceOptions() , TEMPERATURE_0)))); + this.threshold = this.temperature / castTo($getProperty(graph, ITERATIONS_0), 19).value_0; + n = graph.nodes.array.length; + totalWidth = 0; + totalHeight = 0; + for (v$iterator = new ArrayList$1(graph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + totalWidth += v.size_0.x_0; + totalHeight += v.size_0.y_0; + } + area = totalWidth * totalHeight; + c = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))) * $intern_94; + this.k = $wnd.Math.sqrt(area / (2 * n)) * c; +} +; +_.iterationDone = function iterationDone_0(){ + $iterationDone(this); + this.temperature -= this.threshold; +} +; +_.moreIterations = function moreIterations_0(count){ + return this.temperature > 0; +} +; +_.k = 0; +_.temperature = 0; +_.threshold = 0; +var Lorg_eclipse_elk_alg_force_model_FruchtermanReingoldModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'FruchtermanReingoldModel', 632); +function $clinit_ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider = emptyMethod; + MODEL_DEFAULT = ($clinit_ForceModelStrategy() , FRUCHTERMAN_REINGOLD); + MODEL = new Property_1('org.eclipse.elk.force.model', MODEL_DEFAULT); + valueOf_4(1); + ITERATIONS = new Property_1('org.eclipse.elk.force.iterations', valueOf_4(300)); + valueOf_4(0); + REPULSIVE_POWER = new Property_1('org.eclipse.elk.force.repulsivePower', valueOf_4(0)); + new ExclusiveBounds$ExclusiveLowerBound; + TEMPERATURE = new Property_1('org.eclipse.elk.force.temperature', $intern_101); + new ExclusiveBounds$ExclusiveLowerBound; + REPULSION = new Property_1('org.eclipse.elk.force.repulsion', 5); + TEMPERATURE_DEP_MODEL_0 = FRUCHTERMAN_REINGOLD; + REPULSION_DEP_MODEL_0 = EADES; +} + +function ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider(); +} + +defineClass(849, 1, $intern_90, ForceMetaDataProvider); +_.apply_4 = function apply_55(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.model'), ''), 'Force Model'), 'Determines the model for force calculation.'), MODEL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.iterations'), ''), 'Iterations'), 'The number of iterations on the force model.'), valueOf_4(300)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsivePower'), ''), 'Repulsive Power'), 'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.temperature'), ''), 'FR Temperature'), 'The temperature is used as a scaling factor for particle displacements.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.force.temperature', 'org.eclipse.elk.force.model', TEMPERATURE_DEP_MODEL_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsion'), ''), 'Eades Repulsion'), "Factor for repulsive forces in Eades' model."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.force.repulsion', 'org.eclipse.elk.force.model', REPULSION_DEP_MODEL_0); + $apply_12((new ForceOptions , registry)); +} +; +var ITERATIONS, MODEL, MODEL_DEFAULT, REPULSION, REPULSION_DEP_MODEL_0, REPULSIVE_POWER, TEMPERATURE, TEMPERATURE_DEP_MODEL_0; +var Lorg_eclipse_elk_alg_force_options_ForceMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceMetaDataProvider', 849); +function $clinit_ForceModelStrategy(){ + $clinit_ForceModelStrategy = emptyMethod; + EADES = new ForceModelStrategy('EADES', 0); + FRUCHTERMAN_REINGOLD = new ForceModelStrategy('FRUCHTERMAN_REINGOLD', 1); +} + +function ForceModelStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_25(name_0){ + $clinit_ForceModelStrategy(); + return valueOf(($clinit_ForceModelStrategy$Map() , $MAP_13), name_0); +} + +function values_31(){ + $clinit_ForceModelStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]); +} + +defineClass(424, 22, {3:1, 35:1, 22:1, 424:1}, ForceModelStrategy); +var EADES, FRUCHTERMAN_REINGOLD; +var Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.force.options', 'ForceModelStrategy', 424, Ljava_lang_Enum_2_classLit, values_31, valueOf_25); +function $clinit_ForceModelStrategy$Map(){ + $clinit_ForceModelStrategy$Map = emptyMethod; + $MAP_13 = createValueOfMap(($clinit_ForceModelStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]))); +} + +var $MAP_13; +function $clinit_ForceOptions(){ + $clinit_ForceOptions = emptyMethod; + PRIORITY = new Property_2(($clinit_CoreOptions() , PRIORITY_3), valueOf_4(1)); + SPACING_NODE_NODE = new Property_2(SPACING_NODE_NODE_6, 80); + SPACING_EDGE_LABEL = new Property_2(SPACING_EDGE_LABEL_1, 5); + ASPECT_RATIO_0 = new Property_2(ASPECT_RATIO_5, $intern_102); + RANDOM_SEED = new Property_2(RANDOM_SEED_1, valueOf_4(1)); + SEPARATE_CONNECTED_COMPONENTS = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + PADDING_DEFAULT = new ElkPadding_0(50); + PADDING_0 = new Property_2(PADDING_6, PADDING_DEFAULT); + INTERACTIVE = INTERACTIVE_7; + PORT_CONSTRAINTS = PORT_CONSTRAINTS_1; + EDGE_LABELS_INLINE = new Property_2(EDGE_LABELS_INLINE_1, false); + OMIT_NODE_MICRO_LAYOUT = OMIT_NODE_MICRO_LAYOUT_4; + NODE_SIZE_OPTIONS = NODE_SIZE_OPTIONS_6; + NODE_SIZE_CONSTRAINTS = NODE_SIZE_CONSTRAINTS_6; + NODE_LABELS_PLACEMENT = NODE_LABELS_PLACEMENT_5; + PORT_LABELS_PLACEMENT = PORT_LABELS_PLACEMENT_5; + MODEL_0 = ($clinit_ForceMetaDataProvider() , MODEL); + TEMPERATURE_0 = TEMPERATURE; + ITERATIONS_0 = ITERATIONS; + REPULSION_0 = REPULSION; + REPULSIVE_POWER_0 = REPULSIVE_POWER; +} + +function $apply_12(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.force'), 'ELK Force'), 'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'), new ForceOptions$ForceFactory), 'org.eclipse.elk.force'), of_2(($clinit_GraphFeature() , MULTI_EDGES), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [EDGE_LABELS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.priority', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.nodeNode', 80); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.edgeLabel', 5); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.randomSeed', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.padding', PADDING_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.edgeLabels.inline', false); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.model', $getDefault(MODEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.temperature', $getDefault(TEMPERATURE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.iterations', $getDefault(ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsion', $getDefault(REPULSION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsivePower', $getDefault(REPULSIVE_POWER_0)); +} + +function ForceOptions(){ + $clinit_ForceOptions(); +} + +defineClass(988, 1, $intern_90, ForceOptions); +_.apply_4 = function apply_56(registry){ + $apply_12(registry); +} +; +var ASPECT_RATIO_0, EDGE_LABELS_INLINE, INTERACTIVE, ITERATIONS_0, MODEL_0, NODE_LABELS_PLACEMENT, NODE_SIZE_CONSTRAINTS, NODE_SIZE_OPTIONS, OMIT_NODE_MICRO_LAYOUT, PADDING_0, PADDING_DEFAULT, PORT_CONSTRAINTS, PORT_LABELS_PLACEMENT, PRIORITY, RANDOM_SEED, REPULSION_0, REPULSIVE_POWER_0, SEPARATE_CONNECTED_COMPONENTS, SPACING_EDGE_LABEL, SPACING_NODE_NODE, TEMPERATURE_0; +var Lorg_eclipse_elk_alg_force_options_ForceOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions', 988); +function ForceOptions$ForceFactory(){ +} + +defineClass(989, 1, {}, ForceOptions$ForceFactory); +_.create_0 = function create_3(){ + var provider; + return provider = new ForceLayoutProvider , provider; +} +; +_.destroy = function destroy_0(obj){ +} +; +var Lorg_eclipse_elk_alg_force_options_ForceOptions$ForceFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions/ForceFactory', 989); +function $clinit_InternalProperties_0(){ + $clinit_InternalProperties_0 = emptyMethod; + ORIGIN = new Property('origin'); + RANDOM = new Property('random'); + BB_UPLEFT = new Property('boundingBox.upLeft'); + BB_LOWRIGHT = new Property('boundingBox.lowRight'); +} + +var BB_LOWRIGHT, BB_UPLEFT, ORIGIN, RANDOM; +function $clinit_StressMetaDataProvider(){ + $clinit_StressMetaDataProvider = emptyMethod; + FIXED = new Property_1('org.eclipse.elk.stress.fixed', ($clinit_Boolean() , false)); + DESIRED_EDGE_LENGTH = new Property_1('org.eclipse.elk.stress.desiredEdgeLength', 100); + DIMENSION_DEFAULT = ($clinit_StressMajorization$Dimension() , XY); + DIMENSION = new Property_1('org.eclipse.elk.stress.dimension', DIMENSION_DEFAULT); + EPSILON = new Property_1('org.eclipse.elk.stress.epsilon', $intern_101); + ITERATION_LIMIT = new Property_1('org.eclipse.elk.stress.iterationLimit', valueOf_4($intern_0)); +} + +function StressMetaDataProvider(){ + $clinit_StressMetaDataProvider(); +} + +defineClass(850, 1, $intern_90, StressMetaDataProvider); +_.apply_4 = function apply_57(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.fixed'), ''), 'Fixed Position'), 'Prevent that the node is moved by the layout algorithm.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.desiredEdgeLength'), ''), 'Desired Edge Length'), 'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'), 100), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.dimension'), ''), 'Layout Dimension'), 'Dimensions that are permitted to be altered during layout.'), DIMENSION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.epsilon'), ''), 'Stress Epsilon'), 'Termination criterion for the iterative process.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.iterationLimit'), ''), 'Iteration Limit'), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $apply_13((new StressOptions , registry)); +} +; +var DESIRED_EDGE_LENGTH, DIMENSION, DIMENSION_DEFAULT, EPSILON, FIXED, ITERATION_LIMIT; +var Lorg_eclipse_elk_alg_force_options_StressMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressMetaDataProvider', 850); +function $clinit_StressOptions(){ + $clinit_StressOptions = emptyMethod; + INTERACTIVE_0 = ($clinit_CoreOptions() , INTERACTIVE_7); + new Property_2(EDGE_LABELS_INLINE_1, ($clinit_Boolean() , true)); + NODE_SIZE_CONSTRAINTS_0 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_0 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_0 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_0 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_0 = PORT_LABELS_PLACEMENT_5; + FIXED_0 = ($clinit_StressMetaDataProvider() , FIXED); + DIMENSION_0 = DIMENSION; + EPSILON_0 = EPSILON; + ITERATION_LIMIT_0 = ITERATION_LIMIT; + DESIRED_EDGE_LENGTH_0 = DESIRED_EDGE_LENGTH; +} + +function $apply_13(registry){ + $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.stress'), 'ELK Stress'), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new StressOptions$StressFactory), 'org.eclipse.elk.force'))); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.edgeLabels.inline', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.fixed', $getDefault(FIXED_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.dimension', $getDefault(DIMENSION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.epsilon', $getDefault(EPSILON_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.iterationLimit', $getDefault(ITERATION_LIMIT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.desiredEdgeLength', $getDefault(DESIRED_EDGE_LENGTH_0)); +} + +function StressOptions(){ + $clinit_StressOptions(); +} + +defineClass(992, 1, $intern_90, StressOptions); +_.apply_4 = function apply_58(registry){ + $apply_13(registry); +} +; +var DESIRED_EDGE_LENGTH_0, DIMENSION_0, EPSILON_0, FIXED_0, INTERACTIVE_0, ITERATION_LIMIT_0, NODE_LABELS_PLACEMENT_0, NODE_SIZE_CONSTRAINTS_0, NODE_SIZE_MINIMUM, NODE_SIZE_OPTIONS_0, OMIT_NODE_MICRO_LAYOUT_0, PORT_LABELS_PLACEMENT_0; +var Lorg_eclipse_elk_alg_force_options_StressOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions', 992); +function StressOptions$StressFactory(){ +} + +defineClass(993, 1, {}, StressOptions$StressFactory); +_.create_0 = function create_4(){ + var provider; + return provider = new StressLayoutProvider , provider; +} +; +_.destroy = function destroy_1(obj){ +} +; +var Lorg_eclipse_elk_alg_force_options_StressOptions$StressFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions/StressFactory', 993); +function StressLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; + this.stressMajorization = new StressMajorization; +} + +defineClass(1128, 209, $intern_96, StressLayoutProvider); +_.layout = function layout_1(layoutGraph, progressMonitor){ + var builder, components, fgraph, subGraph, subGraph$iterator; + $begin(progressMonitor, 'ELK Stress', 1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_StressOptions() , INTERACTIVE_0))))?$booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_0))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)):$layout(new ForceLayoutProvider, layoutGraph, $subTask(progressMonitor, 1)); + fgraph = $importGraph_0(layoutGraph); + components = $split_1(this.componentsProcessor, fgraph); + for (subGraph$iterator = components.iterator_0(); subGraph$iterator.hasNext_0();) { + subGraph = castTo(subGraph$iterator.next_1(), 231); + if (subGraph.nodes.array.length <= 1) { + continue; + } + $initialize_1(this.stressMajorization, subGraph); + $execute_1(this.stressMajorization); + $forEach_1(subGraph.labels, new StressLayoutProvider$lambda$0$Type); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider', 1128); +function StressLayoutProvider$lambda$0$Type(){ +} + +defineClass(1129, 1, $intern_19, StressLayoutProvider$lambda$0$Type); +_.accept = function accept_57(arg0){ + $refreshPosition(castTo(arg0, 447)); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider/lambda$0$Type', 1129); +function $computeNewPosition(this$static, u){ + var eucDist, v, v$iterator, weightSum, wij, xDisp, yDisp; + weightSum = 0; + xDisp = 0; + yDisp = 0; + for (v$iterator = new ArrayList$1(this$static.graph_0.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + if (u == v) { + continue; + } + wij = this$static.w[u.id_0][v.id_0]; + weightSum += wij; + eucDist = $distance_0(u.position, v.position); + eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , Y) && (xDisp += wij * (v.position.x_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.x_0 - v.position.x_0) / eucDist)); + eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , X) && (yDisp += wij * (v.position.y_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.y_0 - v.position.y_0) / eucDist)); + } + switch (this$static.dim.ordinal) { + case 1: + return new KVector_1(xDisp / weightSum, u.position.y_0); + case 2: + return new KVector_1(u.position.x_0, yDisp / weightSum); + default:return new KVector_1(xDisp / weightSum, yDisp / weightSum); + } +} + +function $computeStress(this$static){ + var eucDisplacement, eucDist, i, j, nodes, stress, u, v; + stress = 0; + nodes = this$static.graph_0.nodes; + for (i = 0; i < nodes.array.length; ++i) { + u = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 144)); + for (j = i + 1; j < nodes.array.length; ++j) { + v = (checkCriticalElementIndex(j, nodes.array.length) , castTo(nodes.array[j], 144)); + eucDist = $distance_0(u.position, v.position); + eucDisplacement = eucDist - this$static.apsp[u.id_0][v.id_0]; + stress += this$static.w[u.id_0][v.id_0] * eucDisplacement * eucDisplacement; + } + } + return stress; +} + +function $dijkstra(this$static, source, dist){ + var d, e, e$iterator, el, mark, n, n$iterator, nodes, u, v; + nodes = new PriorityQueue(new StressMajorization$lambda$0$Type(dist)); + mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.nodes.array.length, 16, 1); + fill0_3(mark, mark.length); + dist[source.id_0] = 0; + for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 144); + n.id_0 != source.id_0 && (dist[n.id_0] = $intern_0); + checkCriticalState_0($offer(nodes, n)); + } + while (nodes.heap.array.length != 0) { + u = castTo($poll_0(nodes), 144); + mark[u.id_0] = true; + for (e$iterator = $listIterator_0(new LinkedListMultimap$1(this$static.connectedEdges, u), 0); e$iterator.next_0;) { + e = castTo($next_2(e$iterator), 282); + v = $getOther_0(e, u); + if (mark[v.id_0]) { + continue; + } + $hasProperty(e, ($clinit_StressOptions() , DESIRED_EDGE_LENGTH_0))?(el = $doubleValue(castToDouble($getProperty(e, DESIRED_EDGE_LENGTH_0)))):(el = this$static.desiredEdgeLength); + d = dist[u.id_0] + el; + if (d < dist[v.id_0]) { + dist[v.id_0] = d; + $remove_25(nodes, v); + checkCriticalState_0($offer(nodes, v)); + } + } + } +} + +function $done(this$static, count, prevStress, curStress){ + return prevStress == 0 || (prevStress - curStress) / prevStress < this$static.epsilon || count >= this$static.iterationLimit; +} + +function $execute_1(this$static){ + var count, curStress, newPos, prevStress, u, u$iterator; + if (this$static.graph_0.nodes.array.length <= 1) { + return; + } + count = 0; + prevStress = $computeStress(this$static); + curStress = $intern_59; + do { + count > 0 && (prevStress = curStress); + for (u$iterator = new ArrayList$1(this$static.graph_0.nodes); u$iterator.i < u$iterator.this$01.array.length;) { + u = castTo($next_7(u$iterator), 144); + if ($booleanValue(castToBoolean($getProperty(u, ($clinit_StressOptions() , FIXED_0))))) { + continue; + } + newPos = $computeNewPosition(this$static, u); + $add_19($reset_5(u.position), newPos); + } + curStress = $computeStress(this$static); + } + while (!$done(this$static, count++, prevStress, curStress)); +} + +function $getOther_0(edge, one){ + if (edge.source == one) { + return edge.target; + } + else if (edge.target == one) { + return edge.source; + } + else { + throw toJs(new IllegalArgumentException_0("Node 'one' must be either source or target of edge 'edge'.")); + } +} + +function $initialize_1(this$static, fgraph){ + var dij, edge, edge$iterator, i, j, n, source, source$iterator, wij; + if (fgraph.nodes.array.length <= 1) { + return; + } + this$static.graph_0 = fgraph; + this$static.dim = castTo($getProperty(this$static.graph_0, ($clinit_StressOptions() , DIMENSION_0)), 379); + this$static.iterationLimit = castTo($getProperty(this$static.graph_0, ITERATION_LIMIT_0), 19).value_0; + this$static.epsilon = $doubleValue(castToDouble($getProperty(this$static.graph_0, EPSILON_0))); + this$static.desiredEdgeLength = $doubleValue(castToDouble($getProperty(this$static.graph_0, DESIRED_EDGE_LENGTH_0))); + $clear_3(this$static.connectedEdges); + for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + $addNode(this$static.connectedEdges, edge.source, edge, null); + $addNode(this$static.connectedEdges, edge.target, edge, null); + } + n = this$static.graph_0.nodes.array.length; + this$static.apsp = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); + for (source$iterator = new ArrayList$1(this$static.graph_0.nodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 144); + $dijkstra(this$static, source, this$static.apsp[source.id_0]); + } + this$static.w = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); + for (i = 0; i < n; ++i) { + for (j = 0; j < n; ++j) { + dij = this$static.apsp[i][j]; + wij = 1 / (dij * dij); + this$static.w[i][j] = wij; + } + } +} + +function StressMajorization(){ + this.connectedEdges = new LinkedListMultimap; +} + +function lambda$0_15(dist_0, n1_1, n2_2){ + return compare_4(dist_0[n1_1.id_0], dist_0[n2_2.id_0]); +} + +defineClass(990, 1, {}, StressMajorization); +_.desiredEdgeLength = 0; +_.epsilon = 0; +_.iterationLimit = 0; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization', 990); +function $clinit_StressMajorization$Dimension(){ + $clinit_StressMajorization$Dimension = emptyMethod; + XY = new StressMajorization$Dimension('XY', 0); + X = new StressMajorization$Dimension('X', 1); + Y = new StressMajorization$Dimension('Y', 2); +} + +function StressMajorization$Dimension(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_26(name_0){ + $clinit_StressMajorization$Dimension(); + return valueOf(($clinit_StressMajorization$Dimension$Map() , $MAP_14), name_0); +} + +function values_32(){ + $clinit_StressMajorization$Dimension(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]); +} + +defineClass(379, 22, {3:1, 35:1, 22:1, 379:1}, StressMajorization$Dimension); +var X, XY, Y; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit = createForEnum('org.eclipse.elk.alg.force.stress', 'StressMajorization/Dimension', 379, Ljava_lang_Enum_2_classLit, values_32, valueOf_26); +function $clinit_StressMajorization$Dimension$Map(){ + $clinit_StressMajorization$Dimension$Map = emptyMethod; + $MAP_14 = createValueOfMap(($clinit_StressMajorization$Dimension() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]))); +} + +var $MAP_14; +function StressMajorization$lambda$0$Type(dist_0){ + this.dist_0 = dist_0; +} + +defineClass(991, 1, $intern_88, StressMajorization$lambda$0$Type); +_.compare_1 = function compare_29(arg0, arg1){ + return lambda$0_15(this.dist_0, castTo(arg0, 144), castTo(arg1, 144)); +} +; +_.equals_0 = function equals_81(other){ + return this === other; +} +; +_.reversed = function reversed_21(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization/lambda$0$Type', 991); +function $collectAllGraphsBottomUp(root){ + var collectedGraphs, continueSearchingTheseGraphs, nestedGraph, nextGraph, node, node$iterator; + collectedGraphs = new ArrayDeque; + continueSearchingTheseGraphs = new ArrayDeque; + $addFirst(collectedGraphs, root); + $addFirst(continueSearchingTheseGraphs, root); + while (continueSearchingTheseGraphs.head != continueSearchingTheseGraphs.tail) { + nextGraph = castTo($removeFirst(continueSearchingTheseGraphs), 37); + for (node$iterator = new ArrayList$1(nextGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.nestedGraph) { + nestedGraph = node.nestedGraph; + $addFirst(collectedGraphs, nestedGraph); + $addFirst(continueSearchingTheseGraphs, nestedGraph); + } + } + } + return collectedGraphs; +} + +function $doCompoundLayout(this$static, lgraph, monitor){ + var theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + $begin(theMonitor, 'Layered layout', 2); + $process_1(this$static.compoundGraphPreprocessor, lgraph, $subTask(theMonitor, 1)); + $hierarchicalLayout(this$static, lgraph, $subTask(theMonitor, 1)); + $process_0(lgraph, $subTask(theMonitor, 1)); + $done_0(theMonitor); +} + +function $doLayout(this$static, lgraph, monitor){ + var comp, comp$iterator, compWork, components, theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + $begin(theMonitor, 'Layered layout', 1); + $prepareGraphForLayout(this$static.graphConfigurator, lgraph); + components = $split_2(this$static.componentsProcessor, lgraph); + if (components.size_1() == 1) { + $layout_1(castTo(components.get_0(0), 37), theMonitor); + } + else { + compWork = 1 / components.size_1(); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 37); + $layout_1(comp, $subTask(theMonitor, compWork)); + } + } + $combine(this$static.componentsProcessor, components, lgraph); + $resizeGraph(lgraph); + $done_0(theMonitor); +} + +function $hierarchicalLayout(this$static, lgraph, monitor){ + var algorithm, g, g$iterator, graph, graphAndAlgorithm, graphAndAlgorithm$iterator, graphs, graphsAndAlgorithms, processor, processors, rootProcessors, slotIndex, work, parentCms, rootType; + graphs = $collectAllGraphsBottomUp(lgraph); + parentCms = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); + parentCms != ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP) && $forEach_0(graphs, new ElkLayered$lambda$0$Type); + rootType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292); + $forEach_0(graphs, new ElkLayered$lambda$1$Type(rootType)); + work = 0; + graphsAndAlgorithms = new ArrayList; + for (g$iterator = new ArrayDeque$IteratorImpl(graphs); g$iterator.currentIndex != g$iterator.fence;) { + g = castTo($next_6(g$iterator), 37); + $prepareGraphForLayout(this$static.graphConfigurator, g); + processors = castTo($getProperty(g, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + work += processors.size_1(); + algorithm = processors.iterator_0(); + $add_3(graphsAndAlgorithms, new Pair(g, algorithm)); + } + $begin(monitor, 'Recursive hierarchical layout', work); + slotIndex = 0; + rootProcessors = castTo(castTo($get_11(graphsAndAlgorithms, graphsAndAlgorithms.array.length - 1), 46).second, 47); + while (rootProcessors.hasNext_0()) { + for (graphAndAlgorithm$iterator = new ArrayList$1(graphsAndAlgorithms); graphAndAlgorithm$iterator.i < graphAndAlgorithm$iterator.this$01.array.length;) { + graphAndAlgorithm = castTo($next_7(graphAndAlgorithm$iterator), 46); + processors = castTo(graphAndAlgorithm.second, 47); + graph = castTo(graphAndAlgorithm.first, 37); + while (processors.hasNext_0()) { + processor = castTo(processors.next_1(), 51); + if (instanceOf(processor, 507)) { + if (!graph.parentNode) { + processor.process(graph, $subTask(monitor, 1)); + ++slotIndex; + break; + } + else { + break; + } + } + else { + processor.process(graph, $subTask(monitor, 1)); + ++slotIndex; + } + } + } + } + $done_0(monitor); +} + +function $layout_1(lgraph, monitor){ + var algorithm, gwtDoesntSupportPrintf, layer, layer$iterator, monitorProgress, monitorWasAlreadyRunning, node, node$iterator, processor, processor$iterator, processor$iterator0, slot, slotIndex; + monitorWasAlreadyRunning = monitor.taskName != null && !monitor.closed_0; + monitorWasAlreadyRunning || $begin(monitor, 'Component Layout', 1); + algorithm = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + monitorProgress = 1 / algorithm.size_1(); + if (monitor.recordLogs) { + $log_2(monitor, 'ELK Layered uses the following ' + algorithm.size_1() + ' modules:'); + slot = 0; + for (processor$iterator0 = algorithm.iterator_0(); processor$iterator0.hasNext_0();) { + processor = castTo(processor$iterator0.next_1(), 51); + gwtDoesntSupportPrintf = (slot < 10?'0':'') + slot++; + $log_2(monitor, ' Slot ' + gwtDoesntSupportPrintf + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(processor))); + } + } + slotIndex = 0; + for (processor$iterator = algorithm.iterator_0(); processor$iterator.hasNext_0();) { + processor = castTo(processor$iterator.next_1(), 51); + processor.process(lgraph, $subTask(monitor, monitorProgress)); + ++slotIndex; + } + for (layer$iterator = new ArrayList$1(lgraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(lgraph.layerlessNodes, layer.nodes); + layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } + lgraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + monitorWasAlreadyRunning || $done_0(monitor); +} + +function $resizeGraph(lgraph){ + var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); + sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); + calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + adjustedSize = new KVector_2(calculatedSize); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); + adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); + } + $booleanValue(castToBoolean($getProperty(lgraph, NODE_SIZE_FIXED_GRAPH_SIZE))) || $resizeGraphNoReallyIMeanIt(lgraph, calculatedSize, adjustedSize); +} + +function $resizeGraphNoReallyIMeanIt(lgraph, oldSize, newSize){ + var contentAlignment, extPortSide, lPadding, node, node$iterator; + contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); + extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); + } + } + } + lPadding = lgraph.padding; + lgraph.size_0.x_0 = newSize.x_0 - lPadding.left - lPadding.right; + lgraph.size_0.y_0 = newSize.y_0 - lPadding.top_0 - lPadding.bottom; +} + +function ElkLayered(){ + this.graphConfigurator = new GraphConfigurator; + this.componentsProcessor = new ComponentsProcessor_0; + this.compoundGraphPreprocessor = new CompoundGraphPreprocessor; + $clinit_CompoundGraphPostprocessor(); +} + +function lambda$0_16(child_0){ + var childCms; + childCms = castTo($getProperty(child_0, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); + if (childCms == ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP)) { + throw toJs(new UnsupportedGraphException('The hierarchy aware processor ' + childCms + ' in child node ' + child_0 + ' is only allowed if the root node specifies the same hierarchical processor.')); + } +} + +function lambda$1_5(rootType_0, g_1){ + return $setProperty_0(g_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), rootType_0); +} + +defineClass(1229, 1, {}, ElkLayered); +var Lorg_eclipse_elk_alg_layered_ElkLayered_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered', 1229); +function ElkLayered$lambda$0$Type(){ +} + +defineClass(1230, 1, $intern_19, ElkLayered$lambda$0$Type); +_.accept = function accept_58(arg0){ + lambda$0_16(castTo(arg0, 37)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$0$Type', 1230); +function ElkLayered$lambda$1$Type(rootType_0){ + this.rootType_0 = rootType_0; +} + +defineClass(1231, 1, $intern_19, ElkLayered$lambda$1$Type); +_.accept = function accept_59(arg0){ + lambda$1_5(this.rootType_0, castTo(arg0, 37)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$1$Type', 1231); +function $clinit_GraphConfigurator(){ + $clinit_GraphConfigurator = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , INNERMOST_NODE_MARGIN_CALCULATOR)), P4_NODE_PLACEMENT, LABEL_AND_NODE_SIZE_PROCESSOR), P5_EDGE_ROUTING, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR), P5_EDGE_ROUTING, END_LABEL_SORTER); + LABEL_MANAGEMENT_ADDITIONS = $addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, CENTER_LABEL_MANAGEMENT_PROCESSOR), P4_NODE_PLACEMENT, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR); + HIERARCHICAL_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HIERARCHICAL_NODE_RESIZER); +} + +function $copyPortConstraints(this$static, node){ + var nestedGraph, originalPortconstraints; + originalPortconstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS), originalPortconstraints); + nestedGraph = node.nestedGraph; + !!nestedGraph && ($forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)) , $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static))); +} + +function $getPhaseIndependentLayoutProcessorConfiguration(lgraph){ + var configuration, graphProperties, greedySwitchType, hierarchyHandling, internalGreedyType; + graphProperties = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = createFrom_0(BASELINE_PROCESSING_CONFIGURATION); + hierarchyHandling = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING)), 334); + hierarchyHandling == ($clinit_HierarchyHandling() , INCLUDE_CHILDREN) && $addAll_6(configuration, HIERARCHICAL_ADDITIONS); + $booleanValue(castToBoolean($getProperty(lgraph, FEEDBACK_EDGES_0)))?$addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)):$addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)); + $getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) != null && $addAll_6(configuration, LABEL_MANAGEMENT_ADDITIONS); + ($booleanValue(castToBoolean($getProperty(lgraph, INTERACTIVE_LAYOUT))) || $booleanValue(castToBoolean($getProperty(lgraph, GENERATE_POSITION_AND_LAYER_IDS_0)))) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , CONSTRAINTS_POSTPROCESSOR)); + switch (castTo($getProperty(lgraph, DIRECTION), 103).ordinal) { + case 2: + case 3: + case 4: + $addAfter($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , DIRECTION_PREPROCESSOR)), P5_EDGE_ROUTING, DIRECTION_POSTPROCESSOR); + } + graphProperties.contains(($clinit_GraphProperties() , COMMENTS)) && $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , COMMENT_PREPROCESSOR)), P4_NODE_PLACEMENT, COMMENT_NODE_MARGIN_CALCULATOR), P5_EDGE_ROUTING, COMMENT_POSTPROCESSOR); + maskUndefined($getProperty(lgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) !== maskUndefined(($clinit_NodePromotionStrategy() , NONE_9)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , NODE_PROMOTION)); + if (graphProperties.contains(PARTITIONS)) { + $addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PARTITION_PREPROCESSOR)); + $addBefore(configuration, P2_LAYERING, PARTITION_MIDPROCESSOR); + $addBefore(configuration, P3_NODE_ORDERING, PARTITION_POSTPROCESSOR); + } + maskUndefined($getProperty(lgraph, COMPACTION_POST_COMPACTION_STRATEGY_0)) !== maskUndefined(($clinit_GraphCompactionStrategy() , NONE_5)) && maskUndefined($getProperty(lgraph, EDGE_ROUTING)) !== maskUndefined(($clinit_EdgeRouting() , POLYLINE)) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HORIZONTAL_COMPACTOR)); + $booleanValue(castToBoolean($getProperty(lgraph, HIGH_DEGREE_NODES_TREATMENT_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , HIGH_DEGREE_NODE_LAYER_PROCESSOR)); + $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SEMI_INTERACTIVE_CROSSMIN_PROCESSOR)); + if (activateGreedySwitchFor(lgraph)) { + maskUndefined($getProperty(lgraph, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN)?(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292)):(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292)); + internalGreedyType = greedySwitchType == ($clinit_GreedySwitchType() , ONE_SIDED)?($clinit_IntermediateProcessorStrategy() , ONE_SIDED_GREEDY_SWITCH):($clinit_IntermediateProcessorStrategy() , TWO_SIDED_GREEDY_SWITCH); + $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), internalGreedyType); + } + switch (castTo($getProperty(lgraph, WRAPPING_STRATEGY_0), 377).ordinal) { + case 1: + $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , SINGLE_EDGE_GRAPH_WRAPPER)); + break; + case 2: + $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , BREAKING_POINT_INSERTER)), P4_NODE_PLACEMENT, BREAKING_POINT_PROCESSOR), P5_EDGE_ROUTING, BREAKING_POINT_REMOVER); + } + maskUndefined($getProperty(lgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SORT_BY_INPUT_ORDER_OF_MODEL)); + return configuration; +} + +function $prepareGraphForLayout(this$static, lgraph){ + var edgeSpacing, direction, randomSeed, favorStraightness, spacings; + edgeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + edgeSpacing < 2 && $setProperty_0(lgraph, SPACING_EDGE_EDGE, 2); + direction = castTo($getProperty(lgraph, DIRECTION), 103); + direction == ($clinit_Direction_0() , UNDEFINED_2) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + randomSeed = castTo($getProperty(lgraph, RANDOM_SEED_0), 19); + randomSeed.value_0 == 0?$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random):$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random_0(randomSeed.value_0)); + favorStraightness = castToBoolean($getProperty(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); + favorStraightness == null && $setProperty_0(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, ($clinit_Boolean() , maskUndefined($getProperty(lgraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))?true:false)); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static)); + spacings = new Spacings(lgraph); + $setProperty_0(lgraph, ($clinit_InternalProperties_1() , SPACINGS), spacings); + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), castTo($getProperty(lgraph, CYCLE_BREAKING_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P2_LAYERING, castTo($getProperty(lgraph, LAYERING_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P3_NODE_ORDERING, castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P4_NODE_PLACEMENT, castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P5_EDGE_ROUTING, factoryFor(castTo($getProperty(lgraph, EDGE_ROUTING), 218))); + $addProcessorConfiguration(this$static.algorithmAssembler, $getPhaseIndependentLayoutProcessorConfiguration(lgraph)); + $setProperty_0(lgraph, PROCESSORS, $build_0(this$static.algorithmAssembler, lgraph)); +} + +function GraphConfigurator(){ + $clinit_GraphConfigurator(); + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit); +} + +function activateGreedySwitchFor(lgraph){ + var activationThreshold, graphSize, greedySwitchType, interactiveCrossMin; + if (maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))) { + return !lgraph.parentNode && maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)) !== maskUndefined(($clinit_GreedySwitchType() , OFF)); + } + greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292); + interactiveCrossMin = $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) || maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0)) === maskUndefined(($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1)); + activationThreshold = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0), 19).value_0; + graphSize = lgraph.layerlessNodes.array.length; + return !interactiveCrossMin && greedySwitchType != ($clinit_GreedySwitchType() , OFF) && (activationThreshold == 0 || activationThreshold > graphSize); +} + +defineClass(1263, 1, {}, GraphConfigurator); +var BASELINE_PROCESSING_CONFIGURATION, HIERARCHICAL_ADDITIONS, LABEL_MANAGEMENT_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator', 1263); +function GraphConfigurator$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(759, 1, $intern_19, GraphConfigurator$lambda$0$Type); +_.accept = function accept_60(arg0){ + $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$0$Type', 759); +function GraphConfigurator$lambda$1$Type(){ +} + +defineClass(760, 1, {}, GraphConfigurator$lambda$1$Type); +_.apply_0 = function apply_59(arg0){ + return $clinit_GraphConfigurator() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$1$Type', 760); +function GraphConfigurator$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(761, 1, $intern_19, GraphConfigurator$lambda$2$Type); +_.accept = function accept_61(arg0){ + $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$2$Type', 761); +function LayeredLayoutProvider(){ + this.elkLayered = new ElkLayered; +} + +defineClass(1127, 209, $intern_96, LayeredLayoutProvider); +_.layout = function layout_2(elkgraph, progressMonitor){ + var layeredGraph; + layeredGraph = $importGraph_1(new ElkGraphImporter, elkgraph); + maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$doCompoundLayout(this.elkLayered, layeredGraph, progressMonitor):$doLayout(this.elkLayered, layeredGraph, progressMonitor); + $applyLayout_2(new ElkGraphLayoutTransferrer, layeredGraph); +} +; +var Lorg_eclipse_elk_alg_layered_LayeredLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'LayeredLayoutProvider', 1127); +function $clinit_LayeredPhases(){ + $clinit_LayeredPhases = emptyMethod; + P1_CYCLE_BREAKING = new LayeredPhases('P1_CYCLE_BREAKING', 0); + P2_LAYERING = new LayeredPhases('P2_LAYERING', 1); + P3_NODE_ORDERING = new LayeredPhases('P3_NODE_ORDERING', 2); + P4_NODE_PLACEMENT = new LayeredPhases('P4_NODE_PLACEMENT', 3); + P5_EDGE_ROUTING = new LayeredPhases('P5_EDGE_ROUTING', 4); +} + +function LayeredPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_27(name_0){ + $clinit_LayeredPhases(); + return valueOf(($clinit_LayeredPhases$Map() , $MAP_15), name_0); +} + +function values_33(){ + $clinit_LayeredPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]); +} + +defineClass(356, 22, {3:1, 35:1, 22:1, 356:1}, LayeredPhases); +var P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit = createForEnum('org.eclipse.elk.alg.layered', 'LayeredPhases', 356, Ljava_lang_Enum_2_classLit, values_33, valueOf_27); +function $clinit_LayeredPhases$Map(){ + $clinit_LayeredPhases$Map = emptyMethod; + $MAP_15 = createValueOfMap(($clinit_LayeredPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]))); +} + +var $MAP_15; +function $clinit_ComponentsToCGraphTransformer(){ + $clinit_ComponentsToCGraphTransformer = emptyMethod; + SPACING_HANDLER = new ComponentsToCGraphTransformer$1; +} + +function $applyLayout_1(this$static){ + var bottomRight, cNode, cNode$iterator, n, n$iterator, placeholder, placeholder$iterator, topLeft; + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + n.rect.x_0 = n.hitbox.x_0; + n.rect.y_0 = n.hitbox.y_0; + } + topLeft = new KVector_1($intern_59, $intern_59); + bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + for (placeholder$iterator = $values(this$static.externalPlaceholder).this$01.valueIterator_0(); placeholder$iterator.hasNext_0();) { + placeholder = castTo(placeholder$iterator.next_1(), 46); + cNode = castTo(placeholder.second, 81); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + this$static.globalOffset = $negate(new KVector_1(topLeft.x_0, topLeft.y_0)); + this$static.graphSize = $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft); + this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $getOffset(this$static, c){ + var cOffset; + cOffset = $sub_0($clone_0(castTo($get_10(this$static.oldPosition, c), 8)), $getPosition(castTo($get_10(this$static.offsets, c), 460).rect)); + return cOffset; +} + +function $setLock(cNode, portSides){ + portSides.isEmpty() && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, ($clinit_PortSide() , SIDES_NORTH)) && $set_6(cNode.lock, true, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST) && $set_6(cNode.lock, false, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH) && $set_6(cNode.lock, true, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_WEST) && $set_6(cNode.lock, true, false, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST) && $set_6(cNode.lock, false, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH) && $set_6(cNode.lock, false, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH_WEST) && $set_6(cNode.lock, true, false, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_WEST) && $set_6(cNode.lock, true, false, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); +} + +function $transform_0(this$static, ccs){ + var comp, comp$iterator, dummyGroup, ee, ee$iterator, group, rect, rect$iterator, rectNode, rectPlaceholder; + this$static.cGraph = new CGraph_0(allOf(Lorg_eclipse_elk_core_options_Direction_2_classLit)); + for (comp$iterator = new ArrayList$1(ccs.components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 841); + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); + $add_3(this$static.cGraph.cGroups, group); + for (rect$iterator = new ArrayList$1(comp.rectilinearConvexHull); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 110); + rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, rect); + $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); + if (!$containsKey_3(this$static.oldPosition, comp)) { + $put_6(this$static.oldPosition, comp, new KVector_1(rect.x_0, rect.y_0)); + $put_6(this$static.offsets, comp, rectNode); + } + $add_3(this$static.cGraph.cNodes, rectNode); + $addCNode_0(group, rectNode); + } + for (ee$iterator = new ArrayList$1(comp.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { + ee = castTo($next_7(ee$iterator), 594); + rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, ee.getRepresentor()); + $put_6(this$static.externalExtensions, ee, new Pair(group, rectNode)); + $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); + if (ee.getPlaceholder()) { + rectPlaceholder = new ComponentsToCGraphTransformer$CRectNode_0(this$static, ee.getPlaceholder(), 1); + $setLock(rectPlaceholder, castTo($getProperty(comp.graph_0, EXT_PORT_CONNECTIONS), 21)); + dummyGroup = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); + $addCNode_0(dummyGroup, rectPlaceholder); + $put(this$static.externalPlaceholder, ee.getDirection(), new Pair(group, rectPlaceholder)); + } + } + } + return this$static.cGraph; +} + +function ComponentsToCGraphTransformer(spacing){ + $clinit_ComponentsToCGraphTransformer(); + this.oldPosition = new HashMap; + this.offsets = new HashMap; + this.externalExtensions = new HashMap; + this.externalPlaceholder = new HashMultimap; + this.spacing = spacing; +} + +defineClass(1651, 1, {}, ComponentsToCGraphTransformer); +_.spacing = 0; +var SPACING_HANDLER; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer', 1651); +function $clinit_ISpacingsHandler_0(){ + $clinit_ISpacingsHandler_0 = emptyMethod; + DEFAULT_SPACING_HANDLER_0 = new ISpacingsHandler$1_0; +} + +var DEFAULT_SPACING_HANDLER_0; +function ComponentsToCGraphTransformer$1(){ +} + +defineClass(1652, 1, {}, ComponentsToCGraphTransformer$1); +_.getHorizontalSpacing_0 = function getHorizontalSpacing_0(cNode1, cNode2){ + return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +_.getVerticalSpacing_0 = function getVerticalSpacing_0(cNode1, cNode2){ + return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/1', 1652); +defineClass(81, 1, {81:1}); +_.id_0 = 0; +_.reposition = true; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CNode', 81); +function ComponentsToCGraphTransformer$CRectNode(this$0, rect){ + ComponentsToCGraphTransformer$CRectNode_0.call(this, this$0, rect, null); +} + +function ComponentsToCGraphTransformer$CRectNode_0(this$0, rect, spacing){ + this.this$01 = this$0; + this.constraints = new ArrayList; + this.cGroupOffset = new KVector; + this.lock = new Quadruplet_0; + this.spacingIgnore = new Quadruplet_0; + this.rect = rect; + this.hitbox = new ElkRectangle_0(rect.x_0, rect.y_0, rect.width_0, rect.height); + this.individualSpacing = spacing; +} + +defineClass(460, 81, {460:1, 81:1}, ComponentsToCGraphTransformer$CRectNode, ComponentsToCGraphTransformer$CRectNode_0); +_.toString_0 = function toString_84(){ + return ''; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$CRectNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/CRectNode', 460); +function $clinit_OneDimensionalComponentsCompaction(){ + $clinit_OneDimensionalComponentsCompaction = emptyMethod; + LEFT_RIGHT = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [($clinit_Direction_0() , LEFT_6), RIGHT_6])); + UP_DOWN = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UP_1, DOWN_1])); +} + +function $addExternalEdgeRepresentations(this$static, ees){ + var p, p$iterator; + for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 46); + $add_3(this$static.compactionGraph.cNodes, castTo(p.second, 81)); + $addCNode_0(castTo(p.first, 189), castTo(p.second, 81)); + } +} + +function $addPlaceholders(this$static, dir_0){ + var d, d$iterator, dirs, pair, pair$iterator; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $add_3(this$static.compactionGraph.cNodes, castTo(pair.second, 81)); + $add_3(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); + } + } +} + +function $compact_1(this$static){ + var delta, direction, g, g$iterator, g$iterator0, g$iterator1, g$iterator2; + delta = 0; + for (g$iterator0 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator0.i < g$iterator0.this$01.array.length;) { + g = castTo($next_7(g$iterator0), 189); + g.delta = 0; + g.deltaNormalized = 0; + } + $addPlaceholders(this$static, 0); + $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $calculateGroupOffsets_0(this$static.compactor); + $forceConstraintsRecalculation(this$static.compactor); + direction = ($clinit_Direction_0() , LEFT_6); + $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($changeDirection_0(this$static.compactor, direction)), $opposite(direction)))), direction))); + $changeDirection_0(this$static.compactor, LEFT_6); + $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $removePlaceholders(this$static, 0); + $updateExternalExtensionDimensions(this$static, 0); + $updatePlaceholders(this$static, 1); + $addPlaceholders(this$static, 1); + $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $calculateGroupOffsets_0(this$static.compactor); + for (g$iterator1 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator1.i < g$iterator1.this$01.array.length;) { + g = castTo($next_7(g$iterator1), 189); + delta += $wnd.Math.abs(g.deltaNormalized); + } + for (g$iterator2 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator2.i < g$iterator2.this$01.array.length;) { + g = castTo($next_7(g$iterator2), 189); + g.delta = 0; + g.deltaNormalized = 0; + } + direction = UP_1; + $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($forceConstraintsRecalculation($changeDirection_0(this$static.compactor, direction))), $opposite(direction)))), direction))); + $changeDirection_0(this$static.compactor, LEFT_6); + $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $removePlaceholders(this$static, 1); + $updateExternalExtensionDimensions(this$static, 1); + $updatePlaceholders(this$static, 0); + $forceConstraintsRecalculation(this$static.compactor); + for (g$iterator = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 189); + delta += $wnd.Math.abs(g.deltaNormalized); + } + return delta; +} + +function $compact_2(this$static){ + var allNodes, cNode, cNode$iterator, delta, entry, entry$iterator, run; + allNodes = new ArrayList; + this$static.verticalExternalExtensions = new ArrayList; + this$static.horizontalExternalExtensions = new ArrayList; + for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { + entry = $next_4(entry$iterator); + $add_3(allNodes, castTo(castTo(entry.getValue(), 46).second, 81)); + $isHorizontal(castTo(entry.getKey(), 594).getDirection())?$add_3(this$static.horizontalExternalExtensions, castTo(entry.getValue(), 46)):$add_3(this$static.verticalExternalExtensions, castTo(entry.getValue(), 46)); + } + $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + this$static.compactor = new OneDimensionalCompactor_0(this$static.compactionGraph); + $setSpacingsHandler_0(this$static.compactor, ($clinit_ComponentsToCGraphTransformer() , SPACING_HANDLER)); + $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $addAll_2(allNodes, this$static.compactor.cGraph.cNodes); + this$static.topLeft = new KVector_1($intern_59, $intern_59); + this$static.bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(allNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, cNode.hitbox.x_0); + this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, cNode.hitbox.y_0); + this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$0$Type); + run = 0; + do { + delta = $compact_1(this$static); + ++run; + } + while ((run < 2 || delta > $intern_41) && run < 10); + $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$1$Type); + $compact_1(this$static); + $finish(this$static.compactor); + $applyLayout_1(this$static.transformer); +} + +function $getOffset_0(this$static, c){ + var individual; + individual = $getOffset(this$static.transformer, c); + return $add_19($negate(individual), this$static.transformer.globalOffset); +} + +function $removeExternalEdgeRepresentations(this$static, ees){ + var p, p$iterator; + for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 46); + $remove_12(this$static.compactionGraph.cNodes, p.second); + $removeCNode(castTo(p.first, 189), castTo(p.second, 81)); + } +} + +function $removePlaceholders(this$static, dir_0){ + var d, d$iterator, dirs, pair, pair$iterator; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(this$static.compactionGraph.cNodes, pair.second); + $remove_12(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); + } + } +} + +function $updateExternalExtensionDimensions(this$static, dir_0){ + var adelta, cNode, ee, entry, entry$iterator, group; + for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { + entry = $next_4(entry$iterator); + ee = castTo(entry.getKey(), 594); + if (dir_0 == 1) { + if (ee.getDirection() != ($clinit_Direction_0() , UP_1) && ee.getDirection() != DOWN_1) { + continue; + } + } + else { + if (ee.getDirection() != ($clinit_Direction_0() , LEFT_6) && ee.getDirection() != RIGHT_6) { + continue; + } + } + cNode = castTo(castTo(entry.getValue(), 46).second, 81); + group = castTo(castTo(entry.getValue(), 46).first, 189); + adelta = group.deltaNormalized; + switch (ee.getDirection().ordinal) { + case 2: + cNode.hitbox.x_0 = this$static.topLeft.x_0; + cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 + adelta); + break; + case 1: + cNode.hitbox.x_0 = cNode.hitbox.x_0 + adelta; + cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 - adelta); + break; + case 4: + cNode.hitbox.y_0 = this$static.topLeft.y_0; + cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height + adelta); + break; + case 3: + cNode.hitbox.y_0 = cNode.hitbox.y_0 + adelta; + cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height - adelta); + } + } +} + +function $updatePlaceholders(this$static, dir_0){ + var adelta, cNode, d, d$iterator, dirs, pair, pair$iterator, parentComponentGroup; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + cNode = castTo(pair.second, 81); + parentComponentGroup = castTo(pair.first, 189); + adelta = parentComponentGroup.deltaNormalized; + switch (d.ordinal) { + case 2: + case 1: + cNode.hitbox.y_0 += adelta; + break; + case 4: + case 3: + cNode.hitbox.x_0 += adelta; + } + } + } +} + +function OneDimensionalComponentsCompaction(){ +} + +function lambda$0_17(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , castTo(pair_0.first, 81).cGroup.outDegree != 0?true:false; +} + +function lambda$1_6(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103)) || castTo(pair_0.first, 81).cGroup.outDegree != 0 && $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103))?true:false; +} + +defineClass(1623, 1, {}, OneDimensionalComponentsCompaction); +var LEFT_RIGHT, UP_DOWN; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction', 1623); +function OneDimensionalComponentsCompaction$lambda$0$Type(){ +} + +defineClass(1624, 1, {}, OneDimensionalComponentsCompaction$lambda$0$Type); +_.apply_0 = function apply_60(arg0){ + return lambda$0_17(castTo(arg0, 46)); +} +; +_.equals_0 = function equals_82(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$0$Type', 1624); +function OneDimensionalComponentsCompaction$lambda$1$Type(){ +} + +defineClass(1625, 1, {}, OneDimensionalComponentsCompaction$lambda$1$Type); +_.apply_0 = function apply_61(arg0){ + return lambda$1_6(castTo(arg0, 46)); +} +; +_.equals_0 = function equals_83(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$1$Type', 1625); +function $supports_0(this$static, direction){ + return $containsEnum(this$static.supportedDirections, direction); +} + +function CGraph_0(supportedDirections){ + this.cNodes = new ArrayList; + this.cGroups = new ArrayList; + this.supportedDirections = supportedDirections; +} + +defineClass(1654, 1, {}, CGraph_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGraph', 1654); +function $addCNode_0(this$static, cNode){ + $add_6(this$static.cNodes, cNode); + if (cNode.cGroup) { + throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); + } + cNode.cGroup = this$static; +} + +function $removeCNode(this$static, cNode){ + var removed; + removed = $remove_18(this$static.cNodes, cNode); + removed && (cNode.cGroup = null); + return removed; +} + +function CGroup_0(inputCNodes){ + var cNode, cNode$array, cNode$index, cNode$max; + this.cNodes = new LinkedHashSet; + this.incomingConstraints = new HashSet; + this.outDegree = 0; + for (cNode$array = inputCNodes , cNode$index = 0 , cNode$max = cNode$array.length; cNode$index < cNode$max; ++cNode$index) { + cNode = cNode$array[cNode$index]; + !this.reference && (this.reference = cNode); + $addCNode_0(this, cNode); + } +} + +defineClass(189, 1, {189:1}, CGroup_0); +_.delta = 0; +_.deltaNormalized = 0; +_.outDegree = 0; +_.reposition = true; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGroup', 189); +function ISpacingsHandler$1_0(){ +} + +defineClass(1653, 1, {}, ISpacingsHandler$1_0); +_.getHorizontalSpacing_0 = function getHorizontalSpacing_1(cNode1, cNode2){ + return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +_.getVerticalSpacing_0 = function getVerticalSpacing_1(cNode1, cNode2){ + return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'ISpacingsHandler/1', 1653); +function $clinit_OneDimensionalCompactor_0(){ + $clinit_OneDimensionalCompactor_0 = emptyMethod; + SCANLINE_CONSTRAINTS_0 = new ScanlineConstraintCalculator_0; +} + +function $applyLockingStrategy(this$static){ + $applyLockingStrategy_0(this$static, this$static.direction); + return this$static; +} + +function $applyLockingStrategy_0(this$static, dir_0){ + var cGroup, cGroup$iterator, cNode, cNode$iterator; + for (cGroup$iterator = new ArrayList$1(this$static.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { + cGroup = castTo($next_7(cGroup$iterator), 189); + cGroup.reposition = true; + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.reposition = $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); + cNode.cGroup.reposition = cNode.cGroup.reposition & $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); + } + return this$static; +} + +function $calculateConstraints_0(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.constraints.clear_0(); + } + $calculateConstraints_1(this$static.constraintAlgorithm, this$static); + $calculateConstraintsForCGroups_0(this$static); +} + +function $calculateConstraintsForCGroups_0(this$static){ + var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; + for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 189); + group.outDegree = 0; + group.incomingConstraints.map_0.clear_0(); + } + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 189); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 81); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 81); + if (inc.cGroup != group) { + $add_6(group.incomingConstraints, inc); + ++inc.cGroup.outDegree; + } + } + } + } +} + +function $calculateGroupOffsets_0(this$static){ + var group, group$iterator, n, n$iterator, n$iterator0; + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 189); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 81); + $reset_5(n.cGroupOffset); + (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); + } + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 81); + n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; + n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; + } + } + return this$static; +} + +function $changeDirection_0(this$static, dir_0){ + var oldDirection; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + if (!$supports_0(this$static.cGraph, dir_0)) { + throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); + } + if (dir_0 == this$static.direction) { + return this$static; + } + oldDirection = this$static.direction; + this$static.direction = dir_0; + switch (oldDirection.ordinal) { + case 0: + switch (dir_0.ordinal) { + case 2: + $calculateConstraints_0(this$static); + break; + case 1: + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 4: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 2: + switch (dir_0.ordinal) { + case 1: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + break; + case 4: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 1: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + break; + case 4: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 4: + switch (dir_0.ordinal) { + case 2: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 1: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + } + + break; + case 3: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 1: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 4: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + } + + } + return this$static; +} + +function $compact_3(this$static){ + var g, g$iterator, incN, incN$iterator, n, n$iterator, node, node$iterator; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection_0(this$static, LEFT_6); + for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 189); + g.outDegree = 0; + } + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + n.startPos = $intern_60; + for (incN$iterator = n.constraints.iterator_0(); incN$iterator.hasNext_0();) { + incN = castTo(incN$iterator.next_1(), 81); + ++incN.cGroup.outDegree; + } + } + $compact_4(this$static); + for (node$iterator = new ArrayList$1(this$static.cGraph.cNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 81); + node.reposition = true; + } + return this$static; +} + +function $finish(this$static){ + $changeDirection_0(this$static, ($clinit_Direction_0() , LEFT_6)); + this$static.finished = true; + return this$static; +} + +function $forceConstraintsRecalculation(this$static){ + $calculateConstraints_0(this$static); + return this$static; +} + +function $mirrorHitboxes_0(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; + } + $calculateGroupOffsets_0(this$static); +} + +function $reverseConstraints_0(this$static){ + var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; + incMap = new HashMap; + for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 81); + $put_6(incMap, cNode, new ArrayList); + } + for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator1), 81); + cNode.startPos = $intern_60; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 81); + castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); + } + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.constraints.clear_0(); + cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); + } + $calculateConstraintsForCGroups_0(this$static); +} + +function $setLockingStrategy(this$static, strategy){ + this$static.lockingStrategy = strategy; + return this$static; +} + +function $setSpacingsHandler_0(this$static, handler){ + this$static.spacingsHandler = handler; + return this$static; +} + +function $transposeHitboxes_0(this$static){ + var cNode, cNode$iterator, tmp; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + tmp = cNode.hitbox.x_0; + cNode.hitbox.x_0 = cNode.hitbox.y_0; + cNode.hitbox.y_0 = tmp; + tmp = cNode.hitbox.width_0; + cNode.hitbox.width_0 = cNode.hitbox.height; + cNode.hitbox.height = tmp; + tmp = cNode.cGroupOffset.x_0; + cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; + cNode.cGroupOffset.y_0 = tmp; + } + $calculateGroupOffsets_0(this$static); +} + +function OneDimensionalCompactor_0(cGraph){ + $clinit_OneDimensionalCompactor_0(); + var group, n, n$iterator; + this.constraintAlgorithm = SCANLINE_CONSTRAINTS_0; + this.direction = ($clinit_Direction_0() , UNDEFINED_2); + this.spacingsHandler = ($clinit_ISpacingsHandler_0() , DEFAULT_SPACING_HANDLER_0); + this.cGraph = cGraph; + $setLockingStrategy(this, new OneDimensionalCompactor$lambda$0$Type_0); + $calculateGroupOffsets_0(this); + for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + if (!n.cGroup) { + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [n])); + $add_3(cGraph.cGroups, group); + } + } +} + +defineClass(1655, 1, {}, OneDimensionalCompactor_0); +_.finished = false; +var SCANLINE_CONSTRAINTS_0; +var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor', 1655); +function OneDimensionalCompactor$lambda$0$Type_0(){ +} + +defineClass(1656, 1, {}, OneDimensionalCompactor$lambda$0$Type_0); +_.apply_0 = function apply_62(arg0){ + return $clinit_OneDimensionalCompactor_0() , $clinit_Boolean() , castTo(castTo(arg0, 46).first, 81).cGroup.outDegree != 0?true:false; +} +; +_.equals_0 = function equals_84(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1656); +function $get_19(this$static, direction){ + switch (direction.ordinal) { + case 2: + return this$static.left; + case 1: + return this$static.right; + case 4: + return this$static.up; + case 3: + return this$static.down; + default:return false; + } +} + +function $set_6(this$static, l, r, u, d){ + this$static.left = l; + this$static.right = r; + this$static.up = u; + this$static.down = d; +} + +function Quadruplet_0(){ + $set_6(this, false, false, false, false); +} + +defineClass(823, 1, {}, Quadruplet_0); +_.down = false; +_.left = false; +_.right = false; +_.up = false; +var Lorg_eclipse_elk_alg_layered_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'Quadruplet', 823); +function $compact_4(compactor){ + var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; + minStartPos = $intern_59; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 81); + minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); + } + sinks = new LinkedList; + for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 189); + group.startPos = minStartPos; + group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 189); + diff = group.reference.hitbox.x_0; + for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { + node = castTo(node$iterator0.next_1(), 81); + suggestedX = group.startPos + node.cGroupOffset.x_0; + node.cGroup.reposition || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); + } + diff -= group.reference.startPos; + group.delta += diff; + compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); + for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 81); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 81); + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing_0(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing_0(node, incNode)); + incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); + incNode.reposition || (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); + --incNode.cGroup.outDegree; + incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); + } + } + } + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.hitbox.x_0 = cNode.startPos; + } +} + +function $blowUpHitboxes(this$static){ + var n, n$iterator, spacing; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + spacing = (checkCriticalNotNull(0) , 0); + if (spacing > 0) { + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 -= $wnd.Math.max(0, spacing / 2 - 0.5)); + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height += $wnd.Math.max(0, spacing - 1)); + } + } +} + +function $calculateConstraints_1(this$static, theCompactor){ + this$static.compactor = theCompactor; + $sweep_1(this$static); +} + +function $normalizeHitboxes(this$static){ + var n, n$iterator, spacing; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + spacing = (checkCriticalNotNull(0) , 0); + if (spacing > 0) { + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 += $wnd.Math.max(0, spacing / 2 - 0.5)); + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height -= spacing - 1); + } + } +} + +function $sweep_1(this$static){ + var n, n$iterator, points; + $blowUpHitboxes(this$static); + points = new ArrayList; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, true)); + $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, false)); + } + $reset_2(this$static.constraintsScanlineHandler); + execute_0(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [this$static.constraintsScanlineHandler]))); + $normalizeHitboxes(this$static); +} + +function ScanlineConstraintCalculator_0(){ + this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type_0; + this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this); +} + +function lambda$0_18(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.hitbox.y_0; + p1_0.low || (y1 += p1_0.node.hitbox.height); + y2 = p2_1.node.hitbox.y_0; + p2_1.low || (y2 += p2_1.node.hitbox.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(1825, 1, {}, ScanlineConstraintCalculator_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator', 1825); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline/EventHandler'); +function $handle_1(this$static, p){ + var right, left, right_0; + p.low?($add_10(this$static.intervals, p.node) , this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 81) , right = castTo($higher(this$static.intervals, p.node), 81) , !!right && (this$static.cand[right.id_0] = p.node) , undefined):(left = castTo($lower(this$static.intervals, p.node), 81) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right_0 = castTo($higher(this$static.intervals, p.node), 81) , !!right_0 && this$static.cand[right_0.id_0] == p.node && !!right_0.cGroup && right_0.cGroup != p.node.cGroup && p.node.constraints.add_2(right_0) , $remove_28(this$static.intervals, p.node) , undefined); +} + +function $reset_2(this$static){ + var index_0, n, n$iterator; + $clear_8(this$static.intervals.map_0); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, $intern_2, 81, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); + index_0 = 0; + for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + n.id_0 = index_0++; + } +} + +function ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this$0){ + this.this$01 = this$0; + this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0), 62)); +} + +function lambda$0_19(c1_0, c2_1){ + return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); +} + +defineClass(1826, 1, {369:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler_0); +_.handle = function handle_1(p){ + $handle_1(this, castTo(p, 466)); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1826); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0(){ +} + +defineClass(1827, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0); +_.compare_1 = function compare_30(arg0, arg1){ + return lambda$0_19(castTo(arg0, 81), castTo(arg1, 81)); +} +; +_.equals_0 = function equals_85(other){ + return this === other; +} +; +_.reversed = function reversed_22(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1827); +function ScanlineConstraintCalculator$Timestamp_0(node, low){ + this.node = node; + this.low = low; +} + +defineClass(466, 1, {466:1}, ScanlineConstraintCalculator$Timestamp_0); +_.low = false; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/Timestamp', 466); +function ScanlineConstraintCalculator$lambda$0$Type_0(){ +} + +defineClass(1828, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type_0); +_.compare_1 = function compare_31(arg0, arg1){ + return lambda$0_18(castTo(arg0, 466), castTo(arg1, 466)); +} +; +_.equals_0 = function equals_86(other){ + return this === other; +} +; +_.reversed = function reversed_23(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/lambda$0$Type', 1828); +function Point(x_0, y_0){ + this.x_0 = x_0; + this.y_0 = y_0; +} + +function Point_0(x_0, y_0, quadrant){ + Point.call(this, x_0, y_0); + this.quadrant = quadrant; +} + +defineClass(140, 1, {140:1}, Point, Point_0); +_.equals_0 = function equals_87(obj){ + var p2; + if (obj == null) { + return false; + } + if (Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit != getClass__Ljava_lang_Class___devirtual$(obj)) { + return false; + } + p2 = castTo(obj, 140); + return equals_57(this.x_0, p2.x_0) && equals_57(this.y_0, p2.y_0); +} +; +_.hashCode_1 = function hashCode_60(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0])); +} +; +_.toString_0 = function toString_85(){ + return '(' + this.x_0 + ', ' + this.y_0 + (this.convex?'cx':'') + this.quadrant + ')'; +} +; +_.convex = true; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Point', 140); +function $clinit_Point$Quadrant(){ + $clinit_Point$Quadrant = emptyMethod; + Q1 = new Point$Quadrant('Q1', 0); + Q4 = new Point$Quadrant('Q4', 1); + Q2 = new Point$Quadrant('Q2', 2); + Q3 = new Point$Quadrant('Q3', 3); +} + +function $isLeft(this$static){ + return this$static == Q1 || this$static == Q4; +} + +function $isUpper(this$static){ + return this$static == Q1 || this$static == Q2; +} + +function Point$Quadrant(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isBothLeftOrBothRight(q1, q2){ + $clinit_Point$Quadrant(); + return q1 == Q1 && q2 == Q4 || q1 == Q4 && q2 == Q1 || q1 == Q3 && q2 == Q2 || q1 == Q2 && q2 == Q3; +} + +function isOneLeftOneRight(q1, q2){ + $clinit_Point$Quadrant(); + return q1 == Q1 && q2 == Q2 || q1 == Q1 && q2 == Q3 || q1 == Q4 && q2 == Q3 || q1 == Q4 && q2 == Q2; +} + +function valueOf_28(name_0){ + $clinit_Point$Quadrant(); + return valueOf(($clinit_Point$Quadrant$Map() , $MAP_16), name_0); +} + +function values_34(){ + $clinit_Point$Quadrant(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]); +} + +defineClass(405, 22, {3:1, 35:1, 22:1, 405:1}, Point$Quadrant); +var Q1, Q2, Q3, Q4; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit = createForEnum('org.eclipse.elk.alg.layered.compaction.recthull', 'Point/Quadrant', 405, Ljava_lang_Enum_2_classLit, values_34, valueOf_28); +function $clinit_Point$Quadrant$Map(){ + $clinit_Point$Quadrant$Map = emptyMethod; + $MAP_16 = createValueOfMap(($clinit_Point$Quadrant() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]))); +} + +var $MAP_16; +function $clinit_RectilinearConvexHull(){ + $clinit_RectilinearConvexHull = emptyMethod; + RIGHT_HIGH_FIRST = new RectilinearConvexHull$lambda$0$Type; + RIGHT_LOW_FIRST = new RectilinearConvexHull$lambda$1$Type; + LEFT_HIGH_FIRST = new RectilinearConvexHull$lambda$2$Type; + LEFT_LOW_FIRST = new RectilinearConvexHull$lambda$3$Type; + RIGHT_SPECIAL_ORDER = new RectilinearConvexHull$lambda$4$Type; +} + +function $splitIntoRectangles(this$static){ + var handler; + handler = new RectilinearConvexHull$RectangleEventHandler(this$static); + execute_0(this$static.hull, RIGHT_SPECIAL_ORDER, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [handler]))); + !!handler.queued && $add_3(handler.rects, handler.queued); + return handler.rects; +} + +function RectilinearConvexHull(){ + this.hull = new ArrayList; +} + +function addConcaveCorners(pts, q){ + var last, next, p, pIt; + pIt = new AbstractList$ListIteratorImpl(pts, 0); + last = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); + while (pIt.i < pIt.this$01_0.size_1()) { + next = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); + p = new Point_0(next.x_0, last.y_0, q); + checkCriticalElement(pIt.i > 0); + pIt.this$01.get_0(pIt.last = --pIt.i); + $add_1(pIt, p); + checkCriticalElement(pIt.i < pIt.this$01_0.size_1()); + pIt.this$01_0.get_0(pIt.last = pIt.i++); + p.convex = false; + last = next; + } +} + +function lambda$0_20(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p1_0.x_0, p2_1.x_0); +} + +function lambda$1_7(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p1_0.x_0, p2_1.x_0); +} + +function lambda$2_2(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p2_1.x_0, p1_0.x_0); +} + +function lambda$3_0(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p2_1.x_0, p1_0.x_0); +} + +function lambda$4_2(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + var val; + if (p1_0.x_0 == p2_1.x_0) { + if (p1_0.quadrant == p2_1.quadrant || isBothLeftOrBothRight(p1_0.quadrant, p2_1.quadrant)) { + val = $isLeft(p1_0.quadrant)?1:-1; + if (p1_0.convex && !p2_1.convex) { + return val; + } + else if (!p1_0.convex && p2_1.convex) { + return -val; + } + } + return compare_5(p1_0.quadrant.ordinal, p2_1.quadrant.ordinal); + } + else { + return compare_4(p1_0.x_0, p2_1.x_0); + } +} + +function of_5(points){ + $clinit_RectilinearConvexHull(); + var p, p$iterator, q1, q2, q3, q4, rch; + rch = new RectilinearConvexHull; + for (p$iterator = new ArrayList$1(points); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 140); + (!rch.xMax1 || p.x_0 >= rch.xMax1.x_0) && (rch.xMax1 = p); + if (!rch.xMin1 || p.x_0 <= rch.xMin1.x_0) { + rch.xMin2 = rch.xMin1; + rch.xMin1 = p; + } + (!rch.yMax1 || p.y_0 >= rch.yMax1.y_0) && (rch.yMax1 = p); + (!rch.yMin1 || p.y_0 <= rch.yMin1.y_0) && (rch.yMin1 = p); + } + q1 = new RectilinearConvexHull$MaximalElementsEventHandler(($clinit_Point$Quadrant() , Q1)); + execute_0(points, RIGHT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q1]))); + q4 = new RectilinearConvexHull$MaximalElementsEventHandler(Q4); + execute_0(points, RIGHT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q4]))); + q2 = new RectilinearConvexHull$MaximalElementsEventHandler(Q2); + execute_0(points, LEFT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q2]))); + q3 = new RectilinearConvexHull$MaximalElementsEventHandler(Q3); + execute_0(points, LEFT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q3]))); + addConcaveCorners(q1.points, Q1); + addConcaveCorners(q2.points, Q2); + addConcaveCorners(q3.points, Q3); + addConcaveCorners(q4.points, Q4); + rch.hull.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(rch.hull, q1.points); + $addAll_2(rch.hull, reverse_0(q2.points)); + $addAll_2(rch.hull, q3.points); + $addAll_2(rch.hull, reverse_0(q4.points)); + return rch; +} + +defineClass(1642, 1, {}, RectilinearConvexHull); +_.xMax1 = null; +_.xMin1 = null; +_.xMin2 = null; +_.yMax1 = null; +_.yMin1 = null; +var LEFT_HIGH_FIRST, LEFT_LOW_FIRST, RIGHT_HIGH_FIRST, RIGHT_LOW_FIRST, RIGHT_SPECIAL_ORDER; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull', 1642); +function $clinit_RectilinearConvexHull$MaximalElementsEventHandler(){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler = emptyMethod; + DBL_CMP = new RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type; +} + +function $handle_2(this$static, p){ + if (this$static.compare.compare_1(p.y_0, this$static.maximalY) > 0) { + $add_3(this$static.points, new Point_0(p.x_0, p.y_0, this$static.quadrant)); + this$static.maximalY = p.y_0; + } +} + +function RectilinearConvexHull$MaximalElementsEventHandler(quadrant){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + this.points = new ArrayList; + this.quadrant = quadrant; + switch (quadrant.ordinal) { + case 0: + case 2: + this.compare = reverseOrder(DBL_CMP); + this.maximalY = $intern_59; + break; + case 3: + case 1: + this.compare = DBL_CMP; + this.maximalY = $intern_60; + } +} + +function lambda$0_21(d1_0, d2_1){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + return compare_4((checkCriticalNotNull(d1_0) , d1_0), (checkCriticalNotNull(d2_1) , d2_1)); +} + +defineClass(574, 1, {369:1}, RectilinearConvexHull$MaximalElementsEventHandler); +_.handle = function handle_2(p){ + $handle_2(this, castTo(p, 140)); +} +; +_.maximalY = 0; +var DBL_CMP; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler', 574); +function RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type(){ +} + +defineClass(1644, 1, $intern_88, RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type); +_.compare_1 = function compare_32(arg0, arg1){ + return lambda$0_21(castToDouble(arg0), castToDouble(arg1)); +} +; +_.equals_0 = function equals_88(other){ + return this === other; +} +; +_.reversed = function reversed_24(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type', 1644); +function $handle_3(this$static, p){ + var r; + if (!!this$static.queued && (p.x_0 != this$static.queuedPnt.x_0 || isOneLeftOneRight(this$static.queuedPnt.quadrant, p.quadrant))) { + $add_3(this$static.rects, this$static.queued); + this$static.lastX = this$static.queued.x_0 + this$static.queued.width_0; + this$static.queued = null; + this$static.queuedPnt = null; + } + $isUpper(p.quadrant)?(this$static.minY = p):(this$static.maxY = p); + if (p.quadrant == ($clinit_Point$Quadrant() , Q1) && !p.convex || p.quadrant == Q2 && p.convex || p.quadrant == Q3 && p.convex || p.quadrant == Q4 && !p.convex) { + if (!!this$static.minY && !!this$static.maxY) { + r = new ElkRectangle_0(this$static.lastX, this$static.minY.y_0, p.x_0 - this$static.lastX, this$static.maxY.y_0 - this$static.minY.y_0); + this$static.queued = r; + this$static.queuedPnt = p; + } + } +} + +function RectilinearConvexHull$RectangleEventHandler(this$0){ + this.this$01 = this$0; + this.rects = new ArrayList; + this.lastX = $wnd.Math.min(this.this$01.xMin1.x_0, this.this$01.xMin2.x_0); +} + +defineClass(1643, 1, {369:1}, RectilinearConvexHull$RectangleEventHandler); +_.handle = function handle_3(p){ + $handle_3(this, castTo(p, 140)); +} +; +_.lastX = 0; +_.maxY = null; +_.minY = null; +_.queued = null; +_.queuedPnt = null; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$RectangleEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/RectangleEventHandler', 1643); +function RectilinearConvexHull$lambda$0$Type(){ +} + +defineClass(1645, 1, $intern_88, RectilinearConvexHull$lambda$0$Type); +_.compare_1 = function compare_33(arg0, arg1){ + return lambda$0_20(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_89(other){ + return this === other; +} +; +_.reversed = function reversed_25(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$0$Type', 1645); +function RectilinearConvexHull$lambda$1$Type(){ +} + +defineClass(1646, 1, $intern_88, RectilinearConvexHull$lambda$1$Type); +_.compare_1 = function compare_34(arg0, arg1){ + return lambda$1_7(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_90(other){ + return this === other; +} +; +_.reversed = function reversed_26(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$1$Type', 1646); +function RectilinearConvexHull$lambda$2$Type(){ +} + +defineClass(1647, 1, $intern_88, RectilinearConvexHull$lambda$2$Type); +_.compare_1 = function compare_35(arg0, arg1){ + return lambda$2_2(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_91(other){ + return this === other; +} +; +_.reversed = function reversed_27(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$2$Type', 1647); +function RectilinearConvexHull$lambda$3$Type(){ +} + +defineClass(1648, 1, $intern_88, RectilinearConvexHull$lambda$3$Type); +_.compare_1 = function compare_36(arg0, arg1){ + return lambda$3_0(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_92(other){ + return this === other; +} +; +_.reversed = function reversed_28(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$3$Type', 1648); +function RectilinearConvexHull$lambda$4$Type(){ +} + +defineClass(1649, 1, $intern_88, RectilinearConvexHull$lambda$4$Type); +_.compare_1 = function compare_37(arg0, arg1){ + return lambda$4_2(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_93(other){ + return this === other; +} +; +_.reversed = function reversed_29(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$4$Type', 1649); +function $go_0(this$static){ + var h, h$iterator, p, p$iterator; + $clinit_Collections(); + $sort(this$static.points, this$static.comparator); + for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { + p = $next_7(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_7(h$iterator), 369); + h.handle(p); + } + } +} + +function Scanline_0(points, comparator, eventHandlers){ + this.comparator = comparator; + this.points = points; + this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); +} + +function execute_0(points, comparator, eventHandlers){ + var copy; + copy = (checkNotNull(points) , new ArrayList_1(points)); + $go_0(new Scanline_0(copy, comparator, eventHandlers)); +} + +defineClass(1650, 1, {}, Scanline_0); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline', 1650); +function $moveGraph_0(destGraph, sourceGraph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = $add_18(sourceGraph.offset, offsetx, offsety); + for (node$iterator = new ArrayList$1(sourceGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $add_19(label_0.pos, graphOffset); + } + } + } + $add_3(destGraph.layerlessNodes, node); + node.graph_0 = destGraph; + } +} + +function $moveGraphs(destGraph, sourceGraphs){ + var sourceGraph, sourceGraph$iterator; + for (sourceGraph$iterator = sourceGraphs.iterator_0(); sourceGraph$iterator.hasNext_0();) { + sourceGraph = castTo(sourceGraph$iterator.next_1(), 37); + $moveGraph_0(destGraph, sourceGraph, 0, 0); + } +} + +function $offsetGraph(graph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = new KVector_1(offsetx, offsety); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $add_19(label_0.pos, graphOffset); + } + } + } + } +} + +function $offsetGraphs(graphs, offsetx, offsety){ + var graph, graph$iterator; + for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + $offsetGraph(graph, offsetx, offsety); + } +} + +defineClass(2005, 1, {}); +var Lorg_eclipse_elk_alg_layered_components_AbstractGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'AbstractGraphPlacer', 2005); +function $clinit_ComponentGroup(){ + $clinit_ComponentGroup = emptyMethod; + CONSTRAINTS = new HashMultimap; + $put(CONSTRAINTS, ($clinit_PortSide() , SIDES_NONE), SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NONE); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); +} + +function $$init_6(this$static){ + this$static.components = new ArrayListMultimap; +} + +function $getComponents(this$static, connections){ + return castTo($get(this$static.components, connections), 15); +} + +function ComponentGroup(component){ + $clinit_ComponentGroup(); + $$init_6(this); + this.add_4(component); +} + +defineClass(325, 1, {325:1}, ComponentGroup); +_.add_4 = function add_43(component){ + if (this.canAdd(component)) { + $put(this.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); + return true; + } + else { + return false; + } +} +; +_.canAdd = function canAdd(component){ + var candidateSides, constraint, constraint$iterator, constraints; + candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); + constraints = castTo($get(CONSTRAINTS, candidateSides), 21); + for (constraint$iterator = constraints.iterator_0(); constraint$iterator.hasNext_0();) { + constraint = castTo(constraint$iterator.next_1(), 21); + if (!castTo($get(this.components, constraint), 15).isEmpty()) { + return false; + } + } + return true; +} +; +var CONSTRAINTS; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroup', 325); +function $placeComponents(group, spacing){ + var colLeftWidth, colMidWidth, colNsWidth, colRightWidth, componentSize, rowBottomHeight, rowMidHeight, rowTopHeight, rowWeHeight, sizeC, sizeE, sizeENS, sizeN, sizeNE, sizeNESW, sizeNS, sizeNW, sizeNWE, sizeS, sizeSE, sizeSW, sizeSWE, sizeW, sizeWE, sizeWNS; + sizeC = $placeComponentsInRows($getComponents(group, ($clinit_PortSide() , SIDES_NONE)), spacing); + sizeN = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH), spacing); + sizeS = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH), spacing); + sizeW = $placeComponentsVertically($getComponents(group, SIDES_WEST), spacing); + sizeE = $placeComponentsVertically($getComponents(group, SIDES_EAST), spacing); + sizeNW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_WEST), spacing); + sizeNE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST), spacing); + sizeSW = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH_WEST), spacing); + sizeSE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH), spacing); + sizeWE = $placeComponentsVertically($getComponents(group, SIDES_EAST_WEST), spacing); + sizeNS = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_SOUTH), spacing); + sizeNWE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_WEST), spacing); + sizeSWE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH_WEST), spacing); + sizeWNS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_SOUTH_WEST), spacing); + sizeENS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_EAST_SOUTH), spacing); + sizeNESW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), spacing); + colLeftWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.x_0, sizeW.x_0, sizeSW.x_0, sizeWNS.x_0])); + colMidWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeN.x_0, sizeC.x_0, sizeS.x_0, sizeNESW.x_0])); + colNsWidth = sizeNS.x_0; + colRightWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNE.x_0, sizeE.x_0, sizeSE.x_0, sizeENS.x_0])); + rowTopHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.y_0, sizeN.y_0, sizeNE.y_0, sizeNWE.y_0])); + rowMidHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeW.y_0, sizeC.y_0, sizeE.y_0, sizeNESW.y_0])); + rowWeHeight = sizeWE.y_0; + rowBottomHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeSW.y_0, sizeS.y_0, sizeSE.y_0, sizeSWE.y_0])); + $offsetGraphs($getComponents(group, SIDES_NONE), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH), colLeftWidth + colNsWidth, 0); + $offsetGraphs($getComponents(group, SIDES_SOUTH), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_WEST), 0, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_EAST), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST), colLeftWidth + colNsWidth + colMidWidth, 0); + $offsetGraphs($getComponents(group, SIDES_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_EAST_WEST), 0, rowTopHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_SOUTH), colLeftWidth, 0); + $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, 0); + componentSize = new KVector; + componentSize.x_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [colLeftWidth + colMidWidth + colNsWidth + colRightWidth, sizeWE.x_0, sizeNWE.x_0, sizeSWE.x_0])); + componentSize.y_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [rowTopHeight + rowMidHeight + rowWeHeight + rowBottomHeight, sizeNS.y_0, sizeWNS.y_0, sizeENS.y_0])); + return componentSize; +} + +function $placeComponentsHorizontally(components, spacing){ + var component, component$iterator, size_0; + size_0 = new KVector; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $offsetGraph(component, size_0.x_0, 0); + size_0.x_0 += component.size_0.x_0 + spacing; + size_0.y_0 = $wnd.Math.max(size_0.y_0, component.size_0.y_0); + } + size_0.y_0 > 0 && (size_0.y_0 += spacing); + return size_0; +} + +function $placeComponentsInRows(components, spacing){ + var broadestRow, component, component$iterator, componentSize, graph, graph$iterator, highestBox, maxRowWidth, size_0, totalArea, xpos, ypos; + if (components.isEmpty()) { + return new KVector; + } + maxRowWidth = 0; + totalArea = 0; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + componentSize = component.size_0; + maxRowWidth = $wnd.Math.max(maxRowWidth, componentSize.x_0); + totalArea += componentSize.x_0 * componentSize.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(castTo(components.iterator_0().next_1(), 37), ($clinit_LayeredOptions() , ASPECT_RATIO_1))))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $offsetGraph(graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + return new KVector_1(broadestRow + spacing, ypos + highestBox + spacing); +} + +function $placeComponentsVertically(components, spacing){ + var component, component$iterator, size_0; + size_0 = new KVector; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $offsetGraph(component, 0, size_0.y_0); + size_0.y_0 += component.size_0.y_0 + spacing; + size_0.x_0 = $wnd.Math.max(size_0.x_0, component.size_0.x_0); + } + size_0.x_0 > 0 && (size_0.x_0 += spacing); + return size_0; +} + +function ComponentGroupGraphPlacer(){ + this.componentGroups = new ArrayList; +} + +defineClass(765, 2005, {}, ComponentGroupGraphPlacer); +_.addComponent = function addComponent(component){ + var group, group$iterator; + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 325); + if (group.add_4(component)) { + return; + } + } + $add_3(this.componentGroups, new ComponentGroup(component)); +} +; +_.combine = function combine(components, target){ + var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, offset; + this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 37); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + this.addComponent(component); + } + offset = new KVector; + componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); + for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 325); + groupSize = $placeComponents(group, componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + offset.x_0 += groupSize.x_0; + offset.y_0 += groupSize.y_0; + } + target.size_0.x_0 = offset.x_0 - componentSpacing; + target.size_0.y_0 = offset.y_0 - componentSpacing; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { + for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { + h = castTo(h$iterator0.next_1(), 37); + $offsetGraph(h, h.offset.x_0, h.offset.y_0); + } + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 325); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupGraphPlacer', 765); +function $addComponent(this$static, component){ + var group; + if (this$static.componentGroups.array.length > 0) { + group = castTo($get_11(this$static.componentGroups, this$static.componentGroups.array.length - 1), 570); + if ($add_14(group, component)) { + return; + } + } + $add_3(this$static.componentGroups, new ModelOrderComponentGroup(component)); +} + +function ComponentGroupModelOrderGraphPlacer(){ + ComponentGroupGraphPlacer.call(this); +} + +defineClass(1293, 765, {}, ComponentGroupModelOrderGraphPlacer); +_.addComponent = function addComponent_0(component){ + $addComponent(this, component); +} +; +_.combine = function combine_0(components, target){ + var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, maxSize, offset, side, side$iterator, spaceBlockedByComponents, spaceBlockedBySouthEdges; + this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 37); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $addComponent(this, component); + } + spaceBlockedBySouthEdges = new KVector; + spaceBlockedByComponents = new KVector; + offset = new KVector; + maxSize = new KVector; + componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); + for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 325); + if ($isHorizontal(castTo($getProperty(target, ($clinit_CoreOptions() , DIRECTION_0)), 103))) { + offset.x_0 = spaceBlockedBySouthEdges.x_0; + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , NORTH_3))) { + offset.x_0 = spaceBlockedByComponents.x_0; + break; + } + } + } + else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { + offset.y_0 = spaceBlockedBySouthEdges.y_0; + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , WEST_2))) { + offset.y_0 = spaceBlockedByComponents.y_0; + break; + } + } + } + groupSize = $placeComponents(castTo(group, 570), componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + if ($isHorizontal(castTo($getProperty(target, DIRECTION_0), 103))) { + spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; + maxSize.x_0 = $wnd.Math.max(maxSize.x_0, spaceBlockedByComponents.x_0); + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , SOUTH_2))) { + spaceBlockedBySouthEdges.x_0 = offset.x_0 + groupSize.x_0; + break; + } + } + spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; + offset.y_0 = spaceBlockedByComponents.y_0; + maxSize.y_0 = $wnd.Math.max(maxSize.y_0, offset.y_0); + } + else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { + spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; + maxSize.y_0 = $wnd.Math.max(maxSize.y_0, spaceBlockedByComponents.y_0); + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , EAST_2))) { + spaceBlockedBySouthEdges.y_0 = offset.y_0 + groupSize.y_0; + break; + } + } + spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; + offset.x_0 = spaceBlockedByComponents.x_0; + maxSize.x_0 = $wnd.Math.max(maxSize.x_0, offset.x_0); + } + } + target.size_0.x_0 = maxSize.x_0 - componentSpacing; + target.size_0.y_0 = maxSize.y_0 - componentSpacing; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { + for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { + h = castTo(h$iterator0.next_1(), 37); + $offsetGraph(h, h.offset.x_0, h.offset.y_0); + } + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 325); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupModelOrderGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupModelOrderGraphPlacer', 1293); +function $clinit_ComponentOrderingStrategy(){ + $clinit_ComponentOrderingStrategy = emptyMethod; + NONE = new ComponentOrderingStrategy('NONE', 0); + INSIDE_PORT_SIDE_GROUPS = new ComponentOrderingStrategy('INSIDE_PORT_SIDE_GROUPS', 1); + FORCE_MODEL_ORDER = new ComponentOrderingStrategy('FORCE_MODEL_ORDER', 2); +} + +function ComponentOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_29(name_0){ + $clinit_ComponentOrderingStrategy(); + return valueOf(($clinit_ComponentOrderingStrategy$Map() , $MAP_17), name_0); +} + +function values_35(){ + $clinit_ComponentOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]); +} + +defineClass(423, 22, {3:1, 35:1, 22:1, 423:1}, ComponentOrderingStrategy); +var FORCE_MODEL_ORDER, INSIDE_PORT_SIDE_GROUPS, NONE; +var Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.components', 'ComponentOrderingStrategy', 423, Ljava_lang_Enum_2_classLit, values_35, valueOf_29); +function $clinit_ComponentOrderingStrategy$Map(){ + $clinit_ComponentOrderingStrategy$Map = emptyMethod; + $MAP_17 = createValueOfMap(($clinit_ComponentOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]))); +} + +var $MAP_17; +function $addLGraphElementBounds(pts, element, offset){ + var margins; + margins = null; + !!element && (margins = element.margin); + $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); +} + +function $compact_5(this$static, graphs, spacing){ + var c, cc, cc$iterator, cc$iterator0, ccs, e, e$iterator, graph, graph$iterator, graph$iterator0, last, lastArg, n, n$iterator, newPos, node, node$iterator, offset, v, v$iterator, vc, compaction; + this$static.graphTopLeft = new KVector_1($intern_59, $intern_59); + this$static.graphBottomRight = new KVector_1($intern_60, $intern_60); + for (graph$iterator0 = graphs.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 37); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.graphTopLeft.x_0 = $wnd.Math.min(this$static.graphTopLeft.x_0, node.pos.x_0 - node.margin.left); + this$static.graphTopLeft.y_0 = $wnd.Math.min(this$static.graphTopLeft.y_0, node.pos.y_0 - node.margin.top_0); + this$static.graphBottomRight.x_0 = $wnd.Math.max(this$static.graphBottomRight.x_0, node.pos.x_0 + node.size_0.x_0 + node.margin.right); + this$static.graphBottomRight.y_0 = $wnd.Math.max(this$static.graphBottomRight.y_0, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); + } + } + ccs = new ComponentsCompactor$InternalConnectedComponents; + for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + c = $transformLGraph(this$static, graph); + $add_3(ccs.components, c); + c.containsRegularNodes = c.containsRegularNodes | !castTo($getProperty(c.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).isEmpty(); + } + this$static.compactor = ($clinit_OneDimensionalComponentsCompaction() , compaction = new OneDimensionalComponentsCompaction , compaction.transformer = new ComponentsToCGraphTransformer(spacing) , compaction.compactionGraph = $transform_0(compaction.transformer, ccs) , compaction); + $compact_2((lastArg = this$static.compactor , new BasicProgressMonitor , lastArg)); + this$static.yetAnotherOffset = new KVector; + this$static.compactedGraphSize = this$static.compactor.transformer.graphSize; + for (cc$iterator0 = new ArrayList$1(ccs.components); cc$iterator0.i < cc$iterator0.this$01.array.length;) { + cc = castTo($next_7(cc$iterator0), 841); + offset = $getOffset_0(this$static.compactor, cc); + offsetGraph(cc.graph_0, offset.x_0, offset.y_0); + for (n$iterator = new ArrayList$1(cc.graph_0.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + newPos = $getExternalPortPosition(this$static, n.pos, castTo($getProperty(n, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); + $add_19($reset_5(n.pos), newPos); + } + } + } + for (cc$iterator = new ArrayList$1(ccs.components); cc$iterator.i < cc$iterator.this$01.array.length;) { + cc = castTo($next_7(cc$iterator), 841); + for (e$iterator = new ArrayList$1($getExternalEdges(cc)); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + vc = new KVectorChain_0(e.bendPoints); + $add_0(vc, 0, $getAbsoluteAnchor(e.source)); + $add_7(vc, $getAbsoluteAnchor(e.target)); + last = null; + for (v$iterator = $listIterator_2(vc, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(v$iterator), 8); + if (!last) { + last = v; + continue; + } + if (fuzzyEquals(last.x_0, v.x_0)) { + this$static.yetAnotherOffset.x_0 = $wnd.Math.min(this$static.yetAnotherOffset.x_0, last.x_0); + this$static.compactedGraphSize.x_0 = $wnd.Math.max(this$static.compactedGraphSize.x_0, last.x_0); + } + else if (fuzzyEquals(last.y_0, v.y_0)) { + this$static.yetAnotherOffset.y_0 = $wnd.Math.min(this$static.yetAnotherOffset.y_0, last.y_0); + this$static.compactedGraphSize.y_0 = $wnd.Math.max(this$static.compactedGraphSize.y_0, last.y_0); + } + last = v; + } + } + } + $negate(this$static.yetAnotherOffset); + $add_19(this$static.compactedGraphSize, this$static.yetAnotherOffset); +} + +function $componentHullPoints(graph){ + var absolute, bp, bp$iterator, edge, edge$iterator, n, n$iterator, pts; + pts = new ComponentsCompactor$Hullpoints; + for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + $addLGraphElementBounds(pts, n, new KVector); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.source.owner.type_0 == EXTERNAL_PORT || edge.target.owner.type_0 == EXTERNAL_PORT) { + continue; + } + for (bp$iterator = $listIterator_2(edge.bendPoints, 0); bp$iterator.currentNode != bp$iterator.this$01.tail;) { + bp = castTo($next_10(bp$iterator), 8); + absolute = bp; + $add_12(pts, new Point(absolute.x_0, absolute.y_0)); + } + } + } + return pts; +} + +function $createDummyNode(graph){ + var dummy, dummyEdge, dummyPort, extPortDummy, extPortDummyPort; + extPortDummy = castTo($get_11(graph.layerlessNodes, 0), 10); + dummy = new LNode(graph); + $add_3(graph.layerlessNodes, dummy); + dummy.size_0.x_0 = $wnd.Math.max(1, extPortDummy.size_0.x_0); + dummy.size_0.y_0 = $wnd.Math.max(1, extPortDummy.size_0.y_0); + dummy.pos.x_0 = extPortDummy.pos.x_0; + dummy.pos.y_0 = extPortDummy.pos.y_0; + switch (castTo($getProperty(extPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 4: + dummy.pos.x_0 += 2; + break; + case 1: + dummy.pos.y_0 += 2; + break; + case 2: + dummy.pos.x_0 -= 2; + break; + case 3: + dummy.pos.y_0 -= 2; + } + dummyPort = new LPort; + $setNode(dummyPort, dummy); + dummyEdge = new LEdge; + extPortDummyPort = castTo($get_11(extPortDummy.ports, 0), 11); + $setSource_0(dummyEdge, extPortDummyPort); + $setTarget_0(dummyEdge, dummyPort); + $add_19($reset_5(dummyPort.pos), extPortDummyPort.pos); + $add_19($reset_5(dummyPort.anchor), extPortDummyPort.anchor); + return dummy; +} + +function $edgeToSegments(this$static, edge, externalExtension){ + var externalPort, externalPortSide, i, outerSegmentIsFirst, p1, p2, points, segment, segments; + externalPort = externalExtension.externalPort; + externalPortSide = externalExtension.externalPortSide; + p1 = $getAbsoluteAnchor(edge.source); + p2 = $getAbsoluteAnchor(edge.target); + if (externalPort == edge.source) { + p1 = $getExternalPortPosition(this$static, p1, externalPortSide); + p2 = $getPortPositionOnMargin(edge.target); + } + else { + p1 = $getPortPositionOnMargin(edge.source); + p2 = $getExternalPortPosition(this$static, p2, externalPortSide); + } + points = new KVectorChain_0(edge.bendPoints); + $addNode_0(points, p1, points.header, points.header.next_0); + $addNode_0(points, p2, points.tail.prev, points.tail); + outerSegmentIsFirst = edge.source == externalPort; + segments = new ComponentsCompactor$Segments; + for (i = 0; i < points.size_0 - 1; ++i) { + segment = new Pair(castTo($get_7(points, i), 8), castTo($get_7(points, i + 1), 8)); + outerSegmentIsFirst && i == 0 || !outerSegmentIsFirst && i == points.size_0 - 2?(segments.outerSegment = segment):$add_3(segments.innerSegments, segment); + } + return segments; +} + +function $getExternalPortPosition(this$static, pos, ps){ + switch (ps.ordinal) { + case 1: + return new KVector_1(pos.x_0, $wnd.Math.min(this$static.graphTopLeft.y_0, pos.y_0)); + case 2: + return new KVector_1($wnd.Math.max(this$static.graphBottomRight.x_0, pos.x_0), pos.y_0); + case 3: + return new KVector_1(pos.x_0, $wnd.Math.max(this$static.graphBottomRight.y_0, pos.y_0)); + case 4: + return new KVector_1($wnd.Math.min(pos.x_0, this$static.graphTopLeft.x_0), pos.y_0); + } + return new KVector_1(pos.x_0, pos.y_0); +} + +function $getPortPositionOnMargin(port){ + var margins, pos; + pos = $clone_0(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor]))); + margins = port.owner.margin; + switch (port.side.ordinal) { + case 1: + pos.y_0 -= margins.top_0; + break; + case 2: + pos.x_0 += margins.right; + break; + case 3: + pos.y_0 += margins.bottom; + break; + case 4: + pos.x_0 -= margins.left; + } + return pos; +} + +function $portSideToDirection(side){ + switch (side.ordinal) { + case 1: + return $clinit_Direction_0() , UP_1; + case 4: + return $clinit_Direction_0() , LEFT_6; + case 2: + return $clinit_Direction_0() , RIGHT_6; + case 3: + return $clinit_Direction_0() , DOWN_1; + } + return $clinit_Direction_0() , UNDEFINED_2; +} + +function $segmentToRectangle(p1, p2, extent){ + return new ElkRectangle_0($wnd.Math.min(p1.x_0, p2.x_0) - extent / 2, $wnd.Math.min(p1.y_0, p2.y_0) - extent / 2, $wnd.Math.abs(p1.x_0 - p2.x_0) + extent, $wnd.Math.abs(p1.y_0 - p2.y_0) + extent); +} + +function $transformLEdge(this$static, externalEdge, hullPoints, outerSegments){ + var extent, externalExtension, margins, outerSegmentRect, rect, segment, segment$iterator, segments, side, thickness; + externalExtension = new ComponentsCompactor$InternalExternalExtension(externalEdge); + segments = $edgeToSegments(this$static, externalEdge, externalExtension); + thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))), 1); + for (segment$iterator = new ArrayList$1(segments.innerSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 46); + rect = $segmentToRectangle(castTo(segment.first, 8), castTo(segment.second, 8), thickness); + returnVal = true; + returnVal = returnVal & $add_13(hullPoints, new KVector_1(rect.x_0, rect.y_0)); + returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, 0)); + returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), 0, rect.height)); + returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, rect.height)); + } + side = externalExtension.externalPortSide; + outerSegmentRect = $segmentToRectangle(castTo(segments.outerSegment.first, 8), castTo(segments.outerSegment.second, 8), thickness); + if (side == ($clinit_PortSide() , WEST_2) || side == EAST_2) { + outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.y_0); + outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.y_0 + outerSegmentRect.height); + } + else { + outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.x_0); + outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.x_0 + outerSegmentRect.width_0); + } + extent = $intern_60; + margins = externalExtension.externalPort.owner.margin; + switch (side.ordinal) { + case 4: + extent = margins.right; + break; + case 2: + extent = margins.left; + break; + case 1: + extent = margins.bottom; + break; + case 3: + extent = margins.top_0; + } + outerSegments.extent[side.ordinal] = $wnd.Math.max(outerSegments.extent[side.ordinal], extent); + return externalExtension; +} + +function $transformLGraph(this$static, graph){ + var component, edge, edge$iterator, extension, extensions, extent, externalExtensions, hullPoints, iee, iuee, max_0, min_0, node, node$iterator, outerSegments, placeholder, ps, ps$iterator; + component = new ComponentsCompactor$InternalComponent(graph); + component.containsRegularNodes || $createDummyNode(graph); + hullPoints = $componentHullPoints(graph); + externalExtensions = new HashMultimap; + outerSegments = new ComponentsCompactor$OuterSegments; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || edge.target.owner.type_0 == EXTERNAL_PORT) { + iee = $transformLEdge(this$static, edge, hullPoints, outerSegments); + $put(externalExtensions, $portSideToDirection(iee.externalPortSide), iee.edge); + } + } + } + extensions = new ArrayList; + for (ps$iterator = castTo($getProperty(component.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).iterator_0(); ps$iterator.hasNext_0();) { + ps = castTo(ps$iterator.next_1(), 61); + min_0 = outerSegments.min_0[ps.ordinal]; + max_0 = outerSegments.max_0[ps.ordinal]; + extent = outerSegments.extent[ps.ordinal]; + extension = null; + placeholder = null; + switch (ps.ordinal) { + case 4: + extension = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, hullPoints.topLeft.x_0 - this$static.graphTopLeft.x_0, max_0 - min_0); + placeholder = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, extent, max_0 - min_0); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); + break; + case 2: + extension = new ElkRectangle_0(hullPoints.bottomRight.x_0, min_0, this$static.graphBottomRight.x_0 - hullPoints.bottomRight.x_0, max_0 - min_0); + placeholder = new ElkRectangle_0(this$static.graphBottomRight.x_0 - extent, min_0, extent, max_0 - min_0); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); + break; + case 1: + extension = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, hullPoints.topLeft.y_0 - this$static.graphTopLeft.y_0); + placeholder = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, extent); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); + break; + case 3: + extension = new ElkRectangle_0(min_0, hullPoints.bottomRight.y_0, max_0 - min_0, this$static.graphBottomRight.y_0 - hullPoints.bottomRight.y_0); + placeholder = new ElkRectangle_0(min_0, this$static.graphBottomRight.y_0 - extent, max_0 - min_0, extent); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); + } + if (extension) { + iuee = new ComponentsCompactor$InternalUnionExternalExtension; + iuee.side = ps; + iuee.extension = extension; + iuee.placeholder = placeholder; + iuee.edges = newHashSet(castTo($get(externalExtensions, $portSideToDirection(ps)), 21)); + extensions.array[extensions.array.length] = iuee; + } + } + $addAll_2(component.externalExtensions, extensions); + component.rectilinearConvexHull = $splitIntoRectangles(of_5(hullPoints)); + return component; +} + +function ComponentsCompactor(){ +} + +defineClass(650, 1, {}, ComponentsCompactor); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor', 650); +function $add_12(this$static, e){ + this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, e.x_0); + this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, e.y_0); + this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, e.x_0); + this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, e.y_0); + return this$static.array[this$static.array.length] = e , true; +} + +function $add_13(this$static, e){ + return $add_12(this$static, new Point(e.x_0, e.y_0)); +} + +function ComponentsCompactor$Hullpoints(){ + $$init_2(this); + this.topLeft = new KVector_1($intern_59, $intern_59); + this.bottomRight = new KVector_1($intern_60, $intern_60); +} + +defineClass(1468, 12, $intern_71, ComponentsCompactor$Hullpoints); +_.add_2 = function add_44(e){ + return $add_12(this, castTo(e, 140)); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Hullpoints_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Hullpoints', 1468); +function $getExternalEdges(this$static){ + var edges, ee, ee$iterator; + edges = new ArrayList; + for (ee$iterator = new ArrayList$1(this$static.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { + ee = castTo($next_7(ee$iterator), 594); + $addAll_2(edges, castTo(ee.getRepresentative(), 14)); + } + return edges; +} + +function ComponentsCompactor$InternalComponent(graph){ + var n, n$iterator; + this.externalExtensions = new ArrayList; + this.graph_0 = graph; + this.containsRegularNodes = false; + for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + this.containsRegularNodes = this.containsRegularNodes | n.type_0 == ($clinit_LNode$NodeType() , NORMAL); + } +} + +defineClass(1465, 1, {841:1}, ComponentsCompactor$InternalComponent); +_.containsRegularNodes = false; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalComponent_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalComponent', 1465); +function ComponentsCompactor$InternalConnectedComponents(){ + this.components = new ArrayList; +} + +defineClass(1464, 1, $intern_23, ComponentsCompactor$InternalConnectedComponents); +_.forEach_0 = function forEach_25(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_67(){ + return new ArrayList$1(this.components); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalConnectedComponents_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalConnectedComponents', 1464); +function ComponentsCompactor$InternalExternalExtension(edge){ + this.edge = edge; + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + this.externalPort = edge.source; + this.externalPortSide = castTo($getProperty(edge.source.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + } + else if (edge.target.owner.type_0 == EXTERNAL_PORT) { + this.externalPort = edge.target; + this.externalPortSide = castTo($getProperty(edge.target.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + } + else { + throw toJs(new IllegalArgumentException_0('Edge ' + edge + ' is not an external edge.')); + } +} + +defineClass(1467, 1, {594:1}, ComponentsCompactor$InternalExternalExtension); +_.getPlaceholder = function getPlaceholder(){ + return null; +} +; +_.getRepresentative = function getRepresentative(){ + return this.edge; +} +; +_.getDirection = function getDirection(){ + return $portSideToDirection(this.externalPortSide); +} +; +_.getRepresentor = function getRepresentor(){ + return this.externalExtension; +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalExternalExtension', 1467); +function ComponentsCompactor$InternalUnionExternalExtension(){ + this.edges = new HashSet; +} + +defineClass(1466, 1, {594:1}, ComponentsCompactor$InternalUnionExternalExtension); +_.getRepresentative = function getRepresentative_0(){ + return this.edges; +} +; +_.getDirection = function getDirection_0(){ + return $portSideToDirection(this.side); +} +; +_.getPlaceholder = function getPlaceholder_0(){ + return this.placeholder; +} +; +_.getRepresentor = function getRepresentor_0(){ + return this.extension; +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalUnionExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalUnionExternalExtension', 1466); +function ComponentsCompactor$OuterSegments(){ + this.min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + this.extent = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + fill_1(this.min_0, $intern_59); + fill_1(this.max_0, $intern_60); + fill_1(this.extent, $intern_60); +} + +defineClass(1470, 1, {}, ComponentsCompactor$OuterSegments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$OuterSegments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/OuterSegments', 1470); +function ComponentsCompactor$Segments(){ + this.innerSegments = new ArrayList; +} + +defineClass(1469, 1, {}, ComponentsCompactor$Segments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Segments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Segments', 1469); +function $combine(this$static, components, target){ + this$static.graphPlacer.combine(components, target); +} + +function $dfs_1(this$static, node, data_0){ + var all, component, extPortSides, mutableData, port1, port1$iterator, port2, port2$iterator; + if (node.id_0 == 0) { + node.id_0 = 1; + mutableData = data_0; + if (!mutableData) { + component = new ArrayList; + extPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + mutableData = new Pair(component, extPortSides); + } + castTo(mutableData.first, 15).add_2(node); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && castTo(mutableData.second, 21).add_2(castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); + for (port1$iterator = new ArrayList$1(node.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_7(port1$iterator), 11); + for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { + port2 = castTo($next_0(port2$iterator), 11); + $dfs_1(this$static, port2.owner, mutableData); + } + } + return mutableData; + } + return null; +} + +function $split_2(this$static, graph){ + var compatiblePortConstraints, componentData, extPortConstraints, extPorts, n, n$iterator, newGraph, node, node$iterator, node$iterator0, result, separate, separateProperty; + this$static.graphPlacer = this$static.simpleRowGraphPlacer; + separateProperty = castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , SEPARATE_CONNECTED_COMPONENTS_0))); + separate = separateProperty == null || (checkCriticalNotNull(separateProperty) , separateProperty); + extPorts = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + extPortConstraints = castTo($getProperty(graph, PORT_CONSTRAINTS_0), 98); + compatiblePortConstraints = !(extPortConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || extPortConstraints == FIXED_RATIO || extPortConstraints == FIXED_POS); + if (separate && (compatiblePortConstraints || !extPorts)) { + for (node$iterator0 = new ArrayList$1(graph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = 0; + } + result = new ArrayList; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + componentData = $dfs_1(this$static, node, null); + if (componentData) { + newGraph = new LGraph; + $copyProperties(newGraph, graph); + $setProperty_0(newGraph, EXT_PORT_CONNECTIONS, castTo(componentData.second, 21)); + $copy(newGraph.padding, graph.padding); + $setProperty_0(newGraph, NODE_SIZE_MINIMUM_0, null); + for (n$iterator = castTo(componentData.first, 15).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 10); + $add_3(newGraph.layerlessNodes, n); + n.graph_0 = newGraph; + } + result.add_2(newGraph); + } + } + extPorts && (maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) === maskUndefined(($clinit_ComponentOrderingStrategy() , FORCE_MODEL_ORDER))?(this$static.graphPlacer = this$static.componentGroupModelOrderGraphPlacer):(this$static.graphPlacer = this$static.componentGroupGraphPlacer)); + } + else { + result = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [graph])); + } + maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) && ($clinit_Collections() , result.sort_0(new ComponentsProcessor$lambda$0$Type)); + return result; +} + +function ComponentsProcessor_0(){ + this.componentGroupGraphPlacer = new ComponentGroupGraphPlacer; + this.componentGroupModelOrderGraphPlacer = new ComponentGroupModelOrderGraphPlacer; + this.simpleRowGraphPlacer = new SimpleRowGraphPlacer; +} + +function lambda$0_22(g1_0, g2_1){ + var g1Order, g2Order; + g1Order = getMinimalModelOrder(g1_0); + g2Order = getMinimalModelOrder(g2_1); + return g1Order < g2Order?-1:g1Order > g2Order?1:0; +} + +defineClass(1264, 1, {}, ComponentsProcessor_0); +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor', 1264); +function ComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1265, 1, $intern_88, ComponentsProcessor$lambda$0$Type); +_.compare_1 = function compare_38(arg0, arg1){ + return lambda$0_22(castTo(arg0, 37), castTo(arg1, 37)); +} +; +_.equals_0 = function equals_94(other){ + return this === other; +} +; +_.reversed = function reversed_30(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor/lambda$0$Type', 1265); +function $clinit_ModelOrderComponentGroup(){ + $clinit_ModelOrderComponentGroup = emptyMethod; + $clinit_ComponentGroup(); + MODEL_ORDER_CONSTRAINTS = new HashMultimap; + $put(MODEL_ORDER_CONSTRAINTS, ($clinit_PortSide() , SIDES_NORTH), SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); +} + +function $add_14(this$static, component){ + if ($canAdd(this$static, component)) { + $put(this$static.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); + $add_7(this$static.componentOrder, component); + return true; + } + else { + return false; + } +} + +function $canAdd(this$static, component){ + var candidateSides, constraint, constraint$iterator, constraint$iterator0, constraints, modelOrderConstraints; + candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); + constraints = castTo($get(($clinit_ComponentGroup() , CONSTRAINTS), candidateSides), 21); + modelOrderConstraints = castTo($get(MODEL_ORDER_CONSTRAINTS, candidateSides), 21); + for (constraint$iterator0 = constraints.iterator_0(); constraint$iterator0.hasNext_0();) { + constraint = castTo(constraint$iterator0.next_1(), 21); + if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { + return false; + } + } + for (constraint$iterator = modelOrderConstraints.iterator_0(); constraint$iterator.hasNext_0();) { + constraint = castTo(constraint$iterator.next_1(), 21); + if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { + return false; + } + } + return true; +} + +function ModelOrderComponentGroup(component){ + $clinit_ModelOrderComponentGroup(); + $$init_6(this); + this.componentOrder = new LinkedList; + $add_14(this, component); + $add_7(this.componentOrder, component); +} + +defineClass(570, 325, {325:1, 570:1}, ModelOrderComponentGroup); +_.add_4 = function add_45(component){ + return $add_14(this, component); +} +; +_.canAdd = function canAdd_0(component){ + return $canAdd(this, component); +} +; +var MODEL_ORDER_CONSTRAINTS; +var Lorg_eclipse_elk_alg_layered_components_ModelOrderComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ModelOrderComponentGroup', 570); +function SimpleRowGraphPlacer(){ +} + +defineClass(1291, 2005, {}, SimpleRowGraphPlacer); +_.combine = function combine_1(components, target){ + var broadestRow, compactor, componentSpacing, firstComponent, graph, graph$iterator, graph$iterator0, graph$iterator1, h, h$iterator, highestBox, maxRowWidth, node, node$iterator, offset, priority, size_0, source, totalArea, xpos, ypos; + if (components.size_1() == 1) { + source = castTo(components.get_0(0), 37); + if (source != target) { + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $moveGraph_0(target, source, 0, 0); + $copyProperties(target, source); + $copy(target.padding, source.padding); + target.size_0.x_0 = source.size_0.x_0; + target.size_0.y_0 = source.size_0.y_0; + } + return; + } + else if (components.isEmpty()) { + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + if (maskUndefined($getProperty(target, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_COMPONENTS_0))) === maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { + for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 37); + priority = 0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + priority += castTo($getProperty(node, PRIORITY_0), 19).value_0; + } + graph.id_0 = priority; + } + $clinit_Collections(); + components.sort_0(new SimpleRowGraphPlacer$1); + } + firstComponent = castTo(components.get_0(0), 37); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $copyProperties(target, firstComponent); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 37); + size_0 = graph.size_0; + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(target, ASPECT_RATIO_1)))); + componentSpacing = $doubleValue(castToDouble($getProperty(target, SPACING_COMPONENT_COMPONENT_0))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = componentSpacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + componentSpacing; + highestBox = 0; + } + offset = graph.offset; + $offsetGraph(graph, xpos + offset.x_0, ypos + offset.y_0); + $reset_5(offset); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + componentSpacing; + } + target.size_0.x_0 = broadestRow; + target.size_0.y_0 = ypos + highestBox; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0)))) { + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + $moveGraphs(target, components); +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer', 1291); +function $compare_8(graph1, graph2){ + var prio, size1, size2; + prio = graph2.id_0 - graph1.id_0; + if (prio == 0) { + size1 = graph1.size_0.x_0 * graph1.size_0.y_0; + size2 = graph2.size_0.x_0 * graph2.size_0.y_0; + return compare_4(size1, size2); + } + return prio; +} + +function SimpleRowGraphPlacer$1(){ +} + +defineClass(1292, 1, $intern_88, SimpleRowGraphPlacer$1); +_.compare_1 = function compare_39(graph1, graph2){ + return $compare_8(castTo(graph1, 37), castTo(graph2, 37)); +} +; +_.equals_0 = function equals_95(other){ + return this === other; +} +; +_.reversed = function reversed_31(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer/1', 1292); +function $clinit_CompoundGraphPostprocessor(){ + $clinit_CompoundGraphPostprocessor = emptyMethod; + HAS_JUNCTION_POINTS_PREDICATE = new CompoundGraphPostprocessor$1; +} + +function $process_0(graph, monitor){ + var addUnnecessaryBendpoints, bendPoints, chEdge, chEdge$iterator, crossHierarchyEdges, crossHierarchyMap, dummyEdge, dummyEdge$iterator, dummyEdges, junctionPoints, lastPoint, ledge, nextPoint, offset, origEdge, origEdge$iterator, referenceGraph, referenceNode, sourcePoint, sourcePort, targetPoint, targetPort, xDiffEnough, yDiffEnough; + $begin(monitor, 'Compound graph postprocessor', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + crossHierarchyMap = castTo($getProperty(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP)), 224); + dummyEdges = new HashSet; + for (origEdge$iterator = crossHierarchyMap.keySet_0().iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 17); + crossHierarchyEdges = new ArrayList_1(crossHierarchyMap.get_1(origEdge)); + $clinit_Collections(); + $sort(crossHierarchyEdges, new CrossHierarchyEdgeComparator(graph)); + sourcePort = $getActualSource((checkCriticalElementIndex(0, crossHierarchyEdges.array.length) , castTo(crossHierarchyEdges.array[0], 243))); + targetPort = $getActualTarget(castTo($get_11(crossHierarchyEdges, crossHierarchyEdges.array.length - 1), 243)); + referenceNode = sourcePort.owner; + isDescendant(targetPort.owner, referenceNode)?(referenceGraph = referenceNode.nestedGraph):(referenceGraph = $getGraph(referenceNode)); + junctionPoints = clearJunctionPoints(origEdge, crossHierarchyEdges); + $reset_0(origEdge.bendPoints); + lastPoint = null; + for (chEdge$iterator = new ArrayList$1(crossHierarchyEdges); chEdge$iterator.i < chEdge$iterator.this$01.array.length;) { + chEdge = castTo($next_7(chEdge$iterator), 243); + offset = new KVector; + changeCoordSystem(offset, chEdge.graph_0, referenceGraph); + ledge = chEdge.newEdge; + bendPoints = new KVectorChain; + $addAllAsCopies(bendPoints, 0, ledge.bendPoints); + $offset_2(bendPoints, offset); + sourcePoint = new KVector_2($getAbsoluteAnchor(ledge.source)); + targetPoint = new KVector_2($getAbsoluteAnchor(ledge.target)); + $add_19(sourcePoint, offset); + $add_19(targetPoint, offset); + if (lastPoint) { + bendPoints.size_0 == 0?(nextPoint = targetPoint):(nextPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8))); + xDiffEnough = $wnd.Math.abs(lastPoint.x_0 - nextPoint.x_0) > $intern_101; + yDiffEnough = $wnd.Math.abs(lastPoint.y_0 - nextPoint.y_0) > $intern_101; + (!addUnnecessaryBendpoints && xDiffEnough && yDiffEnough || addUnnecessaryBendpoints && (xDiffEnough || yDiffEnough)) && $add_7(origEdge.bendPoints, sourcePoint); + } + $addAll(origEdge.bendPoints, bendPoints); + bendPoints.size_0 == 0?(lastPoint = sourcePoint):(lastPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8))); + copyJunctionPoints(ledge, junctionPoints, offset); + if ($getActualTarget(chEdge) == targetPort) { + if ($getGraph(targetPort.owner) != chEdge.graph_0) { + offset = new KVector; + changeCoordSystem(offset, $getGraph(targetPort.owner), referenceGraph); + } + $setProperty_0(origEdge, TARGET_OFFSET, offset); + } + copyLabelsBack(ledge, origEdge, referenceGraph); + dummyEdges.map_0.put(ledge, dummyEdges); + } + $setSource_0(origEdge, sourcePort); + $setTarget_0(origEdge, targetPort); + } + for (dummyEdge$iterator = dummyEdges.map_0.keySet_0().iterator_0(); dummyEdge$iterator.hasNext_0();) { + dummyEdge = castTo(dummyEdge$iterator.next_1(), 17); + $setSource_0(dummyEdge, null); + $setTarget_0(dummyEdge, null); + } + $done_0(monitor); +} + +function clearJunctionPoints(origEdge, crossHierarchyEdges){ + var junctionPoints; + junctionPoints = castTo($getProperty(origEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (any_0(crossHierarchyEdges, HAS_JUNCTION_POINTS_PREDICATE)) { + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(origEdge, JUNCTION_POINTS, junctionPoints); + } + else { + $reset_0(junctionPoints); + } + } + else + !!junctionPoints && $setProperty_0(origEdge, JUNCTION_POINTS, null); + return junctionPoints; +} + +function copyJunctionPoints(source, target, offset){ + var jpCopies, ledgeJPs; + ledgeJPs = castTo($getProperty(source, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (ledgeJPs) { + jpCopies = new KVectorChain; + $addAllAsCopies(jpCopies, 0, ledgeJPs); + $offset_2(jpCopies, offset); + $addAll(target, jpCopies); + } +} + +function copyLabelsBack(hierarchySegment, origEdge, referenceGraph){ + var currLabel, labelIterator; + labelIterator = new AbstractList$ListIteratorImpl(hierarchySegment.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + if (maskUndefined($getProperty(currLabel, ($clinit_InternalProperties_1() , ORIGINAL_LABEL_EDGE))) !== maskUndefined(origEdge)) { + continue; + } + changeCoordSystem(currLabel.pos, $getGraph(hierarchySegment.source.owner), referenceGraph); + $remove_8(labelIterator); + $add_3(origEdge.labels, currLabel); + } +} + +var HAS_JUNCTION_POINTS_PREDICATE; +function CompoundGraphPostprocessor$1(){ +} + +defineClass(1262, 1, $intern_89, CompoundGraphPostprocessor$1); +_.apply_1 = function apply_63(chEdge){ + var jps; + return jps = castTo($getProperty(castTo(chEdge, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; +} +; +_.equals_0 = function equals_96(other){ + return this === other; +} +; +_.test_0 = function test_16(input_0){ + var jps; + return jps = castTo($getProperty(castTo(input_0, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPostprocessor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPostprocessor/1', 1262); +function $calculateNetFlow(port){ + var incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, node, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; + node = port.owner; + insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + outputPortVote = 0; + inputPortVote = 0; + for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { + outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); + isSelfLoop = $isSelfLoop(outgoingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(outgoingEdge, INSIDE_SELF_LOOPS_YO))); + targetNode = outgoingEdge.target.owner; + isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getGraph(targetNode).parentNode == node?++inputPortVote:++outputPortVote; + } + for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { + incomingEdge = castTo($next_7(incomingEdge$iterator), 17); + isSelfLoop = $isSelfLoop(incomingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(incomingEdge, INSIDE_SELF_LOOPS_YO))); + sourceNode = incomingEdge.source.owner; + isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getGraph(sourceNode).parentNode == node?++outputPortVote:++inputPortVote; + } + return outputPortVote - inputPortVote; +} + +function $connectChild(this$static, graph, externalPort, origEdge, sourcePort, targetPort){ + var dummyEdge; + dummyEdge = $createDummyEdge(origEdge); + $setSource_0(dummyEdge, sourcePort); + $setTarget_0(dummyEdge, targetPort); + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalPort.type_0)); +} + +function $connectSiblings(this$static, graph, externalOutputPort, containedExternalPorts, origEdge){ + var dummyEdge, externalPort2, externalPort2$iterator, targetExternalPort; + targetExternalPort = null; + for (externalPort2$iterator = new ArrayList$1(containedExternalPorts); externalPort2$iterator.i < externalPort2$iterator.this$01.array.length;) { + externalPort2 = castTo($next_7(externalPort2$iterator), 441); + if (externalPort2 != externalOutputPort && $indexOf_3(externalPort2.origEdges, origEdge, 0) != -1) { + targetExternalPort = externalPort2; + break; + } + } + dummyEdge = $createDummyEdge(origEdge); + $setSource_0(dummyEdge, externalOutputPort.dummyPort); + $setTarget_0(dummyEdge, targetExternalPort.dummyPort); + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalOutputPort.type_0)); +} + +function $createDummyEdge(origEdge){ + var dummyEdge; + dummyEdge = new LEdge; + $copyProperties(dummyEdge, origEdge); + $setProperty_0(dummyEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); + return dummyEdge; +} + +function $createExternalPortDummy(this$static, graph, parentNode, portType, portSide, edge){ + var dummyNode, dummyPort, layoutDirection, outsidePort, propertyHolder, offset; + dummyNode = null; + outsidePort = portType == ($clinit_PortType() , INPUT)?edge.source:edge.target; + layoutDirection = getDirection_1(graph); + if (outsidePort.owner == parentNode) { + dummyNode = castTo($get_10(this$static.dummyNodeMap, outsidePort), 10); + if (!dummyNode) { + dummyNode = createExternalPortDummy(outsidePort, castTo($getProperty(parentNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98), portSide, $calculateNetFlow(outsidePort), null, outsidePort.pos, outsidePort.size_0, layoutDirection, graph); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), outsidePort); + $put_6(this$static.dummyNodeMap, outsidePort, dummyNode); + } + } + else { + dummyNode = createExternalPortDummy((propertyHolder = new MapPropertyHolder , offset = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))) / 2 , $setProperty(propertyHolder, PORT_BORDER_OFFSET, offset) , propertyHolder), castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98), portSide, portType == INPUT?-1:1, null, new KVector, new KVector_1(0, 0), layoutDirection, graph); + dummyPort = $createPortForDummy(dummyNode, parentNode, portType); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), dummyPort); + $put_6(this$static.dummyNodeMap, dummyPort, dummyNode); + } + castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + $isSideFixed(castTo($getProperty(graph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))?$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)):$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FREE)); + return dummyNode; +} + +function $createPortForDummy(dummyNode, parentNode, type_0){ + var graph, layoutDirection, port; + graph = $getGraph(parentNode); + layoutDirection = getDirection_1(graph); + port = new LPort; + $setNode(port, parentNode); + switch (type_0.ordinal) { + case 1: + $setSide(port, $opposed(fromDirection(layoutDirection))); + break; + case 2: + $setSide(port, fromDirection(layoutDirection)); + } + $setProperty_0(port, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET), castToDouble($getProperty(dummyNode, PORT_BORDER_OFFSET))); + return port; +} + +function $getShallowestEdgeSegment(edgeSegments){ + var crossHierarchyEdge, crossHierarchyEdge$iterator, index_0, result; + result = -1; + index_0 = 0; + for (crossHierarchyEdge$iterator = new ArrayList$1(edgeSegments); crossHierarchyEdge$iterator.i < crossHierarchyEdge$iterator.this$01.array.length;) { + crossHierarchyEdge = castTo($next_7(crossHierarchyEdge$iterator), 243); + if (crossHierarchyEdge.type_0 == ($clinit_PortType() , INPUT)) { + result = index_0 == 0?0:index_0 - 1; + break; + } + else + index_0 == edgeSegments.array.length - 1 && (result = index_0); + index_0 += 1; + } + return result; +} + +function $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, origEdge, oppositePort, portType, defaultExternalPort){ + var dummyEdge, dummyNode, externalPort, externalPortSide, mergeExternalPorts, parentEndPort, thickness; + mergeExternalPorts = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , MERGE_HIERARCHY_EDGES_0)))); + parentEndPort = null; + portType == ($clinit_PortType() , INPUT) && origEdge.source.owner == parentNode?(parentEndPort = origEdge.source):portType == OUTPUT && origEdge.target.owner == parentNode && (parentEndPort = origEdge.target); + externalPort = defaultExternalPort; + if (!externalPort || !mergeExternalPorts || !!parentEndPort) { + externalPortSide = ($clinit_PortSide() , UNDEFINED_5); + parentEndPort?(externalPortSide = parentEndPort.side):$isSideFixed(castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98)) && (externalPortSide = portType == INPUT?WEST_2:EAST_2); + dummyNode = $createExternalPortDummy(this$static, graph, parentNode, portType, externalPortSide, origEdge); + dummyEdge = $createDummyEdge(($getGraph(parentNode) , origEdge)); + if (portType == INPUT) { + $setSource_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); + $setTarget_0(dummyEdge, oppositePort); + } + else { + $setSource_0(dummyEdge, oppositePort); + $setTarget_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); + } + externalPort = new CompoundGraphPreprocessor$ExternalPort(origEdge, dummyEdge, dummyNode, castTo($getProperty(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11), portType, !parentEndPort); + } + else { + $add_3(externalPort.origEdges, origEdge); + thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalPort.newEdge, EDGE_THICKNESS_0))), $doubleValue(castToDouble($getProperty(origEdge, EDGE_THICKNESS_0)))); + $setProperty_0(externalPort.newEdge, EDGE_THICKNESS_0, thickness); + } + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(externalPort.newEdge, graph, portType)); + return externalPort; +} + +function $moveLabelsAndRemoveOriginalEdges(this$static, graph){ + var currLabel, edgeSegments, labelIterator, origEdge, origEdge$iterator, targetDummyEdgeIndex, targetSegment; + for (origEdge$iterator = $keySet(this$static.crossHierarchyMap).iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 17); + if (origEdge.labels.array.length > 0) { + edgeSegments = new ArrayList_1(castTo($get(this$static.crossHierarchyMap, origEdge), 21)); + $clinit_Collections(); + $sort(edgeSegments, new CrossHierarchyEdgeComparator(graph)); + labelIterator = new AbstractList$ListIteratorImpl(origEdge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + targetDummyEdgeIndex = -1; + switch (castTo($getProperty(currLabel, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272).ordinal) { + case 1: + targetDummyEdgeIndex = edgeSegments.array.length - 1; + break; + case 0: + targetDummyEdgeIndex = $getShallowestEdgeSegment(edgeSegments); + break; + case 2: + targetDummyEdgeIndex = 0; + } + if (targetDummyEdgeIndex != -1) { + targetSegment = (checkCriticalElementIndex(targetDummyEdgeIndex, edgeSegments.array.length) , castTo(edgeSegments.array[targetDummyEdgeIndex], 243)); + $add_3(targetSegment.newEdge.labels, currLabel); + castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , END_LABELS)); + castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), GRAPH_PROPERTIES), 21).add_2(CENTER_LABELS); + $remove_8(labelIterator); + $setProperty_0(currLabel, ORIGINAL_LABEL_EDGE, origEdge); + } + } + } + $setSource_0(origEdge, null); + $setTarget_0(origEdge, null); + } +} + +function $process_1(this$static, graph, monitor){ + $begin(monitor, 'Compound graph preprocessor', 1); + this$static.crossHierarchyMap = new HashMultimap; + $transformHierarchyEdges(this$static, graph, null); + $moveLabelsAndRemoveOriginalEdges(this$static, graph); + $setSidesOfPortsToSidesOfDummyNodes(this$static); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP), this$static.crossHierarchyMap); + this$static.crossHierarchyMap = null; + $reset(this$static.dummyNodeMap); + $done_0(monitor); +} + +function $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts){ + var createdExternalPorts, currentExternalPort, externalPort, externalPort$iterator, externalPort$iterator0, inEdge, inEdge$iterator, newExternalPort, outEdge, outEdge$iterator, sourceNode, targetNode; + createdExternalPorts = new ArrayList; + for (externalPort$iterator0 = new ArrayList$1(containedExternalPorts); externalPort$iterator0.i < externalPort$iterator0.this$01.array.length;) { + externalPort = castTo($next_7(externalPort$iterator0), 441); + currentExternalPort = null; + if (externalPort.type_0 == ($clinit_PortType() , OUTPUT)) { + for (outEdge$iterator = new ArrayList$1(externalPort.origEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { + outEdge = castTo($next_7(outEdge$iterator), 17); + targetNode = outEdge.target.owner; + if ($getGraph(targetNode) == graph) { + $connectChild(this$static, graph, externalPort, outEdge, externalPort.dummyPort, outEdge.target); + } + else if (!parentNode || isDescendant(targetNode, parentNode)) { + $connectSiblings(this$static, graph, externalPort, containedExternalPorts, outEdge); + } + else { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, externalPort.dummyPort, OUTPUT, currentExternalPort); + newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalPort = newExternalPort); + } + } + } + else { + for (inEdge$iterator = new ArrayList$1(externalPort.origEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { + inEdge = castTo($next_7(inEdge$iterator), 17); + sourceNode = inEdge.source.owner; + if ($getGraph(sourceNode) == graph) { + $connectChild(this$static, graph, externalPort, inEdge, inEdge.source, externalPort.dummyPort); + } + else if (!parentNode || isDescendant(sourceNode, parentNode)) { + continue; + } + else { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, externalPort.dummyPort, INPUT, currentExternalPort); + newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalPort = newExternalPort); + } + } + } + } + for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { + externalPort = castTo($next_7(externalPort$iterator), 441); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); + } +} + +function $processInsideSelfLoops(this$static, nestedGraph, node){ + var dummyEdge, isInsideSelfLoop, isSelfLoop, lport, lport$iterator, outEdge, outEdge$array, outEdge$index, outEdge$max, outEdges, sourceExtPortDummy, sourcePort, targetExtPortDummy, targetPort; + if (!$booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { + return; + } + for (lport$iterator = new ArrayList$1(node.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { + lport = castTo($next_7(lport$iterator), 11); + outEdges = toEdgeArray(lport.outgoingEdges); + for (outEdge$array = outEdges , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + isSelfLoop = outEdge.target.owner == node; + isInsideSelfLoop = isSelfLoop && $booleanValue(castToBoolean($getProperty(outEdge, INSIDE_SELF_LOOPS_YO))); + if (isInsideSelfLoop) { + sourcePort = outEdge.source; + sourceExtPortDummy = castTo($get_10(this$static.dummyNodeMap, sourcePort), 10); + if (!sourceExtPortDummy) { + sourceExtPortDummy = createExternalPortDummy(sourcePort, ($clinit_PortConstraints() , FREE), sourcePort.side, -1, null, null, sourcePort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); + $setProperty_0(sourceExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), sourcePort); + $put_6(this$static.dummyNodeMap, sourcePort, sourceExtPortDummy); + $add_3(nestedGraph.layerlessNodes, sourceExtPortDummy); + } + targetPort = outEdge.target; + targetExtPortDummy = castTo($get_10(this$static.dummyNodeMap, targetPort), 10); + if (!targetExtPortDummy) { + targetExtPortDummy = createExternalPortDummy(targetPort, ($clinit_PortConstraints() , FREE), targetPort.side, 1, null, null, targetPort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); + $setProperty_0(targetExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), targetPort); + $put_6(this$static.dummyNodeMap, targetPort, targetExtPortDummy); + $add_3(nestedGraph.layerlessNodes, targetExtPortDummy); + } + dummyEdge = $createDummyEdge(outEdge); + $setSource_0(dummyEdge, castTo($get_11(sourceExtPortDummy.ports, 0), 11)); + $setTarget_0(dummyEdge, castTo($get_11(targetExtPortDummy.ports, 0), 11)); + $put(this$static.crossHierarchyMap, outEdge, new CrossHierarchyEdge(dummyEdge, nestedGraph, ($clinit_PortType() , OUTPUT))); + castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + } + } + } +} + +function $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts){ + var childNode, childNode$iterator, childPort, childPort$iterator, createdExternalPorts, currentExternalInputPort, currentExternalOutputPort, externalPort, externalPort$iterator, inEdge, inEdge$array, inEdge$index, inEdge$max, newExternalPort, outEdge, outEdge$array, outEdge$index, outEdge$max; + createdExternalPorts = new ArrayList; + for (childNode$iterator = new ArrayList$1(graph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { + childNode = castTo($next_7(childNode$iterator), 10); + for (childPort$iterator = new ArrayList$1(childNode.ports); childPort$iterator.i < childPort$iterator.this$01.array.length;) { + childPort = castTo($next_7(childPort$iterator), 11); + currentExternalOutputPort = null; + for (outEdge$array = toEdgeArray(childPort.outgoingEdges) , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + if (!isDescendant(outEdge.target.owner, parentNode)) { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, outEdge.source, ($clinit_PortType() , OUTPUT), currentExternalOutputPort); + newExternalPort != currentExternalOutputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalOutputPort = newExternalPort); + } + } + currentExternalInputPort = null; + for (inEdge$array = toEdgeArray(childPort.incomingEdges) , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + if (!isDescendant(inEdge.source.owner, parentNode)) { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, inEdge.target, ($clinit_PortType() , INPUT), currentExternalInputPort); + newExternalPort != currentExternalInputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalInputPort = newExternalPort); + } + } + } + } + for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { + externalPort = castTo($next_7(externalPort$iterator), 441); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); + } +} + +function $setSidesOfPortsToSidesOfDummyNodes(this$static){ + var dummyNode, e, e$iterator, externalPort; + for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.dummyNodeMap)).this$01); e$iterator.hasNext;) { + e = $next_4(e$iterator); + externalPort = castTo(e.getKey(), 11); + dummyNode = castTo(e.getValue(), 10); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), externalPort); + $setProperty_0(externalPort, PORT_DUMMY, dummyNode); + $setProperty_0(externalPort, INSIDE_CONNECTIONS, ($clinit_Boolean() , true)); + $setSide(externalPort, castTo($getProperty(dummyNode, EXT_PORT_SIDE), 61)); + $getProperty(dummyNode, EXT_PORT_SIDE); + $setProperty_0(externalPort.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); + castTo($getProperty($getGraph(externalPort.owner), GRAPH_PROPERTIES), 21).add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + } +} + +function $transformHierarchyEdges(this$static, graph, parentNode){ + var childPorts, containedExternalPorts, dummyNode, dummyNodePort, dummyPortLabel, exportedExternalPorts, extPortLabel, extPortLabel$iterator, insidePart, insidePortLabels, nestedGraph, node, node$iterator, port, port$iterator, portConstraints, side; + containedExternalPorts = new ArrayList; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nestedGraph = node.nestedGraph; + if (nestedGraph) { + childPorts = $transformHierarchyEdges(this$static, nestedGraph, node); + $addAll_2(containedExternalPorts, childPorts); + $processInsideSelfLoops(this$static, nestedGraph, node); + if (castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + portConstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + insidePortLabels = castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 174).contains(($clinit_PortLabelPlacement() , INSIDE_0)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + dummyNode = castTo($get_10(this$static.dummyNodeMap, port), 10); + if (!dummyNode) { + dummyNode = createExternalPortDummy(port, portConstraints, port.side, -(port.incomingEdges.array.length - port.outgoingEdges.array.length), null, new KVector, port.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); + $setProperty_0(dummyNode, ORIGIN_0, port); + $put_6(this$static.dummyNodeMap, port, dummyNode); + $add_3(nestedGraph.layerlessNodes, dummyNode); + } + dummyNodePort = castTo($get_11(dummyNode.ports, 0), 11); + for (extPortLabel$iterator = new ArrayList$1(port.labels); extPortLabel$iterator.i < extPortLabel$iterator.this$01.array.length;) { + extPortLabel = castTo($next_7(extPortLabel$iterator), 70); + dummyPortLabel = new LLabel; + dummyPortLabel.size_0.x_0 = extPortLabel.size_0.x_0; + dummyPortLabel.size_0.y_0 = extPortLabel.size_0.y_0; + $add_3(dummyNodePort.labels, dummyPortLabel); + if (!insidePortLabels) { + side = port.side; + insidePart = 0; + isFixed(castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(extPortLabel.pos, extPortLabel.size_0, port.size_0, 0, side)); + portConstraints == ($clinit_PortConstraints() , FREE) || ($clinit_PortSide() , SIDES_EAST_WEST).contains(side)?(dummyPortLabel.size_0.x_0 = insidePart):(dummyPortLabel.size_0.y_0 = insidePart); + } + } + } + } + } + } + exportedExternalPorts = new ArrayList; + $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts); + !!parentNode && $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts); + return exportedExternalPorts; +} + +function CompoundGraphPreprocessor(){ + this.dummyNodeMap = new HashMap; +} + +defineClass(1261, 1, $intern_105, CompoundGraphPreprocessor); +_.process = function process_0(graph, monitor){ + $process_1(this, castTo(graph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor', 1261); +function CompoundGraphPreprocessor$ExternalPort(origEdge, newEdge, dummyNode, dummyPort, portType, exported){ + this.origEdges = new ArrayList; + this.type_0 = ($clinit_PortType() , UNDEFINED_0); + $add_3(this.origEdges, origEdge); + this.newEdge = newEdge; + this.dummyNode = dummyNode; + this.dummyPort = dummyPort; + this.type_0 = portType; + this.exported = exported; +} + +defineClass(441, 1, {441:1}, CompoundGraphPreprocessor$ExternalPort); +_.exported = false; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor$ExternalPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor/ExternalPort', 441); +function $getActualSource(this$static){ + if (this$static.newEdge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return castTo($getProperty(this$static.newEdge.source.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + } + return this$static.newEdge.source; +} + +function $getActualTarget(this$static){ + if (this$static.newEdge.target.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return castTo($getProperty(this$static.newEdge.target.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + } + return this$static.newEdge.target; +} + +function CrossHierarchyEdge(newEdge, graph, type_0){ + this.newEdge = newEdge; + this.graph_0 = graph; + this.type_0 = type_0; +} + +defineClass(243, 1, {243:1}, CrossHierarchyEdge); +_.toString_0 = function toString_86(){ + return $toString_3(this.type_0) + ':' + $toString_12(this.newEdge); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdge', 243); +function $compare_9(this$static, edge1, edge2){ + var level1, level2; + if (edge1.type_0 == ($clinit_PortType() , OUTPUT) && edge2.type_0 == INPUT) { + return -1; + } + else if (edge1.type_0 == INPUT && edge2.type_0 == OUTPUT) { + return 1; + } + level1 = hierarchyLevel(edge1.graph_0, this$static.graph_0); + level2 = hierarchyLevel(edge2.graph_0, this$static.graph_0); + return edge1.type_0 == OUTPUT?level2 - level1:level1 - level2; +} + +function CrossHierarchyEdgeComparator(graph){ + this.graph_0 = graph; +} + +function hierarchyLevel(nestedGraph, topLevelGraph){ + var currentGraph, currentNode, level; + currentGraph = nestedGraph; + level = 0; + do { + if (currentGraph == topLevelGraph) { + return level; + } + currentNode = currentGraph.parentNode; + if (!currentNode) { + throw toJs(new IllegalArgumentException); + } + currentGraph = $getGraph(currentNode); + ++level; + } + while (true); +} + +defineClass(763, 1, $intern_88, CrossHierarchyEdgeComparator); +_.compare_1 = function compare_40(edge1, edge2){ + return $compare_9(this, castTo(edge1, 243), castTo(edge2, 243)); +} +; +_.equals_0 = function equals_97(other){ + return this === other; +} +; +_.reversed = function reversed_32(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdgeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdgeComparator', 763); +function $getDesignation(this$static){ + var identifier; + identifier = getOriginIdentifier(this$static); + if (identifier) { + return identifier; + } + return null; +} + +defineClass(299, 134, {3:1, 299:1, 94:1, 134:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_layered_graph_LGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphElement', 299); +function $getDesignation_0(this$static){ + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).text_0; + } + return $getDesignation(this$static); +} + +function $getOther_1(this$static, node){ + if (node == this$static.source.owner) { + return this$static.target.owner; + } + else if (node == this$static.target.owner) { + return this$static.source.owner; + } + else { + throw toJs(new IllegalArgumentException_0("'node' must either be the source node or target node of the edge.")); + } +} + +function $getOther_2(this$static, port){ + if (port == this$static.source) { + return this$static.target; + } + else if (port == this$static.target) { + return this$static.source; + } + else { + throw toJs(new IllegalArgumentException_0("'port' must be either the source port or target port of the edge.")); + } +} + +function $isInLayerEdge(this$static){ + return !$isSelfLoop(this$static) && this$static.source.owner.layer == this$static.target.owner.layer; +} + +function $isSelfLoop(this$static){ + if (!this$static.source || !this$static.target) { + return false; + } + return !!this$static.source.owner && this$static.source.owner == this$static.target.owner; +} + +function $reverse_0(this$static, adaptPorts){ + var label_0, label$iterator, labelPlacement, oldSource, oldTarget, reversed; + oldSource = this$static.source; + oldTarget = this$static.target; + $setSource_0(this$static, null); + $setTarget_0(this$static, null); + adaptPorts && $booleanValue(castToBoolean($getProperty(oldTarget, ($clinit_InternalProperties_1() , INPUT_COLLECT))))?$setSource_0(this$static, provideCollectorPort(oldTarget.owner, ($clinit_PortType() , OUTPUT), ($clinit_PortSide() , EAST_2))):$setSource_0(this$static, oldTarget); + adaptPorts && $booleanValue(castToBoolean($getProperty(oldSource, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))?$setTarget_0(this$static, provideCollectorPort(oldSource.owner, ($clinit_PortType() , INPUT), ($clinit_PortSide() , WEST_2))):$setTarget_0(this$static, oldSource); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); + labelPlacement == ($clinit_EdgeLabelPlacement() , TAIL)?$setProperty_0(label_0, EDGE_LABELS_PLACEMENT, HEAD):labelPlacement == HEAD && $setProperty_0(label_0, EDGE_LABELS_PLACEMENT, TAIL); + } + reversed = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_InternalProperties_1() , REVERSED)))); + $setProperty_0(this$static, REVERSED, ($clinit_Boolean() , reversed?false:true)); + this$static.bendPoints = reverse_3(this$static.bendPoints); +} + +function $setSource_0(this$static, source){ + !!this$static.source && $remove_12(this$static.source.outgoingEdges, this$static); + this$static.source = source; + !!this$static.source && $add_3(this$static.source.outgoingEdges, this$static); +} + +function $setTarget_0(this$static, target){ + !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); + this$static.target = target; + !!this$static.target && $add_3(this$static.target.incomingEdges, this$static); +} + +function $setTargetAndInsertAtIndex(this$static, targetPort, index_0){ + !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); + this$static.target = targetPort; + !!this$static.target && $add_2(this$static.target.incomingEdges, index_0, this$static); +} + +function $toString_12(this$static){ + var designation, result; + result = new StringBuilder; + result.string += 'e_'; + designation = $getDesignation_0(this$static); + designation != null && (result.string += '' + designation , result); + if (!!this$static.source && !!this$static.target) { + $append_11((result.string += ' ' , result), $getDesignation_3(this$static.source)); + $append_11($append_10((result.string += '[' , result), this$static.source.owner), ']'); + $append_11((result.string += ' -> ' , result), $getDesignation_3(this$static.target)); + $append_11($append_10((result.string += '[' , result), this$static.target.owner), ']'); + } + return result.string; +} + +function LEdge(){ + this.bendPoints = new KVectorChain; + this.labels = (checkNonnegative(3, 'initialArraySize') , new ArrayList_0(3)); +} + +defineClass(17, 299, {3:1, 17:1, 299:1, 94:1, 134:1}, LEdge); +_.toString_0 = function toString_87(){ + return $toString_12(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LEdge', 17); +function $toNodeArray(this$static){ + var layer, layerIndex, layerIter, lgraphArray; + lgraphArray = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, this$static.layers.array.length, 0, 2); + layerIter = new AbstractList$ListIteratorImpl(this$static.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + layerIndex = layerIter.i - 1; + lgraphArray[layerIndex] = toNodeArray(layer.nodes); + } + return lgraphArray; +} + +function LGraph(){ + this.size_0 = new KVector; + this.padding = new LPadding; + this.offset = new KVector; + this.layerlessNodes = new ArrayList; + this.layers = new ArrayList; +} + +defineClass(37, 299, {3:1, 20:1, 37:1, 299:1, 94:1, 134:1}, LGraph); +_.forEach_0 = function forEach_26(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_68(){ + return new ArrayList$1(this.layers); +} +; +_.toString_0 = function toString_88(){ + if (this.layers.array.length == 0) { + return 'G-unlayered' + $toString_2(this.layerlessNodes); + } + else if (this.layerlessNodes.array.length == 0) { + return 'G-layered' + $toString_2(this.layers); + } + return 'G[layerless' + $toString_2(this.layerlessNodes) + ', layers' + $toString_2(this.layers) + ']'; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraph', 37); +function $clinit_LGraphAdapters(){ + $clinit_LGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER = new LGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER; +defineClass(657, 1, {}); +_.getPosition = function getPosition(){ + return this.element.pos; +} +; +_.getProperty = function getProperty_0(prop){ + return $getProperty(this.element, prop); +} +; +_.getSize = function getSize(){ + return this.element.size_0; +} +; +_.getVolatileId = function getVolatileId(){ + return this.element.id_0; +} +; +_.hasProperty = function hasProperty_0(prop){ + return $hasProperty(this.element, prop); +} +; +_.setPosition = function setPosition(pos){ + this.element.pos.x_0 = pos.x_0; + this.element.pos.y_0 = pos.y_0; +} +; +_.setSize = function setSize(size_0){ + this.element.size_0.x_0 = size_0.x_0; + this.element.size_0.y_0 = size_0.y_0; +} +; +_.setVolatileId = function setVolatileId(volatileId){ + this.element.id_0 = volatileId; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$AbstractLShapeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/AbstractLShapeAdapter', 657); +function LGraphAdapters$LEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(577, 1, {839:1}, LGraphAdapters$LEdgeAdapter); +_.getLabels = function getLabels(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(this.element.labels.array.length); + for (l$iterator = new ArrayList$1(this.element.labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.labelAdapters = null; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LEdgeAdapter', 577); +function LGraphAdapters$LGraphAdapter(element, transparentNorthSouthEdges, transparentCommentNodes, nodeFilter){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; + this.transparentCommentNodes = transparentCommentNodes; + this.nodeFilter = nodeFilter; +} + +defineClass(656, 1, {}, LGraphAdapters$LGraphAdapter); +_.getNodes = function getNodes(){ + var comment, comment$iterator, l, l$iterator, n, n$iterator; + if (!this.nodeAdapters) { + this.nodeAdapters = new ArrayList; + for (l$iterator = new ArrayList$1(this.element.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (this.nodeFilter.test_0(n)) { + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, n, this.transparentNorthSouthEdges)); + if (this.transparentCommentNodes) { + if ($hasProperty(n, ($clinit_InternalProperties_1() , TOP_COMMENTS))) { + for (comment$iterator = castTo($getProperty(n, TOP_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { + comment = castTo(comment$iterator.next_1(), 10); + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); + } + } + if ($hasProperty(n, BOTTOM_COMMENTS)) { + for (comment$iterator = castTo($getProperty(n, BOTTOM_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { + comment = castTo(comment$iterator.next_1(), 10); + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); + } + } + } + } + } + } + } + return this.nodeAdapters; +} +; +_.getPosition = function getPosition_0(){ + throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); +} +; +_.getProperty = function getProperty_1(prop){ + return $getProperty(this.element, prop); +} +; +_.getSize = function getSize_0(){ + return this.element.size_0; +} +; +_.getVolatileId = function getVolatileId_0(){ + return this.element.id_0; +} +; +_.hasProperty = function hasProperty_1(prop){ + return $hasProperty(this.element, prop); +} +; +_.setPosition = function setPosition_0(pos){ + throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); +} +; +_.setSize = function setSize_0(size_0){ + this.element.size_0.x_0 = size_0.x_0; + this.element.size_0.y_0 = size_0.y_0; +} +; +_.setVolatileId = function setVolatileId_0(volatileId){ + this.element.id_0 = volatileId; +} +; +_.nodeAdapters = null; +_.transparentCommentNodes = false; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LGraphAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LGraphAdapter', 656); +function LGraphAdapters$LLabelAdapter(element){ + this.element = element; +} + +defineClass(576, 657, {181:1}, LGraphAdapters$LLabelAdapter); +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LLabelAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LLabelAdapter', 576); +function $sortPortList(this$static, comparator){ + $isOrderFixed(castTo($getProperty(castTo(this$static.element, 10), ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) && ($clinit_Collections() , $sort(castTo(this$static.element, 10).ports, comparator)); +} + +function LGraphAdapters$LNodeAdapter(parent_0, element, transparentNorthSouthEdges){ + this.element = element; + this.parentGraphAdapter = parent_0; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(575, 657, {680:1}, LGraphAdapters$LNodeAdapter); +_.getGraph = function getGraph(){ + return this.parentGraphAdapter; +} +; +_.getIncomingEdges = function getIncomingEdges(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getLabels = function getLabels_0(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 10).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 10).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getMargin = function getMargin(){ + var lmargins; + lmargins = castTo(this.element, 10).margin; + return new ElkMargin_1(lmargins.top_0, lmargins.right, lmargins.bottom, lmargins.left); +} +; +_.getOutgoingEdges = function getOutgoingEdges(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getPorts = function getPorts(){ + var p, p$iterator; + if (!this.portAdapters) { + this.portAdapters = newArrayListWithCapacity(castTo(this.element, 10).ports.array.length); + for (p$iterator = new ArrayList$1(castTo(this.element, 10).ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + $add_3(this.portAdapters, new LGraphAdapters$LPortAdapter(p, this.transparentNorthSouthEdges)); + } + } + return this.portAdapters; +} +; +_.isCompoundNode = function isCompoundNode(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 10), ($clinit_InternalProperties_1() , COMPOUND_NODE)))); +} +; +_.setMargin = function setMargin(margin){ + castTo(this.element, 10).margin.left = margin.left; + castTo(this.element, 10).margin.top_0 = margin.top_0; + castTo(this.element, 10).margin.right = margin.right; + castTo(this.element, 10).margin.bottom = margin.bottom; +} +; +_.setPadding = function setPadding(padding){ + castTo(this.element, 10).padding.left = padding.left; + castTo(this.element, 10).padding.top_0 = padding.top_0; + castTo(this.element, 10).padding.right = padding.right; + castTo(this.element, 10).padding.bottom = padding.bottom; +} +; +_.sortPortList = function sortPortList(){ + $sortPortList(this, ($clinit_LGraphAdapters() , DEFAULT_PORTLIST_SORTER)); +} +; +_.labelAdapters = null; +_.parentGraphAdapter = null; +_.portAdapters = null; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LNodeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LNodeAdapter', 575); +function LGraphAdapters$LPortAdapter(element, transparentNorthSouthEdges){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(1722, 657, {838:1}, LGraphAdapters$LPortAdapter); +_.getIncomingEdges = function getIncomingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy; + if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + else if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = new ArrayList; + for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).incomingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + } + return this.incomingEdgeAdapters; +} +; +_.getLabels = function getLabels_1(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 11).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 11).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy; + if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + else if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = new ArrayList; + for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide(){ + return castTo(this.element, 11).side; +} +; +_.hasCompoundConnections = function hasCompoundConnections(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))); +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LPortAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LPortAdapter', 1722); +function $compare_10(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = port1.side.ordinal - port2.side.ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty(port1, ($clinit_LayeredOptions() , PORT_INDEX)), 19); + index2 = castTo($getProperty(port2, PORT_INDEX), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (port1.side.ordinal) { + case 1: + return compare_4(port1.pos.x_0, port2.pos.x_0); + case 2: + return compare_4(port1.pos.y_0, port2.pos.y_0); + case 3: + return compare_4(port2.pos.x_0, port1.pos.x_0); + case 4: + return compare_4(port2.pos.y_0, port1.pos.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function LGraphAdapters$PortComparator(){ +} + +defineClass(1723, 1, $intern_88, LGraphAdapters$PortComparator); +_.compare_1 = function compare_41(port1, port2){ + return $compare_10(castTo(port1, 11), castTo(port2, 11)); +} +; +_.equals_0 = function equals_98(other){ + return this === other; +} +; +_.reversed = function reversed_33(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/PortComparator', 1723); +function LGraphAdapters$lambda$0$Type(){ +} + +defineClass(804, 1, $intern_39, LGraphAdapters$lambda$0$Type); +_.test_0 = function test_17(arg0){ + return castTo(arg0, 10) , $clinit_LGraphAdapters() , true; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/lambda$0$Type', 804); +function calcPortOffset(port, side){ + var node; + node = port.owner; + switch (side.ordinal) { + case 1: + return -(port.pos.y_0 + port.size_0.y_0); + case 2: + return port.pos.x_0 - node.size_0.x_0; + case 3: + return port.pos.y_0 - node.size_0.y_0; + case 4: + return -(port.pos.x_0 + port.size_0.x_0); + } + return 0; +} + +function calcPortSide(port, direction){ + var height, heightPercent, node, nodeHeight, nodeWidth, width_0, widthPercent, xpos, ypos; + node = port.owner; + nodeWidth = node.size_0.x_0; + nodeHeight = node.size_0.y_0; + if (nodeWidth <= 0 && nodeHeight <= 0) { + return $clinit_PortSide() , UNDEFINED_5; + } + xpos = port.pos.x_0; + ypos = port.pos.y_0; + width_0 = port.size_0.x_0; + height = port.size_0.y_0; + switch (direction.ordinal) { + case 2: + case 1: + if (xpos < 0) { + return $clinit_PortSide() , WEST_2; + } + else if (xpos + width_0 > nodeWidth) { + return $clinit_PortSide() , EAST_2; + } + + break; + case 4: + case 3: + if (ypos < 0) { + return $clinit_PortSide() , NORTH_3; + } + else if (ypos + height > nodeHeight) { + return $clinit_PortSide() , SOUTH_2; + } + + } + widthPercent = (xpos + width_0 / 2) / nodeWidth; + heightPercent = (ypos + height / 2) / nodeHeight; + return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); +} + +function centerPoint(point, boundary, side){ + switch (side.ordinal) { + case 1: + point.x_0 = boundary.x_0 / 2; + point.y_0 = 0; + break; + case 2: + point.x_0 = boundary.x_0; + point.y_0 = boundary.y_0 / 2; + break; + case 3: + point.x_0 = boundary.x_0 / 2; + point.y_0 = boundary.y_0; + break; + case 4: + point.x_0 = 0; + point.y_0 = boundary.y_0 / 2; + } +} + +function changeCoordSystem(point, oldGraph, newGraph){ + var graph, node, padding; + if (oldGraph == newGraph) { + return; + } + graph = oldGraph; + do { + $add_19(point, graph.offset); + node = graph.parentNode; + if (node) { + padding = graph.padding; + $add_18(point, padding.left, padding.top_0); + $add_19(point, node.pos); + graph = $getGraph(node); + } + } + while (node); + graph = newGraph; + do { + $sub_0(point, graph.offset); + node = graph.parentNode; + if (node) { + padding = graph.padding; + $sub(point, padding.left, padding.top_0); + $sub_0(point, node.pos); + graph = $getGraph(node); + } + } + while (node); +} + +function createExternalPortDummy(propertyHolder, portConstraints, portSide, netFlow, portNodeSize, portPosition, portSize, layoutDirection, layeredGraph){ + var anchor, dummy, dummyPort, explicitAnchor, finalExternalPortSide, informationAboutIt, portBorderOffset; + finalExternalPortSide = portSide; + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIZE), portSize); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + portBorderOffset = $doubleValue(castToDouble(propertyHolder.getProperty(PORT_BORDER_OFFSET))); + $setProperty_0(dummy, PORT_BORDER_OFFSET, portBorderOffset); + dummyPort = new LPort; + $setNode(dummyPort, dummy); + if (!(portConstraints != FREE && portConstraints != UNDEFINED_4)) { + netFlow >= 0?(finalExternalPortSide = fromDirection(layoutDirection)):(finalExternalPortSide = $opposed(fromDirection(layoutDirection))); + propertyHolder.setProperty(PORT_SIDE, finalExternalPortSide); + } + anchor = new KVector; + explicitAnchor = false; + if (propertyHolder.hasProperty(PORT_ANCHOR)) { + $set_9(anchor, castTo(propertyHolder.getProperty(PORT_ANCHOR), 8)); + explicitAnchor = true; + } + else { + $set_8(anchor, portSize.x_0 / 2, portSize.y_0 / 2); + } + switch (finalExternalPortSide.ordinal) { + case 4: + $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); + $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + dummy.size_0.y_0 = portSize.y_0; + portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , EAST_2)); + explicitAnchor || (anchor.x_0 = portSize.x_0); + anchor.x_0 -= portSize.x_0; + break; + case 2: + $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); + $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , INCOMING_ONLY)); + dummy.size_0.y_0 = portSize.y_0; + portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , WEST_2)); + explicitAnchor || (anchor.x_0 = 0); + break; + case 1: + $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + dummy.size_0.x_0 = portSize.x_0; + portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , SOUTH_2)); + explicitAnchor || (anchor.y_0 = portSize.y_0); + anchor.y_0 -= portSize.y_0; + break; + case 3: + $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + dummy.size_0.x_0 = portSize.x_0; + portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , NORTH_3)); + explicitAnchor || (anchor.y_0 = 0); + } + $set_9(dummyPort.pos, anchor); + $setProperty_0(dummy, PORT_ANCHOR, anchor); + if (portConstraints == FIXED_ORDER || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { + informationAboutIt = 0; + if (portConstraints == FIXED_ORDER && propertyHolder.hasProperty(PORT_INDEX)) { + switch (finalExternalPortSide.ordinal) { + case 1: + case 2: + informationAboutIt = castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; + break; + case 3: + case 4: + informationAboutIt = -castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; + } + } + else { + switch (finalExternalPortSide.ordinal) { + case 4: + case 2: + informationAboutIt = portPosition.y_0; + portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.y_0); + break; + case 1: + case 3: + informationAboutIt = portPosition.x_0; + portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.x_0); + } + } + $setProperty_0(dummy, PORT_RATIO_OR_POSITION_0, informationAboutIt); + } + $setProperty_0(dummy, EXT_PORT_SIDE, finalExternalPortSide); + return dummy; +} + +function createPort(node, endPoint, type_0, layeredGraph){ + var defaultSide, direction, graphProperties, mergePorts, port, portSide, pos; + direction = getDirection_1(layeredGraph); + mergePorts = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , MERGE_EDGES_0)))); + if ((mergePorts || $booleanValue(castToBoolean($getProperty(node, HYPERNODE)))) && !$isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98))) { + defaultSide = fromDirection(direction); + port = provideCollectorPort(node, type_0, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); + } + else { + port = new LPort; + $setNode(port, node); + if (endPoint) { + pos = port.pos; + pos.x_0 = endPoint.x_0 - node.pos.x_0; + pos.y_0 = endPoint.y_0 - node.pos.y_0; + $bound(pos, 0, 0, node.size_0.x_0, node.size_0.y_0); + $setSide(port, calcPortSide(port, direction)); + } + else { + defaultSide = fromDirection(direction); + $setSide(port, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); + } + graphProperties = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + portSide = port.side; + switch (direction.ordinal) { + case 2: + case 1: + (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + break; + case 4: + case 3: + (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + } + } + return port; +} + +function findMaxNonDummyNodeWidth(layer){ + var maxWidth, node, node$iterator, width_0; + if ($isVertical(castTo($getProperty(layer.owner, ($clinit_LayeredOptions() , DIRECTION)), 103))) { + return 0; + } + maxWidth = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + width_0 = node.size_0.x_0; + maxWidth = $wnd.Math.max(maxWidth, width_0); + } + } + return maxWidth; +} + +function getDirection_1(graph){ + var aspectRatio, direction; + direction = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); + if (direction == ($clinit_Direction_0() , UNDEFINED_2)) { + aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); + return aspectRatio >= 1?RIGHT_6:DOWN_1; + } + return direction; +} + +function getExternalPortPosition(graph, portDummy, portWidth, portHeight){ + var graphOffset, graphSize, padding, portOffset, portPosition; + portPosition = new KVector_2(portDummy.pos); + portPosition.x_0 += portDummy.size_0.x_0 / 2; + portPosition.y_0 += portDummy.size_0.y_0 / 2; + portOffset = $doubleValue(castToDouble($getProperty(portDummy, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET)))); + graphSize = graph.size_0; + padding = graph.padding; + graphOffset = graph.offset; + switch (castTo($getProperty(portDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; + portPosition.y_0 = -portHeight - portOffset; + portDummy.pos.y_0 = -(padding.top_0 + portOffset + graphOffset.y_0); + break; + case 2: + portPosition.x_0 = graphSize.x_0 + padding.left + padding.right + portOffset; + portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; + portDummy.pos.x_0 = graphSize.x_0 + padding.right + portOffset - graphOffset.x_0; + break; + case 3: + portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; + portPosition.y_0 = graphSize.y_0 + padding.top_0 + padding.bottom + portOffset; + portDummy.pos.y_0 = graphSize.y_0 + padding.bottom + portOffset - graphOffset.y_0; + break; + case 4: + portPosition.x_0 = -portWidth - portOffset; + portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; + portDummy.pos.x_0 = -(padding.left + portOffset + graphOffset.x_0); + } + return portPosition; +} + +function getIndividualOrInherited(node, property){ + var individualSpacings, result; + result = null; + if ($hasProperty(node, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { + individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL_0), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && !!$getGraph(node) && (result = $getProperty($getGraph(node), property)); + return result; +} + +function getMinimalModelOrder(graph){ + var node, node$iterator, order; + order = $intern_0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (order = $wnd.Math.min(order, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0)); + } + return order; +} + +function initializePort(port, portConstraints, direction, anchorPos){ + var nodeHeight, nodeWidth, portAnchor, portSide, portSize, ratio; + portSide = port.side; + if (portSide == ($clinit_PortSide() , UNDEFINED_5) && portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != ($clinit_PortConstraints() , UNDEFINED_4)) { + portSide = calcPortSide(port, direction); + $setSide(port, portSide); + !(!port.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):port.propertyMap).containsKey(($clinit_LayeredOptions() , PORT_BORDER_OFFSET)) && portSide != UNDEFINED_5 && (port.pos.x_0 != 0 || port.pos.y_0 != 0) && $setProperty_0(port, PORT_BORDER_OFFSET, calcPortOffset(port, portSide)); + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_RATIO)) { + ratio = 0; + switch (portSide.ordinal) { + case 1: + case 3: + nodeWidth = port.owner.size_0.x_0; + nodeWidth > 0 && (ratio = port.pos.x_0 / nodeWidth); + break; + case 2: + case 4: + nodeHeight = port.owner.size_0.y_0; + nodeHeight > 0 && (ratio = port.pos.y_0 / nodeHeight); + } + $setProperty_0(port, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0), ratio); + } + portSize = port.size_0; + portAnchor = port.anchor; + if (anchorPos) { + portAnchor.x_0 = anchorPos.x_0; + portAnchor.y_0 = anchorPos.y_0; + port.explicitlySuppliedPortAnchor = true; + } + else if (portConstraints != FREE && portConstraints != UNDEFINED_4 && portSide != UNDEFINED_5) { + switch (portSide.ordinal) { + case 1: + portAnchor.x_0 = portSize.x_0 / 2; + break; + case 2: + portAnchor.x_0 = portSize.x_0; + portAnchor.y_0 = portSize.y_0 / 2; + break; + case 3: + portAnchor.x_0 = portSize.x_0 / 2; + portAnchor.y_0 = portSize.y_0; + break; + case 4: + portAnchor.y_0 = portSize.y_0 / 2; + } + } + else { + portAnchor.x_0 = portSize.x_0 / 2; + portAnchor.y_0 = portSize.y_0 / 2; + } +} + +function isDescendant(child, parent_0){ + var current, next; + current = child; + next = $getGraph(current).parentNode; + while (next) { + current = next; + if (current == parent_0) { + return true; + } + next = $getGraph(current).parentNode; + } + return false; +} + +function offsetGraph(graph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = new KVector_1(offsetx, offsety); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $add_19(label_0.pos, graphOffset); + } + } + } + } +} + +function placeNodesHorizontally(layer, xoffset){ + var alignment, inports, leftMargin, maxLeftMargin, maxRightMargin, node, node$iterator, node$iterator0, nodeSize, outports, port, port$iterator, ratio, rightMargin, size_0, xpos; + maxLeftMargin = 0; + maxRightMargin = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + maxLeftMargin = $wnd.Math.max(maxLeftMargin, node.margin.left); + maxRightMargin = $wnd.Math.max(maxRightMargin, node.margin.right); + } + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + alignment = castTo($getProperty(node, ($clinit_LayeredOptions() , ALIGNMENT)), 248); + switch (alignment.ordinal) { + case 1: + ratio = 0; + break; + case 2: + ratio = 1; + break; + case 5: + ratio = 0.5; + break; + default:inports = 0; + outports = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || ++inports; + port.outgoingEdges.array.length == 0 || ++outports; + } + + inports + outports == 0?(ratio = 0.5):(ratio = outports / (inports + outports)); + } + size_0 = layer.size_0; + nodeSize = node.size_0.x_0; + xpos = (size_0.x_0 - nodeSize) * ratio; + ratio > 0.5?(xpos -= maxRightMargin * 2 * (ratio - 0.5)):ratio < 0.5 && (xpos += maxLeftMargin * 2 * (0.5 - ratio)); + leftMargin = node.margin.left; + xpos < leftMargin && (xpos = leftMargin); + rightMargin = node.margin.right; + xpos > size_0.x_0 - rightMargin - nodeSize && (xpos = size_0.x_0 - rightMargin - nodeSize); + node.pos.x_0 = xoffset + xpos; + } +} + +function provideCollectorPort(node, type_0, side){ + var inport, inport$iterator, outport, outport$iterator, port; + port = null; + switch (type_0.ordinal) { + case 1: + for (inport$iterator = new ArrayList$1(node.ports); inport$iterator.i < inport$iterator.this$01.array.length;) { + inport = castTo($next_7(inport$iterator), 11); + if ($booleanValue(castToBoolean($getProperty(inport, ($clinit_InternalProperties_1() , INPUT_COLLECT))))) { + return inport; + } + } + + port = new LPort; + $setProperty_0(port, ($clinit_InternalProperties_1() , INPUT_COLLECT), ($clinit_Boolean() , true)); + break; + case 2: + for (outport$iterator = new ArrayList$1(node.ports); outport$iterator.i < outport$iterator.this$01.array.length;) { + outport = castTo($next_7(outport$iterator), 11); + if ($booleanValue(castToBoolean($getProperty(outport, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))) { + return outport; + } + } + + port = new LPort; + $setProperty_0(port, ($clinit_InternalProperties_1() , OUTPUT_COLLECT), ($clinit_Boolean() , true)); + } + if (port) { + $setNode(port, node); + $setSide(port, side); + centerPoint(port.pos, node.size_0, side); + } + return port; +} + +function resizeNode(node, newSize, movePorts){ + var all, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, oldSize, port, port$iterator, widthDiff, widthPercent, widthRatio; + oldSize = new KVector_2(node.size_0); + widthRatio = newSize.x_0 / oldSize.x_0; + heightRatio = newSize.y_0 / oldSize.y_0; + widthDiff = newSize.x_0 - oldSize.x_0; + heightDiff = newSize.y_0 - oldSize.y_0; + if (movePorts) { + fixedPorts = maskUndefined($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 1: + fixedPorts || (port.pos.x_0 *= widthRatio); + break; + case 2: + port.pos.x_0 += widthDiff; + fixedPorts || (port.pos.y_0 *= heightRatio); + break; + case 3: + fixedPorts || (port.pos.x_0 *= widthRatio); + port.pos.y_0 += heightDiff; + break; + case 4: + fixedPorts || (port.pos.y_0 *= heightRatio); + } + } + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + midx = label_0.pos.x_0 + label_0.size_0.x_0 / 2; + midy = label_0.pos.y_0 + label_0.size_0.y_0 / 2; + widthPercent = midx / oldSize.x_0; + heightPercent = midy / oldSize.y_0; + if (widthPercent + heightPercent >= 1) { + if (widthPercent - heightPercent > 0 && midy >= 0) { + label_0.pos.x_0 += widthDiff; + label_0.pos.y_0 += heightDiff * heightPercent; + } + else if (widthPercent - heightPercent < 0 && midx >= 0) { + label_0.pos.x_0 += widthDiff * widthPercent; + label_0.pos.y_0 += heightDiff; + } + } + } + node.size_0.x_0 = newSize.x_0; + node.size_0.y_0 = newSize.y_0; + $setProperty_0(node, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); +} + +function toEdgeArray(edges){ + return castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); +} + +function toNodeArray(nodes){ + return castTo($toArray_2(nodes, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodes.array.length, 0, 1)), 193); +} + +function toPortArray(ports){ + return castTo($toArray_2(ports, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, $intern_108, 11, ports.array.length, 0, 1)), 1943); +} + +function LShape(){ + this.pos = new KVector; + this.size_0 = new KVector; +} + +defineClass(392, 299, {3:1, 299:1, 392:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_layered_graph_LShape_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LShape', 392); +function $getDesignation_1(this$static){ + if (this$static.text_0) { + return this$static.text_0; + } + return $getDesignation(this$static); +} + +function LLabel(){ + LLabel_0.call(this, ''); +} + +function LLabel_0(thetext){ + LShape.call(this); + this.text_0 = thetext; +} + +defineClass(70, 392, {3:1, 299:1, 70:1, 392:1, 94:1, 134:1}, LLabel, LLabel_0); +_.toString_0 = function toString_89(){ + var designation; + designation = $getDesignation_1(this); + return designation == null?'label':'l_' + designation; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LLabel_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LLabel', 70); +function $$init_7(this$static){ +} + +function $add_15(this$static, other){ + this$static.left += other.left; + this$static.right += other.right; + this$static.top_0 += other.top_0; + this$static.bottom += other.bottom; + return this$static; +} + +function $copy(this$static, other){ + this$static.left = other.left; + this$static.right = other.right; + this$static.top_0 = other.top_0; + this$static.bottom = other.bottom; + return this$static; +} + +function $set_7(this$static, newTop, newRight, newBottom, newLeft){ + this$static.top_0 = newTop; + this$static.right = newRight; + this$static.bottom = newBottom; + this$static.left = newLeft; +} + +function $setBottom(this$static, bottom){ + this$static.bottom = bottom; +} + +function $setLeft(this$static, left){ + this$static.left = left; +} + +function $setRight(this$static, right){ + this$static.right = right; +} + +function $setTop(this$static, top_0){ + this$static.top_0 = top_0; +} + +function Spacing(){ + $$init_7(this); +} + +function Spacing_0(top_0, right, bottom, left){ + $$init_7(this); + $set_7(this, top_0, right, bottom, left); +} + +function isdelim(c, delims){ + var i; + for (i = 0; i < delims.length; i++) { + if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { + return true; + } + } + return false; +} + +defineClass(207, 1, {3:1, 4:1, 207:1, 414:1}); +_.equals_0 = function equals_99(obj){ + var other; + if (instanceOf(obj, 207)) { + other = castTo(obj, 207); + return this.top_0 == other.top_0 && this.bottom == other.bottom && this.left == other.left && this.right == other.right; + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_61(){ + var code1, code2; + code1 = $hashCode_0(this.left) << 16; + code1 |= $hashCode_0(this.bottom) & $intern_46; + code2 = $hashCode_0(this.right) << 16; + code2 |= $hashCode_0(this.top_0) & $intern_46; + return code1 ^ code2; +} +; +_.parse_0 = function parse_0(string){ + var end, exception, key, keyandvalue, start_0, token, token$array, token$index, token$max, tokens, value_0; + start_0 = 0; + while (start_0 < string.length && isdelim((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { + ++start_0; + } + end = string.length; + while (end > 0 && isdelim((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { + --end; + } + if (start_0 < end) { + tokens = $split_0(string.substr(start_0, end - start_0), ',|;'); + try { + for (token$array = tokens , token$index = 0 , token$max = token$array.length; token$index < token$max; ++token$index) { + token = token$array[token$index]; + keyandvalue = $split_0(token, '='); + if (keyandvalue.length != 2) { + throw toJs(new IllegalArgumentException_0('Expecting a list of key-value pairs.')); + } + key = $trim(keyandvalue[0]); + value_0 = __parseAndValidateDouble($trim(keyandvalue[1])); + $equals_5(key, 'top')?(this.top_0 = value_0):$equals_5(key, 'left')?(this.left = value_0):$equals_5(key, 'bottom')?(this.bottom = value_0):$equals_5(key, 'right') && (this.right = value_0); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); + } + else + throw toJs($e0); + } + } +} +; +_.toString_0 = function toString_90(){ + return '[top=' + this.top_0 + ',left=' + this.left + ',bottom=' + this.bottom + ',right=' + this.right + ']'; +} +; +_.bottom = 0; +_.left = 0; +_.right = 0; +_.top_0 = 0; +var Lorg_eclipse_elk_core_math_Spacing_2_classLit = createForClass('org.eclipse.elk.core.math', 'Spacing', 207); +function ElkMargin(){ + Spacing.call(this); +} + +function ElkMargin_0(){ + Spacing_0.call(this, 0, 0, 0, 0); +} + +function ElkMargin_1(top_0, right, bottom, left){ + Spacing_0.call(this, top_0, right, bottom, left); +} + +function ElkMargin_2(other){ + Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); +} + +defineClass(142, 207, $intern_109, ElkMargin, ElkMargin_0, ElkMargin_1, ElkMargin_2); +var Lorg_eclipse_elk_core_math_ElkMargin_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkMargin', 142); +function LMargin(){ + ElkMargin.call(this); +} + +defineClass(651, 142, $intern_109, LMargin); +var Lorg_eclipse_elk_alg_layered_graph_LMargin_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LMargin', 651); +function $borderToContentAreaCoordinates(this$static, horizontal, vertical){ + var graphPadding, offset, pos, thegraph; + thegraph = $getGraph(this$static); + graphPadding = thegraph.padding; + offset = thegraph.offset; + pos = this$static.pos; + horizontal && (pos.x_0 = pos.x_0 - graphPadding.left - offset.x_0); + vertical && (pos.y_0 = pos.y_0 - graphPadding.top_0 - offset.y_0); +} + +function $findPortIndices(this$static){ + var currentIndex, currentSide, firstIndexForCurrentSide, port; + this$static.portSideIndices = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); + firstIndexForCurrentSide = 0; + currentSide = ($clinit_PortSide() , NORTH_3); + currentIndex = 0; + for (; currentIndex < this$static.ports.array.length; currentIndex++) { + port = castTo($get_11(this$static.ports, currentIndex), 11); + if (port.side != currentSide) { + firstIndexForCurrentSide != currentIndex && $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); + currentSide = port.side; + firstIndexForCurrentSide = currentIndex; + } + } + $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); +} + +function $getConnectedEdges_0(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $add_3(iterables, port.connectedEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getDesignation_2(this$static){ + var id_0; + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).text_0; + } + id_0 = $getDesignation(this$static); + if (id_0 != null) { + return id_0; + } + return '' + (!this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0)); +} + +function $getGraph(this$static){ + if (!this$static.graph_0 && !!this$static.layer) { + return this$static.layer.owner; + } + return this$static.graph_0; +} + +function $getIncomingEdges(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $add_3(iterables, port.incomingEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getIndex(this$static){ + return !this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0); +} + +function $getInteractiveReferencePoint(this$static){ + var nodePos, nodeSize; + switch (castTo($getProperty($getGraph(this$static), ($clinit_LayeredOptions() , INTERACTIVE_REFERENCE_POINT_0)), 420).ordinal) { + case 0: + nodePos = this$static.pos; + nodeSize = this$static.size_0; + return new KVector_1(nodePos.x_0 + nodeSize.x_0 / 2, nodePos.y_0 + nodeSize.y_0 / 2); + case 1: + return new KVector_2(this$static.pos); + default:return null; + } +} + +function $getOutgoingEdges(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $add_3(iterables, port.outgoingEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getPortSideView(this$static, side){ + var indices; + this$static.portSidesCached || $findPortIndices(this$static); + indices = castTo($get_14(this$static.portSideIndices, side), 46); + return !indices?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):new AbstractList$SubList(this$static.ports, castTo(indices.first, 19).value_0, castTo(indices.second, 19).value_0); +} + +function $getPorts(this$static, portType){ + switch (portType.ordinal) { + case 1: + return filter_0(this$static.ports, ($clinit_LPort() , INPUT_PREDICATE)); + case 2: + return filter_0(this$static.ports, ($clinit_LPort() , OUTPUT_PREDICATE)); + default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $getPorts_0(this$static, portType, side){ + var sidePredicate, typePredicate; + typePredicate = null; + switch (portType.ordinal) { + case 1: + typePredicate = ($clinit_LPort() , INPUT_PREDICATE); + break; + case 2: + typePredicate = ($clinit_LPort() , OUTPUT_PREDICATE); + } + sidePredicate = null; + switch (side.ordinal) { + case 1: + sidePredicate = ($clinit_LPort() , NORTH_PREDICATE); + break; + case 2: + sidePredicate = ($clinit_LPort() , EAST_PREDICATE); + break; + case 3: + sidePredicate = ($clinit_LPort() , SOUTH_PREDICATE); + break; + case 4: + sidePredicate = ($clinit_LPort() , WEST_PREDICATE); + } + return !!typePredicate && !!sidePredicate?filter_0(this$static.ports, new Predicates$AndPredicate(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_base_Predicate_2_classLit, 1), $intern_2, 169, 0, [castTo(checkNotNull(typePredicate), 169), castTo(checkNotNull(sidePredicate), 169)])))):($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); +} + +function $getPorts_1(this$static, side){ + switch (side.ordinal) { + case 1: + return filter_0(this$static.ports, ($clinit_LPort() , NORTH_PREDICATE)); + case 2: + return filter_0(this$static.ports, ($clinit_LPort() , EAST_PREDICATE)); + case 3: + return filter_0(this$static.ports, ($clinit_LPort() , SOUTH_PREDICATE)); + case 4: + return filter_0(this$static.ports, ($clinit_LPort() , WEST_PREDICATE)); + default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $setLayer(this$static, index_0, newlayer){ + if (!!newlayer && (index_0 < 0 || index_0 > newlayer.nodes.array.length)) { + throw toJs(new IllegalArgumentException_0('index must be >= 0 and <= layer node count')); + } + !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); + this$static.layer = newlayer; + !!newlayer && $add_2(newlayer.nodes, index_0, this$static); +} + +function $setLayer_0(this$static, thelayer){ + !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); + this$static.layer = thelayer; + !!this$static.layer && $add_3(this$static.layer.nodes, this$static); +} + +function $setType(this$static, type_0){ + this$static.type_0 = type_0; +} + +function $toString_13(this$static){ + var result; + result = new StringBuilder; + result.string += 'n'; + this$static.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $append_11($append_11((result.string += '(' , result), $toString_3(this$static.type_0).toLowerCase()), ')'); + $append_11((result.string += '_' , result), $getDesignation_2(this$static)); + return result.string; +} + +function LNode(graph){ + LShape.call(this); + this.type_0 = ($clinit_LNode$NodeType() , NORMAL); + this.ports = (checkNonnegative(6, 'initialArraySize') , new ArrayList_0(6)); + this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this.margin = new LMargin; + this.padding = new LPadding; + this.graph_0 = graph; +} + +defineClass(10, 392, {3:1, 299:1, 10:1, 392:1, 94:1, 134:1}, LNode); +_.toString_0 = function toString_91(){ + return $toString_13(this); +} +; +_.portSidesCached = false; +var Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LNode', 10); +function $clinit_LNode$NodeType(){ + $clinit_LNode$NodeType = emptyMethod; + NORMAL = new LNode$NodeType('NORMAL', 0); + LONG_EDGE = new LNode$NodeType('LONG_EDGE', 1); + EXTERNAL_PORT = new LNode$NodeType('EXTERNAL_PORT', 2); + NORTH_SOUTH_PORT = new LNode$NodeType('NORTH_SOUTH_PORT', 3); + LABEL = new LNode$NodeType('LABEL', 4); + BREAKING_POINT = new LNode$NodeType('BREAKING_POINT', 5); +} + +function LNode$NodeType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_30(name_0){ + $clinit_LNode$NodeType(); + return valueOf(($clinit_LNode$NodeType$Map() , $MAP_18), name_0); +} + +function values_36(){ + $clinit_LNode$NodeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]); +} + +defineClass(267, 22, {3:1, 35:1, 22:1, 267:1}, LNode$NodeType); +var BREAKING_POINT, EXTERNAL_PORT, LABEL, LONG_EDGE, NORMAL, NORTH_SOUTH_PORT; +var Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.graph', 'LNode/NodeType', 267, Ljava_lang_Enum_2_classLit, values_36, valueOf_30); +function $clinit_LNode$NodeType$Map(){ + $clinit_LNode$NodeType$Map = emptyMethod; + $MAP_18 = createValueOfMap(($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]))); +} + +var $MAP_18; +function ElkPadding(){ + Spacing.call(this); +} + +function ElkPadding_0(any){ + Spacing_0.call(this, any, any, any, any); +} + +function ElkPadding_1(other){ + Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); +} + +defineClass(116, 207, $intern_110, ElkPadding, ElkPadding_0, ElkPadding_1); +var Lorg_eclipse_elk_core_math_ElkPadding_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkPadding', 116); +function LPadding(){ + ElkPadding.call(this); +} + +defineClass(764, 116, $intern_110, LPadding); +var Lorg_eclipse_elk_alg_layered_graph_LPadding_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPadding', 764); +function $clinit_LPort(){ + $clinit_LPort = emptyMethod; + OUTPUT_PREDICATE = new LPort$lambda$1$Type; + INPUT_PREDICATE = new LPort$lambda$0$Type; + NORTH_PREDICATE = new LPort$lambda$2$Type; + EAST_PREDICATE = new LPort$lambda$3$Type; + SOUTH_PREDICATE = new LPort$lambda$4$Type; + WEST_PREDICATE = new LPort$lambda$5$Type; +} + +function $getAbsoluteAnchor(this$static){ + return sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [this$static.owner.pos, this$static.pos, this$static.anchor])); +} + +function $getDegree(this$static){ + return this$static.incomingEdges.array.length + this$static.outgoingEdges.array.length; +} + +function $getDesignation_3(this$static){ + var id_0; + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).text_0; + } + id_0 = $getDesignation(this$static); + if (id_0 != null) { + return id_0; + } + return '' + (!this$static.owner?-1:$indexOf_3(this$static.owner.ports, this$static, 0)); +} + +function $getNetFlow(this$static){ + return this$static.incomingEdges.array.length - this$static.outgoingEdges.array.length; +} + +function $setConnectedToExternalNodes(this$static, conn){ + this$static.connectedToExternalNodes = conn; +} + +function $setNode(this$static, node){ + !!this$static.owner && $remove_12(this$static.owner.ports, this$static); + this$static.owner = node; + !!this$static.owner && $add_3(this$static.owner.ports, this$static); +} + +function $setSide(this$static, theside){ + if (!theside) { + throw toJs(new NullPointerException); + } + this$static.side = theside; + if (!this$static.explicitlySuppliedPortAnchor) { + switch (this$static.side.ordinal) { + case 1: + this$static.anchor.x_0 = this$static.size_0.x_0 / 2; + this$static.anchor.y_0 = 0; + break; + case 2: + this$static.anchor.x_0 = this$static.size_0.x_0; + this$static.anchor.y_0 = this$static.size_0.y_0 / 2; + break; + case 3: + this$static.anchor.x_0 = this$static.size_0.x_0 / 2; + this$static.anchor.y_0 = this$static.size_0.y_0; + break; + case 4: + this$static.anchor.x_0 = 0; + this$static.anchor.y_0 = this$static.size_0.y_0 / 2; + } + } +} + +function LPort(){ + $clinit_LPort(); + LShape.call(this); + this.side = ($clinit_PortSide() , UNDEFINED_5); + this.anchor = new KVector; + new LMargin; + this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this.incomingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + this.outgoingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + this.connectedEdges = new LPort$CombineIter(this.incomingEdges, this.outgoingEdges); +} + +defineClass(11, 392, {3:1, 299:1, 11:1, 392:1, 94:1, 134:1}, LPort); +_.toString_0 = function toString_92(){ + var result, source, target; + result = new StringBuilder; + $append_11((result.string += 'p_' , result), $getDesignation_3(this)); + !!this.owner && $append_11($append_10((result.string += '[' , result), this.owner), ']'); + if (this.incomingEdges.array.length == 1 && this.outgoingEdges.array.length == 0 && castTo($get_11(this.incomingEdges, 0), 17).source != this) { + source = castTo($get_11(this.incomingEdges, 0), 17).source; + $append_11((result.string += ' << ' , result), $getDesignation_3(source)); + $append_11($append_10((result.string += '[' , result), source.owner), ']'); + } + if (this.incomingEdges.array.length == 0 && this.outgoingEdges.array.length == 1 && castTo($get_11(this.outgoingEdges, 0), 17).target != this) { + target = castTo($get_11(this.outgoingEdges, 0), 17).target; + $append_11((result.string += ' >> ' , result), $getDesignation_3(target)); + $append_11($append_10((result.string += '[' , result), target.owner), ']'); + } + return result.string; +} +; +_.connectedToExternalNodes = true; +_.explicitlySuppliedPortAnchor = false; +var EAST_PREDICATE, INPUT_PREDICATE, NORTH_PREDICATE, OUTPUT_PREDICATE, SOUTH_PREDICATE, WEST_PREDICATE; +var Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort', 11); +function LPort$1(this$0){ + this.this$01 = this$0; +} + +defineClass(397, 1, $intern_23, LPort$1); +_.forEach_0 = function forEach_27(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_69(){ + var edgesIter; + edgesIter = new ArrayList$1(this.this$01.incomingEdges); + return new LPort$1$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1', 397); +function LPort$1$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(1290, 1, $intern_6, LPort$1$1); +_.forEachRemaining = function forEachRemaining_47(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_37(){ + return castTo($next_7(this.val$edgesIter2), 17).source; +} +; +_.hasNext_0 = function hasNext_36(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_92(){ + $remove_13(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$1$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1/1', 1290); +function LPort$2(this$0){ + this.this$01 = this$0; +} + +defineClass(359, 1, $intern_23, LPort$2); +_.forEach_0 = function forEach_28(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_70(){ + var edgesIter; + return edgesIter = new ArrayList$1(this.this$01.outgoingEdges) , new LPort$2$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2', 359); +function LPort$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(762, 1, $intern_6, LPort$2$1); +_.forEachRemaining = function forEachRemaining_48(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_38(){ + return castTo($next_7(this.val$edgesIter2), 17).target; +} +; +_.hasNext_0 = function hasNext_37(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_93(){ + $remove_13(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$2$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2/1', 762); +function LPort$CombineIter(firstIterable, secondIterable){ + this.firstIterable = firstIterable; + this.secondIterable = secondIterable; +} + +defineClass(1283, 1, $intern_23, LPort$CombineIter); +_.forEach_0 = function forEach_29(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_71(){ + return new LPort$CombineIter$1(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter', 1283); +function $hasNext_6(this$static){ + return $hasNext_3(this$static.firstIterator) || $hasNext_3(this$static.secondIterator); +} + +function LPort$CombineIter$1(this$1){ + this.this$11 = this$1; + this.firstIterator = new ArrayList$1(this.this$11.firstIterable); + this.secondIterator = new ArrayList$1(this.this$11.secondIterable); +} + +defineClass(201, 1, $intern_6, LPort$CombineIter$1); +_.forEachRemaining = function forEachRemaining_49(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_94(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_38(){ + return $hasNext_6(this); +} +; +_.next_1 = function next_39(){ + return $hasNext_3(this.firstIterator)?$next_7(this.firstIterator):$next_7(this.secondIterator); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter/1', 201); +function $apply_14(arg0){ + return $clinit_LPort() , castTo(arg0, 11).incomingEdges.array.length != 0; +} + +function LPort$lambda$0$Type(){ +} + +defineClass(1285, 1, $intern_89, LPort$lambda$0$Type); +_.apply_1 = function apply_64(arg0){ + return $apply_14(arg0); +} +; +_.equals_0 = function equals_100(other){ + return this === other; +} +; +_.test_0 = function test_18(input_0){ + return $clinit_LPort() , castTo(input_0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$0$Type', 1285); +function $apply_15(arg0){ + return $clinit_LPort() , castTo(arg0, 11).outgoingEdges.array.length != 0; +} + +function LPort$lambda$1$Type(){ +} + +defineClass(1284, 1, $intern_89, LPort$lambda$1$Type); +_.apply_1 = function apply_65(arg0){ + return $apply_15(arg0); +} +; +_.equals_0 = function equals_101(other){ + return this === other; +} +; +_.test_0 = function test_19(input_0){ + return $clinit_LPort() , castTo(input_0, 11).outgoingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$1$Type', 1284); +function LPort$lambda$2$Type(){ +} + +defineClass(1286, 1, $intern_89, LPort$lambda$2$Type); +_.apply_1 = function apply_66(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +_.equals_0 = function equals_102(other){ + return this === other; +} +; +_.test_0 = function test_20(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$2$Type', 1286); +function LPort$lambda$3$Type(){ +} + +defineClass(1287, 1, $intern_89, LPort$lambda$3$Type); +_.apply_1 = function apply_67(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +_.equals_0 = function equals_103(other){ + return this === other; +} +; +_.test_0 = function test_21(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$3$Type', 1287); +function LPort$lambda$4$Type(){ +} + +defineClass(1288, 1, $intern_89, LPort$lambda$4$Type); +_.apply_1 = function apply_68(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +_.equals_0 = function equals_104(other){ + return this === other; +} +; +_.test_0 = function test_22(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$4$Type', 1288); +function LPort$lambda$5$Type(){ +} + +defineClass(1289, 1, $intern_89, LPort$lambda$5$Type); +_.apply_1 = function apply_69(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +_.equals_0 = function equals_105(other){ + return this === other; +} +; +_.test_0 = function test_23(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$5$Type', 1289); +function $getIndex_0(this$static){ + return $indexOf_3(this$static.owner.layers, this$static, 0); +} + +function Layer(graph){ + this.size_0 = new KVector; + this.nodes = new ArrayList; + this.owner = graph; +} + +defineClass(29, 299, {3:1, 20:1, 299:1, 29:1, 94:1, 134:1}, Layer); +_.forEach_0 = function forEach_30(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_72(){ + return new ArrayList$1(this.nodes); +} +; +_.toString_0 = function toString_93(){ + return 'L_' + $indexOf_3(this.owner.layers, this, 0) + $toString_2(this.nodes); +} +; +var Lorg_eclipse_elk_alg_layered_graph_Layer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'Layer', 29); +function $calculateMinimumGraphSize(elkgraph, lgraph){ + var configuredMinSize, graphAdapter, minSize, nodeAdapter, sizeConstraints; + if (!$getParent_2(elkgraph)) { + return; + } + sizeConstraints = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174); + maskUndefined($getProperty_0(elkgraph, PORT_CONSTRAINTS_0)) === maskUndefined(($clinit_PortConstraints() , UNDEFINED_4)) && $setProperty_1(elkgraph, PORT_CONSTRAINTS_0, FREE); + graphAdapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))); + nodeAdapter = new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph); + minSize = process(graphAdapter, nodeAdapter, false, true); + $add_5(sizeConstraints, ($clinit_SizeConstraint() , MINIMUM_SIZE)); + configuredMinSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + configuredMinSize.x_0 = $wnd.Math.max(minSize.x_0, configuredMinSize.x_0); + configuredMinSize.y_0 = $wnd.Math.max(minSize.y_0, configuredMinSize.y_0); +} + +function $calculateNetFlow_0(elkport){ + var elkgraph, incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; + elkgraph = $getParent_3(elkport); + insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + outputPortVote = 0; + inputPortVote = 0; + for (outgoingEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outgoingEdge$iterator.cursor != outgoingEdge$iterator.this$01_2.size_1();) { + outgoingEdge = castTo($doNext(outgoingEdge$iterator), 79); + isSelfLoop = $isSelfloop(outgoingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(outgoingEdge, INSIDE_SELF_LOOPS_YO))); + targetNode = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); + isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getParent_2(targetNode) == elkgraph || targetNode == elkgraph?++inputPortVote:++outputPortVote; + } + for (incomingEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); incomingEdge$iterator.cursor != incomingEdge$iterator.this$01_2.size_1();) { + incomingEdge = castTo($doNext(incomingEdge$iterator), 79); + isSelfLoop = $isSelfloop(incomingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(incomingEdge, INSIDE_SELF_LOOPS_YO))); + sourceNode = connectableShapeToNode(castTo($get_20((!incomingEdge.sources && (incomingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, incomingEdge, 4, 7)) , incomingEdge.sources), 0), 82)); + isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getParent_2(sourceNode) == elkgraph || sourceNode == elkgraph?++outputPortVote:++inputPortVote; + } + return outputPortVote - inputPortVote; +} + +function $checkEdgeValidity(edge){ + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0) { + throw toJs(new UnsupportedGraphException('Edges must have a source.')); + } + else if ((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + throw toJs(new UnsupportedGraphException('Edges must have a target.')); + } + else { + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (!(edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1))) { + throw toJs(new UnsupportedGraphException('Hyperedges are not supported.')); + } + } +} + +function $checkExternalPorts(elkgraph, graphProperties){ + var connectsToChild, elkedge, elkedge$iterator, elkport, enableSelfLoops, externalPortEdges, hasExternalPorts, hasHyperedges, isInsideSelfLoop, portIterator, portLabelPlacement; + enableSelfLoops = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + portLabelPlacement = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21); + hasExternalPorts = false; + hasHyperedges = false; + portIterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); + while (portIterator.cursor != portIterator.this$01_2.size_1() && (!hasExternalPorts || !hasHyperedges)) { + elkport = castTo($doNext(portIterator), 118); + externalPortEdges = 0; + for (elkedge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges), (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)]))); $hasNext_1(elkedge$iterator);) { + elkedge = castTo($next_0(elkedge$iterator), 79); + isInsideSelfLoop = enableSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + connectsToChild = $contains_11((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), elkport)?elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))):elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82))); + if (isInsideSelfLoop || connectsToChild) { + ++externalPortEdges; + if (externalPortEdges > 1) { + break; + } + } + } + externalPortEdges > 0?(hasExternalPorts = true):portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && (!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels).size_0 > 0 && (hasExternalPorts = true); + externalPortEdges > 1 && (hasHyperedges = true); + } + hasExternalPorts && graphProperties.add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + hasHyperedges && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); +} + +function $createLGraph(elkgraph){ + var all, lPadding, lgraph, nodeLabelpadding, nodePadding, root; + lgraph = new LGraph; + $copyProperties(lgraph, elkgraph); + maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION))) === maskUndefined(($clinit_Direction_0() , UNDEFINED_2)) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + if ($getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) == null) { + root = castTo(getRootContainer(elkgraph), 160); + $setProperty_0(lgraph, LABEL_MANAGER, throwClassCastExceptionUnlessNull(root.getProperty(LABEL_MANAGER))); + } + $setProperty_0(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0), elkgraph); + $setProperty_0(lgraph, GRAPH_PROPERTIES, (all = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + nodeLabelpadding = computeInsideNodeLabelPadding((!$getParent_2(elkgraph)?null:($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))) , $clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph)), RIGHT_6); + nodePadding = castTo($getProperty(lgraph, PADDING_1), 116); + lPadding = lgraph.padding; + $add_15(lPadding, nodePadding); + $add_15(lPadding, nodeLabelpadding); + return lgraph; +} + +function $ensureDefinedPortSide(lgraph, elkport){ + var layoutDirection, netFlow, portConstraints, portSide; + layoutDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); + portConstraints = castTo($getProperty(lgraph, PORT_CONSTRAINTS_0), 98); + if (portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4) { + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(elkport, layoutDirection); + portSide == UNDEFINED_5 && (portSide = fromDirection(layoutDirection)); + } + } + else { + netFlow = $calculateNetFlow_0(elkport); + netFlow > 0?(portSide = fromDirection(layoutDirection)):(portSide = $opposed(fromDirection(layoutDirection))); + } + $setProperty_1(elkport, PORT_SIDE, portSide); +} + +function $findCoordinateSystemOrigin(this$static, elkedge, topLevelElkGraph, topLevelLGraph){ + var lgraph, lnode, origin_0, source, target; + source = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); + target = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); + if ($getParent_2(source) == $getParent_2(target)) { + return null; + } + if (isDescendant_0(target, source)) { + return null; + } + origin_0 = $getContainingNode(elkedge); + if (origin_0 == topLevelElkGraph) { + return topLevelLGraph; + } + else { + lnode = castTo($get_10(this$static.nodeAndPortMap, origin_0), 10); + if (lnode) { + lgraph = lnode.nestedGraph; + if (lgraph) { + return lgraph; + } + } + } + return null; +} + +function $hasInsideSelfLoops(elknode){ + var edge, edge$iterator; + if ($booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + if ($isSelfloop(edge)) { + if ($booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO)))) { + return true; + } + } + } + } + return false; +} + +function $importFlatGraph(this$static, elkgraph, lgraph){ + var child, child$iterator, connectsSiblings, connectsToGraph, elkedge, elkedge$iterator, elkedge$iterator0, enableInsideSelfLoops, index_0, isInsideSelfLoop, isToBeLaidOut, source, target; + index_0 = 0; + for (child$iterator = new AbstractEList$EIterator((!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + if (!$booleanValue(castToBoolean($getProperty_0(child, ($clinit_LayeredOptions() , NO_LAYOUT))))) { + if ((maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(child, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)))) { + $setProperty_1(child, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); + ++index_0; + } + $transformNode(this$static, child, lgraph); + } + } + index_0 = 0; + for (elkedge$iterator0 = new AbstractEList$EIterator((!elkgraph.containedEdges && (elkgraph.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkgraph, 12, 3)) , elkgraph.containedEdges)); elkedge$iterator0.cursor != elkedge$iterator0.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator0), 79); + if (maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { + $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); + ++index_0; + } + source = getSourceNode(elkedge); + target = getTargetNode_0(elkedge); + enableInsideSelfLoops = $booleanValue(castToBoolean($getProperty_0(source, INSIDE_SELF_LOOPS_ACTIVATE))); + isToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))); + isInsideSelfLoop = enableInsideSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + connectsSiblings = $getParent_2(source) == elkgraph && $getParent_2(source) == $getParent_2(target); + connectsToGraph = ($getParent_2(source) == elkgraph && target == elkgraph) ^ ($getParent_2(target) == elkgraph && source == elkgraph); + isToBeLaidOut && !isInsideSelfLoop && (connectsToGraph || connectsSiblings) && $transformEdge(this$static, elkedge, elkgraph, lgraph); + } + if ($getParent_2(elkgraph)) { + for (elkedge$iterator = new AbstractEList$EIterator($getContainedEdges($getParent_2(elkgraph))); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 79); + source = getSourceNode(elkedge); + if (source == elkgraph && $isSelfloop(elkedge)) { + isInsideSelfLoop = $booleanValue(castToBoolean($getProperty_0(source, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + isInsideSelfLoop && $transformEdge(this$static, elkedge, elkgraph, lgraph); + } + } + } +} + +function $importGraph_1(this$static, elkgraph){ + var elkport, elkport$iterator, graphProperties, topLevelGraph; + topLevelGraph = $createLGraph(elkgraph); + $forEach_3(new StreamImpl(null, (!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , new Spliterators$IteratorSpliterator(elkgraph.ports, 16))), new ElkGraphImporter$lambda$0$Type(topLevelGraph)); + graphProperties = castTo($getProperty(topLevelGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + $checkExternalPorts(elkgraph, graphProperties); + if (graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + for (elkport$iterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { + elkport = castTo($doNext(elkport$iterator), 118); + $transformExternalPort(this$static, elkgraph, topLevelGraph, elkport); + } + } + castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).size_1() != 0 && $calculateMinimumGraphSize(elkgraph, topLevelGraph); + $booleanValue(castToBoolean($getProperty(topLevelGraph, PARTITIONING_ACTIVATE))) && graphProperties.add_2(PARTITIONS); + $hasProperty(topLevelGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(topLevelGraph, SPACING_BASE_VALUE_0)))), topLevelGraph); + maskUndefined($getProperty_0(elkgraph, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$importHierarchicalGraph(this$static, elkgraph, topLevelGraph):$importFlatGraph(this$static, elkgraph, topLevelGraph); + return topLevelGraph; +} + +function $importHierarchicalGraph(this$static, elkgraph, lgraph){ + var elkChildGraphNode, elkChildGraphNode$iterator, elkGraphNode, elkGraphQueue, elkedge, elkedge$iterator, elknode, finalNestedGraph, hasChildren, hasHierarchyHandlingEnabled, hasInsideSelfLoops, index_0, isInsideSelfLoop, isNodeToBeLaidOut, ledge, lnode, nestedGraph, parentElkGraph, parentGraphDirection, parentLGraph, parentLNode, partOfSameLayoutRun, sourceNode, targetNode, usesElkLayered; + elkGraphQueue = new LinkedList; + parentGraphDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); + index_0 = 0; + $addAll(elkGraphQueue, (!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); + while (elkGraphQueue.size_0 != 0) { + elknode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); + (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elknode, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); + isNodeToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elknode, NO_LAYOUT))); + if (isNodeToBeLaidOut) { + hasChildren = (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0; + hasInsideSelfLoops = $hasInsideSelfLoops(elknode); + hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elknode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + usesElkLayered = !$hasProperty_0(elknode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elknode, ALGORITHM)), 'org.eclipse.elk.layered'); + nestedGraph = null; + if (usesElkLayered && hasHierarchyHandlingEnabled && (hasChildren || hasInsideSelfLoops)) { + nestedGraph = $createLGraph(elknode); + $setProperty_0(nestedGraph, DIRECTION, parentGraphDirection); + $hasProperty(nestedGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(nestedGraph, SPACING_BASE_VALUE_0)))), nestedGraph); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0) { + finalNestedGraph = nestedGraph; + $forEach_3(new StreamImpl(null, (!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , new Spliterators$IteratorSpliterator(elknode.ports, 16))), new ElkGraphImporter$lambda$1$Type(finalNestedGraph)); + $calculateMinimumGraphSize(elknode, nestedGraph); + } + } + parentLGraph = lgraph; + parentLNode = castTo($get_10(this$static.nodeAndPortMap, $getParent_2(elknode)), 10); + !!parentLNode && (parentLGraph = parentLNode.nestedGraph); + lnode = $transformNode(this$static, elknode, parentLGraph); + if (nestedGraph) { + lnode.nestedGraph = nestedGraph; + nestedGraph.parentNode = lnode; + $addAll(elkGraphQueue, (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children)); + } + } + } + index_0 = 0; + $addNode_0(elkGraphQueue, elkgraph, elkGraphQueue.tail.prev, elkGraphQueue.tail); + while (elkGraphQueue.size_0 != 0) { + elkGraphNode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); + for (elkedge$iterator = new AbstractEList$EIterator((!elkGraphNode.containedEdges && (elkGraphNode.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkGraphNode, 12, 3)) , elkGraphNode.containedEdges)); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 79); + $checkEdgeValidity(elkedge); + (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); + sourceNode = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); + targetNode = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); + if ($booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(sourceNode, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(targetNode, NO_LAYOUT)))) { + continue; + } + isInsideSelfLoop = $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(sourceNode, INSIDE_SELF_LOOPS_ACTIVATE))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + parentElkGraph = elkGraphNode; + isInsideSelfLoop || isDescendant_0(targetNode, sourceNode)?(parentElkGraph = sourceNode):isDescendant_0(sourceNode, targetNode) && (parentElkGraph = targetNode); + parentLGraph = lgraph; + parentLNode = castTo($get_10(this$static.nodeAndPortMap, parentElkGraph), 10); + !!parentLNode && (parentLGraph = parentLNode.nestedGraph); + ledge = $transformEdge(this$static, elkedge, parentElkGraph, parentLGraph); + $setProperty_0(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN), $findCoordinateSystemOrigin(this$static, elkedge, elkgraph, lgraph)); + } + hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elkGraphNode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (hasHierarchyHandlingEnabled) { + for (elkChildGraphNode$iterator = new AbstractEList$EIterator((!elkGraphNode.children && (elkGraphNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkGraphNode, 10, 11)) , elkGraphNode.children)); elkChildGraphNode$iterator.cursor != elkChildGraphNode$iterator.this$01_2.size_1();) { + elkChildGraphNode = castTo($doNext(elkChildGraphNode$iterator), 33); + usesElkLayered = !$hasProperty_0(elkChildGraphNode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elkChildGraphNode, ALGORITHM)), 'org.eclipse.elk.layered'); + partOfSameLayoutRun = maskUndefined($getProperty_0(elkChildGraphNode, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN); + usesElkLayered && partOfSameLayoutRun && ($addNode_0(elkGraphQueue, elkChildGraphNode, elkGraphQueue.tail.prev, elkGraphQueue.tail) , true); + } + } + } +} + +function $isConnectedToExternalNodes(elkport){ + var inEdge, inEdge$iterator, outEdge, outEdge$iterator, parent_0, sourceNode, targetNode; + parent_0 = $getParent_3(elkport); + for (outEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outEdge$iterator.cursor != outEdge$iterator.this$01_2.size_1();) { + outEdge = castTo($doNext(outEdge$iterator), 79); + targetNode = connectableShapeToNode(castTo($get_20((!outEdge.targets && (outEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outEdge, 5, 8)) , outEdge.targets), 0), 82)); + if (!isDescendant_0(targetNode, parent_0)) { + return true; + } + } + for (inEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); inEdge$iterator.cursor != inEdge$iterator.this$01_2.size_1();) { + inEdge = castTo($doNext(inEdge$iterator), 79); + sourceNode = connectableShapeToNode(castTo($get_20((!inEdge.sources && (inEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, inEdge, 4, 7)) , inEdge.sources), 0), 82)); + if (!isDescendant_0(sourceNode, parent_0)) { + return true; + } + } + return false; +} + +function $transformEdge(this$static, elkedge, elkparent, lgraph){ + var bendPointsRequired, crossMinStrat, edgeSection, elkSourceNode, elkSourceShape, elkTargetNode, elkTargetShape, elklabel, elklabel$iterator, graphProperties, importedBendpoints, ledge, llabel, nodePlaceStrat, originalBendpoints, point, point$iterator, portType, sourceElem, sourceLNode, sourceLPort, sourcePoint, targetElem, targetLNode, targetLPort, targetPoint; + $checkEdgeValidity(elkedge); + elkSourceShape = castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82); + elkTargetShape = castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82); + elkSourceNode = connectableShapeToNode(elkSourceShape); + elkTargetNode = connectableShapeToNode(elkTargetShape); + edgeSection = (!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections).size_0 == 0?null:castTo($get_20((!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections), 0), 202); + sourceLNode = castTo($get_10(this$static.nodeAndPortMap, elkSourceNode), 10); + targetLNode = castTo($get_10(this$static.nodeAndPortMap, elkTargetNode), 10); + sourceLPort = null; + targetLPort = null; + if (instanceOf(elkSourceShape, 186)) { + sourceElem = castTo($get_10(this$static.nodeAndPortMap, elkSourceShape), 299); + if (instanceOf(sourceElem, 11)) { + sourceLPort = castTo(sourceElem, 11); + } + else if (instanceOf(sourceElem, 10)) { + sourceLNode = castTo(sourceElem, 10); + sourceLPort = castTo($get_11(sourceLNode.ports, 0), 11); + } + } + if (instanceOf(elkTargetShape, 186)) { + targetElem = castTo($get_10(this$static.nodeAndPortMap, elkTargetShape), 299); + if (instanceOf(targetElem, 11)) { + targetLPort = castTo(targetElem, 11); + } + else if (instanceOf(targetElem, 10)) { + targetLNode = castTo(targetElem, 10); + targetLPort = castTo($get_11(targetLNode.ports, 0), 11); + } + } + if (!sourceLNode || !targetLNode) { + throw toJs(new UnsupportedGraphException('The source or the target of edge ' + elkedge + ' could not be found. ' + 'This usually happens when an edge connects a node laid out by ELK Layered to a node in ' + 'another level of hierarchy laid out by either another instance of ELK Layered or another ' + 'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling ' + 'option to INCLUDE_CHILDREN.')); + } + ledge = new LEdge; + $copyProperties(ledge, elkedge); + $setProperty_0(ledge, ($clinit_InternalProperties_1() , ORIGIN_0), elkedge); + $setProperty_0(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); + graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + sourceLNode == targetLNode && graphProperties.add_2(($clinit_GraphProperties() , SELF_LOOPS)); + if (!sourceLPort) { + portType = ($clinit_PortType() , OUTPUT); + sourcePoint = null; + if (!!edgeSection && $isSideFixed(castTo($getProperty(sourceLNode, PORT_CONSTRAINTS_0), 98))) { + sourcePoint = new KVector_1(edgeSection.startX, edgeSection.startY); + toAbsolute(sourcePoint, $getContainingNode(elkedge)); + toRelative(sourcePoint, elkparent); + if (isDescendant_0(elkTargetNode, elkSourceNode)) { + portType = INPUT; + $add_19(sourcePoint, sourceLNode.pos); + } + } + sourceLPort = createPort(sourceLNode, sourcePoint, portType, lgraph); + } + if (!targetLPort) { + portType = ($clinit_PortType() , INPUT); + targetPoint = null; + if (!!edgeSection && $isSideFixed(castTo($getProperty(targetLNode, PORT_CONSTRAINTS_0), 98))) { + targetPoint = new KVector_1(edgeSection.endX, edgeSection.endY); + toAbsolute(targetPoint, $getContainingNode(elkedge)); + toRelative(targetPoint, elkparent); + } + targetLPort = createPort(targetLNode, targetPoint, portType, $getGraph(targetLNode)); + } + $setSource_0(ledge, sourceLPort); + $setTarget_0(ledge, targetLPort); + (sourceLPort.incomingEdges.array.length > 1 || sourceLPort.outgoingEdges.array.length > 1 || targetLPort.incomingEdges.array.length > 1 || targetLPort.outgoingEdges.array.length > 1) && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); + for (elklabel$iterator = new AbstractEList$EIterator((!elkedge.labels && (elkedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkedge, 1, 7)) , elkedge.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { + llabel = $transformLabel(elklabel); + $add_3(ledge.labels, llabel); + switch (castTo($getProperty(llabel, EDGE_LABELS_PLACEMENT), 272).ordinal) { + case 1: + case 2: + graphProperties.add_2(($clinit_GraphProperties() , END_LABELS)); + break; + case 0: + graphProperties.add_2(($clinit_GraphProperties() , CENTER_LABELS)); + $setProperty_0(llabel, EDGE_LABELS_PLACEMENT, ($clinit_EdgeLabelPlacement() , CENTER_5)); + } + } + } + crossMinStrat = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 314); + nodePlaceStrat = castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 315); + bendPointsRequired = crossMinStrat == ($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1) || nodePlaceStrat == ($clinit_NodePlacementStrategy() , INTERACTIVE_4); + if (!!edgeSection && (!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints).size_0 != 0 && bendPointsRequired) { + originalBendpoints = createVectorChain(edgeSection); + importedBendpoints = new KVectorChain; + for (point$iterator = $listIterator_2(originalBendpoints, 0); point$iterator.currentNode != point$iterator.this$01.tail;) { + point = castTo($next_10(point$iterator), 8); + $add_7(importedBendpoints, new KVector_2(point)); + } + $setProperty_0(ledge, ORIGINAL_BENDPOINTS, importedBendpoints); + } + return ledge; +} + +function $transformExternalPort(this$static, elkgraph, lgraph, elkport){ + var dummy, dummyPort, elklabel, elklabel$iterator, elkportPosition, graphSize, insidePart, insidePortLabels, llabel, netFlow, portConstraints, portOffset, portSide; + elkportPosition = new KVector_1(elkport.x_0 + elkport.width_0 / 2, elkport.y_0 + elkport.height / 2); + netFlow = $calculateNetFlow_0(elkport); + portConstraints = castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); + if (!$containsKey_8($getAllProperties_0(elkport), PORT_BORDER_OFFSET)) { + elkport.x_0 == 0 && elkport.y_0 == 0?(portOffset = 0):(portOffset = calcPortOffset_0(elkport, portSide)); + $setProperty_1(elkport, PORT_BORDER_OFFSET, portOffset); + } + graphSize = new KVector_1(elkgraph.width_0, elkgraph.height); + dummy = createExternalPortDummy(elkport, portConstraints, portSide, netFlow, graphSize, elkportPosition, new KVector_1(elkport.width_0, elkport.height), castTo($getProperty(lgraph, DIRECTION), 103), lgraph); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + $setConnectedToExternalNodes(dummyPort, $isConnectedToExternalNodes(elkport)); + $setProperty_0(dummy, PORT_LABELS_PLACEMENT_1, ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0))); + insidePortLabels = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 174).contains(INSIDE_0); + for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { + llabel = $transformLabel(elklabel); + $add_3(dummyPort.labels, llabel); + if (!insidePortLabels) { + insidePart = 0; + isFixed(castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(new KVector_1(elklabel.x_0, elklabel.y_0), new KVector_1(elklabel.width_0, elklabel.height), new KVector_1(elkport.width_0, elkport.height), 0, portSide)); + switch (portSide.ordinal) { + case 2: + case 4: + llabel.size_0.x_0 = insidePart; + break; + case 1: + case 3: + llabel.size_0.y_0 = insidePart; + } + } + } + } + $setProperty_0(dummy, SPACING_LABEL_PORT_HORIZONTAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_HORIZONTAL))); + $setProperty_0(dummy, SPACING_LABEL_PORT_VERTICAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_VERTICAL))); + $setProperty_0(dummy, SPACING_LABEL_LABEL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_LABEL))); + $add_3(lgraph.layerlessNodes, dummy); + $put_6(this$static.nodeAndPortMap, elkport, dummy); +} + +function $transformLabel(elklabel){ + var newLabel; + newLabel = new LLabel_0(elklabel.text_0); + $copyProperties(newLabel, elklabel); + $setProperty_0(newLabel, ($clinit_InternalProperties_1() , ORIGIN_0), elklabel); + newLabel.size_0.x_0 = elklabel.width_0; + newLabel.size_0.y_0 = elklabel.height; + newLabel.pos.x_0 = elklabel.x_0; + newLabel.pos.y_0 = elklabel.y_0; + return newLabel; +} + +function $transformNode(this$static, elknode, lgraph){ + var direction, elklabel, elklabel$iterator, elkport, elkport$iterator, graphProperties, lnode, portConstraints; + lnode = new LNode(lgraph); + $copyProperties(lnode, elknode); + $setProperty_0(lnode, ($clinit_InternalProperties_1() , ORIGIN_0), elknode); + lnode.size_0.x_0 = elknode.width_0; + lnode.size_0.y_0 = elknode.height; + lnode.pos.x_0 = elknode.x_0; + lnode.pos.y_0 = elknode.y_0; + $add_3(lgraph.layerlessNodes, lnode); + $put_6(this$static.nodeAndPortMap, elknode, lnode); + ((!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) && $setProperty_0(lnode, COMPOUND_NODE, ($clinit_Boolean() , true)); + graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + portConstraints = castTo($getProperty(lnode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4)?$setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE):portConstraints != FREE && graphProperties.add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + direction = castTo($getProperty(lgraph, DIRECTION), 103); + for (elkport$iterator = new AbstractEList$EIterator((!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , elknode.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { + elkport = castTo($doNext(elkport$iterator), 118); + $booleanValue(castToBoolean($getProperty_0(elkport, NO_LAYOUT))) || $transformPort(this$static, elkport, lnode, graphProperties, direction, portConstraints); + } + for (elklabel$iterator = new AbstractEList$EIterator((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lnode.labels, $transformLabel(elklabel)); + } + $booleanValue(castToBoolean($getProperty(lnode, COMMENT_BOX))) && graphProperties.add_2(($clinit_GraphProperties() , COMMENTS)); + if ($booleanValue(castToBoolean($getProperty(lnode, HYPERNODE)))) { + graphProperties.add_2(($clinit_GraphProperties() , HYPERNODES)); + graphProperties.add_2(HYPEREDGES); + $setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE); + } + return lnode; +} + +function $transformPort(this$static, elkport, parentLNode, graphProperties, layoutDirection, portConstraints){ + var connectionsToDescendants, elklabel, elklabel$iterator, lport, portPos, portSize; + lport = new LPort; + $copyProperties(lport, elkport); + $setSide(lport, castTo($getProperty_0(elkport, ($clinit_LayeredOptions() , PORT_SIDE)), 61)); + $setProperty_0(lport, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + $setNode(lport, parentLNode); + portSize = lport.size_0; + portSize.x_0 = elkport.width_0; + portSize.y_0 = elkport.height; + portPos = lport.pos; + portPos.x_0 = elkport.x_0; + portPos.y_0 = elkport.y_0; + $put_6(this$static.nodeAndPortMap, elkport, lport); + connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$2$Type), new ElkGraphImporter$0methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$4$Type(elkport)); + connectionsToDescendants || (connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , new Spliterators$IteratorSpliterator(elkport.incomingEdges, 16))), new ElkGraphImporter$lambda$5$Type), new ElkGraphImporter$1methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$7$Type(elkport))); + connectionsToDescendants || (connectionsToDescendants = $anyMatch(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$8$Type)); + $setProperty_0(lport, INSIDE_CONNECTIONS, ($clinit_Boolean() , connectionsToDescendants?true:false)); + initializePort(lport, portConstraints, layoutDirection, castTo($getProperty_0(elkport, PORT_ANCHOR), 8)); + for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lport.labels, $transformLabel(elklabel)); + } + switch (layoutDirection.ordinal) { + case 2: + case 1: + (lport.side == ($clinit_PortSide() , NORTH_3) || lport.side == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + break; + case 4: + case 3: + (lport.side == ($clinit_PortSide() , EAST_2) || lport.side == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + } + return lport; +} + +function ElkGraphImporter(){ + this.nodeAndPortMap = new HashMap; +} + +function lambda$4_3(elkport_0, targetNode_1){ + return isDescendant_0(targetNode_1, $getParent_3(elkport_0)); +} + +function lambda$7_0(elkport_0, sourceNode_1){ + return isDescendant_0(sourceNode_1, $getParent_3(elkport_0)); +} + +function lambda$8(edge_0){ + return $isSelfloop(edge_0) && $booleanValue(castToBoolean($getProperty_0(edge_0, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_YO)))); +} + +defineClass(1342, 1, {}, ElkGraphImporter); +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter', 1342); +function ElkGraphImporter$0methodref$connectableShapeToNode$Type(){ +} + +defineClass(1346, 1, {}, ElkGraphImporter$0methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_70(arg0){ + return connectableShapeToNode(castTo(arg0, 82)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$0methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/0methodref$connectableShapeToNode$Type', 1346); +function ElkGraphImporter$1methodref$connectableShapeToNode$Type(){ +} + +defineClass(1349, 1, {}, ElkGraphImporter$1methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_71(arg0){ + return connectableShapeToNode(castTo(arg0, 82)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$1methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/1methodref$connectableShapeToNode$Type', 1349); +function ElkGraphImporter$lambda$0$Type(topLevelGraph_1){ + this.topLevelGraph_1 = topLevelGraph_1; +} + +defineClass(1343, 1, $intern_19, ElkGraphImporter$lambda$0$Type); +_.accept = function accept_62(arg0){ + $ensureDefinedPortSide(this.topLevelGraph_1, castTo(arg0, 118)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$0$Type', 1343); +function ElkGraphImporter$lambda$1$Type(finalNestedGraph_1){ + this.finalNestedGraph_1 = finalNestedGraph_1; +} + +defineClass(1344, 1, $intern_19, ElkGraphImporter$lambda$1$Type); +_.accept = function accept_63(arg0){ + $ensureDefinedPortSide(this.finalNestedGraph_1, castTo(arg0, 118)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$1$Type', 1344); +function ElkGraphImporter$lambda$2$Type(){ +} + +defineClass(1345, 1, {}, ElkGraphImporter$lambda$2$Type); +_.apply_0 = function apply_72(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getTargets(castTo(arg0, 79)), 16)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$2$Type', 1345); +function ElkGraphImporter$lambda$4$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1347, 1, $intern_39, ElkGraphImporter$lambda$4$Type); +_.test_0 = function test_24(arg0){ + return lambda$4_3(this.elkport_0, castTo(arg0, 33)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$4$Type', 1347); +function ElkGraphImporter$lambda$5$Type(){ +} + +defineClass(1348, 1, {}, ElkGraphImporter$lambda$5$Type); +_.apply_0 = function apply_73(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getSources(castTo(arg0, 79)), 16)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$5$Type', 1348); +function ElkGraphImporter$lambda$7$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1350, 1, $intern_39, ElkGraphImporter$lambda$7$Type); +_.test_0 = function test_25(arg0){ + return lambda$7_0(this.elkport_0, castTo(arg0, 33)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$7$Type', 1350); +function ElkGraphImporter$lambda$8$Type(){ +} + +defineClass(1351, 1, $intern_39, ElkGraphImporter$lambda$8$Type); +_.test_0 = function test_26(arg0){ + return lambda$8(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$8$Type', 1351); +function $clinit_ElkGraphLayoutTransferrer(){ + $clinit_ElkGraphLayoutTransferrer = emptyMethod; + ZERO_OFFSET = new KVector; +} + +function $applyEdgeLayout(ledge, routing, offset){ + var bendPoints, edgeOffset, elkedge, elkedgeSection, elklabel, junctionPoints, llabel, llabel$iterator, sourcePoint, sourcePort, targetPoint; + elkedge = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , ORIGIN_0)), 79); + if (!elkedge) { + return; + } + bendPoints = ledge.bendPoints; + edgeOffset = new KVector_2(offset); + $add_19(edgeOffset, $calculateHierarchicalOffset(ledge)); + if (isDescendant(ledge.target.owner, ledge.source.owner)) { + sourcePort = ledge.source; + sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.pos, sourcePort.anchor])); + $sub_0(sourcePoint, offset); + } + else { + sourcePoint = $getAbsoluteAnchor(ledge.source); + } + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + targetPoint = $getAbsoluteAnchor(ledge.target); + $getProperty(ledge, TARGET_OFFSET) != null && $add_19(targetPoint, castTo($getProperty(ledge, TARGET_OFFSET), 8)); + $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); + $offset_2(bendPoints, edgeOffset); + elkedgeSection = firstEdgeSection(elkedge, true, true); + $setIncomingShape(elkedgeSection, castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); + $setOutgoingShape(elkedgeSection, castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); + applyVectorChain(bendPoints, elkedgeSection); + for (llabel$iterator = new ArrayList$1(ledge.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator), 70); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $setWidth_0(elklabel, llabel.size_0.x_0); + $setHeight_0(elklabel, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0 + edgeOffset.x_0, llabel.pos.y_0 + edgeOffset.y_0); + $setProperty_1(elklabel, ($clinit_LabelDummySwitcher() , INCLUDE_LABEL), castToBoolean($getProperty(llabel, INCLUDE_LABEL))); + } + junctionPoints = castTo($getProperty(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (junctionPoints) { + $offset_2(junctionPoints, edgeOffset); + $setProperty_1(elkedge, JUNCTION_POINTS, junctionPoints); + } + else { + $setProperty_1(elkedge, JUNCTION_POINTS, null); + } + routing == ($clinit_EdgeRouting() , SPLINES)?$setProperty_1(elkedge, EDGE_ROUTING, SPLINES):$setProperty_1(elkedge, EDGE_ROUTING, null); +} + +function $applyLayout_2(this$static, lgraph){ + var edgeList, elkport, graphOrigin, lPadding, ledge, ledge$iterator, lnode, lnode$iterator, lnode$iterator0, nestedGraph, offset, padding, parentElkNode, parentLNode, port, port$iterator, portPosition, routing, sizeOptions; + graphOrigin = $getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (!instanceOf(graphOrigin, 239)) { + return; + } + parentElkNode = castTo(graphOrigin, 33); + parentLNode = lgraph.parentNode; + offset = new KVector_2(lgraph.offset); + lPadding = lgraph.padding; + offset.x_0 += lPadding.left; + offset.y_0 += lPadding.top_0; + sizeOptions = castTo($getProperty_0(parentElkNode, ($clinit_LayeredOptions() , NODE_SIZE_OPTIONS_1)), 174); + if ($containsEnum(sizeOptions, ($clinit_SizeOptions() , COMPUTE_PADDING))) { + padding = castTo($getProperty_0(parentElkNode, PADDING_1), 116); + $setBottom(padding, lPadding.bottom); + $setTop(padding, lPadding.top_0); + $setLeft(padding, lPadding.left); + $setRight(padding, lPadding.right); + } + edgeList = new ArrayList; + for (lnode$iterator0 = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator0.i < lnode$iterator0.this$01.array.length;) { + lnode = castTo($next_7(lnode$iterator0), 10); + if (instanceOf($getProperty(lnode, ORIGIN_0), 239)) { + $applyNodeLayout(lnode, offset); + } + else if (instanceOf($getProperty(lnode, ORIGIN_0), 186) && !parentLNode) { + elkport = castTo($getProperty(lnode, ORIGIN_0), 118); + portPosition = getExternalPortPosition(lgraph, lnode, elkport.width_0, elkport.height); + $setLocation_1(elkport, portPosition.x_0, portPosition.y_0); + } + for (port$iterator = new ArrayList$1(lnode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$0$Type(lnode)), new ElkGraphLayoutTransferrer$lambda$1$Type(edgeList)); + } + } + if (parentLNode) { + for (port$iterator = new ArrayList$1(parentLNode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode)), new ElkGraphLayoutTransferrer$lambda$3$Type(edgeList)); + } + } + routing = castTo($getProperty_0(parentElkNode, EDGE_ROUTING), 218); + for (ledge$iterator = new ArrayList$1(edgeList); ledge$iterator.i < ledge$iterator.this$01.array.length;) { + ledge = castTo($next_7(ledge$iterator), 17); + $applyEdgeLayout(ledge, routing, offset); + } + $applyParentNodeLayout(lgraph); + for (lnode$iterator = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { + lnode = castTo($next_7(lnode$iterator), 10); + nestedGraph = lnode.nestedGraph; + !!nestedGraph && $applyLayout_2(this$static, nestedGraph); + } +} + +function $applyNodeLayout(lnode, offset){ + var elklabel, elknode, elkport, layerID, llabel, llabel$iterator, llabel$iterator0, lport, lport$iterator, lport$iterator0, nf, nodeHasLabelPlacement, nodeID, origin_0; + elknode = castTo($getProperty(lnode, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); + nodeID = castTo($getProperty(lnode, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_POSITION_ID_0)), 19).value_0; + layerID = castTo($getProperty(lnode, LAYERING_LAYER_ID_0), 19).value_0; + $setProperty_1(elknode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(nodeID)); + $setProperty_1(elknode, LAYERING_LAYER_ID_0, valueOf_4(layerID)); + $setX_2(elknode, lnode.pos.x_0 + offset.x_0); + $setY_3(elknode, lnode.pos.y_0 + offset.y_0); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0 || !!lnode.nestedGraph || maskUndefined($getProperty($getGraph(lnode), NODE_PLACEMENT_STRATEGY_0)) === maskUndefined(($clinit_NodePlacementStrategy() , NETWORK_SIMPLEX_0)) && $isFlexibleSizeWhereSpacePermits(($clinit_NodeFlexibility() , (!lnode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lnode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lnode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lnode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf))) { + $setWidth_0(elknode, lnode.size_0.x_0); + $setHeight_0(elknode, lnode.size_0.y_0); + } + for (lport$iterator0 = new ArrayList$1(lnode.ports); lport$iterator0.i < lport$iterator0.this$01.array.length;) { + lport = castTo($next_7(lport$iterator0), 11); + origin_0 = $getProperty(lport, ORIGIN_0); + if (instanceOf(origin_0, 186)) { + elkport = castTo(origin_0, 118); + $setLocation_1(elkport, lport.pos.x_0, lport.pos.y_0); + $setProperty_1(elkport, PORT_SIDE, lport.side); + } + } + nodeHasLabelPlacement = castTo($getProperty(lnode, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0; + for (llabel$iterator0 = new ArrayList$1(lnode.labels); llabel$iterator0.i < llabel$iterator0.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator0), 70); + if (nodeHasLabelPlacement || castTo($getProperty(llabel, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0) { + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $setDimensions_0(elklabel, llabel.size_0.x_0, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); + } + } + if (!isFixed(castTo($getProperty(lnode, PORT_LABELS_PLACEMENT_1), 21))) { + for (lport$iterator = new ArrayList$1(lnode.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { + lport = castTo($next_7(lport$iterator), 11); + for (llabel$iterator = new ArrayList$1(lport.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator), 70); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $setWidth_0(elklabel, llabel.size_0.x_0); + $setHeight_0(elklabel, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); + } + } + } +} + +function $applyParentNodeLayout(lgraph){ + var actualGraphSize, all, elknode, graphProps, sizeConstraintsIncludedPortLabels; + elknode = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); + sizeConstraintsIncludedPortLabels = castTo($getProperty_0(elknode, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS)); + if (!lgraph.parentNode) { + graphProps = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + if (graphProps.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + $setProperty_1(elknode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); + resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, false, true); + } + else { + $booleanValue(castToBoolean($getProperty_0(elknode, NODE_SIZE_FIXED_GRAPH_SIZE))) || resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, true, true); + } + } + sizeConstraintsIncludedPortLabels?$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, of_1(PORT_LABELS)):$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); +} + +function $calculateHierarchicalOffset(ledge){ + var currentGraph, representingNode, result, targetCoordinateSystem; + targetCoordinateSystem = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN)), 37); + if (targetCoordinateSystem) { + result = new KVector; + currentGraph = $getGraph(ledge.source.owner); + while (currentGraph != targetCoordinateSystem) { + representingNode = currentGraph.parentNode; + currentGraph = $getGraph(representingNode); + $add_18($add_19($add_19(result, representingNode.pos), currentGraph.offset), currentGraph.padding.left, currentGraph.padding.top_0); + } + return result; + } + return ZERO_OFFSET; +} + +function ElkGraphLayoutTransferrer(){ + $clinit_ElkGraphLayoutTransferrer(); +} + +function lambda$0_23(lnode_0, edge_1){ + $clinit_ElkGraphLayoutTransferrer(); + return !isDescendant(edge_1.target.owner, lnode_0); +} + +function lambda$2_3(parentLNode_0, edge_1){ + $clinit_ElkGraphLayoutTransferrer(); + return isDescendant(edge_1.target.owner, parentLNode_0); +} + +defineClass(1278, 1, {}, ElkGraphLayoutTransferrer); +var ZERO_OFFSET; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer', 1278); +function ElkGraphLayoutTransferrer$lambda$0$Type(lnode_0){ + this.lnode_0 = lnode_0; +} + +defineClass(1279, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$0$Type); +_.test_0 = function test_27(arg0){ + return lambda$0_23(this.lnode_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$0$Type', 1279); +function ElkGraphLayoutTransferrer$lambda$1$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1280, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$1$Type); +_.accept = function accept_64(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$1$Type', 1280); +function ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode_0){ + this.parentLNode_0 = parentLNode_0; +} + +defineClass(1281, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$2$Type); +_.test_0 = function test_28(arg0){ + return lambda$2_3(this.parentLNode_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$2$Type', 1281); +function ElkGraphLayoutTransferrer$lambda$3$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1282, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$3$Type); +_.accept = function accept_65(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$3$Type', 1282); +function getIdentifier(element){ + var container, id_0, parentId; + id_0 = element.getIdentifier(); + if (id_0) { + container = element.eContainer_0(); + if (instanceOf(container, 160)) { + parentId = getIdentifier(castTo(container, 160)); + if (parentId != null) { + return parentId + '.' + id_0; + } + } + return id_0; + } + return null; +} + +function getOriginIdentifier(element){ + var origin_0; + origin_0 = $getProperty(element, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 160)) { + return getIdentifier(castTo(origin_0, 160)); + } + return null; +} + +function $process_2(layeredGraph, monitor){ + $begin(monitor, 'Node margin calculation', 1); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new CommentNodeMarginCalculator$lambda$0$Type), new CommentNodeMarginCalculator$lambda$1$Type); + $done_0(monitor); +} + +function $processComments(node){ + var bottomBoxes, bottomWidth, commentBox, commentBox$iterator, commentCommentSpacing, commentNodeSpacing, margin, maxCommentWidth, maxHeight, protrusion, topBoxes, topWidth; + margin = node.margin; + topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); + if (!topBoxes && !bottomBoxes) { + return; + } + commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); + commentNodeSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, SPACING_COMMENT_NODE))); + topWidth = 0; + if (topBoxes) { + maxHeight = 0; + for (commentBox$iterator = topBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { + commentBox = castTo(commentBox$iterator.next_1(), 10); + maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); + topWidth += commentBox.size_0.x_0; + } + topWidth += commentCommentSpacing * (topBoxes.size_1() - 1); + margin.top_0 += maxHeight + commentNodeSpacing; + } + bottomWidth = 0; + if (bottomBoxes) { + maxHeight = 0; + for (commentBox$iterator = bottomBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { + commentBox = castTo(commentBox$iterator.next_1(), 10); + maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); + bottomWidth += commentBox.size_0.x_0; + } + bottomWidth += commentCommentSpacing * (bottomBoxes.size_1() - 1); + margin.bottom += maxHeight + commentNodeSpacing; + } + maxCommentWidth = $wnd.Math.max(topWidth, bottomWidth); + if (maxCommentWidth > node.size_0.x_0) { + protrusion = (maxCommentWidth - node.size_0.x_0) / 2; + margin.left = $wnd.Math.max(margin.left, protrusion); + margin.right = $wnd.Math.max(margin.right, protrusion); + } +} + +function CommentNodeMarginCalculator(){ +} + +defineClass(1485, 1, $intern_105, CommentNodeMarginCalculator); +_.process = function process_1(layeredGraph, monitor){ + $process_2(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator', 1485); +function CommentNodeMarginCalculator$lambda$0$Type(){ +} + +defineClass(1486, 1, {}, CommentNodeMarginCalculator$lambda$0$Type); +_.apply_0 = function apply_74(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$0$Type', 1486); +function CommentNodeMarginCalculator$lambda$1$Type(){ +} + +defineClass(1487, 1, $intern_19, CommentNodeMarginCalculator$lambda$1$Type); +_.accept = function accept_66(arg0){ + $processComments(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$1$Type', 1487); +function $getBoxPort(commentBox){ + var edge, edge$iterator, edge$iterator0, nodePort, port, port$iterator; + nodePort = castTo($getProperty(commentBox, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + for (port$iterator = new ArrayList$1(commentBox.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + $setTarget_0(edge, nodePort); + return port; + } + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $setSource_0(edge, nodePort); + return port; + } + } + return null; +} + +function $process_3(layeredGraph, monitor){ + var bottomBoxes, boxes, layer, layer$iterator, node, node$iterator, topBoxes; + $begin(monitor, 'Comment post-processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + boxes = new ArrayList; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); + if (!!topBoxes || !!bottomBoxes) { + $process_4(node, topBoxes, bottomBoxes); + !!topBoxes && $addAll_2(boxes, topBoxes); + !!bottomBoxes && $addAll_2(boxes, bottomBoxes); + } + } + $addAll_2(layer.nodes, boxes); + } + $done_0(monitor); +} + +function $process_4(node, topBoxes, bottomBoxes){ + var anchorInc, anchorX, baseLine, box, box$iterator, box$iterator0, boxPort, boxesWidth, commentCommentSpacing, margin, maxHeight, nodePort, nodePos, nodeSize, x_0; + nodePos = node.pos; + nodeSize = node.size_0; + margin = node.margin; + commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); + if (topBoxes) { + boxesWidth = commentCommentSpacing * (topBoxes.size_1() - 1); + maxHeight = 0; + for (box$iterator0 = topBoxes.iterator_0(); box$iterator0.hasNext_0();) { + box = castTo(box$iterator0.next_1(), 10); + boxesWidth += box.size_0.x_0; + maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); + } + x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; + baseLine = nodePos.y_0 - margin.top_0 + maxHeight; + anchorInc = nodeSize.x_0 / (topBoxes.size_1() + 1); + anchorX = anchorInc; + for (box$iterator = topBoxes.iterator_0(); box$iterator.hasNext_0();) { + box = castTo(box$iterator.next_1(), 10); + box.pos.x_0 = x_0; + box.pos.y_0 = baseLine - box.size_0.y_0; + x_0 += box.size_0.x_0 + commentCommentSpacing; + boxPort = $getBoxPort(box); + boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; + boxPort.pos.y_0 = box.size_0.y_0; + nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { + nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; + nodePort.pos.y_0 = 0; + $setNode(nodePort, node); + } + anchorX += anchorInc; + } + } + if (bottomBoxes) { + boxesWidth = commentCommentSpacing * (bottomBoxes.size_1() - 1); + maxHeight = 0; + for (box$iterator0 = bottomBoxes.iterator_0(); box$iterator0.hasNext_0();) { + box = castTo(box$iterator0.next_1(), 10); + boxesWidth += box.size_0.x_0; + maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); + } + x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; + baseLine = nodePos.y_0 + nodeSize.y_0 + margin.bottom - maxHeight; + anchorInc = nodeSize.x_0 / (bottomBoxes.size_1() + 1); + anchorX = anchorInc; + for (box$iterator = bottomBoxes.iterator_0(); box$iterator.hasNext_0();) { + box = castTo(box$iterator.next_1(), 10); + box.pos.x_0 = x_0; + box.pos.y_0 = baseLine; + x_0 += box.size_0.x_0 + commentCommentSpacing; + boxPort = $getBoxPort(box); + boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; + boxPort.pos.y_0 = 0; + nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { + nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; + nodePort.pos.y_0 = nodeSize.y_0; + $setNode(nodePort, node); + } + anchorX += anchorInc; + } + } +} + +function CommentPostprocessor(){ +} + +defineClass(1488, 1, $intern_105, CommentPostprocessor); +_.process = function process_2(layeredGraph, monitor){ + $process_3(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPostprocessor', 1488); +function $process_5(layeredGraph, monitor){ + var commentBoxCount, edge, edgeCount, inedge, inedge$iterator, node, nodeIter, oppositePort, outedge, outedge$iterator, port, port$iterator, port$iterator0, re, re$iterator, revEdges; + $begin(monitor, 'Comment pre-processing', 1); + commentBoxCount = 0; + nodeIter = new ArrayList$1(layeredGraph.layerlessNodes); + while (nodeIter.i < nodeIter.this$01.array.length) { + node = castTo($next_7(nodeIter), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + ++commentBoxCount; + edgeCount = 0; + edge = null; + oppositePort = null; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + edgeCount += port.incomingEdges.array.length + port.outgoingEdges.array.length; + if (port.incomingEdges.array.length == 1) { + edge = castTo($get_11(port.incomingEdges, 0), 17); + oppositePort = edge.source; + } + if (port.outgoingEdges.array.length == 1) { + edge = castTo($get_11(port.outgoingEdges, 0), 17); + oppositePort = edge.target; + } + } + if (edgeCount == 1 && oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 1 && !$booleanValue(castToBoolean($getProperty(oppositePort.owner, COMMENT_BOX)))) { + $processBox(node, edge, oppositePort, oppositePort.owner); + $remove_13(nodeIter); + } + else { + revEdges = new ArrayList; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (outedge$iterator = new ArrayList$1(port.outgoingEdges); outedge$iterator.i < outedge$iterator.this$01.array.length;) { + outedge = castTo($next_7(outedge$iterator), 17); + outedge.target.outgoingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = outedge , true); + } + for (inedge$iterator = new ArrayList$1(port.incomingEdges); inedge$iterator.i < inedge$iterator.this$01.array.length;) { + inedge = castTo($next_7(inedge$iterator), 17); + inedge.source.incomingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = inedge , true); + } + } + for (re$iterator = new ArrayList$1(revEdges); re$iterator.i < re$iterator.this$01.array.length;) { + re = castTo($next_7(re$iterator), 17); + $reverse_0(re, true); + } + } + } + } + monitor.recordLogs && $log_2(monitor, 'Found ' + commentBoxCount + ' comment boxes'); + $done_0(monitor); +} + +function $processBox(box, edge, oppositePort, realNode){ + var bottomBoxes, boxList, hasNorth, hasSouth, label_0, label$iterator, labelPos, onlyBottom, onlyTop, port1, port1$iterator, port2, port2$iterator, topBoxes, topFirst; + onlyTop = false; + onlyBottom = false; + if ($isSideFixed(castTo($getProperty(realNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + hasNorth = false; + hasSouth = false; + portLoop: for (port1$iterator = new ArrayList$1(realNode.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_7(port1$iterator), 11); + for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { + port2 = castTo($next_0(port2$iterator), 11); + if (!$booleanValue(castToBoolean($getProperty(port2.owner, COMMENT_BOX)))) { + if (port1.side == ($clinit_PortSide() , NORTH_3)) { + hasNorth = true; + break portLoop; + } + if (port1.side == SOUTH_2) { + hasSouth = true; + break portLoop; + } + } + } + } + onlyTop = hasSouth && !hasNorth; + onlyBottom = hasNorth && !hasSouth; + } + if (!onlyTop && !onlyBottom && realNode.labels.array.length != 0) { + labelPos = 0; + for (label$iterator = new ArrayList$1(realNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelPos += label_0.pos.y_0 + label_0.size_0.y_0 / 2; + } + labelPos /= realNode.labels.array.length; + topFirst = labelPos >= realNode.size_0.y_0 / 2; + } + else { + topFirst = !onlyBottom; + } + if (topFirst) { + topBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + if (!topBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, TOP_COMMENTS, boxList); + } + else if (onlyTop) { + boxList = topBoxes; + } + else { + bottomBoxes = castTo($getProperty(realNode, BOTTOM_COMMENTS), 15); + if (!bottomBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); + } + else { + topBoxes.size_1() <= bottomBoxes.size_1()?(boxList = topBoxes):(boxList = bottomBoxes); + } + } + } + else { + bottomBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , BOTTOM_COMMENTS)), 15); + if (!bottomBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); + } + else if (onlyBottom) { + boxList = bottomBoxes; + } + else { + topBoxes = castTo($getProperty(realNode, TOP_COMMENTS), 15); + if (!topBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, TOP_COMMENTS, boxList); + } + else { + bottomBoxes.size_1() <= topBoxes.size_1()?(boxList = bottomBoxes):(boxList = topBoxes); + } + } + } + boxList.add_2(box); + $setProperty_0(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT), oppositePort); + if (edge.target == oppositePort) { + $setTarget_0(edge, null); + oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); + $removeHierarchicalPortDummyNode(oppositePort); + } + else { + $setSource_0(edge, null); + oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); + } + $reset_0(edge.bendPoints); +} + +function $removeHierarchicalPortDummyNode(oppositePort){ + var dummy, layer; + dummy = castTo($getProperty(oppositePort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (dummy) { + layer = dummy.layer; + $remove_12(layer.nodes, dummy); + layer.nodes.array.length == 0 && $remove_12($getGraph(dummy).layers, layer); + } +} + +function CommentPreprocessor(){ +} + +defineClass(1489, 1, $intern_105, CommentPreprocessor); +_.process = function process_3(layeredGraph, monitor){ + $process_5(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPreprocessor', 1489); +function $process_6(graph, progressMonitor){ + var currentNode, currentNode$iterator, layer, layer$iterator, layerIndex, posIndex; + $begin(progressMonitor, 'Constraints Postprocessor', 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + posIndex = 0; + for (currentNode$iterator = new ArrayList$1(layer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_7(currentNode$iterator), 10); + if (currentNode.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + $setProperty_0(currentNode, ($clinit_LayeredOptions() , LAYERING_LAYER_ID_0), valueOf_4(layerIndex)); + $setProperty_0(currentNode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(posIndex)); + ++posIndex; + } + } + ++layerIndex; + } + $done_0(progressMonitor); +} + +function ConstraintsPostprocessor(){ +} + +defineClass(1490, 1, $intern_105, ConstraintsPostprocessor); +_.process = function process_4(graph, progressMonitor){ + $process_6(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ConstraintsPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ConstraintsPostprocessor', 1490); +function $canReverseIncomingEdge(targetNodeLayerConstraint, edge){ + var sourceLayerConstraint, sourceNode; + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { + return false; + } + sourceNode = edge.source.owner; + if (targetNodeLayerConstraint == ($clinit_LayerConstraint() , FIRST)) { + if (sourceNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + return false; + } + } + sourceLayerConstraint = castTo($getProperty(sourceNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (sourceLayerConstraint == FIRST_SEPARATE_0) { + return false; + } + return true; +} + +function $canReverseOutgoingEdge(sourceNodeLayerConstraint, edge){ + var targetLayerConstraint, targetNode; + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { + return false; + } + targetNode = edge.target.owner; + if (sourceNodeLayerConstraint == ($clinit_LayerConstraint() , LAST)) { + if (targetNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + return false; + } + } + targetLayerConstraint = castTo($getProperty(targetNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (targetLayerConstraint == LAST_SEPARATE_0) { + return false; + } + return true; +} + +function $handleInnerNodes(remainingNodes){ + var allPortsReversed, e, e$iterator, e$iterator0, edgeConstraint, layerConstraint, lc, node, node$iterator, port, port$iterator; + for (node$iterator = new ArrayList$1(remainingNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + edgeConstraint = null; + switch (layerConstraint.ordinal) { + case 1: + case 2: + edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); + break; + case 3: + case 4: + edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); + } + if (edgeConstraint) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); + } + else { + if ($isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98)) && node.ports.array.length != 0) { + allPortsReversed = true; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (!(port.side == ($clinit_PortSide() , EAST_2) && port.incomingEdges.array.length - port.outgoingEdges.array.length > 0 || port.side == WEST_2 && port.incomingEdges.array.length - port.outgoingEdges.array.length < 0)) { + allPortsReversed = false; + break; + } + for (e$iterator0 = new ArrayList$1(port.outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + lc = castTo($getProperty(e.target.owner, LAYERING_LAYER_CONSTRAINT_0), 163); + if (lc == ($clinit_LayerConstraint() , LAST) || lc == LAST_SEPARATE_0) { + allPortsReversed = false; + break; + } + } + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + lc = castTo($getProperty(e.source.owner, LAYERING_LAYER_CONSTRAINT_0), 163); + if (lc == ($clinit_LayerConstraint() , FIRST) || lc == FIRST_SEPARATE_0) { + allPortsReversed = false; + break; + } + } + } + allPortsReversed && $reverseEdges(node, layerConstraint, ($clinit_PortType() , UNDEFINED_0)); + } + } + } +} + +function $handleOuterNodes(layeredGraph){ + var edgeConstraint, layerConstraint, node, node$iterator, remainingNodes; + remainingNodes = new ArrayList_0(layeredGraph.layerlessNodes.array.length); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + edgeConstraint = null; + switch (layerConstraint.ordinal) { + case 1: + case 2: + edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); + break; + case 3: + case 4: + edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); + } + if (edgeConstraint) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); + } + else { + remainingNodes.array[remainingNodes.array.length] = node; + } + } + return remainingNodes; +} + +function $process_7(layeredGraph, monitor){ + var remainingNodes; + $begin(monitor, 'Edge and layer constraint edge reversal', 1); + remainingNodes = $handleOuterNodes(layeredGraph); + $handleInnerNodes(remainingNodes); + $done_0(monitor); +} + +function $reverseEdges(node, nodeLayerConstraint, targetPortType){ + var edge, edge$array, edge$index, edge$max, incoming, outgoing, port, port$array, port$index, port$max; + for (port$array = toPortArray(node.ports) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + if (targetPortType == ($clinit_PortType() , INPUT) || targetPortType == UNDEFINED_0) { + outgoing = toEdgeArray(port.outgoingEdges); + for (edge$array = outgoing , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $canReverseOutgoingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); + } + } + if (targetPortType == OUTPUT || targetPortType == UNDEFINED_0) { + incoming = toEdgeArray(port.incomingEdges); + for (edge$array = incoming , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $canReverseIncomingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); + } + } + } +} + +function EdgeAndLayerConstraintEdgeReverser(){ +} + +defineClass(1491, 1, $intern_105, EdgeAndLayerConstraintEdgeReverser); +_.process = function process_5(layeredGraph, monitor){ + $process_7(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EdgeAndLayerConstraintEdgeReverser_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EdgeAndLayerConstraintEdgeReverser', 1491); +function $process_8(layeredGraph, monitor){ + $begin(monitor, 'End label post-processing', 1); + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPostprocessor$lambda$0$Type), new EndLabelPostprocessor$lambda$1$Type), new EndLabelPostprocessor$lambda$2$Type); + $done_0(monitor); +} + +function $processNode_1(node){ + var endLabelCells, labelCell, labelCell$iterator, labelCellRect, nodePos; + endLabelCells = castTo($getProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0)), 83); + nodePos = node.pos; + for (labelCell$iterator = endLabelCells.values_0().iterator_0(); labelCell$iterator.hasNext_0();) { + labelCell = castTo(labelCell$iterator.next_1(), 306); + labelCellRect = labelCell.cellRectangle; + labelCellRect.x_0 += nodePos.x_0; + labelCellRect.y_0 += nodePos.y_0; + labelCell.horizontalLayoutMode?$applyHorizontalModeLabelLayout(labelCell):$applyVerticalModeLabelLayout(labelCell); + } + $setProperty_0(node, END_LABELS_0, null); +} + +function EndLabelPostprocessor(){ +} + +function lambda$1_8(node_0){ + return node_0.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $hasProperty(node_0, ($clinit_InternalProperties_1() , END_LABELS_0)); +} + +defineClass(1492, 1, $intern_105, EndLabelPostprocessor); +_.process = function process_6(layeredGraph, monitor){ + $process_8(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor', 1492); +function EndLabelPostprocessor$lambda$0$Type(){ +} + +defineClass(1493, 1, {}, EndLabelPostprocessor$lambda$0$Type); +_.apply_0 = function apply_75(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$0$Type', 1493); +function EndLabelPostprocessor$lambda$1$Type(){ +} + +defineClass(1494, 1, $intern_39, EndLabelPostprocessor$lambda$1$Type); +_.test_0 = function test_29(arg0){ + return lambda$1_8(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$1$Type', 1494); +function EndLabelPostprocessor$lambda$2$Type(){ +} + +defineClass(1495, 1, $intern_19, EndLabelPostprocessor$lambda$2$Type); +_.accept = function accept_67(arg0){ + $processNode_1(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$2$Type', 1495); +function $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing){ + var nodeMargin, nodeSize; + nodeSize = node.size_0; + nodeMargin = node.margin; + switch (portSide.ordinal) { + case 1: + return -nodeMargin.top_0 - edgeLabelSpacing; + case 3: + return nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; + case 2: + return nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; + case 4: + return -nodeMargin.left - edgeLabelSpacing; + default:return 0; + } +} + +function $createConfiguredLabelCell(labels, labelLabelSpacing, verticalLayout){ + var label_0, label$iterator, labelCell, labelCellRect, padding, padding0; + if (!labels || labels.array.length == 0) { + return null; + } + labelCell = new LabelCell_1(labelLabelSpacing, !verticalLayout); + for (label$iterator = new ArrayList$1(labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $addLabel(labelCell, ($clinit_LGraphAdapters() , new LGraphAdapters$LLabelAdapter(label_0))); + } + labelCellRect = labelCell.cellRectangle; + labelCellRect.height = (padding0 = labelCell.padding , labelCell.minimumContentAreaSize.y_0 + padding0.top_0 + padding0.bottom); + labelCellRect.width_0 = (padding = labelCell.padding , labelCell.minimumContentAreaSize.x_0 + padding.left + padding.right); + return labelCell; +} + +function $lambda$1(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5, node_3){ + $processNode_2(node_3, edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5); +} + +function $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout){ + var all, port, port$iterator, portSidesWithLabels; + portSidesWithLabels = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (portLabelCells[port.id_0]) { + $placeLabels_0(port, portLabelCells[port.id_0], edgeLabelSpacing); + $add_5(portSidesWithLabels, port.side); + } + } + if (verticalLayout) { + $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , EAST_2), 2 * labelLabelSpacing, edgeLabelSpacing); + $removeLabelOverlaps(node, portLabelCells, WEST_2, 2 * labelLabelSpacing, edgeLabelSpacing); + } + else { + $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , NORTH_3), 2 * labelLabelSpacing, edgeLabelSpacing); + $removeLabelOverlaps(node, portLabelCells, SOUTH_2, 2 * labelLabelSpacing, edgeLabelSpacing); + } +} + +function $placeLabels_0(port, labelCell, edgeLabelSpacing){ + var labelCellRect, nodeMargin, nodeSize, portAnchor, portPos; + labelCellRect = labelCell.cellRectangle; + nodeSize = port.owner.size_0; + nodeMargin = port.owner.margin; + portPos = port.pos; + portAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [portPos, port.anchor])); + switch (port.side.ordinal) { + case 1: + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = -nodeMargin.top_0 - edgeLabelSpacing - labelCellRect.height; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; + } + else { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 2: + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; + } + else { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 3: + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; + } + else { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 4: + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = -nodeMargin.left - edgeLabelSpacing - labelCellRect.width_0; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; + } + else { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + } +} + +function $portSideToOverlapRemovalDirection(portSide){ + switch (portSide.ordinal) { + case 1: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP; + case 3: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN; + case 2: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , RIGHT_0; + case 4: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , LEFT_0; + default:return null; + } +} + +function $process_9(layeredGraph, monitor){ + var edgeLabelSpacing, labelLabelSpacing, verticalLayout; + $begin(monitor, 'End label pre-processing', 1); + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + verticalLayout = $isVertical(castTo($getProperty(layeredGraph, DIRECTION), 103)); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPreprocessor$lambda$0$Type), new EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing, labelLabelSpacing, verticalLayout)); + $done_0(monitor); +} + +function $processNode_2(node, edgeLabelSpacing, labelLabelSpacing, verticalLayout){ + var index_0, port, portCount, portIndex, portLabelCells, portToLabelCellMap; + portCount = node.ports.array.length; + portLabelCells = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit, $intern_93, 306, portCount, 0, 1); + for (portIndex = 0; portIndex < portCount; portIndex++) { + port = castTo($get_11(node.ports, portIndex), 11); + port.id_0 = portIndex; + portLabelCells[portIndex] = $createConfiguredLabelCell(gatherLabels(port), labelLabelSpacing, verticalLayout); + } + $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout); + portToLabelCellMap = new HashMap; + for (index_0 = 0; index_0 < portLabelCells.length; index_0++) { + !!portLabelCells[index_0] && $put_6(portToLabelCellMap, castTo($get_11(node.ports, index_0), 11), portLabelCells[index_0]); + } + if (portToLabelCellMap.hashCodeMap.size_0 + portToLabelCellMap.stringMap.size_0 != 0) { + $setProperty_0(node, ($clinit_InternalProperties_1() , END_LABELS_0), portToLabelCellMap); + $updateNodeMargins(node, portLabelCells); + } +} + +function $removeLabelOverlaps(node, portLabelCells, portSide, labelLabelSpacing, edgeLabelSpacing){ + var labelCellRect, overlapRemover, port, port$iterator; + overlapRemover = $withStartCoordinate($withGap(createForDirection($portSideToOverlapRemovalDirection(portSide)), labelLabelSpacing), $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing)); + for (port$iterator = $getPorts_1(node, portSide).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if (portLabelCells[port.id_0]) { + labelCellRect = portLabelCells[port.id_0].cellRectangle; + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(labelCellRect, $importRectangle(overlapRemover, labelCellRect))); + } + } + $removeOverlaps_0(overlapRemover); +} + +function $updateNodeMargins(node, labelCells){ + var labelCell, labelCell$array, labelCell$index, labelCell$max, nodeMargin, nodeMarginRectangle, nodeSize; + nodeMargin = node.margin; + nodeSize = node.size_0; + nodeMarginRectangle = new ElkRectangle_0(-nodeMargin.left, -nodeMargin.top_0, nodeMargin.left + nodeSize.x_0 + nodeMargin.right, nodeMargin.top_0 + nodeSize.y_0 + nodeMargin.bottom); + for (labelCell$array = labelCells , labelCell$index = 0 , labelCell$max = labelCell$array.length; labelCell$index < labelCell$max; ++labelCell$index) { + labelCell = labelCell$array[labelCell$index]; + !!labelCell && $union(nodeMarginRectangle, labelCell.cellRectangle); + } + nodeMargin.left = -nodeMarginRectangle.x_0; + nodeMargin.top_0 = -nodeMarginRectangle.y_0; + nodeMargin.right = nodeMarginRectangle.width_0 - nodeMargin.left - nodeSize.x_0; + nodeMargin.bottom = nodeMarginRectangle.height - nodeMargin.top_0 - nodeSize.y_0; +} + +function EndLabelPreprocessor(){ +} + +function gatherLabels(port){ + var dummyNode, dummyPort, dummyPort$iterator, labels, maxEdgeThickness; + labels = new ArrayList; + maxEdgeThickness = gatherLabels_0(port, labels); + dummyNode = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (dummyNode) { + for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { + dummyPort = castTo($next_7(dummyPort$iterator), 11); + maskUndefined($getProperty(dummyPort, ORIGIN_0)) === maskUndefined(port) && (maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, gatherLabels_0(dummyPort, labels))); + } + } + labels.array.length == 0 || $setProperty_0(port, MAX_EDGE_THICKNESS, maxEdgeThickness); + return maxEdgeThickness != -1?labels:null; +} + +function gatherLabels_0(port, targetList){ + var incidentEdge, incidentEdge$iterator, label_0, label$iterator, labels, maxEdgeThickness; + maxEdgeThickness = -1; + labels = new LinkedList; + for (incidentEdge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(incidentEdge$iterator.firstIterator) || $hasNext_3(incidentEdge$iterator.secondIterator);) { + incidentEdge = castTo($hasNext_3(incidentEdge$iterator.firstIterator)?$next_7(incidentEdge$iterator.firstIterator):$next_7(incidentEdge$iterator.secondIterator), 17); + maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, $doubleValue(castToDouble($getProperty(incidentEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0))))); + incidentEdge.source == port?$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$2$Type), new EndLabelPreprocessor$lambda$3$Type(labels)):$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$4$Type), new EndLabelPreprocessor$lambda$5$Type(labels)); + for (label$iterator = $listIterator_2(labels, 0); label$iterator.currentNode != label$iterator.this$01.tail;) { + label_0 = castTo($next_10(label$iterator), 70); + $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, incidentEdge); + } + $addAll_2(targetList, labels); + $reset_0(labels); + } + return maxEdgeThickness; +} + +defineClass(1496, 1, $intern_105, EndLabelPreprocessor); +_.process = function process_7(layeredGraph, monitor){ + $process_9(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor', 1496); +function EndLabelPreprocessor$lambda$0$Type(){ +} + +defineClass(1497, 1, {}, EndLabelPreprocessor$lambda$0$Type); +_.apply_0 = function apply_76(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$0$Type', 1497); +function EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5){ + this.edgeLabelSpacing_1 = edgeLabelSpacing_1; + this.labelLabelSpacing_3 = labelLabelSpacing_3; + this.verticalLayout_5 = verticalLayout_5; +} + +defineClass(1498, 1, $intern_19, EndLabelPreprocessor$lambda$1$Type); +_.accept = function accept_68(arg0){ + $lambda$1(this.edgeLabelSpacing_1, this.labelLabelSpacing_3, this.verticalLayout_5, castTo(arg0, 10)); +} +; +_.edgeLabelSpacing_1 = 0; +_.labelLabelSpacing_3 = 0; +_.verticalLayout_5 = false; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$1$Type', 1498); +function EndLabelPreprocessor$lambda$2$Type(){ +} + +defineClass(1499, 1, $intern_39, EndLabelPreprocessor$lambda$2$Type); +_.test_0 = function test_30(arg0){ + return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$2$Type', 1499); +function EndLabelPreprocessor$lambda$3$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1500, 1, $intern_19, EndLabelPreprocessor$lambda$3$Type); +_.accept = function accept_69(arg0){ + $add_7(this.labels_0, castTo(arg0, 70)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$3$Type', 1500); +function EndLabelPreprocessor$lambda$4$Type(){ +} + +defineClass(1501, 1, $intern_39, EndLabelPreprocessor$lambda$4$Type); +_.test_0 = function test_31(arg0){ + return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$4$Type', 1501); +function EndLabelPreprocessor$lambda$5$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1502, 1, $intern_19, EndLabelPreprocessor$lambda$5$Type); +_.accept = function accept_70(arg0){ + $add_7(this.labels_0, castTo(arg0, 70)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$5$Type', 1502); +function $clinit_EndLabelSorter(){ + $clinit_EndLabelSorter = emptyMethod; + LABEL_GROUP_COMPARATOR = new EndLabelSorter$1; +} + +function $createLabelGroups(portLabelCell){ + var edge, edgeToGroupMap, label_0, label$iterator; + edgeToGroupMap = new HashMap; + for (label$iterator = new ArrayList$1(portLabelCell.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + edge = castTo(label_0.getProperty(($clinit_InternalProperties_1() , END_LABEL_EDGE)), 17); + !!$getEntry_0(edgeToGroupMap.hashCodeMap, edge) || $put_6(edgeToGroupMap, edge, new EndLabelSorter$LabelGroup(edge)); + $add_3(castTo(getEntryValueOrNull($getEntry_0(edgeToGroupMap.hashCodeMap, edge)), 456).labels, label_0); + } + return new ArrayList_1(new AbstractMap$2(edgeToGroupMap)); +} + +function $initialize_2(lGraph){ + var layer, layer$iterator, nextElementID, node, node$iterator, port, port$iterator; + nextElementID = 0; + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nextElementID++; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.id_0 = nextElementID++; + } + } + } +} + +function $needsSorting(port){ + var edgesWithEndLabels, headLabels, inEdge, inEdge$iterator, outEdge, outEdge$iterator, tailLabels; + edgesWithEndLabels = 0; + for (inEdge$iterator = new ArrayList$1(port.incomingEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { + inEdge = castTo($next_7(inEdge$iterator), 17); + headLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(inEdge.labels, 16)), new EndLabelSorter$lambda$3$Type); + headLabels && ++edgesWithEndLabels; + } + for (outEdge$iterator = new ArrayList$1(port.outgoingEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { + outEdge = castTo($next_7(outEdge$iterator), 17); + tailLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(outEdge.labels, 16)), new EndLabelSorter$lambda$4$Type); + tailLabels && ++edgesWithEndLabels; + } + return edgesWithEndLabels >= 2; +} + +function $process_10(layeredGraph, monitor){ + $begin(monitor, 'Sort end labels', 1); + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelSorter$lambda$0$Type), new EndLabelSorter$lambda$1$Type), new EndLabelSorter$lambda$2$Type); + $done_0(monitor); +} + +function $processNode_3(node){ + var initializeMethodCalled, labelCellMap, port, port$iterator; + initializeMethodCalled = false; + if ($hasProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0))) { + labelCellMap = castTo($getProperty(node, END_LABELS_0), 83); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if ($needsSorting(port)) { + if (!initializeMethodCalled) { + $initialize_2($getGraph(node)); + initializeMethodCalled = true; + } + $sort_1(castTo(labelCellMap.get_3(port), 306)); + } + } + } +} + +function $sort_1(portLabelCell){ + var group, group$iterator, labelGroups, portLabelCellLabels; + labelGroups = $createLabelGroups(portLabelCell); + $sort(labelGroups, LABEL_GROUP_COMPARATOR); + portLabelCellLabels = portLabelCell.labels; + portLabelCellLabels.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (group$iterator = new ArrayList$1(labelGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 456); + $addAll_2(portLabelCellLabels, group.labels); + } +} + +function EndLabelSorter(){ + $clinit_EndLabelSorter(); +} + +defineClass(1551, 1, $intern_105, EndLabelSorter); +_.process = function process_8(layeredGraph, monitor){ + $process_10(castTo(layeredGraph, 37), monitor); +} +; +var LABEL_GROUP_COMPARATOR; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter', 1551); +function $compare_11(group1, group2){ + var sourcePortDiff, targetNodeDiff; + sourcePortDiff = compare_5(group1.edge.source.id_0, group2.edge.source.id_0); + if (sourcePortDiff != 0) { + return sourcePortDiff; + } + targetNodeDiff = compare_5(group1.edge.target.owner.id_0, group2.edge.target.owner.id_0); + if (targetNodeDiff != 0) { + return targetNodeDiff; + } + return compare_5(group2.edge.target.id_0, group1.edge.target.id_0); +} + +function EndLabelSorter$1(){ +} + +defineClass(1552, 1, $intern_88, EndLabelSorter$1); +_.compare_1 = function compare_42(group1, group2){ + return $compare_11(castTo(group1, 456), castTo(group2, 456)); +} +; +_.equals_0 = function equals_106(other){ + return this === other; +} +; +_.reversed = function reversed_34(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/1', 1552); +function EndLabelSorter$LabelGroup(edge){ + this.labels = new ArrayList; + $addAll_2(this.labels, this.labels); + this.edge = edge; +} + +defineClass(456, 1, {456:1}, EndLabelSorter$LabelGroup); +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$LabelGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/LabelGroup', 456); +function EndLabelSorter$lambda$0$Type(){ +} + +defineClass(1553, 1, {}, EndLabelSorter$lambda$0$Type); +_.apply_0 = function apply_77(arg0){ + return $clinit_EndLabelSorter() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$0$Type', 1553); +function EndLabelSorter$lambda$1$Type(){ +} + +defineClass(1554, 1, $intern_39, EndLabelSorter$lambda$1$Type); +_.test_0 = function test_32(arg0){ + return $clinit_EndLabelSorter() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$1$Type', 1554); +function EndLabelSorter$lambda$2$Type(){ +} + +defineClass(1555, 1, $intern_19, EndLabelSorter$lambda$2$Type); +_.accept = function accept_71(arg0){ + $processNode_3(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$2$Type', 1555); +function EndLabelSorter$lambda$3$Type(){ +} + +defineClass(1556, 1, $intern_39, EndLabelSorter$lambda$3$Type); +_.test_0 = function test_33(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$3$Type', 1556); +function EndLabelSorter$lambda$4$Type(){ +} + +defineClass(1557, 1, $intern_39, EndLabelSorter$lambda$4$Type); +_.test_0 = function test_34(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$4$Type', 1557); +function $absMin(d1, d2){ + return $wnd.Math.abs(d1) < $wnd.Math.abs(d2)?d1:d2; +} + +function $calculateBezierBendPoints(this$static, edgeChain, survivingEdge){ + var addMidPoint, allCP, currentBendPoints, currentEdge, edge, edgeIterator, halfway, lastCP, northSouthCP, nt, nubSpline, sourcePort, targetPort, y_0, first, second, v, v2, straightenBeginning, iter, last, secondLast, straightenEnding; + if (edgeChain.isEmpty()) { + return; + } + allCP = new KVectorChain; + edge = survivingEdge?survivingEdge:castTo(edgeChain.get_0(0), 17); + sourcePort = edge.source; + $clinit_SplineEdgeRouter(); + nt = sourcePort.owner.type_0; + if (!(nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT)) { + throw toJs(new IllegalArgumentException_0('The target node of the edge must be a normal node or a northSouthPort.')); + } + $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor]))); + if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(sourcePort.side)) { + y_0 = $doubleValue(castToDouble($getProperty(sourcePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); + northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).x_0, y_0); + $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); + } + lastCP = null; + addMidPoint = false; + edgeIterator = edgeChain.iterator_0(); + while (edgeIterator.hasNext_0()) { + currentEdge = castTo(edgeIterator.next_1(), 17); + currentBendPoints = currentEdge.bendPoints; + if (currentBendPoints.size_0 != 0) { + if (addMidPoint) { + halfway = $scale($add_19(lastCP, (checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.header.next_0.value_0, 8))), 0.5); + $addNode_0(allCP, halfway, allCP.tail.prev, allCP.tail); + addMidPoint = false; + } + else { + addMidPoint = true; + } + lastCP = $clone_0((checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.tail.prev.value_0, 8))); + $addAll(allCP, currentBendPoints); + $reset_0(currentBendPoints); + } + } + targetPort = edge.target; + if (SIDES_NORTH_SOUTH.contains(targetPort.side)) { + y_0 = $doubleValue(castToDouble($getProperty(targetPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); + northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).x_0, y_0); + $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); + } + $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor]))); + this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , CONSERVATIVE) && (first = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.header.next_0.value_0, 8)) , second = castTo($get_7(allCP, 1), 8) , v = new KVector_0(portSideToDirection(sourcePort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(second.x_0, second.y_0), first) , straightenBeginning = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenBeginning, first) , iter = $listIterator_2(allCP, 1) , $add_8(iter, straightenBeginning) , last = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.tail.prev.value_0, 8)) , secondLast = castTo($get_7(allCP, allCP.size_0 - 2), 8) , v = new KVector_0(portSideToDirection(targetPort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(secondLast.x_0, secondLast.y_0), last) , straightenEnding = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenEnding, last) , $add_0(allCP, allCP.size_0 - 1, straightenEnding) , undefined); + nubSpline = new NubSpline(allCP); + $addAll(edge.bendPoints, $getBezierCP(nubSpline)); +} + +function $calculateControlPoints(this$static, segment){ + var edge, edge$iterator, ei, sloppy, xStartPos, xEndPos, halfway; + if (segment.handled) { + return; + } + segment.handled = true; + for (edge$iterator = segment.edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 17); + if (segment.isStraight && segment.edges.map_0.size_1() <= 1) { + xStartPos = segment.boundingBox.x_0; + xEndPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; + halfway = new KVector_1(xStartPos + (xEndPos - xStartPos) / 2, segment.centerControlPointY); + $add_7(castTo(segment.edges.map_0.keySet_0().iterator_0().next_1(), 17).bendPoints, halfway); + continue; + } + ei = castTo($get_10(segment.edgeInformation, edge), 459); + if (ei.invertedLeft || ei.invertedRight) { + $calculateControlPointsInvertedEdge(this$static, edge, segment); + continue; + } + sloppy = this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , SLOPPY) && (ei.normalSourceNode || ei.normalTargetNode) && $segmentAllowsSloppyRouting(this$static, segment) && segment.edges.map_0.size_1() <= 1; + sloppy?$calculateControlPointsSloppy(edge, segment):$calculateControlPointsConservative(this$static, edge, segment); + } + segment.inverseOrder && $forEach_0(segment.edges, new FinalSplineBendpointsCalculator$lambda$5$Type); +} + +function $calculateControlPointsConservative(this$static, edge, containingSegment){ + var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); + targetStraightCP = new KVector_1(endXPos, yTargetAnchor); + centerXPos = startXPos; + containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); + centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + isHyperedge = containingSegment.edges.map_0.size_1() > 1; + if (isHyperedge) { + center = new KVector_1(centerXPos, containingSegment.centerControlPointY); + $add_7(edge.bendPoints, center); + } + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $calculateControlPointsInvertedEdge(this$static, edge, containingSegment){ + var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + ei.invertedLeft?(sourceStraightCP = new KVector_1(endXPos, ySourceAnchor)):(sourceStraightCP = new KVector_1(startXPos, ySourceAnchor)); + ei.invertedRight?(targetStraightCP = new KVector_1(startXPos, yTargetAnchor)):(targetStraightCP = new KVector_1(endXPos, yTargetAnchor)); + centerXPos = startXPos; + containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); + centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + isHyperedge = containingSegment.edges.map_0.size_1() > 1; + if (isHyperedge) { + center = new KVector_1(centerXPos, containingSegment.centerControlPointY); + $add_7(edge.bendPoints, center); + } + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $calculateControlPointsSloppy(edge, containingSegment){ + var approx, box, centerXPos, centerYPos, edgePointsDownwards, ei, endXPos, needToCheckSrc, needToCheckTgt, neighbor, neighborIndex, shortCutSource, shortCutTarget, sourceStraightCP, sourceVerticalCP, src_0, startXPos, targetStraightCP, targetVerticalCP, tgt, v1, v2, v3, ySourceAnchor, yTargetAnchor; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + edgePointsDownwards = ySourceAnchor < yTargetAnchor; + sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); + targetStraightCP = new KVector_1(endXPos, yTargetAnchor); + centerXPos = (startXPos + endXPos) / 2; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + centerYPos = $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor); + v1 = $getAbsoluteAnchor(containingSegment.sourcePort); + v2 = new KVector_1(centerXPos, centerYPos); + v3 = $getAbsoluteAnchor(containingSegment.targetPort); + approx = approximateBezierSegment(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [v1, v2, v3])); + shortCutSource = false; + src_0 = containingSegment.sourcePort.owner; + if (!!src_0 && !!src_0.layer && ei.normalSourceNode) { + needToCheckSrc = edgePointsDownwards && src_0.id_0 < src_0.layer.nodes.array.length - 1 || !edgePointsDownwards && src_0.id_0 > 0; + if (needToCheckSrc) { + if (needToCheckSrc) { + neighborIndex = src_0.id_0; + edgePointsDownwards?++neighborIndex:--neighborIndex; + neighbor = castTo($get_11(src_0.layer.nodes, neighborIndex), 10); + box = $nodeToBoundingBox(neighbor); + shortCutSource = !(intersects_0(box, v1, approx[0]) || contains_50(box, v1, approx[0])); + } + } + else { + shortCutSource = true; + } + } + shortCutTarget = false; + tgt = containingSegment.targetPort.owner; + if (!!tgt && !!tgt.layer && ei.normalTargetNode) { + needToCheckTgt = edgePointsDownwards && tgt.id_0 > 0 || !edgePointsDownwards && tgt.id_0 < tgt.layer.nodes.array.length - 1; + if (needToCheckTgt) { + neighborIndex = tgt.id_0; + edgePointsDownwards?--neighborIndex:++neighborIndex; + neighbor = castTo($get_11(tgt.layer.nodes, neighborIndex), 10); + box = $nodeToBoundingBox(neighbor); + shortCutTarget = !(intersects_0(box, approx[0], v3) || contains_50(box, approx[0], v3)); + } + else { + shortCutTarget = true; + } + } + shortCutSource && shortCutTarget && $add_7(edge.bendPoints, v2); + shortCutSource || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + shortCutTarget || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor){ + var centerYPos, degreeDiff, indegree, outdegree, port, port$iterator; + indegree = 0; + outdegree = 0; + if (edge.source) { + for (port$iterator = new ArrayList$1(edge.target.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + indegree += port.incomingEdges.array.length; + } + } + else { + indegree = 1; + } + if (edge.target) { + for (port$iterator = new ArrayList$1(edge.source.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + outdegree += port.outgoingEdges.array.length; + } + } + else { + outdegree = 1; + } + degreeDiff = round_int(signum(outdegree - indegree)); + centerYPos = (yTargetAnchor + ySourceAnchor) / 2 + (yTargetAnchor - ySourceAnchor) * (0.4 * degreeDiff); + return centerYPos; +} + +function $indexNodesPerLayer(graph){ + var index_0, l, l$iterator, n, n$iterator; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + } + } +} + +function $nodeToBoundingBox(node){ + var m, pos, size_0; + pos = node.pos; + size_0 = node.size_0; + m = node.margin; + return new ElkRectangle_0(pos.x_0 - m.left, pos.y_0 - m.top_0, size_0.x_0 + (m.left + m.right), size_0.y_0 + (m.top_0 + m.bottom)); +} + +function $process_11(this$static, graph){ + var e, e$iterator, e$iterator0, edgeChain, spline, startEdges, survivingEdge; + this$static.edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); + this$static.edgeNodeSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + this$static.splineRoutingMode = castTo($getProperty(graph, EDGE_ROUTING_SPLINES_MODE_0), 336); + this$static.compactionStrategy = castTo($getProperty(graph, COMPACTION_POST_COMPACTION_STRATEGY_0), 275); + $indexNodesPerLayer(graph); + startEdges = castTo($collect_1($filter($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new FinalSplineBendpointsCalculator$lambda$0$Type), new FinalSplineBendpointsCalculator$lambda$1$Type), new FinalSplineBendpointsCalculator$lambda$2$Type), new FinalSplineBendpointsCalculator$lambda$3$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + for (e$iterator0 = startEdges.iterator_0(); e$iterator0.hasNext_0();) { + e = castTo(e$iterator0.next_1(), 17); + spline = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); + spline.forEach_0(new FinalSplineBendpointsCalculator$lambda$4$Type(this$static)); + $setProperty_0(e, SPLINE_ROUTE_START, null); + } + for (e$iterator = startEdges.iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + survivingEdge = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_SURVIVING_EDGE)), 17); + edgeChain = castTo($getProperty(e, SPLINE_EDGE_CHAIN), 15); + $calculateBezierBendPoints(this$static, edgeChain, survivingEdge); + $setProperty_0(e, SPLINE_EDGE_CHAIN, null); + } +} + +function $segmentAllowsSloppyRouting(this$static, segment){ + var endXPos, n, nodeSegmentDistance, startXPos, t; + if (this$static.compactionStrategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return true; + } + startXPos = segment.boundingBox.x_0; + endXPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; + if (segment.initialSegment) { + n = segment.sourceNode; + t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; + nodeSegmentDistance = startXPos - (n.pos.x_0 + n.size_0.x_0); + if (nodeSegmentDistance > t) { + return false; + } + } + if (segment.lastSegment) { + n = segment.targetNode; + t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; + nodeSegmentDistance = n.pos.x_0 - endXPos; + if (nodeSegmentDistance > t) { + return false; + } + } + return true; +} + +function FinalSplineBendpointsCalculator(){ +} + +defineClass(1503, 1, $intern_105, FinalSplineBendpointsCalculator); +_.process = function process_9(graph, progressMonitor){ + $process_11(this, castTo(graph, 37)); +} +; +_.edgeEdgeSpacing = 0; +_.edgeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator', 1503); +function FinalSplineBendpointsCalculator$lambda$0$Type(){ +} + +defineClass(1504, 1, {}, FinalSplineBendpointsCalculator$lambda$0$Type); +_.apply_0 = function apply_78(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$0$Type', 1504); +function FinalSplineBendpointsCalculator$lambda$1$Type(){ +} + +defineClass(1505, 1, {}, FinalSplineBendpointsCalculator$lambda$1$Type); +_.apply_0 = function apply_79(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$1$Type', 1505); +function FinalSplineBendpointsCalculator$lambda$2$Type(){ +} + +defineClass(1506, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$2$Type); +_.test_0 = function test_35(arg0){ + return !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$2$Type', 1506); +function FinalSplineBendpointsCalculator$lambda$3$Type(){ +} + +defineClass(1507, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$3$Type); +_.test_0 = function test_36(arg0){ + return $hasProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$3$Type', 1507); +function FinalSplineBendpointsCalculator$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1508, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$4$Type); +_.accept = function accept_72(arg0){ + $calculateControlPoints(this.$$outer_0, castTo(arg0, 128)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$4$Type', 1508); +function FinalSplineBendpointsCalculator$lambda$5$Type(){ +} + +defineClass(1509, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$5$Type); +_.accept = function accept_73(arg0){ + reverse_2(castTo(arg0, 17).bendPoints); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$5$Type', 1509); +function $getMirroredPortSideX(side){ + switch (side.ordinal) { + case 2: + return $clinit_PortSide() , WEST_2; + case 4: + return $clinit_PortSide() , EAST_2; + default:return side; + } +} + +function $getMirroredPortSideY(side){ + switch (side.ordinal) { + case 1: + return $clinit_PortSide() , SOUTH_2; + case 3: + return $clinit_PortSide() , NORTH_3; + default:return side; + } +} + +function $mirrorAllX(layeredGraph, nodes){ + $mirrorX(nodes, layeredGraph); + $mirrorX_1(layeredGraph.padding); + $mirrorX_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); +} + +function $mirrorAllY(layeredGraph, nodes){ + $mirrorY(nodes, layeredGraph); + $mirrorY_1(layeredGraph.padding); + $mirrorY_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); +} + +function $mirrorInLayerConstraintY(node){ + switch (castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303).ordinal) { + case 1: + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + break; + case 2: + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + } +} + +function $mirrorLayerConstraintX(node){ + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 1: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); + break; + case 2: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); + break; + case 3: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); + break; + case 4: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); + } +} + +function $mirrorNodeLabelPlacementX(shape_0){ + var oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.contains(($clinit_NodeLabelPlacement() , H_LEFT_0))) { + oldPlacement.remove_1(H_LEFT_0); + oldPlacement.add_2(H_RIGHT_0); + } + else if (oldPlacement.contains(H_RIGHT_0)) { + oldPlacement.remove_1(H_RIGHT_0); + oldPlacement.add_2(H_LEFT_0); + } +} + +function $mirrorNodeLabelPlacementY(shape_0){ + var oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.contains(($clinit_NodeLabelPlacement() , V_TOP_0))) { + oldPlacement.remove_1(V_TOP_0); + oldPlacement.add_2(V_BOTTOM_0); + } + else if (oldPlacement.contains(V_BOTTOM_0)) { + oldPlacement.remove_1(V_BOTTOM_0); + oldPlacement.add_2(V_TOP_0); + } +} + +function $mirrorX(nodes, graph){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; + offset = 0; + if (graph.size_0.x_0 == 0) { + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + offset = $wnd.Math.max(offset, node.pos.x_0 + node.size_0.x_0 + node.margin.right); + } + } + else { + offset = graph.size_0.x_0 - graph.offset.x_0; + } + offset -= graph.offset.x_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $mirrorX_0(node.pos, offset - node.size_0.x_0); + $mirrorX_1(node.padding); + $mirrorNodeLabelPlacementX(node); + (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorX_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.x_0); + switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { + case 1: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); + break; + case 2: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); + } + nodeSize = node.size_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $mirrorX_0(port.pos, nodeSize.x_0 - port.size_0.x_0); + $mirrorX_0(port.anchor, port.size_0.x_0); + $setSide(port, $getMirroredPortSideX(port.side)); + index_0 = castTo($getProperty(port, PORT_INDEX), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + bendPoint.x_0 = offset - bendPoint.x_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + jp.x_0 = offset - jp.x_0; + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator0), 70); + $mirrorX_0(label_0.pos, offset - label_0.size_0.x_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator1), 70); + $mirrorX_0(label_0.pos, port.size_0.x_0 - label_0.size_0.x_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideX(castTo($getProperty(node, EXT_PORT_SIDE), 61))); + $mirrorLayerConstraintX(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $mirrorNodeLabelPlacementX(label_0); + $mirrorX_0(label_0.pos, nodeSize.x_0 - label_0.size_0.x_0); + } + } +} + +function $mirrorX_0(v, offset){ + v.x_0 = offset - v.x_0; +} + +function $mirrorX_1(spacing){ + var oldLeft, oldRight; + oldLeft = spacing.left; + oldRight = spacing.right; + spacing.left = oldRight; + spacing.right = oldLeft; +} + +function $mirrorY(nodes, graph){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; + offset = 0; + if (graph.size_0.y_0 == 0) { + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + offset = $wnd.Math.max(offset, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); + } + } + else { + offset = graph.size_0.y_0 - graph.offset.y_0; + } + offset -= graph.offset.y_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $mirrorY_0(node.pos, offset - node.size_0.y_0); + $mirrorY_1(node.padding); + $mirrorNodeLabelPlacementY(node); + (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorY_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.y_0); + switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { + case 3: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); + break; + case 4: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); + } + nodeSize = node.size_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $mirrorY_0(port.pos, nodeSize.y_0 - port.size_0.y_0); + $mirrorY_0(port.anchor, port.size_0.y_0); + $setSide(port, $getMirroredPortSideY(port.side)); + index_0 = castTo($getProperty(port, PORT_INDEX), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + bendPoint.y_0 = offset - bendPoint.y_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + jp.y_0 = offset - jp.y_0; + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator0), 70); + $mirrorY_0(label_0.pos, offset - label_0.size_0.y_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator1), 70); + $mirrorY_0(label_0.pos, port.size_0.y_0 - label_0.size_0.y_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideY(castTo($getProperty(node, EXT_PORT_SIDE), 61))); + $mirrorInLayerConstraintY(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $mirrorNodeLabelPlacementY(label_0); + $mirrorY_0(label_0.pos, nodeSize.y_0 - label_0.size_0.y_0); + } + } +} + +function $mirrorY_0(v, offset){ + v.y_0 = offset - v.y_0; +} + +function $mirrorY_1(spacing){ + var oldBottom, oldTop; + oldTop = spacing.top_0; + oldBottom = spacing.bottom; + spacing.top_0 = oldBottom; + spacing.bottom = oldTop; +} + +function $process_12(this$static, layeredGraph, monitor){ + var congruency, layer, layer$iterator, nodes; + $begin(monitor, 'Graph transformation (' + this$static.mode + ')', 1); + nodes = newArrayList(layeredGraph.layerlessNodes); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(nodes, layer.nodes); + } + congruency = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , DIRECTION_CONGRUENCY_0)), 419); + if (congruency == ($clinit_DirectionCongruency() , READING_DIRECTION)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + break; + case 3: + $transposeAll(layeredGraph, nodes); + break; + case 4: + if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { + $transposeAll(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + } + else { + $mirrorAllY(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + } + + } + } + else { + if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + break; + case 3: + $transposeAll(layeredGraph, nodes); + $mirrorAllX(layeredGraph, nodes); + break; + case 4: + $mirrorAllX(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + } + } + else { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + break; + case 3: + $mirrorAllX(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + break; + case 4: + $transposeAll(layeredGraph, nodes); + $mirrorAllX(layeredGraph, nodes); + } + } + } + $done_0(monitor); +} + +function $transpose(nodes){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, port, port$iterator; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $transpose_0(node.pos); + $transpose_0(node.size_0); + $transpose_1(node.padding); + $transposeNodeLabelPlacement(node); + $transposeProperties(node); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $transpose_0(port.pos); + $transpose_0(port.anchor); + $transpose_0(port.size_0); + $setSide(port, $transposePortSide(port.side)); + index_0 = castTo($getProperty(port, ($clinit_LayeredOptions() , PORT_INDEX)), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + $transpose_0(bendPoint); + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + $transpose_0(jp); + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator0), 70); + $transpose_0(label_0.pos); + $transpose_0(label_0.size_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator1), 70); + $transpose_0(label_0.pos); + $transpose_0(label_0.size_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $transposePortSide(castTo($getProperty(node, EXT_PORT_SIDE), 61))); + $transposeLayerConstraint(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $transposeNodeLabelPlacement(label_0); + $transpose_0(label_0.size_0); + $transpose_0(label_0.pos); + } + } +} + +function $transpose_0(v){ + var temp; + temp = v.x_0; + v.x_0 = v.y_0; + v.y_0 = temp; +} + +function $transpose_1(spacing){ + var oldBottom, oldLeft, oldRight, oldTop; + oldTop = spacing.top_0; + oldBottom = spacing.bottom; + oldLeft = spacing.left; + oldRight = spacing.right; + spacing.top_0 = oldLeft; + spacing.bottom = oldRight; + spacing.left = oldTop; + spacing.right = oldBottom; +} + +function $transposeAll(layeredGraph, nodes){ + var oldSide; + $transpose(nodes); + oldSide = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); + !!oldSide && $setProperty_0(layeredGraph, EDGE_LABELS_SIDE_SELECTION_0, $transpose_2(oldSide)); + $transpose_0(layeredGraph.offset); + $transpose_0(layeredGraph.size_0); + $transpose_1(layeredGraph.padding); + $transpose_1(castTo($getProperty(layeredGraph, NODE_LABELS_PADDING), 207)); +} + +function $transposeLayerConstraint(node){ + var inLayerConstraint, layerConstraint; + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + inLayerConstraint = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); + if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + } + else if (layerConstraint == LAST_SEPARATE_0) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + } + else if (inLayerConstraint == ($clinit_InLayerConstraint() , TOP_1)) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, FIRST_SEPARATE_0); + $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); + } + else if (inLayerConstraint == BOTTOM_0) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, LAST_SEPARATE_0); + $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); + } +} + +function $transposeNodeLabelPlacement(shape_0){ + var all, newPlacement, oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.isEmpty()) { + return; + } + newPlacement = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + oldPlacement.contains(($clinit_NodeLabelPlacement() , INSIDE))?$add_5(newPlacement, INSIDE):$add_5(newPlacement, OUTSIDE); + oldPlacement.contains(H_PRIORITY) || $add_5(newPlacement, H_PRIORITY); + oldPlacement.contains(H_LEFT_0)?$add_5(newPlacement, V_TOP_0):oldPlacement.contains(H_CENTER_0)?$add_5(newPlacement, V_CENTER_0):oldPlacement.contains(H_RIGHT_0) && $add_5(newPlacement, V_BOTTOM_0); + oldPlacement.contains(V_TOP_0)?$add_5(newPlacement, H_LEFT_0):oldPlacement.contains(V_CENTER_0)?$add_5(newPlacement, H_CENTER_0):oldPlacement.contains(V_BOTTOM_0) && $add_5(newPlacement, H_RIGHT_0); + $setProperty_0(shape_0, NODE_LABELS_PLACEMENT_1, newPlacement); +} + +function $transposePortSide(side){ + switch (side.ordinal) { + case 1: + return $clinit_PortSide() , WEST_2; + case 4: + return $clinit_PortSide() , NORTH_3; + case 3: + return $clinit_PortSide() , EAST_2; + case 2: + return $clinit_PortSide() , SOUTH_2; + default:return $clinit_PortSide() , UNDEFINED_5; + } +} + +function $transposeProperties(node){ + var minSize, pos, tmp; + minSize = castTo($getProperty(node, ($clinit_LayeredOptions() , NODE_SIZE_MINIMUM_0)), 8); + $setProperty_0(node, NODE_SIZE_MINIMUM_0, new KVector_1(minSize.y_0, minSize.x_0)); + switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { + case 1: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); + break; + case 2: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); + break; + case 3: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); + break; + case 4: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); + } + if ((!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(POSITION)) { + pos = castTo($getProperty(node, POSITION), 8); + tmp = pos.x_0; + pos.x_0 = pos.y_0; + pos.y_0 = tmp; + } +} + +function GraphTransformer(themode){ + this.mode = themode; +} + +defineClass(792, 1, $intern_105, GraphTransformer); +_.process = function process_10(layeredGraph, monitor){ + $process_12(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer', 792); +function $clinit_GraphTransformer$Mode(){ + $clinit_GraphTransformer$Mode = emptyMethod; + TO_INTERNAL_LTR = new GraphTransformer$Mode('TO_INTERNAL_LTR', 0); + TO_INPUT_DIRECTION = new GraphTransformer$Mode('TO_INPUT_DIRECTION', 1); +} + +function GraphTransformer$Mode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_31(name_0){ + $clinit_GraphTransformer$Mode(); + return valueOf(($clinit_GraphTransformer$Mode$Map() , $MAP_19), name_0); +} + +function values_37(){ + $clinit_GraphTransformer$Mode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]); +} + +defineClass(511, 22, {3:1, 35:1, 22:1, 511:1}, GraphTransformer$Mode); +var TO_INPUT_DIRECTION, TO_INTERNAL_LTR; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer/Mode', 511, Ljava_lang_Enum_2_classLit, values_37, valueOf_31); +function $clinit_GraphTransformer$Mode$Map(){ + $clinit_GraphTransformer$Mode$Map = emptyMethod; + $MAP_19 = createValueOfMap(($clinit_GraphTransformer$Mode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]))); +} + +var $MAP_19; +function $graphLayoutToNode(node, lgraph){ + var actualGraphSize, childNode, childNode$iterator, origin_0, port, portPosition; + for (childNode$iterator = new ArrayList$1(lgraph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { + childNode = castTo($next_7(childNode$iterator), 10); + origin_0 = $getProperty(childNode, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 11)) { + port = castTo(origin_0, 11); + portPosition = getExternalPortPosition(lgraph, childNode, port.size_0.x_0, port.size_0.y_0); + port.pos.x_0 = portPosition.x_0; + port.pos.y_0 = portPosition.y_0; + $setSide(port, castTo($getProperty(childNode, EXT_PORT_SIDE), 61)); + } + } + actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + $setProperty_0(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + castTo($getProperty($getGraph(node), GRAPH_PROPERTIES), 21).add_2(NON_FREE_PORTS); + resizeNode(node, actualGraphSize, false); + } + else { + resizeNode(node, actualGraphSize, true); + } +} + +function $process_13(graph, progressMonitor){ + var layer, layer$iterator, node, node$iterator; + $begin(progressMonitor, 'Resize child graph to fit parent.', 1); + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(graph.layerlessNodes, layer.nodes); + layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } + graph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $resizeGraph_0(graph); + !!graph.parentNode && $graphLayoutToNode(graph.parentNode, graph); + $done_0(progressMonitor); +} + +function $resizeGraph_0(lgraph){ + var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); + sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); + calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + adjustedSize = new KVector_2(calculatedSize); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); + adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); + } + $resizeGraphNoReallyIMeanIt_0(lgraph, calculatedSize, adjustedSize); +} + +function $resizeGraphNoReallyIMeanIt_0(lgraph, oldSize, newSize){ + var contentAlignment, extPortSide, node, node$iterator, padding; + contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); + extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); + } + } + } + padding = lgraph.padding; + lgraph.size_0.x_0 = newSize.x_0 - padding.left - padding.right; + lgraph.size_0.y_0 = newSize.y_0 - padding.top_0 - padding.bottom; +} + +function HierarchicalNodeResizingProcessor(){ +} + +defineClass(1510, 1, $intern_105, HierarchicalNodeResizingProcessor); +_.process = function process_11(graph, progressMonitor){ + $process_13(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalNodeResizingProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalNodeResizingProcessor', 1510); +function $createDummy(layeredGraph, originalDummy){ + var inputPort, newDummy, outputPort; + newDummy = new LNode(layeredGraph); + $copyProperties(newDummy, originalDummy); + $setProperty_0(newDummy, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY), originalDummy); + $setProperty_0(newDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(newDummy, ALIGNMENT, ($clinit_Alignment() , CENTER_4)); + $setType(newDummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); + inputPort = new LPort; + $setNode(inputPort, newDummy); + $setSide(inputPort, ($clinit_PortSide() , WEST_2)); + outputPort = new LPort; + $setNode(outputPort, newDummy); + $setSide(outputPort, EAST_2); + return newDummy; +} + +function $isNorthernOrSouthernDummy(node){ + var nodeType, portSide; + nodeType = node.type_0; + if (nodeType == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + portSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + return portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2; + } + return false; +} + +function $process_14(layeredGraph, monitor){ + $begin(monitor, 'Hierarchical port constraint processing', 1); + $processEasternAndWesternPortDummies(layeredGraph); + $processNorthernAndSouthernPortDummies(layeredGraph); + $done_0(monitor); +} + +function $processEasternAndWesternPortDummies(layeredGraph){ + var layers; + if (!$isOrderFixed(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + return; + } + layers = layeredGraph.layers; + $processEasternAndWesternPortDummies_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29))); + $processEasternAndWesternPortDummies_0(castTo($get_11(layers, layers.array.length - 1), 29)); +} + +function $processEasternAndWesternPortDummies_0(layer){ + var externalPortSide, lastHierarchicalDummy, node, node$array, node$index, node$max, nodes; + nodes = toNodeArray(layer.nodes); + sort_5(nodes, new HierarchicalPortConstraintProcessor$NodeComparator); + lastHierarchicalDummy = null; + for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + break; + } + externalPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (externalPortSide != ($clinit_PortSide() , WEST_2) && externalPortSide != EAST_2) { + continue; + } + !!lastHierarchicalDummy && castTo($getProperty(lastHierarchicalDummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(node); + lastHierarchicalDummy = node; + } +} + +function $processNorthernAndSouthernPortDummies(layeredGraph){ + var currLayerIdx, currentLayer, currentNode, currentNode$iterator, dummy, dummy$iterator, edge, edge$iterator, edge$iterator0, extPortToDummyNodeMap, i, layer, layerCount, layers, newDummyNodes, nextExtPortToDummyNodesMap, nextLayerDummy, nextNewDummyNodes, nodeList, originalDummy, originalDummy$iterator, originalExternalPortDummies, portConstraints, prevExtPortToDummyNodesMap, prevLayerDummy, prevNewDummyNodes, sourceNode, targetNode; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + if (!(portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4)) { + return; + } + layers = layeredGraph.layers; + layerCount = layers.array.length; + extPortToDummyNodeMap = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); + newDummyNodes = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); + $add_3(extPortToDummyNodeMap, new HashMap); + $add_3(extPortToDummyNodeMap, new HashMap); + $add_3(newDummyNodes, new ArrayList); + $add_3(newDummyNodes, new ArrayList); + originalExternalPortDummies = new ArrayList; + for (currLayerIdx = 0; currLayerIdx < layerCount; currLayerIdx++) { + currentLayer = (checkCriticalElementIndex(currLayerIdx, layers.array.length) , castTo(layers.array[currLayerIdx], 29)); + prevExtPortToDummyNodesMap = (checkCriticalElementIndex(currLayerIdx, extPortToDummyNodeMap.array.length) , castTo(extPortToDummyNodeMap.array[currLayerIdx], 83)); + nextExtPortToDummyNodesMap = new HashMap; + extPortToDummyNodeMap.array[extPortToDummyNodeMap.array.length] = nextExtPortToDummyNodesMap; + prevNewDummyNodes = (checkCriticalElementIndex(currLayerIdx, newDummyNodes.array.length) , castTo(newDummyNodes.array[currLayerIdx], 15)); + nextNewDummyNodes = new ArrayList; + newDummyNodes.array[newDummyNodes.array.length] = nextNewDummyNodes; + for (currentNode$iterator = new ArrayList$1(currentLayer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_7(currentNode$iterator), 10); + if ($isNorthernOrSouthernDummy(currentNode)) { + originalExternalPortDummies.array[originalExternalPortDummies.array.length] = currentNode; + continue; + } + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 17); + sourceNode = edge.source.owner; + if (!$isNorthernOrSouthernDummy(sourceNode)) { + continue; + } + prevLayerDummy = castTo(prevExtPortToDummyNodesMap.get_3($getProperty(sourceNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); + if (!prevLayerDummy) { + prevLayerDummy = $createDummy(layeredGraph, sourceNode); + prevExtPortToDummyNodesMap.put($getProperty(sourceNode, ORIGIN_0), prevLayerDummy); + prevNewDummyNodes.add_2(prevLayerDummy); + } + $setSource_0(edge, castTo($get_11(prevLayerDummy.ports, 1), 11)); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + targetNode = edge.target.owner; + if (!$isNorthernOrSouthernDummy(targetNode)) { + continue; + } + nextLayerDummy = castTo($get_10(nextExtPortToDummyNodesMap, $getProperty(targetNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); + if (!nextLayerDummy) { + nextLayerDummy = $createDummy(layeredGraph, targetNode); + $put_6(nextExtPortToDummyNodesMap, $getProperty(targetNode, ORIGIN_0), nextLayerDummy); + nextNewDummyNodes.array[nextNewDummyNodes.array.length] = nextLayerDummy; + } + $setTarget_0(edge, castTo($get_11(nextLayerDummy.ports, 0), 11)); + } + } + } + for (i = 0; i < newDummyNodes.array.length; i++) { + nodeList = (checkCriticalElementIndex(i, newDummyNodes.array.length) , castTo(newDummyNodes.array[i], 15)); + if (nodeList.isEmpty()) { + continue; + } + layer = null; + if (i == 0) { + layer = new Layer(layeredGraph); + checkCriticalPositionIndex(0, layers.array.length); + insertTo(layers.array, 0, layer); + } + else if (i == extPortToDummyNodeMap.array.length - 1) { + layer = new Layer(layeredGraph); + layers.array[layers.array.length] = layer; + } + else { + layer = (checkCriticalElementIndex(i - 1, layers.array.length) , castTo(layers.array[i - 1], 29)); + } + for (dummy$iterator = nodeList.iterator_0(); dummy$iterator.hasNext_0();) { + dummy = castTo(dummy$iterator.next_1(), 10); + $setLayer_0(dummy, layer); + } + } + for (originalDummy$iterator = new ArrayList$1(originalExternalPortDummies); originalDummy$iterator.i < originalDummy$iterator.this$01.array.length;) { + originalDummy = castTo($next_7(originalDummy$iterator), 10); + $setLayer_0(originalDummy, null); + } + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES), originalExternalPortDummies); +} + +function HierarchicalPortConstraintProcessor(){ +} + +defineClass(1511, 1, $intern_105, HierarchicalPortConstraintProcessor); +_.process = function process_12(layeredGraph, monitor){ + $process_14(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor', 1511); +function $compare_12(node1, node2){ + var nodePos1, nodePos2, nodeType1, nodeType2; + nodeType1 = node1.type_0; + nodePos1 = $doubleValue(castToDouble($getProperty(node1, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))); + nodeType2 = node2.type_0; + nodePos2 = $doubleValue(castToDouble($getProperty(node2, PORT_RATIO_OR_POSITION_0))); + return nodeType2 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)?-1:nodeType1 != EXTERNAL_PORT?1:nodePos1 == nodePos2?0:nodePos1 < nodePos2?-1:1; +} + +function HierarchicalPortConstraintProcessor$NodeComparator(){ +} + +defineClass(1512, 1, $intern_88, HierarchicalPortConstraintProcessor$NodeComparator); +_.compare_1 = function compare_43(node1, node2){ + return $compare_12(castTo(node1, 10), castTo(node2, 10)); +} +; +_.equals_0 = function equals_107(other){ + return this === other; +} +; +_.reversed = function reversed_35(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor$NodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor/NodeComparator', 1512); +function $process_15(layeredGraph, monitor){ + var delta, edgeSpacing, layer, layer$iterator, node, node$iterator, northernDummies, side, southernDummies; + $begin(monitor, 'Hierarchical port dummy size processing', 1); + northernDummies = new ArrayList; + southernDummies = new ArrayList; + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); + delta = edgeSpacing * 2; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + northernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + southernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + side = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + side == ($clinit_PortSide() , NORTH_3)?(northernDummies.array[northernDummies.array.length] = node , true):side == SOUTH_2 && (southernDummies.array[southernDummies.array.length] = node , true); + } + } + $setWidths(northernDummies, true, delta); + $setWidths(southernDummies, false, delta); + } + $done_0(monitor); +} + +function $setWidths(nodes, topDown, delta){ + var currentWidth, node, node$iterator, port, port$iterator, step; + currentWidth = 0; + step = delta; + if (!topDown) { + currentWidth = delta * (nodes.array.length - 1); + step *= -1; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setProperty_0(node, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , CENTER_4)); + node.size_0.x_0 = currentWidth; + for (port$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + port.pos.x_0 = currentWidth; + } + currentWidth += step; + } +} + +function HierarchicalPortDummySizeProcessor(){ +} + +defineClass(1513, 1, $intern_105, HierarchicalPortDummySizeProcessor); +_.process = function process_13(layeredGraph, monitor){ + $process_15(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortDummySizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortDummySizeProcessor', 1513); +function $assignAscendingCoordinates(dummies, graph){ + var currentMargin, currentPosition, currentSize, delta, graphSize, index_0, nextValidCoordinate, spacing; + spacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); + nextValidCoordinate = dummies[0].pos.x_0 + dummies[0].size_0.x_0 + dummies[0].margin.right + spacing; + for (index_0 = 1; index_0 < dummies.length; index_0++) { + currentPosition = dummies[index_0].pos; + currentSize = dummies[index_0].size_0; + currentMargin = dummies[index_0].margin; + delta = currentPosition.x_0 - currentMargin.left - nextValidCoordinate; + delta < 0 && (currentPosition.x_0 -= delta); + graphSize = graph.size_0; + graphSize.x_0 = $wnd.Math.max(graphSize.x_0, currentPosition.x_0 + currentSize.x_0); + nextValidCoordinate = currentPosition.x_0 + currentSize.x_0 + currentMargin.right + spacing; + } +} + +function $calculateNorthSouthDummyPositions(dummy){ + var anchor, connectedPort, connectedPort$iterator, dummyInPort, offset, posSum; + dummyInPort = castTo($get_11(dummy.ports, 0), 11); + if (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length == 0) { + dummy.pos.x_0 = 0; + } + else { + posSum = 0; + for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(dummyInPort), new LPort$2(dummyInPort)]))); $hasNext_1(connectedPort$iterator);) { + connectedPort = castTo($next_0(connectedPort$iterator), 11); + posSum += connectedPort.owner.pos.x_0 + connectedPort.pos.x_0 + connectedPort.anchor.x_0; + } + anchor = castTo($getProperty(dummy, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8); + offset = !anchor?0:anchor.x_0; + dummy.pos.x_0 = posSum / (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length) - offset; + } +} + +function $correctSlantedEdgeSegments(layer){ + var bendPoints, edge, edge$iterator, extPortSide, firstBendPoint, lastBendPoint, node, node$iterator, sourcePort, targetPort; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (extPortSide == ($clinit_PortSide() , EAST_2) || extPortSide == WEST_2) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + bendPoints = edge.bendPoints; + if (bendPoints.size_0 == 0) { + continue; + } + sourcePort = edge.source; + if (sourcePort.owner == node) { + firstBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8)); + firstBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; + } + targetPort = edge.target; + if (targetPort.owner == node) { + lastBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8)); + lastBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; + } + } + } + } +} + +function $ensureUniquePositions(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); + sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$1); + $assignAscendingCoordinates(dummyArray, graph); +} + +function $fixCoordinates(layer, constraints, graph){ + var extPortSide, extPortSize, graphActualSize, newActualGraphHeight, node, node$iterator, node$iterator0, nodePosition, offset, padding, ratio, requiredActualGraphHeight; + padding = graph.padding; + offset = graph.offset; + graphActualSize = new KVector_1(graph.size_0.x_0 + graph.padding.left + graph.padding.right, graph.size_0.y_0 + graph.padding.top_0 + graph.padding.bottom); + newActualGraphHeight = graphActualSize.y_0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + extPortSize = castTo($getProperty(node, EXT_PORT_SIZE), 8); + nodePosition = node.pos; + switch (extPortSide.ordinal) { + case 2: + nodePosition.x_0 = graph.size_0.x_0 + padding.right - offset.x_0; + break; + case 4: + nodePosition.x_0 = -offset.x_0 - padding.left; + } + requiredActualGraphHeight = 0; + switch (extPortSide.ordinal) { + case 2: + case 4: + if (constraints == ($clinit_PortConstraints() , FIXED_RATIO)) { + ratio = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); + nodePosition.y_0 = graphActualSize.y_0 * ratio - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; + requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; + $borderToContentAreaCoordinates(node, false, true); + } + else if (constraints == FIXED_POS) { + nodePosition.y_0 = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))) - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; + requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; + $borderToContentAreaCoordinates(node, false, true); + } + + } + newActualGraphHeight = $wnd.Math.max(newActualGraphHeight, requiredActualGraphHeight); + } + graph.size_0.y_0 += newActualGraphHeight - graphActualSize.y_0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + nodePosition = node.pos; + switch (extPortSide.ordinal) { + case 1: + nodePosition.y_0 = -offset.y_0 - padding.top_0; + break; + case 3: + nodePosition.y_0 = graph.size_0.y_0 + padding.bottom - offset.y_0; + } + } +} + +function $process_16(this$static, layeredGraph, monitor){ + var northSouthDummies, constraints, layers, layers_0; + $begin(monitor, 'Orthogonally routing hierarchical port edges', 1); + this$static.northernExtPortEdgeRoutingHeight = 0; + northSouthDummies = $restoreNorthSouthDummies(layeredGraph); + $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies); + $routeEdges(this$static, layeredGraph, northSouthDummies); + $removeTemporaryNorthSouthDummies(layeredGraph); + constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + layers = layeredGraph.layers; + $fixCoordinates((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), constraints, layeredGraph); + $fixCoordinates(castTo($get_11(layers, layers.array.length - 1), 29), constraints, layeredGraph); + layers_0 = layeredGraph.layers; + $correctSlantedEdgeSegments((checkCriticalElementIndex(0, layers_0.array.length) , castTo(layers_0.array[0], 29))); + $correctSlantedEdgeSegments(castTo($get_11(layers_0, layers_0.array.length - 1), 29)); + $done_0(monitor); +} + +function $removeTemporaryNorthSouthDummies(layeredGraph){ + var edge, edge$array, edge$array0, edge$index, edge$index0, edge$max, edge$max0, edges, firstBendPoint, incomingEdgeBendPoints, iter, lastBendPoint, layer, layer$iterator, node, node$iterator, node$iterator0, nodeInPort, nodeOriginPort, nodeOutPort, nodeToOriginEdge, nodesToRemove, outgoingEdgeBendPoints, port, port$iterator, replacedDummy, replacedDummyPort; + nodesToRemove = new ArrayList; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + if (!$hasProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY))) { + continue; + } + nodeInPort = null; + nodeOutPort = null; + nodeOriginPort = null; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 4: + nodeInPort = port; + break; + case 2: + nodeOutPort = port; + break; + default:nodeOriginPort = port; + } + } + nodeToOriginEdge = castTo($get_11(nodeOriginPort.outgoingEdges, 0), 17); + incomingEdgeBendPoints = new KVectorChain_0(nodeToOriginEdge.bendPoints); + firstBendPoint = new KVector_2(nodeOriginPort.pos); + $add_19(firstBendPoint, node.pos); + iter = $listIterator_2(incomingEdgeBendPoints, 0); + $add_8(iter, firstBendPoint); + outgoingEdgeBendPoints = reverse_3(nodeToOriginEdge.bendPoints); + lastBendPoint = new KVector_2(nodeOriginPort.pos); + $add_19(lastBendPoint, node.pos); + $addNode_0(outgoingEdgeBendPoints, lastBendPoint, outgoingEdgeBendPoints.tail.prev, outgoingEdgeBendPoints.tail); + replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); + replacedDummyPort = castTo($get_11(replacedDummy.ports, 0), 11); + edges = castTo($toArray_2(nodeInPort.incomingEdges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, 0, 0, 1)), 474); + for (edge$array0 = edges , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { + edge = edge$array0[edge$index0]; + $setTarget_0(edge, replacedDummyPort); + $addAllAsCopies(edge.bendPoints, edge.bendPoints.size_0, incomingEdgeBendPoints); + } + edges = toEdgeArray(nodeOutPort.outgoingEdges); + for (edge$array = edges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, replacedDummyPort); + $addAllAsCopies(edge.bendPoints, 0, outgoingEdgeBendPoints); + } + $setSource_0(nodeToOriginEdge, null); + $setTarget_0(nodeToOriginEdge, null); + nodesToRemove.array[nodesToRemove.array.length] = node; + } + } + for (node$iterator = new ArrayList$1(nodesToRemove); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } +} + +function $restoreDummy(dummy, graph){ + var currentY, dummyPort, label_0, label$iterator, labelLabelSpacing, portLabelPlacement, portLabelSpacingHorizontal, portLabelSpacingVertical, portSide, xCenterRelativeToPort; + portSide = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + portSide == ($clinit_PortSide() , NORTH_3)?$setSide(dummyPort, SOUTH_2):portSide == SOUTH_2 && $setSide(dummyPort, NORTH_3); + if (castTo($getProperty(graph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS))) { + portLabelSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_HORIZONTAL))); + portLabelSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); + portLabelPlacement = castTo($getProperty(graph, PORT_LABELS_PLACEMENT_1), 21); + if (portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { + currentY = portLabelSpacingVertical; + xCenterRelativeToPort = dummy.size_0.x_0 / 2 - dummyPort.pos.x_0; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + label_0.pos.y_0 = currentY; + label_0.pos.x_0 = xCenterRelativeToPort - label_0.size_0.x_0 / 2; + currentY += label_0.size_0.y_0 + labelLabelSpacing; + } + } + else if (portLabelPlacement.contains(OUTSIDE_0)) { + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + label_0.pos.x_0 = portLabelSpacingHorizontal + dummy.size_0.x_0 - dummyPort.pos.x_0; + } + } + $processNode(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(graph, false, false, new LGraphAdapters$lambda$0$Type))), new LGraphAdapters$LNodeAdapter(null, dummy, false)); + } +} + +function $restoreNorthSouthDummies(layeredGraph){ + var dummy, dummy$iterator, dummy$iterator0, layer, layer$iterator, node, node$iterator, replacedDummy, restoredDummies, outPort, extPortSide, inPort, edge; + restoredDummies = new ArrayList; + if (!$hasProperty(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES))) { + return restoredDummies; + } + for (dummy$iterator0 = castTo($getProperty(layeredGraph, EXT_PORT_REPLACED_DUMMIES), 15).iterator_0(); dummy$iterator0.hasNext_0();) { + dummy = castTo(dummy$iterator0.next_1(), 10); + $restoreDummy(dummy, layeredGraph); + restoredDummies.array[restoredDummies.array.length] = dummy; + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); + !!replacedDummy && (outPort = new LPort , $setNode(outPort, node) , extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61) , $setSide(outPort, extPortSide) , inPort = castTo($get_11(replacedDummy.ports, 0), 11) , edge = new LEdge , $setSource_0(edge, outPort) , $setTarget_0(edge, inPort) , undefined); + } + } + for (dummy$iterator = new ArrayList$1(restoredDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + $setLayer_0(dummy, castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29)); + } + return restoredDummies; +} + +function $restoreProperOrder(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); + sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$2); + $assignAscendingCoordinates(dummyArray, graph); +} + +function $routeEdges(this$static, layeredGraph, northSouthDummies){ + var edge, edge$iterator, edgeSpacing, hierarchicalPortDummy, hierarchicalPortDummy$iterator, nodeSpacing, northernSourceLayer, northernTargetLayer, portSide, routingGenerator, slots, southernSourceLayer, southernTargetLayer; + northernSourceLayer = new LinkedHashSet; + northernTargetLayer = new LinkedHashSet; + southernSourceLayer = new LinkedHashSet; + southernTargetLayer = new LinkedHashSet; + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + for (hierarchicalPortDummy$iterator = new ArrayList$1(northSouthDummies); hierarchicalPortDummy$iterator.i < hierarchicalPortDummy$iterator.this$01.array.length;) { + hierarchicalPortDummy = castTo($next_7(hierarchicalPortDummy$iterator), 10); + portSide = castTo($getProperty(hierarchicalPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (portSide == ($clinit_PortSide() , NORTH_3)) { + northernTargetLayer.map_0.put(hierarchicalPortDummy, northernTargetLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $add_6(northernSourceLayer, edge.source.owner); + } + } + else if (portSide == SOUTH_2) { + southernTargetLayer.map_0.put(hierarchicalPortDummy, southernTargetLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $add_6(southernSourceLayer, edge.source.owner); + } + } + } + if (northernSourceLayer.map_0.size_1() != 0) { + routingGenerator = new OrthogonalRoutingGenerator(2, edgeSpacing); + slots = $routeEdges_0(routingGenerator, layeredGraph, northernSourceLayer, northernTargetLayer, -nodeSpacing - layeredGraph.offset.y_0); + if (slots > 0) { + this$static.northernExtPortEdgeRoutingHeight = nodeSpacing + (slots - 1) * edgeSpacing; + layeredGraph.offset.y_0 += this$static.northernExtPortEdgeRoutingHeight; + layeredGraph.size_0.y_0 += this$static.northernExtPortEdgeRoutingHeight; + } + } + if (southernSourceLayer.map_0.size_1() != 0) { + routingGenerator = new OrthogonalRoutingGenerator(1, edgeSpacing); + slots = $routeEdges_0(routingGenerator, layeredGraph, southernSourceLayer, southernTargetLayer, layeredGraph.size_0.y_0 + nodeSpacing - layeredGraph.offset.y_0); + slots > 0 && (layeredGraph.size_0.y_0 += nodeSpacing + (slots - 1) * edgeSpacing); + } +} + +function $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies){ + var constraints, dummy, dummy$iterator, graphPadding, graphSize, graphWidth, northY, northernDummies, southY, southernDummies, anchor, offset, anchor_0, offset_0; + constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + graphSize = layeredGraph.size_0; + graphPadding = layeredGraph.padding; + graphWidth = graphSize.x_0 + graphPadding.left + graphPadding.right; + northY = 0 - graphPadding.top_0 - layeredGraph.offset.y_0; + southY = graphSize.y_0 + graphPadding.top_0 + graphPadding.bottom - layeredGraph.offset.y_0; + northernDummies = new ArrayList; + southernDummies = new ArrayList; + for (dummy$iterator = new ArrayList$1(northSouthDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + switch (constraints.ordinal) { + case 1: + case 2: + case 3: + $calculateNorthSouthDummyPositions(dummy); + break; + case 4: + anchor = castTo($getProperty(dummy, PORT_ANCHOR), 8); + offset = !anchor?0:anchor.x_0; + dummy.pos.x_0 = graphWidth * $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset; + $borderToContentAreaCoordinates(dummy, true, false); + break; + case 5: + anchor_0 = castTo($getProperty(dummy, PORT_ANCHOR), 8); + offset_0 = !anchor_0?0:anchor_0.x_0; + dummy.pos.x_0 = $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset_0; + $borderToContentAreaCoordinates(dummy, true, false); + graphSize.x_0 = $wnd.Math.max(graphSize.x_0, dummy.pos.x_0 + dummy.size_0.x_0 / 2); + } + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + dummy.pos.y_0 = northY; + northernDummies.array[northernDummies.array.length] = dummy; + break; + case 3: + dummy.pos.y_0 = southY; + southernDummies.array[southernDummies.array.length] = dummy; + } + } + switch (constraints.ordinal) { + case 1: + case 2: + $ensureUniquePositions(northernDummies, layeredGraph); + $ensureUniquePositions(southernDummies, layeredGraph); + break; + case 3: + $restoreProperOrder(northernDummies, layeredGraph); + $restoreProperOrder(southernDummies, layeredGraph); + } +} + +function HierarchicalPortOrthogonalEdgeRouter(){ +} + +defineClass(1514, 1, $intern_105, HierarchicalPortOrthogonalEdgeRouter); +_.process = function process_14(layeredGraph, monitor){ + $process_16(this, castTo(layeredGraph, 37), monitor); +} +; +_.northernExtPortEdgeRoutingHeight = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter', 1514); +function $compare_13(a, b){ + return compare_4(a.pos.x_0, b.pos.x_0); +} + +function HierarchicalPortOrthogonalEdgeRouter$1(){ +} + +defineClass(1515, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$1); +_.compare_1 = function compare_44(a, b){ + return $compare_13(castTo(a, 10), castTo(b, 10)); +} +; +_.equals_0 = function equals_108(other){ + return this === other; +} +; +_.reversed = function reversed_36(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/1', 1515); +function $compare_14(a, b){ + return compare_4($doubleValue(castToDouble($getProperty(a, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))), $doubleValue(castToDouble($getProperty(b, PORT_RATIO_OR_POSITION_0)))); +} + +function HierarchicalPortOrthogonalEdgeRouter$2(){ +} + +defineClass(1516, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$2); +_.compare_1 = function compare_45(a, b){ + return $compare_14(castTo(a, 10), castTo(b, 10)); +} +; +_.equals_0 = function equals_109(other){ + return this === other; +} +; +_.reversed = function reversed_37(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/2', 1516); +function $fixCoordinates_0(layer, layeredGraph){ + var extPortSide, finalYCoordinate, graphHeight, node, node$iterator, portConstraints; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + if (!(portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || portConstraints == FIXED_POS)) { + return; + } + graphHeight = (new KVector_1(layeredGraph.size_0.x_0 + layeredGraph.padding.left + layeredGraph.padding.right, layeredGraph.size_0.y_0 + layeredGraph.padding.top_0 + layeredGraph.padding.bottom)).y_0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (extPortSide != ($clinit_PortSide() , EAST_2) && extPortSide != WEST_2) { + continue; + } + finalYCoordinate = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); + portConstraints == FIXED_RATIO && (finalYCoordinate *= graphHeight); + node.pos.y_0 = finalYCoordinate - castTo($getProperty(node, PORT_ANCHOR), 8).y_0; + $borderToContentAreaCoordinates(node, false, true); + } +} + +function $process_17(layeredGraph, monitor){ + var layers; + $begin(monitor, 'Hierarchical port position processing', 1); + layers = layeredGraph.layers; + layers.array.length > 0 && $fixCoordinates_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), layeredGraph); + layers.array.length > 1 && $fixCoordinates_0(castTo($get_11(layers, layers.array.length - 1), 29), layeredGraph); + $done_0(monitor); +} + +function HierarchicalPortPositionProcessor(){ +} + +defineClass(1517, 1, $intern_105, HierarchicalPortPositionProcessor); +_.process = function process_15(layeredGraph, monitor){ + $process_17(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortPositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortPositionProcessor', 1517); +function $clinit_HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor = emptyMethod; + INCOMING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$0$Type; + OUTGOING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$1$Type; +} + +function $calculateInformation(this$static, hdn){ + var hdni, incEdge, incEdge$iterator, outEdge, outEdge$iterator, src_0, tgt, treeHeight; + hdni = new HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation; + for (incEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incEdge$iterator);) { + incEdge = castTo($next_0(incEdge$iterator), 17); + if ($isSelfLoop(incEdge)) { + continue; + } + src_0 = incEdge.source.owner; + if ($hasSingleConnection(src_0, OUTGOING_EDGES)) { + treeHeight = $isTreeRoot(this$static, src_0, OUTGOING_EDGES, INCOMING_EDGES); + if (treeHeight == -1) { + continue; + } + hdni.incTreesMaxHeight = $wnd.Math.max(hdni.incTreesMaxHeight, treeHeight); + !hdni.incTreeRoots && (hdni.incTreeRoots = new ArrayList); + $add_3(hdni.incTreeRoots, src_0); + } + } + for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { + outEdge = castTo($next_0(outEdge$iterator), 17); + if ($isSelfLoop(outEdge)) { + continue; + } + tgt = outEdge.target.owner; + if ($hasSingleConnection(tgt, INCOMING_EDGES)) { + treeHeight = $isTreeRoot(this$static, tgt, INCOMING_EDGES, OUTGOING_EDGES); + if (treeHeight == -1) { + continue; + } + hdni.outTreesMaxHeight = $wnd.Math.max(hdni.outTreesMaxHeight, treeHeight); + !hdni.outTreeRoots && (hdni.outTreeRoots = new ArrayList); + $add_3(hdni.outTreeRoots, tgt); + } + } + return hdni; +} + +function $hasSingleConnection(node, edgeSelector){ + var connection, e, e$iterator; + connection = null; + for (e$iterator = castTo(edgeSelector.apply_0(node), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + if (!connection) { + connection = e.source.owner == node?e.target.owner:e.source.owner; + } + else { + if ((e.source.owner == node?e.target.owner:e.source.owner) != connection) { + return false; + } + } + } + return true; +} + +function $isTreeRoot(this$static, root, ancestorEdges, descendantEdges){ + var currentHeight, e, e$iterator, height, other; + if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(root).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { + return -1; + } + if (!$hasSingleConnection(root, ancestorEdges)) { + return -1; + } + if (isEmpty_13(castTo(descendantEdges.apply_0(root), 20))) { + return 1; + } + currentHeight = 0; + for (e$iterator = castTo(descendantEdges.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + other = e.source.owner == root?e.target.owner:e.source.owner; + height = $isTreeRoot(this$static, other, ancestorEdges, descendantEdges); + if (height == -1) { + return -1; + } + currentHeight = $wnd.Math.max(currentHeight, height); + if (currentHeight > this$static.treeHeightThreshold - 1) { + return -1; + } + } + return currentHeight + 1; +} + +function $moveTree(this$static, root, edgesFun, layers){ + var e, e$iterator, other, subList; + $setLayer_0(root, castTo(layers.get_0(0), 29)); + subList = layers.subList(1, layers.size_1()); + for (e$iterator = castTo(edgesFun.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + other = e.source.owner == root?e.target.owner:e.source.owner; + $moveTree(this$static, other, edgesFun, subList); + } +} + +function $process_18(this$static, graph){ + var afterLayers, hdni, highDegreeNode, highDegreeNode$iterator, highDegreeNode$iterator0, highDegreeNodes, i, i0, incMax, incRoot, incRoot$iterator, incRoots, l, lay, layerIt, layerIt2, n, n$iterator, outMax, outRoot, outRoot$iterator, outRoots, preLayers, l_0, l_1; + this$static.layeredGraph = graph; + this$static.degreeThreshold = castTo($getProperty(graph, ($clinit_LayeredOptions() , HIGH_DEGREE_NODES_THRESHOLD_0)), 19).value_0; + this$static.treeHeightThreshold = castTo($getProperty(graph, HIGH_DEGREE_NODES_TREE_HEIGHT_0), 19).value_0; + this$static.treeHeightThreshold == 0 && (this$static.treeHeightThreshold = $intern_0); + layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (layerIt.i < layerIt.this$01_0.size_1()) { + lay = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); + highDegreeNodes = new ArrayList; + incMax = -1; + outMax = -1; + for (n$iterator = new ArrayList$1(lay.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(n).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { + hdni = $calculateInformation(this$static, n); + incMax = $wnd.Math.max(incMax, hdni.incTreesMaxHeight); + outMax = $wnd.Math.max(outMax, hdni.outTreesMaxHeight); + $add_3(highDegreeNodes, new Pair(n, hdni)); + } + } + preLayers = new ArrayList; + for (i0 = 0; i0 < incMax; ++i0) { + $add_2(preLayers, 0, (checkCriticalElement(layerIt.i > 0) , layerIt.this$01.get_0(layerIt.last = --layerIt.i) , l_0 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_0) , checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , layerIt.this$01_0.get_0(layerIt.last = layerIt.i++) , l_0)); + } + for (highDegreeNode$iterator0 = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator0.i < highDegreeNode$iterator0.this$01.array.length;) { + highDegreeNode = castTo($next_7(highDegreeNode$iterator0), 46); + incRoots = castTo(highDegreeNode.second, 571).incTreeRoots; + if (!incRoots) { + continue; + } + for (incRoot$iterator = new ArrayList$1(incRoots); incRoot$iterator.i < incRoot$iterator.this$01.array.length;) { + incRoot = castTo($next_7(incRoot$iterator), 10); + $moveTree(this$static, incRoot, INCOMING_EDGES, preLayers); + } + } + afterLayers = new ArrayList; + for (i = 0; i < outMax; ++i) { + $add_3(afterLayers, (l_1 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_1) , l_1)); + } + for (highDegreeNode$iterator = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator.i < highDegreeNode$iterator.this$01.array.length;) { + highDegreeNode = castTo($next_7(highDegreeNode$iterator), 46); + outRoots = castTo(highDegreeNode.second, 571).outTreeRoots; + if (!outRoots) { + continue; + } + for (outRoot$iterator = new ArrayList$1(outRoots); outRoot$iterator.i < outRoot$iterator.this$01.array.length;) { + outRoot = castTo($next_7(outRoot$iterator), 10); + $moveTree(this$static, outRoot, OUTGOING_EDGES, afterLayers); + } + } + } + layerIt2 = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (layerIt2.i < layerIt2.this$01_0.size_1()) { + l = (checkCriticalElement(layerIt2.i < layerIt2.this$01_0.size_1()) , castTo(layerIt2.this$01_0.get_0(layerIt2.last = layerIt2.i++), 29)); + l.nodes.array.length == 0 && $remove_8(layerIt2); + } +} + +function HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor(); +} + +defineClass(1518, 1, $intern_105, HighDegreeNodeLayeringProcessor); +_.process = function process_16(graph, progressMonitor){ + $process_18(this, castTo(graph, 37)); +} +; +_.degreeThreshold = 0; +_.treeHeightThreshold = 0; +var INCOMING_EDGES, OUTGOING_EDGES; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor', 1518); +function HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation(){ +} + +defineClass(571, 1, {571:1}, HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation); +_.incTreesMaxHeight = -1; +_.outTreesMaxHeight = -1; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation', 571); +function HighDegreeNodeLayeringProcessor$lambda$0$Type(){ +} + +defineClass(1519, 1, {}, HighDegreeNodeLayeringProcessor$lambda$0$Type); +_.apply_0 = function apply_80(arg0){ + return $clinit_HighDegreeNodeLayeringProcessor() , $getIncomingEdges(castTo(arg0, 10)); +} +; +_.equals_0 = function equals_110(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$0$Type', 1519); +function HighDegreeNodeLayeringProcessor$lambda$1$Type(){ +} + +defineClass(1520, 1, {}, HighDegreeNodeLayeringProcessor$lambda$1$Type); +_.apply_0 = function apply_81(arg0){ + return $clinit_HighDegreeNodeLayeringProcessor() , $getOutgoingEdges(castTo(arg0, 10)); +} +; +_.equals_0 = function equals_111(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$1$Type', 1520); +function $checkMergeAllowed(currNode, lastNode){ + var currHasLabelDummies, currNodeSource, currNodeTarget, eligibleForSourceMerging, eligibleForTargetMerging, lastHasLabelDummies, lastNodeSource, lastNodeTarget, sameSource, sameTarget; + currHasLabelDummies = $booleanValue(castToBoolean($getProperty(currNode, ($clinit_InternalProperties_1() , LONG_EDGE_HAS_LABEL_DUMMIES)))); + lastHasLabelDummies = $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))); + currNodeSource = castTo($getProperty(currNode, LONG_EDGE_SOURCE), 11); + lastNodeSource = castTo($getProperty(lastNode, LONG_EDGE_SOURCE), 11); + currNodeTarget = castTo($getProperty(currNode, LONG_EDGE_TARGET), 11); + lastNodeTarget = castTo($getProperty(lastNode, LONG_EDGE_TARGET), 11); + sameSource = !!currNodeSource && currNodeSource == lastNodeSource; + sameTarget = !!currNodeTarget && currNodeTarget == lastNodeTarget; + if (!currHasLabelDummies && !lastHasLabelDummies) { + return new HyperedgeDummyMerger$MergeState(castTo($next_7(new ArrayList$1(currNode.ports)), 11).id_0 == castTo($next_7(new ArrayList$1(lastNode.ports)), 11).id_0, sameSource, sameTarget); + } + eligibleForSourceMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); + eligibleForTargetMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); + return new HyperedgeDummyMerger$MergeState(sameSource && eligibleForSourceMerging || sameTarget && eligibleForTargetMerging, sameSource, sameTarget); +} + +function $dfs_2(this$static, p, index_0){ + var p2, p2$iterator, p2$iterator0; + p.id_0 = index_0; + for (p2$iterator0 = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(p), new LPort$2(p)]))); $hasNext_1(p2$iterator0);) { + p2 = castTo($next_0(p2$iterator0), 11); + p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); + } + if (p.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (p2$iterator = new ArrayList$1(p.owner.ports); p2$iterator.i < p2$iterator.this$01.array.length;) { + p2 = castTo($next_7(p2$iterator), 11); + p2 != p && p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); + } + } +} + +function $identifyHyperedges(this$static, lGraph){ + var index_0, p, p$iterator, ports; + ports = castTo($collect_1($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layers, 16)), new HyperedgeDummyMerger$lambda$0$Type), new HyperedgeDummyMerger$lambda$1$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + ports.forEach_0(new HyperedgeDummyMerger$lambda$2$Type); + index_0 = 0; + for (p$iterator = ports.iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 11); + p.id_0 == -1 && $dfs_2(this$static, p, index_0++); + } +} + +function $mergeNodes(mergeSource, mergeTarget, keepSourcePort, keepTargetPort){ + var mergeTargetInputPort, mergeTargetOutputPort, port, port$iterator; + mergeTargetInputPort = castTo($getPorts_1(mergeTarget, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); + mergeTargetOutputPort = castTo($getPorts_1(mergeTarget, EAST_2).iterator_0().next_1(), 11); + for (port$iterator = new ArrayList$1(mergeSource.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + while (port.incomingEdges.array.length != 0) { + $setTarget_0(castTo($get_11(port.incomingEdges, 0), 17), mergeTargetInputPort); + } + while (port.outgoingEdges.array.length != 0) { + $setSource_0(castTo($get_11(port.outgoingEdges, 0), 17), mergeTargetOutputPort); + } + } + keepSourcePort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), null); + keepTargetPort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), null); +} + +function $process_19(this$static, layeredGraph, monitor){ + var currNode, currNodeType, lastNode, lastNodeType, layer, layerIter, nodeIndex, nodes, state; + $begin(monitor, 'Hyperedge merging', 1); + $identifyHyperedges(this$static, layeredGraph); + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + currNode = null; + currNodeType = null; + lastNode = null; + lastNodeType = null; + for (nodeIndex = 0; nodeIndex < nodes.array.length; nodeIndex++) { + currNode = (checkCriticalElementIndex(nodeIndex, nodes.array.length) , castTo(nodes.array[nodeIndex], 10)); + currNodeType = currNode.type_0; + if (currNodeType == ($clinit_LNode$NodeType() , LONG_EDGE) && lastNodeType == LONG_EDGE) { + state = $checkMergeAllowed(currNode, lastNode); + if (state.allowMerge) { + $mergeNodes(currNode, lastNode, state.sameSource, state.sameTarget); + checkCriticalElementIndex(nodeIndex, nodes.array.length); + removeFrom(nodes.array, nodeIndex, 1); + --nodeIndex; + currNode = lastNode; + currNodeType = lastNodeType; + } + } + lastNode = currNode; + lastNodeType = currNodeType; + } + } + $done_0(monitor); +} + +function HyperedgeDummyMerger(){ +} + +defineClass(1526, 1, $intern_105, HyperedgeDummyMerger); +_.process = function process_17(layeredGraph, monitor){ + $process_19(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger', 1526); +function HyperedgeDummyMerger$MergeState(allowMerge, sameSource, sameTarget){ + this.allowMerge = allowMerge; + this.sameSource = sameSource; + this.sameTarget = sameTarget; +} + +defineClass(793, 1, {}, HyperedgeDummyMerger$MergeState); +_.allowMerge = false; +_.sameSource = false; +_.sameTarget = false; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$MergeState_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/MergeState', 793); +function HyperedgeDummyMerger$lambda$0$Type(){ +} + +defineClass(1527, 1, {}, HyperedgeDummyMerger$lambda$0$Type); +_.apply_0 = function apply_82(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$0$Type', 1527); +function HyperedgeDummyMerger$lambda$1$Type(){ +} + +defineClass(1528, 1, {}, HyperedgeDummyMerger$lambda$1$Type); +_.apply_0 = function apply_83(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 10).ports, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$1$Type', 1528); +function HyperedgeDummyMerger$lambda$2$Type(){ +} + +defineClass(1529, 1, $intern_19, HyperedgeDummyMerger$lambda$2$Type); +_.accept = function accept_74(arg0){ + castTo(arg0, 11).id_0 = -1; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$2$Type', 1529); +function $moveHypernode(layeredGraph, hypernode, right){ + var bendEdges, bendx, diffx, diffy, edge, edge$iterator, first, firstPoint, junctionPoints, lastPoint, northPort, port, port$iterator, second, southPort; + bendEdges = new ArrayList; + bendx = $intern_0; + diffx = $intern_0; + diffy = $intern_0; + if (right) { + bendx = layeredGraph.size_0.x_0; + for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (edge.bendPoints.size_0 != 0) { + firstPoint = castTo($getFirst(edge.bendPoints), 8); + if (firstPoint.x_0 < bendx) { + diffx = bendx - firstPoint.x_0; + diffy = $intern_0; + bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + bendx = firstPoint.x_0; + } + if (firstPoint.x_0 <= bendx) { + bendEdges.array[bendEdges.array.length] = edge; + edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, 1), 8).y_0 - firstPoint.y_0))); + } + } + } + } + } + else { + for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (edge.bendPoints.size_0 != 0) { + lastPoint = castTo($getLast(edge.bendPoints), 8); + if (lastPoint.x_0 > bendx) { + diffx = lastPoint.x_0 - bendx; + diffy = $intern_0; + bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + bendx = lastPoint.x_0; + } + if (lastPoint.x_0 >= bendx) { + bendEdges.array[bendEdges.array.length] = edge; + edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, edge.bendPoints.size_0 - 2), 8).y_0 - lastPoint.y_0))); + } + } + } + } + } + if (bendEdges.array.length != 0 && diffx > hypernode.size_0.x_0 / 2 && diffy > hypernode.size_0.y_0 / 2) { + northPort = new LPort; + $setNode(northPort, hypernode); + $setSide(northPort, ($clinit_PortSide() , NORTH_3)); + northPort.pos.x_0 = hypernode.size_0.x_0 / 2; + southPort = new LPort; + $setNode(southPort, hypernode); + $setSide(southPort, SOUTH_2); + southPort.pos.x_0 = hypernode.size_0.x_0 / 2; + southPort.pos.y_0 = hypernode.size_0.y_0; + for (edge$iterator = new ArrayList$1(bendEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (right) { + first = castTo($removeFirst_0(edge.bendPoints), 8); + second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.target):castTo($getFirst(edge.bendPoints), 8); + second.y_0 >= first.y_0?$setSource_0(edge, southPort):$setSource_0(edge, northPort); + } + else { + first = castTo($removeLast_0(edge.bendPoints), 8); + second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.source):castTo($getLast(edge.bendPoints), 8); + second.y_0 >= first.y_0?$setTarget_0(edge, southPort):$setTarget_0(edge, northPort); + } + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $advanceToFind(junctionPoints, first, true); + } + hypernode.pos.x_0 = bendx - hypernode.size_0.x_0 / 2; + } +} + +function $process_20(layeredGraph, monitor){ + var bottomEdges, layer, layer$iterator, leftEdges, node, node$iterator, port, port$iterator, rightEdges, topEdges; + $begin(monitor, 'Hypernodes processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , HYPERNODE)))) && node.ports.array.length <= 2) { + topEdges = 0; + rightEdges = 0; + bottomEdges = 0; + leftEdges = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 1: + ++topEdges; + break; + case 2: + ++rightEdges; + break; + case 3: + ++bottomEdges; + break; + case 4: + ++leftEdges; + } + } + topEdges == 0 && bottomEdges == 0 && $moveHypernode(layeredGraph, node, leftEdges <= rightEdges); + } + } + } + $done_0(monitor); +} + +function HypernodesProcessor(){ +} + +defineClass(1530, 1, $intern_105, HypernodesProcessor); +_.process = function process_18(layeredGraph, monitor){ + $process_20(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HypernodesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HypernodesProcessor', 1530); +function $process_21(layeredGraph, monitor){ + var bottomConstrainedNodes, constraint, i, layer, layer$iterator, node, node$iterator, nodes, topInsertionIndex; + $begin(monitor, 'Layer constraint edge reversal', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + topInsertionIndex = -1; + bottomConstrainedNodes = new ArrayList; + nodes = toNodeArray(layer.nodes); + for (i = 0; i < nodes.length; i++) { + constraint = castTo($getProperty(nodes[i], ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); + if (topInsertionIndex == -1) { + constraint != ($clinit_InLayerConstraint() , TOP_1) && (topInsertionIndex = i); + } + else { + if (constraint == ($clinit_InLayerConstraint() , TOP_1)) { + $setLayer_0(nodes[i], null); + $setLayer(nodes[i], topInsertionIndex++, layer); + } + } + constraint == ($clinit_InLayerConstraint() , BOTTOM_0) && $add_3(bottomConstrainedNodes, nodes[i]); + } + for (node$iterator = new ArrayList$1(bottomConstrainedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + $setLayer_0(node, layer); + } + } + $done_0(monitor); +} + +function InLayerConstraintProcessor(){ +} + +defineClass(1531, 1, $intern_105, InLayerConstraintProcessor); +_.process = function process_19(layeredGraph, monitor){ + $process_21(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InLayerConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InLayerConstraintProcessor', 1531); +function $process_22(layeredGraph, monitor){ + $begin(monitor, 'Node margin calculation', 1); + $process($excludeEdgeHeadTailLabels(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, false, false, new LGraphAdapters$lambda$0$Type))))); + $done_0(monitor); +} + +function InnermostNodeMarginCalculator(){ +} + +defineClass(1532, 1, $intern_105, InnermostNodeMarginCalculator); +_.process = function process_20(layeredGraph, monitor){ + $process_22(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InnermostNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InnermostNodeMarginCalculator', 1532); +function $findNorthSouthPortXCoordinate(dummy){ + var e, e$iterator, margins, max_0, min_0, n, port; + port = castTo($get_11(dummy.ports, 0), 11); + if (port.outgoingEdges.array.length != 0 && port.incomingEdges.array.length != 0) { + throw toJs(new IllegalStateException_0('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.')); + } + if (port.outgoingEdges.array.length != 0) { + min_0 = $intern_59; + for (e$iterator = new ArrayList$1(port.outgoingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + n = e.target.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); + min_0 = $wnd.Math.min(min_0, n.pos.x_0 - margins.left); + } + return new Present(checkNotNull(min_0)); + } + if (port.incomingEdges.array.length != 0) { + max_0 = $intern_60; + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + n = e.source.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); + max_0 = $wnd.Math.max(max_0, n.pos.x_0 + n.size_0.x_0 + margins.right); + } + return new Present(checkNotNull(max_0)); + } + return $clinit_Absent() , $clinit_Absent() , INSTANCE; +} + +function $findYCoordinate(dummy, funGetOtherNode){ + var e, e$iterator, other; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(dummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + other = castTo(funGetOtherNode.apply_0(e), 10); + return new Present(checkNotNull(other.pos.y_0 + other.size_0.y_0 / 2)); + } + return $clinit_Absent() , $clinit_Absent() , INSTANCE; +} + +function $process_23(this$static, layeredGraph){ + var ilc, lc, margins, node, node$iterator, node$iterator0; + if (!castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + return; + } + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + margins = castTo($getProperty(node, ($clinit_LayeredOptions() , MARGINS)), 142); + this$static.minX = $wnd.Math.min(this$static.minX, node.pos.x_0 - margins.left); + this$static.maxX = $wnd.Math.max(this$static.maxX, node.pos.x_0 + node.size_0.x_0 + margins.right); + this$static.minY = $wnd.Math.min(this$static.minY, node.pos.y_0 - margins.top_0); + this$static.maxY = $wnd.Math.max(this$static.maxY, node.pos.y_0 + node.size_0.y_0 + margins.bottom); + } + } + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + switch (node.type_0.ordinal) { + case 2: + lc = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (lc == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + node.pos.x_0 = this$static.minX - 10; + $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$0$Type).transform(new InteractiveExternalPortPositioner$lambda$1$Type(node)); + break; + } + + if (lc == LAST_SEPARATE_0) { + node.pos.x_0 = this$static.maxX + 10; + $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$2$Type).transform(new InteractiveExternalPortPositioner$lambda$3$Type(node)); + break; + } + + ilc = castTo($getProperty(node, IN_LAYER_CONSTRAINT), 303); + if (ilc == ($clinit_InLayerConstraint() , TOP_1)) { + $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$4$Type(node)); + node.pos.y_0 = this$static.minY - 10; + break; + } + + if (ilc == BOTTOM_0) { + $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$5$Type(node)); + node.pos.y_0 = this$static.maxY + 10; + break; + } + + break; + default:throw toJs(new IllegalArgumentException_0('The node type ' + node.type_0 + ' is not supported by the ' + Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit)); + } + } + } +} + +function InteractiveExternalPortPositioner(){ +} + +function lambda$1_9(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$3_1(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$4_4(node_0, x_1){ + return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; +} + +function lambda$5_1(node_0, x_1){ + return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; +} + +defineClass(1533, 1, $intern_105, InteractiveExternalPortPositioner); +_.process = function process_21(layeredGraph, progressMonitor){ + $process_23(this, castTo(layeredGraph, 37)); +} +; +_.maxX = $intern_60; +_.maxY = $intern_60; +_.minX = $intern_59; +_.minY = $intern_59; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner', 1533); +function InteractiveExternalPortPositioner$lambda$0$Type(){ +} + +defineClass(1534, 1, {}, InteractiveExternalPortPositioner$lambda$0$Type); +_.apply_0 = function apply_84(arg0){ + return castTo(arg0, 17).target.owner; +} +; +_.equals_0 = function equals_112(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$0$Type', 1534); +function InteractiveExternalPortPositioner$lambda$1$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1535, 1, {}, InteractiveExternalPortPositioner$lambda$1$Type); +_.apply_0 = function apply_85(arg0){ + return lambda$1_9(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_113(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$1$Type', 1535); +function InteractiveExternalPortPositioner$lambda$2$Type(){ +} + +defineClass(1536, 1, {}, InteractiveExternalPortPositioner$lambda$2$Type); +_.apply_0 = function apply_86(arg0){ + return castTo(arg0, 17).source.owner; +} +; +_.equals_0 = function equals_114(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$2$Type', 1536); +function InteractiveExternalPortPositioner$lambda$3$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1537, 1, {}, InteractiveExternalPortPositioner$lambda$3$Type); +_.apply_0 = function apply_87(arg0){ + return lambda$3_1(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_115(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$3$Type', 1537); +function InteractiveExternalPortPositioner$lambda$4$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1538, 1, {}, InteractiveExternalPortPositioner$lambda$4$Type); +_.apply_0 = function apply_88(arg0){ + return lambda$4_4(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_116(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$4$Type', 1538); +function InteractiveExternalPortPositioner$lambda$5$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1539, 1, {}, InteractiveExternalPortPositioner$lambda$5$Type); +_.apply_0 = function apply_89(arg0){ + return lambda$5_1(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_117(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$5$Type', 1539); +function $clinit_IntermediateProcessorStrategy(){ + $clinit_IntermediateProcessorStrategy = emptyMethod; + DIRECTION_PREPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_PREPROCESSOR', 0); + COMMENT_PREPROCESSOR = new IntermediateProcessorStrategy('COMMENT_PREPROCESSOR', 1); + EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER = new IntermediateProcessorStrategy('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER', 2); + INTERACTIVE_EXTERNAL_PORT_POSITIONER = new IntermediateProcessorStrategy('INTERACTIVE_EXTERNAL_PORT_POSITIONER', 3); + PARTITION_PREPROCESSOR = new IntermediateProcessorStrategy('PARTITION_PREPROCESSOR', 4); + LABEL_DUMMY_INSERTER = new IntermediateProcessorStrategy('LABEL_DUMMY_INSERTER', 5); + SELF_LOOP_PREPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_PREPROCESSOR', 6); + LAYER_CONSTRAINT_PREPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_PREPROCESSOR', 7); + PARTITION_MIDPROCESSOR = new IntermediateProcessorStrategy('PARTITION_MIDPROCESSOR', 8); + HIGH_DEGREE_NODE_LAYER_PROCESSOR = new IntermediateProcessorStrategy('HIGH_DEGREE_NODE_LAYER_PROCESSOR', 9); + NODE_PROMOTION = new IntermediateProcessorStrategy('NODE_PROMOTION', 10); + LAYER_CONSTRAINT_POSTPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_POSTPROCESSOR', 11); + PARTITION_POSTPROCESSOR = new IntermediateProcessorStrategy('PARTITION_POSTPROCESSOR', 12); + HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR', 13); + SEMI_INTERACTIVE_CROSSMIN_PROCESSOR = new IntermediateProcessorStrategy('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR', 14); + BREAKING_POINT_INSERTER = new IntermediateProcessorStrategy('BREAKING_POINT_INSERTER', 15); + LONG_EDGE_SPLITTER = new IntermediateProcessorStrategy('LONG_EDGE_SPLITTER', 16); + PORT_SIDE_PROCESSOR = new IntermediateProcessorStrategy('PORT_SIDE_PROCESSOR', 17); + INVERTED_PORT_PROCESSOR = new IntermediateProcessorStrategy('INVERTED_PORT_PROCESSOR', 18); + PORT_LIST_SORTER = new IntermediateProcessorStrategy('PORT_LIST_SORTER', 19); + SORT_BY_INPUT_ORDER_OF_MODEL = new IntermediateProcessorStrategy('SORT_BY_INPUT_ORDER_OF_MODEL', 20); + NORTH_SOUTH_PORT_PREPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_PREPROCESSOR', 21); + BREAKING_POINT_PROCESSOR = new IntermediateProcessorStrategy('BREAKING_POINT_PROCESSOR', 22); + ONE_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('ONE_SIDED_GREEDY_SWITCH', 23); + TWO_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('TWO_SIDED_GREEDY_SWITCH', 24); + SELF_LOOP_PORT_RESTORER = new IntermediateProcessorStrategy('SELF_LOOP_PORT_RESTORER', 25); + SINGLE_EDGE_GRAPH_WRAPPER = new IntermediateProcessorStrategy('SINGLE_EDGE_GRAPH_WRAPPER', 26); + IN_LAYER_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('IN_LAYER_CONSTRAINT_PROCESSOR', 27); + END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR', 28); + LABEL_AND_NODE_SIZE_PROCESSOR = new IntermediateProcessorStrategy('LABEL_AND_NODE_SIZE_PROCESSOR', 29); + INNERMOST_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('INNERMOST_NODE_MARGIN_CALCULATOR', 30); + SELF_LOOP_ROUTER = new IntermediateProcessorStrategy('SELF_LOOP_ROUTER', 31); + COMMENT_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('COMMENT_NODE_MARGIN_CALCULATOR', 32); + END_LABEL_PREPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_PREPROCESSOR', 33); + LABEL_DUMMY_SWITCHER = new IntermediateProcessorStrategy('LABEL_DUMMY_SWITCHER', 34); + CENTER_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('CENTER_LABEL_MANAGEMENT_PROCESSOR', 35); + LABEL_SIDE_SELECTOR = new IntermediateProcessorStrategy('LABEL_SIDE_SELECTOR', 36); + HYPEREDGE_DUMMY_MERGER = new IntermediateProcessorStrategy('HYPEREDGE_DUMMY_MERGER', 37); + HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR', 38); + LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR = new IntermediateProcessorStrategy('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR', 39); + HIERARCHICAL_PORT_POSITION_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_POSITION_PROCESSOR', 40); + CONSTRAINTS_POSTPROCESSOR = new IntermediateProcessorStrategy('CONSTRAINTS_POSTPROCESSOR', 41); + COMMENT_POSTPROCESSOR = new IntermediateProcessorStrategy('COMMENT_POSTPROCESSOR', 42); + HYPERNODE_PROCESSOR = new IntermediateProcessorStrategy('HYPERNODE_PROCESSOR', 43); + HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER', 44); + LONG_EDGE_JOINER = new IntermediateProcessorStrategy('LONG_EDGE_JOINER', 45); + SELF_LOOP_POSTPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_POSTPROCESSOR', 46); + BREAKING_POINT_REMOVER = new IntermediateProcessorStrategy('BREAKING_POINT_REMOVER', 47); + NORTH_SOUTH_PORT_POSTPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_POSTPROCESSOR', 48); + HORIZONTAL_COMPACTOR = new IntermediateProcessorStrategy('HORIZONTAL_COMPACTOR', 49); + LABEL_DUMMY_REMOVER = new IntermediateProcessorStrategy('LABEL_DUMMY_REMOVER', 50); + FINAL_SPLINE_BENDPOINTS_CALCULATOR = new IntermediateProcessorStrategy('FINAL_SPLINE_BENDPOINTS_CALCULATOR', 51); + END_LABEL_SORTER = new IntermediateProcessorStrategy('END_LABEL_SORTER', 52); + REVERSED_EDGE_RESTORER = new IntermediateProcessorStrategy('REVERSED_EDGE_RESTORER', 53); + END_LABEL_POSTPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_POSTPROCESSOR', 54); + HIERARCHICAL_NODE_RESIZER = new IntermediateProcessorStrategy('HIERARCHICAL_NODE_RESIZER', 55); + DIRECTION_POSTPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_POSTPROCESSOR', 56); +} + +function IntermediateProcessorStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_32(name_0){ + $clinit_IntermediateProcessorStrategy(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map() , $MAP_20), name_0); +} + +function values_38(){ + $clinit_IntermediateProcessorStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 77, 0, [DIRECTION_PREPROCESSOR, COMMENT_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, INTERACTIVE_EXTERNAL_PORT_POSITIONER, PARTITION_PREPROCESSOR, LABEL_DUMMY_INSERTER, SELF_LOOP_PREPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, PARTITION_MIDPROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, NODE_PROMOTION, LAYER_CONSTRAINT_POSTPROCESSOR, PARTITION_POSTPROCESSOR, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, BREAKING_POINT_INSERTER, LONG_EDGE_SPLITTER, PORT_SIDE_PROCESSOR, INVERTED_PORT_PROCESSOR, PORT_LIST_SORTER, SORT_BY_INPUT_ORDER_OF_MODEL, NORTH_SOUTH_PORT_PREPROCESSOR, BREAKING_POINT_PROCESSOR, ONE_SIDED_GREEDY_SWITCH, TWO_SIDED_GREEDY_SWITCH, SELF_LOOP_PORT_RESTORER, SINGLE_EDGE_GRAPH_WRAPPER, IN_LAYER_CONSTRAINT_PROCESSOR, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, SELF_LOOP_ROUTER, COMMENT_NODE_MARGIN_CALCULATOR, END_LABEL_PREPROCESSOR, LABEL_DUMMY_SWITCHER, CENTER_LABEL_MANAGEMENT_PROCESSOR, LABEL_SIDE_SELECTOR, HYPEREDGE_DUMMY_MERGER, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, HIERARCHICAL_PORT_POSITION_PROCESSOR, CONSTRAINTS_POSTPROCESSOR, COMMENT_POSTPROCESSOR, HYPERNODE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, LONG_EDGE_JOINER, SELF_LOOP_POSTPROCESSOR, BREAKING_POINT_REMOVER, NORTH_SOUTH_PORT_POSTPROCESSOR, HORIZONTAL_COMPACTOR, LABEL_DUMMY_REMOVER, FINAL_SPLINE_BENDPOINTS_CALCULATOR, END_LABEL_SORTER, REVERSED_EDGE_RESTORER, END_LABEL_POSTPROCESSOR, HIERARCHICAL_NODE_RESIZER, DIRECTION_POSTPROCESSOR]); +} + +defineClass(77, 22, {3:1, 35:1, 22:1, 77:1, 234:1}, IntermediateProcessorStrategy); +_.create_1 = function create_5(){ + switch (this.ordinal) { + case 15: + return new BreakingPointInserter; + case 22: + return new BreakingPointProcessor; + case 47: + return new BreakingPointRemover; + case 28: + case 35: + return new LabelManagementProcessor; + case 32: + return new CommentNodeMarginCalculator; + case 42: + return new CommentPostprocessor; + case 1: + return new CommentPreprocessor; + case 41: + return new ConstraintsPostprocessor; + case 56: + return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)); + case 0: + return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INPUT_DIRECTION)); + case 2: + return new EdgeAndLayerConstraintEdgeReverser; + case 54: + return new EndLabelPostprocessor; + case 33: + return new EndLabelPreprocessor; + case 51: + return new FinalSplineBendpointsCalculator; + case 55: + return new HierarchicalNodeResizingProcessor; + case 13: + return new HierarchicalPortConstraintProcessor; + case 38: + return new HierarchicalPortDummySizeProcessor; + case 44: + return new HierarchicalPortOrthogonalEdgeRouter; + case 40: + return new HierarchicalPortPositionProcessor; + case 9: + return new HighDegreeNodeLayeringProcessor; + case 49: + return new HorizontalGraphCompactor; + case 37: + return new HyperedgeDummyMerger; + case 43: + return new HypernodesProcessor; + case 27: + return new InLayerConstraintProcessor; + case 30: + return new InnermostNodeMarginCalculator; + case 3: + return new InteractiveExternalPortPositioner; + case 18: + return new InvertedPortProcessor; + case 29: + return new LabelAndNodeSizeProcessor; + case 5: + return new LabelDummyInserter; + case 50: + return new LabelDummyRemover; + case 34: + return new LabelDummySwitcher; + case 36: + return new LabelSideSelector; + case 52: + return new EndLabelSorter; + case 11: + return new LayerConstraintPostprocessor; + case 7: + return new LayerConstraintPreprocessor; + case 39: + return new LayerSizeAndGraphHeightCalculator; + case 45: + return new LongEdgeJoiner; + case 16: + return new LongEdgeSplitter; + case 10: + return new NodePromotion; + case 48: + return new NorthSouthPortPostprocessor; + case 21: + return new NorthSouthPortPreprocessor; + case 23: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0)); + case 8: + return new PartitionMidprocessor; + case 12: + return new PartitionPostprocessor; + case 4: + return new PartitionPreprocessor; + case 19: + return new PortListSorter; + case 17: + return new PortSideProcessor; + case 53: + return new ReversedEdgeRestorer; + case 6: + return new SelfLoopPreProcessor; + case 25: + return new SelfLoopPortRestorer; + case 46: + return new SelfLoopPostProcessor; + case 31: + return new SelfLoopRouter; + case 14: + return new SemiInteractiveCrossMinProcessor; + case 26: + return new SingleEdgeGraphWrapper; + case 20: + return new SortByInputModelProcessor; + case 24: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)); + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var BREAKING_POINT_INSERTER, BREAKING_POINT_PROCESSOR, BREAKING_POINT_REMOVER, CENTER_LABEL_MANAGEMENT_PROCESSOR, COMMENT_NODE_MARGIN_CALCULATOR, COMMENT_POSTPROCESSOR, COMMENT_PREPROCESSOR, CONSTRAINTS_POSTPROCESSOR, DIRECTION_POSTPROCESSOR, DIRECTION_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, END_LABEL_POSTPROCESSOR, END_LABEL_PREPROCESSOR, END_LABEL_SORTER, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, FINAL_SPLINE_BENDPOINTS_CALCULATOR, HIERARCHICAL_NODE_RESIZER, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, HIERARCHICAL_PORT_POSITION_PROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, HORIZONTAL_COMPACTOR, HYPEREDGE_DUMMY_MERGER, HYPERNODE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, INTERACTIVE_EXTERNAL_PORT_POSITIONER, INVERTED_PORT_PROCESSOR, IN_LAYER_CONSTRAINT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, LABEL_DUMMY_INSERTER, LABEL_DUMMY_REMOVER, LABEL_DUMMY_SWITCHER, LABEL_SIDE_SELECTOR, LAYER_CONSTRAINT_POSTPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, LONG_EDGE_JOINER, LONG_EDGE_SPLITTER, NODE_PROMOTION, NORTH_SOUTH_PORT_POSTPROCESSOR, NORTH_SOUTH_PORT_PREPROCESSOR, ONE_SIDED_GREEDY_SWITCH, PARTITION_MIDPROCESSOR, PARTITION_POSTPROCESSOR, PARTITION_PREPROCESSOR, PORT_LIST_SORTER, PORT_SIDE_PROCESSOR, REVERSED_EDGE_RESTORER, SELF_LOOP_PORT_RESTORER, SELF_LOOP_POSTPROCESSOR, SELF_LOOP_PREPROCESSOR, SELF_LOOP_ROUTER, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, SINGLE_EDGE_GRAPH_WRAPPER, SORT_BY_INPUT_ORDER_OF_MODEL, TWO_SIDED_GREEDY_SWITCH; +var Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'IntermediateProcessorStrategy', 77, Ljava_lang_Enum_2_classLit, values_38, valueOf_32); +function $clinit_IntermediateProcessorStrategy$Map(){ + $clinit_IntermediateProcessorStrategy$Map = emptyMethod; + $MAP_20 = createValueOfMap(values_38()); +} + +var $MAP_20; +function $createEastPortSideDummies(layeredGraph, eastwardPort, edge, layerNodeList){ + var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, labelPlacement; + if (edge.source.owner == eastwardPort.owner) { + return; + } + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + layerNodeList.array[layerNodeList.array.length] = dummy; + dummyInput = new LPort; + $setNode(dummyInput, dummy); + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + dummyOutput = new LPort; + $setNode(dummyOutput, dummy); + $setSide(dummyOutput, EAST_2); + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, eastwardPort); + $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); + labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + labelPlacement = castTo($getProperty(label_0, EDGE_LABELS_PLACEMENT), 272); + if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { + $hasProperty(label_0, END_LABEL_EDGE) || $setProperty_0(label_0, END_LABEL_EDGE, edge); + $remove_8(labelIterator); + $add_3(dummyEdge.labels, label_0); + } + } +} + +function $createWestPortSideDummies(layeredGraph, westwardPort, edge, layerNodeList){ + var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, originalTarget; + if (edge.target.owner == westwardPort.owner) { + return; + } + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + layerNodeList.array[layerNodeList.array.length] = dummy; + dummyInput = new LPort; + $setNode(dummyInput, dummy); + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + dummyOutput = new LPort; + $setNode(dummyOutput, dummy); + $setSide(dummyOutput, EAST_2); + originalTarget = edge.target; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, originalTarget); + labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { + $setProperty_0(label_0, END_LABEL_EDGE, edge); + $remove_8(labelIterator); + $add_3(dummyEdge.labels, label_0); + } + } + $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); +} + +function $process_24(layeredGraph, monitor){ + var currentLayer, edge, edge$array, edge$index, edge$max, edgeArray, edges, layerIterator, layers, node, node$iterator, node$iterator0, node$iterator1, port, port$iterator, port$iterator0, previousLayer, unassignedNodes; + $begin(monitor, 'Inverted port preprocessing', 1); + layers = layeredGraph.layers; + layerIterator = new AbstractList$ListIteratorImpl(layers, 0); + currentLayer = null; + unassignedNodes = new ArrayList; + while (layerIterator.i < layerIterator.this$01_0.size_1()) { + previousLayer = currentLayer; + currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); + for (node$iterator0 = new ArrayList$1(unassignedNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + $setLayer_0(node, previousLayer); + } + unassignedNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator1 = new ArrayList$1(currentLayer.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + if (!$isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + continue; + } + for (port$iterator0 = $getPorts_0(node, ($clinit_PortType() , INPUT), ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 11); + edges = port.incomingEdges; + edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $createEastPortSideDummies(layeredGraph, port, edge, unassignedNodes); + } + } + for (port$iterator = $getPorts_0(node, OUTPUT, WEST_2).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + edges = port.outgoingEdges; + edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $createWestPortSideDummies(layeredGraph, port, edge, unassignedNodes); + } + } + } + } + for (node$iterator = new ArrayList$1(unassignedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, currentLayer); + } + $done_0(monitor); +} + +function $setLongEdgeSourceAndTarget(longEdgeDummy, dummyInputPort, dummyOutputPort){ + var sourceNode, sourceNodeType, sourcePort, targetNode, targetNodeType, targetPort; + sourcePort = castTo($get_11(dummyInputPort.incomingEdges, 0), 17).source; + sourceNode = sourcePort.owner; + sourceNodeType = sourceNode.type_0; + targetPort = castTo($get_11(dummyOutputPort.outgoingEdges, 0), 17).target; + targetNode = targetPort.owner; + targetNodeType = targetNode.type_0; + sourceNodeType == ($clinit_LNode$NodeType() , LONG_EDGE)?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(sourceNode, LONG_EDGE_SOURCE), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), sourcePort); + targetNodeType == LONG_EDGE?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), castTo($getProperty(targetNode, LONG_EDGE_TARGET), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), targetPort); +} + +function InvertedPortProcessor(){ +} + +defineClass(1540, 1, $intern_105, InvertedPortProcessor); +_.process = function process_22(layeredGraph, monitor){ + $process_24(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InvertedPortProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InvertedPortProcessor', 1540); +function $computePortLabelBox(dummyPort, labelLabelSpacing){ + var label_0, label$iterator, labelSize, result; + if (dummyPort.labels.array.length == 0) { + return null; + } + else { + result = new ElkRectangle; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelSize = label_0.size_0; + result.width_0 = $wnd.Math.max(result.width_0, labelSize.x_0); + result.height += labelSize.y_0; + } + result.height += (dummyPort.labels.array.length - 1) * labelLabelSpacing; + return result; + } +} + +function $lambda$2(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3, dummy_3){ + $placeExternalPortDummyLabels(dummy_3, portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3); +} + +function $placeExternalPortDummyLabels(dummy, graphPortLabelPlacement, placeNextToPortIfPossible, treatAsGroup){ + var currentY, dummyPort, dummyPortPos, dummySize, label_0, label$iterator, labelHeight, labelLabelSpacing, labelPortSpacingHorizontal, labelPortSpacingVertical, labelPos, portLabelBox; + labelPortSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, ($clinit_LayeredOptions() , SPACING_LABEL_PORT_HORIZONTAL)))); + labelPortSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); + dummySize = dummy.size_0; + dummyPort = castTo($get_11(dummy.ports, 0), 11); + dummyPortPos = dummyPort.pos; + portLabelBox = $computePortLabelBox(dummyPort, labelLabelSpacing); + if (!portLabelBox) { + return; + } + if (graphPortLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; + portLabelBox.y_0 = labelPortSpacingVertical; + break; + case 3: + portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; + portLabelBox.y_0 = -labelPortSpacingVertical - portLabelBox.height; + break; + case 2: + if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; + } + + portLabelBox.x_0 = -labelPortSpacingHorizontal - portLabelBox.width_0; + break; + case 4: + if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; + } + + portLabelBox.x_0 = labelPortSpacingHorizontal; + } + } + else if (graphPortLabelPlacement.contains(OUTSIDE_0)) { + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + case 3: + portLabelBox.x_0 = dummyPortPos.x_0 + labelPortSpacingHorizontal; + break; + case 2: + case 4: + if (placeNextToPortIfPossible && !dummyPort.connectedToExternalNodes) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummyPortPos.y_0 + labelPortSpacingVertical; + } + + } + } + currentY = portLabelBox.y_0; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelPos = label_0.pos; + labelPos.x_0 = portLabelBox.x_0; + labelPos.y_0 = currentY; + currentY += label_0.size_0.y_0 + labelLabelSpacing; + } +} + +function $process_25(layeredGraph, monitor){ + var layer, layer$iterator, placeNextToPort, portLabelPlacement, treatAsGroup; + $begin(monitor, 'Node and Port Label Placement and Node Sizing', 1); + calculateLabelAndNodeSizes(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, true, true, new LabelAndNodeSizeProcessor$lambda$0$Type))); + if (castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + portLabelPlacement = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_LABELS_PLACEMENT_1)), 21); + placeNextToPort = portLabelPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + treatAsGroup = $booleanValue(castToBoolean($getProperty(layeredGraph, PORT_LABELS_TREAT_AS_GROUP))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layer.nodes, 16)), new LabelAndNodeSizeProcessor$lambda$1$Type), new LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement, placeNextToPort, treatAsGroup)); + } + } + $done_0(monitor); +} + +function LabelAndNodeSizeProcessor(){ +} + +defineClass(1541, 1, $intern_105, LabelAndNodeSizeProcessor); +_.process = function process_23(layeredGraph, monitor){ + $process_25(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor', 1541); +function LabelAndNodeSizeProcessor$lambda$0$Type(){ +} + +defineClass(1542, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$0$Type); +_.test_0 = function test_37(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$0$Type', 1542); +function LabelAndNodeSizeProcessor$lambda$1$Type(){ +} + +defineClass(1543, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$1$Type); +_.test_0 = function test_38(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$1$Type', 1543); +function LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3){ + this.portLabelPlacement_1 = portLabelPlacement_1; + this.placeNextToPort_2 = placeNextToPort_2; + this.treatAsGroup_3 = treatAsGroup_3; +} + +defineClass(1544, 1, $intern_19, LabelAndNodeSizeProcessor$lambda$2$Type); +_.accept = function accept_75(arg0){ + $lambda$2(this.portLabelPlacement_1, this.placeNextToPort_2, this.treatAsGroup_3, castTo(arg0, 10)); +} +; +_.placeNextToPort_2 = false; +_.treatAsGroup_3 = false; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$2$Type', 1544); +function $clinit_LabelDummyInserter(){ + $clinit_LabelDummyInserter = emptyMethod; + CENTER_LABEL = new LabelDummyInserter$1; +} + +function $createLabelDummy(layeredGraph, edge, thickness, representedLabels){ + var dummyNode, dummyPort, dummyPort$iterator, portPos; + dummyNode = new LNode(layeredGraph); + $setType(dummyNode, ($clinit_LNode$NodeType() , LABEL)); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummyNode, REPRESENTED_LABELS, representedLabels); + $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummyNode, LONG_EDGE_SOURCE, edge.source); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, edge.target); + splitEdge(edge, dummyNode); + portPos = $wnd.Math.floor(thickness / 2); + for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { + dummyPort = castTo($next_7(dummyPort$iterator), 11); + dummyPort.pos.y_0 = portPos; + } + return dummyNode; +} + +function $process_26(layeredGraph, monitor){ + var dummyNode, dummySize, edge, edge$iterator, edgeLabelSpacing, iterator, label_0, labelLabelSpacing, layoutDirection, newDummyNodes, node, node$iterator, representedLabels, thickness; + $begin(monitor, 'Label dummy insertions', 1); + newDummyNodes = new ArrayList; + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.source.owner != edge.target.owner && any_0(edge.labels, CENTER_LABEL)) { + thickness = $retrieveThickness(edge); + representedLabels = newArrayListWithCapacity(edge.labels.array.length); + dummyNode = $createLabelDummy(layeredGraph, edge, thickness, representedLabels); + newDummyNodes.array[newDummyNodes.array.length] = dummyNode; + dummySize = dummyNode.size_0; + iterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (iterator.i < iterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 70)); + if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5))) { + if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { + dummySize.x_0 += label_0.size_0.x_0 + labelLabelSpacing; + dummySize.y_0 = $wnd.Math.max(dummySize.y_0, label_0.size_0.y_0); + } + else { + dummySize.x_0 = $wnd.Math.max(dummySize.x_0, label_0.size_0.x_0); + dummySize.y_0 += label_0.size_0.y_0 + labelLabelSpacing; + } + representedLabels.array[representedLabels.array.length] = label_0; + $remove_8(iterator); + } + } + if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { + dummySize.x_0 -= labelLabelSpacing; + dummySize.y_0 += edgeLabelSpacing + thickness; + } + else { + dummySize.y_0 += edgeLabelSpacing - labelLabelSpacing + thickness; + } + } + } + } + $addAll_2(layeredGraph.layerlessNodes, newDummyNodes); + $done_0(monitor); +} + +function $retrieveThickness(edge){ + var thickness; + thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + return thickness; +} + +function LabelDummyInserter(){ + $clinit_LabelDummyInserter(); +} + +defineClass(1545, 1, $intern_105, LabelDummyInserter); +_.process = function process_24(layeredGraph, monitor){ + $process_26(castTo(layeredGraph, 37), monitor); +} +; +var CENTER_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter', 1545); +function LabelDummyInserter$1(){ +} + +defineClass(1546, 1, $intern_89, LabelDummyInserter$1); +_.apply_1 = function apply_90(label_0){ + return maskUndefined($getProperty(castTo(label_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +_.equals_0 = function equals_118(other){ + return this === other; +} +; +_.test_0 = function test_39(input_0){ + return maskUndefined($getProperty(castTo(input_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter/1', 1546); +function $placeLabelsForHorizontalLayout(labels, labelPos, labelSpacing, labelSpace){ + var label_0, label$iterator; + for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + label_0.pos.x_0 = labelPos.x_0 + (labelSpace.x_0 - label_0.size_0.x_0) / 2; + label_0.pos.y_0 = labelPos.y_0; + labelPos.y_0 += label_0.size_0.y_0 + labelSpacing; + } +} + +function $placeLabelsForVerticalLayout(labels, labelPos, labelSpacing, labelSpace, leftAligned, layoutDirection){ + var effectiveLabels, inline, label_0, label$iterator; + inline = !$spliterator($filter(labels.stream(), new Predicate$lambda$2$Type(new LabelDummyRemover$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + effectiveLabels = labels; + layoutDirection == ($clinit_Direction_0() , UP_1) && (effectiveLabels = instanceOf(effectiveLabels, 152)?$reverse(castTo(effectiveLabels, 152)):instanceOf(effectiveLabels, 131)?castTo(effectiveLabels, 131).forwardList:instanceOf(effectiveLabels, 54)?new Lists$RandomAccessReverseList(effectiveLabels):new Lists$ReverseList(effectiveLabels)); + for (label$iterator = effectiveLabels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + label_0.pos.x_0 = labelPos.x_0; + inline?(label_0.pos.y_0 = labelPos.y_0 + (labelSpace.y_0 - label_0.size_0.y_0) / 2):leftAligned?(label_0.pos.y_0 = labelPos.y_0):(label_0.pos.y_0 = labelPos.y_0 + labelSpace.y_0 - label_0.size_0.y_0); + labelPos.x_0 += label_0.size_0.x_0 + labelSpacing; + } +} + +function $process_27(layeredGraph, monitor){ + var currLabelPos, edgeLabelSpacing, labelLabelSpacing, labelSpace, labelsBelowEdge, layer, layer$iterator, layoutDirection, node, nodeIterator, originEdge, representedLabels, thickness; + $begin(monitor, 'Label dummy removal', 1); + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + originEdge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); + thickness = $doubleValue(castToDouble($getProperty(originEdge, EDGE_THICKNESS_0))); + labelsBelowEdge = maskUndefined($getProperty(node, LABEL_SIDE)) === maskUndefined(($clinit_LabelSide() , BELOW)); + currLabelPos = new KVector_2(node.pos); + labelsBelowEdge && (currLabelPos.y_0 += thickness + edgeLabelSpacing); + labelSpace = new KVector_1(node.size_0.x_0, node.size_0.y_0 - thickness - edgeLabelSpacing); + representedLabels = castTo($getProperty(node, REPRESENTED_LABELS), 15); + layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1?$placeLabelsForVerticalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace, labelsBelowEdge, layoutDirection):$placeLabelsForHorizontalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace); + $addAll_2(originEdge.labels, representedLabels); + joinAt(node, maskUndefined($getProperty(layeredGraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , POLYLINE))); + $remove_8(nodeIterator); + } + } + } + $done_0(monitor); +} + +function LabelDummyRemover(){ +} + +defineClass(1547, 1, $intern_105, LabelDummyRemover); +_.process = function process_25(layeredGraph, monitor){ + $process_27(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover', 1547); +function LabelDummyRemover$lambda$0$Type(){ +} + +defineClass(1548, 1, $intern_39, LabelDummyRemover$lambda$0$Type); +_.test_0 = function test_40(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover/lambda$0$Type', 1548); +function $clinit_LabelDummySwitcher(){ + $clinit_LabelDummySwitcher = emptyMethod; + INCLUDE_LABEL = new Property_0('edgelabelcenterednessanalysis.includelabel', ($clinit_Boolean() , FALSE_0)); +} + +function $assignIdsToLayers(layeredGraph){ + var layer, layer$iterator, layerIndex; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layer.id_0 = layerIndex; + ++layerIndex; + } +} + +function $assignLayer(this$static, labelDummyInfo, targetLayerIndex){ + var label_0, label$iterator, newLayerId; + targetLayerIndex != labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1() && $swapNodes(labelDummyInfo.labelDummy, $ithDummyNode(labelDummyInfo, targetLayerIndex - labelDummyInfo.leftmostLayerId)); + newLayerId = labelDummyInfo.labelDummy.layer.id_0; + this$static.layerWidths[newLayerId] = $wnd.Math.max(this$static.layerWidths[newLayerId], labelDummyInfo.labelDummy.size_0.x_0); + for (label$iterator = castTo($getProperty(labelDummyInfo.labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + $setProperty_0(label_0, INCLUDE_LABEL, ($clinit_Boolean() , true)); + } +} + +function $assignToWiderLayer(this$static, labelDummyInfo){ + var dummyWidth, layer, layer$iterator, validLayers; + dummyWidth = labelDummyInfo.labelDummy.size_0.x_0; + validLayers = new AbstractList$SubList($getGraph(labelDummyInfo.labelDummy).layers, labelDummyInfo.leftmostLayerId, labelDummyInfo.rightmostLayerId + 1); + for (layer$iterator = new AbstractList$IteratorImpl(validLayers); layer$iterator.i < layer$iterator.this$01_0.size_1();) { + layer = (checkCriticalElement(layer$iterator.i < layer$iterator.this$01_0.size_1()) , castTo(layer$iterator.this$01_0.get_0(layer$iterator.last = layer$iterator.i++), 29)); + if (layer.size_0.x_0 >= dummyWidth) { + $assignLayer(this$static, labelDummyInfo, layer.id_0); + return true; + } + } + return false; +} + +function $calculateLayerWidths(this$static, layeredGraph){ + var layer, layer$iterator; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + this$static.layerWidths[layer.id_0] = findMaxNonDummyNodeWidth(layer); + } +} + +function $computeLayerWidthSums(this$static, labelDummyInfo){ + var currentIndex, currentWidthSum, edgeNodeSpacing, layerWidthSums, leftDummy, leftDummy$iterator, lgraph, minSpaceBetweenLayers, nodeNodeSpacing, rightDummy, rightDummy$iterator; + lgraph = $getGraph(labelDummyInfo.labelDummy); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE_BETWEEN_LAYERS_0)))) * 2; + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + minSpaceBetweenLayers = $wnd.Math.max(edgeNodeSpacing, nodeNodeSpacing); + layerWidthSums = initUnidimensionalArray(D_classLit, $intern_65, 25, labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1, 15, 1); + currentWidthSum = -minSpaceBetweenLayers; + currentIndex = 0; + for (leftDummy$iterator = labelDummyInfo.leftLongEdgeDummies.iterator_0(); leftDummy$iterator.hasNext_0();) { + leftDummy = castTo(leftDummy$iterator.next_1(), 10); + currentWidthSum += this$static.layerWidths[leftDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + } + currentWidthSum += this$static.layerWidths[labelDummyInfo.labelDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + for (rightDummy$iterator = new ArrayList$1(labelDummyInfo.rightLongEdgeDummies); rightDummy$iterator.i < rightDummy$iterator.this$01.array.length;) { + rightDummy = castTo($next_7(rightDummy$iterator), 10); + currentWidthSum += this$static.layerWidths[rightDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + } + return layerWidthSums; +} + +function $computeSpaceEfficientAssignment(this$static, labelDummyInfos){ + var labelCount, labelIndex, nonTrivialLabels; + nonTrivialLabels = $performTrivialAssignments(this$static, labelDummyInfos); + if (nonTrivialLabels.array.length == 0) { + return; + } + $sort(nonTrivialLabels, new LabelDummySwitcher$lambda$4$Type); + labelCount = nonTrivialLabels.array.length; + for (labelIndex = 0; labelIndex < labelCount; labelIndex++) { + $assignLayer(this$static, (checkCriticalElementIndex(labelIndex, nonTrivialLabels.array.length) , castTo(nonTrivialLabels.array[labelIndex], 286)), $findPotentiallyWidestLayer(this$static, nonTrivialLabels, labelIndex)); + } +} + +function $doUpdateLongEdgeLabelDummyInfo(labelDummy){ + var longEdgeDummy; + longEdgeDummy = ($clinit_LabelDummySwitcher() , castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner); + while (longEdgeDummy.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_BEFORE_LABEL_DUMMY), ($clinit_Boolean() , true)); + longEdgeDummy = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(longEdgeDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; + } +} + +function $findCenterLayerTargetId(this$static, labelDummyInfo){ + var i, layerWidthSums, threshold; + layerWidthSums = $computeLayerWidthSums(this$static, labelDummyInfo); + threshold = layerWidthSums[layerWidthSums.length - 1] / 2; + for (i = 0; i < layerWidthSums.length; i++) { + if (layerWidthSums[i] >= threshold) { + return labelDummyInfo.leftmostLayerId + i; + } + } + return labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1(); +} + +function $findPotentiallyWidestLayer(this$static, labelDummyInfos, labelIndex){ + var currLabelInfo, label_0, labelCount, labelDummyInfo, labelDummyWidth, largestUnassignedLabel, layer, potentialWidth, widestLayerIndex, widestLayerWidth; + labelCount = labelDummyInfos.array.length; + labelDummyInfo = (checkCriticalElementIndex(labelIndex, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[labelIndex], 286)); + labelDummyWidth = labelDummyInfo.labelDummy.size_0.x_0; + widestLayerIndex = labelDummyInfo.leftmostLayerId; + widestLayerWidth = 0; + for (layer = labelDummyInfo.leftmostLayerId; layer <= labelDummyInfo.rightmostLayerId; layer++) { + if (labelDummyWidth <= this$static.layerWidths[layer]) { + return layer; + } + potentialWidth = this$static.layerWidths[layer]; + largestUnassignedLabel = null; + for (label_0 = labelIndex + 1; label_0 < labelCount; label_0++) { + currLabelInfo = (checkCriticalElementIndex(label_0, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[label_0], 286)); + currLabelInfo.leftmostLayerId <= layer && currLabelInfo.rightmostLayerId >= layer && (largestUnassignedLabel = currLabelInfo); + } + !!largestUnassignedLabel && (potentialWidth = $wnd.Math.max(potentialWidth, largestUnassignedLabel.labelDummy.size_0.x_0)); + if (potentialWidth > widestLayerWidth) { + widestLayerIndex = layer; + widestLayerWidth = potentialWidth; + } + } + return widestLayerIndex; +} + +function $findWidestLayerTargetId(this$static, labelDummyInfo){ + var index_0, widestLayerIndex; + widestLayerIndex = labelDummyInfo.leftmostLayerId; + for (index_0 = widestLayerIndex + 1; index_0 <= labelDummyInfo.rightmostLayerId; index_0++) { + this$static.layerWidths[index_0] > this$static.layerWidths[widestLayerIndex] && (widestLayerIndex = index_0); + } + return widestLayerIndex; +} + +function $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy){ + var infos, strategy, strategy$array, strategy$index, strategy$max; + infos = new EnumMap(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit); + for (strategy$array = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { + strategy = strategy$array[strategy$index]; + $put_8(infos, strategy, new ArrayList); + } + $forEach_3($map_0($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new LabelDummySwitcher$lambda$0$Type), new LabelDummySwitcher$lambda$1$Type), new LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy)), new LabelDummySwitcher$lambda$3$Type(infos)); + return infos; +} + +function $isPartOfReversedEdge(labelDummyInfo){ + var incoming, outgoing; + incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); + outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); + return $booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || $booleanValue(castToBoolean($getProperty(outgoing, REVERSED))); +} + +function $performTrivialAssignments(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, remainingLabels; + remainingLabels = new ArrayList_0(labelDummyInfos.size_1()); + for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { + labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); + labelDummyInfo.leftmostLayerId == labelDummyInfo.rightmostLayerId?$assignLayer(this$static, labelDummyInfo, labelDummyInfo.leftmostLayerId):$assignToWiderLayer(this$static, labelDummyInfo) || (remainingLabels.array[remainingLabels.array.length] = labelDummyInfo , true); + } + return remainingLabels; +} + +function $process_28(this$static, layeredGraph, monitor){ + var defaultPlacementStrategy, labelDummyInfos, strategy, strategy$array, strategy$array0, strategy$array1, strategy$index, strategy$index0, strategy$index1, strategy$max, strategy$max0, strategy$max1; + $begin(monitor, 'Label dummy switching', 1); + defaultPlacementStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)), 227); + $assignIdsToLayers(layeredGraph); + labelDummyInfos = $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy); + this$static.layerWidths = initUnidimensionalArray(D_classLit, $intern_65, 25, layeredGraph.layers.array.length, 15, 1); + for (strategy$array0 = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index0 = 0 , strategy$max0 = strategy$array0.length; strategy$index0 < strategy$max0; ++strategy$index0) { + strategy = strategy$array0[strategy$index0]; + if ((strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && !castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15).isEmpty()) { + $calculateLayerWidths(this$static, layeredGraph); + break; + } + } + for (strategy$array1 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index1 = 0 , strategy$max1 = strategy$array1.length; strategy$index1 < strategy$max1; ++strategy$index1) { + strategy = strategy$array1[strategy$index1]; + strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER || $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); + } + for (strategy$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { + strategy = strategy$array[strategy$index]; + (strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); + } + this$static.layerWidths = null; + $done_0(monitor); +} + +function $processStrategy(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, reversed, reversed0, layers, lowerMedian; + if (labelDummyInfos.isEmpty()) { + return; + } + if (castTo(labelDummyInfos.get_0(0), 286).placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , SPACE_EFFICIENT_LAYER)) { + $computeSpaceEfficientAssignment(this$static, labelDummyInfos); + } + else { + for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { + labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); + switch (labelDummyInfo.placementStrategy.ordinal) { + case 5: + $assignLayer(this$static, labelDummyInfo, $findCenterLayerTargetId(this$static, labelDummyInfo)); + break; + case 0: + $assignLayer(this$static, labelDummyInfo, (layers = labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1 , lowerMedian = (layers - 1) / 2 | 0 , labelDummyInfo.leftmostLayerId + lowerMedian)); + break; + case 4: + $assignLayer(this$static, labelDummyInfo, $findWidestLayerTargetId(this$static, labelDummyInfo)); + break; + case 2: + $setEndLayerNodeAlignment(labelDummyInfo); + $assignLayer(this$static, labelDummyInfo, (reversed0 = $isPartOfReversedEdge(labelDummyInfo) , reversed0?labelDummyInfo.leftmostLayerId:labelDummyInfo.rightmostLayerId)); + break; + case 1: + $setEndLayerNodeAlignment(labelDummyInfo); + $assignLayer(this$static, labelDummyInfo, (reversed = $isPartOfReversedEdge(labelDummyInfo) , reversed?labelDummyInfo.rightmostLayerId:labelDummyInfo.leftmostLayerId)); + } + $doUpdateLongEdgeLabelDummyInfo(labelDummyInfo.labelDummy); + } + } +} + +function $setEndLayerNodeAlignment(labelDummyInfo){ + var isHeadLabel, isPartOfReversedEdge; + isHeadLabel = labelDummyInfo.placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , HEAD_LAYER); + isPartOfReversedEdge = $isPartOfReversedEdge(labelDummyInfo); + isHeadLabel && !isPartOfReversedEdge || !isHeadLabel && isPartOfReversedEdge?$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , RIGHT_5)):$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , LEFT_5)); +} + +function $swapNodes(labelDummy, longEdgeDummy){ + var dummy1LayerPosition, dummy2LayerPosition, edge, edge$array, edge$array0, edge$array1, edge$array2, edge$index, edge$index0, edge$index1, edge$index2, edge$max, edge$max0, edge$max1, edge$max2, incomingEdges1, incomingEdges2, inputPort1, inputPort2, layer1, layer2, outgoingEdges1, outgoingEdges2, outputPort1, outputPort2; + layer1 = labelDummy.layer; + layer2 = longEdgeDummy.layer; + dummy1LayerPosition = $indexOf_3(layer1.nodes, labelDummy, 0); + dummy2LayerPosition = $indexOf_3(layer2.nodes, longEdgeDummy, 0); + inputPort1 = castTo($getPorts(labelDummy, ($clinit_PortType() , INPUT)).iterator_0().next_1(), 11); + outputPort1 = castTo($getPorts(labelDummy, OUTPUT).iterator_0().next_1(), 11); + inputPort2 = castTo($getPorts(longEdgeDummy, INPUT).iterator_0().next_1(), 11); + outputPort2 = castTo($getPorts(longEdgeDummy, OUTPUT).iterator_0().next_1(), 11); + incomingEdges1 = toEdgeArray(inputPort1.incomingEdges); + outgoingEdges1 = toEdgeArray(outputPort1.outgoingEdges); + incomingEdges2 = toEdgeArray(inputPort2.incomingEdges); + outgoingEdges2 = toEdgeArray(outputPort2.outgoingEdges); + $setLayer(labelDummy, dummy2LayerPosition, layer2); + for (edge$array0 = incomingEdges2 , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { + edge = edge$array0[edge$index0]; + $setTarget_0(edge, inputPort1); + } + for (edge$array1 = outgoingEdges2 , edge$index1 = 0 , edge$max1 = edge$array1.length; edge$index1 < edge$max1; ++edge$index1) { + edge = edge$array1[edge$index1]; + $setSource_0(edge, outputPort1); + } + $setLayer(longEdgeDummy, dummy1LayerPosition, layer1); + for (edge$array2 = incomingEdges1 , edge$index2 = 0 , edge$max2 = edge$array2.length; edge$index2 < edge$max2; ++edge$index2) { + edge = edge$array2[edge$index2]; + $setTarget_0(edge, inputPort2); + } + for (edge$array = outgoingEdges1 , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, outputPort2); + } +} + +function LabelDummySwitcher(){ + $clinit_LabelDummySwitcher(); +} + +function lambda$2_4(defaultPlacementStrategy_0, labelDummy_1){ + $clinit_LabelDummySwitcher(); + return new LabelDummySwitcher$LabelDummyInfo(labelDummy_1, defaultPlacementStrategy_0); +} + +function lambda$3_2(infos_0, dummyInfo_1){ + $clinit_LabelDummySwitcher(); + return castTo($get_14(infos_0, dummyInfo_1.placementStrategy), 15).add_2(dummyInfo_1); +} + +function lambda$4_5(info1_0, info2_1){ + $clinit_LabelDummySwitcher(); + return compare_4(info2_1.labelDummy.size_0.x_0, info1_0.labelDummy.size_0.x_0); +} + +defineClass(1359, 1, $intern_105, LabelDummySwitcher); +_.process = function process_26(layeredGraph, monitor){ + $process_28(this, castTo(layeredGraph, 37), monitor); +} +; +_.layerWidths = null; +var INCLUDE_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher', 1359); +function $gatherLeftLongEdgeDummies(this$static){ + var source; + source = this$static.labelDummy; + do { + source = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(source).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; + source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && this$static.leftLongEdgeDummies.add_2(source); + } + while (source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); + this$static.leftLongEdgeDummies = reverse_0(this$static.leftLongEdgeDummies); +} + +function $gatherRightLongEdgeDummies(this$static){ + var target; + target = this$static.labelDummy; + do { + target = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(target).val$inputs1.iterator_0(), new Iterables$10))), 17).target.owner; + target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $add_3(this$static.rightLongEdgeDummies, target); + } + while (target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); +} + +function $ithDummyNode(this$static, i){ + return i < this$static.leftLongEdgeDummies.size_1()?castTo(this$static.leftLongEdgeDummies.get_0(i), 10):i == this$static.leftLongEdgeDummies.size_1()?this$static.labelDummy:castTo($get_11(this$static.rightLongEdgeDummies, i - this$static.leftLongEdgeDummies.size_1() - 1), 10); +} + +function LabelDummySwitcher$LabelDummyInfo(labelDummy, defaultPlacementStrategy){ + var label_0, label$iterator; + this.leftLongEdgeDummies = new ArrayList; + this.rightLongEdgeDummies = new ArrayList; + this.labelDummy = labelDummy; + this.placementStrategy = defaultPlacementStrategy; + $gatherLeftLongEdgeDummies(this); + $gatherRightLongEdgeDummies(this); + this.leftLongEdgeDummies.isEmpty()?(this.leftmostLayerId = labelDummy.layer.id_0):(this.leftmostLayerId = castTo(this.leftLongEdgeDummies.get_0(0), 10).layer.id_0); + this.rightLongEdgeDummies.array.length == 0?(this.rightmostLayerId = labelDummy.layer.id_0):(this.rightmostLayerId = castTo($get_11(this.rightLongEdgeDummies, this.rightLongEdgeDummies.array.length - 1), 10).layer.id_0); + for (label$iterator = castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + if ($hasProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0))) { + this.placementStrategy = castTo($getProperty(label_0, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0), 227); + break; + } + } +} + +defineClass(286, 1, {286:1}, LabelDummySwitcher$LabelDummyInfo); +_.leftmostLayerId = 0; +_.placementStrategy = null; +_.rightmostLayerId = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$LabelDummyInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/LabelDummyInfo', 286); +function LabelDummySwitcher$lambda$0$Type(){ +} + +defineClass(1360, 1, {}, LabelDummySwitcher$lambda$0$Type); +_.apply_0 = function apply_91(arg0){ + return $clinit_LabelDummySwitcher() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$0$Type', 1360); +function LabelDummySwitcher$lambda$1$Type(){ +} + +defineClass(1361, 1, $intern_39, LabelDummySwitcher$lambda$1$Type); +_.test_0 = function test_41(arg0){ + return $clinit_LabelDummySwitcher() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , LABEL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$1$Type', 1361); +function LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy_0){ + this.defaultPlacementStrategy_0 = defaultPlacementStrategy_0; +} + +defineClass(1362, 1, {}, LabelDummySwitcher$lambda$2$Type); +_.apply_0 = function apply_92(arg0){ + return lambda$2_4(this.defaultPlacementStrategy_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$2$Type', 1362); +function LabelDummySwitcher$lambda$3$Type(infos_0){ + this.infos_0 = infos_0; +} + +defineClass(1363, 1, $intern_19, LabelDummySwitcher$lambda$3$Type); +_.accept = function accept_76(arg0){ + lambda$3_2(this.infos_0, castTo(arg0, 286)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$3$Type', 1363); +function LabelDummySwitcher$lambda$4$Type(){ +} + +defineClass(1364, 1, $intern_88, LabelDummySwitcher$lambda$4$Type); +_.compare_1 = function compare_46(arg0, arg1){ + return lambda$4_5(castTo(arg0, 286), castTo(arg1, 286)); +} +; +_.equals_0 = function equals_119(other){ + return this === other; +} +; +_.reversed = function reversed_38(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$4$Type', 1364); +function $process_29(layeredGraph, monitor){ + $begin(monitor, 'Label management', 1); + throwClassCastExceptionUnlessNull($getProperty(layeredGraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $done_0(monitor); +} + +function LabelManagementProcessor(){ +} + +defineClass(791, 1, $intern_105, LabelManagementProcessor); +_.process = function process_27(layeredGraph, monitor){ + $process_29(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelManagementProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelManagementProcessor', 791); +function $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide){ + var currLongEdgeSource, currLongEdgeTarget, currentDummy, currentDummy$iterator, endPort, endPort0, labelDummyRun, prevLongEdgeSource, prevLongEdgeTarget; + labelDummyRun = newArrayListWithCapacity(dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1); + prevLongEdgeSource = null; + prevLongEdgeTarget = null; + for (currentDummy$iterator = new ArrayDeque$IteratorImpl(dummyNodes); currentDummy$iterator.currentIndex != currentDummy$iterator.fence;) { + currentDummy = castTo($next_6(currentDummy$iterator), 10); + currLongEdgeSource = (endPort0 = castTo($getProperty(currentDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE)), 11) , !endPort0?null:endPort0.owner); + currLongEdgeTarget = (endPort = castTo($getProperty(currentDummy, LONG_EDGE_TARGET), 11) , !endPort?null:endPort.owner); + if (prevLongEdgeSource != currLongEdgeSource || prevLongEdgeTarget != currLongEdgeTarget) { + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); + prevLongEdgeSource = currLongEdgeSource; + prevLongEdgeTarget = currLongEdgeTarget; + } + labelDummyRun.array[labelDummyRun.array.length] = currentDummy; + } + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); +} + +function $applyLabelSide(labels, side){ + var label_0, label$iterator; + for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); + } +} + +function $applyLabelSide_0(edge, side){ + var label_0, label$iterator; + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); + } +} + +function $applyLabelSide_1(labelDummy, side){ + var effectiveSide, originEdge, port, port$iterator, portPos, thickness; + if (labelDummy.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + effectiveSide = $spliterator($filter(castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).stream(), new Predicate$lambda$2$Type(new LabelSideSelector$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?side:($clinit_LabelSide() , INLINE); + $setProperty_0(labelDummy, LABEL_SIDE, effectiveSide); + if (effectiveSide != ($clinit_LabelSide() , BELOW)) { + originEdge = castTo($getProperty(labelDummy, ORIGIN_0), 17); + thickness = $doubleValue(castToDouble($getProperty(originEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + portPos = 0; + if (effectiveSide == ABOVE) { + portPos = labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness / 2); + } + else if (effectiveSide == INLINE) { + labelDummy.size_0.y_0 -= $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))); + portPos = (labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness)) / 2; + } + for (port$iterator = new ArrayList$1(labelDummy.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.pos.y_0 = portPos; + } + } + } +} + +function $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide){ + var dummyNode, dummyNode$iterator; + if (labelDummyRun.array.length != 0) { + if (labelDummyRun.array.length == 2) { + $applyLabelSide_1((checkCriticalElementIndex(0, labelDummyRun.array.length) , castTo(labelDummyRun.array[0], 10)), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide_1((checkCriticalElementIndex(1, labelDummyRun.array.length) , castTo(labelDummyRun.array[1], 10)), BELOW); + } + else { + for (dummyNode$iterator = new ArrayList$1(labelDummyRun); dummyNode$iterator.i < dummyNode$iterator.this$01.array.length;) { + dummyNode = castTo($next_7(dummyNode$iterator), 10); + $applyLabelSide_1(dummyNode, defaultSide); + } + } + labelDummyRun.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } +} + +function $basedOnDirection(graph, sideForRightwardEdges){ + var edge, edge$iterator, layer, layer$iterator, node, node$iterator, side, incoming, outgoing; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + side = (incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , !$booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || !$booleanValue(castToBoolean($getProperty(outgoing, REVERSED))))?sideForRightwardEdges:$opposite_0(sideForRightwardEdges); + $applyLabelSide_1(node, side); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + side = $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))?$opposite_0(sideForRightwardEdges):sideForRightwardEdges; + $applyLabelSide_0(edge, side); + } + } + } +} + +function $process_30(layeredGraph, monitor){ + var mode; + mode = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); + $begin(monitor, 'Label side selection (' + mode + ')', 1); + switch (mode.ordinal) { + case 0: + $sameSide(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 1: + $sameSide(layeredGraph, ($clinit_LabelSide() , BELOW)); + break; + case 2: + $basedOnDirection(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 3: + $basedOnDirection(layeredGraph, ($clinit_LabelSide() , BELOW)); + break; + case 4: + $smart(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 5: + $smart(layeredGraph, ($clinit_LabelSide() , BELOW)); + } + $done_0(monitor); +} + +function $sameSide(graph, labelSide){ + var edge, edge$iterator, layer, layer$iterator, node, node$iterator; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.type_0 == ($clinit_LNode$NodeType() , LABEL) && $applyLabelSide_1(node, labelSide); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $applyLabelSide_0(edge, labelSide); + } + } + } +} + +function $smart(graph, defaultSide){ + var dummyNodeQueue, labelDummiesInQueue, layer, layer$iterator, node, node$iterator, topGroup; + dummyNodeQueue = new ArrayDeque; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + topGroup = true; + labelDummiesInQueue = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + switch (node.type_0.ordinal) { + case 4: + ++labelDummiesInQueue; + case 1: + $addLast(dummyNodeQueue, node); + break; + case 0: + $smartForRegularNode(node, defaultSide); + default:dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, false, defaultSide); + topGroup = false; + labelDummiesInQueue = 0; + } + } + dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, true, defaultSide); + } +} + +function $smartForConsecutiveDummyNodeRun(dummyNodes, labelDummyCount, topGroup, bottomGroup, defaultSide){ + if (topGroup && (!bottomGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.head], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.head], 10), ($clinit_LabelSide() , ABOVE)); + } + else if (bottomGroup && (!topGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10), ($clinit_LabelSide() , BELOW)); + } + else if ((dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) == 2) { + $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), BELOW); + } + else { + $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide); + } + $clear_4(dummyNodes); +} + +function $smartForRegularNode(node, defaultSide){ + var currentPortSide, endLabelQueue, port, port$iterator, portEndLabels; + endLabelQueue = new ArrayDeque_0(node.ports.array.length); + currentPortSide = null; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (port.side != currentPortSide) { + endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); + $clear_4(endLabelQueue); + currentPortSide = port.side; + } + portEndLabels = gatherLabels(port); + !!portEndLabels && ($addLast(endLabelQueue, portEndLabels) , true); + } + endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); +} + +function $smartForRegularNodePortEndLabels(endLabelQueue, portSide, defaultSide){ + var labelList, labelList$iterator; + if ((endLabelQueue.tail - endLabelQueue.head & endLabelQueue.array.length - 1) == 2) { + if (portSide == ($clinit_PortSide() , NORTH_3) || portSide == EAST_2) { + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), BELOW); + } + else { + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , BELOW)); + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ABOVE); + } + } + else { + for (labelList$iterator = new ArrayDeque$IteratorImpl(endLabelQueue); labelList$iterator.currentIndex != labelList$iterator.fence;) { + labelList = castTo($next_6(labelList$iterator), 15); + $applyLabelSide(labelList, defaultSide); + } + } +} + +function LabelSideSelector(){ +} + +defineClass(1549, 1, $intern_105, LabelSideSelector); +_.process = function process_28(layeredGraph, monitor){ + $process_30(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector', 1549); +function LabelSideSelector$lambda$0$Type(){ +} + +defineClass(1550, 1, $intern_39, LabelSideSelector$lambda$0$Type); +_.test_0 = function test_42(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector/lambda$0$Type', 1550); +function $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer){ + var layer, layer$iterator, layerIter, node, node$array, node$index, node$max, nodes; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodes = toNodeArray(layer.nodes); + for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 1: + $throwUpUnlessNoIncomingEdges(node); + $setLayer_0(node, firstLayer); + $moveLabelsToLabelLayer(node, true, firstLabelLayer); + break; + case 3: + $throwUpUnlessNoOutgoingEdges(node); + $setLayer_0(node, lastLayer); + $moveLabelsToLabelLayer(node, false, lastLabelLayer); + } + } + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)).nodes.array.length == 0 && $remove_8(layerIter); + } +} + +function $moveLabelsToLabelLayer(node, incoming, labelLayer){ + var edge, edge$iterator, possibleLableDummy; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2((incoming?$getIncomingEdges(node):$getOutgoingEdges(node)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + possibleLableDummy = incoming?edge.source.owner:edge.target.owner; + possibleLableDummy.type_0 == ($clinit_LNode$NodeType() , LABEL) && $setLayer_0(possibleLableDummy, labelLayer); + } +} + +function $process_31(layeredGraph, monitor){ + var firstLabelLayer, firstLayer, firstSeparateLayer, lastLabelLayer, lastLayer, lastSeparateLayer, layers; + $begin(monitor, 'Layer constraint postprocessing', 1); + layers = layeredGraph.layers; + if (layers.array.length != 0) { + firstLayer = (checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)); + lastLayer = castTo($get_11(layers, layers.array.length - 1), 29); + firstLabelLayer = new Layer(layeredGraph); + lastLabelLayer = new Layer(layeredGraph); + $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer); + firstLabelLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstLabelLayer)); + lastLabelLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastLabelLayer , true); + } + if ($hasProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES))) { + firstSeparateLayer = new Layer(layeredGraph); + lastSeparateLayer = new Layer(layeredGraph); + $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer); + firstSeparateLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstSeparateLayer)); + lastSeparateLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastSeparateLayer , true); + } + $done_0(monitor); +} + +function $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer){ + var hiddenEdge, hiddenEdge$iterator, hiddenNode, hiddenNode$iterator, isOutgoing, originalOppositePort; + for (hiddenNode$iterator = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES)), 15).iterator_0(); hiddenNode$iterator.hasNext_0();) { + hiddenNode = castTo(hiddenNode$iterator.next_1(), 10); + switch (castTo($getProperty(hiddenNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 2: + $setLayer_0(hiddenNode, firstSeparateLayer); + break; + case 4: + $setLayer_0(hiddenNode, lastSeparateLayer); + } + for (hiddenEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(hiddenNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(hiddenEdge$iterator);) { + hiddenEdge = castTo($next_0(hiddenEdge$iterator), 17); + if (!!hiddenEdge.source && !!hiddenEdge.target) { + continue; + } + isOutgoing = !hiddenEdge.target; + originalOppositePort = castTo($getProperty(hiddenEdge, ORIGINAL_OPPOSITE_PORT), 11); + isOutgoing?$setTarget_0(hiddenEdge, originalOppositePort):$setSource_0(hiddenEdge, originalOppositePort); + } + } +} + +function $throwUpUnlessNoIncomingEdges(node){ + var incoming, incoming$iterator; + for (incoming$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incoming$iterator);) { + incoming = castTo($next_0(incoming$iterator), 17); + if (incoming.source.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to FIRST, but has at least one incoming edge that " + ' does not come from a FIRST_SEPARATE node. That must not happen.')); + } + } +} + +function $throwUpUnlessNoOutgoingEdges(node){ + var outgoing, outgoing$iterator; + for (outgoing$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoing$iterator);) { + outgoing = castTo($next_0(outgoing$iterator), 17); + if (outgoing.target.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to LAST, but has at least one outgoing edge that " + ' does not go to a LAST_SEPARATE node. That must not happen.')); + } + } +} + +function LayerConstraintPostprocessor(){ +} + +defineClass(1558, 1, $intern_105, LayerConstraintPostprocessor); +_.process = function process_29(layeredGraph, monitor){ + $process_31(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPostprocessor', 1558); +function $clinit_LayerConstraintPreprocessor(){ + $clinit_LayerConstraintPreprocessor = emptyMethod; + HIDDEN_NODE_CONNECTIONS = new Property_0('separateLayerConnections', ($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , NONE_0)); +} + +function $ensureNoInacceptableEdges(lNode){ + var inEdge, inEdge$iterator, layerConstraint, outEdge, outEdge$iterator; + layerConstraint = castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + for (inEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inEdge$iterator);) { + inEdge = castTo($next_0(inEdge$iterator), 17); + if (!$isAcceptableIncidentEdge(inEdge)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. " + 'FIRST_SEPARATE nodes must not have incoming edges.')); + } + } + } + else if (layerConstraint == LAST_SEPARATE_0) { + for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { + outEdge = castTo($next_0(outEdge$iterator), 17); + if (!$isAcceptableIncidentEdge(outEdge)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. " + 'LAST_SEPARATE nodes must not have outgoing edges.')); + } + } + } +} + +function $hide(lNode){ + var lEdge, lEdge$iterator, isOutgoing, oppositePort; + $ensureNoInacceptableEdges(lNode); + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + isOutgoing = lEdge.source.owner == lNode; + oppositePort = isOutgoing?lEdge.target:lEdge.source; + isOutgoing?$setTarget_0(lEdge, null):$setSource_0(lEdge, null); + $setProperty_0(lEdge, ($clinit_InternalProperties_1() , ORIGINAL_OPPOSITE_PORT), oppositePort); + $updateOppositeNodeLayerConstraints(lNode, oppositePort.owner); + } +} + +function $isAcceptableIncidentEdge(edge){ + var sourceNode, targetNode; + sourceNode = edge.source.owner; + targetNode = edge.target.owner; + return sourceNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && targetNode.type_0 == EXTERNAL_PORT; +} + +function $isRelevantNode(lNode){ + switch (castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 2: + case 4: + return true; + default:return false; + } +} + +function $process_32(layeredGraph, monitor){ + var hiddenNodes, lNode, nodeIterator; + $begin(monitor, 'Layer constraint preprocessing', 1); + hiddenNodes = new ArrayList; + nodeIterator = new AbstractList$ListIteratorImpl(layeredGraph.layerlessNodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + lNode = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if ($isRelevantNode(lNode)) { + $hide(lNode); + hiddenNodes.array[hiddenNodes.array.length] = lNode; + $remove_8(nodeIterator); + } + } + hiddenNodes.array.length == 0 || $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES), hiddenNodes); + $done_0(monitor); +} + +function $updateOppositeNodeLayerConstraints(hiddenNode, oppositeNode){ + var connections; + if ($hasProperty(oppositeNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0))) { + return; + } + connections = $combine_0(castTo($getProperty(oppositeNode, HIDDEN_NODE_CONNECTIONS), 360), castTo($getProperty(hiddenNode, LAYERING_LAYER_CONSTRAINT_0), 163)); + $setProperty_0(oppositeNode, HIDDEN_NODE_CONNECTIONS, connections); + if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(oppositeNode).val$inputs1.iterator_0(), new Iterables$10)))) { + return; + } + switch (connections.ordinal) { + case 1: + $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); + break; + case 2: + $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); + } +} + +function LayerConstraintPreprocessor(){ + $clinit_LayerConstraintPreprocessor(); +} + +defineClass(1559, 1, $intern_105, LayerConstraintPreprocessor); +_.process = function process_30(layeredGraph, monitor){ + $process_32(castTo(layeredGraph, 37), monitor); +} +; +var HIDDEN_NODE_CONNECTIONS; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor', 1559); +function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections = emptyMethod; + NONE_0 = new LayerConstraintPreprocessor$HiddenNodeConnections('NONE', 0); + FIRST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('FIRST_SEPARATE', 1); + LAST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('LAST_SEPARATE', 2); + BOTH = new LayerConstraintPreprocessor$HiddenNodeConnections('BOTH', 3); +} + +function $combine_0(this$static, layerConstraint){ + switch (this$static.ordinal) { + case 0: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:LAST_SEPARATE; + case 1: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:BOTH; + case 2: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?BOTH:LAST_SEPARATE; + default:return BOTH; + } +} + +function LayerConstraintPreprocessor$HiddenNodeConnections(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_33(name_0){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); + return valueOf(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map() , $MAP_21), name_0); +} + +function values_39(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]); +} + +defineClass(360, 22, {3:1, 35:1, 22:1, 360:1}, LayerConstraintPreprocessor$HiddenNodeConnections); +var BOTH, FIRST_SEPARATE, LAST_SEPARATE, NONE_0; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor/HiddenNodeConnections', 360, Ljava_lang_Enum_2_classLit, values_39, valueOf_33); +function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map = emptyMethod; + $MAP_21 = createValueOfMap(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]))); +} + +var $MAP_21; +function $process_33(layeredGraph, monitor){ + var bottom, firstNode, foundNodes, lastNode, layer, layer$iterator, layerSize, maxY, minY, node, node$iterator, nodeMargin, nodeSize, top_0; + $begin(monitor, 'Layer size calculation', 1); + minY = $intern_59; + maxY = $intern_60; + foundNodes = false; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerSize = layer.size_0; + layerSize.x_0 = 0; + layerSize.y_0 = 0; + if (layer.nodes.array.length == 0) { + continue; + } + foundNodes = true; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeSize = node.size_0; + nodeMargin = node.margin; + layerSize.x_0 = $wnd.Math.max(layerSize.x_0, nodeSize.x_0 + nodeMargin.left + nodeMargin.right); + } + firstNode = castTo($get_11(layer.nodes, 0), 10); + top_0 = firstNode.pos.y_0 - firstNode.margin.top_0; + firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (top_0 -= castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).top_0); + lastNode = castTo($get_11(layer.nodes, layer.nodes.array.length - 1), 10); + bottom = lastNode.pos.y_0 + lastNode.size_0.y_0 + lastNode.margin.bottom; + lastNode.type_0 == EXTERNAL_PORT && (bottom += castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).bottom); + layerSize.y_0 = bottom - top_0; + minY = $wnd.Math.min(minY, top_0); + maxY = $wnd.Math.max(maxY, bottom); + } + if (!foundNodes) { + minY = 0; + maxY = 0; + } + layeredGraph.size_0.y_0 = maxY - minY; + layeredGraph.offset.y_0 -= minY; + $done_0(monitor); +} + +function LayerSizeAndGraphHeightCalculator(){ +} + +defineClass(1560, 1, $intern_105, LayerSizeAndGraphHeightCalculator); +_.process = function process_31(layeredGraph, monitor){ + $process_33(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerSizeAndGraphHeightCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerSizeAndGraphHeightCalculator', 1560); +function $process_34(layeredGraph, monitor){ + var addUnnecessaryBendpoints, layer, layer$iterator, node, nodeIterator; + $begin(monitor, 'Edge joining', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + joinAt(node, addUnnecessaryBendpoints); + $remove_8(nodeIterator); + } + } + } + $done_0(monitor); +} + +function LongEdgeJoiner(){ +} + +function joinAt(longEdgeDummy, addUnnecessaryBendpoints){ + var bendPoint, bendPoint$iterator, droppedEdge, droppedEdgeListIndex, droppedJunctionsPoints, edgeCount, inputPortEdges, jp, jp$iterator, label_0, label$iterator, outputPortEdges, survivingBendPoints, survivingEdge, survivingJunctionPoints, survivingLabels, targetIncomingEdges, unnecessaryBendpoint; + inputPortEdges = castTo($getPorts_1(longEdgeDummy, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11).incomingEdges; + outputPortEdges = castTo($getPorts_1(longEdgeDummy, EAST_2).iterator_0().next_1(), 11).outgoingEdges; + edgeCount = inputPortEdges.array.length; + unnecessaryBendpoint = $getAbsoluteAnchor(castTo($get_11(longEdgeDummy.ports, 0), 11)); + while (edgeCount-- > 0) { + survivingEdge = (checkCriticalElementIndex(0, inputPortEdges.array.length) , castTo(inputPortEdges.array[0], 17)); + droppedEdge = (checkCriticalElementIndex(0, outputPortEdges.array.length) , castTo(outputPortEdges.array[0], 17)); + targetIncomingEdges = droppedEdge.target.incomingEdges; + droppedEdgeListIndex = $indexOf_3(targetIncomingEdges, droppedEdge, 0); + $setTargetAndInsertAtIndex(survivingEdge, droppedEdge.target, droppedEdgeListIndex); + $setSource_0(droppedEdge, null); + $setTarget_0(droppedEdge, null); + survivingBendPoints = survivingEdge.bendPoints; + addUnnecessaryBendpoints && $add_7(survivingBendPoints, new KVector_2(unnecessaryBendpoint)); + for (bendPoint$iterator = $listIterator_2(droppedEdge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + $add_7(survivingBendPoints, new KVector_2(bendPoint)); + } + survivingLabels = survivingEdge.labels; + for (label$iterator = new ArrayList$1(droppedEdge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + survivingLabels.array[survivingLabels.array.length] = label_0; + } + survivingJunctionPoints = castTo($getProperty(survivingEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + droppedJunctionsPoints = castTo($getProperty(droppedEdge, JUNCTION_POINTS), 74); + if (droppedJunctionsPoints) { + if (!survivingJunctionPoints) { + survivingJunctionPoints = new KVectorChain; + $setProperty_0(survivingEdge, JUNCTION_POINTS, survivingJunctionPoints); + } + for (jp$iterator = $listIterator_2(droppedJunctionsPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + $add_7(survivingJunctionPoints, new KVector_2(jp)); + } + } + } +} + +defineClass(1561, 1, $intern_105, LongEdgeJoiner); +_.process = function process_32(layeredGraph, monitor){ + $process_34(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeJoiner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeJoiner', 1561); +function $process_35(layeredGraph, monitor){ + var edge, edge$iterator, layer, layerIter, nextLayer, node, node$iterator, port, port$iterator, targetLayer, targetPort, dummyNode; + $begin(monitor, 'Edge splitting', 1); + if (layeredGraph.layers.array.length <= 2) { + $done_0(monitor); + return; + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = nextLayer; + nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer != layer && targetLayer != nextLayer && splitEdge(edge, (dummyNode = new LNode(layeredGraph) , $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)) , $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge) , $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)) , $setLayer_0(dummyNode, nextLayer) , dummyNode)); + } + } + } + } + $done_0(monitor); +} + +function LongEdgeSplitter(){ +} + +function moveHeadLabels(oldEdge, newEdge){ + var label_0, labelIterator, labelPlacement; + labelIterator = new AbstractList$ListIteratorImpl(oldEdge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); + if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { + $remove_8(labelIterator); + $add_3(newEdge.labels, label_0); + $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, oldEdge); + } + } +} + +function setDummyNodeProperties(dummyNode, inEdge, outEdge){ + var inEdgeSourceNode, outEdgeTargetNode; + inEdgeSourceNode = inEdge.source.owner; + outEdgeTargetNode = outEdge.target.owner; + if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, castToBoolean($getProperty(inEdgeSourceNode, LONG_EDGE_HAS_LABEL_DUMMIES))); + } + else if (inEdgeSourceNode.type_0 == LABEL) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); + } + else if (outEdgeTargetNode.type_0 == LABEL) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(outEdgeTargetNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(outEdgeTargetNode, LONG_EDGE_TARGET), 11)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); + } + else { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, outEdge.target); + } +} + +function splitEdge(edge, dummyNode){ + var dummyEdge, dummyInput, dummyOutput, oldEdgeTarget, portPos, thickness; + oldEdgeTarget = edge.target; + thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + dummyNode.size_0.y_0 = thickness; + portPos = $wnd.Math.floor(thickness / 2); + dummyInput = new LPort; + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInput, dummyNode); + dummyInput.pos.y_0 = portPos; + dummyOutput = new LPort; + $setSide(dummyOutput, EAST_2); + $setNode(dummyOutput, dummyNode); + dummyOutput.pos.y_0 = portPos; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, oldEdgeTarget); + setDummyNodeProperties(dummyNode, edge, dummyEdge); + moveHeadLabels(edge, dummyEdge); + return dummyEdge; +} + +defineClass(1562, 1, $intern_105, LongEdgeSplitter); +_.process = function process_33(layeredGraph, monitor){ + $process_35(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeSplitter', 1562); +function $precalculateAndSetInformation(this$static){ + var dummyBaggage, inDegree, incoming, layer, layer$iterator, layer$iterator0, layerID, layerSize, layerSizePixel, node, node$iterator, nodeID, nodesNdummies, outDegree, outcoming; + this$static.nodeSizeAffix = $doubleValue(castToDouble($getProperty(this$static.masterGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + this$static.dummySize = $doubleValue(castToDouble($getProperty(this$static.masterGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + this$static.maxHeight = this$static.masterGraph.layers.array.length; + layerID = this$static.maxHeight - 1; + nodeID = 0; + this$static.maxWidth = 0; + this$static.maxWidthPixel = 0; + this$static.currentWidth = newArrayList_1(initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, this$static.maxHeight, 0, 1)); + this$static.currentWidthPixel = newArrayList_1(initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, this$static.maxHeight, 7, 1)); + for (layer$iterator0 = new ArrayList$1(this$static.masterGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + layer.id_0 = layerID; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nodeID; + ++nodeID; + } + --layerID; + } + this$static.layers = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeID, 15, 1); + this$static.degreeDiff = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [nodeID, 3], 2); + this$static.nodes = new ArrayList; + this$static.nodesWithIncomingEdges = new ArrayList; + dummyBaggage = 0; + this$static.dummyNodeCount = 0; + for (layer$iterator = new ArrayList$1(this$static.masterGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerID = layer.id_0; + incoming = 0; + outcoming = 0; + layerSize = layer.nodes.array.length; + layerSizePixel = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeID = node.id_0; + this$static.layers[nodeID] = node.layer.id_0; + layerSizePixel += node.size_0.y_0 + this$static.nodeSizeAffix; + inDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + outDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + this$static.degreeDiff[nodeID][0] = outDegree - inDegree; + this$static.degreeDiff[nodeID][1] = inDegree; + this$static.degreeDiff[nodeID][2] = outDegree; + incoming += inDegree; + outcoming += outDegree; + inDegree > 0 && $add_3(this$static.nodesWithIncomingEdges, node); + $add_3(this$static.nodes, node); + } + dummyBaggage -= incoming; + nodesNdummies = layerSize + dummyBaggage; + layerSizePixel += dummyBaggage * this$static.dummySize; + $set_1(this$static.currentWidth, layerID, valueOf_4(nodesNdummies)); + $set_1(this$static.currentWidthPixel, layerID, layerSizePixel); + this$static.maxWidth = $wnd.Math.max(this$static.maxWidth, nodesNdummies); + this$static.maxWidthPixel = $wnd.Math.max(this$static.maxWidthPixel, layerSizePixel); + this$static.dummyNodeCount += dummyBaggage; + dummyBaggage += outcoming; + } +} + +function $process_36(this$static, layeredGraph, progressMonitor){ + var donna, donna$iterator, funFunction, martha, martha$iterator, newMaxWidth, newMaxWidthPixel, promoteUntil, promoteUntilD, promoteUntilN; + $begin(progressMonitor, 'Node promotion heuristic', 1); + this$static.masterGraph = layeredGraph; + $precalculateAndSetInformation(this$static); + this$static.promotionStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_NODE_PROMOTION_STRATEGY_0)), 260); + promoteUntil = castTo($getProperty(this$static.masterGraph, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0), 19).value_0; + funFunction = new NodePromotion$lambda$0$Type; + switch (this$static.promotionStrategy.ordinal) { + case 2: + case 1: + $promotionMagic(this$static, funFunction); + break; + case 3: + this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); + $promotionMagic(this$static, funFunction); + newMaxWidth = 0; + for (martha$iterator = new ArrayList$1(this$static.currentWidth); martha$iterator.i < martha$iterator.this$01.array.length;) { + martha = castTo($next_7(martha$iterator), 19); + newMaxWidth = $wnd.Math.max(newMaxWidth, martha.value_0); + } + + if (newMaxWidth > this$static.maxWidth) { + this$static.promotionStrategy = NIKOLOV; + $promotionMagic(this$static, funFunction); + } + + break; + case 4: + this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); + $promotionMagic(this$static, funFunction); + newMaxWidthPixel = 0; + for (donna$iterator = new ArrayList$1(this$static.currentWidthPixel); donna$iterator.i < donna$iterator.this$01.array.length;) { + donna = castToDouble($next_7(donna$iterator)); + newMaxWidthPixel = $wnd.Math.max(newMaxWidthPixel, (checkCriticalNotNull(donna) , donna)); + } + + if (newMaxWidthPixel > this$static.maxWidthPixel) { + this$static.promotionStrategy = NIKOLOV_PIXEL; + $promotionMagic(this$static, funFunction); + } + + break; + case 6: + promoteUntilN = round_int($wnd.Math.ceil(this$static.layers.length * promoteUntil / 100)); + $promotionMagic(this$static, new NodePromotion$lambda$1$Type(promoteUntilN)); + break; + case 5: + promoteUntilD = round_int($wnd.Math.ceil(this$static.dummyNodeCount * promoteUntil / 100)); + $promotionMagic(this$static, new NodePromotion$lambda$2$Type(promoteUntilD)); + break; + default:$promotionMagic(this$static, funFunction); + } + $setNewLayering(this$static, layeredGraph); + $done_0(progressMonitor); +} + +function $promoteNode(this$static, node){ + var dummiesBuilt, dummiesReduced, dummydiff, edge, edge$iterator, masterNode, maxWidthNotExceeded, nodeLayerPos, nodeSize, promotion; + maxWidthNotExceeded = true; + dummydiff = 0; + nodeLayerPos = this$static.layers[node.id_0]; + nodeSize = node.size_0.y_0 + this$static.nodeSizeAffix; + dummiesBuilt = this$static.degreeDiff[node.id_0][2]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 - 1 + dummiesBuilt)); + $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) - nodeSize + dummiesBuilt * this$static.dummySize); + ++nodeLayerPos; + if (nodeLayerPos >= this$static.maxHeight) { + ++this$static.maxHeight; + $add_3(this$static.currentWidth, valueOf_4(1)); + $add_3(this$static.currentWidthPixel, nodeSize); + } + else { + dummiesReduced = this$static.degreeDiff[node.id_0][1]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 + 1 - dummiesReduced)); + $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) + nodeSize - dummiesReduced * this$static.dummySize); + } + (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) && (castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 > this$static.maxWidth || castTo($get_11(this$static.currentWidth, nodeLayerPos - 1), 19).value_0 > this$static.maxWidth) || this$static.promotionStrategy == NIKOLOV_PIXEL && ($doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) > this$static.maxWidthPixel || $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos - 1))) > this$static.maxWidthPixel)) && (maxWidthNotExceeded = false); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + masterNode = edge.source.owner; + if (this$static.layers[masterNode.id_0] == nodeLayerPos) { + promotion = $promoteNode(this$static, masterNode); + dummydiff = dummydiff + castTo(promotion.first, 19).value_0; + maxWidthNotExceeded = maxWidthNotExceeded && $booleanValue(castToBoolean(promotion.second)); + } + } + this$static.layers[node.id_0] = nodeLayerPos; + dummydiff = dummydiff + this$static.degreeDiff[node.id_0][0]; + return new Pair(valueOf_4(dummydiff), ($clinit_Boolean() , maxWidthNotExceeded?true:false)); +} + +function $promotionMagic(this$static, funky){ + var apply_0, currentWidthBackup, currentWidthPixelBackup, dummyBackup, heightBackup, iterationCounter, layeringBackup, node, node$iterator, promotionFlag, promotionPair, promotions, reducedDummies; + iterationCounter = 0; + reducedDummies = 0; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + dummyBackup = this$static.dummyNodeCount; + heightBackup = this$static.maxHeight; + currentWidthBackup = this$static.currentWidth; + currentWidthPixelBackup = this$static.currentWidthPixel; + do { + promotions = 0; + for (node$iterator = new ArrayList$1(this$static.nodesWithIncomingEdges); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + promotionPair = $promoteNode(this$static, node); + apply_0 = true; + (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) || this$static.promotionStrategy == NIKOLOV_PIXEL) && (apply_0 = $booleanValue(castToBoolean(promotionPair.second))); + if (castTo(promotionPair.first, 19).value_0 < 0 && apply_0) { + ++promotions; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + this$static.dummyNodeCount = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; + reducedDummies += dummyBackup - this$static.dummyNodeCount; + dummyBackup = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; + heightBackup = this$static.maxHeight; + currentWidthBackup = newArrayList(this$static.currentWidth); + currentWidthPixelBackup = newArrayList(this$static.currentWidthPixel); + } + else { + this$static.layers = copyOf(layeringBackup, layeringBackup.length); + this$static.dummyNodeCount = dummyBackup; + this$static.currentWidth = (checkNotNull(currentWidthBackup) , currentWidthBackup?new ArrayList_1(currentWidthBackup):newArrayList_0(new ArrayList$1(currentWidthBackup))); + this$static.currentWidthPixel = (checkNotNull(currentWidthPixelBackup) , currentWidthPixelBackup?new ArrayList_1(currentWidthPixelBackup):newArrayList_0(new ArrayList$1(currentWidthPixelBackup))); + this$static.maxHeight = heightBackup; + } + } + ++iterationCounter; + promotionFlag = promotions != 0 && $booleanValue(castToBoolean(funky.apply_0(new Pair(valueOf_4(reducedDummies), valueOf_4(iterationCounter))))); + } + while (promotionFlag); +} + +function $setNewLayering(this$static, layeredGraph){ + var i, laLaLayer, layList, layerIt, node, node$iterator, possiblyEvilLayer; + layList = new ArrayList; + for (i = 0; i <= this$static.maxHeight; i++) { + laLaLayer = new Layer(layeredGraph); + laLaLayer.id_0 = this$static.maxHeight - i; + layList.array[layList.array.length] = laLaLayer; + } + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, castTo($get_11(layList, this$static.maxHeight - this$static.layers[node.id_0]), 29)); + } + layerIt = new ArrayList$1(layList); + while (layerIt.i < layerIt.this$01.array.length) { + possiblyEvilLayer = castTo($next_7(layerIt), 29); + possiblyEvilLayer.nodes.array.length == 0 && $remove_13(layerIt); + } + layeredGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(layeredGraph.layers, layList); +} + +function NodePromotion(){ +} + +function lambda$1_10(promoteUntilN_0, pair_1){ + return $clinit_Boolean() , castTo(pair_1.second, 19).value_0 < promoteUntilN_0?true:false; +} + +function lambda$2_5(promoteUntilD_0, pair_1){ + return $clinit_Boolean() , castTo(pair_1.first, 19).value_0 < promoteUntilD_0?true:false; +} + +defineClass(1563, 1, $intern_105, NodePromotion); +_.process = function process_34(layeredGraph, progressMonitor){ + $process_36(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.dummyNodeCount = 0; +_.dummySize = 0; +_.maxHeight = 0; +_.maxWidth = 0; +_.maxWidthPixel = 0; +_.nodeSizeAffix = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion', 1563); +function NodePromotion$lambda$0$Type(){ +} + +defineClass(1564, 1, {}, NodePromotion$lambda$0$Type); +_.apply_0 = function apply_93(arg0){ + return castTo(arg0, 46) , $clinit_Boolean() , true; +} +; +_.equals_0 = function equals_120(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$0$Type', 1564); +function NodePromotion$lambda$1$Type(promoteUntilN_0){ + this.promoteUntilN_0 = promoteUntilN_0; +} + +defineClass(1565, 1, {}, NodePromotion$lambda$1$Type); +_.apply_0 = function apply_94(arg0){ + return lambda$1_10(this.promoteUntilN_0, castTo(arg0, 46)); +} +; +_.equals_0 = function equals_121(other){ + return this === other; +} +; +_.promoteUntilN_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$1$Type', 1565); +function NodePromotion$lambda$2$Type(promoteUntilD_0){ + this.promoteUntilD_0 = promoteUntilD_0; +} + +defineClass(1566, 1, {}, NodePromotion$lambda$2$Type); +_.apply_0 = function apply_95(arg0){ + return lambda$2_5(this.promoteUntilD_0, castTo(arg0, 46)); +} +; +_.equals_0 = function equals_122(other){ + return this === other; +} +; +_.promoteUntilD_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$2$Type', 1566); +function $process_37(layeredGraph, monitor){ + var currentPort, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, port, port$iterator, portIterator, previousPort, routing, sameOriginPort, selfLoop, inputPort, outputPort, originInputPort, originOutputPort, bendPoint; + $begin(monitor, 'Odd port side processing', 1); + routing = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeArray = toNodeArray(layer.nodes); + for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 != ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + continue; + } + if (routing == ($clinit_EdgeRouting() , SPLINES)) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || $processSplineInputPort(port); + port.outgoingEdges.array.length == 0 || $processSplineOutputPort(port); + } + } + else if (instanceOf($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17)) { + selfLoop = castTo($getProperty(node, ORIGIN_0), 17); + inputPort = castTo($getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); + outputPort = castTo($getPorts_1(node, EAST_2).iterator_0().next_1(), 11); + originInputPort = castTo($getProperty(inputPort, ORIGIN_0), 11); + originOutputPort = castTo($getProperty(outputPort, ORIGIN_0), 11); + $setSource_0(selfLoop, originOutputPort); + $setTarget_0(selfLoop, originInputPort); + bendPoint = new KVector_2(outputPort.owner.pos); + bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originOutputPort.owner.pos, originOutputPort.pos, originOutputPort.anchor])).x_0; + $add_7(selfLoop.bendPoints, bendPoint); + bendPoint = new KVector_2(inputPort.owner.pos); + bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originInputPort.owner.pos, originInputPort.pos, originInputPort.anchor])).x_0; + $add_7(selfLoop.bendPoints, bendPoint); + } + else { + if (node.ports.array.length >= 2) { + sameOriginPort = true; + portIterator = new ArrayList$1(node.ports); + currentPort = castTo($next_7(portIterator), 11); + previousPort = null; + while (portIterator.i < portIterator.this$01.array.length) { + previousPort = currentPort; + currentPort = castTo($next_7(portIterator), 11); + if (!equals_Ljava_lang_Object__Z__devirtual$($getProperty(previousPort, ORIGIN_0), $getProperty(currentPort, ORIGIN_0))) { + sameOriginPort = false; + break; + } + } + } + else { + sameOriginPort = false; + } + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || $processInputPort(port, sameOriginPort); + port.outgoingEdges.array.length == 0 || $processOutputPort(port, sameOriginPort); + } + } + $setLayer_0(node, null); + } + } + $done_0(monitor); +} + +function $processInputPort(inputPort, addJunctionPoints){ + var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, junctionPoints, originPort, x_0, y_0; + originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; + y_0 = inputPort.owner.pos.y_0; + edgeArray = toEdgeArray(inputPort.incomingEdges); + for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + $setTarget_0(inEdge, originPort); + $addLast_0(inEdge.bendPoints, new KVector_1(x_0, y_0)); + if (addJunctionPoints) { + junctionPoints = castTo($getProperty(inEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(inEdge, JUNCTION_POINTS, junctionPoints); + } + $add_7(junctionPoints, new KVector_1(x_0, y_0)); + } + } +} + +function $processOutputPort(outputPort, addJunctionPoints){ + var edgeArray, junctionPoints, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max, x_0, y_0; + originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; + y_0 = outputPort.owner.pos.y_0; + edgeArray = toEdgeArray(outputPort.outgoingEdges); + for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + $setSource_0(outEdge, originPort); + $addFirst_0(outEdge.bendPoints, new KVector_1(x_0, y_0)); + if (addJunctionPoints) { + junctionPoints = castTo($getProperty(outEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(outEdge, JUNCTION_POINTS, junctionPoints); + } + $add_7(junctionPoints, new KVector_1(x_0, y_0)); + } + } +} + +function $processSplineInputPort(inputPort){ + var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, originPort; + originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, inputPort.owner.pos.y_0); + edgeArray = toEdgeArray(inputPort.incomingEdges); + for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + $setTarget_0(inEdge, originPort); + } +} + +function $processSplineOutputPort(outputPort){ + var edgeArray, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max; + originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, outputPort.owner.pos.y_0); + edgeArray = toEdgeArray(outputPort.outgoingEdges); + for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + $setSource_0(outEdge, originPort); + } +} + +function NorthSouthPortPostprocessor(){ +} + +defineClass(1567, 1, $intern_105, NorthSouthPortPostprocessor); +_.process = function process_35(layeredGraph, monitor){ + $process_37(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPostprocessor', 1567); +function $createDummyNode_0(layeredGraph, inPort, outPort, dummyNodes){ + var crossingHint, dummy, dummyInputPort, dummyOutputPort, edge, edge$array, edge$index, edge$max, edgeArray; + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + crossingHint = 0; + if (inPort) { + dummyInputPort = new LPort; + $setProperty_0(dummyInputPort, ($clinit_InternalProperties_1() , ORIGIN_0), inPort); + $setProperty_0(dummy, ORIGIN_0, inPort.owner); + $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInputPort, dummy); + edgeArray = toEdgeArray(inPort.incomingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setTarget_0(edge, dummyInputPort); + } + $setProperty_0(inPort, PORT_DUMMY, dummy); + ++crossingHint; + } + if (outPort) { + dummyOutputPort = new LPort; + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), outPort.owner); + $setProperty_0(dummyOutputPort, ORIGIN_0, outPort); + $setSide(dummyOutputPort, ($clinit_PortSide() , EAST_2)); + $setNode(dummyOutputPort, dummy); + edgeArray = toEdgeArray(outPort.outgoingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, dummyOutputPort); + } + $setProperty_0(outPort, PORT_DUMMY, dummy); + ++crossingHint; + } + $setProperty_0(dummy, ($clinit_InternalProperties_1() , CROSSING_HINT), valueOf_4(crossingHint)); + dummyNodes.array[dummyNodes.array.length] = dummy; + return dummy; +} + +function $createDummyNodes(layeredGraph, ports, dummyNodes, opposingSideDummyNodes, barycenterAssociates){ + var edge, edge$iterator, edge$iterator0, edge$iterator1, in_0, inOutPort, inOutPort$iterator, inOutPorts, inPort, inPort$iterator, inPorts, northSouthSelfLoopEdges, out, outPort, outPort$iterator, outPorts, port, port$iterator, port$iterator0, sameSideSelfLoopEdges, dummy, dummyInputPort, dummyOutputPort; + inPorts = new ArrayList_0(ports.size_0); + outPorts = new ArrayList_0(ports.size_0); + inOutPorts = new ArrayList_0(ports.size_0); + sameSideSelfLoopEdges = new ArrayList_0(ports.size_0); + northSouthSelfLoopEdges = new ArrayList_0(ports.size_0); + for (port$iterator0 = $listIterator_2(ports, 0); port$iterator0.currentNode != port$iterator0.this$01.tail;) { + port = castTo($next_10(port$iterator0), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + if (edge.source.owner == edge.target.owner) { + if (port.side == edge.target.side) { + sameSideSelfLoopEdges.array[sameSideSelfLoopEdges.array.length] = edge; + continue; + } + else if (port.side == ($clinit_PortSide() , NORTH_3) && edge.target.side == SOUTH_2) { + northSouthSelfLoopEdges.array[northSouthSelfLoopEdges.array.length] = edge; + continue; + } + } + } + } + for (edge$iterator1 = new ArrayList$1(northSouthSelfLoopEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_7(edge$iterator1), 17); + $createNorthSouthSelfLoopDummyNodes(layeredGraph, edge, dummyNodes, opposingSideDummyNodes, ($clinit_PortSide() , EAST_2)); + } + for (edge$iterator = new ArrayList$1(sameSideSelfLoopEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + dummyInputPort = new LPort; + $setProperty_0(dummyInputPort, ORIGIN_0, edge.target); + $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInputPort, dummy); + dummyOutputPort = new LPort; + $setProperty_0(dummyOutputPort, ORIGIN_0, edge.source); + $setSide(dummyOutputPort, EAST_2); + $setNode(dummyOutputPort, dummy); + $setProperty_0(edge.source, PORT_DUMMY, dummy); + $setProperty_0(edge.target, PORT_DUMMY, dummy); + $setSource_0(edge, null); + $setTarget_0(edge, null); + dummyNodes.array[dummyNodes.array.length] = dummy; + $setProperty_0(dummy, CROSSING_HINT, valueOf_4(2)); + } + for (port$iterator = $listIterator_2(ports, 0); port$iterator.currentNode != port$iterator.this$01.tail;) { + port = castTo($next_10(port$iterator), 11); + in_0 = port.incomingEdges.array.length > 0; + out = port.outgoingEdges.array.length > 0; + in_0 && out?(inOutPorts.array[inOutPorts.array.length] = port , true):in_0?(inPorts.array[inPorts.array.length] = port , true):out && (outPorts.array[outPorts.array.length] = port , true); + } + for (inPort$iterator = new ArrayList$1(inPorts); inPort$iterator.i < inPort$iterator.this$01.array.length;) { + inPort = castTo($next_7(inPort$iterator), 11); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inPort, null, dummyNodes)); + } + for (outPort$iterator = new ArrayList$1(outPorts); outPort$iterator.i < outPort$iterator.this$01.array.length;) { + outPort = castTo($next_7(outPort$iterator), 11); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, null, outPort, dummyNodes)); + } + for (inOutPort$iterator = new ArrayList$1(inOutPorts); inOutPort$iterator.i < inOutPort$iterator.this$01.array.length;) { + inOutPort = castTo($next_7(inOutPort$iterator), 11); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inOutPort, inOutPort, dummyNodes)); + } +} + +function $createNorthSouthSelfLoopDummyNodes(layeredGraph, selfLoop, northDummyNodes, southDummyNodes, portSide){ + var northDummy, northDummyOutputPort, southDummy, southDummyInputPort; + northDummy = new LNode(layeredGraph); + $setType(northDummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(northDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(northDummy, ($clinit_InternalProperties_1() , ORIGIN_0), selfLoop.source.owner); + northDummyOutputPort = new LPort; + $setProperty_0(northDummyOutputPort, ORIGIN_0, selfLoop.source); + $setSide(northDummyOutputPort, portSide); + $setNode(northDummyOutputPort, northDummy); + $setProperty_0(selfLoop.source, PORT_DUMMY, northDummy); + southDummy = new LNode(layeredGraph); + $setType(southDummy, NORTH_SOUTH_PORT); + $setProperty_0(southDummy, PORT_CONSTRAINTS_0, FIXED_POS); + $setProperty_0(southDummy, ORIGIN_0, selfLoop.target.owner); + southDummyInputPort = new LPort; + $setProperty_0(southDummyInputPort, ORIGIN_0, selfLoop.target); + $setSide(southDummyInputPort, portSide); + $setNode(southDummyInputPort, southDummy); + $setProperty_0(selfLoop.target, PORT_DUMMY, southDummy); + $setSource_0(selfLoop, northDummyOutputPort); + $setTarget_0(selfLoop, southDummyInputPort); + checkCriticalPositionIndex(0, northDummyNodes.array.length); + insertTo(northDummyNodes.array, 0, northDummy); + southDummyNodes.array[southDummyNodes.array.length] = southDummy; + $setProperty_0(northDummy, CROSSING_HINT, valueOf_4(1)); + $setProperty_0(southDummy, CROSSING_HINT, valueOf_4(1)); +} + +function $process_38(layeredGraph, monitor){ + var barycenterAssociates, dummy, dummy$iterator, dummy$iterator0, dummyPort, insertPoint, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, northDummyNodes, originPort, pointer, port, port$iterator, portList, predecessor, southDummyNodes, successor; + $begin(monitor, 'Odd port side processing', 1); + northDummyNodes = new ArrayList; + southDummyNodes = new ArrayList; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + pointer = -1; + nodeArray = toNodeArray(layer.nodes); + for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + ++pointer; + if (!(node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)))) { + continue; + } + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $sortPortList_0(node); + $setProperty_0(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT), node); + northDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + southDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + barycenterAssociates = new ArrayList; + portList = new LinkedList; + addAll_6(portList, $getPorts_1(node, ($clinit_PortSide() , NORTH_3))); + $createDummyNodes(layeredGraph, portList, northDummyNodes, southDummyNodes, barycenterAssociates); + insertPoint = pointer; + successor = node; + for (dummy$iterator0 = new ArrayList$1(northDummyNodes); dummy$iterator0.i < dummy$iterator0.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator0), 10); + $setLayer(dummy, insertPoint, layer); + ++pointer; + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); + $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(dummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(successor); + } + $reset_0(portList); + for (port$iterator = $getPorts_1(node, SOUTH_2).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $addNode_0(portList, port, portList.header, portList.header.next_0); + } + $createDummyNodes(layeredGraph, portList, southDummyNodes, null, barycenterAssociates); + predecessor = node; + for (dummy$iterator = new ArrayList$1(southDummyNodes); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + $setLayer(dummy, ++pointer, layer); + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); + $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(predecessor, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(dummy); + } + barycenterAssociates.array.length == 0 || $setProperty_0(node, BARYCENTER_ASSOCIATES, barycenterAssociates); + } + } + $done_0(monitor); +} + +function $sortPortList_0(node){ + var inOutPorts, inPorts, incoming, outPorts, outgoing, port, port$iterator, ports; + ports = node.ports.array.length; + inPorts = 0; + inOutPorts = ports; + outPorts = 2 * ports; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 2: + case 4: + port.id_0 = -1; + break; + case 1: + case 3: + incoming = port.incomingEdges.array.length; + outgoing = port.outgoingEdges.array.length; + incoming > 0 && outgoing > 0?(port.id_0 = inOutPorts++):incoming > 0?(port.id_0 = inPorts++):outgoing > 0?(port.id_0 = outPorts++):(port.id_0 = inPorts++); + } + } + $clinit_Collections(); + $sort(node.ports, new NorthSouthPortPreprocessor$lambda$0$Type); +} + +function NorthSouthPortPreprocessor(){ +} + +function lambda$0_24(port1_0, port2_1){ + var side1, side2; + side1 = port1_0.side; + side2 = port2_1.side; + return side1 != side2?side1.ordinal - side2.ordinal:port1_0.id_0 == port2_1.id_0?0:side1 == ($clinit_PortSide() , NORTH_3)?port1_0.id_0 - port2_1.id_0:port2_1.id_0 - port1_0.id_0; +} + +defineClass(1568, 1, $intern_105, NorthSouthPortPreprocessor); +_.process = function process_36(layeredGraph, monitor){ + $process_38(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor', 1568); +function NorthSouthPortPreprocessor$lambda$0$Type(){ +} + +defineClass(1569, 1, $intern_88, NorthSouthPortPreprocessor$lambda$0$Type); +_.compare_1 = function compare_47(arg0, arg1){ + return lambda$0_24(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_123(other){ + return this === other; +} +; +_.reversed = function reversed_39(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor/lambda$0$Type', 1569); +function $connectNodes(firstPartition, secondPartition){ + var edge, node, node$iterator, otherNode, otherNode$iterator, sourcePort, targetPort; + for (node$iterator = firstPartition.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + sourcePort = new LPort; + $setNode(sourcePort, node); + $setSide(sourcePort, ($clinit_PortSide() , EAST_2)); + $setProperty_0(sourcePort, ($clinit_InternalProperties_1() , PARTITION_DUMMY), ($clinit_Boolean() , true)); + for (otherNode$iterator = secondPartition.iterator_0(); otherNode$iterator.hasNext_0();) { + otherNode = castTo(otherNode$iterator.next_1(), 10); + targetPort = new LPort; + $setNode(targetPort, otherNode); + $setSide(targetPort, WEST_2); + $setProperty_0(targetPort, PARTITION_DUMMY, true); + edge = new LEdge; + $setProperty_0(edge, PARTITION_DUMMY, true); + $setSource_0(edge, sourcePort); + $setTarget_0(edge, targetPort); + } + } +} + +function $process_39(lGraph, monitor){ + var firstId, idIterator, partitionToNodesMap, result, secondId, sortedPartitionIDs; + $begin(monitor, 'Partition midprocessing', 1); + partitionToNodesMap = new HashMultimap; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionMidprocessor$lambda$0$Type), new PartitionMidprocessor$lambda$1$Type(partitionToNodesMap)); + if (partitionToNodesMap.totalSize == 0) { + return; + } + sortedPartitionIDs = castTo($collect_1($sorted_0((result = partitionToNodesMap.keySet , new StreamImpl(null, (!result?(partitionToNodesMap.keySet = new AbstractMapBasedMultimap$KeySet(partitionToNodesMap, partitionToNodesMap.map_0)):result).spliterator_0()))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + idIterator = sortedPartitionIDs.iterator_0(); + firstId = castTo(idIterator.next_1(), 19); + while (idIterator.hasNext_0()) { + secondId = castTo(idIterator.next_1(), 19); + $connectNodes(castTo($get(partitionToNodesMap, firstId), 21), castTo($get(partitionToNodesMap, secondId), 21)); + firstId = secondId; + } + $done_0(monitor); +} + +function PartitionMidprocessor(){ +} + +function lambda$1_11(partitionToNodesMap_0, node_1){ + return $put(partitionToNodesMap_0, castTo($getProperty(node_1, ($clinit_LayeredOptions() , PARTITIONING_PARTITION)), 19), node_1); +} + +defineClass(1570, 1, $intern_105, PartitionMidprocessor); +_.process = function process_37(lGraph, monitor){ + $process_39(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor', 1570); +function PartitionMidprocessor$lambda$0$Type(){ +} + +defineClass(1571, 1, $intern_39, PartitionMidprocessor$lambda$0$Type); +_.test_0 = function test_43(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$0$Type', 1571); +function PartitionMidprocessor$lambda$1$Type(partitionToNodesMap_0){ + this.partitionToNodesMap_0 = partitionToNodesMap_0; +} + +defineClass(1572, 1, $intern_19, PartitionMidprocessor$lambda$1$Type); +_.accept = function accept_77(arg0){ + lambda$1_11(this.partitionToNodesMap_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$1$Type', 1572); +function $process_40(lGraph, monitor){ + var layer, layer$iterator, node, node$iterator, port, ports; + $begin(monitor, 'Partition postprocessing', 1); + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + ports = new ArrayList$1(node.ports); + while (ports.i < ports.this$01.array.length) { + port = castTo($next_7(ports), 11); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , PARTITION_DUMMY)))) && $remove_13(ports); + } + } + } + $done_0(monitor); +} + +function PartitionPostprocessor(){ +} + +defineClass(1573, 1, $intern_105, PartitionPostprocessor); +_.process = function process_38(lGraph, monitor){ + $process_40(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPostprocessor', 1573); +function $mustBeReversed(lEdge){ + var sourcePartition, targetPartition; + if ($hasProperty(lEdge.target.owner, ($clinit_LayeredOptions() , PARTITIONING_PARTITION))) { + sourcePartition = castTo($getProperty(lEdge.source.owner, PARTITIONING_PARTITION), 19); + targetPartition = castTo($getProperty(lEdge.target.owner, PARTITIONING_PARTITION), 19); + return compare_5(sourcePartition.value_0, targetPartition.value_0) > 0; + } + else { + return false; + } +} + +function $process_41(lGraph, monitor){ + var edgesToBeReversed; + $begin(monitor, 'Partition preprocessing', 1); + edgesToBeReversed = castTo($collect_1($filter($flatMap($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionPreprocessor$lambda$0$Type), new PartitionPreprocessor$lambda$1$Type), new PartitionPreprocessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + $forEach_3(edgesToBeReversed.stream(), new PartitionPreprocessor$lambda$3$Type); + $done_0(monitor); +} + +function $reverse_1(lEdge){ + var priority; + $reverse_0(lEdge, true); + priority = $intern_45; + $hasProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)) && (priority += castTo($getProperty(lEdge, PRIORITY_DIRECTION_0), 19).value_0); + $setProperty_0(lEdge, PRIORITY_DIRECTION_0, valueOf_4(priority)); +} + +function PartitionPreprocessor(){ +} + +defineClass(1574, 1, $intern_105, PartitionPreprocessor); +_.process = function process_39(lGraph, monitor){ + $process_41(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor', 1574); +function PartitionPreprocessor$lambda$0$Type(){ +} + +defineClass(1575, 1, $intern_39, PartitionPreprocessor$lambda$0$Type); +_.test_0 = function test_44(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$0$Type', 1575); +function PartitionPreprocessor$lambda$1$Type(){ +} + +defineClass(1576, 1, {}, PartitionPreprocessor$lambda$1$Type); +_.apply_0 = function apply_96(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$1$Type', 1576); +function PartitionPreprocessor$lambda$2$Type(){ +} + +defineClass(1577, 1, $intern_39, PartitionPreprocessor$lambda$2$Type); +_.test_0 = function test_45(arg0){ + return $mustBeReversed(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$2$Type', 1577); +function PartitionPreprocessor$lambda$3$Type(){ +} + +defineClass(1578, 1, $intern_19, PartitionPreprocessor$lambda$3$Type); +_.accept = function accept_78(arg0){ + $reverse_1(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$3$Type', 1578); +function $clinit_PortListSorter(){ + $clinit_PortListSorter = emptyMethod; + IN_EDGES = new PortListSorter$lambda$0$Type; + OUT_EDGES = new PortListSorter$lambda$1$Type; + CMP_PORT_SIDE = new PortListSorter$lambda$2$Type; + CMP_PORT_DEGREE_EAST_WEST = new PortListSorter$lambda$3$Type; + CMP_FIXED_ORDER_AND_FIXED_POS = new PortListSorter$lambda$4$Type; + CMP_COMBINED = (checkCriticalNotNull(CMP_FIXED_ORDER_AND_FIXED_POS) , new Comparator$lambda$0$Type); +} + +function $findPortSideRange(ports, side){ + var currentSide, hb, highIdx, lb, lowIdx; + if (ports.array.length == 0) { + return new Pair(valueOf_4(0), valueOf_4(0)); + } + currentSide = (checkCriticalElementIndex(0, ports.array.length) , castTo(ports.array[0], 11)).side; + lowIdx = 0; + lb = side.ordinal; + hb = side.ordinal + 1; + while (lowIdx < ports.array.length - 1 && currentSide.ordinal < lb) { + ++lowIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; + } + highIdx = lowIdx; + while (highIdx < ports.array.length - 1 && currentSide.ordinal < hb) { + ++highIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; + } + return new Pair(valueOf_4(lowIdx), valueOf_4(highIdx)); +} + +function $process_42(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, portConstraints, ports, pss; + $begin(monitor, 'Port order processing', 1); + pss = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_SORTING_STRATEGY_0)), 421); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + portConstraints = castTo($getProperty(node, PORT_CONSTRAINTS_0), 98); + ports = node.ports; + if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { + $clinit_Collections(); + $sort(ports, CMP_COMBINED); + } + else if (portConstraints != FREE && portConstraints != UNDEFINED_4) { + $clinit_Collections(); + $sort(ports, CMP_PORT_SIDE); + $reverseWestAndSouthSide(ports); + pss == ($clinit_PortSortingStrategy() , PORT_DEGREE) && $sort(ports, CMP_PORT_DEGREE_EAST_WEST); + } + node.portSidesCached = true; + $findPortIndices(node); + } + } + $done_0(monitor); +} + +function $reverse_2(ports, lowIdx, highIdx){ + var i, n, tmp; + if (highIdx <= lowIdx + 2) { + return; + } + n = (highIdx - lowIdx) / 2 | 0; + for (i = 0; i < n; ++i) { + tmp = (checkCriticalElementIndex(lowIdx + i, ports.array.length) , castTo(ports.array[lowIdx + i], 11)); + $set_1(ports, lowIdx + i, (checkCriticalElementIndex(highIdx - i - 1, ports.array.length) , castTo(ports.array[highIdx - i - 1], 11))); + checkCriticalElementIndex(highIdx - i - 1, ports.array.length); + ports.array[highIdx - i - 1] = tmp; + } +} + +function $reverseWestAndSouthSide(ports){ + var southIndices, westIndices; + if (ports.array.length <= 1) { + return; + } + southIndices = $findPortSideRange(ports, ($clinit_PortSide() , SOUTH_2)); + $reverse_2(ports, castTo(southIndices.first, 19).value_0, castTo(southIndices.second, 19).value_0); + westIndices = $findPortSideRange(ports, WEST_2); + $reverse_2(ports, castTo(westIndices.first, 19).value_0, castTo(westIndices.second, 19).value_0); +} + +function PortListSorter(){ + $clinit_PortListSorter(); +} + +function lambda$2_6(p1_0, p2_1){ + $clinit_PortListSorter(); + var ordinalDifference; + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + return 0; +} + +function lambda$3_3(p1_0, p2_1){ + $clinit_PortListSorter(); + var ordinalDifference; + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0) { + return 0; + } + switch (p1_0.side.ordinal) { + case 2: + return realDegree_0(p2_1, OUT_EDGES) - realDegree_0(p1_0, OUT_EDGES); + case 4: + return realDegree_0(p1_0, IN_EDGES) - realDegree_0(p2_1, IN_EDGES); + } + return 0; +} + +function lambda$4_6(p1_0, p2_1){ + $clinit_PortListSorter(); + var index1, index2, indexDifference, ordinalDifference, portConstraints; + portConstraints = castTo($getProperty(p1_0.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0 || !(portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS)) { + return 0; + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER)) { + index1 = castTo($getProperty(p1_0, PORT_INDEX), 19); + index2 = castTo($getProperty(p2_1, PORT_INDEX), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + } + switch (p1_0.side.ordinal) { + case 1: + return compare_4(p1_0.pos.x_0, p2_1.pos.x_0); + case 2: + return compare_4(p1_0.pos.y_0, p2_1.pos.y_0); + case 3: + return compare_4(p2_1.pos.x_0, p1_0.pos.x_0); + case 4: + return compare_4(p2_1.pos.y_0, p1_0.pos.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function realDegree_0(p, edgesFun){ + var e, e$iterator, realDegree; + realDegree = 0; + for (e$iterator = castTo(edgesFun.apply_0(p), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + $booleanValue(castToBoolean($getProperty(e, ($clinit_InternalProperties_1() , REVERSED)))) || ++realDegree; + } + return realDegree; +} + +defineClass(1579, 1, $intern_105, PortListSorter); +_.process = function process_40(layeredGraph, monitor){ + $process_42(castTo(layeredGraph, 37), monitor); +} +; +var CMP_COMBINED, CMP_FIXED_ORDER_AND_FIXED_POS, CMP_PORT_DEGREE_EAST_WEST, CMP_PORT_SIDE, IN_EDGES, OUT_EDGES; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter', 1579); +function PortListSorter$lambda$0$Type(){ +} + +defineClass(1580, 1, {}, PortListSorter$lambda$0$Type); +_.apply_0 = function apply_97(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 11).incomingEdges; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$0$Type', 1580); +function PortListSorter$lambda$1$Type(){ +} + +defineClass(1581, 1, {}, PortListSorter$lambda$1$Type); +_.apply_0 = function apply_98(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 11).outgoingEdges; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$1$Type', 1581); +function PortListSorter$lambda$2$Type(){ +} + +defineClass(1582, 1, $intern_88, PortListSorter$lambda$2$Type); +_.compare_1 = function compare_48(arg0, arg1){ + return lambda$2_6(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_124(other){ + return this === other; +} +; +_.reversed = function reversed_40(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$2$Type', 1582); +function PortListSorter$lambda$3$Type(){ +} + +defineClass(1583, 1, $intern_88, PortListSorter$lambda$3$Type); +_.compare_1 = function compare_49(arg0, arg1){ + return lambda$3_3(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_125(other){ + return this === other; +} +; +_.reversed = function reversed_41(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$3$Type', 1583); +function PortListSorter$lambda$4$Type(){ +} + +defineClass(1584, 1, $intern_88, PortListSorter$lambda$4$Type); +_.compare_1 = function compare_50(arg0, arg1){ + return lambda$4_6(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_126(other){ + return this === other; +} +; +_.reversed = function reversed_42(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$4$Type', 1584); +function $process_43(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, node$iterator0; + $begin(monitor, 'Port side processing', 1); + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + $process_44(node); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $process_44(node); + } + } + $done_0(monitor); +} + +function $process_44(node){ + var port, port$iterator, portDummy; + if ($isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.side == ($clinit_PortSide() , UNDEFINED_5) && (portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10) , portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, EAST_2):$setSide(port, WEST_2)); + } + } + else { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, ($clinit_PortSide() , EAST_2)):$setSide(port, ($clinit_PortSide() , WEST_2)); + } + $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)); + } +} + +function PortSideProcessor(){ +} + +defineClass(1585, 1, $intern_105, PortSideProcessor); +_.process = function process_41(layeredGraph, monitor){ + $process_43(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortSideProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortSideProcessor', 1585); +function $process_45(layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$max, edgeArray, layer, layer$iterator, node, node$iterator, port, port$iterator; + $begin(monitor, 'Restoring reversed edges', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + edgeArray = toEdgeArray(port.outgoingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) && $reverse_0(edge, false); + } + } + } + } + $done_0(monitor); +} + +function ReversedEdgeRestorer(){ +} + +defineClass(1586, 1, $intern_105, ReversedEdgeRestorer); +_.process = function process_42(layeredGraph, monitor){ + $process_45(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ReversedEdgeRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ReversedEdgeRestorer', 1586); +function $process_46(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Self-Loop ordering', 1); + $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPortRestorer$lambda$0$Type), new SelfLoopPortRestorer$lambda$1$Type), new SelfLoopPortRestorer$lambda$2$Type), new SelfLoopPortRestorer$lambda$3$Type), new SelfLoopPortRestorer$lambda$4$Type(this$static)); + $done_0(progressMonitor); +} + +function $processNode_4(this$static, slHolder){ + if (slHolder.arePortsHidden) { + switch (castTo($getProperty(slHolder.lNode, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS)), 98).ordinal) { + case 0: + case 1: + $assignPortSides(slHolder); + case 2: + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); + $restorePorts_0(this$static.portRestorer, slHolder); + } + } + else { + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); + } +} + +function SelfLoopPortRestorer(){ + this.portRestorer = new PortRestorer; +} + +defineClass(1591, 1, $intern_105, SelfLoopPortRestorer); +_.process = function process_43(graph, progressMonitor){ + $process_46(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer', 1591); +function SelfLoopPortRestorer$lambda$0$Type(){ +} + +defineClass(1592, 1, {}, SelfLoopPortRestorer$lambda$0$Type); +_.apply_0 = function apply_99(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$0$Type', 1592); +function SelfLoopPortRestorer$lambda$1$Type(){ +} + +defineClass(1593, 1, $intern_39, SelfLoopPortRestorer$lambda$1$Type); +_.test_0 = function test_46(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$1$Type', 1593); +function SelfLoopPortRestorer$lambda$2$Type(){ +} + +defineClass(1594, 1, $intern_39, SelfLoopPortRestorer$lambda$2$Type); +_.test_0 = function test_47(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$2$Type', 1594); +function SelfLoopPortRestorer$lambda$3$Type(){ +} + +defineClass(1595, 1, {}, SelfLoopPortRestorer$lambda$3$Type); +_.apply_0 = function apply_100(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$3$Type', 1595); +function SelfLoopPortRestorer$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1596, 1, $intern_19, SelfLoopPortRestorer$lambda$4$Type); +_.accept = function accept_79(arg0){ + $processNode_4(this.$$outer_0, castTo(arg0, 403)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$4$Type', 1596); +function SelfLoopPortRestorer$lambda$5$Type(){ +} + +defineClass(794, 1, $intern_19, SelfLoopPortRestorer$lambda$5$Type); +_.accept = function accept_80(arg0){ + $computePortsPerSide(castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$5$Type', 794); +function $process_47(graph, progressMonitor){ + $begin(progressMonitor, 'Self-Loop post-processing', 1); + $forEach_3($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPostProcessor$lambda$0$Type), new SelfLoopPostProcessor$lambda$1$Type), new SelfLoopPostProcessor$lambda$2$Type), new SelfLoopPostProcessor$lambda$3$Type); + $done_0(progressMonitor); +} + +function $processNode_5(lNode){ + var slHolder; + slHolder = castTo($getProperty(lNode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$4$Type), new SelfLoopPostProcessor$lambda$5$Type(lNode)); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$6$Type), new SelfLoopPostProcessor$lambda$7$Type(lNode)); +} + +function $restoreEdge(lNode, slEdge){ + var lEdge; + lEdge = slEdge.lEdge; + $setSource_0(lEdge, slEdge.slSource.lPort); + $setTarget_0(lEdge, slEdge.slTarget.lPort); + $offset_2(lEdge.bendPoints, lNode.pos); +} + +function SelfLoopPostProcessor(){ +} + +function lambda$7_1(lNode_0, slLoop_1){ + $applyPlacement(slLoop_1.slLabels, lNode_0.pos); +} + +defineClass(1597, 1, $intern_105, SelfLoopPostProcessor); +_.process = function process_44(graph, progressMonitor){ + $process_47(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor', 1597); +function SelfLoopPostProcessor$lambda$0$Type(){ +} + +defineClass(1598, 1, {}, SelfLoopPostProcessor$lambda$0$Type); +_.apply_0 = function apply_101(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$0$Type', 1598); +function SelfLoopPostProcessor$lambda$1$Type(){ +} + +defineClass(1599, 1, $intern_39, SelfLoopPostProcessor$lambda$1$Type); +_.test_0 = function test_48(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$1$Type', 1599); +function SelfLoopPostProcessor$lambda$2$Type(){ +} + +defineClass(1600, 1, $intern_39, SelfLoopPostProcessor$lambda$2$Type); +_.test_0 = function test_49(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$2$Type', 1600); +function SelfLoopPostProcessor$lambda$3$Type(){ +} + +defineClass(1601, 1, $intern_19, SelfLoopPostProcessor$lambda$3$Type); +_.accept = function accept_81(arg0){ + $processNode_5(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$3$Type', 1601); +function SelfLoopPostProcessor$lambda$4$Type(){ +} + +defineClass(1602, 1, {}, SelfLoopPostProcessor$lambda$4$Type); +_.apply_0 = function apply_102(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$4$Type', 1602); +function SelfLoopPostProcessor$lambda$5$Type(lNode_1){ + this.lNode_1 = lNode_1; +} + +defineClass(1603, 1, $intern_19, SelfLoopPostProcessor$lambda$5$Type); +_.accept = function accept_82(arg0){ + $restoreEdge(this.lNode_1, castTo(arg0, 409)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$5$Type', 1603); +function SelfLoopPostProcessor$lambda$6$Type(){ +} + +defineClass(1604, 1, $intern_39, SelfLoopPostProcessor$lambda$6$Type); +_.test_0 = function test_50(arg0){ + return !!castTo(arg0, 101).slLabels; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$6$Type', 1604); +function SelfLoopPostProcessor$lambda$7$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1605, 1, $intern_19, SelfLoopPostProcessor$lambda$7$Type); +_.accept = function accept_83(arg0){ + lambda$7_1(this.lNode_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$7$Type', 1605); +function $hidePorts(slHolder){ + var entry, hierarchyMode, lNode, lPort, nestedGraph, orderFixed, outerIter, slPort, slPort$iterator; + lNode = slHolder.lNode; + nestedGraph = lNode.nestedGraph; + orderFixed = $isOrderFixed(castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)); + hierarchyMode = !!nestedGraph && castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + if (orderFixed || hierarchyMode) { + return; + } + for (slPort$iterator = (outerIter = (new AbstractMap$2(slHolder.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); + if (slPort.hadOnlySelfLoops) { + lPort = slPort.lPort; + $setNode(lPort, null); + slPort.isHidden = true; + slHolder.arePortsHidden = true; + } + } +} + +function $lambda$2_0(lEdge_0){ + $setSource_0(lEdge_0, null); + $setTarget_0(lEdge_0, null); +} + +function $process_48(graph, progressMonitor){ + var lnode, lnode$iterator, slHolder, holder; + $begin(progressMonitor, 'Self-Loop pre-processing', 1); + for (lnode$iterator = new ArrayList$1(graph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { + lnode = castTo($next_7(lnode$iterator), 10); + if (needsSelfLoopProcessing(lnode)) { + slHolder = (holder = new SelfLoopHolder(lnode) , $setProperty_0(lnode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER), holder) , $initialize_3(holder) , holder); + $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPreProcessor$lambda$0$Type), new SelfLoopPreProcessor$lambda$1$Type), new SelfLoopPreProcessor$lambda$2$Type); + $hidePorts(slHolder); + } + } + $done_0(progressMonitor); +} + +function SelfLoopPreProcessor(){ +} + +defineClass(1587, 1, $intern_105, SelfLoopPreProcessor); +_.process = function process_45(graph, progressMonitor){ + $process_48(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor', 1587); +function SelfLoopPreProcessor$lambda$0$Type(){ +} + +defineClass(1588, 1, {}, SelfLoopPreProcessor$lambda$0$Type); +_.apply_0 = function apply_103(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$0$Type', 1588); +function SelfLoopPreProcessor$lambda$1$Type(){ +} + +defineClass(1589, 1, {}, SelfLoopPreProcessor$lambda$1$Type); +_.apply_0 = function apply_104(arg0){ + return castTo(arg0, 409).lEdge; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$1$Type', 1589); +function SelfLoopPreProcessor$lambda$2$Type(){ +} + +defineClass(1590, 1, $intern_19, SelfLoopPreProcessor$lambda$2$Type); +_.accept = function accept_84(arg0){ + $lambda$2_0(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$2$Type', 1590); +function $lambda$4(this$static, router_2, slHolder_3){ + $determineLoopRoutes(this$static.routingDirector, slHolder_3); + $placeLabels_1(slHolder_3); + $assignRoutingSlots(this$static.routingSlotAssigner, slHolder_3); + $routeSelfLoops(router_2, slHolder_3); +} + +function $process_49(this$static, graph, progressMonitor){ + var router; + $begin(progressMonitor, 'Self-Loop routing', 1); + router = $routerForGraph(graph); + throwClassCastExceptionUnlessNull($getProperty(graph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopRouter$lambda$0$Type), new SelfLoopRouter$lambda$1$Type), new SelfLoopRouter$lambda$2$Type), new SelfLoopRouter$lambda$3$Type), new SelfLoopRouter$lambda$4$Type(this$static, router)); + $done_0(progressMonitor); +} + +function $routerForGraph(graph){ + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218).ordinal) { + case 1: + return new PolylineSelfLoopRouter; + case 3: + return new SplineSelfLoopRouter; + default:return new OrthogonalSelfLoopRouter; + } +} + +function SelfLoopRouter(){ + this.routingDirector = new RoutingDirector; + this.routingSlotAssigner = new RoutingSlotAssigner; +} + +defineClass(1606, 1, $intern_105, SelfLoopRouter); +_.process = function process_46(graph, progressMonitor){ + $process_49(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter', 1606); +function SelfLoopRouter$lambda$0$Type(){ +} + +defineClass(1607, 1, {}, SelfLoopRouter$lambda$0$Type); +_.apply_0 = function apply_105(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$0$Type', 1607); +function SelfLoopRouter$lambda$1$Type(){ +} + +defineClass(1608, 1, $intern_39, SelfLoopRouter$lambda$1$Type); +_.test_0 = function test_51(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$1$Type', 1608); +function SelfLoopRouter$lambda$2$Type(){ +} + +defineClass(1609, 1, $intern_39, SelfLoopRouter$lambda$2$Type); +_.test_0 = function test_52(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$2$Type', 1609); +function SelfLoopRouter$lambda$3$Type(){ +} + +defineClass(1610, 1, {}, SelfLoopRouter$lambda$3$Type); +_.apply_0 = function apply_106(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$3$Type', 1610); +function SelfLoopRouter$lambda$4$Type($$outer_0, router_2){ + this.$$outer_0 = $$outer_0; + this.router_2 = router_2; +} + +defineClass(1611, 1, $intern_19, SelfLoopRouter$lambda$4$Type); +_.accept = function accept_85(arg0){ + $lambda$4(this.$$outer_0, this.router_2, castTo(arg0, 403)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$4$Type', 1611); +function $process_50(layeredGraph, progressMonitor){ + var addedConstraints, l, l$iterator, reduced; + $begin(progressMonitor, 'Semi-Interactive Crossing Minimization Processor', 1); + addedConstraints = false; + for (l$iterator = new ArrayList$1(layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + reduced = $reduce_0($sorted_1($filter($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(l.nodes, 16)), new SemiInteractiveCrossMinProcessor$lambda$0$Type), new SemiInteractiveCrossMinProcessor$lambda$1$Type), new SemiInteractiveCrossMinProcessor$lambda$2$Type), new SemiInteractiveCrossMinProcessor$lambda$3$Type); + addedConstraints = addedConstraints | reduced.ref != null; + } + addedConstraints && $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES), ($clinit_Boolean() , true)); + $done_0(progressMonitor); +} + +function SemiInteractiveCrossMinProcessor(){ +} + +function lambda$2_7(n1_0, n2_1){ + var origPos1, origPos2; + origPos1 = castTo($getProperty(n1_0, ($clinit_LayeredOptions() , POSITION)), 8); + origPos2 = castTo($getProperty(n2_1, POSITION), 8); + return compare_4(origPos1.y_0, origPos2.y_0); +} + +function lambda$3_4(prev_0, cur_1){ + castTo($getProperty(prev_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).add_2(cur_1); + return cur_1; +} + +defineClass(1612, 1, $intern_105, SemiInteractiveCrossMinProcessor); +_.process = function process_47(layeredGraph, progressMonitor){ + $process_50(castTo(layeredGraph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor', 1612); +function SemiInteractiveCrossMinProcessor$lambda$0$Type(){ +} + +defineClass(1613, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$0$Type); +_.test_0 = function test_53(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$0$Type', 1613); +function SemiInteractiveCrossMinProcessor$lambda$1$Type(){ +} + +defineClass(1614, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$1$Type); +_.test_0 = function test_54(arg0){ + return $getAllProperties(castTo(arg0, 10)).containsKey(($clinit_LayeredOptions() , POSITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$1$Type', 1614); +function SemiInteractiveCrossMinProcessor$lambda$2$Type(){ +} + +defineClass(1615, 1, $intern_88, SemiInteractiveCrossMinProcessor$lambda$2$Type); +_.compare_1 = function compare_51(arg0, arg1){ + return lambda$2_7(castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_127(other){ + return this === other; +} +; +_.reversed = function reversed_43(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$2$Type', 1615); +function SemiInteractiveCrossMinProcessor$lambda$3$Type(){ +} + +defineClass(1616, 1, {}, SemiInteractiveCrossMinProcessor$lambda$3$Type); +_.apply_3 = function apply_107(arg0, arg1){ + return lambda$3_4(castTo(arg0, 10), castTo(arg1, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$3$Type', 1616); +function $process_51(graph, progressMonitor){ + var layer, layer$iterator, layerIndex, node, node$iterator, previousLayer, previousLayerIndex; + $begin(progressMonitor, 'Sort By Input Model ' + $getProperty(graph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + previousLayerIndex = layerIndex == 0?0:layerIndex - 1; + previousLayer = castTo($get_11(graph.layers, previousLayerIndex), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(($clinit_PortConstraints() , FIXED_ORDER)) && maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(FIXED_POS)) { + $clinit_Collections(); + $sort(node.ports, new ModelOrderPortComparator(previousLayer, longEdgeTargetNodePreprocessing(node))); + $log_2(progressMonitor, 'Node ' + node + ' ports: ' + node.ports); + } + } + $clinit_Collections(); + $sort(layer.nodes, new ModelOrderNodeComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 339), castTo($getProperty(graph, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0), 378))); + $log_2(progressMonitor, 'Layer ' + layerIndex + ': ' + layer); + ++layerIndex; + } + $done_0(progressMonitor); +} + +function SortByInputModelProcessor(){ +} + +function getTargetNode(port){ + var edge, node; + node = null; + edge = castTo($get_11(port.outgoingEdges, 0), 17); + do { + node = edge.target.owner; + if ($hasProperty(node, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET))) { + return castTo($getProperty(node, LONG_EDGE_TARGET), 11).owner; + } + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))) { + edge = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17); + } + else if (node.type_0 != NORMAL) { + return null; + } + } + while (!!node && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)); + return node; +} + +function lambda$1_12(targetNodeModelOrder_0, p_1){ + var edge, previousOrder, targetNode; + targetNode = getTargetNode(p_1); + $setProperty_0(p_1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE), targetNode); + if (targetNode) { + previousOrder = $intern_0; + !!$getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode) && (previousOrder = castTo(getEntryValueOrNull($getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode)), 19).value_0); + edge = castTo($get_11(p_1.outgoingEdges, 0), 17); + $booleanValue(castToBoolean($getProperty(edge, REVERSED))) || $put_6(targetNodeModelOrder_0, targetNode, valueOf_4($wnd.Math.min(castTo($getProperty(edge, MODEL_ORDER_0), 19).value_0, previousOrder))); + } +} + +function longEdgeTargetNodePreprocessing(node){ + var targetNodeModelOrder; + targetNodeModelOrder = new HashMap; + if ($hasProperty(node, ($clinit_InternalProperties_1() , TARGET_NODE_MODEL_ORDER))) { + return castTo($getProperty(node, TARGET_NODE_MODEL_ORDER), 83); + } + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(node.ports, 16)), new SortByInputModelProcessor$lambda$0$Type), new SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder)); + $setProperty_0(node, TARGET_NODE_MODEL_ORDER, targetNodeModelOrder); + return targetNodeModelOrder; +} + +defineClass(1618, 1, $intern_105, SortByInputModelProcessor); +_.process = function process_48(graph, progressMonitor){ + $process_51(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor', 1618); +function SortByInputModelProcessor$lambda$0$Type(){ +} + +defineClass(1619, 1, $intern_39, SortByInputModelProcessor$lambda$0$Type); +_.test_0 = function test_55(arg0){ + return castTo(arg0, 11).outgoingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$0$Type', 1619); +function SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder_0){ + this.targetNodeModelOrder_0 = targetNodeModelOrder_0; +} + +defineClass(1620, 1, $intern_19, SortByInputModelProcessor$lambda$1$Type); +_.accept = function accept_86(arg0){ + lambda$1_12(this.targetNodeModelOrder_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$1$Type', 1620); +function $alterGroupedHitboxOrthogonal(g, spacing, fac){ + var delta, master, n, n$iterator, vs; + master = g.master; + !master && (master = castTo(g.cNodes.map_0.keySet_0().iterator_0().next_1(), 57)); + $alterHitbox(master, spacing, fac); + if (g.cNodes.map_0.size_1() == 1) { + return; + } + delta = spacing * fac; + for (n$iterator = g.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if (n != master) { + vs = getVerticalSegmentOrNull(n); + if (vs.ignoreSpacing.up) { + n.hitbox.y_0 += delta + $intern_94; + n.hitbox.height -= delta + $intern_94; + } + else + vs.ignoreSpacing.down && (n.hitbox.height -= delta + $intern_94); + } + } +} + +function $alterHitbox(n, spacing, fac){ + var delta, vs; + delta = spacing * fac; + if (instanceOf(n.origin_0, 145)) { + vs = getVerticalSegmentOrNull(n); + if (vs.ignoreSpacing.up) { + vs.ignoreSpacing.down || (n.hitbox.height += delta + $intern_94); + } + else { + n.hitbox.y_0 -= delta + $intern_94; + n.hitbox.height += delta + $intern_94; + } + } + else if (instanceOf(n.origin_0, 10)) { + n.hitbox.y_0 -= delta; + n.hitbox.height += 2 * delta; + } +} + +function $lambda$1_0(this$static, n_0){ + var lNode, spacing, vs; + if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return $intern_59; + } + vs = getVerticalSegmentOrNull(n_0); + if (vs) { + return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + } + lNode = getLNodeOrNull(n_0); + if (lNode) { + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + return $wnd.Math.max(0, spacing / 2 - 0.5); + } + return $intern_59; +} + +function $lambda$14(schedule_1, n_1){ + var finalSpacing, lNode, spacing; + lNode = getLNodeOrNull(n_1); + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + finalSpacing = $wnd.Math.max(0, spacing / 2 - 0.5); + $alterHitbox(n_1, finalSpacing, 1); + $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing)); +} + +function $lambda$18(this$static, n_0){ + var lNode, spacing, vs; + if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return $intern_59; + } + vs = getVerticalSegmentOrNull(n_0); + if (vs) { + return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + } + lNode = getLNodeOrNull(n_0); + if (lNode) { + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + return $wnd.Math.max(0, spacing / 2 - 0.5); + } + return $intern_59; +} + +function $lambda$20(minSpacing_1, schedule_3, g_2){ + $alterGroupedHitboxOrthogonal(g_2, minSpacing_1, 1); + $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_2, minSpacing_1)); +} + +function $lambda$4_0(minSpacing_1, schedule_3, n_2){ + $alterHitbox(n_2, minSpacing_1, 1); + $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_2, minSpacing_1)); +} + +function $lambda$9(this$static, schedule_1, n_1){ + var spacing; + spacing = $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + $alterHitbox(n_1, spacing, 1); + $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing)); +} + +function EdgeAwareScanlineConstraintCalculation(graph){ + ScanlineConstraintCalculator.call(this); + this.verticalEdgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + this.edgeRouting = castTo($getProperty(graph, EDGE_ROUTING), 218); +} + +defineClass(1693, 803, {}, EdgeAwareScanlineConstraintCalculation); +_.calculateConstraints = function calculateConstraints_1(theCompactor){ + var schedule, minSpacing, schedule_0, minSpacing_0; + this.compactor = theCompactor; + switch (this.edgeRouting.ordinal) { + case 2: + schedule = new ArrayList; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$8$Type), new EdgeAwareScanlineConstraintCalculation$lambda$9$Type(this, schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$11$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$12$Type); + schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$13$Type), new EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$16$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$17$Type); + schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + minSpacing = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$18$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$19$Type); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cGroups, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing, schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$22$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$23$Type); + schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + break; + case 3: + schedule_0 = new ArrayList; + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$0$Type); + minSpacing_0 = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$1$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$2$Type); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$3$Type), new EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_0, schedule_0)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$6$Type); + $forEach_1(schedule_0, new EdgeAwareScanlineConstraintCalculation$lambda$7$Type); + schedule_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + break; + default:throw toJs(new UnsupportedConfigurationException); + } +} +; +_.verticalEdgeEdgeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation', 1693); +function EdgeAwareScanlineConstraintCalculation$lambda$0$Type(){ +} + +defineClass(1694, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$0$Type); +_.apply_1 = function apply_108(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +_.equals_0 = function equals_128(other){ + return this === other; +} +; +_.test_0 = function test_56(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$0$Type', 1694); +function EdgeAwareScanlineConstraintCalculation$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1695, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$1$Type); +_.applyAsDouble = function applyAsDouble_1(arg0){ + return $lambda$1_0(this.$$outer_0, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$1$Type', 1695); +function EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing_2){ + this.n_1 = n_1; + this.spacing_2 = spacing_2; +} + +defineClass(1703, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$10$Type); +_.run = function run_1(){ + $alterHitbox(this.n_1, this.spacing_2, -1); +} +; +_.spacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$10$Type', 1703); +function EdgeAwareScanlineConstraintCalculation$lambda$11$Type(){ +} + +defineClass(1705, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$11$Type); +_.apply_1 = function apply_109(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +_.equals_0 = function equals_129(other){ + return this === other; +} +; +_.test_0 = function test_57(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$11$Type', 1705); +function EdgeAwareScanlineConstraintCalculation$lambda$12$Type(){ +} + +defineClass(1706, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$12$Type); +_.accept = function accept_87(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$12$Type', 1706); +function EdgeAwareScanlineConstraintCalculation$lambda$13$Type(){ +} + +defineClass(1707, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$13$Type); +_.test_0 = function test_58(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$13$Type', 1707); +function EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule_1){ + this.schedule_1 = schedule_1; +} + +defineClass(1709, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$14$Type); +_.accept = function accept_88(arg0){ + $lambda$14(this.schedule_1, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$14$Type', 1709); +function EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing_2){ + this.n_1 = n_1; + this.finalSpacing_2 = finalSpacing_2; +} + +defineClass(1708, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$15$Type); +_.run = function run_2(){ + $alterHitbox(this.n_1, this.finalSpacing_2, -1); +} +; +_.finalSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$15$Type', 1708); +function EdgeAwareScanlineConstraintCalculation$lambda$16$Type(){ +} + +defineClass(1710, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$16$Type); +_.apply_1 = function apply_110(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +_.equals_0 = function equals_130(other){ + return this === other; +} +; +_.test_0 = function test_59(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$16$Type', 1710); +function EdgeAwareScanlineConstraintCalculation$lambda$17$Type(){ +} + +defineClass(1711, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$17$Type); +_.accept = function accept_89(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$17$Type', 1711); +function EdgeAwareScanlineConstraintCalculation$lambda$18$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1712, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$18$Type); +_.applyAsDouble = function applyAsDouble_2(arg0){ + return $lambda$18(this.$$outer_0, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$18$Type', 1712); +function EdgeAwareScanlineConstraintCalculation$lambda$19$Type(){ +} + +defineClass(1713, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$19$Type); +_.getAsDouble = function getAsDouble(){ + return 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$19$Type', 1713); +function EdgeAwareScanlineConstraintCalculation$lambda$2$Type(){ +} + +defineClass(1696, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$2$Type); +_.getAsDouble = function getAsDouble_0(){ + return 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$2$Type', 1696); +function EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1715, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$20$Type); +_.accept = function accept_90(arg0){ + $lambda$20(this.minSpacing_1, this.schedule_3, castTo(arg0, 307)); +} +; +_.minSpacing_1 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$20$Type', 1715); +function EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_1, minSpacing_2){ + this.g_1 = g_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1714, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$21$Type); +_.run = function run_3(){ + $alterGroupedHitboxOrthogonal(this.g_1, this.minSpacing_2, -1); +} +; +_.minSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$21$Type', 1714); +function EdgeAwareScanlineConstraintCalculation$lambda$22$Type(){ +} + +defineClass(1716, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$22$Type); +_.apply_1 = function apply_111(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_131(other){ + return this === other; +} +; +_.test_0 = function test_60(input_0){ + return castTo(input_0, 57) , true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$22$Type', 1716); +function EdgeAwareScanlineConstraintCalculation$lambda$23$Type(){ +} + +defineClass(1717, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$23$Type); +_.accept = function accept_91(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$23$Type', 1717); +function EdgeAwareScanlineConstraintCalculation$lambda$3$Type(){ +} + +defineClass(1697, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$3$Type); +_.test_0 = function test_61(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$3$Type', 1697); +function EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1699, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$4$Type); +_.accept = function accept_92(arg0){ + $lambda$4_0(this.minSpacing_1, this.schedule_3, castTo(arg0, 57)); +} +; +_.minSpacing_1 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$4$Type', 1699); +function EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_1, minSpacing_2){ + this.n_1 = n_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1698, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$5$Type); +_.run = function run_4(){ + $alterHitbox(this.n_1, this.minSpacing_2, -1); +} +; +_.minSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$5$Type', 1698); +function EdgeAwareScanlineConstraintCalculation$lambda$6$Type(){ +} + +defineClass(1700, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$6$Type); +_.apply_1 = function apply_112(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_132(other){ + return this === other; +} +; +_.test_0 = function test_62(input_0){ + return castTo(input_0, 57) , true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$6$Type', 1700); +function EdgeAwareScanlineConstraintCalculation$lambda$7$Type(){ +} + +defineClass(1701, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$7$Type); +_.accept = function accept_93(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$7$Type', 1701); +function EdgeAwareScanlineConstraintCalculation$lambda$8$Type(){ +} + +defineClass(1702, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$8$Type); +_.test_0 = function test_63(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$8$Type', 1702); +function EdgeAwareScanlineConstraintCalculation$lambda$9$Type($$outer_0, schedule_1){ + this.$$outer_0 = $$outer_0; + this.schedule_1 = schedule_1; +} + +defineClass(1704, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$9$Type); +_.accept = function accept_94(arg0){ + $lambda$9(this.$$outer_0, this.schedule_1, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$9$Type', 1704); +function $clinit_HorizontalGraphCompactor(){ + $clinit_HorizontalGraphCompactor = emptyMethod; + NETWORK_SIMPLEX_COMPACTION = new NetworkSimplexCompaction; +} + +function $process_52(this$static, layeredGraph, progressMonitor){ + var odc, strategy, transformer; + strategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , COMPACTION_POST_COMPACTION_STRATEGY_0)), 275); + if (strategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return; + } + $begin(progressMonitor, 'Horizontal Compaction', 1); + this$static.lGraph = layeredGraph; + transformer = new LGraphToCGraphTransformer; + odc = new OneDimensionalCompactor((transformer.layeredGraph = layeredGraph , transformer.edgeRouting = castTo($getProperty(transformer.layeredGraph, EDGE_ROUTING), 218) , $init(transformer) , $transformNodes_0(transformer) , $transformEdges_0(transformer) , transformer.cGraph)); + $setSpacingsHandler(odc, this$static.specialSpacingsHandler); + switch (castTo($getProperty(layeredGraph, COMPACTION_POST_COMPACTION_CONSTRAINTS_0), 422).ordinal) { + case 1: + $setConstraintAlgorithm(odc, new EdgeAwareScanlineConstraintCalculation(this$static.lGraph)); + break; + default:$setConstraintAlgorithm(odc, ($clinit_OneDimensionalCompactor() , QUADRATIC_CONSTRAINTS)); + } + switch (strategy.ordinal) { + case 1: + $compact(odc); + break; + case 2: + $compact($changeDirection(odc, ($clinit_Direction_0() , RIGHT_6))); + break; + case 3: + $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$0$Type)); + break; + case 4: + $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$1$Type(transformer))); + break; + case 5: + $compact($setCompactionAlgorithm(odc, NETWORK_SIMPLEX_COMPACTION)); + } + $changeDirection(odc, ($clinit_Direction_0() , LEFT_6)); + odc.finished = true; + $applyLayout_3(transformer); + $done_0(progressMonitor); +} + +function HorizontalGraphCompactor(){ + $clinit_HorizontalGraphCompactor(); + this.specialSpacingsHandler = new HorizontalGraphCompactor$1(this); +} + +function getLNodeOrNull(cNode){ + $clinit_HorizontalGraphCompactor(); + if (instanceOf(cNode.origin_0, 10)) { + return castTo(cNode.origin_0, 10); + } + return null; +} + +function getVerticalSegmentOrNull(cNode){ + $clinit_HorizontalGraphCompactor(); + if (instanceOf(cNode.origin_0, 145)) { + return castTo(cNode.origin_0, 145); + } + return null; +} + +function isVerticalSegmentsOfSameEdge(cNode1, cNode2){ + $clinit_HorizontalGraphCompactor(); + var v1, v2; + v1 = getVerticalSegmentOrNull(cNode1); + v2 = getVerticalSegmentOrNull(cNode2); + return !!v1 && !!v2 && !disjoint(v1.representedLEdges, v2.representedLEdges); +} + +function lambda$1_13(transformer_0, node_1, dir_2){ + $clinit_HorizontalGraphCompactor(); + return $get_18(castTo($get_10(transformer_0.lockMap, node_1), 522), dir_2); +} + +defineClass(1521, 1, $intern_105, HorizontalGraphCompactor); +_.process = function process_49(layeredGraph, progressMonitor){ + $process_52(this, castTo(layeredGraph, 37), progressMonitor); +} +; +var NETWORK_SIMPLEX_COMPACTION; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor', 1521); +function HorizontalGraphCompactor$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1522, 1, {}, HorizontalGraphCompactor$1); +_.getHorizontalSpacing = function getHorizontalSpacing_2(cNode1, cNode2){ + var node1, node2, spacings; + if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { + return 0; + } + node1 = getLNodeOrNull(cNode1); + node2 = getLNodeOrNull(cNode2); + if (!!node1 && node1.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || !!node2 && node2.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return 0; + } + spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + return $getHorizontalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); +} +; +_.getVerticalSpacing = function getVerticalSpacing_2(cNode1, cNode2){ + var node1, node2, spacings; + if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { + return 1; + } + node1 = getLNodeOrNull(cNode1); + node2 = getLNodeOrNull(cNode2); + spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + return $getVerticalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/1', 1522); +function HorizontalGraphCompactor$lambda$0$Type(){ +} + +defineClass(1523, 1, {}, HorizontalGraphCompactor$lambda$0$Type); +_.isLocked = function isLocked(arg0, arg1){ + return $clinit_HorizontalGraphCompactor() , arg0.cGroup.outDegreeReal == 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$0$Type', 1523); +function HorizontalGraphCompactor$lambda$1$Type(transformer_0){ + this.transformer_0 = transformer_0; +} + +defineClass(1524, 1, {}, HorizontalGraphCompactor$lambda$1$Type); +_.isLocked = function isLocked_0(arg0, arg1){ + return lambda$1_13(this.transformer_0, arg0, arg1); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$1$Type', 1524); +function $clinit_LGraphToCGraphTransformer(){ + $clinit_LGraphToCGraphTransformer = emptyMethod; + NODE_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$0$Type; + VS_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$1$Type; +} + +function $adjustControlPointBetweenSegments(this$static, left, right, leftIdx, rightIdx, spline){ + var adjust, chunk, chunks, endX, idx1, idx2, k, n, newPos, startX, strip, width_0; + idx1 = leftIdx; + if (left.initialSegment && left.isStraight) { + n = castTo($get_10(this$static.nodesMap, left.sourceNode), 57); + startX = n.hitbox.x_0 + n.hitbox.width_0; + --idx1; + } + else { + startX = left.boundingBox.x_0 + left.boundingBox.width_0; + } + idx2 = rightIdx; + if (right.lastSegment && right.isStraight) { + n = castTo($get_10(this$static.nodesMap, right.targetNode), 57); + endX = n.hitbox.x_0; + ++idx2; + } + else { + endX = right.boundingBox.x_0; + } + strip = endX - startX; + chunks = $wnd.Math.max(2, idx2 - idx1); + chunk = strip / chunks; + newPos = startX + chunk; + for (k = idx1; k < idx2; ++k) { + adjust = castTo(spline.get_0(k), 128); + width_0 = adjust.boundingBox.width_0; + adjust.boundingBox.x_0 = newPos - width_0 / 2; + newPos += chunk; + } +} + +function $adjustSplineControlPoints(this$static, spline){ + var i, j, lastSeg, needle, nextSeg; + if (spline.isEmpty()) { + return; + } + lastSeg = castTo(spline.get_0(0), 128); + if (spline.size_1() == 1) { + $adjustControlPointBetweenSegments(this$static, lastSeg, lastSeg, 1, 0, spline); + return; + } + i = 1; + while (i < spline.size_1()) { + if (lastSeg.initialSegment || !lastSeg.isStraight) { + needle = $firstNonStraightSegment(spline, i); + if (needle) { + j = castTo(needle.first, 19).value_0; + nextSeg = castTo(needle.second, 128); + $adjustControlPointBetweenSegments(this$static, lastSeg, nextSeg, i, j, spline); + i = j + 1; + lastSeg = nextSeg; + } + } + } +} + +function $applyCommentPositions(this$static){ + var comment, e, e$iterator, offset, other; + for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.commentOffsets)).this$01); e$iterator.hasNext;) { + e = $next_4(e$iterator); + comment = castTo(e.getKey(), 10); + other = castTo(castTo(e.getValue(), 46).first, 10); + offset = castTo(castTo(e.getValue(), 46).second, 8); + $add_19($reset_5(comment.pos), $add_19($clone_0(other.pos), offset)); + } +} + +function $applyExternalPortPositions(this$static, topLeft, bottomRight){ + var cNode, cNode$iterator, lNode; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + if (lNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + switch (castTo($getProperty(lNode, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 4: + lNode.pos.x_0 = topLeft.x_0; + break; + case 2: + lNode.pos.x_0 = bottomRight.x_0 - (lNode.size_0.x_0 + lNode.margin.right); + break; + case 1: + lNode.pos.y_0 = topLeft.y_0; + break; + case 3: + lNode.pos.y_0 = bottomRight.y_0 - (lNode.size_0.y_0 + lNode.margin.bottom); + } + } + } + } +} + +function $applyLayout_3(this$static){ + var bottomRight, cNode, cNode$iterator, topLeft; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$10$Type), new LGraphToCGraphTransformer$lambda$11$Type); + $applyCommentPositions(this$static); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$12$Type), new LGraphToCGraphTransformer$lambda$13$Type); + if (this$static.edgeRouting == ($clinit_EdgeRouting() , SPLINES)) { + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.nodesMap), 1)), new LGraphToCGraphTransformer$lambda$17$Type), new LGraphToCGraphTransformer$lambda$18$Type), new LGraphToCGraphTransformer$lambda$19$Type(this$static)); + $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$20$Type), new LGraphToCGraphTransformer$lambda$21$Type), new LGraphToCGraphTransformer$lambda$22$Type), new LGraphToCGraphTransformer$lambda$23$Type), new LGraphToCGraphTransformer$lambda$24$Type(this$static)); + } + topLeft = new KVector_1($intern_59, $intern_59); + bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + $add_19($reset_5(this$static.layeredGraph.offset), $negate(new KVector_1(topLeft.x_0, topLeft.y_0))); + $add_19($reset_5(this$static.layeredGraph.size_0), $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft)); + $applyExternalPortPositions(this$static, topLeft, bottomRight); + $reset(this$static.nodesMap); + $reset(this$static.commentOffsets); + $reset(this$static.verticalSegmentsMap); + $reset(this$static.lockMap); + this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph = null; + this$static.layeredGraph = null; +} + +function $collectVerticalSegmentsOrthogonal(this$static){ + var bend1, bend2, bends, cNode, cTargetNode, edge, edge$iterator, edge$iterator0, first, lastSegment, layer, layer$iterator, node, node$iterator, verticalSegments, vs; + verticalSegments = new ArrayList; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + cNode = castTo($get_10(this$static.nodesMap, node), 57); + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 17); + bends = $listIterator_2(edge.bendPoints, 0); + first = true; + lastSegment = null; + if (bends.currentNode != bends.this$01.tail) { + bend1 = castTo($next_10(bends), 8); + bend2 = null; + if (edge.source.side == ($clinit_PortSide() , NORTH_3)) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); + vs.ignoreSpacing.down = true; + vs.aPort = edge.source; + verticalSegments.array[verticalSegments.array.length] = vs; + } + if (edge.source.side == SOUTH_2) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); + vs.ignoreSpacing.up = true; + vs.aPort = edge.source; + verticalSegments.array[verticalSegments.array.length] = vs; + } + while (bends.currentNode != bends.this$01.tail) { + bend2 = castTo($next_10(bends), 8); + if (!eq_0(bend1.y_0, bend2.y_0)) { + lastSegment = new VerticalSegment(bend1, bend2, null, edge); + verticalSegments.array[verticalSegments.array.length] = lastSegment; + if (first) { + first = false; + if (bend2.y_0 < cNode.hitbox.y_0) { + lastSegment.ignoreSpacing.down = true; + } + else if (bend2.y_0 > cNode.hitbox.y_0 + cNode.hitbox.height) { + lastSegment.ignoreSpacing.up = true; + } + else { + lastSegment.ignoreSpacing.up = true; + lastSegment.ignoreSpacing.down = true; + } + } + } + bends.currentNode != bends.this$01.tail && (bend1 = bend2); + } + if (lastSegment) { + cTargetNode = castTo($get_10(this$static.nodesMap, edge.target.owner), 57); + if (bend1.y_0 < cTargetNode.hitbox.y_0) { + lastSegment.ignoreSpacing.down = true; + } + else if (bend1.y_0 > cTargetNode.hitbox.y_0 + cTargetNode.hitbox.height) { + lastSegment.ignoreSpacing.up = true; + } + else { + lastSegment.ignoreSpacing.up = true; + lastSegment.ignoreSpacing.down = true; + } + } + } + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.bendPoints.size_0 != 0) { + bend1 = castTo($getLast(edge.bendPoints), 8); + if (edge.target.side == ($clinit_PortSide() , NORTH_3)) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); + vs.ignoreSpacing.down = true; + vs.aPort = edge.target; + verticalSegments.array[verticalSegments.array.length] = vs; + } + if (edge.target.side == SOUTH_2) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); + vs.ignoreSpacing.up = true; + vs.aPort = edge.target; + verticalSegments.array[verticalSegments.array.length] = vs; + } + } + } + } + } + return verticalSegments; +} + +function $firstNonStraightSegment(spline, index_0){ + var i, seg; + if (index_0 < 0 || index_0 >= spline.size_1()) { + return null; + } + for (i = index_0; i < spline.size_1(); ++i) { + seg = castTo(spline.get_0(i), 128); + if (i == spline.size_1() - 1 || !seg.isStraight) { + return new Pair(valueOf_4(i), seg); + } + } + return null; +} + +function $init(this$static){ + var hasEdges, index_0, l, l$iterator, n, n$iterator, supportedDirections; + hasEdges = false; + index_0 = 0; + for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + l.id_0 = index_0++; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + !hasEdges && !isEmpty_13($getConnectedEdges_0(n)) && (hasEdges = true); + } + } + supportedDirections = of_2(($clinit_Direction_0() , UNDEFINED_2), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [LEFT_6, RIGHT_6])); + if (!hasEdges) { + $add_5(supportedDirections, UP_1); + $add_5(supportedDirections, DOWN_1); + } + this$static.cGraph = new CGraph(supportedDirections); + $reset(this$static.nodesMap); + $reset(this$static.commentOffsets); + $reset(this$static.lockMap); + $reset(this$static.verticalSegmentsMap); +} + +function $lambda$19(this$static, sl_0){ + var cNode, deltaX, lNode; + lNode = sl_0.source.owner; + cNode = castTo($get_10(this$static.nodesMap, lNode), 57); + deltaX = cNode.hitbox.x_0 - cNode.hitboxPreCompaction.x_0; + $offset_1(sl_0.bendPoints, deltaX, 0); +} + +function $lambda$2_1(this$static, vs_0){ + var vsNode; + vsNode = castTo($get_10(this$static.verticalSegmentsMap, vs_0), 57); + $forEach_1(vs_0.constraints, new LGraphToCGraphTransformer$lambda$3$Type(this$static, vsNode)); +} + +function $lambda$3(this$static, vsNode_1, other_1){ + var otherNode; + otherNode = castTo($get_10(this$static.verticalSegmentsMap, other_1), 57); + $add_3(this$static.cGraph.predefinedHorizontalConstraints, new Pair(vsNode_1, otherNode)); +} + +function $lambda$9_0(this$static, cNode_1, other_1){ + return $put_6(this$static.verticalSegmentsMap, other_1, cNode_1); +} + +function $mergeVerticalSegments(this$static, verticalSegments){ + var next, survivor, vsIt, newX, newY, maxX, newW, maxY, newH; + if (verticalSegments.array.length == 0) { + return; + } + $clinit_Collections(); + sort_4(verticalSegments.array, verticalSegments.array.length, null); + vsIt = new ArrayList$1(verticalSegments); + survivor = castTo($next_7(vsIt), 145); + while (vsIt.i < vsIt.this$01.array.length) { + next = castTo($next_7(vsIt), 145); + if (eq_0(survivor.hitbox.x_0, next.hitbox.x_0) && !(lt_0($getBottomLeft(survivor.hitbox).y_0, next.hitbox.y_0) || lt_0($getBottomLeft(next.hitbox).y_0, survivor.hitbox.y_0))) { + survivor = ($addAll_2(survivor.representedLEdges, next.representedLEdges) , $addAll_2(survivor.affectedBends, next.affectedBends) , $addAll_2(survivor.affectedBoundingBoxes, next.affectedBoundingBoxes) , $addAll(survivor.junctionPoints, next.junctionPoints) , $addAll_2(survivor.constraints, next.constraints) , $addAll_2(survivor.potentialGroupParents, next.potentialGroupParents) , newX = $wnd.Math.min(survivor.hitbox.x_0, next.hitbox.x_0) , newY = $wnd.Math.min(survivor.hitbox.y_0, next.hitbox.y_0) , maxX = $wnd.Math.max(survivor.hitbox.x_0 + survivor.hitbox.width_0, next.hitbox.x_0 + next.hitbox.width_0) , newW = maxX - newX , maxY = $wnd.Math.max(survivor.hitbox.y_0 + survivor.hitbox.height, next.hitbox.y_0 + next.hitbox.height) , newH = maxY - newY , $setRect(survivor.hitbox, newX, newY, newW, newH) , $applyOr(survivor.ignoreSpacing, next.ignoreSpacing) , !survivor.aPort && (survivor.aPort = next.aPort) , $addAll_2(survivor.joined, next.joined) , $add_3(survivor.joined, next) , survivor); + } + else { + $verticalSegmentToCNode(this$static, survivor); + survivor = next; + } + } + $verticalSegmentToCNode(this$static, survivor); +} + +function $transformEdges_0(this$static){ + var style, verticalSegments, verticalSegments_0; + style = castTo($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + switch (style.ordinal) { + case 2: + verticalSegments = $collectVerticalSegmentsOrthogonal(this$static); + break; + case 3: + verticalSegments = (verticalSegments_0 = new ArrayList , $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$4$Type), new LGraphToCGraphTransformer$lambda$5$Type), new LGraphToCGraphTransformer$lambda$6$Type), new LGraphToCGraphTransformer$0methodref$nonNull$Type), new LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0)) , verticalSegments_0); + break; + default:throw toJs(new IllegalStateException_0('Compaction not supported for ' + style + ' edges.')); + } + $mergeVerticalSegments(this$static, verticalSegments); + $forEach_0(new AbstractMap$1(this$static.verticalSegmentsMap), new LGraphToCGraphTransformer$lambda$2$Type(this$static)); +} + +function $transformNodes_0(this$static){ + var cNode, difference, e, hitbox, layer, layer$iterator, node, node$iterator, nodeLock, other, p; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + if (!isEmpty_13($getConnectedEdges_0(node))) { + e = castTo(get_21($getConnectedEdges_0(node)), 17); + other = e.source.owner; + other == node && (other = e.target.owner); + p = new Pair(other, $sub_0($clone_0(node.pos), other.pos)); + $put_6(this$static.commentOffsets, node, p); + continue; + } + } + hitbox = new ElkRectangle_0(node.pos.x_0 - node.margin.left, node.pos.y_0 - node.margin.top_0, node.size_0.x_0 + node.margin.left + node.margin.right, node.size_0.y_0 + node.margin.top_0 + node.margin.bottom); + cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, node), hitbox), NODE_TO_STRING_DELEGATE), this$static.cGraph); + $create($master($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [cNode])), cNode), this$static.cGraph); + nodeLock = new Quadruplet; + $put_6(this$static.lockMap, cNode, nodeLock); + difference = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))) - size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + difference < 0?$set_3(nodeLock, true, ($clinit_Direction_0() , LEFT_6)):difference > 0 && $set_3(nodeLock, true, ($clinit_Direction_0() , RIGHT_6)); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && $set_4(nodeLock); + $put_6(this$static.nodesMap, node, cNode); + } + } +} + +function $verticalSegmentToCNode(this$static, verticalSegment){ + var cNode, difference, e, e$iterator, inc, out, vsLock; + cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, verticalSegment), new ElkRectangle_1(verticalSegment.hitbox)), VS_TO_STRING_DELEGATE), this$static.cGraph); + verticalSegment.potentialGroupParents.array.length == 0 || $addCNode(castTo($get_11(verticalSegment.potentialGroupParents, 0), 57).cGroup, cNode); + vsLock = new Quadruplet; + $put_6(this$static.lockMap, cNode, vsLock); + inc = new HashSet; + out = new HashSet; + for (e$iterator = new ArrayList$1(verticalSegment.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $add_6(inc, e.source); + $add_6(out, e.target); + } + difference = inc.map_0.size_1() - out.map_0.size_1(); + if (difference < 0) { + $set_3(vsLock, true, ($clinit_Direction_0() , LEFT_6)); + $set_3(vsLock, false, RIGHT_6); + } + else if (difference > 0) { + $set_3(vsLock, false, ($clinit_Direction_0() , LEFT_6)); + $set_3(vsLock, true, RIGHT_6); + } + $forEach_1(verticalSegment.joined, new LGraphToCGraphTransformer$lambda$9$Type(this$static, cNode)); + $put_6(this$static.verticalSegmentsMap, verticalSegment, cNode); +} + +function LGraphToCGraphTransformer(){ + $clinit_LGraphToCGraphTransformer(); + this.commentOffsets = new HashMap; + this.nodesMap = new HashMap; + this.verticalSegmentsMap = new HashMap; + this.lockMap = new HashMap; +} + +function lambda$11(cNode_0){ + $clinit_LGraphToCGraphTransformer(); + var lNode; + lNode = castTo(cNode_0.origin_0, 10); + lNode.pos.x_0 = cNode_0.hitbox.x_0 + lNode.margin.left; +} + +function lambda$13(cNode_0){ + $clinit_LGraphToCGraphTransformer(); + var deltaX, vs; + deltaX = cNode_0.hitbox.x_0 - cNode_0.hitboxPreCompaction.x_0; + vs = castTo(cNode_0.origin_0, 145); + $forEach_1(vs.affectedBends, new LGraphToCGraphTransformer$lambda$14$Type(deltaX)); + $forEach_1(vs.affectedBoundingBoxes, new LGraphToCGraphTransformer$lambda$15$Type(deltaX)); + $forEach_0(vs.junctionPoints, new LGraphToCGraphTransformer$lambda$16$Type(deltaX)); +} + +function lambda$14(deltaX_0, b_1){ + $clinit_LGraphToCGraphTransformer(); + return b_1.x_0 += deltaX_0; +} + +function lambda$15(deltaX_0, bb_1){ + $clinit_LGraphToCGraphTransformer(); + return bb_1.x_0 += deltaX_0; +} + +function lambda$16(deltaX_0, jp_1){ + $clinit_LGraphToCGraphTransformer(); + return jp_1.x_0 += deltaX_0; +} + +function lambda$23(chain_0){ + $clinit_LGraphToCGraphTransformer(); + return !!chain_0 && !chain_0.isEmpty(); +} + +function lambda$8_0(verticalSegments_0, spline_1){ + $clinit_LGraphToCGraphTransformer(); + var lastVs, leftTop, rightBottom, s, s$iterator, vs; + lastVs = null; + for (s$iterator = spline_1.iterator_0(); s$iterator.hasNext_0();) { + s = castTo(s$iterator.next_1(), 128); + if (s.isStraight) { + continue; + } + leftTop = $getTopLeft(s.boundingBox); + rightBottom = $getBottomRight(s.boundingBox); + vs = new VerticalSegment(leftTop, rightBottom, null, castTo(s.edges.map_0.keySet_0().iterator_0().next_1(), 17)); + $add_3(vs.affectedBoundingBoxes, s.boundingBox); + verticalSegments_0.array[verticalSegments_0.array.length] = vs; + !!lastVs && $add_3(lastVs.constraints, vs); + lastVs = vs; + } +} + +defineClass(1664, 1, {}, LGraphToCGraphTransformer); +var NODE_TO_STRING_DELEGATE, VS_TO_STRING_DELEGATE; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer', 1664); +function LGraphToCGraphTransformer$0methodref$nonNull$Type(){ +} + +defineClass(1672, 1, $intern_39, LGraphToCGraphTransformer$0methodref$nonNull$Type); +_.test_0 = function test_64(arg0){ + return arg0 != null; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$0methodref$nonNull$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/0methodref$nonNull$Type', 1672); +function LGraphToCGraphTransformer$lambda$0$Type(){ +} + +defineClass(1665, 1, {}, LGraphToCGraphTransformer$lambda$0$Type); +_.apply_0 = function apply_113(arg0){ + return $clinit_LGraphToCGraphTransformer() , toString_40($getProperty(castTo(castTo(arg0, 57).origin_0, 10), ($clinit_InternalProperties_1() , ORIGIN_0))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$0$Type', 1665); +function LGraphToCGraphTransformer$lambda$1$Type(){ +} + +defineClass(1666, 1, {}, LGraphToCGraphTransformer$lambda$1$Type); +_.apply_0 = function apply_114(arg0){ + return $clinit_LGraphToCGraphTransformer() , $toString_14(castTo(castTo(arg0, 57).origin_0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$1$Type', 1666); +function LGraphToCGraphTransformer$lambda$10$Type(){ +} + +defineClass(1675, 1, $intern_39, LGraphToCGraphTransformer$lambda$10$Type); +_.test_0 = function test_65(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$10$Type', 1675); +function LGraphToCGraphTransformer$lambda$11$Type(){ +} + +defineClass(1676, 1, $intern_19, LGraphToCGraphTransformer$lambda$11$Type); +_.accept = function accept_95(arg0){ + lambda$11(castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$11$Type', 1676); +function LGraphToCGraphTransformer$lambda$12$Type(){ +} + +defineClass(1677, 1, $intern_39, LGraphToCGraphTransformer$lambda$12$Type); +_.test_0 = function test_66(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$12$Type', 1677); +function LGraphToCGraphTransformer$lambda$13$Type(){ +} + +defineClass(1681, 1, $intern_19, LGraphToCGraphTransformer$lambda$13$Type); +_.accept = function accept_96(arg0){ + lambda$13(castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$13$Type', 1681); +function LGraphToCGraphTransformer$lambda$14$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1678, 1, $intern_19, LGraphToCGraphTransformer$lambda$14$Type); +_.accept = function accept_97(arg0){ + lambda$14(this.deltaX_0, castTo(arg0, 8)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$14$Type', 1678); +function LGraphToCGraphTransformer$lambda$15$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1679, 1, $intern_19, LGraphToCGraphTransformer$lambda$15$Type); +_.accept = function accept_98(arg0){ + lambda$15(this.deltaX_0, castTo(arg0, 110)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$15$Type', 1679); +function LGraphToCGraphTransformer$lambda$16$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1680, 1, $intern_19, LGraphToCGraphTransformer$lambda$16$Type); +_.accept = function accept_99(arg0){ + lambda$16(this.deltaX_0, castTo(arg0, 8)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$16$Type', 1680); +function LGraphToCGraphTransformer$lambda$17$Type(){ +} + +defineClass(1682, 1, {}, LGraphToCGraphTransformer$lambda$17$Type); +_.apply_0 = function apply_115(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$17$Type', 1682); +function LGraphToCGraphTransformer$lambda$18$Type(){ +} + +defineClass(1683, 1, $intern_39, LGraphToCGraphTransformer$lambda$18$Type); +_.test_0 = function test_67(arg0){ + return $clinit_LGraphToCGraphTransformer() , $isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$18$Type', 1683); +function LGraphToCGraphTransformer$lambda$19$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1684, 1, $intern_19, LGraphToCGraphTransformer$lambda$19$Type); +_.accept = function accept_100(arg0){ + $lambda$19(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$19$Type', 1684); +function LGraphToCGraphTransformer$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1668, 1, $intern_19, LGraphToCGraphTransformer$lambda$2$Type); +_.accept = function accept_101(arg0){ + $lambda$2_1(this.$$outer_0, castTo(arg0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$2$Type', 1668); +function LGraphToCGraphTransformer$lambda$20$Type(){ +} + +defineClass(1685, 1, {}, LGraphToCGraphTransformer$lambda$20$Type); +_.apply_0 = function apply_116(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$20$Type', 1685); +function LGraphToCGraphTransformer$lambda$21$Type(){ +} + +defineClass(1686, 1, {}, LGraphToCGraphTransformer$lambda$21$Type); +_.apply_0 = function apply_117(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$21$Type', 1686); +function LGraphToCGraphTransformer$lambda$22$Type(){ +} + +defineClass(1687, 1, {}, LGraphToCGraphTransformer$lambda$22$Type); +_.apply_0 = function apply_118(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$22$Type', 1687); +function LGraphToCGraphTransformer$lambda$23$Type(){ +} + +defineClass(1688, 1, $intern_39, LGraphToCGraphTransformer$lambda$23$Type); +_.test_0 = function test_68(arg0){ + return lambda$23(castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$23$Type', 1688); +function LGraphToCGraphTransformer$lambda$24$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1689, 1, $intern_19, LGraphToCGraphTransformer$lambda$24$Type); +_.accept = function accept_102(arg0){ + $adjustSplineControlPoints(this.$$outer_0, castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$24$Type', 1689); +function LGraphToCGraphTransformer$lambda$3$Type($$outer_0, vsNode_1){ + this.$$outer_0 = $$outer_0; + this.vsNode_1 = vsNode_1; +} + +defineClass(1667, 1, $intern_19, LGraphToCGraphTransformer$lambda$3$Type); +_.accept = function accept_103(arg0){ + $lambda$3(this.$$outer_0, this.vsNode_1, castTo(arg0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$3$Type', 1667); +function LGraphToCGraphTransformer$lambda$4$Type(){ +} + +defineClass(1669, 1, {}, LGraphToCGraphTransformer$lambda$4$Type); +_.apply_0 = function apply_119(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$4$Type', 1669); +function LGraphToCGraphTransformer$lambda$5$Type(){ +} + +defineClass(1670, 1, {}, LGraphToCGraphTransformer$lambda$5$Type); +_.apply_0 = function apply_120(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$5$Type', 1670); +function LGraphToCGraphTransformer$lambda$6$Type(){ +} + +defineClass(1671, 1, {}, LGraphToCGraphTransformer$lambda$6$Type); +_.apply_0 = function apply_121(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$6$Type', 1671); +function LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0){ + this.verticalSegments_0 = verticalSegments_0; +} + +defineClass(1673, 1, $intern_19, LGraphToCGraphTransformer$lambda$8$Type); +_.accept = function accept_104(arg0){ + lambda$8_0(this.verticalSegments_0, castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$8$Type', 1673); +function LGraphToCGraphTransformer$lambda$9$Type($$outer_0, cNode_1){ + this.$$outer_0 = $$outer_0; + this.cNode_1 = cNode_1; +} + +defineClass(1674, 1, $intern_19, LGraphToCGraphTransformer$lambda$9$Type); +_.accept = function accept_105(arg0){ + $lambda$9_0(this.$$outer_0, this.cNode_1, castTo(arg0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$9$Type', 1674); +function $addArtificialSourceNode(this$static){ + var dummySource, lastArg, n, n$iterator, sources, src_0, src$iterator; + sources = new LinkedList; + for (n$iterator = new ArrayList$1(this$static.networkSimplexGraph.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 121); + n.incomingEdges.list.array.length == 0 && ($addNode_0(sources, n, sources.tail.prev, sources.tail) , true); + } + if (sources.size_0 > 1) { + dummySource = $create_2((lastArg = new NNode$NNodeBuilder , ++this$static.index_0 , lastArg), this$static.networkSimplexGraph); + for (src$iterator = $listIterator_2(sources, 0); src$iterator.currentNode != src$iterator.this$01.tail;) { + src_0 = castTo($next_10(src$iterator), 121); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 0), dummySource), src_0)); + } + } +} + +function $addEdgeConstraints(this$static){ + var cNode, cNode$iterator, cNode$iterator0, e, e$iterator, lEdge, lEdge$iterator, lEdgeMap, lNode, lNodeMap, n, n$iterator, src_0, srcPort, target, tgt, tgtPort, vs; + lNodeMap = new HashMap; + lEdgeMap = new HashMultimap; + for (cNode$iterator0 = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + $put_9(lNodeMap.hashCodeMap, lNode, cNode); + } + else { + vs = getVerticalSegmentOrNull(cNode); + if (vs) { + for (e$iterator = new ArrayList$1(vs.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $put(lEdgeMap, e, cNode); + } + } + } + } + for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + if ($isSelfLoop(lEdge)) { + continue; + } + srcPort = lEdge.source; + tgtPort = lEdge.target; + if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(lEdge.source.side) && SIDES_NORTH_SOUTH.contains(lEdge.target.side)) { + continue; + } + target = castTo($get_10(lNodeMap, lEdge.target.owner), 57); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 100), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[target.cGroup.id_0])); + if (srcPort.side == WEST_2 && $apply_15(($clinit_LPort() , OUTPUT_PREDICATE , srcPort))) { + for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if (n.hitbox.x_0 < cNode.hitbox.x_0) { + src_0 = this$static.nNodes[n.cGroup.id_0]; + tgt = this$static.nNodes[cNode.cGroup.id_0]; + if (src_0 == tgt) { + continue; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); + } + } + } + if (tgtPort.side == EAST_2 && $apply_14(($clinit_LPort() , INPUT_PREDICATE , tgtPort))) { + for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if (n.hitbox.x_0 > cNode.hitbox.x_0) { + src_0 = this$static.nNodes[cNode.cGroup.id_0]; + tgt = this$static.nNodes[n.cGroup.id_0]; + if (src_0 == tgt) { + continue; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); + } + } + } + } + } + } +} + +function $addSeparationConstraints(this$static){ + var adjust, alterOffset, cNode, cNode$iterator, delta, helper, incNode, incNode$iterator, offsetDelta, port, spacing, weight; + for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + for (incNode$iterator = cNode.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 57); + if (cNode.cGroup == incNode.cGroup) { + continue; + } + $isHorizontal(this$static.compactor.direction)?(spacing = this$static.compactor.spacingsHandler.getHorizontalSpacing(cNode, incNode)):(spacing = this$static.compactor.spacingsHandler.getVerticalSpacing(cNode, incNode)); + delta = cNode.cGroupOffset.x_0 + cNode.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0; + delta = $wnd.Math.ceil(delta); + delta = $wnd.Math.max(0, delta); + if (isVerticalSegmentsOfSameEdge(cNode, incNode)) { + helper = $create_2(new NNode$NNodeBuilder, this$static.networkSimplexGraph); + offsetDelta = round_int($wnd.Math.ceil(incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0)); + adjust = offsetDelta - (incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0); + port = getVerticalSegmentOrNull(cNode).aPort; + alterOffset = cNode; + if (!port) { + port = getVerticalSegmentOrNull(incNode).aPort; + adjust = -adjust; + alterOffset = incNode; + } + if (port) { + alterOffset.cGroupOffset.x_0 -= adjust; + port.pos.x_0 -= adjust; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, offsetDelta)), 1), helper), this$static.nNodes[cNode.cGroup.id_0])); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, -offsetDelta)), 1), helper), this$static.nNodes[incNode.cGroup.id_0])); + } + else { + weight = 1; + (instanceOf(cNode.origin_0, 145) && instanceOf(incNode.origin_0, 10) || instanceOf(incNode.origin_0, 145) && instanceOf(cNode.origin_0, 10)) && (weight = 2); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int(delta)), weight), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[incNode.cGroup.id_0])); + } + } + } +} + +function NetworkSimplexCompaction(){ +} + +defineClass(1663, 1, {}, NetworkSimplexCompaction); +_.compact = function compact_1(theCompactor){ + var cGroup, cGroup$iterator, cNode, cNode$iterator, nNode; + this.compactor = theCompactor; + this.networkSimplexGraph = new NGraph; + this.nNodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit, $intern_2, 121, this.compactor.cGraph.cGroups.array.length, 0, 1); + this.index_0 = 0; + for (cGroup$iterator = new ArrayList$1(this.compactor.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { + cGroup = castTo($next_7(cGroup$iterator), 307); + cGroup.id_0 = this.index_0; + nNode = $create_2($origin_0(new NNode$NNodeBuilder, cGroup), this.networkSimplexGraph); + this.nNodes[this.index_0] = nNode; + ++this.index_0; + } + $addSeparationConstraints(this); + $addEdgeConstraints(this); + $addArtificialSourceNode(this); + $execute_0(forGraph(this.networkSimplexGraph), new BasicProgressMonitor); + for (cNode$iterator = new ArrayList$1(this.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.hitbox.x_0 = this.nNodes[cNode.cGroup.id_0].layer + cNode.cGroupOffset.x_0; + } +} +; +_.index_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_NetworkSimplexCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'NetworkSimplexCompaction', 1663); +function $compareTo_12(this$static, o){ + var d; + d = fuzzyCompare(this$static.hitbox.x_0, o.hitbox.x_0); + if (d == 0) { + return compare_4(this$static.hitbox.y_0, o.hitbox.y_0); + } + return d; +} + +function $toString_14(this$static){ + var sb; + sb = new StringBuilder; + sb.string += 'VerticalSegment '; + $append_10(sb, this$static.hitbox); + sb.string += ' '; + $append_11(sb, $join(new Joiner, new ArrayList$1(this$static.representedLEdges))); + return sb.string; +} + +function VerticalSegment(bend1, bend2, cNode, lEdge){ + var inJPs, jp, jp$iterator; + this.potentialGroupParents = new ArrayList; + this.representedLEdges = new ArrayList; + this.affectedBends = new ArrayList; + this.affectedBoundingBoxes = new ArrayList; + this.hitbox = new ElkRectangle; + this.junctionPoints = new KVectorChain; + this.ignoreSpacing = new Quadruplet; + this.constraints = new ArrayList; + this.joined = new ArrayList; + $add_3(this.affectedBends, bend1); + $add_3(this.affectedBends, bend2); + this.hitbox.x_0 = $wnd.Math.min(bend1.x_0, bend2.x_0); + this.hitbox.y_0 = $wnd.Math.min(bend1.y_0, bend2.y_0); + this.hitbox.width_0 = $wnd.Math.abs(bend1.x_0 - bend2.x_0); + this.hitbox.height = $wnd.Math.abs(bend1.y_0 - bend2.y_0); + inJPs = castTo($getProperty(lEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (inJPs) { + for (jp$iterator = $listIterator_2(inJPs, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + eq_0(jp.x_0, bend1.x_0) && $add_7(this.junctionPoints, jp); + } + } + !!cNode && $add_3(this.potentialGroupParents, cNode); + $add_3(this.representedLEdges, lEdge); +} + +defineClass(145, 1, {35:1, 145:1}, VerticalSegment); +_.compareTo_0 = function compareTo_13(o){ + return $compareTo_12(this, castTo(o, 145)); +} +; +_.toString_0 = function toString_94(){ + return $toString_14(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_VerticalSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'VerticalSegment', 145); +function $addEasternCrossings(this$static, upperNode, lowerNode){ + this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , EAST_2), this$static.easternAdjacencies); + this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, EAST_2, this$static.easternAdjacencies); + if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { + return; + } + $countCrossingsByMergingAdjacencyLists(this$static); +} + +function $addWesternCrossings(this$static, upperNode, lowerNode){ + this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , WEST_2), this$static.westernAdjacencies); + this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, WEST_2, this$static.westernAdjacencies); + if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { + return; + } + $countCrossingsByMergingAdjacencyLists(this$static); +} + +function $countBothSideCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addWesternCrossings(this$static, upperNode, lowerNode); + $addEasternCrossings(this$static, upperNode, lowerNode); +} + +function $countCrossingsByMergingAdjacencyLists(this$static){ + while (this$static.upperAdjacencies.currentSize != 0 && this$static.lowerAdjacencies.currentSize != 0) { + if ($currentAdjacency(this$static.upperAdjacencies).position > $currentAdjacency(this$static.lowerAdjacencies).position) { + this$static.upperLowerCrossings += this$static.upperAdjacencies.currentSize; + $removeFirst_1(this$static.lowerAdjacencies); + } + else if ($currentAdjacency(this$static.lowerAdjacencies).position > $currentAdjacency(this$static.upperAdjacencies).position) { + this$static.lowerUpperCrossings += this$static.lowerAdjacencies.currentSize; + $removeFirst_1(this$static.upperAdjacencies); + } + else { + this$static.upperLowerCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.upperAdjacencies); + this$static.lowerUpperCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.lowerAdjacencies); + $removeFirst_1(this$static.upperAdjacencies); + $removeFirst_1(this$static.lowerAdjacencies); + } + } +} + +function $countEasternEdgeCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addEasternCrossings(this$static, upperNode, lowerNode); +} + +function $countWesternEdgeCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addWesternCrossings(this$static, upperNode, lowerNode); +} + +function $getAdjacencyFor(this$static, node, side, adjacencies){ + var aL, n, n$array, n$index, n$max; + if (adjacencies.hashCodeMap.size_0 + adjacencies.stringMap.size_0 == 0) { + for (n$array = this$static.currentNodeOrder[this$static.freeLayerIndex] , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { + n = n$array[n$index]; + $put_6(adjacencies, n, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$static, n, side)); + } + } + aL = castTo(getEntryValueOrNull($getEntry_0(adjacencies.hashCodeMap, node)), 663); + aL.currentIndex = 0; + aL.currentSize = aL.size_0; + aL.currentSize == 0 || $reset_3(castTo($get_11(aL.adjacencyList, aL.currentIndex), 287)); + return aL; +} + +function $setPortPositionsForLayer(this$static, layerIndex, portSide){ + var node, node$array, node$index, node$max, port, port$iterator, portId, ports; + portId = 0; + for (node$array = this$static.currentNodeOrder[layerIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + ports = inNorthSouthEastWestOrder(node, portSide); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $put_6(this$static.portPositions, port, valueOf_4(portId++)); + } + } +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter(currentNodeOrder, freeLayerIndex){ + this.portPositions = new HashMap; + this.easternAdjacencies = new HashMap; + this.westernAdjacencies = new HashMap; + this.currentNodeOrder = currentNodeOrder; + this.freeLayerIndex = freeLayerIndex; + this.freeLayerIndex > 0 && $setPortPositionsForLayer(this, this.freeLayerIndex - 1, ($clinit_PortSide() , EAST_2)); + this.freeLayerIndex < this.currentNodeOrder.length - 1 && $setPortPositionsForLayer(this, this.freeLayerIndex + 1, ($clinit_PortSide() , WEST_2)); +} + +defineClass(827, 1, {}, BetweenLayerEdgeTwoNodeCrossingsCounter); +_.freeLayerIndex = 0; +_.lowerUpperCrossings = 0; +_.upperLowerCrossings = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter', 827); +function $addAdjacencyOf(this$static, edge){ + var adjacentPort, adjacentPortPosition, lastIndex; + adjacentPort = $adjacentPortOf(edge, this$static.side); + adjacentPortPosition = castTo($get_10(this$static.this$01.portPositions, adjacentPort), 19).value_0; + lastIndex = this$static.adjacencyList.array.length - 1; + if (this$static.adjacencyList.array.length != 0 && castTo($get_11(this$static.adjacencyList, lastIndex), 287).position == adjacentPortPosition) { + ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).cardinality; + ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).currentCardinality; + } + else { + $add_3(this$static.adjacencyList, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition)); + } +} + +function $adjacentPortOf(e, s){ + return s == ($clinit_PortSide() , WEST_2)?e.source:e.target; +} + +function $countAdjacenciesBelowNodeOfFirstPort(this$static){ + return this$static.currentSize - castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287).currentCardinality; +} + +function $currentAdjacency(this$static){ + return castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); +} + +function $iterateTroughEdgesCollectingAdjacencies(this$static){ + var edge, edge$iterator, edges, port, port$iterator, ports; + ports = inNorthSouthEastWestOrder(this$static.node, this$static.side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + edges = this$static.side == ($clinit_PortSide() , WEST_2)?port.incomingEdges:port.outgoingEdges; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer != edge.target.owner.layer) { + $addAdjacencyOf(this$static, edge); + ++this$static.size_0; + ++this$static.currentSize; + } + } + } +} + +function $removeFirst_1(this$static){ + var currentEntry; + if (this$static.currentSize == 0) { + return; + } + currentEntry = castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); + currentEntry.currentCardinality == 1?(++this$static.currentIndex , this$static.currentIndex < this$static.adjacencyList.array.length && $reset_3(castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287))):--currentEntry.currentCardinality; + --this$static.currentSize; +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$0, node, side){ + this.this$01 = this$0; + this.node = node; + this.side = side; + this.adjacencyList = new ArrayList; + $iterateTroughEdgesCollectingAdjacencies(this); + $clinit_Collections(); + $sort(this.adjacencyList, null); +} + +defineClass(663, 1, {663:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList); +_.toString_0 = function toString_95(){ + return 'AdjacencyList [node=' + this.node + ', adjacencies= ' + this.adjacencyList + ']'; +} +; +_.currentIndex = 0; +_.currentSize = 0; +_.size_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList', 663); +function $compareTo_13(this$static, o){ + return this$static.position < o.position?-1:this$static.position == o.position?0:1; +} + +function $reset_3(this$static){ + this$static.currentCardinality = this$static.cardinality; +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition){ + this.position = adjacentPortPosition; + this.cardinality = 1; + this.currentCardinality = 1; +} + +defineClass(287, 1, {35:1, 287:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency); +_.compareTo_0 = function compareTo_14(o){ + return $compareTo_13(this, castTo(o, 287)); +} +; +_.toString_0 = function toString_96(){ + return 'Adjacency [position=' + this.position + ', cardinality=' + this.cardinality + ', currentCardinality=' + this.currentCardinality + ']'; +} +; +_.cardinality = 0; +_.currentCardinality = 0; +_.position = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency', 287); +function $fillCrossingMatrix(this$static, upperNode, lowerNode){ + if (this$static.oneSided) { + switch (this$static.direction) { + case 1: + $countEasternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + break; + case 0: + $countWesternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + } + } + else { + $countBothSideCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + } + this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0] = this$static.inBetweenLayerCrossingCounter.upperLowerCrossings; + this$static.crossingMatrix[lowerNode.id_0][upperNode.id_0] = this$static.inBetweenLayerCrossingCounter.lowerUpperCrossings; +} + +function $getCrossingMatrixEntry(this$static, upperNode, lowerNode){ + if (!this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0]) { + $fillCrossingMatrix(this$static, upperNode, lowerNode); + this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0] = true; + this$static.isCrossingMatrixFilled[lowerNode.id_0][upperNode.id_0] = true; + } + return this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0]; +} + +function CrossingMatrixFiller(greedySwitchType, graph, freeLayerIndex, direction){ + var freeLayer; + this.direction = direction; + this.oneSided = greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); + freeLayer = graph[freeLayerIndex]; + this.isCrossingMatrixFilled = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [freeLayer.length, freeLayer.length], 2); + this.crossingMatrix = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [freeLayer.length, freeLayer.length], 2); + this.inBetweenLayerCrossingCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(graph, freeLayerIndex); +} + +defineClass(1929, 1, {}, CrossingMatrixFiller); +_.direction = 0; +_.oneSided = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_CrossingMatrixFiller_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'CrossingMatrixFiller', 1929); +function init_0(initializables, order){ + var e, edge, edge$iterator, i, i$iterator, i$iterator0, i$iterator1, i$iterator2, i$iterator3, l, n, p, port, ports; + for (l = 0; l < order.length; l++) { + for (i$iterator0 = initializables.iterator_0(); i$iterator0.hasNext_0();) { + i = castTo(i$iterator0.next_1(), 225); + i.initAtLayerLevel(l, order); + } + for (n = 0; n < order[l].length; n++) { + for (i$iterator1 = initializables.iterator_0(); i$iterator1.hasNext_0();) { + i = castTo(i$iterator1.next_1(), 225); + i.initAtNodeLevel(l, n, order); + } + ports = order[l][n].ports; + for (p = 0; p < ports.array.length; p++) { + for (i$iterator2 = initializables.iterator_0(); i$iterator2.hasNext_0();) { + i = castTo(i$iterator2.next_1(), 225); + i.initAtPortLevel(l, n, p, order); + } + port = (checkCriticalElementIndex(p, ports.array.length) , castTo(ports.array[p], 11)); + e = 0; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + for (i$iterator3 = initializables.iterator_0(); i$iterator3.hasNext_0();) { + i = castTo(i$iterator3.next_1(), 225); + i.initAtEdgeLevel(l, n, p, e++, edge, order); + } + } + } + } + } + for (i$iterator = initializables.iterator_0(); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 225); + i.initAfterTraversal(); + } +} + +var Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit = createForInterface('org.eclipse.elk.alg.layered.p3order.counting', 'IInitializable'); +function $continueSwitchingUntilNoImprovementInLayer(this$static, freeLayerIndex){ + var continueSwitching, improved; + improved = false; + do { + continueSwitching = $sweepDownwardInLayer(this$static, freeLayerIndex); + improved = improved | continueSwitching; + } + while (continueSwitching); + return improved; +} + +function $setUp(this$static, order, freeLayerIndex, forwardSweep){ + var crossingMatrixFiller, side; + this$static.currentNodeOrder = order; + side = forwardSweep?0:1; + this$static.switchDecider = (crossingMatrixFiller = new CrossingMatrixFiller(this$static.greedySwitchType, this$static.currentNodeOrder, freeLayerIndex, side) , new SwitchDecider(freeLayerIndex, this$static.currentNodeOrder, crossingMatrixFiller, this$static.portPositions, this$static.graphData, this$static.greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0))); +} + +function $startIndex(isForwardSweep, length_0){ + return isForwardSweep?0:length_0 - 1; +} + +function $sweepDownwardInLayer(this$static, layerIndex){ + var continueSwitching, lengthOfFreeLayer, lowerNodeIndex, upperNodeIndex; + continueSwitching = false; + lengthOfFreeLayer = this$static.currentNodeOrder[layerIndex].length; + for (upperNodeIndex = 0; upperNodeIndex < lengthOfFreeLayer - 1; upperNodeIndex++) { + lowerNodeIndex = upperNodeIndex + 1; + continueSwitching = continueSwitching | $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex); + } + return continueSwitching; +} + +function $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex){ + var continueSwitching, layer, temp; + continueSwitching = false; + if ($doesSwitchReduceCrossings(this$static.switchDecider, upperNodeIndex, lowerNodeIndex)) { + $notifyOfSwitch(this$static.switchDecider, this$static.currentNodeOrder[layerIndex][upperNodeIndex], this$static.currentNodeOrder[layerIndex][lowerNodeIndex]); + layer = this$static.currentNodeOrder[layerIndex]; + temp = layer[lowerNodeIndex]; + layer[lowerNodeIndex] = layer[upperNodeIndex]; + layer[upperNodeIndex] = temp; + continueSwitching = true; + } + return continueSwitching; +} + +function GreedySwitchHeuristic(greedyType, graphData){ + this.graphData = graphData; + this.greedySwitchType = greedyType; +} + +defineClass(1804, 1, $intern_111, GreedySwitchHeuristic); +_.initAtEdgeLevel = function initAtEdgeLevel(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtNodeLevel = function initAtNodeLevel(l, n, nodeOrder){ +} +; +_.alwaysImproves = function alwaysImproves(){ + return this.greedySwitchType != ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); +} +; +_.initAfterTraversal = function initAfterTraversal(){ + this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; +} +; +_.initAtPortLevel = function initAtPortLevel(l, n, p, nodeOrder){ + ++this.nPorts; +} +; +_.isDeterministic = function isDeterministic(){ + return true; +} +; +_.minimizeCrossings = function minimizeCrossings(order, freeLayerIndex, forwardSweep, isFirstSweep){ + $setUp(this, order, freeLayerIndex, forwardSweep); + return $continueSwitchingUntilNoImprovementInLayer(this, freeLayerIndex); +} +; +_.setFirstLayerOrder = function setFirstLayerOrder(currentOrder, isForwardSweep){ + var startIndex; + startIndex = $startIndex(isForwardSweep, currentOrder.length); + $setUp(this, currentOrder, startIndex, isForwardSweep); + return $sweepDownwardInLayer(this, startIndex); +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_GreedySwitchHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'GreedySwitchHeuristic', 1804); +function $countCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + upperNode.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode.type_0 == NORTH_SOUTH_PORT && castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 10) == castTo($getProperty(lowerNode, ORIGIN_0), 10) && ($originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?$countCrossingsOfTwoNorthSouthDummies(this$static, upperNode, lowerNode):$countCrossingsOfTwoNorthSouthDummies(this$static, lowerNode, upperNode)); + upperNode.type_0 == NORTH_SOUTH_PORT && lowerNode.type_0 == LONG_EDGE?$originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.upperLowerCrossings = 1):(this$static.lowerUpperCrossings = 1):lowerNode.type_0 == NORTH_SOUTH_PORT && upperNode.type_0 == LONG_EDGE && ($originPortOf(lowerNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.lowerUpperCrossings = 1):(this$static.upperLowerCrossings = 1)); + $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode); +} + +function $countCrossingsOfTwoNorthSouthDummies(this$static, furtherFromNormalNode, closerToNormalNode){ + var closerEastPorts, closerWestPorts, furtherEastPorts, furtherWestPorts; + if ($originPortPositionOf(this$static, furtherFromNormalNode) > $originPortPositionOf(this$static, closerToNormalNode)) { + closerEastPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , EAST_2)); + this$static.upperLowerCrossings = closerEastPorts.isEmpty()?0:$getDegree(castTo(closerEastPorts.get_0(0), 11)); + furtherWestPorts = $getPortSideView(furtherFromNormalNode, WEST_2); + this$static.lowerUpperCrossings = furtherWestPorts.isEmpty()?0:$getDegree(castTo(furtherWestPorts.get_0(0), 11)); + } + else { + closerWestPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , WEST_2)); + this$static.upperLowerCrossings = closerWestPorts.isEmpty()?0:$getDegree(castTo(closerWestPorts.get_0(0), 11)); + furtherEastPorts = $getPortSideView(furtherFromNormalNode, EAST_2); + this$static.lowerUpperCrossings = furtherEastPorts.isEmpty()?0:$getDegree(castTo(furtherEastPorts.get_0(0), 11)); + } +} + +function $initializePortPositions(this$static){ + var node, node$array, node$index, node$max; + for (node$array = this$static.layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $setPortIdsOn(this$static, node, ($clinit_PortSide() , SOUTH_2)); + $setPortIdsOn(this$static, node, NORTH_3); + } +} + +function $numberOfNorthSouthEdges(node, side){ + var numberOfEdges, port, port$iterator; + numberOfEdges = 0; + for (port$iterator = $getPortSideView(node, side).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + numberOfEdges += $getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null?1:0; + } + return numberOfEdges; +} + +function $originPortOf(node){ + var origin_0, port; + port = castTo($get_11(node.ports, 0), 11); + origin_0 = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + return origin_0; +} + +function $originPortPositionOf(this$static, node){ + var origin_0, port; + origin_0 = $originPortOf(node); + port = origin_0; + return castTo($get_10(this$static.portPositions, port), 19).value_0; +} + +function $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode){ + if (upperNode.type_0 == ($clinit_LNode$NodeType() , NORMAL) && lowerNode.type_0 == LONG_EDGE) { + this$static.upperLowerCrossings = $numberOfNorthSouthEdges(upperNode, ($clinit_PortSide() , SOUTH_2)); + this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(upperNode, NORTH_3); + } + if (lowerNode.type_0 == NORMAL && upperNode.type_0 == LONG_EDGE) { + this$static.upperLowerCrossings = $numberOfNorthSouthEdges(lowerNode, ($clinit_PortSide() , NORTH_3)); + this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(lowerNode, SOUTH_2); + } +} + +function $setPortIdsOn(this$static, node, side){ + var port, port$iterator, portId, ports; + ports = inNorthSouthEastWestOrder(node, side); + portId = 0; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $put_6(this$static.portPositions, port, valueOf_4(portId++)); + } +} + +function NorthSouthEdgeNeighbouringNodeCrossingsCounter(nodes){ + this.layer = nodes; + this.portPositions = new HashMap; + $initializePortPositions(this); +} + +defineClass(1930, 1, {}, NorthSouthEdgeNeighbouringNodeCrossingsCounter); +_.lowerUpperCrossings = 0; +_.upperLowerCrossings = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_NorthSouthEdgeNeighbouringNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'NorthSouthEdgeNeighbouringNodeCrossingsCounter', 1930); +function $doesSwitchReduceCrossings(this$static, upperNodeIndex, lowerNodeIndex){ + var crossingNumbers, leftInlayer, lowerNode, lowerPort, lowerUpperCrossings, rightInlayer, upperLowerCrossings, upperNode, upperPort, upperNode_0, lowerNode_0, constraints, neitherNodeIsLongEdgeDummy, upperLayoutUnit, lowerLayoutUnit, areInDifferentLayoutUnits, nodesHaveLayoutUnits, upperNodeHasNorthernEdges, lowerNodeHasSouthernEdges, hasLayoutUnitConstraint; + if (upperNode_0 = this$static.freeLayer[upperNodeIndex] , lowerNode_0 = this$static.freeLayer[lowerNodeIndex] , (constraints = castTo($getProperty(upperNode_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15) , !!constraints && constraints.size_1() != 0 && constraints.contains(lowerNode_0)) || (neitherNodeIsLongEdgeDummy = upperNode_0.type_0 != ($clinit_LNode$NodeType() , LONG_EDGE) && lowerNode_0.type_0 != LONG_EDGE , upperLayoutUnit = castTo($getProperty(upperNode_0, IN_LAYER_LAYOUT_UNIT), 10) , lowerLayoutUnit = castTo($getProperty(lowerNode_0, IN_LAYER_LAYOUT_UNIT), 10) , areInDifferentLayoutUnits = upperLayoutUnit != lowerLayoutUnit , nodesHaveLayoutUnits = !!upperLayoutUnit && upperLayoutUnit != upperNode_0 || !!lowerLayoutUnit && lowerLayoutUnit != lowerNode_0 , upperNodeHasNorthernEdges = $hasEdgesOnSide(upperNode_0, ($clinit_PortSide() , NORTH_3)) , lowerNodeHasSouthernEdges = $hasEdgesOnSide(lowerNode_0, SOUTH_2) , nodesHaveLayoutUnits = nodesHaveLayoutUnits | ($hasEdgesOnSide(upperNode_0, SOUTH_2) || $hasEdgesOnSide(lowerNode_0, NORTH_3)) , hasLayoutUnitConstraint = nodesHaveLayoutUnits && areInDifferentLayoutUnits || upperNodeHasNorthernEdges || lowerNodeHasSouthernEdges , neitherNodeIsLongEdgeDummy && hasLayoutUnitConstraint) || upperNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode_0.type_0 == NORMAL || lowerNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && upperNode_0.type_0 == NORMAL) { + return false; + } + upperNode = this$static.freeLayer[upperNodeIndex]; + lowerNode = this$static.freeLayer[lowerNodeIndex]; + leftInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); + rightInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); + $countCrossings(this$static.northSouthCounter, upperNode, lowerNode); + upperLowerCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, upperNode, lowerNode) + castTo(leftInlayer.first, 19).value_0 + castTo(rightInlayer.first, 19).value_0 + this$static.northSouthCounter.upperLowerCrossings; + lowerUpperCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, lowerNode, upperNode) + castTo(leftInlayer.second, 19).value_0 + castTo(rightInlayer.second, 19).value_0 + this$static.northSouthCounter.lowerUpperCrossings; + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ORIGIN_0), 11); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); + crossingNumbers = $countCrossingsBetweenPortsInBothOrders(this$static.parentCrossCounter, upperPort, lowerPort); + upperLowerCrossings += castTo(crossingNumbers.first, 19).value_0; + lowerUpperCrossings += castTo(crossingNumbers.second, 19).value_0; + } + return upperLowerCrossings > lowerUpperCrossings; +} + +function $hasEdgesOnSide(node, side){ + var port, port$iterator, ports; + ports = $getPortSideView(node, side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if ($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null || $hasNext_6(new LPort$CombineIter$1(port.connectedEdges))) { + return true; + } + } + return false; +} + +function $initParentCrossingsCounters(this$static, freeLayerIndex, length_0){ + var leftLayer, middleLayer, parentGraphData, parentNodeLayerPos, parentNodeOrder, portPos, rightLayer, rightMostLayer; + parentGraphData = this$static.graphData.parentGraphData; + parentNodeOrder = parentGraphData.currentNodeOrder; + portPos = parentGraphData.portPositions; + this$static.parentCrossCounter = new CrossingsCounter(portPos); + parentNodeLayerPos = this$static.graphData.parent_0.layer.id_0; + leftLayer = parentNodeLayerPos > 0?parentNodeOrder[parentNodeLayerPos - 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); + middleLayer = parentNodeOrder[parentNodeLayerPos]; + rightLayer = parentNodeLayerPos < parentNodeOrder.length - 1?parentNodeOrder[parentNodeLayerPos + 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); + rightMostLayer = freeLayerIndex == length_0 - 1; + rightMostLayer?$initForCountingBetween(this$static.parentCrossCounter, middleLayer, rightLayer):$initForCountingBetween(this$static.parentCrossCounter, leftLayer, middleLayer); +} + +function $notifyOfSwitch(this$static, upperNode, lowerNode){ + var lowerPort, upperPort; + $switchNodes(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); + $switchNodes(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); + $switchPorts(this$static.parentCrossCounter, upperPort, lowerPort); + } +} + +function SwitchDecider(freeLayerIndex, graph, crossingMatrixFiller, portPositions, graphData, oneSided){ + this.crossingMatrixFiller = crossingMatrixFiller; + this.graphData = graphData; + if (freeLayerIndex >= graph.length) { + throw toJs(new IndexOutOfBoundsException_0('Greedy SwitchDecider: Free layer not in graph.')); + } + this.freeLayer = graph[freeLayerIndex]; + this.leftInLayerCounter = new CrossingsCounter(portPositions); + $initPortPositionsForInLayerCrossings(this.leftInLayerCounter, this.freeLayer, ($clinit_PortSide() , WEST_2)); + this.rightInLayerCounter = new CrossingsCounter(portPositions); + $initPortPositionsForInLayerCrossings(this.rightInLayerCounter, this.freeLayer, EAST_2); + this.northSouthCounter = new NorthSouthEdgeNeighbouringNodeCrossingsCounter(this.freeLayer); + this.countCrossingsCausedByPortSwitch = !oneSided && graphData.hasParent && !graphData.useBottomUp && this.freeLayer[0].type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); + this.countCrossingsCausedByPortSwitch && $initParentCrossingsCounters(this, freeLayerIndex, graph.length); +} + +defineClass(1917, 1, {}, SwitchDecider); +_.countCrossingsCausedByPortSwitch = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_SwitchDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'SwitchDecider', 1917); +function $addSelfLoopEdge(this$static, slEdge){ + var lLabels, slSource, slTarget; + if ($add_6(this$static.slEdges, slEdge)) { + slEdge.slHyperLoop = this$static; + slSource = slEdge.slSource; + $indexOf_3(this$static.slPorts, slSource, 0) != -1 || $add_3(this$static.slPorts, slSource); + slTarget = slEdge.slTarget; + $indexOf_3(this$static.slPorts, slTarget, 0) != -1 || $add_3(this$static.slPorts, slTarget); + lLabels = slEdge.lEdge.labels; + if (lLabels.array.length != 0) { + !this$static.slLabels && (this$static.slLabels = new SelfHyperLoopLabels(this$static)); + $addLLabels(this$static.slLabels, lLabels); + } + } +} + +function $computePortsPerSide(this$static){ + var portSide, slPort, slPort$iterator; + this$static.slPortsBySide = new ArrayListMultimap_0(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, this$static.slPorts.array.length); + for (slPort$iterator = new ArrayList$1(this$static.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_7(slPort$iterator), 113); + portSide = slPort.lPort.side; + $put(this$static.slPortsBySide, portSide, slPort); + } + this$static.selfLoopType = fromPortSides($keySet(this$static.slPortsBySide)); +} + +function $setLeftmostPort(this$static, leftmostPort){ + this$static.leftmostPort = leftmostPort; +} + +function $setRightmostPort(this$static, rightmostPort){ + this$static.rightmostPort = rightmostPort; +} + +function $setRoutingSlot(this$static, portSide, slot){ + var slotCount; + this$static.routingSlot[portSide.ordinal] = slot; + slotCount = this$static.slHolder.routingSlotCount; + slotCount[portSide.ordinal] = $wnd.Math.max(slotCount[portSide.ordinal], slot + 1); +} + +function SelfHyperLoop(slHolder){ + var all; + this.slPorts = new ArrayList; + this.slEdges = new HashSet; + this.occupiedPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.routingSlot = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.slHolder = slHolder; +} + +defineClass(101, 1, {101:1}, SelfHyperLoop); +_.leftmostPort = null; +_.rightmostPort = null; +_.slLabels = null; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoop_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoop', 101); +function $addLLabels(this$static, newLLabels){ + var newLLabel, newLLabel$iterator; + for (newLLabel$iterator = new ArrayList$1(newLLabels); newLLabel$iterator.i < newLLabel$iterator.this$01.array.length;) { + newLLabel = castTo($next_7(newLLabel$iterator), 70); + $add_3(this$static.lLabels, newLLabel); + $updateSize(this$static, newLLabel); + } +} + +function $applyPlacement(this$static, offset){ + $isHorizontal(this$static.layoutDirection)?$applyPlacementForHorizontalLayout(this$static, offset):$applyPlacementVerticalForVerticalLayout(this$static, offset); +} + +function $applyPlacementForHorizontalLayout(this$static, offset){ + var lLabel, lLabel$iterator, labelPos, x_0, y_0; + x_0 = this$static.position.x_0; + y_0 = this$static.position.y_0; + for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { + lLabel = castTo($next_7(lLabel$iterator), 70); + labelPos = lLabel.pos; + this$static.alignment == ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1) || this$static.side == ($clinit_PortSide() , EAST_2)?(labelPos.x_0 = x_0):this$static.alignment == RIGHT_1 || this$static.side == ($clinit_PortSide() , WEST_2)?(labelPos.x_0 = x_0 + this$static.size_0.x_0 - lLabel.size_0.x_0):(labelPos.x_0 = x_0 + (this$static.size_0.x_0 - lLabel.size_0.x_0) / 2); + labelPos.y_0 = y_0; + $add_19(labelPos, offset); + y_0 += lLabel.size_0.y_0 + this$static.labelLabelSpacing; + } +} + +function $applyPlacementVerticalForVerticalLayout(this$static, offset){ + var lLabel, lLabel$iterator, labelPos, x_0, y_0; + x_0 = this$static.position.x_0; + y_0 = this$static.position.y_0; + for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { + lLabel = castTo($next_7(lLabel$iterator), 70); + labelPos = lLabel.pos; + labelPos.x_0 = x_0; + this$static.side == ($clinit_PortSide() , NORTH_3)?(labelPos.y_0 = y_0 + this$static.size_0.y_0 - lLabel.size_0.y_0):(labelPos.y_0 = y_0); + $add_19(labelPos, offset); + x_0 += lLabel.size_0.x_0 + this$static.labelLabelSpacing; + } +} + +function $updateSize(this$static, newLLabel){ + var newLLabelSize; + newLLabelSize = newLLabel.size_0; + if ($isHorizontal(this$static.layoutDirection)) { + this$static.size_0.x_0 = $wnd.Math.max(this$static.size_0.x_0, newLLabelSize.x_0); + this$static.size_0.y_0 += newLLabelSize.y_0; + this$static.lLabels.array.length > 1 && (this$static.size_0.y_0 += this$static.labelLabelSpacing); + } + else { + this$static.size_0.x_0 += newLLabelSize.x_0; + this$static.size_0.y_0 = $wnd.Math.max(this$static.size_0.y_0, newLLabelSize.y_0); + this$static.lLabels.array.length > 1 && (this$static.size_0.x_0 += this$static.labelLabelSpacing); + } +} + +function SelfHyperLoopLabels(slLoop){ + var lNode; + this.lLabels = new ArrayList; + this.size_0 = new KVector; + this.position = new KVector; + lNode = slLoop.slHolder.lNode; + this.layoutDirection = castTo($getProperty($getGraph(lNode), ($clinit_LayeredOptions() , DIRECTION)), 103); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_LABEL_LABEL))); +} + +defineClass(1916, 1, {}, SelfHyperLoopLabels); +_.id_0 = 0; +_.labelLabelSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels', 1916); +function $clinit_SelfHyperLoopLabels$Alignment(){ + $clinit_SelfHyperLoopLabels$Alignment = emptyMethod; + CENTER_2 = new SelfHyperLoopLabels$Alignment('CENTER', 0); + LEFT_1 = new SelfHyperLoopLabels$Alignment('LEFT', 1); + RIGHT_1 = new SelfHyperLoopLabels$Alignment('RIGHT', 2); + TOP_0 = new SelfHyperLoopLabels$Alignment('TOP', 3); +} + +function SelfHyperLoopLabels$Alignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_34(name_0){ + $clinit_SelfHyperLoopLabels$Alignment(); + return valueOf(($clinit_SelfHyperLoopLabels$Alignment$Map() , $MAP_22), name_0); +} + +function values_40(){ + $clinit_SelfHyperLoopLabels$Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]); +} + +defineClass(411, 22, {3:1, 35:1, 22:1, 411:1}, SelfHyperLoopLabels$Alignment); +var CENTER_2, LEFT_1, RIGHT_1, TOP_0; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels/Alignment', 411, Ljava_lang_Enum_2_classLit, values_40, valueOf_34); +function $clinit_SelfHyperLoopLabels$Alignment$Map(){ + $clinit_SelfHyperLoopLabels$Alignment$Map = emptyMethod; + $MAP_22 = createValueOfMap(($clinit_SelfHyperLoopLabels$Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]))); +} + +var $MAP_22; +function SelfLoopEdge(lEdge, slSource, slTarget){ + this.lEdge = lEdge; + this.slSource = slSource; + this.slTarget = slTarget; + $add_3(slSource.outgoingSLEdges, this); + $add_3(slTarget.incomingSLEdges, this); +} + +defineClass(409, 1, {409:1}, SelfLoopEdge); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopEdge', 409); +function $initialize_3(this$static){ + var entry, lEdge, lEdge$iterator, outerIter, outerIter0, slEdges, slPort, slPort$iterator, slPort$iterator0; + slEdges = new ArrayList; + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(this$static.lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + $isSelfLoop(lEdge) && $add_3(slEdges, new SelfLoopEdge(lEdge, $selfLoopPortFor(this$static, lEdge.source), $selfLoopPortFor(this$static, lEdge.target))); + } + for (slPort$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); slPort$iterator0.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); + slPort.lPort.id_0 = 0; + } + for (slPort$iterator = (outerIter = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); + slPort.lPort.id_0 == 0 && $add_3(this$static.slHyperLoops, $initializeHyperLoop(this$static, slPort)); + } +} + +function $initializeHyperLoop(this$static, slPort){ + var bfsQueue, currentSLPort, slEdge, slEdge$iterator, slEdge$iterator0, slLoop, slSourcePort, slTargetPort; + slLoop = new SelfHyperLoop(this$static); + bfsQueue = new LinkedList; + $addNode_0(bfsQueue, slPort, bfsQueue.tail.prev, bfsQueue.tail); + while (bfsQueue.size_0 != 0) { + currentSLPort = castTo(bfsQueue.size_0 == 0?null:(checkCriticalElement(bfsQueue.size_0 != 0) , $removeNode_0(bfsQueue, bfsQueue.header.next_0)), 113); + currentSLPort.lPort.id_0 = 1; + for (slEdge$iterator0 = new ArrayList$1(currentSLPort.outgoingSLEdges); slEdge$iterator0.i < slEdge$iterator0.this$01.array.length;) { + slEdge = castTo($next_7(slEdge$iterator0), 409); + $addSelfLoopEdge(slLoop, slEdge); + slTargetPort = slEdge.slTarget; + slTargetPort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slTargetPort, bfsQueue.tail.prev, bfsQueue.tail) , true); + } + for (slEdge$iterator = new ArrayList$1(currentSLPort.incomingSLEdges); slEdge$iterator.i < slEdge$iterator.this$01.array.length;) { + slEdge = castTo($next_7(slEdge$iterator), 409); + $addSelfLoopEdge(slLoop, slEdge); + slSourcePort = slEdge.slSource; + slSourcePort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slSourcePort, bfsQueue.tail.prev, bfsQueue.tail) , true); + } + } + return slLoop; +} + +function $selfLoopPortFor(this$static, lport){ + $containsKey_6(this$static.slPorts, lport) || $put_11(this$static.slPorts, lport, new SelfLoopPort(lport)); + return castTo($get_16(this$static.slPorts, lport), 113); +} + +function SelfLoopHolder(node){ + this.slHyperLoops = new ArrayList; + this.slPorts = new LinkedHashMap; + this.routingSlotCount = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.lNode = node; +} + +function needsSelfLoopProcessing(lNode){ + if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + return false; + } + return $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)))), new SelfLoopHolder$lambda$0$Type); +} + +defineClass(403, 1, {403:1}, SelfLoopHolder); +_.arePortsHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder', 403); +function SelfLoopHolder$lambda$0$Type(){ +} + +defineClass(1724, 1, $intern_39, SelfLoopHolder$lambda$0$Type); +_.test_0 = function test_69(arg0){ + return $isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder/lambda$0$Type', 1724); +function $getSLNetFlow(this$static){ + return this$static.incomingSLEdges.array.length - this$static.outgoingSLEdges.array.length; +} + +function SelfLoopPort(lPort){ + this.incomingSLEdges = new ArrayList; + this.outgoingSLEdges = new ArrayList; + this.lPort = lPort; + this.hadOnlySelfLoops = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new LPort$CombineIter$1(lPort.connectedEdges))), new Predicate$lambda$2$Type(new SelfLoopPort$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); +} + +defineClass(113, 1, {113:1}, SelfLoopPort); +_.hadOnlySelfLoops = false; +_.isHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort', 113); +function SelfLoopPort$lambda$0$Type(){ +} + +defineClass(1792, 1, $intern_39, SelfLoopPort$lambda$0$Type); +_.test_0 = function test_70(arg0){ + return $isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort/lambda$0$Type', 1792); +function $clinit_SelfLoopType(){ + $clinit_SelfLoopType = emptyMethod; + ONE_SIDE = new SelfLoopType('ONE_SIDE', 0); + TWO_SIDES_CORNER = new SelfLoopType('TWO_SIDES_CORNER', 1); + TWO_SIDES_OPPOSING = new SelfLoopType('TWO_SIDES_OPPOSING', 2); + THREE_SIDES = new SelfLoopType('THREE_SIDES', 3); + FOUR_SIDES = new SelfLoopType('FOUR_SIDES', 4); +} + +function SelfLoopType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function fromPortSides(portSides){ + $clinit_SelfLoopType(); + var eastWest, northSouth; + if (portSides.contains(($clinit_PortSide() , UNDEFINED_5))) { + throw toJs(new IllegalArgumentException_0('Port sides must not contain UNDEFINED')); + } + switch (portSides.size_1()) { + case 1: + return ONE_SIDE; + case 2: + eastWest = portSides.contains(EAST_2) && portSides.contains(WEST_2); + northSouth = portSides.contains(NORTH_3) && portSides.contains(SOUTH_2); + return eastWest || northSouth?TWO_SIDES_OPPOSING:TWO_SIDES_CORNER; + case 3: + return THREE_SIDES; + case 4: + return FOUR_SIDES; + default:return null; + } +} + +function valueOf_35(name_0){ + $clinit_SelfLoopType(); + return valueOf(($clinit_SelfLoopType$Map() , $MAP_23), name_0); +} + +function values_41(){ + $clinit_SelfLoopType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]); +} + +defineClass(363, 22, {3:1, 35:1, 22:1, 363:1}, SelfLoopType); +var FOUR_SIDES, ONE_SIDE, THREE_SIDES, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopType', 363, Ljava_lang_Enum_2_classLit, values_41, valueOf_35); +function $clinit_SelfLoopType$Map(){ + $clinit_SelfLoopType$Map = emptyMethod; + $MAP_23 = createValueOfMap(($clinit_SelfLoopType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]))); +} + +var $MAP_23; +function $clinit_PortRestorer(){ + $clinit_PortRestorer = emptyMethod; + NES = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [($clinit_PortSide() , NORTH_3), EAST_2, SOUTH_2]); + ESW = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]); + SWN = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2, NORTH_3]); + WNE = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2, NORTH_3, EAST_2]); +} + +function $addAll_5(slPorts, lNode){ + $forEach_3($map_0(slPorts.stream(), new PortRestorer$lambda$11$Type), new PortRestorer$lambda$12$Type(lNode)); +} + +function $addAllThat(lPorts, fromIndex, condition, target){ + var i, lPort; + for (i = fromIndex; i < lPorts.array.length; i++) { + lPort = (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)); + if (condition.test_0(lPort)) { + target.array[target.array.length] = lPort; + } + else { + return i; + } + } + return lPorts.array.length; +} + +function $addToTargetArea(this$static, slPorts, portSide, area, addMode){ + var hiddenPorts, targetArea; + hiddenPorts = castTo($collect_1($filter(slPorts.stream(), new PortRestorer$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + targetArea = castTo($get_1(this$static.targetAreas, portSide, area), 15); + addMode == 0?targetArea.addAll_0(0, hiddenPorts):targetArea.addAll(hiddenPorts); +} + +function $addToTargetArea_0(this$static, slLoop, portSide, area, addMode){ + $addToTargetArea(this$static, castTo($get(slLoop.slPortsBySide, portSide), 15), portSide, area, addMode); +} + +function $computePortListSplitIndex(sortedPorts){ + var nonNegativeNetFlowIndex, positiveNetFlowIndex; + positiveNetFlowIndex = 0; + for (; positiveNetFlowIndex < sortedPorts.array.length; positiveNetFlowIndex++) { + if ($getSLNetFlow((checkCriticalElementIndex(positiveNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[positiveNetFlowIndex], 113))) > 0) { + break; + } + } + if (positiveNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { + return positiveNetFlowIndex; + } + nonNegativeNetFlowIndex = 0; + for (; nonNegativeNetFlowIndex < sortedPorts.array.length; nonNegativeNetFlowIndex++) { + if ($getSLNetFlow((checkCriticalElementIndex(nonNegativeNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[nonNegativeNetFlowIndex], 113))) > 0) { + break; + } + } + if (nonNegativeNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { + return nonNegativeNetFlowIndex; + } + return sortedPorts.array.length / 2 | 0; +} + +function $initTargetAreas(this$static){ + var area, area$array, area$index, area$max, side, side$array, side$index, side$max; + this$static.targetAreas = new ArrayTable(new Arrays$ArrayList(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))), new Arrays$ArrayList(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0])))); + for (side$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { + side = side$array[side$index]; + for (area$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { + area = area$array[area$index]; + $put_0(this$static.targetAreas, side, area, new ArrayList); + } + } +} + +function $lambda$5(lPort_0){ + var connections, eastConnections, westConnections; + return lPort_0.side == ($clinit_PortSide() , NORTH_3) && (connections = $northSouthPortConnectionSides(lPort_0) , eastConnections = $containsEnum(connections, EAST_2) , westConnections = $containsEnum(connections, WEST_2) , westConnections || westConnections && eastConnections); +} + +function $lambda$8(lPort_0){ + var connections; + return lPort_0.side == ($clinit_PortSide() , SOUTH_2) && (connections = $northSouthPortConnectionSides(lPort_0) , $containsEnum(connections, EAST_2)); +} + +function $northSouthPortConnectionSides(lPort){ + var all, connectionSides, dummyLPort, dummyLPort$iterator, portDummy; + connectionSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + portDummy = castTo($getProperty(lPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (dummyLPort$iterator = new ArrayList$1(portDummy.ports); dummyLPort$iterator.i < dummyLPort$iterator.this$01.array.length;) { + dummyLPort = castTo($next_7(dummyLPort$iterator), 11); + maskUndefined($getProperty(dummyLPort, ORIGIN_0)) === maskUndefined(lPort) && $hasNext_6(new LPort$CombineIter$1(dummyLPort.connectedEdges)) && $add_5(connectionSides, dummyLPort.side); + } + } + return connectionSides; +} + +function $processFourSideLoops(this$static){ + var side, side$iterator, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , FOUR_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + for (side$iterator = $keySet(slLoop.slPortsBySide).iterator_0(); side$iterator.hasNext_0();) { + side = castTo(side$iterator.next_1(), 61); + $addToTargetArea_0(this$static, slLoop, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + } + } +} + +function $processOneSideLoops(this$static, ordering){ + var side, slLoop, slLoop$iterator, sortedPorts, splitIndex; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , ONE_SIDE)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; + sortedPorts = new ArrayList_1(slLoop.slPorts); + $sort(sortedPorts, new PortRestorer$lambda$3$Type); + switch (ordering.ordinal) { + case 1: + $addToTargetArea(this$static, sortedPorts, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + break; + case 0: + splitIndex = $computePortListSplitIndex(sortedPorts); + $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, 0, splitIndex), side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 0); + $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, splitIndex, sortedPorts.array.length), side, MIDDLE, 1); + } + } +} + +function $processThreeSideLoops(this$static){ + var portSides, sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , THREE_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + sides = (portSides = $keySet(slLoop.slPortsBySide) , portSides.contains(($clinit_PortSide() , NORTH_3))?portSides.contains(EAST_2)?portSides.contains(SOUTH_2)?portSides.contains(WEST_2)?null:NES:WNE:SWN:ESW); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], MIDDLE, 1); + $addToTargetArea_0(this$static, slLoop, sides[2], START, 1); + } +} + +function $processTwoSideCornerLoops(this$static){ + var sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_CORNER)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + sides = sortedTwoSideLoopPortSides(slLoop); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); + } +} + +function $processTwoSideOpposingLoops(this$static){ + var sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_OPPOSING)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + sides = sortedTwoSideLoopPortSides(slLoop); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); + } +} + +function $restorePorts(this$static, slHolder){ + var lNode, newPortList, nextOldPortIndex, oldPortList; + lNode = slHolder.lNode; + oldPortList = new ArrayList_1(lNode.ports); + nextOldPortIndex = 0; + newPortList = lNode.ports; + newPortList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_5(castTo($get_1(this$static.targetAreas, ($clinit_PortSide() , NORTH_3), ($clinit_PortRestorer$PortSideArea() , START)), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$5$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$6$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, START), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$7$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, START), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$8$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$9$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, START), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$10$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, MIDDLE), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, END_0), 15), lNode); +} + +function $restorePorts_0(this$static, slHolder){ + var loops; + $initTargetAreas(this$static); + this$static.slLoopsByType = (loops = new ArrayListMultimap , $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortRestorer$lambda$2$Type(loops)) , loops); + $processOneSideLoops(this$static, castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376)); + $processTwoSideCornerLoops(this$static); + $processThreeSideLoops(this$static); + $processFourSideLoops(this$static); + $processTwoSideOpposingLoops(this$static); + $restorePorts(this$static, slHolder); + $forEach_3($flatMap(new StreamImpl(null, $valuesSpliterator($values_1(this$static.targetAreas).this$01)), new PortRestorer$lambda$0$Type), new PortRestorer$lambda$1$Type); + slHolder.arePortsHidden = false; + this$static.slLoopsByType = null; +} + +function PortRestorer(){ + $clinit_PortRestorer(); +} + +function lambda$12(lNode_0, lPort_1){ + $clinit_PortRestorer(); + $setNode(lPort_1, lNode_0); +} + +function lambda$2_8(loops_0, slLoop_1){ + $clinit_PortRestorer(); + return $put(loops_0, slLoop_1.selfLoopType, slLoop_1); +} + +function lambda$3_5(slPort1_0, slPort2_1){ + $clinit_PortRestorer(); + return compare_5(slPort1_0.incomingSLEdges.array.length - slPort1_0.outgoingSLEdges.array.length, slPort2_1.incomingSLEdges.array.length - slPort2_1.outgoingSLEdges.array.length); +} + +function sortedTwoSideLoopPortSides(slLoop){ + $clinit_PortRestorer(); + var sides; + sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); + mergeSort(sides, 0, sides.length, null); + if (sides[0] == ($clinit_PortSide() , NORTH_3) && sides[1] == WEST_2) { + setCheck(sides, 0, WEST_2); + setCheck(sides, 1, NORTH_3); + } + return sides; +} + +defineClass(1732, 1, {}, PortRestorer); +var ESW, NES, SWN, WNE; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer', 1732); +function $clinit_PortRestorer$PortSideArea(){ + $clinit_PortRestorer$PortSideArea = emptyMethod; + START = new PortRestorer$PortSideArea('START', 0); + MIDDLE = new PortRestorer$PortSideArea('MIDDLE', 1); + END_0 = new PortRestorer$PortSideArea('END', 2); +} + +function PortRestorer$PortSideArea(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_36(name_0){ + $clinit_PortRestorer$PortSideArea(); + return valueOf(($clinit_PortRestorer$PortSideArea$Map() , $MAP_24), name_0); +} + +function values_42(){ + $clinit_PortRestorer$PortSideArea(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]); +} + +defineClass(361, 22, {3:1, 35:1, 22:1, 361:1}, PortRestorer$PortSideArea); +var END_0, MIDDLE, START; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/PortSideArea', 361, Ljava_lang_Enum_2_classLit, values_42, valueOf_36); +function $clinit_PortRestorer$PortSideArea$Map(){ + $clinit_PortRestorer$PortSideArea$Map = emptyMethod; + $MAP_24 = createValueOfMap(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]))); +} + +var $MAP_24; +function PortRestorer$lambda$0$Type(){ +} + +defineClass(1733, 1, {}, PortRestorer$lambda$0$Type); +_.apply_0 = function apply_122(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 15).stream(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$0$Type', 1733); +function PortRestorer$lambda$1$Type(){ +} + +defineClass(1734, 1, $intern_19, PortRestorer$lambda$1$Type); +_.accept = function accept_106(arg0){ + $clinit_PortRestorer(); + castTo(arg0, 113).isHidden = false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$1$Type', 1734); +function PortRestorer$lambda$10$Type(){ +} + +defineClass(1743, 1, $intern_39, PortRestorer$lambda$10$Type); +_.test_0 = function test_71(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$10$Type', 1743); +function PortRestorer$lambda$11$Type(){ +} + +defineClass(1744, 1, {}, PortRestorer$lambda$11$Type); +_.apply_0 = function apply_123(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$11$Type', 1744); +function PortRestorer$lambda$12$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1745, 1, $intern_19, PortRestorer$lambda$12$Type); +_.accept = function accept_107(arg0){ + lambda$12(this.lNode_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$12$Type', 1745); +function PortRestorer$lambda$2$Type(loops_0){ + this.loops_0 = loops_0; +} + +defineClass(1735, 1, $intern_19, PortRestorer$lambda$2$Type); +_.accept = function accept_108(arg0){ + lambda$2_8(this.loops_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$2$Type', 1735); +function PortRestorer$lambda$3$Type(){ +} + +defineClass(1736, 1, $intern_88, PortRestorer$lambda$3$Type); +_.compare_1 = function compare_52(arg0, arg1){ + return lambda$3_5(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_133(other){ + return this === other; +} +; +_.reversed = function reversed_44(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$3$Type', 1736); +function PortRestorer$lambda$4$Type(){ +} + +defineClass(1737, 1, $intern_39, PortRestorer$lambda$4$Type); +_.test_0 = function test_72(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 113).isHidden; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$4$Type', 1737); +function PortRestorer$lambda$5$Type(){ +} + +defineClass(1738, 1, $intern_39, PortRestorer$lambda$5$Type); +_.test_0 = function test_73(arg0){ + return $lambda$5(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$5$Type', 1738); +function PortRestorer$lambda$6$Type(){ +} + +defineClass(1739, 1, $intern_39, PortRestorer$lambda$6$Type); +_.test_0 = function test_74(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$6$Type', 1739); +function PortRestorer$lambda$7$Type(){ +} + +defineClass(1740, 1, $intern_39, PortRestorer$lambda$7$Type); +_.test_0 = function test_75(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$7$Type', 1740); +function PortRestorer$lambda$8$Type(){ +} + +defineClass(1741, 1, $intern_39, PortRestorer$lambda$8$Type); +_.test_0 = function test_76(arg0){ + return $lambda$8(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$8$Type', 1741); +function PortRestorer$lambda$9$Type(){ +} + +defineClass(1742, 1, $intern_39, PortRestorer$lambda$9$Type); +_.test_0 = function test_77(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$9$Type', 1742); +function $assignPortSides(slHolder){ + switch (castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)), 375).ordinal) { + case 1: + $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortSideAssigner$lambda$1$Type), new PortSideAssigner$lambda$2$Type), new PortSideAssigner$lambda$3$Type); + break; + case 2: + $assignToNorthOrSouthSide(slHolder); + break; + case 0: + $assignToAllSides(slHolder); + } +} + +function $assignToAllSides(slHolder){ + var assignmentTargets, currLoop, currTarget, slLoop, slLoop$iterator, slSortedLoops; + slSortedLoops = new ArrayList_1(slHolder.slHyperLoops); + $sort(slSortedLoops, new PortSideAssigner$lambda$6$Type); + assignmentTargets = ($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER])); + currLoop = 0; + for (slLoop$iterator = new ArrayList$1(slSortedLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + currTarget = assignmentTargets[currLoop % assignmentTargets.length]; + $assignToTarget(slLoop, currTarget); + ++currLoop; + } +} + +function $assignToNorthOrSouthSide(slHolder){ + var finalNewPortSide, newPortSide, northPorts, slHiddenPorts, slLoop, slLoop$iterator, southPorts; + northPorts = 0; + southPorts = 0; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slHiddenPorts = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slLoop.slPorts, 16)), new PortSideAssigner$lambda$8$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + newPortSide = null; + if (northPorts <= southPorts) { + newPortSide = ($clinit_PortSide() , NORTH_3); + northPorts += slHiddenPorts.size_1(); + } + else if (southPorts < northPorts) { + newPortSide = ($clinit_PortSide() , SOUTH_2); + southPorts += slHiddenPorts.size_1(); + } + finalNewPortSide = newPortSide; + $forEach_3($map_0(slHiddenPorts.stream(), new PortSideAssigner$lambda$4$Type), new PortSideAssigner$lambda$5$Type(finalNewPortSide)); + } +} + +function $assignToTarget(slLoop, target){ + var i, i0, secondHalfStartIndex, slPort, slPorts; + slPorts = slLoop.slPorts; + target.firstSide != target.secondSide && $sort(slPorts, new PortSideAssigner$lambda$7$Type); + secondHalfStartIndex = slPorts.array.length / 2 | 0; + for (i0 = 0; i0 < secondHalfStartIndex; i0++) { + slPort = (checkCriticalElementIndex(i0, slPorts.array.length) , castTo(slPorts.array[i0], 113)); + slPort.isHidden && $setSide(slPort.lPort, target.firstSide); + } + for (i = secondHalfStartIndex; i < slPorts.array.length; i++) { + slPort = (checkCriticalElementIndex(i, slPorts.array.length) , castTo(slPorts.array[i], 113)); + slPort.isHidden && $setSide(slPort.lPort, target.secondSide); + } +} + +function lambda$5_2(finalNewPortSide_0, lPort_1){ + $setSide(lPort_1, finalNewPortSide_0); +} + +function lambda$6_0(slLoop1_0, slLoop2_1){ + return compare_5(slLoop2_1.slPorts.array.length, slLoop1_0.slPorts.array.length); +} + +function lambda$7_2(slPort1_0, slPort2_1){ + return compare_5($getNetFlow(slPort1_0.lPort), $getNetFlow(slPort2_1.lPort)); +} + +function $clinit_PortSideAssigner$Target(){ + $clinit_PortSideAssigner$Target = emptyMethod; + NORTH_1 = new PortSideAssigner$Target('NORTH', 0, ($clinit_PortSide() , NORTH_3), NORTH_3); + SOUTH_1 = new PortSideAssigner$Target('SOUTH', 1, SOUTH_2, SOUTH_2); + EAST_1 = new PortSideAssigner$Target('EAST', 2, EAST_2, EAST_2); + WEST_1 = new PortSideAssigner$Target('WEST', 3, WEST_2, WEST_2); + NORTH_WEST_CORNER = new PortSideAssigner$Target('NORTH_WEST_CORNER', 4, WEST_2, NORTH_3); + NORTH_EAST_CORNER = new PortSideAssigner$Target('NORTH_EAST_CORNER', 5, NORTH_3, EAST_2); + SOUTH_WEST_CORNER = new PortSideAssigner$Target('SOUTH_WEST_CORNER', 6, SOUTH_2, WEST_2); + SOUTH_EAST_CORNER = new PortSideAssigner$Target('SOUTH_EAST_CORNER', 7, EAST_2, SOUTH_2); +} + +function PortSideAssigner$Target(enum$name, enum$ordinal, firstSide, secondSide){ + Enum.call(this, enum$name, enum$ordinal); + this.firstSide = firstSide; + this.secondSide = secondSide; +} + +function valueOf_37(name_0){ + $clinit_PortSideAssigner$Target(); + return valueOf(($clinit_PortSideAssigner$Target$Map() , $MAP_25), name_0); +} + +function values_43(){ + $clinit_PortSideAssigner$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]); +} + +defineClass(270, 22, {3:1, 35:1, 22:1, 270:1}, PortSideAssigner$Target); +var EAST_1, NORTH_1, NORTH_EAST_CORNER, NORTH_WEST_CORNER, SOUTH_1, SOUTH_EAST_CORNER, SOUTH_WEST_CORNER, WEST_1; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/Target', 270, Ljava_lang_Enum_2_classLit, values_43, valueOf_37); +function $clinit_PortSideAssigner$Target$Map(){ + $clinit_PortSideAssigner$Target$Map = emptyMethod; + $MAP_25 = createValueOfMap(($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]))); +} + +var $MAP_25; +function PortSideAssigner$lambda$1$Type(){ +} + +defineClass(1725, 1, {}, PortSideAssigner$lambda$1$Type); +_.apply_0 = function apply_124(arg0){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slPorts, 16)), new PortSideAssigner$lambda$8$Type); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$1$Type', 1725); +function PortSideAssigner$lambda$2$Type(){ +} + +defineClass(1726, 1, {}, PortSideAssigner$lambda$2$Type); +_.apply_0 = function apply_125(arg0){ + return castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$2$Type', 1726); +function PortSideAssigner$lambda$3$Type(){ +} + +defineClass(1727, 1, $intern_19, PortSideAssigner$lambda$3$Type); +_.accept = function accept_109(arg0){ + $setSide(castTo(arg0, 11), ($clinit_PortSide() , NORTH_3)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$3$Type', 1727); +function PortSideAssigner$lambda$4$Type(){ +} + +defineClass(1728, 1, {}, PortSideAssigner$lambda$4$Type); +_.apply_0 = function apply_126(arg0){ + return castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$4$Type', 1728); +function PortSideAssigner$lambda$5$Type(finalNewPortSide_0){ + this.finalNewPortSide_0 = finalNewPortSide_0; +} + +defineClass(1729, 1, $intern_19, PortSideAssigner$lambda$5$Type); +_.accept = function accept_110(arg0){ + lambda$5_2(this.finalNewPortSide_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$5$Type', 1729); +function PortSideAssigner$lambda$6$Type(){ +} + +defineClass(1730, 1, $intern_88, PortSideAssigner$lambda$6$Type); +_.compare_1 = function compare_53(arg0, arg1){ + return lambda$6_0(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_134(other){ + return this === other; +} +; +_.reversed = function reversed_45(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$6$Type', 1730); +function PortSideAssigner$lambda$7$Type(){ +} + +defineClass(1731, 1, $intern_88, PortSideAssigner$lambda$7$Type); +_.compare_1 = function compare_54(arg0, arg1){ + return lambda$7_2(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_135(other){ + return this === other; +} +; +_.reversed = function reversed_46(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$7$Type', 1731); +function PortSideAssigner$lambda$8$Type(){ +} + +defineClass(805, 1, $intern_39, PortSideAssigner$lambda$8$Type); +_.test_0 = function test_78(arg0){ + return castTo(arg0, 113).isHidden; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$8$Type', 805); +defineClass(2009, 1, {}); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_AbstractSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'AbstractSelfLoopRouter', 2009); +function $assignOneSidedSequencedSideAndAlignment(slLoops, portSide){ + var id_0, lPort, lPort$iterator, leftLoopAlignmentReference, leftSlLoop, leftSlLoopIdx, rightLoopAlignmentReference, rightSlLoop, rightSlLoopIdx; + id_0 = 0; + for (lPort$iterator = new ArrayList$1((checkCriticalElementIndex(0, slLoops.array.length) , castTo(slLoops.array[0], 101)).slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_7(lPort$iterator), 11); + lPort.id_0 = id_0++; + } + portSide == ($clinit_PortSide() , NORTH_3)?$sort(slLoops, new LabelPlacer$lambda$0$Type_0):$sort(slLoops, new LabelPlacer$lambda$1$Type_0); + leftSlLoopIdx = 0; + rightSlLoopIdx = slLoops.array.length - 1; + while (leftSlLoopIdx < rightSlLoopIdx) { + leftSlLoop = (checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)); + rightSlLoop = (checkCriticalElementIndex(rightSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[rightSlLoopIdx], 101)); + leftLoopAlignmentReference = portSide == NORTH_3?leftSlLoop.rightmostPort:leftSlLoop.leftmostPort; + rightLoopAlignmentReference = portSide == NORTH_3?rightSlLoop.leftmostPort:rightSlLoop.rightmostPort; + $assignSideAndAlignment(leftSlLoop, portSide, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), leftLoopAlignmentReference); + $assignSideAndAlignment(rightSlLoop, portSide, LEFT_1, rightLoopAlignmentReference); + ++leftSlLoopIdx; + --rightSlLoopIdx; + } + leftSlLoopIdx == rightSlLoopIdx && $assignSideAndAlignment((checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)), portSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); +} + +function $assignOneSidedSimpleSideAndAlignment(slLoop, loopSide){ + var topmostPort; + switch (loopSide.ordinal) { + case 2: + case 4: + topmostPort = slLoop.leftmostPort; + slLoop.rightmostPort.lPort.pos.y_0 < topmostPort.lPort.pos.y_0 && (topmostPort = slLoop.rightmostPort); + $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , TOP_0), topmostPort); + break; + case 1: + case 3: + $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + } +} + +function $assignSideAndAlignment(slLoop, side, alignment, alignmentReference){ + var slLabels; + slLabels = slLoop.slLabels; + slLabels.side = side; + slLabels.alignment = alignment; + slLabels.alignmentReferenceSLPort = alignmentReference; +} + +function $assignSideAndAlignment_0(slHolder){ + var loopSide, northernOneSidedSLLoops, occupiedSides, orderingStrategy, slLabels, slLoop, slLoop$iterator, southernOneSidedSLLoops, leftmostPortSide, rightmostPortSide, leftmostPortSide_0, rightmostPortSide_0; + northernOneSidedSLLoops = null; + southernOneSidedSLLoops = null; + orderingStrategy = castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376); + if (orderingStrategy == ($clinit_SelfLoopOrderingStrategy() , SEQUENCED)) { + northernOneSidedSLLoops = new ArrayList; + southernOneSidedSLLoops = new ArrayList; + } + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slLabels = slLoop.slLabels; + if (!slLabels) { + continue; + } + switch (slLoop.selfLoopType.ordinal) { + case 0: + loopSide = castTo($next_8(new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides)), 61); + orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , NORTH_3)?(northernOneSidedSLLoops.array[northernOneSidedSLLoops.array.length] = slLoop , true):orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , SOUTH_2)?(southernOneSidedSLLoops.array[southernOneSidedSLLoops.array.length] = slLoop , true):$assignOneSidedSimpleSideAndAlignment(slLoop, loopSide); + break; + case 1: + leftmostPortSide = slLoop.leftmostPort.lPort.side; + rightmostPortSide = slLoop.rightmostPort.lPort.side; + leftmostPortSide == ($clinit_PortSide() , NORTH_3)?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):rightmostPortSide == NORTH_3?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):leftmostPortSide == SOUTH_2?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.leftmostPort):rightmostPortSide == SOUTH_2 && $assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.rightmostPort); + break; + case 2: + case 3: + occupiedSides = slLoop.occupiedPortSides; + $containsEnum(occupiedSides, ($clinit_PortSide() , NORTH_3))?$containsEnum(occupiedSides, SOUTH_2)?$containsEnum(occupiedSides, WEST_2)?$containsEnum(occupiedSides, EAST_2) || $assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + break; + case 4: + leftmostPortSide_0 = slLoop.leftmostPort.lPort.side; + rightmostPortSide_0 = slLoop.leftmostPort.lPort.side; + leftmostPortSide_0 == ($clinit_PortSide() , NORTH_3) || rightmostPortSide_0 == NORTH_3?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + } + } + if (northernOneSidedSLLoops) { + northernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(northernOneSidedSLLoops, ($clinit_PortSide() , NORTH_3)); + southernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(southernOneSidedSLLoops, ($clinit_PortSide() , SOUTH_2)); + } +} + +function $computeCoordinates(slLoop){ + var alignRef, pos, size_0, slLabels; + slLabels = slLoop.slLabels; + alignRef = slLabels.alignmentReferenceSLPort; + size_0 = slLabels.size_0; + pos = slLabels.position; + switch (slLabels.alignment.ordinal) { + case 0: + pos.x_0 = (slLoop.slHolder.lNode.size_0.x_0 - size_0.x_0) / 2; + break; + case 1: + pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0; + break; + case 2: + pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0 - size_0.x_0; + break; + case 3: + pos.y_0 = alignRef.lPort.pos.y_0 + alignRef.lPort.anchor.y_0; + } +} + +function $placeLabels_1(slHolder){ + var slLoop, slLoop$iterator; + $assignSideAndAlignment_0(slHolder); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + !!slLoop.slLabels && $computeCoordinates(slLoop); + } +} + +function lambda$0_25(slLoop1_0, slLoop2_1){ + return compare_5(slLoop1_0.leftmostPort.lPort.id_0, slLoop2_1.leftmostPort.lPort.id_0); +} + +function lambda$1_14(slLoop1_0, slLoop2_1){ + return compare_5(slLoop2_1.leftmostPort.lPort.id_0, slLoop1_0.leftmostPort.lPort.id_0); +} + +function LabelPlacer$lambda$0$Type_0(){ +} + +defineClass(1750, 1, $intern_88, LabelPlacer$lambda$0$Type_0); +_.compare_1 = function compare_55(arg0, arg1){ + return lambda$0_25(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_136(other){ + return this === other; +} +; +_.reversed = function reversed_47(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$0$Type', 1750); +function LabelPlacer$lambda$1$Type_0(){ +} + +defineClass(1751, 1, $intern_88, LabelPlacer$lambda$1$Type_0); +_.compare_1 = function compare_56(arg0, arg1){ + return lambda$1_14(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_137(other){ + return this === other; +} +; +_.reversed = function reversed_48(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$1$Type', 1751); +function $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints){ + var currPortSide, currPortSideComponent, lSourcePort, lTargetPort, nextPortSide, nextPortSideComponent, slLoop; + lSourcePort = slEdge.slSource.lPort; + lTargetPort = slEdge.slTarget.lPort; + if (lSourcePort.side == lTargetPort.side) { + return; + } + slLoop = slEdge.slHyperLoop; + currPortSide = lSourcePort.side; + nextPortSide = null; + while (currPortSide != lTargetPort.side) { + nextPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); + currPortSideComponent = $getBaseVector(currPortSide, slLoop.routingSlot[currPortSide.ordinal], routingSlotPositions); + nextPortSideComponent = $getBaseVector(nextPortSide, slLoop.routingSlot[nextPortSide.ordinal], routingSlotPositions); + $add_7(bendPoints, $add_19(currPortSideComponent, nextPortSideComponent)); + currPortSide = nextPortSide; + } +} + +function $addOuterBendPoint(slEdge, slPort, routingSlotPositions, bendPoints){ + var anchor, lPort, portSide, result, slLoop; + slLoop = slEdge.slHyperLoop; + lPort = slPort.lPort; + portSide = lPort.side; + result = $getBaseVector(portSide, slLoop.routingSlot[portSide.ordinal], routingSlotPositions); + anchor = $add_19($clone_0(lPort.pos), lPort.anchor); + switch (lPort.side.ordinal) { + case 1: + case 3: + result.x_0 += anchor.x_0; + break; + case 2: + case 4: + result.y_0 += anchor.y_0; + } + $addNode_0(bendPoints, result, bendPoints.tail.prev, bendPoints.tail); +} + +function $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance){ + var lMargins, lNode; + lNode = slHolder.lNode; + lMargins = lNode.margin; + switch (portSide.ordinal) { + case 1: + return -lMargins.top_0 - nodeSelfLoopDistance; + case 2: + return lNode.size_0.x_0 + lMargins.right + nodeSelfLoopDistance; + case 3: + return lNode.size_0.y_0 + lMargins.bottom + nodeSelfLoopDistance; + case 4: + return -lMargins.left - nodeSelfLoopDistance; + default:return -1; + } +} + +function $computeEdgeRoutingDirection(slEdge){ + var slLoop, sourceLPort, sourcePortSide, targetLPort, targetPortSide; + sourceLPort = slEdge.slSource.lPort; + sourcePortSide = sourceLPort.side; + targetLPort = slEdge.slTarget.lPort; + targetPortSide = targetLPort.side; + if (sourcePortSide == targetPortSide) { + return sourceLPort.id_0 < targetLPort.id_0?0:1; + } + else if ($right(sourcePortSide) == targetPortSide) { + return 0; + } + else if ($left(sourcePortSide) == targetPortSide) { + return 1; + } + else { + slLoop = slEdge.slHyperLoop; + return $containsEnum(slLoop.occupiedPortSides, $right(sourcePortSide))?0:1; + } +} + +function $computePositions(positions, slHolder, portSide, edgeEdgeDistance, edgeLabelDistance, nodeSelfLoopDistance){ + var currPos, factor, largestLabelSize, sidePositions, slot; + currPos = $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance); + factor = portSide == ($clinit_PortSide() , NORTH_3) || portSide == WEST_2?-1:1; + sidePositions = positions[portSide.ordinal]; + for (slot = 0; slot < sidePositions.length; slot++) { + largestLabelSize = sidePositions[slot]; + largestLabelSize > 0 && (largestLabelSize += edgeLabelDistance); + sidePositions[slot] = currPos; + currPos += factor * (largestLabelSize + edgeEdgeDistance); + } +} + +function $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance){ + var portSide, portSide$array, portSide$index, portSide$max, positions; + positions = initUnidimensionalArray(D_classLit, $intern_16, 104, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 0, 2); + for (portSide$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , portSide$index = 0 , portSide$max = portSide$array.length; portSide$index < portSide$max; ++portSide$index) { + portSide = portSide$array[portSide$index]; + positions[portSide.ordinal] = initUnidimensionalArray(D_classLit, $intern_65, 25, slHolder.routingSlotCount[portSide.ordinal], 15, 1); + } + $initializeWithMaxLabelHeight(positions, slHolder, NORTH_3); + $initializeWithMaxLabelHeight(positions, slHolder, SOUTH_2); + $computePositions(positions, slHolder, NORTH_3, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, EAST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, SOUTH_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, WEST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + return positions; +} + +function $getBaseVector(portSide, routingSlot, routingSlotPositions){ + var position; + position = routingSlotPositions[portSide.ordinal][routingSlot]; + switch (portSide.ordinal) { + case 1: + case 3: + return new KVector_1(0, position); + case 2: + case 4: + return new KVector_1(position, 0); + default:return null; + } +} + +function $initializeWithMaxLabelHeight(positions, slHolder, portSide){ + var routingSlot, sidePositions, slLabels, slLoop, slLoop$iterator; + sidePositions = positions[portSide.ordinal]; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slLabels = slLoop.slLabels; + if (!!slLabels && slLabels.side == portSide) { + routingSlot = slLoop.routingSlot[portSide.ordinal]; + sidePositions[routingSlot] = $wnd.Math.max(sidePositions[routingSlot], slLabels.size_0.y_0); + } + } +} + +function $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance){ + var labelPosition, labelSide; + labelSide = slLabels.side; + labelPosition = routingSlotPositions[labelSide.ordinal][slLoop.routingSlot[labelSide.ordinal]]; + switch (labelSide.ordinal) { + case 1: + labelPosition -= edgeLabelDistance + slLabels.size_0.y_0; + slLabels.position.y_0 = labelPosition; + break; + case 3: + labelPosition += edgeLabelDistance; + slLabels.position.y_0 = labelPosition; + break; + case 4: + labelPosition -= edgeLabelDistance + slLabels.size_0.x_0; + slLabels.position.x_0 = labelPosition; + break; + case 2: + labelPosition += edgeLabelDistance; + slLabels.position.x_0 = labelPosition; + } +} + +function $routeSelfLoops(this$static, slHolder){ + var bendPoints, edgeEdgeDistance, edgeLabelDistance, lEdge, lNode, newNodeMargins, nodeMargins, nodeSLDistance, nodeSize, routingDirection, routingSlotPositions, slEdge, slEdge$iterator, slLabels, slLoop, slLoop$iterator, bendPoints_0, pos; + lNode = slHolder.lNode; + nodeSize = lNode.size_0; + nodeMargins = lNode.margin; + edgeEdgeDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_EDGE_LABEL_0))); + nodeSLDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_NODE_SELF_LOOP))); + newNodeMargins = new LMargin; + $set_7(newNodeMargins, nodeMargins.top_0, nodeMargins.right, nodeMargins.bottom, nodeMargins.left); + routingSlotPositions = $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + for (slEdge$iterator = slLoop.slEdges.map_0.keySet_0().iterator_0(); slEdge$iterator.hasNext_0();) { + slEdge = castTo(slEdge$iterator.next_1(), 409); + lEdge = slEdge.lEdge; + routingDirection = $computeEdgeRoutingDirection(slEdge); + bendPoints = (bendPoints_0 = new KVectorChain , $addOuterBendPoint(slEdge, slEdge.slSource, routingSlotPositions, bendPoints_0) , $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints_0) , $addOuterBendPoint(slEdge, slEdge.slTarget, routingSlotPositions, bendPoints_0) , bendPoints_0); + bendPoints = this$static.modifyBendPoints(slEdge, routingDirection, bendPoints); + $reset_0(lEdge.bendPoints); + $addAll(lEdge.bendPoints, bendPoints); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(bendPoints, 16)), new OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize, newNodeMargins)); + } + slLabels = slLoop.slLabels; + if (slLabels) { + $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance); + pos = new KVector_2(slLabels.position); + $updateNewNodeMargins(nodeSize, newNodeMargins, pos); + $add_19(pos, slLabels.size_0); + $updateNewNodeMargins(nodeSize, newNodeMargins, pos); + } + } + $set_7(nodeMargins, newNodeMargins.top_0, newNodeMargins.right, newNodeMargins.bottom, newNodeMargins.left); +} + +function $updateNewNodeMargins(nodeSize, newNodeMargins, bendPoint){ + newNodeMargins.left = $wnd.Math.max(newNodeMargins.left, -bendPoint.x_0); + newNodeMargins.right = $wnd.Math.max(newNodeMargins.right, bendPoint.x_0 - nodeSize.x_0); + newNodeMargins.top_0 = $wnd.Math.max(newNodeMargins.top_0, -bendPoint.y_0); + newNodeMargins.bottom = $wnd.Math.max(newNodeMargins.bottom, bendPoint.y_0 - nodeSize.y_0); +} + +function OrthogonalSelfLoopRouter(){ +} + +defineClass(1793, 2009, {}, OrthogonalSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints(slEdge, routingDirection, bendPoints){ + return bendPoints; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter', 1793); +function OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize_1, newNodeMargins_2){ + this.nodeSize_1 = nodeSize_1; + this.newNodeMargins_2 = newNodeMargins_2; +} + +defineClass(1795, 1, $intern_19, OrthogonalSelfLoopRouter$lambda$0$Type); +_.accept = function accept_111(arg0){ + $updateNewNodeMargins(this.nodeSize_1, this.newNodeMargins_2, castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter/lambda$0$Type', 1795); +function $cutCorners(bendPoints){ + var bpIterator, corner, effectiveDistance, next, offset1, offset2, previous, result; + result = new KVectorChain; + bpIterator = $listIterator_2(bendPoints, 0); + previous = null; + corner = castTo($next_10(bpIterator), 8); + next = castTo($next_10(bpIterator), 8); + while (bpIterator.currentNode != bpIterator.this$01.tail) { + previous = corner; + corner = next; + next = castTo($next_10(bpIterator), 8); + offset1 = $nearZeroToZero($sub_0(new KVector_1(previous.x_0, previous.y_0), corner)); + offset2 = $nearZeroToZero($sub_0(new KVector_1(next.x_0, next.y_0), corner)); + effectiveDistance = 10; + effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset1.x_0 + offset1.y_0) / 2); + effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset2.x_0 + offset2.y_0) / 2); + offset1.x_0 = signum(offset1.x_0) * effectiveDistance; + offset1.y_0 = signum(offset1.y_0) * effectiveDistance; + offset2.x_0 = signum(offset2.x_0) * effectiveDistance; + offset2.y_0 = signum(offset2.y_0) * effectiveDistance; + $add_7(result, $add_19(offset1, corner)); + $add_7(result, $add_19(offset2, corner)); + } + return result; +} + +function $nearZeroToZero(vector){ + vector.x_0 >= -0.01 && vector.x_0 <= $intern_94 && (vector.x_0 = 0); + vector.y_0 >= -0.01 && vector.y_0 <= $intern_94 && (vector.y_0 = 0); + return vector; +} + +function PolylineSelfLoopRouter(){ +} + +defineClass(1794, 1793, {}, PolylineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_0(slEdge, routingDirection, bendPoints){ + var lSourcePort, lTargetPort; + lSourcePort = slEdge.slSource.lPort; + $add_0(bendPoints, 0, $add_19($clone_0(lSourcePort.pos), lSourcePort.anchor)); + lTargetPort = slEdge.slTarget.lPort; + $add_7(bendPoints, $add_19($clone_0(lTargetPort.pos), lTargetPort.anchor)); + return $cutCorners(bendPoints); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_PolylineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'PolylineSelfLoopRouter', 1794); +function $clinit_RoutingDirector(){ + $clinit_RoutingDirector = emptyMethod; + COMPARE_BY_ID = new RoutingDirector$lambda$0$Type; +} + +function $assignPortIds(lPorts){ + var i; + for (i = 0; i < lPorts.array.length; i++) { + (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)).id_0 = i; + } +} + +function $computeEdgePenalty(this$static, slHolder, leftmostPort, rightmostPort){ + var leftOfRightmostPortId, leftmostPortId, portCount, rightmostPortId; + this$static.portPenalties == null && $computePenalties(this$static, slHolder); + portCount = slHolder.lNode.ports.array.length; + leftmostPortId = leftmostPort.lPort.id_0; + rightmostPortId = rightmostPort.lPort.id_0; + leftOfRightmostPortId = rightmostPortId - 1; + leftOfRightmostPortId < 0 && (leftOfRightmostPortId = portCount - 1); + return leftmostPortId <= leftOfRightmostPortId?this$static.portPenalties[leftOfRightmostPortId] - this$static.portPenalties[leftmostPortId]:this$static.portPenalties[portCount - 1] - this$static.portPenalties[leftmostPortId] + this$static.portPenalties[leftOfRightmostPortId]; +} + +function $computeMissingPortSide(slLoop){ + var side, side$array, side$index, side$max, sides; + sides = $keySet(slLoop.slPortsBySide); + for (side$array = ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { + side = side$array[side$index]; + if (side != UNDEFINED_5 && !sides.contains(side)) { + return side; + } + } + return null; +} + +function $computeOccupiedPortSides(slLoop){ + var currPortSide, targetSide; + currPortSide = slLoop.leftmostPort.lPort.side; + targetSide = slLoop.rightmostPort.lPort.side; + while (currPortSide != targetSide) { + $add_5(slLoop.occupiedPortSides, currPortSide); + currPortSide = $right(currPortSide); + } + $add_5(slLoop.occupiedPortSides, currPortSide); +} + +function $computePenalties(this$static, slHolder){ + var currPort, i, penaltySum, ports; + ports = slHolder.lNode.ports; + this$static.portPenalties = initUnidimensionalArray(I_classLit, $intern_48, 25, ports.array.length, 15, 1); + penaltySum = 0; + for (i = 0; i < ports.array.length; i++) { + currPort = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); + currPort.incomingEdges.array.length == 0 && currPort.outgoingEdges.array.length == 0?(penaltySum += 1):(penaltySum += 3); + this$static.portPenalties[i] = penaltySum; + } +} + +function $determineFourSideLoopRoutes(this$static, slLoop){ + var currLeftPort, currPenalty, currRightPort, rightPortIndex, slHolder, sortedSLPorts, worstLeftPort, worstPenalty, worstRightPort; + sortedSLPorts = slLoop.slPorts; + slHolder = slLoop.slHolder; + worstLeftPort = castTo($get_11(sortedSLPorts, sortedSLPorts.array.length - 1), 113); + worstRightPort = (checkCriticalElementIndex(0, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[0], 113)); + worstPenalty = $computeEdgePenalty(this$static, slHolder, worstLeftPort, worstRightPort); + for (rightPortIndex = 1; rightPortIndex < sortedSLPorts.array.length; rightPortIndex++) { + currLeftPort = (checkCriticalElementIndex(rightPortIndex - 1, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex - 1], 113)); + currRightPort = (checkCriticalElementIndex(rightPortIndex, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex], 113)); + currPenalty = $computeEdgePenalty(this$static, slHolder, currLeftPort, currRightPort); + if (currPenalty > worstPenalty) { + worstLeftPort = currLeftPort; + worstRightPort = currRightPort; + worstPenalty = currPenalty; + } + } + slLoop.leftmostPort = worstRightPort; + slLoop.rightmostPort = worstLeftPort; +} + +function $determineLoopRoutes(this$static, slHolder){ + var side, sides, slLoop, slLoop$iterator; + $assignPortIds(slHolder.lNode.ports); + $forEach_3($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingDirector$lambda$1$Type), new RoutingDirector$lambda$2$Type); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + switch (slLoop.selfLoopType.ordinal) { + case 0: + side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); + break; + case 1: + sides = sortedTwoSideLoopPortSides(slLoop); + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, sides[0]), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, sides[1]), 15).stream(), COMPARE_BY_ID)), 113)); + break; + case 2: + $determineTwoSideOpposingLoopRoutes(this$static, slLoop); + break; + case 3: + $determineThreeSideLoopRoutes(slLoop); + break; + case 4: + $determineFourSideLoopRoutes(this$static, slLoop); + } + $computeOccupiedPortSides(slLoop); + } + this$static.portPenalties = null; +} + +function $determineThreeSideLoopRoutes(slLoop){ + var leftmostSide, rightmostSide; + leftmostSide = null; + rightmostSide = null; + switch ($computeMissingPortSide(slLoop).ordinal) { + case 1: + leftmostSide = ($clinit_PortSide() , EAST_2); + rightmostSide = WEST_2; + break; + case 2: + leftmostSide = ($clinit_PortSide() , SOUTH_2); + rightmostSide = NORTH_3; + break; + case 3: + leftmostSide = ($clinit_PortSide() , WEST_2); + rightmostSide = EAST_2; + break; + case 4: + leftmostSide = ($clinit_PortSide() , NORTH_3); + rightmostSide = SOUTH_2; + } + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, leftmostSide), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, rightmostSide), 15).stream(), COMPARE_BY_ID)), 113)); +} + +function $determineTwoSideOpposingLoopRoutes(this$static, slLoop){ + var option1LeftmostPort, option1Penalty, option1RightmostPort, option2LeftmostPort, option2Penalty, option2RightmostPort, sides, slHolder; + sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); + slHolder = slLoop.slHolder; + option1LeftmostPort = $lowestPortOnSide(slLoop, sides[0]); + option1RightmostPort = $highestPortOnSide(slLoop, sides[1]); + option1Penalty = $computeEdgePenalty(this$static, slHolder, option1LeftmostPort, option1RightmostPort); + option2LeftmostPort = $lowestPortOnSide(slLoop, sides[1]); + option2RightmostPort = $highestPortOnSide(slLoop, sides[0]); + option2Penalty = $computeEdgePenalty(this$static, slHolder, option2LeftmostPort, option2RightmostPort); + if (option1Penalty <= option2Penalty) { + slLoop.leftmostPort = option1LeftmostPort; + slLoop.rightmostPort = option1RightmostPort; + } + else { + slLoop.leftmostPort = option2LeftmostPort; + slLoop.rightmostPort = option2RightmostPort; + } +} + +function $highestPortOnSide(slLoop, side){ + return castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); +} + +function $lowestPortOnSide(slLoop, side){ + return castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); +} + +function RoutingDirector(){ + $clinit_RoutingDirector(); +} + +function lambda$0_26(slPort1_0, slPort2_1){ + $clinit_RoutingDirector(); + return compare_5(slPort1_0.lPort.id_0, slPort2_1.lPort.id_0); +} + +defineClass(1746, 1, {}, RoutingDirector); +_.portPenalties = null; +var COMPARE_BY_ID; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector', 1746); +function RoutingDirector$lambda$0$Type(){ +} + +defineClass(1747, 1, $intern_88, RoutingDirector$lambda$0$Type); +_.compare_1 = function compare_57(arg0, arg1){ + return lambda$0_26(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_138(other){ + return this === other; +} +; +_.reversed = function reversed_49(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$0$Type', 1747); +function RoutingDirector$lambda$1$Type(){ +} + +defineClass(1748, 1, {}, RoutingDirector$lambda$1$Type); +_.apply_0 = function apply_127(arg0){ + return $clinit_RoutingDirector() , castTo(arg0, 101).slPorts; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$1$Type', 1748); +function RoutingDirector$lambda$2$Type(){ +} + +defineClass(1749, 1, $intern_19, RoutingDirector$lambda$2$Type); +_.accept = function accept_112(arg0){ + $clinit_RoutingDirector(); + castTo(arg0, 15).sort_0(COMPARE_BY_ID); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$2$Type', 1749); +function $assignRawRoutingSlotsToLoops(this$static, slHolder){ + var portSide, portSide$iterator, slLoop, slLoop$iterator, slot; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slot = castTo($get_10(this$static.slLoopToSegmentMap, slLoop), 112).routingSlot; + for (portSide$iterator = new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides); portSide$iterator.i < portSide$iterator.this$11.all.length;) { + portSide = castTo($next_8(portSide$iterator), 61); + $setRoutingSlot(slLoop, portSide, slot); + } + } +} + +function $assignRawRoutingSlotsToSegments(this$static){ + var inDependency, inDependency$iterator, nextRoutingSlot, segment, segment$iterator, sinks, sourceSegment; + sinks = new LinkedList; + for (segment$iterator = new ArrayList$1(this$static.hyperEdgeSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 112); + $setInWeight(segment, segment.incomingSegmentDependencies.array.length); + $setOutWeight(segment, segment.outgoingSegmentDependencies.array.length); + if (segment.outDepWeight == 0) { + segment.routingSlot = 0; + $addNode_0(sinks, segment, sinks.tail.prev, sinks.tail); + } + } + while (sinks.size_0 != 0) { + segment = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 112); + nextRoutingSlot = segment.routingSlot + 1; + for (inDependency$iterator = new ArrayList$1(segment.incomingSegmentDependencies); inDependency$iterator.i < inDependency$iterator.this$01.array.length;) { + inDependency = castTo($next_7(inDependency$iterator), 129); + sourceSegment = inDependency.source; + $setRoutingSlot_0(sourceSegment, $wnd.Math.max(sourceSegment.routingSlot, nextRoutingSlot)); + $setOutWeight(sourceSegment, sourceSegment.outDepWeight - 1); + sourceSegment.outDepWeight == 0 && ($addNode_0(sinks, sourceSegment, sinks.tail.prev, sinks.tail) , true); + } + } +} + +function $assignRoutingSlots(this$static, slHolder){ + var labelCrossingMatrix, nextFreeRoutingSlotAtPort; + labelCrossingMatrix = $computeLabelCrossingMatrix(slHolder); + $createCrossingGraph(this$static, slHolder, labelCrossingMatrix); + breakNonCriticalCycles(this$static.hyperEdgeSegments, castTo($getProperty($getGraph(slHolder.lNode), ($clinit_InternalProperties_1() , RANDOM_0)), 230)); + $assignRawRoutingSlotsToSegments(this$static); + $assignRawRoutingSlotsToLoops(this$static, slHolder); + nextFreeRoutingSlotAtPort = initUnidimensionalArray(I_classLit, $intern_48, 25, slHolder.lNode.ports.array.length, 15, 1); + $shiftTowardsNodeOnSide(this$static, slHolder, ($clinit_PortSide() , NORTH_3), nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, EAST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, SOUTH_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, WEST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + this$static.hyperEdgeSegments = null; + this$static.slLoopToSegmentMap = null; + this$static.slLoopActivityOverPorts = null; +} + +function $computeLabelCrossingMatrix(slHolder){ + var crossingMatrix, labelID, overlap, sl1Idx, sl2Idx, slLoop, slLoop$iterator, slLoop1, slLoop2, slLoops; + labelID = 0; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + !!slLoop.slLabels && (slLoop.slLabels.id_0 = labelID++); + } + crossingMatrix = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [labelID, labelID], 2); + slLoops = slHolder.slHyperLoops; + for (sl1Idx = 0; sl1Idx < slLoops.array.length; sl1Idx++) { + slLoop1 = (checkCriticalElementIndex(sl1Idx, slLoops.array.length) , castTo(slLoops.array[sl1Idx], 101)); + if (slLoop1.slLabels) { + for (sl2Idx = sl1Idx + 1; sl2Idx < slLoops.array.length; sl2Idx++) { + slLoop2 = (checkCriticalElementIndex(sl2Idx, slLoops.array.length) , castTo(slLoops.array[sl2Idx], 101)); + if (slLoop2.slLabels) { + overlap = $labelsOverlap(slLoop1, slLoop2); + crossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0] = overlap; + crossingMatrix[slLoop2.slLabels.id_0][slLoop1.slLabels.id_0] = overlap; + } + } + } + } + return crossingMatrix; +} + +function $computeLoopActivity(this$static, slHolder){ + var lPortIdx, lPortTargetIdx, lPorts, loopActivity, slLoop, slLoop$iterator, slLoops; + slLoops = slHolder.slHyperLoops; + lPorts = slHolder.lNode.ports; + for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + loopActivity = initUnidimensionalArray(Z_classLit, $intern_91, 25, lPorts.array.length, 16, 1); + $put_6(this$static.slLoopActivityOverPorts, slLoop, loopActivity); + lPortIdx = slLoop.leftmostPort.lPort.id_0 - 1; + lPortTargetIdx = slLoop.rightmostPort.lPort.id_0; + while (lPortIdx != lPortTargetIdx) { + lPortIdx = (lPortIdx + 1) % lPorts.array.length; + loopActivity[lPortIdx] = true; + } + } +} + +function $countCrossings_0(this$static, slUpperLoop, slLowerLoop){ + var crossings, lowerLoopActivity, slPort, slPort$iterator; + lowerLoopActivity = castTo($get_10(this$static.slLoopActivityOverPorts, slLowerLoop), 177); + crossings = 0; + for (slPort$iterator = new ArrayList$1(slUpperLoop.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_7(slPort$iterator), 113); + lowerLoopActivity[slPort.lPort.id_0] && ++crossings; + } + return crossings; +} + +function $createCrossingGraph(this$static, slHolder, labelCrossingMatrix){ + var firstIdx, secondIdx, segment, slLoop, slLoop$iterator, slLoop1, slLoops; + slLoops = slHolder.slHyperLoops; + this$static.hyperEdgeSegments = new ArrayList_0(slLoops.array.length); + this$static.slLoopToSegmentMap = new HashMap; + for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + segment = new HyperEdgeSegment(null); + $add_3(this$static.hyperEdgeSegments, segment); + $put_6(this$static.slLoopToSegmentMap, slLoop, segment); + } + this$static.slLoopActivityOverPorts = new HashMap; + $computeLoopActivity(this$static, slHolder); + for (firstIdx = 0; firstIdx < slLoops.array.length - 1; firstIdx++) { + slLoop1 = castTo($get_11(slHolder.slHyperLoops, firstIdx), 101); + for (secondIdx = firstIdx + 1; secondIdx < slLoops.array.length; secondIdx++) { + $createDependencies(this$static, slLoop1, castTo($get_11(slHolder.slHyperLoops, secondIdx), 101), labelCrossingMatrix); + } + } +} + +function $createDependencies(this$static, slLoop1, slLoop2, labelCrossingMatrix){ + var firstAboveSecondCrossings, secondAboveFirstCrossings, segment1, segment2; + firstAboveSecondCrossings = $countCrossings_0(this$static, slLoop1, slLoop2); + secondAboveFirstCrossings = $countCrossings_0(this$static, slLoop2, slLoop1); + segment1 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop1), 112); + segment2 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop2), 112); + if (firstAboveSecondCrossings < secondAboveFirstCrossings) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, secondAboveFirstCrossings - firstAboveSecondCrossings); + } + else if (secondAboveFirstCrossings < firstAboveSecondCrossings) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment2, segment1, firstAboveSecondCrossings - secondAboveFirstCrossings); + } + else if (firstAboveSecondCrossings != 0 || !(!slLoop1.slLabels || !slLoop2.slLabels) && labelCrossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0]) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, 0); + new HyperEdgeSegmentDependency(REGULAR, segment2, segment1, 0); + } +} + +function $labelsOverlap(slLoop1, slLoop2){ + var end1, end2, slLabels1, slLabels2, start1, start2; + slLabels1 = slLoop1.slLabels; + slLabels2 = slLoop2.slLabels; + if (!slLabels1 || !slLabels2) { + return false; + } + if (slLabels1.side != slLabels2.side || slLabels1.side == ($clinit_PortSide() , EAST_2) || slLabels1.side == ($clinit_PortSide() , WEST_2)) { + return false; + } + start1 = slLabels1.position.x_0; + end1 = start1 + slLabels1.size_0.x_0; + start2 = slLabels2.position.x_0; + end2 = start2 + slLabels2.size_0.x_0; + return start1 <= end2 && end1 >= start2; +} + +function $shiftTowardsNodeOnSide(this$static, slHolder, side, nextFreeRoutingSlotAtPort, labelCrossingMatrix){ + var activeAtPort, i, lPort, lPort$iterator, lowestAvailableSlot, maxLPortIndex, minLPortIndex, otherLabelIdx, ourLabelIdx, portIndex, portIndex0, slLoop, slLoop$iterator, slLoops, slotAssignedToLabel, slotsWithLabelConflicts; + slLoops = castTo($collect_1($sorted_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingSlotAssigner$lambda$0$Type(side)), new RoutingSlotAssigner$lambda$1$Type(side)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minLPortIndex = $intern_0; + maxLPortIndex = $intern_42; + for (lPort$iterator = new ArrayList$1(slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_7(lPort$iterator), 11); + if (lPort.side == side) { + minLPortIndex = $wnd.Math.min(minLPortIndex, lPort.id_0); + maxLPortIndex = $wnd.Math.max(maxLPortIndex, lPort.id_0); + } + } + if (minLPortIndex == $intern_0) { + for (i = 0; i < slLoops.size_1(); i++) { + $setRoutingSlot(castTo(slLoops.get_0(i), 101), side, i); + } + } + else { + slotAssignedToLabel = initUnidimensionalArray(I_classLit, $intern_48, 25, labelCrossingMatrix.length, 15, 1); + fill0_1(slotAssignedToLabel, slotAssignedToLabel.length); + for (slLoop$iterator = slLoops.iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + activeAtPort = castTo($get_10(this$static.slLoopActivityOverPorts, slLoop), 177); + lowestAvailableSlot = 0; + for (portIndex0 = minLPortIndex; portIndex0 <= maxLPortIndex; portIndex0++) { + activeAtPort[portIndex0] && (lowestAvailableSlot = $wnd.Math.max(lowestAvailableSlot, nextFreeRoutingSlotAtPort[portIndex0])); + } + if (slLoop.slLabels) { + ourLabelIdx = slLoop.slLabels.id_0; + slotsWithLabelConflicts = new HashSet; + for (otherLabelIdx = 0; otherLabelIdx < labelCrossingMatrix.length; otherLabelIdx++) { + labelCrossingMatrix[ourLabelIdx][otherLabelIdx] && $add_6(slotsWithLabelConflicts, valueOf_4(slotAssignedToLabel[otherLabelIdx])); + } + while ($contains_6(slotsWithLabelConflicts, valueOf_4(lowestAvailableSlot))) { + ++lowestAvailableSlot; + } + } + $setRoutingSlot(slLoop, side, lowestAvailableSlot); + for (portIndex = minLPortIndex; portIndex <= maxLPortIndex; portIndex++) { + activeAtPort[portIndex] && (nextFreeRoutingSlotAtPort[portIndex] = lowestAvailableSlot + 1); + } + !!slLoop.slLabels && (slotAssignedToLabel[slLoop.slLabels.id_0] = lowestAvailableSlot); + } + } +} + +function RoutingSlotAssigner(){ +} + +function lambda$0_27(side_0, slLoop_1){ + return $containsEnum(slLoop_1.occupiedPortSides, side_0); +} + +function lambda$1_15(side_0, sl1_1, sl2_2){ + return compare_5(sl1_1.routingSlot[side_0.ordinal], sl2_2.routingSlot[side_0.ordinal]); +} + +defineClass(1752, 1, {}, RoutingSlotAssigner); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner', 1752); +function RoutingSlotAssigner$lambda$0$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1753, 1, $intern_39, RoutingSlotAssigner$lambda$0$Type); +_.test_0 = function test_79(arg0){ + return lambda$0_27(this.side_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$0$Type', 1753); +function RoutingSlotAssigner$lambda$1$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1754, 1, $intern_88, RoutingSlotAssigner$lambda$1$Type); +_.compare_1 = function compare_58(arg0, arg1){ + return lambda$1_15(this.side_0, castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_139(other){ + return this === other; +} +; +_.reversed = function reversed_50(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$1$Type', 1754); +function $addSplineControlPoints(slEdge, routingDirection, orthoBendPoints, newBendPoints, edgeLabelDistance){ + var currPortSide, firstBP, midBP, offset, secondBP, secondBPIndex; + currPortSide = slEdge.slSource.lPort.side; + firstBP = castTo($get_7(orthoBendPoints, 0), 8); + for (secondBPIndex = 1; secondBPIndex < orthoBendPoints.size_0; secondBPIndex++) { + secondBP = castTo($get_7(orthoBendPoints, secondBPIndex), 8); + $addNode_0(newBendPoints, firstBP, newBendPoints.tail.prev, newBendPoints.tail); + midBP = $scale($add_19(new KVector_2(firstBP), secondBP), 0.5); + offset = $scale(new KVector_0(portSideToDirection(currPortSide)), edgeLabelDistance); + $add_19(midBP, offset); + $addNode_0(newBendPoints, midBP, newBendPoints.tail.prev, newBendPoints.tail); + firstBP = secondBP; + currPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); + } + $add_7(newBendPoints, (checkCriticalElement(orthoBendPoints.size_0 != 0) , castTo(orthoBendPoints.tail.prev.value_0, 8))); +} + +function SplineSelfLoopRouter(){ +} + +defineClass(1796, 1793, {}, SplineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_1(slEdge, routingDirection, bendPoints){ + var edgeLabelDistance, lPort, lPort0, splineBendPoints; + edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(slEdge.slHyperLoop.slHolder.lNode, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + splineBendPoints = new KVectorChain_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [(lPort0 = slEdge.slSource.lPort , $add_19(new KVector_2(lPort0.pos), lPort0.anchor))])); + $addSplineControlPoints(slEdge, routingDirection, bendPoints, splineBendPoints, edgeLabelDistance); + $add_7(splineBendPoints, (lPort = slEdge.slTarget.lPort , $add_19(new KVector_2(lPort.pos), lPort.anchor))); + return $getBezierCP(new NubSpline(splineBendPoints)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_SplineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'SplineSelfLoopRouter', 1796); +function $compare_15(this$static, n1, n2){ + var n1ModelOrder, n1ModelOrder0, n2ModelOrder, n2ModelOrder0, p1Node, p1SourcePort, p2Node, p2SourcePort, port, port$iterator, previousNode, previousNode$array, previousNode$index, previousNode$max; + if ($containsKey_3(this$static.biggerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, n2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, n2, new HashSet); + } + if (this$static.orderingStrategy == ($clinit_OrderingStrategy() , PREFER_EDGES) || !$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, ($clinit_InternalProperties_1() , MODEL_ORDER_0))) { + p1SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n1.ports, 16)), new ModelOrderNodeComparator$lambda$0$Type)), new ModelOrderNodeComparator$lambda$1$Type)), 11); + p2SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n2.ports, 16)), new ModelOrderNodeComparator$lambda$2$Type)), new ModelOrderNodeComparator$lambda$3$Type)), 11); + if (!!p1SourcePort && !!p2SourcePort) { + p1Node = p1SourcePort.owner; + p2Node = p2SourcePort.owner; + if (!!p1Node && p1Node == p2Node) { + for (port$iterator = new ArrayList$1(p1Node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (port == p1SourcePort) { + $updateBiggerAndSmallerAssociations(this$static, n2, n1); + return -1; + } + else if (port == p2SourcePort) { + $updateBiggerAndSmallerAssociations(this$static, n1, n2); + return 1; + } + } + return compare_5($getModelOrderFromConnectedEdges(this$static, n1), $getModelOrderFromConnectedEdges(this$static, n2)); + } + for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { + previousNode = previousNode$array[previousNode$index]; + if (previousNode == p1Node) { + $updateBiggerAndSmallerAssociations(this$static, n2, n1); + return -1; + } + else if (previousNode == p2Node) { + $updateBiggerAndSmallerAssociations(this$static, n1, n2); + return 1; + } + } + } + if (!$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, MODEL_ORDER_0)) { + n1ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n1); + n2ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n2); + n1ModelOrder0 > n2ModelOrder0?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); + return n1ModelOrder0 < n2ModelOrder0?-1:n1ModelOrder0 > n2ModelOrder0?1:0; + } + } + n1ModelOrder = castTo($getProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; + n2ModelOrder = castTo($getProperty(n2, MODEL_ORDER_0), 19).value_0; + n1ModelOrder > n2ModelOrder?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); + return n1ModelOrder < n2ModelOrder?-1:n1ModelOrder > n2ModelOrder?1:0; +} + +function $getModelOrderFromConnectedEdges(this$static, n){ + var edge, sourcePort; + sourcePort = castTo($orElse($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n.ports, 16)), new ModelOrderNodeComparator$lambda$4$Type))), 11); + if (sourcePort) { + edge = castTo($get_11(sourcePort.incomingEdges, 0), 17); + if (edge) { + return castTo($getProperty(edge, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; + } + } + return $returnValue(this$static.longEdgeNodeOrder); +} + +function $updateBiggerAndSmallerAssociations(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); + biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); + smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); + for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 10); + biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); + } + for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 10); + smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); + } +} + +function ModelOrderNodeComparator(thePreviousLayer, orderingStrategy, longEdgeOrderingStrategy){ + ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, thePreviousLayer.nodes.array.length, 0, 1); + $toArray_2(thePreviousLayer.nodes, this.previousLayer); +} + +function ModelOrderNodeComparator_0(orderingStrategy, longEdgeOrderingStrategy){ + this.biggerThan = new HashMap; + this.smallerThan = new HashMap; + this.longEdgeNodeOrder = ($clinit_LongEdgeOrderingStrategy() , EQUAL); + this.orderingStrategy = orderingStrategy; + this.longEdgeNodeOrder = longEdgeOrderingStrategy; +} + +function ModelOrderNodeComparator_1(previousLayer, orderingStrategy, longEdgeOrderingStrategy){ + ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); + this.previousLayer = previousLayer; +} + +defineClass(578, 1, $intern_88, ModelOrderNodeComparator, ModelOrderNodeComparator_1); +_.compare_1 = function compare_59(n1, n2){ + return $compare_15(this, castTo(n1, 10), castTo(n2, 10)); +} +; +_.equals_0 = function equals_140(other){ + return this === other; +} +; +_.reversed = function reversed_51(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator', 578); +function ModelOrderNodeComparator$lambda$0$Type(){ +} + +defineClass(1755, 1, $intern_39, ModelOrderNodeComparator$lambda$0$Type); +_.test_0 = function test_80(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$0$Type', 1755); +function ModelOrderNodeComparator$lambda$1$Type(){ +} + +defineClass(1756, 1, {}, ModelOrderNodeComparator$lambda$1$Type); +_.apply_0 = function apply_128(arg0){ + return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$1$Type', 1756); +function ModelOrderNodeComparator$lambda$2$Type(){ +} + +defineClass(1757, 1, $intern_39, ModelOrderNodeComparator$lambda$2$Type); +_.test_0 = function test_81(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$2$Type', 1757); +function ModelOrderNodeComparator$lambda$3$Type(){ +} + +defineClass(1758, 1, {}, ModelOrderNodeComparator$lambda$3$Type); +_.apply_0 = function apply_129(arg0){ + return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$3$Type', 1758); +function ModelOrderNodeComparator$lambda$4$Type(){ +} + +defineClass(1759, 1, $intern_39, ModelOrderNodeComparator$lambda$4$Type); +_.test_0 = function test_82(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$4$Type', 1759); +function $compare_16(this$static, p1, p2){ + return $compare_17(this$static, castTo(p1, 11), castTo(p2, 11)); +} + +function $compare_17(this$static, p1, p2){ + var p1Node, p1Order, p1TargetNode, p2Node, p2Order, p2TargetNode, previousNode, previousNode$array, previousNode$index, previousNode$max; + if (p1.incomingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { + p1Node = castTo($get_11(p1.incomingEdges, 0), 17).source.owner; + p2Node = castTo($get_11(p2.incomingEdges, 0), 17).source.owner; + if (p1Node == p2Node) { + return compare_5(castTo($getProperty(castTo($get_11(p1.incomingEdges, 0), 17), ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0, castTo($getProperty(castTo($get_11(p2.incomingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + } + for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { + previousNode = previousNode$array[previousNode$index]; + if (previousNode == p1Node) { + return 1; + } + else if (previousNode == p2Node) { + return -1; + } + } + } + if (p1.outgoingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0) { + p1TargetNode = castTo($getProperty(p1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE)), 10); + p2TargetNode = castTo($getProperty(p2, LONG_EDGE_TARGET_NODE), 10); + p1Order = 0; + p2Order = 0; + $hasProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p1Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + $hasProperty(castTo($get_11(p2.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p2Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + if (!!p1TargetNode && p1TargetNode == p2TargetNode) { + if ($booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && !$booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { + return 1; + } + else if (!$booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && $booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { + return -1; + } + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + if (this$static.targetNodeModelOrder) { + this$static.targetNodeModelOrder.containsKey(p1TargetNode) && (p1Order = castTo(this$static.targetNodeModelOrder.get_3(p1TargetNode), 19).value_0); + this$static.targetNodeModelOrder.containsKey(p2TargetNode) && (p2Order = castTo(this$static.targetNodeModelOrder.get_3(p2TargetNode), 19).value_0); + } + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + return p1.incomingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0?1:-1; +} + +function ModelOrderPortComparator(previousLayer, targetNodeModelOrder){ + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, previousLayer.nodes.array.length, 0, 1); + $toArray_2(previousLayer.nodes, this.previousLayer); + this.targetNodeModelOrder = targetNodeModelOrder; +} + +function ModelOrderPortComparator_0(previousLayer, targetNodeModelOrder){ + this.previousLayer = previousLayer; + this.targetNodeModelOrder = targetNodeModelOrder; +} + +defineClass(806, 1, $intern_88, ModelOrderPortComparator, ModelOrderPortComparator_0); +_.compare_1 = function compare_60(p1, p2){ + return $compare_16(this, p1, p2); +} +; +_.equals_0 = function equals_141(other){ + return this === other; +} +; +_.reversed = function reversed_52(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderPortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderPortComparator', 806); +function ARDCutIndexHeuristic(){ +} + +function getChunkCount(gs){ + var rows_0, rowsd; + rowsd = $wnd.Math.sqrt((gs.sumWidth == null && (gs.sumWidth = $determineWidth(gs, new GraphStats$lambda$1$Type)) , $doubleValue(gs.sumWidth) / (gs.dar * (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight))))); + rows_0 = toInt_0(fromDouble_0($wnd.Math.round(rowsd))); + rows_0 = $wnd.Math.min(rows_0, gs.longestPath); + return rows_0; +} + +defineClass(801, 1, {}, ARDCutIndexHeuristic); +_.getCutIndexes = function getCutIndexes(graph, gs){ + var cuts, idx, rows_0, step; + rows_0 = getChunkCount(gs); + cuts = new ArrayList; + step = gs.longestPath / rows_0; + for (idx = 1; idx < rows_0; ++idx) { + $add_3(cuts, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(idx * step))))); + } + return cuts; +} +; +_.guaranteeValid = function guaranteeValid(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ARDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ARDCutIndexHeuristic', 801); +function $applyCuts(graph, cuts){ + var alreadySplit, bpEndMarker, bpLayer1, bpLayer2, bpStartMarker, bpi, bpiPrev, cut, cutIt, e, e$iterator, e$iterator0, idx, inPortBp1, inPortBp2, layer, layerIt, n, n$iterator, noSplitEdges, nodeStartEdge, openEdges, originalEdge, originalEdge$iterator, outPortBp1, outPortBp2, prevNode, startEndEdge; + layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); + cutIt = cuts.iterator_0(); + idx = 0; + cut = castTo(cutIt.next_1(), 19).value_0; + noSplitEdges = 0; + alreadySplit = new HashSet; + openEdges = new LinkedHashSet; + while (layerIt.i < layerIt.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + for (e$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator0);) { + e = castTo($next_0(e$iterator0), 17); + openEdges.map_0.put(e, openEdges); + } + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + openEdges.map_0.remove_0(e) != null; + } + } + if (idx + 1 == cut) { + bpLayer1 = new Layer(graph); + $add_1(layerIt, bpLayer1); + bpLayer2 = new Layer(graph); + $add_1(layerIt, bpLayer2); + for (originalEdge$iterator = openEdges.map_0.keySet_0().iterator_0(); originalEdge$iterator.hasNext_0();) { + originalEdge = castTo(originalEdge$iterator.next_1(), 17); + if (!alreadySplit.map_0.containsKey(originalEdge)) { + ++noSplitEdges; + alreadySplit.map_0.put(originalEdge, alreadySplit); + } + bpStartMarker = new LNode(graph); + $setProperty_0(bpStartMarker, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); + $setLayer_0(bpStartMarker, bpLayer1); + $setType(bpStartMarker, ($clinit_LNode$NodeType() , BREAKING_POINT)); + inPortBp1 = new LPort; + $setNode(inPortBp1, bpStartMarker); + $setSide(inPortBp1, ($clinit_PortSide() , WEST_2)); + outPortBp1 = new LPort; + $setNode(outPortBp1, bpStartMarker); + $setSide(outPortBp1, EAST_2); + bpEndMarker = new LNode(graph); + $setProperty_0(bpEndMarker, PORT_CONSTRAINTS_0, FIXED_SIDE); + $setLayer_0(bpEndMarker, bpLayer2); + $setType(bpEndMarker, BREAKING_POINT); + inPortBp2 = new LPort; + $setNode(inPortBp2, bpEndMarker); + $setSide(inPortBp2, WEST_2); + outPortBp2 = new LPort; + $setNode(outPortBp2, bpEndMarker); + $setSide(outPortBp2, EAST_2); + nodeStartEdge = new LEdge; + $setSource_0(nodeStartEdge, originalEdge.source); + $setTarget_0(nodeStartEdge, inPortBp1); + startEndEdge = new LEdge; + $setSource_0(startEndEdge, outPortBp1); + $setTarget_0(startEndEdge, inPortBp2); + $setSource_0(originalEdge, outPortBp2); + bpi = new BreakingPointInserter$BPInfo(bpStartMarker, bpEndMarker, nodeStartEdge, startEndEdge, originalEdge); + $setProperty_0(bpStartMarker, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO), bpi); + $setProperty_0(bpEndMarker, BREAKING_POINT_INFO, bpi); + prevNode = nodeStartEdge.source.owner; + if (prevNode.type_0 == BREAKING_POINT) { + bpiPrev = castTo($getProperty(prevNode, BREAKING_POINT_INFO), 305); + bpiPrev.next_0 = bpi; + bpi.prev = bpiPrev; + } + } + if (cutIt.hasNext_0()) { + cut = castTo(cutIt.next_1(), 19).value_0; + } + else { + break; + } + } + ++idx; + } + return valueOf_4(noSplitEdges); +} + +function $computeEdgeSpans(graph){ + var e, e$iterator, i, l, l$iterator, n, n$iterator, n$iterator0, open_0, spans; + spans = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length + 1, 15, 1); + open_0 = new HashSet; + i = 0; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + spans[i++] = open_0.map_0.size_1(); + for (n$iterator0 = new ArrayList$1(l.nodes); n$iterator0.i < n$iterator0.this$01.array.length;) { + n = castTo($next_7(n$iterator0), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + open_0.map_0.put(e, open_0); + } + } + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + open_0.map_0.remove_0(e) != null; + } + } + } + return spans; +} + +function $improveCuts(graph, cuts){ + var bestCut, bestScore, ccuts, cut, cutIdx, cutIdx$iterator, dist, hit, i, idx, improvedCuts, lCut, lDist, lastCut, rCut, rDist, score, spans, distancePenalty; + improvedCuts = new ArrayList; + ccuts = new ArrayList; + lastCut = null; + for (cutIdx$iterator = cuts.iterator_0(); cutIdx$iterator.hasNext_0();) { + cutIdx = castTo(cutIdx$iterator.next_1(), 19); + cut = new BreakingPointInserter$Cut(cutIdx.value_0); + ccuts.array[ccuts.array.length] = cut; + if (lastCut) { + cut.prev = lastCut; + lastCut.suc = cut; + } + lastCut = cut; + } + spans = $computeEdgeSpans(graph); + for (i = 0; i < ccuts.array.length; ++i) { + lCut = null; + rCut = $selfOrNext((checkCriticalElementIndex(0, ccuts.array.length) , castTo(ccuts.array[0], 652))); + bestCut = null; + bestScore = $intern_59; + for (idx = 1; idx < graph.layers.array.length; ++idx) { + rDist = rCut?$wnd.Math.abs(rCut.index_0 - idx):$wnd.Math.abs(idx - lCut.index_0) + 1; + lDist = lCut?$wnd.Math.abs(idx - lCut.index_0):rDist + 1; + if (lDist < rDist) { + hit = lCut; + dist = lDist; + } + else { + hit = rCut; + dist = rDist; + } + score = (distancePenalty = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)))) , spans[idx] + $wnd.Math.pow(dist, distancePenalty)); + if (score < bestScore) { + bestScore = score; + bestCut = hit; + bestCut.newIndex = idx; + } + if (!!rCut && idx == rCut.index_0) { + lCut = rCut; + rCut = $next_12(rCut); + } + } + if (bestCut) { + $add_3(improvedCuts, valueOf_4(bestCut.newIndex)); + bestCut.assigned = true; + $offset(bestCut); + } + } + $clinit_Collections(); + sort_4(improvedCuts.array, improvedCuts.array.length, null); + return improvedCuts; +} + +function $process_53(graph, progressMonitor){ + var cuts, gs, icic; + $begin(progressMonitor, 'Breaking Point Insertion', 1); + gs = new GraphStats(graph); + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + case 0: + icic = new ARDCutIndexHeuristic; + break; + default:icic = new MSDCutIndexHeuristic; + } + cuts = icic.getCutIndexes(graph, gs); + $booleanValue(castToBoolean($getProperty(graph, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0))) && (cuts = $improveCuts(graph, cuts)); + if (!icic.guaranteeValid() && $hasProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0)) { + switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + if (cuts.isEmpty()) { + $done_0(progressMonitor); + return; + } + $applyCuts(graph, cuts); + $done_0(progressMonitor); +} + +function BreakingPointInserter(){ +} + +defineClass(1479, 1, $intern_105, BreakingPointInserter); +_.process = function process_50(graph, progressMonitor){ + $process_53(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter', 1479); +function BreakingPointInserter$BPInfo(startDummy, endDummy, nodeStartEdge, startEndEdge, originalEdge){ + this.start_0 = startDummy; + this.end = endDummy; + this.nodeStartEdge = nodeStartEdge; + this.startEndEdge = startEndEdge; + this.originalEdge = originalEdge; +} + +function isEnd(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (bpi) { + return bpi.end == n; + } + return false; +} + +function isStart(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (bpi) { + return bpi.start_0 == n; + } + return false; +} + +defineClass(305, 1, {305:1}, BreakingPointInserter$BPInfo); +_.toString_0 = function toString_97(){ + var sb; + sb = new StringBuilder; + sb.string += 'BPInfo['; + sb.string += '\n\tstart='; + $append_10(sb, this.start_0); + sb.string += '\n\tend='; + $append_10(sb, this.end); + sb.string += '\n\tnodeStartEdge='; + $append_10(sb, this.nodeStartEdge); + sb.string += '\n\tstartEndEdge='; + $append_10(sb, this.startEndEdge); + sb.string += '\n\toriginalEdge='; + $append_10(sb, this.originalEdge); + sb.string += '\n\tstartInLayerDummy='; + $append_10(sb, this.startInLayerDummy); + sb.string += '\n\tstartInLayerEdge='; + $append_10(sb, this.startInLayerEdge); + sb.string += '\n\tendInLayerDummy='; + $append_10(sb, this.endInLayerDummy); + sb.string += '\n\tendInLayerEdge='; + $append_10(sb, this.endInLayerEdge); + return sb.string; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$BPInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/BPInfo', 305); +function $next_12(this$static){ + if (this$static.suc) { + return $selfOrNext(this$static.suc); + } + return null; +} + +function $offset(this$static){ + var offset; + if (!this$static.assigned) { + throw toJs(new IllegalStateException_0('Cannot offset an unassigned cut.')); + } + offset = this$static.newIndex - this$static.index_0; + this$static.index_0 += offset; + $offsetPrev(this$static, offset); + $offsetSuc(this$static, offset); +} + +function $offset_0(this$static, offset){ + this$static.index_0 += offset; +} + +function $offsetPrev(this$static, offset){ + if (!!this$static.prev && !this$static.prev.assigned) { + $offset_0(this$static.prev, offset); + $offsetPrev(this$static.prev, offset); + } +} + +function $offsetSuc(this$static, offset){ + if (!!this$static.suc && !this$static.suc.assigned) { + $offset_0(this$static.suc, offset); + $offsetSuc(this$static.suc, offset); + } +} + +function $selfOrNext(this$static){ + if (this$static.assigned) { + if (this$static.suc) { + return $selfOrNext(this$static.suc); + } + } + else { + return this$static; + } + return null; +} + +function BreakingPointInserter$Cut(index_0){ + this.index_0 = index_0; +} + +defineClass(652, 1, {652:1}, BreakingPointInserter$Cut); +_.assigned = false; +_.index_0 = 0; +_.newIndex = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$Cut_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/Cut', 652); +function $dropDummies(bpNode, inLayerDummy, forwards, force){ + var didsome, newLayer, nextOne, nextTwo, predOne, predTwo; + predOne = $nextLongEdgeDummy(bpNode, forwards); + predTwo = $nextLongEdgeDummy(inLayerDummy, forwards); + didsome = false; + while (!!predOne && !!predTwo) { + if (force || $isAdjacentOrSeparatedByBreakingpoints(predOne, predTwo, forwards)) { + nextOne = $nextLongEdgeDummy(predOne, forwards); + nextTwo = $nextLongEdgeDummy(predTwo, forwards); + $updateIndexesAfter(inLayerDummy); + $updateIndexesAfter(bpNode); + newLayer = predOne.layer; + joinAt(predOne, false); + joinAt(predTwo, false); + if (forwards) { + $setLayer(inLayerDummy, predTwo.id_0, newLayer); + inLayerDummy.id_0 = predTwo.id_0; + $setLayer(bpNode, predOne.id_0 + 1, newLayer); + bpNode.id_0 = predOne.id_0; + } + else { + $setLayer(bpNode, predOne.id_0, newLayer); + bpNode.id_0 = predOne.id_0; + $setLayer(inLayerDummy, predTwo.id_0 + 1, newLayer); + inLayerDummy.id_0 = predTwo.id_0; + } + $setLayer_0(predOne, null); + $setLayer_0(predTwo, null); + predOne = nextOne; + predTwo = nextTwo; + didsome = true; + } + else { + break; + } + } + return didsome; +} + +function $improveMultiCutIndexEdges(graph){ + var current, info, l, l$iterator, n, n$iterator, newInfo, next; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(newArrayList(l.nodes)); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (isStart(n)) { + info = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (!info.prev && !!info.next_0) { + current = info; + next = info.next_0; + while (next) { + $dropDummies(next.start_0, next.startInLayerDummy, false, true); + $updateIndexesAfter(current.end); + $updateIndexesAfter(next.start_0); + $updateIndexesAfter(next.startInLayerDummy); + $updateIndexesAfter(next.endInLayerDummy); + $setTarget_0(next.endInLayerEdge, current.endInLayerEdge.target); + $setTarget_0(current.endInLayerEdge, null); + $setLayer_0(current.end, null); + $setLayer_0(next.start_0, null); + $setLayer_0(next.startInLayerDummy, null); + $setLayer_0(next.endInLayerDummy, null); + newInfo = new BreakingPointInserter$BPInfo(current.start_0, next.end, current.nodeStartEdge, next.startEndEdge, next.originalEdge); + newInfo.startInLayerDummy = current.startInLayerDummy; + newInfo.startInLayerEdge = current.startInLayerEdge; + newInfo.endInLayerDummy = current.endInLayerDummy; + newInfo.endInLayerEdge = next.endInLayerEdge; + newInfo.prev = current.prev; + newInfo.next_0 = next.next_0; + $setProperty_0(current.start_0, BREAKING_POINT_INFO, newInfo); + $setProperty_0(next.end, BREAKING_POINT_INFO, newInfo); + next = next.next_0; + current = newInfo; + } + } + } + } + } +} + +function $improveUnneccesarilyLongEdges(graph, forwards){ + var bpInfo, bpNode, check, didsome, dummy, layer, layer$iterator, layers, n, n$iterator, nodes; + check = forwards?new BreakingPointProcessor$0methodref$isEnd$Type:new BreakingPointProcessor$1methodref$isStart$Type; + didsome = false; + do { + didsome = false; + layers = forwards?reverse_0(graph.layers):graph.layers; + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + nodes = newArrayList(layer.nodes); + forwards || new Lists$RandomAccessReverseList(nodes); + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (check.test_0(n)) { + bpNode = n; + bpInfo = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + dummy = forwards?bpInfo.endInLayerDummy:bpInfo.startInLayerDummy; + didsome = $dropDummies(bpNode, dummy, forwards, false); + } + } + } + } + while (didsome); +} + +function $isAdjacentOrSeparatedByBreakingpoints(dummy1, dummy2, forwards){ + var end, i, layer, node, start_0; + layer = dummy1.layer; + start_0 = forwards?dummy2:dummy1; + end = forwards?dummy1:dummy2; + for (i = start_0.id_0 + 1; i < end.id_0; ++i) { + node = castTo($get_11(layer.nodes, i), 10); + if (!(node.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT) || $isInLayerDummy(node))) { + return false; + } + } + return true; +} + +function $isInLayerDummy(node){ + var e, e$iterator; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!$isSelfLoop(e) && node.layer == $getOther_1(e, node).layer) { + return true; + } + } + } + return false; +} + +function $nextLongEdgeDummy(start_0, forwards){ + var e, e$iterator, edges, other; + edges = forwards?$getOutgoingEdges(start_0):$getIncomingEdges(start_0); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + other = $getOther_1(e, start_0); + if (other.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && other.layer != start_0.layer) { + return other; + } + } + return null; +} + +function $performWrapping(graph){ + var aNode, bpi, dummyEdges, e, e$iterator, idx, it, l, layer, layerIt, layers, n, n$iterator, n$iterator0, newLayer, nodesToMove, offset, reverse, startInLayerEdge; + layers = graph.layers; + layerIt = new AbstractList$ListIteratorImpl(layers, 0); + $add_1(layerIt, new Layer(graph)); + reverse = false; + idx = 1; + while (layerIt.i < layerIt.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); + newLayer = (checkCriticalElementIndex(idx, layers.array.length) , castTo(layers.array[idx], 29)); + nodesToMove = newArrayList(layer.nodes); + offset = nodesToMove.array.length; + for (n$iterator0 = new ArrayList$1(nodesToMove); n$iterator0.i < n$iterator0.this$01.array.length;) { + n = castTo($next_7(n$iterator0), 10); + $setLayer_0(n, newLayer); + } + if (reverse) { + for (n$iterator = $listIterator_1(new Lists$RandomAccessReverseList(nodesToMove), 0); n$iterator.val$forwardIterator2.hasPrevious();) { + n = castTo($next_3(n$iterator), 10); + for (e$iterator = new ArrayList$1(newArrayList($getIncomingEdges(n))); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $reverse_0(e, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + dummyEdges = insertDummies(graph, e, offset); + bpi = castTo($getProperty(n, BREAKING_POINT_INFO), 305); + startInLayerEdge = castTo($get_11(dummyEdges, dummyEdges.array.length - 1), 17); + bpi.startInLayerDummy = startInLayerEdge.source.owner; + bpi.startInLayerEdge = startInLayerEdge; + bpi.endInLayerDummy = e.target.owner; + bpi.endInLayerEdge = e; + } + } + reverse = false; + } + else { + if (nodesToMove.array.length != 0) { + aNode = (checkCriticalElementIndex(0, nodesToMove.array.length) , castTo(nodesToMove.array[0], 10)); + if (aNode.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT)) { + reverse = true; + idx = -1; + } + } + } + ++idx; + } + it = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (it.i < it.this$01_0.size_1()) { + l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_54(graph, progressMonitor){ + var index_0, l, l$iterator, n, n$iterator; + $begin(progressMonitor, 'Breaking Point Processor', 1); + $performWrapping(graph); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0))))) { + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + } + } + $improveMultiCutIndexEdges(graph); + $improveUnneccesarilyLongEdges(graph, true); + $improveUnneccesarilyLongEdges(graph, false); + } + $done_0(progressMonitor); +} + +function $updateIndexesAfter(node){ + var i; + for (i = node.id_0 + 1; i < node.layer.nodes.array.length; ++i) { + --castTo($get_11(node.layer.nodes, i), 10).id_0; + } +} + +function BreakingPointProcessor(){ +} + +defineClass(1480, 1, $intern_105, BreakingPointProcessor); +_.process = function process_51(graph, progressMonitor){ + $process_54(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor', 1480); +function BreakingPointProcessor$0methodref$isEnd$Type(){ +} + +defineClass(1481, 1, $intern_39, BreakingPointProcessor$0methodref$isEnd$Type); +_.test_0 = function test_83(arg0){ + return isEnd(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$0methodref$isEnd$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/0methodref$isEnd$Type', 1481); +function BreakingPointProcessor$1methodref$isStart$Type(){ +} + +defineClass(1482, 1, $intern_39, BreakingPointProcessor$1methodref$isStart$Type); +_.test_0 = function test_84(arg0){ + return isStart(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$1methodref$isStart$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/1methodref$isStart$Type', 1482); +function $addNullSafe(container, toAdd){ + if (!toAdd) { + return false; + } + return $addAll(container, toAdd); +} + +function $process_55(this$static, graph, progressMonitor){ + var bpi, l, l$iterator, node, node$iterator; + $begin(progressMonitor, 'Breaking Point Removing', 1); + this$static.edgeRouting = castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (node$iterator = new ArrayList$1(newArrayList(l.nodes)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (isEnd(node)) { + bpi = castTo($getProperty(node, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + !bpi.next_0 && $remove_30(this$static, bpi); + } + } + } + $done_0(progressMonitor); +} + +function $remove_30(this$static, bpi){ + var e1, e2, e3, joinedEdges, joinedSegments, junctionPointsOne, junctionPointsThree, junctionPointsTwo, newBends, newJunctionPoints, s1, s2, s3; + newBends = new KVectorChain; + switch (this$static.edgeRouting.ordinal) { + case 3: + s1 = castTo($getProperty(bpi.nodeStartEdge, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); + s2 = castTo($getProperty(bpi.startEndEdge, SPLINE_ROUTE_START), 15); + s3 = castTo($getProperty(bpi.originalEdge, SPLINE_ROUTE_START), 15); + e1 = castTo($getProperty(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN), 15); + e2 = castTo($getProperty(bpi.startEndEdge, SPLINE_EDGE_CHAIN), 15); + e3 = castTo($getProperty(bpi.originalEdge, SPLINE_EDGE_CHAIN), 15); + joinedSegments = new ArrayList; + $addAll_2(joinedSegments, s1); + s2.forEach_0(new BreakingPointRemover$lambda$0$Type); + $addAll_2(joinedSegments, instanceOf(s2, 152)?$reverse(castTo(s2, 152)):instanceOf(s2, 131)?castTo(s2, 131).forwardList:instanceOf(s2, 54)?new Lists$RandomAccessReverseList(s2):new Lists$ReverseList(s2)); + $addAll_2(joinedSegments, s3); + joinedEdges = new ArrayList; + $addAll_2(joinedEdges, e1); + $addAll_2(joinedEdges, instanceOf(e2, 152)?$reverse(castTo(e2, 152)):instanceOf(e2, 131)?castTo(e2, 131).forwardList:instanceOf(e2, 54)?new Lists$RandomAccessReverseList(e2):new Lists$ReverseList(e2)); + $addAll_2(joinedEdges, e3); + $setProperty_0(bpi.originalEdge, SPLINE_ROUTE_START, joinedSegments); + $setProperty_0(bpi.originalEdge, SPLINE_EDGE_CHAIN, joinedEdges); + $setProperty_0(bpi.originalEdge, SPLINE_SURVIVING_EDGE, bpi.originalEdge); + $setProperty_0(bpi.nodeStartEdge, SPLINE_ROUTE_START, null); + $setProperty_0(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN, null); + $setProperty_0(bpi.startEndEdge, SPLINE_ROUTE_START, null); + $setProperty_0(bpi.startEndEdge, SPLINE_EDGE_CHAIN, null); + break; + case 1: + $addAll(newBends, bpi.nodeStartEdge.bendPoints); + $add_7(newBends, bpi.start_0.pos); + $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); + $add_7(newBends, bpi.end.pos); + $addAll(newBends, bpi.originalEdge.bendPoints); + break; + default:$addAll(newBends, bpi.nodeStartEdge.bendPoints); + $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); + $addAll(newBends, bpi.originalEdge.bendPoints); + } + $reset_0(bpi.originalEdge.bendPoints); + $addAll(bpi.originalEdge.bendPoints, newBends); + $setSource_0(bpi.originalEdge, bpi.nodeStartEdge.source); + junctionPointsOne = castTo($getProperty(bpi.nodeStartEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + junctionPointsTwo = castTo($getProperty(bpi.startEndEdge, JUNCTION_POINTS), 74); + junctionPointsThree = castTo($getProperty(bpi.originalEdge, JUNCTION_POINTS), 74); + if (!!junctionPointsOne || !!junctionPointsTwo || !!junctionPointsThree) { + newJunctionPoints = new KVectorChain; + $addNullSafe(newJunctionPoints, junctionPointsThree); + $addNullSafe(newJunctionPoints, junctionPointsTwo); + $addNullSafe(newJunctionPoints, junctionPointsOne); + $setProperty_0(bpi.originalEdge, JUNCTION_POINTS, newJunctionPoints); + } + $setSource_0(bpi.startEndEdge, null); + $setTarget_0(bpi.startEndEdge, null); + $setSource_0(bpi.nodeStartEdge, null); + $setTarget_0(bpi.nodeStartEdge, null); + $setLayer_0(bpi.end, null); + $setLayer_0(bpi.start_0, null); + !!bpi.prev && $remove_30(this$static, bpi.prev); +} + +function BreakingPointRemover(){ +} + +defineClass(1483, 1, $intern_105, BreakingPointRemover); +_.process = function process_52(graph, progressMonitor){ + $process_55(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover', 1483); +function BreakingPointRemover$lambda$0$Type(){ +} + +defineClass(1484, 1, $intern_19, BreakingPointRemover$lambda$0$Type); +_.accept = function accept_113(arg0){ + castTo(arg0, 128).inverseOrder = true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover/lambda$0$Type', 1484); +function insertDummies(layeredGraph, originalEdge, offsetFirstInLayerDummy){ + var additionalSpacing, createdEdges, dummyEdge, dummyInput, dummyNode, dummyOutput, edge, edgeNodeSpacing, i, is, nextLayer, portPos, src_0, srcIndex, targetPort, tgt, tgtIndex, thickness; + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE)))); + additionalSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, WRAPPING_ADDITIONAL_EDGE_SPACING_0))); + is = new IndividualSpacings; + $setProperty_0(is, SPACING_EDGE_NODE, edgeNodeSpacing + additionalSpacing); + edge = originalEdge; + targetPort = edge.target; + src_0 = edge.source.owner; + tgt = edge.target.owner; + srcIndex = $getIndex_0(src_0.layer); + tgtIndex = $getIndex_0(tgt.layer); + createdEdges = new ArrayList; + for (i = srcIndex; i <= tgtIndex; i++) { + dummyNode = new LNode(layeredGraph); + $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummyNode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummyNode, SPACING_INDIVIDUAL, is); + nextLayer = castTo($get_11(layeredGraph.layers, i), 29); + i == srcIndex?$setLayer(dummyNode, nextLayer.nodes.array.length - offsetFirstInLayerDummy, nextLayer):$setLayer_0(dummyNode, nextLayer); + thickness = $doubleValue(castToDouble($getProperty(edge, EDGE_THICKNESS_0))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + dummyNode.size_0.y_0 = thickness; + portPos = $wnd.Math.floor(thickness / 2); + dummyInput = new LPort; + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInput, dummyNode); + dummyInput.pos.y_0 = portPos; + dummyOutput = new LPort; + $setSide(dummyOutput, EAST_2); + $setNode(dummyOutput, dummyNode); + dummyOutput.pos.y_0 = portPos; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, targetPort); + setDummyProperties(dummyNode, edge, dummyEdge); + createdEdges.array[createdEdges.array.length] = dummyEdge; + edge = dummyEdge; + } + return createdEdges; +} + +function setDummyProperties(dummy, inEdge, outEdge){ + var inEdgeSourceNode; + inEdgeSourceNode = inEdge.source.owner; + if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummy, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + } + else { + $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); + $setProperty_0(dummy, LONG_EDGE_TARGET, outEdge.target); + } +} + +function $determineHeight(this$static, fun){ + return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$6$Type(this$static)), fun)))); +} + +function $determineLayerHeight(this$static, layer){ + var inc, inc$iterator, lH, n, n$iterator, origin_0, src_0; + lH = 0; + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + lH += n.size_0.y_0 + n.margin.bottom + n.margin.top_0 + this$static.inLayerSpacing; + for (inc$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inc$iterator);) { + inc = castTo($next_0(inc$iterator), 17); + if (inc.source.owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + src_0 = inc.source.owner; + origin_0 = castTo($getProperty(src_0, ($clinit_InternalProperties_1() , ORIGIN_0)), 10); + lH += origin_0.size_0.y_0 + origin_0.margin.bottom + origin_0.margin.top_0; + } + } + } + return lH; +} + +function $determineLayerWidth(this$static, l){ + var maxW, n, n$iterator, nW; + maxW = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + nW = n.size_0.x_0 + n.margin.right + n.margin.left + this$static.spacing; + maxW = $wnd.Math.max(maxW, nW); + } + return maxW; +} + +function $determineWidth(this$static, fun){ + return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$2$Type(this$static)), fun)))); +} + +function $initCutAllowed(this$static){ + var f, f$iterator, forbidden, i, layer, layerIt; + if (this$static.cutsAllowed != null) { + return; + } + this$static.cutsAllowed = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.layers.array.length, 16, 1); + this$static.cutsAllowed[0] = false; + if ($hasProperty(this$static.graph_0, ($clinit_LayeredOptions() , WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0))) { + forbidden = castTo($getProperty(this$static.graph_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0), 15); + for (f$iterator = forbidden.iterator_0(); f$iterator.hasNext_0();) { + f = castTo(f$iterator.next_1(), 19).value_0; + f > 0 && f < this$static.cutsAllowed.length && (this$static.cutsAllowed[f] = false); + } + } + else { + layerIt = new ArrayList$1(this$static.graph_0.layers); + layerIt.i < layerIt.this$01.array.length && $next_7(layerIt); + i = 1; + while (layerIt.i < layerIt.this$01.array.length) { + layer = castTo($next_7(layerIt), 29); + this$static.cutsAllowed[i++] = $isCutAllowed_0(layer); + } + } +} + +function $initWidthsAndHeights(this$static){ + var i, l, n; + n = this$static.longestPath; + this$static.widths = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); + this$static.heights = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); + for (i = 0; i < n; i++) { + l = castTo($get_11(this$static.graph_0.layers, i), 29); + this$static.widths[i] = $determineLayerWidth(this$static, l); + this$static.heights[i] = $determineLayerHeight(this$static, l); + } +} + +function $isCutAllowed(this$static, layerIndex){ + this$static.cutsAllowed == null && $initCutAllowed(this$static); + return this$static.cutsAllowed[layerIndex]; +} + +function $isCutAllowed_0(layer){ + var cutAllowed, e, e$iterator, n1, n2, src_0, tgt, tgt$iterator; + cutAllowed = true; + n1 = null; + n2 = null; + check: for (tgt$iterator = new ArrayList$1(layer.nodes); tgt$iterator.i < tgt$iterator.this$01.array.length;) { + tgt = castTo($next_7(tgt$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(tgt).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!!n1 && n1 != tgt) { + cutAllowed = false; + break check; + } + n1 = tgt; + src_0 = e.source.owner; + if (!!n2 && n2 != src_0) { + cutAllowed = false; + break check; + } + n2 = src_0; + } + } + return cutAllowed; +} + +function GraphStats(graph){ + var aspectRatio, correction, dir_0; + this.graph_0 = graph; + dir_0 = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); + aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); + correction = $doubleValue(castToDouble($getProperty(graph, WRAPPING_CORRECTION_FACTOR_0))); + dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6 || dir_0 == UNDEFINED_2?(this.dar = aspectRatio * correction):(this.dar = 1 / (aspectRatio * correction)); + this.spacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + this.inLayerSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_0))); + this.longestPath = graph.layers.array.length; +} + +function lambda$1_16(a_0, b_1){ + return (checkCriticalNotNull(a_0) , a_0) + (checkCriticalNotNull(b_1) , b_1); +} + +defineClass(797, 1, {}, GraphStats); +_.dar = 0; +_.inLayerSpacing = 0; +_.longestPath = 0; +_.spacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats', 797); +function GraphStats$0methodref$max$Type(){ +} + +defineClass(798, 1, {}, GraphStats$0methodref$max$Type); +_.apply_3 = function apply_130(arg0, arg1){ + return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$0methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/0methodref$max$Type', 798); +function GraphStats$2methodref$max$Type(){ +} + +defineClass(799, 1, {}, GraphStats$2methodref$max$Type); +_.apply_3 = function apply_131(arg0, arg1){ + return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$2methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/2methodref$max$Type', 799); +function GraphStats$lambda$1$Type(){ +} + +defineClass(1660, 1, {}, GraphStats$lambda$1$Type); +_.apply_3 = function apply_132(arg0, arg1){ + return lambda$1_16(castToDouble(arg0), castToDouble(arg1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$1$Type', 1660); +function GraphStats$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1661, 1, {}, GraphStats$lambda$2$Type); +_.apply_0 = function apply_133(arg0){ + return $determineLayerWidth(this.$$outer_0, castTo(arg0, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$2$Type', 1661); +function GraphStats$lambda$6$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1662, 1, {}, GraphStats$lambda$6$Type); +_.apply_0 = function apply_134(arg0){ + return $determineLayerHeight(this.$$outer_0, castTo(arg0, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$6$Type', 1662); +function ICutIndexCalculator$ManualCutIndexCalculator(){ +} + +defineClass(800, 1, {}, ICutIndexCalculator$ManualCutIndexCalculator); +_.getCutIndexes = function getCutIndexes_0(graph, gs){ + var cuts; + cuts = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_CUTS_0)), 15); + return cuts?cuts:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); +} +; +_.guaranteeValid = function guaranteeValid_0(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ICutIndexCalculator$ManualCutIndexCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ICutIndexCalculator/ManualCutIndexCalculator', 800); +function MSDCutIndexHeuristic(){ +} + +defineClass(802, 1, {}, MSDCutIndexHeuristic); +_.getCutIndexes = function getCutIndexes_1(graph, gs){ + var bestCuts, bestMaxScale, cutCnt, cuts, freedom, height, heights, i, index_0, lastCutWidth, m, maxScale, rowHeightMax, rowSum, sumSoFar, total, width_0, widthAtIndex, widths; + widths = (gs.widths == null && $initWidthsAndHeights(gs) , gs.widths); + heights = (gs.heights == null && $initWidthsAndHeights(gs) , gs.heights); + widthAtIndex = initUnidimensionalArray(D_classLit, $intern_65, 25, widths.length, 15, 1); + widthAtIndex[0] = widths[0]; + total = widths[0]; + for (i = 1; i < widths.length; i++) { + widthAtIndex[i] = widthAtIndex[i - 1] + widths[i]; + total += widths[i]; + } + cutCnt = getChunkCount(gs) - 1; + freedom = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_MSD_FREEDOM_0)), 19).value_0; + bestMaxScale = $intern_60; + bestCuts = new ArrayList; + for (m = $wnd.Math.max(0, cutCnt - freedom); m <= $wnd.Math.min(gs.longestPath - 1, cutCnt + freedom); m++) { + rowSum = total / (m + 1); + sumSoFar = 0; + index_0 = 1; + cuts = new ArrayList; + width_0 = $intern_60; + lastCutWidth = 0; + height = 0; + rowHeightMax = heights[0]; + if (m == 0) { + width_0 = total; + height = (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight)); + } + else { + while (index_0 < gs.longestPath) { + if (widthAtIndex[index_0 - 1] - sumSoFar >= rowSum) { + $add_3(cuts, valueOf_4(index_0)); + width_0 = $wnd.Math.max(width_0, widthAtIndex[index_0 - 1] - lastCutWidth); + height += rowHeightMax; + sumSoFar += widthAtIndex[index_0 - 1] - sumSoFar; + lastCutWidth = widthAtIndex[index_0 - 1]; + rowHeightMax = heights[index_0]; + } + rowHeightMax = $wnd.Math.max(rowHeightMax, heights[index_0]); + ++index_0; + } + height += rowHeightMax; + } + maxScale = $wnd.Math.min(1 / width_0, 1 / gs.dar / height); + if (maxScale > bestMaxScale) { + bestMaxScale = maxScale; + bestCuts = cuts; + } + } + return bestCuts; +} +; +_.guaranteeValid = function guaranteeValid_1(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_MSDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'MSDCutIndexHeuristic', 802); +function $performCuts(graph, gs, cuts){ + var cutIt, e, e$iterator, incEdges, index_0, it, l, n, n$iterator, newIndex, newLayer, nextCut, nodesToMove, oldLayer; + if (cuts.isEmpty()) { + return; + } + index_0 = 0; + newIndex = 0; + cutIt = cuts.iterator_0(); + nextCut = castTo(cutIt.next_1(), 19).value_0; + while (index_0 < gs.longestPath) { + if (index_0 == nextCut) { + newIndex = 0; + cutIt.hasNext_0()?(nextCut = castTo(cutIt.next_1(), 19).value_0):(nextCut = gs.longestPath + 1); + } + if (index_0 != newIndex) { + oldLayer = castTo($get_11(graph.layers, index_0), 29); + newLayer = castTo($get_11(graph.layers, newIndex), 29); + nodesToMove = newArrayList(oldLayer.nodes); + for (n$iterator = new ArrayList$1(nodesToMove); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + $setLayer(n, newLayer.nodes.array.length, newLayer); + if (newIndex == 0) { + incEdges = newArrayList($getIncomingEdges(n)); + for (e$iterator = new ArrayList$1(incEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $reverse_0(e, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + insertDummies(graph, e, 1); + } + } + } + } + ++newIndex; + ++index_0; + } + it = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (it.i < it.this$01_0.size_1()) { + l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_56(graph, progressMonitor){ + var currentAR, cuts, gs, icic, sumWidth; + $begin(progressMonitor, 'Path-Like Graph Wrapping', 1); + if (graph.layers.array.length == 0) { + $done_0(progressMonitor); + return; + } + gs = new GraphStats(graph); + sumWidth = (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth) * gs.longestPath); + currentAR = sumWidth / (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth)); + if (gs.dar > currentAR) { + $done_0(progressMonitor); + return; + } + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + break; + case 0: + icic = new ARDCutIndexHeuristic; + break; + default:icic = new MSDCutIndexHeuristic; + } + cuts = icic.getCutIndexes(graph, gs); + if (!icic.guaranteeValid()) { + switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + $performCuts(graph, gs, cuts); + $done_0(progressMonitor); +} + +function SingleEdgeGraphWrapper(){ +} + +function validifyIndexesGreedily(gs, cuts){ + var cut, cutIt, offset, validCuts; + validCuts = new ArrayList; + offset = 0; + cutIt = cuts.iterator_0(); + while (cutIt.hasNext_0()) { + cut = valueOf_4(castTo(cutIt.next_1(), 19).value_0 + offset); + while (cut.value_0 < gs.longestPath && !$isCutAllowed(gs, cut.value_0)) { + cut = valueOf_4(cut.value_0 + 1); + ++offset; + } + if (cut.value_0 >= gs.longestPath) { + break; + } + validCuts.array[validCuts.array.length] = cut; + } + return validCuts; +} + +function validifyIndexesLookingBack(desiredCuts, validCuts){ + var cIdx, current, distHigher, distLower, finalCuts, iIdx, offset, select; + finalCuts = new ArrayList; + iIdx = 0; + cIdx = 0; + offset = 0; + while (iIdx < validCuts.array.length - 1 && cIdx < desiredCuts.size_1()) { + current = castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset; + while ((checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 < current) { + ++iIdx; + } + select = 0; + distLower = current - (checkCriticalElementIndex(iIdx, validCuts.array.length) , castTo(validCuts.array[iIdx], 19)).value_0; + distHigher = (checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 - current; + distLower > distHigher && ++select; + $add_3(finalCuts, (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19))); + offset += (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0 - current; + ++cIdx; + while (cIdx < desiredCuts.size_1() && castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset <= (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0) { + ++cIdx; + } + iIdx += 1 + select; + } + return finalCuts; +} + +function validifyIndexesLookingBack_0(gs, desiredCuts){ + var i, validCuts; + if (desiredCuts.isEmpty()) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + validCuts = new ArrayList; + $add_3(validCuts, valueOf_4($intern_42)); + for (i = 1; i < gs.longestPath; ++i) { + gs.cutsAllowed == null && $initCutAllowed(gs); + gs.cutsAllowed[i] && $add_3(validCuts, valueOf_4(i)); + } + if (validCuts.array.length == 1) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + $add_3(validCuts, valueOf_4($intern_0)); + return validifyIndexesLookingBack(desiredCuts, validCuts); +} + +defineClass(1617, 1, $intern_105, SingleEdgeGraphWrapper); +_.process = function process_53(graph, progressMonitor){ + $process_56(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_SingleEdgeGraphWrapper_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'SingleEdgeGraphWrapper', 1617); +function $clinit_CenterEdgeLabelPlacementStrategy(){ + $clinit_CenterEdgeLabelPlacementStrategy = emptyMethod; + MEDIAN_LAYER = new CenterEdgeLabelPlacementStrategy('MEDIAN_LAYER', 0); + TAIL_LAYER = new CenterEdgeLabelPlacementStrategy('TAIL_LAYER', 1); + HEAD_LAYER = new CenterEdgeLabelPlacementStrategy('HEAD_LAYER', 2); + SPACE_EFFICIENT_LAYER = new CenterEdgeLabelPlacementStrategy('SPACE_EFFICIENT_LAYER', 3); + WIDEST_LAYER = new CenterEdgeLabelPlacementStrategy('WIDEST_LAYER', 4); + CENTER_LAYER = new CenterEdgeLabelPlacementStrategy('CENTER_LAYER', 5); +} + +function CenterEdgeLabelPlacementStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_38(name_0){ + $clinit_CenterEdgeLabelPlacementStrategy(); + return valueOf(($clinit_CenterEdgeLabelPlacementStrategy$Map() , $MAP_26), name_0); +} + +function values_44(){ + $clinit_CenterEdgeLabelPlacementStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]); +} + +defineClass(227, 22, {3:1, 35:1, 22:1, 227:1}, CenterEdgeLabelPlacementStrategy); +var CENTER_LAYER, HEAD_LAYER, MEDIAN_LAYER, SPACE_EFFICIENT_LAYER, TAIL_LAYER, WIDEST_LAYER; +var Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CenterEdgeLabelPlacementStrategy', 227, Ljava_lang_Enum_2_classLit, values_44, valueOf_38); +function $clinit_CenterEdgeLabelPlacementStrategy$Map(){ + $clinit_CenterEdgeLabelPlacementStrategy$Map = emptyMethod; + $MAP_26 = createValueOfMap(($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]))); +} + +var $MAP_26; +function $clinit_ConstraintCalculationStrategy(){ + $clinit_ConstraintCalculationStrategy = emptyMethod; + QUADRATIC = new ConstraintCalculationStrategy('QUADRATIC', 0); + SCANLINE = new ConstraintCalculationStrategy('SCANLINE', 1); +} + +function ConstraintCalculationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_39(name_0){ + $clinit_ConstraintCalculationStrategy(); + return valueOf(($clinit_ConstraintCalculationStrategy$Map() , $MAP_27), name_0); +} + +function values_45(){ + $clinit_ConstraintCalculationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]); +} + +defineClass(422, 22, {3:1, 35:1, 22:1, 422:1}, ConstraintCalculationStrategy); +var QUADRATIC, SCANLINE; +var Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ConstraintCalculationStrategy', 422, Ljava_lang_Enum_2_classLit, values_45, valueOf_39); +function $clinit_ConstraintCalculationStrategy$Map(){ + $clinit_ConstraintCalculationStrategy$Map = emptyMethod; + $MAP_27 = createValueOfMap(($clinit_ConstraintCalculationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]))); +} + +var $MAP_27; +function $clinit_CrossingMinimizationStrategy(){ + $clinit_CrossingMinimizationStrategy = emptyMethod; + LAYER_SWEEP = new CrossingMinimizationStrategy('LAYER_SWEEP', 0); + INTERACTIVE_1 = new CrossingMinimizationStrategy('INTERACTIVE', 1); + NONE_1 = new CrossingMinimizationStrategy('NONE', 2); +} + +function $create_3(this$static){ + switch (this$static.ordinal) { + case 0: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER)); + case 1: + return new InteractiveCrossingMinimizer; + case 2: + return new NoCrossingMinimizer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the crossing minimizer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CrossingMinimizationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_40(name_0){ + $clinit_CrossingMinimizationStrategy(); + return valueOf(($clinit_CrossingMinimizationStrategy$Map() , $MAP_28), name_0); +} + +function values_46(){ + $clinit_CrossingMinimizationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]); +} + +defineClass(314, 22, {3:1, 35:1, 22:1, 314:1, 246:1, 234:1}, CrossingMinimizationStrategy); +_.create_1 = function create_7(){ + return $create_3(this); +} +; +_.create_2 = function create_6(){ + return $create_3(this); +} +; +var INTERACTIVE_1, LAYER_SWEEP, NONE_1; +var Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CrossingMinimizationStrategy', 314, Ljava_lang_Enum_2_classLit, values_46, valueOf_40); +function $clinit_CrossingMinimizationStrategy$Map(){ + $clinit_CrossingMinimizationStrategy$Map = emptyMethod; + $MAP_28 = createValueOfMap(($clinit_CrossingMinimizationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]))); +} + +var $MAP_28; +function $clinit_CuttingStrategy(){ + $clinit_CuttingStrategy = emptyMethod; + ARD = new CuttingStrategy('ARD', 0); + MSD = new CuttingStrategy('MSD', 1); + MANUAL = new CuttingStrategy('MANUAL', 2); +} + +function CuttingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_41(name_0){ + $clinit_CuttingStrategy(); + return valueOf(($clinit_CuttingStrategy$Map() , $MAP_29), name_0); +} + +function values_47(){ + $clinit_CuttingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]); +} + +defineClass(337, 22, {3:1, 35:1, 22:1, 337:1}, CuttingStrategy); +var ARD, MANUAL, MSD; +var Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CuttingStrategy', 337, Ljava_lang_Enum_2_classLit, values_47, valueOf_41); +function $clinit_CuttingStrategy$Map(){ + $clinit_CuttingStrategy$Map = emptyMethod; + $MAP_29 = createValueOfMap(($clinit_CuttingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]))); +} + +var $MAP_29; +function $clinit_CycleBreakingStrategy(){ + $clinit_CycleBreakingStrategy = emptyMethod; + GREEDY = new CycleBreakingStrategy('GREEDY', 0); + DEPTH_FIRST = new CycleBreakingStrategy('DEPTH_FIRST', 1); + INTERACTIVE_2 = new CycleBreakingStrategy('INTERACTIVE', 2); + MODEL_ORDER = new CycleBreakingStrategy('MODEL_ORDER', 3); + GREEDY_MODEL_ORDER = new CycleBreakingStrategy('GREEDY_MODEL_ORDER', 4); +} + +function $create_4(this$static){ + switch (this$static.ordinal) { + case 0: + return new GreedyCycleBreaker; + case 1: + return new DepthFirstCycleBreaker; + case 2: + return new InteractiveCycleBreaker; + case 3: + return new ModelOrderCycleBreaker; + case 4: + return new GreedyModelOrderCycleBreaker; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the cycle breaker ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CycleBreakingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_42(name_0){ + $clinit_CycleBreakingStrategy(); + return valueOf(($clinit_CycleBreakingStrategy$Map() , $MAP_30), name_0); +} + +function values_48(){ + $clinit_CycleBreakingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]); +} + +defineClass(335, 22, {3:1, 35:1, 22:1, 335:1, 246:1, 234:1}, CycleBreakingStrategy); +_.create_1 = function create_9(){ + return $create_4(this); +} +; +_.create_2 = function create_8(){ + return $create_4(this); +} +; +var DEPTH_FIRST, GREEDY, GREEDY_MODEL_ORDER, INTERACTIVE_2, MODEL_ORDER; +var Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CycleBreakingStrategy', 335, Ljava_lang_Enum_2_classLit, values_48, valueOf_42); +function $clinit_CycleBreakingStrategy$Map(){ + $clinit_CycleBreakingStrategy$Map = emptyMethod; + $MAP_30 = createValueOfMap(($clinit_CycleBreakingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]))); +} + +var $MAP_30; +function $clinit_DirectionCongruency(){ + $clinit_DirectionCongruency = emptyMethod; + READING_DIRECTION = new DirectionCongruency('READING_DIRECTION', 0); + ROTATION = new DirectionCongruency('ROTATION', 1); +} + +function DirectionCongruency(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_43(name_0){ + $clinit_DirectionCongruency(); + return valueOf(($clinit_DirectionCongruency$Map() , $MAP_31), name_0); +} + +function values_49(){ + $clinit_DirectionCongruency(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]); +} + +defineClass(419, 22, {3:1, 35:1, 22:1, 419:1}, DirectionCongruency); +var READING_DIRECTION, ROTATION; +var Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'DirectionCongruency', 419, Ljava_lang_Enum_2_classLit, values_49, valueOf_43); +function $clinit_DirectionCongruency$Map(){ + $clinit_DirectionCongruency$Map = emptyMethod; + $MAP_31 = createValueOfMap(($clinit_DirectionCongruency() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]))); +} + +var $MAP_31; +function $clinit_EdgeConstraint(){ + $clinit_EdgeConstraint = emptyMethod; + NONE_2 = new EdgeConstraint('NONE', 0); + INCOMING_ONLY = new EdgeConstraint('INCOMING_ONLY', 1); + OUTGOING_ONLY = new EdgeConstraint('OUTGOING_ONLY', 2); +} + +function EdgeConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_44(name_0){ + $clinit_EdgeConstraint(); + return valueOf(($clinit_EdgeConstraint$Map() , $MAP_32), name_0); +} + +function values_50(){ + $clinit_EdgeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]); +} + +defineClass(450, 22, {3:1, 35:1, 22:1, 450:1}, EdgeConstraint); +var INCOMING_ONLY, NONE_2, OUTGOING_ONLY; +var Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeConstraint', 450, Ljava_lang_Enum_2_classLit, values_50, valueOf_44); +function $clinit_EdgeConstraint$Map(){ + $clinit_EdgeConstraint$Map = emptyMethod; + $MAP_32 = createValueOfMap(($clinit_EdgeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]))); +} + +var $MAP_32; +function $clinit_EdgeLabelSideSelection(){ + $clinit_EdgeLabelSideSelection = emptyMethod; + ALWAYS_UP = new EdgeLabelSideSelection('ALWAYS_UP', 0); + ALWAYS_DOWN = new EdgeLabelSideSelection('ALWAYS_DOWN', 1); + DIRECTION_UP = new EdgeLabelSideSelection('DIRECTION_UP', 2); + DIRECTION_DOWN = new EdgeLabelSideSelection('DIRECTION_DOWN', 3); + SMART_UP = new EdgeLabelSideSelection('SMART_UP', 4); + SMART_DOWN = new EdgeLabelSideSelection('SMART_DOWN', 5); +} + +function $transpose_2(this$static){ + switch (this$static.ordinal) { + case 0: + return ALWAYS_DOWN; + case 1: + return ALWAYS_UP; + case 2: + return DIRECTION_DOWN; + case 3: + return DIRECTION_UP; + case 4: + return SMART_DOWN; + case 5: + return SMART_UP; + default:return null; + } +} + +function EdgeLabelSideSelection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_45(name_0){ + $clinit_EdgeLabelSideSelection(); + return valueOf(($clinit_EdgeLabelSideSelection$Map() , $MAP_33), name_0); +} + +function values_51(){ + $clinit_EdgeLabelSideSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]); +} + +defineClass(276, 22, {3:1, 35:1, 22:1, 276:1}, EdgeLabelSideSelection); +var ALWAYS_DOWN, ALWAYS_UP, DIRECTION_DOWN, DIRECTION_UP, SMART_DOWN, SMART_UP; +var Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeLabelSideSelection', 276, Ljava_lang_Enum_2_classLit, values_51, valueOf_45); +function $clinit_EdgeLabelSideSelection$Map(){ + $clinit_EdgeLabelSideSelection$Map = emptyMethod; + $MAP_33 = createValueOfMap(($clinit_EdgeLabelSideSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]))); +} + +var $MAP_33; +function $clinit_EdgeStraighteningStrategy(){ + $clinit_EdgeStraighteningStrategy = emptyMethod; + NONE_3 = new EdgeStraighteningStrategy('NONE', 0); + IMPROVE_STRAIGHTNESS = new EdgeStraighteningStrategy('IMPROVE_STRAIGHTNESS', 1); +} + +function EdgeStraighteningStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_46(name_0){ + $clinit_EdgeStraighteningStrategy(); + return valueOf(($clinit_EdgeStraighteningStrategy$Map() , $MAP_34), name_0); +} + +function values_52(){ + $clinit_EdgeStraighteningStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]); +} + +defineClass(479, 22, {3:1, 35:1, 22:1, 479:1}, EdgeStraighteningStrategy); +var IMPROVE_STRAIGHTNESS, NONE_3; +var Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeStraighteningStrategy', 479, Ljava_lang_Enum_2_classLit, values_52, valueOf_46); +function $clinit_EdgeStraighteningStrategy$Map(){ + $clinit_EdgeStraighteningStrategy$Map = emptyMethod; + $MAP_34 = createValueOfMap(($clinit_EdgeStraighteningStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]))); +} + +var $MAP_34; +function $clinit_FixedAlignment(){ + $clinit_FixedAlignment = emptyMethod; + NONE_4 = new FixedAlignment('NONE', 0); + LEFTUP = new FixedAlignment('LEFTUP', 1); + RIGHTUP = new FixedAlignment('RIGHTUP', 2); + LEFTDOWN = new FixedAlignment('LEFTDOWN', 3); + RIGHTDOWN = new FixedAlignment('RIGHTDOWN', 4); + BALANCED = new FixedAlignment('BALANCED', 5); +} + +function FixedAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_47(name_0){ + $clinit_FixedAlignment(); + return valueOf(($clinit_FixedAlignment$Map() , $MAP_35), name_0); +} + +function values_53(){ + $clinit_FixedAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]); +} + +defineClass(274, 22, {3:1, 35:1, 22:1, 274:1}, FixedAlignment); +var BALANCED, LEFTDOWN, LEFTUP, NONE_4, RIGHTDOWN, RIGHTUP; +var Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'FixedAlignment', 274, Ljava_lang_Enum_2_classLit, values_53, valueOf_47); +function $clinit_FixedAlignment$Map(){ + $clinit_FixedAlignment$Map = emptyMethod; + $MAP_35 = createValueOfMap(($clinit_FixedAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]))); +} + +var $MAP_35; +function $clinit_GraphCompactionStrategy(){ + $clinit_GraphCompactionStrategy = emptyMethod; + NONE_5 = new GraphCompactionStrategy('NONE', 0); + LEFT_2 = new GraphCompactionStrategy('LEFT', 1); + RIGHT_2 = new GraphCompactionStrategy('RIGHT', 2); + LEFT_RIGHT_CONSTRAINT_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONSTRAINT_LOCKING', 3); + LEFT_RIGHT_CONNECTION_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONNECTION_LOCKING', 4); + EDGE_LENGTH = new GraphCompactionStrategy('EDGE_LENGTH', 5); +} + +function GraphCompactionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_48(name_0){ + $clinit_GraphCompactionStrategy(); + return valueOf(($clinit_GraphCompactionStrategy$Map() , $MAP_36), name_0); +} + +function values_54(){ + $clinit_GraphCompactionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]); +} + +defineClass(275, 22, {3:1, 35:1, 22:1, 275:1}, GraphCompactionStrategy); +var EDGE_LENGTH, LEFT_2, LEFT_RIGHT_CONNECTION_LOCKING, LEFT_RIGHT_CONSTRAINT_LOCKING, NONE_5, RIGHT_2; +var Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphCompactionStrategy', 275, Ljava_lang_Enum_2_classLit, values_54, valueOf_48); +function $clinit_GraphCompactionStrategy$Map(){ + $clinit_GraphCompactionStrategy$Map = emptyMethod; + $MAP_36 = createValueOfMap(($clinit_GraphCompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]))); +} + +var $MAP_36; +function $clinit_GraphProperties(){ + $clinit_GraphProperties = emptyMethod; + COMMENTS = new GraphProperties('COMMENTS', 0); + EXTERNAL_PORTS = new GraphProperties('EXTERNAL_PORTS', 1); + HYPEREDGES = new GraphProperties('HYPEREDGES', 2); + HYPERNODES = new GraphProperties('HYPERNODES', 3); + NON_FREE_PORTS = new GraphProperties('NON_FREE_PORTS', 4); + NORTH_SOUTH_PORTS = new GraphProperties('NORTH_SOUTH_PORTS', 5); + SELF_LOOPS = new GraphProperties('SELF_LOOPS', 6); + CENTER_LABELS = new GraphProperties('CENTER_LABELS', 7); + END_LABELS = new GraphProperties('END_LABELS', 8); + PARTITIONS = new GraphProperties('PARTITIONS', 9); +} + +function GraphProperties(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_49(name_0){ + $clinit_GraphProperties(); + return valueOf(($clinit_GraphProperties$Map() , $MAP_37), name_0); +} + +function values_55(){ + $clinit_GraphProperties(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]); +} + +defineClass(256, 22, {3:1, 35:1, 22:1, 256:1}, GraphProperties); +var CENTER_LABELS, COMMENTS, END_LABELS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, PARTITIONS, SELF_LOOPS; +var Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphProperties', 256, Ljava_lang_Enum_2_classLit, values_55, valueOf_49); +function $clinit_GraphProperties$Map(){ + $clinit_GraphProperties$Map = emptyMethod; + $MAP_37 = createValueOfMap(($clinit_GraphProperties() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]))); +} + +var $MAP_37; +function $clinit_GreedySwitchType(){ + $clinit_GreedySwitchType = emptyMethod; + ONE_SIDED = new GreedySwitchType('ONE_SIDED', 0); + TWO_SIDED = new GreedySwitchType('TWO_SIDED', 1); + OFF = new GreedySwitchType('OFF', 2); +} + +function GreedySwitchType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_50(name_0){ + $clinit_GreedySwitchType(); + return valueOf(($clinit_GreedySwitchType$Map() , $MAP_38), name_0); +} + +function values_56(){ + $clinit_GreedySwitchType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]); +} + +defineClass(292, 22, {3:1, 35:1, 22:1, 292:1}, GreedySwitchType); +var OFF, ONE_SIDED, TWO_SIDED; +var Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GreedySwitchType', 292, Ljava_lang_Enum_2_classLit, values_56, valueOf_50); +function $clinit_GreedySwitchType$Map(){ + $clinit_GreedySwitchType$Map = emptyMethod; + $MAP_38 = createValueOfMap(($clinit_GreedySwitchType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]))); +} + +var $MAP_38; +function $clinit_InLayerConstraint(){ + $clinit_InLayerConstraint = emptyMethod; + NONE_6 = new InLayerConstraint('NONE', 0); + TOP_1 = new InLayerConstraint('TOP', 1); + BOTTOM_0 = new InLayerConstraint('BOTTOM', 2); +} + +function InLayerConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_51(name_0){ + $clinit_InLayerConstraint(); + return valueOf(($clinit_InLayerConstraint$Map() , $MAP_39), name_0); +} + +function values_57(){ + $clinit_InLayerConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]); +} + +defineClass(303, 22, {3:1, 35:1, 22:1, 303:1}, InLayerConstraint); +var BOTTOM_0, NONE_6, TOP_1; +var Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InLayerConstraint', 303, Ljava_lang_Enum_2_classLit, values_57, valueOf_51); +function $clinit_InLayerConstraint$Map(){ + $clinit_InLayerConstraint$Map = emptyMethod; + $MAP_39 = createValueOfMap(($clinit_InLayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]))); +} + +var $MAP_39; +function $clinit_InteractiveReferencePoint(){ + $clinit_InteractiveReferencePoint = emptyMethod; + CENTER_3 = new InteractiveReferencePoint('CENTER', 0); + TOP_LEFT = new InteractiveReferencePoint('TOP_LEFT', 1); +} + +function InteractiveReferencePoint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_52(name_0){ + $clinit_InteractiveReferencePoint(); + return valueOf(($clinit_InteractiveReferencePoint$Map() , $MAP_40), name_0); +} + +function values_58(){ + $clinit_InteractiveReferencePoint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]); +} + +defineClass(420, 22, {3:1, 35:1, 22:1, 420:1}, InteractiveReferencePoint); +var CENTER_3, TOP_LEFT; +var Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InteractiveReferencePoint', 420, Ljava_lang_Enum_2_classLit, values_58, valueOf_52); +function $clinit_InteractiveReferencePoint$Map(){ + $clinit_InteractiveReferencePoint$Map = emptyMethod; + $MAP_40 = createValueOfMap(($clinit_InteractiveReferencePoint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]))); +} + +var $MAP_40; +function $clinit_InternalProperties_1(){ + $clinit_InternalProperties_1 = emptyMethod; + var all, all0; + ORIGIN_0 = new Property('origin'); + COORDINATE_SYSTEM_ORIGIN = new Property('coordinateOrigin'); + PROCESSORS = new Property('processors'); + COMPOUND_NODE = new Property_0('compoundNode', ($clinit_Boolean() , false)); + INSIDE_CONNECTIONS = new Property_0('insideConnections', false); + ORIGINAL_BENDPOINTS = new Property('originalBendpoints'); + ORIGINAL_DUMMY_NODE_POSITION = new Property('originalDummyNodePosition'); + ORIGINAL_LABEL_EDGE = new Property('originalLabelEdge'); + REPRESENTED_LABELS = new Property('representedLabels'); + END_LABELS_0 = new Property('endLabels'); + END_LABEL_EDGE = new Property('endLabel.origin'); + LABEL_SIDE = new Property_0('labelSide', ($clinit_LabelSide() , UNKNOWN)); + MAX_EDGE_THICKNESS = new Property_0('maxEdgeThickness', 0); + REVERSED = new Property_0('reversed', false); + RANDOM_0 = new Property('random'); + LONG_EDGE_SOURCE = new Property_0('longEdgeSource', null); + LONG_EDGE_TARGET = new Property_0('longEdgeTarget', null); + LONG_EDGE_HAS_LABEL_DUMMIES = new Property_0('longEdgeHasLabelDummies', false); + LONG_EDGE_BEFORE_LABEL_DUMMY = new Property_0('longEdgeBeforeLabelDummy', false); + EDGE_CONSTRAINT = new Property_0('edgeConstraint', ($clinit_EdgeConstraint() , NONE_2)); + IN_LAYER_LAYOUT_UNIT = new Property('inLayerLayoutUnit'); + IN_LAYER_CONSTRAINT = new Property_0('inLayerConstraint', ($clinit_InLayerConstraint() , NONE_6)); + IN_LAYER_SUCCESSOR_CONSTRAINTS = new Property_0('inLayerSuccessorConstraint', new ArrayList); + IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES = new Property_0('inLayerSuccessorConstraintBetweenNonDummies', false); + PORT_DUMMY = new Property('portDummy'); + CROSSING_HINT = new Property_0('crossingHint', valueOf_4(0)); + GRAPH_PROPERTIES = new Property_0('graphProperties', (all0 = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0))); + EXT_PORT_SIDE = new Property_0('externalPortSide', ($clinit_PortSide() , UNDEFINED_5)); + EXT_PORT_SIZE = new Property_0('externalPortSize', new KVector); + EXT_PORT_REPLACED_DUMMIES = new Property('externalPortReplacedDummies'); + EXT_PORT_REPLACED_DUMMY = new Property('externalPortReplacedDummy'); + EXT_PORT_CONNECTIONS = new Property_0('externalPortConnections', (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + PORT_RATIO_OR_POSITION_0 = new Property_0('portRatioOrPosition', 0); + BARYCENTER_ASSOCIATES = new Property('barycenterAssociates'); + TOP_COMMENTS = new Property('TopSideComments'); + BOTTOM_COMMENTS = new Property('BottomSideComments'); + COMMENT_CONN_PORT = new Property('CommentConnectionPort'); + INPUT_COLLECT = new Property_0('inputCollect', false); + OUTPUT_COLLECT = new Property_0('outputCollect', false); + CYCLIC = new Property_0('cyclic', false); + CROSS_HIERARCHY_MAP = new Property('crossHierarchyMap'); + TARGET_OFFSET = new Property('targetOffset'); + new Property_0('splineLabelSize', new KVector); + SPACINGS = new Property('spacings'); + PARTITION_DUMMY = new Property_0('partitionConstraint', false); + BREAKING_POINT_INFO = new Property('breakingPoint.info'); + SPLINE_SURVIVING_EDGE = new Property('splines.survivingEdge'); + SPLINE_ROUTE_START = new Property('splines.route.start'); + SPLINE_EDGE_CHAIN = new Property('splines.edgeChain'); + ORIGINAL_PORT_CONSTRAINTS = new Property('originalPortConstraints'); + SELF_LOOP_HOLDER = new Property('selfLoopHolder'); + SPLINE_NS_PORT_Y_COORD = new Property('splines.nsPortY'); + MODEL_ORDER_0 = new Property('modelOrder'); + LONG_EDGE_TARGET_NODE = new Property('longEdgeTargetNode'); + FIRST_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); + SECOND_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); + HIDDEN_NODES = new Property('layerConstraints.hiddenNodes'); + ORIGINAL_OPPOSITE_PORT = new Property('layerConstraints.opposidePort'); + TARGET_NODE_MODEL_ORDER = new Property('targetNode.modelOrder'); +} + +var BARYCENTER_ASSOCIATES, BOTTOM_COMMENTS, BREAKING_POINT_INFO, COMMENT_CONN_PORT, COMPOUND_NODE, COORDINATE_SYSTEM_ORIGIN, CROSSING_HINT, CROSS_HIERARCHY_MAP, CYCLIC, EDGE_CONSTRAINT, END_LABELS_0, END_LABEL_EDGE, EXT_PORT_CONNECTIONS, EXT_PORT_REPLACED_DUMMIES, EXT_PORT_REPLACED_DUMMY, EXT_PORT_SIDE, EXT_PORT_SIZE, FIRST_TRY_WITH_INITIAL_ORDER, GRAPH_PROPERTIES, HIDDEN_NODES, INPUT_COLLECT, INSIDE_CONNECTIONS, IN_LAYER_CONSTRAINT, IN_LAYER_LAYOUT_UNIT, IN_LAYER_SUCCESSOR_CONSTRAINTS, IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES, LABEL_SIDE, LONG_EDGE_BEFORE_LABEL_DUMMY, LONG_EDGE_HAS_LABEL_DUMMIES, LONG_EDGE_SOURCE, LONG_EDGE_TARGET, LONG_EDGE_TARGET_NODE, MAX_EDGE_THICKNESS, MODEL_ORDER_0, ORIGIN_0, ORIGINAL_BENDPOINTS, ORIGINAL_DUMMY_NODE_POSITION, ORIGINAL_LABEL_EDGE, ORIGINAL_OPPOSITE_PORT, ORIGINAL_PORT_CONSTRAINTS, OUTPUT_COLLECT, PARTITION_DUMMY, PORT_DUMMY, PORT_RATIO_OR_POSITION_0, PROCESSORS, RANDOM_0, REPRESENTED_LABELS, REVERSED, SECOND_TRY_WITH_INITIAL_ORDER, SELF_LOOP_HOLDER, SPACINGS, SPLINE_EDGE_CHAIN, SPLINE_NS_PORT_Y_COORD, SPLINE_ROUTE_START, SPLINE_SURVIVING_EDGE, TARGET_NODE_MODEL_ORDER, TARGET_OFFSET, TOP_COMMENTS; +function $clinit_LayerConstraint(){ + $clinit_LayerConstraint = emptyMethod; + NONE_7 = new LayerConstraint('NONE', 0); + FIRST = new LayerConstraint('FIRST', 1); + FIRST_SEPARATE_0 = new LayerConstraint('FIRST_SEPARATE', 2); + LAST = new LayerConstraint('LAST', 3); + LAST_SEPARATE_0 = new LayerConstraint('LAST_SEPARATE', 4); +} + +function LayerConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_53(name_0){ + $clinit_LayerConstraint(); + return valueOf(($clinit_LayerConstraint$Map() , $MAP_41), name_0); +} + +function values_59(){ + $clinit_LayerConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]); +} + +defineClass(163, 22, {3:1, 35:1, 22:1, 163:1}, LayerConstraint); +var FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0, NONE_7; +var Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayerConstraint', 163, Ljava_lang_Enum_2_classLit, values_59, valueOf_53); +function $clinit_LayerConstraint$Map(){ + $clinit_LayerConstraint$Map = emptyMethod; + $MAP_41 = createValueOfMap(($clinit_LayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]))); +} + +var $MAP_41; +function $clinit_LayeredMetaDataProvider(){ + $clinit_LayeredMetaDataProvider = emptyMethod; + DIRECTION_CONGRUENCY_DEFAULT = ($clinit_DirectionCongruency() , READING_DIRECTION); + DIRECTION_CONGRUENCY = new Property_1('org.eclipse.elk.layered.directionCongruency', DIRECTION_CONGRUENCY_DEFAULT); + FEEDBACK_EDGES = new Property_1('org.eclipse.elk.layered.feedbackEdges', ($clinit_Boolean() , false)); + INTERACTIVE_REFERENCE_POINT_DEFAULT = ($clinit_InteractiveReferencePoint() , CENTER_3); + INTERACTIVE_REFERENCE_POINT = new Property_1('org.eclipse.elk.layered.interactiveReferencePoint', INTERACTIVE_REFERENCE_POINT_DEFAULT); + MERGE_EDGES = new Property_1('org.eclipse.elk.layered.mergeEdges', false); + MERGE_HIERARCHY_EDGES = new Property_1('org.eclipse.elk.layered.mergeHierarchyEdges', true); + ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES = new Property_1('org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', false); + PORT_SORTING_STRATEGY_DEFAULT = ($clinit_PortSortingStrategy() , INPUT_ORDER); + PORT_SORTING_STRATEGY = new Property_1('org.eclipse.elk.layered.portSortingStrategy', PORT_SORTING_STRATEGY_DEFAULT); + valueOf_4(1); + THOROUGHNESS = new Property_1('org.eclipse.elk.layered.thoroughness', valueOf_4(7)); + UNNECESSARY_BENDPOINTS = new Property_1('org.eclipse.elk.layered.unnecessaryBendpoints', false); + GENERATE_POSITION_AND_LAYER_IDS = new Property_1('org.eclipse.elk.layered.generatePositionAndLayerIds', false); + CYCLE_BREAKING_STRATEGY_DEFAULT = ($clinit_CycleBreakingStrategy() , GREEDY); + CYCLE_BREAKING_STRATEGY = new Property_1('org.eclipse.elk.layered.cycleBreaking.strategy', CYCLE_BREAKING_STRATEGY_DEFAULT); + LAYERING_STRATEGY_DEFAULT = ($clinit_LayeringStrategy() , NETWORK_SIMPLEX); + LAYERING_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.strategy', LAYERING_STRATEGY_DEFAULT); + LAYERING_LAYER_CONSTRAINT_DEFAULT = ($clinit_LayerConstraint() , NONE_7); + LAYERING_LAYER_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerConstraint', LAYERING_LAYER_CONSTRAINT_DEFAULT); + valueOf_4(-1); + LAYERING_LAYER_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerChoiceConstraint', valueOf_4(-1)); + valueOf_4(-1); + LAYERING_LAYER_ID = new Property_1('org.eclipse.elk.layered.layering.layerId', valueOf_4(-1)); + valueOf_4(-1); + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', valueOf_4(4)); + valueOf_4(-1); + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', valueOf_4(2)); + LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT = ($clinit_NodePromotionStrategy() , NONE_9); + LAYERING_NODE_PROMOTION_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.strategy', LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT); + valueOf_4(0); + LAYERING_NODE_PROMOTION_MAX_ITERATIONS = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.maxIterations', valueOf_4(0)); + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND = new Property_1('org.eclipse.elk.layered.layering.coffmanGraham.layerBound', valueOf_4($intern_0)); + CROSSING_MINIMIZATION_STRATEGY_DEFAULT = ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP); + CROSSING_MINIMIZATION_STRATEGY = new Property_1('org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_STRATEGY_DEFAULT); + CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', false); + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS = new Property_1('org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 0.1); + CROSSING_MINIMIZATION_SEMI_INTERACTIVE = new Property_1('org.eclipse.elk.layered.crossingMinimization.semiInteractive', false); + valueOf_4(-1); + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', valueOf_4(-1)); + valueOf_4(-1); + CROSSING_MINIMIZATION_POSITION_ID = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionId', valueOf_4(-1)); + valueOf_4(0); + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', valueOf_4(40)); + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT = ($clinit_GreedySwitchType() , TWO_SIDED); + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT); + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT = OFF; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT); + NODE_PLACEMENT_STRATEGY_DEFAULT = ($clinit_NodePlacementStrategy() , BRANDES_KOEPF); + NODE_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_STRATEGY_DEFAULT); + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES = new Property('org.eclipse.elk.layered.nodePlacement.favorStraightEdges'); + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT = ($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS); + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT); + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT = ($clinit_FixedAlignment() , NONE_4); + NODE_PLACEMENT_BK_FIXED_ALIGNMENT = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT); + new ExclusiveBounds$ExclusiveLowerBound; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING = new Property_1('org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 0.3); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY = new Property('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT = ($clinit_NodeFlexibility() , NONE_8); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT = new Property_1('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT); + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT = ($clinit_SelfLoopDistributionStrategy() , NORTH_2); + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT); + EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT = ($clinit_SelfLoopOrderingStrategy() , STACKED); + EDGE_ROUTING_SELF_LOOP_ORDERING = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT); + EDGE_ROUTING_SPLINES_MODE_DEFAULT = ($clinit_SplineRoutingMode() , SLOPPY); + EDGE_ROUTING_SPLINES_MODE = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_MODE_DEFAULT); + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 0.2); + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH = new Property_1('org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 2); + SPACING_BASE_VALUE = new Property_1('org.eclipse.elk.layered.spacing.baseValue', null); + SPACING_EDGE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', 10); + SPACING_EDGE_EDGE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', 10); + SPACING_NODE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', 20); + valueOf_4(0); + PRIORITY_DIRECTION = new Property_1('org.eclipse.elk.layered.priority.direction', valueOf_4(0)); + valueOf_4(0); + PRIORITY_SHORTNESS = new Property_1('org.eclipse.elk.layered.priority.shortness', valueOf_4(0)); + valueOf_4(0); + PRIORITY_STRAIGHTNESS = new Property_1('org.eclipse.elk.layered.priority.straightness', valueOf_4(0)); + COMPACTION_CONNECTED_COMPONENTS = new Property_1('org.eclipse.elk.layered.compaction.connectedComponents', false); + COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT = ($clinit_GraphCompactionStrategy() , NONE_5); + COMPACTION_POST_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.strategy', COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT); + COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT = ($clinit_ConstraintCalculationStrategy() , SCANLINE); + COMPACTION_POST_COMPACTION_CONSTRAINTS = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.constraints', COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT); + HIGH_DEGREE_NODES_TREATMENT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treatment', false); + valueOf_4(0); + HIGH_DEGREE_NODES_THRESHOLD = new Property_1('org.eclipse.elk.layered.highDegreeNodes.threshold', valueOf_4(16)); + valueOf_4(0); + HIGH_DEGREE_NODES_TREE_HEIGHT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treeHeight', valueOf_4(5)); + WRAPPING_STRATEGY_DEFAULT = ($clinit_WrappingStrategy() , OFF_0); + WRAPPING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.strategy', WRAPPING_STRATEGY_DEFAULT); + WRAPPING_ADDITIONAL_EDGE_SPACING = new Property_1('org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 10); + WRAPPING_CORRECTION_FACTOR = new Property_1('org.eclipse.elk.layered.wrapping.correctionFactor', 1); + WRAPPING_CUTTING_STRATEGY_DEFAULT = ($clinit_CuttingStrategy() , MSD); + WRAPPING_CUTTING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_STRATEGY_DEFAULT); + WRAPPING_CUTTING_CUTS = new Property('org.eclipse.elk.layered.wrapping.cutting.cuts'); + WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT = valueOf_4(1); + valueOf_4(0); + WRAPPING_CUTTING_MSD_FREEDOM = new Property_1('org.eclipse.elk.layered.wrapping.cutting.msd.freedom', WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT); + WRAPPING_VALIDIFY_STRATEGY_DEFAULT = ($clinit_ValidifyStrategy() , GREEDY_0); + WRAPPING_VALIDIFY_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.validify.strategy', WRAPPING_VALIDIFY_STRATEGY_DEFAULT); + WRAPPING_VALIDIFY_FORBIDDEN_INDICES = new Property('org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'); + WRAPPING_MULTI_EDGE_IMPROVE_CUTS = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 2); + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', true); + EDGE_LABELS_SIDE_SELECTION_DEFAULT = ($clinit_EdgeLabelSideSelection() , SMART_DOWN); + EDGE_LABELS_SIDE_SELECTION = new Property_1('org.eclipse.elk.layered.edgeLabels.sideSelection', EDGE_LABELS_SIDE_SELECTION_DEFAULT); + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT = ($clinit_CenterEdgeLabelPlacementStrategy() , MEDIAN_LAYER); + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT = ($clinit_OrderingStrategy() , NONE_10); + CONSIDER_MODEL_ORDER_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.strategy', CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_NO_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.considerModelOrder.noModelOrder', false); + CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT = ($clinit_ComponentOrderingStrategy() , NONE); + CONSIDER_MODEL_ORDER_COMPONENTS = new Property_1('org.eclipse.elk.layered.considerModelOrder.components', CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT); + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT = ($clinit_LongEdgeOrderingStrategy() , DUMMY_NODE_OVER); + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 0); + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 0); + INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0 = INTERACTIVE_2; + INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1 = INTERACTIVE_1; + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0 = COFFMAN_GRAHAM; + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0 = ($clinit_HierarchyHandling() , INCLUDE_CHILDREN); + CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1 = INCLUDE_CHILDREN; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1 = BRANDES_KOEPF; + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0 = LINEAR_SEGMENTS; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0 = ($clinit_EdgeRouting() , SPLINES); + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0 = SPLINES; + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1 = SLOPPY; + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0 = POLYLINE; + WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0 = MANUAL; + WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0 = MSD; + WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; +} + +function LayeredMetaDataProvider(){ + $clinit_LayeredMetaDataProvider(); +} + +defineClass(848, 1, $intern_90, LayeredMetaDataProvider); +_.apply_4 = function apply_135(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.directionCongruency'), ''), 'Direction Congruency'), 'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'), DIRECTION_CONGRUENCY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.feedbackEdges'), ''), 'Feedback Edges'), 'Whether feedback edges should be highlighted by routing around the nodes.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.interactiveReferencePoint'), ''), 'Interactive Reference Point'), 'Determines which point of a node is considered by interactive layout phases.'), INTERACTIVE_REFERENCE_POINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.cycleBreaking.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.crossingMinimization.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeEdges'), ''), 'Merge Edges'), 'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeHierarchyEdges'), ''), 'Merge Hierarchy-Crossing Edges'), 'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($legacyIds($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides'), ''), 'Allow Non-Flow Ports To Switch Sides'), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PORTS)), stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['org.eclipse.elk.layered.northOrSouthPort'])))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.portSortingStrategy'), ''), 'Port Sorting Strategy'), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), PORT_SORTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.thoroughness'), ''), 'Thoroughness'), 'How much effort should be spent to produce a nice layout.'), valueOf_4(7)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.unnecessaryBendpoints'), ''), 'Add Unnecessary Bendpoints'), 'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.generatePositionAndLayerIds'), ''), 'Generate Position and Layer IDs'), 'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.cycleBreaking.strategy'), 'cycleBreaking'), 'Cycle Breaking Strategy'), 'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'), CYCLE_BREAKING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.strategy'), 'layering'), 'Node Layering Strategy'), 'Strategy for node layering.'), LAYERING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerConstraint'), 'layering'), 'Layer Constraint'), 'Determines a constraint on the placement of the node regarding the layering.'), LAYERING_LAYER_CONSTRAINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerChoiceConstraint'), 'layering'), 'Layer Choice Constraint'), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerId'), 'layering'), 'Layer ID'), 'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth'), 'layering.minWidth'), 'Upper Bound On Width [MinWidth Layerer]'), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(4)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor'), 'layering.minWidth'), 'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(2)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.strategy'), 'layering.nodePromotion'), 'Node Promotion Strategy'), 'Reduces number of dummy nodes after layering phase (if possible).'), LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations'), 'layering.nodePromotion'), 'Max Node Promotion Iterations'), 'Limits the number of iterations for node promotion.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound'), 'layering.coffmanGraham'), 'Layer Bound'), 'The maximum number of nodes allowed per layer.'), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', 'org.eclipse.elk.layered.layering.strategy', LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.strategy'), 'crossingMinimization'), 'Crossing Minimization Strategy'), 'Strategy for crossing minimization.'), CROSSING_MINIMIZATION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder'), 'crossingMinimization'), 'Force Node Model Order'), 'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness'), 'crossingMinimization'), 'Hierarchical Sweepiness'), 'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'), 0.1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive'), 'crossingMinimization'), 'Semi-Interactive Crossing Minimization'), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint'), 'crossingMinimization'), 'Position Choice Constraint'), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionId'), 'crossingMinimization'), 'Position ID'), 'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Activation Threshold'), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), valueOf_4(40)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Crossing Minimization'), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type'), 'crossingMinimization.greedySwitchHierarchical'), 'Greedy Switch Crossing Minimization (hierarchical)'), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.strategy'), 'nodePlacement'), 'Node Placement Strategy'), 'Strategy for node placement.'), NODE_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges'), 'nodePlacement'), 'Favor Straight Edges Over Balancing'), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening'), 'nodePlacement.bk'), 'BK Edge Straightening'), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment'), 'nodePlacement.bk'), 'BK Fixed Alignment'), 'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'), NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening'), 'nodePlacement.linearSegments'), 'Linear Segments Deflection Dampening'), 'Dampens the movement of nodes to keep the diagram from getting too large.'), 0.3), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'), 'nodePlacement.networkSimplex'), 'Node Flexibility'), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default'), 'nodePlacement.networkSimplex.nodeFlexibility'), 'Node Flexibility Default'), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution'), 'edgeRouting'), 'Self-Loop Distribution'), 'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering'), 'edgeRouting'), 'Self-Loop Ordering'), 'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.mode'), 'edgeRouting.splines'), 'Spline Routing Mode'), 'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'), EDGE_ROUTING_SPLINES_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.mode', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor'), 'edgeRouting.splines.sloppy'), 'Sloppy Spline Layer Spacing Factor'), 'Spacing factor for routing area between layers when using sloppy spline routing.'), 0.2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth'), 'edgeRouting.polyline'), 'Sloped Edge Zone Width'), 'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.baseValue'), 'spacing'), 'Spacing Base Value'), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers'), 'spacing'), 'Edge Node Between Layers Spacing'), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers'), 'spacing'), 'Edge Edge Between Layer Spacing'), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers'), 'spacing'), 'Node Node Between Layers Spacing'), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.direction'), 'priority'), 'Direction Priority'), 'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.shortness'), 'priority'), 'Shortness Priority'), 'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.straightness'), 'priority'), 'Straightness Priority'), 'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.connectedComponents'), 'compaction'), 'Connected Components Compaction'), 'Tries to further compact components (disconnected sub-graphs).'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.compaction.connectedComponents', 'org.eclipse.elk.separateConnectedComponents', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.strategy'), 'compaction.postCompaction'), 'Post Compaction Strategy'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.constraints'), 'compaction.postCompaction'), 'Post Compaction Constraint Calculation'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treatment'), 'highDegreeNodes'), 'High Degree Node Treatment'), 'Makes room around high degree nodes to place leafs and trees.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.threshold'), 'highDegreeNodes'), 'High Degree Node Threshold'), 'Whether a node is considered to have a high degree.'), valueOf_4(16)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.threshold', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight'), 'highDegreeNodes'), 'High Degree Node Maximum Tree Height'), 'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'), valueOf_4(5)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.strategy'), 'wrapping'), 'Graph Wrapping Strategy'), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), WRAPPING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing'), 'wrapping'), 'Additional Wrapped Edges Spacing'), 'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.correctionFactor'), 'wrapping'), 'Correction Factor for Wrapping'), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.strategy'), 'wrapping.cutting'), 'Cutting Strategy'), 'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'), WRAPPING_CUTTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.cuts'), 'wrapping.cutting'), 'Manually Specified Cuts'), 'Allows the user to specify her own cuts for a certain graph.'), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.cuts', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom'), 'wrapping.cutting.msd'), 'MSD Freedom'), 'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'), WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.strategy'), 'wrapping.validify'), 'Validification Strategy'), 'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'), WRAPPING_VALIDIFY_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'), 'wrapping.validify'), 'Valid Indices for Wrapping'), null), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts'), 'wrapping.multiEdge'), 'Improve Cuts'), 'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty'), 'wrapping.multiEdge'), 'Distance Penalty When Improving Cuts'), null), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges'), 'wrapping.multiEdge'), 'Improve Wrapped Edges'), 'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.sideSelection'), 'edgeLabels'), 'Edge Label Side Selection'), 'Method to decide on edge label sides.'), EDGE_LABELS_SIDE_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy'), 'edgeLabels'), 'Edge Center Label Placement Strategy'), 'Determines in which layer center labels of long edges should be placed.'), EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.strategy'), 'considerModelOrder'), 'Consider Model Order'), 'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'), CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.noModelOrder'), 'considerModelOrder'), 'No Model Order'), 'Set on a node to not set a model order for this node even though it is a real node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.components'), 'considerModelOrder'), 'Consider Model Order for Components'), 'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'), CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.components', 'org.eclipse.elk.separateConnectedComponents', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy'), 'considerModelOrder'), 'Long Edge Ordering Strategy'), 'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'), CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence'), 'considerModelOrder'), 'Crossing Counter Node Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence'), 'considerModelOrder'), 'Crossing Counter Port Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); + $apply_16((new LayeredOptions , registry)); +} +; +var ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES, COMPACTION_CONNECTED_COMPONENTS, COMPACTION_POST_COMPACTION_CONSTRAINTS, COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT, COMPACTION_POST_COMPACTION_STRATEGY, COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_COMPONENTS, CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER, CONSIDER_MODEL_ORDER_STRATEGY, CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT, CROSSING_MINIMIZATION_POSITION_ID, CROSSING_MINIMIZATION_SEMI_INTERACTIVE, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_STRATEGY, CROSSING_MINIMIZATION_STRATEGY_DEFAULT, CYCLE_BREAKING_STRATEGY, CYCLE_BREAKING_STRATEGY_DEFAULT, DIRECTION_CONGRUENCY, DIRECTION_CONGRUENCY_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT, EDGE_LABELS_SIDE_SELECTION, EDGE_LABELS_SIDE_SELECTION_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT, EDGE_ROUTING_SELF_LOOP_ORDERING, EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT, EDGE_ROUTING_SPLINES_MODE, EDGE_ROUTING_SPLINES_MODE_DEFAULT, EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1, FEEDBACK_EDGES, GENERATE_POSITION_AND_LAYER_IDS, HIGH_DEGREE_NODES_THRESHOLD, HIGH_DEGREE_NODES_TREATMENT, HIGH_DEGREE_NODES_TREE_HEIGHT, INTERACTIVE_REFERENCE_POINT, INTERACTIVE_REFERENCE_POINT_DEFAULT, INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1, INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0, LAYERING_LAYER_CHOICE_CONSTRAINT, LAYERING_LAYER_CONSTRAINT, LAYERING_LAYER_CONSTRAINT_DEFAULT, LAYERING_LAYER_ID, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS, LAYERING_NODE_PROMOTION_STRATEGY, LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT, LAYERING_STRATEGY, LAYERING_STRATEGY_DEFAULT, MERGE_EDGES, MERGE_HIERARCHY_EDGES, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_STRATEGY, NODE_PLACEMENT_STRATEGY_DEFAULT, PORT_SORTING_STRATEGY, PORT_SORTING_STRATEGY_DEFAULT, PRIORITY_DIRECTION, PRIORITY_SHORTNESS, PRIORITY_STRAIGHTNESS, SPACING_BASE_VALUE, SPACING_EDGE_EDGE_BETWEEN_LAYERS, SPACING_EDGE_NODE_BETWEEN_LAYERS, SPACING_NODE_NODE_BETWEEN_LAYERS, THOROUGHNESS, UNNECESSARY_BENDPOINTS, WRAPPING_ADDITIONAL_EDGE_SPACING, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1, WRAPPING_CORRECTION_FACTOR, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1, WRAPPING_CUTTING_CUTS, WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_MSD_FREEDOM, WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT, WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY, WRAPPING_CUTTING_STRATEGY_DEFAULT, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0, WRAPPING_STRATEGY, WRAPPING_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_FORBIDDEN_INDICES, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1, WRAPPING_VALIDIFY_STRATEGY, WRAPPING_VALIDIFY_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1; +var Lorg_eclipse_elk_alg_layered_options_LayeredMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredMetaDataProvider', 848); +function $clinit_LayeredOptions(){ + $clinit_LayeredOptions = emptyMethod; + SPACING_COMMENT_COMMENT = ($clinit_CoreOptions() , SPACING_COMMENT_COMMENT_0); + SPACING_COMMENT_NODE = SPACING_COMMENT_NODE_0; + SPACING_COMPONENT_COMPONENT_0 = SPACING_COMPONENT_COMPONENT_1; + SPACING_EDGE_EDGE = SPACING_EDGE_EDGE_0; + SPACING_EDGE_LABEL_0 = SPACING_EDGE_LABEL_1; + SPACING_EDGE_NODE = SPACING_EDGE_NODE_0; + SPACING_LABEL_LABEL = SPACING_LABEL_LABEL_0; + SPACING_LABEL_PORT_HORIZONTAL = SPACING_LABEL_PORT_HORIZONTAL_0; + SPACING_LABEL_PORT_VERTICAL = SPACING_LABEL_PORT_VERTICAL_0; + SPACING_LABEL_NODE = SPACING_LABEL_NODE_0; + SPACING_NODE_NODE_0 = SPACING_NODE_NODE_6; + SPACING_NODE_SELF_LOOP = SPACING_NODE_SELF_LOOP_0; + SPACING_PORT_PORT = SPACING_PORT_PORT_0; + SPACING_INDIVIDUAL = SPACING_INDIVIDUAL_0; + SPACING_BASE_VALUE_0 = ($clinit_LayeredMetaDataProvider() , SPACING_BASE_VALUE); + SPACING_EDGE_EDGE_BETWEEN_LAYERS_0 = SPACING_EDGE_EDGE_BETWEEN_LAYERS; + SPACING_EDGE_NODE_BETWEEN_LAYERS_0 = SPACING_EDGE_NODE_BETWEEN_LAYERS; + SPACING_NODE_NODE_BETWEEN_LAYERS_0 = SPACING_NODE_NODE_BETWEEN_LAYERS; + PRIORITY_0 = new Property_2(PRIORITY_3, valueOf_4(0)); + PRIORITY_DIRECTION_0 = PRIORITY_DIRECTION; + PRIORITY_SHORTNESS_0 = PRIORITY_SHORTNESS; + PRIORITY_STRAIGHTNESS_0 = PRIORITY_STRAIGHTNESS; + WRAPPING_STRATEGY_0 = WRAPPING_STRATEGY; + WRAPPING_ADDITIONAL_EDGE_SPACING_0 = WRAPPING_ADDITIONAL_EDGE_SPACING; + WRAPPING_CORRECTION_FACTOR_0 = WRAPPING_CORRECTION_FACTOR; + WRAPPING_CUTTING_STRATEGY_0 = WRAPPING_CUTTING_STRATEGY; + WRAPPING_CUTTING_CUTS_0 = WRAPPING_CUTTING_CUTS; + WRAPPING_CUTTING_MSD_FREEDOM_0 = WRAPPING_CUTTING_MSD_FREEDOM; + WRAPPING_VALIDIFY_STRATEGY_0 = WRAPPING_VALIDIFY_STRATEGY; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0 = WRAPPING_VALIDIFY_FORBIDDEN_INDICES; + WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0 = WRAPPING_MULTI_EDGE_IMPROVE_CUTS; + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0 = WRAPPING_MULTI_EDGE_DISTANCE_PENALTY; + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0 = WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT; + EDGE_ROUTING_SPLINES_MODE_0 = EDGE_ROUTING_SPLINES_MODE; + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0 = EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR; + PADDING_DEFAULT_0 = new ElkPadding_0(12); + PADDING_1 = new Property_2(PADDING_6, PADDING_DEFAULT_0); + EDGE_ROUTING_DEFAULT = ($clinit_EdgeRouting() , ORTHOGONAL); + EDGE_ROUTING = new Property_2(EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT); + PORT_BORDER_OFFSET = new Property_2(PORT_BORDER_OFFSET_0, 0); + RANDOM_SEED_0 = new Property_2(RANDOM_SEED_1, valueOf_4(1)); + ASPECT_RATIO_1 = new Property_2(ASPECT_RATIO_5, $intern_102); + NO_LAYOUT = NO_LAYOUT_0; + PORT_CONSTRAINTS_0 = PORT_CONSTRAINTS_1; + PORT_SIDE = PORT_SIDE_0; + DEBUG_MODE = DEBUG_MODE_3; + ALIGNMENT = ALIGNMENT_0; + HIERARCHY_HANDLING = HIERARCHY_HANDLING_0; + SEPARATE_CONNECTED_COMPONENTS_0 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + INSIDE_SELF_LOOPS_ACTIVATE = INSIDE_SELF_LOOPS_ACTIVATE_0; + INSIDE_SELF_LOOPS_YO = INSIDE_SELF_LOOPS_YO_0; + NODE_SIZE_CONSTRAINTS_1 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_OPTIONS_1 = NODE_SIZE_OPTIONS_6; + NODE_SIZE_FIXED_GRAPH_SIZE = NODE_SIZE_FIXED_GRAPH_SIZE_0; + DIRECTION_DEFAULT = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION = new Property_2(DIRECTION_0, DIRECTION_DEFAULT); + NODE_LABELS_PLACEMENT_1 = NODE_LABELS_PLACEMENT_5; + NODE_LABELS_PADDING = NODE_LABELS_PADDING_0; + PORT_LABELS_PLACEMENT_1 = PORT_LABELS_PLACEMENT_5; + PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE = PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0; + PORT_LABELS_TREAT_AS_GROUP = PORT_LABELS_TREAT_AS_GROUP_0; + PORT_ALIGNMENT_DEFAULT_DEFAULT = ($clinit_PortAlignment() , JUSTIFIED); + new Property_2(PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT); + PORT_ALIGNMENT_NORTH = PORT_ALIGNMENT_NORTH_0; + PORT_ALIGNMENT_SOUTH = PORT_ALIGNMENT_SOUTH_0; + PORT_ALIGNMENT_WEST = PORT_ALIGNMENT_WEST_0; + PORT_ALIGNMENT_EAST = PORT_ALIGNMENT_EAST_0; + UNNECESSARY_BENDPOINTS_0 = UNNECESSARY_BENDPOINTS; + LAYERING_STRATEGY_0 = LAYERING_STRATEGY; + LAYERING_NODE_PROMOTION_STRATEGY_0 = LAYERING_NODE_PROMOTION_STRATEGY; + THOROUGHNESS_0 = THOROUGHNESS; + LAYERING_LAYER_CONSTRAINT_0 = LAYERING_LAYER_CONSTRAINT; + CYCLE_BREAKING_STRATEGY_0 = CYCLE_BREAKING_STRATEGY; + CROSSING_MINIMIZATION_STRATEGY_0 = CROSSING_MINIMIZATION_STRATEGY; + CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0 = CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER; + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD; + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE; + CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0 = CROSSING_MINIMIZATION_SEMI_INTERACTIVE; + MERGE_EDGES_0 = MERGE_EDGES; + MERGE_HIERARCHY_EDGES_0 = MERGE_HIERARCHY_EDGES; + INTERACTIVE_REFERENCE_POINT_0 = INTERACTIVE_REFERENCE_POINT; + NODE_PLACEMENT_STRATEGY_0 = NODE_PLACEMENT_STRATEGY; + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0 = NODE_PLACEMENT_BK_FIXED_ALIGNMENT; + FEEDBACK_EDGES_0 = FEEDBACK_EDGES; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0 = NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING; + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0 = EDGE_ROUTING_SELF_LOOP_DISTRIBUTION; + EDGE_ROUTING_SELF_LOOP_ORDERING_0 = EDGE_ROUTING_SELF_LOOP_ORDERING; + CONTENT_ALIGNMENT = CONTENT_ALIGNMENT_2; + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0 = NODE_PLACEMENT_BK_EDGE_STRAIGHTENING; + COMPACTION_POST_COMPACTION_STRATEGY_0 = COMPACTION_POST_COMPACTION_STRATEGY; + COMPACTION_POST_COMPACTION_CONSTRAINTS_0 = COMPACTION_POST_COMPACTION_CONSTRAINTS; + COMPACTION_CONNECTED_COMPONENTS_0 = COMPACTION_CONNECTED_COMPONENTS; + HIGH_DEGREE_NODES_TREATMENT_0 = HIGH_DEGREE_NODES_TREATMENT; + HIGH_DEGREE_NODES_THRESHOLD_0 = HIGH_DEGREE_NODES_THRESHOLD; + HIGH_DEGREE_NODES_TREE_HEIGHT_0 = HIGH_DEGREE_NODES_TREE_HEIGHT; + NODE_SIZE_MINIMUM_0 = NODE_SIZE_MINIMUM_5; + JUNCTION_POINTS = JUNCTION_POINTS_0; + EDGE_THICKNESS_0 = EDGE_THICKNESS_1; + EDGE_LABELS_PLACEMENT = EDGE_LABELS_PLACEMENT_0; + EDGE_LABELS_INLINE_0 = EDGE_LABELS_INLINE_1; + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0 = CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS; + PORT_INDEX = PORT_INDEX_0; + COMMENT_BOX = COMMENT_BOX_0; + HYPERNODE = HYPERNODE_0; + PORT_ANCHOR = PORT_ANCHOR_0; + PARTITIONING_ACTIVATE = PARTITIONING_ACTIVATE_0; + PARTITIONING_PARTITION = PARTITIONING_PARTITION_0; + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0 = LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH; + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0 = LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR; + POSITION = POSITION_2; + ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0 = ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES; + LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0 = LAYERING_NODE_PROMOTION_MAX_ITERATIONS; + EDGE_LABELS_SIDE_SELECTION_0 = EDGE_LABELS_SIDE_SELECTION; + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0 = EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY; + MARGINS = MARGINS_0; + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0 = LAYERING_COFFMAN_GRAHAM_LAYER_BOUND; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0 = NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES; + SPACING_PORTS_SURROUNDING = SPACING_PORTS_SURROUNDING_0; + DIRECTION_CONGRUENCY_0 = DIRECTION_CONGRUENCY; + PORT_SORTING_STRATEGY_0 = PORT_SORTING_STRATEGY; + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0 = EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH; + LAYERING_LAYER_CHOICE_CONSTRAINT_0 = LAYERING_LAYER_CHOICE_CONSTRAINT; + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0 = CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT; + INTERACTIVE_LAYOUT = INTERACTIVE_LAYOUT_1; + LAYERING_LAYER_ID_0 = LAYERING_LAYER_ID; + CROSSING_MINIMIZATION_POSITION_ID_0 = CROSSING_MINIMIZATION_POSITION_ID; + CONSIDER_MODEL_ORDER_STRATEGY_0 = CONSIDER_MODEL_ORDER_STRATEGY; + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0 = CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY; + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE; + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE; + CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0 = CONSIDER_MODEL_ORDER_NO_MODEL_ORDER; + CONSIDER_MODEL_ORDER_COMPONENTS_0 = CONSIDER_MODEL_ORDER_COMPONENTS; + GENERATE_POSITION_AND_LAYER_IDS_0 = GENERATE_POSITION_AND_LAYER_IDS; +} + +function $apply_16(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.layered'), 'ELK Layered'), 'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'), new LayeredOptions$LayeredFactory), 'org.eclipse.elk.layered'), of_2(($clinit_GraphFeature() , SELF_LOOPS_0), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentComment', $getDefault(SPACING_COMMENT_COMMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentNode', $getDefault(SPACING_COMMENT_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeEdge', $getDefault(SPACING_EDGE_EDGE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeLabel', $getDefault(SPACING_EDGE_LABEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeNode', $getDefault(SPACING_EDGE_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelLabel', $getDefault(SPACING_LABEL_LABEL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortHorizontal', $getDefault(SPACING_LABEL_PORT_HORIZONTAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortVertical', $getDefault(SPACING_LABEL_PORT_VERTICAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelNode', $getDefault(SPACING_LABEL_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeSelfLoop', $getDefault(SPACING_NODE_SELF_LOOP)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portPort', $getDefault(SPACING_PORT_PORT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.individual', $getDefault(SPACING_INDIVIDUAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.baseValue', $getDefault(SPACING_BASE_VALUE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', $getDefault(SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', $getDefault(SPACING_EDGE_NODE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', $getDefault(SPACING_NODE_NODE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.priority', valueOf_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.direction', $getDefault(PRIORITY_DIRECTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.shortness', $getDefault(PRIORITY_SHORTNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.straightness', $getDefault(PRIORITY_STRAIGHTNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.strategy', $getDefault(WRAPPING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', $getDefault(WRAPPING_ADDITIONAL_EDGE_SPACING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.correctionFactor', $getDefault(WRAPPING_CORRECTION_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.strategy', $getDefault(WRAPPING_CUTTING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.cuts', $getDefault(WRAPPING_CUTTING_CUTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', $getDefault(WRAPPING_CUTTING_MSD_FREEDOM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.strategy', $getDefault(WRAPPING_VALIDIFY_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', $getDefault(WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', $getDefault(WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.mode', $getDefault(EDGE_ROUTING_SPLINES_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', $getDefault(EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.padding', PADDING_DEFAULT_0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.borderOffset', 0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.randomSeed', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.noLayout', $getDefault(NO_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.side', $getDefault(PORT_SIDE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.alignment', $getDefault(ALIGNMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hierarchyHandling', $getDefault(HIERARCHY_HANDLING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.activate', $getDefault(INSIDE_SELF_LOOPS_ACTIVATE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.yo', $getDefault(INSIDE_SELF_LOOPS_YO)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.direction', DIRECTION_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.padding', $getDefault(NODE_LABELS_PADDING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.nextToPortIfPossible', $getDefault(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.treatAsGroup', $getDefault(PORT_LABELS_TREAT_AS_GROUP)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.north', $getDefault(PORT_ALIGNMENT_NORTH)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.south', $getDefault(PORT_ALIGNMENT_SOUTH)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.west', $getDefault(PORT_ALIGNMENT_WEST)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.east', $getDefault(PORT_ALIGNMENT_EAST)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.unnecessaryBendpoints', $getDefault(UNNECESSARY_BENDPOINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.strategy', $getDefault(LAYERING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', $getDefault(LAYERING_NODE_PROMOTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.thoroughness', $getDefault(THOROUGHNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerConstraint', $getDefault(LAYERING_LAYER_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.cycleBreaking.strategy', $getDefault(CYCLE_BREAKING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.strategy', $getDefault(CROSSING_MINIMIZATION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', $getDefault(CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', $getDefault(CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeEdges', $getDefault(MERGE_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeHierarchyEdges', $getDefault(MERGE_HIERARCHY_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.interactiveReferencePoint', $getDefault(INTERACTIVE_REFERENCE_POINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.strategy', $getDefault(NODE_PLACEMENT_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', $getDefault(NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.feedbackEdges', $getDefault(FEEDBACK_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', $getDefault(NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', $getDefault(EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', $getDefault(EDGE_ROUTING_SELF_LOOP_ORDERING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', $getDefault(NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.strategy', $getDefault(COMPACTION_POST_COMPACTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.constraints', $getDefault(COMPACTION_POST_COMPACTION_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.connectedComponents', $getDefault(COMPACTION_CONNECTED_COMPONENTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treatment', $getDefault(HIGH_DEGREE_NODES_TREATMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.threshold', $getDefault(HIGH_DEGREE_NODES_THRESHOLD_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', $getDefault(HIGH_DEGREE_NODES_TREE_HEIGHT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.junctionPoints', $getDefault(JUNCTION_POINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.placement', $getDefault(EDGE_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.inline', $getDefault(EDGE_LABELS_INLINE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', $getDefault(CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.index', $getDefault(PORT_INDEX)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.commentBox', $getDefault(COMMENT_BOX)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hypernode', $getDefault(HYPERNODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.anchor', $getDefault(PORT_ANCHOR)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.activate', $getDefault(PARTITIONING_ACTIVATE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.partition', $getDefault(PARTITIONING_PARTITION)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', $getDefault(LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', $getDefault(LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.position', $getDefault(POSITION)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', $getDefault(ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', $getDefault(LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.sideSelection', $getDefault(EDGE_LABELS_SIDE_SELECTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', $getDefault(EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.margins', $getDefault(MARGINS)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', $getDefault(LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', $getDefault(NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portsSurrounding', $getDefault(SPACING_PORTS_SURROUNDING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.directionCongruency', $getDefault(DIRECTION_CONGRUENCY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.portSortingStrategy', $getDefault(PORT_SORTING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', $getDefault(EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerChoiceConstraint', $getDefault(LAYERING_LAYER_CHOICE_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', $getDefault(CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerId', $getDefault(LAYERING_LAYER_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionId', $getDefault(CROSSING_MINIMIZATION_POSITION_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.strategy', $getDefault(CONSIDER_MODEL_ORDER_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', $getDefault(CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.noModelOrder', $getDefault(CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.components', $getDefault(CONSIDER_MODEL_ORDER_COMPONENTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.generatePositionAndLayerIds', $getDefault(GENERATE_POSITION_AND_LAYER_IDS_0)); +} + +function LayeredOptions(){ + $clinit_LayeredOptions(); +} + +defineClass(986, 1, $intern_90, LayeredOptions); +_.apply_4 = function apply_136(registry){ + $apply_16(registry); +} +; +var ALIGNMENT, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0, ASPECT_RATIO_1, COMMENT_BOX, COMPACTION_CONNECTED_COMPONENTS_0, COMPACTION_POST_COMPACTION_CONSTRAINTS_0, COMPACTION_POST_COMPACTION_STRATEGY_0, CONSIDER_MODEL_ORDER_COMPONENTS_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0, CONSIDER_MODEL_ORDER_STRATEGY_0, CONTENT_ALIGNMENT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0, CROSSING_MINIMIZATION_POSITION_ID_0, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0, CROSSING_MINIMIZATION_STRATEGY_0, CYCLE_BREAKING_STRATEGY_0, DEBUG_MODE, DIRECTION, DIRECTION_CONGRUENCY_0, DIRECTION_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0, EDGE_LABELS_INLINE_0, EDGE_LABELS_PLACEMENT, EDGE_LABELS_SIDE_SELECTION_0, EDGE_ROUTING, EDGE_ROUTING_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0, EDGE_ROUTING_SELF_LOOP_ORDERING_0, EDGE_ROUTING_SPLINES_MODE_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0, EDGE_THICKNESS_0, FEEDBACK_EDGES_0, GENERATE_POSITION_AND_LAYER_IDS_0, HIERARCHY_HANDLING, HIGH_DEGREE_NODES_THRESHOLD_0, HIGH_DEGREE_NODES_TREATMENT_0, HIGH_DEGREE_NODES_TREE_HEIGHT_0, HYPERNODE, INSIDE_SELF_LOOPS_ACTIVATE, INSIDE_SELF_LOOPS_YO, INTERACTIVE_LAYOUT, INTERACTIVE_REFERENCE_POINT_0, JUNCTION_POINTS, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0, LAYERING_LAYER_CHOICE_CONSTRAINT_0, LAYERING_LAYER_CONSTRAINT_0, LAYERING_LAYER_ID_0, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0, LAYERING_NODE_PROMOTION_STRATEGY_0, LAYERING_STRATEGY_0, MARGINS, MERGE_EDGES_0, MERGE_HIERARCHY_EDGES_0, NODE_LABELS_PADDING, NODE_LABELS_PLACEMENT_1, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0, NODE_PLACEMENT_STRATEGY_0, NODE_SIZE_CONSTRAINTS_1, NODE_SIZE_FIXED_GRAPH_SIZE, NODE_SIZE_MINIMUM_0, NODE_SIZE_OPTIONS_1, NO_LAYOUT, PADDING_1, PADDING_DEFAULT_0, PARTITIONING_ACTIVATE, PARTITIONING_PARTITION, PORT_ALIGNMENT_DEFAULT_DEFAULT, PORT_ALIGNMENT_EAST, PORT_ALIGNMENT_NORTH, PORT_ALIGNMENT_SOUTH, PORT_ALIGNMENT_WEST, PORT_ANCHOR, PORT_BORDER_OFFSET, PORT_CONSTRAINTS_0, PORT_INDEX, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE, PORT_LABELS_PLACEMENT_1, PORT_LABELS_TREAT_AS_GROUP, PORT_SIDE, PORT_SORTING_STRATEGY_0, POSITION, PRIORITY_0, PRIORITY_DIRECTION_0, PRIORITY_SHORTNESS_0, PRIORITY_STRAIGHTNESS_0, RANDOM_SEED_0, SEPARATE_CONNECTED_COMPONENTS_0, SPACING_BASE_VALUE_0, SPACING_COMMENT_COMMENT, SPACING_COMMENT_NODE, SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_INDIVIDUAL, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_SELF_LOOP, SPACING_PORTS_SURROUNDING, SPACING_PORT_PORT, THOROUGHNESS_0, UNNECESSARY_BENDPOINTS_0, WRAPPING_ADDITIONAL_EDGE_SPACING_0, WRAPPING_CORRECTION_FACTOR_0, WRAPPING_CUTTING_CUTS_0, WRAPPING_CUTTING_MSD_FREEDOM_0, WRAPPING_CUTTING_STRATEGY_0, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0, WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0, WRAPPING_VALIDIFY_STRATEGY_0; +var Lorg_eclipse_elk_alg_layered_options_LayeredOptions_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions', 986); +function LayeredOptions$LayeredFactory(){ +} + +defineClass(987, 1, {}, LayeredOptions$LayeredFactory); +_.create_0 = function create_10(){ + var provider; + return provider = new LayeredLayoutProvider , provider; +} +; +_.destroy = function destroy_2(obj){ +} +; +var Lorg_eclipse_elk_alg_layered_options_LayeredOptions$LayeredFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions/LayeredFactory', 987); +function $clinit_ElkSpacings$AbstractSpacingsBuilder(){ + $clinit_ElkSpacings$AbstractSpacingsBuilder = emptyMethod; + ELK_OPTION_TARGET_FILTER = new ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type; +} + +function $apply_17(this$static, holder){ + $build(this$static).accept(holder); +} + +function $build(this$static){ + $add_3(this$static.filters, ($clinit_LayoutConfigurator() , NO_OVERWRITE_HOLDER)); + if (fuzzyEquals(this$static.baseSpacing, $doubleValue(castToDouble($getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)))))) { + return new ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type; + } + return new ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type(this$static); +} + +function $lambda$1_1(this$static, option_0){ + var factor; + factor = $getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)) != null && option_0.getDefault() != null?$doubleValue(castToDouble(option_0.getDefault())) / $doubleValue(castToDouble($getDefault(BASE_SPACING_OPTION))):1; + $put_6(this$static.factorMap, option_0, factor); +} + +function $lambda$3_0(this$static, element_0){ + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.factorMap), 1)), new ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type(this$static, element_0)), new ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type(this$static, element_0)); +} + +function $lambda$4_1(this$static, element_1, p_1){ + return !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.filters, 16)), new Predicate$lambda$2$Type(new ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_1, p_1)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); +} + +function $lambda$6(this$static, element_1, p_1){ + element_1.setProperty(p_1, $doubleValue(castToDouble($get_10(this$static.factorMap, p_1))) * this$static.baseSpacing); +} + +function lambda$5_3(element_0, p_1, filter_2){ + $clinit_ElkSpacings$AbstractSpacingsBuilder(); + return filter_2.accept_4(element_0, p_1); +} + +defineClass(1372, 1, {}); +_.baseSpacing = 0; +var ELK_OPTION_TARGET_FILTER; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder', 1372); +function $clinit_LayeredSpacings$LayeredSpacingsBuilder(){ + $clinit_LayeredSpacings$LayeredSpacingsBuilder = emptyMethod; + $clinit_ElkSpacings$AbstractSpacingsBuilder(); + BASE_SPACING_OPTION = ($clinit_LayeredOptions() , SPACING_NODE_NODE_0); + DEPENDENT_SPACING_OPTIONS = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 1), $intern_112, 146, 0, [SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_SELF_LOOP, SPACING_PORT_PORT, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0])); +} + +function LayeredSpacings$LayeredSpacingsBuilder(d){ + $clinit_LayeredSpacings$LayeredSpacingsBuilder(); + this.filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit, 1), $intern_2, 831, 0, [ELK_OPTION_TARGET_FILTER])); + this.factorMap = new HashMap; + this.baseSpacing = d; + $put_6(this.factorMap, BASE_SPACING_OPTION, 1); + $forEach_1(DEPENDENT_SPACING_OPTIONS, new ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type(this)); +} + +defineClass(779, 1372, {}, LayeredSpacings$LayeredSpacingsBuilder); +var BASE_SPACING_OPTION, DEPENDENT_SPACING_OPTIONS; +var Lorg_eclipse_elk_alg_layered_options_LayeredSpacings$LayeredSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredSpacings/LayeredSpacingsBuilder', 779); +function $clinit_LayeringStrategy(){ + $clinit_LayeringStrategy = emptyMethod; + NETWORK_SIMPLEX = new LayeringStrategy('NETWORK_SIMPLEX', 0); + LONGEST_PATH = new LayeringStrategy('LONGEST_PATH', 1); + COFFMAN_GRAHAM = new LayeringStrategy('COFFMAN_GRAHAM', 2); + INTERACTIVE_3 = new LayeringStrategy('INTERACTIVE', 3); + STRETCH_WIDTH = new LayeringStrategy('STRETCH_WIDTH', 4); + MIN_WIDTH = new LayeringStrategy('MIN_WIDTH', 5); +} + +function $create_5(this$static){ + switch (this$static.ordinal) { + case 0: + return new NetworkSimplexLayerer; + case 1: + return new LongestPathLayerer; + case 2: + return new CoffmanGrahamLayerer; + case 3: + return new InteractiveLayerer; + case 4: + return new StretchWidthLayerer; + case 5: + return new MinWidthLayerer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layerer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function LayeringStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_54(name_0){ + $clinit_LayeringStrategy(); + return valueOf(($clinit_LayeringStrategy$Map() , $MAP_42), name_0); +} + +function values_60(){ + $clinit_LayeringStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]); +} + +defineClass(313, 22, {3:1, 35:1, 22:1, 313:1, 246:1, 234:1}, LayeringStrategy); +_.create_1 = function create_12(){ + return $create_5(this); +} +; +_.create_2 = function create_11(){ + return $create_5(this); +} +; +var COFFMAN_GRAHAM, INTERACTIVE_3, LONGEST_PATH, MIN_WIDTH, NETWORK_SIMPLEX, STRETCH_WIDTH; +var Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayeringStrategy', 313, Ljava_lang_Enum_2_classLit, values_60, valueOf_54); +function $clinit_LayeringStrategy$Map(){ + $clinit_LayeringStrategy$Map = emptyMethod; + $MAP_42 = createValueOfMap(($clinit_LayeringStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]))); +} + +var $MAP_42; +function $clinit_LongEdgeOrderingStrategy(){ + $clinit_LongEdgeOrderingStrategy = emptyMethod; + DUMMY_NODE_OVER = new LongEdgeOrderingStrategy('DUMMY_NODE_OVER', 0); + DUMMY_NODE_UNDER = new LongEdgeOrderingStrategy('DUMMY_NODE_UNDER', 1); + EQUAL = new LongEdgeOrderingStrategy('EQUAL', 2); +} + +function $returnValue(this$static){ + switch (this$static.ordinal) { + case 0: + return $intern_0; + case 1: + return -1; + default:return 0; + } +} + +function LongEdgeOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_55(name_0){ + $clinit_LongEdgeOrderingStrategy(); + return valueOf(($clinit_LongEdgeOrderingStrategy$Map() , $MAP_43), name_0); +} + +function values_61(){ + $clinit_LongEdgeOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]); +} + +defineClass(378, 22, {3:1, 35:1, 22:1, 378:1}, LongEdgeOrderingStrategy); +var DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL; +var Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LongEdgeOrderingStrategy', 378, Ljava_lang_Enum_2_classLit, values_61, valueOf_55); +function $clinit_LongEdgeOrderingStrategy$Map(){ + $clinit_LongEdgeOrderingStrategy$Map = emptyMethod; + $MAP_43 = createValueOfMap(($clinit_LongEdgeOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]))); +} + +var $MAP_43; +function $clinit_NodeFlexibility(){ + $clinit_NodeFlexibility = emptyMethod; + NONE_8 = new NodeFlexibility('NONE', 0); + PORT_POSITION = new NodeFlexibility('PORT_POSITION', 1); + NODE_SIZE_WHERE_SPACE_PERMITS = new NodeFlexibility('NODE_SIZE_WHERE_SPACE_PERMITS', 2); + NODE_SIZE = new NodeFlexibility('NODE_SIZE', 3); +} + +function $isFlexibleSizeWhereSpacePermits(this$static){ + return this$static == NODE_SIZE_WHERE_SPACE_PERMITS || this$static == NODE_SIZE; +} + +function NodeFlexibility(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function getNodeFlexibility(lNode){ + $clinit_NodeFlexibility(); + var nf; + (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)); + return nf; +} + +function valueOf_56(name_0){ + $clinit_NodeFlexibility(); + return valueOf(($clinit_NodeFlexibility$Map() , $MAP_44), name_0); +} + +function values_62(){ + $clinit_NodeFlexibility(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]); +} + +defineClass(197, 22, {3:1, 35:1, 22:1, 197:1}, NodeFlexibility); +var NODE_SIZE, NODE_SIZE_WHERE_SPACE_PERMITS, NONE_8, PORT_POSITION; +var Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodeFlexibility', 197, Ljava_lang_Enum_2_classLit, values_62, valueOf_56); +function $clinit_NodeFlexibility$Map(){ + $clinit_NodeFlexibility$Map = emptyMethod; + $MAP_44 = createValueOfMap(($clinit_NodeFlexibility() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]))); +} + +var $MAP_44; +function $clinit_NodePlacementStrategy(){ + $clinit_NodePlacementStrategy = emptyMethod; + SIMPLE = new NodePlacementStrategy('SIMPLE', 0); + INTERACTIVE_4 = new NodePlacementStrategy('INTERACTIVE', 1); + LINEAR_SEGMENTS = new NodePlacementStrategy('LINEAR_SEGMENTS', 2); + BRANDES_KOEPF = new NodePlacementStrategy('BRANDES_KOEPF', 3); + NETWORK_SIMPLEX_0 = new NodePlacementStrategy('NETWORK_SIMPLEX', 4); +} + +function $create_6(this$static){ + switch (this$static.ordinal) { + case 0: + return new SimpleNodePlacer; + case 1: + return new InteractiveNodePlacer; + case 2: + return new LinearSegmentsNodePlacer; + case 3: + return new BKNodePlacer; + case 4: + return new NetworkSimplexPlacer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the node placer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function NodePlacementStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_57(name_0){ + $clinit_NodePlacementStrategy(); + return valueOf(($clinit_NodePlacementStrategy$Map() , $MAP_45), name_0); +} + +function values_63(){ + $clinit_NodePlacementStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]); +} + +defineClass(315, 22, {3:1, 35:1, 22:1, 315:1, 246:1, 234:1}, NodePlacementStrategy); +_.create_1 = function create_14(){ + return $create_6(this); +} +; +_.create_2 = function create_13(){ + return $create_6(this); +} +; +var BRANDES_KOEPF, INTERACTIVE_4, LINEAR_SEGMENTS, NETWORK_SIMPLEX_0, SIMPLE; +var Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePlacementStrategy', 315, Ljava_lang_Enum_2_classLit, values_63, valueOf_57); +function $clinit_NodePlacementStrategy$Map(){ + $clinit_NodePlacementStrategy$Map = emptyMethod; + $MAP_45 = createValueOfMap(($clinit_NodePlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]))); +} + +var $MAP_45; +function $clinit_NodePromotionStrategy(){ + $clinit_NodePromotionStrategy = emptyMethod; + NONE_9 = new NodePromotionStrategy('NONE', 0); + NIKOLOV = new NodePromotionStrategy('NIKOLOV', 1); + NIKOLOV_PIXEL = new NodePromotionStrategy('NIKOLOV_PIXEL', 2); + NIKOLOV_IMPROVED = new NodePromotionStrategy('NIKOLOV_IMPROVED', 3); + NIKOLOV_IMPROVED_PIXEL = new NodePromotionStrategy('NIKOLOV_IMPROVED_PIXEL', 4); + DUMMYNODE_PERCENTAGE = new NodePromotionStrategy('DUMMYNODE_PERCENTAGE', 5); + NODECOUNT_PERCENTAGE = new NodePromotionStrategy('NODECOUNT_PERCENTAGE', 6); + NO_BOUNDARY = new NodePromotionStrategy('NO_BOUNDARY', 7); +} + +function NodePromotionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_58(name_0){ + $clinit_NodePromotionStrategy(); + return valueOf(($clinit_NodePromotionStrategy$Map() , $MAP_46), name_0); +} + +function values_64(){ + $clinit_NodePromotionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]); +} + +defineClass(260, 22, {3:1, 35:1, 22:1, 260:1}, NodePromotionStrategy); +var DUMMYNODE_PERCENTAGE, NIKOLOV, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, NIKOLOV_PIXEL, NODECOUNT_PERCENTAGE, NONE_9, NO_BOUNDARY; +var Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePromotionStrategy', 260, Ljava_lang_Enum_2_classLit, values_64, valueOf_58); +function $clinit_NodePromotionStrategy$Map(){ + $clinit_NodePromotionStrategy$Map = emptyMethod; + $MAP_46 = createValueOfMap(($clinit_NodePromotionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]))); +} + +var $MAP_46; +function $clinit_OrderingStrategy(){ + $clinit_OrderingStrategy = emptyMethod; + NONE_10 = new OrderingStrategy('NONE', 0); + NODES_AND_EDGES = new OrderingStrategy('NODES_AND_EDGES', 1); + PREFER_EDGES = new OrderingStrategy('PREFER_EDGES', 2); +} + +function OrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_59(name_0){ + $clinit_OrderingStrategy(); + return valueOf(($clinit_OrderingStrategy$Map() , $MAP_47), name_0); +} + +function values_65(){ + $clinit_OrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]); +} + +defineClass(339, 22, {3:1, 35:1, 22:1, 339:1}, OrderingStrategy); +var NODES_AND_EDGES, NONE_10, PREFER_EDGES; +var Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'OrderingStrategy', 339, Ljava_lang_Enum_2_classLit, values_65, valueOf_59); +function $clinit_OrderingStrategy$Map(){ + $clinit_OrderingStrategy$Map = emptyMethod; + $MAP_47 = createValueOfMap(($clinit_OrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]))); +} + +var $MAP_47; +function $clinit_PortSortingStrategy(){ + $clinit_PortSortingStrategy = emptyMethod; + INPUT_ORDER = new PortSortingStrategy('INPUT_ORDER', 0); + PORT_DEGREE = new PortSortingStrategy('PORT_DEGREE', 1); +} + +function PortSortingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_60(name_0){ + $clinit_PortSortingStrategy(); + return valueOf(($clinit_PortSortingStrategy$Map() , $MAP_48), name_0); +} + +function values_66(){ + $clinit_PortSortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]); +} + +defineClass(421, 22, {3:1, 35:1, 22:1, 421:1}, PortSortingStrategy); +var INPUT_ORDER, PORT_DEGREE; +var Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortSortingStrategy', 421, Ljava_lang_Enum_2_classLit, values_66, valueOf_60); +function $clinit_PortSortingStrategy$Map(){ + $clinit_PortSortingStrategy$Map = emptyMethod; + $MAP_48 = createValueOfMap(($clinit_PortSortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]))); +} + +var $MAP_48; +function $clinit_PortType(){ + $clinit_PortType = emptyMethod; + UNDEFINED_0 = new PortType('UNDEFINED', 0); + INPUT = new PortType('INPUT', 1); + OUTPUT = new PortType('OUTPUT', 2); +} + +function PortType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_61(name_0){ + $clinit_PortType(); + return valueOf(($clinit_PortType$Map() , $MAP_49), name_0); +} + +function values_67(){ + $clinit_PortType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]); +} + +defineClass(452, 22, {3:1, 35:1, 22:1, 452:1}, PortType); +var INPUT, OUTPUT, UNDEFINED_0; +var Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortType', 452, Ljava_lang_Enum_2_classLit, values_67, valueOf_61); +function $clinit_PortType$Map(){ + $clinit_PortType$Map = emptyMethod; + $MAP_49 = createValueOfMap(($clinit_PortType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]))); +} + +var $MAP_49; +function $clinit_SelfLoopDistributionStrategy(){ + $clinit_SelfLoopDistributionStrategy = emptyMethod; + EQUALLY = new SelfLoopDistributionStrategy('EQUALLY', 0); + NORTH_2 = new SelfLoopDistributionStrategy('NORTH', 1); + NORTH_SOUTH = new SelfLoopDistributionStrategy('NORTH_SOUTH', 2); +} + +function SelfLoopDistributionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_62(name_0){ + $clinit_SelfLoopDistributionStrategy(); + return valueOf(($clinit_SelfLoopDistributionStrategy$Map() , $MAP_50), name_0); +} + +function values_68(){ + $clinit_SelfLoopDistributionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]); +} + +defineClass(375, 22, {3:1, 35:1, 22:1, 375:1}, SelfLoopDistributionStrategy); +var EQUALLY, NORTH_2, NORTH_SOUTH; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopDistributionStrategy', 375, Ljava_lang_Enum_2_classLit, values_68, valueOf_62); +function $clinit_SelfLoopDistributionStrategy$Map(){ + $clinit_SelfLoopDistributionStrategy$Map = emptyMethod; + $MAP_50 = createValueOfMap(($clinit_SelfLoopDistributionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]))); +} + +var $MAP_50; +function $clinit_SelfLoopOrderingStrategy(){ + $clinit_SelfLoopOrderingStrategy = emptyMethod; + STACKED = new SelfLoopOrderingStrategy('STACKED', 0); + SEQUENCED = new SelfLoopOrderingStrategy('SEQUENCED', 1); +} + +function SelfLoopOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_63(name_0){ + $clinit_SelfLoopOrderingStrategy(); + return valueOf(($clinit_SelfLoopOrderingStrategy$Map() , $MAP_51), name_0); +} + +function values_69(){ + $clinit_SelfLoopOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]); +} + +defineClass(376, 22, {3:1, 35:1, 22:1, 376:1}, SelfLoopOrderingStrategy); +var SEQUENCED, STACKED; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopOrderingStrategy', 376, Ljava_lang_Enum_2_classLit, values_69, valueOf_63); +function $clinit_SelfLoopOrderingStrategy$Map(){ + $clinit_SelfLoopOrderingStrategy$Map = emptyMethod; + $MAP_51 = createValueOfMap(($clinit_SelfLoopOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]))); +} + +var $MAP_51; +function $getHorizontalSpacing(this$static, nt1, nt2){ + return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsHorizontal); +} + +function $getLocalSpacing(this$static, nt1, nt2, nodeTypeSpacingMapping){ + var layoutOption; + layoutOption = nodeTypeSpacingMapping[nt1.ordinal][nt2.ordinal]; + return $doubleValue(castToDouble($getProperty(this$static.graph_0, layoutOption))); +} + +function $getLocalSpacing_0(n1, n2, nodeTypeSpacingMapping){ + var layoutOption, s1, s2, t1, t2; + t1 = n1.type_0; + t2 = n2.type_0; + layoutOption = nodeTypeSpacingMapping[t1.ordinal][t2.ordinal]; + s1 = castToDouble(getIndividualOrDefault(n1, layoutOption)); + s2 = castToDouble(getIndividualOrDefault(n2, layoutOption)); + return $wnd.Math.max((checkCriticalNotNull(s1) , s1), (checkCriticalNotNull(s2) , s2)); +} + +function $getVerticalSpacing(this$static, nt1, nt2){ + return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsVertical); +} + +function $getVerticalSpacing_0(this$static, n1, n2){ + return $getLocalSpacing_0(n1, n2, this$static.nodeTypeSpacingOptionsVertical); +} + +function $nodeTypeSpacing(this$static, n1, n2, spacing){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacing); + setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacing); +} + +function $nodeTypeSpacing_0(this$static, n1, n2, spacingVert, spacingHorz){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n1.ordinal], n2.ordinal, spacingHorz); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n2.ordinal], n1.ordinal, spacingHorz); +} + +function $nodeTypeSpacing_1(this$static, nt, spacing){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacing); +} + +function $nodeTypeSpacing_2(this$static, nt, spacingVert, spacingHorz){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[nt.ordinal], nt.ordinal, spacingHorz); +} + +function Spacings(graph){ + var n; + this.graph_0 = graph; + n = ($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT])).length; + this.nodeTypeSpacingOptionsHorizontal = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); + this.nodeTypeSpacingOptionsVertical = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); + $nodeTypeSpacing_2(this, NORMAL, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0), SPACING_NODE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, NORMAL, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing(this, NORMAL, NORTH_SOUTH_PORT, SPACING_EDGE_NODE); + $nodeTypeSpacing(this, NORMAL, EXTERNAL_PORT, SPACING_EDGE_NODE); + $nodeTypeSpacing_0(this, NORMAL, LABEL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_2(this, LONG_EDGE, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); + $nodeTypeSpacing(this, LONG_EDGE, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, LONG_EDGE, EXTERNAL_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing_0(this, LONG_EDGE, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_1(this, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, NORTH_SOUTH_PORT, EXTERNAL_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, NORTH_SOUTH_PORT, LABEL, SPACING_LABEL_NODE); + $nodeTypeSpacing_1(this, EXTERNAL_PORT, SPACING_PORT_PORT); + $nodeTypeSpacing_0(this, EXTERNAL_PORT, LABEL, SPACING_LABEL_PORT_VERTICAL, SPACING_LABEL_PORT_HORIZONTAL); + $nodeTypeSpacing_2(this, LABEL, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE); + $nodeTypeSpacing_2(this, BREAKING_POINT, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, NORMAL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); +} + +function getIndividualOrDefault(node, property){ + var individualSpacings, result; + result = null; + if ($hasProperty(node, ($clinit_LayeredOptions() , SPACING_INDIVIDUAL))) { + individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && (result = $getProperty($getGraph(node), property)); + return result; +} + +defineClass(304, 1, {304:1}, Spacings); +var Lorg_eclipse_elk_alg_layered_options_Spacings_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'Spacings', 304); +function $clinit_SplineRoutingMode(){ + $clinit_SplineRoutingMode = emptyMethod; + CONSERVATIVE = new SplineRoutingMode('CONSERVATIVE', 0); + CONSERVATIVE_SOFT = new SplineRoutingMode('CONSERVATIVE_SOFT', 1); + SLOPPY = new SplineRoutingMode('SLOPPY', 2); +} + +function SplineRoutingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_64(name_0){ + $clinit_SplineRoutingMode(); + return valueOf(($clinit_SplineRoutingMode$Map() , $MAP_52), name_0); +} + +function values_70(){ + $clinit_SplineRoutingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]); +} + +defineClass(336, 22, {3:1, 35:1, 22:1, 336:1}, SplineRoutingMode); +var CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY; +var Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SplineRoutingMode', 336, Ljava_lang_Enum_2_classLit, values_70, valueOf_64); +function $clinit_SplineRoutingMode$Map(){ + $clinit_SplineRoutingMode$Map = emptyMethod; + $MAP_52 = createValueOfMap(($clinit_SplineRoutingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]))); +} + +var $MAP_52; +function $clinit_ValidifyStrategy(){ + $clinit_ValidifyStrategy = emptyMethod; + NO = new ValidifyStrategy('NO', 0); + GREEDY_0 = new ValidifyStrategy('GREEDY', 1); + LOOK_BACK = new ValidifyStrategy('LOOK_BACK', 2); +} + +function ValidifyStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_65(name_0){ + $clinit_ValidifyStrategy(); + return valueOf(($clinit_ValidifyStrategy$Map() , $MAP_53), name_0); +} + +function values_71(){ + $clinit_ValidifyStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]); +} + +defineClass(338, 22, {3:1, 35:1, 22:1, 338:1}, ValidifyStrategy); +var GREEDY_0, LOOK_BACK, NO; +var Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ValidifyStrategy', 338, Ljava_lang_Enum_2_classLit, values_71, valueOf_65); +function $clinit_ValidifyStrategy$Map(){ + $clinit_ValidifyStrategy$Map = emptyMethod; + $MAP_53 = createValueOfMap(($clinit_ValidifyStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]))); +} + +var $MAP_53; +function $clinit_WrappingStrategy(){ + $clinit_WrappingStrategy = emptyMethod; + OFF_0 = new WrappingStrategy('OFF', 0); + SINGLE_EDGE = new WrappingStrategy('SINGLE_EDGE', 1); + MULTI_EDGE = new WrappingStrategy('MULTI_EDGE', 2); +} + +function WrappingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_66(name_0){ + $clinit_WrappingStrategy(); + return valueOf(($clinit_WrappingStrategy$Map() , $MAP_54), name_0); +} + +function values_72(){ + $clinit_WrappingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]); +} + +defineClass(377, 22, {3:1, 35:1, 22:1, 377:1}, WrappingStrategy); +var MULTI_EDGE, OFF_0, SINGLE_EDGE; +var Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'WrappingStrategy', 377, Ljava_lang_Enum_2_classLit, values_72, valueOf_66); +function $clinit_WrappingStrategy$Map(){ + $clinit_WrappingStrategy$Map = emptyMethod; + $MAP_54 = createValueOfMap(($clinit_WrappingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]))); +} + +var $MAP_54; +function $clinit_DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $dfs_3(this$static, n){ + var out, out$iterator, target; + if (this$static.visited[n.id_0]) { + return; + } + this$static.visited[n.id_0] = true; + this$static.active[n.id_0] = true; + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 17); + if ($isSelfLoop(out)) { + continue; + } + target = out.target.owner; + this$static.active[target.id_0]?$add_3(this$static.edgesToBeReversed, out):$dfs_3(this$static, target); + } + this$static.active[n.id_0] = false; +} + +function $process_57(this$static, graph, monitor){ + var edge, edge$iterator, i, index_0, n, node, node$iterator, nodeCount, nodes, source, source$iterator; + $begin(monitor, 'Depth-first cycle removal', 1); + nodes = graph.layerlessNodes; + nodeCount = nodes.array.length; + this$static.sources = new ArrayList; + this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); + this$static.active = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); + this$static.edgesToBeReversed = new ArrayList; + index_0 = 0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = index_0; + isEmpty_13($getIncomingEdges(node)) && $add_3(this$static.sources, node); + ++index_0; + } + for (source$iterator = new ArrayList$1(this$static.sources); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 10); + $dfs_3(this$static, source); + } + for (i = 0; i < nodeCount; i++) { + if (!this$static.visited[i]) { + n = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 10)); + $dfs_3(this$static, n); + } + } + for (edge$iterator = new ArrayList$1(this$static.edgesToBeReversed); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + this$static.sources = null; + this$static.visited = null; + this$static.active = null; + this$static.edgesToBeReversed = null; + $done_0(monitor); +} + +function DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker(); +} + +defineClass(1383, 1, $intern_113, DepthFirstCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION; +} +; +_.process = function process_54(graph, monitor){ + $process_57(this, castTo(graph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION; +var Lorg_eclipse_elk_alg_layered_p1cycles_DepthFirstCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'DepthFirstCycleBreaker', 1383); +function $clinit_GreedyCycleBreaker(){ + $clinit_GreedyCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_0 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $process_58(this$static, layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$iterator, edge$iterator0, edge$max, index_0, maxNode, maxNodes, maxOutflow, nextLeft, nextRight, node, node$iterator, node$iterator0, node$iterator1, nodes, outflow, outgoingEdges, port, port$array, port$index, port$iterator, port$max, ports, priority, shiftBase, sink, source, targetIx, unprocessedNodeCount; + $begin(monitor, 'Greedy cycle removal', 1); + nodes = layeredGraph.layerlessNodes; + unprocessedNodeCount = nodes.array.length; + this$static.indeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + this$static.outdeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + this$static.mark = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = index_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + if (edge.source.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; + this$static.indeg[index_0] += priority > 0?priority + 1:1; + } + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (edge.target.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; + this$static.outdeg[index_0] += priority > 0?priority + 1:1; + } + } + this$static.outdeg[index_0] == 0?$add_7(this$static.sinks, node):this$static.indeg[index_0] == 0 && $add_7(this$static.sources, node); + ++index_0; + } + nextRight = -1; + nextLeft = 1; + maxNodes = new ArrayList; + this$static.random_0 = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + while (unprocessedNodeCount > 0) { + while (this$static.sinks.size_0 != 0) { + sink = castTo($removeFirst_0(this$static.sinks), 10); + this$static.mark[sink.id_0] = nextRight--; + $updateNeighbors(this$static, sink); + --unprocessedNodeCount; + } + while (this$static.sources.size_0 != 0) { + source = castTo($removeFirst_0(this$static.sources), 10); + this$static.mark[source.id_0] = nextLeft++; + $updateNeighbors(this$static, source); + --unprocessedNodeCount; + } + if (unprocessedNodeCount > 0) { + maxOutflow = $intern_42; + for (node$iterator1 = new ArrayList$1(nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + if (this$static.mark[node.id_0] == 0) { + outflow = this$static.outdeg[node.id_0] - this$static.indeg[node.id_0]; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxNodes.array[maxNodes.array.length] = node; + } + } + } + maxNode = this$static.chooseNodeWithMaxOutflow(maxNodes); + this$static.mark[maxNode.id_0] = nextLeft++; + $updateNeighbors(this$static, maxNode); + --unprocessedNodeCount; + } + } + shiftBase = nodes.array.length + 1; + for (index_0 = 0; index_0 < nodes.array.length; index_0++) { + this$static.mark[index_0] < 0 && (this$static.mark[index_0] += shiftBase); + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + ports = toPortArray(node.ports); + for (port$array = ports , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + outgoingEdges = toEdgeArray(port.outgoingEdges); + for (edge$array = outgoingEdges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + targetIx = edge.target.owner.id_0; + if (this$static.mark[node.id_0] > this$static.mark[targetIx]) { + $reverse_0(edge, true); + $setProperty_0(layeredGraph, CYCLIC, ($clinit_Boolean() , true)); + } + } + } + } + this$static.indeg = null; + this$static.outdeg = null; + this$static.mark = null; + $reset_0(this$static.sources); + $reset_0(this$static.sinks); + $done_0(monitor); +} + +function $updateNeighbors(this$static, node){ + var connectedPort, edge, edge$iterator, endpoint, index_0, port, port$iterator, priority; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + connectedPort = edge.source == port?edge.target:edge.source; + endpoint = connectedPort.owner; + if (node == endpoint) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; + priority < 0 && (priority = 0); + index_0 = endpoint.id_0; + if (this$static.mark[index_0] == 0) { + if (edge.target == connectedPort) { + this$static.indeg[index_0] -= priority + 1; + this$static.indeg[index_0] <= 0 && this$static.outdeg[index_0] > 0 && $add_7(this$static.sources, endpoint); + } + else { + this$static.outdeg[index_0] -= priority + 1; + this$static.outdeg[index_0] <= 0 && this$static.indeg[index_0] > 0 && $add_7(this$static.sinks, endpoint); + } + } + } + } +} + +function GreedyCycleBreaker(){ + $clinit_GreedyCycleBreaker(); + this.sources = new LinkedList; + this.sinks = new LinkedList; +} + +defineClass(782, 1, $intern_113, GreedyCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_0(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_55(layeredGraph, monitor){ + $process_58(this, castTo(layeredGraph, 37), monitor); +} +; +_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow(nodes){ + return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyCycleBreaker', 782); +function GreedyModelOrderCycleBreaker(){ + $clinit_GreedyCycleBreaker(); + GreedyCycleBreaker.call(this); +} + +defineClass(1386, 782, $intern_113, GreedyModelOrderCycleBreaker); +_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow_0(nodes){ + var minimumModelOrder, node, node$iterator, returnNode; + returnNode = null; + minimumModelOrder = $intern_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 < minimumModelOrder) { + minimumModelOrder = castTo($getProperty(node, MODEL_ORDER_0), 19).value_0; + returnNode = node; + } + } + if (!returnNode) { + return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); + } + return returnNode; +} +; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyModelOrderCycleBreaker', 1386); +function $clinit_InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_1 = $addAfter($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P5_EDGE_ROUTING, REVERSED_EDGE_RESTORER); +} + +function $findCycles(this$static, node1, revEdges){ + var edge, edge$iterator, node2, port, port$iterator; + node1.id_0 = -1; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node2 = edge.target.owner; + node1 != node2 && (node2.id_0 < 0?revEdges.add_2(edge):node2.id_0 > 0 && $findCycles(this$static, node2, revEdges)); + } + } + node1.id_0 = 0; +} + +function $process_59(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edge$iterator0, edge$iterator1, node, node$iterator, port, port$iterator, revEdges, source, source$iterator, sourcex, target, targetx; + $begin(monitor, 'Interactive cycle breaking', 1); + revEdges = new ArrayList; + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 10); + source.id_0 = 1; + sourcex = $getInteractiveReferencePoint(source).x_0; + for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + target = edge.target.owner; + if (target != source) { + targetx = $getInteractiveReferencePoint(target).x_0; + targetx < sourcex && (revEdges.array[revEdges.array.length] = edge , true); + } + } + } + } + for (edge$iterator1 = new ArrayList$1(revEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_7(edge$iterator1), 17); + $reverse_0(edge, true); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 > 0 && $findCycles(this$static, node, revEdges); + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker(); +} + +defineClass(1384, 1, $intern_113, InteractiveCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_1(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_56(layeredGraph, monitor){ + $process_59(this, castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p1cycles_InteractiveCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'InteractiveCycleBreaker', 1384); +function $clinit_ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_2 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $computeConstraintModelOrder(this$static, node, offset){ + var modelOrder; + modelOrder = 0; + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 2: + modelOrder = 2 * -offset + this$static.firstSeparateModelOrder; + ++this$static.firstSeparateModelOrder; + break; + case 1: + modelOrder = -offset; + break; + case 3: + modelOrder = offset; + break; + case 4: + modelOrder = 2 * offset + this$static.lastSeparateModelOrder; + ++this$static.lastSeparateModelOrder; + } + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (modelOrder += castTo($getProperty(node, MODEL_ORDER_0), 19).value_0); + return modelOrder; +} + +function $process_60(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edge$iterator0, modelOrderSource, modelOrderTarget, node, node$iterator, offset, port, port$iterator, revEdges, source, source$iterator, target; + $begin(monitor, 'Model order cycle breaking', 1); + this$static.firstSeparateModelOrder = 0; + this$static.lastSeparateModelOrder = 0; + revEdges = new ArrayList; + offset = layeredGraph.layerlessNodes.array.length; + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (offset = $wnd.Math.max(offset, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 + 1)); + } + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 10); + modelOrderSource = $computeConstraintModelOrder(this$static, source, offset); + for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + target = edge.target.owner; + modelOrderTarget = $computeConstraintModelOrder(this$static, target, offset); + modelOrderTarget < modelOrderSource && (revEdges.array[revEdges.array.length] = edge , true); + } + } + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker(); +} + +defineClass(1385, 1, $intern_113, ModelOrderCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_2(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_57(layeredGraph, monitor){ + $process_60(this, castTo(layeredGraph, 37), monitor); +} +; +_.firstSeparateModelOrder = 0; +_.lastSeparateModelOrder = 0; +var INTERMEDIATE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p1cycles_ModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'ModelOrderCycleBreaker', 1385); +function $clinit_CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_0 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $canAdd_0(n, l){ + var e, e$iterator, v; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + v = e.target.owner; + if (v.layer == l) { + return false; + } + } + return true; +} + +function $compareNodesInTopo(this$static, u, v){ + var inListU, inLsitV, itU, itV, iu, iv; + inListU = castTo($get(this$static.inTopo, u), 15); + inLsitV = castTo($get(this$static.inTopo, v), 15); + itU = inListU.listIterator_1(inListU.size_1()); + itV = inLsitV.listIterator_1(inLsitV.size_1()); + while (itU.hasPrevious() && itV.hasPrevious()) { + iu = castTo(itU.previous_0(), 19); + iv = castTo(itV.previous_0(), 19); + if (iu != iv) { + return compare_5(iu.value_0, iv.value_0); + } + } + return !itU.hasNext_0() && !itV.hasNext_0()?0:itU.hasNext_0()?1:-1; +} + +function $createLayer(graph, layers){ + var aLayer; + aLayer = new Layer(graph); + layers.array[layers.array.length] = aLayer; + return aLayer; +} + +function $dfs_4(this$static, start_0, v){ + var out, out$iterator, transitive, transitive$iterator, w; + if (this$static.nodeMark[v.id_0]) { + return; + } + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 17); + w = out.target.owner; + for (transitive$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(w).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(transitive$iterator);) { + transitive = castTo($next_0(transitive$iterator), 17); + transitive.source.owner == start_0 && (this$static.edgeMark[transitive.id_0] = true); + } + $dfs_4(this$static, start_0, w); + } + this$static.nodeMark[v.id_0] = true; +} + +function $lambda$1_2(this$static, n1_0, n2_1){ + return -compare_5(this$static.topoOrd[n1_0.id_0], this$static.topoOrd[n2_1.id_0]); +} + +function $process_61(this$static, layeredGraph, progressMonitor){ + var currentLayer, e, e$iterator, edgeIndex, i, index_0, j, layers, n, n$iterator, sinks, sources, src_0, tgt, u, v, v$iterator, v$iterator0, w; + $begin(progressMonitor, 'Coffman-Graham Layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + $done_0(progressMonitor); + return; + } + w = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)), 19).value_0; + index_0 = 0; + edgeIndex = 0; + for (n$iterator = new ArrayList$1(layeredGraph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + e.id_0 = edgeIndex++; + } + } + this$static.nodeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, index_0, 16, 1); + this$static.edgeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, edgeIndex, 16, 1); + this$static.inDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + this$static.outDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + this$static.topoOrd = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + $clear(this$static.inTopo); + $transitiveReduction(this$static, layeredGraph); + sources = new PriorityQueue(new CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type(this$static)); + for (v$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator0.i < v$iterator0.this$01.array.length;) { + v = castTo($next_7(v$iterator0), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + this$static.edgeMark[e.id_0] || ++this$static.inDeg[v.id_0]; + } + this$static.inDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sources, v)) , true); + } + i = 0; + while (sources.heap.array.length != 0) { + v = castTo($poll_0(sources), 10); + this$static.topoOrd[v.id_0] = i++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (this$static.edgeMark[e.id_0]) { + continue; + } + tgt = e.target.owner; + --this$static.inDeg[tgt.id_0]; + $put(this$static.inTopo, tgt, valueOf_4(this$static.topoOrd[v.id_0])); + this$static.inDeg[tgt.id_0] == 0 && (checkCriticalState_0($offer(sources, tgt)) , true); + } + } + sinks = new PriorityQueue(new CoffmanGrahamLayerer$lambda$1$Type(this$static)); + for (v$iterator = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + this$static.edgeMark[e.id_0] || ++this$static.outDeg[v.id_0]; + } + this$static.outDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sinks, v)) , true); + } + layers = new ArrayList; + currentLayer = $createLayer(layeredGraph, layers); + while (sinks.heap.array.length != 0) { + u = castTo($poll_0(sinks), 10); + (currentLayer.nodes.array.length >= w || !$canAdd_0(u, currentLayer)) && (currentLayer = $createLayer(layeredGraph, layers)); + $setLayer_0(u, currentLayer); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(u).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (this$static.edgeMark[e.id_0]) { + continue; + } + src_0 = e.source.owner; + --this$static.outDeg[src_0.id_0]; + this$static.outDeg[src_0.id_0] == 0 && (checkCriticalState_0($offer(sinks, src_0)) , true); + } + } + for (j = layers.array.length - 1; j >= 0; --j) { + $add_3(layeredGraph.layers, (checkCriticalElementIndex(j, layers.array.length) , castTo(layers.array[j], 29))); + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(progressMonitor); +} + +function $transitiveReduction(this$static, graph){ + var out, out$iterator, start_0, start$iterator; + for (start$iterator = new ArrayList$1(graph.layerlessNodes); start$iterator.i < start$iterator.this$01.array.length;) { + start_0 = castTo($next_7(start$iterator), 10); + fill_3(this$static.nodeMark); + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(start_0).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 17); + $dfs_4(this$static, start_0, out.target.owner); + } + } +} + +function CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer(); + this.inTopo = new ArrayListMultimap; +} + +defineClass(1389, 1, $intern_113, CoffmanGrahamLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_3(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_58(layeredGraph, progressMonitor){ + $process_61(this, castTo(layeredGraph, 37), progressMonitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer', 1389); +function CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1390, 1, $intern_88, CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type); +_.compare_1 = function compare_61(arg0, arg1){ + return $compareNodesInTopo(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_142(other){ + return this === other; +} +; +_.reversed = function reversed_53(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type', 1390); +function CoffmanGrahamLayerer$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1391, 1, $intern_88, CoffmanGrahamLayerer$lambda$1$Type); +_.compare_1 = function compare_62(arg0, arg1){ + return $lambda$1_2(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_143(other){ + return this === other; +} +; +_.reversed = function reversed_54(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/lambda$1$Type', 1391); +function $checkNode(this$static, node1, graph){ + var edge, edge$iterator, layer1, layer2, newIndex, newLayer, node2, port, port$iterator; + node1.id_0 = 1; + layer1 = node1.layer; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node2 = edge.target.owner; + if (node1 != node2) { + layer2 = node2.layer; + if (layer2.id_0 <= layer1.id_0) { + newIndex = layer1.id_0 + 1; + if (newIndex == graph.layers.array.length) { + newLayer = new Layer(graph); + newLayer.id_0 = newIndex; + $add_3(graph.layers, newLayer); + $setLayer_0(node2, newLayer); + } + else { + newLayer = castTo($get_11(graph.layers, newIndex), 29); + $setLayer_0(node2, newLayer); + } + $checkNode(this$static, node2, graph); + } + } + } + } +} + +function $process_62(this$static, layeredGraph, monitor){ + var currentSpans, foundSpan, layer, layerIterator, layers, maxx, minx, nextIndex, node, node$iterator, node$iterator0, node$iterator1, span_0, span$iterator, spanIter; + $begin(monitor, 'Interactive node layering', 1); + currentSpans = new ArrayList; + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + minx = node.pos.x_0; + maxx = minx + node.size_0.x_0; + maxx = $wnd.Math.max(minx + 1, maxx); + spanIter = new AbstractList$ListIteratorImpl(currentSpans, 0); + foundSpan = null; + while (spanIter.i < spanIter.this$01_0.size_1()) { + span_0 = (checkCriticalElement(spanIter.i < spanIter.this$01_0.size_1()) , castTo(spanIter.this$01_0.get_0(spanIter.last = spanIter.i++), 569)); + if (span_0.start_0 >= maxx) { + checkCriticalElement(spanIter.i > 0); + spanIter.this$01.get_0(spanIter.last = --spanIter.i); + break; + } + else if (span_0.end > minx) { + if (!foundSpan) { + $add_3(span_0.nodes, node); + span_0.start_0 = $wnd.Math.min(span_0.start_0, minx); + span_0.end = $wnd.Math.max(span_0.end, maxx); + foundSpan = span_0; + } + else { + $addAll_2(foundSpan.nodes, span_0.nodes); + foundSpan.end = $wnd.Math.max(foundSpan.end, span_0.end); + $remove_8(spanIter); + } + } + } + if (!foundSpan) { + foundSpan = new InteractiveLayerer$LayerSpan; + foundSpan.start_0 = minx; + foundSpan.end = maxx; + $add_1(spanIter, foundSpan); + $add_3(foundSpan.nodes, node); + } + } + layers = layeredGraph.layers; + nextIndex = 0; + for (span$iterator = new ArrayList$1(currentSpans); span$iterator.i < span$iterator.this$01.array.length;) { + span_0 = castTo($next_7(span$iterator), 569); + layer = new Layer(layeredGraph); + layer.id_0 = nextIndex++; + layers.array[layers.array.length] = layer; + for (node$iterator1 = new ArrayList$1(span_0.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + $setLayer_0(node, layer); + node.id_0 = 0; + } + } + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 == 0 && $checkNode(this$static, node, layeredGraph); + } + layerIterator = new AbstractList$ListIteratorImpl(layers, 0); + while (layerIterator.i < layerIterator.this$01_0.size_1()) { + (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)).nodes.array.length == 0 && $remove_8(layerIterator); + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function InteractiveLayerer(){ +} + +defineClass(1392, 1, $intern_113, InteractiveLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_4(graph){ + return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_59(layeredGraph, monitor){ + $process_62(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer', 1392); +function InteractiveLayerer$LayerSpan(){ + this.nodes = new ArrayList; +} + +defineClass(569, 1, {569:1}, InteractiveLayerer$LayerSpan); +_.end = 0; +_.start_0 = 0; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer$LayerSpan_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer/LayerSpan', 569); +function $clinit_LongestPathLayerer(){ + $clinit_LongestPathLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_1 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $process_63(this$static, thelayeredGraph, monitor){ + var index_0, node, node$iterator, node$iterator0, nodes; + $begin(monitor, 'Longest path layering', 1); + this$static.layeredGraph = thelayeredGraph; + nodes = this$static.layeredGraph.layerlessNodes; + this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.array.length, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = index_0; + this$static.nodeHeights[index_0] = -1; + ++index_0; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $visit(this$static, node); + } + nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.layeredGraph = null; + this$static.nodeHeights = null; + $done_0(monitor); +} + +function $putNode(this$static, node, height){ + var i, layers; + layers = this$static.layeredGraph.layers; + for (i = layers.array.length; i < height; i++) { + $add_2(layers, 0, new Layer(this$static.layeredGraph)); + } + $setLayer_0(node, castTo($get_11(layers, layers.array.length - height), 29)); + this$static.nodeHeights[node.id_0] = height; +} + +function $visit(this$static, node){ + var edge, edge$iterator, height, maxHeight, port, port$iterator, targetHeight, targetNode; + height = this$static.nodeHeights[node.id_0]; + if (height >= 0) { + return height; + } + else { + maxHeight = 1; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetNode = edge.target.owner; + if (node != targetNode) { + targetHeight = $visit(this$static, targetNode); + maxHeight = $wnd.Math.max(maxHeight, targetHeight + 1); + } + } + } + $putNode(this$static, node, maxHeight); + return maxHeight; + } +} + +function LongestPathLayerer(){ + $clinit_LongestPathLayerer(); +} + +defineClass(1388, 1, $intern_113, LongestPathLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_5(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_60(thelayeredGraph, monitor){ + $process_63(this, castTo(thelayeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathLayerer', 1388); +function $clinit_MinWidthLayerer(){ + $clinit_MinWidthLayerer = emptyMethod; + UPPERBOUND_ON_WIDTH_RANGE = closed_0(valueOf_4(1), valueOf_4(4)); + COMPENSATOR_RANGE = closed_0(valueOf_4(1), valueOf_4(2)); +} + +function $computeMinWidthLayering(this$static, upperBoundOnWidth, compensator, nodes, nodeSuccessors){ + var alreadyPlacedInCurrentLayer, alreadyPlacedInOtherLayers, currentLayer, currentNode, currentSpanningEdges, goingOutFromThisLayer, inDeg, layers, maxWidth, outDeg, realWidth, ubwConsiderSize, unplacedNodes, widthCurrent, widthUp; + layers = new ArrayList; + unplacedNodes = newLinkedHashSet(nodes); + ubwConsiderSize = upperBoundOnWidth * this$static.avgSize; + inDeg = 0; + outDeg = 0; + alreadyPlacedInCurrentLayer = new HashSet; + alreadyPlacedInOtherLayers = new HashSet; + currentLayer = new ArrayList; + widthCurrent = 0; + widthUp = 0; + maxWidth = 0; + realWidth = 0; + currentSpanningEdges = 0; + goingOutFromThisLayer = 0; + while (unplacedNodes.map_0.size_1() != 0) { + currentNode = $selectNode(unplacedNodes, nodeSuccessors, alreadyPlacedInOtherLayers); + if (currentNode) { + unplacedNodes.map_0.remove_0(currentNode) != null; + currentLayer.array[currentLayer.array.length] = currentNode; + alreadyPlacedInCurrentLayer.map_0.put(currentNode, alreadyPlacedInCurrentLayer); + outDeg = this$static.outDegree[currentNode.id_0]; + widthCurrent += this$static.normSize[currentNode.id_0] - outDeg * this$static.dummySize; + inDeg = this$static.inDegree[currentNode.id_0]; + widthUp += inDeg * this$static.dummySize; + goingOutFromThisLayer += outDeg * this$static.dummySize; + realWidth += this$static.normSize[currentNode.id_0]; + } + if (!currentNode || unplacedNodes.map_0.size_1() == 0 || widthCurrent >= ubwConsiderSize && this$static.normSize[currentNode.id_0] > outDeg * this$static.dummySize || widthUp >= compensator * ubwConsiderSize) { + layers.array[layers.array.length] = currentLayer; + currentLayer = new ArrayList; + $addAll(alreadyPlacedInOtherLayers, alreadyPlacedInCurrentLayer); + alreadyPlacedInCurrentLayer.map_0.clear_0(); + currentSpanningEdges -= goingOutFromThisLayer; + maxWidth = $wnd.Math.max(maxWidth, currentSpanningEdges * this$static.dummySize + realWidth); + currentSpanningEdges += widthUp; + widthCurrent = widthUp; + widthUp = 0; + goingOutFromThisLayer = 0; + realWidth = 0; + } + } + return new Pair(maxWidth, layers); +} + +function $countEdgesExceptSelfLoops(edges){ + var edge, edge$iterator, i; + i = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + edge.source.owner == edge.target.owner || ++i; + } + return i; +} + +function $precalcSuccessors(nodes){ + var edge, edge$iterator, node, node$iterator, outEdges, outNodes, successors; + successors = newArrayListWithCapacity(nodes.array.length); + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + outNodes = new HashSet; + outEdges = $getOutgoingEdges(node); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(outEdges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + edge.source.owner == edge.target.owner || $add_6(outNodes, edge.target.owner); + } + successors.array[successors.array.length] = outNodes; + } + return successors; +} + +function $process_64(this$static, layeredGraph, progressMonitor){ + var c, cEnd, cStart, candidateLayering, compensator, currentLayer, i, layerList, layerList$iterator, layering, layers, minNumOfLayers, minWidth, newNumOfLayers, newWidth, node, node$iterator, node$iterator0, node$iterator1, nodeSuccessors, notInserted, numOfNodes, result, size_0, ubw, ubwEnd, ubwStart, upperBoundOnWidth; + $begin(progressMonitor, 'MinWidth layering', 1); + layers = layeredGraph.layers; + notInserted = layeredGraph.layerlessNodes; + upperBoundOnWidth = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)), 19).value_0; + compensator = castTo($getProperty(layeredGraph, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0), 19).value_0; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + this$static.minimumNodeSize = $intern_59; + for (node$iterator0 = new ArrayList$1(notInserted); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + size_0 = node.size_0.y_0; + this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); + } + this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); + numOfNodes = notInserted.array.length; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, numOfNodes, 15, 1); + i = 0; + this$static.avgSize = 0; + for (node$iterator1 = new ArrayList$1(notInserted); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + node.id_0 = i++; + this$static.inDegree[node.id_0] = $countEdgesExceptSelfLoops($getIncomingEdges(node)); + this$static.outDegree[node.id_0] = $countEdgesExceptSelfLoops($getOutgoingEdges(node)); + this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; + this$static.avgSize += this$static.normSize[node.id_0]; + } + this$static.dummySize /= this$static.minimumNodeSize; + this$static.avgSize /= numOfNodes; + nodeSuccessors = $precalcSuccessors(notInserted); + $sort(notInserted, reverseOrder(new MinWidthLayerer$MinOutgoingEdgesComparator(this$static))); + minWidth = $intern_59; + minNumOfLayers = $intern_0; + candidateLayering = null; + ubwStart = upperBoundOnWidth; + ubwEnd = upperBoundOnWidth; + cStart = compensator; + cEnd = compensator; + if (upperBoundOnWidth < 0) { + ubwStart = castTo(UPPERBOUND_ON_WIDTH_RANGE.lowerBound.endpoint_0(), 19).value_0; + ubwEnd = castTo(UPPERBOUND_ON_WIDTH_RANGE.upperBound.endpoint_0(), 19).value_0; + } + if (compensator < 0) { + cStart = castTo(COMPENSATOR_RANGE.lowerBound.endpoint_0(), 19).value_0; + cEnd = castTo(COMPENSATOR_RANGE.upperBound.endpoint_0(), 19).value_0; + } + for (ubw = ubwStart; ubw <= ubwEnd; ubw++) { + for (c = cStart; c <= cEnd; c++) { + result = $computeMinWidthLayering(this$static, ubw, c, notInserted, nodeSuccessors); + newWidth = $doubleValue(castToDouble(result.first)); + layering = castTo(result.second, 15); + newNumOfLayers = layering.size_1(); + if (newWidth < minWidth || newWidth == minWidth && newNumOfLayers < minNumOfLayers) { + minWidth = newWidth; + minNumOfLayers = newNumOfLayers; + candidateLayering = layering; + } + } + } + for (layerList$iterator = candidateLayering.iterator_0(); layerList$iterator.hasNext_0();) { + layerList = castTo(layerList$iterator.next_1(), 15); + currentLayer = new Layer(layeredGraph); + for (node$iterator = layerList.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + $setLayer_0(node, currentLayer); + } + layers.array[layers.array.length] = currentLayer; + } + reverse_2(layers); + notInserted.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(progressMonitor); +} + +function $selectNode(nodes, successors, targets){ + var node, node$iterator; + for (node$iterator = nodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + if ($containsAll(targets, castTo($get_11(successors, node.id_0), 14))) { + return node; + } + } + return null; +} + +function MinWidthLayerer(){ + $clinit_MinWidthLayerer(); +} + +defineClass(1395, 1, $intern_113, MinWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_6(graph){ + return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_61(layeredGraph, progressMonitor){ + $process_64(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.avgSize = 0; +_.dummySize = 0; +_.minimumNodeSize = 0; +var COMPENSATOR_RANGE, UPPERBOUND_ON_WIDTH_RANGE; +var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer', 1395); +function $compare_18(this$static, o1, o2){ + var outs1, outs2; + outs1 = this$static.this$01.outDegree[o1.id_0]; + outs2 = this$static.this$01.outDegree[o2.id_0]; + if (outs1 < outs2) { + return -1; + } + if (outs1 == outs2) { + return 0; + } + return 1; +} + +function MinWidthLayerer$MinOutgoingEdgesComparator(this$0){ + this.this$01 = this$0; +} + +defineClass(1396, 1, $intern_88, MinWidthLayerer$MinOutgoingEdgesComparator); +_.compare_1 = function compare_63(o1, o2){ + return $compare_18(this, castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_144(other){ + return this === other; +} +; +_.reversed = function reversed_55(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer$MinOutgoingEdgesComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer/MinOutgoingEdgesComparator', 1396); +function $clinit_NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_2 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $connectedComponents(this$static, theNodes){ + var components, counter, node, node$iterator, node$iterator0; + this$static.nodeVisited == null || this$static.nodeVisited.length < theNodes.array.length?(this$static.nodeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, theNodes.array.length, 16, 1)):fill_3(this$static.nodeVisited); + this$static.componentNodes = new ArrayList; + counter = 0; + for (node$iterator0 = new ArrayList$1(theNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = counter++; + } + components = new LinkedList; + for (node$iterator = new ArrayList$1(theNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (!this$static.nodeVisited[node.id_0]) { + $connectedComponentsDFS(this$static, node); + components.size_0 == 0 || (checkCriticalElement(components.size_0 != 0) , castTo(components.header.next_0.value_0, 15)).size_1() < this$static.componentNodes.array.length?$addFirst_0(components, this$static.componentNodes):$addLast_0(components, this$static.componentNodes); + this$static.componentNodes = new ArrayList; + } + } + return components; +} + +function $connectedComponentsDFS(this$static, node){ + var edge, edge$iterator, opposite, port, port$iterator; + this$static.nodeVisited[node.id_0] = true; + $add_3(this$static.componentNodes, node); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + opposite = $getOpposite(port, edge).owner; + this$static.nodeVisited[opposite.id_0] || $connectedComponentsDFS(this$static, opposite); + } + } +} + +function $getOpposite(port, edge){ + if (edge.source == port) { + return edge.target; + } + else if (edge.target == port) { + return edge.source; + } + throw toJs(new IllegalArgumentException_0('Input edge is not connected to the input port.')); +} + +function $initialize_4(theNodes){ + var graph, lEdge, lEdge$iterator, lNode, lNode$iterator, lNode$iterator0, nNode, nodeMap; + nodeMap = new HashMap; + graph = new NGraph; + for (lNode$iterator0 = theNodes.iterator_0(); lNode$iterator0.hasNext_0();) { + lNode = castTo(lNode$iterator0.next_1(), 10); + nNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), graph); + $put_9(nodeMap.hashCodeMap, lNode, nNode); + } + for (lNode$iterator = theNodes.iterator_0(); lNode$iterator.hasNext_0();) { + lNode = castTo(lNode$iterator.next_1(), 10); + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + if ($isSelfLoop(lEdge)) { + continue; + } + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_SHORTNESS_0)), 19).value_0)), 1), castTo($get_10(nodeMap, lEdge.source.owner), 121)), castTo($get_10(nodeMap, lEdge.target.owner), 121))); + } + } + return graph; +} + +function $process_65(this$static, theLayeredGraph, monitor){ + var connComp, connComp$iterator, connectedComponents, graph, iterLimit, l, l$iterator, lNode, layerIdx, layers, nNode, nNode$iterator, previousLayeringNodeCounts, theNodes, thoroughness; + $begin(monitor, 'Network simplex layering', 1); + this$static.layeredGraph = theLayeredGraph; + thoroughness = castTo($getProperty(theLayeredGraph, ($clinit_LayeredOptions() , THOROUGHNESS_0)), 19).value_0 * 4; + theNodes = this$static.layeredGraph.layerlessNodes; + if (theNodes.array.length < 1) { + $done_0(monitor); + return; + } + connectedComponents = $connectedComponents(this$static, theNodes); + previousLayeringNodeCounts = null; + for (connComp$iterator = $listIterator_2(connectedComponents, 0); connComp$iterator.currentNode != connComp$iterator.this$01.tail;) { + connComp = castTo($next_10(connComp$iterator), 15); + iterLimit = thoroughness * round_int($wnd.Math.sqrt(connComp.size_1())); + graph = $initialize_4(connComp); + $execute_0($withBalancing($withPreviousLayering($withIterationLimit(forGraph(graph), iterLimit), previousLayeringNodeCounts), true), $subTask(monitor, 1)); + layers = this$static.layeredGraph.layers; + for (nNode$iterator = new ArrayList$1(graph.nodes); nNode$iterator.i < nNode$iterator.this$01.array.length;) { + nNode = castTo($next_7(nNode$iterator), 121); + while (layers.array.length <= nNode.layer) { + $add_2(layers, layers.array.length, new Layer(this$static.layeredGraph)); + } + lNode = castTo(nNode.origin_0, 10); + $setLayer_0(lNode, castTo($get_11(layers, nNode.layer), 29)); + } + if (connectedComponents.size_0 > 1) { + previousLayeringNodeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.layeredGraph.layers.array.length, 15, 1); + layerIdx = 0; + for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + previousLayeringNodeCounts[layerIdx++] = l.nodes.array.length; + } + } + } + theNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.componentNodes = null; + this$static.layeredGraph = null; + this$static.nodeVisited = null; + $done_0(monitor); +} + +function NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer(); +} + +defineClass(1387, 1, $intern_113, NetworkSimplexLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_7(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_62(theLayeredGraph, monitor){ + $process_65(this, castTo(theLayeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p2layers_NetworkSimplexLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'NetworkSimplexLayerer', 1387); +function $computeDegrees(this$static){ + var node, node$iterator; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.inDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + this$static.outDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + } +} + +function $computeNormalizedSize(this$static){ + var node, node$iterator; + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; + } +} + +function $computeSortedNodes(this$static){ + var node, node$iterator, unsortedNodes; + unsortedNodes = this$static.currentGraph.layerlessNodes; + this$static.sortedLayerlessNodes = (checkNotNull(unsortedNodes) , new ArrayList_1(unsortedNodes)); + for (node$iterator = new ArrayList$1(unsortedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = $getRank(node).value_0; + } + $clinit_Collections(); + $sort(this$static.sortedLayerlessNodes, new StretchWidthLayerer$1); +} + +function $computeSuccessors(this$static){ + var currSucc, edge, edge$iterator, i, node, node$iterator; + i = 0; + this$static.successors = new ArrayList; + currSucc = new HashSet; + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = i; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $add_6(currSucc, edge.target.owner); + } + currSucc.map_0.remove_0(node) != null; + $add_3(this$static.successors, new HashSet_1(currSucc)); + currSucc.map_0.clear_0(); + ++i; + } +} + +function $conditionGoUp(this$static){ + var a, b; + a = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0] > this$static.maxWidth; + b = this$static.widthUp + this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize > this$static.maxWidth * this$static.upperLayerInfluence * this$static.dummySize; + return a || b; +} + +function $getAverageOutDegree(this$static){ + var allOut, node, node$iterator; + allOut = 0; + for (node$iterator = new ArrayList$1(this$static.currentGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + allOut += size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + } + return allOut / this$static.currentGraph.layerlessNodes.array.length; +} + +function $getRank(node){ + var max_0, pre, preEdge, preEdge$iterator, temp; + max_0 = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + for (preEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(preEdge$iterator);) { + preEdge = castTo($next_0(preEdge$iterator), 17); + pre = preEdge.source.owner; + temp = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(pre).val$inputs1.iterator_0(), new Iterables$10))); + max_0 = $wnd.Math.max(max_0, temp); + } + return valueOf_4(max_0); +} + +function $minMaxNodeSize(this$static){ + var node, node$iterator, size_0; + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + size_0 = node.size_0.y_0; + this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); + this$static.maximumNodeSize = $wnd.Math.max(this$static.maximumNodeSize, size_0); + } +} + +function $process_66(this$static, layeredGraph, progressMonitor){ + var currentLayer; + $begin(progressMonitor, 'StretchWidth layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + $done_0(progressMonitor); + return; + } + this$static.currentGraph = layeredGraph; + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.minimumNodeSize = $intern_59; + this$static.maximumNodeSize = $intern_60; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + $computeSortedNodes(this$static); + $computeSuccessors(this$static); + $computeDegrees(this$static); + $minMaxNodeSize(this$static); + $computeNormalizedSize(this$static); + this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); + this$static.maximumNodeSize = $wnd.Math.max(1, this$static.maximumNodeSize); + this$static.dummySize = this$static.dummySize / this$static.minimumNodeSize; + this$static.maxWidth = this$static.maximumNodeSize / this$static.minimumNodeSize; + this$static.upperLayerInfluence = $getAverageOutDegree(this$static); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); + this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); + while (this$static.tempLayerlessNodes.array.length != 0) { + this$static.selectedNode = $selectNode_0(this$static); + if (!this$static.selectedNode || $conditionGoUp(this$static) && this$static.alreadyPlacedNodes.map_0.size_1() != 0) { + $updateOutGoing(this$static, currentLayer); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + $addAll(this$static.alreadyPlacedInOtherLayers, this$static.alreadyPlacedNodes); + this$static.alreadyPlacedNodes.map_0.clear_0(); + this$static.widthCurrent = this$static.widthUp; + this$static.widthUp = 0; + } + else { + if ($conditionGoUp(this$static)) { + this$static.currentGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.alreadyPlacedNodes.map_0.clear_0(); + this$static.alreadyPlacedInOtherLayers.map_0.clear_0(); + ++this$static.maxWidth; + this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); + this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); + } + else { + $setLayer_0(this$static.selectedNode, currentLayer); + $remove_12(this$static.tempLayerlessNodes, this$static.selectedNode); + $add_6(this$static.alreadyPlacedNodes, this$static.selectedNode); + this$static.widthCurrent = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0]; + this$static.widthUp += this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize; + } + } + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + reverse_2(layeredGraph.layers); + $done_0(progressMonitor); +} + +function $selectNode_0(this$static){ + var node, node$iterator; + for (node$iterator = new ArrayList$1(this$static.tempLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (this$static.remainingOutGoing[node.id_0] <= 0) { + return node; + } + } + return null; +} + +function $updateOutGoing(this$static, currentLayer){ + var edge, edge$iterator, node, node$iterator, pos; + for (node$iterator = new ArrayList$1(currentLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + pos = edge.source.owner.id_0; + this$static.remainingOutGoing[pos] = this$static.remainingOutGoing[pos] - 1; + } + } +} + +function StretchWidthLayerer(){ + this.alreadyPlacedNodes = new HashSet; + this.alreadyPlacedInOtherLayers = new HashSet; +} + +defineClass(1393, 1, $intern_113, StretchWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_8(graph){ + return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_63(layeredGraph, progressMonitor){ + $process_66(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.dummySize = 0; +_.maxWidth = 0; +_.maximumNodeSize = 0; +_.minimumNodeSize = 0; +_.upperLayerInfluence = 0; +_.widthCurrent = 0; +_.widthUp = 0; +var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer', 1393); +function $compare_19(o1, o2){ + if (o1.id_0 < o2.id_0) { + return 1; + } + else if (o1.id_0 > o2.id_0) { + return -1; + } + return 0; +} + +function StretchWidthLayerer$1(){ +} + +defineClass(1394, 1, $intern_88, StretchWidthLayerer$1); +_.compare_1 = function compare_64(o1, o2){ + return $compare_19(castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_145(other){ + return this === other; +} +; +_.reversed = function reversed_56(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer/1', 1394); +function create_15(cmt, r, currentOrder){ + return cmt == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)?new GreedyPortDistributor:$nextInternal(r, 1) != 0?new NodeRelativePortDistributor(currentOrder.length):new LayerTotalPortDistributor(currentOrder.length); +} + +function $calculateInLayerPortsBarycenterValues(this$static, node){ + var barycenter, connectedPort, connectedPort$iterator, inLayerConnections, inLayerPort, inLayerPort$iterator, layerSize, nodeIndexInLayer, portSide, sum; + nodeIndexInLayer = this$static.nodePositions[node.layer.id_0][node.id_0] + 1; + layerSize = node.layer.nodes.array.length + 1; + for (inLayerPort$iterator = new ArrayList$1(this$static.inLayerPorts); inLayerPort$iterator.i < inLayerPort$iterator.this$01.array.length;) { + inLayerPort = castTo($next_7(inLayerPort$iterator), 11); + sum = 0; + inLayerConnections = 0; + for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(inLayerPort), new LPort$2(inLayerPort)]))); $hasNext_1(connectedPort$iterator);) { + connectedPort = castTo($next_0(connectedPort$iterator), 11); + if (connectedPort.owner.layer == node.layer) { + sum += $positionOf(this$static, connectedPort.owner) + 1; + ++inLayerConnections; + } + } + barycenter = sum / inLayerConnections; + portSide = inLayerPort.side; + portSide == ($clinit_PortSide() , EAST_2)?barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + (layerSize - barycenter)):portSide == WEST_2 && (barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - (layerSize - barycenter))); + } +} + +function $calculatePortRanks(this$static, layer, portType){ + var consumedRank, nodeIx; + consumedRank = 0; + for (nodeIx = 0; nodeIx < layer.length; nodeIx++) { + consumedRank += this$static.calculatePortRanks(layer[nodeIx], consumedRank, portType); + } +} + +function $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy){ + var input_0, output, portDummyPort, portDummyPort$iterator, sum; + input_0 = false; + output = false; + for (portDummyPort$iterator = new ArrayList$1(portDummy.ports); portDummyPort$iterator.i < portDummyPort$iterator.this$01.array.length;) { + portDummyPort = castTo($next_7(portDummyPort$iterator), 11); + maskUndefined($getProperty(portDummyPort, ($clinit_InternalProperties_1() , ORIGIN_0))) === maskUndefined(port) && (portDummyPort.outgoingEdges.array.length == 0?portDummyPort.incomingEdges.array.length == 0 || (input_0 = true):(output = true)); + } + sum = 0; + input_0 && input_0 ^ output?(sum = port.side == ($clinit_PortSide() , NORTH_3)?-this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]:absurdlyLargeFloat - this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]):output && input_0 ^ output?(sum = this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0] + 1):input_0 && output && (sum = port.side == ($clinit_PortSide() , NORTH_3)?0:absurdlyLargeFloat / 2); + return sum; +} + +function $distributePorts(this$static, node, ports){ + this$static.inLayerPorts.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $iteratePortsAndCollectInLayerPorts(this$static, node, ports); + this$static.inLayerPorts.array.length == 0 || $calculateInLayerPortsBarycenterValues(this$static, node); +} + +function $distributePorts_0(this$static, node, side){ + if (!$isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + $distributePorts(this$static, node, $getPorts_1(node, side)); + $distributePorts(this$static, node, $getPorts_1(node, ($clinit_PortSide() , SOUTH_2))); + $distributePorts(this$static, node, $getPorts_1(node, NORTH_3)); + $clinit_Collections(); + $sort(node.ports, new AbstractBarycenterPortDistributor$lambda$0$Type(this$static)); + } +} + +function $distributePortsWhileSweeping(this$static, nodeOrder, currentIndex, isForwardSweep){ + var fixedLayer, freeLayer, node, node$array, node$array0, node$index, node$index0, node$max, node$max0, side; + $updateNodePositions(this$static, nodeOrder, currentIndex); + freeLayer = nodeOrder[currentIndex]; + side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); + if ($isNotFirstLayer(nodeOrder.length, currentIndex, isForwardSweep)) { + fixedLayer = nodeOrder[isForwardSweep?currentIndex - 1:currentIndex + 1]; + $calculatePortRanks(this$static, fixedLayer, isForwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); + for (node$array0 = freeLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { + node = node$array0[node$index0]; + $distributePorts_0(this$static, node, side); + } + $calculatePortRanks(this$static, freeLayer, isForwardSweep?($clinit_PortType() , INPUT):($clinit_PortType() , OUTPUT)); + for (node$array = fixedLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + !!node.nestedGraph || $distributePorts_0(this$static, node, $opposed(side)); + } + } + else { + for (node$array = freeLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $distributePorts_0(this$static, node, side); + } + } + return false; +} + +function $isNotFirstLayer(length_0, currentIndex, isForwardSweep){ + return isForwardSweep?currentIndex != 0:currentIndex != length_0 - 1; +} + +function $iteratePortsAndCollectInLayerPorts(this$static, node, ports){ + var absurdlyLargeFloat, connectedPort, incomingEdge, incomingEdge$iterator, northSouthPort, outgoingEdge, outgoingEdge$iterator, port, port$iterator, portDummy, sum; + this$static.minBarycenter = 0; + this$static.maxBarycenter = 0; + absurdlyLargeFloat = 2 * node.layer.nodes.array.length + 1; + PortIteration: for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + northSouthPort = port.side == ($clinit_PortSide() , NORTH_3) || port.side == SOUTH_2; + sum = 0; + if (northSouthPort) { + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (!portDummy) { + continue; + } + sum += $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy); + } + else { + for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { + outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); + connectedPort = outgoingEdge.target; + if (connectedPort.owner.layer == node.layer) { + $add_3(this$static.inLayerPorts, port); + continue PortIteration; + } + else { + sum += this$static.portRanks[connectedPort.id_0]; + } + } + for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { + incomingEdge = castTo($next_7(incomingEdge$iterator), 17); + connectedPort = incomingEdge.source; + if (connectedPort.owner.layer == node.layer) { + $add_3(this$static.inLayerPorts, port); + continue PortIteration; + } + else { + sum -= this$static.portRanks[connectedPort.id_0]; + } + } + } + if (port.incomingEdges.array.length + port.outgoingEdges.array.length > 0) { + this$static.portBarycenter[port.id_0] = sum / (port.incomingEdges.array.length + port.outgoingEdges.array.length); + this$static.minBarycenter = $wnd.Math.min(this$static.minBarycenter, this$static.portBarycenter[port.id_0]); + this$static.maxBarycenter = $wnd.Math.max(this$static.maxBarycenter, this$static.portBarycenter[port.id_0]); + } + else + northSouthPort && (this$static.portBarycenter[port.id_0] = sum); + } +} + +function $lambda$0_6(this$static, port1_0, port2_1){ + var port1Bary, port2Bary, side1, side2; + side1 = port1_0.side; + side2 = port2_1.side; + if (side1 != side2) { + return side1.ordinal - side2.ordinal; + } + else { + port1Bary = this$static.portBarycenter[port1_0.id_0]; + port2Bary = this$static.portBarycenter[port2_1.id_0]; + return port1Bary == 0 && port2Bary == 0?0:port1Bary == 0?-1:port2Bary == 0?1:compare_4(port1Bary, port2Bary); + } +} + +function $positionOf(this$static, node){ + return this$static.nodePositions[node.layer.id_0][node.id_0]; +} + +function $updateNodePositions(this$static, nodeOrder, currentIndex){ + var i, layer, node; + layer = nodeOrder[currentIndex]; + for (i = 0; i < layer.length; i++) { + node = layer[i]; + this$static.nodePositions[node.layer.id_0][node.id_0] = i; + } +} + +function AbstractBarycenterPortDistributor(numLayers){ + this.inLayerPorts = new ArrayList; + this.nodePositions = initUnidimensionalArray(I_classLit, $intern_16, 48, numLayers, 0, 2); +} + +defineClass(402, 1, $intern_114); +_.initAtEdgeLevel = function initAtEdgeLevel_0(l, n, p, e, edge, nodeOrder){ +} +; +_.distributePortsWhileSweeping = function distributePortsWhileSweeping(nodeOrder, currentIndex, isForwardSweep){ + return $distributePortsWhileSweeping(this, nodeOrder, currentIndex, isForwardSweep); +} +; +_.initAfterTraversal = function initAfterTraversal_0(){ + this.portRanks = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); + this.portBarycenter = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel_0(l, nodeOrder){ + this.nodePositions[l] = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeOrder[l].length, 15, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_0(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + node.id_0 = n; + this.nodePositions[l][n] = n; +} +; +_.initAtPortLevel = function initAtPortLevel_0(l, n, p, nodeOrder){ + castTo($get_11(nodeOrder[l][n].ports, p), 11).id_0 = this.nPorts++; +} +; +_.maxBarycenter = 0; +_.minBarycenter = 0; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor', 402); +function AbstractBarycenterPortDistributor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1633, 1, $intern_88, AbstractBarycenterPortDistributor$lambda$0$Type); +_.compare_1 = function compare_65(arg0, arg1){ + return $lambda$0_6(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_146(other){ + return this === other; +} +; +_.reversed = function reversed_57(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor/lambda$0$Type', 1633); +function $calculateBarycenter(this$static, node, forward_0){ + var associate, associate$iterator, barycenterAssociates, fixedNode, fixedPort, fixedPort$iterator, freePort, freePort$iterator, portIterable; + if (this$static.barycenterState[node.layer.id_0][node.id_0].visited) { + return; + } + else { + this$static.barycenterState[node.layer.id_0][node.id_0].visited = true; + } + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = 0; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = null; + for (freePort$iterator = new ArrayList$1(node.ports); freePort$iterator.i < freePort$iterator.this$01.array.length;) { + freePort = castTo($next_7(freePort$iterator), 11); + portIterable = forward_0?new LPort$1(freePort):new LPort$2(freePort); + for (fixedPort$iterator = portIterable.iterator_0(); fixedPort$iterator.hasNext_0();) { + fixedPort = castTo(fixedPort$iterator.next_1(), 11); + fixedNode = fixedPort.owner; + if (fixedNode.layer == node.layer) { + if (fixedNode != node) { + $calculateBarycenter(this$static, fixedNode, forward_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].degree; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].summedWeight; + } + } + else { + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.portRanks[fixedPort.id_0]; + ++this$static.barycenterState[node.layer.id_0][node.id_0].degree; + } + } + } + barycenterAssociates = castTo($getProperty(node, ($clinit_InternalProperties_1() , BARYCENTER_ASSOCIATES)), 15); + if (barycenterAssociates) { + for (associate$iterator = barycenterAssociates.iterator_0(); associate$iterator.hasNext_0();) { + associate = castTo(associate$iterator.next_1(), 10); + if (node.layer == associate.layer) { + $calculateBarycenter(this$static, associate, forward_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[associate.layer.id_0][associate.id_0].degree; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[associate.layer.id_0][associate.id_0].summedWeight; + } + } + } + if (this$static.barycenterState[node.layer.id_0][node.id_0].degree > 0) { + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += $nextInternal(this$static.random_0, 24) * $intern_81 * 0.07000000029802322 - 0.03500000014901161; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight / this$static.barycenterState[node.layer.id_0][node.id_0].degree; + } +} + +function $calculateBarycenters(this$static, nodes, forward_0){ + var node, node$iterator, node$iterator0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].visited = false; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $calculateBarycenter(this$static, node, forward_0); + } +} + +function $fillInUnknownBarycenters(this$static, nodes, preOrdered){ + var lastValue, maxBary, nextNodeIterator, nextValue, node, node$iterator, node$iterator0, nodesIterator, value_0, x_0; + if (preOrdered) { + lastValue = -1; + nodesIterator = new AbstractList$ListIteratorImpl(nodes, 0); + while (nodesIterator.i < nodesIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodesIterator.i < nodesIterator.this$01_0.size_1()) , castTo(nodesIterator.this$01_0.get_0(nodesIterator.last = nodesIterator.i++), 10)); + value_0 = this$static.barycenterState[node.layer.id_0][node.id_0].barycenter; + if (value_0 == null) { + nextValue = lastValue + 1; + nextNodeIterator = new AbstractList$ListIteratorImpl(nodes, nodesIterator.i); + while (nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) { + x_0 = $stateOf(this$static, (checkCriticalElement(nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) , castTo(nextNodeIterator.this$01_0.get_0(nextNodeIterator.last = nextNodeIterator.i++), 10))).barycenter; + if (x_0 != null) { + nextValue = (checkCriticalNotNull(x_0) , x_0); + break; + } + } + value_0 = (lastValue + nextValue) / 2; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = (checkCriticalNotNull(value_0) , value_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } + lastValue = (checkCriticalNotNull(value_0) , value_0); + } + } + else { + maxBary = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter != null && (maxBary = $wnd.Math.max(maxBary, $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter))); + } + maxBary += 2; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (this$static.barycenterState[node.layer.id_0][node.id_0].barycenter == null) { + value_0 = $nextInternal(this$static.random_0, 24) * $intern_81 * maxBary - 1; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } + } + } +} + +function $lambda$0_7(this$static, n1_0, n2_1){ + var s1, s2; + s1 = this$static.barycenterState[n1_0.layer.id_0][n1_0.id_0]; + s2 = this$static.barycenterState[n2_1.layer.id_0][n2_1.id_0]; + if (s1.barycenter != null && s2.barycenter != null) { + return $compareTo_4(s1.barycenter, s2.barycenter); + } + else if (s1.barycenter != null) { + return -1; + } + else if (s2.barycenter != null) { + return 1; + } + return 0; +} + +function $randomizeBarycenters(this$static, nodes){ + var node, node$iterator; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = $nextDouble(this$static.random_0); + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter); + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } +} + +function $startIndex_0(dir_0, length_0){ + return dir_0?0:$wnd.Math.max(0, length_0 - 1); +} + +function $stateOf(this$static, node){ + return this$static.barycenterState[node.layer.id_0][node.id_0]; +} + +function BarycenterHeuristic(constraintResolver, random, portDistributor){ + this.barycenterStateComparator = new BarycenterHeuristic$lambda$0$Type(this); + this.constraintResolver = constraintResolver; + this.random_0 = random; + this.portDistributor = portDistributor; +} + +defineClass(817, 1, $intern_111, BarycenterHeuristic); +_.initAtEdgeLevel = function initAtEdgeLevel_1(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtNodeLevel = function initAtNodeLevel_1(l, n, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_1(l, n, p, nodeOrder){ +} +; +_.alwaysImproves = function alwaysImproves_0(){ + return false; +} +; +_.initAfterTraversal = function initAfterTraversal_1(){ + this.barycenterState = this.constraintResolver.barycenterStates; + this.portRanks = this.portDistributor.portRanks; +} +; +_.initAtLayerLevel = function initAtLayerLevel_1(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; +} +; +_.isDeterministic = function isDeterministic_0(){ + return false; +} +; +_.minimizeCrossings_0 = function minimizeCrossings_0(layer, preOrdered, randomize, forward_0){ + if (randomize) { + $randomizeBarycenters(this, layer); + } + else { + $calculateBarycenters(this, layer, forward_0); + $fillInUnknownBarycenters(this, layer, preOrdered); + } + if (layer.array.length > 1) { + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, castTo(this, 660)):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); + $processConstraints(this.constraintResolver, layer); + } +} +; +_.minimizeCrossings = function minimizeCrossings_1(order, freeLayerIndex, forwardSweep, isFirstSweep){ + var firstNodeInLayer, fixedLayer, index_0, nodeGroup, nodeGroup$iterator, nodes, preOrdered; + if (freeLayerIndex != $startIndex_0(forwardSweep, order.length)) { + fixedLayer = order[freeLayerIndex - (forwardSweep?1:-1)]; + $calculatePortRanks(this.portDistributor, fixedLayer, forwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); + } + firstNodeInLayer = order[freeLayerIndex][0]; + preOrdered = !isFirstSweep || firstNodeInLayer.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); + nodes = newArrayList_1(order[freeLayerIndex]); + this.minimizeCrossings_0(nodes, preOrdered, false, forwardSweep); + index_0 = 0; + for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { + nodeGroup = castTo($next_7(nodeGroup$iterator), 10); + order[freeLayerIndex][index_0++] = nodeGroup; + } + return false; +} +; +_.setFirstLayerOrder = function setFirstLayerOrder_0(order, isForwardSweep){ + var index_0, nodeGroup, nodeGroup$iterator, nodes, startIndex; + startIndex = $startIndex_0(isForwardSweep, order.length); + nodes = newArrayList_1(order[startIndex]); + this.minimizeCrossings_0(nodes, false, true, isForwardSweep); + index_0 = 0; + for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { + nodeGroup = castTo($next_7(nodeGroup$iterator), 10); + order[startIndex][index_0++] = nodeGroup; + } + return false; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic', 817); +function BarycenterHeuristic$BarycenterState(node){ + this.node = node; +} + +defineClass(658, 1, {658:1}, BarycenterHeuristic$BarycenterState); +_.toString_0 = function toString_98(){ + return 'BarycenterState [node=' + this.node + ', summedWeight=' + this.summedWeight + ', degree=' + this.degree + ', barycenter=' + this.barycenter + ', visited=' + this.visited + ']'; +} +; +_.degree = 0; +_.summedWeight = 0; +_.visited = false; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/BarycenterState', 658); +function BarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1802, 1, $intern_88, BarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_66(arg0, arg1){ + return $lambda$0_7(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_147(other){ + return this === other; +} +; +_.reversed = function reversed_58(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/lambda$0$Type', 1802); +function $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes){ + var currentUnitNode, currentUnitNode$iterator, group, group$iterator, group$iterator0, lastNonDummyNode, lastUnitNode, lastUnitNode$iterator, node, successor, successor$iterator; + for (group$iterator0 = new ArrayList$1(groups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 233); + group.outgoingConstraints = null; + group.incomingConstraintsCount = 0; + } + lastNonDummyNode = null; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + node = group.nodes[0]; + if (onlyBetweenNormalNodes && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + for (successor$iterator = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).iterator_0(); successor$iterator.hasNext_0();) { + successor = castTo(successor$iterator.next_1(), 10); + if (!onlyBetweenNormalNodes || successor.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).add_2(this$static.constraintGroups[successor.layer.id_0][successor.id_0]); + ++this$static.constraintGroups[successor.layer.id_0][successor.id_0].incomingConstraintsCount; + } + } + if (!onlyBetweenNormalNodes && node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + if (lastNonDummyNode) { + for (lastUnitNode$iterator = castTo($get(this$static.layoutUnits, lastNonDummyNode), 21).iterator_0(); lastUnitNode$iterator.hasNext_0();) { + lastUnitNode = castTo(lastUnitNode$iterator.next_1(), 10); + for (currentUnitNode$iterator = castTo($get(this$static.layoutUnits, node), 21).iterator_0(); currentUnitNode$iterator.hasNext_0();) { + currentUnitNode = castTo(currentUnitNode$iterator.next_1(), 10); + $getOutgoingConstraints(this$static.constraintGroups[lastUnitNode.layer.id_0][lastUnitNode.id_0]).add_2(this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0]); + ++this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0].incomingConstraintsCount; + } + } + } + lastNonDummyNode = node; + } + } +} + +function $findViolatedConstraint(groups){ + var activeGroups, group, group$iterator, predecessor, predecessor$iterator, successor, successor$iterator, successorIncomingList; + activeGroups = null; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter); + group.incomingConstraints = null; + if (!!group.outgoingConstraints && group.outgoingConstraints.size_1() > 0 && group.incomingConstraintsCount == 0) { + !activeGroups && (activeGroups = new ArrayList); + activeGroups.array[activeGroups.array.length] = group; + } + } + if (activeGroups) { + while (activeGroups.array.length != 0) { + group = castTo($remove_11(activeGroups, 0), 233); + if (!!group.incomingConstraints && group.incomingConstraints.array.length > 0) { + for (predecessor$iterator = (!group.incomingConstraints && (group.incomingConstraints = new ArrayList) , new ArrayList$1(group.incomingConstraints)); predecessor$iterator.i < predecessor$iterator.this$01.array.length;) { + predecessor = castTo($next_7(predecessor$iterator), 233); + if ($floatValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) == $floatValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { + if ($indexOf_3(groups, predecessor, 0) > $indexOf_3(groups, group, 0)) { + return new Pair(predecessor, group); + } + } + else if ($doubleValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) > $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { + return new Pair(predecessor, group); + } + } + } + for (successor$iterator = (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).iterator_0(); successor$iterator.hasNext_0();) { + successor = castTo(successor$iterator.next_1(), 233); + successorIncomingList = (!successor.incomingConstraints && (successor.incomingConstraints = new ArrayList) , successor.incomingConstraints); + checkCriticalPositionIndex(0, successorIncomingList.array.length); + insertTo(successorIncomingList.array, 0, group); + successor.incomingConstraintsCount == successorIncomingList.array.length && (activeGroups.array[activeGroups.array.length] = successor , true); + } + } + } + return null; +} + +function $handleViolatedConstraint(this$static, firstNodeGroup, secondNodeGroup, nodeGroups){ + var alreadyInserted, firstNodeGroupConstraint, newNodeGroup, nodeGroup, nodeGroupIterator, secondNodeGroupConstraint; + newNodeGroup = new ForsterConstraintResolver$ConstraintGroup_0(this$static, firstNodeGroup, secondNodeGroup); + nodeGroupIterator = new AbstractList$ListIteratorImpl(nodeGroups, 0); + alreadyInserted = false; + while (nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) { + nodeGroup = (checkCriticalElement(nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) , castTo(nodeGroupIterator.this$01_0.get_0(nodeGroupIterator.last = nodeGroupIterator.i++), 233)); + if (nodeGroup == firstNodeGroup || nodeGroup == secondNodeGroup) { + $remove_8(nodeGroupIterator); + } + else if (!alreadyInserted && $doubleValue($stateOf_0(nodeGroup.this$01, nodeGroup.nodes[0]).barycenter) > $doubleValue($stateOf_0(newNodeGroup.this$01, newNodeGroup.nodes[0]).barycenter)) { + checkCriticalElement(nodeGroupIterator.i > 0); + nodeGroupIterator.this$01.get_0(nodeGroupIterator.last = --nodeGroupIterator.i); + $add_1(nodeGroupIterator, newNodeGroup); + alreadyInserted = true; + } + else if (!!nodeGroup.outgoingConstraints && nodeGroup.outgoingConstraints.size_1() > 0) { + firstNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(firstNodeGroup); + secondNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(secondNodeGroup); + if (firstNodeGroupConstraint || secondNodeGroupConstraint) { + (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).add_2(newNodeGroup); + ++newNodeGroup.incomingConstraintsCount; + } + } + } + alreadyInserted || (nodeGroups.array[nodeGroups.array.length] = newNodeGroup , true); +} + +function $initAtNodeLevel(this$static, node, fullInit){ + var layerIndex, layoutUnit, nodeIndex; + layerIndex = node.layer.id_0; + nodeIndex = node.id_0; + this$static.constraintGroups[layerIndex][nodeIndex] = new ForsterConstraintResolver$ConstraintGroup(this$static, node); + if (fullInit) { + this$static.barycenterStates[layerIndex][nodeIndex] = new BarycenterHeuristic$BarycenterState(node); + layoutUnit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + !!layoutUnit && $put(this$static.layoutUnits, layoutUnit, node); + } +} + +function $processConstraints(this$static, nodes){ + if (this$static.constraintsBetweenNonDummies) { + $processConstraints_0(this$static, nodes, true); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nodes, 16)), new ForsterConstraintResolver$lambda$0$Type(this$static)); + } + $processConstraints_0(this$static, nodes, false); +} + +function $processConstraints_0(this$static, nodes, onlyBetweenNormalNodes){ + var group, group$iterator, groups, node, node$array, node$index, node$iterator, node$max, violatedConstraint; + groups = new ArrayList_0(nodes.array.length); + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_3(groups, this$static.constraintGroups[node.layer.id_0][node.id_0]); + } + $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes); + violatedConstraint = null; + while (violatedConstraint = $findViolatedConstraint(groups)) { + $handleViolatedConstraint(this$static, castTo(violatedConstraint.first, 233), castTo(violatedConstraint.second, 233), groups); + } + nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + for (node$array = group.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + nodes.array[nodes.array.length] = node; + this$static.barycenterStates[node.layer.id_0][node.id_0].barycenter = $stateOf_0(group.this$01, group.nodes[0]).barycenter; + } + } +} + +function $stateOf_0(this$static, node){ + return this$static.barycenterStates[node.layer.id_0][node.id_0]; +} + +function ForsterConstraintResolver(currentNodeOrder){ + currentNodeOrder.length > 0 && currentNodeOrder[0].length > 0 && (this.constraintsBetweenNonDummies = $booleanValue(castToBoolean($getProperty($getGraph(currentNodeOrder[0][0]), ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES))))); + this.barycenterStates = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, $intern_16, 2018, currentNodeOrder.length, 0, 2); + this.constraintGroups = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, $intern_16, 2019, currentNodeOrder.length, 0, 2); + this.layoutUnits = new LinkedHashMultimap; +} + +defineClass(816, 1, $intern_111, ForsterConstraintResolver); +_.initAfterTraversal = function initAfterTraversal_2(){ +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_2(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_2(l, n, p, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_2(l, nodeOrder){ + this.barycenterStates[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, {3:1, 4:1, 5:1, 2018:1}, 658, nodeOrder[l].length, 0, 1); + this.constraintGroups[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, {3:1, 4:1, 5:1, 2019:1}, 233, nodeOrder[l].length, 0, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_2(l, n, nodeOrder){ + $initAtNodeLevel(this, nodeOrder[l][n], true); +} +; +_.constraintsBetweenNonDummies = false; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver', 816); +function $getOutgoingConstraints(this$static){ + !this$static.outgoingConstraints && (this$static.outgoingConstraints = new ArrayList); + return this$static.outgoingConstraints; +} + +function $setBarycenter(this$static, barycenter){ + var node, node$array, node$index, node$max; + for (node$array = this$static.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $stateOf_0(this$static.this$01, node).barycenter = barycenter; + } +} + +function ForsterConstraintResolver$ConstraintGroup(this$0, node){ + this.this$01 = this$0; + this.nodes = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [node]); +} + +function ForsterConstraintResolver$ConstraintGroup_0(this$0, nodeGroup1, nodeGroup2){ + var candidate, candidate$iterator, i, i0, length1, length2; + this.this$01 = this$0; + length1 = nodeGroup1.nodes.length; + length2 = nodeGroup2.nodes.length; + this.nodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, length1 + length2, 0, 1); + for (i0 = 0; i0 < length1; i0++) { + this.nodes[i0] = nodeGroup1.nodes[i0]; + } + for (i = 0; i < length2; i++) { + this.nodes[length1 + i] = nodeGroup2.nodes[i]; + } + if (nodeGroup1.outgoingConstraints) { + this.outgoingConstraints = newLinkedList(nodeGroup1.outgoingConstraints); + this.outgoingConstraints.remove_1(nodeGroup2); + if (nodeGroup2.outgoingConstraints) { + for (candidate$iterator = nodeGroup2.outgoingConstraints.iterator_0(); candidate$iterator.hasNext_0();) { + candidate = castTo(candidate$iterator.next_1(), 233); + if (candidate == nodeGroup1) { + continue; + } + else + this.outgoingConstraints.contains(candidate)?--candidate.incomingConstraintsCount:this.outgoingConstraints.add_2(candidate); + } + } + } + else if (nodeGroup2.outgoingConstraints) { + this.outgoingConstraints = newLinkedList(nodeGroup2.outgoingConstraints); + this.outgoingConstraints.remove_1(nodeGroup1); + } + this.summedWeight = nodeGroup1.summedWeight + nodeGroup2.summedWeight; + this.degree = nodeGroup1.degree + nodeGroup2.degree; + this.degree > 0?$setBarycenter(this, this.summedWeight / this.degree):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null && $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null?$setBarycenter(this, ($doubleValue($stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter) + $doubleValue($stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter)) / 2):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null?$setBarycenter(this, $stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter):$stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null && $setBarycenter(this, $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter); +} + +defineClass(233, 1, {233:1}, ForsterConstraintResolver$ConstraintGroup, ForsterConstraintResolver$ConstraintGroup_0); +_.toString_0 = function toString_99(){ + var i, sb; + sb = new StringBuilder; + sb.string += '['; + for (i = 0; i < this.nodes.length; i++) { + $append_11(sb, $toString_13(this.nodes[i])); + $stateOf_0(this.this$01, this.nodes[0]).barycenter != null && $append_11($append_11((sb.string += '<' , sb), $toString_6($stateOf_0(this.this$01, this.nodes[0]).barycenter)), '>'); + i < this.nodes.length - 1 && (sb.string += ', ' , sb); + } + return (sb.string += ']' , sb).string; +} +; +_.degree = 0; +_.incomingConstraintsCount = 0; +_.summedWeight = 0; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/ConstraintGroup', 233); +function ForsterConstraintResolver$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1797, 1, $intern_19, ForsterConstraintResolver$lambda$0$Type); +_.accept = function accept_114(arg0){ + $initAtNodeLevel(this.$$outer_0, castTo(arg0, 10), false); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/lambda$0$Type', 1797); +function $setBestNodeNPortOrder(this$static, bestNodeNPortOrder){ + this$static.bestNodeAndPortOrder = bestNodeNPortOrder; +} + +function $setCurrentlyBestNodeAndPortOrder(this$static, currentlyBestNodeAndPortOrder){ + this$static.currentlyBestNodeAndPortOrder = currentlyBestNodeAndPortOrder; +} + +function GraphInfoHolder(graph, crossMinType, graphs){ + var constraintResolver, graphProperties, initializables, random; + this.lGraph = graph; + this.currentNodeOrder = $toNodeArray(graph); + this.parent_0 = this.lGraph.parentNode; + this.hasParent = !!this.parent_0; + this.parentGraphData = this.hasParent?castTo($get_11(graphs, $getGraph(this.parent_0).id_0), 214):null; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + this.hasExternalPorts = graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + this.childGraphs = new ArrayList; + this.crossingsCounter = new AllCrossingsCounter(this.currentNodeOrder); + random = castTo($getProperty(this.lGraph, RANDOM_0), 230); + this.portDistributor = create_15(crossMinType, random, this.currentNodeOrder); + this.layerSweepTypeDecider = new LayerSweepTypeDecider(this); + initializables = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [this, this.crossingsCounter, this.layerSweepTypeDecider, this.portDistributor])); + if (crossMinType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER) && !$booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + initializables.array[initializables.array.length] = constraintResolver; + this.crossMinimizer = new BarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); + } + else if (crossMinType == BARYCENTER && $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + initializables.array[initializables.array.length] = constraintResolver; + this.crossMinimizer = new ModelOrderBarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); + } + else { + this.crossMinimizer = new GreedySwitchHeuristic(crossMinType, this); + } + $add_3(initializables, this.crossMinimizer); + init_0(initializables, this.currentNodeOrder); + this.useBottomUp = $useBottomUp(this.layerSweepTypeDecider); +} + +defineClass(214, 1, {214:1, 225:1}, GraphInfoHolder); +_.initAtEdgeLevel = function initAtEdgeLevel_3(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_3(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_3(){ + this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_3(l, n, nodeOrder){ + var nestedGraph, node; + node = nodeOrder[l][n]; + nestedGraph = node.nestedGraph; + !!nestedGraph && $add_3(this.childGraphs, nestedGraph); +} +; +_.initAtPortLevel = function initAtPortLevel_3(l, n, p, nodeOrder){ + ++this.nPorts; +} +; +_.toString_0 = function toString_100(){ + return deepToString(this.currentNodeOrder, new HashSet); +} +; +_.hasExternalPorts = false; +_.hasParent = false; +_.nPorts = 0; +_.useBottomUp = false; +var Lorg_eclipse_elk_alg_layered_p3order_GraphInfoHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GraphInfoHolder', 214); +function $distributePortsInLayer(this$static, nodeOrder, currentIndex, isForwardSweep){ + var improved, innerGraph, nestedGraph, node, node$array, node$index, node$max, side, useHierarchicalCrossCounter; + side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); + improved = false; + for (node$array = nodeOrder[currentIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if ($isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + continue; + } + nestedGraph = node.nestedGraph; + useHierarchicalCrossCounter = !$getPortSideView(node, side).isEmpty() && !!nestedGraph; + if (useHierarchicalCrossCounter) { + innerGraph = $toNodeArray(nestedGraph); + this$static.hierarchicalCrossingsCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(innerGraph, isForwardSweep?0:innerGraph.length - 1); + } + improved = improved | $distributePortsOnNode(this$static, node, side, useHierarchicalCrossCounter); + } + return improved; +} + +function $distributePortsOnNode(this$static, node, side, useHierarchicalCrosscounter){ + var continueSwitching, i, improved, lowerPort, ports, upperPort, lower; + ports = $getPortSideView(node, side); + (side == ($clinit_PortSide() , SOUTH_2) || side == WEST_2) && (ports = instanceOf(ports, 152)?$reverse(castTo(ports, 152)):instanceOf(ports, 131)?castTo(ports, 131).forwardList:instanceOf(ports, 54)?new Lists$RandomAccessReverseList(ports):new Lists$ReverseList(ports)); + improved = false; + do { + continueSwitching = false; + for (i = 0; i < ports.size_1() - 1; i++) { + upperPort = castTo(ports.get_0(i), 11); + lowerPort = castTo(ports.get_0(i + 1), 11); + if ($switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter)) { + improved = true; + $switchPorts(this$static.crossingsCounter, castTo(ports.get_0(i), 11), castTo(ports.get_0(i + 1), 11)); + lower = castTo(ports.get_0(i + 1), 11); + ports.set_2(i + 1, castTo(ports.get_0(i), 11)); + ports.set_2(i, lower); + continueSwitching = true; + } + } + } + while (continueSwitching); + return improved; +} + +function $switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter){ + var lowerNode, lowerUpperCrossings, originalNSwitchedCrossings, upperLowerCrossings, upperNode; + originalNSwitchedCrossings = $countCrossingsBetweenPortsInBothOrders(this$static.crossingsCounter, upperPort, lowerPort); + upperLowerCrossings = castTo(originalNSwitchedCrossings.first, 19).value_0; + lowerUpperCrossings = castTo(originalNSwitchedCrossings.second, 19).value_0; + if (useHierarchicalCrosscounter) { + upperNode = castTo($getProperty(upperPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + lowerNode = castTo($getProperty(lowerPort, PORT_DUMMY), 10); + if (!!upperNode && !!lowerNode) { + $countBothSideCrossings(this$static.hierarchicalCrossingsCounter, upperNode, lowerNode); + upperLowerCrossings += this$static.hierarchicalCrossingsCounter.upperLowerCrossings; + lowerUpperCrossings += this$static.hierarchicalCrossingsCounter.lowerUpperCrossings; + } + } + return upperLowerCrossings > lowerUpperCrossings; +} + +function GreedyPortDistributor(){ +} + +defineClass(1832, 1, $intern_111, GreedyPortDistributor); +_.initAtEdgeLevel = function initAtEdgeLevel_4(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_4(l, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_4(l, n, p, nodeOrder){ +} +; +_.distributePortsWhileSweeping = function distributePortsWhileSweeping_0(nodeOrder, currentIndex, isForwardSweep){ + isForwardSweep && currentIndex > 0?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex - 1], nodeOrder[currentIndex]) , undefined):!isForwardSweep && currentIndex < nodeOrder.length - 1?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex], nodeOrder[currentIndex + 1]) , undefined):$initPortPositionsForInLayerCrossings(this.crossingsCounter, nodeOrder[currentIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2)); + return $distributePortsInLayer(this, nodeOrder, currentIndex, isForwardSweep); +} +; +_.initAfterTraversal = function initAfterTraversal_4(){ + this.portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); + this.crossingsCounter = new CrossingsCounter(this.portPos); +} +; +_.initAtNodeLevel = function initAtNodeLevel_4(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + this.nPorts += node.ports.array.length; +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_GreedyPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GreedyPortDistributor', 1832); +function $clinit_InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_3 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING, LONG_EDGE_JOINER); +} + +function $getLayoutProcessorConfiguration(graph){ + var configuration; + configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_3); + castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , NON_FREE_PORTS)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)); + return configuration; +} + +function $getPos(node, horizPos){ + var bendpoints, edge, originNode, originPort, point1, point2, pointIter, source, sourcePoint, target, targetPoint; + switch (node.type_0.ordinal) { + case 1: + edge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); + bendpoints = castTo($getProperty(edge, ORIGINAL_BENDPOINTS), 74); + !bendpoints?(bendpoints = new KVectorChain):$booleanValue(castToBoolean($getProperty(edge, REVERSED))) && (bendpoints = reverse_3(bendpoints)); + source = castTo($getProperty(node, LONG_EDGE_SOURCE), 11); + if (source) { + sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [source.owner.pos, source.pos, source.anchor])); + if (horizPos <= sourcePoint.x_0) { + return sourcePoint.y_0; + } + $addNode_0(bendpoints, sourcePoint, bendpoints.header, bendpoints.header.next_0); + } + + target = castTo($getProperty(node, LONG_EDGE_TARGET), 11); + if (target) { + targetPoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])); + if (targetPoint.x_0 <= horizPos) { + return targetPoint.y_0; + } + $addNode_0(bendpoints, targetPoint, bendpoints.tail.prev, bendpoints.tail); + } + + if (bendpoints.size_0 >= 2) { + pointIter = $listIterator_2(bendpoints, 0); + point1 = castTo($next_10(pointIter), 8); + point2 = castTo($next_10(pointIter), 8); + while (point2.x_0 < horizPos && pointIter.currentNode != pointIter.this$01.tail) { + point1 = point2; + point2 = castTo($next_10(pointIter), 8); + } + return point1.y_0 + (horizPos - point1.x_0) / (point2.x_0 - point1.x_0) * (point2.y_0 - point1.y_0); + } + + break; + case 3: + originPort = castTo($getProperty(castTo($get_11(node.ports, 0), 11), ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + originNode = originPort.owner; + switch (originPort.side.ordinal) { + case 1: + return originNode.pos.y_0; + case 3: + return originNode.pos.y_0 + originNode.size_0.y_0; + } + + } + return $getInteractiveReferencePoint(node).y_0; +} + +function $process_67(layeredGraph, monitor){ + var horizPos, layer, layer$iterator, layer$iterator0, layerIndex, nextIndex, node, node$iterator, node$iterator0, nodeCount, nodeOrder, port, port$iterator, portCount, portDistributor, pos; + $begin(monitor, 'Interactive crossing minimization', 1); + layerIndex = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + layer.id_0 = layerIndex++; + } + nodeOrder = $toNodeArray(layeredGraph); + portDistributor = new NodeRelativePortDistributor(nodeOrder.length); + init_0(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [portDistributor])), nodeOrder); + portCount = 0; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + horizPos = 0; + nodeCount = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.pos.x_0 > 0) { + horizPos += node.pos.x_0 + node.size_0.x_0 / 2; + ++nodeCount; + } + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.id_0 = portCount++; + } + } + nodeCount > 0 && (horizPos /= nodeCount); + pos = initUnidimensionalArray(D_classLit, $intern_65, 25, layer.nodes.array.length, 15, 1); + nextIndex = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nextIndex++; + pos[node.id_0] = $getPos(node, horizPos); + node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION), pos[node.id_0]); + } + $clinit_Collections(); + $sort(layer.nodes, new InteractiveCrossingMinimizer$1(pos)); + $distributePortsWhileSweeping(portDistributor, nodeOrder, layerIndex, true); + ++layerIndex; + } + $done_0(monitor); +} + +function InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer(); +} + +defineClass(1401, 1, $intern_113, InteractiveCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_9(graph){ + return $getLayoutProcessorConfiguration(castTo(graph, 37)); +} +; +_.process = function process_64(layeredGraph, monitor){ + $process_67(castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_3; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer', 1401); +function $compare_20(this$static, node1, node2){ + var compare, node1Successors, node2Successors; + compare = compare_4(this$static.val$pos2[node1.id_0], this$static.val$pos2[node2.id_0]); + if (compare == 0) { + node1Successors = castTo($getProperty(node1, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15); + node2Successors = castTo($getProperty(node2, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15); + if (node1Successors.contains(node2)) { + return -1; + } + else if (node2Successors.contains(node1)) { + return 1; + } + } + return compare; +} + +function InteractiveCrossingMinimizer$1(val$pos){ + this.val$pos2 = val$pos; +} + +defineClass(1402, 1, $intern_88, InteractiveCrossingMinimizer$1); +_.compare_1 = function compare_67(node1, node2){ + return $compare_20(this, castTo(node1, 10), castTo(node2, 10)); +} +; +_.equals_0 = function equals_148(other){ + return this === other; +} +; +_.reversed = function reversed_59(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer/1', 1402); +function $clinit_LayerSweepCrossingMinimizer(){ + $clinit_LayerSweepCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_4 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); +} + +function $compareDifferentRandomizedLayouts(this$static, gData){ + var bestCrossings, crossings, i, thouroughness; + $setSeed_0(this$static.random_0, this$static.randomSeed); + this$static.graphsWhoseNodeOrderChanged.map_0.clear_0(); + if ($doubleValue(castToDouble($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)))) != 0 || $doubleValue(castToDouble($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))) != 0) { + bestCrossings = $intern_98; + maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); + thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; + for (i = 0; i < thouroughness; i++) { + crossings = $minimizeCrossingsNodePortOrderWithCounter(this$static, gData); + if (crossings < bestCrossings) { + bestCrossings = crossings; + $saveAllNodeOrdersOfChangedGraphs(this$static); + if (bestCrossings == 0) { + break; + } + } + } + } + else { + bestCrossings = $intern_0; + maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); + thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; + for (i = 0; i < thouroughness; i++) { + crossings = $minimizeCrossingsWithCounter(this$static, gData); + if (crossings < bestCrossings) { + bestCrossings = crossings; + $saveAllNodeOrdersOfChangedGraphs(this$static); + if (bestCrossings == 0) { + break; + } + } + } + } +} + +function $countCurrentNumberOfCrossings(this$static, currentGraph){ + var child, childLGraph, childLGraph$iterator, countCrossingsIn, gD, totalCrossings; + totalCrossings = 0; + countCrossingsIn = new ArrayDeque; + $addFirst(countCrossingsIn, currentGraph); + while (countCrossingsIn.head != countCrossingsIn.tail) { + gD = castTo($removeFirst(countCrossingsIn), 214); + totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder); + for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { + childLGraph = castTo($next_7(childLGraph$iterator), 37); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); + child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); + } + } + return totalCrossings; +} + +function $countCurrentNumberOfCrossingsNodePortOrder(this$static, currentGraph){ + var child, childLGraph, childLGraph$iterator, countCrossingsIn, crossingCounterNodeInfluence, crossingCounterPortInfluence, gD, modelOrderInfluence, modelOrderStrategy, totalCrossings; + totalCrossings = 0; + countCrossingsIn = new ArrayDeque; + $addFirst(countCrossingsIn, currentGraph); + while (countCrossingsIn.head != countCrossingsIn.tail) { + gD = castTo($removeFirst(countCrossingsIn), 214); + modelOrderInfluence = 0; + modelOrderStrategy = castTo($getProperty(currentGraph.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 339); + crossingCounterNodeInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))); + crossingCounterPortInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0))); + if (modelOrderStrategy != ($clinit_OrderingStrategy() , NONE_10)) { + modelOrderInfluence += crossingCounterNodeInfluence * $countModelOrderNodeChanges(gD.currentNodeOrder, modelOrderStrategy); + modelOrderInfluence += crossingCounterPortInfluence * $countModelOrderPortChanges(gD.currentNodeOrder); + } + totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder) + modelOrderInfluence; + for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { + childLGraph = castTo($next_7(childLGraph$iterator), 37); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); + child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); + } + } + return totalCrossings; +} + +function $countModelOrderNodeChanges(layers, strategy){ + var comp, i, j, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; + previousLayer = -1; + wrongModelOrder = 0; + for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + comp = new ModelOrderNodeComparator_1(previousLayer == -1?layers[0]:layers[previousLayer], strategy, ($clinit_LongEdgeOrderingStrategy() , EQUAL)); + for (i = 0; i < layer.length; i++) { + for (j = i + 1; j < layer.length; j++) { + $hasProperty(layer[i], ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(layer[j], MODEL_ORDER_0) && $compare_15(comp, layer[i], layer[j]) > 0 && ++wrongModelOrder; + } + } + ++previousLayer; + } + return wrongModelOrder; +} + +function $countModelOrderPortChanges(layers){ + var comp, i, j, lNode, lNode$array, lNode$index, lNode$max, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; + previousLayer = -1; + wrongModelOrder = 0; + for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + for (lNode$array = layer , lNode$index = 0 , lNode$max = lNode$array.length; lNode$index < lNode$max; ++lNode$index) { + lNode = lNode$array[lNode$index]; + comp = new ModelOrderPortComparator_0(previousLayer == -1?layers[0]:layers[previousLayer], longEdgeTargetNodePreprocessing(lNode)); + for (i = 0; i < lNode.ports.array.length; i++) { + for (j = i + 1; j < lNode.ports.array.length; j++) { + $compare_16(comp, castTo($get_11(lNode.ports, i), 11), castTo($get_11(lNode.ports, j), 11)) > 0 && ++wrongModelOrder; + } + } + } + ++previousLayer; + } + return wrongModelOrder; +} + +function $endIndex(isForwardSweep, length_0){ + return isForwardSweep?length_0 - 1:0; +} + +function $firstIndex(isForwardSweep, length_0){ + return isForwardSweep?0:length_0 - 1; +} + +function $initialize_5(this$static, rootGraph){ + var gData, graph, graphs, graphsToSweepOn, i, iter; + this$static.graphInfoHolders = new ArrayList; + this$static.random_0 = castTo($getProperty(rootGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + this$static.randomSeed = $nextLong(this$static.random_0); + graphsToSweepOn = new LinkedList; + graphs = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [rootGraph])); + i = 0; + while (i < graphs.array.length) { + graph = (checkCriticalElementIndex(i, graphs.array.length) , castTo(graphs.array[i], 37)); + graph.id_0 = i++; + gData = new GraphInfoHolder(graph, this$static.crossMinType, this$static.graphInfoHolders); + $addAll_2(graphs, gData.childGraphs); + $add_3(this$static.graphInfoHolders, gData); + gData.useBottomUp && (iter = $listIterator_2(graphsToSweepOn, 0) , $add_8(iter, gData)); + } + this$static.graphsWhoseNodeOrderChanged = new HashSet; + return graphsToSweepOn; +} + +function $minimizeCrossings(graphsToSweepOn, minimizingMethod){ + var gData, gData$iterator; + for (gData$iterator = $listIterator_2(graphsToSweepOn, 0); gData$iterator.currentNode != gData$iterator.this$01.tail;) { + gData = castTo($next_10(gData$iterator), 214); + if (gData.currentNodeOrder.length > 0) { + minimizingMethod.accept(gData); + gData.hasParent && $setPortOrderOnParentGraph(gData); + } + } +} + +function $minimizeCrossingsNoCounter(this$static, gData){ + var improved, isForwardSweep; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + improved = true; + while (improved) { + improved = false; + improved = gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep); + improved = improved | $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + isForwardSweep = !isForwardSweep; + } + $setCurrentlyBestNodeOrders(this$static); +} + +function $minimizeCrossingsNodePortOrderWithCounter(this$static, gData){ + var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); + $sweepReducingCrossings(this$static, gData, isForwardSweep, true); + $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { + $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); + } + crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + do { + $setCurrentlyBestNodeOrders(this$static); + if (crossingsInGraph == 0) { + return 0; + } + isForwardSweep = !isForwardSweep; + oldNumberOfCrossings = crossingsInGraph; + $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + } + while (oldNumberOfCrossings > crossingsInGraph); + return oldNumberOfCrossings; +} + +function $minimizeCrossingsWithCounter(this$static, gData){ + var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); + $sweepReducingCrossings(this$static, gData, isForwardSweep, true); + $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { + $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); + } + crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); + do { + $setCurrentlyBestNodeOrders(this$static); + if (crossingsInGraph == 0) { + return 0; + } + isForwardSweep = !isForwardSweep; + oldNumberOfCrossings = crossingsInGraph; + $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); + } + while (oldNumberOfCrossings > crossingsInGraph); + return oldNumberOfCrossings; +} + +function $process_68(this$static, layeredGraph, progressMonitor){ + var emptyGraph, graphsToSweepOn, hierarchicalLayout, minimizingMethod, parent_0, singleNode; + $begin(progressMonitor, 'Minimize Crossings ' + this$static.crossMinType, 1); + emptyGraph = layeredGraph.layers.array.length == 0 || !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new Predicate$lambda$2$Type(new LayerSweepCrossingMinimizer$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + singleNode = layeredGraph.layers.array.length == 1 && castTo($get_11(layeredGraph.layers, 0), 29).nodes.array.length == 1; + hierarchicalLayout = maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (emptyGraph || singleNode && !hierarchicalLayout) { + $done_0(progressMonitor); + return; + } + graphsToSweepOn = $initialize_5(this$static, layeredGraph); + minimizingMethod = (parent_0 = castTo($get_7(graphsToSweepOn, 0), 214) , parent_0.crossMinimizer.isDeterministic()?parent_0.crossMinimizer.alwaysImproves()?new LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type(this$static):new LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type(this$static):new LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type(this$static)); + $minimizeCrossings(graphsToSweepOn, minimizingMethod); + $transferNodeAndPortOrdersToGraph(this$static); + $done_0(progressMonitor); +} + +function $saveAllNodeOrdersOfChangedGraphs(this$static){ + var graph, graph$iterator; + for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 214); + $setBestNodeNPortOrder(graph, new SweepCopy(graph.currentlyBestNodeAndPortOrder)); + } +} + +function $setCurrentlyBestNodeOrders(this$static){ + var graph, graph$iterator; + for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 214); + $setCurrentlyBestNodeAndPortOrder(graph, new SweepCopy_0(graph.currentNodeOrder)); + } +} + +function $setPortOrderOnParentGraph(gData){ + var bestSweep; + if (gData.hasExternalPorts) { + bestSweep = gData.crossMinimizer.isDeterministic()?gData.currentlyBestNodeAndPortOrder:gData.bestNodeAndPortOrder; + $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, true); + $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, false); + $setProperty_0(gData.parent_0, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_ORDER)); + } +} + +function $sortPortDummiesByPortPositions(parentNode, layerCloseToNodeEdge, side){ + var i, port, port$iterator, ports, sortedDummies; + ports = inNorthSouthEastWestOrder(parentNode, side); + sortedDummies = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layerCloseToNodeEdge.length, 0, 1); + i = 0; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))) && (sortedDummies[i++] = castTo($getProperty(port, PORT_DUMMY), 10)); + } + if (i < layerCloseToNodeEdge.length) { + throw toJs(new IllegalStateException_0('Expected ' + layerCloseToNodeEdge.length + ' hierarchical ports, but found only ' + i + '.')); + } + return sortedDummies; +} + +function $sortPortsByDummyPositionsInLastLayer(nodeOrder, parent_0, onRightMostLayer){ + var endIndex, i, j, lastLayer, port, ports; + endIndex = $endIndex(onRightMostLayer, nodeOrder.length); + lastLayer = nodeOrder[endIndex]; + if (lastLayer[0].type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return; + } + j = $firstIndex(onRightMostLayer, lastLayer.length); + ports = parent_0.ports; + for (i = 0; i < ports.array.length; i++) { + port = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); + if ((onRightMostLayer?port.side == ($clinit_PortSide() , EAST_2):port.side == ($clinit_PortSide() , WEST_2)) && $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS))))) { + $set_1(ports, i, castTo($getProperty(lastLayer[j], ($clinit_InternalProperties_1() , ORIGIN_0)), 11)); + j += onRightMostLayer?1:-1; + } + } +} + +function $sweepInHierarchicalNodes(this$static, layer, isForwardSweep, isFirstSweep){ + var improved, node, node$array, node$index, node$max, nestedLGraph, nestedGraph, nestedGraphNodeOrder, startIndex, firstNode, improved_0; + improved = false; + for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $booleanValue(($clinit_Boolean() , node.nestedGraph?true:false)) && !castTo($get_11(this$static.graphInfoHolders, node.nestedGraph.id_0), 214).useBottomUp && (improved = improved | (nestedLGraph = node.nestedGraph , nestedGraph = castTo($get_11(this$static.graphInfoHolders, nestedLGraph.id_0), 214) , nestedGraphNodeOrder = nestedGraph.currentNodeOrder , startIndex = $firstIndex(isForwardSweep, nestedGraphNodeOrder.length) , firstNode = nestedGraphNodeOrder[startIndex][0] , firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)?(nestedGraphNodeOrder[startIndex] = $sortPortDummiesByPortPositions(node, nestedGraphNodeOrder[startIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2))):nestedGraph.crossMinimizer.setFirstLayerOrder(nestedGraphNodeOrder, isForwardSweep) , improved_0 = $sweepReducingCrossings(this$static, nestedGraph, isForwardSweep, isFirstSweep) , $sortPortsByDummyPositionsInLastLayer(nestedGraph.currentNodeOrder, nestedGraph.parent_0, isForwardSweep) , improved_0)); + } + return improved; +} + +function $sweepReducingCrossings(this$static, graph, forward_0, firstSweep){ + var firstLayer, i, improved, length_0, nodes; + nodes = graph.currentNodeOrder; + length_0 = nodes.length; + improved = graph.portDistributor.distributePortsWhileSweeping(nodes, forward_0?0:length_0 - 1, forward_0); + firstLayer = nodes[forward_0?0:length_0 - 1]; + improved = improved | $sweepInHierarchicalNodes(this$static, firstLayer, forward_0, firstSweep); + for (i = forward_0?1:length_0 - 2; forward_0?i < length_0:i >= 0; i += forward_0?1:-1) { + improved = improved | graph.crossMinimizer.minimizeCrossings(nodes, i, forward_0, firstSweep && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , SECOND_TRY_WITH_INITIAL_ORDER))))); + improved = improved | graph.portDistributor.distributePortsWhileSweeping(nodes, i, forward_0); + improved = improved | $sweepInHierarchicalNodes(this$static, nodes[i], forward_0, firstSweep); + } + $add_6(this$static.graphsWhoseNodeOrderChanged, graph); + return improved; +} + +function $transferNodeAndPortOrdersToGraph(this$static){ + var bestSweep, gD, gD$iterator; + for (gD$iterator = new ArrayList$1(this$static.graphInfoHolders); gD$iterator.i < gD$iterator.this$01.array.length;) { + gD = castTo($next_7(gD$iterator), 214); + bestSweep = gD.crossMinimizer.isDeterministic()?gD.currentlyBestNodeAndPortOrder:gD.bestNodeAndPortOrder; + !!bestSweep && $transferNodeAndPortOrdersToGraph_0(bestSweep, gD.lGraph); + } +} + +function LayerSweepCrossingMinimizer(cT){ + $clinit_LayerSweepCrossingMinimizer(); + this.crossMinType = cT; +} + +defineClass(507, 1, {507:1, 123:1, 51:1}, LayerSweepCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_10(graph){ + var configuration; + return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_4) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_65(layeredGraph, progressMonitor){ + $process_68(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.randomSeed = 0; +var INTERMEDIATE_PROCESSING_CONFIGURATION_4; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer', 507); +function LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1398, 1, $intern_19, LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type); +_.accept = function accept_115(arg0){ + $compareDifferentRandomizedLayouts(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type', 1398); +function LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1399, 1, $intern_19, LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type); +_.accept = function accept_116(arg0){ + $minimizeCrossingsNoCounter(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type', 1399); +function LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1400, 1, $intern_19, LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type); +_.accept = function accept_117(arg0){ + $minimizeCrossingsWithCounter(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type', 1400); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType = emptyMethod; + BARYCENTER = new LayerSweepCrossingMinimizer$CrossMinType('BARYCENTER', 0); + ONE_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('ONE_SIDED_GREEDY_SWITCH', 1); + TWO_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('TWO_SIDED_GREEDY_SWITCH', 2); +} + +function LayerSweepCrossingMinimizer$CrossMinType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_67(name_0){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType(); + return valueOf(($clinit_LayerSweepCrossingMinimizer$CrossMinType$Map() , $MAP_55), name_0); +} + +function values_73(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]); +} + +defineClass(454, 22, {3:1, 35:1, 22:1, 454:1}, LayerSweepCrossingMinimizer$CrossMinType); +var BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/CrossMinType', 454, Ljava_lang_Enum_2_classLit, values_73, valueOf_67); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map = emptyMethod; + $MAP_55 = createValueOfMap(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]))); +} + +var $MAP_55; +function LayerSweepCrossingMinimizer$lambda$0$Type(){ +} + +defineClass(1397, 1, $intern_39, LayerSweepCrossingMinimizer$lambda$0$Type); +_.test_0 = function test_85(arg0){ + return $clinit_LayerSweepCrossingMinimizer() , castTo(arg0, 29).nodes.array.length == 0; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/lambda$0$Type', 1397); +function $transferInfoTo(this$static, currentNode, target){ + var targetNodeInfo; + targetNodeInfo = this$static.nodeInfo[target.layer.id_0][target.id_0]; + targetNodeInfo.hierarchicalInfluence += currentNode.hierarchicalInfluence; + targetNodeInfo.randomInfluence += currentNode.randomInfluence; + targetNodeInfo.connectedEdges += currentNode.connectedEdges; + ++targetNodeInfo.connectedEdges; +} + +function $useBottomUp(this$static){ + var allPaths, boundary, currentNode, eastPorts, edge, edge$iterator, layer, layer$array, layer$index, layer$max, node, node$array, node$index, node$iterator, node$max, normalized, northSouthPorts, nsDummy, nsPortDummies, pathsToHierarchical, pathsToRandom, port, port$iterator, target, westPorts; + boundary = $doubleValue(castToDouble($getProperty(this$static.graphData.lGraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)))); + if (boundary < -1 || !this$static.graphData.hasParent || $isOrderFixed(castTo($getProperty(this$static.graphData.parent_0, PORT_CONSTRAINTS_0), 98)) || $getPortSideView(this$static.graphData.parent_0, ($clinit_PortSide() , EAST_2)).size_1() < 2 && $getPortSideView(this$static.graphData.parent_0, WEST_2).size_1() < 2) { + return true; + } + if (this$static.graphData.crossMinimizer.isDeterministic()) { + return false; + } + pathsToRandom = 0; + pathsToHierarchical = 0; + nsPortDummies = new ArrayList; + for (layer$array = this$static.graphData.currentNodeOrder , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + nsPortDummies.array[nsPortDummies.array.length] = node; + continue; + } + currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; + if (node.type_0 == EXTERNAL_PORT) { + currentNode.hierarchicalInfluence = 1; + castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 11).side == ($clinit_PortSide() , EAST_2) && (pathsToHierarchical += currentNode.connectedEdges); + } + else { + westPorts = $getPortSideView(node, ($clinit_PortSide() , WEST_2)); + westPorts.isEmpty() || !any_0(westPorts, new LayerSweepTypeDecider$lambda$1$Type)?(currentNode.randomInfluence = 1):(eastPorts = $getPortSideView(node, EAST_2) , (eastPorts.isEmpty() || !any_0(eastPorts, new LayerSweepTypeDecider$lambda$0$Type)) && (pathsToRandom += currentNode.connectedEdges)); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + northSouthPorts = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [$getPortSideView(node, ($clinit_PortSide() , NORTH_3)), $getPortSideView(node, SOUTH_2)])); + for (port$iterator = new Iterators$ConcatenatedIterator(new FluentIterable$3$1(northSouthPorts.val$inputs1.length, northSouthPorts.val$inputs1)); $hasNext_1(port$iterator);) { + port = castTo($next_0(port$iterator), 11); + nsDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (nsDummy) { + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + $transferInfoTo(this$static, currentNode, nsDummy); + } + } + } + for (node$iterator = new ArrayList$1(nsPortDummies); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + } + nsPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + allPaths = pathsToRandom + pathsToHierarchical; + normalized = allPaths == 0?$intern_59:(pathsToRandom - pathsToHierarchical) / allPaths; + return normalized >= boundary; +} + +function LayerSweepTypeDecider(graphData){ + this.graphData = graphData; + this.nodeInfo = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, $intern_16, 1944, graphData.currentNodeOrder.length, 0, 2); +} + +defineClass(1799, 1, $intern_111, LayerSweepTypeDecider); +_.initAfterTraversal = function initAfterTraversal_5(){ +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_5(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_5(l, n, p, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_5(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; + this.nodeInfo[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, {3:1, 4:1, 5:1, 1944:1}, 659, nodeOrder[l].length, 0, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_5(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + node.id_0 = n; + setCheck(this.nodeInfo[l], n, new LayerSweepTypeDecider$NodeInfo); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider', 1799); +function LayerSweepTypeDecider$NodeInfo(){ +} + +defineClass(659, 1, {659:1}, LayerSweepTypeDecider$NodeInfo); +_.toString_0 = function toString_101(){ + return 'NodeInfo [connectedEdges=' + this.connectedEdges + ', hierarchicalInfluence=' + this.hierarchicalInfluence + ', randomInfluence=' + this.randomInfluence + ']'; +} +; +_.connectedEdges = 0; +_.hierarchicalInfluence = 0; +_.randomInfluence = 0; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/NodeInfo', 659); +function LayerSweepTypeDecider$lambda$0$Type(){ +} + +defineClass(1800, 1, $intern_89, LayerSweepTypeDecider$lambda$0$Type); +_.apply_1 = function apply_137(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); +} +; +_.equals_0 = function equals_149(other){ + return this === other; +} +; +_.test_0 = function test_86(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$0$Type', 1800); +function LayerSweepTypeDecider$lambda$1$Type(){ +} + +defineClass(1801, 1, $intern_89, LayerSweepTypeDecider$lambda$1$Type); +_.apply_1 = function apply_138(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); +} +; +_.equals_0 = function equals_150(other){ + return this === other; +} +; +_.test_0 = function test_87(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$1$Type', 1801); +function LayerTotalPortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(1833, 402, $intern_114, LayerTotalPortDistributor); +_.calculatePortRanks = function calculatePortRanks(node, rankSum, type_0){ + var inputCount, northInputCount, northPos, port, port$iterator, port$iterator0, portRanks, pos, restPos; + portRanks = this.portRanks; + switch (type_0.ordinal) { + case 1: + { + inputCount = 0; + northInputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + if (port.incomingEdges.array.length != 0) { + ++inputCount; + port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; + } + } + northPos = rankSum + northInputCount; + restPos = rankSum + inputCount; + for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + portRanks[port.id_0] = northPos; + --northPos; + } + else { + portRanks[port.id_0] = restPos; + --restPos; + } + } + return inputCount; + } + + case 2: + { + pos = 0; + for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + ++pos; + portRanks[port.id_0] = rankSum + pos; + } + return pos; + } + + default:throw toJs(new IllegalArgumentException); + } +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerTotalPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerTotalPortDistributor', 1833); +function $compareBasedOnBarycenter(this$static, n1, n2){ + var s1, s2, value_0; + s1 = this$static.barycenterState[n1.layer.id_0][n1.id_0]; + s2 = this$static.barycenterState[n2.layer.id_0][n2.id_0]; + if (s1.barycenter != null && s2.barycenter != null) { + value_0 = $compareTo_4(s1.barycenter, s2.barycenter); + value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1, n2):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); + return value_0; + } + else if (s1.barycenter != null) { + $updateBiggerAndSmallerAssociations_0(this$static, n1, n2); + return -1; + } + else if (s2.barycenter != null) { + $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); + return 1; + } + return 0; +} + +function $compareBasedOnTansitiveDependencies(this$static, n1, n2){ + if ($containsKey_3(this$static.biggerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, n2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n2), 53), n1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, n2, new HashSet); + } + return 0; +} + +function $lambda$0_8(this$static, n1_0, n2_1){ + var transitiveComparison, value_0; + transitiveComparison = $compareBasedOnTansitiveDependencies(this$static, n1_0, n2_1); + if (transitiveComparison != 0) { + return transitiveComparison; + } + if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(n2_1, MODEL_ORDER_0)) { + value_0 = compare_5(castTo($getProperty(n1_0, MODEL_ORDER_0), 19).value_0, castTo($getProperty(n2_1, MODEL_ORDER_0), 19).value_0); + value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1_0, n2_1):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2_1, n1_0); + return value_0; + } + return $compareBasedOnBarycenter(this$static, n1_0, n2_1); +} + +function $updateBiggerAndSmallerAssociations_0(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); + biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); + smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); + for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 10); + biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); + } + for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 10); + smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); + } +} + +function ModelOrderBarycenterHeuristic(constraintResolver, random, portDistributor){ + BarycenterHeuristic.call(this, constraintResolver, random, portDistributor); + this.biggerThan = new HashMap; + this.smallerThan = new HashMap; + this.barycenterStateComparator = new ModelOrderBarycenterHeuristic$lambda$0$Type(this); +} + +function insertionSort_0(layer, comparator, barycenterHeuristic){ + var i, j, temp; + for (i = 1; i < layer.array.length; i++) { + temp = (checkCriticalElementIndex(i, layer.array.length) , castTo(layer.array[i], 10)); + j = i; + while (j > 0 && comparator.compare_1((checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10)), temp) > 0) { + $set_1(layer, j, (checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10))); + --j; + } + checkCriticalElementIndex(j, layer.array.length); + layer.array[j] = temp; + } + barycenterHeuristic.biggerThan = new HashMap; + barycenterHeuristic.smallerThan = new HashMap; +} + +defineClass(660, 817, {660:1, 225:1}, ModelOrderBarycenterHeuristic); +_.minimizeCrossings_0 = function minimizeCrossings_2(layer, preOrdered, randomize, forward_0){ + if (randomize) { + $randomizeBarycenters(this, layer); + } + else { + $calculateBarycenters(this, layer, forward_0); + $fillInUnknownBarycenters(this, layer, preOrdered); + } + if (layer.array.length > 1) { + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, this):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || $processConstraints(this.constraintResolver, layer); + } +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic', 660); +function ModelOrderBarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1803, 1, $intern_88, ModelOrderBarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_68(arg0, arg1){ + return $lambda$0_8(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_151(other){ + return this === other; +} +; +_.reversed = function reversed_60(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic/lambda$0$Type', 1803); +function $clinit_NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_5 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); +} + +function $process_69(progressMonitor){ + $begin(progressMonitor, 'No crossing minimization', 1); + $done_0(progressMonitor); +} + +function NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer(); +} + +defineClass(1403, 1, $intern_113, NoCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_11(graph){ + var configuration; + return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_5) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_66(graph, progressMonitor){ + $process_69((castTo(graph, 37) , progressMonitor)); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_5; +var Lorg_eclipse_elk_alg_layered_p3order_NoCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NoCrossingMinimizer', 1403); +function NodeRelativePortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(796, 402, $intern_114, NodeRelativePortDistributor); +_.calculatePortRanks = function calculatePortRanks_0(node, rankSum, type_0){ + var incr, inputCount, northInputCount, northPos, outputCount, port, port$iterator, port$iterator0, portRanks, pos, restPos; + portRanks = this.portRanks; + switch (type_0.ordinal) { + case 1: + { + inputCount = 0; + northInputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + if (port.incomingEdges.array.length != 0) { + ++inputCount; + port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; + } + } + incr = 1 / (inputCount + 1); + northPos = rankSum + northInputCount * incr; + restPos = rankSum + 1 - incr; + for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + portRanks[port.id_0] = northPos; + northPos -= incr; + } + else { + portRanks[port.id_0] = restPos; + restPos -= incr; + } + } + break; + } + + case 2: + { + outputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + port.outgoingEdges.array.length == 0 || ++outputCount; + } + incr = 1 / (outputCount + 1); + pos = rankSum + incr; + for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + portRanks[port.id_0] = pos; + pos += incr; + } + break; + } + + default:throw toJs(new IllegalArgumentException_0('Port type is undefined')); + } + return 1; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_NodeRelativePortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NodeRelativePortDistributor', 796); +function $assertCorrectPortSides(dummy){ + var anchorY, dummyPort, dummyPorts, origin_0, port, port$iterator, portHeight; + origin_0 = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + dummyPorts = dummy.ports; + dummyPort = (checkCriticalElementIndex(0, dummyPorts.array.length) , castTo(dummyPorts.array[0], 11)); + for (port$iterator = new ArrayList$1(origin_0.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (maskUndefined(port) === maskUndefined($getProperty(dummyPort, ORIGIN_0))) { + if (port.side == ($clinit_PortSide() , NORTH_3) && dummy.id_0 > origin_0.id_0) { + $setSide(port, SOUTH_2); + if (port.explicitlySuppliedPortAnchor) { + portHeight = port.size_0.y_0; + anchorY = port.anchor.y_0; + port.anchor.y_0 = portHeight - anchorY; + } + } + else if (port.side == SOUTH_2 && origin_0.id_0 > dummy.id_0) { + $setSide(port, NORTH_3); + if (port.explicitlySuppliedPortAnchor) { + portHeight = port.size_0.y_0; + anchorY = port.anchor.y_0; + port.anchor.y_0 = -(portHeight - anchorY); + } + } + break; + } + } + return origin_0; +} + +function $deepCopy(currentlyBestNodeOrder){ + var i, result; + if (currentlyBestNodeOrder == null) { + return null; + } + result = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, currentlyBestNodeOrder.length, 0, 2); + for (i = 0; i < result.length; i++) { + result[i] = castTo(copyOf_0(currentlyBestNodeOrder[i], currentlyBestNodeOrder[i].length), 193); + } + return result; +} + +function $transferNodeAndPortOrdersToGraph_0(this$static, lGraph){ + var dummy, dummy$iterator, i, j, layers, node, node$iterator, nodes, northSouthPortDummies, origin_0, updatePortOrder; + northSouthPortDummies = new ArrayList; + updatePortOrder = new HashSet; + layers = lGraph.layers; + for (i = 0; i < layers.array.length; i++) { + nodes = (checkCriticalElementIndex(i, layers.array.length) , castTo(layers.array[i], 29)).nodes; + northSouthPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (j = 0; j < nodes.array.length; j++) { + node = this$static.nodeOrder[i][j]; + node.id_0 = j; + node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && (northSouthPortDummies.array[northSouthPortDummies.array.length] = node , true); + $set_1(castTo($get_11(lGraph.layers, i), 29).nodes, j, node); + node.ports.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(node.ports, castTo(castTo($get_11(this$static.portOrders, i), 15).get_0(j), 14)); + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_ORDER)); + } + for (dummy$iterator = new ArrayList$1(northSouthPortDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + origin_0 = $assertCorrectPortSides(dummy); + updatePortOrder.map_0.put(origin_0, updatePortOrder); + updatePortOrder.map_0.put(dummy, updatePortOrder); + } + } + for (node$iterator = updatePortOrder.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + $clinit_Collections(); + $sort(node.ports, ($clinit_PortListSorter() , CMP_COMBINED)); + node.portSidesCached = true; + $findPortIndices(node); + } +} + +function SweepCopy(sc){ + this.nodeOrder = $deepCopy(sc.nodeOrder); + this.portOrders = new ArrayList_1(sc.portOrders); +} + +function SweepCopy_0(nodeOrderIn){ + var lNodes, lNodes$array, lNodes$index, lNodes$max, layer, node, node$array, node$index, node$max; + this.nodeOrder = $deepCopy(nodeOrderIn); + this.portOrders = new ArrayList; + for (lNodes$array = nodeOrderIn , lNodes$index = 0 , lNodes$max = lNodes$array.length; lNodes$index < lNodes$max; ++lNodes$index) { + lNodes = lNodes$array[lNodes$index]; + layer = new ArrayList; + $add_3(this.portOrders, layer); + for (node$array = lNodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $add_3(layer, new ArrayList_1(node.ports)); + } + } +} + +defineClass(807, 1, {}, SweepCopy, SweepCopy_0); +var Lorg_eclipse_elk_alg_layered_p3order_SweepCopy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'SweepCopy', 807); +function $countAllCrossings(this$static, currentOrder){ + var crossings, layerIndex; + if (currentOrder.length == 0) { + return 0; + } + crossings = $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[0], ($clinit_PortSide() , WEST_2)); + crossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[currentOrder.length - 1], EAST_2); + for (layerIndex = 0; layerIndex < currentOrder.length; layerIndex++) { + crossings += $countCrossingsAt(this$static, layerIndex, currentOrder); + } + return crossings; +} + +function $countCrossingsAt(this$static, layerIndex, currentOrder){ + var leftLayer, rightLayer, totalCrossings; + totalCrossings = 0; + leftLayer = currentOrder[layerIndex]; + if (layerIndex < currentOrder.length - 1) { + rightLayer = currentOrder[layerIndex + 1]; + if (this$static.hasHyperEdgesEastOfIndex[layerIndex]) { + totalCrossings = $countCrossings_1(this$static.hyperedgeCrossingsCounter, leftLayer, rightLayer); + totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, leftLayer, ($clinit_PortSide() , EAST_2)); + totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, rightLayer, WEST_2); + } + else { + totalCrossings = $countCrossingsBetweenLayers(this$static.crossingCounter, leftLayer, rightLayer); + } + } + this$static.hasNorthSouthPorts[layerIndex] && (totalCrossings += $countNorthSouthPortCrossingsInLayer(this$static.crossingCounter, leftLayer)); + return totalCrossings; +} + +function AllCrossingsCounter(graph){ + this.inLayerEdgeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.length, 15, 1); + this.hasNorthSouthPorts = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); + this.hasHyperEdgesEastOfIndex = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); + this.nPorts = 0; +} + +defineClass(1798, 1, $intern_111, AllCrossingsCounter); +_.initAtLayerLevel = function initAtLayerLevel_6(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_6(){ + var portPos; + portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); + this.hyperedgeCrossingsCounter = new HyperedgeCrossingsCounter(portPos); + this.crossingCounter = new CrossingsCounter(portPos); +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_6(l, n, p, e, edge, nodeOrder){ + var port; + port = castTo($get_11(nodeOrder[l][n].ports, p), 11); + edge.source == port && edge.source.owner.layer == edge.target.owner.layer && ++this.inLayerEdgeCounts[l]; +} +; +_.initAtNodeLevel = function initAtNodeLevel_6(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + this.hasNorthSouthPorts[l] = this.hasNorthSouthPorts[l] | node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT); +} +; +_.initAtPortLevel = function initAtPortLevel_6(l, n, p, nodeOrder){ + var port; + port = castTo($get_11(nodeOrder[l][n].ports, p), 11); + port.id_0 = this.nPorts++; + port.outgoingEdges.array.length + port.incomingEdges.array.length > 1 && (port.side == ($clinit_PortSide() , EAST_2)?(this.hasHyperEdgesEastOfIndex[l] = true):port.side == WEST_2 && l > 0 && (this.hasHyperEdgesEastOfIndex[l - 1] = true)); +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_AllCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'AllCrossingsCounter', 1798); +function $add_16(this$static, index_0){ + var i; + ++this$static.size_0; + ++this$static.numsPerIndex[index_0]; + i = index_0 + 1; + while (i < this$static.binarySums.length) { + ++this$static.binarySums[i]; + i += i & -i; + } +} + +function $clear_9(this$static){ + this$static.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum + 1, 15, 1); + this$static.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum, 15, 1); + this$static.size_0 = 0; +} + +function $rank(this$static, index_0){ + var i, sum; + i = index_0; + sum = 0; + while (i > 0) { + sum += this$static.binarySums[i]; + i -= i & -i; + } + return sum; +} + +function $removeAll_3(this$static, index_0){ + var i, numEntries; + numEntries = this$static.numsPerIndex[index_0]; + if (numEntries == 0) { + return; + } + this$static.numsPerIndex[index_0] = 0; + this$static.size_0 -= numEntries; + i = index_0 + 1; + while (i < this$static.binarySums.length) { + this$static.binarySums[i] -= numEntries; + i += i & -i; + } +} + +function BinaryIndexedTree(maxNum){ + this.maxNum = maxNum; + this.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum + 1, 15, 1); + this.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum, 15, 1); + this.size_0 = 0; +} + +defineClass(587, 1, {}, BinaryIndexedTree); +_.maxNum = 0; +_.size_0 = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_BinaryIndexedTree_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'BinaryIndexedTree', 587); +function inNorthSouthEastWestOrder(node, side){ + switch (side.ordinal) { + case 2: + case 1: + return $getPortSideView(node, side); + case 3: + case 4: + return reverse_0($getPortSideView(node, side)); + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $clinit_CrossingsCounter(){ + $clinit_CrossingsCounter = emptyMethod; + INDEXING_SIDE = ($clinit_PortSide() , WEST_2); + STACK_SIDE = EAST_2; +} + +function $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side){ + var edge, edge$iterator, node, node$array, node$index, node$max, port, port$iterator, ports; + ports = new TreeSet_0(new CrossingsCounter$lambda$2$Type(this$static)); + for (node$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [upperNode, lowerNode]) , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + for (port$iterator = inNorthSouthEastWestOrder(node, side).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if (!$isSelfLoop(edge)) { + $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; + $isInLayer(edge) && $add_10(ports, port == edge.source?edge.target:edge.source); + } + } + } + } + return checkNotNull(ports) , new ArrayList_1(ports); +} + +function $connectedPortsSortedByPosition(this$static, upperPort, lowerPort){ + var edge, edge$iterator, port, port$array, port$index, port$max, ports; + ports = new TreeSet_0(new CrossingsCounter$lambda$3$Type(this$static)); + for (port$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, 1), $intern_108, 11, 0, [upperPort, lowerPort]) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + edge.source == edge.target || $add_10(ports, port == edge.source?edge.target:edge.source); + } + } + return checkNotNull(ports) , new ArrayList_1(ports); +} + +function $countCrossingsBetweenLayers(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return $countCrossingsOnPorts(this$static, ports); +} + +function $countCrossingsBetweenPortsInBothOrders(this$static, upperPort, lowerPort){ + var lowerUpperCrossings, ports, upperLowerCrossings; + ports = $connectedPortsSortedByPosition(this$static, upperPort, lowerPort); + upperLowerCrossings = $countCrossingsOnPorts(this$static, ports); + $clear_9(this$static.indexTree); + $switchPorts(this$static, upperPort, lowerPort); + $clinit_Collections(); + $sort(ports, new CrossingsCounter$lambda$0$Type(this$static)); + lowerUpperCrossings = $countCrossingsOnPorts(this$static, ports); + $clear_9(this$static.indexTree); + $switchPorts(this$static, lowerPort, upperPort); + return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); +} + +function $countCrossingsOnPorts(this$static, ports){ + var crossings, edge, edge$iterator, endPosition, port, port$iterator; + crossings = 0; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition); + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); + } + } + return crossings; +} + +function $countInLayerCrossingsBetweenNodesInBothOrders(this$static, upperNode, lowerNode, side){ + var lowerUpperCrossings, ports, upperLowerCrossings; + ports = $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side); + upperLowerCrossings = $countInLayerCrossingsOnPorts(this$static, ports); + $switchNodes(this$static, upperNode, lowerNode, side); + $clear_9(this$static.indexTree); + $clinit_Collections(); + $sort(ports, new CrossingsCounter$lambda$1$Type(this$static)); + lowerUpperCrossings = $countInLayerCrossingsOnPorts(this$static, ports); + $switchNodes(this$static, lowerNode, upperNode, side); + $clear_9(this$static.indexTree); + return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); +} + +function $countInLayerCrossingsOnPorts(this$static, ports){ + var crossings, edge, edge$iterator, endPosition, numBetweenLayerEdges, port, port$iterator; + crossings = 0; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + numBetweenLayerEdges = 0; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if ($isInLayer(edge)) { + endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition); + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + else { + ++numBetweenLayerEdges; + } + } + crossings += this$static.indexTree.size_0 * numBetweenLayerEdges; + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); + } + } + return crossings; +} + +function $countInLayerCrossingsOnSide(this$static, nodes, side){ + var ports; + ports = $initPortPositionsForInLayerCrossings(this$static, nodes, side); + return $countInLayerCrossingsOnPorts(this$static, ports); +} + +function $countNorthSouthCrossingsOnPorts(this$static, ports){ + var crossings, dummy, dummyPort, endPosition, port, port$iterator, targetAndDegree, targetAndDegree$iterator, targetsAndDegrees; + crossings = 0; + targetsAndDegrees = new ArrayList; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + targetsAndDegrees.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + switch (port.owner.type_0.ordinal) { + case 0: + dummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + $forEach_1(dummy.ports, new CrossingsCounter$lambda$4$Type(targetsAndDegrees)); + break; + case 1: + $ifPresent($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.owner.ports, 16)), new CrossingsCounter$lambda$5$Type(port))), new CrossingsCounter$lambda$6$Type(targetsAndDegrees)); + break; + case 3: + dummyPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + $add_3(targetsAndDegrees, new Pair(dummyPort, valueOf_4(port.incomingEdges.array.length + port.outgoingEdges.array.length))); + } + for (targetAndDegree$iterator = new ArrayList$1(targetsAndDegrees); targetAndDegree$iterator.i < targetAndDegree$iterator.this$01.array.length;) { + targetAndDegree = castTo($next_7(targetAndDegree$iterator), 46); + endPosition = $positionOf_0(this$static, castTo(targetAndDegree.first, 11)); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition) * castTo(targetAndDegree.second, 19).value_0; + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); + } + } + return crossings; +} + +function $countNorthSouthPortCrossingsInLayer(this$static, layer){ + var ports; + ports = $initPositionsForNorthSouthCounting(this$static, layer); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return $countNorthSouthCrossingsOnPorts(this$static, ports); +} + +function $emptyStack(this$static, stack_0, ports, side, startIndex){ + var dummy, index_0, p; + index_0 = startIndex; + while (stack_0.head != stack_0.tail) { + dummy = castTo($removeFirst(stack_0), 10); + p = castTo($getPortSideView(dummy, side).get_0(0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + return index_0; +} + +function $initForCountingBetween(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); +} + +function $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = new ArrayList; + $initPositions(this$static, leftLayerNodes, ports, ($clinit_PortSide() , EAST_2), true, false); + $initPositions(this$static, rightLayerNodes, ports, WEST_2, false, false); + return ports; +} + +function $initPortPositionsForInLayerCrossings(this$static, nodes, side){ + var ports; + ports = new ArrayList; + $initPositions(this$static, nodes, ports, side, true, true); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return ports; +} + +function $initPositions(this$static, nodes, ports, side, topDown, getCardinalities){ + var i, node, nodePorts, numPorts, port, port$iterator; + numPorts = ports.array.length; + getCardinalities && (this$static.nodeCardinalities = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.length, 15, 1)); + for (i = topDown?0:nodes.length - 1; topDown?i < nodes.length:i >= 0; i += topDown?1:-1) { + node = nodes[i]; + nodePorts = side == ($clinit_PortSide() , EAST_2)?topDown?$getPortSideView(node, side):reverse_0($getPortSideView(node, side)):topDown?reverse_0($getPortSideView(node, side)):$getPortSideView(node, side); + getCardinalities && (this$static.nodeCardinalities[node.id_0] = nodePorts.size_1()); + for (port$iterator = nodePorts.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + this$static.portPositions[port.id_0] = numPorts++; + } + $addAll_2(ports, nodePorts); + } +} + +function $initPositionsForNorthSouthCounting(this$static, nodes){ + var current, i, index_0, lastLayoutUnit, p, p$iterator, p$iterator0, p$iterator1, ports, stack_0; + ports = new ArrayList; + stack_0 = new ArrayDeque; + lastLayoutUnit = null; + index_0 = 0; + for (i = 0; i < nodes.length; ++i) { + current = nodes[i]; + $isLayoutUnitChanged(lastLayoutUnit, current) && (index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0)); + $hasProperty(current, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)) && (lastLayoutUnit = castTo($getProperty(current, IN_LAYER_LAYOUT_UNIT), 10)); + switch (current.type_0.ordinal) { + case 0: + for (p$iterator0 = $iterator_0(filter_0($getPortSideView(current, ($clinit_PortSide() , NORTH_3)), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator0);) { + p = castTo($next(p$iterator0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); + for (p$iterator1 = $iterator_0(filter_0($getPortSideView(current, SOUTH_2), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator1);) { + p = castTo($next(p$iterator1), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + break; + case 3: + if (!$getPortSideView(current, INDEXING_SIDE).isEmpty()) { + p = castTo($getPortSideView(current, INDEXING_SIDE).get_0(0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + $getPortSideView(current, STACK_SIDE).isEmpty() || $addFirst(stack_0, current); + break; + case 1: + for (p$iterator = $getPortSideView(current, ($clinit_PortSide() , WEST_2)).iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + $getPortSideView(current, EAST_2).forEach_0(new CrossingsCounter$lambda$7$Type(stack_0, current)); + } + } + $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); + return ports; +} + +function $isInLayer(edge){ + var sourceLayer, targetLayer; + sourceLayer = edge.source.owner.layer; + targetLayer = edge.target.owner.layer; + return sourceLayer == targetLayer; +} + +function $isLayoutUnitChanged(lastUnit, node){ + var unit; + if (!lastUnit || lastUnit == node || !$hasProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT))) { + return false; + } + unit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + return unit != lastUnit; +} + +function $lambda$0_9(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$1_3(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$2_2(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$3_1(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $positionOf_0(this$static, port){ + return this$static.portPositions[port.id_0]; +} + +function $switchNodes(this$static, wasUpperNode, wasLowerNode, side){ + var port, port$iterator, port$iterator0, ports; + ports = inNorthSouthEastWestOrder(wasUpperNode, side); + for (port$iterator0 = ports.iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 11); + this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] + this$static.nodeCardinalities[wasLowerNode.id_0]; + } + ports = inNorthSouthEastWestOrder(wasLowerNode, side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] - this$static.nodeCardinalities[wasUpperNode.id_0]; + } +} + +function $switchPorts(this$static, topPort, bottomPort){ + var topPortPos; + topPortPos = this$static.portPositions[topPort.id_0]; + this$static.portPositions[topPort.id_0] = this$static.portPositions[bottomPort.id_0]; + this$static.portPositions[bottomPort.id_0] = topPortPos; +} + +function CrossingsCounter(portPositions){ + $clinit_CrossingsCounter(); + this.portPositions = portPositions; + this.ends = new ArrayDeque; +} + +function lambda$4_7(targetsAndDegrees_0, p_1){ + $clinit_CrossingsCounter(); + return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +function lambda$5_4(port_0, p_1){ + $clinit_CrossingsCounter(); + return p_1 != port_0; +} + +function lambda$6_1(targetsAndDegrees_0, p_1){ + $clinit_CrossingsCounter(); + return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +defineClass(524, 1, {}, CrossingsCounter); +var INDEXING_SIDE, STACK_SIDE; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter', 524); +function CrossingsCounter$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1906, 1, $intern_88, CrossingsCounter$lambda$0$Type); +_.compare_1 = function compare_69(arg0, arg1){ + return $lambda$0_9(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_152(other){ + return this === other; +} +; +_.reversed = function reversed_61(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$0$Type', 1906); +function CrossingsCounter$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1907, 1, $intern_88, CrossingsCounter$lambda$1$Type); +_.compare_1 = function compare_70(arg0, arg1){ + return $lambda$1_3(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_153(other){ + return this === other; +} +; +_.reversed = function reversed_62(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$1$Type', 1907); +function CrossingsCounter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1908, 1, $intern_88, CrossingsCounter$lambda$2$Type); +_.compare_1 = function compare_71(arg0, arg1){ + return $lambda$2_2(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_154(other){ + return this === other; +} +; +_.reversed = function reversed_63(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$2$Type', 1908); +function CrossingsCounter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1909, 1, $intern_88, CrossingsCounter$lambda$3$Type); +_.compare_1 = function compare_72(arg0, arg1){ + return $lambda$3_1(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_155(other){ + return this === other; +} +; +_.reversed = function reversed_64(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$3$Type', 1909); +function CrossingsCounter$lambda$4$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1910, 1, $intern_19, CrossingsCounter$lambda$4$Type); +_.accept = function accept_118(arg0){ + lambda$4_7(this.targetsAndDegrees_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$4$Type', 1910); +function CrossingsCounter$lambda$5$Type(port_0){ + this.port_0 = port_0; +} + +defineClass(1911, 1, $intern_39, CrossingsCounter$lambda$5$Type); +_.test_0 = function test_88(arg0){ + return lambda$5_4(this.port_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$5$Type', 1911); +function $accept_4(this$static, arg0){ + lambda$6_1(this$static.targetsAndDegrees_0, castTo(arg0, 11)); +} + +function CrossingsCounter$lambda$6$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1912, 1, $intern_19, CrossingsCounter$lambda$6$Type); +_.accept = function accept_119(arg0){ + $accept_4(this, arg0); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$6$Type', 1912); +function CrossingsCounter$lambda$7$Type(stack_0, current_1){ + this.stack_0 = stack_0; + this.current_1 = current_1; +} + +defineClass(1913, 1, $intern_19, CrossingsCounter$lambda$7$Type); +_.accept = function accept_120(arg0){ + var lastArg; + $clinit_CrossingsCounter(); + $addFirst(this.stack_0, (lastArg = this.current_1 , castTo(arg0, 11) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$7$Type', 1913); +function CrossingsCounter$lambda$8$Type(){ +} + +defineClass(826, 1, $intern_89, CrossingsCounter$lambda$8$Type); +_.apply_1 = function apply_139(arg0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(arg0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +_.equals_0 = function equals_156(other){ + return this === other; +} +; +_.test_0 = function test_89(input_0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(input_0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$8$Type', 826); +function $countCrossings_1(this$static, leftLayer, rightLayer){ + var compressDeltas, crossings, delta, edge, edge$iterator, firstIndex, he, he$array, he$index, he$max, hyperedge, hyperedgeSet, hyperedges, i, i0, i1, i2, i3, i4, i5, index_0, k, leftCorners, leftLayerRef, node, node$array, node$array0, node$array1, node$index, node$index0, node$index1, node$max, node$max0, node$max1, northInputPorts, openHyperedges, otherInputPorts, p, p$iterator, port, port$iterator, port2HyperedgeMap, portEdges, portIter, pos, q, rightCorners, rightLayerRef, sourceCount, sourceHE, sourcePort, sourcePort$iterator, southSequence, targetCount, targetHE, targetPort, tree, treeSize; + sourceCount = 0; + for (node$array0 = leftLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { + node = node$array0[node$index0]; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node.layer != edge.target.owner.layer && ++portEdges; + } + portEdges > 0 && (this$static.portPos[port.id_0] = sourceCount++); + } + } + targetCount = 0; + for (node$array1 = rightLayer , node$index1 = 0 , node$max1 = node$array1.length; node$index1 < node$max1; ++node$index1) { + node = node$array1[node$index1]; + northInputPorts = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (node.layer != edge.source.owner.layer) { + ++northInputPorts; + break; + } + } + } + else { + break; + } + } + otherInputPorts = 0; + portIter = new AbstractList$ListIteratorImpl(node.ports, node.ports.array.length); + while (portIter.i > 0) { + port = (checkCriticalElement(portIter.i > 0) , castTo(portIter.this$01.get_0(portIter.last = --portIter.i), 11)); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node.layer != edge.source.owner.layer && ++portEdges; + } + if (portEdges > 0) { + if (port.side == ($clinit_PortSide() , NORTH_3)) { + this$static.portPos[port.id_0] = targetCount; + ++targetCount; + } + else { + this$static.portPos[port.id_0] = targetCount + northInputPorts + otherInputPorts; + ++otherInputPorts; + } + } + } + targetCount += otherInputPorts; + } + port2HyperedgeMap = new HashMap; + hyperedgeSet = new LinkedHashSet; + for (node$array = leftLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { + sourcePort = castTo($next_7(sourcePort$iterator), 11); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetPort = edge.target; + if (node.layer != targetPort.owner.layer) { + sourceHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, sourcePort)), 467); + targetHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, targetPort)), 467); + if (!sourceHE && !targetHE) { + hyperedge = new HyperedgeCrossingsCounter$Hyperedge; + hyperedgeSet.map_0.put(hyperedge, hyperedgeSet); + $add_3(hyperedge.edges, edge); + $add_3(hyperedge.ports, sourcePort); + $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, hyperedge); + $add_3(hyperedge.ports, targetPort); + $put_9(port2HyperedgeMap.hashCodeMap, targetPort, hyperedge); + } + else if (!sourceHE) { + $add_3(targetHE.edges, edge); + $add_3(targetHE.ports, sourcePort); + $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, targetHE); + } + else if (!targetHE) { + $add_3(sourceHE.edges, edge); + $add_3(sourceHE.ports, targetPort); + $put_9(port2HyperedgeMap.hashCodeMap, targetPort, sourceHE); + } + else if (sourceHE == targetHE) { + $add_3(sourceHE.edges, edge); + } + else { + $add_3(sourceHE.edges, edge); + for (p$iterator = new ArrayList$1(targetHE.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + $put_9(port2HyperedgeMap.hashCodeMap, p, sourceHE); + } + $addAll_2(sourceHE.edges, targetHE.edges); + $addAll_2(sourceHE.ports, targetHE.ports); + hyperedgeSet.map_0.remove_0(targetHE) != null; + } + } + } + } + } + hyperedges = castTo($toArray_0(hyperedgeSet, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit, {3:1, 4:1, 5:1, 1946:1}, 467, hyperedgeSet.map_0.size_1(), 0, 1)), 1946); + leftLayerRef = leftLayer[0].layer; + rightLayerRef = rightLayer[0].layer; + for (he$array = hyperedges , he$index = 0 , he$max = he$array.length; he$index < he$max; ++he$index) { + he = he$array[he$index]; + he.upperLeft = sourceCount; + he.upperRight = targetCount; + for (port$iterator = new ArrayList$1(he.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + pos = this$static.portPos[port.id_0]; + if (port.owner.layer == leftLayerRef) { + pos < he.upperLeft && (he.upperLeft = pos); + pos > he.lowerLeft && (he.lowerLeft = pos); + } + else if (port.owner.layer == rightLayerRef) { + pos < he.upperRight && (he.upperRight = pos); + pos > he.lowerRight && (he.lowerRight = pos); + } + } + } + mergeSort(hyperedges, 0, hyperedges.length, null); + southSequence = initUnidimensionalArray(I_classLit, $intern_48, 25, hyperedges.length, 15, 1); + compressDeltas = initUnidimensionalArray(I_classLit, $intern_48, 25, targetCount + 1, 15, 1); + for (i0 = 0; i0 < hyperedges.length; i0++) { + southSequence[i0] = hyperedges[i0].upperRight; + compressDeltas[southSequence[i0]] = 1; + } + delta = 0; + for (i1 = 0; i1 < compressDeltas.length; i1++) { + compressDeltas[i1] == 1?(compressDeltas[i1] = delta):--delta; + } + q = 0; + for (i2 = 0; i2 < southSequence.length; i2++) { + southSequence[i2] += compressDeltas[southSequence[i2]]; + q = $wnd.Math.max(q, southSequence[i2] + 1); + } + firstIndex = 1; + while (firstIndex < q) { + firstIndex *= 2; + } + treeSize = 2 * firstIndex - 1; + firstIndex -= 1; + tree = initUnidimensionalArray(I_classLit, $intern_48, 25, treeSize, 15, 1); + crossings = 0; + for (k = 0; k < southSequence.length; k++) { + index_0 = southSequence[k] + firstIndex; + ++tree[index_0]; + while (index_0 > 0) { + index_0 % 2 > 0 && (crossings += tree[index_0 + 1]); + index_0 = (index_0 - 1) / 2 | 0; + ++tree[index_0]; + } + } + leftCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); + for (i3 = 0; i3 < hyperedges.length; i3++) { + leftCorners[2 * i3] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].upperLeft, hyperedges[i3].lowerLeft, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); + leftCorners[2 * i3 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].lowerLeft, hyperedges[i3].upperLeft, LOWER); + } + mergeSort(leftCorners, 0, leftCorners.length, null); + openHyperedges = 0; + for (i4 = 0; i4 < leftCorners.length; i4++) { + switch (leftCorners[i4].type_0.ordinal) { + case 0: + ++openHyperedges; + break; + case 1: + --openHyperedges; + crossings += openHyperedges; + } + } + rightCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); + for (i5 = 0; i5 < hyperedges.length; i5++) { + rightCorners[2 * i5] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].upperRight, hyperedges[i5].lowerRight, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); + rightCorners[2 * i5 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].lowerRight, hyperedges[i5].upperRight, LOWER); + } + mergeSort(rightCorners, 0, rightCorners.length, null); + openHyperedges = 0; + for (i = 0; i < rightCorners.length; i++) { + switch (rightCorners[i].type_0.ordinal) { + case 0: + ++openHyperedges; + break; + case 1: + --openHyperedges; + crossings += openHyperedges; + } + } + return crossings; +} + +function HyperedgeCrossingsCounter(portPos){ + this.portPos = portPos; +} + +defineClass(1905, 1, {}, HyperedgeCrossingsCounter); +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter', 1905); +function $compareTo_14(this$static, other){ + if (this$static.upperLeft < other.upperLeft) { + return -1; + } + else if (this$static.upperLeft > other.upperLeft) { + return 1; + } + else if (this$static.upperRight < other.upperRight) { + return -1; + } + else if (this$static.upperRight > other.upperRight) { + return 1; + } + return hashCode__I__devirtual$(this$static) - hashCode__I__devirtual$(other); +} + +function HyperedgeCrossingsCounter$Hyperedge(){ + this.edges = new ArrayList; + this.ports = new ArrayList; +} + +defineClass(467, 1, {35:1, 467:1}, HyperedgeCrossingsCounter$Hyperedge); +_.compareTo_0 = function compareTo_15(other){ + return $compareTo_14(this, castTo(other, 467)); +} +; +_.lowerLeft = 0; +_.lowerRight = 0; +_.upperLeft = 0; +_.upperRight = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/Hyperedge', 467); +function $compareTo_15(this$static, other){ + if (this$static.position < other.position) { + return -1; + } + else if (this$static.position > other.position) { + return 1; + } + else if (this$static.oppositePosition < other.oppositePosition) { + return -1; + } + else if (this$static.oppositePosition > other.oppositePosition) { + return 1; + } + else if (this$static.hyperedge != other.hyperedge) { + return hashCode__I__devirtual$(this$static.hyperedge) - hashCode__I__devirtual$(other.hyperedge); + } + else if (this$static.type_0 == ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER) && other.type_0 == LOWER) { + return -1; + } + else if (this$static.type_0 == LOWER && other.type_0 == UPPER) { + return 1; + } + return 0; +} + +function HyperedgeCrossingsCounter$HyperedgeCorner(hyperedge, position, oppositePosition, type_0){ + this.hyperedge = hyperedge; + this.position = position; + this.oppositePosition = oppositePosition; + this.type_0 = type_0; +} + +defineClass(362, 1, {35:1, 362:1}, HyperedgeCrossingsCounter$HyperedgeCorner); +_.compareTo_0 = function compareTo_16(other){ + return $compareTo_15(this, castTo(other, 362)); +} +; +_.oppositePosition = 0; +_.position = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner', 362); +function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type = emptyMethod; + UPPER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('UPPER', 0); + LOWER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('LOWER', 1); +} + +function HyperedgeCrossingsCounter$HyperedgeCorner$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_68(name_0){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); + return valueOf(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map() , $MAP_56), name_0); +} + +function values_74(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]); +} + +defineClass(523, 22, {3:1, 35:1, 22:1, 523:1}, HyperedgeCrossingsCounter$HyperedgeCorner$Type); +var LOWER, UPPER; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner/Type', 523, Ljava_lang_Enum_2_classLit, values_74, valueOf_68); +function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map = emptyMethod; + $MAP_56 = createValueOfMap(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]))); +} + +var $MAP_56; +function $clinit_InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $placeNodes(this$static, layer){ + var minValidY, node, node$iterator, nodeType, originalYCoordinate, prevNodeType, spacing; + minValidY = $intern_60; + prevNodeType = ($clinit_LNode$NodeType() , NORMAL); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeType = node.type_0; + if (nodeType != NORMAL) { + originalYCoordinate = castToDouble($getProperty(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION))); + if (originalYCoordinate == null) { + minValidY = $wnd.Math.max(minValidY, 0); + node.pos.y_0 = minValidY + $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); + } + else { + node.pos.y_0 = (checkCriticalNotNull(originalYCoordinate) , originalYCoordinate); + } + } + spacing = $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); + node.pos.y_0 < minValidY + spacing + node.margin.top_0 && (node.pos.y_0 = minValidY + spacing + node.margin.top_0); + minValidY = node.pos.y_0 + node.size_0.y_0 + node.margin.bottom; + prevNodeType = nodeType; + } +} + +function $process_70(this$static, layeredGraph, monitor){ + var layer, layer$iterator; + $begin(monitor, 'Interactive node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $placeNodes(this$static, layer); + } + $done_0(monitor); +} + +function InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer(); +} + +defineClass(1405, 1, $intern_113, InteractiveNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_12(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS:null; +} +; +_.process = function process_67(layeredGraph, monitor){ + $process_70(this, castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p4nodes_InteractiveNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'InteractiveNodePlacer', 1405); +function $clinit_LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_0 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); + INPUT_PRIO = new Property_0('linearSegments.inputPrio', valueOf_4(0)); + OUTPUT_PRIO = new Property_0('linearSegments.outputPrio', valueOf_4(0)); +} + +function $balancePlacement(this$static, layeredGraph){ + var deflection, deflectionDampening, finalIters, incoming, lastTotalDeflection, merged, mode, node, node$iterator, outgoing, pendulumIters, ready, segment, segment$array, segment$array0, segment$index, segment$index0, segment$max, segment$max0, thoroughness, threshold, totalDeflection; + deflectionDampening = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)))); + thoroughness = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0; + pendulumIters = 4; + finalIters = 3; + threshold = 20 / thoroughness; + ready = false; + mode = 0; + lastTotalDeflection = $intern_0; + do { + incoming = mode != 1; + outgoing = mode != 0; + totalDeflection = 0; + for (segment$array0 = this$static.linearSegments , segment$index0 = 0 , segment$max0 = segment$array0.length; segment$index0 < segment$max0; ++segment$index0) { + segment = segment$array0[segment$index0]; + segment.refSegment = null; + $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening); + totalDeflection += $wnd.Math.abs(segment.deflection); + } + do { + merged = $mergeRegions(this$static, layeredGraph); + } + while (merged); + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + deflection = $region(segment).deflection; + if (deflection != 0) { + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 += deflection; + } + } + } + if (mode == 0 || mode == 1) { + --pendulumIters; + if (pendulumIters <= 0 && (totalDeflection < lastTotalDeflection || -pendulumIters > thoroughness)) { + mode = 2; + lastTotalDeflection = $intern_0; + } + else if (mode == 0) { + mode = 1; + lastTotalDeflection = totalDeflection; + } + else { + mode = 0; + lastTotalDeflection = totalDeflection; + } + } + else { + ready = totalDeflection >= lastTotalDeflection || lastTotalDeflection - totalDeflection < threshold; + lastTotalDeflection = totalDeflection; + ready && --finalIters; + } + } + while (!(ready && finalIters <= 0)); +} + +function $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening){ + var edge, edge$iterator, edgeWeightSum, inputPrio, minPrio, node, node$iterator, nodeDeflection, nodeWeightSum, otherNode, otherPort, otherPrio, outputPrio, port, port$iterator, portpos, prio, segmentDeflection; + segmentDeflection = 0; + nodeWeightSum = 0; + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeDeflection = 0; + edgeWeightSum = 0; + inputPrio = incoming?castTo($getProperty(node, INPUT_PRIO), 19).value_0:$intern_42; + outputPrio = outgoing?castTo($getProperty(node, OUTPUT_PRIO), 19).value_0:$intern_42; + minPrio = $wnd.Math.max(inputPrio, outputPrio); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + portpos = node.pos.y_0 + port.pos.y_0 + port.anchor.y_0; + if (outgoing) { + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + otherPort = edge.target; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (prio >= minPrio && prio >= otherPrio) { + nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; + ++edgeWeightSum; + } + } + } + } + if (incoming) { + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + otherPort = edge.source; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (prio >= minPrio && prio >= otherPrio) { + nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; + ++edgeWeightSum; + } + } + } + } + } + if (edgeWeightSum > 0) { + segmentDeflection += nodeDeflection / edgeWeightSum; + ++nodeWeightSum; + } + } + if (nodeWeightSum > 0) { + segment.deflection = deflectionDampening * segmentDeflection / nodeWeightSum; + segment.weight = nodeWeightSum; + } + else { + segment.deflection = 0; + segment.weight = 0; + } +} + +function $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList){ + var currentNode, currentSegment, cycleNode, cycleNodesIter, cycleSegment, indexInLayer, layer, layer$iterator, layerIndex, nextLinearSegmentID, nextNode, nextSegment, nodeIter, nodes, previousNode; + nextLinearSegmentID = segmentList.array.length; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + nodeIter = new ArrayList$1(nodes); + indexInLayer = 0; + previousNode = null; + currentNode = castTo($next_7(nodeIter), 10); + currentSegment = null; + while (currentNode) { + currentSegment = castTo($get_11(segmentList, currentNode.id_0), 257); + if (currentSegment.indexInLastLayer >= 0) { + cycleSegment = null; + cycleNodesIter = new AbstractList$ListIteratorImpl(layer.nodes, indexInLayer + 1); + while (cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) { + cycleNode = (checkCriticalElement(cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) , castTo(cycleNodesIter.this$01_0.get_0(cycleNodesIter.last = cycleNodesIter.i++), 10)); + cycleSegment = castTo($get_11(segmentList, cycleNode.id_0), 257); + if (cycleSegment.lastLayer == currentSegment.lastLayer && cycleSegment.indexInLastLayer < currentSegment.indexInLastLayer) { + break; + } + else { + cycleSegment = null; + } + } + if (cycleSegment) { + if (previousNode) { + $set_1(incomingCountList, currentNode.id_0, valueOf_4(castTo($get_11(incomingCountList, currentNode.id_0), 19).value_0 - 1)); + castTo($get_11(outgoingList, previousNode.id_0), 15).remove_1(currentSegment); + } + currentSegment = $split_3(currentSegment, currentNode, nextLinearSegmentID++); + segmentList.array[segmentList.array.length] = currentSegment; + $add_3(outgoingList, new ArrayList); + if (previousNode) { + castTo($get_11(outgoingList, previousNode.id_0), 15).add_2(currentSegment); + $add_3(incomingCountList, valueOf_4(1)); + } + else { + $add_3(incomingCountList, valueOf_4(0)); + } + } + } + nextNode = null; + if (nodeIter.i < nodeIter.this$01.array.length) { + nextNode = castTo($next_7(nodeIter), 10); + nextSegment = castTo($get_11(segmentList, nextNode.id_0), 257); + castTo($get_11(outgoingList, currentNode.id_0), 15).add_2(nextSegment); + $set_1(incomingCountList, nextNode.id_0, valueOf_4(castTo($get_11(incomingCountList, nextNode.id_0), 19).value_0 + 1)); + } + currentSegment.lastLayer = layerIndex; + currentSegment.indexInLastLayer = indexInLayer++; + previousNode = currentNode; + currentNode = nextNode; + } + ++layerIndex; + } +} + +function $createUnbalancedPlacement(this$static, layeredGraph){ + var layer, layerIndex, node, node$iterator, node$iterator0, nodeCount, recentNode, recentNodeType, segment, segment$array, segment$index, segment$max, spacing, uppermostPlace; + nodeCount = initUnidimensionalArray(I_classLit, $intern_48, 25, layeredGraph.layers.array.length, 15, 1); + recentNodeType = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, $intern_36, 267, layeredGraph.layers.array.length, 0, 1); + recentNode = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layeredGraph.layers.array.length, 0, 1); + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + uppermostPlace = 0; + for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + layerIndex = $getIndex_0(node.layer); + ++nodeCount[layerIndex]; + spacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + nodeCount[layerIndex] > 0 && !!recentNode[layerIndex] && (spacing = $getVerticalSpacing_0(this$static.spacings, recentNode[layerIndex], node)); + uppermostPlace = $wnd.Math.max(uppermostPlace, node.layer.size_0.y_0 + spacing); + } + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 = uppermostPlace + node.margin.top_0; + layer = node.layer; + layer.size_0.y_0 = uppermostPlace + node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; + recentNodeType[$indexOf_3(layer.owner.layers, layer, 0)] = node.type_0; + recentNode[$indexOf_3(layer.owner.layers, layer, 0)] = node; + } + } +} + +function $fillSegment(this$static, node, segment){ + var edgesIter, nodeType, sourcePort, sourcePort$iterator, targetNode, targetNodeType, targetPort, targetPort$iterator; + nodeType = node.type_0; + if (node.id_0 >= 0) { + return false; + } + else { + node.id_0 = segment.id_0; + $add_3(segment.nodes, node); + } + if (nodeType == ($clinit_LNode$NodeType() , LONG_EDGE) || nodeType == NORTH_SOUTH_PORT) { + for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { + sourcePort = castTo($next_7(sourcePort$iterator), 11); + for (targetPort$iterator = (edgesIter = new ArrayList$1((new LPort$2(sourcePort)).this$01.outgoingEdges) , new LPort$2$1(edgesIter)); $hasNext_3(targetPort$iterator.val$edgesIter2);) { + targetPort = castTo($next_7(targetPort$iterator.val$edgesIter2), 17).target; + targetNode = targetPort.owner; + targetNodeType = targetNode.type_0; + if (node.layer != targetNode.layer) { + if (targetNodeType == LONG_EDGE || targetNodeType == NORTH_SOUTH_PORT) { + if ($fillSegment(this$static, targetNode, segment)) { + return true; + } + } + } + } + } + } + return true; +} + +function $mergeRegions(this$static, layeredGraph){ + var changed, layer, layer$iterator, node1, node1Extent, node2, node2Extent, nodeIter, nodeSpacing, region1, region2, spacing, threshold, weightSum; + changed = false; + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + threshold = $intern_41 * nodeSpacing; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIter = new ArrayList$1(layer.nodes); + node1 = castTo($next_7(nodeIter), 10); + region1 = $region(this$static.linearSegments[node1.id_0]); + while (nodeIter.i < nodeIter.this$01.array.length) { + node2 = castTo($next_7(nodeIter), 10); + region2 = $region(this$static.linearSegments[node2.id_0]); + if (region1 != region2) { + spacing = $getVerticalSpacing_0(this$static.spacings, node1, node2); + node1Extent = node1.pos.y_0 + node1.size_0.y_0 + node1.margin.bottom + region1.deflection + spacing; + node2Extent = node2.pos.y_0 - node2.margin.top_0 + region2.deflection; + if (node1Extent > node2Extent + threshold) { + weightSum = region1.weight + region2.weight; + region2.deflection = (region2.weight * region2.deflection + region1.weight * region1.deflection) / weightSum; + region2.weight = weightSum; + region1.refSegment = region2; + changed = true; + } + } + node1 = node2; + region1 = region2; + } + } + return changed; +} + +function $postProcess(this$static){ + var d, edge, edge$iterator, firstNode, foundPlace, index_0, lastNode, minDisplacement, minRoomAbove, minRoomBelow, neighbor, node, node$iterator, node$iterator0, pos, roomAbove, roomBelow, segment, segment$array, segment$index, segment$max, source, source$iterator, spacing, target, target$iterator; + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + minRoomAbove = $intern_0; + minRoomBelow = $intern_0; + for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + index_0 = !node.layer?-1:$indexOf_3(node.layer.nodes, node, 0); + if (index_0 > 0) { + neighbor = castTo($get_11(node.layer.nodes, index_0 - 1), 10); + spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); + roomAbove = node.pos.y_0 - node.margin.top_0 - (neighbor.pos.y_0 + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing); + } + else { + roomAbove = node.pos.y_0 - node.margin.top_0; + } + minRoomAbove = $wnd.Math.min(roomAbove, minRoomAbove); + if (index_0 < node.layer.nodes.array.length - 1) { + neighbor = castTo($get_11(node.layer.nodes, index_0 + 1), 10); + spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); + roomBelow = neighbor.pos.y_0 - neighbor.margin.top_0 - (node.pos.y_0 + node.size_0.y_0 + node.margin.bottom + spacing); + } + else { + roomBelow = 2 * node.pos.y_0; + } + minRoomBelow = $wnd.Math.min(roomBelow, minRoomBelow); + } + minDisplacement = $intern_0; + foundPlace = false; + firstNode = castTo($get_11(segment.nodes, 0), 10); + for (target$iterator = new ArrayList$1(firstNode.ports); target$iterator.i < target$iterator.this$01.array.length;) { + target = castTo($next_7(target$iterator), 11); + pos = firstNode.pos.y_0 + target.pos.y_0 + target.anchor.y_0; + for (edge$iterator = new ArrayList$1(target.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + source = edge.source; + d = source.owner.pos.y_0 + source.pos.y_0 + source.anchor.y_0 - pos; + if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { + minDisplacement = d; + foundPlace = true; + } + } + } + lastNode = castTo($get_11(segment.nodes, segment.nodes.array.length - 1), 10); + for (source$iterator = new ArrayList$1(lastNode.ports); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 11); + pos = lastNode.pos.y_0 + source.pos.y_0 + source.anchor.y_0; + for (edge$iterator = new ArrayList$1(source.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + target = edge.target; + d = target.owner.pos.y_0 + target.pos.y_0 + target.anchor.y_0 - pos; + if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { + minDisplacement = d; + foundPlace = true; + } + } + } + if (foundPlace && minDisplacement != 0) { + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 += minDisplacement; + } + } + } +} + +function $process_71(this$static, layeredGraph, monitor){ + $begin(monitor, 'Linear segments node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + $sortLinearSegments(this$static, layeredGraph); + $createUnbalancedPlacement(this$static, layeredGraph); + $balancePlacement(this$static, layeredGraph); + $postProcess(this$static); + this$static.linearSegments = null; + this$static.spacings = null; + $done_0(monitor); +} + +function $sortLinearSegments(this$static, layeredGraph){ + var edge, edge$iterator, edge$iterator0, i, i0, i1, i2, incomingCount, incomingCountList, inprio, layer, layer$iterator, layer$iterator0, ls, newRanks, nextLinearSegmentID, nextRank, noIncoming, node, node$iterator, outgoing, outgoingList, outprio, port, port$iterator, prio, rank, segment, segmentList, segments, target; + segmentList = new ArrayList; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = -1; + inprio = $intern_42; + outprio = $intern_42; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + inprio = $wnd.Math.max(inprio, prio); + } + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + outprio = $wnd.Math.max(outprio, prio); + } + } + $setProperty_0(node, INPUT_PRIO, valueOf_4(inprio)); + $setProperty_0(node, OUTPUT_PRIO, valueOf_4(outprio)); + } + } + nextLinearSegmentID = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.id_0 < 0) { + segment = new LinearSegmentsNodePlacer$LinearSegment; + segment.id_0 = nextLinearSegmentID++; + $fillSegment(this$static, node, segment); + segmentList.array[segmentList.array.length] = segment; + } + } + } + outgoingList = newArrayListWithCapacity(segmentList.array.length); + incomingCountList = newArrayListWithCapacity(segmentList.array.length); + for (i0 = 0; i0 < segmentList.array.length; i0++) { + $add_3(outgoingList, new ArrayList); + $add_3(incomingCountList, valueOf_4(0)); + } + $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList); + segments = castTo($toArray_2(segmentList, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segmentList.array.length, 0, 1)), 840); + outgoing = castTo($toArray_2(outgoingList, initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, outgoingList.array.length, 0, 1)), 192); + incomingCount = initUnidimensionalArray(I_classLit, $intern_48, 25, incomingCountList.array.length, 15, 1); + for (i1 = 0; i1 < incomingCount.length; i1++) { + incomingCount[i1] = (checkCriticalElementIndex(i1, incomingCountList.array.length) , castTo(incomingCountList.array[i1], 19)).value_0; + } + nextRank = 0; + noIncoming = new ArrayList; + for (i2 = 0; i2 < segments.length; i2++) { + incomingCount[i2] == 0 && $add_3(noIncoming, segments[i2]); + } + newRanks = initUnidimensionalArray(I_classLit, $intern_48, 25, segments.length, 15, 1); + while (noIncoming.array.length != 0) { + segment = castTo($remove_11(noIncoming, 0), 257); + newRanks[segment.id_0] = nextRank++; + while (!outgoing[segment.id_0].isEmpty()) { + target = castTo(outgoing[segment.id_0].remove_2(0), 257); + --incomingCount[target.id_0]; + incomingCount[target.id_0] == 0 && (noIncoming.array[noIncoming.array.length] = target , true); + } + } + this$static.linearSegments = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segments.length, 0, 1); + for (i = 0; i < segments.length; i++) { + ls = segments[i]; + rank = newRanks[i]; + this$static.linearSegments[rank] = ls; + ls.id_0 = rank; + for (node$iterator = new ArrayList$1(ls.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = rank; + } + } + return this$static.linearSegments; +} + +function LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer(); +} + +defineClass(1406, 1, $intern_113, LinearSegmentsNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_13(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_0:null; +} +; +_.process = function process_68(layeredGraph, monitor){ + $process_71(this, castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_0, INPUT_PRIO, OUTPUT_PRIO; +var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer', 1406); +function $compareTo_16(this$static, other){ + return this$static.id_0 - other.id_0; +} + +function $region(this$static){ + var seg; + seg = this$static; + while (seg.refSegment) { + seg = seg.refSegment; + } + return seg; +} + +function $split_3(this$static, node, newId){ + var iterator, movedNode, newSegment, nodeIndex; + nodeIndex = $indexOf_3(this$static.nodes, node, 0); + newSegment = new LinearSegmentsNodePlacer$LinearSegment; + newSegment.id_0 = newId; + iterator = new AbstractList$ListIteratorImpl(this$static.nodes, nodeIndex); + while (iterator.i < iterator.this$01_0.size_1()) { + movedNode = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 10)); + movedNode.id_0 = newId; + $add_3(newSegment.nodes, movedNode); + $remove_8(iterator); + } + return newSegment; +} + +function LinearSegmentsNodePlacer$LinearSegment(){ + this.nodes = new ArrayList; +} + +defineClass(257, 1, {35:1, 257:1}, LinearSegmentsNodePlacer$LinearSegment); +_.compareTo_0 = function compareTo_17(other){ + return $compareTo_16(this, castTo(other, 257)); +} +; +_.equals_0 = function equals_157(object){ + var other; + if (instanceOf(object, 257)) { + other = castTo(object, 257); + return this.id_0 == other.id_0; + } + return false; +} +; +_.hashCode_1 = function hashCode_62(){ + return this.id_0; +} +; +_.toString_0 = function toString_102(){ + return 'ls' + $toString_2(this.nodes); +} +; +_.deflection = 0; +_.id_0 = 0; +_.indexInLastLayer = -1; +_.lastLayer = -1; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer/LinearSegment', 257); +function $clinit_NetworkSimplexPlacer(){ + $clinit_NetworkSimplexPlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_1 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $applyPositions(this$static){ + var flexibleNode, l, l$iterator, lNode, lNode$iterator, label_0, label$iterator, maxY, minY, nNode, nf, nf0, nodeRep, p, p$iterator, placement, sizeDelta; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(lNode$iterator), 10); + nodeRep = this$static.nodeReps[lNode.id_0]; + minY = nodeRep.head.layer; + maxY = nodeRep.tail.layer; + lNode.pos.y_0 = minY; + sizeDelta = maxY - minY - lNode.size_0.y_0; + flexibleNode = isFlexibleNode(lNode); + nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); + flexibleNode && (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && (lNode.size_0.y_0 += sizeDelta); + if (flexibleNode && (nf0 == PORT_POSITION || nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { + for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + if (($clinit_PortSide() , SIDES_EAST_WEST).contains(p.side)) { + nNode = castTo($get_10(this$static.portMap, p), 121); + p.pos.y_0 = nNode.layer - minY; + } + } + for (label$iterator = new ArrayList$1(lNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + placement = castTo($getProperty(lNode, NODE_LABELS_PLACEMENT_1), 21); + placement.contains(($clinit_NodeLabelPlacement() , V_BOTTOM_0))?(label_0.pos.y_0 += sizeDelta):placement.contains(V_CENTER_0) && (label_0.pos.y_0 += sizeDelta / 2); + } + (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && $getPortSideView(lNode, ($clinit_PortSide() , SOUTH_2)).forEach_0(new NetworkSimplexPlacer$lambda$20$Type(sizeDelta)); + } + } + } +} + +function $buildInitialAuxiliaryGraph(this$static){ + var l, l$iterator; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + $transformLayer(this$static, l); + } + $forEach_3($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$2$Type), new NetworkSimplexPlacer$lambda$3$Type), new NetworkSimplexPlacer$lambda$4$Type), new NetworkSimplexPlacer$lambda$5$Type(this$static)); +} + +function $follow(this$static, edge, current, path){ + var incident, incident$iterator, other; + other = $getOther_1(edge, current); + path.array[path.array.length] = edge; + if (this$static.nodeState[other.id_0] == -1 || this$static.nodeState[other.id_0] == 2 || this$static.crossing[edge.id_0]) { + return path; + } + this$static.nodeState[other.id_0] = -1; + for (incident$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(other).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incident$iterator);) { + incident = castTo($next_0(incident$iterator), 17); + if (!(!$isSelfLoop(incident) && !(!$isSelfLoop(incident) && incident.source.owner.layer == incident.target.owner.layer)) || incident == edge) { + continue; + } + return $follow(this$static, incident, other, path); + } + return path; +} + +function $getEdgeWeight(nodeType1, nodeType2){ + return nodeType1 == ($clinit_LNode$NodeType() , NORMAL) && nodeType2 == NORMAL?4:nodeType1 == NORMAL || nodeType2 == NORMAL?8:32; +} + +function $improveTwoPath(this$static, path, probe){ + var a, above, aboveDist, aboveRep, b, below, belowDist, belowRep, c, caseA, caseB, caseC, caseD, centerNode, centerOrigin, d, leftEdge, move, nNode, nodeIndex, rightEdge, spacing; + leftEdge = this$static.edgeReps[(checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).id_0]; + rightEdge = this$static.edgeReps[(checkCriticalElementIndex(1, path.array.length) , castTo(path.array[1], 17)).id_0]; + if (leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) == 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) == 0) { + return false; + } + centerOrigin = leftEdge.right.target.origin_0; + if (!instanceOf(centerOrigin, 10)) { + return false; + } + centerNode = castTo(centerOrigin, 10); + nNode = this$static.nodeReps[centerNode.id_0]; + nodeIndex = !centerNode.layer?-1:$indexOf_3(centerNode.layer.nodes, centerNode, 0); + aboveDist = $intern_59; + if (nodeIndex > 0) { + above = castTo($get_11(centerNode.layer.nodes, nodeIndex - 1), 10); + aboveRep = this$static.nodeReps[above.id_0]; + spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, above, centerNode)); + aboveDist = nNode.head.layer - centerNode.margin.top_0 - (aboveRep.head.layer + above.size_0.y_0 + above.margin.bottom) - spacing; + } + belowDist = $intern_59; + if (nodeIndex < centerNode.layer.nodes.array.length - 1) { + below = castTo($get_11(centerNode.layer.nodes, nodeIndex + 1), 10); + belowRep = this$static.nodeReps[below.id_0]; + spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, below, centerNode)); + belowDist = belowRep.head.layer - below.margin.top_0 - (nNode.head.layer + centerNode.size_0.y_0 + centerNode.margin.bottom) - spacing; + } + if (probe && ($clinit_DoubleMath() , checkNonNegative($intern_117) , $wnd.Math.abs(aboveDist - belowDist) <= $intern_117 || aboveDist == belowDist || isNaN(aboveDist) && isNaN(belowDist))) { + return true; + } + a = length_1(leftEdge.left); + b = -length_1(leftEdge.right); + c = -length_1(rightEdge.left); + d = length_1(rightEdge.right); + caseD = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) > 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) < 0; + caseC = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) < 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) > 0; + caseB = leftEdge.left.target.layer + leftEdge.right.delta < rightEdge.right.target.layer + rightEdge.left.delta; + caseA = leftEdge.left.target.layer + leftEdge.right.delta > rightEdge.right.target.layer + rightEdge.left.delta; + move = 0; + !caseD && !caseC && (caseA?aboveDist + c > 0?(move = c):belowDist - a > 0 && (move = a):caseB && (aboveDist + b > 0?(move = b):belowDist - d > 0 && (move = d))); + nNode.head.layer += move; + nNode.isFlexible && (nNode.tail.layer += move); + return false; +} + +function $lambda$1_4(this$static, singleNode_1, p_1){ + return $put_6(this$static.portMap, p_1, singleNode_1); +} + +function $lambda$10(this$static, inLayerEdge_0){ + var dummyNode, dummyRep, portRep, src_0, srcIsDummy, tgt, thePort; + srcIsDummy = inLayerEdge_0.source.owner.type_0 != ($clinit_LNode$NodeType() , NORMAL); + thePort = srcIsDummy?inLayerEdge_0.target:inLayerEdge_0.source; + dummyNode = $getOther_2(inLayerEdge_0, thePort).owner; + portRep = castTo($get_10(this$static.portMap, thePort), 121); + dummyRep = this$static.nodeReps[dummyNode.id_0].head; + if ($getIndex(thePort.owner) < (!dummyNode.layer?-1:$indexOf_3(dummyNode.layer.nodes, dummyNode, 0))) { + src_0 = portRep; + tgt = dummyRep; + } + else { + src_0 = dummyRep; + tgt = portRep; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 4), src_0), tgt)); +} + +function $lambda$12(this$static, n_0){ + var other, sp, sp$iterator, sp$iterator0; + for (sp$iterator0 = $getPortSideView(n_0, ($clinit_PortSide() , SOUTH_2)).iterator_0(); sp$iterator0.hasNext_0();) { + sp = castTo(sp$iterator0.next_1(), 11); + other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[n_0.id_0].tail), this$static.nodeReps[other.id_0].head)); + } + for (sp$iterator = $getPortSideView(n_0, NORTH_3).iterator_0(); sp$iterator.hasNext_0();) { + sp = castTo(sp$iterator.next_1(), 11); + other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[other.id_0].tail), this$static.nodeReps[n_0.id_0].head)); + } +} + +function $lambda$22(this$static, n_0){ + return this$static.nodeState[n_0.id_0] = getNodeState(n_0); +} + +function $lambda$25(this$static, n_0){ + return this$static.nodeState[n_0.id_0] == 2; +} + +function $lambda$26(this$static, paths_1, junction_1){ + var e, e$iterator, path; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(junction_1).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!(!$isSelfLoop(e) && !(!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer))) { + continue; + } + path = $follow(this$static, e, junction_1, new NetworkSimplexPlacer$Path); + path.array.length > 1 && (paths_1.array[paths_1.array.length] = path , true); + } +} + +function $lambda$29(this$static, left_0, right_1){ + $markCrossingEdges(this$static, left_0, right_1); + return right_1; +} + +function $markCrossingEdges(this$static, left, right){ + var edge, edge$iterator, last, node, node$iterator, node$iterator0, openEdges, openEdgesIt, port, port$iterator; + openEdges = new ArrayList; + for (node$iterator0 = new ArrayList$1(left.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.target.owner.layer != right) { + continue; + } + openEdges.array[openEdges.array.length] = edge; + } + } + } + for (node$iterator = reverse_0(right.nodes).iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , WEST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.source.owner.layer != left) { + continue; + } + openEdgesIt = new AbstractList$ListIteratorImpl(openEdges, openEdges.array.length); + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); + while (last != edge && openEdgesIt.i > 0) { + this$static.crossing[last.id_0] = true; + this$static.crossing[edge.id_0] = true; + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); + } + openEdgesIt.i > 0 && $remove_8(openEdgesIt); + } + } + } +} + +function $postProcessTwoPaths(this$static){ + var path, q, s, tryAgain; + q = new LinkedList; + $addAll(q, this$static.twoPaths); + s = new Stack; + while (q.size_0 != 0) { + path = castTo(q.size_0 == 0?null:(checkCriticalElement(q.size_0 != 0) , $removeNode_0(q, q.header.next_0)), 508); + tryAgain = $improveTwoPath(this$static, path, true); + tryAgain && $add_3(s.arrayList, path); + } + while (s.arrayList.array.length != 0) { + path = castTo($pop(s), 508); + $improveTwoPath(this$static, path, false); + } +} + +function $preferStraightEdges(this$static){ + var cur, curRep, identifiedPaths, last, oldLeftWeight, oldRightWeight, path, path$iterator, pathIt, weight, paths; + this$static.nodeState = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.nodeCount, 15, 1); + this$static.twoPaths = new ArrayList; + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$21$Type), new NetworkSimplexPlacer$lambda$22$Type(this$static)); + this$static.crossing = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.edgeCount, 16, 1); + $reduce_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$29$Type(this$static)); + identifiedPaths = (paths = new ArrayList , $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$24$Type), new NetworkSimplexPlacer$lambda$25$Type(this$static)), new NetworkSimplexPlacer$lambda$26$Type(this$static, paths)) , paths); + for (path$iterator = new ArrayList$1(identifiedPaths); path$iterator.i < path$iterator.this$01.array.length;) { + path = castTo($next_7(path$iterator), 508); + if (path.array.length <= 1) { + continue; + } + if (path.array.length == 2) { + $orderTwoPath(path); + isFlexibleNode((checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).target.owner) || $add_3(this$static.twoPaths, path); + continue; + } + if ($containsLongEdgeDummy(path) || $containsFlexibleNode(path, new NetworkSimplexPlacer$lambda$23$Type)) { + continue; + } + pathIt = new ArrayList$1(path); + last = null; + while (pathIt.i < pathIt.this$01.array.length) { + cur = castTo($next_7(pathIt), 17); + curRep = this$static.edgeReps[cur.id_0]; + !last || pathIt.i >= pathIt.this$01.array.length?(weight = $getEdgeWeight(($clinit_LNode$NodeType() , NORMAL), LONG_EDGE)):(weight = $getEdgeWeight(($clinit_LNode$NodeType() , LONG_EDGE), LONG_EDGE)); + weight *= 2; + oldLeftWeight = curRep.left.weight; + curRep.left.weight = $wnd.Math.max(oldLeftWeight, oldLeftWeight + (weight - oldLeftWeight)); + oldRightWeight = curRep.right.weight; + curRep.right.weight = $wnd.Math.max(oldRightWeight, oldRightWeight + (weight - oldRightWeight)); + last = cur; + } + } +} + +function $prepare(this$static){ + var anchorMustBeInteger, e, e$iterator, edgeIdx, l, l$iterator, lNode, lNode$iterator, nodeIdx, offset, p, p$iterator, y_0, y0; + this$static.nGraph = new NGraph; + nodeIdx = 0; + edgeIdx = 0; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(lNode$iterator), 10); + lNode.id_0 = nodeIdx++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + e.id_0 = edgeIdx++; + } + anchorMustBeInteger = isFlexibleNode(lNode); + for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + if (anchorMustBeInteger) { + y0 = p.anchor.y_0; + if (y0 != $wnd.Math.floor(y0)) { + offset = y0 - toDouble_0(fromDouble_0($wnd.Math.round(y0))); + p.anchor.y_0 -= offset; + } + } + y_0 = p.pos.y_0 + p.anchor.y_0; + if (y_0 != $wnd.Math.floor(y_0)) { + offset = y_0 - toDouble_0(fromDouble_0($wnd.Math.round(y_0))); + p.pos.y_0 -= offset; + } + } + } + } + this$static.nodeCount = nodeIdx; + this$static.edgeCount = edgeIdx; + this$static.nodeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit, $intern_2, 401, nodeIdx, 0, 1); + this$static.edgeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit, $intern_2, 649, edgeIdx, 0, 1); + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); +} + +function $process_72(this$static, layeredGraph, progressMonitor){ + var edge, edge$iterator, iterLimit, pm, minLayer, maxLayer, usedLayers, globalSource, globalSink; + $begin(progressMonitor, 'Network simplex node placement', 1); + this$static.lGraph = layeredGraph; + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + $prepare(this$static); + $buildInitialAuxiliaryGraph(this$static); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$11$Type), new NetworkSimplexPlacer$lambda$12$Type(this$static)); + $forEach_3($filter($flatMap($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$6$Type), new NetworkSimplexPlacer$lambda$7$Type), new NetworkSimplexPlacer$lambda$8$Type), new NetworkSimplexPlacer$lambda$9$Type), new NetworkSimplexPlacer$lambda$10$Type(this$static)); + if ($booleanValue(castToBoolean($getProperty(this$static.lGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))))) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Straight Edges Pre-Processing', 1); + $preferStraightEdges(this$static); + $done_0(pm); + } + $makeConnected(this$static.nGraph); + iterLimit = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0 * this$static.nGraph.nodes.array.length; + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(progressMonitor, 1)); + if (this$static.flexibleWhereSpacePermitsEdges.map_0.size_1() != 0) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Flexible Where Space Processing', 1); + minLayer = castTo($get_17($min_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$13$Type), new NetworkSimplexPlacer$0methodref$compare$Type)), 19).value_0; + maxLayer = castTo($get_17($max_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$15$Type), new NetworkSimplexPlacer$1methodref$compare$Type)), 19).value_0; + usedLayers = maxLayer - minLayer; + globalSource = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + globalSink = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 20000), usedLayers), globalSource), globalSink)); + $forEach_3($filter($filter(stream_4(this$static.nodeReps), new NetworkSimplexPlacer$lambda$17$Type), new NetworkSimplexPlacer$lambda$18$Type), new NetworkSimplexPlacer$lambda$19$Type(minLayer, globalSource, usedLayers, globalSink)); + for (edge$iterator = this$static.flexibleWhereSpacePermitsEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + edge.weight = 1; + } + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(pm, 1)); + $done_0(pm); + } + if ($booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)))) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Straight Edges Post-Processing', 1); + $postProcessTwoPaths(this$static); + $done_0(pm); + } + $applyPositions(this$static); + this$static.lGraph = null; + this$static.nGraph = null; + this$static.nodeReps = null; + this$static.edgeReps = null; + $reset(this$static.portMap); + this$static.nodeState = null; + this$static.crossing = null; + this$static.twoPaths = null; + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); + $done_0(progressMonitor); +} + +function $transformEdge_0(this$static, lEdge){ + var dummy, edgeRep, left, right, srcDelta, srcOffset, srcPort, srcRep, tgtDelta, tgtOffset, tgtPort, tgtRep, weight, priority, edgeTypeWeight; + dummy = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + srcRep = this$static.nodeReps[lEdge.source.owner.id_0]; + tgtRep = this$static.nodeReps[lEdge.target.owner.id_0]; + srcPort = lEdge.source; + tgtPort = lEdge.target; + srcOffset = srcPort.anchor.y_0; + tgtOffset = tgtPort.anchor.y_0; + srcRep.isFlexible || (srcOffset += srcPort.pos.y_0); + tgtRep.isFlexible || (tgtOffset += tgtPort.pos.y_0); + tgtDelta = round_int($wnd.Math.max(0, srcOffset - tgtOffset)); + srcDelta = round_int($wnd.Math.max(0, tgtOffset - srcOffset)); + weight = (priority = $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0) , edgeTypeWeight = $getEdgeWeight(lEdge.source.owner.type_0, lEdge.target.owner.type_0) , priority * edgeTypeWeight); + left = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), srcDelta), dummy), castTo($get_10(this$static.portMap, lEdge.source), 121))); + right = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), tgtDelta), dummy), castTo($get_10(this$static.portMap, lEdge.target), 121))); + edgeRep = new NetworkSimplexPlacer$EdgeRep(left, right); + this$static.edgeReps[lEdge.id_0] = edgeRep; +} + +function $transformLayer(this$static, layer){ + var lNode, lNode$iterator, lastRep, nodeRep, spacing, topLeft, bottomLeft, corners, minHeight, nf0, nf, sizeWeight, nodeSizeEdge, singleNode; + lastRep = null; + for (lNode$iterator = new ArrayList$1(layer.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(lNode$iterator), 10); + isFlexibleNode(lNode)?(nodeRep = (topLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , bottomLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , corners = new NetworkSimplexPlacer$NodeRep(lNode, true, topLeft, bottomLeft) , minHeight = lNode.size_0.y_0 , nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf) , sizeWeight = 10000 , nf0 == NODE_SIZE && (sizeWeight = 1) , nodeSizeEdge = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, sizeWeight), round_int($wnd.Math.ceil(minHeight))), topLeft), bottomLeft)) , nf0 == NODE_SIZE_WHERE_SPACE_PERMITS && $add_6(this$static.flexibleWhereSpacePermitsEdges, nodeSizeEdge) , $transformPorts(this$static, reverse_0($getPortSideView(lNode, ($clinit_PortSide() , WEST_2))), corners) , $transformPorts(this$static, $getPortSideView(lNode, EAST_2), corners) , corners)):(nodeRep = (singleNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lNode.ports, 16)), new NetworkSimplexPlacer$lambda$0$Type), new NetworkSimplexPlacer$lambda$1$Type(this$static, singleNode)) , new NetworkSimplexPlacer$NodeRep(lNode, false, singleNode, singleNode))); + this$static.nodeReps[lNode.id_0] = nodeRep; + if (lastRep) { + spacing = lastRep.origin_0.margin.bottom + $getVerticalSpacing_0(this$static.spacings, lastRep.origin_0, lNode) + lNode.margin.top_0; + lastRep.isFlexible || (spacing += lastRep.origin_0.size_0.y_0); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int($wnd.Math.ceil(spacing))), 0), lastRep.tail), nodeRep.head)); + } + lastRep = nodeRep; + } +} + +function $transformPorts(this$static, ports, corners){ + var lastNNode, lastPort, nNode, port, port$iterator, portSpacing, portSurrounding, spacing; + if (isEmpty_13(ports)) { + return; + } + portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(corners.origin_0, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); + portSurrounding = castTo(getIndividualOrDefault(corners.origin_0, SPACING_PORTS_SURROUNDING), 142); + !portSurrounding && (portSurrounding = new ElkMargin); + lastNNode = corners.head; + lastPort = null; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + spacing = 0; + if (!lastPort) { + spacing = portSurrounding.top_0; + } + else { + spacing = portSpacing; + spacing += lastPort.size_0.y_0; + } + nNode = $create_2($origin_0(new NNode$NNodeBuilder, port), this$static.nGraph); + $put_6(this$static.portMap, port, nNode); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(spacing))), lastNNode), nNode)); + lastPort = port; + lastNNode = nNode; + } + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(portSurrounding.bottom + lastPort.size_0.y_0))), lastNNode), corners.tail)); +} + +function NetworkSimplexPlacer(){ + $clinit_NetworkSimplexPlacer(); + this.portMap = new HashMap; + this.flexibleWhereSpacePermitsEdges = new HashSet; +} + +function getNodeState(node){ + var inco, ouco, p, p$iterator; + inco = 0; + ouco = 0; + for (p$iterator = new ArrayList$1(node.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + inco = toInt_0(add_20(inco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.incomingEdges, 16)), new NetworkSimplexPlacer$lambda$27$Type)))); + ouco = toInt_0(add_20(ouco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.outgoingEdges, 16)), new NetworkSimplexPlacer$lambda$28$Type)))); + if (inco > 1 || ouco > 1) { + return 2; + } + } + if (inco + ouco == 1) { + return 2; + } + return 0; +} + +function isFlexibleNode(lNode){ + var additionalPortSpacing, eastPorts, nf, nf0, pc, portSpacing, requiredEastHeight, requiredWestHeight, westPorts; + if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + return false; + } + if (lNode.ports.array.length <= 1) { + return false; + } + pc = castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + if (pc == ($clinit_PortConstraints() , FIXED_POS)) { + return false; + } + nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); + if (nf0 == NONE_8) { + return false; + } + if (!(nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { + portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, SPACING_PORT_PORT))); + additionalPortSpacing = castTo($getProperty(lNode, SPACING_PORTS_SURROUNDING), 142); + !additionalPortSpacing && (additionalPortSpacing = new ElkMargin_1(portSpacing, portSpacing, portSpacing, portSpacing)); + westPorts = $getPortSideView(lNode, ($clinit_PortSide() , WEST_2)); + requiredWestHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (westPorts.size_1() - 1) * portSpacing; + if (requiredWestHeight > lNode.size_0.y_0) { + return false; + } + eastPorts = $getPortSideView(lNode, EAST_2); + requiredEastHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (eastPorts.size_1() - 1) * portSpacing; + if (requiredEastHeight > lNode.size_0.y_0) { + return false; + } + } + return true; +} + +function isHandledEdge(edge){ + $clinit_NetworkSimplexPlacer(); + return !$isSelfLoop(edge) && !(!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer); +} + +function lambda$0_28(p_0){ + $clinit_NetworkSimplexPlacer(); + return ($clinit_PortSide() , SIDES_EAST_WEST).contains(p_0.side); +} + +function lambda$19(minLayer_0, globalSource_1, usedLayers_2, globalSink_3, nr_4){ + $clinit_NetworkSimplexPlacer(); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), nr_4.tail.layer - minLayer_0), globalSource_1), nr_4.tail)); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), usedLayers_2 - nr_4.head.layer), nr_4.head), globalSink_3)); +} + +function lambda$20(sizeDelta_0, p_1){ + $clinit_NetworkSimplexPlacer(); + return p_1.pos.y_0 += sizeDelta_0; +} + +function length_1(edge){ + return $wnd.Math.abs(edge.source.layer - edge.target.layer) - edge.delta; +} + +defineClass(1408, 1, $intern_113, NetworkSimplexPlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_14(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_1:null; +} +; +_.process = function process_69(layeredGraph, progressMonitor){ + $process_72(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.edgeCount = 0; +_.nodeCount = 0; +var HIERARCHY_PROCESSING_ADDITIONS_1; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer', 1408); +function NetworkSimplexPlacer$0methodref$compare$Type(){ +} + +defineClass(1427, 1, $intern_88, NetworkSimplexPlacer$0methodref$compare$Type); +_.compare_1 = function compare_73(arg0, arg1){ + return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); +} +; +_.equals_0 = function equals_158(other){ + return this === other; +} +; +_.reversed = function reversed_65(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$0methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/0methodref$compare$Type', 1427); +function NetworkSimplexPlacer$1methodref$compare$Type(){ +} + +defineClass(1429, 1, $intern_88, NetworkSimplexPlacer$1methodref$compare$Type); +_.compare_1 = function compare_74(arg0, arg1){ + return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); +} +; +_.equals_0 = function equals_159(other){ + return this === other; +} +; +_.reversed = function reversed_66(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$1methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/1methodref$compare$Type', 1429); +function NetworkSimplexPlacer$EdgeRep(left, right){ + this.left = left; + this.right = right; +} + +defineClass(649, 1, {649:1}, NetworkSimplexPlacer$EdgeRep); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/EdgeRep', 649); +function NetworkSimplexPlacer$NodeRep(origin_0, isFlexible, top_0, bottom){ + this.origin_0 = origin_0; + this.isFlexible = isFlexible; + this.head = top_0; + this.tail = bottom; +} + +defineClass(401, 1, {401:1}, NetworkSimplexPlacer$NodeRep); +_.isFlexible = false; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/NodeRep', 401); +function $containsFlexibleNode(this$static, p){ + var nf; + if (this$static.array.length == 0) { + return false; + } + nf = getNodeFlexibility((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner); + $clinit_NetworkSimplexPlacer(); + if (nf == ($clinit_NodeFlexibility() , NODE_SIZE_WHERE_SPACE_PERMITS) || nf == NODE_SIZE) { + return true; + } + return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$2$Type), new NetworkSimplexPlacer$Path$lambda$3$Type(p)); +} + +function $containsLongEdgeDummy(this$static){ + if (this$static.array.length == 0) { + return false; + } + if ((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + return true; + } + return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$0$Type), new NetworkSimplexPlacer$Path$lambda$1$Type); +} + +function $orderTwoPath(this$static){ + var first, second; + if (this$static.array.length != 2) { + throw toJs(new IllegalStateException_0('Order only allowed for two paths.')); + } + first = (checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)); + second = (checkCriticalElementIndex(1, this$static.array.length) , castTo(this$static.array[1], 17)); + if (first.target.owner != second.source.owner) { + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.array[this$static.array.length] = second; + this$static.array[this$static.array.length] = first; + } +} + +function NetworkSimplexPlacer$Path(){ + ArrayList.call(this); +} + +defineClass(508, 12, {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1, 508:1}, NetworkSimplexPlacer$Path); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path', 508); +function NetworkSimplexPlacer$Path$lambda$0$Type(){ +} + +defineClass(1409, 1, {}, NetworkSimplexPlacer$Path$lambda$0$Type); +_.apply_0 = function apply_140(arg0){ + return castTo(arg0, 17).target.owner.type_0; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$0$Type', 1409); +function NetworkSimplexPlacer$Path$lambda$1$Type(){ +} + +defineClass(1410, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$1$Type); +_.test_0 = function test_90(arg0){ + return castTo(arg0, 267) == ($clinit_LNode$NodeType() , LONG_EDGE); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$1$Type', 1410); +function NetworkSimplexPlacer$Path$lambda$2$Type(){ +} + +defineClass(1411, 1, {}, NetworkSimplexPlacer$Path$lambda$2$Type); +_.apply_0 = function apply_141(arg0){ + return castTo(arg0, 17).target.owner; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$2$Type', 1411); +function NetworkSimplexPlacer$Path$lambda$3$Type(p_0){ + this.p_0 = p_0; +} + +defineClass(1412, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$3$Type); +_.test_0 = function test_91(arg0){ + return $test_0(getNodeFlexibility(castTo(arg0, 10))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$3$Type', 1412); +function NetworkSimplexPlacer$lambda$0$Type(){ +} + +defineClass(1413, 1, $intern_39, NetworkSimplexPlacer$lambda$0$Type); +_.test_0 = function test_92(arg0){ + return lambda$0_28(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$0$Type', 1413); +function NetworkSimplexPlacer$lambda$1$Type($$outer_0, singleNode_1){ + this.$$outer_0 = $$outer_0; + this.singleNode_1 = singleNode_1; +} + +defineClass(1414, 1, $intern_19, NetworkSimplexPlacer$lambda$1$Type); +_.accept = function accept_121(arg0){ + $lambda$1_4(this.$$outer_0, this.singleNode_1, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$1$Type', 1414); +function NetworkSimplexPlacer$lambda$10$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1423, 1, $intern_19, NetworkSimplexPlacer$lambda$10$Type); +_.accept = function accept_122(arg0){ + $lambda$10(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$10$Type', 1423); +function NetworkSimplexPlacer$lambda$11$Type(){ +} + +defineClass(1424, 1, {}, NetworkSimplexPlacer$lambda$11$Type); +_.apply_0 = function apply_142(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$11$Type', 1424); +function NetworkSimplexPlacer$lambda$12$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1425, 1, $intern_19, NetworkSimplexPlacer$lambda$12$Type); +_.accept = function accept_123(arg0){ + $lambda$12(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$12$Type', 1425); +function NetworkSimplexPlacer$lambda$13$Type(){ +} + +defineClass(1426, 1, {}, NetworkSimplexPlacer$lambda$13$Type); +_.apply_0 = function apply_143(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$13$Type', 1426); +function NetworkSimplexPlacer$lambda$15$Type(){ +} + +defineClass(1428, 1, {}, NetworkSimplexPlacer$lambda$15$Type); +_.apply_0 = function apply_144(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$15$Type', 1428); +function NetworkSimplexPlacer$lambda$17$Type(){ +} + +defineClass(1430, 1, $intern_39, NetworkSimplexPlacer$lambda$17$Type); +_.test_0 = function test_93(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$17$Type', 1430); +function NetworkSimplexPlacer$lambda$18$Type(){ +} + +defineClass(1431, 1, $intern_39, NetworkSimplexPlacer$lambda$18$Type); +_.test_0 = function test_94(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.ports.array.length > 1; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$18$Type', 1431); +function NetworkSimplexPlacer$lambda$19$Type(minLayer_0, globalSource_1, usedLayers_2, globalSink_3){ + this.minLayer_0 = minLayer_0; + this.globalSource_1 = globalSource_1; + this.usedLayers_2 = usedLayers_2; + this.globalSink_3 = globalSink_3; +} + +defineClass(1432, 1, $intern_19, NetworkSimplexPlacer$lambda$19$Type); +_.accept = function accept_124(arg0){ + lambda$19(this.minLayer_0, this.globalSource_1, this.usedLayers_2, this.globalSink_3, castTo(arg0, 401)); +} +; +_.minLayer_0 = 0; +_.usedLayers_2 = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$19$Type', 1432); +function NetworkSimplexPlacer$lambda$2$Type(){ +} + +defineClass(1415, 1, {}, NetworkSimplexPlacer$lambda$2$Type); +_.apply_0 = function apply_145(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$2$Type', 1415); +function NetworkSimplexPlacer$lambda$20$Type(sizeDelta_0){ + this.sizeDelta_0 = sizeDelta_0; +} + +defineClass(1433, 1, $intern_19, NetworkSimplexPlacer$lambda$20$Type); +_.accept = function accept_125(arg0){ + lambda$20(this.sizeDelta_0, castTo(arg0, 11)); +} +; +_.sizeDelta_0 = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$20$Type', 1433); +function NetworkSimplexPlacer$lambda$21$Type(){ +} + +defineClass(1434, 1, {}, NetworkSimplexPlacer$lambda$21$Type); +_.apply_0 = function apply_146(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$21$Type', 1434); +function NetworkSimplexPlacer$lambda$22$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1435, 1, $intern_19, NetworkSimplexPlacer$lambda$22$Type); +_.accept = function accept_126(arg0){ + $lambda$22(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$22$Type', 1435); +function $test_0(arg0){ + return $clinit_NetworkSimplexPlacer() , $isFlexibleSizeWhereSpacePermits(castTo(arg0, 197)); +} + +function NetworkSimplexPlacer$lambda$23$Type(){ +} + +defineClass(1436, 1, $intern_39, NetworkSimplexPlacer$lambda$23$Type); +_.test_0 = function test_95(arg0){ + return $test_0(arg0); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$23$Type', 1436); +function NetworkSimplexPlacer$lambda$24$Type(){ +} + +defineClass(1437, 1, {}, NetworkSimplexPlacer$lambda$24$Type); +_.apply_0 = function apply_147(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$24$Type', 1437); +function NetworkSimplexPlacer$lambda$25$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1438, 1, $intern_39, NetworkSimplexPlacer$lambda$25$Type); +_.test_0 = function test_96(arg0){ + return $lambda$25(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$25$Type', 1438); +function NetworkSimplexPlacer$lambda$26$Type($$outer_0, paths_1){ + this.$$outer_0 = $$outer_0; + this.paths_1 = paths_1; +} + +defineClass(1439, 1, $intern_19, NetworkSimplexPlacer$lambda$26$Type); +_.accept = function accept_127(arg0){ + $lambda$26(this.$$outer_0, this.paths_1, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$26$Type', 1439); +function NetworkSimplexPlacer$lambda$27$Type(){ +} + +defineClass(1440, 1, $intern_39, NetworkSimplexPlacer$lambda$27$Type); +_.test_0 = function test_97(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$27$Type', 1440); +function NetworkSimplexPlacer$lambda$28$Type(){ +} + +defineClass(1441, 1, $intern_39, NetworkSimplexPlacer$lambda$28$Type); +_.test_0 = function test_98(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$28$Type', 1441); +function NetworkSimplexPlacer$lambda$29$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1442, 1, {}, NetworkSimplexPlacer$lambda$29$Type); +_.apply_3 = function apply_148(arg0, arg1){ + return $lambda$29(this.$$outer_0, castTo(arg0, 29), castTo(arg1, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$29$Type', 1442); +function NetworkSimplexPlacer$lambda$3$Type(){ +} + +defineClass(1416, 1, {}, NetworkSimplexPlacer$lambda$3$Type); +_.apply_0 = function apply_149(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$3$Type', 1416); +function NetworkSimplexPlacer$lambda$4$Type(){ +} + +defineClass(1417, 1, $intern_39, NetworkSimplexPlacer$lambda$4$Type); +_.test_0 = function test_99(arg0){ + return $clinit_NetworkSimplexPlacer() , isHandledEdge(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$4$Type', 1417); +function NetworkSimplexPlacer$lambda$5$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1418, 1, $intern_19, NetworkSimplexPlacer$lambda$5$Type); +_.accept = function accept_128(arg0){ + $transformEdge_0(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$5$Type', 1418); +function NetworkSimplexPlacer$lambda$6$Type(){ +} + +defineClass(1419, 1, {}, NetworkSimplexPlacer$lambda$6$Type); +_.apply_0 = function apply_150(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$6$Type', 1419); +function NetworkSimplexPlacer$lambda$7$Type(){ +} + +defineClass(1420, 1, $intern_39, NetworkSimplexPlacer$lambda$7$Type); +_.test_0 = function test_100(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$7$Type', 1420); +function NetworkSimplexPlacer$lambda$8$Type(){ +} + +defineClass(1421, 1, {}, NetworkSimplexPlacer$lambda$8$Type); +_.apply_0 = function apply_151(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$8$Type', 1421); +function NetworkSimplexPlacer$lambda$9$Type(){ +} + +defineClass(1422, 1, $intern_39, NetworkSimplexPlacer$lambda$9$Type); +_.test_0 = function test_101(arg0){ + return $clinit_NetworkSimplexPlacer() , $isInLayerEdge(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$9$Type', 1422); +function $clinit_SimpleNodePlacer(){ + $clinit_SimpleNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_2 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $process_73(layeredGraph, monitor){ + var lastNode, layer, layer$iterator, layer$iterator0, layerSize, maxHeight, node, node$iterator, pos, spacings; + $begin(monitor, 'Simple node placement', 1); + spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + maxHeight = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + layerSize = layer.size_0; + layerSize.y_0 = 0; + lastNode = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + !!lastNode && (layerSize.y_0 += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); + layerSize.y_0 += node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; + lastNode = node; + } + maxHeight = $wnd.Math.max(maxHeight, layerSize.y_0); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerSize = layer.size_0; + pos = (maxHeight - layerSize.y_0) / 2; + lastNode = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + !!lastNode && (pos += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); + pos += node.margin.top_0; + node.pos.y_0 = pos; + pos += node.size_0.y_0 + node.margin.bottom; + lastNode = node; + } + } + $done_0(monitor); +} + +function SimpleNodePlacer(){ + $clinit_SimpleNodePlacer(); +} + +defineClass(1404, 1, $intern_113, SimpleNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_15(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_2:null; +} +; +_.process = function process_70(layeredGraph, monitor){ + $process_73(castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_2; +var Lorg_eclipse_elk_alg_layered_p4nodes_SimpleNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'SimpleNodePlacer', 1404); +function $calculateDelta(this$static, src_0, tgt){ + var srcPos, tgtPos; + srcPos = $doubleValue(this$static.y_0[src_0.owner.id_0]) + $doubleValue(this$static.innerShift[src_0.owner.id_0]) + src_0.pos.y_0 + src_0.anchor.y_0; + tgtPos = $doubleValue(this$static.y_0[tgt.owner.id_0]) + $doubleValue(this$static.innerShift[tgt.owner.id_0]) + tgt.pos.y_0 + tgt.anchor.y_0; + return tgtPos - srcPos; +} + +function $checkSpaceAbove(this$static, blockRoot, delta, ni){ + var availableSpace, current, maxYNeighbor, minYCurrent, neighbor, rootNode, rootNode0, rootNode1; + availableSpace = delta; + rootNode0 = blockRoot; + current = rootNode0; + do { + current = this$static.align_0[current.id_0]; + minYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) - current.margin.top_0); + neighbor = $getUpperNeighbor(current, ni); + if (neighbor) { + maxYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom); + availableSpace = $wnd.Math.min(availableSpace, minYCurrent - (maxYNeighbor + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); + } + } + while (rootNode0 != current); + return availableSpace; +} + +function $checkSpaceBelow(this$static, blockRoot, delta, ni){ + var availableSpace, current, maxYCurrent, minYNeighbor, neighbor, rootNode, rootNode0, rootNode1; + availableSpace = delta; + rootNode0 = blockRoot; + current = rootNode0; + do { + current = this$static.align_0[current.id_0]; + maxYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) + current.size_0.y_0 + current.margin.bottom); + neighbor = $getLowerNeighbor(current, ni); + if (neighbor) { + minYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) - neighbor.margin.top_0); + availableSpace = $wnd.Math.min(availableSpace, minYNeighbor - (maxYCurrent + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); + } + } + while (rootNode0 != current); + return availableSpace; +} + +function $getLowerNeighbor(n, ni){ + var l, layerIndex; + l = n.layer; + layerIndex = ni.nodeIndex[n.id_0]; + if (layerIndex < l.nodes.array.length - 1) { + return castTo($get_11(l.nodes, layerIndex + 1), 10); + } + return null; +} + +function $getUpperNeighbor(n, ni){ + var l, layerIndex; + l = n.layer; + layerIndex = ni.nodeIndex[n.id_0]; + if (layerIndex > 0) { + return castTo($get_11(l.nodes, layerIndex - 1), 10); + } + return null; +} + +function $layoutSize(this$static){ + var layer, layer$iterator, max_0, min_0, n, n$iterator, yMax, yMin; + min_0 = $intern_59; + max_0 = $intern_60; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + yMin = $doubleValue(this$static.y_0[n.id_0]); + yMax = yMin + $doubleValue(this$static.blockSize[this$static.root[n.id_0].id_0]); + min_0 = $wnd.Math.min(min_0, yMin); + max_0 = $wnd.Math.max(max_0, yMax); + } + } + return max_0 - min_0; +} + +function $shiftBlock(this$static, rootNode, delta){ + var current, newPos; + current = rootNode; + do { + newPos = $doubleValue(this$static.y_0[current.id_0]) + delta; + this$static.y_0[current.id_0] = newPos; + current = this$static.align_0[current.id_0]; + } + while (current != rootNode); +} + +function BKAlignedLayout(layeredGraph, nodeCount, vdir, hdir){ + this.layeredGraph = layeredGraph; + this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + this.root = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.blockSize = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.align_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.innerShift = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.sink = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.shift_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.y_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.su = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); + fill_2(this.su, ($clinit_Boolean() , false)); + this.od = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); + fill_2(this.od, true); + this.vdir = vdir; + this.hdir = hdir; +} + +defineClass(180, 1, {180:1}, BKAlignedLayout); +_.toString_0 = function toString_103(){ + var result; + result = ''; + this.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?(result += 'RIGHT'):this.hdir == LEFT_3 && (result += 'LEFT'); + this.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(result += 'DOWN'):this.vdir == UP_0?(result += 'UP'):(result += 'BALANCED'); + return result; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout', 180); +function $clinit_BKAlignedLayout$HDirection(){ + $clinit_BKAlignedLayout$HDirection = emptyMethod; + RIGHT_3 = new BKAlignedLayout$HDirection('RIGHT', 0); + LEFT_3 = new BKAlignedLayout$HDirection('LEFT', 1); +} + +function BKAlignedLayout$HDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_69(name_0){ + $clinit_BKAlignedLayout$HDirection(); + return valueOf(($clinit_BKAlignedLayout$HDirection$Map() , $MAP_57), name_0); +} + +function values_75(){ + $clinit_BKAlignedLayout$HDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]); +} + +defineClass(516, 22, {3:1, 35:1, 22:1, 516:1}, BKAlignedLayout$HDirection); +var LEFT_3, RIGHT_3; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/HDirection', 516, Ljava_lang_Enum_2_classLit, values_75, valueOf_69); +function $clinit_BKAlignedLayout$HDirection$Map(){ + $clinit_BKAlignedLayout$HDirection$Map = emptyMethod; + $MAP_57 = createValueOfMap(($clinit_BKAlignedLayout$HDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]))); +} + +var $MAP_57; +function $clinit_BKAlignedLayout$VDirection(){ + $clinit_BKAlignedLayout$VDirection = emptyMethod; + DOWN_0 = new BKAlignedLayout$VDirection('DOWN', 0); + UP_0 = new BKAlignedLayout$VDirection('UP', 1); +} + +function BKAlignedLayout$VDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_70(name_0){ + $clinit_BKAlignedLayout$VDirection(); + return valueOf(($clinit_BKAlignedLayout$VDirection$Map() , $MAP_58), name_0); +} + +function values_76(){ + $clinit_BKAlignedLayout$VDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]); +} + +defineClass(515, 22, {3:1, 35:1, 22:1, 515:1}, BKAlignedLayout$VDirection); +var DOWN_0, UP_0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/VDirection', 515, Ljava_lang_Enum_2_classLit, values_76, valueOf_70); +function $clinit_BKAlignedLayout$VDirection$Map(){ + $clinit_BKAlignedLayout$VDirection$Map = emptyMethod; + $MAP_58 = createValueOfMap(($clinit_BKAlignedLayout$VDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]))); +} + +var $MAP_58; +function $insideBlockShift(bal){ + var blocks, current, edge, entry, next, nextInnerShift, outerIter, portPosDiff, root, root$iterator, spaceAbove, spaceBelow; + blocks = getBlocks(bal); + for (root$iterator = (outerIter = (new AbstractMap$1(blocks)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); root$iterator.val$outerIter2.hasNext_0();) { + root = (entry = castTo(root$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getKey(), 10)); + spaceAbove = 0; + spaceBelow = 0; + spaceAbove = root.margin.top_0; + spaceBelow = root.size_0.y_0 + root.margin.bottom; + bal.innerShift[root.id_0] = 0; + current = root; + while ((next = bal.align_0[current.id_0]) != root) { + edge = getEdge(current, next); + portPosDiff = 0; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?(portPosDiff = edge.target.pos.y_0 + edge.target.anchor.y_0 - edge.source.pos.y_0 - edge.source.anchor.y_0):(portPosDiff = edge.source.pos.y_0 + edge.source.anchor.y_0 - edge.target.pos.y_0 - edge.target.anchor.y_0); + nextInnerShift = $doubleValue(bal.innerShift[current.id_0]) + portPosDiff; + bal.innerShift[next.id_0] = nextInnerShift; + spaceAbove = $wnd.Math.max(spaceAbove, next.margin.top_0 - nextInnerShift); + spaceBelow = $wnd.Math.max(spaceBelow, nextInnerShift + next.size_0.y_0 + next.margin.bottom); + current = next; + } + current = root; + do { + bal.innerShift[current.id_0] = $doubleValue(bal.innerShift[current.id_0]) + spaceAbove; + current = bal.align_0[current.id_0]; + } + while (current != root); + bal.blockSize[root.id_0] = spaceAbove + spaceBelow; + } +} + +function $verticalAlignment(this$static, bal, markedEdges){ + var d, high, layer, layer$iterator, layer$iterator0, layers, low, m, neighbors, nodes, r, u_m, u_m_pair, um, um_pair, v, v$iterator, v_i_k, v_i_k$iterator; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 10); + bal.root[v.id_0] = v; + bal.align_0[v.id_0] = v; + bal.innerShift[v.id_0] = 0; + } + } + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + r = -1; + nodes = layer.nodes; + if (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)) { + r = $intern_0; + nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes); + } + for (v_i_k$iterator = nodes.iterator_0(); v_i_k$iterator.hasNext_0();) { + v_i_k = castTo(v_i_k$iterator.next_1(), 10); + neighbors = null; + bal.hdir == LEFT_3?(neighbors = castTo($get_11(this$static.ni.rightNeighbors, v_i_k.id_0), 15)):(neighbors = castTo($get_11(this$static.ni.leftNeighbors, v_i_k.id_0), 15)); + if (neighbors.size_1() > 0) { + d = neighbors.size_1(); + low = round_int($wnd.Math.floor((d + 1) / 2)) - 1; + high = round_int($wnd.Math.ceil((d + 1) / 2)) - 1; + if (bal.vdir == UP_0) { + for (m = high; m >= low; m--) { + if (bal.align_0[v_i_k.id_0] == v_i_k) { + u_m_pair = castTo(neighbors.get_0(m), 46); + u_m = castTo(u_m_pair.first, 10); + if (!$contains_6(markedEdges, u_m_pair.second) && r > this$static.ni.nodeIndex[u_m.id_0]) { + bal.align_0[u_m.id_0] = v_i_k; + bal.root[v_i_k.id_0] = bal.root[u_m.id_0]; + bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; + bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); + r = this$static.ni.nodeIndex[u_m.id_0]; + } + } + } + } + else { + for (m = low; m <= high; m++) { + if (bal.align_0[v_i_k.id_0] == v_i_k) { + um_pair = castTo(neighbors.get_0(m), 46); + um = castTo(um_pair.first, 10); + if (!$contains_6(markedEdges, um_pair.second) && r < this$static.ni.nodeIndex[um.id_0]) { + bal.align_0[um.id_0] = v_i_k; + bal.root[v_i_k.id_0] = bal.root[um.id_0]; + bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; + bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); + r = this$static.ni.nodeIndex[um.id_0]; + } + } + } + } + } + } + } +} + +function BKAligner(layeredGraph, ni){ + this.layeredGraph = layeredGraph; + this.ni = ni; +} + +defineClass(1634, 1, {}, BKAligner); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAligner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAligner', 1634); +function $getOrCreateClassNode(this$static, sinkNode){ + var node; + node = castTo($get_10(this$static.sinkNodes, sinkNode), 458); + if (!node) { + node = new BKCompactor$ClassNode; + node.node = sinkNode; + $put_6(this$static.sinkNodes, node.node, node); + } + return node; +} + +function $horizontalCompaction(this$static, bal){ + var layer, layer$iterator, layer$iterator0, layer$iterator1, layers, node, node$iterator, nodes, sinkShift, v, v$iterator; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + bal.sink[node.id_0] = node; + bal.shift_0[node.id_0] = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_59; + } + } + $reset(this$static.sinkNodes); + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); + $init_0(this$static.threshStrategy, bal, this$static.ni); + fill_2(bal.y_0, null); + for (layer$iterator1 = layers.iterator_0(); layer$iterator1.hasNext_0();) { + layer = castTo(layer$iterator1.next_1(), 29); + nodes = layer.nodes; + bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && (nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes)); + for (v$iterator = nodes.iterator_0(); v$iterator.hasNext_0();) { + v = castTo(v$iterator.next_1(), 10); + bal.root[v.id_0] == v && $placeBlock(this$static, v, bal); + } + } + $placeClasses(this$static, bal); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 10); + bal.y_0[v.id_0] = bal.y_0[bal.root[v.id_0].id_0]; + if (v == bal.root[v.id_0]) { + sinkShift = $doubleValue(bal.shift_0[bal.sink[v.id_0].id_0]); + (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && sinkShift > $intern_60 || bal.vdir == DOWN_0 && sinkShift < $intern_59) && (bal.y_0[v.id_0] = $doubleValue(bal.y_0[v.id_0]) + sinkShift); + } + } + } + this$static.threshStrategy.postProcess(); +} + +function $placeBlock(this$static, root, bal){ + var currentBlockPosition, currentIndexInLayer, currentLayerSize, currentNode, isInitialAssignment, neighbor, neighborRoot, neighborSink, newPosition, requiredSpace, sinkNode, spacing, thresh; + if (bal.y_0[root.id_0] != null) { + return; + } + isInitialAssignment = true; + bal.y_0[root.id_0] = 0; + currentNode = root; + thresh = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?$intern_60:$intern_59; + do { + currentIndexInLayer = this$static.ni.nodeIndex[currentNode.id_0]; + currentLayerSize = currentNode.layer.nodes.array.length; + if (bal.vdir == DOWN_0 && currentIndexInLayer > 0 || bal.vdir == UP_0 && currentIndexInLayer < currentLayerSize - 1) { + neighbor = null; + neighborRoot = null; + bal.vdir == UP_0?(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer + 1), 10)):(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer - 1), 10)); + neighborRoot = bal.root[neighbor.id_0]; + $placeBlock(this$static, neighborRoot, bal); + thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); + bal.sink[root.id_0] == root && (bal.sink[root.id_0] = bal.sink[neighborRoot.id_0]); + if (bal.sink[root.id_0] == bal.sink[neighborRoot.id_0]) { + spacing = $getVerticalSpacing_0(this$static.spacings, currentNode, neighbor); + if (bal.vdir == UP_0) { + currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); + newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0 - spacing - currentNode.margin.bottom - currentNode.size_0.y_0 - $doubleValue(bal.innerShift[currentNode.id_0]); + if (isInitialAssignment) { + isInitialAssignment = false; + bal.y_0[root.id_0] = $wnd.Math.min(newPosition, thresh); + } + else { + bal.y_0[root.id_0] = $wnd.Math.min(currentBlockPosition, $wnd.Math.min(newPosition, thresh)); + } + } + else { + currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); + newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing + currentNode.margin.top_0 - $doubleValue(bal.innerShift[currentNode.id_0]); + if (isInitialAssignment) { + isInitialAssignment = false; + bal.y_0[root.id_0] = $wnd.Math.max(newPosition, thresh); + } + else { + bal.y_0[root.id_0] = $wnd.Math.max(currentBlockPosition, $wnd.Math.max(newPosition, thresh)); + } + } + } + else { + spacing = $doubleValue(castToDouble($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + sinkNode = $getOrCreateClassNode(this$static, bal.sink[root.id_0]); + neighborSink = $getOrCreateClassNode(this$static, bal.sink[neighborRoot.id_0]); + if (bal.vdir == UP_0) { + requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) + currentNode.size_0.y_0 + currentNode.margin.bottom + spacing - ($doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0); + $addEdge(sinkNode, neighborSink, requiredSpace); + } + else { + requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) - currentNode.margin.top_0 - $doubleValue(bal.y_0[neighborRoot.id_0]) - $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.size_0.y_0 - neighbor.margin.bottom - spacing; + $addEdge(sinkNode, neighborSink, requiredSpace); + } + } + } + else { + thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); + } + currentNode = bal.align_0[currentNode.id_0]; + } + while (currentNode != root); + $finishBlock(this$static.threshStrategy, root); +} + +function $placeClasses(this$static, bal){ + var e, e$iterator, entry, n, n$iterator, n$iterator0, outerIter, outerIter0, sinks; + sinks = new LinkedList; + for (n$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); n$iterator0.val$outerIter2.hasNext_0();) { + n = (entry = castTo(n$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); + n.indegree == 0 && ($addNode_0(sinks, n, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + n = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 458); + n.classShift == null && (n.classShift = 0); + for (e$iterator = new ArrayList$1(n.outgoing); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 654); + e.target.classShift == null?(e.target.classShift = $doubleValue(n.classShift) + e.separation):bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(e.target.classShift = $wnd.Math.min($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)):(e.target.classShift = $wnd.Math.max($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)); + --e.target.indegree; + e.target.indegree == 0 && $add_7(sinks, e.target); + } + } + for (n$iterator = (outerIter = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); n$iterator.val$outerIter2.hasNext_0();) { + n = (entry = castTo(n$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); + bal.shift_0[n.node.id_0] = n.classShift; + } +} + +function BKCompactor(layeredGraph, ni){ + this.sinkNodes = new HashMap; + this.layeredGraph = layeredGraph; + this.ni = ni; + this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0))) === maskUndefined(($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS))?(this.threshStrategy = new ThresholdStrategy$SimpleThresholdStrategy):(this.threshStrategy = new ThresholdStrategy$NullThresholdStrategy); +} + +defineClass(1637, 1, {}, BKCompactor); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor', 1637); +function BKCompactor$ClassEdge(){ +} + +defineClass(654, 1, {654:1}, BKCompactor$ClassEdge); +_.separation = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassEdge', 654); +function $addEdge(this$static, target, separation){ + var se; + se = new BKCompactor$ClassEdge; + se.target = target; + se.separation = separation; + ++target.indegree; + $add_3(this$static.outgoing, se); +} + +function BKCompactor$ClassNode(){ + this.outgoing = new ArrayList; +} + +defineClass(458, 1, {458:1}, BKCompactor$ClassNode); +_.classShift = null; +_.indegree = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassNode', 458); +function $clinit_BKNodePlacer(){ + $clinit_BKNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_3 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $checkOrderConstraint(layeredGraph, bal, monitor){ + var bottom, feasible, layer, layer$iterator, node, node$iterator, pos, previous, top_0; + feasible = true; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + pos = $intern_60; + previous = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + top_0 = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) - node.margin.top_0; + bottom = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; + if (top_0 > pos && bottom > pos) { + previous = node; + pos = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; + } + else { + feasible = false; + monitor.recordLogs && $log_2(monitor, 'bk node placement breaks on ' + node + ' which should have been after ' + previous); + break; + } + } + if (!feasible) { + break; + } + } + monitor.recordLogs && $log_2(monitor, bal + ' is feasible: ' + feasible); + return feasible; +} + +function $createBalancedLayout(this$static, layouts, nodeCount){ + var bal, balanced, calculatedYs, i, i0, i1, i2, l, l$iterator, layer, layer$iterator, max_0, min_0, minWidthLayout, n, n$iterator, noOfLayouts, node, node$iterator, nodePosY, shift_0, width_0; + noOfLayouts = layouts.array.length; + balanced = new BKAlignedLayout(this$static.lGraph, nodeCount, null, null); + width_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + minWidthLayout = 0; + for (i0 = 0; i0 < noOfLayouts; i0++) { + min_0[i0] = $intern_0; + max_0[i0] = $intern_42; + } + for (i1 = 0; i1 < noOfLayouts; i1++) { + bal = (checkCriticalElementIndex(i1, layouts.array.length) , castTo(layouts.array[i1], 180)); + width_0[i1] = $layoutSize(bal); + width_0[minWidthLayout] > width_0[i1] && (minWidthLayout = i1); + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + nodePosY = $doubleValue(bal.y_0[n.id_0]) + $doubleValue(bal.innerShift[n.id_0]); + min_0[i1] = $wnd.Math.min(min_0[i1], nodePosY); + max_0[i1] = $wnd.Math.max(max_0[i1], nodePosY + n.size_0.y_0); + } + } + } + shift_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + for (i2 = 0; i2 < noOfLayouts; i2++) { + (checkCriticalElementIndex(i2, layouts.array.length) , castTo(layouts.array[i2], 180)).vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(shift_0[i2] = min_0[minWidthLayout] - min_0[i2]):(shift_0[i2] = max_0[minWidthLayout] - max_0[i2]); + } + calculatedYs = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + for (layer$iterator = new ArrayList$1(this$static.lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (i = 0; i < noOfLayouts; i++) { + calculatedYs[i] = $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).y_0[node.id_0]) + $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).innerShift[node.id_0]) + shift_0[i]; + } + calculatedYs.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); + balanced.y_0[node.id_0] = (calculatedYs[1] + calculatedYs[2]) / 2; + balanced.innerShift[node.id_0] = 0; + } + } + return balanced; +} + +function $incidentToInnerSegment(this$static, node, layer1, layer2){ + var edge, edge$iterator, sourceNodeType; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + sourceNodeType = edge.source.owner.type_0; + if (sourceNodeType == LONG_EDGE && this$static.ni.layerIndex[edge.source.owner.layer.id_0] == layer2 && this$static.ni.layerIndex[node.layer.id_0] == layer1) { + return true; + } + } + } + return false; +} + +function $markConflicts(this$static, layeredGraph){ + var currentLayer, i, k, k_0, k_1, l, l_1, layer, layer$iterator, layerIndex, layerIterator, layerSize, nodeIterator, numberOfLayers, upperNeighbor, upperNeighbor$iterator, v_l, v_l_i; + numberOfLayers = layeredGraph.layers.array.length; + if (numberOfLayers < 3) { + return; + } + layerSize = initUnidimensionalArray(I_classLit, $intern_48, 25, numberOfLayers, 15, 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerSize[layerIndex++] = layer.nodes.array.length; + } + layerIterator = new AbstractList$ListIteratorImpl(layeredGraph.layers, 2); + for (i = 1; i < numberOfLayers - 1; i++) { + currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); + nodeIterator = new ArrayList$1(currentLayer.nodes); + k_0 = 0; + l = 0; + for (l_1 = 0; l_1 < layerSize[i + 1]; l_1++) { + v_l_i = castTo($next_7(nodeIterator), 10); + if (l_1 == layerSize[i + 1] - 1 || $incidentToInnerSegment(this$static, v_l_i, i + 1, i)) { + k_1 = layerSize[i] - 1; + $incidentToInnerSegment(this$static, v_l_i, i + 1, i) && (k_1 = this$static.ni.nodeIndex[castTo(castTo(castTo($get_11(this$static.ni.leftNeighbors, v_l_i.id_0), 15).get_0(0), 46).first, 10).id_0]); + while (l <= l_1) { + v_l = castTo($get_11(currentLayer.nodes, l), 10); + if (!$incidentToInnerSegment(this$static, v_l, i + 1, i)) { + for (upperNeighbor$iterator = castTo($get_11(this$static.ni.leftNeighbors, v_l.id_0), 15).iterator_0(); upperNeighbor$iterator.hasNext_0();) { + upperNeighbor = castTo(upperNeighbor$iterator.next_1(), 46); + k = this$static.ni.nodeIndex[castTo(upperNeighbor.first, 10).id_0]; + (k < k_0 || k > k_1) && $add_6(this$static.markedEdges, castTo(upperNeighbor.second, 17)); + } + } + ++l; + } + k_0 = k_1; + } + } + } +} + +function $process_74(this$static, layeredGraph, monitor){ + var align_0, aligner, bal, bal$iterator, bal$iterator0, bal$iterator1, bal$iterator2, balanced, chosenLayout, compacter, favorStraightEdges, layer, layer$iterator, layouts, leftdown, leftup, node, node$iterator, rightdown, rightup; + $begin(monitor, 'Brandes & Koepf node placement', 1); + this$static.lGraph = layeredGraph; + this$static.ni = buildFor(layeredGraph); + align_0 = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)), 274); + favorStraightEdges = $booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))); + this$static.produceBalancedLayout = align_0 == ($clinit_FixedAlignment() , NONE_4) && !favorStraightEdges || align_0 == BALANCED; + $markConflicts(this$static, layeredGraph); + rightdown = null; + rightup = null; + leftdown = null; + leftup = null; + layouts = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + switch (castTo($getProperty(layeredGraph, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0), 274).ordinal) { + case 3: + leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + layouts.array[layouts.array.length] = leftdown; + break; + case 1: + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + layouts.array[layouts.array.length] = leftup; + break; + case 4: + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + layouts.array[layouts.array.length] = rightdown; + break; + case 2: + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + layouts.array[layouts.array.length] = rightup; + break; + default:leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, LEFT_3); + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, DOWN_0, RIGHT_3); + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, RIGHT_3); + layouts.array[layouts.array.length] = rightdown; + layouts.array[layouts.array.length] = rightup; + layouts.array[layouts.array.length] = leftdown; + layouts.array[layouts.array.length] = leftup; + } + aligner = new BKAligner(layeredGraph, this$static.ni); + for (bal$iterator0 = new ArrayList$1(layouts); bal$iterator0.i < bal$iterator0.this$01.array.length;) { + bal = castTo($next_7(bal$iterator0), 180); + $verticalAlignment(aligner, bal, this$static.markedEdges); + $insideBlockShift(bal); + } + compacter = new BKCompactor(layeredGraph, this$static.ni); + for (bal$iterator1 = new ArrayList$1(layouts); bal$iterator1.i < bal$iterator1.this$01.array.length;) { + bal = castTo($next_7(bal$iterator1), 180); + $horizontalCompaction(compacter, bal); + } + if (monitor.recordLogs) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_7(bal$iterator2), 180); + $log_2(monitor, bal + ' size is ' + $layoutSize(bal)); + } + } + chosenLayout = null; + if (this$static.produceBalancedLayout) { + balanced = $createBalancedLayout(this$static, layouts, this$static.ni.nodeCount); + $checkOrderConstraint(layeredGraph, balanced, monitor) && (chosenLayout = balanced); + } + if (!chosenLayout) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_7(bal$iterator2), 180); + $checkOrderConstraint(layeredGraph, bal, monitor) && (!chosenLayout || $layoutSize(chosenLayout) > $layoutSize(bal)) && (chosenLayout = bal); + } + } + !chosenLayout && (chosenLayout = (checkCriticalElementIndex(0, layouts.array.length) , castTo(layouts.array[0], 180))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 = $doubleValue(chosenLayout.y_0[node.id_0]) + $doubleValue(chosenLayout.innerShift[node.id_0]); + } + } + if (monitor.recordLogs) { + $log_2(monitor, 'Chosen node placement: ' + chosenLayout); + $log_2(monitor, 'Blocks: ' + getBlocks(chosenLayout)); + $log_2(monitor, 'Classes: ' + getClasses(chosenLayout, monitor)); + $log_2(monitor, 'Marked edges: ' + this$static.markedEdges); + } + for (bal$iterator = new ArrayList$1(layouts); bal$iterator.i < bal$iterator.this$01.array.length;) { + bal = castTo($next_7(bal$iterator), 180); + bal.root = null; + bal.blockSize = null; + bal.align_0 = null; + bal.innerShift = null; + bal.sink = null; + bal.shift_0 = null; + bal.y_0 = null; + } + $cleanup(this$static.ni); + this$static.markedEdges.map_0.clear_0(); + $done_0(monitor); +} + +function BKNodePlacer(){ + $clinit_BKNodePlacer(); + this.markedEdges = new HashSet; +} + +function getBlocks(bal){ + $clinit_BKNodePlacer(); + var blockContents, blocks, layer, layer$iterator, node, node$iterator, root; + blocks = new LinkedHashMap; + for (layer$iterator = new ArrayList$1(bal.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + root = bal.root[node.id_0]; + blockContents = castTo($get_16(blocks, root), 15); + if (!blockContents) { + blockContents = new ArrayList; + $put_11(blocks, root, blockContents); + } + blockContents.add_2(node); + } + } + return blocks; +} + +function getClasses(bal, monitor){ + var classContents, classes, root, root$iterator, roots, sink; + classes = new LinkedHashMap; + roots = newLinkedHashSet(new Arrays$ArrayList(bal.root)); + for (root$iterator = roots.map_0.keySet_0().iterator_0(); root$iterator.hasNext_0();) { + root = castTo(root$iterator.next_1(), 10); + if (!root) { + $log_2(monitor, 'There are no classes in a balanced layout.'); + break; + } + sink = bal.sink[root.id_0]; + classContents = castTo($get_16(classes, sink), 15); + if (!classContents) { + classContents = new ArrayList; + $put_11(classes, sink, classContents); + } + classContents.add_2(root); + } + return classes; +} + +function getEdge(source, target){ + $clinit_BKNodePlacer(); + var edge, edge$iterator; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.target.owner == target || edge.source.owner == target) { + return edge; + } + } + return null; +} + +defineClass(1407, 1, $intern_113, BKNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_16(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_3:null; +} +; +_.process = function process_71(layeredGraph, monitor){ + $process_74(this, castTo(layeredGraph, 37), monitor); +} +; +_.produceBalancedLayout = false; +var HIERARCHY_PROCESSING_ADDITIONS_3; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKNodePlacer', 1407); +function $cleanup(this$static){ + this$static.layerIndex = null; + this$static.nodeIndex = null; + this$static.leftNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.rightNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.neighborComparator = null; +} + +function NeighborhoodInformation(){ +} + +function buildFor(graph){ + var l, l$iterator, lId, lIndex, layer, layer$iterator, n, n$iterator, nId, nIndex, ni; + ni = new NeighborhoodInformation; + ni.nodeCount = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + ni.nodeCount += layer.nodes.array.length; + } + lId = 0; + lIndex = 0; + ni.layerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length, 15, 1); + nId = 0; + nIndex = 0; + ni.nodeIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, ni.nodeCount, 15, 1); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + l.id_0 = lId++; + ni.layerIndex[l.id_0] = lIndex++; + nIndex = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = nId++; + ni.nodeIndex[n.id_0] = nIndex++; + } + } + ni.neighborComparator = new NeighborhoodInformation$NeighborComparator(ni); + ni.leftNeighbors = newArrayListWithCapacity(ni.nodeCount); + determineAllLeftNeighbors(ni, graph); + ni.rightNeighbors = newArrayListWithCapacity(ni.nodeCount); + determineAllRightNeighbors(ni, graph); + return ni; +} + +function determineAllLeftNeighbors(ni, graph){ + var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + result = new ArrayList; + maxPriority = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + edgePrio == maxPriority && $add_3(result, new Pair(edge.source.owner, edge)); + } + $clinit_Collections(); + $sort(result, ni.neighborComparator); + $add_2(ni.leftNeighbors, n.id_0, result); + } + } +} + +function determineAllRightNeighbors(ni, graph){ + var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + result = new ArrayList; + maxPriority = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + edgePrio == maxPriority && $add_3(result, new Pair(edge.target.owner, edge)); + } + $clinit_Collections(); + $sort(result, ni.neighborComparator); + $add_2(ni.rightNeighbors, n.id_0, result); + } + } +} + +defineClass(1635, 1, {}, NeighborhoodInformation); +_.nodeCount = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation', 1635); +function $compare_21(this$static, o1, o2){ + var cmp; + cmp = this$static.this$01.nodeIndex[castTo(o1.first, 10).id_0] - this$static.this$01.nodeIndex[castTo(o2.first, 10).id_0]; + return round_int(signum(cmp)); +} + +function NeighborhoodInformation$NeighborComparator(this$0){ + this.this$01 = this$0; +} + +defineClass(1636, 1, $intern_88, NeighborhoodInformation$NeighborComparator); +_.compare_1 = function compare_75(o1, o2){ + return $compare_21(this, castTo(o1, 46), castTo(o2, 46)); +} +; +_.equals_0 = function equals_160(other){ + return this === other; +} +; +_.reversed = function reversed_67(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation$NeighborComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation/NeighborComparator', 1636); +function $finishBlock(this$static, n){ + $add_6(this$static.blockFinished, n); +} + +function $getOther_3(edge, n){ + if (edge.source.owner == n) { + return edge.target.owner; + } + else if (edge.target.owner == n) { + return edge.source.owner; + } + else { + throw toJs(new IllegalArgumentException_0('Node ' + n + ' is neither source nor target of edge ' + edge)); + } +} + +function $init_0(this$static, theBal, theNi){ + this$static.bal = theBal; + this$static.ni = theNi; + this$static.blockFinished.map_0.clear_0(); + $reset_0(this$static.postProcessablesQueue); + this$static.postProcessablesStack.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function ThresholdStrategy(){ + this.blockFinished = new HashSet; + this.postProcessablesQueue = new LinkedList; + this.postProcessablesStack = new Stack; +} + +defineClass(808, 1, {}); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy', 808); +function ThresholdStrategy$NullThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1763, 808, {}, ThresholdStrategy$NullThresholdStrategy); +_.calculateThreshold = function calculateThreshold(oldThresh, blockRoot, currentNode){ + return this.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; +} +; +_.postProcess = function postProcess(){ +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$NullThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/NullThresholdStrategy', 1763); +function ThresholdStrategy$Postprocessable(free, isRoot){ + this.free = free; + this.isRoot = isRoot; +} + +defineClass(579, 1, {579:1}, ThresholdStrategy$Postprocessable); +_.hasEdges = false; +_.isRoot = false; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$Postprocessable_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/Postprocessable', 579); +function $getBound(this$static, blockNode, isRoot){ + var invalid, left, otherPort, otherRoot, pick, right, rootPort, threshold; + invalid = this$static.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; + pick = $pickEdge(this$static, new ThresholdStrategy$Postprocessable(blockNode, isRoot)); + if (!pick.edge && pick.hasEdges) { + $add_7(this$static.postProcessablesQueue, pick); + return invalid; + } + else if (pick.edge) { + left = pick.edge.source; + right = pick.edge.target; + if (isRoot) { + rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?right:left; + otherPort = this$static.bal.hdir == RIGHT_3?left:right; + otherRoot = this$static.bal.root[otherPort.owner.id_0]; + threshold = $doubleValue(this$static.bal.y_0[otherRoot.id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; + } + else { + rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?right:left; + otherPort = this$static.bal.hdir == LEFT_3?left:right; + threshold = $doubleValue(this$static.bal.y_0[this$static.bal.root[otherPort.owner.id_0].id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; + } + this$static.bal.su[this$static.bal.root[left.owner.id_0].id_0] = ($clinit_Boolean() , true); + this$static.bal.su[this$static.bal.root[right.owner.id_0].id_0] = true; + return threshold; + } + return invalid; +} + +function $pickEdge(this$static, pp){ + var e, e$iterator, edges, hasEdges, onlyDummies; + pp.isRoot?(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)):(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)); + hasEdges = false; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + onlyDummies = $booleanValue(this$static.bal.od[this$static.bal.root[pp.free.id_0].id_0]); + if (!onlyDummies && !$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + continue; + } + if ($booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0]) || $booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0])) { + continue; + } + hasEdges = true; + if ($contains_6(this$static.blockFinished, this$static.bal.root[$getOther_3(e, pp.free).id_0])) { + pp.hasEdges = true; + pp.edge = e; + return pp; + } + } + pp.hasEdges = hasEdges; + pp.edge = null; + return pp; +} + +function $process_75(this$static, pp){ + var availableSpace, block, delta, edge, fix; + edge = pp.edge; + edge.source.owner == pp.free?(fix = edge.target):(fix = edge.source); + edge.source.owner == pp.free?(block = edge.source):(block = edge.target); + delta = $calculateDelta(this$static.bal, fix, block); + if (delta > 0 && delta < $intern_98) { + availableSpace = $checkSpaceAbove(this$static.bal, block.owner, delta, this$static.ni); + $shiftBlock(this$static.bal, block.owner, -availableSpace); + return availableSpace > 0; + } + else if (delta < 0 && -delta < $intern_98) { + availableSpace = $checkSpaceBelow(this$static.bal, block.owner, -delta, this$static.ni); + $shiftBlock(this$static.bal, block.owner, availableSpace); + return availableSpace > 0; + } + return false; +} + +function ThresholdStrategy$SimpleThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1764, 808, {}, ThresholdStrategy$SimpleThresholdStrategy); +_.calculateThreshold = function calculateThreshold_0(oldThresh, blockRoot, currentNode){ + var isLast, isRoot, t; + isRoot = blockRoot == currentNode; + isLast = this.bal.align_0[currentNode.id_0] == blockRoot; + if (!(isRoot || isLast)) { + return oldThresh; + } + t = oldThresh; + if (this.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)) { + isRoot && (t = $getBound(this, blockRoot, true)); + !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); + } + else { + isRoot && (t = $getBound(this, blockRoot, true)); + !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); + } + return t; +} +; +_.postProcess = function postProcess_0(){ + var edge, moved, onlyDummies, pick, pp; + while (this.postProcessablesQueue.size_0 != 0) { + pp = castTo($poll(this.postProcessablesQueue), 579); + pick = $pickEdge(this, pp); + if (!pick.edge) { + continue; + } + edge = pick.edge; + onlyDummies = $booleanValue(this.bal.od[this.bal.root[pp.free.id_0].id_0]); + if (!onlyDummies && !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + moved = $process_75(this, pp); + moved || $push(this.postProcessablesStack, pp); + } + while (this.postProcessablesStack.arrayList.array.length != 0) { + $process_75(this, castTo($pop(this.postProcessablesStack), 579)); + } +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$SimpleThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/SimpleThresholdStrategy', 1764); +function $clinit_EdgeRouterFactory(){ + $clinit_EdgeRouterFactory = emptyMethod; + factoryCache = new EnumMap(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit); +} + +function $create_7(this$static){ + switch (this$static.edgeRoutingStrategy.ordinal) { + case 1: + return new PolylineEdgeRouter; + case 3: + return new SplineEdgeRouter; + default:return new OrthogonalEdgeRouter; + } +} + +function EdgeRouterFactory(){ +} + +function factoryFor(edgeRoutingStrategy){ + $clinit_EdgeRouterFactory(); + var factory; + if (!$containsKey_5(factoryCache, edgeRoutingStrategy)) { + factory = new EdgeRouterFactory; + factory.edgeRoutingStrategy = edgeRoutingStrategy; + $put_8(factoryCache, edgeRoutingStrategy, factory); + } + return castTo($get_14(factoryCache, edgeRoutingStrategy), 635); +} + +defineClass(635, 1, {635:1, 246:1, 234:1}, EdgeRouterFactory); +_.create_1 = function create_17(){ + return $create_7(this); +} +; +_.create_2 = function create_16(){ + return $create_7(this); +} +; +var factoryCache; +var Lorg_eclipse_elk_alg_layered_p5edges_EdgeRouterFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'EdgeRouterFactory', 635); +function $clinit_OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter = emptyMethod; + HYPEREDGE_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , HYPEREDGE_DUMMY_MERGER)); + INVERTED_PORT_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + HIERARCHICAL_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR), P4_NODE_PLACEMENT, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR), P5_EDGE_ROUTING, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER); + SELF_LOOP_PROCESSING_ADDITIONS = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + HYPERNODE_PROCESSING_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HYPERNODE_PROCESSOR); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + END_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $getLayoutProcessorConfiguration_0(graph){ + var configuration, graphProperties; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = new LayoutProcessorConfiguration; + if (graphProperties.contains(($clinit_GraphProperties() , HYPEREDGES))) { + $addAll_6(configuration, HYPEREDGE_PROCESSING_ADDITIONS); + $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); + } + if (graphProperties.contains(NON_FREE_PORTS) || $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , FEEDBACK_EDGES_0))))) { + $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); + graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS); + } + graphProperties.contains(EXTERNAL_PORTS) && $addAll_6(configuration, HIERARCHICAL_PORT_PROCESSING_ADDITIONS); + graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS); + graphProperties.contains(HYPERNODES) && $addAll_6(configuration, HYPERNODE_PROCESSING_ADDITIONS); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS); + return configuration; +} + +function $process_76(layeredGraph, monitor){ + var edgeEdgeSpacing, edgeNodeSpacing, isLeftLayerExternal, isRightLayerExternal, layerIter, leftLayer, leftLayerNodes, nodeNodeSpacing, rightLayer, rightLayerNodes, routingGenerator, routingWidth, slotsCount, startPos, xpos; + $begin(monitor, 'Orthogonal edge routing', 1); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); + edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + routingGenerator = new OrthogonalRoutingGenerator(0, edgeEdgeSpacing); + xpos = 0; + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + leftLayer = null; + rightLayer = null; + leftLayerNodes = null; + rightLayerNodes = null; + do { + rightLayer = layerIter.i < layerIter.this$01_0.size_1()?(checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)):null; + rightLayerNodes = !rightLayer?null:rightLayer.nodes; + if (leftLayer) { + placeNodesHorizontally(leftLayer, xpos); + xpos += leftLayer.size_0.x_0; + } + startPos = !leftLayer?xpos:xpos + edgeNodeSpacing; + slotsCount = $routeEdges_0(routingGenerator, layeredGraph, leftLayerNodes, rightLayerNodes, startPos); + isLeftLayerExternal = !leftLayer || all_0(leftLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + isRightLayerExternal = !rightLayer || all_0(rightLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + if (slotsCount > 0) { + routingWidth = (slotsCount - 1) * edgeEdgeSpacing; + !!leftLayer && (routingWidth += edgeNodeSpacing); + !!rightLayer && (routingWidth += edgeNodeSpacing); + routingWidth < nodeNodeSpacing && !isLeftLayerExternal && !isRightLayerExternal && (routingWidth = nodeNodeSpacing); + xpos += routingWidth; + } + else + !isLeftLayerExternal && !isRightLayerExternal && (xpos += nodeNodeSpacing); + leftLayer = rightLayer; + leftLayerNodes = rightLayerNodes; + } + while (rightLayer); + layeredGraph.size_0.x_0 = xpos; + $done_0(monitor); +} + +function OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter(); +} + +defineClass(1458, 1, $intern_113, OrthogonalEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_17(graph){ + return $getLayoutProcessorConfiguration_0(castTo(graph, 37)); +} +; +_.process = function process_72(layeredGraph, monitor){ + $process_76(castTo(layeredGraph, 37), monitor); +} +; +var CENTER_EDGE_LABEL_PROCESSING_ADDITIONS, END_EDGE_LABEL_PROCESSING_ADDITIONS, HIERARCHICAL_PORT_PROCESSING_ADDITIONS, HYPEREDGE_PROCESSING_ADDITIONS, HYPERNODE_PROCESSING_ADDITIONS, INVERTED_PORT_PROCESSING_ADDITIONS, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS, SELF_LOOP_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p5edges_OrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'OrthogonalEdgeRouter', 1458); +function $clinit_PolylineEdgeRouter(){ + $clinit_PolylineEdgeRouter = emptyMethod; + PRED_EXTERNAL_WEST_OR_EAST_PORT = new PolylineEdgeRouter$1; + BASELINE_PROCESSOR_CONFIGURATION = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , INVERTED_PORT_PROCESSOR)); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0 = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + SELF_LOOP_PROCESSING_ADDITIONS_0 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + END_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $addBendPoint(this$static, edge, bendPoint, addJunctionPoint, currPort){ + var jpoint, junctionPoints; + if ((!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || !$equals_9(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [currPort.owner.pos, currPort.pos, currPort.anchor])), bendPoint)) && !$isSelfLoop(edge)) { + edge.source == currPort?$add_0(edge.bendPoints, 0, new KVector_2(bendPoint)):$add_7(edge.bendPoints, new KVector_2(bendPoint)); + if (addJunctionPoint && !$contains_6(this$static.createdJunctionPoints, bendPoint)) { + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); + } + jpoint = new KVector_2(bendPoint); + $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); + $add_6(this$static.createdJunctionPoints, jpoint); + } + } +} + +function $calculateWestInLayerEdgeYDiff(layer){ + var maxYDiff, node, node$iterator, outgoingEdge, outgoingEdge$iterator, sourcePos, targetPos; + maxYDiff = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); + if (layer == outgoingEdge.target.owner.layer && outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { + sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; + maxYDiff = $wnd.Math.max(maxYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + } + } + return maxYDiff; +} + +function $getLayoutProcessorConfiguration_1(graph){ + var configuration, graphProperties; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = createFrom_0(BASELINE_PROCESSOR_CONFIGURATION); + graphProperties.contains(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0); + graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_0); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_0); + return configuration; +} + +function $isInLayerDummy_0(node){ + var e, e$iterator; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + return true; + } + } + } + return false; +} + +function $process_77(this$static, layeredGraph, monitor){ + var edgeSpaceFac, edgeSpacing, externalLayer, layer, layerIter, layerSpacing, maxCurrOutputYDiff, maxVertDiff, node, node$iterator, nodeSpacing, outgoingEdge, outgoingEdge$iterator, slopedEdgeZoneWidth, sourcePos, targetPos, xpos, yDiff; + $begin(monitor, 'Polyline edge routing', 1); + slopedEdgeZoneWidth = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)))); + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + edgeSpaceFac = $wnd.Math.min(1, edgeSpacing / nodeSpacing); + xpos = 0; + layerSpacing = 0; + if (layeredGraph.layers.array.length != 0) { + yDiff = $calculateWestInLayerEdgeYDiff(castTo($get_11(layeredGraph.layers, 0), 29)); + xpos = 0.4 * edgeSpaceFac * yDiff; + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + externalLayer = all_0(layer, PRED_EXTERNAL_WEST_OR_EAST_PORT); + externalLayer && xpos > 0 && (xpos -= nodeSpacing); + placeNodesHorizontally(layer, xpos); + maxVertDiff = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + maxCurrOutputYDiff = 0; + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); + sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; + if (layer == outgoingEdge.target.owner.layer && !$isSelfLoop(outgoingEdge)) { + $processInLayerEdge(outgoingEdge, xpos, 0.4 * edgeSpaceFac * $wnd.Math.abs(sourcePos - targetPos)); + if (outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { + sourcePos = 0; + targetPos = 0; + } + } + maxCurrOutputYDiff = $wnd.Math.max(maxCurrOutputYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + switch (node.type_0.ordinal) { + case 0: + case 4: + case 1: + case 3: + case 5: + $processNode_6(this$static, node, xpos, slopedEdgeZoneWidth); + } + maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrOutputYDiff); + } + if (layerIter.i < layerIter.this$01_0.size_1()) { + yDiff = $calculateWestInLayerEdgeYDiff((checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29))); + maxVertDiff = $wnd.Math.max(maxVertDiff, yDiff); + checkCriticalElement(layerIter.i > 0); + layerIter.this$01.get_0(layerIter.last = --layerIter.i); + } + layerSpacing = 0.4 * edgeSpaceFac * maxVertDiff; + !externalLayer && layerIter.i < layerIter.this$01_0.size_1() && (layerSpacing += nodeSpacing); + xpos += layer.size_0.x_0 + layerSpacing; + } + this$static.createdJunctionPoints.map_0.clear_0(); + layeredGraph.size_0.x_0 = xpos; + $done_0(monitor); +} + +function $processInLayerEdge(edge, layerXPos, edgeSpacing){ + var bendPoint, midY, sourceAnchorY, sourcePort, targetPort; + sourcePort = edge.source; + targetPort = edge.target; + sourceAnchorY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; + midY = (sourceAnchorY + sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0) / 2; + bendPoint = null; + sourcePort.side == ($clinit_PortSide() , EAST_2)?(bendPoint = new KVector_1(layerXPos + sourcePort.owner.layer.size_0.x_0 + edgeSpacing, midY)):(bendPoint = new KVector_1(layerXPos - edgeSpacing, midY)); + $add_0(edge.bendPoints, 0, bendPoint); +} + +function $processNode_6(this$static, node, layerLeftXPos, maxAcceptableXDiff){ + var absolutePortAnchor, addJunctionPoint, bendPoint, correspondingPort, e, e$iterator, layerRightXPos, otherPort, port, port$iterator, xDistance; + layerRightXPos = layerLeftXPos + node.layer.size_0.x_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + absolutePortAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])); + if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + correspondingPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + absolutePortAnchor.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [correspondingPort.owner.pos, correspondingPort.pos, correspondingPort.anchor])).x_0; + node.pos.x_0 = absolutePortAnchor.x_0; + } + bendPoint = new KVector_1(0, absolutePortAnchor.y_0); + if (port.side == ($clinit_PortSide() , EAST_2)) { + bendPoint.x_0 = layerRightXPos; + } + else if (port.side == WEST_2) { + bendPoint.x_0 = layerLeftXPos; + } + else { + continue; + } + xDistance = $wnd.Math.abs(absolutePortAnchor.x_0 - bendPoint.x_0); + if (xDistance <= maxAcceptableXDiff && !$isInLayerDummy_0(node)) { + continue; + } + addJunctionPoint = port.outgoingEdges.array.length + port.incomingEdges.array.length > 1; + for (e$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(e$iterator.firstIterator) || $hasNext_3(e$iterator.secondIterator);) { + e = castTo($hasNext_3(e$iterator.firstIterator)?$next_7(e$iterator.firstIterator):$next_7(e$iterator.secondIterator), 17); + otherPort = e.source == port?e.target:e.source; + $wnd.Math.abs(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [otherPort.owner.pos, otherPort.pos, otherPort.anchor])).y_0 - bendPoint.y_0) > 1 && $addBendPoint(this$static, e, bendPoint, addJunctionPoint, port); + } + } +} + +function PolylineEdgeRouter(){ + $clinit_PolylineEdgeRouter(); + this.createdJunctionPoints = new HashSet; +} + +defineClass(1451, 1, $intern_113, PolylineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_18(graph){ + return $getLayoutProcessorConfiguration_1(castTo(graph, 37)); +} +; +_.process = function process_73(layeredGraph, monitor){ + $process_77(this, castTo(layeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSOR_CONFIGURATION, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0, END_EDGE_LABEL_PROCESSING_ADDITIONS_0, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0, PRED_EXTERNAL_WEST_OR_EAST_PORT, SELF_LOOP_PROCESSING_ADDITIONS_0; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter', 1451); +function $apply_18(node){ + var extPortSide; + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + return node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (extPortSide == ($clinit_PortSide() , WEST_2) || extPortSide == EAST_2); +} + +function PolylineEdgeRouter$1(){ +} + +defineClass(1452, 1, $intern_89, PolylineEdgeRouter$1); +_.apply_1 = function apply_152(node){ + return $apply_18(castTo(node, 10)); +} +; +_.equals_0 = function equals_161(other){ + return this === other; +} +; +_.test_0 = function test_102(input_0){ + return $apply_18(castTo(input_0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter/1', 1452); +function computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random){ + var entry, entryIterator, markBase, maxNode, maxOutflow, maxSegments, nextSinkMark, nextSourceMark, node, node$iterator, outflow, segment, segment$iterator, shiftBase, sink, source, unprocessed; + unprocessed = newTreeSet(segments); + maxSegments = new ArrayList; + markBase = segments.array.length; + nextSinkMark = markBase - 1; + nextSourceMark = markBase + 1; + while (unprocessed.map_0.size_0 != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 112)); + $remove_26(unprocessed.map_0, sink) != null; + sink.mark = nextSinkMark--; + updateNeighbors(sink, sources, sinks, criticalOnly); + } + while (sources.size_0 != 0) { + source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 112)); + $remove_26(unprocessed.map_0, source) != null; + source.mark = nextSourceMark++; + updateNeighbors(source, sources, sinks, criticalOnly); + } + maxOutflow = $intern_42; + for (segment$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(unprocessed.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(segment$iterator.val$entryIterator2.iter);) { + segment = (entry = $next_11(segment$iterator.val$entryIterator2) , castTo(entry.getKey(), 112)); + if (!criticalOnly && segment.criticalOutDepWeight > 0 && segment.criticalInDepWeight <= 0) { + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxSegments.array[maxSegments.array.length] = segment; + break; + } + outflow = segment.outDepWeight - segment.inDepWeight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxSegments.array[maxSegments.array.length] = segment; + } + } + if (maxSegments.array.length != 0) { + maxNode = castTo($get_11(maxSegments, $nextInt(random, maxSegments.array.length)), 112); + $remove_26(unprocessed.map_0, maxNode) != null; + maxNode.mark = nextSourceMark++; + updateNeighbors(maxNode, sources, sinks, criticalOnly); + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + shiftBase = segments.array.length + 1; + for (node$iterator = new ArrayList$1(segments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + node.mark < markBase && (node.mark = node.mark + shiftBase); + } +} + +function detectCycles(segments, criticalOnly, random){ + var outDependency, outDependency$iterator, result, sinks, source, source$iterator, sources; + result = new ArrayList; + sources = new LinkedList; + sinks = new LinkedList; + initialize_2(segments, sources, sinks, criticalOnly); + computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random); + for (source$iterator = new ArrayList$1(segments); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 112); + for (outDependency$iterator = new ArrayList$1(source.outgoingSegmentDependencies); outDependency$iterator.i < outDependency$iterator.this$01.array.length;) { + outDependency = castTo($next_7(outDependency$iterator), 129); + (!criticalOnly || outDependency.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) && source.mark > outDependency.target.mark && (result.array[result.array.length] = outDependency , true); + } + } + return result; +} + +function initialize_2(segments, sources, sinks, criticalOnly){ + var criticalInWeight, criticalOutWeight, inWeight, nextMark, outWeight, segment, segment$iterator; + nextMark = -1; + for (segment$iterator = new ArrayList$1(segments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 112); + segment.mark = nextMark--; + criticalInWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$0$Type), new HyperEdgeCycleDetector$lambda$1$Type)).sum); + criticalOutWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$2$Type), new HyperEdgeCycleDetector$lambda$3$Type)).sum); + inWeight = criticalInWeight; + outWeight = criticalOutWeight; + if (!criticalOnly) { + inWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$4$Type)).sum); + outWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$5$Type)).sum); + } + segment.inDepWeight = inWeight; + segment.criticalInDepWeight = criticalInWeight; + segment.outDepWeight = outWeight; + segment.criticalOutDepWeight = criticalOutWeight; + outWeight == 0?($addNode_0(sinks, segment, sinks.tail.prev, sinks.tail) , true):inWeight == 0 && ($addNode_0(sources, segment, sources.tail.prev, sources.tail) , true); + } +} + +function updateNeighbors(node, sources, sinks, criticalOnly){ + var dep, dep$iterator, dep$iterator0, source, target; + for (dep$iterator0 = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator0.i < dep$iterator0.this$01.array.length;) { + dep = castTo($next_7(dep$iterator0), 129); + if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { + target = dep.target; + if (target.mark < 0 && dep.weight > 0) { + $setInWeight(target, target.inDepWeight - dep.weight); + dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalInWeight(target, target.criticalInDepWeight - dep.weight); + target.inDepWeight <= 0 && target.outDepWeight > 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); + } + } + } + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { + source = dep.source; + if (source.mark < 0 && dep.weight > 0) { + $setOutWeight(source, source.outDepWeight - dep.weight); + dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalOutWeight(source, source.criticalOutDepWeight - dep.weight); + source.outDepWeight <= 0 && source.inDepWeight > 0 && ($addNode_0(sinks, source, sinks.tail.prev, sinks.tail) , true); + } + } + } +} + +function HyperEdgeCycleDetector$lambda$0$Type(){ +} + +defineClass(1809, 1, $intern_39, HyperEdgeCycleDetector$lambda$0$Type); +_.test_0 = function test_103(arg0){ + return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$0$Type', 1809); +function HyperEdgeCycleDetector$lambda$1$Type(){ +} + +defineClass(1810, 1, {}, HyperEdgeCycleDetector$lambda$1$Type); +_.applyAsInt = function applyAsInt(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$1$Type', 1810); +function HyperEdgeCycleDetector$lambda$2$Type(){ +} + +defineClass(1811, 1, $intern_39, HyperEdgeCycleDetector$lambda$2$Type); +_.test_0 = function test_104(arg0){ + return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$2$Type', 1811); +function HyperEdgeCycleDetector$lambda$3$Type(){ +} + +defineClass(1812, 1, {}, HyperEdgeCycleDetector$lambda$3$Type); +_.applyAsInt = function applyAsInt_0(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$3$Type', 1812); +function HyperEdgeCycleDetector$lambda$4$Type(){ +} + +defineClass(1813, 1, {}, HyperEdgeCycleDetector$lambda$4$Type); +_.applyAsInt = function applyAsInt_1(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$4$Type', 1813); +function HyperEdgeCycleDetector$lambda$5$Type(){ +} + +defineClass(1814, 1, {}, HyperEdgeCycleDetector$lambda$5$Type); +_.applyAsInt = function applyAsInt_2(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$5$Type', 1814); +function $addPortPositions(this$static, port, hyperEdgeSegmentMap){ + var otherPort, otherPort$iterator, portPos; + hyperEdgeSegmentMap.put(port, this$static); + $add_3(this$static.ports, port); + portPos = this$static.routingStrategy.getPortPositionOnHyperNode(port); + port.side == this$static.routingStrategy.getSourcePortSide()?insertSorted(this$static.incomingConnectionCoordinates, portPos):insertSorted(this$static.outgoingConnectionCoordinates, portPos); + $recomputeExtent(this$static); + for (otherPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port), new LPort$2(port)]))); $hasNext_1(otherPort$iterator);) { + otherPort = castTo($next_0(otherPort$iterator), 11); + hyperEdgeSegmentMap.containsKey(otherPort) || $addPortPositions(this$static, otherPort, hyperEdgeSegmentMap); + } +} + +function $compareTo_17(this$static, other){ + return this$static.mark - other.mark; +} + +function $recomputeExtent(this$static){ + this$static.startPosition = NaN; + this$static.endPosition = NaN; + $recomputeExtent_0(this$static, this$static.incomingConnectionCoordinates); + $recomputeExtent_0(this$static, this$static.outgoingConnectionCoordinates); +} + +function $recomputeExtent_0(this$static, positions){ + if (positions.size_0 != 0) { + isNaN(this$static.startPosition)?(this$static.startPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0)))):(this$static.startPosition = $wnd.Math.min(this$static.startPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0))))); + isNaN(this$static.endPosition)?(this$static.endPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0)))):(this$static.endPosition = $wnd.Math.max(this$static.endPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0))))); + } +} + +function $setCriticalInWeight(this$static, inWeight){ + this$static.criticalInDepWeight = inWeight; +} + +function $setCriticalOutWeight(this$static, outWeight){ + this$static.criticalOutDepWeight = outWeight; +} + +function $setInWeight(this$static, inWeight){ + this$static.inDepWeight = inWeight; +} + +function $setOutWeight(this$static, outWeight){ + this$static.outDepWeight = outWeight; +} + +function $setRoutingSlot_0(this$static, slot){ + this$static.routingSlot = slot; +} + +function $setSplitPartner(this$static, splitPartner){ + this$static.splitPartner = splitPartner; +} + +function $splitAt(this$static, splitPosition){ + this$static.splitPartner = new HyperEdgeSegment(this$static.routingStrategy); + $setSplitPartner(this$static.splitPartner, this$static); + $addAll(this$static.splitPartner.outgoingConnectionCoordinates, this$static.outgoingConnectionCoordinates); + $reset_0(this$static.outgoingConnectionCoordinates); + $add_7(this$static.outgoingConnectionCoordinates, splitPosition); + $add_7(this$static.splitPartner.incomingConnectionCoordinates, splitPosition); + $recomputeExtent(this$static); + $recomputeExtent(this$static.splitPartner); + while (this$static.incomingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.incomingSegmentDependencies, 0), 129)); + } + while (this$static.outgoingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.outgoingSegmentDependencies, 0), 129)); + } + return this$static.splitPartner; +} + +function HyperEdgeSegment(routingStrategy){ + this.ports = new ArrayList; + this.incomingConnectionCoordinates = new LinkedList; + this.outgoingConnectionCoordinates = new LinkedList; + this.outgoingSegmentDependencies = new ArrayList; + this.incomingSegmentDependencies = new ArrayList; + this.routingStrategy = routingStrategy; +} + +function insertSorted(list, value_0){ + var listIter, next; + listIter = $listIterator_2(list, 0); + while (listIter.currentNode != listIter.this$01.tail) { + next = $floatValue(castToDouble($next_10(listIter))); + if (next == value_0) { + return; + } + else if (next > value_0) { + $previous_0(listIter); + break; + } + } + $add_8(listIter, value_0); +} + +defineClass(112, 1, {35:1, 112:1}, HyperEdgeSegment); +_.compareTo_0 = function compareTo_18(other){ + return $compareTo_17(this, castTo(other, 112)); +} +; +_.equals_0 = function equals_162(object){ + var other; + if (instanceOf(object, 112)) { + other = castTo(object, 112); + return this.mark == other.mark; + } + return false; +} +; +_.hashCode_1 = function hashCode_63(){ + return this.mark; +} +; +_.toString_0 = function toString_104(){ + var builder, name_0, port, portIter; + builder = new StringBuilder_1('{'); + portIter = new ArrayList$1(this.ports); + while (portIter.i < portIter.this$01.array.length) { + port = castTo($next_7(portIter), 11); + name_0 = $getDesignation_2(port.owner); + name_0 == null && (name_0 = 'n' + $getIndex(port.owner)); + builder.string += '' + name_0; + portIter.i < portIter.this$01.array.length && (builder.string += ',' , builder); + } + builder.string += '}'; + return builder.string; +} +; +_.criticalInDepWeight = 0; +_.criticalOutDepWeight = 0; +_.endPosition = NaN; +_.inDepWeight = 0; +_.mark = 0; +_.outDepWeight = 0; +_.routingSlot = 0; +_.startPosition = NaN; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegment', 112); +function $remove_31(this$static){ + $setSource_1(this$static, null); + $setTarget_1(this$static, null); +} + +function $setSource_1(this$static, newSource){ + !!this$static.source && $remove_12(this$static.source.outgoingSegmentDependencies, this$static); + this$static.source = newSource; + !!this$static.source && $add_3(this$static.source.outgoingSegmentDependencies, this$static); +} + +function $setTarget_1(this$static, newTarget){ + !!this$static.target && $remove_12(this$static.target.incomingSegmentDependencies, this$static); + this$static.target = newTarget; + !!this$static.target && $add_3(this$static.target.incomingSegmentDependencies, this$static); +} + +function HyperEdgeSegmentDependency(type_0, source, target, weight){ + this.type_0 = type_0; + this.weight = weight; + $setSource_1(this, source); + $setTarget_1(this, target); +} + +defineClass(129, 1, {129:1}, HyperEdgeSegmentDependency); +_.toString_0 = function toString_105(){ + return this.source + '->' + this.target + ' (' + $name(this.type_0) + ')'; +} +; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency', 129); +function $clinit_HyperEdgeSegmentDependency$DependencyType(){ + $clinit_HyperEdgeSegmentDependency$DependencyType = emptyMethod; + REGULAR = new HyperEdgeSegmentDependency$DependencyType('REGULAR', 0); + CRITICAL = new HyperEdgeSegmentDependency$DependencyType('CRITICAL', 1); +} + +function HyperEdgeSegmentDependency$DependencyType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_71(name_0){ + $clinit_HyperEdgeSegmentDependency$DependencyType(); + return valueOf(($clinit_HyperEdgeSegmentDependency$DependencyType$Map() , $MAP_59), name_0); +} + +function values_77(){ + $clinit_HyperEdgeSegmentDependency$DependencyType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]); +} + +defineClass(520, 22, {3:1, 35:1, 22:1, 520:1}, HyperEdgeSegmentDependency$DependencyType); +var CRITICAL, REGULAR; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency/DependencyType', 520, Ljava_lang_Enum_2_classLit, values_77, valueOf_71); +function $clinit_HyperEdgeSegmentDependency$DependencyType$Map(){ + $clinit_HyperEdgeSegmentDependency$DependencyType$Map = emptyMethod; + $MAP_59 = createValueOfMap(($clinit_HyperEdgeSegmentDependency$DependencyType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]))); +} + +var $MAP_59; +function $chooseBestAreaIndex(segment, freeAreas, fromIndex, toIndex){ + var bestArea, bestAreaIndex, bestRating, currArea, currRating, i, splitPartner, splitSegment, splitSegments, newSplit, newSplitPartner; + bestAreaIndex = fromIndex; + if (fromIndex < toIndex) { + splitSegments = (newSplit = new HyperEdgeSegment(segment.routingStrategy) , newSplitPartner = new HyperEdgeSegment(segment.routingStrategy) , $addAll(newSplit.incomingConnectionCoordinates, segment.incomingConnectionCoordinates) , newSplit.splitBy = segment.splitBy , newSplit.splitPartner = newSplitPartner , $recomputeExtent(newSplit) , $addAll(newSplitPartner.outgoingConnectionCoordinates, segment.outgoingConnectionCoordinates) , newSplitPartner.splitPartner = newSplit , $recomputeExtent(newSplitPartner) , new Pair(newSplit, newSplitPartner)); + splitSegment = castTo(splitSegments.first, 112); + splitPartner = castTo(splitSegments.second, 112); + bestArea = (checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329)); + bestRating = $rateArea(segment, splitSegment, splitPartner, bestArea); + for (i = fromIndex + 1; i <= toIndex; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); + currRating = $rateArea(segment, splitSegment, splitPartner, currArea); + if ($isBetter(currArea, currRating, bestArea, bestRating)) { + bestArea = currArea; + bestRating = currRating; + } + } + } + return bestAreaIndex; +} + +function $computePositionToSplitAndUpdateFreeAreas(segment, freeAreas, criticalConflictThreshold){ + var bestAreaIndex, currArea, firstPossibleAreaIndex, i, lastPossibleAreaIndex, splitPosition; + firstPossibleAreaIndex = -1; + lastPossibleAreaIndex = -1; + for (i = 0; i < freeAreas.array.length; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); + if (currArea.startPosition > segment.endPosition) { + break; + } + else if (currArea.endPosition >= segment.startPosition) { + firstPossibleAreaIndex < 0 && (firstPossibleAreaIndex = i); + lastPossibleAreaIndex = i; + } + } + splitPosition = (segment.startPosition + segment.endPosition) / 2; + if (firstPossibleAreaIndex >= 0) { + bestAreaIndex = $chooseBestAreaIndex(segment, freeAreas, firstPossibleAreaIndex, lastPossibleAreaIndex); + splitPosition = center_0((checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329))); + $useArea(freeAreas, bestAreaIndex, criticalConflictThreshold); + } + return splitPosition; +} + +function $countCrossingsForSingleOrdering(left, right){ + return countCrossings(left.outgoingConnectionCoordinates, right.startPosition, right.endPosition) + countCrossings(right.incomingConnectionCoordinates, left.startPosition, left.endPosition); +} + +function $decideWhichSegmentsToSplit(dependencies){ + var dependency, dependency$iterator, segmentCausingSplit, segmentToSplit, segmentsToSplit, sourceSegment, targetSegment; + segmentsToSplit = new LinkedHashSet; + for (dependency$iterator = new ArrayList$1(dependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 129); + sourceSegment = dependency.source; + targetSegment = dependency.target; + if (segmentsToSplit.map_0.containsKey(sourceSegment) || segmentsToSplit.map_0.containsKey(targetSegment)) { + continue; + } + segmentToSplit = sourceSegment; + segmentCausingSplit = targetSegment; + if (sourceSegment.incomingConnectionCoordinates.size_0 + sourceSegment.outgoingConnectionCoordinates.size_0 > 2 && targetSegment.incomingConnectionCoordinates.size_0 + targetSegment.outgoingConnectionCoordinates.size_0 <= 2) { + segmentToSplit = targetSegment; + segmentCausingSplit = sourceSegment; + } + segmentsToSplit.map_0.put(segmentToSplit, segmentsToSplit); + segmentToSplit.splitBy = segmentCausingSplit; + } + return segmentsToSplit; +} + +function $findFreeAreas(segments, criticalConflictThreshold){ + var freeAreas, i, inCoordinates, outCoordinates, sortedCoordinates; + freeAreas = new ArrayList; + inCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$2$Type); + outCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$3$Type); + sortedCoordinates = $toArray_6($sorted($mapToDouble(concat_1(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Stream_2_classLit, 1), $intern_2, 833, 0, [inCoordinates, outCoordinates])), new HyperEdgeSegmentSplitter$lambda$4$Type))); + for (i = 1; i < sortedCoordinates.length; i++) { + sortedCoordinates[i] - sortedCoordinates[i - 1] >= 2 * criticalConflictThreshold && $add_3(freeAreas, new HyperEdgeSegmentSplitter$FreeArea(sortedCoordinates[i - 1] + criticalConflictThreshold, sortedCoordinates[i] - criticalConflictThreshold)); + } + return freeAreas; +} + +function $isBetter(currArea, currRating, bestArea, bestRating){ + if (currRating.crossings < bestRating.crossings) { + return true; + } + else if (currRating.crossings == bestRating.crossings) { + if (currRating.dependencies < bestRating.dependencies) { + return true; + } + else if (currRating.dependencies == bestRating.dependencies) { + if (currArea.size_0 > bestArea.size_0) { + return true; + } + } + } + return false; +} + +function $lambda$1_5(this$static, segments_1, freeAreas_2, criticalConflictThreshold_3, segment_3){ + var splitPosition; + splitPosition = $computePositionToSplitAndUpdateFreeAreas(segment_3, freeAreas_2, criticalConflictThreshold_3); + $add_3(segments_1, $splitAt(segment_3, splitPosition)); + $updateDependencies(this$static, segment_3, segments_1); +} + +function $rateArea(segment, splitSegment, splitPartner, area){ + var areaCentre, dependency, dependency$iterator, dependency$iterator0, otherSegment, rating; + areaCentre = (area.startPosition + area.endPosition) / 2; + $reset_0(splitSegment.outgoingConnectionCoordinates); + $add_7(splitSegment.outgoingConnectionCoordinates, areaCentre); + $reset_0(splitPartner.incomingConnectionCoordinates); + $add_7(splitPartner.incomingConnectionCoordinates, areaCentre); + rating = new HyperEdgeSegmentSplitter$AreaRating; + for (dependency$iterator0 = new ArrayList$1(segment.incomingSegmentDependencies); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator0), 129); + otherSegment = dependency.source; + $updateConsideringBothOrderings(rating, splitSegment, otherSegment); + $updateConsideringBothOrderings(rating, splitPartner, otherSegment); + } + for (dependency$iterator = new ArrayList$1(segment.outgoingSegmentDependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 129); + otherSegment = dependency.target; + $updateConsideringBothOrderings(rating, splitSegment, otherSegment); + $updateConsideringBothOrderings(rating, splitPartner, otherSegment); + } + rating.dependencies += 2; + rating.crossings += $countCrossingsForSingleOrdering(splitSegment, segment.splitBy); + rating.crossings += $countCrossingsForSingleOrdering(segment.splitBy, splitPartner); + return rating; +} + +function $splitSegments(this$static, dependenciesToResolve, segments, criticalConflictThreshold){ + var freeAreas, segmentsToSplit; + if (dependenciesToResolve.array.length == 0) { + return; + } + freeAreas = $findFreeAreas(segments, criticalConflictThreshold); + segmentsToSplit = $decideWhichSegmentsToSplit(dependenciesToResolve); + $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(segmentsToSplit, 1)), new HyperEdgeSegmentSplitter$lambda$0$Type), new HyperEdgeSegmentSplitter$lambda$1$Type(this$static, segments, freeAreas, criticalConflictThreshold)); +} + +function $updateConsideringBothOrderings(rating, s1, s2){ + var crossingsS1LeftOfS2, crossingsS2LeftOfS1; + crossingsS1LeftOfS2 = countCrossings(s1.outgoingConnectionCoordinates, s2.startPosition, s2.endPosition) + countCrossings(s2.incomingConnectionCoordinates, s1.startPosition, s1.endPosition); + crossingsS2LeftOfS1 = countCrossings(s2.outgoingConnectionCoordinates, s1.startPosition, s1.endPosition) + countCrossings(s1.incomingConnectionCoordinates, s2.startPosition, s2.endPosition); + if (crossingsS1LeftOfS2 == crossingsS2LeftOfS1) { + if (crossingsS1LeftOfS2 > 0) { + rating.dependencies += 2; + rating.crossings += crossingsS1LeftOfS2; + } + } + else { + rating.dependencies += 1; + rating.crossings += $wnd.Math.min(crossingsS1LeftOfS2, crossingsS2LeftOfS1); + } +} + +function $updateDependencies(this$static, segment, segments){ + var otherSegment, otherSegment$iterator, splitCausingSegment, splitPartner; + splitCausingSegment = segment.splitBy; + splitPartner = segment.splitPartner; + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), segment, splitCausingSegment, 1); + new HyperEdgeSegmentDependency(CRITICAL, splitCausingSegment, splitPartner, 1); + for (otherSegment$iterator = new ArrayList$1(segments); otherSegment$iterator.i < otherSegment$iterator.this$01.array.length;) { + otherSegment = castTo($next_7(otherSegment$iterator), 112); + if (otherSegment != splitCausingSegment && otherSegment != segment && otherSegment != splitPartner) { + $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, segment); + $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, splitPartner); + } + } +} + +function $useArea(freeAreas, usedAreaIndex, criticalConflictThreshold){ + var insertIndex, newArea1, newArea2, newEnd1, newStart2, oldArea, oldAreaCentre; + oldArea = (checkCriticalElementIndex(usedAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[usedAreaIndex], 329)); + $remove_11(freeAreas, usedAreaIndex); + if (oldArea.size_0 / 2 >= criticalConflictThreshold) { + insertIndex = usedAreaIndex; + oldAreaCentre = (oldArea.startPosition + oldArea.endPosition) / 2; + newEnd1 = oldAreaCentre - criticalConflictThreshold; + if (oldArea.startPosition <= oldAreaCentre - criticalConflictThreshold) { + newArea1 = new HyperEdgeSegmentSplitter$FreeArea(oldArea.startPosition, newEnd1); + $add_2(freeAreas, insertIndex++, newArea1); + } + newStart2 = oldAreaCentre + criticalConflictThreshold; + if (newStart2 <= oldArea.endPosition) { + newArea2 = new HyperEdgeSegmentSplitter$FreeArea(newStart2, oldArea.endPosition); + checkCriticalPositionIndex(insertIndex, freeAreas.array.length); + insertTo(freeAreas.array, insertIndex, newArea2); + } + } +} + +function HyperEdgeSegmentSplitter(routingGenerator){ + this.routingGenerator = routingGenerator; +} + +function center_0(a){ + return (a.startPosition + a.endPosition) / 2; +} + +function lambda$0_29(hes1_0, hes2_1){ + return compare_4(hes1_0.endPosition - hes1_0.startPosition, hes2_1.endPosition - hes2_1.startPosition); +} + +defineClass(1815, 1, {}, HyperEdgeSegmentSplitter); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter', 1815); +function HyperEdgeSegmentSplitter$AreaRating(){ + this.dependencies = 0; + this.crossings = 0; +} + +defineClass(1816, 1, {}, HyperEdgeSegmentSplitter$AreaRating); +_.crossings = 0; +_.dependencies = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$AreaRating_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/AreaRating', 1816); +function HyperEdgeSegmentSplitter$FreeArea(startPosition, endPosition){ + this.startPosition = startPosition; + this.endPosition = endPosition; + this.size_0 = endPosition - startPosition; +} + +defineClass(329, 1, {329:1}, HyperEdgeSegmentSplitter$FreeArea); +_.endPosition = 0; +_.size_0 = 0; +_.startPosition = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$FreeArea_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/FreeArea', 329); +function HyperEdgeSegmentSplitter$lambda$0$Type(){ +} + +defineClass(1817, 1, $intern_88, HyperEdgeSegmentSplitter$lambda$0$Type); +_.compare_1 = function compare_76(arg0, arg1){ + return lambda$0_29(castTo(arg0, 112), castTo(arg1, 112)); +} +; +_.equals_0 = function equals_163(other){ + return this === other; +} +; +_.reversed = function reversed_68(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$0$Type', 1817); +function HyperEdgeSegmentSplitter$lambda$1$Type($$outer_0, segments_1, freeAreas_2, criticalConflictThreshold_3){ + this.$$outer_0 = $$outer_0; + this.segments_1 = segments_1; + this.freeAreas_2 = freeAreas_2; + this.criticalConflictThreshold_3 = criticalConflictThreshold_3; +} + +defineClass(1818, 1, $intern_19, HyperEdgeSegmentSplitter$lambda$1$Type); +_.accept = function accept_129(arg0){ + $lambda$1_5(this.$$outer_0, this.segments_1, this.freeAreas_2, this.criticalConflictThreshold_3, castTo(arg0, 112)); +} +; +_.criticalConflictThreshold_3 = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$1$Type', 1818); +function HyperEdgeSegmentSplitter$lambda$2$Type(){ +} + +defineClass(1819, 1, {}, HyperEdgeSegmentSplitter$lambda$2$Type); +_.apply_0 = function apply_153(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$2$Type', 1819); +function HyperEdgeSegmentSplitter$lambda$3$Type(){ +} + +defineClass(1820, 1, {}, HyperEdgeSegmentSplitter$lambda$3$Type); +_.apply_0 = function apply_154(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$3$Type', 1820); +function HyperEdgeSegmentSplitter$lambda$4$Type(){ +} + +defineClass(1821, 1, {}, HyperEdgeSegmentSplitter$lambda$4$Type); +_.applyAsDouble = function applyAsDouble_3(arg0){ + return $doubleValue(castToDouble(arg0)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$4$Type', 1821); +function $countConflicts(this$static, posis1, posis2){ + var conflicts, hasMore, iter1, iter2, pos1, pos2; + conflicts = 0; + if (posis1.size_0 != 0 && posis2.size_0 != 0) { + iter1 = $listIterator_2(posis1, 0); + iter2 = $listIterator_2(posis2, 0); + pos1 = $doubleValue(castToDouble($next_10(iter1))); + pos2 = $doubleValue(castToDouble($next_10(iter2))); + hasMore = true; + do { + if (pos1 > pos2 - this$static.criticalConflictThreshold && pos1 < pos2 + this$static.criticalConflictThreshold) { + return -1; + } + else + pos1 > pos2 - this$static.conflictThreshold && pos1 < pos2 + this$static.conflictThreshold && ++conflicts; + pos1 <= pos2 && iter1.currentNode != iter1.this$01.tail?(pos1 = $doubleValue(castToDouble($next_10(iter1)))):pos2 <= pos1 && iter2.currentNode != iter2.this$01.tail?(pos2 = $doubleValue(castToDouble($next_10(iter2)))):(hasMore = false); + } + while (hasMore); + } + return conflicts; +} + +function $createDependencyIfNecessary(this$static, he1, he2){ + var conflicts1, conflicts2, criticalConflictsDetected, criticalDependencyCount, crossings1, crossings2, depValue1, depValue2; + if ($wnd.Math.abs(he1.startPosition - he1.endPosition) < $intern_101 || $wnd.Math.abs(he2.startPosition - he2.endPosition) < $intern_101) { + return 0; + } + conflicts1 = $countConflicts(this$static, he1.outgoingConnectionCoordinates, he2.incomingConnectionCoordinates); + conflicts2 = $countConflicts(this$static, he2.outgoingConnectionCoordinates, he1.incomingConnectionCoordinates); + criticalConflictsDetected = conflicts1 == -1 || conflicts2 == -1; + criticalDependencyCount = 0; + if (criticalConflictsDetected) { + if (conflicts1 == -1) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he2, he1, 1); + ++criticalDependencyCount; + } + if (conflicts2 == -1) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he1, he2, 1); + ++criticalDependencyCount; + } + } + else { + crossings1 = countCrossings(he1.outgoingConnectionCoordinates, he2.startPosition, he2.endPosition); + crossings1 += countCrossings(he2.incomingConnectionCoordinates, he1.startPosition, he1.endPosition); + crossings2 = countCrossings(he2.outgoingConnectionCoordinates, he1.startPosition, he1.endPosition); + crossings2 += countCrossings(he1.incomingConnectionCoordinates, he2.startPosition, he2.endPosition); + depValue1 = conflicts1 + 16 * crossings1; + depValue2 = conflicts2 + 16 * crossings2; + if (depValue1 < depValue2) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, depValue2 - depValue1); + } + else if (depValue1 > depValue2) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he2, he1, depValue1 - depValue2); + } + else if (depValue1 > 0 && depValue2 > 0) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, 0); + new HyperEdgeSegmentDependency(REGULAR, he2, he1, 0); + } + } + return criticalDependencyCount; +} + +function $createHyperEdgeSegments(this$static, nodes, portSide, hyperEdges, portToHyperEdgeSegmentMap){ + var hyperEdge, node, node$iterator, port, port$iterator; + if (nodes) { + for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + for (port$iterator = $getPorts_0(node, ($clinit_PortType() , OUTPUT), portSide).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + hyperEdge = castTo(getEntryValueOrNull($getEntry_0(portToHyperEdgeSegmentMap.hashCodeMap, port)), 112); + if (!hyperEdge) { + hyperEdge = new HyperEdgeSegment(this$static.routingStrategy); + hyperEdges.array[hyperEdges.array.length] = hyperEdge; + $addPortPositions(hyperEdge, port, portToHyperEdgeSegmentMap); + } + } + } + } +} + +function $minimumDifference(numberStream){ + var currentNumber, iter, minDifference, numbers, previousNumber; + numbers = castTo($collect_1($distinct($sorted_0(numberStream)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minDifference = $intern_98; + if (numbers.size_1() >= 2) { + iter = numbers.iterator_0(); + currentNumber = castToDouble(iter.next_1()); + while (iter.hasNext_0()) { + previousNumber = currentNumber; + currentNumber = castToDouble(iter.next_1()); + minDifference = $wnd.Math.min(minDifference, (checkCriticalNotNull(currentNumber) , currentNumber) - (checkCriticalNotNull(previousNumber) , previousNumber)); + } + } + return minDifference; +} + +function $routeEdges_0(this$static, layeredGraph, sourceLayerNodes, targetLayerNodes, startPos){ + var criticalDependencyCount, edgeSegments, firstIdx, firstSegment, node, node$iterator, portToEdgeSegmentMap, random, rankCount, secondIdx, minIncomingDistance, minOutgoingDistance, cycleDependencies; + portToEdgeSegmentMap = new HashMap; + edgeSegments = new ArrayList; + $createHyperEdgeSegments(this$static, sourceLayerNodes, this$static.routingStrategy.getSourcePortSide(), edgeSegments, portToEdgeSegmentMap); + $createHyperEdgeSegments(this$static, targetLayerNodes, this$static.routingStrategy.getTargetPortSide(), edgeSegments, portToEdgeSegmentMap); + this$static.criticalConflictThreshold = 0.2 * (minIncomingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$0$Type)) , minOutgoingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$1$Type)) , $wnd.Math.min(minIncomingDistance, minOutgoingDistance)); + criticalDependencyCount = 0; + for (firstIdx = 0; firstIdx < edgeSegments.array.length - 1; firstIdx++) { + firstSegment = (checkCriticalElementIndex(firstIdx, edgeSegments.array.length) , castTo(edgeSegments.array[firstIdx], 112)); + for (secondIdx = firstIdx + 1; secondIdx < edgeSegments.array.length; secondIdx++) { + criticalDependencyCount += $createDependencyIfNecessary(this$static, firstSegment, (checkCriticalElementIndex(secondIdx, edgeSegments.array.length) , castTo(edgeSegments.array[secondIdx], 112))); + } + } + random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + criticalDependencyCount >= 2 && (cycleDependencies = detectCycles(edgeSegments, true, random) , !this$static.segmentSplitter && (this$static.segmentSplitter = new HyperEdgeSegmentSplitter(this$static)) , $splitSegments(this$static.segmentSplitter, cycleDependencies, edgeSegments, this$static.criticalConflictThreshold) , undefined); + breakNonCriticalCycles(edgeSegments, random); + topologicalNumbering(edgeSegments); + rankCount = -1; + for (node$iterator = new ArrayList$1(edgeSegments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + if ($wnd.Math.abs(node.startPosition - node.endPosition) < $intern_101) { + continue; + } + rankCount = $wnd.Math.max(rankCount, node.routingSlot); + this$static.routingStrategy.calculateBendPoints(node, startPos, this$static.edgeSpacing); + } + this$static.routingStrategy.createdJunctionPoints.map_0.clear_0(); + return rankCount + 1; +} + +function OrthogonalRoutingGenerator(direction, edgeSpacing){ + this.routingStrategy = forRoutingDirection(direction); + this.edgeSpacing = edgeSpacing; + this.conflictThreshold = 0.5 * edgeSpacing; +} + +function breakNonCriticalCycles(edgeSegments, random){ + var cycleDependencies, cycleDependency, cycleDependency$iterator, oldSource, oldTarget; + cycleDependencies = detectCycles(edgeSegments, false, random); + for (cycleDependency$iterator = new ArrayList$1(cycleDependencies); cycleDependency$iterator.i < cycleDependency$iterator.this$01.array.length;) { + cycleDependency = castTo($next_7(cycleDependency$iterator), 129); + cycleDependency.weight == 0?($setSource_1(cycleDependency, null) , $setTarget_1(cycleDependency, null)):(oldSource = cycleDependency.source , oldTarget = cycleDependency.target , $setSource_1(cycleDependency, oldTarget) , $setTarget_1(cycleDependency, oldSource) , undefined); + } +} + +function countCrossings(posis, start_0, end){ + var crossings, pos, pos$iterator; + crossings = 0; + for (pos$iterator = $listIterator_2(posis, 0); pos$iterator.currentNode != pos$iterator.this$01.tail;) { + pos = $doubleValue(castToDouble($next_10(pos$iterator))); + if (pos > end) { + break; + } + else + pos >= start_0 && ++crossings; + } + return crossings; +} + +function topologicalNumbering(segments){ + var dep, dep$iterator, maxRank, node, node$iterator, node$iterator0, rightwardTargets, source, sources, target; + sources = new ArrayList; + rightwardTargets = new ArrayList; + for (node$iterator0 = new ArrayList$1(segments); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 112); + $setInWeight(node, node.incomingSegmentDependencies.array.length); + $setOutWeight(node, node.outgoingSegmentDependencies.array.length); + node.inDepWeight == 0 && (sources.array[sources.array.length] = node , true); + node.outDepWeight == 0 && node.incomingConnectionCoordinates.size_0 == 0 && (rightwardTargets.array[rightwardTargets.array.length] = node , true); + } + maxRank = -1; + while (sources.array.length != 0) { + node = castTo($remove_11(sources, 0), 112); + for (dep$iterator = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + target = dep.target; + $setRoutingSlot_0(target, $wnd.Math.max(target.routingSlot, node.routingSlot + 1)); + maxRank = $wnd.Math.max(maxRank, target.routingSlot); + $setInWeight(target, target.inDepWeight - 1); + target.inDepWeight == 0 && (sources.array[sources.array.length] = target , true); + } + } + if (maxRank > -1) { + for (node$iterator = new ArrayList$1(rightwardTargets); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + node.routingSlot = maxRank; + } + while (rightwardTargets.array.length != 0) { + node = castTo($remove_11(rightwardTargets, 0), 112); + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + source = dep.source; + if (source.incomingConnectionCoordinates.size_0 > 0) { + continue; + } + $setRoutingSlot_0(source, $wnd.Math.min(source.routingSlot, node.routingSlot - 1)); + $setOutWeight(source, source.outDepWeight - 1); + source.outDepWeight == 0 && (rightwardTargets.array[rightwardTargets.array.length] = source , true); + } + } + } +} + +defineClass(655, 1, {}, OrthogonalRoutingGenerator); +_.conflictThreshold = 0; +_.criticalConflictThreshold = 0; +_.edgeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator', 655); +function OrthogonalRoutingGenerator$lambda$0$Type(){ +} + +defineClass(1638, 1, {}, OrthogonalRoutingGenerator$lambda$0$Type); +_.apply_0 = function apply_155(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$0$Type', 1638); +function OrthogonalRoutingGenerator$lambda$1$Type(){ +} + +defineClass(1639, 1, {}, OrthogonalRoutingGenerator$lambda$1$Type); +_.apply_0 = function apply_156(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$1$Type', 1639); +function $addJunctionPointIfNecessary(this$static, edge, segment, pos, vertical){ + var jpoint, junctionPoints, p, pointAtSegmentBoundary, pointInsideEdgeSegment; + p = vertical?pos.y_0:pos.x_0; + if ($contains_6(this$static.createdJunctionPoints, pos)) { + return; + } + pointInsideEdgeSegment = p > segment.startPosition && p < segment.endPosition; + pointAtSegmentBoundary = false; + if (segment.incomingConnectionCoordinates.size_0 != 0 && segment.outgoingConnectionCoordinates.size_0 != 0) { + pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.outgoingConnectionCoordinates)))) < $intern_101); + pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.outgoingConnectionCoordinates)))) < $intern_101); + } + if (pointInsideEdgeSegment || pointAtSegmentBoundary) { + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); + } + jpoint = new KVector_2(pos); + $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); + $add_6(this$static.createdJunctionPoints, jpoint); + } +} + +function BaseRoutingDirectionStrategy(){ + this.createdJunctionPoints = new HashSet; +} + +function forRoutingDirection(direction){ + switch (direction) { + case 0: + return new WestToEastRoutingStrategy; + case 1: + return new NorthToSouthRoutingStrategy; + case 2: + return new SouthToNorthRoutingStrategy; + default:throw toJs(new IllegalArgumentException); + } +} + +defineClass(661, 1, {}); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_BaseRoutingDirectionStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'BaseRoutingDirectionStrategy', 661); +function NorthToSouthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1807, 661, {}, NorthToSouthRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentY = startPos + segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; + if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { + currentY = segmentY; + currentSegment = segment; + bend = new KVector_1(sourceX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + currentY = startPos + splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + bend = new KVector_1(targetX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode(port){ + return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; +} +; +_.getSourcePortSide = function getSourcePortSide(){ + return $clinit_PortSide() , SOUTH_2; +} +; +_.getTargetPortSide = function getTargetPortSide(){ + return $clinit_PortSide() , NORTH_3; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_NorthToSouthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'NorthToSouthRoutingStrategy', 1807); +function SouthToNorthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1808, 661, {}, SouthToNorthRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints_0(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentY = startPos - segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; + if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { + currentY = segmentY; + currentSegment = segment; + bend = new KVector_1(sourceX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + currentY = startPos - splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + bend = new KVector_1(targetX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_0(port){ + return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; +} +; +_.getSourcePortSide = function getSourcePortSide_0(){ + return $clinit_PortSide() , NORTH_3; +} +; +_.getTargetPortSide = function getTargetPortSide_0(){ + return $clinit_PortSide() , SOUTH_2; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_SouthToNorthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'SouthToNorthRoutingStrategy', 1808); +function WestToEastRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1806, 661, {}, WestToEastRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints_1(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentX, edge, edge$iterator, port, port$iterator, segmentX, sourceY, splitPartner, splitY, target, targetY; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentX = startPos + segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + sourceY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).y_0; + if ($wnd.Math.abs(sourceY - targetY) > $intern_101) { + currentX = segmentX; + currentSegment = segment; + bend = new KVector_1(currentX, sourceY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitY = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(currentX, splitY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + currentX = startPos + splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(currentX, splitY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + } + bend = new KVector_1(currentX, targetY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_1(port){ + return port.owner.pos.y_0 + port.pos.y_0 + port.anchor.y_0; +} +; +_.getSourcePortSide = function getSourcePortSide_1(){ + return $clinit_PortSide() , EAST_2; +} +; +_.getTargetPortSide = function getTargetPortSide_1(){ + return $clinit_PortSide() , WEST_2; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_WestToEastRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'WestToEastRoutingStrategy', 1806); +function $createUniformKnotVector(this$static, size_0){ + var fraction, i, i0, i1, mySize; + if (size_0 < 2 * this$static.dimNUBS) { + throw toJs(new IllegalArgumentException_0('The knot vector must have at least two time the dimension elements.')); + } + this$static.maxKnot = 1; + for (i0 = 0; i0 < this$static.dimNUBS; i0++) { + $add_3(this$static.knotVector, 0); + } + mySize = size_0 + 1 - 2 * this$static.dimNUBS; + fraction = mySize; + for (i1 = 1; i1 < mySize; i1++) { + $add_3(this$static.knotVector, i1 / fraction); + } + if (this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS; i++) { + $add_3(this$static.knotVector, 1); + } + } +} + +function $getBezierCP(this$static){ + var iter, retVal; + this$static.isBezier || $toBezier(this$static); + retVal = new KVectorChain; + iter = new ArrayList$1(this$static.controlPoints); + $next_7(iter); + while (iter.i < iter.this$01.array.length) { + $add_7(retVal, castTo($next_7(iter), 407).cp); + } + checkCriticalElement(retVal.size_0 != 0); + $removeNode_0(retVal, retVal.tail.prev); + return retVal; +} + +function $getMultiplicity(this$static, knotToCheck){ + var count, currentKnot, diff, iter; + iter = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); + count = 0; + while (iter.i < iter.this$01_0.size_1()) { + currentKnot = $doubleValue((checkCriticalElement(iter.i < iter.this$01_0.size_1()) , castToDouble(iter.this$01_0.get_0(iter.last = iter.i++)))); + diff = currentKnot - knotToCheck; + if (diff > $intern_118) { + return count; + } + else + diff > -1.0E-6 && ++count; + } + return count; +} + +function $insertKnotAtCurrentPosition(this$static, insertions, knotToInsert, iterCP, iterKnot){ + var cp, cp$iterator, firstCP, i, j, j0, j1, multiplicity, newCPs, secondCP; + multiplicity = $getMultiplicity(this$static, knotToInsert); + for (i = 0; i < insertions; i++) { + $add_1(iterKnot, knotToInsert); + newCPs = new ArrayList; + secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); + for (j0 = multiplicity + i; j0 < this$static.dimNUBS; j0++) { + firstCP = secondCP; + secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); + $add_3(newCPs, new NubSpline$PolarCP(firstCP, secondCP, knotToInsert)); + } + for (j1 = multiplicity + i; j1 < this$static.dimNUBS; j1++) { + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + j1 > multiplicity + i && $remove_8(iterCP); + } + for (cp$iterator = new ArrayList$1(newCPs); cp$iterator.i < cp$iterator.this$01.array.length;) { + cp = castTo($next_7(cp$iterator), 407); + $add_1(iterCP, cp); + } + if (i < insertions - 1) { + for (j = multiplicity + i; j < this$static.dimNUBS; j++) { + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + } + } + } +} + +function $toBezier(this$static){ + var currentKnot, i, iterCP, iterKnot, knotToCount, occurrence; + iterKnot = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); + iterCP = new AbstractList$ListIteratorImpl(this$static.controlPoints, 0); + if (this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + } + } + else { + for (i = 0; i < this$static.dimNUBS - 1; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + $remove_8(iterKnot); + } + } + currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); + while (this$static.maxKnot - currentKnot > $intern_118) { + knotToCount = currentKnot; + occurrence = 0; + while ($wnd.Math.abs(currentKnot - knotToCount) < $intern_118) { + ++occurrence; + currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); + checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()); + iterCP.this$01_0.get_0(iterCP.last = iterCP.i++); + } + if (occurrence < this$static.dimNUBS) { + checkCriticalElement(iterKnot.i > 0); + iterKnot.this$01.get_0(iterKnot.last = --iterKnot.i); + $insertKnotAtCurrentPosition(this$static, this$static.dimNUBS - occurrence, knotToCount, iterCP, iterKnot); + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + } + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + } + if (!this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS - 1; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + $remove_8(iterKnot); + } + } + this$static.isClamped = true; + this$static.isBezier = true; +} + +function NubSpline(kVectors){ + var i, i0, kVector, kVector$iterator, knotIter, polarCoordinate; + this.knotVector = new ArrayList; + this.controlPoints = new ArrayList; + for (i0 = kVectors.size_0 - 1; i0 < 3; i0++) { + $add_0(kVectors, 0, castTo($get_7(kVectors, 0), 8)); + } + if (kVectors.size_0 < 4) { + throw toJs(new IllegalArgumentException_0('At (least dimension + 1) control points are necessary!')); + } + else { + this.dimNUBS = 3; + this.isClamped = true; + this.isBezier = false; + $createUniformKnotVector(this, kVectors.size_0 + this.dimNUBS - 1); + polarCoordinate = new ArrayList; + knotIter = new ArrayList$1(this.knotVector); + for (i = 0; i < this.dimNUBS - 1; i++) { + $add_3(polarCoordinate, castToDouble($next_7(knotIter))); + } + for (kVector$iterator = $listIterator_2(kVectors, 0); kVector$iterator.currentNode != kVector$iterator.this$01.tail;) { + kVector = castTo($next_10(kVector$iterator), 8); + $add_3(polarCoordinate, castToDouble($next_7(knotIter))); + $add_3(this.controlPoints, new NubSpline$PolarCP_0(kVector, polarCoordinate)); + checkCriticalElementIndex(0, polarCoordinate.array.length); + polarCoordinate.array.splice(0, 1); + } + } +} + +defineClass(813, 1, {}, NubSpline); +_.toString_0 = function toString_106(){ + return $toString_2(this.controlPoints); +} +; +_.dimNUBS = 0; +_.isBezier = false; +_.isClamped = false; +_.maxKnot = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline', 813); +function $setCp(this$static, cp){ + this$static.cp = cp; +} + +function $setPolarCoordinate(this$static, polarCoordinate){ + this$static.polarCoordinate = polarCoordinate; +} + +function NubSpline$PolarCP(firstCP, secondCP, newKnot){ + var aScaled, bScaled, firstFactor, iter, needsToBeAdded, nextKnot, secondFactor, total; + firstFactor = $doubleValue(castToDouble(firstCP.polarCoordinate.iterator_0().next_1())); + secondFactor = $doubleValue(castToDouble(getLast(secondCP.polarCoordinate))); + aScaled = $scale($clone_0(firstCP.cp), secondFactor - newKnot); + bScaled = $scale($clone_0(secondCP.cp), newKnot - firstFactor); + total = $add_19(aScaled, bScaled); + $scale(total, 1 / (secondFactor - firstFactor)); + this.cp = total; + this.polarCoordinate = new ArrayList; + needsToBeAdded = true; + iter = firstCP.polarCoordinate.iterator_0(); + iter.next_1(); + while (iter.hasNext_0()) { + nextKnot = $doubleValue(castToDouble(iter.next_1())); + if (needsToBeAdded && nextKnot - newKnot > $intern_118) { + this.polarCoordinate.add_2(newKnot); + needsToBeAdded = false; + } + this.polarCoordinate.add_2(nextKnot); + } + needsToBeAdded && this.polarCoordinate.add_2(newKnot); +} + +function NubSpline$PolarCP_0(controlPoint, polarCoordinate){ + $setCp(this, new KVector_1(controlPoint.x_0, controlPoint.y_0)); + $setPolarCoordinate(this, newLinkedList(polarCoordinate)); +} + +defineClass(407, 1, {407:1}, NubSpline$PolarCP, NubSpline$PolarCP_0); +var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline$PolarCP_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline/PolarCP', 407); +function $clinit_SplineEdgeRouter(){ + $clinit_SplineEdgeRouter = emptyMethod; + BASELINE_PROCESSING_ADDITIONS = $addBefore($addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , FINAL_SPLINE_BENDPOINTS_CALCULATOR)), P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); + SELF_LOOP_PROCESSING_ADDITIONS_1 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1 = $addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + END_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $clearThenFillMappings(this$static, leftLayer, rightLayer){ + var edge, edge$iterator, node, node$iterator, nt, port, port$iterator, sourcePort, sourcePort$iterator, targetLayer, targetPort; + this$static.leftPortsLayer.map_0.clear_0(); + this$static.rightPortsLayer.map_0.clear_0(); + this$static.edgesRemainingLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.splineSegmentsLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.selfLoopsLayer.map_0.clear_0(); + if (leftLayer) { + for (node$iterator = new ArrayList$1(leftLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { + sourcePort = castTo(sourcePort$iterator.next_1(), 11); + $add_6(this$static.leftPortsLayer, sourcePort); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if ($isSelfLoop(edge)) { + continue; + } + $add_3(this$static.edgesRemainingLayer, edge); + $findAndAddSuccessor(this$static, edge); + nt = edge.source.owner.type_0; + (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); + } + } + } + } + if (rightLayer) { + for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $isSelfLoop(edge) && $add_6(this$static.selfLoopsLayer, edge); + } + } + for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { + sourcePort = castTo(sourcePort$iterator.next_1(), 11); + $add_6(this$static.rightPortsLayer, sourcePort); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if ($isSelfLoop(edge)) { + continue; + } + $add_3(this$static.edgesRemainingLayer, edge); + $findAndAddSuccessor(this$static, edge); + nt = edge.source.owner.type_0; + (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); + } + } + } + } +} + +function $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor){ + var incomingEdge, incomingEdge$iterator, layerSpacing, maxCurrInputYDiff, maxVertDiff, node, node$iterator, sourcePos, targetPos; + maxVertDiff = 0; + for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + maxCurrInputYDiff = 0; + for (incomingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incomingEdge$iterator);) { + incomingEdge = castTo($next_0(incomingEdge$iterator), 17); + sourcePos = $getAbsoluteAnchor(incomingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(incomingEdge.target).y_0; + maxCurrInputYDiff = $wnd.Math.max(maxCurrInputYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrInputYDiff); + } + layerSpacing = sloppyLayerSpacingFactor * $wnd.Math.min(1, edgeEdgeSpacing / nodeNodeSpacing) * maxVertDiff; + return layerSpacing; +} + +function $createDependency(edge0, edge1){ + var edge0Counter, edge1Counter, port, port$iterator, port$iterator0, port$iterator1, port$iterator2; + if (edge0.hyperEdgeTopYPos > edge1.hyperEdgeBottomYPos || edge1.hyperEdgeTopYPos > edge0.hyperEdgeBottomYPos) { + return; + } + edge0Counter = 0; + edge1Counter = 0; + for (port$iterator0 = edge0.rightPorts.map_0.keySet_0().iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && ++edge0Counter; + } + for (port$iterator1 = edge0.leftPorts.map_0.keySet_0().iterator_0(); port$iterator1.hasNext_0();) { + port = castTo(port$iterator1.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && --edge0Counter; + } + for (port$iterator2 = edge1.rightPorts.map_0.keySet_0().iterator_0(); port$iterator2.hasNext_0();) { + port = castTo(port$iterator2.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && ++edge1Counter; + } + for (port$iterator = edge1.leftPorts.map_0.keySet_0().iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && --edge1Counter; + } + if (edge0Counter < edge1Counter) { + new SplineEdgeRouter$Dependency(edge0, edge1, edge1Counter - edge0Counter); + } + else if (edge1Counter < edge0Counter) { + new SplineEdgeRouter$Dependency(edge1, edge0, edge0Counter - edge1Counter); + } + else { + new SplineEdgeRouter$Dependency(edge1, edge0, 0); + new SplineEdgeRouter$Dependency(edge0, edge1, 0); + } +} + +function $createSegmentsAndComputeRanking(this$static){ + var hyperEdge1, hyperEdge2, sourceIter, targetIter; + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4), true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, LEFT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegments(this$static, this$static.edgesRemainingLayer, this$static.leftPortsLayer, this$static.rightPortsLayer, this$static.splineSegmentsLayer); + sourceIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, 0); + while (sourceIter.i < sourceIter.this$01_0.size_1()) { + hyperEdge1 = (checkCriticalElement(sourceIter.i < sourceIter.this$01_0.size_1()) , castTo(sourceIter.this$01_0.get_0(sourceIter.last = sourceIter.i++), 128)); + targetIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, sourceIter.i); + while (targetIter.i < targetIter.this$01_0.size_1()) { + hyperEdge2 = (checkCriticalElement(targetIter.i < targetIter.this$01_0.size_1()) , castTo(targetIter.this$01_0.get_0(targetIter.last = targetIter.i++), 128)); + $createDependency(hyperEdge1, hyperEdge2); + } + } + breakCycles(this$static.splineSegmentsLayer, castTo($getProperty(this$static.lGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230)); + topologicalNumbering_0(this$static.splineSegmentsLayer); +} + +function $createSplineSegments(this$static, edges, leftPorts, rightPorts, hyperEdges){ + var edge, edge$iterator, seg, sourcePort, sourceSide, targetPort, targetSide; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + sourcePort = edge.source; + if (leftPorts.map_0.containsKey(sourcePort)) { + sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); + } + else if (rightPorts.map_0.containsKey(sourcePort)) { + sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); + } + else { + throw toJs(new IllegalArgumentException_0('Source port must be in one of the port sets.')); + } + targetPort = edge.target; + if (leftPorts.map_0.containsKey(targetPort)) { + targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); + } + else if (rightPorts.map_0.containsKey(targetPort)) { + targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); + } + else { + throw toJs(new IllegalArgumentException_0('Target port must be in one of the port sets.')); + } + seg = new SplineSegment(edge, sourceSide, targetSide); + $put_6(this$static.edgeToSegmentMap, edge, seg); + hyperEdges.array[hyperEdges.array.length] = seg; + } +} + +function $createSplineSegmentsForHyperEdges(this$static, leftPorts, rightPorts, sideToProcess, reversed, edgesRemaining, hyperEdges){ + var downEdges, edge, edge$iterator, pair, pair$iterator, portsToProcess, seg, singlePort, singlePort$iterator, singlePortPosition, targetPort, targetPortPosition, upEdges; + portsToProcess = null; + sideToProcess == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?(portsToProcess = leftPorts):sideToProcess == RIGHT_4 && (portsToProcess = rightPorts); + for (singlePort$iterator = portsToProcess.map_0.keySet_0().iterator_0(); singlePort$iterator.hasNext_0();) { + singlePort = castTo(singlePort$iterator.next_1(), 11); + singlePortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; + upEdges = new HashSet; + downEdges = new HashSet; + for (edge$iterator = new LPort$CombineIter$1(singlePort.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) != reversed) { + continue; + } + if ($indexOf_3(edgesRemaining, edge, 0) != -1) { + edge.target == singlePort?(targetPort = edge.source):(targetPort = edge.target); + targetPortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; + if ($wnd.Math.abs(targetPortPosition - singlePortPosition) < 0.2) { + continue; + } + targetPortPosition < singlePortPosition?leftPorts.map_0.containsKey(targetPort)?$add_6(upEdges, new Pair(LEFT_4, edge)):$add_6(upEdges, new Pair(RIGHT_4, edge)):leftPorts.map_0.containsKey(targetPort)?$add_6(downEdges, new Pair(LEFT_4, edge)):$add_6(downEdges, new Pair(RIGHT_4, edge)); + } + } + if (upEdges.map_0.size_1() > 1) { + seg = new SplineSegment_0(singlePort, upEdges, sideToProcess); + $forEach_0(upEdges, new SplineEdgeRouter$lambda$2$Type(this$static, seg)); + hyperEdges.array[hyperEdges.array.length] = seg; + for (pair$iterator = upEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(edgesRemaining, pair.second); + } + } + if (downEdges.map_0.size_1() > 1) { + seg = new SplineSegment_0(singlePort, downEdges, sideToProcess); + $forEach_0(downEdges, new SplineEdgeRouter$lambda$3$Type(this$static, seg)); + hyperEdges.array[hyperEdges.array.length] = seg; + for (pair$iterator = downEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(edgesRemaining, pair.second); + } + } + } +} + +function $findAndAddSuccessor(this$static, edge){ + var iter, nt, targetNode; + targetNode = edge.target.owner; + nt = targetNode.type_0; + if (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == BREAKING_POINT) { + return; + } + iter = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(targetNode).val$inputs1.iterator_0(), new Iterables$10)); + $hasNext_1(iter) && $put_6(this$static.successingEdge, edge, castTo($next_0(iter), 17)); +} + +function $getEdgeChain(this$static, start_0){ + var current, edgeChain; + edgeChain = new ArrayList; + current = start_0; + do { + edgeChain.array[edgeChain.array.length] = current; + current = castTo($get_10(this$static.successingEdge, current), 17); + } + while (current); + return edgeChain; +} + +function $getLayoutProcessorConfiguration_2(graph){ + var configuration, graphProperties; + configuration = new LayoutProcessorConfiguration; + $addAll_6(configuration, BASELINE_PROCESSING_ADDITIONS); + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + graphProperties.contains(($clinit_GraphProperties() , SELF_LOOPS)) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_1); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1); + graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_1); + return configuration; +} + +function $getSplinePath(this$static, start_0){ + var current, initialSegment, lastSegment, segment, segmentChain; + segmentChain = new ArrayList; + current = start_0; + do { + segment = castTo($get_10(this$static.edgeToSegmentMap, current), 128); + segment.sourcePort = current.source; + segment.targetPort = current.target; + segmentChain.array[segmentChain.array.length] = segment; + current = castTo($get_10(this$static.successingEdge, current), 17); + } + while (current); + initialSegment = (checkCriticalElementIndex(0, segmentChain.array.length) , castTo(segmentChain.array[0], 128)); + initialSegment.initialSegment = true; + initialSegment.sourceNode = castTo(initialSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).source.owner; + lastSegment = castTo($get_11(segmentChain, segmentChain.array.length - 1), 128); + lastSegment.lastSegment = true; + lastSegment.targetNode = castTo(lastSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).target.owner; + return segmentChain; +} + +function $lambda$2_3(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); +} + +function $lambda$3_2(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); +} + +function $process_78(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edgeChain, edgeEdgeSpacing, edgeNodeSpacing, firstLayer, increment, isLeftLayerExternal, isRightLayerExternal, isSpecialLeftLayer, isSpecialRightLayer, lastLayer, layerIterator, leftLayer, mode, nodeNodeSpacing, rightLayer, rightLayerPosition, segment, segment$iterator, sloppyLayerSpacingFactor, sloppyRouting, slotCount, spline, xSegmentDelta, xpos; + $begin(monitor, 'Spline edge routing', 1); + if (layeredGraph.layers.array.length == 0) { + layeredGraph.size_0.x_0 = 0; + $done_0(monitor); + return; + } + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + mode = castTo($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_MODE_0), 336); + sloppyRouting = mode == ($clinit_SplineRoutingMode() , SLOPPY); + sloppyLayerSpacingFactor = $doubleValue(castToDouble($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0))); + this$static.lGraph = layeredGraph; + this$static.startEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.allSplineSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $reset(this$static.successingEdge); + firstLayer = castTo($get_11(layeredGraph.layers, 0), 29); + isLeftLayerExternal = all_0(firstLayer.nodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + lastLayer = castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29); + isRightLayerExternal = all_0(lastLayer.nodes, PRED_EXTERNAL_WEST_OR_EAST_PORT); + layerIterator = new ArrayList$1(layeredGraph.layers); + leftLayer = null; + xpos = 0; + do { + rightLayer = layerIterator.i < layerIterator.this$01.array.length?castTo($next_7(layerIterator), 29):null; + $clearThenFillMappings(this$static, leftLayer, rightLayer); + $createSegmentsAndComputeRanking(this$static); + slotCount = $orElse_1($max_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.splineSegmentsLayer, 16)), new SplineEdgeRouter$lambda$0$Type), new SplineEdgeRouter$lambda$1$Type))); + xSegmentDelta = 0; + rightLayerPosition = xpos; + isSpecialLeftLayer = !leftLayer || isLeftLayerExternal && leftLayer == firstLayer; + isSpecialRightLayer = !rightLayer || isRightLayerExternal && rightLayer == lastLayer; + if (slotCount > 0) { + increment = 0; + !!leftLayer && (increment += edgeNodeSpacing); + increment += (slotCount - 1) * edgeEdgeSpacing; + !!rightLayer && (increment += edgeNodeSpacing); + sloppyRouting && !!rightLayer && (increment = $wnd.Math.max(increment, $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor))); + if (increment < nodeNodeSpacing && !isSpecialLeftLayer && !isSpecialRightLayer) { + xSegmentDelta = (nodeNodeSpacing - increment) / 2; + increment = nodeNodeSpacing; + } + rightLayerPosition += increment; + } + else + !isSpecialLeftLayer && !isSpecialRightLayer && (rightLayerPosition += nodeNodeSpacing); + !!rightLayer && placeNodesHorizontally(rightLayer, rightLayerPosition); + for (segment$iterator = new ArrayList$1(this$static.splineSegmentsLayer); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 128); + segment.boundingBox.x_0 = xpos; + segment.boundingBox.width_0 = rightLayerPosition - xpos; + segment.xDelta = xSegmentDelta; + segment.isWestOfInitialLayer = !leftLayer; + } + $addAll_2(this$static.allSplineSegments, this$static.splineSegmentsLayer); + xpos = rightLayerPosition; + !!rightLayer && (xpos += rightLayer.size_0.x_0); + leftLayer = rightLayer; + isSpecialLeftLayer = isSpecialRightLayer; + } + while (rightLayer); + for (edge$iterator = new ArrayList$1(this$static.startEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + edgeChain = $getEdgeChain(this$static, edge); + $setProperty_0(edge, ($clinit_InternalProperties_1() , SPLINE_EDGE_CHAIN), edgeChain); + spline = $getSplinePath(this$static, edge); + $setProperty_0(edge, SPLINE_ROUTE_START, spline); + } + layeredGraph.size_0.x_0 = xpos; + this$static.lGraph = null; + $done_0(monitor); +} + +function SplineEdgeRouter(){ + $clinit_SplineEdgeRouter(); + this.edgesRemainingLayer = new ArrayList; + this.splineSegmentsLayer = new ArrayList; + this.leftPortsLayer = new LinkedHashSet; + this.rightPortsLayer = new LinkedHashSet; + this.selfLoopsLayer = new LinkedHashSet; + this.startEdges = new ArrayList; + this.allSplineSegments = new ArrayList; + this.edgeToSegmentMap = new HashMap; + this.successingEdge = new HashMap; +} + +function breakCycles(edges, random){ + var depIter, dependency, dependency$iterator, dependency$iterator0, edge, edge$iterator, edge$iterator0, edge$iterator1, inweight, markBase, maxEdge, maxEdges, maxOutflow, nextLeft, nextMark, nextRight, outflow, outweight, shiftBase, sink, sinks, source, source$iterator, sources, target, unprocessed; + sources = new LinkedList; + sinks = new LinkedList; + nextMark = -1; + for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 128); + edge.mark = nextMark--; + inweight = 0; + outweight = 0; + for (dependency$iterator0 = new ArrayList$1(edge.outgoing); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator0), 268); + outweight += dependency.weight; + } + for (dependency$iterator = new ArrayList$1(edge.incoming); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 268); + inweight += dependency.weight; + } + edge.inweight = inweight; + edge.outweight = outweight; + outweight == 0?($addNode_0(sinks, edge, sinks.tail.prev, sinks.tail) , true):inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); + } + unprocessed = newLinkedHashSet(edges); + markBase = edges.array.length; + nextLeft = markBase + 1; + nextRight = markBase - 1; + maxEdges = new ArrayList; + while (unprocessed.map_0.size_1() != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 128)); + unprocessed.map_0.remove_0(sink) != null; + sink.mark = nextRight--; + updateNeighbors_0(sink, sources, sinks); + } + while (sources.size_0 != 0) { + source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 128)); + unprocessed.map_0.remove_0(source) != null; + source.mark = nextLeft++; + updateNeighbors_0(source, sources, sinks); + } + maxOutflow = $intern_42; + for (edge$iterator1 = unprocessed.map_0.keySet_0().iterator_0(); edge$iterator1.hasNext_0();) { + edge = castTo(edge$iterator1.next_1(), 128); + outflow = edge.outweight - edge.inweight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxEdges.array[maxEdges.array.length] = edge; + } + } + if (maxEdges.array.length != 0) { + maxEdge = castTo($get_11(maxEdges, $nextInt(random, maxEdges.array.length)), 128); + unprocessed.map_0.remove_0(maxEdge) != null; + maxEdge.mark = nextLeft++; + updateNeighbors_0(maxEdge, sources, sinks); + maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + shiftBase = edges.array.length + 1; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 128); + edge.mark < markBase && (edge.mark += shiftBase); + } + for (source$iterator = new ArrayList$1(edges); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 128); + depIter = new AbstractList$ListIteratorImpl(source.outgoing, 0); + while (depIter.i < depIter.this$01_0.size_1()) { + dependency = (checkCriticalElement(depIter.i < depIter.this$01_0.size_1()) , castTo(depIter.this$01_0.get_0(depIter.last = depIter.i++), 268)); + target = dependency.target; + if (source.mark > target.mark) { + $remove_8(depIter); + $remove_12(target.incoming, dependency); + if (dependency.weight > 0) { + dependency.source = target; + $add_3(target.outgoing, dependency); + dependency.target = source; + $add_3(source.incoming, dependency); + } + } + } + } +} + +function topologicalNumbering_0(edges){ + var dep, dep$iterator, edge, edge$iterator, edge$iterator0, maxRank, rightwardTargets, source, sources, target; + sources = new LinkedList; + rightwardTargets = new LinkedList; + for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 128); + edge.rank = 0; + edge.inweight = edge.incoming.array.length; + edge.outweight = edge.outgoing.array.length; + edge.inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); + edge.outweight == 0 && edge.leftPorts.map_0.size_1() == 0 && ($addNode_0(rightwardTargets, edge, rightwardTargets.tail.prev, rightwardTargets.tail) , true); + } + maxRank = -1; + while (sources.size_0 != 0) { + edge = castTo($remove_4(sources, 0), 128); + for (dep$iterator = new ArrayList$1(edge.outgoing); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + target = dep.target; + target.rank = $wnd.Math.max(target.rank, edge.rank + 1); + maxRank = $wnd.Math.max(maxRank, target.rank); + --target.inweight; + target.inweight == 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); + } + } + if (maxRank > -1) { + for (edge$iterator = $listIterator_2(rightwardTargets, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 128); + edge.rank = maxRank; + } + while (rightwardTargets.size_0 != 0) { + edge = castTo($remove_4(rightwardTargets, 0), 128); + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + source = dep.source; + if (source.leftPorts.map_0.size_1() != 0) { + continue; + } + source.rank = $wnd.Math.min(source.rank, edge.rank - 1); + --source.outweight; + source.outweight == 0 && ($addNode_0(rightwardTargets, source, rightwardTargets.tail.prev, rightwardTargets.tail) , true); + } + } + } +} + +function updateNeighbors_0(edge, sources, sinks){ + var dep, dep$iterator, dep$iterator0; + for (dep$iterator0 = new ArrayList$1(edge.outgoing); dep$iterator0.i < dep$iterator0.this$01.array.length;) { + dep = castTo($next_7(dep$iterator0), 268); + if (dep.target.mark < 0 && dep.weight > 0) { + dep.target.inweight -= dep.weight; + dep.target.inweight <= 0 && dep.target.outweight > 0 && $add_7(sources, dep.target); + } + } + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + if (dep.source.mark < 0 && dep.weight > 0) { + dep.source.outweight -= dep.weight; + dep.source.outweight <= 0 && dep.source.inweight > 0 && $add_7(sinks, dep.source); + } + } +} + +defineClass(1453, 1, $intern_113, SplineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_19(graph){ + return $getLayoutProcessorConfiguration_2(castTo(graph, 37)); +} +; +_.process = function process_74(layeredGraph, monitor){ + $process_78(this, castTo(layeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_ADDITIONS, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1, END_EDGE_LABEL_PROCESSING_ADDITIONS_1, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1, SELF_LOOP_PROCESSING_ADDITIONS_1; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter', 1453); +function SplineEdgeRouter$Dependency(source, target, weight){ + this.source = source; + this.target = target; + this.weight = weight; + $add_3(source.outgoing, this); + $add_3(target.incoming, this); +} + +defineClass(268, 1, {268:1}, SplineEdgeRouter$Dependency); +_.toString_0 = function toString_107(){ + return this.source + ' ->(' + this.weight + ') ' + this.target; +} +; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$Dependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/Dependency', 268); +function $clinit_SplineEdgeRouter$SideToProcess(){ + $clinit_SplineEdgeRouter$SideToProcess = emptyMethod; + LEFT_4 = new SplineEdgeRouter$SideToProcess('LEFT', 0); + RIGHT_4 = new SplineEdgeRouter$SideToProcess('RIGHT', 1); +} + +function SplineEdgeRouter$SideToProcess(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_72(name_0){ + $clinit_SplineEdgeRouter$SideToProcess(); + return valueOf(($clinit_SplineEdgeRouter$SideToProcess$Map() , $MAP_60), name_0); +} + +function values_78(){ + $clinit_SplineEdgeRouter$SideToProcess(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]); +} + +defineClass(455, 22, {3:1, 35:1, 22:1, 455:1}, SplineEdgeRouter$SideToProcess); +var LEFT_4, RIGHT_4; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/SideToProcess', 455, Ljava_lang_Enum_2_classLit, values_78, valueOf_72); +function $clinit_SplineEdgeRouter$SideToProcess$Map(){ + $clinit_SplineEdgeRouter$SideToProcess$Map = emptyMethod; + $MAP_60 = createValueOfMap(($clinit_SplineEdgeRouter$SideToProcess() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]))); +} + +var $MAP_60; +function SplineEdgeRouter$lambda$0$Type(){ +} + +defineClass(1454, 1, $intern_39, SplineEdgeRouter$lambda$0$Type); +_.test_0 = function test_105(arg0){ + return $clinit_SplineEdgeRouter() , !castTo(arg0, 128).isStraight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$0$Type', 1454); +function SplineEdgeRouter$lambda$1$Type(){ +} + +defineClass(1455, 1, {}, SplineEdgeRouter$lambda$1$Type); +_.applyAsInt = function applyAsInt_3(arg0){ + return $clinit_SplineEdgeRouter() , castTo(arg0, 128).rank + 1; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$1$Type', 1455); +function SplineEdgeRouter$lambda$2$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1456, 1, $intern_19, SplineEdgeRouter$lambda$2$Type); +_.accept = function accept_130(arg0){ + $lambda$2_3(this.$$outer_0, this.seg_1, castTo(arg0, 46)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$2$Type', 1456); +function SplineEdgeRouter$lambda$3$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1457, 1, $intern_19, SplineEdgeRouter$lambda$3$Type); +_.accept = function accept_131(arg0){ + $lambda$3_2(this.$$outer_0, this.seg_1, castTo(arg0, 46)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$3$Type', 1457); +function $$init_8(this$static){ + this$static.leftPorts = new HashSet; + this$static.rightPorts = new HashSet; + this$static.outgoing = new ArrayList; + this$static.incoming = new ArrayList; + this$static.edges = new HashSet; + this$static.boundingBox = new ElkRectangle; + this$static.edgeInformation = new HashMap; +} + +function $addEdge_0(this$static, edge){ + var ei, nt, nt0; + $add_6(this$static.edges, edge); + ei = new SplineSegment$EdgeInformation; + $put_6(this$static.edgeInformation, edge, ei); + ei.startY = $anchorY(edge.source); + ei.endY = $anchorY(edge.target); + ei.normalSourceNode = ($clinit_SplineEdgeRouter() , nt0 = edge.source.owner.type_0 , nt0 == ($clinit_LNode$NodeType() , NORMAL) || nt0 == BREAKING_POINT); + ei.normalTargetNode = (nt = edge.target.owner.type_0 , nt == NORMAL || nt == BREAKING_POINT); + ei.invertedLeft = edge.source.side == ($clinit_PortSide() , WEST_2); + ei.invertedRight = edge.target.side == EAST_2; +} + +function $anchorY(p){ + return ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(p.side)?$doubleValue(castToDouble($getProperty(p, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [p.owner.pos, p.pos, p.anchor])).y_0; +} + +function $compareTo_18(this$static, other){ + return this$static.mark - other.mark; +} + +function $setRelevantPositions(this$static, sourceY, targetYMin, targetYMax){ + this$static.boundingBox.y_0 = $wnd.Math.min(sourceY, targetYMin); + this$static.boundingBox.height = $wnd.Math.max(sourceY, targetYMax) - this$static.boundingBox.y_0; + if (sourceY < targetYMin) { + this$static.centerControlPointY = 0.5 * (sourceY + targetYMin); + this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; + this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMin; + } + else { + this$static.centerControlPointY = 0.5 * (sourceY + targetYMax); + this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMax; + this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; + } +} + +function SplineSegment(edge, sourceSide, targetSide){ + var sourceY, targetY; + $$init_8(this); + sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, edge.source):$add_6(this.rightPorts, edge.source); + targetSide == LEFT_4?$add_6(this.leftPorts, edge.target):$add_6(this.rightPorts, edge.target); + $addEdge_0(this, edge); + sourceY = $anchorY(edge.source); + targetY = $anchorY(edge.target); + $setRelevantPositions(this, sourceY, targetY, targetY); + this.isStraight = ($clinit_SplineEdgeRouter() , $wnd.Math.abs(sourceY - targetY) < 0.2); +} + +function SplineSegment_0(singlePort, edges, sourceSide){ + var edge, pair, pair$iterator, pair$iterator0, side, tgtPort, yMaxPosOfTarget, yMinPosOfTarget, yPosOfSingleSide, yPosOfTarget; + $$init_8(this); + sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, singlePort):$add_6(this.rightPorts, singlePort); + yMinPosOfTarget = $intern_59; + yMaxPosOfTarget = $intern_60; + for (pair$iterator0 = edges.map_0.keySet_0().iterator_0(); pair$iterator0.hasNext_0();) { + pair = castTo(pair$iterator0.next_1(), 46); + side = castTo(pair.first, 455); + edge = castTo(pair.second, 17); + tgtPort = edge.source; + tgtPort == singlePort && (tgtPort = edge.target); + side == LEFT_4?$add_6(this.leftPorts, tgtPort):$add_6(this.rightPorts, tgtPort); + yPosOfTarget = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(tgtPort.side)?$doubleValue(castToDouble($getProperty(tgtPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [tgtPort.owner.pos, tgtPort.pos, tgtPort.anchor])).y_0; + yMinPosOfTarget = $wnd.Math.min(yMinPosOfTarget, yPosOfTarget); + yMaxPosOfTarget = $wnd.Math.max(yMaxPosOfTarget, yPosOfTarget); + } + yPosOfSingleSide = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(singlePort.side)?$doubleValue(castToDouble($getProperty(singlePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; + $setRelevantPositions(this, yPosOfSingleSide, yMinPosOfTarget, yMaxPosOfTarget); + for (pair$iterator = edges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $addEdge_0(this, castTo(pair.second, 17)); + } + this.isStraight = false; +} + +defineClass(128, 1, {35:1, 128:1}, SplineSegment, SplineSegment_0); +_.compareTo_0 = function compareTo_19(other){ + return $compareTo_18(this, castTo(other, 128)); +} +; +_.centerControlPointY = 0; +_.handled = false; +_.hyperEdgeBottomYPos = 0; +_.hyperEdgeTopYPos = 0; +_.initialSegment = false; +_.inverseOrder = false; +_.inweight = 0; +_.isStraight = false; +_.isWestOfInitialLayer = false; +_.lastSegment = false; +_.mark = 0; +_.outweight = 0; +_.rank = 0; +_.xDelta = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment', 128); +function SplineSegment$EdgeInformation(){ +} + +defineClass(459, 1, {459:1}, SplineSegment$EdgeInformation); +_.endY = 0; +_.invertedLeft = false; +_.invertedRight = false; +_.normalSourceNode = false; +_.normalTargetNode = false; +_.startY = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment$EdgeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment/EdgeInformation', 459); +function isBetween(value_0, boundary0, boundary1){ + if ($wnd.Math.abs(boundary0 - value_0) < $intern_120 || $wnd.Math.abs(boundary1 - value_0) < $intern_120) { + return true; + } + return boundary0 - value_0 > $intern_120?value_0 - boundary1 > $intern_120:boundary1 - value_0 > $intern_120; +} + +function portSideToDirection(side){ + switch (side.ordinal) { + case 1: + return $intern_121; + default:case 2: + return 0; + case 3: + return $intern_97; + case 4: + return $intern_122; + } +} + +function $dfs_5(this$static, node, graph){ + var component, edge, edge$iterator; + if (!this$static.visited[node.id_0]) { + this$static.visited[node.id_0] = true; + component = graph; + !component && (component = new TGraph); + $add_7(component.nodes, node); + for (edge$iterator = this$static.incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 188); + edge.source != node && $dfs_5(this$static, edge.source, component); + edge.target != node && $dfs_5(this$static, edge.target, component); + $add_7(component.edges, edge); + } + return component; + } + return null; +} + +function $initialize_6(this$static, graph){ + var edge, edge$iterator, n, node, node$iterator; + n = graph.nodes.size_0; + this$static.incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); + this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, n, 16, 1); + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + this$static.incidence[node.id_0] = new LinkedList; + } + for (edge$iterator = $listIterator_2(graph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 188); + this$static.incidence[edge.source.id_0].add_2(edge); + this$static.incidence[edge.target.id_0].add_2(edge); + } +} + +function $moveGraph_1(destGraph, sourceGraph, offsetx, offsety){ + var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, node, node$iterator; + graphOffset = new KVector_1(offsetx, offsety); + $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_2() , BB_UPLEFT_0)), 8)); + for (node$iterator = $listIterator_2(sourceGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + $add_19(node.pos, graphOffset); + $add_7(destGraph.nodes, node); + } + for (edge$iterator = $listIterator_2(sourceGraph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 188); + for (bendpoint$iterator = $listIterator_2(edge.bendPoints, 0); bendpoint$iterator.currentNode != bendpoint$iterator.this$01.tail;) { + bendpoint = castTo($next_10(bendpoint$iterator), 8); + $add_19(bendpoint, graphOffset); + } + $add_7(destGraph.edges, edge); + } +} + +function $pack(components){ + var broadestRow, debug, debugMode, entry, entry$iterator, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, propComp, propMerge, result, size_0, spacing, tGraph, tGraph$iterator, totalArea, xpos, ypos; + if (components.array.length == 1) { + return checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 135); + } + else if (components.array.length <= 0) { + return new TGraph; + } + for (graph$iterator0 = new ArrayList$1(components); graph$iterator0.i < graph$iterator0.this$01.array.length;) { + graph = castTo($next_7(graph$iterator0), 135); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_42; + maxy = $intern_42; + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + priority += castTo($getProperty(node, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0; + minx = $wnd.Math.min(minx, node.pos.x_0); + miny = $wnd.Math.min(miny, node.pos.y_0); + maxx = $wnd.Math.max(maxx, node.pos.x_0 + node.size_0.x_0); + maxy = $wnd.Math.max(maxy, node.pos.y_0 + node.size_0.y_0); + } + $setProperty_0(graph, ($clinit_MrTreeOptions() , PRIORITY_1), valueOf_4(priority)); + $setProperty_0(graph, ($clinit_InternalProperties_2() , BB_UPLEFT_0), new KVector_1(minx, miny)); + $setProperty_0(graph, BB_LOWRIGHT_0, new KVector_1(maxx, maxy)); + } + $clinit_Collections(); + $sort(components, new ComponentsProcessor$1_0); + result = new TGraph; + $copyProperties(result, (checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 94))); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = new ArrayList$1(components); graph$iterator1.i < graph$iterator1.this$01.array.length;) { + graph = castTo($next_7(graph$iterator1), 135); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_MrTreeOptions() , ASPECT_RATIO_2))))); + spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE_1))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = new ArrayList$1(components); graph$iterator.i < graph$iterator.this$01.array.length;) { + graph = castTo($next_7(graph$iterator), 135); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $moveGraph_1(result, graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + propMerge = new HashMap; + debug = new HashMap; + for (tGraph$iterator = new ArrayList$1(components); tGraph$iterator.i < tGraph$iterator.this$01.array.length;) { + tGraph = castTo($next_7(tGraph$iterator), 135); + debugMode = $booleanValue(castToBoolean($getProperty(tGraph, ($clinit_CoreOptions() , DEBUG_MODE_3)))); + propComp = !tGraph.propertyMap?(null , EMPTY_MAP):tGraph.propertyMap; + for (entry$iterator = propComp.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if ($containsKey_3(propMerge, entry.getKey())) { + if (maskUndefined(castTo(entry.getKey(), 146).getDefault()) !== maskUndefined(entry.getValue())) { + if (debugMode && $containsKey_3(debug, entry.getKey())) { + $clinit_System(); + 'Found different values for property ' + castTo(entry.getKey(), 146).getId() + ' in components.'; + } + else { + $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); + debugMode && $put_6(debug, castTo(entry.getKey(), 146), entry.getValue()); + } + } + } + else { + $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); + } + } + } + return result; +} + +function $split_4(this$static, graph){ + var comp, comp$iterator, components, id_0, node, node$iterator, node$iterator0, separate; + separate = castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , SEPARATE_CONNECTED_COMPONENTS_1))); + if (separate == null || (checkCriticalNotNull(separate) , separate)) { + $initialize_6(this$static, graph); + components = new ArrayList; + for (node$iterator0 = $listIterator_2(graph.nodes, 0); node$iterator0.currentNode != node$iterator0.this$01.tail;) { + node = castTo($next_10(node$iterator0), 86); + comp = $dfs_5(this$static, node, null); + if (comp) { + $copyProperties(comp, graph); + components.array[components.array.length] = comp; + } + } + this$static.incidence = null; + this$static.visited = null; + if (components.array.length > 1) { + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 135); + id_0 = 0; + for (node$iterator = $listIterator_2(comp.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit, 1), $intern_100, 135, 0, [graph])); +} + +function ComponentsProcessor_1(){ +} + +defineClass(1234, 1, {}, ComponentsProcessor_1); +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor', 1234); +function $compare_22(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0 - castTo($getProperty(graph1, PRIORITY_1), 19).value_0; + if (prio == 0) { + size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph1, BB_UPLEFT_0), 8)); + size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT_0), 8)), castTo($getProperty(graph2, BB_UPLEFT_0), 8)); + return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); + } + return prio; +} + +function ComponentsProcessor$1_0(){ +} + +defineClass(1235, 1, $intern_88, ComponentsProcessor$1_0); +_.compare_1 = function compare_77(graph1, graph2){ + return $compare_22(castTo(graph1, 135), castTo(graph2, 135)); +} +; +_.equals_0 = function equals_164(other){ + return this === other; +} +; +_.reversed = function reversed_69(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor/1', 1235); +function $applyLayout_4(tGraph){ + var bendPoints, edgeSection, elkedge, elkgraph, elknode, height, maxXPos, maxYPos, minXPos, minYPos, nodePos, object, offset, padding, pos, size_0, sourcePoint, tEdge, tEdge$iterator, tNode, tNode$iterator, tNode$iterator0, targetPoint, width_0; + elkgraph = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , ORIGIN_1)), 33); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_42; + maxYPos = $intern_42; + for (tNode$iterator0 = $listIterator_2(tGraph.nodes, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator0), 86); + pos = tNode.pos; + size_0 = tNode.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + padding = castTo($getProperty_0(elkgraph, ($clinit_MrTreeOptions() , PADDING_2)), 116); + offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + object = $getProperty(tNode, ORIGIN_1); + if (instanceOf(object, 239)) { + elknode = castTo(object, 33); + nodePos = $add_19(tNode.pos, offset); + $setLocation_1(elknode, nodePos.x_0 - elknode.width_0 / 2, nodePos.y_0 - elknode.height / 2); + } + } + for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + elkedge = castTo($getProperty(tEdge, ORIGIN_1), 79); + if (elkedge) { + bendPoints = tEdge.bendPoints; + sourcePoint = new KVector_2(tEdge.source.pos); + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + targetPoint = new KVector_2(tEdge.target.pos); + $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); + toNodeBorder(sourcePoint, castTo($get_7(bendPoints, 1), 8), tEdge.source.size_0); + toNodeBorder(targetPoint, castTo($get_7(bendPoints, bendPoints.size_0 - 2), 8), tEdge.target.size_0); + edgeSection = firstEdgeSection(elkedge, true, true); + applyVectorChain(bendPoints, edgeSection); + } + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + resizeNode_1(elkgraph, width_0, height, false, false); +} + +function $transformEdges_1(parentNode, tGraph, elemMap){ + var elkedge, elkedge$iterator, elknode, elknode$iterator, newEdge, source, target; + for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { + elknode = castTo($doNext(elknode$iterator), 33); + for (elkedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(elkedge$iterator);) { + elkedge = castTo($next_0(elkedge$iterator), 79); + if (!$isHierarchical(elkedge) && !$isHierarchical(elkedge) && !$isSelfloop(elkedge)) { + source = castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, elknode)), 86); + target = castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))), 86); + if (!!source && !!target) { + newEdge = new TEdge_0(source, target); + $setProperty_0(newEdge, ($clinit_InternalProperties_2() , ORIGIN_1), elkedge); + $copyProperties(newEdge, elkedge); + $add_7(source.outgoingEdges, newEdge); + $add_7(target.incomingEdges, newEdge); + $add_7(tGraph.edges, newEdge); + } + } + } + } +} + +function $transformNodes_1(parentNode, tGraph, elemMap){ + var elknode, elknode$iterator, index_0, label_0, newNode; + index_0 = 0; + for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { + elknode = castTo($doNext(elknode$iterator), 33); + label_0 = ''; + (!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels).size_0 == 0 || (label_0 = castTo($get_20((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels), 0), 137).text_0); + newNode = new TNode(index_0++, tGraph, label_0); + $copyProperties(newNode, elknode); + $setProperty_0(newNode, ($clinit_InternalProperties_2() , ORIGIN_1), elknode); + newNode.pos.y_0 = elknode.y_0 + elknode.height / 2; + newNode.size_0.x_0 = $wnd.Math.max(elknode.width_0, 1); + newNode.pos.x_0 = elknode.x_0 + elknode.width_0 / 2; + newNode.size_0.y_0 = $wnd.Math.max(elknode.height, 1); + $add_7(tGraph.nodes, newNode); + $put_9(elemMap.hashCodeMap, elknode, newNode); + } +} + +function toNodeBorder(center, next, size_0){ + var absx, absy, hh, scale, wh, xscale, yscale; + wh = size_0.x_0 / 2; + hh = size_0.y_0 / 2; + absx = $wnd.Math.abs(next.x_0 - center.x_0); + absy = $wnd.Math.abs(next.y_0 - center.y_0); + xscale = 1; + yscale = 1; + absx > wh && (xscale = wh / absx); + absy > hh && (yscale = hh / absy); + scale = $wnd.Math.min(xscale, yscale); + center.x_0 += scale * (next.x_0 - center.x_0); + center.y_0 += scale * (next.y_0 - center.y_0); +} + +function $doLayout_0(this$static, tgraph, progressMonitor){ + $begin(progressMonitor, 'Tree layout', 1); + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_TreeLayoutPhases() , P1_TREEIFICATION), P1_TREEIFICATION); + $setPhase(this$static.algorithmAssembler, P2_NODE_ORDERING, P2_NODE_ORDERING); + $setPhase(this$static.algorithmAssembler, P3_NODE_PLACEMENT, P3_NODE_PLACEMENT); + $setPhase(this$static.algorithmAssembler, P4_EDGE_ROUTING, P4_EDGE_ROUTING); + this$static.algorithm = $build_0(this$static.algorithmAssembler, tgraph); + $layout_2(this$static, tgraph, $subTask(progressMonitor, 1)); + $done_0(progressMonitor); + return tgraph; +} + +function $layout_2(this$static, graph, themonitor){ + var i, monitor, processor, processor$iterator, slot; + monitor = themonitor; + !monitor && (monitor = new BasicProgressMonitor); + $begin(monitor, 'Layout', this$static.algorithm.array.length); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , DEBUG_MODE_0))))) { + $clinit_System(); + for (i = 0; i < this$static.algorithm.array.length; i++) { + slot = (i < 10?'0':'') + i++; + ' Slot ' + slot + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(castTo($get_11(this$static.algorithm, i), 51))); + } + } + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(monitor, 1)); + } + $done_0(monitor); +} + +function MrTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit); +} + +defineClass(1233, 1, {}, MrTree); +var Lorg_eclipse_elk_alg_mrtree_MrTree_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'MrTree', 1233); +function $clinit_TreeLayoutPhases(){ + $clinit_TreeLayoutPhases = emptyMethod; + P1_TREEIFICATION = new TreeLayoutPhases('P1_TREEIFICATION', 0); + P2_NODE_ORDERING = new TreeLayoutPhases('P2_NODE_ORDERING', 1); + P3_NODE_PLACEMENT = new TreeLayoutPhases('P3_NODE_PLACEMENT', 2); + P4_EDGE_ROUTING = new TreeLayoutPhases('P4_EDGE_ROUTING', 3); +} + +function $create_8(this$static){ + switch (this$static.ordinal) { + case 0: + return new DFSTreeifyer; + case 1: + return new NodeOrderer; + case 2: + return new NodePlacer; + case 3: + return new EdgeRouter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout phase ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function TreeLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_73(name_0){ + $clinit_TreeLayoutPhases(); + return valueOf(($clinit_TreeLayoutPhases$Map() , $MAP_61), name_0); +} + +function values_79(){ + $clinit_TreeLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]); +} + +defineClass(393, 22, {3:1, 35:1, 22:1, 393:1, 246:1, 234:1}, TreeLayoutPhases); +_.create_1 = function create_19(){ + return $create_8(this); +} +; +_.create_2 = function create_18(){ + return $create_8(this); +} +; +var P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree', 'TreeLayoutPhases', 393, Ljava_lang_Enum_2_classLit, values_79, valueOf_73); +function $clinit_TreeLayoutPhases$Map(){ + $clinit_TreeLayoutPhases$Map = emptyMethod; + $MAP_61 = createValueOfMap(($clinit_TreeLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]))); +} + +var $MAP_61; +function TreeLayoutProvider(){ + this.klayTree = new MrTree; + this.componentsProcessor = new ComponentsProcessor_1; +} + +defineClass(1130, 209, $intern_96, TreeLayoutProvider); +_.layout = function layout_3(layoutGraph, progressMonitor){ + var builder, comp, comp$iterator, components, tGraph, tGraph_0, elemMap; + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_MrTreeOptions() , OMIT_NODE_MICRO_LAYOUT_1)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + tGraph = (tGraph_0 = new TGraph , $copyProperties(tGraph_0, layoutGraph) , $setProperty_0(tGraph_0, ($clinit_InternalProperties_2() , ORIGIN_1), layoutGraph) , elemMap = new HashMap , $transformNodes_1(layoutGraph, tGraph_0, elemMap) , $transformEdges_1(layoutGraph, tGraph_0, elemMap) , tGraph_0); + components = $split_4(this.componentsProcessor, tGraph); + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 135); + $doLayout_0(this.klayTree, comp, $subTask(progressMonitor, 1 / components.array.length)); + } + tGraph = $pack(components); + $applyLayout_4(tGraph); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeLayoutProvider', 1130); +function getLeftMost(currentlevel, depth){ + var cN, cN$iterator, d, nextLevel; + if (0 < (instanceOf(currentlevel, 14)?castTo(currentlevel, 14).size_1():size_24(currentlevel.iterator_0()))) { + d = depth; + if (1 < d) { + --d; + nextLevel = new TreeUtil$1; + for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + return getLeftMost(nextLevel, d); + } + if (d < 0) { + nextLevel = new TreeUtil$2; + for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + if (0 < (instanceOf(nextLevel, 14)?castTo(nextLevel, 14).size_1():size_24(nextLevel.iterator_0()))) { + return getLeftMost(nextLevel, d); + } + } + } + return castTo(getNext(currentlevel.iterator_0()), 86); +} + +function TreeUtil$1(){ +} + +defineClass(1847, 1, $intern_23, TreeUtil$1); +_.forEach_0 = function forEach_31(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_73(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/1', 1847); +function TreeUtil$2(){ +} + +defineClass(1848, 1, $intern_23, TreeUtil$2); +_.forEach_0 = function forEach_32(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_74(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/2', 1848); +defineClass(502, 134, {3:1, 502:1, 94:1, 134:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraphElement', 502); +function TEdge_0(source, target){ + new LinkedList; + this.bendPoints = new KVectorChain; + this.source = source; + this.target = target; +} + +defineClass(188, 502, {3:1, 188:1, 502:1, 94:1, 134:1}, TEdge_0); +_.toString_0 = function toString_108(){ + return !!this.source && !!this.target?$toString_15(this.source) + '->' + $toString_15(this.target):'e_' + hashCode__I__devirtual$(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TEdge', 188); +function TGraph(){ + this.nodes = new LinkedList; + this.edges = new LinkedList; + this.nodes = new LinkedList; + this.edges = new LinkedList; +} + +defineClass(135, 134, {3:1, 135:1, 94:1, 134:1}, TGraph); +_.toString_0 = function toString_109(){ + var tEdge, tEdge$iterator, tNode, tNode$iterator, tmp; + tmp = null; + for (tNode$iterator = $listIterator_2(this.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + tmp += (tNode.label_0 == null || tNode.label_0.length == 0?'n_' + tNode.id_0:'n_' + tNode.label_0) + '\n'; + } + for (tEdge$iterator = $listIterator_2(this.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + tmp += (!!tEdge.source && !!tEdge.target?$toString_15(tEdge.source) + '->' + $toString_15(tEdge.target):'e_' + hashCode__I__devirtual$(tEdge)) + '\n'; + } + return tmp; +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraph', 135); +defineClass(633, 502, {3:1, 502:1, 633:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_mrtree_graph_TShape_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TShape', 633); +function $getChildrenCopy(this$static){ + var children, iEdge, iEdge$iterator; + children = new LinkedList; + for (iEdge$iterator = $listIterator_2(this$static.outgoingEdges, 0); iEdge$iterator.currentNode != iEdge$iterator.this$01.tail;) { + iEdge = castTo($next_10(iEdge$iterator), 188); + $add_7(children, iEdge.target); + } + return children; +} + +function $getParent(this$static){ + var edges; + edges = this$static.incomingEdges; + if (edges.size_0 == 0) { + return null; + } + return castTo($get_7(edges, 0), 188).source; +} + +function $toString_15(this$static){ + return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; +} + +function TNode(id_0, graph, label_0){ + this.id_0 = id_0; + this.pos = new KVector; + this.size_0 = new KVector; + this.outgoingEdges = new LinkedList; + this.incomingEdges = new LinkedList; + this.graph_0 = graph; + this.label_0 = label_0; +} + +defineClass(86, 633, {3:1, 502:1, 86:1, 633:1, 94:1, 134:1}, TNode); +_.toString_0 = function toString_110(){ + return $toString_15(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode', 86); +function TNode$2(this$0){ + this.this$01 = this$0; +} + +defineClass(255, 1, $intern_23, TNode$2); +_.forEach_0 = function forEach_33(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_75(){ + var edgesIter; + return edgesIter = $listIterator_2(this.this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2', 255); +function TNode$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(358, 1, $intern_6, TNode$2$1); +_.forEachRemaining = function forEachRemaining_50(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_40(){ + return castTo($next_10(this.val$edgesIter2), 188).target; +} +; +_.hasNext_0 = function hasNext_39(){ + return $hasNext_5(this.val$edgesIter2); +} +; +_.remove = function remove_95(){ + $remove_24(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2/1', 358); +function $calculateFan(this$static, currentLevel){ + var blockSize, digits, edgesIter, gloValue, i, id_0, index_0, key, locEntry, locEntry$iterator, locFanMap, nextLevel, pId, tChild, tChild$iterator, tNode, tNode$iterator, tNode$iterator0; + if (currentLevel.size_0 != 0) { + nextLevel = new LinkedList; + id_0 = null; + pId = null; + digits = round_int($wnd.Math.floor($wnd.Math.log(currentLevel.size_0) * $wnd.Math.LOG10E) + 1); + index_0 = 0; + for (tNode$iterator0 = $listIterator_2(currentLevel, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator0), 86); + if (maskUndefined(pId) !== maskUndefined($getProperty(tNode, ($clinit_InternalProperties_2() , ID)))) { + pId = castToString($getProperty(tNode, ID)); + index_0 = 0; + } + pId != null?(id_0 = pId + formatRight(index_0++, digits)):(id_0 = formatRight(index_0++, digits)); + $setProperty_0(tNode, ID, id_0); + for (tChild$iterator = (edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter)); $hasNext_5(tChild$iterator.val$edgesIter2);) { + tChild = castTo($next_10(tChild$iterator.val$edgesIter2), 188).target; + $addNode_0(nextLevel, tChild, nextLevel.tail.prev, nextLevel.tail); + $setProperty_0(tChild, ID, id_0); + } + } + locFanMap = new HashMap; + for (i = 0; i < id_0.length - digits; i++) { + for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + key = $substring_1(castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))), 0, i + 1); + blockSize = (key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key)) != null?castTo(key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key), 19).value_0 + 1:1; + $putStringValue(locFanMap, key, valueOf_4(blockSize)); + } + } + for (locEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(locFanMap)).this$01); locEntry$iterator.hasNext;) { + locEntry = $next_4(locEntry$iterator); + gloValue = valueOf_4($get_10(this$static.gloDescMap, locEntry.getKey()) != null?castTo($get_10(this$static.gloDescMap, locEntry.getKey()), 19).value_0:0); + $putStringValue(this$static.gloDescMap, castToString(locEntry.getKey()), valueOf_4(castTo(locEntry.getValue(), 19).value_0 + gloValue.value_0)); + gloValue = castTo($get_10(this$static.gloFanMap, locEntry.getKey()), 19); + (!gloValue || gloValue.value_0 < castTo(locEntry.getValue(), 19).value_0) && $putStringValue(this$static.gloFanMap, castToString(locEntry.getKey()), castTo(locEntry.getValue(), 19)); + } + $calculateFan(this$static, nextLevel); + } +} + +function $process_79(this$static, tGraph, progressMonitor){ + var desc, fan, it, key, root, rootLevel, tNode, tNode$iterator; + $begin(progressMonitor, 'Processor compute fanout', 1); + $reset(this$static.gloFanMap); + $reset(this$static.gloDescMap); + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + rootLevel = new LinkedList; + $addNode_0(rootLevel, root, rootLevel.tail.prev, rootLevel.tail); + $calculateFan(this$static, rootLevel); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + key = castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))); + fan = $getStringValue(this$static.gloFanMap, key) != null?castTo($getStringValue(this$static.gloFanMap, key), 19).value_0:0; + $setProperty_0(tNode, FAN, valueOf_4(fan)); + desc = 1 + ($getStringValue(this$static.gloDescMap, key) != null?castTo($getStringValue(this$static.gloDescMap, key), 19).value_0:0); + $setProperty_0(tNode, DESCENDANTS, valueOf_4(desc)); + } + $done_0(progressMonitor); +} + +function FanProcessor(){ + this.gloFanMap = new HashMap; + this.gloDescMap = new HashMap; +} + +function formatRight(value_0, len){ + var s; + s = value_0 + ''; + while (s.length < len) { + s = '0' + s; + } + return s; +} + +defineClass(1840, 1, $intern_105, FanProcessor); +_.process = function process_75(tGraph, progressMonitor){ + $process_79(this, castTo(tGraph, 135), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_FanProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'FanProcessor', 1840); +function $clinit_IntermediateProcessorStrategy_0(){ + $clinit_IntermediateProcessorStrategy_0 = emptyMethod; + ROOT_PROC = new IntermediateProcessorStrategy_0('ROOT_PROC', 0); + FAN_PROC = new IntermediateProcessorStrategy_0('FAN_PROC', 1); + NEIGHBORS_PROC = new IntermediateProcessorStrategy_0('NEIGHBORS_PROC', 2); + LEVEL_HEIGHT = new IntermediateProcessorStrategy_0('LEVEL_HEIGHT', 3); + NODE_POSITION_PROC = new IntermediateProcessorStrategy_0('NODE_POSITION_PROC', 4); + DETREEIFYING_PROC = new IntermediateProcessorStrategy_0('DETREEIFYING_PROC', 5); +} + +function IntermediateProcessorStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_74(name_0){ + $clinit_IntermediateProcessorStrategy_0(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_0() , $MAP_62), name_0); +} + +function values_80(){ + $clinit_IntermediateProcessorStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]); +} + +defineClass(327, 22, {3:1, 35:1, 22:1, 327:1, 234:1}, IntermediateProcessorStrategy_0); +_.create_1 = function create_20(){ + switch (this.ordinal) { + case 0: + return new RootProcessor; + case 1: + return new FanProcessor; + case 2: + return new NeighborsProcessor; + case 3: + return new LevelHeightProcessor; + case 4: + return new NodePositionProcessor; + case 5: + return new Untreeifyer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var DETREEIFYING_PROC, FAN_PROC, LEVEL_HEIGHT, NEIGHBORS_PROC, NODE_POSITION_PROC, ROOT_PROC; +var Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.intermediate', 'IntermediateProcessorStrategy', 327, Ljava_lang_Enum_2_classLit, values_80, valueOf_74); +function $clinit_IntermediateProcessorStrategy$Map_0(){ + $clinit_IntermediateProcessorStrategy$Map_0 = emptyMethod; + $MAP_62 = createValueOfMap(($clinit_IntermediateProcessorStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]))); +} + +var $MAP_62; +function $process_80(this$static, tGraph, progressMonitor){ + var it, root, tNode; + $begin(progressMonitor, 'Processor determine the height for each level', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors(this$static, newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_100, 86, 0, [root])), progressMonitor); + $done_0(progressMonitor); +} + +function $setNeighbors(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, cN$iterator0, height, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + $begin(sT, 'Set neighbors in level', 1); + nextLevel = new LevelHeightProcessor$1; + height = 0; + for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { + cN = castTo(cN$iterator0.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + height < cN.size_0.y_0 && (height = cN.size_0.y_0); + } + for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + $setProperty_0(cN, ($clinit_InternalProperties_2() , LEVELHEIGHT), height); + } + $done_0(sT); + $setNeighbors(this$static, nextLevel, progressMonitor); + } +} + +function LevelHeightProcessor(){ +} + +defineClass(1843, 1, $intern_105, LevelHeightProcessor); +_.process = function process_76(tGraph, progressMonitor){ + $process_80(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor', 1843); +function LevelHeightProcessor$1(){ +} + +defineClass(1844, 1, $intern_23, LevelHeightProcessor$1); +_.forEach_0 = function forEach_34(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_76(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor/1', 1844); +function $process_81(this$static, tGraph, progressMonitor){ + var it, root, tNode; + $begin(progressMonitor, 'Processor set neighbors', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors_0(this$static, new TNode$2(root), progressMonitor); + $done_0(progressMonitor); +} + +function $setNeighbors_0(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, lN, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + $begin(sT, 'Set neighbors in level', 1); + nextLevel = new NeighborsProcessor$1; + lN = null; + for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + if (lN) { + $setProperty_0(lN, ($clinit_InternalProperties_2() , RIGHTNEIGHBOR), cN); + $setProperty_0(cN, LEFTNEIGHBOR, lN); + if ($getParent(cN) == $getParent(lN)) { + $setProperty_0(lN, RIGHTSIBLING, cN); + $setProperty_0(cN, LEFTSIBLING, lN); + } + } + lN = cN; + } + $done_0(sT); + $setNeighbors_0(this$static, nextLevel, progressMonitor); + } +} + +function NeighborsProcessor(){ +} + +defineClass(1841, 1, $intern_105, NeighborsProcessor); +_.process = function process_77(tGraph, progressMonitor){ + $process_81(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor', 1841); +function NeighborsProcessor$1(){ +} + +defineClass(1842, 1, $intern_23, NeighborsProcessor$1); +_.forEach_0 = function forEach_35(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_77(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor/1', 1842); +function $process_82(this$static, tGraph, progressMonitor){ + var it, pos, root, tNode; + $begin(progressMonitor, 'Processor set coordinates', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + if ($booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0))))) { + root = tNode; + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, XCOOR), 19).value_0; + pos.y_0 = 0; + } + } + $setCoordinates(this$static, $getChildrenCopy(root), $subTask(progressMonitor, 1)); + $done_0(progressMonitor); +} + +function $setCoordinates(this$static, currentLevel, progressMonitor){ + var nextLevel, pos, tNode, tNode$iterator; + if (currentLevel.size_0 != 0) { + nextLevel = new LinkedList; + for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + $addAll(nextLevel, $getChildrenCopy(tNode)); + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, ($clinit_InternalProperties_2() , XCOOR)), 19).value_0; + pos.y_0 = castTo($getProperty(tNode, YCOOR), 19).value_0; + } + $setCoordinates(this$static, nextLevel, $subTask(progressMonitor, nextLevel.size_0 / this$static.numberOfNodes | 0)); + } +} + +function NodePositionProcessor(){ +} + +defineClass(1845, 1, $intern_105, NodePositionProcessor); +_.process = function process_78(tGraph, progressMonitor){ + $process_82(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NodePositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NodePositionProcessor', 1845); +function $process_83(this$static, tGraph){ + var node, node$iterator, root, superRoot, tRoot, tRoot$iterator, newEdge; + this$static.roots.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + if (node.incomingEdges.size_0 == 0) { + $setProperty_0(node, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $add_3(this$static.roots, node); + } + } + switch (this$static.roots.array.length) { + case 0: + root = new TNode(0, tGraph, 'DUMMY_ROOT'); + $setProperty_0(root, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $setProperty_0(root, DUMMY, true); + $add_7(tGraph.nodes, root); + break; + case 1: + break; + default:superRoot = new TNode(0, tGraph, 'SUPER_ROOT'); + for (tRoot$iterator = new ArrayList$1(this$static.roots); tRoot$iterator.i < tRoot$iterator.this$01.array.length;) { + tRoot = castTo($next_7(tRoot$iterator), 86); + newEdge = new TEdge_0(superRoot, tRoot); + $setProperty_0(newEdge, ($clinit_InternalProperties_2() , DUMMY), ($clinit_Boolean() , true)); + $add_7(superRoot.graph_0.edges, newEdge); + $add_7(superRoot.outgoingEdges, newEdge); + $add_7(tRoot.incomingEdges, newEdge); + $setProperty_0(tRoot, ROOT_0, false); + } + + $setProperty_0(superRoot, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $setProperty_0(superRoot, DUMMY, true); + $add_7(tGraph.nodes, superRoot); + } +} + +function RootProcessor(){ + this.roots = new ArrayList; +} + +defineClass(1839, 1, $intern_105, RootProcessor); +_.process = function process_79(tGraph, progressMonitor){ + $process_83(this, castTo(tGraph, 135)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_RootProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'RootProcessor', 1839); +function $process_84(tGraph){ + var edges, tEdge, tEdge$iterator; + edges = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES)), 15); + for (tEdge$iterator = edges.iterator_0(); tEdge$iterator.hasNext_0();) { + tEdge = castTo(tEdge$iterator.next_1(), 188); + $add_7(tEdge.source.outgoingEdges, tEdge); + $add_7(tEdge.target.incomingEdges, tEdge); + } +} + +function Untreeifyer(){ +} + +defineClass(1846, 1, $intern_105, Untreeifyer); +_.process = function process_80(tGraph, progressMonitor){ + $process_84(castTo(tGraph, 135)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_Untreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'Untreeifyer', 1846); +function $clinit_InternalProperties_2(){ + $clinit_InternalProperties_2 = emptyMethod; + ORIGIN_1 = new Property('origin'); + new Property('random'); + new Property_0('DEPTH', valueOf_4(0)); + FAN = new Property_0('FAN', valueOf_4(0)); + DESCENDANTS = new Property_0('DESCENDANTS', valueOf_4(0)); + ROOT_0 = new Property_0('ROOT', ($clinit_Boolean() , false)); + LEFTNEIGHBOR = new Property_0('LEFTNEIGHBOR', null); + RIGHTNEIGHBOR = new Property_0('RIGHTNEIGHBOR', null); + LEFTSIBLING = new Property_0('LEFTSIBLING', null); + RIGHTSIBLING = new Property_0('RIGHTSIBLING', null); + DUMMY = new Property_0('DUMMY', false); + new Property_0('LEVEL', valueOf_4(0)); + REMOVABLE_EDGES = new Property_0('REMOVABLE_EDGES', new LinkedList); + XCOOR = new Property_0('XCOOR', valueOf_4(0)); + YCOOR = new Property_0('YCOOR', valueOf_4(0)); + LEVELHEIGHT = new Property_0('LEVELHEIGHT', 0); + ID = new Property_0('ID', ''); + POSITION_0 = new Property_0('POSITION', valueOf_4(0)); + PRELIM = new Property_0('PRELIM', 0); + MODIFIER = new Property_0('MODIFIER', 0); + BB_UPLEFT_0 = new Property('boundingBox.upLeft'); + BB_LOWRIGHT_0 = new Property('boundingBox.lowRight'); +} + +var BB_LOWRIGHT_0, BB_UPLEFT_0, DESCENDANTS, DUMMY, FAN, ID, LEFTNEIGHBOR, LEFTSIBLING, LEVELHEIGHT, MODIFIER, ORIGIN_1, POSITION_0, PRELIM, REMOVABLE_EDGES, RIGHTNEIGHBOR, RIGHTSIBLING, ROOT_0, XCOOR, YCOOR; +function $clinit_MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider = emptyMethod; + WEIGHTING_DEFAULT = ($clinit_OrderWeighting() , DESCENDANTS_0); + WEIGHTING = new Property_1('org.eclipse.elk.mrtree.weighting', WEIGHTING_DEFAULT); + SEARCH_ORDER_DEFAULT = ($clinit_TreeifyingOrder() , DFS); + SEARCH_ORDER = new Property_1('org.eclipse.elk.mrtree.searchOrder', SEARCH_ORDER_DEFAULT); +} + +function MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider(); +} + +defineClass(851, 1, $intern_90, MrTreeMetaDataProvider); +_.apply_4 = function apply_157(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.weighting'), ''), 'Weighting of Nodes'), 'Which weighting to use when computing a node order.'), WEIGHTING_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.searchOrder'), ''), 'Search Order'), 'Which search order to use when computing a spanning tree.'), SEARCH_ORDER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit), of_1(PARENTS)))); + $apply_19((new MrTreeOptions , registry)); +} +; +var SEARCH_ORDER, SEARCH_ORDER_DEFAULT, WEIGHTING, WEIGHTING_DEFAULT; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeMetaDataProvider', 851); +function $clinit_MrTreeOptions(){ + $clinit_MrTreeOptions = emptyMethod; + PADDING_DEFAULT_1 = new ElkPadding_0(20); + PADDING_2 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_1); + SPACING_NODE_NODE_1 = new Property_2(SPACING_NODE_NODE_6, 20); + ASPECT_RATIO_2 = new Property_2(ASPECT_RATIO_5, $intern_102); + PRIORITY_1 = new Property_2(PRIORITY_3, valueOf_4(1)); + SEPARATE_CONNECTED_COMPONENTS_1 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + DEBUG_MODE_0 = DEBUG_MODE_3; + NODE_SIZE_CONSTRAINTS_2 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_1 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_2 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_2 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_1 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_2 = PORT_LABELS_PLACEMENT_5; + WEIGHTING_0 = ($clinit_MrTreeMetaDataProvider() , WEIGHTING); + SEARCH_ORDER_0 = SEARCH_ORDER; +} + +function $apply_19(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.mrtree'), 'ELK Mr. Tree'), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new MrTreeOptions$MrtreeFactory), 'org.eclipse.elk.tree'), of_1(($clinit_GraphFeature() , DISCONNECTED))))); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.padding', PADDING_DEFAULT_1); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.spacing.nodeNode', 20); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.priority', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.weighting', $getDefault(WEIGHTING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.searchOrder', $getDefault(SEARCH_ORDER_0)); +} + +function MrTreeOptions(){ + $clinit_MrTreeOptions(); +} + +defineClass(994, 1, $intern_90, MrTreeOptions); +_.apply_4 = function apply_158(registry){ + $apply_19(registry); +} +; +var ASPECT_RATIO_2, DEBUG_MODE_0, NODE_LABELS_PLACEMENT_2, NODE_SIZE_CONSTRAINTS_2, NODE_SIZE_MINIMUM_1, NODE_SIZE_OPTIONS_2, OMIT_NODE_MICRO_LAYOUT_1, PADDING_2, PADDING_DEFAULT_1, PORT_LABELS_PLACEMENT_2, PRIORITY_1, SEARCH_ORDER_0, SEPARATE_CONNECTED_COMPONENTS_1, SPACING_NODE_NODE_1, WEIGHTING_0; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions', 994); +function MrTreeOptions$MrtreeFactory(){ +} + +defineClass(995, 1, {}, MrTreeOptions$MrtreeFactory); +_.create_0 = function create_21(){ + var provider; + return provider = new TreeLayoutProvider , provider; +} +; +_.destroy = function destroy_3(obj){ +} +; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions$MrtreeFactory_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions/MrtreeFactory', 995); +function $clinit_OrderWeighting(){ + $clinit_OrderWeighting = emptyMethod; + DESCENDANTS_0 = new OrderWeighting('DESCENDANTS', 0); + FAN_0 = new OrderWeighting('FAN', 1); +} + +function OrderWeighting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_75(name_0){ + $clinit_OrderWeighting(); + return valueOf(($clinit_OrderWeighting$Map() , $MAP_63), name_0); +} + +function values_81(){ + $clinit_OrderWeighting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]); +} + +defineClass(480, 22, {3:1, 35:1, 22:1, 480:1}, OrderWeighting); +var DESCENDANTS_0, FAN_0; +var Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'OrderWeighting', 480, Ljava_lang_Enum_2_classLit, values_81, valueOf_75); +function $clinit_OrderWeighting$Map(){ + $clinit_OrderWeighting$Map = emptyMethod; + $MAP_63 = createValueOfMap(($clinit_OrderWeighting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]))); +} + +var $MAP_63; +function $clinit_TreeifyingOrder(){ + $clinit_TreeifyingOrder = emptyMethod; + DFS = new TreeifyingOrder('DFS', 0); + BFS = new TreeifyingOrder('BFS', 1); +} + +function TreeifyingOrder(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_76(name_0){ + $clinit_TreeifyingOrder(); + return valueOf(($clinit_TreeifyingOrder$Map() , $MAP_64), name_0); +} + +function values_82(){ + $clinit_TreeifyingOrder(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]); +} + +defineClass(425, 22, {3:1, 35:1, 22:1, 425:1}, TreeifyingOrder); +var BFS, DFS; +var Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'TreeifyingOrder', 425, Ljava_lang_Enum_2_classLit, values_82, valueOf_76); +function $clinit_TreeifyingOrder$Map(){ + $clinit_TreeifyingOrder$Map = emptyMethod; + $MAP_64 = createValueOfMap(($clinit_TreeifyingOrder() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]))); +} + +var $MAP_64; +function $clinit_DFSTreeifyer(){ + $clinit_DFSTreeifyer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG = $addAfter(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P4_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy_0() , DETREEIFYING_PROC)); +} + +function $bfs(this$static, startNode){ + var node, nodeQueue, tEdge, tEdge$iterator, target; + nodeQueue = new LinkedList; + $addNode_0(nodeQueue, startNode, nodeQueue.tail.prev, nodeQueue.tail); + do { + node = (checkCriticalElement(nodeQueue.size_0 != 0) , castTo($removeNode_0(nodeQueue, nodeQueue.header.next_0), 86)); + this$static.visited[node.id_0] = 1; + for (tEdge$iterator = $listIterator_2(node.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + target = tEdge.target; + this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$addNode_0(nodeQueue, target, nodeQueue.tail.prev, nodeQueue.tail); + } + } + while (nodeQueue.size_0 != 0); +} + +function $collectEdges(this$static, tGraph){ + var tEdge, tEdge$iterator, tNode, tNode$iterator, treeifyingOrder; + treeifyingOrder = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , SEARCH_ORDER_0)), 425); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + if (this$static.visited[tNode.id_0] == 0) { + switch (treeifyingOrder.ordinal) { + case 0: + $dfs_6(this$static, tNode); + break; + case 1: + $bfs(this$static, tNode); + } + this$static.visited[tNode.id_0] = 2; + } + } + for (tEdge$iterator = $listIterator_2(this$static.eliminated, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + $advanceToFind(tEdge.source.outgoingEdges, tEdge, true); + $advanceToFind(tEdge.target.incomingEdges, tEdge, true); + } + $setProperty_0(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES), this$static.eliminated); +} + +function $dfs_6(this$static, tNode){ + var tEdge, tEdge$iterator, target; + this$static.visited[tNode.id_0] = 1; + for (tEdge$iterator = $listIterator_2(tNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + target = tEdge.target; + this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$dfs_6(this$static, target); + } +} + +function $init_1(this$static, tGraph){ + var id_0, node, node$iterator, size_0; + size_0 = tGraph.nodes.size_0; + this$static.eliminated = new LinkedList; + this$static.visited = initUnidimensionalArray(I_classLit, $intern_48, 25, size_0, 15, 1); + id_0 = 0; + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + node.id_0 = id_0++; + } +} + +function $process_85(this$static, tGraph, progressMonitor){ + $begin(progressMonitor, 'DFS Treeifying phase', 1); + $init_1(this$static, tGraph); + $collectEdges(this$static, tGraph); + this$static.eliminated = null; + this$static.visited = null; + $done_0(progressMonitor); +} + +function DFSTreeifyer(){ + $clinit_DFSTreeifyer(); +} + +defineClass(1459, 1, $intern_113, DFSTreeifyer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_20(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG; +} +; +_.process = function process_81(tGraph, progressMonitor){ + $process_85(this, castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG; +var Lorg_eclipse_elk_alg_mrtree_p1treeify_DFSTreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p1treeify', 'DFSTreeifyer', 1459); +function $clinit_NodeOrderer(){ + $clinit_NodeOrderer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_0 = $add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING)), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), FAN_PROC); +} + +function $orderLevel(this$static, currentLevel, progressMonitor){ + var children, fillGap, firstOcc, inners, it, leaves, notNull, pos, size_0, sortedOutEdges, tENode, tENode$iterator, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$iterator, tmp; + $begin(progressMonitor, 'Processor arrange level', 1); + pos = 0; + $clinit_Collections(); + $sort_0(currentLevel, new PropertyHolderComparator(($clinit_InternalProperties_2() , FAN))); + firstOcc = currentLevel.size_0; + it = $listIterator_2(currentLevel, currentLevel.size_0); + notNull = true; + while (notNull && it.currentNode.prev != it.this$01.header) { + tNode = castTo($previous_0(it), 86); + castTo($getProperty(tNode, FAN), 19).value_0 == 0?--firstOcc:(notNull = false); + } + tmp = new AbstractList$SubList(currentLevel, 0, firstOcc); + inners = new LinkedList_0(tmp); + tmp = new AbstractList$SubList(currentLevel, firstOcc, currentLevel.size_0); + leaves = new LinkedList_0(tmp); + if (inners.size_0 == 0) { + for (tENode$iterator = $listIterator_2(leaves, 0); tENode$iterator.currentNode != tENode$iterator.this$01.tail;) { + tENode = castTo($next_10(tENode$iterator), 86); + $setProperty_0(tENode, POSITION_0, valueOf_4(pos++)); + } + } + else { + size_0 = inners.size_0; + for (tPNode$iterator = $listIterator_2(inners, 0); tPNode$iterator.currentNode != tPNode$iterator.this$01.tail;) { + tPNode = castTo($next_10(tPNode$iterator), 86); + $setProperty_0(tPNode, POSITION_0, valueOf_4(pos++)); + children = $getChildrenCopy(tPNode); + $orderLevel(this$static, children, $subTask(progressMonitor, 1 / size_0 | 0)); + $sort_0(children, reverseOrder(new PropertyHolderComparator(POSITION_0))); + sortedOutEdges = new LinkedList; + for (tNode$iterator = $listIterator_2(children, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + tEdge.target == tNode && ($addNode_0(sortedOutEdges, tEdge, sortedOutEdges.tail.prev, sortedOutEdges.tail) , true); + } + } + $reset_0(tPNode.outgoingEdges); + $addAll(tPNode.outgoingEdges, sortedOutEdges); + it = $listIterator_2(leaves, leaves.size_0); + fillGap = tPNode.outgoingEdges.size_0; + notNull = true; + while (0 < fillGap && notNull && it.currentNode.prev != it.this$01.header) { + tNode = castTo($previous_0(it), 86); + if (castTo($getProperty(tNode, FAN), 19).value_0 == 0) { + $setProperty_0(tNode, POSITION_0, valueOf_4(pos++)); + --fillGap; + $remove_24(it); + } + else { + notNull = false; + } + } + } + } + $done_0(progressMonitor); +} + +function $process_86(this$static, tGraph, progressMonitor){ + var it, root, roots, tNode; + $begin(progressMonitor, 'Processor arrange node', 1); + root = null; + roots = new LinkedList; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + $addNode_0(roots, root, roots.tail.prev, roots.tail); + $orderLevel(this$static, roots, $subTask(progressMonitor, 1)); + $done_0(progressMonitor); +} + +function NodeOrderer(){ + $clinit_NodeOrderer(); +} + +defineClass(1460, 1, $intern_113, NodeOrderer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_21(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_0; +} +; +_.process = function process_82(tGraph, progressMonitor){ + $process_86(this, castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_0; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer', 1460); +function $clinit_NodePlacer(){ + $clinit_NodePlacer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_1 = $addBefore($add_17($add_17($before($addBefore(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), P3_NODE_PLACEMENT), LEVEL_HEIGHT), NEIGHBORS_PROC), P4_EDGE_ROUTING, NODE_POSITION_PROC); +} + +function $apportion(this$static, cN){ + var ancestorLeftmost, ancestorNeighbor, compareDepth, edgesIter, edgesIter0, i, leftModSum, leftSibling, leftSiblings, leftmost, mean, moveDistance, neighbor, newMod, newPr, portion, prL, prN, rightModSum; + leftmost = castTo(getNext((edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0))), 86); + neighbor = leftmost?castTo($getProperty(leftmost, ($clinit_InternalProperties_2() , LEFTNEIGHBOR)), 86):null; + compareDepth = 1; + while (!!leftmost && !!neighbor) { + leftModSum = 0; + rightModSum = 0; + ancestorLeftmost = leftmost; + ancestorNeighbor = neighbor; + for (i = 0; i < compareDepth; i++) { + ancestorLeftmost = $getParent(ancestorLeftmost); + ancestorNeighbor = $getParent(ancestorNeighbor); + rightModSum += $doubleValue(castToDouble($getProperty(ancestorLeftmost, ($clinit_InternalProperties_2() , MODIFIER)))); + leftModSum += $doubleValue(castToDouble($getProperty(ancestorNeighbor, MODIFIER))); + } + prN = $doubleValue(castToDouble($getProperty(neighbor, ($clinit_InternalProperties_2() , PRELIM)))); + prL = $doubleValue(castToDouble($getProperty(leftmost, PRELIM))); + mean = $meanNodeWidth(leftmost, neighbor); + moveDistance = prN + leftModSum + this$static.spacing + mean - prL - rightModSum; + if (0 < moveDistance) { + leftSibling = cN; + leftSiblings = 0; + while (!!leftSibling && leftSibling != ancestorNeighbor) { + ++leftSiblings; + leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); + } + if (leftSibling) { + portion = moveDistance / leftSiblings; + leftSibling = cN; + while (leftSibling != ancestorNeighbor) { + newPr = $doubleValue(castToDouble($getProperty(leftSibling, PRELIM))) + moveDistance; + $setProperty_0(leftSibling, PRELIM, newPr); + newMod = $doubleValue(castToDouble($getProperty(leftSibling, MODIFIER))) + moveDistance; + $setProperty_0(leftSibling, MODIFIER, newMod); + moveDistance -= portion; + leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); + } + } + else { + return; + } + } + ++compareDepth; + leftmost.outgoingEdges.size_0 == 0?(leftmost = getLeftMost(new TNode$2(cN), compareDepth)):(leftmost = castTo(getNext((edgesIter = $listIterator_2((new TNode$2(leftmost)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86)); + neighbor = leftmost?castTo($getProperty(leftmost, LEFTNEIGHBOR), 86):null; + } +} + +function $firstWalk(this$static, cN){ + var child, child$iterator, edgesIter, edgesIter0, edgesIter1, lM, lS, midPoint, p, rM; + $setProperty_0(cN, ($clinit_InternalProperties_2() , MODIFIER), 0); + lS = castTo($getProperty(cN, LEFTSIBLING), 86); + if (cN.outgoingEdges.size_0 == 0) { + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); + $setProperty_0(cN, PRELIM, p); + } + else { + $setProperty_0(cN, PRELIM, 0); + } + } + else { + for (child$iterator = (edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0)); $hasNext_5(child$iterator.val$edgesIter2);) { + child = castTo($next_10(child$iterator.val$edgesIter2), 188).target; + $firstWalk(this$static, child); + } + lM = castTo(getNext((edgesIter1 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter1))), 86); + rM = castTo(getLast_1((edgesIter = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86); + midPoint = ($doubleValue(castToDouble($getProperty(rM, PRELIM))) + $doubleValue(castToDouble($getProperty(lM, PRELIM)))) / 2; + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); + $setProperty_0(cN, PRELIM, p); + $setProperty_0(cN, MODIFIER, $doubleValue(castToDouble($getProperty(cN, PRELIM))) - midPoint); + $apportion(this$static, cN); + } + else { + $setProperty_0(cN, PRELIM, midPoint); + } + } +} + +function $meanNodeWidth(leftNode, rightNode){ + var nodeWidth; + nodeWidth = 0; + !!leftNode && (nodeWidth += leftNode.size_0.x_0 / 2); + !!rightNode && (nodeWidth += rightNode.size_0.x_0 / 2); + return nodeWidth; +} + +function $process_87(this$static, tGraph, progressMonitor){ + var root, roots, tNode, tNode$iterator; + $begin(progressMonitor, 'Processor order nodes', 2); + this$static.spacing = $doubleValue(castToDouble($getProperty(tGraph, ($clinit_MrTreeOptions() , SPACING_NODE_NODE_1)))); + roots = new LinkedList; + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && ($addNode_0(roots, tNode, roots.tail.prev, roots.tail) , true); + } + root = (checkCriticalElement(roots.size_0 != 0) , castTo(roots.header.next_0.value_0, 86)); + $firstWalk(this$static, root); + !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); + $secondWalk(this$static, root, 0 - $doubleValue(castToDouble($getProperty(root, ($clinit_InternalProperties_2() , LEVELHEIGHT)))) / 2, 0); + !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); + $done_0(progressMonitor); +} + +function $secondWalk(this$static, tNode, yCoor, modsum){ + var edgesIter, xTemp, yTemp; + if (tNode) { + xTemp = $doubleValue(castToDouble($getProperty(tNode, ($clinit_InternalProperties_2() , PRELIM)))) + modsum; + yTemp = yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) / 2; + $setProperty_0(tNode, XCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(xTemp))))); + $setProperty_0(tNode, YCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(yTemp))))); + tNode.outgoingEdges.size_0 == 0 || $secondWalk(this$static, castTo(getNext((edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86), yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) + this$static.spacing, modsum + $doubleValue(castToDouble($getProperty(tNode, MODIFIER)))); + $getProperty(tNode, RIGHTSIBLING) != null && $secondWalk(this$static, castTo($getProperty(tNode, RIGHTSIBLING), 86), yCoor, modsum); + } +} + +function NodePlacer(){ + $clinit_NodePlacer(); +} + +defineClass(1461, 1, $intern_113, NodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_22(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_1; +} +; +_.process = function process_83(tGraph, progressMonitor){ + $process_87(this, castTo(tGraph, 135), progressMonitor); +} +; +_.spacing = 0; +var INTERMEDIATE_PROCESSING_CONFIG_1; +var Lorg_eclipse_elk_alg_mrtree_p3place_NodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p3place', 'NodePlacer', 1461); +function $clinit_EdgeRouter(){ + $clinit_EdgeRouter = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_2 = new LayoutProcessorConfiguration; +} + +function $process_88(tGraph, progressMonitor){ + var tedge, tedge$iterator, tnode, tnode$iterator; + $begin(progressMonitor, 'Dull edge routing', 1); + for (tnode$iterator = $listIterator_2(tGraph.nodes, 0); tnode$iterator.currentNode != tnode$iterator.this$01.tail;) { + tnode = castTo($next_10(tnode$iterator), 86); + for (tedge$iterator = $listIterator_2(tnode.outgoingEdges, 0); tedge$iterator.currentNode != tedge$iterator.this$01.tail;) { + tedge = castTo($next_10(tedge$iterator), 188); + $reset_0(tedge.bendPoints); + } + } +} + +function EdgeRouter(){ + $clinit_EdgeRouter(); +} + +defineClass(1462, 1, $intern_113, EdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_23(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_2; +} +; +_.process = function process_84(tGraph, progressMonitor){ + $process_88(castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_2; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter', 1462); +function $clinit_InternalProperties_3(){ + $clinit_InternalProperties_3 = emptyMethod; + ROOT_NODE = new Property('root'); +} + +var ROOT_NODE; +function $clinit_RadialLayoutPhases(){ + $clinit_RadialLayoutPhases = emptyMethod; + P1_NODE_PLACEMENT = new RadialLayoutPhases('P1_NODE_PLACEMENT', 0); + P2_EDGE_ROUTING = new RadialLayoutPhases('P2_EDGE_ROUTING', 1); +} + +function $create_9(this$static){ + switch (this$static.ordinal) { + case 0: + return new EadesRadial; + case 1: + return new StraightLineEdgeRouter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function RadialLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_77(name_0){ + $clinit_RadialLayoutPhases(); + return valueOf(($clinit_RadialLayoutPhases$Map() , $MAP_65), name_0); +} + +function values_83(){ + $clinit_RadialLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]); +} + +defineClass(495, 22, {3:1, 35:1, 22:1, 495:1, 246:1, 234:1}, RadialLayoutPhases); +_.create_1 = function create_23(){ + return $create_9(this); +} +; +_.create_2 = function create_22(){ + return $create_9(this); +} +; +var P1_NODE_PLACEMENT, P2_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.radial', 'RadialLayoutPhases', 495, Ljava_lang_Enum_2_classLit, values_83, valueOf_77); +function $clinit_RadialLayoutPhases$Map(){ + $clinit_RadialLayoutPhases$Map = emptyMethod; + $MAP_65 = createValueOfMap(($clinit_RadialLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]))); +} + +var $MAP_65; +function $assembleAlgorithm(this$static, layoutGraph){ + var algorithm, configuration; + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_RadialLayoutPhases() , P1_NODE_PLACEMENT), P1_NODE_PLACEMENT); + $setPhase(this$static.algorithmAssembler, P2_EDGE_ROUTING, P2_EDGE_ROUTING); + configuration = new LayoutProcessorConfiguration; + $addBefore(configuration, P2_EDGE_ROUTING, ($clinit_IntermediateProcessorStrategy_1() , OVERLAP_REMOVAL)); + maskUndefined($getProperty_0(layoutGraph, ($clinit_RadialOptions() , COMPACTOR_0))) !== maskUndefined(($clinit_CompactionStrategy_0() , NONE_11)) && $addBefore(configuration, P2_EDGE_ROUTING, COMPACTION); + $addBefore(configuration, P2_EDGE_ROUTING, GRAPH_SIZE_CALCULATION); + $addProcessorConfiguration(this$static.algorithmAssembler, configuration); + algorithm = $build_0(this$static.algorithmAssembler, layoutGraph); + return algorithm; +} + +function RadialLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit); +} + +defineClass(1131, 209, $intern_96, RadialLayoutProvider); +_.layout = function layout_4(layoutGraph, progressMonitor){ + var algorithm, builder, layoutRadius, processor, processor$iterator, root; + algorithm = $assembleAlgorithm(this, layoutGraph); + $begin(progressMonitor, 'Radial layout', algorithm.array.length); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_RadialOptions() , OMIT_NODE_MICRO_LAYOUT_2)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + root = findRoot(layoutGraph); + $setProperty_1(layoutGraph, ($clinit_InternalProperties_3() , ROOT_NODE), root); + if (!root) { + throw toJs(new IllegalArgumentException_0('The given graph is not a tree!')); + } + layoutRadius = $doubleValue(castToDouble($getProperty_0(layoutGraph, RADIUS_0))); + layoutRadius == 0 && (layoutRadius = findLargestNodeInGraph(layoutGraph)); + $setProperty_1(layoutGraph, RADIUS_0, layoutRadius); + for (processor$iterator = new ArrayList$1($assembleAlgorithm(this, layoutGraph)); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(layoutGraph, $subTask(progressMonitor, 1)); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_RadialLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialLayoutProvider', 1131); +function findLargestNodeInGraph(graph){ + var child, child$iterator, diameter, height, largestChild, largestChildSize, width_0; + largestChildSize = 0; + for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + width_0 = child.width_0; + height = child.height; + diameter = $wnd.Math.sqrt(width_0 * width_0 + height * height); + largestChildSize = $wnd.Math.max(diameter, largestChildSize); + largestChild = findLargestNodeInGraph(child); + largestChildSize = $wnd.Math.max(largestChild, largestChildSize); + } + return largestChildSize; +} + +function findRoot(graph){ + var child, child$iterator, incomingEdges; + for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + incomingEdges = allIncomingEdges(child); + if (!$hasNext_1(new Iterators$ConcatenatedIterator(transform_2(incomingEdges.val$inputs1.iterator_0(), new Iterables$10)))) { + return child; + } + } + return null; +} + +function findRootOfNode(elkNode){ + var parent_0; + parent_0 = getTreeParent(elkNode); + return !parent_0?elkNode:findRootOfNode(parent_0); +} + +function getNextLevelNodeSet(nodes){ + var nextLevelSet, node, node$iterator, successors; + successors = new HashSet; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + nextLevelSet = getSuccessorSet(node); + $addAll(successors, nextLevelSet); + } + return successors; +} + +function getNextLevelNodes(nodes){ + var nextLevelNodes, node, node$iterator, successors; + successors = new ArrayList; + for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + nextLevelNodes = getSuccessors(node); + $addAll_2(successors, nextLevelNodes); + } + return successors; +} + +function getNumberOfLeaves(node){ + var child, child$iterator, leafs, successors; + leafs = 0; + successors = getSuccessors(node); + if (successors.array.length == 0) { + return 1; + } + else { + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 33); + leafs += getNumberOfLeaves(child); + } + } + return leafs; +} + +function getSuccessorSet(node){ + var children, old, outgoingEdge, outgoingEdge$iterator, successors, target; + successors = new HashSet; + children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { + target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); + children.map_0.containsKey(target) || (old = successors.map_0.put(target, successors) , old == null); + } + } + return successors; +} + +function getSuccessors(node){ + var children, outgoingEdge, outgoingEdge$iterator, successors, target; + successors = new ArrayList; + children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { + target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); + children.map_0.containsKey(target) || (successors.array[successors.array.length] = target , true); + } + } + return successors; +} + +function getTreeParent(node){ + var edgeFromParent, iterator; + iterator = allIncomingEdges(node); + if (isEmpty_13(iterator)) { + return null; + } + else { + edgeFromParent = (checkNotNull(iterator) , castTo(get_22(new Iterators$ConcatenatedIterator(transform_2(iterator.val$inputs1.iterator_0(), new Iterables$10))), 79)); + return connectableShapeToNode(castTo($get_20((!edgeFromParent.sources && (edgeFromParent.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edgeFromParent, 4, 7)) , edgeFromParent.sources), 0), 82)); + } +} + +function lambda$0_30(nodeOffsetY_0, radialOffset_2, node1_2, node2_3){ + var arc1, arc2, position1, position2, xPos1, xPos2, yPos1, yPos2; + position1 = castTo($getProperty_0(node1_2, ($clinit_CoreOptions() , POSITION_2)), 8); + xPos1 = position1.x_0; + yPos1 = position1.y_0 + nodeOffsetY_0; + arc1 = $wnd.Math.atan2(yPos1, xPos1); + arc1 < 0 && (arc1 += $intern_123); + arc1 += radialOffset_2; + arc1 > $intern_123 && (arc1 -= $intern_123); + position2 = castTo($getProperty_0(node2_3, POSITION_2), 8); + xPos2 = position2.x_0; + yPos2 = position2.y_0 + nodeOffsetY_0; + arc2 = $wnd.Math.atan2(yPos2, xPos2); + arc2 < 0 && (arc2 += $intern_123); + arc2 += radialOffset_2; + arc2 > $intern_123 && (arc2 -= $intern_123); + return $clinit_DoubleMath() , checkNonNegative(1.0E-10) , $wnd.Math.abs(arc1 - arc2) <= 1.0E-10 || arc1 == arc2 || isNaN(arc1) && isNaN(arc2)?0:arc1 < arc2?-1:arc1 > arc2?1:compare_0(isNaN(arc1), isNaN(arc2)); +} + +function RadialUtil$lambda$0$Type(radialOffset_2){ + this.nodeOffsetY_0 = 0; + this.radialOffset_2 = radialOffset_2; +} + +defineClass(549, 1, $intern_88, RadialUtil$lambda$0$Type); +_.compare_1 = function compare_78(arg0, arg1){ + return lambda$0_30(this.nodeOffsetY_0, this.radialOffset_2, castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_165(other){ + return this === other; +} +; +_.reversed = function reversed_70(){ + return new Comparators$ReversedComparator(this); +} +; +_.nodeOffsetY_0 = 0; +_.radialOffset_2 = 0; +var Lorg_eclipse_elk_alg_radial_RadialUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialUtil/lambda$0$Type', 549); +function $process_89(graph, progressMonitor){ + var height, height0, margins, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, node$iterator0, offset, padding, posX, posY, width_0, width0; + $begin(progressMonitor, 'Calculate Graph Size', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + minXPos = $intern_98; + minYPos = $intern_98; + maxXPos = $intern_124; + maxYPos = $intern_124; + for (node$iterator0 = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 33); + posX = node.x_0; + posY = node.y_0; + width0 = node.width_0; + height0 = node.height; + margins = castTo($getProperty_0(node, ($clinit_CoreOptions() , MARGINS_0)), 142); + minXPos = $wnd.Math.min(minXPos, posX - margins.left); + minYPos = $wnd.Math.min(minYPos, posY - margins.top_0); + maxXPos = $wnd.Math.max(maxXPos, posX + width0 + margins.right); + maxYPos = $wnd.Math.max(maxYPos, posY + height0 + margins.bottom); + } + padding = castTo($getProperty_0(graph, ($clinit_CoreOptions() , PADDING_6)), 116); + offset = new KVector_1(minXPos - padding.left, minYPos - padding.top_0); + for (node$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + $setX_2(node, node.x_0 - offset.x_0); + $setY_3(node, node.y_0 - offset.y_0); + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + $setWidth_0(graph, width_0); + $setHeight_0(graph, height); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function CalculateGraphSize(){ +} + +defineClass(1375, 1, $intern_105, CalculateGraphSize); +_.process = function process_85(graph, progressMonitor){ + $process_89(castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_CalculateGraphSize_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'CalculateGraphSize', 1375); +function $clinit_IntermediateProcessorStrategy_1(){ + $clinit_IntermediateProcessorStrategy_1 = emptyMethod; + OVERLAP_REMOVAL = new IntermediateProcessorStrategy_1('OVERLAP_REMOVAL', 0); + COMPACTION = new IntermediateProcessorStrategy_1('COMPACTION', 1); + GRAPH_SIZE_CALCULATION = new IntermediateProcessorStrategy_1('GRAPH_SIZE_CALCULATION', 2); +} + +function IntermediateProcessorStrategy_1(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_78(name_0){ + $clinit_IntermediateProcessorStrategy_1(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_1() , $MAP_66), name_0); +} + +function values_84(){ + $clinit_IntermediateProcessorStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]); +} + +defineClass(442, 22, {3:1, 35:1, 22:1, 442:1, 234:1}, IntermediateProcessorStrategy_1); +_.create_1 = function create_24(){ + switch (this.ordinal) { + case 0: + return new RadiusExtensionOverlapRemoval; + case 1: + return new GeneralCompactor; + case 2: + return new CalculateGraphSize; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var COMPACTION, GRAPH_SIZE_CALCULATION, OVERLAP_REMOVAL; +var Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.intermediate', 'IntermediateProcessorStrategy', 442, Ljava_lang_Enum_2_classLit, values_84, valueOf_78); +function $clinit_IntermediateProcessorStrategy$Map_1(){ + $clinit_IntermediateProcessorStrategy$Map_1 = emptyMethod; + $MAP_66 = createValueOfMap(($clinit_IntermediateProcessorStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]))); +} + +var $MAP_66; +function $contractLayer(this$static, layerNodes, isContracting){ + var length_0, node, node$iterator, parentX, parentY, treeParent, x_0, xPos, y_0, yPos; + for (node$iterator = layerNodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + xPos = node.x_0 + node.width_0 / 2; + yPos = node.y_0 + node.height / 2; + treeParent = this$static.root_0; + parentX = treeParent.x_0 + treeParent.width_0 / 2; + parentY = treeParent.y_0 + treeParent.height / 2; + x_0 = xPos - parentX; + y_0 = yPos - parentY; + length_0 = $wnd.Math.sqrt(x_0 * x_0 + y_0 * y_0); + x_0 *= this$static.compactionStep / length_0; + y_0 *= this$static.compactionStep / length_0; + if (isContracting) { + xPos -= x_0; + yPos -= y_0; + } + else { + xPos += x_0; + yPos += y_0; + } + $setX_2(node, xPos - node.width_0 / 2); + $setY_3(node, yPos - node.height / 2); + } +} + +function $overlap_1(this$static, node1, node2){ + var height1, height2, width1, width2, x1, x2, y1, y2; + x1 = node1.x_0 - this$static.spacing / 2; + x2 = node2.x_0 - this$static.spacing / 2; + y1 = node1.y_0 - this$static.spacing / 2; + y2 = node2.y_0 - this$static.spacing / 2; + width1 = node1.width_0 + this$static.spacing / 2; + width2 = node2.width_0 + this$static.spacing / 2; + height1 = node1.height + this$static.spacing / 2; + height2 = node2.height + this$static.spacing / 2; + if (x1 < x2 + width2 && x2 < x1 && y1 < y2 + height2 && y2 < y1) { + return true; + } + else if (x2 < x1 + width1 && x1 < x2 && y2 < y1 + height1 && y1 < y2) { + return true; + } + else if (x1 < x2 + width2 && x2 < x1 && y1 < y2 && y2 < y1 + height1) { + return true; + } + else if (x2 < x1 + width1 && x1 < x2 && y1 < y2 + height2 && y2 < y1) { + return true; + } + return false; +} + +function $overlapLayer(this$static, nodes){ + var i, overlapping; + overlapping = false; + if (nodes.size_1() < 2) { + return false; + } + for (i = 0; i < nodes.size_1(); i++) { + i < nodes.size_1() - 1?(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(i + 1), 33))):(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(0), 33))); + } + return overlapping; +} + +function $setCompactionStep(this$static, compactionStep){ + this$static.compactionStep = compactionStep; +} + +function $setRoot(this$static, root){ + this$static.root_0 = root; +} + +function $setSpacing(this$static, spacing){ + this$static.spacing = spacing; +} + +defineClass(645, 1, {}); +_.compactionStep = 1; +_.spacing = 0; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AbstractRadiusExtensionCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AbstractRadiusExtensionCompaction', 645); +function $constructContour(this$static, nodes){ + var node, node$iterator, successors; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + $put(this$static.leftContour, node, node); + $put(this$static.rightContour, node, node); + successors = getSuccessors(node); + if (successors.array.length != 0) { + !!this$static.sorter && this$static.sorter.sort_1(successors); + $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); + while (getNextLevelNodes(successors).array.length != 0) { + successors = getNextLevelNodes(successors); + !!this$static.sorter && this$static.sorter.sort_1(successors); + $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); + } + } + } +} + +function $contourOverlap(this$static, neighbourWedgeParent, node, left){ + var contour, contourNode, contourNode$iterator; + contour = left?castTo($get(this$static.leftContour, neighbourWedgeParent), 21):castTo($get(this$static.rightContour, neighbourWedgeParent), 21); + for (contourNode$iterator = contour.iterator_0(); contourNode$iterator.hasNext_0();) { + contourNode = castTo(contourNode$iterator.next_1(), 33); + if ($overlap_1(this$static, node, contourNode)) { + return true; + } + } + return false; +} + +function $contractWedge(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes){ + var isOverlapping, nextLevelNodes, wasContracted; + isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); + wasContracted = false; + while (!isOverlapping) { + $contractLayer(this$static, currentRadiusNodes, true); + wasContracted = true; + isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); + } + wasContracted && $contractLayer(this$static, currentRadiusNodes, false); + nextLevelNodes = getNextLevelNodes(currentRadiusNodes); + if (nextLevelNodes.array.length != 0) { + !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); + $contractWedge(this$static, currentRadiusNodes, radialPredecessor, radialSuccessor, nextLevelNodes); + } +} + +function $overlapping(this$static, predecessors, leftParent, rightParent, layerNodes){ + var firstNode, lastNode, predecessor, predecessor$iterator, sortedNode, sortedNode$iterator; + !!this$static.sorter && this$static.sorter.sort_1(layerNodes); + firstNode = castTo(layerNodes.get_0(0), 33); + if ($contourOverlap(this$static, leftParent, firstNode, false)) { + return true; + } + lastNode = castTo(layerNodes.get_0(layerNodes.size_1() - 1), 33); + if ($contourOverlap(this$static, rightParent, lastNode, true)) { + return true; + } + if ($overlapLayer(this$static, layerNodes)) { + return true; + } + for (sortedNode$iterator = layerNodes.iterator_0(); sortedNode$iterator.hasNext_0();) { + sortedNode = castTo(sortedNode$iterator.next_1(), 33); + for (predecessor$iterator = predecessors.iterator_0(); predecessor$iterator.hasNext_0();) { + predecessor = castTo(predecessor$iterator.next_1(), 33); + if ($overlap_1(this$static, sortedNode, predecessor)) { + return true; + } + } + } + return false; +} + +function AnnulusWedgeCompaction(){ + this.leftContour = new HashMultimap; + this.rightContour = new HashMultimap; +} + +defineClass(1772, 645, {}, AnnulusWedgeCompaction); +_.compact_0 = function compact_2(graph){ + var i, k, leftParent, nodeAsList, rightParent, rootList, spacing, stepSize, successors; + this.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + $setRoot(this, this.root); + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); + !!stepSize && $setCompactionStep(this, stepSize.value_0); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); + successors = getSuccessors(this.root); + !!this.sorter && this.sorter.sort_1(successors); + $constructContour(this, successors); + rootList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [this.root])); + for (k = 0; k < 2; k++) { + for (i = 0; i < successors.array.length; i++) { + nodeAsList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [(checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33))])); + rightParent = i < successors.array.length - 1?(checkCriticalElementIndex(i + 1, successors.array.length) , castTo(successors.array[i + 1], 33)):(checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33)); + leftParent = i == 0?castTo($get_11(successors, successors.array.length - 1), 33):(checkCriticalElementIndex(i - 1, successors.array.length) , castTo(successors.array[i - 1], 33)); + $contractWedge(this, (checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33) , rootList), leftParent, rightParent, nodeAsList); + } + } +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AnnulusWedgeCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AnnulusWedgeCompaction', 1772); +function $process_90(graph, progressMonitor){ + var compactor; + $begin(progressMonitor, 'General Compactor', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + compactor = $create_11(castTo($getProperty_0(graph, ($clinit_RadialOptions() , COMPACTOR_0)), 380)); + compactor.compact_0(graph); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function GeneralCompactor(){ +} + +defineClass(1374, 1, $intern_105, GeneralCompactor); +_.process = function process_86(graph, progressMonitor){ + $process_90(castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_GeneralCompactor_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'GeneralCompactor', 1374); +function $calculateRadius(this$static, node){ + var radius, root, rootX, rootY, vectorX, vectorY, xPos, yPos; + xPos = node.x_0; + yPos = node.y_0; + root = this$static.root_0; + rootX = root.x_0; + rootY = root.y_0; + vectorX = xPos - rootX; + vectorY = yPos - rootY; + radius = $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + return radius; +} + +function $contract(this$static, nodes){ + var isOverlapping, nextLevelNodes, wasContracted; + if (nodes.array.length != 0) { + isOverlapping = $overlapping_0(this$static, nodes); + wasContracted = false; + while (!isOverlapping) { + $contractLayer(this$static, nodes, true); + wasContracted = true; + isOverlapping = $overlapping_0(this$static, nodes); + } + wasContracted && $contractLayer(this$static, nodes, false); + nextLevelNodes = getNextLevelNodes(nodes); + !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); + this$static.lastRadius = $calculateRadius(this$static, (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33))); + $contract(this$static, nextLevelNodes); + } +} + +function $overlapping_0(this$static, nodes){ + var node, node$iterator, parent_0; + if ($overlapLayer(this$static, nodes)) { + return true; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + parent_0 = getTreeParent(node); + if ($overlap_1(this$static, node, parent_0)) { + return true; + } + if ($calculateRadius(this$static, node) - this$static.spacing <= this$static.lastRadius) { + return true; + } + } + return false; +} + +function RadialCompaction(){ +} + +defineClass(1771, 645, {}, RadialCompaction); +_.compact_0 = function compact_3(graph){ + var firstLevelNodes, root, spacing, stepSize; + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this.root_0 = root; + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); + !!stepSize && $setCompactionStep(this, stepSize.value_0); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); + firstLevelNodes = getSuccessors(root); + !!this.sorter && this.sorter.sort_1(firstLevelNodes); + $contract(this, firstLevelNodes); +} +; +_.lastRadius = 0; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_RadialCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'RadialCompaction', 1771); +function $isCrossing(this$static, node1, node2){ + var b1, b2, m1, m2, node1Vector, node2Vector, position1, position2, rootX, rootY, xCut, xPos1, xPos2, yPos1, yPos2; + rootX = this$static.root.x_0 + this$static.root.width_0 / 2; + rootY = this$static.root.x_0 + this$static.root.width_0 / 2; + xPos1 = node1.x_0 + node1.width_0 / 2; + yPos1 = node1.y_0 + node1.height / 2; + node1Vector = new KVector_1(xPos1, yPos1); + position1 = castTo($getProperty_0(node1, ($clinit_CoreOptions() , POSITION_2)), 8); + position1.x_0 = position1.x_0 + rootX; + position1.y_0 = position1.y_0 + rootY; + m1 = (node1Vector.y_0 - position1.y_0) / (node1Vector.x_0 - position1.x_0); + b1 = node1Vector.y_0 - m1 * node1Vector.x_0; + xPos2 = node2.x_0 + node2.width_0 / 2; + yPos2 = node2.y_0 + node2.height / 2; + node2Vector = new KVector_1(xPos2, yPos2); + position2 = castTo($getProperty_0(node2, POSITION_2), 8); + position2.x_0 = position2.x_0 + rootX; + position2.y_0 = position2.y_0 + rootY; + m2 = (node2Vector.y_0 - position2.y_0) / (node2Vector.x_0 - position2.x_0); + b2 = node2Vector.y_0 - m2 * node2Vector.x_0; + xCut = (b1 - b2) / (m2 - m1); + if (position1.x_0 < xCut && node1Vector.x_0 < xCut || xCut < position1.x_0 && xCut < node1Vector.x_0) { + return false; + } + else if (position2.x_0 < xCut && node2Vector.x_0 < xCut || xCut < position2.x_0 && xCut < node2Vector.x_0) { + return false; + } + return true; +} + +function CrossingMinimizationPosition(){ +} + +defineClass(1779, 1, {}, CrossingMinimizationPosition); +_.evaluate = function evaluate(rootNode){ + var crossings, i, k, node1, node1$iterator, nodes; + this.root = rootNode; + crossings = 0; + nodes = getSuccessors(rootNode); + k = 0; + for (node1$iterator = new ArrayList$1(nodes); node1$iterator.i < node1$iterator.this$01.array.length;) { + node1 = castTo($next_7(node1$iterator), 33); + ++k; + for (i = k; i < nodes.array.length; i++) { + $isCrossing(this, node1, (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 33))) && (crossings += 1); + } + } + return crossings; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_CrossingMinimizationPosition_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'CrossingMinimizationPosition', 1779); +function EdgeLengthOptimization(){ +} + +defineClass(1777, 1, {}, EdgeLengthOptimization); +_.evaluate = function evaluate_0(root){ + var edge, edge$iterator, edgeLength, rootX, rootY, sourceClip, target, targetClip, targetX, targetY, vector, vectorX, vectorY; + edgeLength = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + rootX = root.x_0 + root.width_0 / 2; + rootY = root.y_0 + root.height / 2; + vector = new KVector; + vector.x_0 = targetX - rootX; + vector.y_0 = targetY - rootY; + sourceClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(sourceClip, root.width_0, root.height); + vector.x_0 -= sourceClip.x_0; + vector.y_0 -= sourceClip.y_0; + rootX = targetX - vector.x_0; + rootY = targetY - vector.y_0; + targetClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(targetClip, target.width_0, target.height); + vector.x_0 -= targetClip.x_0; + vector.y_0 -= targetClip.y_0; + targetX = rootX + vector.x_0; + targetY = rootY + vector.y_0; + vectorX = targetX - rootX; + vectorY = targetY - rootY; + edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + } + return edgeLength; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthOptimization', 1777); +function EdgeLengthPositionOptimization(){ +} + +defineClass(1778, 1, {}, EdgeLengthPositionOptimization); +_.evaluate = function evaluate_1(root){ + var edge, edge$iterator, edgeLength, position, rootX, rootY, target, targetX, targetY, vectorX, vectorY; + edgeLength = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + position = castTo($getProperty_0(target, ($clinit_CoreOptions() , POSITION_2)), 8); + rootX = root.x_0 + position.x_0 + root.width_0 / 2; + rootY = root.y_0 + position.y_0 + root.height; + vectorX = targetX - rootX; + vectorY = targetY - rootY; + edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + } + return edgeLength; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthPositionOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthPositionOptimization', 1778); +function $extend(this$static, graph, nodes, progressMonitor){ + var firstNode, index_0, movedDistance, movedX, movedY, nextLevelNode, nextLevelNode$iterator, nextLevelNodes, node, node$iterator, oldPositions, root, rootX, rootY, nodeX, nodeY, differenceX, differenceY, length_0, unitX, unitY; + if (nodes.array.length != 0) { + oldPositions = new ArrayList; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + $add_3(oldPositions, new KVector_1(node.x_0, node.y_0)); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + while ($overlapLayer(this$static, nodes)) { + $contractLayer(this$static, nodes, false); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + movedX = 0; + movedY = 0; + firstNode = null; + if (nodes.array.length != 0) { + firstNode = (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33)); + movedX = firstNode.x_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).x_0; + movedY = firstNode.y_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).y_0; + } + movedDistance = $wnd.Math.sqrt(movedX * movedX + movedY * movedY); + nextLevelNodes = getNextLevelNodeSet(nodes); + index_0 = 1; + while (nextLevelNodes.map_0.size_1() != 0) { + for (nextLevelNode$iterator = nextLevelNodes.map_0.keySet_0().iterator_0(); nextLevelNode$iterator.hasNext_0();) { + nextLevelNode = castTo(nextLevelNode$iterator.next_1(), 33); + root = this$static.root_0; + rootX = root.x_0 + root.width_0 / 2; + rootY = root.y_0 + root.height / 2; + nodeX = nextLevelNode.x_0 + nextLevelNode.width_0 / 2; + nodeY = nextLevelNode.y_0 + nextLevelNode.height / 2; + differenceX = nodeX - rootX; + differenceY = nodeY - rootY; + length_0 = $wnd.Math.sqrt(differenceX * differenceX + differenceY * differenceY); + unitX = differenceX / length_0; + unitY = differenceY / length_0; + $setX_2(nextLevelNode, nextLevelNode.x_0 + unitX * movedDistance); + $setY_3(nextLevelNode, nextLevelNode.y_0 + unitY * movedDistance); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + nextLevelNodes = getNextLevelNodeSet(new ArrayList_1(nextLevelNodes)); + ++index_0; + } + !!this$static.sorter && this$static.sorter.sort_1(new ArrayList_1(nextLevelNodes)); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + $extend(this$static, graph, new ArrayList_1(nextLevelNodes), progressMonitor); + } +} + +function $process_91(this$static, graph, progressMonitor){ + var root, spacing, successors; + $begin(progressMonitor, 'Remove overlaps', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this$static.root_0 = root; + this$static.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this$static, (checkCriticalNotNull(spacing) , spacing)); + successors = getSuccessors(root); + $extend(this$static, graph, successors, progressMonitor); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function RadiusExtensionOverlapRemoval(){ +} + +defineClass(1373, 645, $intern_105, RadiusExtensionOverlapRemoval); +_.process = function process_87(graph, progressMonitor){ + $process_91(this, castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_overlaps_RadiusExtensionOverlapRemoval_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.overlaps', 'RadiusExtensionOverlapRemoval', 1373); +function $clinit_AnnulusWedgeCriteria(){ + $clinit_AnnulusWedgeCriteria = emptyMethod; + LEAF_NUMBER = new AnnulusWedgeCriteria('LEAF_NUMBER', 0); + NODE_SIZE_0 = new AnnulusWedgeCriteria('NODE_SIZE', 1); +} + +function $create_10(this$static){ + switch (this$static.ordinal) { + case 0: + return new AnnulusWedgeByLeafs; + case 1: + return new AnnulusWedgeByNodeSpace; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function AnnulusWedgeCriteria(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_79(name_0){ + $clinit_AnnulusWedgeCriteria(); + return valueOf(($clinit_AnnulusWedgeCriteria$Map() , $MAP_67), name_0); +} + +function values_85(){ + $clinit_AnnulusWedgeCriteria(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]); +} + +defineClass(426, 22, {3:1, 35:1, 22:1, 426:1}, AnnulusWedgeCriteria); +var LEAF_NUMBER, NODE_SIZE_0; +var Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'AnnulusWedgeCriteria', 426, Ljava_lang_Enum_2_classLit, values_85, valueOf_79); +function $clinit_AnnulusWedgeCriteria$Map(){ + $clinit_AnnulusWedgeCriteria$Map = emptyMethod; + $MAP_67 = createValueOfMap(($clinit_AnnulusWedgeCriteria() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]))); +} + +var $MAP_67; +function $clinit_CompactionStrategy_0(){ + $clinit_CompactionStrategy_0 = emptyMethod; + NONE_11 = new CompactionStrategy_0('NONE', 0); + RADIAL_COMPACTION = new CompactionStrategy_0('RADIAL_COMPACTION', 1); + WEDGE_COMPACTION = new CompactionStrategy_0('WEDGE_COMPACTION', 2); +} + +function $create_11(this$static){ + switch (this$static.ordinal) { + case 1: + return new RadialCompaction; + case 2: + return new AnnulusWedgeCompaction; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CompactionStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_80(name_0){ + $clinit_CompactionStrategy_0(); + return valueOf(($clinit_CompactionStrategy$Map_0() , $MAP_68), name_0); +} + +function values_86(){ + $clinit_CompactionStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]); +} + +defineClass(380, 22, {3:1, 35:1, 22:1, 380:1}, CompactionStrategy_0); +var NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION; +var Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'CompactionStrategy', 380, Ljava_lang_Enum_2_classLit, values_86, valueOf_80); +function $clinit_CompactionStrategy$Map_0(){ + $clinit_CompactionStrategy$Map_0 = emptyMethod; + $MAP_68 = createValueOfMap(($clinit_CompactionStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]))); +} + +var $MAP_68; +function $clinit_RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider = emptyMethod; + ORDER_ID = new Property_1('org.eclipse.elk.radial.orderId', valueOf_4(0)); + RADIUS = new Property_1('org.eclipse.elk.radial.radius', 0); + COMPACTOR_DEFAULT = ($clinit_CompactionStrategy_0() , NONE_11); + COMPACTOR = new Property_1('org.eclipse.elk.radial.compactor', COMPACTOR_DEFAULT); + valueOf_4(0); + COMPACTION_STEP_SIZE = new Property_1('org.eclipse.elk.radial.compactionStepSize', valueOf_4(1)); + SORTER_DEFAULT = ($clinit_SortingStrategy() , NONE_13); + SORTER = new Property_1('org.eclipse.elk.radial.sorter', SORTER_DEFAULT); + WEDGE_CRITERIA_DEFAULT = ($clinit_AnnulusWedgeCriteria() , NODE_SIZE_0); + WEDGE_CRITERIA = new Property_1('org.eclipse.elk.radial.wedgeCriteria', WEDGE_CRITERIA_DEFAULT); + OPTIMIZATION_CRITERIA_DEFAULT = ($clinit_RadialTranslationStrategy() , NONE_12); + OPTIMIZATION_CRITERIA = new Property_1('org.eclipse.elk.radial.optimizationCriteria', OPTIMIZATION_CRITERIA_DEFAULT); +} + +function RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider(); +} + +defineClass(852, 1, $intern_90, RadialMetaDataProvider); +_.apply_4 = function apply_159(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.orderId'), ''), 'Order ID'), 'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'), valueOf_4(0)), ($clinit_LayoutOptionData$Type() , INT)), Ljava_lang_Integer_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.radius'), ''), 'Radius'), 'The radius option can be used to set the initial radius for the radial layouter.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactor'), ''), 'Compaction'), 'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'), COMPACTOR_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactionStepSize'), ''), 'Compaction Step Size'), 'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'), valueOf_4(1)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.radial.compactionStepSize', 'org.eclipse.elk.radial.compactor', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.sorter'), ''), 'Sorter'), 'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'), SORTER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.wedgeCriteria'), ''), 'Annulus Wedge Criteria'), 'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'), WEDGE_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.optimizationCriteria'), ''), 'Translation Optimization'), 'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'), OPTIMIZATION_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit), of_1(PARENTS)))); + $apply_20((new RadialOptions , registry)); +} +; +var COMPACTION_STEP_SIZE, COMPACTOR, COMPACTOR_DEFAULT, OPTIMIZATION_CRITERIA, OPTIMIZATION_CRITERIA_DEFAULT, ORDER_ID, RADIUS, SORTER, SORTER_DEFAULT, WEDGE_CRITERIA, WEDGE_CRITERIA_DEFAULT; +var Lorg_eclipse_elk_alg_radial_options_RadialMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialMetaDataProvider', 852); +function $clinit_RadialOptions(){ + $clinit_RadialOptions = emptyMethod; + POSITION_1 = ($clinit_CoreOptions() , POSITION_2); + SPACING_NODE_NODE_2 = SPACING_NODE_NODE_6; + NODE_SIZE_CONSTRAINTS_3 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_2 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_3 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_3 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_2 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_3 = PORT_LABELS_PLACEMENT_5; + COMPACTION_STEP_SIZE_0 = ($clinit_RadialMetaDataProvider() , COMPACTION_STEP_SIZE); + COMPACTOR_0 = COMPACTOR; + OPTIMIZATION_CRITERIA_0 = OPTIMIZATION_CRITERIA; + ORDER_ID_0 = ORDER_ID; + RADIUS_0 = RADIUS; + SORTER_0 = SORTER; + WEDGE_CRITERIA_0 = WEDGE_CRITERIA; +} + +function $apply_20(registry){ + $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.radial'), 'ELK Radial'), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new RadialOptions$RadialFactory), 'org.eclipse.elk.radial'))); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.position', $getDefault(POSITION_1)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactionStepSize', $getDefault(COMPACTION_STEP_SIZE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactor', $getDefault(COMPACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.optimizationCriteria', $getDefault(OPTIMIZATION_CRITERIA_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.orderId', $getDefault(ORDER_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.radius', $getDefault(RADIUS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.sorter', $getDefault(SORTER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.wedgeCriteria', $getDefault(WEDGE_CRITERIA_0)); +} + +function RadialOptions(){ + $clinit_RadialOptions(); +} + +defineClass(996, 1, $intern_90, RadialOptions); +_.apply_4 = function apply_160(registry){ + $apply_20(registry); +} +; +var COMPACTION_STEP_SIZE_0, COMPACTOR_0, NODE_LABELS_PLACEMENT_3, NODE_SIZE_CONSTRAINTS_3, NODE_SIZE_MINIMUM_2, NODE_SIZE_OPTIONS_3, OMIT_NODE_MICRO_LAYOUT_2, OPTIMIZATION_CRITERIA_0, ORDER_ID_0, PORT_LABELS_PLACEMENT_3, POSITION_1, RADIUS_0, SORTER_0, SPACING_NODE_NODE_2, WEDGE_CRITERIA_0; +var Lorg_eclipse_elk_alg_radial_options_RadialOptions_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions', 996); +function RadialOptions$RadialFactory(){ +} + +defineClass(997, 1, {}, RadialOptions$RadialFactory); +_.create_0 = function create_25(){ + var provider; + return provider = new RadialLayoutProvider , provider; +} +; +_.destroy = function destroy_4(obj){ +} +; +var Lorg_eclipse_elk_alg_radial_options_RadialOptions$RadialFactory_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions/RadialFactory', 997); +function $clinit_RadialTranslationStrategy(){ + $clinit_RadialTranslationStrategy = emptyMethod; + NONE_12 = new RadialTranslationStrategy('NONE', 0); + EDGE_LENGTH_0 = new RadialTranslationStrategy('EDGE_LENGTH', 1); + EDGE_LENGTH_BY_POSITION = new RadialTranslationStrategy('EDGE_LENGTH_BY_POSITION', 2); + CROSSING_MINIMIZATION_BY_POSITION = new RadialTranslationStrategy('CROSSING_MINIMIZATION_BY_POSITION', 3); +} + +function $create_12(this$static){ + switch (this$static.ordinal) { + case 1: + return new EdgeLengthOptimization; + case 2: + return new EdgeLengthPositionOptimization; + case 3: + return new CrossingMinimizationPosition; + case 0: + return null; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function RadialTranslationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_81(name_0){ + $clinit_RadialTranslationStrategy(); + return valueOf(($clinit_RadialTranslationStrategy$Map() , $MAP_69), name_0); +} + +function values_87(){ + $clinit_RadialTranslationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]); +} + +defineClass(340, 22, {3:1, 35:1, 22:1, 340:1}, RadialTranslationStrategy); +var CROSSING_MINIMIZATION_BY_POSITION, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, NONE_12; +var Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'RadialTranslationStrategy', 340, Ljava_lang_Enum_2_classLit, values_87, valueOf_81); +function $clinit_RadialTranslationStrategy$Map(){ + $clinit_RadialTranslationStrategy$Map = emptyMethod; + $MAP_69 = createValueOfMap(($clinit_RadialTranslationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]))); +} + +var $MAP_69; +function $clinit_SortingStrategy(){ + $clinit_SortingStrategy = emptyMethod; + NONE_13 = new SortingStrategy('NONE', 0); + POLAR_COORDINATE = new SortingStrategy('POLAR_COORDINATE', 1); + ID_0 = new SortingStrategy('ID', 2); +} + +function $create_13(this$static){ + switch (this$static.ordinal) { + case 0: + return null; + case 1: + return new PolarCoordinateSorter; + case 2: + return new IDSorter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function SortingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_82(name_0){ + $clinit_SortingStrategy(); + return valueOf(($clinit_SortingStrategy$Map() , $MAP_70), name_0); +} + +function values_88(){ + $clinit_SortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]); +} + +defineClass(293, 22, {3:1, 35:1, 22:1, 293:1}, SortingStrategy); +var ID_0, NONE_13, POLAR_COORDINATE; +var Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'SortingStrategy', 293, Ljava_lang_Enum_2_classLit, values_88, valueOf_82); +function $clinit_SortingStrategy$Map(){ + $clinit_SortingStrategy$Map = emptyMethod; + $MAP_70 = createValueOfMap(($clinit_SortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]))); +} + +var $MAP_70; +function $positionNodes(this$static, node, currentRadius, minAlpha, maxAlpha, optimalOffset){ + var alpha_0, alphaPoint, child, child$iterator, numberOfChildLeafs, numberOfLeafs, radOffest, s, successors, tau, xPos, yPos, xPosition, yPosition; + radOffest = optimalOffset; + alphaPoint = (minAlpha + maxAlpha) / 2 + radOffest; + xPos = currentRadius * $wnd.Math.cos(alphaPoint); + yPos = currentRadius * $wnd.Math.sin(alphaPoint); + xPosition = xPos - node.width_0 / 2; + yPosition = yPos - node.height / 2; + $setX_2(node, xPosition); + $setY_3(node, yPosition); + numberOfLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(node); + tau = 2 * $wnd.Math.acos(currentRadius / currentRadius + this$static.radius); + if (tau < maxAlpha - minAlpha) { + s = tau / numberOfLeafs; + alpha_0 = (minAlpha + maxAlpha - tau) / 2; + } + else { + s = (maxAlpha - minAlpha) / numberOfLeafs; + alpha_0 = minAlpha; + } + successors = getSuccessors(node); + if (this$static.sorter) { + this$static.sorter.initialize_0(this$static.root); + this$static.sorter.sort_1(successors); + } + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 33); + numberOfChildLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(child); + $positionNodes(this$static, child, currentRadius + this$static.radius, alpha_0, alpha_0 + s * numberOfChildLeafs, optimalOffset); + alpha_0 += s * numberOfChildLeafs; + } +} + +function $process_92(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Eades radial', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + this$static.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this$static.radius = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , RADIUS_0)))); + this$static.sorter = $create_13(castTo($getProperty_0(graph, SORTER_0), 293)); + this$static.annulusWedgeCriteria = $create_10(castTo($getProperty_0(graph, WEDGE_CRITERIA_0), 426)); + this$static.optimizer = $create_12(castTo($getProperty_0(graph, OPTIMIZATION_CRITERIA_0), 340)); + $translate_0(this$static); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function $translate_0(this$static){ + var i, offset, optimalOffset, optimalValue, translatedValue; + optimalOffset = 0; + optimalValue = $intern_98; + if (this$static.optimizer) { + for (i = 0; i < 360; i++) { + offset = i * 0.017453292519943295; + $positionNodes(this$static, this$static.root, 0, 0, $intern_123, offset); + translatedValue = this$static.optimizer.evaluate(this$static.root); + if (translatedValue < optimalValue) { + optimalOffset = offset; + optimalValue = translatedValue; + } + } + } + $positionNodes(this$static, this$static.root, 0, 0, $intern_123, optimalOffset); +} + +function EadesRadial(){ +} + +defineClass(1449, 1, $intern_113, EadesRadial); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_24(graph){ + return castTo(graph, 33) , null; +} +; +_.process = function process_88(graph, progressMonitor){ + $process_92(this, castTo(graph, 33), progressMonitor); +} +; +_.radius = 0; +var Lorg_eclipse_elk_alg_radial_p1position_EadesRadial_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position', 'EadesRadial', 1449); +function AnnulusWedgeByLeafs(){ +} + +defineClass(1775, 1, {}, AnnulusWedgeByLeafs); +_.calculateWedgeSpace = function calculateWedgeSpace(node){ + return getNumberOfLeaves(node); +} +; +var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByLeafs_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByLeafs', 1775); +function $calculateWedgeSpace(this$static, node){ + var child, child$iterator, childSpace, height, nodeSize, successors, width_0; + successors = getSuccessors(node); + height = node.height; + width_0 = node.width_0; + nodeSize = $wnd.Math.sqrt(height * height + width_0 * width_0); + childSpace = 0; + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 33); + childSpace += $calculateWedgeSpace(this$static, child); + } + return $wnd.Math.max(childSpace, nodeSize); +} + +function AnnulusWedgeByNodeSpace(){ +} + +defineClass(1776, 1, {}, AnnulusWedgeByNodeSpace); +_.calculateWedgeSpace = function calculateWedgeSpace_0(node){ + return $calculateWedgeSpace(this, node); +} +; +var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByNodeSpace_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByNodeSpace', 1776); +function $process_93(this$static, graph, progressMonitor){ + var root; + $begin(progressMonitor, 'Straight Line Edge Routing', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + $routeEdges_1(this$static, root); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function $routeEdges_1(this$static, node){ + var edge, edge$iterator, section, sourceClip, sourceX, sourceY, target, targetClip, targetX, targetY, vector; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + if (!instanceOf($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 186)) { + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + if (!$isHierarchical(edge)) { + sourceX = node.x_0 + node.width_0 / 2; + sourceY = node.y_0 + node.height / 2; + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + vector = new KVector; + vector.x_0 = targetX - sourceX; + vector.y_0 = targetY - sourceY; + sourceClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(sourceClip, node.width_0, node.height); + vector.x_0 -= sourceClip.x_0; + vector.y_0 -= sourceClip.y_0; + sourceX = targetX - vector.x_0; + sourceY = targetY - vector.y_0; + targetClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(targetClip, target.width_0, target.height); + vector.x_0 -= targetClip.x_0; + vector.y_0 -= targetClip.y_0; + targetX = sourceX + vector.x_0; + targetY = sourceY + vector.y_0; + section = firstEdgeSection(edge, true, true); + $setStartX(section, sourceX); + $setStartY(section, sourceY); + $setEndX(section, targetX); + $setEndY(section, targetY); + $routeEdges_1(this$static, target); + } + } + } +} + +function StraightLineEdgeRouter(){ +} + +defineClass(1450, 1, $intern_113, StraightLineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_25(graph){ + return castTo(graph, 33) , null; +} +; +_.process = function process_89(graph, progressMonitor){ + $process_93(this, castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_p2routing_StraightLineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.radial.p2routing', 'StraightLineEdgeRouter', 1450); +function $sort_2(this$static, nodes){ + nodes.sort_0(this$static.idSorter); +} + +function IDSorter(){ + this.idSorter = new IDSorter$lambda$0$Type; +} + +function lambda$0_31(node1_0, node2_1){ + var orderID1, orderID2; + orderID1 = castTo($getProperty_0(node1_0, ($clinit_RadialOptions() , ORDER_ID_0)), 19); + orderID2 = castTo($getProperty_0(node2_1, ORDER_ID_0), 19); + return compare_5(orderID1.value_0, orderID2.value_0); +} + +defineClass(811, 1, {}, IDSorter); +_.initialize_0 = function initialize_3(root){ +} +; +_.sort_1 = function sort_10(nodes){ + $sort_2(this, nodes); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter', 811); +function IDSorter$lambda$0$Type(){ +} + +defineClass(1774, 1, $intern_88, IDSorter$lambda$0$Type); +_.compare_1 = function compare_79(arg0, arg1){ + return lambda$0_31(castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_166(other){ + return this === other; +} +; +_.reversed = function reversed_71(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter/lambda$0$Type', 1774); +function $initialize_7(this$static, root){ + var successors; + this$static.idSorter = new IDSorter; + successors = getSuccessors(root); + $sort(successors, this$static.compRight); + $setIDForNodes(this$static, successors, 0); +} + +function $setIDForNodes(this$static, nodes, idOffset){ + var arc, id_0, nextLayerId, node, node$iterator, nodeSuccessors; + id_0 = idOffset; + nextLayerId = 0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + $setProperty_1(node, ($clinit_RadialOptions() , ORDER_ID_0), valueOf_4(id_0++)); + nodeSuccessors = getSuccessors(node); + arc = $wnd.Math.atan2(node.y_0 + node.height / 2, node.x_0 + node.width_0 / 2); + arc += arc < 0?$intern_123:0; + arc < 0.7853981633974483 || arc > $intern_126?$sort(nodeSuccessors, this$static.compLeft):arc <= $intern_126 && arc > $intern_127?$sort(nodeSuccessors, this$static.compTop):arc <= $intern_127 && arc > $intern_128?$sort(nodeSuccessors, this$static.compRight):arc <= $intern_128 && $sort(nodeSuccessors, this$static.compBottom); + nextLayerId = $setIDForNodes(this$static, nodeSuccessors, nextLayerId); + } + return id_0; +} + +function PolarCoordinateSorter(){ + this.compRight = new RadialUtil$lambda$0$Type(0); + this.compLeft = new RadialUtil$lambda$0$Type($intern_122); + this.compTop = new RadialUtil$lambda$0$Type($intern_121); + this.compBottom = new RadialUtil$lambda$0$Type($intern_97); +} + +defineClass(1773, 1, {}, PolarCoordinateSorter); +_.initialize_0 = function initialize_4(root){ + $initialize_7(this, root); +} +; +_.sort_1 = function sort_11(nodes){ + var root; + if (!nodes.isEmpty()) { + if (!this.idSorter) { + root = findRootOfNode(castTo(nodes.get_0(0), 33)); + $initialize_7(this, root); + } + $sort_2(this.idSorter, nodes); + } +} +; +var Lorg_eclipse_elk_alg_radial_sorting_PolarCoordinateSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'PolarCoordinateSorter', 1773); +function RectPackingLayoutProvider(){ +} + +function applyPadding(rectangles, padding){ + var rect, rect$iterator; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 33); + $setLocation_1(rect, rect.x_0 + padding.left, rect.y_0 + padding.top_0); + } +} + +function lambda$0_32(a_0, b_1){ + var positionA, positionB; + positionA = castTo($getProperty_0(a_0, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 19).value_0; + positionB = castTo($getProperty_0(b_1, DESIRED_POSITION_0), 19).value_0; + return positionA == positionB?-1:positionA < positionB?-1:positionA > positionB?1:0; +} + +defineClass(1136, 209, $intern_96, RectPackingLayoutProvider); +_.layout = function layout_5(layoutGraph, progressMonitor){ + var aspectRatio, builder, compaction, drawing, elkNode, elkNode$iterator, elkNode$iterator0, elkNode$iterator1, elkNode$iterator2, expandNodes, expandToAspectRatio, firstIt, fixedNodes, goal, index_0, interactive, lastPlaceShift, maxWidth, minSize, nodeNodeSpacing, onlyFirstIteration, padding, position, rectangles, secondIt, targetWidth; + $begin(progressMonitor, 'Rectangle Packing', 1); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + aspectRatio = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); + goal = castTo($getProperty_0(layoutGraph, OPTIMIZATION_GOAL_0), 381); + lastPlaceShift = $booleanValue(castToBoolean($getProperty_0(layoutGraph, LAST_PLACE_SHIFT_0))); + onlyFirstIteration = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ONLY_FIRST_ITERATION_0))); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_NODES))); + padding = castTo($getProperty_0(layoutGraph, PADDING_3), 116); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, SPACING_NODE_NODE_3))); + compaction = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROW_COMPACTION_0))); + expandToAspectRatio = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_TO_ASPECT_RATIO_0))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutGraph, INTERACTIVE_5))); + targetWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, TARGET_WIDTH_0))); + rectangles = (!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children); + resetCoordinates(rectangles); + if (interactive) { + fixedNodes = new ArrayList; + for (elkNode$iterator0 = new AbstractEList$EIterator(rectangles); elkNode$iterator0.cursor != elkNode$iterator0.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator0), 33); + $hasProperty_0(elkNode, DESIRED_POSITION_0) && (fixedNodes.array[fixedNodes.array.length] = elkNode , true); + } + for (elkNode$iterator1 = new ArrayList$1(fixedNodes); elkNode$iterator1.i < elkNode$iterator1.this$01.array.length;) { + elkNode = castTo($next_7(elkNode$iterator1), 33); + $remove_32(rectangles, elkNode); + } + $clinit_Collections(); + $sort(fixedNodes, new RectPackingLayoutProvider$lambda$0$Type); + for (elkNode$iterator2 = new ArrayList$1(fixedNodes); elkNode$iterator2.i < elkNode$iterator2.this$01.array.length;) { + elkNode = castTo($next_7(elkNode$iterator2), 33); + position = castTo($getProperty_0(elkNode, DESIRED_POSITION_0), 19).value_0; + position = $wnd.Math.min(position, rectangles.size_0); + $add_20(rectangles, position, elkNode); + } + index_0 = 0; + for (elkNode$iterator = new AbstractEList$EIterator(rectangles); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 33); + $setProperty_1(elkNode, CURRENT_POSITION_0, valueOf_4(index_0)); + ++index_0; + } + } + minSize = effectiveMinSizeConstraintFor(layoutGraph); + minSize.x_0 -= padding.left + padding.right; + minSize.y_0 -= padding.top_0 + padding.bottom; + maxWidth = minSize.x_0; + if (targetWidth < 0 || targetWidth < minSize.x_0) { + firstIt = new AreaApproximation(aspectRatio, goal, lastPlaceShift); + drawing = $approxBoundingBox(firstIt, rectangles, nodeNodeSpacing, padding); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + } + else { + drawing = new DrawingData(aspectRatio, targetWidth, 0, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); + } + minSize.x_0 += padding.left + padding.right; + minSize.y_0 += padding.top_0 + padding.bottom; + if (!onlyFirstIteration) { + resetCoordinates(rectangles); + secondIt = new RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing); + maxWidth = $wnd.Math.max(minSize.x_0, drawing.drawingWidth); + drawing = $start(secondIt, rectangles, maxWidth, minSize, progressMonitor, layoutGraph, padding); + } + applyPadding(rectangles, padding); + resizeNode_1(layoutGraph, drawing.drawingWidth + (padding.left + padding.right), drawing.drawingHeight + (padding.top_0 + padding.bottom), false, true); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_3))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider', 1136); +function RectPackingLayoutProvider$lambda$0$Type(){ +} + +defineClass(1137, 1, $intern_88, RectPackingLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_80(arg0, arg1){ + return lambda$0_32(castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_167(other){ + return this === other; +} +; +_.reversed = function reversed_72(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider/lambda$0$Type', 1137); +function $approxBoundingBox(this$static, rectangles, nodeNodeSpacing, padding){ + var bestOpt, currentValues, firstRect, lastPlaced, opt1, opt2, opt3, opt4, placedRects, rectangleIdx, toPlace; + firstRect = castTo($get_20(rectangles, 0), 33); + $setX_2(firstRect, 0); + $setY_3(firstRect, 0); + placedRects = new ArrayList; + placedRects.array[placedRects.array.length] = firstRect; + lastPlaced = firstRect; + currentValues = new DrawingData(this$static.aspectRatio, firstRect.width_0, firstRect.height, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); + for (rectangleIdx = 1; rectangleIdx < rectangles.size_0; rectangleIdx++) { + toPlace = castTo($get_20(rectangles, rectangleIdx), 33); + opt1 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt2 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt3 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt4 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + bestOpt = $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding); + $setX_2(toPlace, bestOpt.nextXcoordinate); + $setY_3(toPlace, bestOpt.nextYcoordinate); + $setPlacementOption(bestOpt, WHOLE_DRAWING); + currentValues = bestOpt; + lastPlaced = toPlace; + placedRects.array[placedRects.array.length] = toPlace; + } + return currentValues; +} + +function $calcValuesForOpt(this$static, option, toPlace, lastPlaced, drawing, placedRects, nodeNodeSpacing){ + var drawingHeight, drawingWidth, height, heightToPlace, newDrawing, width_0, widthToPlace, x_0, y_0; + x_0 = 0; + y_0 = 0; + drawingWidth = drawing.drawingWidth; + drawingHeight = drawing.drawingHeight; + heightToPlace = toPlace.height; + widthToPlace = toPlace.width_0; + switch (option.ordinal) { + case 0: + x_0 = lastPlaced.x_0 + lastPlaced.width_0 + nodeNodeSpacing; + this$static.lpShift?(y_0 = calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing)):(y_0 = lastPlaced.y_0); + width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); + height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); + break; + case 1: + y_0 = lastPlaced.y_0 + lastPlaced.height + nodeNodeSpacing; + this$static.lpShift?(x_0 = calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing)):(x_0 = lastPlaced.x_0); + width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); + height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); + break; + case 2: + x_0 = drawingWidth + nodeNodeSpacing; + y_0 = 0; + width_0 = drawingWidth + nodeNodeSpacing + widthToPlace; + height = $wnd.Math.max(drawingHeight, heightToPlace); + break; + case 3: + x_0 = 0; + y_0 = drawingHeight + nodeNodeSpacing; + width_0 = $wnd.Math.max(drawingWidth, widthToPlace); + height = drawingHeight + nodeNodeSpacing + heightToPlace; + break; + default:throw toJs(new IllegalArgumentException_0('IllegalPlacementOption.')); + } + newDrawing = new DrawingData_0(this$static.aspectRatio, width_0, height, option, x_0, y_0); + return newDrawing; +} + +function $checkSpecialCases(drawing1, drawing2, lastPlaced, toPlace){ + var areaLPB, areaLPR, firstOpt, firstOptLPBorCDB, firstOptLPRorCDR, firstOptLPRorLPB, lpbOpt, lprOpt, secondOpt, secondOptLPBorCDB, secondOptLPRorCDR, secondOptLPRorLPB, lastPlacedBottomBorder, toPlaceBottomBorder, maxYLPR, heightLPR, widthLPR, lastPlacedRightBorder, toPlaceRightBorder, maxXLPB, widthLPB, heightLPB; + firstOpt = drawing1.placementOption; + secondOpt = drawing2.placementOption; + firstOptLPBorCDB = firstOpt == ($clinit_DrawingDataDescriptor() , CANDIDATE_POSITION_LAST_PLACED_BELOW) || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; + secondOptLPBorCDB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; + firstOptLPRorCDR = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; + secondOptLPRorCDR = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; + firstOptLPRorLPB = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; + secondOptLPRorLPB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; + if (firstOptLPBorCDB && secondOptLPBorCDB) { + return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW?drawing1:drawing2; + } + else if (firstOptLPRorCDR && secondOptLPRorCDR) { + return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT?drawing1:drawing2; + } + else if (firstOptLPRorLPB && secondOptLPRorLPB) { + if (firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT) { + lprOpt = drawing1; + lpbOpt = drawing2; + } + else { + lprOpt = drawing2; + lpbOpt = drawing1; + } + areaLPR = (lastPlacedBottomBorder = lastPlaced.y_0 + lastPlaced.height , toPlaceBottomBorder = lprOpt.nextYcoordinate + toPlace.height , maxYLPR = $wnd.Math.max(lastPlacedBottomBorder, toPlaceBottomBorder) , heightLPR = maxYLPR - $wnd.Math.min(lastPlaced.y_0, lprOpt.nextYcoordinate) , widthLPR = lprOpt.nextXcoordinate + toPlace.width_0 - lastPlaced.x_0 , widthLPR * heightLPR); + areaLPB = (lastPlacedRightBorder = lastPlaced.x_0 + lastPlaced.width_0 , toPlaceRightBorder = lpbOpt.nextXcoordinate + toPlace.width_0 , maxXLPB = $wnd.Math.max(lastPlacedRightBorder, toPlaceRightBorder) , widthLPB = maxXLPB - $wnd.Math.min(lastPlaced.x_0, lpbOpt.nextXcoordinate) , heightLPB = lpbOpt.nextYcoordinate + toPlace.height - lastPlaced.y_0 , widthLPB * heightLPB); + return areaLPR <= areaLPB?drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_RIGHT?drawing1:drawing2:drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_BELOW?drawing1:drawing2; + } + return drawing1; +} + +function $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding){ + var candidates, filter, filter$iterator, filters; + candidates = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit, 1), $intern_2, 220, 0, [opt1, opt2, opt3, opt4])); + filters = null; + switch (this$static.goal.ordinal) { + case 1: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new ScaleMeasureFilter, new AreaFilter, new AspectRatioFilter])); + break; + case 0: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AspectRatioFilter, new AreaFilter, new ScaleMeasureFilter])); + break; + case 2: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AreaFilter, new ScaleMeasureFilter, new AspectRatioFilter])); + } + for (filter$iterator = new ArrayList$1(filters); filter$iterator.i < filter$iterator.this$01.array.length;) { + filter = castTo($next_7(filter$iterator), 526); + candidates.array.length > 1 && (candidates = filter.filterList(candidates, this$static.aspectRatio, padding)); + } + if (candidates.array.length == 1) { + return castTo($get_11(candidates, candidates.array.length - 1), 220); + } + if (candidates.array.length == 2) { + return $checkSpecialCases((checkCriticalElementIndex(0, candidates.array.length) , castTo(candidates.array[0], 220)), (checkCriticalElementIndex(1, candidates.array.length) , castTo(candidates.array[1], 220)), lastPlaced, toPlace); + } + return null; +} + +function AreaApproximation(aspectRatio, goal, lpShift){ + this.aspectRatio = aspectRatio; + this.goal = goal; + this.lpShift = lpShift; +} + +defineClass(1256, 1, {}, AreaApproximation); +_.aspectRatio = 0; +_.lpShift = false; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaApproximation_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaApproximation', 1256); +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit = createForInterface('org.eclipse.elk.alg.rectpacking.firstiteration', 'BestCandidateFilter'); +function AreaFilter(){ +} + +defineClass(638, 1, {526:1}, AreaFilter); +_.filterList = function filterList(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, minArea, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + minArea = $intern_59; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + minArea = $wnd.Math.min(minArea, (opt.drawingWidth + (padding.left + padding.right)) * (opt.drawingHeight + (padding.top_0 + padding.bottom))); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_7(candidate$iterator), 220); + (candidate.drawingWidth + (padding.left + padding.right)) * (candidate.drawingHeight + (padding.top_0 + padding.bottom)) == minArea && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaFilter', 638); +function AspectRatioFilter(){ +} + +defineClass(639, 1, {526:1}, AspectRatioFilter); +_.filterList = function filterList_0(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, opt, opt$iterator, remainingCandidates, smallestDeviation; + remainingCandidates = new ArrayList; + smallestDeviation = $intern_59; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + smallestDeviation = $wnd.Math.min(smallestDeviation, $wnd.Math.abs((opt.drawingWidth + (padding.left + padding.right)) / (opt.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio)); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_7(candidate$iterator), 220); + $wnd.Math.abs((candidate.drawingWidth + (padding.left + padding.right)) / (candidate.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio) == smallestDeviation && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AspectRatioFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AspectRatioFilter', 639); +function calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing){ + var closestLeftNeighbour, closestNeighborRightBorder, placedRect, placedRect$iterator, placedRectRightBorder; + closestLeftNeighbour = null; + closestNeighborRightBorder = 0; + for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { + placedRect = castTo($next_7(placedRect$iterator), 33); + placedRectRightBorder = placedRect.x_0 + placedRect.width_0; + if (y_0 < placedRect.y_0 + placedRect.height + nodeNodeSpacing) { + !closestLeftNeighbour?(closestLeftNeighbour = placedRect):lastPlaced.x_0 - placedRectRightBorder < lastPlaced.x_0 - closestNeighborRightBorder && (closestLeftNeighbour = placedRect); + closestNeighborRightBorder = closestLeftNeighbour.x_0 + closestLeftNeighbour.width_0; + } + } + return !closestLeftNeighbour?0:closestNeighborRightBorder + nodeNodeSpacing; +} + +function calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing){ + var closestNeighborBottomBorder, closestUpperNeighbor, placedRect, placedRect$iterator, placedRectBottomBorder; + closestUpperNeighbor = null; + closestNeighborBottomBorder = 0; + for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { + placedRect = castTo($next_7(placedRect$iterator), 33); + placedRectBottomBorder = placedRect.y_0 + placedRect.height; + if (x_0 < placedRect.x_0 + placedRect.width_0 + nodeNodeSpacing) { + !closestUpperNeighbor?(closestUpperNeighbor = placedRect):lastPlaced.y_0 - placedRectBottomBorder < lastPlaced.y_0 - closestNeighborBottomBorder && (closestUpperNeighbor = placedRect); + closestNeighborBottomBorder = closestUpperNeighbor.y_0 + closestUpperNeighbor.height; + } + } + return !closestUpperNeighbor?0:closestNeighborBottomBorder + nodeNodeSpacing; +} + +function ScaleMeasureFilter(){ +} + +defineClass(637, 1, {526:1}, ScaleMeasureFilter); +_.filterList = function filterList_1(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, maxScale, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + maxScale = $intern_60; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + maxScale = $wnd.Math.max(maxScale, computeScaleMeasure(opt.drawingWidth + (padding.left + padding.right), opt.drawingHeight + (padding.top_0 + padding.bottom), opt.dar)); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_7(candidate$iterator), 220); + computeScaleMeasure(candidate.drawingWidth + (padding.left + padding.right), candidate.drawingHeight + (padding.top_0 + padding.bottom), candidate.dar) == maxScale && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_ScaleMeasureFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'ScaleMeasureFilter', 637); +function $clinit_OptimizationGoal(){ + $clinit_OptimizationGoal = emptyMethod; + ASPECT_RATIO_DRIVEN = new OptimizationGoal('ASPECT_RATIO_DRIVEN', 0); + MAX_SCALE_DRIVEN = new OptimizationGoal('MAX_SCALE_DRIVEN', 1); + AREA_DRIVEN = new OptimizationGoal('AREA_DRIVEN', 2); +} + +function OptimizationGoal(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_83(name_0){ + $clinit_OptimizationGoal(); + return valueOf(($clinit_OptimizationGoal$Map() , $MAP_71), name_0); +} + +function values_89(){ + $clinit_OptimizationGoal(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]); +} + +defineClass(381, 22, {3:1, 35:1, 22:1, 381:1}, OptimizationGoal); +var AREA_DRIVEN, ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN; +var Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.options', 'OptimizationGoal', 381, Ljava_lang_Enum_2_classLit, values_89, valueOf_83); +function $clinit_OptimizationGoal$Map(){ + $clinit_OptimizationGoal$Map = emptyMethod; + $MAP_71 = createValueOfMap(($clinit_OptimizationGoal() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]))); +} + +var $MAP_71; +function $clinit_RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider = emptyMethod; + OPTIMIZATION_GOAL_DEFAULT = ($clinit_OptimizationGoal() , MAX_SCALE_DRIVEN); + OPTIMIZATION_GOAL = new Property_1('org.eclipse.elk.rectpacking.optimizationGoal', OPTIMIZATION_GOAL_DEFAULT); + LAST_PLACE_SHIFT = new Property_1('org.eclipse.elk.rectpacking.lastPlaceShift', ($clinit_Boolean() , true)); + valueOf_4(-1); + CURRENT_POSITION = new Property_1('org.eclipse.elk.rectpacking.currentPosition', valueOf_4(-1)); + valueOf_4(-1); + DESIRED_POSITION = new Property_1('org.eclipse.elk.rectpacking.desiredPosition', valueOf_4(-1)); + ONLY_FIRST_ITERATION = new Property_1('org.eclipse.elk.rectpacking.onlyFirstIteration', false); + ROW_COMPACTION = new Property_1('org.eclipse.elk.rectpacking.rowCompaction', true); + EXPAND_TO_ASPECT_RATIO = new Property_1('org.eclipse.elk.rectpacking.expandToAspectRatio', false); + TARGET_WIDTH = new Property_1('org.eclipse.elk.rectpacking.targetWidth', -1); +} + +function RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider(); +} + +defineClass(856, 1, $intern_90, RectPackingMetaDataProvider); +_.apply_4 = function apply_161(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.optimizationGoal'), ''), 'Optimization Goal'), 'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'), OPTIMIZATION_GOAL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.lastPlaceShift'), ''), 'Shift Last Placed.'), 'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.currentPosition'), ''), 'Current position of a node in the order of nodes'), 'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.desiredPosition'), ''), 'Desired index of node'), 'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.onlyFirstIteration'), ''), 'Only Area Approximation'), 'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.rowCompaction'), ''), 'Compact Rows'), 'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.expandToAspectRatio'), ''), 'Fit Aspect Ratio'), 'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.rectpacking.expandToAspectRatio', 'org.eclipse.elk.expandNodes', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.targetWidth'), ''), 'Target Width'), 'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'), -1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); + $apply_21((new RectPackingOptions , registry)); +} +; +var CURRENT_POSITION, DESIRED_POSITION, EXPAND_TO_ASPECT_RATIO, LAST_PLACE_SHIFT, ONLY_FIRST_ITERATION, OPTIMIZATION_GOAL, OPTIMIZATION_GOAL_DEFAULT, ROW_COMPACTION, TARGET_WIDTH; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingMetaDataProvider', 856); +function $clinit_RectPackingOptions(){ + $clinit_RectPackingOptions = emptyMethod; + ASPECT_RATIO_3 = new Property_2(($clinit_CoreOptions() , ASPECT_RATIO_5), 1.3); + EXPAND_NODES = EXPAND_NODES_1; + PADDING_DEFAULT_2 = new ElkPadding_0(15); + PADDING_3 = new Property_2(PADDING_6, PADDING_DEFAULT_2); + SPACING_NODE_NODE_3 = new Property_2(SPACING_NODE_NODE_6, 15); + CONTENT_ALIGNMENT_0 = CONTENT_ALIGNMENT_2; + NODE_SIZE_CONSTRAINTS_4 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_3 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_4 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_4 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_3 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_4 = PORT_LABELS_PLACEMENT_5; + OPTIMIZATION_GOAL_0 = ($clinit_RectPackingMetaDataProvider() , OPTIMIZATION_GOAL); + LAST_PLACE_SHIFT_0 = LAST_PLACE_SHIFT; + ONLY_FIRST_ITERATION_0 = ONLY_FIRST_ITERATION; + ROW_COMPACTION_0 = ROW_COMPACTION; + EXPAND_TO_ASPECT_RATIO_0 = EXPAND_TO_ASPECT_RATIO; + INTERACTIVE_5 = INTERACTIVE_7; + INTERACTIVE_LAYOUT_0 = INTERACTIVE_LAYOUT_1; + DESIRED_POSITION_0 = DESIRED_POSITION; + CURRENT_POSITION_0 = CURRENT_POSITION; + TARGET_WIDTH_0 = TARGET_WIDTH; +} + +function $apply_21(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.rectpacking'), 'ELK Rectangle Packing'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'), new RectPackingOptions$RectpackingFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.aspectRatio', 1.3); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.padding', PADDING_DEFAULT_2); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_3)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.optimizationGoal', $getDefault(OPTIMIZATION_GOAL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.lastPlaceShift', $getDefault(LAST_PLACE_SHIFT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.onlyFirstIteration', $getDefault(ONLY_FIRST_ITERATION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.rowCompaction', $getDefault(ROW_COMPACTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.expandToAspectRatio', $getDefault(EXPAND_TO_ASPECT_RATIO_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_5)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.desiredPosition', $getDefault(DESIRED_POSITION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.currentPosition', $getDefault(CURRENT_POSITION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.targetWidth', $getDefault(TARGET_WIDTH_0)); +} + +function RectPackingOptions(){ + $clinit_RectPackingOptions(); +} + +defineClass(1004, 1, $intern_90, RectPackingOptions); +_.apply_4 = function apply_162(registry){ + $apply_21(registry); +} +; +var ASPECT_RATIO_3, CONTENT_ALIGNMENT_0, CURRENT_POSITION_0, DESIRED_POSITION_0, EXPAND_NODES, EXPAND_TO_ASPECT_RATIO_0, INTERACTIVE_5, INTERACTIVE_LAYOUT_0, LAST_PLACE_SHIFT_0, NODE_LABELS_PLACEMENT_4, NODE_SIZE_CONSTRAINTS_4, NODE_SIZE_MINIMUM_3, NODE_SIZE_OPTIONS_4, OMIT_NODE_MICRO_LAYOUT_3, ONLY_FIRST_ITERATION_0, OPTIMIZATION_GOAL_0, PADDING_3, PADDING_DEFAULT_2, PORT_LABELS_PLACEMENT_4, ROW_COMPACTION_0, SPACING_NODE_NODE_3, TARGET_WIDTH_0; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions', 1004); +function RectPackingOptions$RectpackingFactory(){ +} + +defineClass(1005, 1, {}, RectPackingOptions$RectpackingFactory); +_.create_0 = function create_26(){ + var provider; + return provider = new RectPackingLayoutProvider , provider; +} +; +_.destroy = function destroy_5(obj){ +} +; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions$RectpackingFactory_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions/RectpackingFactory', 1005); +function absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing){ + var rect, somethingWasChanged; + somethingWasChanged = false; + rect = castTo($get_11(nextBlock.children, 0), 33); + while (placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing)) { + somethingWasChanged = true; + $removeChild(nextBlock, rect); + if (nextBlock.children.array.length == 0) { + break; + } + rect = castTo($get_11(nextBlock.children, 0), 33); + } + nextBlock.children.array.length == 0 && $removeBlock(nextBlock.parentRow, nextBlock); + somethingWasChanged && $updateDimension(block.stack_0); + return somethingWasChanged; +} + +function compact_4(rowIdx, rows_0, boundingWidth, nodeNodeSpacing){ + var block, blockId, blocks, currentStack, nextBlock, nextRowIndex, row, somethingWasChanged, wasFromNextRow, nextBlock_0; + somethingWasChanged = false; + nextRowIndex = rowIdx + 1; + row = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); + blocks = row.children; + currentStack = null; + for (blockId = 0; blockId < row.children.array.length; blockId++) { + block = (checkCriticalElementIndex(blockId, blocks.array.length) , castTo(blocks.array[blockId], 187)); + if (block.fixed_0) { + continue; + } + if (block.children.array.length == 0) { + $clinit_System(); + $removeBlock(row, block); + --blockId; + somethingWasChanged = true; + continue; + } + if (!block.positionFixed) { + !!currentStack && $updateDimension(currentStack); + currentStack = new BlockStack(!currentStack?0:currentStack.x_0 + currentStack.width_0 + nodeNodeSpacing, row.y_0, nodeNodeSpacing); + $setLocation(block, currentStack.x_0 + currentStack.width_0, row.y_0); + $add_3(row.stacks, currentStack); + $addBlock(currentStack, block); + block.positionFixed = true; + } + nextBlock = null; + nextBlock = (nextBlock_0 = null , blockId < row.children.array.length - 1?(nextBlock_0 = castTo($get_11(row.children, blockId + 1), 187)):nextRowIndex < rows_0.array.length && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length != 0 && (nextBlock_0 = castTo($get_11((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children, 0), 187)) , nextBlock_0); + wasFromNextRow = false; + !!nextBlock && (wasFromNextRow = !equals_Ljava_lang_Object__Z__devirtual$(nextBlock.parentRow, row)); + if (nextBlock) { + if (nextBlock.children.array.length == 0) { + $removeBlock(row, nextBlock); + break; + } + else { + $placeRectsIn(block, boundingWidth - block.x_0); + $updateDimension(block.stack_0); + somethingWasChanged = somethingWasChanged | absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing); + } + if (nextBlock.children.array.length == 0) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + nextBlock = null; + while (rows_0.array.length > nextRowIndex && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0) { + $remove_12(rows_0, (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , rows_0.array[nextRowIndex])); + } + } + if (!nextBlock) { + --blockId; + continue; + } + if (placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + continue; + } + if (wasFromNextRow) { + if (placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + continue; + } + else if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + continue; + } + } + else if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + continue; + } + if (somethingWasChanged) { + continue; + } + } + if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + !!nextBlock && (nextBlock.positionFixed = false); + continue; + } + else { + $updateDimension(block.stack_0); + } + } + return somethingWasChanged; +} + +function placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing){ + var bounds, bounds0, currentBlockMinHeight, nextBlockMinHeight, remainingWidth, somethingWasChanged; + somethingWasChanged = false; + remainingWidth = boundingWidth - block.x_0; + currentBlockMinHeight = block.y_0 - row.y_0 + (bounds0 = $placeRectsIn_1(block, remainingWidth, false) , bounds0.height); + if (nextBlock.minWidth + nodeNodeSpacing > remainingWidth) { + return false; + } + nextBlockMinHeight = (bounds = $placeRectsIn_1(nextBlock, remainingWidth, false) , bounds.height); + if (currentBlockMinHeight + nodeNodeSpacing + nextBlockMinHeight <= row.height) { + $placeRectsIn(block, boundingWidth - block.x_0); + block.fixed_0 = true; + $placeRectsIn(nextBlock, boundingWidth - block.x_0); + $setLocation(nextBlock, block.x_0, block.y_0 + block.height + nodeNodeSpacing); + nextBlock.positionFixed = true; + $addBlock(block.stack_0, nextBlock); + somethingWasChanged = true; + if (wasFromNextRow) { + $addBlock_0(row, nextBlock); + nextBlock.parentRow = row; + if (rows_0.array.length > nextRowIndex) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + } + } + return somethingWasChanged; +} + +function placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing){ + var bounds, currentBlockMinWidth, lastRowOptimization, nextBlockHeight, somethingWasChanged, targetWidthOfNextBlock; + somethingWasChanged = false; + currentBlockMinWidth = $getWidthForFixedHeight(block.stack_0, row.y_0 + row.height - block.stack_0.y_0); + targetWidthOfNextBlock = boundingWidth - (block.stack_0.x_0 + currentBlockMinWidth - nodeNodeSpacing); + if (targetWidthOfNextBlock < nextBlock.minWidth) { + return false; + } + lastRowOptimization = nextRowIndex == rows_0.array.length - 1 && targetWidthOfNextBlock >= (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).width_0; + nextBlockHeight = (bounds = $placeRectsIn_1(nextBlock, targetWidthOfNextBlock, false) , bounds.height); + if (nextBlockHeight > row.height && !lastRowOptimization) { + return false; + } + if (lastRowOptimization || nextBlockHeight <= row.height) { + if (lastRowOptimization && nextBlockHeight > row.height) { + block.height = nextBlockHeight; + $placeRectsIn(block, $getWidthForTargetHeight(block, nextBlockHeight)); + } + else { + $placeRectsIn_2(block.stack_0, currentBlockMinWidth); + block.fixed_0 = true; + } + $placeRectsIn(nextBlock, boundingWidth - (block.x_0 + block.width_0)); + $setLocation(nextBlock, block.stack_0.x_0 + block.stack_0.width_0, row.y_0); + $addBlock_0(row, nextBlock); + if (rows_0.array.length > nextRowIndex) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + somethingWasChanged = true; + } + return somethingWasChanged; +} + +function useRowHeight(row, block){ + var previousWidth, somethingWasChanged, targetWidth; + somethingWasChanged = false; + previousWidth = block.stack_0.width_0; + if (block.height < row.height) { + targetWidth = $getWidthForFixedHeight(block.stack_0, row.height); + if (block.stack_0.width_0 > targetWidth) { + $placeRectsIn_2(block.stack_0, targetWidth); + somethingWasChanged = previousWidth != block.stack_0.width_0; + } + } + return somethingWasChanged; +} + +function place(rectangles, boundingWidth, nodeNodeSpacing){ + var block, currentWidth, drawingHeight, newBlock, potentialRowWidth, rect, rect$iterator, row, rows_0; + rows_0 = new ArrayList; + row = new RectRow(0, nodeNodeSpacing); + drawingHeight = 0; + $addBlock_0(row, new Block(0, 0, row, nodeNodeSpacing)); + currentWidth = 0; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 33); + block = castTo($get_11(row.children, row.children.array.length - 1), 187); + potentialRowWidth = currentWidth + rect.width_0 + (castTo($get_11(row.children, 0), 187).children.array.length == 0?0:nodeNodeSpacing); + if (potentialRowWidth > boundingWidth) { + currentWidth = 0; + drawingHeight += row.height + nodeNodeSpacing; + rows_0.array[rows_0.array.length] = row; + row = new RectRow(drawingHeight, nodeNodeSpacing); + block = new Block(0, row.y_0, row, nodeNodeSpacing); + $addBlock_0(row, block); + currentWidth = 0; + } + if (block.children.array.length == 0 || rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { + $addChild(block, rect); + } + else { + newBlock = new Block(block.x_0 + block.width_0 + nodeNodeSpacing, row.y_0, row, nodeNodeSpacing); + $addBlock_0(row, newBlock); + $addChild(newBlock, rect); + } + currentWidth = rect.x_0 + rect.width_0; + } + rows_0.array[rows_0.array.length] = row; + return rows_0; +} + +function placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing){ + var lastRow, lastRow0, lastRow_0; + if (rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { + lastRow0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); + if (lastRow0.x_0 + lastRow0.width_0 + rect.width_0 + nodeNodeSpacing <= boundingWidth && (lastRow = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211) , lastRow.y_0 - row.y_0 + rect.height <= row.height || row.children.array.length == 1)) { + $addChild(block, rect); + return true; + } + else if (block.x_0 + rect.width_0 <= boundingWidth && (block.y_0 + block.height + rect.height + nodeNodeSpacing <= row.height || row.children.array.length == 1)) { + $add_3(block.children, rect); + lastRow_0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); + $add_3(block.rows_0, new BlockRow(block.x_0, lastRow_0.y_0 + lastRow_0.height + block.nodeNodeSpacing, block.nodeNodeSpacing)); + $addRectangle(castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211), rect); + $adjustSizeAdd(block, rect); + return true; + } + } + return false; +} + +function expand(rows_0, drawingWidth, additionalHeight){ + var heightPerRow, index_0, row, row$iterator; + heightPerRow = additionalHeight / rows_0.array.length; + index_0 = 0; + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + $setY_1(row, row.y_0 + heightPerRow * index_0); + $expand_2(row, drawingWidth, heightPerRow); + ++index_0; + } +} + +function $adjustWidthAndHeight(this$static, row){ + var index_0, maxHeight, maxWidth, stack_0, stack$iterator; + maxHeight = 0; + maxWidth = 0; + index_0 = 0; + for (stack$iterator = new ArrayList$1(row.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_7(stack$iterator), 443); + $updateDimension(stack_0); + maxHeight = $wnd.Math.max(maxHeight, stack_0.height); + maxWidth += stack_0.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + row.height = maxHeight; + row.width_0 = maxWidth; +} + +function $calculateDimensions(this$static, rows_0){ + var index_0, maxWidth, newHeight, row, row$iterator; + maxWidth = 0; + newHeight = 0; + index_0 = 0; + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + maxWidth = $wnd.Math.max(maxWidth, row.width_0); + newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + this$static.drawingHeight = newHeight; + this$static.drawingWidth = maxWidth; +} + +function $start(this$static, rectangles, maxWidth, minParentSize, progressMonitor, layoutGraph, padding){ + var additionalHeight, aspectRatio, block, block$iterator, currentRow, minHeight, previousRow, row, row$iterator, rowIdx, rows_0, stack_0, totalWidth; + rows_0 = place(rectangles, maxWidth, this$static.nodeNodeSpacing); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + if (this$static.compaction) { + for (rowIdx = 0; rowIdx < rows_0.array.length; rowIdx++) { + currentRow = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); + if (rowIdx != 0) { + previousRow = (checkCriticalElementIndex(rowIdx - 1, rows_0.array.length) , castTo(rows_0.array[rowIdx - 1], 200)); + $setY_1(currentRow, previousRow.y_0 + previousRow.height + this$static.nodeNodeSpacing); + } + compact_4(rowIdx, rows_0, maxWidth, this$static.nodeNodeSpacing); + $adjustWidthAndHeight(this$static, currentRow); + progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + } + } + else { + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + for (block$iterator = new ArrayList$1(row.children); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + stack_0 = new BlockStack(block.x_0, block.y_0, this$static.nodeNodeSpacing); + $addBlock(stack_0, block); + $add_3(row.stacks, stack_0); + } + } + } + $calculateDimensions(this$static, rows_0); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + totalWidth = $wnd.Math.max(this$static.drawingWidth, minParentSize.x_0 - (padding.left + padding.right)); + minHeight = $wnd.Math.max(this$static.drawingHeight, minParentSize.y_0 - (padding.top_0 + padding.bottom)); + additionalHeight = minHeight - this$static.drawingHeight; + if (this$static.expandNodes && this$static.expandToAspectRatio) { + aspectRatio = totalWidth / minHeight; + aspectRatio < this$static.aspectRatio?(totalWidth = minHeight * this$static.aspectRatio):(additionalHeight += totalWidth / this$static.aspectRatio - minHeight); + } + this$static.expandNodes && expand(rows_0, totalWidth, additionalHeight); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + return new DrawingData(this$static.aspectRatio, totalWidth, this$static.drawingHeight + additionalHeight, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); +} + +function RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing){ + this.aspectRatio = aspectRatio; + this.expandNodes = expandNodes; + this.expandToAspectRatio = expandToAspectRatio; + this.compaction = compaction; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(1257, 1, {}, RowFillingAndCompaction); +_.aspectRatio = 0; +_.compaction = false; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.expandNodes = false; +_.expandToAspectRatio = false; +_.nodeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_rectpacking_seconditeration_RowFillingAndCompaction_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.seconditeration', 'RowFillingAndCompaction', 1257); +function $addChild(this$static, rect){ + this$static.rows_0.array.length == 0 && $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); + $add_3(this$static.children, rect); + $addRectangle(castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211), rect); + $adjustSizeAdd(this$static, rect); +} + +function $adjustChildrensXandY(this$static, xChange, yChange){ + var rect, rect$iterator; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + $setLocation_1(rect, rect.x_0 + xChange, rect.y_0 + yChange); + } +} + +function $adjustSizeAdd(this$static, rect){ + var row, row$iterator, totalHeight, widthOflastRow; + widthOflastRow = castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211).width_0; + this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); + this$static.width_0 = $wnd.Math.max(this$static.width_0, widthOflastRow); + this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0 + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing)); + this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); + this$static.maxHeight += rect.height + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing); + this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); + totalHeight = this$static.rows_0.array.length > 0?(this$static.rows_0.array.length - 1) * this$static.nodeNodeSpacing:0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + totalHeight += row.height; + } + this$static.height = totalHeight; + this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); + $notifyAboutNodeChange(this$static.parentRow); +} + +function $adjustSizeAfterRemove(this$static){ + var index_0, newHeight, newWidth, rect, rect$iterator, row, row$iterator, rowsToDelete; + newWidth = 0; + newHeight = 0; + rowsToDelete = new LinkedList; + index_0 = 0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + if (row.rects.array.length == 0) { + $addNode_0(rowsToDelete, row, rowsToDelete.tail.prev, rowsToDelete.tail); + } + else { + newWidth = $wnd.Math.max(newWidth, row.width_0); + newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + } + ++index_0; + } + $removeAll_0(this$static.rows_0, rowsToDelete); + this$static.height = newHeight; + this$static.width_0 = newWidth; + this$static.minWidth = 0; + this$static.minHeight = 0; + this$static.maxHeight = 0; + this$static.smallestRectHeight = $intern_59; + this$static.smallestRectWidth = $intern_59; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); + this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0); + this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); + this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); + this$static.maxHeight += rect.height + this$static.nodeNodeSpacing; + } + this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); + $notifyAboutNodeChange(this$static.parentRow); +} + +function $expand(this$static, additionalWidthPerBlock, additionalHeightForBlock){ + var additionalHeightForRow, index_0, row, row$iterator, widthForRow; + widthForRow = this$static.width_0 + additionalWidthPerBlock; + this$static.width_0 += additionalWidthPerBlock; + this$static.height += additionalHeightForBlock; + additionalHeightForRow = additionalHeightForBlock / this$static.rows_0.array.length; + index_0 = 0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + $expand_0(row, widthForRow, additionalHeightForRow, index_0); + ++index_0; + } +} + +function $getWidthForTargetHeight(this$static, height){ + var bounds, lowerBound, newWidth, upperBound, viableWidth; + if (this$static.maxHeight <= height) { + return this$static.minWidth; + } + if ($placeRectsIn_0(this$static, this$static.minWidth, height)) { + return this$static.minWidth; + } + upperBound = this$static.width_0; + lowerBound = this$static.minWidth; + viableWidth = this$static.width_0; + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + while (lowerBound + 1 < upperBound) { + bounds = $placeRectsIn_1(this$static, newWidth, false); + if (bounds.width_0 <= newWidth && bounds.height <= height) { + viableWidth = newWidth; + upperBound = newWidth; + } + else { + lowerBound = newWidth; + } + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + } + return viableWidth; +} + +function $placeRectsIn(this$static, width_0){ + var bounds, oldHeight, oldWidth; + oldWidth = this$static.width_0; + oldHeight = this$static.height; + bounds = $placeRectsIn_1(this$static, width_0, true); + return bounds.width_0 != oldWidth || bounds.height != oldHeight; +} + +function $placeRectsIn_0(this$static, width_0, height){ + var bounds; + bounds = $placeRectsIn_1(this$static, width_0, false); + return bounds.width_0 <= width_0 && bounds.height <= height; +} + +function $placeRectsIn_1(this$static, width_0, placeRects){ + var currentHeight, currentWidth, currentX, currentY, index_0, maxHeightInRow, rect, rect$iterator, row, widthInRow; + currentX = 0; + currentY = this$static.y_0; + currentWidth = 0; + currentHeight = 0; + maxHeightInRow = 0; + widthInRow = 0; + row = 0; + if (placeRects) { + this$static.rows_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); + } + index_0 = 0; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + if (currentX + rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0) > width_0 && maxHeightInRow > 0) { + currentX = 0; + currentY += maxHeightInRow + this$static.nodeNodeSpacing; + currentWidth = $wnd.Math.max(currentWidth, widthInRow); + currentHeight += maxHeightInRow + this$static.nodeNodeSpacing; + maxHeightInRow = 0; + widthInRow = 0; + if (placeRects) { + ++row; + $add_3(this$static.rows_0, new BlockRow(this$static.x_0, currentY, this$static.nodeNodeSpacing)); + } + index_0 = 0; + } + widthInRow += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + maxHeightInRow = $wnd.Math.max(maxHeightInRow, rect.height); + placeRects && $addRectangle(castTo($get_11(this$static.rows_0, row), 211), rect); + currentX += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + currentWidth = $wnd.Math.max(currentWidth, widthInRow); + currentHeight += maxHeightInRow; + if (placeRects) { + this$static.width_0 = currentWidth; + this$static.height = currentHeight; + $notifyAboutNodeChange(this$static.parentRow); + } + return new ElkRectangle_0(this$static.x_0, this$static.y_0, currentWidth, currentHeight); +} + +function $removeChild(this$static, rect){ + var row, row$iterator; + $remove_12(this$static.children, rect); + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + if ($indexOf_3(row.rects, rect, 0) != -1) { + $remove_12(row.rects, rect); + $updateRow(row); + row.rects.array.length == 0 && $remove_12(this$static.rows_0, row); + break; + } + } + $adjustSizeAfterRemove(this$static); +} + +function $setLocation(this$static, xCoord, yCoord){ + var row, row$iterator; + $adjustChildrensXandY(this$static, xCoord - this$static.x_0, yCoord - this$static.y_0); + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + $setX_0(row, row.x_0 + xCoord - this$static.x_0); + $setY_0(row, row.y_0 + yCoord - this$static.y_0); + } + this$static.x_0 = xCoord; + this$static.y_0 = yCoord; +} + +function Block(xCoord, yCoord, parentRow, nodeNodeSpacing){ + this.children = new ArrayList; + this.rows_0 = new ArrayList; + this.nodeNodeSpacing = nodeNodeSpacing; + this.parentRow = parentRow; + this.x_0 = xCoord; + this.y_0 = yCoord; + this.width_0 = 0; + this.height = 0; +} + +defineClass(187, 1, {187:1}, Block); +_.averageHeight = 0; +_.fixed_0 = false; +_.height = 0; +_.maxHeight = 0; +_.minHeight = 0; +_.minWidth = 0; +_.nodeNodeSpacing = 0; +_.positionFixed = false; +_.smallestRectHeight = $intern_59; +_.smallestRectWidth = $intern_59; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_Block_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'Block', 187); +function $addRectangle(this$static, rect){ + $setX_2(rect, this$static.x_0 + this$static.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing)); + $setY_3(rect, this$static.y_0); + this$static.height = $wnd.Math.max(this$static.height, rect.height); + this$static.width_0 += rect.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.rects, rect); + return true; +} + +function $expand_0(this$static, widthForRow, additionalHeightForRow, index_0){ + var additionalWidthForRect, i, newHeight, newWidth, oldHeight, oldWidth, rect, rect$iterator; + additionalWidthForRect = (widthForRow - this$static.width_0) / this$static.rects.array.length; + i = 0; + this$static.height += additionalHeightForRow; + this$static.width_0 = widthForRow; + for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + oldWidth = rect.width_0; + oldHeight = rect.height; + $setX_2(rect, rect.x_0 + i * additionalWidthForRect); + $setY_3(rect, rect.y_0 + index_0 * additionalHeightForRow); + $setWidth_0(rect, rect.width_0 + additionalWidthForRect); + $setHeight_0(rect, this$static.height); + ++i; + newWidth = rect.width_0; + newHeight = rect.height; + translate_1(rect, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); + } +} + +function $setX_0(this$static, x_0){ + this$static.x_0 = x_0; +} + +function $setY_0(this$static, y_0){ + this$static.y_0 = y_0; +} + +function $updateRow(this$static){ + var height, rect, rect$iterator, width_0; + width_0 = 0; + height = 0; + for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + $setX_2(rect, this$static.x_0 + width_0); + $setY_3(rect, this$static.y_0); + width_0 += rect.width_0 + this$static.nodeNodeSpacing; + height = $wnd.Math.max(height, rect.height + this$static.nodeNodeSpacing); + } + this$static.width_0 = width_0 - this$static.nodeNodeSpacing; + this$static.height = height - this$static.nodeNodeSpacing; +} + +function BlockRow(x_0, y_0, nodeNodeSpacing){ + this.rects = new ArrayList; + this.x_0 = x_0; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(211, 1, {211:1}, BlockRow); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_BlockRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockRow', 211); +function $addBlock(this$static, block){ + block.stack_0 = this$static; + this$static.width_0 = $wnd.Math.max(this$static.width_0, block.width_0); + this$static.height += block.height + (this$static.blocks.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.blocks, block); +} + +function $expand_1(this$static, additionalWidth, additionalHeight){ + var additionalHeightPerBlock, block, block$iterator, index_0; + index_0 = 0; + additionalHeightPerBlock = additionalHeight / this$static.blocks.array.length; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + $setLocation(block, block.x_0, block.y_0 + index_0 * additionalHeightPerBlock); + $expand(block, this$static.width_0 - block.width_0 + additionalWidth, additionalHeightPerBlock); + ++index_0; + } +} + +function $getMinimumWidth_1(this$static){ + var block, block$iterator, minWidth; + minWidth = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + minWidth = $wnd.Math.max(minWidth, block.minWidth); + } + return minWidth; +} + +function $getWidthForFixedHeight(this$static, height){ + var block, block$iterator, bounds, lowerBound, minWidth, newWidth, totalHeight, upperBound, viableWidth; + if (this$static.blocks.array.length == 1) { + return $getWidthForTargetHeight(castTo($get_11(this$static.blocks, 0), 187), height); + } + minWidth = $getMinimumWidth_1(this$static); + totalHeight = 0; + upperBound = this$static.width_0; + lowerBound = minWidth; + viableWidth = this$static.width_0; + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + while (lowerBound + 1 < upperBound) { + totalHeight = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + totalHeight += (bounds = $placeRectsIn_1(block, newWidth, false) , bounds.height); + } + if (totalHeight < height) { + viableWidth = newWidth; + upperBound = newWidth; + } + else { + lowerBound = newWidth; + } + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + } + return viableWidth; +} + +function $placeRectsIn_2(this$static, targetWidth){ + var block, block$iterator, currentHeight, currentWidth, currentY; + currentY = this$static.y_0; + currentHeight = 0; + currentWidth = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + $setLocation(block, this$static.x_0, currentY); + $placeRectsIn(block, targetWidth); + currentWidth = $wnd.Math.max(currentWidth, block.width_0); + currentY += block.height + this$static.nodeNodeSpacing; + currentHeight = currentY; + } + this$static.width_0 = currentWidth; + this$static.height = currentHeight; +} + +function $setLocation_0(this$static, x_0, y_0){ + var block, block$iterator, xDiff, yDiff; + xDiff = x_0 - this$static.x_0; + yDiff = y_0 - this$static.y_0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + $setLocation(block, block.x_0 + xDiff, block.y_0 + yDiff); + } + this$static.x_0 = x_0; + this$static.y_0 = y_0; +} + +function $updateDimension(this$static){ + var block, block$iterator, height, index_0, width_0; + height = 0; + width_0 = 0; + index_0 = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + width_0 = $wnd.Math.max(width_0, block.width_0); + height += block.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + this$static.height = height; + this$static.width_0 = width_0; +} + +function BlockStack(x_0, y_0, nodeNodeSpacing){ + this.blocks = new ArrayList; + this.x_0 = x_0; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(443, 1, {443:1}, BlockStack); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_BlockStack_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockStack', 443); +function $setPlacementOption(this$static, placementOption){ + this$static.placementOption = placementOption; +} + +function DrawingData(dar, drawingWidth, drawingHeight, placementOption){ + DrawingData_0.call(this, dar, drawingWidth, drawingHeight, placementOption, 0, 0); +} + +function DrawingData_0(dar, drawingWidth, drawingHeight, placementOption, nextXcoord, nextYcoord){ + this.dar = dar; + this.drawingWidth = drawingWidth; + this.drawingHeight = drawingHeight; + this.placementOption = placementOption; + this.nextXcoordinate = nextXcoord; + this.nextYcoordinate = nextYcoord; + this.drawingWidth > 0 && this.drawingHeight > 0 && computeScaleMeasure(this.drawingWidth, this.drawingHeight, this.dar); +} + +defineClass(220, 1, {220:1}, DrawingData, DrawingData_0); +_.dar = 0; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.nextXcoordinate = 0; +_.nextYcoordinate = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'DrawingData', 220); +function $clinit_DrawingDataDescriptor(){ + $clinit_DrawingDataDescriptor = emptyMethod; + CANDIDATE_POSITION_LAST_PLACED_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_RIGHT', 0); + CANDIDATE_POSITION_LAST_PLACED_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_BELOW', 1); + CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT', 2); + CANDIDATE_POSITION_WHOLE_DRAWING_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW', 3); + WHOLE_DRAWING = new DrawingDataDescriptor('WHOLE_DRAWING', 4); +} + +function DrawingDataDescriptor(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_84(name_0){ + $clinit_DrawingDataDescriptor(); + return valueOf(($clinit_DrawingDataDescriptor$Map() , $MAP_72), name_0); +} + +function values_90(){ + $clinit_DrawingDataDescriptor(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]); +} + +defineClass(355, 22, {3:1, 35:1, 22:1, 355:1}, DrawingDataDescriptor); +var CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, WHOLE_DRAWING; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.util', 'DrawingDataDescriptor', 355, Ljava_lang_Enum_2_classLit, values_90, valueOf_84); +function $clinit_DrawingDataDescriptor$Map(){ + $clinit_DrawingDataDescriptor$Map = emptyMethod; + $MAP_72 = createValueOfMap(($clinit_DrawingDataDescriptor() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]))); +} + +var $MAP_72; +function computeScaleMeasure(width_0, height, dar){ + return $wnd.Math.min(dar / width_0, 1 / height); +} + +function resetCoordinates(graph){ + var node, node$iterator; + for (node$iterator = new AbstractEList$EIterator(graph); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + $setX_2(node, 0); + $setY_3(node, 0); + } +} + +function $addBlock_0(this$static, block){ + this$static.height = $wnd.Math.max(this$static.height, block.height); + this$static.width_0 += block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.children, block); +} + +function $expand_2(this$static, width_0, additionalHeight){ + var additionalHeightForStack, additionalWidth, additionalWidthPerStack, index_0, stack_0, stack$iterator; + additionalWidth = width_0 - this$static.width_0; + additionalWidthPerStack = additionalWidth / this$static.stacks.array.length; + index_0 = 0; + for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_7(stack$iterator), 443); + additionalHeightForStack = this$static.height - stack_0.height + additionalHeight; + $setLocation_0(stack_0, stack_0.x_0 + index_0 * additionalWidthPerStack, stack_0.y_0); + $expand_1(stack_0, additionalWidthPerStack, additionalHeightForStack); + ++index_0; + } +} + +function $notifyAboutNodeChange(this$static){ + var child, child$iterator, index_0, newMaxHeight, totalStackWidth; + totalStackWidth = 0; + newMaxHeight = $intern_60; + index_0 = 0; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 187); + totalStackWidth += child.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); + ++index_0; + } + this$static.width_0 = totalStackWidth; + this$static.height = newMaxHeight; +} + +function $removeBlock(this$static, block){ + var child, child$iterator, newMaxHeight; + $remove_12(this$static.children, block); + this$static.width_0 -= block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); + newMaxHeight = $intern_124; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 187); + newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); + } + this$static.height = newMaxHeight; +} + +function $setY_1(this$static, y_0){ + var stack_0, stack$iterator, yChange; + yChange = y_0 - this$static.y_0; + for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_7(stack$iterator), 443); + $setLocation_0(stack_0, stack_0.x_0, stack_0.y_0 + yChange); + } + this$static.y_0 = y_0; +} + +function RectRow(y_0, nodeNodeSpacing){ + this.children = new ArrayList; + this.stacks = new ArrayList; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(200, 1, {200:1}, RectRow); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_RectRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'RectRow', 200); +function $applyPositions_0(this$static, g){ + var e, e$iterator, elkNode, endLocation, kedgeSection, maxX, maxY, minX, minY, node, node$iterator, padding, source, startLocation, target, uv, vu; + minX = $intern_59; + minY = $intern_59; + maxX = $intern_60; + maxY = $intern_60; + for (node$iterator = new ArrayList$1(g.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 65); + elkNode = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33); + $setLocation_1(elkNode, node.rect.x_0, node.rect.y_0); + minX = $wnd.Math.min(minX, elkNode.x_0); + minY = $wnd.Math.min(minY, elkNode.y_0); + maxX = $wnd.Math.max(maxX, elkNode.x_0 + elkNode.width_0); + maxY = $wnd.Math.max(maxY, elkNode.y_0 + elkNode.height); + } + padding = castTo($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PADDING_4)), 116); + resizeNode_1(this$static.elkGraph, maxX - minX + (padding.left + padding.right), maxY - minY + (padding.top_0 + padding.bottom), true, true); + translate_0(this$static.elkGraph, -minX + padding.left, -minY + padding.top_0); + for (e$iterator = new AbstractEList$EIterator($getContainedEdges(this$static.elkGraph)); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + kedgeSection = firstEdgeSection(e, true, true); + source = getSourceNode(e); + target = getTargetNode_0(e); + startLocation = new KVector_1(source.x_0 + source.width_0 / 2, source.y_0 + source.height / 2); + endLocation = new KVector_1(target.x_0 + target.width_0 / 2, target.y_0 + target.height / 2); + uv = $sub_0(new KVector_1(endLocation.x_0, endLocation.y_0), startLocation); + clipVector(uv, source.width_0, source.height); + $add_19(startLocation, uv); + vu = $sub_0(new KVector_1(startLocation.x_0, startLocation.y_0), endLocation); + clipVector(vu, target.width_0, target.height); + $add_19(endLocation, vu); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); + } +} + +function $importGraph_2(this$static, inputGraph){ + var adapter, calcu, center, closest, compactionStrategy, costFunction, costFunctionID, distance, elkNode, elkNode$iterator, halfHeight, halfWidth, id_0, margin, node, node$iterator, node$iterator0, preferredRootID, rootSelection, treeConstructionStrategy, vertex; + this$static.elkGraph = inputGraph; + this$static.nodeMap = new HashMap; + adapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(this$static.elkGraph)); + calcu = new NodeMarginCalculator(adapter); + $process(calcu); + preferredRootID = castToString($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PROCESSING_ORDER_PREFERRED_ROOT))); + costFunctionID = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION), 316); + treeConstructionStrategy = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_TREE_CONSTRUCTION), 429); + compactionStrategy = castTo($getProperty_0(this$static.elkGraph, COMPACTION_COMPACTION_STRATEGY), 482); + rootSelection = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_ROOT_SELECTION), 430); + this$static.spacingNodeNode = $doubleValue(castToDouble($getProperty_0(this$static.elkGraph, SPACING_NODE_NODE_4))); + costFunction = this$static.centerDistance; + switch (costFunctionID.ordinal) { + case 0: + costFunction = this$static.centerDistance; + break; + case 1: + costFunction = this$static.circleUnderlap; + break; + case 2: + costFunction = this$static.rectangleUnderlap; + break; + case 3: + costFunction = this$static.invertedOverlap; + break; + case 4: + costFunction = this$static.minimumRootDistance; + break; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (costFunctionID.name_0 != null?costFunctionID.name_0:'' + costFunctionID.ordinal))); + } + this$static.graph_0 = new Graph(costFunction, treeConstructionStrategy, compactionStrategy); + $setProperty_0(this$static.graph_0, ($clinit_InternalProperties() , DEBUG_SVG), castToBoolean($getProperty_0(this$static.elkGraph, DEBUG_MODE_1))); + this$static.graph_0.orthogonalCompaction = $booleanValue(castToBoolean($getProperty_0(this$static.elkGraph, COMPACTION_ORTHOGONAL))); + if ($getChildren(this$static.elkGraph).size_0 == 0) { + return this$static.graph_0; + } + for (elkNode$iterator = new AbstractEList$EIterator($getChildren(this$static.elkGraph)); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 33); + halfWidth = elkNode.width_0 / 2; + halfHeight = elkNode.height / 2; + vertex = new KVector_1(elkNode.x_0 + halfWidth, elkNode.y_0 + halfHeight); + while ($containsKey_3(this$static.nodeMap, vertex)) { + $add_18(vertex, ($wnd.Math.random() - 0.5) * $intern_101, ($wnd.Math.random() - 0.5) * $intern_101); + } + margin = castTo($getProperty_0(elkNode, ($clinit_CoreOptions() , MARGINS_0)), 142); + node = new Node_0(vertex, new ElkRectangle_0(vertex.x_0 - halfWidth - this$static.spacingNodeNode / 2 - margin.left, vertex.y_0 - halfHeight - this$static.spacingNodeNode / 2 - margin.top_0, elkNode.width_0 + this$static.spacingNodeNode + (margin.left + margin.right), elkNode.height + this$static.spacingNodeNode + (margin.top_0 + margin.bottom))); + $add_3(this$static.graph_0.vertices, node); + $put_6(this$static.nodeMap, vertex, new Pair(node, elkNode)); + } + switch (rootSelection.ordinal) { + case 0: + if (preferredRootID == null) { + this$static.graph_0.preferredRoot = castTo($get_11(this$static.graph_0.vertices, 0), 65); + } + else { + for (node$iterator0 = new ArrayList$1(this$static.graph_0.vertices); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 65); + id_0 = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33).getIdentifier(); + id_0 != null && $equals_5(id_0, preferredRootID) && (this$static.graph_0.preferredRoot = node); + } + } + + break; + case 1: + center = new KVector_1(this$static.elkGraph.width_0, this$static.elkGraph.height); + center.x_0 *= 0.5; + center.y_0 *= 0.5; + $add_18(center, this$static.elkGraph.x_0, this$static.elkGraph.y_0); + closest = $intern_59; + for (node$iterator = new ArrayList$1(this$static.graph_0.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 65); + distance = $distance_0(node.originalVertex, center); + if (distance < closest) { + closest = distance; + this$static.graph_0.preferredRoot = node; + } + } + + break; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (rootSelection.name_0 != null?rootSelection.name_0:'' + rootSelection.ordinal))); + } + return this$static.graph_0; +} + +function $lambda$1_6(this$static, e_0){ + return $wnd.Math.min($distance_0(e_0.u, this$static.graph_0.preferredRoot.vertex), $distance_0(e_0.v, this$static.graph_0.preferredRoot.vertex)); +} + +function $lambda$2_4(this$static, e_0){ + var n1, n2; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + return $distance_0(e_0.u, e_0.v) - $distance_0(e_0.u, $getPosition(n1.rect)) - $distance_0(e_0.v, $getPosition(n2.rect)); +} + +function $lambda$3_3(this$static, e_0){ + var n1, n2; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + return $underlap(n1, n2); +} + +function $lambda$4_2(this$static, e_0){ + var dist, n1, n2, r1, r2, s; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + r1 = n1.rect; + r2 = n2.rect; + dist = shortestDistance_0(r1, r2); + if (dist >= 0) { + return dist; + } + s = $length($sub_0(new KVector_1(r2.x_0 + r2.width_0 / 2, r2.y_0 + r2.height / 2), new KVector_1(r1.x_0 + r1.width_0 / 2, r1.y_0 + r1.height / 2))); + return -(overlap_0(r1, r2) - 1) * s; +} + +function $updateGraph(this$static, g){ + var n, n$iterator, original, updatedNodeMap; + updatedNodeMap = new HashMap; + g.tEdges = null; + g.tree = null; + for (n$iterator = new ArrayList$1(g.vertices); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 65); + original = castTo($get_10(this$static.nodeMap, n.originalVertex), 46); + n.originalVertex = $getCenter(n.rect); + $put_6(updatedNodeMap, n.originalVertex, original); + } + this$static.nodeMap = updatedNodeMap; +} + +function ElkGraphImporter_0(){ + this.centerDistance = new ElkGraphImporter$lambda$0$Type_0; + this.minimumRootDistance = new ElkGraphImporter$lambda$1$Type_0(this); + this.circleUnderlap = new ElkGraphImporter$lambda$2$Type_0(this); + this.rectangleUnderlap = new ElkGraphImporter$lambda$3$Type(this); + this.invertedOverlap = new ElkGraphImporter$lambda$4$Type_0(this); +} + +defineClass(756, 1, {}, ElkGraphImporter_0); +_.spacingNodeNode = 0; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter', 756); +function ElkGraphImporter$lambda$0$Type_0(){ +} + +defineClass(1245, 1, {}, ElkGraphImporter$lambda$0$Type_0); +_.cost = function cost_0(arg0){ + return $distance_0(arg0.u, arg0.v); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$0$Type', 1245); +function ElkGraphImporter$lambda$1$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1246, 1, {}, ElkGraphImporter$lambda$1$Type_0); +_.cost = function cost_1(arg0){ + return $lambda$1_6(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$1$Type', 1246); +function ElkGraphImporter$lambda$2$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1247, 1, {}, ElkGraphImporter$lambda$2$Type_0); +_.cost = function cost_2(arg0){ + return $lambda$2_4(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$2$Type', 1247); +function ElkGraphImporter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1248, 1, {}, ElkGraphImporter$lambda$3$Type); +_.cost = function cost_3(arg0){ + return $lambda$3_3(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$3$Type', 1248); +function ElkGraphImporter$lambda$4$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1249, 1, {}, ElkGraphImporter$lambda$4$Type_0); +_.cost = function cost_4(arg0){ + return $lambda$4_2(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$4$Type', 1249); +function OverlapRemovalLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +function lambda$0_33(overlapEdges_0, n1_1, n2_2){ + return $add_6(overlapEdges_0, new TEdge(n1_1.originalVertex, n2_2.originalVertex)); +} + +defineClass(1133, 209, $intern_96, OverlapRemovalLayoutProvider); +_.layout = function layout_6(layoutGraph, progressMonitor){ + var graph, graphImporter, iteration, lad, layoutProvider, maxIterations, overlapEdges, overlapHandler, overlapsExisted, processor, processor$iterator, requestedAlgorithm; + if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , UNDERLYING_LAYOUT_ALGORITHM_1))); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + $setProperty_1(layoutGraph, PROCESSING_ORDER_ROOT_SELECTION, ($clinit_RootSelection() , CENTER_NODE)); + $setProperty_1(layoutGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, ($clinit_SpanningTreeCostFunction() , INVERTED_OVERLAP)); + $setProperty_1(layoutGraph, PROCESSING_ORDER_TREE_CONSTRUCTION, ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE)); + maxIterations = castTo($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , OVERLAP_REMOVAL_MAX_ITERATIONS_0)), 19).value_0; + $begin(progressMonitor, 'Overlap removal', 1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, DEBUG_MODE_2))) && 'null45scanlineOverlaps'; + overlapEdges = new HashSet; + overlapHandler = new OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges); + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + overlapsExisted = true; + iteration = 0; + while (iteration < maxIterations && overlapsExisted) { + if ($booleanValue(castToBoolean($getProperty_0(layoutGraph, OVERLAP_REMOVAL_RUN_SCANLINE_0)))) { + overlapEdges.map_0.clear_0(); + $sweep_0(new ScanlineOverlapCheck(overlapHandler), graph.vertices); + if (overlapEdges.map_0.size_1() == 0) { + break; + } + graph.tEdges = overlapEdges; + } + $reset_4(this.algorithmAssembler); + $setPhase(this.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); + $setPhase(this.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); + $setPhase(this.algorithmAssembler, P3_EXECUTION, ($clinit_OverlapRemovalStrategy() , GROW_TREE)); + this.algorithm = $build_0(this.algorithmAssembler, graph); + for (processor$iterator = new ArrayList$1(this.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(progressMonitor, 1)); + } + $updateGraph(graphImporter, graph); + overlapsExisted = $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , OVERLAPS_EXISTED)))); + ++iteration; + } + $applyPositions_0(graphImporter, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider', 1133); +function $handle_4(this$static, arg0, arg1){ + lambda$0_33(this$static.overlapEdges_0, arg0, arg1); +} + +function OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges_0){ + this.overlapEdges_0 = overlapEdges_0; +} + +defineClass(1134, 1, {}, OverlapRemovalLayoutProvider$lambda$0$Type); +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider/lambda$0$Type', 1134); +function $clinit_SPOrEPhases(){ + $clinit_SPOrEPhases = emptyMethod; + P1_STRUCTURE = new SPOrEPhases('P1_STRUCTURE', 0); + P2_PROCESSING_ORDER = new SPOrEPhases('P2_PROCESSING_ORDER', 1); + P3_EXECUTION = new SPOrEPhases('P3_EXECUTION', 2); +} + +function SPOrEPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_85(name_0){ + $clinit_SPOrEPhases(); + return valueOf(($clinit_SPOrEPhases$Map() , $MAP_73), name_0); +} + +function values_91(){ + $clinit_SPOrEPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]); +} + +defineClass(437, 22, {3:1, 35:1, 22:1, 437:1}, SPOrEPhases); +var P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION; +var Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit = createForEnum('org.eclipse.elk.alg.spore', 'SPOrEPhases', 437, Ljava_lang_Enum_2_classLit, values_91, valueOf_85); +function $clinit_SPOrEPhases$Map(){ + $clinit_SPOrEPhases$Map = emptyMethod; + $MAP_73 = createValueOfMap(($clinit_SPOrEPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]))); +} + +var $MAP_73; +function $shrink(this$static, graph, progressMonitor){ + var processor, processor$iterator; + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); + $setPhase(this$static.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); + $setPhase(this$static.algorithmAssembler, P3_EXECUTION, graph.compactionStrategy); + this$static.algorithm = $build_0(this$static.algorithmAssembler, graph); + $begin(progressMonitor, 'Compaction by shrinking a tree', this$static.algorithm.array.length); + if (graph.vertices.array.length > 1) { + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(progressMonitor, 1)); + } + } + $done_0(progressMonitor); +} + +function ShrinkTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +defineClass(1255, 1, {}, ShrinkTree); +var Lorg_eclipse_elk_alg_spore_ShrinkTree_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTree', 1255); +function ShrinkTreeLayoutProvider(){ + this.shrinktree = new ShrinkTree; +} + +defineClass(1135, 209, $intern_96, ShrinkTreeLayoutProvider); +_.layout = function layout_7(layoutGraph, progressMonitor){ + var graph, graphImporter, lad, layoutProvider, requestedAlgorithm; + if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, UNDERLYING_LAYOUT_ALGORITHM)); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + $shrink(this.shrinktree, graph, $subTask(progressMonitor, 1)); + $applyPositions_0(graphImporter, graph); +} +; +var Lorg_eclipse_elk_alg_spore_ShrinkTreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTreeLayoutProvider', 1135); +function Graph(costFun, treeStrategy, compStrategy){ + this.vertices = new ArrayList; + this.costFunction = costFun; + this.treeConstructionStrategy = treeStrategy; + this.compactionStrategy = compStrategy; +} + +defineClass(300, 134, {3:1, 300:1, 94:1, 134:1}, Graph); +_.orthogonalCompaction = false; +var Lorg_eclipse_elk_alg_spore_graph_Graph_2_classLit = createForClass('org.eclipse.elk.alg.spore.graph', 'Graph', 300); +function $clinit_CompactionStrategy_1(){ + $clinit_CompactionStrategy_1 = emptyMethod; + DEPTH_FIRST_0 = new CompactionStrategy_1; +} + +function $create_14(this$static){ + switch (this$static.ordinal) { + case 0: + return new ShrinkTreeCompactionPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CompactionStrategy_1(){ + Enum.call(this, 'DEPTH_FIRST', 0); +} + +function valueOf_86(name_0){ + $clinit_CompactionStrategy_1(); + return valueOf(($clinit_CompactionStrategy$Map_1() , $MAP_74), name_0); +} + +function values_92(){ + $clinit_CompactionStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]); +} + +defineClass(482, 22, {3:1, 35:1, 22:1, 482:1, 246:1, 234:1}, CompactionStrategy_1); +_.create_1 = function create_28(){ + return $create_14(this); +} +; +_.create_2 = function create_27(){ + return $create_14(this); +} +; +var DEPTH_FIRST_0; +var Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'CompactionStrategy', 482, Ljava_lang_Enum_2_classLit, values_92, valueOf_86); +function $clinit_CompactionStrategy$Map_1(){ + $clinit_CompactionStrategy$Map_1 = emptyMethod; + $MAP_74 = createValueOfMap(($clinit_CompactionStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]))); +} + +var $MAP_74; +function $clinit_OverlapRemovalStrategy(){ + $clinit_OverlapRemovalStrategy = emptyMethod; + GROW_TREE = new OverlapRemovalStrategy; +} + +function OverlapRemovalStrategy(){ + Enum.call(this, 'GROW_TREE', 0); +} + +function valueOf_87(name_0){ + $clinit_OverlapRemovalStrategy(); + return valueOf(($clinit_OverlapRemovalStrategy$Map() , $MAP_75), name_0); +} + +function values_93(){ + $clinit_OverlapRemovalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]); +} + +defineClass(551, 22, {3:1, 35:1, 22:1, 551:1, 246:1, 234:1}, OverlapRemovalStrategy); +_.create_1 = function create_30(){ + return new GrowTreePhase; +} +; +_.create_2 = function create_29(){ + return new GrowTreePhase; +} +; +var GROW_TREE; +var Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'OverlapRemovalStrategy', 551, Ljava_lang_Enum_2_classLit, values_93, valueOf_87); +function $clinit_OverlapRemovalStrategy$Map(){ + $clinit_OverlapRemovalStrategy$Map = emptyMethod; + $MAP_75 = createValueOfMap(($clinit_OverlapRemovalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]))); +} + +var $MAP_75; +function $clinit_RootSelection(){ + $clinit_RootSelection = emptyMethod; + FIXED_1 = new RootSelection('FIXED', 0); + CENTER_NODE = new RootSelection('CENTER_NODE', 1); +} + +function RootSelection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_88(name_0){ + $clinit_RootSelection(); + return valueOf(($clinit_RootSelection$Map() , $MAP_76), name_0); +} + +function values_94(){ + $clinit_RootSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]); +} + +defineClass(430, 22, {3:1, 35:1, 22:1, 430:1}, RootSelection); +var CENTER_NODE, FIXED_1; +var Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'RootSelection', 430, Ljava_lang_Enum_2_classLit, values_94, valueOf_88); +function $clinit_RootSelection$Map(){ + $clinit_RootSelection$Map = emptyMethod; + $MAP_76 = createValueOfMap(($clinit_RootSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]))); +} + +var $MAP_76; +function $clinit_SpanningTreeCostFunction(){ + $clinit_SpanningTreeCostFunction = emptyMethod; + CENTER_DISTANCE = new SpanningTreeCostFunction('CENTER_DISTANCE', 0); + CIRCLE_UNDERLAP = new SpanningTreeCostFunction('CIRCLE_UNDERLAP', 1); + RECTANGLE_UNDERLAP = new SpanningTreeCostFunction('RECTANGLE_UNDERLAP', 2); + INVERTED_OVERLAP = new SpanningTreeCostFunction('INVERTED_OVERLAP', 3); + MINIMUM_ROOT_DISTANCE = new SpanningTreeCostFunction('MINIMUM_ROOT_DISTANCE', 4); +} + +function SpanningTreeCostFunction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_89(name_0){ + $clinit_SpanningTreeCostFunction(); + return valueOf(($clinit_SpanningTreeCostFunction$Map() , $MAP_77), name_0); +} + +function values_95(){ + $clinit_SpanningTreeCostFunction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]); +} + +defineClass(316, 22, {3:1, 35:1, 22:1, 316:1}, SpanningTreeCostFunction); +var CENTER_DISTANCE, CIRCLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE, RECTANGLE_UNDERLAP; +var Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'SpanningTreeCostFunction', 316, Ljava_lang_Enum_2_classLit, values_95, valueOf_89); +function $clinit_SpanningTreeCostFunction$Map(){ + $clinit_SpanningTreeCostFunction$Map = emptyMethod; + $MAP_77 = createValueOfMap(($clinit_SpanningTreeCostFunction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]))); +} + +var $MAP_77; +function $clinit_SporeCompactionOptions(){ + $clinit_SporeCompactionOptions = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); + PROCESSING_ORDER_TREE_CONSTRUCTION = PROCESSING_ORDER_TREE_CONSTRUCTION_0; + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION = PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0; + PROCESSING_ORDER_PREFERRED_ROOT = PROCESSING_ORDER_PREFERRED_ROOT_0; + PROCESSING_ORDER_ROOT_SELECTION = PROCESSING_ORDER_ROOT_SELECTION_0; + PADDING_DEFAULT_3 = new ElkPadding_0(8); + PADDING_4 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_3); + SPACING_NODE_NODE_4 = new Property_2(SPACING_NODE_NODE_6, 8); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; + COMPACTION_COMPACTION_STRATEGY = COMPACTION_COMPACTION_STRATEGY_0; + COMPACTION_ORTHOGONAL = COMPACTION_ORTHOGONAL_0; + DEBUG_MODE_1 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); +} + +function $apply_22(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeCompaction'), 'ELK SPOrE Compaction'), 'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'), new SporeCompactionOptions$SporeCompactionFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.treeConstruction', $getDefault(PROCESSING_ORDER_TREE_CONSTRUCTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.spanningTreeCostFunction', $getDefault(PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.preferredRoot', $getDefault(PROCESSING_ORDER_PREFERRED_ROOT)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.rootSelection', $getDefault(PROCESSING_ORDER_ROOT_SELECTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.padding', PADDING_DEFAULT_3); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.spacing.nodeNode', 8); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.compactionStrategy', $getDefault(COMPACTION_COMPACTION_STRATEGY)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.orthogonal', $getDefault(COMPACTION_ORTHOGONAL)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); +} + +function SporeCompactionOptions(){ + $clinit_SporeCompactionOptions(); +} + +defineClass(1002, 1, $intern_90, SporeCompactionOptions); +_.apply_4 = function apply_163(registry){ + $apply_22(registry); +} +; +var COMPACTION_COMPACTION_STRATEGY, COMPACTION_ORTHOGONAL, DEBUG_MODE_1, PADDING_4, PADDING_DEFAULT_3, PROCESSING_ORDER_PREFERRED_ROOT, PROCESSING_ORDER_ROOT_SELECTION, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, PROCESSING_ORDER_TREE_CONSTRUCTION, SPACING_NODE_NODE_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY, UNDERLYING_LAYOUT_ALGORITHM; +var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions', 1002); +function SporeCompactionOptions$SporeCompactionFactory(){ +} + +defineClass(1003, 1, {}, SporeCompactionOptions$SporeCompactionFactory); +_.create_0 = function create_31(){ + var provider; + return provider = new ShrinkTreeLayoutProvider , provider; +} +; +_.destroy = function destroy_6(obj){ +} +; +var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions$SporeCompactionFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions/SporeCompactionFactory', 1003); +function $clinit_SporeMetaDataProvider(){ + $clinit_SporeMetaDataProvider = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM_0 = new Property('org.eclipse.elk.underlyingLayoutAlgorithm'); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT = ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.structure.structureExtractionStrategy', STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT); + PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT = ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE); + PROCESSING_ORDER_TREE_CONSTRUCTION_0 = new Property_1('org.eclipse.elk.processingOrder.treeConstruction', PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT); + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT = ($clinit_SpanningTreeCostFunction() , CIRCLE_UNDERLAP); + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0 = new Property_1('org.eclipse.elk.processingOrder.spanningTreeCostFunction', PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT); + PROCESSING_ORDER_PREFERRED_ROOT_0 = new Property_1('org.eclipse.elk.processingOrder.preferredRoot', null); + PROCESSING_ORDER_ROOT_SELECTION_DEFAULT = ($clinit_RootSelection() , CENTER_NODE); + PROCESSING_ORDER_ROOT_SELECTION_0 = new Property_1('org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_ROOT_SELECTION_DEFAULT); + COMPACTION_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy_1() , DEPTH_FIRST_0); + COMPACTION_COMPACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.compaction.compactionStrategy', COMPACTION_COMPACTION_STRATEGY_DEFAULT); + COMPACTION_ORTHOGONAL_0 = new Property_1('org.eclipse.elk.compaction.orthogonal', ($clinit_Boolean() , false)); + OVERLAP_REMOVAL_MAX_ITERATIONS = new Property_1('org.eclipse.elk.overlapRemoval.maxIterations', valueOf_4(64)); + OVERLAP_REMOVAL_RUN_SCANLINE = new Property_1('org.eclipse.elk.overlapRemoval.runScanline', true); + PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0 = FIXED_1; +} + +function SporeMetaDataProvider(){ + $clinit_SporeMetaDataProvider(); +} + +defineClass(855, 1, $intern_90, SporeMetaDataProvider); +_.apply_4 = function apply_164(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.underlyingLayoutAlgorithm'), ''), 'Underlying Layout Algorithm'), 'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.structure.structureExtractionStrategy'), 'structure'), 'Structure Extraction Strategy'), 'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'), STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.treeConstruction'), 'processingOrder'), 'Tree Construction Strategy'), 'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'), PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.spanningTreeCostFunction'), 'processingOrder'), 'Cost Function for Spanning Tree'), 'The cost function is used in the creation of the spanning tree.'), PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.preferredRoot'), 'processingOrder'), 'Root node for spanning tree construction'), 'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'), null), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.processingOrder.preferredRoot', 'org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.rootSelection'), 'processingOrder'), 'Root selection for spanning tree'), 'This sets the method used to select a root node for the construction of a spanning tree'), PROCESSING_ORDER_ROOT_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.compactionStrategy'), 'compaction'), 'Compaction Strategy'), 'This option defines how the compaction is applied.'), COMPACTION_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.orthogonal'), 'compaction'), 'Orthogonal Compaction'), 'Restricts the translation of nodes to orthogonal directions in the compaction phase.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.maxIterations'), 'overlapRemoval'), 'Upper limit for iterations of overlap removal'), null), valueOf_4(64)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.runScanline'), 'overlapRemoval'), 'Whether to run a supplementary scanline overlap check.'), null), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $apply_23((new SporeOverlapRemovalOptions , registry)); + $apply_22((new SporeCompactionOptions , registry)); +} +; +var COMPACTION_COMPACTION_STRATEGY_0, COMPACTION_COMPACTION_STRATEGY_DEFAULT, COMPACTION_ORTHOGONAL_0, OVERLAP_REMOVAL_MAX_ITERATIONS, OVERLAP_REMOVAL_RUN_SCANLINE, PROCESSING_ORDER_PREFERRED_ROOT_0, PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_DEFAULT, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT, PROCESSING_ORDER_TREE_CONSTRUCTION_0, PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT, UNDERLYING_LAYOUT_ALGORITHM_0; +var Lorg_eclipse_elk_alg_spore_options_SporeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeMetaDataProvider', 855); +function $clinit_SporeOverlapRemovalOptions(){ + $clinit_SporeOverlapRemovalOptions = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM_1 = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); + PADDING_DEFAULT_4 = new ElkPadding_0(8); + new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_4); + new Property_2(SPACING_NODE_NODE_6, 8); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1 = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; + OVERLAP_REMOVAL_MAX_ITERATIONS_0 = OVERLAP_REMOVAL_MAX_ITERATIONS; + OVERLAP_REMOVAL_RUN_SCANLINE_0 = OVERLAP_REMOVAL_RUN_SCANLINE; + DEBUG_MODE_2 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); +} + +function $apply_23(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeOverlap'), 'ELK SPOrE Overlap Removal'), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new SporeOverlapRemovalOptions$SporeOverlapFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM_1)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.padding', PADDING_DEFAULT_4); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.spacing.nodeNode', 8); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.maxIterations', $getDefault(OVERLAP_REMOVAL_MAX_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.runScanline', $getDefault(OVERLAP_REMOVAL_RUN_SCANLINE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); +} + +function SporeOverlapRemovalOptions(){ + $clinit_SporeOverlapRemovalOptions(); +} + +defineClass($intern_45, 1, $intern_90, SporeOverlapRemovalOptions); +_.apply_4 = function apply_165(registry){ + $apply_23(registry); +} +; +var DEBUG_MODE_2, OVERLAP_REMOVAL_MAX_ITERATIONS_0, OVERLAP_REMOVAL_RUN_SCANLINE_0, PADDING_DEFAULT_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1, UNDERLYING_LAYOUT_ALGORITHM_1; +var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions', $intern_45); +function SporeOverlapRemovalOptions$SporeOverlapFactory(){ +} + +defineClass(1001, 1, {}, SporeOverlapRemovalOptions$SporeOverlapFactory); +_.create_0 = function create_32(){ + var provider; + return provider = new OverlapRemovalLayoutProvider , provider; +} +; +_.destroy = function destroy_7(obj){ +} +; +var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions$SporeOverlapFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions/SporeOverlapFactory', 1001); +function $clinit_StructureExtractionStrategy(){ + $clinit_StructureExtractionStrategy = emptyMethod; + DELAUNAY_TRIANGULATION = new StructureExtractionStrategy; +} + +function $create_15(this$static){ + switch (this$static.ordinal) { + case 0: + return new DelaunayTriangulationPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function StructureExtractionStrategy(){ + Enum.call(this, 'DELAUNAY_TRIANGULATION', 0); +} + +function valueOf_90(name_0){ + $clinit_StructureExtractionStrategy(); + return valueOf(($clinit_StructureExtractionStrategy$Map() , $MAP_78), name_0); +} + +function values_96(){ + $clinit_StructureExtractionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]); +} + +defineClass(530, 22, {3:1, 35:1, 22:1, 530:1, 246:1, 234:1}, StructureExtractionStrategy); +_.create_1 = function create_34(){ + return $create_15(this); +} +; +_.create_2 = function create_33(){ + return $create_15(this); +} +; +var DELAUNAY_TRIANGULATION; +var Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'StructureExtractionStrategy', 530, Ljava_lang_Enum_2_classLit, values_96, valueOf_90); +function $clinit_StructureExtractionStrategy$Map(){ + $clinit_StructureExtractionStrategy$Map = emptyMethod; + $MAP_78 = createValueOfMap(($clinit_StructureExtractionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]))); +} + +var $MAP_78; +function $clinit_TreeConstructionStrategy(){ + $clinit_TreeConstructionStrategy = emptyMethod; + MINIMUM_SPANNING_TREE = new TreeConstructionStrategy('MINIMUM_SPANNING_TREE', 0); + MAXIMUM_SPANNING_TREE = new TreeConstructionStrategy('MAXIMUM_SPANNING_TREE', 1); +} + +function $create_16(this$static){ + switch (this$static.ordinal) { + case 0: + return new MinSTPhase; + case 1: + return new MaxSTPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function TreeConstructionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_91(name_0){ + $clinit_TreeConstructionStrategy(); + return valueOf(($clinit_TreeConstructionStrategy$Map() , $MAP_79), name_0); +} + +function values_97(){ + $clinit_TreeConstructionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]); +} + +defineClass(429, 22, {3:1, 35:1, 22:1, 429:1, 246:1, 234:1}, TreeConstructionStrategy); +_.create_1 = function create_36(){ + return $create_16(this); +} +; +_.create_2 = function create_35(){ + return $create_16(this); +} +; +var MAXIMUM_SPANNING_TREE, MINIMUM_SPANNING_TREE; +var Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'TreeConstructionStrategy', 429, Ljava_lang_Enum_2_classLit, values_97, valueOf_91); +function $clinit_TreeConstructionStrategy$Map(){ + $clinit_TreeConstructionStrategy$Map = emptyMethod; + $MAP_79 = createValueOfMap(($clinit_TreeConstructionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]))); +} + +var $MAP_79; +function $process_94(graph, progressMonitor){ + var vertices; + $begin(progressMonitor, 'Delaunay triangulation', 1); + vertices = new ArrayList; + $forEach_1(graph.vertices, new DelaunayTriangulationPhase$lambda$0$Type(vertices)); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG)))) && 'null10bw'; + !graph.tEdges?(graph.tEdges = triangulate(vertices)):$addAll(graph.tEdges, triangulate(vertices)); + $done_0(progressMonitor); +} + +function DelaunayTriangulationPhase(){ +} + +defineClass(1443, 1, $intern_113, DelaunayTriangulationPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_26(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_90(graph, progressMonitor){ + $process_94(castTo(graph, 300), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase', 1443); +function DelaunayTriangulationPhase$lambda$0$Type(vertices_0){ + this.vertices_0 = vertices_0; +} + +defineClass(1444, 1, $intern_19, DelaunayTriangulationPhase$lambda$0$Type); +_.accept = function accept_132(arg0){ + $add_3(this.vertices_0, castTo(arg0, 65).originalVertex); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase/lambda$0$Type', 1444); +function $addNode_1(this$static, s, t){ + var child, tTree, tTree$iterator; + for (tTree$iterator = new ArrayList$1(t.children); tTree$iterator.i < tTree$iterator.this$01.array.length;) { + tTree = castTo($next_7(tTree$iterator), 221); + child = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); + $add_3(s.children, child); + $addNode_1(this$static, child, tTree); + } +} + +function $convert(this$static, tTree, graph){ + var root; + $reset(this$static.nodeMap); + $forEach_1(graph.vertices, new MinSTPhase$lambda$0$Type(this$static)); + root = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); + $addNode_1(this$static, root, tTree); + graph.tree = root; +} + +function $lambda$0_10(this$static, n_0){ + return $put_6(this$static.nodeMap, n_0.originalVertex, n_0); +} + +function MinSTPhase(){ + this.nodeMap = new HashMap; +} + +defineClass(783, 1, $intern_113, MinSTPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_27(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_91(graph, progressMonitor){ + this.process_0(castTo(graph, 300), progressMonitor); +} +; +_.process_0 = function process_92(graph, progressMonitor){ + var lastArg, root, tTree; + $begin(progressMonitor, 'Minimum spanning tree construction', 1); + graph.preferredRoot?(root = graph.preferredRoot.originalVertex):(root = castTo($get_11(graph.vertices, 0), 65).originalVertex); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tTree = createSpanningTree(graph.tEdges, root, (lastArg = graph.costFunction , lastArg))):(tTree = createSpanningTree(graph.tEdges, root, graph.costFunction)); + $convert(this, tTree, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase', 783); +function MaxSTPhase(){ + MinSTPhase.call(this); +} + +function lambda$0_34(graph_0, e_1){ + return -graph_0.costFunction.cost(e_1); +} + +defineClass(1446, 783, $intern_113, MaxSTPhase); +_.process_0 = function process_93(graph, progressMonitor){ + var invertedCF, lastArg, root, tree; + $begin(progressMonitor, 'Maximum spanning tree construction', 1); + invertedCF = new MaxSTPhase$lambda$0$Type(graph); + graph.preferredRoot?(root = graph.preferredRoot.vertex):(root = castTo($get_11(graph.vertices, 0), 65).vertex); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tree = createSpanningTree(graph.tEdges, root, (lastArg = invertedCF , lastArg))):(tree = createSpanningTree(graph.tEdges, root, invertedCF)); + $convert(this, tree, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase', 1446); +function MaxSTPhase$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1447, 1, {}, MaxSTPhase$lambda$0$Type); +_.cost = function cost_5(arg0){ + return lambda$0_34(this.graph_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase/lambda$0$Type', 1447); +function MinSTPhase$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1445, 1, $intern_19, MinSTPhase$lambda$0$Type); +_.accept = function accept_133(arg0){ + $lambda$0_10(this.$$outer_0, castTo(arg0, 65)); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase/lambda$0$Type', 1445); +function $debugOut(this$static, c){ + $drawTree(this$static, this$static.root, this$static.svg); + castTo(this$static.root.node, 65); + !!c && castTo(c.node, 65).rect; +} + +function $drawTree(this$static, t, img){ + castTo(t.node, 65); + $forEach_1(t.children, new GrowTreePhase$lambda$0$Type(this$static, img, t)); +} + +function $growAt(this$static, r){ + var c, c$iterator, t; + for (c$iterator = new ArrayList$1(r.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_7(c$iterator), 221); + $translate(castTo(c.node, 65), $sub_0($clone_0(castTo(r.node, 65).vertex), castTo(r.node, 65).originalVertex)); + t = overlap_0(castTo(r.node, 65).rect, castTo(c.node, 65).rect); + t > 1 && (this$static.overlapsExisted = true); + $setCenterPosition(castTo(c.node, 65), $add_19($clone_0(castTo(r.node, 65).vertex), $scale($sub_0($clone_0(castTo(c.node, 65).originalVertex), castTo(r.node, 65).originalVertex), t))); + $debugOut(this$static, r); + $growAt(this$static, c); + } +} + +function $lambda$0_11(this$static, img_1, t_2, c_2){ + castTo(t_2.node, 65); + castTo(t_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + $forEach_1(c_2.children, new GrowTreePhase$lambda$0$Type(this$static, img_1, c_2)); +} + +function $process_95(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Grow Tree', 1); + this$static.root = graph.tree; + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { + this$static.svg = new SVGImage; + $debugOut(this$static, null); + } + else { + this$static.svg = new SVGImage; + } + this$static.overlapsExisted = false; + $growAt(this$static, graph.tree); + $setProperty_0(graph, OVERLAPS_EXISTED, ($clinit_Boolean() , this$static.overlapsExisted?true:false)); + $done_0(progressMonitor); +} + +function GrowTreePhase(){ +} + +defineClass(785, 1, $intern_113, GrowTreePhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_28(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_94(graph, progressMonitor){ + $process_95(this, castTo(graph, 300), progressMonitor); +} +; +_.overlapsExisted = false; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase', 785); +function GrowTreePhase$lambda$0$Type($$outer_0, img_1, t_2){ + this.$$outer_0 = $$outer_0; + this.img_1 = img_1; + this.t_2 = t_2; +} + +defineClass(786, 1, $intern_19, GrowTreePhase$lambda$0$Type); +_.accept = function accept_134(arg0){ + $lambda$0_11(this.$$outer_0, this.img_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase/lambda$0$Type', 786); +function $debugOut_0(this$static, tree){ + var svg; + svg = new SVGImage; + castTo(tree.node, 65); + castTo(tree.node, 65); + castTo(tree.node, 65); + $forEach_1(tree.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg, tree)); +} + +function $lambda$0_12(this$static, svg_1, t_2, c_2){ + var cv; + castTo(t_2.node, 65); + castTo(t_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + cv = $sub_0($clone_0(castTo(t_2.node, 65).vertex), castTo(c_2.node, 65).vertex); + $scaleToLength(cv, $distance(castTo(t_2.node, 65), castTo(c_2.node, 65), cv)); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65).vertex.x_0 + cv.x_0; + castTo(c_2.node, 65).vertex.y_0 + cv.y_0; + castTo(c_2.node, 65); + $forEach_1(c_2.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg_1, c_2)); +} + +function $process_96(this$static, graph, progressMonitor){ + var lastArg; + $begin(progressMonitor, 'Shrinking tree compaction', 1); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { + $debugOut_0(this$static, graph.tree); + compact_0(graph.tree, (lastArg = graph.orthogonalCompaction , lastArg)); + } + else { + compact_0(graph.tree, graph.orthogonalCompaction); + } + $done_0(progressMonitor); +} + +function ShrinkTreeCompactionPhase(){ +} + +defineClass(1448, 1, $intern_113, ShrinkTreeCompactionPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_29(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_95(graph, progressMonitor){ + $process_96(this, castTo(graph, 300), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase', 1448); +function ShrinkTreeCompactionPhase$lambda$0$Type($$outer_0, svg_1, t_2){ + this.$$outer_0 = $$outer_0; + this.svg_1 = svg_1; + this.t_2 = t_2; +} + +defineClass(784, 1, $intern_19, ShrinkTreeCompactionPhase$lambda$0$Type); +_.accept = function accept_135(arg0){ + $lambda$0_12(this.$$outer_0, this.svg_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase/lambda$0$Type', 784); +var Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit = createForInterface('org.eclipse.elk.core.util', 'IGraphElementVisitor'); +function $clinit_LayoutConfigurator(){ + $clinit_LayoutConfigurator = emptyMethod; + new Property('org.eclipse.elk.addLayoutConfig'); + NO_OVERWRITE_HOLDER = new LayoutConfigurator$lambda$2$Type; + NO_OVERWRITE = new LayoutConfigurator$lambda$0$Type; + OPTION_TARGET_FILTER = new LayoutConfigurator$lambda$1$Type; +} + +function $addFilter(this$static, filter){ + $add_3(this$static.optionFilters, filter); + return this$static; +} + +function $applyProperties(this$static, element, properties){ + var accept, clone, entry, entry$iterator, filters, value_0; + filters = this$static.optionFilters; + for (entry$iterator = (!properties.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):properties.propertyMap).entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + accept = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(filters, 16)), new Predicate$lambda$2$Type(new LayoutConfigurator$lambda$3$Type(element, entry)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + if (accept) { + value_0 = entry.getValue(); + if (instanceOf(value_0, 4)) { + clone = clone_11(value_0); + clone != null && (value_0 = clone); + } + element.setProperty(castTo(entry.getKey(), 146), value_0); + } + } +} + +function $configure(this$static, elementClass){ + var result; + result = castTo($get_10(this$static.classOptionMap, elementClass), 134); + if (!result) { + result = new MapPropertyHolder; + $put_6(this$static.classOptionMap, elementClass, result); + } + return result; +} + +function $findClassOptions(this$static, element){ + var combined; + combined = new MapPropertyHolder; + !!element && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit), 94)); + instanceOf(element, 470) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkShape_2_classLit), 94)); + if (instanceOf(element, 354)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), 94)); + return combined; + } + instanceOf(element, 82) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit), 94)); + if (instanceOf(element, 239)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkNode_2_classLit), 94)); + return combined; + } + if (instanceOf(element, 186)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkPort_2_classLit), 94)); + return combined; + } + instanceOf(element, 352) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), 94)); + return combined; +} + +function LayoutConfigurator(){ + $clinit_LayoutConfigurator(); + this.elementOptionMap = new HashMap; + this.classOptionMap = new HashMap; + this.optionFilters = new ArrayList; +} + +function lambda$1_17(e_0, property_1){ + $clinit_LayoutConfigurator(); + var optionData, targets; + optionData = $getOptionData(getInstance(), property_1.getId()); + if (optionData) { + targets = optionData.targets; + if (instanceOf(e_0, 239)) { + return $isHierarchical_0(castTo(e_0, 33))?$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(targets, PARENTS):$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)); + } + else if (instanceOf(e_0, 352)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , EDGES)); + } + else if (instanceOf(e_0, 186)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , PORTS)); + } + else if (instanceOf(e_0, 354)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , LABELS)); + } + } + return true; +} + +function lambda$3_6(element_0, entry_1, filter_2){ + $clinit_LayoutConfigurator(); + return filter_2.accept_3(element_0, castTo(entry_1.getKey(), 146)); +} + +defineClass(860, 1, {527:1}, LayoutConfigurator); +_.visit = function visit(element){ + var combined; + combined = $findClassOptions(this, element); + $copyProperties(combined, castTo($get_10(this.elementOptionMap, element), 94)); + $applyProperties(this, element, combined); +} +; +var NO_OVERWRITE, NO_OVERWRITE_HOLDER, OPTION_TARGET_FILTER; +var Lorg_eclipse_elk_core_LayoutConfigurator_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator', 860); +var Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit = createForInterface('org.eclipse.elk.core', 'LayoutConfigurator/IPropertyHolderOptionFilter'); +function LayoutConfigurator$lambda$0$Type(){ +} + +defineClass(932, 1, {1933:1}, LayoutConfigurator$lambda$0$Type); +_.accept_3 = function accept_136(e, p){ + return $clinit_LayoutConfigurator() , !e.hasProperty(p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$0$Type', 932); +function $accept_5(e, p){ + return lambda$1_17(e, p); +} + +function LayoutConfigurator$lambda$1$Type(){ +} + +defineClass(933, 1, {1933:1}, LayoutConfigurator$lambda$1$Type); +_.accept_3 = function accept_137(e, p){ + return $accept_5(e, p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$1$Type', 933); +function LayoutConfigurator$lambda$2$Type(){ +} + +defineClass(931, 1, {831:1}, LayoutConfigurator$lambda$2$Type); +_.accept_4 = function accept_138(holder, property){ + return $clinit_LayoutConfigurator() , !holder.hasProperty(property); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$2$Type', 931); +function LayoutConfigurator$lambda$3$Type(element_0, entry_1){ + this.element_0 = element_0; + this.entry_1 = entry_1; +} + +defineClass(934, 1, $intern_39, LayoutConfigurator$lambda$3$Type); +_.test_0 = function test_106(arg0){ + return lambda$3_6(this.element_0, this.entry_1, castTo(arg0, 1933)); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$3$Type', 934); +function $countNodesRecursively(this$static, layoutNode, countAncestors){ + var childNode, childNode$iterator, count, parent_0; + count = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; + for (childNode$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 33); + (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 == 0 || (count += $countNodesRecursively(this$static, childNode, false)); + } + if (countAncestors) { + parent_0 = $getParent_2(layoutNode); + while (parent_0) { + count += (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; + parent_0 = $getParent_2(parent_0); + } + } + return count; +} + +function $countNodesWithHierarchy(this$static, parentNode){ + var childData, childNode, childNode$iterator, count, parentData; + count = (!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0; + for (childNode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 33); + if (maskUndefined($getProperty_0(childNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) !== maskUndefined(($clinit_HierarchyHandling() , SEPARATE_CHILDREN))) { + parentData = castTo($getProperty_0(parentNode, RESOLVED_ALGORITHM), 149); + childData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 149); + (parentData == childData || !!parentData && $equals_8(parentData, childData)) && (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 != 0 && (count += $countNodesWithHierarchy(this$static, childNode)); + } + } + return count; +} + +function $evaluateHierarchyHandlingInheritance(layoutNode){ + var parentHandling; + if (maskUndefined($getProperty_0(layoutNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) === maskUndefined(($clinit_HierarchyHandling() , INHERIT))) { + if (!$getParent_2(layoutNode)) { + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); + } + else { + parentHandling = castTo($getProperty_0($getParent_2(layoutNode), HIERARCHY_HANDLING_0), 334); + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, parentHandling); + } + } +} + +function $executeAlgorithm(layoutNode, algorithmData, progressMonitor){ + var exception, layoutProvider; + layoutProvider = castTo($fetch(algorithmData.providerPool), 209); + try { + layoutProvider.layout(layoutNode, progressMonitor); + $release(algorithmData.providerPool, layoutProvider); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + throw toJs(exception); + } + else + throw toJs($e0); + } +} + +function $gatherInsideSelfLoops(node){ + var edge, edge$iterator, insideSelfLoops; + if ($booleanValue(castToBoolean($getProperty_0(node, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0))))) { + insideSelfLoops = new ArrayList; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + $isSelfloop(edge) && $booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO_0))) && (insideSelfLoops.array[insideSelfLoops.array.length] = edge , true); + } + return insideSelfLoops; + } + else { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $layout_3(this$static, layoutGraph, progressMonitor){ + var nodeCount; + nodeCount = $countNodesRecursively(this$static, layoutGraph, true); + $begin(progressMonitor, 'Recursive Graph Layout', nodeCount); + applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new DeprecatedLayoutOptionReplacer])); + $hasProperty_0(layoutGraph, ($clinit_CoreOptions() , RESOLVED_ALGORITHM)) || applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new LayoutAlgorithmResolver])); + $layoutRecursively(this$static, layoutGraph, null, progressMonitor); + $done_0(progressMonitor); +} + +function $layoutRecursively(this$static, layoutNode, testController, progressMonitor){ + var algorithmData, child, child$iterator, childLayoutSelfLoops, childrenInsideSelfLoops, hasChildren, hasInsideSelfLoops, insideSelfLoops, node, nodeCount, nodeQueue, selfLoop, selfLoop$iterator, stopHierarchy, supportsInsideSelfLoops; + if ($booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_CoreOptions() , NO_LAYOUT_0))))) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + hasChildren = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0 != 0; + insideSelfLoops = $gatherInsideSelfLoops(layoutNode); + hasInsideSelfLoops = !insideSelfLoops.isEmpty(); + if (hasChildren || hasInsideSelfLoops) { + algorithmData = castTo($getProperty_0(layoutNode, RESOLVED_ALGORITHM), 149); + if (!algorithmData) { + throw toJs(new UnsupportedConfigurationException_0('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.')); + } + supportsInsideSelfLoops = $supportsFeature(algorithmData, ($clinit_GraphFeature() , INSIDE_SELF_LOOPS)); + $evaluateHierarchyHandlingInheritance(layoutNode); + if (!hasChildren && hasInsideSelfLoops && !supportsInsideSelfLoops) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + childrenInsideSelfLoops = new ArrayList; + if (maskUndefined($getProperty_0(layoutNode, HIERARCHY_HANDLING_0)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)) && ($supportsFeature(algorithmData, COMPOUND) || $supportsFeature(algorithmData, CLUSTERS))) { + nodeCount = $countNodesWithHierarchy(this$static, layoutNode); + nodeQueue = new LinkedList; + $addAll(nodeQueue, (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); + while (nodeQueue.size_0 != 0) { + node = castTo(nodeQueue.size_0 == 0?null:(checkCriticalElement(nodeQueue.size_0 != 0) , $removeNode_0(nodeQueue, nodeQueue.header.next_0)), 33); + $evaluateHierarchyHandlingInheritance(node); + stopHierarchy = maskUndefined($getProperty_0(node, HIERARCHY_HANDLING_0)) === maskUndefined(SEPARATE_CHILDREN); + if (stopHierarchy || $hasProperty_0(node, ALGORITHM) && !$equals_8(algorithmData, $getProperty_0(node, RESOLVED_ALGORITHM))) { + childLayoutSelfLoops = $layoutRecursively(this$static, node, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + $setProperty_1(node, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); + applyConfiguredNodeScaling(node); + } + else { + $addAll(nodeQueue, (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + } + } + } + else { + nodeCount = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; + for (child$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + childLayoutSelfLoops = $layoutRecursively(this$static, child, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + applyConfiguredNodeScaling(child); + } + } + for (selfLoop$iterator = new ArrayList$1(childrenInsideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_7(selfLoop$iterator), 79); + $setProperty_1(selfLoop, NO_LAYOUT_0, ($clinit_Boolean() , true)); + } + $executeAlgorithm(layoutNode, algorithmData, $subTask(progressMonitor, nodeCount)); + $postProcessInsideSelfLoops(childrenInsideSelfLoops); + return hasInsideSelfLoops && supportsInsideSelfLoops?insideSelfLoops:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); + } + else { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $postProcessInsideSelfLoops(insideSelfLoops){ + var bend, bend$iterator, node, section, selfLoop, selfLoop$iterator, xOffset, yOffset; + for (selfLoop$iterator = new ArrayList$1(insideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_7(selfLoop$iterator), 79); + node = connectableShapeToNode(castTo($get_20((!selfLoop.sources && (selfLoop.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, selfLoop, 4, 7)) , selfLoop.sources), 0), 82)); + xOffset = node.x_0; + yOffset = node.y_0; + section = castTo($get_20((!selfLoop.sections && (selfLoop.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, selfLoop, 6, 6)) , selfLoop.sections), 0), 202); + $setStartLocation(section, section.startX + xOffset, section.startY + yOffset); + $setEndLocation(section, section.endX + xOffset, section.endY + yOffset); + for (bend$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bend$iterator.cursor != bend$iterator.this$01_2.size_1();) { + bend = castTo($doNext(bend$iterator), 469); + $set_10(bend, bend.x_0 + xOffset, bend.y_0 + yOffset); + } + $offset_1(castTo($getProperty_0(selfLoop, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74), xOffset, yOffset); + } +} + +function RecursiveGraphLayoutEngine(){ +} + +defineClass(858, 1, {}, RecursiveGraphLayoutEngine); +var Lorg_eclipse_elk_core_RecursiveGraphLayoutEngine_2_classLit = createForClass('org.eclipse.elk.core', 'RecursiveGraphLayoutEngine', 858); +function UnsupportedConfigurationException(){ + RuntimeException.call(this); +} + +function UnsupportedConfigurationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(296, 60, $intern_43, UnsupportedConfigurationException, UnsupportedConfigurationException_0); +var Lorg_eclipse_elk_core_UnsupportedConfigurationException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedConfigurationException', 296); +function UnsupportedGraphException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(453, 60, $intern_43, UnsupportedGraphException); +var Lorg_eclipse_elk_core_UnsupportedGraphException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedGraphException', 453); +function $ensureListSize(this$static, size_0){ + var i; + for (i = this$static.list.array.length; i < size_0; i++) { + $add_3(this$static.list, this$static.provideDefault()); + } +} + +function $getListItem(this$static, index_0){ + if (index_0 < 0) { + throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); + } + $ensureListSize(this$static, index_0 + 1); + return $get_11(this$static.list, index_0); +} + +function $setListItem(this$static, index_0, value_0){ + if (index_0 < 0) { + throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); + } + if (index_0 < this$static.list.array.length) { + $set_1(this$static.list, index_0, value_0); + } + else { + $ensureListSize(this$static, index_0); + $add_3(this$static.list, value_0); + } +} + +function AbstractRandomListAccessor(){ + this.list = new ArrayList; +} + +defineClass(754, 1, {}); +var Lorg_eclipse_elk_core_util_AbstractRandomListAccessor_2_classLit = createForClass('org.eclipse.elk.core.util', 'AbstractRandomListAccessor', 754); +function $addProcessorConfiguration(this$static, config){ + $addAll_6(this$static.additionalProcessors, config); + return this$static; +} + +function $build_0(this$static, graph){ + var algorithm, phase, phase$array, phase$array0, phase$index, phase$index0, phase$max, phase$max0, phaseEnumConstants, phaseFactory, phaseImplementation, phaseImplementations, processorConfiguration; + if (this$static.failOnMissingPhase && this$static.configuredPhases.size_0 < this$static.numberOfPhases) { + throw toJs(new IllegalStateException_0('Expected ' + this$static.numberOfPhases + ' phases to be configured; ' + 'only found ' + this$static.configuredPhases.size_0)); + } + phaseEnumConstants = castTo($getEnumConstants(this$static.phasesEnumClass), 9); + phaseImplementations = newArrayListWithCapacity(this$static.numberOfPhases); + for (phase$array0 = phaseEnumConstants , phase$index0 = 0 , phase$max0 = phase$array0.length; phase$index0 < phase$max0; ++phase$index0) { + phase = phase$array0[phase$index0]; + phaseFactory = castTo($getListItem(this$static, phase.ordinal), 246); + phaseFactory?$add_3(phaseImplementations, castTo($retrieveProcessor(this$static, phaseFactory), 123)):(phaseImplementations.array[phaseImplementations.array.length] = null , true); + } + processorConfiguration = new LayoutProcessorConfiguration; + $forEach_3($filter($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(phaseImplementations, 16)), new AlgorithmAssembler$lambda$0$Type), new AlgorithmAssembler$lambda$1$Type(graph)), new AlgorithmAssembler$lambda$2$Type), new AlgorithmAssembler$lambda$3$Type(processorConfiguration)); + $addAll_6(processorConfiguration, this$static.additionalProcessors); + algorithm = new ArrayList; + for (phase$array = phaseEnumConstants , phase$index = 0 , phase$max = phase$array.length; phase$index < phase$max; ++phase$index) { + phase = phase$array[phase$index]; + $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phase.ordinal), 20)))); + phaseImplementation = castTo($get_11(phaseImplementations, phase.ordinal), 123); + !!phaseImplementation && (algorithm.array[algorithm.array.length] = phaseImplementation , true); + } + $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phaseEnumConstants[phaseEnumConstants.length - 1].ordinal + 1), 20)))); + return algorithm; +} + +function $lambda$4_3(this$static, processors_1, factory_1){ + return $add_3(processors_1, $retrieveProcessor(this$static, factory_1)); +} + +function $reset_4(this$static){ + this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $clear_0(this$static.configuredPhases); + $clear_10(this$static.additionalProcessors); + return this$static; +} + +function $retrieveProcessor(this$static, factory){ + var processor; + if (this$static.enableCaching) { + if ($containsKey_3(this$static.cache, factory)) { + return castTo($get_10(this$static.cache, factory), 51); + } + else { + processor = factory.create_1(); + $put_6(this$static.cache, factory, processor); + return processor; + } + } + else { + return factory.create_1(); + } +} + +function $retrieveProcessors(this$static, factories){ + var processors; + processors = newArrayListWithCapacity(factories.map_0.size_1()); + $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(factories, 1)), this$static.processorComparator), new AlgorithmAssembler$lambda$4$Type(this$static, processors)); + return processors; +} + +function $setPhase(this$static, phase, phaseFactory){ + $setListItem(this$static, phase.ordinal, phaseFactory); + $add_5(this$static.configuredPhases, phase); + return this$static; +} + +function AlgorithmAssembler(phaseEnum){ + var all; + AbstractRandomListAccessor.call(this); + this.processorComparator = new EnumBasedFactoryComparator; + this.phasesEnumClass = phaseEnum; + this.numberOfPhases = castTo(phaseEnum.enumConstantsFunc && phaseEnum.enumConstantsFunc(), 9).length; + if (this.numberOfPhases == 0) { + throw toJs(new IllegalArgumentException_0('There must be at least one phase in the phase enumeration.')); + } + this.configuredPhases = (all = castTo($getEnumConstants(this.phasesEnumClass), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.additionalProcessors = new LayoutProcessorConfiguration; + this.cache = new HashMap; +} + +function lambda$1_18(graph_0, phase_1){ + return phase_1.getLayoutProcessorConfiguration(graph_0); +} + +defineClass(500, 754, {}, AlgorithmAssembler); +_.provideDefault = function provideDefault(){ + return null; +} +; +_.enableCaching = true; +_.failOnMissingPhase = true; +_.numberOfPhases = 0; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler', 500); +function AlgorithmAssembler$lambda$0$Type(){ +} + +defineClass(1236, 1, $intern_39, AlgorithmAssembler$lambda$0$Type); +_.test_0 = function test_107(arg0){ + return !!castTo(arg0, 123); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$0$Type', 1236); +function AlgorithmAssembler$lambda$1$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1237, 1, {}, AlgorithmAssembler$lambda$1$Type); +_.apply_0 = function apply_166(arg0){ + return lambda$1_18(this.graph_0, castTo(arg0, 123)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$1$Type', 1237); +function AlgorithmAssembler$lambda$2$Type(){ +} + +defineClass(1238, 1, $intern_39, AlgorithmAssembler$lambda$2$Type); +_.test_0 = function test_108(arg0){ + return !!castTo(arg0, 80); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$2$Type', 1238); +function AlgorithmAssembler$lambda$3$Type(processorConfiguration_0){ + this.processorConfiguration_0 = processorConfiguration_0; +} + +defineClass(1239, 1, $intern_19, AlgorithmAssembler$lambda$3$Type); +_.accept = function accept_139(arg0){ + $addAll_6(this.processorConfiguration_0, castTo(arg0, 80)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$3$Type', 1239); +function AlgorithmAssembler$lambda$4$Type($$outer_0, processors_1){ + this.$$outer_0 = $$outer_0; + this.processors_1 = processors_1; +} + +defineClass(1240, 1, $intern_19, AlgorithmAssembler$lambda$4$Type); +_.accept = function accept_140(arg0){ + $lambda$4_3(this.$$outer_0, this.processors_1, castTo(arg0, 234)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$4$Type', 1240); +function $compare_23(factory1, factory2){ + getClass__Ljava_lang_Class___devirtual$(factory1); + getClass__Ljava_lang_Class___devirtual$(factory2); + return $compareTo(castTo(factory1, 22), castTo(factory2, 22)); +} + +function EnumBasedFactoryComparator(){ +} + +defineClass(1355, 1, $intern_88, EnumBasedFactoryComparator); +_.compare_1 = function compare_81(factory1, factory2){ + return $compare_23(castTo(factory1, 234), castTo(factory2, 234)); +} +; +_.equals_0 = function equals_168(other){ + return this === other; +} +; +_.reversed = function reversed_73(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_alg_EnumBasedFactoryComparator_2_classLit = createForClass('org.eclipse.elk.core.alg', 'EnumBasedFactoryComparator', 1355); +function $add_17(this$static, processor){ + if (this$static.currentIndex < 0) { + throw toJs(new IllegalStateException_0('Did not call before(...) or after(...) before calling add(...).')); + } + $doAdd(this$static, this$static.currentIndex, processor); + return this$static; +} + +function $addAfter(this$static, phase, processor){ + this$static.currentIndex = -1; + $doAdd(this$static, phase.ordinal + 1, processor); + return this$static; +} + +function $addAll_6(this$static, configuration){ + var i; + for (i = 0; i < configuration.list.array.length; i++) { + castTo($getListItem(this$static, i), 21).addAll(castTo($getListItem(configuration, i), 14)); + } + return this$static; +} + +function $addBefore(this$static, phase, processor){ + this$static.currentIndex = -1; + $doAdd(this$static, phase.ordinal, processor); + return this$static; +} + +function $after(this$static, phase){ + this$static.currentIndex = phase.ordinal + 1; + return this$static; +} + +function $before(this$static, phase){ + this$static.currentIndex = phase.ordinal; + return this$static; +} + +function $clear_10(this$static){ + this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.currentIndex = -1; + return this$static; +} + +function $doAdd(this$static, index_0, processor){ + castTo($getListItem(this$static, index_0), 21).add_2(processor); +} + +function LayoutProcessorConfiguration(){ + AbstractRandomListAccessor.call(this); + this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this.currentIndex = -1; +} + +function createFrom_0(source){ + return $addAll_6(new LayoutProcessorConfiguration, source); +} + +defineClass(80, 754, {80:1}, LayoutProcessorConfiguration); +_.provideDefault = function provideDefault_0(){ + return new HashSet; +} +; +_.currentIndex = 0; +var Lorg_eclipse_elk_core_alg_LayoutProcessorConfiguration_2_classLit = createForClass('org.eclipse.elk.core.alg', 'LayoutProcessorConfiguration', 80); +function $clinit_DeprecatedLayoutOptionReplacer(){ + $clinit_DeprecatedLayoutOptionReplacer = emptyMethod; + NEXT_TO_PORT_IF_POSSIBLE = new DeprecatedLayoutOptionReplacer$lambda$0$Type; + SPACE_EFFICIENT = new DeprecatedLayoutOptionReplacer$lambda$1$Type; + RULES = of_0(($clinit_CoreOptions() , PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0), NEXT_TO_PORT_IF_POSSIBLE, NODE_SIZE_OPTIONS_6, SPACE_EFFICIENT); +} + +function DeprecatedLayoutOptionReplacer(){ + $clinit_DeprecatedLayoutOptionReplacer(); +} + +function lambda$0_35(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + castTo(e_0.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).add_2(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + e_0.setProperty(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, null); +} + +function lambda$1_19(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + if (castTo(e_0.getProperty(($clinit_CoreOptions() , NODE_SIZE_OPTIONS_6)), 174).contains(($clinit_SizeOptions() , SPACE_EFFICIENT_PORT_LABELS))) { + castTo(e_0.getProperty(PORT_LABELS_PLACEMENT_5), 174).add_2(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + castTo(e_0.getProperty(NODE_SIZE_OPTIONS_6), 174).remove_1(SPACE_EFFICIENT_PORT_LABELS); + } +} + +function lambda$2_9(element_0, option_1, replacer_2){ + $clinit_DeprecatedLayoutOptionReplacer(); + element_0.hasProperty(option_1) && replacer_2.accept(element_0); +} + +defineClass(1013, 1, {527:1}, DeprecatedLayoutOptionReplacer); +_.visit = function visit_0(element){ + $forEach_2(RULES, new DeprecatedLayoutOptionReplacer$lambda$2$Type(element)); +} +; +var NEXT_TO_PORT_IF_POSSIBLE, RULES, SPACE_EFFICIENT; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer', 1013); +function DeprecatedLayoutOptionReplacer$lambda$0$Type(){ +} + +defineClass(1014, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$0$Type); +_.accept = function accept_141(arg0){ + lambda$0_35(castTo(arg0, 160)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$0$Type', 1014); +function DeprecatedLayoutOptionReplacer$lambda$1$Type(){ +} + +defineClass(1015, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$1$Type); +_.accept = function accept_142(arg0){ + lambda$1_19(castTo(arg0, 160)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$1$Type', 1015); +function DeprecatedLayoutOptionReplacer$lambda$2$Type(element_0){ + this.element_0 = element_0; +} + +defineClass(1016, 1, {}, DeprecatedLayoutOptionReplacer$lambda$2$Type); +_.accept_1 = function accept_143(arg0, arg1){ + lambda$2_9(this.element_0, castTo(arg0, 146), castTo(arg1, 38)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$2$Type', 1016); +function $addKnownOption(this$static, property, defaultValue){ + $putStringValue(this$static.knownOptions, property.id_0, defaultValue); +} + +function $equals_8(this$static, obj){ + if (instanceOf(obj, 149)) { + return $equals_5(this$static.id_0, castTo(obj, 149).id_0); + } + return false; +} + +function $supportsFeature(this$static, graphFeature){ + return $containsEnum(this$static.supportedFeatures, graphFeature); +} + +function LayoutAlgorithmData(builder){ + var all; + this.knownOptions = new HashMap; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; + this.providerPool = new InstancePool(builder.providerFactory); + this.category = builder.category; + !builder.supportedFeatures?(this.supportedFeatures = (all = castTo($getEnumConstants(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.supportedFeatures = builder.supportedFeatures); +} + +defineClass(149, 1, {686:1, 149:1}, LayoutAlgorithmData); +_.equals_0 = function equals_169(obj){ + return $equals_8(this, obj); +} +; +_.getDescription = function getDescription(){ + return this.description; +} +; +_.getId = function getId(){ + return this.id_0; +} +; +_.getName = function getName_2(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_64(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_111(){ + return 'Layout Algorithm: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData', 149); +function $category(this$static, acategory){ + this$static.category = acategory; + return this$static; +} + +function $description(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $id(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $name_0(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function $providerFactory(this$static, aproviderFactory){ + this$static.providerFactory = aproviderFactory; + return this$static; +} + +function $supportedFeatures(this$static, asupportedFeatures){ + this$static.supportedFeatures = asupportedFeatures; + return this$static; +} + +function LayoutAlgorithmData$Builder(){ +} + +defineClass(263, 1, {}, LayoutAlgorithmData$Builder); +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData/Builder', 263); +function $resolveAlgorithm(node){ + var algorithmId, message; + algorithmId = castToString($getProperty_0(node, ($clinit_CoreOptions() , ALGORITHM))); + if ($resolveAndSetAlgorithm(algorithmId, node)) { + return; + } + if (!$hasProperty_0(node, RESOLVED_ALGORITHM) && ((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(node, INSIDE_SELF_LOOPS_ACTIVATE_0))))) { + if (algorithmId == null || $trim(algorithmId).length == 0) { + if (!$resolveAndSetAlgorithm('org.eclipse.elk.layered', node)) { + message = $append_11($append_11(new StringBuilder_1('Unable to load default layout algorithm '), 'org.eclipse.elk.layered'), ' for unconfigured node '); + printElementPath(node, message); + throw toJs(new UnsupportedConfigurationException_0(message.string)); + } + } + else { + message = $append_11($append_11(new StringBuilder_1("Layout algorithm '"), algorithmId), "' not found for "); + printElementPath(node, message); + throw toJs(new UnsupportedConfigurationException_0(message.string)); + } + } +} + +function $resolveAndSetAlgorithm(algorithmId, node){ + var algorithmData; + algorithmData = $getAlgorithmDataBySuffix(getInstance(), algorithmId); + if (algorithmData) { + $setProperty_1(node, ($clinit_CoreOptions() , RESOLVED_ALGORITHM), algorithmData); + return true; + } + else { + return false; + } +} + +function LayoutAlgorithmResolver(){ +} + +defineClass(1017, 1, {527:1}, LayoutAlgorithmResolver); +_.visit = function visit_1(element){ + instanceOf(element, 239) && !$booleanValue(castToBoolean(element.getProperty(($clinit_CoreOptions() , NO_LAYOUT_0)))) && $resolveAlgorithm(castTo(element, 33)); +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmResolver_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmResolver', 1017); +function LayoutCategoryData(builder){ + this.layouters = new LinkedList; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; +} + +defineClass(229, 1, {686:1, 229:1}, LayoutCategoryData); +_.equals_0 = function equals_170(obj){ + if (instanceOf(obj, 229)) { + return $equals_5(this.id_0, castTo(obj, 229).id_0); + } + return false; +} +; +_.getDescription = function getDescription_0(){ + return this.description; +} +; +_.getId = function getId_0(){ + return this.id_0; +} +; +_.getName = function getName_3(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_65(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_112(){ + return 'Layout Type: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutCategoryData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData', 229); +function $description_0(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $id_0(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $name_1(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function LayoutCategoryData$Builder(){ +} + +defineClass(344, 1, {}, LayoutCategoryData$Builder); +var Lorg_eclipse_elk_core_data_LayoutCategoryData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData/Builder', 344); +function $getAlgorithmData(this$static, id_0){ + return castTo($get_16(this$static.layoutAlgorithmMap, id_0), 149); +} + +function $getAlgorithmDataBySuffix(this$static, suffix){ + var d, d$iterator, data_0, entry, id_0, outerIter, suffixlength; + if (suffix == null || suffix.length == 0) { + return null; + } + data_0 = castTo($getStringValue(this$static.algorithmSuffixMap, suffix), 149); + if (!data_0) { + for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); + id_0 = d.id_0; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + !!data_0 && $putStringValue(this$static.algorithmSuffixMap, suffix, data_0); + } + return data_0; +} + +function $getCategoryData(this$static, id_0){ + return castTo($get_16(this$static.layoutCategoryMap, id_0), 229); +} + +function $getOptionData(this$static, id_0){ + var data_0; + data_0 = castTo($get_16(this$static.layoutOptionMap, id_0), 23); + return data_0?data_0:castTo($get_16(this$static.legacyLayoutOptionMap, id_0), 23); +} + +function $getOptionDataBySuffix(this$static, suffix){ + var d, d$iterator, d$iterator0, data_0, entry, id_0, id$array, id$index, id$max, legacyIds, outerIter, outerIter0, suffixlength; + if (suffix == null || suffix.length == 0) { + return null; + } + data_0 = castTo($getStringValue(this$static.optionSuffixMap, suffix), 23); + if (!data_0) { + for (d$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); d$iterator0.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); + id_0 = d.id_0; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + if (!data_0) { + for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); + legacyIds = d.legacyIds; + if (legacyIds != null) { + for (id$array = legacyIds , id$index = 0 , id$max = id$array.length; id$index < id$max; ++id$index) { + id_0 = id$array[id$index]; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + } + } + } + !!data_0 && $putStringValue(this$static.optionSuffixMap, suffix, data_0); + } + return data_0; +} + +function $registerLayoutMetaDataProviders(this$static, providers){ + var provider, provider$array, provider$index, provider$max, registry; + for (provider$array = providers , provider$index = 0 , provider$max = provider$array.length; provider$index < provider$max; ++provider$index) { + provider = provider$array[provider$index]; + registry = new LayoutMetaDataService$Registry(this$static); + provider.apply_4(registry); + $applyDependencies(registry); + } + $reset(this$static.optionSuffixMap); +} + +function LayoutMetaDataService(){ + this.layoutAlgorithmMap = new LinkedHashMap; + this.layoutOptionMap = new LinkedHashMap; + this.legacyLayoutOptionMap = new LinkedHashMap; + this.layoutCategoryMap = new LinkedHashMap; + this.algorithmSuffixMap = new HashMap; + this.optionSuffixMap = new HashMap; + register(Lorg_eclipse_elk_core_math_KVector_2_classLit, new LayoutMetaDataService$lambda$0$Type, new LayoutMetaDataService$lambda$1$Type); + register(Lorg_eclipse_elk_core_math_KVectorChain_2_classLit, new LayoutMetaDataService$lambda$2$Type, new LayoutMetaDataService$lambda$3$Type); + register(Lorg_eclipse_elk_core_math_ElkMargin_2_classLit, new LayoutMetaDataService$lambda$4$Type, new LayoutMetaDataService$lambda$5$Type); + register(Lorg_eclipse_elk_core_math_ElkPadding_2_classLit, new LayoutMetaDataService$lambda$6$Type, new LayoutMetaDataService$lambda$7$Type); + register(Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit, new LayoutMetaDataService$lambda$8$Type, new LayoutMetaDataService$lambda$9$Type); + register(Ljava_util_ArrayList_2_classLit, new LayoutMetaDataService$lambda$10$Type, new LayoutMetaDataService$lambda$11$Type); + register(Ljava_util_LinkedList_2_classLit, new LayoutMetaDataService$lambda$12$Type, new LayoutMetaDataService$lambda$13$Type); + register(Ljava_util_HashSet_2_classLit, new LayoutMetaDataService$lambda$14$Type, new LayoutMetaDataService$lambda$15$Type); + register(Ljava_util_LinkedHashSet_2_classLit, new LayoutMetaDataService$lambda$16$Type, new LayoutMetaDataService$lambda$17$Type); + register(Ljava_util_TreeSet_2_classLit, new LayoutMetaDataService$lambda$18$Type, new LayoutMetaDataService$lambda$19$Type); +} + +function getInstance(){ + if (!instance_2) { + instance_2 = new LayoutMetaDataService; + $registerLayoutMetaDataProviders(instance_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); + } + return instance_2; +} + +defineClass(867, 1, {}, LayoutMetaDataService); +var instance_2; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService', 867); +function $addDependency(this$static, sourceOption, targetOption, requiredValue){ + var dep; + dep = new LayoutMetaDataService$Registry$Triple; + dep.firstId = sourceOption; + dep.secondId = targetOption; + dep.value_0 = requiredValue; + $add_7(this$static.optionDependencies, dep); +} + +function $addOptionSupport(this$static, algorithm, option, defaultValue){ + var sup_0; + sup_0 = new LayoutMetaDataService$Registry$Triple; + sup_0.firstId = algorithm; + sup_0.secondId = option; + sup_0.value_0 = defaultValue; + $add_7(this$static.optionSupport, sup_0); +} + +function $applyDependencies(this$static){ + var algorithm, algorithm$iterator, category, categoryId, dep, dep$iterator, entry, option, outerIter, source, sup_0, sup$iterator, target; + for (algorithm$iterator = (outerIter = (new AbstractMap$2(this$static.this$01.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); algorithm$iterator.val$outerIter2.hasNext_0();) { + algorithm = (entry = castTo(algorithm$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); + categoryId = algorithm.category; + categoryId == null && (categoryId = ''); + category = $getCategoryData(this$static.this$01, categoryId); + !category && categoryId.length == 0 && (category = $retrieveBackupCategory(this$static)); + !!category && !$advanceToFind(category.layouters, algorithm, false) && $add_7(category.layouters, algorithm); + } + for (dep$iterator = $listIterator_2(this$static.optionDependencies, 0); dep$iterator.currentNode != dep$iterator.this$01.tail;) { + dep = castTo($next_10(dep$iterator), 478); + source = $getOptionData(this$static.this$01, dep.firstId); + target = $getOptionData(this$static.this$01, dep.secondId); + !!source && !!target && $add_7(source.dependencies, new Pair(target, dep.value_0)); + } + $reset_0(this$static.optionDependencies); + for (sup$iterator = $listIterator_2(this$static.optionSupport, 0); sup$iterator.currentNode != sup$iterator.this$01.tail;) { + sup_0 = castTo($next_10(sup$iterator), 478); + algorithm = $getAlgorithmData(this$static.this$01, sup_0.firstId); + option = $getOptionData(this$static.this$01, sup_0.secondId); + !!algorithm && !!option && $addKnownOption(algorithm, option, sup_0.value_0); + } + $reset_0(this$static.optionSupport); +} + +function $register(this$static, algorithmData){ + $put_11(this$static.this$01.layoutAlgorithmMap, algorithmData.id_0, algorithmData); +} + +function $register_0(this$static, categoryData){ + $put_11(this$static.this$01.layoutCategoryMap, categoryData.id_0, categoryData); +} + +function $register_1(this$static, optionData){ + var id_0, legacyId, legacyId$array, legacyId$index, legacyId$max; + id_0 = optionData.id_0; + $put_11(this$static.this$01.layoutOptionMap, id_0, optionData); + if (optionData.legacyIds != null) { + for (legacyId$array = optionData.legacyIds , legacyId$index = 0 , legacyId$max = legacyId$array.length; legacyId$index < legacyId$max; ++legacyId$index) { + legacyId = legacyId$array[legacyId$index]; + $put_11(this$static.this$01.legacyLayoutOptionMap, legacyId, optionData); + } + } +} + +function $retrieveBackupCategory(this$static){ + var otherCategory; + otherCategory = castTo($get_16(this$static.this$01.layoutCategoryMap, ''), 229); + if (!otherCategory) { + otherCategory = new LayoutCategoryData($name_1($id_0(new LayoutCategoryData$Builder, ''), 'Other')); + $put_11(this$static.this$01.layoutCategoryMap, '', otherCategory); + } + return otherCategory; +} + +function LayoutMetaDataService$Registry(this$0){ + this.this$01 = this$0; + this.optionDependencies = new LinkedList; + this.optionSupport = new LinkedList; +} + +defineClass(868, 1, {}, LayoutMetaDataService$Registry); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry', 868); +function LayoutMetaDataService$Registry$Triple(){ +} + +defineClass(478, 1, {478:1}, LayoutMetaDataService$Registry$Triple); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry$Triple_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry/Triple', 478); +function LayoutMetaDataService$lambda$0$Type(){ +} + +defineClass(869, 1, $intern_129, LayoutMetaDataService$lambda$0$Type); +_.newInstance = function newInstance_0(){ + return new KVector; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$0$Type', 869); +function LayoutMetaDataService$lambda$1$Type(){ +} + +defineClass(870, 1, $intern_130, LayoutMetaDataService$lambda$1$Type); +_.clone = function clone_1(arg0){ + return $clone_0(castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$1$Type', 870); +function LayoutMetaDataService$lambda$10$Type(){ +} + +defineClass(879, 1, $intern_129, LayoutMetaDataService$lambda$10$Type); +_.newInstance = function newInstance_1(){ + return new ArrayList; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$10$Type', 879); +function LayoutMetaDataService$lambda$11$Type(){ +} + +defineClass(880, 1, $intern_130, LayoutMetaDataService$lambda$11$Type); +_.clone = function clone_2(arg0){ + return new ArrayList_1(castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$11$Type', 880); +function LayoutMetaDataService$lambda$12$Type(){ +} + +defineClass(881, 1, $intern_129, LayoutMetaDataService$lambda$12$Type); +_.newInstance = function newInstance_2(){ + return new LinkedList; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$12$Type', 881); +function LayoutMetaDataService$lambda$13$Type(){ +} + +defineClass(882, 1, $intern_130, LayoutMetaDataService$lambda$13$Type); +_.clone = function clone_3(arg0){ + return newLinkedList(castTo(arg0, 68)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$13$Type', 882); +function LayoutMetaDataService$lambda$14$Type(){ +} + +defineClass(883, 1, $intern_129, LayoutMetaDataService$lambda$14$Type); +_.newInstance = function newInstance_3(){ + return new HashSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$14$Type', 883); +function LayoutMetaDataService$lambda$15$Type(){ +} + +defineClass(884, 1, $intern_130, LayoutMetaDataService$lambda$15$Type); +_.clone = function clone_4(arg0){ + return newHashSet(castTo(arg0, 53)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$15$Type', 884); +function LayoutMetaDataService$lambda$16$Type(){ +} + +defineClass(885, 1, $intern_129, LayoutMetaDataService$lambda$16$Type); +_.newInstance = function newInstance_4(){ + return new LinkedHashSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$16$Type', 885); +function LayoutMetaDataService$lambda$17$Type(){ +} + +defineClass(886, 1, $intern_130, LayoutMetaDataService$lambda$17$Type); +_.clone = function clone_5(arg0){ + return newLinkedHashSet(castTo(arg0, 53)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$17$Type', 886); +function LayoutMetaDataService$lambda$18$Type(){ +} + +defineClass(887, 1, $intern_129, LayoutMetaDataService$lambda$18$Type); +_.newInstance = function newInstance_5(){ + return new TreeSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$18$Type', 887); +function LayoutMetaDataService$lambda$19$Type(){ +} + +defineClass(888, 1, $intern_130, LayoutMetaDataService$lambda$19$Type); +_.clone = function clone_6(arg0){ + return newTreeSet(castTo(arg0, 208)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$19$Type', 888); +function LayoutMetaDataService$lambda$2$Type(){ +} + +defineClass(871, 1, $intern_129, LayoutMetaDataService$lambda$2$Type); +_.newInstance = function newInstance_6(){ + return new KVectorChain; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$2$Type', 871); +function LayoutMetaDataService$lambda$3$Type(){ +} + +defineClass(872, 1, $intern_130, LayoutMetaDataService$lambda$3$Type); +_.clone = function clone_7(arg0){ + return new KVectorChain_0(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$3$Type', 872); +function LayoutMetaDataService$lambda$4$Type(){ +} + +defineClass(873, 1, $intern_129, LayoutMetaDataService$lambda$4$Type); +_.newInstance = function newInstance_7(){ + return new ElkMargin; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$4$Type', 873); +function LayoutMetaDataService$lambda$5$Type(){ +} + +defineClass(874, 1, $intern_130, LayoutMetaDataService$lambda$5$Type); +_.clone = function clone_8(arg0){ + return new ElkMargin_2(castTo(arg0, 142)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$5$Type', 874); +function LayoutMetaDataService$lambda$6$Type(){ +} + +defineClass(875, 1, $intern_129, LayoutMetaDataService$lambda$6$Type); +_.newInstance = function newInstance_8(){ + return new ElkPadding; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$6$Type', 875); +function LayoutMetaDataService$lambda$7$Type(){ +} + +defineClass(876, 1, $intern_130, LayoutMetaDataService$lambda$7$Type); +_.clone = function clone_9(arg0){ + return new ElkPadding_1(castTo(arg0, 116)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$7$Type', 876); +function LayoutMetaDataService$lambda$8$Type(){ +} + +defineClass(877, 1, $intern_129, LayoutMetaDataService$lambda$8$Type); +_.newInstance = function newInstance_9(){ + return new IndividualSpacings; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$8$Type', 877); +function LayoutMetaDataService$lambda$9$Type(){ +} + +defineClass(878, 1, $intern_130, LayoutMetaDataService$lambda$9$Type); +_.clone = function clone_10(arg0){ + return new IndividualSpacings_0(castTo(arg0, 373)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$9$Type', 878); +var Lorg_eclipse_elk_graph_properties_IProperty_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IProperty'); +function $checkEnumClass(this$static){ + if (!this$static.clazz || (this$static.clazz.modifiers & 8) == 0) { + throw toJs(new IllegalStateException_0('Enumeration class expected for layout option ' + this$static.id_0)); + } +} + +function $compareTo_19(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $createDataInstance(this$static){ + var instance; + if (!this$static.clazz) { + throw toJs(new IllegalStateException_0('IDataType class expected for layout option ' + this$static.id_0)); + } + instance = newInstance_10(this$static.clazz); + if (instance == null) { + throw toJs(new IllegalStateException_0("Couldn't create new instance of property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return castTo(instance, 414); +} + +function $enumForString(this$static, leString){ + var constants, index_0, value_0; + try { + value_0 = valueOf_0(this$static.clazz, leString); + return value_0; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 32)) { + try { + index_0 = __parseAndValidateInt(leString, $intern_42, $intern_0); + constants = $getEnumConstants(this$static.clazz); + if (index_0 >= 0 && index_0 < constants.length) { + return constants[index_0]; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 127)) + throw toJs($e0); + } + return null; + } + else + throw toJs($e1); + } +} + +function $enumSetForStringArray(this$static, leClazz, leString){ + var all, component, component$array, component$index, component$max, components, o, set_0; + set_0 = (all = castTo(leClazz.enumConstantsFunc && leClazz.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + components = $split_0(leString, '[\\[\\]\\s,]+'); + for (component$array = components , component$index = 0 , component$max = component$array.length; component$index < component$max; ++component$index) { + component = component$array[component$index]; + if ($trim(component).length == 0) { + continue; + } + o = $enumForString(this$static, component); + if (o == null) { + return null; + } + else { + $add_5(set_0, castTo(o, 22)); + } + } + return set_0; +} + +function $parseValue(this$static, valueString){ + var value_0; + if (valueString == null || $equals_5(valueString, 'null')) { + return null; + } + if (valueString.length == 0 && this$static.type_0 != ($clinit_LayoutOptionData$Type() , ENUMSET)) { + return null; + } + switch (this$static.type_0.ordinal) { + case 1: + return $equalsIgnoreCase(valueString, 'true')?($clinit_Boolean() , TRUE_0):$equalsIgnoreCase(valueString, 'false')?($clinit_Boolean() , FALSE_0):null; + case 2: + try { + return valueOf_4(__parseAndValidateInt(valueString, $intern_42, $intern_0)); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + return null; + } + else + throw toJs($e0); + } + + case 4: + try { + return __parseAndValidateDouble(valueString); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + return null; + } + else + throw toJs($e1); + } + + case 3: + return valueString; + case 5: + $checkEnumClass(this$static); + return $enumForString(this$static, valueString); + case 6: + $checkEnumClass(this$static); + return $enumSetForStringArray(this$static, this$static.clazz, valueString); + case 7: + try { + value_0 = $createDataInstance(this$static); + value_0.parse_0(valueString); + return value_0; + } + catch ($e2) { + $e2 = toJava($e2); + if (instanceOf($e2, 32)) { + return null; + } + else + throw toJs($e2); + } + + default:throw toJs(new IllegalStateException_0('Invalid type set for this layout option.')); + } +} + +function LayoutOptionData(builder){ + var all; + this.dependencies = new LinkedList; + this.id_0 = builder.id_0; + this.group_0 = builder.group_0; + this.name_0 = builder.name_0; + this.description = builder.description; + this.defaultValue = builder.defaultValue; + this.type_0 = builder.type_0; + this.clazz = builder.clazz; + !builder.targets?(this.targets = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.targets = builder.targets); + this.legacyIds = builder.legacyIds; +} + +defineClass(23, 1, {35:1, 686:1, 23:1, 146:1}, LayoutOptionData); +_.compareTo_0 = function compareTo_20(other){ + return $compareTo_19(this, castTo(other, 146)); +} +; +_.equals_0 = function equals_171(obj){ + return instanceOf(obj, 23)?$equals_5(this.id_0, castTo(obj, 23).id_0):instanceOf(obj, 146) && $equals_5(this.id_0, castTo(obj, 146).getId()); +} +; +_.getDefault = function getDefault(){ + var clone; + if (instanceOf(this.defaultValue, 4)) { + clone = clone_11(this.defaultValue); + if (clone == null) { + throw toJs(new IllegalStateException_0("Couldn't clone property '" + this.id_0 + "'. " + "Make sure it's type is registered with the " + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return clone; + } + else { + return this.defaultValue; + } +} +; +_.getDescription = function getDescription_1(){ + return this.description; +} +; +_.getId = function getId_1(){ + return this.id_0; +} +; +_.getName = function getName_4(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_66(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_113(){ + return 'Layout Option: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutOptionData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData', 23); +function $defaultValue(this$static, adefaultValue){ + this$static.defaultValue = adefaultValue; + return this$static; +} + +function $description_1(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $group(this$static, agroup){ + this$static.group_0 = agroup; + return this$static; +} + +function $id_1(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $legacyIds(this$static, alegacyIds){ + this$static.legacyIds = alegacyIds; + return this$static; +} + +function $name_2(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function $optionClass(this$static, aclazz){ + this$static.clazz = aclazz; + return this$static; +} + +function $targets(this$static, atargets){ + this$static.targets = atargets; + return this$static; +} + +function $type(this$static, atype){ + this$static.type_0 = atype; + return this$static; +} + +function LayoutOptionData$Builder(){ +} + +defineClass(24, 1, {}, LayoutOptionData$Builder); +var Lorg_eclipse_elk_core_data_LayoutOptionData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData/Builder', 24); +function $clinit_LayoutOptionData$Target(){ + $clinit_LayoutOptionData$Target = emptyMethod; + PARENTS = new LayoutOptionData$Target('PARENTS', 0); + NODES = new LayoutOptionData$Target('NODES', 1); + EDGES = new LayoutOptionData$Target('EDGES', 2); + PORTS = new LayoutOptionData$Target('PORTS', 3); + LABELS = new LayoutOptionData$Target('LABELS', 4); +} + +function LayoutOptionData$Target(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_92(name_0){ + $clinit_LayoutOptionData$Target(); + return valueOf(($clinit_LayoutOptionData$Target$Map() , $MAP_80), name_0); +} + +function values_98(){ + $clinit_LayoutOptionData$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]); +} + +defineClass(175, 22, {3:1, 35:1, 22:1, 175:1}, LayoutOptionData$Target); +var EDGES, LABELS, NODES, PARENTS, PORTS; +var Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Target', 175, Ljava_lang_Enum_2_classLit, values_98, valueOf_92); +function $clinit_LayoutOptionData$Target$Map(){ + $clinit_LayoutOptionData$Target$Map = emptyMethod; + $MAP_80 = createValueOfMap(($clinit_LayoutOptionData$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]))); +} + +var $MAP_80; +function $clinit_LayoutOptionData$Type(){ + $clinit_LayoutOptionData$Type = emptyMethod; + UNDEFINED_1 = new LayoutOptionData$Type('UNDEFINED', 0); + BOOLEAN = new LayoutOptionData$Type('BOOLEAN', 1); + INT = new LayoutOptionData$Type('INT', 2); + STRING = new LayoutOptionData$Type('STRING', 3); + DOUBLE = new LayoutOptionData$Type('DOUBLE', 4); + ENUM = new LayoutOptionData$Type('ENUM', 5); + ENUMSET = new LayoutOptionData$Type('ENUMSET', 6); + OBJECT = new LayoutOptionData$Type('OBJECT', 7); +} + +function LayoutOptionData$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_93(name_0){ + $clinit_LayoutOptionData$Type(); + return valueOf(($clinit_LayoutOptionData$Type$Map() , $MAP_81), name_0); +} + +function values_99(){ + $clinit_LayoutOptionData$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]); +} + +defineClass(277, 22, {3:1, 35:1, 22:1, 277:1}, LayoutOptionData$Type); +var BOOLEAN, DOUBLE, ENUM, ENUMSET, INT, OBJECT, STRING, UNDEFINED_1; +var Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Type', 277, Ljava_lang_Enum_2_classLit, values_99, valueOf_93); +function $clinit_LayoutOptionData$Type$Map(){ + $clinit_LayoutOptionData$Type$Map = emptyMethod; + $MAP_81 = createValueOfMap(($clinit_LayoutOptionData$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]))); +} + +var $MAP_81; +function $clinit_LabelManagementOptions(){ + $clinit_LabelManagementOptions = emptyMethod; + LABEL_MANAGER = new Property('org.eclipse.elk.labels.labelManager'); +} + +var LABEL_MANAGER; +function $clinit_ElkMath(){ + $clinit_ElkMath = emptyMethod; + FACT_TABLE = stampJavaTypeInfo(getClassLiteralForArray(J_classLit, 1), $intern_62, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, {l:3506176, m:794077, h:1}, {l:884736, m:916411, h:20}, {l:3342336, m:3912489, h:363}, {l:589824, m:3034138, h:6914}, {l:3407872, m:1962506, h:138294}]); + $wnd.Math.pow(2, -65); +} + +function approximateBezierSegment(controlPoints){ + $clinit_ElkMath(); + var i, result, t; + result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, 2, 0, 1); + t = 0; + for (i = 0; i < 2; i++) { + t += 0.5; + result[i] = getPointOnBezierSegment(t, controlPoints); + } + return result; +} + +function binomiald(n, k){ + if (n < 0 || k < 0) { + throw toJs(new IllegalArgumentException_0('k and n must be positive')); + } + else if (k > n) { + throw toJs(new IllegalArgumentException_0('k must be smaller than n')); + } + else + return k == 0 || k == n?1:n == 0?0:factd(n) / (factd(k) * factd(n - k)); +} + +function clipVector(v, width_0, height){ + $clinit_ElkMath(); + var absx, absy, hh, wh, xscale, yscale; + wh = width_0 / 2; + hh = height / 2; + absx = $wnd.Math.abs(v.x_0); + absy = $wnd.Math.abs(v.y_0); + xscale = 1; + yscale = 1; + absx > wh && (xscale = wh / absx); + absy > hh && (yscale = hh / absy); + $scale(v, $wnd.Math.min(xscale, yscale)); + return v; +} + +function contains_49(rect, p){ + var maxX, maxY, minX, minY; + minX = rect.x_0; + maxX = rect.x_0 + rect.width_0; + minY = rect.y_0; + maxY = rect.y_0 + rect.height; + return p.x_0 > minX && p.x_0 < maxX && p.y_0 > minY && p.y_0 < maxY; +} + +function contains_50(rect, p1, p2){ + $clinit_ElkMath(); + return contains_49(rect, p1) && contains_49(rect, p2); +} + +function contains_51(rect, path){ + $clinit_ElkMath(); + var first, p1, p2, pathIt; + if (path.size_0 < 2) { + return false; + } + pathIt = $listIterator_2(path, 0); + first = castTo($next_10(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_10(pathIt), 8); + if (!(contains_49(rect, p1) && contains_49(rect, p2))) { + return false; + } + p1 = p2; + } + if (!(contains_49(rect, p1) && contains_49(rect, first))) { + return false; + } + return true; +} + +function distance_0(a1, a2, b1, b2, v){ + $clinit_ElkMath(); + return $wnd.Math.min(traceRays(a1, a2, b1, b2, v), traceRays(b1, b2, a1, a2, $negate(new KVector_1(v.x_0, v.y_0)))); +} + +function factd(x_0){ + if (x_0 < 0) { + throw toJs(new IllegalArgumentException_0('The input must be positive')); + } + else + return x_0 < FACT_TABLE.length?toDouble_0(FACT_TABLE[x_0]):$wnd.Math.sqrt($intern_123 * x_0) * (powf(x_0, x_0) / powd(2.718281828459045, x_0)); +} + +function getPointOnBezierSegment(t, controlPoints){ + var factor, j, n, p, px, py; + n = controlPoints.length - 1; + px = 0; + py = 0; + for (j = 0; j <= n; j++) { + p = controlPoints[j]; + factor = binomiald(n, j) * powd(1 - t, n - j) * powd(t, j); + px += p.x_0 * factor; + py += p.y_0 * factor; + } + return new KVector_1(px, py); +} + +function intersects_0(rect, p1, p2){ + $clinit_ElkMath(); + if (contains_49(rect, p1) && contains_49(rect, p2)) { + return false; + } + return intersects_2(new KVector_1(rect.x_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0), p1, p2); +} + +function intersects_1(rect, path){ + $clinit_ElkMath(); + var first, p1, p2, pathIt; + if (path.size_0 < 2) { + return false; + } + pathIt = $listIterator_2(path, 0); + first = castTo($next_10(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_10(pathIt), 8); + if (intersects_0(rect, p1, p2)) { + return true; + } + p1 = p2; + } + if (intersects_0(rect, p1, first)) { + return true; + } + return false; +} + +function intersects_2(l11, l12, l21, l22){ + var d, intersects, s, t, u0, u1, v0, v1, x00, x01, x10, x11, y00, y01, y10, y11; + u0 = l11; + v0 = $sub_0(new KVector_1(l12.x_0, l12.y_0), l11); + u1 = l21; + v1 = $sub_0(new KVector_1(l22.x_0, l22.y_0), l21); + x00 = u0.x_0; + y00 = u0.y_0; + x10 = u1.x_0; + y10 = u1.y_0; + x01 = v0.x_0; + y01 = v0.y_0; + x11 = v1.x_0; + y11 = v1.y_0; + d = x11 * y01 - x01 * y11; + $clinit_DoubleMath(); + checkNonNegative($intern_117); + if ($wnd.Math.abs(0 - d) <= $intern_117 || 0 == d || isNaN(0) && isNaN(d)) { + return false; + } + s = 1 / d * ((x00 - x10) * y01 - (y00 - y10) * x01); + t = 1 / d * -(-(x00 - x10) * y11 + (y00 - y10) * x11); + intersects = (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - s) <= $intern_117 || 0 == s || isNaN(0) && isNaN(s)?0:0 < s?-1:0 > s?1:compare_0(isNaN(0), isNaN(s))) < 0 && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(s - 1) <= $intern_117 || s == 1 || isNaN(s) && isNaN(1)?0:s < 1?-1:s > 1?1:compare_0(isNaN(s), isNaN(1))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - t) <= $intern_117 || 0 == t || isNaN(0) && isNaN(t)?0:0 < t?-1:0 > t?1:compare_0(isNaN(0), isNaN(t))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(t - 1) <= $intern_117 || t == 1 || isNaN(t) && isNaN(1)?0:t < 1?-1:t > 1?1:compare_0(isNaN(t), isNaN(1))) < 0)); + return intersects; +} + +function intersects2(p, r, q, s){ + var center, d1, d2, l, pq, pqXr, rXs, t, u; + pq = $sub_0(new KVector_1(q.x_0, q.y_0), p); + pqXr = pq.x_0 * r.y_0 - pq.y_0 * r.x_0; + rXs = r.x_0 * s.y_0 - r.y_0 * s.x_0; + t = (pq.x_0 * s.y_0 - pq.y_0 * s.x_0) / rXs; + u = pqXr / rXs; + if (rXs == 0) { + if (pqXr == 0) { + center = $add_19(new KVector_1(q.x_0, q.y_0), $scale(new KVector_1(s.x_0, s.y_0), 0.5)); + d1 = $distance_0(p, center); + d2 = $distance_0($add_19(new KVector_1(p.x_0, p.y_0), r), center); + l = $wnd.Math.sqrt(s.x_0 * s.x_0 + s.y_0 * s.y_0) * 0.5; + if (d1 < d2 && d1 <= l) { + return new KVector_1(p.x_0, p.y_0); + } + if (d2 <= l) { + return $add_19(new KVector_1(p.x_0, p.y_0), r); + } + return null; + } + else { + return null; + } + } + else { + return t >= 0 && t <= 1 && u >= 0 && u <= 1?$add_19(new KVector_1(p.x_0, p.y_0), $scale(new KVector_1(r.x_0, r.y_0), t)):null; + } +} + +function maxd(values){ + $clinit_ElkMath(); + var i, max_0; + max_0 = -1.7976931348623157E308; + for (i = 0; i < values.length; i++) { + values[i] > max_0 && (max_0 = values[i]); + } + return max_0; +} + +function powd(a, b){ + var base, exp_0, result; + result = 1; + base = a; + exp_0 = b >= 0?b:-b; + while (exp_0 > 0) { + if (exp_0 % 2 == 0) { + base *= base; + exp_0 = exp_0 / 2 | 0; + } + else { + result *= base; + exp_0 -= 1; + } + } + return b < 0?1 / result:result; +} + +function powf(a, b){ + var base, exp_0, result; + result = 1; + base = a; + exp_0 = b >= 0?b:-b; + while (exp_0 > 0) { + if (exp_0 % 2 == 0) { + base *= base; + exp_0 = exp_0 / 2 | 0; + } + else { + result *= base; + exp_0 -= 1; + } + } + return b < 0?1 / result:result; +} + +function shortestDistance_0(r1, r2){ + $clinit_ElkMath(); + var bottomDist, horzDist, leftDist, rightDist, topDist, vertDist; + rightDist = r2.x_0 - (r1.x_0 + r1.width_0); + leftDist = r1.x_0 - (r2.x_0 + r2.width_0); + topDist = r1.y_0 - (r2.y_0 + r2.height); + bottomDist = r2.y_0 - (r1.y_0 + r1.height); + horzDist = $wnd.Math.max(leftDist, rightDist); + vertDist = $wnd.Math.max(topDist, bottomDist); + $clinit_DoubleMath(); + checkNonNegative($intern_117); + if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) >= 0 ^ (null , checkNonNegative($intern_117) , ($wnd.Math.abs(vertDist) <= $intern_117 || vertDist == 0 || isNaN(vertDist) && isNaN(0)?0:vertDist < 0?-1:vertDist > 0?1:compare_0(isNaN(vertDist), isNaN(0))) >= 0)) { + return $wnd.Math.max(vertDist, horzDist); + } + checkNonNegative($intern_117); + if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) > 0) { + return $wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); + } + return -$wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); +} + +function traceRays(a1, a2, b1, b2, v){ + var edgeCase, endpointHit, intersection, result; + result = $intern_59; + endpointHit = false; + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), $add_19(new KVector_1(b1.x_0, b1.y_0), v), $sub_0(new KVector_1(b2.x_0, b2.y_0), b1)); + edgeCase = !!intersection && !($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131 || $wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131); + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b1, v); + !!intersection && (($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase?(result = $wnd.Math.min(result, $length($sub_0(intersection, b1)))):(endpointHit = true)); + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b2, v); + !!intersection && (endpointHit || ($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase) && (result = $wnd.Math.min(result, $length($sub_0(intersection, b2)))); + return result; +} + +var FACT_TABLE; +function $getBottomLeft(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0 + this$static.height); +} + +function $getBottomRight(this$static){ + return new KVector_1(this$static.x_0 + this$static.width_0, this$static.y_0 + this$static.height); +} + +function $getCenter(this$static){ + return new KVector_1(this$static.x_0 + this$static.width_0 / 2, this$static.y_0 + this$static.height / 2); +} + +function $getPosition(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $getTopLeft(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $setRect(this$static, nx, ny, nw, nh){ + this$static.x_0 = nx; + this$static.y_0 = ny; + this$static.width_0 = nw; + this$static.height = nh; +} + +function $union(this$static, other){ + var t, x1, x2, y1, y2; + x1 = $wnd.Math.min(this$static.x_0, other.x_0); + y1 = $wnd.Math.min(this$static.y_0, other.y_0); + x2 = $wnd.Math.max(this$static.x_0 + this$static.width_0, other.x_0 + other.width_0); + y2 = $wnd.Math.max(this$static.y_0 + this$static.height, other.y_0 + other.height); + if (x2 < x1) { + t = x1; + x1 = x2; + x2 = t; + } + if (y2 < y1) { + t = y1; + y1 = y2; + y2 = t; + } + $setRect(this$static, x1, y1, x2 - x1, y2 - y1); +} + +function ElkRectangle(){ + ElkRectangle_0.call(this, 0, 0, 0, 0); +} + +function ElkRectangle_0(x_0, y_0, w, h){ + this.x_0 = x_0; + this.y_0 = y_0; + this.width_0 = w; + this.height = h; +} + +function ElkRectangle_1(rect){ + this.x_0 = rect.x_0; + this.y_0 = rect.y_0; + this.width_0 = rect.width_0; + this.height = rect.height; +} + +defineClass(110, 1, {110:1}, ElkRectangle, ElkRectangle_0, ElkRectangle_1); +_.equals_0 = function equals_172(obj){ + var other; + if (obj == null || !instanceOf(obj, 110)) { + return false; + } + other = castTo(obj, 110); + return equals_57(this.x_0, other.x_0) && equals_57(this.y_0, other.y_0) && equals_57(this.width_0, other.width_0) && equals_57(this.height, other.height); +} +; +_.hashCode_1 = function hashCode_67(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0, this.width_0, this.height])); +} +; +_.toString_0 = function toString_114(){ + return 'Rect[x=' + this.x_0 + ',y=' + this.y_0 + ',w=' + this.width_0 + ',h=' + this.height + ']'; +} +; +_.height = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_core_math_ElkRectangle_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkRectangle', 110); +function $add_18(this$static, dx, dy){ + this$static.x_0 += dx; + this$static.y_0 += dy; + return this$static; +} + +function $add_19(this$static, v){ + this$static.x_0 += v.x_0; + this$static.y_0 += v.y_0; + return this$static; +} + +function $bound(this$static, lowx, lowy, highx, highy){ + if (highx < lowx || highy < lowy) { + throw toJs(new IllegalArgumentException_0('The highx must be bigger then lowx and the highy must be bigger then lowy')); + } + this$static.x_0 < lowx?(this$static.x_0 = lowx):this$static.x_0 > highx && (this$static.x_0 = highx); + this$static.y_0 < lowy?(this$static.y_0 = lowy):this$static.y_0 > highy && (this$static.y_0 = highy); + return this$static; +} + +function $clone_0(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $distance_0(this$static, v2){ + var dx, dy; + dx = this$static.x_0 - v2.x_0; + dy = this$static.y_0 - v2.y_0; + return $wnd.Math.sqrt(dx * dx + dy * dy); +} + +function $equals_9(this$static, obj){ + var other; + if (instanceOf(obj, 8)) { + other = castTo(obj, 8); + return this$static.x_0 == other.x_0 && this$static.y_0 == other.y_0; + } + else { + return false; + } +} + +function $length(this$static){ + return $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); +} + +function $negate(this$static){ + this$static.x_0 = -this$static.x_0; + this$static.y_0 = -this$static.y_0; + return this$static; +} + +function $normalize_0(this$static){ + var length_0; + length_0 = $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); + if (length_0 > 0) { + this$static.x_0 /= length_0; + this$static.y_0 /= length_0; + } + return this$static; +} + +function $reset_5(this$static){ + this$static.x_0 = 0; + this$static.y_0 = 0; + return this$static; +} + +function $scale(this$static, scale){ + this$static.x_0 *= scale; + this$static.y_0 *= scale; + return this$static; +} + +function $scale_0(this$static, scalex, scaley){ + this$static.x_0 *= scalex; + this$static.y_0 *= scaley; + return this$static; +} + +function $scaleToLength(this$static, length_0){ + $normalize_0(this$static); + this$static.x_0 *= length_0; + this$static.y_0 *= length_0; + return this$static; +} + +function $set_8(this$static, newX, newY){ + this$static.x_0 = newX; + this$static.y_0 = newY; + return this$static; +} + +function $set_9(this$static, other){ + this$static.x_0 = other.x_0; + this$static.y_0 = other.y_0; + return this$static; +} + +function $sub(this$static, dx, dy){ + this$static.x_0 -= dx; + this$static.y_0 -= dy; + return this$static; +} + +function $sub_0(this$static, v){ + this$static.x_0 -= v.x_0; + this$static.y_0 -= v.y_0; + return this$static; +} + +function KVector(){ + this.x_0 = 0; + this.y_0 = 0; +} + +function KVector_0(angle){ + this.x_0 = $wnd.Math.cos(angle); + this.y_0 = $wnd.Math.sin(angle); +} + +function KVector_1(thex, they){ + this.x_0 = thex; + this.y_0 = they; +} + +function KVector_2(v){ + this.x_0 = v.x_0; + this.y_0 = v.y_0; +} + +function isdelim_0(c, delims){ + var i; + for (i = 0; i < delims.length; i++) { + if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { + return true; + } + } + return false; +} + +function sum_0(vs){ + var sum, v, v$array, v$index, v$max; + sum = new KVector; + for (v$array = vs , v$index = 0 , v$max = v$array.length; v$index < v$max; ++v$index) { + v = v$array[v$index]; + sum.x_0 += v.x_0; + sum.y_0 += v.y_0; + } + return sum; +} + +defineClass(8, 1, {3:1, 4:1, 8:1, 414:1}, KVector, KVector_0, KVector_1, KVector_2); +_.equals_0 = function equals_173(obj){ + return $equals_9(this, obj); +} +; +_.hashCode_1 = function hashCode_68(){ + return $hashCode_0(this.x_0) + reverse_1($hashCode_0(this.y_0)); +} +; +_.parse_0 = function parse_1(string){ + var end, exception, start_0, tokens; + start_0 = 0; + while (start_0 < string.length && isdelim_0((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { + ++start_0; + } + end = string.length; + while (end > 0 && isdelim_0((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { + --end; + } + if (start_0 >= end) { + throw toJs(new IllegalArgumentException_0('The given string does not contain any numbers.')); + } + tokens = $split_0(string.substr(start_0, end - start_0), ',|;|\r|\n'); + if (tokens.length != 2) { + throw toJs(new IllegalArgumentException_0('Exactly two numbers are expected, ' + tokens.length + ' were found.')); + } + try { + this.x_0 = __parseAndValidateDouble($trim(tokens[0])); + this.y_0 = __parseAndValidateDouble($trim(tokens[1])); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_115(){ + return '(' + this.x_0 + ',' + this.y_0 + ')'; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_core_math_KVector_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVector', 8); +function $addAll_7(this$static, vectors){ + var vector, vector$array, vector$index, vector$max; + for (vector$array = vectors , vector$index = 0 , vector$max = vector$array.length; vector$index < vector$max; ++vector$index) { + vector = vector$array[vector$index]; + $addNode_0(this$static, vector, this$static.tail.prev, this$static.tail); + } +} + +function $addAllAsCopies(this$static, index_0, chain){ + var copies, v, v$iterator; + copies = new LinkedList; + for (v$iterator = $listIterator_2(chain, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(v$iterator), 8); + $add_7(copies, new KVector_2(v)); + } + $addAll_0(this$static, index_0, copies); +} + +function $offset_1(this$static, dx, dy){ + var vector, vector$iterator; + for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_10(vector$iterator), 8); + vector.x_0 += dx; + vector.y_0 += dy; + } + return this$static; +} + +function $offset_2(this$static, offset){ + var vector, vector$iterator; + for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_10(vector$iterator), 8); + $add_19(vector, offset); + } + return this$static; +} + +function $toArray_8(this$static){ + var i, iter, result; + i = 0; + result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, this$static.size_0, 0, 1); + iter = $listIterator_2(this$static, 0); + while (iter.currentNode != iter.this$01.tail) { + result[i++] = castTo($next_10(iter), 8); + } + return result; +} + +function KVectorChain(){ + LinkedList.call(this); +} + +function KVectorChain_0(collection){ + LinkedList_0.call(this, collection); +} + +function KVectorChain_1(vectors){ + LinkedList.call(this); + $addAll_7(this, vectors); +} + +function reverse_3(chain){ + var result, vector, vector$iterator; + result = new KVectorChain; + for (vector$iterator = $listIterator_2(chain, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_10(vector$iterator), 8); + $add_0(result, 0, new KVector_2(vector)); + } + return result; +} + +defineClass(74, 68, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1, 74:1, 414:1}, KVectorChain, KVectorChain_0, KVectorChain_1); +_.toArray = function toArray_25(){ + return $toArray_8(this); +} +; +_.parse_0 = function parse_2(string){ + var exception, i, tokens, x_0, xy, y_0; + tokens = $split_0(string, ',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n'); + $reset_0(this); + try { + i = 0; + xy = 0; + x_0 = 0; + y_0 = 0; + while (i < tokens.length) { + if (tokens[i] != null && $trim(tokens[i]).length > 0) { + xy % 2 == 0?(x_0 = __parseAndValidateDouble(tokens[i])):(y_0 = __parseAndValidateDouble(tokens[i])); + xy > 0 && xy % 2 != 0 && $add_7(this, new KVector_1(x_0, y_0)); + ++xy; + } + ++i; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string does not match the expected format for vectors.' + exception)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_116(){ + var builder, iter, vector; + builder = new StringBuilder_1('('); + iter = $listIterator_2(this, 0); + while (iter.currentNode != iter.this$01.tail) { + vector = castTo($next_10(iter), 8); + $append_11(builder, vector.x_0 + ',' + vector.y_0); + iter.currentNode != iter.this$01.tail && (builder.string += '; ' , builder); + } + return (builder.string += ')' , builder).string; +} +; +var Lorg_eclipse_elk_core_math_KVectorChain_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVectorChain', 74); +function $clinit_Alignment(){ + $clinit_Alignment = emptyMethod; + AUTOMATIC = new Alignment('AUTOMATIC', 0); + LEFT_5 = new Alignment('LEFT', 1); + RIGHT_5 = new Alignment('RIGHT', 2); + TOP_2 = new Alignment('TOP', 3); + BOTTOM_1 = new Alignment('BOTTOM', 4); + CENTER_4 = new Alignment('CENTER', 5); +} + +function Alignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_94(name_0){ + $clinit_Alignment(); + return valueOf(($clinit_Alignment$Map() , $MAP_82), name_0); +} + +function values_100(){ + $clinit_Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]); +} + +defineClass(248, 22, {3:1, 35:1, 22:1, 248:1}, Alignment); +var AUTOMATIC, BOTTOM_1, CENTER_4, LEFT_5, RIGHT_5, TOP_2; +var Lorg_eclipse_elk_core_options_Alignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Alignment', 248, Ljava_lang_Enum_2_classLit, values_100, valueOf_94); +function $clinit_Alignment$Map(){ + $clinit_Alignment$Map = emptyMethod; + $MAP_82 = createValueOfMap(($clinit_Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]))); +} + +var $MAP_82; +function $clinit_BoxLayouterOptions(){ + $clinit_BoxLayouterOptions = emptyMethod; + PADDING_DEFAULT_5 = new ElkPadding_0(15); + PADDING_5 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_5); + SPACING_NODE_NODE_5 = new Property_2(SPACING_NODE_NODE_6, 15); + PRIORITY_2 = new Property_2(PRIORITY_3, valueOf_4(0)); + EXPAND_NODES_0 = EXPAND_NODES_1; + NODE_SIZE_CONSTRAINTS_5 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_OPTIONS_5 = NODE_SIZE_OPTIONS_6; + ASPECT_RATIO_4 = new Property_2(ASPECT_RATIO_5, $intern_132); + INTERACTIVE_6 = INTERACTIVE_7; + NODE_SIZE_MINIMUM_4 = NODE_SIZE_MINIMUM_5; + BOX_PACKING_MODE = BOX_PACKING_MODE_0; + CONTENT_ALIGNMENT_1 = CONTENT_ALIGNMENT_2; +} + +function $apply_24(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.box'), 'ELK Box'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'), new BoxLayouterOptions$BoxFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.padding', PADDING_DEFAULT_5); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.priority', valueOf_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_5)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_5)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.aspectRatio', $intern_132); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_6)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_4)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.box.packingMode', $getDefault(BOX_PACKING_MODE)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_1)); +} + +function BoxLayouterOptions(){ + $clinit_BoxLayouterOptions(); +} + +defineClass(979, 1, $intern_90, BoxLayouterOptions); +_.apply_4 = function apply_167(registry){ + $apply_24(registry); +} +; +var ASPECT_RATIO_4, BOX_PACKING_MODE, CONTENT_ALIGNMENT_1, EXPAND_NODES_0, INTERACTIVE_6, NODE_SIZE_CONSTRAINTS_5, NODE_SIZE_MINIMUM_4, NODE_SIZE_OPTIONS_5, PADDING_5, PADDING_DEFAULT_5, PRIORITY_2, SPACING_NODE_NODE_5; +var Lorg_eclipse_elk_core_options_BoxLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions', 979); +function BoxLayouterOptions$BoxFactory(){ +} + +defineClass(980, 1, {}, BoxLayouterOptions$BoxFactory); +_.create_0 = function create_37(){ + var provider; + return provider = new BoxLayoutProvider , provider; +} +; +_.destroy = function destroy_8(obj){ +} +; +var Lorg_eclipse_elk_core_options_BoxLayouterOptions$BoxFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions/BoxFactory', 980); +function $clinit_ContentAlignment(){ + $clinit_ContentAlignment = emptyMethod; + V_TOP = new ContentAlignment('V_TOP', 0); + V_CENTER = new ContentAlignment('V_CENTER', 1); + V_BOTTOM = new ContentAlignment('V_BOTTOM', 2); + H_LEFT = new ContentAlignment('H_LEFT', 3); + H_CENTER = new ContentAlignment('H_CENTER', 4); + H_RIGHT = new ContentAlignment('H_RIGHT', 5); +} + +function ContentAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_95(name_0){ + $clinit_ContentAlignment(); + return valueOf(($clinit_ContentAlignment$Map() , $MAP_83), name_0); +} + +function values_101(){ + $clinit_ContentAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]); +} + +defineClass(291, 22, {3:1, 35:1, 22:1, 291:1}, ContentAlignment); +var H_CENTER, H_LEFT, H_RIGHT, V_BOTTOM, V_CENTER, V_TOP; +var Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'ContentAlignment', 291, Ljava_lang_Enum_2_classLit, values_101, valueOf_95); +function $clinit_ContentAlignment$Map(){ + $clinit_ContentAlignment$Map = emptyMethod; + $MAP_83 = createValueOfMap(($clinit_ContentAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]))); +} + +var $MAP_83; +function $clinit_CoreOptions(){ + $clinit_CoreOptions = emptyMethod; + var all, all0; + ALGORITHM = new Property('org.eclipse.elk.algorithm'); + RESOLVED_ALGORITHM = new Property('org.eclipse.elk.resolvedAlgorithm'); + ALIGNMENT_DEFAULT = ($clinit_Alignment() , AUTOMATIC); + ALIGNMENT_0 = new Property_1('org.eclipse.elk.alignment', ALIGNMENT_DEFAULT); + new ExclusiveBounds$ExclusiveLowerBound; + ASPECT_RATIO_5 = new Property_1('org.eclipse.elk.aspectRatio', null); + BEND_POINTS = new Property('org.eclipse.elk.bendPoints'); + CONTENT_ALIGNMENT_DEFAULT = ($clinit_ContentAlignment() , of_2(V_TOP, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [H_LEFT]))); + CONTENT_ALIGNMENT_2 = new Property_1('org.eclipse.elk.contentAlignment', CONTENT_ALIGNMENT_DEFAULT); + DEBUG_MODE_3 = new Property_1('org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); + DIRECTION_DEFAULT_0 = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION_0 = new Property_1('org.eclipse.elk.direction', DIRECTION_DEFAULT_0); + EDGE_ROUTING_DEFAULT_0 = ($clinit_EdgeRouting() , UNDEFINED_3); + EDGE_ROUTING_0 = new Property_1('org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT_0); + EXPAND_NODES_1 = new Property_1('org.eclipse.elk.expandNodes', false); + HIERARCHY_HANDLING_DEFAULT = ($clinit_HierarchyHandling() , INHERIT); + HIERARCHY_HANDLING_0 = new Property_1('org.eclipse.elk.hierarchyHandling', HIERARCHY_HANDLING_DEFAULT); + PADDING_DEFAULT_6 = new ElkPadding_0(12); + PADDING_6 = new Property_1('org.eclipse.elk.padding', PADDING_DEFAULT_6); + INTERACTIVE_7 = new Property_1('org.eclipse.elk.interactive', false); + INTERACTIVE_LAYOUT_1 = new Property_1('org.eclipse.elk.interactiveLayout', false); + OMIT_NODE_MICRO_LAYOUT_4 = new Property_1('org.eclipse.elk.omitNodeMicroLayout', false); + PORT_CONSTRAINTS_DEFAULT = ($clinit_PortConstraints() , UNDEFINED_4); + PORT_CONSTRAINTS_1 = new Property_1('org.eclipse.elk.portConstraints', PORT_CONSTRAINTS_DEFAULT); + POSITION_2 = new Property('org.eclipse.elk.position'); + PRIORITY_3 = new Property('org.eclipse.elk.priority'); + RANDOM_SEED_1 = new Property('org.eclipse.elk.randomSeed'); + SEPARATE_CONNECTED_COMPONENTS_2 = new Property('org.eclipse.elk.separateConnectedComponents'); + JUNCTION_POINTS_DEFAULT = new KVectorChain; + JUNCTION_POINTS_0 = new Property_1('org.eclipse.elk.junctionPoints', JUNCTION_POINTS_DEFAULT); + COMMENT_BOX_0 = new Property_1('org.eclipse.elk.commentBox', false); + HYPERNODE_0 = new Property_1('org.eclipse.elk.hypernode', false); + new Property('org.eclipse.elk.labelManager'); + MARGINS_DEFAULT = new ElkMargin; + MARGINS_0 = new Property_1('org.eclipse.elk.margins', MARGINS_DEFAULT); + NO_LAYOUT_0 = new Property_1('org.eclipse.elk.noLayout', false); + new ExclusiveBounds$ExclusiveLowerBound; + SCALE_FACTOR = new Property_1('org.eclipse.elk.scaleFactor', 1); + new Property_1('org.eclipse.elk.animate', true); + valueOf_4(0); + new Property_1('org.eclipse.elk.animTimeFactor', valueOf_4(100)); + new Property_1('org.eclipse.elk.layoutAncestors', false); + valueOf_4(0); + new Property_1('org.eclipse.elk.maxAnimTime', valueOf_4(4000)); + valueOf_4(0); + new Property_1('org.eclipse.elk.minAnimTime', valueOf_4(400)); + new Property_1('org.eclipse.elk.progressBar', false); + new Property_1('org.eclipse.elk.validateGraph', false); + new Property_1('org.eclipse.elk.validateOptions', true); + new Property_1('org.eclipse.elk.zoomToFit', false); + BOX_PACKING_MODE_DEFAULT = ($clinit_BoxLayoutProvider$PackingMode() , SIMPLE_0); + BOX_PACKING_MODE_0 = new Property_1('org.eclipse.elk.box.packingMode', BOX_PACKING_MODE_DEFAULT); + SPACING_COMMENT_COMMENT_0 = new Property_1('org.eclipse.elk.spacing.commentComment', 10); + SPACING_COMMENT_NODE_0 = new Property_1('org.eclipse.elk.spacing.commentNode', 10); + SPACING_COMPONENT_COMPONENT_1 = new Property_1('org.eclipse.elk.spacing.componentComponent', 20); + SPACING_EDGE_EDGE_0 = new Property_1('org.eclipse.elk.spacing.edgeEdge', 10); + SPACING_EDGE_LABEL_1 = new Property_1('org.eclipse.elk.spacing.edgeLabel', 2); + SPACING_EDGE_NODE_0 = new Property_1('org.eclipse.elk.spacing.edgeNode', 10); + SPACING_LABEL_LABEL_0 = new Property_1('org.eclipse.elk.spacing.labelLabel', 0); + SPACING_LABEL_NODE_0 = new Property_1('org.eclipse.elk.spacing.labelNode', 5); + SPACING_LABEL_PORT_HORIZONTAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortHorizontal', 1); + SPACING_LABEL_PORT_VERTICAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortVertical', 1); + SPACING_NODE_NODE_6 = new Property_1('org.eclipse.elk.spacing.nodeNode', 20); + SPACING_NODE_SELF_LOOP_0 = new Property_1('org.eclipse.elk.spacing.nodeSelfLoop', 10); + SPACING_PORT_PORT_0 = new Property_1('org.eclipse.elk.spacing.portPort', 10); + SPACING_INDIVIDUAL_0 = new Property('org.eclipse.elk.spacing.individual'); + SPACING_PORTS_SURROUNDING_DEFAULT = new ElkMargin_0; + SPACING_PORTS_SURROUNDING_0 = new Property_1('org.eclipse.elk.spacing.portsSurrounding', SPACING_PORTS_SURROUNDING_DEFAULT); + PARTITIONING_PARTITION_0 = new Property('org.eclipse.elk.partitioning.partition'); + PARTITIONING_ACTIVATE_DEFAULT = false; + PARTITIONING_ACTIVATE_0 = new Property_1('org.eclipse.elk.partitioning.activate', PARTITIONING_ACTIVATE_DEFAULT); + NODE_LABELS_PADDING_DEFAULT = new ElkPadding_0(5); + NODE_LABELS_PADDING_0 = new Property_1('org.eclipse.elk.nodeLabels.padding', NODE_LABELS_PADDING_DEFAULT); + NODE_LABELS_PLACEMENT_DEFAULT = ($clinit_NodeLabelPlacement() , all0 = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0)); + NODE_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.nodeLabels.placement', NODE_LABELS_PLACEMENT_DEFAULT); + PORT_ALIGNMENT_DEFAULT_DEFAULT_0 = ($clinit_PortAlignment() , DISTRIBUTED); + PORT_ALIGNMENT_DEFAULT = new Property_1('org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT_0); + PORT_ALIGNMENT_NORTH_0 = new Property('org.eclipse.elk.portAlignment.north'); + PORT_ALIGNMENT_SOUTH_0 = new Property('org.eclipse.elk.portAlignment.south'); + PORT_ALIGNMENT_WEST_0 = new Property('org.eclipse.elk.portAlignment.west'); + PORT_ALIGNMENT_EAST_0 = new Property('org.eclipse.elk.portAlignment.east'); + NODE_SIZE_CONSTRAINTS_DEFAULT = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + NODE_SIZE_CONSTRAINTS_6 = new Property_1('org.eclipse.elk.nodeSize.constraints', NODE_SIZE_CONSTRAINTS_DEFAULT); + NODE_SIZE_OPTIONS_DEFAULT = of_1(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE)); + NODE_SIZE_OPTIONS_6 = new Property_1('org.eclipse.elk.nodeSize.options', NODE_SIZE_OPTIONS_DEFAULT); + NODE_SIZE_MINIMUM_DEFAULT = new KVector_1(0, 0); + NODE_SIZE_MINIMUM_5 = new Property_1('org.eclipse.elk.nodeSize.minimum', NODE_SIZE_MINIMUM_DEFAULT); + NODE_SIZE_FIXED_GRAPH_SIZE_0 = new Property_1('org.eclipse.elk.nodeSize.fixedGraphSize', false); + EDGE_LABELS_PLACEMENT_DEFAULT = ($clinit_EdgeLabelPlacement() , CENTER_5); + EDGE_LABELS_PLACEMENT_0 = new Property_1('org.eclipse.elk.edgeLabels.placement', EDGE_LABELS_PLACEMENT_DEFAULT); + EDGE_LABELS_INLINE_1 = new Property_1('org.eclipse.elk.edgeLabels.inline', false); + new Property('org.eclipse.elk.font.name'); + valueOf_4(1); + new Property_1('org.eclipse.elk.font.size', null); + PORT_ANCHOR_0 = new Property('org.eclipse.elk.port.anchor'); + PORT_INDEX_0 = new Property('org.eclipse.elk.port.index'); + PORT_SIDE_DEFAULT = ($clinit_PortSide() , UNDEFINED_5); + PORT_SIDE_0 = new Property_1('org.eclipse.elk.port.side', PORT_SIDE_DEFAULT); + PORT_BORDER_OFFSET_0 = new Property('org.eclipse.elk.port.borderOffset'); + PORT_LABELS_PLACEMENT_DEFAULT = ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0)); + PORT_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.portLabels.placement', PORT_LABELS_PLACEMENT_DEFAULT); + PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0 = new Property_1('org.eclipse.elk.portLabels.nextToPortIfPossible', false); + PORT_LABELS_TREAT_AS_GROUP_0 = new Property_1('org.eclipse.elk.portLabels.treatAsGroup', true); + INSIDE_SELF_LOOPS_ACTIVATE_0 = new Property_1('org.eclipse.elk.insideSelfLoops.activate', false); + INSIDE_SELF_LOOPS_YO_0 = new Property_1('org.eclipse.elk.insideSelfLoops.yo', false); + EDGE_THICKNESS_1 = new Property_1('org.eclipse.elk.edge.thickness', 1); + EDGE_TYPE_DEFAULT = ($clinit_EdgeType() , NONE_14); + new Property_1('org.eclipse.elk.edge.type', EDGE_TYPE_DEFAULT); + PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0 = true; +} + +function CoreOptions(){ + $clinit_CoreOptions(); +} + +defineClass(684, 1, $intern_90, CoreOptions); +_.apply_4 = function apply_168(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.algorithm'), ''), 'Layout Algorithm'), 'Select a specific layout algorithm.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.resolvedAlgorithm'), ''), 'Resolved Layout Algorithm'), 'Meta data associated with the selected algorithm.'), OBJECT), Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.alignment'), ''), 'Alignment'), 'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'), ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_Alignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.aspectRatio'), ''), 'Aspect Ratio'), 'The desired aspect ratio of the drawing, that is the quotient of width by height.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.bendPoints'), ''), 'Bend Points'), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.contentAlignment'), ''), 'Content Alignment'), 'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'), CONTENT_ALIGNMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.debugMode'), ''), 'Debug Mode'), 'Whether additional debug information shall be generated.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.direction'), ''), 'Direction'), 'Overall direction of edges: horizontal (right / left) or vertical (down / up).'), DIRECTION_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_Direction_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeRouting'), ''), 'Edge Routing'), 'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'), EDGE_ROUTING_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.expandNodes'), ''), 'Expand Nodes'), 'If active, nodes are expanded to fill the area of their parent.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hierarchyHandling'), ''), 'Hierarchy Handling'), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), HIERARCHY_HANDLING_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.padding'), ''), 'Padding'), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), PADDING_DEFAULT_6), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactive'), ''), 'Interactive'), 'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactiveLayout'), ''), 'interactive Layout'), 'Whether the graph should be changeable interactively and by setting constraints'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.omitNodeMicroLayout'), ''), 'Omit Node Micro Layout'), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portConstraints'), ''), 'Port Constraints'), 'Defines constraints of the position of the ports of a node.'), PORT_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortConstraints_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.position'), ''), 'Position'), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.priority'), ''), 'Priority'), 'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'), INT), Ljava_lang_Integer_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.randomSeed'), ''), 'Randomization Seed'), 'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.separateConnectedComponents'), ''), 'Separate Connected Components'), 'Whether each connected component should be processed separately.'), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.junctionPoints'), ''), 'Junction Points'), 'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'), JUNCTION_POINTS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.commentBox'), ''), 'Comment Box'), 'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hypernode'), ''), 'Hypernode'), 'Whether the node should be handled as a hypernode.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.labelManager'), ''), 'Label Manager'), "Label managers can shorten labels upon a layout algorithm's request."), OBJECT), Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.margins'), ''), 'Margins'), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), MARGINS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.noLayout'), ''), 'No Layout'), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.scaleFactor'), ''), 'Scale Factor'), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animate'), ''), 'Animate'), 'Whether the shift from the old layout to the new computed layout shall be animated.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animTimeFactor'), ''), 'Animation Time Factor'), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), valueOf_4(100)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layoutAncestors'), ''), 'Layout Ancestors'), 'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.maxAnimTime'), ''), 'Maximal Animation Time'), 'The maximal time for animations, in milliseconds.'), valueOf_4(4000)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.minAnimTime'), ''), 'Minimal Animation Time'), 'The minimal time for animations, in milliseconds.'), valueOf_4(400)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.progressBar'), ''), 'Progress Bar'), 'Whether a progress bar shall be displayed during layout computations.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateGraph'), ''), 'Validate Graph'), 'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateOptions'), ''), 'Validate Options'), 'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.zoomToFit'), ''), 'Zoom to Fit'), 'Whether the zoom level shall be set to view the whole diagram after layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.box.packingMode'), 'box'), 'Box Layout Mode'), 'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'), BOX_PACKING_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentComment'), 'spacing'), 'Comment Comment Spacing'), 'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentNode'), 'spacing'), 'Comment Node Spacing'), 'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.componentComponent'), 'spacing'), 'Components Spacing'), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeEdge'), 'spacing'), 'Edge Spacing'), 'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeLabel'), 'spacing'), 'Edge Label Spacing'), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeNode'), 'spacing'), 'Edge Node Spacing'), 'Spacing to be preserved between nodes and edges.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelLabel'), 'spacing'), 'Label Spacing'), 'Determines the amount of space to be left between two labels of the same graph element.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelNode'), 'spacing'), 'Label Node Spacing'), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortHorizontal'), 'spacing'), 'Horizontal spacing between Label and Port'), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortVertical'), 'spacing'), 'Vertical spacing between Label and Port'), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeNode'), 'spacing'), 'Node Spacing'), 'The minimal distance to be preserved between each two nodes.'), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeSelfLoop'), 'spacing'), 'Node Self Loop Spacing'), 'Spacing to be preserved between a node and its self loops.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portPort'), 'spacing'), 'Port Spacing'), 'Spacing between pairs of ports of the same node.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.individual'), 'spacing'), 'Individual Spacing'), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), OBJECT), Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portsSurrounding'), 'spacing'), 'Additional Port Space'), 'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'), SPACING_PORTS_SURROUNDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.partition'), 'partitioning'), 'Layout Partition'), 'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'), INT), Ljava_lang_Integer_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $addDependency(registry, 'org.eclipse.elk.partitioning.partition', 'org.eclipse.elk.partitioning.activate', PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.activate'), 'partitioning'), 'Layout Partitioning'), 'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'), PARTITIONING_ACTIVATE_DEFAULT), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.padding'), 'nodeLabels'), 'Node Label Padding'), 'Define padding for node labels that are placed inside of a node.'), NODE_LABELS_PADDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.placement'), 'nodeLabels'), 'Node Label Placement'), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), NODE_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.default'), 'portAlignment'), 'Port Alignment'), 'Defines the default port distribution for a node. May be overridden for each side individually.'), PORT_ALIGNMENT_DEFAULT_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.north'), 'portAlignment'), 'Port Alignment (North)'), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.south'), 'portAlignment'), 'Port Alignment (South)'), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.west'), 'portAlignment'), 'Port Alignment (West)'), "Defines how ports on the western side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.east'), 'portAlignment'), 'Port Alignment (East)'), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.constraints'), 'nodeSize'), 'Node Size Constraints'), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), NODE_SIZE_CONSTRAINTS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.options'), 'nodeSize'), 'Node Size Options'), 'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'), NODE_SIZE_OPTIONS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeOptions_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.minimum'), 'nodeSize'), 'Node Size Minimum'), 'The minimal size to which a node can be reduced.'), NODE_SIZE_MINIMUM_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.fixedGraphSize'), 'nodeSize'), 'Fixed Graph Size'), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.placement'), 'edgeLabels'), 'Edge Label Placement'), 'Gives a hint on where to put edge labels.'), EDGE_LABELS_PLACEMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.inline'), 'edgeLabels'), 'Inline Edge Labels'), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.name'), 'font'), 'Font Name'), 'Font name used for a label.'), STRING), Ljava_lang_String_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.size'), 'font'), 'Font Size'), 'Font size used for a label.'), INT), Ljava_lang_Integer_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.anchor'), 'port'), 'Port Anchor Offset'), 'The offset to the port position where connections shall be attached.'), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.index'), 'port'), 'Port Index'), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), INT), Ljava_lang_Integer_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.side'), 'port'), 'Port Side'), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), PORT_SIDE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortSide_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.borderOffset'), 'port'), 'Port Border Offset'), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.placement'), 'portLabels'), 'Port Label Placement'), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), PORT_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.nextToPortIfPossible'), 'portLabels'), 'Port Labels Next to Port'), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.treatAsGroup'), 'portLabels'), 'Treat Port Labels as Group'), 'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.activate'), 'insideSelfLoops'), 'Activate Inside Self Loops'), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.yo'), 'insideSelfLoops'), 'Inside Self Loop'), 'Whether a self loop should be routed inside a node instead of around that node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.thickness'), 'edge'), 'Edge Thickness'), 'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.type'), 'edge'), 'Edge Type'), 'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'), EDGE_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeType_2_classLit), of_1(EDGES)))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.layered'), 'Layered'), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.orthogonal'), 'Orthogonal'), 'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.force'), 'Force'), 'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.circle'), 'Circle'), 'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.tree'), 'Tree'), 'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.planar'), 'Planar'), 'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.radial'), 'Radial'), 'Radial layout algorithms usually position the nodes of the graph on concentric circles.'))); + $apply_25((new FixedLayouterOptions , registry)); + $apply_24((new BoxLayouterOptions , registry)); + $apply_26((new RandomLayouterOptions , registry)); +} +; +var ALGORITHM, ALIGNMENT_0, ALIGNMENT_DEFAULT, ASPECT_RATIO_5, BEND_POINTS, BOX_PACKING_MODE_0, BOX_PACKING_MODE_DEFAULT, COMMENT_BOX_0, CONTENT_ALIGNMENT_2, CONTENT_ALIGNMENT_DEFAULT, DEBUG_MODE_3, DIRECTION_0, DIRECTION_DEFAULT_0, EDGE_LABELS_INLINE_1, EDGE_LABELS_PLACEMENT_0, EDGE_LABELS_PLACEMENT_DEFAULT, EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT_0, EDGE_THICKNESS_1, EDGE_TYPE_DEFAULT, EXPAND_NODES_1, HIERARCHY_HANDLING_0, HIERARCHY_HANDLING_DEFAULT, HYPERNODE_0, INSIDE_SELF_LOOPS_ACTIVATE_0, INSIDE_SELF_LOOPS_YO_0, INTERACTIVE_7, INTERACTIVE_LAYOUT_1, JUNCTION_POINTS_0, JUNCTION_POINTS_DEFAULT, MARGINS_0, MARGINS_DEFAULT, NODE_LABELS_PADDING_0, NODE_LABELS_PADDING_DEFAULT, NODE_LABELS_PLACEMENT_5, NODE_LABELS_PLACEMENT_DEFAULT, NODE_SIZE_CONSTRAINTS_6, NODE_SIZE_CONSTRAINTS_DEFAULT, NODE_SIZE_FIXED_GRAPH_SIZE_0, NODE_SIZE_MINIMUM_5, NODE_SIZE_MINIMUM_DEFAULT, NODE_SIZE_OPTIONS_6, NODE_SIZE_OPTIONS_DEFAULT, NO_LAYOUT_0, OMIT_NODE_MICRO_LAYOUT_4, PADDING_6, PADDING_DEFAULT_6, PARTITIONING_ACTIVATE_0, PARTITIONING_ACTIVATE_DEFAULT, PARTITIONING_PARTITION_0, PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0, PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT_0, PORT_ALIGNMENT_EAST_0, PORT_ALIGNMENT_NORTH_0, PORT_ALIGNMENT_SOUTH_0, PORT_ALIGNMENT_WEST_0, PORT_ANCHOR_0, PORT_BORDER_OFFSET_0, PORT_CONSTRAINTS_1, PORT_CONSTRAINTS_DEFAULT, PORT_INDEX_0, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, PORT_LABELS_PLACEMENT_5, PORT_LABELS_PLACEMENT_DEFAULT, PORT_LABELS_TREAT_AS_GROUP_0, PORT_SIDE_0, PORT_SIDE_DEFAULT, POSITION_2, PRIORITY_3, RANDOM_SEED_1, RESOLVED_ALGORITHM, SCALE_FACTOR, SEPARATE_CONNECTED_COMPONENTS_2, SPACING_COMMENT_COMMENT_0, SPACING_COMMENT_NODE_0, SPACING_COMPONENT_COMPONENT_1, SPACING_EDGE_EDGE_0, SPACING_EDGE_LABEL_1, SPACING_EDGE_NODE_0, SPACING_INDIVIDUAL_0, SPACING_LABEL_LABEL_0, SPACING_LABEL_NODE_0, SPACING_LABEL_PORT_HORIZONTAL_0, SPACING_LABEL_PORT_VERTICAL_0, SPACING_NODE_NODE_6, SPACING_NODE_SELF_LOOP_0, SPACING_PORTS_SURROUNDING_0, SPACING_PORTS_SURROUNDING_DEFAULT, SPACING_PORT_PORT_0; +var Lorg_eclipse_elk_core_options_CoreOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'CoreOptions', 684); +function $clinit_Direction_0(){ + $clinit_Direction_0 = emptyMethod; + UNDEFINED_2 = new Direction_0('UNDEFINED', 0); + RIGHT_6 = new Direction_0('RIGHT', 1); + LEFT_6 = new Direction_0('LEFT', 2); + DOWN_1 = new Direction_0('DOWN', 3); + UP_1 = new Direction_0('UP', 4); +} + +function $isHorizontal(this$static){ + return this$static == LEFT_6 || this$static == RIGHT_6; +} + +function $isVertical(this$static){ + return this$static == UP_1 || this$static == DOWN_1; +} + +function $opposite(this$static){ + switch (this$static.ordinal) { + case 2: + return RIGHT_6; + case 1: + return LEFT_6; + case 4: + return DOWN_1; + case 3: + return UP_1; + default:return UNDEFINED_2; + } +} + +function Direction_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_96(name_0){ + $clinit_Direction_0(); + return valueOf(($clinit_Direction$Map_0() , $MAP_84), name_0); +} + +function values_102(){ + $clinit_Direction_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]); +} + +defineClass(103, 22, {3:1, 35:1, 22:1, 103:1}, Direction_0); +var DOWN_1, LEFT_6, RIGHT_6, UNDEFINED_2, UP_1; +var Lorg_eclipse_elk_core_options_Direction_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Direction', 103, Ljava_lang_Enum_2_classLit, values_102, valueOf_96); +function $clinit_Direction$Map_0(){ + $clinit_Direction$Map_0 = emptyMethod; + $MAP_84 = createValueOfMap(($clinit_Direction_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]))); +} + +var $MAP_84; +function $clinit_EdgeLabelPlacement(){ + $clinit_EdgeLabelPlacement = emptyMethod; + CENTER_5 = new EdgeLabelPlacement('CENTER', 0); + HEAD = new EdgeLabelPlacement('HEAD', 1); + TAIL = new EdgeLabelPlacement('TAIL', 2); +} + +function EdgeLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_97(name_0){ + $clinit_EdgeLabelPlacement(); + return valueOf(($clinit_EdgeLabelPlacement$Map() , $MAP_85), name_0); +} + +function values_103(){ + $clinit_EdgeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]); +} + +defineClass(272, 22, {3:1, 35:1, 22:1, 272:1}, EdgeLabelPlacement); +var CENTER_5, HEAD, TAIL; +var Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeLabelPlacement', 272, Ljava_lang_Enum_2_classLit, values_103, valueOf_97); +function $clinit_EdgeLabelPlacement$Map(){ + $clinit_EdgeLabelPlacement$Map = emptyMethod; + $MAP_85 = createValueOfMap(($clinit_EdgeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]))); +} + +var $MAP_85; +function $clinit_EdgeRouting(){ + $clinit_EdgeRouting = emptyMethod; + UNDEFINED_3 = new EdgeRouting('UNDEFINED', 0); + POLYLINE = new EdgeRouting('POLYLINE', 1); + ORTHOGONAL = new EdgeRouting('ORTHOGONAL', 2); + SPLINES = new EdgeRouting('SPLINES', 3); +} + +function EdgeRouting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_98(name_0){ + $clinit_EdgeRouting(); + return valueOf(($clinit_EdgeRouting$Map() , $MAP_86), name_0); +} + +function values_104(){ + $clinit_EdgeRouting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]); +} + +defineClass(218, 22, {3:1, 35:1, 22:1, 218:1}, EdgeRouting); +var ORTHOGONAL, POLYLINE, SPLINES, UNDEFINED_3; +var Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeRouting', 218, Ljava_lang_Enum_2_classLit, values_104, valueOf_98); +function $clinit_EdgeRouting$Map(){ + $clinit_EdgeRouting$Map = emptyMethod; + $MAP_86 = createValueOfMap(($clinit_EdgeRouting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]))); +} + +var $MAP_86; +function $clinit_EdgeType(){ + $clinit_EdgeType = emptyMethod; + NONE_14 = new EdgeType('NONE', 0); + DIRECTED = new EdgeType('DIRECTED', 1); + UNDIRECTED = new EdgeType('UNDIRECTED', 2); + ASSOCIATION = new EdgeType('ASSOCIATION', 3); + GENERALIZATION = new EdgeType('GENERALIZATION', 4); + DEPENDENCY = new EdgeType('DEPENDENCY', 5); +} + +function EdgeType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_99(name_0){ + $clinit_EdgeType(); + return valueOf(($clinit_EdgeType$Map() , $MAP_87), name_0); +} + +function values_105(){ + $clinit_EdgeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]); +} + +defineClass(312, 22, {3:1, 35:1, 22:1, 312:1}, EdgeType); +var ASSOCIATION, DEPENDENCY, DIRECTED, GENERALIZATION, NONE_14, UNDIRECTED; +var Lorg_eclipse_elk_core_options_EdgeType_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeType', 312, Ljava_lang_Enum_2_classLit, values_105, valueOf_99); +function $clinit_EdgeType$Map(){ + $clinit_EdgeType$Map = emptyMethod; + $MAP_87 = createValueOfMap(($clinit_EdgeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]))); +} + +var $MAP_87; +function $clinit_FixedLayouterOptions(){ + $clinit_FixedLayouterOptions = emptyMethod; + PADDING_DEFAULT_7 = new ElkPadding_0(15); + PADDING_7 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_7); + POSITION_3 = POSITION_2; + BEND_POINTS_0 = BEND_POINTS; + NODE_SIZE_CONSTRAINTS_7 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_6 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_FIXED_GRAPH_SIZE_1 = NODE_SIZE_FIXED_GRAPH_SIZE_0; +} + +function $apply_25(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.fixed'), 'ELK Fixed'), 'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'), new FixedLayouterOptions$FixedFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.padding', PADDING_DEFAULT_7); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.position', $getDefault(POSITION_3)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.bendPoints', $getDefault(BEND_POINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_7)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_6)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_1)); +} + +function FixedLayouterOptions(){ + $clinit_FixedLayouterOptions(); +} + +defineClass(977, 1, $intern_90, FixedLayouterOptions); +_.apply_4 = function apply_169(registry){ + $apply_25(registry); +} +; +var BEND_POINTS_0, NODE_SIZE_CONSTRAINTS_7, NODE_SIZE_FIXED_GRAPH_SIZE_1, NODE_SIZE_MINIMUM_6, PADDING_7, PADDING_DEFAULT_7, POSITION_3; +var Lorg_eclipse_elk_core_options_FixedLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions', 977); +function FixedLayouterOptions$FixedFactory(){ +} + +defineClass(978, 1, {}, FixedLayouterOptions$FixedFactory); +_.create_0 = function create_38(){ + var provider; + return provider = new FixedLayoutProvider , provider; +} +; +_.destroy = function destroy_9(obj){ +} +; +var Lorg_eclipse_elk_core_options_FixedLayouterOptions$FixedFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions/FixedFactory', 978); +function $clinit_HierarchyHandling(){ + $clinit_HierarchyHandling = emptyMethod; + INHERIT = new HierarchyHandling('INHERIT', 0); + INCLUDE_CHILDREN = new HierarchyHandling('INCLUDE_CHILDREN', 1); + SEPARATE_CHILDREN = new HierarchyHandling('SEPARATE_CHILDREN', 2); +} + +function HierarchyHandling(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_100(name_0){ + $clinit_HierarchyHandling(); + return valueOf(($clinit_HierarchyHandling$Map() , $MAP_88), name_0); +} + +function values_106(){ + $clinit_HierarchyHandling(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]); +} + +defineClass(334, 22, {3:1, 35:1, 22:1, 334:1}, HierarchyHandling); +var INCLUDE_CHILDREN, INHERIT, SEPARATE_CHILDREN; +var Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit = createForEnum('org.eclipse.elk.core.options', 'HierarchyHandling', 334, Ljava_lang_Enum_2_classLit, values_106, valueOf_100); +function $clinit_HierarchyHandling$Map(){ + $clinit_HierarchyHandling$Map = emptyMethod; + $MAP_88 = createValueOfMap(($clinit_HierarchyHandling() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]))); +} + +var $MAP_88; +function $clinit_LabelSide(){ + $clinit_LabelSide = emptyMethod; + UNKNOWN = new LabelSide('UNKNOWN', 0); + ABOVE = new LabelSide('ABOVE', 1); + BELOW = new LabelSide('BELOW', 2); + INLINE = new LabelSide('INLINE', 3); + new Property_0('org.eclipse.elk.labelSide', UNKNOWN); +} + +function $opposite_0(this$static){ + switch (this$static.ordinal) { + case 1: + return BELOW; + case 2: + return ABOVE; + case 3: + return INLINE; + default:return UNKNOWN; + } +} + +function LabelSide(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_101(name_0){ + $clinit_LabelSide(); + return valueOf(($clinit_LabelSide$Map() , $MAP_89), name_0); +} + +function values_107(){ + $clinit_LabelSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]); +} + +defineClass(285, 22, {3:1, 35:1, 22:1, 285:1}, LabelSide); +var ABOVE, BELOW, INLINE, UNKNOWN; +var Lorg_eclipse_elk_core_options_LabelSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'LabelSide', 285, Ljava_lang_Enum_2_classLit, values_107, valueOf_101); +function $clinit_LabelSide$Map(){ + $clinit_LabelSide$Map = emptyMethod; + $MAP_89 = createValueOfMap(($clinit_LabelSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]))); +} + +var $MAP_89; +function $clinit_NodeLabelPlacement(){ + $clinit_NodeLabelPlacement = emptyMethod; + H_LEFT_0 = new NodeLabelPlacement('H_LEFT', 0); + H_CENTER_0 = new NodeLabelPlacement('H_CENTER', 1); + H_RIGHT_0 = new NodeLabelPlacement('H_RIGHT', 2); + V_TOP_0 = new NodeLabelPlacement('V_TOP', 3); + V_CENTER_0 = new NodeLabelPlacement('V_CENTER', 4); + V_BOTTOM_0 = new NodeLabelPlacement('V_BOTTOM', 5); + INSIDE = new NodeLabelPlacement('INSIDE', 6); + OUTSIDE = new NodeLabelPlacement('OUTSIDE', 7); + H_PRIORITY = new NodeLabelPlacement('H_PRIORITY', 8); +} + +function NodeLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isValid_0(placement){ + $clinit_NodeLabelPlacement(); + var validHorizontal, validInsideOutside, validVertical; + validInsideOutside = of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [OUTSIDE])); + if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { + return false; + } + validHorizontal = of_2(H_LEFT_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_CENTER_0, H_RIGHT_0])); + if ($size_1(intersection_0(validHorizontal, placement)) > 1) { + return false; + } + validVertical = of_2(V_TOP_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, V_BOTTOM_0])); + if ($size_1(intersection_0(validVertical, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_102(name_0){ + $clinit_NodeLabelPlacement(); + return valueOf(($clinit_NodeLabelPlacement$Map() , $MAP_90), name_0); +} + +function values_108(){ + $clinit_NodeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]); +} + +defineClass(93, 22, {3:1, 35:1, 22:1, 93:1}, NodeLabelPlacement); +var H_CENTER_0, H_LEFT_0, H_PRIORITY, H_RIGHT_0, INSIDE, OUTSIDE, V_BOTTOM_0, V_CENTER_0, V_TOP_0; +var Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'NodeLabelPlacement', 93, Ljava_lang_Enum_2_classLit, values_108, valueOf_102); +function $clinit_NodeLabelPlacement$Map(){ + $clinit_NodeLabelPlacement$Map = emptyMethod; + $MAP_90 = createValueOfMap(($clinit_NodeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]))); +} + +var $MAP_90; +function $clinit_PortAlignment(){ + $clinit_PortAlignment = emptyMethod; + DISTRIBUTED = new PortAlignment('DISTRIBUTED', 0); + JUSTIFIED = new PortAlignment('JUSTIFIED', 1); + BEGIN_0 = new PortAlignment('BEGIN', 2); + CENTER_6 = new PortAlignment('CENTER', 3); + END_1 = new PortAlignment('END', 4); +} + +function PortAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_103(name_0){ + $clinit_PortAlignment(); + return valueOf(($clinit_PortAlignment$Map() , $MAP_91), name_0); +} + +function values_109(){ + $clinit_PortAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]); +} + +defineClass(249, 22, {3:1, 35:1, 22:1, 249:1}, PortAlignment); +var BEGIN_0, CENTER_6, DISTRIBUTED, END_1, JUSTIFIED; +var Lorg_eclipse_elk_core_options_PortAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortAlignment', 249, Ljava_lang_Enum_2_classLit, values_109, valueOf_103); +function $clinit_PortAlignment$Map(){ + $clinit_PortAlignment$Map = emptyMethod; + $MAP_91 = createValueOfMap(($clinit_PortAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]))); +} + +var $MAP_91; +function $clinit_PortConstraints(){ + $clinit_PortConstraints = emptyMethod; + UNDEFINED_4 = new PortConstraints('UNDEFINED', 0); + FREE = new PortConstraints('FREE', 1); + FIXED_SIDE = new PortConstraints('FIXED_SIDE', 2); + FIXED_ORDER = new PortConstraints('FIXED_ORDER', 3); + FIXED_RATIO = new PortConstraints('FIXED_RATIO', 4); + FIXED_POS = new PortConstraints('FIXED_POS', 5); +} + +function $isOrderFixed(this$static){ + return this$static == FIXED_ORDER || this$static == FIXED_RATIO || this$static == FIXED_POS; +} + +function $isSideFixed(this$static){ + return this$static != FREE && this$static != UNDEFINED_4; +} + +function PortConstraints(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_104(name_0){ + $clinit_PortConstraints(); + return valueOf(($clinit_PortConstraints$Map() , $MAP_92), name_0); +} + +function values_110(){ + $clinit_PortConstraints(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]); +} + +defineClass(98, 22, {3:1, 35:1, 22:1, 98:1}, PortConstraints); +var FIXED_ORDER, FIXED_POS, FIXED_RATIO, FIXED_SIDE, FREE, UNDEFINED_4; +var Lorg_eclipse_elk_core_options_PortConstraints_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortConstraints', 98, Ljava_lang_Enum_2_classLit, values_110, valueOf_104); +function $clinit_PortConstraints$Map(){ + $clinit_PortConstraints$Map = emptyMethod; + $MAP_92 = createValueOfMap(($clinit_PortConstraints() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]))); +} + +var $MAP_92; +function $clinit_PortLabelPlacement(){ + $clinit_PortLabelPlacement = emptyMethod; + OUTSIDE_0 = new PortLabelPlacement('OUTSIDE', 0); + INSIDE_0 = new PortLabelPlacement('INSIDE', 1); + NEXT_TO_PORT_IF_POSSIBLE_0 = new PortLabelPlacement('NEXT_TO_PORT_IF_POSSIBLE', 2); + ALWAYS_SAME_SIDE = new PortLabelPlacement('ALWAYS_SAME_SIDE', 3); + ALWAYS_OTHER_SAME_SIDE = new PortLabelPlacement('ALWAYS_OTHER_SAME_SIDE', 4); + SPACE_EFFICIENT_0 = new PortLabelPlacement('SPACE_EFFICIENT', 5); +} + +function PortLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isFixed(placement){ + $clinit_PortLabelPlacement(); + return !placement.contains(INSIDE_0) && !placement.contains(OUTSIDE_0); +} + +function isValid_1(placement){ + $clinit_PortLabelPlacement(); + var validInsideOutside, validPosition; + validInsideOutside = of_2(INSIDE_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0])); + if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { + return false; + } + validPosition = of_2(ALWAYS_SAME_SIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0])); + if ($size_1(intersection_0(validPosition, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_105(name_0){ + $clinit_PortLabelPlacement(); + return valueOf(($clinit_PortLabelPlacement$Map() , $MAP_93), name_0); +} + +function values_111(){ + $clinit_PortLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]); +} + +defineClass(273, 22, {3:1, 35:1, 22:1, 273:1}, PortLabelPlacement); +var ALWAYS_OTHER_SAME_SIDE, ALWAYS_SAME_SIDE, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, OUTSIDE_0, SPACE_EFFICIENT_0; +var Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortLabelPlacement', 273, Ljava_lang_Enum_2_classLit, values_111, valueOf_105); +function $clinit_PortLabelPlacement$Map(){ + $clinit_PortLabelPlacement$Map = emptyMethod; + $MAP_93 = createValueOfMap(($clinit_PortLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]))); +} + +var $MAP_93; +function $clinit_PortSide(){ + $clinit_PortSide = emptyMethod; + var all; + UNDEFINED_5 = new PortSide('UNDEFINED', 0); + NORTH_3 = new PortSide('NORTH', 1); + EAST_2 = new PortSide('EAST', 2); + SOUTH_2 = new PortSide('SOUTH', 3); + WEST_2 = new PortSide('WEST', 4); + SIDES_NONE = ($clinit_Collections() , new Collections$UnmodifiableSet((all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)))); + SIDES_NORTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_EAST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_SOUTH = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_WEST = asImmutable(of_2(WEST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_NORTH_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); + SIDES_EAST_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_NORTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_NORTH_EAST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2]))); + SIDES_SOUTH_WEST = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_EAST_SOUTH = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); + SIDES_NORTH_EAST_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, WEST_2]))); + SIDES_EAST_SOUTH_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); + SIDES_NORTH_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); + SIDES_NORTH_EAST_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2]))); + SIDES_NORTH_EAST_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]))); +} + +function $left(this$static){ + switch (this$static.ordinal) { + case 1: + return WEST_2; + case 2: + return NORTH_3; + case 3: + return EAST_2; + case 4: + return SOUTH_2; + default:return UNDEFINED_5; + } +} + +function $opposed(this$static){ + switch (this$static.ordinal) { + case 1: + return SOUTH_2; + case 2: + return WEST_2; + case 3: + return NORTH_3; + case 4: + return EAST_2; + default:return UNDEFINED_5; + } +} + +function $right(this$static){ + switch (this$static.ordinal) { + case 1: + return EAST_2; + case 2: + return SOUTH_2; + case 3: + return WEST_2; + case 4: + return NORTH_3; + default:return UNDEFINED_5; + } +} + +function PortSide(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function fromDirection(direction){ + $clinit_PortSide(); + switch (direction.ordinal) { + case 4: + return NORTH_3; + case 1: + return EAST_2; + case 3: + return SOUTH_2; + case 2: + return WEST_2; + default:return UNDEFINED_5; + } +} + +function valueOf_106(name_0){ + $clinit_PortSide(); + return valueOf(($clinit_PortSide$Map() , $MAP_94), name_0); +} + +function values_112(){ + $clinit_PortSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]); +} + +defineClass(61, 22, {3:1, 35:1, 22:1, 61:1}, PortSide); +var EAST_2, NORTH_3, SIDES_EAST, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST, SIDES_EAST_WEST, SIDES_NONE, SIDES_NORTH, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST, SIDES_SOUTH, SIDES_SOUTH_WEST, SIDES_WEST, SOUTH_2, UNDEFINED_5, WEST_2; +var Lorg_eclipse_elk_core_options_PortSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortSide', 61, Ljava_lang_Enum_2_classLit, values_112, valueOf_106); +function $clinit_PortSide$Map(){ + $clinit_PortSide$Map = emptyMethod; + $MAP_94 = createValueOfMap(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))); +} + +var $MAP_94; +function $clinit_RandomLayouterOptions(){ + $clinit_RandomLayouterOptions = emptyMethod; + PADDING_DEFAULT_8 = new ElkPadding_0(15); + PADDING_8 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_8); + SPACING_NODE_NODE_7 = new Property_2(SPACING_NODE_NODE_6, 15); + RANDOM_SEED_2 = new Property_2(RANDOM_SEED_1, valueOf_4(0)); + ASPECT_RATIO_6 = new Property_2(ASPECT_RATIO_5, $intern_102); +} + +function $apply_26(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.random'), 'ELK Randomizer'), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new RandomLayouterOptions$RandomFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.padding', PADDING_DEFAULT_8); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.randomSeed', valueOf_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.aspectRatio', $intern_102); +} + +function RandomLayouterOptions(){ + $clinit_RandomLayouterOptions(); +} + +defineClass(981, 1, $intern_90, RandomLayouterOptions); +_.apply_4 = function apply_170(registry){ + $apply_26(registry); +} +; +var ASPECT_RATIO_6, PADDING_8, PADDING_DEFAULT_8, RANDOM_SEED_2, SPACING_NODE_NODE_7; +var Lorg_eclipse_elk_core_options_RandomLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions', 981); +function RandomLayouterOptions$RandomFactory(){ +} + +defineClass(982, 1, {}, RandomLayouterOptions$RandomFactory); +_.create_0 = function create_39(){ + var provider; + return provider = new RandomLayoutProvider , provider; +} +; +_.destroy = function destroy_10(obj){ +} +; +var Lorg_eclipse_elk_core_options_RandomLayouterOptions$RandomFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions/RandomFactory', 982); +function $clinit_SizeConstraint(){ + $clinit_SizeConstraint = emptyMethod; + PORTS_0 = new SizeConstraint('PORTS', 0); + PORT_LABELS = new SizeConstraint('PORT_LABELS', 1); + NODE_LABELS = new SizeConstraint('NODE_LABELS', 2); + MINIMUM_SIZE = new SizeConstraint('MINIMUM_SIZE', 3); +} + +function SizeConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_107(name_0){ + $clinit_SizeConstraint(); + return valueOf(($clinit_SizeConstraint$Map() , $MAP_95), name_0); +} + +function values_113(){ + $clinit_SizeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]); +} + +defineClass(374, 22, {3:1, 35:1, 22:1, 374:1}, SizeConstraint); +var MINIMUM_SIZE, NODE_LABELS, PORTS_0, PORT_LABELS; +var Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeConstraint', 374, Ljava_lang_Enum_2_classLit, values_113, valueOf_107); +function $clinit_SizeConstraint$Map(){ + $clinit_SizeConstraint$Map = emptyMethod; + $MAP_95 = createValueOfMap(($clinit_SizeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]))); +} + +var $MAP_95; +function $clinit_SizeOptions(){ + $clinit_SizeOptions = emptyMethod; + DEFAULT_MINIMUM_SIZE = new SizeOptions('DEFAULT_MINIMUM_SIZE', 0); + MINIMUM_SIZE_ACCOUNTS_FOR_PADDING = new SizeOptions('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING', 1); + COMPUTE_PADDING = new SizeOptions('COMPUTE_PADDING', 2); + OUTSIDE_NODE_LABELS_OVERHANG = new SizeOptions('OUTSIDE_NODE_LABELS_OVERHANG', 3); + PORTS_OVERHANG = new SizeOptions('PORTS_OVERHANG', 4); + UNIFORM_PORT_SPACING = new SizeOptions('UNIFORM_PORT_SPACING', 5); + SPACE_EFFICIENT_PORT_LABELS = new SizeOptions('SPACE_EFFICIENT_PORT_LABELS', 6); + FORCE_TABULAR_NODE_LABELS = new SizeOptions('FORCE_TABULAR_NODE_LABELS', 7); + ASYMMETRICAL = new SizeOptions('ASYMMETRICAL', 8); +} + +function SizeOptions(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_108(name_0){ + $clinit_SizeOptions(); + return valueOf(($clinit_SizeOptions$Map() , $MAP_96), name_0); +} + +function values_114(){ + $clinit_SizeOptions(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]); +} + +defineClass(259, 22, {3:1, 35:1, 22:1, 259:1}, SizeOptions); +var ASYMMETRICAL, COMPUTE_PADDING, DEFAULT_MINIMUM_SIZE, FORCE_TABULAR_NODE_LABELS, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, SPACE_EFFICIENT_PORT_LABELS, UNIFORM_PORT_SPACING; +var Lorg_eclipse_elk_core_options_SizeOptions_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeOptions', 259, Ljava_lang_Enum_2_classLit, values_114, valueOf_108); +function $clinit_SizeOptions$Map(){ + $clinit_SizeOptions$Map = emptyMethod; + $MAP_96 = createValueOfMap(($clinit_SizeOptions() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]))); +} + +var $MAP_96; +function $begin(this$static, name_0, thetotalWork){ + if (this$static.closed_0) { + throw toJs(new IllegalStateException_0('The task is already done.')); + } + else if (this$static.taskName != null) { + return false; + } + else { + this$static.taskName = name_0; + this$static.totalWork = thetotalWork; + this$static.recordExecutionTime && (this$static.startTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45))); + return true; + } +} + +function $doSubTask(this$static, maxHierarchyLevels){ + var newMaxHierarchyLevels; + newMaxHierarchyLevels = maxHierarchyLevels > 0?maxHierarchyLevels - 1:maxHierarchyLevels; + return $withExecutionTimeMeasurement($withLogPersistence($withLogging($withMaxHierarchyLevels(new BasicProgressMonitor, newMaxHierarchyLevels), this$static.recordLogs), this$static.persistLogs), this$static.recordExecutionTime); +} + +function $done_0(this$static){ + var endTime; + if (this$static.taskName == null) { + throw toJs(new IllegalStateException_0('The task has not begun yet.')); + } + if (!this$static.closed_0) { + if (this$static.recordExecutionTime) { + endTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45)); + this$static.totalTime = toDouble_0(sub_2(endTime, this$static.startTime)) * 1.0E-9; + } + this$static.completedWork < this$static.totalWork && $internalWorked(this$static, this$static.totalWork - this$static.completedWork); + this$static.closed_0 = true; + } +} + +function $internalWorked(this$static, work){ + if (this$static.totalWork > 0 && this$static.completedWork < this$static.totalWork) { + this$static.completedWork += work; + !!this$static.parentMonitor && this$static.parentMonitor.currentChildWork > 0 && this$static.maxLevels != 0 && $internalWorked(this$static.parentMonitor, work / this$static.totalWork * this$static.parentMonitor.currentChildWork); + } +} + +function $log_2(this$static, object){ + var logMessage; + if (this$static.recordLogs) { + logMessage = object; + $add_3(this$static.logMessages, logMessage); + } +} + +function $logGraph(this$static, object, graphType){ + var loggedGraph; + if (this$static.recordLogs && !!object && !!graphType) { + loggedGraph = new LoggedGraph; + $add_3(this$static.logGraphs, loggedGraph); + } +} + +function $subTask(this$static, work){ + var subMonitor; + if (this$static.closed_0) { + return null; + } + else { + subMonitor = $doSubTask(this$static, this$static.maxLevels); + $add_7(this$static.children, subMonitor); + subMonitor.parentMonitor = this$static; + this$static.currentChildWork = work; + return subMonitor; + } +} + +function $withExecutionTimeMeasurement(this$static, enabled){ + this$static.recordExecutionTime = enabled; + return this$static; +} + +function $withLogPersistence(this$static, enabled){ + this$static.persistLogs = enabled; + return this$static; +} + +function $withLogging(this$static, enabled){ + this$static.recordLogs = enabled; + if (this$static.recordLogs) { + this$static.logMessages = new ArrayList; + this$static.logGraphs = new ArrayList; + } + else { + this$static.logMessages = null; + this$static.logGraphs = null; + } + return this$static; +} + +function $withMaxHierarchyLevels(this$static, levels){ + levels < 0?(this$static.maxLevels = -1):(this$static.maxLevels = levels); + return this$static; +} + +function BasicProgressMonitor(){ + this.children = new LinkedList; +} + +defineClass(370, 1, {1949:1}, BasicProgressMonitor); +_.closed_0 = false; +_.completedWork = 0; +_.currentChildWork = -1; +_.logGraphs = null; +_.logMessages = null; +_.maxLevels = -1; +_.persistLogs = false; +_.recordExecutionTime = false; +_.recordLogs = false; +_.startTime = 0; +_.totalTime = 0; +_.totalWork = 0; +var Lorg_eclipse_elk_core_util_BasicProgressMonitor_2_classLit = createForClass('org.eclipse.elk.core.util', 'BasicProgressMonitor', 370); +function $areaStdDev(boxes, mean){ + var box, box$iterator, stddev, variance; + variance = 0; + for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 33); + variance += $wnd.Math.pow(box.width_0 * box.height - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +function $areaStdDev2(boxes, mean){ + var box, box$iterator, stddev, variance; + variance = 0; + for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 157); + variance += $wnd.Math.pow($getWidth(box) * $getHeight(box) - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +function $mergeAndPlaceDec(groups, objSpacing, minWidth, minHeight, expandNodes){ + var box, boxQueue, boxToBeat, collectedArea, groupSize, innerAspectRatio, innerGroup, maybeGroup, toBePlaced; + $clinit_Collections(); + $sort(groups, new BoxLayoutProvider$lambda$0$Type); + boxQueue = newLinkedList(groups); + toBePlaced = new ArrayList; + maybeGroup = new ArrayList; + boxToBeat = null; + collectedArea = 0; + while (boxQueue.size_0 != 0) { + box = castTo(boxQueue.size_0 == 0?null:(checkCriticalElement(boxQueue.size_0 != 0) , $removeNode_0(boxQueue, boxQueue.header.next_0)), 157); + if (!boxToBeat || $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 < $getWidth(box) * $getHeight(box)) { + boxToBeat = box; + toBePlaced.array[toBePlaced.array.length] = box; + } + else { + collectedArea += $getWidth(box) * $getHeight(box); + maybeGroup.array[maybeGroup.array.length] = box; + if (maybeGroup.array.length > 1 && (collectedArea > $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 || boxQueue.size_0 == 0)) { + innerGroup = new BoxLayoutProvider$Group(maybeGroup); + innerAspectRatio = $getWidth(boxToBeat) / $getHeight(boxToBeat); + groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(innerGroup.size_0), groupSize); + boxToBeat = innerGroup; + toBePlaced.array[toBePlaced.array.length] = innerGroup; + collectedArea = 0; + maybeGroup.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + } + $addAll_2(toBePlaced, maybeGroup); + return toBePlaced; +} + +function $mergeAndPlaceInc(groups, objSpacing, minWidth, minHeight, expandNodes){ + var commonArea, g, groupIterator, groupSize, innerAspectRatio, merged, toBePlaced; + $clinit_Collections(); + $sort(groups, new BoxLayoutProvider$lambda$2$Type); + groupIterator = new AbstractList$ListIteratorImpl(groups, 0); + toBePlaced = new ArrayList; + commonArea = 0; + while (groupIterator.i < groupIterator.this$01_0.size_1()) { + g = (checkCriticalElement(groupIterator.i < groupIterator.this$01_0.size_1()) , castTo(groupIterator.this$01_0.get_0(groupIterator.last = groupIterator.i++), 157)); + if (toBePlaced.array.length != 0 && $getWidth(g) * $getHeight(g) > commonArea * 2) { + merged = new BoxLayoutProvider$Group(toBePlaced); + innerAspectRatio = $getWidth(g) / $getHeight(g); + groupSize = $placeInnerBoxes(merged, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(merged.size_0), groupSize); + toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + commonArea = 0; + toBePlaced.array[toBePlaced.array.length] = merged; + toBePlaced.array[toBePlaced.array.length] = g; + commonArea = $getWidth(merged) * $getHeight(merged) + $getWidth(g) * $getHeight(g); + } + else { + toBePlaced.array[toBePlaced.array.length] = g; + commonArea += $getWidth(g) * $getHeight(g); + } + } + return toBePlaced; +} + +function $mergeAndPlaceMixed(groups, objSpacing, minWidth, minHeight, expandNodes){ + var anIndex, box, cumAreaArray, groupSize, index_0, innerAspectRatio, innerGroup, pq, remain, select, toBePlaced, value_0; + cumAreaArray = initUnidimensionalArray(D_classLit, $intern_65, 25, groups.array.length, 15, 1); + pq = new PriorityQueue(new BoxLayoutProvider$lambda$1$Type); + $addAll_4(pq, groups); + index_0 = 0; + toBePlaced = new ArrayList; + while (pq.heap.array.length != 0) { + box = castTo(pq.heap.array.length == 0?null:$get_11(pq.heap, 0), 157); + if (index_0 > 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[0]) { + anIndex = 0; + while (anIndex < toBePlaced.array.length - 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[anIndex]) { + ++anIndex; + } + select = new AbstractList$SubList(toBePlaced, 0, anIndex + 1); + innerGroup = new BoxLayoutProvider$Group(select); + innerAspectRatio = $getWidth(box) / $getHeight(box); + groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(innerGroup.size_0), groupSize); + checkCriticalState_0($offer(pq, innerGroup)); + remain = new AbstractList$SubList(toBePlaced, anIndex + 1, toBePlaced.array.length); + $addAll_4(pq, remain); + toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + index_0 = 0; + fill0_0(cumAreaArray, cumAreaArray.length, 0); + } + else { + value_0 = pq.heap.array.length == 0?null:$get_11(pq.heap, 0); + value_0 != null && $removeAtIndex_0(pq, 0); + index_0 > 0 && (cumAreaArray[index_0] = cumAreaArray[index_0 - 1]); + cumAreaArray[index_0] += $getWidth(box) * $getHeight(box); + ++index_0; + toBePlaced.array[toBePlaced.array.length] = box; + } + } + return toBePlaced; +} + +function $placeBoxes(sortedBoxes, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ + var box, box$iterator, boxIter, broadestRow, height, highestBox, maxRowWidth, mean, newHeight, newWidth, nextRowIndex, oldHeight, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; + maxRowWidth = 0; + totalArea = 0; + for (box$iterator = new ArrayList$1(sortedBoxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 33); + resizeNode_0(box); + maxRowWidth = $wnd.Math.max(maxRowWidth, box.width_0); + totalArea += box.width_0 * box.height; + } + mean = totalArea / sortedBoxes.array.length; + stddev = $areaStdDev(sortedBoxes, mean); + totalArea += sortedBoxes.array.length * stddev; + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; + xpos = padding.left; + ypos = padding.top_0; + highestBox = 0; + broadestRow = padding.left + padding.right; + rowIndices = new LinkedList; + $add_7(rowIndices, valueOf_4(0)); + rowHeights = new LinkedList; + boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); + while (boxIter.i < boxIter.this$01_0.size_1()) { + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); + width_0 = box.width_0; + height = box.height; + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + $setX_2(box, xpos); + $setY_3(box, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); + highestBox = $wnd.Math.max(highestBox, height); + xpos += width_0 + minSpacing; + } + broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); + totalHeight = ypos + highestBox + padding.bottom; + if (totalHeight < minTotalHeight) { + highestBox += minTotalHeight - totalHeight; + totalHeight = minTotalHeight; + } + if (expandNodes) { + xpos = padding.left; + boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); + $addLast_0(rowIndices, valueOf_4(sortedBoxes.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + $addLast_0(rowHeights, highestBox); + rowHeightIter = $listIterator_2(rowHeights, 0); + rowHeight = 0; + while (boxIter.i < boxIter.this$01_0.size_1()) { + if (boxIter.i == nextRowIndex) { + xpos = padding.left; + rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); + oldHeight = box.height; + $setHeight_0(box, rowHeight); + newHeight = rowHeight; + if (boxIter.i == nextRowIndex) { + newWidth = broadestRow - xpos - padding.right; + oldWidth = box.width_0; + $setWidth_0(box, newWidth); + translate_1(box, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); + } + xpos += box.width_0 + minSpacing; + } + } + return new KVector_1(broadestRow, totalHeight); +} + +function $placeBoxesGrouping(parentNode, objSpacing, padding, expandNodes){ + var aspectRatio, finalGroup, g, groups, lastArg, lastArg0, lastArg1, minSize, mode, node, node$iterator, parentSize, toBePlaced; + minSize = new KVector_2(castTo($getProperty_0(parentNode, ($clinit_BoxLayouterOptions() , NODE_SIZE_MINIMUM_4)), 8)); + minSize.x_0 = $wnd.Math.max(minSize.x_0 - padding.left - padding.right, 0); + minSize.y_0 = $wnd.Math.max(minSize.y_0 - padding.top_0 - padding.bottom, 0); + aspectRatio = castToDouble($getProperty_0(parentNode, ASPECT_RATIO_4)); + (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); + groups = new ArrayList; + for (node$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + g = new BoxLayoutProvider$Group_0(node); + groups.array[groups.array.length] = g; + } + mode = castTo($getProperty_0(parentNode, BOX_PACKING_MODE), 311); + switch (mode.ordinal) { + case 3: + toBePlaced = $mergeAndPlaceInc(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg0 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg0)); + break; + case 1: + toBePlaced = $mergeAndPlaceDec(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg1 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg1)); + break; + default:toBePlaced = $mergeAndPlaceMixed(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg)); + } + finalGroup = new BoxLayoutProvider$Group(toBePlaced); + parentSize = $placeInnerBoxes(finalGroup, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); + resizeNode_1(parentNode, parentSize.x_0, parentSize.y_0, false, true); +} + +function $placeInnerBoxes(group, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ + var bottoms, box, box$iterator, boxIter, broadestRow, height, highestBox, last, maxRowWidth, mean, newWidth, nextRowIndex, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; + maxRowWidth = 0; + totalArea = 0; + for (box$iterator = new ArrayList$1(group.groups); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 157); + !!box.node && resizeNode_0(box.node); + maxRowWidth = $wnd.Math.max(maxRowWidth, $getWidth(box)); + totalArea += $getWidth(box) * $getHeight(box); + } + mean = totalArea / group.groups.array.length; + stddev = $areaStdDev2(group.groups, mean); + totalArea += group.groups.array.length * stddev; + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; + xpos = padding.left; + ypos = padding.top_0; + highestBox = 0; + broadestRow = padding.left + padding.right; + rowIndices = new LinkedList; + $add_7(rowIndices, valueOf_4(0)); + rowHeights = new LinkedList; + boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); + last = null; + bottoms = new ArrayList; + while (boxIter.i < boxIter.this$01_0.size_1()) { + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); + width_0 = $getWidth(box); + height = $getHeight(box); + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); + $add_3(group.right, last); + bottoms.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + bottoms.array[bottoms.array.length] = box; + $translate_1(box, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); + highestBox = $wnd.Math.max(highestBox, height); + xpos += width_0 + minSpacing; + last = box; + } + $addAll_2(group.bottom, bottoms); + $add_3(group.right, castTo($get_11(bottoms, bottoms.array.length - 1), 157)); + broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); + totalHeight = ypos + highestBox + padding.bottom; + if (totalHeight < minTotalHeight) { + highestBox += minTotalHeight - totalHeight; + totalHeight = minTotalHeight; + } + if (expandNodes) { + xpos = padding.left; + boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); + $addLast_0(rowIndices, valueOf_4(group.groups.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + $addLast_0(rowHeights, highestBox); + rowHeightIter = $listIterator_2(rowHeights, 0); + rowHeight = 0; + while (boxIter.i < boxIter.this$01_0.size_1()) { + if (boxIter.i == nextRowIndex) { + xpos = padding.left; + rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); + $setHeight(box, rowHeight); + if (boxIter.i == nextRowIndex) { + newWidth = broadestRow - xpos - padding.right; + oldWidth = $getWidth(box); + $setWidth(box, newWidth); + $translateInnerNodes(box, (newWidth - oldWidth) / 2, 0); + } + xpos += $getWidth(box) + minSpacing; + } + } + return new KVector_1(broadestRow, totalHeight); +} + +function BoxLayoutProvider(){ +} + +function lambda$0_36(g1_0, g2_1){ + return -compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$1_20(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$2_10(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +defineClass(972, 209, $intern_96, BoxLayoutProvider); +_.layout = function layout_8(layoutNode, progressMonitor){ + var expandNodes, interactive, objSpacing, padding, sortedBoxes, sortedBoxes_0, minSize, aspectRatio, parentSize; + $begin(progressMonitor, 'Box layout', 2); + objSpacing = $floatValue(castToDouble($getProperty_0(layoutNode, ($clinit_BoxLayouterOptions() , SPACING_NODE_NODE_5)))); + padding = castTo($getProperty_0(layoutNode, PADDING_5), 116); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutNode, EXPAND_NODES_0))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutNode, INTERACTIVE_6))); + switch (castTo($getProperty_0(layoutNode, BOX_PACKING_MODE), 311).ordinal) { + case 0: + sortedBoxes = (sortedBoxes_0 = new ArrayList_1((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)) , $clinit_Collections() , $sort(sortedBoxes_0, new BoxLayoutProvider$1(interactive)) , sortedBoxes_0); + minSize = effectiveMinSizeConstraintFor(layoutNode); + aspectRatio = castToDouble($getProperty_0(layoutNode, ASPECT_RATIO_4)); + (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); + parentSize = $placeBoxes(sortedBoxes, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); + resizeNode_1(layoutNode, parentSize.x_0, parentSize.y_0, false, true); + break; + default:$placeBoxesGrouping(layoutNode, objSpacing, padding, expandNodes); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider', 972); +function $compare_24(this$static, child1, child2){ + var c, prio1, prio2, size1, size2; + prio1 = castTo($getProperty_0(child1, ($clinit_BoxLayouterOptions() , PRIORITY_2)), 19); + !prio1 && (prio1 = valueOf_4(0)); + prio2 = castTo($getProperty_0(child2, PRIORITY_2), 19); + !prio2 && (prio2 = valueOf_4(0)); + if (prio1.value_0 > prio2.value_0) { + return -1; + } + else if (prio1.value_0 < prio2.value_0) { + return 1; + } + else { + if (this$static.val$interactive2) { + c = compare_4(child1.y_0, child2.y_0); + if (c != 0) { + return c; + } + c = compare_4(child1.x_0, child2.x_0); + if (c != 0) { + return c; + } + } + size1 = child1.width_0 * child1.height; + size2 = child2.width_0 * child2.height; + return compare_4(size1, size2); + } +} + +function BoxLayoutProvider$1(val$interactive){ + this.val$interactive2 = val$interactive; +} + +defineClass(973, 1, $intern_88, BoxLayoutProvider$1); +_.compare_1 = function compare_82(child1, child2){ + return $compare_24(this, castTo(child1, 33), castTo(child2, 33)); +} +; +_.equals_0 = function equals_174(other){ + return this === other; +} +; +_.reversed = function reversed_74(){ + return new Comparators$ReversedComparator(this); +} +; +_.val$interactive2 = false; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/1', 973); +function $getHeight(this$static){ + if (this$static.node) { + return this$static.node.height; + } + return this$static.size_0.y_0; +} + +function $getWidth(this$static){ + if (this$static.node) { + return this$static.node.width_0; + } + return this$static.size_0.x_0; +} + +function $setHeight(this$static, h){ + var delta, g, g$iterator; + if (this$static.node) { + $setHeight_0(this$static.node, h); + } + else { + delta = h - $getHeight(this$static); + for (g$iterator = new ArrayList$1(this$static.bottom); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $setHeight(g, $getHeight(g) + delta); + } + } +} + +function $setWidth(this$static, w){ + var delta, g, g$iterator; + if (this$static.node) { + $setWidth_0(this$static.node, w); + } + else { + delta = w - $getWidth(this$static); + for (g$iterator = new ArrayList$1(this$static.right); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $setWidth(g, $getWidth(g) + delta); + } + } +} + +function $translate_1(this$static, x_0, y_0){ + var g, g$iterator; + if (this$static.node) { + $setX_2(this$static.node, this$static.node.x_0 + x_0); + $setY_3(this$static.node, this$static.node.y_0 + y_0); + } + else { + for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $translate_1(g, x_0, y_0); + } + } +} + +function $translateInnerNodes(this$static, x_0, y_0){ + var g, g$iterator; + if (this$static.node) { + translate_0(this$static.node, x_0, y_0); + } + else { + for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $translateInnerNodes(g, x_0, y_0); + } + } +} + +function BoxLayoutProvider$Group(groups){ + this.groups = (checkNotNull(groups) , new ArrayList_1(groups)); + this.bottom = new ArrayList; + this.right = new ArrayList; + this.size_0 = new KVector; +} + +function BoxLayoutProvider$Group_0(node){ + this.node = node; + $setX_2(node, 0); + $setY_3(node, 0); +} + +defineClass(157, 1, {157:1}, BoxLayoutProvider$Group, BoxLayoutProvider$Group_0); +_.toString_0 = function toString_117(){ + return this.node?$toString_23(this.node):$toString_2(this.groups); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$Group_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/Group', 157); +function $clinit_BoxLayoutProvider$PackingMode(){ + $clinit_BoxLayoutProvider$PackingMode = emptyMethod; + SIMPLE_0 = new BoxLayoutProvider$PackingMode('SIMPLE', 0); + GROUP_DEC = new BoxLayoutProvider$PackingMode('GROUP_DEC', 1); + GROUP_MIXED = new BoxLayoutProvider$PackingMode('GROUP_MIXED', 2); + GROUP_INC = new BoxLayoutProvider$PackingMode('GROUP_INC', 3); +} + +function BoxLayoutProvider$PackingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_109(name_0){ + $clinit_BoxLayoutProvider$PackingMode(); + return valueOf(($clinit_BoxLayoutProvider$PackingMode$Map() , $MAP_97), name_0); +} + +function values_115(){ + $clinit_BoxLayoutProvider$PackingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]); +} + +defineClass(311, 22, {3:1, 35:1, 22:1, 311:1}, BoxLayoutProvider$PackingMode); +var GROUP_DEC, GROUP_INC, GROUP_MIXED, SIMPLE_0; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit = createForEnum('org.eclipse.elk.core.util', 'BoxLayoutProvider/PackingMode', 311, Ljava_lang_Enum_2_classLit, values_115, valueOf_109); +function $clinit_BoxLayoutProvider$PackingMode$Map(){ + $clinit_BoxLayoutProvider$PackingMode$Map = emptyMethod; + $MAP_97 = createValueOfMap(($clinit_BoxLayoutProvider$PackingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]))); +} + +var $MAP_97; +function BoxLayoutProvider$lambda$0$Type(){ +} + +defineClass(974, 1, $intern_88, BoxLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_83(arg0, arg1){ + return lambda$0_36(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_175(other){ + return this === other; +} +; +_.reversed = function reversed_75(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$0$Type', 974); +function BoxLayoutProvider$lambda$1$Type(){ +} + +defineClass(975, 1, $intern_88, BoxLayoutProvider$lambda$1$Type); +_.compare_1 = function compare_84(arg0, arg1){ + return lambda$1_20(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_176(other){ + return this === other; +} +; +_.reversed = function reversed_76(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$1$Type', 975); +function BoxLayoutProvider$lambda$2$Type(){ +} + +defineClass(976, 1, $intern_88, BoxLayoutProvider$lambda$2$Type); +_.compare_1 = function compare_85(arg0, arg1){ + return lambda$2_10(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_177(other){ + return this === other; +} +; +_.reversed = function reversed_77(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$2$Type', 976); +function ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type(){ +} + +defineClass(1365, 1, {831:1}, ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type); +_.accept_4 = function accept_144(arg0, arg1){ + return $clinit_ElkSpacings$AbstractSpacingsBuilder() , !instanceOf(arg1, 160) || $accept_5(($clinit_LayoutConfigurator() , OPTION_TARGET_FILTER , castTo(arg0, 160)), arg1); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type', 1365); +function ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1366, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type); +_.accept = function accept_145(arg0){ + $lambda$1_1(this.$$outer_0, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type', 1366); +function ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type(){ +} + +defineClass(1367, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type); +_.accept = function accept_146(arg0){ + castTo(arg0, 94); + $clinit_ElkSpacings$AbstractSpacingsBuilder(); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type', 1367); +function ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1371, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type); +_.accept = function accept_147(arg0){ + $lambda$3_0(this.$$outer_0, castTo(arg0, 94)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type', 1371); +function ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1369, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type); +_.test_0 = function test_109(arg0){ + return $lambda$4_1(this.$$outer_0, this.element_1, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type', 1369); +function ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_0, p_1){ + this.element_0 = element_0; + this.p_1 = p_1; +} + +defineClass(1368, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type); +_.test_0 = function test_110(arg0){ + return lambda$5_3(this.element_0, this.p_1, castTo(arg0, 831)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type', 1368); +function ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1370, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type); +_.accept = function accept_148(arg0){ + $lambda$6(this.$$outer_0, this.element_1, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type', 1370); +function applyConfiguredNodeScaling(node){ + var anchor, portLabels, scalingFactor, shape_0, shape$iterator; + scalingFactor = $doubleValue(castToDouble($getProperty_0(node, ($clinit_CoreOptions() , SCALE_FACTOR)))); + if (scalingFactor == 1) { + return; + } + $setDimensions_0(node, scalingFactor * node.width_0, scalingFactor * node.height); + portLabels = concat_0(transform_1((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), new ElkUtil$lambda$0$Type)); + for (shape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels), (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), portLabels]))); $hasNext_1(shape$iterator);) { + shape_0 = castTo($next_0(shape$iterator), 470); + shape_0.setLocation(scalingFactor * shape_0.getX(), scalingFactor * shape_0.getY()); + shape_0.setDimensions(scalingFactor * shape_0.getWidth(), scalingFactor * shape_0.getHeight()); + anchor = castTo(shape_0.getProperty(PORT_ANCHOR_0), 8); + if (anchor) { + anchor.x_0 *= scalingFactor; + anchor.y_0 *= scalingFactor; + } + } +} + +function applyVectorChain(vectorChain, section){ + var bendpoint, elkBendPoint, firstPoint, lastPoint, newPointIter, nextPoint, oldPointIter; + if (vectorChain.size_0 < 2) { + throw toJs(new IllegalArgumentException_0('The vector chain must contain at least a source and a target point.')); + } + firstPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.header.next_0.value_0, 8)); + $setStartLocation(section, firstPoint.x_0, firstPoint.y_0); + oldPointIter = new AbstractEList$EListIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); + newPointIter = $listIterator_2(vectorChain, 1); + while (newPointIter.currentIndex < vectorChain.size_0 - 1) { + nextPoint = castTo($next_10(newPointIter), 8); + if (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + bendpoint = castTo($doNext(oldPointIter), 469); + } + else { + bendpoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $doAdd_0(oldPointIter, bendpoint); + } + $set_10(bendpoint, nextPoint.x_0, nextPoint.y_0); + } + while (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + $doNext(oldPointIter); + $remove_36(oldPointIter); + } + lastPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.tail.prev.value_0, 8)); + $setEndLocation(section, lastPoint.x_0, lastPoint.y_0); +} + +function applyVisitors(graph, visitors){ + var allElements, graphElement, i, nextElement; + allElements = new ElkGraphUtil$PropertiesSkippingTreeIterator(graph); + while (allElements.data_0 == null && !allElements.includeRoot?$hasAnyChildren(allElements):allElements.data_0 == null || allElements.size_0 != 0 && castTo(allElements.data_0[allElements.size_0 - 1], 47).hasNext_0()) { + nextElement = castTo($next_14(allElements), 56); + if (instanceOf(nextElement, 160)) { + graphElement = castTo(nextElement, 160); + for (i = 0; i < visitors.length; i++) { + visitors[i].visit(graphElement); + } + } + } +} + +function calcPortOffset_0(port, side){ + var node; + if (!$getParent_3(port)) { + throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); + } + node = $getParent_3(port); + switch (side.ordinal) { + case 1: + return -(port.y_0 + port.height); + case 2: + return port.x_0 - node.width_0; + case 3: + return port.y_0 - node.height; + case 4: + return -(port.x_0 + port.width_0); + } + return 0; +} + +function calcPortSide_0(port, direction){ + var heightPercent, node, nodeHeight, nodeWidth, widthPercent, xpos, ypos; + if (!$getParent_3(port)) { + throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); + } + node = $getParent_3(port); + nodeWidth = node.width_0; + nodeHeight = node.height; + if (nodeWidth <= 0 && nodeHeight <= 0) { + return $clinit_PortSide() , UNDEFINED_5; + } + xpos = port.x_0; + ypos = port.y_0; + switch (direction.ordinal) { + case 2: + case 1: + if (xpos < 0) { + return $clinit_PortSide() , WEST_2; + } + else if (xpos + port.width_0 > nodeWidth) { + return $clinit_PortSide() , EAST_2; + } + + break; + case 4: + case 3: + if (ypos < 0) { + return $clinit_PortSide() , NORTH_3; + } + else if (ypos + port.height > nodeHeight) { + return $clinit_PortSide() , SOUTH_2; + } + + } + widthPercent = (xpos + port.width_0 / 2) / nodeWidth; + heightPercent = (ypos + port.height / 2) / nodeHeight; + return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); +} + +function computeInsidePart(labelPosition, labelSize, portSize, portBorderOffset, portSide){ + var insidePart; + insidePart = 0; + switch (portSide.ordinal) { + case 1: + insidePart = $wnd.Math.max(0, labelSize.y_0 + labelPosition.y_0 - (portSize.y_0 + portBorderOffset)); + break; + case 3: + insidePart = $wnd.Math.max(0, -labelPosition.y_0 - portBorderOffset); + break; + case 2: + insidePart = $wnd.Math.max(0, -labelPosition.x_0 - portBorderOffset); + break; + case 4: + insidePart = $wnd.Math.max(0, labelSize.x_0 + labelPosition.x_0 - (portSize.x_0 + portBorderOffset)); + } + return insidePart; +} + +function computeInsidePart_0(port, portBorderOffset){ + var labelBounds; + labelBounds = getLabelsBounds(port); + return computeInsidePart(new KVector_1(labelBounds.x_0, labelBounds.y_0), new KVector_1(labelBounds.width_0, labelBounds.height), port.getSize(), portBorderOffset, port.getSide()); +} + +function createVectorChain(edgeSection){ + var bendPoint, bendPoint$iterator, chain; + chain = new KVectorChain; + $add_7(chain, new KVector_1(edgeSection.startX, edgeSection.startY)); + for (bendPoint$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 469); + $add_7(chain, new KVector_1(bendPoint.x_0, bendPoint.y_0)); + } + $add_7(chain, new KVector_1(edgeSection.endX, edgeSection.endY)); + return chain; +} + +function determineJunctionPoints(edge){ + var junctionPoints; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { + throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); + } + junctionPoints = new KVectorChain; + !!connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)), false)); + !!connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)), true)); + return junctionPoints; +} + +function determineJunctionPoints_0(edge, port, reverse){ + var allConnectedSections, allSectIter, dx2, dx3, dy2, dy3, i, junctionPoints, offset, offsetMap, otherEdge, otherEdge$iterator, otherPoints, otherSection, p1, p2, p3, pointsMap, section, sectionPoints; + section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + junctionPoints = new KVectorChain; + pointsMap = new HashMap; + sectionPoints = getPoints(section); + $put_9(pointsMap.hashCodeMap, section, sectionPoints); + offsetMap = new HashMap; + allConnectedSections = new LinkedList; + for (otherEdge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges), (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)]))); $hasNext_1(otherEdge$iterator);) { + otherEdge = castTo($next_0(otherEdge$iterator), 79); + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { + throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); + } + if (otherEdge != edge) { + otherSection = castTo($get_20((!otherEdge.sections && (otherEdge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, otherEdge, 6, 6)) , otherEdge.sections), 0), 202); + $addNode_0(allConnectedSections, otherSection, allConnectedSections.tail.prev, allConnectedSections.tail); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); + if (!otherPoints) { + otherPoints = getPoints(otherSection); + $put_9(pointsMap.hashCodeMap, otherSection, otherPoints); + } + offset = reverse?$sub_0(new KVector_2(castTo($get_11(sectionPoints, sectionPoints.array.length - 1), 8)), castTo($get_11(otherPoints, otherPoints.array.length - 1), 8)):$sub_0(new KVector_2((checkCriticalElementIndex(0, sectionPoints.array.length) , castTo(sectionPoints.array[0], 8))), (checkCriticalElementIndex(0, otherPoints.array.length) , castTo(otherPoints.array[0], 8))); + $put_9(offsetMap.hashCodeMap, otherSection, offset); + } + } + if (allConnectedSections.size_0 != 0) { + p1 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1:0), 8); + for (i = 1; i < sectionPoints.array.length; i++) { + p2 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1 - i:i), 8); + allSectIter = $listIterator_2(allConnectedSections, 0); + while (allSectIter.currentNode != allSectIter.this$01.tail) { + otherSection = castTo($next_10(allSectIter), 202); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); + if (otherPoints.array.length <= i) { + $remove_24(allSectIter); + } + else { + p3 = $add_19(new KVector_2(castTo($get_11(otherPoints, reverse?otherPoints.array.length - 1 - i:i), 8)), castTo(getEntryValueOrNull($getEntry_0(offsetMap.hashCodeMap, otherSection)), 8)); + if (p2.x_0 != p3.x_0 || p2.y_0 != p3.y_0) { + dx2 = p2.x_0 - p1.x_0; + dy2 = p2.y_0 - p1.y_0; + dx3 = p3.x_0 - p1.x_0; + dy3 = p3.y_0 - p1.y_0; + dx3 * dy2 == dy3 * dx2 && (dx2 == 0 || isNaN(dx2)?dx2:dx2 < 0?-1:1) == (dx3 == 0 || isNaN(dx3)?dx3:dx3 < 0?-1:1) && (dy2 == 0 || isNaN(dy2)?dy2:dy2 < 0?-1:1) == (dy3 == 0 || isNaN(dy3)?dy3:dy3 < 0?-1:1)?($wnd.Math.abs(dx2) < $wnd.Math.abs(dx3) || $wnd.Math.abs(dy2) < $wnd.Math.abs(dy3)) && ($addNode_0(junctionPoints, p2, junctionPoints.tail.prev, junctionPoints.tail) , true):i > 1 && ($addNode_0(junctionPoints, p1, junctionPoints.tail.prev, junctionPoints.tail) , true); + $remove_24(allSectIter); + } + } + } + p1 = p2; + } + } + return junctionPoints; +} + +function effectiveMinSizeConstraintFor(node){ + var minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + sizeOptions = castTo($getProperty_0(node, NODE_SIZE_OPTIONS_6), 21); + minSize = new KVector_2(castTo($getProperty_0(node, NODE_SIZE_MINIMUM_5), 8)); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + return minSize; + } + else { + return new KVector; + } +} + +function getLabelsBounds(port){ + var bounds, currentLabelBounds, label_0, label$iterator; + bounds = null; + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + currentLabelBounds = new ElkRectangle_0(label_0.getPosition().x_0, label_0.getPosition().y_0, label_0.getSize().x_0, label_0.getSize().y_0); + !bounds?(bounds = currentLabelBounds):$union(bounds, currentLabelBounds); + } + !bounds && (bounds = new ElkRectangle); + return bounds; +} + +function getPoints(section){ + var i, n, p1, p2, p3, points; + n = (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints).size_0 + 2; + points = new ArrayList_0(n); + $add_3(points, new KVector_1(section.startX, section.startY)); + $forEach_3(new StreamImpl(null, (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , new Spliterators$IteratorSpliterator(section.bendPoints, 16))), new ElkUtil$lambda$4$Type(points)); + $add_3(points, new KVector_1(section.endX, section.endY)); + i = 1; + while (i < points.array.length - 1) { + p1 = (checkCriticalElementIndex(i - 1, points.array.length) , castTo(points.array[i - 1], 8)); + p2 = (checkCriticalElementIndex(i, points.array.length) , castTo(points.array[i], 8)); + p3 = (checkCriticalElementIndex(i + 1, points.array.length) , castTo(points.array[i + 1], 8)); + p1.x_0 == p2.x_0 && p2.x_0 == p3.x_0 || p1.y_0 == p2.y_0 && p2.y_0 == p3.y_0?$remove_11(points, i):++i; + } + return points; +} + +function lambda$1_21(xoffset_0, yoffset_2, edge_2){ + var junctionPoints; + $forEach_3(new StreamImpl(null, (!edge_2.sections && (edge_2.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge_2, 6, 6)) , new Spliterators$IteratorSpliterator(edge_2.sections, 16))), new ElkUtil$lambda$2$Type(xoffset_0, yoffset_2)); + $forEach_3(new StreamImpl(null, (!edge_2.labels && (edge_2.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge_2, 1, 7)) , new Spliterators$IteratorSpliterator(edge_2.labels, 16))), new ElkUtil$lambda$3$Type(xoffset_0, yoffset_2)); + junctionPoints = castTo($getProperty_0(edge_2, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74); + !!junctionPoints && $offset_1(junctionPoints, xoffset_0, yoffset_2); +} + +function lambda$2_11(xoffset_0, yoffset_2, s_2){ + translate(s_2, xoffset_0, yoffset_2); +} + +function lambda$3_7(xoffset_0, yoffset_2, label_2){ + $setLocation_1(label_2, label_2.x_0 + xoffset_0, label_2.y_0 + yoffset_2); +} + +function lambda$4_8(points_0, bendPoint_1){ + return $add_3(points_0, new KVector_1(bendPoint_1.x_0, bendPoint_1.y_0)); +} + +function printElementPath(element, builder){ + var className, edge, identifier, label_0, label$iterator, sourceIter, targetIter, text_0; + if (instanceOf(element.eContainer_0(), 160)) { + printElementPath(castTo(element.eContainer_0(), 160), builder); + builder.string += ' > '; + } + else { + builder.string += 'Root '; + } + className = element.eClass_0().name_0; + $equals_5(className.substr(0, 3), 'Elk')?$append_11(builder, className.substr(3)):(builder.string += '' + className , builder); + identifier = element.getIdentifier(); + if (identifier) { + $append_11((builder.string += ' ' , builder), identifier); + return; + } + if (instanceOf(element, 354)) { + text_0 = castTo(element, 137).text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + for (label$iterator = new AbstractEList$EIterator(element.getLabels_0()); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + text_0 = label_0.text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + if (instanceOf(element, 352)) { + edge = castTo(element, 79); + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0)) { + builder.string += ' ('; + sourceIter = new AbstractEList$EListIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); + while (sourceIter.cursor != sourceIter.this$01_2.size_1()) { + sourceIter.cursor > 0 && (builder.string += ', ' , builder); + printElementPath(castTo($doNext(sourceIter), 160), builder); + } + builder.string += ' -> '; + targetIter = new AbstractEList$EListIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); + while (targetIter.cursor != targetIter.this$01_2.size_1()) { + targetIter.cursor > 0 && (builder.string += ', ' , builder); + printElementPath(castTo($doNext(targetIter), 160), builder); + } + builder.string += ')'; + } + } +} + +function resizeNode_0(node){ + var direction, minEast, minNorth, minSouth, minWest, newHeight, newWidth, port, port$iterator, portConstraints, portSide, sizeConstraint; + sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + if (sizeConstraint.isEmpty()) { + return null; + } + newWidth = 0; + newHeight = 0; + if (sizeConstraint.contains(($clinit_SizeConstraint() , PORTS_0))) { + portConstraints = castTo($getProperty_0(node, PORT_CONSTRAINTS_1), 98); + minNorth = 2; + minEast = 2; + minSouth = 2; + minWest = 2; + direction = !$getParent_2(node)?castTo($getProperty_0(node, DIRECTION_0), 103):castTo($getProperty_0($getParent_2(node), DIRECTION_0), 103); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(port, direction); + $setProperty_1(port, PORT_SIDE_0, portSide); + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_POS)) { + switch (portSide.ordinal) { + case 1: + minNorth = $wnd.Math.max(minNorth, port.x_0 + port.width_0); + break; + case 2: + minEast = $wnd.Math.max(minEast, port.y_0 + port.height); + break; + case 3: + minSouth = $wnd.Math.max(minSouth, port.x_0 + port.width_0); + break; + case 4: + minWest = $wnd.Math.max(minWest, port.y_0 + port.height); + } + } + else { + switch (portSide.ordinal) { + case 1: + minNorth += port.width_0 + 2; + break; + case 2: + minEast += port.height + 2; + break; + case 3: + minSouth += port.width_0 + 2; + break; + case 4: + minWest += port.height + 2; + } + } + } + newWidth = $wnd.Math.max(minNorth, minSouth); + newHeight = $wnd.Math.max(minEast, minWest); + } + return resizeNode_1(node, newWidth, newHeight, true, true); +} + +function resizeNode_1(node, newWidth, newHeight, movePorts, moveLabels){ + var all, direction, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, newSize, oldSize, port, port$iterator, portSide, widthDiff, widthPercent, widthRatio; + oldSize = new KVector_1(node.width_0, node.height); + newSize = effectiveMinSizeConstraintFor(node); + newSize.x_0 = $wnd.Math.max(newSize.x_0, newWidth); + newSize.y_0 = $wnd.Math.max(newSize.y_0, newHeight); + widthRatio = newSize.x_0 / oldSize.x_0; + heightRatio = newSize.y_0 / oldSize.y_0; + widthDiff = newSize.x_0 - oldSize.x_0; + heightDiff = newSize.y_0 - oldSize.y_0; + if (movePorts) { + direction = !$getParent_2(node)?castTo($getProperty_0(node, ($clinit_CoreOptions() , DIRECTION_0)), 103):castTo($getProperty_0($getParent_2(node), ($clinit_CoreOptions() , DIRECTION_0)), 103); + fixedPorts = maskUndefined($getProperty_0(node, ($clinit_CoreOptions() , PORT_CONSTRAINTS_1))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(port, direction); + $setProperty_1(port, PORT_SIDE_0, portSide); + } + switch (portSide.ordinal) { + case 1: + fixedPorts || $setX_2(port, port.x_0 * widthRatio); + break; + case 2: + $setX_2(port, port.x_0 + widthDiff); + fixedPorts || $setY_3(port, port.y_0 * heightRatio); + break; + case 3: + fixedPorts || $setX_2(port, port.x_0 * widthRatio); + $setY_3(port, port.y_0 + heightDiff); + break; + case 4: + fixedPorts || $setY_3(port, port.y_0 * heightRatio); + } + } + } + $setDimensions_0(node, newSize.x_0, newSize.y_0); + if (moveLabels) { + for (label$iterator = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + midx = label_0.x_0 + label_0.width_0 / 2; + midy = label_0.y_0 + label_0.height / 2; + widthPercent = midx / oldSize.x_0; + heightPercent = midy / oldSize.y_0; + if (widthPercent + heightPercent >= 1) { + if (widthPercent - heightPercent > 0 && midy >= 0) { + $setX_2(label_0, label_0.x_0 + widthDiff); + $setY_3(label_0, label_0.y_0 + heightDiff * heightPercent); + } + else if (widthPercent - heightPercent < 0 && midx >= 0) { + $setX_2(label_0, label_0.x_0 + widthDiff * widthPercent); + $setY_3(label_0, label_0.y_0 + heightDiff); + } + } + } + } + $setProperty_1(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + return new KVector_1(widthRatio, heightRatio); +} + +function toAbsolute(point, parent_0){ + var node; + node = parent_0; + while (node) { + $add_18(point, node.x_0, node.y_0); + node = $getParent_2(node); + } + return point; +} + +function toRelative(point, parent_0){ + var node; + node = parent_0; + while (node) { + $add_18(point, -node.x_0, -node.y_0); + node = $getParent_2(node); + } + return point; +} + +function translate(section, xoffset, yoffset){ + var bendPoint, bendPoint$iterator; + $setStartLocation(section, section.startX + xoffset, section.startY + yoffset); + for (bendPoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 469); + $set_10(bendPoint, bendPoint.x_0 + xoffset, bendPoint.y_0 + yoffset); + } + $setEndLocation(section, section.endX + xoffset, section.endY + yoffset); +} + +function translate_0(parent_0, xoffset, yoffset){ + var child, child$iterator; + for (child$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + $setLocation_1(child, child.x_0 + xoffset, child.y_0 + yoffset); + } + $forEach_0((!parent_0.containedEdges && (parent_0.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, parent_0, 12, 3)) , parent_0.containedEdges), new ElkUtil$lambda$1$Type(xoffset, yoffset)); +} + +function translate_1(parent_0, newSize, oldSize){ + var contentAlignment, xTranslate, yTranslate; + contentAlignment = castTo($getProperty_0(parent_0, ($clinit_CoreOptions() , CONTENT_ALIGNMENT_2)), 21); + xTranslate = 0; + yTranslate = 0; + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(xTranslate = (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (xTranslate = newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(yTranslate = (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (yTranslate = newSize.y_0 - oldSize.y_0)); + translate_0(parent_0, xTranslate, yTranslate); +} + +function $apply_27(arg0){ + return $getLabels_1(castTo(arg0, 118)); +} + +function ElkUtil$lambda$0$Type(){ +} + +defineClass(935, 1, {}, ElkUtil$lambda$0$Type); +_.apply_0 = function apply_171(arg0){ + return $apply_27(arg0); +} +; +_.equals_0 = function equals_178(other){ + return this === other; +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$0$Type', 935); +function ElkUtil$lambda$1$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(936, 1, $intern_19, ElkUtil$lambda$1$Type); +_.accept = function accept_149(arg0){ + lambda$1_21(this.xoffset_0, this.yoffset_2, castTo(arg0, 79)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$1$Type', 936); +function ElkUtil$lambda$2$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(937, 1, $intern_19, ElkUtil$lambda$2$Type); +_.accept = function accept_150(arg0){ + lambda$2_11(this.xoffset_0, this.yoffset_2, castTo(arg0, 202)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$2$Type', 937); +function ElkUtil$lambda$3$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(938, 1, $intern_19, ElkUtil$lambda$3$Type); +_.accept = function accept_151(arg0){ + lambda$3_7(this.xoffset_0, this.yoffset_2, castTo(arg0, 137)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$3$Type', 938); +function ElkUtil$lambda$4$Type(points_0){ + this.points_0 = points_0; +} + +defineClass(939, 1, $intern_19, ElkUtil$lambda$4$Type); +_.accept = function accept_152(arg0){ + lambda$4_8(this.points_0, castTo(arg0, 469)); +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$4$Type', 939); +function $compareTo_20(this$static, x_0){ + return this$static.exclusiveLowerBound < doubleValue__D__devirtual$(x_0)?-1:1; +} + +function ExclusiveBounds$ExclusiveLowerBound(){ + this.exclusiveLowerBound = 0; +} + +defineClass(342, 1, {35:1, 342:1}, ExclusiveBounds$ExclusiveLowerBound); +_.compareTo_0 = function compareTo_21(x_0){ + return $compareTo_20(this, castTo(x_0, 236)); +} +; +_.equals_0 = function equals_179(obj){ + var other; + if (instanceOf(obj, 342)) { + other = castTo(obj, 342); + return this.exclusiveLowerBound == other.exclusiveLowerBound; + } + return false; +} +; +_.hashCode_1 = function hashCode_69(){ + return round_int(this.exclusiveLowerBound); +} +; +_.toString_0 = function toString_118(){ + return this.exclusiveLowerBound + ' (exclusive)'; +} +; +_.exclusiveLowerBound = 0; +var Lorg_eclipse_elk_core_util_ExclusiveBounds$ExclusiveLowerBound_2_classLit = createForClass('org.eclipse.elk.core.util', 'ExclusiveBounds/ExclusiveLowerBound', 342); +function $processEdge(edge){ + var bendPoints, edgeSection, edgeSection$iterator, elkEdgeSection, label_0, label$iterator, maxv, point, point$iterator, pos, sameHierarchy, sections, sourceParent, targetParent; + sourceParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); + targetParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))); + sameHierarchy = sourceParent == targetParent; + maxv = new KVector; + bendPoints = castTo($getProperty_0(edge, ($clinit_FixedLayouterOptions() , BEND_POINTS_0)), 74); + if (!!bendPoints && bendPoints.size_0 >= 2) { + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + edgeSection = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection); + } + else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { + sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + while (sections.cursor != sections.this$01_2.size_1()) { + $remove_36(sections); + } + } + applyVectorChain(bendPoints, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202)); + } + if (sameHierarchy) { + for (edgeSection$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); edgeSection$iterator.cursor != edgeSection$iterator.this$01_2.size_1();) { + edgeSection = castTo($doNext(edgeSection$iterator), 202); + for (point$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); point$iterator.cursor != point$iterator.this$01_2.size_1();) { + point = castTo($doNext(point$iterator), 469); + maxv.x_0 = $wnd.Math.max(maxv.x_0, point.x_0); + maxv.y_0 = $wnd.Math.max(maxv.y_0, point.y_0); + } + } + } + for (label$iterator = new AbstractEList$EIterator((!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + if (sameHierarchy) { + maxv.x_0 = $wnd.Math.max(maxv.x_0, label_0.x_0 + label_0.width_0); + maxv.y_0 = $wnd.Math.max(maxv.y_0, label_0.y_0 + label_0.height); + } + } + return maxv; +} + +function FixedLayoutProvider(){ +} + +defineClass(1138, 209, $intern_96, FixedLayoutProvider); +_.layout = function layout_9(layoutNode, progressMonitor){ + var edge, edge$iterator, edge$iterator0, edgeRouting, junctionPoints, label_0, label$iterator, label$iterator0, maxv, maxx, maxy, minSize, newHeight, newWidth, node, node$iterator, node$iterator0, padding, port, port$iterator, portx, porty, pos; + $begin(progressMonitor, 'Fixed Layout', 1); + edgeRouting = castTo($getProperty_0(layoutNode, ($clinit_CoreOptions() , EDGE_ROUTING_0)), 218); + maxx = 0; + maxy = 0; + for (node$iterator0 = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 33); + pos = castTo($getProperty_0(node, ($clinit_FixedLayouterOptions() , POSITION_3)), 8); + if (pos) { + $setLocation_1(node, pos.x_0, pos.y_0); + if (castTo($getProperty_0(node, NODE_SIZE_CONSTRAINTS_7), 174).contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty_0(node, NODE_SIZE_MINIMUM_6), 8); + minSize.x_0 > 0 && minSize.y_0 > 0 && resizeNode_1(node, minSize.x_0, minSize.y_0, true, true); + } + } + maxx = $wnd.Math.max(maxx, node.x_0 + node.width_0); + maxy = $wnd.Math.max(maxy, node.y_0 + node.height); + for (label$iterator0 = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator0), 137); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + maxx = $wnd.Math.max(maxx, node.x_0 + label_0.x_0 + label_0.width_0); + maxy = $wnd.Math.max(maxy, node.y_0 + label_0.y_0 + label_0.height); + } + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + pos = castTo($getProperty_0(port, POSITION_3), 8); + !!pos && $setLocation_1(port, pos.x_0, pos.y_0); + portx = node.x_0 + port.x_0; + porty = node.y_0 + port.y_0; + maxx = $wnd.Math.max(maxx, portx + port.width_0); + maxy = $wnd.Math.max(maxy, porty + port.height); + for (label$iterator = new AbstractEList$EIterator((!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + maxx = $wnd.Math.max(maxx, portx + label_0.x_0 + label_0.width_0); + maxy = $wnd.Math.max(maxy, porty + label_0.y_0 + label_0.height); + } + } + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 79); + maxv = $processEdge(edge); + maxx = $wnd.Math.max(maxx, maxv.x_0); + maxy = $wnd.Math.max(maxy, maxv.y_0); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + if ($getParent_2(getSourceNode(edge)) != layoutNode) { + maxv = $processEdge(edge); + maxx = $wnd.Math.max(maxx, maxv.x_0); + maxy = $wnd.Math.max(maxy, maxv.y_0); + } + } + } + if (edgeRouting == ($clinit_EdgeRouting() , ORTHOGONAL)) { + for (node$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + junctionPoints = determineJunctionPoints(edge); + junctionPoints.size_0 == 0?$setProperty_1(edge, JUNCTION_POINTS_0, null):$setProperty_1(edge, JUNCTION_POINTS_0, junctionPoints); + } + } + } + if (!$booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_FixedLayouterOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_1))))) { + padding = castTo($getProperty_0(layoutNode, PADDING_7), 116); + newWidth = maxx + padding.left + padding.right; + newHeight = maxy + padding.top_0 + padding.bottom; + resizeNode_1(layoutNode, newWidth, newHeight, true, true); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_FixedLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'FixedLayoutProvider', 1138); +function IndividualSpacings(){ +} + +function IndividualSpacings_0(other){ + (!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).putAll(!other.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):other.propertyMap); +} + +function getIndividualOrInherited_0(node, property){ + var individualSpacings, result; + result = null; + if (node.hasProperty(($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { + individualSpacings = castTo(node.getProperty(SPACING_INDIVIDUAL_0), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && !!node.getGraph() && (result = node.getGraph().getProperty(property)); + result == null && (result = $getDefault(property)); + return result; +} + +function lambda$0_37(entry_0){ + return castTo(entry_0.getKey(), 146).getId() + ':' + toString_40(entry_0.getValue()); +} + +defineClass(373, 134, {3:1, 414:1, 373:1, 94:1, 134:1}, IndividualSpacings, IndividualSpacings_0); +_.parse_0 = function parse_3(string){ + var e, option, optionData, optionString, optionString$array, optionString$index, optionString$max, options, value_0; + if (!string) { + return; + } + try { + options = $split_0(string, ';,;'); + for (optionString$array = options , optionString$index = 0 , optionString$max = optionString$array.length; optionString$index < optionString$max; ++optionString$index) { + optionString = optionString$array[optionString$index]; + option = $split_0(optionString, '\\:'); + optionData = $getOptionDataBySuffix(getInstance(), option[0]); + if (!optionData) { + throw toJs(new IllegalArgumentException_0('Invalid option id: ' + option[0])); + } + value_0 = $parseValue(optionData, option[1]); + if (value_0 == null) { + throw toJs(new IllegalArgumentException_0('Invalid option value: ' + option[1])); + } + value_0 == null?(!this.propertyMap && (this.propertyMap = new HashMap) , $remove_6(this.propertyMap, optionData)):(!this.propertyMap && (this.propertyMap = new HashMap) , $put_6(this.propertyMap, optionData, value_0)); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + e = $e0; + throw toJs(new IllegalArgumentException_1(e)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_119(){ + var serialized; + serialized = castToString($collect_1($map_0((!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).entrySet_0().stream(), new IndividualSpacings$lambda$0$Type), of_3(new Collectors$lambda$15$Type, new Collectors$9methodref$add$Type, new Collectors$10methodref$merge$Type, new Collectors$11methodref$toString$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])))); + return serialized; +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings', 373); +function IndividualSpacings$lambda$0$Type(){ +} + +defineClass(971, 1, {}, IndividualSpacings$lambda$0$Type); +_.apply_0 = function apply_172(arg0){ + return lambda$0_37(castTo(arg0, 42)); +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings/lambda$0$Type', 971); +function $fetch(this$static){ + if (this$static.instances.size_0 == 0) { + return this$static.factory.create_0(); + } + return $removeFirst_0(this$static.instances); +} + +function $release(this$static, obj){ + this$static.limit < 0 || this$static.instances.size_0 < this$static.limit?$addLast_0(this$static.instances, obj):this$static.factory.destroy(obj); +} + +function InstancePool(thefactory){ + this.instances = new LinkedList; + this.factory = thefactory; + this.limit = -1; +} + +defineClass(709, 1, {}, InstancePool); +_.limit = 0; +var Lorg_eclipse_elk_core_util_InstancePool_2_classLit = createForClass('org.eclipse.elk.core.util', 'InstancePool', 709); +function LoggedGraph(){ +} + +defineClass(1275, 1, {}, LoggedGraph); +var Lorg_eclipse_elk_core_util_LoggedGraph_2_classLit = createForClass('org.eclipse.elk.core.util', 'LoggedGraph', 1275); +function $clinit_LoggedGraph$Type(){ + $clinit_LoggedGraph$Type = emptyMethod; + ELK = new LoggedGraph$Type('ELK', 0); + JSON_0 = new LoggedGraph$Type('JSON', 1); + DOT = new LoggedGraph$Type('DOT', 2); + SVG = new LoggedGraph$Type('SVG', 3); +} + +function LoggedGraph$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_110(name_0){ + $clinit_LoggedGraph$Type(); + return valueOf(($clinit_LoggedGraph$Type$Map() , $MAP_98), name_0); +} + +function values_116(){ + $clinit_LoggedGraph$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]); +} + +defineClass(396, 22, {3:1, 35:1, 22:1, 396:1}, LoggedGraph$Type); +var DOT, ELK, JSON_0, SVG; +var Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit = createForEnum('org.eclipse.elk.core.util', 'LoggedGraph/Type', 396, Ljava_lang_Enum_2_classLit, values_116, valueOf_110); +function $clinit_LoggedGraph$Type$Map(){ + $clinit_LoggedGraph$Type$Map = emptyMethod; + $MAP_98 = createValueOfMap(($clinit_LoggedGraph$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]))); +} + +var $MAP_98; +function Pair(thefirst, thesecond){ + this.first = thefirst; + this.second = thesecond; +} + +defineClass(46, 1, {20:1, 46:1}, Pair); +_.forEach_0 = function forEach_36(action){ + $forEach_0(this, action); +} +; +_.equals_0 = function equals_180(obj){ + var firstEqual, other, secondEqual; + if (instanceOf(obj, 46)) { + other = castTo(obj, 46); + firstEqual = this.first == null?other.first == null:equals_Ljava_lang_Object__Z__devirtual$(this.first, other.first); + secondEqual = this.second == null?other.second == null:equals_Ljava_lang_Object__Z__devirtual$(this.second, other.second); + return firstEqual && secondEqual; + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_70(){ + var first1, first2, firstCode, second1, second2, secondCode; + firstCode = this.first == null?0:hashCode__I__devirtual$(this.first); + first1 = firstCode & $intern_46; + first2 = firstCode & -65536; + secondCode = this.second == null?0:hashCode__I__devirtual$(this.second); + second1 = secondCode & $intern_46; + second2 = secondCode & -65536; + return first1 ^ second2 >> 16 & $intern_46 | first2 ^ second1 << 16; +} +; +_.iterator_0 = function iterator_78(){ + return new Pair$1(this); +} +; +_.toString_0 = function toString_120(){ + return this.first == null && this.second == null?'pair(null,null)':this.first == null?'pair(null,' + toString_40(this.second) + ')':this.second == null?'pair(' + toString_40(this.first) + ',null)':'pair(' + toString_40(this.first) + ',' + toString_40(this.second) + ')'; +} +; +var Lorg_eclipse_elk_core_util_Pair_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair', 46); +function Pair$1(this$0){ + this.this$01 = this$0; +} + +defineClass(983, 1, $intern_6, Pair$1); +_.forEachRemaining = function forEachRemaining_51(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_40(){ + return !this.visitedSecond && (!this.visitedFirst && this.this$01.first != null || this.this$01.second != null); +} +; +_.next_1 = function next_41(){ + if (!this.visitedSecond && !this.visitedFirst && this.this$01.first != null) { + this.visitedFirst = true; + return this.this$01.first; + } + else if (!this.visitedSecond && this.this$01.second != null) { + this.visitedSecond = true; + return this.this$01.second; + } + throw toJs(new NoSuchElementException); +} +; +_.remove = function remove_96(){ + this.visitedSecond && this.this$01.second != null?(this.this$01.second = null):this.visitedFirst && this.this$01.first != null && (this.this$01.first = null); + throw toJs(new IllegalStateException); +} +; +_.visitedFirst = false; +_.visitedSecond = false; +var Lorg_eclipse_elk_core_util_Pair$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair/1', 983); +function Quadruple(a, b, c, d){ + this.first = a; + this.second = b; + this.third = c; + this.fourth = d; +} + +defineClass(448, 1, {448:1}, Quadruple); +_.equals_0 = function equals_181(obj){ + return equals_57(this.first, castTo(obj, 448).first) && equals_57(this.second, castTo(obj, 448).second) && equals_57(this.third, castTo(obj, 448).third) && equals_57(this.fourth, castTo(obj, 448).fourth); +} +; +_.hashCode_1 = function hashCode_71(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.first, this.second, this.third, this.fourth])); +} +; +_.toString_0 = function toString_121(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ', ' + this.fourth + ')'; +} +; +var Lorg_eclipse_elk_core_util_Quadruple_2_classLit = createForClass('org.eclipse.elk.core.util', 'Quadruple', 448); +function $randomize(edge, random, drawWidth, drawHeight){ + var bendPoint, bendsNum, edgeSection, edgeSection0, elkBendPoint, elkEdgeSection, i, maxRand, randx, randy, sections, sourceHeight, sourcePX, sourcePY, sourcePort, sourceShape, sourceWidth, sourceX, sourceY, targetHeight, targetPX, targetPY, targetPort, targetShape, targetWidth, targetX, targetY, totalDist, x_0, xdiff, xincr, y_0, ydiff, yincr; + sourceShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); + sourceX = sourceShape.getX(); + sourceY = sourceShape.getY(); + sourceWidth = sourceShape.getWidth() / 2; + sourceHeight = sourceShape.getHeight() / 2; + if (instanceOf(sourceShape, 186)) { + sourcePort = castTo(sourceShape, 118); + sourceX += $getParent_3(sourcePort).x_0; + sourceX += $getParent_3(sourcePort).x_0; + } + sourceX += sourceWidth; + sourceY += sourceHeight; + targetShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); + targetX = targetShape.getX(); + targetY = targetShape.getY(); + targetWidth = targetShape.getWidth() / 2; + targetHeight = targetShape.getHeight() / 2; + if (instanceOf(targetShape, 186)) { + targetPort = castTo(targetShape, 118); + targetX += $getParent_3(targetPort).x_0; + targetX += $getParent_3(targetPort).x_0; + } + targetX += targetWidth; + targetY += targetHeight; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + edgeSection0 = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection0); + } + else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { + sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + while (sections.cursor != sections.this$01_2.size_1()) { + $remove_36(sections); + } + } + edgeSection = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + sourcePX = targetX; + targetX > sourceX + sourceWidth?(sourcePX = sourceX + sourceWidth):targetX < sourceX - sourceWidth && (sourcePX = sourceX - sourceWidth); + sourcePY = targetY; + targetY > sourceY + sourceHeight?(sourcePY = sourceY + sourceHeight):targetY < sourceY - sourceHeight && (sourcePY = sourceY - sourceHeight); + sourcePX > sourceX - sourceWidth && sourcePX < sourceX + sourceWidth && sourcePY > sourceY - sourceHeight && sourcePY < sourceY + sourceHeight && (sourcePX = sourceX + sourceWidth); + $setStartX(edgeSection, sourcePX); + $setStartY(edgeSection, sourcePY); + targetPX = sourceX; + sourceX > targetX + targetWidth?(targetPX = targetX + targetWidth):sourceX < targetX - targetWidth && (targetPX = targetX - targetWidth); + targetPY = sourceY; + sourceY > targetY + targetHeight?(targetPY = targetY + targetHeight):sourceY < targetY - targetHeight && (targetPY = targetY - targetHeight); + targetPX > targetX - targetWidth && targetPX < targetX + targetWidth && targetPY > targetY - targetHeight && targetPY < targetY + targetHeight && (targetPY = targetY + targetHeight); + $setEndX(edgeSection, targetPX); + $setEndY(edgeSection, targetPY); + $clear_13((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); + bendsNum = $nextInt(random, 5); + sourceShape == targetShape && ++bendsNum; + xdiff = targetPX - sourcePX; + ydiff = targetPY - sourcePY; + totalDist = $wnd.Math.sqrt(xdiff * xdiff + ydiff * ydiff); + maxRand = totalDist * 0.20000000298023224; + xincr = xdiff / (bendsNum + 1); + yincr = ydiff / (bendsNum + 1); + x_0 = sourcePX; + y_0 = sourcePY; + for (i = 0; i < bendsNum; i++) { + x_0 += xincr; + y_0 += yincr; + randx = x_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; + randx < 0?(randx = 1):randx > drawWidth && (randx = drawWidth - 1); + randy = y_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; + randy < 0?(randy = 1):randy > drawHeight && (randy = drawHeight - 1); + bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $setX_1(bendPoint, randx); + $setY_2(bendPoint, randy); + $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); + } +} + +function $randomize_0(parent_0, random, aspectRatio, spacing, padding){ + var areaSqrt, drawArea, drawHeight, drawWidth, edge, edge$iterator, height, m, maxHeight, maxWidth, n, node, node$iterator, node$iterator0, nodesArea, source, source$iterator, totalHeight, totalWidth, width_0, x_0, y_0; + nodesArea = 0; + maxWidth = 0; + maxHeight = 0; + m = 1; + for (node$iterator0 = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 33); + m += size_24(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + width_0 = node.width_0; + maxWidth = $wnd.Math.max(maxWidth, width_0); + height = node.height; + maxHeight = $wnd.Math.max(maxHeight, height); + nodesArea += width_0 * height; + } + n = (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; + drawArea = nodesArea + 2 * spacing * spacing * m * n; + areaSqrt = $wnd.Math.sqrt(drawArea); + drawWidth = $wnd.Math.max(areaSqrt * aspectRatio, maxWidth); + drawHeight = $wnd.Math.max(areaSqrt / aspectRatio, maxHeight); + for (node$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + x_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawWidth - node.width_0); + y_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawHeight - node.height); + $setX_2(node, x_0); + $setY_3(node, y_0); + } + totalWidth = drawWidth + (padding.left + padding.right); + totalHeight = drawHeight + (padding.top_0 + padding.bottom); + for (source$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { + source = castTo($doNext(source$iterator), 33); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + $isHierarchical(edge) || $randomize(edge, random, totalWidth, totalHeight); + } + } + totalWidth += padding.left + padding.right; + totalHeight += padding.top_0 + padding.bottom; + resizeNode_1(parent_0, totalWidth, totalHeight, false, true); +} + +function RandomLayoutProvider(){ +} + +defineClass(1126, 209, $intern_96, RandomLayoutProvider); +_.layout = function layout_10(parentNode, progressMonitor){ + var aspectRatio, padding, random, randomSeed, spacing; + $begin(progressMonitor, 'Random Layout', 1); + if ((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0 == 0) { + $done_0(progressMonitor); + return; + } + randomSeed = castTo($getProperty_0(parentNode, ($clinit_RandomLayouterOptions() , RANDOM_SEED_2)), 19); + !!randomSeed && randomSeed.value_0 != 0?(random = new Random_0(randomSeed.value_0)):(random = new Random); + aspectRatio = $floatValue(castToDouble($getProperty_0(parentNode, ASPECT_RATIO_6))); + spacing = $floatValue(castToDouble($getProperty_0(parentNode, SPACING_NODE_NODE_7))); + padding = castTo($getProperty_0(parentNode, PADDING_8), 116); + $randomize_0(parentNode, random, aspectRatio, spacing, padding); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_RandomLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'RandomLayoutProvider', 1126); +function $clinit_ElkGraphAdapters(){ + $clinit_ElkGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER_0 = new ElkGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER_0; +function $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter = emptyMethod; + OFFSET_PROXY = new Property_2(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0), 0); +} + +defineClass(553, 1, {}); +_.getPosition = function getPosition_1(){ + return new KVector_1(this.element.x_0, this.element.y_0); +} +; +_.getProperty = function getProperty_2(prop){ + if ($equals_10(prop, ($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { + return $getProperty_0(this.element, OFFSET_PROXY); + } + return $getProperty_0(this.element, prop); +} +; +_.getSize = function getSize_1(){ + return new KVector_1(this.element.width_0, this.element.height); +} +; +_.getVolatileId = function getVolatileId_1(){ + return this.id_0; +} +; +_.hasProperty = function hasProperty_2(prop){ + return $hasProperty_0(this.element, prop); +} +; +_.setPosition = function setPosition_1(pos){ + $setX_2(this.element, pos.x_0); + $setY_3(this.element, pos.y_0); +} +; +_.setSize = function setSize_1(size_0){ + $setWidth_0(this.element, size_0.x_0); + $setHeight_0(this.element, size_0.y_0); +} +; +_.setVolatileId = function setVolatileId_1(volatileId){ + this.id_0 = volatileId; +} +; +_.id_0 = 0; +var OFFSET_PROXY; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$AbstractElkGraphElementAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/AbstractElkGraphElementAdapter', 553); +function ElkGraphAdapters$ElkEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(554, 1, {839:1}, ElkGraphAdapters$ElkEdgeAdapter); +_.getLabels = function getLabels_2(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithExpectedSize($getLabels_1(this.element).size_0); + for (l$iterator = new AbstractEList$EIterator($getLabels_1(this.element)); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.labelAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkEdgeAdapter', 554); +function $getNodes(this$static){ + var n, n$iterator; + if (!this$static.childNodes) { + this$static.childNodes = newArrayListWithExpectedSize($getChildren(castTo(this$static.element, 33)).size_0); + for (n$iterator = new AbstractEList$EIterator($getChildren(castTo(this$static.element, 33))); n$iterator.cursor != n$iterator.this$01_2.size_1();) { + n = castTo($doNext(n$iterator), 33); + $add_3(this$static.childNodes, new ElkGraphAdapters$ElkNodeAdapter(this$static, n)); + } + } + return this$static.childNodes; +} + +function ElkGraphAdapters$ElkGraphAdapter(node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; +} + +defineClass(301, 553, {}, ElkGraphAdapters$ElkGraphAdapter); +_.getNodes = function getNodes_0(){ + return $getNodes(this); +} +; +_.childNodes = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkGraphAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkGraphAdapter', 301); +function ElkGraphAdapters$ElkLabelAdapter(label_0){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = label_0; +} + +defineClass(630, 553, {181:1}, ElkGraphAdapters$ElkLabelAdapter); +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkLabelAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkLabelAdapter', 630); +function $getLabels(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 33).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 33).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function $getPorts_2(this$static){ + var p, p$iterator; + if (!this$static.portAdapters) { + this$static.portAdapters = newArrayListWithExpectedSize($getPorts_3(castTo(this$static.element, 33)).size_0); + for (p$iterator = new AbstractEList$EIterator($getPorts_3(castTo(this$static.element, 33))); p$iterator.cursor != p$iterator.this$01_2.size_1();) { + p = castTo($doNext(p$iterator), 118); + $add_3(this$static.portAdapters, new ElkGraphAdapters$ElkPortAdapter(p)); + } + } + return this$static.portAdapters; +} + +function $sortPortList_1(this$static, comparator){ + $isOrderFixed(castTo(castTo(this$static.element, 33).getProperty(($clinit_CoreOptions() , PORT_CONSTRAINTS_1)), 98)) && sort_13($getPorts_3(castTo(this$static.element, 33)), comparator); +} + +function ElkGraphAdapters$ElkNodeAdapter(parent_0, node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; + this.parentGraphAdapter = parent_0; +} + +defineClass(629, 553, {680:1}, ElkGraphAdapters$ElkNodeAdapter); +_.getLabels = function getLabels_3(){ + return $getLabels(this); +} +; +_.getMargin = function getMargin_0(){ + var margins; + return margins = castTo($getProperty_0(this.element, ($clinit_CoreOptions() , MARGINS_0)), 142) , !margins && (margins = new ElkMargin) , margins; +} +; +_.getPorts = function getPorts_0(){ + return $getPorts_2(this); +} +; +_.setMargin = function setMargin_0(margin){ + var newMargin; + newMargin = new ElkMargin_2(margin); + $setProperty_1(this.element, ($clinit_CoreOptions() , MARGINS_0), newMargin); +} +; +_.setPadding = function setPadding_0(padding){ + $setProperty_1(this.element, ($clinit_CoreOptions() , PADDING_6), new ElkPadding_1(padding)); +} +; +_.getGraph = function getGraph_0(){ + return this.parentGraphAdapter; +} +; +_.getIncomingEdges = function getIncomingEdges_1(){ + var e, e$iterator; + if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = new ArrayList; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 79); + $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.incomingEdgeAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_1(){ + var e, e$iterator; + if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = new ArrayList; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 79); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.isCompoundNode = function isCompoundNode_0(){ + return $getChildren(castTo(this.element, 33)).size_0 != 0 || $booleanValue(castToBoolean(castTo(this.element, 33).getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); +} +; +_.sortPortList = function sortPortList_0(){ + $sortPortList_1(this, ($clinit_ElkGraphAdapters() , DEFAULT_PORTLIST_SORTER_0)); +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +_.parentGraphAdapter = null; +_.portAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkNodeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkNodeAdapter', 629); +function $getLabels_0(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 118).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 118).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function ElkGraphAdapters$ElkPortAdapter(port){ + this.element = port; +} + +defineClass(1266, 553, {838:1}, ElkGraphAdapters$ElkPortAdapter); +_.getLabels = function getLabels_4(){ + return $getLabels_0(this); +} +; +_.getIncomingEdges = function getIncomingEdges_2(){ + var e, e$iterator; + if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getIncomingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.incomingEdgeAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_2(){ + var e, e$iterator; + if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getOutgoingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide_0(){ + return castTo(castTo(this.element, 118).getProperty(($clinit_CoreOptions() , PORT_SIDE_0)), 61); +} +; +_.hasCompoundConnections = function hasCompoundConnections_0(){ + var edge, edge$iterator, edge$iterator0, node, source, source$iterator, target, target$iterator; + node = $getParent_3(castTo(this.element, 118)); + for (edge$iterator0 = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator0), 79); + for (target$iterator = new AbstractEList$EIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); target$iterator.cursor != target$iterator.this$01_2.size_1();) { + target = castTo($doNext(target$iterator), 82); + if (isDescendant_0(connectableShapeToNode(target), node)) { + return true; + } + else if (connectableShapeToNode(target) == node && $booleanValue(castToBoolean($getProperty_0(edge, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_YO_0))))) { + return true; + } + } + } + for (edge$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 79); + for (source$iterator = new AbstractEList$EIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { + source = castTo($doNext(source$iterator), 82); + if (isDescendant_0(connectableShapeToNode(source), node)) { + return true; + } + } + } + return false; +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkPortAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkPortAdapter', 1266); +function $compare_25(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = castTo($getProperty_0(port1, ($clinit_CoreOptions() , PORT_SIDE_0)), 61).ordinal - castTo($getProperty_0(port2, PORT_SIDE_0), 61).ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty_0(port1, PORT_INDEX_0), 19); + index2 = castTo($getProperty_0(port2, PORT_INDEX_0), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (castTo($getProperty_0(port1, PORT_SIDE_0), 61).ordinal) { + case 1: + return compare_4(port1.x_0, port2.x_0); + case 2: + return compare_4(port1.y_0, port2.y_0); + case 3: + return compare_4(port2.x_0, port1.x_0); + case 4: + return compare_4(port2.y_0, port1.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function ElkGraphAdapters$PortComparator(){ +} + +defineClass(1267, 1, $intern_88, ElkGraphAdapters$PortComparator); +_.compare_1 = function compare_86(port1, port2){ + return $compare_25(castTo(port1, 118), castTo(port2, 118)); +} +; +_.equals_0 = function equals_182(other){ + return this === other; +} +; +_.reversed = function reversed_78(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/PortComparator', 1267); +var Lorg_eclipse_emf_ecore_EObject_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EObject'); +var Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph', 'EMapPropertyHolder'); +var Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkBendPoint'); +var Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkGraphElement'); +var Lorg_eclipse_elk_graph_ElkShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkShape'); +var Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkConnectableShape'); +var Lorg_eclipse_elk_graph_ElkEdge_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdge'); +var Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdgeSection'); +var Lorg_eclipse_emf_ecore_EModelElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EModelElement'); +var Lorg_eclipse_emf_ecore_EFactory_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EFactory'); +function $clinit_ElkGraphFactory(){ + $clinit_ElkGraphFactory = emptyMethod; + eINSTANCE = init_1(); +} + +var eINSTANCE; +var Lorg_eclipse_emf_ecore_ENamedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ENamedElement'); +var Lorg_eclipse_emf_ecore_EPackage_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EPackage'); +function $clinit_ElkGraphPackage(){ + $clinit_ElkGraphPackage = emptyMethod; + eINSTANCE_0 = init_2(); +} + +var eINSTANCE_0; +function $clinit_ElkGraphPackage$Literals(){ + $clinit_ElkGraphPackage$Literals = emptyMethod; + $clinit_ElkGraphPackage(); + EMAP_PROPERTY_HOLDER = eINSTANCE_0.eMapPropertyHolderEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.eMapPropertyHolderEClass), 0), 18); + ELK_GRAPH_ELEMENT = eINSTANCE_0.elkGraphElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 1), 34); + ELK_SHAPE = eINSTANCE_0.elkShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 3), 34); + ELK_LABEL = eINSTANCE_0.elkLabelEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 1), 34); + ELK_CONNECTABLE_SHAPE = eINSTANCE_0.elkConnectableShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 1), 18); + ELK_NODE = eINSTANCE_0.elkNodeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 4), 34); + ELK_PORT = eINSTANCE_0.elkPortEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPortEClass), 0), 18); + ELK_EDGE = eINSTANCE_0.elkEdgeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 6), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 7), 34); + ELK_BEND_POINT = eINSTANCE_0.elkBendPointEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 1), 34); + ELK_EDGE_SECTION = eINSTANCE_0.elkEdgeSectionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 5), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 7), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 8), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 9), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 10), 34); + ELK_PROPERTY_TO_VALUE_MAP_ENTRY = eINSTANCE_0.elkPropertyToValueMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 1), 34); +} + +var ELK_BEND_POINT, ELK_CONNECTABLE_SHAPE, ELK_EDGE, ELK_EDGE_SECTION, ELK_GRAPH_ELEMENT, ELK_LABEL, ELK_NODE, ELK_PORT, ELK_PROPERTY_TO_VALUE_MAP_ENTRY, ELK_SHAPE, EMAP_PROPERTY_HOLDER; +var Lorg_eclipse_elk_graph_ElkLabel_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkLabel'); +var Lorg_eclipse_elk_graph_ElkNode_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkNode'); +var Lorg_eclipse_elk_graph_ElkPort_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkPort'); +function $eNotify(this$static, notification){ + var eAdapters, i, size_0; + eAdapters = this$static.eBasicAdapterArray(); + if (eAdapters != null && this$static.eDeliver()) { + for (i = 0 , size_0 = eAdapters.length; i < size_0; ++i) { + eAdapters[i].notifyChanged(notification); + } + } +} + +defineClass(90, 1, $intern_133); +_.eBasicAdapterArray = function eBasicAdapterArray(){ + this.eBasicAdapters(); + return null; +} +; +_.eBasicAdapters = function eBasicAdapters(){ + return null; +} +; +_.eBasicHasAdapters = function eBasicHasAdapters(){ + return this.eBasicAdapters() , false; +} +; +_.eDeliver = function eDeliver(){ + return false; +} +; +_.eNotify = function eNotify(notification){ + $eNotify(this, notification); +} +; +var Lorg_eclipse_emf_common_notify_impl_BasicNotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'BasicNotifierImpl', 90); +function $eAttribute(eClass, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(eClass, name_0); + if (instanceOf(eStructuralFeature, 322)) { + return castTo(eStructuralFeature, 34); + } + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid attribute")); +} + +function $eBasicSetContainer(this$static, newContainer, newContainerFeatureID, msgs){ + var newResource, notification, oldContainer, oldContainerFeatureID, oldResource; + oldContainer = this$static.eInternalContainer(); + oldResource = this$static.eDirectResource(); + newResource = null; + if (oldResource) { + if (!!newContainer && (eContainmentFeature(this$static, newContainer, newContainerFeatureID).eFlags & $intern_63) == 0) { + msgs = $basicRemove_0(oldResource.getContents(), this$static, msgs); + this$static.eSetDirectResource(null); + newResource = newContainer.eInternalResource(); + } + else { + oldResource = null; + } + } + else { + !!oldContainer && (oldResource = oldContainer.eInternalResource()); + !!newContainer && (newResource = newContainer.eInternalResource()); + } + oldResource != newResource && !!oldResource && oldResource.detached(this$static); + oldContainerFeatureID = this$static.eContainerFeatureID_0(); + this$static.eBasicSetContainer(newContainer, newContainerFeatureID); + oldResource != newResource && !!newResource && newResource.attached(this$static); + if (this$static.eBasicHasAdapters() && this$static.eDeliver()) { + if (!!oldContainer && oldContainerFeatureID >= 0 && oldContainerFeatureID != newContainerFeatureID) { + notification = new ENotificationImpl_1(this$static, 1, oldContainerFeatureID, oldContainer, null); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (newContainerFeatureID >= 0) { + notification = new ENotificationImpl_1(this$static, 1, newContainerFeatureID, oldContainerFeatureID == newContainerFeatureID?oldContainer:null, newContainer); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + return msgs; +} + +function $eContainer(this$static){ + var eContainerFeatureID, eContainerFeatureID0, notificationChain, resolved, result; + result = this$static.eInternalContainer(); + if (result) { + if (result.eIsProxy()) { + resolved = $eResolveProxy(this$static, result); + if (resolved != result) { + eContainerFeatureID0 = this$static.eContainerFeatureID_0(); + notificationChain = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(null):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, null)); + this$static.eBasicSetContainer(castTo(resolved, 49), eContainerFeatureID0); + !!notificationChain && notificationChain.dispatch_0(); + this$static.eBasicHasAdapters() && this$static.eDeliver() && eContainerFeatureID0 > -1 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, eContainerFeatureID0, result, resolved)); + return resolved; + } + } + } + return result; +} + +function $eDynamicGet(this$static, dynamicFeatureID, eFeature, resolve, coreType){ + return dynamicFeatureID < 0?$eOpenGet(this$static, eFeature, resolve):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); +} + +function $eDynamicIsSet(this$static, dynamicFeatureID, eFeature){ + return dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); +} + +function $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue){ + if (dynamicFeatureID < 0) { + $eOpenSet(this$static, eFeature, newValue); + } + else { + if (!eFeature.isChangeable()) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + castTo(eFeature, 66).getSettingDelegate().dynamicSet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, newValue); + } +} + +function $eDynamicUnset(this$static, dynamicFeatureID, eFeature){ + if (dynamicFeatureID < 0) { + $eOpenUnset(this$static, eFeature); + } + else { + if (!eFeature.isChangeable()) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + castTo(eFeature, 66).getSettingDelegate().dynamicUnset_0(this$static, this$static.eSettings_0(), dynamicFeatureID); + } +} + +function $eGet(this$static, featureID0, resolve, coreType){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve)):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); +} + +function $eGet_0(this$static, eFeature){ + var featureID; + return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, eFeature, true); +} + +function $eGet_1(this$static, eFeature, resolve){ + var featureID; + return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve); +} + +function $eGet_2(this$static, eFeature){ + var featureID; + featureID = $getFeatureID(this$static.eClass, eFeature); + return featureID >= 0?$eGet(this$static, featureID, true, true):$eOpenGet(this$static, eFeature, true); +} + +function $eInternalResource(this$static){ + var count, eContainer, result; + result = this$static.eDirectResource(); + if (!result) { + count = 0; + for (eContainer = this$static.eInternalContainer(); eContainer; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_66) { + return eContainer.eInternalResource(); + } + result = eContainer.eDirectResource(); + if (!!result || eContainer == this$static) { + break; + } + } + } + return result; +} + +function $eInverseAdd(this$static, otherEnd, featureID, msgs){ + var eContainerFeatureID; + if (featureID >= 0) { + return this$static.eInverseAdd_0(otherEnd, featureID, msgs); + } + else { + !!this$static.eInternalContainer() && (msgs = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(msgs):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + return this$static.eBasicSetContainer_0(otherEnd, featureID, msgs); + } +} + +function $eInverseRemove(this$static, otherEnd, featureID, msgs){ + return featureID >= 0?this$static.eInverseRemove_0(otherEnd, featureID, msgs):this$static.eBasicSetContainer_0(null, featureID, msgs); +} + +function $eIsSet(this$static, featureID0){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature)):dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); +} + +function $eIsSet_0(this$static, eFeature){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + return featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature); +} + +function $eNotificationRequired(this$static){ + return this$static.eBasicHasAdapters() && this$static.eDeliver(); +} + +function $eObjectForURIFragmentPredicate(this$static, predicate, eReference){ + var eAttribute, eDataType, eFactory, eReferenceType, end, featureMapEntries, i, index_0, length_0, values; + featureMapEntries = new ArrayList; + length_0 = predicate.length; + eReferenceType = $getEReferenceType(eReference); + for (i = 0; i < length_0; ++i) { + index_0 = $indexOf_2(predicate, fromCodePoint(61), i); + eAttribute = $eAttribute(eReferenceType, predicate.substr(i, index_0 - i)); + eDataType = $getEAttributeType(eAttribute); + eFactory = eDataType.getEPackage().getEFactoryInstance(); + switch ($charAt(predicate, ++index_0)) { + case 39: + { + end = $indexOf_0(predicate, 39, ++index_0); + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); + i = end + 1; + break; + } + + case 34: + { + end = $indexOf_0(predicate, 34, ++index_0); + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); + i = end + 1; + break; + } + + case 91: + { + values = new ArrayList; + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, values)); + LOOP: for (;;) { + switch ($charAt(predicate, ++index_0)) { + case 39: + { + end = $indexOf_0(predicate, 39, ++index_0); + $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); + index_0 = end + 1; + break; + } + + case 34: + { + end = $indexOf_0(predicate, 34, ++index_0); + $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); + index_0 = end + 1; + break; + } + + case 110: + { + ++index_0; + if (predicate.indexOf('ull', index_0) == index_0) { + values.array[values.array.length] = null; + } + else { + throw toJs(new RuntimeException_0('Expecting null')); + } + index_0 += 3; + break; + } + + } + if (index_0 < length_0) { + switch (checkCriticalStringElementIndex(index_0, predicate.length) , predicate.charCodeAt(index_0)) { + case 44: + { + break; + } + + case 93: + { + break LOOP; + } + + default:{ + throw toJs(new RuntimeException_0('Expecting , or ]')); + } + + } + } + else { + break; + } + } + i = index_0 + 1; + break; + } + + case 110: + { + ++index_0; + if (predicate.indexOf('ull', index_0) == index_0) { + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, null)); + } + else { + throw toJs(new RuntimeException_0('Expecting null')); + } + i = index_0 + 3; + break; + } + + } + if (i < length_0) { + checkCriticalStringElementIndex(i, predicate.length); + if (predicate.charCodeAt(i) != 44) { + throw toJs(new RuntimeException_0('Expecting ,')); + } + } + else { + break; + } + } + return $eObjectForURIFragmentPredicate_0(this$static, featureMapEntries, eReference); +} + +function $eObjectForURIFragmentPredicate_0(this$static, predicate, eReference){ + var actualValue, eObject, eObject$iterator, entry, entryFeature, entryValue, featureID, i, list, size_0; + size_0 = predicate.array.length; + list = (featureID = this$static.eDerivedStructuralFeatureID_0(eReference) , castTo(featureID >= 0?this$static.eGet(featureID, false, true):$eOpenGet(this$static, eReference, false), 58)); + LOOP: for (eObject$iterator = list.iterator_0(); eObject$iterator.hasNext_0();) { + eObject = castTo(eObject$iterator.next_1(), 56); + for (i = 0; i < size_0; ++i) { + entry = (checkCriticalElementIndex(i, predicate.array.length) , castTo(predicate.array[i], 72)); + entryValue = entry.getValue(); + entryFeature = entry.getEStructuralFeature(); + actualValue = eObject.eGet_1(entryFeature, false); + if (entryValue == null?actualValue != null:!equals_Ljava_lang_Object__Z__devirtual$(entryValue, actualValue)) { + continue LOOP; + } + } + return eObject; + } + return null; +} + +function $eObjectForURIFragmentSegment(this$static, uriFragmentSegment){ + var dotIndex, eList, eReference, exception, index_0, lastChar, lastIndex, position, predicate, result; + lastIndex = uriFragmentSegment.length - 1; + lastChar = (checkCriticalStringElementIndex(lastIndex, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(lastIndex)); + if (lastChar == 93) { + index_0 = $indexOf_1(uriFragmentSegment, fromCodePoint(91)); + if (index_0 >= 0) { + eReference = $eReference(this$static, uriFragmentSegment.substr(1, index_0 - 1)); + predicate = uriFragmentSegment.substr(index_0 + 1, lastIndex - (index_0 + 1)); + return $eObjectForURIFragmentPredicate(this$static, predicate, eReference); + } + } + else { + dotIndex = -1; + digitRegex == null && (digitRegex = new RegExp('\\d')); + if (digitRegex.test(String.fromCharCode(lastChar))) { + dotIndex = $lastIndexOf_0(uriFragmentSegment, fromCodePoint(46), lastIndex - 1); + if (dotIndex >= 0) { + eList = castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1, dotIndex - 1)), false), 58); + position = 0; + try { + position = __parseAndValidateInt(uriFragmentSegment.substr(dotIndex + 1), $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + if (position < eList.size_1()) { + result = eList.get_0(position); + instanceOf(result, 72) && (result = castTo(result, 72).getValue()); + return castTo(result, 56); + } + } + } + if (dotIndex < 0) { + return castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1)), false), 56); + } + } + return null; +} + +function $eOpenGet(this$static, eFeature, resolve){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + return castTo(featureMap, 215).get_7(eFeature, resolve); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } +} + +function $eOpenIsSet(this$static, eFeature){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + return castTo(featureMap, 215).isSet_1(eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } +} + +function $eOpenSet(this$static, eFeature, newValue){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + if (!castTo(openFeature, 66).isFeatureMap_0()) { + openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature)); + if (!openFeature) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + castTo(featureMap, 215).set_3(eFeature, newValue); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } +} + +function $eOpenUnset(this$static, eFeature){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + castTo(featureMap, 215).unset_0(eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } +} + +function $eReference(this$static, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); + if (instanceOf(eStructuralFeature, 99)) { + return castTo(eStructuralFeature, 18); + } + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid reference")); +} + +function $eResolveProxy(this$static, proxy){ + var eResource, lastArg, resourceContext, result; + result = (resourceContext = this$static?$eInternalResource(this$static):null , resolve_20((lastArg = proxy , resourceContext?resourceContext.getResourceSet():null , lastArg))); + if (result == proxy) { + eResource = $eInternalResource(this$static); + !!eResource && eResource.getResourceSet(); + } + return result; +} + +function $eSet(this$static, featureID0, newValue){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + if (dynamicFeatureID < 0) { + if (!eFeature) { + throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); + } + else if (eFeature.isChangeable()) { + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + else { + $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue); + } +} + +function $eSet_0(this$static, eFeature, newValue){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); +} + +function $eSettings(this$static){ + var size_0; + if (!this$static.eHasSettings()) { + size_0 = $getFeatureCount(this$static.eClass_0()) - this$static.eStaticFeatureCount(); + this$static.eProperties_0().allocateSettings(size_0); + } + return this$static.eBasicProperties(); +} + +function $eStructuralFeature(this$static, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); + if (!eStructuralFeature) { + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid feature")); + } + return eStructuralFeature; +} + +function $eUnset(this$static, featureID0){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + if (dynamicFeatureID < 0) { + if (!eFeature) { + throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); + } + else if (eFeature.isChangeable()) { + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + else { + $eDynamicUnset(this$static, dynamicFeatureID, eFeature); + } +} + +function $eUnset_0(this$static, eFeature){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); +} + +function $toString_16(this$static){ + var number, result; + result = new StringBuilder_1($getName(this$static.___clazz)); + result.string += '@'; + $append_11(result, (number = hashCode__I__devirtual$(this$static) >>> 0 , number.toString(16))); + if (this$static.eIsProxy()) { + result.string += ' (eProxyURI: '; + $append_10(result, this$static.eProxyURI_0()); + if (this$static.eDynamicClass()) { + result.string += ' eClass: '; + $append_10(result, this$static.eDynamicClass()); + } + result.string += ')'; + } + else if (this$static.eDynamicClass()) { + result.string += ' (eClass: '; + $append_10(result, this$static.eDynamicClass()); + result.string += ')'; + } + return result.string; +} + +function eContainmentFeature(eObject, eContainer, eContainerFeatureID){ + var eFeature, entryFeature, entryReference, featureMap, i, size_0; + if (!eContainer) { + return null; + } + else { + if (eContainerFeatureID <= -1) { + eFeature = $getEStructuralFeature(eContainer.eClass_0(), -1 - eContainerFeatureID); + if (instanceOf(eFeature, 99)) { + return castTo(eFeature, 18); + } + else { + featureMap = castTo(eContainer.eGet_0(eFeature), 153); + for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { + if (maskUndefined(featureMap.getValue_1(i)) === maskUndefined(eObject)) { + entryFeature = featureMap.getEStructuralFeature_0(i); + if (instanceOf(entryFeature, 99)) { + entryReference = castTo(entryFeature, 18); + if ((entryReference.eFlags & $intern_134) != 0) { + return entryReference; + } + } + } + } + throw toJs(new IllegalStateException_0('The containment feature could not be located')); + } + } + else { + return $getEOpposite(castTo($getEStructuralFeature(eObject.eClass_0(), eContainerFeatureID), 18)); + } + } +} + +function eDecodeValue(encodedValue, eFactory, eDataType){ + var literal, value_0; + literal = decode(encodedValue); + value_0 = eFactory.createFromString(eDataType, literal); + return value_0; +} + +defineClass(97, 90, $intern_135); +_.eNotificationRequired = function eNotificationRequired(){ + return $eNotificationRequired(this); +} +; +_.eBaseStructuralFeatureID = function eBaseStructuralFeatureID(derivedFeatureID, baseClass){ + return derivedFeatureID; +} +; +_.eBasicProperties = function eBasicProperties(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature(msgs){ + var inverseFeature; + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature(this.eClass_0(), this.eContainerFeatureID_0()), 18)) , this.eInternalContainer().eInverseRemove(this, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} +; +_.eBasicSetContainer = function eBasicSetContainer(newContainer, newContainerFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicSetContainer_0 = function eBasicSetContainer_0(newContainer, newContainerFeatureID, msgs){ + return $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); +} +; +_.eClass_0 = function eClass_0(){ + var result; + if (this.eBasicProperties()) { + result = this.eBasicProperties().getEClass(); + if (result) { + return result; + } + } + return this.eStaticClass(); +} +; +_.eContainer_0 = function eContainer_0(){ + return $eContainer(this); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eContents_0 = function eContents_0(){ + var eStructuralFeatures, result; + result = this.eProperties_0().getEContents(); + !result && this.eBasicProperties().setEContents(result = ($clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures(this.eClass_0())) , eStructuralFeatures == null?EMPTY_CONTENTS_ELIST:new EContentsEList(this, eStructuralFeatures))); + return result; +} +; +_.eDerivedStructuralFeatureID = function eDerivedStructuralFeatureID(baseFeatureID, baseClass){ + return baseFeatureID; +} +; +_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_0(eStructuralFeature){ + var containerClass; + containerClass = eStructuralFeature.getContainerClass(); + return !containerClass?$getFeatureID(this.eClass_0(), eStructuralFeature):eStructuralFeature.getFeatureID_0(); +} +; +_.eDirectResource = function eDirectResource(){ + var eProperties; + eProperties = this.eBasicProperties(); + return !eProperties?null:eProperties.getEResource(); +} +; +_.eDynamicClass = function eDynamicClass(){ + return !this.eBasicProperties()?null:this.eBasicProperties().getEClass(); +} +; +_.eGet = function eGet(featureID, resolve, coreType){ + return $eGet(this, featureID, resolve, coreType); +} +; +_.eGet_0 = function eGet_0(eFeature){ + return $eGet_0(this, eFeature); +} +; +_.eGet_1 = function eGet_1(eFeature, resolve){ + return $eGet_1(this, eFeature, resolve); +} +; +_.eHasSettings = function eHasSettings(){ + var eProperties; + eProperties = this.eBasicProperties(); + return !!eProperties && eProperties.hasSettings(); +} +; +_.eInternalContainer = function eInternalContainer_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eInternalResource = function eInternalResource(){ + return $eInternalResource(this); +} +; +_.eInverseAdd = function eInverseAdd(otherEnd, featureID, baseClass, msgs){ + return $eInverseAdd(this, otherEnd, featureID, msgs); +} +; +_.eInverseAdd_0 = function eInverseAdd_0(otherEnd, featureID, msgs){ + var feature; + return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); +} +; +_.eInverseRemove = function eInverseRemove(otherEnd, featureID, baseClass, msgs){ + return $eInverseRemove(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_0(otherEnd, featureID, msgs){ + var feature; + return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); +} +; +_.eIsProxy = function eIsProxy(){ + return !!this.eBasicProperties() && !!this.eBasicProperties().getEProxyURI(); +} +; +_.eIsSet = function eIsSet(featureID){ + return $eIsSet(this, featureID); +} +; +_.eIsSet_0 = function eIsSet_0(eFeature){ + return $eIsSet_0(this, eFeature); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment(uriFragmentSegment){ + return $eObjectForURIFragmentSegment(this, uriFragmentSegment); +} +; +_.eProperties_0 = function eProperties_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eProxyURI_0 = function eProxyURI_0(){ + return !this.eBasicProperties()?null:this.eBasicProperties().getEProxyURI(); +} +; +_.eResource_0 = function eResource_0(){ + return $eInternalResource(this); +} +; +_.eSet = function eSet(featureID, newValue){ + $eSet(this, featureID, newValue); +} +; +_.eSetClass = function eSetClass(eClass){ + this.eProperties_0().setEClass(eClass); +} +; +_.eSetDirectResource = function eSetDirectResource(resource){ + this.eProperties_0().setEResource(resource); +} +; +_.eSetProxyURI = function eSetProxyURI(uri_0){ + this.eProperties_0().setEProxyURI(uri_0); +} +; +_.eSetResource = function eSetResource(resource, notifications){ + var eContainerFeatureID, oldContainer, oldContainerResource, oldResource; + oldResource = this.eDirectResource(); + if (!!oldResource && !!resource) { + notifications = $basicRemove_0(oldResource.getContents(), this, notifications); + oldResource.detached(this); + } + oldContainer = this.eInternalContainer(); + if (oldContainer) { + if ((eContainmentFeature(this, this.eInternalContainer(), this.eContainerFeatureID_0()).eFlags & $intern_63) != 0) { + oldContainerResource = oldContainer.eInternalResource(); + !!oldContainerResource && (!resource?oldContainerResource.attached(this):!oldResource && oldContainerResource.detached(this)); + } + else { + notifications = (eContainerFeatureID = this.eContainerFeatureID_0() , eContainerFeatureID >= 0?this.eBasicRemoveFromContainerFeature(notifications):this.eInternalContainer().eInverseRemove(this, -1 - eContainerFeatureID, null, notifications)); + notifications = this.eBasicSetContainer_0(null, -1, notifications); + } + } + this.eSetDirectResource(resource); + return notifications; +} +; +_.eSetting = function eSetting(eFeature){ + var dynamicIndex, eClass, featureID, featureMap, index_0, openFeature, setting, upperBound; + eClass = this.eClass_0(); + index_0 = $getFeatureID(eClass, eFeature); + dynamicIndex = this.eStaticFeatureCount(); + if (index_0 >= dynamicIndex) { + return castTo(eFeature, 66).getSettingDelegate().dynamicSetting(this, this.eSettings_0(), index_0 - dynamicIndex); + } + else if (index_0 <= -1) { + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this.eGet(featureID, true, true):$eOpenGet(this, openFeature, true), 153)); + upperBound = openFeature.getUpperBound(); + if (upperBound > 1 || upperBound == -1) { + return castTo(castTo(featureMap, 215).get_7(eFeature, false), 76); + } + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } + } + else if (eFeature.isMany()) { + return featureID = this.eDerivedStructuralFeatureID_0(eFeature) , castTo(featureID >= 0?this.eGet(featureID, false, true):$eOpenGet(this, eFeature, false), 76); + } + setting = new BasicEObjectImpl$4(this, eFeature); + return setting; +} +; +_.eSettings_0 = function eSettings(){ + return $eSettings(this); +} +; +_.eStaticClass = function eStaticClass(){ + return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; +} +; +_.eStaticFeatureCount = function eStaticFeatureCount(){ + return $getFeatureCount(this.eStaticClass()); +} +; +_.eUnset = function eUnset(featureID){ + $eUnset(this, featureID); +} +; +_.toString_0 = function toString_122(){ + return $toString_16(this); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl', 97); +function $clinit_EStructuralFeature$Internal$DynamicValueHolder(){ + $clinit_EStructuralFeature$Internal$DynamicValueHolder = emptyMethod; + NIL = new EStructuralFeature$Internal$DynamicValueHolder$1; +} + +var NIL; +function $addField(this$static, field, value_0){ + var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; + fieldCount = bitCount(this$static.eFlags_0 & 254); + if (fieldCount == 0) { + this$static.eStorage = value_0; + } + else { + if (fieldCount == 1) { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 2, 5, 1); + fieldIndex = $fieldIndex(this$static, field); + if (fieldIndex == 0) { + result[0] = value_0; + result[1] = this$static.eStorage; + } + else { + result[0] = this$static.eStorage; + result[1] = value_0; + } + } + else { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount + 1, 5, 1); + oldStorage = castToArray(this$static.eStorage); + for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { + bit == field?(result[targetIndex++] = value_0):(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); + } + } + this$static.eStorage = result; + } + this$static.eFlags_0 |= field; +} + +function $eClass(this$static){ + var eClass; + eClass = castTo($getField(this$static, 16), 26); + return !eClass?this$static.eStaticClass():eClass; +} + +function $eDynamicSettings(this$static){ + var settings; + settings = castToArray($getField(this$static, 32)); + if (settings == null) { + $eSettings_0(this$static); + settings = castToArray($getField(this$static, 32)); + } + return settings; +} + +function $eSettings_0(this$static){ + var eClass, size_0; + if ((this$static.eFlags_0 & 32) == 0) { + size_0 = (eClass = castTo($getField(this$static, 16), 26) , $getFeatureCount(!eClass?this$static.eStaticClass():eClass) - $getFeatureCount(this$static.eStaticClass())); + size_0 != 0 && $setField(this$static, 32, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1)); + } + return this$static; +} + +function $fieldIndex(this$static, field){ + var bit, bit0, result; + result = 0; + for (bit0 = 2; bit0 < field; bit0 <<= 1) { + (this$static.eFlags_0 & bit0) != 0 && ++result; + } + if (result == 0) { + for (bit = field <<= 1; bit <= 128; bit <<= 1) { + if ((this$static.eFlags_0 & bit) != 0) { + return 0; + } + } + return -1; + } + else { + return result; + } +} + +function $getField(this$static, field){ + var fieldIndex; + if ((this$static.eFlags_0 & field) != 0) { + fieldIndex = $fieldIndex(this$static, field); + return fieldIndex == -1?this$static.eStorage:castToArray(this$static.eStorage)[fieldIndex]; + } + else { + return null; + } +} + +function $removeField(this$static, field){ + var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; + fieldCount = bitCount(this$static.eFlags_0 & 254); + if (fieldCount == 1) { + this$static.eStorage = null; + } + else { + oldStorage = castToArray(this$static.eStorage); + if (fieldCount == 2) { + fieldIndex = $fieldIndex(this$static, field); + this$static.eStorage = oldStorage[fieldIndex == 0?1:0]; + } + else { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount - 1, 5, 1); + for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { + bit == field?++sourceIndex:(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); + } + this$static.eStorage = result; + } + } + this$static.eFlags_0 &= ~field; +} + +function $setField(this$static, field, value_0){ + var fieldIndex; + if ((this$static.eFlags_0 & field) != 0) { + if (value_0 == null) { + $removeField(this$static, field); + } + else { + fieldIndex = $fieldIndex(this$static, field); + fieldIndex == -1?(this$static.eStorage = value_0):setCheck(castToArray(this$static.eStorage), fieldIndex, value_0); + } + } + else + value_0 != null && $addField(this$static, field, value_0); +} + +defineClass(114, 97, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1}); +_.dynamicGet = function dynamicGet(dynamicFeatureID){ + var settings; + settings = $eDynamicSettings(this); + return settings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet(dynamicFeatureID, newValue){ + var settings; + settings = $eDynamicSettings(this); + setCheck(settings, dynamicFeatureID, newValue); +} +; +_.dynamicUnset = function dynamicUnset(dynamicFeatureID){ + var settings; + settings = $eDynamicSettings(this); + setCheck(settings, dynamicFeatureID, null); +} +; +_.eBasicAdapterArray = function eBasicAdapterArray_0(){ + return castTo($getField(this, 4), 126); +} +; +_.eBasicAdapters = function eBasicAdapters_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicHasAdapters = function eBasicHasAdapters_0(){ + return (this.eFlags_0 & 4) != 0; +} +; +_.eBasicProperties = function eBasicProperties_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicSetContainer_1 = function eBasicSetContainer_1(newContainer){ + $setField(this, 2, newContainer); +} +; +_.eBasicSetContainer = function eBasicSetContainer_2(newContainer, newContainerFeatureID){ + this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; + this.eBasicSetContainer_1(newContainer); +} +; +_.eClass_0 = function eClass_1(){ + return $eClass(this); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_1(){ + return this.eFlags_0 >> 16; +} +; +_.eContents_0 = function eContents_1(){ + var eClass, eStructuralFeatures; + return $clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass))) , eStructuralFeatures == null?(null , EMPTY_CONTENTS_ELIST):new EContentsEList(this, eStructuralFeatures); +} +; +_.eDeliver = function eDeliver_0(){ + return (this.eFlags_0 & 1) == 0; +} +; +_.eDirectResource = function eDirectResource_0(){ + return castTo($getField(this, 128), 1935); +} +; +_.eDynamicClass = function eDynamicClass_0(){ + return castTo($getField(this, 16), 26); +} +; +_.eHasSettings = function eHasSettings_0(){ + return (this.eFlags_0 & 32) != 0; +} +; +_.eInternalContainer = function eInternalContainer_1(){ + return castTo($getField(this, 2), 49); +} +; +_.eIsProxy = function eIsProxy_0(){ + return (this.eFlags_0 & 64) != 0; +} +; +_.eProperties_0 = function eProperties_1(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eProxyURI_0 = function eProxyURI_1(){ + return castTo($getField(this, 64), 281); +} +; +_.eSetClass = function eSetClass_0(eClass){ + $setField(this, 16, eClass); +} +; +_.eSetDirectResource = function eSetDirectResource_0(resource){ + $setField(this, 128, resource); +} +; +_.eSetProxyURI = function eSetProxyURI_0(uri_0){ + $setField(this, 64, uri_0); +} +; +_.eSettings_0 = function eSettings_0(){ + return $eSettings_0(this); +} +; +_.eFlags_0 = 0; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl', 114); +defineClass(115, 114, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eBasicSetContainer_1 = function eBasicSetContainer_3(newContainer){ + this.eContainer = newContainer; +} +; +_.eInternalContainer = function eInternalContainer_2(){ + return this.eContainer; +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$Container_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/Container', 115); +function $eGet_3(this$static, featureID, resolve, coreType){ + if (featureID == 0) { + return coreType?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $map_1(this$static.properties)); + } + return $eGet(this$static, featureID, resolve, coreType); +} + +function $eInverseRemove_0(this$static, otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $basicRemove_1(this$static.properties, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); +} + +function $eIsSet_1(this$static, featureID){ + if (featureID == 0) { + return !!this$static.properties && this$static.properties.size_0 != 0; + } + return $eIsSet(this$static, featureID); +} + +function $eSet_1(this$static, featureID, newValue){ + switch (featureID) { + case 0: + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + $set_14(this$static.properties, newValue); + return; + } + $eSet(this$static, featureID, newValue); +} + +function $eUnset_1(this$static, featureID){ + switch (featureID) { + case 0: + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + this$static.properties.delegateEList.clear_0(); + return; + } + $eUnset(this$static, featureID); +} + +function $getAllProperties_0(this$static){ + var entry, entry$iterator, props; + props = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties); + for (entry$iterator = props.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 42); + entry.getValue(); + } + return $map_1(props); +} + +function $getProperty_0(this$static, property){ + var defaultValue, value_0; + value_0 = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $get_21(this$static.properties, property)); + if (value_0 != null) { + return value_0; + } + defaultValue = property.getDefault(); + instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, defaultValue)) , this$static); + return defaultValue; +} + +function $hasProperty_0(this$static, property){ + return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $containsKey_7(this$static.properties, property); +} + +function $setProperty_1(this$static, property, value_0){ + value_0 == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, value_0)); + return this$static; +} + +defineClass(1985, 115, {105:1, 413:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_2(featureID, resolve, coreType){ + return $eGet_3(this, featureID, resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_1(otherEnd, featureID, msgs){ + return $eInverseRemove_0(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_1(featureID){ + return $eIsSet_1(this, featureID); +} +; +_.eSet = function eSet_0(featureID, newValue){ + $eSet_1(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_0(){ + return $clinit_ElkGraphPackage$Literals() , EMAP_PROPERTY_HOLDER; +} +; +_.eUnset = function eUnset_0(featureID){ + $eUnset_1(this, featureID); +} +; +_.getAllProperties = function getAllProperties_0(){ + return $getAllProperties_0(this); +} +; +_.getProperty = function getProperty_3(property){ + return $getProperty_0(this, property); +} +; +_.hasProperty = function hasProperty_3(property){ + return $hasProperty_0(this, property); +} +; +_.setProperty = function setProperty_0(property, value_0){ + return $setProperty_1(this, property, value_0); +} +; +var Lorg_eclipse_elk_graph_impl_EMapPropertyHolderImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'EMapPropertyHolderImpl', 1985); +function $set_10(this$static, x_0, y_0){ + $setX_1(this$static, x_0); + $setY_2(this$static, y_0); +} + +function $setX_1(this$static, newX){ + var oldX; + oldX = this$static.x_0; + this$static.x_0 = newX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 0, oldX, this$static.x_0)); +} + +function $setY_2(this$static, newY){ + var oldY; + oldY = this$static.y_0; + this$static.y_0 = newY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldY, this$static.y_0)); +} + +function ElkBendPointImpl(){ +} + +defineClass(567, 115, {105:1, 469:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkBendPointImpl); +_.eGet = function eGet_3(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.x_0; + case 1: + return this.y_0; + } + return $eGet(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_2(featureID){ + switch (featureID) { + case 0: + return this.x_0 != 0; + case 1: + return this.y_0 != 0; + } + return $eIsSet(this, featureID); +} +; +_.eSet = function eSet_1(featureID, newValue){ + switch (featureID) { + case 0: + $setX_1(this, $doubleValue(castToDouble(newValue))); + return; + case 1: + $setY_2(this, $doubleValue(castToDouble(newValue))); + return; + } + $eSet(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_1(){ + return $clinit_ElkGraphPackage$Literals() , ELK_BEND_POINT; +} +; +_.eUnset = function eUnset_1(featureID){ + switch (featureID) { + case 0: + $setX_1(this, 0); + return; + case 1: + $setY_2(this, 0); + return; + } + $eUnset(this, featureID); +} +; +_.toString_0 = function toString_123(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (x: '; + $append_0(result, this.x_0); + result.string += ', y: '; + $append_0(result, this.y_0); + result.string += ')'; + return result.string; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_graph_impl_ElkBendPointImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkBendPointImpl', 567); +function $eGet_4(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 1: + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , this$static.labels; + case 2: + return this$static.identifier; + } + return $eGet_3(this$static, featureID, resolve, coreType); +} + +function $eInverseAdd_0(this$static, otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 1) { + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicAdd_0(this$static.labels, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); +} + +function $eInverseRemove_1(this$static, otherEnd, featureID, msgs){ + if (featureID == 1) { + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicRemove_0(this$static.labels, otherEnd, msgs); + } + return $eInverseRemove_0(this$static, otherEnd, featureID, msgs); +} + +function $eIsSet_2(this$static, featureID){ + switch (featureID) { + case 1: + return !!this$static.labels && this$static.labels.size_0 != 0; + case 2: + return this$static.identifier != null; + } + return $eIsSet_1(this$static, featureID); +} + +function $eSet_2(this$static, featureID, newValue){ + switch (featureID) { + case 1: + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $clear_13(this$static.labels); + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $addAll_9(this$static.labels, castTo(newValue, 14)); + return; + case 2: + $setIdentifier(this$static, castToString(newValue)); + return; + } + $eSet_1(this$static, featureID, newValue); +} + +function $eUnset_2(this$static, featureID){ + switch (featureID) { + case 1: + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $clear_13(this$static.labels); + return; + case 2: + $setIdentifier(this$static, null); + return; + } + $eUnset_1(this$static, featureID); +} + +function $getLabels_1(this$static){ + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + return this$static.labels; +} + +function $setIdentifier(this$static, newIdentifier){ + var oldIdentifier; + oldIdentifier = this$static.identifier; + this$static.identifier = newIdentifier; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldIdentifier, this$static.identifier)); +} + +function $toString_17(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (identifier: '; + $append_3(result, this$static.identifier); + result.string += ')'; + return result.string; +} + +defineClass(723, 1985, {105:1, 413:1, 160:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_4(featureID, resolve, coreType){ + return $eGet_4(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_1(otherEnd, featureID, msgs){ + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_2(otherEnd, featureID, msgs){ + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_3(featureID){ + return $eIsSet_2(this, featureID); +} +; +_.eSet = function eSet_2(featureID, newValue){ + $eSet_2(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_2(){ + return $clinit_ElkGraphPackage$Literals() , ELK_GRAPH_ELEMENT; +} +; +_.eUnset = function eUnset_2(featureID){ + $eUnset_2(this, featureID); +} +; +_.getIdentifier = function getIdentifier_0(){ + return this.identifier; +} +; +_.getLabels_0 = function getLabels_5(){ + return $getLabels_1(this); +} +; +_.toString_0 = function toString_124(){ + return $toString_17(this); +} +; +_.identifier = null; +var Lorg_eclipse_elk_graph_impl_ElkGraphElementImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphElementImpl', 723); +function $eGet_5(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 3: + return this$static.height; + case 4: + return this$static.width_0; + case 5: + return this$static.x_0; + case 6: + return this$static.y_0; + } + return $eGet_4(this$static, featureID, resolve, coreType); +} + +function $eIsSet_3(this$static, featureID){ + switch (featureID) { + case 3: + return this$static.height != 0; + case 4: + return this$static.width_0 != 0; + case 5: + return this$static.x_0 != 0; + case 6: + return this$static.y_0 != 0; + } + return $eIsSet_2(this$static, featureID); +} + +function $eSet_3(this$static, featureID, newValue){ + switch (featureID) { + case 3: + $setHeight_0(this$static, $doubleValue(castToDouble(newValue))); + return; + case 4: + $setWidth_0(this$static, $doubleValue(castToDouble(newValue))); + return; + case 5: + $setX_2(this$static, $doubleValue(castToDouble(newValue))); + return; + case 6: + $setY_3(this$static, $doubleValue(castToDouble(newValue))); + return; + } + $eSet_2(this$static, featureID, newValue); +} + +function $eUnset_3(this$static, featureID){ + switch (featureID) { + case 3: + $setHeight_0(this$static, 0); + return; + case 4: + $setWidth_0(this$static, 0); + return; + case 5: + $setX_2(this$static, 0); + return; + case 6: + $setY_3(this$static, 0); + return; + } + $eUnset_2(this$static, featureID); +} + +function $setDimensions_0(this$static, width_0, height){ + $setWidth_0(this$static, width_0); + $setHeight_0(this$static, height); +} + +function $setHeight_0(this$static, newHeight){ + var oldHeight; + oldHeight = this$static.height; + this$static.height = newHeight; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldHeight, this$static.height)); +} + +function $setLocation_1(this$static, x_0, y_0){ + $setX_2(this$static, x_0); + $setY_3(this$static, y_0); +} + +function $setWidth_0(this$static, newWidth){ + var oldWidth; + oldWidth = this$static.width_0; + this$static.width_0 = newWidth; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldWidth, this$static.width_0)); +} + +function $setX_2(this$static, newX){ + var oldX; + oldX = this$static.x_0; + this$static.x_0 = newX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 5, oldX, this$static.x_0)); +} + +function $setY_3(this$static, newY){ + var oldY; + oldY = this$static.y_0; + this$static.y_0 = newY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 6, oldY, this$static.y_0)); +} + +function $toString_18(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_17(this$static); + result = new StringBuffer_1($toString_17(this$static)); + result.string += ' (height: '; + $append_0(result, this$static.height); + result.string += ', width: '; + $append_0(result, this$static.width_0); + result.string += ', x: '; + $append_0(result, this$static.x_0); + result.string += ', y: '; + $append_0(result, this$static.y_0); + result.string += ')'; + return result.string; +} + +defineClass(724, 723, {105:1, 413:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_5(featureID, resolve, coreType){ + return $eGet_5(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_4(featureID){ + return $eIsSet_3(this, featureID); +} +; +_.eSet = function eSet_3(featureID, newValue){ + $eSet_3(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_3(){ + return $clinit_ElkGraphPackage$Literals() , ELK_SHAPE; +} +; +_.eUnset = function eUnset_3(featureID){ + $eUnset_3(this, featureID); +} +; +_.getHeight = function getHeight(){ + return this.height; +} +; +_.getWidth = function getWidth(){ + return this.width_0; +} +; +_.getX = function getX(){ + return this.x_0; +} +; +_.getY = function getY(){ + return this.y_0; +} +; +_.setDimensions = function setDimensions(width_0, height){ + $setDimensions_0(this, width_0, height); +} +; +_.setLocation = function setLocation(x_0, y_0){ + $setLocation_1(this, x_0, y_0); +} +; +_.setX = function setX(newX){ + $setX_2(this, newX); +} +; +_.setY = function setY(newY){ + $setY_3(this, newY); +} +; +_.toString_0 = function toString_125(){ + return $toString_18(this); +} +; +_.height = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_graph_impl_ElkShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkShapeImpl', 724); +function $eGet_6(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , this$static.outgoingEdges; + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , this$static.incomingEdges; + } + return $eGet_5(this$static, featureID, resolve, coreType); +} + +function $eInverseAdd_1(this$static, otherEnd, featureID, msgs){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicAdd_0(this$static.outgoingEdges, otherEnd, msgs); + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicAdd_0(this$static.incomingEdges, otherEnd, msgs); + } + return $eInverseAdd_0(this$static, otherEnd, featureID, msgs); +} + +function $eInverseRemove_2(this$static, otherEnd, featureID, msgs){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicRemove_0(this$static.outgoingEdges, otherEnd, msgs); + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicRemove_0(this$static.incomingEdges, otherEnd, msgs); + } + return $eInverseRemove_1(this$static, otherEnd, featureID, msgs); +} + +function $eIsSet_4(this$static, featureID){ + switch (featureID) { + case 7: + return !!this$static.outgoingEdges && this$static.outgoingEdges.size_0 != 0; + case 8: + return !!this$static.incomingEdges && this$static.incomingEdges.size_0 != 0; + } + return $eIsSet_3(this$static, featureID); +} + +function $eSet_4(this$static, featureID, newValue){ + switch (featureID) { + case 7: + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $clear_13(this$static.outgoingEdges); + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $addAll_9(this$static.outgoingEdges, castTo(newValue, 14)); + return; + case 8: + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $clear_13(this$static.incomingEdges); + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $addAll_9(this$static.incomingEdges, castTo(newValue, 14)); + return; + } + $eSet_3(this$static, featureID, newValue); +} + +function $eUnset_4(this$static, featureID){ + switch (featureID) { + case 7: + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $clear_13(this$static.outgoingEdges); + return; + case 8: + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $clear_13(this$static.incomingEdges); + return; + } + $eUnset_3(this$static, featureID); +} + +function ElkConnectableShapeImpl(){ +} + +defineClass(725, 724, {105:1, 413:1, 82:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_6(featureID, resolve, coreType){ + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_2(otherEnd, featureID, msgs){ + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_3(otherEnd, featureID, msgs){ + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_5(featureID){ + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_4(featureID, newValue){ + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_4(){ + return $clinit_ElkGraphPackage$Literals() , ELK_CONNECTABLE_SHAPE; +} +; +_.eUnset = function eUnset_4(featureID){ + $eUnset_4(this, featureID); +} +; +_.getIncomingEdges_0 = function getIncomingEdges_3(){ + return !this.incomingEdges && (this.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 8, 5)) , this.incomingEdges; +} +; +_.getOutgoingEdges_0 = function getOutgoingEdges_3(){ + return !this.outgoingEdges && (this.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 7, 4)) , this.outgoingEdges; +} +; +var Lorg_eclipse_elk_graph_impl_ElkConnectableShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkConnectableShapeImpl', 725); +function $basicSetContainingNode(this$static, newContainingNode, msgs){ + msgs = $eBasicSetContainer(this$static, newContainingNode, 3, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 3) { + return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getContainingNode(this$static){ + if (this$static.eFlags_0 >> 16 != 3) + return null; + return castTo(this$static.eContainer, 33); +} + +function $getSources(this$static){ + !this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)); + return this$static.sources; +} + +function $getTargets(this$static){ + !this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)); + return this$static.targets; +} + +function $isHierarchical(this$static){ + var commonRepresentingNode, incidentShape, incidentShape$iterator, shapeNode; + commonRepresentingNode = null; + for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { + incidentShape = castTo($next_0(incidentShape$iterator), 82); + shapeNode = connectableShapeToNode(incidentShape); + if (!commonRepresentingNode) { + commonRepresentingNode = $getParent_2(shapeNode); + } + else if (commonRepresentingNode != $getParent_2(shapeNode)) { + return true; + } + } + return false; +} + +function $isSelfloop(this$static){ + var commonNode, incidentShape, incidentShape$iterator, shapeNode; + commonNode = null; + for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { + incidentShape = castTo($next_0(incidentShape$iterator), 82); + shapeNode = connectableShapeToNode(incidentShape); + if (!commonNode) { + commonNode = shapeNode; + } + else if (commonNode != shapeNode) { + return false; + } + } + return true; +} + +function $setContainingNode(this$static, newContainingNode){ + var eContainerFeatureID, msgs; + if (newContainingNode != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newContainingNode) { + if (isAncestor(this$static, newContainingNode)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_19(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newContainingNode && (msgs = $eInverseAdd(newContainingNode, this$static, 12, msgs)); + msgs = $basicSetContainingNode(this$static, newContainingNode, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newContainingNode, newContainingNode)); +} + +function $toString_19(this$static){ + var builder, hyperedge, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_17(this$static); + builder = new StringBuilder_1('ElkEdge'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + hyperedge = (!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , !(this$static.sources.size_0 <= 1 && (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets.size_0 <= 1))); + hyperedge?(builder.string += ' [' , builder):(builder.string += ' ' , builder); + $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.sources))); + hyperedge && (builder.string += ']' , builder); + builder.string += ' -> '; + hyperedge && (builder.string += '[' , builder); + $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.targets))); + hyperedge && (builder.string += ']' , builder); + return builder.string; +} + +function ElkEdgeImpl(){ +} + +defineClass(352, 723, {105:1, 413:1, 79:1, 160:1, 352:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_0(msgs){ + return $eBasicRemoveFromContainerFeature(this, msgs); +} +; +_.eGet = function eGet_7(featureID, resolve, coreType){ + switch (featureID) { + case 3: + return $getContainingNode(this); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources; + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets; + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , this.sections; + case 7: + return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)?false:true; + case 8: + return $clinit_Boolean() , $isHierarchical(this)?true:false; + case 9: + return $clinit_Boolean() , $isSelfloop(this)?true:false; + case 10: + return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0)?true:false; + } + return $eGet_4(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_3(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 3: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetContainingNode(this, castTo(otherEnd, 33), msgs); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicAdd_0(this.sources, otherEnd, msgs); + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicAdd_0(this.targets, otherEnd, msgs); + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicAdd_0(this.sections, otherEnd, msgs); + } + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_4(otherEnd, featureID, msgs){ + switch (featureID) { + case 3: + return $basicSetContainingNode(this, null, msgs); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicRemove_0(this.sources, otherEnd, msgs); + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicRemove_0(this.targets, otherEnd, msgs); + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicRemove_0(this.sections, otherEnd, msgs); + } + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_6(featureID){ + switch (featureID) { + case 3: + return !!$getContainingNode(this); + case 4: + return !!this.sources && this.sources.size_0 != 0; + case 5: + return !!this.targets && this.targets.size_0 != 0; + case 6: + return !!this.sections && this.sections.size_0 != 0; + case 7: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , !(this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)); + case 8: + return $isHierarchical(this); + case 9: + return $isSelfloop(this); + case 10: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0); + } + return $eIsSet_2(this, featureID); +} +; +_.eSet = function eSet_5(featureID, newValue){ + switch (featureID) { + case 3: + $setContainingNode(this, castTo(newValue, 33)); + return; + case 4: + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $clear_13(this.sources); + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $addAll_9(this.sources, castTo(newValue, 14)); + return; + case 5: + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $clear_13(this.targets); + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $addAll_9(this.targets, castTo(newValue, 14)); + return; + case 6: + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $clear_13(this.sections); + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $addAll_9(this.sections, castTo(newValue, 14)); + return; + } + $eSet_2(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_5(){ + return $clinit_ElkGraphPackage$Literals() , ELK_EDGE; +} +; +_.eUnset = function eUnset_5(featureID){ + switch (featureID) { + case 3: + $setContainingNode(this, null); + return; + case 4: + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $clear_13(this.sources); + return; + case 5: + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $clear_13(this.targets); + return; + case 6: + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $clear_13(this.sections); + return; + } + $eUnset_2(this, featureID); +} +; +_.toString_0 = function toString_126(){ + return $toString_19(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkEdgeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeImpl', 352); +function $basicSetParent(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 6, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_0(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 6) { + return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getIncomingShape(this$static){ + var oldIncomingShape; + if (!!this$static.incomingShape && this$static.incomingShape.eIsProxy()) { + oldIncomingShape = castTo(this$static.incomingShape, 49); + this$static.incomingShape = castTo($eResolveProxy(this$static, oldIncomingShape), 82); + this$static.incomingShape != oldIncomingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldIncomingShape, this$static.incomingShape)); + } + return this$static.incomingShape; +} + +function $getOutgoingShape(this$static){ + var oldOutgoingShape; + if (!!this$static.outgoingShape && this$static.outgoingShape.eIsProxy()) { + oldOutgoingShape = castTo(this$static.outgoingShape, 49); + this$static.outgoingShape = castTo($eResolveProxy(this$static, oldOutgoingShape), 82); + this$static.outgoingShape != oldOutgoingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 7, oldOutgoingShape, this$static.outgoingShape)); + } + return this$static.outgoingShape; +} + +function $getParent_0(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 79); +} + +function $setEndLocation(this$static, x_0, y_0){ + $setEndX(this$static, x_0); + $setEndY(this$static, y_0); +} + +function $setEndX(this$static, newEndX){ + var oldEndX; + oldEndX = this$static.endX; + this$static.endX = newEndX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldEndX, this$static.endX)); +} + +function $setEndY(this$static, newEndY){ + var oldEndY; + oldEndY = this$static.endY; + this$static.endY = newEndY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldEndY, this$static.endY)); +} + +function $setIdentifier_0(this$static, newIdentifier){ + var oldIdentifier; + oldIdentifier = this$static.identifier; + this$static.identifier = newIdentifier; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, oldIdentifier, this$static.identifier)); +} + +function $setIncomingShape(this$static, newIncomingShape){ + var oldIncomingShape; + oldIncomingShape = this$static.incomingShape; + this$static.incomingShape = newIncomingShape; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldIncomingShape, this$static.incomingShape)); +} + +function $setOutgoingShape(this$static, newOutgoingShape){ + var oldOutgoingShape; + oldOutgoingShape = this$static.outgoingShape; + this$static.outgoingShape = newOutgoingShape; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, oldOutgoingShape, this$static.outgoingShape)); +} + +function $setParent_0(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 6 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_20(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 6, msgs)); + msgs = $basicSetParent(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 6, newParent, newParent)); +} + +function $setStartLocation(this$static, x_0, y_0){ + $setStartX(this$static, x_0); + $setStartY(this$static, y_0); +} + +function $setStartX(this$static, newStartX){ + var oldStartX; + oldStartX = this$static.startX; + this$static.startX = newStartX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldStartX, this$static.startX)); +} + +function $setStartY(this$static, newStartY){ + var oldStartY; + oldStartY = this$static.startY; + this$static.startY = newStartY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 2, oldStartY, this$static.startY)); +} + +function $toString_20(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (startX: '; + $append_0(result, this$static.startX); + result.string += ', startY: '; + $append_0(result, this$static.startY); + result.string += ', endX: '; + $append_0(result, this$static.endX); + result.string += ', endY: '; + $append_0(result, this$static.endY); + result.string += ', identifier: '; + $append_3(result, this$static.identifier); + result.string += ')'; + return result.string; +} + +function ElkEdgeSectionImpl(){ +} + +defineClass(439, 1985, {105:1, 413:1, 202:1, 439:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeSectionImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_1(msgs){ + return $eBasicRemoveFromContainerFeature_0(this, msgs); +} +; +_.eGet = function eGet_8(featureID, resolve, coreType){ + switch (featureID) { + case 1: + return this.startX; + case 2: + return this.startY; + case 3: + return this.endX; + case 4: + return this.endY; + case 5: + return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , this.bendPoints; + case 6: + return $getParent_0(this); + case 7: + if (resolve) + return $getOutgoingShape(this); + return this.outgoingShape; + case 8: + if (resolve) + return $getIncomingShape(this); + return this.incomingShape; + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , this.outgoingSections; + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , this.incomingSections; + case 11: + return this.identifier; + } + return $eGet_3(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_4(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent(this, castTo(otherEnd, 79), msgs); + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicAdd_0(this.outgoingSections, otherEnd, msgs); + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicAdd_0(this.incomingSections, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_5(otherEnd, featureID, msgs){ + switch (featureID) { + case 5: + return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , $basicRemove_0(this.bendPoints, otherEnd, msgs); + case 6: + return $basicSetParent(this, null, msgs); + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicRemove_0(this.outgoingSections, otherEnd, msgs); + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicRemove_0(this.incomingSections, otherEnd, msgs); + } + return $eInverseRemove_0(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_7(featureID){ + switch (featureID) { + case 1: + return this.startX != 0; + case 2: + return this.startY != 0; + case 3: + return this.endX != 0; + case 4: + return this.endY != 0; + case 5: + return !!this.bendPoints && this.bendPoints.size_0 != 0; + case 6: + return !!$getParent_0(this); + case 7: + return !!this.outgoingShape; + case 8: + return !!this.incomingShape; + case 9: + return !!this.outgoingSections && this.outgoingSections.size_0 != 0; + case 10: + return !!this.incomingSections && this.incomingSections.size_0 != 0; + case 11: + return this.identifier != null; + } + return $eIsSet_1(this, featureID); +} +; +_.eSet = function eSet_6(featureID, newValue){ + switch (featureID) { + case 1: + $setStartX(this, $doubleValue(castToDouble(newValue))); + return; + case 2: + $setStartY(this, $doubleValue(castToDouble(newValue))); + return; + case 3: + $setEndX(this, $doubleValue(castToDouble(newValue))); + return; + case 4: + $setEndY(this, $doubleValue(castToDouble(newValue))); + return; + case 5: + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $clear_13(this.bendPoints); + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $addAll_9(this.bendPoints, castTo(newValue, 14)); + return; + case 6: + $setParent_0(this, castTo(newValue, 79)); + return; + case 7: + $setOutgoingShape(this, castTo(newValue, 82)); + return; + case 8: + $setIncomingShape(this, castTo(newValue, 82)); + return; + case 9: + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $clear_13(this.outgoingSections); + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $addAll_9(this.outgoingSections, castTo(newValue, 14)); + return; + case 10: + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $clear_13(this.incomingSections); + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $addAll_9(this.incomingSections, castTo(newValue, 14)); + return; + case 11: + $setIdentifier_0(this, castToString(newValue)); + return; + } + $eSet_1(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_6(){ + return $clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION; +} +; +_.eUnset = function eUnset_6(featureID){ + switch (featureID) { + case 1: + $setStartX(this, 0); + return; + case 2: + $setStartY(this, 0); + return; + case 3: + $setEndX(this, 0); + return; + case 4: + $setEndY(this, 0); + return; + case 5: + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $clear_13(this.bendPoints); + return; + case 6: + $setParent_0(this, null); + return; + case 7: + $setOutgoingShape(this, null); + return; + case 8: + $setIncomingShape(this, null); + return; + case 9: + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $clear_13(this.outgoingSections); + return; + case 10: + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $clear_13(this.incomingSections); + return; + case 11: + $setIdentifier_0(this, null); + return; + } + $eUnset_1(this, featureID); +} +; +_.toString_0 = function toString_127(){ + return $toString_20(this); +} +; +_.endX = 0; +_.endY = 0; +_.identifier = null; +_.startX = 0; +_.startY = 0; +var Lorg_eclipse_elk_graph_impl_ElkEdgeSectionImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeSectionImpl', 439); +function $eObjectForURIFragmentSegment_0(this$static, uriFragmentSegment){ + var count, count0, eAnnotation, eNamedElement, encodedSource, exception, firstCharacter, hasCount, index_0, index0, length_0, name_0, object, object$iterator, object$iterator0, otherName, otherSource, source; + length_0 = uriFragmentSegment.length; + if (length_0 > 0) { + firstCharacter = (checkCriticalStringElementIndex(0, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(0)); + if (firstCharacter != 64) { + if (firstCharacter == 37) { + index0 = uriFragmentSegment.lastIndexOf('%'); + hasCount = false; + if (index0 != 0 && (index0 == length_0 - 1 || (hasCount = (checkCriticalStringElementIndex(index0 + 1, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(index0 + 1) == 46)))) { + encodedSource = uriFragmentSegment.substr(1, index0 - 1); + source = $equals_5('%', encodedSource)?null:decode(encodedSource); + count0 = 0; + if (hasCount) { + try { + count0 = __parseAndValidateInt(uriFragmentSegment.substr(index0 + 2), $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + } + for (object$iterator0 = $iterator_1(this$static.eContents_0()); object$iterator0.hasNext_0();) { + object = $next_15(object$iterator0); + if (instanceOf(object, 510)) { + eAnnotation = castTo(object, 590); + otherSource = eAnnotation.source; + if ((source == null?otherSource == null:$equals_5(source, otherSource)) && count0-- == 0) { + return eAnnotation; + } + } + } + return null; + } + } + index_0 = uriFragmentSegment.lastIndexOf('.'); + name_0 = index_0 == -1?uriFragmentSegment:uriFragmentSegment.substr(0, index_0); + count = 0; + if (index_0 != -1) { + try { + count = __parseAndValidateInt(uriFragmentSegment.substr(index_0 + 1), $intern_42, $intern_0); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + name_0 = uriFragmentSegment; + } + else + throw toJs($e1); + } + } + name_0 = $equals_5('%', name_0)?null:decode(name_0); + for (object$iterator = $iterator_1(this$static.eContents_0()); object$iterator.hasNext_0();) { + object = $next_15(object$iterator); + if (instanceOf(object, 191)) { + eNamedElement = castTo(object, 191); + otherName = eNamedElement.getName(); + if ((name_0 == null?otherName == null:$equals_5(name_0, otherName)) && count-- == 0) { + return eNamedElement; + } + } + } + return null; + } + } + return $eObjectForURIFragmentSegment(this$static, uriFragmentSegment); +} + +function $freeze(eModelElement){ + instanceOf(eModelElement, 150) && castTo(eModelElement, 150).freeze(); +} + +function $getEAnnotation(this$static, source){ + var eAnnotation, eAnnotation$iterator, eAnnotationArray, i, size_0; + if (this$static.eAnnotations) { + if (this$static.eAnnotations) { + size_0 = this$static.eAnnotations.size_0; + if (size_0 > 0) { + eAnnotationArray = castTo(this$static.eAnnotations.data_0, 1934); + if (source == null) { + for (i = 0; i < size_0; ++i) { + eAnnotation = eAnnotationArray[i]; + if (eAnnotation.source == null) { + return eAnnotation; + } + } + } + else { + for (i = 0; i < size_0; ++i) { + eAnnotation = eAnnotationArray[i]; + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + else { + if (source == null) { + for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { + eAnnotation = castTo($doNext(eAnnotation$iterator), 590); + if (eAnnotation.source == null) { + return eAnnotation; + } + } + } + else { + for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { + eAnnotation = castTo($doNext(eAnnotation$iterator), 590); + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + return null; +} + +defineClass(150, 115, {105:1, 92:1, 90:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); +_.eGet = function eGet_9(featureID, resolve, coreType){ + var eClass; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_5(otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_6(otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_8(featureID){ + var eClass; + if (featureID == 0) { + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_0(uriFragmentSegment){ + return $eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_7(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eSetDirectResource = function eSetDirectResource_1(resource){ + $setField(this, 128, resource); +} +; +_.eStaticClass = function eStaticClass_7(){ + return $clinit_EcorePackage$Literals() , EMODEL_ELEMENT; +} +; +_.eUnset = function eUnset_7(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze(){ + this.eFlags |= 1; +} +; +_.getEAnnotation = function getEAnnotation(source){ + return $getEAnnotation(this, source); +} +; +_.eFlags = 0; +var Lorg_eclipse_emf_ecore_impl_EModelElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EModelElementImpl', 150); +function $clinit_EFactoryImpl(){ + $clinit_EFactoryImpl = emptyMethod; + HEX_DIGITS = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); + WHITE_SPACE = new RegExp('[ \t\n\r\f]+'); + try { + EDATE_FORMATS = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit, 1), $intern_2, 2015, 0, [new EFactoryImpl$1ClientInternalEDateTimeFormat(($clinit_DateTimeFormat_0() , getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0))))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat('yyyy-MM-dd', $getDateTimeFormatInfo((null , instance_0))))]); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 78)) + throw toJs($e0); + } +} + +function $basicSetEPackage(this$static, newEPackage, msgs){ + var notification, oldEPackage; + oldEPackage = this$static.ePackage; + this$static.ePackage = newEPackage; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 1, oldEPackage, newEPackage); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $bytesToHexString(bytes, count){ + var high, i, j, low, result; + if (bytes == null) { + return null; + } + else { + result = initUnidimensionalArray(C_classLit, $intern_44, 25, 2 * count, 15, 1); + for (i = 0 , j = 0; i < count; ++i) { + high = bytes[i] >> 4 & 15; + low = bytes[i] & 15; + result[j++] = HEX_DIGITS[high]; + result[j++] = HEX_DIGITS[low]; + } + return valueOf_9(result, 0, result.length); + } +} + +function $convertToString(this$static, eDataType, objectValue){ + var baseType, item_0, item$iterator, itemType, list, memberType, memberType$iterator, memberTypes, result; + if (this$static.ePackage != eDataType.getEPackage()) { + throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } + baseType = $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getBaseType(); + if (baseType) { + return baseType.getEPackage().getEFactoryInstance().convertToString(baseType, objectValue); + } + itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); + if (itemType) { + if (objectValue == null) { + return null; + } + list = castTo(objectValue, 15); + if (list.isEmpty()) { + return ''; + } + result = new StringBuffer; + for (item$iterator = list.iterator_0(); item$iterator.hasNext_0();) { + item_0 = item$iterator.next_1(); + $append_3(result, itemType.getEPackage().getEFactoryInstance().convertToString(itemType, item_0)); + result.string += ' '; + } + return $substring(result, result.string.length - 1); + } + memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); + if (!memberTypes.isEmpty()) { + for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { + memberType = castTo(memberType$iterator.next_1(), 148); + if (memberType.isInstance(objectValue)) { + try { + result = memberType.getEPackage().getEFactoryInstance().convertToString(memberType, objectValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 102)) + throw toJs($e0); + } + } + } + throw toJs(new IllegalArgumentException_0("Invalid value: '" + objectValue + "' for datatype :" + eDataType.getName())); + } + castTo(eDataType, 834).getConversionDelegate(); + return objectValue == null?null:instanceOf(objectValue, 172)?'' + castTo(objectValue, 172).value_0:getClass__Ljava_lang_Class___devirtual$(objectValue) == Ljava_util_Date_2_classLit?$format_0(EDATE_FORMATS[0], castTo(objectValue, 199)):toString_40(objectValue); +} + +function $createFromString(this$static, eDataType, stringValue){ + var baseType, c, carray, charValue, i, item_0, item$array, item$index, item$max, itemType, memberType, memberType$iterator, memberTypes, result; + if (stringValue == null) { + return null; + } + if (this$static.ePackage != eDataType.getEPackage()) { + throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } + if (instanceOf(eDataType, 457)) { + result = $getEEnumLiteralByLiteral(castTo(eDataType, 671), stringValue); + if (!result) { + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a valid enumerator of '" + eDataType.getName() + "'")); + } + return result; + } + switch ($getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getWhiteSpaceFacet()) { + case 2: + { + stringValue = normalize(stringValue, false); + break; + } + + case 3: + { + stringValue = normalize(stringValue, true); + break; + } + + } + baseType = $getExtendedMetaData(INSTANCE_11, eDataType).getBaseType(); + if (baseType) { + return baseType.getEPackage().getEFactoryInstance().createFromString(baseType, stringValue); + } + itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); + if (itemType) { + result = new ArrayList; + for (item$array = $split_5(stringValue) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, itemType.getEPackage().getEFactoryInstance().createFromString(itemType, item_0)); + } + return result; + } + memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); + if (!memberTypes.isEmpty()) { + for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { + memberType = castTo(memberType$iterator.next_1(), 148); + try { + result = memberType.getEPackage().getEFactoryInstance().createFromString(memberType, stringValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' does not match any member types of the union datatype '" + eDataType.getName() + "'")); + } + castTo(eDataType, 834).getConversionDelegate(); + c = wrapperClassFor(eDataType.getInstanceClass()); + if (!c) + return null; + if (c == Ljava_lang_Character_2_classLit) { + charValue = 0; + try { + charValue = __parseAndValidateInt(stringValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + carray = $toCharArray(stringValue); + charValue = carray[0]; + } + else + throw toJs($e1); + } + return valueOf_3(charValue); + } + if (c == Ljava_util_Date_2_classLit) { + for (i = 0; i < EDATE_FORMATS.length; ++i) { + try { + return $parse_2(EDATE_FORMATS[i], stringValue); + } + catch ($e2) { + $e2 = toJava($e2); + if (!instanceOf($e2, 32)) + throw toJs($e2); + } + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is invalid. ")); +} + +function $hexStringToBytes(initialValue){ + var high, i, j, limit, low, result, size_0; + if (initialValue == null) { + return null; + } + size_0 = initialValue.length; + limit = (size_0 + 1) / 2 | 0; + result = initUnidimensionalArray(B_classLit, $intern_136, 25, limit, 15, 1); + size_0 % 2 != 0 && (result[--limit] = hexCharToByte((checkCriticalStringElementIndex(size_0 - 1, initialValue.length) , initialValue.charCodeAt(size_0 - 1)))); + for (i = 0 , j = 0; i < limit; ++i) { + high = hexCharToByte($charAt(initialValue, j++)); + low = hexCharToByte($charAt(initialValue, j++)); + result[i] = (high << 4 | low) << 24 >> 24; + } + return result; +} + +function $setEPackage(this$static, newEPackage){ + var msgs; + if (newEPackage != this$static.ePackage) { + msgs = null; + !!this$static.ePackage && (msgs = castTo(this$static.ePackage, 49).eInverseRemove(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + !!newEPackage && (msgs = castTo(newEPackage, 49).eInverseAdd(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + msgs = $basicSetEPackage(this$static, newEPackage, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, newEPackage, newEPackage)); +} + +function $split_5(value_0){ + var i, length_0, result, split_0; + split_0 = $split(WHITE_SPACE, value_0); + length_0 = split_0.length; + result = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, length_0, 6, 1); + for (i = 0; i < length_0; ++i) { + result[i] = split_0[i]; + } + return result; +} + +function EFactoryImpl(){ + $clinit_EFactoryImpl(); +} + +function hexCharToByte(character){ + switch (character) { + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + { + return character - 48 << 24 >> 24; + } + + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + { + return character - 97 + 10 << 24 >> 24; + } + + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + { + return character - 65 + 10 << 24 >> 24; + } + + default:{ + throw toJs(new NumberFormatException('Invalid hexadecimal')); + } + + } +} + +defineClass(704, 150, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EFactoryImpl); +_.convertToString = function convertToString(eDataType, objectValue){ + return $convertToString(this, eDataType, objectValue); +} +; +_.create_3 = function create_40(eClass){ + var eGenericType, eSuperType, eSuperTypes, result, result0; + if (this.ePackage != $getEPackage(eClass) || (eClass.eFlags & 256) != 0) { + throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } + for (eSuperTypes = $getESuperTypes(eClass); $getEGenericSuperTypes(eSuperTypes.this$01).size_0 != 0;) { + eSuperType = castTo($resolve_1(eSuperTypes, 0, (eGenericType = castTo($get_20($getEGenericSuperTypes(eSuperTypes.this$01), 0), 87) , result0 = eGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + if ($getInstanceClass(eSuperType)) { + result = $getEPackage(eSuperType).getEFactoryInstance().create_3(eSuperType); + castTo(result, 49).eSetClass(eClass); + return result; + } + eSuperTypes = $getESuperTypes(eSuperType); + } + return (eClass.instanceClassName != null?eClass.instanceClassName:eClass.generatedInstanceClassName) == 'java.util.Map$Entry'?new DynamicEObjectImpl$BasicEMapEntry(eClass):new DynamicEObjectImpl(eClass); +} +; +_.createFromString = function createFromString(eDataType, stringValue){ + return $createFromString(this, eDataType, stringValue); +} +; +_.eGet = function eGet_10(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.ePackage; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_6(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 1: + !!this.ePackage && (msgs = castTo(this.ePackage, 49).eInverseRemove(this, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + return $basicSetEPackage(this, castTo(otherEnd, 235), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_7(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 1: + return $basicSetEPackage(this, null, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_9(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return !!this.ePackage; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); +} +; +_.eSet = function eSet_8(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setEPackage(this, castTo(newValue, 235)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_8(){ + return $clinit_EcorePackage$Literals() , EFACTORY; +} +; +_.eUnset = function eUnset_8(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setEPackage(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); +} +; +var EDATE_FORMATS, HEX_DIGITS, WHITE_SPACE; +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl', 704); +function ElkGraphFactoryImpl(){ +} + +function init_1(){ + $clinit_EFactoryImpl(); + var exception, theElkGraphFactory; + try { + theElkGraphFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2014); + if (theElkGraphFactory) { + return theElkGraphFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new ElkGraphFactoryImpl; +} + +defineClass($intern_137, 704, {105:1, 2014:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, ElkGraphFactoryImpl); +_.convertToString = function convertToString_0(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 12: + return castTo(instanceValue, 146).getId(); + case 13: + return toString_40(instanceValue); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_41(eClass){ + var ePackage, elkBendPoint, elkEdge, elkEdgeSection, elkLabel, elkNode, elkPort, elkPropertyToValueMapEntry; + switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { + case 4: + return elkLabel = new ElkLabelImpl , elkLabel; + case 6: + return elkNode = new ElkNodeImpl , elkNode; + case 7: + return elkPort = new ElkPortImpl , elkPort; + case 8: + return elkEdge = new ElkEdgeImpl , elkEdge; + case 9: + return elkBendPoint = new ElkBendPointImpl , elkBendPoint; + case 10: + return elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection; + case 11: + return elkPropertyToValueMapEntry = new ElkPropertyToValueMapEntryImpl , elkPropertyToValueMapEntry; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_0(eDataType, initialValue){ + switch (eDataType.getClassifierID()) { + case 13: + case 12: + return null; + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var Lorg_eclipse_elk_graph_impl_ElkGraphFactoryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphFactoryImpl', $intern_137); +function $setName(this$static, newName){ + var oldName; + oldName = this$static.name_0; + this$static.name_0 = newName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldName, this$static.name_0)); +} + +function $toString_21(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (name: '; + $append_3(result, this$static.name_0); + result.string += ')'; + return result.string; +} + +defineClass(438, 150, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); +_.eContents_0 = function eContents_2(){ + var eClass, eStructuralFeatures; + eStructuralFeatures = (eClass = castTo($getField(this, 16), 26) , $containments($getEAllStructuralFeatures(!eClass?this.eStaticClass():eClass))); + return eStructuralFeatures == null?($clinit_EContentsEList() , $clinit_EContentsEList() , EMPTY_CONTENTS_ELIST):new ENamedElementImpl$1(this, eStructuralFeatures); +} +; +_.eGet = function eGet_11(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.getName(); + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_10(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_9(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + this.setName(castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_9(){ + return $clinit_EcorePackage$Literals() , ENAMED_ELEMENT; +} +; +_.eUnset = function eUnset_9(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + this.setName(null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getName = function getName_5(){ + return this.name_0; +} +; +_.setName = function setName(newName){ + $setName(this, newName); +} +; +_.toString_0 = function toString_128(){ + return $toString_21(this); +} +; +_.name_0 = null; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl', 438); +function $addAnnotation(eNamedElement, source, details){ + var annotations, childAnnotations, eAnnotation, eAnnotation0, i, i0, theDetails; + eAnnotation0 = (eAnnotation = new EAnnotationImpl , eAnnotation); + $setSourceGen(eAnnotation0, (checkCriticalNotNull(source) , source)); + theDetails = (!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details); + for (i0 = 1; i0 < details.length; i0 += 2) { + $put_13(theDetails, details[i0 - 1], details[i0]); + } + annotations = (!eNamedElement.eAnnotations && (eNamedElement.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, eNamedElement, 0, 3)) , eNamedElement.eAnnotations); + for (i = 0; i < 0; ++i) { + childAnnotations = $getContents(castTo($get_20(annotations, annotations.size_0 - 1), 590)); + annotations = childAnnotations; + } + $add_21(annotations, eAnnotation0); +} + +function $addEException(owner, exception){ + $add_21((!owner.eExceptions && (owner.eExceptions = new EOperationImpl$1(owner, owner)) , owner.eExceptions), exception); +} + +function $addEOperation(owner, type_0, name_0){ + var eOperation, o; + o = (eOperation = new EOperationImpl , eOperation); + $initEOperation(o, type_0, name_0); + $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); + return o; +} + +function $addEParameter(owner, type_0, name_0){ + var p, p_0; + p = (p_0 = new EParameterImpl , $setEType(p_0, type_0) , $setName(p_0, name_0) , $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p_0) , p_0); + $setLowerBound(p, 0); + $setUpperBound(p, 1); + $setUnique_2(p, true); + $setOrdered(p, true); + return p; +} + +function $addEParameter_0(owner, type_0, name_0){ + var eParameter, msgs, p; + p = (eParameter = new EParameterImpl , eParameter); + msgs = $setEGenericType(p, type_0, null); + !!msgs && msgs.dispatch_0(); + $setName(p, name_0); + $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p); + $setLowerBound(p, 0); + $setUpperBound(p, 1); + $setUnique_2(p, true); + $setOrdered(p, true); +} + +function $addETypeParameter(owner, name_0){ + var eTypeParameter, eTypeParameter0; + eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); + $setName(eTypeParameter0, name_0); + $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 7)) , owner.eTypeParameters), eTypeParameter0); + return eTypeParameter0; +} + +function $addETypeParameter_0(owner){ + var eTypeParameter, eTypeParameter0; + eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); + $setName(eTypeParameter0, 'T'); + $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 11)) , owner.eTypeParameters), eTypeParameter0); + return eTypeParameter0; +} + +function $basicGetESuperPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 7) + return null; + return castTo(this$static.eContainer, 235); +} + +function $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs){ + var notification, oldEFactoryInstance; + oldEFactoryInstance = this$static.eFactoryInstance; + this$static.eFactoryInstance = newEFactoryInstance; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 4, oldEFactoryInstance, newEFactoryInstance); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $createEAttribute(owner, id_0){ + var a, eAttribute; + a = (eAttribute = new EAttributeImpl , eAttribute); + a.featureID = id_0; + $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), a); +} + +function $createEClass(this$static, id_0){ + var c, eClass; + c = (eClass = new EClassImpl , eClass); + c.metaObjectID = id_0; + !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); + $add_21(this$static.eClassifiers, c); + return c; +} + +function $createEDataType(this$static, id_0){ + var d, eDataType; + d = (eDataType = new EDataTypeImpl , eDataType); + d.metaObjectID = id_0; + !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); + $add_21(this$static.eClassifiers, d); + return d; +} + +function $createEGenericType(eClassifier){ + var eGenericType, eGenericType0; + eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClassifier); + return eGenericType0; +} + +function $createEGenericType_0(eTypeParameter){ + var eGenericType, eGenericType0; + eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); + $setETypeParameter(eGenericType0, eTypeParameter); + return eGenericType0; +} + +function $createEOperation(owner){ + var eOperation, o; + o = (eOperation = new EOperationImpl , eOperation); + $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); +} + +function $createEReference(owner, id_0){ + var eReference, r; + r = (eReference = new EReferenceImpl , eReference); + r.featureID = id_0; + $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), r); +} + +function $createResource(this$static, uri_0){ + var actualURI, resource; + resource = $eInternalResource(this$static); + if (!resource) { + !resourceFactory && (resourceFactory = new EPackageImpl$3); + actualURI = ($clinit_URI() , createURIWithCache(uri_0)); + resource = new BinaryResourceImpl(actualURI); + $add_21(resource.getContents(), this$static); + } + return resource; +} + +function $eBasicRemoveFromContainerFeature_1(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 7) { + return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $freeze_0(this$static){ + var i, size_0; + if (this$static.eClassifiers) { + for (i = 0 , size_0 = this$static.eClassifiers.size_0; i < size_0; ++i) { + $freeze($get_20(this$static.eClassifiers, i)); + } + } + if (this$static.eSubpackages) { + for (i = 0 , size_0 = this$static.eSubpackages.size_0; i < size_0; ++i) { + $freeze($get_20(this$static.eSubpackages, i)); + } + } + $getNamespace(($clinit_ExtendedMetaData() , INSTANCE_11), this$static); + this$static.eFlags |= 1; +} + +function $getEClassifierGen(this$static, name_0){ + var duplicate, eClassifier, eClassifier$iterator, eClassifiers, key, result; + if (!this$static.eNameToEClassifierMap) { + eClassifiers = (!this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)) , this$static.eClassifiers); + result = new HashMap_0(eClassifiers.size_0); + for (eClassifier$iterator = new AbstractEList$EIterator(eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = castTo($doNext(eClassifier$iterator), 138); + key = eClassifier.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eClassifier):$put_10(result.stringMap, key, eClassifier), 138); + !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); + } + this$static.eNameToEClassifierMap = result; + } + return castTo($getStringValue(this$static.eNameToEClassifierMap, name_0), 138); +} + +function $initEAttribute(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ + $initEStructuralFeature(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived); + $setID(a, false); + return a; +} + +function $initEAttribute_0(a, type_0, name_0, containerClass, isTransient, isVolatile, isChangeable, isDerived){ + var msgs; + instanceOf(a.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(a.eContainer, 88)), 4); + $setName(a, name_0); + a.containerClass = containerClass; + $setTransient(a, isTransient); + $setVolatile(a, isVolatile); + $setChangeable(a, isChangeable); + $setUnsettable(a, false); + $setUnique_2(a, true); + $setDerived(a, isDerived); + $setOrdered(a, true); + $setLowerBound(a, 0); + a.effectiveIsMany = 0; + $setUpperBound(a, 1); + msgs = $setEGenericType(a, type_0, null); + !!msgs && msgs.dispatch_0(); + $setID(a, false); + return a; +} + +function $initEClass(c, instanceClass, name_0, isAbstract, isInterface, isGenerated){ + $initEClassifier(c, instanceClass, name_0, isGenerated); + $setAbstract(c, isAbstract); + $setInterface(c, isInterface); + return c; +} + +function $initEClassifier(o, instanceClass, name_0, isGenerated){ + instanceOf(o.eContainer, 179) && (castTo(o.eContainer, 179).eNameToEClassifierMap = null); + $setName(o, name_0); + !!instanceClass && $setInstanceClass(o, instanceClass); + isGenerated && o.setGeneratedInstanceClass(true); +} + +function $initEDataType(d, instanceClass, name_0, isSerializable){ + $initEClassifier(d, instanceClass, name_0, false); + $setSerializable(d, isSerializable); + return d; +} + +function $initEOperation(eOperation, type_0, name_0){ + $setEType(eOperation, type_0); + $setName(eOperation, name_0); + $setLowerBound(eOperation, 0); + $setUpperBound(eOperation, 1); + $setUnique_2(eOperation, true); + $setOrdered(eOperation, true); + return eOperation; +} + +function $initEReference(r, type_0, otherEnd, name_0, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isContainment, isResolveProxies, isUnsettable, isDerived){ + $initEStructuralFeature(r, type_0, name_0, null, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, true, isDerived); + $setContainmentGen(r, isContainment); + instanceOf(r.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(r.eContainer, 88)), 2); + !!otherEnd && $setEOpposite(r, otherEnd); + $setResolveProxies(r, isResolveProxies); + return r; +} + +function $initEStructuralFeature(s, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ + instanceOf(s.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(s.eContainer, 88)), 4); + $setName(s, name_0); + s.containerClass = containerClass; + $setTransient(s, isTransient); + $setVolatile(s, isVolatile); + $setChangeable(s, isChangeable); + $setUnsettable(s, isUnsettable); + $setUnique_2(s, isUnique); + $setDerived(s, isDerived); + $setOrdered(s, true); + $setLowerBound(s, lowerBound); + s.setUpperBound(upperBound); + $setEType(s, type_0); + defaultValue != null && (s.defaultValueFactory = null , $setDefaultValueLiteralGen(s, defaultValue)); +} + +function $setEFactoryInstance(this$static, newEFactoryInstance){ + var msgs; + if (newEFactoryInstance != this$static.eFactoryInstance) { + msgs = null; + !!this$static.eFactoryInstance && (msgs = castTo(this$static.eFactoryInstance, 49).eInverseRemove(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + !!newEFactoryInstance && (msgs = castTo(newEFactoryInstance, 49).eInverseAdd(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + msgs = $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newEFactoryInstance, newEFactoryInstance)); +} + +function $setNsPrefix(this$static, newNsPrefix){ + var oldNsPrefix; + oldNsPrefix = this$static.nsPrefix; + this$static.nsPrefix = newNsPrefix; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldNsPrefix, this$static.nsPrefix)); +} + +function $setNsURI(this$static, newNsURI){ + var oldNsURI; + oldNsURI = this$static.nsURI; + this$static.nsURI = newNsURI; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldNsURI, this$static.nsURI)); +} + +function EPackageImpl(){ + $setEFactoryInstance(this, new EFactoryImpl); + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + $clinit_EcoreFactory(); +} + +function EPackageImpl_0(packageURI, factory){ + var registration; + registration = $getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), packageURI); + instanceOf(registration, 498)?$putStringValue(INSTANCE_6, packageURI, new EPackageImpl$1(this, factory)):$putStringValue(INSTANCE_6, packageURI, this); + $setEFactoryInstance(this, factory); + if (factory == ($clinit_EcoreFactory() , eINSTANCE_1)) { + this.ecorePackage = castTo(this, 1939); + castTo(factory, 1941); + } + else { + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + } +} + +defineClass(179, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, EPackageImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_2(msgs){ + return $eBasicRemoveFromContainerFeature_1(this, msgs); +} +; +_.eGet = function eGet_12(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.nsURI; + case 3: + return this.nsPrefix; + case 4: + return this.eFactoryInstance; + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , this.eSubpackages; + case 7: + if (resolve) + return this.eFlags_0 >> 16 == 7?castTo(this.eContainer, 235):null; + return $basicGetESuperPackage(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_7(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 4: + !!this.eFactoryInstance && (msgs = castTo(this.eFactoryInstance, 49).eInverseRemove(this, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + return $basicSetEFactoryInstance(this, castTo(otherEnd, 471), msgs); + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicAdd_0(this.eClassifiers, otherEnd, msgs); + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicAdd_0(this.eSubpackages, otherEnd, msgs); + case 7: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_1(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 7, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_8(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 4: + return $basicSetEFactoryInstance(this, null, msgs); + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicRemove_0(this.eClassifiers, otherEnd, msgs); + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicRemove_0(this.eSubpackages, otherEnd, msgs); + case 7: + return $eBasicSetContainer(this, null, 7, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_11(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.nsURI != null; + case 3: + return this.nsPrefix != null; + case 4: + return !!this.eFactoryInstance; + case 5: + return !!this.eClassifiers && this.eClassifiers.size_0 != 0; + case 6: + return !!this.eSubpackages && this.eSubpackages.size_0 != 0; + case 7: + return !!$basicGetESuperPackage(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_1(uriFragmentSegment){ + var result; + result = $getEClassifierGen(this, uriFragmentSegment); + return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_10(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setNsURI(this, castToString(newValue)); + return; + case 3: + $setNsPrefix(this, castToString(newValue)); + return; + case 4: + $setEFactoryInstance(this, castTo(newValue, 471)); + return; + case 5: + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $clear_13(this.eClassifiers); + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $addAll_9(this.eClassifiers, castTo(newValue, 14)); + return; + case 6: + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $clear_13(this.eSubpackages); + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $addAll_9(this.eSubpackages, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), newValue); +} +; +_.eSetProxyURI = function eSetProxyURI_1(uri_0){ + var eClassifier, eClassifier$iterator; + if (!!uri_0 && !!this.eClassifiers) { + for (eClassifier$iterator = new AbstractEList$EIterator(this.eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = $doNext(eClassifier$iterator); + instanceOf(eClassifier, 351) && (castTo(eClassifier, 351).ePackage = null); + } + } + $setField(this, 64, uri_0); +} +; +_.eStaticClass = function eStaticClass_10(){ + return $clinit_EcorePackage$Literals() , EPACKAGE; +} +; +_.eUnset = function eUnset_10(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setNsURI(this, null); + return; + case 3: + $setNsPrefix(this, null); + return; + case 4: + $setEFactoryInstance(this, null); + return; + case 5: + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $clear_13(this.eClassifiers); + return; + case 6: + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $clear_13(this.eSubpackages); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); +} +; +_.freeze = function freeze_0(){ + $freeze_0(this); +} +; +_.getEClassifiers = function getEClassifiers(){ + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; +} +; +_.getEFactoryInstance = function getEFactoryInstance(){ + return this.eFactoryInstance; +} +; +_.getExtendedMetaData = function getExtendedMetaData(){ + return this.ePackageExtendedMetaData; +} +; +_.getNsPrefix = function getNsPrefix(){ + return this.nsPrefix; +} +; +_.getNsURI = function getNsURI(){ + return this.nsURI; +} +; +_.setExtendedMetaData = function setExtendedMetaData(ePackageExtendedMetaData){ + this.ePackageExtendedMetaData = ePackageExtendedMetaData; +} +; +_.toString_0 = function toString_129(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_21(this); + result = new StringBuffer_1($toString_21(this)); + result.string += ' (nsURI: '; + $append_3(result, this.nsURI); + result.string += ', nsPrefix: '; + $append_3(result, this.nsPrefix); + result.string += ')'; + return result.string; +} +; +_.nsPrefix = null; +_.nsURI = null; +var resourceFactory; +var Lorg_eclipse_emf_ecore_impl_EPackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl', 179); +function $createPackageContents(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.iPropertyHolderEClass = $createEClass(this$static, 0); + this$static.eMapPropertyHolderEClass = $createEClass(this$static, 1); + $createEReference(this$static.eMapPropertyHolderEClass, 0); + this$static.elkGraphElementEClass = $createEClass(this$static, 2); + $createEReference(this$static.elkGraphElementEClass, 1); + $createEAttribute(this$static.elkGraphElementEClass, 2); + this$static.elkShapeEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.elkShapeEClass, 3); + $createEAttribute(this$static.elkShapeEClass, 4); + $createEAttribute(this$static.elkShapeEClass, 5); + $createEAttribute(this$static.elkShapeEClass, 6); + this$static.elkLabelEClass = $createEClass(this$static, 4); + $createEReference(this$static.elkLabelEClass, 7); + $createEAttribute(this$static.elkLabelEClass, 8); + this$static.elkConnectableShapeEClass = $createEClass(this$static, 5); + $createEReference(this$static.elkConnectableShapeEClass, 7); + $createEReference(this$static.elkConnectableShapeEClass, 8); + this$static.elkNodeEClass = $createEClass(this$static, 6); + $createEReference(this$static.elkNodeEClass, 9); + $createEReference(this$static.elkNodeEClass, 10); + $createEReference(this$static.elkNodeEClass, 11); + $createEReference(this$static.elkNodeEClass, 12); + $createEAttribute(this$static.elkNodeEClass, 13); + this$static.elkPortEClass = $createEClass(this$static, 7); + $createEReference(this$static.elkPortEClass, 9); + this$static.elkEdgeEClass = $createEClass(this$static, 8); + $createEReference(this$static.elkEdgeEClass, 3); + $createEReference(this$static.elkEdgeEClass, 4); + $createEReference(this$static.elkEdgeEClass, 5); + $createEReference(this$static.elkEdgeEClass, 6); + $createEAttribute(this$static.elkEdgeEClass, 7); + $createEAttribute(this$static.elkEdgeEClass, 8); + $createEAttribute(this$static.elkEdgeEClass, 9); + $createEAttribute(this$static.elkEdgeEClass, 10); + this$static.elkBendPointEClass = $createEClass(this$static, 9); + $createEAttribute(this$static.elkBendPointEClass, 0); + $createEAttribute(this$static.elkBendPointEClass, 1); + this$static.elkEdgeSectionEClass = $createEClass(this$static, 10); + $createEAttribute(this$static.elkEdgeSectionEClass, 1); + $createEAttribute(this$static.elkEdgeSectionEClass, 2); + $createEAttribute(this$static.elkEdgeSectionEClass, 3); + $createEAttribute(this$static.elkEdgeSectionEClass, 4); + $createEReference(this$static.elkEdgeSectionEClass, 5); + $createEReference(this$static.elkEdgeSectionEClass, 6); + $createEReference(this$static.elkEdgeSectionEClass, 7); + $createEReference(this$static.elkEdgeSectionEClass, 8); + $createEReference(this$static.elkEdgeSectionEClass, 9); + $createEReference(this$static.elkEdgeSectionEClass, 10); + $createEAttribute(this$static.elkEdgeSectionEClass, 11); + this$static.elkPropertyToValueMapEntryEClass = $createEClass(this$static, 11); + $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 0); + $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 1); + this$static.iPropertyEDataType = $createEDataType(this$static, 12); + this$static.propertyValueEDataType = $createEDataType(this$static, 13); +} + +function $initializePackageContents(this$static){ + var eGenericType, eGenericType0, eGenericType1, eGenericType2, eGenericType3, eGenericType4, eGenericType5, eGenericType6, g1, g2, g3, msgs, msgs0, op, t1; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'graph'); + $setNsPrefix(this$static, 'graph'); + $setNsURI(this$static, 'http://www.eclipse.org/elk/ElkGraph'); + $addETypeParameter(this$static.iPropertyEDataType, 'T'); + $add_21($getESuperTypes(this$static.eMapPropertyHolderEClass), this$static.iPropertyHolderEClass); + $add_21($getESuperTypes(this$static.elkGraphElementEClass), this$static.eMapPropertyHolderEClass); + $add_21($getESuperTypes(this$static.elkShapeEClass), this$static.elkGraphElementEClass); + $add_21($getESuperTypes(this$static.elkLabelEClass), this$static.elkShapeEClass); + $add_21($getESuperTypes(this$static.elkConnectableShapeEClass), this$static.elkShapeEClass); + $add_21($getESuperTypes(this$static.elkNodeEClass), this$static.elkConnectableShapeEClass); + $add_21($getESuperTypes(this$static.elkPortEClass), this$static.elkConnectableShapeEClass); + $add_21($getESuperTypes(this$static.elkEdgeEClass), this$static.elkGraphElementEClass); + $add_21($getESuperTypes(this$static.elkEdgeSectionEClass), this$static.eMapPropertyHolderEClass); + $initEClass(this$static.iPropertyHolderEClass, Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit, 'IPropertyHolder', true, true, false); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'setProperty'); + t1 = $addETypeParameter_0(op); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType0 = (eGenericType1 = new EGenericTypeImpl , eGenericType1) , eGenericType0); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + g3 = $createEGenericType_0(t1); + $setELowerBound(g2, g3); + $addEParameter_0(op, g1, 'property'); + g1 = $createEGenericType_0(t1); + $addEParameter_0(op, g1, 'value'); + op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getProperty'); + t1 = $addETypeParameter_0(op); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = $createEGenericType_0(t1); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'property'); + g1 = $createEGenericType_0(t1); + msgs0 = $setEGenericType(op, g1, null); + !!msgs0 && msgs0.dispatch_0(); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.ecorePackage.eBooleanEDataType, 'hasProperty'); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType2 = (eGenericType3 = new EGenericTypeImpl , eGenericType3) , eGenericType2); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'property'); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'copyProperties'); + $addEParameter(op, this$static.iPropertyHolderEClass, 'source'); + op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getAllProperties'); + g1 = $createEGenericType(this$static.ecorePackage.eMapEDataType); + g2 = $createEGenericType(this$static.iPropertyEDataType); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + g3 = (eGenericType4 = (eGenericType5 = new EGenericTypeImpl , eGenericType5) , eGenericType4); + $add_21((!g2.eTypeArguments && (g2.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g2, 1)) , g2.eTypeArguments), g3); + g2 = $createEGenericType(this$static.ecorePackage.eJavaObjectEDataType); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs = $setEGenericType(op, g1, null); + !!msgs && msgs.dispatch_0(); + $initEClass(this$static.eMapPropertyHolderEClass, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, 'EMapPropertyHolder', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eMapPropertyHolderEClass), 0), 18), this$static.elkPropertyToValueMapEntryEClass, null, 'properties', 0, -1, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, false, false, true, true, false, false, false); + $initEClass(this$static.elkGraphElementEClass, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, 'ElkGraphElement', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), this$static.elkLabelEClass, castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), 'labels', 0, -1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.elkShapeEClass, Lorg_eclipse_elk_graph_ElkShape_2_classLit, 'ElkShape', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'height', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'width', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkShapeEClass, null, 'setDimensions'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'width'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'height'); + op = $addEOperation(this$static.elkShapeEClass, null, 'setLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkLabelEClass, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, 'ElkLabel', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), this$static.elkGraphElementEClass, castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'text', '', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.elkConnectableShapeEClass, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, 'ElkConnectableShape', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), 'outgoingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), 'incomingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.elkNodeEClass, Lorg_eclipse_elk_graph_ElkNode_2_classLit, 'ElkNode', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), this$static.elkPortEClass, castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), 'ports', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), 'children', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), 'containedEdges', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, true, true, false, false, true, true); + $initEClass(this$static.elkPortEClass, Lorg_eclipse_elk_graph_ElkPort_2_classLit, 'ElkPort', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkPort_2_classLit, false, false, true, false, false, false, false); + $initEClass(this$static.elkEdgeEClass, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, 'ElkEdge', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), 'containingNode', 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), 'sources', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), 'targets', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), 'sections', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hyperedge', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 5), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 6), 34), this$static.ecorePackage.eBooleanEDataType, 'selfloop', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 7), 34), this$static.ecorePackage.eBooleanEDataType, 'connected', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEClass(this$static.elkBendPointEClass, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, 'ElkBendPoint', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkBendPointEClass, null, 'set'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkEdgeSectionEClass, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, 'ElkEdgeSection', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'startX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'startY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'endX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'endY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 4), 18), this$static.elkBendPointEClass, null, 'bendPoints', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 6), 18), this$static.elkConnectableShapeEClass, null, 'outgoingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 7), 18), this$static.elkConnectableShapeEClass, null, 'incomingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), 'outgoingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), 'incomingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 10), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setStartLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setEndLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkPropertyToValueMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'ElkPropertyToValueMapEntry', false, false, false); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType6 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType6); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 0), 34), g1, 'key', Ljava_util_Map$Entry_2_classLit, false, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 1), 34), this$static.propertyValueEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEDataType(this$static.iPropertyEDataType, Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 'IProperty', true); + $initEDataType(this$static.propertyValueEDataType, Ljava_lang_Object_2_classLit, 'PropertyValue', true); + $createResource(this$static, 'http://www.eclipse.org/elk/ElkGraph'); +} + +function ElkGraphPackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/elk/ElkGraph', ($clinit_ElkGraphFactory() , eINSTANCE)); + this.iPropertyHolderEClass = null; + this.eMapPropertyHolderEClass = null; + this.elkGraphElementEClass = null; + this.elkShapeEClass = null; + this.elkLabelEClass = null; + this.elkConnectableShapeEClass = null; + this.elkNodeEClass = null; + this.elkPortEClass = null; + this.elkEdgeEClass = null; + this.elkBendPointEClass = null; + this.elkEdgeSectionEClass = null; + this.elkPropertyToValueMapEntryEClass = null; + this.iPropertyEDataType = null; + this.propertyValueEDataType = null; + this.isCreated = false; + this.isInitialized = false; +} + +function init_2(){ + var theElkGraphPackage; + if (isInited) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2016); + theElkGraphPackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 555)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph'):new ElkGraphPackageImpl, 555); + isInited = true; + $createPackageContents(theElkGraphPackage); + $initializePackageContents(theElkGraphPackage); + $freeze_0(theElkGraphPackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph', theElkGraphPackage); + return theElkGraphPackage; +} + +defineClass(555, 179, {105:1, 2016:1, 555:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, ElkGraphPackageImpl); +_.isCreated = false; +_.isInitialized = false; +var isInited = false; +var Lorg_eclipse_elk_graph_impl_ElkGraphPackageImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphPackageImpl', 555); +function $basicSetParent_0(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newParent, 49), 7, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_2(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 7) { + return this$static.eContainer.eInverseRemove(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_LABEL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getParent_1(this$static){ + if (this$static.eFlags_0 >> 16 != 7) + return null; + return castTo(this$static.eContainer, 160); +} + +function $setParent_1(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 7 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_22(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = castTo(newParent, 49).eInverseAdd(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs)); + msgs = $basicSetParent_0(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, newParent, newParent)); +} + +function $setText(this$static, newText){ + var oldText; + oldText = this$static.text_0; + this$static.text_0 = newText; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldText, this$static.text_0)); +} + +function $toString_22(this$static){ + var builder; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkLabel'); + !this$static.text_0 || $append_11($append_11((builder.string += ' "' , builder), this$static.text_0), '"'); + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkLabelImpl(){ +} + +defineClass(354, 724, {105:1, 413:1, 160:1, 137:1, 470:1, 354:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkLabelImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_3(msgs){ + return $eBasicRemoveFromContainerFeature_2(this, msgs); +} +; +_.eGet = function eGet_13(featureID, resolve, coreType){ + switch (featureID) { + case 7: + return $getParent_1(this); + case 8: + return this.text_0; + } + return $eGet_5(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_8(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 7: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_0(this, castTo(otherEnd, 160), msgs); + } + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_9(otherEnd, featureID, msgs){ + if (featureID == 7) { + return $basicSetParent_0(this, null, msgs); + } + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_12(featureID){ + switch (featureID) { + case 7: + return !!$getParent_1(this); + case 8: + return !$equals_5('', this.text_0); + } + return $eIsSet_3(this, featureID); +} +; +_.eSet = function eSet_11(featureID, newValue){ + switch (featureID) { + case 7: + $setParent_1(this, castTo(newValue, 160)); + return; + case 8: + $setText(this, castToString(newValue)); + return; + } + $eSet_3(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_11(){ + return $clinit_ElkGraphPackage$Literals() , ELK_LABEL; +} +; +_.eUnset = function eUnset_11(featureID){ + switch (featureID) { + case 7: + $setParent_1(this, null); + return; + case 8: + $setText(this, ''); + return; + } + $eUnset_3(this, featureID); +} +; +_.toString_0 = function toString_130(){ + return $toString_22(this); +} +; +_.text_0 = ''; +var Lorg_eclipse_elk_graph_impl_ElkLabelImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkLabelImpl', 354); +function $basicSetParent_1(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 11, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_3(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 11) { + return this$static.eContainer.eInverseRemove(this$static, 10, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_NODE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getChildren(this$static){ + !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)); + return this$static.children; +} + +function $getContainedEdges(this$static){ + !this$static.containedEdges && (this$static.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 12, 3)); + return this$static.containedEdges; +} + +function $getParent_2(this$static){ + if (this$static.eFlags_0 >> 16 != 11) + return null; + return castTo(this$static.eContainer, 33); +} + +function $getPorts_3(this$static){ + !this$static.ports && (this$static.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this$static, 9, 9)); + return this$static.ports; +} + +function $isHierarchical_0(this$static){ + return !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)) , this$static.children.size_0 > 0; +} + +function $setParent_2(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 11 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_23(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 10, msgs)); + msgs = $basicSetParent_1(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, newParent, newParent)); +} + +function $toString_23(this$static){ + var builder, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkNode'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkNodeImpl(){ + ElkConnectableShapeImpl.call(this); +} + +defineClass(239, 725, {105:1, 413:1, 82:1, 160:1, 33:1, 470:1, 239:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkNodeImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_4(msgs){ + return $eBasicRemoveFromContainerFeature_3(this, msgs); +} +; +_.eGet = function eGet_14(featureID, resolve, coreType){ + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , this.ports; + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children; + case 11: + return $getParent_2(this); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , this.containedEdges; + case 13: + return $clinit_Boolean() , !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0?true:false; + } + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_9(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicAdd_0(this.ports, otherEnd, msgs); + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicAdd_0(this.children, otherEnd, msgs); + case 11: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_1(this, castTo(otherEnd, 33), msgs); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicAdd_0(this.containedEdges, otherEnd, msgs); + } + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_10(otherEnd, featureID, msgs){ + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicRemove_0(this.ports, otherEnd, msgs); + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicRemove_0(this.children, otherEnd, msgs); + case 11: + return $basicSetParent_1(this, null, msgs); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicRemove_0(this.containedEdges, otherEnd, msgs); + } + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_13(featureID){ + switch (featureID) { + case 9: + return !!this.ports && this.ports.size_0 != 0; + case 10: + return !!this.children && this.children.size_0 != 0; + case 11: + return !!$getParent_2(this); + case 12: + return !!this.containedEdges && this.containedEdges.size_0 != 0; + case 13: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0; + } + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_12(featureID, newValue){ + switch (featureID) { + case 9: + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $clear_13(this.ports); + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $addAll_9(this.ports, castTo(newValue, 14)); + return; + case 10: + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $clear_13(this.children); + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $addAll_9(this.children, castTo(newValue, 14)); + return; + case 11: + $setParent_2(this, castTo(newValue, 33)); + return; + case 12: + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $clear_13(this.containedEdges); + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $addAll_9(this.containedEdges, castTo(newValue, 14)); + return; + } + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_12(){ + return $clinit_ElkGraphPackage$Literals() , ELK_NODE; +} +; +_.eUnset = function eUnset_12(featureID){ + switch (featureID) { + case 9: + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $clear_13(this.ports); + return; + case 10: + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $clear_13(this.children); + return; + case 11: + $setParent_2(this, null); + return; + case 12: + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $clear_13(this.containedEdges); + return; + } + $eUnset_4(this, featureID); +} +; +_.toString_0 = function toString_131(){ + return $toString_23(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkNodeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkNodeImpl', 239); +function $basicSetParent_2(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 9, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_4(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 9) { + return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_PORT):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getParent_3(this$static){ + if (this$static.eFlags_0 >> 16 != 9) + return null; + return castTo(this$static.eContainer, 33); +} + +function $setParent_3(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 9 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_24(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 9, msgs)); + msgs = $basicSetParent_2(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 9, newParent, newParent)); +} + +function $toString_24(this$static){ + var builder, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkPort'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkPortImpl(){ + ElkConnectableShapeImpl.call(this); +} + +defineClass(186, 725, {105:1, 413:1, 82:1, 160:1, 118:1, 470:1, 186:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPortImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_5(msgs){ + return $eBasicRemoveFromContainerFeature_4(this, msgs); +} +; +_.eGet = function eGet_15(featureID, resolve, coreType){ + if (featureID == 9) { + return $getParent_3(this); + } + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_10(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 9: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_2(this, castTo(otherEnd, 33), msgs); + } + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_11(otherEnd, featureID, msgs){ + if (featureID == 9) { + return $basicSetParent_2(this, null, msgs); + } + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_14(featureID){ + if (featureID == 9) { + return !!$getParent_3(this); + } + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_13(featureID, newValue){ + switch (featureID) { + case 9: + $setParent_3(this, castTo(newValue, 33)); + return; + } + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_13(){ + return $clinit_ElkGraphPackage$Literals() , ELK_PORT; +} +; +_.eUnset = function eUnset_13(featureID){ + switch (featureID) { + case 9: + $setParent_3(this, null); + return; + } + $eUnset_4(this, featureID); +} +; +_.toString_0 = function toString_132(){ + return $toString_24(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkPortImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPortImpl', 186); +var Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit = createForInterface('org.eclipse.emf.common.util', 'BasicEMap/Entry'); +function $setTypedKey(this$static, newKey){ + var oldKey; + oldKey = this$static.key; + this$static.key = newKey; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); +} + +function $setTypedValue(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); +} + +function ElkPropertyToValueMapEntryImpl(){ +} + +defineClass(1092, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPropertyToValueMapEntryImpl); +_.equals_0 = function equals_183(other){ + return this === other; +} +; +_.getKey = function getKey_8(){ + return this.key; +} +; +_.hashCode_1 = function hashCode_72(){ + return getHashCode_0(this); +} +; +_.setKey = function setKey(key){ + $setTypedKey(this, castTo(key, 146)); +} +; +_.eGet = function eGet_16(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.key; + case 1: + return this.value_0; + } + return $eGet(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_15(featureID){ + switch (featureID) { + case 0: + return !!this.key; + case 1: + return this.value_0 != null; + } + return $eIsSet(this, featureID); +} +; +_.eSet = function eSet_14(featureID, newValue){ + switch (featureID) { + case 0: + $setTypedKey(this, castTo(newValue, 146)); + return; + case 1: + $setTypedValue(this, newValue); + return; + } + $eSet(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_14(){ + return $clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY; +} +; +_.eUnset = function eUnset_14(featureID){ + switch (featureID) { + case 0: + $setTypedKey(this, null); + return; + case 1: + $setTypedValue(this, null); + return; + } + $eUnset(this, featureID); +} +; +_.getHash = function getHash(){ + var theKey; + if (this.hash == -1) { + theKey = this.key; + this.hash = !theKey?0:hashCode__I__devirtual$(theKey); + } + return this.hash; +} +; +_.getValue = function getValue_10(){ + return this.value_0; +} +; +_.setHash = function setHash(hash){ + this.hash = hash; +} +; +_.setValue = function setValue_11(value_0){ + var oldValue; + oldValue = this.value_0; + $setTypedValue(this, value_0); + return oldValue; +} +; +_.toString_0 = function toString_133(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuilder; + $append_11($append_11($append_11(result, this.key?this.key.getId():'null'), ' -> '), valueOf_7(this.value_0)); + return result.string; +} +; +_.hash = -1; +_.value_0 = null; +var Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPropertyToValueMapEntryImpl', 1092); +function $addJsonArr(arr, jv){ + var size_0; + size_0 = arr.jsArray.length; + $get_8(arr, size_0); + $set0(arr, size_0, jv); +} + +function $addJsonArr_0(arr, o){ + var _doubleValue, _matched; + _matched = false; + if (instanceOfString(o)) { + _matched = true; + $addJsonArr(arr, new JSONString(castToString(o))); + } + if (!_matched) { + if (instanceOf(o, 236)) { + _matched = true; + $addJsonArr(arr, (_doubleValue = doubleValue__D__devirtual$(castTo(o, 236)) , new JSONNumber(_doubleValue))); + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } +} + +function $addJsonObj(o, element, n){ + var _doubleValue, _jSONNumber; + _doubleValue = doubleValue__D__devirtual$(n); + _jSONNumber = new JSONNumber(_doubleValue); + $put_5(o, element, _jSONNumber); +} + +function $addJsonObj_0(this$static, o, element, obj){ + var _matched; + _matched = false; + if (instanceOfString(obj)) { + _matched = true; + $addJsonObj_1(o, element, castToString(obj)); + } + if (!_matched) { + if (instanceOfBoolean(obj)) { + _matched = true; + $addJsonObj_0(this$static, o, element, obj); + } + } + if (!_matched) { + if (instanceOf(obj, 236)) { + _matched = true; + $addJsonObj(o, element, castTo(obj, 236)); + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } +} + +function $addJsonObj_1(o, element, s){ + var _jSONString; + _jSONString = new JSONString(s); + $put_5(o, element, _jSONString); +} + +function $asId(id_0){ + var _isInt, _matched; + _matched = false; + if (instanceOf(id_0, 204)) { + _matched = true; + return castTo(id_0, 204).value_0; + } + if (!_matched) { + if (instanceOf(id_0, 258)) { + _isInt = castTo(id_0, 258).value_0 % 1 == 0; + if (_isInt) { + _matched = true; + return valueOf_4($intValue(castTo(id_0, 258).value_0)); + } + } + } + throw toJs(new JsonImportException("Id must be a string or an integer: '" + id_0 + "'.")); +} + +function $getId(o){ + var _containsKey, _not, _xblockexpression; + _xblockexpression = null; + _containsKey = 'id' in o.jsObject; + _not = !_containsKey; + if (_not) { + throw toJs(new JsonImportException('Every element must have an id.')); + } + _xblockexpression = $asId($get_9(o, 'id')); + return _xblockexpression; +} + +function $optDouble(o, element){ + var _containsKey, num; + _containsKey = element in o.jsObject; + if (_containsKey) { + num = $get_9(o, element).isNumber(); + if (num) { + return num.value_0; + } + } + return null; +} + +function $optJSONArray(arr, element){ + var _get, _isArray; + _get = $get_9(arr, element); + _isArray = null; + !!_get && (_isArray = _get.isArray_0()); + return _isArray; +} + +function $optJSONObject(arr, i){ + var _get, _isObject; + _get = $get_8(arr, i); + _isObject = null; + !!_get && (_isObject = _get.isObject()); + return _isObject; +} + +function $optJSONObject_0(o, element){ + var _get, _isObject; + _get = $get_9(o, element); + _isObject = null; + !!_get && (_isObject = _get.isObject()); + return _isObject; +} + +function $optString(o, element){ + var _get, _stringVal; + _get = $get_9(o, element); + _stringVal = null; + !!_get && (_stringVal = $stringVal(_get)); + return _stringVal; +} + +function $stringVal(v){ + var _matched, _switchResult; + _switchResult = null; + _matched = false; + if (instanceOf(v, 204)) { + _matched = true; + _switchResult = castTo(v, 204).value_0; + } + if (!_matched) { + if (instanceOf(v, 258)) { + _matched = true; + _switchResult = '' + castTo(v, 258).value_0; + } + } + if (!_matched) { + if (instanceOf(v, 483)) { + _matched = true; + _switchResult = '' + castTo(v, 483).value_0; + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } + return _switchResult; +} + +function JsonAdapter(){ +} + +defineClass(984, 1, {}, JsonAdapter); +var Lorg_eclipse_elk_graph_json_JsonAdapter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonAdapter', 984); +function JsonImportException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(210, 60, $intern_43, JsonImportException); +var Lorg_eclipse_elk_graph_json_JsonImportException_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImportException', 210); +function $_idByElement(this$static, section){ + return $get_5($inverse(this$static.edgeSectionIdMap), section); +} + +function $_idByElement_0(this$static, node){ + return $get_5($inverse(this$static.nodeIdMap), node); +} + +function $_idByElement_1(this$static, port){ + return $get_5($inverse(this$static.portIdMap), port); +} + +function $_transferLayoutInt(this$static, edge){ + var _function, _function_1, _hasProperty, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, edgeId, jps, jsonJPs, jsonObj, sections; + jsonObj = castTo($get_10(this$static.edgeJsonMap, edge), 183); + if (!jsonObj) { + throw toJs(new JsonImportException('Edge did not exist in input.')); + } + edgeId = $getId(jsonObj); + _isNullOrEmpty = isNullOrEmpty((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + _not = !_isNullOrEmpty; + if (_not) { + sections = new JSONArray; + _function = new JsonImporter$lambda$36$Type(this$static, edgeId, sections); + forEach_42((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), _function); + $put_5(jsonObj, 'sections', sections); + } + _hasProperty = $hasProperty_0(edge, ($clinit_CoreOptions() , JUNCTION_POINTS_0)); + if (_hasProperty) { + jps = castTo($getProperty_0(edge, JUNCTION_POINTS_0), 74); + _isNullOrEmpty_1 = !jps || isEmpty_35(jps); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + jsonJPs = new JSONArray; + _function_1 = new JsonImporter$lambda$40$Type(jsonJPs); + $forEach_0(jps, _function_1); + $put_5(jsonObj, 'junctionPoints', jsonJPs); + } + } + $addJsonObj_1(jsonObj, 'container', $getContainingNode(edge).identifier); + return null; +} + +function $_transferLayoutInt_0(this$static, label_0){ + var jsonObj; + jsonObj = $get_10(this$static.labelJsonMap, label_0); + $transferShapeLayout(label_0, jsonObj); + return null; +} + +function $_transferLayoutInt_1(this$static, node){ + var jsonObj; + jsonObj = $get_4(this$static.nodeJsonMap, node); + if (jsonObj == null) { + throw toJs(new JsonImportException('Node did not exist in input.')); + } + $transferShapeLayout(node, jsonObj); + return null; +} + +function $_transferLayoutInt_2(this$static, port){ + var jsonObj; + jsonObj = $get_10(this$static.portJsonMap, port); + if (jsonObj == null) { + throw toJs(new JsonImportException('Port did not exist in input.')); + } + $transferShapeLayout(port, jsonObj); + return null; +} + +function $idByElement(this$static, node){ + if (instanceOf(node, 239)) { + return $_idByElement_0(this$static, castTo(node, 33)); + } + else if (instanceOf(node, 186)) { + return $_idByElement_1(this$static, castTo(node, 118)); + } + else if (instanceOf(node, 439)) { + return $_idByElement(this$static, castTo(node, 202)); + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); + } +} + +function $lambda$0_13(this$static, parent_1, children_1){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (children_1) { + _sizeJsonArr = children_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(children_1, i.value_0); + !!_optJSONObject && $transformNode_0(this$static, _optJSONObject, parent_1); + } + } +} + +function $lambda$1_7(this$static, node_1, edges_1){ + var _doubleDotLessThan, _sizeJsonArr, edge, i, i$iterator; + if (edges_1) { + _sizeJsonArr = edges_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + edge = $optJSONObject(edges_1, i.value_0); + 'sources' in edge.jsObject || 'targets' in edge.jsObject?$transformEdge_1(this$static, edge, node_1):$transformPrimitiveEdge(this$static, edge, node_1); + updateContainment(castTo($get_10(this$static.edgeIdMap, $getId(edge)), 79)); + } + } +} + +function $lambda$10_0(section_1, bendPoint_1){ + createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); +} + +function $lambda$11(this$static, edge_1, sources_1){ + var _doubleDotLessThan, _sizeJsonArr, _sources, i, i$iterator, sourceElement; + if (sources_1) { + _sizeJsonArr = sources_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + sourceElement = $shapeById(this$static, $asId($get_8(sources_1, i.value_0))); + if (sourceElement) { + _sources = (!edge_1.sources && (edge_1.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 4, 7)) , edge_1.sources); + $add_21(_sources, sourceElement); + } + } + } +} + +function $lambda$12_0(this$static, edge_1, targets_1){ + var _doubleDotLessThan, _sizeJsonArr, _targets, i, i$iterator, targetElement; + if (targets_1) { + _sizeJsonArr = targets_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + targetElement = $shapeById(this$static, $asId($get_8(targets_1, i.value_0))); + if (targetElement) { + _targets = (!edge_1.targets && (edge_1.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 5, 8)) , edge_1.targets); + $add_21(_targets, targetElement); + } + } + } +} + +function $lambda$13(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, sections_3){ + var _doubleDotLessThan, _function_1, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (sections_3) { + _sizeJsonArr = sections_3.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(sections_3, i.value_0); + _function_1 = new JsonImporter$lambda$14$Type(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3); + $lambda$14_0(_function_1.$$outer_0, _function_1.edge_1, _function_1.incomingSectionIdentifiers_2, _function_1.outgoingSectionIdentifiers_3, _optJSONObject); + } + } +} + +function $lambda$14_0(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, jsonSection_3){ + var _function_2, _function_3, _function_4, _function_5, _optJSONArray_1, _optJSONArray_2, _optString, _optString_1, elkSection, jsonObj, _optJSONObject, _function, _optJSONObject_1, _function_1, _optJSONArray, _function_2_0; + elkSection = $register_3(this$static, createEdgeSection(edge_1), jsonSection_3); + $setIdentifier_0(elkSection, $optString(jsonSection_3, 'id')); + _xblockexpression = null; + jsonObj = jsonSection_3; + _optJSONObject = $optJSONObject_0(jsonObj, 'startPoint'); + _function = new JsonImporter$lambda$19$Type(elkSection); + $lambda$19_0(_function.section_1, _optJSONObject); + _optJSONObject_1 = $optJSONObject_0(jsonObj, 'endPoint'); + _function_1 = new JsonImporter$lambda$22$Type(elkSection); + $lambda$22_0(_function_1.section_1, _optJSONObject_1); + _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); + _function_2_0 = new JsonImporter$lambda$25$Type(elkSection); + $lambda$25_0(_function_2_0.section_1, _optJSONArray); + _optString = $optString(jsonSection_3, 'incomingShape'); + _function_2 = new JsonImporter$lambda$15$Type(this$static, elkSection); + $lambda$15(_function_2.$$outer_0, _function_2.elkSection_1, _optString); + _optString_1 = $optString(jsonSection_3, 'outgoingShape'); + _function_3 = new JsonImporter$lambda$16$Type(this$static, elkSection); + $lambda$16(_function_3.$$outer_0, _function_3.elkSection_1, _optString_1); + _optJSONArray_1 = $optJSONArray(jsonSection_3, 'incomingSections'); + _function_4 = new JsonImporter$lambda$17$Type(incomingSectionIdentifiers_2, elkSection); + $lambda$17(_function_4.incomingSectionIdentifiers_1, _function_4.elkSection_2, _optJSONArray_1); + _optJSONArray_2 = $optJSONArray(jsonSection_3, 'outgoingSections'); + _function_5 = new JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_3, elkSection); + $lambda$18_0(_function_5.outgoingSectionIdentifiers_1, _function_5.elkSection_2, _optJSONArray_2); +} + +function $lambda$15(this$static, elkSection_1, jsonShapeId_1){ + jsonShapeId_1 != null && $setIncomingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); +} + +function $lambda$16(this$static, elkSection_1, jsonShapeId_1){ + jsonShapeId_1 != null && $setOutgoingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); +} + +function $lambda$17(incomingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ + var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; + if (jsonSectionIds_2) { + _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; + _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); + for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { + j = castTo(j$iterator.next_1(), 19); + $put(incomingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); + } + } +} + +function $lambda$18_0(outgoingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ + var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; + if (jsonSectionIds_2) { + _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; + _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); + for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { + j = castTo(j$iterator.next_1(), 19); + $put(outgoingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); + } + } +} + +function $lambda$19_0(section_1, startPoint_1){ + var _function_1, _function_2, _optDouble, _optDouble_1; + if (startPoint_1) { + _optDouble = $optDouble(startPoint_1, 'x'); + _function_1 = new JsonImporter$lambda$20$Type(section_1); + $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(startPoint_1, 'y'); + _function_2 = new JsonImporter$lambda$21$Type(section_1); + $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } + else { + throw toJs(new JsonImportException('All edge sections need a start point.')); + } +} + +function $lambda$2_5(this$static, children_0){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (children_0) { + _sizeJsonArr = children_0.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(children_0, i.value_0); + !!_optJSONObject && $transformEdges_2(this$static, _optJSONObject); + } + } +} + +function $lambda$22_0(section_1, endPoint_1){ + var _function_2, _function_3, _optDouble, _optDouble_1; + if (endPoint_1) { + _optDouble = $optDouble(endPoint_1, 'x'); + _function_2 = new JsonImporter$lambda$23$Type(section_1); + $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(endPoint_1, 'y'); + _function_3 = new JsonImporter$lambda$24$Type(section_1); + $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } + else { + throw toJs(new JsonImportException('All edge sections need an end point.')); + } +} + +function $lambda$25_0(section_1, bendPoints_1){ + var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; + if (bendPoints_1) { + _sizeJsonArr = bendPoints_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); + _function_3 = new JsonImporter$lambda$26$Type(section_1); + $lambda$26_0(_function_3.section_1, _optJSONObject_2); + } + } +} + +function $lambda$26_0(section_1, bendPoint_1){ + createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); +} + +function $lambda$27(opts_1, layoutData_2, k_2){ + var _jsonObj, _stringVal, value_0; + _jsonObj = $get_9(opts_1, k_2); + _stringVal = null; + !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); + value_0 = _stringVal; + $setOption(layoutData_2, k_2, value_0); +} + +function $lambda$28(opts_1, individualSpacings_2, k_2){ + var _jsonObj, _stringVal, value_0; + _jsonObj = $get_9(opts_1, k_2); + _stringVal = null; + !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); + value_0 = _stringVal; + $setOption(individualSpacings_2, k_2, value_0); +} + +function $lambda$29_0(this$static, element_1, labels_1){ + var _doubleDotLessThan, _hasJsonObj, _sizeJsonArr, i, i$iterator, jsonLabel, label_0; + if (labels_1) { + _sizeJsonArr = labels_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + jsonLabel = $optJSONObject(labels_1, i.value_0); + if (jsonLabel) { + label_0 = createLabel($optString(jsonLabel, 'text'), element_1); + $put_6(this$static.labelJsonMap, label_0, jsonLabel); + _hasJsonObj = 'id' in jsonLabel.jsObject; + _hasJsonObj && $setIdentifier(label_0, $optString(jsonLabel, 'id')); + $transformProperties(jsonLabel, label_0); + $transformShapeLayout(jsonLabel, label_0); + } + } + } +} + +function $lambda$3_4(section_1, srcPnt_1){ + var _function_1, _function_2, _optDouble, _optDouble_1; + if (srcPnt_1) { + _optDouble = $optDouble(srcPnt_1, 'x'); + _function_1 = new JsonImporter$lambda$4$Type(section_1); + $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(srcPnt_1, 'y'); + _function_2 = new JsonImporter$lambda$5$Type(section_1); + $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } +} + +function $lambda$30(this$static, parent_1, ports_1){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator, port, port_0, elkPort; + if (ports_1) { + _sizeJsonArr = ports_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(ports_1, i.value_0); + !!_optJSONObject && (_xblockexpression = null , port = $register_5(this$static, (port_0 = ($clinit_ElkGraphFactory() , elkPort = new ElkPortImpl , elkPort) , !!parent_1 && $setParent_3(port_0, parent_1) , port_0), _optJSONObject) , $setIdentifier(port, $optString(_optJSONObject, 'id')) , $transformProperties(_optJSONObject, port) , $transformShapeLayout(_optJSONObject, port) , $transformLabels(this$static, _optJSONObject, port)); + } + } +} + +function $lambda$31(shape_1, it_1){ + $setX_2(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$32(shape_1, it_1){ + $setY_3(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$33(shape_1, it_1){ + $setWidth_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$34(shape_1, it_1){ + $setHeight_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$36(this$static, edgeId_1, sections_2, elkSection_2, i_3){ + var _function_1, _function_2, _function_3, _incomingShape, _isEmpty, _isEmpty_1, _isNullOrEmpty_1, _jSONString, _jsonObject, _not_1, _not_2, _not_3, _outgoingShape, _plus, _plus_1, _tripleNotEquals, _tripleNotEquals_1, bendPoints, endPoint, incomingSections, jsonSection, maybeSection, outgoingSections, startPoint; + maybeSection = $get_10(this$static.edgeSectionJsonMap, elkSection_2); + if (maybeSection == null) { + maybeSection = new JSONObject; + _jsonObject = castTo(maybeSection, 183); + _plus = edgeId_1 + '_s'; + _plus_1 = _plus + i_3; + _jSONString = new JSONString(_plus_1); + $put_5(_jsonObject, 'id', _jSONString); + } + jsonSection = castTo(maybeSection, 183); + $addJsonArr(sections_2, jsonSection); + startPoint = new JSONObject; + $addJsonObj(startPoint, 'x', elkSection_2.startX); + $addJsonObj(startPoint, 'y', elkSection_2.startY); + $put_5(jsonSection, 'startPoint', startPoint); + endPoint = new JSONObject; + $addJsonObj(endPoint, 'x', elkSection_2.endX); + $addJsonObj(endPoint, 'y', elkSection_2.endY); + $put_5(jsonSection, 'endPoint', endPoint); + _isNullOrEmpty_1 = isNullOrEmpty((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints)); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + bendPoints = new JSONArray; + _function_1 = new JsonImporter$lambda$37$Type(bendPoints); + $forEach_0((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints), _function_1); + $put_5(jsonSection, 'bendPoints', bendPoints); + } + _incomingShape = $getIncomingShape(elkSection_2); + _tripleNotEquals = !!_incomingShape; + _tripleNotEquals && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'incomingShape', $idByElement(this$static, $getIncomingShape(elkSection_2))); + _outgoingShape = $getOutgoingShape(elkSection_2); + _tripleNotEquals_1 = !!_outgoingShape; + _tripleNotEquals_1 && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'outgoingShape', $idByElement(this$static, $getOutgoingShape(elkSection_2))); + _isEmpty = (!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections).size_0 == 0; + _not_2 = !_isEmpty; + if (_not_2) { + incomingSections = new JSONArray; + _function_2 = new JsonImporter$lambda$38$Type(this$static, incomingSections); + $forEach_0((!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections), _function_2); + $put_5(jsonSection, 'incomingSections', incomingSections); + } + _isEmpty_1 = (!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections).size_0 == 0; + _not_3 = !_isEmpty_1; + if (_not_3) { + outgoingSections = new JSONArray; + _function_3 = new JsonImporter$lambda$39$Type(this$static, outgoingSections); + $forEach_0((!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections), _function_3); + $put_5(jsonSection, 'outgoingSections', outgoingSections); + } +} + +function $lambda$37(bendPoints_1, pnt_1){ + var jsonPnt; + jsonPnt = new JSONObject; + $addJsonObj(jsonPnt, 'x', pnt_1.x_0); + $addJsonObj(jsonPnt, 'y', pnt_1.y_0); + $addJsonArr(bendPoints_1, jsonPnt); +} + +function $lambda$38(this$static, incomingSections_1, sec_1){ + $addJsonArr_0(incomingSections_1, $idByElement(this$static, sec_1)); +} + +function $lambda$39(this$static, outgoingSections_1, sec_1){ + $addJsonArr_0(outgoingSections_1, $idByElement(this$static, sec_1)); +} + +function $lambda$40(jsonJPs_1, jp_1){ + var jsonPnt; + jsonPnt = new JSONObject; + $addJsonObj(jsonPnt, 'x', jp_1.x_0); + $addJsonObj(jsonPnt, 'y', jp_1.y_0); + $addJsonArr(jsonJPs_1, jsonPnt); +} + +function $lambda$6_0(section_1, tgtPnt_1){ + var _function_2, _function_3, _optDouble, _optDouble_1; + if (tgtPnt_1) { + _optDouble = $optDouble(tgtPnt_1, 'x'); + _function_2 = new JsonImporter$lambda$7$Type(section_1); + $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(tgtPnt_1, 'y'); + _function_3 = new JsonImporter$lambda$8$Type(section_1); + $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } +} + +function $lambda$9_1(section_1, bendPoints_1){ + var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; + if (bendPoints_1) { + _sizeJsonArr = bendPoints_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); + _function_3 = new JsonImporter$lambda$10$Type(section_1); + $lambda$10_0(_function_3.section_1, _optJSONObject_2); + } + } +} + +function $register_2(this$static, edge, obj){ + var id_0; + id_0 = $getId(obj); + $put_6(this$static.edgeIdMap, id_0, edge); + $put_6(this$static.edgeJsonMap, edge, obj); + return edge; +} + +function $register_3(this$static, edgeSection, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.edgeSectionIdMap, id_0, edgeSection); + $put_6(this$static.edgeSectionJsonMap, edgeSection, obj); + return edgeSection; +} + +function $register_4(this$static, node, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.nodeIdMap, id_0, node); + $put_3(this$static.nodeJsonMap, node, obj); + return node; +} + +function $register_5(this$static, port, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.portIdMap, id_0, port); + $put_6(this$static.portJsonMap, port, obj); + return port; +} + +function $setOption(e, id_0, value_0){ + var _xblockexpression, _xblockexpression_1, _xifexpression, _xifexpression_1, optionData, parsed; + _xblockexpression = null; + optionData = $getOptionDataBySuffix(getInstance(), id_0); + _xifexpression = null; + if (optionData) { + _xblockexpression_1 = null; + parsed = $parseValue(optionData, value_0); + _xifexpression_1 = null; + parsed != null && (_xifexpression_1 = e.setProperty(optionData, parsed)); + _xblockexpression_1 = _xifexpression_1; + _xifexpression = _xblockexpression_1; + } + _xblockexpression = _xifexpression; + return _xblockexpression; +} + +function $shapeById(this$static, id_0){ + var node, port; + node = castTo($get_4(this$static.nodeIdMap, id_0), 33); + if (node) { + return node; + } + port = castTo($get_4(this$static.portIdMap, id_0), 118); + if (port) { + return port; + } + throw toJs(new JsonImportException('Referenced shape does not exist: ' + id_0)); +} + +function $transferLayoutInt(this$static, node){ + if (instanceOf(node, 239)) { + return $_transferLayoutInt_1(this$static, castTo(node, 33)); + } + else if (instanceOf(node, 186)) { + return $_transferLayoutInt_2(this$static, castTo(node, 118)); + } + else if (instanceOf(node, 354)) { + return $_transferLayoutInt_0(this$static, castTo(node, 137)); + } + else if (instanceOf(node, 352)) { + return $_transferLayoutInt(this$static, castTo(node, 79)); + } + else if (node) { + return null; + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); + } +} + +function $transferShapeLayout(shape_0, jsonObjA){ + var jsonObj; + jsonObj = castTo(jsonObjA, 183); + $addJsonObj(jsonObj, 'x', shape_0.x_0); + $addJsonObj(jsonObj, 'y', shape_0.y_0); + $addJsonObj(jsonObj, 'width', shape_0.width_0); + $addJsonObj(jsonObj, 'height', shape_0.height); +} + +function $transformChildNodes(this$static, jsonNodeA, parent_0){ + var _function, _optJSONArray, _xblockexpression, jsonNode; + _xblockexpression = null; + jsonNode = jsonNodeA; + _optJSONArray = $optJSONArray(jsonNode, 'children'); + _function = new JsonImporter$lambda$0$Type(this$static, parent_0); + _xblockexpression = ($lambda$0_13(_function.$$outer_0, _function.parent_1, _optJSONArray) , _optJSONArray); + return _xblockexpression; +} + +function $transformEdge_1(this$static, jsonObjA, parent_0){ + var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, _xblockexpression, edge, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + edge = $register_2(this$static, createEdge(parent_0), jsonObj); + $setIdentifier(edge, $optString(jsonObj, 'id')); + _optJSONArray = $optJSONArray(jsonObj, 'sources'); + _function = new JsonImporter$lambda$11$Type(this$static, edge); + $lambda$11(_function.$$outer_0, _function.edge_1, _optJSONArray); + _optJSONArray_1 = $optJSONArray(jsonObj, 'targets'); + _function_1 = new JsonImporter$lambda$12$Type(this$static, edge); + $lambda$12_0(_function_1.$$outer_0, _function_1.edge_1, _optJSONArray_1); + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + _idSave = $optString(jsonObj, 'id'); + _plus = "An edge must have at least one source and one target (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + $transformProperties(jsonObj, edge); + $transformEdgeSections(this$static, jsonObj, edge); + _xblockexpression = $transformLabels(this$static, jsonObj, edge); + return _xblockexpression; +} + +function $transformEdgeSections(this$static, jsonObjA, edge){ + var _function, _get, _get_1, _idSave, _incomingSections, _keySet, _keySet_1, _optJSONArray, _outgoingSections, _plus, _plus_1, id_0, id$iterator, id_1, id_1$iterator, incomingSectionIdentifiers, jsonObj, outgoingSectionIdentifiers, referencedSection, result, result0, section, section$iterator, section_1, section_1$iterator, section_2; + jsonObj = jsonObjA; + incomingSectionIdentifiers = new HashMultimap; + outgoingSectionIdentifiers = new HashMultimap; + _optJSONArray = $optJSONArray(jsonObj, 'sections'); + _function = new JsonImporter$lambda$13$Type(this$static, edge, incomingSectionIdentifiers, outgoingSectionIdentifiers); + $lambda$13(_function.$$outer_0, _function.edge_1, _function.incomingSectionIdentifiers_2, _function.outgoingSectionIdentifiers_3, _optJSONArray); + _keySet = (result0 = incomingSectionIdentifiers.keySet , !result0?(incomingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(incomingSectionIdentifiers, incomingSectionIdentifiers.map_0)):result0); + for (section$iterator = _keySet.iterator_0(); section$iterator.hasNext_0();) { + section = castTo(section$iterator.next_1(), 202); + _get = castTo($get(incomingSectionIdentifiers, section), 21); + for (id$iterator = _get.iterator_0(); id$iterator.hasNext_0();) { + id_0 = id$iterator.next_1(); + referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_0), 202); + if (referencedSection) { + _incomingSections = (!section.incomingSections && (section.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section, 10, 9)) , section.incomingSections); + $add_21(_incomingSections, referencedSection); + } + else { + _idSave = $optString(jsonObj, 'id'); + _plus = 'Referenced edge section does not exist: ' + id_0 + " (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + } + } + _keySet_1 = (result = outgoingSectionIdentifiers.keySet , !result?(outgoingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(outgoingSectionIdentifiers, outgoingSectionIdentifiers.map_0)):result); + for (section_1$iterator = _keySet_1.iterator_0(); section_1$iterator.hasNext_0();) { + section_1 = castTo(section_1$iterator.next_1(), 202); + _get_1 = castTo($get(outgoingSectionIdentifiers, section_1), 21); + for (id_1$iterator = _get_1.iterator_0(); id_1$iterator.hasNext_0();) { + id_1 = id_1$iterator.next_1(); + referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_1), 202); + if (referencedSection) { + _outgoingSections = (!section_1.outgoingSections && (section_1.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section_1, 9, 10)) , section_1.outgoingSections); + $add_21(_outgoingSections, referencedSection); + } + else { + _idSave = $optString(jsonObj, 'id'); + _plus = 'Referenced edge section does not exist: ' + id_1 + " (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + } + } + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0) && (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1)) && (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 1) { + section_2 = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + if (!$getIncomingShape(section_2) && !$getOutgoingShape(section_2)) { + $setIncomingShape(section_2, castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); + $setOutgoingShape(section_2, castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + } + } +} + +function $transformEdges_2(this$static, jsonObjA){ + var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, jsonObj, node; + jsonObj = jsonObjA; + node = castTo($get_5($inverse(this$static.nodeJsonMap), jsonObj), 33); + if (!node) { + _idSave = $optString(jsonObj, 'id'); + _plus = "Unable to find elk node for json object '" + _idSave; + _plus_1 = _plus + "' Panic!"; + throw toJs(new JsonImportException(_plus_1)); + } + _optJSONArray = $optJSONArray(jsonObj, 'edges'); + _function = new JsonImporter$lambda$1$Type(this$static, node); + $lambda$1_7(_function.$$outer_0, _function.node_1, _optJSONArray); + _optJSONArray_1 = $optJSONArray(jsonObj, 'children'); + _function_1 = new JsonImporter$lambda$2$Type(this$static); + $lambda$2_5(_function_1.$$outer_0, _optJSONArray_1); +} + +function $transformIndividualSpacings(jsonObjA, layoutData){ + var _function, _hasProperty, _individualSpacings, _keysJsonObj, _not, individualSpacings, jsonIndividualSpacings, jsonObj, keys_0, opts; + jsonObj = jsonObjA; + jsonIndividualSpacings = $optJSONObject_0(jsonObj, 'individualSpacings'); + if (jsonIndividualSpacings) { + _hasProperty = $hasProperty_0(layoutData, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0)); + _not = !_hasProperty; + if (_not) { + _individualSpacings = new IndividualSpacings; + $setProperty_1(layoutData, SPACING_INDIVIDUAL_0, _individualSpacings); + } + individualSpacings = castTo($getProperty_0(layoutData, SPACING_INDIVIDUAL_0), 373); + opts = jsonIndividualSpacings; + _keysJsonObj = null; + !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); + if (_keysJsonObj) { + _function = new JsonImporter$lambda$28$Type(opts, individualSpacings); + $forEach_0(_keysJsonObj, _function); + } + } +} + +function $transformLabels(this$static, jsonObjA, element){ + var _function, _optJSONArray, _xblockexpression, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + _optJSONArray = $optJSONArray(jsonObj, 'labels'); + _function = new JsonImporter$lambda$29$Type(this$static, element); + _xblockexpression = ($lambda$29_0(_function.$$outer_0, _function.element_1, _optJSONArray) , _optJSONArray); + return _xblockexpression; +} + +function $transformNode_0(this$static, jsonNode, parent_0){ + var node, node_0, elkNode, jsonObj, _optJSONArray, _function; + node = $register_4(this$static, (node_0 = ($clinit_ElkGraphFactory() , elkNode = new ElkNodeImpl , elkNode) , !!parent_0 && $setParent_2(node_0, parent_0) , node_0), jsonNode); + $setIdentifier(node, $optString(jsonNode, 'id')); + $transformProperties(jsonNode, node); + $transformIndividualSpacings(jsonNode, node); + $transformShapeLayout(jsonNode, node); + _xblockexpression = null; + jsonObj = jsonNode; + _optJSONArray = $optJSONArray(jsonObj, 'ports'); + _function = new JsonImporter$lambda$30$Type(this$static, node); + $lambda$30(_function.$$outer_0, _function.parent_1, _optJSONArray); + $transformLabels(this$static, jsonNode, node); + $transformChildNodes(this$static, jsonNode, node); + return node; +} + +function $transformPrimitiveEdge(this$static, jsonObjA, parent_0){ + var _asId, _asId_1, _elvis, _elvis_1, _id, _idSave, _idSave_1, _idSave_2, _id_1, _jsonObj, _jsonObj_1, _plus, _plus_1, _plus_2, _plus_3, _plus_4, _plus_5, _plus_6, _plus_7, _plus_8, _plus_9, _sources, _targets, _xblockexpression, edge, jsonObj, srcNode, srcPort, tgtNode, tgtPort; + _xblockexpression = null; + jsonObj = jsonObjA; + edge = $register_2(this$static, createEdge(parent_0), jsonObj); + $setIdentifier(edge, $optString(jsonObj, 'id')); + srcNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'source'))), 33); + _jsonObj = $get_9(jsonObj, 'sourcePort'); + _asId = null; + !!_jsonObj && (_asId = $asId(_jsonObj)); + srcPort = castTo($get_4(this$static.portIdMap, _asId), 118); + if (!srcNode) { + _id = $getId(jsonObj); + _plus = "An edge must have a source node (edge id: '" + _id; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + if (!!srcPort && !equal($getParent_3(srcPort), srcNode)) { + _idSave = $optString(jsonObj, 'id'); + _plus_2 = "The source port of an edge must be a port of the edge's source node (edge id: '" + _idSave; + _plus_3 = _plus_2 + "')."; + throw toJs(new JsonImportException(_plus_3)); + } + _sources = (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources); + _elvis = null; + srcPort?(_elvis = srcPort):(_elvis = srcNode); + $add_21(_sources, _elvis); + tgtNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'target'))), 33); + _jsonObj_1 = $get_9(jsonObj, 'targetPort'); + _asId_1 = null; + !!_jsonObj_1 && (_asId_1 = $asId(_jsonObj_1)); + tgtPort = castTo($get_4(this$static.portIdMap, _asId_1), 118); + if (!tgtNode) { + _id_1 = $getId(jsonObj); + _plus_4 = "An edge must have a target node (edge id: '" + _id_1; + _plus_5 = _plus_4 + "')."; + throw toJs(new JsonImportException(_plus_5)); + } + if (!!tgtPort && !equal($getParent_3(tgtPort), tgtNode)) { + _idSave_1 = $optString(jsonObj, 'id'); + _plus_6 = "The target port of an edge must be a port of the edge's target node (edge id: '" + _idSave_1; + _plus_7 = _plus_6 + "')."; + throw toJs(new JsonImportException(_plus_7)); + } + _targets = (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets); + _elvis_1 = null; + tgtPort?(_elvis_1 = tgtPort):(_elvis_1 = tgtNode); + $add_21(_targets, _elvis_1); + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + _idSave_2 = $optString(jsonObj, 'id'); + _plus_8 = "An edge must have at least one source and one target (edge id: '" + _idSave_2; + _plus_9 = _plus_8 + "')."; + throw toJs(new JsonImportException(_plus_9)); + } + $transformProperties(jsonObj, edge); + $transformPrimitiveEdgeLayout(jsonObj, edge); + _xblockexpression = $transformLabels(this$static, jsonObj, edge); + return _xblockexpression; +} + +function $transformPrimitiveEdgeLayout(jsonObjA, edge){ + var _function, _function_1, _function_2, _optJSONArray, _optJSONObject, _optJSONObject_1, _xblockexpression, _xblockexpression_1, _xifexpression, jsonObj, section; + _xblockexpression = null; + jsonObj = jsonObjA; + _xifexpression = null; + if ('sourcePoint' in jsonObj.jsObject || 'targetPoint' in jsonObj.jsObject || 'bendPoints' in jsonObj.jsObject) { + _xblockexpression_1 = null; + section = createEdgeSection(edge); + _optJSONObject = $optJSONObject_0(jsonObj, 'sourcePoint'); + _function = new JsonImporter$lambda$3$Type(section); + $lambda$3_4(_function.section_1, _optJSONObject); + _optJSONObject_1 = $optJSONObject_0(jsonObj, 'targetPoint'); + _function_1 = new JsonImporter$lambda$6$Type(section); + $lambda$6_0(_function_1.section_1, _optJSONObject_1); + _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); + _function_2 = new JsonImporter$lambda$9$Type(section); + _xblockexpression_1 = ($lambda$9_1(_function_2.section_1, _optJSONArray) , _optJSONArray); + _xifexpression = _xblockexpression_1; + } + _xblockexpression = _xifexpression; + return _xblockexpression; +} + +function $transformProperties(jsonObjA, layoutData){ + var _function, _keysJsonObj, jsonObj, keys_0, layoutOptions, opts; + jsonObj = jsonObjA; + layoutOptions = $optJSONObject_0(jsonObj, 'layoutOptions'); + !layoutOptions && (layoutOptions = $optJSONObject_0(jsonObj, 'properties')); + if (layoutOptions) { + opts = layoutOptions; + _keysJsonObj = null; + !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); + if (_keysJsonObj) { + _function = new JsonImporter$lambda$27$Type(opts, layoutData); + $forEach_0(_keysJsonObj, _function); + } + } +} + +function $transformShapeLayout(jsonObjA, shape_0){ + var _function, _function_1, _function_2, _function_3, _optDouble, _optDouble_1, _optDouble_2, _optDouble_3, _xblockexpression, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + _optDouble = $optDouble(jsonObj, 'x'); + _function = new JsonImporter$lambda$31$Type(shape_0); + $lambda$31(_function.shape_1, _optDouble); + _optDouble_1 = $optDouble(jsonObj, 'y'); + _function_1 = new JsonImporter$lambda$32$Type(shape_0); + $lambda$32(_function_1.shape_1, _optDouble_1); + _optDouble_2 = $optDouble(jsonObj, 'width'); + _function_2 = new JsonImporter$lambda$33$Type(shape_0); + $lambda$33(_function_2.shape_1, _optDouble_2); + _optDouble_3 = $optDouble(jsonObj, 'height'); + _function_3 = new JsonImporter$lambda$34$Type(shape_0); + _xblockexpression = ($lambda$34(_function_3.shape_1, _optDouble_3) , _optDouble_3); + return _xblockexpression; +} + +function JsonImporter(){ + this._jsonAdapter = new JsonAdapter; + this.nodeIdMap = new HashBiMap; + this.portIdMap = new HashBiMap; + this.edgeIdMap = new HashMap; + this.edgeSectionIdMap = new HashBiMap; + this.nodeJsonMap = new HashBiMap; + this.portJsonMap = new HashMap; + this.edgeJsonMap = new HashMap; + this.edgeSectionJsonMap = new HashMap; + this.labelJsonMap = new HashMap; +} + +defineClass(857, 1, {}, JsonImporter); +var Lorg_eclipse_elk_graph_json_JsonImporter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter', 857); +function JsonImporter$lambda$0$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(891, 1, {}, JsonImporter$lambda$0$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$0$Type', 891); +function JsonImporter$lambda$1$Type($$outer_0, node_1){ + this.$$outer_0 = $$outer_0; + this.node_1 = node_1; +} + +defineClass(892, 1, {}, JsonImporter$lambda$1$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$1$Type', 892); +function JsonImporter$lambda$10$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(900, 1, {}, JsonImporter$lambda$10$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$10$Type', 900); +function JsonImporter$lambda$11$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(902, 1, {}, JsonImporter$lambda$11$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$11$Type', 902); +function JsonImporter$lambda$12$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(903, 1, {}, JsonImporter$lambda$12$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$12$Type', 903); +function JsonImporter$lambda$13$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; + this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; + this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; +} + +defineClass(909, 1, {}, JsonImporter$lambda$13$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$13$Type', 909); +function JsonImporter$lambda$14$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; + this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; + this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; +} + +defineClass(908, 1, {}, JsonImporter$lambda$14$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$14$Type', 908); +function JsonImporter$lambda$15$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(904, 1, {}, JsonImporter$lambda$15$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$15$Type', 904); +function JsonImporter$lambda$16$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(905, 1, {}, JsonImporter$lambda$16$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$16$Type', 905); +function JsonImporter$lambda$17$Type(incomingSectionIdentifiers_1, elkSection_2){ + this.incomingSectionIdentifiers_1 = incomingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(906, 1, {}, JsonImporter$lambda$17$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$17$Type', 906); +function JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_1, elkSection_2){ + this.outgoingSectionIdentifiers_1 = outgoingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(907, 1, {}, JsonImporter$lambda$18$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$18$Type', 907); +function JsonImporter$lambda$19$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(912, 1, {}, JsonImporter$lambda$19$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$19$Type', 912); +function JsonImporter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(893, 1, {}, JsonImporter$lambda$2$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$2$Type', 893); +function JsonImporter$lambda$20$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(910, 1, {}, JsonImporter$lambda$20$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$20$Type', 910); +function JsonImporter$lambda$21$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(911, 1, {}, JsonImporter$lambda$21$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$21$Type', 911); +function JsonImporter$lambda$22$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(915, 1, {}, JsonImporter$lambda$22$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$22$Type', 915); +function JsonImporter$lambda$23$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(913, 1, {}, JsonImporter$lambda$23$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$23$Type', 913); +function JsonImporter$lambda$24$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(914, 1, {}, JsonImporter$lambda$24$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$24$Type', 914); +function JsonImporter$lambda$25$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(917, 1, {}, JsonImporter$lambda$25$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$25$Type', 917); +function JsonImporter$lambda$26$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(916, 1, {}, JsonImporter$lambda$26$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$26$Type', 916); +function JsonImporter$lambda$27$Type(opts_1, layoutData_2){ + this.opts_1 = opts_1; + this.layoutData_2 = layoutData_2; +} + +defineClass(918, 1, $intern_19, JsonImporter$lambda$27$Type); +_.accept = function accept_153(arg0){ + $lambda$27(this.opts_1, this.layoutData_2, castToString(arg0)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$27$Type', 918); +function JsonImporter$lambda$28$Type(opts_1, individualSpacings_2){ + this.opts_1 = opts_1; + this.individualSpacings_2 = individualSpacings_2; +} + +defineClass(919, 1, $intern_19, JsonImporter$lambda$28$Type); +_.accept = function accept_154(arg0){ + $lambda$28(this.opts_1, this.individualSpacings_2, castToString(arg0)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$28$Type', 919); +function JsonImporter$lambda$29$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(920, 1, {}, JsonImporter$lambda$29$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$29$Type', 920); +function JsonImporter$lambda$3$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(896, 1, {}, JsonImporter$lambda$3$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$3$Type', 896); +function JsonImporter$lambda$30$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(921, 1, {}, JsonImporter$lambda$30$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$30$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$30$Type', 921); +function JsonImporter$lambda$31$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(922, 1, {}, JsonImporter$lambda$31$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$31$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$31$Type', 922); +function JsonImporter$lambda$32$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(923, 1, {}, JsonImporter$lambda$32$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$32$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$32$Type', 923); +function JsonImporter$lambda$33$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(924, 1, {}, JsonImporter$lambda$33$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$33$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$33$Type', 924); +function JsonImporter$lambda$34$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(925, 1, {}, JsonImporter$lambda$34$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$34$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$34$Type', 925); +function $apply_28(this$static, arg0){ + $transferLayoutInt(this$static.$$outer_0, castTo(arg0, 56)); +} + +function JsonImporter$lambda$35$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(859, 1, {}, JsonImporter$lambda$35$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$35$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$35$Type', 859); +function $apply_29(this$static, arg0, arg1){ + $lambda$36(this$static.$$outer_0, this$static.edgeId_1, this$static.sections_2, castTo(arg0, 202), arg1); +} + +function JsonImporter$lambda$36$Type($$outer_0, edgeId_1, sections_2){ + this.$$outer_0 = $$outer_0; + this.edgeId_1 = edgeId_1; + this.sections_2 = sections_2; +} + +defineClass(929, 1, {}, JsonImporter$lambda$36$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$36$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$36$Type', 929); +function JsonImporter$lambda$37$Type(bendPoints_1){ + this.bendPoints_1 = bendPoints_1; +} + +defineClass(926, 1, $intern_19, JsonImporter$lambda$37$Type); +_.accept = function accept_155(arg0){ + $lambda$37(this.bendPoints_1, castTo(arg0, 469)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$37$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$37$Type', 926); +function JsonImporter$lambda$38$Type($$outer_0, incomingSections_1){ + this.$$outer_0 = $$outer_0; + this.incomingSections_1 = incomingSections_1; +} + +defineClass(927, 1, $intern_19, JsonImporter$lambda$38$Type); +_.accept = function accept_156(arg0){ + $lambda$38(this.$$outer_0, this.incomingSections_1, castTo(arg0, 202)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$38$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$38$Type', 927); +function JsonImporter$lambda$39$Type($$outer_0, outgoingSections_1){ + this.$$outer_0 = $$outer_0; + this.outgoingSections_1 = outgoingSections_1; +} + +defineClass(928, 1, $intern_19, JsonImporter$lambda$39$Type); +_.accept = function accept_157(arg0){ + $lambda$39(this.$$outer_0, this.outgoingSections_1, castTo(arg0, 202)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$39$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$39$Type', 928); +function JsonImporter$lambda$4$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(894, 1, {}, JsonImporter$lambda$4$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$4$Type', 894); +function JsonImporter$lambda$40$Type(jsonJPs_1){ + this.jsonJPs_1 = jsonJPs_1; +} + +defineClass(930, 1, $intern_19, JsonImporter$lambda$40$Type); +_.accept = function accept_158(arg0){ + $lambda$40(this.jsonJPs_1, castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$40$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$40$Type', 930); +function JsonImporter$lambda$5$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(895, 1, {}, JsonImporter$lambda$5$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$5$Type', 895); +function JsonImporter$lambda$6$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(899, 1, {}, JsonImporter$lambda$6$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$6$Type', 899); +function JsonImporter$lambda$7$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(897, 1, {}, JsonImporter$lambda$7$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$7$Type', 897); +function JsonImporter$lambda$8$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(898, 1, {}, JsonImporter$lambda$8$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$8$Type', 898); +function JsonImporter$lambda$9$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(901, 1, {}, JsonImporter$lambda$9$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$9$Type', 901); +function _toJson(lad){ + var _categoryId, _function, _function_1, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, _tripleNotEquals, jsonArr, jsonArr_1, jsonObj; + jsonObj = createCommon(lad); + _categoryId = lad.category; + _tripleNotEquals = _categoryId != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'category', lad.category); + _isNullOrEmpty = isNullOrEmpty(new AbstractMap$1(lad.knownOptions)); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'knownOptions', jsonArr); + _function = new JsonMetaDataConverter$lambda$0$Type(jsonArr); + $forEach_0(new AbstractMap$1(lad.knownOptions), _function); + } + _isNullOrEmpty_1 = isNullOrEmpty(lad.supportedFeatures); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + jsonArr_1 = new JSONArray; + $put_5(jsonObj, 'supportedFeatures', jsonArr_1); + _function_1 = new JsonMetaDataConverter$lambda$1$Type(jsonArr_1); + $forEach_0(lad.supportedFeatures, _function_1); + } + return jsonObj; +} + +function _toJson_0(lcd){ + var _function, _isNullOrEmpty, _not, jsonArr, jsonObj; + jsonObj = createCommon(lcd); + _isNullOrEmpty = isNullOrEmpty(lcd.layouters); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'knownLayouters', jsonArr); + _function = new JsonMetaDataConverter$lambda$2$Type(jsonArr); + $forEach_0(lcd.layouters, _function); + } + return jsonObj; +} + +function _toJson_1(lod){ + var _function, _group, _isNullOrEmpty, _not, _tripleNotEquals, _tripleNotEquals_1, _type, jsonArr, jsonObj; + jsonObj = createCommon(lod); + _group = lod.group_0; + _tripleNotEquals = _group != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'group', lod.group_0); + _type = lod.type_0; + _tripleNotEquals_1 = !!_type; + _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'type', $toString_3(lod.type_0)); + _isNullOrEmpty = isNullOrEmpty(lod.targets); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'targets', jsonArr); + _function = new JsonMetaDataConverter$lambda$3$Type(jsonArr); + $forEach_0(lod.targets, _function); + } + return jsonObj; +} + +function createCommon(data_0){ + var _description, _id, _name, _tripleNotEquals, _tripleNotEquals_1, _tripleNotEquals_2, jsonObj; + jsonObj = new JSONObject; + _id = data_0.getId(); + _tripleNotEquals = _id != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'id', data_0.getId()); + _name = data_0.getName(); + _tripleNotEquals_1 = _name != null; + _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'name', data_0.getName()); + _description = data_0.getDescription(); + _tripleNotEquals_2 = _description != null; + _tripleNotEquals_2 && $addJsonObj_1(jsonObj, 'description', data_0.getDescription()); + return jsonObj; +} + +function lambda$1_22(jsonArr_1_0, f_1){ + $addJsonArr(jsonArr_1_0, new JSONString(f_1.name_0 != null?f_1.name_0:'' + f_1.ordinal)); +} + +function lambda$2_12(jsonArr_0, l_1){ + var _id, _tripleNotEquals; + _id = l_1.id_0; + _tripleNotEquals = _id != null; + _tripleNotEquals && $addJsonArr(jsonArr_0, new JSONString(l_1.id_0)); +} + +function lambda$3_8(jsonArr_0, t_1){ + $addJsonArr(jsonArr_0, new JSONString(t_1.name_0 != null?t_1.name_0:'' + t_1.ordinal)); +} + +function toJson(lad){ + if (instanceOf(lad, 149)) { + return _toJson(castTo(lad, 149)); + } + else if (instanceOf(lad, 229)) { + return _toJson_0(castTo(lad, 229)); + } + else if (instanceOf(lad, 23)) { + return _toJson_1(castTo(lad, 23)); + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [lad]))))); + } +} + +function JsonMetaDataConverter$lambda$0$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(948, 1, $intern_19, JsonMetaDataConverter$lambda$0$Type); +_.accept = function accept_159(arg0){ + $addJsonArr(this.jsonArr_0, new JSONString(castToString(arg0))); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$0$Type', 948); +function JsonMetaDataConverter$lambda$1$Type(jsonArr_1_0){ + this.jsonArr_1_0 = jsonArr_1_0; +} + +defineClass(949, 1, $intern_19, JsonMetaDataConverter$lambda$1$Type); +_.accept = function accept_160(arg0){ + lambda$1_22(this.jsonArr_1_0, castTo(arg0, 237)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$1$Type', 949); +function JsonMetaDataConverter$lambda$2$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(950, 1, $intern_19, JsonMetaDataConverter$lambda$2$Type); +_.accept = function accept_161(arg0){ + lambda$2_12(this.jsonArr_0, castTo(arg0, 149)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$2$Type', 950); +function JsonMetaDataConverter$lambda$3$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(951, 1, $intern_19, JsonMetaDataConverter$lambda$3$Type); +_.accept = function accept_162(arg0){ + lambda$3_8(this.jsonArr_0, castTo(arg0, 175)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$3$Type', 951); +function $clinit_GraphFeature(){ + $clinit_GraphFeature = emptyMethod; + SELF_LOOPS_0 = new GraphFeature('SELF_LOOPS', 0); + INSIDE_SELF_LOOPS = new GraphFeature('INSIDE_SELF_LOOPS', 1); + MULTI_EDGES = new GraphFeature('MULTI_EDGES', 2); + EDGE_LABELS = new GraphFeature('EDGE_LABELS', 3); + PORTS_1 = new GraphFeature('PORTS', 4); + COMPOUND = new GraphFeature('COMPOUND', 5); + CLUSTERS = new GraphFeature('CLUSTERS', 6); + DISCONNECTED = new GraphFeature('DISCONNECTED', 7); +} + +function GraphFeature(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_111(name_0){ + $clinit_GraphFeature(); + return valueOf(($clinit_GraphFeature$Map() , $MAP_99), name_0); +} + +function values_117(){ + $clinit_GraphFeature(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]); +} + +defineClass(237, 22, {3:1, 35:1, 22:1, 237:1}, GraphFeature); +var CLUSTERS, COMPOUND, DISCONNECTED, EDGE_LABELS, INSIDE_SELF_LOOPS, MULTI_EDGES, PORTS_1, SELF_LOOPS_0; +var Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit = createForEnum('org.eclipse.elk.graph.properties', 'GraphFeature', 237, Ljava_lang_Enum_2_classLit, values_117, valueOf_111); +function $clinit_GraphFeature$Map(){ + $clinit_GraphFeature$Map = emptyMethod; + $MAP_99 = createValueOfMap(($clinit_GraphFeature() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]))); +} + +var $MAP_99; +function $compareTo_21(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $equals_10(this$static, obj){ + return instanceOf(obj, 146) && $equals_5(this$static.id_0, castTo(obj, 146).getId()); +} + +function $getDefault(this$static){ + var clone; + if (instanceOf(this$static.defaultValue, 4)) { + clone = clone_11(this$static.defaultValue); + if (clone == null) { + throw toJs(new IllegalStateException_0("Couldn't clone property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return clone; + } + else { + return this$static.defaultValue; + } +} + +function Property(theid){ + this.id_0 = theid; +} + +function Property_0(theid, thedefaultValue){ + Property.call(this, theid); + this.defaultValue = thedefaultValue; +} + +function Property_1(theid, thedefaultValue){ + Property_0.call(this, theid, thedefaultValue); +} + +function Property_2(other, thedefaultValue){ + Property_0.call(this, other.id_0, thedefaultValue); +} + +defineClass(13, 1, {35:1, 146:1}, Property, Property_0, Property_1, Property_2); +_.compareTo_0 = function compareTo_22(other){ + return $compareTo_21(this, castTo(other, 146)); +} +; +_.equals_0 = function equals_184(obj){ + return $equals_10(this, obj); +} +; +_.getDefault = function getDefault_0(){ + return $getDefault(this); +} +; +_.getId = function getId_2(){ + return this.id_0; +} +; +_.hashCode_1 = function hashCode_73(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_134(){ + return this.id_0; +} +; +var Lorg_eclipse_elk_graph_properties_Property_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'Property', 13); +function $compare_26(this$static, ph1, ph2){ + var p1, p2; + p1 = castTo(ph1.getProperty(this$static.property), 35); + p2 = castTo(ph2.getProperty(this$static.property), 35); + return p1 != null && p2 != null?compareTo_Ljava_lang_Object__I__devirtual$(p1, p2):p1 != null?-1:p2 != null?1:0; +} + +function PropertyHolderComparator(property){ + this.property = property; +} + +defineClass(818, 1, $intern_88, PropertyHolderComparator); +_.compare_1 = function compare_87(ph1, ph2){ + return $compare_26(this, castTo(ph1, 94), castTo(ph2, 94)); +} +; +_.equals_0 = function equals_185(other){ + return this === other; +} +; +_.reversed = function reversed_79(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_graph_properties_PropertyHolderComparator_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'PropertyHolderComparator', 818); +function allIncomingEdges(node){ + var incomingEdgeIterables, port, port$iterator; + incomingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); + $add_3(incomingEdgeIterables, (!node.incomingEdges && (node.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 8, 5)) , node.incomingEdges)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + $add_3(incomingEdgeIterables, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); + } + return checkNotNull(incomingEdgeIterables) , new FluentIterable$2(incomingEdgeIterables); +} + +function allOutgoingEdges(node){ + var outgoingEdgeIterables, port, port$iterator; + outgoingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); + $add_3(outgoingEdgeIterables, (!node.outgoingEdges && (node.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 7, 4)) , node.outgoingEdges)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + $add_3(outgoingEdgeIterables, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); + } + return checkNotNull(outgoingEdgeIterables) , new FluentIterable$2(outgoingEdgeIterables); +} + +function connectableShapeToNode(connectableShape){ + if (instanceOf(connectableShape, 239)) { + return castTo(connectableShape, 33); + } + else if (instanceOf(connectableShape, 186)) { + return $getParent_3(castTo(connectableShape, 118)); + } + else if (!connectableShape) { + throw toJs(new NullPointerException_0('connectableShape cannot be null')); + } + else { + throw toJs(new UnsupportedOperationException_0('Only support nodes and ports.')); + } +} + +function connectableShapeToPort(connectableShape){ + if (instanceOf(connectableShape, 186)) { + return castTo(connectableShape, 118); + } + else if (!connectableShape) { + throw toJs(new NullPointerException_0('connectableShape cannot be null')); + } + else { + return null; + } +} + +function createBendPoint(edgeSection, x_0, y_0){ + var bendPoint, elkBendPoint; + bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $setX_1(bendPoint, x_0); + $setY_2(bendPoint, y_0); + !!edgeSection && $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); + return bendPoint; +} + +function createEdge(containingNode){ + var edge, elkEdge; + edge = ($clinit_ElkGraphFactory() , elkEdge = new ElkEdgeImpl , elkEdge); + !!containingNode && $setContainingNode(edge, containingNode); + return edge; +} + +function createEdgeSection(edge){ + var elkEdgeSection, section; + section = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + !!edge && $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), section); + return section; +} + +function createLabel(text_0, parent_0){ + var label_0, label_1, elkLabel; + label_0 = (label_1 = ($clinit_ElkGraphFactory() , elkLabel = new ElkLabelImpl , elkLabel) , !!parent_0 && $setParent_1(label_1, parent_0) , label_1); + $setText(label_0, text_0); + return label_0; +} + +function findBestEdgeContainment(edge){ + var commonAncestor, incidentNode, incidentShapes, sourceNode, targetNode; + requireNonNull(edge, 'edge cannot be null'); + switch ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 + (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0) { + case 0: + throw toJs(new IllegalArgumentException_0('The edge must have at least one source or target.')); + case 1: + return (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0?$getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))):$getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); + } + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 1) { + sourceNode = connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); + targetNode = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + if ($getParent_2(sourceNode) == $getParent_2(targetNode)) { + return $getParent_2(sourceNode); + } + else if (sourceNode == $getParent_2(targetNode)) { + return sourceNode; + } + else if (targetNode == $getParent_2(sourceNode)) { + return targetNode; + } + } + incidentShapes = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)]))); + commonAncestor = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); + while ($hasNext_1(incidentShapes)) { + incidentNode = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); + if (incidentNode != commonAncestor && !isDescendant_0(incidentNode, commonAncestor)) { + if ($getParent_2(incidentNode) == $getParent_2(commonAncestor)) { + commonAncestor = $getParent_2(incidentNode); + } + else { + commonAncestor = findLowestCommonAncestor(commonAncestor, incidentNode); + if (!commonAncestor) { + return null; + } + } + } + } + return commonAncestor; +} + +function findLowestCommonAncestor(node1, node2){ + var ancestor1, ancestor2, ancestors1, ancestors2, commonAncestor, iterator1, iterator2; + ancestors1 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node1)); + iterator1 = new AbstractList$ListIteratorImpl(ancestors1, ancestors1.array.length); + ancestors2 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node2)); + iterator2 = new AbstractList$ListIteratorImpl(ancestors2, ancestors2.array.length); + commonAncestor = null; + while (iterator1.i > 0 && iterator2.i > 0) { + ancestor1 = (checkCriticalElement(iterator1.i > 0) , castTo(iterator1.this$01.get_0(iterator1.last = --iterator1.i), 33)); + ancestor2 = (checkCriticalElement(iterator2.i > 0) , castTo(iterator2.this$01.get_0(iterator2.last = --iterator2.i), 33)); + if (ancestor1 == ancestor2) { + commonAncestor = ancestor1; + } + else { + break; + } + } + return commonAncestor; +} + +function firstEdgeSection(edge, resetSection, removeOtherSections){ + var section, sections; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + return createEdgeSection(edge); + } + else { + section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + if (resetSection) { + $clear_13((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); + $setStartX(section, 0); + $setStartY(section, 0); + $setEndX(section, 0); + $setEndY(section, 0); + } + if (removeOtherSections) { + sections = (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections); + while (sections.size_0 > 1) { + $remove_35(sections, sections.size_0 - 1); + } + } + return section; + } +} + +function getSourceNode(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToNode(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); +} + +function getSourcePort(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToPort(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); +} + +function getTargetNode_0(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToNode(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); +} + +function getTargetPort(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToPort(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); +} + +function isDescendant_0(child, ancestor){ + var current; + current = child; + while ($getParent_2(current)) { + current = $getParent_2(current); + if (current == ancestor) { + return true; + } + } + return false; +} + +function updateContainment(edge){ + requireNonNull(edge, 'edge cannot be null'); + $setContainingNode(edge, findBestEdgeContainment(edge)); +} + +function $next_13(this$static){ + var next; + if (!this$static.nextNode) { + throw toJs(new NoSuchElementException_0); + } + next = this$static.nextNode; + this$static.nextNode = $getParent_2(this$static.nextNode); + return next; +} + +function ElkGraphUtil$AncestorIterator(startNode){ + this.nextNode = startNode; +} + +defineClass(695, 1, $intern_6, ElkGraphUtil$AncestorIterator); +_.forEachRemaining = function forEachRemaining_52(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_42(){ + return $next_13(this); +} +; +_.remove = function remove_97(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_41(){ + return !!this.nextNode; +} +; +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$AncestorIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/AncestorIterator', 695); +var Lorg_eclipse_emf_common_util_EList_2_classLit = createForInterface('org.eclipse.emf.common.util', 'EList'); +function $add_20(this$static, index_0, object){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + if (this$static.isUnique() && this$static.contains(object)) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + this$static.addUnique(index_0, object); +} + +function $add_21(this$static, object){ + if (this$static.isUnique() && this$static.contains(object)) { + return false; + } + else { + this$static.addUnique_0(object); + return true; + } +} + +function $addAll_8(this$static, index_0, collection){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); + return this$static.addAllUnique(index_0, collection); +} + +function $addAll_9(this$static, collection){ + this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); + return this$static.addAllUnique_0(collection); +} + +function $basicListIterator(this$static, index_0){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new AbstractEList$NonResolvingEListIterator_0(this$static, index_0); +} + +function $didClear(this$static, size_0, oldObjects){ + var i, object; + if (oldObjects != null) { + for (i = 0; i < size_0; ++i) { + object = oldObjects[i]; + this$static.didRemove(i, object); + } + } +} + +function $equals_11(this$static, object){ + var i, list, o1, o2, objects, size_0; + if (maskUndefined(object) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(object, 15)) { + return false; + } + list = castTo(object, 15); + size_0 = this$static.size_1(); + if (list.size_1() != size_0) { + return false; + } + objects = list.iterator_0(); + if (this$static.useEquals()) { + for (i = 0; i < size_0; ++i) { + o1 = this$static.primitiveGet(i); + o2 = objects.next_1(); + if (o1 == null?o2 != null:!equals_Ljava_lang_Object__Z__devirtual$(o1, o2)) { + return false; + } + } + } + else { + for (i = 0; i < size_0; ++i) { + o1 = this$static.primitiveGet(i); + o2 = objects.next_1(); + if (maskUndefined(o1) !== maskUndefined(o2)) { + return false; + } + } + } + return true; +} + +function $getDuplicates(this$static, collection){ + var filteredResult, object, object$iterator; + if (collection.isEmpty()) { + return $clinit_ECollections() , $clinit_ECollections() , EMPTY_ELIST; + } + else { + filteredResult = new AbstractEList$1(this$static, collection.size_1()); + for (object$iterator = new AbstractEList$EIterator(this$static); object$iterator.cursor != object$iterator.this$01_2.size_1();) { + object = $doNext(object$iterator); + collection.contains(object) && $add_21(filteredResult, object); + } + return filteredResult; + } +} + +function $getNonDuplicates(this$static, collection){ + var result; + result = new LinkedHashSet_1(collection); + $removeAll_1(result, this$static); + return new ArrayList_1(result); +} + +function $hashCode_2(this$static){ + var hashCode, i, object, size_0; + hashCode = 1; + for (i = 0 , size_0 = this$static.size_1(); i < size_0; ++i) { + object = this$static.primitiveGet(i); + hashCode = 31 * hashCode + (object == null?0:hashCode__I__devirtual$(object)); + } + return hashCode; +} + +function $remove_32(this$static, object){ + var index_0; + index_0 = this$static.indexOf_0(object); + if (index_0 >= 0) { + this$static.remove_2(index_0); + return true; + } + else { + return false; + } +} + +function $set_11(this$static, index_0, object){ + var currentIndex, size_0; + size_0 = this$static.size_1(); + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + if (this$static.isUnique()) { + currentIndex = this$static.indexOf_0(object); + if (currentIndex >= 0 && currentIndex != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + return this$static.setUnique(index_0, object); +} + +function $toString_25(this$static){ + var i, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = 0 , size_0 = this$static.size_1(); i < size_0;) { + $append_3(stringBuffer, valueOf_7(this$static.primitiveGet(i))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} + +function $validate(this$static, object){ + if (!this$static.canContainNull() && object == null) { + throw toJs(new IllegalArgumentException_0("The 'no null' constraint is violated")); + } + return object; +} + +defineClass(67, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}); +_.add_3 = function add_46(index_0, object){ + $add_20(this, index_0, object); +} +; +_.add_2 = function add_47(object){ + return $add_21(this, object); +} +; +_.addAll_0 = function addAll_24(index_0, collection){ + return $addAll_8(this, index_0, collection); +} +; +_.addAll = function addAll_25(collection){ + return $addAll_9(this, collection); +} +; +_.basicIterator = function basicIterator(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_0(index_0){ + return $basicListIterator(this, index_0); +} +; +_.canContainNull = function canContainNull(){ + return true; +} +; +_.didAdd = function didAdd(index_0, newObject){ +} +; +_.didChange = function didChange(){ +} +; +_.didClear = function didClear(size_0, oldObjects){ + $didClear(this, size_0, oldObjects); +} +; +_.didMove = function didMove(index_0, movedObject, oldIndex){ +} +; +_.didRemove = function didRemove(index_0, oldObject){ +} +; +_.didSet = function didSet(index_0, newObject, oldObject){ +} +; +_.equals_0 = function equals_186(object){ + return $equals_11(this, object); +} +; +_.hashCode_1 = function hashCode_74(){ + return $hashCode_2(this); +} +; +_.isUnique = function isUnique_0(){ + return false; +} +; +_.iterator_0 = function iterator_79(){ + return new AbstractEList$EIterator(this); +} +; +_.listIterator_0 = function listIterator_17(){ + return new AbstractEList$EListIterator(this); +} +; +_.listIterator_1 = function listIterator_18(index_0){ + var size_0; + size_0 = this.size_1(); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new AbstractEList$EListIterator_0(this, index_0); +} +; +_.move_0 = function move_0(index_0, object){ + this.move(index_0, this.indexOf_0(object)); +} +; +_.remove_1 = function remove_98(object){ + return $remove_32(this, object); +} +; +_.resolve = function resolve_0(index_0, object){ + return object; +} +; +_.set_2 = function set_21(index_0, object){ + return $set_11(this, index_0, object); +} +; +_.toString_0 = function toString_135(){ + return $toString_25(this); +} +; +_.useEquals = function useEquals(){ + return true; +} +; +_.validate = function validate(index_0, object){ + return $validate(this, object); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList', 67); +function $addAllUnique(this$static, index_0, collection){ + var growth, i, object, objects, shifted; + growth = collection.size_1(); + this$static.grow(this$static.size_0 + growth); + shifted = this$static.size_0 - index_0; + shifted > 0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + growth, shifted); + objects = collection.iterator_0(); + this$static.size_0 += growth; + for (i = 0; i < growth; ++i) { + object = objects.next_1(); + $assign(this$static, index_0, this$static.validate(index_0, object)); + this$static.didAdd(index_0, object); + this$static.didChange(); + ++index_0; + } + return growth != 0; +} + +function $addAllUnique_0(this$static, collection){ + var growth, i, object, objects, oldSize; + growth = collection.size_1(); + this$static.grow(this$static.size_0 + growth); + objects = collection.iterator_0(); + oldSize = this$static.size_0; + this$static.size_0 += growth; + for (i = oldSize; i < this$static.size_0; ++i) { + object = objects.next_1(); + $assign(this$static, i, this$static.validate(i, object)); + this$static.didAdd(i, object); + this$static.didChange(); + } + return growth != 0; +} + +function $addUnique(this$static, index_0, object){ + var validatedObject; + this$static.grow(this$static.size_0 + 1); + validatedObject = this$static.validate(index_0, object); + index_0 != this$static.size_0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + 1, this$static.size_0 - index_0); + setCheck(this$static.data_0, index_0, validatedObject); + ++this$static.size_0; + this$static.didAdd(index_0, object); + this$static.didChange(); +} + +function $addUnique_0(this$static, object){ + this$static.grow(this$static.size_0 + 1); + $assign(this$static, this$static.size_0, this$static.validate(this$static.size_0, object)); + this$static.didAdd(this$static.size_0++, object); + this$static.didChange(); +} + +function $assign(this$static, index_0, object){ + setCheck(this$static.data_0, index_0, object); + return object; +} + +function $basicGet(this$static, index_0){ + if (this$static.data_0 == null || index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + return this$static.data_0[index_0]; +} + +function $clear_11(this$static){ + var oldData, oldSize; + ++this$static.modCount; + oldData = this$static.data_0; + oldSize = this$static.size_0; + this$static.data_0 = null; + this$static.size_0 = 0; + this$static.didClear(oldSize, oldData); + this$static.didChange(); +} + +function $contains_10(this$static, object){ + var i; + if (this$static.useEquals() && object != null) { + for (i = 0; i < this$static.size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { + return true; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { + return true; + } + } + } + return false; +} + +function $get_20(this$static, index_0){ + if (this$static.data_0 == null || index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + return this$static.resolve(index_0, this$static.data_0[index_0]); +} + +function $indexOf_4(this$static, object){ + var i; + if (this$static.useEquals() && object != null) { + for (i = 0; i < this$static.size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { + return i; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} + +function $move(this$static, targetIndex, sourceIndex){ + var object; + ++this$static.modCount; + if (targetIndex >= this$static.size_0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + this$static.size_0)); + if (sourceIndex >= this$static.size_0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + this$static.size_0)); + object = this$static.data_0[sourceIndex]; + if (targetIndex != sourceIndex) { + targetIndex < sourceIndex?arraycopy(this$static.data_0, targetIndex, this$static.data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(this$static.data_0, sourceIndex + 1, this$static.data_0, sourceIndex, targetIndex - sourceIndex); + setCheck(this$static.data_0, targetIndex, object); + this$static.didMove(targetIndex, object, sourceIndex); + this$static.didChange(); + } + return object; +} + +function $remove_33(this$static, index_0){ + var oldObject, shifted; + if (index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + ++this$static.modCount; + oldObject = this$static.data_0[index_0]; + shifted = this$static.size_0 - index_0 - 1; + shifted > 0 && arraycopy(this$static.data_0, index_0 + 1, this$static.data_0, index_0, shifted); + setCheck(this$static.data_0, --this$static.size_0, null); + this$static.didRemove(index_0, oldObject); + this$static.didChange(); + return oldObject; +} + +function $setUnique(this$static, index_0, object){ + var oldObject; + oldObject = this$static.data_0[index_0]; + $assign(this$static, index_0, this$static.validate(index_0, object)); + this$static.didSet(index_0, object, oldObject); + this$static.didChange(); + return oldObject; +} + +function $shrink_0(this$static){ + var oldData; + ++this$static.modCount; + if (this$static.size_0 == 0) { + this$static.data_0 = null; + } + else if (this$static.size_0 < this$static.data_0.length) { + oldData = this$static.data_0; + this$static.data_0 = this$static.newData(this$static.size_0); + arraycopy(oldData, 0, this$static.data_0, 0, this$static.size_0); + } +} + +function $toArray_9(this$static){ + var result; + result = this$static.newData(this$static.size_0); + this$static.size_0 > 0 && arraycopy(this$static.data_0, 0, result, 0, this$static.size_0); + return result; +} + +function $toArray_10(this$static, array){ + var newArray; + if (this$static.size_0 > 0) { + if (array.length < this$static.size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, this$static.size_0); + array = newArray; + } + arraycopy(this$static.data_0, 0, array, 0, this$static.size_0); + } + array.length > this$static.size_0 && setCheck(array, this$static.size_0, null); + return array; +} + +function BasicEList(){ +} + +function BasicEList_0(initialCapacity){ + if (initialCapacity < 0) { + throw toJs(new IllegalArgumentException_0('Illegal Capacity: ' + initialCapacity)); + } + this.data_0 = this.newData(initialCapacity); +} + +function BasicEList_1(collection){ + this.size_0 = collection.size_1(); + if (this.size_0 > 0) { + this.data_0 = this.newData(this.size_0 + (this.size_0 / 8 | 0) + 1); + collection.toArray_0(this.data_0); + } +} + +defineClass(63, 67, $intern_138, BasicEList, BasicEList_0, BasicEList_1); +_.addAllUnique = function addAllUnique(index_0, collection){ + return $addAllUnique(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_0(collection){ + return $addAllUnique_0(this, collection); +} +; +_.addUnique = function addUnique(index_0, object){ + $addUnique(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_0(object){ + $addUnique_0(this, object); +} +; +_.basicGet = function basicGet(index_0){ + return $basicGet(this, index_0); +} +; +_.clear_0 = function clear_52(){ + $clear_11(this); +} +; +_.contains = function contains_52(object){ + return $contains_10(this, object); +} +; +_.get_0 = function get_50(index_0){ + return $get_20(this, index_0); +} +; +_.grow = function grow(minimumCapacity){ + var newCapacity, oldCapacity, oldData; + ++this.modCount; + oldCapacity = this.data_0 == null?0:this.data_0.length; + if (minimumCapacity > oldCapacity) { + oldData = this.data_0; + newCapacity = oldCapacity + (oldCapacity / 2 | 0) + 4; + newCapacity < minimumCapacity && (newCapacity = minimumCapacity); + this.data_0 = this.newData(newCapacity); + oldData != null && arraycopy(oldData, 0, this.data_0, 0, this.size_0); + } +} +; +_.indexOf_0 = function indexOf_8(object){ + return $indexOf_4(this, object); +} +; +_.isEmpty = function isEmpty_26(){ + return this.size_0 == 0; +} +; +_.move = function move_1(targetIndex, sourceIndex){ + return $move(this, targetIndex, sourceIndex); +} +; +_.newData = function newData_0(capacity){ + return initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, capacity, 5, 1); +} +; +_.primitiveGet = function primitiveGet(index_0){ + return this.data_0[index_0]; +} +; +_.remove_2 = function remove_99(index_0){ + return $remove_33(this, index_0); +} +; +_.setUnique = function setUnique(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.size_1 = function size_65(){ + return this.size_0; +} +; +_.toArray = function toArray_26(){ + return $toArray_9(this); +} +; +_.toArray_0 = function toArray_27(array){ + return $toArray_10(this, array); +} +; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList', 63); +var Lorg_eclipse_emf_common_util_TreeIterator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'TreeIterator'); +function $hasAnyChildren(this$static){ + var nextPruneIterator; + nextPruneIterator = this$static.nextPruneIterator; + nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, nextPruneIterator); + return nextPruneIterator.hasNext_0(); +} + +function $next_14(this$static){ + var currentIterator, iterator, nextIterator, result, result0; + if (this$static.data_0 == null) { + this$static.nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, this$static.nextPruneIterator); + if (this$static.includeRoot) { + result0 = this$static.object; + return result0; + } + } + currentIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); + result = currentIterator.next_1(); + this$static.nextRemoveIterator = currentIterator; + iterator = this$static.getChildren(result); + if (iterator.hasNext_0()) { + this$static.nextPruneIterator = iterator; + $add_21(this$static, iterator); + } + else { + this$static.nextPruneIterator = null; + while (!currentIterator.hasNext_0()) { + setCheck(this$static.data_0, --this$static.size_0, null); + if (this$static.size_0 == 0) { + break; + } + nextIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); + currentIterator = nextIterator; + } + } + return result; +} + +function AbstractTreeIterator(object, includeRoot){ + this.object = object; + this.includeRoot = includeRoot; +} + +defineClass(694, 63, $intern_139); +_.forEachRemaining = function forEachRemaining_53(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_42(){ + return this.data_0 == null && !this.includeRoot?$hasAnyChildren(this):this.data_0 == null || this.size_0 != 0 && castTo(this.data_0[this.size_0 - 1], 47).hasNext_0(); +} +; +_.next_1 = function next_43(){ + return $next_14(this); +} +; +_.remove = function remove_100(){ + if (!this.nextRemoveIterator) { + throw toJs(new IllegalStateException_0('There is no valid object to remove.')); + } + this.nextRemoveIterator.remove(); +} +; +_.includeRoot = false; +var Lorg_eclipse_emf_common_util_AbstractTreeIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractTreeIterator', 694); +function ElkGraphUtil$PropertiesSkippingTreeIterator(object){ + AbstractTreeIterator.call(this, object, true); +} + +defineClass(685, 694, $intern_139, ElkGraphUtil$PropertiesSkippingTreeIterator); +_.getChildren = function getChildren(object){ + var iterator; + iterator = castTo(object, 56).eContents_0().iterator_0(); + instanceOf(iterator, 279) && castTo(iterator, 279).filter_0(new ElkGraphUtil$PropertiesSkippingTreeIterator$1); + return iterator; +} +; +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator', 685); +function ElkGraphUtil$PropertiesSkippingTreeIterator$1(){ +} + +defineClass(952, 1, {}, ElkGraphUtil$PropertiesSkippingTreeIterator$1); +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator$1_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator/1', 952); +function $clinit_ElkReflect(){ + $clinit_ElkReflect = emptyMethod; + REGISTRY_NEW = new HashMap; + REGISTRY_CLONE = new HashMap; + registerClone(Ljava_util_EnumSet_2_classLit, new ElkReflect$lambda$0$Type); +} + +function clone_11(clonee){ + $clinit_ElkReflect(); + if (instanceOf(clonee, 156)) { + return castTo($get_10(REGISTRY_CLONE, Ljava_util_EnumSet_2_classLit), 288).clone(clonee); + } + if ($containsKey_3(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee))) { + return castTo($get_10(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee)), 288).clone(clonee); + } + return null; +} + +function newInstance_10(clazz){ + $clinit_ElkReflect(); + return $containsKey_3(REGISTRY_NEW, clazz)?castTo($get_10(REGISTRY_NEW, clazz), 331).newInstance():null; +} + +function register(clazz, newFun, cloneFun){ + $clinit_ElkReflect(); + !!clazz && $put_6(REGISTRY_NEW, clazz, newFun); + !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); +} + +function registerClone(clazz, cloneFun){ + !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); +} + +var REGISTRY_CLONE, REGISTRY_NEW; +var Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect', null); +function ElkReflect$lambda$0$Type(){ +} + +defineClass(889, 1, $intern_130, ElkReflect$lambda$0$Type); +_.clone = function clone_12(o){ + return $clinit_ElkReflect() , $clone(castTo(o, 174)); +} +; +var Lorg_eclipse_elk_graph_util_ElkReflect$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect/lambda$0$Type', 889); +function $clinit_ElkJs(){ + $clinit_ElkJs = emptyMethod; + SERVICE = getInstance(); +} + +function collectLogs(currentPM, logObject, recordLogs, recordExecutionTime){ + var child, child$iterator, children, i, jsonChild, jsonExecTime, jsonLogs, jsonString, jsonTaskName, s, s$iterator; + jsonTaskName = new JSONString(currentPM.taskName); + $put_5(logObject, 'name', jsonTaskName); + if (recordLogs && !(!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).list.isEmpty()) { + jsonLogs = new JSONArray; + $put_5(logObject, 'logs', jsonLogs); + i = 0; + for (s$iterator = new Collections$UnmodifiableCollectionIterator((!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).coll.iterator_0()); s$iterator.it.hasNext_0();) { + s = castToString(s$iterator.it.next_1()); + jsonString = new JSONString(s); + $get_8(jsonLogs, i); + $set0(jsonLogs, i, jsonString); + ++i; + } + } + if (recordExecutionTime) { + jsonExecTime = new JSONNumber(currentPM.totalTime); + $put_5(logObject, 'executionTime', jsonExecTime); + } + if (!unmodifiableList(currentPM.children).list.isEmpty()) { + children = new JSONArray; + $put_5(logObject, 'children', children); + i = 0; + for (child$iterator = new Collections$UnmodifiableCollectionIterator(unmodifiableList(currentPM.children).coll.iterator_0()); child$iterator.it.hasNext_0();) { + child = castTo(child$iterator.it.next_1(), 1949); + jsonChild = new JSONObject; + $get_8(children, i); + $set0(children, i, jsonChild); + collectLogs(child, jsonChild, recordLogs, recordExecutionTime); + ++i; + } + } +} + +function exportLayout(){ + $clinit_ElkJs(); + function Dispatcher(worker){ + var _this = this; + this.dispatch = function(event_0){ + var data_0 = event_0.data; + switch (data_0.cmd) { + case 'algorithms': + var algs = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutAlgorithmMap)))); + worker.postMessage({id:data_0.id, data:algs}); + break; + case 'categories': + var cats = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutCategoryMap)))); + worker.postMessage({id:data_0.id, data:cats}); + break; + case 'options': + var opts = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutOptionMap)))); + worker.postMessage({id:data_0.id, data:opts}); + break; + case 'register': + registerLayoutAlgorithms(data_0.algorithms); + worker.postMessage({id:data_0.id}); + break; + case 'layout': + layout_11(data_0.graph, data_0.layoutOptions || {}, data_0.options || {}); + worker.postMessage({id:data_0.id, data:data_0.graph}); + break; + } + } + ; + this.saveDispatch = function(event_0){ + try { + _this.dispatch(event_0); + } + catch (err) { + worker.postMessage({id:event_0.data.id, error:err}); + } + } + ; + } + + function FakeWorker(url_0){ + var _this = this; + this.dispatcher = new Dispatcher({postMessage:function(msg){ + _this.onmessage({data:msg}); + } + }); + this.postMessage = function(msg){ + setTimeout(function(){ + _this.dispatcher.saveDispatch({data:msg}); + } + , 0); + } + ; + } + + if (typeof document === 'undefined' && typeof self !== 'undefined') { + var dispatcher = new Dispatcher(self); + self.onmessage = dispatcher.saveDispatch; + } + else if (typeof module !== 'undefined' && module.exports) { + Object.defineProperty(exports, '__esModule', {value:true}); + module.exports = {'default':FakeWorker, Worker:FakeWorker}; + } +} + +function getLayoutData(data_0){ + var arr, json, ld, ld$iterator; + arr = new JSONArray; + for (ld$iterator = new Collections$UnmodifiableCollectionIterator(data_0.coll.iterator_0()); ld$iterator.it.hasNext_0();) { + ld = castTo(ld$iterator.it.next_1(), 686); + json = toJson(ld); + $set_0(arr, arr.jsArray.length, json); + } + return arr.jsArray; +} + +function layout_11(graphObj, layoutOptionsObj, optionsObj){ + var _function, elkGraph, graph, importer, lc, logs, options, pm, recordExecutionTime, recordLogs, root; + graph = new JSONObject_0(graphObj); + importer = new JsonImporter; + elkGraph = ($clear_2(importer.nodeIdMap) , $clear_2(importer.portIdMap) , $reset(importer.edgeIdMap) , $clear_2(importer.edgeSectionIdMap) , $clear_2(importer.nodeJsonMap) , $reset(importer.portJsonMap) , $reset(importer.edgeJsonMap) , $reset(importer.edgeSectionJsonMap) , root = $transformNode_0(importer, graph, null) , $transformEdges_2(importer, graph) , root); + if (layoutOptionsObj) { + options = new JSONObject_0(layoutOptionsObj); + lc = optsToCfg(options); + applyVisitors(elkGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [lc])); + } + recordLogs = false; + recordExecutionTime = false; + if (optionsObj) { + options = new JSONObject_0(optionsObj); + 'logging' in options.jsObject && (recordLogs = $get_9(options, 'logging').isBoolean().value_0); + 'measureExecutionTime' in options.jsObject && (recordExecutionTime = $get_9(options, 'measureExecutionTime').isBoolean().value_0); + } + pm = $withExecutionTimeMeasurement($withLogging(new BasicProgressMonitor, recordLogs), recordExecutionTime); + $layout_3(new RecursiveGraphLayoutEngine, elkGraph, pm); + 'logging' in graph.jsObject && $put_5(graph, 'logging', null); + if (recordLogs || recordExecutionTime) { + logs = new JSONObject; + collectLogs(pm, logs, recordLogs, recordExecutionTime); + $put_5(graph, 'logging', logs); + } + _function = new JsonImporter$lambda$35$Type(importer); + forEach_43(new ElkGraphUtil$PropertiesSkippingTreeIterator(elkGraph), _function); +} + +function optsToCfg(opts){ + var jsonVal, key, key$iterator, keys_0, lc, option, serialized, value_0; + lc = new LayoutConfigurator; + $addFilter(lc, ($clinit_LayoutConfigurator() , NO_OVERWRITE)); + for (key$iterator = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new AbstractList$IteratorImpl(new Arrays$ArrayList((new JSONObject$1(opts, keys_0)).val$keys2))); key$iterator.i < key$iterator.this$01_0.size_1();) { + key = (checkCriticalElement(key$iterator.i < key$iterator.this$01_0.size_1()) , castToString(key$iterator.this$01_0.get_0(key$iterator.last = key$iterator.i++))); + option = $getOptionDataBySuffix(SERVICE, key); + if (option) { + jsonVal = $get_9(opts, key); + jsonVal.isString()?(serialized = jsonVal.isString().value_0):jsonVal.isBoolean()?(serialized = '' + jsonVal.isBoolean().value_0):jsonVal.isNumber()?(serialized = '' + jsonVal.isNumber().value_0):(serialized = jsonVal.toString_0()); + value_0 = $parseValue(option, serialized); + if (value_0 != null) { + ($containsEnum(option.targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(option.targets, PARENTS)) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkNode_2_classLit), option, value_0); + $containsEnum(option.targets, EDGES) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), option, value_0); + $containsEnum(option.targets, PORTS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkPort_2_classLit), option, value_0); + $containsEnum(option.targets, LABELS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), option, value_0); + } + } + } + return lc; +} + +function registerLayoutAlgorithms(arrayObj){ + var alg, arr, i; + $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); + arr = new JSONArray_0(arrayObj); + for (i = 0; i < arr.jsArray.length; ++i) { + alg = $get_8(arr, i).isString().value_0; + $equals_5(alg, 'layered')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new LayeredMetaDataProvider])):$equals_5(alg, 'force')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new ForceMetaDataProvider])):$equals_5(alg, 'stress')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new StressMetaDataProvider])):$equals_5(alg, 'mrtree')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new MrTreeMetaDataProvider])):$equals_5(alg, 'radial')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RadialMetaDataProvider])):$equals_5(alg, 'disco')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new PolyominoOptions, new DisCoMetaDataProvider])):$equals_5(alg, 'sporeOverlap') || $equals_5(alg, 'sporeCompaction')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new SporeMetaDataProvider])):$equals_5(alg, 'rectpacking') && $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RectPackingMetaDataProvider])); + } +} + +var SERVICE; +var Lorg_eclipse_emf_common_util_ResourceLocator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'ResourceLocator'); +function $getString(key){ + return $equals_5('_UI_EMFDiagnostic_marker', key)?'EMF Problem':$equals_5('_UI_CircularContainment_diagnostic', key)?'An object may not circularly contain itself':$equals_5('parser.parse.1', key)?'Wrong character.':$equals_5('parser.parse.2', key)?'Invalid reference number.':$equals_5('parser.next.1', key)?'A character is required after \\.':$equals_5('parser.next.2', key)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":$equals_5('parser.next.3', key)?"'(?<' or '(?= size_0 || targetIndex < 0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); + if (sourceIndex >= size_0 || sourceIndex < 0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); + targetIndex != sourceIndex?(object = (result = this$static.delegateRemove(sourceIndex) , this$static.delegateAdd(targetIndex, result) , result)):(object = this$static.delegateGet(sourceIndex)); + return object; +} + +function $remove_34(this$static, index_0){ + var oldObject; + ++this$static.modCount; + oldObject = this$static.delegateRemove(index_0); + return oldObject; +} + +defineClass(1995, 67, $intern_141); +_.addAllUnique = function addAllUnique_1(index_0, collection){ + return $addAllUnique_1(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_2(collection){ + var i, object, object$iterator; + ++this.modCount; + if (collection.isEmpty()) { + return false; + } + else { + i = this.delegateSize(); + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + this.delegateAdd_0(this.validate(i, object)); + ++i; + } + return true; + } +} +; +_.addUnique = function addUnique_1(index_0, object){ + $addUnique_1(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_2(object){ + $addUnique_2(this, object); +} +; +_.basicList = function basicList(){ + return this.delegateBasicList(); +} +; +_.clear_0 = function clear_53(){ + $doClear(this, this.delegateSize(), this.delegateToArray()); +} +; +_.contains = function contains_53(object){ + return this.delegateContains(object); +} +; +_.containsAll = function containsAll_11(collection){ + return this.delegateContainsAll(collection); +} +; +_.delegateAdd = function delegateAdd(index_0, object){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateAdd_0 = function delegateAdd_0(object){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateBasicList = function delegateBasicList(){ + return this.delegateList_1(); +} +; +_.delegateClear = function delegateClear(){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateContains = function delegateContains(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateContainsAll = function delegateContainsAll(collection){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateEquals = function delegateEquals(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateGet = function delegateGet(index_0){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateHashCode = function delegateHashCode(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateIndexOf = function delegateIndexOf(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateIsEmpty = function delegateIsEmpty(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateRemove = function delegateRemove(index_0){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateSet = function delegateSet(index_0, object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateSize = function delegateSize(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToArray = function delegateToArray(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToArray_0 = function delegateToArray_0(array){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToString = function delegateToString(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.equals_0 = function equals_187(object){ + return this.delegateEquals(object); +} +; +_.get_0 = function get_51(index_0){ + return this.resolve(index_0, this.delegateGet(index_0)); +} +; +_.hashCode_1 = function hashCode_75(){ + return this.delegateHashCode(); +} +; +_.indexOf_0 = function indexOf_9(object){ + return this.delegateIndexOf(object); +} +; +_.isEmpty = function isEmpty_27(){ + return this.delegateIsEmpty(); +} +; +_.move = function move_2(targetIndex, sourceIndex){ + return $move_0(this, targetIndex, sourceIndex); +} +; +_.primitiveGet = function primitiveGet_0(index_0){ + return this.delegateGet(index_0); +} +; +_.remove_2 = function remove_101(index_0){ + return $remove_34(this, index_0); +} +; +_.remove_1 = function remove_102(object){ + var index_0; + index_0 = this.indexOf_0(object); + if (index_0 >= 0) { + this.remove_2(index_0); + return true; + } + else { + return false; + } +} +; +_.setUnique = function setUnique_0(index_0, object){ + return this.delegateSet(index_0, this.validate(index_0, object)); +} +; +_.size_1 = function size_66(){ + return this.delegateSize(); +} +; +_.toArray = function toArray_28(){ + return this.delegateToArray(); +} +; +_.toArray_0 = function toArray_29(array){ + return this.delegateToArray_0(array); +} +; +_.toString_0 = function toString_136(){ + return this.delegateToString(); +} +; +var Lorg_eclipse_emf_common_util_DelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'DelegatingEList', 1995); +function $addAllUnique_2(this$static, index_0, collection){ + var collectionSize, i, lastIndex, notification, notifications, oldIsSet, value_0; + collectionSize = collection.size_1(); + if (collectionSize == 0) { + return false; + } + else { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addAllUnique_1(this$static, index_0, collection); + notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + value_0 = this$static.delegateGet(i); + notifications = this$static.inverseAdd(value_0, notifications); + notifications = notifications; + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addAllUnique_1(this$static, index_0, collection); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + notifications = this$static.inverseAdd(this$static.delegateGet(i), notifications); + } + !!notifications && notifications.dispatch_0(); + } + } + return true; + } +} + +function $addUnique_3(this$static, index_0, object){ + var notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $addUnique_4(this$static, object){ + var index_0, notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique_2(this$static, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $basicAdd(this$static, object, notifications){ + var index_0, notification, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $addUnique_1(this$static, this$static.delegateSize(), object); + } + return notifications; +} + +function $basicRemove(this$static, object, notifications){ + var index_0, notification, oldIsSet, oldObject; + index_0 = this$static.indexOf_0(object); + if (index_0 != -1) { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + oldObject = $remove_34(this$static, index_0); + notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $remove_34(this$static, index_0); + } + } + return notifications; +} + +function $clear_12(this$static){ + var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize, size_0; + if (this$static.isNotificationRequired()) { + size_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + if (size_0 > 0) { + collection = new BasicEList_1(this$static.basicList()); + collectionSize = size_0; + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + $doClear(this$static, collectionSize, collection.data_0); + notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); + if (this$static.hasInverse()) { + for (i = new AbstractEList$EIterator(collection); i.cursor != i.this$01_2.size_1();) { + notifications = this$static.inverseRemove($doNext(i), notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); + } + } + else if (this$static.hasInverse()) { + size_0 = this$static.delegateSize(); + if (size_0 > 0) { + oldData = this$static.delegateToArray(); + oldSize = size_0; + $doClear(this$static, size_0, oldData); + notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); + for (i = 0; i < oldSize; ++i) { + object = oldData[i]; + notifications = this$static.inverseRemove(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + } + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + } +} + +function $setUnique_0(this$static, index_0, object){ + var notification, notifications, oldIsSet, oldObject, oldObject0; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + notification = this$static.createNotification(1, oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject), object, index_0, oldIsSet); + if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { + !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, notifications)); + notifications = this$static.inverseAdd(object, notifications); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject0; + } + else { + oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject); + if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { + notifications = null; + !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, null)); + notifications = this$static.inverseAdd(object, notifications); + !!notifications && notifications.dispatch_0(); + } + return oldObject0; + } +} + +defineClass(1996, 1995, $intern_141); +_.addAllUnique = function addAllUnique_3(index_0, collection){ + return $addAllUnique_2(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_4(collection){ + return this.addAllUnique(this.delegateSize(), collection); +} +; +_.addUnique = function addUnique_3(index_0, object){ + $addUnique_3(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_4(object){ + $addUnique_4(this, object); +} +; +_.canContainNull = function canContainNull_0(){ + return !this.hasInverse(); +} +; +_.clear_0 = function clear_54(){ + $clear_12(this); +} +; +_.createNotification = function createNotification(eventType, oldObject, newObject, index_0, wasSet){ + return new DelegatingNotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification(notification){ + $eNotify(this.getNotifier(), notification); +} +; +_.getFeature = function getFeature(){ + return null; +} +; +_.getFeatureID_0 = function getFeatureID(){ + return -1; +} +; +_.getNotifier = function getNotifier(){ + return null; +} +; +_.hasInverse = function hasInverse(){ + return false; +} +; +_.inverseAdd = function inverseAdd(object, notifications){ + return notifications; +} +; +_.inverseRemove = function inverseRemove(object, notifications){ + return notifications; +} +; +_.isNotificationRequired = function isNotificationRequired(){ + return false; +} +; +_.isSet_0 = function isSet(){ + return !this.delegateIsEmpty(); +} +; +_.move = function move_3(targetIndex, sourceIndex){ + var object, oldIsSet; + if (this.isNotificationRequired()) { + oldIsSet = this.isSet_0(); + object = $move_0(this, targetIndex, sourceIndex); + this.dispatchNotification(this.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move_0(this, targetIndex, sourceIndex); + } +} +; +_.remove_2 = function remove_103(index_0){ + var notification, notifications, oldIsSet, oldObject; + if (this.isNotificationRequired()) { + notifications = null; + oldIsSet = this.isSet_0(); + notification = this.createNotification(4, oldObject = $remove_34(this, index_0), null, index_0, oldIsSet); + if (this.hasInverse() && !!oldObject) { + notifications = this.inverseRemove(oldObject, notifications); + if (!notifications) { + this.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $remove_34(this, index_0); + if (this.hasInverse() && !!oldObject) { + notifications = this.inverseRemove(oldObject, null); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} +; +_.setUnique = function setUnique_1(index_0, object){ + return $setUnique_0(this, index_0, object); +} +; +var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl', 1996); +function $add_22(this$static, newNotification){ + if (!newNotification) { + return false; + } + else { + if (this$static.merge_0(newNotification)) { + return false; + } + if (!this$static.next_0) { + if (instanceOf(newNotification, 143)) { + this$static.next_0 = castTo(newNotification, 143); + return true; + } + else { + this$static.next_0 = new NotificationChainImpl; + return this$static.next_0.add_5(newNotification); + } + } + else { + return this$static.next_0.add_5(newNotification); + } + } +} + +function $dispatch(this$static){ + var notifier; + notifier = this$static.getNotifier(); + notifier != null && this$static.eventType != -1 && castTo(notifier, 92).eNotify(this$static); + !!this$static.next_0 && this$static.next_0.dispatch_0(); +} + +function $getNewBooleanValue(this$static){ + if (this$static.primitiveType != 0) + throw toJs(new IllegalStateException); + return neq(this$static.newSimplePrimitiveValue, 0); +} + +function $getNewByteValue(this$static){ + if (this$static.primitiveType != 1) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) << 24 >> 24; +} + +function $getNewCharValue(this$static){ + if (this$static.primitiveType != 2) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) & $intern_46; +} + +function $getNewDoubleValue(this$static){ + if (this$static.primitiveType != 3) + throw toJs(new IllegalStateException); + return this$static.newIEEEPrimitiveValue; +} + +function $getNewFloatValue(this$static){ + if (this$static.primitiveType != 4) + throw toJs(new IllegalStateException); + return this$static.newIEEEPrimitiveValue; +} + +function $getNewIntValue(this$static){ + if (this$static.primitiveType != 5) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue); +} + +function $getNewLongValue(this$static){ + if (this$static.primitiveType != 6) + throw toJs(new IllegalStateException); + return this$static.newSimplePrimitiveValue; +} + +function $getNewShortValue(this$static){ + if (this$static.primitiveType != 7) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) << 16 >> 16; +} + +function $getNewValue(this$static){ + if (this$static.newValue == null) { + switch (this$static.primitiveType) { + case 0: + this$static.newValue = $getNewBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); + break; + case 1: + this$static.newValue = valueOf_2($getNewByteValue(this$static)); + break; + case 2: + this$static.newValue = valueOf_3($getNewCharValue(this$static)); + break; + case 3: + this$static.newValue = $getNewDoubleValue(this$static); + break; + case 4: + this$static.newValue = new Float($getNewFloatValue(this$static)); + break; + case 6: + this$static.newValue = valueOf_5($getNewLongValue(this$static)); + break; + case 5: + this$static.newValue = valueOf_4($getNewIntValue(this$static)); + break; + case 7: + this$static.newValue = valueOf_6($getNewShortValue(this$static)); + } + } + return this$static.newValue; +} + +function $getOldBooleanValue(this$static){ + if (this$static.primitiveType != 0) + throw toJs(new IllegalStateException); + return neq(this$static.oldSimplePrimitiveValue, 0); +} + +function $getOldByteValue(this$static){ + if (this$static.primitiveType != 1) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; +} + +function $getOldCharValue(this$static){ + if (this$static.primitiveType != 2) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46; +} + +function $getOldDoubleValue(this$static){ + if (this$static.primitiveType != 3) + throw toJs(new IllegalStateException); + return this$static.oldIEEEPrimitiveValue; +} + +function $getOldFloatValue(this$static){ + if (this$static.primitiveType != 4) + throw toJs(new IllegalStateException); + return this$static.oldIEEEPrimitiveValue; +} + +function $getOldIntValue(this$static){ + if (this$static.primitiveType != 5) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue); +} + +function $getOldLongValue(this$static){ + if (this$static.primitiveType != 6) + throw toJs(new IllegalStateException); + return this$static.oldSimplePrimitiveValue; +} + +function $getOldShortValue(this$static){ + if (this$static.primitiveType != 7) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; +} + +function $getOldValue(this$static){ + if (this$static.oldValue == null) { + switch (this$static.primitiveType) { + case 0: + this$static.oldValue = $getOldBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); + break; + case 1: + this$static.oldValue = valueOf_2($getOldByteValue(this$static)); + break; + case 2: + this$static.oldValue = valueOf_3($getOldCharValue(this$static)); + break; + case 3: + this$static.oldValue = $getOldDoubleValue(this$static); + break; + case 4: + this$static.oldValue = new Float($getOldFloatValue(this$static)); + break; + case 6: + this$static.oldValue = valueOf_5($getOldLongValue(this$static)); + break; + case 5: + this$static.oldValue = valueOf_4($getOldIntValue(this$static)); + break; + case 7: + this$static.oldValue = valueOf_6($getOldShortValue(this$static)); + } + } + return this$static.oldValue; +} + +function $isTouch(this$static){ + switch (this$static.eventType) { + case 9: + case 8: + { + return true; + } + + case 3: + case 5: + case 4: + case 6: + { + return false; + } + + case 7: + { + return castTo($getOldValue(this$static), 19).value_0 == this$static.position; + } + + case 1: + case 2: + { + if (this$static.position == -2) { + return false; + } + else { + switch (this$static.primitiveType) { + case 0: + case 1: + case 2: + case 6: + case 5: + case 7: + { + return eq(this$static.oldSimplePrimitiveValue, this$static.newSimplePrimitiveValue); + } + + case 3: + case 4: + { + return this$static.oldIEEEPrimitiveValue == this$static.newIEEEPrimitiveValue; + } + + default:{ + return this$static.oldValue == null?this$static.newValue == null:equals_Ljava_lang_Object__Z__devirtual$(this$static.oldValue, this$static.newValue); + } + + } + } + } + + default:{ + return false; + } + + } +} + +function $wasSet(this$static){ + var defaultValue; + switch (this$static.eventType) { + case 1: + { + if (this$static.isFeatureUnsettable()) { + return this$static.position != -2; + } + break; + } + + case 2: + { + if (this$static.isFeatureUnsettable()) { + return this$static.position == -2; + } + break; + } + + case 3: + case 5: + case 4: + case 6: + case 7: + { + return this$static.position > -2; + } + + default:{ + return false; + } + + } + defaultValue = this$static.getFeatureDefaultValue(); + switch (this$static.primitiveType) { + case 0: + return defaultValue != null && $booleanValue(castToBoolean(defaultValue)) != neq(this$static.oldSimplePrimitiveValue, 0); + case 1: + return defaultValue != null && castTo(defaultValue, 217).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; + case 2: + return defaultValue != null && castTo(defaultValue, 172).value_0 != (toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46); + case 6: + return defaultValue != null && neq(castTo(defaultValue, 162).value_0, this$static.oldSimplePrimitiveValue); + case 5: + return defaultValue != null && castTo(defaultValue, 19).value_0 != toInt_0(this$static.oldSimplePrimitiveValue); + case 7: + return defaultValue != null && castTo(defaultValue, 184).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; + case 3: + return defaultValue != null && $doubleValue(castToDouble(defaultValue)) != this$static.oldIEEEPrimitiveValue; + case 4: + return defaultValue != null && castTo(defaultValue, 155).value_0 != this$static.oldIEEEPrimitiveValue; + default:return defaultValue == null?this$static.oldValue != null:!equals_Ljava_lang_Object__Z__devirtual$(defaultValue, this$static.oldValue); + } +} + +function NotificationImpl(eventType, oldDoubleValue, newDoubleValue){ + this.eventType = eventType; + this.oldIEEEPrimitiveValue = oldDoubleValue; + this.newIEEEPrimitiveValue = newDoubleValue; + this.position = -1; + this.primitiveType = 3; +} + +function NotificationImpl_0(eventType, oldIntValue, newIntValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldIntValue; + this.newSimplePrimitiveValue = newIntValue; + this.position = -1; + this.primitiveType = 5; +} + +function NotificationImpl_1(eventType, oldValue, newValue, position){ + this.eventType = eventType; + this.oldValue = oldValue; + this.newValue = newValue; + this.position = position; + this.primitiveType = -1; +} + +function NotificationImpl_2(eventType, oldValue, newValue, position, wasSet){ + this.eventType = eventType; + this.oldValue = oldValue; + this.newValue = newValue; + this.position = position; + this.primitiveType = -1; + wasSet || (this.position = -2 - position - 1); +} + +function NotificationImpl_3(eventType, oldBooleanValue, newBooleanValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldBooleanValue?1:0; + this.newSimplePrimitiveValue = newBooleanValue?1:0; + this.position = -1; + this.primitiveType = 0; +} + +defineClass(143, 1, $intern_142); +_.add_5 = function add_48(newNotification){ + return $add_22(this, newNotification); +} +; +_.dispatch_0 = function dispatch(){ + $dispatch(this); +} +; +_.getEventType = function getEventType(){ + return this.eventType; +} +; +_.getFeature = function getFeature_0(){ + return null; +} +; +_.getFeatureDefaultValue = function getFeatureDefaultValue(){ + return null; +} +; +_.getFeatureID = function getFeatureID_0(expectedClass){ + return -1; +} +; +_.getNewValue = function getNewValue(){ + return $getNewValue(this); +} +; +_.getNotifier = function getNotifier_0(){ + return null; +} +; +_.getOldValue = function getOldValue(){ + return $getOldValue(this); +} +; +_.getPosition_0 = function getPosition_2(){ + return this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; +} +; +_.isFeatureUnsettable = function isFeatureUnsettable(){ + return false; +} +; +_.merge_0 = function merge_3(notification){ + var index_0, list, newPositions, notificationEventType, notificationNotifier, notificationPosition, oldPosition, originalPosition, originalWasSet, positions, removedValues; + switch (this.eventType) { + case 1: + case 2: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 1: + case 2: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + this.newValue = notification.getNewValue(); + notification.getEventType() == 1 && (this.eventType = 1); + return true; + } + } + + } + } + + case 4: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + originalWasSet = $wasSet(this); + originalPosition = this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; + notificationPosition = notification.getPosition_0(); + this.eventType = 6; + removedValues = new BasicEList_0(2); + if (originalPosition <= notificationPosition) { + $add_21(removedValues, this.oldValue); + $add_21(removedValues, notification.getOldValue()); + this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = originalPosition, notificationPosition + 1]); + } + else { + $add_21(removedValues, notification.getOldValue()); + $add_21(removedValues, this.oldValue); + this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = notificationPosition, originalPosition]); + } + this.oldValue = removedValues; + originalWasSet || (this.position = -2 - this.position - 1); + return true; + } + break; + } + + } + break; + } + + case 6: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + originalWasSet = $wasSet(this); + notificationPosition = notification.getPosition_0(); + positions = castTo(this.newValue, 48); + newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); + index_0 = 0; + while (index_0 < positions.length) { + oldPosition = positions[index_0]; + if (oldPosition <= notificationPosition) { + newPositions[index_0++] = oldPosition; + ++notificationPosition; + } + else { + break; + } + } + list = castTo(this.oldValue, 15); + list.add_3(index_0, notification.getOldValue()); + newPositions[index_0] = notificationPosition; + while (++index_0 < newPositions.length) { + newPositions[index_0] = positions[index_0 - 1]; + } + this.newValue = newPositions; + originalWasSet || (this.position = -2 - newPositions[0]); + return true; + } + break; + } + + } + break; + } + + } + return false; +} +; +_.toString_0 = function toString_137(){ + var i, number, positions, result; + result = new StringBuffer_1($getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16))); + result.string += ' (eventType: '; + switch (this.eventType) { + case 1: + { + result.string += 'SET'; + break; + } + + case 2: + { + result.string += 'UNSET'; + break; + } + + case 3: + { + result.string += 'ADD'; + break; + } + + case 5: + { + result.string += 'ADD_MANY'; + break; + } + + case 4: + { + result.string += 'REMOVE'; + break; + } + + case 6: + { + result.string += 'REMOVE_MANY'; + break; + } + + case 7: + { + result.string += 'MOVE'; + break; + } + + case 8: + { + result.string += 'REMOVING_ADAPTER'; + break; + } + + case 9: + { + result.string += 'RESOLVE'; + break; + } + + default:{ + $append_1(result, this.eventType); + break; + } + + } + $isTouch(this) && (result.string += ', touch: true' , result); + result.string += ', position: '; + $append_1(result, this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position); + result.string += ', notifier: '; + $append_2(result, this.getNotifier()); + result.string += ', feature: '; + $append_2(result, this.getFeature()); + result.string += ', oldValue: '; + $append_2(result, $getOldValue(this)); + result.string += ', newValue: '; + if (this.eventType == 6 && instanceOf(this.newValue, 48)) { + positions = castTo(this.newValue, 48); + result.string += '['; + for (i = 0; i < positions.length;) { + result.string += positions[i]; + ++i < positions.length && (result.string += ', ' , result); + } + result.string += ']'; + } + else { + $append_2(result, $getNewValue(this)); + } + result.string += ', isTouch: '; + $append_4(result, $isTouch(this)); + result.string += ', wasSet: '; + $append_4(result, $wasSet(this)); + result.string += ')'; + return result.string; +} +; +_.eventType = 0; +_.newIEEEPrimitiveValue = 0; +_.newSimplePrimitiveValue = 0; +_.oldIEEEPrimitiveValue = 0; +_.oldSimplePrimitiveValue = 0; +_.position = 0; +_.primitiveType = 0; +var Lorg_eclipse_emf_common_notify_impl_NotificationImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationImpl', 143); +function DelegatingNotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ + this.this$01 = this$0; + NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); +} + +defineClass(1167, 143, $intern_142, DelegatingNotifyingListImpl$1); +_.getFeature = function getFeature_1(){ + return this.this$01.getFeature(); +} +; +_.getFeatureID = function getFeatureID_1(expectedClass){ + return this.this$01.getFeatureID_0(); +} +; +_.getNotifier = function getNotifier_1(){ + return this.this$01.getNotifier(); +} +; +var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl/1', 1167); +function $add_23(this$static, newNotification){ + var i, notification; + if (!newNotification) { + return false; + } + else { + for (i = 0; i < this$static.size_0; ++i) { + notification = castTo(this$static.data_0[i], 366); + if (notification.merge_0(newNotification)) { + return false; + } + } + return $add_21(this$static, newNotification); + } +} + +function NotificationChainImpl(){ +} + +function NotificationChainImpl_0(initialCapacity){ + BasicEList_0.call(this, initialCapacity); +} + +defineClass(242, 63, $intern_138, NotificationChainImpl, NotificationChainImpl_0); +_.add_2 = function add_49(newNotification){ + return $add_23(this, castTo(newNotification, 366)); +} +; +_.add_5 = function add_50(newNotification){ + return $add_23(this, newNotification); +} +; +_.dispatch_0 = function dispatch_0(){ + var i, notification, notifier; + for (i = 0; i < this.size_0; ++i) { + notification = castTo(this.data_0[i], 366); + notifier = notification.getNotifier(); + notifier != null && notification.getEventType() != -1 && castTo(notifier, 92).eNotify(notification); + } +} +; +_.newData = function newData_1(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Notification_2_classLit, $intern_2, 366, capacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotificationChainImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationChainImpl', 242); +defineClass(1378, 90, $intern_133); +_.eBasicAdapters = function eBasicAdapters_1(){ + return this.eAdapters; +} +; +_.eDeliver = function eDeliver_1(){ + return (this.eFlags & 1) != 0; +} +; +_.eFlags = 1; +var Lorg_eclipse_emf_common_notify_impl_NotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifierImpl', 1378); +function $addAllUnique_3(this$static, index_0, collection){ + var collectionSize, i, lastIndex, notification, notifications, object, oldIsSet, value_0; + collectionSize = collection.size_1(); + if (collectionSize == 0) { + return false; + } + else { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addAllUnique(this$static, index_0, collection); + notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + value_0 = this$static.data_0[i]; + notifications = this$static.inverseAdd(value_0, notifications); + notifications = this$static.shadowAdd(value_0, notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addAllUnique(this$static, index_0, collection); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + object = this$static.data_0[i]; + notifications = this$static.inverseAdd(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + } + return true; + } +} + +function $addUnique_5(this$static, index_0, object){ + var notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addUnique(this$static, index_0, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique(this$static, index_0, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $addUnique_6(this$static, object){ + var index_0, notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.size_0; + oldIsSet = this$static.isSet_0(); + $addUnique_0(this$static, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique_0(this$static, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $basicAdd_0(this$static, object, notifications){ + var index_0, notification, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.size_0; + oldIsSet = this$static.isSet_0(); + $addUnique(this$static, index_0, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $addUnique(this$static, this$static.size_0, object); + } + return notifications; +} + +function $basicRemove_0(this$static, object, notifications){ + var index_0, notification, oldIsSet, oldObject; + index_0 = this$static.indexOf_0(object); + if (index_0 != -1) { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + oldObject = $remove_33(this$static, index_0); + notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $remove_33(this$static, index_0); + } + } + return notifications; +} + +function $clear_13(this$static){ + var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + if (this$static.size_0 > 0) { + collection = new BasicEList$UnmodifiableEList(this$static.size_0, this$static.data_0); + collectionSize = this$static.size_0; + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + if (this$static.hasShadow()) { + for (i = 0; i < this$static.size_0; ++i) { + object = this$static.data_0[i]; + notifications = this$static.shadowRemove(object, notifications); + } + } + $clear_11(this$static); + notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); + if (this$static.hasInverse()) { + for (i = new AbstractEList$NonResolvingEIterator(collection); i.cursor != i.this$01_2.size_1();) { + notifications = this$static.inverseRemove($doNext_0(i), notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + } + else { + $clear_11(this$static); + this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); + } + } + else if (this$static.hasInverse()) { + if (this$static.size_0 > 0) { + oldData = this$static.data_0; + oldSize = this$static.size_0; + $clear_11(this$static); + notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); + for (i = 0; i < oldSize; ++i) { + object = oldData[i]; + notifications = this$static.inverseRemove(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + else { + $clear_11(this$static); + } + } + else { + $clear_11(this$static); + } +} + +function $createNotificationChain(capacity){ + return capacity < 100?null:new NotificationChainImpl_0(capacity); +} + +function $move_1(this$static, targetIndex, sourceIndex){ + var object, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + object = $move(this$static, targetIndex, sourceIndex); + this$static.dispatchNotification(this$static.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move(this$static, targetIndex, sourceIndex); + } +} + +function $remove_35(this$static, index_0){ + var notification, notifications, oldIsSet, oldObject; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + this$static.hasShadow() && (notifications = this$static.shadowRemove(this$static.basicGet(index_0), null)); + notification = this$static.createNotification(4, oldObject = $remove_33(this$static, index_0), null, index_0, oldIsSet); + if (this$static.hasInverse() && oldObject != null) { + notifications = this$static.inverseRemove(oldObject, notifications); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $remove_33(this$static, index_0); + if (this$static.hasInverse() && oldObject != null) { + notifications = this$static.inverseRemove(oldObject, null); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} + +function $removeAll_4(this$static, collection){ + var collectionSize, count, i, i0, i1, initialObject, j, list, listSize, notification, notifications, object, objects, oldIsSet, oldPositions, positions, repeat, result, resultList; + oldIsSet = this$static.size_0 != 0; + result = false; + positions = null; + if ($eNotificationRequired(this$static.owner)) { + listSize = collection.size_1(); + if (listSize > 0) { + notifications = listSize < 100?null:new NotificationChainImpl_0(listSize); + list = new BasicEList_1(collection); + objects = list.data_0; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, listSize, 15, 1); + count = 0; + resultList = new BasicEList_0(listSize); + for (i = 0; i < this$static.size_0; ++i) { + initialObject = this$static.data_0[i]; + object = initialObject; + LOOP: for (repeat = 0; repeat < 2; ++repeat) { + for (j = listSize; --j >= 0;) { + if (object != null?equals_Ljava_lang_Object__Z__devirtual$(object, objects[j]):maskUndefined(object) === maskUndefined(objects[j])) { + if (positions.length <= count) { + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, 2 * positions.length, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + positions[count++] = i; + $add_21(resultList, objects[j]); + break LOOP; + } + } + object = object; + if (maskUndefined(object) === maskUndefined(initialObject)) { + break; + } + } + } + list = resultList; + objects = resultList.data_0; + listSize = count; + if (count > positions.length) { + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + if (count > 0) { + result = true; + for (i0 = 0; i0 < count; ++i0) { + object = objects[i0]; + notifications = $shadowRemove_2(this$static, castTo(object, 72), notifications); + } + for (i1 = count; --i1 >= 0;) { + $remove_33(this$static, positions[i1]); + } + if (count != listSize) { + for (i = listSize; --i >= count;) { + $remove_33(list, i); + } + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + collection = list; + } + } + } + else { + collection = $getDuplicates(this$static, collection); + for (i = this$static.size_0; --i >= 0;) { + if (collection.contains(this$static.data_0[i])) { + $remove_33(this$static, i); + result = true; + } + } + } + if (result) { + if (positions != null) { + collectionSize = collection.size_1(); + notification = collectionSize == 1?$createNotification(this$static, 4, collection.iterator_0().next_1(), null, positions[0], oldIsSet):$createNotification(this$static, 6, collection, positions, positions[0], oldIsSet); + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + for (i = collection.iterator_0(); i.hasNext_0();) { + object = i.next_1(); + notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); + } + if (!notifications) { + $eNotify(this$static.owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + notifications = $createNotificationChain(collection.size_1()); + for (i = collection.iterator_0(); i.hasNext_0();) { + object = i.next_1(); + notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); + } + !!notifications && notifications.dispatch_0(); + } + return true; + } + else { + return false; + } +} + +function $setUnique_1(this$static, index_0, object){ + var notification, notifications, oldIsSet, oldObject; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + notification = this$static.createNotification(1, oldObject = $setUnique(this$static, index_0, object), object, index_0, oldIsSet); + if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { + oldObject != null && (notifications = this$static.inverseRemove(oldObject, notifications)); + notifications = this$static.inverseAdd(object, notifications); + this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $setUnique(this$static, index_0, object); + if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { + notifications = null; + oldObject != null && (notifications = this$static.inverseRemove(oldObject, null)); + notifications = this$static.inverseAdd(object, notifications); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} + +defineClass(1993, 63, $intern_138); +_.addAllUnique = function addAllUnique_5(index_0, collection){ + return $addAllUnique_3(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_6(collection){ + return this.addAllUnique(this.size_0, collection); +} +; +_.addUnique = function addUnique_5(index_0, object){ + $addUnique_5(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_6(object){ + $addUnique_6(this, object); +} +; +_.canContainNull = function canContainNull_1(){ + return !this.hasInverse(); +} +; +_.clear_0 = function clear_55(){ + $clear_13(this); +} +; +_.createNotification = function createNotification_0(eventType, oldObject, newObject, index_0, wasSet){ + return new NotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_0(notification){ + $eNotify(this.getNotifier(), notification); +} +; +_.getFeature = function getFeature_2(){ + return null; +} +; +_.getFeatureID_0 = function getFeatureID_2(){ + return -1; +} +; +_.getNotifier = function getNotifier_2(){ + return null; +} +; +_.hasInverse = function hasInverse_0(){ + return false; +} +; +_.hasShadow = function hasShadow(){ + return false; +} +; +_.inverseAdd = function inverseAdd_0(object, notifications){ + return notifications; +} +; +_.inverseRemove = function inverseRemove_0(object, notifications){ + return notifications; +} +; +_.isNotificationRequired = function isNotificationRequired_0(){ + return false; +} +; +_.isSet_0 = function isSet_0(){ + return this.size_0 != 0; +} +; +_.move = function move_4(targetIndex, sourceIndex){ + return $move_1(this, targetIndex, sourceIndex); +} +; +_.remove_2 = function remove_104(index_0){ + return $remove_35(this, index_0); +} +; +_.setUnique = function setUnique_2(index_0, object){ + return $setUnique_1(this, index_0, object); +} +; +_.shadowAdd = function shadowAdd(object, notifications){ + return notifications; +} +; +_.shadowRemove = function shadowRemove(object, notifications){ + return notifications; +} +; +_.shadowSet = function shadowSet(oldObject, newObject, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl', 1993); +function NotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ + this.this$01 = this$0; + NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); +} + +defineClass(1166, 143, $intern_142, NotifyingListImpl$1); +_.getFeature = function getFeature_3(){ + return this.this$01.getFeature(); +} +; +_.getFeatureID = function getFeatureID_3(expectedClass){ + return this.this$01.getFeatureID_0(); +} +; +_.getNotifier = function getNotifier_3(){ + return this.this$01.getNotifier(); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl/1', 1166); +function AbstractEList$1(this$0, $anonymous0){ + this.this$01 = this$0; + BasicEList_0.call(this, $anonymous0); +} + +defineClass(953, 63, $intern_138, AbstractEList$1); +_.contains = function contains_54(object){ + if (this.size_0 > 10) { + if (!this.set_0 || this.this$01.modCount != this.expectedModCount) { + this.set_0 = new HashSet_1(this); + this.expectedModCount = this.modCount; + } + return $contains_6(this.set_0, object); + } + else { + return $contains_10(this, object); + } +} +; +_.useEquals = function useEquals_0(){ + return true; +} +; +_.expectedModCount = 0; +var Lorg_eclipse_emf_common_util_AbstractEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/1', 953); +function AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0){ + IndexOutOfBoundsException_0.call(this, 'index=' + index_0 + ', size=' + size_0); +} + +defineClass(295, 73, $intern_57, AbstractEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_AbstractEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/BasicIndexOutOfBoundsException', 295); +function $doNext(this$static){ + var next; + try { + next = this$static.this$01_2.get_0(this$static.cursor); + this$static.checkModCount(); + this$static.lastCursor = this$static.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this$static.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} + +function $remove_36(this$static){ + if (this$static.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + this$static.checkModCount(); + try { + this$static.this$01_2.remove_2(this$static.lastCursor); + this$static.expectedModCount = this$static.this$01_2.modCount; + this$static.lastCursor < this$static.cursor && --this$static.cursor; + this$static.lastCursor = -1; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$EIterator(this$0){ + this.this$01_2 = this$0; + this.expectedModCount = this.this$01_2.modCount; +} + +defineClass(40, 1, $intern_6, AbstractEList$EIterator); +_.forEachRemaining = function forEachRemaining_54(consumer){ + $forEachRemaining(this, consumer); +} +; +_.checkModCount = function checkModCount(){ + if (this.this$01_2.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.doNext = function doNext(){ + return $doNext(this); +} +; +_.hasNext_0 = function hasNext_43(){ + return this.cursor != this.this$01_2.size_1(); +} +; +_.next_1 = function next_44(){ + return this.doNext(); +} +; +_.remove = function remove_105(){ + $remove_36(this); +} +; +_.cursor = 0; +_.expectedModCount = 0; +_.lastCursor = -1; +var Lorg_eclipse_emf_common_util_AbstractEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EIterator', 40); +function $doAdd_0(this$static, object){ + this$static.checkModCount(); + try { + this$static.this$01_1.add_3(this$static.cursor++, object); + this$static.expectedModCount = this$static.this$01_1.modCount; + this$static.lastCursor = -1; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function $doSet(this$static, object){ + if (this$static.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + this$static.checkModCount(); + try { + this$static.this$01_1.set_2(this$static.lastCursor, object); + this$static.expectedModCount = this$static.this$01_1.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$EListIterator(this$0){ + this.this$01_1 = this$0; + AbstractEList$EIterator.call(this, this$0); +} + +function AbstractEList$EListIterator_0(this$0, index_0){ + this.this$01_1 = this$0; + AbstractEList$EIterator.call(this, this$0); + this.cursor = index_0; +} + +defineClass(278, 40, $intern_14, AbstractEList$EListIterator, AbstractEList$EListIterator_0); +_.remove = function remove_106(){ + $remove_36(this); +} +; +_.add_1 = function add_51(object){ + $doAdd_0(this, object); +} +; +_.doPrevious = function doPrevious(){ + var previous; + try { + previous = this.this$01_1.get_0(--this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor; + return previous; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.doSet = function doSet(object){ + $doSet(this, object); +} +; +_.hasPrevious = function hasPrevious_7(){ + return this.cursor != 0; +} +; +_.nextIndex_0 = function nextIndex_8(){ + return this.cursor; +} +; +_.previous_0 = function previous_8(){ + return this.doPrevious(); +} +; +_.previousIndex = function previousIndex_7(){ + return this.cursor - 1; +} +; +_.set_1 = function set_22(object){ + this.doSet(object); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EListIterator', 278); +function $doNext_0(this$static){ + var next; + try { + next = this$static.this$01_0.primitiveGet(this$static.cursor); + this$static.checkModCount(); + this$static.lastCursor = this$static.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this$static.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$NonResolvingEIterator(this$0){ + this.this$01_0 = this$0; + AbstractEList$EIterator.call(this, this$0); +} + +defineClass(341, 40, $intern_6, AbstractEList$NonResolvingEIterator); +_.doNext = function doNext_0(){ + return $doNext_0(this); +} +; +_.remove = function remove_107(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEIterator', 341); +function AbstractEList$NonResolvingEListIterator(this$0){ + this.this$01_0 = this$0; + AbstractEList$EListIterator.call(this, this$0); +} + +function AbstractEList$NonResolvingEListIterator_0(this$0, index_0){ + this.this$01_0 = this$0; + AbstractEList$EListIterator_0.call(this, this$0, index_0); +} + +defineClass(385, 278, $intern_14, AbstractEList$NonResolvingEListIterator, AbstractEList$NonResolvingEListIterator_0); +_.add_1 = function add_52(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.doNext = function doNext_1(){ + var next; + try { + next = this.this$01_0.primitiveGet(this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.doPrevious = function doPrevious_0(){ + var previous; + try { + previous = this.this$01_0.primitiveGet(--this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor; + return previous; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.remove = function remove_108(){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_23(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEListIterator', 385); +function newInstance_11(componentType, size_0){ + var helper; + helper = castTo($get_10(($clinit_Reflect() , HELPER_REGISTRY), componentType), 55); + return helper?helper.newArrayInstance(size_0):initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); +} + +function $clinit_ArrayDelegatingEList(){ + $clinit_ArrayDelegatingEList = emptyMethod; + EMPTY_ARRAY = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $assign_0(data_0, index_0, object){ + setCheck(data_0, index_0, object); + return object; +} + +function $copy_0(this$static){ + var data_0, newData; + data_0 = castTo($getField(this$static.this$01, 4), 126); + if (data_0 != null) { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, data_0.length, 0, 1); + arraycopy(data_0, 0, newData, 0, data_0.length); + return newData; + } + else { + return EMPTY_ARRAY; + } +} + +function $grow(this$static, size_0){ + var data_0, oldData; + oldData = castTo($getField(this$static.this$01, 4), 126); + data_0 = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); + oldData != null && arraycopy(oldData, 0, data_0, 0, oldData.length); + return data_0; +} + +function $remove_37(this$static, index_0){ + var data_0, newData, oldObject, shifted, size_0; + data_0 = castTo($getField(this$static.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + oldObject = data_0[index_0]; + if (size_0 == 1) { + newData = null; + } + else { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0 - 1, 0, 1); + arraycopy(data_0, 0, newData, 0, index_0); + shifted = size_0 - index_0 - 1; + shifted > 0 && arraycopy(data_0, index_0 + 1, newData, index_0, shifted); + } + $setData(this$static, newData); + $didRemove_0(this$static, index_0, oldObject); + return oldObject; +} + +defineClass(1982, 67, $intern_144); +_.addAllUnique = function addAllUnique_7(index_0, collection){ + var currentIndex, data_0, growth, i, i0, object, objects, oldData, oldSize, shifted, size_0; + growth = collection.size_1(); + if (growth != 0) { + oldData = castTo($getField(this.this$01, 4), 126); + oldSize = oldData == null?0:oldData.length; + size_0 = oldSize + growth; + data_0 = $grow(this, size_0); + shifted = oldSize - index_0; + shifted > 0 && arraycopy(oldData, index_0, data_0, index_0 + growth, shifted); + objects = collection.iterator_0(); + for (i0 = 0; i0 < growth; ++i0) { + object = objects.next_1(); + currentIndex = index_0 + i0; + $assign_0(data_0, currentIndex, $validate(this, object)); + } + $setData(this, data_0); + for (i = 0; i < growth; ++i) { + object = data_0[index_0]; + this.didAdd(index_0, object); + ++index_0; + } + return true; + } + else { + ++this.modCount; + return false; + } +} +; +_.addAllUnique_0 = function addAllUnique_8(collection){ + var data_0, data0, growth, i, i0, object, objects, oldSize, size_0; + growth = collection.size_1(); + if (growth != 0) { + oldSize = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); + size_0 = oldSize + growth; + data_0 = $grow(this, size_0); + objects = collection.iterator_0(); + for (i0 = oldSize; i0 < size_0; ++i0) { + object = objects.next_1(); + $assign_0(data_0, i0, $validate(this, object)); + } + $setData(this, data_0); + for (i = oldSize; i < size_0; ++i) { + object = data_0[i]; + this.didAdd(i, object); + } + return true; + } + else { + ++this.modCount; + return false; + } +} +; +_.addUnique = function addUnique_7(index_0, object){ + var data_0, oldData, size_0, validatedObject; + oldData = castTo($getField(this.this$01, 4), 126); + size_0 = oldData == null?0:oldData.length; + data_0 = $grow(this, size_0 + 1); + validatedObject = $validate(this, object); + index_0 != size_0 && arraycopy(oldData, index_0, data_0, index_0 + 1, size_0 - index_0); + setCheck(data_0, index_0, validatedObject); + $setData(this, data_0); + this.didAdd(index_0, object); +} +; +_.addUnique_0 = function addUnique_8(object){ + var data_0, data0, size_0; + size_0 = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); + data_0 = $grow(this, size_0 + 1); + $assign_0(data_0, size_0, $validate(this, object)); + $setData(this, data_0); + this.didAdd(size_0, object); +} +; +_.basicIterator = function basicIterator_0(){ + return new ArrayDelegatingEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_1(){ + return new ArrayDelegatingEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_2(index_0){ + var data_0, size_0; + size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new ArrayDelegatingEList$NonResolvingEListIterator_0(this, index_0); +} +; +_.clear_0 = function clear_56(){ + var oldData, oldSize; + ++this.modCount; + oldData = castTo($getField(this.this$01, 4), 126); + oldSize = oldData == null?0:oldData.length; + $setData(this, null); + $didClear(this, oldSize, oldData); +} +; +_.contains = function contains_55(object){ + var data_0, datum, datum$array, datum$index, datum$max; + data_0 = castTo($getField(this.this$01, 4), 126); + if (data_0 != null) { + if (object != null) { + for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { + datum = datum$array[datum$index]; + if (equals_Ljava_lang_Object__Z__devirtual$(object, datum)) { + return true; + } + } + } + else { + for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { + datum = datum$array[datum$index]; + if (maskUndefined(datum) === maskUndefined(object)) { + return true; + } + } + } + } + return false; +} +; +_.get_0 = function get_52(index_0){ + var data_0, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return data_0[index_0]; +} +; +_.indexOf_0 = function indexOf_10(object){ + var data_0, i, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + if (data_0 != null) { + if (object != null) { + for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, data_0[i])) { + return i; + } + } + } + else { + for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { + if (maskUndefined(data_0[i]) === maskUndefined(object)) { + return i; + } + } + } + } + return -1; +} +; +_.isEmpty = function isEmpty_28(){ + return castTo($getField(this.this$01, 4), 126) == null; +} +; +_.iterator_0 = function iterator_80(){ + return new ArrayDelegatingEList$EIterator(this); +} +; +_.listIterator_0 = function listIterator_19(){ + return new ArrayDelegatingEList$EListIterator(this); +} +; +_.listIterator_1 = function listIterator_20(index_0){ + var data_0, size_0; + size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new ArrayDelegatingEList$EListIterator_0(this, index_0); +} +; +_.move = function move_5(targetIndex, sourceIndex){ + var data_0, object, size_0; + data_0 = $copy_0(this); + size_0 = data_0 == null?0:data_0.length; + if (targetIndex >= size_0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); + if (sourceIndex >= size_0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); + object = data_0[sourceIndex]; + if (targetIndex != sourceIndex) { + targetIndex < sourceIndex?arraycopy(data_0, targetIndex, data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(data_0, sourceIndex + 1, data_0, sourceIndex, targetIndex - sourceIndex); + setCheck(data_0, targetIndex, object); + $setData(this, data_0); + } + return object; +} +; +_.primitiveGet = function primitiveGet_1(index_0){ + return castTo($getField(this.this$01, 4), 126)[index_0]; +} +; +_.remove_2 = function remove_109(index_0){ + return $remove_37(this, index_0); +} +; +_.setUnique = function setUnique_3(index_0, object){ + var data_0, oldObject; + data_0 = $copy_0(this); + oldObject = data_0[index_0]; + $assign_0(data_0, index_0, $validate(this, object)); + $setData(this, data_0); + return oldObject; +} +; +_.size_1 = function size_67(){ + var data_0; + return data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length; +} +; +_.toArray = function toArray_30(){ + var data_0, result, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + result = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); + size_0 > 0 && arraycopy(data_0, 0, result, 0, size_0); + return result; +} +; +_.toArray_0 = function toArray_31(array){ + var data_0, newArray, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + if (size_0 > 0) { + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + arraycopy(data_0, 0, array, 0, size_0); + } + array.length > size_0 && setCheck(array, size_0, null); + return array; +} +; +var EMPTY_ARRAY; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList', 1982); +function ArrayDelegatingEList$EIterator(this$0){ + this.this$01 = this$0; + AbstractEList$EIterator.call(this, this$0); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} + +defineClass(1038, 40, $intern_6, ArrayDelegatingEList$EIterator); +_.checkModCount = function checkModCount_0(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.remove = function remove_110(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EIterator', 1038); +function $$init_9(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); +} + +function ArrayDelegatingEList$EListIterator(this$0){ + this.this$01 = this$0; + AbstractEList$EListIterator.call(this, this$0); + $$init_9(this); +} + +function ArrayDelegatingEList$EListIterator_0(this$0, index_0){ + this.this$01 = this$0; + AbstractEList$EListIterator_0.call(this, this$0, index_0); + $$init_9(this); +} + +defineClass(706, 278, $intern_14, ArrayDelegatingEList$EListIterator, ArrayDelegatingEList$EListIterator_0); +_.checkModCount = function checkModCount_1(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.doSet = function doSet_0(object){ + $doSet(this, object); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} +; +_.remove = function remove_111(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EListIterator', 706); +function ArrayDelegatingEList$NonResolvingEIterator(this$0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEIterator.call(this, this$0); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} + +defineClass(1039, 341, $intern_6, ArrayDelegatingEList$NonResolvingEIterator); +_.checkModCount = function checkModCount_2(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEIterator', 1039); +function $$init_10(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); +} + +function ArrayDelegatingEList$NonResolvingEListIterator(this$0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEListIterator.call(this, this$0); + $$init_10(this); +} + +function ArrayDelegatingEList$NonResolvingEListIterator_0(this$0, index_0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEListIterator_0.call(this, this$0, index_0); + $$init_10(this); +} + +defineClass(707, 385, $intern_14, ArrayDelegatingEList$NonResolvingEListIterator, ArrayDelegatingEList$NonResolvingEListIterator_0); +_.checkModCount = function checkModCount_3(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEListIterator', 707); +function BasicEList$BasicIndexOutOfBoundsException(index_0, size_0){ + AbstractEList$BasicIndexOutOfBoundsException.call(this, index_0, size_0); +} + +defineClass(606, 295, $intern_57, BasicEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_BasicEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/BasicIndexOutOfBoundsException', 606); +function BasicEList$UnmodifiableEList(size_0, data_0){ + this.size_0 = size_0; + this.data_0 = data_0; +} + +defineClass(696, 63, $intern_138, BasicEList$UnmodifiableEList); +_.add_3 = function add_53(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +_.add_2 = function add_54(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_26(index_0, collection){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_27(collection){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_57(){ + throw toJs(new UnsupportedOperationException); +} +; +_.grow = function grow_0(minimumCapacity){ + throw toJs(new UnsupportedOperationException); +} +; +_.iterator_0 = function iterator_81(){ + return this.basicIterator(); +} +; +_.listIterator_0 = function listIterator_21(){ + return this.basicListIterator(); +} +; +_.listIterator_1 = function listIterator_22(index_0){ + return this.basicListIterator_0(index_0); +} +; +_.move = function move_6(targetIndex, sourceIndex){ + throw toJs(new UnsupportedOperationException); +} +; +_.move_0 = function move_7(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_2 = function remove_112(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_113(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_24(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_BasicEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/UnmodifiableEList', 696); +function $add_24(this$static, index_0, object){ + this$static.delegateEList.add_3(index_0, castTo(object, 133)); +} + +function $add_25(this$static, object){ + return this$static.delegateEList.add_2(castTo(object, 133)); +} + +function $containsKey_7(this$static, key){ + var entryIndex, hash, index_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entryIndex = $entryIndexForKey(this$static, index_0, hash, key); + return entryIndex != -1; + } + else { + return false; + } +} + +function $containsValue_4(this$static, value_0){ + var eList, entries, entry, i, j, size_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + if (value_0 != null) { + for (i = 0; i < this$static.entryData.length; ++i) { + eList = this$static.entryData[i]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue())) { + return true; + } + } + } + } + } + else { + for (i = 0; i < this$static.entryData.length; ++i) { + eList = this$static.entryData[i]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (maskUndefined(value_0) === maskUndefined(entry.getValue())) { + return true; + } + } + } + } + } + } + return false; +} + +function $didClear_0(oldEntryData){ + var eList, i, j, size_0; + if (oldEntryData != null) { + for (i = 0; i < oldEntryData.length; ++i) { + eList = oldEntryData[i]; + if (eList) { + castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) + ; + } + } + } +} + +function $doClear_0(this$static){ + var oldEntryData; + if (this$static.entryData == null) { + ++this$static.modCount; + this$static.size_0 = 0; + $didClear_0(null); + } + else { + ++this$static.modCount; + oldEntryData = this$static.entryData; + this$static.entryData = null; + this$static.size_0 = 0; + $didClear_0(oldEntryData); + } +} + +function $doPut(this$static, entry){ + var eList, hash, index_0; + if (this$static.entryData == null) { + ++this$static.modCount; + ++this$static.size_0; + } + else { + hash = entry.getHash(); + $grow_0(this$static, this$static.size_0 + 1); + index_0 = (hash & $intern_0) % this$static.entryData.length; + eList = this$static.entryData[index_0]; + !eList && (eList = this$static.entryData[index_0] = this$static.newList()); + eList.add_2(entry); + ++this$static.size_0; + } +} + +function $doRemove(this$static, entry){ + var hash, index_0, key; + if (this$static.entryData == null) { + ++this$static.modCount; + --this$static.size_0; + } + else { + key = entry.getKey(); + hash = entry.getHash(); + index_0 = (hash & $intern_0) % this$static.entryData.length; + $removeEntry_0(this$static, index_0, $entryIndexForKey(this$static, index_0, hash, key)); + } +} + +function $entryForKey(this$static, index_0, hash, key){ + var eList, entries, entry, j, size_0; + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + if (key != null) { + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { + return entry; + } + } + } + else { + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (maskUndefined(entry.getKey()) === maskUndefined(key)) { + return entry; + } + } + } + } + return null; +} + +function $entryIndexForKey(this$static, index_0, hash, key){ + var eList, entries, entry, j, size_0; + if (key != null) { + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { + return j; + } + } + } + } + else { + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (maskUndefined(entry.getKey()) === maskUndefined(key)) { + return j; + } + } + } + } + return -1; +} + +function $entrySet_3(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.entrySet && (this$static.view.entrySet = new BasicEMap$5(this$static)); + return this$static.view.entrySet; +} + +function $equals_12(this$static, object){ + return instanceOf(object, 15) && $equals_11(this$static.delegateEList, object); +} + +function $get_21(this$static, key){ + var entry, hash, index_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry = $entryForKey(this$static, index_0, hash, key); + if (entry) { + return entry.getValue(); + } + } + return null; +} + +function $grow_0(this$static, minimumCapacity){ + var eList, entries, entry, i, index_0, j, oldCapacity, oldEList, oldEntryData, size_0; + ++this$static.modCount; + oldCapacity = this$static.entryData == null?0:this$static.entryData.length; + if (minimumCapacity > oldCapacity) { + oldEntryData = this$static.entryData; + this$static.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * oldCapacity + 4, 0, 1); + for (i = 0; i < oldCapacity; ++i) { + oldEList = oldEntryData[i]; + if (oldEList) { + entries = oldEList.data_0; + size_0 = oldEList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + index_0 = $indexOf_5(this$static, entry.getHash()); + eList = this$static.entryData[index_0]; + !eList && (eList = this$static.entryData[index_0] = this$static.newList()); + eList.add_2(entry); + } + } + } + return true; + } + else { + return false; + } +} + +function $hashOf(key){ + return key == null?0:hashCode__I__devirtual$(key); +} + +function $indexOf_5(this$static, hash){ + return (hash & $intern_0) % this$static.entryData.length; +} + +function $keySet_2(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.keySet && (this$static.view.keySet = new BasicEMap$3(this$static)); + return this$static.view.keySet; +} + +function $map_1(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.map_0 && (this$static.view.map_0 = new BasicEMap$DelegatingMap(this$static)); + return this$static.view.map_0; +} + +function $move_2(this$static, index_0, object){ + this$static.delegateEList.move_0(index_0, castTo(object, 133)); +} + +function $put_13(this$static, key, value_0){ + var entry, entry0, hash, index_0, result; + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + if (this$static.size_0 > 0) { + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry0 = $entryForKey(this$static, index_0, hash, key); + if (entry0) { + result = entry0.setValue(value_0); + return result; + } + } + entry = this$static.newEntry(hash, key, value_0); + this$static.delegateEList.add_2(entry); + return null; +} + +function $putAll_0(this$static, map_0){ + var entry, entry$iterator; + for (entry$iterator = map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + $put_13(this$static, entry.getKey(), entry.getValue()); + } +} + +function $remove_38(this$static, object){ + var result; + if (instanceOf(object, 42)) { + return this$static.delegateEList.remove_1(object); + } + else { + result = $containsKey_7(this$static, object); + $removeKey(this$static, object); + return result; + } +} + +function $removeEntry_0(this$static, index_0, entryIndex){ + var entry; + ++this$static.modCount; + --this$static.size_0; + entry = castTo(this$static.entryData[index_0].remove_2(entryIndex), 133); + return entry.getValue(); +} + +function $removeKey(this$static, key){ + var entry, hash, index_0; + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry = $entryForKey(this$static, index_0, hash, key); + if (entry) { + $remove_38(this$static, entry); + return entry.getValue(); + } + else { + return null; + } +} + +function $set_12(this$static, index_0, object){ + return castTo(this$static.delegateEList.set_2(index_0, castTo(object, 133)), 42); +} + +function $values_3(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.values && (this$static.view.values = new BasicEMap$4(this$static)); + return this$static.view.values; +} + +defineClass(705, 1, {3:1, 20:1, 14:1, 15:1, 58:1, 589:1}); +_.add_3 = function add_55(index_0, object){ + $add_24(this, index_0, castTo(object, 42)); +} +; +_.add_2 = function add_56(object){ + return $add_25(this, castTo(object, 42)); +} +; +_.forEach_0 = function forEach_37(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_53(index_0){ + return castTo($get_20(this.delegateEList, index_0), 133); +} +; +_.move = function move_8(targetIndex, sourceIndex){ + return castTo(this.delegateEList.move(targetIndex, sourceIndex), 42); +} +; +_.move_0 = function move_9(index_0, object){ + $move_2(this, index_0, castTo(object, 42)); +} +; +_.parallelStream = function parallelStream_5(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_114(index_0){ + return castTo(this.delegateEList.remove_2(index_0), 42); +} +; +_.set_2 = function set_25(index_0, object){ + return $set_12(this, index_0, castTo(object, 42)); +} +; +_.sort_0 = function sort_12(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_38(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_7(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.addAll_0 = function addAll_28(index_0, collection){ + return this.delegateEList.addAll_0(index_0, collection); +} +; +_.addAll = function addAll_29(collection){ + return this.delegateEList.addAll(collection); +} +; +_.clear_0 = function clear_58(){ + this.delegateEList.clear_0(); +} +; +_.contains = function contains_56(object){ + return this.delegateEList.contains(object); +} +; +_.containsAll = function containsAll_12(collection){ + return $containsAll(this.delegateEList, collection); +} +; +_.ensureEntryDataExists = function ensureEntryDataExists(){ + var entry, entry$iterator, oldModCount; + if (this.entryData == null) { + this.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); + oldModCount = this.modCount; + this.size_0 = 0; + for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 133); + $doPut(this, entry); + } + this.modCount = oldModCount; + } +} +; +_.equals_0 = function equals_188(object){ + return $equals_12(this, object); +} +; +_.hashCode_1 = function hashCode_76(){ + return $hashCode_2(this.delegateEList); +} +; +_.indexOf_0 = function indexOf_11(object){ + return this.delegateEList.indexOf_0(object); +} +; +_.initializeDelegateEList = function initializeDelegateEList(){ + this.delegateEList = new BasicEMap$1(this); +} +; +_.isEmpty = function isEmpty_29(){ + return this.size_0 == 0; +} +; +_.iterator_0 = function iterator_82(){ + return this.delegateEList.iterator_0(); +} +; +_.listIterator_0 = function listIterator_23(){ + return this.delegateEList.listIterator_0(); +} +; +_.listIterator_1 = function listIterator_24(index_0){ + return this.delegateEList.listIterator_1(index_0); +} +; +_.map_2 = function map_5(){ + return $map_1(this); +} +; +_.newEntry = function newEntry_0(hash, key, value_0){ + return new BasicEMap$EntryImpl(hash, key, value_0); +} +; +_.newList = function newList(){ + return new BasicEMap$2; +} +; +_.remove_1 = function remove_115(object){ + return $remove_38(this, object); +} +; +_.size_1 = function size_68(){ + return this.size_0; +} +; +_.subList = function subList_10(start_0, end){ + return new AbstractList$SubList(this.delegateEList, start_0, end); +} +; +_.toArray = function toArray_32(){ + return this.delegateEList.toArray(); +} +; +_.toArray_0 = function toArray_33(array){ + return this.delegateEList.toArray_0(array); +} +; +_.toString_0 = function toString_138(){ + return $toString_25(this.delegateEList); +} +; +_.modCount = 0; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap', 705); +function $didAdd(this$static, newObject){ + $doPut(this$static.this$01, newObject); +} + +function $didRemove(this$static, oldObject){ + $doRemove(this$static.this$01, oldObject); +} + +function $didSet(this$static, newObject, oldObject){ + $doRemove(this$static.this$01, oldObject); + $doPut(this$static.this$01, newObject); +} + +function BasicEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1033, 63, $intern_138, BasicEMap$1); +_.didAdd = function didAdd_0(index_0, newObject){ + $didAdd(this, castTo(newObject, 133)); +} +; +_.didMove = function didMove_0(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this , castTo(movedObject, 133) , lastArg).this$01.modCount; +} +; +_.didRemove = function didRemove_0(index_0, oldObject){ + $didRemove(this, castTo(oldObject, 133)); +} +; +_.didSet = function didSet_0(index_0, newObject, oldObject){ + $didSet(this, castTo(newObject, 133), castTo(oldObject, 133)); +} +; +_.didClear = function didClear_0(size_0, oldObjects){ + $doClear_0(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/1', 1033); +function BasicEMap$2(){ +} + +defineClass(1034, 63, $intern_138, BasicEMap$2); +_.newData = function newData_2(listCapacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit, $intern_146, 612, listCapacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$2_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/2', 1034); +function BasicEMap$3(this$0){ + this.this$01 = this$0; +} + +defineClass(1035, $intern_9, $intern_10, BasicEMap$3); +_.clear_0 = function clear_59(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_57(key){ + return $containsKey_7(this.this$01, key); +} +; +_.iterator_0 = function iterator_83(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapKeyIterator(this.this$01); +} +; +_.remove_1 = function remove_116(key){ + var oldSize; + oldSize = this.this$01.size_0; + $removeKey(this.this$01, key); + return this.this$01.size_0 != oldSize; +} +; +_.size_1 = function size_69(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$3_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/3', 1035); +function BasicEMap$4(this$0){ + this.this$01 = this$0; +} + +defineClass(1036, 28, $intern_8, BasicEMap$4); +_.clear_0 = function clear_60(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_58(value_0){ + return $containsValue_4(this.this$01, value_0); +} +; +_.iterator_0 = function iterator_84(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapValueIterator(this.this$01); +} +; +_.size_1 = function size_70(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$4_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/4', 1036); +function $remove_39(this$static, object){ + var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; + if (this$static.this$01.size_0 > 0 && instanceOf(object, 42)) { + this$static.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 42); + key = otherEntry.getKey(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = $indexOf_5(this$static.this$01, hash); + eList = this$static.this$01.entryData[index_0]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (entry.getHash() == hash && entry.equals_0(otherEntry)) { + $remove_39(this$static, otherEntry); + return true; + } + } + } + } + return false; +} + +function BasicEMap$5(this$0){ + this.this$01 = this$0; +} + +defineClass(1037, $intern_9, $intern_10, BasicEMap$5); +_.clear_0 = function clear_61(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_59(object){ + var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; + if (this.this$01.size_0 > 0 && instanceOf(object, 42)) { + this.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 42); + key = otherEntry.getKey(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = $indexOf_5(this.this$01, hash); + eList = this.this$01.entryData[index_0]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (entry.getHash() == hash && entry.equals_0(otherEntry)) { + return true; + } + } + } + } + return false; +} +; +_.iterator_0 = function iterator_85(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapIterator(this.this$01); +} +; +_.remove_1 = function remove_117(object){ + return $remove_39(this, object); +} +; +_.size_1 = function size_71(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$5_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/5', 1037); +function $scan(this$static){ + var eList; + this$static.this$01.ensureEntryDataExists(); + if (this$static.entryCursor != -1) { + ++this$static.entryCursor; + eList = this$static.this$01.entryData[this$static.cursor]; + if (this$static.entryCursor < eList.size_0) { + return; + } + ++this$static.cursor; + } + for (; this$static.cursor < this$static.this$01.entryData.length; ++this$static.cursor) { + eList = this$static.this$01.entryData[this$static.cursor]; + if (!!eList && eList.size_0 != 0) { + this$static.entryCursor = 0; + return; + } + } + this$static.entryCursor = -1; +} + +function BasicEMap$BasicEMapIterator(this$0){ + this.this$01 = this$0; + this.expectedModCount = this.this$01.modCount; + this$0.size_0 > 0 && $scan(this); +} + +defineClass(613, 1, $intern_6, BasicEMap$BasicEMapIterator); +_.forEachRemaining = function forEachRemaining_55(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_44(){ + return this.entryCursor != -1; +} +; +_.next_1 = function next_45(){ + var result; + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (this.entryCursor == -1) { + throw toJs(new NoSuchElementException); + } + this.lastCursor = this.cursor; + this.lastEntryCursor = this.entryCursor; + $scan(this); + result = castTo(this.this$01.entryData[this.lastCursor].data_0[this.lastEntryCursor], 133); + return this.yield_0(result); +} +; +_.remove = function remove_118(){ + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (this.lastEntryCursor == -1) { + throw toJs(new IllegalStateException); + } + this.this$01.delegateEList.remove_1($get_20(this.this$01.entryData[this.lastCursor], this.lastEntryCursor)); + this.expectedModCount = this.this$01.modCount; + this.lastEntryCursor = -1; + this.cursor == this.lastCursor && this.entryCursor != -1 && --this.entryCursor; +} +; +_.yield_0 = function yield_0(entry){ + return entry; +} +; +_.cursor = 0; +_.entryCursor = -1; +_.expectedModCount = 0; +_.lastCursor = 0; +_.lastEntryCursor = 0; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapIterator', 613); +function BasicEMap$BasicEMapKeyIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1031, 613, $intern_6, BasicEMap$BasicEMapKeyIterator); +_.yield_0 = function yield_1(entry){ + return entry.getKey(); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapKeyIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapKeyIterator', 1031); +function BasicEMap$BasicEMapValueIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1032, 613, $intern_6, BasicEMap$BasicEMapValueIterator); +_.yield_0 = function yield_2(entry){ + return entry.getValue(); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapValueIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapValueIterator', 1032); +function $containsKey_8(this$static, key){ + return $containsKey_7(this$static.this$01, key); +} + +function BasicEMap$DelegatingMap(this$0){ + this.this$01 = this$0; +} + +defineClass(1030, 1, $intern_7, BasicEMap$DelegatingMap); +_.forEach = function forEach_38(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge_4(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_62(){ + this.this$01.delegateEList.clear_0(); +} +; +_.containsKey = function containsKey_15(key){ + return $containsKey_8(this, key); +} +; +_.containsValue = function containsValue_8(value_0){ + return $containsValue_4(this.this$01, value_0); +} +; +_.entrySet_0 = function entrySet_9(){ + return $entrySet_3(this.this$01); +} +; +_.equals_0 = function equals_189(object){ + return $equals_12(this.this$01, object); +} +; +_.get_3 = function get_54(key){ + return $get_21(this.this$01, key); +} +; +_.hashCode_1 = function hashCode_77(){ + return $hashCode_2(this.this$01.delegateEList); +} +; +_.isEmpty = function isEmpty_30(){ + return this.this$01.size_0 == 0; +} +; +_.keySet_0 = function keySet_18(){ + return $keySet_2(this.this$01); +} +; +_.put = function put_10(key, value_0){ + return $put_13(this.this$01, key, value_0); +} +; +_.remove_0 = function remove_119(key){ + return $removeKey(this.this$01, key); +} +; +_.size_1 = function size_72(){ + return this.this$01.size_0; +} +; +_.toString_0 = function toString_139(){ + return $toString_25(this.this$01.delegateEList); +} +; +_.values_0 = function values_118(){ + return $values_3(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$DelegatingMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/DelegatingMap', 1030); +function BasicEMap$EntryImpl(hash, key, value_0){ + this.hash = hash; + this.key = key; + this.value_0 = value_0; +} + +defineClass(612, 1, {42:1, 133:1, 612:1}, BasicEMap$EntryImpl); +_.equals_0 = function equals_190(object){ + var entry; + if (instanceOf(object, 42)) { + entry = castTo(object, 42); + return (this.key != null?equals_Ljava_lang_Object__Z__devirtual$(this.key, entry.getKey()):maskUndefined(this.key) === maskUndefined(entry.getKey())) && (this.value_0 != null?equals_Ljava_lang_Object__Z__devirtual$(this.value_0, entry.getValue()):maskUndefined(this.value_0) === maskUndefined(entry.getValue())); + } + else { + return false; + } +} +; +_.getHash = function getHash_0(){ + return this.hash; +} +; +_.getKey = function getKey_9(){ + return this.key; +} +; +_.getValue = function getValue_11(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_78(){ + return this.hash ^ (this.value_0 == null?0:hashCode__I__devirtual$(this.value_0)); +} +; +_.setHash = function setHash_0(hash){ + this.hash = hash; +} +; +_.setKey = function setKey_0(key){ + throw toJs(new RuntimeException); +} +; +_.setValue = function setValue_12(value_0){ + var oldValue; + oldValue = this.value_0; + this.value_0 = value_0; + return oldValue; +} +; +_.toString_0 = function toString_140(){ + return this.key + '->' + this.value_0; +} +; +_.hash = 0; +var Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/EntryImpl', 612); +function BasicEMap$View(){ +} + +defineClass(536, 1, {}, BasicEMap$View); +var Lorg_eclipse_emf_common_util_BasicEMap$View_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/View', 536); +function $clinit_ECollections(){ + $clinit_ECollections = emptyMethod; + EMPTY_ELIST = new ECollections$EmptyUnmodifiableEList; + new ECollections$EmptyUnmodifiableEMap; +} + +function indexOf_12(list, o, fromIndex){ + var element, i, size_0; + fromIndex < 0 && (fromIndex = 0); + size_0 = list.size_0; + for (i = fromIndex; i < size_0; i++) { + element = $get_20(list, i); + if (o == null) { + if (element == null) { + return i; + } + } + else if (maskUndefined(o) === maskUndefined(element) || equals_Ljava_lang_Object__Z__devirtual$(o, element)) { + return i; + } + } + return -1; +} + +function sort_13(list, comparator){ + $clinit_ECollections(); + var i, listAsArray, objectComparator, oldIndex; + listAsArray = $toArray_11(list); + objectComparator = comparator; + mergeSort(listAsArray, 0, listAsArray.length, objectComparator); + for (i = 0; i < listAsArray.length; i++) { + oldIndex = indexOf_12(list, listAsArray[i], i); + i != oldIndex && $move_1(list, i, oldIndex); + } +} + +var EMPTY_ELIST; +function $add_26(){ + throw toJs(new UnsupportedOperationException); +} + +function $add_27(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_10(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_11(){ + throw toJs(new UnsupportedOperationException); +} + +function $clear_14(){ + throw toJs(new UnsupportedOperationException); +} + +function $move_3(){ + throw toJs(new UnsupportedOperationException); +} + +function $move_4(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove_40(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove_41(){ + throw toJs(new UnsupportedOperationException); +} + +function $set_13(){ + throw toJs(new UnsupportedOperationException); +} + +function ECollections$BasicEmptyUnmodifiableEList(){ + this.listIterator = new ECollections$BasicEmptyUnmodifiableEList$1; +} + +defineClass(768, 1, {}); +_.equals_0 = function equals_191(o){ + return $equals_2(($clinit_Collections() , EMPTY_LIST), o); +} +; +_.hashCode_1 = function hashCode_79(){ + return hashCode_48(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toString_0 = function toString_141(){ + return $toString_2(($clinit_Collections() , EMPTY_LIST)); +} +; +var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList', 768); +function ECollections$BasicEmptyUnmodifiableEList$1(){ +} + +defineClass(1312, 1, $intern_14, ECollections$BasicEmptyUnmodifiableEList$1); +_.forEachRemaining = function forEachRemaining_56(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_57(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasNext_0 = function hasNext_45(){ + return false; +} +; +_.hasPrevious = function hasPrevious_8(){ + return false; +} +; +_.next_1 = function next_46(){ + throw toJs(new NoSuchElementException); +} +; +_.nextIndex_0 = function nextIndex_9(){ + return 0; +} +; +_.previous_0 = function previous_9(){ + throw toJs(new NoSuchElementException); +} +; +_.previousIndex = function previousIndex_8(){ + return -1; +} +; +_.remove = function remove_120(){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_26(o){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList/1', 1312); +function ECollections$EmptyUnmodifiableEList(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1310, 768, {20:1, 14:1, 15:1, 58:1}, ECollections$EmptyUnmodifiableEList); +_.add_3 = function add_58(index_0, element){ + $add_26(); +} +; +_.add_2 = function add_59(o){ + return $add_27(); +} +; +_.addAll_0 = function addAll_30(index_0, collection){ + return $addAll_10(); +} +; +_.addAll = function addAll_31(coll){ + return $addAll_11(); +} +; +_.clear_0 = function clear_63(){ + $clear_14(); +} +; +_.contains = function contains_60(o){ + return false; +} +; +_.containsAll = function containsAll_13(coll){ + return false; +} +; +_.forEach_0 = function forEach_39(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_55(index_0){ + return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; +} +; +_.indexOf_0 = function indexOf_13(o){ + return -1; +} +; +_.isEmpty = function isEmpty_31(){ + return true; +} +; +_.iterator_0 = function iterator_86(){ + return this.listIterator; +} +; +_.listIterator_0 = function listIterator_25(){ + return this.listIterator; +} +; +_.listIterator_1 = function listIterator_26(index_0){ + return this.listIterator; +} +; +_.move = function move_10(newPosition, oldPosition){ + return $move_3(); +} +; +_.move_0 = function move_11(newPosition, o){ + $move_4(); +} +; +_.parallelStream = function parallelStream_6(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_121(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_122(o){ + return $remove_41(); +} +; +_.set_2 = function set_27(index_0, element){ + return $set_13(); +} +; +_.size_1 = function size_73(){ + return 0; +} +; +_.sort_0 = function sort_14(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_39(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_8(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.subList = function subList_11(fromIndex, toIndex){ + return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); +} +; +_.toArray = function toArray_34(){ + return $toArray(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toArray_0 = function toArray_35(a){ + return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); +} +; +var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEList', 1310); +function ECollections$EmptyUnmodifiableEMap(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1311, 768, {20:1, 14:1, 15:1, 58:1, 589:1}, ECollections$EmptyUnmodifiableEMap); +_.add_3 = function add_60(index_0, element){ + $add_26(); +} +; +_.add_2 = function add_61(o){ + return $add_27(); +} +; +_.addAll_0 = function addAll_32(index_0, collection){ + return $addAll_10(); +} +; +_.addAll = function addAll_33(coll){ + return $addAll_11(); +} +; +_.clear_0 = function clear_64(){ + $clear_14(); +} +; +_.contains = function contains_61(o){ + return false; +} +; +_.containsAll = function containsAll_14(coll){ + return false; +} +; +_.forEach_0 = function forEach_40(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_56(index_0){ + return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; +} +; +_.indexOf_0 = function indexOf_14(o){ + return -1; +} +; +_.isEmpty = function isEmpty_32(){ + return true; +} +; +_.iterator_0 = function iterator_87(){ + return this.listIterator; +} +; +_.listIterator_0 = function listIterator_27(){ + return this.listIterator; +} +; +_.listIterator_1 = function listIterator_28(index_0){ + return this.listIterator; +} +; +_.move = function move_12(newPosition, oldPosition){ + return $move_3(); +} +; +_.move_0 = function move_13(newPosition, o){ + $move_4(); +} +; +_.parallelStream = function parallelStream_7(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_123(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_124(o){ + return $remove_41(); +} +; +_.set_2 = function set_28(index_0, element){ + return $set_13(); +} +; +_.size_1 = function size_74(){ + return 0; +} +; +_.sort_0 = function sort_15(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_40(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_9(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.subList = function subList_12(fromIndex, toIndex){ + return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); +} +; +_.toArray = function toArray_36(){ + return $toArray(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toArray_0 = function toArray_37(a){ + return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); +} +; +_.map_2 = function map_6(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_MAP; +} +; +var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEMap', 1311); +var Lorg_eclipse_emf_common_util_Enumerator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'Enumerator'); +function $clinit_Reflect(){ + $clinit_Reflect = emptyMethod; + HELPER_REGISTRY = new HashMap; +} + +function isInstance(class_, instance){ + $clinit_Reflect(); + var helper; + helper = castTo($get_10(HELPER_REGISTRY, class_), 55); + return !helper || helper.isInstance(instance); +} + +function register_0(class_, helper){ + $clinit_Reflect(); + $put_6(HELPER_REGISTRY, class_, helper); +} + +var HELPER_REGISTRY; +function $clinit_URI(){ + $clinit_URI = emptyMethod; + var set_0; + uriCache = new URI$URICache; + NO_SEGMENTS = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); + ALPHA_HI = or_0(lowBitmask_0(33, 58), lowBitmask_0(1, 26)); + ALPHA_LO = or_0(lowBitmask_0(97, 122), lowBitmask_0(65, 90)); + DIGIT_LO = lowBitmask_0(48, 57); + ALPHANUM_HI = or_0(ALPHA_HI, 0); + ALPHANUM_LO = or_0(ALPHA_LO, DIGIT_LO); + HEX_HI = or_0(or_0(0, lowBitmask_0(1, 6)), lowBitmask_0(33, 38)); + HEX_LO = or_0(or_0(DIGIT_LO, lowBitmask_0(65, 70)), lowBitmask_0(97, 102)); + UNRESERVED_HI = or_0(ALPHANUM_HI, highBitmask_0("-_.!~*'()")); + UNRESERVED_LO = or_0(ALPHANUM_LO, lowBitmask_1("-_.!~*'()")); + highBitmask_0(';/?:@&=+$,'); + lowBitmask_1(';/?:@&=+$,'); + or_0(UNRESERVED_HI, highBitmask_0(';:@&=+$,')); + or_0(UNRESERVED_LO, lowBitmask_1(';:@&=+$,')); + MAJOR_SEPARATOR_HI = highBitmask_0(':/?#'); + MAJOR_SEPARATOR_LO = lowBitmask_1(':/?#'); + SEGMENT_END_HI = highBitmask_0('/?#'); + SEGMENT_END_LO = lowBitmask_1('/?#'); + set_0 = new HashSet; + set_0.map_0.put('jar', set_0); + set_0.map_0.put('zip', set_0); + set_0.map_0.put('archive', set_0); + archiveSchemes = ($clinit_Collections() , new Collections$UnmodifiableSet(set_0)); +} + +function $appendFragment(this$static, fragment){ + var result; + result = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, fragment); + this$static.fragment != null || (result.cachedTrimFragment = this$static); + return result; +} + +function $segmentsEqual(this$static, uri_0){ + var i, len; + if (this$static.segments.length != uri_0.segments.length) + return false; + for (i = 0 , len = this$static.segments.length; i < len; i++) { + if (!$equals_5(this$static.segments[i], uri_0.segments[i])) + return false; + } + return true; +} + +function $toString_26(this$static){ + var i, len, result; + if (this$static.cachedToString == null) { + result = new StringBuffer; + if (this$static.scheme != null) { + $append_3(result, this$static.scheme); + result.string += ':'; + } + if ((this$static.hashCode_0 & 256) != 0) { + if ((this$static.hashCode_0 & 256) != 0 && this$static.authority != null) { + isArchiveScheme(this$static.scheme) || (result.string += '//' , result); + $append_3(result, this$static.authority); + } + if (this$static.device != null) { + result.string += '/'; + $append_3(result, this$static.device); + } + (this$static.hashCode_0 & 16) != 0 && (result.string += '/' , result); + for (i = 0 , len = this$static.segments.length; i < len; i++) { + i != 0 && (result.string += '/' , result); + $append_3(result, this$static.segments[i]); + } + if (this$static.query != null) { + result.string += '?'; + $append_3(result, this$static.query); + } + } + else { + $append_3(result, this$static.authority); + } + if (this$static.fragment != null) { + result.string += '#'; + $append_3(result, this$static.fragment); + } + this$static.cachedToString = result.string; + } + return this$static.cachedToString; +} + +function $trimFragment(this$static){ + if (this$static.fragment == null) { + return this$static; + } + else + !this$static.cachedTrimFragment && (this$static.cachedTrimFragment = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, null)); + return this$static.cachedTrimFragment; +} + +function URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment){ + var hashCode, i, len; + hashCode = 0; + scheme != null && (hashCode ^= getHashCode_1(scheme.toLowerCase())); + authority != null && (hashCode ^= getHashCode_1(authority)); + device != null && (hashCode ^= getHashCode_1(device)); + query != null && (hashCode ^= getHashCode_1(query)); + fragment != null && (hashCode ^= getHashCode_1(fragment)); + for (i = 0 , len = segments.length; i < len; i++) { + hashCode ^= getHashCode_1(segments[i]); + } + hierarchical?(hashCode |= 256):(hashCode &= -257); + absolutePath?(hashCode |= 16):(hashCode &= -17); + this.hashCode_0 = hashCode; + this.scheme = scheme == null?null:(checkCriticalNotNull(scheme) , scheme); + this.authority = authority; + this.device = device; + this.segments = segments; + this.query = query; + this.fragment = fragment; +} + +function contains_62(s, highBitmask, lowBitmask){ + var i, len; + for (i = 0 , len = s.length; i < len; i++) { + if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) + return true; + } + return false; +} + +function createURIWithCache(uri_0){ + $clinit_URI(); + var base, fragment, i, result; + i = $indexOf_1(uri_0, fromCodePoint(35)); + base = i == -1?uri_0:uri_0.substr(0, i); + fragment = i == -1?null:uri_0.substr(i + 1); + result = $get_22(uriCache, base); + if (!result) { + result = parseIntoURI(base); + $put_14(uriCache, base, result); + fragment != null && (result = $appendFragment(result, fragment)); + } + else + fragment != null && (result = $appendFragment(result, (checkCriticalNotNull(fragment) , fragment))); + return result; +} + +function decode(value_0){ + $clinit_URI(); + var bytes, character, expectedBytes, i, j, len, receivedBytes, result; + if (value_0 == null) + return null; + i = $indexOf_1(value_0, fromCodePoint(37)); + if (i < 0) { + return value_0; + } + else { + result = new StringBuilder_1(value_0.substr(0, i)); + bytes = initUnidimensionalArray(B_classLit, $intern_136, 25, 4, 15, 1); + receivedBytes = 0; + expectedBytes = 0; + for (len = value_0.length; i < len; i++) { + checkCriticalStringElementIndex(i, value_0.length); + if (value_0.charCodeAt(i) == 37 && value_0.length > i + 2 && matches((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), HEX_HI, HEX_LO) && matches((checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2)), HEX_HI, HEX_LO)) { + character = unescape_0((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), (checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2))); + i += 2; + if (expectedBytes > 0) { + (character & 192) == 128?(bytes[receivedBytes++] = character << 24 >> 24):(expectedBytes = 0); + } + else if (character >= 128) { + if ((character & 224) == 192) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 2; + } + else if ((character & 240) == 224) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 3; + } + else if ((character & 248) == 240) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 4; + } + } + if (expectedBytes > 0) { + if (receivedBytes == expectedBytes) { + switch (receivedBytes) { + case 2: + { + $append_5(result, ((bytes[0] & 31) << 6 | bytes[1] & 63) & $intern_46); + break; + } + + case 3: + { + $append_5(result, ((bytes[0] & 15) << 12 | (bytes[1] & 63) << 6 | bytes[2] & 63) & $intern_46); + break; + } + + } + receivedBytes = 0; + expectedBytes = 0; + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_46); + } + receivedBytes = 0; + result.string += String.fromCharCode(character); + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_46); + } + receivedBytes = 0; + $append_5(result, (checkCriticalStringElementIndex(i, value_0.length) , value_0.charCodeAt(i))); + } + } + return result.string; + } +} + +function equals_193(o1, o2){ + return o1 == null?o2 == null:$equals_5(o1, o2); +} + +function equals_194(s1, s2){ + return s1 == null?s2 == null:$equalsIgnoreCase(s1, s2); +} + +function find_0(s, i, highBitmask, lowBitmask){ + var len; + len = s.length; + if (i >= len) + return len; + for (i = i > 0?i:0; i < len; i++) { + if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) + break; + } + return i; +} + +function firstInvalidSegment(value_0){ + var i, len; + if (value_0 == null) + return null; + for (i = 0 , len = value_0.length; i < len; i++) { + if (!validSegment(value_0[i])) + return value_0[i]; + } + return null; +} + +function highBitmask_0(chars){ + var c, i, len, result; + result = 0; + for (i = 0 , len = chars.length; i < len; i++) { + c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); + c >= 64 && c < 128 && (result = or_0(result, shl_0(1, c - 64))); + } + return result; +} + +function isArchiveScheme(value_0){ + return value_0 != null && $contains_2(archiveSchemes, value_0.toLowerCase()); +} + +function lowBitmask_0(from, to){ + var c, result; + result = 0; + if (from < 64 && from <= to) { + to = to < 64?to:63; + for (c = from; c <= to; c++) { + result = or_0(result, shl_0(1, c)); + } + } + return result; +} + +function lowBitmask_1(chars){ + var c, i, len, result; + result = 0; + for (i = 0 , len = chars.length; i < len; i++) { + c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); + c < 64 && (result = or_0(result, shl_0(1, c))); + } + return result; +} + +function matches(c, highBitmask, lowBitmask){ + if (c >= 128) + return false; + return c < 64?neq(and_0(shl_0(1, c), lowBitmask), 0):neq(and_0(shl_0(1, c - 64), highBitmask), 0); +} + +function parseIntoURI(uri_0){ + var absolutePath, archiveScheme, authority, device, fragment, hierarchical, i, j, query, s, scheme, segmentList, segments; + hierarchical = true; + scheme = null; + authority = null; + device = null; + absolutePath = false; + segments = NO_SEGMENTS; + query = null; + fragment = null; + i = 0; + j = find_0(uri_0, i, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO); + if (j < uri_0.length && (checkCriticalStringElementIndex(j, uri_0.length) , uri_0.charCodeAt(j) == 58)) { + scheme = uri_0.substr(i, j - i); + i = j + 1; + } + archiveScheme = scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()); + if (archiveScheme) { + j = uri_0.lastIndexOf('!/'); + if (j == -1) { + throw toJs(new IllegalArgumentException_0('no archive separator')); + } + hierarchical = true; + authority = $substring_1(uri_0, i, ++j); + i = j; + } + else if (i >= 0 && $equals_5(uri_0.substr(i, '//'.length), '//')) { + i += 2; + j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); + authority = uri_0.substr(i, j - i); + i = j; + } + else if (scheme != null && (i == uri_0.length || (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 47))) { + hierarchical = false; + j = $indexOf_2(uri_0, fromCodePoint(35), i); + j == -1 && (j = uri_0.length); + authority = uri_0.substr(i, j - i); + i = j; + } + if (!archiveScheme && i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { + j = find_0(uri_0, i + 1, SEGMENT_END_HI, SEGMENT_END_LO); + s = uri_0.substr(i + 1, j - (i + 1)); + if (s.length > 0 && $charAt(s, s.length - 1) == 58) { + device = s; + i = j; + } + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { + ++i; + absolutePath = true; + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { + segmentList = new ArrayList; + while (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { + j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); + $add_3(segmentList, uri_0.substr(i, j - i)); + i = j; + i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47) && (segmentsRemain(uri_0, ++i) || (segmentList.array[segmentList.array.length] = '' , true)); + } + segments = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, segmentList.array.length, 6, 1); + $toArray_2(segmentList, segments); + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 63)) { + j = $indexOf_0(uri_0, 35, ++i); + j == -1 && (j = uri_0.length); + query = uri_0.substr(i, j - i); + i = j; + } + i < uri_0.length && (fragment = $substring_0(uri_0, ++i)); + validateURI(hierarchical, scheme, authority, device, segments, query); + return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); +} + +function segmentsRemain(uri_0, i){ + return i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35); +} + +function unescape_0(highHexDigit, lowHexDigit){ + return (valueOf_112(highHexDigit) << 4 | valueOf_112(lowHexDigit)) & $intern_46; +} + +function validArchiveAuthority(value_0){ + var archiveURI; + if (value_0 != null && value_0.length > 0 && $charAt(value_0, value_0.length - 1) == 33) { + try { + archiveURI = createURIWithCache($substring_1(value_0, 0, value_0.length - 1)); + return archiveURI.fragment == null; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 32)) + throw toJs($e0); + } + } + return false; +} + +function validDevice(value_0){ + var len; + if (value_0 == null) + return true; + len = value_0.length; + return len > 0 && (checkCriticalStringElementIndex(len - 1, value_0.length) , value_0.charCodeAt(len - 1) == 58) && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); +} + +function validSegment(value_0){ + return value_0 != null && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); +} + +function validSegments(value_0){ + var i, len; + if (value_0 == null) + return false; + for (i = 0 , len = value_0.length; i < len; i++) { + if (!validSegment(value_0[i])) + return false; + } + return true; +} + +function validateURI(hierarchical, scheme, authority, device, segments, query){ + var s; + if (!(scheme == null || !contains_62(scheme, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO))) { + throw toJs(new IllegalArgumentException_0('invalid scheme: ' + scheme)); + } + if (!hierarchical && !(authority != null && $indexOf_1(authority, fromCodePoint(35)) == -1 && authority.length > 0 && (checkCriticalStringElementIndex(0, authority.length) , authority.charCodeAt(0) != 47))) { + throw toJs(new IllegalArgumentException_0('invalid opaquePart: ' + authority)); + } + if (hierarchical && !(scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase())) && !(authority == null || !contains_62(authority, SEGMENT_END_HI, SEGMENT_END_LO))) { + throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); + } + if (hierarchical && scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()) && !validArchiveAuthority(authority)) { + throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); + } + if (!validDevice(device)) { + throw toJs(new IllegalArgumentException_0('invalid device: ' + device)); + } + if (!validSegments(segments)) { + s = segments == null?'invalid segments: null':'invalid segment: ' + firstInvalidSegment(segments); + throw toJs(new IllegalArgumentException_0(s)); + } + if (!(query == null || $indexOf_1(query, fromCodePoint(35)) == -1)) { + throw toJs(new IllegalArgumentException_0('invalid query: ' + query)); + } +} + +function valueOf_112(hexDigit){ + if (hexDigit >= 65 && hexDigit <= 70) { + return hexDigit - 65 + 10; + } + if (hexDigit >= 97 && hexDigit <= 102) { + return hexDigit - 97 + 10; + } + if (hexDigit >= 48 && hexDigit <= 57) { + return hexDigit - 48; + } + return 0; +} + +defineClass(281, 1, {281:1}, URI); +_.equals_0 = function equals_192(object){ + var uri_0; + if (this === object) + return true; + if (!instanceOf(object, 281)) + return false; + uri_0 = castTo(object, 281); + return this.hashCode_0 == uri_0.hashCode_0 && equals_194(this.scheme, uri_0.scheme) && equals_193(this.authority, (this.hashCode_0 & 256) != 0?(uri_0.hashCode_0 & 256) != 0?uri_0.authority:null:(uri_0.hashCode_0 & 256) != 0?null:uri_0.authority) && equals_193(this.device, uri_0.device) && equals_193(this.query, uri_0.query) && equals_193(this.fragment, uri_0.fragment) && $segmentsEqual(this, uri_0); +} +; +_.hashCode_1 = function hashCode_80(){ + return this.hashCode_0; +} +; +_.toString_0 = function toString_142(){ + return $toString_26(this); +} +; +_.hashCode_0 = 0; +var ALPHANUM_HI = 0, ALPHANUM_LO = 0, ALPHA_HI = 0, ALPHA_LO = 0, DIGIT_LO = 0, HEX_HI = 0, HEX_LO = 0, MAJOR_SEPARATOR_HI = 0, MAJOR_SEPARATOR_LO = 0, NO_SEGMENTS, SEGMENT_END_HI = 0, SEGMENT_END_LO = 0, UNRESERVED_HI = 0, UNRESERVED_LO = 0, archiveSchemes, uriCache; +var Lorg_eclipse_emf_common_util_URI_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI', 281); +function $get_22(this$static, key){ + return castTo(key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key), 281); +} + +function $put_14(this$static, key, value_0){ + return castTo(key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0), 281); +} + +function URI$URICache(){ + HashMap.call(this); +} + +defineClass(1091, 43, $intern_76, URI$URICache); +_.put = function put_11(key, value_0){ + return castTo($putStringValue(this, castToString(key), castTo(value_0, 281)), 281); +} +; +var Lorg_eclipse_emf_common_util_URI$URICache_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI/URICache', 1091); +function UniqueEList(){ +} + +function UniqueEList_0(collection){ + BasicEList_0.call(this, collection.size_1()); + $addAll_9(this, collection); +} + +defineClass(497, 63, $intern_138, UniqueEList, UniqueEList_0); +_.isUnique = function isUnique_1(){ + return true; +} +; +var Lorg_eclipse_emf_common_util_UniqueEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'UniqueEList', 497); +function WrappedException(exception){ + $$init_0(this); + this.detailMessage = !exception?null:$toString_4(exception, exception.getMessage()); + this.cause_0 = exception; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +defineClass(581, 60, $intern_43, WrappedException); +var Lorg_eclipse_emf_common_util_WrappedException_2_classLit = createForClass('org.eclipse.emf.common.util', 'WrappedException', 581); +var Lorg_eclipse_emf_ecore_EAnnotation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAnnotation'); +var Lorg_eclipse_emf_ecore_ETypedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypedElement'); +var Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EStructuralFeature'); +var Lorg_eclipse_emf_ecore_EAttribute_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAttribute'); +var Lorg_eclipse_emf_ecore_EClassifier_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClassifier'); +var Lorg_eclipse_emf_ecore_EClass_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClass'); +var Lorg_eclipse_emf_ecore_EDataType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EDataType'); +function $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry(){ + $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry = emptyMethod; + INSTANCE_5 = new EDataType$Internal$ConversionDelegate$Factory$Registry$Impl; +} + +var INSTANCE_5; +function $getFactory(this$static, uri_0){ + var factory; + return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); +} + +function EDataType$Internal$ConversionDelegate$Factory$Registry$Impl(){ + HashMap.call(this); +} + +defineClass(1183, 43, $intern_76, EDataType$Internal$ConversionDelegate$Factory$Registry$Impl); +_.get_3 = function get_57(key){ + return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); +} +; +var Lorg_eclipse_emf_ecore_EDataType$Internal$ConversionDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl', 1183); +var Lorg_eclipse_emf_ecore_EEnum_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnum'); +var Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnumLiteral'); +var Lorg_eclipse_emf_ecore_EGenericType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EGenericType'); +var Lorg_eclipse_emf_ecore_EOperation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EOperation'); +function $clinit_EPackage$Registry(){ + $clinit_EPackage$Registry = emptyMethod; + INSTANCE_6 = new EPackageRegistryImpl; +} + +var INSTANCE_6; +var Lorg_eclipse_emf_ecore_EParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EParameter'); +var Lorg_eclipse_emf_ecore_EReference_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EReference'); +function EStructuralFeature$Internal$DynamicValueHolder$1(){ +} + +defineClass(1029, 1, {}, EStructuralFeature$Internal$DynamicValueHolder$1); +_.toString_0 = function toString_143(){ + return 'NIL'; +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$DynamicValueHolder$1_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/DynamicValueHolder/1', 1029); +function $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry(){ + $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry = emptyMethod; + INSTANCE_7 = new EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl; +} + +var INSTANCE_7; +function $getFactory_0(this$static, uri_0){ + var factory; + return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); +} + +function EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl(){ + HashMap.call(this); +} + +defineClass(1028, 43, $intern_76, EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl); +_.get_3 = function get_58(key){ + return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl', 1028); +var Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypeParameter'); +var Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EValidator/PatternMatcher'); +function $clinit_EValidator$Registry(){ + $clinit_EValidator$Registry = emptyMethod; + INSTANCE_8 = new EValidatorRegistryImpl; +} + +var INSTANCE_8; +function $clinit_EcoreFactory(){ + $clinit_EcoreFactory = emptyMethod; + eINSTANCE_1 = init_3(); +} + +var eINSTANCE_1; +function $clinit_EcorePackage(){ + $clinit_EcorePackage = emptyMethod; + eINSTANCE_2 = init_4(); + !!($clinit_EcorePackage$Literals() , EATTRIBUTE) && internalBootstrap(); +} + +var eINSTANCE_2; +function $clinit_EcorePackage$Literals(){ + $clinit_EcorePackage$Literals = emptyMethod; + EATTRIBUTE = ($clinit_EcorePackage() , eINSTANCE_2).eAttributeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 1), 18); + EANNOTATION = eINSTANCE_2.eAnnotationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 4), 18); + ECLASS = eINSTANCE_2.eClassEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 1), 34); + ECLASS__ESUPER_TYPES = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 7), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 8), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 9), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 10), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 11), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 12), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 13), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 14), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 15), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 2), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 3), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 4), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 5), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 6), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 7), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 8), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 9), 59); + ECLASSIFIER = eINSTANCE_2.eClassifierEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 1), 59); + EDATA_TYPE = eINSTANCE_2.eDataTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eDataTypeEClass), 0), 34); + EENUM = eINSTANCE_2.eEnumEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 2), 59); + EENUM_LITERAL = eINSTANCE_2.eEnumLiteralEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 3), 18); + EFACTORY = eINSTANCE_2.eFactoryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eFactoryEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 2), 59); + EMODEL_ELEMENT = eINSTANCE_2.eModelElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eModelElementEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eModelElementEClass), 0), 59); + ENAMED_ELEMENT = eINSTANCE_2.eNamedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eNamedElementEClass), 0), 34); + EOBJECT = eINSTANCE_2.eObjectEClass; + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 2), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 3), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 4), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 5), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 6), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 7), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 8), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 9), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 10), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 11), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 12), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 13), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 14), 59); + EOPERATION = eINSTANCE_2.eOperationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 2), 18); + EOPERATION__EEXCEPTIONS = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 4), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 1), 59); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 1), 18); + EPACKAGE = eINSTANCE_2.ePackageEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.ePackageEClass), 0), 59); + EPARAMETER = eINSTANCE_2.eParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eParameterEClass), 0), 18); + EREFERENCE = eINSTANCE_2.eReferenceEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 5), 18); + ESTRUCTURAL_FEATURE = eINSTANCE_2.eStructuralFeatureEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 6), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 7), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 1), 59); + ETYPED_ELEMENT = eINSTANCE_2.eTypedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 7), 18); + ESTRING_TO_STRING_MAP_ENTRY = eINSTANCE_2.eStringToStringMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 1), 34); + EGENERIC_TYPE = eINSTANCE_2.eGenericTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eGenericTypeEClass), 0), 59); + ETYPE_PARAMETER = eINSTANCE_2.eTypeParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypeParameterEClass), 0), 18); + EJAVA_OBJECT = eINSTANCE_2.eJavaObjectEDataType; +} + +var EANNOTATION, EATTRIBUTE, ECLASS, ECLASSIFIER, ECLASS__ESUPER_TYPES, EDATA_TYPE, EENUM, EENUM_LITERAL, EFACTORY, EGENERIC_TYPE, EJAVA_OBJECT, EMODEL_ELEMENT, ENAMED_ELEMENT, EOBJECT, EOPERATION, EOPERATION__EEXCEPTIONS, EPACKAGE, EPARAMETER, EREFERENCE, ESTRING_TO_STRING_MAP_ENTRY, ESTRUCTURAL_FEATURE, ETYPED_ELEMENT, ETYPE_PARAMETER; +var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry'); +function BasicEObjectImpl$1(val$eAttribute, val$value){ + this.val$eAttribute1 = val$eAttribute; + this.val$value2 = val$value; +} + +defineClass(535, 1, {72:1}, BasicEObjectImpl$1); +_.getEStructuralFeature = function getEStructuralFeature(){ + return this.val$eAttribute1; +} +; +_.getValue = function getValue_12(){ + return this.val$value2; +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/1', 535); +function BasicEObjectImpl$4(this$0, val$eFeature){ + this.this$01 = this$0; + this.val$eFeature2 = val$eFeature; +} + +defineClass(1027, 1, $intern_147, BasicEObjectImpl$4); +_.get_6 = function get_59(resolve){ + return $eGet_1(this.this$01, this.val$eFeature2, resolve); +} +; +_.isSet_0 = function isSet_1(){ + return $eIsSet_0(this.this$01, this.val$eFeature2); +} +; +_.set_1 = function set_29(newValue){ + $eSet_0(this.this$01, this.val$eFeature2, newValue); +} +; +_.unset = function unset(){ + $eUnset_0(this.this$01, this.val$eFeature2); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/4', 1027); +function $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl = emptyMethod; + NO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +defineClass(1983, 1, {108:1}); +_.allocateSettings = function allocateSettings(dynamicFeatureCount){ + this.eSettings = dynamicFeatureCount == 0?NO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, dynamicFeatureCount, 5, 1); +} +; +_.dynamicGet = function dynamicGet_0(dynamicFeatureID){ + return this.eSettings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet_0(dynamicFeatureID, value_0){ + this.eSettings[dynamicFeatureID] = value_0; +} +; +_.dynamicUnset = function dynamicUnset_0(dynamicFeatureID){ + this.eSettings[dynamicFeatureID] = null; +} +; +_.getEClass = function getEClass(){ + return this.eClass; +} +; +_.getEContents = function getEContents(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEProxyURI = function getEProxyURI(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEResource = function getEResource(){ + return this.eResource; +} +; +_.hasSettings = function hasSettings(){ + return this.eSettings != null; +} +; +_.setEClass = function setEClass(eClass){ + this.eClass = eClass; +} +; +_.setEContents = function setEContents(eContents){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEProxyURI = function setEProxyURI(eProxyURI){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEResource = function setEResource(eResource){ + this.eResource = eResource; +} +; +var NO_SETTINGS; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderBaseImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderBaseImpl', 1983); +function BasicEObjectImpl$EPropertiesHolderImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(); +} + +defineClass(185, 1983, {108:1}, BasicEObjectImpl$EPropertiesHolderImpl); +_.getEContents = function getEContents_0(){ + return this.eContents; +} +; +_.getEProxyURI = function getEProxyURI_0(){ + return this.eProxyURI; +} +; +_.setEContents = function setEContents_0(eContents){ + this.eContents = eContents; +} +; +_.setEProxyURI = function setEProxyURI_0(eProxyURI){ + this.eProxyURI = eProxyURI; +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderImpl', 185); +function EObjectImpl(){ +} + +defineClass(506, 97, $intern_135, EObjectImpl); +_.eBasicAdapters = function eBasicAdapters_2(){ + return this.eAdapters; +} +; +_.eBasicProperties = function eBasicProperties_1(){ + return this.eProperties; +} +; +_.eBasicSetContainer = function eBasicSetContainer_4(newContainer, newContainerFeatureID){ + this.eContainer = newContainer; + this.eContainerFeatureID = newContainerFeatureID; +} +; +_.eClass_0 = function eClass_2(){ + return (this.eFlags & 2) == 0?this.eStaticClass():this.eProperties_0().getEClass(); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_2(){ + return this.eContainerFeatureID; +} +; +_.eDeliver = function eDeliver_2(){ + return (this.eFlags & 1) != 0; +} +; +_.eInternalContainer = function eInternalContainer_3(){ + return this.eContainer; +} +; +_.eIsProxy = function eIsProxy_1(){ + return (this.eFlags & 4) != 0; +} +; +_.eProperties_0 = function eProperties_2(){ + return !this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties; +} +; +_.eSetClass = function eSetClass_1(eClass){ + this.eProperties_0().setEClass(eClass); + eClass?(this.eFlags |= 2):(this.eFlags &= -3); +} +; +_.eSetProxyURI = function eSetProxyURI_2(uri_0){ + this.eProperties_0().setEProxyURI(uri_0); + uri_0?(this.eFlags |= 4):(this.eFlags &= -5); +} +; +_.eStaticClass = function eStaticClass_15(){ + return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; +} +; +_.eContainerFeatureID = 0; +_.eFlags = 1; +var Lorg_eclipse_emf_ecore_impl_EObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EObjectImpl', 506); +function $clinit_DynamicEObjectImpl(){ + $clinit_DynamicEObjectImpl = emptyMethod; + ENO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function DynamicEObjectImpl(eClass){ + $clinit_DynamicEObjectImpl(); + EObjectImpl.call(this); + this.eSetClass(eClass); +} + +defineClass(780, 506, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl); +_.dynamicGet = function dynamicGet_1(dynamicFeatureID){ + return this.eSettings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet_1(dynamicFeatureID, value_0){ + this.eSettings[dynamicFeatureID] = value_0; +} +; +_.dynamicUnset = function dynamicUnset_1(dynamicFeatureID){ + this.eSettings[dynamicFeatureID] = null; +} +; +_.eClass_0 = function eClass_3(){ + return this.eClass; +} +; +_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_1(eStructuralFeature){ + return $getFeatureID(this.eClass, eStructuralFeature); +} +; +_.eDynamicClass = function eDynamicClass_1(){ + return this.eClass; +} +; +_.eHasSettings = function eHasSettings_1(){ + return this.eSettings != null; +} +; +_.eProperties_0 = function eProperties_3(){ + !this.eProperties && (this.eProperties = new DynamicEObjectImpl$DynamicEPropertiesHolderImpl); + return this.eProperties; +} +; +_.eSetClass = function eSetClass_2(eClass){ + this.eClass = eClass; +} +; +_.eSettings_0 = function eSettings_1(){ + var size_0; + if (this.eSettings == null) { + size_0 = $getFeatureCount(this.eClass); + this.eSettings = size_0 == 0?ENO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + } + return this; +} +; +_.eStaticFeatureCount = function eStaticFeatureCount_0(){ + return 0; +} +; +var ENO_SETTINGS; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl', 780); +function DynamicEObjectImpl$BasicEMapEntry(eClass){ + $clinit_DynamicEObjectImpl(); + DynamicEObjectImpl.call(this, eClass); + this.hash = -1; +} + +defineClass(1376, 780, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl$BasicEMapEntry); +_.equals_0 = function equals_195(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_81(){ + return getHashCode_0(this); +} +; +_.eSetClass = function eSetClass_3(eClass){ + this.eClass = eClass; + this.keyFeature = $getEStructuralFeature_0(eClass, 'key'); + this.valueFeature = $getEStructuralFeature_0(eClass, 'value'); +} +; +_.getHash = function getHash_1(){ + var theKey; + if (this.hash == -1) { + theKey = $eGet_2(this, this.keyFeature); + this.hash = theKey == null?0:hashCode__I__devirtual$(theKey); + } + return this.hash; +} +; +_.getKey = function getKey_10(){ + return $eGet_2(this, this.keyFeature); +} +; +_.getValue = function getValue_13(){ + return $eGet_2(this, this.valueFeature); +} +; +_.setHash = function setHash_1(hash){ + this.hash = hash; +} +; +_.setKey = function setKey_1(key){ + $eSet_0(this, this.keyFeature, key); +} +; +_.setValue = function setValue_13(value_0){ + var result; + result = $eGet_2(this, this.valueFeature); + $eSet_0(this, this.valueFeature, value_0); + return result; +} +; +_.hash = 0; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$BasicEMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/BasicEMapEntry', 1376); +function DynamicEObjectImpl$DynamicEPropertiesHolderImpl(){ +} + +defineClass(1377, 1, {108:1}, DynamicEObjectImpl$DynamicEPropertiesHolderImpl); +_.allocateSettings = function allocateSettings_0(maximumDynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicGet = function dynamicGet_2(dynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicSet = function dynamicSet_2(dynamicFeatureID, value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicUnset = function dynamicUnset_2(dynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEClass = function getEClass_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEContents = function getEContents_1(){ + return this.eContents; +} +; +_.getEProxyURI = function getEProxyURI_1(){ + return this.eProxyURI; +} +; +_.getEResource = function getEResource_0(){ + return this.eResource; +} +; +_.hasSettings = function hasSettings_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEClass = function setEClass_0(eClass){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEContents = function setEContents_1(eContents){ + this.eContents = eContents; +} +; +_.setEProxyURI = function setEProxyURI_1(eProxyURI){ + this.eProxyURI = eProxyURI; +} +; +_.setEResource = function setEResource_0(eResource){ + this.eResource = eResource; +} +; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$DynamicEPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/DynamicEPropertiesHolderImpl', 1377); +function $basicSetEModelElement(this$static, newEModelElement, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newEModelElement, 49), 3, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_5(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 3) { + return this$static.eContainer.eInverseRemove(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getContents(this$static){ + !this$static.contents && (this$static.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this$static, 4)); + return this$static.contents; +} + +function $getEModelElement(this$static){ + if (this$static.eFlags_0 >> 16 != 3) + return null; + return castTo(this$static.eContainer, 147); +} + +function $setEModelElement(this$static, newEModelElement){ + var eContainerFeatureID, msgs; + if (newEModelElement != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newEModelElement) { + if (isAncestor(this$static, newEModelElement)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_27(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newEModelElement && (msgs = castTo(newEModelElement, 49).eInverseAdd(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs)); + msgs = $basicSetEModelElement(this$static, newEModelElement, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newEModelElement, newEModelElement)); +} + +function $setSource_2(this$static, newSource){ + $setSourceGen(this$static, newSource == null?null:(checkCriticalNotNull(newSource) , newSource)); +} + +function $setSourceGen(this$static, newSource){ + var oldSource; + oldSource = this$static.source; + this$static.source = newSource; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldSource, this$static.source)); +} + +function $toString_27(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (source: '; + $append_3(result, this$static.source); + result.string += ')'; + return result.string; +} + +function EAnnotationImpl(){ +} + +defineClass(510, 150, {105:1, 92:1, 90:1, 590:1, 147:1, 56:1, 108:1, 49:1, 97:1, 510:1, 150:1, 114:1, 115:1}, EAnnotationImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_6(msgs){ + return $eBasicRemoveFromContainerFeature_5(this, msgs); +} +; +_.eGet = function eGet_17(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.source; + case 2: + return coreType?(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , this.details):(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $map_1(this.details)); + case 3: + return $getEModelElement(this); + case 4: + return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , this.contents; + case 5: + return !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)) , this.references; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_11(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 3: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetEModelElement(this, castTo(otherEnd, 147), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_12(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 2: + return !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $basicRemove_1(this.details, otherEnd, msgs); + case 3: + return $basicSetEModelElement(this, null, msgs); + case 4: + return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , $basicRemove_0(this.contents, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_16(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.source != null; + case 2: + return !!this.details && this.details.size_0 != 0; + case 3: + return !!$getEModelElement(this); + case 4: + return !!this.contents && this.contents.size_0 != 0; + case 5: + return !!this.references && this.references.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.eSet = function eSet_15(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setSource_2(this, castToString(newValue)); + return; + case 2: + !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); + $set_14(this.details, newValue); + return; + case 3: + $setEModelElement(this, castTo(newValue, 147)); + return; + case 4: + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $clear_13(this.contents); + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $addAll_9(this.contents, castTo(newValue, 14)); + return; + case 5: + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $clear_13(this.references); + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $addAll_9(this.references, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_16(){ + return $clinit_EcorePackage$Literals() , EANNOTATION; +} +; +_.eUnset = function eUnset_15(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setSourceGen(this, null); + return; + case 2: + !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); + this.details.delegateEList.clear_0(); + return; + case 3: + $setEModelElement(this, null); + return; + case 4: + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $clear_13(this.contents); + return; + case 5: + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $clear_13(this.references); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.toString_0 = function toString_144(){ + return $toString_27(this); +} +; +_.source = null; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl', 510); +function $addUnique_7(this$static, index_0, object){ + castTo(this$static.delegateEList, 69).addUnique(index_0, object); +} + +function $basicAdd_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 69).basicAdd(object, notifications); +} + +function $basicRemove_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 69).basicRemove(object, notifications); +} + +function $set_14(this$static, value_0){ + var mapValue; + if (instanceOf(value_0, 83)) { + castTo(this$static.delegateEList, 76).unset(); + mapValue = castTo(value_0, 83); + $putAll_0(this$static, mapValue); + } + else { + castTo(this$static.delegateEList, 76).set_1(value_0); + } +} + +function EcoreEMap(entryEClass, entryClass, owner, featureID){ + this.initializeDelegateEList(); + this.entryClass = entryClass; + this.entryEClass = entryEClass; + this.delegateEList = new EcoreEMap$DelegateEObjectContainmentEList(this, entryClass, owner, featureID); +} + +defineClass(151, 705, $intern_148, EcoreEMap); +_.addUnique = function addUnique_9(index_0, object){ + $addUnique_7(this, index_0, castTo(object, 42)); +} +; +_.basicAdd = function basicAdd(object, notifications){ + return $basicAdd_1(this, castTo(object, 42), notifications); +} +; +_.basicGet = function basicGet_0(index_0){ + return castTo(castTo(this.delegateEList, 69).basicGet(index_0), 133); +} +; +_.basicIterator = function basicIterator_1(){ + return castTo(this.delegateEList, 69).basicIterator(); +} +; +_.basicListIterator = function basicListIterator_3(){ + return castTo(this.delegateEList, 69).basicListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_4(index_0){ + return castTo(this.delegateEList, 69).basicListIterator_0(index_0); +} +; +_.basicRemove = function basicRemove(object, notifications){ + return $basicRemove_1(this, object, notifications); +} +; +_.get_6 = function get_60(resolve){ + return castTo(this.delegateEList, 76).get_6(resolve); +} +; +_.initializeDelegateEList = function initializeDelegateEList_0(){ +} +; +_.isSet_0 = function isSet_2(){ + return castTo(this.delegateEList, 76).isSet_0(); +} +; +_.newEntry = function newEntry_1(hash, key, value_0){ + var entry; + entry = castTo($getEPackage(this.entryEClass).getEFactoryInstance().create_3(this.entryEClass), 133); + entry.setHash(hash); + entry.setKey(key); + entry.setValue(value_0); + return entry; +} +; +_.newList = function newList_0(){ + return new EcoreEMap$1(this); +} +; +_.set_1 = function set_30(value_0){ + $set_14(this, value_0); +} +; +_.unset = function unset_0(){ + castTo(this.delegateEList, 76).unset(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap', 151); +function EAnnotationImpl$1($anonymous0, $anonymous1, $anonymous2){ + EcoreEMap.call(this, $anonymous0, $anonymous1, $anonymous2, 2); +} + +defineClass(158, 151, $intern_148, EAnnotationImpl$1); +_.ensureEntryDataExists = function ensureEntryDataExists_0(){ + var eList, entry, entry$iterator, hash, index_0, result; + if (this.entryData == null) { + result = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); + for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 133); + hash = entry.getHash(); + index_0 = (hash & $intern_0) % result.length; + eList = result[index_0]; + !eList && (eList = result[index_0] = new EcoreEMap$1(this)); + eList.add_2(entry); + } + this.entryData = result; + } +} +; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl/1', 158); +function $basicSetEGenericType(this$static, newEGenericType, msgs){ + var newEType, notification, oldEGenericType; + oldEGenericType = this$static.eGenericType; + this$static.eGenericType = newEGenericType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 9, oldEGenericType, newEGenericType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (!newEGenericType) { + !!this$static.eType && (msgs = this$static.setEType(null, msgs)); + } + else { + newEType = newEGenericType.eRawType; + newEType != this$static.eType && (msgs = this$static.setEType(newEType, msgs)); + } + return msgs; +} + +function $basicUnsetEGenericType(this$static, msgs){ + msgs = this$static.setEType(null, msgs); + return $basicSetEGenericType(this$static, null, msgs); +} + +function $getEType(this$static){ + var oldEType; + if ((this$static.eFlags & 1) == 0 && !!this$static.eType && this$static.eType.eIsProxy()) { + oldEType = castTo(this$static.eType, 49); + this$static.eType = castTo($eResolveProxy(this$static, oldEType), 138); + this$static.eType != oldEType && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldEType, this$static.eType)); + } + return this$static.eType; +} + +function $setEGenericType(this$static, newEGenericType, msgs){ + var notification; + if (newEGenericType != this$static.eGenericType) { + !!this$static.eGenericType && (msgs = $eInverseRemove(this$static.eGenericType, this$static, -10, msgs)); + !!newEGenericType && (msgs = $eInverseAdd(newEGenericType, this$static, -10, msgs)); + msgs = $basicSetEGenericType(this$static, newEGenericType, msgs); + } + else if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 9, newEGenericType, newEGenericType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $setEType(this$static, newEType){ + var eGenericType, msgs, newEGenericType; + msgs = this$static.setEType(newEType, null); + newEGenericType = null; + if (newEType) { + newEGenericType = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(newEGenericType, this$static.eType); + } + msgs = $setEGenericType(this$static, newEGenericType, msgs); + !!msgs && msgs.dispatch_0(); +} + +function $setEType_0(this$static, newEType, msgs){ + var notification, oldEType; + oldEType = this$static.eType; + this$static.eType = newEType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 8, oldEType, this$static.eType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $setLowerBound(this$static, newLowerBound){ + var oldLowerBound; + oldLowerBound = this$static.lowerBound; + this$static.lowerBound = newLowerBound; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 4, oldLowerBound, this$static.lowerBound)); +} + +function $setOrdered(this$static, newOrdered){ + var oldOrdered; + oldOrdered = (this$static.eFlags & 256) != 0; + newOrdered?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 2, oldOrdered, newOrdered)); +} + +function $setUnique_2(this$static, newUnique){ + var oldUnique; + oldUnique = (this$static.eFlags & 512) != 0; + newUnique?(this$static.eFlags |= 512):(this$static.eFlags &= -513); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 3, oldUnique, newUnique)); +} + +function $setUpperBound(this$static, newUpperBound){ + var oldUpperBound; + oldUpperBound = this$static.upperBound; + this$static.upperBound = newUpperBound; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 5, oldUpperBound, this$static.upperBound)); +} + +function $toString_28(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_21(this$static); + result = new StringBuffer_1($toString_21(this$static)); + result.string += ' (ordered: '; + $append_4(result, (this$static.eFlags & 256) != 0); + result.string += ', unique: '; + $append_4(result, (this$static.eFlags & 512) != 0); + result.string += ', lowerBound: '; + $append_1(result, this$static.lowerBound); + result.string += ', upperBound: '; + $append_1(result, this$static.upperBound); + result.string += ')'; + return result.string; +} + +function ETypedElementImpl(){ + this.eFlags |= 256; + this.eFlags |= 512; +} + +defineClass(284, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 472:1, 49:1, 97:1, 150:1, 284:1, 114:1, 115:1}); +_.eGet = function eGet_18(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , this.isMany()?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_13(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_17(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return this.isMany(); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_16(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + this.setName(castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_17(){ + return $clinit_EcorePackage$Literals() , ETYPED_ELEMENT; +} +; +_.eUnset = function eUnset_16(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + this.setName(null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.setUpperBound(1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_1(){ + $getEType(this); + this.eFlags |= 1; +} +; +_.getEType = function getEType(){ + return $getEType(this); +} +; +_.getUpperBound = function getUpperBound(){ + return this.upperBound; +} +; +_.isMany = function isMany(){ + var upper; + return upper = this.upperBound , upper > 1 || upper == -1; +} +; +_.isUnique = function isUnique_2(){ + return (this.eFlags & 512) != 0; +} +; +_.setEType = function setEType(newEType, msgs){ + return $setEType_0(this, newEType, msgs); +} +; +_.setUpperBound = function setUpperBound(newUpperBound){ + $setUpperBound(this, newUpperBound); +} +; +_.toString_0 = function toString_145(){ + return $toString_28(this); +} +; +_.lowerBound = 0; +_.upperBound = 1; +var Lorg_eclipse_emf_ecore_impl_ETypedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypedElementImpl', 284); +function $eBasicRemoveFromContainerFeature_6(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 17) { + return this$static.eContainer.eInverseRemove(this$static, 21, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getDefaultValue(this$static){ + var eDataType, ePackage, eType, factory, literal; + eType = $getEType(this$static); + literal = this$static.defaultValueLiteral; + if (literal == null && !!eType) { + return this$static.isMany()?null:eType.getDefaultValue(); + } + else if (instanceOf(eType, 148)) { + ePackage = eType.getEPackage(); + if (ePackage) { + factory = ePackage.getEFactoryInstance(); + if (factory != this$static.defaultValueFactory) { + eDataType = castTo(eType, 148); + if (eDataType.isSerializable()) { + try { + this$static.defaultValue = factory.createFromString(eDataType, literal); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + this$static.defaultValue = null; + } + else + throw toJs($e0); + } + } + this$static.defaultValueFactory = factory; + } + } + return this$static.defaultValue; + } + return null; +} + +function $getEContainingClass(this$static){ + if (this$static.eFlags_0 >> 16 != 17) + return null; + return castTo(this$static.eContainer, 26); +} + +function $getFeatureMapEntryPrototype(this$static){ + var eOpposite; + if (!this$static.prototypeFeatureMapEntry) { + eOpposite = this$static.getEOpposite(); + eOpposite?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$static, this$static, null)):this$static.isContainment()?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this$static, null)):$getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this$static)) == 1?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleContentFeatureMapEntry(this$static)):(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleFeatureMapEntry(this$static, null)); + } + return this$static.prototypeFeatureMapEntry; +} + +function $isFeatureMap(this$static){ + var eType; + if (this$static.cachedEType != this$static.eType) { + eType = $getEType(this$static); + this$static.cachedIsFeatureMap = !!eType && eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry'; + this$static.cachedEType = eType; + } + return this$static.cachedIsFeatureMap; +} + +function $setChangeable(this$static, newChangeable){ + var oldChangeable; + oldChangeable = (this$static.eFlags & $intern_137) != 0; + newChangeable?(this$static.eFlags |= $intern_137):(this$static.eFlags &= -1025); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 10, oldChangeable, newChangeable)); +} + +function $setDefaultValueLiteral(this$static, newDefaultValueLiteral){ + this$static.defaultValueFactory = null; + $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral); +} + +function $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral){ + var oldDefaultValueLiteral; + oldDefaultValueLiteral = this$static.defaultValueLiteral; + this$static.defaultValueLiteral = newDefaultValueLiteral; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 13, oldDefaultValueLiteral, this$static.defaultValueLiteral)); +} + +function $setDerived(this$static, newDerived){ + var oldDerived; + oldDerived = (this$static.eFlags & $intern_17) != 0; + newDerived?(this$static.eFlags |= $intern_17):(this$static.eFlags &= -16385); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 16, oldDerived, newDerived)); +} + +function $setFeatureID(this$static, featureID){ + this$static.featureID = featureID; +} + +function $setName_0(this$static, newName){ + instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 4); + $setName(this$static, newName); +} + +function $setTransient(this$static, newTransient){ + var oldTransient; + oldTransient = (this$static.eFlags & $intern_61) != 0; + newTransient?(this$static.eFlags |= $intern_61):(this$static.eFlags &= -4097); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 12, oldTransient, newTransient)); +} + +function $setUnsettable(this$static, newUnsettable){ + var oldUnsettable; + oldUnsettable = (this$static.eFlags & $intern_149) != 0; + newUnsettable?(this$static.eFlags |= $intern_149):(this$static.eFlags &= -8193); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 15, oldUnsettable, newUnsettable)); +} + +function $setVolatile(this$static, newVolatile){ + var oldVolatile; + oldVolatile = (this$static.eFlags & $intern_150) != 0; + newVolatile?(this$static.eFlags |= $intern_150):(this$static.eFlags &= -2049); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 11, oldVolatile, newVolatile)); +} + +function $toString_29(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_28(this$static); + result = new StringBuffer_1($toString_28(this$static)); + result.string += ' (changeable: '; + $append_4(result, (this$static.eFlags & $intern_137) != 0); + result.string += ', volatile: '; + $append_4(result, (this$static.eFlags & $intern_150) != 0); + result.string += ', transient: '; + $append_4(result, (this$static.eFlags & $intern_61) != 0); + result.string += ', defaultValueLiteral: '; + $append_3(result, this$static.defaultValueLiteral); + result.string += ', unsettable: '; + $append_4(result, (this$static.eFlags & $intern_149) != 0); + result.string += ', derived: '; + $append_4(result, (this$static.eFlags & $intern_17) != 0); + result.string += ')'; + return result.string; +} + +function EStructuralFeatureImpl(){ + ETypedElementImpl.call(this); + this.featureID = -1; + this.defaultValue = null; + this.defaultValueFactory = null; + this.defaultValueLiteral = null; + this.eFlags |= $intern_137; +} + +defineClass(449, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_7(msgs){ + return $eBasicRemoveFromContainerFeature_6(this, msgs); +} +; +_.eGet = function eGet_19(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , this.isMany()?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_12(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 17: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_6(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 17, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_14(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 17: + return $eBasicSetContainer(this, null, 17, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_18(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return this.isMany(); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_137) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_17(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_18(){ + return $clinit_EcorePackage$Literals() , ESTRUCTURAL_FEATURE; +} +; +_.eUnset = function eUnset_17(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.setUpperBound(1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_2(){ + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.getContainerClass = function getContainerClass(){ + return this.containerClass; +} +; +_.getDefaultValue = function getDefaultValue(){ + return $getDefaultValue(this); +} +; +_.getEContainingClass = function getEContainingClass(){ + return $getEContainingClass(this); +} +; +_.getEOpposite = function getEOpposite(){ + return null; +} +; +_.getExtendedMetaData_0 = function getExtendedMetaData_0(){ + return this.eStructuralFeatureExtendedMetaData; +} +; +_.getFeatureID_0 = function getFeatureID_4(){ + return this.featureID; +} +; +_.getFeatureMapEntryPrototype = function getFeatureMapEntryPrototype(){ + return $getFeatureMapEntryPrototype(this); +} +; +_.getSettingDelegate = function getSettingDelegate(){ + var dataClass, defaultValue, eClass, eOpposite, eType, featureMapFeature, instanceClass, intrinsicDefaultValue, upper; + if (!this.settingDelegate) { + eClass = $getEContainingClass(this); + (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; + eOpposite = this.getEOpposite(); + !!eOpposite && $getFeatureCount($getEContainingClass(eOpposite)); + eType = $getEType(this); + instanceClass = eType.getInstanceClass(); + dataClass = !instanceClass?null:(instanceClass.modifiers & 1) != 0?instanceClass == Z_classLit?Ljava_lang_Boolean_2_classLit:instanceClass == I_classLit?Ljava_lang_Integer_2_classLit:instanceClass == F_classLit?Ljava_lang_Float_2_classLit:instanceClass == D_classLit?Ljava_lang_Double_2_classLit:instanceClass == J_classLit?Ljava_lang_Long_2_classLit:instanceClass == S_classLit?Ljava_lang_Short_2_classLit:instanceClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:instanceClass; + defaultValue = $getDefaultValue(this); + intrinsicDefaultValue = eType.getDefaultValue(); + getSettingDelegateFactory(this); + (this.eFlags & $intern_17) != 0 && (!!(featureMapFeature = $getMixedFeature(($clinit_ExtendedMetaData() , INSTANCE_11), eClass)) && featureMapFeature != this || !!(featureMapFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, this))))?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(this, featureMapFeature)):this.isMany()?this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(42, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(0, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(50, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(43, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(1, dataClass, this)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(44, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(2, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(41, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(45, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(3, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(46, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(4, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(47, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(5, dataClass, this, eOpposite)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(48, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(6, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(49, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(7, dataClass, this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & 512) != 0?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(8, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(9, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(10, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(11, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(12, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(13, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(14, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(15, dataClass, this)):!eOpposite?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(16, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(17, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(18, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(19, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(20, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(21, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(22, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(23, dataClass, this)):(upper = eOpposite.upperBound , upper > 1 || upper == -1?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(24, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(25, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(26, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(27, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(28, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(29, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(30, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(31, dataClass, this, eOpposite)):this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(32, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(33, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(34, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(35, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(36, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(37, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(38, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(39, dataClass, this, eOpposite))):this.isContainer()?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(castTo(eType, 26), this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(castTo(eType, 26), this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(castTo(eType, 26), this, eOpposite)):!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(castTo(eType, 26), this, eOpposite)); + } + return this.settingDelegate; +} +; +_.isChangeable = function isChangeable_0(){ + return (this.eFlags & $intern_137) != 0; +} +; +_.isContainer = function isContainer(){ + return false; +} +; +_.isContainment = function isContainment_0(){ + return false; +} +; +_.isDerived = function isDerived_0(){ + return (this.eFlags & $intern_17) != 0; +} +; +_.isFeatureMap_0 = function isFeatureMap_0(){ + return $isFeatureMap(this); +} +; +_.isResolveProxies_0 = function isResolveProxies_0(){ + return false; +} +; +_.isUnsettable = function isUnsettable_0(){ + return (this.eFlags & $intern_149) != 0; +} +; +_.setExtendedMetaData_0 = function setExtendedMetaData_0(eStructuralFeatureExtendedMetaData){ + this.eStructuralFeatureExtendedMetaData = eStructuralFeatureExtendedMetaData; +} +; +_.setName = function setName_0(newName){ + $setName_0(this, newName); +} +; +_.toString_0 = function toString_146(){ + return $toString_29(this); +} +; +_.cachedIsFeatureMap = false; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl', 449); +function $basicGetEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType) { + eType = this$static.eType; + instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); + } + return this$static.eAttributeType; +} + +function $getEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType || (this$static.eFlags & 1) == 0 && this$static.eAttributeType.eIsProxy()) { + eType = $getEType(this$static); + instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); + } + return this$static.eAttributeType; +} + +function $isMany(this$static){ + var eType, upper; + switch (this$static.effectiveIsMany) { + case -1: + { + return true; + } + + case 0: + { + upper = this$static.upperBound; + if (upper > 1 || upper == -1) { + this$static.effectiveIsMany = -1; + return true; + } + else { + eType = $getEType(this$static); + if (!!eType && ($clinit_FeatureMapUtil() , eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry')) { + this$static.effectiveIsMany = -1; + return true; + } + else { + this$static.effectiveIsMany = 1; + return false; + } + } + } + + default:case 1: + { + return false; + } + + } +} + +function $setID(this$static, newID){ + var oldID; + oldID = (this$static.eFlags & $intern_134) != 0; + newID?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldID, newID)); +} + +function $setUpperBound_0(this$static, upperBound){ + this$static.effectiveIsMany = 0; + $setUpperBound(this$static, upperBound); +} + +function EAttributeImpl(){ + EStructuralFeatureImpl.call(this); +} + +defineClass(322, 449, {105:1, 92:1, 90:1, 34:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 322:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EAttributeImpl); +_.eGet = function eGet_20(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , $isMany(this)?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + case 18: + return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; + case 19: + if (resolve) + return $getEAttributeType(this); + return $basicGetEAttributeType(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_19(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return $isMany(this); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_137) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_134) != 0; + case 19: + return !!$basicGetEAttributeType(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); +} +; +_.eSet = function eSet_18(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + $setUpperBound_0(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + case 18: + $setID(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_19(){ + return $clinit_EcorePackage$Literals() , EATTRIBUTE; +} +; +_.eUnset = function eUnset_18(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.effectiveIsMany = 0; + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + case 18: + $setID(this, false); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); +} +; +_.freeze = function freeze_3(){ + $getEAttributeType(this); + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.isMany = function isMany_0(){ + return $isMany(this); +} +; +_.setEType = function setEType_0(newEType, msgs){ + this.effectiveIsMany = 0; + this.eAttributeType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.setUpperBound = function setUpperBound_0(upperBound){ + $setUpperBound_0(this, upperBound); +} +; +_.toString_0 = function toString_147(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_29(this); + result = new StringBuffer_1($toString_29(this)); + result.string += ' (iD: '; + $append_4(result, (this.eFlags & $intern_134) != 0); + result.string += ')'; + return result.string; +} +; +_.effectiveIsMany = 0; +var Lorg_eclipse_emf_ecore_impl_EAttributeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAttributeImpl', 322); +function $basicGetEPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 235); +} + +function $basicSetInstanceClassName(this$static, value_0){ + if (this$static.instanceClassName == null && this$static.generatedInstanceClassName != null) { + this$static.instanceClassName = this$static.generatedInstanceClassName; + this$static.generatedInstanceClassName = null; + } + $setInstanceClassNameGen(this$static, value_0 == null?null:(checkCriticalNotNull(value_0) , value_0)); + !!this$static.instanceClass && this$static.setInstanceClassGen(null); +} + +function $basicSetInstanceTypeName(this$static, newInstanceTypeName){ + var oldInstanceTypeName; + oldInstanceTypeName = this$static.instanceTypeName; + this$static.instanceTypeName = newInstanceTypeName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); +} + +function $eBasicRemoveFromContainerFeature_7(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 6) { + return this$static.eContainer.eInverseRemove(this$static, 5, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getEPackage(this$static){ + var result; + if (this$static.ePackage) { + return this$static.ePackage; + } + else { + result = $getEPackageGen(this$static); + !!result && !result.eIsProxy() && (this$static.ePackage = result); + return result; + } +} + +function $getEPackageGen(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo($eContainer(this$static), 235); +} + +function $getInstanceClass(this$static){ + var primitiveClass; + if (!this$static.instanceClass && (this$static.instanceClassName != null || this$static.generatedInstanceClassName != null)) { + primitiveClass = $getPrimitiveOrArrayClass(this$static); + if (primitiveClass) { + this$static.setInstanceClassGen(primitiveClass); + } + else { + try { + this$static.setInstanceClassGen(null); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + } + return this$static.instanceClass; +} + +function $getPrimitiveOrArrayClass(this$static){ + var arrayIndex, className, componentClassName, result; + className = this$static.instanceClassName != null?this$static.instanceClassName:this$static.generatedInstanceClassName; + arrayIndex = $indexOf_1(className, fromCodePoint(91)); + if (arrayIndex != -1) { + componentClassName = className.substr(0, arrayIndex); + result = new StringBuffer; + do + result.string += '['; + while ((arrayIndex = $indexOf_0(className, 91, ++arrayIndex)) != -1); + if ($equals_5(componentClassName, 'boolean')) + result.string += 'Z'; + else if ($equals_5(componentClassName, 'byte')) + result.string += 'B'; + else if ($equals_5(componentClassName, 'char')) + result.string += 'C'; + else if ($equals_5(componentClassName, 'double')) + result.string += 'D'; + else if ($equals_5(componentClassName, 'float')) + result.string += 'F'; + else if ($equals_5(componentClassName, 'int')) + result.string += 'I'; + else if ($equals_5(componentClassName, 'long')) + result.string += 'J'; + else if ($equals_5(componentClassName, 'short')) + result.string += 'S'; + else { + result.string += 'L'; + result.string += '' + componentClassName; + result.string += ';'; + } + try { + return null; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + else if ($indexOf_1(className, fromCodePoint(46)) == -1) { + if ($equals_5(className, 'boolean')) + return Z_classLit; + else if ($equals_5(className, 'byte')) + return B_classLit; + else if ($equals_5(className, 'char')) + return C_classLit; + else if ($equals_5(className, 'double')) + return D_classLit; + else if ($equals_5(className, 'float')) + return F_classLit; + else if ($equals_5(className, 'int')) + return I_classLit; + else if ($equals_5(className, 'long')) + return J_classLit; + else if ($equals_5(className, 'short')) + return S_classLit; + } + return null; +} + +function $isInstance(this$static, object){ + var helper, instanceClass; + if (object != null) { + instanceClass = $getInstanceClass(this$static); + if (instanceClass) { + if ((instanceClass.modifiers & 1) != 0) { + if (instanceClass == Z_classLit) { + return instanceOfBoolean(object); + } + else if (instanceClass == I_classLit) { + return instanceOf(object, 19); + } + else if (instanceClass == F_classLit) { + return instanceOf(object, 155); + } + else if (instanceClass == B_classLit) { + return instanceOf(object, 217); + } + else if (instanceClass == C_classLit) { + return instanceOf(object, 172); + } + else if (instanceClass == D_classLit) { + return instanceOfDouble(object); + } + else if (instanceClass == S_classLit) { + return instanceOf(object, 184); + } + else if (instanceClass == J_classLit) { + return instanceOf(object, 162); + } + } + else { + return $clinit_Reflect() , helper = castTo($get_10(HELPER_REGISTRY, instanceClass), 55) , !helper || helper.isInstance(object); + } + } + else if (instanceOf(object, 56)) { + return this$static.dynamicIsInstance(castTo(object, 56)); + } + } + return false; +} + +function $setGeneratedInstanceClass(this$static, isGenerated){ + if (isGenerated) { + if (this$static.generatedInstanceClassName == null) { + this$static.generatedInstanceClassName = this$static.instanceClassName; + this$static.instanceClassName = null; + } + } + else if (this$static.generatedInstanceClassName != null) { + this$static.instanceClassName = this$static.generatedInstanceClassName; + this$static.generatedInstanceClassName = null; + } +} + +function $setInstanceClass(this$static, value_0){ + var component, indices, name_0; + if (!value_0) { + $setInstanceClassNameGen(this$static, null); + $basicSetInstanceTypeName(this$static, null); + } + else if ((value_0.modifiers & 4) != 0) { + indices = '[]'; + for (component = value_0.componentType;; component = component.componentType) { + if ((component.modifiers & 4) == 0) { + name_0 = $intern(($ensureNamesAreInitialized(component) , component.typeName + indices)); + $setInstanceClassNameGen(this$static, name_0); + $basicSetInstanceTypeName(this$static, name_0); + break; + } + indices += '[]'; + } + } + else { + name_0 = $intern(($ensureNamesAreInitialized(value_0) , value_0.typeName)); + $setInstanceClassNameGen(this$static, name_0); + $basicSetInstanceTypeName(this$static, name_0); + } + this$static.setInstanceClassGen(value_0); +} + +function $setInstanceClassName(this$static, value_0){ + $basicSetInstanceClassName(this$static, value_0); + $basicSetInstanceTypeName(this$static, this$static.instanceClassName); +} + +function $setInstanceClassNameGen(this$static, newInstanceClassName){ + var oldInstanceClassName; + oldInstanceClassName = this$static.instanceClassName; + this$static.instanceClassName = newInstanceClassName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldInstanceClassName, this$static.instanceClassName)); +} + +function $setInstanceTypeName(this$static, newInstanceTypeName){ + var end, index_0, newInstanceClassName, oldInstanceTypeName; + oldInstanceTypeName = this$static.instanceTypeName; + if (newInstanceTypeName == null) { + this$static.instanceTypeName = null; + $basicSetInstanceClassName(this$static, null); + } + else { + this$static.instanceTypeName = (checkCriticalNotNull(newInstanceTypeName) , newInstanceTypeName); + index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(60)); + if (index_0 != -1) { + newInstanceClassName = newInstanceTypeName.substr(0, index_0); + $indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1 && !$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short') && (newInstanceClassName = 'java.lang.Object'); + end = $lastIndexOf(newInstanceTypeName, fromCodePoint(62)); + end != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(end + 1)); + $basicSetInstanceClassName(this$static, newInstanceClassName); + } + else { + newInstanceClassName = newInstanceTypeName; + if ($indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1) { + index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(91)); + index_0 != -1 && (newInstanceClassName = newInstanceTypeName.substr(0, index_0)); + if (!$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short')) { + newInstanceClassName = 'java.lang.Object'; + index_0 != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(index_0)); + } + else { + newInstanceClassName = newInstanceTypeName; + } + } + $basicSetInstanceClassName(this$static, newInstanceClassName); + newInstanceClassName == newInstanceTypeName && (this$static.instanceTypeName = this$static.instanceClassName); + } + } + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); +} + +function $setName_1(this$static, newName){ + instanceOf(this$static.eContainer, 179) && (castTo(this$static.eContainer, 179).eNameToEClassifierMap = null); + $setName(this$static, newName); +} + +function $toString_30(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_21(this$static); + result = new StringBuffer_1($toString_21(this$static)); + result.string += ' (instanceClassName: '; + $append_3(result, this$static.instanceClassName); + result.string += ')'; + return result.string; +} + +defineClass(351, 438, {105:1, 92:1, 90:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}); +_.dynamicIsInstance = function dynamicIsInstance(eObject){ + return eObject.eClass_0() == this; +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_8(msgs){ + return $eBasicRemoveFromContainerFeature_7(this, msgs); +} +; +_.eBasicSetContainer = function eBasicSetContainer_5(newContainer, newContainerFeatureID){ + this.ePackage = null; + this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; + this.eContainer = newContainer; +} +; +_.eGet = function eGet_21(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return this.getDefaultValue(); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_13(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_15(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_20(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return this.getDefaultValue() != null; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_19(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_20(){ + return $clinit_EcorePackage$Literals() , ECLASSIFIER; +} +; +_.eUnset = function eUnset_19(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getClassifierID = function getClassifierID(){ + var ePackage; + return this.metaObjectID == -1 && (this.metaObjectID = (ePackage = $getEPackage(this) , ePackage?$indexOf_6(ePackage.getEClassifiers(), this):-1)) , this.metaObjectID; +} +; +_.getDefaultValue = function getDefaultValue_0(){ + return null; +} +; +_.getEPackage = function getEPackage(){ + return $getEPackage(this); +} +; +_.getExtendedMetaData_1 = function getExtendedMetaData_1(){ + return this.eClassifierExtendedMetaData; +} +; +_.getInstanceClass = function getInstanceClass(){ + return $getInstanceClass(this); +} +; +_.getInstanceClassName = function getInstanceClassName(){ + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; +} +; +_.getInstanceTypeName = function getInstanceTypeName(){ + return this.instanceTypeName; +} +; +_.isInstance = function isInstance_0(object){ + return $isInstance(this, object); +} +; +_.setExtendedMetaData_1 = function setExtendedMetaData_1(eClassifierExtendedMetaData){ + this.eClassifierExtendedMetaData = eClassifierExtendedMetaData; +} +; +_.setGeneratedInstanceClass = function setGeneratedInstanceClass(isGenerated){ + $setGeneratedInstanceClass(this, isGenerated); +} +; +_.setInstanceClassGen = function setInstanceClassGen(newInstanceClass){ + this.instanceClass = newInstanceClass; +} +; +_.setName = function setName_1(newName){ + $setName_1(this, newName); +} +; +_.toString_0 = function toString_148(){ + return $toString_30(this); +} +; +_.instanceClass = null; +_.instanceClassName = null; +_.metaObjectID = -1; +var Lorg_eclipse_emf_ecore_impl_EClassifierImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassifierImpl', 351); +function $clinit_EClassImpl(){ + $clinit_EClassImpl = emptyMethod; + COMPUTATION_IN_PROGRESS = new EClassImpl$MyHashSet; + NO_EALL_STRUCTURE_FEATURES_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, []); + NO_EALL_OPERATIONS_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, 1), $intern_152, 59, 0, []); +} + +function $getEAllAttributes(this$static){ + var attributes, computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, result; + if (!this$static.eAllAttributes) { + this$static.eIDAttribute = null; + result = new EClassImpl$2(this$static); + attributes = new EClassImpl$3; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllAttributes(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); + instanceOf(eStructuralFeature, 322) && $add_21(attributes, castTo(eStructuralFeature, 34)); + } + $shrink_0(attributes); + this$static.eAttributes = new EClassImpl$4(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 7), 18) , attributes.size_0), attributes.data_0); + $addAll_9(result, this$static.eAttributes); + $shrink_0(result); + this$static.eAllAttributes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -2; + } + return this$static.eAllAttributes; +} + +function $getEAllContainments(this$static){ + var eReference, eReference$iterator, result; + if (!this$static.eAllContainments) { + result = new EClassImpl$7; + for (eReference$iterator = new AbstractEList$NonResolvingEIterator($getEAllReferences(this$static)); eReference$iterator.cursor != eReference$iterator.this$01_2.size_1();) { + eReference = castTo($doNext_0(eReference$iterator), 18); + (eReference.eFlags & $intern_134) != 0 && $add_21(result, eReference); + } + $shrink_0(result); + this$static.eAllContainments = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 8), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -9; + } + return this$static.eAllContainments; +} + +function $getEAllGenericSuperTypes(this$static){ + var computationInProgress, eGenericSuperType, eGenericSuperType$iterator, eSuperType, old, result; + if (!this$static.eAllGenericSuperTypes) { + result = new EClassImpl$1EGenericSuperTypeEList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eGenericSuperType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this$static)); eGenericSuperType$iterator.cursor != eGenericSuperType$iterator.this$01_2.size_1();) { + eGenericSuperType = castTo($doNext(eGenericSuperType$iterator), 87); + eSuperType = $getERawType(eGenericSuperType); + instanceOf(eSuperType, 88) && $addAll_9(result, $getEAllGenericSuperTypes(castTo(eSuperType, 26))); + $add_21(result, eGenericSuperType); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + $eliminateEquivalentDuplicates(result); + $shrink_0(result); + this$static.eAllGenericSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 15), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -33; + } + return this$static.eAllGenericSuperTypes; +} + +function $getEAllOperations(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, i, old, operationID, result; + if (!this$static.eAllOperations) { + result = new EClassImpl$6; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllOperations(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + operationID = result.size_0; + for (i = (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , new AbstractEList$EIterator(this$static.eOperations)); i.cursor != i.this$01_2.size_1(); ++operationID) { + castTo($doNext(i), 399); + } + $addAll_9(result, (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , this$static.eOperations)); + $shrink_0(result); + this$static.eAllOperations = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 9), 18) , result.size_0), result.data_0); + this$static.eAllOperationsData = castTo(result.data_0, 673); + this$static.eAllOperationsData == null && (this$static.eAllOperationsData = NO_EALL_OPERATIONS_DATA); + $getESuperAdapter(this$static).modifiedState &= -17; + } + return this$static.eAllOperations; +} + +function $getEAllReferences(this$static){ + var computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, references, result; + if (!this$static.eAllReferences) { + result = new EClassImpl$1ReferenceList; + references = new EClassImpl$1ReferenceList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllReferences(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); + instanceOf(eStructuralFeature, 99) && $add_21(references, castTo(eStructuralFeature, 18)); + } + $shrink_0(references); + this$static.eReferences = new EClassImpl$5(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 6), 18) , references.size_0), references.data_0); + $addAll_9(result, this$static.eReferences); + $shrink_0(result); + this$static.eAllReferences = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -3; + } + return this$static.eAllReferences; +} + +function $getEAllStructuralFeatures(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, featureID, i, old, result; + if (!this$static.eAllStructuralFeatures) { + result = new EClassImpl$1EStructuralFeatureUniqueEList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllStructuralFeatures(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + featureID = result.size_0; + for (i = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); i.cursor != i.this$01_2.size_1(); ++featureID) { + $setFeatureID(castTo($doNext(i), 449), featureID); + } + $addAll_9(result, (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , this$static.eStructuralFeatures)); + $shrink_0(result); + this$static.eAllStructuralFeatures = new EClassImpl$1EAllStructuralFeaturesList(this$static, result); + this$static.eAllStructuralFeaturesData = castTo(result.data_0, 247); + this$static.eAllStructuralFeaturesData == null && (this$static.eAllStructuralFeaturesData = NO_EALL_STRUCTURE_FEATURES_DATA); + this$static.eNameToFeatureMap = null; + $getESuperAdapter(this$static).modifiedState &= -5; + } + return this$static.eAllStructuralFeatures; +} + +function $getEAllSuperTypes(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, higherSupers, old, result; + if (!this$static.eAllSuperTypes) { + result = new EClassImpl$9; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + higherSupers = $getEAllSuperTypes(eSuperType); + $addAll_9(result, higherSupers); + $add_21(result, eSuperType); + } + computationInProgress.map_0.remove_0(this$static) != null; + } + $shrink_0(result); + this$static.eAllSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 11), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -33; + } + return this$static.eAllSuperTypes; +} + +function $getEGenericSuperTypes(this$static){ + if (!this$static.eGenericSuperTypes) { + $getESuperAdapter(this$static); + this$static.eGenericSuperTypes = new EClassImpl$1(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); + $getESuperTypes(this$static); + } + return this$static.eGenericSuperTypes; +} + +function $getEOperations(this$static){ + !this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)); + return this$static.eOperations; +} + +function $getEStructuralFeature(this$static, featureID){ + var eAllStructuralFeaturesData; + eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); + return featureID >= 0 && featureID < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[featureID]:null; +} + +function $getEStructuralFeature_0(this$static, name_0){ + var duplicate, eStructuralFeature, eStructuralFeature$iterator, key, result; + (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; + if (!this$static.eNameToFeatureMap) { + result = new HashMap_0((3 * this$static.eAllStructuralFeatures.size_0 / 2 | 0) + 1); + for (eStructuralFeature$iterator = new AbstractEList$NonResolvingEIterator(this$static.eAllStructuralFeatures); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext_0(eStructuralFeature$iterator), 170); + key = eStructuralFeature.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eStructuralFeature):$put_10(result.stringMap, key, eStructuralFeature), 170); + !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); + } + this$static.eNameToFeatureMap = result; + } + return castTo($getStringValue(this$static.eNameToFeatureMap, name_0), 170); +} + +function $getEStructuralFeatures(this$static){ + !this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)); + return this$static.eStructuralFeatures; +} + +function $getESuperAdapter(this$static){ + if (!this$static.eSuperAdapter) { + this$static.eSuperAdapter = new EClassImpl$10(this$static); + $add_20(new MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$static), 0, this$static.eSuperAdapter); + } + return this$static.eSuperAdapter; +} + +function $getESuperTypes(this$static){ + if (!this$static.eSuperTypes) { + $getESuperAdapter(this$static); + this$static.eSuperTypes = new EClassImpl$8(this$static, this$static); + } + return this$static.eSuperTypes; +} + +function $getFeatureCount(this$static){ + return (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; +} + +function $getFeatureID(this$static, feature){ + var eAllStructuralFeaturesData, index_0, last; + eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); + index_0 = feature.getFeatureID_0(); + if (index_0 != -1) { + for (last = eAllStructuralFeaturesData.length; index_0 < last; ++index_0) { + if (eAllStructuralFeaturesData[index_0] == feature) { + return index_0; + } + } + } + return -1; +} + +function $isSetESuperTypes(this$static){ + return !!this$static.eSuperTypes && $getEGenericSuperTypes(this$static.eSuperTypes.this$01).size_0 != 0 && !(!!this$static.eGenericSuperTypes && $isSet(this$static.eGenericSuperTypes)); +} + +function $isSuperTypeOf(this$static, someClass){ + return someClass == this$static || $contains_10($getEAllSuperTypes(someClass), this$static); +} + +function $setAbstract(this$static, newAbstract){ + var oldAbstract; + oldAbstract = (this$static.eFlags & 256) != 0; + newAbstract?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldAbstract, newAbstract)); +} + +function $setInterface(this$static, newInterface){ + var oldInterface; + oldInterface = (this$static.eFlags & 512) != 0; + newInterface?(this$static.eFlags |= 512):(this$static.eFlags &= -513); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 9, oldInterface, newInterface)); +} + +function $toString_31(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_30(this$static); + result = new StringBuffer_1($toString_30(this$static)); + result.string += ' (abstract: '; + $append_4(result, (this$static.eFlags & 256) != 0); + result.string += ', interface: '; + $append_4(result, (this$static.eFlags & 512) != 0); + result.string += ')'; + return result.string; +} + +function EClassImpl(){ + $clinit_EClassImpl(); +} + +defineClass(88, 351, {105:1, 92:1, 90:1, 26:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 88:1, 351:1, 150:1, 473:1, 114:1, 115:1, 676:1}, EClassImpl); +_.dynamicIsInstance = function dynamicIsInstance_0(eObject){ + return $isSuperTypeOf(this, eObject.eClass_0()); +} +; +_.eGet = function eGet_22(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return null; + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 9: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 10: + return $getESuperTypes(this); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , this.eOperations; + case 12: + return $getEAllAttributes(this); + case 13: + return $getEAllReferences(this); + case 14: + return $getEAllReferences(this) , this.eReferences; + case 15: + return $getEAllAttributes(this) , this.eAttributes; + case 16: + return $getEAllContainments(this); + case 17: + return $getEAllOperations(this); + case 18: + return $getEAllStructuralFeatures(this); + case 19: + return $getEAllSuperTypes(this); + case 20: + return $getEAllAttributes(this) , this.eIDAttribute; + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , this.eStructuralFeatures; + case 22: + return $getEGenericSuperTypes(this); + case 23: + return $getEAllGenericSuperTypes(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_14(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicAdd_0(this.eOperations, otherEnd, msgs); + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicAdd_0(this.eStructuralFeatures, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_16(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicRemove_0(this.eOperations, otherEnd, msgs); + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicRemove_0(this.eStructuralFeatures, otherEnd, msgs); + case 22: + return $basicRemove_0($getEGenericSuperTypes(this), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_21(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return false; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) != 0; + case 9: + return (this.eFlags & 512) != 0; + case 10: + return !!this.eSuperTypes && $getEGenericSuperTypes(this.eSuperTypes.this$01).size_0 != 0 && !(!!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes)); + case 11: + return !!this.eOperations && this.eOperations.size_0 != 0; + case 12: + return $getEAllAttributes(this).size_0 != 0; + case 13: + return $getEAllReferences(this).size_0 != 0; + case 14: + return $getEAllReferences(this) , this.eReferences.size_0 != 0; + case 15: + return $getEAllAttributes(this) , this.eAttributes.size_0 != 0; + case 16: + return $getEAllContainments(this).size_0 != 0; + case 17: + return $getEAllOperations(this).size_0 != 0; + case 18: + return $getEAllStructuralFeatures(this).size_0 != 0; + case 19: + return $getEAllSuperTypes(this).size_0 != 0; + case 20: + return $getEAllAttributes(this) , !!this.eIDAttribute; + case 21: + return !!this.eStructuralFeatures && this.eStructuralFeatures.size_0 != 0; + case 22: + return !!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes); + case 23: + return $getEAllGenericSuperTypes(this).size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_2(uriFragmentSegment){ + var result; + result = this.eAllStructuralFeaturesData == null || !!this.eOperations && this.eOperations.size_0 != 0?null:$getEStructuralFeature_0(this, uriFragmentSegment); + return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_20(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 8: + $setAbstract(this, $booleanValue(castToBoolean(newValue))); + return; + case 9: + $setInterface(this, $booleanValue(castToBoolean(newValue))); + return; + case 10: + $clear_12($getESuperTypes(this)); + $addAll_9($getESuperTypes(this), castTo(newValue, 14)); + return; + case 11: + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $clear_13(this.eOperations); + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $addAll_9(this.eOperations, castTo(newValue, 14)); + return; + case 21: + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $clear_13(this.eStructuralFeatures); + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $addAll_9(this.eStructuralFeatures, castTo(newValue, 14)); + return; + case 22: + $clear_13($getEGenericSuperTypes(this)); + $addAll_9($getEGenericSuperTypes(this), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_21(){ + return $clinit_EcorePackage$Literals() , ECLASS; +} +; +_.eUnset = function eUnset_20(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setAbstract(this, false); + return; + case 9: + $setInterface(this, false); + return; + case 10: + !!this.eSuperTypes && $clear_12(this.eSuperTypes); + return; + case 11: + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $clear_13(this.eOperations); + return; + case 21: + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $clear_13(this.eStructuralFeatures); + return; + case 22: + !!this.eGenericSuperTypes && $clear_13(this.eGenericSuperTypes); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); +} +; +_.freeze = function freeze_4(){ + var i, size_0; + $getEAllAttributes(this); + $getEAllReferences(this); + $getEAllContainments(this); + $getEAllOperations(this); + $getEAllStructuralFeatures(this); + $getEAllSuperTypes(this); + $getEAllGenericSuperTypes(this); + $clear_11($getSubclasses($getESuperAdapter(this))); + if (this.eStructuralFeatures) { + for (i = 0 , size_0 = this.eStructuralFeatures.size_0; i < size_0; ++i) { + $freeze($get_20(this.eStructuralFeatures, i)); + } + } + if (this.eOperations) { + for (i = 0 , size_0 = this.eOperations.size_0; i < size_0; ++i) { + $freeze($get_20(this.eOperations, i)); + } + } + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.toString_0 = function toString_149(){ + return $toString_31(this); +} +; +_.eAttributes = null; +_.eReferences = null; +var COMPUTATION_IN_PROGRESS, NO_EALL_OPERATIONS_DATA, NO_EALL_STRUCTURE_FEATURES_DATA; +var Lorg_eclipse_emf_ecore_impl_EClassImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl', 88); +defineClass(1994, 1993, $intern_153); +_.addAllUnique = function addAllUnique_9(index_0, collection){ + return $addAllUnique_3(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_10(collection){ + return $addAllUnique_3(this, this.size_0, collection); +} +; +_.addUnique = function addUnique_10(index_0, object){ + $addUnique_5(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_11(object){ + $addUnique_6(this, object); +} +; +_.basicAdd = function basicAdd_0(object, notifications){ + return $basicAdd_0(this, object, notifications); +} +; +_.basicGet = function basicGet_1(index_0){ + return $basicGet(this, index_0); +} +; +_.basicRemove = function basicRemove_0(object, notifications){ + return $basicRemove_0(this, object, notifications); +} +; +_.setUnique = function setUnique_4(index_0, object){ + return $setUnique_1(this, index_0, object); +} +; +_.basicIterator = function basicIterator_2(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_5(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_6(index_0){ + return $basicListIterator(this, index_0); +} +; +var Lorg_eclipse_emf_ecore_util_NotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'NotifyingInternalEListImpl', 1994); +function $contains_11(this$static, object){ + var containedEObject, eContainer, eObject, i, opposite, result, result0; + if (this$static.isEObject()) { + if (this$static.size_0 > 4) { + if (this$static.isInstance(object)) { + if (this$static.isContainment()) { + eObject = castTo(object, 49); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this$static.owner && (this$static.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), this$static.getInverseFeatureClass()) == this$static.getInverseFeatureID():-1 - eObject.eContainerFeatureID_0() == this$static.getFeatureID_0()); + if (this$static.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { + for (i = 0; i < this$static.size_0; ++i) { + containedEObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this$static.hasNavigableInverse() && !this$static.hasManyInverse()) { + opposite = castTo(object, 56).eGet_0($getEOpposite(castTo(this$static.getEStructuralFeature(), 18))); + if (maskUndefined(opposite) === maskUndefined(this$static.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { + return false; + } + } + } + else { + return false; + } + } + result = $contains_10(this$static, object); + if (this$static.hasProxies() && !result) { + for (i = 0; i < this$static.size_0; ++i) { + eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return true; + } + } + } + return result; + } + else { + return $contains_10(this$static, object); + } +} + +function $createNotification(this$static, eventType, oldObject, newObject, index_0, wasSet){ + return new ENotificationImpl_3(this$static.owner, eventType, this$static.getFeatureID_0(), oldObject, newObject, index_0, wasSet); +} + +function $dispatchNotification(this$static, notification){ + $eNotify(this$static.owner, notification); +} + +function $indexOf_6(this$static, object){ + var eObject, i, index_0; + index_0 = $indexOf_4(this$static, object); + if (index_0 >= 0) + return index_0; + if (this$static.isEObject()) { + for (i = 0; i < this$static.size_0; ++i) { + eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} + +function $resolve(this$static, index_0, eObject){ + var element, notificationChain, oldElement, oldObject, resolved, resolvedElement; + resolved = this$static.resolveProxy(eObject); + if (resolved != eObject) { + oldObject = this$static.data_0[index_0]; + resolvedElement = resolved; + $assign(this$static, index_0, this$static.validate(index_0, resolvedElement)); + oldElement = oldObject; + this$static.didSet(index_0, resolvedElement, oldElement); + if (this$static.isContainment()) { + element = eObject; + notificationChain = this$static.inverseRemove(element, null); + !castTo(resolved, 49).eInternalContainer() && (notificationChain = this$static.inverseAdd(resolvedElement, notificationChain)); + !!notificationChain && notificationChain.dispatch_0(); + } + $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, this$static.createNotification(9, eObject, resolved, index_0, false)); + return resolved; + } + else { + return eObject; + } +} + +function $set_15(this$static, newValue){ + $clear_13(this$static); + this$static.addAll(castTo(newValue, 15)); +} + +function $toArray_11(this$static){ + var i; + if (this$static.hasProxies()) { + for (i = this$static.size_0 - 1; i >= 0; --i) { + $get_20(this$static, i); + } + } + return $toArray_9(this$static); +} + +function $validate_0(this$static, index_0, object){ + $validate(this$static, object); + if (!this$static.hasInstanceClass() && object != null && !this$static.isInstance(object)) { + throw toJs(new ArrayStoreException); + } + return object; +} + +function EcoreEList(dataClass, owner){ + this.dataClass = dataClass; + this.owner = owner; +} + +defineClass(622, 1994, $intern_154); +_.contains = function contains_63(object){ + return $contains_11(this, object); +} +; +_.createNotification = function createNotification_1(eventType, oldObject, newObject, index_0, wasSet){ + return $createNotification(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_1(notification){ + $dispatchNotification(this, notification); +} +; +_.get_6 = function get_61(resolve){ + return this; +} +; +_.getEStructuralFeature = function getEStructuralFeature_0(){ + return $getEStructuralFeature(this.owner.eClass_0(), this.getFeatureID_0()); +} +; +_.getFeature = function getFeature_4(){ + return this.getEStructuralFeature(); +} +; +_.getFeatureID_0 = function getFeatureID_5(){ + return $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()); +} +; +_.getInverseFeatureClass = function getInverseFeatureClass(){ + return castTo(this.getEStructuralFeature().getEType(), 26).getInstanceClass(); +} +; +_.getInverseFeatureID = function getInverseFeatureID(){ + return $getEOpposite(castTo(this.getEStructuralFeature(), 18)).featureID; +} +; +_.getNotifier = function getNotifier_4(){ + return this.owner; +} +; +_.hasInstanceClass = function hasInstanceClass(){ + return true; +} +; +_.hasManyInverse = function hasManyInverse(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse(){ + return false; +} +; +_.hasProxies = function hasProxies(){ + return false; +} +; +_.indexOf_0 = function indexOf_15(object){ + return $indexOf_6(this, object); +} +; +_.inverseAdd = function inverseAdd_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.isContainment = function isContainment_1(){ + return false; +} +; +_.isEObject = function isEObject(){ + return true; +} +; +_.isInstance = function isInstance_1(object){ + return isInstance(this.dataClass, object); +} +; +_.isNotificationRequired = function isNotificationRequired_1(){ + return $eNotificationRequired(this.owner); +} +; +_.isSet_0 = function isSet_3(){ + return this.size_0 != 0; +} +; +_.newData = function newData_3(capacity){ + return newInstance_11(this.dataClass, capacity); +} +; +_.resolve = function resolve_1(index_0, object){ + return this.isEObject() && this.hasProxies()?$resolve(this, index_0, castTo(object, 56)):object; +} +; +_.resolveProxy = function resolveProxy(eObject){ + return eObject.eIsProxy()?$eResolveProxy(this.owner, castTo(eObject, 49)):eObject; +} +; +_.set_1 = function set_31(newValue){ + $set_15(this, newValue); +} +; +_.toArray = function toArray_38(){ + return $toArray_11(this); +} +; +_.toArray_0 = function toArray_39(array){ + var i; + if (this.hasProxies()) { + for (i = this.size_0 - 1; i >= 0; --i) { + $get_20(this, i); + } + } + return $toArray_10(this, array); +} +; +_.unset = function unset_1(){ + $clear_13(this); +} +; +_.validate = function validate_0(index_0, object){ + return $validate_0(this, index_0, object); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList', 622); +function EObjectEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(496, 622, $intern_154, EObjectEList); +_.canContainNull = function canContainNull_2(){ + return false; +} +; +_.getFeatureID_0 = function getFeatureID_6(){ + return this.featureID; +} +; +_.hasInverse = function hasInverse_1(){ + return false; +} +; +_.isEObject = function isEObject_0(){ + return true; +} +; +_.isUnique = function isUnique_3(){ + return true; +} +; +_.resolve = function resolve_2(index_0, object){ + return object; +} +; +_.useEquals = function useEquals_1(){ + return false; +} +; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList', 496); +function EObjectContainmentEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(85, 496, $intern_154, EObjectContainmentEList); +_.hasInverse = function hasInverse_2(){ + return true; +} +; +_.hasNavigableInverse = function hasNavigableInverse_0(){ + return false; +} +; +_.isContainment = function isContainment_2(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList', 85); +function EObjectContainmentEList$Unsettable(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(545, 85, $intern_154, EObjectContainmentEList$Unsettable); +_.didChange = function didChange_0(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_4(){ + return this.isSet; +} +; +_.unset = function unset_2(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable', 545); +function $isSet(this$static){ + var eGenericType, eGenericType$iterator; + for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { + return true; + } + } + return false; +} + +function $shadowAdd(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 3, 10, null, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowRemove(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 4, 10, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), null, $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowSet(this$static, oldEGenericType, newEGenericType, notifications){ + var notification, result, result0; + notification = new ENotificationImpl_3(this$static.owner, 1, 10, (result0 = oldEGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT)), (result = newEGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, oldEGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function EClassImpl$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 22); +} + +defineClass(1140, 545, $intern_154, EClassImpl$1); +_.move = function move_14(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , ECLASS__ESUPER_TYPES), valueOf_4(sourceIndex), (result = result0.eRawType , instanceOf(result, 88)?castTo(result, 26):EOBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_0(eGenericType, notifications){ + return $shadowAdd(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowRemove = function shadowRemove_0(eGenericType, notifications){ + return $shadowRemove(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowSet = function shadowSet_0(oldEGenericType, newEGenericType, notifications){ + return $shadowSet(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); +} +; +_.createNotification = function createNotification_2(eventType, oldObject, newObject, index_0, wasSet){ + switch (eventType) { + case 3: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); + } + + case 5: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); + } + + default:{ + return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); + } + + } +} +; +_.hasShadow = function hasShadow_0(){ + return true; +} +; +_.isSet_0 = function isSet_5(){ + return $isSet(this); +} +; +_.unset = function unset_3(){ + $clear_13(this); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1', 1140); +function $getSubclasses(this$static){ + !this$static.subclasses && (this$static.subclasses = new ESuperAdapter$1); + return this$static.subclasses; +} + +function $setFlags(this$static, featureId){ + var eSuperAdapter, i, oldModifiedState, subclass; + oldModifiedState = this$static.modifiedState; + switch (featureId) { + case 1: + { + this$static.modifiedState |= 1; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 2: + { + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 4: + { + this$static.modifiedState |= 1; + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 3: + { + this$static.modifiedState |= 16; + this$static.modifiedState |= 8; + break; + } + + case 0: + { + this$static.modifiedState |= 32; + this$static.modifiedState |= 16; + this$static.modifiedState |= 8; + this$static.modifiedState |= 1; + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + break; + } + + } + if (this$static.modifiedState != oldModifiedState && !!this$static.subclasses) { + for (i = new AbstractEList$EIterator(this$static.subclasses); i.cursor != i.this$01_2.size_1();) { + subclass = castTo($doNext(i), 473); + eSuperAdapter = $getESuperAdapter(subclass); + $setFlags_0(eSuperAdapter, featureId); + } + } +} + +function getFeatureID_7(notification){ + var featureID; + featureID = notification.getFeatureID(null); + switch (featureID) { + case 10: + return 0; + case 15: + return 1; + case 14: + return 2; + case 11: + return 3; + case 21: + return 4; + } + return -1; +} + +defineClass(1154, 1153, $intern_140); +_.notifyChanged = function notifyChanged_0(notification){ + var eSuperAdapter, eventType, featureID, holder, i, newValue, oldValue; + eventType = notification.getEventType(); + if (eventType != 8) { + featureID = getFeatureID_7(notification); + if (featureID == 0) { + switch (eventType) { + case 1: + case 9: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + eSuperAdapter = $getESuperAdapter(castTo(oldValue, 473)); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + break; + } + + case 3: + { + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + break; + } + + case 5: + { + newValue = notification.getNewValue(); + if (newValue != null) { + for (i = castTo(newValue, 14).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + } + break; + } + + case 4: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + holder = castTo(oldValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + } + break; + } + + case 6: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + for (i = castTo(oldValue, 14).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + } + } + break; + } + + } + } + this.setFlags(featureID); + } +} +; +_.setFlags = function setFlags(featureId){ + $setFlags(this, featureId); +} +; +_.modifiedState = 63; +var Lorg_eclipse_emf_ecore_impl_ESuperAdapter_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter', 1154); +function $setFlags_0(this$static, featureId){ + $setFlags(this$static, featureId); + (this$static.modifiedState & 1) != 0 && (this$static.this$01.eAllAttributes = null); + (this$static.modifiedState & 2) != 0 && (this$static.this$01.eAllReferences = null); + if ((this$static.modifiedState & 4) != 0) { + this$static.this$01.eAllStructuralFeatures = null; + this$static.this$01.eAllStructuralFeaturesData = null; + } + if ((this$static.modifiedState & 16) != 0) { + this$static.this$01.eAllOperations = null; + this$static.this$01.eAllOperationsData = null; + } + (this$static.modifiedState & 8) != 0 && (this$static.this$01.eAllContainments = null); + if ((this$static.modifiedState & 32) != 0) { + this$static.this$01.eAllSuperTypes = null; + this$static.this$01.eAllGenericSuperTypes = null; + } +} + +function EClassImpl$10(this$0){ + this.this$01 = this$0; +} + +defineClass(1155, 1154, $intern_140, EClassImpl$10); +_.setFlags = function setFlags_0(featureId){ + $setFlags_0(this, featureId); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/10', 1155); +defineClass(1144, 696, $intern_154); +_.addAllUnique = function addAllUnique_11(index_0, collection){ + return $addAllUnique(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_12(collection){ + return $addAllUnique_0(this, collection); +} +; +_.addUnique = function addUnique_12(index_0, object){ + $addUnique(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_13(object){ + $addUnique_0(this, object); +} +; +_.basicGet = function basicGet_2(index_0){ + return $basicGet(this, index_0); +} +; +_.setUnique = function setUnique_5(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.basicAdd = function basicAdd_1(object, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.basicIterator = function basicIterator_3(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_7(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_8(index_0){ + return $basicListIterator(this, index_0); +} +; +_.basicRemove = function basicRemove_1(object, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.get_6 = function get_62(resolve){ + return this; +} +; +_.isSet_0 = function isSet_6(){ + return this.size_0 != 0; +} +; +_.set_1 = function set_32(newValue){ + throw toJs(new UnsupportedOperationException); +} +; +_.unset = function unset_4(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList', 1144); +function EcoreEList$UnmodifiableEList$FastCompare(size_0, data_0){ + BasicEList$UnmodifiableEList.call(this, size_0, data_0); +} + +defineClass(319, 1144, $intern_154, EcoreEList$UnmodifiableEList$FastCompare); +_.useEquals = function useEquals_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList$FastCompare_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList/FastCompare', 319); +function $containments(this$static){ + maskUndefined(this$static.containments) === maskUndefined(($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA)) && $init_2(this$static); + return this$static.containments; +} + +function $init_2(this$static){ + var containmentsList, crossReferencesList, eAnnotation, eAnnotation0, eAnnotation1, eReference, eStructuralFeature, i, isMixed, theOpposite; + containmentsList = new EClassImpl$1EStructuralFeatureUniqueEList; + crossReferencesList = new EClassImpl$1EStructuralFeatureUniqueEList; + isMixed = $equals_5('mixed', (eAnnotation0 = $getEAnnotation(this$static.this$01, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , !eAnnotation0?null:castToString($get_21((!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details), 'kind')))); + for (i = 0; i < this$static.size_0; ++i) { + eStructuralFeature = castTo(this$static.data_0[i], 170); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) != 0?((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation1 = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation1?null:castToString($get_21((!eAnnotation1.details && (eAnnotation1.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation1)) , eAnnotation1.details), 'group'))) == null)) && $add_21(containmentsList, eReference):(theOpposite = $getEOpposite(eReference) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0 || ((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation?null:castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group'))) == null)) && $add_21(crossReferencesList, eReference)); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + if (!eStructuralFeature.isDerived()) { + $add_21(containmentsList, eStructuralFeature); + $add_21(crossReferencesList, eStructuralFeature); + } + } + } + } + $shrink_0(containmentsList); + $shrink_0(crossReferencesList); + this$static.containments = castTo(containmentsList.data_0, 247); + castTo(crossReferencesList.data_0, 247); +} + +function EClassImpl$1EAllStructuralFeaturesList(this$0, eAllStructuralFeatures){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 10), 18) , eAllStructuralFeatures.size_0), eAllStructuralFeatures.data_0); + this.containments = ($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA); +} + +defineClass(1147, 319, $intern_154, EClassImpl$1EAllStructuralFeaturesList); +_.indexOf_0 = function indexOf_16(object){ + var eStructuralFeature, index_0, last; + if (instanceOf(object, 170)) { + eStructuralFeature = castTo(object, 170); + index_0 = eStructuralFeature.getFeatureID_0(); + if (index_0 != -1) { + for (last = this.size_0; index_0 < last; ++index_0) { + if (maskUndefined(this.data_0[index_0]) === maskUndefined(object)) { + return index_0; + } + } + } + } + return -1; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EAllStructuralFeaturesList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EAllStructuralFeaturesList', 1147); +function $eliminateEquivalentDuplicates(this$static){ + var eGenericType, eGenericTypes, i, j, otherEGenericType; + eGenericTypes = castTo(this$static.data_0, 674); + for (i = this$static.size_0 - 1; i >= 0; --i) { + eGenericType = eGenericTypes[i]; + for (j = 0; j < i; ++j) { + otherEGenericType = eGenericTypes[j]; + if ($equivalent(this$static, eGenericType, otherEGenericType)) { + $remove_33(this$static, i); + break; + } + } + } +} + +function $equivalent(this$static, eGenericType, otherEGenericType){ + var eClassifier, eTypeArgument, eTypeArgumentSize, eTypeArguments, eTypeParameter, instanceTypeName, j, otherEClassifier, otherETypeArgument, otherETypeArguments, otherETypeParameter, otherInstanceTypeName; + if (eGenericType == otherEGenericType) { + return true; + } + else { + eGenericType = $resolve_0(this$static, eGenericType); + otherEGenericType = $resolve_0(this$static, otherEGenericType); + eClassifier = $getEClassifier(eGenericType); + if (eClassifier) { + otherEClassifier = $getEClassifier(otherEGenericType); + if (otherEClassifier != eClassifier) { + if (!otherEClassifier) { + return false; + } + else { + instanceTypeName = eClassifier.getInstanceTypeName(); + otherInstanceTypeName = otherEClassifier.getInstanceTypeName(); + return instanceTypeName == otherInstanceTypeName && instanceTypeName != null; + } + } + else { + eTypeArguments = (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments); + eTypeArgumentSize = eTypeArguments.size_0; + otherETypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); + if (eTypeArgumentSize == otherETypeArguments.size_0) { + for (j = 0; j < eTypeArgumentSize; ++j) { + eTypeArgument = castTo($get_20(eTypeArguments, j), 87); + otherETypeArgument = castTo($get_20(otherETypeArguments, j), 87); + if (!$equivalent(this$static, eTypeArgument, otherETypeArgument)) { + return false; + } + } + } + return true; + } + } + else { + eTypeParameter = eGenericType.eTypeParameter; + otherETypeParameter = otherEGenericType.eTypeParameter; + return eTypeParameter == otherETypeParameter; + } + } +} + +function $resolve_0(this$static, eGenericType){ + var eContainer, eGenericTypes, eTypeArguments, eTypeParameter, i, index_0, otherEGenericType; + eTypeParameter = eGenericType.eTypeParameter; + if (eTypeParameter) { + eContainer = $eContainer(eTypeParameter); + eGenericTypes = castTo(this$static.data_0, 674); + for (i = 0; i < this$static.size_0; ++i) { + otherEGenericType = eGenericTypes[i]; + if ($getEClassifier(otherEGenericType) == eContainer) { + eTypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); + index_0 = castTo(eContainer.eGet_0(eContainmentFeature(eTypeParameter, eTypeParameter.eContainer, eTypeParameter.eFlags_0 >> 16)), 15).indexOf_0(eTypeParameter); + if (index_0 < eTypeArguments.size_0) { + return $resolve_0(this$static, castTo($get_20(eTypeArguments, index_0), 87)); + } + } + } + } + return eGenericType; +} + +function EClassImpl$1EGenericSuperTypeEList(){ +} + +defineClass(1141, 497, $intern_138, EClassImpl$1EGenericSuperTypeEList); +_.newData = function newData_4(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, capacity, 0, 1); +} +; +_.useEquals = function useEquals_3(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EGenericSuperTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EGenericSuperTypeEList', 1141); +function EClassImpl$1EStructuralFeatureUniqueEList(){ +} + +defineClass(623, 497, $intern_138, EClassImpl$1EStructuralFeatureUniqueEList); +_.newData = function newData_5(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, capacity, 0, 1); +} +; +_.useEquals = function useEquals_4(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EStructuralFeatureUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EStructuralFeatureUniqueEList', 623); +function EClassImpl$1ReferenceList(){ +} + +defineClass(741, 497, $intern_138, EClassImpl$1ReferenceList); +_.newData = function newData_6(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); +} +; +_.useEquals = function useEquals_5(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1ReferenceList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1ReferenceList', 741); +function $didAdd_0(this$static, eAttribute){ + (eAttribute.eFlags & $intern_134) != 0 && !this$static.this$01.eIDAttribute && (this$static.this$01.eIDAttribute = eAttribute); +} + +function EClassImpl$2(this$0){ + this.this$01 = this$0; +} + +defineClass(1142, 497, $intern_138, EClassImpl$2); +_.didAdd = function didAdd_1(index_0, eAttribute){ + $didAdd_0(this, castTo(eAttribute, 34)); +} +; +_.newData = function newData_7(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); +} +; +_.useEquals = function useEquals_6(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/2', 1142); +function EClassImpl$3(){ +} + +defineClass(1143, 497, $intern_138, EClassImpl$3); +_.newData = function newData_8(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); +} +; +_.useEquals = function useEquals_7(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/3', 1143); +function $add_28(this$static, object){ + $clinit_System(); + return $add_21($getEStructuralFeatures(this$static.this$01), object); +} + +function $addUnique_8(this$static, object){ + $addUnique_6($getEStructuralFeatures(this$static.this$01), object); +} + +function EClassImpl$4(this$0, $anonymous2, $anonymous3){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); +} + +defineClass(1145, 319, $intern_154, EClassImpl$4); +_.add_2 = function add_62(object){ + return $add_28(this, castTo(object, 34)); +} +; +_.addUnique_0 = function addUnique_14(object){ + $addUnique_8(this, castTo(object, 34)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/4', 1145); +function $add_29(this$static, object){ + $clinit_System(); + return $add_21($getEStructuralFeatures(this$static.this$01), object); +} + +function $addUnique_9(this$static, object){ + $addUnique_6($getEStructuralFeatures(this$static.this$01), object); +} + +function EClassImpl$5(this$0, $anonymous2, $anonymous3){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); +} + +defineClass(1146, 319, $intern_154, EClassImpl$5); +_.add_2 = function add_63(object){ + return $add_29(this, castTo(object, 18)); +} +; +_.addUnique_0 = function addUnique_15(object){ + $addUnique_9(this, castTo(object, 18)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/5', 1146); +function EClassImpl$6(){ +} + +defineClass(1148, 497, $intern_138, EClassImpl$6); +_.newData = function newData_9(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, capacity, 0, 1); +} +; +_.useEquals = function useEquals_8(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/6', 1148); +function EClassImpl$7(){ +} + +defineClass(1149, 497, $intern_138, EClassImpl$7); +_.newData = function newData_10(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); +} +; +_.useEquals = function useEquals_9(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/7', 1149); +defineClass(1997, 1996, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 69:1}); +_.addAllUnique = function addAllUnique_13(index_0, collection){ + return $addAllUnique_2(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_14(collection){ + return $addAllUnique_2(this, this.delegateSize(), collection); +} +; +_.addUnique = function addUnique_16(index_0, object){ + $addUnique_3(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_17(object){ + $addUnique_4(this, object); +} +; +_.basicAdd = function basicAdd_2(object, notifications){ + return $basicAdd(this, object, notifications); +} +; +_.basicRemove = function basicRemove_2(object, notifications){ + return $basicRemove(this, object, notifications); +} +; +_.setUnique = function setUnique_6(index_0, object){ + return $setUnique_0(this, index_0, object); +} +; +_.basicGet = function basicGet_3(index_0){ + return this.delegateGet(index_0); +} +; +_.basicIterator = function basicIterator_4(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicList = function basicList_0(){ + return this.delegateBasicList(); +} +; +_.basicListIterator = function basicListIterator_9(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_10(index_0){ + return $basicListIterator(this, index_0); +} +; +var Lorg_eclipse_emf_ecore_util_DelegatingNotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingNotifyingInternalEListImpl', 1997); +function $resolve_1(this$static, index_0, object){ + var internalEObject, internalEObject0, notificationChain, resolved; + if (this$static.isEObject() && this$static.hasProxies()) { + resolved = $resolveProxy(this$static, castTo(object, 56)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + this$static.delegateGet(index_0); + this$static.delegateSet(index_0, $validate_1(this$static, index_0, resolved)); + if (this$static.isContainment()) { + notificationChain = (internalEObject0 = castTo(object, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject0.eInverseRemove(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), null):internalEObject0.eInverseRemove(this$static.owner, $getFeatureID(internalEObject0.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, null):internalEObject0.eInverseRemove(this$static.owner, -1 - this$static.getFeatureID_0(), null, null)); + !castTo(resolved, 49).eInternalContainer() && (notificationChain = (internalEObject = castTo(resolved, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject.eInverseAdd(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), notificationChain):internalEObject.eInverseAdd(this$static.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, notificationChain):internalEObject.eInverseAdd(this$static.owner, -1 - this$static.getFeatureID_0(), null, notificationChain))); + !!notificationChain && notificationChain.dispatch_0(); + } + $eNotificationRequired(this$static.owner) && this$static.dispatchNotification(this$static.createNotification(9, object, resolved, index_0, false)); + return resolved; + } + } + return object; +} + +function $resolveProxy(this$static, eObject){ + return eObject.eIsProxy()?$eResolveProxy(this$static.owner, castTo(eObject, 49)):eObject; +} + +function $validate_1(this$static, index_0, object){ + $validate(this$static, object); + if (object != null && !this$static.isInstance(object)) { + throw toJs(new ArrayStoreException); + } + return object; +} + +function DelegatingEcoreEList(owner){ + this.owner = owner; +} + +defineClass(742, 1997, $intern_156); +_.canContainNull = function canContainNull_3(){ + var eClassifier; + eClassifier = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(); + return instanceOf(eClassifier, 148) && !instanceOf(eClassifier, 457) && (eClassifier.getInstanceClass().modifiers & 1) == 0; +} +; +_.contains = function contains_64(object){ + var containedEObject, eContainer, eObject, i, opposite, result, result0, size_0; + if (this.isEObject()) { + size_0 = this.delegateSize(); + if (size_0 > 4) { + if (this.isInstance(object)) { + if (this.isContainment()) { + eObject = castTo(object, 49); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this.owner && (this.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass()) == $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID:-1 - eObject.eContainerFeatureID_0() == this.getFeatureID_0()); + if (this.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { + for (i = 0; i < size_0; ++i) { + containedEObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this.hasNavigableInverse() && !this.hasManyInverse()) { + opposite = castTo(object, 56).eGet_0($getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))); + if (maskUndefined(opposite) === maskUndefined(this.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { + return false; + } + } + } + else { + return false; + } + } + result = this.delegateContains(object); + if (this.hasProxies() && !result) { + for (i = 0; i < size_0; ++i) { + eObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return true; + } + } + } + return result; + } + else { + return this.delegateContains(object); + } +} +; +_.createNotification = function createNotification_3(eventType, oldObject, newObject, index_0, wasSet){ + return new ENotificationImpl_3(this.owner, eventType, this.getFeatureID_0(), oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_2(notification){ + $eNotify(this.owner, notification); +} +; +_.get_6 = function get_63(resolve){ + return this; +} +; +_.getFeature = function getFeature_5(){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); +} +; +_.getFeatureID_0 = function getFeatureID_8(){ + return $getFeatureID($eClass(this.owner), $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0())); +} +; +_.getNotifier = function getNotifier_5(){ + return this.owner; +} +; +_.hasInstanceClass = function hasInstanceClass_0(){ + return !!$getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().getInstanceClass(); +} +; +_.hasInverse = function hasInverse_3(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_134) != 0 || !!$getEOpposite(castTo(eStructuralFeature, 18)); + } + else { + return false; + } +} +; +_.hasManyInverse = function hasManyInverse_0(){ + var eReference, eStructuralFeature, oppositeEReference, upper; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + oppositeEReference = $getEOpposite(eReference); + return !!oppositeEReference && (upper = oppositeEReference.upperBound , upper > 1 || upper == -1); + } + else { + return false; + } +} +; +_.hasNavigableInverse = function hasNavigableInverse_1(){ + var eReference, eStructuralFeature, oppositeEReference; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + oppositeEReference = $getEOpposite(eReference); + return !!oppositeEReference; + } + else { + return false; + } +} +; +_.hasProxies = function hasProxies_0(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_63) != 0; + } + else { + return false; + } +} +; +_.indexOf_0 = function indexOf_17(object){ + var eObject, i, index_0, size_0; + index_0 = this.delegateIndexOf(object); + if (index_0 >= 0) + return index_0; + if (this.isEObject()) { + for (i = 0 , size_0 = this.delegateSize(); i < size_0; ++i) { + eObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} +; +_.inverseAdd = function inverseAdd_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.isContainment = function isContainment_3(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_134) != 0; + } + else { + return false; + } +} +; +_.isEObject = function isEObject_1(){ + return instanceOf($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 88); +} +; +_.isInstance = function isInstance_2(object){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().isInstance(object); +} +; +_.isNotificationRequired = function isNotificationRequired_2(){ + return $eNotificationRequired(this.owner); +} +; +_.isSet_0 = function isSet_7(){ + return !this.delegateIsEmpty(); +} +; +_.isUnique = function isUnique_4(){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).isUnique(); +} +; +_.resolve = function resolve_3(index_0, object){ + return $resolve_1(this, index_0, object); +} +; +_.set_1 = function set_33(newValue){ + $clear_12(this); + $addAll_9(this, castTo(newValue, 15)); +} +; +_.toArray = function toArray_40(){ + var i; + if (this.hasProxies()) { + for (i = this.delegateSize() - 1; i >= 0; --i) { + $resolve_1(this, i, this.delegateGet(i)); + } + } + return this.delegateToArray(); +} +; +_.toArray_0 = function toArray_41(array){ + var i; + if (this.hasProxies()) { + for (i = this.delegateSize() - 1; i >= 0; --i) { + $resolve_1(this, i, this.delegateGet(i)); + } + } + return this.delegateToArray_0(array); +} +; +_.unset = function unset_5(){ + $clear_12(this); +} +; +_.validate = function validate_1(index_0, object){ + return $validate_1(this, index_0, object); +} +; +var Lorg_eclipse_emf_ecore_util_DelegatingEcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingEcoreEList', 742); +function $delegateAdd(this$static, index_0, eClass){ + $add_20($getEGenericSuperTypes(this$static.this$01), index_0, $wrap_0(eClass)); +} + +function $delegateAdd_0(this$static, eClass){ + $add_21($getEGenericSuperTypes(this$static.this$01), $wrap_0(eClass)); +} + +function $delegateContains(this$static, object){ + var eClass, eClass$iterator; + for (eClass$iterator = new AbstractEList$EIterator(this$static); eClass$iterator.cursor != eClass$iterator.this$01_2.size_1();) { + eClass = castTo($doNext(eClass$iterator), 26); + if (maskUndefined(object) === maskUndefined(eClass)) { + return true; + } + } + return false; +} + +function $delegateSet(this$static, index_0, eClass){ + var eGenericType, result, result0; + eGenericType = castTo($get_20($getEGenericSuperTypes(this$static.this$01), index_0), 87); + result0 = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + ((result0.eFlags_0 & 64) != 0?$eResolveProxy(this$static.owner, result0):result0) == eClass?$getERawType(eGenericType):$setEClassifier(eGenericType, eClass); + return result0; +} + +function $wrap_0(eClass){ + var eGenericType, eGenericType0; + eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClass); + return eGenericType0; +} + +function EClassImpl$8(this$0, $anonymous0){ + this.this$01 = this$0; + DelegatingEcoreEList.call(this, $anonymous0); +} + +defineClass(1150, 742, $intern_156, EClassImpl$8); +_.delegateAdd = function delegateAdd_1(index_0, eClass){ + $delegateAdd(this, index_0, castTo(eClass, 26)); +} +; +_.delegateAdd_0 = function delegateAdd_2(eClass){ + $delegateAdd_0(this, castTo(eClass, 26)); +} +; +_.delegateGet = function delegateGet_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateRemove = function delegateRemove_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateSet = function delegateSet_0(index_0, eClass){ + return $delegateSet(this, index_0, castTo(eClass, 26)); +} +; +_.canContainNull = function canContainNull_4(){ + return false; +} +; +_.createNotification = function createNotification_4(eventType, oldObject, newObject, index_0, wasSet){ + return null; +} +; +_.delegateBasicList = function delegateBasicList_0(){ + return new EClassImpl$8$1(this); +} +; +_.delegateClear = function delegateClear_0(){ + $clear_13($getEGenericSuperTypes(this.this$01)); +} +; +_.delegateContains = function delegateContains_0(object){ + return $delegateContains(this, object); +} +; +_.delegateContainsAll = function delegateContainsAll_0(collection){ + var object, object$iterator; + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$delegateContains(this, object)) { + return false; + } + } + return true; +} +; +_.delegateEquals = function delegateEquals_0(object){ + var i, j, list; + if (instanceOf(object, 15)) { + list = castTo(object, 15); + if (list.size_1() == $getEGenericSuperTypes(this.this$01).size_0) { + for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { + if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { + return false; + } + } + return true; + } + } + return false; +} +; +_.delegateHashCode = function delegateHashCode_0(){ + var eGenericType, eGenericType$iterator, hashCode, object, result; + hashCode = 1; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + object = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + hashCode = 31 * hashCode + (!object?0:getHashCode_0(object)); + } + return hashCode; +} +; +_.delegateIndexOf = function delegateIndexOf_0(object){ + var eGenericType, eGenericType$iterator, index_0, result; + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))) { + return index_0; + } + ++index_0; + } + return -1; +} +; +_.delegateIsEmpty = function delegateIsEmpty_0(){ + return $getEGenericSuperTypes(this.this$01).size_0 == 0; +} +; +_.delegateList_1 = function delegateList_2(){ + return null; +} +; +_.delegateSize = function delegateSize_0(){ + return $getEGenericSuperTypes(this.this$01).size_0; +} +; +_.delegateToArray = function delegateToArray_1(){ + var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; + size_0 = $getEGenericSuperTypes(this.this$01).size_0; + result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + result0[index_0++] = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + } + return result0; +} +; +_.delegateToArray_0 = function delegateToArray_2(array){ + var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; + size_0 = $getEGenericSuperTypes(this.this$01).size_0; + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + array.length > size_0 && setCheck(array, size_0, null); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + rawType = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + setCheck(array, index_0++, rawType); + } + return array; +} +; +_.delegateToString = function delegateToString_0(){ + var eGenericSuperTypes, i, result, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + eGenericSuperTypes = $getEGenericSuperTypes(this.this$01); + for (i = 0 , size_0 = $getEGenericSuperTypes(this.this$01).size_0; i < size_0;) { + $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericSuperTypes, i), 87).eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.dispatchNotification = function dispatchNotification_3(notification){ +} +; +_.getFeatureID_0 = function getFeatureID_9(){ + return 10; +} +; +_.hasInstanceClass = function hasInstanceClass_1(){ + return true; +} +; +_.hasInverse = function hasInverse_4(){ + return false; +} +; +_.hasManyInverse = function hasManyInverse_1(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse_2(){ + return false; +} +; +_.hasProxies = function hasProxies_1(){ + return true; +} +; +_.isContainment = function isContainment_4(){ + return false; +} +; +_.isEObject = function isEObject_2(){ + return true; +} +; +_.isInstance = function isInstance_3(object){ + return instanceOf(object, 88); +} +; +_.isSet_0 = function isSet_8(){ + return $isSetESuperTypes(this.this$01); +} +; +_.isUnique = function isUnique_5(){ + return true; +} +; +_.useEquals = function useEquals_10(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8', 1150); +function EClassImpl$8$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1151, 1964, $intern_37, EClassImpl$8$1); +_.listIterator_1 = function listIterator_29(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_75(){ + return $getEGenericSuperTypes(this.this$11.this$01).size_0; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$8$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8/1', 1151); +function EClassImpl$9(){ +} + +defineClass(1152, 497, $intern_138, EClassImpl$9); +_.newData = function newData_11(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, capacity, 0, 1); +} +; +_.useEquals = function useEquals_11(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/9', 1152); +function EClassImpl$MyHashSet(){ + HashSet.call(this); +} + +defineClass(1139, 53, $intern_77, EClassImpl$MyHashSet); +var Lorg_eclipse_emf_ecore_impl_EClassImpl$MyHashSet_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/MyHashSet', 1139); +function $setSerializable(this$static, newSerializable){ + var oldSerializable; + oldSerializable = (this$static.eFlags & 256) != 0; + newSerializable?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldSerializable, newSerializable)); +} + +function EDataTypeImpl(){ + this.eFlags |= 256; +} + +defineClass(566, 351, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}, EDataTypeImpl); +_.eGet = function eGet_23(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return this.getDefaultValue(); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_22(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return this.getDefaultValue() != null; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) == 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_21(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_22(){ + return $clinit_EcorePackage$Literals() , EDATA_TYPE; +} +; +_.eUnset = function eUnset_21(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setSerializable(this, true); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_5(){ + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.getConversionDelegate = function getConversionDelegate(){ + var conversionDelegates, eDataTypeDelegateURI, eDataTypeDelegateURI$iterator; + if (!this.conversionDelegateIsSet) { + conversionDelegates = getConversionDelegates($getEPackage(this)); + if (!conversionDelegates.isEmpty()) { + for (eDataTypeDelegateURI$iterator = conversionDelegates.iterator_0(); eDataTypeDelegateURI$iterator.hasNext_0();) { + eDataTypeDelegateURI = castToString(eDataTypeDelegateURI$iterator.next_1()); + !!$getEAnnotation(this, eDataTypeDelegateURI) && getConversionDelegateFactory(this); + } + } + } + return this.conversionDelegate; +} +; +_.getDefaultValue = function getDefaultValue_1(){ + var instanceClass; + if (!this.defaultValueIsSet) { + instanceClass = null; + try { + instanceClass = $getInstanceClass(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 102)) + throw toJs($e0); + } + this.defaultValue = null; + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (instanceClass == Z_classLit?(this.defaultValue = ($clinit_Boolean() , FALSE_0)):instanceClass == I_classLit?(this.defaultValue = valueOf_4(0)):instanceClass == F_classLit?(this.defaultValue = new Float(0)):instanceClass == D_classLit?(this.defaultValue = 0):instanceClass == J_classLit?(this.defaultValue = valueOf_5(0)):instanceClass == S_classLit?(this.defaultValue = valueOf_6(0)):instanceClass == B_classLit?(this.defaultValue = valueOf_2(0)):(this.defaultValue = valueOf_3(0))); + this.defaultValueIsSet = true; + } + return this.defaultValue; +} +; +_.isSerializable = function isSerializable_0(){ + return (this.eFlags & 256) != 0; +} +; +_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass(isGenerated){ + isGenerated && (this.instanceClassName = 'org.eclipse.emf.common.util.AbstractEnumerator'); +} +; +_.setGeneratedInstanceClass = function setGeneratedInstanceClass_0(isGenerated){ + $setGeneratedInstanceClass(this, isGenerated); + this.setDataTypeGeneratedInstanceClass(isGenerated); +} +; +_.setInstanceClassGen = function setInstanceClassGen_0(instanceClass){ + this.instanceClass = instanceClass; + this.defaultValueIsSet = false; +} +; +_.toString_0 = function toString_150(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_30(this); + result = new StringBuffer_1($toString_30(this)); + result.string += ' (serializable: '; + $append_4(result, (this.eFlags & 256) != 0); + result.string += ')'; + return result.string; +} +; +_.conversionDelegateIsSet = false; +_.defaultValue = null; +_.defaultValueIsSet = false; +var Lorg_eclipse_emf_ecore_impl_EDataTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EDataTypeImpl', 566); +function $getDefaultValue_0(this$static){ + var eLiterals; + eLiterals = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , this$static.eLiterals); + if (eLiterals.size_0 != 0) { + return $getInstance(castTo($get_20(eLiterals, 0), 678)); + } + return null; +} + +function $getEEnumLiteralByLiteral(this$static, literal){ + var eEnumLiteral, eEnumLiteral$iterator, result; + if (literal == null) { + for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { + eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); + result = eEnumLiteral.literal; + if ((result == null?eEnumLiteral.name_0:result) == null) { + return eEnumLiteral; + } + } + } + else { + for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { + eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); + if ($equals_5(literal, (result = eEnumLiteral.literal , result == null?eEnumLiteral.name_0:result))) { + return eEnumLiteral; + } + } + } + return null; +} + +function EEnumImpl(){ + EDataTypeImpl.call(this); +} + +defineClass(457, 566, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 671:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 457:1, 150:1, 114:1, 115:1, 676:1}, EEnumImpl); +_.eGet = function eGet_24(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return $getDefaultValue_0(this); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , this.eLiterals; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_15(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicAdd_0(this.eLiterals, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_17(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicRemove_0(this.eLiterals, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_23(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return !!$getDefaultValue_0(this); + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) == 0; + case 9: + return !!this.eLiterals && this.eLiterals.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); +} +; +_.eSet = function eSet_22(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + case 9: + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $clear_13(this.eLiterals); + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $addAll_9(this.eLiterals, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_23(){ + return $clinit_EcorePackage$Literals() , EENUM; +} +; +_.eUnset = function eUnset_22(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setSerializable(this, true); + return; + case 9: + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $clear_13(this.eLiterals); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); +} +; +_.freeze = function freeze_6(){ + var i, size_0; + if (this.eLiterals) { + for (i = 0 , size_0 = this.eLiterals.size_0; i < size_0; ++i) { + $freeze($get_20(this.eLiterals, i)); + } + } + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.getDefaultValue = function getDefaultValue_2(){ + return $getDefaultValue_0(this); +} +; +_.isInstance = function isInstance_4(object){ + if (object != null) { + return true; + } + return false; +} +; +_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass_0(isGenerated){ +} +; +var Lorg_eclipse_emf_ecore_impl_EEnumImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumImpl', 457); +function $eBasicRemoveFromContainerFeature_8(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 5) { + return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_emf_ecore_EEnum_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getInstance(this$static){ + return this$static.instance?this$static.instance:this$static.generatedInstance; +} + +function $setInstance(this$static, newInstance){ + var literal, result, oldInstance; + oldInstance = this$static.instance; + this$static.instance = newInstance; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldInstance, this$static.instance)); + if (!newInstance) { + $setName(this$static, null); + $setValue_1(this$static, 0); + $setLiteral(this$static, null); + } + else if (newInstance != this$static) { + $setName(this$static, newInstance.name_0); + $setValue_1(this$static, newInstance.value_0); + literal = (result = newInstance.literal , result == null?newInstance.name_0:result); + $setLiteral(this$static, literal == null || $equals_5(literal, newInstance.name_0)?null:literal); + } +} + +function $setLiteral(this$static, newLiteral){ + var oldLiteral; + oldLiteral = this$static.literal; + this$static.literal = newLiteral; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, oldLiteral, this$static.literal)); +} + +function $setValue_1(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 2, oldValue, this$static.value_0)); +} + +function EEnumLiteralImpl(){ + this.generatedInstance = this; +} + +defineClass(573, 438, {105:1, 92:1, 90:1, 1940:1, 678:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 573:1, 150:1, 114:1, 115:1}, EEnumLiteralImpl); +_.getName = function getName_6(){ + return this.name_0; +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_9(msgs){ + return $eBasicRemoveFromContainerFeature_8(this, msgs); +} +; +_.eGet = function eGet_25(featureID, resolve, coreType){ + var eClass, result; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return valueOf_4(this.value_0); + case 3: + return this.instance?this.instance:this.generatedInstance; + case 4: + return result = this.literal , result == null?this.name_0:result; + case 5: + return this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_16(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 5: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_8(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 5, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_18(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 5: + return $eBasicSetContainer(this, null, 5, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_24(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.value_0 != 0; + case 3: + return !!this.instance; + case 4: + return this.literal != null; + case 5: + return !!(this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.eSet = function eSet_23(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setValue_1(this, castTo(newValue, 19).value_0); + return; + case 3: + $setInstance(this, castTo(newValue, 1940)); + return; + case 4: + $setLiteral(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_24(){ + return $clinit_EcorePackage$Literals() , EENUM_LITERAL; +} +; +_.eUnset = function eUnset_23(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setValue_1(this, 0); + return; + case 3: + $setInstance(this, null); + return; + case 4: + $setLiteral(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.toString_0 = function toString_151(){ + var result; + return result = this.literal , result == null?this.name_0:result; +} +; +_.instance = null; +_.literal = null; +_.value_0 = 0; +var Lorg_eclipse_emf_ecore_impl_EEnumLiteralImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumLiteralImpl', 573); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit = createForInterface('org.eclipse.emf.ecore.impl', 'EFactoryImpl/InternalEDateTimeFormat'); +function $format_0(this$static, value_0){ + return $format(this$static.dateTimeFormat, value_0, null); +} + +function $parse_2(this$static, value_0){ + return $parse_1(this$static.dateTimeFormat, value_0); +} + +function EFactoryImpl$1ClientInternalEDateTimeFormat(dateTimeFormat){ + this.dateTimeFormat = dateTimeFormat; +} + +defineClass(489, 1, {2015:1}, EFactoryImpl$1ClientInternalEDateTimeFormat); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$1ClientInternalEDateTimeFormat_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl/1ClientInternalEDateTimeFormat', 489); +function $basicSetELowerBound(this$static, newELowerBound, msgs){ + var notification, oldELowerBound; + oldELowerBound = this$static.eLowerBound; + this$static.eLowerBound = newELowerBound; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 3, oldELowerBound, newELowerBound); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $basicSetETypeParameter(this$static, newETypeParameter, msgs){ + var notification, oldETypeParameter; + oldETypeParameter = this$static.eTypeParameter; + this$static.eTypeParameter = newETypeParameter; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 4, oldETypeParameter, newETypeParameter); + !msgs?(msgs = notification):msgs.add_5(notification); + } + oldETypeParameter != newETypeParameter && (newETypeParameter?(msgs = $setERawType(this$static, $getErasure(this$static, newETypeParameter), msgs)):(msgs = $setERawType(this$static, this$static.eClassifier, msgs))); + return msgs; +} + +function $basicSetEUpperBound(this$static, newEUpperBound, msgs){ + var notification, oldEUpperBound; + oldEUpperBound = this$static.eUpperBound; + this$static.eUpperBound = newEUpperBound; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 0, oldEUpperBound, newEUpperBound); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $getEClassifier(this$static){ + var oldEClassifier; + if (!!this$static.eClassifier && this$static.eClassifier.eIsProxy()) { + oldEClassifier = castTo(this$static.eClassifier, 49); + this$static.eClassifier = castTo($eResolveProxy(this$static, oldEClassifier), 138); + this$static.eClassifier != oldEClassifier && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 5, oldEClassifier, this$static.eClassifier)); + } + return this$static.eClassifier; +} + +function $getERawType(this$static){ + var newERawType, oldERawType; + if (!!this$static.eRawType && this$static.eRawType.eIsProxy()) { + oldERawType = castTo(this$static.eRawType, 49); + this$static.eRawType = castTo($eResolveProxy(this$static, oldERawType), 138); + if (this$static.eRawType != oldERawType) { + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 2, oldERawType, this$static.eRawType)); + if (instanceOf(this$static.eContainer, 399)) { + this$static.eFlags_0 >> 16 == -15 && this$static.eContainer.eNotificationRequired() && $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 13, oldERawType, this$static.eRawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static))); + } + else if (instanceOf(this$static.eContainer, 88)) { + if (this$static.eFlags_0 >> 16 == -23 && this$static.eContainer.eNotificationRequired()) { + newERawType = this$static.eRawType; + instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static))); + } + } + } + } + return this$static.eRawType; +} + +function $getETypeArguments(this$static){ + !this$static.eTypeArguments && (this$static.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static, 1)); + return this$static.eTypeArguments; +} + +function $getErasure(this$static, eTypeParameter){ + var eBound, eBound$iterator, eRawType, needEClass, needEDataType; + if (!eTypeParameter) { + return null; + } + else { + needEClass = instanceOf(this$static.eContainer, 88) || instanceOf(this$static.eContainer, 99); + needEDataType = !needEClass && instanceOf(this$static.eContainer, 322); + for (eBound$iterator = new AbstractEList$EIterator((!eTypeParameter.eBounds && (eTypeParameter.eBounds = new ETypeParameterImpl$1(eTypeParameter, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eTypeParameter)) , eTypeParameter.eBounds)); eBound$iterator.cursor != eBound$iterator.this$01_2.size_1();) { + eBound = castTo($doNext(eBound$iterator), 87); + eRawType = $getERawType(eBound); + if (needEClass?instanceOf(eRawType, 88):needEDataType?instanceOf(eRawType, 148):!!eRawType) { + return eRawType; + } + } + return needEClass?($clinit_EcorePackage$Literals() , EOBJECT):($clinit_EcorePackage$Literals() , EJAVA_OBJECT); + } +} + +function $setEClassifier(this$static, newEClassifier){ + var msgs, oldEClassifier; + oldEClassifier = this$static.eClassifier; + msgs = $setEClassifier_0(this$static, newEClassifier, null); + oldEClassifier != newEClassifier && !this$static.eTypeParameter && (msgs = $setERawType(this$static, newEClassifier, msgs)); + !!msgs && msgs.dispatch_0(); +} + +function $setEClassifier_0(this$static, newEClassifier, msgs){ + var notification, oldEClassifier; + oldEClassifier = this$static.eClassifier; + this$static.eClassifier = newEClassifier; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 5, oldEClassifier, this$static.eClassifier); + !msgs?(msgs = notification):$add_22(msgs, notification); + } + return msgs; +} + +function $setELowerBound(this$static, newELowerBound){ + var msgs; + if (newELowerBound != this$static.eLowerBound) { + msgs = null; + !!this$static.eLowerBound && (msgs = $eInverseRemove(this$static.eLowerBound, this$static, -4, msgs)); + !!newELowerBound && (msgs = $eInverseAdd(newELowerBound, this$static, -4, msgs)); + msgs = $basicSetELowerBound(this$static, newELowerBound, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newELowerBound, newELowerBound)); +} + +function $setERawType(this$static, newERawType, msgs){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, eTypeParameter, notification, oldERawType; + oldERawType = this$static.eRawType; + !newERawType && (newERawType = eJavaObject); + this$static.eRawType = newERawType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 2, oldERawType, this$static.eRawType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (oldERawType != newERawType) { + if (instanceOf(this$static.eContainer, 284)) { + if (this$static.eFlags_0 >> 16 == -10) { + msgs = castTo(this$static.eContainer, 284).setEType(newERawType, msgs); + } + else if (this$static.eFlags_0 >> 16 == -15) { + !newERawType && (newERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + !oldERawType && (oldERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + if (this$static.eContainer.eNotificationRequired()) { + notification = new ENotificationImpl_3(this$static.eContainer, 1, 13, oldERawType, newERawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 88)) { + if (this$static.eFlags_0 >> 16 == -23) { + instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + if (this$static.eContainer.eNotificationRequired()) { + notification = new ENotificationImpl_3(this$static.eContainer, 1, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 444)) { + eTypeParameter = castTo(this$static.eContainer, 836); + eGenericTypes = (!eTypeParameter.eGenericTypes && (eTypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , eTypeParameter.eGenericTypes); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + msgs = $setERawType(eGenericType, $getErasure(eGenericType, eTypeParameter), msgs); + } + } + } + return msgs; +} + +function $setETypeParameter(this$static, newETypeParameter){ + var msgs; + if (newETypeParameter != this$static.eTypeParameter) { + !!this$static.eTypeParameter && $remove_42($getEGenericTypes(this$static.eTypeParameter), this$static); + !!newETypeParameter && (!newETypeParameter.eGenericTypes && (newETypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , $add_30(newETypeParameter.eGenericTypes, this$static)); + msgs = $basicSetETypeParameter(this$static, newETypeParameter, null); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newETypeParameter, newETypeParameter)); +} + +function $setEUpperBound(this$static, newEUpperBound){ + var msgs; + if (newEUpperBound != this$static.eUpperBound) { + msgs = null; + !!this$static.eUpperBound && (msgs = $eInverseRemove(this$static.eUpperBound, this$static, -1, msgs)); + !!newEUpperBound && (msgs = $eInverseAdd(newEUpperBound, this$static, -1, msgs)); + msgs = $basicSetEUpperBound(this$static, newEUpperBound, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, newEUpperBound, newEUpperBound)); +} + +function $toString_32(this$static, result){ + var eTypeArgument, eTypeArgument$iterator, first, index_0, instanceTypeName, label_0, tail; + if (this$static.eClassifier) { + label_0 = this$static.eClassifier.getName(); + tail = null; + if (label_0 != null) { + result.string += '' + label_0; + } + else { + instanceTypeName = this$static.eClassifier.getInstanceTypeName(); + if (instanceTypeName != null) { + index_0 = $indexOf_1(instanceTypeName, fromCodePoint(91)); + if (index_0 != -1) { + tail = instanceTypeName.substr(index_0); + result.string += '' + $substring_1(instanceTypeName == null?'null':(checkCriticalNotNull(instanceTypeName) , instanceTypeName), 0, index_0); + } + else { + result.string += '' + instanceTypeName; + } + } + } + if (!!this$static.eTypeArguments && this$static.eTypeArguments.size_0 != 0) { + first = true; + result.string += '<'; + for (eTypeArgument$iterator = new AbstractEList$EIterator(this$static.eTypeArguments); eTypeArgument$iterator.cursor != eTypeArgument$iterator.this$01_2.size_1();) { + eTypeArgument = castTo($doNext(eTypeArgument$iterator), 87); + first?(first = false):(result.string += ', ' , result); + $toString_32(eTypeArgument, result); + } + result.string += '>'; + } + tail != null && (result.string += '' + tail , result); + } + else if (this$static.eTypeParameter) { + label_0 = this$static.eTypeParameter.name_0; + label_0 != null && (result.string += '' + label_0 , result); + } + else { + result.string += '?'; + if (this$static.eLowerBound) { + result.string += ' super '; + $toString_32(this$static.eLowerBound, result); + } + else { + if (this$static.eUpperBound) { + result.string += ' extends '; + $toString_32(this$static.eUpperBound, result); + } + } + } +} + +function EGenericTypeImpl(){ + this.eRawType = eJavaObject; +} + +defineClass(241, 115, {105:1, 92:1, 90:1, 87:1, 56:1, 108:1, 49:1, 97:1, 241:1, 114:1, 115:1}, EGenericTypeImpl); +_.eBasicSetContainer_0 = function eBasicSetContainer_6(newContainer, newContainerFeatureID, msgs){ + var newERawType; + msgs = $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); + if (!!this.eTypeParameter && instanceOf(newContainer, 170)) { + newERawType = $getErasure(this, this.eTypeParameter); + newERawType != this.eRawType && (msgs = $setERawType(this, newERawType, msgs)); + } + return msgs; +} +; +_.eGet = function eGet_26(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return this.eUpperBound; + case 1: + return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , this.eTypeArguments; + case 2: + if (resolve) + return $getERawType(this); + return this.eRawType; + case 3: + return this.eLowerBound; + case 4: + return this.eTypeParameter; + case 5: + if (resolve) + return $getEClassifier(this); + return this.eClassifier; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_19(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return $basicSetEUpperBound(this, null, msgs); + case 1: + return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , $basicRemove_0(this.eTypeArguments, otherEnd, msgs); + case 3: + return $basicSetELowerBound(this, null, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EGENERIC_TYPE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_25(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eUpperBound; + case 1: + return !!this.eTypeArguments && this.eTypeArguments.size_0 != 0; + case 2: + return !!this.eRawType; + case 3: + return !!this.eLowerBound; + case 4: + return !!this.eTypeParameter; + case 5: + return !!this.eClassifier; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.eSet = function eSet_24(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, castTo(newValue, 87)); + return; + case 1: + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $clear_13(this.eTypeArguments); + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $addAll_9(this.eTypeArguments, castTo(newValue, 14)); + return; + case 3: + $setELowerBound(this, castTo(newValue, 87)); + return; + case 4: + $setETypeParameter(this, castTo(newValue, 836)); + return; + case 5: + $setEClassifier(this, castTo(newValue, 138)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_25(){ + return $clinit_EcorePackage$Literals() , EGENERIC_TYPE; +} +; +_.eUnset = function eUnset_24(featureID){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, null); + return; + case 1: + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $clear_13(this.eTypeArguments); + return; + case 3: + $setELowerBound(this, null); + return; + case 4: + $setETypeParameter(this, null); + return; + case 5: + $setEClassifier(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.toString_0 = function toString_152(){ + var result; + result = new StringBuilder_1($toString_16(this)); + result.string += ' (expression: '; + $toString_32(this, result); + result.string += ')'; + return result.string; +} +; +var eJavaObject; +var Lorg_eclipse_emf_ecore_impl_EGenericTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EGenericTypeImpl', 241); +function $addUnique_10(this$static, index_0, object){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(object); +} + +defineClass(1969, 1964, $intern_157); +_.addUnique = function addUnique_18(index_0, object){ + $addUnique_10(this, index_0, object); +} +; +_.basicAdd = function basicAdd_3(object, notifications){ + $addUnique_10(this, this.size_1(), object); + return notifications; +} +; +_.basicGet = function basicGet_4(index_0){ + return $get_7(this.basicList(), index_0); +} +; +_.basicIterator = function basicIterator_5(){ + return this.basicListIterator(); +} +; +_.basicList = function basicList_1(){ + return new AbstractSequentialInternalEList$1(this); +} +; +_.basicListIterator = function basicListIterator_11(){ + return this.basicListIterator_0(0); +} +; +_.basicListIterator_0 = function basicListIterator_12(index_0){ + return this.basicList().listIterator_1(index_0); +} +; +_.basicRemove = function basicRemove_3(object, notifications){ + $advanceToFind(this, object, true); + return notifications; +} +; +_.move = function move_15(newPosition, oldPosition){ + var iter, movedObject; + movedObject = $remove_4(this, oldPosition); + iter = this.listIterator_1(newPosition); + iter.add_1(movedObject); + return movedObject; +} +; +_.move_0 = function move_16(newPosition, object){ + var iter; + $advanceToFind(this, object, true); + iter = this.listIterator_1(newPosition); + iter.add_1(object); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList', 1969); +function $clinit_EContentsEList(){ + $clinit_EContentsEList = emptyMethod; + EMPTY_CONTENTS_ELIST = new EContentsEList$1; +} + +function $isIncludedEntry(eStructuralFeature){ + return instanceOf(eStructuralFeature, 99) && (castTo(eStructuralFeature, 18).eFlags & $intern_134) != 0; +} + +function $iterator_1(this$static){ + var result; + if (this$static.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this$static.resolve_0()?this$static.newResolvingListIterator():this$static.newNonResolvingListIterator(); + return result; +} + +function EContentsEList(eObject, eStructuralFeatures){ + $clinit_EContentsEList(); + this.eObject = eObject; + this.eStructuralFeatures = eStructuralFeatures; +} + +defineClass(486, 1969, $intern_157, EContentsEList); +_.basicGet = function basicGet_5(index_0){ + return $get_7(this.basicList(), index_0); +} +; +_.basicIterator = function basicIterator_6(){ + if (this.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + return this.newNonResolvingListIterator(); +} +; +_.basicList = function basicList_2(){ + return new EContentsEList$2(this.eObject, this.eStructuralFeatures); +} +; +_.basicListIterator = function basicListIterator_13(){ + if (this.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + return this.newNonResolvingListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_14(index_0){ + var i, result; + if (this.eStructuralFeatures == null) { + if (index_0 < 0 || index_0 > 1) { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); + } + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this.newNonResolvingListIterator(); + for (i = 0; i < index_0; ++i) { + $next_15(result); + } + return result; +} +; +_.isEmpty = function isEmpty_33(){ + var feature, featureMap, i, j, size_0, value_0; + if (this.eStructuralFeatures != null) { + for (i = 0; i < this.eStructuralFeatures.length; ++i) { + feature = this.eStructuralFeatures[i]; + if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { + value_0 = this.eObject.eGet_1(feature, false); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + featureMap = castTo(value_0, 153); + for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { + if ($isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null) { + return false; + } + } + } + else if (feature.isMany()) { + if (!castTo(value_0, 14).isEmpty()) { + return false; + } + } + else if (value_0 != null) { + return false; + } + } + } + } + return true; +} +; +_.iterator_0 = function iterator_88(){ + return $iterator_1(this); +} +; +_.listIterator_1 = function listIterator_30(index_0){ + var i, result; + if (this.eStructuralFeatures == null) { + if (index_0 != 0) { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); + } + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this.resolve_0()?this.newResolvingListIterator():this.newNonResolvingListIterator(); + for (i = 0; i < index_0; ++i) { + $next_15(result); + } + return result; +} +; +_.move = function move_17(newPosition, oldPosition){ + throw toJs(new UnsupportedOperationException); +} +; +_.move_0 = function move_18(newPosition, o){ + throw toJs(new UnsupportedOperationException); +} +; +_.newNonResolvingListIterator = function newNonResolvingListIterator(){ + return new EContentsEList$FeatureIteratorImpl(this.eObject, this.eStructuralFeatures); +} +; +_.newResolvingListIterator = function newResolvingListIterator(){ + return new EContentsEList$ResolvingFeatureIteratorImpl(this.eObject, this.eStructuralFeatures); +} +; +_.resolve_0 = function resolve_4(){ + return true; +} +; +_.size_1 = function size_76(){ + var feature, featureMap, i, j, result, size_0, value_0; + result = 0; + if (this.eStructuralFeatures != null) { + for (i = 0; i < this.eStructuralFeatures.length; ++i) { + feature = this.eStructuralFeatures[i]; + if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { + value_0 = this.eObject.eGet_1(feature, false); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + featureMap = castTo(value_0, 153); + for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { + $isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null && ++result; + } + } + else + feature.isMany()?(result += castTo(value_0, 14).size_1()):value_0 != null && ++result; + } + } + } + return result; +} +; +_.useIsSet = function useIsSet(){ + return true; +} +; +var EMPTY_CONTENTS_ELIST; +var Lorg_eclipse_emf_ecore_util_EContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList', 486); +function ENamedElementImpl$1($anonymous0, $anonymous1){ + $clinit_EContentsEList(); + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(1156, 486, $intern_157, ENamedElementImpl$1); +_.newNonResolvingListIterator = function newNonResolvingListIterator_0(){ + return new ENamedElementImpl$1$2(this.eObject, this.eStructuralFeatures); +} +; +_.newResolvingListIterator = function newResolvingListIterator_0(){ + return new ENamedElementImpl$1$1(this.eObject, this.eStructuralFeatures); +} +; +_.useIsSet = function useIsSet_0(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1', 1156); +function $clinit_EContentsEList$FeatureIteratorImpl(){ + $clinit_EContentsEList$FeatureIteratorImpl = emptyMethod; + EMPTY_ITERATOR = new EContentsEList$FeatureIteratorImpl$1; +} + +function $next_15(this$static){ + var result; + if (this$static.prepared > 1 || this$static.hasNext_0()) { + ++this$static.cursor; + this$static.prepared = 0; + result = this$static.preparedResult; + this$static.hasNext_0(); + return result; + } + else { + throw toJs(new NoSuchElementException); + } +} + +function $scanNext(this$static){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (this$static.valueListIndex < this$static.valueListSize) { + entry = castTo(!this$static.valueInternalEList?this$static.valueList.get_0(this$static.valueListIndex):this$static.valueInternalEList.basicGet(this$static.valueListIndex), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + return true; + } + else { + ++this$static.valueListIndex; + } + } + return false; + } + else { + return this$static.valueListIndex < this$static.valueListSize; + } +} + +function $scanNext_0(this$static, values){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (values.hasNext_0()) { + entry = castTo(values.next_1(), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + values.previous_0(); + return true; + } + } + return false; + } + else { + return values.hasNext_0(); + } +} + +function $scanPrevious(this$static){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (this$static.valueListIndex > 0) { + entry = castTo(this$static.valueList.get_0(this$static.valueListIndex - 1), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + return true; + } + else { + --this$static.valueListIndex; + } + } + return false; + } + else { + return this$static.valueListIndex > 0; + } +} + +function $scanPrevious_0(this$static, values){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (values.hasPrevious()) { + entry = castTo(values.previous_0(), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + values.next_1(); + return true; + } + } + return false; + } + else { + return values.hasPrevious(); + } +} + +function EContentsEList$FeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + this.eObject = eObject; + this.eStructuralFeatures = eStructuralFeatures; +} + +defineClass(279, 1, $intern_158, EContentsEList$FeatureIteratorImpl); +_.forEachRemaining = function forEachRemaining_57(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_64(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.filter_0 = function filter_3(featureFilter){ + if (this.prepared != 0 || !!this.featureFilter) { + throw toJs(new IllegalStateException_0('Iterator already in use or already filtered')); + } + this.featureFilter = featureFilter; +} +; +_.hasNext_0 = function hasNext_46(){ + var entry, feature, newPreparedResult, newValueList, result, value_0; + switch (this.prepared) { + case 3: + case 2: + { + return true; + } + + case 1: + { + return false; + } + + case -3: + { + !this.values?++this.valueListIndex:this.values.next_1(); + } + + default:{ + if (!this.valueList || (!this.values?!$scanNext(this):!$scanNext_0(this, this.values))) { + while (this.featureCursor < this.eStructuralFeatures.length) { + feature = this.eStructuralFeatures[this.featureCursor++]; + if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { + value_0 = this.eObject.eGet_1(feature, this.resolve_0()); + this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 69); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 54)) { + this.values = null; + this.valueListSize = this.valueList.size_1(); + this.valueListIndex = 0; + } + else { + this.values = !this.valueInternalEList?this.valueList.listIterator_0():this.valueInternalEList.basicListIterator(); + } + if (!this.values?$scanNext(this):$scanNext_0(this, this.values)) { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = 3; + return true; + } + } + else if (value_0 != null) { + this.valueList = null; + this.values = null; + newPreparedResult = value_0; + this.preparedResult = newPreparedResult; + this.prepared = 2; + return true; + } + } + } + this.valueList = null; + this.values = null; + this.isHandlingFeatureMap = false; + this.prepared = 1; + return false; + } + else { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = 3; + return true; + } + } + + } +} +; +_.hasPrevious = function hasPrevious_9(){ + var entry, feature, newPreparedResult, newValueList, result, value_0; + switch (this.prepared) { + case -3: + case -2: + { + return true; + } + + case -1: + { + return false; + } + + case 3: + { + !this.values?--this.valueListIndex:this.values.previous_0(); + } + + default:{ + if (!this.valueList || (!this.values?!$scanPrevious(this):!$scanPrevious_0(this, this.values))) { + while (this.featureCursor > 0) { + feature = this.eStructuralFeatures[--this.featureCursor]; + if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { + value_0 = this.eObject.eGet_1(feature, this.resolve_0()); + this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 69); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 54)) { + this.valueListSize = this.valueList.size_1(); + this.valueListIndex = this.valueListSize; + } + else { + this.values = !this.valueInternalEList?this.valueList.listIterator_1(this.valueList.size_1()):this.valueInternalEList.basicListIterator_0(this.valueList.size_1()); + } + if (!this.values?$scanPrevious(this):$scanPrevious_0(this, this.values)) { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = -3; + return true; + } + } + else if (value_0 != null) { + this.valueList = null; + this.values = null; + newPreparedResult = value_0; + this.preparedResult = newPreparedResult; + this.prepared = -2; + return true; + } + } + } + this.valueList = null; + this.values = null; + this.prepared = -1; + return false; + } + else { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = -3; + return true; + } + } + + } +} +; +_.next_1 = function next_47(){ + return $next_15(this); +} +; +_.nextIndex_0 = function nextIndex_10(){ + return this.cursor; +} +; +_.previous_0 = function previous_10(){ + var result; + if (this.prepared < -1 || this.hasPrevious()) { + --this.cursor; + this.prepared = 0; + result = this.preparedResult; + this.hasPrevious(); + return result; + } + else { + throw toJs(new NoSuchElementException); + } +} +; +_.previousIndex = function previousIndex_9(){ + return this.cursor - 1; +} +; +_.remove = function remove_125(){ + throw toJs(new UnsupportedOperationException); +} +; +_.resolve_0 = function resolve_5(){ + return false; +} +; +_.set_1 = function set_34(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.useIsSet = function useIsSet_1(){ + return true; +} +; +_.cursor = 0; +_.featureCursor = 0; +_.isHandlingFeatureMap = false; +_.prepared = 0; +_.valueListIndex = 0; +_.valueListSize = 0; +var EMPTY_ITERATOR; +var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl', 279); +function EContentsEList$ResolvingFeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, eObject, eStructuralFeatures); +} + +defineClass(697, 279, $intern_158, EContentsEList$ResolvingFeatureIteratorImpl); +_.resolve_0 = function resolve_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$ResolvingFeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/ResolvingFeatureIteratorImpl', 697); +function ENamedElementImpl$1$1($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$ResolvingFeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1157, 697, $intern_158, ENamedElementImpl$1$1); +_.useIsSet = function useIsSet_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/1', 1157); +function ENamedElementImpl$1$2($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1158, 279, $intern_158, ENamedElementImpl$1$2); +_.useIsSet = function useIsSet_3(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/2', 1158); +function $$init_11(this$static){ +} + +function $getFeature(this$static){ + var eClass; + if (!this$static.feature && this$static.featureID != -1) { + eClass = this$static.notifier.eClass_0(); + this$static.feature = $getEStructuralFeature(eClass, this$static.featureID); + } + return this$static.feature; +} + +function ENotificationImpl(notifier, featureID, oldDoubleValue, newDoubleValue){ + NotificationImpl.call(this, 1, oldDoubleValue, newDoubleValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_0(notifier, featureID, oldIntValue, newIntValue){ + NotificationImpl_0.call(this, 1, oldIntValue, newIntValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_1(notifier, eventType, featureID, oldValue, newValue){ + ENotificationImpl_2.call(this, notifier, eventType, featureID, oldValue, newValue, -1); +} + +function ENotificationImpl_2(notifier, eventType, featureID, oldValue, newValue, position){ + NotificationImpl_1.call(this, eventType, oldValue, newValue, position); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_3(notifier, eventType, featureID, oldValue, newValue, position, wasSet){ + NotificationImpl_2.call(this, eventType, oldValue, newValue, position, wasSet); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_4(notifier, eventType, featureID, oldBooleanValue, newBooleanValue){ + NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_5(notifier, eventType, feature, oldByteValue, newByteValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldByteValue; + this.newSimplePrimitiveValue = newByteValue; + this.position = -1; + this.primitiveType = 1; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_6(notifier, eventType, feature, oldByteValue, newByteValue, isSetChange){ + ENotificationImpl_5.call(this, notifier, eventType, feature, oldByteValue, newByteValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_7(notifier, eventType, feature, oldCharValue, newCharValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldCharValue; + this.newSimplePrimitiveValue = newCharValue; + this.position = -1; + this.primitiveType = 2; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_8(notifier, eventType, feature, oldCharValue, newCharValue, isSetChange){ + ENotificationImpl_7.call(this, notifier, eventType, feature, oldCharValue, newCharValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_9(notifier, eventType, feature, oldDoubleValue, newDoubleValue){ + NotificationImpl.call(this, eventType, oldDoubleValue, newDoubleValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_10(notifier, eventType, feature, oldDoubleValue, newDoubleValue, isSetChange){ + ENotificationImpl_9.call(this, notifier, eventType, feature, oldDoubleValue, newDoubleValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_11(notifier, eventType, feature, oldFloatValue, newFloatValue){ + this.eventType = eventType; + this.oldIEEEPrimitiveValue = oldFloatValue; + this.newIEEEPrimitiveValue = newFloatValue; + this.position = -1; + this.primitiveType = 4; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_12(notifier, eventType, feature, oldFloatValue, newFloatValue, isSetChange){ + ENotificationImpl_11.call(this, notifier, eventType, feature, oldFloatValue, newFloatValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_13(notifier, eventType, feature, oldIntValue, newIntValue){ + NotificationImpl_0.call(this, eventType, oldIntValue, newIntValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_14(notifier, eventType, feature, oldIntValue, newIntValue, isSetChange){ + ENotificationImpl_13.call(this, notifier, eventType, feature, oldIntValue, newIntValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_15(notifier, eventType, feature, oldLongValue, newLongValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldLongValue; + this.newSimplePrimitiveValue = newLongValue; + this.position = -1; + this.primitiveType = 6; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_16(notifier, eventType, feature, oldLongValue, newLongValue, isSetChange){ + ENotificationImpl_15.call(this, notifier, eventType, feature, oldLongValue, newLongValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue){ + ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, -1); +} + +function ENotificationImpl_18(notifier, eventType, feature, oldValue, newValue, position){ + NotificationImpl_1.call(this, eventType, oldValue, newValue, position); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, isSetChange){ + ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, isSetChange?-2:-1); +} + +function ENotificationImpl_20(notifier, eventType, feature, oldShortValue, newShortValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldShortValue; + this.newSimplePrimitiveValue = newShortValue; + this.position = -1; + this.primitiveType = 7; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_21(notifier, eventType, feature, oldShortValue, newShortValue, isSetChange){ + ENotificationImpl_20.call(this, notifier, eventType, feature, oldShortValue, newShortValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_22(notifier, eventType, feature, oldBooleanValue, newBooleanValue){ + NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_23(notifier, eventType, feature, oldBooleanValue, newBooleanValue, isSetChange){ + ENotificationImpl_22.call(this, notifier, eventType, feature, oldBooleanValue, newBooleanValue); + isSetChange && (this.position = -2); +} + +defineClass(36, 143, $intern_142, ENotificationImpl, ENotificationImpl_0, ENotificationImpl_1, ENotificationImpl_2, ENotificationImpl_3, ENotificationImpl_4, ENotificationImpl_5, ENotificationImpl_6, ENotificationImpl_7, ENotificationImpl_8, ENotificationImpl_9, ENotificationImpl_10, ENotificationImpl_11, ENotificationImpl_12, ENotificationImpl_13, ENotificationImpl_14, ENotificationImpl_15, ENotificationImpl_16, ENotificationImpl_17, ENotificationImpl_18, ENotificationImpl_19, ENotificationImpl_20, ENotificationImpl_21, ENotificationImpl_22, ENotificationImpl_23); +_.getFeature = function getFeature_6(){ + return $getFeature(this); +} +; +_.getFeatureDefaultValue = function getFeatureDefaultValue_0(){ + var feature; + feature = $getFeature(this); + if (feature) { + return feature.getDefaultValue(); + } + return null; +} +; +_.getFeatureID = function getFeatureID_10(expectedClass){ + this.featureID == -1 && !!this.feature && (this.featureID = this.notifier.eDerivedStructuralFeatureID(this.feature.getFeatureID_0(), this.feature.getContainerClass())); + return this.notifier.eBaseStructuralFeatureID(this.featureID, expectedClass); +} +; +_.getNotifier = function getNotifier_6(){ + return this.notifier; +} +; +_.isFeatureUnsettable = function isFeatureUnsettable_0(){ + var feature; + feature = $getFeature(this); + if (feature) { + return feature.isUnsettable(); + } + return false; +} +; +_.featureID = -1; +var Lorg_eclipse_emf_ecore_impl_ENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENotificationImpl', 36); +function $eBasicRemoveFromContainerFeature_9(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 10) { + return this$static.eContainer.eInverseRemove(this$static, 11, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getEGenericExceptions(this$static){ + if (!this$static.eGenericExceptions) { + this$static.eGenericExceptions = new EOperationImpl$2(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); + !this$static.eExceptions && (this$static.eExceptions = new EOperationImpl$1(this$static, this$static)); + } + return this$static.eGenericExceptions; +} + +function $isSetEExceptions(this$static){ + return !!this$static.eExceptions && $getEGenericExceptions(this$static.eExceptions.this$01).size_0 != 0 && !(!!this$static.eGenericExceptions && $isSet_0(this$static.eGenericExceptions)); +} + +function EOperationImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(399, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 59:1, 108:1, 472:1, 49:1, 97:1, 150:1, 399:1, 284:1, 114:1, 115:1}, EOperationImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_10(msgs){ + return $eBasicRemoveFromContainerFeature_9(this, msgs); +} +; +_.eGet = function eGet_27(featureID, resolve, coreType){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null; + case 11: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , this.eTypeParameters; + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , this.eParameters; + case 13: + return !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)) , this.eExceptions; + case 14: + return $getEGenericExceptions(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_17(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 10: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_9(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 10, msgs); + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicAdd_0(this.eParameters, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_20(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 10: + return $eBasicSetContainer(this, null, 10, msgs); + case 11: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicRemove_0(this.eParameters, otherEnd, msgs); + case 14: + return $basicRemove_0($getEGenericExceptions(this), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_26(featureID){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null); + case 11: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 12: + return !!this.eParameters && this.eParameters.size_0 != 0; + case 13: + return !!this.eExceptions && $getEGenericExceptions(this.eExceptions.this$01).size_0 != 0 && !(!!this.eGenericExceptions && $isSet_0(this.eGenericExceptions)); + case 14: + return !!this.eGenericExceptions && $isSet_0(this.eGenericExceptions); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); +} +; +_.eSet = function eSet_25(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 11: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 12: + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $clear_13(this.eParameters); + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $addAll_9(this.eParameters, castTo(newValue, 14)); + return; + case 13: + !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); + $clear_12(this.eExceptions); + !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); + $addAll_9(this.eExceptions, castTo(newValue, 14)); + return; + case 14: + $clear_13($getEGenericExceptions(this)); + $addAll_9($getEGenericExceptions(this), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_26(){ + return $clinit_EcorePackage$Literals() , EOPERATION; +} +; +_.eUnset = function eUnset_25(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 11: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $clear_13(this.eTypeParameters); + return; + case 12: + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $clear_13(this.eParameters); + return; + case 13: + !!this.eExceptions && $clear_12(this.eExceptions); + return; + case 14: + !!this.eGenericExceptions && $clear_13(this.eGenericExceptions); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); +} +; +_.freeze = function freeze_7(){ + var i, size_0; + if (this.eParameters) { + for (i = 0 , size_0 = this.eParameters.size_0; i < size_0; ++i) { + $freeze($get_20(this.eParameters, i)); + } + } + $getEType(this); + this.eFlags |= 1; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl', 399); +function $delegateAdd_1(this$static, index_0, eClassifier){ + $add_20($getEGenericExceptions(this$static.this$01), index_0, $wrap_1(eClassifier)); +} + +function $delegateAdd_2(this$static, eClassifier){ + $add_21($getEGenericExceptions(this$static.this$01), $wrap_1(eClassifier)); +} + +function $delegateContains_0(this$static, object){ + var eClassifier, eClassifier$iterator; + for (eClassifier$iterator = new AbstractEList$EIterator(this$static); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = castTo($doNext(eClassifier$iterator), 138); + if (maskUndefined(object) === maskUndefined(eClassifier)) { + return true; + } + } + return false; +} + +function $delegateSet_0(this$static, index_0, eClassifier){ + var eGenericType, result, result0; + eGenericType = castTo($get_20($getEGenericExceptions(this$static.this$01), index_0), 87); + result0 = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + (result0.eIsProxy()?$eResolveProxy(this$static.owner, castTo(result0, 49)):result0) == eClassifier?$getERawType(eGenericType):$setEClassifier(eGenericType, eClassifier); + return result0; +} + +function $wrap_1(eClassifier){ + var eGenericType, eGenericType0; + eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClassifier); + return eGenericType0; +} + +function EOperationImpl$1(this$0, $anonymous0){ + this.this$01 = this$0; + DelegatingEcoreEList.call(this, $anonymous0); +} + +defineClass(505, 742, $intern_156, EOperationImpl$1); +_.delegateAdd = function delegateAdd_3(index_0, eClassifier){ + $delegateAdd_1(this, index_0, castTo(eClassifier, 138)); +} +; +_.delegateAdd_0 = function delegateAdd_4(eClassifier){ + $delegateAdd_2(this, castTo(eClassifier, 138)); +} +; +_.delegateGet = function delegateGet_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); +} +; +_.delegateRemove = function delegateRemove_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); +} +; +_.delegateSet = function delegateSet_1(index_0, eClassifier){ + return $delegateSet_0(this, index_0, castTo(eClassifier, 138)); +} +; +_.canContainNull = function canContainNull_5(){ + return false; +} +; +_.createNotification = function createNotification_5(eventType, oldObject, newObject, index_0, wasSet){ + return null; +} +; +_.delegateBasicList = function delegateBasicList_1(){ + return new EOperationImpl$1$1(this); +} +; +_.delegateClear = function delegateClear_1(){ + $clear_13($getEGenericExceptions(this.this$01)); +} +; +_.delegateContains = function delegateContains_1(object){ + return $delegateContains_0(this, object); +} +; +_.delegateContainsAll = function delegateContainsAll_1(collection){ + var object, object$iterator; + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$delegateContains_0(this, object)) { + return false; + } + } + return true; +} +; +_.delegateEquals = function delegateEquals_1(object){ + var i, j, list; + if (instanceOf(object, 15)) { + list = castTo(object, 15); + if (list.size_1() == $getEGenericExceptions(this.this$01).size_0) { + for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { + if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { + return false; + } + } + return true; + } + } + return false; +} +; +_.delegateHashCode = function delegateHashCode_1(){ + var eGenericType, eGenericType$iterator, hashCode, object, result; + hashCode = 1; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + object = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + hashCode = 31 * hashCode + (!object?0:hashCode__I__devirtual$(object)); + } + return hashCode; +} +; +_.delegateIndexOf = function delegateIndexOf_1(object){ + var eGenericType, eGenericType$iterator, index_0, result; + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))) { + return index_0; + } + ++index_0; + } + return -1; +} +; +_.delegateIsEmpty = function delegateIsEmpty_1(){ + return $getEGenericExceptions(this.this$01).size_0 == 0; +} +; +_.delegateList_1 = function delegateList_3(){ + return null; +} +; +_.delegateSize = function delegateSize_1(){ + return $getEGenericExceptions(this.this$01).size_0; +} +; +_.delegateToArray = function delegateToArray_3(){ + var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; + size_0 = $getEGenericExceptions(this.this$01).size_0; + result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + result0[index_0++] = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + } + return result0; +} +; +_.delegateToArray_0 = function delegateToArray_4(array){ + var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; + size_0 = $getEGenericExceptions(this.this$01).size_0; + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + array.length > size_0 && setCheck(array, size_0, null); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + rawType = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + setCheck(array, index_0++, rawType); + } + return array; +} +; +_.delegateToString = function delegateToString_1(){ + var eGenericExceptions, i, result, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + eGenericExceptions = $getEGenericExceptions(this.this$01); + for (i = 0 , size_0 = $getEGenericExceptions(this.this$01).size_0; i < size_0;) { + $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericExceptions, i), 87).eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.dispatchNotification = function dispatchNotification_4(notification){ +} +; +_.getFeatureID_0 = function getFeatureID_11(){ + return 13; +} +; +_.hasInstanceClass = function hasInstanceClass_2(){ + return true; +} +; +_.hasInverse = function hasInverse_5(){ + return false; +} +; +_.hasManyInverse = function hasManyInverse_2(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse_3(){ + return false; +} +; +_.hasProxies = function hasProxies_2(){ + return true; +} +; +_.isContainment = function isContainment_5(){ + return false; +} +; +_.isEObject = function isEObject_3(){ + return true; +} +; +_.isInstance = function isInstance_5(object){ + return instanceOf(object, 138); +} +; +_.isSet_0 = function isSet_9(){ + return $isSetEExceptions(this.this$01); +} +; +_.isUnique = function isUnique_6(){ + return true; +} +; +_.useEquals = function useEquals_12(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1', 505); +function EOperationImpl$1$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1340, 1964, $intern_37, EOperationImpl$1$1); +_.listIterator_1 = function listIterator_31(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_77(){ + return $getEGenericExceptions(this.this$11.this$01).size_0; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1/1', 1340); +function $isSet_0(this$static){ + var eGenericType, eGenericType$iterator; + for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { + return true; + } + } + return false; +} + +function $shadowAdd_0(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 3, 13, null, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowRemove_0(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 4, 13, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), null, $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowSet_0(this$static, oldEGenericType, newEGenericType, notifications){ + var notification, result, result0; + notification = new ENotificationImpl_3(this$static.owner, 1, 13, (result0 = oldEGenericType.eRawType , result0?result0:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), (result = newEGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, oldEGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function EOperationImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 14); +} + +defineClass(1341, 545, $intern_154, EOperationImpl$2); +_.move = function move_19(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , EOPERATION__EEXCEPTIONS), valueOf_4(sourceIndex), (result = result0.eRawType , result?result:EJAVA_OBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_1(eGenericType, notifications){ + return $shadowAdd_0(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowRemove = function shadowRemove_1(eGenericType, notifications){ + return $shadowRemove_0(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowSet = function shadowSet_1(oldEGenericType, newEGenericType, notifications){ + return $shadowSet_0(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); +} +; +_.createNotification = function createNotification_6(eventType, oldObject, newObject, index_0, wasSet){ + switch (eventType) { + case 3: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); + } + + case 5: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); + } + + default:{ + return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); + } + + } +} +; +_.hasShadow = function hasShadow_1(){ + return true; +} +; +_.isSet_0 = function isSet_10(){ + return $isSet_0(this); +} +; +_.unset = function unset_6(){ + $clear_13(this); +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/2', 1341); +function EPackageImpl$1(this$0, val$factory){ + this.this$01 = this$0; + this.val$factory2 = val$factory; +} + +defineClass(498, 1, {1938:1, 498:1}, EPackageImpl$1); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/1', 498); +function EObjectContainmentWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(16, 85, $intern_154, EObjectContainmentWithInverseEList); +_.getInverseFeatureClass = function getInverseFeatureClass_0(){ + return this.dataClass; +} +; +_.getInverseFeatureID = function getInverseFeatureID_0(){ + return this.inverseFeatureID; +} +; +_.hasNavigableInverse = function hasNavigableInverse_4(){ + return true; +} +; +_.inverseFeatureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList', 16); +function EObjectContainmentWithInverseEList$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(353, 16, $intern_154, EObjectContainmentWithInverseEList$Resolving); +_.hasProxies = function hasProxies_3(){ + return true; +} +; +_.resolve = function resolve_7(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Resolving', 353); +function EPackageImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentWithInverseEList$Resolving.call(this, $anonymous0, $anonymous1, 5, 6); +} + +defineClass(298, 353, $intern_154, EPackageImpl$2); +_.didChange = function didChange_1(){ + this.this$01.eNameToEClassifierMap = null; +} +; +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/2', 298); +function EPackageImpl$3(){ +} + +defineClass(1228, 1, {}, EPackageImpl$3); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/3', 1228); +function $getEFactory(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = $get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 235)) { + result = castTo(ePackage, 235); + result.getNsURI() == null && undefined; + return result.getEFactoryInstance(); + } + else if (instanceOf(ePackage, 498)) { + ePackageDescriptor = castTo(ePackage, 1938); + result = ePackageDescriptor.val$factory2; + return result; + } + else { + return null; + } +} + +function $getEPackage_0(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = nsURI == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 235)) { + result = castTo(ePackage, 235); + result.getNsURI() == null && undefined; + return result; + } + else if (instanceOf(ePackage, 498)) { + ePackageDescriptor = castTo(ePackage, 1938); + result = ePackageDescriptor.this$01; + !!result && (result.nsURI == null?undefined:nsURI == null?$put_9(this$static.hashCodeMap, null, result):$put_10(this$static.stringMap, nsURI, result)); + return result; + } + else { + return null; + } +} + +function EPackageRegistryImpl(){ + HashMap.call(this); +} + +defineClass(718, 43, $intern_76, EPackageRegistryImpl); +_.containsKey = function containsKey_16(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +var Lorg_eclipse_emf_ecore_impl_EPackageRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageRegistryImpl', 718); +function $eBasicRemoveFromContainerFeature_10(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 10) { + return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_emf_ecore_EOperation_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function EParameterImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(509, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 2017:1, 108:1, 472:1, 49:1, 97:1, 150:1, 509:1, 284:1, 114:1, 115:1}, EParameterImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_11(msgs){ + return $eBasicRemoveFromContainerFeature_10(this, msgs); +} +; +_.eGet = function eGet_28(featureID, resolve, coreType){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_18(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 10: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_10(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 10, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_21(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 10: + return $eBasicSetContainer(this, null, 10, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_27(featureID){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID)); +} +; +_.eStaticClass = function eStaticClass_27(){ + return $clinit_EcorePackage$Literals() , EPARAMETER; +} +; +var Lorg_eclipse_emf_ecore_impl_EParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EParameterImpl', 509); +function $basicGetEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType) { + eType = this$static.eType; + instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); + } + return this$static.eReferenceType; +} + +function $getEOpposite(this$static){ + var oldEOpposite; + if (!!this$static.eOpposite && (this$static.eOpposite.eFlags_0 & 64) != 0) { + oldEOpposite = this$static.eOpposite; + this$static.eOpposite = castTo($eResolveProxy(this$static, oldEOpposite), 18); + this$static.eOpposite != oldEOpposite && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 21, oldEOpposite, this$static.eOpposite)); + } + return this$static.eOpposite; +} + +function $getEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType || (this$static.eFlags & 1) == 0 && (this$static.eReferenceType.eFlags_0 & 64) != 0) { + eType = $getEType(this$static); + instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); + } + return this$static.eReferenceType; +} + +function $setContainment(this$static, value_0){ + $setContainmentGen(this$static, value_0); + instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 2); +} + +function $setContainmentGen(this$static, newContainment){ + var oldContainment; + oldContainment = (this$static.eFlags & $intern_134) != 0; + newContainment?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldContainment, newContainment)); +} + +function $setEOpposite(this$static, newEOpposite){ + var oldEOpposite; + oldEOpposite = this$static.eOpposite; + this$static.eOpposite = newEOpposite; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 21, oldEOpposite, this$static.eOpposite)); +} + +function $setResolveProxies(this$static, newResolveProxies){ + var oldResolveProxies; + oldResolveProxies = (this$static.eFlags & $intern_63) != 0; + newResolveProxies?(this$static.eFlags |= $intern_63):(this$static.eFlags &= -65537); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 20, oldResolveProxies, newResolveProxies)); +} + +function EReferenceImpl(){ + EStructuralFeatureImpl.call(this); + this.eFlags |= $intern_63; +} + +defineClass(99, 449, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 18:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 99:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EReferenceImpl); +_.eGet = function eGet_29(featureID, resolve, coreType){ + var eClass, lower, theOpposite, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + case 18: + return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; + case 19: + return $clinit_Boolean() , theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0?true:false; + case 20: + return $clinit_Boolean() , (this.eFlags & $intern_63) != 0?true:false; + case 21: + if (resolve) + return $getEOpposite(this); + return this.eOpposite; + case 22: + if (resolve) + return $getEReferenceType(this); + return $basicGetEReferenceType(this); + case 23: + return !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)) , this.eKeys; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_28(featureID){ + var eClass, lower, theOpposite, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_137) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_134) != 0; + case 19: + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; + case 20: + return (this.eFlags & $intern_63) == 0; + case 21: + return !!this.eOpposite; + case 22: + return !!$basicGetEReferenceType(this); + case 23: + return !!this.eKeys && this.eKeys.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); +} +; +_.eSet = function eSet_26(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + case 18: + $setContainment(this, $booleanValue(castToBoolean(newValue))); + return; + case 20: + $setResolveProxies(this, $booleanValue(castToBoolean(newValue))); + return; + case 21: + $setEOpposite(this, castTo(newValue, 18)); + return; + case 23: + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $clear_13(this.eKeys); + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $addAll_9(this.eKeys, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_28(){ + return $clinit_EcorePackage$Literals() , EREFERENCE; +} +; +_.eUnset = function eUnset_26(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + case 18: + $setContainmentGen(this, false); + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 2); + return; + case 20: + $setResolveProxies(this, true); + return; + case 21: + $setEOpposite(this, null); + return; + case 23: + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $clear_13(this.eKeys); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); +} +; +_.freeze = function freeze_8(){ + $getEReferenceType(this); + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.getEOpposite = function getEOpposite_0(){ + return $getEOpposite(this); +} +; +_.isContainer = function isContainer_0(){ + var theOpposite; + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; +} +; +_.isContainment = function isContainment_6(){ + return (this.eFlags & $intern_134) != 0; +} +; +_.isResolveProxies_0 = function isResolveProxies_1(){ + return (this.eFlags & $intern_63) != 0; +} +; +_.setEType = function setEType_1(newEType, msgs){ + this.eReferenceType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.toString_0 = function toString_153(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_29(this); + result = new StringBuffer_1($toString_29(this)); + result.string += ' (containment: '; + $append_4(result, (this.eFlags & $intern_134) != 0); + result.string += ', resolveProxies: '; + $append_4(result, (this.eFlags & $intern_63) != 0); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_impl_EReferenceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EReferenceImpl', 99); +function $setKey(this$static, key){ + $setTypedKeyGen(this$static, key == null?null:(checkCriticalNotNull(key) , key)); +} + +function $setTypedKey_0(this$static, newKey){ + $setTypedKeyGen(this$static, newKey == null?null:(checkCriticalNotNull(newKey) , newKey)); +} + +function $setTypedKeyGen(this$static, newKey){ + var oldKey; + oldKey = this$static.key; + this$static.key = newKey; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); +} + +function $setTypedValue_0(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); +} + +function $setValue_2(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + $setTypedValue_0(this$static, value_0); + return oldValue; +} + +function EStringToStringMapEntryImpl(){ +} + +defineClass(548, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 548:1, 114:1, 115:1}, EStringToStringMapEntryImpl); +_.equals_0 = function equals_196(other){ + return this === other; +} +; +_.getKey = function getKey_11(){ + return this.key; +} +; +_.getValue = function getValue_14(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_82(){ + return getHashCode_0(this); +} +; +_.setKey = function setKey_2(key){ + $setKey(this, castToString(key)); +} +; +_.setValue = function setValue_14(value_0){ + return $setValue_2(this, castToString(value_0)); +} +; +_.eGet = function eGet_30(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return this.key; + case 1: + return this.value_0; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_29(featureID){ + var eClass; + switch (featureID) { + case 0: + return this.key != null; + case 1: + return this.value_0 != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); +} +; +_.eSet = function eSet_27(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setTypedKey_0(this, castToString(newValue)); + return; + case 1: + $setTypedValue_0(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_29(){ + return $clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY; +} +; +_.eUnset = function eUnset_27(featureID){ + var eClass; + switch (featureID) { + case 0: + $setTypedKeyGen(this, null); + return; + case 1: + $setTypedValue_0(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); +} +; +_.getHash = function getHash_2(){ + var theKey; + if (this.hash == -1) { + theKey = this.key; + this.hash = theKey == null?0:getHashCode_1(theKey); + } + return this.hash; +} +; +_.setHash = function setHash_2(hash){ + this.hash = hash; +} +; +_.toString_0 = function toString_154(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (key: '; + $append_3(result, this.key); + result.string += ', value: '; + $append_3(result, this.value_0); + result.string += ')'; + return result.string; +} +; +_.hash = -1; +_.key = null; +_.value_0 = null; +var Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStringToStringMapEntryImpl', 548); +var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry/Internal'); +function $validate_2(this$static, value_0){ + var valueClass; + if (value_0 != null && !this$static.eStructuralFeature.getEType().isInstance(value_0)) { + valueClass = instanceOf(value_0, 56)?castTo(value_0, 56).eClass_0().name_0:$getName(getClass__Ljava_lang_Class___devirtual$(value_0)); + throw toJs(new ClassCastException_0("The feature '" + this$static.eStructuralFeature.getName() + "'s type '" + this$static.eStructuralFeature.getEType().getName() + "' does not permit a value of type '" + valueClass + "'")); + } +} + +function EStructuralFeatureImpl$BasicFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(565, 1, $intern_159); +_.createEntry = function createEntry(value_0){ + return this.createEntry_0(castTo(value_0, 49)); +} +; +_.createEntry_0 = function createEntry_0(value_0){ + return this.createEntry(value_0); +} +; +_.equals_0 = function equals_197(that){ + var entry, value_0; + if (this === that) { + return true; + } + else if (instanceOf(that, 72)) { + entry = castTo(that, 72); + if (entry.getEStructuralFeature() == this.eStructuralFeature) { + value_0 = this.getValue(); + return value_0 == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue()); + } + else { + return false; + } + } + else { + return false; + } +} +; +_.getEStructuralFeature = function getEStructuralFeature_1(){ + return this.eStructuralFeature; +} +; +_.hashCode_1 = function hashCode_83(){ + var value_0; + value_0 = this.getValue(); + return hashCode__I__devirtual$(this.eStructuralFeature) ^ (value_0 == null?0:hashCode__I__devirtual$(value_0)); +} +; +_.toString_0 = function toString_155(){ + var eStructuralFeature, prefix; + eStructuralFeature = this.eStructuralFeature; + prefix = $getEPackage(eStructuralFeature.getEContainingClass()).getNsPrefix(); + eStructuralFeature.getName(); + return (prefix != null && prefix.length != 0?prefix + ':' + eStructuralFeature.getName():eStructuralFeature.getName()) + '=' + this.getValue(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$BasicFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/BasicFeatureMapEntry', 565); +function $inverseAdd(this$static, owner, otherEnd, featureID, notifications){ + var containmentFeatureID; + if (otherEnd) { + containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); + notifications = otherEnd.eInverseAdd(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); + } + return notifications; +} + +function $inverseRemove(this$static, owner, otherEnd, featureID, notifications){ + var containmentFeatureID; + if (otherEnd) { + containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); + notifications = otherEnd.eInverseRemove(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); + } + return notifications; +} + +function EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(776, 565, $intern_159, EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry); +_.createEntry_0 = function createEntry_1(value_0){ + return new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_15(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_3(owner, featureID, notifications){ + return $inverseAdd(this, owner, this.value_0, featureID, notifications); +} +; +_.inverseRemove_0 = function inverseRemove_3(owner, featureID, notifications){ + return $inverseRemove(this, owner, this.value_0, featureID, notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry', 776); +function EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(feature, featureMapFeature){ + this.feature = feature; + this.featureMapFeature = featureMapFeature; +} + +defineClass(1314, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator); +_.dynamicGet_0 = function dynamicGet_3(owner, settings, index_0, resolve, coreType){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.setting(this.feature).get_6(resolve); +} +; +_.dynamicInverseAdd = function dynamicInverseAdd(owner, settings, index_0, otherEnd, notifications){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.basicAdd_0(this.feature, otherEnd, notifications); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove(owner, settings, index_0, otherEnd, notifications){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.basicRemove_0(this.feature, otherEnd, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.setting(this.feature).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_3(owner, settings, index_0, newValue){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + featureMap.setting(this.feature).set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting(owner, settings, index_0){ + return castTo($eGet_0(owner, this.featureMapFeature), 215).setting(this.feature); +} +; +_.dynamicUnset_0 = function dynamicUnset_3(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + featureMap.setting(this.feature).unset(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator', 1314); +function $createDynamicSetting(this$static, owner){ + switch (this$static.style) { + case 0: + case 2: + case 4: + case 6: + case 42: + case 44: + case 46: + case 48: + case 8: + case 10: + case 12: + case 14: + case 16: + case 18: + case 20: + case 22: + case 24: + case 26: + case 28: + case 30: + case 32: + case 34: + case 36: + case 38: + return new EcoreEList$Dynamic(this$static.dynamicKind, this$static.dataClass, owner, this$static.feature); + case 1: + return new EObjectContainmentEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 43: + return new EObjectContainmentEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 3: + return new EObjectContainmentEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 45: + return new EObjectContainmentEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 41: + return new EcoreEMap(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 50: + return new EcoreEMap$Unsettable(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 5: + return new EObjectContainmentWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 47: + return new EObjectContainmentWithInverseEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 7: + return new EObjectContainmentWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 49: + return new EObjectContainmentWithInverseEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 9: + return new EDataTypeUniqueEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 11: + return new EDataTypeUniqueEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 13: + return new EDataTypeEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 15: + return new EDataTypeEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 17: + return new EObjectResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 19: + return new EObjectResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 21: + return new EObjectEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 23: + return new EObjectEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 25: + return new EObjectWithInverseResolvingEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 27: + return new EObjectWithInverseResolvingEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 29: + return new EObjectWithInverseEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 31: + return new EObjectWithInverseEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 33: + return new EObjectWithInverseResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 35: + return new EObjectWithInverseResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 37: + return new EObjectWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 39: + return new EObjectWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 40: + return new BasicFeatureMap(owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + default:throw toJs(new RuntimeException_0('Unknown feature style: ' + this$static.style)); + } +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany(style, dataClass, feature){ + this.style = style; + this.dataClass = dataClass; + this.feature = feature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_0(style, dataClass, feature, inverseFeature){ + this.style = style; + this.dataClass = dataClass; + this.feature = feature; + this.inverseFeature = inverseFeature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_1(style, feature){ + this.style = style; + this.dataClass = Ljava_lang_Object_2_classLit; + this.dynamicKind = kind_0(feature); + this.feature = feature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_2(style, feature, inverseFeature){ + this.style = style; + this.dataClass = Ljava_lang_Object_2_classLit; + this.dynamicKind = kind_0(feature); + this.feature = feature; + this.inverseFeature = inverseFeature; +} + +defineClass(89, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateMany, EStructuralFeatureImpl$InternalSettingDelegateMany_0, EStructuralFeatureImpl$InternalSettingDelegateMany_1, EStructuralFeatureImpl$InternalSettingDelegateMany_2); +_.dynamicGet_0 = function dynamicGet_4(owner, settings, index_0, resolve, coreType){ + var result; + result = settings.dynamicGet(index_0); + result == null && settings.dynamicSet(index_0, result = $createDynamicSetting(this, owner)); + if (!coreType) { + switch (this.style) { + case 50: + case 41: + return castTo(result, 589).map_2(); + case 40: + return castTo(result, 215).getWrapper(); + } + } + return result; +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_0(owner, settings, index_0, otherEnd, notifications){ + var result, setting; + setting = settings.dynamicGet(index_0); + setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + result = castTo(setting, 69).basicAdd(otherEnd, notifications); + return result; +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_0(owner, settings, index_0, otherEnd, notifications){ + var setting; + setting = settings.dynamicGet(index_0); + setting != null && (notifications = castTo(setting, 69).basicRemove(otherEnd, notifications)); + return notifications; +} +; +_.dynamicIsSet = function dynamicIsSet_0(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null && castTo(setting, 76).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_4(owner, settings, index_0, newValue){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 76); + !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + setting.set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting_0(owner, settings, index_0){ + var result, setting; + setting = settings.dynamicGet(index_0); + setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + if (instanceOf(setting, 76)) { + return castTo(setting, 76); + } + else { + result = castTo(settings.dynamicGet(index_0), 15); + return new EStructuralFeatureImpl$SettingMany(result); + } +} +; +_.dynamicUnset_0 = function dynamicUnset_4(owner, settings, index_0){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 76); + !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + setting.unset(); +} +; +_.dynamicKind = 0; +_.style = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateMany', 89); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle = emptyMethod; + NIL_0 = ($clinit_EStructuralFeature$Internal$DynamicValueHolder() , NIL); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingle(feature){ + this.feature = feature; +} + +defineClass(504, 1, {}); +_.dynamicInverseAdd = function dynamicInverseAdd_1(owner, settings, index_0, otherEnd, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_1(owner, settings, index_0, otherEnd, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicSetting = function dynamicSetting_1(owner, settings, index_0){ + return new EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this, owner, settings, index_0); +} +; +var NIL_0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle', 504); +function EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this$1, val$owner, val$settings, val$index){ + this.this$11 = this$1; + this.val$owner2 = val$owner; + this.val$settings3 = val$settings; + this.val$index4 = val$index; +} + +defineClass(1331, 1, $intern_147, EStructuralFeatureImpl$InternalSettingDelegateSingle$1); +_.get_6 = function get_64(resolve){ + return this.this$11.dynamicGet_0(this.val$owner2, this.val$settings3, this.val$index4, resolve, true); +} +; +_.isSet_0 = function isSet_11(){ + return this.this$11.dynamicIsSet(this.val$owner2, this.val$settings3, this.val$index4); +} +; +_.set_1 = function set_35(newValue){ + this.this$11.dynamicSet_0(this.val$owner2, this.val$settings3, this.val$index4, newValue); +} +; +_.unset = function unset_7(){ + this.this$11.dynamicUnset_0(this.val$owner2, this.val$settings3, this.val$index4); +} +; +_.val$index4 = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle/1', 1331); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(769, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainer); +_.dynamicGet_0 = function dynamicGet_5(owner, settings, index_0, resolve, coreType){ + return eContainmentFeature(owner, owner.eInternalContainer(), owner.eContainerFeatureID_0()) == this.inverseFeature?this.isResolveProxies_0() && resolve?$eContainer(owner):owner.eInternalContainer():null; +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_2(owner, settings, index_0, otherEnd, notifications){ + var eContainerFeatureID, featureID; + !!owner.eInternalContainer() && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return owner.eBasicSetContainer_0(otherEnd, featureID, notifications); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_2(owner, settings, index_0, otherEnd, notifications){ + var featureID; + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return owner.eBasicSetContainer_0(null, featureID, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet_1(owner, settings, index_0){ + var featureID; + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return !!owner.eInternalContainer() && owner.eContainerFeatureID_0() == featureID; +} +; +_.dynamicSet_0 = function dynamicSet_5(owner, settings, index_0, newValue){ + var eContainer, eContainerFeatureID, featureID, internalEObject, notifications; + if (newValue != null && !$isInstance(this.eClass, newValue)) { + throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); + } + eContainer = owner.eInternalContainer(); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + if (maskUndefined(newValue) !== maskUndefined(eContainer) || owner.eContainerFeatureID_0() != featureID && newValue != null) { + if (isAncestor(owner, castTo(newValue, 56))) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + owner.toString_0())); + notifications = null; + !!eContainer && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); + internalEObject = castTo(newValue, 49); + !!internalEObject && (notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications)); + notifications = owner.eBasicSetContainer_0(internalEObject, featureID, notifications); + !!notifications && notifications.dispatch_0(); + } + else { + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_1(owner, 1, featureID, newValue, newValue)); + } +} +; +_.dynamicUnset_0 = function dynamicUnset_5(owner, settings, index_0){ + var eContainer, eContainerFeatureID, featureID, notifications; + eContainer = owner.eInternalContainer(); + if (eContainer) { + notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(null):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, null)); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + notifications = owner.eBasicSetContainer_0(null, featureID, notifications); + !!notifications && notifications.dispatch_0(); + } + else { + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 1, this.feature, null, null)); + } +} +; +_.isResolveProxies_0 = function isResolveProxies_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainer_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer', 769); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleContainer.call(this, eClass, feature, inverseFeature); +} + +defineClass(1315, 769, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving); +_.isResolveProxies_0 = function isResolveProxies_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving', 1315); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData(defaultValue, intrinsicDefaultValue, feature){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.defaultValue = defaultValue; + this.intrinsicDefaultValue = intrinsicDefaultValue; + this.notificationCreator = ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , OBJECT_NOTIFICATION_CREATOR); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleData_0(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.defaultValue = defaultValue; + this.intrinsicDefaultValue = intrinsicDefaultValue; + this.notificationCreator = notificationCreator; +} + +defineClass(563, 504, {}); +_.dynamicGet_0 = function dynamicGet_6(owner, settings, index_0, resolve, coreType){ + var result; + return result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result; +} +; +_.dynamicIsSet = function dynamicIsSet_2(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null && (maskUndefined(setting) === maskUndefined(NIL_0) || !equals_Ljava_lang_Object__Z__devirtual$(setting, this.defaultValue)); +} +; +_.dynamicSet_0 = function dynamicSet_6(owner, settings, index_0, newValue){ + var oldValue, result; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); + if (newValue == null) { + if (this.intrinsicDefaultValue != null) { + settings.dynamicSet(index_0, null); + newValue = this.defaultValue; + } + else + this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, newValue)); + } + else { + if (newValue == null) { + this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + } +} +; +_.dynamicUnset_0 = function dynamicUnset_6(owner, settings, index_0){ + var oldValue, result; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); + settings.dynamicUnset(index_0); + $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, this.defaultValue)); + } + else { + settings.dynamicUnset(index_0); + } +} +; +_.validate_0 = function validate_2(object){ + throw toJs(new ClassCastException); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData', 563); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator = emptyMethod; + OBJECT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator; + BOOLEAN_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1; + BYTE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2; + CHAR_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3; + DOUBLE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4; + FLOAT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5; + INT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6; + LONG_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7; + SHORT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8; +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ +} + +defineClass($intern_160, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator); +_.createNotification_0 = function createNotification_7(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue); +} +; +_.createNotification_1 = function createNotification_8(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, wasSet); +} +; +var BOOLEAN_NOTIFICATION_CREATOR, BYTE_NOTIFICATION_CREATOR, CHAR_NOTIFICATION_CREATOR, DOUBLE_NOTIFICATION_CREATOR, FLOAT_NOTIFICATION_CREATOR, INT_NOTIFICATION_CREATOR, LONG_NOTIFICATION_CREATOR, OBJECT_NOTIFICATION_CREATOR, SHORT_NOTIFICATION_CREATOR; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator', $intern_160); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1(){ +} + +defineClass(1332, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1); +_.createNotification_0 = function createNotification_9(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_22(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue))); +} +; +_.createNotification_1 = function createNotification_10(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_23(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue)), wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1', 1332); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2(){ +} + +defineClass(1333, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2); +_.createNotification_0 = function createNotification_11(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_5(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0); +} +; +_.createNotification_1 = function createNotification_12(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_6(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2', 1333); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3(){ +} + +defineClass(1334, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3); +_.createNotification_0 = function createNotification_13(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_7(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0); +} +; +_.createNotification_1 = function createNotification_14(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_8(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3', 1334); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4(){ +} + +defineClass(1335, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4); +_.createNotification_0 = function createNotification_15(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_9(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue))); +} +; +_.createNotification_1 = function createNotification_16(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_10(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue)), wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4', 1335); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5(){ +} + +defineClass(1336, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5); +_.createNotification_0 = function createNotification_17(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_11(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0); +} +; +_.createNotification_1 = function createNotification_18(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_12(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5', 1336); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6(){ +} + +defineClass(1337, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6); +_.createNotification_0 = function createNotification_19(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_13(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0); +} +; +_.createNotification_1 = function createNotification_20(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_14(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6', 1337); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7(){ +} + +defineClass(1338, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7); +_.createNotification_0 = function createNotification_21(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_15(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0); +} +; +_.createNotification_1 = function createNotification_22(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_16(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7', 1338); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8(){ +} + +defineClass(1339, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8); +_.createNotification_0 = function createNotification_23(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_20(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0); +} +; +_.createNotification_1 = function createNotification_24(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_21(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8', 1339); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1317, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic); +_.validate_0 = function validate_3(object){ + if (!this.eDataType.isInstance(object)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic', 1317); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1318, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic); +_.validate_0 = function validate_4(object){ +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic', 1318); +defineClass(770, 563, {}); +_.dynamicIsSet = function dynamicIsSet_3(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null; +} +; +_.dynamicSet_0 = function dynamicSet_7(owner, settings, index_0, newValue){ + var oldIsSet, oldValue; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldIsSet = true; + oldValue = settings.dynamicGet(index_0); + if (oldValue == null) { + oldIsSet = false; + oldValue = this.defaultValue; + } + else + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + if (newValue == null) { + if (this.intrinsicDefaultValue != null) { + settings.dynamicSet(index_0, null); + newValue = this.defaultValue; + } + else { + settings.dynamicSet(index_0, NIL_0); + } + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + $eNotify(owner, this.notificationCreator.createNotification_1(owner, 1, this.feature, oldValue, newValue, !oldIsSet)); + } + else { + if (newValue == null) { + this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):settings.dynamicSet(index_0, NIL_0); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + } +} +; +_.dynamicUnset_0 = function dynamicUnset_7(owner, settings, index_0){ + var oldIsSet, oldValue; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldIsSet = true; + oldValue = settings.dynamicGet(index_0); + if (oldValue == null) { + oldIsSet = false; + oldValue = this.defaultValue; + } + else + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicUnset(index_0); + $eNotify(owner, this.notificationCreator.createNotification_1(owner, 2, this.feature, oldValue, this.defaultValue, oldIsSet)); + } + else { + settings.dynamicUnset(index_0); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable', 770); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1319, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic); +_.validate_0 = function validate_5(object){ + if (!this.eDataType.isInstance(object)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic', 1319); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1320, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic); +_.validate_0 = function validate_6(object){ +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic', 1320); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0(eClass, feature, inverseFeature){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(398, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObject); +_.dynamicGet_0 = function dynamicGet_7(owner, settings, index_0, resolve, coreType){ + var newEObject, notificationChain, oldEObject, resolvedEObject, result; + result = settings.dynamicGet(index_0); + if (this.isUnsettable() && maskUndefined(result) === maskUndefined(NIL_0)) { + return null; + } + else if (this.isResolveProxies_0() && resolve && result != null) { + oldEObject = castTo(result, 49); + if (oldEObject.eIsProxy()) { + resolvedEObject = $eResolveProxy(owner, oldEObject); + if (oldEObject != resolvedEObject) { + if (!$isInstance(this.eClass, resolvedEObject)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(resolvedEObject) + "' must be of type '" + this.eClass + "'")); + } + settings.dynamicSet(index_0, result = resolvedEObject); + if (this.isContainment()) { + newEObject = castTo(resolvedEObject, 49); + notificationChain = oldEObject.eInverseRemove(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(oldEObject.eClass_0(), this.inverseFeature), null, null); + !newEObject.eInternalContainer() && (notificationChain = newEObject.eInverseAdd(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(newEObject.eClass_0(), this.inverseFeature), null, notificationChain)); + !!notificationChain && notificationChain.dispatch_0(); + } + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 9, this.feature, oldEObject, resolvedEObject)); + } + } + return result; + } + else { + return result; + } +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_3(owner, settings, index_0, otherEnd, notifications){ + var internalEObject, oldValue; + oldValue = settings.dynamicGet(index_0); + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicSet(index_0, otherEnd); + if (this.hasInverse()) { + if (maskUndefined(oldValue) !== maskUndefined(otherEnd) && oldValue != null) { + internalEObject = castTo(oldValue, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + else + this.isContainment() && oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + !notifications && (notifications = new NotificationChainImpl_0(4)); + notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, otherEnd)); + } + return notifications; +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_3(owner, settings, index_0, otherEnd, notifications){ + var oldValue; + oldValue = settings.dynamicGet(index_0); + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicUnset(index_0); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + !notifications && (notifications = new NotificationChainImpl_0(4)); + this.isUnsettable()?notifications.add_5(new ENotificationImpl_17(owner, 2, this.feature, oldValue, null)):notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, null)); + } + return notifications; +} +; +_.dynamicIsSet = function dynamicIsSet_4(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null; +} +; +_.dynamicSet_0 = function dynamicSet_8(owner, settings, index_0, newValue){ + var internalEObject, notification, notifications, oldIsSet, oldValue; + if (newValue != null && !$isInstance(this.eClass, newValue)) { + throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); + } + oldValue = settings.dynamicGet(index_0); + oldIsSet = oldValue != null; + this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + notifications = null; + if (this.hasInverse()) { + if (maskUndefined(oldValue) !== maskUndefined(newValue)) { + if (oldValue != null) { + internalEObject = castTo(oldValue, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + if (newValue != null) { + internalEObject = castTo(newValue, 49); + notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + } + else if (this.isContainment()) { + if (maskUndefined(oldValue) !== maskUndefined(newValue)) { + oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + newValue != null && (notifications = castTo(newValue, 49).eInverseAdd(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + } + } + newValue == null && this.isUnsettable()?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, newValue); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + notification = new ENotificationImpl_19(owner, 1, this.feature, oldValue, newValue, this.isUnsettable() && !oldIsSet); + if (!notifications) { + $eNotify(owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else + !!notifications && notifications.dispatch_0(); +} +; +_.dynamicUnset_0 = function dynamicUnset_8(owner, settings, index_0){ + var internalEObject, notification, notifications, oldIsSet, oldValue; + oldValue = settings.dynamicGet(index_0); + oldIsSet = oldValue != null; + this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + notifications = null; + if (oldValue != null) { + if (this.hasInverse()) { + internalEObject = castTo(oldValue, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + else + this.isContainment() && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + } + settings.dynamicUnset(index_0); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + notification = new ENotificationImpl_19(owner, this.isUnsettable()?2:1, this.feature, oldValue, null, oldIsSet); + if (!notifications) { + $eNotify(owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else + !!notifications && notifications.dispatch_0(); +} +; +_.hasInverse = function hasInverse_6(){ + return false; +} +; +_.isContainment = function isContainment_7(){ + return false; +} +; +_.isResolveProxies_0 = function isResolveProxies_4(){ + return false; +} +; +_.isUnsettable = function isUnsettable_1(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject', 398); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(564, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment); +_.isContainment = function isContainment_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment', 564); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(1323, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving); +_.isResolveProxies_0 = function isResolveProxies_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving', 1323); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(772, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable); +_.isUnsettable = function isUnsettable_2(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable', 772); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable.call(this, eClass, feature); +} + +defineClass(1325, 772, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving); +_.isResolveProxies_0 = function isResolveProxies_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving', 1325); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(640, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse); +_.hasInverse = function hasInverse_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse', 640); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1324, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving); +_.isResolveProxies_0 = function isResolveProxies_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving', 1324); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(773, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable); +_.isUnsettable = function isUnsettable_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable', 773); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable.call(this, eClass, feature, inverseFeature); +} + +defineClass(1326, 773, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving); +_.isResolveProxies_0 = function isResolveProxies_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving', 1326); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(641, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving); +_.isResolveProxies_0 = function isResolveProxies_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving', 641); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving.call(this, eClass, feature); +} + +defineClass(1327, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable); +_.isUnsettable = function isUnsettable_4(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable', 1327); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(774, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse); +_.hasInverse = function hasInverse_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse', 774); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1328, 774, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable); +_.isUnsettable = function isUnsettable_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable', 1328); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(1321, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable); +_.isUnsettable = function isUnsettable_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable', 1321); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(771, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse); +_.hasInverse = function hasInverse_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse', 771); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1322, 771, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable); +_.isUnsettable = function isUnsettable_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable', 1322); +function $inverseAdd_0(this$static, owner, otherEnd, notifications){ + !!otherEnd && (notifications = otherEnd.eInverseAdd(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); + return notifications; +} + +function $inverseRemove_0(this$static, owner, otherEnd, notifications){ + !!otherEnd && (notifications = otherEnd.eInverseRemove(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); + return notifications; +} + +function EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$0, eStructuralFeature, value_0){ + this.this$01 = this$0; + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(775, 565, $intern_159, EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry); +_.createEntry_0 = function createEntry_2(value_0){ + return new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this.this$01, this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_16(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_4(owner, featureID, notifications){ + return $inverseAdd_0(this, owner, this.value_0, notifications); +} +; +_.inverseRemove_0 = function inverseRemove_4(owner, featureID, notifications){ + return $inverseRemove_0(this, owner, this.value_0, notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry', 775); +function EStructuralFeatureImpl$SettingMany(list){ + this.list = list; +} + +defineClass(1329, 1, $intern_147, EStructuralFeatureImpl$SettingMany); +_.get_6 = function get_65(resolve){ + return this.list; +} +; +_.isSet_0 = function isSet_12(){ + return instanceOf(this.list, 95)?castTo(this.list, 95).isSet_0():!this.list.isEmpty(); +} +; +_.set_1 = function set_36(newValue){ + this.list.clear_0(); + this.list.addAll(castTo(newValue, 15)); +} +; +_.unset = function unset_8(){ + instanceOf(this.list, 95)?castTo(this.list, 95).unset():this.list.clear_0(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SettingMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SettingMany', 1329); +function EStructuralFeatureImpl$SimpleContentFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; + this.eDataType = castTo($getEType(eStructuralFeature), 148); + this.eFactory = this.eDataType.getEPackage().getEFactoryInstance(); +} + +defineClass(1330, 565, $intern_159, EStructuralFeatureImpl$SimpleContentFeatureMapEntry); +_.createEntry = function createEntry_3(value_0){ + return new EStructuralFeatureImpl$SimpleFeatureMapEntry(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT), this.eFactory.convertToString(this.eDataType, value_0)); +} +; +_.getValue = function getValue_17(){ + return null; +} +; +_.inverseAdd_0 = function inverseAdd_5(owner, featureID, notifications){ + return notifications; +} +; +_.inverseRemove_0 = function inverseRemove_5(owner, featureID, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleContentFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleContentFeatureMapEntry', 1330); +function EStructuralFeatureImpl$SimpleFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(642, 565, $intern_159, EStructuralFeatureImpl$SimpleFeatureMapEntry); +_.createEntry = function createEntry_4(value_0){ + return new EStructuralFeatureImpl$SimpleFeatureMapEntry(this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_18(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_6(owner, featureID, notifications){ + return notifications; +} +; +_.inverseRemove_0 = function inverseRemove_6(owner, featureID, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleFeatureMapEntry', 642); +function ESuperAdapter$1(){ +} + +defineClass(391, 497, $intern_138, ESuperAdapter$1); +_.newData = function newData_12(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, capacity, 0, 1); +} +; +_.useEquals = function useEquals_13(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ESuperAdapter$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter/1', 391); +function $getEGenericTypes(this$static){ + !this$static.eGenericTypes && (this$static.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)); + return this$static.eGenericTypes; +} + +function ETypeParameterImpl(){ +} + +defineClass(444, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 836:1, 49:1, 97:1, 150:1, 444:1, 114:1, 115:1}, ETypeParameterImpl); +_.eGet = function eGet_31(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , this.eBounds; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_22(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 2: + return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , $basicRemove_0(this.eBounds, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ETYPE_PARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_30(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return !!this.eBounds && this.eBounds.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +_.eSet = function eSet_28(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $clear_13(this.eBounds); + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $addAll_9(this.eBounds, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_30(){ + return $clinit_EcorePackage$Literals() , ETYPE_PARAMETER; +} +; +_.eUnset = function eUnset_28(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $clear_13(this.eBounds); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl', 444); +function $inverseAdd_1(this$static, object, notifications){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; + notifications = (internalEObject = object , $eInverseAdd(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); + eGenericTypes = $getEGenericTypes(this$static.this$01); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); + } + return notifications; +} + +function $inverseRemove_1(this$static, object, notifications){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; + notifications = (internalEObject = object , $eInverseRemove(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); + eGenericTypes = $getEGenericTypes(this$static.this$01); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); + } + return notifications; +} + +function ETypeParameterImpl$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, $anonymous0, $anonymous1, 2); +} + +defineClass(445, 85, $intern_154, ETypeParameterImpl$1); +_.inverseAdd = function inverseAdd_7(object, notifications){ + return $inverseAdd_1(this, castTo(object, 87), notifications); +} +; +_.inverseRemove = function inverseRemove_7(object, notifications){ + return $inverseRemove_1(this, castTo(object, 87), notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/1', 445); +function ETypeParameterImpl$2(){ + HashMap.call(this); +} + +defineClass(634, 43, $intern_76, ETypeParameterImpl$2); +_.keySet_0 = function keySet_19(){ + return new ETypeParameterImpl$2$1(this); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2', 634); +function $add_30(this$static, eGenericType){ + return $put_6(this$static.this$11, eGenericType, '') == null; +} + +function $remove_42(this$static, object){ + if ($containsKey_3(this$static.this$11, object)) { + $remove_6(this$static.this$11, object); + return true; + } + else { + return false; + } +} + +function ETypeParameterImpl$2$1(this$1){ + this.this$11 = this$1; +} + +defineClass(556, $intern_9, $intern_10, ETypeParameterImpl$2$1); +_.add_2 = function add_65(eGenericType){ + return $add_30(this, castTo(eGenericType, 87)); +} +; +_.addAll = function addAll_34(eGenericTypes){ + var eGenericType, eGenericType$iterator, result; + result = false; + for (eGenericType$iterator = eGenericTypes.iterator_0(); eGenericType$iterator.hasNext_0();) { + eGenericType = castTo(eGenericType$iterator.next_1(), 87); + $put_6(this.this$11, eGenericType, '') == null && (result = true); + } + return result; +} +; +_.clear_0 = function clear_65(){ + $reset(this.this$11); +} +; +_.contains = function contains_65(object){ + return $containsKey_3(this.this$11, object); +} +; +_.iterator_0 = function iterator_89(){ + var delegateIterator; + return delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator); +} +; +_.remove_1 = function remove_126(object){ + return $remove_42(this, object); +} +; +_.size_1 = function size_78(){ + return $size_2(this.this$11); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1', 556); +function ETypeParameterImpl$2$1$1(val$delegateIterator){ + this.val$delegateIterator2 = val$delegateIterator; +} + +defineClass(557, 1, $intern_6, ETypeParameterImpl$2$1$1); +_.forEachRemaining = function forEachRemaining_58(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_48(){ + return castTo($next_4(this.val$delegateIterator2).getKey(), 87); +} +; +_.hasNext_0 = function hasNext_47(){ + return this.val$delegateIterator2.hasNext; +} +; +_.remove = function remove_127(){ + $remove_7(this.val$delegateIterator2); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1/1', 557); +function EValidatorRegistryImpl(){ + HashMap.call(this); +} + +defineClass(1276, 43, $intern_76, EValidatorRegistryImpl); +_.containsKey = function containsKey_17(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +_.get_3 = function get_66(key){ + var eValidator, eValidatorDescriptor; + eValidator = instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); + if (instanceOf(eValidator, 837)) { + eValidatorDescriptor = castTo(eValidator, 837); + eValidator = eValidatorDescriptor.getEValidator(); + $put_6(this, castTo(key, 235), eValidator); + return eValidator; + } + else + return eValidator != null?eValidator:key == null?($clinit_EObjectValidator() , INSTANCE_9):null; +} +; +var Lorg_eclipse_emf_ecore_impl_EValidatorRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EValidatorRegistryImpl', 1276); +function $booleanValueOf(initialValue){ + if ($equalsIgnoreCase('true', initialValue)) { + return $clinit_Boolean() , TRUE_0; + } + else if ($equalsIgnoreCase('false', initialValue)) { + return $clinit_Boolean() , FALSE_0; + } + else { + throw toJs(new IllegalArgumentException_0('Expecting true or false')); + } +} + +function $convertEByteArrayToString(instanceValue){ + var bytes; + if (instanceValue == null) { + return null; + } + else { + bytes = castTo(instanceValue, 190); + return $bytesToHexString(bytes, bytes.length); + } +} + +function $convertECharToString(instanceValue){ + if (instanceOf(instanceValue, 172)) { + return '' + castTo(instanceValue, 172).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertECharacterObjectToString(instanceValue){ + if (instanceOf(instanceValue, 172)) { + return '' + castTo(instanceValue, 172).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $createECharFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_3(charValue); +} + +function $createECharacterObjectFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_3(charValue); +} + +function $createEDateFromString(initialValue){ + var exception, i, parseException; + if (initialValue == null) { + return null; + } + exception = null; + for (i = 0; i < EDATE_FORMATS.length; ++i) { + try { + return $parse_2(EDATE_FORMATS[i], initialValue); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 32)) { + parseException = $e0; + exception = parseException; + } + else + throw toJs($e0); + } + } + throw toJs(new WrappedException(exception)); +} + +function EcoreFactoryImpl(){ +} + +function init_3(){ + $clinit_EFactoryImpl(); + var exception, theEcoreFactory; + try { + theEcoreFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1941); + if (theEcoreFactory) { + return theEcoreFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new EcoreFactoryImpl; +} + +defineClass(1313, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 1941:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EcoreFactoryImpl); +_.convertToString = function convertToString_1(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 21: + case 22: + case 23: + case 24: + case 26: + case 31: + case 32: + case 37: + case 38: + case 39: + case 40: + case 43: + case 44: + case 48: + case 49: + case 20: + return instanceValue == null?null:toString_40(instanceValue); + case 25: + return $convertEByteArrayToString(instanceValue); + case 27: + return $convertECharToString(instanceValue); + case 28: + return $convertECharacterObjectToString(instanceValue); + case 29: + return instanceValue == null?null:$format_0(EDATE_FORMATS[0], castTo(instanceValue, 199)); + case 41: + return instanceValue == null?'':$getName(castTo(instanceValue, 290)); + case 42: + return toString_40(instanceValue); + case 50: + return castToString(instanceValue); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_42(eClass0){ + var eAnnotation, eAttribute, eClass, eDataType, eEnum, eEnumLiteral, eFactory, eGenericType, eObject, eOperation, ePackage, ePackage0, eParameter, eReference, eStringToStringMapEntry, eTypeParameter; + switch (eClass0.metaObjectID == -1 && (eClass0.metaObjectID = (ePackage0 = $getEPackage(eClass0) , ePackage0?$indexOf_6(ePackage0.getEClassifiers(), eClass0):-1)) , eClass0.metaObjectID) { + case 0: + return eAttribute = new EAttributeImpl , eAttribute; + case 1: + return eAnnotation = new EAnnotationImpl , eAnnotation; + case 2: + return eClass = new EClassImpl , eClass; + case 4: + return eDataType = new EDataTypeImpl , eDataType; + case 5: + return eEnum = new EEnumImpl , eEnum; + case 6: + return eEnumLiteral = new EEnumLiteralImpl , eEnumLiteral; + case 7: + return eFactory = new EFactoryImpl , eFactory; + case 10: + return eObject = new EObjectImpl , eObject; + case 11: + return eOperation = new EOperationImpl , eOperation; + case 12: + return ePackage = new EPackageImpl , ePackage; + case 13: + return eParameter = new EParameterImpl , eParameter; + case 14: + return eReference = new EReferenceImpl , eReference; + case 17: + return eStringToStringMapEntry = new EStringToStringMapEntryImpl , eStringToStringMapEntry; + case 18: + return eGenericType = new EGenericTypeImpl , eGenericType; + case 19: + return eTypeParameter = new ETypeParameterImpl , eTypeParameter; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass0.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_1(eDataType, initialValue){ + switch (eDataType.getClassifierID()) { + case 20: + return initialValue == null?null:new BigDecimal_0(initialValue); + case 21: + return initialValue == null?null:new BigInteger_4(initialValue); + case 23: + case 22: + return initialValue == null?null:$booleanValueOf(initialValue); + case 26: + case 24: + return initialValue == null?null:valueOf_2(__parseAndValidateInt(initialValue, -128, 127) << 24 >> 24); + case 25: + return $hexStringToBytes(initialValue); + case 27: + return $createECharFromString(initialValue); + case 28: + return $createECharacterObjectFromString(initialValue); + case 29: + return $createEDateFromString(initialValue); + case 32: + case 31: + return initialValue == null?null:__parseAndValidateDouble(initialValue); + case 38: + case 37: + return initialValue == null?null:new Float_0(initialValue); + case 40: + case 39: + return initialValue == null?null:valueOf_4(__parseAndValidateInt(initialValue, $intern_42, $intern_0)); + case 41: + return null; + case 42: + return initialValue == null?null:null; + case 44: + case 43: + return initialValue == null?null:valueOf_5(__parseAndValidateLong(initialValue)); + case 49: + case 48: + return initialValue == null?null:valueOf_6(__parseAndValidateInt(initialValue, $intern_161, 32767) << 16 >> 16); + case 50: + return initialValue; + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EcoreFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcoreFactoryImpl', 1313); +function $clinit_EcorePackageImpl(){ + $clinit_EcorePackageImpl = emptyMethod; + eGenericTypes_0 = new ArrayList; +} + +function $$init_12(this$static){ + this$static.eAttributeEClass = null; + this$static.eAnnotationEClass = null; + this$static.eClassEClass = null; + this$static.eDataTypeEClass = null; + this$static.eEnumEClass = null; + this$static.eEnumLiteralEClass = null; + this$static.eFactoryEClass = null; + this$static.eClassifierEClass = null; + this$static.eModelElementEClass = null; + this$static.eNamedElementEClass = null; + this$static.eObjectEClass = null; + this$static.eOperationEClass = null; + this$static.ePackageEClass = null; + this$static.eParameterEClass = null; + this$static.eReferenceEClass = null; + this$static.eStructuralFeatureEClass = null; + this$static.eTypedElementEClass = null; + this$static.eStringToStringMapEntryEClass = null; + this$static.eGenericTypeEClass = null; + this$static.eTypeParameterEClass = null; + this$static.eBigDecimalEDataType = null; + this$static.eBigIntegerEDataType = null; + this$static.eBooleanObjectEDataType = null; + this$static.eCharacterObjectEDataType = null; + this$static.eDateEDataType = null; + this$static.eDiagnosticChainEDataType = null; + this$static.eDoubleObjectEDataType = null; + this$static.eFloatObjectEDataType = null; + this$static.eIntegerObjectEDataType = null; + this$static.eBooleanEDataType = null; + this$static.eByteObjectEDataType = null; + this$static.eByteEDataType = null; + this$static.eByteArrayEDataType = null; + this$static.eCharEDataType = null; + this$static.eDoubleEDataType = null; + this$static.eFloatEDataType = null; + this$static.eIntEDataType = null; + this$static.eJavaClassEDataType = null; + this$static.eJavaObjectEDataType = null; + this$static.eLongObjectEDataType = null; + this$static.eMapEDataType = null; + this$static.eShortObjectEDataType = null; + this$static.eLongEDataType = null; + this$static.eShortEDataType = null; + this$static.eTreeIteratorEDataType = null; + this$static.eInvocationTargetExceptionEDataType = null; + this$static.eFeatureMapEntryEDataType = null; + this$static.eEnumeratorEDataType = null; + this$static.eFeatureMapEDataType = null; + this$static.eStringEDataType = null; + this$static.eeListEDataType = null; + this$static.eResourceEDataType = null; + this$static.eResourceSetEDataType = null; + this$static.isCreated = false; + this$static.isInitialized = false; +} + +function $createEGenericType_1(){ + var eGenericType, eGenericType0, eGenericType1; + eGenericType0 = (eGenericType1 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType1); + $add_3(eGenericTypes_0, eGenericType0); + return eGenericType0; +} + +function $createEcoreAnnotations(this$static){ + $addAnnotation(this$static.eAttributeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentTransient'])); + $addAnnotation(this$static.eAnnotationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedSourceURI'])); + $addAnnotation(this$static.eClassEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures'])); + $addAnnotation(this$static.eClassifierEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedInstanceTypeName UniqueTypeParameterNames'])); + $addAnnotation(this$static.eEnumEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueEnumeratorNames UniqueEnumeratorLiterals'])); + $addAnnotation(this$static.eNamedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedName'])); + $addAnnotation(this$static.eOperationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid'])); + $addAnnotation(this$static.ePackageEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs'])); + $addAnnotation(this$static.eReferenceEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer'])); + $addAnnotation(this$static.eStructuralFeatureEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidDefaultValueLiteral'])); + $addAnnotation(this$static.eTypedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidLowerBound ValidUpperBound ConsistentBounds ValidType'])); + $addAnnotation(this$static.eGenericTypeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentType ConsistentBounds ConsistentArguments'])); +} + +function $createExtendedMetaDataAnnotations(this$static){ + $addAnnotation(this$static.eBigDecimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#decimal'])); + $addAnnotation(this$static.eBigIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#integer'])); + $addAnnotation(this$static.eBooleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#boolean'])); + $addAnnotation(this$static.eBooleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EBoolean', 'name', 'EBoolean:Object'])); + $addAnnotation(this$static.eByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#byte'])); + $addAnnotation(this$static.eByteArrayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#hexBinary'])); + $addAnnotation(this$static.eByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EByte', 'name', 'EByte:Object'])); + $addAnnotation(this$static.eCharacterObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EChar', 'name', 'EChar:Object'])); + $addAnnotation(this$static.eDoubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#double'])); + $addAnnotation(this$static.eDoubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EDouble', 'name', 'EDouble:Object'])); + $addAnnotation(this$static.eFloatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#float'])); + $addAnnotation(this$static.eFloatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EFloat', 'name', 'EFloat:Object'])); + $addAnnotation(this$static.eIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#int'])); + $addAnnotation(this$static.eIntegerObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EInt', 'name', 'EInt:Object'])); + $addAnnotation(this$static.eLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#long'])); + $addAnnotation(this$static.eLongObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'ELong', 'name', 'ELong:Object'])); + $addAnnotation(this$static.eShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#short'])); + $addAnnotation(this$static.eShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EShort', 'name', 'EShort:Object'])); + $addAnnotation(this$static.eStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#string'])); +} + +function $createPackageContents_0(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.eAttributeEClass = $createEClass(this$static, 0); + $createEAttribute(this$static.eAttributeEClass, 18); + $createEReference(this$static.eAttributeEClass, 19); + this$static.eAnnotationEClass = $createEClass(this$static, 1); + $createEAttribute(this$static.eAnnotationEClass, 1); + $createEReference(this$static.eAnnotationEClass, 2); + $createEReference(this$static.eAnnotationEClass, 3); + $createEReference(this$static.eAnnotationEClass, 4); + $createEReference(this$static.eAnnotationEClass, 5); + this$static.eClassEClass = $createEClass(this$static, 2); + $createEAttribute(this$static.eClassEClass, 8); + $createEAttribute(this$static.eClassEClass, 9); + $createEReference(this$static.eClassEClass, 10); + $createEReference(this$static.eClassEClass, 11); + $createEReference(this$static.eClassEClass, 12); + $createEReference(this$static.eClassEClass, 13); + $createEReference(this$static.eClassEClass, 14); + $createEReference(this$static.eClassEClass, 15); + $createEReference(this$static.eClassEClass, 16); + $createEReference(this$static.eClassEClass, 17); + $createEReference(this$static.eClassEClass, 18); + $createEReference(this$static.eClassEClass, 19); + $createEReference(this$static.eClassEClass, 20); + $createEReference(this$static.eClassEClass, 21); + $createEReference(this$static.eClassEClass, 22); + $createEReference(this$static.eClassEClass, 23); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + this$static.eClassifierEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.eClassifierEClass, 2); + $createEAttribute(this$static.eClassifierEClass, 3); + $createEAttribute(this$static.eClassifierEClass, 4); + $createEAttribute(this$static.eClassifierEClass, 5); + $createEReference(this$static.eClassifierEClass, 6); + $createEReference(this$static.eClassifierEClass, 7); + $createEOperation(this$static.eClassifierEClass); + $createEOperation(this$static.eClassifierEClass); + this$static.eDataTypeEClass = $createEClass(this$static, 4); + $createEAttribute(this$static.eDataTypeEClass, 8); + this$static.eEnumEClass = $createEClass(this$static, 5); + $createEReference(this$static.eEnumEClass, 9); + $createEOperation(this$static.eEnumEClass); + $createEOperation(this$static.eEnumEClass); + $createEOperation(this$static.eEnumEClass); + this$static.eEnumLiteralEClass = $createEClass(this$static, 6); + $createEAttribute(this$static.eEnumLiteralEClass, 2); + $createEAttribute(this$static.eEnumLiteralEClass, 3); + $createEAttribute(this$static.eEnumLiteralEClass, 4); + $createEReference(this$static.eEnumLiteralEClass, 5); + this$static.eFactoryEClass = $createEClass(this$static, 7); + $createEReference(this$static.eFactoryEClass, 1); + $createEOperation(this$static.eFactoryEClass); + $createEOperation(this$static.eFactoryEClass); + $createEOperation(this$static.eFactoryEClass); + this$static.eModelElementEClass = $createEClass(this$static, 8); + $createEReference(this$static.eModelElementEClass, 0); + $createEOperation(this$static.eModelElementEClass); + this$static.eNamedElementEClass = $createEClass(this$static, 9); + $createEAttribute(this$static.eNamedElementEClass, 1); + this$static.eObjectEClass = $createEClass(this$static, 10); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + this$static.eOperationEClass = $createEClass(this$static, 11); + $createEReference(this$static.eOperationEClass, 10); + $createEReference(this$static.eOperationEClass, 11); + $createEReference(this$static.eOperationEClass, 12); + $createEReference(this$static.eOperationEClass, 13); + $createEReference(this$static.eOperationEClass, 14); + $createEOperation(this$static.eOperationEClass); + $createEOperation(this$static.eOperationEClass); + this$static.ePackageEClass = $createEClass(this$static, 12); + $createEAttribute(this$static.ePackageEClass, 2); + $createEAttribute(this$static.ePackageEClass, 3); + $createEReference(this$static.ePackageEClass, 4); + $createEReference(this$static.ePackageEClass, 5); + $createEReference(this$static.ePackageEClass, 6); + $createEReference(this$static.ePackageEClass, 7); + $createEOperation(this$static.ePackageEClass); + this$static.eParameterEClass = $createEClass(this$static, 13); + $createEReference(this$static.eParameterEClass, 10); + this$static.eReferenceEClass = $createEClass(this$static, 14); + $createEAttribute(this$static.eReferenceEClass, 18); + $createEAttribute(this$static.eReferenceEClass, 19); + $createEAttribute(this$static.eReferenceEClass, 20); + $createEReference(this$static.eReferenceEClass, 21); + $createEReference(this$static.eReferenceEClass, 22); + $createEReference(this$static.eReferenceEClass, 23); + this$static.eStructuralFeatureEClass = $createEClass(this$static, 15); + $createEAttribute(this$static.eStructuralFeatureEClass, 10); + $createEAttribute(this$static.eStructuralFeatureEClass, 11); + $createEAttribute(this$static.eStructuralFeatureEClass, 12); + $createEAttribute(this$static.eStructuralFeatureEClass, 13); + $createEAttribute(this$static.eStructuralFeatureEClass, 14); + $createEAttribute(this$static.eStructuralFeatureEClass, 15); + $createEAttribute(this$static.eStructuralFeatureEClass, 16); + $createEReference(this$static.eStructuralFeatureEClass, 17); + $createEOperation(this$static.eStructuralFeatureEClass); + $createEOperation(this$static.eStructuralFeatureEClass); + this$static.eTypedElementEClass = $createEClass(this$static, 16); + $createEAttribute(this$static.eTypedElementEClass, 2); + $createEAttribute(this$static.eTypedElementEClass, 3); + $createEAttribute(this$static.eTypedElementEClass, 4); + $createEAttribute(this$static.eTypedElementEClass, 5); + $createEAttribute(this$static.eTypedElementEClass, 6); + $createEAttribute(this$static.eTypedElementEClass, 7); + $createEReference(this$static.eTypedElementEClass, 8); + $createEReference(this$static.eTypedElementEClass, 9); + this$static.eStringToStringMapEntryEClass = $createEClass(this$static, 17); + $createEAttribute(this$static.eStringToStringMapEntryEClass, 0); + $createEAttribute(this$static.eStringToStringMapEntryEClass, 1); + this$static.eGenericTypeEClass = $createEClass(this$static, 18); + $createEReference(this$static.eGenericTypeEClass, 0); + $createEReference(this$static.eGenericTypeEClass, 1); + $createEReference(this$static.eGenericTypeEClass, 2); + $createEReference(this$static.eGenericTypeEClass, 3); + $createEReference(this$static.eGenericTypeEClass, 4); + $createEReference(this$static.eGenericTypeEClass, 5); + $createEOperation(this$static.eGenericTypeEClass); + this$static.eTypeParameterEClass = $createEClass(this$static, 19); + $createEReference(this$static.eTypeParameterEClass, 2); + this$static.eBigDecimalEDataType = $createEDataType(this$static, 20); + this$static.eBigIntegerEDataType = $createEDataType(this$static, 21); + this$static.eBooleanEDataType = $createEDataType(this$static, 22); + this$static.eBooleanObjectEDataType = $createEDataType(this$static, 23); + this$static.eByteEDataType = $createEDataType(this$static, 24); + this$static.eByteArrayEDataType = $createEDataType(this$static, 25); + this$static.eByteObjectEDataType = $createEDataType(this$static, 26); + this$static.eCharEDataType = $createEDataType(this$static, 27); + this$static.eCharacterObjectEDataType = $createEDataType(this$static, 28); + this$static.eDateEDataType = $createEDataType(this$static, 29); + this$static.eDiagnosticChainEDataType = $createEDataType(this$static, 30); + this$static.eDoubleEDataType = $createEDataType(this$static, 31); + this$static.eDoubleObjectEDataType = $createEDataType(this$static, 32); + this$static.eeListEDataType = $createEDataType(this$static, 33); + this$static.eEnumeratorEDataType = $createEDataType(this$static, 34); + this$static.eFeatureMapEDataType = $createEDataType(this$static, 35); + this$static.eFeatureMapEntryEDataType = $createEDataType(this$static, 36); + this$static.eFloatEDataType = $createEDataType(this$static, 37); + this$static.eFloatObjectEDataType = $createEDataType(this$static, 38); + this$static.eIntEDataType = $createEDataType(this$static, 39); + this$static.eIntegerObjectEDataType = $createEDataType(this$static, 40); + this$static.eJavaClassEDataType = $createEDataType(this$static, 41); + this$static.eJavaObjectEDataType = $createEDataType(this$static, 42); + this$static.eLongEDataType = $createEDataType(this$static, 43); + this$static.eLongObjectEDataType = $createEDataType(this$static, 44); + this$static.eMapEDataType = $createEDataType(this$static, 45); + this$static.eResourceEDataType = $createEDataType(this$static, 46); + this$static.eResourceSetEDataType = $createEDataType(this$static, 47); + this$static.eShortEDataType = $createEDataType(this$static, 48); + this$static.eShortObjectEDataType = $createEDataType(this$static, 49); + this$static.eStringEDataType = $createEDataType(this$static, 50); + this$static.eTreeIteratorEDataType = $createEDataType(this$static, 51); + this$static.eInvocationTargetExceptionEDataType = $createEDataType(this$static, 52); +} + +function $initializePackageContents_0(this$static){ + var g1, g2, msgs, msgs0, msgs1, msgs2, op; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'ecore'); + $setNsPrefix(this$static, 'ecore'); + $setNsURI(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); + $addETypeParameter(this$static.eeListEDataType, 'E'); + $addETypeParameter(this$static.eJavaClassEDataType, 'T'); + $addETypeParameter(this$static.eMapEDataType, 'K'); + $addETypeParameter(this$static.eMapEDataType, 'V'); + $addETypeParameter(this$static.eTreeIteratorEDataType, 'E'); + $add_21($getESuperTypes(this$static.eAttributeEClass), this$static.eStructuralFeatureEClass); + $add_21($getESuperTypes(this$static.eAnnotationEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eClassEClass), this$static.eClassifierEClass); + $add_21($getESuperTypes(this$static.eClassifierEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eDataTypeEClass), this$static.eClassifierEClass); + $add_21($getESuperTypes(this$static.eEnumEClass), this$static.eDataTypeEClass); + $add_21($getESuperTypes(this$static.eEnumLiteralEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eFactoryEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eNamedElementEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eOperationEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.ePackageEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eParameterEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.eReferenceEClass), this$static.eStructuralFeatureEClass); + $add_21($getESuperTypes(this$static.eStructuralFeatureEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.eTypedElementEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eTypeParameterEClass), this$static.eNamedElementEClass); + $initEClass(this$static.eAttributeEClass, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, 'EAttribute', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 0), 34), this$static.eBooleanEDataType, 'iD', null, 0, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 1), 18), this$static.eDataTypeEClass, null, 'eAttributeType', 1, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, true, true, false, false, true, false, true); + $initEClass(this$static.eAnnotationEClass, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, 'EAnnotation', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 0), 34), this$static.eStringEDataType, 'source', null, 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 1), 18), this$static.eStringToStringMapEntryEClass, null, 'details', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), this$static.eModelElementEClass, castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), 'eModelElement', 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, true, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 3), 18), this$static.eObjectEClass, null, 'contents', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 4), 18), this$static.eObjectEClass, null, 'references', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.eClassEClass, Lorg_eclipse_emf_ecore_EClass_2_classLit, 'EClass', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 0), 34), this$static.eBooleanEDataType, 'abstract', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 1), 34), this$static.eBooleanEDataType, 'interface', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 2), 18), this$static.eClassEClass, null, 'eSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), 'eOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 4), 18), this$static.eAttributeEClass, null, 'eAllAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 5), 18), this$static.eReferenceEClass, null, 'eAllReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 6), 18), this$static.eReferenceEClass, null, 'eReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 7), 18), this$static.eAttributeEClass, null, 'eAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 8), 18), this$static.eReferenceEClass, null, 'eAllContainments', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 9), 18), this$static.eOperationEClass, null, 'eAllOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 10), 18), this$static.eStructuralFeatureEClass, null, 'eAllStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 11), 18), this$static.eClassEClass, null, 'eAllSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 12), 18), this$static.eAttributeEClass, null, 'eIDAttribute', 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), this$static.eStructuralFeatureEClass, castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), 'eStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 14), 18), this$static.eGenericTypeEClass, null, 'eGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 15), 18), this$static.eGenericTypeEClass, null, 'eAllGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 0), 59), this$static.eBooleanEDataType, 'isSuperTypeOf'); + $addEParameter(op, this$static.eClassEClass, 'someClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 1), 59), this$static.eIntEDataType, 'getFeatureCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 2), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eIntEDataType, 'featureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 3), 59), this$static.eIntEDataType, 'getFeatureID'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 4), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eStringEDataType, 'featureName'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 5), 59), this$static.eIntEDataType, 'getOperationCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 6), 59), this$static.eOperationEClass, 'getEOperation'); + $addEParameter(op, this$static.eIntEDataType, 'operationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 7), 59), this$static.eIntEDataType, 'getOperationID'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 8), 59), this$static.eOperationEClass, 'getOverride'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 9), 59), this$static.eGenericTypeEClass, 'getFeatureType'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $initEClass(this$static.eClassifierEClass, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, 'EClassifier', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 0), 34), this$static.eStringEDataType, 'instanceClassName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); + g1 = $createEGenericType(this$static.eJavaClassEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 1), 34), g1, 'instanceClass', Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 2), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 3), 34), this$static.eStringEDataType, 'instanceTypeName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), 'ePackage', 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, false, false, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 5), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, false, true, true, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 1), 59), this$static.eIntEDataType, 'getClassifierID'); + $initEClass(this$static.eDataTypeEClass, Lorg_eclipse_emf_ecore_EDataType_2_classLit, 'EDataType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eDataTypeEClass), 0), 34), this$static.eBooleanEDataType, 'serializable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EDataType_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eEnumEClass, Lorg_eclipse_emf_ecore_EEnum_2_classLit, 'EEnum', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), this$static.eEnumLiteralEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), 'eLiterals', 0, -1, Lorg_eclipse_emf_ecore_EEnum_2_classLit, false, false, true, true, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 0), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 1), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eIntEDataType, 'value'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 2), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteralByLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'literal'); + $initEClass(this$static.eEnumLiteralEClass, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, 'EEnumLiteral', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 0), 34), this$static.eIntEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 1), 34), this$static.eEnumeratorEDataType, 'instance', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 2), 34), this$static.eStringEDataType, 'literal', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), this$static.eEnumEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), 'eEnum', 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, false, false, false, false, false); + $initEClass(this$static.eFactoryEClass, Lorg_eclipse_emf_ecore_EFactory_2_classLit, 'EFactory', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), 'ePackage', 1, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, true, false, true, false, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 0), 59), this$static.eObjectEClass, 'create'); + $addEParameter(op, this$static.eClassEClass, 'eClass'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 1), 59), this$static.eJavaObjectEDataType, 'createFromString'); + $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); + $addEParameter(op, this$static.eStringEDataType, 'literalValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 2), 59), this$static.eStringEDataType, 'convertToString'); + $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'instanceValue'); + $initEClass(this$static.eModelElementEClass, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, 'EModelElement', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), this$static.eAnnotationEClass, castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), 'eAnnotations', 0, -1, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, false, false, true, true, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eModelElementEClass), 0), 59), this$static.eAnnotationEClass, 'getEAnnotation'); + $addEParameter(op, this$static.eStringEDataType, 'source'); + $initEClass(this$static.eNamedElementEClass, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, 'ENamedElement', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eNamedElementEClass), 0), 34), this$static.eStringEDataType, 'name', null, 0, 1, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eObjectEClass, Lorg_eclipse_emf_ecore_EObject_2_classLit, 'EObject', false, false, true); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 0), 59), this$static.eClassEClass, 'eClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 1), 59), this$static.eBooleanEDataType, 'eIsProxy'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 2), 59), this$static.eResourceEDataType, 'eResource'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 3), 59), this$static.eObjectEClass, 'eContainer'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 4), 59), this$static.eStructuralFeatureEClass, 'eContainingFeature'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 5), 59), this$static.eReferenceEClass, 'eContainmentFeature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 6), 59), null, 'eContents'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs0 = $setEGenericType(op, g1, null); + !!msgs0 && msgs0.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 7), 59), null, 'eAllContents'); + g1 = $createEGenericType(this$static.eTreeIteratorEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs1 = $setEGenericType(op, g1, null); + !!msgs1 && msgs1.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 8), 59), null, 'eCrossReferences'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs2 = $setEGenericType(op, g1, null); + !!msgs2 && msgs2.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 9), 59), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 10), 59), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eBooleanEDataType, 'resolve'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 11), 59), null, 'eSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'newValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 12), 59), this$static.eBooleanEDataType, 'eIsSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 13), 59), null, 'eUnset'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 14), 59), this$static.eJavaObjectEDataType, 'eInvoke'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'arguments'); + $addEException(op, this$static.eInvocationTargetExceptionEDataType); + $initEClass(this$static.eOperationEClass, Lorg_eclipse_emf_ecore_EOperation_2_classLit, 'EOperation', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, true, false, false, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 1), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), this$static.eParameterEClass, castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), 'eParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 3), 18), this$static.eClassifierEClass, null, 'eExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 4), 18), this$static.eGenericTypeEClass, null, 'eGenericExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, true, false); + $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 0), 59), this$static.eIntEDataType, 'getOperationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 1), 59), this$static.eBooleanEDataType, 'isOverrideOf'); + $addEParameter(op, this$static.eOperationEClass, 'someOperation'); + $initEClass(this$static.ePackageEClass, Lorg_eclipse_emf_ecore_EPackage_2_classLit, 'EPackage', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 0), 34), this$static.eStringEDataType, 'nsURI', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 1), 34), this$static.eStringEDataType, 'nsPrefix', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), this$static.eFactoryEClass, castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), 'eFactoryInstance', 1, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), this$static.eClassifierEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), 'eClassifiers', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), 'eSubpackages', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), 'eSuperPackage', 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, false, false, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.ePackageEClass), 0), 59), this$static.eClassifierEClass, 'getEClassifier'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + $initEClass(this$static.eParameterEClass, Lorg_eclipse_emf_ecore_EParameter_2_classLit, 'EParameter', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), 'eOperation', 0, 1, Lorg_eclipse_emf_ecore_EParameter_2_classLit, true, false, false, false, false, false, false); + $initEClass(this$static.eReferenceEClass, Lorg_eclipse_emf_ecore_EReference_2_classLit, 'EReference', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 0), 34), this$static.eBooleanEDataType, 'containment', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 1), 34), this$static.eBooleanEDataType, 'container', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 2), 34), this$static.eBooleanEDataType, 'resolveProxies', 'true', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 3), 18), this$static.eReferenceEClass, null, 'eOpposite', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 4), 18), this$static.eClassEClass, null, 'eReferenceType', 1, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 5), 18), this$static.eAttributeEClass, null, 'eKeys', 0, -1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.eStructuralFeatureEClass, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 'EStructuralFeature', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 0), 34), this$static.eBooleanEDataType, 'changeable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 1), 34), this$static.eBooleanEDataType, 'volatile', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 2), 34), this$static.eBooleanEDataType, 'transient', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 3), 34), this$static.eStringEDataType, 'defaultValueLiteral', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 4), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 5), 34), this$static.eBooleanEDataType, 'unsettable', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 6), 34), this$static.eBooleanEDataType, 'derived', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, false, false, false, false, false, false); + $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 0), 59), this$static.eIntEDataType, 'getFeatureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 1), 59), null, 'getContainerClass'); + g1 = $createEGenericType(this$static.eJavaClassEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs = $setEGenericType(op, g1, null); + !!msgs && msgs.dispatch_0(); + $initEClass(this$static.eTypedElementEClass, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, 'ETypedElement', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 0), 34), this$static.eBooleanEDataType, 'ordered', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 1), 34), this$static.eBooleanEDataType, 'unique', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 2), 34), this$static.eIntEDataType, 'lowerBound', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 3), 34), this$static.eIntEDataType, 'upperBound', '1', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 4), 34), this$static.eBooleanEDataType, 'many', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 5), 34), this$static.eBooleanEDataType, 'required', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 6), 18), this$static.eClassifierEClass, null, 'eType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 7), 18), this$static.eGenericTypeEClass, null, 'eGenericType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, true, false, true, false); + $initEClass(this$static.eStringToStringMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'EStringToStringMapEntry', false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 0), 34), this$static.eStringEDataType, 'key', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 1), 34), this$static.eStringEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eGenericTypeEClass, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, 'EGenericType', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eUpperBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 1), 18), this$static.eGenericTypeEClass, null, 'eTypeArguments', 0, -1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 2), 18), this$static.eClassifierEClass, null, 'eRawType', 1, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, true, false, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 3), 18), this$static.eGenericTypeEClass, null, 'eLowerBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 4), 18), this$static.eTypeParameterEClass, null, 'eTypeParameter', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 5), 18), this$static.eClassifierEClass, null, 'eClassifier', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eGenericTypeEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEClass(this$static.eTypeParameterEClass, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, 'ETypeParameter', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypeParameterEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eBounds', 0, -1, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, false, false, true, true, false, false, false); + $initEDataType(this$static.eBigDecimalEDataType, Ljava_math_BigDecimal_2_classLit, 'EBigDecimal', true); + $initEDataType(this$static.eBigIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'EBigInteger', true); + $initEDataType(this$static.eBooleanEDataType, Z_classLit, 'EBoolean', true); + $initEDataType(this$static.eBooleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'EBooleanObject', true); + $initEDataType(this$static.eByteEDataType, B_classLit, 'EByte', true); + $initEDataType(this$static.eByteArrayEDataType, getClassLiteralForArray(B_classLit, 1), 'EByteArray', true); + $initEDataType(this$static.eByteObjectEDataType, Ljava_lang_Byte_2_classLit, 'EByteObject', true); + $initEDataType(this$static.eCharEDataType, C_classLit, 'EChar', true); + $initEDataType(this$static.eCharacterObjectEDataType, Ljava_lang_Character_2_classLit, 'ECharacterObject', true); + $initEDataType(this$static.eDateEDataType, Ljava_util_Date_2_classLit, 'EDate', true); + $initEDataType(this$static.eDiagnosticChainEDataType, Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, 'EDiagnosticChain', false); + $initEDataType(this$static.eDoubleEDataType, D_classLit, 'EDouble', true); + $initEDataType(this$static.eDoubleObjectEDataType, Ljava_lang_Double_2_classLit, 'EDoubleObject', true); + $initEDataType(this$static.eeListEDataType, Lorg_eclipse_emf_common_util_EList_2_classLit, 'EEList', false); + $initEDataType(this$static.eEnumeratorEDataType, Lorg_eclipse_emf_common_util_Enumerator_2_classLit, 'EEnumerator', false); + $initEDataType(this$static.eFeatureMapEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, 'EFeatureMap', false); + $initEDataType(this$static.eFeatureMapEntryEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, 'EFeatureMapEntry', false); + $initEDataType(this$static.eFloatEDataType, F_classLit, 'EFloat', true); + $initEDataType(this$static.eFloatObjectEDataType, Ljava_lang_Float_2_classLit, 'EFloatObject', true); + $initEDataType(this$static.eIntEDataType, I_classLit, 'EInt', true); + $initEDataType(this$static.eIntegerObjectEDataType, Ljava_lang_Integer_2_classLit, 'EIntegerObject', true); + $initEDataType(this$static.eJavaClassEDataType, Ljava_lang_Class_2_classLit, 'EJavaClass', true); + $initEDataType(this$static.eJavaObjectEDataType, Ljava_lang_Object_2_classLit, 'EJavaObject', true); + $initEDataType(this$static.eLongEDataType, J_classLit, 'ELong', true); + $initEDataType(this$static.eLongObjectEDataType, Ljava_lang_Long_2_classLit, 'ELongObject', true); + $initEDataType(this$static.eMapEDataType, Ljava_util_Map_2_classLit, 'EMap', false); + $initEDataType(this$static.eResourceEDataType, Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, 'EResource', false); + $initEDataType(this$static.eResourceSetEDataType, Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, 'EResourceSet', false); + $initEDataType(this$static.eShortEDataType, S_classLit, 'EShort', true); + $initEDataType(this$static.eShortObjectEDataType, Ljava_lang_Short_2_classLit, 'EShortObject', true); + $initEDataType(this$static.eStringEDataType, Ljava_lang_String_2_classLit, 'EString', true); + $initEDataType(this$static.eTreeIteratorEDataType, Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, 'ETreeIterator', false); + $initEDataType(this$static.eInvocationTargetExceptionEDataType, Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, 'EInvocationTargetException', false); + $createResource(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); +} + +function EcorePackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2002/Ecore', ($clinit_EcoreFactory() , eINSTANCE_1)); + $$init_12(this); +} + +function init_4(){ + $clinit_EcorePackageImpl(); + var theEcorePackage; + if (isInited_0) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1939); + register_0(Ljava_util_Map$Entry_2_classLit, new EcorePackageImpl$44); + initializeRegistryHelpersGen(); + theEcorePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 547)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore'):new EcorePackageImpl, 547); + isInited_0 = true; + $createPackageContents_0(theEcorePackage); + $initializePackageContents_0(theEcorePackage); + $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theEcorePackage, new EcorePackageImpl$1); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore', theEcorePackage); + return theEcorePackage; +} + +function initializeRegistryHelpersGen(){ + register_0(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, new EcorePackageImpl$2); + register_0(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, new EcorePackageImpl$3); + register_0(Lorg_eclipse_emf_ecore_EClass_2_classLit, new EcorePackageImpl$4); + register_0(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, new EcorePackageImpl$5); + register_0(Lorg_eclipse_emf_ecore_EDataType_2_classLit, new EcorePackageImpl$6); + register_0(Lorg_eclipse_emf_ecore_EEnum_2_classLit, new EcorePackageImpl$7); + register_0(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, new EcorePackageImpl$8); + register_0(Lorg_eclipse_emf_ecore_EFactory_2_classLit, new EcorePackageImpl$9); + register_0(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, new EcorePackageImpl$10); + register_0(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, new EcorePackageImpl$11); + register_0(Lorg_eclipse_emf_ecore_EObject_2_classLit, new EcorePackageImpl$12); + register_0(Lorg_eclipse_emf_ecore_EOperation_2_classLit, new EcorePackageImpl$13); + register_0(Lorg_eclipse_emf_ecore_EPackage_2_classLit, new EcorePackageImpl$14); + register_0(Lorg_eclipse_emf_ecore_EParameter_2_classLit, new EcorePackageImpl$15); + register_0(Lorg_eclipse_emf_ecore_EReference_2_classLit, new EcorePackageImpl$16); + register_0(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, new EcorePackageImpl$17); + register_0(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, new EcorePackageImpl$18); + register_0(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, new EcorePackageImpl$19); + register_0(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, new EcorePackageImpl$20); + register_0(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, new EcorePackageImpl$21); + register_0(Ljava_lang_Boolean_2_classLit, new EcorePackageImpl$22); + register_0(getClassLiteralForArray(B_classLit, 1), new EcorePackageImpl$23); + register_0(Ljava_lang_Byte_2_classLit, new EcorePackageImpl$24); + register_0(Ljava_lang_Character_2_classLit, new EcorePackageImpl$25); + register_0(Ljava_util_Date_2_classLit, new EcorePackageImpl$26); + register_0(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, new EcorePackageImpl$27); + register_0(Ljava_lang_Double_2_classLit, new EcorePackageImpl$28); + register_0(Lorg_eclipse_emf_common_util_EList_2_classLit, new EcorePackageImpl$29); + register_0(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, new EcorePackageImpl$30); + register_0(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, new EcorePackageImpl$31); + register_0(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, new EcorePackageImpl$32); + register_0(Ljava_lang_Float_2_classLit, new EcorePackageImpl$33); + register_0(Ljava_lang_Integer_2_classLit, new EcorePackageImpl$34); + register_0(Ljava_lang_Class_2_classLit, new EcorePackageImpl$35); + register_0(Ljava_lang_Long_2_classLit, new EcorePackageImpl$36); + register_0(Ljava_util_Map_2_classLit, new EcorePackageImpl$37); + register_0(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, new EcorePackageImpl$38); + register_0(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, new EcorePackageImpl$39); + register_0(Ljava_lang_Short_2_classLit, new EcorePackageImpl$40); + register_0(Ljava_lang_String_2_classLit, new EcorePackageImpl$41); + register_0(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, new EcorePackageImpl$42); + register_0(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, new EcorePackageImpl$43); +} + +function internalBootstrap(){ + $clinit_EcorePackageImpl(); + var eGenericType, eGenericType$iterator; + $createExtendedMetaDataAnnotations(($clinit_EcorePackage() , eINSTANCE_2)); + $createEcoreAnnotations(eINSTANCE_2); + $freeze_0(eINSTANCE_2); + eJavaObject = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT); + for (eGenericType$iterator = new ArrayList$1(eGenericTypes_0); eGenericType$iterator.i < eGenericType$iterator.this$01.array.length;) { + eGenericType = castTo($next_7(eGenericType$iterator), 241); + $setERawType(eGenericType, EJAVA_OBJECT, null); + } + return true; +} + +defineClass(547, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 1939:1, 49:1, 97:1, 150:1, 179:1, 547:1, 114:1, 115:1, 675:1}, EcorePackageImpl); +_.isCreated = false; +_.isInitialized = false; +var eGenericTypes_0, isInited_0 = false; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl', 547); +function EcorePackageImpl$1(){ +} + +defineClass(1184, 1, {837:1}, EcorePackageImpl$1); +_.getEValidator = function getEValidator(){ + return $clinit_EcoreValidator() , INSTANCE_10; +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/1', 1184); +function EcorePackageImpl$10(){ +} + +defineClass(1193, 1, $intern_162, EcorePackageImpl$10); +_.isInstance = function isInstance_6(instance){ + return instanceOf(instance, 147); +} +; +_.newArrayInstance = function newArrayInstance(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, $intern_2, 147, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/10', 1193); +function EcorePackageImpl$11(){ +} + +defineClass(1194, 1, $intern_162, EcorePackageImpl$11); +_.isInstance = function isInstance_7(instance){ + return instanceOf(instance, 191); +} +; +_.newArrayInstance = function newArrayInstance_0(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, $intern_2, 191, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/11', 1194); +function EcorePackageImpl$12(){ +} + +defineClass(1195, 1, $intern_162, EcorePackageImpl$12); +_.isInstance = function isInstance_8(instance){ + return instanceOf(instance, 56); +} +; +_.newArrayInstance = function newArrayInstance_1(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/12', 1195); +function EcorePackageImpl$13(){ +} + +defineClass(1196, 1, $intern_162, EcorePackageImpl$13); +_.isInstance = function isInstance_9(instance){ + return instanceOf(instance, 399); +} +; +_.newArrayInstance = function newArrayInstance_2(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/13', 1196); +function EcorePackageImpl$14(){ +} + +defineClass(1197, 1, $intern_162, EcorePackageImpl$14); +_.isInstance = function isInstance_10(instance){ + return instanceOf(instance, 235); +} +; +_.newArrayInstance = function newArrayInstance_3(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EPackage_2_classLit, $intern_2, 235, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/14', 1197); +function EcorePackageImpl$15(){ +} + +defineClass(1198, 1, $intern_162, EcorePackageImpl$15); +_.isInstance = function isInstance_11(instance){ + return instanceOf(instance, 509); +} +; +_.newArrayInstance = function newArrayInstance_4(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EParameter_2_classLit, $intern_2, 2017, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/15', 1198); +function EcorePackageImpl$16(){ +} + +defineClass(1199, 1, $intern_162, EcorePackageImpl$16); +_.isInstance = function isInstance_12(instance){ + return instanceOf(instance, 99); +} +; +_.newArrayInstance = function newArrayInstance_5(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/16', 1199); +function EcorePackageImpl$17(){ +} + +defineClass(1200, 1, $intern_162, EcorePackageImpl$17); +_.isInstance = function isInstance_13(instance){ + return instanceOf(instance, 170); +} +; +_.newArrayInstance = function newArrayInstance_6(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/17', 1200); +function EcorePackageImpl$18(){ +} + +defineClass(1201, 1, $intern_162, EcorePackageImpl$18); +_.isInstance = function isInstance_14(instance){ + return instanceOf(instance, 472); +} +; +_.newArrayInstance = function newArrayInstance_7(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, $intern_2, 472, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/18', 1201); +function EcorePackageImpl$19(){ +} + +defineClass(1202, 1, $intern_162, EcorePackageImpl$19); +_.isInstance = function isInstance_15(instance){ + return instanceOf(instance, 548); +} +; +_.newArrayInstance = function newArrayInstance_8(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, $intern_146, 548, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/19', 1202); +function EcorePackageImpl$2(){ +} + +defineClass(1185, 1, $intern_162, EcorePackageImpl$2); +_.isInstance = function isInstance_16(instance){ + return instanceOf(instance, 322); +} +; +_.newArrayInstance = function newArrayInstance_9(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/2', 1185); +function EcorePackageImpl$20(){ +} + +defineClass(1203, 1, $intern_162, EcorePackageImpl$20); +_.isInstance = function isInstance_17(instance){ + return instanceOf(instance, 241); +} +; +_.newArrayInstance = function newArrayInstance_10(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/20', 1203); +function EcorePackageImpl$21(){ +} + +defineClass(1204, 1, $intern_162, EcorePackageImpl$21); +_.isInstance = function isInstance_18(instance){ + return instanceOf(instance, 444); +} +; +_.newArrayInstance = function newArrayInstance_11(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, $intern_2, 836, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/21', 1204); +function EcorePackageImpl$22(){ +} + +defineClass(1205, 1, $intern_162, EcorePackageImpl$22); +_.isInstance = function isInstance_19(instance){ + return instanceOfBoolean(instance); +} +; +_.newArrayInstance = function newArrayInstance_12(size_0){ + return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/22', 1205); +function EcorePackageImpl$23(){ +} + +defineClass(1206, 1, $intern_162, EcorePackageImpl$23); +_.isInstance = function isInstance_20(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_13(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/23', 1206); +function EcorePackageImpl$24(){ +} + +defineClass(1207, 1, $intern_162, EcorePackageImpl$24); +_.isInstance = function isInstance_21(instance){ + return instanceOf(instance, 217); +} +; +_.newArrayInstance = function newArrayInstance_14(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/24', 1207); +function EcorePackageImpl$25(){ +} + +defineClass(1208, 1, $intern_162, EcorePackageImpl$25); +_.isInstance = function isInstance_22(instance){ + return instanceOf(instance, 172); +} +; +_.newArrayInstance = function newArrayInstance_15(size_0){ + return initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/25', 1208); +function EcorePackageImpl$26(){ +} + +defineClass(1209, 1, $intern_162, EcorePackageImpl$26); +_.isInstance = function isInstance_23(instance){ + return instanceOf(instance, 199); +} +; +_.newArrayInstance = function newArrayInstance_16(size_0){ + return initUnidimensionalArray(Ljava_util_Date_2_classLit, $intern_16, 199, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/26', 1209); +function EcorePackageImpl$27(){ +} + +defineClass(1210, 1, $intern_162, EcorePackageImpl$27); +_.isInstance = function isInstance_24(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_17(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, $intern_2, 2110, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/27', 1210); +function EcorePackageImpl$28(){ +} + +defineClass(1211, 1, $intern_162, EcorePackageImpl$28); +_.isInstance = function isInstance_25(instance){ + return instanceOfDouble(instance); +} +; +_.newArrayInstance = function newArrayInstance_18(size_0){ + return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/28', 1211); +function EcorePackageImpl$29(){ +} + +defineClass(1212, 1, $intern_162, EcorePackageImpl$29); +_.isInstance = function isInstance_26(instance){ + return instanceOf(instance, 58); +} +; +_.newArrayInstance = function newArrayInstance_19(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_EList_2_classLit, $intern_99, 58, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/29', 1212); +function EcorePackageImpl$3(){ +} + +defineClass(1186, 1, $intern_162, EcorePackageImpl$3); +_.isInstance = function isInstance_27(instance){ + return instanceOf(instance, 510); +} +; +_.newArrayInstance = function newArrayInstance_20(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, {3:1, 4:1, 5:1, 1934:1}, 590, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/3', 1186); +function EcorePackageImpl$30(){ +} + +defineClass(1213, 1, $intern_162, EcorePackageImpl$30); +_.isInstance = function isInstance_28(instance){ + return instanceOf(instance, 573); +} +; +_.newArrayInstance = function newArrayInstance_21(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, $intern_2, 1940, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/30', 1213); +function EcorePackageImpl$31(){ +} + +defineClass(1214, 1, $intern_162, EcorePackageImpl$31); +_.isInstance = function isInstance_29(instance){ + return instanceOf(instance, 153); +} +; +_.newArrayInstance = function newArrayInstance_22(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, $intern_99, 153, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/31', 1214); +function EcorePackageImpl$32(){ +} + +defineClass(1215, 1, $intern_162, EcorePackageImpl$32); +_.isInstance = function isInstance_30(instance){ + return instanceOf(instance, 72); +} +; +_.newArrayInstance = function newArrayInstance_23(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, $intern_163, 72, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/32', 1215); +function EcorePackageImpl$33(){ +} + +defineClass(1216, 1, $intern_162, EcorePackageImpl$33); +_.isInstance = function isInstance_31(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance_24(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/33', 1216); +function EcorePackageImpl$34(){ +} + +defineClass(1217, 1, $intern_162, EcorePackageImpl$34); +_.isInstance = function isInstance_32(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_25(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/34', 1217); +function EcorePackageImpl$35(){ +} + +defineClass(1218, 1, $intern_162, EcorePackageImpl$35); +_.isInstance = function isInstance_33(instance){ + return instanceOf(instance, 290); +} +; +_.newArrayInstance = function newArrayInstance_26(size_0){ + return initUnidimensionalArray(Ljava_lang_Class_2_classLit, $intern_2, 290, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/35', 1218); +function EcorePackageImpl$36(){ +} + +defineClass(1219, 1, $intern_162, EcorePackageImpl$36); +_.isInstance = function isInstance_34(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_27(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/36', 1219); +function EcorePackageImpl$37(){ +} + +defineClass(1220, 1, $intern_162, EcorePackageImpl$37); +_.isInstance = function isInstance_35(instance){ + return instanceOf(instance, 83); +} +; +_.newArrayInstance = function newArrayInstance_28(size_0){ + return initUnidimensionalArray(Ljava_util_Map_2_classLit, $intern_2, 83, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/37', 1220); +function EcorePackageImpl$38(){ +} + +defineClass(1221, 1, $intern_162, EcorePackageImpl$38); +_.isInstance = function isInstance_36(instance){ + return instanceOf(instance, 591); +} +; +_.newArrayInstance = function newArrayInstance_29(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, $intern_2, 591, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/38', 1221); +function EcorePackageImpl$39(){ +} + +defineClass(1222, 1, $intern_162, EcorePackageImpl$39); +_.isInstance = function isInstance_37(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_30(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, $intern_2, 2111, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/39', 1222); +function EcorePackageImpl$4(){ +} + +defineClass(1187, 1, $intern_162, EcorePackageImpl$4); +_.isInstance = function isInstance_38(instance){ + return instanceOf(instance, 88); +} +; +_.newArrayInstance = function newArrayInstance_31(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/4', 1187); +function EcorePackageImpl$40(){ +} + +defineClass(1223, 1, $intern_162, EcorePackageImpl$40); +_.isInstance = function isInstance_39(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_32(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/40', 1223); +function EcorePackageImpl$41(){ +} + +defineClass(1224, 1, $intern_162, EcorePackageImpl$41); +_.isInstance = function isInstance_40(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_33(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/41', 1224); +function EcorePackageImpl$42(){ +} + +defineClass(1225, 1, $intern_162, EcorePackageImpl$42); +_.isInstance = function isInstance_41(instance){ + return instanceOf(instance, 588); +} +; +_.newArrayInstance = function newArrayInstance_34(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, $intern_2, 588, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/42', 1225); +function EcorePackageImpl$43(){ +} + +defineClass(1226, 1, $intern_162, EcorePackageImpl$43); +_.isInstance = function isInstance_42(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_35(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, $intern_16, 2112, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/43', 1226); +function EcorePackageImpl$44(){ +} + +defineClass(1227, 1, $intern_162, EcorePackageImpl$44); +_.isInstance = function isInstance_43(instance){ + return instanceOf(instance, 42); +} +; +_.newArrayInstance = function newArrayInstance_36(size_0){ + return initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/44', 1227); +function EcorePackageImpl$5(){ +} + +defineClass(1188, 1, $intern_162, EcorePackageImpl$5); +_.isInstance = function isInstance_44(instance){ + return instanceOf(instance, 138); +} +; +_.newArrayInstance = function newArrayInstance_37(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/5', 1188); +function EcorePackageImpl$6(){ +} + +defineClass(1189, 1, $intern_162, EcorePackageImpl$6); +_.isInstance = function isInstance_45(instance){ + return instanceOf(instance, 148); +} +; +_.newArrayInstance = function newArrayInstance_38(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EDataType_2_classLit, $intern_2, 148, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/6', 1189); +function EcorePackageImpl$7(){ +} + +defineClass(1190, 1, $intern_162, EcorePackageImpl$7); +_.isInstance = function isInstance_46(instance){ + return instanceOf(instance, 457); +} +; +_.newArrayInstance = function newArrayInstance_39(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnum_2_classLit, $intern_2, 671, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/7', 1190); +function EcorePackageImpl$8(){ +} + +defineClass(1191, 1, $intern_162, EcorePackageImpl$8); +_.isInstance = function isInstance_47(instance){ + return instanceOf(instance, 573); +} +; +_.newArrayInstance = function newArrayInstance_40(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, $intern_2, 678, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/8', 1191); +function EcorePackageImpl$9(){ +} + +defineClass(1192, 1, $intern_162, EcorePackageImpl$9); +_.isInstance = function isInstance_48(instance){ + return instanceOf(instance, 471); +} +; +_.newArrayInstance = function newArrayInstance_41(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EFactory_2_classLit, $intern_2, 471, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/9', 1192); +function $didAdd_1(this$static, newAdapter){ + var listener$array, listener$index, listener$max, listeners; + newAdapter.setTarget(this$static.this$01); + listeners = castTo($getField(this$static.this$01, 8), 1936); + if (listeners != null) { + for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { + null.$_nullMethod(); + } + } +} + +function $didRemove_0(this$static, index_0, oldAdapter){ + var adapter, listener$array, listener$index, listener$max, listeners, notification; + listeners = castTo($getField(this$static.this$01, 8), 1936); + if (listeners != null) { + for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { + null.$_nullMethod(); + } + } + adapter = oldAdapter; + if ((this$static.this$01.eFlags_0 & 1) == 0) { + notification = new MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$static, oldAdapter, index_0); + adapter.notifyChanged(notification); + } + instanceOf(adapter, 672)?castTo(adapter, 672).unsetTarget(this$static.this$01):adapter.getTarget() == this$static.this$01 && adapter.setTarget(null); +} + +function $setData(this$static, data_0){ + var eContainerAdapterArray, eInternalContainer; + ++this$static.modCount; + if (data_0 != null) { + eContainerAdapterArray = (eInternalContainer = this$static.this$01.eContainer , instanceOf(eInternalContainer, 97)?castTo(eInternalContainer, 97).eBasicAdapterArray():null); + if (equals_46(data_0, eContainerAdapterArray)) { + $setField(this$static.this$01, 4, eContainerAdapterArray); + return; + } + } + $setField(this$static.this$01, 4, castTo(data_0, 126)); +} + +function MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$0){ + $clinit_ArrayDelegatingEList(); + this.this$01 = this$0; +} + +defineClass(1025, 1982, $intern_144, MinimalEObjectImpl$1ArrayDelegatingAdapterList); +_.didAdd = function didAdd_2(index_0, newAdapter){ + $didAdd_1(this, castTo(newAdapter, 415)); +} +; +_.didRemove = function didRemove_1(index_0, oldAdapter){ + $didRemove_0(this, index_0, castTo(oldAdapter, 415)); +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList', 1025); +function MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$1, $anonymous1, $anonymous3){ + this.this$11 = this$1; + NotificationImpl_1.call(this, 8, $anonymous1, null, $anonymous3); +} + +defineClass(1026, 143, $intern_142, MinimalEObjectImpl$1ArrayDelegatingAdapterList$1); +_.getNotifier = function getNotifier_7(){ + return this.this$11.this$01; +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1', 1026); +function $clinit_EcorePlugin(){ + $clinit_EcorePlugin = emptyMethod; + new EcorePlugin; + new ArrayList; +} + +function EcorePlugin(){ + new HashMap; + new HashMap; + new HashMap; +} + +defineClass(1053, 1052, {}, EcorePlugin); +var Lorg_eclipse_emf_ecore_plugin_EcorePlugin_2_classLit = createForClass('org.eclipse.emf.ecore.plugin', 'EcorePlugin', 1053); +var Lorg_eclipse_emf_ecore_resource_Resource_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'Resource'); +function $getEObject(this$static, uriFragmentPath){ + var eObject, i, size_0; + size_0 = uriFragmentPath.array.length; + eObject = $getEObjectForURIFragmentRootSegment(this$static, size_0 == 0?'':(checkCriticalElementIndex(0, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[0]))); + for (i = 1; i < size_0 && !!eObject; ++i) { + eObject = castTo(eObject, 49).eObjectForURIFragmentSegment((checkCriticalElementIndex(i, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[i]))); + } + return eObject; +} + +function $getEObjectByID(this$static, id_0){ + var eObject, eObjectId, i, result, eClass, eIDAttribute; + result = null; + for (i = new ResourceImpl$5((!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents)); $hasNext_7(i);) { + eObject = castTo($next_14(i), 56); + eObjectId = (eClass = eObject.eClass_0() , eIDAttribute = ($getEAllAttributes(eClass) , eClass.eIDAttribute) , !eIDAttribute || !eObject.eIsSet_0(eIDAttribute)?null:convertToString_2($getEAttributeType(eIDAttribute), eObject.eGet_0(eIDAttribute))); + if (eObjectId != null) { + if ($equals_5(eObjectId, id_0)) { + result = eObject; + break; + } + } + } + return result; +} + +function $getEObjectForURIFragmentRootSegment(this$static, uriFragmentRootSegment){ + var contents, exception, position; + position = 0; + if (uriFragmentRootSegment.length > 0) { + try { + position = __parseAndValidateInt(uriFragmentRootSegment, $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + } + contents = (!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents); + return position < contents.size_0 && position >= 0?castTo($get_20(contents, position), 56):null; +} + +defineClass(781, 1378, $intern_164); +_.attached = function attached(eObject){ +} +; +_.detached = function detached(eObject){ +} +; +_.getContents = function getContents(){ + return !this.contents && (this.contents = new ResourceImpl$ContentsEList(this)) , this.contents; +} +; +_.getEObject = function getEObject(uriFragment){ + var i, index_0, length_0, start_0, uriFragmentPath; + length_0 = uriFragment.length; + if (length_0 > 0) { + checkCriticalStringElementIndex(0, uriFragment.length); + if (uriFragment.charCodeAt(0) == 47) { + uriFragmentPath = new ArrayList_0(4); + start_0 = 1; + for (i = 1; i < length_0; ++i) { + checkCriticalStringElementIndex(i, uriFragment.length); + if (uriFragment.charCodeAt(i) == 47) { + $add_3(uriFragmentPath, start_0 == i?'':uriFragment.substr(start_0, i - start_0)); + start_0 = i + 1; + } + } + $add_3(uriFragmentPath, uriFragment.substr(start_0)); + return $getEObject(this, uriFragmentPath); + } + else { + checkCriticalStringElementIndex(length_0 - 1, uriFragment.length); + if (uriFragment.charCodeAt(length_0 - 1) == 63) { + index_0 = $lastIndexOf_0(uriFragment, fromCodePoint(63), length_0 - 2); + index_0 > 0 && (uriFragment = uriFragment.substr(0, index_0)); + } + } + } + return $getEObjectByID(this, uriFragment); +} +; +_.getResourceSet = function getResourceSet(){ + return this.resourceSet; +} +; +_.toString_0 = function toString_156(){ + var number; + return $getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)) + " uri='" + this.uri_0 + "'"; +} +; +_.isLoaded = false; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl', 781); +function BinaryResourceImpl(uri_0){ + this.uri_0 = uri_0; +} + +defineClass(1379, 781, $intern_164, BinaryResourceImpl); +var Lorg_eclipse_emf_ecore_resource_impl_BinaryResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'BinaryResourceImpl', 1379); +function $getEObjectChildren(this$static, eObject){ + return this$static.isResolveProxies?eObject.eContents_0().iterator_0():castTo(eObject.eContents_0(), 69).basicIterator(); +} + +function $hasNext_7(this$static){ + var iterator; + if (!this$static.includeRoot && this$static.data_0 == null) { + this$static.nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, this$static.nextPruneIterator); + iterator = this$static.nextPruneIterator; + } + else { + if (this$static.data_0 == null) { + return true; + } + else if (this$static.size_0 == 0) { + return false; + } + else { + iterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); + } + } + if (iterator == this$static.resourceSetIterator && null.$_nullField >= null.$_nullMethod()) { + $next_14(this$static); + return $hasNext_7(this$static); + } + else { + return iterator.hasNext_0(); + } +} + +defineClass(1169, 694, $intern_139); +_.getChildren = function getChildren_0(object){ + return instanceOf(object, 56)?$getEObjectChildren(this, castTo(object, 56)):instanceOf(object, 591)?new AbstractEList$EIterator(castTo(object, 591).getContents()):maskUndefined(object) === maskUndefined(this.object)?castTo(object, 14).iterator_0():($clinit_ECollections() , EMPTY_ELIST.listIterator); +} +; +_.hasNext_0 = function hasNext_48(){ + return $hasNext_7(this); +} +; +_.isResolveProxies = false; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ContentTreeIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ContentTreeIterator', 1169); +function ResourceImpl$5($anonymous0){ + AbstractTreeIterator.call(this, $anonymous0, false); + this.isResolveProxies = false; +} + +defineClass(1380, 1169, $intern_139, ResourceImpl$5); +_.getChildren = function getChildren_1(object){ + return maskUndefined(object) === maskUndefined(this.object)?castTo(object, 15).iterator_0():new EcoreUtil$ProperContentIterator(castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/5', 1380); +function ResourceImpl$ContentsEList(this$0){ + this.this$01 = this$0; +} + +defineClass(648, 1994, $intern_153, ResourceImpl$ContentsEList); +_.contains = function contains_66(object){ + return this.size_0 <= 4?$contains_10(this, object):instanceOf(object, 49) && castTo(object, 49).eDirectResource() == this.this$01; +} +; +_.didAdd = function didAdd_3(index_0, object){ + index_0 == this.size_0 - 1 && (this.this$01.isLoaded || (this.this$01.isLoaded = true , null)); +} +; +_.didClear = function didClear_1(oldSize, oldData){ + oldSize == 0?this.this$01.isLoaded || (this.this$01.isLoaded = true , null):$didClear(this, oldSize, oldData); +} +; +_.didRemove = function didRemove_2(index_0, object){ +} +; +_.didSet = function didSet_1(index_0, newObject, oldObject){ +} +; +_.getFeatureID_0 = function getFeatureID_12(){ + return 2; +} +; +_.getNotifier = function getNotifier_8(){ + return this.this$01; +} +; +_.hasInverse = function hasInverse_10(){ + return true; +} +; +_.inverseAdd = function inverseAdd_8(object, notifications){ + var eObject; + eObject = castTo(object, 49); + notifications = eObject.eSetResource(this.this$01, notifications); + return notifications; +} +; +_.inverseRemove = function inverseRemove_8(object, notifications){ + var eObject; + eObject = castTo(object, 49); + return eObject.eSetResource(null, notifications); +} +; +_.isNotificationRequired = function isNotificationRequired_3(){ + return false; +} +; +_.isUnique = function isUnique_7(){ + return true; +} +; +_.newData = function newData_13(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, capacity, 0, 1); +} +; +_.useEquals = function useEquals_14(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$ContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/ContentsEList', 648); +function AbstractSequentialInternalEList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(957, 1964, $intern_37, AbstractSequentialInternalEList$1); +_.listIterator_1 = function listIterator_32(index_0){ + return this.this$01.basicListIterator_0(index_0); +} +; +_.size_1 = function size_79(){ + return this.this$01.size_1(); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList/1', 957); +function $clinit_ExtendedMetaData(){ + $clinit_ExtendedMetaData = emptyMethod; + FEATURE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'simple', 'attribute', 'attributeWildcard', 'element', 'elementWildcard', 'group']); + CONTENT_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'empty', 'simple', 'mixed', 'elementOnly']); + WHITE_SPACE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'preserve', 'replace', 'collapse']); + INSTANCE_11 = new BasicExtendedMetaData; +} + +var CONTENT_KINDS, FEATURE_KINDS, INSTANCE_11, WHITE_SPACE_KINDS; +function $clinit_BasicExtendedMetaData(){ + $clinit_BasicExtendedMetaData = emptyMethod; + var eAttribute, eDataType; + UNINITIALIZED_EDATA_TYPE = ($clinit_EcoreFactory() , eDataType = new EDataTypeImpl , eDataType); + UNINITIALIZED_ESTRUCTURAL_FEATURE = (eAttribute = new EAttributeImpl , eAttribute); +} + +function $basicGetAffiliation(this$static, eStructuralFeature){ + var eAnnotation, fragmentIndex, qualifiedName; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'affiliation')); + if (qualifiedName != null) { + fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); + return fragmentIndex == -1?$getElement(this$static, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())), qualifiedName):fragmentIndex == 0?$getElement(this$static, null, qualifiedName.substr(1)):$getElement(this$static, qualifiedName.substr(0, fragmentIndex), qualifiedName.substr(fragmentIndex + 1)); + } + } + return null; +} + +function $basicGetBaseType(this$static, eDataType){ + var baseType, details, eAnnotation, index_0, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); + baseType = castToString($get_21(details, 'baseType')); + if (baseType != null) { + index_0 = baseType.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), baseType):index_0 == 0?$getType(this$static, null, baseType.substr(1)):$getType(this$static, baseType.substr(0, index_0), baseType.substr(index_0 + 1)); + if (instanceOf(type_0, 148)) { + return castTo(type_0, 148); + } + } + } + return null; +} + +function $basicGetContentKind(this$static, eClass){ + var eAnnotation, i, kind; + eAnnotation = eClass.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); + if (kind != null) { + for (i = 1; i < ($clinit_ExtendedMetaData() , CONTENT_KINDS).length; ++i) { + if ($equals_5(CONTENT_KINDS[i], kind)) { + return i; + } + } + } + } + return 0; +} + +function $basicGetFeatureKind(this$static, eStructuralFeature){ + var eAnnotation, i, kind; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); + if (kind != null) { + for (i = 1; i < ($clinit_ExtendedMetaData() , FEATURE_KINDS).length; ++i) { + if ($equals_5(FEATURE_KINDS[i], kind)) { + return i; + } + } + } + } + return 0; +} + +function $basicGetGroup(this$static, eStructuralFeature){ + var eAnnotation, eContainingClass, fragmentIndex, name_0, namespace, qualifiedName; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group')); + if (qualifiedName != null) { + fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); + eContainingClass = eStructuralFeature.getEContainingClass(); + if (fragmentIndex == -1) { + namespace = $getNamespace(this$static, $getEPackage(eContainingClass)); + name_0 = qualifiedName; + } + else if (fragmentIndex == 0) { + namespace = null; + name_0 = qualifiedName.substr(1); + } + else { + namespace = qualifiedName.substr(0, fragmentIndex); + name_0 = qualifiedName.substr(fragmentIndex + 1); + } + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + return $getAttribute_0(this$static, eContainingClass, namespace, name_0); + } + + case 0: + case 4: + case 5: + case 6: + { + return $getElement_0(this$static, eContainingClass, namespace, name_0); + } + + } + } + } + return null; +} + +function $basicGetItemType(this$static, eDataType){ + var details, eAnnotation, index_0, itemType, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); + itemType = castToString($get_21(details, 'itemType')); + if (itemType != null) { + index_0 = itemType.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), itemType):index_0 == 0?$getType(this$static, null, itemType.substr(1)):$getType(this$static, itemType.substr(0, index_0), itemType.substr(index_0 + 1)); + if (instanceOf(type_0, 148)) { + return castTo(type_0, 148); + } + } + } + return null; +} + +function $basicGetMemberTypes(this$static, eDataType){ + var eAnnotation, index_0, member, member$array, member$index, member$max, memberTypes, result, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + memberTypes = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'memberTypes')); + if (memberTypes != null) { + result = new ArrayList; + for (member$array = $split_0(memberTypes, '\\w') , member$index = 0 , member$max = member$array.length; member$index < member$max; ++member$index) { + member = member$array[member$index]; + index_0 = member.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), member):index_0 == 0?$getType(this$static, null, member.substr(1)):$getType(this$static, member.substr(0, index_0), member.substr(index_0 + 1)); + instanceOf(type_0, 148) && $add_3(result, castTo(type_0, 148)); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $basicGetName(this$static, eClassifier){ + var eAnnotation, result; + eAnnotation = eClassifier.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); + if (result != null) { + return result; + } + } + return eClassifier.getName(); +} + +function $basicGetName_0(this$static, eStructuralFeature){ + var eAnnotation, result; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); + if (result != null) { + return result; + } + } + return eStructuralFeature.getName(); +} + +function $basicGetNamespace(this$static, eStructuralFeature){ + var eAnnotation, result; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (!eAnnotation) { + return null; + } + else { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'namespace')); + return $equals_5('##targetNamespace', result)?$getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())):result; + } +} + +function $basicGetWhiteSpaceFacet(this$static, eDataType){ + var eAnnotation, i, whiteSpaceLiteral; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + whiteSpaceLiteral = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'whiteSpace')); + for (i = 1; i < ($clinit_ExtendedMetaData() , WHITE_SPACE_KINDS).length; ++i) { + if ($equals_5(WHITE_SPACE_KINDS[i], whiteSpaceLiteral)) { + return i; + } + } + } + return 0; +} + +function $basicGetWildcards(this$static, eStructuralFeature){ + var eAnnotation, result, wildcard, wildcard$array, wildcard$index, wildcard$max, wildcards; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + wildcards = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'wildcards')); + if (wildcards != null) { + result = new ArrayList; + for (wildcard$array = $split_0(wildcards, '\\w') , wildcard$index = 0 , wildcard$max = wildcard$array.length; wildcard$index < wildcard$max; ++wildcard$index) { + wildcard = wildcard$array[wildcard$index]; + $equals_5(wildcard, '##other')?$add_3(result, '!##' + $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):$equals_5(wildcard, '##local')?(result.array[result.array.length] = null , true):$equals_5(wildcard, '##targetNamespace')?$add_3(result, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):(result.array[result.array.length] = wildcard , true); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $getAffiliation(this$static, eClass, eStructuralFeature){ + var affiliation, allAttributes, allElements, i, name_0, namespace, namespace0, result, size_0; + if ($getFeatureID(eClass, eStructuralFeature) >= 0) { + return eStructuralFeature; + } + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + { + if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { + namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + name_0 = $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + result = $getLocalAttribute(this$static, eClass, namespace, name_0); + if (result) { + return result; + } + allAttributes = $getAllAttributes(this$static, eClass); + for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { + result = castTo(allAttributes.get_0(i), 170); + if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { + return result; + } + } + } + return null; + } + + case 4: + { + if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { + for (affiliation = eStructuralFeature; affiliation; affiliation = $getAffiliation_0($getExtendedMetaData_1(this$static, affiliation))) { + namespace0 = $getNamespace_0($getExtendedMetaData_1(this$static, affiliation)); + name_0 = $getName_0($getExtendedMetaData_1(this$static, affiliation)); + result = $getLocalElement(this$static, eClass, namespace0, name_0); + if (result) { + return result; + } + } + namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if ($equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace)) { + return $getMixedFeature(this$static, eClass); + } + else { + allElements = $getAllElements(this$static, eClass); + for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { + result = castTo(allElements.get_0(i), 170); + if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { + return result; + } + } + } + } + return null; + } + + default:{ + return null; + } + + } +} + +function $getAllAttributes(this$static, eClass){ + var allAttributes, attributes, changeable, eGenericType, eSuperType, i, result, result0, size_0, superTypes; + superTypes = $getESuperTypes(eClass); + result0 = null; + changeable = false; + for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { + eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + allAttributes = $getAllAttributes(this$static, eSuperType); + if (!allAttributes.isEmpty()) { + if (!result0) { + result0 = allAttributes; + } + else { + if (!changeable) { + changeable = true; + result0 = new UniqueEList_0(result0); + } + result0.addAll(allAttributes); + } + } + } + attributes = $getAttributes(this$static, eClass); + if (attributes.isEmpty()) { + return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; + } + else { + if (!result0) { + return attributes; + } + else { + changeable || (result0 = new UniqueEList_0(result0)); + result0.addAll(attributes); + return result0; + } + } +} + +function $getAllElements(this$static, eClass){ + var allElements, changeable, eGenericType, eSuperType, elements, i, result, result0, size_0, superTypes; + superTypes = $getESuperTypes(eClass); + result0 = null; + changeable = false; + for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { + eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + allElements = $getAllElements(this$static, eSuperType); + if (!allElements.isEmpty()) { + if (!result0) { + result0 = allElements; + } + else { + if (!changeable) { + changeable = true; + result0 = new UniqueEList_0(result0); + } + result0.addAll(allElements); + } + } + } + elements = $getElements(this$static, eClass); + if (elements.isEmpty()) { + return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; + } + else { + if (!result0) { + return elements; + } + else { + changeable || (result0 = new UniqueEList_0(result0)); + result0.addAll(elements); + return result0; + } + } +} + +function $getAnnotation(this$static, eModelElement){ + var result; + result = eModelElement.getEAnnotation(this$static.annotationURI); + return result; +} + +function $getAttribute(this$static, namespace, name_0){ + var documentRoot, ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + if (ePackage0) { + documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); + if (documentRoot) { + return $getLocalAttribute(this$static, documentRoot, namespace, name_0); + } + } + return null; +} + +function $getAttribute_0(this$static, eClass, namespace, name_0){ + var result; + result = $getLocalAttribute(this$static, eClass, namespace, name_0); + if (!result) { + result = $getAttribute(this$static, namespace, name_0); + if (!!result && !$getAffiliation(this$static, eClass, result)) { + return null; + } + } + return result; +} + +function $getAttributes(this$static, eClass){ + var eStructuralFeature, eStructuralFeatures, i, result, size_0; + eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); + result = null; + for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { + eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + !result && (result = new ArrayList); + result.array[result.array.length] = eStructuralFeature; + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getElement(this$static, namespace, name_0){ + var documentRoot, ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + if (ePackage0) { + documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); + if (documentRoot) { + return $getLocalElement(this$static, documentRoot, namespace, name_0); + } + } + return null; +} + +function $getElement_0(this$static, eClass, namespace, name_0){ + var result; + result = $getLocalElement(this$static, eClass, namespace, name_0); + if (!result) { + result = $getElement(this$static, namespace, name_0); + if (!!result && !$getAffiliation(this$static, eClass, result)) { + return null; + } + } + return result; +} + +function $getElements(this$static, eClass){ + var eStructuralFeature, eStructuralFeatures, i, result, size_0; + eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); + result = null; + for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { + eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 4: + case 5: + case 6: + { + !result && (result = new ArrayList); + result.array[result.array.length] = eStructuralFeature; + break; + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getExtendedMetaData(this$static, eClassifier){ + var holder, result; + holder = castTo(eClassifier, 676); + result = holder.getExtendedMetaData_1(); + !result && holder.setExtendedMetaData_1(result = instanceOf(eClassifier, 88)?new BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$static, castTo(eClassifier, 26)):new BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$static, castTo(eClassifier, 148))); + return result; +} + +function $getExtendedMetaData_0(this$static, ePackage){ + var holder, result; + holder = castTo(ePackage, 675); + result = holder.getExtendedMetaData(); + !result && holder.setExtendedMetaData(result = new BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$static, ePackage)); + return result; +} + +function $getExtendedMetaData_1(this$static, eStructuralFeature){ + var holder, result; + holder = castTo(eStructuralFeature, 677); + result = holder.getExtendedMetaData_0(); + !result && holder.setExtendedMetaData_0(result = new BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$static, eStructuralFeature)); + return result; +} + +function $getLocalAttribute(this$static, eClass, namespace, name_0){ + var allAttributes, eStructuralFeature, featureNamespace, i, result, size_0; + result = null; + allAttributes = $getAllAttributes(this$static, eClass); + for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { + eStructuralFeature = castTo(allAttributes.get_0(i), 170); + if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { + featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if (namespace == null) { + if (featureNamespace == null) { + return eStructuralFeature; + } + else + !result && (result = eStructuralFeature); + } + else if ($equals_5(namespace, featureNamespace)) { + return eStructuralFeature; + } + else + featureNamespace == null && !result && (result = eStructuralFeature); + } + } + return null; +} + +function $getLocalElement(this$static, eClass, namespace, name_0){ + var allElements, eStructuralFeature, featureNamespace, i, result, size_0; + result = null; + allElements = $getAllElements(this$static, eClass); + for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { + eStructuralFeature = castTo(allElements.get_0(i), 170); + if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { + featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if (namespace == null) { + if (featureNamespace == null) { + return eStructuralFeature; + } + else + !result && (result = eStructuralFeature); + } + else if ($equals_5(namespace, featureNamespace)) { + return eStructuralFeature; + } + else + featureNamespace == null && !result && (result = eStructuralFeature); + } + } + return null; +} + +function $getMixedFeature(this$static, eClass){ + var eAllAttributes, eAttribute, i, size_0; + switch ($getExtendedMetaData(this$static, eClass).getContentKind()) { + case 3: + case 2: + { + eAllAttributes = $getEAllAttributes(eClass); + for (i = 0 , size_0 = eAllAttributes.size_0; i < size_0; ++i) { + eAttribute = castTo($get_20(eAllAttributes, i), 34); + if ($getFeatureKind($getExtendedMetaData_1(this$static, eAttribute)) == 5) { + return eAttribute; + } + } + break; + } + + } + return null; +} + +function $getNamespace(this$static, ePackage){ + return $isQualified($getExtendedMetaData_0(this$static, ePackage))?ePackage.getNsURI():null; +} + +function $getType(this$static, namespace, name_0){ + var ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + return !ePackage0?null:$getType_1($getExtendedMetaData_0(this$static, ePackage0), name_0); +} + +function $getType_0(this$static, ePackage, name_0){ + return $getType_1($getExtendedMetaData_0(this$static, ePackage), name_0); +} + +function $matches(wildcards, namespace){ + var i, size_0, suffixlength, wildcard; + if (!wildcards.isEmpty()) { + for (i = 0 , size_0 = wildcards.size_1(); i < size_0; ++i) { + wildcard = castToString(wildcards.get_0(i)); + if (wildcard == null?namespace == null:$equals_5(wildcard.substr(0, 3), '!##')?namespace != null && (suffixlength = namespace.length , !$equals_5(wildcard.substr(wildcard.length - suffixlength, suffixlength), namespace) || wildcard.length != namespace.length + 3) && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace):$equals_5(wildcard, '##any') && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace) || $equals_5(wildcard, namespace)) { + return true; + } + } + } + return false; +} + +function BasicExtendedMetaData(){ + $clinit_BasicExtendedMetaData(); + BasicExtendedMetaData_0.call(this, ($clinit_EPackage$Registry() , INSTANCE_6)); +} + +function BasicExtendedMetaData_0(registry){ + this.annotationURI = (checkCriticalNotNull('http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData'); + this.registry = registry; + new EPackageRegistryImpl; +} + +defineClass(624, 1, {}, BasicExtendedMetaData); +var UNINITIALIZED_EDATA_TYPE, UNINITIALIZED_ESTRUCTURAL_FEATURE; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData', 624); +function $setContentKind(this$static, kind){ + this$static.contentKind = kind; +} + +function $setName_2(this$static, name_0){ + this$static.name_0 = name_0; +} + +function BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$0, eClass){ + this.this$01 = this$0; + this.eClass = eClass; +} + +defineClass(1160, 1, {}, BasicExtendedMetaData$EClassExtendedMetaDataImpl); +_.getBaseType = function getBaseType(){ + return null; +} +; +_.getContentKind = function getContentKind(){ + this.contentKind == -2 && $setContentKind(this, $basicGetContentKind(this.this$01, this.eClass)); + return this.contentKind; +} +; +_.getItemType = function getItemType(){ + return null; +} +; +_.getMemberTypes = function getMemberTypes(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getName = function getName_7(){ + this.name_0 == 'uninitialized' && $setName_2(this, $basicGetName(this.this$01, this.eClass)); + return this.name_0; +} +; +_.getWhiteSpaceFacet = function getWhiteSpaceFacet(){ + return 0; +} +; +_.contentKind = -2; +_.name_0 = 'uninitialized'; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EClassExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EClassExtendedMetaDataImpl', 1160); +function $setBaseType(this$static, baseType){ + this$static.baseType = baseType; +} + +function $setItemType(this$static, itemType){ + this$static.itemType = itemType; +} + +function $setMemberTypes(this$static, memberTypes){ + this$static.memberTypes = memberTypes; +} + +function $setName_3(this$static, name_0){ + this$static.name_0 = name_0; +} + +function $setWhiteSpaceFacet(this$static, whiteSpace){ + this$static.whiteSpace = whiteSpace; +} + +function BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$0, eDataType){ + this.this$01 = this$0; + this.baseType = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE); + this.itemType = UNINITIALIZED_EDATA_TYPE; + this.eDataType = eDataType; +} + +defineClass(1161, 1, {}, BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl); +_.getBaseType = function getBaseType_0(){ + this.baseType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setBaseType(this, $basicGetBaseType(this.this$01, this.eDataType)); + return this.baseType; +} +; +_.getContentKind = function getContentKind_0(){ + return 0; +} +; +_.getItemType = function getItemType_0(){ + this.itemType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setItemType(this, $basicGetItemType(this.this$01, this.eDataType)); + return this.itemType; +} +; +_.getMemberTypes = function getMemberTypes_0(){ + !this.memberTypes && $setMemberTypes(this, $basicGetMemberTypes(this.this$01, this.eDataType)); + return this.memberTypes; +} +; +_.getName = function getName_8(){ + this.name_0 == 'uninitialized' && $setName_3(this, $basicGetName(this.this$01, this.eDataType)); + return this.name_0; +} +; +_.getWhiteSpaceFacet = function getWhiteSpaceFacet_0(){ + this.whiteSpace == -2 && $setWhiteSpaceFacet(this, $basicGetWhiteSpaceFacet(this.this$01, this.eDataType)); + return this.whiteSpace; +} +; +_.name_0 = 'uninitialized'; +_.whiteSpace = -2; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl', 1161); +function $getType_1(this$static, name_0){ + var conflictingEClassifier, eClassifier, eClassifierName, eClassifiers, i, i0, nameToClassifierMap, originalMapSize, result, size_0; + result = null; + !!this$static.nameToClassifierMap && (result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138)); + if (!result) { + eClassifiers = this$static.ePackage.getEClassifiers(); + size_0 = eClassifiers.size_0; + if (!this$static.nameToClassifierMap || $size_2(this$static.nameToClassifierMap) != size_0) { + nameToClassifierMap = new HashMap; + !!this$static.nameToClassifierMap && $putAll(nameToClassifierMap, this$static.nameToClassifierMap); + originalMapSize = nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0; + for (i0 = originalMapSize; i0 < size_0; ++i0) { + eClassifier = castTo($get_20(eClassifiers, i0), 138); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); + !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); + } + if (nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0 != size_0) { + for (i = 0; i < originalMapSize; ++i) { + eClassifier = castTo($get_20(eClassifiers, i), 138); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); + !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); + } + } + this$static.nameToClassifierMap = nameToClassifierMap; + } + result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138); + } + return result; +} + +function $isQualified(this$static){ + var eAnnotation; + this$static.isInitialized || $setQualified(this$static, (eAnnotation = $getAnnotation(this$static.this$01, this$static.ePackage) , !eAnnotation || !$equals_5('false', $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'qualified')))); + return this$static.isQualified; +} + +function $setQualified(this$static, isQualified){ + this$static.isQualified = isQualified; + this$static.isInitialized = true; +} + +function BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$0, ePackage){ + this.this$01 = this$0; + this.ePackage = ePackage; +} + +defineClass(1159, 1, {}, BasicExtendedMetaData$EPackageExtendedMetaDataImpl); +_.isInitialized = false; +_.isQualified = false; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EPackageExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EPackageExtendedMetaDataImpl', 1159); +function $getAffiliation_0(this$static){ + this$static.affiliation == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setAffiliation(this$static, $basicGetAffiliation(this$static.this$01, this$static.eStructuralFeature)); + return this$static.affiliation; +} + +function $getFeatureKind(this$static){ + this$static.featureKind == -2 && $setFeatureKind(this$static, $basicGetFeatureKind(this$static.this$01, this$static.eStructuralFeature)); + return this$static.featureKind; +} + +function $getGroup(this$static){ + this$static.group_0 == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setGroup(this$static, $basicGetGroup(this$static.this$01, this$static.eStructuralFeature)); + return this$static.group_0; +} + +function $getName_0(this$static){ + this$static.name_0 == 'uninitialized' && $setName_4(this$static, $basicGetName_0(this$static.this$01, this$static.eStructuralFeature)); + return this$static.name_0; +} + +function $getNamespace_0(this$static){ + this$static.namespace == 'uninitialized' && $setNamespace(this$static, $basicGetNamespace(this$static.this$01, this$static.eStructuralFeature)); + return this$static.namespace; +} + +function $getWildcards(this$static){ + !this$static.wildcards && $setWildcards(this$static, $basicGetWildcards(this$static.this$01, this$static.eStructuralFeature)); + return this$static.wildcards; +} + +function $setAffiliation(this$static, affiliation){ + this$static.affiliation = affiliation; +} + +function $setFeatureKind(this$static, kind){ + this$static.featureKind = kind; +} + +function $setGroup(this$static, group){ + this$static.group_0 = group; +} + +function $setName_4(this$static, name_0){ + this$static.name_0 = name_0; +} + +function $setNamespace(this$static, namespace){ + this$static.namespace = namespace; +} + +function $setWildcards(this$static, wildcards){ + this$static.wildcards = wildcards; +} + +function BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$0, eStructuralFeature){ + this.this$01 = this$0; + this.group_0 = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE); + this.affiliation = UNINITIALIZED_ESTRUCTURAL_FEATURE; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1162, 1, {}, BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl); +_.featureKind = -2; +_.name_0 = 'uninitialized'; +_.namespace = 'uninitialized'; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl', 1162); +function EDataTypeEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(585, 622, $intern_154, EDataTypeEList); +_.getFeatureID_0 = function getFeatureID_13(){ + return this.featureID; +} +; +_.isEObject = function isEObject_4(){ + return false; +} +; +_.resolve = function resolve_8(index_0, object){ + return object; +} +; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_util_EDataTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList', 585); +var Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap'); +function $add_31(this$static, index_0, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique()) { + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + $add_20(this$static, index_0, object); +} + +function $add_32(this$static, feature, index_0, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + $add_20(this$static, $entryIndex(this$static, feature, index_0), isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); +} + +function $add_33(this$static, feature, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (isFeatureMap?equals_Ljava_lang_Object__Z__devirtual$(entry, object):object == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return false; + } + else { + castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); + return true; + } + } + } + } + return $add_21(this$static, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); +} + +function $add_34(this$static, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique() && $contains_12(this$static, entryFeature, entry.getValue())) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry)) { + return false; + } + else { + castTo($set_11(this$static, i, object), 72); + return true; + } + } + } + } + return $add_21(this$static, object); +} + +function $addAll_12(this$static, feature, index_0, collection){ + var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; + if (collection.size_1() == 0) { + return false; + } + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else if (!isFeatureMap) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + if (collection.size_1() > 1) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + if (!isFeatureMap) { + entry = createEntry_5(feature, collection.iterator_0().next_1()); + entryCollection.add_2(entry); + } + } + return $addAll_8(this$static, $entryIndex(this$static, feature, index_0), entryCollection); +} + +function $addAll_13(this$static, feature, collection){ + var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; + if (collection.size_1() == 0) { + return false; + } + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + entry = createEntry_5(feature, object); + entryCollection.contains(entry) || entryCollection.add_2(entry); + } + } + } + else if (!isFeatureMap) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else { + if (collection.size_1() > 1) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (collection.contains(isFeatureMap?entry:entry.getValue())) { + return false; + } + else { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); + } + return true; + } + } + } + if (!isFeatureMap) { + entry = createEntry_5(feature, collection.iterator_0().next_1()); + entryCollection.add_2(entry); + } + } + return $addAll_9(this$static, entryCollection); +} + +function $addUnique_11(this$static, feature, index_0, object){ + var prototype_0; + this$static.modCount = -1; + $addUnique_5(this$static, $entryIndex(this$static, feature, index_0), ($clinit_FeatureMapUtil() , prototype_0 = castTo(feature, 66).getFeatureMapEntryPrototype() , prototype_0.createEntry(object))); +} + +function $addUnique_12(this$static, entry){ + var index_0, notification, notifications, oldIsSet; + this$static.modCount = -1; + if ($eNotificationRequired(this$static.owner)) { + index_0 = this$static.size_0; + oldIsSet = this$static.size_0 != 0; + $addUnique_0(this$static, entry); + notification = new ENotificationImpl_3(this$static.owner, 3, this$static.featureID, null, entry, index_0, oldIsSet); + notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); + notifications = $shadowAdd_1(this$static, entry, notifications); + if (!notifications) { + $eNotify(this$static.owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + $addUnique_0(this$static, entry); + notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); + !!notifications && notifications.dispatch_0(); + } +} + +function $addUnique_13(this$static, object){ + ++this$static.modCount; + $validate_3(this$static, this$static.size_0, object); + $addUnique_12(this$static, castTo(object, 332)); +} + +function $basicAdd_2(this$static, feature, object, notifications){ + var entries, entry, entry0, i, notification, oldIsSet; + if (object == null) { + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry0 = entries[i]; + if (entry0.getEStructuralFeature() == feature) { + return $basicRemove_0(this$static, entry0, notifications); + } + } + } + entry = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object)); + if ($eNotificationRequired(this$static.owner)) { + oldIsSet = !$isEmpty_1(this$static, feature); + notifications = $basicAdd_0(this$static, entry, notifications); + notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, object, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), oldIsSet):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), object, -1, oldIsSet); + notifications?notifications.add_5(notification):(notifications = notification); + } + else { + notifications = $basicAdd_0(this$static, entry, notifications); + } + return notifications; +} + +function $basicIterator(this$static, feature){ + return new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $basicListIterator_0(this$static, feature){ + return new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $basicListIterator_1(this$static, feature, index_0){ + var i, result; + result = new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_16(result); + } + return result; +} + +function $basicRemove_2(this$static, object, notifications){ + var entries, entry, feature, i, match_0, notification; + if (instanceOf(object, 72)) { + return $basicRemove_0(this$static, object, notifications); + } + else { + match_0 = null; + feature = null; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + feature = entry.getEStructuralFeature(); + if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { + match_0 = entry; + break; + } + } + } + if (match_0) { + if ($eNotificationRequired(this$static.owner)) { + notification = feature.isMany()?$createNotification_0(this$static, 4, feature, object, null, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + notifications = $basicRemove_2(this$static, match_0, notifications); + } + return notifications; + } +} + +function $basicRemove_3(this$static, feature, object, notifications){ + var count, entries, entry, i, match_0, notification, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + entries = castTo(this$static.data_0, 119); + match_0 = null; + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + match_0 = entry; + break; + } + ++count; + } + } + } + else if (object != null) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + match_0 = entry; + break; + } + ++count; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + match_0 = entry; + break; + } + ++count; + } + } + } + if (match_0) { + if ($eNotificationRequired(this$static.owner)) { + notification = feature.isMany()?new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 4, feature, object, null, count, true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + notifications = $basicRemove_2(this$static, match_0, notifications); + } + return notifications; +} + +function $clear_15(this$static, feature){ + var entries, entry, entryCollection, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entryCollection = new BasicEList; + entries = castTo(this$static.data_0, 119); + for (i = this$static.size_0; --i >= 0;) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(entryCollection, entry); + } + !$removeAll_4(this$static, entryCollection) && $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, feature.isMany()?$createNotification_0(this$static, 6, feature, ($clinit_Collections() , EMPTY_LIST), null, -1, false):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, null, null, -1, false)); +} + +function $contains_12(this$static, feature, object){ + return $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $contains_13(this$static, feature, object, resolve){ + var entries, entry, i, i0, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + return true; + } + } + } + else if (object != null) { + for (i0 = 0; i0 < this$static.size_0; ++i0) { + entry = entries[i0]; + if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return true; + } + } + if (resolve) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { + return true; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && entry.getValue() == null) { + return false; + } + } + } + return false; +} + +function $containsAll_1(this$static, feature, collection){ + var i; + for (i = collection.iterator_0(); i.hasNext_0();) { + if (!$contains_12(this$static, feature, i.next_1())) { + return false; + } + } + return true; +} + +function $createNotification_0(this$static, eventType, feature, oldObject, newObject, index_0, wasSet){ + return new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, eventType, feature, oldObject, newObject, index_0, wasSet); +} + +function $entryIndex(this$static, feature, index_0){ + var count, entries, entry, i, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + result = this$static.size_0; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (index_0 == count) { + return i; + } + ++count; + result = i + 1; + } + } + if (index_0 == count) { + return result; + } + else { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } +} + +function $get_23(this$static, feature, index_0, resolve){ + var count, entries, entry, i, validator, value_0; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + if (isMany_1(this$static.owner, feature)) { + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } + else { + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + return feature.getDefaultValue(); + } +} + +function $get_24(this$static, feature, resolve){ + var count, entries, entry, entryFeature, i, result, validator, value_0; + entries = castTo(this$static.data_0, 119); + if (isMany_1(this$static.owner, feature)) { + return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + if (validator.isValid(entryFeature)) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + return entry; + } + else if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { + result = new StringBuilder_1(toString_40(entry.getValue())); + while (++i < this$static.size_0) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + (entryFeature == TEXT || entryFeature == CDATA) && $append_11(result, toString_40(entry.getValue())); + } + return createFromString_2(castTo(feature.getEType(), 148), result.string); + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + return feature.getDefaultValue(); + } +} + +function $indexOf_7(this$static, feature, object){ + return $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $indexOf_8(this$static, feature, object, resolve){ + var entries, entry, i, i0, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + result = 0; + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + return result; + } + ++result; + } + } + } + else if (object != null) { + for (i0 = 0; i0 < this$static.size_0; ++i0) { + entry = entries[i0]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return result; + } + ++result; + } + } + if (resolve) { + result = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { + return result; + } + ++result; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + return result; + } + ++result; + } + } + } + return -1; +} + +function $inverseAdd_2(this$static, entry, notifications){ + return entry.inverseAdd_0(this$static.owner, this$static.featureID, notifications); +} + +function $inverseAdd_3(this$static, object, notifications){ + return $inverseAdd_2(this$static, castTo(object, 332), notifications); +} + +function $inverseRemove_2(this$static, entry, notifications){ + return entry.inverseRemove_0(this$static.owner, this$static.featureID, notifications); +} + +function $inverseRemove_3(this$static, object, notifications){ + return $inverseRemove_2(this$static, castTo(object, 332), notifications); +} + +function $isEmpty_1(this$static, feature){ + var entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + return false; + } + } + return true; +} + +function $iterator_2(this$static, feature){ + return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $list(this$static, feature){ + return $clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); +} + +function $listIterator_3(this$static, feature){ + return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $listIterator_4(this$static, feature, index_0){ + var i, result; + result = instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_16(result); + } + return result; +} + +function $move_5(this$static, targetIndex, sourceIndex){ + var count, entries, entry, feature, featureSourceIndex, featureTargetIndex, i, isValid, maxIndex, result, sourceEntry, validator; + if ($eNotificationRequired(this$static.owner)) { + if (targetIndex != sourceIndex) { + entries = castTo(this$static.data_0, 119); + sourceEntry = entries[sourceIndex]; + feature = sourceEntry.getEStructuralFeature(); + if (isMany_1(this$static.owner, feature)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + featureTargetIndex = -1; + featureSourceIndex = -1; + count = 0; + for (i = 0 , maxIndex = targetIndex > sourceIndex?targetIndex:sourceIndex; i <= maxIndex; ++i) { + if (i == sourceIndex) { + featureSourceIndex = count++; + } + else { + entry = entries[i]; + isValid = validator.isValid(entry.getEStructuralFeature()); + i == targetIndex && (featureTargetIndex = i == maxIndex && !isValid?count - 1:count); + isValid && ++count; + } + } + result = castTo($move_1(this$static, targetIndex, sourceIndex), 72); + featureSourceIndex != featureTargetIndex && $dispatchNotification(this$static, new ENotificationImpl_18(this$static.owner, 7, feature, valueOf_4(featureSourceIndex), sourceEntry.getValue(), featureTargetIndex)); + return result; + } + } + } + else { + return castTo($move(this$static, targetIndex, sourceIndex), 72); + } + return castTo($move_1(this$static, targetIndex, sourceIndex), 72); +} + +function $move_6(this$static, feature, targetIndex, sourceIndex){ + var count, entries, entry, entrySourceIndex, entryTargetIndex, i, result, validator; + if (isMany_1(this$static.owner, feature)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + result = null; + entryTargetIndex = -1; + entrySourceIndex = -1; + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + count == targetIndex && (entryTargetIndex = i); + if (count == sourceIndex) { + entrySourceIndex = i; + result = entry.getValue(); + } + ++count; + } + } + if (entryTargetIndex == -1) { + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + count)); + } + if (entrySourceIndex == -1) { + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + count)); + } + $move_1(this$static, entryTargetIndex, entrySourceIndex); + $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, $createNotification_0(this$static, 7, feature, valueOf_4(sourceIndex), result, targetIndex, true)); + return result; + } + else { + throw toJs(new IllegalArgumentException_0('The feature must be many-valued to support move')); + } +} + +function $move_7(this$static, feature, index_0, object){ + $move_6(this$static, feature, index_0, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)); +} + +function $remove_43(this$static, feature, index_0){ + var count, entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + $remove_35(this$static, i); + return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); +} + +function $remove_44(this$static, feature, object){ + var entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + $remove_35(this$static, i); + return true; + } + } + } + } + else if (object != null) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + $remove_35(this$static, i); + return true; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + $remove_35(this$static, i); + return true; + } + } + } + } + return false; +} + +function $resolve_2(this$static, index_0, entry){ + var affiliatedFeature, affliatedEntry, entries, feature, featureIndex, i, inverseFeatureID, newEntry, notifications, object, opposite, reference, resolved, validator; + feature = entry.getEStructuralFeature(); + if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0) { + object = castTo(entry.getValue(), 49); + resolved = $eResolveProxy(this$static.owner, object); + if (resolved != object) { + newEntry = createEntry_5(feature, resolved); + $assign(this$static, index_0, $validate_3(this$static, index_0, newEntry)); + notifications = null; + if ($eNotificationRequired(this$static.owner)) { + affiliatedFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.owner.eClass_0(), feature); + if (affiliatedFeature != $getEStructuralFeature(this$static.owner.eClass_0(), this$static.featureID)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + featureIndex = 0; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < index_0; ++i) { + affliatedEntry = entries[i]; + validator.isValid(affliatedEntry.getEStructuralFeature()) && ++featureIndex; + } + notifications = new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 9, affiliatedFeature, object, resolved, featureIndex, false); + notifications.add_5(new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, entry, newEntry, index_0, false)); + } + } + reference = castTo(feature, 18); + opposite = $getEOpposite(reference); + if (opposite) { + notifications = object.eInverseRemove(this$static.owner, $getFeatureID(object.eClass_0(), opposite), null, notifications); + notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, $getFeatureID(resolved.eClass_0(), opposite), null, notifications); + } + else if ((reference.eFlags & $intern_134) != 0) { + inverseFeatureID = -1 - $getFeatureID(this$static.owner.eClass_0(), reference); + notifications = object.eInverseRemove(this$static.owner, inverseFeatureID, null, null); + !castTo(resolved, 49).eInternalContainer() && (notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, inverseFeatureID, null, notifications)); + } + !!notifications && notifications.dispatch_0(); + return newEntry; + } + } + return entry; +} + +function $resolveProxy_0(this$static, eObject){ + return $eResolveProxy(this$static.owner, castTo(eObject, 49)); +} + +function $resolveProxy_1(this$static, feature, entryIndex, index_0, object){ + var entry, notifications, oldObject, resolved; + resolved = $resolveProxy_0(this$static, castTo(object, 56)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + oldObject = castTo(this$static.data_0[entryIndex], 72); + entry = createEntry_5(feature, resolved); + $assign(this$static, entryIndex, $validate_3(this$static, entryIndex, entry)); + if ($eNotificationRequired(this$static.owner)) { + notifications = $createNotification_0(this$static, 9, entry.getEStructuralFeature(), object, resolved, index_0, false); + $add_22(notifications, new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, oldObject, entry, index_0, false)); + $dispatch(notifications); + } + return resolved; + } + return object; +} + +function $set_16(this$static, index_0, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique()) { + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature()) && i != index_0) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + return castTo($set_11(this$static, index_0, object), 72); +} + +function $set_17(this$static, newValue){ + $set_15(this$static, instanceOf(newValue, 153)?newValue:castTo(newValue, 1937).featureMap_0()); +} + +function $set_18(this$static, feature, index_0, object){ + var count, currentIndex, entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + currentIndex = $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); + if (currentIndex >= 0 && currentIndex != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + return castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); + } + } + return null; + } +} + +function $set_19(this$static, feature, object){ + var entries, entry, entryFeature, i, index_0, list, shouldUnset, validator; + if (isMany_1(this$static.owner, feature)) { + list = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)); + $clear_15(list.featureMap, list.feature); + $addAll_14(list, castTo(object, 14)); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + if (validator.isValid(entryFeature)) { + if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { + shouldUnset = $shouldUnset(this$static, feature, object); + index_0 = i; + shouldUnset?$remove_35(this$static, i):++i; + while (i < this$static.size_0) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + entryFeature == TEXT || entryFeature == CDATA?$remove_35(this$static, i):++i; + } + shouldUnset || castTo($set_11(this$static, index_0, createEntry_5(feature, object)), 72); + } + else + $shouldUnset(this$static, feature, object)?$remove_35(this$static, i):castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); + return; + } + } + $shouldUnset(this$static, feature, object) || $add_21(this$static, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))); + } +} + +function $setting(this$static, feature){ + return isMany_1(this$static.owner, feature)?($clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)):new FeatureMapUtil$FeatureValue(feature, this$static); +} + +function $shadowAdd_1(this$static, entry, notifications){ + var feature, notification, value_0; + feature = entry.getEStructuralFeature(); + value_0 = entry.getValue(); + notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, value_0, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), value_0, -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + return notifications; +} + +function $shadowAdd_2(this$static, object, notifications){ + return $shadowAdd_1(this$static, castTo(object, 332), notifications); +} + +function $shadowRemove_1(this$static, entry, notifications){ + var feature, notification, value_0; + feature = entry.getEStructuralFeature(); + value_0 = entry.getValue(); + notification = feature.isMany()?$createNotification_0(this$static, 4, feature, value_0, null, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, value_0, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + return notifications; +} + +function $shadowRemove_2(this$static, object, notifications){ + return $shadowRemove_1(this$static, castTo(object, 332), notifications); +} + +function $shadowSet_1(this$static, oldObject, newObject, notifications){ + var feature, newValue, notification, oldValue; + if ($eNotificationRequired(this$static.owner)) { + feature = oldObject.getEStructuralFeature(); + oldValue = oldObject.getValue(); + newValue = newObject.getValue(); + notification = $createNotification_0(this$static, 1, feature, oldValue, newValue, feature.isMany()?$indexOf_8(this$static, feature, newValue, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0):-1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + return notifications; +} + +function $shouldUnset(this$static, feature, value_0){ + var defaultValue; + if (feature.isUnsettable()) { + return false; + } + else if (feature.getUpperBound() != -2) { + defaultValue = feature.getDefaultValue(); + return defaultValue == null?value_0 == null:equals_Ljava_lang_Object__Z__devirtual$(defaultValue, value_0); + } + else + return feature.getEContainingClass() == this$static.owner.eClass_0() && value_0 == null; +} + +function $size_3(this$static, feature){ + var entries, entry, i, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + result = 0; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && ++result; + } + return result; +} + +function $toArray_12(this$static, feature){ + return $toArray_13(this$static, feature, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $toArray_13(this$static, feature, resolve){ + var entries, entry, i, result, validator, value_0; + result = new BasicEList; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + value_0 = entry.getValue(); + $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); + } + } + } + return $toArray_9(result); +} + +function $toArray_14(this$static, feature, array){ + return $toArray_15(this$static, feature, array, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $toArray_15(this$static, feature, array, resolve){ + var entries, entry, i, result, validator, value_0; + result = new BasicEList; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + value_0 = entry.getValue(); + $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); + } + } + } + return $toArray_10(result, array); +} + +function $unset(this$static, feature){ + var entries, entry, i, removals, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + removals = null; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + !removals && (removals = new BasicEList); + $add_21(removals, entry); + } + } + !!removals && $removeAll_4(this$static, removals); +} + +function $validate_3(this$static, index_0, object){ + var eStructuralFeature, result; + if (this$static.modCount == 0) + return object; + result = castTo($validate_0(this$static, index_0, object), 72); + eStructuralFeature = object.getEStructuralFeature(); + if (!eStructuralFeature.isChangeable() || !this$static.featureMapValidator.isValid(eStructuralFeature)) { + throw toJs(new RuntimeException_0("Invalid entry feature '" + eStructuralFeature.getEContainingClass().name_0 + '.' + eStructuralFeature.getName() + "'")); + } + return result; +} + +function BasicFeatureMap(owner, featureID){ + EDataTypeEList.call(this, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, owner, featureID); + this.wrapper = this; + this.featureMapValidator = getValidator(owner.eClass_0(), $getEStructuralFeature(this.owner.eClass_0(), this.featureID)); +} + +defineClass(75, 585, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, BasicFeatureMap); +_.add_3 = function add_66(index_0, object){ + $add_31(this, index_0, castTo(object, 72)); +} +; +_.add_2 = function add_67(object){ + return $add_34(this, castTo(object, 72)); +} +; +_.addUnique_0 = function addUnique_19(object){ + $addUnique_13(this, castTo(object, 72)); +} +; +_.inverseAdd = function inverseAdd_9(object, notifications){ + return $inverseAdd_3(this, castTo(object, 72), notifications); +} +; +_.inverseRemove = function inverseRemove_9(object, notifications){ + return $inverseRemove_3(this, castTo(object, 72), notifications); +} +; +_.move = function move_20(targetIndex, sourceIndex){ + return $move_5(this, targetIndex, sourceIndex); +} +; +_.resolve = function resolve_9(index_0, entry){ + return $resolve_2(this, index_0, castTo(entry, 72)); +} +; +_.set_2 = function set_37(index_0, object){ + return $set_16(this, index_0, castTo(object, 72)); +} +; +_.shadowAdd = function shadowAdd_2(object, notifications){ + return $shadowAdd_2(this, castTo(object, 72), notifications); +} +; +_.shadowRemove = function shadowRemove_2(object, notifications){ + return $shadowRemove_2(this, castTo(object, 72), notifications); +} +; +_.shadowSet = function shadowSet_2(oldObject, newObject, notifications){ + return $shadowSet_1(this, castTo(oldObject, 72), castTo(newObject, 72), notifications); +} +; +_.validate = function validate_7(index_0, object){ + return $validate_3(this, index_0, castTo(object, 72)); +} +; +_.add_6 = function add_68(feature, object){ + return $add_33(this, feature, object); +} +; +_.addAll_0 = function addAll_35(index_0, collection){ + var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; + uniqueCollection = new BasicEList_0(collection.size_1()); + for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 72); + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this.owner, entryFeature)) { + (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); + } + else { + validator = getValidator(this.owner.eClass_0(), entryFeature); + entries = castTo(this.data_0, 119); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_11(this, j, entry), 72); + include = false; + break; + } + } + include && $add_21(uniqueCollection, entry); + } + } + return $addAll_8(this, index_0, uniqueCollection); +} +; +_.addAll = function addAll_36(collection){ + var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; + uniqueCollection = new BasicEList_0(collection.size_1()); + for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 72); + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this.owner, entryFeature)) { + (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); + } + else { + validator = getValidator(this.owner.eClass_0(), entryFeature); + entries = castTo(this.data_0, 119); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_11(this, j, entry), 72); + include = false; + break; + } + } + include && $add_21(uniqueCollection, entry); + } + } + return $addAll_9(this, uniqueCollection); +} +; +_.addAllUnique_0 = function addAllUnique_15(collection){ + this.modCount = -1; + return $addAllUnique_3(this, this.size_0, collection); +} +; +_.basicAdd_0 = function basicAdd_4(feature, object, notifications){ + return $basicAdd_2(this, feature, object, notifications); +} +; +_.basicRemove = function basicRemove_4(object, notifications){ + return $basicRemove_2(this, object, notifications); +} +; +_.basicRemove_0 = function basicRemove_5(feature, object, notifications){ + return $basicRemove_3(this, feature, object, notifications); +} +; +_.featureMap_0 = function featureMap_0(){ + return this; +} +; +_.get_7 = function get_67(feature, resolve){ + return $get_24(this, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_2(index_0){ + return castTo($get_20(this, index_0), 72).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_19(index_0){ + return castTo($get_20(this, index_0), 72).getValue(); +} +; +_.getWrapper = function getWrapper(){ + return this.wrapper; +} +; +_.hasInverse = function hasInverse_11(){ + return true; +} +; +_.hasShadow = function hasShadow_2(){ + return true; +} +; +_.isSet_1 = function isSet_13(feature){ + return !$isEmpty_1(this, feature); +} +; +_.newData = function newData_14(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, $intern_163, 332, capacity, 0, 1); +} +; +_.resolveProxy = function resolveProxy_0(eObject){ + return $resolveProxy_0(this, eObject); +} +; +_.set_1 = function set_38(newValue){ + $set_17(this, newValue); +} +; +_.set_3 = function set_39(feature, object){ + $set_19(this, feature, object); +} +; +_.setting = function setting_0(feature){ + return $setting(this, feature); +} +; +_.unset_0 = function unset_9(feature){ + $unset(this, feature); +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap', 75); +function $checkModCount(this$static){ + if (this$static.featureMap.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function $hasNext_8(this$static){ + switch (this$static.prepared) { + case 2: + { + return true; + } + + case 1: + { + return false; + } + + case -1: + { + ++this$static.entryCursor; + } + + default:{ + return this$static.scanNext(); + } + + } +} + +function $hasPrevious(this$static){ + switch (this$static.prepared) { + case -2: + { + return true; + } + + case -1: + { + return false; + } + + case 1: + { + --this$static.entryCursor; + } + + default:{ + return this$static.scanPrevious(); + } + + } +} + +function $next_16(this$static){ + var newPreparedResult; + if ($hasNext_8(this$static)) { + $checkModCount(this$static); + if (this$static.resolve_0()) { + newPreparedResult = $resolveProxy_1(this$static.featureMap, this$static.eStructuralFeature, this$static.entryCursor, this$static.cursor, this$static.preparedResult); + this$static.preparedResult = newPreparedResult; + } + this$static.lastCursor = this$static.cursor; + ++this$static.cursor; + ++this$static.entryCursor; + this$static.prepared = 0; + return this$static.preparedResult; + } + else { + throw toJs(new NoSuchElementException); + } +} + +defineClass(1851, 1, $intern_14); +_.forEachRemaining = function forEachRemaining_59(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_69(o){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $add_32(this.featureMap, this.eStructuralFeature, this.cursor, o); + this.expectedModCount = this.featureMap.modCount; + $next_16(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.hasNext_0 = function hasNext_49(){ + return $hasNext_8(this); +} +; +_.hasPrevious = function hasPrevious_10(){ + return $hasPrevious(this); +} +; +_.next_1 = function next_49(){ + return $next_16(this); +} +; +_.nextIndex_0 = function nextIndex_11(){ + return this.cursor; +} +; +_.previous_0 = function previous_11(){ + var newPreparedResult; + if ($hasPrevious(this)) { + $checkModCount(this); + this.lastCursor = --this.cursor; + if (this.resolve_0()) { + newPreparedResult = $resolveProxy_1(this.featureMap, this.eStructuralFeature, this.entryCursor, this.cursor, this.preparedResult); + this.preparedResult = newPreparedResult; + } + this.prepared = 0; + return this.preparedResult; + } + else { + throw toJs(new NoSuchElementException); + } +} +; +_.previousIndex = function previousIndex_10(){ + return this.cursor - 1; +} +; +_.remove = function remove_128(){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $remove_43(this.featureMap, this.eStructuralFeature, this.lastCursor); + this.expectedModCount = this.featureMap.modCount; + if (this.lastCursor < this.cursor) { + --this.cursor; + --this.entryCursor; + } + --this.lastCursor; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.resolve_0 = function resolve_10(){ + return false; +} +; +_.set_1 = function set_40(o){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $set_18(this.featureMap, this.eStructuralFeature, this.lastCursor, o); + this.expectedModCount = this.featureMap.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.cursor = 0; +_.entryCursor = 0; +_.expectedModCount = 0; +_.isFeatureMap = false; +_.lastCursor = 0; +_.prepared = 0; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicFeatureEIterator', 1851); +function BasicFeatureMap$FeatureEIterator(eStructuralFeature, featureMap){ + this.eStructuralFeature = eStructuralFeature; + this.featureMap = featureMap; + this.expectedModCount = featureMap.modCount; + this.isFeatureMap = ($clinit_FeatureMapUtil() , castTo(eStructuralFeature, 66).isFeatureMap_0()); + this.validator = getValidator(featureMap.owner.eClass_0(), eStructuralFeature); +} + +defineClass(410, 1851, $intern_14, BasicFeatureMap$FeatureEIterator); +_.scanNext = function scanNext(){ + var entries, entry, size_0; + size_0 = this.featureMap.size_0; + entries = castTo(this.featureMap.data_0, 119); + while (this.entryCursor < size_0) { + entry = entries[this.entryCursor]; + if (this.validator.isValid(entry.getEStructuralFeature())) { + this.preparedResult = this.isFeatureMap?entry:entry.getValue(); + this.prepared = 2; + return true; + } + ++this.entryCursor; + } + this.prepared = 1; + this.lastCursor = -1; + return false; +} +; +_.scanPrevious = function scanPrevious(){ + var entries, entry; + entries = castTo(this.featureMap.data_0, 119); + while (--this.entryCursor >= 0) { + entry = entries[this.entryCursor]; + if (this.validator.isValid(entry.getEStructuralFeature())) { + this.preparedResult = this.isFeatureMap?entry:entry.getValue(); + this.prepared = -2; + return true; + } + } + this.prepared = -1; + this.lastCursor = -1; + return false; +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$FeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/FeatureEIterator', 410); +function BasicFeatureMap$ResolvingFeatureEIterator(eStructuralFeature, featureMap){ + BasicFeatureMap$FeatureEIterator.call(this, eStructuralFeature, featureMap); +} + +defineClass(662, 410, $intern_14, BasicFeatureMap$ResolvingFeatureEIterator); +_.resolve_0 = function resolve_11(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$ResolvingFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/ResolvingFeatureEIterator', 662); +function EContentsEList$1(){ + EContentsEList.call(this, null, null); +} + +defineClass(955, 486, $intern_157, EContentsEList$1); +_.basicList = function basicList_3(){ + return this; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/1', 955); +function EContentsEList$2($anonymous0, $anonymous1){ + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(956, 486, $intern_157, EContentsEList$2); +_.resolve_0 = function resolve_12(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$2_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/2', 956); +function EContentsEList$FeatureIteratorImpl$1(){ + EContentsEList$FeatureIteratorImpl.call(this, null, null); +} + +defineClass(954, 279, $intern_158, EContentsEList$FeatureIteratorImpl$1); +_.filter_0 = function filter_4(featureFilter){ +} +; +_.hasNext_0 = function hasNext_50(){ + return false; +} +; +_.hasPrevious = function hasPrevious_11(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl/1', 954); +function EDataTypeEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(825, 585, $intern_154, EDataTypeEList$Unsettable); +_.didChange = function didChange_2(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_14(){ + return this.isSet; +} +; +_.unset = function unset_10(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EDataTypeEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList/Unsettable', 825); +function EDataTypeUniqueEList(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(1849, 585, $intern_154, EDataTypeUniqueEList); +_.isUnique = function isUnique_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList', 1849); +function EDataTypeUniqueEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1850, 825, $intern_154, EDataTypeUniqueEList$Unsettable); +_.isUnique = function isUnique_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList/Unsettable', 1850); +function EObjectContainmentEList$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(139, 85, $intern_154, EObjectContainmentEList$Resolving); +_.hasProxies = function hasProxies_4(){ + return true; +} +; +_.resolve = function resolve_13(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Resolving', 139); +function EObjectContainmentEList$Unsettable$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1163, 545, $intern_154, EObjectContainmentEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_5(){ + return true; +} +; +_.resolve = function resolve_14(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable/Resolving', 1163); +function EObjectContainmentWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(748, 16, $intern_154, EObjectContainmentWithInverseEList$Unsettable); +_.didChange = function didChange_3(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_15(){ + return this.isSet; +} +; +_.unset = function unset_11(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable', 748); +function EObjectContainmentWithInverseEList$Unsettable$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1173, 748, $intern_154, EObjectContainmentWithInverseEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_6(){ + return true; +} +; +_.resolve = function resolve_15(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable/Resolving', 1173); +function EObjectEList$Unsettable(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(743, 496, $intern_154, EObjectEList$Unsettable); +_.didChange = function didChange_4(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_16(){ + return this.isSet; +} +; +_.unset = function unset_12(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList/Unsettable', 743); +function EObjectResolvingEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(328, 496, $intern_154, EObjectResolvingEList); +_.hasProxies = function hasProxies_7(){ + return true; +} +; +_.resolve = function resolve_16(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList', 328); +function EObjectResolvingEList$Unsettable(dataClass, owner, featureID){ + EObjectEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1641, 743, $intern_154, EObjectResolvingEList$Unsettable); +_.hasProxies = function hasProxies_8(){ + return true; +} +; +_.resolve = function resolve_17(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList/Unsettable', 1641); +function $clinit_EObjectValidator(){ + $clinit_EObjectValidator = emptyMethod; + INSTANCE_9 = new EObjectValidator; +} + +function EObjectValidator(){ +} + +defineClass(1381, 1, {}, EObjectValidator); +var INSTANCE_9; +var Lorg_eclipse_emf_ecore_util_EObjectValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectValidator', 1381); +function EObjectWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(546, 496, $intern_154, EObjectWithInverseEList); +_.getInverseFeatureClass = function getInverseFeatureClass_1(){ + return this.dataClass; +} +; +_.getInverseFeatureID = function getInverseFeatureID_1(){ + return this.inverseFeatureID; +} +; +_.hasInverse = function hasInverse_12(){ + return true; +} +; +_.hasNavigableInverse = function hasNavigableInverse_5(){ + return true; +} +; +_.inverseFeatureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList', 546); +function EObjectWithInverseEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1176, 546, $intern_154, EObjectWithInverseEList$ManyInverse); +_.hasManyInverse = function hasManyInverse_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/ManyInverse', 1176); +function EObjectWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(625, 546, $intern_154, EObjectWithInverseEList$Unsettable); +_.didChange = function didChange_5(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_17(){ + return this.isSet; +} +; +_.unset = function unset_13(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable', 625); +function EObjectWithInverseEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1175, 625, $intern_154, EObjectWithInverseEList$Unsettable$ManyInverse); +_.hasManyInverse = function hasManyInverse_4(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable/ManyInverse', 1175); +function EObjectWithInverseResolvingEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(749, 546, $intern_154, EObjectWithInverseResolvingEList); +_.hasProxies = function hasProxies_9(){ + return true; +} +; +_.resolve = function resolve_18(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList', 749); +function EObjectWithInverseResolvingEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(31, 749, $intern_154, EObjectWithInverseResolvingEList$ManyInverse); +_.hasManyInverse = function hasManyInverse_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/ManyInverse', 31); +function EObjectWithInverseResolvingEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(750, 625, $intern_154, EObjectWithInverseResolvingEList$Unsettable); +_.hasProxies = function hasProxies_10(){ + return true; +} +; +_.resolve = function resolve_19(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable', 750); +function EObjectWithInverseResolvingEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1174, 750, $intern_154, EObjectWithInverseResolvingEList$Unsettable$ManyInverse); +_.hasManyInverse = function hasManyInverse_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable/ManyInverse', 1174); +function kind_0(eStructuralFeature){ + var eClassifier, eReference, instanceClass, inverseEReference, result, upper; + result = 0; + eClassifier = $getEType(eStructuralFeature); + !!eClassifier.getInstanceClass() && (result |= 4); + (eStructuralFeature.eFlags & $intern_149) != 0 && (result |= 2); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + inverseEReference = $getEOpposite(eReference); + (eReference.eFlags & $intern_134) != 0 && (result |= 32); + if (inverseEReference) { + $getFeatureCount($getEContainingClass(inverseEReference)); + result |= 8; + upper = inverseEReference.upperBound; + (upper > 1 || upper == -1) && (result |= 16); + (inverseEReference.eFlags & $intern_134) != 0 && (result |= 64); + } + (eReference.eFlags & $intern_63) != 0 && (result |= $intern_150); + result |= $intern_137; + } + else { + if (instanceOf(eClassifier, 457)) { + result |= 512; + } + else { + instanceClass = eClassifier.getInstanceClass(); + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (result |= 256); + } + } + (eStructuralFeature.eFlags & 512) != 0 && (result |= 128); + return result; +} + +defineClass(1164, 622, $intern_154); +_.canContainNull = function canContainNull_6(){ + return (this.kind & 1792) == 0; +} +; +_.didChange = function didChange_6(){ + this.kind |= 1; +} +; +_.hasInstanceClass = function hasInstanceClass_3(){ + return (this.kind & 4) != 0; +} +; +_.hasInverse = function hasInverse_13(){ + return (this.kind & 40) != 0; +} +; +_.hasManyInverse = function hasManyInverse_7(){ + return (this.kind & 16) != 0; +} +; +_.hasNavigableInverse = function hasNavigableInverse_6(){ + return (this.kind & 8) != 0; +} +; +_.hasProxies = function hasProxies_11(){ + return (this.kind & $intern_150) != 0; +} +; +_.isContainment = function isContainment_9(){ + return (this.kind & 32) != 0; +} +; +_.isEObject = function isEObject_5(){ + return (this.kind & $intern_137) != 0; +} +; +_.isInstance = function isInstance_49(object){ + return !this.dataClass?this.getEStructuralFeature().getEType().isInstance(object):isInstance(this.dataClass, object); +} +; +_.isSet_0 = function isSet_18(){ + return (this.kind & 2) != 0?(this.kind & 1) != 0:this.size_0 != 0; +} +; +_.isUnique = function isUnique_10(){ + return (this.kind & 128) != 0; +} +; +_.unset = function unset_14(){ + var oldIsSet; + $clear_13(this); + if ((this.kind & 2) != 0) { + if ($eNotificationRequired(this.owner)) { + oldIsSet = (this.kind & 1) != 0; + this.kind &= -2; + $dispatchNotification(this, new ENotificationImpl_4(this.owner, 2, $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()), oldIsSet, false)); + } + else { + this.kind &= -2; + } + } +} +; +_.useEquals = function useEquals_15(){ + return (this.kind & 1536) == 0; +} +; +_.kind = 0; +var Lorg_eclipse_emf_ecore_util_EcoreEList$Generic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Generic', 1164); +function EcoreEList$Dynamic(kind, dataClass, owner, eStructuralFeature){ + EcoreEList.call(this, dataClass, owner); + this.kind = kind; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1165, 1164, $intern_154, EcoreEList$Dynamic); +_.getEStructuralFeature = function getEStructuralFeature_3(){ + return this.eStructuralFeature; +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$Dynamic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Dynamic', 1165); +function EcoreEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(747, 63, $intern_138, EcoreEMap$1); +_.newData = function newData_15(listCapacity){ + return newInstance_11(this.this$01.entryClass, listCapacity); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/1', 747); +function EcoreEMap$DelegateEObjectContainmentEList(this$0, entryClass, owner, featureID){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, entryClass, owner, featureID); +} + +defineClass(746, 85, $intern_154, EcoreEMap$DelegateEObjectContainmentEList); +_.didAdd = function didAdd_4(index_0, newObject){ + $doPut(this.this$01, castTo(newObject, 133)); +} +; +_.didClear = function didClear_2(size_0, oldObjects){ + $doClear_0(this.this$01); +} +; +_.didMove = function didMove_1(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this.this$01 , castTo(movedObject, 133) , lastArg).modCount; +} +; +_.didRemove = function didRemove_3(index_0, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 133)); +} +; +_.didSet = function didSet_2(index_0, newObject, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 133)); + maskUndefined(oldObject) === maskUndefined(newObject) && castTo(oldObject, 133).setHash($hashOf(castTo(newObject, 133).getKey())); + $doPut(this.this$01, castTo(newObject, 133)); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$DelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/DelegateEObjectContainmentEList', 746); +function EcoreEMap$Unsettable(entryEClass, entryClass, owner, featureID){ + this.initializeDelegateEList(); + this.entryClass = entryClass; + this.entryEClass = entryEClass; + this.delegateEList = null; + this.delegateEList = new EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this, entryClass, owner, featureID); +} + +defineClass(1171, 151, $intern_148, EcoreEMap$Unsettable); +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable', 1171); +function EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this$1, dataClass, owner, featureID){ + EcoreEMap$DelegateEObjectContainmentEList.call(this, this$1, dataClass, owner, featureID); +} + +defineClass(1172, 746, $intern_154, EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList); +_.didChange = function didChange_7(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_19(){ + return this.isSet; +} +; +_.unset = function unset_15(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList', 1172); +function convertToString_2(eDataType, value_0){ + return eDataType.getEPackage().getEFactoryInstance().convertToString(eDataType, value_0); +} + +function copy_1(eObject){ + var copier, result, t; + copier = new EcoreUtil$Copier; + result = $copy_1(copier, eObject); + $copyReferences(copier); + t = result; + return t; +} + +function createFromString_2(eDataType, literal){ + return eDataType.getEPackage().getEFactoryInstance().createFromString(eDataType, literal); +} + +function getConversionDelegateFactory(eDataType){ + var eDataTypeDelegate, eDataTypeDelegate$iterator; + for (eDataTypeDelegate$iterator = getConversionDelegates($getEPackage(eDataType)).iterator_0(); eDataTypeDelegate$iterator.hasNext_0();) { + eDataTypeDelegate = castToString(eDataTypeDelegate$iterator.next_1()); + if ($getEAnnotation(eDataType, eDataTypeDelegate)) { + return $getFactory(($clinit_EDataType$Internal$ConversionDelegate$Factory$Registry() , INSTANCE_5), eDataTypeDelegate); + } + } + return null; +} + +function getConversionDelegates(ePackage){ + var eAnnotation, eDataTypeDelegate, eDataTypeDelegate$array, eDataTypeDelegate$index, eDataTypeDelegate$max, eDataTypeDelegates, result; + if (ePackage) { + eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); + if (eAnnotation) { + eDataTypeDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'conversionDelegates')); + if (eDataTypeDelegates != null) { + result = new ArrayList; + for (eDataTypeDelegate$array = $split_0(eDataTypeDelegates, '\\w+') , eDataTypeDelegate$index = 0 , eDataTypeDelegate$max = eDataTypeDelegate$array.length; eDataTypeDelegate$index < eDataTypeDelegate$max; ++eDataTypeDelegate$index) { + eDataTypeDelegate = eDataTypeDelegate$array[eDataTypeDelegate$index]; + result.array[result.array.length] = eDataTypeDelegate; + } + return result; + } + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function getRootContainer(eObject){ + var count, parent_0, result; + result = eObject; + if (eObject) { + count = 0; + for (parent_0 = eObject.eContainer_0(); parent_0; parent_0 = parent_0.eContainer_0()) { + if (++count > $intern_66) { + return getRootContainer(parent_0); + } + result = parent_0; + if (parent_0 == eObject) { + throw toJs(new IllegalStateException_0('There is a cycle in the containment hierarchy of ' + eObject)); + } + } + } + return result; +} + +function getSettingDelegateFactory(eStructuralFeature){ + var settingDelegate, settingDelegate$iterator; + for (settingDelegate$iterator = getSettingDelegates($getEPackage($getEContainingClass(eStructuralFeature))).iterator_0(); settingDelegate$iterator.hasNext_0();) { + settingDelegate = castToString(settingDelegate$iterator.next_1()); + if ($getEAnnotation(eStructuralFeature, settingDelegate)) + return $getFactory_0(($clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry() , INSTANCE_7), settingDelegate); + } + return null; +} + +function getSettingDelegates(ePackage){ + var eAnnotation, result, settingDelegate, settingDelegate$array, settingDelegate$index, settingDelegate$max, settingDelegates; + eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); + if (eAnnotation) { + settingDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'settingDelegates')); + if (settingDelegates != null) { + result = new ArrayList; + for (settingDelegate$array = $split_0(settingDelegates, '\\w+') , settingDelegate$index = 0 , settingDelegate$max = settingDelegate$array.length; settingDelegate$index < settingDelegate$max; ++settingDelegate$index) { + settingDelegate = settingDelegate$array[settingDelegate$index]; + result.array[result.array.length] = settingDelegate; + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function isAncestor(ancestorEObject, eObject){ + var count, eContainer; + if (eObject) { + if (eObject == ancestorEObject) { + return true; + } + count = 0; + for (eContainer = castTo(eObject, 49).eInternalContainer(); !!eContainer && eContainer != eObject; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_66) { + return isAncestor(ancestorEObject, eContainer); + } + if (eContainer == ancestorEObject) { + return true; + } + } + } + return false; +} + +function resolve_20(proxy){ + var ePackage, proxyURI, resolvedObject, resource; + proxyURI = castTo(proxy, 49).eProxyURI_0(); + if (proxyURI) { + try { + resolvedObject = null; + ePackage = $getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), $toString_26($trimFragment(proxyURI))); + if (ePackage) { + resource = ePackage.eResource_0(); + !!resource && (resolvedObject = resource.getEObject($toString_7(proxyURI.fragment))); + } + if (!!resolvedObject && resolvedObject != proxy) { + return resolve_20(resolvedObject); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + return proxy; +} + +function wrapperClassFor(javaClass){ + return !javaClass?null:(javaClass.modifiers & 1) != 0?javaClass == Z_classLit?Ljava_lang_Boolean_2_classLit:javaClass == I_classLit?Ljava_lang_Integer_2_classLit:javaClass == F_classLit?Ljava_lang_Float_2_classLit:javaClass == D_classLit?Ljava_lang_Double_2_classLit:javaClass == J_classLit?Ljava_lang_Long_2_classLit:javaClass == S_classLit?Ljava_lang_Short_2_classLit:javaClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:javaClass; +} + +function $copy_1(this$static, eObject){ + var copyEObject, eAllStructuralFeaturesData, eClass, eClass0, eReference, eStructuralFeature, i, size_0; + if (!eObject) { + return null; + } + else { + copyEObject = (eClass0 = eObject.eClass_0() , !eClass0?null:$getEPackage(eClass0).getEFactoryInstance().create_3(eClass0)); + if (copyEObject) { + $put_11(this$static, eObject, copyEObject); + eClass = eObject.eClass_0(); + for (i = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { + eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); + if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { + if (instanceOf(eStructuralFeature, 322)) { + $copyAttribute(this$static, castTo(eStructuralFeature, 34), eObject, copyEObject); + } + else { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) != 0 && $copyContainment(this$static, eReference, eObject, copyEObject); + } + } + } + eObject.eIsProxy() && castTo(copyEObject, 49).eSetProxyURI(castTo(eObject, 49).eProxyURI_0()); + } + return copyEObject; + } +} + +function $copyAll(this$static, eObjects){ + var object, object$iterator, result, t; + result = new ArrayList_0(eObjects.size_1()); + for (object$iterator = eObjects.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + t = $copy_1(this$static, castTo(object, 56)); + !!t && (result.array[result.array.length] = t , true); + } + return result; +} + +function $copyAttribute(this$static, eAttribute, eObject, copyEObject){ + var featureMap, setting, targetEStructuralFeature; + if (eObject.eIsSet_0(eAttribute)) { + $clinit_FeatureMapUtil(); + if ($isFeatureMap(eAttribute)) { + featureMap = castTo(eObject.eGet_0(eAttribute), 153); + $copyFeatureMap(this$static, featureMap); + } + else { + setting = (targetEStructuralFeature = eAttribute , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); + !!setting && $copyAttributeValue(eObject.eGet_0(eAttribute), setting); + } + } +} + +function $copyAttributeValue(value_0, setting){ + setting.set_1(value_0); +} + +function $copyContainment(this$static, eReference, eObject, copyEObject){ + var setting, target, targetEStructuralFeature, upper, value_0; + if (eObject.eIsSet_0(eReference)) { + setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); + if (setting) { + value_0 = eObject.eGet_0(eReference); + upper = eReference.upperBound; + if (upper > 1 || upper == -1) { + target = castTo(value_0, 15); + setting.set_1($copyAll(this$static, target)); + } + else { + setting.set_1($copy_1(this$static, castTo(value_0, 56))); + } + } + } +} + +function $copyFeatureMap(this$static, featureMap){ + var feature, i, size_0, value_0; + for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { + feature = featureMap.getEStructuralFeature_0(i); + if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { + value_0 = featureMap.getValue_1(i); + value_0 != null && $copy_1(this$static, castTo(value_0, 56)); + } + } +} + +function $copyReference(this$static, eReference, eObject, copyEObject){ + var copyReferencedEObject, index_0, isBidirectional, k, position, referencedEObject, setting, source, target, targetEStructuralFeature, upper, value_0; + if (eObject.eIsSet_0(eReference)) { + setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); + if (setting) { + value_0 = eObject.eGet_1(eReference, this$static.resolveProxies); + upper = eReference.upperBound; + if (upper > 1 || upper == -1) { + source = castTo(value_0, 69); + target = castTo(setting, 69); + if (source.isEmpty()) { + target.clear_0(); + } + else { + isBidirectional = !!$getEOpposite(eReference); + index_0 = 0; + for (k = this$static.resolveProxies?source.iterator_0():source.basicIterator(); k.hasNext_0();) { + referencedEObject = castTo(k.next_1(), 56); + copyReferencedEObject = castTo($get_16(this$static, referencedEObject), 56); + if (!copyReferencedEObject) { + if (this$static.useOriginalReferences && !isBidirectional) { + target.addUnique(index_0, referencedEObject); + ++index_0; + } + } + else { + if (isBidirectional) { + position = target.indexOf_0(copyReferencedEObject); + position == -1?target.addUnique(index_0, copyReferencedEObject):index_0 != position && target.move_0(index_0, copyReferencedEObject); + } + else { + target.addUnique(index_0, copyReferencedEObject); + } + ++index_0; + } + } + } + } + else { + if (value_0 == null) { + setting.set_1(null); + } + else { + copyReferencedEObject = $get_16(this$static, value_0); + copyReferencedEObject == null?this$static.useOriginalReferences && !$getEOpposite(eReference) && setting.set_1(value_0):setting.set_1(copyReferencedEObject); + } + } + } + } +} + +function $copyReferences(this$static){ + var copyEObject, copyFeatureMap, copyFeatureMapSize, copyReferencedEObject, eAllStructuralFeaturesData, eClass, eObject, eReference, eStructuralFeature, entry, entry$iterator, feature, featureMap, featureMapSize, j, k, l, reference, referencedEObject, size_0, targetEStructuralFeature, theOpposite; + for (entry$iterator = new LinkedHashMap$EntrySet$EntryIterator(new LinkedHashMap$EntrySet(this$static)); entry$iterator.next_0 != entry$iterator.this$11.this$01.head;) { + entry = $next_9(entry$iterator); + eObject = castTo(entry.key, 56); + copyEObject = castTo(entry.value_0, 56); + eClass = eObject.eClass_0(); + for (j = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; j < size_0; ++j) { + eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , j >= 0 && j < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[j]:null); + if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) == 0 && (theOpposite = $getEOpposite(eReference) , !(!!theOpposite && (theOpposite.eFlags & $intern_134) != 0)) && $copyReference(this$static, eReference, eObject, copyEObject); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + copyFeatureMap = (targetEStructuralFeature = eStructuralFeature , castTo(!targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature), 153)); + if (copyFeatureMap) { + featureMap = castTo(eObject.eGet_0(eStructuralFeature), 153); + copyFeatureMapSize = copyFeatureMap.size_1(); + for (k = 0 , featureMapSize = featureMap.size_1(); k < featureMapSize; ++k) { + feature = featureMap.getEStructuralFeature_0(k); + if (instanceOf(feature, 99)) { + referencedEObject = featureMap.getValue_1(k); + copyReferencedEObject = $get_16(this$static, referencedEObject); + if (copyReferencedEObject == null && referencedEObject != null) { + reference = castTo(feature, 18); + if (!this$static.useOriginalReferences || (reference.eFlags & $intern_134) != 0 || !!$getEOpposite(reference)) { + continue; + } + copyReferencedEObject = referencedEObject; + } + if (!copyFeatureMap.add_6(feature, copyReferencedEObject)) { + for (l = 0; l < copyFeatureMapSize; ++l) { + if (copyFeatureMap.getEStructuralFeature_0(l) == feature && maskUndefined(copyFeatureMap.getValue_1(l)) === maskUndefined(copyReferencedEObject)) { + copyFeatureMap.move(copyFeatureMap.size_1() - 1, l); + --copyFeatureMapSize; + break; + } + } + } + } + else { + copyFeatureMap.add_6(featureMap.getEStructuralFeature_0(k), featureMap.getValue_1(k)); + } + } + } + } + } + } + } + } +} + +function EcoreUtil$Copier(){ + LinkedHashMap.call(this); + this.resolveProxies = true; + this.useOriginalReferences = true; +} + +defineClass(1168, 228, $intern_76, EcoreUtil$Copier); +_.resolveProxies = false; +_.useOriginalReferences = false; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$Copier_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/Copier', 1168); +function $hasNext_9(this$static){ + if (this$static.preparedResult == null) { + while (this$static.iterator.hasNext_0()) { + this$static.preparedResult = this$static.iterator.next_1(); + if (!castTo(this$static.preparedResult, 49).eDirectResource()) { + return true; + } + } + this$static.preparedResult = null; + return false; + } + else { + return true; + } +} + +function EcoreUtil$ProperContentIterator(eObject){ + var contents; + contents = eObject.eContents_0(); + this.iterator = instanceOf(contents, 69)?castTo(contents, 69).basicIterator():contents.iterator_0(); +} + +defineClass(745, 1, $intern_6, EcoreUtil$ProperContentIterator); +_.forEachRemaining = function forEachRemaining_60(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_51(){ + return $hasNext_9(this); +} +; +_.next_1 = function next_50(){ + var result; + $hasNext_9(this); + result = this.preparedResult; + this.preparedResult = null; + return result; +} +; +_.remove = function remove_129(){ + this.iterator.remove(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ProperContentIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ProperContentIterator', 745); +function $clinit_EcoreValidator(){ + $clinit_EcoreValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_10 = new EcoreValidator; +} + +function EcoreValidator(){ + $clinit_XMLTypeValidator(); +} + +defineClass(1382, 1381, {}, EcoreValidator); +var INSTANCE_10; +var Lorg_eclipse_emf_ecore_util_EcoreValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreValidator', 1382); +function $clinit_FeatureMapUtil(){ + $clinit_FeatureMapUtil = emptyMethod; + NULL_VALIDATOR = new FeatureMapUtil$1; +} + +function createEntry_5(eStructuralFeature, value_0){ + $clinit_FeatureMapUtil(); + var prototype_0; + prototype_0 = castTo(eStructuralFeature, 66).getFeatureMapEntryPrototype(); + $validate_2(prototype_0, value_0); + return prototype_0.createEntry(value_0); +} + +function getValidator(containingClass, eStructuralFeature){ + $clinit_FeatureMapUtil(); + var extendedMetaData, holder, result, validatorMap; + if (!eStructuralFeature) { + return NULL_VALIDATOR; + } + else if (eStructuralFeature == ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__MIXED) || (eStructuralFeature == ANY_TYPE__MIXED || eStructuralFeature == ANY_TYPE__ANY || eStructuralFeature == ANY_TYPE__ANY_ATTRIBUTE) && containingClass != ANY_TYPE) { + return new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature); + } + else { + holder = castTo(eStructuralFeature, 677); + extendedMetaData = holder.getExtendedMetaData_0(); + if (!extendedMetaData) { + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); + extendedMetaData = holder.getExtendedMetaData_0(); + } + validatorMap = (!extendedMetaData.validatorMap && (extendedMetaData.validatorMap = new HashMap) , extendedMetaData.validatorMap); + result = castTo(getEntryValueOrNull($getEntry_0(validatorMap.hashCodeMap, containingClass)), 1942); + !result && $put_6(validatorMap, containingClass, result = new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature)); + return result; + } +} + +function isMany_1(owner, feature){ + $clinit_FeatureMapUtil(); + var affiliation, affiliationUpperBound, eClass; + if (feature.isMany()) { + return true; + } + else if (feature.getUpperBound() == -2) { + if (feature == ($clinit_XMLTypeFeatures() , TEXT) || feature == CDATA || feature == COMMENT || feature == PROCESSING_INSTRUCTION) { + return true; + } + else { + eClass = owner.eClass_0(); + if ($getFeatureID(eClass, feature) >= 0) { + return false; + } + else { + affiliation = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, feature); + if (!affiliation) { + return true; + } + else { + affiliationUpperBound = affiliation.getUpperBound(); + return (affiliationUpperBound > 1 || affiliationUpperBound == -1) && $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, affiliation)) != 3; + } + } + } + } + else { + return false; + } +} + +var NULL_VALIDATOR; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$Validator_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMapUtil/Validator'); +function FeatureMapUtil$1(){ +} + +defineClass(1260, 1, {1942:1}, FeatureMapUtil$1); +_.isValid = function isValid_2(eStructuralFeature){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/1', 1260); +function $clinit_FeatureMapUtil$BasicValidator(){ + $clinit_FeatureMapUtil$BasicValidator = emptyMethod; + ANY_WILDCARD = ($clinit_Collections() , new Collections$SingletonList('##any')); +} + +function $isIncluded(this$static, feature){ + var featureKind; + if (this$static.wildcards == ANY_WILDCARD) { + featureKind = $getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature)); + return this$static.isElement?featureKind == 4 && feature != ($clinit_XMLTypeFeatures() , TEXT) && feature != ($clinit_XMLTypeFeatures() , CDATA) && feature != ($clinit_XMLTypeFeatures() , COMMENT) && feature != ($clinit_XMLTypeFeatures() , PROCESSING_INSTRUCTION):featureKind == 2; + } + if (!!this$static.groupMembers && (this$static.groupMembers.contains(feature) || this$static.groupMembers.contains($getGroup($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature))) || this$static.groupMembers.contains($getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.containingClass, feature)))) { + return true; + } + if (this$static.wildcards) { + if ($matches(($clinit_ExtendedMetaData() , this$static.wildcards), $getNamespace_0($getExtendedMetaData_1(INSTANCE_11, feature)))) { + featureKind = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature)); + return this$static.isElement?featureKind == 4:featureKind == 2; + } + } + return false; +} + +function FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature){ + $clinit_FeatureMapUtil$BasicValidator(); + var eAllStructuralFeaturesData, feature, feature$iterator, group, i, mixedFeature, size_0; + this.cache = new FeatureMapUtil$BasicValidator$Cache(this); + this.containingClass = containingClass; + this.eStructuralFeature = eStructuralFeature; + this.wildcards = $getWildcards($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); + if (this.wildcards.isEmpty()) { + if ((mixedFeature = $getMixedFeature(INSTANCE_11, containingClass)) == eStructuralFeature) { + this.isElement = true; + this.groupMembers = new ArrayList; + this.wildcards = new UniqueEList; + this.wildcards.add_2('http://www.eclipse.org/emf/2003/XMLType'); + castTo($getType_1($getExtendedMetaData_0(INSTANCE_11, $getEPackage(containingClass)), ''), 26) == containingClass && this.wildcards.add_2($getNamespace(INSTANCE_11, $getEPackage(containingClass))); + for (feature$iterator = $getAllElements(INSTANCE_11, containingClass).iterator_0(); feature$iterator.hasNext_0();) { + feature = castTo(feature$iterator.next_1(), 170); + switch ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature))) { + case 4: + { + this.groupMembers.add_2(feature); + break; + } + + case 5: + { + this.wildcards.addAll($getWildcards($getExtendedMetaData_1(INSTANCE_11, feature))); + break; + } + + } + } + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + this.isElement = true; + this.wildcards = null; + this.groupMembers = new ArrayList; + for (i = 0 , size_0 = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { + feature = (eAllStructuralFeaturesData = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); + for (group = $getGroup($getExtendedMetaData_1(INSTANCE_11, feature)); group; group = $getGroup($getExtendedMetaData_1(INSTANCE_11, group))) { + group == eStructuralFeature && this.groupMembers.add_2(feature); + } + } + } + else if ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 1 && !!mixedFeature) { + this.wildcards = null; + this.groupMembers = ($clinit_XMLTypeFeatures() , TEXTUAL_FEATURES); + } + else { + this.wildcards = null; + this.isElement = true; + this.groupMembers = ($clinit_Collections() , new Collections$SingletonList(eStructuralFeature)); + } + } + } + else { + this.isElement = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 5; + this.wildcards.equals_0(ANY_WILDCARD) && (this.wildcards = ANY_WILDCARD); + } +} + +defineClass(757, 1, {1942:1}, FeatureMapUtil$BasicValidator); +_.isValid = function isValid_3(feature){ + var result; + if (this.eStructuralFeature == feature) + return true; + result = castToBoolean($get_10(this.cache, feature)); + if (result == null) { + if ($isIncluded(this, feature)) { + $put_15(this.cache, feature, ($clinit_Boolean() , TRUE_0)); + return true; + } + else { + $put_15(this.cache, feature, ($clinit_Boolean() , FALSE_0)); + return false; + } + } + else { + return result == ($clinit_Boolean() , TRUE_0); + } +} +; +_.isElement = false; +var ANY_WILDCARD; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator', 757); +function $put_15(this$static, eStructuralFeature, isValid){ + var newCache; + newCache = new FeatureMapUtil$BasicValidator$Cache(this$static.this$11); + $putAll(newCache, this$static.this$11.cache); + $put_9(newCache.hashCodeMap, eStructuralFeature, isValid); + this$static.this$11.cache = newCache; +} + +function FeatureMapUtil$BasicValidator$Cache(this$1){ + this.this$11 = this$1; + HashMap.call(this); +} + +defineClass(758, 43, $intern_76, FeatureMapUtil$BasicValidator$Cache); +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator$Cache_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator/Cache', 758); +function $addAll_14(this$static, collection){ + return $addAll_13(this$static.featureMap, this$static.feature, collection); +} + +function $basicRemove_4(this$static, object, notifications){ + return $basicRemove_3(this$static.featureMap, this$static.feature, object, notifications); +} + +function $clear_16(this$static){ + $clear_15(this$static.featureMap, this$static.feature); +} + +function $isEmpty_2(this$static){ + return $isEmpty_1(this$static.featureMap, this$static.feature); +} + +function FeatureMapUtil$FeatureEList(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(501, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 69:1, 95:1}, FeatureMapUtil$FeatureEList); +_.add_3 = function add_70(index_0, object){ + $add_32(this.featureMap, this.feature, index_0, object); +} +; +_.add_2 = function add_71(object){ + return $add_33(this.featureMap, this.feature, object); +} +; +_.addAll_0 = function addAll_37(index_0, collection){ + return $addAll_12(this.featureMap, this.feature, index_0, collection); +} +; +_.addAll = function addAll_38(collection){ + return $addAll_14(this, collection); +} +; +_.addUnique = function addUnique_20(index_0, object){ + $addUnique_11(this.featureMap, this.feature, index_0, object); +} +; +_.basicAdd = function basicAdd_5(object, notifications){ + return $basicAdd_2(this.featureMap, this.feature, object, notifications); +} +; +_.basicGet = function basicGet_6(index_0){ + return $get_23(this.featureMap, this.feature, index_0, false); +} +; +_.basicIterator = function basicIterator_7(){ + return $basicIterator(this.featureMap, this.feature); +} +; +_.basicListIterator = function basicListIterator_15(){ + return $basicListIterator_0(this.featureMap, this.feature); +} +; +_.basicListIterator_0 = function basicListIterator_16(index_0){ + return $basicListIterator_1(this.featureMap, this.feature, index_0); +} +; +_.basicRemove = function basicRemove_6(object, notifications){ + return $basicRemove_4(this, object, notifications); +} +; +_.clear_0 = function clear_66(){ + $clear_16(this); +} +; +_.contains = function contains_67(object){ + return $contains_12(this.featureMap, this.feature, object); +} +; +_.containsAll = function containsAll_15(collection){ + return $containsAll_1(this.featureMap, this.feature, collection); +} +; +_.get_0 = function get_68(index_0){ + return $get_23(this.featureMap, this.feature, index_0, true); +} +; +_.get_6 = function get_69(resolve){ + return this; +} +; +_.indexOf_0 = function indexOf_18(object){ + return $indexOf_7(this.featureMap, this.feature, object); +} +; +_.isEmpty = function isEmpty_34(){ + return $isEmpty_2(this); +} +; +_.isSet_0 = function isSet_20(){ + return !$isEmpty_1(this.featureMap, this.feature); +} +; +_.iterator_0 = function iterator_90(){ + return $iterator_2(this.featureMap, this.feature); +} +; +_.listIterator_0 = function listIterator_33(){ + return $listIterator_3(this.featureMap, this.feature); +} +; +_.listIterator_1 = function listIterator_34(index_0){ + return $listIterator_4(this.featureMap, this.feature, index_0); +} +; +_.move = function move_21(targetIndex, sourceIndex){ + return $move_6(this.featureMap, this.feature, targetIndex, sourceIndex); +} +; +_.move_0 = function move_22(index_0, object){ + $move_7(this.featureMap, this.feature, index_0, object); +} +; +_.remove_2 = function remove_130(index_0){ + return $remove_43(this.featureMap, this.feature, index_0); +} +; +_.remove_1 = function remove_131(object){ + return $remove_44(this.featureMap, this.feature, object); +} +; +_.set_2 = function set_41(index_0, object){ + return $set_18(this.featureMap, this.feature, index_0, object); +} +; +_.set_1 = function set_42(newValue){ + $clear_15(this.featureMap, this.feature); + $addAll_14(this, castTo(newValue, 15)); +} +; +_.size_1 = function size_80(){ + return $size_3(this.featureMap, this.feature); +} +; +_.toArray = function toArray_42(){ + return $toArray_12(this.featureMap, this.feature); +} +; +_.toArray_0 = function toArray_43(array){ + return $toArray_14(this.featureMap, this.feature, array); +} +; +_.toString_0 = function toString_157(){ + var i, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = $basicIterator(this.featureMap, this.feature); $hasNext_8(i);) { + $append_3(stringBuffer, valueOf_7($next_16(i))); + $hasNext_8(i) && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.unset = function unset_16(){ + $clear_15(this.featureMap, this.feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureEList', 501); +function $getFeatureID_0(this$static, expectedClass){ + var containerClass; + if (this$static.featureID == -1 && !!this$static.feature) { + containerClass = this$static.feature.getContainerClass(); + this$static.featureID = !containerClass?$getFeatureID(this$static.notifier.eClass_0(), this$static.feature):this$static.notifier.eDerivedStructuralFeatureID(this$static.feature.getFeatureID_0(), containerClass); + } + return this$static.notifier.eBaseStructuralFeatureID(this$static.featureID, expectedClass); +} + +function FeatureMapUtil$FeatureENotificationImpl(owner, eventType, feature, oldObject, newObject, index_0, wasSet){ + NotificationImpl_2.call(this, eventType, oldObject, newObject, index_0, wasSet); + this.notifier = owner; + this.feature = feature; +} + +defineClass(627, 36, $intern_142, FeatureMapUtil$FeatureENotificationImpl); +_.getFeatureID = function getFeatureID_14(expectedClass){ + return $getFeatureID_0(this, expectedClass); +} +; +_.merge_0 = function merge_5(notification){ + var addedValues, collection, newPositions, notificationEventType, notificationNotifier, positions, removedValues; + switch (this.eventType) { + case 1: + case 2: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.newValue = notification.getNewValue(); + notification.getEventType() == 1 && (this.eventType = 1); + return true; + } + break; + } + + case 3: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 5; + addedValues = new BasicEList_0(2); + $add_21(addedValues, this.newValue); + $add_21(addedValues, notification.getNewValue()); + this.newValue = addedValues; + return true; + } + break; + } + + } + break; + } + + case 5: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + collection = castTo(this.newValue, 14); + collection.add_2(notification.getNewValue()); + return true; + } + break; + } + + } + break; + } + + case 4: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 1; + this.newValue = notification.getNewValue(); + return true; + } + break; + } + + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 6; + removedValues = new BasicEList_0(2); + $add_21(removedValues, this.oldValue); + $add_21(removedValues, notification.getOldValue()); + this.oldValue = removedValues; + positions = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position, notification.getPosition_0()]); + this.newValue = positions; + return true; + } + break; + } + + } + break; + } + + case 6: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + collection = castTo(this.oldValue, 14); + collection.add_2(notification.getOldValue()); + positions = castTo(this.newValue, 48); + newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); + arraycopy(positions, 0, newPositions, 0, positions.length); + newPositions[positions.length] = notification.getPosition_0(); + this.newValue = newPositions; + return true; + } + break; + } + + } + break; + } + + } + return false; +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureENotificationImpl', 627); +function FeatureMapUtil$FeatureFeatureMap(feature, featureMap){ + FeatureMapUtil$FeatureEList.call(this, feature, featureMap); + this.wrapper = this; +} + +defineClass(552, 501, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, FeatureMapUtil$FeatureFeatureMap); +_.add_6 = function add_72(feature, value_0){ + return $add_33(this.featureMap, feature, value_0); +} +; +_.basicAdd_0 = function basicAdd_6(feature, object, notifications){ + return $basicAdd_2(this.featureMap, feature, object, notifications); +} +; +_.basicRemove_0 = function basicRemove_7(feature, object, notifications){ + return $basicRemove_3(this.featureMap, feature, object, notifications); +} +; +_.featureMap_0 = function featureMap_1(){ + return this; +} +; +_.get_7 = function get_70(feature, resolve){ + return $get_24(this.featureMap, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_4(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_20(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getValue(); +} +; +_.getWrapper = function getWrapper_0(){ + return this.wrapper; +} +; +_.isSet_1 = function isSet_21(feature){ + return !$isEmpty_1(this.featureMap, feature); +} +; +_.set_3 = function set_43(feature, object){ + $set_19(this.featureMap, feature, object); +} +; +_.setting = function setting_1(feature){ + return $setting(this.featureMap, feature); +} +; +_.unset_0 = function unset_17(feature){ + $unset(this.featureMap, feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureFeatureMap', 552); +function FeatureMapUtil$FeatureValue(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(1259, 1, $intern_147, FeatureMapUtil$FeatureValue); +_.get_6 = function get_71(resolve){ + return $get_23(this.featureMap, this.feature, -1, resolve); +} +; +_.isSet_0 = function isSet_22(){ + return !$isEmpty_1(this.featureMap, this.feature); +} +; +_.set_1 = function set_44(newValue){ + $set_19(this.featureMap, this.feature, newValue); +} +; +_.unset = function unset_18(){ + $clear_15(this.featureMap, this.feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureValue_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureValue', 1259); +function $clinit_XMLTypeFeatures(){ + $clinit_XMLTypeFeatures = emptyMethod; + TEXT = castTo($get_20($getEStructuralFeatures(($clinit_XMLTypePackage() , eINSTANCE_4).xmlTypeDocumentRootEClass), 6), 34); + CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); + COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); + PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); + $getFeatureMapEntryPrototype(TEXT); + $getFeatureMapEntryPrototype(CDATA); + $getFeatureMapEntryPrototype(COMMENT); + $getFeatureMapEntryPrototype(PROCESSING_INSTRUCTION); + TEXTUAL_FEATURES = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, [TEXT, CDATA])); +} + +var CDATA, COMMENT, PROCESSING_INSTRUCTION, TEXT, TEXTUAL_FEATURES; +var Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'AnyType'); +function InvalidDatatypeValueException(reason){ + RuntimeException_0.call(this, reason); +} + +defineClass(666, 60, $intern_43, InvalidDatatypeValueException); +var Lorg_eclipse_emf_ecore_xml_type_InvalidDatatypeValueException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type', 'InvalidDatatypeValueException', 666); +var Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'ProcessingInstruction'); +var Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'SimpleAnyType'); +var Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'XMLTypeDocumentRoot'); +function $clinit_XMLTypeFactory(){ + $clinit_XMLTypeFactory = emptyMethod; + eINSTANCE_3 = init_5(); +} + +var eINSTANCE_3; +function $clinit_XMLTypePackage(){ + $clinit_XMLTypePackage = emptyMethod; + eINSTANCE_4 = init_6(); +} + +var eINSTANCE_4; +function $clinit_XMLTypePackage$Literals(){ + $clinit_XMLTypePackage$Literals = emptyMethod; + ANY_TYPE = ($clinit_XMLTypePackage() , eINSTANCE_4).anyTypeEClass; + ANY_TYPE__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 0), 34); + ANY_TYPE__ANY = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 1), 34); + ANY_TYPE__ANY_ATTRIBUTE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 2), 34); + PROCESSING_INSTRUCTION_0 = eINSTANCE_4.processingInstructionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 1), 34); + SIMPLE_ANY_TYPE = eINSTANCE_4.simpleAnyTypeEClass; + SIMPLE_ANY_TYPE__RAW_VALUE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 2), 18); + XML_TYPE_DOCUMENT_ROOT = eINSTANCE_4.xmlTypeDocumentRootEClass; + XML_TYPE_DOCUMENT_ROOT__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 2), 18); + XML_TYPE_DOCUMENT_ROOT__CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); + XML_TYPE_DOCUMENT_ROOT__COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); + XML_TYPE_DOCUMENT_ROOT__TEXT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 6), 34); + XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); + DATE = eINSTANCE_4.dateEDataType; + DATE_TIME = eINSTANCE_4.dateTimeEDataType; + DURATION = eINSTANCE_4.durationEDataType; + GDAY = eINSTANCE_4.gDayEDataType; + GMONTH = eINSTANCE_4.gMonthEDataType; + GMONTH_DAY = eINSTANCE_4.gMonthDayEDataType; + GYEAR = eINSTANCE_4.gYearEDataType; + GYEAR_MONTH = eINSTANCE_4.gYearMonthEDataType; + NOTATION = eINSTANCE_4.notationEDataType; + QNAME = eINSTANCE_4.qNameEDataType; + TIME = eINSTANCE_4.timeEDataType; +} + +var ANY_TYPE, ANY_TYPE__ANY, ANY_TYPE__ANY_ATTRIBUTE, ANY_TYPE__MIXED, DATE, DATE_TIME, DURATION, GDAY, GMONTH, GMONTH_DAY, GYEAR, GYEAR_MONTH, NOTATION, PROCESSING_INSTRUCTION_0, QNAME, SIMPLE_ANY_TYPE, SIMPLE_ANY_TYPE__RAW_VALUE, TIME, XML_TYPE_DOCUMENT_ROOT, XML_TYPE_DOCUMENT_ROOT__CDATA, XML_TYPE_DOCUMENT_ROOT__COMMENT, XML_TYPE_DOCUMENT_ROOT__MIXED, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION, XML_TYPE_DOCUMENT_ROOT__TEXT; +function AnyTypeImpl(){ + EObjectImpl.call(this); +} + +defineClass(830, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1}, AnyTypeImpl); +_.eGet = function eGet_32(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); + case 2: + if (coreType) + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_23(otherEnd, featureID, msgs){ + var feature; + switch (featureID) { + case 0: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); + case 1: + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 69)).basicRemove(otherEnd, msgs); + case 2: + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , $basicRemove_2(this.anyAttribute, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_31(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); + case 2: + return !!this.anyAttribute && this.anyAttribute.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_29(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_17(this.mixed, newValue); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_17(this.anyAttribute, newValue); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_31(){ + return $clinit_XMLTypePackage$Literals() , ANY_TYPE; +} +; +_.eUnset = function eUnset_29(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $clear_13(this.anyAttribute); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_158(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (mixed: '; + $append_2(result, this.mixed); + result.string += ', anyAttribute: '; + $append_2(result, this.anyAttribute); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_AnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'AnyTypeImpl', 830); +function $setData_0(this$static, newData){ + this$static.data_0 = newData; +} + +function $setTarget_2(this$static, newTarget){ + this$static.target = newTarget; +} + +function ProcessingInstructionImpl(){ +} + +defineClass(667, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2021:1, 667:1}, ProcessingInstructionImpl); +_.eGet = function eGet_33(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.data_0; + case 1: + return this.target; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_32(featureID){ + switch (featureID) { + case 0: + return this.data_0 != null; + case 1: + return this.target != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_30(featureID, newValue){ + switch (featureID) { + case 0: + $setData_0(this, castToString(newValue)); + return; + case 1: + $setTarget_2(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_32(){ + return $clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0; +} +; +_.eUnset = function eUnset_30(featureID){ + switch (featureID) { + case 0: + this.data_0 = null; + return; + case 1: + this.target = null; + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_159(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (data: '; + $append_3(result, this.data_0); + result.string += ', target: '; + $append_3(result, this.target); + result.string += ')'; + return result.string; +} +; +_.data_0 = null; +_.target = null; +var Lorg_eclipse_emf_ecore_xml_type_impl_ProcessingInstructionImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'ProcessingInstructionImpl', 667); +function $setInstanceType(this$static, newInstanceType){ + this$static.instanceType = newInstanceType; +} + +function $setRawValue(this$static, newRawValue){ + !this$static.mixed && (this$static.mixed = new BasicFeatureMap(this$static, 0)); + $set_19(this$static.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), newRawValue); +} + +function SimpleAnyTypeImpl(){ + AnyTypeImpl.call(this); +} + +defineClass(668, 830, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1, 2022:1, 668:1}, SimpleAnyTypeImpl); +_.eGet = function eGet_34(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); + case 2: + if (coreType) + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)); + case 4: + return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))); + case 5: + return this.instanceType; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_33(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); + case 2: + return !!this.anyAttribute && this.anyAttribute.size_0 != 0; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)) != null; + case 4: + return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))) != null; + case 5: + return !!this.instanceType; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_31(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_17(this.mixed, newValue); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_17(this.anyAttribute, newValue); + return; + case 3: + $setRawValue(this, castToString(newValue)); + return; + case 4: + $setRawValue(this, convertToString_2(this.instanceType, newValue)); + return; + case 5: + $setInstanceType(this, castTo(newValue, 148)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_33(){ + return $clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE; +} +; +_.eUnset = function eUnset_31(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $clear_13(this.anyAttribute); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_19(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), null); + return; + case 4: + $setRawValue(this, convertToString_2(this.instanceType, null)); + return; + case 5: + this.instanceType = null; + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_SimpleAnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'SimpleAnyTypeImpl', 668); +function XMLTypeDocumentRootImpl(){ + EObjectImpl.call(this); +} + +defineClass(669, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2023:1, 669:1}, XMLTypeDocumentRootImpl); +_.eGet = function eGet_35(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + return coreType?(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , this.xMLNSPrefixMap):(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $map_1(this.xMLNSPrefixMap)); + case 2: + return coreType?(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , this.xSISchemaLocation):(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $map_1(this.xSISchemaLocation)); + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA)); + case 4: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT)); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)); + case 6: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT)); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_24(otherEnd, featureID, msgs){ + var feature; + switch (featureID) { + case 0: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); + case 1: + return !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $basicRemove_1(this.xMLNSPrefixMap, otherEnd, msgs); + case 2: + return !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $basicRemove_1(this.xSISchemaLocation, otherEnd, msgs); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_4($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT):(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_34(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !!this.xMLNSPrefixMap && this.xMLNSPrefixMap.size_0 != 0; + case 2: + return !!this.xSISchemaLocation && this.xSISchemaLocation.size_0 != 0; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + case 4: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + case 6: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_32(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_17(this.mixed, newValue); + return; + case 1: + !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); + $set_14(this.xMLNSPrefixMap, newValue); + return; + case 2: + !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); + $set_14(this.xSISchemaLocation, newValue); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__CDATA), castTo(newValue, 14)); + return; + case 4: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__COMMENT), castTo(newValue, 14)); + return; + case 5: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION), castTo(newValue, 14)); + return; + case 6: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__TEXT), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_34(){ + return $clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT; +} +; +_.eUnset = function eUnset_32(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); + this.xMLNSPrefixMap.delegateEList.clear_0(); + return; + case 2: + !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); + this.xSISchemaLocation.delegateEList.clear_0(); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + return; + case 4: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + return; + case 5: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + return; + case 6: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_160(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (mixed: '; + $append_2(result, this.mixed); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeDocumentRootImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeDocumentRootImpl', 669); +function $clinit_XMLTypeFactoryImpl(){ + $clinit_XMLTypeFactoryImpl = emptyMethod; + $clinit_EFactoryImpl(); + DOUBLE_POSITIVE_INFINITY = $intern_59; + DOUBLE_NEGATIVE_INFINITY = $intern_60; + FLOAT_POSITIVE_INFINITY = new Float($intern_59); + FLOAT_NEGATIVE_INFINITY = new Float($intern_60); +} + +function $booleanValueOf_0(initialValue){ + initialValue = normalize(initialValue, true); + if ($equals_5('true', initialValue) || $equals_5('1', initialValue)) { + return $clinit_Boolean() , TRUE_0; + } + else if ($equals_5('false', initialValue) || $equals_5('0', initialValue)) { + return $clinit_Boolean() , FALSE_0; + } + throw toJs(new InvalidDatatypeValueException("Invalid boolean value: '" + initialValue + "'")); +} + +function $convertBase64Binary(instanceValue){ + return instanceValue == null?null:encode(instanceValue); +} + +function $convertDouble(instanceValue){ + return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; +} + +function $convertENTITIESBaseToString(instanceValue){ + var i, list, result; + if (instanceValue == null) + return null; + list = castTo(instanceValue, 15); + if (list.isEmpty()) + return ''; + result = new StringBuffer; + for (i = list.iterator_0(); i.hasNext_0();) { + $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertFloat(instanceValue){ + return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; +} + +function $convertHexBinary(instanceValue){ + return instanceValue == null?null:encode_0(instanceValue); +} + +function $convertIDREFSBase(instanceValue){ + var item_0, item$iterator, result; + if (!instanceValue) + return null; + if (instanceValue.isEmpty()) + return ''; + result = new StringBuffer; + for (item$iterator = instanceValue.iterator_0(); item$iterator.hasNext_0();) { + item_0 = item$iterator.next_1(); + $append_3(result, castToString(item_0)); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertNMTOKENSBaseToString(instanceValue){ + var i, list, result; + if (instanceValue == null) + return null; + list = castTo(instanceValue, 15); + if (list.isEmpty()) + return ''; + result = new StringBuffer; + for (i = list.iterator_0(); i.hasNext_0();) { + $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertNonNegativeIntegerToString(instanceValue){ + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertNonPositiveIntegerToString(instanceValue){ + return instanceValue == null?null:toString_40(instanceValue); +} + +function $createBase64Binary(literal){ + var value_0; + if (literal == null) + return null; + value_0 = decode_0(normalize(literal, true)); + if (value_0 == null) { + throw toJs(new InvalidDatatypeValueException("Invalid base64Binary value: '" + literal + "'")); + } + return value_0; +} + +function $createDoubleObject(literal){ + var ch_0, length_0, normalizedLiteral, suffixlength; + if (literal == null) { + return null; + } + else { + normalizedLiteral = normalize(literal, true); + suffixlength = 'INF'.length; + if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { + length_0 = normalizedLiteral.length; + if (length_0 == 4) { + ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); + if (ch_0 == 43) { + return DOUBLE_POSITIVE_INFINITY; + } + else if (ch_0 == 45) { + return DOUBLE_NEGATIVE_INFINITY; + } + } + else if (length_0 == 3) { + return DOUBLE_POSITIVE_INFINITY; + } + } + return __parseAndValidateDouble(normalizedLiteral); + } +} + +function $createENTITIESBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createFloatObject(literal){ + var ch_0, length_0, normalizedLiteral, suffixlength; + if (literal == null) { + return null; + } + else { + normalizedLiteral = normalize(literal, true); + suffixlength = 'INF'.length; + if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { + length_0 = normalizedLiteral.length; + if (length_0 == 4) { + ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); + if (ch_0 == 43) { + return FLOAT_POSITIVE_INFINITY; + } + else if (ch_0 == 45) { + return FLOAT_NEGATIVE_INFINITY; + } + } + else if (length_0 == 3) { + return FLOAT_POSITIVE_INFINITY; + } + } + return new Float_0(normalizedLiteral); + } +} + +function $createHexBinary(literal){ + var value_0; + if (literal == null) + return null; + value_0 = decode_1(normalize(literal, true)); + if (value_0 == null) { + throw toJs(new InvalidDatatypeValueException("Invalid hexBinary value: '" + literal + "'")); + } + return value_0; +} + +function $createIDREFSBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createNMTOKENSBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createNonNegativeIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); +} + +function $createNonPositiveIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); +} + +function XMLTypeFactoryImpl(){ +} + +function init_5(){ + $clinit_XMLTypeFactoryImpl(); + var exception, theXMLTypeFactory; + try { + theXMLTypeFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2024); + if (theXMLTypeFactory) { + return theXMLTypeFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new XMLTypeFactoryImpl; +} + +defineClass(1919, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1, 2024:1}, XMLTypeFactoryImpl); +_.convertToString = function convertToString_3(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 7: + case 8: + case 9: + case 10: + case 16: + case 22: + case 23: + case 24: + case 25: + case 26: + case 32: + case 33: + case 34: + case 36: + case 37: + case 44: + case 45: + case 50: + case 51: + case 53: + case 55: + case 56: + case 57: + case 58: + case 60: + case 61: + case 4: + return instanceValue == null?null:toString_40(instanceValue); + case 19: + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 46: + case 52: + case 54: + case 5: + return castToString(instanceValue); + case 6: + return $convertBase64Binary(castTo(instanceValue, 190)); + case 12: + case 47: + case 49: + case 11: + return $convertToString(this, eDataType, instanceValue); + case 13: + return instanceValue == null?null:$toPlainString(castTo(instanceValue, 240)); + case 15: + case 14: + return instanceValue == null?null:$convertDouble($doubleValue(castToDouble(instanceValue))); + case 17: + return $convertENTITIESBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 18: + return $convertENTITIESBaseToString(instanceValue); + case 21: + case 20: + return instanceValue == null?null:$convertFloat(castTo(instanceValue, 155).value_0); + case 27: + return $convertHexBinary(castTo(instanceValue, 190)); + case 30: + return $convertIDREFSBase(($clinit_XMLTypePackage$Literals() , castTo(instanceValue, 15))); + case 31: + return $convertIDREFSBase(castTo(instanceValue, 15)); + case 40: + return $convertNonPositiveIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 42: + return $convertNMTOKENSBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 43: + return $convertNMTOKENSBaseToString(instanceValue); + case 59: + case 48: + return $convertNonNegativeIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_43(eClass){ + var anyType, ePackage, processingInstruction, simpleAnyType, xmlTypeDocumentRoot; + switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { + case 0: + return anyType = new AnyTypeImpl , anyType; + case 1: + return processingInstruction = new ProcessingInstructionImpl , processingInstruction; + case 2: + return simpleAnyType = new SimpleAnyTypeImpl , simpleAnyType; + case 3: + return xmlTypeDocumentRoot = new XMLTypeDocumentRootImpl , xmlTypeDocumentRoot; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_3(eDataType, initialValue){ + var result, result0, result1, result10, result11, result12, result13, result14, result2, result3, result4, result5, result6, result7, result8, result9; + switch (eDataType.getClassifierID()) { + case 5: + case 52: + case 4: + return initialValue; + case 6: + return $createBase64Binary(initialValue); + case 8: + case 7: + return initialValue == null?null:$booleanValueOf_0(initialValue); + case 9: + return initialValue == null?null:valueOf_2(__parseAndValidateInt((result0 = normalize(initialValue, true) , result0.length > 0 && (checkCriticalStringElementIndex(0, result0.length) , result0.charCodeAt(0) == 43)?result0.substr(1):result0), -128, 127) << 24 >> 24); + case 10: + return initialValue == null?null:valueOf_2(__parseAndValidateInt((result1 = normalize(initialValue, true) , result1.length > 0 && (checkCriticalStringElementIndex(0, result1.length) , result1.charCodeAt(0) == 43)?result1.substr(1):result1), -128, 127) << 24 >> 24); + case 11: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE), initialValue)); + case 12: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE_TIME), initialValue)); + case 13: + return initialValue == null?null:new BigDecimal_0(normalize(initialValue, true)); + case 15: + case 14: + return $createDoubleObject(initialValue); + case 16: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DURATION), initialValue)); + case 17: + return $createENTITIESBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 18: + return $createENTITIESBase(initialValue); + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 54: + case 19: + return normalize(initialValue, true); + case 21: + case 20: + return $createFloatObject(initialValue); + case 22: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GDAY), initialValue)); + case 23: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH), initialValue)); + case 24: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH_DAY), initialValue)); + case 25: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR), initialValue)); + case 26: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR_MONTH), initialValue)); + case 27: + return $createHexBinary(initialValue); + case 30: + return $createIDREFSBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 31: + return $createIDREFSBase(initialValue); + case 32: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result2 = normalize(initialValue, true) , result2.length > 0 && (checkCriticalStringElementIndex(0, result2.length) , result2.charCodeAt(0) == 43)?result2.substr(1):result2), $intern_42, $intern_0)); + case 33: + return initialValue == null?null:new BigInteger_4((result3 = normalize(initialValue, true) , result3.length > 0 && (checkCriticalStringElementIndex(0, result3.length) , result3.charCodeAt(0) == 43)?result3.substr(1):result3)); + case 34: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result4 = normalize(initialValue, true) , result4.length > 0 && (checkCriticalStringElementIndex(0, result4.length) , result4.charCodeAt(0) == 43)?result4.substr(1):result4), $intern_42, $intern_0)); + case 36: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result5 = normalize(initialValue, true) , result5.length > 0 && (checkCriticalStringElementIndex(0, result5.length) , result5.charCodeAt(0) == 43)?result5.substr(1):result5))); + case 37: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result6 = normalize(initialValue, true) , result6.length > 0 && (checkCriticalStringElementIndex(0, result6.length) , result6.charCodeAt(0) == 43)?result6.substr(1):result6))); + case 40: + return $createNonPositiveIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); + case 42: + return $createNMTOKENSBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 43: + return $createNMTOKENSBase(initialValue); + case 44: + return initialValue == null?null:new BigInteger_4((result7 = normalize(initialValue, true) , result7.length > 0 && (checkCriticalStringElementIndex(0, result7.length) , result7.charCodeAt(0) == 43)?result7.substr(1):result7)); + case 45: + return initialValue == null?null:new BigInteger_4((result8 = normalize(initialValue, true) , result8.length > 0 && (checkCriticalStringElementIndex(0, result8.length) , result8.charCodeAt(0) == 43)?result8.substr(1):result8)); + case 46: + return normalize(initialValue, false); + case 47: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , NOTATION), initialValue)); + case 59: + case 48: + return $createNonNegativeIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); + case 49: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , QNAME), initialValue)); + case 50: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result9 = normalize(initialValue, true) , result9.length > 0 && (checkCriticalStringElementIndex(0, result9.length) , result9.charCodeAt(0) == 43)?result9.substr(1):result9), $intern_161, 32767) << 16 >> 16); + case 51: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result10 = normalize(initialValue, true) , result10.length > 0 && (checkCriticalStringElementIndex(0, result10.length) , result10.charCodeAt(0) == 43)?result10.substr(1):result10), $intern_161, 32767) << 16 >> 16); + case 53: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , TIME), initialValue)); + case 55: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result11 = normalize(initialValue, true) , result11.length > 0 && (checkCriticalStringElementIndex(0, result11.length) , result11.charCodeAt(0) == 43)?result11.substr(1):result11), $intern_161, 32767) << 16 >> 16); + case 56: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result12 = normalize(initialValue, true) , result12.length > 0 && (checkCriticalStringElementIndex(0, result12.length) , result12.charCodeAt(0) == 43)?result12.substr(1):result12), $intern_161, 32767) << 16 >> 16); + case 57: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result13 = normalize(initialValue, true) , result13.length > 0 && (checkCriticalStringElementIndex(0, result13.length) , result13.charCodeAt(0) == 43)?result13.substr(1):result13))); + case 58: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result14 = normalize(initialValue, true) , result14.length > 0 && (checkCriticalStringElementIndex(0, result14.length) , result14.charCodeAt(0) == 43)?result14.substr(1):result14))); + case 60: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result), $intern_42, $intern_0)); + case 61: + return initialValue == null?null:valueOf_4(__parseAndValidateInt(normalize(initialValue, true), $intern_42, $intern_0)); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var DOUBLE_NEGATIVE_INFINITY, DOUBLE_POSITIVE_INFINITY, FLOAT_NEGATIVE_INFINITY, FLOAT_POSITIVE_INFINITY; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeFactoryImpl', 1919); +function $$init_13(this$static){ + this$static.anyTypeEClass = null; + this$static.processingInstructionEClass = null; + this$static.simpleAnyTypeEClass = null; + this$static.xmlTypeDocumentRootEClass = null; + this$static.anySimpleTypeEDataType = null; + this$static.anyURIEDataType = null; + this$static.base64BinaryEDataType = null; + this$static.booleanEDataType = null; + this$static.booleanObjectEDataType = null; + this$static.decimalEDataType = null; + this$static.integerEDataType = null; + this$static.intObjectEDataType = null; + this$static.longEDataType = null; + this$static.longObjectEDataType = null; + this$static.intEDataType = null; + this$static.shortEDataType = null; + this$static.shortObjectEDataType = null; + this$static.byteEDataType = null; + this$static.byteObjectEDataType = null; + this$static.dateEDataType = null; + this$static.dateTimeEDataType = null; + this$static.stringEDataType = null; + this$static.doubleEDataType = null; + this$static.doubleObjectEDataType = null; + this$static.durationEDataType = null; + this$static.entitiesBaseEDataType = null; + this$static.normalizedStringEDataType = null; + this$static.tokenEDataType = null; + this$static.nameEDataType = null; + this$static.ncNameEDataType = null; + this$static.entityEDataType = null; + this$static.entitiesEDataType = null; + this$static.floatEDataType = null; + this$static.floatObjectEDataType = null; + this$static.gDayEDataType = null; + this$static.gMonthEDataType = null; + this$static.gMonthDayEDataType = null; + this$static.gYearEDataType = null; + this$static.gYearMonthEDataType = null; + this$static.hexBinaryEDataType = null; + this$static.idEDataType = null; + this$static.idrefEDataType = null; + this$static.idrefsBaseEDataType = null; + this$static.idrefsEDataType = null; + this$static.languageEDataType = null; + this$static.nonPositiveIntegerEDataType = null; + this$static.negativeIntegerEDataType = null; + this$static.nmtokenEDataType = null; + this$static.nmtokensBaseEDataType = null; + this$static.nmtokensEDataType = null; + this$static.nonNegativeIntegerEDataType = null; + this$static.notationEDataType = null; + this$static.positiveIntegerEDataType = null; + this$static.qNameEDataType = null; + this$static.timeEDataType = null; + this$static.unsignedLongEDataType = null; + this$static.unsignedIntEDataType = null; + this$static.unsignedIntObjectEDataType = null; + this$static.unsignedShortEDataType = null; + this$static.unsignedShortObjectEDataType = null; + this$static.unsignedByteEDataType = null; + this$static.unsignedByteObjectEDataType = null; + this$static.isCreated = false; + this$static.isInitialized = false; +} + +function $createExtendedMetaDataAnnotations_0(this$static){ + $addAnnotation(this$static.anySimpleTypeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anySimpleType'])); + $addAnnotation(this$static.anyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyType', 'kind', 'mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'wildcards', '##any', 'name', ':1', 'processing', 'lax'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attributeWildcard', 'wildcards', '##any', 'name', ':2', 'processing', 'lax'])); + $addAnnotation(this$static.anyURIEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyURI', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.base64BinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'base64Binary', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.booleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.booleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean:Object', 'baseType', 'boolean'])); + $addAnnotation(this$static.byteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte'])); + $addAnnotation(this$static.byteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte:Object', 'baseType', 'byte'])); + $addAnnotation(this$static.dateEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'date', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.dateTimeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'dateTime', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.decimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'decimal', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.doubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.doubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double:Object', 'baseType', 'double'])); + $addAnnotation(this$static.durationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'duration', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.entitiesEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES', 'baseType', 'ENTITIES_._base', 'minLength', '1'])); + $addAnnotation(this$static.entitiesBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES_._base', 'itemType', 'ENTITY'])); + $addAnnotation(this$static.entityEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITY', 'baseType', 'NCName'])); + $addAnnotation(this$static.floatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.floatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float:Object', 'baseType', 'float'])); + $addAnnotation(this$static.gDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gDay', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonth', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gMonthDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonthDay', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gYearEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYear', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gYearMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYearMonth', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.hexBinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'hexBinary', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.idEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ID', 'baseType', 'NCName'])); + $addAnnotation(this$static.idrefEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREF', 'baseType', 'NCName'])); + $addAnnotation(this$static.idrefsEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS', 'baseType', 'IDREFS_._base', 'minLength', '1'])); + $addAnnotation(this$static.idrefsBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS_._base', 'itemType', 'IDREF'])); + $addAnnotation(this$static.intEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int'])); + $addAnnotation(this$static.integerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'integer'])); + $addAnnotation(this$static.intObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int:Object', 'baseType', 'int'])); + $addAnnotation(this$static.languageEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'language', 'baseType', 'token', 'pattern', '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'])); + $addAnnotation(this$static.longEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long'])); + $addAnnotation(this$static.longObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long:Object', 'baseType', 'long'])); + $addAnnotation(this$static.nameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'Name', 'baseType', 'token', 'pattern', '\\i\\c*'])); + $addAnnotation(this$static.ncNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NCName', 'baseType', 'Name', 'pattern', '[\\i-[:]][\\c-[:]]*'])); + $addAnnotation(this$static.negativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'negativeInteger', 'baseType', 'nonPositiveInteger', 'maxInclusive', '-1'])); + $addAnnotation(this$static.nmtokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKEN', 'baseType', 'token', 'pattern', '\\c+'])); + $addAnnotation(this$static.nmtokensEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS', 'baseType', 'NMTOKENS_._base', 'minLength', '1'])); + $addAnnotation(this$static.nmtokensBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS_._base', 'itemType', 'NMTOKEN'])); + $addAnnotation(this$static.nonNegativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonNegativeInteger', 'baseType', 'integer', 'minInclusive', '0'])); + $addAnnotation(this$static.nonPositiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonPositiveInteger', 'baseType', 'integer', 'maxInclusive', '0'])); + $addAnnotation(this$static.normalizedStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'normalizedString', 'baseType', 'string', 'whiteSpace', 'replace'])); + $addAnnotation(this$static.notationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NOTATION', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.positiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'positiveInteger', 'baseType', 'nonNegativeInteger', 'minInclusive', '1'])); + $addAnnotation(this$static.processingInstructionEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'processingInstruction_._type', 'kind', 'empty'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'data'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'target'])); + $addAnnotation(this$static.qNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'QName', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.shortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short'])); + $addAnnotation(this$static.shortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short:Object', 'baseType', 'short'])); + $addAnnotation(this$static.simpleAnyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'simpleAnyType', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':3', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':4', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':5', 'kind', 'simple'])); + $addAnnotation(this$static.stringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'string', 'whiteSpace', 'preserve'])); + $addAnnotation(this$static.timeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'time', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.tokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'token', 'baseType', 'normalizedString', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.unsignedByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte', 'maxInclusive', '255', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte:Object', 'baseType', 'unsignedByte'])); + $addAnnotation(this$static.unsignedIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt', 'maxInclusive', '4294967295', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedIntObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt:Object', 'baseType', 'unsignedInt'])); + $addAnnotation(this$static.unsignedLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedLong', 'baseType', 'nonNegativeInteger', 'maxInclusive', '18446744073709551615', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort', 'maxInclusive', '65535', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort:Object', 'baseType', 'unsignedShort'])); + $addAnnotation(this$static.xmlTypeDocumentRootEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', '', 'kind', 'mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xmlns:prefix'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xsi:schemaLocation'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'cDATA', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'comment', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'processingInstruction', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'text', 'namespace', '##targetNamespace'])); +} + +function $createPackageContents_1(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.anyTypeEClass = $createEClass(this$static, 0); + $createEAttribute(this$static.anyTypeEClass, 0); + $createEAttribute(this$static.anyTypeEClass, 1); + $createEAttribute(this$static.anyTypeEClass, 2); + this$static.processingInstructionEClass = $createEClass(this$static, 1); + $createEAttribute(this$static.processingInstructionEClass, 0); + $createEAttribute(this$static.processingInstructionEClass, 1); + this$static.simpleAnyTypeEClass = $createEClass(this$static, 2); + $createEAttribute(this$static.simpleAnyTypeEClass, 3); + $createEAttribute(this$static.simpleAnyTypeEClass, 4); + $createEReference(this$static.simpleAnyTypeEClass, 5); + this$static.xmlTypeDocumentRootEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 0); + $createEReference(this$static.xmlTypeDocumentRootEClass, 1); + $createEReference(this$static.xmlTypeDocumentRootEClass, 2); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 3); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 4); + $createEReference(this$static.xmlTypeDocumentRootEClass, 5); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 6); + this$static.anySimpleTypeEDataType = $createEDataType(this$static, 4); + this$static.anyURIEDataType = $createEDataType(this$static, 5); + this$static.base64BinaryEDataType = $createEDataType(this$static, 6); + this$static.booleanEDataType = $createEDataType(this$static, 7); + this$static.booleanObjectEDataType = $createEDataType(this$static, 8); + this$static.byteEDataType = $createEDataType(this$static, 9); + this$static.byteObjectEDataType = $createEDataType(this$static, 10); + this$static.dateEDataType = $createEDataType(this$static, 11); + this$static.dateTimeEDataType = $createEDataType(this$static, 12); + this$static.decimalEDataType = $createEDataType(this$static, 13); + this$static.doubleEDataType = $createEDataType(this$static, 14); + this$static.doubleObjectEDataType = $createEDataType(this$static, 15); + this$static.durationEDataType = $createEDataType(this$static, 16); + this$static.entitiesEDataType = $createEDataType(this$static, 17); + this$static.entitiesBaseEDataType = $createEDataType(this$static, 18); + this$static.entityEDataType = $createEDataType(this$static, 19); + this$static.floatEDataType = $createEDataType(this$static, 20); + this$static.floatObjectEDataType = $createEDataType(this$static, 21); + this$static.gDayEDataType = $createEDataType(this$static, 22); + this$static.gMonthEDataType = $createEDataType(this$static, 23); + this$static.gMonthDayEDataType = $createEDataType(this$static, 24); + this$static.gYearEDataType = $createEDataType(this$static, 25); + this$static.gYearMonthEDataType = $createEDataType(this$static, 26); + this$static.hexBinaryEDataType = $createEDataType(this$static, 27); + this$static.idEDataType = $createEDataType(this$static, 28); + this$static.idrefEDataType = $createEDataType(this$static, 29); + this$static.idrefsEDataType = $createEDataType(this$static, 30); + this$static.idrefsBaseEDataType = $createEDataType(this$static, 31); + this$static.intEDataType = $createEDataType(this$static, 32); + this$static.integerEDataType = $createEDataType(this$static, 33); + this$static.intObjectEDataType = $createEDataType(this$static, 34); + this$static.languageEDataType = $createEDataType(this$static, 35); + this$static.longEDataType = $createEDataType(this$static, 36); + this$static.longObjectEDataType = $createEDataType(this$static, 37); + this$static.nameEDataType = $createEDataType(this$static, 38); + this$static.ncNameEDataType = $createEDataType(this$static, 39); + this$static.negativeIntegerEDataType = $createEDataType(this$static, 40); + this$static.nmtokenEDataType = $createEDataType(this$static, 41); + this$static.nmtokensEDataType = $createEDataType(this$static, 42); + this$static.nmtokensBaseEDataType = $createEDataType(this$static, 43); + this$static.nonNegativeIntegerEDataType = $createEDataType(this$static, 44); + this$static.nonPositiveIntegerEDataType = $createEDataType(this$static, 45); + this$static.normalizedStringEDataType = $createEDataType(this$static, 46); + this$static.notationEDataType = $createEDataType(this$static, 47); + this$static.positiveIntegerEDataType = $createEDataType(this$static, 48); + this$static.qNameEDataType = $createEDataType(this$static, 49); + this$static.shortEDataType = $createEDataType(this$static, 50); + this$static.shortObjectEDataType = $createEDataType(this$static, 51); + this$static.stringEDataType = $createEDataType(this$static, 52); + this$static.timeEDataType = $createEDataType(this$static, 53); + this$static.tokenEDataType = $createEDataType(this$static, 54); + this$static.unsignedByteEDataType = $createEDataType(this$static, 55); + this$static.unsignedByteObjectEDataType = $createEDataType(this$static, 56); + this$static.unsignedIntEDataType = $createEDataType(this$static, 57); + this$static.unsignedIntObjectEDataType = $createEDataType(this$static, 58); + this$static.unsignedLongEDataType = $createEDataType(this$static, 59); + this$static.unsignedShortEDataType = $createEDataType(this$static, 60); + this$static.unsignedShortObjectEDataType = $createEDataType(this$static, 61); +} + +function $initializePackageContents_1(this$static){ + var theXMLTypePackage_1; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'type'); + $setNsPrefix(this$static, 'ecore.xml.type'); + $setNsURI(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); + theXMLTypePackage_1 = castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); + $add_21($getESuperTypes(this$static.simpleAnyTypeEClass), this$static.anyTypeEClass); + $initEClass(this$static.anyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, 'AnyType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'any', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'anyAttribute', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); + $initEClass(this$static.processingInstructionEClass, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, 'ProcessingInstruction', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), this$static.stringEDataType, 'data', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), this$static.stringEDataType, 'target', null, 1, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.simpleAnyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, 'SimpleAnyType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), theXMLTypePackage_1.stringEDataType, 'rawValue', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), theXMLTypePackage_1.anySimpleTypeEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), this$static.ecorePackage.eDataTypeEClass, null, 'instanceType', 1, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, false, false, true, false, false, false, false); + $initEClass(this$static.xmlTypeDocumentRootEClass, Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, 'XMLTypeDocumentRoot', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, null, false, false, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xMLNSPrefixMap', 0, -1, null, true, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xSISchemaLocation', 0, -1, null, true, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), this$static.stringEDataType, 'cDATA', null, 0, -2, null, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), this$static.stringEDataType, 'comment', null, 0, -2, null, true, true, true, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), this$static.processingInstructionEClass, null, 'processingInstruction', 0, -2, null, true, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), this$static.stringEDataType, 'text', null, 0, -2, null, true, true, true, false, false, true); + $initEDataType(this$static.anySimpleTypeEDataType, Ljava_lang_Object_2_classLit, 'AnySimpleType', true); + $initEDataType(this$static.anyURIEDataType, Ljava_lang_String_2_classLit, 'AnyURI', true); + $initEDataType(this$static.base64BinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'Base64Binary', true); + $initEDataType(this$static.booleanEDataType, Z_classLit, 'Boolean', true); + $initEDataType(this$static.booleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'BooleanObject', true); + $initEDataType(this$static.byteEDataType, B_classLit, 'Byte', true); + $initEDataType(this$static.byteObjectEDataType, Ljava_lang_Byte_2_classLit, 'ByteObject', true); + $initEDataType(this$static.dateEDataType, Ljava_lang_String_2_classLit, 'Date', true); + $initEDataType(this$static.dateTimeEDataType, Ljava_lang_String_2_classLit, 'DateTime', true); + $initEDataType(this$static.decimalEDataType, Ljava_math_BigDecimal_2_classLit, 'Decimal', true); + $initEDataType(this$static.doubleEDataType, D_classLit, 'Double', true); + $initEDataType(this$static.doubleObjectEDataType, Ljava_lang_Double_2_classLit, 'DoubleObject', true); + $initEDataType(this$static.durationEDataType, Ljava_lang_String_2_classLit, 'Duration', true); + $initEDataType(this$static.entitiesEDataType, Ljava_util_List_2_classLit, 'ENTITIES', true); + $initEDataType(this$static.entitiesBaseEDataType, Ljava_util_List_2_classLit, 'ENTITIESBase', true); + $initEDataType(this$static.entityEDataType, Ljava_lang_String_2_classLit, 'ENTITY', true); + $initEDataType(this$static.floatEDataType, F_classLit, 'Float', true); + $initEDataType(this$static.floatObjectEDataType, Ljava_lang_Float_2_classLit, 'FloatObject', true); + $initEDataType(this$static.gDayEDataType, Ljava_lang_String_2_classLit, 'GDay', true); + $initEDataType(this$static.gMonthEDataType, Ljava_lang_String_2_classLit, 'GMonth', true); + $initEDataType(this$static.gMonthDayEDataType, Ljava_lang_String_2_classLit, 'GMonthDay', true); + $initEDataType(this$static.gYearEDataType, Ljava_lang_String_2_classLit, 'GYear', true); + $initEDataType(this$static.gYearMonthEDataType, Ljava_lang_String_2_classLit, 'GYearMonth', true); + $initEDataType(this$static.hexBinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'HexBinary', true); + $initEDataType(this$static.idEDataType, Ljava_lang_String_2_classLit, 'ID', true); + $initEDataType(this$static.idrefEDataType, Ljava_lang_String_2_classLit, 'IDREF', true); + $initEDataType(this$static.idrefsEDataType, Ljava_util_List_2_classLit, 'IDREFS', true); + $initEDataType(this$static.idrefsBaseEDataType, Ljava_util_List_2_classLit, 'IDREFSBase', true); + $initEDataType(this$static.intEDataType, I_classLit, 'Int', true); + $initEDataType(this$static.integerEDataType, Ljava_math_BigInteger_2_classLit, 'Integer', true); + $initEDataType(this$static.intObjectEDataType, Ljava_lang_Integer_2_classLit, 'IntObject', true); + $initEDataType(this$static.languageEDataType, Ljava_lang_String_2_classLit, 'Language', true); + $initEDataType(this$static.longEDataType, J_classLit, 'Long', true); + $initEDataType(this$static.longObjectEDataType, Ljava_lang_Long_2_classLit, 'LongObject', true); + $initEDataType(this$static.nameEDataType, Ljava_lang_String_2_classLit, 'Name', true); + $initEDataType(this$static.ncNameEDataType, Ljava_lang_String_2_classLit, 'NCName', true); + $initEDataType(this$static.negativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NegativeInteger', true); + $initEDataType(this$static.nmtokenEDataType, Ljava_lang_String_2_classLit, 'NMTOKEN', true); + $initEDataType(this$static.nmtokensEDataType, Ljava_util_List_2_classLit, 'NMTOKENS', true); + $initEDataType(this$static.nmtokensBaseEDataType, Ljava_util_List_2_classLit, 'NMTOKENSBase', true); + $initEDataType(this$static.nonNegativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonNegativeInteger', true); + $initEDataType(this$static.nonPositiveIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonPositiveInteger', true); + $initEDataType(this$static.normalizedStringEDataType, Ljava_lang_String_2_classLit, 'NormalizedString', true); + $initEDataType(this$static.notationEDataType, Ljava_lang_String_2_classLit, 'NOTATION', true); + $initEDataType(this$static.positiveIntegerEDataType, Ljava_lang_String_2_classLit, 'PositiveInteger', true); + $initEDataType(this$static.qNameEDataType, Ljava_lang_String_2_classLit, 'QName', true); + $initEDataType(this$static.shortEDataType, S_classLit, 'Short', true); + $initEDataType(this$static.shortObjectEDataType, Ljava_lang_Short_2_classLit, 'ShortObject', true); + $initEDataType(this$static.stringEDataType, Ljava_lang_String_2_classLit, 'String', true); + $initEDataType(this$static.timeEDataType, Ljava_lang_String_2_classLit, 'Time', true); + $initEDataType(this$static.tokenEDataType, Ljava_lang_String_2_classLit, 'Token', true); + $initEDataType(this$static.unsignedByteEDataType, S_classLit, 'UnsignedByte', true); + $initEDataType(this$static.unsignedByteObjectEDataType, Ljava_lang_Short_2_classLit, 'UnsignedByteObject', true); + $initEDataType(this$static.unsignedIntEDataType, J_classLit, 'UnsignedInt', true); + $initEDataType(this$static.unsignedIntObjectEDataType, Ljava_lang_Long_2_classLit, 'UnsignedIntObject', true); + $initEDataType(this$static.unsignedLongEDataType, Ljava_math_BigInteger_2_classLit, 'UnsignedLong', true); + $initEDataType(this$static.unsignedShortEDataType, I_classLit, 'UnsignedShort', true); + $initEDataType(this$static.unsignedShortObjectEDataType, Ljava_lang_Integer_2_classLit, 'UnsignedShortObject', true); + $createResource(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); + $createExtendedMetaDataAnnotations_0(this$static); +} + +function XMLTypePackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2003/XMLType', ($clinit_XMLTypeFactory() , eINSTANCE_3)); + $$init_13(this); +} + +function init_6(){ + var theXMLTypePackage; + if (isInited_1) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); + initializeRegistryHelpers(); + theXMLTypePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 586)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType'):new XMLTypePackageImpl, 586); + isInited_1 = true; + $createPackageContents_1(theXMLTypePackage); + $initializePackageContents_1(theXMLTypePackage); + $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theXMLTypePackage, new XMLTypePackageImpl$1); + $freeze_0(theXMLTypePackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType', theXMLTypePackage); + return theXMLTypePackage; +} + +function initializeRegistryHelpers(){ + register_0(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, new XMLTypePackageImpl$2); + register_0(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, new XMLTypePackageImpl$3); + register_0(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, new XMLTypePackageImpl$4); + register_0(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, new XMLTypePackageImpl$5); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$6); + register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$7); + register_0(Ljava_lang_Boolean_2_classLit, new XMLTypePackageImpl$8); + register_0(Ljava_lang_Byte_2_classLit, new XMLTypePackageImpl$9); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$10); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$11); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$12); + register_0(Ljava_lang_Double_2_classLit, new XMLTypePackageImpl$13); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$14); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$15); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$16); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$17); + register_0(Ljava_lang_Float_2_classLit, new XMLTypePackageImpl$18); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$19); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$20); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$21); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$22); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$23); + register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$24); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$25); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$26); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$27); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$28); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$29); + register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$30); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$31); + register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$32); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$33); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$34); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$35); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$36); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$37); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$38); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$39); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$40); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$41); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$42); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$43); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$44); + register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$45); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$46); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$47); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$48); + register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$49); + register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$50); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$51); + register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$52); +} + +defineClass(586, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1, 1945:1, 586:1}, XMLTypePackageImpl); +_.isCreated = false; +_.isInitialized = false; +var isInited_1 = false; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl', 586); +function XMLTypePackageImpl$1(){ +} + +defineClass(1852, 1, {837:1}, XMLTypePackageImpl$1); +_.getEValidator = function getEValidator_0(){ + return $clinit_XMLTypeValidator() , INSTANCE_12; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/1', 1852); +function XMLTypePackageImpl$10(){ +} + +defineClass(1861, 1, $intern_162, XMLTypePackageImpl$10); +_.isInstance = function isInstance_50(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_42(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/10', 1861); +function XMLTypePackageImpl$11(){ +} + +defineClass(1862, 1, $intern_162, XMLTypePackageImpl$11); +_.isInstance = function isInstance_51(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_43(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/11', 1862); +function XMLTypePackageImpl$12(){ +} + +defineClass(1863, 1, $intern_162, XMLTypePackageImpl$12); +_.isInstance = function isInstance_52(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_44(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/12', 1863); +function XMLTypePackageImpl$13(){ +} + +defineClass(1864, 1, $intern_162, XMLTypePackageImpl$13); +_.isInstance = function isInstance_53(instance){ + return instanceOfDouble(instance); +} +; +_.newArrayInstance = function newArrayInstance_45(size_0){ + return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/13', 1864); +function XMLTypePackageImpl$14(){ +} + +defineClass(1865, 1, $intern_162, XMLTypePackageImpl$14); +_.isInstance = function isInstance_54(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_46(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/14', 1865); +function XMLTypePackageImpl$15(){ +} + +defineClass(1866, 1, $intern_162, XMLTypePackageImpl$15); +_.isInstance = function isInstance_55(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_47(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/15', 1866); +function XMLTypePackageImpl$16(){ +} + +defineClass(1867, 1, $intern_162, XMLTypePackageImpl$16); +_.isInstance = function isInstance_56(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_48(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/16', 1867); +function XMLTypePackageImpl$17(){ +} + +defineClass(1868, 1, $intern_162, XMLTypePackageImpl$17); +_.isInstance = function isInstance_57(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_49(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/17', 1868); +function XMLTypePackageImpl$18(){ +} + +defineClass(1869, 1, $intern_162, XMLTypePackageImpl$18); +_.isInstance = function isInstance_58(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance_50(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/18', 1869); +function XMLTypePackageImpl$19(){ +} + +defineClass(1870, 1, $intern_162, XMLTypePackageImpl$19); +_.isInstance = function isInstance_59(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_51(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/19', 1870); +function XMLTypePackageImpl$2(){ +} + +defineClass(1853, 1, $intern_162, XMLTypePackageImpl$2); +_.isInstance = function isInstance_60(instance){ + return instanceOf(instance, 843); +} +; +_.newArrayInstance = function newArrayInstance_52(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, $intern_2, 843, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/2', 1853); +function XMLTypePackageImpl$20(){ +} + +defineClass(1871, 1, $intern_162, XMLTypePackageImpl$20); +_.isInstance = function isInstance_61(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_53(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/20', 1871); +function XMLTypePackageImpl$21(){ +} + +defineClass(1872, 1, $intern_162, XMLTypePackageImpl$21); +_.isInstance = function isInstance_62(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_54(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/21', 1872); +function XMLTypePackageImpl$22(){ +} + +defineClass(1873, 1, $intern_162, XMLTypePackageImpl$22); +_.isInstance = function isInstance_63(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_55(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/22', 1873); +function XMLTypePackageImpl$23(){ +} + +defineClass(1874, 1, $intern_162, XMLTypePackageImpl$23); +_.isInstance = function isInstance_64(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_56(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/23', 1874); +function XMLTypePackageImpl$24(){ +} + +defineClass(1875, 1, $intern_162, XMLTypePackageImpl$24); +_.isInstance = function isInstance_65(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_57(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/24', 1875); +function XMLTypePackageImpl$25(){ +} + +defineClass(1876, 1, $intern_162, XMLTypePackageImpl$25); +_.isInstance = function isInstance_66(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_58(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/25', 1876); +function XMLTypePackageImpl$26(){ +} + +defineClass(1877, 1, $intern_162, XMLTypePackageImpl$26); +_.isInstance = function isInstance_67(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_59(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/26', 1877); +function XMLTypePackageImpl$27(){ +} + +defineClass(1878, 1, $intern_162, XMLTypePackageImpl$27); +_.isInstance = function isInstance_68(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_60(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/27', 1878); +function XMLTypePackageImpl$28(){ +} + +defineClass(1879, 1, $intern_162, XMLTypePackageImpl$28); +_.isInstance = function isInstance_69(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_61(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/28', 1879); +function XMLTypePackageImpl$29(){ +} + +defineClass(1880, 1, $intern_162, XMLTypePackageImpl$29); +_.isInstance = function isInstance_70(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_62(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/29', 1880); +function XMLTypePackageImpl$3(){ +} + +defineClass(1854, 1, $intern_162, XMLTypePackageImpl$3); +_.isInstance = function isInstance_71(instance){ + return instanceOf(instance, 667); +} +; +_.newArrayInstance = function newArrayInstance_63(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, $intern_2, 2021, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/3', 1854); +function XMLTypePackageImpl$30(){ +} + +defineClass(1881, 1, $intern_162, XMLTypePackageImpl$30); +_.isInstance = function isInstance_72(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_64(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/30', 1881); +function XMLTypePackageImpl$31(){ +} + +defineClass(1882, 1, $intern_162, XMLTypePackageImpl$31); +_.isInstance = function isInstance_73(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_65(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/31', 1882); +function XMLTypePackageImpl$32(){ +} + +defineClass(1883, 1, $intern_162, XMLTypePackageImpl$32); +_.isInstance = function isInstance_74(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_66(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/32', 1883); +function XMLTypePackageImpl$33(){ +} + +defineClass(1884, 1, $intern_162, XMLTypePackageImpl$33); +_.isInstance = function isInstance_75(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_67(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/33', 1884); +function XMLTypePackageImpl$34(){ +} + +defineClass(1885, 1, $intern_162, XMLTypePackageImpl$34); +_.isInstance = function isInstance_76(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_68(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/34', 1885); +function XMLTypePackageImpl$35(){ +} + +defineClass(1886, 1, $intern_162, XMLTypePackageImpl$35); +_.isInstance = function isInstance_77(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_69(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/35', 1886); +function XMLTypePackageImpl$36(){ +} + +defineClass(1887, 1, $intern_162, XMLTypePackageImpl$36); +_.isInstance = function isInstance_78(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_70(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/36', 1887); +function XMLTypePackageImpl$37(){ +} + +defineClass(1888, 1, $intern_162, XMLTypePackageImpl$37); +_.isInstance = function isInstance_79(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_71(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/37', 1888); +function XMLTypePackageImpl$38(){ +} + +defineClass(1889, 1, $intern_162, XMLTypePackageImpl$38); +_.isInstance = function isInstance_80(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_72(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/38', 1889); +function XMLTypePackageImpl$39(){ +} + +defineClass(1890, 1, $intern_162, XMLTypePackageImpl$39); +_.isInstance = function isInstance_81(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_73(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/39', 1890); +function XMLTypePackageImpl$4(){ +} + +defineClass(1855, 1, $intern_162, XMLTypePackageImpl$4); +_.isInstance = function isInstance_82(instance){ + return instanceOf(instance, 668); +} +; +_.newArrayInstance = function newArrayInstance_74(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, $intern_2, 2022, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/4', 1855); +function XMLTypePackageImpl$40(){ +} + +defineClass(1891, 1, $intern_162, XMLTypePackageImpl$40); +_.isInstance = function isInstance_83(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_75(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/40', 1891); +function XMLTypePackageImpl$41(){ +} + +defineClass(1892, 1, $intern_162, XMLTypePackageImpl$41); +_.isInstance = function isInstance_84(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_76(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/41', 1892); +function XMLTypePackageImpl$42(){ +} + +defineClass(1893, 1, $intern_162, XMLTypePackageImpl$42); +_.isInstance = function isInstance_85(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_77(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/42', 1893); +function XMLTypePackageImpl$43(){ +} + +defineClass(1894, 1, $intern_162, XMLTypePackageImpl$43); +_.isInstance = function isInstance_86(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_78(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/43', 1894); +function XMLTypePackageImpl$44(){ +} + +defineClass(1895, 1, $intern_162, XMLTypePackageImpl$44); +_.isInstance = function isInstance_87(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_79(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/44', 1895); +function XMLTypePackageImpl$45(){ +} + +defineClass(1896, 1, $intern_162, XMLTypePackageImpl$45); +_.isInstance = function isInstance_88(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_80(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$45_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/45', 1896); +function XMLTypePackageImpl$46(){ +} + +defineClass(1897, 1, $intern_162, XMLTypePackageImpl$46); +_.isInstance = function isInstance_89(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_81(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$46_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/46', 1897); +function XMLTypePackageImpl$47(){ +} + +defineClass(1898, 1, $intern_162, XMLTypePackageImpl$47); +_.isInstance = function isInstance_90(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_82(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$47_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/47', 1898); +function XMLTypePackageImpl$48(){ +} + +defineClass(1899, 1, $intern_162, XMLTypePackageImpl$48); +_.isInstance = function isInstance_91(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_83(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$48_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/48', 1899); +function XMLTypePackageImpl$49(){ +} + +defineClass($intern_47, 1, $intern_162, XMLTypePackageImpl$49); +_.isInstance = function isInstance_92(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_84(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$49_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/49', $intern_47); +function XMLTypePackageImpl$5(){ +} + +defineClass(1856, 1, $intern_162, XMLTypePackageImpl$5); +_.isInstance = function isInstance_93(instance){ + return instanceOf(instance, 669); +} +; +_.newArrayInstance = function newArrayInstance_85(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, $intern_2, 2023, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/5', 1856); +function XMLTypePackageImpl$50(){ +} + +defineClass(1901, 1, $intern_162, XMLTypePackageImpl$50); +_.isInstance = function isInstance_94(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_86(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$50_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/50', 1901); +function XMLTypePackageImpl$51(){ +} + +defineClass(1902, 1, $intern_162, XMLTypePackageImpl$51); +_.isInstance = function isInstance_95(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_87(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$51_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/51', 1902); +function XMLTypePackageImpl$52(){ +} + +defineClass(1903, 1, $intern_162, XMLTypePackageImpl$52); +_.isInstance = function isInstance_96(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_88(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$52_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/52', 1903); +function XMLTypePackageImpl$6(){ +} + +defineClass(1857, 1, $intern_162, XMLTypePackageImpl$6); +_.isInstance = function isInstance_97(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_89(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/6', 1857); +function XMLTypePackageImpl$7(){ +} + +defineClass(1858, 1, $intern_162, XMLTypePackageImpl$7); +_.isInstance = function isInstance_98(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_90(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/7', 1858); +function XMLTypePackageImpl$8(){ +} + +defineClass(1859, 1, $intern_162, XMLTypePackageImpl$8); +_.isInstance = function isInstance_99(instance){ + return instanceOfBoolean(instance); +} +; +_.newArrayInstance = function newArrayInstance_91(size_0){ + return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/8', 1859); +function XMLTypePackageImpl$9(){ +} + +defineClass(1860, 1, $intern_162, XMLTypePackageImpl$9); +_.isInstance = function isInstance_100(instance){ + return instanceOf(instance, 217); +} +; +_.newArrayInstance = function newArrayInstance_92(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/9', 1860); +function $clinit_DataValue$Base64(){ + $clinit_DataValue$Base64 = emptyMethod; + var i, i0, i1, i2, i3, i4, i5, j, j0; + base64Alphabet = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); + lookUpBase64Alphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 64, 15, 1); + for (i0 = 0; i0 < 255; i0++) { + base64Alphabet[i0] = -1; + } + for (i1 = 90; i1 >= 65; i1--) { + base64Alphabet[i1] = i1 - 65 << 24 >> 24; + } + for (i2 = 122; i2 >= 97; i2--) { + base64Alphabet[i2] = i2 - 97 + 26 << 24 >> 24; + } + for (i3 = 57; i3 >= 48; i3--) { + base64Alphabet[i3] = i3 - 48 + 52 << 24 >> 24; + } + base64Alphabet[43] = 62; + base64Alphabet[47] = 63; + for (i4 = 0; i4 <= 25; i4++) + lookUpBase64Alphabet[i4] = 65 + i4 & $intern_46; + for (i5 = 26 , j0 = 0; i5 <= 51; ++i5 , j0++) + lookUpBase64Alphabet[i5] = 97 + j0 & $intern_46; + for (i = 52 , j = 0; i <= 61; ++i , j++) + lookUpBase64Alphabet[i] = 48 + j & $intern_46; + lookUpBase64Alphabet[62] = 43; + lookUpBase64Alphabet[63] = 47; +} + +function decode_0(encoded){ + $clinit_DataValue$Base64(); + var b1, b2, b3, b4, base64Data, d1, d2, d3, d4, dataIndex, decodedData, encodedIndex, i, len, numberQuadruple, tmp; + if (encoded == null) + return null; + base64Data = $toCharArray(encoded); + len = removeWhiteSpace(base64Data); + if (len % 4 != 0) { + return null; + } + numberQuadruple = len / 4 | 0; + if (numberQuadruple == 0) + return initUnidimensionalArray(B_classLit, $intern_136, 25, 0, 15, 1); + decodedData = null; + b1 = 0; + b2 = 0; + b3 = 0; + b4 = 0; + d1 = 0; + d2 = 0; + d3 = 0; + d4 = 0; + i = 0; + encodedIndex = 0; + dataIndex = 0; + decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, numberQuadruple * 3, 15, 1); + for (; i < numberQuadruple - 1; i++) { + if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++]) || !isData(d3 = base64Data[dataIndex++]) || !isData(d4 = base64Data[dataIndex++])) + return null; + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; + } + if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++])) { + return null; + } + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + d3 = base64Data[dataIndex++]; + d4 = base64Data[dataIndex++]; + if (base64Alphabet[d3] == -1 || base64Alphabet[d4] == -1) { + if (d3 == 61 && d4 == 61) { + if ((b2 & 15) != 0) + return null; + tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 1, 15, 1); + arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex] = (b1 << 2 | b2 >> 4) << 24 >> 24; + return tmp; + } + else if (d3 != 61 && d4 == 61) { + b3 = base64Alphabet[d3]; + if ((b3 & 3) != 0) + return null; + tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 2, 15, 1); + arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + tmp[encodedIndex] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + return tmp; + } + else { + return null; + } + } + else { + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; + } + return decodedData; +} + +function encode(binaryData){ + $clinit_DataValue$Base64(); + var b1, b2, b3, dataIndex, encodedData, encodedIndex, fewerThan24bits, i, k, l, lengthDataBits, numberQuartet, numberTriplets, val1, val2, val3; + if (binaryData == null) + return null; + lengthDataBits = binaryData.length * 8; + if (lengthDataBits == 0) { + return ''; + } + fewerThan24bits = lengthDataBits % 24; + numberTriplets = lengthDataBits / 24 | 0; + numberQuartet = fewerThan24bits != 0?numberTriplets + 1:numberTriplets; + encodedData = null; + encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, numberQuartet * 4, 15, 1); + k = 0; + l = 0; + b1 = 0; + b2 = 0; + b3 = 0; + encodedIndex = 0; + dataIndex = 0; + for (i = 0; i < numberTriplets; i++) { + b1 = binaryData[dataIndex++]; + b2 = binaryData[dataIndex++]; + b3 = binaryData[dataIndex++]; + l = (b2 & 15) << 24 >> 24; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; + val3 = (b3 & -128) == 0?b3 >> 6 << 24 >> 24:(b3 >> 6 ^ 252) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2 | val3]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 63]; + } + if (fewerThan24bits == 8) { + b1 = binaryData[dataIndex]; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; + encodedData[encodedIndex++] = 61; + encodedData[encodedIndex++] = 61; + } + else if (fewerThan24bits == 16) { + b1 = binaryData[dataIndex]; + b2 = binaryData[dataIndex + 1]; + l = (b2 & 15) << 24 >> 24; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; + encodedData[encodedIndex++] = 61; + } + return valueOf_9(encodedData, 0, encodedData.length); +} + +function isData(octect){ + return base64Alphabet[octect] != -1; +} + +function removeWhiteSpace(data_0){ + var i, len, newSize; + newSize = 0; + len = data_0.length; + for (i = 0; i < len; i++) { + data_0[i] == 32 || data_0[i] == 13 || data_0[i] == 10 || data_0[i] == 9 || (data_0[newSize++] = data_0[i]); + } + return newSize; +} + +var base64Alphabet, lookUpBase64Alphabet; +function $clinit_DataValue$HexBin(){ + $clinit_DataValue$HexBin = emptyMethod; + var i, i0, i1, i2, i3, i4; + hexNumberTable = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); + lookUpHexAlphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 16, 15, 1); + for (i0 = 0; i0 < 255; i0++) { + hexNumberTable[i0] = -1; + } + for (i1 = 57; i1 >= 48; i1--) { + hexNumberTable[i1] = i1 - 48 << 24 >> 24; + } + for (i2 = 70; i2 >= 65; i2--) { + hexNumberTable[i2] = i2 - 65 + 10 << 24 >> 24; + } + for (i3 = 102; i3 >= 97; i3--) { + hexNumberTable[i3] = i3 - 97 + 10 << 24 >> 24; + } + for (i4 = 0; i4 < 10; i4++) + lookUpHexAlphabet[i4] = 48 + i4 & $intern_46; + for (i = 10; i <= 15; i++) + lookUpHexAlphabet[i] = 65 + i - 10 & $intern_46; +} + +function decode_1(encoded){ + $clinit_DataValue$HexBin(); + var binaryData, decodedData, i, lengthData, lengthDecode, temp1, temp2; + if (encoded == null) + return null; + lengthData = encoded.length; + if (lengthData % 2 != 0) + return null; + binaryData = $toCharArray(encoded); + lengthDecode = lengthData / 2 | 0; + decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, lengthDecode, 15, 1); + for (i = 0; i < lengthDecode; i++) { + temp1 = hexNumberTable[binaryData[i * 2]]; + if (temp1 == -1) + return null; + temp2 = hexNumberTable[binaryData[i * 2 + 1]]; + if (temp2 == -1) + return null; + decodedData[i] = (temp1 << 4 | temp2) << 24 >> 24; + } + return decodedData; +} + +function encode_0(binaryData){ + $clinit_DataValue$HexBin(); + var encodedData, i, lengthData, lengthEncode, temp; + if (binaryData == null) + return null; + lengthData = binaryData.length; + lengthEncode = lengthData * 2; + encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, lengthEncode, 15, 1); + for (i = 0; i < lengthData; i++) { + temp = binaryData[i]; + temp < 0 && (temp += 256); + encodedData[i * 2] = lookUpHexAlphabet[temp >> 4]; + encodedData[i * 2 + 1] = lookUpHexAlphabet[temp & 15]; + } + return valueOf_9(encodedData, 0, encodedData.length); +} + +var hexNumberTable, lookUpHexAlphabet; +function $clinit_DataValue$XMLChar(){ + $clinit_DataValue$XMLChar = emptyMethod; + CHARS = initUnidimensionalArray(B_classLit, $intern_136, 25, $intern_63, 15, 1); + CHARS[9] = 35; + CHARS[10] = 19; + CHARS[13] = 19; + CHARS[32] = 51; + CHARS[33] = 49; + CHARS[34] = 33; + fill_0(CHARS, 35, 38, 49); + CHARS[38] = 1; + fill_0(CHARS, 39, 45, 49); + fill_0(CHARS, 45, 47, -71); + CHARS[47] = 49; + fill_0(CHARS, 48, 58, -71); + CHARS[58] = 61; + CHARS[59] = 49; + CHARS[60] = 1; + CHARS[61] = 49; + CHARS[62] = 33; + fill_0(CHARS, 63, 65, 49); + fill_0(CHARS, 65, 91, -3); + fill_0(CHARS, 91, 93, 33); + CHARS[93] = 1; + CHARS[94] = 33; + CHARS[95] = -3; + CHARS[96] = 33; + fill_0(CHARS, 97, 123, -3); + fill_0(CHARS, 123, 183, 33); + CHARS[183] = -87; + fill_0(CHARS, 184, 192, 33); + fill_0(CHARS, 192, 215, -19); + CHARS[215] = 33; + fill_0(CHARS, 216, 247, -19); + CHARS[247] = 33; + fill_0(CHARS, 248, 306, -19); + fill_0(CHARS, 306, 308, 33); + fill_0(CHARS, 308, 319, -19); + fill_0(CHARS, 319, 321, 33); + fill_0(CHARS, 321, 329, -19); + CHARS[329] = 33; + fill_0(CHARS, 330, 383, -19); + CHARS[383] = 33; + fill_0(CHARS, 384, 452, -19); + fill_0(CHARS, 452, 461, 33); + fill_0(CHARS, 461, 497, -19); + fill_0(CHARS, 497, 500, 33); + fill_0(CHARS, 500, 502, -19); + fill_0(CHARS, 502, 506, 33); + fill_0(CHARS, 506, 536, -19); + fill_0(CHARS, 536, 592, 33); + fill_0(CHARS, 592, 681, -19); + fill_0(CHARS, 681, 699, 33); + fill_0(CHARS, 699, 706, -19); + fill_0(CHARS, 706, 720, 33); + fill_0(CHARS, 720, 722, -87); + fill_0(CHARS, 722, 768, 33); + fill_0(CHARS, 768, 838, -87); + fill_0(CHARS, 838, 864, 33); + fill_0(CHARS, 864, 866, -87); + fill_0(CHARS, 866, 902, 33); + CHARS[902] = -19; + CHARS[903] = -87; + fill_0(CHARS, 904, 907, -19); + CHARS[907] = 33; + CHARS[908] = -19; + CHARS[909] = 33; + fill_0(CHARS, 910, 930, -19); + CHARS[930] = 33; + fill_0(CHARS, 931, 975, -19); + CHARS[975] = 33; + fill_0(CHARS, 976, 983, -19); + fill_0(CHARS, 983, 986, 33); + CHARS[986] = -19; + CHARS[987] = 33; + CHARS[988] = -19; + CHARS[989] = 33; + CHARS[990] = -19; + CHARS[991] = 33; + CHARS[992] = -19; + CHARS[993] = 33; + fill_0(CHARS, 994, 1012, -19); + fill_0(CHARS, 1012, 1025, 33); + fill_0(CHARS, 1025, 1037, -19); + CHARS[1037] = 33; + fill_0(CHARS, 1038, 1104, -19); + CHARS[1104] = 33; + fill_0(CHARS, 1105, 1117, -19); + CHARS[1117] = 33; + fill_0(CHARS, 1118, 1154, -19); + CHARS[1154] = 33; + fill_0(CHARS, 1155, 1159, -87); + fill_0(CHARS, 1159, 1168, 33); + fill_0(CHARS, 1168, 1221, -19); + fill_0(CHARS, 1221, 1223, 33); + fill_0(CHARS, 1223, 1225, -19); + fill_0(CHARS, 1225, 1227, 33); + fill_0(CHARS, 1227, 1229, -19); + fill_0(CHARS, 1229, 1232, 33); + fill_0(CHARS, 1232, 1260, -19); + fill_0(CHARS, 1260, 1262, 33); + fill_0(CHARS, 1262, 1270, -19); + fill_0(CHARS, 1270, 1272, 33); + fill_0(CHARS, 1272, 1274, -19); + fill_0(CHARS, 1274, 1329, 33); + fill_0(CHARS, 1329, 1367, -19); + fill_0(CHARS, 1367, 1369, 33); + CHARS[1369] = -19; + fill_0(CHARS, 1370, 1377, 33); + fill_0(CHARS, 1377, 1415, -19); + fill_0(CHARS, 1415, 1425, 33); + fill_0(CHARS, 1425, 1442, -87); + CHARS[1442] = 33; + fill_0(CHARS, 1443, 1466, -87); + CHARS[1466] = 33; + fill_0(CHARS, 1467, 1470, -87); + CHARS[1470] = 33; + CHARS[1471] = -87; + CHARS[1472] = 33; + fill_0(CHARS, 1473, 1475, -87); + CHARS[1475] = 33; + CHARS[1476] = -87; + fill_0(CHARS, 1477, 1488, 33); + fill_0(CHARS, 1488, 1515, -19); + fill_0(CHARS, 1515, 1520, 33); + fill_0(CHARS, 1520, 1523, -19); + fill_0(CHARS, 1523, 1569, 33); + fill_0(CHARS, 1569, 1595, -19); + fill_0(CHARS, 1595, 1600, 33); + CHARS[1600] = -87; + fill_0(CHARS, 1601, 1611, -19); + fill_0(CHARS, 1611, 1619, -87); + fill_0(CHARS, 1619, 1632, 33); + fill_0(CHARS, 1632, 1642, -87); + fill_0(CHARS, 1642, 1648, 33); + CHARS[1648] = -87; + fill_0(CHARS, 1649, 1720, -19); + fill_0(CHARS, 1720, 1722, 33); + fill_0(CHARS, 1722, 1727, -19); + CHARS[1727] = 33; + fill_0(CHARS, 1728, 1743, -19); + CHARS[1743] = 33; + fill_0(CHARS, 1744, 1748, -19); + CHARS[1748] = 33; + CHARS[1749] = -19; + fill_0(CHARS, 1750, 1765, -87); + fill_0(CHARS, 1765, 1767, -19); + fill_0(CHARS, 1767, 1769, -87); + CHARS[1769] = 33; + fill_0(CHARS, 1770, 1774, -87); + fill_0(CHARS, 1774, 1776, 33); + fill_0(CHARS, 1776, 1786, -87); + fill_0(CHARS, 1786, 2305, 33); + fill_0(CHARS, 2305, 2308, -87); + CHARS[2308] = 33; + fill_0(CHARS, 2309, 2362, -19); + fill_0(CHARS, 2362, 2364, 33); + CHARS[2364] = -87; + CHARS[2365] = -19; + fill_0(CHARS, 2366, 2382, -87); + fill_0(CHARS, 2382, 2385, 33); + fill_0(CHARS, 2385, 2389, -87); + fill_0(CHARS, 2389, 2392, 33); + fill_0(CHARS, 2392, 2402, -19); + fill_0(CHARS, 2402, 2404, -87); + fill_0(CHARS, 2404, 2406, 33); + fill_0(CHARS, 2406, 2416, -87); + fill_0(CHARS, 2416, 2433, 33); + fill_0(CHARS, 2433, 2436, -87); + CHARS[2436] = 33; + fill_0(CHARS, 2437, 2445, -19); + fill_0(CHARS, 2445, 2447, 33); + fill_0(CHARS, 2447, 2449, -19); + fill_0(CHARS, 2449, 2451, 33); + fill_0(CHARS, 2451, 2473, -19); + CHARS[2473] = 33; + fill_0(CHARS, 2474, 2481, -19); + CHARS[2481] = 33; + CHARS[2482] = -19; + fill_0(CHARS, 2483, 2486, 33); + fill_0(CHARS, 2486, 2490, -19); + fill_0(CHARS, 2490, 2492, 33); + CHARS[2492] = -87; + CHARS[2493] = 33; + fill_0(CHARS, 2494, 2501, -87); + fill_0(CHARS, 2501, 2503, 33); + fill_0(CHARS, 2503, 2505, -87); + fill_0(CHARS, 2505, 2507, 33); + fill_0(CHARS, 2507, 2510, -87); + fill_0(CHARS, 2510, 2519, 33); + CHARS[2519] = -87; + fill_0(CHARS, 2520, 2524, 33); + fill_0(CHARS, 2524, 2526, -19); + CHARS[2526] = 33; + fill_0(CHARS, 2527, 2530, -19); + fill_0(CHARS, 2530, 2532, -87); + fill_0(CHARS, 2532, 2534, 33); + fill_0(CHARS, 2534, 2544, -87); + fill_0(CHARS, 2544, 2546, -19); + fill_0(CHARS, 2546, 2562, 33); + CHARS[2562] = -87; + fill_0(CHARS, 2563, 2565, 33); + fill_0(CHARS, 2565, 2571, -19); + fill_0(CHARS, 2571, 2575, 33); + fill_0(CHARS, 2575, 2577, -19); + fill_0(CHARS, 2577, 2579, 33); + fill_0(CHARS, 2579, 2601, -19); + CHARS[2601] = 33; + fill_0(CHARS, 2602, 2609, -19); + CHARS[2609] = 33; + fill_0(CHARS, 2610, 2612, -19); + CHARS[2612] = 33; + fill_0(CHARS, 2613, 2615, -19); + CHARS[2615] = 33; + fill_0(CHARS, 2616, 2618, -19); + fill_0(CHARS, 2618, 2620, 33); + CHARS[2620] = -87; + CHARS[2621] = 33; + fill_0(CHARS, 2622, 2627, -87); + fill_0(CHARS, 2627, 2631, 33); + fill_0(CHARS, 2631, 2633, -87); + fill_0(CHARS, 2633, 2635, 33); + fill_0(CHARS, 2635, 2638, -87); + fill_0(CHARS, 2638, 2649, 33); + fill_0(CHARS, 2649, 2653, -19); + CHARS[2653] = 33; + CHARS[2654] = -19; + fill_0(CHARS, 2655, 2662, 33); + fill_0(CHARS, 2662, 2674, -87); + fill_0(CHARS, 2674, 2677, -19); + fill_0(CHARS, 2677, 2689, 33); + fill_0(CHARS, 2689, 2692, -87); + CHARS[2692] = 33; + fill_0(CHARS, 2693, 2700, -19); + CHARS[2700] = 33; + CHARS[2701] = -19; + CHARS[2702] = 33; + fill_0(CHARS, 2703, 2706, -19); + CHARS[2706] = 33; + fill_0(CHARS, 2707, 2729, -19); + CHARS[2729] = 33; + fill_0(CHARS, 2730, 2737, -19); + CHARS[2737] = 33; + fill_0(CHARS, 2738, 2740, -19); + CHARS[2740] = 33; + fill_0(CHARS, 2741, 2746, -19); + fill_0(CHARS, 2746, 2748, 33); + CHARS[2748] = -87; + CHARS[2749] = -19; + fill_0(CHARS, 2750, 2758, -87); + CHARS[2758] = 33; + fill_0(CHARS, 2759, 2762, -87); + CHARS[2762] = 33; + fill_0(CHARS, 2763, 2766, -87); + fill_0(CHARS, 2766, 2784, 33); + CHARS[2784] = -19; + fill_0(CHARS, 2785, 2790, 33); + fill_0(CHARS, 2790, 2800, -87); + fill_0(CHARS, 2800, 2817, 33); + fill_0(CHARS, 2817, 2820, -87); + CHARS[2820] = 33; + fill_0(CHARS, 2821, 2829, -19); + fill_0(CHARS, 2829, 2831, 33); + fill_0(CHARS, 2831, 2833, -19); + fill_0(CHARS, 2833, 2835, 33); + fill_0(CHARS, 2835, 2857, -19); + CHARS[2857] = 33; + fill_0(CHARS, 2858, 2865, -19); + CHARS[2865] = 33; + fill_0(CHARS, 2866, 2868, -19); + fill_0(CHARS, 2868, 2870, 33); + fill_0(CHARS, 2870, 2874, -19); + fill_0(CHARS, 2874, 2876, 33); + CHARS[2876] = -87; + CHARS[2877] = -19; + fill_0(CHARS, 2878, 2884, -87); + fill_0(CHARS, 2884, 2887, 33); + fill_0(CHARS, 2887, 2889, -87); + fill_0(CHARS, 2889, 2891, 33); + fill_0(CHARS, 2891, 2894, -87); + fill_0(CHARS, 2894, 2902, 33); + fill_0(CHARS, 2902, 2904, -87); + fill_0(CHARS, 2904, 2908, 33); + fill_0(CHARS, 2908, 2910, -19); + CHARS[2910] = 33; + fill_0(CHARS, 2911, 2914, -19); + fill_0(CHARS, 2914, 2918, 33); + fill_0(CHARS, 2918, 2928, -87); + fill_0(CHARS, 2928, 2946, 33); + fill_0(CHARS, 2946, 2948, -87); + CHARS[2948] = 33; + fill_0(CHARS, 2949, 2955, -19); + fill_0(CHARS, 2955, 2958, 33); + fill_0(CHARS, 2958, 2961, -19); + CHARS[2961] = 33; + fill_0(CHARS, 2962, 2966, -19); + fill_0(CHARS, 2966, 2969, 33); + fill_0(CHARS, 2969, 2971, -19); + CHARS[2971] = 33; + CHARS[2972] = -19; + CHARS[2973] = 33; + fill_0(CHARS, 2974, 2976, -19); + fill_0(CHARS, 2976, 2979, 33); + fill_0(CHARS, 2979, 2981, -19); + fill_0(CHARS, 2981, 2984, 33); + fill_0(CHARS, 2984, 2987, -19); + fill_0(CHARS, 2987, 2990, 33); + fill_0(CHARS, 2990, 2998, -19); + CHARS[2998] = 33; + fill_0(CHARS, 2999, 3002, -19); + fill_0(CHARS, 3002, 3006, 33); + fill_0(CHARS, 3006, 3011, -87); + fill_0(CHARS, 3011, 3014, 33); + fill_0(CHARS, 3014, 3017, -87); + CHARS[3017] = 33; + fill_0(CHARS, 3018, 3022, -87); + fill_0(CHARS, 3022, 3031, 33); + CHARS[3031] = -87; + fill_0(CHARS, 3032, 3047, 33); + fill_0(CHARS, 3047, 3056, -87); + fill_0(CHARS, 3056, 3073, 33); + fill_0(CHARS, 3073, 3076, -87); + CHARS[3076] = 33; + fill_0(CHARS, 3077, 3085, -19); + CHARS[3085] = 33; + fill_0(CHARS, 3086, 3089, -19); + CHARS[3089] = 33; + fill_0(CHARS, 3090, 3113, -19); + CHARS[3113] = 33; + fill_0(CHARS, 3114, 3124, -19); + CHARS[3124] = 33; + fill_0(CHARS, 3125, 3130, -19); + fill_0(CHARS, 3130, 3134, 33); + fill_0(CHARS, 3134, 3141, -87); + CHARS[3141] = 33; + fill_0(CHARS, 3142, 3145, -87); + CHARS[3145] = 33; + fill_0(CHARS, 3146, 3150, -87); + fill_0(CHARS, 3150, 3157, 33); + fill_0(CHARS, 3157, 3159, -87); + fill_0(CHARS, 3159, 3168, 33); + fill_0(CHARS, 3168, 3170, -19); + fill_0(CHARS, 3170, 3174, 33); + fill_0(CHARS, 3174, 3184, -87); + fill_0(CHARS, 3184, 3202, 33); + fill_0(CHARS, 3202, 3204, -87); + CHARS[3204] = 33; + fill_0(CHARS, 3205, 3213, -19); + CHARS[3213] = 33; + fill_0(CHARS, 3214, 3217, -19); + CHARS[3217] = 33; + fill_0(CHARS, 3218, 3241, -19); + CHARS[3241] = 33; + fill_0(CHARS, 3242, 3252, -19); + CHARS[3252] = 33; + fill_0(CHARS, 3253, 3258, -19); + fill_0(CHARS, 3258, 3262, 33); + fill_0(CHARS, 3262, 3269, -87); + CHARS[3269] = 33; + fill_0(CHARS, 3270, 3273, -87); + CHARS[3273] = 33; + fill_0(CHARS, 3274, 3278, -87); + fill_0(CHARS, 3278, 3285, 33); + fill_0(CHARS, 3285, 3287, -87); + fill_0(CHARS, 3287, 3294, 33); + CHARS[3294] = -19; + CHARS[3295] = 33; + fill_0(CHARS, 3296, 3298, -19); + fill_0(CHARS, 3298, 3302, 33); + fill_0(CHARS, 3302, 3312, -87); + fill_0(CHARS, 3312, 3330, 33); + fill_0(CHARS, 3330, 3332, -87); + CHARS[3332] = 33; + fill_0(CHARS, 3333, 3341, -19); + CHARS[3341] = 33; + fill_0(CHARS, 3342, 3345, -19); + CHARS[3345] = 33; + fill_0(CHARS, 3346, 3369, -19); + CHARS[3369] = 33; + fill_0(CHARS, 3370, 3386, -19); + fill_0(CHARS, 3386, 3390, 33); + fill_0(CHARS, 3390, 3396, -87); + fill_0(CHARS, 3396, 3398, 33); + fill_0(CHARS, 3398, 3401, -87); + CHARS[3401] = 33; + fill_0(CHARS, 3402, 3406, -87); + fill_0(CHARS, 3406, 3415, 33); + CHARS[3415] = -87; + fill_0(CHARS, 3416, 3424, 33); + fill_0(CHARS, 3424, 3426, -19); + fill_0(CHARS, 3426, 3430, 33); + fill_0(CHARS, 3430, 3440, -87); + fill_0(CHARS, 3440, 3585, 33); + fill_0(CHARS, 3585, 3631, -19); + CHARS[3631] = 33; + CHARS[3632] = -19; + CHARS[3633] = -87; + fill_0(CHARS, 3634, 3636, -19); + fill_0(CHARS, 3636, 3643, -87); + fill_0(CHARS, 3643, 3648, 33); + fill_0(CHARS, 3648, 3654, -19); + fill_0(CHARS, 3654, 3663, -87); + CHARS[3663] = 33; + fill_0(CHARS, 3664, 3674, -87); + fill_0(CHARS, 3674, 3713, 33); + fill_0(CHARS, 3713, 3715, -19); + CHARS[3715] = 33; + CHARS[3716] = -19; + fill_0(CHARS, 3717, 3719, 33); + fill_0(CHARS, 3719, 3721, -19); + CHARS[3721] = 33; + CHARS[3722] = -19; + fill_0(CHARS, 3723, 3725, 33); + CHARS[3725] = -19; + fill_0(CHARS, 3726, 3732, 33); + fill_0(CHARS, 3732, 3736, -19); + CHARS[3736] = 33; + fill_0(CHARS, 3737, 3744, -19); + CHARS[3744] = 33; + fill_0(CHARS, 3745, 3748, -19); + CHARS[3748] = 33; + CHARS[3749] = -19; + CHARS[3750] = 33; + CHARS[3751] = -19; + fill_0(CHARS, 3752, 3754, 33); + fill_0(CHARS, 3754, 3756, -19); + CHARS[3756] = 33; + fill_0(CHARS, 3757, 3759, -19); + CHARS[3759] = 33; + CHARS[3760] = -19; + CHARS[3761] = -87; + fill_0(CHARS, 3762, 3764, -19); + fill_0(CHARS, 3764, 3770, -87); + CHARS[3770] = 33; + fill_0(CHARS, 3771, 3773, -87); + CHARS[3773] = -19; + fill_0(CHARS, 3774, 3776, 33); + fill_0(CHARS, 3776, 3781, -19); + CHARS[3781] = 33; + CHARS[3782] = -87; + CHARS[3783] = 33; + fill_0(CHARS, 3784, 3790, -87); + fill_0(CHARS, 3790, 3792, 33); + fill_0(CHARS, 3792, 3802, -87); + fill_0(CHARS, 3802, 3864, 33); + fill_0(CHARS, 3864, 3866, -87); + fill_0(CHARS, 3866, 3872, 33); + fill_0(CHARS, 3872, 3882, -87); + fill_0(CHARS, 3882, 3893, 33); + CHARS[3893] = -87; + CHARS[3894] = 33; + CHARS[3895] = -87; + CHARS[3896] = 33; + CHARS[3897] = -87; + fill_0(CHARS, 3898, 3902, 33); + fill_0(CHARS, 3902, 3904, -87); + fill_0(CHARS, 3904, 3912, -19); + CHARS[3912] = 33; + fill_0(CHARS, 3913, 3946, -19); + fill_0(CHARS, 3946, 3953, 33); + fill_0(CHARS, 3953, 3973, -87); + CHARS[3973] = 33; + fill_0(CHARS, 3974, 3980, -87); + fill_0(CHARS, 3980, 3984, 33); + fill_0(CHARS, 3984, 3990, -87); + CHARS[3990] = 33; + CHARS[3991] = -87; + CHARS[3992] = 33; + fill_0(CHARS, 3993, 4014, -87); + fill_0(CHARS, 4014, 4017, 33); + fill_0(CHARS, 4017, 4024, -87); + CHARS[4024] = 33; + CHARS[4025] = -87; + fill_0(CHARS, 4026, 4256, 33); + fill_0(CHARS, 4256, 4294, -19); + fill_0(CHARS, 4294, 4304, 33); + fill_0(CHARS, 4304, 4343, -19); + fill_0(CHARS, 4343, 4352, 33); + CHARS[4352] = -19; + CHARS[4353] = 33; + fill_0(CHARS, 4354, 4356, -19); + CHARS[4356] = 33; + fill_0(CHARS, 4357, 4360, -19); + CHARS[4360] = 33; + CHARS[4361] = -19; + CHARS[4362] = 33; + fill_0(CHARS, 4363, 4365, -19); + CHARS[4365] = 33; + fill_0(CHARS, 4366, 4371, -19); + fill_0(CHARS, 4371, 4412, 33); + CHARS[4412] = -19; + CHARS[4413] = 33; + CHARS[4414] = -19; + CHARS[4415] = 33; + CHARS[4416] = -19; + fill_0(CHARS, 4417, 4428, 33); + CHARS[4428] = -19; + CHARS[4429] = 33; + CHARS[4430] = -19; + CHARS[4431] = 33; + CHARS[4432] = -19; + fill_0(CHARS, 4433, 4436, 33); + fill_0(CHARS, 4436, 4438, -19); + fill_0(CHARS, 4438, 4441, 33); + CHARS[4441] = -19; + fill_0(CHARS, 4442, 4447, 33); + fill_0(CHARS, 4447, 4450, -19); + CHARS[4450] = 33; + CHARS[4451] = -19; + CHARS[4452] = 33; + CHARS[4453] = -19; + CHARS[4454] = 33; + CHARS[4455] = -19; + CHARS[4456] = 33; + CHARS[4457] = -19; + fill_0(CHARS, 4458, 4461, 33); + fill_0(CHARS, 4461, 4463, -19); + fill_0(CHARS, 4463, 4466, 33); + fill_0(CHARS, 4466, 4468, -19); + CHARS[4468] = 33; + CHARS[4469] = -19; + fill_0(CHARS, 4470, 4510, 33); + CHARS[4510] = -19; + fill_0(CHARS, 4511, 4520, 33); + CHARS[4520] = -19; + fill_0(CHARS, 4521, 4523, 33); + CHARS[4523] = -19; + fill_0(CHARS, 4524, 4526, 33); + fill_0(CHARS, 4526, 4528, -19); + fill_0(CHARS, 4528, 4535, 33); + fill_0(CHARS, 4535, 4537, -19); + CHARS[4537] = 33; + CHARS[4538] = -19; + CHARS[4539] = 33; + fill_0(CHARS, 4540, 4547, -19); + fill_0(CHARS, 4547, 4587, 33); + CHARS[4587] = -19; + fill_0(CHARS, 4588, 4592, 33); + CHARS[4592] = -19; + fill_0(CHARS, 4593, 4601, 33); + CHARS[4601] = -19; + fill_0(CHARS, 4602, 7680, 33); + fill_0(CHARS, 7680, 7836, -19); + fill_0(CHARS, 7836, 7840, 33); + fill_0(CHARS, 7840, 7930, -19); + fill_0(CHARS, 7930, 7936, 33); + fill_0(CHARS, 7936, 7958, -19); + fill_0(CHARS, 7958, 7960, 33); + fill_0(CHARS, 7960, 7966, -19); + fill_0(CHARS, 7966, 7968, 33); + fill_0(CHARS, 7968, 8006, -19); + fill_0(CHARS, 8006, 8008, 33); + fill_0(CHARS, 8008, 8014, -19); + fill_0(CHARS, 8014, 8016, 33); + fill_0(CHARS, 8016, 8024, -19); + CHARS[8024] = 33; + CHARS[8025] = -19; + CHARS[8026] = 33; + CHARS[8027] = -19; + CHARS[8028] = 33; + CHARS[8029] = -19; + CHARS[8030] = 33; + fill_0(CHARS, 8031, 8062, -19); + fill_0(CHARS, 8062, 8064, 33); + fill_0(CHARS, 8064, 8117, -19); + CHARS[8117] = 33; + fill_0(CHARS, 8118, 8125, -19); + CHARS[8125] = 33; + CHARS[8126] = -19; + fill_0(CHARS, 8127, 8130, 33); + fill_0(CHARS, 8130, 8133, -19); + CHARS[8133] = 33; + fill_0(CHARS, 8134, 8141, -19); + fill_0(CHARS, 8141, 8144, 33); + fill_0(CHARS, 8144, 8148, -19); + fill_0(CHARS, 8148, 8150, 33); + fill_0(CHARS, 8150, 8156, -19); + fill_0(CHARS, 8156, 8160, 33); + fill_0(CHARS, 8160, 8173, -19); + fill_0(CHARS, 8173, 8178, 33); + fill_0(CHARS, 8178, 8181, -19); + CHARS[8181] = 33; + fill_0(CHARS, 8182, 8189, -19); + fill_0(CHARS, 8189, 8400, 33); + fill_0(CHARS, 8400, 8413, -87); + fill_0(CHARS, 8413, 8417, 33); + CHARS[8417] = -87; + fill_0(CHARS, 8418, 8486, 33); + CHARS[8486] = -19; + fill_0(CHARS, 8487, 8490, 33); + fill_0(CHARS, 8490, 8492, -19); + fill_0(CHARS, 8492, 8494, 33); + CHARS[8494] = -19; + fill_0(CHARS, 8495, 8576, 33); + fill_0(CHARS, 8576, 8579, -19); + fill_0(CHARS, 8579, 12293, 33); + CHARS[12293] = -87; + CHARS[12294] = 33; + CHARS[12295] = -19; + fill_0(CHARS, 12296, 12321, 33); + fill_0(CHARS, 12321, 12330, -19); + fill_0(CHARS, 12330, 12336, -87); + CHARS[12336] = 33; + fill_0(CHARS, 12337, 12342, -87); + fill_0(CHARS, 12342, 12353, 33); + fill_0(CHARS, 12353, 12437, -19); + fill_0(CHARS, 12437, 12441, 33); + fill_0(CHARS, 12441, 12443, -87); + fill_0(CHARS, 12443, 12445, 33); + fill_0(CHARS, 12445, 12447, -87); + fill_0(CHARS, 12447, 12449, 33); + fill_0(CHARS, 12449, 12539, -19); + CHARS[12539] = 33; + fill_0(CHARS, 12540, 12543, -87); + fill_0(CHARS, 12543, 12549, 33); + fill_0(CHARS, 12549, 12589, -19); + fill_0(CHARS, 12589, 19968, 33); + fill_0(CHARS, 19968, 40870, -19); + fill_0(CHARS, 40870, 44032, 33); + fill_0(CHARS, 44032, 55204, -19); + fill_0(CHARS, 55204, $intern_64, 33); + fill_0(CHARS, 57344, 65534, 33); +} + +var CHARS; +function RegEx$ParseException(mes){ + RuntimeException_0.call(this, mes); +} + +defineClass(50, 60, $intern_43, RegEx$ParseException); +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParseException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParseException', 50); +function $next_17(this$static){ + var ch_0, low, ret; + if (this$static.offset >= this$static.regexlen) { + this$static.chardata = -1; + this$static.nexttoken = 1; + return; + } + ch_0 = $charAt(this$static.regex, this$static.offset++); + this$static.chardata = ch_0; + if (this$static.context == 1) { + switch (ch_0) { + case 92: + ret = 10; + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + this$static.chardata = $charAt(this$static.regex, this$static.offset++); + break; + case 45: + if ((this$static.options_0 & 512) == 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 91) { + ++this$static.offset; + ret = 24; + } + else + ret = 0; + break; + case 91: + if ((this$static.options_0 & 512) != 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 58) { + ++this$static.offset; + ret = 20; + break; + } + + default:if ((ch_0 & 64512) == $intern_64 && this$static.offset < this$static.regexlen) { + low = $charAt(this$static.regex, this$static.offset); + if ((low & 64512) == 56320) { + this$static.chardata = $intern_63 + (ch_0 - $intern_64 << 10) + low - 56320; + ++this$static.offset; + } + } + + ret = 0; + } + this$static.nexttoken = ret; + return; + } + switch (ch_0) { + case 124: + ret = 2; + break; + case 42: + ret = 3; + break; + case 43: + ret = 4; + break; + case 63: + ret = 5; + break; + case 41: + ret = 7; + break; + case 46: + ret = 8; + break; + case 91: + ret = 9; + break; + case 94: + ret = 11; + break; + case 36: + ret = 12; + break; + case 40: + ret = 6; + if (this$static.offset >= this$static.regexlen) + break; + if ($charAt(this$static.regex, this$static.offset) != 63) + break; + if (++this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + ch_0 = $charAt(this$static.regex, this$static.offset++); + switch (ch_0) { + case 58: + ret = 13; + break; + case 61: + ret = 14; + break; + case 33: + ret = 15; + break; + case 91: + ret = 19; + break; + case 62: + ret = 18; + break; + case 60: + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + ch_0 = $charAt(this$static.regex, this$static.offset++); + if (ch_0 == 61) { + ret = 16; + } + else if (ch_0 == 33) { + ret = 17; + } + else + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.3')))); + break; + case 35: + while (this$static.offset < this$static.regexlen) { + ch_0 = $charAt(this$static.regex, this$static.offset++); + if (ch_0 == 41) + break; + } + + if (ch_0 != 41) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.4')))); + ret = 21; + break; + default:if (ch_0 == 45 || 97 <= ch_0 && ch_0 <= 122 || 65 <= ch_0 && ch_0 <= 90) { + --this$static.offset; + ret = 22; + break; + } + else if (ch_0 == 40) { + ret = 23; + break; + } + + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + } + + break; + case 92: + ret = 10; + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + this$static.chardata = $charAt(this$static.regex, this$static.offset++); + break; + default:ret = 0; + } + this$static.nexttoken = ret; +} + +function $parse_3(this$static, regex, options){ + var i, position, ret; + this$static.options_0 = options; + this$static.offset = 0; + this$static.context = 0; + this$static.parennumber = 1; + this$static.regex = regex; + (this$static.options_0 & 16) == 16 && (this$static.regex = stripExtendedComment(this$static.regex)); + this$static.regexlen = this$static.regex.length; + $next_17(this$static); + ret = $parseRegex(this$static); + if (this$static.offset != this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.1')))); + if (this$static.references) { + for (i = 0; i < this$static.references.arrayList.array.length; i++) { + position = castTo($elementAt(this$static.references, i), 584); + if (this$static.parennumber <= position.refNumber) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.2')))); + } + this$static.references.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + return ret; +} + +function $parseAtom(this$static){ + var ch_0, ch2, high, sur, tok; + ch_0 = this$static.nexttoken; + tok = null; + switch (ch_0) { + case 6: + return this$static.processParen(); + case 13: + return this$static.processParen2(); + case 23: + return this$static.processCondition(); + case 22: + return this$static.processModifiers(); + case 18: + return this$static.processIndependent(); + case 8: + $next_17(this$static); + tok = ($clinit_RegEx$Token() , token_dot); + break; + case 9: + return this$static.parseCharacterClass(true); + case 19: + return this$static.parseSetOperations(); + case 10: + switch (this$static.chardata) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + tok = this$static.getTokenForShorthand(this$static.chardata); + $next_17(this$static); + return tok; + case 101: + case 102: + case 110: + case 114: + case 116: + case 117: + case 118: + case 120: + { + ch2 = this$static.decodeEscaped(); + ch2 < $intern_63?(tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2))):(tok = createString_0(decomposeToSurrogates(ch2))); + } + + break; + case 99: + return this$static.processBacksolidus_c(); + case 67: + return this$static.processBacksolidus_C(); + case 105: + return this$static.processBacksolidus_i(); + case 73: + return this$static.processBacksolidus_I(); + case 103: + return this$static.processBacksolidus_g(); + case 88: + return this$static.processBacksolidus_X(); + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return this$static.processBackreference(); + case 80: + case 112: + tok = $processBacksolidus_pP(this$static, this$static.chardata); + if (!tok) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + break; + default:tok = createChar(this$static.chardata); + } + + $next_17(this$static); + break; + case 0: + if (this$static.chardata == 93 || this$static.chardata == 123 || this$static.chardata == 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); + tok = createChar(this$static.chardata); + high = this$static.chardata; + $next_17(this$static); + if ((high & 64512) == $intern_64 && this$static.nexttoken == 0 && (this$static.chardata & 64512) == 56320) { + sur = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); + sur[0] = high & $intern_46; + sur[1] = this$static.chardata & $intern_46; + tok = createParen(createString_0(valueOf_9(sur, 0, sur.length)), 0); + $next_17(this$static); + } + + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); + } + return tok; +} + +function $parseFactor(this$static){ + var ch_0, max_0, min_0, off, tok; + ch_0 = this$static.nexttoken; + switch (ch_0) { + case 11: + return this$static.processCaret(); + case 12: + return this$static.processDollar(); + case 14: + return this$static.processLookahead(); + case 15: + return this$static.processNegativelookahead(); + case 16: + return this$static.processLookbehind(); + case 17: + return this$static.processNegativelookbehind(); + case 21: + $next_17(this$static); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; + case 10: + switch (this$static.chardata) { + case 65: + return this$static.processBacksolidus_A(); + case 90: + return this$static.processBacksolidus_Z(); + case 122: + return this$static.processBacksolidus_z(); + case 98: + return this$static.processBacksolidus_b(); + case 66: + return this$static.processBacksolidus_B(); + case 60: + return this$static.processBacksolidus_lt(); + case 62: + return this$static.processBacksolidus_gt(); + } + + } + tok = $parseAtom(this$static); + ch_0 = this$static.nexttoken; + switch (ch_0) { + case 3: + return this$static.processStar(tok); + case 4: + return this$static.processPlus(tok); + case 5: + return this$static.processQuestion(tok); + case 0: + if (this$static.chardata == 123 && this$static.offset < this$static.regexlen) { + off = this$static.offset; + min_0 = 0; + max_0 = -1; + if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + min_0 = ch_0 - 48; + while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + min_0 = min_0 * 10 + ch_0 - 48; + if (min_0 < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); + } + } + else { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.1')))); + } + max_0 = min_0; + if (ch_0 == 44) { + if (off >= this$static.regexlen) { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.3')))); + } + else if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + max_0 = ch_0 - 48; + while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + max_0 = max_0 * 10 + ch_0 - 48; + if (max_0 < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); + } + if (min_0 > max_0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.4')))); + } + else { + max_0 = -1; + } + } + if (ch_0 != 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.2')))); + if (this$static.checkQuestion(off)) { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok)); + this$static.offset = off + 1; + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok)); + this$static.offset = off; + } + tok.setMin(min_0); + tok.setMax(max_0); + $next_17(this$static); + } + + } + return tok; +} + +function $parseRegex(this$static){ + var parent_0, tok; + tok = $parseTerm(this$static); + parent_0 = null; + while (this$static.nexttoken == 2) { + $next_17(this$static); + if (!parent_0) { + parent_0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(parent_0, tok); + tok = parent_0; + } + tok.addChild($parseTerm(this$static)); + } + return tok; +} + +function $parseTerm(this$static){ + var ch_0, concat, tok; + ch_0 = this$static.nexttoken; + if (ch_0 == 2 || ch_0 == 7 || ch_0 == 1) { + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; + } + else { + tok = $parseFactor(this$static); + concat = null; + while ((ch_0 = this$static.nexttoken) != 2 && ch_0 != 7 && ch_0 != 1) { + if (!concat) { + concat = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(1)); + $addChild_0(concat, tok); + tok = concat; + } + $addChild_0(concat, $parseFactor(this$static)); + } + return tok; + } +} + +function $processBacksolidus_pP(this$static, c){ + var nameend, namestart, pname, positive; + $next_17(this$static); + if (this$static.nexttoken != 0 || this$static.chardata != 123) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.2')))); + positive = c == 112; + namestart = this$static.offset; + nameend = $indexOf_0(this$static.regex, 125, namestart); + if (nameend < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.3')))); + pname = $substring_1(this$static.regex, namestart, nameend); + this$static.offset = nameend + 1; + return getRange_1(pname, positive, (this$static.options_0 & 512) == 512); +} + +function RegEx$RegexParser(){ +} + +function hexChar(ch_0){ + if (ch_0 < 48) + return -1; + if (ch_0 > 102) + return -1; + if (ch_0 <= 57) + return ch_0 - 48; + if (ch_0 < 65) + return -1; + if (ch_0 <= 70) + return ch_0 - 65 + 10; + if (ch_0 < 97) + return -1; + return ch_0 - 97 + 10; +} + +defineClass(820, 1, {}, RegEx$RegexParser); +_.checkQuestion = function checkQuestion(off){ + return off < this.regexlen && $charAt(this.regex, off) == 63; +} +; +_.decodeEscaped = function decodeEscaped(){ + var c, uv, uv0, v1, v10; + if (this.nexttoken != 10) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + c = this.chardata; + switch (c) { + case 101: + c = 27; + break; + case 102: + c = 12; + break; + case 110: + c = 10; + break; + case 114: + c = 13; + break; + case 116: + c = 9; + break; + case 120: + $next_17(this); + if (this.nexttoken != 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + if (this.chardata == 123) { + v10 = 0; + uv0 = 0; + do { + $next_17(this); + if (this.nexttoken != 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + if ((v10 = hexChar(this.chardata)) < 0) + break; + if (uv0 > uv0 * 16) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.2')))); + uv0 = uv0 * 16 + v10; + } + while (true); + if (this.chardata != 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.3')))); + if (uv0 > $intern_165) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.4')))); + c = uv0; + } + else { + v10 = 0; + if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv0 = v10; + $next_17(this); + if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv0 = uv0 * 16 + v10; + c = uv0; + } + + break; + case 117: + v1 = 0; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + c = uv; + break; + case 118: + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + if (uv > $intern_165) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descappe.4')))); + c = uv; + break; + case 65: + case 90: + case 122: + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.5')))); + } + return c; +} +; +_.getTokenForShorthand = function getTokenForShorthand(ch_0){ + var number, tok; + switch (ch_0) { + case 100: + tok = (this.options_0 & 32) == 32?getRange_0('Nd', true):($clinit_RegEx$Token() , token_0to9); + break; + case 68: + tok = (this.options_0 & 32) == 32?getRange_0('Nd', false):($clinit_RegEx$Token() , token_not_0to9); + break; + case 119: + tok = (this.options_0 & 32) == 32?getRange_0('IsWord', true):($clinit_RegEx$Token() , token_wordchars); + break; + case 87: + tok = (this.options_0 & 32) == 32?getRange_0('IsWord', false):($clinit_RegEx$Token() , token_not_wordchars); + break; + case 115: + tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', true):($clinit_RegEx$Token() , token_spaces); + break; + case 83: + tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', false):($clinit_RegEx$Token() , token_not_spaces); + break; + default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); + } + return tok; +} +; +_.parseCharacterClass = function parseCharacterClass(useNrange){ + var base, c, end, firstloop, name_0, nameend, positive, range, rangeend, tok, tok2, type_0; + this.context = 1; + $next_17(this); + base = null; + if (this.nexttoken == 0 && this.chardata == 94) { + $next_17(this); + if (useNrange) { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(5)); + } + else { + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_165); + tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); + } + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + } + firstloop = true; + while ((type_0 = this.nexttoken) != 1) { + if (type_0 == 0 && this.chardata == 93 && !firstloop) + break; + firstloop = false; + c = this.chardata; + end = false; + if (type_0 == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + $mergeRanges(tok, this.getTokenForShorthand(c)); + end = true; + break; + case 105: + case 73: + case 99: + case 67: + c = this.processCIinCharacterClass(tok, c); + c < 0 && (end = true); + break; + case 112: + case 80: + tok2 = $processBacksolidus_pP(this, c); + if (!tok2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + $mergeRanges(tok, tok2); + end = true; + break; + default:c = this.decodeEscaped(); + } + } + else if (type_0 == 20) { + nameend = $indexOf_0(this.regex, 58, this.offset); + if (nameend < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); + positive = true; + if ($charAt(this.regex, this.offset) == 94) { + ++this.offset; + positive = false; + } + name_0 = $substring_1(this.regex, this.offset, nameend); + range = getRange_1(name_0, positive, (this.options_0 & 512) == 512); + if (!range) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.3')))); + $mergeRanges(tok, range); + end = true; + if (nameend + 1 >= this.regexlen || $charAt(this.regex, nameend + 1) != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); + this.offset = nameend + 2; + } + $next_17(this); + if (!end) { + if (this.nexttoken != 0 || this.chardata != 45) { + $addRange(tok, c, c); + } + else { + $next_17(this); + if ((type_0 = this.nexttoken) == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (type_0 == 0 && this.chardata == 93) { + $addRange(tok, c, c); + $addRange(tok, 45, 45); + } + else { + rangeend = this.chardata; + type_0 == 10 && (rangeend = this.decodeEscaped()); + $next_17(this); + $addRange(tok, c, rangeend); + } + } + } + (this.options_0 & $intern_137) == $intern_137 && this.nexttoken == 0 && this.chardata == 44 && $next_17(this); + } + if (this.nexttoken == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (base) { + $subtractRanges(base, tok); + tok = base; + } + $sortRanges(tok); + $compactRanges(tok); + this.context = 0; + $next_17(this); + return tok; +} +; +_.parseSetOperations = function parseSetOperations(){ + var ch_0, t2, tok, type_0; + tok = this.parseCharacterClass(false); + while ((type_0 = this.nexttoken) != 7) { + ch_0 = this.chardata; + if (type_0 == 0 && (ch_0 == 45 || ch_0 == 38) || type_0 == 4) { + $next_17(this); + if (this.nexttoken != 9) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.1')))); + t2 = this.parseCharacterClass(false); + if (type_0 == 4) + $mergeRanges(tok, t2); + else if (ch_0 == 45) + $subtractRanges(tok, t2); + else if (ch_0 == 38) + $intersectRanges(tok, t2); + else + throw toJs(new RuntimeException_0('ASSERT')); + } + else { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.2')))); + } + } + $next_17(this); + return tok; +} +; +_.processBackreference = function processBackreference(){ + var refnum, tok; + refnum = this.chardata - 48; + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$StringToken(12, null, refnum)); + !this.references && (this.references = new Vector); + $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refnum)); + $next_17(this); + return tok; +} +; +_.processBacksolidus_A = function processBacksolidus_A(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringbeginning; +} +; +_.processBacksolidus_B = function processBacksolidus_B(){ + $next_17(this); + return $clinit_RegEx$Token() , token_not_wordedge; +} +; +_.processBacksolidus_C = function processBacksolidus_C(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_I = function processBacksolidus_I(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_X = function processBacksolidus_X(){ + $next_17(this); + return getCombiningCharacterSequence(); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringend2; +} +; +_.processBacksolidus_b = function processBacksolidus_b(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordedge; +} +; +_.processBacksolidus_c = function processBacksolidus_c(){ + var ch2; + if (this.offset >= this.regexlen || ((ch2 = $charAt(this.regex, this.offset++)) & 65504) != 64) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.1')))); + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2 - 64); +} +; +_.processBacksolidus_g = function processBacksolidus_g(){ + $next_17(this); + return getGraphemePattern(); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordend; +} +; +_.processBacksolidus_i = function processBacksolidus_i(){ + var tok; + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 105)); + $next_17(this); + return tok; +} +; +_.processBacksolidus_lt = function processBacksolidus_lt(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordbeginning; +} +; +_.processBacksolidus_z = function processBacksolidus_z(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringend; +} +; +_.processCIinCharacterClass = function processCIinCharacterClass(tok, c){ + return this.decodeEscaped(); +} +; +_.processCaret = function processCaret(){ + $next_17(this); + return $clinit_RegEx$Token() , token_linebeginning; +} +; +_.processCondition = function processCondition(){ + var ch_0, condition, noPattern, refno, yesPattern; + if (this.offset + 1 >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.4')))); + refno = -1; + condition = null; + ch_0 = $charAt(this.regex, this.offset); + if (49 <= ch_0 && ch_0 <= 57) { + refno = ch_0 - 48; + !this.references && (this.references = new Vector); + $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refno)); + ++this.offset; + if ($charAt(this.regex, this.offset) != 41) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + ++this.offset; + } + else { + ch_0 == 63 && --this.offset; + $next_17(this); + condition = $parseFactor(this); + switch (condition.type_0) { + case 20: + case 21: + case 22: + case 23: + break; + case 8: + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.5')))); + } + } + $next_17(this); + yesPattern = $parseRegex(this); + noPattern = null; + if (yesPattern.type_0 == 2) { + if (yesPattern.size_2() != 2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.6')))); + noPattern = yesPattern.getChild(1); + yesPattern = yesPattern.getChild(0); + } + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ConditionToken(refno, condition, yesPattern, noPattern); +} +; +_.processDollar = function processDollar(){ + $next_17(this); + return $clinit_RegEx$Token() , token_lineend; +} +; +_.processIndependent = function processIndependent(){ + var tok; + $next_17(this); + tok = createLook(24, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processLookahead = function processLookahead(){ + var tok; + $next_17(this); + tok = createLook(20, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processLookbehind = function processLookbehind(){ + var tok; + $next_17(this); + tok = createLook(22, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processModifiers = function processModifiers(){ + var add_0, ch_0, mask, tok, v; + add_0 = 0; + mask = 0; + ch_0 = -1; + while (this.offset < this.regexlen) { + ch_0 = $charAt(this.regex, this.offset); + v = getOptionValue(ch_0); + if (v == 0) + break; + add_0 |= v; + ++this.offset; + } + if (this.offset >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); + if (ch_0 == 45) { + ++this.offset; + while (this.offset < this.regexlen) { + ch_0 = $charAt(this.regex, this.offset); + v = getOptionValue(ch_0); + if (v == 0) + break; + mask |= v; + ++this.offset; + } + if (this.offset >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); + } + if (ch_0 == 58) { + ++this.offset; + $next_17(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + } + else if (ch_0 == 41) { + ++this.offset; + $next_17(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + } + else + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.3')))); + return tok; +} +; +_.processNegativelookahead = function processNegativelookahead(){ + var tok; + $next_17(this); + tok = createLook(21, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processNegativelookbehind = function processNegativelookbehind(){ + var tok; + $next_17(this); + tok = createLook(23, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen = function processParen(){ + var p, tok; + $next_17(this); + p = this.parennumber++; + tok = createParen($parseRegex(this), p); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen2 = function processParen2(){ + var tok; + $next_17(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processPlus = function processPlus(tok){ + $next_17(this); + if (this.nexttoken == 5) { + $next_17(this); + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok))); + } + else + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); +} +; +_.processQuestion = function processQuestion(tok){ + var par; + $next_17(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + if (this.nexttoken == 5) { + $next_17(this); + $addChild_0(par, (null , token_empty)); + $addChild_0(par, tok); + } + else { + $addChild_0(par, tok); + $addChild_0(par, (null , token_empty)); + } + return par; +} +; +_.processStar = function processStar(tok){ + $next_17(this); + if (this.nexttoken == 5) { + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok); + } + else + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); +} +; +_.chardata = 0; +_.context = 0; +_.nexttoken = 0; +_.offset = 0; +_.options_0 = 0; +_.parennumber = 1; +_.references = null; +_.regexlen = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser', 820); +function $decodeEscaped(this$static){ + var c; + if (this$static.nexttoken != 10) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + c = this$static.chardata; + switch (c) { + case 110: + c = 10; + break; + case 114: + c = 13; + break; + case 116: + c = 9; + break; + case 92: + case 124: + case 46: + case 94: + case 45: + case 63: + case 42: + case 43: + case 123: + case 125: + case 40: + case 41: + case 91: + case 93: + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); + } + return c; +} + +function $getTokenForShorthand(ch_0){ + var number; + switch (ch_0) { + case 100: + return getRange('xml:isDigit', true); + case 68: + return getRange('xml:isDigit', false); + case 119: + return getRange('xml:isWord', true); + case 87: + return getRange('xml:isWord', false); + case 115: + return getRange('xml:isSpace', true); + case 83: + return getRange('xml:isSpace', false); + case 99: + return getRange('xml:isNameChar', true); + case 67: + return getRange('xml:isNameChar', false); + case 105: + return getRange('xml:isInitialNameChar', true); + case 73: + return getRange('xml:isInitialNameChar', false); + default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); + } +} + +function $parseCharacterClass(this$static){ + var base, c, end, firstloop, range2, rangeend, tok, tok2, type_0; + this$static.context = 1; + $next_17(this$static); + base = null; + if (this$static.nexttoken == 0 && this$static.chardata == 94) { + $next_17(this$static); + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_165); + tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + } + firstloop = true; + while ((type_0 = this$static.nexttoken) != 1) { + if (type_0 == 0 && this$static.chardata == 93 && !firstloop) { + if (base) { + $subtractRanges(base, tok); + tok = base; + } + break; + } + c = this$static.chardata; + end = false; + if (type_0 == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + $mergeRanges(tok, $getTokenForShorthand(c)); + end = true; + break; + case 105: + case 73: + case 99: + case 67: + c = ($mergeRanges(tok, $getTokenForShorthand(c)) , -1); + c < 0 && (end = true); + break; + case 112: + case 80: + tok2 = $processBacksolidus_pP(this$static, c); + if (!tok2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + $mergeRanges(tok, tok2); + end = true; + break; + default:c = $decodeEscaped(this$static); + } + } + else if (type_0 == 24 && !firstloop) { + if (base) { + $subtractRanges(base, tok); + tok = base; + } + range2 = $parseCharacterClass(this$static); + $subtractRanges(tok, range2); + if (this$static.nexttoken != 0 || this$static.chardata != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.5')))); + break; + } + $next_17(this$static); + if (!end) { + if (type_0 == 0) { + if (c == 91) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); + if (c == 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); + if (c == 45 && !firstloop && this$static.chardata != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + if (this$static.nexttoken != 0 || this$static.chardata != 45 || c == 45 && firstloop) { + $addRange(tok, c, c); + } + else { + $next_17(this$static); + if ((type_0 = this$static.nexttoken) == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (type_0 == 0 && this$static.chardata == 93) { + $addRange(tok, c, c); + $addRange(tok, 45, 45); + } + else if (type_0 == 0 && this$static.chardata == 93 || type_0 == 24) { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + else { + rangeend = this$static.chardata; + if (type_0 == 0) { + if (rangeend == 91) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); + if (rangeend == 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); + if (rangeend == 45) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + else + type_0 == 10 && (rangeend = $decodeEscaped(this$static)); + $next_17(this$static); + if (c > rangeend) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.3')))); + $addRange(tok, c, rangeend); + } + } + } + firstloop = false; + } + if (this$static.nexttoken == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + $sortRanges(tok); + $compactRanges(tok); + this$static.context = 0; + $next_17(this$static); + return tok; +} + +function RegEx$ParserForXMLSchema(){ + RegEx$RegexParser.call(this); +} + +function getRange(name_0, positive){ + var tok, tok0; + if (!ranges_0) { + ranges_0 = new HashMap; + ranges2 = new HashMap; + tok0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '\t\n\r\r '); + $putStringValue(ranges_0, 'xml:isSpace', tok0); + $putStringValue(ranges2, 'xml:isSpace', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); + $putStringValue(ranges_0, 'xml:isDigit', tok0); + $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); + $putStringValue(ranges_0, 'xml:isDigit', tok0); + $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $mergeRanges(tok0, castTo($getStringValue(ranges_0, 'xml:isDigit'), 117)); + $putStringValue(ranges_0, 'xml:isWord', tok0); + $putStringValue(ranges2, 'xml:isWord', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $putStringValue(ranges_0, 'xml:isNameChar', tok0); + $putStringValue(ranges2, 'xml:isNameChar', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $addRange(tok0, 95, 95); + $addRange(tok0, 58, 58); + $putStringValue(ranges_0, 'xml:isInitialNameChar', tok0); + $putStringValue(ranges2, 'xml:isInitialNameChar', complementRanges(tok0)); + } + tok = positive?castTo($getStringValue(ranges_0, name_0), 136):castTo($getStringValue(ranges2, name_0), 136); + return tok; +} + +function setupRange(range, src_0){ + var i, len; + len = src_0.length; + for (i = 0; i < len; i += 2) + $addRange(range, (checkCriticalStringElementIndex(i, src_0.length) , src_0.charCodeAt(i)), (checkCriticalStringElementIndex(i + 1, src_0.length) , src_0.charCodeAt(i + 1))); +} + +defineClass(1824, 820, {}, RegEx$ParserForXMLSchema); +_.checkQuestion = function checkQuestion_0(off){ + return false; +} +; +_.decodeEscaped = function decodeEscaped_0(){ + return $decodeEscaped(this); +} +; +_.getTokenForShorthand = function getTokenForShorthand_0(ch_0){ + return $getTokenForShorthand(ch_0); +} +; +_.parseCharacterClass = function parseCharacterClass_0(useNrange){ + return $parseCharacterClass(this); +} +; +_.parseSetOperations = function parseSetOperations_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBackreference = function processBackreference_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_A = function processBacksolidus_A_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_B = function processBacksolidus_B_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_C = function processBacksolidus_C_0(){ + $next_17(this); + return $getTokenForShorthand(67); +} +; +_.processBacksolidus_I = function processBacksolidus_I_0(){ + $next_17(this); + return $getTokenForShorthand(73); +} +; +_.processBacksolidus_X = function processBacksolidus_X_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_b = function processBacksolidus_b_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_c = function processBacksolidus_c_0(){ + $next_17(this); + return $getTokenForShorthand(99); +} +; +_.processBacksolidus_g = function processBacksolidus_g_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_i = function processBacksolidus_i_0(){ + $next_17(this); + return $getTokenForShorthand(105); +} +; +_.processBacksolidus_lt = function processBacksolidus_lt_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_z = function processBacksolidus_z_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processCIinCharacterClass = function processCIinCharacterClass_0(tok, c){ + return $mergeRanges(tok, $getTokenForShorthand(c)) , -1; +} +; +_.processCaret = function processCaret_0(){ + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 94); +} +; +_.processCondition = function processCondition_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processDollar = function processDollar_0(){ + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 36); +} +; +_.processIndependent = function processIndependent_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processLookahead = function processLookahead_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processLookbehind = function processLookbehind_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processModifiers = function processModifiers_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processNegativelookahead = function processNegativelookahead_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processNegativelookbehind = function processNegativelookbehind_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processParen = function processParen_0(){ + var tok; + $next_17(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen2 = function processParen2_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processPlus = function processPlus_0(tok){ + $next_17(this); + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); +} +; +_.processQuestion = function processQuestion_0(tok){ + var par; + $next_17(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(par, tok); + $addChild_0(par, (null , token_empty)); + return par; +} +; +_.processStar = function processStar_0(tok){ + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); +} +; +var ranges_0 = null, ranges2 = null; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParserForXMLSchema_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParserForXMLSchema', 1824); +function createOptionString(options){ + var sb; + sb = new StringBuffer_0; + (options & 256) != 0 && (sb.string += 'F' , sb); + (options & 128) != 0 && (sb.string += 'H' , sb); + (options & 512) != 0 && (sb.string += 'X' , sb); + (options & 2) != 0 && (sb.string += 'i' , sb); + (options & 8) != 0 && (sb.string += 'm' , sb); + (options & 4) != 0 && (sb.string += 's' , sb); + (options & 32) != 0 && (sb.string += 'u' , sb); + (options & 64) != 0 && (sb.string += 'w' , sb); + (options & 16) != 0 && (sb.string += 'x' , sb); + (options & $intern_137) != 0 && (sb.string += ',' , sb); + return $intern(sb.string); +} + +function decomposeToSurrogates(ch_0){ + var chs; + chs = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); + ch_0 -= $intern_63; + chs[0] = (ch_0 >> 10) + $intern_64 & $intern_46; + chs[1] = (ch_0 & 1023) + 56320 & $intern_46; + return valueOf_9(chs, 0, chs.length); +} + +function getOptionValue(ch_0){ + var ret; + ret = 0; + switch (ch_0) { + case 105: + ret = 2; + break; + case 109: + ret = 8; + break; + case 115: + ret = 4; + break; + case 120: + ret = 16; + break; + case 117: + ret = 32; + break; + case 119: + ret = 64; + break; + case 70: + ret = 256; + break; + case 72: + ret = 128; + break; + case 88: + ret = 512; + break; + case 44: + ret = $intern_137; + } + return ret; +} + +function parseOptions(){ + var i, options, v; + options = 0; + for (i = 0; i < 'X'.length; i++) { + v = getOptionValue((checkCriticalStringElementIndex(i, 'X'.length) , 'X'.charCodeAt(i))); + if (v == 0) + throw toJs(new RegEx$ParseException('Unknown Option: ' + 'X'.substr(i))); + options |= v; + } + return options; +} + +function quoteMeta(literal){ + var buffer, ch_0, i, len; + len = literal.length; + buffer = null; + for (i = 0; i < len; i++) { + ch_0 = (checkCriticalStringElementIndex(i, literal.length) , literal.charCodeAt(i)); + if ($indexOf_1('.*+?{[()|\\^$', fromCodePoint(ch_0)) >= 0) { + if (!buffer) { + buffer = new StringBuffer_0; + i > 0 && $append_3(buffer, literal.substr(0, i)); + } + buffer.string += '\\'; + $append(buffer, ch_0 & $intern_46); + } + else + !!buffer && $append(buffer, ch_0 & $intern_46); + } + return buffer?buffer.string:literal; +} + +function stripExtendedComment(regex){ + var buffer, ch_0, len, next, offset; + len = regex.length; + buffer = new StringBuffer_0; + offset = 0; + while (offset < len) { + ch_0 = $charAt(regex, offset++); + if (ch_0 == 9 || ch_0 == 10 || ch_0 == 12 || ch_0 == 13 || ch_0 == 32) + continue; + if (ch_0 == 35) { + while (offset < len) { + ch_0 = $charAt(regex, offset++); + if (ch_0 == 13 || ch_0 == 10) + break; + } + continue; + } + if (ch_0 == 92 && offset < len) { + if ((next = (checkCriticalStringElementIndex(offset, regex.length) , regex.charCodeAt(offset))) == 35 || next == 9 || next == 10 || next == 12 || next == 13 || next == 32) { + $append(buffer, next & $intern_46); + ++offset; + } + else { + buffer.string += '\\'; + $append(buffer, next & $intern_46); + ++offset; + } + } + else + $append(buffer, ch_0 & $intern_46); + } + return buffer.string; +} + +function $clinit_RegEx$Token(){ + $clinit_RegEx$Token = emptyMethod; + token_empty = new RegEx$Token(7); + token_linebeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 94)); + ++tokens_0; + new RegEx$Token$CharToken(8, 64); + token_lineend = (++tokens_0 , new RegEx$Token$CharToken(8, 36)); + token_stringbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 65)); + token_stringend = (++tokens_0 , new RegEx$Token$CharToken(8, 122)); + token_stringend2 = (++tokens_0 , new RegEx$Token$CharToken(8, 90)); + token_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 98)); + token_not_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 66)); + token_wordbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 60)); + token_wordend = (++tokens_0 , new RegEx$Token$CharToken(8, 62)); + token_dot = new RegEx$Token(11); + token_0to9 = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_0to9, 48, 57); + token_wordchars = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_wordchars, 48, 57); + $addRange(token_wordchars, 65, 90); + $addRange(token_wordchars, 95, 95); + $addRange(token_wordchars, 97, 122); + token_spaces = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_spaces, 9, 9); + $addRange(token_spaces, 10, 10); + $addRange(token_spaces, 12, 12); + $addRange(token_spaces, 13, 13); + $addRange(token_spaces, 32, 32); + token_not_0to9 = complementRanges(token_0to9); + token_not_wordchars = complementRanges(token_wordchars); + token_not_spaces = complementRanges(token_spaces); + categories = new HashMap; + categories2 = new HashMap; + categoryNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Cn', 'Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Me', 'Mc', 'Nd', 'Nl', 'No', 'Zs', 'Zl', 'Zp', 'Cc', 'Cf', null, 'Co', 'Cs', 'Pd', 'Ps', 'Pe', 'Pc', 'Po', 'Sm', 'Sc', 'Sk', 'So', 'Pi', 'Pf', 'L', 'M', 'N', 'Z', 'C', 'P', 'S']); + blockNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Basic Latin', 'Latin-1 Supplement', 'Latin Extended-A', 'Latin Extended-B', 'IPA Extensions', 'Spacing Modifier Letters', 'Combining Diacritical Marks', 'Greek', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul Jamo', 'Ethiopic', 'Cherokee', 'Unified Canadian Aboriginal Syllabics', 'Ogham', 'Runic', 'Khmer', 'Mongolian', 'Latin Extended Additional', 'Greek Extended', 'General Punctuation', 'Superscripts and Subscripts', 'Currency Symbols', 'Combining Marks for Symbols', 'Letterlike Symbols', 'Number Forms', 'Arrows', 'Mathematical Operators', 'Miscellaneous Technical', 'Control Pictures', 'Optical Character Recognition', 'Enclosed Alphanumerics', 'Box Drawing', 'Block Elements', 'Geometric Shapes', 'Miscellaneous Symbols', 'Dingbats', 'Braille Patterns', 'CJK Radicals Supplement', 'Kangxi Radicals', 'Ideographic Description Characters', 'CJK Symbols and Punctuation', 'Hiragana', 'Katakana', 'Bopomofo', 'Hangul Compatibility Jamo', 'Kanbun', 'Bopomofo Extended', 'Enclosed CJK Letters and Months', 'CJK Compatibility', 'CJK Unified Ideographs Extension A', 'CJK Unified Ideographs', 'Yi Syllables', 'Yi Radicals', 'Hangul Syllables', 'Private Use', 'CJK Compatibility Ideographs', 'Alphabetic Presentation Forms', 'Arabic Presentation Forms-A', 'Combining Half Marks', 'CJK Compatibility Forms', 'Small Form Variants', 'Arabic Presentation Forms-B', 'Specials', 'Halfwidth and Fullwidth Forms', 'Old Italic', 'Gothic', 'Deseret', 'Byzantine Musical Symbols', 'Musical Symbols', 'Mathematical Alphanumeric Symbols', 'CJK Unified Ideographs Extension B', 'CJK Compatibility Ideographs Supplement', 'Tags']); + nonBMPBlockRanges = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); +} + +function RegEx$Token(type_0){ + this.type_0 = type_0; +} + +function createChar(ch_0){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$CharToken(0, ch_0); +} + +function createClosure(tok){ + ++tokens_0; + return new RegEx$Token$ClosureToken(3, tok); +} + +function createConcat(tok1, tok2){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ConcatToken(tok1, tok2); +} + +function createLook(type_0, child){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ParenToken(type_0, child, 0); +} + +function createModifierGroup(child, add_0, mask){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ModifierToken(child, add_0, mask); +} + +function createParen(child, pnumber){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ParenToken(6, child, pnumber); +} + +function createString_0(str){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$StringToken(10, str, 0); +} + +function getCombiningCharacterSequence(){ + $clinit_RegEx$Token(); + var foo; + if (token_ccs) + return token_ccs; + foo = createClosure(getRange_0('M', true)); + foo = createConcat(getRange_0('M', false), foo); + token_ccs = foo; + return token_ccs; +} + +function getGraphemePattern(){ + $clinit_RegEx$Token(); + var base_char, combiner_wo_virama, foo, i, left, virama; + if (token_grapheme) + return token_grapheme; + base_char = (++tokens_0 , new RegEx$RangeToken(4)); + $mergeRanges(base_char, getRange_0('ASSIGNED', true)); + $subtractRanges(base_char, getRange_0('M', true)); + $subtractRanges(base_char, getRange_0('C', true)); + virama = (++tokens_0 , new RegEx$RangeToken(4)); + for (i = 0; i < 11; i++) { + $addRange(virama, i, i); + } + combiner_wo_virama = (++tokens_0 , new RegEx$RangeToken(4)); + $mergeRanges(combiner_wo_virama, getRange_0('M', true)); + $addRange(combiner_wo_virama, 4448, 4607); + $addRange(combiner_wo_virama, 65438, 65439); + left = (++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(left, base_char); + $addChild_0(left, token_empty); + foo = (++tokens_0 , new RegEx$Token$UnionToken(2)); + foo.addChild(createConcat(virama, getRange_0('L', true))); + foo.addChild(combiner_wo_virama); + foo = (++tokens_0 , new RegEx$Token$ClosureToken(3, foo)); + foo = (++tokens_0 , new RegEx$Token$ConcatToken(left, foo)); + token_grapheme = foo; + return token_grapheme; +} + +function getRange_0(name_0, positive){ + $clinit_RegEx$Token(); + var all, buffer, ci, i, i0, location_0, n, oldLength, r1, ranges, rend, rstart, tok; + if ($size_2(categories) == 0) { + ranges = initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit, $intern_16, 117, categoryNames.length, 0, 1); + for (i0 = 0; i0 < ranges.length; i0++) { + ranges[i0] = (++tokens_0 , new RegEx$RangeToken(4)); + } + buffer = new StringBuffer_0; + for (i = 0; i < blockNames.length; i++) { + r1 = (++tokens_0 , new RegEx$RangeToken(4)); + if (i < 84) { + location_0 = i * 2; + rstart = (checkCriticalStringElementIndex(location_0, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0)); + rend = (checkCriticalStringElementIndex(location_0 + 1, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0 + 1)); + $addRange(r1, rstart, rend); + } + else { + location_0 = (i - 84) * 2; + $addRange(r1, nonBMPBlockRanges[location_0], nonBMPBlockRanges[location_0 + 1]); + } + n = blockNames[i]; + $equals_5(n, 'Specials') && $addRange(r1, 65520, 65533); + if ($equals_5(n, 'Private Use')) { + $addRange(r1, 983040, 1048573); + $addRange(r1, 1048576, 1114109); + } + $putStringValue(categories, n, r1); + $putStringValue(categories2, n, complementRanges(r1)); + oldLength = buffer.string.length; + 0 < oldLength?(buffer.string = buffer.string.substr(0, 0)):0 > oldLength && (buffer.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); + buffer.string += 'Is'; + if ($indexOf_1(n, fromCodePoint(32)) >= 0) { + for (ci = 0; ci < n.length; ci++) { + checkCriticalStringElementIndex(ci, n.length); + n.charCodeAt(ci) != 32 && $append(buffer, (checkCriticalStringElementIndex(ci, n.length) , n.charCodeAt(ci))); + } + } + else { + buffer.string += '' + n; + } + setAlias(buffer.string, n, true); + } + setAlias('ASSIGNED', 'Cn', false); + setAlias('UNASSIGNED', 'Cn', true); + all = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(all, 0, $intern_165); + $putStringValue(categories, 'ALL', all); + $putStringValue(categories2, 'ALL', complementRanges(all)); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'ASSIGNED', 'ASSIGNED'); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'UNASSIGNED', 'UNASSIGNED'); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'ALL', 'ALL'); + } + tok = positive?castTo($getStringValue(categories, name_0), 136):castTo($getStringValue(categories2, name_0), 136); + return tok; +} + +function getRange_1(name_0, positive, xs){ + $clinit_RegEx$Token(); + var range; + range = getRange_0(name_0, positive); + xs && !!range && isRegisterNonXS(name_0) && (range = null); + return range; +} + +function isRegisterNonXS(name_0){ + if (!nonxs) + return false; + return $hasStringValue(nonxs, name_0); +} + +function setAlias(newName, name_0, positive){ + var t1, t2; + t1 = castTo($getStringValue(categories, name_0), 117); + t2 = castTo($getStringValue(categories2, name_0), 117); + if (positive) { + $putStringValue(categories, newName, t1); + $putStringValue(categories2, newName, t2); + } + else { + $putStringValue(categories2, newName, t1); + $putStringValue(categories, newName, t2); + } +} + +defineClass(117, 1, $intern_166, RegEx$Token); +_.addChild = function addChild(tok){ + throw toJs(new RuntimeException_0('Not supported.')); +} +; +_.getChar = function getChar(){ + return -1; +} +; +_.getChild = function getChild(index_0){ + return null; +} +; +_.getString = function getString(){ + return null; +} +; +_.setMax = function setMax(max_0){ +} +; +_.setMin = function setMin(min_0){ +} +; +_.size_2 = function size_81(){ + return 0; +} +; +_.toString_0 = function toString_161(){ + return this.toString_1(0); +} +; +_.toString_1 = function toString_162(options){ + return this.type_0 == 11?'.':''; +} +; +_.type_0 = 0; +var blockNames, categories, categories2, categoryNames, nonBMPBlockRanges, nonxs = null, token_0to9, token_ccs = null, token_dot, token_empty, token_grapheme = null, token_linebeginning, token_lineend, token_not_0to9, token_not_spaces, token_not_wordchars, token_not_wordedge, token_spaces, token_stringbeginning, token_stringend, token_stringend2, token_wordbeginning, token_wordchars, token_wordedge, token_wordend, tokens_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token', 117); +function $addRange(this$static, start_0, end){ + var pos, r1, r2, temp; + if (start_0 <= end) { + r1 = start_0; + r2 = end; + } + else { + r1 = end; + r2 = start_0; + } + pos = 0; + if (this$static.ranges == null) { + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, 2, 15, 1); + this$static.ranges[0] = r1; + this$static.ranges[1] = r2; + this$static.sorted = true; + } + else { + pos = this$static.ranges.length; + if (this$static.ranges[pos - 1] + 1 == r1) { + this$static.ranges[pos - 1] = r2; + return; + } + temp = initUnidimensionalArray(I_classLit, $intern_48, 25, pos + 2, 15, 1); + arraycopy(this$static.ranges, 0, temp, 0, pos); + this$static.ranges = temp; + this$static.ranges[pos - 1] >= r1 && (this$static.sorted = false , this$static.compacted = false); + this$static.ranges[pos++] = r1; + this$static.ranges[pos] = r2; + this$static.sorted || $sortRanges(this$static); + } +} + +function $compactRanges(this$static){ + var base, baseend, result, target; + if (this$static.ranges == null || this$static.ranges.length <= 2) + return; + if (this$static.compacted) + return; + base = 0; + target = 0; + while (target < this$static.ranges.length) { + if (base != target) { + this$static.ranges[base] = this$static.ranges[target++]; + this$static.ranges[base + 1] = this$static.ranges[target++]; + } + else + target += 2; + baseend = this$static.ranges[base + 1]; + while (target < this$static.ranges.length) { + if (baseend + 1 < this$static.ranges[target]) + break; + if (baseend + 1 == this$static.ranges[target]) { + this$static.ranges[base + 1] = this$static.ranges[target + 1]; + baseend = this$static.ranges[base + 1]; + target += 2; + } + else if (baseend >= this$static.ranges[target + 1]) { + target += 2; + } + else if (baseend < this$static.ranges[target + 1]) { + this$static.ranges[base + 1] = this$static.ranges[target + 1]; + baseend = this$static.ranges[base + 1]; + target += 2; + } + else { + throw toJs(new RuntimeException_0('Token#compactRanges(): Internel Error: [' + this$static.ranges[base] + ',' + this$static.ranges[base + 1] + '] [' + this$static.ranges[target] + ',' + this$static.ranges[target + 1] + ']')); + } + } + base += 2; + } + if (base != this$static.ranges.length) { + result = initUnidimensionalArray(I_classLit, $intern_48, 25, base, 15, 1); + arraycopy(this$static.ranges, 0, result, 0, base); + this$static.ranges = result; + } + this$static.compacted = true; +} + +function $intersectRanges(this$static, token){ + var result, src1, src1begin, src1end, src2, src2begin, src2end, tok, wp; + tok = token; + if (tok.ranges == null || this$static.ranges == null) + return; + $sortRanges(this$static); + $compactRanges(this$static); + $sortRanges(tok); + $compactRanges(tok); + result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); + wp = 0; + src1 = 0; + src2 = 0; + while (src1 < this$static.ranges.length && src2 < tok.ranges.length) { + src1begin = this$static.ranges[src1]; + src1end = this$static.ranges[src1 + 1]; + src2begin = tok.ranges[src2]; + src2end = tok.ranges[src2 + 1]; + if (src1end < src2begin) { + src1 += 2; + } + else if (src1end >= src2begin && src1begin <= src2end) { + if (src2begin <= src1begin && src1end <= src2end) { + result[wp++] = src1begin; + result[wp++] = src1end; + src1 += 2; + } + else if (src2begin <= src1begin) { + result[wp++] = src1begin; + result[wp++] = src2end; + this$static.ranges[src1] = src2end + 1; + src2 += 2; + } + else if (src1end <= src2end) { + result[wp++] = src2begin; + result[wp++] = src1end; + src1 += 2; + } + else { + result[wp++] = src2begin; + result[wp++] = src2end; + this$static.ranges[src1] = src2end + 1; + } + } + else if (src2end < src1begin) { + src2 += 2; + } + else { + throw toJs(new RuntimeException_0('Token#intersectRanges(): Internal Error: [' + this$static.ranges[src1] + ',' + this$static.ranges[src1 + 1] + '] & [' + tok.ranges[src2] + ',' + tok.ranges[src2 + 1] + ']')); + } + } + while (src1 < this$static.ranges.length) { + result[wp++] = this$static.ranges[src1++]; + result[wp++] = this$static.ranges[src1++]; + } + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); + arraycopy(result, 0, this$static.ranges, 0, wp); +} + +function $mergeRanges(this$static, token){ + var i, j, k, result, tok; + tok = castTo(token, 136); + $sortRanges(this$static); + $sortRanges(tok); + if (tok.ranges == null) + return; + this$static.sorted = true; + if (this$static.ranges == null) { + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, tok.ranges.length, 15, 1); + arraycopy(tok.ranges, 0, this$static.ranges, 0, tok.ranges.length); + return; + } + result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); + for (i = 0 , j = 0 , k = 0; i < this$static.ranges.length || j < tok.ranges.length;) { + if (i >= this$static.ranges.length) { + result[k++] = tok.ranges[j++]; + result[k++] = tok.ranges[j++]; + } + else if (j >= tok.ranges.length) { + result[k++] = this$static.ranges[i++]; + result[k++] = this$static.ranges[i++]; + } + else if (tok.ranges[j] < this$static.ranges[i] || tok.ranges[j] === this$static.ranges[i] && tok.ranges[j + 1] < this$static.ranges[i + 1]) { + result[k++] = tok.ranges[j++]; + result[k++] = tok.ranges[j++]; + } + else { + result[k++] = this$static.ranges[i++]; + result[k++] = this$static.ranges[i++]; + } + } + this$static.ranges = result; +} + +function $sortRanges(this$static){ + var i, j, tmp; + if (this$static.sorted) + return; + if (this$static.ranges == null) + return; + for (i = this$static.ranges.length - 4; i >= 0; i -= 2) { + for (j = 0; j <= i; j += 2) { + if (this$static.ranges[j] > this$static.ranges[j + 2] || this$static.ranges[j] === this$static.ranges[j + 2] && this$static.ranges[j + 1] > this$static.ranges[j + 3]) { + tmp = this$static.ranges[j + 2]; + this$static.ranges[j + 2] = this$static.ranges[j]; + this$static.ranges[j] = tmp; + tmp = this$static.ranges[j + 3]; + this$static.ranges[j + 3] = this$static.ranges[j + 1]; + this$static.ranges[j + 1] = tmp; + } + } + } + this$static.sorted = true; +} + +function $subtractRanges(this$static, token){ + var result, src_0, srcbegin, srcend, sub_0, subbegin, subend, tok, wp; + if (token.type_0 == 5) { + $intersectRanges(this$static, token); + return; + } + tok = token; + if (tok.ranges == null || this$static.ranges == null) + return; + $sortRanges(this$static); + $compactRanges(this$static); + $sortRanges(tok); + $compactRanges(tok); + result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); + wp = 0; + src_0 = 0; + sub_0 = 0; + while (src_0 < this$static.ranges.length && sub_0 < tok.ranges.length) { + srcbegin = this$static.ranges[src_0]; + srcend = this$static.ranges[src_0 + 1]; + subbegin = tok.ranges[sub_0]; + subend = tok.ranges[sub_0 + 1]; + if (srcend < subbegin) { + result[wp++] = this$static.ranges[src_0++]; + result[wp++] = this$static.ranges[src_0++]; + } + else if (srcend >= subbegin && srcbegin <= subend) { + if (subbegin <= srcbegin && srcend <= subend) { + src_0 += 2; + } + else if (subbegin <= srcbegin) { + this$static.ranges[src_0] = subend + 1; + sub_0 += 2; + } + else if (srcend <= subend) { + result[wp++] = srcbegin; + result[wp++] = subbegin - 1; + src_0 += 2; + } + else { + result[wp++] = srcbegin; + result[wp++] = subbegin - 1; + this$static.ranges[src_0] = subend + 1; + sub_0 += 2; + } + } + else if (subend < srcbegin) { + sub_0 += 2; + } + else { + throw toJs(new RuntimeException_0('Token#subtractRanges(): Internal Error: [' + this$static.ranges[src_0] + ',' + this$static.ranges[src_0 + 1] + '] - [' + tok.ranges[sub_0] + ',' + tok.ranges[sub_0 + 1] + ']')); + } + } + while (src_0 < this$static.ranges.length) { + result[wp++] = this$static.ranges[src_0++]; + result[wp++] = this$static.ranges[src_0++]; + } + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); + arraycopy(result, 0, this$static.ranges, 0, wp); +} + +function RegEx$RangeToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.sorted = false; + this.compacted = false; +} + +function complementRanges(token){ + $clinit_RegEx$Token(); + var i, last, len, ret, tok, wp; + if (token.type_0 != 4 && token.type_0 != 5) + throw toJs(new IllegalArgumentException_0('Token#complementRanges(): must be RANGE: ' + token.type_0)); + tok = token; + $sortRanges(tok); + $compactRanges(tok); + len = tok.ranges.length + 2; + tok.ranges[0] == 0 && (len -= 2); + last = tok.ranges[tok.ranges.length - 1]; + last == $intern_165 && (len -= 2); + ret = (++tokens_0 , new RegEx$RangeToken(4)); + ret.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, len, 15, 1); + wp = 0; + if (tok.ranges[0] > 0) { + ret.ranges[wp++] = 0; + ret.ranges[wp++] = tok.ranges[0] - 1; + } + for (i = 1; i < tok.ranges.length - 2; i += 2) { + ret.ranges[wp++] = tok.ranges[i] + 1; + ret.ranges[wp++] = tok.ranges[i + 1] - 1; + } + if (last != $intern_165) { + ret.ranges[wp++] = last + 1; + ret.ranges[wp] = $intern_165; + } + ret.compacted = true; + return ret; +} + +function escapeCharInCharClass(ch_0){ + var number, pre, ret; + switch (ch_0) { + case 91: + case 93: + case 45: + case 94: + case 44: + case 92: + ret = '\\' + String.fromCharCode(ch_0 & $intern_46); + break; + case 12: + ret = '\\f'; + break; + case 10: + ret = '\\n'; + break; + case 13: + ret = '\\r'; + break; + case 9: + ret = '\\t'; + break; + case 27: + ret = '\\e'; + break; + default:if (ch_0 < 32) { + pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); + ret = '\\x' + $substring_1(pre, pre.length - 2, pre.length); + } + else if (ch_0 >= $intern_63) { + pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); + ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); + } + else + ret = '' + String.fromCharCode(ch_0 & $intern_46); + } + return ret; +} + +defineClass(136, 117, {3:1, 136:1, 117:1}, RegEx$RangeToken); +_.toString_1 = function toString_163(options){ + var i, ret, sb; + if (this.type_0 == 4) { + if (this == token_dot) + ret = '.'; + else if (this == token_0to9) + ret = '\\d'; + else if (this == token_wordchars) + ret = '\\w'; + else if (this == token_spaces) + ret = '\\s'; + else { + sb = new StringBuffer; + sb.string += '['; + for (i = 0; i < this.ranges.length; i += 2) { + (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); + if (this.ranges[i] === this.ranges[i + 1]) { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + } + else { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + sb.string += '-'; + $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); + } + } + sb.string += ']'; + ret = sb.string; + } + } + else { + if (this == token_not_0to9) + ret = '\\D'; + else if (this == token_not_wordchars) + ret = '\\W'; + else if (this == token_not_spaces) + ret = '\\S'; + else { + sb = new StringBuffer; + sb.string += '[^'; + for (i = 0; i < this.ranges.length; i += 2) { + (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); + if (this.ranges[i] === this.ranges[i + 1]) { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + } + else { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + sb.string += '-'; + $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); + } + } + sb.string += ']'; + ret = sb.string; + } + } + return ret; +} +; +_.compacted = false; +_.sorted = false; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RangeToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RangeToken', 136); +function RegEx$RegexParser$ReferencePosition(n){ + this.refNumber = n; +} + +defineClass(584, 1, {584:1}, RegEx$RegexParser$ReferencePosition); +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser$ReferencePosition_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser/ReferencePosition', 584); +function $setPattern(this$static, newPattern, options){ + var rp; + this$static.regex = newPattern; + this$static.options_0 = options; + rp = (this$static.options_0 & 512) == 512?new RegEx$ParserForXMLSchema:new RegEx$RegexParser; + this$static.tokentree = $parse_3(rp, this$static.regex, this$static.options_0); +} + +function RegEx$RegularExpression(regex){ + $setPattern(this, regex, parseOptions()); +} + +defineClass(583, 1, {3:1, 583:1}, RegEx$RegularExpression); +_.equals_0 = function equals_198(obj){ + var r; + if (obj == null) + return false; + if (!instanceOf(obj, 583)) + return false; + r = castTo(obj, 583); + return $equals_5(this.regex, r.regex) && this.options_0 == r.options_0; +} +; +_.hashCode_1 = function hashCode_84(){ + return getHashCode_1(this.regex + '/' + createOptionString(this.options_0)); +} +; +_.toString_0 = function toString_164(){ + return this.tokentree.toString_1(this.options_0); +} +; +_.options_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegularExpression_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegularExpression', 583); +function RegEx$Token$CharToken(type_0, ch_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.chardata = ch_0; +} + +defineClass(223, 117, $intern_166, RegEx$Token$CharToken); +_.getChar = function getChar_0(){ + return this.chardata; +} +; +_.toString_1 = function toString_165(options){ + var number, pre, ret; + switch (this.type_0) { + case 0: + switch (this.chardata) { + case 124: + case 42: + case 43: + case 63: + case 40: + case 41: + case 46: + case 91: + case 123: + case 92: + ret = '\\' + charToString(this.chardata & $intern_46); + break; + case 12: + ret = '\\f'; + break; + case 10: + ret = '\\n'; + break; + case 13: + ret = '\\r'; + break; + case 9: + ret = '\\t'; + break; + case 27: + ret = '\\e'; + break; + default:if (this.chardata >= $intern_63) { + pre = (number = this.chardata >>> 0 , '0' + number.toString(16)); + ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); + } + else + ret = '' + charToString(this.chardata & $intern_46); + } + + break; + case 8: + this == token_linebeginning || this == token_lineend?(ret = '' + charToString(this.chardata & $intern_46)):(ret = '\\' + charToString(this.chardata & $intern_46)); + break; + default:ret = null; + } + return ret; +} +; +_.chardata = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$CharToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/CharToken', 223); +function RegEx$Token$ClosureToken(type_0, tok){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.child = tok; + this.min_0 = -1; + this.max_0 = -1; +} + +defineClass(309, 117, $intern_166, RegEx$Token$ClosureToken); +_.getChild = function getChild_0(index_0){ + return this.child; +} +; +_.setMax = function setMax_0(max_0){ + this.max_0 = max_0; +} +; +_.setMin = function setMin_0(min_0){ + this.min_0 = min_0; +} +; +_.size_2 = function size_82(){ + return 1; +} +; +_.toString_1 = function toString_166(options){ + var ret; + if (this.type_0 == 3) { + if (this.min_0 < 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '*'; + } + else if (this.min_0 == this.max_0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + '}'; + } + else if (this.min_0 >= 0 && this.max_0 >= 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}'; + } + else if (this.min_0 >= 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',}'; + } + else + throw toJs(new RuntimeException_0('Token#toString(): CLOSURE ' + this.min_0 + ', ' + this.max_0)); + } + else { + if (this.min_0 < 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '*?'; + } + else if (this.min_0 == this.max_0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + '}?'; + } + else if (this.min_0 >= 0 && this.max_0 >= 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}?'; + } + else if (this.min_0 >= 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',}?'; + } + else + throw toJs(new RuntimeException_0('Token#toString(): NONGREEDYCLOSURE ' + this.min_0 + ', ' + this.max_0)); + } + return ret; +} +; +_.max_0 = 0; +_.min_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ClosureToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ClosureToken', 309); +function RegEx$Token$ConcatToken(t1, t2){ + RegEx$Token.call(this, 1); + this.child = t1; + this.child2 = t2; +} + +defineClass(821, 117, $intern_166, RegEx$Token$ConcatToken); +_.getChild = function getChild_1(index_0){ + return index_0 == 0?this.child:this.child2; +} +; +_.size_2 = function size_83(){ + return 2; +} +; +_.toString_1 = function toString_167(options){ + var ret; + this.child2.type_0 == 3 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+'):this.child2.type_0 == 9 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+?'):(ret = this.child.toString_1(options) + ('' + this.child2.toString_1(options))); + return ret; +} +; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConcatToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConcatToken', 821); +function RegEx$Token$ConditionToken(refno, cond, yespat, nopat){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, 26); + this.refNumber = refno; + this.condition = cond; + this.yes = yespat; + this.no = nopat; +} + +defineClass(1822, 117, $intern_166, RegEx$Token$ConditionToken); +_.getChild = function getChild_2(index_0){ + if (index_0 == 0) + return this.yes; + if (index_0 == 1) + return this.no; + throw toJs(new RuntimeException_0('Internal Error: ' + index_0)); +} +; +_.size_2 = function size_84(){ + return !this.no?1:2; +} +; +_.toString_1 = function toString_168(options){ + var ret; + this.refNumber > 0?(ret = '(?(' + this.refNumber + ')'):this.condition.type_0 == 8?(ret = '(?(' + this.condition + ')'):(ret = '(?' + this.condition); + !this.no?(ret += this.yes + ')'):(ret += this.yes + '|' + this.no + ')'); + return ret; +} +; +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConditionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConditionToken', 1822); +function RegEx$Token$ModifierToken(tok, add_0, mask){ + RegEx$Token.call(this, 25); + this.child = tok; + this.add_0 = add_0; + this.mask = mask; +} + +defineClass(1823, 117, $intern_166, RegEx$Token$ModifierToken); +_.getChild = function getChild_3(index_0){ + return this.child; +} +; +_.size_2 = function size_85(){ + return 1; +} +; +_.toString_1 = function toString_169(options){ + return '(?' + (this.add_0 == 0?'':createOptionString(this.add_0)) + (this.mask == 0?'':createOptionString(this.mask)) + ':' + this.child.toString_1(options) + ')'; +} +; +_.add_0 = 0; +_.mask = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ModifierToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ModifierToken', 1823); +function RegEx$Token$ParenToken(type_0, tok, paren){ + RegEx$Token.call(this, type_0); + this.child = tok; + this.parennumber = paren; +} + +defineClass(822, 117, $intern_166, RegEx$Token$ParenToken); +_.getChild = function getChild_4(index_0){ + return this.child; +} +; +_.size_2 = function size_86(){ + return 1; +} +; +_.toString_1 = function toString_170(options){ + var ret; + ret = null; + switch (this.type_0) { + case 6: + this.parennumber == 0?(ret = '(?:' + this.child.toString_1(options) + ')'):(ret = '(' + this.child.toString_1(options) + ')'); + break; + case 20: + ret = '(?=' + this.child.toString_1(options) + ')'; + break; + case 21: + ret = '(?!' + this.child.toString_1(options) + ')'; + break; + case 22: + ret = '(?<=' + this.child.toString_1(options) + ')'; + break; + case 23: + ret = '(?' + this.child.toString_1(options) + ')'; + } + return ret; +} +; +_.parennumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ParenToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ParenToken', 822); +function RegEx$Token$StringToken(type_0, str, n){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.string = str; + this.refNumber = n; +} + +defineClass(521, 117, {3:1, 117:1, 521:1}, RegEx$Token$StringToken); +_.getString = function getString_0(){ + return this.string; +} +; +_.toString_1 = function toString_171(options){ + return this.type_0 == 12?'\\' + this.refNumber:quoteMeta(this.string); +} +; +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$StringToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/StringToken', 521); +function $addChild_0(this$static, tok){ + var buffer, ch_0, i, nextMaxLength, previous, size_0; + if (!tok) + return; + !this$static.children && (this$static.children = new Vector); + if (this$static.type_0 == 2) { + $addElement(this$static.children, tok); + return; + } + if (tok.type_0 == 1) { + for (i = 0; i < tok.size_2(); i++) + $addChild_0(this$static, tok.getChild(i)); + return; + } + size_0 = this$static.children.arrayList.array.length; + if (size_0 == 0) { + $addElement(this$static.children, tok); + return; + } + previous = castTo($elementAt(this$static.children, size_0 - 1), 117); + if (!((previous.type_0 == 0 || previous.type_0 == 10) && (tok.type_0 == 0 || tok.type_0 == 10))) { + $addElement(this$static.children, tok); + return; + } + nextMaxLength = tok.type_0 == 0?2:tok.getString().length; + if (previous.type_0 == 0) { + buffer = new StringBuffer_0; + ch_0 = previous.getChar(); + ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); + previous = (++tokens_0 , new RegEx$Token$StringToken(10, null, 0)); + $setElementAt(this$static.children, previous, size_0 - 1); + } + else { + buffer = (previous.getString().length + nextMaxLength , new StringBuffer_0); + $append_3(buffer, previous.getString()); + } + if (tok.type_0 == 0) { + ch_0 = tok.getChar(); + ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); + } + else { + $append_3(buffer, tok.getString()); + } + castTo(previous, 521).string = buffer.string; +} + +function RegEx$Token$UnionToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); +} + +defineClass(465, 117, $intern_166, RegEx$Token$UnionToken); +_.addChild = function addChild_0(tok){ + $addChild_0(this, tok); +} +; +_.getChild = function getChild_5(index_0){ + return castTo($elementAt(this.children, index_0), 117); +} +; +_.size_2 = function size_87(){ + return !this.children?0:this.children.arrayList.array.length; +} +; +_.toString_1 = function toString_172(options){ + var ch_0, ch2, i, ret, sb; + if (this.type_0 == 1) { + if (this.children.arrayList.array.length == 2) { + ch_0 = castTo($elementAt(this.children, 0), 117); + ch2 = castTo($elementAt(this.children, 1), 117); + ch2.type_0 == 3 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+'):ch2.type_0 == 9 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+?'):(ret = ch_0.toString_1(options) + ('' + ch2.toString_1(options))); + } + else { + sb = new StringBuffer; + for (i = 0; i < this.children.arrayList.array.length; i++) { + $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); + } + ret = sb.string; + } + return ret; + } + if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 1), 117).type_0 == 7) { + ret = castTo($elementAt(this.children, 0), 117).toString_1(options) + '?'; + } + else if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 0), 117).type_0 == 7) { + ret = castTo($elementAt(this.children, 1), 117).toString_1(options) + '??'; + } + else { + sb = new StringBuffer; + $append_3(sb, castTo($elementAt(this.children, 0), 117).toString_1(options)); + for (i = 1; i < this.children.arrayList.array.length; i++) { + sb.string += '|'; + $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); + } + ret = sb.string; + } + return ret; +} +; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$UnionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/UnionToken', 465); +function normalize(value_0, collapse){ + var buffer, c, i, length_0, offset, skipSpace, valueArray; + if (value_0 == null) { + return null; + } + length_0 = value_0.length; + if (length_0 == 0) { + return ''; + } + valueArray = initUnidimensionalArray(C_classLit, $intern_44, 25, length_0, 15, 1); + checkCriticalStringBounds(0, length_0, value_0.length); + checkCriticalStringBounds(0, length_0, valueArray.length); + $getChars0(value_0, 0, length_0, valueArray, 0); + buffer = null; + skipSpace = collapse; + for (i = 0 , offset = 0; i < length_0; i++) { + c = valueArray[i]; + $clinit_DataValue$XMLChar(); + if (c <= 32 && (CHARS[c] & 2) != 0) { + if (skipSpace) { + !buffer && (buffer = new StringBuffer_1(value_0)); + $deleteCharAt(buffer, i - offset++); + } + else { + skipSpace = collapse; + if (c != 32) { + !buffer && (buffer = new StringBuffer_1(value_0)); + $replace0(buffer, i - offset, i - offset + 1, String.fromCharCode(32)); + } + } + } + else { + skipSpace = false; + } + } + if (skipSpace) { + if (!buffer) { + return value_0.substr(0, length_0 - 1); + } + else { + length_0 = buffer.string.length; + return length_0 > 0?$substring_1(buffer.string, 0, length_0 - 1):''; + } + } + else { + return !buffer?value_0:buffer.string; + } +} + +function XMLTypeUtil$PatternMatcherImpl(pattern){ + this.regularExpression = new RegEx$RegularExpression(pattern); +} + +defineClass(518, 1, {592:1}, XMLTypeUtil$PatternMatcherImpl); +_.toString_0 = function toString_173(){ + return this.regularExpression.regex; +} +; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeUtil$PatternMatcherImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeUtil/PatternMatcherImpl', 518); +function $clinit_XMLTypeValidator(){ + $clinit_XMLTypeValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_12 = new XMLTypeValidator; + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[\\i-[:]][\\c-[:]]*')]), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + new BigInteger_4('-1'); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\c+')])]); + new BigInteger_4('0'); + new BigInteger_4('0'); + new BigInteger_4('1'); + new BigInteger_4('0'); + new BigInteger_4('18446744073709551615'); +} + +function XMLTypeValidator(){ +} + +defineClass(1622, 1381, {}, XMLTypeValidator); +var INSTANCE_12; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeValidator_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeValidator', 1622); +function $clinit_ExclusiveRange(){ + $clinit_ExclusiveRange = emptyMethod; + EMPTY_LIST_ITERATOR = new ExclusiveRange$1; +} + +function ExclusiveRange(end){ + $clinit_ExclusiveRange(); + this.first = 0; + this.last = end - 1; + this.step = 1; +} + +defineClass(264, 1, $intern_23, ExclusiveRange); +_.forEach_0 = function forEach_41(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_91(){ + return (this.last - this.first) * this.step < 0?EMPTY_LIST_ITERATOR:new ExclusiveRange$RangeIterator(this); +} +; +_.first = 0; +_.last = 0; +_.step = 0; +var EMPTY_LIST_ITERATOR; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange', 264); +function $add_35(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_18(){ + throw toJs(new NoSuchElementException); +} + +function $previous_1(){ + throw toJs(new NoSuchElementException); +} + +function $set_20(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$1(){ +} + +defineClass(1068, 1, $intern_14, ExclusiveRange$1); +_.add_1 = function add_73(e){ + castTo(e, 19); + $add_35(); +} +; +_.forEachRemaining = function forEachRemaining_61(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_51(){ + return $next_18(); +} +; +_.previous_0 = function previous_12(){ + return $previous_1(); +} +; +_.set_1 = function set_45(e){ + castTo(e, 19); + $set_20(); +} +; +_.hasNext_0 = function hasNext_52(){ + return false; +} +; +_.hasPrevious = function hasPrevious_12(){ + return false; +} +; +_.nextIndex_0 = function nextIndex_12(){ + return -1; +} +; +_.previousIndex = function previousIndex_11(){ + return -1; +} +; +_.remove = function remove_132(){ + throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); +} +; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$1_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/1', 1068); +function $add_36(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_19(this$static){ + var value_0; + if (!(this$static.this$01.step < 0?this$static.next_0 >= this$static.this$01.last:this$static.next_0 <= this$static.this$01.last)) { + throw toJs(new NoSuchElementException); + } + value_0 = this$static.next_0; + this$static.next_0 += this$static.this$01.step; + ++this$static.nextIndex; + return valueOf_4(value_0); +} + +function $previous_2(this$static){ + if (this$static.nextIndex <= 0) + throw toJs(new NoSuchElementException); + --this$static.nextIndex; + this$static.next_0 -= this$static.this$01.step; + return valueOf_4(this$static.next_0); +} + +function $set_21(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$RangeIterator(this$0){ + this.this$01 = this$0; + this.next_0 = this.this$01.first; +} + +defineClass(254, 1, $intern_14, ExclusiveRange$RangeIterator); +_.add_1 = function add_74(e){ + castTo(e, 19); + $add_36(); +} +; +_.forEachRemaining = function forEachRemaining_62(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_52(){ + return $next_19(this); +} +; +_.previous_0 = function previous_13(){ + return $previous_2(this); +} +; +_.set_1 = function set_46(e){ + castTo(e, 19); + $set_21(); +} +; +_.hasNext_0 = function hasNext_53(){ + return this.this$01.step < 0?this.next_0 >= this.this$01.last:this.next_0 <= this.this$01.last; +} +; +_.hasPrevious = function hasPrevious_13(){ + return this.nextIndex > 0; +} +; +_.nextIndex_0 = function nextIndex_13(){ + return this.nextIndex; +} +; +_.previousIndex = function previousIndex_12(){ + return this.nextIndex - 1; +} +; +_.remove = function remove_133(){ + throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); +} +; +_.next_0 = 0; +_.nextIndex = 0; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$RangeIterator_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/RangeIterator', 254); +function forEach_42(iterable, procedure){ + forEach_44(new AbstractEList$EIterator(iterable), procedure); +} + +function isEmpty_35(iterable){ + if (iterable) + return iterable.isEmpty(); + return !iterable.iterator_0().hasNext_0(); +} + +function isNullOrEmpty(iterable){ + return !iterable || isEmpty_35(iterable); +} + +function forEach_43(iterator, procedure){ + while (iterator.data_0 == null && !iterator.includeRoot?$hasAnyChildren(iterator):iterator.data_0 == null || iterator.size_0 != 0 && castTo(iterator.data_0[iterator.size_0 - 1], 47).hasNext_0()) { + $apply_28(procedure, $next_14(iterator)); + } +} + +function forEach_44(iterator, procedure){ + var i; + i = 0; + while (iterator.cursor != iterator.this$01_2.size_1()) { + $apply_29(procedure, $doNext(iterator), valueOf_4(i)); + i != $intern_0 && ++i; + } +} + +var C_classLit = createForPrimitive('char', 'C'); +var I_classLit = createForPrimitive('int', 'I'); +var Z_classLit = createForPrimitive('boolean', 'Z'); +var J_classLit = createForPrimitive('long', 'J'); +var B_classLit = createForPrimitive('byte', 'B'); +var D_classLit = createForPrimitive('double', 'D'); +var F_classLit = createForPrimitive('float', 'F'); +var S_classLit = createForPrimitive('short', 'S'); +var Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit = createForInterface('org.eclipse.elk.core.labels', 'ILabelManager'); +var Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit = createForInterface('org.eclipse.emf.common.util', 'DiagnosticChain'); +var Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'ResourceSet'); +var Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit = createForClass('org.eclipse.emf.common.util', 'InvocationTargetException', null); +var $entry = ($clinit_Impl() , entry_2); +var gwtOnLoad = gwtOnLoad = gwtOnLoad_0; +addInitFunctions(init); +setGwtProperty('permProps', [[['locale', 'default'], ['user.agent', 'gecko1_8']], [['locale', 'default'], ['user.agent', 'ie10']], [['locale', 'default'], ['user.agent', 'ie8']], [['locale', 'default'], ['user.agent', 'ie9']], [['locale', 'default'], ['user.agent', 'safari']]]); + +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js new file mode 100644 index 00000000..10b98052 --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js @@ -0,0 +1,6149 @@ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function Ylb(){} +function Ymb(){} +function xmb(){} +function Fmb(){} +function Qmb(){} +function gcb(){} +function ccb(){} +function jcb(){} +function jtb(){} +function otb(){} +function qtb(){} +function _fb(){} +function bpb(){} +function kpb(){} +function ppb(){} +function Gpb(){} +function drb(){} +function dzb(){} +function fzb(){} +function fxb(){} +function Vxb(){} +function Ovb(){} +function byb(){} +function zyb(){} +function Zyb(){} +function _yb(){} +function hzb(){} +function jzb(){} +function lzb(){} +function nzb(){} +function rzb(){} +function zzb(){} +function Czb(){} +function Ezb(){} +function Gzb(){} +function Izb(){} +function Mzb(){} +function bBb(){} +function NBb(){} +function PBb(){} +function RBb(){} +function iCb(){} +function OCb(){} +function SCb(){} +function GDb(){} +function JDb(){} +function fEb(){} +function xEb(){} +function CEb(){} +function GEb(){} +function yFb(){} +function KGb(){} +function tIb(){} +function vIb(){} +function xIb(){} +function zIb(){} +function OIb(){} +function SIb(){} +function TJb(){} +function VJb(){} +function XJb(){} +function XKb(){} +function fKb(){} +function VKb(){} +function VLb(){} +function jLb(){} +function nLb(){} +function GLb(){} +function KLb(){} +function MLb(){} +function OLb(){} +function RLb(){} +function YLb(){} +function bMb(){} +function gMb(){} +function lMb(){} +function pMb(){} +function wMb(){} +function zMb(){} +function CMb(){} +function FMb(){} +function LMb(){} +function zNb(){} +function PNb(){} +function kOb(){} +function pOb(){} +function tOb(){} +function yOb(){} +function FOb(){} +function GPb(){} +function aQb(){} +function cQb(){} +function eQb(){} +function gQb(){} +function iQb(){} +function CQb(){} +function MQb(){} +function OQb(){} +function ASb(){} +function fTb(){} +function kTb(){} +function STb(){} +function fUb(){} +function DUb(){} +function VUb(){} +function YUb(){} +function _Ub(){} +function _Wb(){} +function QWb(){} +function XWb(){} +function jVb(){} +function DVb(){} +function VVb(){} +function $Vb(){} +function dXb(){} +function hXb(){} +function lXb(){} +function gYb(){} +function HYb(){} +function SYb(){} +function VYb(){} +function dZb(){} +function P$b(){} +function T$b(){} +function h1b(){} +function m1b(){} +function q1b(){} +function u1b(){} +function y1b(){} +function C1b(){} +function e2b(){} +function g2b(){} +function m2b(){} +function q2b(){} +function u2b(){} +function S2b(){} +function U2b(){} +function W2b(){} +function _2b(){} +function e3b(){} +function h3b(){} +function p3b(){} +function t3b(){} +function w3b(){} +function y3b(){} +function A3b(){} +function M3b(){} +function Q3b(){} +function U3b(){} +function Y3b(){} +function l4b(){} +function q4b(){} +function s4b(){} +function u4b(){} +function w4b(){} +function y4b(){} +function L4b(){} +function N4b(){} +function P4b(){} +function R4b(){} +function T4b(){} +function X4b(){} +function I5b(){} +function Q5b(){} +function T5b(){} +function Z5b(){} +function l6b(){} +function o6b(){} +function t6b(){} +function z6b(){} +function L6b(){} +function M6b(){} +function P6b(){} +function X6b(){} +function $6b(){} +function a7b(){} +function c7b(){} +function g7b(){} +function j7b(){} +function m7b(){} +function r7b(){} +function x7b(){} +function D7b(){} +function D9b(){} +function b9b(){} +function h9b(){} +function j9b(){} +function l9b(){} +function w9b(){} +function F9b(){} +function hac(){} +function jac(){} +function pac(){} +function uac(){} +function Iac(){} +function Kac(){} +function Sac(){} +function obc(){} +function rbc(){} +function vbc(){} +function Fbc(){} +function Jbc(){} +function Xbc(){} +function ccc(){} +function fcc(){} +function lcc(){} +function occ(){} +function tcc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ecc(){} +function Gcc(){} +function Zcc(){} +function _cc(){} +function bdc(){} +function fdc(){} +function jdc(){} +function pdc(){} +function sdc(){} +function ydc(){} +function Adc(){} +function Cdc(){} +function Edc(){} +function Idc(){} +function Ndc(){} +function Qdc(){} +function Sdc(){} +function Udc(){} +function Wdc(){} +function Ydc(){} +function aec(){} +function hec(){} +function jec(){} +function lec(){} +function nec(){} +function uec(){} +function wec(){} +function yec(){} +function Aec(){} +function Fec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Rec(){} +function Uec(){} +function Zec(){} +function Zfc(){} +function lfc(){} +function tfc(){} +function xfc(){} +function zfc(){} +function Ffc(){} +function Jfc(){} +function Nfc(){} +function Pfc(){} +function Vfc(){} +function _fc(){} +function fgc(){} +function jgc(){} +function lgc(){} +function Bgc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function khc(){} +function mhc(){} +function ohc(){} +function qhc(){} +function yhc(){} +function Ahc(){} +function Ghc(){} +function Ihc(){} +function Khc(){} +function Mhc(){} +function Shc(){} +function Uhc(){} +function Whc(){} +function dic(){} +function dlc(){} +function blc(){} +function flc(){} +function hlc(){} +function jlc(){} +function Glc(){} +function Ilc(){} +function Klc(){} +function Mlc(){} +function Mjc(){} +function Qjc(){} +function Qlc(){} +function Ulc(){} +function Ylc(){} +function Lkc(){} +function Nkc(){} +function Pkc(){} +function Rkc(){} +function Xkc(){} +function _kc(){} +function gmc(){} +function kmc(){} +function zmc(){} +function Fmc(){} +function Wmc(){} +function $mc(){} +function anc(){} +function mnc(){} +function wnc(){} +function Hnc(){} +function Jnc(){} +function Lnc(){} +function Nnc(){} +function Pnc(){} +function Ync(){} +function eoc(){} +function Aoc(){} +function Coc(){} +function Eoc(){} +function Joc(){} +function Loc(){} +function Zoc(){} +function _oc(){} +function bpc(){} +function hpc(){} +function kpc(){} +function ppc(){} +function pFc(){} +function Ryc(){} +function QCc(){} +function PDc(){} +function xGc(){} +function HGc(){} +function JGc(){} +function NGc(){} +function GIc(){} +function iKc(){} +function mKc(){} +function wKc(){} +function yKc(){} +function AKc(){} +function EKc(){} +function KKc(){} +function OKc(){} +function QKc(){} +function SKc(){} +function UKc(){} +function YKc(){} +function aLc(){} +function fLc(){} +function hLc(){} +function nLc(){} +function pLc(){} +function tLc(){} +function vLc(){} +function zLc(){} +function BLc(){} +function DLc(){} +function FLc(){} +function sMc(){} +function JMc(){} +function hNc(){} +function RNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function fOc(){} +function hOc(){} +function hRc(){} +function jRc(){} +function KRc(){} +function NRc(){} +function NQc(){} +function LQc(){} +function _Qc(){} +function cPc(){} +function iPc(){} +function kPc(){} +function mPc(){} +function xPc(){} +function zPc(){} +function zSc(){} +function BSc(){} +function GSc(){} +function ISc(){} +function NSc(){} +function TSc(){} +function NTc(){} +function NVc(){} +function oVc(){} +function SVc(){} +function VVc(){} +function XVc(){} +function ZVc(){} +function bWc(){} +function bXc(){} +function CXc(){} +function FXc(){} +function IXc(){} +function MXc(){} +function UXc(){} +function bYc(){} +function fYc(){} +function oYc(){} +function qYc(){} +function uYc(){} +function pZc(){} +function G$c(){} +function h0c(){} +function N0c(){} +function k1c(){} +function I1c(){} +function Q1c(){} +function f2c(){} +function i2c(){} +function k2c(){} +function w2c(){} +function O2c(){} +function S2c(){} +function Z2c(){} +function v3c(){} +function x3c(){} +function R3c(){} +function U3c(){} +function e4c(){} +function w4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function _7c(){} +function b5c(){} +function d5c(){} +function f5c(){} +function h5c(){} +function H5c(){} +function Hfd(){} +function Zfd(){} +function Zed(){} +function ged(){} +function Jed(){} +function Ned(){} +function Red(){} +function Ved(){} +function bbd(){} +function mdd(){} +function _fd(){} +function fgd(){} +function kgd(){} +function Mgd(){} +function Ahd(){} +function Ald(){} +function Tld(){} +function xkd(){} +function rmd(){} +function knd(){} +function Jod(){} +function JCd(){} +function Bpd(){} +function BFd(){} +function oFd(){} +function bqd(){} +function bvd(){} +function jvd(){} +function yud(){} +function Hxd(){} +function EBd(){} +function aDd(){} +function MGd(){} +function vHd(){} +function RHd(){} +function wNd(){} +function zNd(){} +function CNd(){} +function KNd(){} +function XNd(){} +function $Nd(){} +function HPd(){} +function lUd(){} +function XUd(){} +function DWd(){} +function GWd(){} +function JWd(){} +function MWd(){} +function PWd(){} +function SWd(){} +function VWd(){} +function YWd(){} +function _Wd(){} +function xYd(){} +function BYd(){} +function mZd(){} +function EZd(){} +function GZd(){} +function JZd(){} +function MZd(){} +function PZd(){} +function SZd(){} +function VZd(){} +function YZd(){} +function _Zd(){} +function c$d(){} +function f$d(){} +function i$d(){} +function l$d(){} +function o$d(){} +function r$d(){} +function u$d(){} +function x$d(){} +function A$d(){} +function D$d(){} +function G$d(){} +function J$d(){} +function M$d(){} +function P$d(){} +function S$d(){} +function V$d(){} +function Y$d(){} +function _$d(){} +function c_d(){} +function f_d(){} +function i_d(){} +function l_d(){} +function o_d(){} +function r_d(){} +function u_d(){} +function x_d(){} +function A_d(){} +function D_d(){} +function G_d(){} +function J_d(){} +function M_d(){} +function P_d(){} +function S_d(){} +function V_d(){} +function Y_d(){} +function h5d(){} +function U6d(){} +function U9d(){} +function _8d(){} +function fae(){} +function hae(){} +function kae(){} +function nae(){} +function qae(){} +function tae(){} +function wae(){} +function zae(){} +function Cae(){} +function Fae(){} +function Iae(){} +function Lae(){} +function Oae(){} +function Rae(){} +function Uae(){} +function Xae(){} +function $ae(){} +function bbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function ude(){} +function Vge(){} +function dhe(){} +function s_b(a){} +function jSd(a){} +function ol(){wb()} +function oPb(){nPb()} +function EPb(){CPb()} +function gFb(){fFb()} +function TRb(){SRb()} +function ySb(){wSb()} +function PSb(){OSb()} +function dTb(){bTb()} +function i4b(){b4b()} +function D2b(){x2b()} +function J6b(){D6b()} +function u9b(){q9b()} +function $9b(){I9b()} +function Umc(){Imc()} +function abc(){Vac()} +function ZCc(){VCc()} +function kCc(){hCc()} +function rCc(){oCc()} +function Tcc(){Occ()} +function xkc(){gkc()} +function xDc(){rDc()} +function iDc(){cDc()} +function kwc(){jwc()} +function tJc(){jJc()} +function dJc(){aJc()} +function Pyc(){Nyc()} +function VBc(){SBc()} +function CFc(){yFc()} +function CUc(){wUc()} +function lUc(){fUc()} +function sUc(){pUc()} +function IUc(){GUc()} +function IWc(){HWc()} +function _Wc(){ZWc()} +function fHc(){dHc()} +function f0c(){d0c()} +function B0c(){A0c()} +function L0c(){J0c()} +function LTc(){JTc()} +function sTc(){rTc()} +function KLc(){ILc()} +function wNc(){tNc()} +function PYc(){OYc()} +function nZc(){lZc()} +function q3c(){p3c()} +function Z7c(){X7c()} +function Z9c(){Y9c()} +function _ad(){Zad()} +function kdd(){idd()} +function $md(){Smd()} +function HGd(){tGd()} +function hLd(){NKd()} +function J6d(){Uge()} +function Mvb(a){uCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function MBb(a,b){a.a=b} +function w_b(a,b){a.a=b} +function x_b(a,b){a.b=b} +function YOb(a,b){a.b=b} +function $Ob(a,b){a.b=b} +function ZGb(a,b){a.j=b} +function qNb(a,b){a.g=b} +function rNb(a,b){a.i=b} +function dRb(a,b){a.c=b} +function eRb(a,b){a.d=b} +function z_b(a,b){a.d=b} +function y_b(a,b){a.c=b} +function __b(a,b){a.k=b} +function E0b(a,b){a.c=b} +function njc(a,b){a.c=b} +function mjc(a,b){a.a=b} +function dFc(a,b){a.a=b} +function eFc(a,b){a.f=b} +function nOc(a,b){a.a=b} +function oOc(a,b){a.b=b} +function pOc(a,b){a.d=b} +function qOc(a,b){a.i=b} +function rOc(a,b){a.o=b} +function sOc(a,b){a.r=b} +function $Pc(a,b){a.a=b} +function _Pc(a,b){a.b=b} +function DVc(a,b){a.e=b} +function EVc(a,b){a.f=b} +function FVc(a,b){a.g=b} +function SZc(a,b){a.e=b} +function TZc(a,b){a.f=b} +function c$c(a,b){a.f=b} +function bJd(a,b){a.n=b} +function A1d(a,b){a.a=b} +function J1d(a,b){a.a=b} +function B1d(a,b){a.c=b} +function K1d(a,b){a.c=b} +function L1d(a,b){a.d=b} +function M1d(a,b){a.e=b} +function N1d(a,b){a.g=b} +function d2d(a,b){a.a=b} +function e2d(a,b){a.c=b} +function f2d(a,b){a.d=b} +function g2d(a,b){a.e=b} +function h2d(a,b){a.f=b} +function i2d(a,b){a.j=b} +function Z8d(a,b){a.a=b} +function $8d(a,b){a.b=b} +function g9d(a,b){a.a=b} +function Cic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function vib(a){this.d=a} +function eib(a){this.a=a} +function Pib(a){this.a=a} +function Vib(a){this.a=a} +function $ib(a){this.a=a} +function mcb(a){this.a=a} +function Mcb(a){this.a=a} +function Xcb(a){this.a=a} +function Ndb(a){this.a=a} +function _db(a){this.a=a} +function teb(a){this.a=a} +function Qeb(a){this.a=a} +function djb(a){this.a=a} +function Gjb(a){this.a=a} +function Njb(a){this.a=a} +function Bjb(a){this.b=a} +function lnb(a){this.b=a} +function Dnb(a){this.b=a} +function anb(a){this.a=a} +function Mob(a){this.a=a} +function Rob(a){this.a=a} +function iob(a){this.c=a} +function olb(a){this.c=a} +function qub(a){this.c=a} +function Tub(a){this.a=a} +function Vub(a){this.a=a} +function Xub(a){this.a=a} +function Zub(a){this.a=a} +function tpb(a){this.a=a} +function _pb(a){this.a=a} +function Wqb(a){this.a=a} +function nsb(a){this.a=a} +function Rxb(a){this.a=a} +function Txb(a){this.a=a} +function Xxb(a){this.a=a} +function bzb(a){this.a=a} +function tzb(a){this.a=a} +function vzb(a){this.a=a} +function xzb(a){this.a=a} +function Kzb(a){this.a=a} +function Ozb(a){this.a=a} +function iAb(a){this.a=a} +function kAb(a){this.a=a} +function mAb(a){this.a=a} +function BAb(a){this.a=a} +function hBb(a){this.a=a} +function jBb(a){this.a=a} +function nBb(a){this.a=a} +function TBb(a){this.a=a} +function XBb(a){this.a=a} +function QCb(a){this.a=a} +function WCb(a){this.a=a} +function _Cb(a){this.a=a} +function dEb(a){this.a=a} +function QGb(a){this.a=a} +function YGb(a){this.a=a} +function tKb(a){this.a=a} +function CLb(a){this.a=a} +function JMb(a){this.a=a} +function RNb(a){this.a=a} +function kQb(a){this.a=a} +function mQb(a){this.a=a} +function FQb(a){this.a=a} +function ETb(a){this.a=a} +function UTb(a){this.a=a} +function dUb(a){this.a=a} +function hUb(a){this.a=a} +function EZb(a){this.a=a} +function j$b(a){this.a=a} +function v$b(a){this.e=a} +function J0b(a){this.a=a} +function M0b(a){this.a=a} +function R0b(a){this.a=a} +function U0b(a){this.a=a} +function i2b(a){this.a=a} +function k2b(a){this.a=a} +function o2b(a){this.a=a} +function s2b(a){this.a=a} +function G2b(a){this.a=a} +function I2b(a){this.a=a} +function K2b(a){this.a=a} +function M2b(a){this.a=a} +function W3b(a){this.a=a} +function $3b(a){this.a=a} +function V4b(a){this.a=a} +function u5b(a){this.a=a} +function A7b(a){this.a=a} +function G7b(a){this.a=a} +function J7b(a){this.a=a} +function M7b(a){this.a=a} +function Mbc(a){this.a=a} +function Pbc(a){this.a=a} +function lac(a){this.a=a} +function nac(a){this.a=a} +function qcc(a){this.a=a} +function Gdc(a){this.a=a} +function $dc(a){this.a=a} +function cec(a){this.a=a} +function _ec(a){this.a=a} +function pfc(a){this.a=a} +function Bfc(a){this.a=a} +function Lfc(a){this.a=a} +function ygc(a){this.a=a} +function Dgc(a){this.a=a} +function shc(a){this.a=a} +function uhc(a){this.a=a} +function whc(a){this.a=a} +function Chc(a){this.a=a} +function Ehc(a){this.a=a} +function Ohc(a){this.a=a} +function Yhc(a){this.a=a} +function Tkc(a){this.a=a} +function Vkc(a){this.a=a} +function Olc(a){this.a=a} +function pnc(a){this.a=a} +function rnc(a){this.a=a} +function dpc(a){this.a=a} +function fpc(a){this.a=a} +function GCc(a){this.a=a} +function KCc(a){this.a=a} +function mDc(a){this.a=a} +function jEc(a){this.a=a} +function HEc(a){this.a=a} +function FEc(a){this.c=a} +function qoc(a){this.b=a} +function bFc(a){this.a=a} +function GFc(a){this.a=a} +function iGc(a){this.a=a} +function kGc(a){this.a=a} +function mGc(a){this.a=a} +function $Gc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function xIc(a){this.a=a} +function zIc(a){this.a=a} +function CIc(a){this.a=a} +function LIc(a){this.a=a} +function CKc(a){this.a=a} +function IKc(a){this.a=a} +function MKc(a){this.a=a} +function $Kc(a){this.a=a} +function cLc(a){this.a=a} +function jLc(a){this.a=a} +function rLc(a){this.a=a} +function xLc(a){this.a=a} +function OMc(a){this.a=a} +function ZOc(a){this.a=a} +function ZRc(a){this.a=a} +function aSc(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function M$c(a){this.a=a} +function O$c(a){this.a=a} +function U$c(a){this.a=a} +function n1c(a){this.a=a} +function z1c(a){this.a=a} +function B1c(a){this.a=a} +function Q2c(a){this.a=a} +function U2c(a){this.a=a} +function z3c(a){this.a=a} +function med(a){this.a=a} +function Xed(a){this.a=a} +function _ed(a){this.a=a} +function Qfd(a){this.a=a} +function Bgd(a){this.a=a} +function $gd(a){this.a=a} +function lrd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function yrd(a){this.a=a} +function zrd(a){this.a=a} +function Ard(a){this.a=a} +function Brd(a){this.a=a} +function Crd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Lrd(a){this.a=a} +function Mrd(a){this.a=a} +function Nrd(a){this.a=a} +function Prd(a){this.a=a} +function Srd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function _rd(a){this.a=a} +function asd(a){this.a=a} +function bsd(a){this.a=a} +function csd(a){this.a=a} +function dsd(a){this.a=a} +function msd(a){this.a=a} +function osd(a){this.a=a} +function qsd(a){this.a=a} +function ssd(a){this.a=a} +function Wsd(a){this.a=a} +function Lsd(a){this.b=a} +function thd(a){this.f=a} +function qtd(a){this.a=a} +function yBd(a){this.a=a} +function GBd(a){this.a=a} +function MBd(a){this.a=a} +function SBd(a){this.a=a} +function iCd(a){this.a=a} +function YMd(a){this.a=a} +function GNd(a){this.a=a} +function EPd(a){this.a=a} +function EQd(a){this.a=a} +function NTd(a){this.a=a} +function qOd(a){this.b=a} +function lVd(a){this.c=a} +function VVd(a){this.e=a} +function iYd(a){this.a=a} +function RYd(a){this.a=a} +function ZYd(a){this.a=a} +function z0d(a){this.a=a} +function O0d(a){this.a=a} +function s0d(a){this.d=a} +function W5d(a){this.a=a} +function cge(a){this.a=a} +function xfe(a){this.e=a} +function Tfd(){this.a=0} +function jkb(){Vjb(this)} +function Rkb(){Ckb(this)} +function Lqb(){Uhb(this)} +function lEb(){kEb(this)} +function A_b(){s_b(this)} +function UQd(){this.c=FQd} +function v6d(a,b){b.Wb(a)} +function moc(a,b){a.b+=b} +function yXb(a){a.b=new Ji} +function vbb(a){return a.e} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function wC(){return null} +function SB(){return null} +function hcb(){mvd();ovd()} +function zJb(a){a.b.tf(a.e)} +function j5b(a,b){a.b=b-a.b} +function g5b(a,b){a.a=b-a.a} +function PXc(a,b){b.ad(a.a)} +function plc(a,b){G0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function gz(){Xy.call(this)} +function xcb(){Xy.call(this)} +function pcb(){gz.call(this)} +function tcb(){gz.call(this)} +function Bdb(){gz.call(this)} +function Vdb(){gz.call(this)} +function Ydb(){gz.call(this)} +function Geb(){gz.call(this)} +function bgb(){gz.call(this)} +function Apb(){gz.call(this)} +function Jpb(){gz.call(this)} +function utb(){gz.call(this)} +function x2c(){gz.call(this)} +function rQd(){this.a=this} +function MPd(){this.Bb|=256} +function tTb(){this.b=new mt} +function fA(){fA=ccb;new Lqb} +function rcb(){pcb.call(this)} +function dCb(a,b){a.length=b} +function Tvb(a,b){Ekb(a.a,b)} +function sKb(a,b){UHb(a.c,b)} +function SMc(a,b){Qqb(a.b,b)} +function vBd(a,b){uAd(a.a,b)} +function wBd(a,b){vAd(a.a,b)} +function GLd(a,b){Uhd(a.e,b)} +function d7d(a){D2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Odb(a){this.a=Tdb(a)} +function Tqb(){this.a=new Lqb} +function gyb(){this.a=new Lqb} +function Wvb(){this.a=new Rkb} +function KFb(){this.a=new Rkb} +function PFb(){this.a=new Rkb} +function FFb(){this.a=new yFb} +function pGb(){this.a=new MFb} +function ZQb(){this.a=new MQb} +function Gxb(){this.a=new Pwb} +function jUb(){this.a=new PTb} +function sDb(){this.a=new oDb} +function zDb(){this.a=new tDb} +function CWb(){this.a=new Rkb} +function HXb(){this.a=new Rkb} +function nYb(){this.a=new Rkb} +function BYb(){this.a=new Rkb} +function fLb(){this.d=new Rkb} +function vYb(){this.a=new Tqb} +function a2b(){this.a=new Lqb} +function wZb(){this.b=new Lqb} +function TCc(){this.b=new Rkb} +function zJc(){this.e=new Rkb} +function uMc(){this.d=new Rkb} +function wdc(){this.a=new xkc} +function vKc(){Rkb.call(this)} +function twb(){Wvb.call(this)} +function oHb(){$Gb.call(this)} +function LXb(){HXb.call(this)} +function L_b(){H_b.call(this)} +function H_b(){A_b.call(this)} +function p0b(){A_b.call(this)} +function s0b(){p0b.call(this)} +function WMc(){VMc.call(this)} +function bNc(){VMc.call(this)} +function EPc(){CPc.call(this)} +function JPc(){CPc.call(this)} +function OPc(){CPc.call(this)} +function w1c(){s1c.call(this)} +function s7c(){Psb.call(this)} +function apd(){Ald.call(this)} +function ppd(){Ald.call(this)} +function lDd(){YCd.call(this)} +function NDd(){YCd.call(this)} +function mFd(){Lqb.call(this)} +function vFd(){Lqb.call(this)} +function GFd(){Lqb.call(this)} +function KPd(){Tqb.call(this)} +function OJd(){hJd.call(this)} +function aQd(){MPd.call(this)} +function SSd(){FId.call(this)} +function rUd(){FId.call(this)} +function oUd(){Lqb.call(this)} +function NYd(){Lqb.call(this)} +function cZd(){Lqb.call(this)} +function R8d(){MGd.call(this)} +function o9d(){MGd.call(this)} +function i9d(){R8d.call(this)} +function hee(){ude.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Zdd(){this.a=new Psb} +function CPc(){this.a=new Tqb} +function s1c(){this.a=new Lqb} +function QSc(){this.a=new Rkb} +function D2c(){this.j=new Rkb} +function QXc(){this.a=new UXc} +function e_c(){this.a=new d_c} +function YCd(){this.a=new aDd} +function _k(){_k=ccb;$k=new al} +function Lk(){Lk=ccb;Kk=new Mk} +function wb(){wb=ccb;vb=new xb} +function hs(){hs=ccb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Ftb(a){Atb();this.a=a} +function zwb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function LVb(a,b){a.a=b;NVb(a)} +function lIb(a,b,c){a.a[b.g]=c} +function vfd(a,b,c){Dfd(c,a,b)} +function Odc(a,b){rjc(b.i,a.n)} +function Wyc(a,b){Xyc(a).td(b)} +function ERb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ocb(a){hz.call(this,a)} +function qcb(a){hz.call(this,a)} +function ucb(a){hz.call(this,a)} +function vcb(a){Yy.call(this,a)} +function fGc(a){LFc();this.a=a} +function c0d(a){kzd();this.a=a} +function bhd(a){Rgd();this.f=a} +function dhd(a){Rgd();this.f=a} +function Cdb(a){hz.call(this,a)} +function Wdb(a){hz.call(this,a)} +function Zdb(a){hz.call(this,a)} +function Feb(a){hz.call(this,a)} +function Heb(a){hz.call(this,a)} +function Ccb(a){return uCb(a),a} +function Edb(a){return uCb(a),a} +function Gdb(a){return uCb(a),a} +function jfb(a){return uCb(a),a} +function tfb(a){return uCb(a),a} +function akb(a){return a.b==a.c} +function Hwb(a){return !!a&&a.b} +function pIb(a){return !!a&&a.k} +function qIb(a){return !!a&&a.j} +function amb(a){uCb(a);this.a=a} +function wVb(a){qVb(a);return a} +function Blb(a){Glb(a,a.length)} +function cgb(a){hz.call(this,a)} +function cqd(a){hz.call(this,a)} +function n8d(a){hz.call(this,a)} +function y2c(a){hz.call(this,a)} +function z2c(a){hz.call(this,a)} +function mde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Kz(){Kz=ccb;Jz=new Nz} +function jz(){jz=ccb;iz=new nb} +function KA(){KA=ccb;JA=new MA} +function OB(){OB=ccb;NB=new PB} +function jc(){throw vbb(new bgb)} +function zh(){throw vbb(new bgb)} +function Pi(){throw vbb(new bgb)} +function Pj(){throw vbb(new bgb)} +function Qj(){throw vbb(new bgb)} +function Ym(){throw vbb(new bgb)} +function Gb(){this.a=GD(Qb(She))} +function oy(a){Ql();this.a=Qb(a)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function iw(a,b){a.a.ec().Mc(b)} +function CYb(a,b,c){a.c.lf(b,c)} +function scb(a){qcb.call(this,a)} +function Oeb(a){Wdb.call(this,a)} +function Hfb(){mcb.call(this,'')} +function Ifb(){mcb.call(this,'')} +function Ufb(){mcb.call(this,'')} +function Vfb(){mcb.call(this,'')} +function Xfb(a){qcb.call(this,a)} +function zob(a){lnb.call(this,a)} +function Yob(a){Inb.call(this,a)} +function Gob(a){zob.call(this,a)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function Az(){Az=ccb;!!(Rz(),Qz)} +function wrb(){wrb=ccb;vrb=yrb()} +function Mtb(a){return a.a?a.b:0} +function Vtb(a){return a.a?a.b:0} +function Lcb(a,b){return a.a-b.a} +function Wcb(a,b){return a.a-b.a} +function Peb(a,b){return a.a-b.a} +function eCb(a,b){return PC(a,b)} +function GC(a,b){return rdb(a,b)} +function _B(b,a){return a in b.a} +function _Db(a,b){a.f=b;return a} +function ZDb(a,b){a.b=b;return a} +function $Db(a,b){a.c=b;return a} +function aEb(a,b){a.g=b;return a} +function HGb(a,b){a.a=b;return a} +function IGb(a,b){a.f=b;return a} +function JGb(a,b){a.k=b;return a} +function dLb(a,b){a.a=b;return a} +function eLb(a,b){a.e=b;return a} +function zVb(a,b){a.e=b;return a} +function AVb(a,b){a.f=b;return a} +function KOb(a,b){a.b=true;a.d=b} +function DHb(a,b){a.b=new g7c(b)} +function uvb(a,b,c){b.td(a.a[c])} +function zvb(a,b,c){b.we(a.a[c])} +function wJc(a,b){return a.b-b.b} +function kOc(a,b){return a.g-b.g} +function WQc(a,b){return a.s-b.s} +function Lic(a,b){return a?0:b-1} +function SFc(a,b){return a?0:b-1} +function RFc(a,b){return a?b-1:0} +function M2c(a,b){return b.Yf(a)} +function M3c(a,b){a.b=b;return a} +function L3c(a,b){a.a=b;return a} +function N3c(a,b){a.c=b;return a} +function O3c(a,b){a.d=b;return a} +function P3c(a,b){a.e=b;return a} +function Q3c(a,b){a.f=b;return a} +function b4c(a,b){a.a=b;return a} +function c4c(a,b){a.b=b;return a} +function d4c(a,b){a.c=b;return a} +function z5c(a,b){a.c=b;return a} +function y5c(a,b){a.b=b;return a} +function A5c(a,b){a.d=b;return a} +function B5c(a,b){a.e=b;return a} +function C5c(a,b){a.f=b;return a} +function D5c(a,b){a.g=b;return a} +function E5c(a,b){a.a=b;return a} +function F5c(a,b){a.i=b;return a} +function G5c(a,b){a.j=b;return a} +function Vdd(a,b){a.k=b;return a} +function Wdd(a,b){a.j=b;return a} +function ykc(a,b){gkc();F0b(b,a)} +function T$c(a,b,c){R$c(a.a,b,c)} +function RGc(a){cEc.call(this,a)} +function iHc(a){cEc.call(this,a)} +function t7c(a){Qsb.call(this,a)} +function aPb(a){_Ob.call(this,a)} +function Ixd(a){zud.call(this,a)} +function dCd(a){ZBd.call(this,a)} +function fCd(a){ZBd.call(this,a)} +function p_b(){q_b.call(this,'')} +function d7c(){this.a=0;this.b=0} +function aPc(){this.b=0;this.a=0} +function NJd(a,b){a.b=0;DId(a,b)} +function X1d(a,b){a.c=b;a.b=true} +function Oc(a,b){return a.c._b(b)} +function gdb(a){return a.e&&a.e()} +function Vd(a){return !a?null:a.d} +function sn(a,b){return Gv(a.b,b)} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function hdb(a){fdb(a);return a.o} +function Fhd(){Fhd=ccb;Ehd=ond()} +function Hhd(){Hhd=ccb;Ghd=Cod()} +function LFd(){LFd=ccb;KFd=qZd()} +function p8d(){p8d=ccb;o8d=Y9d()} +function r8d(){r8d=ccb;q8d=dae()} +function mvd(){mvd=ccb;lvd=n4c()} +function Srb(){throw vbb(new bgb)} +function enb(){throw vbb(new bgb)} +function fnb(){throw vbb(new bgb)} +function gnb(){throw vbb(new bgb)} +function jnb(){throw vbb(new bgb)} +function Cnb(){throw vbb(new bgb)} +function Uqb(a){this.a=new Mqb(a)} +function tgb(a){lgb();ngb(this,a)} +function Hxb(a){this.a=new Qwb(a)} +function _ub(a,b){while(a.ye(b));} +function Sub(a,b){while(a.sd(b));} +function Bfb(a,b){a.a+=b;return a} +function Cfb(a,b){a.a+=b;return a} +function Ffb(a,b){a.a+=b;return a} +function Lfb(a,b){a.a+=b;return a} +function WAb(a){Tzb(a);return a.a} +function Wsb(a){return a.b!=a.d.c} +function pD(a){return a.l|a.m<<22} +function aIc(a,b){return a.d[b.p]} +function h2c(a,b){return c2c(a,b)} +function cCb(a,b,c){a.splice(b,c)} +function WHb(a){a.c?VHb(a):XHb(a)} +function jVc(a){this.a=0;this.b=a} +function ZUc(){this.a=new L2c(K$)} +function tRc(){this.b=new L2c(h$)} +function Q$c(){this.b=new L2c(J_)} +function d_c(){this.b=new L2c(J_)} +function OCd(){throw vbb(new bgb)} +function PCd(){throw vbb(new bgb)} +function QCd(){throw vbb(new bgb)} +function RCd(){throw vbb(new bgb)} +function SCd(){throw vbb(new bgb)} +function TCd(){throw vbb(new bgb)} +function UCd(){throw vbb(new bgb)} +function VCd(){throw vbb(new bgb)} +function WCd(){throw vbb(new bgb)} +function XCd(){throw vbb(new bgb)} +function ahe(){throw vbb(new utb)} +function bhe(){throw vbb(new utb)} +function Rge(a){this.a=new ege(a)} +function ege(a){dge(this,a,Vee())} +function Fhe(a){return !a||Ehe(a)} +function dde(a){return $ce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Ybb(){Wbb==null&&(Wbb=[])} +function ONd(a,b){Rxd(ZKd(a.a),b)} +function TNd(a,b){Rxd(ZKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Zfb(){Zfb=ccb;Yfb=new jcb} +function Emb(){Emb=ccb;Dmb=new Fmb} +function Vhb(a){return a.f.c+a.g.c} +function hnb(a,b){return a.b.Hc(b)} +function inb(a,b){return a.b.Ic(b)} +function knb(a,b){return a.b.Qc(b)} +function Dob(a,b){return a.b.Hc(b)} +function dob(a,b){return a.c.uc(b)} +function Rqb(a,b){return a.a._b(b)} +function fob(a,b){return pb(a.c,b)} +function jt(a,b){return Mhb(a.b,b)} +function Lp(a,b){return a>b&&b0} +function Gbb(a,b){return ybb(a,b)<0} +function Crb(a,b){return a.a.get(b)} +function icb(b,a){return a.split(b)} +function Vrb(a,b){return Mhb(a.e,b)} +function Nvb(a){return uCb(a),false} +function Rub(a){Kub.call(this,a,21)} +function wcb(a,b){Zy.call(this,a,b)} +function mxb(a,b){$r.call(this,a,b)} +function Gyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Dlb(a,a.length,b)} +function Alb(a,b){Flb(a,a.length,b)} +function ABb(a,b,c){b.ud(a.a.Ge(c))} +function uBb(a,b,c){b.we(a.a.Fe(c))} +function GBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function aCb(a,b,c){a.splice(b,0,c)} +function lDb(a,b){return uqb(a.e,b)} +function pjb(a,b){this.d=a;this.e=b} +function kqb(a,b){this.b=a;this.a=b} +function VBb(a,b){this.b=a;this.a=b} +function BEb(a,b){this.b=a;this.a=b} +function sBb(a,b){this.a=a;this.b=b} +function yBb(a,b){this.a=a;this.b=b} +function EBb(a,b){this.a=a;this.b=b} +function KBb(a,b){this.a=a;this.b=b} +function aDb(a,b){this.a=a;this.b=b} +function tMb(a,b){this.b=a;this.a=b} +function oOb(a,b){this.b=a;this.a=b} +function SOb(a,b){$r.call(this,a,b)} +function SMb(a,b){$r.call(this,a,b)} +function NEb(a,b){$r.call(this,a,b)} +function VEb(a,b){$r.call(this,a,b)} +function sFb(a,b){$r.call(this,a,b)} +function hHb(a,b){$r.call(this,a,b)} +function OHb(a,b){$r.call(this,a,b)} +function FIb(a,b){$r.call(this,a,b)} +function wLb(a,b){$r.call(this,a,b)} +function YRb(a,b){$r.call(this,a,b)} +function zTb(a,b){$r.call(this,a,b)} +function rUb(a,b){$r.call(this,a,b)} +function oWb(a,b){$r.call(this,a,b)} +function SXb(a,b){$r.call(this,a,b)} +function k0b(a,b){$r.call(this,a,b)} +function z5b(a,b){$r.call(this,a,b)} +function T8b(a,b){$r.call(this,a,b)} +function ibc(a,b){$r.call(this,a,b)} +function Cec(a,b){this.a=a;this.b=b} +function rfc(a,b){this.a=a;this.b=b} +function Rfc(a,b){this.a=a;this.b=b} +function Tfc(a,b){this.a=a;this.b=b} +function bgc(a,b){this.a=a;this.b=b} +function ngc(a,b){this.a=a;this.b=b} +function Qhc(a,b){this.a=a;this.b=b} +function $hc(a,b){this.a=a;this.b=b} +function Z0b(a,b){this.a=a;this.b=b} +function ZVb(a,b){this.b=a;this.a=b} +function Dfc(a,b){this.b=a;this.a=b} +function dgc(a,b){this.b=a;this.a=b} +function Bmc(a,b){this.b=a;this.a=b} +function cWb(a,b){this.c=a;this.d=b} +function I$b(a,b){this.e=a;this.d=b} +function Unc(a,b){this.a=a;this.b=b} +function Oic(a,b){this.b=b;this.c=a} +function Bjc(a,b){$r.call(this,a,b)} +function Yjc(a,b){$r.call(this,a,b)} +function Gkc(a,b){$r.call(this,a,b)} +function Bpc(a,b){$r.call(this,a,b)} +function Jpc(a,b){$r.call(this,a,b)} +function Tpc(a,b){$r.call(this,a,b)} +function cqc(a,b){$r.call(this,a,b)} +function oqc(a,b){$r.call(this,a,b)} +function yqc(a,b){$r.call(this,a,b)} +function Hqc(a,b){$r.call(this,a,b)} +function Uqc(a,b){$r.call(this,a,b)} +function arc(a,b){$r.call(this,a,b)} +function mrc(a,b){$r.call(this,a,b)} +function zrc(a,b){$r.call(this,a,b)} +function Prc(a,b){$r.call(this,a,b)} +function Yrc(a,b){$r.call(this,a,b)} +function fsc(a,b){$r.call(this,a,b)} +function nsc(a,b){$r.call(this,a,b)} +function nzc(a,b){$r.call(this,a,b)} +function zzc(a,b){$r.call(this,a,b)} +function Kzc(a,b){$r.call(this,a,b)} +function Xzc(a,b){$r.call(this,a,b)} +function Dtc(a,b){$r.call(this,a,b)} +function lAc(a,b){$r.call(this,a,b)} +function uAc(a,b){$r.call(this,a,b)} +function CAc(a,b){$r.call(this,a,b)} +function LAc(a,b){$r.call(this,a,b)} +function UAc(a,b){$r.call(this,a,b)} +function aBc(a,b){$r.call(this,a,b)} +function uBc(a,b){$r.call(this,a,b)} +function DBc(a,b){$r.call(this,a,b)} +function MBc(a,b){$r.call(this,a,b)} +function sGc(a,b){$r.call(this,a,b)} +function VIc(a,b){$r.call(this,a,b)} +function EIc(a,b){this.b=a;this.a=b} +function qKc(a,b){this.a=a;this.b=b} +function GKc(a,b){this.a=a;this.b=b} +function lLc(a,b){this.a=a;this.b=b} +function mMc(a,b){this.a=a;this.b=b} +function fMc(a,b){$r.call(this,a,b)} +function ZLc(a,b){$r.call(this,a,b)} +function ZMc(a,b){this.b=a;this.d=b} +function IOc(a,b){$r.call(this,a,b)} +function GQc(a,b){$r.call(this,a,b)} +function PQc(a,b){this.a=a;this.b=b} +function RQc(a,b){this.a=a;this.b=b} +function ARc(a,b){$r.call(this,a,b)} +function rSc(a,b){$r.call(this,a,b)} +function TTc(a,b){$r.call(this,a,b)} +function _Tc(a,b){$r.call(this,a,b)} +function RUc(a,b){$r.call(this,a,b)} +function uVc(a,b){$r.call(this,a,b)} +function hWc(a,b){$r.call(this,a,b)} +function rWc(a,b){$r.call(this,a,b)} +function kXc(a,b){$r.call(this,a,b)} +function uXc(a,b){$r.call(this,a,b)} +function AYc(a,b){$r.call(this,a,b)} +function l$c(a,b){$r.call(this,a,b)} +function Z$c(a,b){$r.call(this,a,b)} +function D_c(a,b){$r.call(this,a,b)} +function O_c(a,b){$r.call(this,a,b)} +function c1c(a,b){$r.call(this,a,b)} +function cVb(a,b){return uqb(a.c,b)} +function nnc(a,b){return uqb(b.b,a)} +function x1c(a,b){return -a.b.Je(b)} +function D3c(a,b){return uqb(a.g,b)} +function O5c(a,b){$r.call(this,a,b)} +function a6c(a,b){$r.call(this,a,b)} +function m2c(a,b){this.a=a;this.b=b} +function W2c(a,b){this.a=a;this.b=b} +function f7c(a,b){this.a=a;this.b=b} +function G7c(a,b){$r.call(this,a,b)} +function j8c(a,b){$r.call(this,a,b)} +function iad(a,b){$r.call(this,a,b)} +function rad(a,b){$r.call(this,a,b)} +function Bad(a,b){$r.call(this,a,b)} +function Nad(a,b){$r.call(this,a,b)} +function ibd(a,b){$r.call(this,a,b)} +function tbd(a,b){$r.call(this,a,b)} +function Ibd(a,b){$r.call(this,a,b)} +function Ubd(a,b){$r.call(this,a,b)} +function gcd(a,b){$r.call(this,a,b)} +function scd(a,b){$r.call(this,a,b)} +function Ycd(a,b){$r.call(this,a,b)} +function udd(a,b){$r.call(this,a,b)} +function Jdd(a,b){$r.call(this,a,b)} +function Eed(a,b){$r.call(this,a,b)} +function bfd(a,b){this.a=a;this.b=b} +function dfd(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function Kfd(a,b){this.a=a;this.b=b} +function Mfd(a,b){this.a=a;this.b=b} +function Ofd(a,b){this.a=a;this.b=b} +function vgd(a,b){this.a=a;this.b=b} +function qgd(a,b){$r.call(this,a,b)} +function jrd(a,b){this.a=a;this.b=b} +function krd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.a=a;this.b=b} +function qrd(a,b){this.a=a;this.b=b} +function rrd(a,b){this.a=a;this.b=b} +function srd(a,b){this.b=a;this.a=b} +function trd(a,b){this.b=a;this.a=b} +function Drd(a,b){this.b=a;this.a=b} +function Frd(a,b){this.b=a;this.a=b} +function Hrd(a,b){this.a=a;this.b=b} +function Jrd(a,b){this.a=a;this.b=b} +function Ord(a,b){Xqd(a.a,BD(b,56))} +function BIc(a,b){gIc(a.a,BD(b,11))} +function fIc(a,b){FHc();return b!=a} +function Arb(){wrb();return new vrb} +function CMc(){wMc();this.b=new Tqb} +function NNc(){FNc();this.a=new Tqb} +function eCc(){ZBc();aCc.call(this)} +function Dsd(a,b){$r.call(this,a,b)} +function Urd(a,b){this.a=a;this.b=b} +function Wrd(a,b){this.a=a;this.b=b} +function kGd(a,b){this.a=a;this.b=b} +function nGd(a,b){this.a=a;this.b=b} +function bUd(a,b){this.a=a;this.b=b} +function zVd(a,b){this.a=a;this.b=b} +function C1d(a,b){this.d=a;this.b=b} +function MLd(a,b){this.d=a;this.e=b} +function Wud(a,b){this.f=a;this.c=b} +function f7d(a,b){this.b=a;this.c=b} +function _zd(a,b){this.i=a;this.g=b} +function Y1d(a,b){this.e=a;this.a=b} +function c8d(a,b){this.a=a;this.b=b} +function $Id(a,b){a.i=null;_Id(a,b)} +function ivd(a,b){!!a&&Rhb(cvd,a,b)} +function hCd(a,b){return qAd(a.a,b)} +function e7d(a){return R2d(a.c,a.b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Khe} +function LD(a){return typeof a===Lhe} +function ND(a){return typeof a===Mhe} +function Em(a,b){return a.Hd().Xb(b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Bbb(a,b){return ybb(a,b)==0} +function Ebb(a,b){return ybb(a,b)>=0} +function Kbb(a,b){return ybb(a,b)!=0} +function Jdb(a){return ''+(uCb(a),a)} +function pfb(a,b){return a.substr(b)} +function cg(a){ag(a);return a.d.gc()} +function oVb(a){pVb(a,a.c);return a} +function RD(a){CCb(a==null);return a} +function Dfb(a,b){a.a+=''+b;return a} +function Efb(a,b){a.a+=''+b;return a} +function Nfb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function Qfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){return a.a+=''+b,a} +function Esb(a,b){Gsb(a,b,a.a,a.a.a)} +function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} +function Mqd(a,b,c){Rpd(b,kqd(a,c))} +function Nqd(a,b,c){Rpd(b,kqd(a,c))} +function Dhe(a,b){Hhe(new Fyd(a),b)} +function cB(a,b){a.q.setTime(Sbb(b))} +function fvb(a,b){bvb.call(this,a,b)} +function jvb(a,b){bvb.call(this,a,b)} +function nvb(a,b){bvb.call(this,a,b)} +function Nqb(a){Uhb(this);Ld(this,a)} +function wmb(a){tCb(a,0);return null} +function X6c(a){a.a=0;a.b=0;return a} +function f3c(a,b){a.a=b.g+1;return a} +function PJc(a,b){return a.j[b.p]==2} +function _Pb(a){return VPb(BD(a,79))} +function yJb(){yJb=ccb;xJb=as(wJb())} +function Y8b(){Y8b=ccb;X8b=as(W8b())} +function mt(){this.b=new Mqb(Cv(12))} +function Otb(){this.b=0;this.a=false} +function Wtb(){this.b=0;this.a=false} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Nsd(a,b){Msd.call(this,a,b)} +function $zd(a,b){Cyd.call(this,a,b)} +function nNd(a,b){_zd.call(this,a,b)} +function s4d(a,b){p4d.call(this,a,b)} +function w4d(a,b){qRd.call(this,a,b)} +function rEd(a,b){pEd();Rhb(oEd,a,b)} +function lcb(a,b){return qfb(a.a,0,b)} +function ww(a,b){return a.a.a.a.cc(b)} +function mb(a,b){return PD(a)===PD(b)} +function Mdb(a,b){return Kdb(a.a,b.a)} +function $db(a,b){return beb(a.a,b.a)} +function seb(a,b){return ueb(a.a,b.a)} +function hfb(a,b){return a.indexOf(b)} +function Ny(a,b){return a==b?0:a?1:-1} +function kB(a){return a<10?'0'+a:''+a} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Hdb(a){return QD((uCb(a),a))} +function Idb(a){return QD((uCb(a),a))} +function NIb(a,b){return beb(a.g,b.g)} +function Fbb(a){return typeof a===Lhe} +function mWb(a){return a==hWb||a==kWb} +function nWb(a){return a==hWb||a==iWb} +function G1b(a){return Jkb(a.b.b,a,0)} +function lrb(a){this.a=Arb();this.b=a} +function Frb(a){this.a=Arb();this.b=a} +function swb(a,b){Ekb(a.a,b);return b} +function Z1c(a,b){Ekb(a.c,b);return a} +function E2c(a,b){d3c(a.a,b);return a} +function _gc(a,b){Hgc();return b.a+=a} +function bhc(a,b){Hgc();return b.a+=a} +function ahc(a,b){Hgc();return b.c+=a} +function Nlb(a,b){Klb(a,0,a.length,b)} +function zsb(){Wqb.call(this,new $rb)} +function I_b(){B_b.call(this,0,0,0,0)} +function I6c(){J6c.call(this,0,0,0,0)} +function g7c(a){this.a=a.a;this.b=a.b} +function fad(a){return a==aad||a==bad} +function gad(a){return a==dad||a==_9c} +function Jzc(a){return a==Fzc||a==Ezc} +function fcd(a){return a!=bcd&&a!=ccd} +function oid(a){return a.Lg()&&a.Mg()} +function Gfd(a){return Kkd(BD(a,118))} +function k3c(a){return d3c(new j3c,a)} +function y2d(a,b){return new p4d(b,a)} +function z2d(a,b){return new p4d(b,a)} +function ukd(a,b,c){vkd(a,b);wkd(a,c)} +function _kd(a,b,c){cld(a,b);ald(a,c)} +function bld(a,b,c){dld(a,b);eld(a,c)} +function gmd(a,b,c){hmd(a,b);imd(a,c)} +function nmd(a,b,c){omd(a,b);pmd(a,c)} +function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} +function _ud(a){Wud.call(this,a,true)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Ygb(a){Hgb();Zgb.call(this,a)} +function rxb(){mxb.call(this,'Head',1)} +function wxb(){mxb.call(this,'Tail',3)} +function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} +function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} +function MGb(a){Hkb(a.xf(),new QGb(a))} +function xtb(a){return a!=null?tb(a):0} +function b2b(a,b){return ntd(b,mpd(a))} +function c2b(a,b){return ntd(b,mpd(a))} +function dAb(a,b){return a[a.length]=b} +function gAb(a,b){return a[a.length]=b} +function Vq(a){return lr(a.b.Kc(),a.a)} +function dqd(a,b){return _o(qo(a.d),b)} +function eqd(a,b){return _o(qo(a.g),b)} +function fqd(a,b){return _o(qo(a.j),b)} +function Osd(a,b){Msd.call(this,a.b,b)} +function q0b(a){B_b.call(this,a,a,a,a)} +function HOb(a){a.b&&LOb(a);return a.a} +function IOb(a){a.b&&LOb(a);return a.c} +function uyb(a,b){if(lyb){return}a.b=b} +function lzd(a,b,c){NC(a,b,c);return c} +function mBc(a,b,c){NC(a.c[b.g],b.g,c)} +function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} +function wfd(a,b,c){bld(c,c.i+a,c.j+b)} +function UOd(a,b){wtd(VKd(a.a),XOd(b))} +function bTd(a,b){wtd(QSd(a.a),eTd(b))} +function Lge(a){wfe();xfe.call(this,a)} +function CAd(a){return a==null?0:tb(a)} +function fNc(){fNc=ccb;eNc=new Rpb(v1)} +function h0d(){h0d=ccb;new i0d;new Rkb} +function i0d(){new Lqb;new Lqb;new Lqb} +function GA(){GA=ccb;fA();FA=new Lqb} +function Iy(){Iy=ccb;$wnd.Math.log(2)} +function UVd(){UVd=ccb;TVd=(AFd(),zFd)} +function _ge(){throw vbb(new cgb(Cxe))} +function ohe(){throw vbb(new cgb(Cxe))} +function che(){throw vbb(new cgb(Dxe))} +function rhe(){throw vbb(new cgb(Dxe))} +function Mg(a){this.a=a;Gg.call(this,a)} +function up(a){this.a=a;rf.call(this,a)} +function Bp(a){this.a=a;rf.call(this,a)} +function Okb(a,b){Mlb(a.c,a.c.length,b)} +function llb(a){return a.ab?1:0} +function Deb(a,b){return ybb(a,b)>0?a:b} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Ctb(a,b){a.a!=null&&BIc(b,a.a)} +function Csb(a){a.a=new jtb;a.c=new jtb} +function hDb(a){this.b=a;this.a=new Rkb} +function dOb(a){this.b=new pOb;this.a=a} +function q_b(a){n_b.call(this);this.a=a} +function txb(){mxb.call(this,'Range',2)} +function bUb(){ZTb();this.a=new L2c(zP)} +function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} +function fKc(a,b){FJc();return b.n.b+=a} +function Tgc(a,b,c){return Rhb(a.g,c,b)} +function LJc(a,b,c){return Rhb(a.k,c,b)} +function r1c(a,b){return Rhb(a.a,b.a,b)} +function jBc(a,b,c){return hBc(b,c,a.c)} +function E6c(a){return new f7c(a.c,a.d)} +function F6c(a){return new f7c(a.c,a.d)} +function R6c(a){return new f7c(a.a,a.b)} +function CQd(a,b){return hA(a.a,b,null)} +function fec(a){QZb(a,null);RZb(a,null)} +function AOc(a){BOc(a,null);COc(a,null)} +function u4d(){qRd.call(this,null,null)} +function y4d(){RRd.call(this,null,null)} +function a7d(a){this.a=a;Lqb.call(this)} +function Pp(a){this.b=(mmb(),new iob(a))} +function Py(a){a.j=KC(VI,nie,310,0,0,1)} +function oAd(a,b,c){a.c.Vc(b,BD(c,133))} +function GAd(a,b,c){a.c.ji(b,BD(c,133))} +function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} +function b7d(a,b){return t2d(a.c,a.b,b)} +function Bv(a,b){return new Qv(a.Kc(),b)} +function Lq(a,b){return rr(a.Kc(),b)!=-1} +function Sqb(a,b){return a.a.Bc(b)!=null} +function pr(a){return a.Ob()?a.Pb():null} +function yfb(a){return zfb(a,0,a.length)} +function JD(a,b){return a!=null&&AD(a,b)} +function $A(a,b){a.q.setHours(b);YA(a,b)} +function Yrb(a,b){if(a.c){jsb(b);isb(b)}} +function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} +function RJc(a,b,c){SJc(a,b,c);return c} +function Eub(a,b,c){a.a=b^1502;a.b=c^kke} +function xHb(a,b,c){return a.a[b.g][c.g]} +function REc(a,b){return a.a[b.c.p][b.p]} +function aEc(a,b){return a.e[b.c.p][b.p]} +function tEc(a,b){return a.c[b.c.p][b.p]} +function OJc(a,b){return a.j[b.p]=aKc(b)} +function k5c(a,b){return cfb(a.f,b.tg())} +function Isd(a,b){return cfb(a.b,b.tg())} +function Sfd(a,b){return a.a0?b*b/a:b*b*100} +function CRb(a,b){return a>0?b/(a*a):b*100} +function G2c(a,b,c){return Ekb(b,I2c(a,c))} +function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function O6c(a,b,c){a.a+=b;a.b+=c;return a} +function Z6c(a,b,c){a.a*=b;a.b*=c;return a} +function b7c(a,b,c){a.a-=b;a.b-=c;return a} +function a7c(a,b){a.a=b.a;a.b=b.b;return a} +function V6c(a){a.a=-a.a;a.b=-a.b;return a} +function Dic(a){this.c=a;this.a=1;this.b=1} +function xed(a){this.c=a;dld(a,0);eld(a,0)} +function u7c(a){Psb.call(this);n7c(this,a)} +function AXb(a){xXb();yXb(this);this.mf(a)} +function GRd(a,b){nRd();qRd.call(this,a,b)} +function dSd(a,b){LRd();RRd.call(this,a,b)} +function hSd(a,b){LRd();RRd.call(this,a,b)} +function fSd(a,b){LRd();dSd.call(this,a,b)} +function sId(a,b,c){dId.call(this,a,b,c,2)} +function zXd(a,b){UVd();nXd.call(this,a,b)} +function BXd(a,b){UVd();zXd.call(this,a,b)} +function DXd(a,b){UVd();zXd.call(this,a,b)} +function FXd(a,b){UVd();DXd.call(this,a,b)} +function PXd(a,b){UVd();nXd.call(this,a,b)} +function RXd(a,b){UVd();PXd.call(this,a,b)} +function XXd(a,b){UVd();nXd.call(this,a,b)} +function pAd(a,b){return a.c.Fc(BD(b,133))} +function w1d(a,b,c){return V1d(p1d(a,b),c)} +function N2d(a,b,c){return b.Qk(a.e,a.c,c)} +function P2d(a,b,c){return b.Rk(a.e,a.c,c)} +function a3d(a,b){return xid(a.e,BD(b,49))} +function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} +function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} +function ypb(a,b){b.$modCount=a.$modCount} +function MUc(){MUc=ccb;LUc=new Lsd('root')} +function LCd(){LCd=ccb;KCd=new lDd;new NDd} +function KVc(){this.a=new Hp;this.b=new Hp} +function FUd(){hJd.call(this);this.Bb|=Tje} +function t_c(){$r.call(this,'GROW_TREE',0)} +function C9d(a){return a==null?null:cde(a)} +function G9d(a){return a==null?null:jde(a)} +function J9d(a){return a==null?null:fcb(a)} +function K9d(a){return a==null?null:fcb(a)} +function fdb(a){if(a.o!=null){return}vdb(a)} +function DD(a){CCb(a==null||KD(a));return a} +function ED(a){CCb(a==null||LD(a));return a} +function GD(a){CCb(a==null||ND(a));return a} +function gB(a){this.q=new $wnd.Date(Sbb(a))} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function bAb(a,b){Vzb.call(this,a);this.a=b} +function vAb(a,b){Vzb.call(this,a);this.a=b} +function sNb(a){pNb.call(this,0,0);this.f=a} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} +function g4c(a,b){return BD(Wrb(a.b,b),149)} +function i4c(a,b){return BD(Wrb(a.c,b),229)} +function wic(a){return BD(Ikb(a.a,a.b),287)} +function B6c(a){return new f7c(a.c,a.d+a.a)} +function eLc(a){return FJc(),Jzc(BD(a,197))} +function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} +function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} +function qyb(a,b){if(lyb){return}Ekb(a.a,b)} +function F2b(a,b){x2b();return f_b(b.d.i,a)} +function _9b(a,b){I9b();return new gac(b,a)} +function _Hb(a,b){ytb(b,lle);a.f=b;return a} +function Kld(a,b,c){c=_hd(a,b,3,c);return c} +function bmd(a,b,c){c=_hd(a,b,6,c);return c} +function kpd(a,b,c){c=_hd(a,b,9,c);return c} +function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} +function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} +function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function c7d(a,b,c){return C2d(a.c,a.b,b,c)} +function DAd(a,b){return (b&Ohe)%a.d.length} +function Msd(a,b){Lsd.call(this,a);this.a=b} +function uVd(a,b){lVd.call(this,a);this.a=b} +function sYd(a,b){lVd.call(this,a);this.a=b} +function zyd(a,b){this.c=a;zud.call(this,b)} +function YOd(a,b){this.a=a;qOd.call(this,b)} +function fTd(a,b){this.a=a;qOd.call(this,b)} +function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} +function cq(a){this.a=(Xj(a,Jie),new Skb(a))} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function XMb(a){if(a>8){return 0}return a+1} +function Ecb(a,b){Bcb();return a==b?0:a?1:-1} +function Opb(a,b,c){return Npb(a,BD(b,22),c)} +function Bz(a,b,c){return a.apply(b,c);var d} +function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} +function ijb(a,b){var c;c=a.e;a.e=b;return c} +function trb(a,b){var c;c=a[hke];c.call(a,b)} +function urb(a,b){var c;c=a[hke];c.call(a,b)} +function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function Cxb(a,b){return Vd(Dwb(a.a,b,true))} +function _Bb(a,b){return eCb(new Array(b),a)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function gRb(){this.a=new Rkb;this.b=new Rkb} +function iTb(){this.a=new MQb;this.b=new tTb} +function tDb(){this.b=new d7c;this.c=new Rkb} +function _Qb(){this.d=new d7c;this.e=new d7c} +function n_b(){this.n=new d7c;this.o=new d7c} +function $Gb(){this.n=new p0b;this.i=new I6c} +function sec(){this.a=new Umc;this.b=new mnc} +function NIc(){this.a=new Rkb;this.d=new Rkb} +function LDc(){this.b=new Tqb;this.a=new Tqb} +function hSc(){this.b=new Lqb;this.a=new Lqb} +function HRc(){this.b=new tRc;this.a=new hRc} +function aHb(){$Gb.call(this);this.a=new d7c} +function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} +function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} +function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} +function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} +function Tod(a,b,c){c=_hd(a,b,11,c);return c} +function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} +function u7b(a,b){return a.n.a=(uCb(b),b)+10} +function v7b(a,b){return a.n.a=(uCb(b),b)+10} +function dLd(a,b){return b==a||pud(UKd(b),a)} +function PYd(a,b){return Rhb(a.a,b,'')==null} +function E2b(a,b){x2b();return !f_b(b.d.i,a)} +function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} +function h1d(a,b){var c;c=b.Hh(a.a);return c} +function Cyd(a,b){qcb.call(this,gve+a+mue+b)} +function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} +function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} +function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} +function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} +function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function j6d(a,b){return a.Aj().Nh().Kh(a,b)} +function h6d(a,b){return a.Aj().Nh().Ih(a,b)} +function Fdb(a,b){return uCb(a),PD(a)===PD(b)} +function dfb(a,b){return uCb(a),PD(a)===PD(b)} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function Exb(a,b){return Vd(Dwb(a.a,b,false))} +function vBb(a,b){return a.b.sd(new yBb(a,b))} +function BBb(a,b){return a.b.sd(new EBb(a,b))} +function HBb(a,b){return a.b.sd(new KBb(a,b))} +function lfb(a,b,c){return a.lastIndexOf(b,c)} +function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} +function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} +function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} +function emc(a,b){return beb(a.a.d.p,b.a.d.p)} +function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} +function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} +function Vxd(a){return a<100?null:new Ixd(a)} +function ecd(a){return a==Zbd||a==_bd||a==$bd} +function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} +function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} +function ujb(a,b){var c;c=b;return !!Awb(a,c)} +function czd(a,b){this.c=a;Pyd.call(this,a,b)} +function fBb(a){this.c=a;nvb.call(this,rie,0)} +function Avb(a,b){Bvb.call(this,a,a.length,b)} +function aId(a,b,c){return BD(a.c,69).lk(b,c)} +function bId(a,b,c){return BD(a.c,69).mk(b,c)} +function O2d(a,b,c){return N2d(a,BD(b,332),c)} +function Q2d(a,b,c){return P2d(a,BD(b,332),c)} +function i3d(a,b,c){return h3d(a,BD(b,332),c)} +function k3d(a,b,c){return j3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} +function Ldb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(mmb(),new zob(a))} +function dIc(a){FHc();this.d=a;this.a=new jkb} +function xqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.d=a;this.b=c;this.a=b} +function Qsb(a){Csb(this);Osb(this);ye(this,a)} +function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} +function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} +function iyb(a){this.a=a;Zfb();Cbb(Date.now())} +function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} +function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} +function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} +function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} +function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} +function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} +function pxb(a){lxb();return es((zxb(),yxb),a)} +function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} +function OEb(a){MEb();return es((REb(),QEb),a)} +function WEb(a){UEb();return es((ZEb(),YEb),a)} +function tFb(a){rFb();return es((wFb(),vFb),a)} +function iHb(a){gHb();return es((lHb(),kHb),a)} +function PHb(a){NHb();return es((SHb(),RHb),a)} +function GIb(a){EIb();return es((JIb(),IIb),a)} +function vJb(a){qJb();return es((yJb(),xJb),a)} +function xLb(a){vLb();return es((ALb(),zLb),a)} +function TMb(a){RMb();return es((WMb(),VMb),a)} +function TOb(a){ROb();return es((WOb(),VOb),a)} +function ePb(a){cPb();return es((hPb(),gPb),a)} +function ZRb(a){XRb();return es((aSb(),_Rb),a)} +function ATb(a){yTb();return es((DTb(),CTb),a)} +function sUb(a){qUb();return es((vUb(),uUb),a)} +function rWb(a){lWb();return es((uWb(),tWb),a)} +function TXb(a){RXb();return es((WXb(),VXb),a)} +function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} +function l0b(a){j0b();return es((o0b(),n0b),a)} +function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function mKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BZb(a,b,c){this.b=a;this.a=b;this.c=c} +function TNb(a,b,c){this.a=a;this.b=b;this.c=c} +function uOb(a,b,c){this.a=a;this.b=b;this.c=c} +function S3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} +function n9b(a,b,c){this.b=a;this.a=b;this.c=c} +function x$b(a,b,c){this.e=b;this.b=a;this.d=c} +function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} +function LGb(a){var b;b=new KGb;b.e=a;return b} +function iLb(a){var b;b=new fLb;b.b=a;return b} +function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} +function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} +function jbc(a){gbc();return es((mbc(),lbc),a)} +function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} +function Clc(a){Alc();return es((Flc(),Elc),a)} +function Cpc(a){Apc();return es((Fpc(),Epc),a)} +function Kpc(a){Ipc();return es((Npc(),Mpc),a)} +function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} +function $jc(a){Xjc();return es((bkc(),akc),a)} +function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} +function dqc(a){bqc();return es((gqc(),fqc),a)} +function rqc(a){mqc();return es((uqc(),tqc),a)} +function zqc(a){xqc();return es((Cqc(),Bqc),a)} +function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} +function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} +function brc(a){_qc();return es((erc(),drc),a)} +function nrc(a){lrc();return es((qrc(),prc),a)} +function Arc(a){yrc();return es((Drc(),Crc),a)} +function Qrc(a){Orc();return es((Trc(),Src),a)} +function Zrc(a){Xrc();return es((asc(),_rc),a)} +function gsc(a){esc();return es((jsc(),isc),a)} +function osc(a){msc();return es((rsc(),qsc),a)} +function Etc(a){Ctc();return es((Htc(),Gtc),a)} +function qzc(a){lzc();return es((tzc(),szc),a)} +function Azc(a){xzc();return es((Dzc(),Czc),a)} +function Mzc(a){Izc();return es((Pzc(),Ozc),a)} +function MAc(a){KAc();return es((PAc(),OAc),a)} +function mAc(a){kAc();return es((pAc(),oAc),a)} +function vAc(a){tAc();return es((yAc(),xAc),a)} +function DAc(a){BAc();return es((GAc(),FAc),a)} +function VAc(a){TAc();return es((YAc(),XAc),a)} +function $zc(a){Vzc();return es((bAc(),aAc),a)} +function bBc(a){_Ac();return es((eBc(),dBc),a)} +function vBc(a){tBc();return es((yBc(),xBc),a)} +function EBc(a){CBc();return es((HBc(),GBc),a)} +function NBc(a){LBc();return es((QBc(),PBc),a)} +function tGc(a){rGc();return es((wGc(),vGc),a)} +function WIc(a){UIc();return es((ZIc(),YIc),a)} +function $Lc(a){YLc();return es((bMc(),aMc),a)} +function gMc(a){eMc();return es((jMc(),iMc),a)} +function JOc(a){HOc();return es((MOc(),LOc),a)} +function HQc(a){FQc();return es((KQc(),JQc),a)} +function DRc(a){yRc();return es((GRc(),FRc),a)} +function tSc(a){qSc();return es((wSc(),vSc),a)} +function UTc(a){STc();return es((XTc(),WTc),a)} +function UUc(a){PUc();return es((XUc(),WUc),a)} +function aUc(a){$Tc();return es((dUc(),cUc),a)} +function wVc(a){tVc();return es((zVc(),yVc),a)} +function iWc(a){fWc();return es((lWc(),kWc),a)} +function sWc(a){pWc();return es((vWc(),uWc),a)} +function lXc(a){iXc();return es((oXc(),nXc),a)} +function vXc(a){sXc();return es((yXc(),xXc),a)} +function BYc(a){zYc();return es((EYc(),DYc),a)} +function m$c(a){k$c();return es((p$c(),o$c),a)} +function $$c(a){Y$c();return es((b_c(),a_c),a)} +function n_c(a){i_c();return es((q_c(),p_c),a)} +function w_c(a){s_c();return es((z_c(),y_c),a)} +function E_c(a){C_c();return es((H_c(),G_c),a)} +function P_c(a){N_c();return es((S_c(),R_c),a)} +function W0c(a){R0c();return es((Z0c(),Y0c),a)} +function f1c(a){a1c();return es((i1c(),h1c),a)} +function P5c(a){N5c();return es((S5c(),R5c),a)} +function b6c(a){_5c();return es((e6c(),d6c),a)} +function H7c(a){F7c();return es((K7c(),J7c),a)} +function k8c(a){i8c();return es((n8c(),m8c),a)} +function V8b(a){S8b();return es((Y8b(),X8b),a)} +function A5b(a){y5b();return es((D5b(),C5b),a)} +function jad(a){ead();return es((mad(),lad),a)} +function sad(a){qad();return es((vad(),uad),a)} +function Cad(a){Aad();return es((Fad(),Ead),a)} +function Oad(a){Mad();return es((Rad(),Qad),a)} +function jbd(a){hbd();return es((mbd(),lbd),a)} +function ubd(a){rbd();return es((xbd(),wbd),a)} +function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} +function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} +function hcd(a){dcd();return es((kcd(),jcd),a)} +function vcd(a){rcd();return es((ycd(),xcd),a)} +function vdd(a){tdd();return es((ydd(),xdd),a)} +function Kdd(a){Idd();return es((Ndd(),Mdd),a)} +function $cd(a){Ucd();return es((cdd(),bdd),a)} +function Fed(a){Ded();return es((Ied(),Hed),a)} +function rgd(a){pgd();return es((ugd(),tgd),a)} +function Esd(a){Csd();return es((Hsd(),Gsd),a)} +function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} +function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function bPc(a,b){this.c=a;this.a=b;this.b=b-a} +function nYc(a,b,c){this.a=a;this.b=b;this.c=c} +function L1c(a,b,c){this.a=a;this.b=b;this.c=c} +function T1c(a,b,c){this.a=a;this.b=b;this.c=c} +function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} +function zCd(a,b,c){this.a=a;this.b=b;this.c=c} +function IVd(a,b,c){this.e=a;this.a=b;this.c=c} +function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} +function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} +function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} +function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function BD(a,b){CCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Rkb;fr(b,a);return b} +function Ex(a){var b;b=new Tqb;fr(b,a);return b} +function Hx(a){var b;b=new Gxb;Jq(b,a);return b} +function Ru(a){var b;b=new Psb;Jq(b,a);return b} +function YEc(a){!a.e&&(a.e=new Rkb);return a.e} +function SMd(a){!a.c&&(a.c=new xYd);return a.c} +function Ekb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function pzb(){this.a=';,;';this.b='';this.c=''} +function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} +function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} +function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} +function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} +function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} +function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} +function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} +function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} +function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} +function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} +function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} +function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} +function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} +function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} +function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} +function rCb(a,b){if(!a){throw vbb(new ucb(b))}} +function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} +function dWb(a,b,c){cWb.call(this,a,b);this.b=c} +function pMd(a,b,c){MLd.call(this,a,b);this.c=c} +function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} +function _Gd(a){$Gd();MGd.call(this);this.th(a)} +function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function k2d(a,b,c){MLd.call(this,a,b);this.c=c} +function y1d(){T0d();z1d.call(this,(yFd(),xFd))} +function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} +function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} +function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function WUd(a,b){var c;c=a.c;VUd(a,b);return c} +function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} +function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} +function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function vvb(a,b){qvb.call(this,b,1040);this.a=a} +function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} +function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} +function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} +function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} +function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function zfe(a){wfe();++vfe;return new ige(0,a)} +function o_b(a){if(a.a){return a.a}return JZb(a)} +function CCb(a){if(!a){throw vbb(new Cdb(null))}} +function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} +function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} +function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} +function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} +function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} +function Bic(a,b){return a.c=b){throw vbb(new rcb)}} +function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} +function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} +function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} +function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} +function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} +function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} +function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} +function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} +function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} +function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} +function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} +function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} +function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} +function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} +function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} +function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} +function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} +function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} +function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} +function x0d(a){Wud.call(this,a,false);this.a=false} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} +function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} +function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} +function nfb(a,b){return dfb(a.substr(0,b.length),b)} +function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} +function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} +function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} +function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function xJc(a){var b;b=a;while(b.f){b=b.f}return b} +function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} +function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} +function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} +function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} +function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} +function Olb(a,b){return avb(b,a.length),new vvb(a,b)} +function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} +function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} +function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} +function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Flb(a,b,c){var d;for(d=0;d=a.g} +function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} +function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function gCb(a,b){var c;c=console[a];c.call(console,b)} +function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} +function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} +function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} +function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} +function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} +function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} +function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} +function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} +function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} +function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} +function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} +function uCb(a){if(a==null){throw vbb(new Geb)}return a} +function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} +function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} +function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} +function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} +function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} +function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} +function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} +function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} +function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} +function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} +function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} +function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} +function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} +function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} +function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} +function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} +function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} +function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} +function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} +function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} +function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} +function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} +function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} +function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} +function vfb(a){return String.fromCharCode.apply(null,a)} +function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} +function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} +function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} +function ix(a,b){ex();return new gx(new il(a),new Uk(b))} +function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} +function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} +function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} +function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} +function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} +function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} +function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} +function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} +function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} +function JZb(a){var b;b=P2b(a);if(b){return b}return null} +function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} +function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} +function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} +function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} +function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} +function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} +function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} +function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} +function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} +function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} +function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} +function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} +function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} +function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} +function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} +function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} +function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} +function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} +function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} +function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} +function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} +function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} +function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} +function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} +function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} +function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} +function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} +function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} +function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} +function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} +function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} +function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} +function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} +function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} +function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} +function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} +function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} +function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} +function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} +function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} +function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} +function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} +function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} +function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} +function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} +function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} +function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} +function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} +function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} +function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} +function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} +function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} +function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} +function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} +function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} +function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} +function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} +function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} +function ecb(a){function b(){} +;b.prototype=a||{};return new b} +function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} +function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} +function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} +function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} +function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} +function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} +function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} +function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} +function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} +function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} +function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} +function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} +function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} +function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} +function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} +function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} +function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} +function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} +function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} +function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} +function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} +function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} +function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} +function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} +function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} +function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} +function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} +function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} +function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} +function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} +function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} +function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} +function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} +function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} +function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} +function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} +function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} +function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} +function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} +function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} +function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} +function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} +function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} +function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} +function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} +function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} +function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} +function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} +function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} +function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} +function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} +function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} +function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} +function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} +function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} +function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} +function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} +function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} +function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} +function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} +function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} +function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} +function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} +function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} +function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} +function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} +function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} +function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} +function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} +function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} +function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} +function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} +function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} +function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} +function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} +function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} +function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} +function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} +function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} +function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} +function mlb(a){sCb(a.ad?1:0} +function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} +function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} +function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} +function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} +function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} +function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} +function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} +function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} +function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} +function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} +function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} +function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} +function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} +function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} +function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} +function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} +function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} +function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} +function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} +function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} +function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} +function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} +function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} +function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} +function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} +function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} +function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} +function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} +function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} +function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} +function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} +function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} +function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} +function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} +function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} +function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} +function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} +function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} +function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} +function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} +function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} +function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} +function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} +function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} +function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} +function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} +function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} +function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} +function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} +function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} +function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} +function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} +function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} +function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} +function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} +function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} +function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} +function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} +function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} +function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} +function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} +function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} +function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} +function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} +function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} +function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} +function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} +function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} +function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} +function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} +function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} +function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} +function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} +function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} +function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} +function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} +function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} +function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} +function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} +function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} +function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} +function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} +function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} +function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} +function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} +function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} +function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} +function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} +function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} +function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} +function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} +function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} +function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} +function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} +function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} +function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} +function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} +function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} +function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} +function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} +function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} +function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} +function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} +function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} +function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} +function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} +function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} +function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} +function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} +function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} +function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} +function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} +function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} +function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} +function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} +function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} +function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} +function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} +function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} +function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} +function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} +function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} +function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} +function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} +function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} +function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} +function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} +function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} +function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} +function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} +function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} +function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} +function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} +function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} +function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} +function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} +function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} +function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} +function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} +function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} +function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} +function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} +function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} +function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} +function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} +function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} +function ODc(a,b){if(a.pb.p){return -1}return 0} +function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} +function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} +function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} +function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} +function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} +function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} +function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} +function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} +function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} +function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} +function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} +function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} +function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} +function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} +function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} +function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} +function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} +function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} +function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} +function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} +function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} +function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} +function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} +function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} +function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} +function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} +function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} +function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} +function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} +function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} +function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} +function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} +function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} +function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} +function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} +function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} +function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} +function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} +function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} +function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} +function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} +function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} +function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} +function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} +function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} +function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} +function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} +function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} +function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} +function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} +function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} +function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} +function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} +function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} +function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} +function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} +function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} +function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} +function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} +function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} +function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} +function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} +function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} +function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} +function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} +function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} +function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} +function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} +function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} +function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} +function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} +function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} +function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} +function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} +function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} +function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} +function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} +function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} +function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} +function uA(a,b){while(b[0]=0){++b[0]}} +function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} +function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} +function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} +function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} +function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} +function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} +function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} +function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} +function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} +function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} +function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} +function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} +function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} +function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} +function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} +function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} +function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} +function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} +function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} +function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} +function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} +function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} +function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} +function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} +function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} +function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} +function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} +function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} +function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} +function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} +function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} +function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} +function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} +function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} +function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} +function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} +function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} +function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} +function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} +function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} +function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} +function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} +function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} +function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} +function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} +function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} +function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} +function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} +function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} +function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} +function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} +function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} +function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} +function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} +function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} +function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} +function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} +function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} +function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} +function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} +function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} +function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} +function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} +function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} +function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} +function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} +function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} +function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} +function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} +function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} +function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} +function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} +function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} +function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} +function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} +function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} +function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} +function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} +function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} +function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} +function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} +function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} +function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} +function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} +function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} +function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} +function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} +function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} +function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} +function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} +function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} +function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} +function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} +function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} +function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} +function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} +function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} +function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} +function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} +function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} +function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} +function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} +function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} +function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} +function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} +function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} +function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} +function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} +function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} +function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} +function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} +function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} +function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} +function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} +function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} +function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} +function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} +function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} +function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} +function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} +function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} +function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} +function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} +function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} +function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} +function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} +function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} +function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} +function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} +function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} +function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} +function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} +function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} +function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} +function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} +function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} +function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} +function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} +function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} +function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} +function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} +function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} +function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} +function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} +function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} +function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} +function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} +function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} +function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} +function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} +function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} +function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} +function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} +function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} +function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} +function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} +function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} +function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} +function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} +function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} +function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} +function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} +function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} +function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} +function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} +function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} +function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} +function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} +function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} +function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} +function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} +function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} +function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} +function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} +function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} +function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} +function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} +function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} +function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} +function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} +function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} +function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} +function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} +function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} +function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} +function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} +function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} +function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} +function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} +function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} +function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} +function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} +function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} +function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} +function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} +function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} +function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} +function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} +function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} +function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} +function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} +function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} +function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} +function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} +function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} +function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} +function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} +function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} +function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} +function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} +function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} +function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} +function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} +function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} +function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} +function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} +function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} +function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} +function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} +function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} +function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} +function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} +function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} +function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} +function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} +function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} +function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} +function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} +function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} +function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} +function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} +function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} +function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} +function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} +function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} +function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} +function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} +function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} +function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} +function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} +function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} +function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} +function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} +function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} +function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} +function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} +function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} +function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} +function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} +function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} +function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} +function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} +function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} +function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} +function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} +function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} +function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} +function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} +function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} +function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} +function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} +function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} +function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} +function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} +function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} +function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} +function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} +function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} +function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} +function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} +function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} +function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} +function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} +function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} +function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} +function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} +function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} +function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} +function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} +function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} +function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} +function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} +function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} +function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} +function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} +function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} +function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} +function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} +function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} +function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} +function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} +function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} +function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} +function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} +function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} +function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} +function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} +function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} +function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} +function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} +function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} +function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} +function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} +function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} +function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} +function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} +function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} +function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} +function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} +function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} +function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} +function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} +function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} +function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} +function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} +function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} +function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} +function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} +function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} +function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} +function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} +function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} +function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} +function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} +function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} +function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} +function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} +function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} +function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} +function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} +function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} +function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} +function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} +function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} +function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} +function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} +function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} +function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} +function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} +function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} +function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} +function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} +function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} +function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} +function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} +function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} +function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} +function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} +function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} +function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} +function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} +function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} +function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} +function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} +function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} +function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} +function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} +function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} +function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} +function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} +function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} +function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} +function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} +function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} +function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} +function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} +function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} +function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} +function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} +function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} +function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} +function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} +function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} +function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} +function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} +function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} +function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} +function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} +function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} +function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} +function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} +function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} +function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} +function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} +function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} +function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} +function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} +function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} +function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} +function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} +function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} +function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} +function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} +function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} +function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} +function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} +function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} +function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} +function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} +function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} +function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} +function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} +function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} +function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} +function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} +function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} +function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} +function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} +function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} +function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} +function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} +function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} +function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} +function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} +function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} +function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} +function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} +function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} +function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} +function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} +function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} +function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} +function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} +function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} +function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} +function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} +function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} +function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} +function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} +function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} +function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} +function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} +function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} +function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} +function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} +function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} +function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} +function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} +function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} +function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} +function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} +function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} +function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} +function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} +function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} +function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} +function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} +function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} +function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} +function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} +function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} +function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} +function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} +function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} +function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} +function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} +function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} +function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} +function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} +function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} +function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} +function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} +function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} +function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} +function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} +function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} +function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} +function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} +function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} +function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} +function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} +function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} +function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} +function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} +function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} +function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} +function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} +function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} +function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} +function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} +function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} +function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} +function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} +function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} +function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} +function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} +function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} +function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} +function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} +function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} +function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} +function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} +function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} +function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} +function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} +function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} +function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} +function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} +function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} +function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} +function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} +function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} +function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} +function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} +function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} +function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} +function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} +function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} +function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} +function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} +function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} +function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} +function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} +function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} +function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} +function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} +function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} +function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} +function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} +function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} +function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} +function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} +function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} +function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} +function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} +function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} +function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} +function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} +function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} +function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} +function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} +function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} +function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} +function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} +function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} +function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} +function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} +function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} +function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} +function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} +function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} +function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} +function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} +function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} +function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} +function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} +function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} +function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} +function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} +function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} +function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} +function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} +function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} +function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} +function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} +function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} +function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} +function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} +function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} +function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} +function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} +function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} +function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} +function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} +function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} +function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} +function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} +function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} +function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} +function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} +function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} +function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} +function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} +function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} +function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} +function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} +function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} +function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} +function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} +function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} +function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} +function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} +function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} +function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} +function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} +function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} +function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} +function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} +function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} +function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} +function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} +function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} +function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} +function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} +function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} +function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} +function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} +function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} +function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} +function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} +function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} +function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} +function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} +function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} +function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} +function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} +function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} +function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} +function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} +function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} +function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} +function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} +function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} +function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} +function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} +function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} +function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} +function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} +function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} +function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} +function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} +function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} +function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} +function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} +function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} +function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} +function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} +function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} +function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} +function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} +function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} +function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} +function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} +function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} +function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} +function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} +function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} +function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} +function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} +function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} +function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} +function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} +function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} +function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} +function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} +function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} +function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} +function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} +function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} +function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} +function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} +function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} +function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} +function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} +function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} +function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} +function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} +function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} +function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} +function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} +function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} +function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} +function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} +function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} +function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} +function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} +function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} +function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} +function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} +function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} +function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} +function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} +function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} +function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} +function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} +function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} +function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} +function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} +function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} +function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} +function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} +function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} +function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} +function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} +function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} +function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} +function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} +function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} +function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} +function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} +function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} +function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} +function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} +function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} +function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} +function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} +function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} +function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} +function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} +function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} +function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} +function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts new file mode 100644 index 00000000..780a5cfd --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts @@ -0,0 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export * from "./elk-api"; +import ElkConstructor from "./elk-api"; +export default ElkConstructor; diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js b/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js new file mode 100644 index 00000000..5973d0aa --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js @@ -0,0 +1,6444 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +(function (global){(function (){ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function Ylb(){} +function Ymb(){} +function xmb(){} +function Fmb(){} +function Qmb(){} +function gcb(){} +function ccb(){} +function jcb(){} +function jtb(){} +function otb(){} +function qtb(){} +function _fb(){} +function bpb(){} +function kpb(){} +function ppb(){} +function Gpb(){} +function drb(){} +function dzb(){} +function fzb(){} +function fxb(){} +function Vxb(){} +function Ovb(){} +function byb(){} +function zyb(){} +function Zyb(){} +function _yb(){} +function hzb(){} +function jzb(){} +function lzb(){} +function nzb(){} +function rzb(){} +function zzb(){} +function Czb(){} +function Ezb(){} +function Gzb(){} +function Izb(){} +function Mzb(){} +function bBb(){} +function NBb(){} +function PBb(){} +function RBb(){} +function iCb(){} +function OCb(){} +function SCb(){} +function GDb(){} +function JDb(){} +function fEb(){} +function xEb(){} +function CEb(){} +function GEb(){} +function yFb(){} +function KGb(){} +function tIb(){} +function vIb(){} +function xIb(){} +function zIb(){} +function OIb(){} +function SIb(){} +function TJb(){} +function VJb(){} +function XJb(){} +function XKb(){} +function fKb(){} +function VKb(){} +function VLb(){} +function jLb(){} +function nLb(){} +function GLb(){} +function KLb(){} +function MLb(){} +function OLb(){} +function RLb(){} +function YLb(){} +function bMb(){} +function gMb(){} +function lMb(){} +function pMb(){} +function wMb(){} +function zMb(){} +function CMb(){} +function FMb(){} +function LMb(){} +function zNb(){} +function PNb(){} +function kOb(){} +function pOb(){} +function tOb(){} +function yOb(){} +function FOb(){} +function GPb(){} +function aQb(){} +function cQb(){} +function eQb(){} +function gQb(){} +function iQb(){} +function CQb(){} +function MQb(){} +function OQb(){} +function ASb(){} +function fTb(){} +function kTb(){} +function STb(){} +function fUb(){} +function DUb(){} +function VUb(){} +function YUb(){} +function _Ub(){} +function _Wb(){} +function QWb(){} +function XWb(){} +function jVb(){} +function DVb(){} +function VVb(){} +function $Vb(){} +function dXb(){} +function hXb(){} +function lXb(){} +function gYb(){} +function HYb(){} +function SYb(){} +function VYb(){} +function dZb(){} +function P$b(){} +function T$b(){} +function h1b(){} +function m1b(){} +function q1b(){} +function u1b(){} +function y1b(){} +function C1b(){} +function e2b(){} +function g2b(){} +function m2b(){} +function q2b(){} +function u2b(){} +function S2b(){} +function U2b(){} +function W2b(){} +function _2b(){} +function e3b(){} +function h3b(){} +function p3b(){} +function t3b(){} +function w3b(){} +function y3b(){} +function A3b(){} +function M3b(){} +function Q3b(){} +function U3b(){} +function Y3b(){} +function l4b(){} +function q4b(){} +function s4b(){} +function u4b(){} +function w4b(){} +function y4b(){} +function L4b(){} +function N4b(){} +function P4b(){} +function R4b(){} +function T4b(){} +function X4b(){} +function I5b(){} +function Q5b(){} +function T5b(){} +function Z5b(){} +function l6b(){} +function o6b(){} +function t6b(){} +function z6b(){} +function L6b(){} +function M6b(){} +function P6b(){} +function X6b(){} +function $6b(){} +function a7b(){} +function c7b(){} +function g7b(){} +function j7b(){} +function m7b(){} +function r7b(){} +function x7b(){} +function D7b(){} +function D9b(){} +function b9b(){} +function h9b(){} +function j9b(){} +function l9b(){} +function w9b(){} +function F9b(){} +function hac(){} +function jac(){} +function pac(){} +function uac(){} +function Iac(){} +function Kac(){} +function Sac(){} +function obc(){} +function rbc(){} +function vbc(){} +function Fbc(){} +function Jbc(){} +function Xbc(){} +function ccc(){} +function fcc(){} +function lcc(){} +function occ(){} +function tcc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ecc(){} +function Gcc(){} +function Zcc(){} +function _cc(){} +function bdc(){} +function fdc(){} +function jdc(){} +function pdc(){} +function sdc(){} +function ydc(){} +function Adc(){} +function Cdc(){} +function Edc(){} +function Idc(){} +function Ndc(){} +function Qdc(){} +function Sdc(){} +function Udc(){} +function Wdc(){} +function Ydc(){} +function aec(){} +function hec(){} +function jec(){} +function lec(){} +function nec(){} +function uec(){} +function wec(){} +function yec(){} +function Aec(){} +function Fec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Rec(){} +function Uec(){} +function Zec(){} +function Zfc(){} +function lfc(){} +function tfc(){} +function xfc(){} +function zfc(){} +function Ffc(){} +function Jfc(){} +function Nfc(){} +function Pfc(){} +function Vfc(){} +function _fc(){} +function fgc(){} +function jgc(){} +function lgc(){} +function Bgc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function khc(){} +function mhc(){} +function ohc(){} +function qhc(){} +function yhc(){} +function Ahc(){} +function Ghc(){} +function Ihc(){} +function Khc(){} +function Mhc(){} +function Shc(){} +function Uhc(){} +function Whc(){} +function dic(){} +function dlc(){} +function blc(){} +function flc(){} +function hlc(){} +function jlc(){} +function Glc(){} +function Ilc(){} +function Klc(){} +function Mlc(){} +function Mjc(){} +function Qjc(){} +function Qlc(){} +function Ulc(){} +function Ylc(){} +function Lkc(){} +function Nkc(){} +function Pkc(){} +function Rkc(){} +function Xkc(){} +function _kc(){} +function gmc(){} +function kmc(){} +function zmc(){} +function Fmc(){} +function Wmc(){} +function $mc(){} +function anc(){} +function mnc(){} +function wnc(){} +function Hnc(){} +function Jnc(){} +function Lnc(){} +function Nnc(){} +function Pnc(){} +function Ync(){} +function eoc(){} +function Aoc(){} +function Coc(){} +function Eoc(){} +function Joc(){} +function Loc(){} +function Zoc(){} +function _oc(){} +function bpc(){} +function hpc(){} +function kpc(){} +function ppc(){} +function pFc(){} +function Ryc(){} +function QCc(){} +function PDc(){} +function xGc(){} +function HGc(){} +function JGc(){} +function NGc(){} +function GIc(){} +function iKc(){} +function mKc(){} +function wKc(){} +function yKc(){} +function AKc(){} +function EKc(){} +function KKc(){} +function OKc(){} +function QKc(){} +function SKc(){} +function UKc(){} +function YKc(){} +function aLc(){} +function fLc(){} +function hLc(){} +function nLc(){} +function pLc(){} +function tLc(){} +function vLc(){} +function zLc(){} +function BLc(){} +function DLc(){} +function FLc(){} +function sMc(){} +function JMc(){} +function hNc(){} +function RNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function fOc(){} +function hOc(){} +function hRc(){} +function jRc(){} +function KRc(){} +function NRc(){} +function NQc(){} +function LQc(){} +function _Qc(){} +function cPc(){} +function iPc(){} +function kPc(){} +function mPc(){} +function xPc(){} +function zPc(){} +function zSc(){} +function BSc(){} +function GSc(){} +function ISc(){} +function NSc(){} +function TSc(){} +function NTc(){} +function NVc(){} +function oVc(){} +function SVc(){} +function VVc(){} +function XVc(){} +function ZVc(){} +function bWc(){} +function bXc(){} +function CXc(){} +function FXc(){} +function IXc(){} +function MXc(){} +function UXc(){} +function bYc(){} +function fYc(){} +function oYc(){} +function qYc(){} +function uYc(){} +function pZc(){} +function G$c(){} +function h0c(){} +function N0c(){} +function k1c(){} +function I1c(){} +function Q1c(){} +function f2c(){} +function i2c(){} +function k2c(){} +function w2c(){} +function O2c(){} +function S2c(){} +function Z2c(){} +function v3c(){} +function x3c(){} +function R3c(){} +function U3c(){} +function e4c(){} +function w4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function _7c(){} +function b5c(){} +function d5c(){} +function f5c(){} +function h5c(){} +function H5c(){} +function Hfd(){} +function Zfd(){} +function Zed(){} +function ged(){} +function Jed(){} +function Ned(){} +function Red(){} +function Ved(){} +function bbd(){} +function mdd(){} +function _fd(){} +function fgd(){} +function kgd(){} +function Mgd(){} +function Ahd(){} +function Ald(){} +function Tld(){} +function xkd(){} +function rmd(){} +function knd(){} +function Jod(){} +function JCd(){} +function Bpd(){} +function BFd(){} +function oFd(){} +function bqd(){} +function bvd(){} +function jvd(){} +function yud(){} +function Hxd(){} +function EBd(){} +function aDd(){} +function MGd(){} +function vHd(){} +function RHd(){} +function wNd(){} +function zNd(){} +function CNd(){} +function KNd(){} +function XNd(){} +function $Nd(){} +function HPd(){} +function lUd(){} +function XUd(){} +function DWd(){} +function GWd(){} +function JWd(){} +function MWd(){} +function PWd(){} +function SWd(){} +function VWd(){} +function YWd(){} +function _Wd(){} +function xYd(){} +function BYd(){} +function mZd(){} +function EZd(){} +function GZd(){} +function JZd(){} +function MZd(){} +function PZd(){} +function SZd(){} +function VZd(){} +function YZd(){} +function _Zd(){} +function c$d(){} +function f$d(){} +function i$d(){} +function l$d(){} +function o$d(){} +function r$d(){} +function u$d(){} +function x$d(){} +function A$d(){} +function D$d(){} +function G$d(){} +function J$d(){} +function M$d(){} +function P$d(){} +function S$d(){} +function V$d(){} +function Y$d(){} +function _$d(){} +function c_d(){} +function f_d(){} +function i_d(){} +function l_d(){} +function o_d(){} +function r_d(){} +function u_d(){} +function x_d(){} +function A_d(){} +function D_d(){} +function G_d(){} +function J_d(){} +function M_d(){} +function P_d(){} +function S_d(){} +function V_d(){} +function Y_d(){} +function h5d(){} +function U6d(){} +function U9d(){} +function _8d(){} +function fae(){} +function hae(){} +function kae(){} +function nae(){} +function qae(){} +function tae(){} +function wae(){} +function zae(){} +function Cae(){} +function Fae(){} +function Iae(){} +function Lae(){} +function Oae(){} +function Rae(){} +function Uae(){} +function Xae(){} +function $ae(){} +function bbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function ude(){} +function Vge(){} +function dhe(){} +function s_b(a){} +function jSd(a){} +function ol(){wb()} +function oPb(){nPb()} +function EPb(){CPb()} +function gFb(){fFb()} +function TRb(){SRb()} +function ySb(){wSb()} +function PSb(){OSb()} +function dTb(){bTb()} +function i4b(){b4b()} +function D2b(){x2b()} +function J6b(){D6b()} +function u9b(){q9b()} +function $9b(){I9b()} +function Umc(){Imc()} +function abc(){Vac()} +function ZCc(){VCc()} +function kCc(){hCc()} +function rCc(){oCc()} +function Tcc(){Occ()} +function xkc(){gkc()} +function xDc(){rDc()} +function iDc(){cDc()} +function kwc(){jwc()} +function tJc(){jJc()} +function dJc(){aJc()} +function Pyc(){Nyc()} +function VBc(){SBc()} +function CFc(){yFc()} +function CUc(){wUc()} +function lUc(){fUc()} +function sUc(){pUc()} +function IUc(){GUc()} +function IWc(){HWc()} +function _Wc(){ZWc()} +function fHc(){dHc()} +function f0c(){d0c()} +function B0c(){A0c()} +function L0c(){J0c()} +function LTc(){JTc()} +function sTc(){rTc()} +function KLc(){ILc()} +function wNc(){tNc()} +function PYc(){OYc()} +function nZc(){lZc()} +function q3c(){p3c()} +function Z7c(){X7c()} +function Z9c(){Y9c()} +function _ad(){Zad()} +function kdd(){idd()} +function $md(){Smd()} +function HGd(){tGd()} +function hLd(){NKd()} +function J6d(){Uge()} +function Mvb(a){uCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function MBb(a,b){a.a=b} +function w_b(a,b){a.a=b} +function x_b(a,b){a.b=b} +function YOb(a,b){a.b=b} +function $Ob(a,b){a.b=b} +function ZGb(a,b){a.j=b} +function qNb(a,b){a.g=b} +function rNb(a,b){a.i=b} +function dRb(a,b){a.c=b} +function eRb(a,b){a.d=b} +function z_b(a,b){a.d=b} +function y_b(a,b){a.c=b} +function __b(a,b){a.k=b} +function E0b(a,b){a.c=b} +function njc(a,b){a.c=b} +function mjc(a,b){a.a=b} +function dFc(a,b){a.a=b} +function eFc(a,b){a.f=b} +function nOc(a,b){a.a=b} +function oOc(a,b){a.b=b} +function pOc(a,b){a.d=b} +function qOc(a,b){a.i=b} +function rOc(a,b){a.o=b} +function sOc(a,b){a.r=b} +function $Pc(a,b){a.a=b} +function _Pc(a,b){a.b=b} +function DVc(a,b){a.e=b} +function EVc(a,b){a.f=b} +function FVc(a,b){a.g=b} +function SZc(a,b){a.e=b} +function TZc(a,b){a.f=b} +function c$c(a,b){a.f=b} +function bJd(a,b){a.n=b} +function A1d(a,b){a.a=b} +function J1d(a,b){a.a=b} +function B1d(a,b){a.c=b} +function K1d(a,b){a.c=b} +function L1d(a,b){a.d=b} +function M1d(a,b){a.e=b} +function N1d(a,b){a.g=b} +function d2d(a,b){a.a=b} +function e2d(a,b){a.c=b} +function f2d(a,b){a.d=b} +function g2d(a,b){a.e=b} +function h2d(a,b){a.f=b} +function i2d(a,b){a.j=b} +function Z8d(a,b){a.a=b} +function $8d(a,b){a.b=b} +function g9d(a,b){a.a=b} +function Cic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function vib(a){this.d=a} +function eib(a){this.a=a} +function Pib(a){this.a=a} +function Vib(a){this.a=a} +function $ib(a){this.a=a} +function mcb(a){this.a=a} +function Mcb(a){this.a=a} +function Xcb(a){this.a=a} +function Ndb(a){this.a=a} +function _db(a){this.a=a} +function teb(a){this.a=a} +function Qeb(a){this.a=a} +function djb(a){this.a=a} +function Gjb(a){this.a=a} +function Njb(a){this.a=a} +function Bjb(a){this.b=a} +function lnb(a){this.b=a} +function Dnb(a){this.b=a} +function anb(a){this.a=a} +function Mob(a){this.a=a} +function Rob(a){this.a=a} +function iob(a){this.c=a} +function olb(a){this.c=a} +function qub(a){this.c=a} +function Tub(a){this.a=a} +function Vub(a){this.a=a} +function Xub(a){this.a=a} +function Zub(a){this.a=a} +function tpb(a){this.a=a} +function _pb(a){this.a=a} +function Wqb(a){this.a=a} +function nsb(a){this.a=a} +function Rxb(a){this.a=a} +function Txb(a){this.a=a} +function Xxb(a){this.a=a} +function bzb(a){this.a=a} +function tzb(a){this.a=a} +function vzb(a){this.a=a} +function xzb(a){this.a=a} +function Kzb(a){this.a=a} +function Ozb(a){this.a=a} +function iAb(a){this.a=a} +function kAb(a){this.a=a} +function mAb(a){this.a=a} +function BAb(a){this.a=a} +function hBb(a){this.a=a} +function jBb(a){this.a=a} +function nBb(a){this.a=a} +function TBb(a){this.a=a} +function XBb(a){this.a=a} +function QCb(a){this.a=a} +function WCb(a){this.a=a} +function _Cb(a){this.a=a} +function dEb(a){this.a=a} +function QGb(a){this.a=a} +function YGb(a){this.a=a} +function tKb(a){this.a=a} +function CLb(a){this.a=a} +function JMb(a){this.a=a} +function RNb(a){this.a=a} +function kQb(a){this.a=a} +function mQb(a){this.a=a} +function FQb(a){this.a=a} +function ETb(a){this.a=a} +function UTb(a){this.a=a} +function dUb(a){this.a=a} +function hUb(a){this.a=a} +function EZb(a){this.a=a} +function j$b(a){this.a=a} +function v$b(a){this.e=a} +function J0b(a){this.a=a} +function M0b(a){this.a=a} +function R0b(a){this.a=a} +function U0b(a){this.a=a} +function i2b(a){this.a=a} +function k2b(a){this.a=a} +function o2b(a){this.a=a} +function s2b(a){this.a=a} +function G2b(a){this.a=a} +function I2b(a){this.a=a} +function K2b(a){this.a=a} +function M2b(a){this.a=a} +function W3b(a){this.a=a} +function $3b(a){this.a=a} +function V4b(a){this.a=a} +function u5b(a){this.a=a} +function A7b(a){this.a=a} +function G7b(a){this.a=a} +function J7b(a){this.a=a} +function M7b(a){this.a=a} +function Mbc(a){this.a=a} +function Pbc(a){this.a=a} +function lac(a){this.a=a} +function nac(a){this.a=a} +function qcc(a){this.a=a} +function Gdc(a){this.a=a} +function $dc(a){this.a=a} +function cec(a){this.a=a} +function _ec(a){this.a=a} +function pfc(a){this.a=a} +function Bfc(a){this.a=a} +function Lfc(a){this.a=a} +function ygc(a){this.a=a} +function Dgc(a){this.a=a} +function shc(a){this.a=a} +function uhc(a){this.a=a} +function whc(a){this.a=a} +function Chc(a){this.a=a} +function Ehc(a){this.a=a} +function Ohc(a){this.a=a} +function Yhc(a){this.a=a} +function Tkc(a){this.a=a} +function Vkc(a){this.a=a} +function Olc(a){this.a=a} +function pnc(a){this.a=a} +function rnc(a){this.a=a} +function dpc(a){this.a=a} +function fpc(a){this.a=a} +function GCc(a){this.a=a} +function KCc(a){this.a=a} +function mDc(a){this.a=a} +function jEc(a){this.a=a} +function HEc(a){this.a=a} +function FEc(a){this.c=a} +function qoc(a){this.b=a} +function bFc(a){this.a=a} +function GFc(a){this.a=a} +function iGc(a){this.a=a} +function kGc(a){this.a=a} +function mGc(a){this.a=a} +function $Gc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function xIc(a){this.a=a} +function zIc(a){this.a=a} +function CIc(a){this.a=a} +function LIc(a){this.a=a} +function CKc(a){this.a=a} +function IKc(a){this.a=a} +function MKc(a){this.a=a} +function $Kc(a){this.a=a} +function cLc(a){this.a=a} +function jLc(a){this.a=a} +function rLc(a){this.a=a} +function xLc(a){this.a=a} +function OMc(a){this.a=a} +function ZOc(a){this.a=a} +function ZRc(a){this.a=a} +function aSc(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function M$c(a){this.a=a} +function O$c(a){this.a=a} +function U$c(a){this.a=a} +function n1c(a){this.a=a} +function z1c(a){this.a=a} +function B1c(a){this.a=a} +function Q2c(a){this.a=a} +function U2c(a){this.a=a} +function z3c(a){this.a=a} +function med(a){this.a=a} +function Xed(a){this.a=a} +function _ed(a){this.a=a} +function Qfd(a){this.a=a} +function Bgd(a){this.a=a} +function $gd(a){this.a=a} +function lrd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function yrd(a){this.a=a} +function zrd(a){this.a=a} +function Ard(a){this.a=a} +function Brd(a){this.a=a} +function Crd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Lrd(a){this.a=a} +function Mrd(a){this.a=a} +function Nrd(a){this.a=a} +function Prd(a){this.a=a} +function Srd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function _rd(a){this.a=a} +function asd(a){this.a=a} +function bsd(a){this.a=a} +function csd(a){this.a=a} +function dsd(a){this.a=a} +function msd(a){this.a=a} +function osd(a){this.a=a} +function qsd(a){this.a=a} +function ssd(a){this.a=a} +function Wsd(a){this.a=a} +function Lsd(a){this.b=a} +function thd(a){this.f=a} +function qtd(a){this.a=a} +function yBd(a){this.a=a} +function GBd(a){this.a=a} +function MBd(a){this.a=a} +function SBd(a){this.a=a} +function iCd(a){this.a=a} +function YMd(a){this.a=a} +function GNd(a){this.a=a} +function EPd(a){this.a=a} +function EQd(a){this.a=a} +function NTd(a){this.a=a} +function qOd(a){this.b=a} +function lVd(a){this.c=a} +function VVd(a){this.e=a} +function iYd(a){this.a=a} +function RYd(a){this.a=a} +function ZYd(a){this.a=a} +function z0d(a){this.a=a} +function O0d(a){this.a=a} +function s0d(a){this.d=a} +function W5d(a){this.a=a} +function cge(a){this.a=a} +function xfe(a){this.e=a} +function Tfd(){this.a=0} +function jkb(){Vjb(this)} +function Rkb(){Ckb(this)} +function Lqb(){Uhb(this)} +function lEb(){kEb(this)} +function A_b(){s_b(this)} +function UQd(){this.c=FQd} +function v6d(a,b){b.Wb(a)} +function moc(a,b){a.b+=b} +function yXb(a){a.b=new Ji} +function vbb(a){return a.e} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function wC(){return null} +function SB(){return null} +function hcb(){mvd();ovd()} +function zJb(a){a.b.tf(a.e)} +function j5b(a,b){a.b=b-a.b} +function g5b(a,b){a.a=b-a.a} +function PXc(a,b){b.ad(a.a)} +function plc(a,b){G0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function gz(){Xy.call(this)} +function xcb(){Xy.call(this)} +function pcb(){gz.call(this)} +function tcb(){gz.call(this)} +function Bdb(){gz.call(this)} +function Vdb(){gz.call(this)} +function Ydb(){gz.call(this)} +function Geb(){gz.call(this)} +function bgb(){gz.call(this)} +function Apb(){gz.call(this)} +function Jpb(){gz.call(this)} +function utb(){gz.call(this)} +function x2c(){gz.call(this)} +function rQd(){this.a=this} +function MPd(){this.Bb|=256} +function tTb(){this.b=new mt} +function fA(){fA=ccb;new Lqb} +function rcb(){pcb.call(this)} +function dCb(a,b){a.length=b} +function Tvb(a,b){Ekb(a.a,b)} +function sKb(a,b){UHb(a.c,b)} +function SMc(a,b){Qqb(a.b,b)} +function vBd(a,b){uAd(a.a,b)} +function wBd(a,b){vAd(a.a,b)} +function GLd(a,b){Uhd(a.e,b)} +function d7d(a){D2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Odb(a){this.a=Tdb(a)} +function Tqb(){this.a=new Lqb} +function gyb(){this.a=new Lqb} +function Wvb(){this.a=new Rkb} +function KFb(){this.a=new Rkb} +function PFb(){this.a=new Rkb} +function FFb(){this.a=new yFb} +function pGb(){this.a=new MFb} +function ZQb(){this.a=new MQb} +function Gxb(){this.a=new Pwb} +function jUb(){this.a=new PTb} +function sDb(){this.a=new oDb} +function zDb(){this.a=new tDb} +function CWb(){this.a=new Rkb} +function HXb(){this.a=new Rkb} +function nYb(){this.a=new Rkb} +function BYb(){this.a=new Rkb} +function fLb(){this.d=new Rkb} +function vYb(){this.a=new Tqb} +function a2b(){this.a=new Lqb} +function wZb(){this.b=new Lqb} +function TCc(){this.b=new Rkb} +function zJc(){this.e=new Rkb} +function uMc(){this.d=new Rkb} +function wdc(){this.a=new xkc} +function vKc(){Rkb.call(this)} +function twb(){Wvb.call(this)} +function oHb(){$Gb.call(this)} +function LXb(){HXb.call(this)} +function L_b(){H_b.call(this)} +function H_b(){A_b.call(this)} +function p0b(){A_b.call(this)} +function s0b(){p0b.call(this)} +function WMc(){VMc.call(this)} +function bNc(){VMc.call(this)} +function EPc(){CPc.call(this)} +function JPc(){CPc.call(this)} +function OPc(){CPc.call(this)} +function w1c(){s1c.call(this)} +function s7c(){Psb.call(this)} +function apd(){Ald.call(this)} +function ppd(){Ald.call(this)} +function lDd(){YCd.call(this)} +function NDd(){YCd.call(this)} +function mFd(){Lqb.call(this)} +function vFd(){Lqb.call(this)} +function GFd(){Lqb.call(this)} +function KPd(){Tqb.call(this)} +function OJd(){hJd.call(this)} +function aQd(){MPd.call(this)} +function SSd(){FId.call(this)} +function rUd(){FId.call(this)} +function oUd(){Lqb.call(this)} +function NYd(){Lqb.call(this)} +function cZd(){Lqb.call(this)} +function R8d(){MGd.call(this)} +function o9d(){MGd.call(this)} +function i9d(){R8d.call(this)} +function hee(){ude.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Zdd(){this.a=new Psb} +function CPc(){this.a=new Tqb} +function s1c(){this.a=new Lqb} +function QSc(){this.a=new Rkb} +function D2c(){this.j=new Rkb} +function QXc(){this.a=new UXc} +function e_c(){this.a=new d_c} +function YCd(){this.a=new aDd} +function _k(){_k=ccb;$k=new al} +function Lk(){Lk=ccb;Kk=new Mk} +function wb(){wb=ccb;vb=new xb} +function hs(){hs=ccb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Ftb(a){Atb();this.a=a} +function zwb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function LVb(a,b){a.a=b;NVb(a)} +function lIb(a,b,c){a.a[b.g]=c} +function vfd(a,b,c){Dfd(c,a,b)} +function Odc(a,b){rjc(b.i,a.n)} +function Wyc(a,b){Xyc(a).td(b)} +function ERb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ocb(a){hz.call(this,a)} +function qcb(a){hz.call(this,a)} +function ucb(a){hz.call(this,a)} +function vcb(a){Yy.call(this,a)} +function fGc(a){LFc();this.a=a} +function c0d(a){kzd();this.a=a} +function bhd(a){Rgd();this.f=a} +function dhd(a){Rgd();this.f=a} +function Cdb(a){hz.call(this,a)} +function Wdb(a){hz.call(this,a)} +function Zdb(a){hz.call(this,a)} +function Feb(a){hz.call(this,a)} +function Heb(a){hz.call(this,a)} +function Ccb(a){return uCb(a),a} +function Edb(a){return uCb(a),a} +function Gdb(a){return uCb(a),a} +function jfb(a){return uCb(a),a} +function tfb(a){return uCb(a),a} +function akb(a){return a.b==a.c} +function Hwb(a){return !!a&&a.b} +function pIb(a){return !!a&&a.k} +function qIb(a){return !!a&&a.j} +function amb(a){uCb(a);this.a=a} +function wVb(a){qVb(a);return a} +function Blb(a){Glb(a,a.length)} +function cgb(a){hz.call(this,a)} +function cqd(a){hz.call(this,a)} +function n8d(a){hz.call(this,a)} +function y2c(a){hz.call(this,a)} +function z2c(a){hz.call(this,a)} +function mde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Kz(){Kz=ccb;Jz=new Nz} +function jz(){jz=ccb;iz=new nb} +function KA(){KA=ccb;JA=new MA} +function OB(){OB=ccb;NB=new PB} +function jc(){throw vbb(new bgb)} +function zh(){throw vbb(new bgb)} +function Pi(){throw vbb(new bgb)} +function Pj(){throw vbb(new bgb)} +function Qj(){throw vbb(new bgb)} +function Ym(){throw vbb(new bgb)} +function Gb(){this.a=GD(Qb(She))} +function oy(a){Ql();this.a=Qb(a)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function iw(a,b){a.a.ec().Mc(b)} +function CYb(a,b,c){a.c.lf(b,c)} +function scb(a){qcb.call(this,a)} +function Oeb(a){Wdb.call(this,a)} +function Hfb(){mcb.call(this,'')} +function Ifb(){mcb.call(this,'')} +function Ufb(){mcb.call(this,'')} +function Vfb(){mcb.call(this,'')} +function Xfb(a){qcb.call(this,a)} +function zob(a){lnb.call(this,a)} +function Yob(a){Inb.call(this,a)} +function Gob(a){zob.call(this,a)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function Az(){Az=ccb;!!(Rz(),Qz)} +function wrb(){wrb=ccb;vrb=yrb()} +function Mtb(a){return a.a?a.b:0} +function Vtb(a){return a.a?a.b:0} +function Lcb(a,b){return a.a-b.a} +function Wcb(a,b){return a.a-b.a} +function Peb(a,b){return a.a-b.a} +function eCb(a,b){return PC(a,b)} +function GC(a,b){return rdb(a,b)} +function _B(b,a){return a in b.a} +function _Db(a,b){a.f=b;return a} +function ZDb(a,b){a.b=b;return a} +function $Db(a,b){a.c=b;return a} +function aEb(a,b){a.g=b;return a} +function HGb(a,b){a.a=b;return a} +function IGb(a,b){a.f=b;return a} +function JGb(a,b){a.k=b;return a} +function dLb(a,b){a.a=b;return a} +function eLb(a,b){a.e=b;return a} +function zVb(a,b){a.e=b;return a} +function AVb(a,b){a.f=b;return a} +function KOb(a,b){a.b=true;a.d=b} +function DHb(a,b){a.b=new g7c(b)} +function uvb(a,b,c){b.td(a.a[c])} +function zvb(a,b,c){b.we(a.a[c])} +function wJc(a,b){return a.b-b.b} +function kOc(a,b){return a.g-b.g} +function WQc(a,b){return a.s-b.s} +function Lic(a,b){return a?0:b-1} +function SFc(a,b){return a?0:b-1} +function RFc(a,b){return a?b-1:0} +function M2c(a,b){return b.Yf(a)} +function M3c(a,b){a.b=b;return a} +function L3c(a,b){a.a=b;return a} +function N3c(a,b){a.c=b;return a} +function O3c(a,b){a.d=b;return a} +function P3c(a,b){a.e=b;return a} +function Q3c(a,b){a.f=b;return a} +function b4c(a,b){a.a=b;return a} +function c4c(a,b){a.b=b;return a} +function d4c(a,b){a.c=b;return a} +function z5c(a,b){a.c=b;return a} +function y5c(a,b){a.b=b;return a} +function A5c(a,b){a.d=b;return a} +function B5c(a,b){a.e=b;return a} +function C5c(a,b){a.f=b;return a} +function D5c(a,b){a.g=b;return a} +function E5c(a,b){a.a=b;return a} +function F5c(a,b){a.i=b;return a} +function G5c(a,b){a.j=b;return a} +function Vdd(a,b){a.k=b;return a} +function Wdd(a,b){a.j=b;return a} +function ykc(a,b){gkc();F0b(b,a)} +function T$c(a,b,c){R$c(a.a,b,c)} +function RGc(a){cEc.call(this,a)} +function iHc(a){cEc.call(this,a)} +function t7c(a){Qsb.call(this,a)} +function aPb(a){_Ob.call(this,a)} +function Ixd(a){zud.call(this,a)} +function dCd(a){ZBd.call(this,a)} +function fCd(a){ZBd.call(this,a)} +function p_b(){q_b.call(this,'')} +function d7c(){this.a=0;this.b=0} +function aPc(){this.b=0;this.a=0} +function NJd(a,b){a.b=0;DId(a,b)} +function X1d(a,b){a.c=b;a.b=true} +function Oc(a,b){return a.c._b(b)} +function gdb(a){return a.e&&a.e()} +function Vd(a){return !a?null:a.d} +function sn(a,b){return Gv(a.b,b)} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function hdb(a){fdb(a);return a.o} +function Fhd(){Fhd=ccb;Ehd=ond()} +function Hhd(){Hhd=ccb;Ghd=Cod()} +function LFd(){LFd=ccb;KFd=qZd()} +function p8d(){p8d=ccb;o8d=Y9d()} +function r8d(){r8d=ccb;q8d=dae()} +function mvd(){mvd=ccb;lvd=n4c()} +function Srb(){throw vbb(new bgb)} +function enb(){throw vbb(new bgb)} +function fnb(){throw vbb(new bgb)} +function gnb(){throw vbb(new bgb)} +function jnb(){throw vbb(new bgb)} +function Cnb(){throw vbb(new bgb)} +function Uqb(a){this.a=new Mqb(a)} +function tgb(a){lgb();ngb(this,a)} +function Hxb(a){this.a=new Qwb(a)} +function _ub(a,b){while(a.ye(b));} +function Sub(a,b){while(a.sd(b));} +function Bfb(a,b){a.a+=b;return a} +function Cfb(a,b){a.a+=b;return a} +function Ffb(a,b){a.a+=b;return a} +function Lfb(a,b){a.a+=b;return a} +function WAb(a){Tzb(a);return a.a} +function Wsb(a){return a.b!=a.d.c} +function pD(a){return a.l|a.m<<22} +function aIc(a,b){return a.d[b.p]} +function h2c(a,b){return c2c(a,b)} +function cCb(a,b,c){a.splice(b,c)} +function WHb(a){a.c?VHb(a):XHb(a)} +function jVc(a){this.a=0;this.b=a} +function ZUc(){this.a=new L2c(K$)} +function tRc(){this.b=new L2c(h$)} +function Q$c(){this.b=new L2c(J_)} +function d_c(){this.b=new L2c(J_)} +function OCd(){throw vbb(new bgb)} +function PCd(){throw vbb(new bgb)} +function QCd(){throw vbb(new bgb)} +function RCd(){throw vbb(new bgb)} +function SCd(){throw vbb(new bgb)} +function TCd(){throw vbb(new bgb)} +function UCd(){throw vbb(new bgb)} +function VCd(){throw vbb(new bgb)} +function WCd(){throw vbb(new bgb)} +function XCd(){throw vbb(new bgb)} +function ahe(){throw vbb(new utb)} +function bhe(){throw vbb(new utb)} +function Rge(a){this.a=new ege(a)} +function ege(a){dge(this,a,Vee())} +function Fhe(a){return !a||Ehe(a)} +function dde(a){return $ce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Ybb(){Wbb==null&&(Wbb=[])} +function ONd(a,b){Rxd(ZKd(a.a),b)} +function TNd(a,b){Rxd(ZKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Zfb(){Zfb=ccb;Yfb=new jcb} +function Emb(){Emb=ccb;Dmb=new Fmb} +function Vhb(a){return a.f.c+a.g.c} +function hnb(a,b){return a.b.Hc(b)} +function inb(a,b){return a.b.Ic(b)} +function knb(a,b){return a.b.Qc(b)} +function Dob(a,b){return a.b.Hc(b)} +function dob(a,b){return a.c.uc(b)} +function Rqb(a,b){return a.a._b(b)} +function fob(a,b){return pb(a.c,b)} +function jt(a,b){return Mhb(a.b,b)} +function Lp(a,b){return a>b&&b0} +function Gbb(a,b){return ybb(a,b)<0} +function Crb(a,b){return a.a.get(b)} +function icb(b,a){return a.split(b)} +function Vrb(a,b){return Mhb(a.e,b)} +function Nvb(a){return uCb(a),false} +function Rub(a){Kub.call(this,a,21)} +function wcb(a,b){Zy.call(this,a,b)} +function mxb(a,b){$r.call(this,a,b)} +function Gyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Dlb(a,a.length,b)} +function Alb(a,b){Flb(a,a.length,b)} +function ABb(a,b,c){b.ud(a.a.Ge(c))} +function uBb(a,b,c){b.we(a.a.Fe(c))} +function GBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function aCb(a,b,c){a.splice(b,0,c)} +function lDb(a,b){return uqb(a.e,b)} +function pjb(a,b){this.d=a;this.e=b} +function kqb(a,b){this.b=a;this.a=b} +function VBb(a,b){this.b=a;this.a=b} +function BEb(a,b){this.b=a;this.a=b} +function sBb(a,b){this.a=a;this.b=b} +function yBb(a,b){this.a=a;this.b=b} +function EBb(a,b){this.a=a;this.b=b} +function KBb(a,b){this.a=a;this.b=b} +function aDb(a,b){this.a=a;this.b=b} +function tMb(a,b){this.b=a;this.a=b} +function oOb(a,b){this.b=a;this.a=b} +function SOb(a,b){$r.call(this,a,b)} +function SMb(a,b){$r.call(this,a,b)} +function NEb(a,b){$r.call(this,a,b)} +function VEb(a,b){$r.call(this,a,b)} +function sFb(a,b){$r.call(this,a,b)} +function hHb(a,b){$r.call(this,a,b)} +function OHb(a,b){$r.call(this,a,b)} +function FIb(a,b){$r.call(this,a,b)} +function wLb(a,b){$r.call(this,a,b)} +function YRb(a,b){$r.call(this,a,b)} +function zTb(a,b){$r.call(this,a,b)} +function rUb(a,b){$r.call(this,a,b)} +function oWb(a,b){$r.call(this,a,b)} +function SXb(a,b){$r.call(this,a,b)} +function k0b(a,b){$r.call(this,a,b)} +function z5b(a,b){$r.call(this,a,b)} +function T8b(a,b){$r.call(this,a,b)} +function ibc(a,b){$r.call(this,a,b)} +function Cec(a,b){this.a=a;this.b=b} +function rfc(a,b){this.a=a;this.b=b} +function Rfc(a,b){this.a=a;this.b=b} +function Tfc(a,b){this.a=a;this.b=b} +function bgc(a,b){this.a=a;this.b=b} +function ngc(a,b){this.a=a;this.b=b} +function Qhc(a,b){this.a=a;this.b=b} +function $hc(a,b){this.a=a;this.b=b} +function Z0b(a,b){this.a=a;this.b=b} +function ZVb(a,b){this.b=a;this.a=b} +function Dfc(a,b){this.b=a;this.a=b} +function dgc(a,b){this.b=a;this.a=b} +function Bmc(a,b){this.b=a;this.a=b} +function cWb(a,b){this.c=a;this.d=b} +function I$b(a,b){this.e=a;this.d=b} +function Unc(a,b){this.a=a;this.b=b} +function Oic(a,b){this.b=b;this.c=a} +function Bjc(a,b){$r.call(this,a,b)} +function Yjc(a,b){$r.call(this,a,b)} +function Gkc(a,b){$r.call(this,a,b)} +function Bpc(a,b){$r.call(this,a,b)} +function Jpc(a,b){$r.call(this,a,b)} +function Tpc(a,b){$r.call(this,a,b)} +function cqc(a,b){$r.call(this,a,b)} +function oqc(a,b){$r.call(this,a,b)} +function yqc(a,b){$r.call(this,a,b)} +function Hqc(a,b){$r.call(this,a,b)} +function Uqc(a,b){$r.call(this,a,b)} +function arc(a,b){$r.call(this,a,b)} +function mrc(a,b){$r.call(this,a,b)} +function zrc(a,b){$r.call(this,a,b)} +function Prc(a,b){$r.call(this,a,b)} +function Yrc(a,b){$r.call(this,a,b)} +function fsc(a,b){$r.call(this,a,b)} +function nsc(a,b){$r.call(this,a,b)} +function nzc(a,b){$r.call(this,a,b)} +function zzc(a,b){$r.call(this,a,b)} +function Kzc(a,b){$r.call(this,a,b)} +function Xzc(a,b){$r.call(this,a,b)} +function Dtc(a,b){$r.call(this,a,b)} +function lAc(a,b){$r.call(this,a,b)} +function uAc(a,b){$r.call(this,a,b)} +function CAc(a,b){$r.call(this,a,b)} +function LAc(a,b){$r.call(this,a,b)} +function UAc(a,b){$r.call(this,a,b)} +function aBc(a,b){$r.call(this,a,b)} +function uBc(a,b){$r.call(this,a,b)} +function DBc(a,b){$r.call(this,a,b)} +function MBc(a,b){$r.call(this,a,b)} +function sGc(a,b){$r.call(this,a,b)} +function VIc(a,b){$r.call(this,a,b)} +function EIc(a,b){this.b=a;this.a=b} +function qKc(a,b){this.a=a;this.b=b} +function GKc(a,b){this.a=a;this.b=b} +function lLc(a,b){this.a=a;this.b=b} +function mMc(a,b){this.a=a;this.b=b} +function fMc(a,b){$r.call(this,a,b)} +function ZLc(a,b){$r.call(this,a,b)} +function ZMc(a,b){this.b=a;this.d=b} +function IOc(a,b){$r.call(this,a,b)} +function GQc(a,b){$r.call(this,a,b)} +function PQc(a,b){this.a=a;this.b=b} +function RQc(a,b){this.a=a;this.b=b} +function ARc(a,b){$r.call(this,a,b)} +function rSc(a,b){$r.call(this,a,b)} +function TTc(a,b){$r.call(this,a,b)} +function _Tc(a,b){$r.call(this,a,b)} +function RUc(a,b){$r.call(this,a,b)} +function uVc(a,b){$r.call(this,a,b)} +function hWc(a,b){$r.call(this,a,b)} +function rWc(a,b){$r.call(this,a,b)} +function kXc(a,b){$r.call(this,a,b)} +function uXc(a,b){$r.call(this,a,b)} +function AYc(a,b){$r.call(this,a,b)} +function l$c(a,b){$r.call(this,a,b)} +function Z$c(a,b){$r.call(this,a,b)} +function D_c(a,b){$r.call(this,a,b)} +function O_c(a,b){$r.call(this,a,b)} +function c1c(a,b){$r.call(this,a,b)} +function cVb(a,b){return uqb(a.c,b)} +function nnc(a,b){return uqb(b.b,a)} +function x1c(a,b){return -a.b.Je(b)} +function D3c(a,b){return uqb(a.g,b)} +function O5c(a,b){$r.call(this,a,b)} +function a6c(a,b){$r.call(this,a,b)} +function m2c(a,b){this.a=a;this.b=b} +function W2c(a,b){this.a=a;this.b=b} +function f7c(a,b){this.a=a;this.b=b} +function G7c(a,b){$r.call(this,a,b)} +function j8c(a,b){$r.call(this,a,b)} +function iad(a,b){$r.call(this,a,b)} +function rad(a,b){$r.call(this,a,b)} +function Bad(a,b){$r.call(this,a,b)} +function Nad(a,b){$r.call(this,a,b)} +function ibd(a,b){$r.call(this,a,b)} +function tbd(a,b){$r.call(this,a,b)} +function Ibd(a,b){$r.call(this,a,b)} +function Ubd(a,b){$r.call(this,a,b)} +function gcd(a,b){$r.call(this,a,b)} +function scd(a,b){$r.call(this,a,b)} +function Ycd(a,b){$r.call(this,a,b)} +function udd(a,b){$r.call(this,a,b)} +function Jdd(a,b){$r.call(this,a,b)} +function Eed(a,b){$r.call(this,a,b)} +function bfd(a,b){this.a=a;this.b=b} +function dfd(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function Kfd(a,b){this.a=a;this.b=b} +function Mfd(a,b){this.a=a;this.b=b} +function Ofd(a,b){this.a=a;this.b=b} +function vgd(a,b){this.a=a;this.b=b} +function qgd(a,b){$r.call(this,a,b)} +function jrd(a,b){this.a=a;this.b=b} +function krd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.a=a;this.b=b} +function qrd(a,b){this.a=a;this.b=b} +function rrd(a,b){this.a=a;this.b=b} +function srd(a,b){this.b=a;this.a=b} +function trd(a,b){this.b=a;this.a=b} +function Drd(a,b){this.b=a;this.a=b} +function Frd(a,b){this.b=a;this.a=b} +function Hrd(a,b){this.a=a;this.b=b} +function Jrd(a,b){this.a=a;this.b=b} +function Ord(a,b){Xqd(a.a,BD(b,56))} +function BIc(a,b){gIc(a.a,BD(b,11))} +function fIc(a,b){FHc();return b!=a} +function Arb(){wrb();return new vrb} +function CMc(){wMc();this.b=new Tqb} +function NNc(){FNc();this.a=new Tqb} +function eCc(){ZBc();aCc.call(this)} +function Dsd(a,b){$r.call(this,a,b)} +function Urd(a,b){this.a=a;this.b=b} +function Wrd(a,b){this.a=a;this.b=b} +function kGd(a,b){this.a=a;this.b=b} +function nGd(a,b){this.a=a;this.b=b} +function bUd(a,b){this.a=a;this.b=b} +function zVd(a,b){this.a=a;this.b=b} +function C1d(a,b){this.d=a;this.b=b} +function MLd(a,b){this.d=a;this.e=b} +function Wud(a,b){this.f=a;this.c=b} +function f7d(a,b){this.b=a;this.c=b} +function _zd(a,b){this.i=a;this.g=b} +function Y1d(a,b){this.e=a;this.a=b} +function c8d(a,b){this.a=a;this.b=b} +function $Id(a,b){a.i=null;_Id(a,b)} +function ivd(a,b){!!a&&Rhb(cvd,a,b)} +function hCd(a,b){return qAd(a.a,b)} +function e7d(a){return R2d(a.c,a.b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Khe} +function LD(a){return typeof a===Lhe} +function ND(a){return typeof a===Mhe} +function Em(a,b){return a.Hd().Xb(b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Bbb(a,b){return ybb(a,b)==0} +function Ebb(a,b){return ybb(a,b)>=0} +function Kbb(a,b){return ybb(a,b)!=0} +function Jdb(a){return ''+(uCb(a),a)} +function pfb(a,b){return a.substr(b)} +function cg(a){ag(a);return a.d.gc()} +function oVb(a){pVb(a,a.c);return a} +function RD(a){CCb(a==null);return a} +function Dfb(a,b){a.a+=''+b;return a} +function Efb(a,b){a.a+=''+b;return a} +function Nfb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function Qfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){return a.a+=''+b,a} +function Esb(a,b){Gsb(a,b,a.a,a.a.a)} +function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} +function Mqd(a,b,c){Rpd(b,kqd(a,c))} +function Nqd(a,b,c){Rpd(b,kqd(a,c))} +function Dhe(a,b){Hhe(new Fyd(a),b)} +function cB(a,b){a.q.setTime(Sbb(b))} +function fvb(a,b){bvb.call(this,a,b)} +function jvb(a,b){bvb.call(this,a,b)} +function nvb(a,b){bvb.call(this,a,b)} +function Nqb(a){Uhb(this);Ld(this,a)} +function wmb(a){tCb(a,0);return null} +function X6c(a){a.a=0;a.b=0;return a} +function f3c(a,b){a.a=b.g+1;return a} +function PJc(a,b){return a.j[b.p]==2} +function _Pb(a){return VPb(BD(a,79))} +function yJb(){yJb=ccb;xJb=as(wJb())} +function Y8b(){Y8b=ccb;X8b=as(W8b())} +function mt(){this.b=new Mqb(Cv(12))} +function Otb(){this.b=0;this.a=false} +function Wtb(){this.b=0;this.a=false} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Nsd(a,b){Msd.call(this,a,b)} +function $zd(a,b){Cyd.call(this,a,b)} +function nNd(a,b){_zd.call(this,a,b)} +function s4d(a,b){p4d.call(this,a,b)} +function w4d(a,b){qRd.call(this,a,b)} +function rEd(a,b){pEd();Rhb(oEd,a,b)} +function lcb(a,b){return qfb(a.a,0,b)} +function ww(a,b){return a.a.a.a.cc(b)} +function mb(a,b){return PD(a)===PD(b)} +function Mdb(a,b){return Kdb(a.a,b.a)} +function $db(a,b){return beb(a.a,b.a)} +function seb(a,b){return ueb(a.a,b.a)} +function hfb(a,b){return a.indexOf(b)} +function Ny(a,b){return a==b?0:a?1:-1} +function kB(a){return a<10?'0'+a:''+a} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Hdb(a){return QD((uCb(a),a))} +function Idb(a){return QD((uCb(a),a))} +function NIb(a,b){return beb(a.g,b.g)} +function Fbb(a){return typeof a===Lhe} +function mWb(a){return a==hWb||a==kWb} +function nWb(a){return a==hWb||a==iWb} +function G1b(a){return Jkb(a.b.b,a,0)} +function lrb(a){this.a=Arb();this.b=a} +function Frb(a){this.a=Arb();this.b=a} +function swb(a,b){Ekb(a.a,b);return b} +function Z1c(a,b){Ekb(a.c,b);return a} +function E2c(a,b){d3c(a.a,b);return a} +function _gc(a,b){Hgc();return b.a+=a} +function bhc(a,b){Hgc();return b.a+=a} +function ahc(a,b){Hgc();return b.c+=a} +function Nlb(a,b){Klb(a,0,a.length,b)} +function zsb(){Wqb.call(this,new $rb)} +function I_b(){B_b.call(this,0,0,0,0)} +function I6c(){J6c.call(this,0,0,0,0)} +function g7c(a){this.a=a.a;this.b=a.b} +function fad(a){return a==aad||a==bad} +function gad(a){return a==dad||a==_9c} +function Jzc(a){return a==Fzc||a==Ezc} +function fcd(a){return a!=bcd&&a!=ccd} +function oid(a){return a.Lg()&&a.Mg()} +function Gfd(a){return Kkd(BD(a,118))} +function k3c(a){return d3c(new j3c,a)} +function y2d(a,b){return new p4d(b,a)} +function z2d(a,b){return new p4d(b,a)} +function ukd(a,b,c){vkd(a,b);wkd(a,c)} +function _kd(a,b,c){cld(a,b);ald(a,c)} +function bld(a,b,c){dld(a,b);eld(a,c)} +function gmd(a,b,c){hmd(a,b);imd(a,c)} +function nmd(a,b,c){omd(a,b);pmd(a,c)} +function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} +function _ud(a){Wud.call(this,a,true)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Ygb(a){Hgb();Zgb.call(this,a)} +function rxb(){mxb.call(this,'Head',1)} +function wxb(){mxb.call(this,'Tail',3)} +function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} +function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} +function MGb(a){Hkb(a.xf(),new QGb(a))} +function xtb(a){return a!=null?tb(a):0} +function b2b(a,b){return ntd(b,mpd(a))} +function c2b(a,b){return ntd(b,mpd(a))} +function dAb(a,b){return a[a.length]=b} +function gAb(a,b){return a[a.length]=b} +function Vq(a){return lr(a.b.Kc(),a.a)} +function dqd(a,b){return _o(qo(a.d),b)} +function eqd(a,b){return _o(qo(a.g),b)} +function fqd(a,b){return _o(qo(a.j),b)} +function Osd(a,b){Msd.call(this,a.b,b)} +function q0b(a){B_b.call(this,a,a,a,a)} +function HOb(a){a.b&&LOb(a);return a.a} +function IOb(a){a.b&&LOb(a);return a.c} +function uyb(a,b){if(lyb){return}a.b=b} +function lzd(a,b,c){NC(a,b,c);return c} +function mBc(a,b,c){NC(a.c[b.g],b.g,c)} +function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} +function wfd(a,b,c){bld(c,c.i+a,c.j+b)} +function UOd(a,b){wtd(VKd(a.a),XOd(b))} +function bTd(a,b){wtd(QSd(a.a),eTd(b))} +function Lge(a){wfe();xfe.call(this,a)} +function CAd(a){return a==null?0:tb(a)} +function fNc(){fNc=ccb;eNc=new Rpb(v1)} +function h0d(){h0d=ccb;new i0d;new Rkb} +function i0d(){new Lqb;new Lqb;new Lqb} +function GA(){GA=ccb;fA();FA=new Lqb} +function Iy(){Iy=ccb;$wnd.Math.log(2)} +function UVd(){UVd=ccb;TVd=(AFd(),zFd)} +function _ge(){throw vbb(new cgb(Cxe))} +function ohe(){throw vbb(new cgb(Cxe))} +function che(){throw vbb(new cgb(Dxe))} +function rhe(){throw vbb(new cgb(Dxe))} +function Mg(a){this.a=a;Gg.call(this,a)} +function up(a){this.a=a;rf.call(this,a)} +function Bp(a){this.a=a;rf.call(this,a)} +function Okb(a,b){Mlb(a.c,a.c.length,b)} +function llb(a){return a.ab?1:0} +function Deb(a,b){return ybb(a,b)>0?a:b} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Ctb(a,b){a.a!=null&&BIc(b,a.a)} +function Csb(a){a.a=new jtb;a.c=new jtb} +function hDb(a){this.b=a;this.a=new Rkb} +function dOb(a){this.b=new pOb;this.a=a} +function q_b(a){n_b.call(this);this.a=a} +function txb(){mxb.call(this,'Range',2)} +function bUb(){ZTb();this.a=new L2c(zP)} +function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} +function fKc(a,b){FJc();return b.n.b+=a} +function Tgc(a,b,c){return Rhb(a.g,c,b)} +function LJc(a,b,c){return Rhb(a.k,c,b)} +function r1c(a,b){return Rhb(a.a,b.a,b)} +function jBc(a,b,c){return hBc(b,c,a.c)} +function E6c(a){return new f7c(a.c,a.d)} +function F6c(a){return new f7c(a.c,a.d)} +function R6c(a){return new f7c(a.a,a.b)} +function CQd(a,b){return hA(a.a,b,null)} +function fec(a){QZb(a,null);RZb(a,null)} +function AOc(a){BOc(a,null);COc(a,null)} +function u4d(){qRd.call(this,null,null)} +function y4d(){RRd.call(this,null,null)} +function a7d(a){this.a=a;Lqb.call(this)} +function Pp(a){this.b=(mmb(),new iob(a))} +function Py(a){a.j=KC(VI,nie,310,0,0,1)} +function oAd(a,b,c){a.c.Vc(b,BD(c,133))} +function GAd(a,b,c){a.c.ji(b,BD(c,133))} +function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} +function b7d(a,b){return t2d(a.c,a.b,b)} +function Bv(a,b){return new Qv(a.Kc(),b)} +function Lq(a,b){return rr(a.Kc(),b)!=-1} +function Sqb(a,b){return a.a.Bc(b)!=null} +function pr(a){return a.Ob()?a.Pb():null} +function yfb(a){return zfb(a,0,a.length)} +function JD(a,b){return a!=null&&AD(a,b)} +function $A(a,b){a.q.setHours(b);YA(a,b)} +function Yrb(a,b){if(a.c){jsb(b);isb(b)}} +function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} +function RJc(a,b,c){SJc(a,b,c);return c} +function Eub(a,b,c){a.a=b^1502;a.b=c^kke} +function xHb(a,b,c){return a.a[b.g][c.g]} +function REc(a,b){return a.a[b.c.p][b.p]} +function aEc(a,b){return a.e[b.c.p][b.p]} +function tEc(a,b){return a.c[b.c.p][b.p]} +function OJc(a,b){return a.j[b.p]=aKc(b)} +function k5c(a,b){return cfb(a.f,b.tg())} +function Isd(a,b){return cfb(a.b,b.tg())} +function Sfd(a,b){return a.a0?b*b/a:b*b*100} +function CRb(a,b){return a>0?b/(a*a):b*100} +function G2c(a,b,c){return Ekb(b,I2c(a,c))} +function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function O6c(a,b,c){a.a+=b;a.b+=c;return a} +function Z6c(a,b,c){a.a*=b;a.b*=c;return a} +function b7c(a,b,c){a.a-=b;a.b-=c;return a} +function a7c(a,b){a.a=b.a;a.b=b.b;return a} +function V6c(a){a.a=-a.a;a.b=-a.b;return a} +function Dic(a){this.c=a;this.a=1;this.b=1} +function xed(a){this.c=a;dld(a,0);eld(a,0)} +function u7c(a){Psb.call(this);n7c(this,a)} +function AXb(a){xXb();yXb(this);this.mf(a)} +function GRd(a,b){nRd();qRd.call(this,a,b)} +function dSd(a,b){LRd();RRd.call(this,a,b)} +function hSd(a,b){LRd();RRd.call(this,a,b)} +function fSd(a,b){LRd();dSd.call(this,a,b)} +function sId(a,b,c){dId.call(this,a,b,c,2)} +function zXd(a,b){UVd();nXd.call(this,a,b)} +function BXd(a,b){UVd();zXd.call(this,a,b)} +function DXd(a,b){UVd();zXd.call(this,a,b)} +function FXd(a,b){UVd();DXd.call(this,a,b)} +function PXd(a,b){UVd();nXd.call(this,a,b)} +function RXd(a,b){UVd();PXd.call(this,a,b)} +function XXd(a,b){UVd();nXd.call(this,a,b)} +function pAd(a,b){return a.c.Fc(BD(b,133))} +function w1d(a,b,c){return V1d(p1d(a,b),c)} +function N2d(a,b,c){return b.Qk(a.e,a.c,c)} +function P2d(a,b,c){return b.Rk(a.e,a.c,c)} +function a3d(a,b){return xid(a.e,BD(b,49))} +function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} +function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} +function ypb(a,b){b.$modCount=a.$modCount} +function MUc(){MUc=ccb;LUc=new Lsd('root')} +function LCd(){LCd=ccb;KCd=new lDd;new NDd} +function KVc(){this.a=new Hp;this.b=new Hp} +function FUd(){hJd.call(this);this.Bb|=Tje} +function t_c(){$r.call(this,'GROW_TREE',0)} +function C9d(a){return a==null?null:cde(a)} +function G9d(a){return a==null?null:jde(a)} +function J9d(a){return a==null?null:fcb(a)} +function K9d(a){return a==null?null:fcb(a)} +function fdb(a){if(a.o!=null){return}vdb(a)} +function DD(a){CCb(a==null||KD(a));return a} +function ED(a){CCb(a==null||LD(a));return a} +function GD(a){CCb(a==null||ND(a));return a} +function gB(a){this.q=new $wnd.Date(Sbb(a))} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function bAb(a,b){Vzb.call(this,a);this.a=b} +function vAb(a,b){Vzb.call(this,a);this.a=b} +function sNb(a){pNb.call(this,0,0);this.f=a} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} +function g4c(a,b){return BD(Wrb(a.b,b),149)} +function i4c(a,b){return BD(Wrb(a.c,b),229)} +function wic(a){return BD(Ikb(a.a,a.b),287)} +function B6c(a){return new f7c(a.c,a.d+a.a)} +function eLc(a){return FJc(),Jzc(BD(a,197))} +function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} +function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} +function qyb(a,b){if(lyb){return}Ekb(a.a,b)} +function F2b(a,b){x2b();return f_b(b.d.i,a)} +function _9b(a,b){I9b();return new gac(b,a)} +function _Hb(a,b){ytb(b,lle);a.f=b;return a} +function Kld(a,b,c){c=_hd(a,b,3,c);return c} +function bmd(a,b,c){c=_hd(a,b,6,c);return c} +function kpd(a,b,c){c=_hd(a,b,9,c);return c} +function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} +function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} +function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function c7d(a,b,c){return C2d(a.c,a.b,b,c)} +function DAd(a,b){return (b&Ohe)%a.d.length} +function Msd(a,b){Lsd.call(this,a);this.a=b} +function uVd(a,b){lVd.call(this,a);this.a=b} +function sYd(a,b){lVd.call(this,a);this.a=b} +function zyd(a,b){this.c=a;zud.call(this,b)} +function YOd(a,b){this.a=a;qOd.call(this,b)} +function fTd(a,b){this.a=a;qOd.call(this,b)} +function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} +function cq(a){this.a=(Xj(a,Jie),new Skb(a))} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function XMb(a){if(a>8){return 0}return a+1} +function Ecb(a,b){Bcb();return a==b?0:a?1:-1} +function Opb(a,b,c){return Npb(a,BD(b,22),c)} +function Bz(a,b,c){return a.apply(b,c);var d} +function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} +function ijb(a,b){var c;c=a.e;a.e=b;return c} +function trb(a,b){var c;c=a[hke];c.call(a,b)} +function urb(a,b){var c;c=a[hke];c.call(a,b)} +function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function Cxb(a,b){return Vd(Dwb(a.a,b,true))} +function _Bb(a,b){return eCb(new Array(b),a)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function gRb(){this.a=new Rkb;this.b=new Rkb} +function iTb(){this.a=new MQb;this.b=new tTb} +function tDb(){this.b=new d7c;this.c=new Rkb} +function _Qb(){this.d=new d7c;this.e=new d7c} +function n_b(){this.n=new d7c;this.o=new d7c} +function $Gb(){this.n=new p0b;this.i=new I6c} +function sec(){this.a=new Umc;this.b=new mnc} +function NIc(){this.a=new Rkb;this.d=new Rkb} +function LDc(){this.b=new Tqb;this.a=new Tqb} +function hSc(){this.b=new Lqb;this.a=new Lqb} +function HRc(){this.b=new tRc;this.a=new hRc} +function aHb(){$Gb.call(this);this.a=new d7c} +function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} +function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} +function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} +function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} +function Tod(a,b,c){c=_hd(a,b,11,c);return c} +function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} +function u7b(a,b){return a.n.a=(uCb(b),b)+10} +function v7b(a,b){return a.n.a=(uCb(b),b)+10} +function dLd(a,b){return b==a||pud(UKd(b),a)} +function PYd(a,b){return Rhb(a.a,b,'')==null} +function E2b(a,b){x2b();return !f_b(b.d.i,a)} +function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} +function h1d(a,b){var c;c=b.Hh(a.a);return c} +function Cyd(a,b){qcb.call(this,gve+a+mue+b)} +function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} +function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} +function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} +function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} +function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function j6d(a,b){return a.Aj().Nh().Kh(a,b)} +function h6d(a,b){return a.Aj().Nh().Ih(a,b)} +function Fdb(a,b){return uCb(a),PD(a)===PD(b)} +function dfb(a,b){return uCb(a),PD(a)===PD(b)} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function Exb(a,b){return Vd(Dwb(a.a,b,false))} +function vBb(a,b){return a.b.sd(new yBb(a,b))} +function BBb(a,b){return a.b.sd(new EBb(a,b))} +function HBb(a,b){return a.b.sd(new KBb(a,b))} +function lfb(a,b,c){return a.lastIndexOf(b,c)} +function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} +function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} +function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} +function emc(a,b){return beb(a.a.d.p,b.a.d.p)} +function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} +function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} +function Vxd(a){return a<100?null:new Ixd(a)} +function ecd(a){return a==Zbd||a==_bd||a==$bd} +function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} +function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} +function ujb(a,b){var c;c=b;return !!Awb(a,c)} +function czd(a,b){this.c=a;Pyd.call(this,a,b)} +function fBb(a){this.c=a;nvb.call(this,rie,0)} +function Avb(a,b){Bvb.call(this,a,a.length,b)} +function aId(a,b,c){return BD(a.c,69).lk(b,c)} +function bId(a,b,c){return BD(a.c,69).mk(b,c)} +function O2d(a,b,c){return N2d(a,BD(b,332),c)} +function Q2d(a,b,c){return P2d(a,BD(b,332),c)} +function i3d(a,b,c){return h3d(a,BD(b,332),c)} +function k3d(a,b,c){return j3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} +function Ldb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(mmb(),new zob(a))} +function dIc(a){FHc();this.d=a;this.a=new jkb} +function xqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.d=a;this.b=c;this.a=b} +function Qsb(a){Csb(this);Osb(this);ye(this,a)} +function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} +function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} +function iyb(a){this.a=a;Zfb();Cbb(Date.now())} +function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} +function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} +function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} +function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} +function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} +function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} +function pxb(a){lxb();return es((zxb(),yxb),a)} +function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} +function OEb(a){MEb();return es((REb(),QEb),a)} +function WEb(a){UEb();return es((ZEb(),YEb),a)} +function tFb(a){rFb();return es((wFb(),vFb),a)} +function iHb(a){gHb();return es((lHb(),kHb),a)} +function PHb(a){NHb();return es((SHb(),RHb),a)} +function GIb(a){EIb();return es((JIb(),IIb),a)} +function vJb(a){qJb();return es((yJb(),xJb),a)} +function xLb(a){vLb();return es((ALb(),zLb),a)} +function TMb(a){RMb();return es((WMb(),VMb),a)} +function TOb(a){ROb();return es((WOb(),VOb),a)} +function ePb(a){cPb();return es((hPb(),gPb),a)} +function ZRb(a){XRb();return es((aSb(),_Rb),a)} +function ATb(a){yTb();return es((DTb(),CTb),a)} +function sUb(a){qUb();return es((vUb(),uUb),a)} +function rWb(a){lWb();return es((uWb(),tWb),a)} +function TXb(a){RXb();return es((WXb(),VXb),a)} +function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} +function l0b(a){j0b();return es((o0b(),n0b),a)} +function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function mKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BZb(a,b,c){this.b=a;this.a=b;this.c=c} +function TNb(a,b,c){this.a=a;this.b=b;this.c=c} +function uOb(a,b,c){this.a=a;this.b=b;this.c=c} +function S3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} +function n9b(a,b,c){this.b=a;this.a=b;this.c=c} +function x$b(a,b,c){this.e=b;this.b=a;this.d=c} +function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} +function LGb(a){var b;b=new KGb;b.e=a;return b} +function iLb(a){var b;b=new fLb;b.b=a;return b} +function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} +function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} +function jbc(a){gbc();return es((mbc(),lbc),a)} +function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} +function Clc(a){Alc();return es((Flc(),Elc),a)} +function Cpc(a){Apc();return es((Fpc(),Epc),a)} +function Kpc(a){Ipc();return es((Npc(),Mpc),a)} +function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} +function $jc(a){Xjc();return es((bkc(),akc),a)} +function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} +function dqc(a){bqc();return es((gqc(),fqc),a)} +function rqc(a){mqc();return es((uqc(),tqc),a)} +function zqc(a){xqc();return es((Cqc(),Bqc),a)} +function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} +function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} +function brc(a){_qc();return es((erc(),drc),a)} +function nrc(a){lrc();return es((qrc(),prc),a)} +function Arc(a){yrc();return es((Drc(),Crc),a)} +function Qrc(a){Orc();return es((Trc(),Src),a)} +function Zrc(a){Xrc();return es((asc(),_rc),a)} +function gsc(a){esc();return es((jsc(),isc),a)} +function osc(a){msc();return es((rsc(),qsc),a)} +function Etc(a){Ctc();return es((Htc(),Gtc),a)} +function qzc(a){lzc();return es((tzc(),szc),a)} +function Azc(a){xzc();return es((Dzc(),Czc),a)} +function Mzc(a){Izc();return es((Pzc(),Ozc),a)} +function MAc(a){KAc();return es((PAc(),OAc),a)} +function mAc(a){kAc();return es((pAc(),oAc),a)} +function vAc(a){tAc();return es((yAc(),xAc),a)} +function DAc(a){BAc();return es((GAc(),FAc),a)} +function VAc(a){TAc();return es((YAc(),XAc),a)} +function $zc(a){Vzc();return es((bAc(),aAc),a)} +function bBc(a){_Ac();return es((eBc(),dBc),a)} +function vBc(a){tBc();return es((yBc(),xBc),a)} +function EBc(a){CBc();return es((HBc(),GBc),a)} +function NBc(a){LBc();return es((QBc(),PBc),a)} +function tGc(a){rGc();return es((wGc(),vGc),a)} +function WIc(a){UIc();return es((ZIc(),YIc),a)} +function $Lc(a){YLc();return es((bMc(),aMc),a)} +function gMc(a){eMc();return es((jMc(),iMc),a)} +function JOc(a){HOc();return es((MOc(),LOc),a)} +function HQc(a){FQc();return es((KQc(),JQc),a)} +function DRc(a){yRc();return es((GRc(),FRc),a)} +function tSc(a){qSc();return es((wSc(),vSc),a)} +function UTc(a){STc();return es((XTc(),WTc),a)} +function UUc(a){PUc();return es((XUc(),WUc),a)} +function aUc(a){$Tc();return es((dUc(),cUc),a)} +function wVc(a){tVc();return es((zVc(),yVc),a)} +function iWc(a){fWc();return es((lWc(),kWc),a)} +function sWc(a){pWc();return es((vWc(),uWc),a)} +function lXc(a){iXc();return es((oXc(),nXc),a)} +function vXc(a){sXc();return es((yXc(),xXc),a)} +function BYc(a){zYc();return es((EYc(),DYc),a)} +function m$c(a){k$c();return es((p$c(),o$c),a)} +function $$c(a){Y$c();return es((b_c(),a_c),a)} +function n_c(a){i_c();return es((q_c(),p_c),a)} +function w_c(a){s_c();return es((z_c(),y_c),a)} +function E_c(a){C_c();return es((H_c(),G_c),a)} +function P_c(a){N_c();return es((S_c(),R_c),a)} +function W0c(a){R0c();return es((Z0c(),Y0c),a)} +function f1c(a){a1c();return es((i1c(),h1c),a)} +function P5c(a){N5c();return es((S5c(),R5c),a)} +function b6c(a){_5c();return es((e6c(),d6c),a)} +function H7c(a){F7c();return es((K7c(),J7c),a)} +function k8c(a){i8c();return es((n8c(),m8c),a)} +function V8b(a){S8b();return es((Y8b(),X8b),a)} +function A5b(a){y5b();return es((D5b(),C5b),a)} +function jad(a){ead();return es((mad(),lad),a)} +function sad(a){qad();return es((vad(),uad),a)} +function Cad(a){Aad();return es((Fad(),Ead),a)} +function Oad(a){Mad();return es((Rad(),Qad),a)} +function jbd(a){hbd();return es((mbd(),lbd),a)} +function ubd(a){rbd();return es((xbd(),wbd),a)} +function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} +function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} +function hcd(a){dcd();return es((kcd(),jcd),a)} +function vcd(a){rcd();return es((ycd(),xcd),a)} +function vdd(a){tdd();return es((ydd(),xdd),a)} +function Kdd(a){Idd();return es((Ndd(),Mdd),a)} +function $cd(a){Ucd();return es((cdd(),bdd),a)} +function Fed(a){Ded();return es((Ied(),Hed),a)} +function rgd(a){pgd();return es((ugd(),tgd),a)} +function Esd(a){Csd();return es((Hsd(),Gsd),a)} +function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} +function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function bPc(a,b){this.c=a;this.a=b;this.b=b-a} +function nYc(a,b,c){this.a=a;this.b=b;this.c=c} +function L1c(a,b,c){this.a=a;this.b=b;this.c=c} +function T1c(a,b,c){this.a=a;this.b=b;this.c=c} +function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} +function zCd(a,b,c){this.a=a;this.b=b;this.c=c} +function IVd(a,b,c){this.e=a;this.a=b;this.c=c} +function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} +function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} +function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} +function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function BD(a,b){CCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Rkb;fr(b,a);return b} +function Ex(a){var b;b=new Tqb;fr(b,a);return b} +function Hx(a){var b;b=new Gxb;Jq(b,a);return b} +function Ru(a){var b;b=new Psb;Jq(b,a);return b} +function YEc(a){!a.e&&(a.e=new Rkb);return a.e} +function SMd(a){!a.c&&(a.c=new xYd);return a.c} +function Ekb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function pzb(){this.a=';,;';this.b='';this.c=''} +function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} +function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} +function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} +function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} +function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} +function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} +function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} +function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} +function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} +function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} +function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} +function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} +function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} +function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} +function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} +function rCb(a,b){if(!a){throw vbb(new ucb(b))}} +function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} +function dWb(a,b,c){cWb.call(this,a,b);this.b=c} +function pMd(a,b,c){MLd.call(this,a,b);this.c=c} +function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} +function _Gd(a){$Gd();MGd.call(this);this.th(a)} +function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function k2d(a,b,c){MLd.call(this,a,b);this.c=c} +function y1d(){T0d();z1d.call(this,(yFd(),xFd))} +function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} +function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} +function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function WUd(a,b){var c;c=a.c;VUd(a,b);return c} +function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} +function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} +function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function vvb(a,b){qvb.call(this,b,1040);this.a=a} +function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} +function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} +function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} +function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} +function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function zfe(a){wfe();++vfe;return new ige(0,a)} +function o_b(a){if(a.a){return a.a}return JZb(a)} +function CCb(a){if(!a){throw vbb(new Cdb(null))}} +function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} +function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} +function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} +function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} +function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} +function Bic(a,b){return a.c=b){throw vbb(new rcb)}} +function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} +function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} +function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} +function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} +function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} +function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} +function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} +function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} +function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} +function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} +function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} +function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} +function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} +function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} +function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} +function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} +function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} +function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} +function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} +function x0d(a){Wud.call(this,a,false);this.a=false} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} +function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} +function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} +function nfb(a,b){return dfb(a.substr(0,b.length),b)} +function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} +function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} +function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} +function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function xJc(a){var b;b=a;while(b.f){b=b.f}return b} +function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} +function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} +function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} +function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} +function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} +function Olb(a,b){return avb(b,a.length),new vvb(a,b)} +function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} +function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} +function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} +function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Flb(a,b,c){var d;for(d=0;d=a.g} +function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} +function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function gCb(a,b){var c;c=console[a];c.call(console,b)} +function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} +function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} +function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} +function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} +function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} +function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} +function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} +function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} +function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} +function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} +function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} +function uCb(a){if(a==null){throw vbb(new Geb)}return a} +function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} +function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} +function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} +function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} +function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} +function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} +function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} +function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} +function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} +function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} +function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} +function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} +function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} +function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} +function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} +function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} +function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} +function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} +function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} +function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} +function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} +function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} +function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} +function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} +function vfb(a){return String.fromCharCode.apply(null,a)} +function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} +function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} +function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} +function ix(a,b){ex();return new gx(new il(a),new Uk(b))} +function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} +function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} +function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} +function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} +function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} +function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} +function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} +function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} +function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} +function JZb(a){var b;b=P2b(a);if(b){return b}return null} +function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} +function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} +function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} +function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} +function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} +function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} +function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} +function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} +function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} +function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} +function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} +function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} +function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} +function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} +function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} +function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} +function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} +function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} +function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} +function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} +function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} +function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} +function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} +function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} +function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} +function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} +function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} +function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} +function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} +function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} +function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} +function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} +function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} +function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} +function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} +function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} +function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} +function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} +function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} +function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} +function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} +function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} +function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} +function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} +function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} +function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} +function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} +function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} +function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} +function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} +function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} +function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} +function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} +function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} +function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} +function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} +function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} +function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} +function ecb(a){function b(){} +;b.prototype=a||{};return new b} +function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} +function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} +function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} +function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} +function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} +function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} +function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} +function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} +function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} +function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} +function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} +function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} +function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} +function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} +function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} +function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} +function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} +function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} +function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} +function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} +function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} +function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} +function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} +function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} +function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} +function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} +function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} +function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} +function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} +function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} +function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} +function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} +function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} +function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} +function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} +function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} +function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} +function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} +function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} +function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} +function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} +function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} +function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} +function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} +function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} +function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} +function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} +function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} +function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} +function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} +function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} +function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} +function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} +function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} +function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} +function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} +function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} +function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} +function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} +function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} +function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} +function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} +function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} +function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} +function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} +function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} +function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} +function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} +function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} +function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} +function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} +function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} +function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} +function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} +function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} +function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} +function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} +function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} +function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} +function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} +function mlb(a){sCb(a.ad?1:0} +function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} +function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} +function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} +function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} +function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} +function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} +function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} +function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} +function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} +function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} +function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} +function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} +function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} +function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} +function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} +function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} +function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} +function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} +function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} +function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} +function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} +function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} +function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} +function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} +function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} +function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} +function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} +function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} +function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} +function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} +function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} +function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} +function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} +function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} +function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} +function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} +function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} +function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} +function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} +function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} +function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} +function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} +function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} +function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} +function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} +function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} +function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} +function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} +function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} +function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} +function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} +function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} +function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} +function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} +function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} +function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} +function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} +function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} +function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} +function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} +function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} +function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} +function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} +function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} +function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} +function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} +function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} +function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} +function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} +function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} +function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} +function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} +function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} +function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} +function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} +function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} +function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} +function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} +function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} +function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} +function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} +function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} +function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} +function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} +function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} +function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} +function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} +function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} +function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} +function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} +function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} +function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} +function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} +function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} +function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} +function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} +function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} +function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} +function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} +function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} +function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} +function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} +function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} +function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} +function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} +function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} +function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} +function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} +function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} +function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} +function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} +function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} +function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} +function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} +function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} +function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} +function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} +function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} +function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} +function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} +function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} +function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} +function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} +function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} +function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} +function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} +function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} +function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} +function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} +function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} +function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} +function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} +function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} +function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} +function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} +function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} +function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} +function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} +function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} +function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} +function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} +function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} +function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} +function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} +function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} +function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} +function ODc(a,b){if(a.pb.p){return -1}return 0} +function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} +function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} +function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} +function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} +function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} +function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} +function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} +function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} +function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} +function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} +function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} +function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} +function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} +function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} +function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} +function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} +function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} +function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} +function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} +function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} +function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} +function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} +function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} +function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} +function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} +function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} +function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} +function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} +function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} +function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} +function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} +function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} +function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} +function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} +function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} +function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} +function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} +function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} +function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} +function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} +function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} +function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} +function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} +function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} +function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} +function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} +function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} +function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} +function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} +function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} +function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} +function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} +function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} +function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} +function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} +function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} +function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} +function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} +function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} +function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} +function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} +function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} +function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} +function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} +function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} +function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} +function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} +function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} +function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} +function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} +function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} +function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} +function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} +function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} +function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} +function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} +function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} +function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} +function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} +function uA(a,b){while(b[0]=0){++b[0]}} +function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} +function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} +function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} +function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} +function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} +function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} +function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} +function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} +function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} +function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} +function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} +function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} +function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} +function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} +function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} +function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} +function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} +function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} +function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} +function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} +function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} +function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} +function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} +function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} +function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} +function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} +function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} +function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} +function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} +function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} +function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} +function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} +function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} +function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} +function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} +function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} +function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} +function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} +function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} +function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} +function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} +function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} +function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} +function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} +function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} +function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} +function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} +function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} +function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} +function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} +function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} +function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} +function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} +function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} +function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} +function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} +function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} +function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} +function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} +function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} +function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} +function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} +function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} +function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} +function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} +function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} +function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} +function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} +function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} +function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} +function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} +function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} +function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} +function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} +function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} +function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} +function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} +function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} +function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} +function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} +function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} +function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} +function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} +function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} +function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} +function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} +function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} +function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} +function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} +function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} +function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} +function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} +function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} +function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} +function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} +function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} +function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} +function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} +function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} +function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} +function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} +function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} +function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} +function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} +function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} +function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} +function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} +function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} +function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} +function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} +function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} +function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} +function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} +function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} +function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} +function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} +function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} +function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} +function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} +function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} +function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} +function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} +function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} +function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} +function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} +function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} +function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} +function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} +function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} +function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} +function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} +function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} +function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} +function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} +function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} +function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} +function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} +function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} +function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} +function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} +function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} +function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} +function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} +function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} +function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} +function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} +function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} +function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} +function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} +function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} +function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} +function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} +function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} +function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} +function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} +function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} +function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} +function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} +function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} +function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} +function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} +function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} +function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} +function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} +function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} +function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} +function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} +function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} +function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} +function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} +function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} +function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} +function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} +function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} +function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} +function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} +function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} +function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} +function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} +function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} +function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} +function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} +function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} +function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} +function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} +function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} +function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} +function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} +function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} +function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} +function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} +function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} +function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} +function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} +function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} +function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} +function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} +function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} +function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} +function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} +function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} +function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} +function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} +function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} +function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} +function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} +function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} +function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} +function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} +function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} +function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} +function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} +function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} +function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} +function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} +function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} +function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} +function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} +function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} +function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} +function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} +function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} +function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} +function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} +function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} +function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} +function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} +function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} +function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} +function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} +function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} +function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} +function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} +function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} +function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} +function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} +function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} +function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} +function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} +function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} +function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} +function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} +function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} +function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} +function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} +function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} +function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} +function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} +function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} +function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} +function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} +function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} +function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} +function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} +function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} +function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} +function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} +function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} +function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} +function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} +function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} +function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} +function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} +function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} +function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} +function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} +function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} +function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} +function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} +function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} +function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} +function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} +function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} +function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} +function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} +function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} +function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} +function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} +function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} +function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} +function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} +function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} +function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} +function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} +function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} +function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} +function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} +function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} +function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} +function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} +function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} +function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} +function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} +function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} +function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} +function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} +function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} +function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} +function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} +function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} +function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} +function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} +function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} +function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} +function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} +function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} +function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} +function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} +function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} +function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} +function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} +function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} +function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} +function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} +function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} +function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} +function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} +function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} +function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} +function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} +function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} +function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} +function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} +function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} +function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} +function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} +function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} +function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} +function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} +function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} +function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} +function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} +function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} +function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} +function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} +function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} +function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} +function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} +function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} +function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} +function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} +function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} +function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} +function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} +function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} +function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} +function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} +function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} +function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} +function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} +function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} +function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} +function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} +function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} +function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} +function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} +function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} +function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} +function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} +function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} +function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} +function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} +function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} +function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} +function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} +function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} +function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} +function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} +function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} +function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} +function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} +function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} +function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} +function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} +function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} +function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} +function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} +function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} +function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} +function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} +function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} +function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} +function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} +function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} +function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} +function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} +function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} +function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} +function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} +function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} +function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} +function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} +function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} +function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} +function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} +function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} +function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} +function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} +function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} +function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} +function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} +function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} +function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} +function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} +function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} +function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} +function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} +function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} +function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} +function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} +function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} +function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} +function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} +function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} +function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} +function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} +function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} +function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} +function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} +function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} +function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} +function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} +function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} +function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} +function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} +function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} +function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} +function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} +function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} +function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} +function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} +function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} +function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} +function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} +function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} +function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} +function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} +function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} +function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} +function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} +function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} +function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} +function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} +function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} +function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} +function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} +function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} +function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} +function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} +function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} +function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} +function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} +function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} +function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} +function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} +function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} +function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} +function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} +function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} +function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} +function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} +function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} +function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} +function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} +function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} +function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} +function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} +function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} +function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} +function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} +function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} +function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} +function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} +function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} +function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} +function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} +function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} +function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} +function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} +function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} +function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} +function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} +function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} +function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} +function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} +function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} +function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} +function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} +function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} +function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} +function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} +function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} +function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} +function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} +function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} +function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} +function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} +function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} +function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} +function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} +function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} +function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} +function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} +function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} +function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} +function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} +function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} +function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} +function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} +function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} +function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} +function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} +function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} +function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} +function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} +function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} +function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} +function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} +function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} +function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} +function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} +function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} +function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} +function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} +function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} +function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} +function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} +function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} +function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} +function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} +function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} +function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} +function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} +function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} +function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} +function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} +function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} +function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} +function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} +function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} +function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} +function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} +function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} +function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} +function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} +function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} +function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} +function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} +function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} +function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} +function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} +function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} +function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} +function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} +function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} +function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} +function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} +function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} +function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} +function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} +function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} +function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} +function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} +function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} +function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} +function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} +function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} +function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} +function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} +function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} +function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} +function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} +function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} +function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} +function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} +function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} +function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} +function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} +function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} +function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} +function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} +function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} +function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} +function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} +function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} +function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} +function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} +function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} +function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} +function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} +function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} +function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} +function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} +function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} +function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} +function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} +function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} +function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} +function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} +function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} +function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} +function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} +function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} +function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} +function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} +function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} +function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} +function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} +function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} +function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} +function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} +function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} +function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} +function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} +function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} +function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} +function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} +function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} +function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} +function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} +function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} +function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} +function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} +function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} +function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} +function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} +function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} +function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} +function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} +function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} +function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} +function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} +function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} +function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} +function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} +function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} +function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} +function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} +function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} +function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} +function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} +function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} +function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} +function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} +function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} +function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} +function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} +function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} +function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} +function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} +function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} +function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} +function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} +function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} +function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} +function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} +function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} +function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} +function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} +function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} +function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} +function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} +function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} +function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} +function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} +function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} +function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} +function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} +function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} +function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} +function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} +function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} +function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} +function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} +function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} +function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} +function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} +function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} +function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} +function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} +function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} +function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} +function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} +function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} +function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} +function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} +function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} +function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} +function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} +function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} +function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} +function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} +function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} +function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} +function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} +function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} +function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} +function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} +function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} +function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} +function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} +function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],3:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; +},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ +/** + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = Worker; +},{}]},{},[3])(3) +}); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/main.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/main.d.ts new file mode 100644 index 00000000..780a5cfd --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/main.d.ts @@ -0,0 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export * from "./elk-api"; +import ElkConstructor from "./elk-api"; +export default ElkConstructor; diff --git a/doc/d3-hwschematic-assets/elkjs/lib/main.js b/doc/d3-hwschematic-assets/elkjs/lib/main.js new file mode 100644 index 00000000..f7199e87 --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/lib/main.js @@ -0,0 +1,67 @@ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; \ No newline at end of file diff --git a/doc/d3-hwschematic-assets/elkjs/package.json b/doc/d3-hwschematic-assets/elkjs/package.json new file mode 100644 index 00000000..5cd49ffe --- /dev/null +++ b/doc/d3-hwschematic-assets/elkjs/package.json @@ -0,0 +1,53 @@ +{ + "name": "elkjs", + "version": "0.8.2", + "author": { + "name": "Ulf Rüegg", + "email": "uruurumail@gmail.com" + }, + "description": "Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.", + "main": "lib/main", + "types": "lib/main", + "files": [ + "lib" + ], + "repository": { + "type": "git", + "url": "https://github.com/kieler/elkjs.git" + }, + "keywords": [ + "graph", + "layout", + "layered", + "ports", + "dataflow" + ], + "license": "EPL-2.0", + "scripts": { + "test": "mocha test/mocha", + "gradle": "./gradlew lib", + "babel": "babel src/js/ -d build/js/", + "browserifyApi": "browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js", + "browserifyBundle": "browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js", + "browserify": "mkdirp lib && npm run browserifyApi && npm run browserifyBundle", + "cp": "cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/", + "js": "npm run babel && npm run browserify && npm run cp", + "build": "npm run gradle && npm run js", + "clean": "./gradlew clean && rm -r lib", + "setDevVersion": "npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\"" + }, + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.0", + "browserify": "^14.4.0", + "chai": "^4.0.2", + "chai-as-promised": "^7.1.1", + "mkdirp": "^0.5.0", + "mocha": "^10.0.0", + "web-worker": "^1.0.0" + }, + "publishConfig": { + "access": "public", + "tag": "next" + } +} diff --git a/test/arbiter_test.dart b/test/arbiter_test.dart index adb400ac..4f1ee127 100644 --- a/test/arbiter_test.dart +++ b/test/arbiter_test.dart @@ -8,6 +8,7 @@ // Author: Max Korbel // +import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; import 'package:test/test.dart'; @@ -35,4 +36,17 @@ void main() { vector.put(bin('00010100')); expect(grantVec.value, LogicValue.ofString('00000100')); }); + + test('gen priority arbiter', () async { + const width = 8; + + final vector = Logic(width: width); + final reqs = List.generate(width, (i) => vector[i]); + + final arb = PriorityArbiter(reqs); + + await arb.build(); + final res = arb.generateSynth(); + File('build/${arb.definitionName}.v').openWrite().write(res); + }); } diff --git a/test/fifo_test.dart b/test/fifo_test.dart index 93f4f8c5..032eb198 100644 --- a/test/fifo_test.dart +++ b/test/fifo_test.dart @@ -9,6 +9,7 @@ // import 'dart:async'; +import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; @@ -272,4 +273,26 @@ void main() { Simulator.endSimulation(); await Simulator.simulationEnded; }); + test('gen fifo', () async { + final clk = SimpleClockGenerator(10).clk; + final reset = Logic()..put(0); + + final wrEn = Logic()..put(0); + final rdEn = Logic()..put(0); + final wrData = Logic(width: 32); + + final fifo = Fifo( + clk, + reset, + writeEnable: wrEn, + readEnable: rdEn, + writeData: wrData, + generateError: true, + generateOccupancy: true, + depth: 3, + ); + await fifo.build(); + final res = fifo.generateSynth(); + File('build/${fifo.definitionName}.v').openWrite().write(res); + }); } diff --git a/test/one_hot_test.dart b/test/one_hot_test.dart index 92df60b0..260e788d 100644 --- a/test/one_hot_test.dart +++ b/test/one_hot_test.dart @@ -8,7 +8,9 @@ // Author: Desmond Kirkpatrick // +import 'dart:io'; import 'dart:math'; + import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/one_hot.dart'; import 'package:rohd_hcl/src/utils.dart'; @@ -25,7 +27,7 @@ void main() { equals(LogicValue.ofBigInt(val, pow(2, w).toInt()))); } }); - test('simple_decode', () { + test('simple_decode', () async { // Compute the first 1 in a binary value // Limited to 64 by the Case matching inside for (var pos = 0; pos < 1000; pos++) { @@ -34,6 +36,12 @@ void main() { final expected = LogicValue.ofInt(pos, computed.width); expect(computed.value, equals(expected)); } + const pos = 32; + final val = BigInt.from(2).pow(pos); + final mod = OneHotToBinary(Const(val, width: pos + 1)); + await mod.build(); + final res = mod.generateSynth(); + File('${mod.definitionName}.v').openWrite().write(res); }); test('tree_decode', () { // Compute the binary value (or bit position) of a one-hot encoded value @@ -44,4 +52,19 @@ void main() { expect(computed.value, equals(expected)); } }); + + test('gen one-hot', () async { + // Generate one-hot codecs + const pos = 8; + final w = log2Ceil(pos + 1); + final mod = BinaryToOneHot(Const(pos, width: w)); + await mod.build(); + final res = mod.generateSynth(); + File('build/${mod.definitionName}.v').openWrite().write(res); + final val = BigInt.from(2).pow(pos); + final mod2 = OneHotToBinary(Const(val, width: pos + 1)); + await mod2.build(); + final res2 = mod2.generateSynth(); + File('build/${mod2.definitionName}.v').openWrite().write(res2); + }); } diff --git a/test/rf_test.dart b/test/rf_test.dart index 0caddad7..a5799f85 100644 --- a/test/rf_test.dart +++ b/test/rf_test.dart @@ -9,6 +9,7 @@ // import 'dart:async'; +import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; @@ -159,4 +160,30 @@ void main() { throwsA(const TypeMatcher())); }); }); + test('gen simple rf', () async { + const dataWidth = 16; + const addrWidth = 4; + + const numWr = 2; + const numRd = 2; + + final clk = SimpleClockGenerator(10).clk; + final reset = Logic(); + + final wrPorts = [ + for (var i = 0; i < numWr; i++) + DataPortInterface(dataWidth, addrWidth)..en.put(0) + ]; + final rdPorts = [ + for (var i = 0; i < numRd; i++) + DataPortInterface(dataWidth, addrWidth)..en.put(0) + ]; + + final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); + + await rf.build(); + + final res = rf.generateSynth(); + File('build/${rf.definitionName}.v').openWrite().write(res); + }); } diff --git a/test/rotate_test.dart b/test/rotate_test.dart index ed62ea5e..bd631632 100644 --- a/test/rotate_test.dart +++ b/test/rotate_test.dart @@ -8,6 +8,8 @@ // Author: Max Korbel // +import 'dart:io'; + import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; import 'package:test/test.dart'; @@ -89,4 +91,15 @@ void main() { expect(() => Logic().rotateLeft('badType'), throwsA(const TypeMatcher())); }); + + test('generate RotateLeft', () async { + final rot = RotateLeft( + Const(0xf000, width: 16), + Const(4, width: 8), + maxAmount: 4, + ); + await rot.build(); + final res = rot.generateSynth(); + File('build/${rot.definitionName}.v').openWrite().write(res); + }); } diff --git a/tool/converters/json_html.sh b/tool/converters/json_html.sh new file mode 100755 index 00000000..a0270633 --- /dev/null +++ b/tool/converters/json_html.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: BSD-3-Clause +# +# jsonToHtml.sh +# Splice a json file into an HTML form for D3 schematic display +# +# 2023 May 09 +# Author: Desmond Kirkpatrick +# +# +# This script inserts a JSON file in the middle of an HTML file that drives +# a D3 schematic viewer. + +if !(test 1 -eq $#); then + echo One argument required: JSON file + exit 1 +fi; + +json=`cat $1 | sed -e 's/\\\\/_/g'` +pre=' + + + + d3-hwschematic + + + + + + + + + + + + + + + +' +echo "${pre}${json}${post}" diff --git a/tool/converters/verilog_html.sh b/tool/converters/verilog_html.sh new file mode 100755 index 00000000..9bfc4923 --- /dev/null +++ b/tool/converters/verilog_html.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: BSD-3-Clause +# +# verilogToJSON.sh +# Run yosys to convert Verilog to JSON +# +# 2023 May 09 +# Author: Desmond Kirkpatrick +# + +# Executes synthesis given a module name +# Assumes .v extension +# Outputs .json + +if !(test 1 -eq $#); then + echo One argument required: module + exit 1 +fi; + +cd build/ +module=`basename $1 .v` +../tool/converters/verilog_json.sh $1 +../tool/converters/json_html.sh ${module}.json > ${module}.html diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh new file mode 100755 index 00000000..8e6d8899 --- /dev/null +++ b/tool/converters/verilog_json.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: BSD-3-Clause +# +# verilogToJSON.sh +# Run yosys to convert Verilog to JSON +# +# 2023 May 09 +# Author: Desmond Kirkpatrick +# + +# Executes synthesis given a module name +# Assumes .v extension +# Outputs .json + +if !(test 1 -eq $#); then + echo One argument required: module + exit 1 +fi; + +yosys_area=/yosys +lib=$yosys_area/tests/liberty/normal.lib +module=`basename $1 .v` +yosys < +# + +set -euo pipefail + +apt-get update +apt-get install -y \ + git \ + npm \ + python3-pip + +git clone https://github.com/Nic30/d3-hwschematic.git +cd d3-hwschematic +npm install +npm install --only=dev +nom run build + diff --git a/tool/gh_actions/install_synthesis.sh b/tool/gh_actions/install_synthesis.sh new file mode 100755 index 00000000..3822382c --- /dev/null +++ b/tool/gh_actions/install_synthesis.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: BSD-3-Clause +# +# install_synthesis.sh +# GitHub Actions step: Install project dependencies. +# +# 2023 May 09 +# Author: Desmond Kirkpatrick +# + +set -euo pipefail + +apt-get update +DEBIAN_FRONTEND=noninteractive apt-get install -y \ + build-essential \ + clang \ + bison \ + flex \ + libreadline-dev \ + gawk \ + tcl-dev \ + libffi-dev \ + git \ + pkg-config \ + python3 \ + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + python3-tk + +git clone https://github.com/YosysHQ/yosys.git +cd yosys +make -j$(nproc) diff --git a/tool/gh_codespaces/run_setup.sh b/tool/gh_codespaces/run_setup.sh index 55a87484..e6b3399e 100755 --- a/tool/gh_codespaces/run_setup.sh +++ b/tool/gh_codespaces/run_setup.sh @@ -17,3 +17,6 @@ tool/gh_codespaces/install_dart.sh # Install Pub dependencies. tool/gh_actions/install_dependencies.sh + +# Install Synthesis tool (yosys). +tool/gh_actions/install_synthesis.sh diff --git a/tool/synthesize.sh b/tool/synthesize.sh new file mode 100755 index 00000000..6860ef74 --- /dev/null +++ b/tool/synthesize.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: BSD-3-Clause +# +# synthesize.sh +# Run synthesis outputing synthesized Verilog +# +# 2023 May 09 +# Author: Desmond Kirkpatrick +# + +# Executes synthesis given a module name +# Assumes .v extension +# Outputs < module>_synth.v + +if !(test 1 -eq $#); then + echo One argument required: module + exit 1 +fi; + +yosys_area=/yosys +lib=$yosys_area/tests/liberty/normal.lib +module=$1 +yosys < Date: Wed, 10 May 2023 19:52:55 +0000 Subject: [PATCH 02/53] no lint on LICENSE file --- .markdownlint-cli2.jsonc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index 26f1dd11..b4761766 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -6,6 +6,8 @@ }, "ignores": [ - "doc/api/" - ] + "doc/api/", + "d3-hwschematic-assets/", + "d3-hwschematic-assets/elkjs" + ] } From 300b118054463a27f32d2b70d44b3039ee408bd0 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 12:56:24 -0700 Subject: [PATCH 03/53] more markdown linting ignore --- .markdownlint-cli2.jsonc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index b4761766..2cd91120 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -7,7 +7,9 @@ "ignores": [ "doc/api/", - "d3-hwschematic-assets/", - "d3-hwschematic-assets/elkjs" + "doc/d3-hwschematic-assets/", + "doc/d3-hwschematic-assets/elkjs", + "doc/api/d3-hwschematic-assets/", + "doc/api/d3-hwschematic-assets/elkjs" ] } From c7c617f1fe22208272b5273b24cecc8cb271d749 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 13:55:28 -0700 Subject: [PATCH 04/53] try HTML generation in run checks flow --- .github/workflows/general.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index fbd1cb88..b5909a00 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -49,6 +49,9 @@ jobs: - name: Run project tests run: tool/gh_actions/run_tests.sh + - name: Trial generate HTML for examples + run: tool/gh_actions/create_htmls.sh + deploy-documentation: name: Deploy Documentation needs: run-checks From 1f79ee91d38a535e5ae5c23283872885232193e0 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 14:00:33 -0700 Subject: [PATCH 05/53] path fix --- tool/converters/verilog_json.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh index 8e6d8899..dfa3f919 100755 --- a/tool/converters/verilog_json.sh +++ b/tool/converters/verilog_json.sh @@ -19,6 +19,7 @@ if !(test 1 -eq $#); then exit 1 fi; +PATH=/yosys:$PATH yosys_area=/yosys lib=$yosys_area/tests/liberty/normal.lib module=`basename $1 .v` From e29402fdf04e9cafa450b0c2796cbbf2870b6d7e Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 15:11:11 -0700 Subject: [PATCH 06/53] direct path for yosys --- tool/converters/verilog_json.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh index dfa3f919..7deb26bb 100755 --- a/tool/converters/verilog_json.sh +++ b/tool/converters/verilog_json.sh @@ -19,11 +19,10 @@ if !(test 1 -eq $#); then exit 1 fi; -PATH=/yosys:$PATH yosys_area=/yosys lib=$yosys_area/tests/liberty/normal.lib module=`basename $1 .v` -yosys < Date: Wed, 10 May 2023 15:53:00 -0700 Subject: [PATCH 07/53] forgot synthesis --- .github/workflows/general.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index b5909a00..6d577320 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -37,6 +37,9 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh + - name: Install synthesis + run: tool/gh_actions/install_synthesis.sh + - name: Verify project formatting run: tool/gh_actions/verify_formatting.sh @@ -70,6 +73,9 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh + - name: Install synthesis + run: tool/gh_actions/install_synthesis.sh + - name: Run project tests run: tool/gh_actions/run_tests.sh From e947354b698acda450cef3cea4d0fc21faf98b62 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 15:57:28 -0700 Subject: [PATCH 08/53] permission error or apt --- tool/gh_actions/install_synthesis.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tool/gh_actions/install_synthesis.sh b/tool/gh_actions/install_synthesis.sh index 3822382c..ab458260 100755 --- a/tool/gh_actions/install_synthesis.sh +++ b/tool/gh_actions/install_synthesis.sh @@ -12,8 +12,8 @@ set -euo pipefail -apt-get update -DEBIAN_FRONTEND=noninteractive apt-get install -y \ +sudo apt-get update +DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \ build-essential \ clang \ bison \ @@ -31,6 +31,6 @@ DEBIAN_FRONTEND=noninteractive apt-get install -y \ python3-wheel \ python3-tk -git clone https://github.com/YosysHQ/yosys.git +sudo git clone https://github.com/YosysHQ/yosys.git cd yosys -make -j$(nproc) +sudo make -j$(nproc) From be6fb155525235e8ac4c885a3f0a41ea9444a4ec Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 10 May 2023 16:17:37 -0700 Subject: [PATCH 09/53] yosys is installed at top of source, not / --- tool/converters/verilog_json.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh index 7deb26bb..d9f513da 100755 --- a/tool/converters/verilog_json.sh +++ b/tool/converters/verilog_json.sh @@ -19,7 +19,7 @@ if !(test 1 -eq $#); then exit 1 fi; -yosys_area=/yosys +yosys_area=../yosys lib=$yosys_area/tests/liberty/normal.lib module=`basename $1 .v` $yosys_area/yosys < Date: Fri, 12 May 2023 13:00:29 -0700 Subject: [PATCH 10/53] Use a binary yosys rather than building. Use d3-hwschematic source rather than our archive of it. --- .github/workflows/general.yml | 15 +- .gitmodules | 3 + doc/d3-hwschematic | 1 + gen/arbiter_gen.dart | 26 + gen/fifo_gen.dart | 36 + gen/generate.dart | 23 + gen/local/README.md | 2 + gen/local/d3/LICENSE | 27 + gen/local/d3/dist/d3.js | 19708 +++++ gen/local/d3/dist/d3.min.js | 2 + gen/local/d3/dist/d3.node.js | 278 + gen/local/d3/dist/package.js | 16 + gen/local/dist/d3-hwschematic-dark.css | 96 + gen/local/dist/d3-hwschematic.css | 91 + gen/local/dist/d3-hwschematic.js | 2887 + gen/local/elkjs/LICENSE.md | 264 + gen/local/elkjs/README.md | 378 + gen/local/elkjs/lib/elk-api.d.ts | 131 + gen/local/elkjs/lib/elk-api.js | 224 + gen/local/elkjs/lib/elk-worker.d.ts | 1 + gen/local/elkjs/lib/elk-worker.js | 100643 ++++++++++++++++++++++ gen/local/elkjs/lib/elk-worker.min.js | 6149 ++ gen/local/elkjs/lib/elk.bundled.d.ts | 13 + gen/local/elkjs/lib/elk.bundled.js | 6444 ++ gen/local/elkjs/lib/main.d.ts | 13 + gen/local/elkjs/lib/main.js | 67 + gen/local/elkjs/package.json | 53 + gen/one_hot_gen.dart | 28 + gen/rf_gen.dart | 41 + gen/rotate_gen.dart | 24 + test/arbiter_test.dart | 13 - test/fifo_test.dart | 22 - test/one_hot_test.dart | 15 - test/rf_test.dart | 26 - test/rotate_test.dart | 11 - tool/converters/verilog_json.sh | 5 +- tool/gh_actions/create_htmls.sh | 8 +- tool/gh_actions/install_schematic.sh | 31 + tool/gh_actions/install_synthesis.sh | 36 - 39 files changed, 137714 insertions(+), 137 deletions(-) create mode 100644 .gitmodules create mode 160000 doc/d3-hwschematic create mode 100644 gen/arbiter_gen.dart create mode 100644 gen/fifo_gen.dart create mode 100644 gen/generate.dart create mode 100644 gen/local/README.md create mode 100644 gen/local/d3/LICENSE create mode 100644 gen/local/d3/dist/d3.js create mode 100644 gen/local/d3/dist/d3.min.js create mode 100644 gen/local/d3/dist/d3.node.js create mode 100644 gen/local/d3/dist/package.js create mode 100644 gen/local/dist/d3-hwschematic-dark.css create mode 100644 gen/local/dist/d3-hwschematic.css create mode 100644 gen/local/dist/d3-hwschematic.js create mode 100644 gen/local/elkjs/LICENSE.md create mode 100644 gen/local/elkjs/README.md create mode 100644 gen/local/elkjs/lib/elk-api.d.ts create mode 100644 gen/local/elkjs/lib/elk-api.js create mode 100644 gen/local/elkjs/lib/elk-worker.d.ts create mode 100644 gen/local/elkjs/lib/elk-worker.js create mode 100644 gen/local/elkjs/lib/elk-worker.min.js create mode 100644 gen/local/elkjs/lib/elk.bundled.d.ts create mode 100644 gen/local/elkjs/lib/elk.bundled.js create mode 100644 gen/local/elkjs/lib/main.d.ts create mode 100644 gen/local/elkjs/lib/main.js create mode 100644 gen/local/elkjs/package.json create mode 100644 gen/one_hot_gen.dart create mode 100644 gen/rf_gen.dart create mode 100644 gen/rotate_gen.dart create mode 100755 tool/gh_actions/install_schematic.sh delete mode 100755 tool/gh_actions/install_synthesis.sh diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 6d577320..330efc07 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -37,8 +37,8 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh - - name: Install synthesis - run: tool/gh_actions/install_synthesis.sh + - name: Install Schematic support (includes yosys) + run: tool/gh_actions/install_schematic.sh - name: Verify project formatting run: tool/gh_actions/verify_formatting.sh @@ -46,14 +46,12 @@ jobs: - name: Analyze project source run: tool/gh_actions/analyze_source.sh + - name: Trial generate HTML for examples # Here for testing only + run: tool/gh_actions/create_htmls.sh + - name: Check project documentation run: tool/gh_actions/check_documentation.sh - - name: Run project tests - run: tool/gh_actions/run_tests.sh - - - name: Trial generate HTML for examples - run: tool/gh_actions/create_htmls.sh deploy-documentation: name: Deploy Documentation @@ -76,9 +74,6 @@ jobs: - name: Install synthesis run: tool/gh_actions/install_synthesis.sh - - name: Run project tests - run: tool/gh_actions/run_tests.sh - - name: Generate HTML for examples run: tool/gh_actions/create_htmls.sh diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..6ab774b8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "doc/d3-hwschematic"] + path = doc/d3-hwschematic + url = https://github.com/Nic30/d3-hwschematic.git diff --git a/doc/d3-hwschematic b/doc/d3-hwschematic new file mode 160000 index 00000000..65f6487e --- /dev/null +++ b/doc/d3-hwschematic @@ -0,0 +1 @@ +Subproject commit 65f6487e1d664c217d6d963acfffea62a7042991 diff --git a/gen/arbiter_gen.dart b/gen/arbiter_gen.dart new file mode 100644 index 00000000..28808b8f --- /dev/null +++ b/gen/arbiter_gen.dart @@ -0,0 +1,26 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// arbiter_gen.dart +// Generate an example arbiter +// +// 2023 May 09 +// Author: Desmond Kirkpatrick +// + +import 'dart:io'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/src/arbiter.dart'; + +void arbiter_gen() async { + const width = 8; + + final vector = Logic(width: width); + final reqs = List.generate(width, (i) => vector[i]); + + final arb = PriorityArbiter(reqs); + + await arb.build(); + final res = arb.generateSynth(); + File('build/${arb.definitionName}.v').openWrite().write(res); +} diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart new file mode 100644 index 00000000..ae4273d6 --- /dev/null +++ b/gen/fifo_gen.dart @@ -0,0 +1,36 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// one_hot_test.dart +// Test of one_hot codec. +// +// 2023 May 09 +// Author: Desmond Kirkpatrick +// + +import 'dart:io'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/src/fifo.dart'; + +void fifo_gen () async { + final clk = SimpleClockGenerator(10).clk; + final reset = Logic()..put(0); + + final wrEn = Logic()..put(0); + final rdEn = Logic()..put(0); + final wrData = Logic(width: 32); + + final fifo = Fifo( + clk, + reset, + writeEnable: wrEn, + readEnable: rdEn, + writeData: wrData, + generateError: true, + generateOccupancy: true, + depth: 3, + ); + await fifo.build(); + final res = fifo.generateSynth(); + File('build/${fifo.definitionName}.v').openWrite().write(res); +} diff --git a/gen/generate.dart b/gen/generate.dart new file mode 100644 index 00000000..8ed64fc6 --- /dev/null +++ b/gen/generate.dart @@ -0,0 +1,23 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// rotate_gen.dart +// Generate an example rotator +// +// 2023 May 09 +// Author: Desmond Kirkpatrick +// + +import 'arbiter_gen.dart'; +import 'fifo_gen.dart'; +import 'one_hot_gen.dart'; +import 'rf_gen.dart'; +import 'rotate_gen.dart'; + +void main() { + arbiter_gen(); + fifo_gen(); + one_hot_gen(); + rf_gen(); + rotate_gen(); +} \ No newline at end of file diff --git a/gen/local/README.md b/gen/local/README.md new file mode 100644 index 00000000..e557c17c --- /dev/null +++ b/gen/local/README.md @@ -0,0 +1,2 @@ +These are grabbed from building Nic30/d3-hwschematic (115MB). +We only need the basic installed javascript for web pages (8MB). diff --git a/gen/local/d3/LICENSE b/gen/local/d3/LICENSE new file mode 100644 index 00000000..894ddc65 --- /dev/null +++ b/gen/local/d3/LICENSE @@ -0,0 +1,27 @@ +Copyright 2010-2020 Mike Bostock +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the author nor the names of contributors may be used to + endorse or promote products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gen/local/d3/dist/d3.js b/gen/local/d3/dist/d3.js new file mode 100644 index 00000000..50605bd3 --- /dev/null +++ b/gen/local/d3/dist/d3.js @@ -0,0 +1,19708 @@ +// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : +typeof define === 'function' && define.amd ? define(['exports'], factory) : +(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {})); +}(this, (function (exports) { 'use strict'; + +var version = "6.7.0"; + +function ascending$3(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +function bisector(f) { + let delta = f; + let compare = f; + + if (f.length === 1) { + delta = (d, x) => f(d) - x; + compare = ascendingComparator(f); + } + + function left(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + while (lo < hi) { + const mid = (lo + hi) >>> 1; + if (compare(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + } + return lo; + } + + function right(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + while (lo < hi) { + const mid = (lo + hi) >>> 1; + if (compare(a[mid], x) > 0) hi = mid; + else lo = mid + 1; + } + return lo; + } + + function center(a, x, lo, hi) { + if (lo == null) lo = 0; + if (hi == null) hi = a.length; + const i = left(a, x, lo, hi - 1); + return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; + } + + return {left, center, right}; +} + +function ascendingComparator(f) { + return (d, x) => ascending$3(f(d), x); +} + +function number$3(x) { + return x === null ? NaN : +x; +} + +function* numbers(values, valueof) { + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + yield value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + yield value; + } + } + } +} + +const ascendingBisect = bisector(ascending$3); +const bisectRight = ascendingBisect.right; +const bisectLeft = ascendingBisect.left; +const bisectCenter = bisector(number$3).center; + +function count$1(values, valueof) { + let count = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + ++count; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + ++count; + } + } + } + return count; +} + +function length$3(array) { + return array.length | 0; +} + +function empty$2(length) { + return !(length > 0); +} + +function arrayify(values) { + return typeof values !== "object" || "length" in values ? values : Array.from(values); +} + +function reducer(reduce) { + return values => reduce(...values); +} + +function cross$2(...values) { + const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop()); + values = values.map(arrayify); + const lengths = values.map(length$3); + const j = values.length - 1; + const index = new Array(j + 1).fill(0); + const product = []; + if (j < 0 || lengths.some(empty$2)) return product; + while (true) { + product.push(index.map((j, i) => values[i][j])); + let i = j; + while (++index[i] === lengths[i]) { + if (i === 0) return reduce ? product.map(reduce) : product; + index[i--] = 0; + } + } +} + +function cumsum(values, valueof) { + var sum = 0, index = 0; + return Float64Array.from(values, valueof === undefined + ? v => (sum += +v || 0) + : v => (sum += +valueof(v, index++, values) || 0)); +} + +function descending$2(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function variance(values, valueof) { + let count = 0; + let delta; + let mean = 0; + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + delta = value - mean; + mean += delta / ++count; + sum += delta * (value - mean); + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + delta = value - mean; + mean += delta / ++count; + sum += delta * (value - mean); + } + } + } + if (count > 1) return sum / (count - 1); +} + +function deviation(values, valueof) { + const v = variance(values, valueof); + return v ? Math.sqrt(v) : v; +} + +function extent$1(values, valueof) { + let min; + let max; + if (valueof === undefined) { + for (const value of values) { + if (value != null) { + if (min === undefined) { + if (value >= value) min = max = value; + } else { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null) { + if (min === undefined) { + if (value >= value) min = max = value; + } else { + if (min > value) min = value; + if (max < value) max = value; + } + } + } + } + return [min, max]; +} + +// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423 +class Adder { + constructor() { + this._partials = new Float64Array(32); + this._n = 0; + } + add(x) { + const p = this._partials; + let i = 0; + for (let j = 0; j < this._n && j < 32; j++) { + const y = p[j], + hi = x + y, + lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x); + if (lo) p[i++] = lo; + x = hi; + } + p[i] = x; + this._n = i + 1; + return this; + } + valueOf() { + const p = this._partials; + let n = this._n, x, y, lo, hi = 0; + if (n > 0) { + hi = p[--n]; + while (n > 0) { + x = hi; + y = p[--n]; + hi = x + y; + lo = y - (hi - x); + if (lo) break; + } + if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) { + y = lo * 2; + x = hi + y; + if (y == x - hi) hi = x; + } + } + return hi; + } +} + +function fsum(values, valueof) { + const adder = new Adder(); + if (valueof === undefined) { + for (let value of values) { + if (value = +value) { + adder.add(value); + } + } + } else { + let index = -1; + for (let value of values) { + if (value = +valueof(value, ++index, values)) { + adder.add(value); + } + } + } + return +adder; +} + +function fcumsum(values, valueof) { + const adder = new Adder(); + let index = -1; + return Float64Array.from(values, valueof === undefined + ? v => adder.add(+v || 0) + : v => adder.add(+valueof(v, ++index, values) || 0) + ); +} + +class InternMap extends Map { + constructor(entries, key = keyof) { + super(); + Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); + if (entries != null) for (const [key, value] of entries) this.set(key, value); + } + get(key) { + return super.get(intern_get(this, key)); + } + has(key) { + return super.has(intern_get(this, key)); + } + set(key, value) { + return super.set(intern_set(this, key), value); + } + delete(key) { + return super.delete(intern_delete(this, key)); + } +} + +class InternSet extends Set { + constructor(values, key = keyof) { + super(); + Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); + if (values != null) for (const value of values) this.add(value); + } + has(value) { + return super.has(intern_get(this, value)); + } + add(value) { + return super.add(intern_set(this, value)); + } + delete(value) { + return super.delete(intern_delete(this, value)); + } +} + +function intern_get({_intern, _key}, value) { + const key = _key(value); + return _intern.has(key) ? _intern.get(key) : value; +} + +function intern_set({_intern, _key}, value) { + const key = _key(value); + if (_intern.has(key)) return _intern.get(key); + _intern.set(key, value); + return value; +} + +function intern_delete({_intern, _key}, value) { + const key = _key(value); + if (_intern.has(key)) { + value = _intern.get(value); + _intern.delete(key); + } + return value; +} + +function keyof(value) { + return value !== null && typeof value === "object" ? value.valueOf() : value; +} + +function identity$9(x) { + return x; +} + +function group(values, ...keys) { + return nest(values, identity$9, identity$9, keys); +} + +function groups(values, ...keys) { + return nest(values, Array.from, identity$9, keys); +} + +function rollup(values, reduce, ...keys) { + return nest(values, identity$9, reduce, keys); +} + +function rollups(values, reduce, ...keys) { + return nest(values, Array.from, reduce, keys); +} + +function index$4(values, ...keys) { + return nest(values, identity$9, unique, keys); +} + +function indexes(values, ...keys) { + return nest(values, Array.from, unique, keys); +} + +function unique(values) { + if (values.length !== 1) throw new Error("duplicate key"); + return values[0]; +} + +function nest(values, map, reduce, keys) { + return (function regroup(values, i) { + if (i >= keys.length) return reduce(values); + const groups = new InternMap(); + const keyof = keys[i++]; + let index = -1; + for (const value of values) { + const key = keyof(value, ++index, values); + const group = groups.get(key); + if (group) group.push(value); + else groups.set(key, [value]); + } + for (const [key, values] of groups) { + groups.set(key, regroup(values, i)); + } + return map(groups); + })(values, 0); +} + +function permute(source, keys) { + return Array.from(keys, key => source[key]); +} + +function sort(values, ...F) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + values = Array.from(values); + let [f = ascending$3] = F; + if (f.length === 1 || F.length > 1) { + const index = Uint32Array.from(values, (d, i) => i); + if (F.length > 1) { + F = F.map(f => values.map(f)); + index.sort((i, j) => { + for (const f of F) { + const c = ascending$3(f[i], f[j]); + if (c) return c; + } + }); + } else { + f = values.map(f); + index.sort((i, j) => ascending$3(f[i], f[j])); + } + return permute(values, index); + } + return values.sort(f); +} + +function groupSort(values, reduce, key) { + return (reduce.length === 1 + ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending$3(av, bv) || ascending$3(ak, bk))) + : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending$3(ak, bk)))) + .map(([key]) => key); +} + +var array$5 = Array.prototype; + +var slice$4 = array$5.slice; + +function constant$b(x) { + return function() { + return x; + }; +} + +var e10 = Math.sqrt(50), + e5 = Math.sqrt(10), + e2 = Math.sqrt(2); + +function ticks(start, stop, count) { + var reverse, + i = -1, + n, + ticks, + step; + + stop = +stop, start = +start, count = +count; + if (start === stop && count > 0) return [start]; + if (reverse = stop < start) n = start, start = stop, stop = n; + if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; + + if (step > 0) { + let r0 = Math.round(start / step), r1 = Math.round(stop / step); + if (r0 * step < start) ++r0; + if (r1 * step > stop) --r1; + ticks = new Array(n = r1 - r0 + 1); + while (++i < n) ticks[i] = (r0 + i) * step; + } else { + step = -step; + let r0 = Math.round(start * step), r1 = Math.round(stop * step); + if (r0 / step < start) ++r0; + if (r1 / step > stop) --r1; + ticks = new Array(n = r1 - r0 + 1); + while (++i < n) ticks[i] = (r0 + i) / step; + } + + if (reverse) ticks.reverse(); + + return ticks; +} + +function tickIncrement(start, stop, count) { + var step = (stop - start) / Math.max(0, count), + power = Math.floor(Math.log(step) / Math.LN10), + error = step / Math.pow(10, power); + return power >= 0 + ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) + : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); +} + +function tickStep(start, stop, count) { + var step0 = Math.abs(stop - start) / Math.max(0, count), + step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), + error = step0 / step1; + if (error >= e10) step1 *= 10; + else if (error >= e5) step1 *= 5; + else if (error >= e2) step1 *= 2; + return stop < start ? -step1 : step1; +} + +function nice$1(start, stop, count) { + let prestep; + while (true) { + const step = tickIncrement(start, stop, count); + if (step === prestep || step === 0 || !isFinite(step)) { + return [start, stop]; + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } + prestep = step; + } +} + +function thresholdSturges(values) { + return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1; +} + +function bin() { + var value = identity$9, + domain = extent$1, + threshold = thresholdSturges; + + function histogram(data) { + if (!Array.isArray(data)) data = Array.from(data); + + var i, + n = data.length, + x, + values = new Array(n); + + for (i = 0; i < n; ++i) { + values[i] = value(data[i], i, data); + } + + var xz = domain(values), + x0 = xz[0], + x1 = xz[1], + tz = threshold(values, x0, x1); + + // Convert number of thresholds into uniform thresholds, and nice the + // default domain accordingly. + if (!Array.isArray(tz)) { + const max = x1, tn = +tz; + if (domain === extent$1) [x0, x1] = nice$1(x0, x1, tn); + tz = ticks(x0, x1, tn); + + // If the last threshold is coincident with the domain’s upper bound, the + // last bin will be zero-width. If the default domain is used, and this + // last threshold is coincident with the maximum input value, we can + // extend the niced upper bound by one tick to ensure uniform bin widths; + // otherwise, we simply remove the last threshold. Note that we don’t + // coerce values or the domain to numbers, and thus must be careful to + // compare order (>=) rather than strict equality (===)! + if (tz[tz.length - 1] >= x1) { + if (max >= x1 && domain === extent$1) { + const step = tickIncrement(x0, x1, tn); + if (isFinite(step)) { + if (step > 0) { + x1 = (Math.floor(x1 / step) + 1) * step; + } else if (step < 0) { + x1 = (Math.ceil(x1 * -step) + 1) / -step; + } + } + } else { + tz.pop(); + } + } + } + + // Remove any thresholds outside the domain. + var m = tz.length; + while (tz[0] <= x0) tz.shift(), --m; + while (tz[m - 1] > x1) tz.pop(), --m; + + var bins = new Array(m + 1), + bin; + + // Initialize bins. + for (i = 0; i <= m; ++i) { + bin = bins[i] = []; + bin.x0 = i > 0 ? tz[i - 1] : x0; + bin.x1 = i < m ? tz[i] : x1; + } + + // Assign data to bins by value, ignoring any outside the domain. + for (i = 0; i < n; ++i) { + x = values[i]; + if (x0 <= x && x <= x1) { + bins[bisectRight(tz, x, 0, m)].push(data[i]); + } + } + + return bins; + } + + histogram.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$b(_), histogram) : value; + }; + + histogram.domain = function(_) { + return arguments.length ? (domain = typeof _ === "function" ? _ : constant$b([_[0], _[1]]), histogram) : domain; + }; + + histogram.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$b(slice$4.call(_)) : constant$b(_), histogram) : threshold; + }; + + return histogram; +} + +function max$3(values, valueof) { + let max; + if (valueof === undefined) { + for (const value of values) { + if (value != null + && (max < value || (max === undefined && value >= value))) { + max = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (max < value || (max === undefined && value >= value))) { + max = value; + } + } + } + return max; +} + +function min$2(values, valueof) { + let min; + if (valueof === undefined) { + for (const value of values) { + if (value != null + && (min > value || (min === undefined && value >= value))) { + min = value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (min > value || (min === undefined && value >= value))) { + min = value; + } + } + } + return min; +} + +// Based on https://github.com/mourner/quickselect +// ISC license, Copyright 2018 Vladimir Agafonkin. +function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending$3) { + while (right > left) { + if (right - left > 600) { + const n = right - left + 1; + const m = k - left + 1; + const z = Math.log(n); + const s = 0.5 * Math.exp(2 * z / 3); + const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); + const newLeft = Math.max(left, Math.floor(k - m * s / n + sd)); + const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd)); + quickselect(array, k, newLeft, newRight, compare); + } + + const t = array[k]; + let i = left; + let j = right; + + swap$1(array, left, k); + if (compare(array[right], t) > 0) swap$1(array, left, right); + + while (i < j) { + swap$1(array, i, j), ++i, --j; + while (compare(array[i], t) < 0) ++i; + while (compare(array[j], t) > 0) --j; + } + + if (compare(array[left], t) === 0) swap$1(array, left, j); + else ++j, swap$1(array, j, right); + + if (j <= k) left = j + 1; + if (k <= j) right = j - 1; + } + return array; +} + +function swap$1(array, i, j) { + const t = array[i]; + array[i] = array[j]; + array[j] = t; +} + +function quantile$1(values, p, valueof) { + values = Float64Array.from(numbers(values, valueof)); + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return min$2(values); + if (p >= 1) return max$3(values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = max$3(quickselect(values, i0).subarray(0, i0 + 1)), + value1 = min$2(values.subarray(i0 + 1)); + return value0 + (value1 - value0) * (i - i0); +} + +function quantileSorted(values, p, valueof = number$3) { + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values); + if (p >= 1) return +valueof(values[n - 1], n - 1, values); + var n, + i = (n - 1) * p, + i0 = Math.floor(i), + value0 = +valueof(values[i0], i0, values), + value1 = +valueof(values[i0 + 1], i0 + 1, values); + return value0 + (value1 - value0) * (i - i0); +} + +function freedmanDiaconis(values, min, max) { + return Math.ceil((max - min) / (2 * (quantile$1(values, 0.75) - quantile$1(values, 0.25)) * Math.pow(count$1(values), -1 / 3))); +} + +function scott(values, min, max) { + return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count$1(values), -1 / 3))); +} + +function maxIndex(values, valueof) { + let max; + let maxIndex = -1; + let index = -1; + if (valueof === undefined) { + for (const value of values) { + ++index; + if (value != null + && (max < value || (max === undefined && value >= value))) { + max = value, maxIndex = index; + } + } + } else { + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (max < value || (max === undefined && value >= value))) { + max = value, maxIndex = index; + } + } + } + return maxIndex; +} + +function mean(values, valueof) { + let count = 0; + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + ++count, sum += value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + ++count, sum += value; + } + } + } + if (count) return sum / count; +} + +function median(values, valueof) { + return quantile$1(values, 0.5, valueof); +} + +function* flatten(arrays) { + for (const array of arrays) { + yield* array; + } +} + +function merge(arrays) { + return Array.from(flatten(arrays)); +} + +function minIndex(values, valueof) { + let min; + let minIndex = -1; + let index = -1; + if (valueof === undefined) { + for (const value of values) { + ++index; + if (value != null + && (min > value || (min === undefined && value >= value))) { + min = value, minIndex = index; + } + } + } else { + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null + && (min > value || (min === undefined && value >= value))) { + min = value, minIndex = index; + } + } + } + return minIndex; +} + +function pairs(values, pairof = pair) { + const pairs = []; + let previous; + let first = false; + for (const value of values) { + if (first) pairs.push(pairof(previous, value)); + previous = value; + first = true; + } + return pairs; +} + +function pair(a, b) { + return [a, b]; +} + +function sequence(start, stop, step) { + start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; + + var i = -1, + n = Math.max(0, Math.ceil((stop - start) / step)) | 0, + range = new Array(n); + + while (++i < n) { + range[i] = start + i * step; + } + + return range; +} + +function least(values, compare = ascending$3) { + let min; + let defined = false; + if (compare.length === 1) { + let minValue; + for (const element of values) { + const value = compare(element); + if (defined + ? ascending$3(value, minValue) < 0 + : ascending$3(value, value) === 0) { + min = element; + minValue = value; + defined = true; + } + } + } else { + for (const value of values) { + if (defined + ? compare(value, min) < 0 + : compare(value, value) === 0) { + min = value; + defined = true; + } + } + } + return min; +} + +function leastIndex(values, compare = ascending$3) { + if (compare.length === 1) return minIndex(values, compare); + let minValue; + let min = -1; + let index = -1; + for (const value of values) { + ++index; + if (min < 0 + ? compare(value, value) === 0 + : compare(value, minValue) < 0) { + minValue = value; + min = index; + } + } + return min; +} + +function greatest(values, compare = ascending$3) { + let max; + let defined = false; + if (compare.length === 1) { + let maxValue; + for (const element of values) { + const value = compare(element); + if (defined + ? ascending$3(value, maxValue) > 0 + : ascending$3(value, value) === 0) { + max = element; + maxValue = value; + defined = true; + } + } + } else { + for (const value of values) { + if (defined + ? compare(value, max) > 0 + : compare(value, value) === 0) { + max = value; + defined = true; + } + } + } + return max; +} + +function greatestIndex(values, compare = ascending$3) { + if (compare.length === 1) return maxIndex(values, compare); + let maxValue; + let max = -1; + let index = -1; + for (const value of values) { + ++index; + if (max < 0 + ? compare(value, value) === 0 + : compare(value, maxValue) > 0) { + maxValue = value; + max = index; + } + } + return max; +} + +function scan(values, compare) { + const index = leastIndex(values, compare); + return index < 0 ? undefined : index; +} + +var shuffle$1 = shuffler(Math.random); + +function shuffler(random) { + return function shuffle(array, i0 = 0, i1 = array.length) { + let m = i1 - (i0 = +i0); + while (m) { + const i = random() * m-- | 0, t = array[m + i0]; + array[m + i0] = array[i + i0]; + array[i + i0] = t; + } + return array; + }; +} + +function sum$1(values, valueof) { + let sum = 0; + if (valueof === undefined) { + for (let value of values) { + if (value = +value) { + sum += value; + } + } + } else { + let index = -1; + for (let value of values) { + if (value = +valueof(value, ++index, values)) { + sum += value; + } + } + } + return sum; +} + +function transpose(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = min$2(matrix, length$2), transpose = new Array(m); ++i < m;) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { + row[j] = matrix[j][i]; + } + } + return transpose; +} + +function length$2(d) { + return d.length; +} + +function zip() { + return transpose(arguments); +} + +function every(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + let index = -1; + for (const value of values) { + if (!test(value, ++index, values)) { + return false; + } + } + return true; +} + +function some(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + let index = -1; + for (const value of values) { + if (test(value, ++index, values)) { + return true; + } + } + return false; +} + +function filter$1(values, test) { + if (typeof test !== "function") throw new TypeError("test is not a function"); + const array = []; + let index = -1; + for (const value of values) { + if (test(value, ++index, values)) { + array.push(value); + } + } + return array; +} + +function map$1(values, mapper) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + if (typeof mapper !== "function") throw new TypeError("mapper is not a function"); + return Array.from(values, (value, index) => mapper(value, index, values)); +} + +function reduce(values, reducer, value) { + if (typeof reducer !== "function") throw new TypeError("reducer is not a function"); + const iterator = values[Symbol.iterator](); + let done, next, index = -1; + if (arguments.length < 3) { + ({done, value} = iterator.next()); + if (done) return; + ++index; + } + while (({done, value: next} = iterator.next()), !done) { + value = reducer(value, next, ++index, values); + } + return value; +} + +function reverse$1(values) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + return Array.from(values).reverse(); +} + +function difference(values, ...others) { + values = new Set(values); + for (const other of others) { + for (const value of other) { + values.delete(value); + } + } + return values; +} + +function disjoint(values, other) { + const iterator = other[Symbol.iterator](), set = new Set(); + for (const v of values) { + if (set.has(v)) return false; + let value, done; + while (({value, done} = iterator.next())) { + if (done) break; + if (Object.is(v, value)) return false; + set.add(value); + } + } + return true; +} + +function set$2(values) { + return values instanceof Set ? values : new Set(values); +} + +function intersection(values, ...others) { + values = new Set(values); + others = others.map(set$2); + out: for (const value of values) { + for (const other of others) { + if (!other.has(value)) { + values.delete(value); + continue out; + } + } + } + return values; +} + +function superset(values, other) { + const iterator = values[Symbol.iterator](), set = new Set(); + for (const o of other) { + if (set.has(o)) continue; + let value, done; + while (({value, done} = iterator.next())) { + if (done) return false; + set.add(value); + if (Object.is(o, value)) break; + } + } + return true; +} + +function subset(values, other) { + return superset(other, values); +} + +function union(...others) { + const set = new Set(); + for (const other of others) { + for (const o of other) { + set.add(o); + } + } + return set; +} + +var slice$3 = Array.prototype.slice; + +function identity$8(x) { + return x; +} + +var top = 1, + right = 2, + bottom = 3, + left = 4, + epsilon$5 = 1e-6; + +function translateX(x) { + return "translate(" + x + ",0)"; +} + +function translateY(y) { + return "translate(0," + y + ")"; +} + +function number$2(scale) { + return d => +scale(d); +} + +function center$1(scale, offset) { + offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; + if (scale.round()) offset = Math.round(offset); + return d => +scale(d) + offset; +} + +function entering() { + return !this.__axis; +} + +function axis(orient, scale) { + var tickArguments = [], + tickValues = null, + tickFormat = null, + tickSizeInner = 6, + tickSizeOuter = 6, + tickPadding = 3, + offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, + k = orient === top || orient === left ? -1 : 1, + x = orient === left || orient === right ? "x" : "y", + transform = orient === top || orient === bottom ? translateX : translateY; + + function axis(context) { + var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues, + format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$8) : tickFormat, + spacing = Math.max(tickSizeInner, 0) + tickPadding, + range = scale.range(), + range0 = +range[0] + offset, + range1 = +range[range.length - 1] + offset, + position = (scale.bandwidth ? center$1 : number$2)(scale.copy(), offset), + selection = context.selection ? context.selection() : context, + path = selection.selectAll(".domain").data([null]), + tick = selection.selectAll(".tick").data(values, scale).order(), + tickExit = tick.exit(), + tickEnter = tick.enter().append("g").attr("class", "tick"), + line = tick.select("line"), + text = tick.select("text"); + + path = path.merge(path.enter().insert("path", ".tick") + .attr("class", "domain") + .attr("stroke", "currentColor")); + + tick = tick.merge(tickEnter); + + line = line.merge(tickEnter.append("line") + .attr("stroke", "currentColor") + .attr(x + "2", k * tickSizeInner)); + + text = text.merge(tickEnter.append("text") + .attr("fill", "currentColor") + .attr(x, k * spacing) + .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); + + if (context !== selection) { + path = path.transition(context); + tick = tick.transition(context); + line = line.transition(context); + text = text.transition(context); + + tickExit = tickExit.transition(context) + .attr("opacity", epsilon$5) + .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); }); + + tickEnter + .attr("opacity", epsilon$5) + .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); }); + } + + tickExit.remove(); + + path + .attr("d", orient === left || orient === right + ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1) + : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1)); + + tick + .attr("opacity", 1) + .attr("transform", function(d) { return transform(position(d) + offset); }); + + line + .attr(x + "2", k * tickSizeInner); + + text + .attr(x, k * spacing) + .text(format); + + selection.filter(entering) + .attr("fill", "none") + .attr("font-size", 10) + .attr("font-family", "sans-serif") + .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); + + selection + .each(function() { this.__axis = position; }); + } + + axis.scale = function(_) { + return arguments.length ? (scale = _, axis) : scale; + }; + + axis.ticks = function() { + return tickArguments = slice$3.call(arguments), axis; + }; + + axis.tickArguments = function(_) { + return arguments.length ? (tickArguments = _ == null ? [] : slice$3.call(_), axis) : tickArguments.slice(); + }; + + axis.tickValues = function(_) { + return arguments.length ? (tickValues = _ == null ? null : slice$3.call(_), axis) : tickValues && tickValues.slice(); + }; + + axis.tickFormat = function(_) { + return arguments.length ? (tickFormat = _, axis) : tickFormat; + }; + + axis.tickSize = function(_) { + return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner; + }; + + axis.tickSizeInner = function(_) { + return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner; + }; + + axis.tickSizeOuter = function(_) { + return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter; + }; + + axis.tickPadding = function(_) { + return arguments.length ? (tickPadding = +_, axis) : tickPadding; + }; + + axis.offset = function(_) { + return arguments.length ? (offset = +_, axis) : offset; + }; + + return axis; +} + +function axisTop(scale) { + return axis(top, scale); +} + +function axisRight(scale) { + return axis(right, scale); +} + +function axisBottom(scale) { + return axis(bottom, scale); +} + +function axisLeft(scale) { + return axis(left, scale); +} + +var noop$3 = {value: () => {}}; + +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} + +function Dispatch(_) { + this._ = _; +} + +function parseTypenames$1(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); + return {type: t, name: name}; + }); +} + +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, + T = parseTypenames$1(typename + "", _), + t, + i = -1, + n = T.length; + + // If no callback was specified, return the callback of the given type and name. + if (arguments.length < 2) { + while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t; + return; + } + + // If a type was specified, set the callback for the given type and name. + // Otherwise, if a null callback was specified, remove callbacks of the given name. + if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback); + else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null); + } + + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + } +}; + +function get$1(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} + +function set$1(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop$3, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) type.push({name: name, value: callback}); + return type; +} + +var xhtml = "http://www.w3.org/1999/xhtml"; + +var namespaces = { + svg: "http://www.w3.org/2000/svg", + xhtml: xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; + +function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins +} + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, + uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml + ? document.createElement(name) + : document.createElementNS(uri, name); + }; +} + +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} + +function creator(name) { + var fullname = namespace(name); + return (fullname.local + ? creatorFixed + : creatorInherit)(fullname); +} + +function none$2() {} + +function selector(selector) { + return selector == null ? none$2 : function() { + return this.querySelector(selector); + }; +} + +function selection_select(select) { + if (typeof select !== "function") select = selector(select); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + + return new Selection$1(subgroups, this._parents); +} + +function array$4(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function empty$1() { + return []; +} + +function selectorAll(selector) { + return selector == null ? empty$1 : function() { + return this.querySelectorAll(selector); + }; +} + +function arrayAll(select) { + return function() { + var group = select.apply(this, arguments); + return group == null ? [] : array$4(group); + }; +} + +function selection_selectAll(select) { + if (typeof select === "function") select = arrayAll(select); + else select = selectorAll(select); + + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + + return new Selection$1(subgroups, parents); +} + +function matcher(selector) { + return function() { + return this.matches(selector); + }; +} + +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +var find$1 = Array.prototype.find; + +function childFind(match) { + return function() { + return find$1.call(this.children, match); + }; +} + +function childFirst() { + return this.firstElementChild; +} + +function selection_selectChild(match) { + return this.select(match == null ? childFirst + : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +var filter = Array.prototype.filter; + +function children() { + return this.children; +} + +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} + +function selection_selectChildren(match) { + return this.selectAll(match == null ? children + : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +function selection_filter(match) { + if (typeof match !== "function") match = matcher(match); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + + return new Selection$1(subgroups, this._parents); +} + +function sparse(update) { + return new Array(update.length); +} + +function selection_enter() { + return new Selection$1(this._enter || this._groups.map(sparse), this._parents); +} + +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} + +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, + insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, + querySelector: function(selector) { return this._parent.querySelector(selector); }, + querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } +}; + +function constant$a(x) { + return function() { + return x; + }; +} + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, + node, + groupLength = group.length, + dataLength = data.length; + + // Put any non-null nodes that fit into update. + // Put any null nodes into enter. + // Put any remaining data into enter. + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + + // Put any non-null nodes that don’t fit into exit. + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} + +function bindKey(parent, group, enter, update, exit, data, key) { + var i, + node, + nodeByKeyValue = new Map, + groupLength = group.length, + dataLength = data.length, + keyValues = new Array(groupLength), + keyValue; + + // Compute the key for each node. + // If multiple nodes have the same key, the duplicates are added to exit. + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + + // Compute the key for each datum. + // If there a node associated with this key, join and add it to update. + // If there is not (or the key is a duplicate), add it to enter. + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + + // Add any remaining nodes that were not bound to data to exit. + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) { + exit[i] = node; + } + } +} + +function datum(node) { + return node.__data__; +} + +function selection_data(value, key) { + if (!arguments.length) return Array.from(this, datum); + + var bind = key ? bindKey : bindIndex, + parents = this._parents, + groups = this._groups; + + if (typeof value !== "function") value = constant$a(value); + + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], + group = groups[j], + groupLength = group.length, + data = array$4(value.call(parent, parent && parent.__data__, j, parents)), + dataLength = data.length, + enterGroup = enter[j] = new Array(dataLength), + updateGroup = update[j] = new Array(dataLength), + exitGroup = exit[j] = new Array(groupLength); + + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + + // Now connect the enter nodes to their following update node, such that + // appendChild can insert the materialized enter node before this node, + // rather than at the end of the parent node. + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength); + previous._next = next || null; + } + } + } + + update = new Selection$1(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} + +function selection_exit() { + return new Selection$1(this._exit || this._groups.map(sparse), this._parents); +} + +function selection_join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + enter = typeof onenter === "function" ? onenter(enter) : enter.append(onenter + ""); + if (onupdate != null) update = onupdate(update); + if (onexit == null) exit.remove(); else onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +function selection_merge(selection) { + if (!(selection instanceof Selection$1)) throw new Error("invalid merge"); + + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + + return new Selection$1(merges, this._parents); +} + +function selection_order() { + + for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + + return this; +} + +function selection_sort(compare) { + if (!compare) compare = ascending$2; + + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + + return new Selection$1(sortgroups, this._parents).order(); +} + +function ascending$2(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +function selection_call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +function selection_nodes() { + return Array.from(this); +} + +function selection_node() { + + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) return node; + } + } + + return null; +} + +function selection_size() { + let size = 0; + for (const node of this) ++size; // eslint-disable-line no-unused-vars + return size; +} + +function selection_empty() { + return !this.node(); +} + +function selection_each(callback) { + + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) callback.call(node, node.__data__, i, group); + } + } + + return this; +} + +function attrRemove$1(name) { + return function() { + this.removeAttribute(name); + }; +} + +function attrRemoveNS$1(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} + +function attrConstant$1(name, value) { + return function() { + this.setAttribute(name, value); + }; +} + +function attrConstantNS$1(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} + +function attrFunction$1(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttribute(name); + else this.setAttribute(name, v); + }; +} + +function attrFunctionNS$1(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttributeNS(fullname.space, fullname.local); + else this.setAttributeNS(fullname.space, fullname.local, v); + }; +} + +function selection_attr(name, value) { + var fullname = namespace(name); + + if (arguments.length < 2) { + var node = this.node(); + return fullname.local + ? node.getAttributeNS(fullname.space, fullname.local) + : node.getAttribute(fullname); + } + + return this.each((value == null + ? (fullname.local ? attrRemoveNS$1 : attrRemove$1) : (typeof value === "function" + ? (fullname.local ? attrFunctionNS$1 : attrFunction$1) + : (fullname.local ? attrConstantNS$1 : attrConstant$1)))(fullname, value)); +} + +function defaultView(node) { + return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node + || (node.document && node) // node is a Window + || node.defaultView; // node is a Document +} + +function styleRemove$1(name) { + return function() { + this.style.removeProperty(name); + }; +} + +function styleConstant$1(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} + +function styleFunction$1(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.style.removeProperty(name); + else this.style.setProperty(name, v, priority); + }; +} + +function selection_style(name, value, priority) { + return arguments.length > 1 + ? this.each((value == null + ? styleRemove$1 : typeof value === "function" + ? styleFunction$1 + : styleConstant$1)(name, value, priority == null ? "" : priority)) + : styleValue(this.node(), name); +} + +function styleValue(node, name) { + return node.style.getPropertyValue(name) + || defaultView(node).getComputedStyle(node, null).getPropertyValue(name); +} + +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} + +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} + +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) delete this[name]; + else this[name] = v; + }; +} + +function selection_property(name, value) { + return arguments.length > 1 + ? this.each((value == null + ? propertyRemove : typeof value === "function" + ? propertyFunction + : propertyConstant)(name, value)) + : this.node()[name]; +} + +function classArray(string) { + return string.trim().split(/^|\s+/); +} + +function classList(node) { + return node.classList || new ClassList(node); +} + +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} + +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; + +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.add(names[i]); +} + +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.remove(names[i]); +} + +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} + +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} + +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} + +function selection_classed(name, value) { + var names = classArray(name + ""); + + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) if (!list.contains(names[i])) return false; + return true; + } + + return this.each((typeof value === "function" + ? classedFunction : value + ? classedTrue + : classedFalse)(names, value)); +} + +function textRemove() { + this.textContent = ""; +} + +function textConstant$1(value) { + return function() { + this.textContent = value; + }; +} + +function textFunction$1(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} + +function selection_text(value) { + return arguments.length + ? this.each(value == null + ? textRemove : (typeof value === "function" + ? textFunction$1 + : textConstant$1)(value)) + : this.node().textContent; +} + +function htmlRemove() { + this.innerHTML = ""; +} + +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} + +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} + +function selection_html(value) { + return arguments.length + ? this.each(value == null + ? htmlRemove : (typeof value === "function" + ? htmlFunction + : htmlConstant)(value)) + : this.node().innerHTML; +} + +function raise() { + if (this.nextSibling) this.parentNode.appendChild(this); +} + +function selection_raise() { + return this.each(raise); +} + +function lower() { + if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); +} + +function selection_lower() { + return this.each(lower); +} + +function selection_append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +function constantNull() { + return null; +} + +function selection_insert(name, before) { + var create = typeof name === "function" ? name : creator(name), + select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +function remove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); +} + +function selection_remove() { + return this.each(remove); +} + +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} + +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} + +function selection_clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +function selection_datum(value) { + return arguments.length + ? this.property("__data__", value) + : this.node().__data__; +} + +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} + +function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + return {type: t, name: name}; + }); +} + +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) on.length = i; + else delete this.__on; + }; +} + +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options}; + if (!on) this.__on = [o]; + else on.push(o); + }; +} + +function selection_on(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + + if (arguments.length < 2) { + var on = this.node().__on; + if (on) for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); + return this; +} + +function dispatchEvent(node, type, params) { + var window = defaultView(node), + event = window.CustomEvent; + + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else event.initEvent(type, false, false); + } + + node.dispatchEvent(event); +} + +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} + +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} + +function selection_dispatch(type, params) { + return this.each((typeof params === "function" + ? dispatchFunction + : dispatchConstant)(type, params)); +} + +function* selection_iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) yield node; + } + } +} + +var root$1 = [null]; + +function Selection$1(groups, parents) { + this._groups = groups; + this._parents = parents; +} + +function selection() { + return new Selection$1([[document.documentElement]], root$1); +} + +function selection_selection() { + return this; +} + +Selection$1.prototype = selection.prototype = { + constructor: Selection$1, + select: selection_select, + selectAll: selection_selectAll, + selectChild: selection_selectChild, + selectChildren: selection_selectChildren, + filter: selection_filter, + data: selection_data, + enter: selection_enter, + exit: selection_exit, + join: selection_join, + merge: selection_merge, + selection: selection_selection, + order: selection_order, + sort: selection_sort, + call: selection_call, + nodes: selection_nodes, + node: selection_node, + size: selection_size, + empty: selection_empty, + each: selection_each, + attr: selection_attr, + style: selection_style, + property: selection_property, + classed: selection_classed, + text: selection_text, + html: selection_html, + raise: selection_raise, + lower: selection_lower, + append: selection_append, + insert: selection_insert, + remove: selection_remove, + clone: selection_clone, + datum: selection_datum, + on: selection_on, + dispatch: selection_dispatch, + [Symbol.iterator]: selection_iterator +}; + +function select(selector) { + return typeof selector === "string" + ? new Selection$1([[document.querySelector(selector)]], [document.documentElement]) + : new Selection$1([[selector]], root$1); +} + +function create$1(name) { + return select(creator(name).call(document.documentElement)); +} + +var nextId = 0; + +function local$1() { + return new Local; +} + +function Local() { + this._ = "@" + (++nextId).toString(36); +} + +Local.prototype = local$1.prototype = { + constructor: Local, + get: function(node) { + var id = this._; + while (!(id in node)) if (!(node = node.parentNode)) return; + return node[id]; + }, + set: function(node, value) { + return node[this._] = value; + }, + remove: function(node) { + return this._ in node && delete node[this._]; + }, + toString: function() { + return this._; + } +}; + +function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) event = sourceEvent; + return event; +} + +function pointer(event, node) { + event = sourceEvent(event); + if (node === undefined) node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +function pointers(events, node) { + if (events.target) { // i.e., instanceof Event, not TouchList or iterable + events = sourceEvent(events); + if (node === undefined) node = events.currentTarget; + events = events.touches || [events]; + } + return Array.from(events, event => pointer(event, node)); +} + +function selectAll(selector) { + return typeof selector === "string" + ? new Selection$1([document.querySelectorAll(selector)], [document.documentElement]) + : new Selection$1([selector == null ? [] : array$4(selector)], root$1); +} + +function nopropagation$2(event) { + event.stopImmediatePropagation(); +} + +function noevent$2(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +function dragDisable(view) { + var root = view.document.documentElement, + selection = select(view).on("dragstart.drag", noevent$2, true); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent$2, true); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} + +function yesdrag(view, noclick) { + var root = view.document.documentElement, + selection = select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent$2, true); + setTimeout(function() { selection.on("click.drag", null); }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +var constant$9 = x => () => x; + +function DragEvent(type, { + sourceEvent, + subject, + target, + identifier, + active, + x, y, dx, dy, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + subject: {value: subject, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + identifier: {value: identifier, enumerable: true, configurable: true}, + active: {value: active, enumerable: true, configurable: true}, + x: {value: x, enumerable: true, configurable: true}, + y: {value: y, enumerable: true, configurable: true}, + dx: {value: dx, enumerable: true, configurable: true}, + dy: {value: dy, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +DragEvent.prototype.on = function() { + var value = this._.on.apply(this._, arguments); + return value === this._ ? this : value; +}; + +// Ignore right-click, since that should open the context menu. +function defaultFilter$2(event) { + return !event.ctrlKey && !event.button; +} + +function defaultContainer() { + return this.parentNode; +} + +function defaultSubject(event, d) { + return d == null ? {x: event.x, y: event.y} : d; +} + +function defaultTouchable$2() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +function drag() { + var filter = defaultFilter$2, + container = defaultContainer, + subject = defaultSubject, + touchable = defaultTouchable$2, + gestures = {}, + listeners = dispatch("start", "drag", "end"), + active = 0, + mousedownx, + mousedowny, + mousemoving, + touchending, + clickDistance2 = 0; + + function drag(selection) { + selection + .on("mousedown.drag", mousedowned) + .filter(touchable) + .on("touchstart.drag", touchstarted) + .on("touchmove.drag", touchmoved) + .on("touchend.drag touchcancel.drag", touchended) + .style("touch-action", "none") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + function mousedowned(event, d) { + if (touchending || !filter.call(this, event, d)) return; + var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse"); + if (!gesture) return; + select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true); + dragDisable(event.view); + nopropagation$2(event); + mousemoving = false; + mousedownx = event.clientX; + mousedowny = event.clientY; + gesture("start", event); + } + + function mousemoved(event) { + noevent$2(event); + if (!mousemoving) { + var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; + mousemoving = dx * dx + dy * dy > clickDistance2; + } + gestures.mouse("drag", event); + } + + function mouseupped(event) { + select(event.view).on("mousemove.drag mouseup.drag", null); + yesdrag(event.view, mousemoving); + noevent$2(event); + gestures.mouse("end", event); + } + + function touchstarted(event, d) { + if (!filter.call(this, event, d)) return; + var touches = event.changedTouches, + c = container.call(this, event, d), + n = touches.length, i, gesture; + + for (i = 0; i < n; ++i) { + if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) { + nopropagation$2(event); + gesture("start", event, touches[i]); + } + } + } + + function touchmoved(event) { + var touches = event.changedTouches, + n = touches.length, i, gesture; + + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + noevent$2(event); + gesture("drag", event, touches[i]); + } + } + } + + function touchended(event) { + var touches = event.changedTouches, + n = touches.length, i, gesture; + + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + nopropagation$2(event); + gesture("end", event, touches[i]); + } + } + } + + function beforestart(that, container, event, d, identifier, touch) { + var dispatch = listeners.copy(), + p = pointer(touch || event, container), dx, dy, + s; + + if ((s = subject.call(that, new DragEvent("beforestart", { + sourceEvent: event, + target: drag, + identifier, + active, + x: p[0], + y: p[1], + dx: 0, + dy: 0, + dispatch + }), d)) == null) return; + + dx = s.x - p[0] || 0; + dy = s.y - p[1] || 0; + + return function gesture(type, event, touch) { + var p0 = p, n; + switch (type) { + case "start": gestures[identifier] = gesture, n = active++; break; + case "end": delete gestures[identifier], --active; // nobreak + case "drag": p = pointer(touch || event, container), n = active; break; + } + dispatch.call( + type, + that, + new DragEvent(type, { + sourceEvent: event, + subject: s, + target: drag, + identifier, + active: n, + x: p[0] + dx, + y: p[1] + dy, + dx: p[0] - p0[0], + dy: p[1] - p0[1], + dispatch + }), + d + ); + }; + } + + drag.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant$9(!!_), drag) : filter; + }; + + drag.container = function(_) { + return arguments.length ? (container = typeof _ === "function" ? _ : constant$9(_), drag) : container; + }; + + drag.subject = function(_) { + return arguments.length ? (subject = typeof _ === "function" ? _ : constant$9(_), drag) : subject; + }; + + drag.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$9(!!_), drag) : touchable; + }; + + drag.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? drag : value; + }; + + drag.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); + }; + + return drag; +} + +function define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} + +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) prototype[key] = definition[key]; + return prototype; +} + +function Color() {} + +var darker = 0.7; +var brighter = 1 / darker; + +var reI = "\\s*([+-]?\\d+)\\s*", + reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", + reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", + reHex = /^#([0-9a-f]{3,8})$/, + reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), + reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), + reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), + reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), + reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), + reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); + +var named = { + aliceblue: 0xf0f8ff, + antiquewhite: 0xfaebd7, + aqua: 0x00ffff, + aquamarine: 0x7fffd4, + azure: 0xf0ffff, + beige: 0xf5f5dc, + bisque: 0xffe4c4, + black: 0x000000, + blanchedalmond: 0xffebcd, + blue: 0x0000ff, + blueviolet: 0x8a2be2, + brown: 0xa52a2a, + burlywood: 0xdeb887, + cadetblue: 0x5f9ea0, + chartreuse: 0x7fff00, + chocolate: 0xd2691e, + coral: 0xff7f50, + cornflowerblue: 0x6495ed, + cornsilk: 0xfff8dc, + crimson: 0xdc143c, + cyan: 0x00ffff, + darkblue: 0x00008b, + darkcyan: 0x008b8b, + darkgoldenrod: 0xb8860b, + darkgray: 0xa9a9a9, + darkgreen: 0x006400, + darkgrey: 0xa9a9a9, + darkkhaki: 0xbdb76b, + darkmagenta: 0x8b008b, + darkolivegreen: 0x556b2f, + darkorange: 0xff8c00, + darkorchid: 0x9932cc, + darkred: 0x8b0000, + darksalmon: 0xe9967a, + darkseagreen: 0x8fbc8f, + darkslateblue: 0x483d8b, + darkslategray: 0x2f4f4f, + darkslategrey: 0x2f4f4f, + darkturquoise: 0x00ced1, + darkviolet: 0x9400d3, + deeppink: 0xff1493, + deepskyblue: 0x00bfff, + dimgray: 0x696969, + dimgrey: 0x696969, + dodgerblue: 0x1e90ff, + firebrick: 0xb22222, + floralwhite: 0xfffaf0, + forestgreen: 0x228b22, + fuchsia: 0xff00ff, + gainsboro: 0xdcdcdc, + ghostwhite: 0xf8f8ff, + gold: 0xffd700, + goldenrod: 0xdaa520, + gray: 0x808080, + green: 0x008000, + greenyellow: 0xadff2f, + grey: 0x808080, + honeydew: 0xf0fff0, + hotpink: 0xff69b4, + indianred: 0xcd5c5c, + indigo: 0x4b0082, + ivory: 0xfffff0, + khaki: 0xf0e68c, + lavender: 0xe6e6fa, + lavenderblush: 0xfff0f5, + lawngreen: 0x7cfc00, + lemonchiffon: 0xfffacd, + lightblue: 0xadd8e6, + lightcoral: 0xf08080, + lightcyan: 0xe0ffff, + lightgoldenrodyellow: 0xfafad2, + lightgray: 0xd3d3d3, + lightgreen: 0x90ee90, + lightgrey: 0xd3d3d3, + lightpink: 0xffb6c1, + lightsalmon: 0xffa07a, + lightseagreen: 0x20b2aa, + lightskyblue: 0x87cefa, + lightslategray: 0x778899, + lightslategrey: 0x778899, + lightsteelblue: 0xb0c4de, + lightyellow: 0xffffe0, + lime: 0x00ff00, + limegreen: 0x32cd32, + linen: 0xfaf0e6, + magenta: 0xff00ff, + maroon: 0x800000, + mediumaquamarine: 0x66cdaa, + mediumblue: 0x0000cd, + mediumorchid: 0xba55d3, + mediumpurple: 0x9370db, + mediumseagreen: 0x3cb371, + mediumslateblue: 0x7b68ee, + mediumspringgreen: 0x00fa9a, + mediumturquoise: 0x48d1cc, + mediumvioletred: 0xc71585, + midnightblue: 0x191970, + mintcream: 0xf5fffa, + mistyrose: 0xffe4e1, + moccasin: 0xffe4b5, + navajowhite: 0xffdead, + navy: 0x000080, + oldlace: 0xfdf5e6, + olive: 0x808000, + olivedrab: 0x6b8e23, + orange: 0xffa500, + orangered: 0xff4500, + orchid: 0xda70d6, + palegoldenrod: 0xeee8aa, + palegreen: 0x98fb98, + paleturquoise: 0xafeeee, + palevioletred: 0xdb7093, + papayawhip: 0xffefd5, + peachpuff: 0xffdab9, + peru: 0xcd853f, + pink: 0xffc0cb, + plum: 0xdda0dd, + powderblue: 0xb0e0e6, + purple: 0x800080, + rebeccapurple: 0x663399, + red: 0xff0000, + rosybrown: 0xbc8f8f, + royalblue: 0x4169e1, + saddlebrown: 0x8b4513, + salmon: 0xfa8072, + sandybrown: 0xf4a460, + seagreen: 0x2e8b57, + seashell: 0xfff5ee, + sienna: 0xa0522d, + silver: 0xc0c0c0, + skyblue: 0x87ceeb, + slateblue: 0x6a5acd, + slategray: 0x708090, + slategrey: 0x708090, + snow: 0xfffafa, + springgreen: 0x00ff7f, + steelblue: 0x4682b4, + tan: 0xd2b48c, + teal: 0x008080, + thistle: 0xd8bfd8, + tomato: 0xff6347, + turquoise: 0x40e0d0, + violet: 0xee82ee, + wheat: 0xf5deb3, + white: 0xffffff, + whitesmoke: 0xf5f5f5, + yellow: 0xffff00, + yellowgreen: 0x9acd32 +}; + +define(Color, color, { + copy: function(channels) { + return Object.assign(new this.constructor, this, channels); + }, + displayable: function() { + return this.rgb().displayable(); + }, + hex: color_formatHex, // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); + +function color_formatHex() { + return this.rgb().formatHex(); +} + +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} + +function color_formatRgb() { + return this.rgb().formatRgb(); +} + +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 + : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 + : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 + : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 + : null) // invalid hex + : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) + : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) + : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) + : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) + : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) + : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) + : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins + : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) + : null; +} + +function rgbn(n) { + return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); +} + +function rgba(r, g, b, a) { + if (a <= 0) r = g = b = NaN; + return new Rgb(r, g, b, a); +} + +function rgbConvert(o) { + if (!(o instanceof Color)) o = color(o); + if (!o) return new Rgb; + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} + +function rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} + +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} + +define(Rgb, rgb, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb: function() { + return this; + }, + displayable: function() { + return (-0.5 <= this.r && this.r < 255.5) + && (-0.5 <= this.g && this.g < 255.5) + && (-0.5 <= this.b && this.b < 255.5) + && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); + +function rgb_formatHex() { + return "#" + hex(this.r) + hex(this.g) + hex(this.b); +} + +function rgb_formatRgb() { + var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); + return (a === 1 ? "rgb(" : "rgba(") + + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + + (a === 1 ? ")" : ", " + a + ")"); +} + +function hex(value) { + value = Math.max(0, Math.min(255, Math.round(value) || 0)); + return (value < 16 ? "0" : "") + value.toString(16); +} + +function hsla(h, s, l, a) { + if (a <= 0) h = s = l = NaN; + else if (l <= 0 || l >= 1) h = s = NaN; + else if (s <= 0) h = NaN; + return new Hsl(h, s, l, a); +} + +function hslConvert(o) { + if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) o = color(o); + if (!o) return new Hsl; + if (o instanceof Hsl) return o; + o = o.rgb(); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = NaN, + s = max - min, + l = (max + min) / 2; + if (s) { + if (r === max) h = (g - b) / s + (g < b) * 6; + else if (g === max) h = (b - r) / s + 2; + else h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} + +function hsl$2(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} + +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Hsl, hsl$2, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb: function() { + var h = this.h % 360 + (this.h < 0) * 360, + s = isNaN(h) || isNaN(this.s) ? 0 : this.s, + l = this.l, + m2 = l + (l < 0.5 ? l : 1 - l) * s, + m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + displayable: function() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) + && (0 <= this.l && this.l <= 1) + && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl: function() { + var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); + return (a === 1 ? "hsl(" : "hsla(") + + (this.h || 0) + ", " + + (this.s || 0) * 100 + "%, " + + (this.l || 0) * 100 + "%" + + (a === 1 ? ")" : ", " + a + ")"); + } +})); + +/* From FvD 13.37, CSS Color Module Level 3 */ +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 + : h < 180 ? m2 + : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 + : m1) * 255; +} + +const radians$1 = Math.PI / 180; +const degrees$2 = 180 / Math.PI; + +// https://observablehq.com/@mbostock/lab-and-rgb +const K = 18, + Xn = 0.96422, + Yn = 1, + Zn = 0.82521, + t0$1 = 4 / 29, + t1$1 = 6 / 29, + t2 = 3 * t1$1 * t1$1, + t3 = t1$1 * t1$1 * t1$1; + +function labConvert(o) { + if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); + if (o instanceof Hcl) return hcl2lab(o); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = rgb2lrgb(o.r), + g = rgb2lrgb(o.g), + b = rgb2lrgb(o.b), + y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; + if (r === g && g === b) x = z = y; else { + x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); + z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); + } + return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); +} + +function gray(l, opacity) { + return new Lab(l, 0, 0, opacity == null ? 1 : opacity); +} + +function lab$1(l, a, b, opacity) { + return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); +} + +function Lab(l, a, b, opacity) { + this.l = +l; + this.a = +a; + this.b = +b; + this.opacity = +opacity; +} + +define(Lab, lab$1, extend(Color, { + brighter: function(k) { + return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + darker: function(k) { + return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); + }, + rgb: function() { + var y = (this.l + 16) / 116, + x = isNaN(this.a) ? y : y + this.a / 500, + z = isNaN(this.b) ? y : y - this.b / 200; + x = Xn * lab2xyz(x); + y = Yn * lab2xyz(y); + z = Zn * lab2xyz(z); + return new Rgb( + lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), + lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), + lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), + this.opacity + ); + } +})); + +function xyz2lab(t) { + return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1; +} + +function lab2xyz(t) { + return t > t1$1 ? t * t * t : t2 * (t - t0$1); +} + +function lrgb2rgb(x) { + return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); +} + +function rgb2lrgb(x) { + return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); +} + +function hclConvert(o) { + if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); + if (!(o instanceof Lab)) o = labConvert(o); + if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); + var h = Math.atan2(o.b, o.a) * degrees$2; + return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); +} + +function lch(l, c, h, opacity) { + return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function hcl$2(h, c, l, opacity) { + return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); +} + +function Hcl(h, c, l, opacity) { + this.h = +h; + this.c = +c; + this.l = +l; + this.opacity = +opacity; +} + +function hcl2lab(o) { + if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); + var h = o.h * radians$1; + return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); +} + +define(Hcl, hcl$2, extend(Color, { + brighter: function(k) { + return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); + }, + darker: function(k) { + return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); + }, + rgb: function() { + return hcl2lab(this).rgb(); + } +})); + +var A = -0.14861, + B = +1.78277, + C = -0.29227, + D = -0.90649, + E = +1.97294, + ED = E * D, + EB = E * B, + BC_DA = B * C - D * A; + +function cubehelixConvert(o) { + if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Rgb)) o = rgbConvert(o); + var r = o.r / 255, + g = o.g / 255, + b = o.b / 255, + l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), + bl = b - l, + k = (E * (g - l) - C * bl) / D, + s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 + h = s ? Math.atan2(k, bl) * degrees$2 - 120 : NaN; + return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); +} + +function cubehelix$3(h, s, l, opacity) { + return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); +} + +function Cubehelix(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} + +define(Cubehelix, cubehelix$3, extend(Color, { + brighter: function(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + darker: function(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Cubehelix(this.h, this.s, this.l * k, this.opacity); + }, + rgb: function() { + var h = isNaN(this.h) ? 0 : (this.h + 120) * radians$1, + l = +this.l, + a = isNaN(this.s) ? 0 : this.s * l * (1 - l), + cosh = Math.cos(h), + sinh = Math.sin(h); + return new Rgb( + 255 * (l + a * (A * cosh + B * sinh)), + 255 * (l + a * (C * cosh + D * sinh)), + 255 * (l + a * (E * cosh)), + this.opacity + ); + } +})); + +function basis$1(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + + (4 - 6 * t2 + 3 * t3) * v1 + + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + + t3 * v3) / 6; +} + +function basis$2(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), + v1 = values[i], + v2 = values[i + 1], + v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, + v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis$1((t - i / n) * n, v0, v1, v2, v3); + }; +} + +function basisClosed$1(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), + v0 = values[(i + n - 1) % n], + v1 = values[i % n], + v2 = values[(i + 1) % n], + v3 = values[(i + 2) % n]; + return basis$1((t - i / n) * n, v0, v1, v2, v3); + }; +} + +var constant$8 = x => () => x; + +function linear$2(a, d) { + return function(t) { + return a + t * d; + }; +} + +function exponential$1(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} + +function hue$1(a, b) { + var d = b - a; + return d ? linear$2(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$8(isNaN(a) ? b : a); +} + +function gamma$1(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential$1(a, b, y) : constant$8(isNaN(a) ? b : a); + }; +} + +function nogamma(a, b) { + var d = b - a; + return d ? linear$2(a, d) : constant$8(isNaN(a) ? b : a); +} + +var interpolateRgb = (function rgbGamma(y) { + var color = gamma$1(y); + + function rgb$1(start, end) { + var r = color((start = rgb(start)).r, (end = rgb(end)).r), + g = color(start.g, end.g), + b = color(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + + rgb$1.gamma = rgbGamma; + + return rgb$1; +})(1); + +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, + r = new Array(n), + g = new Array(n), + b = new Array(n), + i, color; + for (i = 0; i < n; ++i) { + color = rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} + +var rgbBasis = rgbSpline(basis$2); +var rgbBasisClosed = rgbSpline(basisClosed$1); + +function numberArray(a, b) { + if (!b) b = []; + var n = a ? Math.min(b.length, a.length) : 0, + c = b.slice(), + i; + return function(t) { + for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} + +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +function array$3(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} + +function genericArray(a, b) { + var nb = b ? b.length : 0, + na = a ? Math.min(nb, a.length) : 0, + x = new Array(na), + c = new Array(nb), + i; + + for (i = 0; i < na; ++i) x[i] = interpolate$2(a[i], b[i]); + for (; i < nb; ++i) c[i] = b[i]; + + return function(t) { + for (i = 0; i < na; ++i) c[i] = x[i](t); + return c; + }; +} + +function date$1(a, b) { + var d = new Date; + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +function interpolateNumber(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +function object$1(a, b) { + var i = {}, + c = {}, + k; + + if (a === null || typeof a !== "object") a = {}; + if (b === null || typeof b !== "object") b = {}; + + for (k in b) { + if (k in a) { + i[k] = interpolate$2(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + reB = new RegExp(reA.source, "g"); + +function zero(b) { + return function() { + return b; + }; +} + +function one(b) { + return function(t) { + return b(t) + ""; + }; +} + +function interpolateString(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b + am, // current match in a + bm, // current match in b + bs, // string preceding current number in b, if any + i = -1, // index in s + s = [], // string constants and placeholders + q = []; // number interpolators + + // Coerce inputs to strings. + a = a + "", b = b + ""; + + // Interpolate pairs of numbers in a & b. + while ((am = reA.exec(a)) + && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { // a string precedes the next number in b + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match + if (s[i]) s[i] += bm; // coalesce with previous string + else s[++i] = bm; + } else { // interpolate non-matching numbers + s[++i] = null; + q.push({i: i, x: interpolateNumber(am, bm)}); + } + bi = reB.lastIndex; + } + + // Add remains of b. + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; // coalesce with previous string + else s[++i] = bs; + } + + // Special optimization for only a single match. + // Otherwise, interpolate each of the numbers and rejoin the string. + return s.length < 2 ? (q[0] + ? one(q[0].x) + : zero(b)) + : (b = q.length, function(t) { + for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }); +} + +function interpolate$2(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? constant$8(b) + : (t === "number" ? interpolateNumber + : t === "string" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString) + : b instanceof color ? interpolateRgb + : b instanceof Date ? date$1 + : isNumberArray(b) ? numberArray + : Array.isArray(b) ? genericArray + : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object$1 + : interpolateNumber)(a, b); +} + +function discrete(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; + }; +} + +function hue(a, b) { + var i = hue$1(+a, +b); + return function(t) { + var x = i(t); + return x - 360 * Math.floor(x / 360); + }; +} + +function interpolateRound(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} + +var degrees$1 = 180 / Math.PI; + +var identity$7 = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; + +function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees$1, + skewX: Math.atan(skewX) * degrees$1, + scaleX: scaleX, + scaleY: scaleY + }; +} + +var svgNode; + +/* eslint-disable no-undef */ +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity$7 : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} + +function parseSvg(value) { + if (value == null) return identity$7; + if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) return identity$7; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path + q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b)}); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + + function skewX(a, b, s, q) { + if (a !== b) { + q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b)}); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + + return function(a, b) { + var s = [], // string constants and placeholders + q = []; // number interpolators + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; // gc + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} + +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +var epsilon2$1 = 1e-12; + +function cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; +} + +function sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; +} + +function tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); +} + +var interpolateZoom = (function zoomRho(rho, rho2, rho4) { + + // p0 = [ux0, uy0, w0] + // p1 = [ux1, uy1, w1] + function zoom(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], + ux1 = p1[0], uy1 = p1[1], w1 = p1[2], + dx = ux1 - ux0, + dy = uy1 - uy0, + d2 = dx * dx + dy * dy, + i, + S; + + // Special case for u0 ≅ u1. + if (d2 < epsilon2$1) { + S = Math.log(w1 / w0) / rho; + i = function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(rho * t * S) + ]; + }; + } + + // General case. + else { + var d1 = Math.sqrt(d2), + b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), + b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), + r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), + r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / rho; + i = function(t) { + var s = t * S, + coshr0 = cosh(r0), + u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / cosh(rho * s + r0) + ]; + }; + } + + i.duration = S * 1000 * rho / Math.SQRT2; + + return i; + } + + zoom.rho = function(_) { + var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; + return zoomRho(_1, _2, _4); + }; + + return zoom; +})(Math.SQRT2, 2, 4); + +function hsl(hue) { + return function(start, end) { + var h = hue((start = hsl$2(start)).h, (end = hsl$2(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + } +} + +var hsl$1 = hsl(hue$1); +var hslLong = hsl(nogamma); + +function lab(start, end) { + var l = nogamma((start = lab$1(start)).l, (end = lab$1(end)).l), + a = nogamma(start.a, end.a), + b = nogamma(start.b, end.b), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.l = l(t); + start.a = a(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; +} + +function hcl(hue) { + return function(start, end) { + var h = hue((start = hcl$2(start)).h, (end = hcl$2(end)).h), + c = nogamma(start.c, end.c), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.c = c(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + } +} + +var hcl$1 = hcl(hue$1); +var hclLong = hcl(nogamma); + +function cubehelix$1(hue) { + return (function cubehelixGamma(y) { + y = +y; + + function cubehelix(start, end) { + var h = hue((start = cubehelix$3(start)).h, (end = cubehelix$3(end)).h), + s = nogamma(start.s, end.s), + l = nogamma(start.l, end.l), + opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(Math.pow(t, y)); + start.opacity = opacity(t); + return start + ""; + }; + } + + cubehelix.gamma = cubehelixGamma; + + return cubehelix; + })(1); +} + +var cubehelix$2 = cubehelix$1(hue$1); +var cubehelixLong = cubehelix$1(nogamma); + +function piecewise(interpolate, values) { + if (values === undefined) values = interpolate, interpolate = interpolate$2; + var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); + while (i < n) I[i] = interpolate(v, v = values[++i]); + return function(t) { + var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); + return I[i](t - i); + }; +} + +function quantize$1(interpolator, n) { + var samples = new Array(n); + for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); + return samples; +} + +var frame = 0, // is an animation frame pending? + timeout$1 = 0, // is a timeout pending? + interval$1 = 0, // are any timers active? + pokeDelay = 1000, // how frequently we check for clock skew + taskHead, + taskTail, + clockLast = 0, + clockNow = 0, + clockSkew = 0, + clock = typeof performance === "object" && performance.now ? performance : Date, + setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; + +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} + +function clearNow() { + clockNow = 0; +} + +function Timer() { + this._call = + this._time = + this._next = null; +} + +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) taskTail._next = this; + else taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; + +function timer(callback, delay, time) { + var t = new Timer; + t.restart(callback, delay, time); + return t; +} + +function timerFlush() { + now(); // Get the current time, if not already set. + ++frame; // Pretend we’ve set an alarm, if we haven’t already. + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) t._call.call(null, e); + t = t._next; + } + --frame; +} + +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + frame = timeout$1 = 0; + try { + timerFlush(); + } finally { + frame = 0; + nap(); + clockNow = 0; + } +} + +function poke() { + var now = clock.now(), delay = now - clockLast; + if (delay > pokeDelay) clockSkew -= delay, clockLast = now; +} + +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} + +function sleep(time) { + if (frame) return; // Soonest alarm already set, or will be. + if (timeout$1) timeout$1 = clearTimeout(timeout$1); + var delay = time - clockNow; // Strictly less than if we recomputed clockNow. + if (delay > 24) { + if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew); + if (interval$1) interval$1 = clearInterval(interval$1); + } else { + if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay); + frame = 1, setFrame(wake); + } +} + +function timeout(callback, delay, time) { + var t = new Timer; + delay = delay == null ? 0 : +delay; + t.restart(elapsed => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +function interval(callback, delay, time) { + var t = new Timer, total = delay; + if (delay == null) return t.restart(callback, delay, time), t; + t._restart = t.restart; + t.restart = function(callback, delay, time) { + delay = +delay, time = time == null ? now() : +time; + t._restart(function tick(elapsed) { + elapsed += total; + t._restart(tick, total += delay, time); + callback(elapsed); + }, delay, time); + }; + t.restart(callback, delay, time); + return t; +} + +var emptyOn = dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; + +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; + +function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) node.__transition = {}; + else if (id in schedules) return; + create(node, id, { + name: name, + index: index, // For context during callback. + group: group, // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} + +function init(node, id) { + var schedule = get(node, id); + if (schedule.state > CREATED) throw new Error("too late; already scheduled"); + return schedule; +} + +function set(node, id) { + var schedule = get(node, id); + if (schedule.state > STARTED) throw new Error("too late; already running"); + return schedule; +} + +function get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found"); + return schedule; +} + +function create(node, id, self) { + var schedules = node.__transition, + tween; + + // Initialize the self timer when the transition is created. + // Note the actual delay is not known until the first callback! + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + + // If the elapsed delay is less than our first sleep, start immediately. + if (self.delay <= elapsed) start(elapsed - self.delay); + } + + function start(elapsed) { + var i, j, n, o; + + // If the state is not SCHEDULED, then we previously errored on start. + if (self.state !== SCHEDULED) return stop(); + + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) continue; + + // While this element already has a starting transition during this frame, + // defer starting an interrupting transition until that transition has a + // chance to tick (and possibly end); see d3/d3-transition#54! + if (o.state === STARTED) return timeout(start); + + // Interrupt the active transition, if any. + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + + // Cancel any pre-empted transitions. + else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + + // Defer the first tick to end of the current frame; see d3/d3#1576. + // Note the transition may be canceled after start and before the first tick! + // Note this must be scheduled before the start event; see d3/d3-transition#16! + // Assuming this is successful, subsequent callbacks go straight to tick. + timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + + // Dispatch the start event. + // Note this must be done before the tween are initialized. + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) return; // interrupted + self.state = STARTED; + + // Initialize the tween, deleting null tween. + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), + i = -1, + n = tween.length; + + while (++i < n) { + tween[i].call(node, t); + } + + // Dispatch the end event. + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) return; // eslint-disable-line no-unused-vars + delete node.__transition; + } +} + +function interrupt(node, name) { + var schedules = node.__transition, + schedule, + active, + empty = true, + i; + + if (!schedules) return; + + name = name == null ? null : name + ""; + + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { empty = false; continue; } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + + if (empty) delete node.__transition; +} + +function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = set(this, id), + tween = schedule.tween; + + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! + // Otherwise, copy-on-write. + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + + schedule.tween = tween1; + }; +} + +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") throw new Error; + return function() { + var schedule = set(this, id), + tween = schedule.tween; + + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! + // Otherwise, copy-on-write. + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) tween1.push(t); + } + + schedule.tween = tween1; + }; +} + +function transition_tween(name, value) { + var id = this._id; + + name += ""; + + if (arguments.length < 2) { + var tween = get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} + +function tweenValue(transition, name, value) { + var id = transition._id; + + transition.each(function() { + var schedule = set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + + return function(node) { + return get(node, id).value[name]; + }; +} + +function interpolate$1(a, b) { + var c; + return (typeof b === "number" ? interpolateNumber + : b instanceof color ? interpolateRgb + : (c = color(b)) ? (b = c, interpolateRgb) + : interpolateString)(a, b); +} + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} + +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} + +function attrConstant(name, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function attrConstantNS(fullname, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function attrFunction(name, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function attrFunctionNS(fullname, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate$1; + return this.attrTween(name, typeof value === "function" + ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) + : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) + : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); +} + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} + +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} + +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} + +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} + +function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} + +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} + +function transition_delay(value) { + var id = this._id; + + return arguments.length + ? this.each((typeof value === "function" + ? delayFunction + : delayConstant)(id, value)) + : get(this.node(), id).delay; +} + +function durationFunction(id, value) { + return function() { + set(this, id).duration = +value.apply(this, arguments); + }; +} + +function durationConstant(id, value) { + return value = +value, function() { + set(this, id).duration = value; + }; +} + +function transition_duration(value) { + var id = this._id; + + return arguments.length + ? this.each((typeof value === "function" + ? durationFunction + : durationConstant)(id, value)) + : get(this.node(), id).duration; +} + +function easeConstant(id, value) { + if (typeof value !== "function") throw new Error; + return function() { + set(this, id).ease = value; + }; +} + +function transition_ease(value) { + var id = this._id; + + return arguments.length + ? this.each(easeConstant(id, value)) + : get(this.node(), id).ease; +} + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") throw new Error; + set(this, id).ease = v; + }; +} + +function transition_easeVarying(value) { + if (typeof value !== "function") throw new Error; + return this.each(easeVarying(this._id, value)); +} + +function transition_filter(match) { + if (typeof match !== "function") match = matcher(match); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + + return new Transition(subgroups, this._parents, this._name, this._id); +} + +function transition_merge(transition) { + if (transition._id !== this._id) throw new Error; + + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + + return new Transition(merges, this._parents, this._name, this._id); +} + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) t = t.slice(0, i); + return !t || t === "start"; + }); +} + +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : set; + return function() { + var schedule = sit(this, id), + on = schedule.on; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); + + schedule.on = on1; + }; +} + +function transition_on(name, listener) { + var id = this._id; + + return arguments.length < 2 + ? get(this.node(), id).on.on(name) + : this.each(onFunction(id, name, listener)); +} + +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) if (+i !== id) return; + if (parent) parent.removeChild(this); + }; +} + +function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +function transition_select(select) { + var name = this._name, + id = this._id; + + if (typeof select !== "function") select = selector(select); + + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, get(node, id)); + } + } + } + + return new Transition(subgroups, this._parents, name, id); +} + +function transition_selectAll(select) { + var name = this._name, + id = this._id; + + if (typeof select !== "function") select = selectorAll(select); + + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + + return new Transition(subgroups, parents, name, id); +} + +var Selection = selection.prototype.constructor; + +function transition_selection() { + return new Selection(this._groups, this._parents); +} + +function styleNull(name, interpolate) { + var string00, + string10, + interpolate0; + return function() { + var string0 = styleValue(this, name), + string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, string10 = string1); + }; +} + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} + +function styleConstant(name, interpolate, value1) { + var string00, + string1 = value1 + "", + interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null + : string0 === string00 ? interpolate0 + : interpolate0 = interpolate(string00 = string0, value1); + }; +} + +function styleFunction(name, interpolate, value) { + var string00, + string10, + interpolate0; + return function() { + var string0 = styleValue(this, name), + value1 = value(this), + string1 = value1 + ""; + if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null + : string0 === string00 && string1 === string10 ? interpolate0 + : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; +} + +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = set(this, id), + on = schedule.on, + listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); + + schedule.on = on1; + }; +} + +function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate$1; + return value == null ? this + .styleTween(name, styleNull(name, i)) + .on("end.style." + name, styleRemove(name)) + : typeof value === "function" ? this + .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))) + .each(styleMaybeRemove(this._id, name)) + : this + .styleTween(name, styleConstant(name, i, value), priority) + .on("end.style." + name, null); +} + +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} + +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} + +function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +function textConstant(value) { + return function() { + this.textContent = value; + }; +} + +function textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} + +function transition_text(value) { + return this.tween("text", typeof value === "function" + ? textFunction(tweenValue(this, "text", value)) + : textConstant(value == null ? "" : value + "")); +} + +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} + +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} + +function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error; + return this.tween(key, textTween(value)); +} + +function transition_transition() { + var name = this._name, + id0 = this._id, + id1 = newId(); + + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + + return new Transition(groups, this._parents, name, id1); +} + +function transition_end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = {value: reject}, + end = {value: function() { if (--size === 0) resolve(); }}; + + that.each(function() { + var schedule = set(this, id), + on = schedule.on; + + // If this node shared a dispatch with the previous node, + // just assign the updated shared dispatch and we’re done! + // Otherwise, copy-on-write. + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + + schedule.on = on1; + }); + + // The selection was empty, resolve end immediately + if (size === 0) resolve(); + }); +} + +var id = 0; + +function Transition(groups, parents, name, id) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id; +} + +function transition(name) { + return selection().transition(name); +} + +function newId() { + return ++id; +} + +var selection_prototype = selection.prototype; + +Transition.prototype = transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition_transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: transition_tween, + delay: transition_delay, + duration: transition_duration, + ease: transition_ease, + easeVarying: transition_easeVarying, + end: transition_end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +const linear$1 = t => +t; + +function quadIn(t) { + return t * t; +} + +function quadOut(t) { + return t * (2 - t); +} + +function quadInOut(t) { + return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2; +} + +function cubicIn(t) { + return t * t * t; +} + +function cubicOut(t) { + return --t * t * t + 1; +} + +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +var exponent$1 = 3; + +var polyIn = (function custom(e) { + e = +e; + + function polyIn(t) { + return Math.pow(t, e); + } + + polyIn.exponent = custom; + + return polyIn; +})(exponent$1); + +var polyOut = (function custom(e) { + e = +e; + + function polyOut(t) { + return 1 - Math.pow(1 - t, e); + } + + polyOut.exponent = custom; + + return polyOut; +})(exponent$1); + +var polyInOut = (function custom(e) { + e = +e; + + function polyInOut(t) { + return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2; + } + + polyInOut.exponent = custom; + + return polyInOut; +})(exponent$1); + +var pi$4 = Math.PI, + halfPi$3 = pi$4 / 2; + +function sinIn(t) { + return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi$3); +} + +function sinOut(t) { + return Math.sin(t * halfPi$3); +} + +function sinInOut(t) { + return (1 - Math.cos(pi$4 * t)) / 2; +} + +// tpmt is two power minus ten times t scaled to [0,1] +function tpmt(x) { + return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494; +} + +function expIn(t) { + return tpmt(1 - +t); +} + +function expOut(t) { + return 1 - tpmt(t); +} + +function expInOut(t) { + return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2; +} + +function circleIn(t) { + return 1 - Math.sqrt(1 - t * t); +} + +function circleOut(t) { + return Math.sqrt(1 - --t * t); +} + +function circleInOut(t) { + return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2; +} + +var b1 = 4 / 11, + b2 = 6 / 11, + b3 = 8 / 11, + b4 = 3 / 4, + b5 = 9 / 11, + b6 = 10 / 11, + b7 = 15 / 16, + b8 = 21 / 22, + b9 = 63 / 64, + b0 = 1 / b1 / b1; + +function bounceIn(t) { + return 1 - bounceOut(1 - t); +} + +function bounceOut(t) { + return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9; +} + +function bounceInOut(t) { + return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2; +} + +var overshoot = 1.70158; + +var backIn = (function custom(s) { + s = +s; + + function backIn(t) { + return (t = +t) * t * (s * (t - 1) + t); + } + + backIn.overshoot = custom; + + return backIn; +})(overshoot); + +var backOut = (function custom(s) { + s = +s; + + function backOut(t) { + return --t * t * ((t + 1) * s + t) + 1; + } + + backOut.overshoot = custom; + + return backOut; +})(overshoot); + +var backInOut = (function custom(s) { + s = +s; + + function backInOut(t) { + return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2; + } + + backInOut.overshoot = custom; + + return backInOut; +})(overshoot); + +var tau$5 = 2 * Math.PI, + amplitude = 1, + period = 0.3; + +var elasticIn = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticIn(t) { + return a * tpmt(-(--t)) * Math.sin((s - t) / p); + } + + elasticIn.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticIn.period = function(p) { return custom(a, p); }; + + return elasticIn; +})(amplitude, period); + +var elasticOut = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticOut(t) { + return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p); + } + + elasticOut.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticOut.period = function(p) { return custom(a, p); }; + + return elasticOut; +})(amplitude, period); + +var elasticInOut = (function custom(a, p) { + var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); + + function elasticInOut(t) { + return ((t = t * 2 - 1) < 0 + ? a * tpmt(-t) * Math.sin((s - t) / p) + : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2; + } + + elasticInOut.amplitude = function(a) { return custom(a, p * tau$5); }; + elasticInOut.period = function(p) { return custom(a, p); }; + + return elasticInOut; +})(amplitude, period); + +var defaultTiming = { + time: null, // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; + +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} + +function selection_transition(name) { + var id, + timing; + + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + + return new Transition(groups, this._parents, name, id); +} + +selection.prototype.interrupt = selection_interrupt; +selection.prototype.transition = selection_transition; + +var root = [null]; + +function active(node, name) { + var schedules = node.__transition, + schedule, + i; + + if (schedules) { + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) { + return new Transition([[node]], root, name, +i); + } + } + } + + return null; +} + +var constant$7 = x => () => x; + +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + selection: {value: selection, enumerable: true, configurable: true}, + mode: {value: mode, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +function nopropagation$1(event) { + event.stopImmediatePropagation(); +} + +function noevent$1(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +var MODE_DRAG = {name: "drag"}, + MODE_SPACE = {name: "space"}, + MODE_HANDLE = {name: "handle"}, + MODE_CENTER = {name: "center"}; + +const {abs: abs$3, max: max$2, min: min$1} = Math; + +function number1(e) { + return [+e[0], +e[1]]; +} + +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} + +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; }, + output: function(xy) { return xy && [xy[0][0], xy[1][0]]; } +}; + +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; }, + output: function(xy) { return xy && [xy[0][1], xy[1][1]]; } +}; + +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { return xy == null ? null : number2(xy); }, + output: function(xy) { return xy; } +}; + +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; + +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; + +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; + +var signsX = { + overlay: +1, + selection: +1, + n: null, + e: +1, + s: null, + w: -1, + nw: -1, + ne: +1, + se: +1, + sw: -1 +}; + +var signsY = { + overlay: +1, + selection: +1, + n: -1, + e: null, + s: +1, + w: null, + nw: -1, + ne: -1, + se: +1, + sw: +1 +}; + +function type(t) { + return {type: t}; +} + +// Ignore right-click, since that should open the context menu. +function defaultFilter$1(event) { + return !event.ctrlKey && !event.button; +} + +function defaultExtent$1() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} + +function defaultTouchable$1() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +// Like d3.local, but with the name “__brush” rather than auto-generated. +function local(node) { + while (!node.__brush) if (!(node = node.parentNode)) return; + return node.__brush; +} + +function empty(extent) { + return extent[0][0] === extent[1][0] + || extent[0][1] === extent[1][1]; +} + +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} + +function brushX() { + return brush$1(X); +} + +function brushY() { + return brush$1(Y); +} + +function brush() { + return brush$1(XY); +} + +function brush$1(dim) { + var extent = defaultExtent$1, + filter = defaultFilter$1, + touchable = defaultTouchable$1, + keys = true, + listeners = dispatch("start", "brush", "end"), + handleSize = 6, + touchending; + + function brush(group) { + var overlay = group + .property("__brush", initialize) + .selectAll(".overlay") + .data([type("overlay")]); + + overlay.enter().append("rect") + .attr("class", "overlay") + .attr("pointer-events", "all") + .attr("cursor", cursors.overlay) + .merge(overlay) + .each(function() { + var extent = local(this).extent; + select(this) + .attr("x", extent[0][0]) + .attr("y", extent[0][1]) + .attr("width", extent[1][0] - extent[0][0]) + .attr("height", extent[1][1] - extent[0][1]); + }); + + group.selectAll(".selection") + .data([type("selection")]) + .enter().append("rect") + .attr("class", "selection") + .attr("cursor", cursors.selection) + .attr("fill", "#777") + .attr("fill-opacity", 0.3) + .attr("stroke", "#fff") + .attr("shape-rendering", "crispEdges"); + + var handle = group.selectAll(".handle") + .data(dim.handles, function(d) { return d.type; }); + + handle.exit().remove(); + + handle.enter().append("rect") + .attr("class", function(d) { return "handle handle--" + d.type; }) + .attr("cursor", function(d) { return cursors[d.type]; }); + + group + .each(redraw) + .attr("fill", "none") + .attr("pointer-events", "all") + .on("mousedown.brush", started) + .filter(touchable) + .on("touchstart.brush", started) + .on("touchmove.brush", touchmoved) + .on("touchend.brush touchcancel.brush", touchended) + .style("touch-action", "none") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + brush.move = function(group, selection) { + if (group.tween) { + group + .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); }) + .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); }) + .tween("brush", function() { + var that = this, + state = that.__brush, + emit = emitter(that, arguments), + selection0 = state.selection, + selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), + i = interpolate$2(selection0, selection1); + + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group + .each(function() { + var that = this, + args = arguments, + state = that.__brush, + selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), + emit = emitter(that, args).beforestart(); + + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start().brush().end(); + }); + } + }; + + brush.clear = function(group) { + brush.move(group, null); + }; + + function redraw() { + var group = select(this), + selection = local(this).selection; + + if (selection) { + group.selectAll(".selection") + .style("display", null) + .attr("x", selection[0][0]) + .attr("y", selection[0][1]) + .attr("width", selection[1][0] - selection[0][0]) + .attr("height", selection[1][1] - selection[0][1]); + + group.selectAll(".handle") + .style("display", null) + .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; }) + .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; }) + .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; }) + .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; }); + } + + else { + group.selectAll(".selection,.handle") + .style("display", "none") + .attr("x", null) + .attr("y", null) + .attr("width", null) + .attr("height", null); + } + } + + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) this.starting = false, this.emit("start", event, mode); + else this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type, event, mode) { + var d = select(this.that).datum(); + listeners.call( + type, + this.that, + new BrushEvent(type, { + sourceEvent: event, + target: brush, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + + function started(event) { + if (touchending && !event.touches) return; + if (!filter.apply(this, arguments)) return; + + var that = this, + type = event.target.__data__.type, + mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE), + signX = dim === Y ? null : signsX[type], + signY = dim === X ? null : signsY[type], + state = local(that), + extent = state.extent, + selection = state.selection, + W = extent[0][0], w0, w1, + N = extent[0][1], n0, n1, + E = extent[1][0], e0, e1, + S = extent[1][1], s0, s1, + dx = 0, + dy = 0, + moving, + shifting = signX && signY && keys && event.shiftKey, + lockX, + lockY, + points = Array.from(event.touches || [event], t => { + const i = t.identifier; + t = pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + + if (type === "overlay") { + if (selection) moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min$1(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min$1(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max$2(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max$2(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) move(); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + + var group = select(that) + .attr("pointer-events", "none"); + + var overlay = group.selectAll(".overlay") + .attr("cursor", cursors[type]); + + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = select(event.view) + .on("mousemove.brush", moved, true) + .on("mouseup.brush", ended, true); + if (keys) view + .on("keydown.brush", keydowned, true) + .on("keyup.brush", keyupped, true); + + dragDisable(event.view); + } + + redraw.call(that); + emit.start(event, mode.name); + + function moved(event) { + for (const p of event.changedTouches || [event]) { + for (const d of points) + if (d.identifier === p.identifier) d.cur = pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs$3(point.cur[0] - point[0]) > abs$3(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + noevent$1(event); + move(event); + } + + function move(event) { + const point = points[0], point0 = point.point0; + var t; + + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) dx = max$2(W - w0, min$1(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) dy = max$2(N - n0, min$1(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) w1 = max$2(W, min$1(E, points[0][0])), e1 = max$2(W, min$1(E, points[1][0])), signX = 1; + if (signY) n1 = max$2(N, min$1(S, points[0][1])), s1 = max$2(N, min$1(S, points[1][1])), signY = 1; + } else { + if (signX < 0) dx = max$2(W - w0, min$1(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) dx = max$2(W - e0, min$1(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) dy = max$2(N - n0, min$1(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) dy = max$2(N - s0, min$1(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) w1 = max$2(W, min$1(E, w0 - dx * signX)), e1 = max$2(W, min$1(E, e0 + dx * signX)); + if (signY) n1 = max$2(N, min$1(S, n0 - dy * signY)), s1 = max$2(N, min$1(S, s0 + dy * signY)); + break; + } + } + + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]); + } + + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]); + } + + if (state.selection) selection = state.selection; // May be set by brush.move! + if (lockX) w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) n1 = selection[0][1], s1 = selection[1][1]; + + if (selection[0][0] !== w1 + || selection[0][1] !== n1 + || selection[1][0] !== e1 + || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event, mode.name); + } + } + + function ended(event) { + nopropagation$1(event); + if (event.touches) { + if (event.touches.length) return; + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! + } else { + yesdrag(event.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) selection = state.selection; // May be set by brush.move (on start)! + if (empty(selection)) state.selection = null, redraw.call(that); + emit.end(event, mode.name); + } + + function keydowned(event) { + switch (event.keyCode) { + case 16: { // SHIFT + shifting = signX && signY; + break; + } + case 18: { // ALT + if (mode === MODE_HANDLE) { + if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(); + } + break; + } + case 32: { // SPACE; takes priority over ALT + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx; + if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(); + } + break; + } + default: return; + } + noevent$1(event); + } + + function keyupped(event) { + switch (event.keyCode) { + case 16: { // SHIFT + if (shifting) { + lockX = lockY = shifting = false; + move(); + } + break; + } + case 18: { // ALT + if (mode === MODE_CENTER) { + if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; + if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; + mode = MODE_HANDLE; + move(); + } + break; + } + case 32: { // SPACE + if (mode === MODE_SPACE) { + if (event.altKey) { + if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; + if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type]); + move(); + } + break; + } + default: return; + } + noevent$1(event); + } + } + + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + + function touchended(event) { + emitter(this, arguments).ended(event); + } + + function initialize() { + var state = this.__brush || {selection: null}; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + + brush.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant$7(number2(_)), brush) : extent; + }; + + brush.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant$7(!!_), brush) : filter; + }; + + brush.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$7(!!_), brush) : touchable; + }; + + brush.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush) : handleSize; + }; + + brush.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush) : keys; + }; + + brush.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush : value; + }; + + return brush; +} + +var abs$2 = Math.abs; +var cos$2 = Math.cos; +var sin$2 = Math.sin; +var pi$3 = Math.PI; +var halfPi$2 = pi$3 / 2; +var tau$4 = pi$3 * 2; +var max$1 = Math.max; +var epsilon$4 = 1e-12; + +function range$1(i, j) { + return Array.from({length: j - i}, (_, k) => i + k); +} + +function compareValue(compare) { + return function(a, b) { + return compare( + a.source.value + a.target.value, + b.source.value + b.target.value + ); + }; +} + +function chord() { + return chord$1(false, false); +} + +function chordTranspose() { + return chord$1(false, true); +} + +function chordDirected() { + return chord$1(true, false); +} + +function chord$1(directed, transpose) { + var padAngle = 0, + sortGroups = null, + sortSubgroups = null, + sortChords = null; + + function chord(matrix) { + var n = matrix.length, + groupSums = new Array(n), + groupIndex = range$1(0, n), + chords = new Array(n * n), + groups = new Array(n), + k = 0, dx; + + matrix = Float64Array.from({length: n * n}, transpose + ? (_, i) => matrix[i % n][i / n | 0] + : (_, i) => matrix[i / n | 0][i % n]); + + // Compute the scaling factor from value to angle in [0, 2pi]. + for (let i = 0; i < n; ++i) { + let x = 0; + for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i]; + k += groupSums[i] = x; + } + k = max$1(0, tau$4 - padAngle * n) / k; + dx = k ? padAngle : tau$4 / n; + + // Compute the angles for each group and constituent chord. + { + let x = 0; + if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b])); + for (const i of groupIndex) { + const x0 = x; + if (directed) { + const subgroupIndex = range$1(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]); + if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b])); + for (const j of subgroupIndex) { + if (j < 0) { + const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null}); + chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]}; + } else { + const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); + chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + } + } + groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; + } else { + const subgroupIndex = range$1(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]); + if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b])); + for (const j of subgroupIndex) { + let chord; + if (i < j) { + chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); + chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + } else { + chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null}); + chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; + if (i === j) chord.source = chord.target; + } + if (chord.source && chord.target && chord.source.value < chord.target.value) { + const source = chord.source; + chord.source = chord.target; + chord.target = source; + } + } + groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; + } + x += dx; + } + } + + // Remove empty chords. + chords = Object.values(chords); + chords.groups = groups; + return sortChords ? chords.sort(sortChords) : chords; + } + + chord.padAngle = function(_) { + return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle; + }; + + chord.sortGroups = function(_) { + return arguments.length ? (sortGroups = _, chord) : sortGroups; + }; + + chord.sortSubgroups = function(_) { + return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups; + }; + + chord.sortChords = function(_) { + return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._; + }; + + return chord; +} + +const pi$2 = Math.PI, + tau$3 = 2 * pi$2, + epsilon$3 = 1e-6, + tauEpsilon = tau$3 - epsilon$3; + +function Path$1() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; +} + +function path() { + return new Path$1; +} + +Path$1.prototype = path.prototype = { + constructor: Path$1, + moveTo: function(x, y) { + this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y); + }, + closePath: function() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + }, + lineTo: function(x, y) { + this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y); + }, + quadraticCurveTo: function(x1, y1, x, y) { + this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y); + }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { + this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y); + }, + arcTo: function(x1, y1, x2, y2, r) { + x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; + var x0 = this._x1, + y0 = this._y1, + x21 = x2 - x1, + y21 = y2 - y1, + x01 = x0 - x1, + y01 = y0 - y1, + l01_2 = x01 * x01 + y01 * y01; + + // Is the radius negative? Error. + if (r < 0) throw new Error("negative radius: " + r); + + // Is this path empty? Move to (x1,y1). + if (this._x1 === null) { + this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); + } + + // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. + else if (!(l01_2 > epsilon$3)); + + // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? + // Equivalently, is (x1,y1) coincident with (x2,y2)? + // Or, is the radius zero? Line to (x1,y1). + else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$3) || !r) { + this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); + } + + // Otherwise, draw an arc! + else { + var x20 = x2 - x0, + y20 = y2 - y0, + l21_2 = x21 * x21 + y21 * y21, + l20_2 = x20 * x20 + y20 * y20, + l21 = Math.sqrt(l21_2), + l01 = Math.sqrt(l01_2), + l = r * Math.tan((pi$2 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), + t01 = l / l01, + t21 = l / l21; + + // If the start tangent is not coincident with (x0,y0), line to. + if (Math.abs(t01 - 1) > epsilon$3) { + this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); + } + + this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); + } + }, + arc: function(x, y, r, a0, a1, ccw) { + x = +x, y = +y, r = +r, ccw = !!ccw; + var dx = r * Math.cos(a0), + dy = r * Math.sin(a0), + x0 = x + dx, + y0 = y + dy, + cw = 1 ^ ccw, + da = ccw ? a0 - a1 : a1 - a0; + + // Is the radius negative? Error. + if (r < 0) throw new Error("negative radius: " + r); + + // Is this path empty? Move to (x0,y0). + if (this._x1 === null) { + this._ += "M" + x0 + "," + y0; + } + + // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). + else if (Math.abs(this._x1 - x0) > epsilon$3 || Math.abs(this._y1 - y0) > epsilon$3) { + this._ += "L" + x0 + "," + y0; + } + + // Is this arc empty? We’re done. + if (!r) return; + + // Does the angle go the wrong way? Flip the direction. + if (da < 0) da = da % tau$3 + tau$3; + + // Is this a complete circle? Draw two arcs to complete the circle. + if (da > tauEpsilon) { + this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); + } + + // Is this arc non-empty? Draw an arc! + else if (da > epsilon$3) { + this._ += "A" + r + "," + r + ",0," + (+(da >= pi$2)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); + } + }, + rect: function(x, y, w, h) { + this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; + }, + toString: function() { + return this._; + } +}; + +var slice$2 = Array.prototype.slice; + +function constant$6(x) { + return function() { + return x; + }; +} + +function defaultSource$1(d) { + return d.source; +} + +function defaultTarget(d) { + return d.target; +} + +function defaultRadius$1(d) { + return d.radius; +} + +function defaultStartAngle(d) { + return d.startAngle; +} + +function defaultEndAngle(d) { + return d.endAngle; +} + +function defaultPadAngle() { + return 0; +} + +function defaultArrowheadRadius() { + return 10; +} + +function ribbon(headRadius) { + var source = defaultSource$1, + target = defaultTarget, + sourceRadius = defaultRadius$1, + targetRadius = defaultRadius$1, + startAngle = defaultStartAngle, + endAngle = defaultEndAngle, + padAngle = defaultPadAngle, + context = null; + + function ribbon() { + var buffer, + s = source.apply(this, arguments), + t = target.apply(this, arguments), + ap = padAngle.apply(this, arguments) / 2, + argv = slice$2.call(arguments), + sr = +sourceRadius.apply(this, (argv[0] = s, argv)), + sa0 = startAngle.apply(this, argv) - halfPi$2, + sa1 = endAngle.apply(this, argv) - halfPi$2, + tr = +targetRadius.apply(this, (argv[0] = t, argv)), + ta0 = startAngle.apply(this, argv) - halfPi$2, + ta1 = endAngle.apply(this, argv) - halfPi$2; + + if (!context) context = buffer = path(); + + if (ap > epsilon$4) { + if (abs$2(sa1 - sa0) > ap * 2 + epsilon$4) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap); + else sa0 = sa1 = (sa0 + sa1) / 2; + if (abs$2(ta1 - ta0) > ap * 2 + epsilon$4) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap); + else ta0 = ta1 = (ta0 + ta1) / 2; + } + + context.moveTo(sr * cos$2(sa0), sr * sin$2(sa0)); + context.arc(0, 0, sr, sa0, sa1); + if (sa0 !== ta0 || sa1 !== ta1) { + if (headRadius) { + var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2; + context.quadraticCurveTo(0, 0, tr2 * cos$2(ta0), tr2 * sin$2(ta0)); + context.lineTo(tr * cos$2(ta2), tr * sin$2(ta2)); + context.lineTo(tr2 * cos$2(ta1), tr2 * sin$2(ta1)); + } else { + context.quadraticCurveTo(0, 0, tr * cos$2(ta0), tr * sin$2(ta0)); + context.arc(0, 0, tr, ta0, ta1); + } + } + context.quadraticCurveTo(0, 0, sr * cos$2(sa0), sr * sin$2(sa0)); + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + if (headRadius) ribbon.headRadius = function(_) { + return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : headRadius; + }; + + ribbon.radius = function(_) { + return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; + }; + + ribbon.sourceRadius = function(_) { + return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; + }; + + ribbon.targetRadius = function(_) { + return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : targetRadius; + }; + + ribbon.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : startAngle; + }; + + ribbon.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : endAngle; + }; + + ribbon.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : padAngle; + }; + + ribbon.source = function(_) { + return arguments.length ? (source = _, ribbon) : source; + }; + + ribbon.target = function(_) { + return arguments.length ? (target = _, ribbon) : target; + }; + + ribbon.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), ribbon) : context; + }; + + return ribbon; +} + +function ribbon$1() { + return ribbon(); +} + +function ribbonArrow() { + return ribbon(defaultArrowheadRadius); +} + +var array$2 = Array.prototype; + +var slice$1 = array$2.slice; + +function ascending$1(a, b) { + return a - b; +} + +function area$3(ring) { + var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1]; + while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1]; + return area; +} + +var constant$5 = x => () => x; + +function contains$2(ring, hole) { + var i = -1, n = hole.length, c; + while (++i < n) if (c = ringContains(ring, hole[i])) return c; + return 0; +} + +function ringContains(ring, point) { + var x = point[0], y = point[1], contains = -1; + for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) { + var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1]; + if (segmentContains(pi, pj, point)) return 0; + if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains; + } + return contains; +} + +function segmentContains(a, b, c) { + var i; return collinear$1(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]); +} + +function collinear$1(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]); +} + +function within(p, q, r) { + return p <= q && q <= r || r <= q && q <= p; +} + +function noop$2() {} + +var cases = [ + [], + [[[1.0, 1.5], [0.5, 1.0]]], + [[[1.5, 1.0], [1.0, 1.5]]], + [[[1.5, 1.0], [0.5, 1.0]]], + [[[1.0, 0.5], [1.5, 1.0]]], + [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], + [[[1.0, 0.5], [1.0, 1.5]]], + [[[1.0, 0.5], [0.5, 1.0]]], + [[[0.5, 1.0], [1.0, 0.5]]], + [[[1.0, 1.5], [1.0, 0.5]]], + [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], + [[[1.5, 1.0], [1.0, 0.5]]], + [[[0.5, 1.0], [1.5, 1.0]]], + [[[1.0, 1.5], [1.5, 1.0]]], + [[[0.5, 1.0], [1.0, 1.5]]], + [] +]; + +function contours() { + var dx = 1, + dy = 1, + threshold = thresholdSturges, + smooth = smoothLinear; + + function contours(values) { + var tz = threshold(values); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + var domain = extent$1(values), start = domain[0], stop = domain[1]; + tz = tickStep(start, stop, tz); + tz = sequence(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz); + } else { + tz = tz.slice().sort(ascending$1); + } + + return tz.map(function(value) { + return contour(values, value); + }); + } + + // Accumulate, smooth contour rings, assign holes to exterior rings. + // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js + function contour(values, value) { + var polygons = [], + holes = []; + + isorings(values, value, function(ring) { + smooth(ring, values, value); + if (area$3(ring) > 0) polygons.push([ring]); + else holes.push(ring); + }); + + holes.forEach(function(hole) { + for (var i = 0, n = polygons.length, polygon; i < n; ++i) { + if (contains$2((polygon = polygons[i])[0], hole) !== -1) { + polygon.push(hole); + return; + } + } + }); + + return { + type: "MultiPolygon", + value: value, + coordinates: polygons + }; + } + + // Marching squares with isolines stitched into rings. + // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js + function isorings(values, value, callback) { + var fragmentByStart = new Array, + fragmentByEnd = new Array, + x, y, t0, t1, t2, t3; + + // Special case for the first row (y = -1, t2 = t3 = 0). + x = y = -1; + t1 = values[0] >= value; + cases[t1 << 1].forEach(stitch); + while (++x < dx - 1) { + t0 = t1, t1 = values[x + 1] >= value; + cases[t0 | t1 << 1].forEach(stitch); + } + cases[t1 << 0].forEach(stitch); + + // General case for the intermediate rows. + while (++y < dy - 1) { + x = -1; + t1 = values[y * dx + dx] >= value; + t2 = values[y * dx] >= value; + cases[t1 << 1 | t2 << 2].forEach(stitch); + while (++x < dx - 1) { + t0 = t1, t1 = values[y * dx + dx + x + 1] >= value; + t3 = t2, t2 = values[y * dx + x + 1] >= value; + cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch); + } + cases[t1 | t2 << 3].forEach(stitch); + } + + // Special case for the last row (y = dy - 1, t0 = t1 = 0). + x = -1; + t2 = values[y * dx] >= value; + cases[t2 << 2].forEach(stitch); + while (++x < dx - 1) { + t3 = t2, t2 = values[y * dx + x + 1] >= value; + cases[t2 << 2 | t3 << 3].forEach(stitch); + } + cases[t2 << 3].forEach(stitch); + + function stitch(line) { + var start = [line[0][0] + x, line[0][1] + y], + end = [line[1][0] + x, line[1][1] + y], + startIndex = index(start), + endIndex = index(end), + f, g; + if (f = fragmentByEnd[startIndex]) { + if (g = fragmentByStart[endIndex]) { + delete fragmentByEnd[f.end]; + delete fragmentByStart[g.start]; + if (f === g) { + f.ring.push(end); + callback(f.ring); + } else { + fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)}; + } + } else { + delete fragmentByEnd[f.end]; + f.ring.push(end); + fragmentByEnd[f.end = endIndex] = f; + } + } else if (f = fragmentByStart[endIndex]) { + if (g = fragmentByEnd[startIndex]) { + delete fragmentByStart[f.start]; + delete fragmentByEnd[g.end]; + if (f === g) { + f.ring.push(end); + callback(f.ring); + } else { + fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)}; + } + } else { + delete fragmentByStart[f.start]; + f.ring.unshift(start); + fragmentByStart[f.start = startIndex] = f; + } + } else { + fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]}; + } + } + } + + function index(point) { + return point[0] * 2 + point[1] * (dx + 1) * 4; + } + + function smoothLinear(ring, values, value) { + ring.forEach(function(point) { + var x = point[0], + y = point[1], + xt = x | 0, + yt = y | 0, + v0, + v1 = values[yt * dx + xt]; + if (x > 0 && x < dx && xt === x) { + v0 = values[yt * dx + xt - 1]; + point[0] = x + (value - v0) / (v1 - v0) - 0.5; + } + if (y > 0 && y < dy && yt === y) { + v0 = values[(yt - 1) * dx + xt]; + point[1] = y + (value - v0) / (v1 - v0) - 0.5; + } + }); + } + + contours.contour = contour; + + contours.size = function(_) { + if (!arguments.length) return [dx, dy]; + var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]); + if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); + return dx = _0, dy = _1, contours; + }; + + contours.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), contours) : threshold; + }; + + contours.smooth = function(_) { + return arguments.length ? (smooth = _ ? smoothLinear : noop$2, contours) : smooth === smoothLinear; + }; + + return contours; +} + +// TODO Optimize edge cases. +// TODO Optimize index calculation. +// TODO Optimize arguments. +function blurX(source, target, r) { + var n = source.width, + m = source.height, + w = (r << 1) + 1; + for (var j = 0; j < m; ++j) { + for (var i = 0, sr = 0; i < n + r; ++i) { + if (i < n) { + sr += source.data[i + j * n]; + } + if (i >= r) { + if (i >= w) { + sr -= source.data[i - w + j * n]; + } + target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w); + } + } + } +} + +// TODO Optimize edge cases. +// TODO Optimize index calculation. +// TODO Optimize arguments. +function blurY(source, target, r) { + var n = source.width, + m = source.height, + w = (r << 1) + 1; + for (var i = 0; i < n; ++i) { + for (var j = 0, sr = 0; j < m + r; ++j) { + if (j < m) { + sr += source.data[i + j * n]; + } + if (j >= r) { + if (j >= w) { + sr -= source.data[i + (j - w) * n]; + } + target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w); + } + } + } +} + +function defaultX$1(d) { + return d[0]; +} + +function defaultY$1(d) { + return d[1]; +} + +function defaultWeight() { + return 1; +} + +function density() { + var x = defaultX$1, + y = defaultY$1, + weight = defaultWeight, + dx = 960, + dy = 500, + r = 20, // blur radius + k = 2, // log2(grid cell size) + o = r * 3, // grid offset, to pad for blur + n = (dx + o * 2) >> k, // grid width + m = (dy + o * 2) >> k, // grid height + threshold = constant$5(20); + + function density(data) { + var values0 = new Float32Array(n * m), + values1 = new Float32Array(n * m); + + data.forEach(function(d, i, data) { + var xi = (+x(d, i, data) + o) >> k, + yi = (+y(d, i, data) + o) >> k, + wi = +weight(d, i, data); + if (xi >= 0 && xi < n && yi >= 0 && yi < m) { + values0[xi + yi * n] += wi; + } + }); + + // TODO Optimize. + blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); + blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); + blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); + blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); + blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); + blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); + + var tz = threshold(values0); + + // Convert number of thresholds into uniform thresholds. + if (!Array.isArray(tz)) { + var stop = max$3(values0); + tz = tickStep(0, stop, tz); + tz = sequence(0, Math.floor(stop / tz) * tz, tz); + tz.shift(); + } + + return contours() + .thresholds(tz) + .size([n, m]) + (values0) + .map(transform); + } + + function transform(geometry) { + geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel. + geometry.coordinates.forEach(transformPolygon); + return geometry; + } + + function transformPolygon(coordinates) { + coordinates.forEach(transformRing); + } + + function transformRing(coordinates) { + coordinates.forEach(transformPoint); + } + + // TODO Optimize. + function transformPoint(coordinates) { + coordinates[0] = coordinates[0] * Math.pow(2, k) - o; + coordinates[1] = coordinates[1] * Math.pow(2, k) - o; + } + + function resize() { + o = r * 3; + n = (dx + o * 2) >> k; + m = (dy + o * 2) >> k; + return density; + } + + density.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant$5(+_), density) : x; + }; + + density.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant$5(+_), density) : y; + }; + + density.weight = function(_) { + return arguments.length ? (weight = typeof _ === "function" ? _ : constant$5(+_), density) : weight; + }; + + density.size = function(_) { + if (!arguments.length) return [dx, dy]; + var _0 = +_[0], _1 = +_[1]; + if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); + return dx = _0, dy = _1, resize(); + }; + + density.cellSize = function(_) { + if (!arguments.length) return 1 << k; + if (!((_ = +_) >= 1)) throw new Error("invalid cell size"); + return k = Math.floor(Math.log(_) / Math.LN2), resize(); + }; + + density.thresholds = function(_) { + return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), density) : threshold; + }; + + density.bandwidth = function(_) { + if (!arguments.length) return Math.sqrt(r * (r + 1)); + if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth"); + return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize(); + }; + + return density; +} + +const EPSILON = Math.pow(2, -52); +const EDGE_STACK = new Uint32Array(512); + +class Delaunator { + + static from(points, getX = defaultGetX, getY = defaultGetY) { + const n = points.length; + const coords = new Float64Array(n * 2); + + for (let i = 0; i < n; i++) { + const p = points[i]; + coords[2 * i] = getX(p); + coords[2 * i + 1] = getY(p); + } + + return new Delaunator(coords); + } + + constructor(coords) { + const n = coords.length >> 1; + if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.'); + + this.coords = coords; + + // arrays that will store the triangulation graph + const maxTriangles = Math.max(2 * n - 5, 0); + this._triangles = new Uint32Array(maxTriangles * 3); + this._halfedges = new Int32Array(maxTriangles * 3); + + // temporary arrays for tracking the edges of the advancing convex hull + this._hashSize = Math.ceil(Math.sqrt(n)); + this._hullPrev = new Uint32Array(n); // edge to prev edge + this._hullNext = new Uint32Array(n); // edge to next edge + this._hullTri = new Uint32Array(n); // edge to adjacent triangle + this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash + + // temporary arrays for sorting points + this._ids = new Uint32Array(n); + this._dists = new Float64Array(n); + + this.update(); + } + + update() { + const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this; + const n = coords.length >> 1; + + // populate an array of point indices; calculate input data bbox + let minX = Infinity; + let minY = Infinity; + let maxX = -Infinity; + let maxY = -Infinity; + + for (let i = 0; i < n; i++) { + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + if (x < minX) minX = x; + if (y < minY) minY = y; + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + this._ids[i] = i; + } + const cx = (minX + maxX) / 2; + const cy = (minY + maxY) / 2; + + let minDist = Infinity; + let i0, i1, i2; + + // pick a seed point close to the center + for (let i = 0; i < n; i++) { + const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]); + if (d < minDist) { + i0 = i; + minDist = d; + } + } + const i0x = coords[2 * i0]; + const i0y = coords[2 * i0 + 1]; + + minDist = Infinity; + + // find the point closest to the seed + for (let i = 0; i < n; i++) { + if (i === i0) continue; + const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]); + if (d < minDist && d > 0) { + i1 = i; + minDist = d; + } + } + let i1x = coords[2 * i1]; + let i1y = coords[2 * i1 + 1]; + + let minRadius = Infinity; + + // find the third point which forms the smallest circumcircle with the first two + for (let i = 0; i < n; i++) { + if (i === i0 || i === i1) continue; + const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]); + if (r < minRadius) { + i2 = i; + minRadius = r; + } + } + let i2x = coords[2 * i2]; + let i2y = coords[2 * i2 + 1]; + + if (minRadius === Infinity) { + // order collinear points by dx (or dy if all x are identical) + // and return the list as a hull + for (let i = 0; i < n; i++) { + this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]); + } + quicksort(this._ids, this._dists, 0, n - 1); + const hull = new Uint32Array(n); + let j = 0; + for (let i = 0, d0 = -Infinity; i < n; i++) { + const id = this._ids[i]; + if (this._dists[id] > d0) { + hull[j++] = id; + d0 = this._dists[id]; + } + } + this.hull = hull.subarray(0, j); + this.triangles = new Uint32Array(0); + this.halfedges = new Uint32Array(0); + return; + } + + // swap the order of the seed points for counter-clockwise orientation + if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { + const i = i1; + const x = i1x; + const y = i1y; + i1 = i2; + i1x = i2x; + i1y = i2y; + i2 = i; + i2x = x; + i2y = y; + } + + const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y); + this._cx = center.x; + this._cy = center.y; + + for (let i = 0; i < n; i++) { + this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y); + } + + // sort the points by distance from the seed triangle circumcenter + quicksort(this._ids, this._dists, 0, n - 1); + + // set up the seed triangle as the starting hull + this._hullStart = i0; + let hullSize = 3; + + hullNext[i0] = hullPrev[i2] = i1; + hullNext[i1] = hullPrev[i0] = i2; + hullNext[i2] = hullPrev[i1] = i0; + + hullTri[i0] = 0; + hullTri[i1] = 1; + hullTri[i2] = 2; + + hullHash.fill(-1); + hullHash[this._hashKey(i0x, i0y)] = i0; + hullHash[this._hashKey(i1x, i1y)] = i1; + hullHash[this._hashKey(i2x, i2y)] = i2; + + this.trianglesLen = 0; + this._addTriangle(i0, i1, i2, -1, -1, -1); + + for (let k = 0, xp, yp; k < this._ids.length; k++) { + const i = this._ids[k]; + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + + // skip near-duplicate points + if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue; + xp = x; + yp = y; + + // skip seed triangle points + if (i === i0 || i === i1 || i === i2) continue; + + // find a visible edge on the convex hull using edge hash + let start = 0; + for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) { + start = hullHash[(key + j) % this._hashSize]; + if (start !== -1 && start !== hullNext[start]) break; + } + + start = hullPrev[start]; + let e = start, q; + while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) { + e = q; + if (e === start) { + e = -1; + break; + } + } + if (e === -1) continue; // likely a near-duplicate point; skip it + + // add the first triangle from the point + let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]); + + // recursively flip triangles from the point until they satisfy the Delaunay condition + hullTri[i] = this._legalize(t + 2); + hullTri[e] = t; // keep track of boundary triangles on the hull + hullSize++; + + // walk forward through the hull, adding more triangles and flipping recursively + let n = hullNext[e]; + while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) { + t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]); + hullTri[i] = this._legalize(t + 2); + hullNext[n] = n; // mark as removed + hullSize--; + n = q; + } + + // walk backward from the other side, adding more triangles and flipping + if (e === start) { + while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) { + t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]); + this._legalize(t + 2); + hullTri[q] = t; + hullNext[e] = e; // mark as removed + hullSize--; + e = q; + } + } + + // update the hull indices + this._hullStart = hullPrev[i] = e; + hullNext[e] = hullPrev[n] = i; + hullNext[i] = n; + + // save the two new edges in the hash table + hullHash[this._hashKey(x, y)] = i; + hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e; + } + + this.hull = new Uint32Array(hullSize); + for (let i = 0, e = this._hullStart; i < hullSize; i++) { + this.hull[i] = e; + e = hullNext[e]; + } + + // trim typed triangle mesh arrays + this.triangles = this._triangles.subarray(0, this.trianglesLen); + this.halfedges = this._halfedges.subarray(0, this.trianglesLen); + } + + _hashKey(x, y) { + return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize; + } + + _legalize(a) { + const {_triangles: triangles, _halfedges: halfedges, coords} = this; + + let i = 0; + let ar = 0; + + // recursion eliminated with a fixed-size stack + while (true) { + const b = halfedges[a]; + + /* if the pair of triangles doesn't satisfy the Delaunay condition + * (p1 is inside the circumcircle of [p0, pl, pr]), flip them, + * then do the same check/flip recursively for the new pair of triangles + * + * pl pl + * /||\ / \ + * al/ || \bl al/ \a + * / || \ / \ + * / a||b \ flip /___ar___\ + * p0\ || /p1 => p0\---bl---/p1 + * \ || / \ / + * ar\ || /br b\ /br + * \||/ \ / + * pr pr + */ + const a0 = a - a % 3; + ar = a0 + (a + 2) % 3; + + if (b === -1) { // convex hull edge + if (i === 0) break; + a = EDGE_STACK[--i]; + continue; + } + + const b0 = b - b % 3; + const al = a0 + (a + 1) % 3; + const bl = b0 + (b + 2) % 3; + + const p0 = triangles[ar]; + const pr = triangles[a]; + const pl = triangles[al]; + const p1 = triangles[bl]; + + const illegal = inCircle( + coords[2 * p0], coords[2 * p0 + 1], + coords[2 * pr], coords[2 * pr + 1], + coords[2 * pl], coords[2 * pl + 1], + coords[2 * p1], coords[2 * p1 + 1]); + + if (illegal) { + triangles[a] = p1; + triangles[b] = p0; + + const hbl = halfedges[bl]; + + // edge swapped on the other side of the hull (rare); fix the halfedge reference + if (hbl === -1) { + let e = this._hullStart; + do { + if (this._hullTri[e] === bl) { + this._hullTri[e] = a; + break; + } + e = this._hullPrev[e]; + } while (e !== this._hullStart); + } + this._link(a, hbl); + this._link(b, halfedges[ar]); + this._link(ar, bl); + + const br = b0 + (b + 1) % 3; + + // don't worry about hitting the cap: it can only happen on extremely degenerate input + if (i < EDGE_STACK.length) { + EDGE_STACK[i++] = br; + } + } else { + if (i === 0) break; + a = EDGE_STACK[--i]; + } + } + + return ar; + } + + _link(a, b) { + this._halfedges[a] = b; + if (b !== -1) this._halfedges[b] = a; + } + + // add a new triangle given vertex indices and adjacent half-edge ids + _addTriangle(i0, i1, i2, a, b, c) { + const t = this.trianglesLen; + + this._triangles[t] = i0; + this._triangles[t + 1] = i1; + this._triangles[t + 2] = i2; + + this._link(t, a); + this._link(t + 1, b); + this._link(t + 2, c); + + this.trianglesLen += 3; + + return t; + } +} + +// monotonically increases with real angle, but doesn't need expensive trigonometry +function pseudoAngle(dx, dy) { + const p = dx / (Math.abs(dx) + Math.abs(dy)); + return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1] +} + +function dist(ax, ay, bx, by) { + const dx = ax - bx; + const dy = ay - by; + return dx * dx + dy * dy; +} + +// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check +function orientIfSure(px, py, rx, ry, qx, qy) { + const l = (ry - py) * (qx - px); + const r = (rx - px) * (qy - py); + return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; +} + +// a more robust orientation test that's stable in a given triangle (to fix robustness issues) +function orient(rx, ry, qx, qy, px, py) { + const sign = orientIfSure(px, py, rx, ry, qx, qy) || + orientIfSure(rx, ry, qx, qy, px, py) || + orientIfSure(qx, qy, px, py, rx, ry); + return sign < 0; +} + +function inCircle(ax, ay, bx, by, cx, cy, px, py) { + const dx = ax - px; + const dy = ay - py; + const ex = bx - px; + const ey = by - py; + const fx = cx - px; + const fy = cy - py; + + const ap = dx * dx + dy * dy; + const bp = ex * ex + ey * ey; + const cp = fx * fx + fy * fy; + + return dx * (ey * cp - bp * fy) - + dy * (ex * cp - bp * fx) + + ap * (ex * fy - ey * fx) < 0; +} + +function circumradius(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = (ey * bl - dy * cl) * d; + const y = (dx * cl - ex * bl) * d; + + return x * x + y * y; +} + +function circumcenter(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = ax + (ey * bl - dy * cl) * d; + const y = ay + (dx * cl - ex * bl) * d; + + return {x, y}; +} + +function quicksort(ids, dists, left, right) { + if (right - left <= 20) { + for (let i = left + 1; i <= right; i++) { + const temp = ids[i]; + const tempDist = dists[temp]; + let j = i - 1; + while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--]; + ids[j + 1] = temp; + } + } else { + const median = (left + right) >> 1; + let i = left + 1; + let j = right; + swap(ids, median, i); + if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right); + if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right); + if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i); + + const temp = ids[i]; + const tempDist = dists[temp]; + while (true) { + do i++; while (dists[ids[i]] < tempDist); + do j--; while (dists[ids[j]] > tempDist); + if (j < i) break; + swap(ids, i, j); + } + ids[left + 1] = ids[j]; + ids[j] = temp; + + if (right - i + 1 >= j - left) { + quicksort(ids, dists, i, right); + quicksort(ids, dists, left, j - 1); + } else { + quicksort(ids, dists, left, j - 1); + quicksort(ids, dists, i, right); + } + } +} + +function swap(arr, i, j) { + const tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; +} + +function defaultGetX(p) { + return p[0]; +} +function defaultGetY(p) { + return p[1]; +} + +const epsilon$2 = 1e-6; + +class Path { + constructor() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; // end of current subpath + this._ = ""; + } + moveTo(x, y) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; + } + closePath() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + } + lineTo(x, y) { + this._ += `L${this._x1 = +x},${this._y1 = +y}`; + } + arc(x, y, r) { + x = +x, y = +y, r = +r; + const x0 = x + r; + const y0 = y; + if (r < 0) throw new Error("negative radius"); + if (this._x1 === null) this._ += `M${x0},${y0}`; + else if (Math.abs(this._x1 - x0) > epsilon$2 || Math.abs(this._y1 - y0) > epsilon$2) this._ += "L" + x0 + "," + y0; + if (!r) return; + this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`; + } + rect(x, y, w, h) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`; + } + value() { + return this._ || null; + } +} + +class Polygon { + constructor() { + this._ = []; + } + moveTo(x, y) { + this._.push([x, y]); + } + closePath() { + this._.push(this._[0].slice()); + } + lineTo(x, y) { + this._.push([x, y]); + } + value() { + return this._.length ? this._ : null; + } +} + +class Voronoi { + constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) { + if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds"); + this.delaunay = delaunay; + this._circumcenters = new Float64Array(delaunay.points.length * 2); + this.vectors = new Float64Array(delaunay.points.length * 2); + this.xmax = xmax, this.xmin = xmin; + this.ymax = ymax, this.ymin = ymin; + this._init(); + } + update() { + this.delaunay.update(); + this._init(); + return this; + } + _init() { + const {delaunay: {points, hull, triangles}, vectors} = this; + + // Compute circumcenters. + const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2); + for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) { + const t1 = triangles[i] * 2; + const t2 = triangles[i + 1] * 2; + const t3 = triangles[i + 2] * 2; + const x1 = points[t1]; + const y1 = points[t1 + 1]; + const x2 = points[t2]; + const y2 = points[t2 + 1]; + const x3 = points[t3]; + const y3 = points[t3 + 1]; + + const dx = x2 - x1; + const dy = y2 - y1; + const ex = x3 - x1; + const ey = y3 - y1; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const ab = (dx * ey - dy * ex) * 2; + + if (!ab) { + // degenerate case (collinear diagram) + x = (x1 + x3) / 2 - 1e8 * ey; + y = (y1 + y3) / 2 + 1e8 * ex; + } + else if (Math.abs(ab) < 1e-8) { + // almost equal points (degenerate triangle) + x = (x1 + x3) / 2; + y = (y1 + y3) / 2; + } else { + const d = 1 / ab; + x = x1 + (ey * bl - dy * cl) * d; + y = y1 + (dx * cl - ex * bl) * d; + } + circumcenters[j] = x; + circumcenters[j + 1] = y; + } + + // Compute exterior cell rays. + let h = hull[hull.length - 1]; + let p0, p1 = h * 4; + let x0, x1 = points[2 * h]; + let y0, y1 = points[2 * h + 1]; + vectors.fill(0); + for (let i = 0; i < hull.length; ++i) { + h = hull[i]; + p0 = p1, x0 = x1, y0 = y1; + p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1]; + vectors[p0 + 2] = vectors[p1] = y0 - y1; + vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0; + } + } + render(context) { + const buffer = context == null ? context = new Path : undefined; + const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this; + if (hull.length <= 1) return null; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) continue; + const ti = Math.floor(i / 3) * 2; + const tj = Math.floor(j / 3) * 2; + const xi = circumcenters[ti]; + const yi = circumcenters[ti + 1]; + const xj = circumcenters[tj]; + const yj = circumcenters[tj + 1]; + this._renderSegment(xi, yi, xj, yj, context); + } + let h0, h1 = hull[hull.length - 1]; + for (let i = 0; i < hull.length; ++i) { + h0 = h1, h1 = hull[i]; + const t = Math.floor(inedges[h1] / 3) * 2; + const x = circumcenters[t]; + const y = circumcenters[t + 1]; + const v = h0 * 4; + const p = this._project(x, y, vectors[v + 2], vectors[v + 3]); + if (p) this._renderSegment(x, y, p[0], p[1], context); + } + return buffer && buffer.value(); + } + renderBounds(context) { + const buffer = context == null ? context = new Path : undefined; + context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin); + return buffer && buffer.value(); + } + renderCell(i, context) { + const buffer = context == null ? context = new Path : undefined; + const points = this._clip(i); + if (points === null || !points.length) return; + context.moveTo(points[0], points[1]); + let n = points.length; + while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2; + for (let i = 2; i < n; i += 2) { + if (points[i] !== points[i-2] || points[i+1] !== points[i-1]) + context.lineTo(points[i], points[i + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + *cellPolygons() { + const {delaunay: {points}} = this; + for (let i = 0, n = points.length / 2; i < n; ++i) { + const cell = this.cellPolygon(i); + if (cell) cell.index = i, yield cell; + } + } + cellPolygon(i) { + const polygon = new Polygon; + this.renderCell(i, polygon); + return polygon.value(); + } + _renderSegment(x0, y0, x1, y1, context) { + let S; + const c0 = this._regioncode(x0, y0); + const c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + context.moveTo(x0, y0); + context.lineTo(x1, y1); + } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) { + context.moveTo(S[0], S[1]); + context.lineTo(S[2], S[3]); + } + } + contains(i, x, y) { + if ((x = +x, x !== x) || (y = +y, y !== y)) return false; + return this.delaunay._step(i, x, y) === i; + } + *neighbors(i) { + const ci = this._clip(i); + if (ci) for (const j of this.delaunay.neighbors(i)) { + const cj = this._clip(j); + // find the common edge + if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) { + for (let aj = 0, lj = cj.length; aj < lj; aj += 2) { + if (ci[ai] == cj[aj] + && ci[ai + 1] == cj[aj + 1] + && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj] + && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj] + ) { + yield j; + break loop; + } + } + } + } + } + _cell(i) { + const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this; + const e0 = inedges[i]; + if (e0 === -1) return null; // coincident point + const points = []; + let e = e0; + do { + const t = Math.floor(e / 3); + points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]); + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) break; // bad triangulation + e = halfedges[e]; + } while (e !== e0 && e !== -1); + return points; + } + _clip(i) { + // degenerate case (1 valid point: return the box) + if (i === 0 && this.delaunay.hull.length === 1) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + const points = this._cell(i); + if (points === null) return null; + const {vectors: V} = this; + const v = i * 4; + return V[v] || V[v + 1] + ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) + : this._clipFinite(i, points); + } + _clipFinite(i, points) { + const n = points.length; + let P = null; + let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; + let c0, c1 = this._regioncode(x1, y1); + let e0, e1; + for (let j = 0; j < n; j += 2) { + x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; + c0 = c1, c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + e0 = e1, e1 = 0; + if (P) P.push(x1, y1); + else P = [x1, y1]; + } else { + let S, sx0, sy0, sx1, sy1; + if (c0 === 0) { + if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue; + [sx0, sy0, sx1, sy1] = S; + } else { + if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue; + [sx1, sy1, sx0, sy0] = S; + e0 = e1, e1 = this._edgecode(sx0, sy0); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + if (P) P.push(sx0, sy0); + else P = [sx0, sy0]; + } + e0 = e1, e1 = this._edgecode(sx1, sy1); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + if (P) P.push(sx1, sy1); + else P = [sx1, sy1]; + } + } + if (P) { + e0 = e1, e1 = this._edgecode(P[0], P[1]); + if (e0 && e1) this._edge(i, e0, e1, P, P.length); + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + return P; + } + _clipSegment(x0, y0, x1, y1, c0, c1) { + while (true) { + if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1]; + if (c0 & c1) return null; + let x, y, c = c0 || c1; + if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax; + else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin; + else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax; + else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin; + if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0); + else x1 = x, y1 = y, c1 = this._regioncode(x1, y1); + } + } + _clipInfinite(i, points, vx0, vy0, vxn, vyn) { + let P = Array.from(points), p; + if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]); + if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]); + if (P = this._clipFinite(i, P)) { + for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) { + c0 = c1, c1 = this._edgecode(P[j], P[j + 1]); + if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length; + } + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]; + } + return P; + } + _edge(i, e0, e1, P, j) { + while (e0 !== e1) { + let x, y; + switch (e0) { + case 0b0101: e0 = 0b0100; continue; // top-left + case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top + case 0b0110: e0 = 0b0010; continue; // top-right + case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right + case 0b1010: e0 = 0b1000; continue; // bottom-right + case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom + case 0b1001: e0 = 0b0001; continue; // bottom-left + case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left + } + if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) { + P.splice(j, 0, x, y), j += 2; + } + } + if (P.length > 4) { + for (let i = 0; i < P.length; i+= 2) { + const j = (i + 2) % P.length, k = (i + 4) % P.length; + if (P[i] === P[j] && P[j] === P[k] + || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) + P.splice(j, 2), i -= 2; + } + } + return j; + } + _project(x0, y0, vx, vy) { + let t = Infinity, c, x, y; + if (vy < 0) { // top + if (y0 <= this.ymin) return null; + if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx; + } else if (vy > 0) { // bottom + if (y0 >= this.ymax) return null; + if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx; + } + if (vx > 0) { // right + if (x0 >= this.xmax) return null; + if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy; + } else if (vx < 0) { // left + if (x0 <= this.xmin) return null; + if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy; + } + return [x, y]; + } + _edgecode(x, y) { + return (x === this.xmin ? 0b0001 + : x === this.xmax ? 0b0010 : 0b0000) + | (y === this.ymin ? 0b0100 + : y === this.ymax ? 0b1000 : 0b0000); + } + _regioncode(x, y) { + return (x < this.xmin ? 0b0001 + : x > this.xmax ? 0b0010 : 0b0000) + | (y < this.ymin ? 0b0100 + : y > this.ymax ? 0b1000 : 0b0000); + } +} + +const tau$2 = 2 * Math.PI, pow$2 = Math.pow; + +function pointX(p) { + return p[0]; +} + +function pointY(p) { + return p[1]; +} + +// A triangulation is collinear if all its triangles have a non-null area +function collinear(d) { + const {triangles, coords} = d; + for (let i = 0; i < triangles.length; i += 3) { + const a = 2 * triangles[i], + b = 2 * triangles[i + 1], + c = 2 * triangles[i + 2], + cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) + - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); + if (cross > 1e-10) return false; + } + return true; +} + +function jitter(x, y, r) { + return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r]; +} + +class Delaunay { + static from(points, fx = pointX, fy = pointY, that) { + return new Delaunay("length" in points + ? flatArray(points, fx, fy, that) + : Float64Array.from(flatIterable(points, fx, fy, that))); + } + constructor(points) { + this._delaunator = new Delaunator(points); + this.inedges = new Int32Array(points.length / 2); + this._hullIndex = new Int32Array(points.length / 2); + this.points = this._delaunator.coords; + this._init(); + } + update() { + this._delaunator.update(); + this._init(); + return this; + } + _init() { + const d = this._delaunator, points = this.points; + + // check for collinear + if (d.hull && d.hull.length > 2 && collinear(d)) { + this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i) + .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors + const e = this.collinear[0], f = this.collinear[this.collinear.length - 1], + bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ], + r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]); + for (let i = 0, n = points.length / 2; i < n; ++i) { + const p = jitter(points[2 * i], points[2 * i + 1], r); + points[2 * i] = p[0]; + points[2 * i + 1] = p[1]; + } + this._delaunator = new Delaunator(points); + } else { + delete this.collinear; + } + + const halfedges = this.halfedges = this._delaunator.halfedges; + const hull = this.hull = this._delaunator.hull; + const triangles = this.triangles = this._delaunator.triangles; + const inedges = this.inedges.fill(-1); + const hullIndex = this._hullIndex.fill(-1); + + // Compute an index from each point to an (arbitrary) incoming halfedge + // Used to give the first neighbor of each point; for this reason, + // on the hull we give priority to exterior halfedges + for (let e = 0, n = halfedges.length; e < n; ++e) { + const p = triangles[e % 3 === 2 ? e - 2 : e + 1]; + if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e; + } + for (let i = 0, n = hull.length; i < n; ++i) { + hullIndex[hull[i]] = i; + } + + // degenerate case: 1 or 2 (distinct) points + if (hull.length <= 2 && hull.length > 0) { + this.triangles = new Int32Array(3).fill(-1); + this.halfedges = new Int32Array(3).fill(-1); + this.triangles[0] = hull[0]; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + inedges[hull[0]] = 1; + if (hull.length === 2) inedges[hull[1]] = 0; + } + } + voronoi(bounds) { + return new Voronoi(this, bounds); + } + *neighbors(i) { + const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this; + + // degenerate case with several collinear points + if (collinear) { + const l = collinear.indexOf(i); + if (l > 0) yield collinear[l - 1]; + if (l < collinear.length - 1) yield collinear[l + 1]; + return; + } + + const e0 = inedges[i]; + if (e0 === -1) return; // coincident point + let e = e0, p0 = -1; + do { + yield p0 = triangles[e]; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) return; // bad triangulation + e = halfedges[e]; + if (e === -1) { + const p = hull[(_hullIndex[i] + 1) % hull.length]; + if (p !== p0) yield p; + return; + } + } while (e !== e0); + } + find(x, y, i = 0) { + if ((x = +x, x !== x) || (y = +y, y !== y)) return -1; + const i0 = i; + let c; + while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c; + return c; + } + _step(i, x, y) { + const {inedges, hull, _hullIndex, halfedges, triangles, points} = this; + if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1); + let c = i; + let dc = pow$2(x - points[i * 2], 2) + pow$2(y - points[i * 2 + 1], 2); + const e0 = inedges[i]; + let e = e0; + do { + let t = triangles[e]; + const dt = pow$2(x - points[t * 2], 2) + pow$2(y - points[t * 2 + 1], 2); + if (dt < dc) dc = dt, c = t; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) break; // bad triangulation + e = halfedges[e]; + if (e === -1) { + e = hull[(_hullIndex[i] + 1) % hull.length]; + if (e !== t) { + if (pow$2(x - points[e * 2], 2) + pow$2(y - points[e * 2 + 1], 2) < dc) return e; + } + break; + } + } while (e !== e0); + return c; + } + render(context) { + const buffer = context == null ? context = new Path : undefined; + const {points, halfedges, triangles} = this; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) continue; + const ti = triangles[i] * 2; + const tj = triangles[j] * 2; + context.moveTo(points[ti], points[ti + 1]); + context.lineTo(points[tj], points[tj + 1]); + } + this.renderHull(context); + return buffer && buffer.value(); + } + renderPoints(context, r = 2) { + const buffer = context == null ? context = new Path : undefined; + const {points} = this; + for (let i = 0, n = points.length; i < n; i += 2) { + const x = points[i], y = points[i + 1]; + context.moveTo(x + r, y); + context.arc(x, y, r, 0, tau$2); + } + return buffer && buffer.value(); + } + renderHull(context) { + const buffer = context == null ? context = new Path : undefined; + const {hull, points} = this; + const h = hull[0] * 2, n = hull.length; + context.moveTo(points[h], points[h + 1]); + for (let i = 1; i < n; ++i) { + const h = 2 * hull[i]; + context.lineTo(points[h], points[h + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + hullPolygon() { + const polygon = new Polygon; + this.renderHull(polygon); + return polygon.value(); + } + renderTriangle(i, context) { + const buffer = context == null ? context = new Path : undefined; + const {points, triangles} = this; + const t0 = triangles[i *= 3] * 2; + const t1 = triangles[i + 1] * 2; + const t2 = triangles[i + 2] * 2; + context.moveTo(points[t0], points[t0 + 1]); + context.lineTo(points[t1], points[t1 + 1]); + context.lineTo(points[t2], points[t2 + 1]); + context.closePath(); + return buffer && buffer.value(); + } + *trianglePolygons() { + const {triangles} = this; + for (let i = 0, n = triangles.length / 3; i < n; ++i) { + yield this.trianglePolygon(i); + } + } + trianglePolygon(i) { + const polygon = new Polygon; + this.renderTriangle(i, polygon); + return polygon.value(); + } +} + +function flatArray(points, fx, fy, that) { + const n = points.length; + const array = new Float64Array(n * 2); + for (let i = 0; i < n; ++i) { + const p = points[i]; + array[i * 2] = fx.call(that, p, i, points); + array[i * 2 + 1] = fy.call(that, p, i, points); + } + return array; +} + +function* flatIterable(points, fx, fy, that) { + let i = 0; + for (const p of points) { + yield fx.call(that, p, i, points); + yield fy.call(that, p, i, points); + ++i; + } +} + +var EOL = {}, + EOF = {}, + QUOTE = 34, + NEWLINE = 10, + RETURN = 13; + +function objectConverter(columns) { + return new Function("d", "return {" + columns.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + "] || \"\""; + }).join(",") + "}"); +} + +function customConverter(columns, f) { + var object = objectConverter(columns); + return function(row, i) { + return f(object(row), i, columns); + }; +} + +// Compute unique columns in order of discovery. +function inferColumns(rows) { + var columnSet = Object.create(null), + columns = []; + + rows.forEach(function(row) { + for (var column in row) { + if (!(column in columnSet)) { + columns.push(columnSet[column] = column); + } + } + }); + + return columns; +} + +function pad$1(value, width) { + var s = value + "", length = s.length; + return length < width ? new Array(width - length + 1).join(0) + s : s; +} + +function formatYear$1(year) { + return year < 0 ? "-" + pad$1(-year, 6) + : year > 9999 ? "+" + pad$1(year, 6) + : pad$1(year, 4); +} + +function formatDate(date) { + var hours = date.getUTCHours(), + minutes = date.getUTCMinutes(), + seconds = date.getUTCSeconds(), + milliseconds = date.getUTCMilliseconds(); + return isNaN(date) ? "Invalid Date" + : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2) + + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z" + : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z" + : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z" + : ""); +} + +function dsvFormat(delimiter) { + var reFormat = new RegExp("[\"" + delimiter + "\n\r]"), + DELIMITER = delimiter.charCodeAt(0); + + function parse(text, f) { + var convert, columns, rows = parseRows(text, function(row, i) { + if (convert) return convert(row, i - 1); + columns = row, convert = f ? customConverter(row, f) : objectConverter(row); + }); + rows.columns = columns || []; + return rows; + } + + function parseRows(text, f) { + var rows = [], // output rows + N = text.length, + I = 0, // current character index + n = 0, // current line number + t, // current token + eof = N <= 0, // current token followed by EOF? + eol = false; // current token followed by EOL? + + // Strip the trailing newline. + if (text.charCodeAt(N - 1) === NEWLINE) --N; + if (text.charCodeAt(N - 1) === RETURN) --N; + + function token() { + if (eof) return EOF; + if (eol) return eol = false, EOL; + + // Unescape quotes. + var i, j = I, c; + if (text.charCodeAt(j) === QUOTE) { + while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE); + if ((i = I) >= N) eof = true; + else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true; + else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } + return text.slice(j + 1, i - 1).replace(/""/g, "\""); + } + + // Find next delimiter or newline. + while (I < N) { + if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true; + else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } + else if (c !== DELIMITER) continue; + return text.slice(j, i); + } + + // Return last token before EOF. + return eof = true, text.slice(j, N); + } + + while ((t = token()) !== EOF) { + var row = []; + while (t !== EOL && t !== EOF) row.push(t), t = token(); + if (f && (row = f(row, n++)) == null) continue; + rows.push(row); + } + + return rows; + } + + function preformatBody(rows, columns) { + return rows.map(function(row) { + return columns.map(function(column) { + return formatValue(row[column]); + }).join(delimiter); + }); + } + + function format(rows, columns) { + if (columns == null) columns = inferColumns(rows); + return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n"); + } + + function formatBody(rows, columns) { + if (columns == null) columns = inferColumns(rows); + return preformatBody(rows, columns).join("\n"); + } + + function formatRows(rows) { + return rows.map(formatRow).join("\n"); + } + + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + + function formatValue(value) { + return value == null ? "" + : value instanceof Date ? formatDate(value) + : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\"" + : value; + } + + return { + parse: parse, + parseRows: parseRows, + format: format, + formatBody: formatBody, + formatRows: formatRows, + formatRow: formatRow, + formatValue: formatValue + }; +} + +var csv$1 = dsvFormat(","); + +var csvParse = csv$1.parse; +var csvParseRows = csv$1.parseRows; +var csvFormat = csv$1.format; +var csvFormatBody = csv$1.formatBody; +var csvFormatRows = csv$1.formatRows; +var csvFormatRow = csv$1.formatRow; +var csvFormatValue = csv$1.formatValue; + +var tsv$1 = dsvFormat("\t"); + +var tsvParse = tsv$1.parse; +var tsvParseRows = tsv$1.parseRows; +var tsvFormat = tsv$1.format; +var tsvFormatBody = tsv$1.formatBody; +var tsvFormatRows = tsv$1.formatRows; +var tsvFormatRow = tsv$1.formatRow; +var tsvFormatValue = tsv$1.formatValue; + +function autoType(object) { + for (var key in object) { + var value = object[key].trim(), number, m; + if (!value) value = null; + else if (value === "true") value = true; + else if (value === "false") value = false; + else if (value === "NaN") value = NaN; + else if (!isNaN(number = +value)) value = number; + else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) { + if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " "); + value = new Date(value); + } + else continue; + object[key] = value; + } + return object; +} + +// https://github.com/d3/d3-dsv/issues/45 +const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours(); + +function responseBlob(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.blob(); +} + +function blob(input, init) { + return fetch(input, init).then(responseBlob); +} + +function responseArrayBuffer(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.arrayBuffer(); +} + +function buffer(input, init) { + return fetch(input, init).then(responseArrayBuffer); +} + +function responseText(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + return response.text(); +} + +function text(input, init) { + return fetch(input, init).then(responseText); +} + +function dsvParse(parse) { + return function(input, init, row) { + if (arguments.length === 2 && typeof init === "function") row = init, init = undefined; + return text(input, init).then(function(response) { + return parse(response, row); + }); + }; +} + +function dsv(delimiter, input, init, row) { + if (arguments.length === 3 && typeof init === "function") row = init, init = undefined; + var format = dsvFormat(delimiter); + return text(input, init).then(function(response) { + return format.parse(response, row); + }); +} + +var csv = dsvParse(csvParse); +var tsv = dsvParse(tsvParse); + +function image(input, init) { + return new Promise(function(resolve, reject) { + var image = new Image; + for (var key in init) image[key] = init[key]; + image.onerror = reject; + image.onload = function() { resolve(image); }; + image.src = input; + }); +} + +function responseJson(response) { + if (!response.ok) throw new Error(response.status + " " + response.statusText); + if (response.status === 204 || response.status === 205) return; + return response.json(); +} + +function json(input, init) { + return fetch(input, init).then(responseJson); +} + +function parser(type) { + return (input, init) => text(input, init) + .then(text => (new DOMParser).parseFromString(text, type)); +} + +var xml = parser("application/xml"); + +var html = parser("text/html"); + +var svg = parser("image/svg+xml"); + +function center(x, y) { + var nodes, strength = 1; + + if (x == null) x = 0; + if (y == null) y = 0; + + function force() { + var i, + n = nodes.length, + node, + sx = 0, + sy = 0; + + for (i = 0; i < n; ++i) { + node = nodes[i], sx += node.x, sy += node.y; + } + + for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) { + node = nodes[i], node.x -= sx, node.y -= sy; + } + } + + force.initialize = function(_) { + nodes = _; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + return force; +} + +function tree_add(d) { + const x = +this._x.call(null, d), + y = +this._y.call(null, d); + return add(this.cover(x, y), x, y, d); +} + +function add(tree, x, y, d) { + if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points + + var parent, + node = tree._root, + leaf = {data: d}, + x0 = tree._x0, + y0 = tree._y0, + x1 = tree._x1, + y1 = tree._y1, + xm, + ym, + xp, + yp, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return tree._root = leaf, tree; + + // Find the existing leaf for the new point, or add it. + while (node.length) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; + } + + // Is the new point is exactly coincident with the existing point? + xp = +tree._x.call(null, node.data); + yp = +tree._y.call(null, node.data); + if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; + + // Otherwise, split the leaf node until the old and new point are separated. + do { + parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); + return parent[j] = node, parent[i] = leaf, tree; +} + +function addAll(data) { + var d, i, n = data.length, + x, + y, + xz = new Array(n), + yz = new Array(n), + x0 = Infinity, + y0 = Infinity, + x1 = -Infinity, + y1 = -Infinity; + + // Compute the points and their extent. + for (i = 0; i < n; ++i) { + if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; + xz[i] = x; + yz[i] = y; + if (x < x0) x0 = x; + if (x > x1) x1 = x; + if (y < y0) y0 = y; + if (y > y1) y1 = y; + } + + // If there were no (valid) points, abort. + if (x0 > x1 || y0 > y1) return this; + + // Expand the tree to cover the new points. + this.cover(x0, y0).cover(x1, y1); + + // Add the new points. + for (i = 0; i < n; ++i) { + add(this, xz[i], yz[i], data[i]); + } + + return this; +} + +function tree_cover(x, y) { + if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points + + var x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1; + + // If the quadtree has no extent, initialize them. + // Integer extent are necessary so that if we later double the extent, + // the existing quadrant boundaries don’t change due to floating point error! + if (isNaN(x0)) { + x1 = (x0 = Math.floor(x)) + 1; + y1 = (y0 = Math.floor(y)) + 1; + } + + // Otherwise, double repeatedly to cover. + else { + var z = x1 - x0 || 1, + node = this._root, + parent, + i; + + while (x0 > x || x >= x1 || y0 > y || y >= y1) { + i = (y < y0) << 1 | (x < x0); + parent = new Array(4), parent[i] = node, node = parent, z *= 2; + switch (i) { + case 0: x1 = x0 + z, y1 = y0 + z; break; + case 1: x0 = x1 - z, y1 = y0 + z; break; + case 2: x1 = x0 + z, y0 = y1 - z; break; + case 3: x0 = x1 - z, y0 = y1 - z; break; + } + } + + if (this._root && this._root.length) this._root = node; + } + + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + return this; +} + +function tree_data() { + var data = []; + this.visit(function(node) { + if (!node.length) do data.push(node.data); while (node = node.next) + }); + return data; +} + +function tree_extent(_) { + return arguments.length + ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) + : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; +} + +function Quad(node, x0, y0, x1, y1) { + this.node = node; + this.x0 = x0; + this.y0 = y0; + this.x1 = x1; + this.y1 = y1; +} + +function tree_find(x, y, radius) { + var data, + x0 = this._x0, + y0 = this._y0, + x1, + y1, + x2, + y2, + x3 = this._x1, + y3 = this._y1, + quads = [], + node = this._root, + q, + i; + + if (node) quads.push(new Quad(node, x0, y0, x3, y3)); + if (radius == null) radius = Infinity; + else { + x0 = x - radius, y0 = y - radius; + x3 = x + radius, y3 = y + radius; + radius *= radius; + } + + while (q = quads.pop()) { + + // Stop searching if this quadrant can’t contain a closer node. + if (!(node = q.node) + || (x1 = q.x0) > x3 + || (y1 = q.y0) > y3 + || (x2 = q.x1) < x0 + || (y2 = q.y1) < y0) continue; + + // Bisect the current quadrant. + if (node.length) { + var xm = (x1 + x2) / 2, + ym = (y1 + y2) / 2; + + quads.push( + new Quad(node[3], xm, ym, x2, y2), + new Quad(node[2], x1, ym, xm, y2), + new Quad(node[1], xm, y1, x2, ym), + new Quad(node[0], x1, y1, xm, ym) + ); + + // Visit the closest quadrant first. + if (i = (y >= ym) << 1 | (x >= xm)) { + q = quads[quads.length - 1]; + quads[quads.length - 1] = quads[quads.length - 1 - i]; + quads[quads.length - 1 - i] = q; + } + } + + // Visit this point. (Visiting coincident points isn’t necessary!) + else { + var dx = x - +this._x.call(null, node.data), + dy = y - +this._y.call(null, node.data), + d2 = dx * dx + dy * dy; + if (d2 < radius) { + var d = Math.sqrt(radius = d2); + x0 = x - d, y0 = y - d; + x3 = x + d, y3 = y + d; + data = node.data; + } + } + } + + return data; +} + +function tree_remove(d) { + if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points + + var parent, + node = this._root, + retainer, + previous, + next, + x0 = this._x0, + y0 = this._y0, + x1 = this._x1, + y1 = this._y1, + x, + y, + xm, + ym, + right, + bottom, + i, + j; + + // If the tree is empty, initialize the root as a leaf. + if (!node) return this; + + // Find the leaf node for the point. + // While descending, also retain the deepest parent with a non-removed sibling. + if (node.length) while (true) { + if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; + if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; + if (!(parent = node, node = node[i = bottom << 1 | right])) return this; + if (!node.length) break; + if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; + } + + // Find the point to remove. + while (node.data !== d) if (!(previous = node, node = node.next)) return this; + if (next = node.next) delete node.next; + + // If there are multiple coincident points, remove just the point. + if (previous) return (next ? previous.next = next : delete previous.next), this; + + // If this is the root point, remove it. + if (!parent) return this._root = next, this; + + // Remove this leaf. + next ? parent[i] = next : delete parent[i]; + + // If the parent now contains exactly one leaf, collapse superfluous parents. + if ((node = parent[0] || parent[1] || parent[2] || parent[3]) + && node === (parent[3] || parent[2] || parent[1] || parent[0]) + && !node.length) { + if (retainer) retainer[j] = node; + else this._root = node; + } + + return this; +} + +function removeAll(data) { + for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); + return this; +} + +function tree_root() { + return this._root; +} + +function tree_size() { + var size = 0; + this.visit(function(node) { + if (!node.length) do ++size; while (node = node.next) + }); + return size; +} + +function tree_visit(callback) { + var quads = [], q, node = this._root, child, x0, y0, x1, y1; + if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { + var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + } + } + return this; +} + +function tree_visitAfter(callback) { + var quads = [], next = [], q; + if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); + while (q = quads.pop()) { + var node = q.node; + if (node.length) { + var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; + if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); + if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); + if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); + if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); + } + next.push(q); + } + while (q = next.pop()) { + callback(q.node, q.x0, q.y0, q.x1, q.y1); + } + return this; +} + +function defaultX(d) { + return d[0]; +} + +function tree_x(_) { + return arguments.length ? (this._x = _, this) : this._x; +} + +function defaultY(d) { + return d[1]; +} + +function tree_y(_) { + return arguments.length ? (this._y = _, this) : this._y; +} + +function quadtree(nodes, x, y) { + var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); + return nodes == null ? tree : tree.addAll(nodes); +} + +function Quadtree(x, y, x0, y0, x1, y1) { + this._x = x; + this._y = y; + this._x0 = x0; + this._y0 = y0; + this._x1 = x1; + this._y1 = y1; + this._root = undefined; +} + +function leaf_copy(leaf) { + var copy = {data: leaf.data}, next = copy; + while (leaf = leaf.next) next = next.next = {data: leaf.data}; + return copy; +} + +var treeProto = quadtree.prototype = Quadtree.prototype; + +treeProto.copy = function() { + var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), + node = this._root, + nodes, + child; + + if (!node) return copy; + + if (!node.length) return copy._root = leaf_copy(node), copy; + + nodes = [{source: node, target: copy._root = new Array(4)}]; + while (node = nodes.pop()) { + for (var i = 0; i < 4; ++i) { + if (child = node.source[i]) { + if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); + else node.target[i] = leaf_copy(child); + } + } + } + + return copy; +}; + +treeProto.add = tree_add; +treeProto.addAll = addAll; +treeProto.cover = tree_cover; +treeProto.data = tree_data; +treeProto.extent = tree_extent; +treeProto.find = tree_find; +treeProto.remove = tree_remove; +treeProto.removeAll = removeAll; +treeProto.root = tree_root; +treeProto.size = tree_size; +treeProto.visit = tree_visit; +treeProto.visitAfter = tree_visitAfter; +treeProto.x = tree_x; +treeProto.y = tree_y; + +function constant$4(x) { + return function() { + return x; + }; +} + +function jiggle(random) { + return (random() - 0.5) * 1e-6; +} + +function x$3(d) { + return d.x + d.vx; +} + +function y$3(d) { + return d.y + d.vy; +} + +function collide(radius) { + var nodes, + radii, + random, + strength = 1, + iterations = 1; + + if (typeof radius !== "function") radius = constant$4(radius == null ? 1 : +radius); + + function force() { + var i, n = nodes.length, + tree, + node, + xi, + yi, + ri, + ri2; + + for (var k = 0; k < iterations; ++k) { + tree = quadtree(nodes, x$3, y$3).visitAfter(prepare); + for (i = 0; i < n; ++i) { + node = nodes[i]; + ri = radii[node.index], ri2 = ri * ri; + xi = node.x + node.vx; + yi = node.y + node.vy; + tree.visit(apply); + } + } + + function apply(quad, x0, y0, x1, y1) { + var data = quad.data, rj = quad.r, r = ri + rj; + if (data) { + if (data.index > node.index) { + var x = xi - data.x - data.vx, + y = yi - data.y - data.vy, + l = x * x + y * y; + if (l < r * r) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + l = (r - (l = Math.sqrt(l))) / l * strength; + node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); + node.vy += (y *= l) * r; + data.vx -= x * (r = 1 - r); + data.vy -= y * r; + } + } + return; + } + return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; + } + } + + function prepare(quad) { + if (quad.data) return quad.r = radii[quad.data.index]; + for (var i = quad.r = 0; i < 4; ++i) { + if (quad[i] && quad[i].r > quad.r) { + quad.r = quad[i].r; + } + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + radii = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = +_, force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; + }; + + return force; +} + +function index$3(d) { + return d.index; +} + +function find(nodeById, nodeId) { + var node = nodeById.get(nodeId); + if (!node) throw new Error("node not found: " + nodeId); + return node; +} + +function link$2(links) { + var id = index$3, + strength = defaultStrength, + strengths, + distance = constant$4(30), + distances, + nodes, + count, + bias, + random, + iterations = 1; + + if (links == null) links = []; + + function defaultStrength(link) { + return 1 / Math.min(count[link.source.index], count[link.target.index]); + } + + function force(alpha) { + for (var k = 0, n = links.length; k < iterations; ++k) { + for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { + link = links[i], source = link.source, target = link.target; + x = target.x + target.vx - source.x - source.vx || jiggle(random); + y = target.y + target.vy - source.y - source.vy || jiggle(random); + l = Math.sqrt(x * x + y * y); + l = (l - distances[i]) / l * alpha * strengths[i]; + x *= l, y *= l; + target.vx -= x * (b = bias[i]); + target.vy -= y * b; + source.vx += x * (b = 1 - b); + source.vy += y * b; + } + } + } + + function initialize() { + if (!nodes) return; + + var i, + n = nodes.length, + m = links.length, + nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])), + link; + + for (i = 0, count = new Array(n); i < m; ++i) { + link = links[i], link.index = i; + if (typeof link.source !== "object") link.source = find(nodeById, link.source); + if (typeof link.target !== "object") link.target = find(nodeById, link.target); + count[link.source.index] = (count[link.source.index] || 0) + 1; + count[link.target.index] = (count[link.target.index] || 0) + 1; + } + + for (i = 0, bias = new Array(m); i < m; ++i) { + link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); + } + + strengths = new Array(m), initializeStrength(); + distances = new Array(m), initializeDistance(); + } + + function initializeStrength() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + strengths[i] = +strength(links[i], i, links); + } + } + + function initializeDistance() { + if (!nodes) return; + + for (var i = 0, n = links.length; i < n; ++i) { + distances[i] = +distance(links[i], i, links); + } + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.links = function(_) { + return arguments.length ? (links = _, initialize(), force) : links; + }; + + force.id = function(_) { + return arguments.length ? (id = _, force) : id; + }; + + force.iterations = function(_) { + return arguments.length ? (iterations = +_, force) : iterations; + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initializeStrength(), force) : strength; + }; + + force.distance = function(_) { + return arguments.length ? (distance = typeof _ === "function" ? _ : constant$4(+_), initializeDistance(), force) : distance; + }; + + return force; +} + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a$1 = 1664525; +const c$3 = 1013904223; +const m = 4294967296; // 2^32 + +function lcg$1() { + let s = 1; + return () => (s = (a$1 * s + c$3) % m) / m; +} + +function x$2(d) { + return d.x; +} + +function y$2(d) { + return d.y; +} + +var initialRadius = 10, + initialAngle = Math.PI * (3 - Math.sqrt(5)); + +function simulation(nodes) { + var simulation, + alpha = 1, + alphaMin = 0.001, + alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), + alphaTarget = 0, + velocityDecay = 0.6, + forces = new Map(), + stepper = timer(step), + event = dispatch("tick", "end"), + random = lcg$1(); + + if (nodes == null) nodes = []; + + function step() { + tick(); + event.call("tick", simulation); + if (alpha < alphaMin) { + stepper.stop(); + event.call("end", simulation); + } + } + + function tick(iterations) { + var i, n = nodes.length, node; + + if (iterations === undefined) iterations = 1; + + for (var k = 0; k < iterations; ++k) { + alpha += (alphaTarget - alpha) * alphaDecay; + + forces.forEach(function(force) { + force(alpha); + }); + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (node.fx == null) node.x += node.vx *= velocityDecay; + else node.x = node.fx, node.vx = 0; + if (node.fy == null) node.y += node.vy *= velocityDecay; + else node.y = node.fy, node.vy = 0; + } + } + + return simulation; + } + + function initializeNodes() { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.index = i; + if (node.fx != null) node.x = node.fx; + if (node.fy != null) node.y = node.fy; + if (isNaN(node.x) || isNaN(node.y)) { + var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle; + node.x = radius * Math.cos(angle); + node.y = radius * Math.sin(angle); + } + if (isNaN(node.vx) || isNaN(node.vy)) { + node.vx = node.vy = 0; + } + } + } + + function initializeForce(force) { + if (force.initialize) force.initialize(nodes, random); + return force; + } + + initializeNodes(); + + return simulation = { + tick: tick, + + restart: function() { + return stepper.restart(step), simulation; + }, + + stop: function() { + return stepper.stop(), simulation; + }, + + nodes: function(_) { + return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes; + }, + + alpha: function(_) { + return arguments.length ? (alpha = +_, simulation) : alpha; + }, + + alphaMin: function(_) { + return arguments.length ? (alphaMin = +_, simulation) : alphaMin; + }, + + alphaDecay: function(_) { + return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; + }, + + alphaTarget: function(_) { + return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; + }, + + velocityDecay: function(_) { + return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; + }, + + randomSource: function(_) { + return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random; + }, + + force: function(name, _) { + return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); + }, + + find: function(x, y, radius) { + var i = 0, + n = nodes.length, + dx, + dy, + d2, + node, + closest; + + if (radius == null) radius = Infinity; + else radius *= radius; + + for (i = 0; i < n; ++i) { + node = nodes[i]; + dx = x - node.x; + dy = y - node.y; + d2 = dx * dx + dy * dy; + if (d2 < radius) closest = node, radius = d2; + } + + return closest; + }, + + on: function(name, _) { + return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); + } + }; +} + +function manyBody() { + var nodes, + node, + random, + alpha, + strength = constant$4(-30), + strengths, + distanceMin2 = 1, + distanceMax2 = Infinity, + theta2 = 0.81; + + function force(_) { + var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate); + for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length, node; + strengths = new Array(n); + for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); + } + + function accumulate(quad) { + var strength = 0, q, c, weight = 0, x, y, i; + + // For internal nodes, accumulate forces from child quadrants. + if (quad.length) { + for (x = y = i = 0; i < 4; ++i) { + if ((q = quad[i]) && (c = Math.abs(q.value))) { + strength += q.value, weight += c, x += c * q.x, y += c * q.y; + } + } + quad.x = x / weight; + quad.y = y / weight; + } + + // For leaf nodes, accumulate forces from coincident quadrants. + else { + q = quad; + q.x = q.data.x; + q.y = q.data.y; + do strength += strengths[q.data.index]; + while (q = q.next); + } + + quad.value = strength; + } + + function apply(quad, x1, _, x2) { + if (!quad.value) return true; + + var x = quad.x - node.x, + y = quad.y - node.y, + w = x2 - x1, + l = x * x + y * y; + + // Apply the Barnes-Hut approximation if possible. + // Limit forces for very close nodes; randomize direction if coincident. + if (w * w / theta2 < l) { + if (l < distanceMax2) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + node.vx += x * quad.value * alpha / l; + node.vy += y * quad.value * alpha / l; + } + return true; + } + + // Otherwise, process points directly. + else if (quad.length || l >= distanceMax2) return; + + // Limit forces for very close nodes; randomize direction if coincident. + if (quad.data !== node || quad.next) { + if (x === 0) x = jiggle(random), l += x * x; + if (y === 0) y = jiggle(random), l += y * y; + if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); + } + + do if (quad.data !== node) { + w = strengths[quad.data.index] * alpha / l; + node.vx += x * w; + node.vy += y * w; + } while (quad = quad.next); + } + + force.initialize = function(_nodes, _random) { + nodes = _nodes; + random = _random; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.distanceMin = function(_) { + return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); + }; + + force.distanceMax = function(_) { + return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); + }; + + force.theta = function(_) { + return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); + }; + + return force; +} + +function radial$1(radius, x, y) { + var nodes, + strength = constant$4(0.1), + strengths, + radiuses; + + if (typeof radius !== "function") radius = constant$4(+radius); + if (x == null) x = 0; + if (y == null) y = 0; + + function force(alpha) { + for (var i = 0, n = nodes.length; i < n; ++i) { + var node = nodes[i], + dx = node.x - x || 1e-6, + dy = node.y - y || 1e-6, + r = Math.sqrt(dx * dx + dy * dy), + k = (radiuses[i] - r) * strengths[i] * alpha / r; + node.vx += dx * k; + node.vy += dy * k; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + radiuses = new Array(n); + for (i = 0; i < n; ++i) { + radiuses[i] = +radius(nodes[i], i, nodes); + strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _, initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; + }; + + force.x = function(_) { + return arguments.length ? (x = +_, force) : x; + }; + + force.y = function(_) { + return arguments.length ? (y = +_, force) : y; + }; + + return force; +} + +function x$1(x) { + var strength = constant$4(0.1), + nodes, + strengths, + xz; + + if (typeof x !== "function") x = constant$4(x == null ? 0 : +x); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + xz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : x; + }; + + return force; +} + +function y$1(y) { + var strength = constant$4(0.1), + nodes, + strengths, + yz; + + if (typeof y !== "function") y = constant$4(y == null ? 0 : +y); + + function force(alpha) { + for (var i = 0, n = nodes.length, node; i < n; ++i) { + node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; + } + } + + function initialize() { + if (!nodes) return; + var i, n = nodes.length; + strengths = new Array(n); + yz = new Array(n); + for (i = 0; i < n; ++i) { + strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); + } + } + + force.initialize = function(_) { + nodes = _; + initialize(); + }; + + force.strength = function(_) { + return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; + }; + + force.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : y; + }; + + return force; +} + +function formatDecimal(x) { + return Math.abs(x = Math.round(x)) >= 1e21 + ? x.toLocaleString("en").replace(/,/g, "") + : x.toString(10); +} + +// Computes the decimal coefficient and exponent of the specified number x with +// significant digits p, where x is positive and p is in [1, 21] or undefined. +// For example, formatDecimalParts(1.23) returns ["123", 0]. +function formatDecimalParts(x, p) { + if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity + var i, coefficient = x.slice(0, i); + + // The string returned by toExponential either has the form \d\.\d+e[-+]\d+ + // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). + return [ + coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, + +x.slice(i + 1) + ]; +} + +function exponent(x) { + return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; +} + +function formatGroup(grouping, thousands) { + return function(value, width) { + var i = value.length, + t = [], + j = 0, + g = grouping[0], + length = 0; + + while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) break; + g = grouping[j = (j + 1) % grouping.length]; + } + + return t.reverse().join(thousands); + }; +} + +function formatNumerals(numerals) { + return function(value) { + return value.replace(/[0-9]/g, function(i) { + return numerals[+i]; + }); + }; +} + +// [[fill]align][sign][symbol][0][width][,][.precision][~][type] +var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; + +function formatSpecifier(specifier) { + if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier); + var match; + return new FormatSpecifier({ + fill: match[1], + align: match[2], + sign: match[3], + symbol: match[4], + zero: match[5], + width: match[6], + comma: match[7], + precision: match[8] && match[8].slice(1), + trim: match[9], + type: match[10] + }); +} + +formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof + +function FormatSpecifier(specifier) { + this.fill = specifier.fill === undefined ? " " : specifier.fill + ""; + this.align = specifier.align === undefined ? ">" : specifier.align + ""; + this.sign = specifier.sign === undefined ? "-" : specifier.sign + ""; + this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + ""; + this.zero = !!specifier.zero; + this.width = specifier.width === undefined ? undefined : +specifier.width; + this.comma = !!specifier.comma; + this.precision = specifier.precision === undefined ? undefined : +specifier.precision; + this.trim = !!specifier.trim; + this.type = specifier.type === undefined ? "" : specifier.type + ""; +} + +FormatSpecifier.prototype.toString = function() { + return this.fill + + this.align + + this.sign + + this.symbol + + (this.zero ? "0" : "") + + (this.width === undefined ? "" : Math.max(1, this.width | 0)) + + (this.comma ? "," : "") + + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) + + (this.trim ? "~" : "") + + this.type; +}; + +// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k. +function formatTrim(s) { + out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { + switch (s[i]) { + case ".": i0 = i1 = i; break; + case "0": if (i0 === 0) i0 = i; i1 = i; break; + default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break; + } + } + return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; +} + +var prefixExponent; + +function formatPrefixAuto(x, p) { + var d = formatDecimalParts(x, p); + if (!d) return x + ""; + var coefficient = d[0], + exponent = d[1], + i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, + n = coefficient.length; + return i === n ? coefficient + : i > n ? coefficient + new Array(i - n + 1).join("0") + : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) + : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y! +} + +function formatRounded(x, p) { + var d = formatDecimalParts(x, p); + if (!d) return x + ""; + var coefficient = d[0], + exponent = d[1]; + return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient + : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) + : coefficient + new Array(exponent - coefficient.length + 2).join("0"); +} + +var formatTypes = { + "%": (x, p) => (x * 100).toFixed(p), + "b": (x) => Math.round(x).toString(2), + "c": (x) => x + "", + "d": formatDecimal, + "e": (x, p) => x.toExponential(p), + "f": (x, p) => x.toFixed(p), + "g": (x, p) => x.toPrecision(p), + "o": (x) => Math.round(x).toString(8), + "p": (x, p) => formatRounded(x * 100, p), + "r": formatRounded, + "s": formatPrefixAuto, + "X": (x) => Math.round(x).toString(16).toUpperCase(), + "x": (x) => Math.round(x).toString(16) +}; + +function identity$6(x) { + return x; +} + +var map = Array.prototype.map, + prefixes = ["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"]; + +function formatLocale$1(locale) { + var group = locale.grouping === undefined || locale.thousands === undefined ? identity$6 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), + currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "", + currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "", + decimal = locale.decimal === undefined ? "." : locale.decimal + "", + numerals = locale.numerals === undefined ? identity$6 : formatNumerals(map.call(locale.numerals, String)), + percent = locale.percent === undefined ? "%" : locale.percent + "", + minus = locale.minus === undefined ? "\u2212" : locale.minus + "", + nan = locale.nan === undefined ? "NaN" : locale.nan + ""; + + function newFormat(specifier) { + specifier = formatSpecifier(specifier); + + var fill = specifier.fill, + align = specifier.align, + sign = specifier.sign, + symbol = specifier.symbol, + zero = specifier.zero, + width = specifier.width, + comma = specifier.comma, + precision = specifier.precision, + trim = specifier.trim, + type = specifier.type; + + // The "n" type is an alias for ",g". + if (type === "n") comma = true, type = "g"; + + // The "" type, and any invalid type, is an alias for ".12~g". + else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; + + // If zero fill is specified, padding goes after sign and before digits. + if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "="; + + // Compute the prefix and suffix. + // For SI-prefix, the suffix is lazily computed. + var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", + suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; + + // What format function should we use? + // Is this an integer type? + // Can this type generate exponential notation? + var formatType = formatTypes[type], + maybeSuffix = /[defgprs%]/.test(type); + + // Set the default precision if not specified, + // or clamp the specified precision to the supported range. + // For significant precision, it must be in [1, 21]. + // For fixed precision, it must be in [0, 20]. + precision = precision === undefined ? 6 + : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) + : Math.max(0, Math.min(20, precision)); + + function format(value) { + var valuePrefix = prefix, + valueSuffix = suffix, + i, n, c; + + if (type === "c") { + valueSuffix = formatType(value) + valueSuffix; + value = ""; + } else { + value = +value; + + // Determine the sign. -0 is not less than 0, but 1 / -0 is! + var valueNegative = value < 0 || 1 / value < 0; + + // Perform the initial formatting. + value = isNaN(value) ? nan : formatType(Math.abs(value), precision); + + // Trim insignificant zeros. + if (trim) value = formatTrim(value); + + // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign. + if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; + + // Compute the prefix and suffix. + valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; + valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); + + // Break the formatted value into the integer “value” part that can be + // grouped, and fractional or exponential “suffix” part that is not. + if (maybeSuffix) { + i = -1, n = value.length; + while (++i < n) { + if (c = value.charCodeAt(i), 48 > c || c > 57) { + valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; + value = value.slice(0, i); + break; + } + } + } + } + + // If the fill character is not "0", grouping is applied before padding. + if (comma && !zero) value = group(value, Infinity); + + // Compute the padding. + var length = valuePrefix.length + value.length + valueSuffix.length, + padding = length < width ? new Array(width - length + 1).join(fill) : ""; + + // If the fill character is "0", grouping is applied after padding. + if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; + + // Reconstruct the final output based on the desired alignment. + switch (align) { + case "<": value = valuePrefix + value + valueSuffix + padding; break; + case "=": value = valuePrefix + padding + value + valueSuffix; break; + case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break; + default: value = padding + valuePrefix + value + valueSuffix; break; + } + + return numerals(value); + } + + format.toString = function() { + return specifier + ""; + }; + + return format; + } + + function formatPrefix(specifier, value) { + var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), + e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, + k = Math.pow(10, -e), + prefix = prefixes[8 + e / 3]; + return function(value) { + return f(k * value) + prefix; + }; + } + + return { + format: newFormat, + formatPrefix: formatPrefix + }; +} + +var locale$1; +exports.format = void 0; +exports.formatPrefix = void 0; + +defaultLocale$1({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); + +function defaultLocale$1(definition) { + locale$1 = formatLocale$1(definition); + exports.format = locale$1.format; + exports.formatPrefix = locale$1.formatPrefix; + return locale$1; +} + +function precisionFixed(step) { + return Math.max(0, -exponent(Math.abs(step))); +} + +function precisionPrefix(step, value) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); +} + +function precisionRound(step, max) { + step = Math.abs(step), max = Math.abs(max) - step; + return Math.max(0, exponent(max) - exponent(step)) + 1; +} + +var epsilon$1 = 1e-6; +var epsilon2 = 1e-12; +var pi$1 = Math.PI; +var halfPi$1 = pi$1 / 2; +var quarterPi = pi$1 / 4; +var tau$1 = pi$1 * 2; + +var degrees = 180 / pi$1; +var radians = pi$1 / 180; + +var abs$1 = Math.abs; +var atan = Math.atan; +var atan2$1 = Math.atan2; +var cos$1 = Math.cos; +var ceil = Math.ceil; +var exp = Math.exp; +var hypot = Math.hypot; +var log$1 = Math.log; +var pow$1 = Math.pow; +var sin$1 = Math.sin; +var sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; }; +var sqrt$2 = Math.sqrt; +var tan = Math.tan; + +function acos$1(x) { + return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x); +} + +function asin$1(x) { + return x > 1 ? halfPi$1 : x < -1 ? -halfPi$1 : Math.asin(x); +} + +function haversin(x) { + return (x = sin$1(x / 2)) * x; +} + +function noop$1() {} + +function streamGeometry(geometry, stream) { + if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) { + streamGeometryType[geometry.type](geometry, stream); + } +} + +var streamObjectType = { + Feature: function(object, stream) { + streamGeometry(object.geometry, stream); + }, + FeatureCollection: function(object, stream) { + var features = object.features, i = -1, n = features.length; + while (++i < n) streamGeometry(features[i].geometry, stream); + } +}; + +var streamGeometryType = { + Sphere: function(object, stream) { + stream.sphere(); + }, + Point: function(object, stream) { + object = object.coordinates; + stream.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]); + }, + LineString: function(object, stream) { + streamLine(object.coordinates, stream, 0); + }, + MultiLineString: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) streamLine(coordinates[i], stream, 0); + }, + Polygon: function(object, stream) { + streamPolygon(object.coordinates, stream); + }, + MultiPolygon: function(object, stream) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) streamPolygon(coordinates[i], stream); + }, + GeometryCollection: function(object, stream) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) streamGeometry(geometries[i], stream); + } +}; + +function streamLine(coordinates, stream, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + stream.lineStart(); + while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]); + stream.lineEnd(); +} + +function streamPolygon(coordinates, stream) { + var i = -1, n = coordinates.length; + stream.polygonStart(); + while (++i < n) streamLine(coordinates[i], stream, 1); + stream.polygonEnd(); +} + +function geoStream(object, stream) { + if (object && streamObjectType.hasOwnProperty(object.type)) { + streamObjectType[object.type](object, stream); + } else { + streamGeometry(object, stream); + } +} + +var areaRingSum$1 = new Adder(); + +// hello? + +var areaSum$1 = new Adder(), + lambda00$2, + phi00$2, + lambda0$2, + cosPhi0$1, + sinPhi0$1; + +var areaStream$1 = { + point: noop$1, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: function() { + areaRingSum$1 = new Adder(); + areaStream$1.lineStart = areaRingStart$1; + areaStream$1.lineEnd = areaRingEnd$1; + }, + polygonEnd: function() { + var areaRing = +areaRingSum$1; + areaSum$1.add(areaRing < 0 ? tau$1 + areaRing : areaRing); + this.lineStart = this.lineEnd = this.point = noop$1; + }, + sphere: function() { + areaSum$1.add(tau$1); + } +}; + +function areaRingStart$1() { + areaStream$1.point = areaPointFirst$1; +} + +function areaRingEnd$1() { + areaPoint$1(lambda00$2, phi00$2); +} + +function areaPointFirst$1(lambda, phi) { + areaStream$1.point = areaPoint$1; + lambda00$2 = lambda, phi00$2 = phi; + lambda *= radians, phi *= radians; + lambda0$2 = lambda, cosPhi0$1 = cos$1(phi = phi / 2 + quarterPi), sinPhi0$1 = sin$1(phi); +} + +function areaPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + phi = phi / 2 + quarterPi; // half the angular distance from south pole + + // Spherical excess E for a spherical triangle with vertices: south pole, + // previous point, current point. Uses a formula derived from Cagnoli’s + // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). + var dLambda = lambda - lambda0$2, + sdLambda = dLambda >= 0 ? 1 : -1, + adLambda = sdLambda * dLambda, + cosPhi = cos$1(phi), + sinPhi = sin$1(phi), + k = sinPhi0$1 * sinPhi, + u = cosPhi0$1 * cosPhi + k * cos$1(adLambda), + v = k * sdLambda * sin$1(adLambda); + areaRingSum$1.add(atan2$1(v, u)); + + // Advance the previous points. + lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi; +} + +function area$2(object) { + areaSum$1 = new Adder(); + geoStream(object, areaStream$1); + return areaSum$1 * 2; +} + +function spherical(cartesian) { + return [atan2$1(cartesian[1], cartesian[0]), asin$1(cartesian[2])]; +} + +function cartesian(spherical) { + var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi); + return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)]; +} + +function cartesianDot(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +} + +function cartesianCross(a, b) { + return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]]; +} + +// TODO return a +function cartesianAddInPlace(a, b) { + a[0] += b[0], a[1] += b[1], a[2] += b[2]; +} + +function cartesianScale(vector, k) { + return [vector[0] * k, vector[1] * k, vector[2] * k]; +} + +// TODO return d +function cartesianNormalizeInPlace(d) { + var l = sqrt$2(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); + d[0] /= l, d[1] /= l, d[2] /= l; +} + +var lambda0$1, phi0, lambda1, phi1, // bounds + lambda2, // previous lambda-coordinate + lambda00$1, phi00$1, // first point + p0, // previous 3D point + deltaSum, + ranges, + range; + +var boundsStream$1 = { + point: boundsPoint$1, + lineStart: boundsLineStart, + lineEnd: boundsLineEnd, + polygonStart: function() { + boundsStream$1.point = boundsRingPoint; + boundsStream$1.lineStart = boundsRingStart; + boundsStream$1.lineEnd = boundsRingEnd; + deltaSum = new Adder(); + areaStream$1.polygonStart(); + }, + polygonEnd: function() { + areaStream$1.polygonEnd(); + boundsStream$1.point = boundsPoint$1; + boundsStream$1.lineStart = boundsLineStart; + boundsStream$1.lineEnd = boundsLineEnd; + if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); + else if (deltaSum > epsilon$1) phi1 = 90; + else if (deltaSum < -epsilon$1) phi0 = -90; + range[0] = lambda0$1, range[1] = lambda1; + }, + sphere: function() { + lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); + } +}; + +function boundsPoint$1(lambda, phi) { + ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; +} + +function linePoint(lambda, phi) { + var p = cartesian([lambda * radians, phi * radians]); + if (p0) { + var normal = cartesianCross(p0, p), + equatorial = [normal[1], -normal[0], 0], + inflection = cartesianCross(equatorial, normal); + cartesianNormalizeInPlace(inflection); + inflection = spherical(inflection); + var delta = lambda - lambda2, + sign = delta > 0 ? 1 : -1, + lambdai = inflection[0] * degrees * sign, + phii, + antimeridian = abs$1(delta) > 180; + if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { + phii = inflection[1] * degrees; + if (phii > phi1) phi1 = phii; + } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { + phii = -inflection[1] * degrees; + if (phii < phi0) phi0 = phii; + } else { + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; + } + if (antimeridian) { + if (lambda < lambda2) { + if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; + } else { + if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; + } + } else { + if (lambda1 >= lambda0$1) { + if (lambda < lambda0$1) lambda0$1 = lambda; + if (lambda > lambda1) lambda1 = lambda; + } else { + if (lambda > lambda2) { + if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; + } else { + if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; + } + } + } + } else { + ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); + } + if (phi < phi0) phi0 = phi; + if (phi > phi1) phi1 = phi; + p0 = p, lambda2 = lambda; +} + +function boundsLineStart() { + boundsStream$1.point = linePoint; +} + +function boundsLineEnd() { + range[0] = lambda0$1, range[1] = lambda1; + boundsStream$1.point = boundsPoint$1; + p0 = null; +} + +function boundsRingPoint(lambda, phi) { + if (p0) { + var delta = lambda - lambda2; + deltaSum.add(abs$1(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta); + } else { + lambda00$1 = lambda, phi00$1 = phi; + } + areaStream$1.point(lambda, phi); + linePoint(lambda, phi); +} + +function boundsRingStart() { + areaStream$1.lineStart(); +} + +function boundsRingEnd() { + boundsRingPoint(lambda00$1, phi00$1); + areaStream$1.lineEnd(); + if (abs$1(deltaSum) > epsilon$1) lambda0$1 = -(lambda1 = 180); + range[0] = lambda0$1, range[1] = lambda1; + p0 = null; +} + +// Finds the left-right distance between two longitudes. +// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want +// the distance between ±180° to be 360°. +function angle(lambda0, lambda1) { + return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1; +} + +function rangeCompare(a, b) { + return a[0] - b[0]; +} + +function rangeContains(range, x) { + return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; +} + +function bounds(feature) { + var i, n, a, b, merged, deltaMax, delta; + + phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity); + ranges = []; + geoStream(feature, boundsStream$1); + + // First, sort ranges by their minimum longitudes. + if (n = ranges.length) { + ranges.sort(rangeCompare); + + // Then, merge any ranges that overlap. + for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) { + b = ranges[i]; + if (rangeContains(a, b[0]) || rangeContains(a, b[1])) { + if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; + if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; + } else { + merged.push(a = b); + } + } + + // Finally, find the largest gap between the merged ranges. + // The final bounding box will be the inverse of this gap. + for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) { + b = merged[i]; + if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1]; + } + } + + ranges = range = null; + + return lambda0$1 === Infinity || phi0 === Infinity + ? [[NaN, NaN], [NaN, NaN]] + : [[lambda0$1, phi0], [lambda1, phi1]]; +} + +var W0, W1, + X0$1, Y0$1, Z0$1, + X1$1, Y1$1, Z1$1, + X2$1, Y2$1, Z2$1, + lambda00, phi00, // first point + x0$4, y0$4, z0; // previous point + +var centroidStream$1 = { + sphere: noop$1, + point: centroidPoint$1, + lineStart: centroidLineStart$1, + lineEnd: centroidLineEnd$1, + polygonStart: function() { + centroidStream$1.lineStart = centroidRingStart$1; + centroidStream$1.lineEnd = centroidRingEnd$1; + }, + polygonEnd: function() { + centroidStream$1.lineStart = centroidLineStart$1; + centroidStream$1.lineEnd = centroidLineEnd$1; + } +}; + +// Arithmetic mean of Cartesian vectors. +function centroidPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi); + centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)); +} + +function centroidPointCartesian(x, y, z) { + ++W0; + X0$1 += (x - X0$1) / W0; + Y0$1 += (y - Y0$1) / W0; + Z0$1 += (z - Z0$1) / W0; +} + +function centroidLineStart$1() { + centroidStream$1.point = centroidLinePointFirst; +} + +function centroidLinePointFirst(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi); + x0$4 = cosPhi * cos$1(lambda); + y0$4 = cosPhi * sin$1(lambda); + z0 = sin$1(phi); + centroidStream$1.point = centroidLinePoint; + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidLinePoint(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi), + x = cosPhi * cos$1(lambda), + y = cosPhi * sin$1(lambda), + z = sin$1(phi), + w = atan2$1(sqrt$2((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z); + W1 += w; + X1$1 += w * (x0$4 + (x0$4 = x)); + Y1$1 += w * (y0$4 + (y0$4 = y)); + Z1$1 += w * (z0 + (z0 = z)); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidLineEnd$1() { + centroidStream$1.point = centroidPoint$1; +} + +// See J. E. Brock, The Inertia Tensor for a Spherical Triangle, +// J. Applied Mechanics 42, 239 (1975). +function centroidRingStart$1() { + centroidStream$1.point = centroidRingPointFirst; +} + +function centroidRingEnd$1() { + centroidRingPoint(lambda00, phi00); + centroidStream$1.point = centroidPoint$1; +} + +function centroidRingPointFirst(lambda, phi) { + lambda00 = lambda, phi00 = phi; + lambda *= radians, phi *= radians; + centroidStream$1.point = centroidRingPoint; + var cosPhi = cos$1(phi); + x0$4 = cosPhi * cos$1(lambda); + y0$4 = cosPhi * sin$1(lambda); + z0 = sin$1(phi); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroidRingPoint(lambda, phi) { + lambda *= radians, phi *= radians; + var cosPhi = cos$1(phi), + x = cosPhi * cos$1(lambda), + y = cosPhi * sin$1(lambda), + z = sin$1(phi), + cx = y0$4 * z - z0 * y, + cy = z0 * x - x0$4 * z, + cz = x0$4 * y - y0$4 * x, + m = hypot(cx, cy, cz), + w = asin$1(m), // line weight = angle + v = m && -w / m; // area weight multiplier + X2$1.add(v * cx); + Y2$1.add(v * cy); + Z2$1.add(v * cz); + W1 += w; + X1$1 += w * (x0$4 + (x0$4 = x)); + Y1$1 += w * (y0$4 + (y0$4 = y)); + Z1$1 += w * (z0 + (z0 = z)); + centroidPointCartesian(x0$4, y0$4, z0); +} + +function centroid$1(object) { + W0 = W1 = + X0$1 = Y0$1 = Z0$1 = + X1$1 = Y1$1 = Z1$1 = 0; + X2$1 = new Adder(); + Y2$1 = new Adder(); + Z2$1 = new Adder(); + geoStream(object, centroidStream$1); + + var x = +X2$1, + y = +Y2$1, + z = +Z2$1, + m = hypot(x, y, z); + + // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid. + if (m < epsilon2) { + x = X1$1, y = Y1$1, z = Z1$1; + // If the feature has zero length, fall back to arithmetic mean of point vectors. + if (W1 < epsilon$1) x = X0$1, y = Y0$1, z = Z0$1; + m = hypot(x, y, z); + // If the feature still has an undefined ccentroid, then return. + if (m < epsilon2) return [NaN, NaN]; + } + + return [atan2$1(y, x) * degrees, asin$1(z / m) * degrees]; +} + +function constant$3(x) { + return function() { + return x; + }; +} + +function compose(a, b) { + + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + + return compose; +} + +function rotationIdentity(lambda, phi) { + return [abs$1(lambda) > pi$1 ? lambda + Math.round(-lambda / tau$1) * tau$1 : lambda, phi]; +} + +rotationIdentity.invert = rotationIdentity; + +function rotateRadians(deltaLambda, deltaPhi, deltaGamma) { + return (deltaLambda %= tau$1) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) + : rotationLambda(deltaLambda)) + : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) + : rotationIdentity); +} + +function forwardRotationLambda(deltaLambda) { + return function(lambda, phi) { + return lambda += deltaLambda, [lambda > pi$1 ? lambda - tau$1 : lambda < -pi$1 ? lambda + tau$1 : lambda, phi]; + }; +} + +function rotationLambda(deltaLambda) { + var rotation = forwardRotationLambda(deltaLambda); + rotation.invert = forwardRotationLambda(-deltaLambda); + return rotation; +} + +function rotationPhiGamma(deltaPhi, deltaGamma) { + var cosDeltaPhi = cos$1(deltaPhi), + sinDeltaPhi = sin$1(deltaPhi), + cosDeltaGamma = cos$1(deltaGamma), + sinDeltaGamma = sin$1(deltaGamma); + + function rotation(lambda, phi) { + var cosPhi = cos$1(phi), + x = cos$1(lambda) * cosPhi, + y = sin$1(lambda) * cosPhi, + z = sin$1(phi), + k = z * cosDeltaPhi + x * sinDeltaPhi; + return [ + atan2$1(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), + asin$1(k * cosDeltaGamma + y * sinDeltaGamma) + ]; + } + + rotation.invert = function(lambda, phi) { + var cosPhi = cos$1(phi), + x = cos$1(lambda) * cosPhi, + y = sin$1(lambda) * cosPhi, + z = sin$1(phi), + k = z * cosDeltaGamma - y * sinDeltaGamma; + return [ + atan2$1(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), + asin$1(k * cosDeltaPhi - x * sinDeltaPhi) + ]; + }; + + return rotation; +} + +function rotation(rotate) { + rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0); + + function forward(coordinates) { + coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians); + return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; + } + + forward.invert = function(coordinates) { + coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians); + return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; + }; + + return forward; +} + +// Generates a circle centered at [0°, 0°], with a given radius and precision. +function circleStream(stream, radius, delta, direction, t0, t1) { + if (!delta) return; + var cosRadius = cos$1(radius), + sinRadius = sin$1(radius), + step = direction * delta; + if (t0 == null) { + t0 = radius + direction * tau$1; + t1 = radius - step / 2; + } else { + t0 = circleRadius(cosRadius, t0); + t1 = circleRadius(cosRadius, t1); + if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1; + } + for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) { + point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]); + stream.point(point[0], point[1]); + } +} + +// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. +function circleRadius(cosRadius, point) { + point = cartesian(point), point[0] -= cosRadius; + cartesianNormalizeInPlace(point); + var radius = acos$1(-point[1]); + return ((-point[2] < 0 ? -radius : radius) + tau$1 - epsilon$1) % tau$1; +} + +function circle$2() { + var center = constant$3([0, 0]), + radius = constant$3(90), + precision = constant$3(6), + ring, + rotate, + stream = {point: point}; + + function point(x, y) { + ring.push(x = rotate(x, y)); + x[0] *= degrees, x[1] *= degrees; + } + + function circle() { + var c = center.apply(this, arguments), + r = radius.apply(this, arguments) * radians, + p = precision.apply(this, arguments) * radians; + ring = []; + rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert; + circleStream(stream, r, p, 1); + c = {type: "Polygon", coordinates: [ring]}; + ring = rotate = null; + return c; + } + + circle.center = function(_) { + return arguments.length ? (center = typeof _ === "function" ? _ : constant$3([+_[0], +_[1]]), circle) : center; + }; + + circle.radius = function(_) { + return arguments.length ? (radius = typeof _ === "function" ? _ : constant$3(+_), circle) : radius; + }; + + circle.precision = function(_) { + return arguments.length ? (precision = typeof _ === "function" ? _ : constant$3(+_), circle) : precision; + }; + + return circle; +} + +function clipBuffer() { + var lines = [], + line; + return { + point: function(x, y, m) { + line.push([x, y, m]); + }, + lineStart: function() { + lines.push(line = []); + }, + lineEnd: noop$1, + rejoin: function() { + if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); + }, + result: function() { + var result = lines; + lines = []; + line = null; + return result; + } + }; +} + +function pointEqual(a, b) { + return abs$1(a[0] - b[0]) < epsilon$1 && abs$1(a[1] - b[1]) < epsilon$1; +} + +function Intersection(point, points, other, entry) { + this.x = point; + this.z = points; + this.o = other; // another intersection + this.e = entry; // is an entry? + this.v = false; // visited + this.n = this.p = null; // next & previous +} + +// A generalized polygon clipping algorithm: given a polygon that has been cut +// into its visible line segments, and rejoins the segments by interpolating +// along the clip edge. +function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) { + var subject = [], + clip = [], + i, + n; + + segments.forEach(function(segment) { + if ((n = segment.length - 1) <= 0) return; + var n, p0 = segment[0], p1 = segment[n], x; + + if (pointEqual(p0, p1)) { + if (!p0[2] && !p1[2]) { + stream.lineStart(); + for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]); + stream.lineEnd(); + return; + } + // handle degenerate cases by moving the point + p1[0] += 2 * epsilon$1; + } + + subject.push(x = new Intersection(p0, segment, null, true)); + clip.push(x.o = new Intersection(p0, null, x, false)); + subject.push(x = new Intersection(p1, segment, null, false)); + clip.push(x.o = new Intersection(p1, null, x, true)); + }); + + if (!subject.length) return; + + clip.sort(compareIntersection); + link$1(subject); + link$1(clip); + + for (i = 0, n = clip.length; i < n; ++i) { + clip[i].e = startInside = !startInside; + } + + var start = subject[0], + points, + point; + + while (1) { + // Find first unvisited intersection. + var current = start, + isSubject = true; + while (current.v) if ((current = current.n) === start) return; + points = current.z; + stream.lineStart(); + do { + current.v = current.o.v = true; + if (current.e) { + if (isSubject) { + for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.n.x, 1, stream); + } + current = current.n; + } else { + if (isSubject) { + points = current.p.z; + for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]); + } else { + interpolate(current.x, current.p.x, -1, stream); + } + current = current.p; + } + current = current.o; + points = current.z; + isSubject = !isSubject; + } while (!current.v); + stream.lineEnd(); + } +} + +function link$1(array) { + if (!(n = array.length)) return; + var n, + i = 0, + a = array[0], + b; + while (++i < n) { + a.n = b = array[i]; + b.p = a; + a = b; + } + a.n = b = array[0]; + b.p = a; +} + +function longitude(point) { + if (abs$1(point[0]) <= pi$1) + return point[0]; + else + return sign$1(point[0]) * ((abs$1(point[0]) + pi$1) % tau$1 - pi$1); +} + +function polygonContains(polygon, point) { + var lambda = longitude(point), + phi = point[1], + sinPhi = sin$1(phi), + normal = [sin$1(lambda), -cos$1(lambda), 0], + angle = 0, + winding = 0; + + var sum = new Adder(); + + if (sinPhi === 1) phi = halfPi$1 + epsilon$1; + else if (sinPhi === -1) phi = -halfPi$1 - epsilon$1; + + for (var i = 0, n = polygon.length; i < n; ++i) { + if (!(m = (ring = polygon[i]).length)) continue; + var ring, + m, + point0 = ring[m - 1], + lambda0 = longitude(point0), + phi0 = point0[1] / 2 + quarterPi, + sinPhi0 = sin$1(phi0), + cosPhi0 = cos$1(phi0); + + for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) { + var point1 = ring[j], + lambda1 = longitude(point1), + phi1 = point1[1] / 2 + quarterPi, + sinPhi1 = sin$1(phi1), + cosPhi1 = cos$1(phi1), + delta = lambda1 - lambda0, + sign = delta >= 0 ? 1 : -1, + absDelta = sign * delta, + antimeridian = absDelta > pi$1, + k = sinPhi0 * sinPhi1; + + sum.add(atan2$1(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta))); + angle += antimeridian ? delta + sign * tau$1 : delta; + + // Are the longitudes either side of the point’s meridian (lambda), + // and are the latitudes smaller than the parallel (phi)? + if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) { + var arc = cartesianCross(cartesian(point0), cartesian(point1)); + cartesianNormalizeInPlace(arc); + var intersection = cartesianCross(normal, arc); + cartesianNormalizeInPlace(intersection); + var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]); + if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) { + winding += antimeridian ^ delta >= 0 ? 1 : -1; + } + } + } + } + + // First, determine whether the South pole is inside or outside: + // + // It is inside if: + // * the polygon winds around it in a clockwise direction. + // * the polygon does not (cumulatively) wind around it, but has a negative + // (counter-clockwise) area. + // + // Second, count the (signed) number of times a segment crosses a lambda + // from the point to the South pole. If it is zero, then the point is the + // same side as the South pole. + + return (angle < -epsilon$1 || angle < epsilon$1 && sum < -epsilon2) ^ (winding & 1); +} + +function clip(pointVisible, clipLine, interpolate, start) { + return function(sink) { + var line = clipLine(sink), + ringBuffer = clipBuffer(), + ringSink = clipLine(ringBuffer), + polygonStarted = false, + polygon, + segments, + ring; + + var clip = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { + clip.point = pointRing; + clip.lineStart = ringStart; + clip.lineEnd = ringEnd; + segments = []; + polygon = []; + }, + polygonEnd: function() { + clip.point = point; + clip.lineStart = lineStart; + clip.lineEnd = lineEnd; + segments = merge(segments); + var startInside = polygonContains(polygon, start); + if (segments.length) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + clipRejoin(segments, compareIntersection, startInside, interpolate, sink); + } else if (startInside) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + sink.lineStart(); + interpolate(null, null, 1, sink); + sink.lineEnd(); + } + if (polygonStarted) sink.polygonEnd(), polygonStarted = false; + segments = polygon = null; + }, + sphere: function() { + sink.polygonStart(); + sink.lineStart(); + interpolate(null, null, 1, sink); + sink.lineEnd(); + sink.polygonEnd(); + } + }; + + function point(lambda, phi) { + if (pointVisible(lambda, phi)) sink.point(lambda, phi); + } + + function pointLine(lambda, phi) { + line.point(lambda, phi); + } + + function lineStart() { + clip.point = pointLine; + line.lineStart(); + } + + function lineEnd() { + clip.point = point; + line.lineEnd(); + } + + function pointRing(lambda, phi) { + ring.push([lambda, phi]); + ringSink.point(lambda, phi); + } + + function ringStart() { + ringSink.lineStart(); + ring = []; + } + + function ringEnd() { + pointRing(ring[0][0], ring[0][1]); + ringSink.lineEnd(); + + var clean = ringSink.clean(), + ringSegments = ringBuffer.result(), + i, n = ringSegments.length, m, + segment, + point; + + ring.pop(); + polygon.push(ring); + ring = null; + + if (!n) return; + + // No intersections. + if (clean & 1) { + segment = ringSegments[0]; + if ((m = segment.length - 1) > 0) { + if (!polygonStarted) sink.polygonStart(), polygonStarted = true; + sink.lineStart(); + for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]); + sink.lineEnd(); + } + return; + } + + // Rejoin connected segments. + // TODO reuse ringBuffer.rejoin()? + if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); + + segments.push(ringSegments.filter(validSegment)); + } + + return clip; + }; +} + +function validSegment(segment) { + return segment.length > 1; +} + +// Intersections are sorted along the clip edge. For both antimeridian cutting +// and circle clipping, the same comparison is used. +function compareIntersection(a, b) { + return ((a = a.x)[0] < 0 ? a[1] - halfPi$1 - epsilon$1 : halfPi$1 - a[1]) + - ((b = b.x)[0] < 0 ? b[1] - halfPi$1 - epsilon$1 : halfPi$1 - b[1]); +} + +var clipAntimeridian = clip( + function() { return true; }, + clipAntimeridianLine, + clipAntimeridianInterpolate, + [-pi$1, -halfPi$1] +); + +// Takes a line and cuts into visible segments. Return values: 0 - there were +// intersections or the line was empty; 1 - no intersections; 2 - there were +// intersections, and the first and last segments should be rejoined. +function clipAntimeridianLine(stream) { + var lambda0 = NaN, + phi0 = NaN, + sign0 = NaN, + clean; // no intersections + + return { + lineStart: function() { + stream.lineStart(); + clean = 1; + }, + point: function(lambda1, phi1) { + var sign1 = lambda1 > 0 ? pi$1 : -pi$1, + delta = abs$1(lambda1 - lambda0); + if (abs$1(delta - pi$1) < epsilon$1) { // line crosses a pole + stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$1 : -halfPi$1); + stream.point(sign0, phi0); + stream.lineEnd(); + stream.lineStart(); + stream.point(sign1, phi0); + stream.point(lambda1, phi0); + clean = 0; + } else if (sign0 !== sign1 && delta >= pi$1) { // line crosses antimeridian + if (abs$1(lambda0 - sign0) < epsilon$1) lambda0 -= sign0 * epsilon$1; // handle degeneracies + if (abs$1(lambda1 - sign1) < epsilon$1) lambda1 -= sign1 * epsilon$1; + phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1); + stream.point(sign0, phi0); + stream.lineEnd(); + stream.lineStart(); + stream.point(sign1, phi0); + clean = 0; + } + stream.point(lambda0 = lambda1, phi0 = phi1); + sign0 = sign1; + }, + lineEnd: function() { + stream.lineEnd(); + lambda0 = phi0 = NaN; + }, + clean: function() { + return 2 - clean; // if intersections, rejoin first and last segments + } + }; +} + +function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) { + var cosPhi0, + cosPhi1, + sinLambda0Lambda1 = sin$1(lambda0 - lambda1); + return abs$1(sinLambda0Lambda1) > epsilon$1 + ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1) + - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0)) + / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) + : (phi0 + phi1) / 2; +} + +function clipAntimeridianInterpolate(from, to, direction, stream) { + var phi; + if (from == null) { + phi = direction * halfPi$1; + stream.point(-pi$1, phi); + stream.point(0, phi); + stream.point(pi$1, phi); + stream.point(pi$1, 0); + stream.point(pi$1, -phi); + stream.point(0, -phi); + stream.point(-pi$1, -phi); + stream.point(-pi$1, 0); + stream.point(-pi$1, phi); + } else if (abs$1(from[0] - to[0]) > epsilon$1) { + var lambda = from[0] < to[0] ? pi$1 : -pi$1; + phi = direction * lambda / 2; + stream.point(-lambda, phi); + stream.point(0, phi); + stream.point(lambda, phi); + } else { + stream.point(to[0], to[1]); + } +} + +function clipCircle(radius) { + var cr = cos$1(radius), + delta = 6 * radians, + smallRadius = cr > 0, + notHemisphere = abs$1(cr) > epsilon$1; // TODO optimise for this common case + + function interpolate(from, to, direction, stream) { + circleStream(stream, radius, delta, direction, from, to); + } + + function visible(lambda, phi) { + return cos$1(lambda) * cos$1(phi) > cr; + } + + // Takes a line and cuts into visible segments. Return values used for polygon + // clipping: 0 - there were intersections or the line was empty; 1 - no + // intersections 2 - there were intersections, and the first and last segments + // should be rejoined. + function clipLine(stream) { + var point0, // previous point + c0, // code for previous point + v0, // visibility of previous point + v00, // visibility of first point + clean; // no intersections + return { + lineStart: function() { + v00 = v0 = false; + clean = 1; + }, + point: function(lambda, phi) { + var point1 = [lambda, phi], + point2, + v = visible(lambda, phi), + c = smallRadius + ? v ? 0 : code(lambda, phi) + : v ? code(lambda + (lambda < 0 ? pi$1 : -pi$1), phi) : 0; + if (!point0 && (v00 = v0 = v)) stream.lineStart(); + if (v !== v0) { + point2 = intersect(point0, point1); + if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) + point1[2] = 1; + } + if (v !== v0) { + clean = 0; + if (v) { + // outside going in + stream.lineStart(); + point2 = intersect(point1, point0); + stream.point(point2[0], point2[1]); + } else { + // inside going out + point2 = intersect(point0, point1); + stream.point(point2[0], point2[1], 2); + stream.lineEnd(); + } + point0 = point2; + } else if (notHemisphere && point0 && smallRadius ^ v) { + var t; + // If the codes for two points are different, or are both zero, + // and there this segment intersects with the small circle. + if (!(c & c0) && (t = intersect(point1, point0, true))) { + clean = 0; + if (smallRadius) { + stream.lineStart(); + stream.point(t[0][0], t[0][1]); + stream.point(t[1][0], t[1][1]); + stream.lineEnd(); + } else { + stream.point(t[1][0], t[1][1]); + stream.lineEnd(); + stream.lineStart(); + stream.point(t[0][0], t[0][1], 3); + } + } + } + if (v && (!point0 || !pointEqual(point0, point1))) { + stream.point(point1[0], point1[1]); + } + point0 = point1, v0 = v, c0 = c; + }, + lineEnd: function() { + if (v0) stream.lineEnd(); + point0 = null; + }, + // Rejoin first and last segments if there were intersections and the first + // and last points were visible. + clean: function() { + return clean | ((v00 && v0) << 1); + } + }; + } + + // Intersects the great circle between a and b with the clip circle. + function intersect(a, b, two) { + var pa = cartesian(a), + pb = cartesian(b); + + // We have two planes, n1.p = d1 and n2.p = d2. + // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2). + var n1 = [1, 0, 0], // normal + n2 = cartesianCross(pa, pb), + n2n2 = cartesianDot(n2, n2), + n1n2 = n2[0], // cartesianDot(n1, n2), + determinant = n2n2 - n1n2 * n1n2; + + // Two polar points. + if (!determinant) return !two && a; + + var c1 = cr * n2n2 / determinant, + c2 = -cr * n1n2 / determinant, + n1xn2 = cartesianCross(n1, n2), + A = cartesianScale(n1, c1), + B = cartesianScale(n2, c2); + cartesianAddInPlace(A, B); + + // Solve |p(t)|^2 = 1. + var u = n1xn2, + w = cartesianDot(A, u), + uu = cartesianDot(u, u), + t2 = w * w - uu * (cartesianDot(A, A) - 1); + + if (t2 < 0) return; + + var t = sqrt$2(t2), + q = cartesianScale(u, (-w - t) / uu); + cartesianAddInPlace(q, A); + q = spherical(q); + + if (!two) return q; + + // Two intersection points. + var lambda0 = a[0], + lambda1 = b[0], + phi0 = a[1], + phi1 = b[1], + z; + + if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z; + + var delta = lambda1 - lambda0, + polar = abs$1(delta - pi$1) < epsilon$1, + meridian = polar || delta < epsilon$1; + + if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; + + // Check that the first point is between a and b. + if (meridian + ? polar + ? phi0 + phi1 > 0 ^ q[1] < (abs$1(q[0] - lambda0) < epsilon$1 ? phi0 : phi1) + : phi0 <= q[1] && q[1] <= phi1 + : delta > pi$1 ^ (lambda0 <= q[0] && q[0] <= lambda1)) { + var q1 = cartesianScale(u, (-w + t) / uu); + cartesianAddInPlace(q1, A); + return [q, spherical(q1)]; + } + } + + // Generates a 4-bit vector representing the location of a point relative to + // the small circle's bounding box. + function code(lambda, phi) { + var r = smallRadius ? radius : pi$1 - radius, + code = 0; + if (lambda < -r) code |= 1; // left + else if (lambda > r) code |= 2; // right + if (phi < -r) code |= 4; // below + else if (phi > r) code |= 8; // above + return code; + } + + return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$1, radius - pi$1]); +} + +function clipLine(a, b, x0, y0, x1, y1) { + var ax = a[0], + ay = a[1], + bx = b[0], + by = b[1], + t0 = 0, + t1 = 1, + dx = bx - ax, + dy = by - ay, + r; + + r = x0 - ax; + if (!dx && r > 0) return; + r /= dx; + if (dx < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dx > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = x1 - ax; + if (!dx && r < 0) return; + r /= dx; + if (dx < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dx > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + r = y0 - ay; + if (!dy && r > 0) return; + r /= dy; + if (dy < 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } else if (dy > 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } + + r = y1 - ay; + if (!dy && r < 0) return; + r /= dy; + if (dy < 0) { + if (r > t1) return; + if (r > t0) t0 = r; + } else if (dy > 0) { + if (r < t0) return; + if (r < t1) t1 = r; + } + + if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy; + if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy; + return true; +} + +var clipMax = 1e9, clipMin = -clipMax; + +// TODO Use d3-polygon’s polygonContains here for the ring check? +// TODO Eliminate duplicate buffering in clipBuffer and polygon.push? + +function clipRectangle(x0, y0, x1, y1) { + + function visible(x, y) { + return x0 <= x && x <= x1 && y0 <= y && y <= y1; + } + + function interpolate(from, to, direction, stream) { + var a = 0, a1 = 0; + if (from == null + || (a = corner(from, direction)) !== (a1 = corner(to, direction)) + || comparePoint(from, to) < 0 ^ direction > 0) { + do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); + while ((a = (a + direction + 4) % 4) !== a1); + } else { + stream.point(to[0], to[1]); + } + } + + function corner(p, direction) { + return abs$1(p[0] - x0) < epsilon$1 ? direction > 0 ? 0 : 3 + : abs$1(p[0] - x1) < epsilon$1 ? direction > 0 ? 2 : 1 + : abs$1(p[1] - y0) < epsilon$1 ? direction > 0 ? 1 : 0 + : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon + } + + function compareIntersection(a, b) { + return comparePoint(a.x, b.x); + } + + function comparePoint(a, b) { + var ca = corner(a, 1), + cb = corner(b, 1); + return ca !== cb ? ca - cb + : ca === 0 ? b[1] - a[1] + : ca === 1 ? a[0] - b[0] + : ca === 2 ? a[1] - b[1] + : b[0] - a[0]; + } + + return function(stream) { + var activeStream = stream, + bufferStream = clipBuffer(), + segments, + polygon, + ring, + x__, y__, v__, // first point + x_, y_, v_, // previous point + first, + clean; + + var clipStream = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: polygonStart, + polygonEnd: polygonEnd + }; + + function point(x, y) { + if (visible(x, y)) activeStream.point(x, y); + } + + function polygonInside() { + var winding = 0; + + for (var i = 0, n = polygon.length; i < n; ++i) { + for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) { + a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1]; + if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; } + else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; } + } + } + + return winding; + } + + // Buffer geometry within a polygon and then clip it en masse. + function polygonStart() { + activeStream = bufferStream, segments = [], polygon = [], clean = true; + } + + function polygonEnd() { + var startInside = polygonInside(), + cleanInside = clean && startInside, + visible = (segments = merge(segments)).length; + if (cleanInside || visible) { + stream.polygonStart(); + if (cleanInside) { + stream.lineStart(); + interpolate(null, null, 1, stream); + stream.lineEnd(); + } + if (visible) { + clipRejoin(segments, compareIntersection, startInside, interpolate, stream); + } + stream.polygonEnd(); + } + activeStream = stream, segments = polygon = ring = null; + } + + function lineStart() { + clipStream.point = linePoint; + if (polygon) polygon.push(ring = []); + first = true; + v_ = false; + x_ = y_ = NaN; + } + + // TODO rather than special-case polygons, simply handle them separately. + // Ideally, coincident intersection points should be jittered to avoid + // clipping issues. + function lineEnd() { + if (segments) { + linePoint(x__, y__); + if (v__ && v_) bufferStream.rejoin(); + segments.push(bufferStream.result()); + } + clipStream.point = point; + if (v_) activeStream.lineEnd(); + } + + function linePoint(x, y) { + var v = visible(x, y); + if (polygon) ring.push([x, y]); + if (first) { + x__ = x, y__ = y, v__ = v; + first = false; + if (v) { + activeStream.lineStart(); + activeStream.point(x, y); + } + } else { + if (v && v_) activeStream.point(x, y); + else { + var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], + b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))]; + if (clipLine(a, b, x0, y0, x1, y1)) { + if (!v_) { + activeStream.lineStart(); + activeStream.point(a[0], a[1]); + } + activeStream.point(b[0], b[1]); + if (!v) activeStream.lineEnd(); + clean = false; + } else if (v) { + activeStream.lineStart(); + activeStream.point(x, y); + clean = false; + } + } + } + x_ = x, y_ = y, v_ = v; + } + + return clipStream; + }; +} + +function extent() { + var x0 = 0, + y0 = 0, + x1 = 960, + y1 = 500, + cache, + cacheStream, + clip; + + return clip = { + stream: function(stream) { + return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream); + }, + extent: function(_) { + return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]]; + } + }; +} + +var lengthSum$1, + lambda0, + sinPhi0, + cosPhi0; + +var lengthStream$1 = { + sphere: noop$1, + point: noop$1, + lineStart: lengthLineStart, + lineEnd: noop$1, + polygonStart: noop$1, + polygonEnd: noop$1 +}; + +function lengthLineStart() { + lengthStream$1.point = lengthPointFirst$1; + lengthStream$1.lineEnd = lengthLineEnd; +} + +function lengthLineEnd() { + lengthStream$1.point = lengthStream$1.lineEnd = noop$1; +} + +function lengthPointFirst$1(lambda, phi) { + lambda *= radians, phi *= radians; + lambda0 = lambda, sinPhi0 = sin$1(phi), cosPhi0 = cos$1(phi); + lengthStream$1.point = lengthPoint$1; +} + +function lengthPoint$1(lambda, phi) { + lambda *= radians, phi *= radians; + var sinPhi = sin$1(phi), + cosPhi = cos$1(phi), + delta = abs$1(lambda - lambda0), + cosDelta = cos$1(delta), + sinDelta = sin$1(delta), + x = cosPhi * sinDelta, + y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta, + z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta; + lengthSum$1.add(atan2$1(sqrt$2(x * x + y * y), z)); + lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi; +} + +function length$1(object) { + lengthSum$1 = new Adder(); + geoStream(object, lengthStream$1); + return +lengthSum$1; +} + +var coordinates = [null, null], + object = {type: "LineString", coordinates: coordinates}; + +function distance(a, b) { + coordinates[0] = a; + coordinates[1] = b; + return length$1(object); +} + +var containsObjectType = { + Feature: function(object, point) { + return containsGeometry(object.geometry, point); + }, + FeatureCollection: function(object, point) { + var features = object.features, i = -1, n = features.length; + while (++i < n) if (containsGeometry(features[i].geometry, point)) return true; + return false; + } +}; + +var containsGeometryType = { + Sphere: function() { + return true; + }, + Point: function(object, point) { + return containsPoint(object.coordinates, point); + }, + MultiPoint: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsPoint(coordinates[i], point)) return true; + return false; + }, + LineString: function(object, point) { + return containsLine(object.coordinates, point); + }, + MultiLineString: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsLine(coordinates[i], point)) return true; + return false; + }, + Polygon: function(object, point) { + return containsPolygon(object.coordinates, point); + }, + MultiPolygon: function(object, point) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) if (containsPolygon(coordinates[i], point)) return true; + return false; + }, + GeometryCollection: function(object, point) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) if (containsGeometry(geometries[i], point)) return true; + return false; + } +}; + +function containsGeometry(geometry, point) { + return geometry && containsGeometryType.hasOwnProperty(geometry.type) + ? containsGeometryType[geometry.type](geometry, point) + : false; +} + +function containsPoint(coordinates, point) { + return distance(coordinates, point) === 0; +} + +function containsLine(coordinates, point) { + var ao, bo, ab; + for (var i = 0, n = coordinates.length; i < n; i++) { + bo = distance(coordinates[i], point); + if (bo === 0) return true; + if (i > 0) { + ab = distance(coordinates[i], coordinates[i - 1]); + if ( + ab > 0 && + ao <= ab && + bo <= ab && + (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab + ) + return true; + } + ao = bo; + } + return false; +} + +function containsPolygon(coordinates, point) { + return !!polygonContains(coordinates.map(ringRadians), pointRadians(point)); +} + +function ringRadians(ring) { + return ring = ring.map(pointRadians), ring.pop(), ring; +} + +function pointRadians(point) { + return [point[0] * radians, point[1] * radians]; +} + +function contains$1(object, point) { + return (object && containsObjectType.hasOwnProperty(object.type) + ? containsObjectType[object.type] + : containsGeometry)(object, point); +} + +function graticuleX(y0, y1, dy) { + var y = sequence(y0, y1 - epsilon$1, dy).concat(y1); + return function(x) { return y.map(function(y) { return [x, y]; }); }; +} + +function graticuleY(x0, x1, dx) { + var x = sequence(x0, x1 - epsilon$1, dx).concat(x1); + return function(y) { return x.map(function(x) { return [x, y]; }); }; +} + +function graticule() { + var x1, x0, X1, X0, + y1, y0, Y1, Y0, + dx = 10, dy = dx, DX = 90, DY = 360, + x, y, X, Y, + precision = 2.5; + + function graticule() { + return {type: "MultiLineString", coordinates: lines()}; + } + + function lines() { + return sequence(ceil(X0 / DX) * DX, X1, DX).map(X) + .concat(sequence(ceil(Y0 / DY) * DY, Y1, DY).map(Y)) + .concat(sequence(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs$1(x % DX) > epsilon$1; }).map(x)) + .concat(sequence(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs$1(y % DY) > epsilon$1; }).map(y)); + } + + graticule.lines = function() { + return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; }); + }; + + graticule.outline = function() { + return { + type: "Polygon", + coordinates: [ + X(X0).concat( + Y(Y1).slice(1), + X(X1).reverse().slice(1), + Y(Y0).reverse().slice(1)) + ] + }; + }; + + graticule.extent = function(_) { + if (!arguments.length) return graticule.extentMinor(); + return graticule.extentMajor(_).extentMinor(_); + }; + + graticule.extentMajor = function(_) { + if (!arguments.length) return [[X0, Y0], [X1, Y1]]; + X0 = +_[0][0], X1 = +_[1][0]; + Y0 = +_[0][1], Y1 = +_[1][1]; + if (X0 > X1) _ = X0, X0 = X1, X1 = _; + if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; + return graticule.precision(precision); + }; + + graticule.extentMinor = function(_) { + if (!arguments.length) return [[x0, y0], [x1, y1]]; + x0 = +_[0][0], x1 = +_[1][0]; + y0 = +_[0][1], y1 = +_[1][1]; + if (x0 > x1) _ = x0, x0 = x1, x1 = _; + if (y0 > y1) _ = y0, y0 = y1, y1 = _; + return graticule.precision(precision); + }; + + graticule.step = function(_) { + if (!arguments.length) return graticule.stepMinor(); + return graticule.stepMajor(_).stepMinor(_); + }; + + graticule.stepMajor = function(_) { + if (!arguments.length) return [DX, DY]; + DX = +_[0], DY = +_[1]; + return graticule; + }; + + graticule.stepMinor = function(_) { + if (!arguments.length) return [dx, dy]; + dx = +_[0], dy = +_[1]; + return graticule; + }; + + graticule.precision = function(_) { + if (!arguments.length) return precision; + precision = +_; + x = graticuleX(y0, y1, 90); + y = graticuleY(x0, x1, precision); + X = graticuleX(Y0, Y1, 90); + Y = graticuleY(X0, X1, precision); + return graticule; + }; + + return graticule + .extentMajor([[-180, -90 + epsilon$1], [180, 90 - epsilon$1]]) + .extentMinor([[-180, -80 - epsilon$1], [180, 80 + epsilon$1]]); +} + +function graticule10() { + return graticule()(); +} + +function interpolate(a, b) { + var x0 = a[0] * radians, + y0 = a[1] * radians, + x1 = b[0] * radians, + y1 = b[1] * radians, + cy0 = cos$1(y0), + sy0 = sin$1(y0), + cy1 = cos$1(y1), + sy1 = sin$1(y1), + kx0 = cy0 * cos$1(x0), + ky0 = cy0 * sin$1(x0), + kx1 = cy1 * cos$1(x1), + ky1 = cy1 * sin$1(x1), + d = 2 * asin$1(sqrt$2(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))), + k = sin$1(d); + + var interpolate = d ? function(t) { + var B = sin$1(t *= d) / k, + A = sin$1(d - t) / k, + x = A * kx0 + B * kx1, + y = A * ky0 + B * ky1, + z = A * sy0 + B * sy1; + return [ + atan2$1(y, x) * degrees, + atan2$1(z, sqrt$2(x * x + y * y)) * degrees + ]; + } : function() { + return [x0 * degrees, y0 * degrees]; + }; + + interpolate.distance = d; + + return interpolate; +} + +var identity$5 = x => x; + +var areaSum = new Adder(), + areaRingSum = new Adder(), + x00$2, + y00$2, + x0$3, + y0$3; + +var areaStream = { + point: noop$1, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: function() { + areaStream.lineStart = areaRingStart; + areaStream.lineEnd = areaRingEnd; + }, + polygonEnd: function() { + areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop$1; + areaSum.add(abs$1(areaRingSum)); + areaRingSum = new Adder(); + }, + result: function() { + var area = areaSum / 2; + areaSum = new Adder(); + return area; + } +}; + +function areaRingStart() { + areaStream.point = areaPointFirst; +} + +function areaPointFirst(x, y) { + areaStream.point = areaPoint; + x00$2 = x0$3 = x, y00$2 = y0$3 = y; +} + +function areaPoint(x, y) { + areaRingSum.add(y0$3 * x - x0$3 * y); + x0$3 = x, y0$3 = y; +} + +function areaRingEnd() { + areaPoint(x00$2, y00$2); +} + +var x0$2 = Infinity, + y0$2 = x0$2, + x1 = -x0$2, + y1 = x1; + +var boundsStream = { + point: boundsPoint, + lineStart: noop$1, + lineEnd: noop$1, + polygonStart: noop$1, + polygonEnd: noop$1, + result: function() { + var bounds = [[x0$2, y0$2], [x1, y1]]; + x1 = y1 = -(y0$2 = x0$2 = Infinity); + return bounds; + } +}; + +function boundsPoint(x, y) { + if (x < x0$2) x0$2 = x; + if (x > x1) x1 = x; + if (y < y0$2) y0$2 = y; + if (y > y1) y1 = y; +} + +// TODO Enforce positive area for exterior, negative area for interior? + +var X0 = 0, + Y0 = 0, + Z0 = 0, + X1 = 0, + Y1 = 0, + Z1 = 0, + X2 = 0, + Y2 = 0, + Z2 = 0, + x00$1, + y00$1, + x0$1, + y0$1; + +var centroidStream = { + point: centroidPoint, + lineStart: centroidLineStart, + lineEnd: centroidLineEnd, + polygonStart: function() { + centroidStream.lineStart = centroidRingStart; + centroidStream.lineEnd = centroidRingEnd; + }, + polygonEnd: function() { + centroidStream.point = centroidPoint; + centroidStream.lineStart = centroidLineStart; + centroidStream.lineEnd = centroidLineEnd; + }, + result: function() { + var centroid = Z2 ? [X2 / Z2, Y2 / Z2] + : Z1 ? [X1 / Z1, Y1 / Z1] + : Z0 ? [X0 / Z0, Y0 / Z0] + : [NaN, NaN]; + X0 = Y0 = Z0 = + X1 = Y1 = Z1 = + X2 = Y2 = Z2 = 0; + return centroid; + } +}; + +function centroidPoint(x, y) { + X0 += x; + Y0 += y; + ++Z0; +} + +function centroidLineStart() { + centroidStream.point = centroidPointFirstLine; +} + +function centroidPointFirstLine(x, y) { + centroidStream.point = centroidPointLine; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function centroidPointLine(x, y) { + var dx = x - x0$1, dy = y - y0$1, z = sqrt$2(dx * dx + dy * dy); + X1 += z * (x0$1 + x) / 2; + Y1 += z * (y0$1 + y) / 2; + Z1 += z; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function centroidLineEnd() { + centroidStream.point = centroidPoint; +} + +function centroidRingStart() { + centroidStream.point = centroidPointFirstRing; +} + +function centroidRingEnd() { + centroidPointRing(x00$1, y00$1); +} + +function centroidPointFirstRing(x, y) { + centroidStream.point = centroidPointRing; + centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y); +} + +function centroidPointRing(x, y) { + var dx = x - x0$1, + dy = y - y0$1, + z = sqrt$2(dx * dx + dy * dy); + + X1 += z * (x0$1 + x) / 2; + Y1 += z * (y0$1 + y) / 2; + Z1 += z; + + z = y0$1 * x - x0$1 * y; + X2 += z * (x0$1 + x); + Y2 += z * (y0$1 + y); + Z2 += z * 3; + centroidPoint(x0$1 = x, y0$1 = y); +} + +function PathContext(context) { + this._context = context; +} + +PathContext.prototype = { + _radius: 4.5, + pointRadius: function(_) { + return this._radius = _, this; + }, + polygonStart: function() { + this._line = 0; + }, + polygonEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line === 0) this._context.closePath(); + this._point = NaN; + }, + point: function(x, y) { + switch (this._point) { + case 0: { + this._context.moveTo(x, y); + this._point = 1; + break; + } + case 1: { + this._context.lineTo(x, y); + break; + } + default: { + this._context.moveTo(x + this._radius, y); + this._context.arc(x, y, this._radius, 0, tau$1); + break; + } + } + }, + result: noop$1 +}; + +var lengthSum = new Adder(), + lengthRing, + x00, + y00, + x0, + y0; + +var lengthStream = { + point: noop$1, + lineStart: function() { + lengthStream.point = lengthPointFirst; + }, + lineEnd: function() { + if (lengthRing) lengthPoint(x00, y00); + lengthStream.point = noop$1; + }, + polygonStart: function() { + lengthRing = true; + }, + polygonEnd: function() { + lengthRing = null; + }, + result: function() { + var length = +lengthSum; + lengthSum = new Adder(); + return length; + } +}; + +function lengthPointFirst(x, y) { + lengthStream.point = lengthPoint; + x00 = x0 = x, y00 = y0 = y; +} + +function lengthPoint(x, y) { + x0 -= x, y0 -= y; + lengthSum.add(sqrt$2(x0 * x0 + y0 * y0)); + x0 = x, y0 = y; +} + +function PathString() { + this._string = []; +} + +PathString.prototype = { + _radius: 4.5, + _circle: circle$1(4.5), + pointRadius: function(_) { + if ((_ = +_) !== this._radius) this._radius = _, this._circle = null; + return this; + }, + polygonStart: function() { + this._line = 0; + }, + polygonEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line === 0) this._string.push("Z"); + this._point = NaN; + }, + point: function(x, y) { + switch (this._point) { + case 0: { + this._string.push("M", x, ",", y); + this._point = 1; + break; + } + case 1: { + this._string.push("L", x, ",", y); + break; + } + default: { + if (this._circle == null) this._circle = circle$1(this._radius); + this._string.push("M", x, ",", y, this._circle); + break; + } + } + }, + result: function() { + if (this._string.length) { + var result = this._string.join(""); + this._string = []; + return result; + } else { + return null; + } + } +}; + +function circle$1(radius) { + return "m0," + radius + + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + + "z"; +} + +function index$2(projection, context) { + var pointRadius = 4.5, + projectionStream, + contextStream; + + function path(object) { + if (object) { + if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); + geoStream(object, projectionStream(contextStream)); + } + return contextStream.result(); + } + + path.area = function(object) { + geoStream(object, projectionStream(areaStream)); + return areaStream.result(); + }; + + path.measure = function(object) { + geoStream(object, projectionStream(lengthStream)); + return lengthStream.result(); + }; + + path.bounds = function(object) { + geoStream(object, projectionStream(boundsStream)); + return boundsStream.result(); + }; + + path.centroid = function(object) { + geoStream(object, projectionStream(centroidStream)); + return centroidStream.result(); + }; + + path.projection = function(_) { + return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$5) : (projection = _).stream, path) : projection; + }; + + path.context = function(_) { + if (!arguments.length) return context; + contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _); + if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); + return path; + }; + + path.pointRadius = function(_) { + if (!arguments.length) return pointRadius; + pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); + return path; + }; + + return path.projection(projection).context(context); +} + +function transform$1(methods) { + return { + stream: transformer$3(methods) + }; +} + +function transformer$3(methods) { + return function(stream) { + var s = new TransformStream; + for (var key in methods) s[key] = methods[key]; + s.stream = stream; + return s; + }; +} + +function TransformStream() {} + +TransformStream.prototype = { + constructor: TransformStream, + point: function(x, y) { this.stream.point(x, y); }, + sphere: function() { this.stream.sphere(); }, + lineStart: function() { this.stream.lineStart(); }, + lineEnd: function() { this.stream.lineEnd(); }, + polygonStart: function() { this.stream.polygonStart(); }, + polygonEnd: function() { this.stream.polygonEnd(); } +}; + +function fit(projection, fitBounds, object) { + var clip = projection.clipExtent && projection.clipExtent(); + projection.scale(150).translate([0, 0]); + if (clip != null) projection.clipExtent(null); + geoStream(object, projection.stream(boundsStream)); + fitBounds(boundsStream.result()); + if (clip != null) projection.clipExtent(clip); + return projection; +} + +function fitExtent(projection, extent, object) { + return fit(projection, function(b) { + var w = extent[1][0] - extent[0][0], + h = extent[1][1] - extent[0][1], + k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), + x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, + y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +function fitSize(projection, size, object) { + return fitExtent(projection, [[0, 0], size], object); +} + +function fitWidth(projection, width, object) { + return fit(projection, function(b) { + var w = +width, + k = w / (b[1][0] - b[0][0]), + x = (w - k * (b[1][0] + b[0][0])) / 2, + y = -k * b[0][1]; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +function fitHeight(projection, height, object) { + return fit(projection, function(b) { + var h = +height, + k = h / (b[1][1] - b[0][1]), + x = -k * b[0][0], + y = (h - k * (b[1][1] + b[0][1])) / 2; + projection.scale(150 * k).translate([x, y]); + }, object); +} + +var maxDepth = 16, // maximum depth of subdivision + cosMinDistance = cos$1(30 * radians); // cos(minimum angular distance) + +function resample(project, delta2) { + return +delta2 ? resample$1(project, delta2) : resampleNone(project); +} + +function resampleNone(project) { + return transformer$3({ + point: function(x, y) { + x = project(x, y); + this.stream.point(x[0], x[1]); + } + }); +} + +function resample$1(project, delta2) { + + function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) { + var dx = x1 - x0, + dy = y1 - y0, + d2 = dx * dx + dy * dy; + if (d2 > 4 * delta2 && depth--) { + var a = a0 + a1, + b = b0 + b1, + c = c0 + c1, + m = sqrt$2(a * a + b * b + c * c), + phi2 = asin$1(c /= m), + lambda2 = abs$1(abs$1(c) - 1) < epsilon$1 || abs$1(lambda0 - lambda1) < epsilon$1 ? (lambda0 + lambda1) / 2 : atan2$1(b, a), + p = project(lambda2, phi2), + x2 = p[0], + y2 = p[1], + dx2 = x2 - x0, + dy2 = y2 - y0, + dz = dy * dx2 - dx * dy2; + if (dz * dz / d2 > delta2 // perpendicular projected distance + || abs$1((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end + || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream); + stream.point(x2, y2); + resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream); + } + } + } + return function(stream) { + var lambda00, x00, y00, a00, b00, c00, // first point + lambda0, x0, y0, a0, b0, c0; // previous point + + var resampleStream = { + point: point, + lineStart: lineStart, + lineEnd: lineEnd, + polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; }, + polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; } + }; + + function point(x, y) { + x = project(x, y); + stream.point(x[0], x[1]); + } + + function lineStart() { + x0 = NaN; + resampleStream.point = linePoint; + stream.lineStart(); + } + + function linePoint(lambda, phi) { + var c = cartesian([lambda, phi]), p = project(lambda, phi); + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); + stream.point(x0, y0); + } + + function lineEnd() { + resampleStream.point = point; + stream.lineEnd(); + } + + function ringStart() { + lineStart(); + resampleStream.point = ringPoint; + resampleStream.lineEnd = ringEnd; + } + + function ringPoint(lambda, phi) { + linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; + resampleStream.point = linePoint; + } + + function ringEnd() { + resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream); + resampleStream.lineEnd = lineEnd; + lineEnd(); + } + + return resampleStream; + }; +} + +var transformRadians = transformer$3({ + point: function(x, y) { + this.stream.point(x * radians, y * radians); + } +}); + +function transformRotate(rotate) { + return transformer$3({ + point: function(x, y) { + var r = rotate(x, y); + return this.stream.point(r[0], r[1]); + } + }); +} + +function scaleTranslate(k, dx, dy, sx, sy) { + function transform(x, y) { + x *= sx; y *= sy; + return [dx + k * x, dy - k * y]; + } + transform.invert = function(x, y) { + return [(x - dx) / k * sx, (dy - y) / k * sy]; + }; + return transform; +} + +function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) { + if (!alpha) return scaleTranslate(k, dx, dy, sx, sy); + var cosAlpha = cos$1(alpha), + sinAlpha = sin$1(alpha), + a = cosAlpha * k, + b = sinAlpha * k, + ai = cosAlpha / k, + bi = sinAlpha / k, + ci = (sinAlpha * dy - cosAlpha * dx) / k, + fi = (sinAlpha * dx + cosAlpha * dy) / k; + function transform(x, y) { + x *= sx; y *= sy; + return [a * x - b * y + dx, dy - b * x - a * y]; + } + transform.invert = function(x, y) { + return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)]; + }; + return transform; +} + +function projection(project) { + return projectionMutator(function() { return project; })(); +} + +function projectionMutator(projectAt) { + var project, + k = 150, // scale + x = 480, y = 250, // translate + lambda = 0, phi = 0, // center + deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate + alpha = 0, // post-rotate angle + sx = 1, // reflectX + sy = 1, // reflectX + theta = null, preclip = clipAntimeridian, // pre-clip angle + x0 = null, y0, x1, y1, postclip = identity$5, // post-clip extent + delta2 = 0.5, // precision + projectResample, + projectTransform, + projectRotateTransform, + cache, + cacheStream; + + function projection(point) { + return projectRotateTransform(point[0] * radians, point[1] * radians); + } + + function invert(point) { + point = projectRotateTransform.invert(point[0], point[1]); + return point && [point[0] * degrees, point[1] * degrees]; + } + + projection.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream))))); + }; + + projection.preclip = function(_) { + return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip; + }; + + projection.postclip = function(_) { + return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; + }; + + projection.clipAngle = function(_) { + return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees; + }; + + projection.clipExtent = function(_) { + return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + + projection.scale = function(_) { + return arguments.length ? (k = +_, recenter()) : k; + }; + + projection.translate = function(_) { + return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y]; + }; + + projection.center = function(_) { + return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees]; + }; + + projection.rotate = function(_) { + return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees]; + }; + + projection.angle = function(_) { + return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees; + }; + + projection.reflectX = function(_) { + return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0; + }; + + projection.reflectY = function(_) { + return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0; + }; + + projection.precision = function(_) { + return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$2(delta2); + }; + + projection.fitExtent = function(extent, object) { + return fitExtent(projection, extent, object); + }; + + projection.fitSize = function(size, object) { + return fitSize(projection, size, object); + }; + + projection.fitWidth = function(width, object) { + return fitWidth(projection, width, object); + }; + + projection.fitHeight = function(height, object) { + return fitHeight(projection, height, object); + }; + + function recenter() { + var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), + transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha); + rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma); + projectTransform = compose(project, transform); + projectRotateTransform = compose(rotate, projectTransform); + projectResample = resample(projectTransform, delta2); + return reset(); + } + + function reset() { + cache = cacheStream = null; + return projection; + } + + return function() { + project = projectAt.apply(this, arguments); + projection.invert = project.invert && invert; + return recenter(); + }; +} + +function conicProjection(projectAt) { + var phi0 = 0, + phi1 = pi$1 / 3, + m = projectionMutator(projectAt), + p = m(phi0, phi1); + + p.parallels = function(_) { + return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees]; + }; + + return p; +} + +function cylindricalEqualAreaRaw(phi0) { + var cosPhi0 = cos$1(phi0); + + function forward(lambda, phi) { + return [lambda * cosPhi0, sin$1(phi) / cosPhi0]; + } + + forward.invert = function(x, y) { + return [x / cosPhi0, asin$1(y * cosPhi0)]; + }; + + return forward; +} + +function conicEqualAreaRaw(y0, y1) { + var sy0 = sin$1(y0), n = (sy0 + sin$1(y1)) / 2; + + // Are the parallels symmetrical around the Equator? + if (abs$1(n) < epsilon$1) return cylindricalEqualAreaRaw(y0); + + var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt$2(c) / n; + + function project(x, y) { + var r = sqrt$2(c - 2 * n * sin$1(y)) / n; + return [r * sin$1(x *= n), r0 - r * cos$1(x)]; + } + + project.invert = function(x, y) { + var r0y = r0 - y, + l = atan2$1(x, abs$1(r0y)) * sign$1(r0y); + if (r0y * n < 0) + l -= pi$1 * sign$1(x) * sign$1(r0y); + return [l / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))]; + }; + + return project; +} + +function conicEqualArea() { + return conicProjection(conicEqualAreaRaw) + .scale(155.424) + .center([0, 33.6442]); +} + +function albers() { + return conicEqualArea() + .parallels([29.5, 45.5]) + .scale(1070) + .translate([480, 250]) + .rotate([96, 0]) + .center([-0.6, 38.7]); +} + +// The projections must have mutually exclusive clip regions on the sphere, +// as this will avoid emitting interleaving lines and polygons. +function multiplex(streams) { + var n = streams.length; + return { + point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); }, + sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); }, + lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); }, + lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); }, + polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); }, + polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); } + }; +} + +// A composite projection for the United States, configured by default for +// 960×500. The projection also works quite well at 960×600 if you change the +// scale to 1285 and adjust the translate accordingly. The set of standard +// parallels for each region comes from USGS, which is published here: +// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers +function albersUsa() { + var cache, + cacheStream, + lower48 = albers(), lower48Point, + alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338 + hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007 + point, pointStream = {point: function(x, y) { point = [x, y]; }}; + + function albersUsa(coordinates) { + var x = coordinates[0], y = coordinates[1]; + return point = null, + (lower48Point.point(x, y), point) + || (alaskaPoint.point(x, y), point) + || (hawaiiPoint.point(x, y), point); + } + + albersUsa.invert = function(coordinates) { + var k = lower48.scale(), + t = lower48.translate(), + x = (coordinates[0] - t[0]) / k, + y = (coordinates[1] - t[1]) / k; + return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska + : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii + : lower48).invert(coordinates); + }; + + albersUsa.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]); + }; + + albersUsa.precision = function(_) { + if (!arguments.length) return lower48.precision(); + lower48.precision(_), alaska.precision(_), hawaii.precision(_); + return reset(); + }; + + albersUsa.scale = function(_) { + if (!arguments.length) return lower48.scale(); + lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_); + return albersUsa.translate(lower48.translate()); + }; + + albersUsa.translate = function(_) { + if (!arguments.length) return lower48.translate(); + var k = lower48.scale(), x = +_[0], y = +_[1]; + + lower48Point = lower48 + .translate(_) + .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]) + .stream(pointStream); + + alaskaPoint = alaska + .translate([x - 0.307 * k, y + 0.201 * k]) + .clipExtent([[x - 0.425 * k + epsilon$1, y + 0.120 * k + epsilon$1], [x - 0.214 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) + .stream(pointStream); + + hawaiiPoint = hawaii + .translate([x - 0.205 * k, y + 0.212 * k]) + .clipExtent([[x - 0.214 * k + epsilon$1, y + 0.166 * k + epsilon$1], [x - 0.115 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) + .stream(pointStream); + + return reset(); + }; + + albersUsa.fitExtent = function(extent, object) { + return fitExtent(albersUsa, extent, object); + }; + + albersUsa.fitSize = function(size, object) { + return fitSize(albersUsa, size, object); + }; + + albersUsa.fitWidth = function(width, object) { + return fitWidth(albersUsa, width, object); + }; + + albersUsa.fitHeight = function(height, object) { + return fitHeight(albersUsa, height, object); + }; + + function reset() { + cache = cacheStream = null; + return albersUsa; + } + + return albersUsa.scale(1070); +} + +function azimuthalRaw(scale) { + return function(x, y) { + var cx = cos$1(x), + cy = cos$1(y), + k = scale(cx * cy); + if (k === Infinity) return [2, 0]; + return [ + k * cy * sin$1(x), + k * sin$1(y) + ]; + } +} + +function azimuthalInvert(angle) { + return function(x, y) { + var z = sqrt$2(x * x + y * y), + c = angle(z), + sc = sin$1(c), + cc = cos$1(c); + return [ + atan2$1(x * sc, z * cc), + asin$1(z && y * sc / z) + ]; + } +} + +var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) { + return sqrt$2(2 / (1 + cxcy)); +}); + +azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) { + return 2 * asin$1(z / 2); +}); + +function azimuthalEqualArea() { + return projection(azimuthalEqualAreaRaw) + .scale(124.75) + .clipAngle(180 - 1e-3); +} + +var azimuthalEquidistantRaw = azimuthalRaw(function(c) { + return (c = acos$1(c)) && c / sin$1(c); +}); + +azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) { + return z; +}); + +function azimuthalEquidistant() { + return projection(azimuthalEquidistantRaw) + .scale(79.4188) + .clipAngle(180 - 1e-3); +} + +function mercatorRaw(lambda, phi) { + return [lambda, log$1(tan((halfPi$1 + phi) / 2))]; +} + +mercatorRaw.invert = function(x, y) { + return [x, 2 * atan(exp(y)) - halfPi$1]; +}; + +function mercator() { + return mercatorProjection(mercatorRaw) + .scale(961 / tau$1); +} + +function mercatorProjection(project) { + var m = projection(project), + center = m.center, + scale = m.scale, + translate = m.translate, + clipExtent = m.clipExtent, + x0 = null, y0, x1, y1; // clip extent + + m.scale = function(_) { + return arguments.length ? (scale(_), reclip()) : scale(); + }; + + m.translate = function(_) { + return arguments.length ? (translate(_), reclip()) : translate(); + }; + + m.center = function(_) { + return arguments.length ? (center(_), reclip()) : center(); + }; + + m.clipExtent = function(_) { + return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + + function reclip() { + var k = pi$1 * scale(), + t = m(rotation(m.rotate()).invert([0, 0])); + return clipExtent(x0 == null + ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw + ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] + : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]); + } + + return reclip(); +} + +function tany(y) { + return tan((halfPi$1 + y) / 2); +} + +function conicConformalRaw(y0, y1) { + var cy0 = cos$1(y0), + n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)), + f = cy0 * pow$1(tany(y0), n) / n; + + if (!n) return mercatorRaw; + + function project(x, y) { + if (f > 0) { if (y < -halfPi$1 + epsilon$1) y = -halfPi$1 + epsilon$1; } + else { if (y > halfPi$1 - epsilon$1) y = halfPi$1 - epsilon$1; } + var r = f / pow$1(tany(y), n); + return [r * sin$1(n * x), f - r * cos$1(n * x)]; + } + + project.invert = function(x, y) { + var fy = f - y, r = sign$1(n) * sqrt$2(x * x + fy * fy), + l = atan2$1(x, abs$1(fy)) * sign$1(fy); + if (fy * n < 0) + l -= pi$1 * sign$1(x) * sign$1(fy); + return [l / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$1]; + }; + + return project; +} + +function conicConformal() { + return conicProjection(conicConformalRaw) + .scale(109.5) + .parallels([30, 30]); +} + +function equirectangularRaw(lambda, phi) { + return [lambda, phi]; +} + +equirectangularRaw.invert = equirectangularRaw; + +function equirectangular() { + return projection(equirectangularRaw) + .scale(152.63); +} + +function conicEquidistantRaw(y0, y1) { + var cy0 = cos$1(y0), + n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0), + g = cy0 / n + y0; + + if (abs$1(n) < epsilon$1) return equirectangularRaw; + + function project(x, y) { + var gy = g - y, nx = n * x; + return [gy * sin$1(nx), g - gy * cos$1(nx)]; + } + + project.invert = function(x, y) { + var gy = g - y, + l = atan2$1(x, abs$1(gy)) * sign$1(gy); + if (gy * n < 0) + l -= pi$1 * sign$1(x) * sign$1(gy); + return [l / n, g - sign$1(n) * sqrt$2(x * x + gy * gy)]; + }; + + return project; +} + +function conicEquidistant() { + return conicProjection(conicEquidistantRaw) + .scale(131.154) + .center([0, 13.9389]); +} + +var A1 = 1.340264, + A2 = -0.081106, + A3 = 0.000893, + A4 = 0.003796, + M = sqrt$2(3) / 2, + iterations = 12; + +function equalEarthRaw(lambda, phi) { + var l = asin$1(M * sin$1(phi)), l2 = l * l, l6 = l2 * l2 * l2; + return [ + lambda * cos$1(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), + l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) + ]; +} + +equalEarthRaw.invert = function(x, y) { + var l = y, l2 = l * l, l6 = l2 * l2 * l2; + for (var i = 0, delta, fy, fpy; i < iterations; ++i) { + fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y; + fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2); + l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2; + if (abs$1(delta) < epsilon2) break; + } + return [ + M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos$1(l), + asin$1(sin$1(l) / M) + ]; +}; + +function equalEarth() { + return projection(equalEarthRaw) + .scale(177.158); +} + +function gnomonicRaw(x, y) { + var cy = cos$1(y), k = cos$1(x) * cy; + return [cy * sin$1(x) / k, sin$1(y) / k]; +} + +gnomonicRaw.invert = azimuthalInvert(atan); + +function gnomonic() { + return projection(gnomonicRaw) + .scale(144.049) + .clipAngle(60); +} + +function identity$4() { + var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect + alpha = 0, ca, sa, // angle + x0 = null, y0, x1, y1, // clip extent + kx = 1, ky = 1, + transform = transformer$3({ + point: function(x, y) { + var p = projection([x, y]); + this.stream.point(p[0], p[1]); + } + }), + postclip = identity$5, + cache, + cacheStream; + + function reset() { + kx = k * sx; + ky = k * sy; + cache = cacheStream = null; + return projection; + } + + function projection (p) { + var x = p[0] * kx, y = p[1] * ky; + if (alpha) { + var t = y * ca - x * sa; + x = x * ca + y * sa; + y = t; + } + return [x + tx, y + ty]; + } + projection.invert = function(p) { + var x = p[0] - tx, y = p[1] - ty; + if (alpha) { + var t = y * ca + x * sa; + x = x * ca - y * sa; + y = t; + } + return [x / kx, y / ky]; + }; + projection.stream = function(stream) { + return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream)); + }; + projection.postclip = function(_) { + return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; + }; + projection.clipExtent = function(_) { + return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; + }; + projection.scale = function(_) { + return arguments.length ? (k = +_, reset()) : k; + }; + projection.translate = function(_) { + return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty]; + }; + projection.angle = function(_) { + return arguments.length ? (alpha = _ % 360 * radians, sa = sin$1(alpha), ca = cos$1(alpha), reset()) : alpha * degrees; + }; + projection.reflectX = function(_) { + return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0; + }; + projection.reflectY = function(_) { + return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0; + }; + projection.fitExtent = function(extent, object) { + return fitExtent(projection, extent, object); + }; + projection.fitSize = function(size, object) { + return fitSize(projection, size, object); + }; + projection.fitWidth = function(width, object) { + return fitWidth(projection, width, object); + }; + projection.fitHeight = function(height, object) { + return fitHeight(projection, height, object); + }; + + return projection; +} + +function naturalEarth1Raw(lambda, phi) { + var phi2 = phi * phi, phi4 = phi2 * phi2; + return [ + lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), + phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) + ]; +} + +naturalEarth1Raw.invert = function(x, y) { + var phi = y, i = 25, delta; + do { + var phi2 = phi * phi, phi4 = phi2 * phi2; + phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / + (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4))); + } while (abs$1(delta) > epsilon$1 && --i > 0); + return [ + x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), + phi + ]; +}; + +function naturalEarth1() { + return projection(naturalEarth1Raw) + .scale(175.295); +} + +function orthographicRaw(x, y) { + return [cos$1(y) * sin$1(x), sin$1(y)]; +} + +orthographicRaw.invert = azimuthalInvert(asin$1); + +function orthographic() { + return projection(orthographicRaw) + .scale(249.5) + .clipAngle(90 + epsilon$1); +} + +function stereographicRaw(x, y) { + var cy = cos$1(y), k = 1 + cos$1(x) * cy; + return [cy * sin$1(x) / k, sin$1(y) / k]; +} + +stereographicRaw.invert = azimuthalInvert(function(z) { + return 2 * atan(z); +}); + +function stereographic() { + return projection(stereographicRaw) + .scale(250) + .clipAngle(142); +} + +function transverseMercatorRaw(lambda, phi) { + return [log$1(tan((halfPi$1 + phi) / 2)), -lambda]; +} + +transverseMercatorRaw.invert = function(x, y) { + return [-y, 2 * atan(exp(x)) - halfPi$1]; +}; + +function transverseMercator() { + var m = mercatorProjection(transverseMercatorRaw), + center = m.center, + rotate = m.rotate; + + m.center = function(_) { + return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]); + }; + + m.rotate = function(_) { + return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]); + }; + + return rotate([0, 0, 90]) + .scale(159.155); +} + +function defaultSeparation$1(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +function meanX(children) { + return children.reduce(meanXReduce, 0) / children.length; +} + +function meanXReduce(x, c) { + return x + c.x; +} + +function maxY(children) { + return 1 + children.reduce(maxYReduce, 0); +} + +function maxYReduce(y, c) { + return Math.max(y, c.y); +} + +function leafLeft(node) { + var children; + while (children = node.children) node = children[0]; + return node; +} + +function leafRight(node) { + var children; + while (children = node.children) node = children[children.length - 1]; + return node; +} + +function cluster() { + var separation = defaultSeparation$1, + dx = 1, + dy = 1, + nodeSize = false; + + function cluster(root) { + var previousNode, + x = 0; + + // First walk, computing the initial x & y values. + root.eachAfter(function(node) { + var children = node.children; + if (children) { + node.x = meanX(children); + node.y = maxY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + var left = leafLeft(root), + right = leafRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + return root.eachAfter(nodeSize ? function(node) { + node.x = (node.x - root.x) * dx; + node.y = (root.y - node.y) * dy; + } : function(node) { + node.x = (node.x - x0) / (x1 - x0) * dx; + node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; + }); + } + + cluster.separation = function(x) { + return arguments.length ? (separation = x, cluster) : separation; + }; + + cluster.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); + }; + + cluster.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); + }; + + return cluster; +} + +function count(node) { + var sum = 0, + children = node.children, + i = children && children.length; + if (!i) sum = 1; + else while (--i >= 0) sum += children[i].value; + node.value = sum; +} + +function node_count() { + return this.eachAfter(count); +} + +function node_each(callback, that) { + let index = -1; + for (const node of this) { + callback.call(that, node, ++index, this); + } + return this; +} + +function node_eachBefore(callback, that) { + var node = this, nodes = [node], children, i, index = -1; + while (node = nodes.pop()) { + callback.call(that, node, ++index, this); + if (children = node.children) { + for (i = children.length - 1; i >= 0; --i) { + nodes.push(children[i]); + } + } + } + return this; +} + +function node_eachAfter(callback, that) { + var node = this, nodes = [node], next = [], children, i, n, index = -1; + while (node = nodes.pop()) { + next.push(node); + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + nodes.push(children[i]); + } + } + } + while (node = next.pop()) { + callback.call(that, node, ++index, this); + } + return this; +} + +function node_find(callback, that) { + let index = -1; + for (const node of this) { + if (callback.call(that, node, ++index, this)) { + return node; + } + } +} + +function node_sum(value) { + return this.eachAfter(function(node) { + var sum = +value(node.data) || 0, + children = node.children, + i = children && children.length; + while (--i >= 0) sum += children[i].value; + node.value = sum; + }); +} + +function node_sort(compare) { + return this.eachBefore(function(node) { + if (node.children) { + node.children.sort(compare); + } + }); +} + +function node_path(end) { + var start = this, + ancestor = leastCommonAncestor(start, end), + nodes = [start]; + while (start !== ancestor) { + start = start.parent; + nodes.push(start); + } + var k = nodes.length; + while (end !== ancestor) { + nodes.splice(k, 0, end); + end = end.parent; + } + return nodes; +} + +function leastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = a.ancestors(), + bNodes = b.ancestors(), + c = null; + a = aNodes.pop(); + b = bNodes.pop(); + while (a === b) { + c = a; + a = aNodes.pop(); + b = bNodes.pop(); + } + return c; +} + +function node_ancestors() { + var node = this, nodes = [node]; + while (node = node.parent) { + nodes.push(node); + } + return nodes; +} + +function node_descendants() { + return Array.from(this); +} + +function node_leaves() { + var leaves = []; + this.eachBefore(function(node) { + if (!node.children) { + leaves.push(node); + } + }); + return leaves; +} + +function node_links() { + var root = this, links = []; + root.each(function(node) { + if (node !== root) { // Don’t include the root’s parent, if any. + links.push({source: node.parent, target: node}); + } + }); + return links; +} + +function* node_iterator() { + var node = this, current, next = [node], children, i, n; + do { + current = next.reverse(), next = []; + while (node = current.pop()) { + yield node; + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + next.push(children[i]); + } + } + } + } while (next.length); +} + +function hierarchy(data, children) { + if (data instanceof Map) { + data = [undefined, data]; + if (children === undefined) children = mapChildren; + } else if (children === undefined) { + children = objectChildren; + } + + var root = new Node$1(data), + node, + nodes = [root], + child, + childs, + i, + n; + + while (node = nodes.pop()) { + if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { + node.children = childs; + for (i = n - 1; i >= 0; --i) { + nodes.push(child = childs[i] = new Node$1(childs[i])); + child.parent = node; + child.depth = node.depth + 1; + } + } + } + + return root.eachBefore(computeHeight); +} + +function node_copy() { + return hierarchy(this).eachBefore(copyData); +} + +function objectChildren(d) { + return d.children; +} + +function mapChildren(d) { + return Array.isArray(d) ? d[1] : null; +} + +function copyData(node) { + if (node.data.value !== undefined) node.value = node.data.value; + node.data = node.data.data; +} + +function computeHeight(node) { + var height = 0; + do node.height = height; + while ((node = node.parent) && (node.height < ++height)); +} + +function Node$1(data) { + this.data = data; + this.depth = + this.height = 0; + this.parent = null; +} + +Node$1.prototype = hierarchy.prototype = { + constructor: Node$1, + count: node_count, + each: node_each, + eachAfter: node_eachAfter, + eachBefore: node_eachBefore, + find: node_find, + sum: node_sum, + sort: node_sort, + path: node_path, + ancestors: node_ancestors, + descendants: node_descendants, + leaves: node_leaves, + links: node_links, + copy: node_copy, + [Symbol.iterator]: node_iterator +}; + +function array$1(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function shuffle(array) { + var m = array.length, + t, + i; + + while (m) { + i = Math.random() * m-- | 0; + t = array[m]; + array[m] = array[i]; + array[i] = t; + } + + return array; +} + +function enclose(circles) { + var i = 0, n = (circles = shuffle(Array.from(circles))).length, B = [], p, e; + + while (i < n) { + p = circles[i]; + if (e && enclosesWeak(e, p)) ++i; + else e = encloseBasis(B = extendBasis(B, p)), i = 0; + } + + return e; +} + +function extendBasis(B, p) { + var i, j; + + if (enclosesWeakAll(p, B)) return [p]; + + // If we get here then B must have at least one element. + for (i = 0; i < B.length; ++i) { + if (enclosesNot(p, B[i]) + && enclosesWeakAll(encloseBasis2(B[i], p), B)) { + return [B[i], p]; + } + } + + // If we get here then B must have at least two elements. + for (i = 0; i < B.length - 1; ++i) { + for (j = i + 1; j < B.length; ++j) { + if (enclosesNot(encloseBasis2(B[i], B[j]), p) + && enclosesNot(encloseBasis2(B[i], p), B[j]) + && enclosesNot(encloseBasis2(B[j], p), B[i]) + && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { + return [B[i], B[j], p]; + } + } + } + + // If we get here then something is very wrong. + throw new Error; +} + +function enclosesNot(a, b) { + var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; + return dr < 0 || dr * dr < dx * dx + dy * dy; +} + +function enclosesWeak(a, b) { + var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function enclosesWeakAll(a, B) { + for (var i = 0; i < B.length; ++i) { + if (!enclosesWeak(a, B[i])) { + return false; + } + } + return true; +} + +function encloseBasis(B) { + switch (B.length) { + case 1: return encloseBasis1(B[0]); + case 2: return encloseBasis2(B[0], B[1]); + case 3: return encloseBasis3(B[0], B[1], B[2]); + } +} + +function encloseBasis1(a) { + return { + x: a.x, + y: a.y, + r: a.r + }; +} + +function encloseBasis2(a, b) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, + l = Math.sqrt(x21 * x21 + y21 * y21); + return { + x: (x1 + x2 + x21 / l * r21) / 2, + y: (y1 + y2 + y21 / l * r21) / 2, + r: (l + r1 + r2) / 2 + }; +} + +function encloseBasis3(a, b, c) { + var x1 = a.x, y1 = a.y, r1 = a.r, + x2 = b.x, y2 = b.y, r2 = b.r, + x3 = c.x, y3 = c.y, r3 = c.r, + a2 = x1 - x2, + a3 = x1 - x3, + b2 = y1 - y2, + b3 = y1 - y3, + c2 = r2 - r1, + c3 = r3 - r1, + d1 = x1 * x1 + y1 * y1 - r1 * r1, + d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, + d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, + ab = a3 * b2 - a2 * b3, + xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, + xb = (b3 * c2 - b2 * c3) / ab, + ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, + yb = (a2 * c3 - a3 * c2) / ab, + A = xb * xb + yb * yb - 1, + B = 2 * (r1 + xa * xb + ya * yb), + C = xa * xa + ya * ya - r1 * r1, + r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + return { + x: x1 + xa + xb * r, + y: y1 + ya + yb * r, + r: r + }; +} + +function place(b, a, c) { + var dx = b.x - a.x, x, a2, + dy = b.y - a.y, y, b2, + d2 = dx * dx + dy * dy; + if (d2) { + a2 = a.r + c.r, a2 *= a2; + b2 = b.r + c.r, b2 *= b2; + if (a2 > b2) { + x = (d2 + b2 - a2) / (2 * d2); + y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); + c.x = b.x - x * dx - y * dy; + c.y = b.y - x * dy + y * dx; + } else { + x = (d2 + a2 - b2) / (2 * d2); + y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); + c.x = a.x + x * dx - y * dy; + c.y = a.y + x * dy + y * dx; + } + } else { + c.x = a.x + c.r; + c.y = a.y; + } +} + +function intersects(a, b) { + var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; + return dr > 0 && dr * dr > dx * dx + dy * dy; +} + +function score(node) { + var a = node._, + b = node.next._, + ab = a.r + b.r, + dx = (a.x * b.r + b.x * a.r) / ab, + dy = (a.y * b.r + b.y * a.r) / ab; + return dx * dx + dy * dy; +} + +function Node(circle) { + this._ = circle; + this.next = null; + this.previous = null; +} + +function packEnclose(circles) { + if (!(n = (circles = array$1(circles)).length)) return 0; + + var a, b, c, n, aa, ca, i, j, k, sj, sk; + + // Place the first circle. + a = circles[0], a.x = 0, a.y = 0; + if (!(n > 1)) return a.r; + + // Place the second circle. + b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; + if (!(n > 2)) return a.r + b.r; + + // Place the third circle. + place(b, a, c = circles[2]); + + // Initialize the front-chain using the first three circles a, b and c. + a = new Node(a), b = new Node(b), c = new Node(c); + a.next = c.previous = b; + b.next = a.previous = c; + c.next = b.previous = a; + + // Attempt to place each remaining circle… + pack: for (i = 3; i < n; ++i) { + place(a._, b._, c = circles[i]), c = new Node(c); + + // Find the closest intersecting circle on the front-chain, if any. + // “Closeness” is determined by linear distance along the front-chain. + // “Ahead” or “behind” is likewise determined by linear distance. + j = b.next, k = a.previous, sj = b._.r, sk = a._.r; + do { + if (sj <= sk) { + if (intersects(j._, c._)) { + b = j, a.next = b, b.previous = a, --i; + continue pack; + } + sj += j._.r, j = j.next; + } else { + if (intersects(k._, c._)) { + a = k, a.next = b, b.previous = a, --i; + continue pack; + } + sk += k._.r, k = k.previous; + } + } while (j !== k.next); + + // Success! Insert the new circle c between a and b. + c.previous = a, c.next = b, a.next = b.previous = b = c; + + // Compute the new closest circle pair to the centroid. + aa = score(a); + while ((c = c.next) !== b) { + if ((ca = score(c)) < aa) { + a = c, aa = ca; + } + } + b = a.next; + } + + // Compute the enclosing circle of the front chain. + a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a); + + // Translate the circles to put the enclosing circle around the origin. + for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; + + return c.r; +} + +function siblings(circles) { + packEnclose(circles); + return circles; +} + +function optional(f) { + return f == null ? null : required(f); +} + +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +function constantZero() { + return 0; +} + +function constant$2(x) { + return function() { + return x; + }; +} + +function defaultRadius(d) { + return Math.sqrt(d.value); +} + +function index$1() { + var radius = null, + dx = 1, + dy = 1, + padding = constantZero; + + function pack(root) { + root.x = dx / 2, root.y = dy / 2; + if (radius) { + root.eachBefore(radiusLeaf(radius)) + .eachAfter(packChildren(padding, 0.5)) + .eachBefore(translateChild(1)); + } else { + root.eachBefore(radiusLeaf(defaultRadius)) + .eachAfter(packChildren(constantZero, 1)) + .eachAfter(packChildren(padding, root.r / Math.min(dx, dy))) + .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + } + return root; + } + + pack.radius = function(x) { + return arguments.length ? (radius = optional(x), pack) : radius; + }; + + pack.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; + }; + + pack.padding = function(x) { + return arguments.length ? (padding = typeof x === "function" ? x : constant$2(+x), pack) : padding; + }; + + return pack; +} + +function radiusLeaf(radius) { + return function(node) { + if (!node.children) { + node.r = Math.max(0, +radius(node) || 0); + } + }; +} + +function packChildren(padding, k) { + return function(node) { + if (children = node.children) { + var children, + i, + n = children.length, + r = padding(node) * k || 0, + e; + + if (r) for (i = 0; i < n; ++i) children[i].r += r; + e = packEnclose(children); + if (r) for (i = 0; i < n; ++i) children[i].r -= r; + node.r = e + r; + } + }; +} + +function translateChild(k) { + return function(node) { + var parent = node.parent; + node.r *= k; + if (parent) { + node.x = parent.x + k * node.x; + node.y = parent.y + k * node.y; + } + }; +} + +function roundNode(node) { + node.x0 = Math.round(node.x0); + node.y0 = Math.round(node.y0); + node.x1 = Math.round(node.x1); + node.y1 = Math.round(node.y1); +} + +function treemapDice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (x1 - x0) / parent.value; + + while (++i < n) { + node = nodes[i], node.y0 = y0, node.y1 = y1; + node.x0 = x0, node.x1 = x0 += node.value * k; + } +} + +function partition() { + var dx = 1, + dy = 1, + padding = 0, + round = false; + + function partition(root) { + var n = root.height + 1; + root.x0 = + root.y0 = padding; + root.x1 = dx; + root.y1 = dy / n; + root.eachBefore(positionNode(dy, n)); + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(dy, n) { + return function(node) { + if (node.children) { + treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n); + } + var x0 = node.x0, + y0 = node.y0, + x1 = node.x1 - padding, + y1 = node.y1 - padding; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + }; + } + + partition.round = function(x) { + return arguments.length ? (round = !!x, partition) : round; + }; + + partition.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy]; + }; + + partition.padding = function(x) { + return arguments.length ? (padding = +x, partition) : padding; + }; + + return partition; +} + +var preroot = {depth: -1}, + ambiguous = {}; + +function defaultId(d) { + return d.id; +} + +function defaultParentId(d) { + return d.parentId; +} + +function stratify() { + var id = defaultId, + parentId = defaultParentId; + + function stratify(data) { + var nodes = Array.from(data), + n = nodes.length, + d, + i, + root, + parent, + node, + nodeId, + nodeKey, + nodeByKey = new Map; + + for (i = 0; i < n; ++i) { + d = nodes[i], node = nodes[i] = new Node$1(d); + if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { + nodeKey = node.id = nodeId; + nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); + } + if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) { + node.parent = nodeId; + } + } + + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (nodeId = node.parent) { + parent = nodeByKey.get(nodeId); + if (!parent) throw new Error("missing: " + nodeId); + if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); + if (parent.children) parent.children.push(node); + else parent.children = [node]; + node.parent = parent; + } else { + if (root) throw new Error("multiple roots"); + root = node; + } + } + + if (!root) throw new Error("no root"); + root.parent = preroot; + root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); + root.parent = null; + if (n > 0) throw new Error("cycle"); + + return root; + } + + stratify.id = function(x) { + return arguments.length ? (id = required(x), stratify) : id; + }; + + stratify.parentId = function(x) { + return arguments.length ? (parentId = required(x), stratify) : parentId; + }; + + return stratify; +} + +function defaultSeparation(a, b) { + return a.parent === b.parent ? 1 : 2; +} + +// function radialSeparation(a, b) { +// return (a.parent === b.parent ? 1 : 2) / a.depth; +// } + +// This function is used to traverse the left contour of a subtree (or +// subforest). It returns the successor of v on this contour. This successor is +// either given by the leftmost child of v or by the thread of v. The function +// returns null if and only if v is on the highest level of its subtree. +function nextLeft(v) { + var children = v.children; + return children ? children[0] : v.t; +} + +// This function works analogously to nextLeft. +function nextRight(v) { + var children = v.children; + return children ? children[children.length - 1] : v.t; +} + +// Shifts the current subtree rooted at w+. This is done by increasing +// prelim(w+) and mod(w+) by shift. +function moveSubtree(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; +} + +// All other shifts, applied to the smaller subtrees between w- and w+, are +// performed by this function. To prepare the shifts, we have to adjust +// change(w+), shift(w+), and change(w-). +function executeShifts(v) { + var shift = 0, + change = 0, + children = v.children, + i = children.length, + w; + while (--i >= 0) { + w = children[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } +} + +// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, +// returns the specified (default) ancestor. +function nextAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; +} + +function TreeNode(node, i) { + this._ = node; + this.parent = null; + this.children = null; + this.A = null; // default ancestor + this.a = this; // ancestor + this.z = 0; // prelim + this.m = 0; // mod + this.c = 0; // change + this.s = 0; // shift + this.t = null; // thread + this.i = i; // number +} + +TreeNode.prototype = Object.create(Node$1.prototype); + +function treeRoot(root) { + var tree = new TreeNode(root, 0), + node, + nodes = [tree], + child, + children, + i, + n; + + while (node = nodes.pop()) { + if (children = node._.children) { + node.children = new Array(n = children.length); + for (i = n - 1; i >= 0; --i) { + nodes.push(child = node.children[i] = new TreeNode(children[i], i)); + child.parent = node; + } + } + } + + (tree.parent = new TreeNode(null, 0)).children = [tree]; + return tree; +} + +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +function tree() { + var separation = defaultSeparation, + dx = 1, + dy = 1, + nodeSize = null; + + function tree(root) { + var t = treeRoot(root); + + // Compute the layout using Buchheim et al.’s algorithm. + t.eachAfter(firstWalk), t.parent.m = -t.z; + t.eachBefore(secondWalk); + + // If a fixed node size is specified, scale x and y. + if (nodeSize) root.eachBefore(sizeNode); + + // If a fixed tree size is specified, scale x and y based on the extent. + // Compute the left-most, right-most, and depth-most nodes for extents. + else { + var left = root, + right = root, + bottom = root; + root.eachBefore(function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var s = left === right ? 1 : separation(left, right) / 2, + tx = s - left.x, + kx = dx / (right.x + s + tx), + ky = dy / (bottom.depth || 1); + root.eachBefore(function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + + return root; + } + + // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is + // applied recursively to the children of v, as well as the function + // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the + // node v is placed to the midpoint of its outermost children. + function firstWalk(v) { + var children = v.children, + siblings = v.parent.children, + w = v.i ? siblings[v.i - 1] : null; + if (children) { + executeShifts(v); + var midpoint = (children[0].z + children[children.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + + // Computes all real x-coordinates by summing up the modifiers recursively. + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + + // The core of the algorithm. Here, a new subtree is combined with the + // previous subtrees. Threads are used to traverse the inside and outside + // contours of the left and right subtree up to the highest common level. The + // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the + // superscript o means outside and i means inside, the subscript - means left + // subtree and + means right subtree. For summing up the modifiers along the + // contour, we use respective variables si+, si-, so-, and so+. Whenever two + // nodes of the inside contours conflict, we compute the left one of the + // greatest uncommon ancestors using the function ANCESTOR and call MOVE + // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. + // Finally, we add a new thread (if necessary). + function apportion(v, w, ancestor) { + if (w) { + var vip = v, + vop = v, + vim = w, + vom = vip.parent.children[0], + sip = vip.m, + sop = vop.m, + sim = vim.m, + som = vom.m, + shift; + while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { + vom = nextLeft(vom); + vop = nextRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + moveSubtree(nextAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !nextRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !nextLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + + function sizeNode(node) { + node.x *= dx; + node.y = node.depth * dy; + } + + tree.separation = function(x) { + return arguments.length ? (separation = x, tree) : separation; + }; + + tree.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]); + }; + + tree.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null); + }; + + return tree; +} + +function treemapSlice(parent, x0, y0, x1, y1) { + var nodes = parent.children, + node, + i = -1, + n = nodes.length, + k = parent.value && (y1 - y0) / parent.value; + + while (++i < n) { + node = nodes[i], node.x0 = x0, node.x1 = x1; + node.y0 = y0, node.y1 = y0 += node.value * k; + } +} + +var phi = (1 + Math.sqrt(5)) / 2; + +function squarifyRatio(ratio, parent, x0, y0, x1, y1) { + var rows = [], + nodes = parent.children, + row, + nodeValue, + i0 = 0, + i1 = 0, + n = nodes.length, + dx, dy, + value = parent.value, + sumValue, + minValue, + maxValue, + newRatio, + minRatio, + alpha, + beta; + + while (i0 < n) { + dx = x1 - x0, dy = y1 - y0; + + // Find the next non-empty node. + do sumValue = nodes[i1++].value; while (!sumValue && i1 < n); + minValue = maxValue = sumValue; + alpha = Math.max(dy / dx, dx / dy) / (value * ratio); + beta = sumValue * sumValue * alpha; + minRatio = Math.max(maxValue / beta, beta / minValue); + + // Keep adding nodes while the aspect ratio maintains or improves. + for (; i1 < n; ++i1) { + sumValue += nodeValue = nodes[i1].value; + if (nodeValue < minValue) minValue = nodeValue; + if (nodeValue > maxValue) maxValue = nodeValue; + beta = sumValue * sumValue * alpha; + newRatio = Math.max(maxValue / beta, beta / minValue); + if (newRatio > minRatio) { sumValue -= nodeValue; break; } + minRatio = newRatio; + } + + // Position and record the row orientation. + rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); + value -= sumValue, i0 = i1; + } + + return rows; +} + +var squarify = (function custom(ratio) { + + function squarify(parent, x0, y0, x1, y1) { + squarifyRatio(ratio, parent, x0, y0, x1, y1); + } + + squarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return squarify; +})(phi); + +function index() { + var tile = squarify, + round = false, + dx = 1, + dy = 1, + paddingStack = [0], + paddingInner = constantZero, + paddingTop = constantZero, + paddingRight = constantZero, + paddingBottom = constantZero, + paddingLeft = constantZero; + + function treemap(root) { + root.x0 = + root.y0 = 0; + root.x1 = dx; + root.y1 = dy; + root.eachBefore(positionNode); + paddingStack = [0]; + if (round) root.eachBefore(roundNode); + return root; + } + + function positionNode(node) { + var p = paddingStack[node.depth], + x0 = node.x0 + p, + y0 = node.y0 + p, + x1 = node.x1 - p, + y1 = node.y1 - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + if (node.children) { + p = paddingStack[node.depth + 1] = paddingInner(node) / 2; + x0 += paddingLeft(node) - p; + y0 += paddingTop(node) - p; + x1 -= paddingRight(node) - p; + y1 -= paddingBottom(node) - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + tile(node, x0, y0, x1, y1); + } + } + + treemap.round = function(x) { + return arguments.length ? (round = !!x, treemap) : round; + }; + + treemap.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; + }; + + treemap.tile = function(x) { + return arguments.length ? (tile = required(x), treemap) : tile; + }; + + treemap.padding = function(x) { + return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); + }; + + treemap.paddingInner = function(x) { + return arguments.length ? (paddingInner = typeof x === "function" ? x : constant$2(+x), treemap) : paddingInner; + }; + + treemap.paddingOuter = function(x) { + return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); + }; + + treemap.paddingTop = function(x) { + return arguments.length ? (paddingTop = typeof x === "function" ? x : constant$2(+x), treemap) : paddingTop; + }; + + treemap.paddingRight = function(x) { + return arguments.length ? (paddingRight = typeof x === "function" ? x : constant$2(+x), treemap) : paddingRight; + }; + + treemap.paddingBottom = function(x) { + return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant$2(+x), treemap) : paddingBottom; + }; + + treemap.paddingLeft = function(x) { + return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant$2(+x), treemap) : paddingLeft; + }; + + return treemap; +} + +function binary(parent, x0, y0, x1, y1) { + var nodes = parent.children, + i, n = nodes.length, + sum, sums = new Array(n + 1); + + for (sums[0] = sum = i = 0; i < n; ++i) { + sums[i + 1] = sum += nodes[i].value; + } + + partition(0, n, parent.value, x0, y0, x1, y1); + + function partition(i, j, value, x0, y0, x1, y1) { + if (i >= j - 1) { + var node = nodes[i]; + node.x0 = x0, node.y0 = y0; + node.x1 = x1, node.y1 = y1; + return; + } + + var valueOffset = sums[i], + valueTarget = (value / 2) + valueOffset, + k = i + 1, + hi = j - 1; + + while (k < hi) { + var mid = k + hi >>> 1; + if (sums[mid] < valueTarget) k = mid + 1; + else hi = mid; + } + + if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; + + var valueLeft = sums[k] - valueOffset, + valueRight = value - valueLeft; + + if ((x1 - x0) > (y1 - y0)) { + var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1; + partition(i, k, valueLeft, x0, y0, xk, y1); + partition(k, j, valueRight, xk, y0, x1, y1); + } else { + var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1; + partition(i, k, valueLeft, x0, y0, x1, yk); + partition(k, j, valueRight, x0, yk, x1, y1); + } + } +} + +function sliceDice(parent, x0, y0, x1, y1) { + (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1); +} + +var resquarify = (function custom(ratio) { + + function resquarify(parent, x0, y0, x1, y1) { + if ((rows = parent._squarify) && (rows.ratio === ratio)) { + var rows, + row, + nodes, + i, + j = -1, + n, + m = rows.length, + value = parent.value; + + while (++j < m) { + row = rows[j], nodes = row.children; + for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; + if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1); + else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); + value -= row.value; + } + } else { + parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); + rows.ratio = ratio; + } + } + + resquarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + + return resquarify; +})(phi); + +function area$1(polygon) { + var i = -1, + n = polygon.length, + a, + b = polygon[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + + return area / 2; +} + +function centroid(polygon) { + var i = -1, + n = polygon.length, + x = 0, + y = 0, + a, + b = polygon[n - 1], + c, + k = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + k += c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + + return k *= 3, [x / k, y / k]; +} + +// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of +// the 3D cross product in a quadrant I Cartesian coordinate system (+x is +// right, +y is up). Returns a positive value if ABC is counter-clockwise, +// negative if clockwise, and zero if the points are collinear. +function cross$1(a, b, c) { + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); +} + +function lexicographicOrder(a, b) { + return a[0] - b[0] || a[1] - b[1]; +} + +// Computes the upper convex hull per the monotone chain algorithm. +// Assumes points.length >= 3, is sorted by x, unique in y. +// Returns an array of indices into points in left-to-right order. +function computeUpperHullIndexes(points) { + const n = points.length, + indexes = [0, 1]; + let size = 2, i; + + for (i = 2; i < n; ++i) { + while (size > 1 && cross$1(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size; + indexes[size++] = i; + } + + return indexes.slice(0, size); // remove popped points +} + +function hull(points) { + if ((n = points.length) < 3) return null; + + var i, + n, + sortedPoints = new Array(n), + flippedPoints = new Array(n); + + for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i]; + sortedPoints.sort(lexicographicOrder); + for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]]; + + var upperIndexes = computeUpperHullIndexes(sortedPoints), + lowerIndexes = computeUpperHullIndexes(flippedPoints); + + // Construct the hull polygon, removing possible duplicate endpoints. + var skipLeft = lowerIndexes[0] === upperIndexes[0], + skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1], + hull = []; + + // Add upper hull in right-to-l order. + // Then add lower hull in left-to-right order. + for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]); + for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]); + + return hull; +} + +function contains(polygon, point) { + var n = polygon.length, + p = polygon[n - 1], + x = point[0], y = point[1], + x0 = p[0], y0 = p[1], + x1, y1, + inside = false; + + for (var i = 0; i < n; ++i) { + p = polygon[i], x1 = p[0], y1 = p[1]; + if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside; + x0 = x1, y0 = y1; + } + + return inside; +} + +function length(polygon) { + var i = -1, + n = polygon.length, + b = polygon[n - 1], + xa, + ya, + xb = b[0], + yb = b[1], + perimeter = 0; + + while (++i < n) { + xa = xb; + ya = yb; + b = polygon[i]; + xb = b[0]; + yb = b[1]; + xa -= xb; + ya -= yb; + perimeter += Math.hypot(xa, ya); + } + + return perimeter; +} + +var defaultSource = Math.random; + +var uniform = (function sourceRandomUniform(source) { + function randomUniform(min, max) { + min = min == null ? 0 : +min; + max = max == null ? 1 : +max; + if (arguments.length === 1) max = min, min = 0; + else max -= min; + return function() { + return source() * max + min; + }; + } + + randomUniform.source = sourceRandomUniform; + + return randomUniform; +})(defaultSource); + +var int = (function sourceRandomInt(source) { + function randomInt(min, max) { + if (arguments.length < 2) max = min, min = 0; + min = Math.floor(min); + max = Math.floor(max) - min; + return function() { + return Math.floor(source() * max + min); + }; + } + + randomInt.source = sourceRandomInt; + + return randomInt; +})(defaultSource); + +var normal = (function sourceRandomNormal(source) { + function randomNormal(mu, sigma) { + var x, r; + mu = mu == null ? 0 : +mu; + sigma = sigma == null ? 1 : +sigma; + return function() { + var y; + + // If available, use the second previously-generated uniform random. + if (x != null) y = x, x = null; + + // Otherwise, generate a new x and y. + else do { + x = source() * 2 - 1; + y = source() * 2 - 1; + r = x * x + y * y; + } while (!r || r > 1); + + return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r); + }; + } + + randomNormal.source = sourceRandomNormal; + + return randomNormal; +})(defaultSource); + +var logNormal = (function sourceRandomLogNormal(source) { + var N = normal.source(source); + + function randomLogNormal() { + var randomNormal = N.apply(this, arguments); + return function() { + return Math.exp(randomNormal()); + }; + } + + randomLogNormal.source = sourceRandomLogNormal; + + return randomLogNormal; +})(defaultSource); + +var irwinHall = (function sourceRandomIrwinHall(source) { + function randomIrwinHall(n) { + if ((n = +n) <= 0) return () => 0; + return function() { + for (var sum = 0, i = n; i > 1; --i) sum += source(); + return sum + i * source(); + }; + } + + randomIrwinHall.source = sourceRandomIrwinHall; + + return randomIrwinHall; +})(defaultSource); + +var bates = (function sourceRandomBates(source) { + var I = irwinHall.source(source); + + function randomBates(n) { + // use limiting distribution at n === 0 + if ((n = +n) === 0) return source; + var randomIrwinHall = I(n); + return function() { + return randomIrwinHall() / n; + }; + } + + randomBates.source = sourceRandomBates; + + return randomBates; +})(defaultSource); + +var exponential = (function sourceRandomExponential(source) { + function randomExponential(lambda) { + return function() { + return -Math.log1p(-source()) / lambda; + }; + } + + randomExponential.source = sourceRandomExponential; + + return randomExponential; +})(defaultSource); + +var pareto = (function sourceRandomPareto(source) { + function randomPareto(alpha) { + if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha"); + alpha = 1 / -alpha; + return function() { + return Math.pow(1 - source(), alpha); + }; + } + + randomPareto.source = sourceRandomPareto; + + return randomPareto; +})(defaultSource); + +var bernoulli = (function sourceRandomBernoulli(source) { + function randomBernoulli(p) { + if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); + return function() { + return Math.floor(source() + p); + }; + } + + randomBernoulli.source = sourceRandomBernoulli; + + return randomBernoulli; +})(defaultSource); + +var geometric = (function sourceRandomGeometric(source) { + function randomGeometric(p) { + if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); + if (p === 0) return () => Infinity; + if (p === 1) return () => 1; + p = Math.log1p(-p); + return function() { + return 1 + Math.floor(Math.log1p(-source()) / p); + }; + } + + randomGeometric.source = sourceRandomGeometric; + + return randomGeometric; +})(defaultSource); + +var gamma = (function sourceRandomGamma(source) { + var randomNormal = normal.source(source)(); + + function randomGamma(k, theta) { + if ((k = +k) < 0) throw new RangeError("invalid k"); + // degenerate distribution if k === 0 + if (k === 0) return () => 0; + theta = theta == null ? 1 : +theta; + // exponential distribution if k === 1 + if (k === 1) return () => -Math.log1p(-source()) * theta; + + var d = (k < 1 ? k + 1 : k) - 1 / 3, + c = 1 / (3 * Math.sqrt(d)), + multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1; + return function() { + do { + do { + var x = randomNormal(), + v = 1 + c * x; + } while (v <= 0); + v *= v * v; + var u = 1 - source(); + } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v))); + return d * v * multiplier() * theta; + }; + } + + randomGamma.source = sourceRandomGamma; + + return randomGamma; +})(defaultSource); + +var beta = (function sourceRandomBeta(source) { + var G = gamma.source(source); + + function randomBeta(alpha, beta) { + var X = G(alpha), + Y = G(beta); + return function() { + var x = X(); + return x === 0 ? 0 : x / (x + Y()); + }; + } + + randomBeta.source = sourceRandomBeta; + + return randomBeta; +})(defaultSource); + +var binomial = (function sourceRandomBinomial(source) { + var G = geometric.source(source), + B = beta.source(source); + + function randomBinomial(n, p) { + n = +n; + if ((p = +p) >= 1) return () => n; + if (p <= 0) return () => 0; + return function() { + var acc = 0, nn = n, pp = p; + while (nn * pp > 16 && nn * (1 - pp) > 16) { + var i = Math.floor((nn + 1) * pp), + y = B(i, nn - i + 1)(); + if (y <= pp) { + acc += i; + nn -= i; + pp = (pp - y) / (1 - y); + } else { + nn = i - 1; + pp /= y; + } + } + var sign = pp < 0.5, + pFinal = sign ? pp : 1 - pp, + g = G(pFinal); + for (var s = g(), k = 0; s <= nn; ++k) s += g(); + return acc + (sign ? k : nn - k); + }; + } + + randomBinomial.source = sourceRandomBinomial; + + return randomBinomial; +})(defaultSource); + +var weibull = (function sourceRandomWeibull(source) { + function randomWeibull(k, a, b) { + var outerFunc; + if ((k = +k) === 0) { + outerFunc = x => -Math.log(x); + } else { + k = 1 / k; + outerFunc = x => Math.pow(x, k); + } + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + return a + b * outerFunc(-Math.log1p(-source())); + }; + } + + randomWeibull.source = sourceRandomWeibull; + + return randomWeibull; +})(defaultSource); + +var cauchy = (function sourceRandomCauchy(source) { + function randomCauchy(a, b) { + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + return a + b * Math.tan(Math.PI * source()); + }; + } + + randomCauchy.source = sourceRandomCauchy; + + return randomCauchy; +})(defaultSource); + +var logistic = (function sourceRandomLogistic(source) { + function randomLogistic(a, b) { + a = a == null ? 0 : +a; + b = b == null ? 1 : +b; + return function() { + var u = source(); + return a + b * Math.log(u / (1 - u)); + }; + } + + randomLogistic.source = sourceRandomLogistic; + + return randomLogistic; +})(defaultSource); + +var poisson = (function sourceRandomPoisson(source) { + var G = gamma.source(source), + B = binomial.source(source); + + function randomPoisson(lambda) { + return function() { + var acc = 0, l = lambda; + while (l > 16) { + var n = Math.floor(0.875 * l), + t = G(n)(); + if (t > l) return acc + B(n - 1, l / t)(); + acc += n; + l -= t; + } + for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source()); + return acc + k; + }; + } + + randomPoisson.source = sourceRandomPoisson; + + return randomPoisson; +})(defaultSource); + +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const mul = 0x19660D; +const inc = 0x3C6EF35F; +const eps = 1 / 0x100000000; + +function lcg(seed = Math.random()) { + let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0; + return () => (state = mul * state + inc | 0, eps * (state >>> 0)); +} + +function initRange(domain, range) { + switch (arguments.length) { + case 0: break; + case 1: this.range(domain); break; + default: this.range(range).domain(domain); break; + } + return this; +} + +function initInterpolator(domain, interpolator) { + switch (arguments.length) { + case 0: break; + case 1: { + if (typeof domain === "function") this.interpolator(domain); + else this.range(domain); + break; + } + default: { + this.domain(domain); + if (typeof interpolator === "function") this.interpolator(interpolator); + else this.range(interpolator); + break; + } + } + return this; +} + +const implicit = Symbol("implicit"); + +function ordinal() { + var index = new Map(), + domain = [], + range = [], + unknown = implicit; + + function scale(d) { + var key = d + "", i = index.get(key); + if (!i) { + if (unknown !== implicit) return unknown; + index.set(key, i = domain.push(d)); + } + return range[(i - 1) % range.length]; + } + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = [], index = new Map(); + for (const value of _) { + const key = value + ""; + if (index.has(key)) continue; + index.set(key, domain.push(value)); + } + return scale; + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function band() { + var scale = ordinal().unknown(undefined), + domain = scale.domain, + ordinalRange = scale.range, + r0 = 0, + r1 = 1, + step, + bandwidth, + round = false, + paddingInner = 0, + paddingOuter = 0, + align = 0.5; + + delete scale.unknown; + + function rescale() { + var n = domain().length, + reverse = r1 < r0, + start = reverse ? r1 : r0, + stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = sequence(n).map(function(i) { return start + step * i; }); + return ordinalRange(reverse ? values.reverse() : values); + } + + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1]; + }; + + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + + scale.bandwidth = function() { + return bandwidth; + }; + + scale.step = function() { + return step; + }; + + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + + scale.copy = function() { + return band(domain(), [r0, r1]) + .round(round) + .paddingInner(paddingInner) + .paddingOuter(paddingOuter) + .align(align); + }; + + return initRange.apply(rescale(), arguments); +} + +function pointish(scale) { + var copy = scale.copy; + + scale.padding = scale.paddingOuter; + delete scale.paddingInner; + delete scale.paddingOuter; + + scale.copy = function() { + return pointish(copy()); + }; + + return scale; +} + +function point$4() { + return pointish(band.apply(null, arguments).paddingInner(1)); +} + +function constants(x) { + return function() { + return x; + }; +} + +function number$1(x) { + return +x; +} + +var unit = [0, 1]; + +function identity$3(x) { + return x; +} + +function normalize(a, b) { + return (b -= (a = +a)) + ? function(x) { return (x - a) / b; } + : constants(isNaN(b) ? NaN : 0.5); +} + +function clamper(a, b) { + var t; + if (a > b) t = a, a = b, b = t; + return function(x) { return Math.max(a, Math.min(b, x)); }; +} + +// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1]. +// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b]. +function bimap(domain, range, interpolate) { + var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; + if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0); + else d0 = normalize(d0, d1), r0 = interpolate(r0, r1); + return function(x) { return r0(d0(x)); }; +} + +function polymap(domain, range, interpolate) { + var j = Math.min(domain.length, range.length) - 1, + d = new Array(j), + r = new Array(j), + i = -1; + + // Reverse descending domains. + if (domain[j] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + + while (++i < j) { + d[i] = normalize(domain[i], domain[i + 1]); + r[i] = interpolate(range[i], range[i + 1]); + } + + return function(x) { + var i = bisectRight(domain, x, 1, j) - 1; + return r[i](d[i](x)); + }; +} + +function copy$1(source, target) { + return target + .domain(source.domain()) + .range(source.range()) + .interpolate(source.interpolate()) + .clamp(source.clamp()) + .unknown(source.unknown()); +} + +function transformer$2() { + var domain = unit, + range = unit, + interpolate = interpolate$2, + transform, + untransform, + unknown, + clamp = identity$3, + piecewise, + output, + input; + + function rescale() { + var n = Math.min(domain.length, range.length); + if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]); + piecewise = n > 2 ? polymap : bimap; + output = input = null; + return scale; + } + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); + } + + scale.invert = function(y) { + return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); + }; + + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + + scale.rangeRound = function(_) { + return range = Array.from(_), interpolate = interpolateRound, rescale(); + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3; + }; + + scale.interpolate = function(_) { + return arguments.length ? (interpolate = _, rescale()) : interpolate; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t, u) { + transform = t, untransform = u; + return rescale(); + }; +} + +function continuous() { + return transformer$2()(identity$3, identity$3); +} + +function tickFormat(start, stop, count, specifier) { + var step = tickStep(start, stop, count), + precision; + specifier = formatSpecifier(specifier == null ? ",f" : specifier); + switch (specifier.type) { + case "s": { + var value = Math.max(Math.abs(start), Math.abs(stop)); + if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision; + return exports.formatPrefix(specifier, value); + } + case "": + case "e": + case "g": + case "p": + case "r": { + if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e"); + break; + } + case "f": + case "%": { + if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2; + break; + } + } + return exports.format(specifier); +} + +function linearish(scale) { + var domain = scale.domain; + + scale.ticks = function(count) { + var d = domain(); + return ticks(d[0], d[d.length - 1], count == null ? 10 : count); + }; + + scale.tickFormat = function(count, specifier) { + var d = domain(); + return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); + }; + + scale.nice = function(count) { + if (count == null) count = 10; + + var d = domain(); + var i0 = 0; + var i1 = d.length - 1; + var start = d[i0]; + var stop = d[i1]; + var prestep; + var step; + var maxIter = 10; + + if (stop < start) { + step = start, start = stop, stop = step; + step = i0, i0 = i1, i1 = step; + } + + while (maxIter-- > 0) { + step = tickIncrement(start, stop, count); + if (step === prestep) { + d[i0] = start; + d[i1] = stop; + return domain(d); + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } else { + break; + } + prestep = step; + } + + return scale; + }; + + return scale; +} + +function linear() { + var scale = continuous(); + + scale.copy = function() { + return copy$1(scale, linear()); + }; + + initRange.apply(scale, arguments); + + return linearish(scale); +} + +function identity$2(domain) { + var unknown; + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : x; + } + + scale.invert = scale; + + scale.domain = scale.range = function(_) { + return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return identity$2(domain).unknown(unknown); + }; + + domain = arguments.length ? Array.from(domain, number$1) : [0, 1]; + + return linearish(scale); +} + +function nice(domain, interval) { + domain = domain.slice(); + + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + t; + + if (x1 < x0) { + t = i0, i0 = i1, i1 = t; + t = x0, x0 = x1, x1 = t; + } + + domain[i0] = interval.floor(x0); + domain[i1] = interval.ceil(x1); + return domain; +} + +function transformLog(x) { + return Math.log(x); +} + +function transformExp(x) { + return Math.exp(x); +} + +function transformLogn(x) { + return -Math.log(-x); +} + +function transformExpn(x) { + return -Math.exp(-x); +} + +function pow10(x) { + return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; +} + +function powp(base) { + return base === 10 ? pow10 + : base === Math.E ? Math.exp + : function(x) { return Math.pow(base, x); }; +} + +function logp(base) { + return base === Math.E ? Math.log + : base === 10 && Math.log10 + || base === 2 && Math.log2 + || (base = Math.log(base), function(x) { return Math.log(x) / base; }); +} + +function reflect(f) { + return function(x) { + return -f(-x); + }; +} + +function loggish(transform) { + var scale = transform(transformLog, transformExp), + domain = scale.domain, + base = 10, + logs, + pows; + + function rescale() { + logs = logp(base), pows = powp(base); + if (domain()[0] < 0) { + logs = reflect(logs), pows = reflect(pows); + transform(transformLogn, transformExpn); + } else { + transform(transformLog, transformExp); + } + return scale; + } + + scale.base = function(_) { + return arguments.length ? (base = +_, rescale()) : base; + }; + + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + + scale.ticks = function(count) { + var d = domain(), + u = d[0], + v = d[d.length - 1], + r; + + if (r = v < u) i = u, u = v, v = i; + + var i = logs(u), + j = logs(v), + p, + k, + t, + n = count == null ? 10 : +count, + z = []; + + if (!(base % 1) && j - i < n) { + i = Math.floor(i), j = Math.ceil(j); + if (u > 0) for (; i <= j; ++i) { + for (k = 1, p = pows(i); k < base; ++k) { + t = p * k; + if (t < u) continue; + if (t > v) break; + z.push(t); + } + } else for (; i <= j; ++i) { + for (k = base - 1, p = pows(i); k >= 1; --k) { + t = p * k; + if (t < u) continue; + if (t > v) break; + z.push(t); + } + } + if (z.length * 2 < n) z = ticks(u, v, n); + } else { + z = ticks(i, j, Math.min(j - i, n)).map(pows); + } + + return r ? z.reverse() : z; + }; + + scale.tickFormat = function(count, specifier) { + if (specifier == null) specifier = base === 10 ? ".0e" : ","; + if (typeof specifier !== "function") specifier = exports.format(specifier); + if (count === Infinity) return specifier; + if (count == null) count = 10; + var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? + return function(d) { + var i = d / pows(Math.round(logs(d))); + if (i * base < base - 0.5) i *= base; + return i <= k ? specifier(d) : ""; + }; + }; + + scale.nice = function() { + return domain(nice(domain(), { + floor: function(x) { return pows(Math.floor(logs(x))); }, + ceil: function(x) { return pows(Math.ceil(logs(x))); } + })); + }; + + return scale; +} + +function log() { + var scale = loggish(transformer$2()).domain([1, 10]); + + scale.copy = function() { + return copy$1(scale, log()).base(scale.base()); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function transformSymlog(c) { + return function(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / c)); + }; +} + +function transformSymexp(c) { + return function(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * c; + }; +} + +function symlogish(transform) { + var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); + + scale.constant = function(_) { + return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; + }; + + return linearish(scale); +} + +function symlog() { + var scale = symlogish(transformer$2()); + + scale.copy = function() { + return copy$1(scale, symlog()).constant(scale.constant()); + }; + + return initRange.apply(scale, arguments); +} + +function transformPow(exponent) { + return function(x) { + return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); + }; +} + +function transformSqrt(x) { + return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); +} + +function transformSquare(x) { + return x < 0 ? -x * x : x * x; +} + +function powish(transform) { + var scale = transform(identity$3, identity$3), + exponent = 1; + + function rescale() { + return exponent === 1 ? transform(identity$3, identity$3) + : exponent === 0.5 ? transform(transformSqrt, transformSquare) + : transform(transformPow(exponent), transformPow(1 / exponent)); + } + + scale.exponent = function(_) { + return arguments.length ? (exponent = +_, rescale()) : exponent; + }; + + return linearish(scale); +} + +function pow() { + var scale = powish(transformer$2()); + + scale.copy = function() { + return copy$1(scale, pow()).exponent(scale.exponent()); + }; + + initRange.apply(scale, arguments); + + return scale; +} + +function sqrt$1() { + return pow.apply(null, arguments).exponent(0.5); +} + +function square$1(x) { + return Math.sign(x) * x * x; +} + +function unsquare(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); +} + +function radial() { + var squared = continuous(), + range = [0, 1], + round = false, + unknown; + + function scale(x) { + var y = unsquare(squared(x)); + return isNaN(y) ? unknown : round ? Math.round(y) : y; + } + + scale.invert = function(y) { + return squared.invert(square$1(y)); + }; + + scale.domain = function(_) { + return arguments.length ? (squared.domain(_), scale) : squared.domain(); + }; + + scale.range = function(_) { + return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square$1)), scale) : range.slice(); + }; + + scale.rangeRound = function(_) { + return scale.range(_).round(true); + }; + + scale.round = function(_) { + return arguments.length ? (round = !!_, scale) : round; + }; + + scale.clamp = function(_) { + return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return radial(squared.domain(), range) + .round(round) + .clamp(squared.clamp()) + .unknown(unknown); + }; + + initRange.apply(scale, arguments); + + return linearish(scale); +} + +function quantile() { + var domain = [], + range = [], + thresholds = [], + unknown; + + function rescale() { + var i = 0, n = Math.max(1, range.length); + thresholds = new Array(n - 1); + while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n); + return scale; + } + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : range[bisectRight(thresholds, x)]; + } + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return i < 0 ? [NaN, NaN] : [ + i > 0 ? thresholds[i - 1] : domain[0], + i < thresholds.length ? thresholds[i] : domain[domain.length - 1] + ]; + }; + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort(ascending$3); + return rescale(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.quantiles = function() { + return thresholds.slice(); + }; + + scale.copy = function() { + return quantile() + .domain(domain) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(scale, arguments); +} + +function quantize() { + var x0 = 0, + x1 = 1, + n = 1, + domain = [0.5], + range = [0, 1], + unknown; + + function scale(x) { + return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; + } + + function rescale() { + var i = -1; + domain = new Array(n); + while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1); + return scale; + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1]; + }; + + scale.range = function(_) { + return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice(); + }; + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return i < 0 ? [NaN, NaN] + : i < 1 ? [x0, domain[0]] + : i >= n ? [domain[n - 1], x1] + : [domain[i - 1], domain[i]]; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : scale; + }; + + scale.thresholds = function() { + return domain.slice(); + }; + + scale.copy = function() { + return quantize() + .domain([x0, x1]) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(linearish(scale), arguments); +} + +function threshold() { + var domain = [0.5], + range = [0, 1], + unknown, + n = 1; + + function scale(x) { + return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; + } + + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice(); + }; + + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice(); + }; + + scale.invertExtent = function(y) { + var i = range.indexOf(y); + return [domain[i - 1], domain[i]]; + }; + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + scale.copy = function() { + return threshold() + .domain(domain) + .range(range) + .unknown(unknown); + }; + + return initRange.apply(scale, arguments); +} + +var t0 = new Date, + t1 = new Date; + +function newInterval(floori, offseti, count, field) { + + function interval(date) { + return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; + } + + interval.floor = function(date) { + return floori(date = new Date(+date)), date; + }; + + interval.ceil = function(date) { + return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; + }; + + interval.round = function(date) { + var d0 = interval(date), + d1 = interval.ceil(date); + return date - d0 < d1 - date ? d0 : d1; + }; + + interval.offset = function(date, step) { + return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; + }; + + interval.range = function(start, stop, step) { + var range = [], previous; + start = interval.ceil(start); + step = step == null ? 1 : Math.floor(step); + if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date + do range.push(previous = new Date(+start)), offseti(start, step), floori(start); + while (previous < start && start < stop); + return range; + }; + + interval.filter = function(test) { + return newInterval(function(date) { + if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); + }, function(date, step) { + if (date >= date) { + if (step < 0) while (++step <= 0) { + while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty + } else while (--step >= 0) { + while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty + } + } + }); + }; + + if (count) { + interval.count = function(start, end) { + t0.setTime(+start), t1.setTime(+end); + floori(t0), floori(t1); + return Math.floor(count(t0, t1)); + }; + + interval.every = function(step) { + step = Math.floor(step); + return !isFinite(step) || !(step > 0) ? null + : !(step > 1) ? interval + : interval.filter(field + ? function(d) { return field(d) % step === 0; } + : function(d) { return interval.count(0, d) % step === 0; }); + }; + } + + return interval; +} + +var millisecond = newInterval(function() { + // noop +}, function(date, step) { + date.setTime(+date + step); +}, function(start, end) { + return end - start; +}); + +// An optimized implementation for this simple case. +millisecond.every = function(k) { + k = Math.floor(k); + if (!isFinite(k) || !(k > 0)) return null; + if (!(k > 1)) return millisecond; + return newInterval(function(date) { + date.setTime(Math.floor(date / k) * k); + }, function(date, step) { + date.setTime(+date + step * k); + }, function(start, end) { + return (end - start) / k; + }); +}; +var milliseconds = millisecond.range; + +const durationSecond = 1000; +const durationMinute = durationSecond * 60; +const durationHour = durationMinute * 60; +const durationDay = durationHour * 24; +const durationWeek = durationDay * 7; +const durationMonth = durationDay * 30; +const durationYear = durationDay * 365; + +var second = newInterval(function(date) { + date.setTime(date - date.getMilliseconds()); +}, function(date, step) { + date.setTime(+date + step * durationSecond); +}, function(start, end) { + return (end - start) / durationSecond; +}, function(date) { + return date.getUTCSeconds(); +}); +var seconds = second.range; + +var minute = newInterval(function(date) { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); +}, function(date, step) { + date.setTime(+date + step * durationMinute); +}, function(start, end) { + return (end - start) / durationMinute; +}, function(date) { + return date.getMinutes(); +}); +var minutes = minute.range; + +var hour = newInterval(function(date) { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); +}, function(date, step) { + date.setTime(+date + step * durationHour); +}, function(start, end) { + return (end - start) / durationHour; +}, function(date) { + return date.getHours(); +}); +var hours = hour.range; + +var day = newInterval( + date => date.setHours(0, 0, 0, 0), + (date, step) => date.setDate(date.getDate() + step), + (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, + date => date.getDate() - 1 +); +var days = day.range; + +function weekday(i) { + return newInterval(function(date) { + date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); + date.setHours(0, 0, 0, 0); + }, function(date, step) { + date.setDate(date.getDate() + step * 7); + }, function(start, end) { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; + }); +} + +var sunday = weekday(0); +var monday = weekday(1); +var tuesday = weekday(2); +var wednesday = weekday(3); +var thursday = weekday(4); +var friday = weekday(5); +var saturday = weekday(6); + +var sundays = sunday.range; +var mondays = monday.range; +var tuesdays = tuesday.range; +var wednesdays = wednesday.range; +var thursdays = thursday.range; +var fridays = friday.range; +var saturdays = saturday.range; + +var month = newInterval(function(date) { + date.setDate(1); + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setMonth(date.getMonth() + step); +}, function(start, end) { + return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; +}, function(date) { + return date.getMonth(); +}); +var months = month.range; + +var year = newInterval(function(date) { + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); +}, function(date, step) { + date.setFullYear(date.getFullYear() + step); +}, function(start, end) { + return end.getFullYear() - start.getFullYear(); +}, function(date) { + return date.getFullYear(); +}); + +// An optimized implementation for this simple case. +year.every = function(k) { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { + date.setFullYear(Math.floor(date.getFullYear() / k) * k); + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); + }, function(date, step) { + date.setFullYear(date.getFullYear() + step * k); + }); +}; +var years = year.range; + +var utcMinute = newInterval(function(date) { + date.setUTCSeconds(0, 0); +}, function(date, step) { + date.setTime(+date + step * durationMinute); +}, function(start, end) { + return (end - start) / durationMinute; +}, function(date) { + return date.getUTCMinutes(); +}); +var utcMinutes = utcMinute.range; + +var utcHour = newInterval(function(date) { + date.setUTCMinutes(0, 0, 0); +}, function(date, step) { + date.setTime(+date + step * durationHour); +}, function(start, end) { + return (end - start) / durationHour; +}, function(date) { + return date.getUTCHours(); +}); +var utcHours = utcHour.range; + +var utcDay = newInterval(function(date) { + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCDate(date.getUTCDate() + step); +}, function(start, end) { + return (end - start) / durationDay; +}, function(date) { + return date.getUTCDate() - 1; +}); +var utcDays = utcDay.range; + +function utcWeekday(i) { + return newInterval(function(date) { + date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); + date.setUTCHours(0, 0, 0, 0); + }, function(date, step) { + date.setUTCDate(date.getUTCDate() + step * 7); + }, function(start, end) { + return (end - start) / durationWeek; + }); +} + +var utcSunday = utcWeekday(0); +var utcMonday = utcWeekday(1); +var utcTuesday = utcWeekday(2); +var utcWednesday = utcWeekday(3); +var utcThursday = utcWeekday(4); +var utcFriday = utcWeekday(5); +var utcSaturday = utcWeekday(6); + +var utcSundays = utcSunday.range; +var utcMondays = utcMonday.range; +var utcTuesdays = utcTuesday.range; +var utcWednesdays = utcWednesday.range; +var utcThursdays = utcThursday.range; +var utcFridays = utcFriday.range; +var utcSaturdays = utcSaturday.range; + +var utcMonth = newInterval(function(date) { + date.setUTCDate(1); + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCMonth(date.getUTCMonth() + step); +}, function(start, end) { + return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; +}, function(date) { + return date.getUTCMonth(); +}); +var utcMonths = utcMonth.range; + +var utcYear = newInterval(function(date) { + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); +}, function(date, step) { + date.setUTCFullYear(date.getUTCFullYear() + step); +}, function(start, end) { + return end.getUTCFullYear() - start.getUTCFullYear(); +}, function(date) { + return date.getUTCFullYear(); +}); + +// An optimized implementation for this simple case. +utcYear.every = function(k) { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { + date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); + }, function(date, step) { + date.setUTCFullYear(date.getUTCFullYear() + step * k); + }); +}; +var utcYears = utcYear.range; + +function ticker(year, month, week, day, hour, minute) { + + const tickIntervals = [ + [second, 1, durationSecond], + [second, 5, 5 * durationSecond], + [second, 15, 15 * durationSecond], + [second, 30, 30 * durationSecond], + [minute, 1, durationMinute], + [minute, 5, 5 * durationMinute], + [minute, 15, 15 * durationMinute], + [minute, 30, 30 * durationMinute], + [ hour, 1, durationHour ], + [ hour, 3, 3 * durationHour ], + [ hour, 6, 6 * durationHour ], + [ hour, 12, 12 * durationHour ], + [ day, 1, durationDay ], + [ day, 2, 2 * durationDay ], + [ week, 1, durationWeek ], + [ month, 1, durationMonth ], + [ month, 3, 3 * durationMonth ], + [ year, 1, durationYear ] + ]; + + function ticks(start, stop, count) { + const reverse = stop < start; + if (reverse) [start, stop] = [stop, start]; + const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count); + const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop + return reverse ? ticks.reverse() : ticks; + } + + function tickInterval(start, stop, count) { + const target = Math.abs(stop - start) / count; + const i = bisector(([,, step]) => step).right(tickIntervals, target); + if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count)); + if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1)); + const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; + return t.every(step); + } + + return [ticks, tickInterval]; +} + +const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute); +const [timeTicks, timeTickInterval] = ticker(year, month, sunday, day, hour, minute); + +function localDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); + date.setFullYear(d.y); + return date; + } + return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); +} + +function utcDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); + date.setUTCFullYear(d.y); + return date; + } + return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); +} + +function newDate(y, m, d) { + return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; +} + +function formatLocale(locale) { + var locale_dateTime = locale.dateTime, + locale_date = locale.date, + locale_time = locale.time, + locale_periods = locale.periods, + locale_weekdays = locale.days, + locale_shortWeekdays = locale.shortDays, + locale_months = locale.months, + locale_shortMonths = locale.shortMonths; + + var periodRe = formatRe(locale_periods), + periodLookup = formatLookup(locale_periods), + weekdayRe = formatRe(locale_weekdays), + weekdayLookup = formatLookup(locale_weekdays), + shortWeekdayRe = formatRe(locale_shortWeekdays), + shortWeekdayLookup = formatLookup(locale_shortWeekdays), + monthRe = formatRe(locale_months), + monthLookup = formatLookup(locale_months), + shortMonthRe = formatRe(locale_shortMonths), + shortMonthLookup = formatLookup(locale_shortMonths); + + var formats = { + "a": formatShortWeekday, + "A": formatWeekday, + "b": formatShortMonth, + "B": formatMonth, + "c": null, + "d": formatDayOfMonth, + "e": formatDayOfMonth, + "f": formatMicroseconds, + "g": formatYearISO, + "G": formatFullYearISO, + "H": formatHour24, + "I": formatHour12, + "j": formatDayOfYear, + "L": formatMilliseconds, + "m": formatMonthNumber, + "M": formatMinutes, + "p": formatPeriod, + "q": formatQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatSeconds, + "u": formatWeekdayNumberMonday, + "U": formatWeekNumberSunday, + "V": formatWeekNumberISO, + "w": formatWeekdayNumberSunday, + "W": formatWeekNumberMonday, + "x": null, + "X": null, + "y": formatYear, + "Y": formatFullYear, + "Z": formatZone, + "%": formatLiteralPercent + }; + + var utcFormats = { + "a": formatUTCShortWeekday, + "A": formatUTCWeekday, + "b": formatUTCShortMonth, + "B": formatUTCMonth, + "c": null, + "d": formatUTCDayOfMonth, + "e": formatUTCDayOfMonth, + "f": formatUTCMicroseconds, + "g": formatUTCYearISO, + "G": formatUTCFullYearISO, + "H": formatUTCHour24, + "I": formatUTCHour12, + "j": formatUTCDayOfYear, + "L": formatUTCMilliseconds, + "m": formatUTCMonthNumber, + "M": formatUTCMinutes, + "p": formatUTCPeriod, + "q": formatUTCQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatUTCSeconds, + "u": formatUTCWeekdayNumberMonday, + "U": formatUTCWeekNumberSunday, + "V": formatUTCWeekNumberISO, + "w": formatUTCWeekdayNumberSunday, + "W": formatUTCWeekNumberMonday, + "x": null, + "X": null, + "y": formatUTCYear, + "Y": formatUTCFullYear, + "Z": formatUTCZone, + "%": formatLiteralPercent + }; + + var parses = { + "a": parseShortWeekday, + "A": parseWeekday, + "b": parseShortMonth, + "B": parseMonth, + "c": parseLocaleDateTime, + "d": parseDayOfMonth, + "e": parseDayOfMonth, + "f": parseMicroseconds, + "g": parseYear, + "G": parseFullYear, + "H": parseHour24, + "I": parseHour24, + "j": parseDayOfYear, + "L": parseMilliseconds, + "m": parseMonthNumber, + "M": parseMinutes, + "p": parsePeriod, + "q": parseQuarter, + "Q": parseUnixTimestamp, + "s": parseUnixTimestampSeconds, + "S": parseSeconds, + "u": parseWeekdayNumberMonday, + "U": parseWeekNumberSunday, + "V": parseWeekNumberISO, + "w": parseWeekdayNumberSunday, + "W": parseWeekNumberMonday, + "x": parseLocaleDate, + "X": parseLocaleTime, + "y": parseYear, + "Y": parseFullYear, + "Z": parseZone, + "%": parseLiteralPercent + }; + + // These recursive directive definitions must be deferred. + formats.x = newFormat(locale_date, formats); + formats.X = newFormat(locale_time, formats); + formats.c = newFormat(locale_dateTime, formats); + utcFormats.x = newFormat(locale_date, utcFormats); + utcFormats.X = newFormat(locale_time, utcFormats); + utcFormats.c = newFormat(locale_dateTime, utcFormats); + + function newFormat(specifier, formats) { + return function(date) { + var string = [], + i = -1, + j = 0, + n = specifier.length, + c, + pad, + format; + + if (!(date instanceof Date)) date = new Date(+date); + + while (++i < n) { + if (specifier.charCodeAt(i) === 37) { + string.push(specifier.slice(j, i)); + if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); + else pad = c === "e" ? " " : "0"; + if (format = formats[c]) c = format(date, pad); + string.push(c); + j = i + 1; + } + } + + string.push(specifier.slice(j, i)); + return string.join(""); + }; + } + + function newParse(specifier, Z) { + return function(string) { + var d = newDate(1900, undefined, 1), + i = parseSpecifier(d, specifier, string += "", 0), + week, day$1; + if (i != string.length) return null; + + // If a UNIX timestamp is specified, return it. + if ("Q" in d) return new Date(d.Q); + if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); + + // If this is utcParse, never use the local timezone. + if (Z && !("Z" in d)) d.Z = 0; + + // The am-pm flag is 0 for AM, and 1 for PM. + if ("p" in d) d.H = d.H % 12 + d.p * 12; + + // If the month was not specified, inherit from the quarter. + if (d.m === undefined) d.m = "q" in d ? d.q : 0; + + // Convert day-of-week and week-of-year to day-of-year. + if ("V" in d) { + if (d.V < 1 || d.V > 53) return null; + if (!("w" in d)) d.w = 1; + if ("Z" in d) { + week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay(); + week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week); + week = utcDay.offset(week, (d.V - 1) * 7); + d.y = week.getUTCFullYear(); + d.m = week.getUTCMonth(); + d.d = week.getUTCDate() + (d.w + 6) % 7; + } else { + week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay(); + week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week); + week = day.offset(week, (d.V - 1) * 7); + d.y = week.getFullYear(); + d.m = week.getMonth(); + d.d = week.getDate() + (d.w + 6) % 7; + } + } else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; + day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); + d.m = 0; + d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7; + } + + // If a time zone is specified, all fields are interpreted as UTC and then + // offset according to the specified time zone. + if ("Z" in d) { + d.H += d.Z / 100 | 0; + d.M += d.Z % 100; + return utcDate(d); + } + + // Otherwise, all fields are in local time. + return localDate(d); + }; + } + + function parseSpecifier(d, specifier, string, j) { + var i = 0, + n = specifier.length, + m = string.length, + c, + parse; + + while (i < n) { + if (j >= m) return -1; + c = specifier.charCodeAt(i++); + if (c === 37) { + c = specifier.charAt(i++); + parse = parses[c in pads ? specifier.charAt(i++) : c]; + if (!parse || ((j = parse(d, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + + return j; + } + + function parsePeriod(d, string, i) { + var n = periodRe.exec(string.slice(i)); + return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseShortWeekday(d, string, i) { + var n = shortWeekdayRe.exec(string.slice(i)); + return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseWeekday(d, string, i) { + var n = weekdayRe.exec(string.slice(i)); + return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseShortMonth(d, string, i) { + var n = shortMonthRe.exec(string.slice(i)); + return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseMonth(d, string, i) { + var n = monthRe.exec(string.slice(i)); + return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + + function parseLocaleDateTime(d, string, i) { + return parseSpecifier(d, locale_dateTime, string, i); + } + + function parseLocaleDate(d, string, i) { + return parseSpecifier(d, locale_date, string, i); + } + + function parseLocaleTime(d, string, i) { + return parseSpecifier(d, locale_time, string, i); + } + + function formatShortWeekday(d) { + return locale_shortWeekdays[d.getDay()]; + } + + function formatWeekday(d) { + return locale_weekdays[d.getDay()]; + } + + function formatShortMonth(d) { + return locale_shortMonths[d.getMonth()]; + } + + function formatMonth(d) { + return locale_months[d.getMonth()]; + } + + function formatPeriod(d) { + return locale_periods[+(d.getHours() >= 12)]; + } + + function formatQuarter(d) { + return 1 + ~~(d.getMonth() / 3); + } + + function formatUTCShortWeekday(d) { + return locale_shortWeekdays[d.getUTCDay()]; + } + + function formatUTCWeekday(d) { + return locale_weekdays[d.getUTCDay()]; + } + + function formatUTCShortMonth(d) { + return locale_shortMonths[d.getUTCMonth()]; + } + + function formatUTCMonth(d) { + return locale_months[d.getUTCMonth()]; + } + + function formatUTCPeriod(d) { + return locale_periods[+(d.getUTCHours() >= 12)]; + } + + function formatUTCQuarter(d) { + return 1 + ~~(d.getUTCMonth() / 3); + } + + return { + format: function(specifier) { + var f = newFormat(specifier += "", formats); + f.toString = function() { return specifier; }; + return f; + }, + parse: function(specifier) { + var p = newParse(specifier += "", false); + p.toString = function() { return specifier; }; + return p; + }, + utcFormat: function(specifier) { + var f = newFormat(specifier += "", utcFormats); + f.toString = function() { return specifier; }; + return f; + }, + utcParse: function(specifier) { + var p = newParse(specifier += "", true); + p.toString = function() { return specifier; }; + return p; + } + }; +} + +var pads = {"-": "", "_": " ", "0": "0"}, + numberRe = /^\s*\d+/, // note: ignores next directive + percentRe = /^%/, + requoteRe = /[\\^$*+?|[\]().{}]/g; + +function pad(value, fill, width) { + var sign = value < 0 ? "-" : "", + string = (sign ? -value : value) + "", + length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} + +function requote(s) { + return s.replace(requoteRe, "\\$&"); +} + +function formatRe(names) { + return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); +} + +function formatLookup(names) { + return new Map(names.map((name, i) => [name.toLowerCase(), i])); +} + +function parseWeekdayNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.w = +n[0], i + n[0].length) : -1; +} + +function parseWeekdayNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.u = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.U = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberISO(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.V = +n[0], i + n[0].length) : -1; +} + +function parseWeekNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.W = +n[0], i + n[0].length) : -1; +} + +function parseFullYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 4)); + return n ? (d.y = +n[0], i + n[0].length) : -1; +} + +function parseYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; +} + +function parseZone(d, string, i) { + var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); + return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +} + +function parseQuarter(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; +} + +function parseMonthNumber(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +} + +function parseDayOfMonth(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.d = +n[0], i + n[0].length) : -1; +} + +function parseDayOfYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; +} + +function parseHour24(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.H = +n[0], i + n[0].length) : -1; +} + +function parseMinutes(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.M = +n[0], i + n[0].length) : -1; +} + +function parseSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.S = +n[0], i + n[0].length) : -1; +} + +function parseMilliseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.L = +n[0], i + n[0].length) : -1; +} + +function parseMicroseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 6)); + return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; +} + +function parseLiteralPercent(d, string, i) { + var n = percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} + +function parseUnixTimestamp(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.Q = +n[0], i + n[0].length) : -1; +} + +function parseUnixTimestampSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.s = +n[0], i + n[0].length) : -1; +} + +function formatDayOfMonth(d, p) { + return pad(d.getDate(), p, 2); +} + +function formatHour24(d, p) { + return pad(d.getHours(), p, 2); +} + +function formatHour12(d, p) { + return pad(d.getHours() % 12 || 12, p, 2); +} + +function formatDayOfYear(d, p) { + return pad(1 + day.count(year(d), d), p, 3); +} + +function formatMilliseconds(d, p) { + return pad(d.getMilliseconds(), p, 3); +} + +function formatMicroseconds(d, p) { + return formatMilliseconds(d, p) + "000"; +} + +function formatMonthNumber(d, p) { + return pad(d.getMonth() + 1, p, 2); +} + +function formatMinutes(d, p) { + return pad(d.getMinutes(), p, 2); +} + +function formatSeconds(d, p) { + return pad(d.getSeconds(), p, 2); +} + +function formatWeekdayNumberMonday(d) { + var day = d.getDay(); + return day === 0 ? 7 : day; +} + +function formatWeekNumberSunday(d, p) { + return pad(sunday.count(year(d) - 1, d), p, 2); +} + +function dISO(d) { + var day = d.getDay(); + return (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); +} + +function formatWeekNumberISO(d, p) { + d = dISO(d); + return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2); +} + +function formatWeekdayNumberSunday(d) { + return d.getDay(); +} + +function formatWeekNumberMonday(d, p) { + return pad(monday.count(year(d) - 1, d), p, 2); +} + +function formatYear(d, p) { + return pad(d.getFullYear() % 100, p, 2); +} + +function formatYearISO(d, p) { + d = dISO(d); + return pad(d.getFullYear() % 100, p, 2); +} + +function formatFullYear(d, p) { + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatFullYearISO(d, p) { + var day = d.getDay(); + d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); + return pad(d.getFullYear() % 10000, p, 4); +} + +function formatZone(d) { + var z = d.getTimezoneOffset(); + return (z > 0 ? "-" : (z *= -1, "+")) + + pad(z / 60 | 0, "0", 2) + + pad(z % 60, "0", 2); +} + +function formatUTCDayOfMonth(d, p) { + return pad(d.getUTCDate(), p, 2); +} + +function formatUTCHour24(d, p) { + return pad(d.getUTCHours(), p, 2); +} + +function formatUTCHour12(d, p) { + return pad(d.getUTCHours() % 12 || 12, p, 2); +} + +function formatUTCDayOfYear(d, p) { + return pad(1 + utcDay.count(utcYear(d), d), p, 3); +} + +function formatUTCMilliseconds(d, p) { + return pad(d.getUTCMilliseconds(), p, 3); +} + +function formatUTCMicroseconds(d, p) { + return formatUTCMilliseconds(d, p) + "000"; +} + +function formatUTCMonthNumber(d, p) { + return pad(d.getUTCMonth() + 1, p, 2); +} + +function formatUTCMinutes(d, p) { + return pad(d.getUTCMinutes(), p, 2); +} + +function formatUTCSeconds(d, p) { + return pad(d.getUTCSeconds(), p, 2); +} + +function formatUTCWeekdayNumberMonday(d) { + var dow = d.getUTCDay(); + return dow === 0 ? 7 : dow; +} + +function formatUTCWeekNumberSunday(d, p) { + return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); +} + +function UTCdISO(d) { + var day = d.getUTCDay(); + return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); +} + +function formatUTCWeekNumberISO(d, p) { + d = UTCdISO(d); + return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); +} + +function formatUTCWeekdayNumberSunday(d) { + return d.getUTCDay(); +} + +function formatUTCWeekNumberMonday(d, p) { + return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); +} + +function formatUTCYear(d, p) { + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCYearISO(d, p) { + d = UTCdISO(d); + return pad(d.getUTCFullYear() % 100, p, 2); +} + +function formatUTCFullYear(d, p) { + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCFullYearISO(d, p) { + var day = d.getUTCDay(); + d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); + return pad(d.getUTCFullYear() % 10000, p, 4); +} + +function formatUTCZone() { + return "+0000"; +} + +function formatLiteralPercent() { + return "%"; +} + +function formatUnixTimestamp(d) { + return +d; +} + +function formatUnixTimestampSeconds(d) { + return Math.floor(+d / 1000); +} + +var locale; +exports.timeFormat = void 0; +exports.timeParse = void 0; +exports.utcFormat = void 0; +exports.utcParse = void 0; + +defaultLocale({ + dateTime: "%x, %X", + date: "%-m/%-d/%Y", + time: "%-I:%M:%S %p", + periods: ["AM", "PM"], + days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] +}); + +function defaultLocale(definition) { + locale = formatLocale(definition); + exports.timeFormat = locale.format; + exports.timeParse = locale.parse; + exports.utcFormat = locale.utcFormat; + exports.utcParse = locale.utcParse; + return locale; +} + +var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; + +function formatIsoNative(date) { + return date.toISOString(); +} + +var formatIso = Date.prototype.toISOString + ? formatIsoNative + : exports.utcFormat(isoSpecifier); + +function parseIsoNative(string) { + var date = new Date(string); + return isNaN(date) ? null : date; +} + +var parseIso = +new Date("2000-01-01T00:00:00.000Z") + ? parseIsoNative + : exports.utcParse(isoSpecifier); + +function date(t) { + return new Date(t); +} + +function number(t) { + return t instanceof Date ? +t : +new Date(+t); +} + +function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { + var scale = continuous(), + invert = scale.invert, + domain = scale.domain; + + var formatMillisecond = format(".%L"), + formatSecond = format(":%S"), + formatMinute = format("%I:%M"), + formatHour = format("%I %p"), + formatDay = format("%a %d"), + formatWeek = format("%b %d"), + formatMonth = format("%B"), + formatYear = format("%Y"); + + function tickFormat(date) { + return (second(date) < date ? formatMillisecond + : minute(date) < date ? formatSecond + : hour(date) < date ? formatMinute + : day(date) < date ? formatHour + : month(date) < date ? (week(date) < date ? formatDay : formatWeek) + : year(date) < date ? formatMonth + : formatYear)(date); + } + + scale.invert = function(y) { + return new Date(invert(y)); + }; + + scale.domain = function(_) { + return arguments.length ? domain(Array.from(_, number)) : domain().map(date); + }; + + scale.ticks = function(interval) { + var d = domain(); + return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); + }; + + scale.tickFormat = function(count, specifier) { + return specifier == null ? tickFormat : format(specifier); + }; + + scale.nice = function(interval) { + var d = domain(); + if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); + return interval ? domain(nice(d, interval)) : scale; + }; + + scale.copy = function() { + return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); + }; + + return scale; +} + +function time() { + return initRange.apply(calendar(timeTicks, timeTickInterval, year, month, sunday, day, hour, minute, second, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments); +} + +function utcTime() { + return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments); +} + +function transformer$1() { + var x0 = 0, + x1 = 1, + t0, + t1, + k10, + transform, + interpolator = identity$3, + clamp = false, + unknown; + + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x)); + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1]; + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + function range(interpolate) { + return function(_) { + var r0, r1; + return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)]; + }; + } + + scale.range = range(interpolate$2); + + scale.rangeRound = range(interpolateRound); + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0); + return scale; + }; +} + +function copy(source, target) { + return target + .domain(source.domain()) + .interpolator(source.interpolator()) + .clamp(source.clamp()) + .unknown(source.unknown()); +} + +function sequential() { + var scale = linearish(transformer$1()(identity$3)); + + scale.copy = function() { + return copy(scale, sequential()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialLog() { + var scale = loggish(transformer$1()).domain([1, 10]); + + scale.copy = function() { + return copy(scale, sequentialLog()).base(scale.base()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialSymlog() { + var scale = symlogish(transformer$1()); + + scale.copy = function() { + return copy(scale, sequentialSymlog()).constant(scale.constant()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialPow() { + var scale = powish(transformer$1()); + + scale.copy = function() { + return copy(scale, sequentialPow()).exponent(scale.exponent()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function sequentialSqrt() { + return sequentialPow.apply(null, arguments).exponent(0.5); +} + +function sequentialQuantile() { + var domain = [], + interpolator = identity$3; + + function scale(x) { + if (x != null && !isNaN(x = +x)) return interpolator((bisectRight(domain, x, 1) - 1) / (domain.length - 1)); + } + + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort(ascending$3); + return scale; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + scale.range = function() { + return domain.map((d, i) => interpolator(i / (domain.length - 1))); + }; + + scale.quantiles = function(n) { + return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n)); + }; + + scale.copy = function() { + return sequentialQuantile(interpolator).domain(domain); + }; + + return initInterpolator.apply(scale, arguments); +} + +function transformer() { + var x0 = 0, + x1 = 0.5, + x2 = 1, + s = 1, + t0, + t1, + t2, + k10, + k21, + interpolator = identity$3, + transform, + clamp = false, + unknown; + + function scale(x) { + return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x)); + } + + scale.domain = function(_) { + return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2]; + }; + + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + + function range(interpolate) { + return function(_) { + var r0, r1, r2; + return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)]; + }; + } + + scale.range = range(interpolate$2); + + scale.rangeRound = range(interpolateRound); + + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1; + return scale; + }; +} + +function diverging$1() { + var scale = linearish(transformer()(identity$3)); + + scale.copy = function() { + return copy(scale, diverging$1()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingLog() { + var scale = loggish(transformer()).domain([0.1, 1, 10]); + + scale.copy = function() { + return copy(scale, divergingLog()).base(scale.base()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingSymlog() { + var scale = symlogish(transformer()); + + scale.copy = function() { + return copy(scale, divergingSymlog()).constant(scale.constant()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingPow() { + var scale = powish(transformer()); + + scale.copy = function() { + return copy(scale, divergingPow()).exponent(scale.exponent()); + }; + + return initInterpolator.apply(scale, arguments); +} + +function divergingSqrt() { + return divergingPow.apply(null, arguments).exponent(0.5); +} + +function colors(specifier) { + var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; + while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); + return colors; +} + +var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"); + +var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"); + +var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"); + +var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"); + +var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"); + +var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"); + +var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"); + +var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"); + +var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"); + +var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"); + +var ramp$1 = scheme => rgbBasis(scheme[scheme.length - 1]); + +var scheme$q = new Array(3).concat( + "d8b365f5f5f55ab4ac", + "a6611adfc27d80cdc1018571", + "a6611adfc27df5f5f580cdc1018571", + "8c510ad8b365f6e8c3c7eae55ab4ac01665e", + "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", + "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", + "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", + "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", + "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30" +).map(colors); + +var BrBG = ramp$1(scheme$q); + +var scheme$p = new Array(3).concat( + "af8dc3f7f7f77fbf7b", + "7b3294c2a5cfa6dba0008837", + "7b3294c2a5cff7f7f7a6dba0008837", + "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", + "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", + "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", + "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", + "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", + "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b" +).map(colors); + +var PRGn = ramp$1(scheme$p); + +var scheme$o = new Array(3).concat( + "e9a3c9f7f7f7a1d76a", + "d01c8bf1b6dab8e1864dac26", + "d01c8bf1b6daf7f7f7b8e1864dac26", + "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", + "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", + "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", + "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", + "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", + "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419" +).map(colors); + +var PiYG = ramp$1(scheme$o); + +var scheme$n = new Array(3).concat( + "998ec3f7f7f7f1a340", + "5e3c99b2abd2fdb863e66101", + "5e3c99b2abd2f7f7f7fdb863e66101", + "542788998ec3d8daebfee0b6f1a340b35806", + "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", + "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", + "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", + "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", + "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08" +).map(colors); + +var PuOr = ramp$1(scheme$n); + +var scheme$m = new Array(3).concat( + "ef8a62f7f7f767a9cf", + "ca0020f4a58292c5de0571b0", + "ca0020f4a582f7f7f792c5de0571b0", + "b2182bef8a62fddbc7d1e5f067a9cf2166ac", + "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", + "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", + "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", + "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", + "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061" +).map(colors); + +var RdBu = ramp$1(scheme$m); + +var scheme$l = new Array(3).concat( + "ef8a62ffffff999999", + "ca0020f4a582bababa404040", + "ca0020f4a582ffffffbababa404040", + "b2182bef8a62fddbc7e0e0e09999994d4d4d", + "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", + "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", + "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", + "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", + "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a" +).map(colors); + +var RdGy = ramp$1(scheme$l); + +var scheme$k = new Array(3).concat( + "fc8d59ffffbf91bfdb", + "d7191cfdae61abd9e92c7bb6", + "d7191cfdae61ffffbfabd9e92c7bb6", + "d73027fc8d59fee090e0f3f891bfdb4575b4", + "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", + "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", + "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", + "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", + "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695" +).map(colors); + +var RdYlBu = ramp$1(scheme$k); + +var scheme$j = new Array(3).concat( + "fc8d59ffffbf91cf60", + "d7191cfdae61a6d96a1a9641", + "d7191cfdae61ffffbfa6d96a1a9641", + "d73027fc8d59fee08bd9ef8b91cf601a9850", + "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", + "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", + "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", + "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", + "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837" +).map(colors); + +var RdYlGn = ramp$1(scheme$j); + +var scheme$i = new Array(3).concat( + "fc8d59ffffbf99d594", + "d7191cfdae61abdda42b83ba", + "d7191cfdae61ffffbfabdda42b83ba", + "d53e4ffc8d59fee08be6f59899d5943288bd", + "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", + "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", + "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", + "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", + "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2" +).map(colors); + +var Spectral = ramp$1(scheme$i); + +var scheme$h = new Array(3).concat( + "e5f5f999d8c92ca25f", + "edf8fbb2e2e266c2a4238b45", + "edf8fbb2e2e266c2a42ca25f006d2c", + "edf8fbccece699d8c966c2a42ca25f006d2c", + "edf8fbccece699d8c966c2a441ae76238b45005824", + "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", + "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b" +).map(colors); + +var BuGn = ramp$1(scheme$h); + +var scheme$g = new Array(3).concat( + "e0ecf49ebcda8856a7", + "edf8fbb3cde38c96c688419d", + "edf8fbb3cde38c96c68856a7810f7c", + "edf8fbbfd3e69ebcda8c96c68856a7810f7c", + "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", + "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", + "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b" +).map(colors); + +var BuPu = ramp$1(scheme$g); + +var scheme$f = new Array(3).concat( + "e0f3dba8ddb543a2ca", + "f0f9e8bae4bc7bccc42b8cbe", + "f0f9e8bae4bc7bccc443a2ca0868ac", + "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", + "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", + "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", + "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081" +).map(colors); + +var GnBu = ramp$1(scheme$f); + +var scheme$e = new Array(3).concat( + "fee8c8fdbb84e34a33", + "fef0d9fdcc8afc8d59d7301f", + "fef0d9fdcc8afc8d59e34a33b30000", + "fef0d9fdd49efdbb84fc8d59e34a33b30000", + "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", + "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", + "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000" +).map(colors); + +var OrRd = ramp$1(scheme$e); + +var scheme$d = new Array(3).concat( + "ece2f0a6bddb1c9099", + "f6eff7bdc9e167a9cf02818a", + "f6eff7bdc9e167a9cf1c9099016c59", + "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", + "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", + "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", + "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636" +).map(colors); + +var PuBuGn = ramp$1(scheme$d); + +var scheme$c = new Array(3).concat( + "ece7f2a6bddb2b8cbe", + "f1eef6bdc9e174a9cf0570b0", + "f1eef6bdc9e174a9cf2b8cbe045a8d", + "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", + "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", + "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", + "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858" +).map(colors); + +var PuBu = ramp$1(scheme$c); + +var scheme$b = new Array(3).concat( + "e7e1efc994c7dd1c77", + "f1eef6d7b5d8df65b0ce1256", + "f1eef6d7b5d8df65b0dd1c77980043", + "f1eef6d4b9dac994c7df65b0dd1c77980043", + "f1eef6d4b9dac994c7df65b0e7298ace125691003f", + "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", + "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f" +).map(colors); + +var PuRd = ramp$1(scheme$b); + +var scheme$a = new Array(3).concat( + "fde0ddfa9fb5c51b8a", + "feebe2fbb4b9f768a1ae017e", + "feebe2fbb4b9f768a1c51b8a7a0177", + "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", + "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", + "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", + "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a" +).map(colors); + +var RdPu = ramp$1(scheme$a); + +var scheme$9 = new Array(3).concat( + "edf8b17fcdbb2c7fb8", + "ffffcca1dab441b6c4225ea8", + "ffffcca1dab441b6c42c7fb8253494", + "ffffccc7e9b47fcdbb41b6c42c7fb8253494", + "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", + "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", + "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58" +).map(colors); + +var YlGnBu = ramp$1(scheme$9); + +var scheme$8 = new Array(3).concat( + "f7fcb9addd8e31a354", + "ffffccc2e69978c679238443", + "ffffccc2e69978c67931a354006837", + "ffffccd9f0a3addd8e78c67931a354006837", + "ffffccd9f0a3addd8e78c67941ab5d238443005a32", + "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", + "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529" +).map(colors); + +var YlGn = ramp$1(scheme$8); + +var scheme$7 = new Array(3).concat( + "fff7bcfec44fd95f0e", + "ffffd4fed98efe9929cc4c02", + "ffffd4fed98efe9929d95f0e993404", + "ffffd4fee391fec44ffe9929d95f0e993404", + "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", + "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", + "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506" +).map(colors); + +var YlOrBr = ramp$1(scheme$7); + +var scheme$6 = new Array(3).concat( + "ffeda0feb24cf03b20", + "ffffb2fecc5cfd8d3ce31a1c", + "ffffb2fecc5cfd8d3cf03b20bd0026", + "ffffb2fed976feb24cfd8d3cf03b20bd0026", + "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", + "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", + "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026" +).map(colors); + +var YlOrRd = ramp$1(scheme$6); + +var scheme$5 = new Array(3).concat( + "deebf79ecae13182bd", + "eff3ffbdd7e76baed62171b5", + "eff3ffbdd7e76baed63182bd08519c", + "eff3ffc6dbef9ecae16baed63182bd08519c", + "eff3ffc6dbef9ecae16baed64292c62171b5084594", + "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", + "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b" +).map(colors); + +var Blues = ramp$1(scheme$5); + +var scheme$4 = new Array(3).concat( + "e5f5e0a1d99b31a354", + "edf8e9bae4b374c476238b45", + "edf8e9bae4b374c47631a354006d2c", + "edf8e9c7e9c0a1d99b74c47631a354006d2c", + "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", + "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", + "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b" +).map(colors); + +var Greens = ramp$1(scheme$4); + +var scheme$3 = new Array(3).concat( + "f0f0f0bdbdbd636363", + "f7f7f7cccccc969696525252", + "f7f7f7cccccc969696636363252525", + "f7f7f7d9d9d9bdbdbd969696636363252525", + "f7f7f7d9d9d9bdbdbd969696737373525252252525", + "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", + "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000" +).map(colors); + +var Greys = ramp$1(scheme$3); + +var scheme$2 = new Array(3).concat( + "efedf5bcbddc756bb1", + "f2f0f7cbc9e29e9ac86a51a3", + "f2f0f7cbc9e29e9ac8756bb154278f", + "f2f0f7dadaebbcbddc9e9ac8756bb154278f", + "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", + "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", + "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d" +).map(colors); + +var Purples = ramp$1(scheme$2); + +var scheme$1 = new Array(3).concat( + "fee0d2fc9272de2d26", + "fee5d9fcae91fb6a4acb181d", + "fee5d9fcae91fb6a4ade2d26a50f15", + "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", + "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", + "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", + "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d" +).map(colors); + +var Reds = ramp$1(scheme$1); + +var scheme = new Array(3).concat( + "fee6cefdae6be6550d", + "feeddefdbe85fd8d3cd94701", + "feeddefdbe85fd8d3ce6550da63603", + "feeddefdd0a2fdae6bfd8d3ce6550da63603", + "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", + "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", + "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704" +).map(colors); + +var Oranges = ramp$1(scheme); + +function cividis(t) { + t = Math.max(0, Math.min(1, t)); + return "rgb(" + + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", " + + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", " + + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67))))))) + + ")"; +} + +var cubehelix = cubehelixLong(cubehelix$3(300, 0.5, 0.0), cubehelix$3(-240, 0.5, 1.0)); + +var warm = cubehelixLong(cubehelix$3(-100, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); + +var cool = cubehelixLong(cubehelix$3(260, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); + +var c$2 = cubehelix$3(); + +function rainbow(t) { + if (t < 0 || t > 1) t -= Math.floor(t); + var ts = Math.abs(t - 0.5); + c$2.h = 360 * t - 100; + c$2.s = 1.5 - 1.5 * ts; + c$2.l = 0.8 - 0.9 * ts; + return c$2 + ""; +} + +var c$1 = rgb(), + pi_1_3 = Math.PI / 3, + pi_2_3 = Math.PI * 2 / 3; + +function sinebow(t) { + var x; + t = (0.5 - t) * Math.PI; + c$1.r = 255 * (x = Math.sin(t)) * x; + c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x; + c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x; + return c$1 + ""; +} + +function turbo(t) { + t = Math.max(0, Math.min(1, t)); + return "rgb(" + + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", " + + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", " + + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66))))))) + + ")"; +} + +function ramp(range) { + var n = range.length; + return function(t) { + return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; + }; +} + +var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")); + +var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")); + +var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")); + +var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")); + +function constant$1(x) { + return function constant() { + return x; + }; +} + +var abs = Math.abs; +var atan2 = Math.atan2; +var cos = Math.cos; +var max = Math.max; +var min = Math.min; +var sin = Math.sin; +var sqrt = Math.sqrt; + +var epsilon = 1e-12; +var pi = Math.PI; +var halfPi = pi / 2; +var tau = 2 * pi; + +function acos(x) { + return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); +} + +function asin(x) { + return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +} + +function arcInnerRadius(d) { + return d.innerRadius; +} + +function arcOuterRadius(d) { + return d.outerRadius; +} + +function arcStartAngle(d) { + return d.startAngle; +} + +function arcEndAngle(d) { + return d.endAngle; +} + +function arcPadAngle(d) { + return d && d.padAngle; // Note: optional! +} + +function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { + var x10 = x1 - x0, y10 = y1 - y0, + x32 = x3 - x2, y32 = y3 - y2, + t = y32 * x10 - x32 * y10; + if (t * t < epsilon) return; + t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; + return [x0 + t * x10, y0 + t * y10]; +} + +// Compute perpendicular offset line of length rc. +// http://mathworld.wolfram.com/Circle-LineIntersection.html +function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { + var x01 = x0 - x1, + y01 = y0 - y1, + lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), + ox = lo * y01, + oy = -lo * x01, + x11 = x0 + ox, + y11 = y0 + oy, + x10 = x1 + ox, + y10 = y1 + oy, + x00 = (x11 + x10) / 2, + y00 = (y11 + y10) / 2, + dx = x10 - x11, + dy = y10 - y11, + d2 = dx * dx + dy * dy, + r = r1 - rc, + D = x11 * y10 - x10 * y11, + d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), + cx0 = (D * dy - dx * d) / d2, + cy0 = (-D * dx - dy * d) / d2, + cx1 = (D * dy + dx * d) / d2, + cy1 = (-D * dx + dy * d) / d2, + dx0 = cx0 - x00, + dy0 = cy0 - y00, + dx1 = cx1 - x00, + dy1 = cy1 - y00; + + // Pick the closer of the two intersection points. + // TODO Is there a faster way to determine which intersection to use? + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + + return { + cx: cx0, + cy: cy0, + x01: -ox, + y01: -oy, + x11: cx0 * (r1 / r - 1), + y11: cy0 * (r1 / r - 1) + }; +} + +function arc() { + var innerRadius = arcInnerRadius, + outerRadius = arcOuterRadius, + cornerRadius = constant$1(0), + padRadius = null, + startAngle = arcStartAngle, + endAngle = arcEndAngle, + padAngle = arcPadAngle, + context = null; + + function arc() { + var buffer, + r, + r0 = +innerRadius.apply(this, arguments), + r1 = +outerRadius.apply(this, arguments), + a0 = startAngle.apply(this, arguments) - halfPi, + a1 = endAngle.apply(this, arguments) - halfPi, + da = abs(a1 - a0), + cw = a1 > a0; + + if (!context) context = buffer = path(); + + // Ensure that the outer radius is always larger than the inner radius. + if (r1 < r0) r = r1, r1 = r0, r0 = r; + + // Is it a point? + if (!(r1 > epsilon)) context.moveTo(0, 0); + + // Or is it a circle or annulus? + else if (da > tau - epsilon) { + context.moveTo(r1 * cos(a0), r1 * sin(a0)); + context.arc(0, 0, r1, a0, a1, !cw); + if (r0 > epsilon) { + context.moveTo(r0 * cos(a1), r0 * sin(a1)); + context.arc(0, 0, r0, a1, a0, cw); + } + } + + // Or is it a circular or annular sector? + else { + var a01 = a0, + a11 = a1, + a00 = a0, + a10 = a1, + da0 = da, + da1 = da, + ap = padAngle.apply(this, arguments) / 2, + rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), + rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), + rc0 = rc, + rc1 = rc, + t0, + t1; + + // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. + if (rp > epsilon) { + var p0 = asin(rp / r0 * sin(ap)), + p1 = asin(rp / r1 * sin(ap)); + if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; + else da0 = 0, a00 = a10 = (a0 + a1) / 2; + if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; + else da1 = 0, a01 = a11 = (a0 + a1) / 2; + } + + var x01 = r1 * cos(a01), + y01 = r1 * sin(a01), + x10 = r0 * cos(a10), + y10 = r0 * sin(a10); + + // Apply rounded corners? + if (rc > epsilon) { + var x11 = r1 * cos(a11), + y11 = r1 * sin(a11), + x00 = r0 * cos(a00), + y00 = r0 * sin(a00), + oc; + + // Restrict the corner radius according to the sector angle. + if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) { + var ax = x01 - oc[0], + ay = y01 - oc[1], + bx = x11 - oc[0], + by = y11 - oc[1], + kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), + lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = min(rc, (r0 - lc) / (kc - 1)); + rc1 = min(rc, (r1 - lc) / (kc + 1)); + } + } + + // Is the sector collapsed to a line? + if (!(da1 > epsilon)) context.moveTo(x01, y01); + + // Does the sector’s outer ring have rounded corners? + else if (rc1 > epsilon) { + t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); + t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + + context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); + context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the outer ring just a circular arc? + else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); + + // Is there no inner ring, and it’s a circular sector? + // Or perhaps it’s an annular sector collapsed due to padding? + if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); + + // Does the sector’s inner ring (or point) have rounded corners? + else if (rc0 > epsilon) { + t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); + t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); + + context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); + + // Have the corners merged? + if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + + // Otherwise, draw the two corners and the ring. + else { + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); + context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } + + // Or is the inner ring just a circular arc? + else context.arc(0, 0, r0, a10, a00, cw); + } + + context.closePath(); + + if (buffer) return context = null, buffer + "" || null; + } + + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, + a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; + return [cos(a) * r, sin(a) * r]; + }; + + arc.innerRadius = function(_) { + return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : innerRadius; + }; + + arc.outerRadius = function(_) { + return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : outerRadius; + }; + + arc.cornerRadius = function(_) { + return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : cornerRadius; + }; + + arc.padRadius = function(_) { + return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), arc) : padRadius; + }; + + arc.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : startAngle; + }; + + arc.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : endAngle; + }; + + arc.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : padAngle; + }; + + arc.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), arc) : context; + }; + + return arc; +} + +var slice = Array.prototype.slice; + +function array(x) { + return typeof x === "object" && "length" in x + ? x // Array, TypedArray, NodeList, array-like + : Array.from(x); // Map, Set, iterable, string, or anything else +} + +function Linear(context) { + this._context = context; +} + +Linear.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // proceed + default: this._context.lineTo(x, y); break; + } + } +}; + +function curveLinear(context) { + return new Linear(context); +} + +function x(p) { + return p[0]; +} + +function y(p) { + return p[1]; +} + +function line(x$1, y$1) { + var defined = constant$1(true), + context = null, + curve = curveLinear, + output = null; + + x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant$1(x$1); + y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant$1(y$1); + + function line(data) { + var i, + n = (data = array(data)).length, + d, + defined0 = false, + buffer; + + if (context == null) output = curve(buffer = path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) output.lineStart(); + else output.lineEnd(); + } + if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); + } + + if (buffer) return output = null, buffer + "" || null; + } + + line.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), line) : x$1; + }; + + line.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), line) : y$1; + }; + + line.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), line) : defined; + }; + + line.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; + }; + + line.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; + }; + + return line; +} + +function area(x0, y0, y1) { + var x1 = null, + defined = constant$1(true), + context = null, + curve = curveLinear, + output = null; + + x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant$1(+x0); + y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant$1(0) : constant$1(+y0); + y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant$1(+y1); + + function area(data) { + var i, + j, + k, + n = (data = array(data)).length, + d, + defined0 = false, + buffer, + x0z = new Array(n), + y0z = new Array(n); + + if (context == null) output = curve(buffer = path()); + + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) { + j = i; + output.areaStart(); + output.lineStart(); + } else { + output.lineEnd(); + output.lineStart(); + for (k = i - 1; k >= j; --k) { + output.point(x0z[k], y0z[k]); + } + output.lineEnd(); + output.areaEnd(); + } + } + if (defined0) { + x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); + output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); + } + } + + if (buffer) return output = null, buffer + "" || null; + } + + function arealine() { + return line().defined(defined).curve(curve).context(context); + } + + area.x = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), x1 = null, area) : x0; + }; + + area.x0 = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), area) : x0; + }; + + area.x1 = function(_) { + return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : x1; + }; + + area.y = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), y1 = null, area) : y0; + }; + + area.y0 = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), area) : y0; + }; + + area.y1 = function(_) { + return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : y1; + }; + + area.lineX0 = + area.lineY0 = function() { + return arealine().x(x0).y(y0); + }; + + area.lineY1 = function() { + return arealine().x(x0).y(y1); + }; + + area.lineX1 = function() { + return arealine().x(x1).y(y0); + }; + + area.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), area) : defined; + }; + + area.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; + }; + + area.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; + }; + + return area; +} + +function descending$1(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +function identity$1(d) { + return d; +} + +function pie() { + var value = identity$1, + sortValues = descending$1, + sort = null, + startAngle = constant$1(0), + endAngle = constant$1(tau), + padAngle = constant$1(0); + + function pie(data) { + var i, + n = (data = array(data)).length, + j, + k, + sum = 0, + index = new Array(n), + arcs = new Array(n), + a0 = +startAngle.apply(this, arguments), + da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), + a1, + p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), + pa = p * (da < 0 ? -1 : 1), + v; + + for (i = 0; i < n; ++i) { + if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { + sum += v; + } + } + + // Optionally sort the arcs by previously-computed values or by data. + if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); + else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); + + // Compute the arcs! They are stored in the original data's order. + for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { + j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { + data: data[j], + index: i, + value: v, + startAngle: a0, + endAngle: a1, + padAngle: p + }; + } + + return arcs; + } + + pie.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), pie) : value; + }; + + pie.sortValues = function(_) { + return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; + }; + + pie.sort = function(_) { + return arguments.length ? (sort = _, sortValues = null, pie) : sort; + }; + + pie.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : startAngle; + }; + + pie.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : endAngle; + }; + + pie.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : padAngle; + }; + + return pie; +} + +var curveRadialLinear = curveRadial$1(curveLinear); + +function Radial(curve) { + this._curve = curve; +} + +Radial.prototype = { + areaStart: function() { + this._curve.areaStart(); + }, + areaEnd: function() { + this._curve.areaEnd(); + }, + lineStart: function() { + this._curve.lineStart(); + }, + lineEnd: function() { + this._curve.lineEnd(); + }, + point: function(a, r) { + this._curve.point(r * Math.sin(a), r * -Math.cos(a)); + } +}; + +function curveRadial$1(curve) { + + function radial(context) { + return new Radial(curve(context)); + } + + radial._curve = curve; + + return radial; +} + +function lineRadial(l) { + var c = l.curve; + + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + + l.curve = function(_) { + return arguments.length ? c(curveRadial$1(_)) : c()._curve; + }; + + return l; +} + +function lineRadial$1() { + return lineRadial(line().curve(curveRadialLinear)); +} + +function areaRadial() { + var a = area().curve(curveRadialLinear), + c = a.curve, + x0 = a.lineX0, + x1 = a.lineX1, + y0 = a.lineY0, + y1 = a.lineY1; + + a.angle = a.x, delete a.x; + a.startAngle = a.x0, delete a.x0; + a.endAngle = a.x1, delete a.x1; + a.radius = a.y, delete a.y; + a.innerRadius = a.y0, delete a.y0; + a.outerRadius = a.y1, delete a.y1; + a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; + a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; + a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; + a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; + + a.curve = function(_) { + return arguments.length ? c(curveRadial$1(_)) : c()._curve; + }; + + return a; +} + +function pointRadial(x, y) { + return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; +} + +function linkSource(d) { + return d.source; +} + +function linkTarget(d) { + return d.target; +} + +function link(curve) { + var source = linkSource, + target = linkTarget, + x$1 = x, + y$1 = y, + context = null; + + function link() { + var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); + if (!context) context = buffer = path(); + curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); + if (buffer) return context = null, buffer + "" || null; + } + + link.source = function(_) { + return arguments.length ? (source = _, link) : source; + }; + + link.target = function(_) { + return arguments.length ? (target = _, link) : target; + }; + + link.x = function(_) { + return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), link) : x$1; + }; + + link.y = function(_) { + return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), link) : y$1; + }; + + link.context = function(_) { + return arguments.length ? ((context = _ == null ? null : _), link) : context; + }; + + return link; +} + +function curveHorizontal(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); +} + +function curveVertical(context, x0, y0, x1, y1) { + context.moveTo(x0, y0); + context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1); +} + +function curveRadial(context, x0, y0, x1, y1) { + var p0 = pointRadial(x0, y0), + p1 = pointRadial(x0, y0 = (y0 + y1) / 2), + p2 = pointRadial(x1, y0), + p3 = pointRadial(x1, y1); + context.moveTo(p0[0], p0[1]); + context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]); +} + +function linkHorizontal() { + return link(curveHorizontal); +} + +function linkVertical() { + return link(curveVertical); +} + +function linkRadial() { + var l = link(curveRadial); + l.angle = l.x, delete l.x; + l.radius = l.y, delete l.y; + return l; +} + +var circle = { + draw: function(context, size) { + var r = Math.sqrt(size / pi); + context.moveTo(r, 0); + context.arc(0, 0, r, 0, tau); + } +}; + +var cross = { + draw: function(context, size) { + var r = Math.sqrt(size / 5) / 2; + context.moveTo(-3 * r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, -3 * r); + context.lineTo(r, -3 * r); + context.lineTo(r, -r); + context.lineTo(3 * r, -r); + context.lineTo(3 * r, r); + context.lineTo(r, r); + context.lineTo(r, 3 * r); + context.lineTo(-r, 3 * r); + context.lineTo(-r, r); + context.lineTo(-3 * r, r); + context.closePath(); + } +}; + +var tan30 = Math.sqrt(1 / 3), + tan30_2 = tan30 * 2; + +var diamond = { + draw: function(context, size) { + var y = Math.sqrt(size / tan30_2), + x = y * tan30; + context.moveTo(0, -y); + context.lineTo(x, 0); + context.lineTo(0, y); + context.lineTo(-x, 0); + context.closePath(); + } +}; + +var ka = 0.89081309152928522810, + kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), + kx = Math.sin(tau / 10) * kr, + ky = -Math.cos(tau / 10) * kr; + +var star = { + draw: function(context, size) { + var r = Math.sqrt(size * ka), + x = kx * r, + y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for (var i = 1; i < 5; ++i) { + var a = tau * i / 5, + c = Math.cos(a), + s = Math.sin(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); + } +}; + +var square = { + draw: function(context, size) { + var w = Math.sqrt(size), + x = -w / 2; + context.rect(x, x, w, w); + } +}; + +var sqrt3 = Math.sqrt(3); + +var triangle = { + draw: function(context, size) { + var y = -Math.sqrt(size / (sqrt3 * 3)); + context.moveTo(0, y * 2); + context.lineTo(-sqrt3 * y, -y); + context.lineTo(sqrt3 * y, -y); + context.closePath(); + } +}; + +var c = -0.5, + s = Math.sqrt(3) / 2, + k = 1 / Math.sqrt(12), + a = (k / 2 + 1) * 3; + +var wye = { + draw: function(context, size) { + var r = Math.sqrt(size / a), + x0 = r / 2, + y0 = r * k, + x1 = x0, + y1 = r * k + r, + x2 = -x1, + y2 = y1; + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + context.lineTo(c * x0 - s * y0, s * x0 + c * y0); + context.lineTo(c * x1 - s * y1, s * x1 + c * y1); + context.lineTo(c * x2 - s * y2, s * x2 + c * y2); + context.lineTo(c * x0 + s * y0, c * y0 - s * x0); + context.lineTo(c * x1 + s * y1, c * y1 - s * x1); + context.lineTo(c * x2 + s * y2, c * y2 - s * x2); + context.closePath(); + } +}; + +var symbols = [ + circle, + cross, + diamond, + square, + star, + triangle, + wye +]; + +function symbol(type, size) { + var context = null; + type = typeof type === "function" ? type : constant$1(type || circle); + size = typeof size === "function" ? size : constant$1(size === undefined ? 64 : +size); + + function symbol() { + var buffer; + if (!context) context = buffer = path(); + type.apply(this, arguments).draw(context, +size.apply(this, arguments)); + if (buffer) return context = null, buffer + "" || null; + } + + symbol.type = function(_) { + return arguments.length ? (type = typeof _ === "function" ? _ : constant$1(_), symbol) : type; + }; + + symbol.size = function(_) { + return arguments.length ? (size = typeof _ === "function" ? _ : constant$1(+_), symbol) : size; + }; + + symbol.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, symbol) : context; + }; + + return symbol; +} + +function noop() {} + +function point$3(that, x, y) { + that._context.bezierCurveTo( + (2 * that._x0 + that._x1) / 3, + (2 * that._y0 + that._y1) / 3, + (that._x0 + 2 * that._x1) / 3, + (that._y0 + 2 * that._y1) / 3, + (that._x0 + 4 * that._x1 + x) / 6, + (that._y0 + 4 * that._y1 + y) / 6 + ); +} + +function Basis(context) { + this._context = context; +} + +Basis.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 3: point$3(this, this._x1, this._y1); // proceed + case 2: this._context.lineTo(this._x1, this._y1); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basis(context) { + return new Basis(context); +} + +function BasisClosed(context) { + this._context = context; +} + +BasisClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x2, this._y2); + this._context.closePath(); + break; + } + case 2: { + this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); + this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x2, this._y2); + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x2 = x, this._y2 = y; break; + case 1: this._point = 2; this._x3 = x, this._y3 = y; break; + case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basisClosed(context) { + return new BasisClosed(context); +} + +function BasisOpen(context) { + this._context = context; +} + +BasisOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; + case 3: this._point = 4; // proceed + default: point$3(this, x, y); break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; + +function basisOpen(context) { + return new BasisOpen(context); +} + +class Bump { + constructor(context, x) { + this._context = context; + this._x = x; + } + areaStart() { + this._line = 0; + } + areaEnd() { + this._line = NaN; + } + lineStart() { + this._point = 0; + } + lineEnd() { + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + } + point(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: { + this._point = 1; + if (this._line) this._context.lineTo(x, y); + else this._context.moveTo(x, y); + break; + } + case 1: this._point = 2; // proceed + default: { + if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y); + else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y); + break; + } + } + this._x0 = x, this._y0 = y; + } +} + +function bumpX(context) { + return new Bump(context, true); +} + +function bumpY(context) { + return new Bump(context, false); +} + +function Bundle(context, beta) { + this._basis = new Basis(context); + this._beta = beta; +} + +Bundle.prototype = { + lineStart: function() { + this._x = []; + this._y = []; + this._basis.lineStart(); + }, + lineEnd: function() { + var x = this._x, + y = this._y, + j = x.length - 1; + + if (j > 0) { + var x0 = x[0], + y0 = y[0], + dx = x[j] - x0, + dy = y[j] - y0, + i = -1, + t; + + while (++i <= j) { + t = i / j; + this._basis.point( + this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), + this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) + ); + } + } + + this._x = this._y = null; + this._basis.lineEnd(); + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +var bundle = (function custom(beta) { + + function bundle(context) { + return beta === 1 ? new Basis(context) : new Bundle(context, beta); + } + + bundle.beta = function(beta) { + return custom(+beta); + }; + + return bundle; +})(0.85); + +function point$2(that, x, y) { + that._context.bezierCurveTo( + that._x1 + that._k * (that._x2 - that._x0), + that._y1 + that._k * (that._y2 - that._y0), + that._x2 + that._k * (that._x1 - x), + that._y2 + that._k * (that._y1 - y), + that._x2, + that._y2 + ); +} + +function Cardinal(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +Cardinal.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x2, this._y2); break; + case 3: point$2(this, this._x1, this._y1); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; this._x1 = x, this._y1 = y; break; + case 2: this._point = 3; // proceed + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinal = (function custom(tension) { + + function cardinal(context) { + return new Cardinal(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalClosed(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinalClosed = (function custom(tension) { + + function cardinal(context) { + return new CardinalClosed(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function CardinalOpen(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} + +CardinalOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; + case 3: this._point = 4; // proceed + default: point$2(this, x, y); break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var cardinalOpen = (function custom(tension) { + + function cardinal(context) { + return new CardinalOpen(context, tension); + } + + cardinal.tension = function(tension) { + return custom(+tension); + }; + + return cardinal; +})(0); + +function point$1(that, x, y) { + var x1 = that._x1, + y1 = that._y1, + x2 = that._x2, + y2 = that._y2; + + if (that._l01_a > epsilon) { + var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, + n = 3 * that._l01_a * (that._l01_a + that._l12_a); + x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; + y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; + } + + if (that._l23_a > epsilon) { + var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, + m = 3 * that._l23_a * (that._l23_a + that._l12_a); + x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; + y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; + } + + that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); +} + +function CatmullRom(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRom.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x2, this._y2); break; + case 3: this.point(this._x2, this._y2); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; // proceed + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRom = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function CatmullRomClosed(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = + this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; this._x3 = x, this._y3 = y; break; + case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; + case 2: this._point = 3; this._x5 = x, this._y5 = y; break; + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRomClosed = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function CatmullRomOpen(context, alpha) { + this._context = context; + this._alpha = alpha; +} + +CatmullRomOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = + this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = + this._l01_2a = this._l12_2a = this._l23_2a = + this._point = 0; + }, + lineEnd: function() { + if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + + if (this._point) { + var x23 = this._x2 - x, + y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + + switch (this._point) { + case 0: this._point = 1; break; + case 1: this._point = 2; break; + case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; + case 3: this._point = 4; // proceed + default: point$1(this, x, y); break; + } + + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; + +var catmullRomOpen = (function custom(alpha) { + + function catmullRom(context) { + return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); + } + + catmullRom.alpha = function(alpha) { + return custom(+alpha); + }; + + return catmullRom; +})(0.5); + +function LinearClosed(context) { + this._context = context; +} + +LinearClosed.prototype = { + areaStart: noop, + areaEnd: noop, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._point) this._context.closePath(); + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) this._context.lineTo(x, y); + else this._point = 1, this._context.moveTo(x, y); + } +}; + +function linearClosed(context) { + return new LinearClosed(context); +} + +function sign(x) { + return x < 0 ? -1 : 1; +} + +// Calculate the slopes of the tangents (Hermite-type interpolation) based on +// the following paper: Steffen, M. 1990. A Simple Method for Monotonic +// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. +// NOV(II), P. 443, 1990. +function slope3(that, x2, y2) { + var h0 = that._x1 - that._x0, + h1 = x2 - that._x1, + s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), + s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), + p = (s0 * h1 + s1 * h0) / (h0 + h1); + return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +} + +// Calculate a one-sided slope. +function slope2(that, t) { + var h = that._x1 - that._x0; + return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +} + +// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations +// "you can express cubic Hermite interpolation in terms of cubic Bézier curves +// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". +function point(that, t0, t1) { + var x0 = that._x0, + y0 = that._y0, + x1 = that._x1, + y1 = that._y1, + dx = (x1 - x0) / 3; + that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +} + +function MonotoneX(context) { + this._context = context; +} + +MonotoneX.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = + this._y0 = this._y1 = + this._t0 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: this._context.lineTo(this._x1, this._y1); break; + case 3: point(this, this._t0, slope2(this, this._t0)); break; + } + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + var t1 = NaN; + + x = +x, y = +y; + if (x === this._x1 && y === this._y1) return; // Ignore coincident points. + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; break; + case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break; + default: point(this, this._t0, t1 = slope3(this, x, y)); break; + } + + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + this._t0 = t1; + } +}; + +function MonotoneY(context) { + this._context = new ReflectContext(context); +} + +(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { + MonotoneX.prototype.point.call(this, y, x); +}; + +function ReflectContext(context) { + this._context = context; +} + +ReflectContext.prototype = { + moveTo: function(x, y) { this._context.moveTo(y, x); }, + closePath: function() { this._context.closePath(); }, + lineTo: function(x, y) { this._context.lineTo(y, x); }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } +}; + +function monotoneX(context) { + return new MonotoneX(context); +} + +function monotoneY(context) { + return new MonotoneY(context); +} + +function Natural(context) { + this._context = context; +} + +Natural.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = []; + this._y = []; + }, + lineEnd: function() { + var x = this._x, + y = this._y, + n = x.length; + + if (n) { + this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); + if (n === 2) { + this._context.lineTo(x[1], y[1]); + } else { + var px = controlPoints(x), + py = controlPoints(y); + for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { + this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); + } + } + } + + if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); + this._line = 1 - this._line; + this._x = this._y = null; + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; + +// See https://www.particleincell.com/2012/bezier-splines/ for derivation. +function controlPoints(x) { + var i, + n = x.length - 1, + m, + a = new Array(n), + b = new Array(n), + r = new Array(n); + a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; + for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; + a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; + for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; + a[n - 1] = r[n - 1] / b[n - 1]; + for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; + b[n - 1] = (x[n] + a[n - 1]) / 2; + for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; + return [a, b]; +} + +function natural(context) { + return new Natural(context); +} + +function Step(context, t) { + this._context = context; + this._t = t; +} + +Step.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN; + this._point = 0; + }, + lineEnd: function() { + if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); + if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); + if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; + case 1: this._point = 2; // proceed + default: { + if (this._t <= 0) { + this._context.lineTo(this._x, y); + this._context.lineTo(x, y); + } else { + var x1 = this._x * (1 - this._t) + x * this._t; + this._context.lineTo(x1, this._y); + this._context.lineTo(x1, y); + } + break; + } + } + this._x = x, this._y = y; + } +}; + +function step(context) { + return new Step(context, 0.5); +} + +function stepBefore(context) { + return new Step(context, 0); +} + +function stepAfter(context) { + return new Step(context, 1); +} + +function none$1(series, order) { + if (!((n = series.length) > 1)) return; + for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { + s0 = s1, s1 = series[order[i]]; + for (j = 0; j < m; ++j) { + s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; + } + } +} + +function none(series) { + var n = series.length, o = new Array(n); + while (--n >= 0) o[n] = n; + return o; +} + +function stackValue(d, key) { + return d[key]; +} + +function stackSeries(key) { + const series = []; + series.key = key; + return series; +} + +function stack() { + var keys = constant$1([]), + order = none, + offset = none$1, + value = stackValue; + + function stack(data) { + var sz = Array.from(keys.apply(this, arguments), stackSeries), + i, n = sz.length, j = -1, + oz; + + for (const d of data) { + for (i = 0, ++j; i < n; ++i) { + (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d; + } + } + + for (i = 0, oz = array(order(sz)); i < n; ++i) { + sz[oz[i]].index = i; + } + + offset(sz, oz); + return sz; + } + + stack.keys = function(_) { + return arguments.length ? (keys = typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : keys; + }; + + stack.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), stack) : value; + }; + + stack.order = function(_) { + return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : order; + }; + + stack.offset = function(_) { + return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset; + }; + + return stack; +} + +function expand(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { + for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; + if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; + } + none$1(series, order); +} + +function diverging(series, order) { + if (!((n = series.length) > 0)) return; + for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { + for (yp = yn = 0, i = 0; i < n; ++i) { + if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { + d[0] = yp, d[1] = yp += dy; + } else if (dy < 0) { + d[1] = yn, d[0] = yn += dy; + } else { + d[0] = 0, d[1] = dy; + } + } + } +} + +function silhouette(series, order) { + if (!((n = series.length) > 0)) return; + for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { + for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; + s0[j][1] += s0[j][0] = -y / 2; + } + none$1(series, order); +} + +function wiggle(series, order) { + if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; + for (var y = 0, j = 1, s0, m, n; j < m; ++j) { + for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { + var si = series[order[i]], + sij0 = si[j][1] || 0, + sij1 = si[j - 1][1] || 0, + s3 = (sij0 - sij1) / 2; + for (var k = 0; k < i; ++k) { + var sk = series[order[k]], + skj0 = sk[j][1] || 0, + skj1 = sk[j - 1][1] || 0; + s3 += skj0 - skj1; + } + s1 += sij0, s2 += s3 * sij0; + } + s0[j - 1][1] += s0[j - 1][0] = y; + if (s1) y -= s2 / s1; + } + s0[j - 1][1] += s0[j - 1][0] = y; + none$1(series, order); +} + +function appearance(series) { + var peaks = series.map(peak); + return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); +} + +function peak(series) { + var i = -1, j = 0, n = series.length, vi, vj = -Infinity; + while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; + return j; +} + +function ascending(series) { + var sums = series.map(sum); + return none(series).sort(function(a, b) { return sums[a] - sums[b]; }); +} + +function sum(series) { + var s = 0, i = -1, n = series.length, v; + while (++i < n) if (v = +series[i][1]) s += v; + return s; +} + +function descending(series) { + return ascending(series).reverse(); +} + +function insideOut(series) { + var n = series.length, + i, + j, + sums = series.map(sum), + order = appearance(series), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + + for (i = 0; i < n; ++i) { + j = order[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + + return bottoms.reverse().concat(tops); +} + +function reverse(series) { + return none(series).reverse(); +} + +var constant = x => () => x; + +function ZoomEvent(type, { + sourceEvent, + target, + transform, + dispatch +}) { + Object.defineProperties(this, { + type: {value: type, enumerable: true, configurable: true}, + sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, + target: {value: target, enumerable: true, configurable: true}, + transform: {value: transform, enumerable: true, configurable: true}, + _: {value: dispatch} + }); +} + +function Transform(k, x, y) { + this.k = k; + this.x = x; + this.y = y; +} + +Transform.prototype = { + constructor: Transform, + scale: function(k) { + return k === 1 ? this : new Transform(this.k * k, this.x, this.y); + }, + translate: function(x, y) { + return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); + }, + apply: function(point) { + return [point[0] * this.k + this.x, point[1] * this.k + this.y]; + }, + applyX: function(x) { + return x * this.k + this.x; + }, + applyY: function(y) { + return y * this.k + this.y; + }, + invert: function(location) { + return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; + }, + invertX: function(x) { + return (x - this.x) / this.k; + }, + invertY: function(y) { + return (y - this.y) / this.k; + }, + rescaleX: function(x) { + return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); + }, + rescaleY: function(y) { + return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; + +var identity = new Transform(1, 0, 0); + +transform.prototype = Transform.prototype; + +function transform(node) { + while (!node.__zoom) if (!(node = node.parentNode)) return identity; + return node.__zoom; +} + +function nopropagation(event) { + event.stopImmediatePropagation(); +} + +function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +// Ignore right-click, since that should open the context menu. +// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event +function defaultFilter(event) { + return (!event.ctrlKey || event.type === 'wheel') && !event.button; +} + +function defaultExtent() { + var e = this; + if (e instanceof SVGElement) { + e = e.ownerSVGElement || e; + if (e.hasAttribute("viewBox")) { + e = e.viewBox.baseVal; + return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; + } + return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; + } + return [[0, 0], [e.clientWidth, e.clientHeight]]; +} + +function defaultTransform() { + return this.__zoom || identity; +} + +function defaultWheelDelta(event) { + return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1); +} + +function defaultTouchable() { + return navigator.maxTouchPoints || ("ontouchstart" in this); +} + +function defaultConstrain(transform, extent, translateExtent) { + var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], + dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], + dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], + dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1]; + return transform.translate( + dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), + dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) + ); +} + +function zoom() { + var filter = defaultFilter, + extent = defaultExtent, + constrain = defaultConstrain, + wheelDelta = defaultWheelDelta, + touchable = defaultTouchable, + scaleExtent = [0, Infinity], + translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], + duration = 250, + interpolate = interpolateZoom, + listeners = dispatch("start", "zoom", "end"), + touchstarting, + touchfirst, + touchending, + touchDelay = 500, + wheelDelay = 150, + clickDistance2 = 0, + tapDistance = 10; + + function zoom(selection) { + selection + .property("__zoom", defaultTransform) + .on("wheel.zoom", wheeled) + .on("mousedown.zoom", mousedowned) + .on("dblclick.zoom", dblclicked) + .filter(touchable) + .on("touchstart.zoom", touchstarted) + .on("touchmove.zoom", touchmoved) + .on("touchend.zoom touchcancel.zoom", touchended) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + + zoom.transform = function(collection, transform, point, event) { + var selection = collection.selection ? collection.selection() : collection; + selection.property("__zoom", defaultTransform); + if (collection !== selection) { + schedule(collection, transform, point, event); + } else { + selection.interrupt().each(function() { + gesture(this, arguments) + .event(event) + .start() + .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform) + .end(); + }); + } + }; + + zoom.scaleBy = function(selection, k, p, event) { + zoom.scaleTo(selection, function() { + var k0 = this.__zoom.k, + k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return k0 * k1; + }, p, event); + }; + + zoom.scaleTo = function(selection, k, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), + t0 = this.__zoom, + p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, + p1 = t0.invert(p0), + k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); + }, p, event); + }; + + zoom.translateBy = function(selection, x, y, event) { + zoom.transform(selection, function() { + return constrain(this.__zoom.translate( + typeof x === "function" ? x.apply(this, arguments) : x, + typeof y === "function" ? y.apply(this, arguments) : y + ), extent.apply(this, arguments), translateExtent); + }, null, event); + }; + + zoom.translateTo = function(selection, x, y, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), + t = this.__zoom, + p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; + return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate( + typeof x === "function" ? -x.apply(this, arguments) : -x, + typeof y === "function" ? -y.apply(this, arguments) : -y + ), e, translateExtent); + }, p, event); + }; + + function scale(transform, k) { + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); + return k === transform.k ? transform : new Transform(k, transform.x, transform.y); + } + + function translate(transform, p0, p1) { + var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k; + return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y); + } + + function centroid(extent) { + return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2]; + } + + function schedule(transition, transform, point, event) { + transition + .on("start.zoom", function() { gesture(this, arguments).event(event).start(); }) + .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); }) + .tween("zoom", function() { + var that = this, + args = arguments, + g = gesture(that, args).event(event), + e = extent.apply(that, args), + p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, + w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), + a = that.__zoom, + b = typeof transform === "function" ? transform.apply(that, args) : transform, + i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); + return function(t) { + if (t === 1) t = b; // Avoid rounding error on end. + else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); } + g.zoom(null, t); + }; + }); + } + + function gesture(that, args, clean) { + return (!clean && that.__zooming) || new Gesture(that, args); + } + + function Gesture(that, args) { + this.that = that; + this.args = args; + this.active = 0; + this.sourceEvent = null; + this.extent = extent.apply(that, args); + this.taps = 0; + } + + Gesture.prototype = { + event: function(event) { + if (event) this.sourceEvent = event; + return this; + }, + start: function() { + if (++this.active === 1) { + this.that.__zooming = this; + this.emit("start"); + } + return this; + }, + zoom: function(key, transform) { + if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]); + if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]); + if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]); + this.that.__zoom = transform; + this.emit("zoom"); + return this; + }, + end: function() { + if (--this.active === 0) { + delete this.that.__zooming; + this.emit("end"); + } + return this; + }, + emit: function(type) { + var d = select(this.that).datum(); + listeners.call( + type, + this.that, + new ZoomEvent(type, { + sourceEvent: this.sourceEvent, + target: zoom, + type, + transform: this.that.__zoom, + dispatch: listeners + }), + d + ); + } + }; + + function wheeled(event, ...args) { + if (!filter.apply(this, arguments)) return; + var g = gesture(this, args).event(event), + t = this.__zoom, + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), + p = pointer(event); + + // If the mouse is in the same location as before, reuse it. + // If there were recent wheel events, reset the wheel idle timeout. + if (g.wheel) { + if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { + g.mouse[1] = t.invert(g.mouse[0] = p); + } + clearTimeout(g.wheel); + } + + // If this wheel event won’t trigger a transform change, ignore it. + else if (t.k === k) return; + + // Otherwise, capture the mouse point and location at the start. + else { + g.mouse = [p, t.invert(p)]; + interrupt(this); + g.start(); + } + + noevent(event); + g.wheel = setTimeout(wheelidled, wheelDelay); + g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); + + function wheelidled() { + g.wheel = null; + g.end(); + } + } + + function mousedowned(event, ...args) { + if (touchending || !filter.apply(this, arguments)) return; + var g = gesture(this, args, true).event(event), + v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), + p = pointer(event, currentTarget), + currentTarget = event.currentTarget, + x0 = event.clientX, + y0 = event.clientY; + + dragDisable(event.view); + nopropagation(event); + g.mouse = [p, this.__zoom.invert(p)]; + interrupt(this); + g.start(); + + function mousemoved(event) { + noevent(event); + if (!g.moved) { + var dx = event.clientX - x0, dy = event.clientY - y0; + g.moved = dx * dx + dy * dy > clickDistance2; + } + g.event(event) + .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent)); + } + + function mouseupped(event) { + v.on("mousemove.zoom mouseup.zoom", null); + yesdrag(event.view, g.moved); + noevent(event); + g.event(event).end(); + } + } + + function dblclicked(event, ...args) { + if (!filter.apply(this, arguments)) return; + var t0 = this.__zoom, + p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), + p1 = t0.invert(p0), + k1 = t0.k * (event.shiftKey ? 0.5 : 2), + t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); + + noevent(event); + if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event); + else select(this).call(zoom.transform, t1, p0, event); + } + + function touchstarted(event, ...args) { + if (!filter.apply(this, arguments)) return; + var touches = event.touches, + n = touches.length, + g = gesture(this, args, event.changedTouches.length === n).event(event), + started, i, t, p; + + nopropagation(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer(t, this); + p = [p, this.__zoom.invert(p), t.identifier]; + if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; + else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0; + } + + if (touchstarting) touchstarting = clearTimeout(touchstarting); + + if (started) { + if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay); + interrupt(this); + g.start(); + } + } + + function touchmoved(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), + touches = event.changedTouches, + n = touches.length, i, t, p, l; + + noevent(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer(t, this); + if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p; + else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p; + } + t = g.that.__zoom; + if (g.touch1) { + var p0 = g.touch0[0], l0 = g.touch0[1], + p1 = g.touch1[0], l1 = g.touch1[1], + dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, + dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; + t = scale(t, Math.sqrt(dp / dl)); + p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + } + else if (g.touch0) p = g.touch0[0], l = g.touch0[1]; + else return; + + g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); + } + + function touchended(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), + touches = event.changedTouches, + n = touches.length, i, t; + + nopropagation(event); + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { touchending = null; }, touchDelay); + for (i = 0; i < n; ++i) { + t = touches[i]; + if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0; + else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1; + } + if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1; + if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else { + g.end(); + // If this was a dbltap, reroute to the (optional) dblclick.zoom handler. + if (g.taps === 2) { + t = pointer(t, this); + if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { + var p = select(this).on("dblclick.zoom"); + if (p) p.apply(this, arguments); + } + } + } + } + + zoom.wheelDelta = function(_) { + return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta; + }; + + zoom.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter; + }; + + zoom.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable; + }; + + zoom.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; + }; + + zoom.scaleExtent = function(_) { + return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; + }; + + zoom.translateExtent = function(_) { + return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; + }; + + zoom.constrain = function(_) { + return arguments.length ? (constrain = _, zoom) : constrain; + }; + + zoom.duration = function(_) { + return arguments.length ? (duration = +_, zoom) : duration; + }; + + zoom.interpolate = function(_) { + return arguments.length ? (interpolate = _, zoom) : interpolate; + }; + + zoom.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? zoom : value; + }; + + zoom.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); + }; + + zoom.tapDistance = function(_) { + return arguments.length ? (tapDistance = +_, zoom) : tapDistance; + }; + + return zoom; +} + +exports.Adder = Adder; +exports.Delaunay = Delaunay; +exports.FormatSpecifier = FormatSpecifier; +exports.InternMap = InternMap; +exports.InternSet = InternSet; +exports.Voronoi = Voronoi; +exports.active = active; +exports.arc = arc; +exports.area = area; +exports.areaRadial = areaRadial; +exports.ascending = ascending$3; +exports.autoType = autoType; +exports.axisBottom = axisBottom; +exports.axisLeft = axisLeft; +exports.axisRight = axisRight; +exports.axisTop = axisTop; +exports.bin = bin; +exports.bisect = bisectRight; +exports.bisectCenter = bisectCenter; +exports.bisectLeft = bisectLeft; +exports.bisectRight = bisectRight; +exports.bisector = bisector; +exports.blob = blob; +exports.brush = brush; +exports.brushSelection = brushSelection; +exports.brushX = brushX; +exports.brushY = brushY; +exports.buffer = buffer; +exports.chord = chord; +exports.chordDirected = chordDirected; +exports.chordTranspose = chordTranspose; +exports.cluster = cluster; +exports.color = color; +exports.contourDensity = density; +exports.contours = contours; +exports.count = count$1; +exports.create = create$1; +exports.creator = creator; +exports.cross = cross$2; +exports.csv = csv; +exports.csvFormat = csvFormat; +exports.csvFormatBody = csvFormatBody; +exports.csvFormatRow = csvFormatRow; +exports.csvFormatRows = csvFormatRows; +exports.csvFormatValue = csvFormatValue; +exports.csvParse = csvParse; +exports.csvParseRows = csvParseRows; +exports.cubehelix = cubehelix$3; +exports.cumsum = cumsum; +exports.curveBasis = basis; +exports.curveBasisClosed = basisClosed; +exports.curveBasisOpen = basisOpen; +exports.curveBumpX = bumpX; +exports.curveBumpY = bumpY; +exports.curveBundle = bundle; +exports.curveCardinal = cardinal; +exports.curveCardinalClosed = cardinalClosed; +exports.curveCardinalOpen = cardinalOpen; +exports.curveCatmullRom = catmullRom; +exports.curveCatmullRomClosed = catmullRomClosed; +exports.curveCatmullRomOpen = catmullRomOpen; +exports.curveLinear = curveLinear; +exports.curveLinearClosed = linearClosed; +exports.curveMonotoneX = monotoneX; +exports.curveMonotoneY = monotoneY; +exports.curveNatural = natural; +exports.curveStep = step; +exports.curveStepAfter = stepAfter; +exports.curveStepBefore = stepBefore; +exports.descending = descending$2; +exports.deviation = deviation; +exports.difference = difference; +exports.disjoint = disjoint; +exports.dispatch = dispatch; +exports.drag = drag; +exports.dragDisable = dragDisable; +exports.dragEnable = yesdrag; +exports.dsv = dsv; +exports.dsvFormat = dsvFormat; +exports.easeBack = backInOut; +exports.easeBackIn = backIn; +exports.easeBackInOut = backInOut; +exports.easeBackOut = backOut; +exports.easeBounce = bounceOut; +exports.easeBounceIn = bounceIn; +exports.easeBounceInOut = bounceInOut; +exports.easeBounceOut = bounceOut; +exports.easeCircle = circleInOut; +exports.easeCircleIn = circleIn; +exports.easeCircleInOut = circleInOut; +exports.easeCircleOut = circleOut; +exports.easeCubic = cubicInOut; +exports.easeCubicIn = cubicIn; +exports.easeCubicInOut = cubicInOut; +exports.easeCubicOut = cubicOut; +exports.easeElastic = elasticOut; +exports.easeElasticIn = elasticIn; +exports.easeElasticInOut = elasticInOut; +exports.easeElasticOut = elasticOut; +exports.easeExp = expInOut; +exports.easeExpIn = expIn; +exports.easeExpInOut = expInOut; +exports.easeExpOut = expOut; +exports.easeLinear = linear$1; +exports.easePoly = polyInOut; +exports.easePolyIn = polyIn; +exports.easePolyInOut = polyInOut; +exports.easePolyOut = polyOut; +exports.easeQuad = quadInOut; +exports.easeQuadIn = quadIn; +exports.easeQuadInOut = quadInOut; +exports.easeQuadOut = quadOut; +exports.easeSin = sinInOut; +exports.easeSinIn = sinIn; +exports.easeSinInOut = sinInOut; +exports.easeSinOut = sinOut; +exports.every = every; +exports.extent = extent$1; +exports.fcumsum = fcumsum; +exports.filter = filter$1; +exports.forceCenter = center; +exports.forceCollide = collide; +exports.forceLink = link$2; +exports.forceManyBody = manyBody; +exports.forceRadial = radial$1; +exports.forceSimulation = simulation; +exports.forceX = x$1; +exports.forceY = y$1; +exports.formatDefaultLocale = defaultLocale$1; +exports.formatLocale = formatLocale$1; +exports.formatSpecifier = formatSpecifier; +exports.fsum = fsum; +exports.geoAlbers = albers; +exports.geoAlbersUsa = albersUsa; +exports.geoArea = area$2; +exports.geoAzimuthalEqualArea = azimuthalEqualArea; +exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw; +exports.geoAzimuthalEquidistant = azimuthalEquidistant; +exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw; +exports.geoBounds = bounds; +exports.geoCentroid = centroid$1; +exports.geoCircle = circle$2; +exports.geoClipAntimeridian = clipAntimeridian; +exports.geoClipCircle = clipCircle; +exports.geoClipExtent = extent; +exports.geoClipRectangle = clipRectangle; +exports.geoConicConformal = conicConformal; +exports.geoConicConformalRaw = conicConformalRaw; +exports.geoConicEqualArea = conicEqualArea; +exports.geoConicEqualAreaRaw = conicEqualAreaRaw; +exports.geoConicEquidistant = conicEquidistant; +exports.geoConicEquidistantRaw = conicEquidistantRaw; +exports.geoContains = contains$1; +exports.geoDistance = distance; +exports.geoEqualEarth = equalEarth; +exports.geoEqualEarthRaw = equalEarthRaw; +exports.geoEquirectangular = equirectangular; +exports.geoEquirectangularRaw = equirectangularRaw; +exports.geoGnomonic = gnomonic; +exports.geoGnomonicRaw = gnomonicRaw; +exports.geoGraticule = graticule; +exports.geoGraticule10 = graticule10; +exports.geoIdentity = identity$4; +exports.geoInterpolate = interpolate; +exports.geoLength = length$1; +exports.geoMercator = mercator; +exports.geoMercatorRaw = mercatorRaw; +exports.geoNaturalEarth1 = naturalEarth1; +exports.geoNaturalEarth1Raw = naturalEarth1Raw; +exports.geoOrthographic = orthographic; +exports.geoOrthographicRaw = orthographicRaw; +exports.geoPath = index$2; +exports.geoProjection = projection; +exports.geoProjectionMutator = projectionMutator; +exports.geoRotation = rotation; +exports.geoStereographic = stereographic; +exports.geoStereographicRaw = stereographicRaw; +exports.geoStream = geoStream; +exports.geoTransform = transform$1; +exports.geoTransverseMercator = transverseMercator; +exports.geoTransverseMercatorRaw = transverseMercatorRaw; +exports.gray = gray; +exports.greatest = greatest; +exports.greatestIndex = greatestIndex; +exports.group = group; +exports.groupSort = groupSort; +exports.groups = groups; +exports.hcl = hcl$2; +exports.hierarchy = hierarchy; +exports.histogram = bin; +exports.hsl = hsl$2; +exports.html = html; +exports.image = image; +exports.index = index$4; +exports.indexes = indexes; +exports.interpolate = interpolate$2; +exports.interpolateArray = array$3; +exports.interpolateBasis = basis$2; +exports.interpolateBasisClosed = basisClosed$1; +exports.interpolateBlues = Blues; +exports.interpolateBrBG = BrBG; +exports.interpolateBuGn = BuGn; +exports.interpolateBuPu = BuPu; +exports.interpolateCividis = cividis; +exports.interpolateCool = cool; +exports.interpolateCubehelix = cubehelix$2; +exports.interpolateCubehelixDefault = cubehelix; +exports.interpolateCubehelixLong = cubehelixLong; +exports.interpolateDate = date$1; +exports.interpolateDiscrete = discrete; +exports.interpolateGnBu = GnBu; +exports.interpolateGreens = Greens; +exports.interpolateGreys = Greys; +exports.interpolateHcl = hcl$1; +exports.interpolateHclLong = hclLong; +exports.interpolateHsl = hsl$1; +exports.interpolateHslLong = hslLong; +exports.interpolateHue = hue; +exports.interpolateInferno = inferno; +exports.interpolateLab = lab; +exports.interpolateMagma = magma; +exports.interpolateNumber = interpolateNumber; +exports.interpolateNumberArray = numberArray; +exports.interpolateObject = object$1; +exports.interpolateOrRd = OrRd; +exports.interpolateOranges = Oranges; +exports.interpolatePRGn = PRGn; +exports.interpolatePiYG = PiYG; +exports.interpolatePlasma = plasma; +exports.interpolatePuBu = PuBu; +exports.interpolatePuBuGn = PuBuGn; +exports.interpolatePuOr = PuOr; +exports.interpolatePuRd = PuRd; +exports.interpolatePurples = Purples; +exports.interpolateRainbow = rainbow; +exports.interpolateRdBu = RdBu; +exports.interpolateRdGy = RdGy; +exports.interpolateRdPu = RdPu; +exports.interpolateRdYlBu = RdYlBu; +exports.interpolateRdYlGn = RdYlGn; +exports.interpolateReds = Reds; +exports.interpolateRgb = interpolateRgb; +exports.interpolateRgbBasis = rgbBasis; +exports.interpolateRgbBasisClosed = rgbBasisClosed; +exports.interpolateRound = interpolateRound; +exports.interpolateSinebow = sinebow; +exports.interpolateSpectral = Spectral; +exports.interpolateString = interpolateString; +exports.interpolateTransformCss = interpolateTransformCss; +exports.interpolateTransformSvg = interpolateTransformSvg; +exports.interpolateTurbo = turbo; +exports.interpolateViridis = viridis; +exports.interpolateWarm = warm; +exports.interpolateYlGn = YlGn; +exports.interpolateYlGnBu = YlGnBu; +exports.interpolateYlOrBr = YlOrBr; +exports.interpolateYlOrRd = YlOrRd; +exports.interpolateZoom = interpolateZoom; +exports.interrupt = interrupt; +exports.intersection = intersection; +exports.interval = interval; +exports.isoFormat = formatIso; +exports.isoParse = parseIso; +exports.json = json; +exports.lab = lab$1; +exports.lch = lch; +exports.least = least; +exports.leastIndex = leastIndex; +exports.line = line; +exports.lineRadial = lineRadial$1; +exports.linkHorizontal = linkHorizontal; +exports.linkRadial = linkRadial; +exports.linkVertical = linkVertical; +exports.local = local$1; +exports.map = map$1; +exports.matcher = matcher; +exports.max = max$3; +exports.maxIndex = maxIndex; +exports.mean = mean; +exports.median = median; +exports.merge = merge; +exports.min = min$2; +exports.minIndex = minIndex; +exports.namespace = namespace; +exports.namespaces = namespaces; +exports.nice = nice$1; +exports.now = now; +exports.pack = index$1; +exports.packEnclose = enclose; +exports.packSiblings = siblings; +exports.pairs = pairs; +exports.partition = partition; +exports.path = path; +exports.permute = permute; +exports.pie = pie; +exports.piecewise = piecewise; +exports.pointRadial = pointRadial; +exports.pointer = pointer; +exports.pointers = pointers; +exports.polygonArea = area$1; +exports.polygonCentroid = centroid; +exports.polygonContains = contains; +exports.polygonHull = hull; +exports.polygonLength = length; +exports.precisionFixed = precisionFixed; +exports.precisionPrefix = precisionPrefix; +exports.precisionRound = precisionRound; +exports.quadtree = quadtree; +exports.quantile = quantile$1; +exports.quantileSorted = quantileSorted; +exports.quantize = quantize$1; +exports.quickselect = quickselect; +exports.radialArea = areaRadial; +exports.radialLine = lineRadial$1; +exports.randomBates = bates; +exports.randomBernoulli = bernoulli; +exports.randomBeta = beta; +exports.randomBinomial = binomial; +exports.randomCauchy = cauchy; +exports.randomExponential = exponential; +exports.randomGamma = gamma; +exports.randomGeometric = geometric; +exports.randomInt = int; +exports.randomIrwinHall = irwinHall; +exports.randomLcg = lcg; +exports.randomLogNormal = logNormal; +exports.randomLogistic = logistic; +exports.randomNormal = normal; +exports.randomPareto = pareto; +exports.randomPoisson = poisson; +exports.randomUniform = uniform; +exports.randomWeibull = weibull; +exports.range = sequence; +exports.reduce = reduce; +exports.reverse = reverse$1; +exports.rgb = rgb; +exports.ribbon = ribbon$1; +exports.ribbonArrow = ribbonArrow; +exports.rollup = rollup; +exports.rollups = rollups; +exports.scaleBand = band; +exports.scaleDiverging = diverging$1; +exports.scaleDivergingLog = divergingLog; +exports.scaleDivergingPow = divergingPow; +exports.scaleDivergingSqrt = divergingSqrt; +exports.scaleDivergingSymlog = divergingSymlog; +exports.scaleIdentity = identity$2; +exports.scaleImplicit = implicit; +exports.scaleLinear = linear; +exports.scaleLog = log; +exports.scaleOrdinal = ordinal; +exports.scalePoint = point$4; +exports.scalePow = pow; +exports.scaleQuantile = quantile; +exports.scaleQuantize = quantize; +exports.scaleRadial = radial; +exports.scaleSequential = sequential; +exports.scaleSequentialLog = sequentialLog; +exports.scaleSequentialPow = sequentialPow; +exports.scaleSequentialQuantile = sequentialQuantile; +exports.scaleSequentialSqrt = sequentialSqrt; +exports.scaleSequentialSymlog = sequentialSymlog; +exports.scaleSqrt = sqrt$1; +exports.scaleSymlog = symlog; +exports.scaleThreshold = threshold; +exports.scaleTime = time; +exports.scaleUtc = utcTime; +exports.scan = scan; +exports.schemeAccent = Accent; +exports.schemeBlues = scheme$5; +exports.schemeBrBG = scheme$q; +exports.schemeBuGn = scheme$h; +exports.schemeBuPu = scheme$g; +exports.schemeCategory10 = category10; +exports.schemeDark2 = Dark2; +exports.schemeGnBu = scheme$f; +exports.schemeGreens = scheme$4; +exports.schemeGreys = scheme$3; +exports.schemeOrRd = scheme$e; +exports.schemeOranges = scheme; +exports.schemePRGn = scheme$p; +exports.schemePaired = Paired; +exports.schemePastel1 = Pastel1; +exports.schemePastel2 = Pastel2; +exports.schemePiYG = scheme$o; +exports.schemePuBu = scheme$c; +exports.schemePuBuGn = scheme$d; +exports.schemePuOr = scheme$n; +exports.schemePuRd = scheme$b; +exports.schemePurples = scheme$2; +exports.schemeRdBu = scheme$m; +exports.schemeRdGy = scheme$l; +exports.schemeRdPu = scheme$a; +exports.schemeRdYlBu = scheme$k; +exports.schemeRdYlGn = scheme$j; +exports.schemeReds = scheme$1; +exports.schemeSet1 = Set1; +exports.schemeSet2 = Set2; +exports.schemeSet3 = Set3; +exports.schemeSpectral = scheme$i; +exports.schemeTableau10 = Tableau10; +exports.schemeYlGn = scheme$8; +exports.schemeYlGnBu = scheme$9; +exports.schemeYlOrBr = scheme$7; +exports.schemeYlOrRd = scheme$6; +exports.select = select; +exports.selectAll = selectAll; +exports.selection = selection; +exports.selector = selector; +exports.selectorAll = selectorAll; +exports.shuffle = shuffle$1; +exports.shuffler = shuffler; +exports.some = some; +exports.sort = sort; +exports.stack = stack; +exports.stackOffsetDiverging = diverging; +exports.stackOffsetExpand = expand; +exports.stackOffsetNone = none$1; +exports.stackOffsetSilhouette = silhouette; +exports.stackOffsetWiggle = wiggle; +exports.stackOrderAppearance = appearance; +exports.stackOrderAscending = ascending; +exports.stackOrderDescending = descending; +exports.stackOrderInsideOut = insideOut; +exports.stackOrderNone = none; +exports.stackOrderReverse = reverse; +exports.stratify = stratify; +exports.style = styleValue; +exports.subset = subset; +exports.sum = sum$1; +exports.superset = superset; +exports.svg = svg; +exports.symbol = symbol; +exports.symbolCircle = circle; +exports.symbolCross = cross; +exports.symbolDiamond = diamond; +exports.symbolSquare = square; +exports.symbolStar = star; +exports.symbolTriangle = triangle; +exports.symbolWye = wye; +exports.symbols = symbols; +exports.text = text; +exports.thresholdFreedmanDiaconis = freedmanDiaconis; +exports.thresholdScott = scott; +exports.thresholdSturges = thresholdSturges; +exports.tickFormat = tickFormat; +exports.tickIncrement = tickIncrement; +exports.tickStep = tickStep; +exports.ticks = ticks; +exports.timeDay = day; +exports.timeDays = days; +exports.timeFormatDefaultLocale = defaultLocale; +exports.timeFormatLocale = formatLocale; +exports.timeFriday = friday; +exports.timeFridays = fridays; +exports.timeHour = hour; +exports.timeHours = hours; +exports.timeInterval = newInterval; +exports.timeMillisecond = millisecond; +exports.timeMilliseconds = milliseconds; +exports.timeMinute = minute; +exports.timeMinutes = minutes; +exports.timeMonday = monday; +exports.timeMondays = mondays; +exports.timeMonth = month; +exports.timeMonths = months; +exports.timeSaturday = saturday; +exports.timeSaturdays = saturdays; +exports.timeSecond = second; +exports.timeSeconds = seconds; +exports.timeSunday = sunday; +exports.timeSundays = sundays; +exports.timeThursday = thursday; +exports.timeThursdays = thursdays; +exports.timeTickInterval = timeTickInterval; +exports.timeTicks = timeTicks; +exports.timeTuesday = tuesday; +exports.timeTuesdays = tuesdays; +exports.timeWednesday = wednesday; +exports.timeWednesdays = wednesdays; +exports.timeWeek = sunday; +exports.timeWeeks = sundays; +exports.timeYear = year; +exports.timeYears = years; +exports.timeout = timeout; +exports.timer = timer; +exports.timerFlush = timerFlush; +exports.transition = transition; +exports.transpose = transpose; +exports.tree = tree; +exports.treemap = index; +exports.treemapBinary = binary; +exports.treemapDice = treemapDice; +exports.treemapResquarify = resquarify; +exports.treemapSlice = treemapSlice; +exports.treemapSliceDice = sliceDice; +exports.treemapSquarify = squarify; +exports.tsv = tsv; +exports.tsvFormat = tsvFormat; +exports.tsvFormatBody = tsvFormatBody; +exports.tsvFormatRow = tsvFormatRow; +exports.tsvFormatRows = tsvFormatRows; +exports.tsvFormatValue = tsvFormatValue; +exports.tsvParse = tsvParse; +exports.tsvParseRows = tsvParseRows; +exports.union = union; +exports.utcDay = utcDay; +exports.utcDays = utcDays; +exports.utcFriday = utcFriday; +exports.utcFridays = utcFridays; +exports.utcHour = utcHour; +exports.utcHours = utcHours; +exports.utcMillisecond = millisecond; +exports.utcMilliseconds = milliseconds; +exports.utcMinute = utcMinute; +exports.utcMinutes = utcMinutes; +exports.utcMonday = utcMonday; +exports.utcMondays = utcMondays; +exports.utcMonth = utcMonth; +exports.utcMonths = utcMonths; +exports.utcSaturday = utcSaturday; +exports.utcSaturdays = utcSaturdays; +exports.utcSecond = second; +exports.utcSeconds = seconds; +exports.utcSunday = utcSunday; +exports.utcSundays = utcSundays; +exports.utcThursday = utcThursday; +exports.utcThursdays = utcThursdays; +exports.utcTickInterval = utcTickInterval; +exports.utcTicks = utcTicks; +exports.utcTuesday = utcTuesday; +exports.utcTuesdays = utcTuesdays; +exports.utcWednesday = utcWednesday; +exports.utcWednesdays = utcWednesdays; +exports.utcWeek = utcSunday; +exports.utcWeeks = utcSundays; +exports.utcYear = utcYear; +exports.utcYears = utcYears; +exports.variance = variance; +exports.version = version; +exports.window = defaultView; +exports.xml = xml; +exports.zip = zip; +exports.zoom = zoom; +exports.zoomIdentity = identity; +exports.zoomTransform = transform; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/gen/local/d3/dist/d3.min.js b/gen/local/d3/dist/d3.min.js new file mode 100644 index 00000000..05cd5cae --- /dev/null +++ b/gen/local/d3/dist/d3.min.js @@ -0,0 +1,2 @@ +// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}function e(t){let e=t,r=t;function i(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)<0?e=o+1:i=o}return e}return 1===t.length&&(e=(n,e)=>t(n)-e,r=function(t){return(e,r)=>n(t(e),r)}(t)),{left:i,center:function(t,n,r,o){null==r&&(r=0),null==o&&(o=t.length);const a=i(t,n,r,o-1);return a>r&&e(t[a-1],n)>-e(t[a],n)?a-1:a},right:function(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)>0?i=o:e=o+1}return e}}}function r(t){return null===t?NaN:+t}const i=e(n),o=i.right,a=i.left,u=e(r).center;function c(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function f(t){return 0|t.length}function s(t){return!(t>0)}function l(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function h(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function d(t,n){const e=h(t,n);return e?Math.sqrt(e):e}function p(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r=o&&(e=r=o):(e>o&&(e=o),r0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}class y extends Map{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(_(this,t))}has(t){return super.has(_(this,t))}set(t,n){return super.set(b(this,t),n)}delete(t){return super.delete(m(this,t))}}class v extends Set{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(_(this,t))}add(t){return super.add(b(this,t))}delete(t){return super.delete(m(this,t))}}function _({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function b({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function m({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(e),t.delete(r)),e}function x(t){return null!==t&&"object"==typeof t?t.valueOf():t}function w(t){return t}function M(t,...n){return S(t,w,w,n)}function A(t,n,...e){return S(t,w,n,e)}function T(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function S(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new y,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function E(t,n){return Array.from(n,(n=>t[n]))}function k(t,...e){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[r=n]=e;if(1===r.length||e.length>1){const i=Uint32Array.from(t,((t,n)=>n));return e.length>1?(e=e.map((n=>t.map(n))),i.sort(((t,r)=>{for(const i of e){const e=n(i[t],i[r]);if(e)return e}}))):(r=t.map(r),i.sort(((t,e)=>n(r[t],r[e])))),E(t,i)}return t.sort(r)}var N=Array.prototype.slice;function C(t){return function(){return t}}var P=Math.sqrt(50),z=Math.sqrt(10),D=Math.sqrt(2);function q(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n0){let e=Math.round(t/a),r=Math.round(n/a);for(e*an&&--r,o=new Array(i=r-e+1);++un&&--r,o=new Array(i=r-e+1);++u=0?(o>=P?10:o>=z?5:o>=D?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=P?10:o>=z?5:o>=D?2:1)}function F(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=P?i*=10:o>=z?i*=5:o>=D&&(i*=2),n0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function I(t){return Math.ceil(Math.log(c(t))/Math.LN2)+1}function U(){var t=w,n=p,e=I;function r(r){Array.isArray(r)||(r=Array.from(r));var i,a,u=r.length,c=new Array(u);for(i=0;i=l)if(t>=l&&n===p){const t=R(s,l,e);isFinite(t)&&(t>0?l=(Math.floor(l/t)+1)*t:t<0&&(l=(Math.ceil(l*-t)+1)/-t))}else h.pop()}for(var d=h.length;h[0]<=s;)h.shift(),--d;for(;h[d-1]>l;)h.pop(),--d;var g,y=new Array(d+1);for(i=0;i<=d;++i)(g=y[i]=[]).x0=i>0?h[i-1]:s,g.x1=i=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e=i)&&(e=i)}return e}function Y(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function L(t,e,r=0,i=t.length-1,o=n){for(;i>r;){if(i-r>600){const n=i-r+1,a=e-r+1,u=Math.log(n),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(n-c)/n)*(a-n/2<0?-1:1);L(t,e,Math.max(r,Math.floor(e-a*c/n+f)),Math.min(i,Math.floor(e+(n-a)*c/n+f)),o)}const n=t[e];let a=r,u=i;for(j(t,r,e),o(t[i],n)>0&&j(t,r,i);a0;)--u}0===o(t[r],n)?j(t,r,u):(++u,j(t,u,i)),u<=e&&(r=u+1),e<=u&&(i=u-1)}return t}function j(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function H(t,n,e){if(r=(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,e))).length){if((n=+n)<=0||r<2)return Y(t);if(n>=1)return B(t);var r,i=(r-1)*n,o=Math.floor(i),a=B(L(t,o).subarray(0,o+1));return a+(Y(t.subarray(o+1))-a)*(i-o)}}function X(t,n,e=r){if(i=t.length){if((n=+n)<=0||i<2)return+e(t[0],0,t);if(n>=1)return+e(t[i-1],i-1,t);var i,o=(i-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function G(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e=o)&&(e=o,r=i);return r}function V(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function $(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function W(t,n){return[t,n]}function Z(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r+t(n)}function st(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function lt(){return!this.__axis}function ht(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=1===t||4===t?-1:1,s=4===t||2===t?"x":"y",l=1===t||3===t?ut:ct;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):ot:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?st:ft)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),A=w.enter().append("g").attr("class","tick"),T=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(A),T=T.merge(A.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(A.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),T=T.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",at).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),A.attr("opacity",at).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",4===t||2===t?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),T.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(lt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=it.call(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:it.call(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:it.call(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}var dt={value:()=>{}};function pt(){for(var t,n=0,e=arguments.length,r={};n=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function vt(t,n){for(var e,r=0,i=t.length;r0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),mt.hasOwnProperty(n)?{space:mt[n],local:t}:t}function wt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===bt&&n.documentElement.namespaceURI===bt?n.createElement(t):n.createElementNS(e,t)}}function Mt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function At(t){var n=xt(t);return(n.local?Mt:wt)(n)}function Tt(){}function St(t){return null==t?Tt:function(){return this.querySelector(t)}}function Et(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function kt(){return[]}function Nt(t){return null==t?kt:function(){return this.querySelectorAll(t)}}function Ct(t){return function(){return this.matches(t)}}function Pt(t){return function(n){return n.matches(t)}}var zt=Array.prototype.find;function Dt(){return this.firstElementChild}var qt=Array.prototype.filter;function Rt(){return this.children}function Ft(t){return new Array(t.length)}function Ot(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function It(t){return function(){return t}}function Ut(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;un?1:t>=n?0:NaN}function jt(t){return function(){this.removeAttribute(t)}}function Ht(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xt(t,n){return function(){this.setAttribute(t,n)}}function Gt(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Vt(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function $t(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Wt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zt(t){return function(){this.style.removeProperty(t)}}function Kt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Qt(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function Jt(t,n){return t.style.getPropertyValue(n)||Wt(t).getComputedStyle(t,null).getPropertyValue(n)}function tn(t){return function(){delete this[t]}}function nn(t,n){return function(){this[t]=n}}function en(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function rn(t){return t.trim().split(/^|\s+/)}function on(t){return t.classList||new an(t)}function an(t){this._node=t,this._names=rn(t.getAttribute("class")||"")}function un(t,n){for(var e=on(t),r=-1,i=n.length;++r=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function Tn(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Cn=[null];function Pn(t,n){this._groups=t,this._parents=n}function zn(){return new Pn([[document.documentElement]],Cn)}function Dn(t){return"string"==typeof t?new Pn([[document.querySelector(t)]],[document.documentElement]):new Pn([[t]],Cn)}Pn.prototype=zn.prototype={constructor:Pn,select:function(t){"function"!=typeof t&&(t=St(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i=x&&(x=m+1);!(b=y[x])&&++x=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Lt);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?Zt:"function"==typeof n?Qt:Kt)(t,n,null==e?"":e)):Jt(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?tn:"function"==typeof n?en:nn)(t,n)):this.node()[t]},classed:function(t,n){var e=rn(t+"");if(arguments.length<2){for(var r=on(this.node()),i=-1,o=e.length;++i()=>t;function Hn(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:s}})}function Xn(t){return!t.ctrlKey&&!t.button}function Gn(){return this.parentNode}function Vn(t,n){return null==n?{x:t.x,y:t.y}:n}function $n(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Zn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Kn(){}Hn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Qn=.7,Jn=1/Qn,te="\\s*([+-]?\\d+)\\s*",ne="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",ee="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",re=/^#([0-9a-f]{3,8})$/,ie=new RegExp("^rgb\\("+[te,te,te]+"\\)$"),oe=new RegExp("^rgb\\("+[ee,ee,ee]+"\\)$"),ae=new RegExp("^rgba\\("+[te,te,te,ne]+"\\)$"),ue=new RegExp("^rgba\\("+[ee,ee,ee,ne]+"\\)$"),ce=new RegExp("^hsl\\("+[ne,ee,ee]+"\\)$"),fe=new RegExp("^hsla\\("+[ne,ee,ee,ne]+"\\)$"),se={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function le(){return this.rgb().formatHex()}function he(){return this.rgb().formatRgb()}function de(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=re.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?pe(n):3===e?new _e(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?ge(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?ge(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=ie.exec(t))?new _e(n[1],n[2],n[3],1):(n=oe.exec(t))?new _e(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=ae.exec(t))?ge(n[1],n[2],n[3],n[4]):(n=ue.exec(t))?ge(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=ce.exec(t))?we(n[1],n[2]/100,n[3]/100,1):(n=fe.exec(t))?we(n[1],n[2]/100,n[3]/100,n[4]):se.hasOwnProperty(t)?pe(se[t]):"transparent"===t?new _e(NaN,NaN,NaN,0):null}function pe(t){return new _e(t>>16&255,t>>8&255,255&t,1)}function ge(t,n,e,r){return r<=0&&(t=n=e=NaN),new _e(t,n,e,r)}function ye(t){return t instanceof Kn||(t=de(t)),t?new _e((t=t.rgb()).r,t.g,t.b,t.opacity):new _e}function ve(t,n,e,r){return 1===arguments.length?ye(t):new _e(t,n,e,null==r?1:r)}function _e(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function be(){return"#"+xe(this.r)+xe(this.g)+xe(this.b)}function me(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function xe(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function we(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Te(t,n,e,r)}function Me(t){if(t instanceof Te)return new Te(t.h,t.s,t.l,t.opacity);if(t instanceof Kn||(t=de(t)),!t)return new Te;if(t instanceof Te)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&c<1?0:a,new Te(a,u,c,t.opacity)}function Ae(t,n,e,r){return 1===arguments.length?Me(t):new Te(t,n,e,null==r?1:r)}function Te(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Se(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Wn(Kn,de,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:le,formatHex:le,formatHsl:function(){return Me(this).formatHsl()},formatRgb:he,toString:he}),Wn(_e,ve,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:be,formatHex:be,formatRgb:me,toString:me})),Wn(Te,Ae,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new Te(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new Te(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new _e(Se(t>=240?t-240:t+120,i,r),Se(t,i,r),Se(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const Ee=Math.PI/180,ke=180/Math.PI,Ne=.96422,Ce=.82521,Pe=4/29,ze=6/29,De=3*ze*ze;function qe(t){if(t instanceof Fe)return new Fe(t.l,t.a,t.b,t.opacity);if(t instanceof je)return He(t);t instanceof _e||(t=ye(t));var n,e,r=Be(t.r),i=Be(t.g),o=Be(t.b),a=Oe((.2225045*r+.7168786*i+.0606169*o)/1);return r===i&&i===o?n=e=a:(n=Oe((.4360747*r+.3850649*i+.1430804*o)/Ne),e=Oe((.0139322*r+.0971045*i+.7141733*o)/Ce)),new Fe(116*a-16,500*(n-a),200*(a-e),t.opacity)}function Re(t,n,e,r){return 1===arguments.length?qe(t):new Fe(t,n,e,null==r?1:r)}function Fe(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Oe(t){return t>.008856451679035631?Math.pow(t,1/3):t/De+Pe}function Ie(t){return t>ze?t*t*t:De*(t-Pe)}function Ue(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Be(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ye(t){if(t instanceof je)return new je(t.h,t.c,t.l,t.opacity);if(t instanceof Fe||(t=qe(t)),0===t.a&&0===t.b)return new je(NaN,0=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r()=>t;function ar(t,n){return function(e){return t+e*n}}function ur(t,n){var e=n-t;return e?ar(t,e>180||e<-180?e-360*Math.round(e/360):e):or(isNaN(t)?n:t)}function cr(t){return 1==(t=+t)?fr:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):or(isNaN(n)?e:n)}}function fr(t,n){var e=n-t;return e?ar(t,e):or(isNaN(t)?n:t)}var sr=function t(n){var e=cr(n);function r(t,n){var r=e((t=ve(t)).r,(n=ve(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=fr(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function lr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;eo&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:_r(e,r)})),o=xr.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:_r(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:_r(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:_r(t,e)},{i:u-2,x:_r(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e=0&&n._call.call(null,t),n=n._next;--Gr}function oi(){Zr=(Wr=Qr.now())+Kr,Gr=Vr=0;try{ii()}finally{Gr=0,function(){var t,n,e=Hr,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Hr=n);Xr=t,ui(r)}(),Zr=0}}function ai(){var t=Qr.now(),n=t-Wr;n>1e3&&(Kr-=n,Wr=t)}function ui(t){Gr||(Vr&&(Vr=clearTimeout(Vr)),t-Zr>24?(t<1/0&&(Vr=setTimeout(oi,t-Qr.now()-Kr)),$r&&($r=clearInterval($r))):($r||(Wr=Qr.now(),$r=setInterval(ai,1e3)),Gr=1,Jr(oi)))}function ci(t,n,e){var r=new ei;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}ei.prototype=ri.prototype={constructor:ei,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ti():+e)+(null==n?0:+n),this._next||Xr===this||(Xr?Xr._next=this:Hr=this,Xr=this),this._call=t,this._time=e,ui()},stop:function(){this._call&&(this._call=null,this._time=1/0,ui())}};var fi=pt("start","end","cancel","interrupt"),si=[];function li(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=1,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var f,s,l,h;if(1!==e.state)return c();for(f in i)if((h=i[f]).name===e.name){if(3===h.state)return ci(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+f0)throw new Error("too late; already scheduled");return e}function di(t,n){var e=pi(t,n);if(e.state>3)throw new Error("too late; already running");return e}function pi(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function gi(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function yi(t,n){var e,r;return function(){var i=di(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?hi:di;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}var Fi=zn.prototype.constructor;function Oi(t){return function(){this.style.removeProperty(t)}}function Ii(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Ui(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&Ii(t,o,e)),r}return o._value=n,o}function Bi(t){return function(n){this.textContent=t.call(this,n)}}function Yi(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&Bi(r)),n}return r._value=t,r}var Li=0;function ji(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Hi(t){return zn().transition(t)}function Xi(){return++Li}var Gi=zn.prototype;ji.prototype=Hi.prototype={constructor:ji,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=St(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a()=>t;function mo(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function xo(t){t.stopImmediatePropagation()}function wo(t){t.preventDefault(),t.stopImmediatePropagation()}var Mo={name:"drag"},Ao={name:"space"},To={name:"handle"},So={name:"center"};const{abs:Eo,max:ko,min:No}=Math;function Co(t){return[+t[0],+t[1]]}function Po(t){return[Co(t[0]),Co(t[1])]}var zo={name:"x",handles:["w","e"].map(Bo),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Do={name:"y",handles:["n","s"].map(Bo),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},qo={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Bo),input:function(t){return null==t?null:Po(t)},output:function(t){return t}},Ro={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Fo={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Oo={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Io={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Uo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Bo(t){return{type:t}}function Yo(t){return!t.ctrlKey&&!t.button}function Lo(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function jo(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ho(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Xo(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Go(t){var n,e=Lo,r=Yo,i=jo,o=!0,a=pt("start","brush","end"),u=6;function c(n){var e=n.property("__brush",g).selectAll(".overlay").data([Bo("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Ro.overlay).merge(e).each((function(){var t=Ho(this).extent;Dn(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),n.selectAll(".selection").data([Bo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Ro.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return Ro[t.type]})),n.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(){var t=Dn(this),n=Ho(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?n[1][0]-u/2:n[0][0]-u/2})).attr("y",(function(t){return"s"===t.type[0]?n[1][1]-u/2:n[0][1]-u/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+u:u})).attr("height",(function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+u:u}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new l(t,n,e):r}function l(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function h(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,a,u,c,l,h,d,p,g,y,v,_=this,b=e.target.__data__.type,m="selection"===(o&&e.metaKey?b="overlay":b)?Mo:o&&e.altKey?So:To,x=t===Do?null:Io[b],w=t===zo?null:Uo[b],M=Ho(_),A=M.extent,T=M.selection,S=A[0][0],E=A[0][1],k=A[1][0],N=A[1][1],C=0,P=0,z=x&&w&&o&&e.shiftKey,D=Array.from(e.touches||[e],(t=>{const n=t.identifier;return(t=In(t,_)).point0=t.slice(),t.identifier=n,t}));if("overlay"===b){T&&(g=!0);const n=[D[0],D[1]||D[0]];M.selection=T=[[i=t===Do?S:No(n[0][0],n[1][0]),u=t===zo?E:No(n[0][1],n[1][1])],[l=t===Do?k:ko(n[0][0],n[1][0]),d=t===zo?N:ko(n[0][1],n[1][1])]],D.length>1&&U()}else i=T[0][0],u=T[0][1],l=T[1][0],d=T[1][1];a=i,c=u,h=l,p=d;var q=Dn(_).attr("pointer-events","none"),R=q.selectAll(".overlay").attr("cursor",Ro[b]);gi(_);var F=s(_,arguments,!0).beforestart();if(e.touches)F.moved=I,F.ended=B;else{var O=Dn(e.view).on("mousemove.brush",I,!0).on("mouseup.brush",B,!0);o&&O.on("keydown.brush",Y,!0).on("keyup.brush",L,!0),Yn(e.view)}f.call(_),F.start(e,m.name)}function I(t){for(const n of t.changedTouches||[t])for(const t of D)t.identifier===n.identifier&&(t.cur=In(n,_));if(z&&!y&&!v&&1===D.length){const t=D[0];Eo(t.cur[0]-t[0])>Eo(t.cur[1]-t[1])?v=!0:y=!0}for(const t of D)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,wo(t),U(t)}function U(t){const n=D[0],e=n.point0;var r;switch(C=n[0]-e[0],P=n[1]-e[1],m){case Ao:case Mo:x&&(C=ko(S-i,No(k-l,C)),a=i+C,h=l+C),w&&(P=ko(E-u,No(N-d,P)),c=u+P,p=d+P);break;case To:D[1]?(x&&(a=ko(S,No(k,D[0][0])),h=ko(S,No(k,D[1][0])),x=1),w&&(c=ko(E,No(N,D[0][1])),p=ko(E,No(N,D[1][1])),w=1)):(x<0?(C=ko(S-i,No(k-i,C)),a=i+C,h=l):x>0&&(C=ko(S-l,No(k-l,C)),a=i,h=l+C),w<0?(P=ko(E-u,No(N-u,P)),c=u+P,p=d):w>0&&(P=ko(E-d,No(N-d,P)),c=u,p=d+P));break;case So:x&&(a=ko(S,No(k,i-C*x)),h=ko(S,No(k,l+C*x))),w&&(c=ko(E,No(N,u-P*w)),p=ko(E,No(N,d+P*w)))}h0&&(i=a-C),w<0?d=p-P:w>0&&(u=c-P),m=Ao,R.attr("cursor",Ro.selection),U());break;default:return}wo(t)}function L(t){switch(t.keyCode){case 16:z&&(y=v=z=!1,U());break;case 18:m===So&&(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To,U());break;case 32:m===Ao&&(t.altKey?(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=So):(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To),R.attr("cursor",Ro[b]),U());break;default:return}wo(t)}}function d(t){s(this,arguments).moved(t)}function p(t){s(this,arguments).ended(t)}function g(){var n=this.__brush||{selection:null};return n.extent=Po(e.apply(this,arguments)),n.dim=t,n}return c.move=function(n,e){n.tween?n.on("start.brush",(function(t){s(this,arguments).beforestart().start(t)})).on("interrupt.brush end.brush",(function(t){s(this,arguments).end(t)})).tween("brush",(function(){var n=this,r=n.__brush,i=s(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=Mr(o,a);function c(t){r.selection=1===t&&null===a?null:u(t),f.call(n),i.brush()}return null!==o&&null!==a?c:c(1)})):n.each((function(){var n=this,r=arguments,i=n.__brush,o=t.input("function"==typeof e?e.apply(n,r):e,i.extent),a=s(n,r).beforestart();gi(n),i.selection=null===o?null:o,f.call(n),a.start().brush().end()}))},c.clear=function(t){c.move(t,null)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=Dn(this.that).datum();a.call(n,this.that,new mo(n,{sourceEvent:e,target:c,selection:t.output(this.state.selection),mode:r,dispatch:a}),i)}},c.extent=function(t){return arguments.length?(e="function"==typeof t?t:bo(Po(t)),c):e},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:bo(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:bo(!!t),c):i},c.handleSize=function(t){return arguments.length?(u=+t,c):u},c.keyModifiers=function(t){return arguments.length?(o=!!t,c):o},c.on=function(){var t=a.on.apply(a,arguments);return t===a?c:t},c}var Vo=Math.abs,$o=Math.cos,Wo=Math.sin,Zo=Math.PI,Ko=Zo/2,Qo=2*Zo,Jo=Math.max,ta=1e-12;function na(t,n){return Array.from({length:n-t},((n,e)=>t+e))}function ea(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function ra(t,n){var e=0,r=null,i=null,o=null;function a(a){var u,c=a.length,f=new Array(c),s=na(0,c),l=new Array(c*c),h=new Array(c),d=0;a=Float64Array.from({length:c*c},n?(t,n)=>a[n%c][n/c|0]:(t,n)=>a[n/c|0][n%c]);for(let n=0;nr(f[t],f[n])));for(const e of s){const r=n;if(t){const t=na(1+~c,c).filter((t=>t<0?a[~t*c+e]:a[e*c+t]));i&&t.sort(((t,n)=>i(t<0?-a[~t*c+e]:a[e*c+t],n<0?-a[~n*c+e]:a[e*c+n])));for(const r of t)if(r<0){(l[~r*c+e]||(l[~r*c+e]={source:null,target:null})).target={index:e,startAngle:n,endAngle:n+=a[~r*c+e]*d,value:a[~r*c+e]}}else{(l[e*c+r]||(l[e*c+r]={source:null,target:null})).source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}else{const t=na(0,c).filter((t=>a[e*c+t]||a[t*c+e]));i&&t.sort(((t,n)=>i(a[e*c+t],a[e*c+n])));for(const r of t){let t;if(eaa)if(Math.abs(s*u-c*f)>aa&&i){var h=e-o,d=r-a,p=u*u+c*c,g=h*h+d*d,y=Math.sqrt(p),v=Math.sqrt(l),_=i*Math.tan((ia-Math.acos((p+l-g)/(2*y*v)))/2),b=_/v,m=_/y;Math.abs(b-1)>aa&&(this._+="L"+(t+b*f)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>f*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,o=!!o;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>aa||Math.abs(this._y1-f)>aa)&&(this._+="L"+c+","+f),e&&(l<0&&(l=l%oa+oa),l>ua?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=c)+","+(this._y1=f):l>aa&&(this._+="A"+e+","+e+",0,"+ +(l>=ia)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var sa=Array.prototype.slice;function la(t){return function(){return t}}function ha(t){return t.source}function da(t){return t.target}function pa(t){return t.radius}function ga(t){return t.startAngle}function ya(t){return t.endAngle}function va(){return 0}function _a(){return 10}function ba(t){var n=ha,e=da,r=pa,i=pa,o=ga,a=ya,u=va,c=null;function f(){var f,s=n.apply(this,arguments),l=e.apply(this,arguments),h=u.apply(this,arguments)/2,d=sa.call(arguments),p=+r.apply(this,(d[0]=s,d)),g=o.apply(this,d)-Ko,y=a.apply(this,d)-Ko,v=+i.apply(this,(d[0]=l,d)),_=o.apply(this,d)-Ko,b=a.apply(this,d)-Ko;if(c||(c=f=fa()),h>ta&&(Vo(y-g)>2*h+ta?y>g?(g+=h,y-=h):(g-=h,y+=h):g=y=(g+y)/2,Vo(b-_)>2*h+ta?b>_?(_+=h,b-=h):(_-=h,b+=h):_=b=(_+b)/2),c.moveTo(p*$o(g),p*Wo(g)),c.arc(0,0,p,g,y),g!==_||y!==b)if(t){var m=+t.apply(this,arguments),x=v-m,w=(_+b)/2;c.quadraticCurveTo(0,0,x*$o(_),x*Wo(_)),c.lineTo(v*$o(w),v*Wo(w)),c.lineTo(x*$o(b),x*Wo(b))}else c.quadraticCurveTo(0,0,v*$o(_),v*Wo(_)),c.arc(0,0,v,_,b);if(c.quadraticCurveTo(0,0,p*$o(g),p*Wo(g)),c.closePath(),f)return c=null,f+""||null}return t&&(f.headRadius=function(n){return arguments.length?(t="function"==typeof n?n:la(+n),f):t}),f.radius=function(t){return arguments.length?(r=i="function"==typeof t?t:la(+t),f):r},f.sourceRadius=function(t){return arguments.length?(r="function"==typeof t?t:la(+t),f):r},f.targetRadius=function(t){return arguments.length?(i="function"==typeof t?t:la(+t),f):i},f.startAngle=function(t){return arguments.length?(o="function"==typeof t?t:la(+t),f):o},f.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:la(+t),f):a},f.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:la(+t),f):u},f.source=function(t){return arguments.length?(n=t,f):n},f.target=function(t){return arguments.length?(e=t,f):e},f.context=function(t){return arguments.length?(c=null==t?null:t,f):c},f}var ma=Array.prototype.slice;function xa(t,n){return t-n}var wa=t=>()=>t;function Ma(t,n){for(var e,r=-1,i=n.length;++rr!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function Ta(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function Sa(){}var Ea=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ka(){var t=1,n=1,e=I,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(xa);else{var r=p(t),i=r[0],a=r[1];n=F(i,a,n),n=Z(Math.floor(i/n)*n,Math.floor(a/n)*n,n)}return n.map((function(n){return o(t,n)}))}function o(e,i){var o=[],u=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=e[0]>=r,Ea[f<<1].forEach(p);for(;++o=r,Ea[c|f<<1].forEach(p);Ea[f<<0].forEach(p);for(;++u=r,s=e[u*t]>=r,Ea[f<<1|s<<2].forEach(p);++o=r,l=s,s=e[u*t+o+1]>=r,Ea[c|f<<1|s<<2|l<<3].forEach(p);Ea[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,Ea[s<<2].forEach(p);for(;++o=r,Ea[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}Ea[s<<3].forEach(p)}(e,i,(function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n0?o.push([t]):u.push(t)})),u.forEach((function(t){for(var n,e=0,r=o.length;e0&&a0&&u=0&&o>=0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:Sa,i):r===u},i}function Na(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[u-o+a*r]),n.data[u-e+a*r]=c/Math.min(u+1,r-1+o-u,o))}function Ca(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=c/Math.min(u+1,i-1+o-u,o))}function Pa(t){return t[0]}function za(t){return t[1]}function Da(){return 1}const qa=Math.pow(2,-52),Ra=new Uint32Array(512);class Fa{static from(t,n=Ha,e=Xa){const r=t.length,i=new Float64Array(2*r);for(let o=0;o>1;if(n>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*n-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:e,_hullTri:r,_hullHash:i}=this,o=t.length>>1;let a=1/0,u=1/0,c=-1/0,f=-1/0;for(let n=0;nc&&(c=e),r>f&&(f=r),this._ids[n]=n}const s=(a+c)/2,l=(u+f)/2;let h,d,p,g=1/0;for(let n=0;n0&&(d=n,g=e)}let _=t[2*d],b=t[2*d+1],m=1/0;for(let n=0;nr&&(n[e++]=i,r=this._dists[i])}return this.hull=n.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Ua(y,v,_,b,x,w)){const t=d,n=_,e=b;d=p,_=x,b=w,p=t,x=n,w=e}const M=function(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c);return{x:t+(f*s-u*l)*h,y:n+(a*l-c*s)*h}}(y,v,_,b,x,w);this._cx=M.x,this._cy=M.y;for(let n=0;n0&&Math.abs(f-o)<=qa&&Math.abs(s-a)<=qa)continue;if(o=f,a=s,c===h||c===d||c===p)continue;let l=0;for(let t=0,n=this._hashKey(f,s);t0?3-e:1+e)/4}(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:e,coords:r}=this;let i=0,o=0;for(;;){const a=e[t],u=t-t%3;if(o=u+(t+2)%3,-1===a){if(0===i)break;t=Ra[--i];continue}const c=a-a%3,f=u+(t+1)%3,s=c+(a+2)%3,l=n[o],h=n[t],d=n[f],p=n[s];if(Ba(r[2*l],r[2*l+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){n[t]=p,n[a]=l;const r=e[s];if(-1===r){let n=this._hullStart;do{if(this._hullTri[n]===s){this._hullTri[n]=t;break}n=this._hullPrev[n]}while(n!==this._hullStart)}this._link(t,r),this._link(a,e[o]),this._link(o,s);const u=c+(a+1)%3;i=33306690738754716e-32*Math.abs(a+u)?a-u:0}function Ua(t,n,e,r,i,o){return(Ia(i,o,t,n,e,r)||Ia(t,n,e,r,i,o)||Ia(e,r,i,o,t,n))<0}function Ba(t,n,e,r,i,o,a,u){const c=t-a,f=n-u,s=e-a,l=r-u,h=i-a,d=o-u,p=s*s+l*l,g=h*h+d*d;return c*(l*g-p*d)-f*(s*g-p*h)+(c*c+f*f)*(s*d-l*h)<0}function Ya(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=(f*s-u*l)*h,p=(a*l-c*s)*h;return d*d+p*p}function La(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const r=t[i],o=n[r];let a=i-1;for(;a>=e&&n[t[a]]>o;)t[a+1]=t[a--];t[a+1]=r}else{let i=e+1,o=r;ja(t,e+r>>1,i),n[t[e]]>n[t[r]]&&ja(t,e,r),n[t[i]]>n[t[r]]&&ja(t,i,r),n[t[e]]>n[t[i]]&&ja(t,e,i);const a=t[i],u=n[a];for(;;){do{i++}while(n[t[i]]u);if(o=o-e?(La(t,n,i,r),La(t,n,e,o-1)):(La(t,n,e,o-1),La(t,n,i,r))}}function ja(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function Ha(t){return t[0]}function Xa(t){return t[1]}const Ga=1e-6;class Va{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,e){const r=(t=+t)+(e=+e),i=n=+n;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>Ga||Math.abs(this._y1-i)>Ga)&&(this._+="L"+r+","+i),e&&(this._+=`A${e},${e},0,1,1,${t-e},${n}A${e},${e},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,n,e,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+e}v${+r}h${-e}Z`}value(){return this._||null}}class $a{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class Wa{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this,i=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,r,o=0,a=0,u=e.length;o1;)i-=2;for(let t=2;t4)for(let t=0;t0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)this.xmax?2:0)|(nthis.ymax?8:0)}}const Za=2*Math.PI,Ka=Math.pow;function Qa(t){return t[0]}function Ja(t){return t[1]}function tu(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class nu{static from(t,n=Qa,e=Ja,r){return new nu("length"in t?function(t,n,e,r){const i=t.length,o=new Float64Array(2*i);for(let a=0;a2&&function(t){const{triangles:n,coords:e}=t;for(let t=0;t1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:n.length/2},((t,n)=>n)).sort(((t,e)=>n[2*t]-n[2*e]||n[2*t+1]-n[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],r=[n[2*t],n[2*t+1],n[2*e],n[2*e+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let t=0,e=n.length/2;t0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],this.triangles[1]=r[1],this.triangles[2]=r[1],o[r[0]]=1,2===r.length&&(o[r[1]]=0))}voronoi(t){return new Wa(this,t)}*neighbors(t){const{inedges:n,hull:e,_hullIndex:r,halfedges:i,triangles:o,collinear:a}=this;if(a){const n=a.indexOf(t);return n>0&&(yield a[n-1]),void(n=0&&i!==e&&i!==r;)e=i;return i}_step(t,n,e){const{inedges:r,hull:i,_hullIndex:o,halfedges:a,triangles:u,points:c}=this;if(-1===r[t]||!c.length)return(t+1)%(c.length>>1);let f=t,s=Ka(n-c[2*t],2)+Ka(e-c[2*t+1],2);const l=r[t];let h=l;do{let r=u[h];const l=Ka(n-c[2*r],2)+Ka(e-c[2*r+1],2);if(l9999?"+"+au(t,6):au(t,4)}(t.getUTCFullYear())+"-"+au(t.getUTCMonth()+1,2)+"-"+au(t.getUTCDate(),2)+(i?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"."+au(i,3)+"Z":r?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"Z":e||n?"T"+au(n,2)+":"+au(e,2)+"Z":"")}function cu(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return ru;if(f)return f=!1,eu;var n,r,i=a;if(34===t.charCodeAt(i)){for(;a++=o?c=!0:10===(r=t.charCodeAt(a++))?f=!0:13===r&&(f=!0,10===t.charCodeAt(a)&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;aNu(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var Ru=qu("application/xml"),Fu=qu("text/html"),Ou=qu("image/svg+xml");function Iu(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,c,f,s,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,v=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Uu(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Bu(t){return t[0]}function Yu(t){return t[1]}function Lu(t,n,e){var r=new ju(null==n?Bu:n,null==e?Yu:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ju(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Hu(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var Xu=Lu.prototype=ju.prototype;function Gu(t){return function(){return t}}function Vu(t){return 1e-6*(t()-.5)}function $u(t){return t.x+t.vx}function Wu(t){return t.y+t.vy}function Zu(t){return t.index}function Ku(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}Xu.copy=function(){var t,n,e=new ju(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Hu(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Hu(n));return e},Xu.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Iu(this.cover(n,e),n,e,t)},Xu.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;es&&(s=r),il&&(l=i));if(c>s||f>l)return this;for(this.cover(c,f).cover(s,l),e=0;et||t>=i||r>n||n>=o;)switch(u=(nh||(o=c.y0)>d||(a=c.x1)=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,g.data),b=n-+this._y.call(null,g.data),m=_*_+b*b;if(m=(u=(p+y)/2))?p=u:y=u,(s=a>=(c=(g+v)/2))?g=c:v=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},Xu.removeAll=function(t){for(var n=0,e=t.length;n1?r[0]+r.slice(2):r,+t.slice(e+1)]}function rc(t){return(t=ec(Math.abs(t)))?t[1]:NaN}var ic,oc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ac(t){if(!(n=oc.exec(t)))throw new Error("invalid format: "+t);var n;return new uc({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function uc(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function cc(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}ac.prototype=uc.prototype,uc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fc={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>cc(100*t,n),r:cc,s:function(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(ic=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ec(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sc(t){return t}var lc,hc=Array.prototype.map,dc=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function pc(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?sc:(n=hc.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?sc:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(hc.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function l(t){var n=(t=ac(t)).fill,e=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,_=t.type;"n"===_?(g=!0,_="g"):fc[_]||(void 0===y&&(y=12),v=!0,_="g"),(d||"0"===n&&"="===e)&&(d=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",m="$"===h?o:/[%p]/.test(_)?c:"",x=fc[_],w=/[defgprs%]/.test(_);function M(t){var i,o,c,h=b,M=m;if("c"===_)M=x(t)+M,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:x(Math.abs(t),y),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&"+"!==l&&(A=!1),h=(A?"("===l?l:f:"-"===l||"("===l?"":l)+h,M=("s"===_?dc[8+ic/3]:"")+M+(A&&"("===l?")":""),w)for(i=-1,o=t.length;++i(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var T=h.length+t.length+M.length,S=T>1)+h+t+M+S.slice(T);break;default:t=S+h+t+M}return u(t)}return y=void 0===y?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),M.toString=function(){return t+""},M}return{format:l,formatPrefix:function(t,n){var e=l(((t=ac(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3))),i=Math.pow(10,-r),o=dc[8+r/3];return function(t){return e(i*t)+o}}}}function gc(n){return lc=pc(n),t.format=lc.format,t.formatPrefix=lc.formatPrefix,lc}function yc(t){return Math.max(0,-rc(Math.abs(t)))}function vc(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3)))-rc(Math.abs(t)))}function _c(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,rc(n)-rc(t))+1}t.format=void 0,t.formatPrefix=void 0,gc({thousands:",",grouping:[3],currency:["$",""]});var bc=1e-6,mc=1e-12,xc=Math.PI,wc=xc/2,Mc=xc/4,Ac=2*xc,Tc=180/xc,Sc=xc/180,Ec=Math.abs,kc=Math.atan,Nc=Math.atan2,Cc=Math.cos,Pc=Math.ceil,zc=Math.exp,Dc=Math.hypot,qc=Math.log,Rc=Math.pow,Fc=Math.sin,Oc=Math.sign||function(t){return t>0?1:t<0?-1:0},Ic=Math.sqrt,Uc=Math.tan;function Bc(t){return t>1?0:t<-1?xc:Math.acos(t)}function Yc(t){return t>1?wc:t<-1?-wc:Math.asin(t)}function Lc(t){return(t=Fc(t/2))*t}function jc(){}function Hc(t,n){t&&Gc.hasOwnProperty(t.type)&&Gc[t.type](t,n)}var Xc={Feature:function(t,n){Hc(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r=0?1:-1,i=r*e,o=Cc(n=(n*=Sc)/2+Mc),a=Fc(n),u=tf*a,c=Jc*o+u*Cc(i),f=u*r*Fc(i);df.add(Nc(f,c)),Qc=t,Jc=o,tf=a}function mf(t){return[Nc(t[1],t[0]),Yc(t[2])]}function xf(t){var n=t[0],e=t[1],r=Cc(e);return[r*Cc(n),r*Fc(n),Fc(e)]}function wf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Mf(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Af(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Tf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Sf(t){var n=Ic(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Ef,kf,Nf,Cf,Pf,zf,Df,qf,Rf,Ff,Of,If,Uf,Bf,Yf,Lf,jf={point:Hf,lineStart:Gf,lineEnd:Vf,polygonStart:function(){jf.point=$f,jf.lineStart=Wf,jf.lineEnd=Zf,sf=new g,gf.polygonStart()},polygonEnd:function(){gf.polygonEnd(),jf.point=Hf,jf.lineStart=Gf,jf.lineEnd=Vf,df<0?(nf=-(rf=180),ef=-(of=90)):sf>bc?of=90:sf<-1e-6&&(ef=-90),hf[0]=nf,hf[1]=rf},sphere:function(){nf=-(rf=180),ef=-(of=90)}};function Hf(t,n){lf.push(hf=[nf=t,rf=t]),nof&&(of=n)}function Xf(t,n){var e=xf([t*Sc,n*Sc]);if(ff){var r=Mf(ff,e),i=Mf([r[1],-r[0],0],r);Sf(i),i=mf(i);var o,a=t-af,u=a>0?1:-1,c=i[0]*Tc*u,f=Ec(a)>180;f^(u*afof&&(of=o):f^(u*af<(c=(c+360)%360-180)&&cof&&(of=n)),f?tKf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t):rf>=nf?(trf&&(rf=t)):t>af?Kf(nf,t)>Kf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t)}else lf.push(hf=[nf=t,rf=t]);nof&&(of=n),ff=e,af=t}function Gf(){jf.point=Xf}function Vf(){hf[0]=nf,hf[1]=rf,jf.point=Hf,ff=null}function $f(t,n){if(ff){var e=t-af;sf.add(Ec(e)>180?e+(e>0?360:-360):e)}else uf=t,cf=n;gf.point(t,n),Xf(t,n)}function Wf(){gf.lineStart()}function Zf(){$f(uf,cf),gf.lineEnd(),Ec(sf)>bc&&(nf=-(rf=180)),hf[0]=nf,hf[1]=rf,ff=null}function Kf(t,n){return(n-=t)<0?n+360:n}function Qf(t,n){return t[0]-n[0]}function Jf(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nxc?t+Math.round(-t/Ac)*Ac:t,n]}function ps(t,n,e){return(t%=Ac)?n||e?hs(ys(t),vs(n,e)):ys(t):n||e?vs(n,e):ds}function gs(t){return function(n,e){return[(n+=t)>xc?n-Ac:n<-xc?n+Ac:n,e]}}function ys(t){var n=gs(t);return n.invert=gs(-t),n}function vs(t,n){var e=Cc(t),r=Fc(t),i=Cc(n),o=Fc(n);function a(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*e+u*r;return[Nc(c*i-s*o,u*e-f*r),Yc(s*i+c*o)]}return a.invert=function(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*i-c*o;return[Nc(c*i+f*o,u*e+s*r),Yc(s*e-u*r)]},a}function _s(t){function n(n){return(n=t(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n}return t=ps(t[0]*Sc,t[1]*Sc,t.length>2?t[2]*Sc:0),n.invert=function(n){return(n=t.invert(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n},n}function bs(t,n,e,r,i,o){if(e){var a=Cc(n),u=Fc(n),c=r*e;null==i?(i=n+r*Ac,o=n-c/2):(i=ms(a,i),o=ms(a,o),(r>0?io)&&(i+=r*Ac));for(var f,s=i;r>0?s>o:s1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function ws(t,n){return Ec(t[0]-n[0])=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Ts(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r=0?1:-1,E=S*T,k=E>xc,N=v*M;if(c.add(Nc(N*S*Fc(E),_*A+N*Cc(E))),a+=k?T+S*Ac:T,k^p>=e^x>=e){var C=Mf(xf(d),xf(m));Sf(C);var P=Mf(o,C);Sf(P);var z=(k^T>=0?-1:1)*Yc(P[2]);(r>z||r===z&&(C[0]||C[1]))&&(u+=k^T>=0?1:-1)}}return(a<-1e-6||a0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(Ns))}return h}}function Ns(t){return t.length>1}function Cs(t,n){return((t=t.x)[0]<0?t[1]-wc-bc:wc-t[1])-((n=n.x)[0]<0?n[1]-wc-bc:wc-n[1])}ds.invert=ds;var Ps=ks((function(){return!0}),(function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?xc:-xc,c=Ec(o-e);Ec(c-xc)0?wc:-wc),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=xc&&(Ec(e-i)bc?kc((Fc(n)*(o=Cc(r))*Fc(e)-Fc(r)*(i=Cc(n))*Fc(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}),(function(t,n,e,r){var i;if(null==t)i=e*wc,r.point(-xc,i),r.point(0,i),r.point(xc,i),r.point(xc,0),r.point(xc,-i),r.point(0,-i),r.point(-xc,-i),r.point(-xc,0),r.point(-xc,i);else if(Ec(t[0]-n[0])>bc){var o=t[0]0,i=Ec(n)>bc;function o(t,e){return Cc(t)*Cc(e)>n}function a(t,e,r){var i=[1,0,0],o=Mf(xf(t),xf(e)),a=wf(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=Mf(i,o),h=Tf(i,f);Af(h,Tf(o,s));var d=l,p=wf(h,d),g=wf(d,d),y=p*p-g*(wf(h,h)-1);if(!(y<0)){var v=Ic(y),_=Tf(d,(-p-v)/g);if(Af(_,h),_=mf(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x0^_[1]<(Ec(_[0]-m)xc^(m<=_[0]&&_[0]<=x)){var S=Tf(d,(-p+v)/g);return Af(S,h),[_,mf(S)]}}}function u(n,e){var i=r?t:xc-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return ks(o,(function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],g=o(l,h),y=r?g?0:u(l,h):g?u(l+(l<0?xc:-xc),h):0;if(!n&&(f=c=g)&&t.lineStart(),g!==c&&(!(d=a(n,p))||ws(n,d)||ws(p,d))&&(p[2]=1),g!==c)s=0,g?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1],2),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;y&e||!(v=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1],3)))}!g||n&&ws(n,p)||t.point(p[0],p[1]),n=p,c=g,e=y},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}}),(function(n,r,i,o){bs(o,t,e,i,n,r)}),r?[0,-t]:[-xc,t-xc])}var Ds,qs,Rs,Fs,Os=1e9,Is=-Os;function Us(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return Ec(r[0]-t)0?0:3:Ec(r[0]-e)0?2:1:Ec(r[1]-n)0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,g,y,v,_,b=a,m=xs(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(M(l,h),d&&y&&m.rejoin(),c.push(m.result()));x.point=w,y&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;er&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=V(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&As(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),v)l=o,h=a,d=u,v=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&y)b.point(o,a);else{var c=[p=Math.max(Is,Math.min(Os,p)),g=Math.max(Is,Math.min(Os,g))],m=[o=Math.max(Is,Math.min(Os,o)),a=Math.max(Is,Math.min(Os,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a0)){if(a/=h,h<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,g=a,y=u}return x}}var Bs={sphere:jc,point:jc,lineStart:function(){Bs.point=Ls,Bs.lineEnd=Ys},lineEnd:jc,polygonStart:jc,polygonEnd:jc};function Ys(){Bs.point=Bs.lineEnd=jc}function Ls(t,n){qs=t*=Sc,Rs=Fc(n*=Sc),Fs=Cc(n),Bs.point=js}function js(t,n){t*=Sc;var e=Fc(n*=Sc),r=Cc(n),i=Ec(t-qs),o=Cc(i),a=r*Fc(i),u=Fs*e-Rs*r*o,c=Rs*e+Fs*r*o;Ds.add(Nc(Ic(a*a+u*u),c)),qs=t,Rs=e,Fs=r}function Hs(t){return Ds=new g,Wc(t,Bs),+Ds}var Xs=[null,null],Gs={type:"LineString",coordinates:Xs};function Vs(t,n){return Xs[0]=t,Xs[1]=n,Hs(Gs)}var $s={Feature:function(t,n){return Zs(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r0&&(i=Vs(t[o],t[o-1]))>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))bc})).map(c)).concat(Z(Pc(o/d)*d,i,d).filter((function(t){return Ec(t%g)>bc})).map(f))}return v.lines=function(){return _().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),v.precision(y)):[[r,u],[e,a]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),v.precision(y)):[[n,o],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(y=+h,c=el(o,i,90),f=rl(n,t,y),s=el(u,a,90),l=rl(r,e,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}var ol,al,ul,cl,fl=t=>t,sl=new g,ll=new g,hl={point:jc,lineStart:jc,lineEnd:jc,polygonStart:function(){hl.lineStart=dl,hl.lineEnd=yl},polygonEnd:function(){hl.lineStart=hl.lineEnd=hl.point=jc,sl.add(Ec(ll)),ll=new g},result:function(){var t=sl/2;return sl=new g,t}};function dl(){hl.point=pl}function pl(t,n){hl.point=gl,ol=ul=t,al=cl=n}function gl(t,n){ll.add(cl*t-ul*n),ul=t,cl=n}function yl(){gl(ol,al)}var vl=1/0,_l=vl,bl=-vl,ml=bl,xl={point:function(t,n){tbl&&(bl=t);n<_l&&(_l=n);n>ml&&(ml=n)},lineStart:jc,lineEnd:jc,polygonStart:jc,polygonEnd:jc,result:function(){var t=[[vl,_l],[bl,ml]];return bl=ml=-(_l=vl=1/0),t}};var wl,Ml,Al,Tl,Sl=0,El=0,kl=0,Nl=0,Cl=0,Pl=0,zl=0,Dl=0,ql=0,Rl={point:Fl,lineStart:Ol,lineEnd:Bl,polygonStart:function(){Rl.lineStart=Yl,Rl.lineEnd=Ll},polygonEnd:function(){Rl.point=Fl,Rl.lineStart=Ol,Rl.lineEnd=Bl},result:function(){var t=ql?[zl/ql,Dl/ql]:Pl?[Nl/Pl,Cl/Pl]:kl?[Sl/kl,El/kl]:[NaN,NaN];return Sl=El=kl=Nl=Cl=Pl=zl=Dl=ql=0,t}};function Fl(t,n){Sl+=t,El+=n,++kl}function Ol(){Rl.point=Il}function Il(t,n){Rl.point=Ul,Fl(Al=t,Tl=n)}function Ul(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,Fl(Al=t,Tl=n)}function Bl(){Rl.point=Fl}function Yl(){Rl.point=jl}function Ll(){Hl(wl,Ml)}function jl(t,n){Rl.point=Hl,Fl(wl=Al=t,Ml=Tl=n)}function Hl(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,zl+=(i=Tl*t-Al*n)*(Al+t),Dl+=i*(Tl+n),ql+=3*i,Fl(Al=t,Tl=n)}function Xl(t){this._context=t}Xl.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Ac)}},result:jc};var Gl,Vl,$l,Wl,Zl,Kl=new g,Ql={point:jc,lineStart:function(){Ql.point=Jl},lineEnd:function(){Gl&&th(Vl,$l),Ql.point=jc},polygonStart:function(){Gl=!0},polygonEnd:function(){Gl=null},result:function(){var t=+Kl;return Kl=new g,t}};function Jl(t,n){Ql.point=th,Vl=Wl=t,$l=Zl=n}function th(t,n){Wl-=t,Zl-=n,Kl.add(Ic(Wl*Wl+Zl*Zl)),Wl=t,Zl=n}function nh(){this._string=[]}function eh(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function rh(t){return function(n){var e=new ih;for(var r in t)e[r]=t[r];return e.stream=n,e}}function ih(){}function oh(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Wc(e,t.stream(xl)),n(xl.result()),null!=r&&t.clipExtent(r),t}function ah(t,n,e){return oh(t,(function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])}),e)}function uh(t,n,e){return ah(t,[[0,0],n],e)}function ch(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])}),e)}function fh(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])}),e)}nh.prototype={_radius:4.5,_circle:eh(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=eh(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},ih.prototype={constructor:ih,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sh=Cc(30*Sc);function lh(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,g,y){var v=f-r,_=s-i,b=v*v+_*_;if(b>4*n&&g--){var m=a+h,x=u+d,w=c+p,M=Ic(m*m+x*x+w*w),A=Yc(w/=M),T=Ec(Ec(w)-1)n||Ec((v*N+_*C)/b-.5)>.3||a*h+u*d+c*p2?t[2]%360*Sc:0,N()):[y*Tc,v*Tc,_*Tc]},E.angle=function(t){return arguments.length?(b=t%360*Sc,N()):b*Tc},E.reflectX=function(t){return arguments.length?(m=t?-1:1,N()):m<0},E.reflectY=function(t){return arguments.length?(x=t?-1:1,N()):x<0},E.precision=function(t){return arguments.length?(a=lh(u,S=t*t),C()):Ic(S)},E.fitExtent=function(t,n){return ah(E,t,n)},E.fitSize=function(t,n){return uh(E,t,n)},E.fitWidth=function(t,n){return ch(E,t,n)},E.fitHeight=function(t,n){return fh(E,t,n)},function(){return n=t.apply(this,arguments),E.invert=n.invert&&k,N()}}function yh(t){var n=0,e=xc/3,r=gh(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Sc,e=t[1]*Sc):[n*Tc,e*Tc]},i}function vh(t,n){var e=Fc(t),r=(e+Fc(n))/2;if(Ec(r)0?n<-wc+bc&&(n=-wc+bc):n>wc-bc&&(n=wc-bc);var e=i/Rc(Sh(n),r);return[e*Fc(r*t),i-e*Cc(r*t)]}return o.invert=function(t,n){var e=i-n,o=Oc(r)*Ic(t*t+e*e),a=Nc(t,Ec(e))*Oc(e);return e*r<0&&(a-=xc*Oc(t)*Oc(e)),[a/r,2*kc(Rc(i/o,1/r))-wc]},o}function kh(t,n){return[t,n]}function Nh(t,n){var e=Cc(t),r=t===n?Fc(t):(e-Cc(n))/(n-t),i=e/r+t;if(Ec(r)=0;)n+=e[r].value;else n=1;t.value=n}function Xh(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=Vh)):void 0===n&&(n=Gh);for(var e,r,i,o,a,u=new Zh(t),c=[u];e=c.pop();)if((i=n(e.data))&&(a=(i=Array.from(i)).length))for(e.children=i,o=a-1;o>=0;--o)c.push(r=i[o]=new Zh(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Wh)}function Gh(t){return t.children}function Vh(t){return Array.isArray(t)?t[1]:null}function $h(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function Wh(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Zh(t){this.data=t,this.depth=this.height=0,this.parent=null}function Kh(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(Array.from(t))).length,o=[];r0&&e*e>r*r+i*i}function nd(t,n){for(var e=0;e(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function ad(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function ud(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function cd(t){this._=t,this.next=null,this.previous=null}function fd(t){if(!(i=(t=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(t)).length))return 0;var n,e,r,i,o,a,u,c,f,s,l;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;od(e,n,r=t[2]),n=new cd(n),e=new cd(e),r=new cd(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;ubc&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ih.invert=xh(Yc),Uh.invert=xh((function(t){return 2*kc(t)})),Bh.invert=function(t,n){return[-n,2*kc(zc(t))-wc]},Zh.prototype=Xh.prototype={constructor:Zh,count:function(){return this.eachAfter(Hh)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,o=this,a=[o],u=[],c=-1;o=a.pop();)if(u.push(o),e=o.children)for(r=0,i=e.length;r=0;--r)o.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Xh(this).eachBefore($h)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;eh&&(h=u),y=s*s*g,(d=Math.max(h/y,y/l))>p){s-=u;break}p=d}v.push(a={value:s,dice:c1?n:1)},e}(Pd);var qd=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l1?n:1)},e}(Pd);function Rd(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function Fd(t,n){return t[0]-n[0]||t[1]-n[1]}function Od(t){const n=t.length,e=[0,1];let r,i=2;for(r=2;r1&&Rd(t[e[i-2]],t[e[i-1]],t[r])<=0;)--i;e[i++]=r}return e.slice(0,i)}var Id=Math.random,Ud=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Id),Bd=function t(n){function e(t,e){return arguments.length<2&&(e=t,t=0),t=Math.floor(t),e=Math.floor(e)-t,function(){return Math.floor(n()*e+t)}}return e.source=t,e}(Id),Yd=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Id),Ld=function t(n){var e=Yd.source(n);function r(){var t=e.apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(Id),jd=function t(n){function e(t){return(t=+t)<=0?()=>0:function(){for(var e=0,r=t;r>1;--r)e+=n();return e+r*n()}}return e.source=t,e}(Id),Hd=function t(n){var e=jd.source(n);function r(t){if(0==(t=+t))return n;var r=e(t);return function(){return r()/t}}return r.source=t,r}(Id),Xd=function t(n){function e(t){return function(){return-Math.log1p(-n())/t}}return e.source=t,e}(Id),Gd=function t(n){function e(t){if((t=+t)<0)throw new RangeError("invalid alpha");return t=1/-t,function(){return Math.pow(1-n(),t)}}return e.source=t,e}(Id),Vd=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return function(){return Math.floor(n()+t)}}return e.source=t,e}(Id),$d=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return 0===t?()=>1/0:1===t?()=>1:(t=Math.log1p(-t),function(){return 1+Math.floor(Math.log1p(-n())/t)})}return e.source=t,e}(Id),Wd=function t(n){var e=Yd.source(n)();function r(t,r){if((t=+t)<0)throw new RangeError("invalid k");if(0===t)return()=>0;if(r=null==r?1:+r,1===t)return()=>-Math.log1p(-n())*r;var i=(t<1?t+1:t)-1/3,o=1/(3*Math.sqrt(i)),a=t<1?()=>Math.pow(n(),1/t):()=>1;return function(){do{do{var t=e(),u=1+o*t}while(u<=0);u*=u*u;var c=1-n()}while(c>=1-.0331*t*t*t*t&&Math.log(c)>=.5*t*t+i*(1-u+Math.log(u)));return i*u*a()*r}}return r.source=t,r}(Id),Zd=function t(n){var e=Wd.source(n);function r(t,n){var r=e(t),i=e(n);return function(){var t=r();return 0===t?0:t/(t+i())}}return r.source=t,r}(Id),Kd=function t(n){var e=$d.source(n),r=Zd.source(n);function i(t,n){return t=+t,(n=+n)>=1?()=>t:n<=0?()=>0:function(){for(var i=0,o=t,a=n;o*a>16&&o*(1-a)>16;){var u=Math.floor((o+1)*a),c=r(u,o-u+1)();c<=a?(i+=u,o-=u,a=(a-c)/(1-c)):(o=u-1,a/=c)}for(var f=a<.5,s=e(f?a:1-a),l=s(),h=0;l<=o;++h)l+=s();return i+(f?h:o-h)}}return i.source=t,i}(Id),Qd=function t(n){function e(t,e,r){var i;return 0==(t=+t)?i=t=>-Math.log(t):(t=1/t,i=n=>Math.pow(n,t)),e=null==e?0:+e,r=null==r?1:+r,function(){return e+r*i(-Math.log1p(-n()))}}return e.source=t,e}(Id),Jd=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){return t+e*Math.tan(Math.PI*n())}}return e.source=t,e}(Id),tp=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){var r=n();return t+e*Math.log(r/(1-r))}}return e.source=t,e}(Id),np=function t(n){var e=Wd.source(n),r=Kd.source(n);function i(t){return function(){for(var i=0,o=t;o>16;){var a=Math.floor(.875*o),u=e(a)();if(u>o)return i+r(a-1,o/u)();i+=a,o-=u}for(var c=-Math.log1p(-n()),f=0;c<=o;++f)c-=Math.log1p(-n());return i+f}}return i.source=t,i}(Id);const ep=1/4294967296;function rp(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function ip(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const op=Symbol("implicit");function ap(){var t=new Map,n=[],e=[],r=op;function i(i){var o=i+"",a=t.get(o);if(!a){if(r!==op)return r;t.set(o,a=n.push(i))}return e[(a-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Map;for(const r of e){const e=r+"";t.has(e)||t.set(e,n.push(r))}return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return ap(n,e).unknown(r)},rp.apply(i,arguments),i}function up(){var t,n,e=ap().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,u=!1,c=0,f=0,s=.5;function l(){var e=r().length,l=an&&(e=t,t=n,n=e),function(e){return Math.max(t,Math.min(n,e))}}(a[0],a[t-1])),r=t>2?pp:dp,i=o=null,l}function l(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),_r)))(e)))},l.domain=function(t){return arguments.length?(a=Array.from(t,fp),s()):a.slice()},l.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},l.rangeRound=function(t){return u=Array.from(t),c=Ar,s()},l.clamp=function(t){return arguments.length?(f=!!t||lp,s()):f!==lp},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function vp(){return yp()(lp,lp)}function _p(n,e,r,i){var o,a=F(n,e,r);switch((i=ac(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=vc(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=_c(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=yc(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function bp(t){var n=t.domain;return t.ticks=function(t){var e=n();return q(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return _p(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,u=o.length-1,c=o[a],f=o[u],s=10;for(f0;){if((i=R(c,f,e))===r)return o[a]=c,o[u]=f,n(o);if(i>0)c=Math.floor(c/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,f=Math.floor(f*i)/i}r=i}return t},t}function mp(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a0){for(;h<=d;++h)for(s=1,f=r(h);sc)break;g.push(l)}}else for(;h<=d;++h)for(s=a-1,f=r(h);s>=1;--s)if(!((l=f*s)c)break;g.push(l)}2*g.length0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a=n)for(;t(n),!e(n);)n.setTime(n-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););}))},e&&(i.count=function(n,r){return Ip.setTime(+n),Up.setTime(+r),t(Ip),t(Up),Math.floor(e(Ip,Up))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var Yp=Bp((function(){}),(function(t,n){t.setTime(+t+n)}),(function(t,n){return n-t}));Yp.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Bp((function(n){n.setTime(Math.floor(n/t)*t)}),(function(n,e){n.setTime(+n+e*t)}),(function(n,e){return(e-n)/t})):Yp:null};var Lp=Yp.range;const jp=1e3,Hp=6e4,Xp=36e5,Gp=864e5,Vp=6048e5,$p=2592e6,Wp=31536e6;var Zp=Bp((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,n){t.setTime(+t+n*jp)}),(function(t,n){return(n-t)/jp}),(function(t){return t.getUTCSeconds()})),Kp=Zp.range,Qp=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getMinutes()})),Jp=Qp.range,tg=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp-t.getMinutes()*Hp)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getHours()})),ng=tg.range,eg=Bp((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Gp),(t=>t.getDate()-1)),rg=eg.range;function ig(t){return Bp((function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),(function(t,n){t.setDate(t.getDate()+7*n)}),(function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Vp}))}var og=ig(0),ag=ig(1),ug=ig(2),cg=ig(3),fg=ig(4),sg=ig(5),lg=ig(6),hg=og.range,dg=ag.range,pg=ug.range,gg=cg.range,yg=fg.range,vg=sg.range,_g=lg.range,bg=Bp((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,n){t.setMonth(t.getMonth()+n)}),(function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),mg=bg.range,xg=Bp((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n)}),(function(t,n){return n.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));xg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,e){n.setFullYear(n.getFullYear()+e*t)})):null};var wg=xg.range,Mg=Bp((function(t){t.setUTCSeconds(0,0)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getUTCMinutes()})),Ag=Mg.range,Tg=Bp((function(t){t.setUTCMinutes(0,0,0)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getUTCHours()})),Sg=Tg.range,Eg=Bp((function(t){t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+n)}),(function(t,n){return(n-t)/Gp}),(function(t){return t.getUTCDate()-1})),kg=Eg.range;function Ng(t){return Bp((function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+7*n)}),(function(t,n){return(n-t)/Vp}))}var Cg=Ng(0),Pg=Ng(1),zg=Ng(2),Dg=Ng(3),qg=Ng(4),Rg=Ng(5),Fg=Ng(6),Og=Cg.range,Ig=Pg.range,Ug=zg.range,Bg=Dg.range,Yg=qg.range,Lg=Rg.range,jg=Fg.range,Hg=Bp((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCMonth(t.getUTCMonth()+n)}),(function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),Xg=Hg.range,Gg=Bp((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)}),(function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Gg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null};var Vg=Gg.range;function $g(t,n,r,i,o,a){const u=[[Zp,1,jp],[Zp,5,5e3],[Zp,15,15e3],[Zp,30,3e4],[a,1,Hp],[a,5,3e5],[a,15,9e5],[a,30,18e5],[o,1,Xp],[o,3,108e5],[o,6,216e5],[o,12,432e5],[i,1,Gp],[i,2,1728e5],[r,1,Vp],[n,1,$p],[n,3,7776e6],[t,1,Wp]];function c(n,r,i){const o=Math.abs(r-n)/i,a=e((([,,t])=>t)).right(u,o);if(a===u.length)return t.every(F(n/Wp,r/Wp,i));if(0===a)return Yp.every(Math.max(F(n,r,i),1));const[c,f]=u[o/u[a-1][2]=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:bv,s:mv,S:By,u:Yy,U:Ly,V:Hy,w:Xy,W:Gy,x:null,X:null,y:Vy,Y:Wy,Z:Ky,"%":_v},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Qy,e:Qy,f:rv,g:pv,G:yv,H:Jy,I:tv,j:nv,L:ev,m:iv,M:ov,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:bv,s:mv,S:av,u:uv,U:cv,V:sv,w:lv,W:hv,x:null,X:null,y:dv,Y:gv,Z:vv,"%":_v},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=_.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return A(t,n,e,r)},d:wy,e:wy,f:ky,g:_y,G:vy,H:Ay,I:Ay,j:My,L:Ey,m:xy,M:Ty,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s.get(r[0].toLowerCase()),e+r[0].length):-1},q:my,Q:Cy,s:Py,S:Sy,u:dy,U:py,V:gy,w:hy,W:yy,x:function(t,n,r){return A(t,e,n,r)},X:function(t,n,e){return A(t,r,n,e)},y:_y,Y:vy,Z:by,"%":Ny};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=ty(ny(o.y,0,1))).getUTCDay(),r=i>4||0===i?Pg.ceil(r):Pg(r),r=Eg.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=Jg(ny(o.y,0,1))).getDay(),r=i>4||0===i?ag.ceil(r):ag(r),r=eg.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?ty(ny(o.y,0,1)).getUTCDay():Jg(ny(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,ty(o)):Jg(o)}}function A(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in iy?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}var ry,iy={"-":"",_:" ",0:"0"},oy=/^\s*\d+/,ay=/^%/,uy=/[\\^$*+?|[\]().{}]/g;function cy(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o[t.toLowerCase(),n])))}function hy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function dy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function py(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function gy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function yy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function vy(t,n,e){var r=oy.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function _y(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function by(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function my(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function xy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function wy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function My(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Ay(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Ty(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Sy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Ey(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ky(t,n,e){var r=oy.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Ny(t,n,e){var r=ay.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Cy(t,n,e){var r=oy.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Py(t,n,e){var r=oy.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function zy(t,n){return cy(t.getDate(),n,2)}function Dy(t,n){return cy(t.getHours(),n,2)}function qy(t,n){return cy(t.getHours()%12||12,n,2)}function Ry(t,n){return cy(1+eg.count(xg(t),t),n,3)}function Fy(t,n){return cy(t.getMilliseconds(),n,3)}function Oy(t,n){return Fy(t,n)+"000"}function Iy(t,n){return cy(t.getMonth()+1,n,2)}function Uy(t,n){return cy(t.getMinutes(),n,2)}function By(t,n){return cy(t.getSeconds(),n,2)}function Yy(t){var n=t.getDay();return 0===n?7:n}function Ly(t,n){return cy(og.count(xg(t)-1,t),n,2)}function jy(t){var n=t.getDay();return n>=4||0===n?fg(t):fg.ceil(t)}function Hy(t,n){return t=jy(t),cy(fg.count(xg(t),t)+(4===xg(t).getDay()),n,2)}function Xy(t){return t.getDay()}function Gy(t,n){return cy(ag.count(xg(t)-1,t),n,2)}function Vy(t,n){return cy(t.getFullYear()%100,n,2)}function $y(t,n){return cy((t=jy(t)).getFullYear()%100,n,2)}function Wy(t,n){return cy(t.getFullYear()%1e4,n,4)}function Zy(t,n){var e=t.getDay();return cy((t=e>=4||0===e?fg(t):fg.ceil(t)).getFullYear()%1e4,n,4)}function Ky(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+cy(n/60|0,"0",2)+cy(n%60,"0",2)}function Qy(t,n){return cy(t.getUTCDate(),n,2)}function Jy(t,n){return cy(t.getUTCHours(),n,2)}function tv(t,n){return cy(t.getUTCHours()%12||12,n,2)}function nv(t,n){return cy(1+Eg.count(Gg(t),t),n,3)}function ev(t,n){return cy(t.getUTCMilliseconds(),n,3)}function rv(t,n){return ev(t,n)+"000"}function iv(t,n){return cy(t.getUTCMonth()+1,n,2)}function ov(t,n){return cy(t.getUTCMinutes(),n,2)}function av(t,n){return cy(t.getUTCSeconds(),n,2)}function uv(t){var n=t.getUTCDay();return 0===n?7:n}function cv(t,n){return cy(Cg.count(Gg(t)-1,t),n,2)}function fv(t){var n=t.getUTCDay();return n>=4||0===n?qg(t):qg.ceil(t)}function sv(t,n){return t=fv(t),cy(qg.count(Gg(t),t)+(4===Gg(t).getUTCDay()),n,2)}function lv(t){return t.getUTCDay()}function hv(t,n){return cy(Pg.count(Gg(t)-1,t),n,2)}function dv(t,n){return cy(t.getUTCFullYear()%100,n,2)}function pv(t,n){return cy((t=fv(t)).getUTCFullYear()%100,n,2)}function gv(t,n){return cy(t.getUTCFullYear()%1e4,n,4)}function yv(t,n){var e=t.getUTCDay();return cy((t=e>=4||0===e?qg(t):qg.ceil(t)).getUTCFullYear()%1e4,n,4)}function vv(){return"+0000"}function _v(){return"%"}function bv(t){return+t}function mv(t){return Math.floor(+t/1e3)}function xv(n){return ry=ey(n),t.timeFormat=ry.format,t.timeParse=ry.parse,t.utcFormat=ry.utcFormat,t.utcParse=ry.utcParse,ry}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,xv({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var wv="%Y-%m-%dT%H:%M:%S.%LZ";var Mv=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(wv);var Av=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(wv);function Tv(t){return new Date(t)}function Sv(t){return t instanceof Date?+t:+new Date(+t)}function Ev(t,n,e,r,i,o,a,u,c,f){var s=vp(),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),g=f("%I:%M"),y=f("%I %p"),v=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y");function x(t){return(c(t)hr(t[t.length-1]),Xv=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Dv),Gv=Hv(Xv),Vv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Dv),$v=Hv(Vv),Wv=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Dv),Zv=Hv(Wv),Kv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Dv),Qv=Hv(Kv),Jv=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Dv),t_=Hv(Jv),n_=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Dv),e_=Hv(n_),r_=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Dv),i_=Hv(r_),o_=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Dv),a_=Hv(o_),u_=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Dv),c_=Hv(u_),f_=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Dv),s_=Hv(f_),l_=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Dv),h_=Hv(l_),d_=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Dv),p_=Hv(d_),g_=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Dv),y_=Hv(g_),v_=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Dv),__=Hv(v_),b_=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Dv),m_=Hv(b_),x_=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Dv),w_=Hv(x_),M_=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Dv),A_=Hv(M_),T_=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Dv),S_=Hv(T_),E_=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Dv),k_=Hv(E_),N_=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Dv),C_=Hv(N_),P_=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Dv),z_=Hv(P_),D_=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Dv),q_=Hv(D_),R_=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Dv),F_=Hv(R_),O_=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Dv),I_=Hv(O_),U_=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Dv),B_=Hv(U_),Y_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Dv),L_=Hv(Y_),j_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Dv),H_=Hv(j_);var X_=Lr(tr(300,.5,0),tr(-240,.5,1)),G_=Lr(tr(-100,.75,.35),tr(80,1.5,.8)),V_=Lr(tr(260,.75,.35),tr(80,1.5,.8)),$_=tr();var W_=ve(),Z_=Math.PI/3,K_=2*Math.PI/3;function Q_(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var J_=Q_(Dv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),tb=Q_(Dv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),nb=Q_(Dv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),eb=Q_(Dv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function rb(t){return function(){return t}}var ib=Math.abs,ob=Math.atan2,ab=Math.cos,ub=Math.max,cb=Math.min,fb=Math.sin,sb=Math.sqrt,lb=1e-12,hb=Math.PI,db=hb/2,pb=2*hb;function gb(t){return t>1?0:t<-1?hb:Math.acos(t)}function yb(t){return t>=1?db:t<=-1?-db:Math.asin(t)}function vb(t){return t.innerRadius}function _b(t){return t.outerRadius}function bb(t){return t.startAngle}function mb(t){return t.endAngle}function xb(t){return t&&t.padAngle}function wb(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*hC*C+P*P&&(A=S,T=E),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}var Ab=Array.prototype.slice;function Tb(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Sb(t){this._context=t}function Eb(t){return new Sb(t)}function kb(t){return t[0]}function Nb(t){return t[1]}function Cb(t,n){var e=rb(!0),r=null,i=Eb,o=null;function a(a){var u,c,f,s=(a=Tb(a)).length,l=!1;for(null==r&&(o=i(f=fa())),u=0;u<=s;++u)!(u=s;--l)u.point(y[l],v[l]);u.lineEnd(),u.areaEnd()}g&&(y[f]=+t(h,f,c),v[f]=+n(h,f,c),u.point(r?+r(h,f,c):y[f],e?+e(h,f,c):v[f]))}if(d)return u=null,d+""||null}function f(){return Cb().defined(i).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?kb:rb(+t),n="function"==typeof n?n:rb(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?Nb:rb(+e),c.x=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),r=null,c):t},c.x0=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),c):t},c.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:rb(+t),c):r},c.y=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),e=null,c):n},c.y0=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),c):n},c.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:rb(+t),c):e},c.lineX0=c.lineY0=function(){return f().x(t).y(n)},c.lineY1=function(){return f().x(t).y(e)},c.lineX1=function(){return f().x(r).y(n)},c.defined=function(t){return arguments.length?(i="function"==typeof t?t:rb(!!t),c):i},c.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),c):a},c.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),c):o},c}function zb(t,n){return nt?1:n>=t?0:NaN}function Db(t){return t}Sb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var qb=Fb(Eb);function Rb(t){this._curve=t}function Fb(t){function n(n){return new Rb(t(n))}return n._curve=t,n}function Ob(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Ib(){return Ob(Cb().curve(qb))}function Ub(){var t=Pb().curve(qb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Ob(e())},delete t.lineX0,t.lineEndAngle=function(){return Ob(r())},delete t.lineX1,t.lineInnerRadius=function(){return Ob(i())},delete t.lineY0,t.lineOuterRadius=function(){return Ob(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Bb(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Yb(t){return t.source}function Lb(t){return t.target}function jb(t){var n=Yb,e=Lb,r=kb,i=Nb,o=null;function a(){var a,u=Ab.call(arguments),c=n.apply(this,u),f=e.apply(this,u);if(o||(o=a=fa()),t(o,+r.apply(this,(u[0]=c,u)),+i.apply(this,u),+r.apply(this,(u[0]=f,u)),+i.apply(this,u)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.y=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function Hb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Xb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Gb(t,n,e,r,i){var o=Bb(n,e),a=Bb(n,e=(e+i)/2),u=Bb(r,e),c=Bb(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],c[0],c[1])}Rb.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Vb={draw:function(t,n){var e=Math.sqrt(n/hb);t.moveTo(e,0),t.arc(0,0,e,0,pb)}},$b={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Wb=Math.sqrt(1/3),Zb=2*Wb,Kb={draw:function(t,n){var e=Math.sqrt(n/Zb),r=e*Wb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Qb=Math.sin(hb/10)/Math.sin(7*hb/10),Jb=Math.sin(pb/10)*Qb,tm=-Math.cos(pb/10)*Qb,nm={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Jb*e,i=tm*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=pb*o/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*e,-u*e),t.lineTo(u*r-c*i,c*r+u*i)}t.closePath()}},em={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},rm=Math.sqrt(3),im={draw:function(t,n){var e=-Math.sqrt(n/(3*rm));t.moveTo(0,2*e),t.lineTo(-rm*e,-e),t.lineTo(rm*e,-e),t.closePath()}},om=-.5,am=Math.sqrt(3)/2,um=1/Math.sqrt(12),cm=3*(um/2+1),fm={draw:function(t,n){var e=Math.sqrt(n/cm),r=e/2,i=e*um,o=r,a=e*um+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(om*r-am*i,am*r+om*i),t.lineTo(om*o-am*a,am*o+om*a),t.lineTo(om*u-am*c,am*u+om*c),t.lineTo(om*r+am*i,om*i-am*r),t.lineTo(om*o+am*a,om*a-am*o),t.lineTo(om*u+am*c,om*c-am*u),t.closePath()}},sm=[Vb,$b,Kb,em,nm,im,fm];function lm(){}function hm(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function dm(t){this._context=t}function pm(t){this._context=t}function gm(t){this._context=t}dm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:hm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},pm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},gm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};class ym{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}function vm(t,n){this._basis=new dm(t),this._beta=n}vm.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var _m=function t(n){function e(t){return 1===n?new dm(t):new vm(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function bm(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function mm(t,n){this._context=t,this._k=(1-n)/6}mm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:bm(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var xm=function t(n){function e(t){return new mm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function wm(t,n){this._context=t,this._k=(1-n)/6}wm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Mm=function t(n){function e(t){return new wm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Am(t,n){this._context=t,this._k=(1-n)/6}Am.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Tm=function t(n){function e(t){return new Am(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Sm(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>lb){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>lb){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Em(t,n){this._context=t,this._alpha=n}Em.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var km=function t(n){function e(t){return n?new Em(t,n):new mm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Nm(t,n){this._context=t,this._alpha=n}Nm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Cm=function t(n){function e(t){return n?new Nm(t,n):new wm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Pm(t,n){this._context=t,this._alpha=n}Pm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var zm=function t(n){function e(t){return n?new Pm(t,n):new Am(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Dm(t){this._context=t}function qm(t){return t<0?-1:1}function Rm(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(qm(o)+qm(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function Fm(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Om(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function Im(t){this._context=t}function Um(t){this._context=new Bm(t)}function Bm(t){this._context=t}function Ym(t){this._context=t}function Lm(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o=0;)e[n]=n;return e}function Gm(t,n){return t[n]}function Vm(t){const n=[];return n.key=t,n}function $m(t){var n=t.map(Wm);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Wm(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++eo&&(o=n,r=e);return r}function Zm(t){var n=t.map(Km);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Km(t){for(var n,e=0,r=-1,i=t.length;++r=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var Qm=t=>()=>t;function Jm(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function tx(t,n,e){this.k=t,this.x=n,this.y=e}tx.prototype={constructor:tx,scale:function(t){return 1===t?this:new tx(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new tx(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var nx=new tx(1,0,0);function ex(t){for(;!t.__zoom;)if(!(t=t.parentNode))return nx;return t.__zoom}function rx(t){t.stopImmediatePropagation()}function ix(t){t.preventDefault(),t.stopImmediatePropagation()}function ox(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function ax(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function ux(){return this.__zoom||nx}function cx(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function fx(){return navigator.maxTouchPoints||"ontouchstart"in this}function sx(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}ex.prototype=tx.prototype,t.Adder=g,t.Delaunay=nu,t.FormatSpecifier=uc,t.InternMap=y,t.InternSet=v,t.Voronoi=Wa,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>1&&e.name===n)return new ji([[t]],_o,n,+r);return null},t.arc=function(){var t=vb,n=_b,e=rb(0),r=null,i=bb,o=mb,a=xb,u=null;function c(){var c,f,s=+t.apply(this,arguments),l=+n.apply(this,arguments),h=i.apply(this,arguments)-db,d=o.apply(this,arguments)-db,p=ib(d-h),g=d>h;if(u||(u=c=fa()),llb)if(p>pb-lb)u.moveTo(l*ab(h),l*fb(h)),u.arc(0,0,l,h,d,!g),s>lb&&(u.moveTo(s*ab(d),s*fb(d)),u.arc(0,0,s,d,h,g));else{var y,v,_=h,b=d,m=h,x=d,w=p,M=p,A=a.apply(this,arguments)/2,T=A>lb&&(r?+r.apply(this,arguments):sb(s*s+l*l)),S=cb(ib(l-s)/2,+e.apply(this,arguments)),E=S,k=S;if(T>lb){var N=yb(T/s*fb(A)),C=yb(T/l*fb(A));(w-=2*N)>lb?(m+=N*=g?1:-1,x-=N):(w=0,m=x=(h+d)/2),(M-=2*C)>lb?(_+=C*=g?1:-1,b-=C):(M=0,_=b=(h+d)/2)}var P=l*ab(_),z=l*fb(_),D=s*ab(x),q=s*fb(x);if(S>lb){var R,F=l*ab(b),O=l*fb(b),I=s*ab(m),U=s*fb(m);if(plb?k>lb?(y=Mb(I,U,P,z,l,k,g),v=Mb(F,O,D,q,l,k,g),u.moveTo(y.cx+y.x01,y.cy+y.y01),klb&&w>lb?E>lb?(y=Mb(D,q,F,O,s,-E,g),v=Mb(P,z,I,U,s,-E,g),u.lineTo(y.cx+y.x01,y.cy+y.y01),E>a,f=i+2*u>>a,s=wa(20);function l(r){var i=new Float32Array(c*f),l=new Float32Array(c*f);r.forEach((function(r,o,s){var l=+t(r,o,s)+u>>a,h=+n(r,o,s)+u>>a,d=+e(r,o,s);l>=0&&l=0&&h>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a);var d=s(i);if(!Array.isArray(d)){var p=B(i);d=F(0,p,d),(d=Z(0,Math.floor(p/d)*d,d)).shift()}return ka().thresholds(d).size([c,f])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function y(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,l}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:wa(+n),l):t},l.y=function(t){return arguments.length?(n="function"==typeof t?t:wa(+t),l):n},l.weight=function(t){return arguments.length?(e="function"==typeof t?t:wa(+t),l):e},l.size=function(t){if(!arguments.length)return[r,i];var n=+t[0],e=+t[1];if(!(n>=0&&e>=0))throw new Error("invalid size");return r=n,i=e,y()},l.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),l):s},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},t.contours=ka,t.count=c,t.create=function(t){return Dn(At(t).call(document.documentElement))},t.creator=At,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(l)).map(f),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(s))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}},t.csv=Pu,t.csvFormat=hu,t.csvFormatBody=du,t.csvFormatRow=gu,t.csvFormatRows=pu,t.csvFormatValue=yu,t.csvParse=su,t.csvParseRows=lu,t.cubehelix=tr,t.cumsum=function(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)},t.curveBasis=function(t){return new dm(t)},t.curveBasisClosed=function(t){return new pm(t)},t.curveBasisOpen=function(t){return new gm(t)},t.curveBumpX=function(t){return new ym(t,!0)},t.curveBumpY=function(t){return new ym(t,!1)},t.curveBundle=_m,t.curveCardinal=xm,t.curveCardinalClosed=Mm,t.curveCardinalOpen=Tm,t.curveCatmullRom=km,t.curveCatmullRomClosed=Cm,t.curveCatmullRomOpen=zm,t.curveLinear=Eb,t.curveLinearClosed=function(t){return new Dm(t)},t.curveMonotoneX=function(t){return new Im(t)},t.curveMonotoneY=function(t){return new Um(t)},t.curveNatural=function(t){return new Ym(t)},t.curveStep=function(t){return new jm(t,.5)},t.curveStepAfter=function(t){return new jm(t,1)},t.curveStepBefore=function(t){return new jm(t,0)},t.descending=function(t,n){return nt?1:n>=t?0:NaN},t.deviation=d,t.difference=function(t,...n){t=new Set(t);for(const e of n)for(const n of e)t.delete(n);return t},t.disjoint=function(t,n){const e=n[Symbol.iterator](),r=new Set;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0},t.dispatch=pt,t.drag=function(){var t,n,e,r,i=Xn,o=Gn,a=Vn,u=$n,c={},f=pt("start","drag","end"),s=0,l=0;function h(t){t.on("mousedown.drag",d).filter(u).on("touchstart.drag",y).on("touchmove.drag",v).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(a,u){if(!r&&i.call(this,a,u)){var c=b(this,o.call(this,a,u),a,u,"mouse");c&&(Dn(a.view).on("mousemove.drag",p,!0).on("mouseup.drag",g,!0),Yn(a.view),Un(a),e=!1,t=a.clientX,n=a.clientY,c("start",a))}}function p(r){if(Bn(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>l}c.mouse("drag",r)}function g(t){Dn(t.view).on("mousemove.drag mouseup.drag",null),Ln(t.view,e),Bn(t),c.mouse("end",t)}function y(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),c=a.length;for(e=0;e+t,t.easePoly=Ki,t.easePolyIn=Wi,t.easePolyInOut=Ki,t.easePolyOut=Zi,t.easeQuad=Vi,t.easeQuadIn=function(t){return t*t},t.easeQuadInOut=Vi,t.easeQuadOut=function(t){return t*(2-t)},t.easeSin=to,t.easeSinIn=function(t){return 1==+t?1:1-Math.cos(t*Ji)},t.easeSinInOut=to,t.easeSinOut=function(t){return Math.sin(t*Ji)},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0},t.extent=p,t.fcumsum=function(t,n){const e=new g;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e},t.forceCenter=function(t,n){var e,r=1;function i(){var i,o,a=e.length,u=0,c=0;for(i=0;if+p||os+p||ac.index){var g=f-u.x-u.vx,y=s-u.y-u.vy,v=g*g+y*y;vt.r&&(t.r=t[n].r)}function c(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r[u(t,n,r),t])));for(a=0,i=new Array(f);a=u)){(t.data!==n||t.next)&&(0===l&&(p+=(l=Vu(e))*l),0===h&&(p+=(h=Vu(e))*h),p(t=(1664525*t+1013904223)%Qu)/Qu}();function l(){h(),f.call("tick",n),e1?(null==e?u.delete(t):u.set(t,p(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=Gu(.1);function o(t){for(var i,o=0,a=n.length;o=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++eKf(r[0],r[1])&&(r[1]=i[1]),Kf(i[0],r[1])>Kf(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Kf(r[1],i[0]))>a&&(a=u,nf=i[0],rf=r[1])}return lf=hf=null,nf===1/0||ef===1/0?[[NaN,NaN],[NaN,NaN]]:[[nf,ef],[rf,of]]},t.geoCentroid=function(t){Ef=kf=Nf=Cf=Pf=zf=Df=qf=0,Rf=new g,Ff=new g,Of=new g,Wc(t,ts);var n=+Rf,e=+Ff,r=+Of,i=Dc(n,e,r);return i2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Bh,t.gray=function(t,n){return new Fe(t,0,0,null==n?1:n)},t.greatest=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)>0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)>0:0===e(n,n))&&(r=n,i=!0);return r},t.greatestIndex=function(t,e=n){if(1===e.length)return G(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)>0)&&(r=n,i=o);return i},t.group=M,t.groupSort=function(t,e,r){return(1===e.length?k(A(t,e,r),(([t,e],[r,i])=>n(e,i)||n(t,r))):k(M(t,r),(([t,r],[i,o])=>e(r,o)||n(t,i)))).map((([t])=>t))},t.groups=function(t,...n){return S(t,Array.from,w,n)},t.hcl=Le,t.hierarchy=Xh,t.histogram=U,t.hsl=Ae,t.html=Fu,t.image=function(t,n){return new Promise((function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t}))},t.index=function(t,...n){return S(t,w,T,n)},t.indexes=function(t,...n){return S(t,Array.from,T,n)},t.interpolate=Mr,t.interpolateArray=function(t,n){return(gr(n)?pr:yr)(t,n)},t.interpolateBasis=rr,t.interpolateBasisClosed=ir,t.interpolateBlues=q_,t.interpolateBrBG=Gv,t.interpolateBuGn=s_,t.interpolateBuPu=h_,t.interpolateCividis=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},t.interpolateCool=V_,t.interpolateCubehelix=Yr,t.interpolateCubehelixDefault=X_,t.interpolateCubehelixLong=Lr,t.interpolateDate=vr,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateGnBu=p_,t.interpolateGreens=F_,t.interpolateGreys=I_,t.interpolateHcl=Ir,t.interpolateHclLong=Ur,t.interpolateHsl=Rr,t.interpolateHslLong=Fr,t.interpolateHue=function(t,n){var e=ur(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateInferno=nb,t.interpolateLab=function(t,n){var e=fr((t=Re(t)).l,(n=Re(n)).l),r=fr(t.a,n.a),i=fr(t.b,n.b),o=fr(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateMagma=tb,t.interpolateNumber=_r,t.interpolateNumberArray=pr,t.interpolateObject=br,t.interpolateOrRd=y_,t.interpolateOranges=H_,t.interpolatePRGn=$v,t.interpolatePiYG=Zv,t.interpolatePlasma=eb,t.interpolatePuBu=m_,t.interpolatePuBuGn=__,t.interpolatePuOr=Qv,t.interpolatePuRd=w_,t.interpolatePurples=B_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return $_.h=360*t-100,$_.s=1.5-1.5*n,$_.l=.8-.9*n,$_+""},t.interpolateRdBu=t_,t.interpolateRdGy=e_,t.interpolateRdPu=A_,t.interpolateRdYlBu=i_,t.interpolateRdYlGn=a_,t.interpolateReds=L_,t.interpolateRgb=sr,t.interpolateRgbBasis=hr,t.interpolateRgbBasisClosed=dr,t.interpolateRound=Ar,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,W_.r=255*(n=Math.sin(t))*n,W_.g=255*(n=Math.sin(t+Z_))*n,W_.b=255*(n=Math.sin(t+K_))*n,W_+""},t.interpolateSpectral=c_,t.interpolateString=wr,t.interpolateTransformCss=Cr,t.interpolateTransformSvg=Pr,t.interpolateTurbo=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},t.interpolateViridis=J_,t.interpolateWarm=G_,t.interpolateYlGn=k_,t.interpolateYlGnBu=S_,t.interpolateYlOrBr=C_,t.interpolateYlOrRd=z_,t.interpolateZoom=Dr,t.interrupt=gi,t.intersection=function(t,...n){t=new Set(t),n=n.map(et);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},t.interval=function(t,n,e){var r=new ei,i=n;return null==n?(r.restart(t,n,e),r):(r._restart=r.restart,r.restart=function(t,n,e){n=+n,e=null==e?ti():+e,r._restart((function o(a){a+=i,r._restart(o,i+=n,e),t(a)}),n,e)},r.restart(t,n,e),r)},t.isoFormat=Mv,t.isoParse=Av,t.json=function(t,n){return fetch(t,n).then(Du)},t.lab=Re,t.lch=function(t,n,e,r){return 1===arguments.length?Ye(t):new je(e,n,t,null==r?1:r)},t.least=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)<0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)<0:0===e(n,n))&&(r=n,i=!0);return r},t.leastIndex=K,t.line=Cb,t.lineRadial=Ib,t.linkHorizontal=function(){return jb(Hb)},t.linkRadial=function(){var t=jb(Gb);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return jb(Xb)},t.local=Rn,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))},t.matcher=Ct,t.max=B,t.maxIndex=G,t.mean=function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e},t.median=function(t,n){return H(t,.5,n)},t.merge=V,t.min=Y,t.minIndex=$,t.namespace=xt,t.namespaces=mt,t.nice=O,t.now=ti,t.pack=function(){var t=null,n=1,e=1,r=hd;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(gd(t)).eachAfter(yd(r,.5)).eachBefore(vd(1)):i.eachBefore(gd(pd)).eachAfter(yd(hd,1)).eachAfter(yd(r,i.r/Math.min(n,e))).eachBefore(vd(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=sd(n),i):t},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:dd(+t),i):r},i},t.packEnclose=Kh,t.packSiblings=function(t){return fd(t),t},t.pairs=function(t,n=W){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e},t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&bd(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a0&&(d+=l);for(null!=n?p.sort((function(t,e){return n(g[t],g[e])})):null!=e&&p.sort((function(t,n){return e(a[t],a[n])})),u=0,f=d?(v-h*b)/d:0;u0?l*f:0)+b,g[c]={data:a[c],index:u,value:l,startAngle:y,endAngle:s,padAngle:_};return g}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:rb(+t),a):o},a},t.piecewise=jr,t.pointRadial=Bb,t.pointer=In,t.pointers=function(t,n){return t.target&&(t=On(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>In(t,n)))},t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++eu!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;n(n=1664525*n+1013904223|0,ep*(n>>>0))},t.randomLogNormal=Ld,t.randomLogistic=tp,t.randomNormal=Yd,t.randomPareto=Gd,t.randomPoisson=np,t.randomUniform=Ud,t.randomWeibull=Qd,t.range=Z,t.reduce=function(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rgb=ve,t.ribbon=function(){return ba()},t.ribbonArrow=function(){return ba(_a)},t.rollup=A,t.rollups=function(t,n,...e){return S(t,Array.from,n,e)},t.scaleBand=up,t.scaleDiverging=function t(){var n=bp(Pv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleDivergingLog=function t(){var n=Ep(Pv()).domain([.1,1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleDivergingPow=zv,t.scaleDivergingSqrt=function(){return zv.apply(null,arguments).exponent(.5)},t.scaleDivergingSymlog=function t(){var n=Cp(Pv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleIdentity=function t(n){var e;function r(t){return null==t||isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,fp),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,fp):[0,1],bp(r)},t.scaleImplicit=op,t.scaleLinear=function t(){var n=vp();return n.copy=function(){return gp(n,t())},rp.apply(n,arguments),bp(n)},t.scaleLog=function t(){var n=Ep(yp()).domain([1,10]);return n.copy=function(){return gp(n,t()).base(n.base())},rp.apply(n,arguments),n},t.scaleOrdinal=ap,t.scalePoint=function(){return cp(up.apply(null,arguments).paddingInner(1))},t.scalePow=Rp,t.scaleQuantile=function t(){var e,r=[],i=[],a=[];function u(){var t=0,n=Math.max(1,i.length);for(a=new Array(n-1);++t0?a[n-1]:r[0],n=i?[a[i-1],r]:[a[n-1],a[n]]},c.unknown=function(t){return arguments.length?(n=t,c):c},c.thresholds=function(){return a.slice()},c.copy=function(){return t().domain([e,r]).range(u).unknown(n)},rp.apply(bp(c),arguments)},t.scaleRadial=function t(){var n,e=vp(),r=[0,1],i=!1;function o(t){var r=Op(e(t));return isNaN(r)?n:i?Math.round(r):r}return o.invert=function(t){return e.invert(Fp(t))},o.domain=function(t){return arguments.length?(e.domain(t),o):e.domain()},o.range=function(t){return arguments.length?(e.range((r=Array.from(t,fp)).map(Fp)),o):r.slice()},o.rangeRound=function(t){return o.range(t).round(!0)},o.round=function(t){return arguments.length?(i=!!t,o):i},o.clamp=function(t){return arguments.length?(e.clamp(t),o):e.clamp()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(e.domain(),r).round(i).clamp(e.clamp()).unknown(n)},rp.apply(o,arguments),bp(o)},t.scaleSequential=function t(){var n=bp(kv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=Ep(kv()).domain([1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleSequentialPow=Cv,t.scaleSequentialQuantile=function t(){var e=[],r=lp;function i(t){if(null!=t&&!isNaN(t=+t))return r((o(e,t,1)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(n),i},i.interpolator=function(t){return arguments.length?(r=t,i):r},i.range=function(){return e.map(((t,n)=>r(n/(e.length-1))))},i.quantiles=function(t){return Array.from({length:t+1},((n,r)=>H(e,r/t)))},i.copy=function(){return t(r).domain(e)},ip.apply(i,arguments)},t.scaleSequentialSqrt=function(){return Cv.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Cp(kv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleSqrt=function(){return Rp.apply(null,arguments).exponent(.5)},t.scaleSymlog=function t(){var n=Cp(yp());return n.copy=function(){return gp(n,t()).constant(n.constant())},rp.apply(n,arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],i=1;function a(t){return null!=t&&t<=t?r[o(e,t,0,i)]:n}return a.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},a.unknown=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},rp.apply(a,arguments)},t.scaleTime=function(){return rp.apply(Ev(Kg,Qg,xg,bg,og,eg,tg,Qp,Zp,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return rp.apply(Ev(Wg,Zg,Gg,Hg,Cg,Eg,Tg,Mg,Zp,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scan=function(t,n){const e=K(t,n);return e<0?void 0:e},t.schemeAccent=Rv,t.schemeBlues=D_,t.schemeBrBG=Xv,t.schemeBuGn=f_,t.schemeBuPu=l_,t.schemeCategory10=qv,t.schemeDark2=Fv,t.schemeGnBu=d_,t.schemeGreens=R_,t.schemeGreys=O_,t.schemeOrRd=g_,t.schemeOranges=j_,t.schemePRGn=Vv,t.schemePaired=Ov,t.schemePastel1=Iv,t.schemePastel2=Uv,t.schemePiYG=Wv,t.schemePuBu=b_,t.schemePuBuGn=v_,t.schemePuOr=Kv,t.schemePuRd=x_,t.schemePurples=U_,t.schemeRdBu=Jv,t.schemeRdGy=n_,t.schemeRdPu=M_,t.schemeRdYlBu=r_,t.schemeRdYlGn=o_,t.schemeReds=Y_,t.schemeSet1=Bv,t.schemeSet2=Yv,t.schemeSet3=Lv,t.schemeSpectral=u_,t.schemeTableau10=jv,t.schemeYlGn=E_,t.schemeYlGnBu=T_,t.schemeYlOrBr=N_,t.schemeYlOrRd=P_,t.select=Dn,t.selectAll=function(t){return"string"==typeof t?new Pn([document.querySelectorAll(t)],[document.documentElement]):new Pn([null==t?[]:Et(t)],Cn)},t.selection=zn,t.selector=St,t.selectorAll=Nt,t.shuffle=Q,t.shuffler=J,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1},t.sort=k,t.stack=function(){var t=rb([]),n=Xm,e=Hm,r=Gm;function i(i){var o,a,u=Array.from(t.apply(this,arguments),Vm),c=u.length,f=-1;for(const t of i)for(o=0,++f;o0)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):(r[0]=0,r[1]=i)},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a0)throw new Error("cycle");return o}return e.id=function(n){return arguments.length?(t=ld(n),e):t},e.parentId=function(t){return arguments.length?(n=ld(t),e):n},e},t.style=Jt,t.subset=function(t,n){return rt(n,t)},t.sum=function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e},t.superset=rt,t.svg=Ou,t.symbol=function(t,n){var e=null;function r(){var r;if(e||(e=r=fa()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return t="function"==typeof t?t:rb(t||Vb),n="function"==typeof n?n:rb(void 0===n?64:+n),r.type=function(n){return arguments.length?(t="function"==typeof n?n:rb(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r},t.symbolCircle=Vb,t.symbolCross=$b,t.symbolDiamond=Kb,t.symbolSquare=em,t.symbolStar=nm,t.symbolTriangle=im,t.symbolWye=fm,t.symbols=sm,t.text=Nu,t.thresholdFreedmanDiaconis=function(t,n,e){return Math.ceil((e-n)/(2*(H(t,.75)-H(t,.25))*Math.pow(c(t),-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*d(t)*Math.pow(c(t),-1/3)))},t.thresholdSturges=I,t.tickFormat=_p,t.tickIncrement=R,t.tickStep=F,t.ticks=q,t.timeDay=eg,t.timeDays=rg,t.timeFormatDefaultLocale=xv,t.timeFormatLocale=ey,t.timeFriday=sg,t.timeFridays=vg,t.timeHour=tg,t.timeHours=ng,t.timeInterval=Bp,t.timeMillisecond=Yp,t.timeMilliseconds=Lp,t.timeMinute=Qp,t.timeMinutes=Jp,t.timeMonday=ag,t.timeMondays=dg,t.timeMonth=bg,t.timeMonths=mg,t.timeSaturday=lg,t.timeSaturdays=_g,t.timeSecond=Zp,t.timeSeconds=Kp,t.timeSunday=og,t.timeSundays=hg,t.timeThursday=fg,t.timeThursdays=yg,t.timeTickInterval=Qg,t.timeTicks=Kg,t.timeTuesday=ug,t.timeTuesdays=pg,t.timeWednesday=cg,t.timeWednesdays=gg,t.timeWeek=og,t.timeWeeks=hg,t.timeYear=xg,t.timeYears=wg,t.timeout=ci,t.timer=ri,t.timerFlush=ii,t.transition=Hi,t.transpose=tt,t.tree=function(){var t=Ad,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new Nd(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Nd(r[i],i)),e.parent=n;return(a.parent=new Nd(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore((function(t){t.xs.x&&(s=t),t.depth>l.depth&&(l=t)}));var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),g=e/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Sd(u),o=Td(o),u&&o;)c=Td(c),(a=Sd(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(Ed(kd(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Sd(a)&&(a.t=u,a.m+=l-s),o&&!Td(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Dd,n=!1,e=1,r=1,i=[0],o=hd,a=hd,u=hd,c=hd,f=hd;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(_d),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}var l=f[n],h=r/2+l,d=n+1,p=e-1;for(;d>>1;f[g]c-o){var _=r?(i*v+a*y)/r:a;t(n,d,y,i,o,_,c),t(d,e,v,_,o,a,c)}else{var b=r?(o*v+c*y)/r:c;t(n,d,y,i,o,a,b),t(d,e,v,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=bd,t.treemapResquarify=qd,t.treemapSlice=Cd,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Cd:bd)(t,n,e,r,i)},t.treemapSquarify=Dd,t.tsv=zu,t.tsvFormat=mu,t.tsvFormatBody=xu,t.tsvFormatRow=Mu,t.tsvFormatRows=wu,t.tsvFormatValue=Au,t.tsvParse=_u,t.tsvParseRows=bu,t.union=function(...t){const n=new Set;for(const e of t)for(const t of e)n.add(t);return n},t.utcDay=Eg,t.utcDays=kg,t.utcFriday=Rg,t.utcFridays=Lg,t.utcHour=Tg,t.utcHours=Sg,t.utcMillisecond=Yp,t.utcMilliseconds=Lp,t.utcMinute=Mg,t.utcMinutes=Ag,t.utcMonday=Pg,t.utcMondays=Ig,t.utcMonth=Hg,t.utcMonths=Xg,t.utcSaturday=Fg,t.utcSaturdays=jg,t.utcSecond=Zp,t.utcSeconds=Kp,t.utcSunday=Cg,t.utcSundays=Og,t.utcThursday=qg,t.utcThursdays=Yg,t.utcTickInterval=Zg,t.utcTicks=Wg,t.utcTuesday=zg,t.utcTuesdays=Ug,t.utcWednesday=Dg,t.utcWednesdays=Bg,t.utcWeek=Cg,t.utcWeeks=Og,t.utcYear=Gg,t.utcYears=Vg,t.variance=h,t.version="6.7.0",t.window=Wt,t.xml=Ru,t.zip=function(){return tt(arguments)},t.zoom=function(){var t,n,e,r=ox,i=ax,o=sx,a=cx,u=fx,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=Dr,h=pt("start","zoom","end"),d=500,p=0,g=10;function y(t){t.property("__zoom",ux).on("wheel.zoom",M).on("mousedown.zoom",A).on("dblclick.zoom",T).filter(u).on("touchstart.zoom",S).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new tx(n,t.x,t.y)}function _(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new tx(t.k,r,i)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function m(t,n,e,r){t.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=x(t,o).event(r),u=i.apply(t,o),c=null==e?b(u):"function"==typeof e?e.apply(t,o):e,f=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),s=t.__zoom,h="function"==typeof n?n.apply(t,o):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new tx(e,c[0]-n[0]*e,c[1]-n[1]*e)}a.zoom(null,t)}}))}function x(t,n,e){return!e&&t.__zooming||new w(t,n)}function w(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function M(t,...n){if(r.apply(this,arguments)){var e=x(this,n).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),s=In(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=i.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[s,i.invert(s)],gi(this),e.start()}ix(t),e.wheel=setTimeout(l,150),e.zoom("mouse",o(_(v(i,u),e.mouse[0],e.mouse[1]),e.extent,f))}function l(){e.wheel=null,e.end()}}function A(t,...n){if(!e&&r.apply(this,arguments)){var i=x(this,n,!0).event(t),a=Dn(t.view).on("mousemove.zoom",h,!0).on("mouseup.zoom",d,!0),u=In(t,c),c=t.currentTarget,s=t.clientX,l=t.clientY;Yn(t.view),rx(t),i.mouse=[u,this.__zoom.invert(u)],gi(this),i.start()}function h(t){if(ix(t),!i.moved){var n=t.clientX-s,e=t.clientY-l;i.moved=n*n+e*e>p}i.event(t).zoom("mouse",o(_(i.that.__zoom,i.mouse[0]=In(t,c),i.mouse[1]),i.extent,f))}function d(t){a.on("mousemove.zoom mouseup.zoom",null),Ln(t.view,i.moved),ix(t),i.event(t).end()}}function T(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=In(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),c=e.k*(t.shiftKey?.5:2),l=o(_(v(e,c),a,u),i.apply(this,n),f);ix(t),s>0?Dn(this).transition().duration(s).call(m,l,a,t):Dn(this).call(y.transform,l,a,t)}}function S(e,...i){if(r.apply(this,arguments)){var o,a,u,c,f=e.touches,s=f.length,l=x(this,i,e.changedTouches.length===s).event(e);for(rx(e),a=0;a dist/package.js && rollup -c","test":"tape 'test/**/*-test.js'","prepublishOnly":"yarn test","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js"}; +export var devDependencies = {"json2module":"0.0","rimraf":"3","rollup":"2","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"5","rollup-plugin-terser":"7","tape":"4","tape-await":"0.1"}; +export var dependencies = {"d3-array":"2","d3-axis":"2","d3-brush":"2","d3-chord":"2","d3-color":"2","d3-contour":"2","d3-delaunay":"5","d3-dispatch":"2","d3-drag":"2","d3-dsv":"2","d3-ease":"2","d3-fetch":"2","d3-force":"2","d3-format":"2","d3-geo":"2","d3-hierarchy":"2","d3-interpolate":"2","d3-path":"2","d3-polygon":"2","d3-quadtree":"2","d3-random":"2","d3-scale":"3","d3-scale-chromatic":"2","d3-selection":"2","d3-shape":"2","d3-time":"2","d3-time-format":"3","d3-timer":"2","d3-transition":"2","d3-zoom":"2"}; diff --git a/gen/local/dist/d3-hwschematic-dark.css b/gen/local/dist/d3-hwschematic-dark.css new file mode 100644 index 00000000..de7803b7 --- /dev/null +++ b/gen/local/dist/d3-hwschematic-dark.css @@ -0,0 +1,96 @@ +.d3-hwschematic text { + font-family: monospace; +} + +.d3-hwschematic .node { + stroke: #BDBDBD; + stroke-width: 1px; + fill: #e6ffff; + border: 2px; +} + + +.d3-hwschematic .node-0 { + fill: white; +} + +.d3-hwschematic .node-1 { +} + +.d3-hwschematic .node text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic.node-operator { + stroke: lime; + stroke-width: 1px; + fill: aquamarine; + border: 2px; +} + +.d3-hwschematic.node-operator text { + font-style: normal; + font-family: monospace; + fill: lime; + stroke-width: 0; +} + +.d3-hwschematic .node-external-port { + stroke: lime; + stroke-width: 0; + fill: #BDBDBD; + border: 1px; +} + +.d3-hwschematic .node-external-port text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic .link { + stroke: lime; + fill: none; +} + +.d3-hwschematic .junction-point { + stroke: lime; + fill: lime; +} + +.d3-hwschematic .link-selected { + stroke: orange; + fill: none; +} + +.d3-hwschematic .link-wrap { + stroke-width: 8; + fill: none; + stroke: transparent; + stroke-opacity: .6; +} +.d3-hwschematic .link-wrap.link-wrap-activated { + stroke: deepskyblue; +} + +.d3-hwschematic .port { + stroke: lime; + opacity: .6; +} + +.d3-hwschematic tspan { + white-space: pre; +} + +.d3-hwschematic-tooltip { + z-index: 2; + background: cornsilk; + border: 1px solid black; + border-radius: 5px; + padding: 5px; + position: fixed; +} \ No newline at end of file diff --git a/gen/local/dist/d3-hwschematic.css b/gen/local/dist/d3-hwschematic.css new file mode 100644 index 00000000..37ad3ba2 --- /dev/null +++ b/gen/local/dist/d3-hwschematic.css @@ -0,0 +1,91 @@ +.d3-hwschematic text { + font-family: monospace; +} + +.d3-hwschematic .node { + stroke: #BDBDBD; + stroke-width: 1px; + fill: #e6ffff; + border: 2px; +} + + +.d3-hwschematic .node-0 { + fill: white; +} + +.d3-hwschematic .node-1 { +} + +.d3-hwschematic .node text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic.node-operator { + stroke: BLACK; + stroke-width: 1px; + fill: aquamarine; + border: 2px; +} + +.d3-hwschematic.node-operator text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic .node-external-port { + stroke: #000; + stroke-width: 0; + fill: #BDBDBD; + border: 1px; +} + +.d3-hwschematic .node-external-port text { + font-style: normal; + font-family: monospace; + fill: black; + stroke-width: 0; +} + +.d3-hwschematic .link { + stroke: #000; + fill: none; +} + +.d3-hwschematic .link-selected { + stroke: orange; + fill: none; +} + +.d3-hwschematic .link-wrap { + stroke-width: 8; + fill: none; + stroke: transparent; + stroke-opacity: .6; +} +.d3-hwschematic .link-wrap.link-wrap-activated { + stroke: deepskyblue; +} + +.d3-hwschematic .port { + stroke: #000; + opacity: .6; +} + +.d3-hwschematic tspan { + white-space: pre; +} + +.d3-hwschematic-tooltip { + z-index: 2; + background: cornsilk; + border: 1px solid black; + border-radius: 5px; + padding: 5px; + position: fixed; +} \ No newline at end of file diff --git a/gen/local/dist/d3-hwschematic.js b/gen/local/dist/d3-hwschematic.js new file mode 100644 index 00000000..7d12d9fd --- /dev/null +++ b/gen/local/dist/d3-hwschematic.js @@ -0,0 +1,2887 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3'), require('elkjs')) : + typeof define === 'function' && define.amd ? define(['exports', 'd3', 'elkjs'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.ELK)); +})(this, (function (exports, d3, ELK) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); + } + + var d3__namespace = /*#__PURE__*/_interopNamespace(d3); + var ELK__default = /*#__PURE__*/_interopDefaultLegacy(ELK); + + var PORT_MARKERS = { + "WEST": { + "INPUT": "#westInPortMarker", + "OUTPUT": "#westOutPortMarker"}, + "EAST": { + "INPUT": "#eastInPortMarker", + "OUTPUT": "#eastOutPortMarker"}, + "NORTH": { + "INPUT": "#northInPortMarker", + "OUTPUT": "#northOutPortMarker"}, + "SOUTH": { + "INPUT": "#southInPortMarker" , + "OUTPUT": "#southOutPortMarker"}, + }; + + function addMarkers(defs, PORT_PIN_SIZE) { + // real size of marker + var w = 7; + var h = 10; + + function addMarker(id, arrowTranslate, arrowRotate=0) { + var rightArrow = "M 0 4 2 4 2 0 7 5 2 10 2 6 0 6 Z"; + var trans = ""; + + if (arrowTranslate[0] !== 0 || arrowTranslate[1] !== 0) + trans += "translate(" + arrowTranslate[0] + ", " + arrowTranslate[1] + ")"; + + if (arrowRotate !== 0) + trans += "rotate(" + arrowRotate + ")"; + + var cont = defs.append("g"); + + cont + .attr("id", id) + .attr("class", "port") + .append("path") + .attr("d", rightArrow); + + if (trans) + cont + .attr("transform", trans); + } + + var horizYOffset = (PORT_PIN_SIZE[1] - h) * 0.5; + var horizYOffset2 = (PORT_PIN_SIZE[1] + h) * 0.5; + + var vertXOffset = -(PORT_PIN_SIZE[1] - w) * 0.5; + addMarker("westInPortMarker", [0, horizYOffset]); + addMarker("westOutPortMarker",[w, horizYOffset2], 180); + + addMarker("eastInPortMarker", [w, horizYOffset2], 180); + addMarker("eastOutPortMarker",[0, horizYOffset]); + + addMarker("northInPortMarker", [vertXOffset, -w], 90); + addMarker("northOutPortMarker",[vertXOffset, 0], 270); + + addMarker("southInPortMarker", [vertXOffset, w], 270); + addMarker("southOutPortMarker",[vertXOffset, 0], 90); + } + + function getIOMarker(d) { + var side = d.properties.side; + var portType = d.direction; + var marker = PORT_MARKERS[side][portType]; + if (marker === undefined) { + throw new Error("Wrong side, portType", side, portType) + } + return marker; + } + + function portLevel(port){ + if(!port.parent) return 0; + else { + return portLevel(port.parent)+1; + } + + } + + /* + * Basic renderer which renders node as a box with ports, optionally with the body text + */ + class GenericNodeRenderer { + /** + * @param schematic instance of HwSchematic + **/ + constructor(schematic) { + this.schematic = schematic; + } + /** + * check if this selector should be used for this node + **/ + selector(node) { + // always return true, because this is a default renderer which just renders a box with ports + return true; + } + + getNodeLabelWidth(d) { + var schematic = this.schematic; + var widthOfText = schematic.widthOfText.bind(schematic); + return widthOfText(d.hwMeta.name); + } + + /** + * Init bodyText and resolve size of node from body text and ports + * + * @param d component node + * + */ + initNodeSizes(d) { + var schematic = this.schematic; + if (d.properties["org.eclipse.elk.noLayout"]) + return; + var widthOfText = schematic.widthOfText.bind(schematic); + + var labelW = this.getNodeLabelWidth(d); + var max = Math.max; + var bodyTextSize = this.initBodyTextLines(d); + const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; + bodyTextSize[0] = Math.min(bodyTextSize[0], MBT[0]); + bodyTextSize[1] = Math.min(bodyTextSize[1], MBT[1]); + + // {PortSide: (portCnt, portWidth)} + var portDim = { + "WEST": [0, 0], + "EAST": [0, 0], + "SOUTH": [0, 0], + "NORTH": [0, 0] + }; + var PORT_PIN_SIZE_x = schematic.PORT_PIN_SIZE[0], + PORT_PIN_SIZE_y = schematic.PORT_PIN_SIZE[1]; + var CHAR_WIDTH = schematic.CHAR_WIDTH; + if (d.ports != null) + d.ports.forEach(function(p) { + var t = p.properties.side; + var indent = 0; + if (portLevel(p) > 0) + indent = (portLevel(p)+1) * CHAR_WIDTH; + var portW = widthOfText(p.hwMeta.name) + indent; + var pDim = portDim[t]; + if (pDim === undefined) + throw new Error(t); + pDim[0]++; + pDim[1] = max(pDim[1], portW); + + // dimension of connection pin + p.width = PORT_PIN_SIZE_x; + p.height = PORT_PIN_SIZE_y; + }); + + var west = portDim["WEST"], + east = portDim["EAST"], + south = portDim["SOUTH"], + north = portDim["NORTH"]; + + var portColums = 0; + if (west[0] && west[1] > 0) + portColums += 1; + if (east[0] && east[1] > 0) + portColums += 1; + + var middleSpacing = 0; + if (portColums == 2) + middleSpacing = schematic.NODE_MIDDLE_PORT_SPACING; + var portW = max(west[1], east[1]); + + d.portLabelWidth = portW; + d.width = max(portW * portColums + middleSpacing, labelW, + max(south[0], north[0]) * schematic.PORT_HEIGHT) + + bodyTextSize[0] + CHAR_WIDTH; + d.height = max(max(west[0], east[0]) * schematic.PORT_HEIGHT, + bodyTextSize[1], + max(south[1], north[1]) * CHAR_WIDTH); + } + + /** + * Split bodyText of one to lines and resolve dimensions of body text + * + * @param d component node + */ + initBodyTextLines(d) { + var schematic = this.schematic; + var max = Math.max; + var bt = d.hwMeta.bodyText; + if (bt) { + if (typeof bt === "string") { + bt = d.hwMeta.bodyText = bt.split("\n"); + } + var bodyTextW = 0; + bt.forEach(function(line) { + bodyTextW = max(bodyTextW, line.length); + }); + bodyTextW *= schematic.CHAR_WIDTH; + var bodyTextH = bt.length * schematic.CHAR_HEIGHT; + } else { + var bodyTextW = 0; + var bodyTextH = 0; + } + var pad = schematic.BODY_TEXT_PADDING; + if (bodyTextW > 0) + bodyTextW += pad[1] + pad[3]; + if (bodyTextH > 0) + bodyTextH += pad[0] + pad[2]; + return [bodyTextW, bodyTextH]; + } + + /** + * @param bodyTexts list of strings + */ + renderTextLines(bodyTexts) { + var schematic = this.schematic; + const padTop = schematic.BODY_TEXT_PADDING[0]; + const padLeft = schematic.BODY_TEXT_PADDING[3]; + const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; + const CHAR_WIDTH = schematic.CHAR_WIDTH; + const CHAR_HEIGHT = schematic.CHAR_HEIGHT; + + bodyTexts.each(function() { + var bodyText = d3__namespace.select(this); + var d = bodyText.data()[0]; + var bodyTextLines = d.hwMeta.bodyText; + var _MBT = [MBT[0] / CHAR_WIDTH, MBT[1] / CHAR_HEIGHT]; + + if (bodyTextLines && (!d.children + || d.children.length == 0)) { + bodyTextLines.forEach(function(line, dy) { + if (line.length > _MBT[0]) + line = line.slice(0, _MBT[0] - 3) + "..."; + if (dy > _MBT[1]) + return; + bodyText + .append("tspan") + .attr("x", d.portLabelWidth + padLeft) + .attr("y", padTop) + .attr("dy", dy + "em") + .text(line); + }); + } + }); + } + + /** + * Prepare node before ELK processing + * */ + prepare(node) { + this.initNodeSizes(node); + } + + /** + * Render svg of node + * + * @param root root svg element where nodes should be rendered + * @param nodeG svg g for each node with data binded + * */ + render(root, nodeG) { + var node = nodeG + .attr("class", function(d) { + var cssClass; + if (d.hwMeta && d.hwMeta.isExternalPort) { + cssClass = "node-external-port"; + } else { + let depth = 0; + let parent = d.hwMeta.parent; + while (parent) { + ++depth; + parent = parent.hwMeta.parent; + } + if (depth % 2 === 0) { + cssClass = "node node-0"; + } else { + cssClass = "node node-1"; + } + } + if (d.hwMeta.cssClass) { + cssClass += " " + d.hwMeta.cssClass; + } + return cssClass; + }) + .attr("style", function(d) { return d.hwMeta.cssStyle; }); + var nodeBody = node.append("rect"); + // set dimensions and style of node + nodeBody + .attr("width", function(d) { return d.width }) + .attr("height", function(d) { return d.height }) + .attr("rx", 5) // rounded corners + .attr("ry", 5); + + // apply node positions + node + .attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }); + + // spot node label + node.append("text") + .text(function(d) { + if (d.hwMeta && !d.hwMeta.isExternalPort) { + return d.hwMeta.name; + } else { + return ""; + } + }); + + // spot node body text + node.append("text") + .call(this.renderTextLines.bind(this)); + + this.renderPorts(node); + } + + renderPorts(node) { + var schematic = this.schematic; + var PORT_HEIGHT = schematic.PORT_HEIGHT; + var CHAR_WIDTH = schematic.CHAR_WIDTH; + var portG = node.selectAll(".port") + .data(function(d) { + return d.ports || []; + }) + .enter() + .append("g") + .attr("style", (d) => d.hwMeta.cssStyle) + .attr("class", (d) => { + if (d.hwMeta.cssStyle) { + return "port " + d.hwMeta.cssClass; + } else { + return "port"; + } + }); + + // apply port positions + portG + .attr("transform", function(d) { + return "translate(" + d.x + "," + d.y + ")" + }); + + node.each(function(d) { + var ignorePortLabel = typeof d.children !== "undefined"; + if (d.ports != null) { + d.ports.forEach(function(p) { + p.ignoreLabel = ignorePortLabel; + }); + } + }); + + // spot port name + portG.append("text") + .text(function(d, i) { + /*var next_d = port_data[i+1]; + if (next_d && next_d.hwMeta.level > d.hwMeta.level) { + console.log(d.hwMeta.name); + //d.hwMeta.name=toString("+"); + } + */ + if (d.ignoreLabel) + return ""; + else if (d.parent) { + var indent = '-'.repeat(portLevel(d)); + var side = d.properties.side; + if (side == "WEST") { + return indent + d.hwMeta.name; } else if (side == "EAST") { + return d.hwMeta.name + indent; + } else { + throw new Error(side); + } + } else + return d.hwMeta.name; + }) + .attr("x", function(d) { + var side = d.properties.side; + if (side == "WEST") { + return 7; + } else if (side == "EAST") { + if (typeof this.getBBox == "undefined") { + // JSDOM under nodejs + return -this.textContent.length * CHAR_WIDTH - CHAR_WIDTH / 2 + } + return -this.getBBox().width - CHAR_WIDTH / 2; + } else if (side == "NORTH") { + return 0; + } else if (side == "SOUTH") { + return 0; + } else { + throw new Error(side); + } + }) + .attr("y", PORT_HEIGHT * 0.75); + + // spot input/output marker + portG.append("use") + .attr("href", getIOMarker); + } + } + + /** + * Container for node renderer instances. + * This object initiates the node to renderer binding process in prepare() + * and executes node rendering in render() + */ + class NodeRendererContainer { + constructor() { + this.renderers = []; + } + + // add new renderer + registerRenderer(renderer) { + var rs = this.renderers; + for (var i = 0; i < rs.length; i++) { + var r = rs[i]; + if (r.constructor === GenericNodeRenderer) { + // insert custom renderer before GenericNodeRenderer + // to prevent GenericNodeRenderer.selector from prematurely halting renderers.some + rs.splice(i, 0, renderer); + return; + } + } + rs.push(renderer); + } + + // Bind node to renderer recursively + prepare(node) { + var r = null; + this.renderers.some(function(ren) { + if (ren.selector(node)) + r = ren; + return r != null; + }); + if (r == null) { + throw new Error("Can not resolve renderer for node " + node); + } + node.hwMeta.renderer = r; + r.prepare(node); + var prep = this.prepare.bind(this); + if (node.children) { + node.children.forEach(prep); + } + if (node._children) { + node._children.forEach(prep); + } + } + + // Render all nodes using selected renderer + render(root, nodeG) { + var renderers = this.renderers; + var nodesForRenderer = renderers.map(() => []); + nodeG.each(function(d) { + var n = this; + renderers.forEach(function(r, i) { + if (d.hwMeta.renderer === r) { + nodesForRenderer[i].push(n); + } + }); + }); + nodesForRenderer.forEach(function(nodes, i) { + if (nodes.length) { + nodes = d3__namespace.selectAll(nodes); + renderers[i].render(root, nodes); + } + }); + } + } + + /** + * Library of functions which creates shapes of operator nodes (gate symbols) + **/ + + + /** + * Draw a circle for arithmetic nodes + */ + function nodeCircle(root) { + root.append("circle") + .attr("r", "12.5") + .attr("cx", "12.5") + .attr("cy", "12.5"); + } + + /** + * Draw a negation circle for nodes like NOT, NAND, NOR, etc... + */ + function negationCircle(root, x, y) { + root.append("circle") + .attr("cx", x) + .attr("cy", y) + .attr("r", "3"); + } + + function nodeCircleWithText(root, text) { + // width="25" height="25" + var tl = text.length; + if (tl > 2) { + throw new Error("Text too big for small node circle"); + } + var x = 8; + if (tl === 2) + x = 4; + + nodeCircle(root); + root.append("text") + .attr("x", x) + .attr("y", 16) + .text(text); + } + + function nodeBiggerCircleWithText(root, text) { + // width="25" height="25" + var tl = text.length; + if (tl > 6) { + throw new Error("Text too big for small node circle"); + } + var x = 6; + + root.append("circle") + .attr("r", "25") + .attr("cx", "25") + .attr("cy", "25"); + root.append("text") + .attr("x", x) + .attr("y", 28.5) + .text(text); + } + function operatorBox(root) { + root.append("rect") + .attr("width", "25") + .attr("height", "25") + .attr("x", "0") + .attr("y", "0"); + } + + + /** + * Draw a AND gate symbol + */ + function AND(root, addName = true) { + // width="30" height="25" + var g = root.append("g"); + g.append("path") + .attr("d", "M0,0 L0,25 L15,25 A15 12.5 0 0 0 15,0 Z"); + g.attr("transform", "scale(0.8) translate(0, 3)"); + if (addName) + root.append("text") + .attr("x", 8) + .attr("y", 16) + .text("&"); + return g; + } + + /** + * Draw a NAND gate symbol + */ + function NAND(root) { + // width="30" height="25" + AND(root, false); + negationCircle(root, 34, 12.5); + } + + + var OR_SHAPE_PATH = "M3,0 A30 25 0 0 1 3,25 A30 25 0 0 0 33,12.5 A30 25 0 0 0 3,0 z"; + /** + * Draw a OR gate symbol + */ + function OR(root, addName = true) { + // width="30" height="25" + var g = root.append("g"); + g.append("path") + .attr("d", OR_SHAPE_PATH); + g.attr("transform", "scale(0.8) translate(0, 3)"); + if (addName) + root.append("text") + .attr("x", 5) + .attr("y", 16) + .text("or"); + return g; + } + + /** + * Draw a NOR gate symbol + */ + function NOR(root) { + // width="33" height="25" + var g = OR(root, false); + g.append("circle") + .attr("cx", "34") + .attr("cy", "12.5") + .attr("r", "3"); + root.append("text") + .attr("x", 5) + .attr("y", 16) + .text("!|"); + } + + + /** + * Draw a XOR gate symbol + */ + function XOR(root) { + var g = OR(root, false); + g.append("path") + .attr("d", "M0,0 A30 25 0 0 1 0,25"); + root.append("text") + .attr("x", 8) + .attr("y", 16) + .text("^"); + + return g; + } + + + /** + * Draw a NXOR gate symbol + */ + function NXOR(root) { + // width="33" height="25" + var g = XOR(root); + negationCircle(g, 35, 12.5); + root.append("text") + .attr("x", 4) + .attr("y", 16) + .text("!^"); + } + + /** + * Draw a NOT gate symbol + */ + function NOT(root) { + // width="30" height="20" + root.append("path") + .attr("d", "M0,2.5 L0,22.5 L20,12.5 Z"); + negationCircle(root, 23, 12.5); + root.append("text") + .attr("x", 2) + .attr("y", 16) + .text("!"); + } + + /** + * Draw a FF register symbol + */ + function FF(root) { + // width="25" height="25" + operatorBox(root); + + root.append("path") + .attr("d", "M0,2 L5,7 L0,12"); + + root.append("text") + .attr("x", 5) + .attr("y", 16) + .text("FF"); + } + + function FF_ARST(root, arstPolarity, clkPolarity) { + root.append("rect") + .attr("width", "40") + .attr("height", "50") + .attr("x", "0") + .attr("y", "0"); + + //component name + root.append("text") + .attr("x", 7) + .attr("y", 16) + .text("ADFF"); + + //triangle + root.append("path") + .attr("d", "M0,7.5 L6,12.5 L0,17.5 z"); + + if (!clkPolarity) { + root.append("circle") + .attr("cx", 1) + .attr("cy", 12.5) + .attr("r", "1.5") + .style("fill", "white"); + } + + if (!arstPolarity) { + root.append("circle") + .attr("cx", 1) + .attr("cy", 25) + .attr("r", "1.5") + .style("fill", "white"); + } + + root.append("text") + .attr("x", 4) + .attr("y", 27.5) + .style("font-size", "8px") + .text("ARST"); + } + function DLATCH(root, enPolarity) { + root.append("rect") + .attr("width", "50") + .attr("height", "25") + .attr("x", "0") + .attr("y", "0"); + + root.append("text") + .attr("x", 3) + .attr("y", 12) + .text("DLATCH"); + + if (!enPolarity) { + root.append("circle") + .attr("cx", 1) + .attr("cy", 16.5) + .attr("r", "1.5") + .style("fill", "white"); + } + + root.append("text") + .attr("x", 4) + .attr("y", 19) + .style("font-size", "8px") + .text("en"); + } + function RISING_EDGE(root) { + // width="25" height="25" + operatorBox(root); + + root.append("path") + .attr("d", "M5,20 L12.5,20 L12.5,5 L20,5"); + } + + function FALLING_EDGE(root) { + // width="25" height="25" + operatorBox(root); + + root.append("path") + .attr("d", "M5,5 L12.5,5 L12.5,20 L20,20"); + } + + + const DEFAULT_NODE_SIZE = [25, 25]; + const SHAPES = { + "NOT": [NOT, DEFAULT_NODE_SIZE], + + "AND": [AND, DEFAULT_NODE_SIZE], + "NAND": [NAND, DEFAULT_NODE_SIZE], + "OR": [OR, DEFAULT_NODE_SIZE], + "NOR": [NOR, DEFAULT_NODE_SIZE], + "XOR": [XOR, DEFAULT_NODE_SIZE], + "NXOR": [NXOR, DEFAULT_NODE_SIZE], + + "RISING_EDGE": [RISING_EDGE, DEFAULT_NODE_SIZE], + "FALLING_EDGE": [FALLING_EDGE, DEFAULT_NODE_SIZE], + + "ADD": [function ADD(root) { + nodeCircleWithText(root, "+"); + }, DEFAULT_NODE_SIZE], + "SUB": [function SUB(root) { + nodeCircleWithText(root, "-"); + }, DEFAULT_NODE_SIZE], + + "EQ": [function EQ(root) { + nodeCircleWithText(root, "="); + }, DEFAULT_NODE_SIZE], + "NE": [function NE(root) { + nodeCircleWithText(root, "!="); + }, DEFAULT_NODE_SIZE], + "LT": [function LT(root) { + nodeCircleWithText(root, "<"); + }, DEFAULT_NODE_SIZE], + "LE": [function LE(root) { + nodeCircleWithText(root, "<="); + }, DEFAULT_NODE_SIZE], + "GE": [function GE(root) { + nodeCircleWithText(root, ">="); + }, DEFAULT_NODE_SIZE], + "GT": [function GT(root) { + nodeCircleWithText(root, ">"); + }, DEFAULT_NODE_SIZE], + "SHL": [function GT(root) { + nodeCircleWithText(root, "<<"); + }, DEFAULT_NODE_SIZE], + "SHR": [function GT(root) { + nodeCircleWithText(root, ">>"); + }, DEFAULT_NODE_SIZE], + "SHIFT": [function GT(root) { + nodeBiggerCircleWithText(root, "<<,>>"); + }, [50, 50]], + "MUL": [function GT(root) { + nodeCircleWithText(root, "*"); + }, DEFAULT_NODE_SIZE], + "DIV": [function GT(root) { + nodeCircleWithText(root, "/"); + }, DEFAULT_NODE_SIZE], + + "FF": [FF, DEFAULT_NODE_SIZE], + "FF_ARST_clk0_rst0": [(root) => { return FF_ARST(root, false, false)}, [40, 50]], + "FF_ARST_clk1_rst1": [(root) => { return FF_ARST(root, true, true)}, [40, 50]], + "FF_ARST_clk0_rst1": [(root) => { return FF_ARST(root, true, false)}, [40, 50]], + "FF_ARST_clk1_rst0": [(root) => { return FF_ARST(root, false, true)}, [40, 50]], + "DLATCH_en0": [(root) => {return DLATCH(root,false)}, [50, 25]], + "DLATCH_en1": [(root) => {return DLATCH(root,true)}, [50, 25]], + + + }; + + /* + * Render a operator node using predefined shape + * */ + class OperatorNodeRenderer extends GenericNodeRenderer { + constructor(schematic) { + super(schematic); + this.SHAPES = SHAPES; + this._defsAdded = false; + } + + prepare(node) { + if (!this._defsAdded) { + var defs = this.schematic.defs; + var SHAPES = this.SHAPES; + for (const [name, [constructorFn, _]] of Object.entries(SHAPES)) { + this.addShapeToDefs(defs, name, constructorFn); + } + this._defsAdded = true; + } + [node.width, node.height] = this.SHAPES[node.hwMeta.name][1]; + } + + selector(node) { + return node.hwMeta.cls === "Operator" && typeof this.SHAPES[node.hwMeta.name] !== "undefined"; + } + + addShapeToDefs(defs, id, shape) { + var cont = defs.append("g") + .attr("id", id) + .attr("class", "d3-hwschematic node-operator"); + // [note] we need to add d3-hwschematic as well because object in refs are recognized as outside objects when useds + shape(cont); + } + + /** + * Render svg of node + * + * @param root root svg element where nodes should be rendered + * @param nodeG svg g for each node with data binded + * */ + render(root, nodeG) { + // apply node positions + nodeG.attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }) + .attr("class", (d) => d.hwMeta.cssClass) + .attr("style", (d) => d.hwMeta.cssStyle) + .append("use") + .attr("href", function(d) { + return "#" + d.hwMeta.name + }); + } + } + + /** + * Draw a multiplexer operator symbol + */ + function MUX_SHAPE(root) { + // width="20" height="40" + root.append("path") + .attr("d","M0,0 L20,10 L20,30 L0,40 Z"); + } + + class MuxNodeRenderer extends GenericNodeRenderer { + constructor(schematic) { + super(schematic); + this.DEFULT_NODE_SIZE = [20, 40]; + this._defsAdded = false; + } + + prepare(node) { + if (!this._defsAdded) { + var defs = this.schematic.defs; + this.addShapeToDefs(defs); + this._defsAdded = true; + } + node.width = this.DEFULT_NODE_SIZE[0]; + node.height = this.DEFULT_NODE_SIZE[1]; + } + + selector(node) { + return node.hwMeta.cls == "Operator" && ( + node.hwMeta.name === "MUX" || + node.hwMeta.name === "LATCHED_MUX" + ); + } + + addShapeToDefs(defs) { + var cont = defs.append("g"); + cont.attr("id", "MUX"); + cont.attr("class", "d3-hwschematic node-operator"); + MUX_SHAPE(cont); + + var cont = defs.append("g"); + cont.attr("id", "LATCHED_MUX"); + cont.attr("class", "d3-hwschematic node-operator"); + MUX_SHAPE(cont); + cont.append("text") + .text("LA") + .attr("y", "10") + .attr("x", "10") + .attr("style", "writing-mode: tb;"); + } + + /** + * Render svg of node + * + * @param root root svg element where nodes should be rendered + * @param nodeG svg g for each node with data binded + * */ + render(root, nodeG) { + // apply node positions + nodeG.attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }) + .attr("class", (d) => d.hwMeta.cssClass) + .attr("style", (d) => d.hwMeta.cssStyle) + .append("use") + .attr("href", function (d) { + return "#" + d.hwMeta.name; + }); + + + } + } + + class SliceNodeRenderer extends GenericNodeRenderer { + selector(node) { + return node.hwMeta.name === "SLICE" || node.hwMeta.name === "CONCAT"; + } + + getNodeLabelWidth(node) { + return 0; + } + + render(root, nodeG) { + nodeG + .attr("class", (d) => d.hwMeta.cssClass) + .attr("style", (d) => d.hwMeta.cssStyle); + + // spot node main body and set dimensions and style of node + nodeG.append("rect") + .attr("width", function(d) { return d.width }) + .attr("height", function(d) { return d.height }) + .attr("class", "node") + .attr("rx", 5) // rounded corners + .attr("ry", 5); + + // black thick line + nodeG.append("rect") + .attr("x", function (d) { + if (d.hwMeta.name == "SLICE") { + return 0; + } else { + return d.width - 3; + } + }) + .attr("width", "3") + .attr("height", function(d) { return d.height }) + .attr("style", "fill:black;"); + + // apply node positions + nodeG.attr("transform", function(d) { + if (typeof d.x === "undefined" || typeof d.x === "undefined") { + throw new Error("Node with undefined position", d); + } + return "translate(" + d.x + " " + d.y + ")" + }); + + this.renderPorts(nodeG); + } + } + + const RUNNING_IN_NODE = (typeof require !== "undefined"); + const NO_LAYOUT = "org.eclipse.elk.noLayout"; + // kgraph properties that shall be copied + const KGRAPH_KEYS = [ + 'x', 'y', + 'width', 'height', + "sections", + 'sourcePoint', + 'targetPoint', + 'junctionPoints', + 'properties' + ].reduce(function(p, c) { p[c] = 1; return p; }, {}); + + /** + * Webworker creates new graph object and layout props has to be copied back + * to original graph + * + * @param srcGraph: + * new graph from ELK worker + * @param dstGraph: + * original graph provided by user + * @param d3Objs: + * {str(dst obj id): dst obj} + */ + function copyElkProps(srcGraph, dstGraph, d3Objs) { + // init d3Objs + d3Objs[dstGraph.id] = dstGraph; + (dstGraph.edges || []).forEach(function(e) { + if (e.id in d3Objs && d3Objs[e.id] !== e) + throw new Error("Duplicit edge" + e.id); + d3Objs[e.id] = e; + }); + (dstGraph.children || []).forEach(function(n) { + d3Objs[n.id] = n; + }); + (dstGraph.ports || []).forEach(function(p) { + d3Objs[p.id] = p; + }); + + // copy props from this node + copyProps(srcGraph, dstGraph); + (srcGraph.ports || []).forEach(function(p) { + copyProps(p, d3Objs[p.id]); + }); + (srcGraph.labels || []).forEach(function(l, i) { + copyProps(l, dstGraph.labels[i]); + }); + // copy props from edges in this node + (srcGraph.edges || []).forEach(function(e) { + var l = d3Objs[e.id]; + copyProps(e, l); + copyProps(e.source, l.source); + copyProps(e.target, l.target); + // make sure the bendpoint array is valid + l.bendPoints = e.bendPoints || []; + }); + // copy props of children + (srcGraph.children || []).forEach(function(n) { + copyElkProps(n, d3Objs[n.id], d3Objs); + }); + } + function copyProps(src, dst) { + var keys = KGRAPH_KEYS; + for (var k in src) { + if (keys[k]) { + dst[k] = src[k]; + } + } + } + + /** + * Convert section from ELK json to svg path string + */ + function section2svgPath(section) { + var pathBuff = ["M", section.startPoint.x, section.startPoint.y]; + if (section.bendPoints) + section.bendPoints.forEach(function(bp, i) { + pathBuff.push("L"); + pathBuff.push(bp.x); + pathBuff.push(bp.y); + }); + + pathBuff.push("L"); + pathBuff.push(section.endPoint.x); + pathBuff.push(section.endPoint.y); + return pathBuff.join(" ") + } + + /** + * Set the scale to value so + * the available space is used to it's maximum. + */ + function zoomToFit(node, width, height, g) { + var xOffset = -node.x; + var yOffset = -node.y; + var w = node.width || 1; + var h = node.height || 1; + // scale everything so that it fits the specified size + var scale = Math.min(width / w, height / h); + // centering + xOffset += ((width / scale - node.width) / 2); + yOffset += ((height / scale - node.height) / 2); + + // if a transformation group was specified we + // perform a 'zoomToFit' + var t = d3__namespace.zoomTransform(g.node()); + t.k = scale; + t.x = xOffset * scale; + t.y = yOffset * scale; + if (!RUNNING_IN_NODE) { + g = g.transition() + .duration(200); + } + g.attr("transform", t); + } + + function isDescendant(node, child) { + var parent = child.parent; + while (parent) { + if (parent == node) { + return true; + } + parent = parent.parent; + } + return false; + } + function toAbsolutePositionsEdges(n, nodeMap) { + // edges + (n.edges || []).forEach(function(e) { + // transform edge coordinates to absolute coordinates. Note that + // node coordinates are already absolute and that + // edge coordinates are relative to the source node's parent node + // (unless the target node is a descendant of the source node) + var srcNode = nodeMap[e.source]; + var tgtNode = nodeMap[e.target]; + var relative = isDescendant(srcNode, tgtNode) ? + srcNode : srcNode.parent; + + var offset = { x: 0, y: 0 }; + if (relative) { + offset.x = relative.x || 0; + offset.y = relative.y || 0; + } + if (relative.padding) { + offset.x += relative.padding.left || 0; + offset.y += relative.padding.top || 0; + } + if (e.sections) + e.sections.forEach(function(s) { + // ... and apply it to the edge + if (s.startPoint) { + s.startPoint.x += offset.x; + s.startPoint.y += offset.y; + } + if (s.endPoint) { + s.endPoint.x += offset.x; + s.endPoint.y += offset.y; + } + (s.bendPoints || []).forEach(function(bp) { + bp.x += offset.x; + bp.y += offset.y; + }); + }); + if (e.junctionPoints) + e.junctionPoints.forEach(function(jp) { + jp.x += offset.x; + jp.y += offset.y; + }); + }); + // children + (n.children || []).forEach(function(c) { + toAbsolutePositionsEdges(c, nodeMap); + }); + } + function toAbsolutePositions(n, offset, nodeMap) { + n.x = (n.x || 0) + offset.x; + n.y = (n.y || 0) + offset.y; + nodeMap[n.id] = n; + // the offset for the children has to include padding + var childOffset = { x: n.x, y: n.y }; + if (n.padding) { + childOffset.x += n.padding.left || 0; + childOffset.y += n.padding.top || 0; + } + // children + (n.children || []).forEach(function(c) { + c.parent = n; + toAbsolutePositions(c, childOffset, nodeMap); + }); + } + + + /** + * Clean all layout possitions from nodes, nets and ports + */ + function cleanLayout(n) { + delete n.x; + delete n.y; + (n.ports || []).forEach(function(p) { + delete p.x; + delete p.y; + }); + (n.edges || []).forEach(function(e) { + delete e.sections; + delete e.junctionPoints; + }); + (n.children || []).forEach(function(c) { + cleanLayout(c); + }); + } + + function renderLinks(root, edges) { + let junctionPoints = []; + + let link = root.selectAll(".link") + .data(edges) + .enter() + .append("path") + .attr("class", "link") + .attr("d", function(d) { + if (!d.sections) { + d._svgPath = ""; + return ""; + } + if (d.bendpoints || d.sections.length > 1) { + throw new Error("NotImplemented"); + } + if(d.junctionPoints) + d.junctionPoints.forEach(function (jp) { + junctionPoints.push(jp); + }); + d._svgPath = section2svgPath(d.sections[0]); + return d._svgPath; + }); + + let linkWrap = root.selectAll(".link-wrap") + .data(edges) + .enter() + .append("path") + .attr("class", function (d) { + let cssClass; + if (d.hwMeta.parent) { + cssClass = d.hwMeta.parent.hwMeta.cssClass; + } else { + cssClass = d.hwMeta.cssClass; + } + if (typeof cssClass !== 'undefined') { + return "link-wrap " + cssClass; + } else { + return "link-wrap"; + } + }) + .attr("style", function (d) { + if (d.hwMeta.parent) { + return d.hwMeta.parent.hwMeta.cssStyle; + } else { + return d.hwMeta.cssStyle + } + }) + .attr("d", function(d) { + return d._svgPath; + }); + + let junctionPoint = root.selectAll(".junction-point") + .data(junctionPoints) + .enter() + .append("circle") + .attr("r", "3") + .attr("cx", function(d) { + return d.x; + }) + .attr("cy", function(d) { + return d.y; + }) + .attr("class", "junction-point"); + + return [link, linkWrap, junctionPoint]; + } + + class Tooltip { + constructor(root) { + let t = this.tooltip = document.createElement("div"); + t.className = "d3-hwschematic-tooltip"; + t.style.display = "none"; + t.style.possition = "absolute"; + root.appendChild(t); + } + + show(evt, text) { + let t = this.tooltip; + t.style.display = "block"; + t.innerHTML = text; + t.style.left = evt.pageX + 10 + 'px'; + t.style.top = evt.pageY + 10 + 'px'; + } + + hide() { + this.tooltip.style.display = "none"; + } + } + + function yosysTranslateIcons(node, cell) { + let meta = node.hwMeta; + const t = cell.type; + + if (t === "$mux" || t === "$pmux") { + meta.cls = "Operator"; + meta.name = "MUX"; + } else if (t === "$gt") { + meta.cls = "Operator"; + meta.name = "GT"; + } else if (t === "$lt") { + meta.cls = "Operator"; + meta.name = "LT"; + } else if (t === "$ge") { + meta.cls = "Operator"; + meta.name = "GE"; + } else if (t === "$le") { + meta.cls = "Operator"; + meta.name = "LE"; + } else if (t === "$not" || t === "$logic_not") { + meta.cls = "Operator"; + meta.name = "NOT"; + } else if (t === "$logic_and" || t === "$and") { + meta.cls = "Operator"; + meta.name = "AND"; + } else if (t === "$logic_or" || t === "$or") { + meta.cls = "Operator"; + meta.name = "OR"; + } else if (t === "$xor") { + meta.cls = "Operator"; + meta.name = "XOR"; + } else if (t === "$eq") { + meta.cls = "Operator"; + meta.name = "EQ"; + } else if (t === "$ne") { + meta.cls = "Operator"; + meta.name = "NE"; + } else if (t === "$add") { + meta.cls = "Operator"; + meta.name = "ADD"; + } else if (t === "$sub") { + meta.cls = "Operator"; + meta.name = "SUB"; + } else if (t === "$mul") { + meta.cls = "Operator"; + meta.name = "MUL"; + } else if (t === "$div") { + meta.cls = "Operator"; + meta.name = "DIV"; + } else if (t === "$slice") { + meta.cls = "Operator"; + meta.name = "SLICE"; + } else if (t === "$concat") { + meta.cls = "Operator"; + meta.name = "CONCAT"; + } else if (t === "$adff") { + meta.cls = "Operator"; + let arstPolarity = cell.parameters["ARST_POLARITY"]; + let clkPolarity = cell.parameters["CLK_POLARITY"]; + if (clkPolarity && arstPolarity) { + meta.name = "FF_ARST_clk1_rst1"; + } else if (clkPolarity) { + meta.name = "FF_ARST_clk1_rst0"; + } else if (arstPolarity) { + meta.name = "FF_ARST_clk0_rst1"; + } else { + meta.name = "FF_ARST_clk0_rst0"; + } + } else if (t === "$dff") { + meta.cls = "Operator"; + meta.name = "FF"; + } else if (t === "$shift" || t === "$shiftx") { + meta.cls = "Operator"; + meta.name = "SHIFT"; + } else if (t === "$dlatch") { + meta.cls = "Operator"; + let enPolarity = cell.parameters["EN_POLARITY"]; + if (enPolarity) { + meta.name = "DLATCH_en1"; + } else { + meta.name = "DLATCH_en0"; + + } + } + } + + function getPortSide(portName, direction, nodeName) { + if (direction === "input" && nodeName === "MUX" && portName === "S") { + return "SOUTH"; + } + if (direction === "output") { + return "EAST"; + } + if (direction === "input") { + return "WEST"; + } + throw new Error("Unknown direction " + direction); + } + + function orderClkAndRstPorts(node) { + let index = 0; + for (let port of node.ports) { + let dstIndex = index; + if (port.hwMeta.name === "CLK") { + dstIndex = node.ports.length - 1; + } else if (port.hwMeta.name === "ARST") { + dstIndex = node.ports.length - 2; + } + if (index !== dstIndex) { + let otherPort = node.ports[dstIndex]; + node.ports[dstIndex] = port; + node.ports[index] = otherPort; + otherPort.properties.index = port.properties.index; + port.properties.index = dstIndex; + } + ++index; + } + } + + function iterNetnameBits(netnames, fn) { + for (const [netname, netObj] of Object.entries(netnames)) { + for (const bit of netObj.bits) { + fn(netname, bit, Number.isInteger(bit), isConst(bit)); + } + } + } + + function getNetNamesDict(yosysModule) { + let netnamesDict = {}; // yosys bits (netId): netname + + iterNetnameBits(yosysModule.netnames, (netname, bit, isInt, isStr) => { + if (isInt) { + netnamesDict[bit] = netname; + } else if (!isStr) { + throw new Error("Invalid type in bits: " + typeof bit); + } + }); + return netnamesDict; + } + + function isConst(val) { + return (typeof val === "string"); + } + + function getConstNodeName(nameArray) { + let nodeName = nameArray.reverse().join(""); + nodeName = ["0b", nodeName].join(""); + if (nodeName.match(/^0b[01]+$/g)) { + let res = BigInt(nodeName).toString(16); + return ["0x", res].join(""); + } + return nodeName; + } + + function addEdge(edge, portId, edgeDict, startIndex, width) { + let edgeArr = edgeDict[portId]; + if (edgeArr === undefined) { + edgeArr = edgeDict[portId] = []; + } + edgeArr[startIndex] = [edge, width]; + } + + function getSourceAndTarget2(edge) { + return [edge.sources, edge.targets, false, true]; + } + + function getSourceAndTargetForCell(edge) { + return [edge.targets, edge.sources, true, false]; + } + + function getPortNameSplice(startIndex, width) { + if (width === 1) { + return `[${startIndex}]`; + } else if (width > 1) { + let endIndex = startIndex + width; + return `[${endIndex}:${startIndex}]`; + } + + throw new Error("Incorrect width" + width); + + } + + + function hideChildrenAndNodes(node, yosysModule) { + if (yosysModule !== null) { + if (node.children.length === 0 && node.edges.length === 0) { + delete node.children; + delete node.edges; + + } else { + node._children = node.children; + delete node.children; + node._edges = node.edges; + delete node.edges; + } + } + } + + + function updatePortIndices(ports) { + let index = 0; + for (let port of ports) { + port.properties.index = index; + ++index; + } + } + + function dividePorts(ports) { + let north = []; + let east = []; + let south = []; + let west = []; + + for (let port of ports) { + let side = port.properties.side; + if (side === "NORTH") { + north.push(port); + } else if (side === "EAST") { + east.push(port); + } else if (side === "SOUTH") { + south.push(port); + } else if (side === "WEST") { + west.push(port); + } else { + throw new Error("Invalid port side: " + side); + } + } + + return [north, east, south, west]; + } + + function convertPortOrderingFromYosysToElk(node) { + let [north, east, south, west] = dividePorts(node.ports); + node.ports = north.concat(east, south.reverse(), west.reverse()); + updatePortIndices(node.ports); + + } + + function getTopModuleName(yosysJson) { + let topModuleName = undefined; + for (const [moduleName, moduleObj] of Object.entries(yosysJson.modules)) { + if (moduleObj.attributes.top) { + topModuleName = moduleName; + break; + } + } + + if (topModuleName === undefined) { + throw new Error("Cannot find top"); + } + + return topModuleName; + } + + function getNodePorts(node, dict){ + for (let port of node.ports) { + dict[port.id] = port; + } + + } + function getPortIdToPortDict(node) { + let PortIdToPortDict = {}; + + getNodePorts(node, PortIdToPortDict); + for (let child of node.children) { + getNodePorts(child, PortIdToPortDict); + } + + return PortIdToPortDict; + } + function getNodeIdToNodeDict(node,) { + let nodeIdToNodeDict = {}; + nodeIdToNodeDict[node.id] = node; + for (let child of node.children) { + nodeIdToNodeDict[child.id] = child; + } + return nodeIdToNodeDict; + } + + function getPortToEdgeDict(edges) { + let portToEdgeDict = {}; + for (let edge of edges) { + let targets = edge.targets; + let sources = edge.sources; + for (let [_, portId] of sources) { + portToEdgeDict[portId] = edge; + } + + for (let [_, portId] of targets) { + portToEdgeDict[portId] = edge; + } + } + return portToEdgeDict; + } + + function getChildSourcePorts(ports) { + let sourcePorts = []; + for(let port of ports) { + if (port !== undefined && port.direction === "INPUT") { + sourcePorts.push(port); + } + } + + return sourcePorts; + } + + function getEdgeTargetsIndex(targets, portId) { + for(let i = 0; i < targets.length; ++i) { + let target = targets[i]; + let [_, targetPortId] = target; + + if (portId === targetPortId) { + return i; + } + } + throw new Error("PortId was not found"); + + } + function aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict) { + let i = 0; + if (targetPort.properties.index !== 0) { + throw new Error("Port index is not zero, need to regenerate indices in port labels"); + } + for (let oldTargetPort of childSourcePorts) { + let oldTargetPortId = oldTargetPort.id; + let edge = portIdToEdgeDict[oldTargetPortId]; + let edgeTargetsIndex = getEdgeTargetsIndex(edge.targets, oldTargetPortId); + edge.targets[edgeTargetsIndex][0] = targetNode.id; + let newTargetPortIndex = targetPort.properties.index + i; + if (i === 0) { + targetNode.ports[newTargetPortIndex] = oldTargetPort; + } + else { + targetNode.ports.splice(newTargetPortIndex, 0, oldTargetPort); + } + oldTargetPort.properties.index = newTargetPortIndex; + ++i; + } + + + } + + function getChildTargetPortId(child) { + for (let port of child.ports) { + if (port !== undefined && port.direction === "OUTPUT") + { + return port.id; + } + } + + throw new Error("Concat child has no target"); + } + + function aggregate(node, childrenConcats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict) { + let edgesToDelete = new Set(); + let childrenToDelete = new Set(); + + for (let child of childrenConcats) { + let childTargetPortId = getChildTargetPortId(child); + let edge = portIdToEdgeDict[childTargetPortId]; + if (edge === undefined) { + continue; + } + let targets = edge.targets; + + if (targets !== undefined && targets.length === 1) { + let [nodeId, portId] = targets[0]; + let targetNode = nodeIdToNodeDict[nodeId]; + let targetPort = portIdToPortDict[portId]; + let childSourcePorts = getChildSourcePorts(child.ports); + if (targetNode === undefined) { + throw new Error("Target node of target port is undefined"); + } + if (targetNode.hwMeta.cls === "Operator" && targetNode.hwMeta.name === "CONCAT") { + aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict); + edgesToDelete.add(edge.id); + childrenToDelete.add(child.id); + } + } + } + node.children = node.children.filter((c) => { + return !childrenToDelete.has(c.id); + }); + node.edges = node.edges.filter((e) => { + return !edgesToDelete.has(e.id); + }); + } + + function fillConcats(children) { + let concats = []; + for (let child of children) { + if (child.hwMeta.cls === "Operator" && child.hwMeta.name === "CONCAT") { + concats.push(child); + } + } + return concats; + + } + + function aggregateConcants(node) { + let concats = fillConcats(node.children); + let portIdToEdgeDict = getPortToEdgeDict(node.edges); + let portIdToPortDict = getPortIdToPortDict(node); + let nodeIdToNodeDict = getNodeIdToNodeDict(node); + aggregate(node, concats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict); + } + + class LNodeMaker { + constructor(name, yosysModule, idCounter, yosysModules, hierarchyLevel, nodePortNames) { + this.name = name; + this.yosysModule = yosysModule; + this.idCounter = idCounter; + this.yosysModules = yosysModules; + this.hierarchyLevel = hierarchyLevel; + this.nodePortNames = nodePortNames; + this.childrenWithoutPortArray = []; + this.nodeIdToCell = {}; + } + + make() { + if (this.name === undefined) { + throw new Error("Name is undefined"); + } + + let node = this.makeNode(this.name); + + if (this.yosysModule) { + // cell with module definition, load ports, edges and children from module def. recursively + this.fillPorts(node, this.yosysModule.ports, (p) => { + return p.direction + }, undefined); + this.fillChildren(node); + this.fillEdges(node); + + if (node.children !== undefined && node.children.length > 0) { + aggregateConcants(node); + } + + } + + if (node.children !== undefined) { + for (let child of node.children) { + convertPortOrderingFromYosysToElk(child); + if (child.hwMeta.cls === "Operator" && child.hwMeta.name.startsWith("FF")) { + orderClkAndRstPorts(child); + } + } + } + + if (this.hierarchyLevel > 1) { + hideChildrenAndNodes(node, this.yosysModule); + } + + node.hwMeta.maxId = this.idCounter - 1; + return node; + } + makeNode(name) { + let node = { + "id": this.idCounter.toString(), //generate, each component has unique id + "hwMeta": { // [d3-hwschematic specific] + "name": name, // optional str + "cls": "", // optional str + "maxId": 2, // max id of any object in this node used to avoid re-counting object if new object is generated + }, + "properties": { // recommended renderer settings + "org.eclipse.elk.portConstraints": "FIXED_ORDER", // can be also "FREE" or other value accepted by ELK + "org.eclipse.elk.layered.mergeEdges": 1 + }, + "ports": [], // list of LPort + "edges": [], // list of LEdge + "children": [], // list of LNode + }; + ++this.idCounter; + return node; + } + + fillPorts(node, ports, getPortDirectionFn, cellObj) { + const isSplit = cellObj !== undefined && cellObj.type === "$slice"; + const isConcat = cellObj !== undefined && cellObj.type === "$concat"; + let portByName = this.nodePortNames[node.id]; + if (portByName === undefined) { + portByName = {}; + this.nodePortNames[node.id] = portByName; + } + for (let [portName, portObj] of Object.entries(ports)) { + let originalPortName = portName; + if (isSplit || isConcat) { + if (portName === "Y") { + portName = ""; + } + if (isSplit) { + if (portName === "A") { + portName = getPortNameSplice(cellObj.parameters.OFFSET, cellObj.parameters.Y_WIDTH); + } + } else if (isConcat) { + let par = cellObj.parameters; + if (portName === "A") { + portName = getPortNameSplice(0, par.A_WIDTH); + } else if (portName === "B") { + portName = getPortNameSplice(par.A_WIDTH, par.B_WIDTH); + } + } + } + let direction = getPortDirectionFn(portObj); + this.makeLPort(node.ports, portByName, originalPortName, portName, direction, node.hwMeta.name); + } + } + + makeLPort(portList, portByName, originalName, name, direction, nodeName) { + if (name === undefined) { + throw new Error("Name is undefined"); + } + + let portSide = getPortSide(name, direction, nodeName); + let port = { + "id": this.idCounter.toString(), + "hwMeta": { // [d3-hwschematic specific] + "name": name, + }, + "direction": direction.toUpperCase(), // [d3-hwschematic specific] controls direction marker + "properties": { + "side": portSide, + "index": 0 // The order is assumed as clockwise, starting with the leftmost port on the top side. + // Required only for components with "org.eclipse.elk.portConstraints": "FIXED_ORDER" + }, + "children": [], // list of LPort, if the port should be collapsed rename this property to "_children" + }; + port.properties.index = portList.length; + portList.push(port); + portByName[originalName] = port; + ++this.idCounter; + return port; + } + + fillChildren(node) { + // iterate all cells and lookup for modules and construct them recursively + for (const [cellName, cellObj] of Object.entries(this.yosysModule.cells)) { + let moduleName = cellObj.type; //module name + let cellModuleObj = this.yosysModules[moduleName]; + let nodeBuilder = new LNodeMaker(cellName, cellModuleObj, this.idCounter, this.yosysModules, + this.hierarchyLevel + 1, this.nodePortNames); + let subNode = nodeBuilder.make(); + this.idCounter = nodeBuilder.idCounter; + node.children.push(subNode); + yosysTranslateIcons(subNode, cellObj); + this.nodeIdToCell[subNode.id] = cellObj; + if (cellModuleObj === undefined) { + if (cellObj.port_directions === undefined) { + // throw new Error("[Todo] if modules does not have definition in modules and its name does not \ + // start with $, then it does not have port_directions. Must add port to sources and targets of an edge") + + this.childrenWithoutPortArray.push([cellObj, subNode]); + continue; + } + this.fillPorts(subNode, cellObj.port_directions, (p) => { + return p; + }, cellObj); + } + } + } + + fillEdges(node) { + + let edgeTargetsDict = {}; + let edgeSourcesDict = {}; + let constNodeDict = {}; + let [edgeDict, edgeArray] = this.getEdgeDictFromPorts( + node, constNodeDict, edgeTargetsDict, edgeSourcesDict); + let netnamesDict = getNetNamesDict(this.yosysModule); + + function getPortName(bit) { + return netnamesDict[bit]; + } + + for (let i = 0; i < node.children.length; i++) { + const subNode = node.children[i]; + if (constNodeDict[subNode.id] === 1) { + //skip constants to iterate original cells + continue; + } + + let cell = this.nodeIdToCell[subNode.id]; + if (cell.port_directions === undefined) { + continue; + } + let connections = cell.connections; + let portDirections = cell.port_directions; + + + if (connections === undefined) { + throw new Error("Cannot find cell for subNode" + subNode.hwMeta.name); + } + + let portI = 0; + let portByName = this.nodePortNames[subNode.id]; + for (const [portName, bits] of Object.entries(connections)) { + let portObj; + let direction; + if (portName.startsWith("$")) { + portObj = subNode.ports[portI++]; + direction = portObj.direction.toLowerCase(); //use direction from module port definition + } else { + portObj = portByName[portName]; + direction = portDirections[portName]; + } + + this.loadNets(node, subNode.id, portObj.id, bits, direction, edgeDict, constNodeDict, + edgeArray, getPortName, getSourceAndTargetForCell, edgeTargetsDict, edgeSourcesDict); + + } + } + // source null target null == direction is output + + for (const [cellObj, subNode] of this.childrenWithoutPortArray) { + for (const [portName, bits] of Object.entries(cellObj.connections)) { + let port = null; + for (const bit of bits) { + let edge = edgeDict[bit]; + if (edge === undefined) { + throw new Error("[Todo] create edge"); + } + let edgePoints; + let direction; + if (edge.sources.length === 0 && edge.targets.length === 0) { + direction = "output"; + edgePoints = edge.sources; + } else if (edge.sources.length === 0) { + // no sources -> add as source + direction = "output"; + edgePoints = edge.sources; + } else { + direction = "input"; + edgePoints = edge.targets; + } + + if (port === null) { + let portByName = this.nodePortNames[subNode.id]; + if (portByName === undefined) { + portByName = {}; + this.nodePortNames[subNode.id] = portByName; + } + port = this.makeLPort(subNode.ports, portByName, portName, portName, direction, subNode.hwMeta.name); + } + + edgePoints.push([subNode.id, port.id]); + } + } + + } + + let edgeSet = {}; // [sources, targets]: true + for (const edge of edgeArray) { + let key = [edge.sources, null, edge.targets]; + if (!edgeSet[key]) // filter duplicities + { + edgeSet[key] = true; + node.edges.push(edge); + } + } + + } + + getEdgeDictFromPorts(node, constNodeDict, edgeTargetsDict, edgeSourcesDict) { + let edgeDict = {}; // yosys bits (netId): LEdge + let edgeArray = []; + let portsIndex = 0; + for (const [portName, portObj] of Object.entries(this.yosysModule.ports)) { + let port = node.ports[portsIndex]; + portsIndex++; + + function getPortName2() { + return portName; + } + + this.loadNets(node, node.id, port.id, portObj.bits, portObj.direction, + edgeDict, constNodeDict, edgeArray, getPortName2, getSourceAndTarget2, + edgeTargetsDict, edgeSourcesDict); + + } + return [edgeDict, edgeArray]; + } + + /* + * Iterate bits representing yosys net names, which are used to get edges from the edgeDict. + * If edges are not present in the dictionary, they are created and inserted into it. Eventually, + * nodes are completed by filling sources and targets properties of LEdge. + */ + loadNets(node, nodeId, portId, bits, direction, edgeDict, constNodeDict, edgeArray, + getPortName, getSourceAndTarget, edgeTargetsDict, edgeSourcesDict) { + for (let i = 0; i < bits.length; ++i) { + let startIndex = i; + let width = 1; + let bit = bits[i]; + let portName = getPortName(bit); + let edge = edgeDict[bit]; + let netIsConst = isConst(bit); + if (netIsConst || edge === undefined) { + // create edge if it is not in edgeDict + if (portName === undefined) { + if (!netIsConst) { + throw new Error("Netname is undefined"); + } + portName = bit; + } + edge = this.makeLEdge(portName); + edgeDict[bit] = edge; + edgeArray.push(edge); + if (netIsConst) { + i = this.addConstNodeToSources(node, bits, edge.sources, i, constNodeDict); + width = i - startIndex + 1; + } + } + + let [a, b, targetA, targetB] = getSourceAndTarget(edge); + if (direction === "input") { + a.push([nodeId, portId]); + if (targetA) { + addEdge(edge, portId, edgeTargetsDict, startIndex, width); + } else { + addEdge(edge, portId, edgeSourcesDict, startIndex, width); + } + } else if (direction === "output") { + b.push([nodeId, portId]); + if (targetB) { + addEdge(edge, portId, edgeTargetsDict, startIndex, width); + } else { + addEdge(edge, portId, edgeSourcesDict, startIndex, width); + } + } else { + throw new Error("Unknown direction " + direction); + } + } + } + + makeLEdge(name) { + if (name === undefined) { + throw new Error("Name is undefined"); + } + let edge = { + "id": this.idCounter.toString(), + "sources": [], + "targets": [], // [id of LNode, id of LPort] + "hwMeta": { // [d3-hwschematic specific] + "name": name, // optional string, displayed on mouse over + } + }; + ++this.idCounter; + return edge; + } + + addConstNodeToSources(node, bits, sources, i, constNodeDict) { + let nameArray = []; + for (i; i < bits.length; ++i) { + let bit = bits[i]; + if (isConst(bit)) { + nameArray.push(bit); + } else { + break; + } + } + --i; + // If bit is a constant, create a node with constant + let nodeName = getConstNodeName(nameArray); + let constSubNode; + let port; + [constSubNode, port] = this.addConstNode(node, nodeName, constNodeDict); + sources.push([constSubNode.id, port.id]); + return i; + } + + addConstNode(node, nodeName, constNodeDict) { + let port; + + let nodeBuilder = new LNodeMaker(nodeName, undefined, this.idCounter, null, + this.hierarchyLevel + 1, this.nodePortNames); + let subNode = nodeBuilder.make(); + this.idCounter = nodeBuilder.idCounter; + + let portByName = this.nodePortNames[subNode.id] = {}; + port = this.makeLPort(subNode.ports, portByName, "O0", "O0", "output", subNode.hwMeta.name); + node.children.push(subNode); + constNodeDict[subNode.id] = 1; + + return [subNode, port]; + } + + + } + + function yosys(yosysJson) { + let nodePortNames = {}; + let rootNodeBuilder = new LNodeMaker("root", null, 0, null, 0, nodePortNames); + let output = rootNodeBuilder.make(); + let topModuleName = getTopModuleName(yosysJson); + + let nodeBuilder = new LNodeMaker(topModuleName, yosysJson.modules[topModuleName], rootNodeBuilder.idCounter, + yosysJson.modules, 1, nodePortNames); + let node = nodeBuilder.make(); + output.children.push(node); + output.hwMeta.maxId = nodeBuilder.idCounter - 1; + //yosysTranslateIcons(output); + //print output to console + //console.log(JSON.stringify(output, null, 2)); + + return output; + } + + function hyperEdgeListToEdges(eList, newEdges, idOffset) { + for (let ei = 0; ei < eList.length; ei++) { + let e = eList[ei]; + let isHyperEdge = typeof e.sources !== "undefined"; + if (isHyperEdge) { + let src; + let dst; + if (e.sources.length === 1 && e.targets.length === 1) { + src = e.sources[0]; + dst = e.targets[0]; + e.source = src[0]; + e.sourcePort = src[1]; + e.target = dst[0]; + e.targetPort = dst[1]; + delete e.sources; + delete e.targets; + newEdges.push(e); + } else { + for (let s = 0; s < e.sources.length; s++) { + src = e.sources[s]; + for (let t = 0; t < e.targets.length; t++) { + dst = e.targets[t]; + idOffset += 1; + newEdges.push({ + "hwMeta": { "parent": e }, + "id": "" + idOffset, + "source": src[0], + "sourcePort": src[1], + "target": dst[0], + "targetPort": dst[1], + }); + } + } + } + } else { + newEdges.push(e); + } + } + return idOffset; + } + + /** + * Convert hyperEdges to edges in whole graph + * + * @param n root node + * @param idOffset int, max id in graph, used for generating + * of new edges from hyperEdges + **/ + function hyperEdgesToEdges(n, idOffset) { + let newEdges; + if (n.edges) { + newEdges = []; + idOffset = hyperEdgeListToEdges(n.edges, newEdges, idOffset); + n.edges = newEdges; + } + if (n._edges) { + newEdges = []; + idOffset = hyperEdgeListToEdges(n._edges, newEdges, idOffset); + n._edges = newEdges; + } + if (n.children) { + for (let i = 0; i < n.children.length; i++) { + idOffset = hyperEdgesToEdges(n.children[i], idOffset); + } + } + if (n._children) { + for (let i = 0; i < n._children.length; i++) { + idOffset = hyperEdgesToEdges(n._children[i], idOffset); + } + } + return idOffset + } + + /** + * Get parent of net for net + **/ + function getNet(e) { + if (typeof e.hwMeta.parent !== "undefined") { + return e.hwMeta.parent; + } else { + return e; + } + } + + function initNodeParents(node, parent) { + node.hwMeta.parent = parent; + (node.children || []).forEach(function(n) { + initNodeParents(n, node); + }); + (node._children || []).forEach(function(n) { + initNodeParents(n, node); + }); + + } + function expandPorts(node) { + let portList = []; + if (node.ports) + node.ports.forEach(function (port) {expandPorts4port(port, portList);}); + //node.hwMeta.parent = parent; + node.ports = portList; + (node.children || node._children || []).forEach(function(n) { + expandPorts(n); + }); + } + + function expandPorts4port(port, portList){ + if (port.hwMeta.connectedAsParent) { + return; + } + portList.push(port); + (port.children || []).forEach(function(p) { + p.parent = port; + expandPorts4port(p, portList); + }); + + } + + /* + * Collect list of expanded nodes + */ + function computeLayoutCacheKey(n, res) { + res.push(n.id); + if (n.children) { + n.children.forEach((d) => { computeLayoutCacheKey(d, res); }); + } + } + + /* + * Store current state of layout + */ + function serializeLayout(n) { + var res = { + "id": n.id, + "x": n.x, + "y": n.y, + "width": n.width, + "height": n.height, + }; + if (n.ports) { + res["ports"] = n.ports.map(function(p) { + return { + "id": p.id, + "x": p.x, + "y": p.y, + "width": p.width, + "height": p.height, + }; + }); + } + if (n.edges) { + res["edges"] = n.edges.map(function(e) { + return { + "id": e.id, + "sections": e.sections, + "junctionPoints": e.junctionPoints + }; + }); + } + if (n.children) { + res["children"] = n.children.map(function(c) { + return serializeLayout(c) + }); + } + return res; + } + + // apply cached element positions and size + function applyCachedState(n, state) { + if (n.id != state.id) { + throw new Error("Cached state not matching current data"); + } + n.x = state.x; + n.y = state.y; + n.width = state.width; + n.height = state.height; + if (n.ports) { + state.ports.forEach(function(s, i) { + var p = n.ports[i]; + if (p.id != s.id) { + throw new Error("Cached state not matching current data"); + } + p.x = s.x; + p.y = s.y; + p.width = s.width; + p.height = s.height; + }); + } + if (n.edges) { + state.edges.forEach(function(s, i) { + var p = n.edges[i]; + if (p.id != s.id) { + throw new Error("Cached state not matching current data"); + } + p.sections = s.sections; + p.junctionPoints = s.junctionPoints; + }); + } + if (n.children) { + state.children.forEach(function(s, i) { + var c = n.children[i]; + return applyCachedState(c, s); + }); + } + } + + class d3elk { + constructor() { + // containers + this.graph = {}; // internal (hierarchical graph) + this._options = {}; + // dimensions + this.width = 0; + this.height = 0; + this._transformGroup = undefined; + + // the layouter instance + this.layouter = new ELK__default["default"]({ + algorithms: ['layered'], + }); + this._invalidateCaches(); + } + + /** + * Set or get the available area, the positions of the layouted graph are + * currently scaled down. + */ + size(size) { + if (!arguments.length) + return [this.width, this.height]; + var old_w = this.width; + var old_h = this.height; + this.width = size[0]; + this.height = size[1]; + + if (this.graph != null) { + if (old_w !== this.width || old_h !== this.height) { + this._layoutCache = {}; + } + this.graph.width = this.width; + this.graph.height = this.height; + } + return this; + }; + + /** + * Sets the group used to perform 'zoomToFit'. + */ + transformGroup(g) { + if (!arguments.length) + return this._transformGroup; + this._transformGroup = g; + return this; + } + + options(opts) { + if (!arguments.length) + return this._options; + this._options = opts; + return this; + } + + /** + * Start the layout process. + */ + start() { + var cacheKey = []; + computeLayoutCacheKey(this.graph, cacheKey); + var state = this._layoutCache[cacheKey]; + var _this = this; + if (typeof state !== 'undefined') { + // load layout from cache + return new Promise((resolve, reject) => { + resolve(); + }).then( + function() { + applyCachedState(_this.graph, state); + } + ) + } else { + // run layouter + this._cleanLayout(); + this._currentLayoutCacheKey = cacheKey; + return this.layouter.layout( + this.graph, + { layoutOptions: this._options } + ).then( + this._applyLayout.bind(this), + function(e) { + // Error while running elkjs layouter + _this._currentLayoutCacheKey = null; + throw e; + } + ); + } + } + + // get currently visible nodes + getNodes() { + if (this.__nodeCache != null) + return this.__nodeCache; + + var queue = [this.graph], + nodes = [], + parent; + + // note that svg z-index is document order, literally + while ((parent = queue.pop()) != null) { + if (!parent.properties[NO_LAYOUT]) { + nodes.push(parent); + (parent.children || []).forEach(function(c) { + queue.push(c); + }); + } + } + this.__nodeCache = nodes; + return nodes; + } + + + // get currently visible ports + getPorts() { + if (this.__portsCache != null) + return this.__portsCache; + + var ports = d3__namespace.merge(this.getNodes().map(function(n) { + return n.ports || []; + })); + this.__portsCache = ports; + } + + + // get currently visible edges + getEdges() { + if (this.__edgesCache != null) + return this.__edgesCache; + + var edgesOfChildren = d3__namespace.merge( + this.getNodes() + .filter(function(n) { + return n.children; + }) + .map(function(n) { + return n.edges || []; + }) + ); + + this.__edgesCache = edgesOfChildren; + return this.__edgesCache; + } + + // bind graph data + kgraph(root) { + if (!arguments.length) + return this.graph; + + var g = this.graph = root; + this._invalidateCaches(); + + if (!g.id) + g.id = "root"; + if (!g.properties) + g.properties = { 'algorithm': 'layered' }; + if (!g.properties.algorithm) + g.properties.algorithm = 'layered'; + if (!g.width) + g.width = this.width; + if (!g.height) + g.height = this.height; + + return this; + }; + /** + * If a top level transform group is specified, we set the scale to value so + * the available space is used to it's maximum. + */ + zoomToFit(node) { + if (!this._transformGroup) { + return; + } + if (node === null) { + node = this.graph; + } + zoomToFit(node, this.width, this.height, this._transformGroup); + } + + terminate() { + if (this.layouter) + this.layouter.terminateWorker(); + } + + /** + * Clean all layout possitions from nodes, nets and ports + */ + _cleanLayout(n) { + if (!arguments.length) + var n = this.graph; + cleanLayout(n); + return this; + } + _invalidateCaches() { + // cached used to avoid execuiton of elkjs to resolve the layout of + // graph if executed previously with same input + // {sorted list of expanded node ids: {nodeId: {"x": ..., "y": ..., + // "ports": {portId: [x, y]}}, + // edgeId: [points] }} + this._layoutCache = {}; + this._currentLayoutCacheKey = null; + + // {id(str): object from input graph} used to access graph objects by it's id + this._d3ObjMap = {}; + this.markLayoutDirty(); + }; + markLayoutDirty() { + this.__nodeCache = null; + this.__portsCache = null; + this.__edgesCache = null; + } + /** + * Apply layout for the kgraph style. Converts relative positions to + * absolute positions. + */ + _applyLayout(kgraph) { + this.zoomToFit(kgraph); + var nodeMap = {}; + // convert to absolute positions + toAbsolutePositions(kgraph, { x: 0, y: 0 }, nodeMap); + toAbsolutePositionsEdges(kgraph, nodeMap); + copyElkProps(kgraph, this.graph, this._d3ObjMap); + this._layoutCache[this._currentLayoutCacheKey] = serializeLayout(this.graph); + + return this.graph; + } + } + + function findGraph(nodeArray, nodeName) { + for (let node of nodeArray) { + if (node.hwMeta.name === nodeName) { + return node + } + } + throw new Error("Node is not found: " + nodeName); + } + + function selectGraphRootByPath(graph, path) { + let pathArray = path.split("/"); + let first = true; + let newGraph = graph; + for (let nodeName of pathArray) { + if (first && nodeName === "") { + first = false; + continue; + } + newGraph = findGraph((newGraph.children || newGraph._children), nodeName); + } + if (graph !== newGraph) { + //case if path has nonzero length + //copy because we need to make graph immutable because we will need it later + graph = Object.assign({}, graph); + graph.children = [newGraph]; + } + return graph; + + } + + function getNameOfEdge(e) { + let name = "unnamed"; + if (e.hwMeta) { + if (typeof e.hwMeta.name === "undefined") { + let p = e.hwMeta.parent; + let pIsHyperEdge = typeof p.sources !== "undefined"; + if (pIsHyperEdge && p.hwMeta) { + name = p.hwMeta.name; + } + } else { + name = e.hwMeta.name; + } + } + return name; + } + + function toggleHideChildren(node) { + let children; + let nextFocusTarget; + if (node.children) { + // children are visible, will collapse + children = node.children; + nextFocusTarget = node.hwMeta.parent; + } else { + // children are hidden, will expand + children = node._children; + nextFocusTarget = node; + } + + let tmpChildren = node.children; + node.children = node._children; + node._children = tmpChildren; + let tmpEdges = node.edges; + node.edges = node._edges; + node._edges = tmpEdges; + node.hwMeta.renderer.prepare(node); + return [children, nextFocusTarget]; + } + + /** + * HwScheme builds scheme diagrams after bindData(data) is called + * + * @param svg: root svg element where scheme will be rendered + * @attention zoom is not applied it is only used for focusing on objects + * @note do specify size of svg to have optimal result + */ + class HwSchematic { + constructor(svg) { + // flag for performance debug + this._PERF = false; + // main svg element + this.svg = svg; + // default sizes of elements + this.PORT_PIN_SIZE = [7, 13]; + this.PORT_HEIGHT = this.PORT_PIN_SIZE[1]; + this.CHAR_WIDTH = 7.55; + this.CHAR_HEIGHT = 13; + this.NODE_MIDDLE_PORT_SPACING = 20; + this.MAX_NODE_BODY_TEXT_SIZE = [400, 400]; + // top, right, bottom, left + this.BODY_TEXT_PADDING = [15, 10, 0, 10]; + svg.classed("d3-hwschematic", true); + this.defs = svg.append("defs"); + this.root = svg.append("g"); + this.errorText = null; + this._nodes = null; + this._edges = null; + + // graph layouter to resolve positions of elements + this.layouter = new d3elk(); + this.layouter + .options({ + edgeRouting: "ORTHOGONAL", + }) + .transformGroup(this.root); + + // shared tooltip object + this.tooltip = new Tooltip(document.getElementsByTagName('body')[0]); + + // renderer instances responsible for rendering of component nodes + this.nodeRenderers = new NodeRendererContainer(); + addMarkers(this.defs, this.PORT_PIN_SIZE); + let rs = this.nodeRenderers; + rs.registerRenderer(new OperatorNodeRenderer(this)); + rs.registerRenderer(new MuxNodeRenderer(this)); + rs.registerRenderer(new SliceNodeRenderer(this)); + rs.registerRenderer(new GenericNodeRenderer(this)); + } + + widthOfText(text) { + if (text) { + return text.length * this.CHAR_WIDTH; + } else { + return 0; + } + } + + removeGraph() { + this.root.selectAll("*").remove(); + } + + updateGlobalSize() { + let width = parseInt(this.svg.style("width") || this.svg.attr("width"), 10); + let height = parseInt(this.svg.style("height") || this.svg.attr("height"), 10); + + this.layouter + .size([width, height]); + } + + /** + * Set bind graph data to graph rendering engine + * + * @return promise for this job + */ + bindData(graph) { + this.removeGraph(); + let postCompaction = "layered.compaction.postCompaction.strategy"; + if (!graph.properties[postCompaction]) { + graph.properties[postCompaction] = "EDGE_LENGTH"; + } + hyperEdgesToEdges(graph, graph.hwMeta.maxId); + initNodeParents(graph, null); + expandPorts(graph); + + if (this._PERF) { + let t0 = new Date().getTime(); + this.nodeRenderers.prepare(graph); + let t1 = new Date().getTime(); + console.log("> nodeRenderers.prepare() : " + (t1 - t0) + " ms"); + } else { + // nodes are ordered, children at the end + this.nodeRenderers.prepare(graph); + } + this.layouter + .kgraph(graph); + return this._draw(); + } + /* + * @returns subnode selected by path wrapped in a new root + * */ + static selectGraphRootByPath(graph, path) { + return selectGraphRootByPath(graph, path); + } + /* + * Resolve layout and draw a component graph from layout data + */ + _draw() { + this.updateGlobalSize(); + + let layouter = this.layouter; + this._nodes = layouter.getNodes().slice(1); // skip root node + this._edges = layouter.getEdges(); + let t0; + if (this._PERF) { + t0 = new Date().getTime(); + } + let _this = this; + return layouter.start() + .then( + function (g) { + if (_this._PERF) { + let t1 = new Date().getTime(); + console.log("> layouter.start() : " + (t1 - t0) + " ms"); + t0 = t1; + } + _this._applyLayout(g); + if (_this._PERF) { + let t1 = new Date().getTime(); + console.log("> HwSchematic._applyLayout() : " + (t1 - t0) + " ms"); + } + }, + function (e) { + // Error while running d3-elkjs layouter + throw e; + } + ); + } + + /** + * Draw a component graph from layout data + */ + _applyLayout() { + let root = this.root; + + let node = root.selectAll(".node") + .data(this._nodes) + .enter() + .append("g"); + this.nodeRenderers.render(root, node); + + let _this = this; + node.on("click", function (ev, d) { + let [children, nextFocusTarget] = toggleHideChildren(d); + if (!children || children.length === 0) { + return; // does not have anything to expand + } + _this.layouter.markLayoutDirty(); + _this.removeGraph(); + _this._draw().then( + function () { + _this.layouter.zoomToFit(nextFocusTarget); + }, + function (e) { + // Error while applying of layout + throw e; + } + ); + }); + + this._applyLayoutLinks(); + } + + _applyLayoutLinks() { + let _this = this; + let edges = this._edges; + + let [link, linkWrap, _] = renderLinks(this.root, edges); + // build netToLink + let netToLink = {}; + edges.forEach(function (e) { + netToLink[getNet(e).id] = { + "core": [], + "wrap": [] + }; + }); + linkWrap._groups.forEach(function (lg) { + lg.forEach(function (l) { + let e = d3__namespace.select(l).data()[0]; + netToLink[getNet(e).id]["wrap"].push(l); + }); + }); + link._groups.forEach(function (lg) { + lg.forEach(function (l) { + let e = d3__namespace.select(l).data()[0]; + netToLink[getNet(e).id]["core"].push(l); + }); + }); + + // set highlingt and tooltip on mouser over over the net + linkWrap.on("mouseover", function (ev, d) { + let netWrap = netToLink[getNet(d).id]["wrap"]; + d3__namespace.selectAll(netWrap) + .classed("link-wrap-activated", true); + + _this.tooltip.show(ev, getNameOfEdge(d)); + }); + linkWrap.on("mouseout", function (ev, d) { + let netWrap = netToLink[getNet(d).id]["wrap"]; + d3__namespace.selectAll(netWrap) + .classed("link-wrap-activated", false); + + _this.tooltip.hide(); + }); + + // set link highlight on net click + function onLinkClick(ev, d) { + let net = getNet(d); + let doSelect = net.selected = !net.selected; + // propagate click on all nets with same source + + let netCore = netToLink[net.id]["core"]; + d3__namespace.selectAll(netCore) + .classed("link-selected", doSelect); + ev.stopPropagation(); + } + + // Select net on click + link.on("click", onLinkClick); + linkWrap.on("click", onLinkClick); + } + + static fromYosys(yosysJson) { + return yosys(yosysJson); + } + + terminate() { + if (this.layouter) { + this.layouter.terminate(); + } + } + + setErrorText(msg) { + this.root.selectAll("*").remove(); + let errText = this.errorText; + if (!errText) { + errText = this.errorText = this.root.append("text") + .attr("x", "50%") + .attr("y", "50%") + .attr("dominant-baseline", "middle") + .attr("text-anchor", "middle") + .style("font-size", "34px"); + } + errText.text(msg); + let t = d3__namespace.zoomTransform(this.root.node()); + t.k = 1; + t.x = 0; + t.y = 0; + this.root.attr("transform", t); + + } + } + + exports.HwSchematic = HwSchematic; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/gen/local/elkjs/LICENSE.md b/gen/local/elkjs/LICENSE.md new file mode 100644 index 00000000..2849d27f --- /dev/null +++ b/gen/local/elkjs/LICENSE.md @@ -0,0 +1,264 @@ +# Eclipse Public License - v 2.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF +THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +## 1. DEFINITIONS + +“Contribution” means: + +- a\) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and +- b\) in the case of each subsequent Contributor: + - i\) changes to the Program, and + - ii\) additions to the Program; + + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + “originates” from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's + behalf. Contributions do not include changes or additions to the + Program that are not Modified Works. + +“Contributor” means any person or entity that Distributes the Program. + +“Licensed Patents” mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +“Program” means the Contributions Distributed in accordance with this +Agreement. + +“Recipient” means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +“Derivative Works” shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +“Modified Works” shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +“Distribute” means the acts of a) distributing or b) making available in +any manner that enables the transfer of a copy. + +“Source Code” means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +“Secondary License” means either the GNU General Public License, Version +2.0, or any later versions of that license, including any exceptions or +additional permissions as identified by the initial Contributor. + +## 2. GRANT OF RIGHTS + +- a\) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. +- b\) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent license + under Licensed Patents to make, use, sell, offer to sell, import and + otherwise transfer the Contribution of such Contributor, if any, in + Source Code or other form. This patent license shall apply to the + combination of the Contribution and the Program if, at the time the + Contribution is added by the Contributor, such addition of the + Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. +- c\) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. Each + Contributor disclaims any liability to Recipient for claims brought by + any other entity based on infringement of intellectual property rights + or otherwise. As a condition to exercising the rights and licenses + granted hereunder, each Recipient hereby assumes sole responsibility to + secure any other intellectual property rights needed, if any. For + example, if a third party patent license is required to allow Recipient + to Distribute the Program, it is Recipient's responsibility to acquire + that license before distributing the Program. +- d\) Each Contributor represents that to its knowledge it has sufficient + copyright rights in its Contribution, if any, to grant the copyright + license set forth in this Agreement. +- e\) Notwithstanding the terms of any Secondary License, no Contributor + makes additional grants to any Recipient (other than those set forth in + this Agreement) as a result of such Recipient's receipt of the Program + under the terms of a Secondary License (if permitted under the terms of + Section 3). + +## 3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + +- a\) the Program must also be made available as Source Code, in accordance + with section 3.2, and the Contributor must accompany the Program with a + statement that the Source Code for the Program is available under this + Agreement, and informs Recipients how to obtain it in a reasonable + manner on or through a medium customarily used for software exchange; + and +- b\) the Contributor may Distribute the Program under a license different + than this Agreement, provided that such license: + - i\) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including warranties or + conditions of title and non-infringement, and implied warranties or + conditions of merchantability and fitness for a particular purpose; + - ii\) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, incidental + and consequential damages, such as lost profits; + - iii\) does not attempt to limit or alter the recipients' rights in the + Source Code under section 3.2; and + - iv\) requires any subsequent distribution of the Program by any party to + be under a license that satisfies the requirements of this section 3. + +3.2 When the Program is Distributed as Source Code: + +- a\) it must be made available under this Agreement, or if the Program (i) + is combined with other material in a separate file or files made + available under a Secondary License, and (ii) the initial Contributor + attached to the Source Code the notice described in Exhibit A of this + Agreement, then the Program may be made available under the terms of + such Secondary Licenses, and +- b\) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability (‘notices’) contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +## 4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, the +Contributor who includes the Program in a commercial product offering +should do so in a manner which does not create potential liability for +other Contributors. Therefore, if a Contributor includes the Program in +a commercial product offering, such Contributor (“Commercial +Contributor”) hereby agrees to defend and indemnify every other +Contributor (“Indemnified Contributor”) against any losses, damages and +costs (collectively “Losses”) arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the +Program in a commercial product offering. The obligations in this +section do not apply to any claims or Losses relating to any actual or +alleged intellectual property infringement. In order to qualify, an +Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial +Contributor to control, and cooperate with the Commercial Contributor +in, the defense and any related settlement negotiations. The Indemnified +Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages. + +## 5. NO WARRANTY {#warranty} + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. + +## 6. DISCLAIMER OF LIABILITY {#disclaimer} + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +## 7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further action +by the parties hereto, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including +a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or +hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails +to comply with any of the material terms or conditions of this Agreement +and does not cure such failure in a reasonable period of time after +becoming aware of such noncompliance. If all Recipient's rights under +this Agreement terminate, Recipient agrees to cease use and distribution +of the Program as soon as reasonably practicable. However, Recipient's +obligations under this Agreement and any licenses granted by Recipient +relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and may +only be modified in the following manner. The Agreement Steward reserves +the right to publish new versions (including revisions) of this +Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the +initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is +published, Contributor may elect to Distribute the Program (including +its Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +## Exhibit A – Form of Secondary Licenses Notice {#exhibit-a} + +“This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}.” + +> Simply including a copy of this Agreement, including this Exhibit A is +> not sufficient to license the Source Code under Secondary Licenses. +> +> If it is not possible or desirable to put the notice in a particular +> file, then You may include the notice in a location (such as a LICENSE +> file in a relevant directory) where a recipient would be likely to +> look for such a notice. +> +> You may add additional accurate notices of copyright ownership. diff --git a/gen/local/elkjs/README.md b/gen/local/elkjs/README.md new file mode 100644 index 00000000..03af287a --- /dev/null +++ b/gen/local/elkjs/README.md @@ -0,0 +1,378 @@ +

+ +

+ +The [Eclipse Layout Kernel (ELK)](https://www.eclipse.org/elk/) implements an infrastructure to connect diagram editors or viewers to automatic layout algorithms. This library takes the layout-relevant part of ELK and makes it available to the JavaScript world. +ELK's flagship is a layer-based layout algorithm that is particularly suited for node-link diagrams with an inherent direction and ports (explicit attachment points on a node's border). It is based on the ideas originally introduced by Sugiyama et al. An example can be seen in the screenshot below. + +Note that elkjs is not a diagramming framework itself - it computes positions for the elements of a diagram. + +elkjs is the successor of [klayjs](https://github.com/kieler/klayjs). + +#### Demonstrator +You can see elkjs [live in action](https://rtsys.informatik.uni-kiel.de/elklive/) in conjunction with TypeFox's [sprotty](https://github.com/eclipse/sprotty) diagramming framework. + +![](https://raw.githubusercontent.com/kieler/elkjs/master/doc/example_complexRouter.svg) + + +# FAQs and Recurring Issues +The following list includes some recurring topics that may have been addressed in issues already: + +* [#100][ejs100], [elk#355][e355], [elk#627][e627] - How to consider previous layout results, including + * dynamic layout, and + * incrementally adding nodes and edges to an existing layout. + +* [elk#315][e315]: Standalone edge routing. + +* [#85][ejs85] elkjs itself is a graph layout engine _only_. In other words, no rendering, styling, etc. is provided. + +* [#127][ejs127], [#141][ejs141], [#142][ejs142] - Issues due to the underlying code transpilation by GWT and/or due to the outdated usage of js modules: + * `g is not defined`, + * `Can't resolve web-worker`, and + * general usage as part of react, webpack, etc. + * [#6][ejs6] Poor modularization + * Contributions here are welcome! + +[ejs6]: https://github.com/kieler/elkjs/issues/6 +[ejs85]: https://github.com/kieler/elkjs/issues/85 +[ejs100]: https://github.com/kieler/elkjs/issues/100 +[ejs127]: https://github.com/kieler/elkjs/issues/127 +[ejs141]: https://github.com/kieler/elkjs/issues/141 +[ejs142]: https://github.com/kieler/elkjs/issues/142 +[e315]: https://github.com/eclipse/elk/issues/315 +[e355]: https://github.com/eclipse/elk/issues/355 +[e627]: https://github.com/eclipse/elk/issues/627 + +# Installation +The latest released version: +```bash +npm install elkjs +``` +Development version based on ELK's `master` branch. +```bash +npm install elkjs@next +``` + +# Releases and Versioning + +Releases are partly synchronized with ELK's versions: the minor version number is always the same but the revision number may diverge. For instance, elkjs 0.3.0 equals the functionality of ELK 0.3.0 but elkjs 0.3.2 may be different from ELK 0.3.2. This is necessary as there may be fixes that solely concern elkjs and should be released independently of ELK. + +# Files +The library consists of two main files: +* `elk-api.js`: Provides the API and only the API. +* `elk-worker.js`: Provides the code that actually knows how to lay out a graph. This is the file that is generated from ELK's Java code base using GWT. + +Two further files are provided: +* `elk.bundled.js`: A bundled version of the two previous files, ready to be dropped into a browser's ` + + +``` + +```html + + + + +``` + +## Typescript +```ts +import ELK from 'elkjs/lib/elk.bundled.js' +const elk = new ELK() + + +import ELK from 'elkjs/lib/elk-api' +const elk = new ELK({ + workerUrl: './elk-worker.min.js' +}) +``` + +## Debugging +For debugging purposes you may want to use the non-minified versions that are available as well. +In this case the non-minified webworker version can be configured like so: +```js +const ELK = require('elkjs/lib/elk-api.js') +const elk = new ELK({ + workerFactory: function(url) { // the value of 'url' is irrelevant here + const { Worker } = require('elkjs/lib/elk-worker.js') // non-minified + return new Worker(url) + } +}) +``` + +# API + +The elkjs library provides a single object: the `ELK`. The `ELK` has a constructor that can be used +to construct it: +* `new ELK(options)` - the `ELK` can be fed with options, all of which are optional: + * `defaultLayoutOptions` - an object with default layout options specified as key/value pairs + that are used if no further layout options are passed to the `layout(graph, options)` method (see below). Default: `{}`. + * `algorithms` - an array of algorithm ids (only the suffix). Default: `[ 'layered', 'stress', 'mrtree', 'radial', 'force', 'disco' ]`. Note that the `box`, `fixed`, and `random` layouters are always included. + * `workerUrl` - a path to the `elk-worker.js` script. As a consequence the `ELK` will use a Web Worker to execute the layout. Default: `undefined`. + +Apart from that the `ELK` offers the following methods: +* `layout(graph, options)` + * `graph` - the graph to be laid out in [ELK JSON](http://www.eclipse.org/elk/documentation/tooldevelopers/graphdatastructure/jsonformat.html). Mandatory! + * `options` - a configuration object. Optional. + * `layoutOptions`: its most important purpose is to pass _global_ layout options. + That is, layout options that are applied to every graph element unless the element specifies the option itself. + * `logging`: boolean (_since 0.6.0_). Whether logging information shall be passed back as part of the laid out graph. `false` by default. + * `measureExecutionTime`: boolean (_since 0.6.0_). Whether execution time (in seconds) information shall be passed back as part of the laid out graph. `false` by default. + * returns a `Promise`, which passes either the laid out graph on success or a (hopefully helpful) error on failure. +* `knownLayoutOptions()` + * returns an array of of known layout options. For each option additional information + such as its `id` and `group` is given. +* `knownLayoutAlgorithms()` + * returns an array of registered layout algorithms (see above) + alongside further information about each algorithm. +* `knownLayoutCategories()` + * returns an array of registered layout categories. +* `terminateWorker()` - in case a Web Worker is used, the worker's `terminate()` method is called. + +The three methods starting with `known` basically return information +that, in the Java world, would be retrieved from the [`LayoutMetaDataService`](http://www.eclipse.org/elk/documentation/algorithmdevelopers/metadatalanguage.html). + + +# Logging and Execution Times +(_Since 0.6.0_) + +ELK provides some means to log debug information during layout algorithm execution. +The details can be found in the [_Algorithm Debugging_](https://www.eclipse.org/elk/documentation/algorithmdevelopers/algorithmdebugging.html) section of ELK's documentation. +Not all of it is available in elkjs though, for instance, it is not possible to save intermediate results of the laid out graphs. +Furthermore, while internally execution time is measured in _nanoseconds_ on the Java side, +in elkjs we have to resort to _milliseconds_. +Note that the returned execution times are in seconds. +For small graphs this may often result in execution times being reported as `0`. + +See below an example call and the example output. +```js +elk.layout(simpleGraph, { + layoutOptions: { + 'algorithm': 'layered' + }, + logging: true, + measureExecutionTime: true +}) +``` +```js +{ + "id": "root", + "children": [ ... ], + "edges": [ ... ], + "logging": { + "name": "Recursive Graph Layout", + "executionTime": 0.000096, + "children": [ { + "name": "Layered layout", + "logs": [ + "ELK Layered uses the following 17 modules:", + " Slot 01: org.eclipse.elk.alg.layered.p1cycles.GreedyCycleBreaker", + [ ... ] + " Slot 16: org.eclipse.elk.alg.layered.intermediate.ReversedEdgeRestorer" + ], + "executionTime": 0.000072, + "children": [ { "name": "Greedy cycle removal", "executionTime": 0.000002 }, + [ ... ] + { "name": "Restoring reversed edges", "executionTime": 0 } ] + } ] + } +} +``` + +# Building + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kieler/elkjs) + +For building, a checkout of the [ELK](https://github.com/eclipse/elk) repository is required +and should be located in the same directory as the checkout of this repository. Like so: + +``` +some_dir/ + ├── elkjs + └── elk +``` + +```bash +npm install +npm run build +``` + +For a new release, the following version numbers have to be changed: +* `version` in `package.json`, +* `melk` in `build.gradle`, and +* don't forget to checkout the correct release tag of ELK's repository. + +Afterwards you can find the created files in the `lib` folder. + +Current procedure +```bash +git checkout -b releases/0.x.x +# Update versions and commit the changes +npm install +npm run build +npm run test +# Add ./lib/ directory and commit +git tag 0.x.x +# Push release branch an tags to remote +npm publish +``` + +# Links +In the following a list of asorted links to other projects and sites that may prove helpful: +* [Execution time comparison to Java ELK](https://github.com/kieler/elk-speed) +* How to specify [node label placement](http://kieler.github.io/klayjs-d3/examples/node_labels/) +* How to enforce certain [node positioning](http://kieler.github.io/klayjs-d3/examples/interactive/) (topological) + +# Example Users of elkjs + +- Schematics + - [netlistsvg](https://github.com/nturley/netlistsvg) - electronic and gate level schematics as SVG + - [d3-hwschematic](https://github.com/Nic30/d3-hwschematic) - interactive digital circuit analysis and documentation, particularly for FPGA-based designs +- Cytoscape [adapter](https://github.com/cytoscape/cytoscape.js-elk) +- [reaflow](https://reaflow.dev) - Node-based editor built on elkjs in React +- Wrapping elkjs into a [docker-based microservice](https://github.com/elbosso/elkjsmicroservice) +- [sprotty](https://github.com/eclipse/sprotty) - A diagramming framework +- [Eclipse 4diac](https://www.fordiac.org) +- [capellambse-context-diagrams](https://github.com/DSD-DBS/capellambse-context-diagrams) - Generating systems engineering context diagrams for [Capella](https://www.eclipse.org/capella/) in Python + +Note: We are happy to extend this list further, so please contact us if you have a project to add + +# Thanks + +* [@automata](https://github.com/automata) for the very first `klayjs` version +* [@aranega](https://github.com/aranega) for making emfgwt work for us +* [@EyMaddis](https://github.com/EyMaddis) for valuable API discussions +* The team working on the layout algorithms + * [@spoenemann](https://github.com/spoenemann) + * [@le-cds](https://github.com/le-cds) + * [@uruuru](https://github.com/uruuru) + * [@eNBeWe](https://github.com/eNBeWe) + * the vast number of students that contributed to ELK diff --git a/gen/local/elkjs/lib/elk-api.d.ts b/gen/local/elkjs/lib/elk-api.d.ts new file mode 100644 index 00000000..139ffbda --- /dev/null +++ b/gen/local/elkjs/lib/elk-api.d.ts @@ -0,0 +1,131 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export interface LayoutOptions { + [key: string]: string +} + +export interface ElkPoint { + x: number + y: number +} + +export interface ElkGraphElement { + id?: string + labels?: ElkLabel[] + layoutOptions?: LayoutOptions +} + +export interface ElkShape extends ElkGraphElement { + x?: number + y?: number + width?: number + height?: number +} + +export interface ElkNode extends ElkShape { + id: string + children?: ElkNode[] + ports?: ElkPort[] + edges?: ElkExtendedEdge[] +} + +export interface ElkPort extends ElkShape { + id: string +} + +export interface ElkLabel extends ElkShape { + text?: string +} + +/** + * @deprecated use ElkExtendedEdge directly + */ +export interface ElkEdge extends ElkGraphElement { + id: string + junctionPoints?: ElkPoint[] +} + +/** + * @deprecated use ElkExtendedEdge instead + */ +export interface ElkPrimitiveEdge extends ElkEdge { + source: string + sourcePort?: string + target: string + targetPort?: string + sourcePoint?: ElkPoint + targetPoint?: ElkPoint + bendPoints?: ElkPoint[] +} + +export interface ElkExtendedEdge extends ElkEdge { + sources: string[] + targets: string[] + sections?: ElkEdgeSection[] +} + +export interface ElkEdgeSection extends ElkGraphElement { + id: string + startPoint: ElkPoint + endPoint: ElkPoint + bendPoints?: ElkPoint[] + incomingShape?: string + outgoingShape?: string + incomingSections?: string[] + outgoingSections?: string[] +} + +export interface ElkLayoutArguments { + layoutOptions?: LayoutOptions + logging?: boolean + measureExecutionTime?: boolean +} + +export interface ElkCommonDescription { + id?: string + name?: string + description?: string +} + +export interface ElkLayoutAlgorithmDescription extends ElkCommonDescription { + category?: string + knownOptions?: string[] + supportedFeatures?: string[] +} + +export interface ElkLayoutOptionDescription extends ElkCommonDescription { + group?: string + type?: string + targets?: string[] +} + +export interface ElkLayoutCategoryDescription extends ElkCommonDescription { + knownLayouters?: string[] +} + +export interface ELK { + layout(graph: ElkNode, args?: ElkLayoutArguments): Promise; + knownLayoutAlgorithms(): Promise + knownLayoutOptions(): Promise + knownLayoutCategories(): Promise +} + +export interface ELKConstructorArguments { + defaultLayoutOptions?: LayoutOptions + algorithms?: string[] + workerUrl?: string + workerFactory?: (url?: string) => Worker +} + +declare const ElkConstructor: { + new(args?: ELKConstructorArguments): ELK; +}; +export default ElkConstructor; diff --git a/gen/local/elkjs/lib/elk-api.js b/gen/local/elkjs/lib/elk-api.js new file mode 100644 index 00000000..b60e8bdc --- /dev/null +++ b/gen/local/elkjs/lib/elk-api.js @@ -0,0 +1,224 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +"use strict"; + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELK; +ELK.default = ELK; +},{"./elk-api.js":1}]},{},[2])(2) +}); diff --git a/gen/local/elkjs/lib/elk-worker.d.ts b/gen/local/elkjs/lib/elk-worker.d.ts new file mode 100644 index 00000000..77606b21 --- /dev/null +++ b/gen/local/elkjs/lib/elk-worker.d.ts @@ -0,0 +1 @@ +export type Worker = Worker diff --git a/gen/local/elkjs/lib/elk-worker.js b/gen/local/elkjs/lib/elk-worker.js new file mode 100644 index 00000000..56c55756 --- /dev/null +++ b/gen/local/elkjs/lib/elk-worker.js @@ -0,0 +1,100643 @@ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var _xblockexpression; + +// -------------- GENERATED CODE -------------- +var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {198:1, 47:1}, $intern_4 = {198:1, 47:1, 125:1}, $intern_5 = {224:1, 3:1}, $intern_6 = {47:1}, $intern_7 = {83:1}, $intern_8 = {20:1, 28:1, 14:1}, $intern_9 = 1965, $intern_10 = {20:1, 28:1, 14:1, 21:1}, $intern_11 = {83:1, 171:1, 161:1}, $intern_12 = {20:1, 28:1, 14:1, 21:1, 84:1}, $intern_13 = {20:1, 28:1, 14:1, 271:1, 21:1, 84:1}, $intern_14 = {47:1, 125:1}, $intern_15 = {345:1, 42:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {164:1}, $intern_19 = {38:1}, $intern_20 = {l:4194303, m:4194303, h:524287}, $intern_21 = {196:1}, $intern_22 = {245:1, 3:1, 35:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 14:1}, $intern_25 = {3:1, 20:1, 28:1, 14:1}, $intern_26 = {152:1, 3:1, 20:1, 28:1, 14:1, 15:1, 54:1}, $intern_27 = {3:1, 4:1, 5:1, 165:1}, $intern_28 = {3:1, 83:1}, $intern_29 = {20:1, 14:1, 21:1}, $intern_30 = {3:1, 20:1, 28:1, 14:1, 21:1}, $intern_31 = {20:1, 14:1, 21:1, 84:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 165:1}, $intern_35 = 1073741824, $intern_36 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_37 = {20:1, 28:1, 52:1, 14:1, 15:1}, $intern_38 = {20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_39 = {45:1}, $intern_40 = {365:1}, $intern_41 = 1.0E-4, $intern_42 = -2147483648, $intern_43 = {3:1, 102:1, 60:1, 78:1}, $intern_44 = {195:1, 3:1, 4:1}, $intern_45 = 1000, $intern_46 = 65535, $intern_47 = 1900, $intern_48 = {48:1, 3:1, 4:1}, $intern_49 = {3:1, 4:1, 35:1, 199:1}, $intern_50 = 4194303, $intern_51 = 1048575, $intern_52 = 524288, $intern_53 = 4194304, $intern_54 = 17592186044416, $intern_55 = 1000000000, $intern_56 = -17592186044416, $intern_57 = {3:1, 102:1, 73:1, 60:1, 78:1}, $intern_58 = {3:1, 289:1, 78:1}, $intern_59 = Infinity, $intern_60 = -Infinity, $intern_61 = 4096, $intern_62 = {3:1, 4:1, 364:1}, $intern_63 = 65536, $intern_64 = 55296, $intern_65 = {104:1, 3:1, 4:1}, $intern_66 = 100000, $intern_67 = 0.3010299956639812, $intern_68 = 4294967295, $intern_69 = 4294967296, $intern_70 = {42:1}, $intern_71 = {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1}, $intern_72 = {3:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_73 = {20:1, 14:1, 15:1}, $intern_74 = {3:1, 62:1}, $intern_75 = {182:1}, $intern_76 = {3:1, 4:1, 83:1}, $intern_77 = {3:1, 4:1, 20:1, 28:1, 14:1, 53:1, 21:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_85 = {3:1, 35:1, 22:1, 297:1}, $intern_86 = {3:1, 4:1, 5:1, 842:1}, $intern_87 = {525:1, 670:1}, $intern_88 = {62:1}, $intern_89 = {169:1, 45:1}, $intern_90 = {130:1}, $intern_91 = {177:1, 3:1, 4:1}, $intern_92 = {212:1, 326:1}, $intern_93 = {3:1, 4:1, 5:1, 595:1}, $intern_94 = 0.01, $intern_95 = {3:1, 94:1, 134:1}, $intern_96 = {209:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 192:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 106:1, 120:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 122:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 141:1, 106:1, 120:1}, $intern_105 = {51:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 474:1, 141:1, 106:1, 120:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 141:1, 193:1, 203:1, 106:1, 120:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 141:1, 1943:1, 203:1, 106:1, 120:1}, $intern_109 = {3:1, 4:1, 142:1, 207:1, 414:1}, $intern_110 = {3:1, 4:1, 116:1, 207:1, 414:1}, $intern_111 = {225:1}, $intern_112 = {3:1, 4:1, 5:1, 593:1}, $intern_113 = {123:1, 51:1}, $intern_114 = {402:1, 225:1}, $intern_115 = {832:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 840:1}, $intern_117 = 1.0E-5, $intern_118 = 1.0E-6, $intern_119 = 0.09999999999999998, $intern_120 = 1.0E-8, $intern_121 = 4.71238898038469, $intern_122 = 3.141592653589793, $intern_123 = 6.283185307179586, $intern_124 = 4.9E-324, $intern_125 = {3:1, 4:1, 5:1, 106:1}, $intern_126 = 5.497787143782138, $intern_127 = 3.9269908169872414, $intern_128 = 2.356194490192345, $intern_129 = {331:1}, $intern_130 = {288:1}, $intern_131 = 0.05, $intern_132 = 1.2999999523162842, $intern_133 = {92:1, 90:1}, $intern_134 = 32768, $intern_135 = {105:1, 92:1, 90:1, 56:1, 49:1, 97:1}, $intern_136 = {190:1, 3:1, 4:1}, $intern_137 = 1024, $intern_138 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1}, $intern_139 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 47:1, 15:1, 54:1, 67:1, 63:1, 58:1, 588:1}, $intern_140 = {415:1, 672:1}, $intern_141 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}, $intern_142 = {366:1, 143:1}, $intern_143 = {3:1, 4:1, 5:1, 126:1}, $intern_144 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 58:1}, $intern_145 = {3:1, 6:1, 4:1, 5:1, 192:1}, $intern_146 = {3:1, 4:1, 5:1, 165:1, 367:1}, $intern_147 = {76:1}, $intern_148 = {3:1, 20:1, 14:1, 15:1, 58:1, 589:1, 76:1, 69:1, 95:1}, $intern_149 = 8192, $intern_150 = 2048, $intern_151 = {3:1, 4:1, 5:1, 247:1}, $intern_152 = {3:1, 4:1, 5:1, 673:1}, $intern_153 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 69:1}, $intern_154 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 69:1, 95:1}, $intern_155 = {3:1, 4:1, 5:1, 674:1}, $intern_156 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 76:1, 69:1, 95:1}, $intern_157 = {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 69:1}, $intern_158 = {47:1, 125:1, 279:1}, $intern_159 = {72:1, 332:1}, $intern_160 = 1316, $intern_161 = -32768, $intern_162 = {55:1}, $intern_163 = {3:1, 4:1, 5:1, 119:1}, $intern_164 = {92:1, 90:1, 591:1, 1935:1}, $intern_165 = 1114111, $intern_166 = {3:1, 117:1}, $intern_167 = {3:1, 4:1, 5:1, 368:1}; +var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; +function setGwtProperty(propertyName, propertyValue){ + typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); +} + +function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ + ensureModuleInit(); + var initFnList = initFnList_0; + $moduleName = modName; + $moduleBase = modBase; + permutationId = softPermutationId; + function initializeModules(){ + for (var i = 0; i < initFnList.length; i++) { + initFnList[i](); + } + } + + if (errFn) { + try { + $entry(initializeModules)(); + } + catch (e) { + errFn(modName, e); + } + } + else { + $entry(initializeModules)(); + } +} + +function ensureModuleInit(){ + initFnList_0 == null && (initFnList_0 = []); +} + +function addInitFunctions(){ + ensureModuleInit(); + var initFnList = initFnList_0; + for (var i = 0; i < arguments.length; i++) { + initFnList.push(arguments[i]); + } +} + +function typeMarkerFn(){ +} + +function toString_40(object){ + var number; + if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { + return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); + } + return object.toString(); +} + +function portableObjCreate(obj){ + function F(){ + } + + ; + F.prototype = obj || {}; + return new F; +} + +function makeLambdaFunction(samMethod, ctor, ctorArguments){ + var lambda = function(){ + return samMethod.apply(lambda, arguments); + } + ; + ctor.apply(lambda, ctorArguments); + return lambda; +} + +function emptyMethod(){ +} + +function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ + var prototypesByTypeId = prototypesByTypeId_0, superPrototype; + var prototype_0 = prototypesByTypeId[typeId]; + var clazz = prototype_0 instanceof Array?prototype_0[0]:null; + if (prototype_0 && !clazz) { + _ = prototype_0; + } + else { + _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); + _.castableTypeMap = castableTypeMap; + !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); + prototypesByTypeId[typeId] = _; + } + for (var i = 3; i < arguments.length; ++i) { + arguments[i].prototype = _; + } + clazz && (_.___clazz = clazz); +} + +function bootstrap(){ + prototypesByTypeId_0 = {}; + !Array.isArray && (Array.isArray = function(vArg){ + return Object.prototype.toString.call(vArg) === '[object Array]'; + } + ); + function now_0(){ + return (new Date).getTime(); + } + + !Date.now && (Date.now = now_0); +} + +$wnd.goog = $wnd.goog || {}; +$wnd.goog.global = $wnd.goog.global || $wnd; +bootstrap(); +function $equals(this$static, other){ + return maskUndefined(this$static) === maskUndefined(other); +} + +function Object_0(){ +} + +function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ + return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other); +} + +function getClass__Ljava_lang_Class___devirtual$(this$static){ + return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; +} + +function hashCode__I__devirtual$(this$static){ + return instanceOfString(this$static)?getHashCode_1(this$static):instanceOfDouble(this$static)?$hashCode_0(this$static):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static)?1231:1237:hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getHashCode_0(this$static):$hashCode(this$static); +} + +defineClass(1, null, {}, Object_0); +_.equals_0 = function equals(other){ + return $equals(this, other); +} +; +_.getClass_0 = function getClass_0(){ + return this.___clazz; +} +; +_.hashCode_1 = function hashCode_0(){ + return getHashCode_0(this); +} +; +_.toString_0 = function toString_1(){ + var number; + return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); +} +; +_.equals = function(other){ + return this.equals_0(other); +} +; +_.hashCode = function(){ + return this.hashCode_1(); +} +; +_.toString = function(){ + return this.toString_0(); +} +; +function canCast(src_0, dstId){ + if (instanceOfString(src_0)) { + return !!stringCastMap[dstId]; + } + else if (src_0.castableTypeMap) { + return !!src_0.castableTypeMap[dstId]; + } + else if (instanceOfDouble(src_0)) { + return !!doubleCastMap[dstId]; + } + else if (instanceOfBoolean(src_0)) { + return !!booleanCastMap[dstId]; + } + return false; +} + +function castTo(src_0, dstId){ + checkCriticalType(src_0 == null || canCast(src_0, dstId)); + return src_0; +} + +function castToArray(src_0){ + var elementTypeCategory; + checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))); + return src_0; +} + +function castToBoolean(src_0){ + checkCriticalType(src_0 == null || instanceOfBoolean(src_0)); + return src_0; +} + +function castToDouble(src_0){ + checkCriticalType(src_0 == null || instanceOfDouble(src_0)); + return src_0; +} + +function castToJso(src_0){ + checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn)); + return src_0; +} + +function castToString(src_0){ + checkCriticalType(src_0 == null || instanceOfString(src_0)); + return src_0; +} + +function charToString(x_0){ + return String.fromCharCode(x_0); +} + +function hasJavaObjectVirtualDispatch(src_0){ + return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function instanceOf(src_0, dstId){ + return src_0 != null && canCast(src_0, dstId); +} + +function instanceOfBoolean(src_0){ + return typeof src_0 === 'boolean'; +} + +function instanceOfDouble(src_0){ + return typeof src_0 === 'number'; +} + +function instanceOfJso(src_0){ + return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn); +} + +function instanceOfString(src_0){ + return typeof src_0 === 'string'; +} + +function isJsObjectOrFunction(src_0){ + return typeof src_0 === 'object' || typeof src_0 === 'function'; +} + +function maskUndefined(src_0){ + return src_0 == null?null:src_0; +} + +function round_int(x_0){ + return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; +} + +function throwClassCastExceptionUnlessNull(o){ + checkCriticalType(o == null); + return o; +} + +var booleanCastMap, doubleCastMap, stringCastMap; +function $ensureNamesAreInitialized(this$static){ + if (this$static.typeName != null) { + return; + } + initializeNames(this$static); +} + +function $getEnumConstants(this$static){ + return this$static.enumConstantsFunc && this$static.enumConstantsFunc(); +} + +function $getName(this$static){ + $ensureNamesAreInitialized(this$static); + return this$static.typeName; +} + +function $toString_5(this$static){ + return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName); +} + +function Class(){ + ++nextSequentialId; + this.typeName = null; + this.simpleName = null; + this.packageName = null; + this.compoundName = null; + this.canonicalName = null; + this.typeId = null; + this.arrayLiterals = null; +} + +function createClassObject(packageName, compoundClassName){ + var clazz; + clazz = new Class; + clazz.packageName = packageName; + clazz.compoundName = compoundClassName; + return clazz; +} + +function createForClass(packageName, compoundClassName, typeId){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + return clazz; +} + +function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + clazz.modifiers = enumConstantsFunc?8:0; + clazz.enumSuperclass = superclass; + clazz.enumConstantsFunc = enumConstantsFunc; + clazz.enumValueOfFunc = enumValueOfFunc; + return clazz; +} + +function createForInterface(packageName, compoundClassName){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + clazz.modifiers = 2; + return clazz; +} + +function createForPrimitive(className, primitiveTypeId){ + var clazz; + clazz = createClassObject('', className); + clazz.typeId = primitiveTypeId; + clazz.modifiers = 1; + return clazz; +} + +function getClassLiteralForArray_0(leafClass, dimensions){ + var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; + return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); +} + +function getPrototypeForClass(clazz){ + if (clazz.isPrimitive()) { + return null; + } + var typeId = clazz.typeId; + return prototypesByTypeId_0[typeId]; +} + +function initializeNames(clazz){ + if (clazz.isArray_1()) { + var componentType = clazz.componentType; + componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName()); + clazz.canonicalName = componentType.getCanonicalName() + '[]'; + clazz.simpleName = componentType.getSimpleName() + '[]'; + return; + } + var packageName = clazz.packageName; + var compoundName = clazz.compoundName; + compoundName = compoundName.split('/'); + clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); + clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); + clazz.simpleName = compoundName[compoundName.length - 1]; +} + +function join_0(separator, strings){ + var i = 0; + while (!strings[i] || strings[i] == '') { + i++; + } + var result = strings[i++]; + for (; i < strings.length; i++) { + if (!strings[i] || strings[i] == '') { + continue; + } + result += separator + strings[i]; + } + return result; +} + +function maybeSetClassLiteral(typeId, clazz){ + var proto; + if (!typeId) { + return; + } + clazz.typeId = typeId; + var prototype_0 = getPrototypeForClass(clazz); + if (!prototype_0) { + prototypesByTypeId_0[typeId] = [clazz]; + return; + } + prototype_0.___clazz = clazz; +} + +defineClass(290, 1, {290:1, 2026:1}, Class); +_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ + var clazz; + clazz = new Class; + clazz.modifiers = 4; + dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); + return clazz; +} +; +_.getCanonicalName = function getCanonicalName(){ + $ensureNamesAreInitialized(this); + return this.canonicalName; +} +; +_.getName = function getName(){ + return $getName(this); +} +; +_.getSimpleName = function getSimpleName(){ + return $ensureNamesAreInitialized(this) , this.simpleName; +} +; +_.isArray_1 = function isArray_1(){ + return (this.modifiers & 4) != 0; +} +; +_.isPrimitive = function isPrimitive(){ + return (this.modifiers & 1) != 0; +} +; +_.toString_0 = function toString_44(){ + return $toString_5(this); +} +; +_.modifiers = 0; +var nextSequentialId = 1; +var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); +var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 290); +defineClass(1998, 1, $intern_1); +var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 1998); +function $clinit_Absent(){ + $clinit_Absent = emptyMethod; + INSTANCE = new Absent; +} + +function Absent(){ +} + +defineClass(1170, 1998, $intern_1, Absent); +_.equals_0 = function equals_0(object){ + return object === this; +} +; +_.hashCode_1 = function hashCode_1(){ + return 2040732332; +} +; +_.toString_0 = function toString_2(){ + return 'Optional.absent()'; +} +; +_.transform = function transform(function_0){ + checkNotNull(function_0); + return $clinit_Absent() , INSTANCE; +} +; +var INSTANCE; +var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1170); +function $appendTo(this$static, appendable, parts){ + checkNotNull(appendable); + if (parts.hasNext_0()) { + $append_7(appendable, $toString(parts.next_1())); + while (parts.hasNext_0()) { + $append_7(appendable, this$static.separator); + $append_7(appendable, $toString(parts.next_1())); + } + } + return appendable; +} + +function $appendTo_0(this$static, builder, parts){ + var impossible; + try { + $appendTo(this$static, builder, parts); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 597)) { + impossible = $e0; + throw toJs(new AssertionError_0(impossible)); + } + else + throw toJs($e0); + } + return builder; +} + +function $join(this$static, parts){ + return $appendTo_0(this$static, new StringBuilder, parts).string; +} + +function $toString(part){ + checkNotNull(part); + return instanceOf(part, 475)?castTo(part, 475):toString_40(part); +} + +function Joiner(){ + this.separator = castToString(checkNotNull(', ')); +} + +defineClass(628, 1, {}, Joiner); +var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 628); +function equal(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function badElementIndex(index_0, size_0){ + if (index_0 < 0) { + return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0)])); + } + else if (size_0 < 0) { + throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); + } + else { + return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0), valueOf_4(size_0)])); + } +} + +function badPositionIndex(index_0, size_0, desc){ + if (index_0 < 0) { + return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0)])); + } + else if (size_0 < 0) { + throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); + } + else { + return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0), valueOf_4(size_0)])); + } +} + +function badPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || start_0 > size_0) { + return badPositionIndex(start_0, size_0, 'start index'); + } + if (end < 0 || end > size_0) { + return badPositionIndex(end, size_0, 'end index'); + } + return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(end), valueOf_4(start_0)])); +} + +function checkArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkArgument_1(b, p1){ + if (!b) { + throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1])))); + } +} + +function checkArgument_2(b, errorMessageTemplate, p1, p2){ + if (!b) { + throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2])))); + } +} + +function checkElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0))); + } + return index_0; +} + +function checkNotNull(reference){ + if (reference == null) { + throw toJs(new NullPointerException); + } + return reference; +} + +function checkNotNull_0(reference, errorMessage){ + if (reference == null) { + throw toJs(new NullPointerException_0(errorMessage)); + } + return reference; +} + +function checkPositionIndex(index_0, size_0){ + if (index_0 < 0 || index_0 > size_0) { + throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index'))); + } + return index_0; +} + +function checkPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || end < start_0 || end > size_0) { + throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0))); + } +} + +function checkState(expression){ + if (!expression) { + throw toJs(new IllegalStateException); + } +} + +function checkState_0(expression){ + if (!expression) { + throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); + } +} + +var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate'); +function toStringHelper(components){ + var builder, first, o, o$iterator; + builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40); + first = true; + for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) { + o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++)); + first || (builder.string += ',' , builder); + builder.string += '' + o; + first = false; + } + return (builder.string += ')' , builder).string; +} + +function $apply(this$static, t){ + var i; + for (i = 0; i < this$static.components.array.length; i++) { + if (!castTo($get_12(this$static.components, i), 169).apply_1(t)) { + return false; + } + } + return true; +} + +function Predicates$AndPredicate(components){ + this.components = components; +} + +defineClass(582, 1, {169:1, 582:1, 3:1, 45:1}, Predicates$AndPredicate); +_.test_0 = function test_0(input_0){ + return $apply(this, input_0); +} +; +_.apply_1 = function apply_1(t){ + return $apply(this, t); +} +; +_.equals_0 = function equals_1(obj){ + var that; + if (instanceOf(obj, 582)) { + that = castTo(obj, 582); + return $equals_2(this.components, that.components); + } + return false; +} +; +_.hashCode_1 = function hashCode_2(){ + return hashCode_48(this.components) + 306654252; +} +; +_.toString_0 = function toString_3(){ + return toStringHelper(this.components); +} +; +var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 582); +function Present(reference){ + this.reference = reference; +} + +defineClass(408, 1998, {408:1, 3:1}, Present); +_.equals_0 = function equals_2(object){ + var other; + if (instanceOf(object, 408)) { + other = castTo(object, 408); + return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference); + } + return false; +} +; +_.hashCode_1 = function hashCode_3(){ + return 1502476572 + hashCode__I__devirtual$(this.reference); +} +; +_.toString_0 = function toString_4(){ + return 'Optional.of(' + this.reference + ')'; +} +; +_.transform = function transform_0(function_0){ + return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.')); +} +; +var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 408); +function lenientFormat(template, args){ + var builder, i, i0, placeholderStart, templateStart; + template = template == null?'null':(checkCriticalNotNull(template) , template); + for (i0 = 0; i0 < args.length; i0++) { + args[i0] = lenientToString(args[i0]); + } + builder = new StringBuilder_0; + templateStart = 0; + i = 0; + while (i < args.length) { + placeholderStart = template.indexOf('%s', templateStart); + if (placeholderStart == -1) { + break; + } + builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart); + $append_10(builder, args[i++]); + templateStart = placeholderStart + 2; + } + $append_9(builder, template, templateStart, template.length); + if (i < args.length) { + builder.string += ' ['; + $append_10(builder, args[i++]); + while (i < args.length) { + builder.string += ', '; + $append_10(builder, args[i++]); + } + builder.string += ']'; + } + return builder.string; +} + +function lenientToString(o){ + var e, number, objectToString; + try { + return o == null?'null':toString_40(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + e = $e0; + objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16)); + $log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e); + return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>'; + } + else + throw toJs($e0); + } +} + +function $forEachRemaining(this$static, consumer){ + checkCriticalNotNull(consumer); + while (this$static.hasNext_0()) { + consumer.accept(this$static.next_1()); + } +} + +function $remove_21(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove(){ + throw toJs(new UnsupportedOperationException); +} + +defineClass(198, 1, $intern_3); +_.forEachRemaining = function forEachRemaining(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_0(){ + $remove(); +} +; +var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 198); +defineClass(1978, 198, $intern_4); +_.remove = function remove_1(){ + $remove(); +} +; +_.add_1 = function add_1(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_1(e){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 1978); +function AbstractIndexedListIterator(size_0){ + AbstractIndexedListIterator_0.call(this, size_0, 0); +} + +function AbstractIndexedListIterator_0(size_0, position){ + checkPositionIndex(position, size_0); + this.size_0 = size_0; + this.position = position; +} + +defineClass(386, 1978, $intern_4); +_.hasNext_0 = function hasNext(){ + return this.position < this.size_0; +} +; +_.hasPrevious = function hasPrevious(){ + return this.position > 0; +} +; +_.next_1 = function next_0(){ + if (this.position >= this.size_0) { + throw toJs(new NoSuchElementException); + } + return this.get_0(this.position++); +} +; +_.nextIndex_0 = function nextIndex_0(){ + return this.position; +} +; +_.previous_0 = function previous_0(){ + if (this.position <= 0) { + throw toJs(new NoSuchElementException); + } + return this.get_0(--this.position); +} +; +_.previousIndex = function previousIndex(){ + return this.position - 1; +} +; +_.position = 0; +_.size_0 = 0; +var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 386); +function $hasNext(this$static){ + checkState(this$static.state != 3); + switch (this$static.state) { + case 2: + return false; + case 0: + return true; + } + return $tryToComputeNext(this$static); +} + +function $next(this$static){ + var result; + if (!$hasNext(this$static)) { + throw toJs(new NoSuchElementException); + } + this$static.state = 1; + result = this$static.next_0; + this$static.next_0 = null; + return result; +} + +function $tryToComputeNext(this$static){ + this$static.state = 3; + this$static.next_0 = this$static.computeNext(); + if (this$static.state != 2) { + this$static.state = 0; + return true; + } + return false; +} + +defineClass(699, 198, $intern_3); +_.hasNext_0 = function hasNext_0(){ + return $hasNext(this); +} +; +_.next_1 = function next_1(){ + return $next(this); +} +; +_.state = 1; +var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 699); +function $containsEntry(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 14); + return !!collection && collection.contains(value_0); +} + +function $containsValue(this$static, value_0){ + var collection, collection$iterator; + for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) { + collection = castTo(collection$iterator.next_1(), 14); + if (collection.contains(value_0)) { + return true; + } + } + return false; +} + +function $keySet(this$static){ + var result; + result = this$static.keySet; + return !result?(this$static.keySet = this$static.createKeySet()):result; +} + +function $keys(this$static){ + var result; + result = this$static.keys_0; + return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result; +} + +function $remove_0(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 14); + return !!collection && collection.remove_1(value_0); +} + +defineClass(1986, 1, {224:1}); +_.asMap_0 = function asMap(){ + var result; + return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; +} +; +_.equals_0 = function equals_3(object){ + return equalsImpl_1(this, object); +} +; +_.hashCode_1 = function hashCode_4(){ + return hashCode__I__devirtual$(this.asMap_0()); +} +; +_.isEmpty = function isEmpty(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet(){ + return $keySet(this); +} +; +_.toString_0 = function toString_5(){ + return toString_40(this.asMap_0()); +} +; +var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 1986); +function $clear(this$static){ + var collection, collection$iterator; + for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) { + collection = castTo(collection$iterator.next_1(), 14); + collection.clear_0(); + } + this$static.map_0.clear_0(); + this$static.totalSize = 0; +} + +function $containsKey(this$static, key){ + return this$static.map_0.containsKey(key); +} + +function $entries(this$static){ + var result; + return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result; +} + +function $get(this$static, key){ + var collection; + collection = castTo(this$static.map_0.get_3(key), 14); + !collection && (collection = this$static.createCollection_0(key)); + return this$static.wrapCollection(key, collection); +} + +function $put(this$static, key, value_0){ + var collection; + collection = castTo(this$static.map_0.get_3(key), 14); + if (!collection) { + collection = this$static.createCollection_0(key); + if (collection.add_2(value_0)) { + ++this$static.totalSize; + this$static.map_0.put(key, collection); + return true; + } + else { + throw toJs(new AssertionError_0('New Collection violated the Collection spec')); + } + } + else if (collection.add_2(value_0)) { + ++this$static.totalSize; + return true; + } + else { + return false; + } +} + +function $removeAll(this$static, key){ + var collection, output; + collection = castTo(this$static.map_0.remove_0(key), 14); + if (!collection) { + return this$static.createUnmodifiableEmptyCollection(); + } + output = this$static.createCollection(); + output.addAll(collection); + this$static.totalSize -= collection.size_1(); + collection.clear_0(); + return this$static.unmodifiableCollectionSubclass(output); +} + +function $removeValuesForKey(this$static, key){ + var collection, count; + collection = castTo(safeRemove_0(this$static.map_0, key), 14); + if (collection) { + count = collection.size_1(); + collection.clear_0(); + this$static.totalSize -= count; + } +} + +function $values(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +function $wrapList(this$static, key, list, ancestor){ + return instanceOf(list, 54)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor); +} + +function AbstractMapBasedMultimap(map_0){ + checkArgument(map_0.isEmpty()); + this.map_0 = map_0; +} + +function iteratorOrListIterator(collection){ + return instanceOf(collection, 15)?castTo(collection, 15).listIterator_0():collection.iterator_0(); +} + +function lambda$1(keyToValueCollectionEntry_0){ + var key, valueCollection; + key = keyToValueCollectionEntry_0.getKey(); + valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 14); + return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); +} + +defineClass(726, 1986, $intern_5); +_.clear_0 = function clear_0(){ + $clear(this); +} +; +_.containsKey = function containsKey(key){ + return $containsKey(this, key); +} +; +_.createAsMap = function createAsMap(){ + return new AbstractMapBasedMultimap$AsMap(this, this.map_0); +} +; +_.createCollection_0 = function createCollection(key){ + return this.createCollection(); +} +; +_.createKeySet = function createKeySet(){ + return new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){ + return this.unmodifiableCollectionSubclass(this.createCollection()); +} +; +_.entryIterator = function entryIterator_0(){ + return new AbstractMapBasedMultimap$2(this); +} +; +_.entrySpliterator = function entrySpliterator_0(){ + return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize); +} +; +_.get_1 = function get_0(key){ + return $get(this, key); +} +; +_.removeAll = function removeAll(key){ + return $removeAll(this, key); +} +; +_.size_1 = function size_1(){ + return this.totalSize; +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){ + return $clinit_Collections() , new Collections$UnmodifiableCollection(collection); +} +; +_.valueIterator_0 = function valueIterator(){ + return new AbstractMapBasedMultimap$1(this); +} +; +_.valueSpliterator = function valueSpliterator(){ + return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize); +} +; +_.wrapCollection = function wrapCollection(key, collection){ + return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null); +} +; +_.totalSize = 0; +var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 726); +function $asMap(this$static){ + var result; + return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result; +} + +defineClass(1631, 726, $intern_5); +_.createCollection = function createCollection_0(){ + return new ArrayList_0(this.expectedValuesPerKey); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.get_1 = function get_1(key){ + return castTo($get(this, key), 15); +} +; +_.removeAll = function removeAll_0(key){ + return castTo($removeAll(this, key), 15); +} +; +_.asMap_0 = function asMap_0(){ + return $asMap(this); +} +; +_.equals_0 = function equals_4(object){ + return equalsImpl_1(this, object); +} +; +_.get_2 = function get_2(key){ + return castTo($get(this, key), 15); +} +; +_.removeAll_0 = function removeAll_1(key){ + return castTo($removeAll(this, key), 15); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){ + return unmodifiableList(castTo(collection, 15)); +} +; +_.wrapCollection = function wrapCollection_0(key, collection){ + return $wrapList(this, key, castTo(collection, 15), null); +} +; +var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1631); +function AbstractMapBasedMultimap$Itr(this$0){ + this.this$01 = this$0; + this.keyIterator = this$0.map_0.entrySet_0().iterator_0(); + this.key = null; + this.collection = null; + this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2); +} + +defineClass(732, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_0(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_1(){ + return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0(); +} +; +_.next_1 = function next_2(){ + var mapEntry; + if (!this.valueIterator.hasNext_0()) { + mapEntry = castTo(this.keyIterator.next_1(), 42); + this.key = mapEntry.getKey(); + this.collection = castTo(mapEntry.getValue(), 14); + this.valueIterator = this.collection.iterator_0(); + } + return this.output(this.key, this.valueIterator.next_1()); +} +; +_.remove = function remove_2(){ + this.valueIterator.remove(); + this.collection.isEmpty() && this.keyIterator.remove(); + --this.this$01.totalSize; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 732); +function AbstractMapBasedMultimap$1(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1099, 732, $intern_6, AbstractMapBasedMultimap$1); +_.output = function output_0(key, value_0){ + return value_0; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1099); +function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ +} + +defineClass(1100, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); +_.apply_0 = function apply_2(arg0){ + return castTo(arg0, 14).spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1100); +function AbstractMapBasedMultimap$2(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1101, 732, $intern_6, AbstractMapBasedMultimap$2); +_.output = function output_1(key, value_0){ + return new ImmutableEntry(key, value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1101); +function $forEach_2(this$static, consumer){ + var entry, entry$iterator; + checkCriticalNotNull(consumer); + for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + consumer.accept_1(entry.getKey(), entry.getValue()); + } +} + +function $merge(this$static, key, value_0, remappingFunction){ + var currentValue, newValue; + checkCriticalNotNull(remappingFunction); + checkCriticalNotNull(value_0); + currentValue = this$static.get_3(key); + newValue = currentValue == null?value_0:addAll_21(castTo(currentValue, 15), castTo(value_0, 14)); + newValue == null?this$static.remove_0(key):this$static.put(key, newValue); + return newValue; +} + +var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map'); +function $containsEntry_0(this$static, entry){ + var key, ourValue, value_0; + key = entry.getKey(); + value_0 = entry.getValue(); + ourValue = this$static.get_3(key); + if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) { + return false; + } + if (ourValue == null && !this$static.containsKey(key)) { + return false; + } + return true; +} + +function $implFindEntry(this$static, key, remove){ + var entry, iter, k; + for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) { + entry = castTo(iter.next_1(), 42); + k = entry.getKey(); + if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) { + if (remove) { + entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue()); + iter.remove(); + } + return entry; + } + } + return null; +} + +function $putAll(this$static, map_0){ + var e, e$iterator; + checkCriticalNotNull(map_0); + for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 42); + this$static.put(e.getKey(), e.getValue()); + } +} + +function $toString_0(this$static){ + var entry, entry$iterator, joiner; + joiner = new StringJoiner(', ', '{', '}'); + for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + $add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue())); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function $toString_1(this$static, o){ + return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o); +} + +function getEntryKeyOrNull(entry){ + return !entry?null:entry.key; +} + +function getEntryValueOrNull(entry){ + return !entry?null:entry.getValue(); +} + +defineClass(1967, 1, $intern_7); +_.forEach = function forEach(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_1(){ + this.entrySet_0().clear_0(); +} +; +_.containsEntry = function containsEntry(entry){ + return $containsEntry_0(this, entry); +} +; +_.containsKey = function containsKey_0(key){ + return !!$implFindEntry(this, key, false); +} +; +_.containsValue = function containsValue(value_0){ + var entry, entry$iterator, v; + for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + v = entry.getValue(); + if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) { + return true; + } + } + return false; +} +; +_.equals_0 = function equals_5(obj){ + var entry, entry$iterator, otherMap; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 83)) { + return false; + } + otherMap = castTo(obj, 83); + if (this.size_1() != otherMap.size_1()) { + return false; + } + for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if (!this.containsEntry(entry)) { + return false; + } + } + return true; +} +; +_.get_3 = function get_3(key){ + return getEntryValueOrNull($implFindEntry(this, key, false)); +} +; +_.hashCode_1 = function hashCode_5(){ + return hashCode_47(this.entrySet_0()); +} +; +_.isEmpty = function isEmpty_0(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet_0(){ + return new AbstractMap$1(this); +} +; +_.put = function put(key, value_0){ + throw toJs(new UnsupportedOperationException_0('Put not supported on this map')); +} +; +_.putAll = function putAll(map_0){ + $putAll(this, map_0); +} +; +_.remove_0 = function remove_3(key){ + return getEntryValueOrNull($implFindEntry(this, key, true)); +} +; +_.size_1 = function size_2(){ + return this.entrySet_0().size_1(); +} +; +_.toString_0 = function toString_6(){ + return $toString_0(this); +} +; +_.values_0 = function values_1(){ + return new AbstractMap$2(this); +} +; +var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 1967); +function $entrySet(this$static){ + var result; + result = this$static.entrySet; + return !result?(this$static.entrySet = this$static.createEntrySet()):result; +} + +defineClass(1987, 1967, $intern_7); +_.createKeySet = function createKeySet_0(){ + return new Maps$KeySet(this); +} +; +_.entrySet_0 = function entrySet(){ + return $entrySet(this); +} +; +_.keySet_0 = function keySet_1(){ + var result; + result = this.keySet; + return !result?(this.keySet = this.createKeySet()):result; +} +; +_.values_0 = function values_2(){ + var result; + result = this.values; + return !result?(this.values = new Maps$Values(this)):result; +} +; +var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 1987); +function $get_0(this$static, key){ + var collection, k; + collection = castTo(safeGet(this$static.submap, key), 14); + if (!collection) { + return null; + } + k = key; + return this$static.this$01_1.wrapCollection(k, collection); +} + +function $remove_1(this$static, key){ + var collection, output; + collection = castTo(this$static.submap.remove_0(key), 14); + if (!collection) { + return null; + } + output = this$static.this$01_1.createCollection(); + output.addAll(collection); + this$static.this$01_1.totalSize -= collection.size_1(); + collection.clear_0(); + return output; +} + +function $wrapEntry(this$static, entry){ + var key; + key = entry.getKey(); + return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 14))); +} + +function AbstractMapBasedMultimap$AsMap(this$0, submap){ + this.this$01_1 = this$0; + this.submap = submap; +} + +defineClass(389, 1987, $intern_7, AbstractMapBasedMultimap$AsMap); +_.get_3 = function get_4(key){ + return $get_0(this, key); +} +; +_.remove_0 = function remove_4(key){ + return $remove_1(this, key); +} +; +_.clear_0 = function clear_2(){ + this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this)); +} +; +_.containsKey = function containsKey_1(key){ + return safeContainsKey(this.submap, key); +} +; +_.createEntrySet_0 = function createEntrySet(){ + return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this); +} +; +_.createEntrySet = function(){ + return this.createEntrySet_0(); +} +; +_.equals_0 = function equals_6(object){ + return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object); +} +; +_.hashCode_1 = function hashCode_6(){ + return hashCode__I__devirtual$(this.submap); +} +; +_.keySet_0 = function keySet_2(){ + return this.this$01_1.keySet_0(); +} +; +_.size_1 = function size_3(){ + return this.submap.size_1(); +} +; +_.toString_0 = function toString_7(){ + return toString_40(this.submap); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 389); +function $forEach_0(this$static, action){ + var t, t$iterator; + checkCriticalNotNull(action); + for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + action.accept(t); + } +} + +var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable'); +function $addAll(this$static, c){ + var changed, e, e$iterator; + checkCriticalNotNull(c); + changed = false; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + changed = changed | this$static.add_2(e); + } + return changed; +} + +function $advanceToFind(this$static, o, remove){ + var e, iter; + for (iter = this$static.iterator_0(); iter.hasNext_0();) { + e = iter.next_1(); + if (maskUndefined(o) === maskUndefined(e) || o != null && equals_Ljava_lang_Object__Z__devirtual$(o, e)) { + remove && iter.remove(); + return true; + } + } + return false; +} + +function $clear_0(this$static){ + var iter; + for (iter = this$static.iterator_0(); iter.hasNext_0();) { + iter.next_1(); + iter.remove(); + } +} + +function $containsAll(this$static, c){ + var e, e$iterator; + checkCriticalNotNull(c); + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + if (!this$static.contains(e)) { + return false; + } + } + return true; +} + +function $removeAll_0(this$static, c){ + var changed, iter, o; + checkCriticalNotNull(c); + changed = false; + for (iter = new ArrayList$1(this$static); iter.i < iter.this$01.array.length;) { + o = $next_7(iter); + if ($advanceToFind(c, o, false)) { + $remove_13(iter); + changed = true; + } + } + return changed; +} + +function $toArray(this$static){ + return this$static.toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.size_1(), 5, 1)); +} + +function $toArray_0(this$static, a){ + var i, it, result, size_0; + size_0 = this$static.size_1(); + a.length < size_0 && (a = stampJavaTypeInfo_1(new Array(size_0), a)); + result = a; + it = this$static.iterator_0(); + for (i = 0; i < size_0; ++i) { + setCheck(result, i, it.next_1()); + } + a.length > size_0 && setCheck(a, size_0, null); + return a; +} + +function $toString_2(this$static){ + var e, e$iterator, joiner; + joiner = new StringJoiner(', ', '[', ']'); + for (e$iterator = this$static.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $add_9(joiner, maskUndefined(e) === maskUndefined(this$static)?'(this Collection)':e == null?'null':toString_40(e)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +defineClass(28, 1, $intern_8); +_.forEach_0 = function forEach_0(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream(){ + return this.stream(); +} +; +_.spliterator_0 = function spliterator_0(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_0(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_2(o){ + throw toJs(new UnsupportedOperationException_0('Add not supported on this collection')); +} +; +_.addAll = function addAll(c){ + return $addAll(this, c); +} +; +_.clear_0 = function clear_3(){ + $clear_0(this); +} +; +_.contains = function contains(o){ + return $advanceToFind(this, o, false); +} +; +_.containsAll = function containsAll(c){ + return $containsAll(this, c); +} +; +_.isEmpty = function isEmpty_1(){ + return this.size_1() == 0; +} +; +_.remove_1 = function remove_5(o){ + return $advanceToFind(this, o, true); +} +; +_.toArray = function toArray(){ + return $toArray(this); +} +; +_.toArray_0 = function toArray_0(a){ + return $toArray_0(this, a); +} +; +_.toString_0 = function toString_8(){ + return $toString_2(this); +} +; +var Ljava_util_AbstractCollection_2_classLit = createForClass('java.util', 'AbstractCollection', 28); +var Ljava_util_Set_2_classLit = createForInterface('java.util', 'Set'); +function $equals_0(this$static, o){ + var other; + if (maskUndefined(o) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(o, 21)) { + return false; + } + other = castTo(o, 21); + if (other.size_1() != this$static.size_1()) { + return false; + } + return this$static.containsAll(other); +} + +function $removeAll_1(this$static, c){ + var iter, o, o$iterator, size_0; + checkCriticalNotNull(c); + size_0 = this$static.map_0.size_1(); + if (size_0 < c.size_1()) { + for (iter = this$static.map_0.keySet_0().iterator_0(); iter.hasNext_0();) { + o = iter.next_1(); + c.contains(o) && iter.remove(); + } + } + else { + for (o$iterator = c.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + this$static.map_0.remove_0(o) != null; + } + } + return size_0 != this$static.map_0.size_1(); +} + +defineClass($intern_9, 28, $intern_10); +_.spliterator_0 = function spliterator_1(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_7(o){ + return $equals_0(this, o); +} +; +_.hashCode_1 = function hashCode_7(){ + return hashCode_47(this); +} +; +var Ljava_util_AbstractSet_2_classLit = createForClass('java.util', 'AbstractSet', $intern_9); +defineClass(1970, $intern_9, $intern_10); +var Lcom_google_common_collect_Sets$ImprovedAbstractSet_2_classLit = createForClass('com.google.common.collect', 'Sets/ImprovedAbstractSet', 1970); +function $contains(this$static, o){ + var entry, key, value_0; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + key = entry.getKey(); + value_0 = safeGet(this$static.map_1(), key); + return equal(value_0, entry.getValue()) && (value_0 != null || this$static.map_1().containsKey(key)); + } + return false; +} + +defineClass(1971, 1970, $intern_10); +_.clear_0 = function clear_4(){ + this.map_1().clear_0(); +} +; +_.contains = function contains_0(o){ + return $contains(this, o); +} +; +_.isEmpty = function isEmpty_2(){ + return this.map_1().isEmpty(); +} +; +_.remove_1 = function remove_6(o){ + var entry; + if (this.contains(o)) { + entry = castTo(o, 42); + return this.map_1().keySet_0().remove_1(entry.getKey()); + } + return false; +} +; +_.size_1 = function size_4(){ + return this.map_1().size_1(); +} +; +var Lcom_google_common_collect_Maps$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Maps/EntrySet', 1971); +function AbstractMapBasedMultimap$AsMap$AsMapEntries(this$1){ + this.this$11 = this$1; +} + +defineClass(1097, 1971, $intern_10, AbstractMapBasedMultimap$AsMap$AsMapEntries); +_.contains = function contains_1(o){ + return safeContains(this.this$11.submap.entrySet_0(), o); +} +; +_.iterator_0 = function iterator_0(){ + return new AbstractMapBasedMultimap$AsMap$AsMapIterator(this.this$11); +} +; +_.map_1 = function map_1(){ + return this.this$11; +} +; +_.remove_1 = function remove_7(o){ + var entry; + if (!safeContains(this.this$11.submap.entrySet_0(), o)) { + return false; + } + entry = castTo(o, 42); + $removeValuesForKey(this.this$11.this$01_1, entry.getKey()); + return true; +} +; +_.spliterator_0 = function spliterator_2(){ + return map_2(this.this$11.submap.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type(this.this$11)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries', 1097); +function AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1098, 1, {}, AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type); +_.apply_0 = function apply_3(arg0){ + return $wrapEntry(this.$$outer_0, castTo(arg0, 42)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type', 1098); +function AbstractMapBasedMultimap$AsMap$AsMapIterator(this$1){ + this.this$11 = this$1; + this.delegateIterator = this.this$11.submap.entrySet_0().iterator_0(); +} + +defineClass(730, 1, $intern_6, AbstractMapBasedMultimap$AsMap$AsMapIterator); +_.forEachRemaining = function forEachRemaining_1(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_3(){ + var entry; + return entry = castTo(this.delegateIterator.next_1(), 42) , this.collection = castTo(entry.getValue(), 14) , $wrapEntry(this.this$11, entry); +} +; +_.hasNext_0 = function hasNext_2(){ + return this.delegateIterator.hasNext_0(); +} +; +_.remove = function remove_8(){ + checkState_0(!!this.collection); + this.delegateIterator.remove(); + this.this$11.this$01_1.totalSize -= this.collection.size_1(); + this.collection.clear_0(); + this.collection = null; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapIterator', 730); +function Maps$KeySet(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 83); +} + +defineClass(532, 1970, $intern_10, Maps$KeySet); +_.clear_0 = function clear_5(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_2(o){ + return this.map_0.containsKey(o); +} +; +_.forEach_0 = function forEach_1(action){ + checkNotNull(action); + this.map_0.forEach(new Maps$KeySet$lambda$0$Type(action)); +} +; +_.isEmpty = function isEmpty_3(){ + return this.map_0.isEmpty(); +} +; +_.iterator_0 = function iterator_1(){ + return new Maps$1(this.map_0.entrySet_0().iterator_0()); +} +; +_.remove_1 = function remove_9(o){ + if (this.map_0.containsKey(o)) { + this.map_0.remove_0(o); + return true; + } + return false; +} +; +_.size_1 = function size_5(){ + return this.map_0.size_1(); +} +; +var Lcom_google_common_collect_Maps$KeySet_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet', 532); +function AbstractMapBasedMultimap$KeySet(this$0, subMap){ + this.this$01 = this$0; + Maps$KeySet.call(this, subMap); +} + +defineClass(318, 532, $intern_10, AbstractMapBasedMultimap$KeySet); +_.clear_0 = function clear_6(){ + var entryIterator; + clear_20((entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator))); +} +; +_.containsAll = function containsAll_0(c){ + return this.map_0.keySet_0().containsAll(c); +} +; +_.equals_0 = function equals_8(object){ + return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.map_0.keySet_0(), object); +} +; +_.hashCode_1 = function hashCode_8(){ + return hashCode__I__devirtual$(this.map_0.keySet_0()); +} +; +_.iterator_0 = function iterator_2(){ + var entryIterator; + return entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator); +} +; +_.remove_1 = function remove_10(key){ + var collection, count; + count = 0; + collection = castTo(this.map_0.remove_0(key), 14); + if (collection) { + count = collection.size_1(); + collection.clear_0(); + this.this$01.totalSize -= count; + } + return count > 0; +} +; +_.spliterator_0 = function spliterator_3(){ + return this.map_0.keySet_0().spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet', 318); +function AbstractMapBasedMultimap$KeySet$1(this$1, val$entryIterator){ + this.this$11 = this$1; + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(731, 1, $intern_6, AbstractMapBasedMultimap$KeySet$1); +_.forEachRemaining = function forEachRemaining_2(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_3(){ + return this.val$entryIterator2.hasNext_0(); +} +; +_.next_1 = function next_4(){ + this.entry = castTo(this.val$entryIterator2.next_1(), 42); + return this.entry.getKey(); +} +; +_.remove = function remove_11(){ + var collection; + checkState_0(!!this.entry); + collection = castTo(this.entry.getValue(), 14); + this.val$entryIterator2.remove(); + this.this$11.this$01.totalSize -= collection.size_1(); + collection.clear_0(); + this.entry = null; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet/1', 731); +function AbstractMapBasedMultimap$SortedAsMap(this$0, submap){ + this.this$01_0 = this$0; + AbstractMapBasedMultimap$AsMap.call(this, this$0, submap); +} + +defineClass(491, 389, {83:1, 161:1}, AbstractMapBasedMultimap$SortedAsMap); +_.createKeySet = function createKeySet_1(){ + return this.createKeySet_0(); +} +; +_.keySet_0 = function keySet_3(){ + return this.keySet_1(); +} +; +_.createKeySet_0 = function createKeySet_2(){ + return new AbstractMapBasedMultimap$SortedKeySet(this.this$01_0, this.sortedMap()); +} +; +_.keySet_1 = function keySet_4(){ + var result; + return result = this.sortedKeySet , !result?(this.sortedKeySet = this.createKeySet_0()):result; +} +; +_.sortedMap = function sortedMap(){ + return castTo(this.submap, 161); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedAsMap', 491); +function AbstractMapBasedMultimap$NavigableAsMap(this$0, submap){ + this.this$01 = this$0; + AbstractMapBasedMultimap$SortedAsMap.call(this, this$0, submap); +} + +defineClass(542, 491, $intern_11, AbstractMapBasedMultimap$NavigableAsMap); +_.createKeySet = function createKeySet_3(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); +} +; +_.createKeySet_0 = function createKeySet_4(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); +} +; +_.keySet_0 = function keySet_5(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); +} +; +_.keySet_1 = function keySet_6(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); +} +; +_.sortedMap = function sortedMap_0(){ + return castTo(castTo(this.submap, 161), 171); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableAsMap', 542); +function AbstractMapBasedMultimap$SortedKeySet(this$0, subMap){ + AbstractMapBasedMultimap$KeySet.call(this, this$0, subMap); +} + +defineClass(490, 318, $intern_12, AbstractMapBasedMultimap$SortedKeySet); +_.spliterator_0 = function spliterator_4(){ + return this.map_0.keySet_0().spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedKeySet', 490); +function AbstractMapBasedMultimap$NavigableKeySet(this$0, subMap){ + AbstractMapBasedMultimap$SortedKeySet.call(this, this$0, subMap); +} + +defineClass(388, 490, $intern_13, AbstractMapBasedMultimap$NavigableKeySet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableKeySet', 388); +function $addToMap(this$static){ + this$static.ancestor?$addToMap(this$static.ancestor):this$static.this$01_0.map_0.put(this$static.key, this$static.delegate); +} + +function $refreshIfEmpty(this$static){ + var newDelegate; + if (this$static.ancestor) { + $refreshIfEmpty(this$static.ancestor); + if (this$static.ancestor.delegate != this$static.ancestorDelegate) { + throw toJs(new ConcurrentModificationException); + } + } + else if (this$static.delegate.isEmpty()) { + newDelegate = castTo(this$static.this$01_0.map_0.get_3(this$static.key), 14); + !!newDelegate && (this$static.delegate = newDelegate); + } +} + +function $removeIfEmpty(this$static){ + this$static.ancestor?$removeIfEmpty(this$static.ancestor):this$static.delegate.isEmpty() && this$static.this$01_0.map_0.remove_0(this$static.key); +} + +function $size(this$static){ + $refreshIfEmpty(this$static); + return this$static.delegate.size_1(); +} + +function AbstractMapBasedMultimap$WrappedCollection(this$0, key, delegate, ancestor){ + this.this$01_0 = this$0; + this.key = key; + this.delegate = delegate; + this.ancestor = ancestor; + this.ancestorDelegate = !ancestor?null:ancestor.delegate; +} + +defineClass(541, 28, $intern_8, AbstractMapBasedMultimap$WrappedCollection); +_.add_2 = function add_3(value_0){ + var changed, wasEmpty; + $refreshIfEmpty(this); + wasEmpty = this.delegate.isEmpty(); + changed = this.delegate.add_2(value_0); + if (changed) { + ++this.this$01_0.totalSize; + wasEmpty && $addToMap(this); + } + return changed; +} +; +_.addAll = function addAll_0(collection){ + var changed, newSize, oldSize; + if (collection.isEmpty()) { + return false; + } + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + changed = this.delegate.addAll(collection); + if (changed) { + newSize = this.delegate.size_1(); + this.this$01_0.totalSize += newSize - oldSize; + oldSize == 0 && $addToMap(this); + } + return changed; +} +; +_.clear_0 = function clear_7(){ + var oldSize; + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + if (oldSize == 0) { + return; + } + this.delegate.clear_0(); + this.this$01_0.totalSize -= oldSize; + $removeIfEmpty(this); +} +; +_.contains = function contains_3(o){ + $refreshIfEmpty(this); + return this.delegate.contains(o); +} +; +_.containsAll = function containsAll_1(c){ + $refreshIfEmpty(this); + return this.delegate.containsAll(c); +} +; +_.equals_0 = function equals_9(object){ + if (object === this) { + return true; + } + $refreshIfEmpty(this); + return equals_Ljava_lang_Object__Z__devirtual$(this.delegate, object); +} +; +_.hashCode_1 = function hashCode_9(){ + $refreshIfEmpty(this); + return hashCode__I__devirtual$(this.delegate); +} +; +_.iterator_0 = function iterator_3(){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this); +} +; +_.remove_1 = function remove_12(o){ + var changed; + $refreshIfEmpty(this); + changed = this.delegate.remove_1(o); + if (changed) { + --this.this$01_0.totalSize; + $removeIfEmpty(this); + } + return changed; +} +; +_.size_1 = function size_6(){ + return $size(this); +} +; +_.spliterator_0 = function spliterator_5(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +_.toString_0 = function toString_9(){ + $refreshIfEmpty(this); + return toString_40(this.delegate); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection', 541); +function $sort_0(this$static, c){ + var a, i; + a = this$static.toArray(); + mergeSort(a, 0, a.length, c); + for (i = 0; i < a.length; i++) { + this$static.set_2(i, a[i]); + } +} + +var Ljava_util_List_2_classLit = createForInterface('java.util', 'List'); +function AbstractMapBasedMultimap$WrappedList(this$0, key, delegate, ancestor){ + this.this$01 = this$0; + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, ancestor); +} + +defineClass(728, 541, {20:1, 28:1, 14:1, 15:1}, AbstractMapBasedMultimap$WrappedList); +_.sort_0 = function sort_0(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_6(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +_.add_3 = function add_4(index_0, element){ + var wasEmpty; + $refreshIfEmpty(this); + wasEmpty = this.delegate.isEmpty(); + castTo(this.delegate, 15).add_3(index_0, element); + ++this.this$01.totalSize; + wasEmpty && $addToMap(this); +} +; +_.addAll_0 = function addAll_1(index_0, c){ + var changed, newSize, oldSize; + if (c.isEmpty()) { + return false; + } + oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); + changed = castTo(this.delegate, 15).addAll_0(index_0, c); + if (changed) { + newSize = this.delegate.size_1(); + this.this$01.totalSize += newSize - oldSize; + oldSize == 0 && $addToMap(this); + } + return changed; +} +; +_.get_0 = function get_5(index_0){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).get_0(index_0); +} +; +_.indexOf_0 = function indexOf(o){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).indexOf_0(o); +} +; +_.listIterator_0 = function listIterator(){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this); +} +; +_.listIterator_1 = function listIterator_0(index_0){ + $refreshIfEmpty(this); + return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this, index_0); +} +; +_.remove_2 = function remove_13(index_0){ + var value_0; + $refreshIfEmpty(this); + value_0 = castTo(this.delegate, 15).remove_2(index_0); + --this.this$01.totalSize; + $removeIfEmpty(this); + return value_0; +} +; +_.set_2 = function set_2(index_0, element){ + $refreshIfEmpty(this); + return castTo(this.delegate, 15).set_2(index_0, element); +} +; +_.subList = function subList_0(fromIndex, toIndex){ + $refreshIfEmpty(this); + return $wrapList(this.this$01, this.key, castTo(this.delegate, 15).subList(fromIndex, toIndex), !this.ancestor?this:this.ancestor); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList', 728); +function AbstractMapBasedMultimap$RandomAccessWrappedList(this$0, key, delegate, ancestor){ + AbstractMapBasedMultimap$WrappedList.call(this, this$0, key, delegate, ancestor); +} + +defineClass(1096, 728, {20:1, 28:1, 14:1, 15:1, 54:1}, AbstractMapBasedMultimap$RandomAccessWrappedList); +var Lcom_google_common_collect_AbstractMapBasedMultimap$RandomAccessWrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/RandomAccessWrappedList', 1096); +function $$init(this$static){ + this$static.originalDelegate = this$static.this$11_0.delegate; +} + +function $remove_2(this$static){ + this$static.delegateIterator.remove(); + --this$static.this$11_0.this$01_0.totalSize; + $removeIfEmpty(this$static.this$11_0); +} + +function $validateIterator(this$static){ + $refreshIfEmpty(this$static.this$11_0); + if (this$static.this$11_0.delegate != this$static.originalDelegate) { + throw toJs(new ConcurrentModificationException); + } +} + +function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this$1){ + this.this$11_0 = this$1; + $$init(this); + this.delegateIterator = iteratorOrListIterator(this$1.delegate); +} + +function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0(this$1, delegateIterator){ + this.this$11_0 = this$1; + $$init(this); + this.delegateIterator = delegateIterator; +} + +defineClass(620, 1, $intern_6, AbstractMapBasedMultimap$WrappedCollection$WrappedIterator); +_.forEachRemaining = function forEachRemaining_3(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_4(){ + $validateIterator(this); + return this.delegateIterator.hasNext_0(); +} +; +_.next_1 = function next_5(){ + $validateIterator(this); + return this.delegateIterator.next_1(); +} +; +_.remove = function remove_14(){ + $remove_2(this); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator', 620); +function AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this$1){ + this.this$11 = this$1; + AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.call(this, this$1); +} + +function AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this$1, index_0){ + this.this$11 = this$1; + AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0.call(this, this$1, castTo(this$1.delegate, 15).listIterator_1(index_0)); +} + +defineClass(729, 620, $intern_14, AbstractMapBasedMultimap$WrappedList$WrappedListIterator, AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0); +_.remove = function remove_15(){ + $remove_2(this); +} +; +_.add_1 = function add_5(value_0){ + var wasEmpty; + wasEmpty = $size(this.this$11) == 0; + ($validateIterator(this) , castTo(this.delegateIterator, 125)).add_1(value_0); + ++this.this$11.this$01.totalSize; + wasEmpty && $addToMap(this.this$11); +} +; +_.hasPrevious = function hasPrevious_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).nextIndex_0(); +} +; +_.previous_0 = function previous_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previous_0(); +} +; +_.previousIndex = function previousIndex_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previousIndex(); +} +; +_.set_1 = function set_3(value_0){ + ($validateIterator(this) , castTo(this.delegateIterator, 125)).set_1(value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList$WrappedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList/WrappedListIterator', 729); +function AbstractMapBasedMultimap$WrappedSortedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(727, 541, $intern_12, AbstractMapBasedMultimap$WrappedSortedSet); +_.spliterator_0 = function spliterator_7(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSortedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSortedSet', 727); +function AbstractMapBasedMultimap$WrappedNavigableSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedSortedSet.call(this, this$0, key, delegate); +} + +defineClass(1095, 727, $intern_13, AbstractMapBasedMultimap$WrappedNavigableSet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedNavigableSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedNavigableSet', 1095); +function AbstractMapBasedMultimap$WrappedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(1094, 541, $intern_10, AbstractMapBasedMultimap$WrappedSet); +_.spliterator_0 = function spliterator_8(){ + return $refreshIfEmpty(this) , this.delegate.spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSet', 1094); +function AbstractMapBasedMultimap$lambda$1$Type(){ +} + +defineClass(1103, 1, {}, AbstractMapBasedMultimap$lambda$1$Type); +_.apply_0 = function apply_4(arg0){ + return lambda$1(castTo(arg0, 42)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$1$Type', 1103); +function AbstractMapBasedMultimap$lambda$2$Type(key_0){ + this.key_0 = key_0; +} + +defineClass(1102, 1, {}, AbstractMapBasedMultimap$lambda$2$Type); +_.apply_0 = function apply_5(arg0){ + return new ImmutableEntry(this.key_0, arg0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$2$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$2$Type', 1102); +var Ljava_util_Map$Entry_2_classLit = createForInterface('java.util', 'Map/Entry'); +defineClass(345, 1, $intern_15); +_.equals_0 = function equals_10(object){ + var that; + if (instanceOf(object, 42)) { + that = castTo(object, 42); + return equal(this.getKey(), that.getKey()) && equal(this.getValue(), that.getValue()); + } + return false; +} +; +_.hashCode_1 = function hashCode_10(){ + var k, v; + k = this.getKey(); + v = this.getValue(); + return (k == null?0:hashCode__I__devirtual$(k)) ^ (v == null?0:hashCode__I__devirtual$(v)); +} +; +_.setValue = function setValue(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_10(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Lcom_google_common_collect_AbstractMapEntry_2_classLit = createForClass('com.google.common.collect', 'AbstractMapEntry', 345); +defineClass(1988, 28, $intern_8); +_.clear_0 = function clear_8(){ + this.multimap_0().clear_0(); +} +; +_.contains = function contains_4(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $containsEntry(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.remove_1 = function remove_16(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $remove_0(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.size_1 = function size_7(){ + return this.multimap_0().totalSize; +} +; +var Lcom_google_common_collect_Multimaps$Entries_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Entries', 1988); +function AbstractMultimap$Entries(this$0){ + this.this$01 = this$0; +} + +defineClass(733, 1988, $intern_8, AbstractMultimap$Entries); +_.iterator_0 = function iterator_4(){ + return this.this$01.entryIterator(); +} +; +_.multimap_0 = function multimap_0(){ + return this.this$01; +} +; +_.spliterator_0 = function spliterator_9(){ + return this.this$01.entrySpliterator(); +} +; +var Lcom_google_common_collect_AbstractMultimap$Entries_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Entries', 733); +function AbstractMultimap$EntrySet(this$0){ + AbstractMultimap$Entries.call(this, this$0); +} + +defineClass(734, 733, $intern_10, AbstractMultimap$EntrySet); +_.spliterator_0 = function spliterator_10(){ + return this.this$01.entrySpliterator(); +} +; +_.equals_0 = function equals_11(obj){ + return equalsImpl_3(this, obj); +} +; +_.hashCode_1 = function hashCode_11(){ + return hashCodeImpl_0(this); +} +; +var Lcom_google_common_collect_AbstractMultimap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/EntrySet', 734); +function AbstractMultimap$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(735, 28, $intern_8, AbstractMultimap$Values); +_.clear_0 = function clear_9(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_5(o){ + return $containsValue(this.this$01, o); +} +; +_.iterator_0 = function iterator_5(){ + return this.this$01.valueIterator_0(); +} +; +_.size_1 = function size_8(){ + return this.this$01.totalSize; +} +; +_.spliterator_0 = function spliterator_11(){ + return this.this$01.valueSpliterator(); +} +; +var Lcom_google_common_collect_AbstractMultimap$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Values', 735); +function lambda$0_1(entry_1){ + entry_1.val$backingEntry2.getKey(); + castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); + $add(); +} + +function lambda$1_1(action_0, entry_1){ + var count, elem, i; + elem = entry_1.val$backingEntry2.getKey(); + count = castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); + for (i = 0; i < count; i++) { + action_0.accept(elem); + } +} + +function $add(){ + throw toJs(new UnsupportedOperationException); +} + +function $entrySet_0(this$static){ + var result; + result = this$static.entrySet; + !result && (this$static.entrySet = result = new AbstractMultiset$EntrySet(this$static)); + return result; +} + +function $forEachEntry(this$static, action){ + checkNotNull(action); + $entrySet_0(this$static).forEach_0(new Multiset$lambda$0$Type); +} + +defineClass(1989, 28, {835:1, 20:1, 28:1, 14:1}); +_.forEach_0 = function forEach_2(action){ + checkNotNull(action); + $entrySet_0(this).forEach_0(new Multiset$lambda$1$Type(action)); +} +; +_.spliterator_0 = function spliterator_12(){ + var entrySpliterator; + return entrySpliterator = $entrySet_0(this).spliterator_0() , flatMap(entrySpliterator, new Multisets$lambda$3$Type, 64 | entrySpliterator.characteristics_0() & 1296, this.multimap.totalSize); +} +; +_.add_2 = function add_6(element){ + $add(); + return true; +} +; +_.addAll = function addAll_2(elementsToAdd){ + return checkNotNull(this) , checkNotNull(elementsToAdd) , instanceOf(elementsToAdd, 543)?addAllImpl(castTo(elementsToAdd, 835)):!elementsToAdd.isEmpty() && addAll_7(this, elementsToAdd.iterator_0()); +} +; +_.contains = function contains_6(element){ + var values; + return values = castTo(safeGet($asMap(this.multimap), element), 14) , (!values?0:values.size_1()) > 0; +} +; +_.equals_0 = function equals_12(object){ + return equalsImpl_2(this, object); +} +; +_.hashCode_1 = function hashCode_12(){ + return hashCode__I__devirtual$($entrySet_0(this)); +} +; +_.isEmpty = function isEmpty_4(){ + return $entrySet_0(this).isEmpty(); +} +; +_.remove_1 = function remove_17(element){ + return $remove_5(this, element, 1) > 0; +} +; +_.toString_0 = function toString_11(){ + return toString_40($entrySet_0(this)); +} +; +var Lcom_google_common_collect_AbstractMultiset_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset', 1989); +defineClass(1991, 1970, $intern_10); +_.clear_0 = function clear_10(){ + $clear(this.this$01.multimap); +} +; +_.contains = function contains_7(o){ + var count, entry; + if (instanceOf(o, 492)) { + entry = castTo(o, 416); + if (castTo(entry.val$backingEntry2.getValue(), 14).size_1() <= 0) { + return false; + } + count = $count(this.this$01, entry.val$backingEntry2.getKey()); + return count == castTo(entry.val$backingEntry2.getValue(), 14).size_1(); + } + return false; +} +; +_.remove_1 = function remove_18(object){ + var element, entry, entryCount, multiset; + if (instanceOf(object, 492)) { + entry = castTo(object, 416); + element = entry.val$backingEntry2.getKey(); + entryCount = castTo(entry.val$backingEntry2.getValue(), 14).size_1(); + if (entryCount != 0) { + multiset = this.this$01; + return setCountImpl(multiset, element, entryCount); + } + } + return false; +} +; +var Lcom_google_common_collect_Multisets$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multisets/EntrySet', 1991); +function AbstractMultiset$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1109, 1991, $intern_10, AbstractMultiset$EntrySet); +_.iterator_0 = function iterator_6(){ + return new Multimaps$Keys$1($entrySet($asMap(this.this$01.multimap)).iterator_0()); +} +; +_.size_1 = function size_9(){ + return $asMap(this.this$01.multimap).size_1(); +} +; +var Lcom_google_common_collect_AbstractMultiset$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset/EntrySet', 1109); +function AbstractSetMultimap(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(619, 726, $intern_5); +_.createCollection = function createCollection_1(){ + return this.createCollection_1(); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_1(){ + return this.createUnmodifiableEmptyCollection_0(); +} +; +_.get_1 = function get_6(key){ + return this.get_4(key); +} +; +_.removeAll = function removeAll_2(key){ + return this.removeAll_1(key); +} +; +_.asMap_0 = function asMap_1(){ + var result; + return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; +} +; +_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_2(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_SET; +} +; +_.equals_0 = function equals_13(object){ + return equalsImpl_1(this, object); +} +; +_.get_4 = function get_7(key){ + return castTo($get(this, key), 21); +} +; +_.removeAll_1 = function removeAll_3(key){ + return castTo($removeAll(this, key), 21); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_1(collection){ + return $clinit_Collections() , new Collections$UnmodifiableSet(castTo(collection, 21)); +} +; +_.wrapCollection = function wrapCollection_1(key, collection){ + return new AbstractMapBasedMultimap$WrappedSet(this, key, castTo(collection, 21)); +} +; +var Lcom_google_common_collect_AbstractSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSetMultimap', 619); +function $values_0(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +defineClass(1657, 619, $intern_5); +_.createCollection = function createCollection_2(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createCollection_1 = function createCollection_3(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_3(){ + return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); +} +; +_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_4(){ + return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); +} +; +_.get_1 = function get_8(key){ + return castTo(castTo($get(this, key), 21), 84); +} +; +_.get_4 = function get_9(key){ + return castTo(castTo($get(this, key), 21), 84); +} +; +_.removeAll = function removeAll_4(key){ + return castTo(castTo($removeAll(this, key), 21), 84); +} +; +_.removeAll_1 = function removeAll_5(key){ + return castTo(castTo($removeAll(this, key), 21), 84); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_2(collection){ + return instanceOf(collection, 271)?unmodifiableNavigableSet(castTo(collection, 271)):($clinit_Collections() , new Collections$UnmodifiableSortedSet(castTo(collection, 84))); +} +; +_.asMap_0 = function asMap_2(){ + var result; + return result = this.asMap , !result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result; +} +; +_.wrapCollection = function wrapCollection_2(key, collection){ + return instanceOf(collection, 271)?new AbstractMapBasedMultimap$WrappedNavigableSet(this, key, castTo(collection, 271)):new AbstractMapBasedMultimap$WrappedSortedSet(this, key, castTo(collection, 84)); +} +; +var Lcom_google_common_collect_AbstractSortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedSetMultimap', 1657); +function AbstractSortedKeySortedSetMultimap(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1658, 1657, $intern_5); +_.asMap_0 = function asMap_3(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); +} +; +_.keySet_0 = function keySet_7(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); +} +; +_.createKeySet = function createKeySet_5(){ + return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +var Lcom_google_common_collect_AbstractSortedKeySortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedKeySortedSetMultimap', 1658); +defineClass(2010, 1, {1947:1}); +_.equals_0 = function equals_14(obj){ + return equalsImpl_4(this, obj); +} +; +_.hashCode_1 = function hashCode_13(){ + var result; + return hashCode_47((result = this.cellSet , !result?(this.cellSet = new AbstractTable$CellSet(this)):result)); +} +; +_.toString_0 = function toString_12(){ + var map_0; + return $toString_0((map_0 = this.rowMap , !map_0?(this.rowMap = new ArrayTable$RowMap(this)):map_0)); +} +; +var Lcom_google_common_collect_AbstractTable_2_classLit = createForClass('com.google.common.collect', 'AbstractTable', 2010); +function AbstractTable$CellSet(this$0){ + this.this$01 = this$0; +} + +defineClass(665, $intern_9, $intern_10, AbstractTable$CellSet); +_.clear_0 = function clear_11(){ + $clear_1(); +} +; +_.contains = function contains_8(o){ + var cell, row; + if (instanceOf(o, 468)) { + cell = castTo(o, 682); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); + return !!row && safeContains(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); + } + return false; +} +; +_.iterator_0 = function iterator_7(){ + return $cellIterator(this.this$01); +} +; +_.remove_1 = function remove_19(o){ + var cell, row; + if (instanceOf(o, 468)) { + cell = castTo(o, 682); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); + return !!row && safeRemove(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); + } + return false; +} +; +_.size_1 = function size_10(){ + return $size_0(this.this$01); +} +; +_.spliterator_0 = function spliterator_13(){ + return $cellSpliterator(this.this$01); +} +; +var Lcom_google_common_collect_AbstractTable$CellSet_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/CellSet', 665); +function AbstractTable$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(1928, 28, $intern_8, AbstractTable$Values); +_.clear_0 = function clear_12(){ + $clear_1(); +} +; +_.contains = function contains_9(o){ + return $containsValue_0(this.this$01, o); +} +; +_.iterator_0 = function iterator_8(){ + return $valuesIterator(this.this$01); +} +; +_.size_1 = function size_11(){ + return $size_0(this.this$01); +} +; +_.spliterator_0 = function spliterator_14(){ + return $valuesSpliterator(this.this$01); +} +; +var Lcom_google_common_collect_AbstractTable$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/Values', 1928); +function ArrayListMultimapGwtSerializationDependencies(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(1632, 1631, $intern_5); +var Lcom_google_common_collect_ArrayListMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimapGwtSerializationDependencies', 1632); +function ArrayListMultimap(){ + ArrayListMultimap_0.call(this, 12, 3); +} + +function ArrayListMultimap_0(expectedKeys, expectedValuesPerKey){ + ArrayListMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(expectedKeys))); + checkNonnegative(expectedValuesPerKey, 'expectedValuesPerKey'); + this.expectedValuesPerKey = expectedValuesPerKey; +} + +defineClass(513, 1632, $intern_5, ArrayListMultimap, ArrayListMultimap_0); +_.createCollection = function createCollection_4(){ + return new ArrayList_0(this.expectedValuesPerKey); +} +; +_.expectedValuesPerKey = 0; +var Lcom_google_common_collect_ArrayListMultimap_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimap', 513); +function $at(this$static, rowIndex, columnIndex){ + checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); + checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); + return this$static.array[rowIndex][columnIndex]; +} + +function $cellIterator(this$static){ + return new ArrayTable$1(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); +} + +function $cellSpliterator(this$static){ + return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 273, new ArrayTable$1methodref$getCell$Type(this$static)); +} + +function $clear_1(){ + throw toJs(new UnsupportedOperationException); +} + +function $containsValue_0(this$static, value_0){ + var element, element$array, element$index, element$max, row, row$array, row$index, row$max; + for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + for (element$array = row , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + if (maskUndefined(value_0) === maskUndefined(element) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, element)) { + return true; + } + } + } + return false; +} + +function $eraseAll(this$static){ + var row, row$array, row$index, row$max; + for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + fill0_2(row, row.length, null); + } +} + +function $get_1(this$static, rowKey, columnKey){ + var columnIndex, rowIndex; + rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); + return !rowIndex || !columnIndex?null:$at(this$static, rowIndex.value_0, columnIndex.value_0); +} + +function $getValue(this$static, index_0){ + var columnIndex, rowIndex; + rowIndex = index_0 / this$static.columnList.delegateList_0().size_1() | 0; + columnIndex = index_0 % this$static.columnList.delegateList_0().size_1(); + return $at(this$static, rowIndex, columnIndex); +} + +function $put_0(this$static, rowKey, columnKey, value_0){ + var columnIndex, rowIndex; + checkNotNull(rowKey); + checkNotNull(columnKey); + rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); + checkArgument_2(!!rowIndex, 'Row %s not in %s', rowKey, this$static.rowList); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); + checkArgument_2(!!columnIndex, 'Column %s not in %s', columnKey, this$static.columnList); + return $set(this$static, rowIndex.value_0, columnIndex.value_0, value_0); +} + +function $rowMap(this$static){ + var map_0; + map_0 = this$static.rowMap; + return !map_0?(this$static.rowMap = new ArrayTable$RowMap(this$static)):map_0; +} + +function $set(this$static, rowIndex, columnIndex, value_0){ + var oldValue; + checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); + checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); + oldValue = this$static.array[rowIndex][columnIndex]; + setCheck(this$static.array[rowIndex], columnIndex, value_0); + return oldValue; +} + +function $size_0(this$static){ + return this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(); +} + +function $values_1(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractTable$Values(this$static)):result; +} + +function $valuesIterator(this$static){ + return new ArrayTable$3(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); +} + +function $valuesSpliterator(this$static){ + return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 16, new ArrayTable$2methodref$getValue$Type(this$static)); +} + +function ArrayTable(rowKeys, columnKeys){ + var tmpArray; + this.rowList = ($clinit_ImmutableList() , checkNotNull(rowKeys) , $clinit_ImmutableList() , copyFromCollection(rowKeys)); + this.columnList = (checkNotNull(columnKeys) , copyFromCollection(columnKeys)); + checkArgument(this.rowList.delegateList_0().isEmpty() == this.columnList.delegateList_0().isEmpty()); + this.rowKeyToIndex = indexMap(this.rowList); + this.columnKeyToIndex = indexMap(this.columnList); + tmpArray = initMultidimensionalArray(Ljava_lang_Object_2_classLit, [$intern_16, $intern_2], [5, 1], 5, [this.rowList.delegateList_0().size_1(), this.columnList.delegateList_0().size_1()], 2); + this.array = tmpArray; + $eraseAll(this); +} + +defineClass(664, 2010, {664:1, 1947:1, 3:1}, ArrayTable); +var Lcom_google_common_collect_ArrayTable_2_classLit = createForClass('com.google.common.collect', 'ArrayTable', 664); +function ArrayTable$1(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1924, 386, $intern_4, ArrayTable$1); +_.get_0 = function get_10(index_0){ + return new ArrayTable$2(this.this$01, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1', 1924); +function ArrayTable$1methodref$getCell$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1925, 1, {}, ArrayTable$1methodref$getCell$Type); +_.apply_2 = function apply_6(arg0){ + return new ArrayTable$2(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$1methodref$getCell$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1methodref$getCell$Type', 1925); +defineClass(2011, 1, {682:1}); +_.equals_0 = function equals_15(obj){ + var other; + if (obj === this) { + return true; + } + if (instanceOf(obj, 468)) { + other = castTo(obj, 682); + return equal($get_2(this.this$01.rowList, this.rowIndex), $get_2(other.this$01.rowList, other.rowIndex)) && equal($get_2(this.this$01.columnList, this.columnIndex), $get_2(other.this$01.columnList, other.columnIndex)) && equal($at(this.this$01, this.rowIndex, this.columnIndex), $at(other.this$01, other.rowIndex, other.columnIndex)); + } + return false; +} +; +_.hashCode_1 = function hashCode_14(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [$get_2(this.this$01.rowList, this.rowIndex), $get_2(this.this$01.columnList, this.columnIndex), $at(this.this$01, this.rowIndex, this.columnIndex)])); +} +; +_.toString_0 = function toString_13(){ + return '(' + $get_2(this.this$01.rowList, this.rowIndex) + ',' + $get_2(this.this$01.columnList, this.columnIndex) + ')=' + $at(this.this$01, this.rowIndex, this.columnIndex); +} +; +var Lcom_google_common_collect_Tables$AbstractCell_2_classLit = createForClass('com.google.common.collect', 'Tables/AbstractCell', 2011); +function ArrayTable$2(this$0, val$index){ + this.this$01 = this$0; + this.val$index2 = val$index; + this.rowIndex = this.val$index2 / this.this$01.columnList.delegateList_0().size_1() | 0; + this.columnIndex = this.val$index2 % this.this$01.columnList.delegateList_0().size_1(); +} + +defineClass(468, 2011, {468:1, 682:1}, ArrayTable$2); +_.columnIndex = 0; +_.rowIndex = 0; +_.val$index2 = 0; +var Lcom_google_common_collect_ArrayTable$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2', 468); +function ArrayTable$2methodref$getValue$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1927, 1, {}, ArrayTable$2methodref$getValue$Type); +_.apply_2 = function apply_7(arg0){ + return $getValue(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$2methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2methodref$getValue$Type', 1927); +function ArrayTable$3(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1926, 386, $intern_4, ArrayTable$3); +_.get_0 = function get_11(index_0){ + return $getValue(this.this$01, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$3_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/3', 1926); +function $forEachEntry_0(this$static, action){ + this$static.entryIterator().forEachRemaining(action); +} + +defineClass(1979, 1967, $intern_7); +_.clear_0 = function clear_13(){ + clear_20(this.entryIterator()); +} +; +_.entrySet_0 = function entrySet_0(){ + return new Maps$IteratorBasedAbstractMap$1(this); +} +; +_.entrySpliterator = function entrySpliterator_1(){ + return new Spliterators$IteratorSpliterator_1(this.entryIterator(), this.size_1()); +} +; +var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap', 1979); +function $getEntry(this$static, index_0){ + checkElementIndex(index_0, this$static.keyIndex.delegate.map_0.size_1()); + return new ArrayTable$ArrayMap$1(this$static, index_0); +} + +function $getKey(this$static, index_0){ + return $asList($keySet_0(this$static.keyIndex)).get_0(index_0); +} + +function ArrayTable$ArrayMap(keyIndex){ + this.keyIndex = keyIndex; +} + +defineClass(828, 1979, $intern_7); +_.clear_0 = function clear_14(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_2(key){ + return $containsKey_0(this.keyIndex, key); +} +; +_.entryIterator = function entryIterator_1(){ + return new ArrayTable$ArrayMap$2(this, this.keyIndex.delegate.map_0.size_1()); +} +; +_.entrySpliterator = function entrySpliterator_2(){ + return indexed(this.keyIndex.delegate.map_0.size_1(), 16, new ArrayTable$ArrayMap$0methodref$getEntry$Type(this)); +} +; +_.get_3 = function get_12(key){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 19); + return !index_0?null:this.getValue_0(index_0.value_0); +} +; +_.isEmpty = function isEmpty_5(){ + return this.keyIndex.delegate.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_8(){ + return $keySet_0(this.keyIndex); +} +; +_.put = function put_0(key, value_0){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 19); + if (!index_0) { + throw toJs(new IllegalArgumentException_0(this.getKeyRole() + ' ' + key + ' not in ' + $keySet_0(this.keyIndex))); + } + return this.setValue_0(index_0.value_0, value_0); +} +; +_.remove_0 = function remove_20(key){ + throw toJs(new UnsupportedOperationException); +} +; +_.size_1 = function size_12(){ + return this.keyIndex.delegate.map_0.size_1(); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap', 828); +function ArrayTable$ArrayMap$0methodref$getEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1923, 1, {}, ArrayTable$ArrayMap$0methodref$getEntry$Type); +_.apply_2 = function apply_8(arg0){ + return $getEntry(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap$0methodref$getEntry$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/0methodref$getEntry$Type', 1923); +function ArrayTable$ArrayMap$1(this$1, val$index){ + this.this$11 = this$1; + this.val$index2 = val$index; +} + +defineClass(1921, 345, $intern_15, ArrayTable$ArrayMap$1); +_.getKey = function getKey(){ + return $getKey(this.this$11, this.val$index2); +} +; +_.getValue = function getValue(){ + return this.this$11.getValue_0(this.val$index2); +} +; +_.setValue = function setValue_0(value_0){ + return this.this$11.setValue_0(this.val$index2, value_0); +} +; +_.val$index2 = 0; +var Lcom_google_common_collect_ArrayTable$ArrayMap$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/1', 1921); +function ArrayTable$ArrayMap$2(this$1, $anonymous0){ + this.this$11 = this$1; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1922, 386, $intern_4, ArrayTable$ArrayMap$2); +_.get_0 = function get_13(index_0){ + return $getEntry(this.this$11, index_0); +} +; +var Lcom_google_common_collect_ArrayTable$ArrayMap$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/2', 1922); +function ArrayTable$Row(this$0, rowIndex){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.columnKeyToIndex); + this.rowIndex = rowIndex; +} + +defineClass(1920, 828, $intern_7, ArrayTable$Row); +_.getKeyRole = function getKeyRole(){ + return 'Column'; +} +; +_.getValue_0 = function getValue_0(index_0){ + return $at(this.this$01, this.rowIndex, index_0); +} +; +_.setValue_0 = function setValue_1(index_0, newValue){ + return $set(this.this$01, this.rowIndex, index_0, newValue); +} +; +_.rowIndex = 0; +var Lcom_google_common_collect_ArrayTable$Row_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/Row', 1920); +function $put_1(){ + throw toJs(new UnsupportedOperationException); +} + +function $setValue(){ + throw toJs(new UnsupportedOperationException); +} + +function ArrayTable$RowMap(this$0){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.rowKeyToIndex); +} + +defineClass(829, 828, $intern_7, ArrayTable$RowMap); +_.getValue_0 = function getValue_1(index_0){ + return new ArrayTable$Row(this.this$01, index_0); +} +; +_.put = function put_1(key, value_0){ + return castTo(value_0, 83) , $put_1(); +} +; +_.setValue_0 = function setValue_2(index_0, newValue){ + return castTo(newValue, 83) , $setValue(); +} +; +_.getKeyRole = function getKeyRole_0(){ + return 'Row'; +} +; +var Lcom_google_common_collect_ArrayTable$RowMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/RowMap', 829); +function checkEntryNotNull(key, value_0){ + if (key == null) { + throw toJs(new NullPointerException_0('null key in entry: null=' + value_0)); + } + else if (value_0 == null) { + throw toJs(new NullPointerException_0('null value in entry: ' + key + '=null')); + } +} + +function checkNonnegative(value_0, name_0){ + if (value_0 < 0) { + throw toJs(new IllegalArgumentException_0(name_0 + ' cannot be negative but was: ' + value_0)); + } + return value_0; +} + +function flatMap(fromSpliterator, function_0, topCharacteristics, topSize){ + checkArgument_0((topCharacteristics & $intern_17) == 0, 'flatMap does not support SUBSIZED characteristic'); + checkArgument_0((topCharacteristics & 4) == 0, 'flatMap does not support SORTED characteristic'); + checkNotNull(fromSpliterator); + checkNotNull(function_0); + return new CollectSpliterators$1FlatMapSpliterator(fromSpliterator, topCharacteristics, topSize, function_0); +} + +function indexed(size_0, extraCharacteristics, function_0){ + return new CollectSpliterators$1WithCharacteristics(range_0(size_0).spliterator_1(), function_0, extraCharacteristics); +} + +function map_2(fromSpliterator, function_0){ + checkNotNull(fromSpliterator); + checkNotNull(function_0); + return new CollectSpliterators$1(fromSpliterator, function_0); +} + +function $forEachRemaining_0(this$static, consumer){ + while (this$static.tryAdvance(consumer)) + ; +} + +function CollectSpliterators$1(val$fromSpliterator, val$function){ + this.val$fromSpliterator1 = val$fromSpliterator; + this.val$function2 = val$function; +} + +defineClass(1120, 1, $intern_18, CollectSpliterators$1); +_.characteristics_0 = function characteristics_0(){ + return this.val$fromSpliterator1.characteristics_0() & -262; +} +; +_.estimateSize_0 = function estimateSize(){ + return this.val$fromSpliterator1.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_4(action){ + this.val$fromSpliterator1.forEachRemaining(new CollectSpliterators$1$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance(action){ + return this.val$fromSpliterator1.tryAdvance(new CollectSpliterators$1$lambda$0$Type(action, this.val$function2)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1', 1120); +function CollectSpliterators$1$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1121, 1, $intern_19, CollectSpliterators$1$lambda$0$Type); +_.accept = function accept_0(arg0){ + this.action_0.accept(this.function_1.apply_0(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$0$Type', 1121); +function CollectSpliterators$1$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1122, 1, $intern_19, CollectSpliterators$1$lambda$1$Type); +_.accept = function accept_1(arg0){ + this.action_0.accept(this.function_1.apply_0(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$1$Type', 1122); +function $lambda$0(this$static, function_1, fromElement_1){ + return this$static.prefix = castTo(function_1.apply_0(fromElement_1), 164); +} + +function CollectSpliterators$1FlatMapSpliterator(from, characteristics, estimatedSize, val$function){ + this.val$function6 = val$function; + this.prefix = null; + this.from = from; + this.characteristics = characteristics; + this.estimatedSize = estimatedSize; +} + +function lambda$1_0(function_0, action_1, fromElement_2){ + castTo(function_0.apply_0(fromElement_2), 164).forEachRemaining(action_1); +} + +defineClass(1123, 1, $intern_18, CollectSpliterators$1FlatMapSpliterator); +_.characteristics_0 = function characteristics_1(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_0(){ + !!this.prefix && (this.estimatedSize = max_1(this.estimatedSize, this.prefix.estimateSize_0())); + return max_1(this.estimatedSize, 0); +} +; +_.forEachRemaining = function forEachRemaining_5(action){ + if (this.prefix) { + this.prefix.forEachRemaining(action); + this.prefix = null; + } + this.from.forEachRemaining(new CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(this.val$function6, action)); + this.estimatedSize = 0; +} +; +_.tryAdvance = function tryAdvance_0(action){ + while (true) { + if (!!this.prefix && this.prefix.tryAdvance(action)) { + neq(this.estimatedSize, $intern_20) && (this.estimatedSize = sub_2(this.estimatedSize, 1)); + return true; + } + else { + this.prefix = null; + } + if (!this.from.tryAdvance(new CollectSpliterators$1FlatMapSpliterator$lambda$0$Type(this, this.val$function6))) { + return false; + } + } +} +; +_.characteristics = 0; +_.estimatedSize = 0; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator', 1123); +function CollectSpliterators$1FlatMapSpliterator$lambda$0$Type($$outer_0, function_1){ + this.$$outer_0 = $$outer_0; + this.function_1 = function_1; +} + +defineClass(1124, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$0$Type); +_.accept = function accept_2(arg0){ + $lambda$0(this.$$outer_0, this.function_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type', 1124); +function CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(function_0, action_1){ + this.function_0 = function_0; + this.action_1 = action_1; +} + +defineClass(1125, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$1$Type); +_.accept = function accept_3(arg0){ + lambda$1_0(this.function_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type', 1125); +function CollectSpliterators$1WithCharacteristics(delegate, val$function, val$extraCharacteristics){ + this.val$function2 = val$function; + this.val$extraCharacteristics3 = val$extraCharacteristics; + this.delegate = delegate; +} + +defineClass(1117, 1, $intern_18, CollectSpliterators$1WithCharacteristics); +_.characteristics_0 = function characteristics_2(){ + return 16464 | this.val$extraCharacteristics3; +} +; +_.estimateSize_0 = function estimateSize_1(){ + return this.delegate.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_6(action){ + this.delegate.forEachRemaining_0(new CollectSpliterators$1WithCharacteristics$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance_1(action){ + return this.delegate.tryAdvance_0(new CollectSpliterators$1WithCharacteristics$lambda$0$Type(action, this.val$function2)); +} +; +_.val$extraCharacteristics3 = 0; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics', 1117); +function CollectSpliterators$1WithCharacteristics$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1118, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$0$Type); +_.accept_0 = function accept_4(arg0){ + this.action_0.accept(this.function_1.apply_2(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$0$Type', 1118); +function CollectSpliterators$1WithCharacteristics$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1119, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$1$Type); +_.accept_0 = function accept_5(arg0){ + this.action_0.accept(this.function_1.apply_2(arg0)); +} +; +var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$1$Type', 1119); +function safeContains(collection, object){ + checkNotNull(collection); + try { + return collection.contains(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function safeRemove(collection, object){ + checkNotNull(collection); + try { + return collection.remove_1(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function $equals_1(this$static, obj){ + var compareResult, that; + if (instanceOf(obj, 245)) { + that = castTo(obj, 245); + try { + compareResult = this$static.compareTo(that); + return compareResult == 0; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 205)) + throw toJs($e0); + } + } + return false; +} + +function Cut(endpoint){ + this.endpoint = endpoint; +} + +defineClass(245, 1, $intern_22); +_.compareTo_0 = function compareTo_0(that){ + return this.compareTo(castTo(that, 245)); +} +; +_.compareTo = function compareTo(that){ + var result; + if (that == ($clinit_Cut$BelowAll() , INSTANCE_1)) { + return 1; + } + if (that == ($clinit_Cut$AboveAll() , INSTANCE_0)) { + return -1; + } + result = ($clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, that.endpoint)); + if (result != 0) { + return result; + } + return instanceOf(this, 519) == instanceOf(that, 519)?0:instanceOf(this, 519)?1:-1; +} +; +_.endpoint_0 = function endpoint_0(){ + return this.endpoint; +} +; +_.equals_0 = function equals_16(obj){ + return $equals_1(this, obj); +} +; +var Lcom_google_common_collect_Cut_2_classLit = createForClass('com.google.common.collect', 'Cut', 245); +function $clinit_Cut$AboveAll(){ + $clinit_Cut$AboveAll = emptyMethod; + INSTANCE_0 = new Cut$AboveAll; +} + +function Cut$AboveAll(){ + Cut.call(this, null); +} + +defineClass(1761, 245, $intern_22, Cut$AboveAll); +_.compareTo = function compareTo_1(o){ + return o == this?0:1; +} +; +_.describeAsLowerBound = function describeAsLowerBound(sb){ + throw toJs(new AssertionError); +} +; +_.describeAsUpperBound = function describeAsUpperBound(sb){ + sb.string += '+\u221E)'; +} +; +_.endpoint_0 = function endpoint_1(){ + throw toJs(new IllegalStateException_0('range unbounded on this side')); +} +; +_.hashCode_1 = function hashCode_15(){ + return $clinit_System() , getIdentityHashCode(this); +} +; +_.isLessThan = function isLessThan(value_0){ + return false; +} +; +_.toString_0 = function toString_14(){ + return '+\u221E'; +} +; +var INSTANCE_0; +var Lcom_google_common_collect_Cut$AboveAll_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveAll', 1761); +function Cut$AboveValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 35)); +} + +defineClass(519, 245, {245:1, 519:1, 3:1, 35:1}, Cut$AboveValue); +_.describeAsLowerBound = function describeAsLowerBound_0(sb){ + $append_10((sb.string += '(' , sb), this.endpoint); +} +; +_.describeAsUpperBound = function describeAsUpperBound_0(sb){ + $append_5($append_10(sb, this.endpoint), 93); +} +; +_.hashCode_1 = function hashCode_16(){ + return ~hashCode__I__devirtual$(this.endpoint); +} +; +_.isLessThan = function isLessThan_0(value_0){ + return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) < 0; +} +; +_.toString_0 = function toString_15(){ + return '/' + this.endpoint + '\\'; +} +; +var Lcom_google_common_collect_Cut$AboveValue_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveValue', 519); +function $clinit_Cut$BelowAll(){ + $clinit_Cut$BelowAll = emptyMethod; + INSTANCE_1 = new Cut$BelowAll; +} + +function Cut$BelowAll(){ + Cut.call(this, null); +} + +defineClass(1760, 245, $intern_22, Cut$BelowAll); +_.compareTo = function compareTo_2(o){ + return o == this?0:-1; +} +; +_.describeAsLowerBound = function describeAsLowerBound_1(sb){ + sb.string += '(-\u221E'; +} +; +_.describeAsUpperBound = function describeAsUpperBound_1(sb){ + throw toJs(new AssertionError); +} +; +_.endpoint_0 = function endpoint_2(){ + throw toJs(new IllegalStateException_0('range unbounded on this side')); +} +; +_.hashCode_1 = function hashCode_17(){ + return $clinit_System() , getIdentityHashCode(this); +} +; +_.isLessThan = function isLessThan_1(value_0){ + return true; +} +; +_.toString_0 = function toString_16(){ + return '-\u221E'; +} +; +var INSTANCE_1; +var Lcom_google_common_collect_Cut$BelowAll_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowAll', 1760); +function Cut$BelowValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 35)); +} + +defineClass(1762, 245, $intern_22, Cut$BelowValue); +_.describeAsLowerBound = function describeAsLowerBound_2(sb){ + $append_10((sb.string += '[' , sb), this.endpoint); +} +; +_.describeAsUpperBound = function describeAsUpperBound_2(sb){ + $append_5($append_10(sb, this.endpoint), 41); +} +; +_.hashCode_1 = function hashCode_18(){ + return hashCode__I__devirtual$(this.endpoint); +} +; +_.isLessThan = function isLessThan_2(value_0){ + return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) <= 0; +} +; +_.toString_0 = function toString_17(){ + return '\\' + this.endpoint + '/'; +} +; +var Lcom_google_common_collect_Cut$BelowValue_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowValue', 1762); +function FluentIterable(){ + $clinit_Absent(); +} + +function concatNoDefensiveCopy(inputs){ + var input_0, input$array, input$index, input$max; + for (input$array = inputs , input$index = 0 , input$max = input$array.length; input$index < input$max; ++input$index) { + input_0 = input$array[input$index]; + checkNotNull(input_0); + } + return new FluentIterable$3(inputs); +} + +defineClass(537, 1, $intern_23); +_.forEach_0 = function forEach_3(action){ + $forEach_0(this, action); +} +; +_.toString_0 = function toString_18(){ + return toString_25(castTo(checkNotNull_0(this, 'use Optional.orNull() instead of Optional.or(null)'), 20).iterator_0()); +} +; +var Lcom_google_common_collect_FluentIterable_2_classLit = createForClass('com.google.common.collect', 'FluentIterable', 537); +function FluentIterable$2(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(433, 537, $intern_23, FluentIterable$2); +_.iterator_0 = function iterator_9(){ + return new Iterators$ConcatenatedIterator(transform_2(this.val$inputs1.iterator_0(), new Iterables$10)); +} +; +var Lcom_google_common_collect_FluentIterable$2_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/2', 433); +function $iterator(this$static){ + return new Iterators$ConcatenatedIterator(new FluentIterable$3$1(this$static.val$inputs1.length, this$static.val$inputs1)); +} + +function FluentIterable$3(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(1046, 537, $intern_23, FluentIterable$3); +_.iterator_0 = function iterator_10(){ + return $iterator(this); +} +; +var Lcom_google_common_collect_FluentIterable$3_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3', 1046); +function FluentIterable$3$1($anonymous0, val$inputs){ + this.val$inputs3 = val$inputs; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(708, 386, $intern_4, FluentIterable$3$1); +_.get_0 = function get_14(i){ + return this.val$inputs3[i].iterator_0(); +} +; +var Lcom_google_common_collect_FluentIterable$3$1_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3/1', 708); +defineClass(1972, 1, {}); +_.toString_0 = function toString_19(){ + return toString_40(this.delegate_0().coll); +} +; +var Lcom_google_common_collect_ForwardingObject_2_classLit = createForClass('com.google.common.collect', 'ForwardingObject', 1972); +defineClass(1973, 1972, $intern_24); +_.delegate_0 = function delegate_0(){ + return this.delegate_1(); +} +; +_.forEach_0 = function forEach_4(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_0(){ + return this.stream(); +} +; +_.spliterator_0 = function spliterator_15(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_1(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_7(element){ + return this.delegate_1() , $add_4(); +} +; +_.addAll = function addAll_3(collection){ + return this.delegate_1() , $addAll_3(); +} +; +_.clear_0 = function clear_15(){ + this.delegate_1() , $clear_5(); +} +; +_.contains = function contains_10(object){ + return this.delegate_1().contains(object); +} +; +_.containsAll = function containsAll_2(collection){ + return this.delegate_1().containsAll(collection); +} +; +_.isEmpty = function isEmpty_6(){ + return this.delegate_1().coll.isEmpty(); +} +; +_.iterator_0 = function iterator_11(){ + return this.delegate_1().iterator_0(); +} +; +_.remove_1 = function remove_21(object){ + return this.delegate_1() , $remove_14(); +} +; +_.size_1 = function size_13(){ + return this.delegate_1().coll.size_1(); +} +; +_.toArray = function toArray_1(){ + return this.delegate_1().toArray(); +} +; +_.toArray_0 = function toArray_2(array){ + return this.delegate_1().toArray_0(array); +} +; +var Lcom_google_common_collect_ForwardingCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingCollection', 1973); +function $clinit_ImmutableCollection(){ + $clinit_ImmutableCollection = emptyMethod; + new ForwardingImmutableCollection(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +function $asList(this$static){ + var list; + list = this$static.asList; + return !list?(this$static.asList = this$static.createAsList()):list; +} + +defineClass(1980, 28, $intern_25); +_.iterator_0 = function iterator_12(){ + return this.iterator_1(); +} +; +_.add_2 = function add_8(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_4(newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_16(){ + throw toJs(new UnsupportedOperationException); +} +; +_.contains = function contains_11(object){ + return object != null && $advanceToFind(this, object, false); +} +; +_.createAsList = function createAsList(){ + switch (this.size_1()) { + case 0: + return $clinit_ImmutableList() , $clinit_ImmutableList() , EMPTY; + case 1: + return $clinit_ImmutableList() , new SingletonImmutableList(checkNotNull(this.iterator_1().next_1())); + default:return new RegularImmutableAsList_0(this, this.toArray()); + } +} +; +_.remove_1 = function remove_22(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_ImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection', 1980); +function ForwardingImmutableCollection(delegate){ + $clinit_ImmutableCollection(); + this.delegate = delegate; +} + +defineClass(712, 1980, $intern_25, ForwardingImmutableCollection); +_.iterator_0 = function iterator_14(){ + return unmodifiableIterator(this.delegate.iterator_0()); +} +; +_.contains = function contains_12(object){ + return object != null && this.delegate.contains(object); +} +; +_.containsAll = function containsAll_3(targets){ + return this.delegate.containsAll(targets); +} +; +_.isEmpty = function isEmpty_7(){ + return this.delegate.isEmpty(); +} +; +_.iterator_1 = function iterator_13(){ + return unmodifiableIterator(this.delegate.iterator_0()); +} +; +_.size_1 = function size_14(){ + return this.delegate.size_1(); +} +; +_.toArray = function toArray_3(){ + return this.delegate.toArray(); +} +; +_.toArray_0 = function toArray_4(other){ + return this.delegate.toArray_0(other); +} +; +_.toString_0 = function toString_20(){ + return toString_40(this.delegate); +} +; +var Lcom_google_common_collect_ForwardingImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableCollection', 712); +function $clinit_ImmutableList(){ + $clinit_ImmutableList = emptyMethod; + $clinit_ImmutableCollection(); + EMPTY = new RegularImmutableList(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +function $listIterator(this$static, index_0){ + return new ImmutableList$1(this$static, this$static.size_1(), index_0); +} + +function $reverse(this$static){ + var list; + list = (checkNotNull(this$static) , this$static?new ArrayList_1(this$static):newArrayList_0(this$static.iterator_0())); + reverse_2(list); + return unsafeDelegateList(list); +} + +function copyFromCollection(collection){ + $clinit_ImmutableList(); + var elements; + elements = collection.toArray(); + switch (elements.length) { + case 0: + return EMPTY; + case 1: + return new SingletonImmutableList(checkNotNull(elements[0])); + default:return new RegularImmutableList(nullCheckedList(elements)); + } +} + +function nullCheckedList(array){ + var castedArray, i, len; + for (i = 0 , len = array.length; i < len; i++) { + if (array[i] == null) { + throw toJs(new NullPointerException_0('at index ' + i)); + } + } + castedArray = array; + return new Arrays$ArrayList(castedArray); +} + +function unsafeDelegateList(list){ + var castedList; + switch (list.size_1()) { + case 0: + return EMPTY; + case 1: + return new SingletonImmutableList(checkNotNull(list.get_0(0))); + default:castedList = list; + return new RegularImmutableList(castedList); + } +} + +defineClass(152, 1980, $intern_26); +_.iterator_0 = function iterator_16(){ + return this.iterator_1(); +} +; +_.listIterator_0 = function listIterator_1(){ + return this.listIterator_2(0); +} +; +_.listIterator_1 = function listIterator_3(index_0){ + return this.listIterator_2(index_0); +} +; +_.sort_0 = function sort_1(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_16(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.subList = function subList_2(fromIndex, toIndex){ + return this.subList_0(fromIndex, toIndex); +} +; +_.add_3 = function add_9(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_5(index_0, newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.equals_0 = function equals_17(obj){ + return equalsImpl(this, obj); +} +; +_.hashCode_1 = function hashCode_19(){ + return hashCodeImpl(this); +} +; +_.indexOf_0 = function indexOf_0(object){ + return object == null?-1:indexOfRandomAccess(this, object); +} +; +_.iterator_1 = function iterator_15(){ + return this.listIterator_2(0); +} +; +_.listIterator_2 = function listIterator_2(index_0){ + return $listIterator(this, index_0); +} +; +_.remove_2 = function remove_23(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_4(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.subList_0 = function subList_1(fromIndex, toIndex){ + var wrapper; + return unsafeDelegateList((wrapper = new Lists$1(this) , new AbstractList$SubList(wrapper, fromIndex, toIndex))); +} +; +var EMPTY; +var Lcom_google_common_collect_ImmutableList_2_classLit = createForClass('com.google.common.collect', 'ImmutableList', 152); +function $get_2(this$static, index_0){ + return this$static.delegateList_0().get_0(index_0); +} + +defineClass(2006, 152, $intern_26); +_.iterator_0 = function iterator_18(){ + return unmodifiableIterator(this.delegateList_0().iterator_0()); +} +; +_.subList = function subList_4(fromIndex, toIndex){ + return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); +} +; +_.contains = function contains_13(object){ + return object != null && this.delegateList_0().contains(object); +} +; +_.containsAll = function containsAll_4(targets){ + return this.delegateList_0().containsAll(targets); +} +; +_.equals_0 = function equals_18(obj){ + return equals_Ljava_lang_Object__Z__devirtual$(this.delegateList_0(), obj); +} +; +_.get_0 = function get_15(index_0){ + return $get_2(this, index_0); +} +; +_.hashCode_1 = function hashCode_20(){ + return hashCode__I__devirtual$(this.delegateList_0()); +} +; +_.indexOf_0 = function indexOf_1(object){ + return this.delegateList_0().indexOf_0(object); +} +; +_.isEmpty = function isEmpty_8(){ + return this.delegateList_0().isEmpty(); +} +; +_.iterator_1 = function iterator_17(){ + return unmodifiableIterator(this.delegateList_0().iterator_0()); +} +; +_.size_1 = function size_15(){ + return this.delegateList_0().size_1(); +} +; +_.subList_0 = function subList_3(fromIndex, toIndex){ + return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); +} +; +_.toArray = function toArray_5(){ + return this.delegateList_0().toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.delegateList_0().size_1(), 5, 1)); +} +; +_.toArray_0 = function toArray_6(other){ + return this.delegateList_0().toArray_0(other); +} +; +_.toString_0 = function toString_21(){ + return toString_40(this.delegateList_0()); +} +; +var Lcom_google_common_collect_ForwardingImmutableList_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableList', 2006); +function $clinit_ImmutableMap(){ + $clinit_ImmutableMap = emptyMethod; + EMPTY_0 = new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [])); +} + +function $entrySet_1(this$static){ + if (this$static.cachedEntrySet) { + return this$static.cachedEntrySet; + } + return this$static.cachedEntrySet = this$static.createEntrySet_1(); +} + +function $keySet_0(this$static){ + if (this$static.cachedKeySet) { + return this$static.cachedKeySet; + } + return this$static.cachedKeySet = this$static.createKeySet_1(); +} + +function $put_2(){ + throw toJs(new UnsupportedOperationException); +} + +function fromEntryList(entries){ + $clinit_ImmutableMap(); + var entry, entryArray, size_0; + size_0 = entries.array.length; + switch (size_0) { + case 0: + return EMPTY_0; + case 1: + entry = castTo(getOnlyElement(new ArrayList$1(entries)), 42); + return of(entry.getKey(), entry.getValue()); + default:entryArray = castTo($toArray_2(entries, initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, entries.array.length, 0, 1)), 165); + return new RegularImmutableMap(entryArray); + } +} + +function of(k1, v1){ + return $clinit_ImmutableMap() , checkEntryNotNull(k1, v1) , new SingletonImmutableBiMap(k1, v1); +} + +function of_0(k1, v1, k2, v2){ + $clinit_ImmutableMap(); + return new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [(checkEntryNotNull(k1, v1) , new ImmutableEntry(k1, v1)), (checkEntryNotNull(k2, v2) , new ImmutableEntry(k2, v2))])); +} + +defineClass(714, 1, $intern_28); +_.entrySet_0 = function entrySet_1(){ + return $entrySet_1(this); +} +; +_.forEach = function forEach_5(consumer){ + $forEach_2(this, consumer); +} +; +_.keySet_0 = function keySet_9(){ + return $keySet_0(this); +} +; +_.merge = function merge_0(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.values_0 = function values_4(){ + return this.values_2(); +} +; +_.clear_0 = function clear_17(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_3(key){ + return this.get_3(key) != null; +} +; +_.containsValue = function containsValue_0(value_0){ + return this.values_2().contains(value_0); +} +; +_.createKeySet_1 = function createKeySet_6(){ + return new ImmutableMapKeySet(this); +} +; +_.createValues = function createValues(){ + return new ImmutableMapValues(this); +} +; +_.equals_0 = function equals_19(object){ + return equalsImpl_0(this, object); +} +; +_.hashCode_1 = function hashCode_21(){ + return $entrySet_1(this).hashCode_1(); +} +; +_.isEmpty = function isEmpty_9(){ + return this.size_1() == 0; +} +; +_.put = function put_2(k, v){ + return $put_2(); +} +; +_.remove_0 = function remove_24(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_22(){ + return toStringImpl(this); +} +; +_.values_2 = function values_3(){ + if (this.cachedValues) { + return this.cachedValues; + } + return this.cachedValues = this.createValues(); +} +; +_.cachedEntrySet = null; +_.cachedKeySet = null; +_.cachedValues = null; +var EMPTY_0; +var Lcom_google_common_collect_ImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap', 714); +function $containsKey_0(this$static, key){ + return safeContainsKey(this$static.delegate, key); +} + +function $get_3(this$static, key){ + return key == null?null:safeGet(this$static.delegate, key); +} + +function ForwardingImmutableMap(entries){ + var delegate, entry, entry$array, entry$index, entry$max, key, previous; + delegate = new LinkedHashMap; + for (entry$array = entries , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { + entry = entry$array[entry$index]; + key = checkNotNull(entry.getKey()); + previous = $put_11(delegate, key, checkNotNull(entry.getValue())); + if (previous != null) { + throw toJs(new IllegalArgumentException_0('duplicate key: ' + key)); + } + } + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(715, 714, $intern_28); +_.containsKey = function containsKey_4(key){ + return $containsKey_0(this, key); +} +; +_.containsValue = function containsValue_1(value_0){ + return $containsValue_3(this.delegate, value_0); +} +; +_.createEntrySet_1 = function createEntrySet_0(){ + return unsafeDelegate(new ForwardingImmutableMap$1(this)); +} +; +_.createKeySet_1 = function createKeySet_7(){ + return unsafeDelegate($keySet_1(this.delegate)); +} +; +_.createValues = function createValues_0(){ + return $clinit_ImmutableCollection() , new ForwardingImmutableCollection($values_2(this.delegate)); +} +; +_.equals_0 = function equals_20(object){ + return $equals_7(this.delegate, object); +} +; +_.get_3 = function get_16(key){ + return $get_3(this, key); +} +; +_.hashCode_1 = function hashCode_22(){ + return hashCode__I__devirtual$(this.delegate.map_0); +} +; +_.isEmpty = function isEmpty_10(){ + return this.delegate.map_0.isEmpty(); +} +; +_.size_1 = function size_16(){ + return this.delegate.map_0.size_1(); +} +; +_.toString_0 = function toString_23(){ + return toString_40(this.delegate.map_0); +} +; +var Lcom_google_common_collect_ForwardingImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap', 715); +defineClass(1974, 1973, $intern_29); +_.delegate_0 = function delegate_1(){ + return this.delegate_2(); +} +; +_.delegate_1 = function delegate_2(){ + return this.delegate_2(); +} +; +_.spliterator_0 = function spliterator_17(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_21(object){ + return object === this || this.delegate_2().equals_0(object); +} +; +_.hashCode_1 = function hashCode_23(){ + return this.delegate_2().hashCode_1(); +} +; +var Lcom_google_common_collect_ForwardingSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSet', 1974); +function ForwardingImmutableMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1069, 1974, $intern_29, ForwardingImmutableMap$1); +_.delegate_0 = function delegate_3(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.delegate_1 = function delegate_4(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.contains = function contains_14(object){ + if (instanceOf(object, 42) && castTo(object, 42).getKey() == null) { + return false; + } + try { + return $contains_3($entrySet_2(this.this$01.delegate), object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205)) { + return false; + } + else + throw toJs($e0); + } +} +; +_.delegate_2 = function delegate_5(){ + return $entrySet_2(this.this$01.delegate); +} +; +_.toArray_0 = function toArray_7(array){ + var result; + result = $toArray_5($entrySet_2(this.this$01.delegate), array); + $entrySet_2(this.this$01.delegate).coll.size_1() < result.length && setCheck(result, $entrySet_2(this.this$01.delegate).coll.size_1(), null); + return result; +} +; +var Lcom_google_common_collect_ForwardingImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap/1', 1069); +function unsafeDelegate(delegate){ + $clinit_ImmutableCollection(); + switch (delegate.size_1()) { + case 0: + return $clinit_RegularImmutableSet() , EMPTY_2; + case 1: + return new SingletonImmutableSet(delegate.iterator_0().next_1()); + default:return new RegularImmutableSet(delegate); + } +} + +defineClass(1981, 1980, $intern_30); +_.iterator_0 = function iterator_19(){ + return this.iterator_1(); +} +; +_.spliterator_0 = function spliterator_18(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_22(obj){ + return equalsImpl_3(this, obj); +} +; +_.hashCode_1 = function hashCode_24(){ + return hashCodeImpl_0(this); +} +; +var Lcom_google_common_collect_ImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableSet', 1981); +function ForwardingImmutableSet(delegate){ + $clinit_ImmutableCollection(); + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableSet(delegate)); +} + +defineClass(703, 1981, $intern_30); +_.iterator_0 = function iterator_21(){ + return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); +} +; +_.contains = function contains_15(object){ + return object != null && $contains_2(this.delegate, object); +} +; +_.containsAll = function containsAll_5(targets){ + return $containsAll_0(this.delegate, targets); +} +; +_.hashCode_1 = function hashCode_25(){ + return hashCode__I__devirtual$(this.delegate.coll); +} +; +_.isEmpty = function isEmpty_11(){ + return this.delegate.coll.isEmpty(); +} +; +_.iterator_1 = function iterator_20(){ + return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); +} +; +_.size_1 = function size_17(){ + return this.delegate.coll.size_1(); +} +; +_.toArray = function toArray_8(){ + return this.delegate.coll.toArray(); +} +; +_.toArray_0 = function toArray_9(other){ + return $toArray_4(this.delegate, other); +} +; +_.toString_0 = function toString_24(){ + return toString_40(this.delegate.coll); +} +; +var Lcom_google_common_collect_ForwardingImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableSet', 703); +defineClass(1975, 1974, $intern_31); +_.delegate_0 = function delegate_6(){ + return this.unmodifiableDelegate; +} +; +_.delegate_1 = function delegate_7(){ + return this.unmodifiableDelegate; +} +; +_.delegate_2 = function delegate_8(){ + return this.unmodifiableDelegate; +} +; +_.spliterator_0 = function spliterator_19(){ + return new SortedSet$1(this); +} +; +var Lcom_google_common_collect_ForwardingSortedSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSortedSet', 1975); +function $clear_2(this$static){ + this$static.size_0 = 0; + fill_2(this$static.hashTableKToV, null); + fill_2(this$static.hashTableVToK, null); + this$static.firstInKeyInsertionOrder = null; + this$static.lastInKeyInsertionOrder = null; + ++this$static.modCount; +} + +function $containsValue_1(this$static, value_0){ + return !!$seekByValue(this$static, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); +} + +function $delete(this$static, entry){ + var bucketEntry, bucketEntry0, keyBucket, prevBucketEntry, valueBucket; + keyBucket = entry.keyHash & this$static.mask; + prevBucketEntry = null; + for (bucketEntry0 = this$static.hashTableKToV[keyBucket]; true; bucketEntry0 = bucketEntry0.nextInKToVBucket) { + if (bucketEntry0 == entry) { + !prevBucketEntry?(this$static.hashTableKToV[keyBucket] = entry.nextInKToVBucket):(prevBucketEntry.nextInKToVBucket = entry.nextInKToVBucket); + break; + } + prevBucketEntry = bucketEntry0; + } + valueBucket = entry.valueHash & this$static.mask; + prevBucketEntry = null; + for (bucketEntry = this$static.hashTableVToK[valueBucket]; true; bucketEntry = bucketEntry.nextInVToKBucket) { + if (bucketEntry == entry) { + !prevBucketEntry?(this$static.hashTableVToK[valueBucket] = entry.nextInVToKBucket):(prevBucketEntry.nextInVToKBucket = entry.nextInVToKBucket); + break; + } + prevBucketEntry = bucketEntry; + } + !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry.nextInKeyInsertionOrder):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry.nextInKeyInsertionOrder); + !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry.prevInKeyInsertionOrder):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry.prevInKeyInsertionOrder); + --this$static.size_0; + ++this$static.modCount; +} + +function $forEach(this$static, action){ + var entry; + checkNotNull(action); + for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { + action.accept_1(entry.key, entry.value_0); + } +} + +function $get_4(this$static, key){ + return valueOrNull($seekByKey(this$static, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))))); +} + +function $insert(this$static, entry, oldEntryForKey){ + var keyBucket, valueBucket; + keyBucket = entry.keyHash & this$static.mask; + entry.nextInKToVBucket = this$static.hashTableKToV[keyBucket]; + this$static.hashTableKToV[keyBucket] = entry; + valueBucket = entry.valueHash & this$static.mask; + entry.nextInVToKBucket = this$static.hashTableVToK[valueBucket]; + this$static.hashTableVToK[valueBucket] = entry; + if (!oldEntryForKey) { + entry.prevInKeyInsertionOrder = this$static.lastInKeyInsertionOrder; + entry.nextInKeyInsertionOrder = null; + !this$static.lastInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(this$static.lastInKeyInsertionOrder.nextInKeyInsertionOrder = entry); + this$static.lastInKeyInsertionOrder = entry; + } + else { + entry.prevInKeyInsertionOrder = oldEntryForKey.prevInKeyInsertionOrder; + !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry); + entry.nextInKeyInsertionOrder = oldEntryForKey.nextInKeyInsertionOrder; + !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry); + } + ++this$static.size_0; + ++this$static.modCount; +} + +function $inverse(this$static){ + var result; + result = this$static.inverse; + return !result?(this$static.inverse = new HashBiMap$Inverse(this$static)):result; +} + +function $put_3(this$static, key, value_0){ + var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + oldEntryForKey = $seekByKey(this$static, key, keyHash); + if (!!oldEntryForKey && valueHash == oldEntryForKey.valueHash && equal(value_0, oldEntryForKey.value_0)) { + return value_0; + } + oldEntryForValue = $seekByValue(this$static, value_0, valueHash); + if (oldEntryForValue) { + throw toJs(new IllegalArgumentException_0('value already present: ' + value_0)); + } + newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); + if (oldEntryForKey) { + $delete(this$static, oldEntryForKey); + $insert(this$static, newEntry, oldEntryForKey); + oldEntryForKey.prevInKeyInsertionOrder = null; + oldEntryForKey.nextInKeyInsertionOrder = null; + return oldEntryForKey.value_0; + } + else { + $insert(this$static, newEntry, null); + $rehashIfNecessary(this$static); + return null; + } +} + +function $putInverse(this$static, value_0, key, force){ + var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + oldEntryForValue = $seekByValue(this$static, value_0, valueHash); + oldEntryForKey = $seekByKey(this$static, key, keyHash); + if (!!oldEntryForValue && keyHash == oldEntryForValue.keyHash && equal(key, oldEntryForValue.key)) { + return key; + } + else if (!!oldEntryForKey && !force) { + throw toJs(new IllegalArgumentException_0('key already present: ' + key)); + } + !!oldEntryForValue && $delete(this$static, oldEntryForValue); + !!oldEntryForKey && $delete(this$static, oldEntryForKey); + newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); + $insert(this$static, newEntry, oldEntryForKey); + if (oldEntryForKey) { + oldEntryForKey.prevInKeyInsertionOrder = null; + oldEntryForKey.nextInKeyInsertionOrder = null; + } + if (oldEntryForValue) { + oldEntryForValue.prevInKeyInsertionOrder = null; + oldEntryForValue.nextInKeyInsertionOrder = null; + } + $rehashIfNecessary(this$static); + return !oldEntryForValue?null:oldEntryForValue.key; +} + +function $rehashIfNecessary(this$static){ + var entry, newTableSize, oldKToV; + oldKToV = this$static.hashTableKToV; + if (needsResizing(this$static.size_0, oldKToV.length)) { + newTableSize = oldKToV.length * 2; + this$static.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); + this$static.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); + this$static.mask = newTableSize - 1; + this$static.size_0 = 0; + for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { + $insert(this$static, entry, entry); + } + ++this$static.modCount; + } +} + +function $seekByKey(this$static, key, keyHash){ + var entry; + for (entry = this$static.hashTableKToV[keyHash & this$static.mask]; entry; entry = entry.nextInKToVBucket) { + if (keyHash == entry.keyHash && equal(key, entry.key)) { + return entry; + } + } + return null; +} + +function $seekByValue(this$static, value_0, valueHash){ + var entry; + for (entry = this$static.hashTableVToK[valueHash & this$static.mask]; entry; entry = entry.nextInVToKBucket) { + if (valueHash == entry.valueHash && equal(value_0, entry.value_0)) { + return entry; + } + } + return null; +} + +function HashBiMap(){ + var tableSize; + checkNonnegative(16, 'expectedSize'); + tableSize = closedTableSize(16); + this.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); + this.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); + this.firstInKeyInsertionOrder = null; + this.lastInKeyInsertionOrder = null; + this.size_0 = 0; + this.mask = tableSize - 1; + this.modCount = 0; +} + +defineClass(533, 1979, $intern_28, HashBiMap); +_.putAll = function putAll_0(map_0){ + $putAll(this, map_0); +} +; +_.values_0 = function values_5(){ + var result; + return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); +} +; +_.clear_0 = function clear_18(){ + $clear_2(this); +} +; +_.containsKey = function containsKey_5(key){ + return !!$seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); +} +; +_.containsValue = function containsValue_2(value_0){ + return $containsValue_1(this, value_0); +} +; +_.entryIterator = function entryIterator_2(){ + return new HashBiMap$1(this, this); +} +; +_.forEach = function forEach_6(action){ + $forEach(this, action); +} +; +_.get_3 = function get_17(key){ + return $get_4(this, key); +} +; +_.keySet_0 = function keySet_10(){ + return new HashBiMap$KeySet(this); +} +; +_.put = function put_3(key, value_0){ + return $put_3(this, key, value_0); +} +; +_.remove_0 = function remove_25(key){ + var entry; + entry = $seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); + if (!entry) { + return null; + } + else { + $delete(this, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return entry.value_0; + } +} +; +_.size_1 = function size_18(){ + return this.size_0; +} +; +_.values_1 = function values_6(){ + var result; + return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); +} +; +_.mask = 0; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_HashBiMap_2_classLit = createForClass('com.google.common.collect', 'HashBiMap', 533); +function $hasNext_0(this$static){ + if (this$static.this$01.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + return !!this$static.next_0 && this$static.remaining > 0; +} + +function HashBiMap$Itr(this$0){ + this.this$01 = this$0; + this.next_0 = this.this$01.firstInKeyInsertionOrder; + this.expectedModCount = this.this$01.modCount; + this.remaining = this.this$01.size_0; +} + +defineClass(534, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_7(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_5(){ + return $hasNext_0(this); +} +; +_.next_1 = function next_6(){ + var entry; + if (!$hasNext_0(this)) { + throw toJs(new NoSuchElementException); + } + entry = this.next_0; + this.next_0 = entry.nextInKeyInsertionOrder; + this.toRemove = entry; + --this.remaining; + return this.output_0(entry); +} +; +_.remove = function remove_26(){ + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + checkState_0(!!this.toRemove); + $delete(this.this$01, this.toRemove); + this.expectedModCount = this.this$01.modCount; + this.toRemove = null; +} +; +_.expectedModCount = 0; +_.remaining = 0; +_.toRemove = null; +var Lcom_google_common_collect_HashBiMap$Itr_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Itr', 534); +function HashBiMap$1(this$0, this$0_1){ + this.this$02 = this$0_1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1011, 534, $intern_6, HashBiMap$1); +_.output_0 = function output_2(entry){ + return new HashBiMap$1$MapEntry(this, entry); +} +; +var Lcom_google_common_collect_HashBiMap$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1', 1011); +function HashBiMap$1$MapEntry(this$1, entry){ + this.this$11 = this$1; + this.delegate = entry; +} + +defineClass(1012, 345, $intern_15, HashBiMap$1$MapEntry); +_.getKey = function getKey_0(){ + return this.delegate.key; +} +; +_.getValue = function getValue_2(){ + return this.delegate.value_0; +} +; +_.setValue = function setValue_3(value_0){ + var newEntry, oldValue, valueHash; + oldValue = this.delegate.value_0; + valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + if (valueHash == this.delegate.valueHash && (maskUndefined(value_0) === maskUndefined(oldValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, oldValue))) { + return value_0; + } + checkArgument_1(!$seekByValue(this.this$11.this$02, value_0, valueHash), value_0); + $delete(this.this$11.this$02, this.delegate); + newEntry = new HashBiMap$BiEntry(this.delegate.key, this.delegate.keyHash, value_0, valueHash); + $insert(this.this$11.this$02, newEntry, this.delegate); + this.delegate.prevInKeyInsertionOrder = null; + this.delegate.nextInKeyInsertionOrder = null; + this.this$11.expectedModCount = this.this$11.this$02.modCount; + this.this$11.toRemove == this.delegate && (this.this$11.toRemove = newEntry); + this.delegate = newEntry; + return oldValue; +} +; +var Lcom_google_common_collect_HashBiMap$1$MapEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1/MapEntry', 1012); +function ImmutableEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(238, 345, {345:1, 238:1, 3:1, 42:1}, ImmutableEntry); +_.getKey = function getKey_1(){ + return this.key; +} +; +_.getValue = function getValue_3(){ + return this.value_0; +} +; +_.setValue = function setValue_4(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_ImmutableEntry_2_classLit = createForClass('com.google.common.collect', 'ImmutableEntry', 238); +function HashBiMap$BiEntry(key, keyHash, value_0, valueHash){ + ImmutableEntry.call(this, key, value_0); + this.keyHash = keyHash; + this.valueHash = valueHash; +} + +defineClass(317, 238, {345:1, 317:1, 238:1, 3:1, 42:1}, HashBiMap$BiEntry); +_.keyHash = 0; +_.valueHash = 0; +var Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/BiEntry', 317); +function $get_5(this$static, value_0){ + return keyOrNull($seekByValue(this$static.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))))); +} + +function HashBiMap$Inverse(this$0){ + this.this$01 = this$0; +} + +function lambda$0(action_0, k_1, v_2){ + action_0.accept_1(v_2, k_1); +} + +defineClass(610, 1979, $intern_28, HashBiMap$Inverse); +_.putAll = function putAll_1(map_0){ + $putAll(this, map_0); +} +; +_.values_0 = function values_7(){ + return new HashBiMap$KeySet(this.this$01); +} +; +_.clear_0 = function clear_19(){ + $clear_2(this.this$01); +} +; +_.containsKey = function containsKey_6(value_0){ + return $containsValue_1(this.this$01, value_0); +} +; +_.entryIterator = function entryIterator_3(){ + return new HashBiMap$Inverse$1(this, this.this$01); +} +; +_.forEach = function forEach_7(action){ + checkNotNull(action); + $forEach(this.this$01, new HashBiMap$Inverse$lambda$0$Type(action)); +} +; +_.get_3 = function get_18(value_0){ + return $get_5(this, value_0); +} +; +_.keySet_0 = function keySet_11(){ + return new HashBiMap$Inverse$InverseKeySet(this); +} +; +_.put = function put_4(value_0, key){ + return $putInverse(this.this$01, value_0, key, false); +} +; +_.remove_0 = function remove_27(value_0){ + var entry; + entry = $seekByValue(this.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); + if (!entry) { + return null; + } + else { + $delete(this.this$01, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return entry.key; + } +} +; +_.size_1 = function size_19(){ + return this.this$01.size_0; +} +; +_.values_1 = function values_8(){ + return new HashBiMap$KeySet(this.this$01); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse', 610); +function HashBiMap$Inverse$1(this$1, this$0){ + this.this$11 = this$1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1008, 534, $intern_6, HashBiMap$Inverse$1); +_.output_0 = function output_3(entry){ + return new HashBiMap$Inverse$1$InverseEntry(this, entry); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1', 1008); +function HashBiMap$Inverse$1$InverseEntry(this$2, entry){ + this.this$21 = this$2; + this.delegate = entry; +} + +defineClass(1009, 345, $intern_15, HashBiMap$Inverse$1$InverseEntry); +_.getKey = function getKey_2(){ + return this.delegate.value_0; +} +; +_.getValue = function getValue_4(){ + return this.delegate.key; +} +; +_.setValue = function setValue_5(key){ + var keyHash, newEntry, oldKey; + oldKey = this.delegate.key; + keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); + if (keyHash == this.delegate.keyHash && (maskUndefined(key) === maskUndefined(oldKey) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, oldKey))) { + return key; + } + checkArgument_1(!$seekByKey(this.this$21.this$11.this$01, key, keyHash), key); + $delete(this.this$21.this$11.this$01, this.delegate); + newEntry = new HashBiMap$BiEntry(key, keyHash, this.delegate.value_0, this.delegate.valueHash); + this.delegate = newEntry; + $insert(this.this$21.this$11.this$01, newEntry, null); + this.this$21.expectedModCount = this.this$21.this$11.this$01.modCount; + return oldKey; +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$1$InverseEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1/InverseEntry', 1009); +function HashBiMap$Inverse$InverseKeySet(this$1){ + this.this$11 = this$1; + Maps$KeySet.call(this, this$1); +} + +defineClass(611, 532, $intern_10, HashBiMap$Inverse$InverseKeySet); +_.iterator_0 = function iterator_22(){ + return new HashBiMap$Inverse$InverseKeySet$1(this.this$11.this$01); +} +; +_.remove_1 = function remove_28(o){ + var entry; + entry = $seekByValue(this.this$11.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); + if (!entry) { + return false; + } + else { + $delete(this.this$11.this$01, entry); + return true; + } +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet', 611); +function HashBiMap$Inverse$InverseKeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1007, 534, $intern_6, HashBiMap$Inverse$InverseKeySet$1); +_.output_0 = function output_4(entry){ + return entry.value_0; +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet/1', 1007); +function HashBiMap$Inverse$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1010, 1, {}, HashBiMap$Inverse$lambda$0$Type); +_.accept_1 = function accept_6(arg0, arg1){ + lambda$0(this.action_0, arg0, arg1); +} +; +var Lcom_google_common_collect_HashBiMap$Inverse$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/lambda$0$Type', 1010); +function HashBiMap$KeySet(this$0){ + this.this$01 = this$0; + Maps$KeySet.call(this, this$0); +} + +defineClass(609, 532, $intern_10, HashBiMap$KeySet); +_.iterator_0 = function iterator_23(){ + return new HashBiMap$KeySet$1(this.this$01); +} +; +_.remove_1 = function remove_29(o){ + var entry; + entry = $seekByKey(this.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); + if (!entry) { + return false; + } + else { + $delete(this.this$01, entry); + entry.prevInKeyInsertionOrder = null; + entry.nextInKeyInsertionOrder = null; + return true; + } +} +; +var Lcom_google_common_collect_HashBiMap$KeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet', 609); +function HashBiMap$KeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1006, 534, $intern_6, HashBiMap$KeySet$1); +_.output_0 = function output_5(entry){ + return entry.key; +} +; +var Lcom_google_common_collect_HashBiMap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet/1', 1006); +function HashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1093, 619, $intern_5); +var Lcom_google_common_collect_HashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'HashMultimapGwtSerializationDependencies', 1093); +function HashMultimap(){ + HashMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(12))); + checkArgument(true); + this.expectedValuesPerKey = 2; +} + +defineClass(265, 1093, $intern_5, HashMultimap); +_.createCollection = function createCollection_5(){ + return new HashSet_0(capacity_0(this.expectedValuesPerKey)); +} +; +_.createCollection_1 = function createCollection_6(){ + return new HashSet_0(capacity_0(this.expectedValuesPerKey)); +} +; +_.expectedValuesPerKey = 2; +var Lcom_google_common_collect_HashMultimap_2_classLit = createForClass('com.google.common.collect', 'HashMultimap', 265); +function closedTableSize(expectedEntries){ + var tableSize; + expectedEntries = $wnd.Math.max(expectedEntries, 2); + tableSize = highestOneBit(expectedEntries); + if (expectedEntries > tableSize) { + tableSize <<= 1; + return tableSize > 0?tableSize:$intern_35; + } + return tableSize; +} + +function needsResizing(size_0, tableSize){ + return size_0 > tableSize && tableSize < $intern_35; +} + +defineClass(1999, 152, $intern_26); +_.contains = function contains_16(target){ + return this.delegateCollection().contains(target); +} +; +_.isEmpty = function isEmpty_12(){ + return this.delegateCollection().isEmpty(); +} +; +_.size_1 = function size_20(){ + return this.delegateCollection().size_1(); +} +; +var Lcom_google_common_collect_ImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'ImmutableAsList', 1999); +function ImmutableBiMap(delegate){ + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(1931, 715, $intern_28); +_.values_2 = function values_9(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_0 = function values_10(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_1 = function values_11(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +var Lcom_google_common_collect_ImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableBiMap', 1931); +defineClass(1977, 1, {}); +var Lcom_google_common_collect_ImmutableCollection$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection/Builder', 1977); +function ImmutableEnumSet(delegate){ + ForwardingImmutableSet.call(this, delegate); +} + +function asImmutable(delegate){ + $clinit_ImmutableCollection(); + switch (delegate.size_0) { + case 0: + return $clinit_RegularImmutableSet() , EMPTY_2; + case 1: + return new SingletonImmutableSet(getOnlyElement(new EnumSet$EnumSetImpl$IteratorImpl(delegate))); + default:return new ImmutableEnumSet(delegate); + } +} + +defineClass(1022, 703, $intern_30, ImmutableEnumSet); +var Lcom_google_common_collect_ImmutableEnumSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableEnumSet', 1022); +function ImmutableList$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + AbstractIndexedListIterator_0.call(this, $anonymous0, $anonymous1); +} + +defineClass(969, 386, $intern_4, ImmutableList$1); +_.get_0 = function get_19(index_0){ + return this.this$01.get_0(index_0); +} +; +var Lcom_google_common_collect_ImmutableList$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/1', 969); +function ImmutableList$Builder(capacity){ + this.contents = (checkNonnegative(capacity, 'initialArraySize') , new ArrayList_0(capacity)); +} + +defineClass(968, 1977, {}, ImmutableList$Builder); +var Lcom_google_common_collect_ImmutableList$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/Builder', 968); +function ImmutableMap$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(614, 198, $intern_3, ImmutableMap$1); +_.hasNext_0 = function hasNext_6(){ + return this.val$entryIterator2.hasNext_0(); +} +; +_.next_1 = function next_7(){ + return castTo(this.val$entryIterator2.next_1(), 42).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/1', 614); +function ImmutableMap$2methodref$getKey$Type(){ +} + +defineClass(1041, 1, {}, ImmutableMap$2methodref$getKey$Type); +_.apply_0 = function apply_9(arg0){ + return castTo(arg0, 42).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$2methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/2methodref$getKey$Type', 1041); +function $put_4(this$static, key, value_0){ + $add_3(this$static.entries_0, ($clinit_ImmutableMap() , checkEntryNotNull(key, value_0) , new ImmutableEntry(key, value_0))); + return this$static; +} + +function ImmutableMap$Builder(initCapacity){ + this.entries_0 = (checkNonnegative(initCapacity, 'initialArraySize') , new ArrayList_0(initCapacity)); +} + +defineClass(1040, 1, {}, ImmutableMap$Builder); +var Lcom_google_common_collect_ImmutableMap$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/Builder', 1040); +defineClass(2000, 1981, $intern_30); +_.iterator_0 = function iterator_25(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.createAsList = function createAsList_0(){ + return new IndexedImmutableSet$1(this); +} +; +_.forEach_0 = function forEach_8(consumer){ + var i, n; + checkNotNull(consumer); + n = this.size_1(); + for (i = 0; i < n; i++) { + consumer.accept(castTo($asList($entrySet_1(this.map_0)).get_0(i), 42).getKey()); + } +} +; +_.iterator_1 = function iterator_24(){ + var list; + return (list = this.asList , !list?(this.asList = new IndexedImmutableSet$1(this)):list).iterator_1(); +} +; +_.spliterator_0 = function spliterator_20(){ + return indexed(this.size_1(), 1296, new IndexedImmutableSet$0methodref$get$Type(this)); +} +; +var Lcom_google_common_collect_IndexedImmutableSet_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet', 2000); +function $get_6(this$static, index_0){ + return castTo($asList($entrySet_1(this$static.map_0)).get_0(index_0), 42).getKey(); +} + +function ImmutableMapKeySet(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1180, 2000, $intern_30, ImmutableMapKeySet); +_.iterator_0 = function iterator_27(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.contains = function contains_17(object){ + return this.map_0.containsKey(object); +} +; +_.forEach_0 = function forEach_9(action){ + checkNotNull(action); + $forEach_2(this.map_0, new ImmutableMapKeySet$lambda$0$Type(action)); +} +; +_.iterator_1 = function iterator_26(){ + var entryIterator; + return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); +} +; +_.size_1 = function size_21(){ + return this.map_0.size_1(); +} +; +_.spliterator_0 = function spliterator_21(){ + return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMap$2methodref$getKey$Type); +} +; +var Lcom_google_common_collect_ImmutableMapKeySet_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet', 1180); +function ImmutableMapKeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1181, 1, {}, ImmutableMapKeySet$lambda$0$Type); +_.accept_1 = function accept_7(arg0, arg1){ + $clinit_ImmutableCollection(); + this.action_0.accept(arg0); +} +; +var Lcom_google_common_collect_ImmutableMapKeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet/lambda$0$Type', 1181); +function ImmutableMapValues(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1178, 1980, $intern_25, ImmutableMapValues); +_.iterator_0 = function iterator_29(){ + return new ImmutableMapValues$1(this); +} +; +_.contains = function contains_18(object){ + return object != null && contains_19(new ImmutableMapValues$1(this), object); +} +; +_.iterator_1 = function iterator_28(){ + return new ImmutableMapValues$1(this); +} +; +_.size_1 = function size_22(){ + return this.map_0.size_1(); +} +; +_.spliterator_0 = function spliterator_22(){ + return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMapValues$0methodref$getValue$Type); +} +; +var Lcom_google_common_collect_ImmutableMapValues_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues', 1178); +function ImmutableMapValues$0methodref$getValue$Type(){ +} + +defineClass(1179, 1, {}, ImmutableMapValues$0methodref$getValue$Type); +_.apply_0 = function apply_10(arg0){ + return castTo(arg0, 42).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/0methodref$getValue$Type', 1179); +function ImmutableMapValues$1(this$0){ + this.this$01 = this$0; + this.entryItr = $entrySet_1(this.this$01.map_0).iterator_1(); +} + +defineClass(626, 198, $intern_3, ImmutableMapValues$1); +_.hasNext_0 = function hasNext_7(){ + return this.entryItr.hasNext_0(); +} +; +_.next_1 = function next_8(){ + return castTo(this.entryItr.next_1(), 42).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/1', 626); +function IndexedImmutableSet$0methodref$get$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1182, 1, {}, IndexedImmutableSet$0methodref$get$Type); +_.apply_2 = function apply_11(arg0){ + return $get_6(this.$$outer_0, arg0); +} +; +var Lcom_google_common_collect_IndexedImmutableSet$0methodref$get$Type_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/0methodref$get$Type', 1182); +function IndexedImmutableSet$1(this$0){ + $clinit_ImmutableList(); + this.this$01 = this$0; +} + +defineClass(752, 1999, $intern_26, IndexedImmutableSet$1); +_.delegateCollection = function delegateCollection(){ + return this.this$01; +} +; +_.get_0 = function get_20(index_0){ + return $get_6(this.this$01, index_0); +} +; +_.size_1 = function size_23(){ + return this.this$01.map_0.size_1(); +} +; +var Lcom_google_common_collect_IndexedImmutableSet$1_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/1', 752); +function addAll_6(addTo, elementsToAdd){ + var c; + if (instanceOf(elementsToAdd, 14)) { + c = castTo(elementsToAdd, 14); + return addTo.addAll(c); + } + return addAll_7(addTo, castTo(checkNotNull(elementsToAdd), 20).iterator_0()); +} + +function all_0(iterable, predicate){ + return all_1(iterable.iterator_0(), predicate); +} + +function any_0(iterable, predicate){ + return indexOf_2(iterable.iterator_0(), predicate) != -1; +} + +function concat_0(inputs){ + return checkNotNull(inputs) , new FluentIterable$2(inputs); +} + +function filter_0(unfiltered, retainIfTrue){ + checkNotNull(unfiltered); + checkNotNull(retainIfTrue); + return new Iterables$4(unfiltered, retainIfTrue); +} + +function get_21(iterable){ + checkNotNull(iterable); + return get_22(new Iterators$ConcatenatedIterator(transform_2(iterable.val$inputs1.iterator_0(), new Iterables$10))); +} + +function getLast(iterable){ + var list; + if (iterable) { + list = iterable; + if (list.isEmpty()) { + throw toJs(new NoSuchElementException); + } + return list.get_0(list.size_1() - 1); + } + return getLast_0(iterable.iterator_0()); +} + +function isEmpty_13(iterable){ + if (instanceOf(iterable, 14)) { + return castTo(iterable, 14).isEmpty(); + } + return !iterable.iterator_0().hasNext_0(); +} + +function transform_1(fromIterable, function_0){ + checkNotNull(fromIterable); + checkNotNull(function_0); + return new Iterables$5(fromIterable, function_0); +} + +function Iterables$10(){ +} + +defineClass(44, 1, {}, Iterables$10); +_.apply_0 = function apply_12(iterable){ + return castTo(iterable, 20).iterator_0(); +} +; +_.equals_0 = function equals_23(other){ + return this === other; +} +; +var Lcom_google_common_collect_Iterables$10_2_classLit = createForClass('com.google.common.collect', 'Iterables/10', 44); +function $iterator_0(this$static){ + return filter_1(this$static.val$unfiltered1.iterator_0(), this$static.val$retainIfTrue2); +} + +function Iterables$4(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; + FluentIterable.call(this); +} + +function lambda$0_0(retainIfTrue_0, action_1, a_2){ + retainIfTrue_0.test_0(a_2) && action_1.accept(a_2); +} + +defineClass(1042, 537, $intern_23, Iterables$4); +_.forEach_0 = function forEach_10(action){ + checkNotNull(action); + this.val$unfiltered1.forEach_0(new Iterables$4$lambda$0$Type(this.val$retainIfTrue2, action)); +} +; +_.iterator_0 = function iterator_30(){ + return $iterator_0(this); +} +; +var Lcom_google_common_collect_Iterables$4_2_classLit = createForClass('com.google.common.collect', 'Iterables/4', 1042); +function Iterables$4$lambda$0$Type(retainIfTrue_0, action_1){ + this.retainIfTrue_0 = retainIfTrue_0; + this.action_1 = action_1; +} + +defineClass(1043, 1, $intern_19, Iterables$4$lambda$0$Type); +_.accept = function accept_8(arg0){ + lambda$0_0(this.retainIfTrue_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_Iterables$4$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/4/lambda$0$Type', 1043); +function Iterables$5(val$fromIterable, val$function){ + this.val$fromIterable1 = val$fromIterable; + this.val$function2 = val$function; + FluentIterable.call(this); +} + +defineClass(1044, 537, $intern_23, Iterables$5); +_.forEach_0 = function forEach_11(action){ + checkNotNull(action); + $forEach_0(this.val$fromIterable1, new Iterables$5$lambda$0$Type(action, this.val$function2)); +} +; +_.iterator_0 = function iterator_31(){ + return transform_2(new AbstractEList$EIterator(this.val$fromIterable1), this.val$function2); +} +; +var Lcom_google_common_collect_Iterables$5_2_classLit = createForClass('com.google.common.collect', 'Iterables/5', 1044); +function Iterables$5$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1045, 1, $intern_19, Iterables$5$lambda$0$Type); +_.accept = function accept_9(arg0){ + this.action_0.accept($apply_27(arg0)); +} +; +var Lcom_google_common_collect_Iterables$5$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/5/lambda$0$Type', 1045); +function addAll_7(addTo, iterator){ + var wasModified; + checkNotNull(addTo); + checkNotNull(iterator); + wasModified = false; + while (iterator.hasNext_0()) { + wasModified = wasModified | addTo.add_2(iterator.next_1()); + } + return wasModified; +} + +function advance(iterator){ + var i; + checkNotNull(iterator); + checkArgument_0(true, 'numberToAdvance must be nonnegative'); + for (i = 0; i < 0 && $hasNext_1(iterator); i++) { + $next_0(iterator); + } + return i; +} + +function all_1(iterator, predicate){ + var element; + checkNotNull(predicate); + while (iterator.hasNext_0()) { + element = iterator.next_1(); + if (!$apply_18(castTo(element, 10))) { + return false; + } + } + return true; +} + +function clear_20(iterator){ + checkNotNull(iterator); + while (iterator.hasNext_0()) { + iterator.next_1(); + iterator.remove(); + } +} + +function contains_19(iterator, element){ + if (element == null) { + while (iterator.entryItr.hasNext_0()) { + if (castTo(iterator.entryItr.next_1(), 42).getValue() == null) { + return true; + } + } + } + else { + while (iterator.entryItr.hasNext_0()) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, castTo(iterator.entryItr.next_1(), 42).getValue())) { + return true; + } + } + } + return false; +} + +function elementsEqual(iterator1, iterator2){ + var o1, o2; + while (iterator1.hasNext_0()) { + if (!iterator2.hasNext_0()) { + return false; + } + o1 = iterator1.next_1(); + o2 = iterator2.next_1(); + if (!(maskUndefined(o1) === maskUndefined(o2) || o1 != null && equals_Ljava_lang_Object__Z__devirtual$(o1, o2))) { + return false; + } + } + return !iterator2.hasNext_0(); +} + +function filter_1(unfiltered, retainIfTrue){ + checkNotNull(unfiltered); + checkNotNull(retainIfTrue); + return new Iterators$5(unfiltered, retainIfTrue); +} + +function get_22(iterator){ + var skipped; + skipped = advance(iterator); + if (!$hasNext_1(iterator)) { + throw toJs(new IndexOutOfBoundsException_0('position (0) must be less than the number of elements that remained (' + skipped + ')')); + } + return $next_0(iterator); +} + +function getLast_0(iterator){ + var current; + while (true) { + current = iterator.next_1(); + if (!iterator.hasNext_0()) { + return current; + } + } +} + +function getLast_1(iterator){ + return $hasNext_5(iterator.val$edgesIter2)?getLast_0(iterator):null; +} + +function getNext(iterator){ + return iterator.hasNext_0()?iterator.next_1():null; +} + +function getOnlyElement(iterator){ + var first, i, sb; + first = iterator.next_1(); + if (!iterator.hasNext_0()) { + return first; + } + sb = $append_10($append_11(new StringBuilder, 'expected one element but was: <'), first); + for (i = 0; i < 4 && iterator.hasNext_0(); i++) { + $append_10((sb.string += ', ' , sb), iterator.next_1()); + } + iterator.hasNext_0() && (sb.string += ', ...' , sb); + sb.string += '>'; + throw toJs(new IllegalArgumentException_0(sb.string)); +} + +function indexOf_2(iterator, predicate){ + var current, i; + checkNotNull_0(predicate, 'predicate'); + for (i = 0; iterator.hasNext_0(); i++) { + current = iterator.next_1(); + if (predicate.apply_1(current)) { + return i; + } + } + return -1; +} + +function size_24(iterator){ + var count; + count = 0; + while (iterator.hasNext_0()) { + iterator.next_1(); + count = add_20(count, 1); + } + return saturatedCast(count); +} + +function toString_25(iterator){ + var first, sb; + sb = $append_5(new StringBuilder, 91); + first = true; + while (iterator.hasNext_0()) { + first || (sb.string += ', ' , sb); + first = false; + $append_10(sb, iterator.next_1()); + } + return (sb.string += ']' , sb).string; +} + +function transform_2(fromIterator, function_0){ + checkNotNull(function_0); + return new Iterators$6(fromIterator, function_0); +} + +function unmodifiableIterator(iterator){ + var result; + checkNotNull(iterator); + if (instanceOf(iterator, 198)) { + result = castTo(iterator, 198); + return result; + } + return new Iterators$1(iterator); +} + +function Iterators$1(val$iterator){ + this.val$iterator1 = val$iterator; +} + +defineClass(1071, 198, $intern_3, Iterators$1); +_.hasNext_0 = function hasNext_8(){ + return this.val$iterator1.hasNext_0(); +} +; +_.next_1 = function next_9(){ + return this.val$iterator1.next_1(); +} +; +var Lcom_google_common_collect_Iterators$1_2_classLit = createForClass('com.google.common.collect', 'Iterators/1', 1071); +function Iterators$5(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; +} + +defineClass(1072, 699, $intern_3, Iterators$5); +_.computeNext = function computeNext(){ + var element; + while (this.val$unfiltered1.hasNext_0()) { + element = this.val$unfiltered1.next_1(); + if (this.val$retainIfTrue2.apply_1(element)) { + return element; + } + } + return this.state = 2 , null; +} +; +var Lcom_google_common_collect_Iterators$5_2_classLit = createForClass('com.google.common.collect', 'Iterators/5', 1072); +function TransformedIterator(backingIterator){ + this.backingIterator = castTo(checkNotNull(backingIterator), 47); +} + +defineClass(487, 1, $intern_6); +_.forEachRemaining = function forEachRemaining_8(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_9(){ + return this.backingIterator.hasNext_0(); +} +; +_.next_1 = function next_10(){ + return this.transform_0(this.backingIterator.next_1()); +} +; +_.remove = function remove_30(){ + this.backingIterator.remove(); +} +; +var Lcom_google_common_collect_TransformedIterator_2_classLit = createForClass('com.google.common.collect', 'TransformedIterator', 487); +function Iterators$6($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1073, 487, $intern_6, Iterators$6); +_.transform_0 = function transform_3(from){ + return this.val$function2.apply_0(from); +} +; +var Lcom_google_common_collect_Iterators$6_2_classLit = createForClass('com.google.common.collect', 'Iterators/6', 1073); +function Iterators$9(val$value){ + this.val$value1 = val$value; +} + +defineClass(717, 198, $intern_3, Iterators$9); +_.hasNext_0 = function hasNext_10(){ + return !this.done_0; +} +; +_.next_1 = function next_11(){ + if (this.done_0) { + throw toJs(new NoSuchElementException); + } + this.done_0 = true; + return this.val$value1; +} +; +_.done_0 = false; +var Lcom_google_common_collect_Iterators$9_2_classLit = createForClass('com.google.common.collect', 'Iterators/9', 717); +function $clinit_Iterators$ArrayItr(){ + $clinit_Iterators$ArrayItr = emptyMethod; + EMPTY_1 = new Iterators$ArrayItr(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1)); +} + +function Iterators$ArrayItr(array){ + AbstractIndexedListIterator_0.call(this, 0, 0); + this.array = array; + this.offset = 0; +} + +defineClass(1070, 386, $intern_4, Iterators$ArrayItr); +_.get_0 = function get_23(index_0){ + return this.array[this.offset + index_0]; +} +; +_.offset = 0; +var EMPTY_1; +var Lcom_google_common_collect_Iterators$ArrayItr_2_classLit = createForClass('com.google.common.collect', 'Iterators/ArrayItr', 1070); +function $getTopMetaIterator(this$static){ + while (!this$static.topMetaIterator || !this$static.topMetaIterator.hasNext_0()) { + if (!!this$static.metaIterators && !$isEmpty(this$static.metaIterators)) { + this$static.topMetaIterator = castTo($removeFirst(this$static.metaIterators), 47); + } + else { + return null; + } + } + return this$static.topMetaIterator; +} + +function $hasNext_1(this$static){ + var topConcat; + while (!castTo(checkNotNull(this$static.iterator), 47).hasNext_0()) { + this$static.topMetaIterator = $getTopMetaIterator(this$static); + if (!this$static.topMetaIterator) { + return false; + } + this$static.iterator = castTo(this$static.topMetaIterator.next_1(), 47); + if (instanceOf(this$static.iterator, 39)) { + topConcat = castTo(this$static.iterator, 39); + this$static.iterator = topConcat.iterator; + !this$static.metaIterators && (this$static.metaIterators = new ArrayDeque); + $addFirst(this$static.metaIterators, this$static.topMetaIterator); + if (topConcat.metaIterators) { + while (!$isEmpty(topConcat.metaIterators)) { + $addFirst(this$static.metaIterators, castTo($removeLast(topConcat.metaIterators), 47)); + } + } + this$static.topMetaIterator = topConcat.topMetaIterator; + } + } + return true; +} + +function $next_0(this$static){ + if ($hasNext_1(this$static)) { + this$static.toRemove = this$static.iterator; + return this$static.iterator.next_1(); + } + else { + throw toJs(new NoSuchElementException); + } +} + +function Iterators$ConcatenatedIterator(metaIterator){ + this.iterator = ($clinit_Iterators$ArrayItr() , EMPTY_1); + this.topMetaIterator = castTo(checkNotNull(metaIterator), 47); +} + +defineClass(39, 1, {39:1, 47:1}, Iterators$ConcatenatedIterator); +_.forEachRemaining = function forEachRemaining_9(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_11(){ + return $hasNext_1(this); +} +; +_.next_1 = function next_12(){ + return $next_0(this); +} +; +_.remove = function remove_31(){ + checkState_0(!!this.toRemove); + this.toRemove.remove(); + this.toRemove = null; +} +; +var Lcom_google_common_collect_Iterators$ConcatenatedIterator_2_classLit = createForClass('com.google.common.collect', 'Iterators/ConcatenatedIterator', 39); +function $compareTo(this$static, other){ + return this$static.ordinal - other.ordinal; +} + +function $name(this$static){ + return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; +} + +function $toString_3(this$static){ + return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; +} + +function Enum(name_0, ordinal){ + this.name_0 = name_0; + this.ordinal = ordinal; +} + +function createValueOfMap(enumConstants){ + var result, value_0, value$array, value$index, value$max; + result = {}; + for (value$array = enumConstants , value$index = 0 , value$max = value$array.length; value$index < value$max; ++value$index) { + value_0 = value$array[value$index]; + result[':' + (value_0.name_0 != null?value_0.name_0:'' + value_0.ordinal)] = value_0; + } + return result; +} + +function valueOf(map_0, name_0){ + var result; + checkCriticalNotNull(name_0); + result = map_0[':' + name_0]; + checkCriticalArgument_1(!!result, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [name_0])); + return result; +} + +function valueOf_0(enumType, name_0){ + var enumValueOfFunc; + enumValueOfFunc = (checkCriticalNotNull(enumType) , enumType).enumValueOfFunc; + checkCriticalArgument(!!enumValueOfFunc); + checkCriticalNotNull(name_0); + return enumValueOfFunc(name_0); +} + +defineClass(22, 1, {3:1, 35:1, 22:1}); +_.compareTo_0 = function compareTo_3(other){ + return $compareTo(this, castTo(other, 22)); +} +; +_.equals_0 = function equals_24(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_26(){ + return getHashCode_0(this); +} +; +_.toString_0 = function toString_26(){ + return $toString_3(this); +} +; +_.ordinal = 0; +var Ljava_lang_Enum_2_classLit = createForClass('java.lang', 'Enum', 22); +function $clinit_Iterators$EmptyModifiableIterator(){ + $clinit_Iterators$EmptyModifiableIterator = emptyMethod; + INSTANCE_2 = new Iterators$EmptyModifiableIterator; +} + +function Iterators$EmptyModifiableIterator(){ + Enum.call(this, 'INSTANCE', 0); +} + +function valueOf_1(name_0){ + $clinit_Iterators$EmptyModifiableIterator(); + return valueOf(($clinit_Iterators$EmptyModifiableIterator$Map() , $MAP), name_0); +} + +function values_12(){ + $clinit_Iterators$EmptyModifiableIterator(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]); +} + +defineClass(538, 22, {538:1, 3:1, 35:1, 22:1, 47:1}, Iterators$EmptyModifiableIterator); +_.forEachRemaining = function forEachRemaining_10(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_12(){ + return false; +} +; +_.next_1 = function next_13(){ + throw toJs(new NoSuchElementException); +} +; +_.remove = function remove_32(){ + checkState_0(false); +} +; +var INSTANCE_2; +var Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit = createForEnum('com.google.common.collect', 'Iterators/EmptyModifiableIterator', 538, Ljava_lang_Enum_2_classLit, values_12, valueOf_1); +function $clinit_Iterators$EmptyModifiableIterator$Map(){ + $clinit_Iterators$EmptyModifiableIterator$Map = emptyMethod; + $MAP = createValueOfMap(($clinit_Iterators$EmptyModifiableIterator() , stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]))); +} + +var $MAP; +function LinkedHashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1834, 619, $intern_5); +var Lcom_google_common_collect_LinkedHashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimapGwtSerializationDependencies', 1834); +function LinkedHashMultimap(){ + LinkedHashMultimapGwtSerializationDependencies.call(this, new LinkedHashMap_0(capacity_0(16))); + checkNonnegative(2, 'expectedValuesPerKey'); + this.valueSetCapacity = 2; + this.multimapHeaderEntry = new LinkedHashMultimap$ValueEntry(null, null, 0, null); + succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); +} + +function succeedsInMultimap(pred, succ){ + pred.successorInMultimap = succ; + succ.predecessorInMultimap = pred; +} + +function succeedsInValueSet(pred, succ){ + pred.setSuccessorInValueSet(succ); + succ.setPredecessorInValueSet(pred); +} + +defineClass(1835, 1834, $intern_5, LinkedHashMultimap); +_.createCollection = function createCollection_7(){ + return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); +} +; +_.clear_0 = function clear_21(){ + $clear(this); + succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); +} +; +_.createCollection_1 = function createCollection_8(){ + return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); +} +; +_.createCollection_0 = function createCollection_9(key){ + return new LinkedHashMultimap$ValueSet(this, key, this.valueSetCapacity); +} +; +_.entryIterator = function entryIterator_4(){ + return new LinkedHashMultimap$1(this); +} +; +_.entrySpliterator = function entrySpliterator_3(){ + var result; + return new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17); +} +; +_.keySet_0 = function keySet_12(){ + var result; + return result = this.keySet , !result?(this.keySet = new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result; +} +; +_.valueIterator_0 = function valueIterator_0(){ + return new Maps$2(new LinkedHashMultimap$1(this)); +} +; +_.valueSpliterator = function valueSpliterator_0(){ + var result; + return map_2(new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17), new LinkedHashMultimap$0methodref$getValue$Type); +} +; +_.valueSetCapacity = 2; +var Lcom_google_common_collect_LinkedHashMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap', 1835); +function LinkedHashMultimap$0methodref$getValue$Type(){ +} + +defineClass(1838, 1, {}, LinkedHashMultimap$0methodref$getValue$Type); +_.apply_0 = function apply_13(arg0){ + return castTo(arg0, 42).getValue(); +} +; +var Lcom_google_common_collect_LinkedHashMultimap$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/0methodref$getValue$Type', 1838); +function $next_1(this$static){ + var result; + if (this$static.nextEntry == this$static.this$01.multimapHeaderEntry) { + throw toJs(new NoSuchElementException); + } + result = this$static.nextEntry; + this$static.toRemove = result; + this$static.nextEntry = this$static.nextEntry.successorInMultimap; + return result; +} + +function LinkedHashMultimap$1(this$0){ + this.this$01 = this$0; + this.nextEntry = this.this$01.multimapHeaderEntry.successorInMultimap; +} + +defineClass(824, 1, $intern_6, LinkedHashMultimap$1); +_.forEachRemaining = function forEachRemaining_11(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_14(){ + return $next_1(this); +} +; +_.hasNext_0 = function hasNext_13(){ + return this.nextEntry != this.this$01.multimapHeaderEntry; +} +; +_.remove = function remove_33(){ + checkState_0(!!this.toRemove); + $remove_0(this.this$01, this.toRemove.key, this.toRemove.value_0); + this.toRemove = null; +} +; +var Lcom_google_common_collect_LinkedHashMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/1', 824); +function LinkedHashMultimap$ValueEntry(key, value_0, smearedValueHash, nextInValueBucket){ + ImmutableEntry.call(this, key, value_0); + this.smearedValueHash = smearedValueHash; + this.nextInValueBucket = nextInValueBucket; +} + +defineClass(330, 238, {345:1, 238:1, 330:1, 2020:1, 3:1, 42:1}, LinkedHashMultimap$ValueEntry); +_.getSuccessorInValueSet = function getSuccessorInValueSet(){ + return this.successorInValueSet; +} +; +_.setPredecessorInValueSet = function setPredecessorInValueSet(entry){ + this.predecessorInValueSet = entry; +} +; +_.setSuccessorInValueSet = function setSuccessorInValueSet(entry){ + this.successorInValueSet = entry; +} +; +_.smearedValueHash = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueEntry', 330); +function $rehashIfNecessary_0(this$static){ + var bucket, entry, hashTable, mask, valueEntry; + if (needsResizing(this$static.size_0, this$static.hashTable.length)) { + hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, this$static.hashTable.length * 2, 0, 1); + this$static.hashTable = hashTable; + mask = hashTable.length - 1; + for (entry = this$static.firstEntry; entry != this$static; entry = entry.getSuccessorInValueSet()) { + valueEntry = castTo(entry, 330); + bucket = valueEntry.smearedValueHash & mask; + valueEntry.nextInValueBucket = hashTable[bucket]; + hashTable[bucket] = valueEntry; + } + } +} + +function $remove_3(this$static, o){ + var bucket, entry, prev, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); + bucket = smearedHash & this$static.hashTable.length - 1; + prev = null; + for (entry = this$static.hashTable[bucket]; entry; prev = entry , entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { + !prev?(this$static.hashTable[bucket] = entry.nextInValueBucket):(prev.nextInValueBucket = entry.nextInValueBucket); + succeedsInValueSet(entry.predecessorInValueSet, entry.successorInValueSet); + succeedsInMultimap(entry.predecessorInMultimap, entry.successorInMultimap); + --this$static.size_0; + ++this$static.modCount; + return true; + } + } + return false; +} + +function LinkedHashMultimap$ValueSet(this$0, key, expectedValues){ + var hashTable, tableSize; + this.this$01 = this$0; + this.key = key; + this.firstEntry = this; + this.lastEntry = this; + tableSize = closedTableSize(expectedValues); + hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, tableSize, 0, 1); + this.hashTable = hashTable; +} + +defineClass(1836, 1970, {2020:1, 20:1, 28:1, 14:1, 21:1}, LinkedHashMultimap$ValueSet); +_.add_2 = function add_10(value_0){ + var bucket, entry, newEntry, rowHead, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); + bucket = smearedHash & this.hashTable.length - 1; + rowHead = this.hashTable[bucket]; + for (entry = rowHead; entry; entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, value_0)) { + return false; + } + } + newEntry = new LinkedHashMultimap$ValueEntry(this.key, value_0, smearedHash, rowHead); + succeedsInValueSet(this.lastEntry, newEntry); + newEntry.successorInValueSet = this; + this.lastEntry = newEntry; + succeedsInMultimap(this.this$01.multimapHeaderEntry.predecessorInMultimap, newEntry); + succeedsInMultimap(newEntry, this.this$01.multimapHeaderEntry); + this.hashTable[bucket] = newEntry; + ++this.size_0; + ++this.modCount; + $rehashIfNecessary_0(this); + return true; +} +; +_.clear_0 = function clear_22(){ + var entry, valueEntry; + fill_2(this.hashTable, null); + this.size_0 = 0; + for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { + valueEntry = castTo(entry, 330); + succeedsInMultimap(valueEntry.predecessorInMultimap, valueEntry.successorInMultimap); + } + this.firstEntry = this; + this.lastEntry = this; + ++this.modCount; +} +; +_.contains = function contains_20(o){ + var entry, smearedHash; + smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); + for (entry = this.hashTable[smearedHash & this.hashTable.length - 1]; entry; entry = entry.nextInValueBucket) { + if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { + return true; + } + } + return false; +} +; +_.forEach_0 = function forEach_12(action){ + var entry; + checkNotNull(action); + for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { + action.accept(castTo(entry, 330).value_0); + } +} +; +_.getSuccessorInValueSet = function getSuccessorInValueSet_0(){ + return this.firstEntry; +} +; +_.iterator_0 = function iterator_32(){ + return new LinkedHashMultimap$ValueSet$1(this); +} +; +_.remove_1 = function remove_34(o){ + return $remove_3(this, o); +} +; +_.setPredecessorInValueSet = function setPredecessorInValueSet_0(entry){ + this.lastEntry = entry; +} +; +_.setSuccessorInValueSet = function setSuccessorInValueSet_0(entry){ + this.firstEntry = entry; +} +; +_.size_1 = function size_25(){ + return this.size_0; +} +; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueSet_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet', 1836); +function $checkForComodification(this$static){ + if (this$static.this$11.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function LinkedHashMultimap$ValueSet$1(this$1){ + this.this$11 = this$1; + this.nextEntry = this.this$11.firstEntry; + this.expectedModCount = this.this$11.modCount; +} + +defineClass(1837, 1, $intern_6, LinkedHashMultimap$ValueSet$1); +_.forEachRemaining = function forEachRemaining_12(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_14(){ + return $checkForComodification(this) , this.nextEntry != this.this$11; +} +; +_.next_1 = function next_15(){ + var entry, result; + $checkForComodification(this); + if (this.nextEntry == this.this$11) { + throw toJs(new NoSuchElementException); + } + entry = castTo(this.nextEntry, 330); + result = entry.value_0; + this.toRemove = entry; + this.nextEntry = entry.successorInValueSet; + return result; +} +; +_.remove = function remove_35(){ + $checkForComodification(this); + checkState_0(!!this.toRemove); + $remove_3(this.this$11, this.toRemove.value_0); + this.expectedModCount = this.this$11.modCount; + this.toRemove = null; +} +; +_.expectedModCount = 0; +var Lcom_google_common_collect_LinkedHashMultimap$ValueSet$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet/1', 1837); +function $addNode(this$static, key, value_0, nextSibling){ + var keyList, keyTail, node; + node = new LinkedListMultimap$Node(key, value_0); + if (!this$static.head) { + this$static.head = this$static.tail = node; + $put_6(this$static.keyToKeyList, key, new LinkedListMultimap$KeyList(node)); + ++this$static.modCount; + } + else if (!nextSibling) { + this$static.tail.next_0 = node; + node.previous = this$static.tail; + this$static.tail = node; + keyList = castTo($get_10(this$static.keyToKeyList, key), 283); + if (!keyList) { + $put_6(this$static.keyToKeyList, key, keyList = new LinkedListMultimap$KeyList(node)); + ++this$static.modCount; + } + else { + ++keyList.count; + keyTail = keyList.tail; + keyTail.nextSibling = node; + node.previousSibling = keyTail; + keyList.tail = node; + } + } + else { + keyList = castTo($get_10(this$static.keyToKeyList, key), 283); + ++keyList.count; + node.previous = nextSibling.previous; + node.previousSibling = nextSibling.previousSibling; + node.next_0 = nextSibling; + node.nextSibling = nextSibling; + !nextSibling.previousSibling?(castTo($get_10(this$static.keyToKeyList, key), 283).head = node):(nextSibling.previousSibling.nextSibling = node); + !nextSibling.previous?(this$static.head = node):(nextSibling.previous.next_0 = node); + nextSibling.previous = node; + nextSibling.previousSibling = node; + } + ++this$static.size_0; + return node; +} + +function $clear_3(this$static){ + this$static.head = null; + this$static.tail = null; + $reset(this$static.keyToKeyList); + this$static.size_0 = 0; + ++this$static.modCount; +} + +function $containsKey_1(this$static, key){ + return $containsKey_3(this$static.keyToKeyList, key); +} + +function $removeAll_2(this$static, key){ + var oldValues; + oldValues = unmodifiableList(newArrayList_0(new LinkedListMultimap$ValueForKeyIterator(this$static, key))); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this$static, key)); + return oldValues; +} + +function $removeNode(this$static, node){ + var keyList; + node.previous?(node.previous.next_0 = node.next_0):(this$static.head = node.next_0); + node.next_0?(node.next_0.previous = node.previous):(this$static.tail = node.previous); + if (!node.previousSibling && !node.nextSibling) { + keyList = castTo($remove_6(this$static.keyToKeyList, node.key), 283); + keyList.count = 0; + ++this$static.modCount; + } + else { + keyList = castTo($get_10(this$static.keyToKeyList, node.key), 283); + --keyList.count; + !node.previousSibling?(keyList.head = node.nextSibling):(node.previousSibling.nextSibling = node.nextSibling); + !node.nextSibling?(keyList.tail = node.previousSibling):(node.nextSibling.previousSibling = node.previousSibling); + } + --this$static.size_0; +} + +function LinkedListMultimap(){ + this.keyToKeyList = new HashMap_0(capacity_0(12)); +} + +function checkElement(node){ + if (!node) { + throw toJs(new NoSuchElementException); + } +} + +defineClass(766, 1986, $intern_5, LinkedListMultimap); +_.asMap_0 = function asMap_4(){ + var result; + return result = this.asMap , !result?(this.asMap = new Multimaps$AsMap(this)):result; +} +; +_.equals_0 = function equals_25(object){ + return equalsImpl_1(this, object); +} +; +_.get_1 = function get_24(key){ + return new LinkedListMultimap$1(this, key); +} +; +_.removeAll = function removeAll_6(key){ + return $removeAll_2(this, key); +} +; +_.clear_0 = function clear_23(){ + $clear_3(this); +} +; +_.containsKey = function containsKey_7(key){ + return $containsKey_1(this, key); +} +; +_.createAsMap = function createAsMap_0(){ + return new Multimaps$AsMap(this); +} +; +_.createKeySet = function createKeySet_8(){ + return new LinkedListMultimap$1KeySetImpl(this); +} +; +_.get_2 = function get_25(key){ + return new LinkedListMultimap$1(this, key); +} +; +_.isEmpty = function isEmpty_14(){ + return !this.head; +} +; +_.removeAll_0 = function removeAll_7(key){ + return $removeAll_2(this, key); +} +; +_.size_1 = function size_26(){ + return this.size_0; +} +; +_.modCount = 0; +_.size_0 = 0; +var Lcom_google_common_collect_LinkedListMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap', 766); +function $equals_2(this$static, o){ + var elem, elem$iterator, elemOther, iterOther, other; + if (maskUndefined(o) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(o, 15)) { + return false; + } + other = castTo(o, 15); + if (this$static.size_1() != other.size_1()) { + return false; + } + iterOther = other.iterator_0(); + for (elem$iterator = this$static.iterator_0(); elem$iterator.hasNext_0();) { + elem = elem$iterator.next_1(); + elemOther = iterOther.next_1(); + if (!(maskUndefined(elem) === maskUndefined(elemOther) || elem != null && equals_Ljava_lang_Object__Z__devirtual$(elem, elemOther))) { + return false; + } + } + return true; +} + +function $indexOf(this$static, toFind){ + var i, n; + for (i = 0 , n = this$static.size_1(); i < n; ++i) { + if (equals_57(toFind, this$static.get_0(i))) { + return i; + } + } + return -1; +} + +defineClass(52, 28, $intern_37); +_.sort_0 = function sort_2(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_23(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.add_3 = function add_11(index_0, element){ + throw toJs(new UnsupportedOperationException_0('Add not supported on this list')); +} +; +_.add_2 = function add_12(obj){ + this.add_3(this.size_1(), obj); + return true; +} +; +_.addAll_0 = function addAll_8(index_0, c){ + var changed, e, e$iterator; + checkCriticalNotNull(c); + changed = false; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + this.add_3(index_0++, e); + changed = true; + } + return changed; +} +; +_.clear_0 = function clear_24(){ + this.removeRange(0, this.size_1()); +} +; +_.equals_0 = function equals_26(o){ + return $equals_2(this, o); +} +; +_.hashCode_1 = function hashCode_27(){ + return hashCode_48(this); +} +; +_.indexOf_0 = function indexOf_3(toFind){ + return $indexOf(this, toFind); +} +; +_.iterator_0 = function iterator_33(){ + return new AbstractList$IteratorImpl(this); +} +; +_.listIterator_0 = function listIterator_4(){ + return this.listIterator_1(0); +} +; +_.listIterator_1 = function listIterator_5(from){ + return new AbstractList$ListIteratorImpl(this, from); +} +; +_.remove_2 = function remove_36(index_0){ + throw toJs(new UnsupportedOperationException_0('Remove not supported on this list')); +} +; +_.removeRange = function removeRange(fromIndex, endIndex){ + var i, iter; + iter = this.listIterator_1(fromIndex); + for (i = fromIndex; i < endIndex; ++i) { + iter.next_1(); + iter.remove(); + } +} +; +_.set_2 = function set_5(index_0, o){ + throw toJs(new UnsupportedOperationException_0('Set not supported on this list')); +} +; +_.subList = function subList_5(fromIndex, toIndex){ + return new AbstractList$SubList(this, fromIndex, toIndex); +} +; +_.modCount = 0; +var Ljava_util_AbstractList_2_classLit = createForClass('java.util', 'AbstractList', 52); +function $add_0(this$static, index_0, element){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(element); +} + +function $addAll_0(this$static, index_0, c){ + var e, e$iterator, iter, modified; + checkCriticalNotNull(c); + modified = false; + iter = this$static.listIterator_1(index_0); + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + iter.add_1(e); + modified = true; + } + return modified; +} + +function $get_7(this$static, index_0){ + var iter; + iter = this$static.listIterator_1(index_0); + try { + return iter.next_1(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't get element " + index_0)); + } + else + throw toJs($e0); + } +} + +function $remove_4(this$static, index_0){ + var iter, old; + iter = this$static.listIterator_1(index_0); + try { + old = iter.next_1(); + iter.remove(); + return old; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't remove element " + index_0)); + } + else + throw toJs($e0); + } +} + +defineClass(1964, 52, $intern_37); +_.add_3 = function add_13(index_0, element){ + $add_0(this, index_0, element); +} +; +_.addAll_0 = function addAll_9(index_0, c){ + return $addAll_0(this, index_0, c); +} +; +_.get_0 = function get_26(index_0){ + return $get_7(this, index_0); +} +; +_.iterator_0 = function iterator_34(){ + return this.listIterator_1(0); +} +; +_.remove_2 = function remove_37(index_0){ + return $remove_4(this, index_0); +} +; +_.set_2 = function set_6(index_0, element){ + var iter, old; + iter = this.listIterator_1(index_0); + try { + old = iter.next_1(); + iter.set_1(element); + return old; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't set element " + index_0)); + } + else + throw toJs($e0); + } +} +; +var Ljava_util_AbstractSequentialList_2_classLit = createForClass('java.util', 'AbstractSequentialList', 1964); +function $listIterator_0(this$static, index_0){ + return new LinkedListMultimap$ValueForKeyIterator_0(this$static.this$01, this$static.val$key2, index_0); +} + +function LinkedListMultimap$1(this$0, val$key){ + this.this$01 = this$0; + this.val$key2 = val$key; +} + +defineClass(636, 1964, $intern_37, LinkedListMultimap$1); +_.listIterator_1 = function listIterator_6(index_0){ + return $listIterator_0(this, index_0); +} +; +_.size_1 = function size_27(){ + var keyList; + keyList = castTo($get_10(this.this$01.keyToKeyList, this.val$key2), 283); + return !keyList?0:keyList.count; +} +; +var Lcom_google_common_collect_LinkedListMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1', 636); +function LinkedListMultimap$1KeySetImpl(this$0){ + this.this$01 = this$0; +} + +defineClass(1297, 1970, $intern_10, LinkedListMultimap$1KeySetImpl); +_.contains = function contains_21(key){ + return $containsKey_1(this.this$01, key); +} +; +_.iterator_0 = function iterator_35(){ + return new LinkedListMultimap$DistinctKeyIterator(this.this$01); +} +; +_.remove_1 = function remove_38(o){ + return !$removeAll_2(this.this$01, o).list.isEmpty(); +} +; +_.size_1 = function size_28(){ + return $size_2(this.this$01.keyToKeyList); +} +; +var Lcom_google_common_collect_LinkedListMultimap$1KeySetImpl_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1KeySetImpl', 1297); +function $checkForConcurrentModification(this$static){ + if (this$static.this$01.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function LinkedListMultimap$DistinctKeyIterator(this$0){ + this.this$01 = this$0; + this.seenKeys = new HashSet_0(capacity_0($keySet(this.this$01).size_1())); + this.next_0 = this.this$01.head; + this.expectedModCount = this.this$01.modCount; +} + +defineClass(1296, 1, $intern_6, LinkedListMultimap$DistinctKeyIterator); +_.forEachRemaining = function forEachRemaining_13(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_15(){ + $checkForConcurrentModification(this); + return !!this.next_0; +} +; +_.next_1 = function next_16(){ + $checkForConcurrentModification(this); + checkElement(this.next_0); + this.current = this.next_0; + $add_6(this.seenKeys, this.current.key); + do { + this.next_0 = this.next_0.next_0; + } + while (!!this.next_0 && !$add_6(this.seenKeys, this.next_0.key)); + return this.current.key; +} +; +_.remove = function remove_39(){ + $checkForConcurrentModification(this); + checkState_0(!!this.current); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this.this$01, this.current.key)); + this.current = null; + this.expectedModCount = this.this$01.modCount; +} +; +_.expectedModCount = 0; +var Lcom_google_common_collect_LinkedListMultimap$DistinctKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/DistinctKeyIterator', 1296); +function LinkedListMultimap$KeyList(firstNode){ + this.head = firstNode; + this.tail = firstNode; + firstNode.previousSibling = null; + firstNode.nextSibling = null; + this.count = 1; +} + +defineClass(283, 1, {283:1}, LinkedListMultimap$KeyList); +_.count = 0; +var Lcom_google_common_collect_LinkedListMultimap$KeyList_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/KeyList', 283); +function LinkedListMultimap$Node(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(1295, 345, $intern_15, LinkedListMultimap$Node); +_.getKey = function getKey_3(){ + return this.key; +} +; +_.getValue = function getValue_5(){ + return this.value_0; +} +; +_.setValue = function setValue_6(newValue){ + var result; + result = this.value_0; + this.value_0 = newValue; + return result; +} +; +var Lcom_google_common_collect_LinkedListMultimap$Node_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/Node', 1295); +function $next_2(this$static){ + checkElement(this$static.next_0); + this$static.previous = this$static.current = this$static.next_0; + this$static.next_0 = this$static.next_0.nextSibling; + ++this$static.nextIndex; + return this$static.current.value_0; +} + +function $previous(this$static){ + checkElement(this$static.previous); + this$static.next_0 = this$static.current = this$static.previous; + this$static.previous = this$static.previous.previousSibling; + --this$static.nextIndex; + return this$static.current.value_0; +} + +function LinkedListMultimap$ValueForKeyIterator(this$0, key){ + var keyList; + this.this$01 = this$0; + this.key = key; + keyList = castTo($get_10(this$0.keyToKeyList, key), 283); + this.next_0 = !keyList?null:keyList.head; +} + +function LinkedListMultimap$ValueForKeyIterator_0(this$0, key, index_0){ + var keyList, size_0; + this.this$01 = this$0; + keyList = castTo($get_10(this$0.keyToKeyList, key), 283); + size_0 = !keyList?0:keyList.count; + checkPositionIndex(index_0, size_0); + if (index_0 >= (size_0 / 2 | 0)) { + this.previous = !keyList?null:keyList.tail; + this.nextIndex = size_0; + while (index_0++ < size_0) { + $previous(this); + } + } + else { + this.next_0 = !keyList?null:keyList.head; + while (index_0-- > 0) { + $next_2(this); + } + } + this.key = key; + this.current = null; +} + +defineClass(560, 1, $intern_14, LinkedListMultimap$ValueForKeyIterator, LinkedListMultimap$ValueForKeyIterator_0); +_.forEachRemaining = function forEachRemaining_14(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_14(value_0){ + this.previous = $addNode(this.this$01, this.key, value_0, this.next_0); + ++this.nextIndex; + this.current = null; +} +; +_.hasNext_0 = function hasNext_16(){ + return !!this.next_0; +} +; +_.hasPrevious = function hasPrevious_1(){ + return !!this.previous; +} +; +_.next_1 = function next_17(){ + return $next_2(this); +} +; +_.nextIndex_0 = function nextIndex_2(){ + return this.nextIndex; +} +; +_.previous_0 = function previous_2(){ + return $previous(this); +} +; +_.previousIndex = function previousIndex_1(){ + return this.nextIndex - 1; +} +; +_.remove = function remove_40(){ + checkState_0(!!this.current); + if (this.current != this.next_0) { + this.previous = this.current.previousSibling; + --this.nextIndex; + } + else { + this.next_0 = this.current.nextSibling; + } + $removeNode(this.this$01, this.current); + this.current = null; +} +; +_.set_1 = function set_7(value_0){ + checkState(!!this.current); + this.current.value_0 = value_0; +} +; +_.nextIndex = 0; +var Lcom_google_common_collect_LinkedListMultimap$ValueForKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/ValueForKeyIterator', 560); +function computeArrayListCapacity(arraySize){ + checkNonnegative(arraySize, 'arraySize'); + return saturatedCast(add_20(add_20(5, arraySize), arraySize / 10 | 0)); +} + +function equalsImpl(thisList, other){ + var i, otherList, size_0; + if (maskUndefined(other) === maskUndefined(checkNotNull(thisList))) { + return true; + } + if (!instanceOf(other, 15)) { + return false; + } + otherList = castTo(other, 15); + size_0 = thisList.size_1(); + if (size_0 != otherList.size_1()) { + return false; + } + if (instanceOf(otherList, 54)) { + for (i = 0; i < size_0; i++) { + if (!equal(thisList.get_0(i), otherList.get_0(i))) { + return false; + } + } + return true; + } + else { + return elementsEqual(thisList.iterator_0(), otherList.iterator_0()); + } +} + +function hashCodeImpl(list){ + var hashCode, o, o$iterator; + hashCode = 1; + for (o$iterator = list.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + hashCode = 31 * hashCode + (o == null?0:hashCode__I__devirtual$(o)); + hashCode = ~~hashCode; + } + return hashCode; +} + +function indexOfRandomAccess(list, element){ + var i, size_0; + size_0 = list.size_1(); + if (element == null) { + for (i = 0; i < size_0; i++) { + if (list.get_0(i) == null) { + return i; + } + } + } + else { + for (i = 0; i < size_0; i++) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, list.get_0(i))) { + return i; + } + } + } + return -1; +} + +function newArrayList(elements){ + checkNotNull(elements); + return instanceOf(elements, 14)?new ArrayList_1(castTo(elements, 14)):newArrayList_0(elements.iterator_0()); +} + +function newArrayList_0(elements){ + var list; + list = new ArrayList; + addAll_7(list, elements); + return list; +} + +function newArrayList_1(elements){ + var capacity, list; + checkNotNull(elements); + capacity = computeArrayListCapacity(elements.length); + list = new ArrayList_0(capacity); + addAll_15(list, elements); + return list; +} + +function newArrayListWithCapacity(initialArraySize){ + checkNonnegative(initialArraySize, 'initialArraySize'); + return new ArrayList_0(initialArraySize); +} + +function newArrayListWithExpectedSize(estimatedSize){ + return new ArrayList_0((checkNonnegative(estimatedSize, 'arraySize') , saturatedCast(add_20(add_20(5, estimatedSize), estimatedSize / 10 | 0)))); +} + +function newLinkedList(elements){ + var list; + list = new LinkedList; + addAll_6(list, elements); + return list; +} + +function reverse_0(list){ + return instanceOf(list, 152)?$reverse(castTo(list, 152)):instanceOf(list, 131)?castTo(list, 131).forwardList:instanceOf(list, 54)?new Lists$RandomAccessReverseList(list):new Lists$ReverseList(list); +} + +defineClass(1018, 52, $intern_37); +_.add_3 = function add_15(index_0, element){ + this.backingList.add_3(index_0, element); +} +; +_.addAll_0 = function addAll_10(index_0, c){ + return this.backingList.addAll_0(index_0, c); +} +; +_.contains = function contains_22(o){ + return this.backingList.contains(o); +} +; +_.get_0 = function get_27(index_0){ + return this.backingList.get_0(index_0); +} +; +_.remove_2 = function remove_41(index_0){ + return this.backingList.remove_2(index_0); +} +; +_.set_2 = function set_8(index_0, element){ + return this.backingList.set_2(index_0, element); +} +; +_.size_1 = function size_29(){ + return this.backingList.size_1(); +} +; +var Lcom_google_common_collect_Lists$AbstractListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/AbstractListWrapper', 1018); +defineClass(1019, 1018, $intern_38); +var Lcom_google_common_collect_Lists$RandomAccessListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessListWrapper', 1019); +function Lists$1($anonymous0){ + this.backingList = castTo(checkNotNull($anonymous0), 15); +} + +defineClass(1021, 1019, $intern_38, Lists$1); +_.listIterator_1 = function listIterator_7(index_0){ + return this.backingList.listIterator_1(index_0); +} +; +var Lcom_google_common_collect_Lists$1_2_classLit = createForClass('com.google.common.collect', 'Lists/1', 1021); +function $listIterator_1(this$static, index_0){ + var forwardIterator, start_0; + start_0 = $reversePosition(this$static, index_0); + forwardIterator = this$static.forwardList.listIterator_1(start_0); + return new Lists$ReverseList$1(this$static, forwardIterator); +} + +function $reverseIndex(this$static, index_0){ + var size_0; + size_0 = this$static.forwardList.size_1(); + checkElementIndex(index_0, size_0); + return size_0 - 1 - index_0; +} + +function $reversePosition(this$static, index_0){ + var size_0; + size_0 = this$static.forwardList.size_1(); + checkPositionIndex(index_0, size_0); + return size_0 - index_0; +} + +function Lists$ReverseList(forwardList){ + this.forwardList = castTo(checkNotNull(forwardList), 15); +} + +defineClass(131, 52, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Lists$ReverseList); +_.add_3 = function add_16(index_0, element){ + this.forwardList.add_3($reversePosition(this, index_0), element); +} +; +_.clear_0 = function clear_25(){ + this.forwardList.clear_0(); +} +; +_.get_0 = function get_28(index_0){ + return this.forwardList.get_0($reverseIndex(this, index_0)); +} +; +_.iterator_0 = function iterator_36(){ + return $listIterator_1(this, 0); +} +; +_.listIterator_1 = function listIterator_8(index_0){ + return $listIterator_1(this, index_0); +} +; +_.remove_2 = function remove_42(index_0){ + return this.forwardList.remove_2($reverseIndex(this, index_0)); +} +; +_.removeRange = function removeRange_0(fromIndex, toIndex){ + (checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex)))).clear_0(); +} +; +_.set_2 = function set_9(index_0, element){ + return this.forwardList.set_2($reverseIndex(this, index_0), element); +} +; +_.size_1 = function size_30(){ + return this.forwardList.size_1(); +} +; +_.subList = function subList_6(fromIndex, toIndex){ + return checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex))); +} +; +var Lcom_google_common_collect_Lists$ReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList', 131); +function Lists$RandomAccessReverseList(forwardList){ + Lists$ReverseList.call(this, forwardList); +} + +defineClass(280, 131, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, Lists$RandomAccessReverseList); +var Lcom_google_common_collect_Lists$RandomAccessReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessReverseList', 280); +function $next_3(this$static){ + if (!this$static.val$forwardIterator2.hasPrevious()) { + throw toJs(new NoSuchElementException); + } + this$static.canRemoveOrSet = true; + return this$static.val$forwardIterator2.previous_0(); +} + +function Lists$ReverseList$1(this$1, val$forwardIterator){ + this.this$11 = this$1; + this.val$forwardIterator2 = val$forwardIterator; +} + +defineClass(1020, 1, $intern_14, Lists$ReverseList$1); +_.forEachRemaining = function forEachRemaining_15(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_17(e){ + this.val$forwardIterator2.add_1(e); + this.val$forwardIterator2.previous_0(); + this.canRemoveOrSet = false; +} +; +_.hasNext_0 = function hasNext_17(){ + return this.val$forwardIterator2.hasPrevious(); +} +; +_.hasPrevious = function hasPrevious_2(){ + return this.val$forwardIterator2.hasNext_0(); +} +; +_.next_1 = function next_18(){ + return $next_3(this); +} +; +_.nextIndex_0 = function nextIndex_3(){ + return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()); +} +; +_.previous_0 = function previous_3(){ + if (!this.val$forwardIterator2.hasNext_0()) { + throw toJs(new NoSuchElementException); + } + this.canRemoveOrSet = true; + return this.val$forwardIterator2.next_1(); +} +; +_.previousIndex = function previousIndex_2(){ + return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()) - 1; +} +; +_.remove = function remove_43(){ + checkState_0(this.canRemoveOrSet); + this.val$forwardIterator2.remove(); + this.canRemoveOrSet = false; +} +; +_.set_1 = function set_10(e){ + checkState(this.canRemoveOrSet); + this.val$forwardIterator2.set_1(e); +} +; +_.canRemoveOrSet = false; +var Lcom_google_common_collect_Lists$ReverseList$1_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList/1', 1020); +function asMapEntryIterator(set_0, function_0){ + return new Maps$3(set_0.iterator_0(), function_0); +} + +function capacity_0(expectedSize){ + if (expectedSize < 3) { + checkNonnegative(expectedSize, 'expectedSize'); + return expectedSize + 1; + } + if (expectedSize < $intern_35) { + return round_int(expectedSize / 0.75 + 1); + } + return $intern_0; +} + +function equalsImpl_0(map_0, object){ + var o; + if (map_0 === object) { + return true; + } + else if (instanceOf(object, 83)) { + o = castTo(object, 83); + return equalsImpl_3($entrySet_1(map_0), o.entrySet_0()); + } + return false; +} + +function indexMap(list){ + var builder, e, e$iterator, i; + builder = new ImmutableMap$Builder(list.delegateList_0().size_1()); + i = 0; + for (e$iterator = unmodifiableIterator(list.delegateList_0().iterator_0()); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $put_4(builder, e, valueOf_4(i++)); + } + return fromEntryList(builder.entries_0); +} + +function keyOrNull(entry){ + return !entry?null:entry.key; +} + +function safeContainsKey(map_0, key){ + checkNotNull(map_0); + try { + return map_0.containsKey(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function safeGet(map_0, key){ + checkNotNull(map_0); + try { + return map_0.get_3(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return null; + } + else + throw toJs($e0); + } +} + +function safeRemove_0(map_0, key){ + checkNotNull(map_0); + try { + return map_0.remove_0(key); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + return null; + } + else + throw toJs($e0); + } +} + +function toStringImpl(map_0){ + var entry, entry$iterator, first, sb; + sb = $append_5((checkNonnegative(map_0.size_1(), 'size') , new StringBuilder_0), 123); + first = true; + for (entry$iterator = $entrySet_1(map_0).iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + first || (sb.string += ', ' , sb); + first = false; + $append_10($append_5($append_10(sb, entry.getKey()), 61), entry.getValue()); + } + return (sb.string += '}' , sb).string; +} + +function valueOrNull(entry){ + return !entry?null:entry.value_0; +} + +function $transform(entry){ + return castTo(entry, 42).getKey(); +} + +function Maps$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(432, 487, $intern_6, Maps$1); +_.transform_0 = function transform_4(entry){ + return $transform(entry); +} +; +var Lcom_google_common_collect_Maps$1_2_classLit = createForClass('com.google.common.collect', 'Maps/1', 432); +function Maps$2($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(698, 487, $intern_6, Maps$2); +_.transform_0 = function transform_5(entry){ + return castTo(entry, 42).getValue(); +} +; +var Lcom_google_common_collect_Maps$2_2_classLit = createForClass('com.google.common.collect', 'Maps/2', 698); +function Maps$3($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(962, 487, $intern_6, Maps$3); +_.transform_0 = function transform_6(key){ + return new ImmutableEntry(key, $apply_0(this.val$function2, key)); +} +; +var Lcom_google_common_collect_Maps$3_2_classLit = createForClass('com.google.common.collect', 'Maps/3', 962); +function Maps$IteratorBasedAbstractMap$1(this$1){ + this.this$11 = this$1; +} + +defineClass(959, 1971, $intern_10, Maps$IteratorBasedAbstractMap$1); +_.forEach_0 = function forEach_13(action){ + $forEachEntry_0(this.this$11, action); +} +; +_.iterator_0 = function iterator_37(){ + return this.this$11.entryIterator(); +} +; +_.map_1 = function map_3(){ + return this.this$11; +} +; +_.spliterator_0 = function spliterator_24(){ + return this.this$11.entrySpliterator(); +} +; +var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap$1_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap/1', 959); +function Maps$KeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(960, 1, {}, Maps$KeySet$lambda$0$Type); +_.accept_1 = function accept_10(arg0, arg1){ + this.action_0.accept(arg0); +} +; +var Lcom_google_common_collect_Maps$KeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet/lambda$0$Type', 960); +function Maps$Values(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 83); +} + +defineClass(958, 28, $intern_8, Maps$Values); +_.clear_0 = function clear_26(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_23(o){ + return this.map_0.containsValue(o); +} +; +_.forEach_0 = function forEach_14(action){ + checkNotNull(action); + this.map_0.forEach(new Maps$Values$lambda$0$Type(action)); +} +; +_.isEmpty = function isEmpty_15(){ + return this.map_0.isEmpty(); +} +; +_.iterator_0 = function iterator_38(){ + return new Maps$2(this.map_0.entrySet_0().iterator_0()); +} +; +_.remove_1 = function remove_44(o){ + var entry, entry$iterator; + try { + return $advanceToFind(this, o, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 41)) { + for (entry$iterator = this.map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if (equal(o, entry.getValue())) { + this.map_0.remove_0(entry.getKey()); + return true; + } + } + return false; + } + else + throw toJs($e0); + } +} +; +_.size_1 = function size_31(){ + return this.map_0.size_1(); +} +; +var Lcom_google_common_collect_Maps$Values_2_classLit = createForClass('com.google.common.collect', 'Maps/Values', 958); +function Maps$Values$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(961, 1, {}, Maps$Values$lambda$0$Type); +_.accept_1 = function accept_11(arg0, arg1){ + this.action_0.accept(arg1); +} +; +var Lcom_google_common_collect_Maps$Values$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/Values/lambda$0$Type', 961); +function equalsImpl_1(multimap, object){ + var that; + if (object === multimap) { + return true; + } + if (instanceOf(object, 224)) { + that = castTo(object, 224); + return equals_Ljava_lang_Object__Z__devirtual$(multimap.asMap_0(), that.asMap_0()); + } + return false; +} + +function $removeValuesForKey_0(this$static, key){ + this$static.multimap.keySet_0().remove_1(key); +} + +function Multimaps$AsMap(multimap){ + this.multimap = castTo(checkNotNull(multimap), 224); +} + +defineClass(736, 1987, $intern_7, Multimaps$AsMap); +_.get_3 = function get_29(key){ + return this.multimap.containsKey(key)?this.multimap.get_1(key):null; +} +; +_.remove_0 = function remove_45(key){ + return this.multimap.containsKey(key)?this.multimap.removeAll(key):null; +} +; +_.clear_0 = function clear_27(){ + this.multimap.clear_0(); +} +; +_.containsKey = function containsKey_8(key){ + return this.multimap.containsKey(key); +} +; +_.createEntrySet_0 = function createEntrySet_1(){ + return new Multimaps$AsMap$EntrySet(this); +} +; +_.createEntrySet = function(){ + return this.createEntrySet_0(); +} +; +_.isEmpty = function isEmpty_16(){ + return this.multimap.isEmpty(); +} +; +_.keySet_0 = function keySet_13(){ + return this.multimap.keySet_0(); +} +; +_.size_1 = function size_32(){ + return this.multimap.keySet_0().size_1(); +} +; +var Lcom_google_common_collect_Multimaps$AsMap_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap', 736); +function Multimaps$AsMap$EntrySet(this$1){ + this.this$11 = this$1; +} + +defineClass(1104, 1971, $intern_10, Multimaps$AsMap$EntrySet); +_.iterator_0 = function iterator_39(){ + return asMapEntryIterator(this.this$11.multimap.keySet_0(), new Multimaps$AsMap$EntrySet$1(this)); +} +; +_.map_1 = function map_4(){ + return this.this$11; +} +; +_.remove_1 = function remove_46(o){ + var entry; + if (!$contains(this, o)) { + return false; + } + entry = castTo(o, 42); + $removeValuesForKey_0(this.this$11, entry.getKey()); + return true; +} +; +var Lcom_google_common_collect_Multimaps$AsMap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet', 1104); +function $apply_0(this$static, key){ + return this$static.this$21.this$11.multimap.get_1(key); +} + +function Multimaps$AsMap$EntrySet$1(this$2){ + this.this$21 = this$2; +} + +defineClass(1108, 1, {}, Multimaps$AsMap$EntrySet$1); +_.apply_0 = function apply_14(key){ + return $apply_0(this, key); +} +; +_.equals_0 = function equals_27(other){ + return this === other; +} +; +var Lcom_google_common_collect_Multimaps$AsMap$EntrySet$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet/1', 1108); +function $count(this$static, element){ + var values; + values = castTo(safeGet($asMap(this$static.multimap), element), 14); + return !values?0:values.size_1(); +} + +function $remove_5(this$static, element, occurrences){ + var i, iterator, oldCount, values, values0; + checkNonnegative(occurrences, 'occurrences'); + if (occurrences == 0) { + return values0 = castTo(safeGet($asMap(this$static.multimap), element), 14) , !values0?0:values0.size_1(); + } + values = castTo(safeGet($asMap(this$static.multimap), element), 14); + if (!values) { + return 0; + } + oldCount = values.size_1(); + if (occurrences >= oldCount) { + values.clear_0(); + } + else { + iterator = values.iterator_0(); + for (i = 0; i < occurrences; i++) { + iterator.next_1(); + iterator.remove(); + } + } + return oldCount; +} + +function Multimaps$Keys(multimap){ + this.multimap = multimap; +} + +defineClass(543, 1989, {543:1, 835:1, 20:1, 28:1, 14:1}, Multimaps$Keys); +_.clear_0 = function clear_28(){ + $clear(this.multimap); +} +; +_.contains = function contains_24(element){ + return $containsKey(this.multimap, element); +} +; +_.forEach_0 = function forEach_15(consumer){ + checkNotNull(consumer); + $forEach_0($entries(this.multimap), new Multimaps$Keys$lambda$1$Type(consumer)); +} +; +_.iterator_0 = function iterator_40(){ + return new Maps$1($entries(this.multimap).this$01.entryIterator()); +} +; +_.size_1 = function size_33(){ + return this.multimap.totalSize; +} +; +_.spliterator_0 = function spliterator_25(){ + return map_2($entries(this.multimap).spliterator_0(), new Multimaps$Keys$0methodref$getKey$Type); +} +; +var Lcom_google_common_collect_Multimaps$Keys_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys', 543); +function Multimaps$Keys$0methodref$getKey$Type(){ +} + +defineClass(1106, 1, {}, Multimaps$Keys$0methodref$getKey$Type); +_.apply_0 = function apply_15(arg0){ + return castTo(arg0, 42).getKey(); +} +; +var Lcom_google_common_collect_Multimaps$Keys$0methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/0methodref$getKey$Type', 1106); +function Multimaps$Keys$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1105, 487, $intern_6, Multimaps$Keys$1); +_.transform_0 = function transform_7(backingEntry){ + return new Multimaps$Keys$1$1(castTo(backingEntry, 42)); +} +; +var Lcom_google_common_collect_Multimaps$Keys$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1', 1105); +defineClass(1990, 1, {416:1}); +_.equals_0 = function equals_28(object){ + var that; + if (instanceOf(object, 492)) { + that = castTo(object, 416); + return castTo(this.val$backingEntry2.getValue(), 14).size_1() == castTo(that.val$backingEntry2.getValue(), 14).size_1() && equal(this.val$backingEntry2.getKey(), that.val$backingEntry2.getKey()); + } + return false; +} +; +_.hashCode_1 = function hashCode_28(){ + var e; + e = this.val$backingEntry2.getKey(); + return (e == null?0:hashCode__I__devirtual$(e)) ^ castTo(this.val$backingEntry2.getValue(), 14).size_1(); +} +; +_.toString_0 = function toString_27(){ + var n, text_0; + text_0 = valueOf_7(this.val$backingEntry2.getKey()); + n = castTo(this.val$backingEntry2.getValue(), 14).size_1(); + return n == 1?text_0:text_0 + ' x ' + n; +} +; +var Lcom_google_common_collect_Multisets$AbstractEntry_2_classLit = createForClass('com.google.common.collect', 'Multisets/AbstractEntry', 1990); +function Multimaps$Keys$1$1(val$backingEntry){ + this.val$backingEntry2 = val$backingEntry; +} + +defineClass(492, 1990, {492:1, 416:1}, Multimaps$Keys$1$1); +var Lcom_google_common_collect_Multimaps$Keys$1$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1/1', 492); +function Multimaps$Keys$lambda$1$Type(consumer_0){ + this.consumer_0 = consumer_0; +} + +defineClass(1107, 1, $intern_19, Multimaps$Keys$lambda$1$Type); +_.accept = function accept_12(arg0){ + this.consumer_0.accept(castTo(arg0, 42).getKey()); +} +; +var Lcom_google_common_collect_Multimaps$Keys$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/lambda$1$Type', 1107); +function Multiset$lambda$0$Type(){ +} + +defineClass(1110, 1, $intern_19, Multiset$lambda$0$Type); +_.accept = function accept_13(arg0){ + lambda$0_1(castTo(arg0, 416)); +} +; +var Lcom_google_common_collect_Multiset$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$0$Type', 1110); +function Multiset$lambda$1$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(737, 1, $intern_19, Multiset$lambda$1$Type); +_.accept = function accept_14(arg0){ + lambda$1_1(this.action_0, castTo(arg0, 416)); +} +; +var Lcom_google_common_collect_Multiset$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$1$Type', 737); +function addAllImpl(elements){ + if ($entrySet_0(elements).isEmpty()) { + return false; + } + $forEachEntry(elements, new Multisets$0methodref$add$Type); + return true; +} + +function equalsImpl_2(multiset, object){ + var entry, entry$iterator, that; + if (object === multiset) { + return true; + } + if (instanceOf(object, 543)) { + that = castTo(object, 835); + if (multiset.multimap.totalSize != that.multimap.totalSize || $entrySet_0(multiset).size_1() != $entrySet_0(that).size_1()) { + return false; + } + for (entry$iterator = $entrySet_0(that).iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 416); + if ($count(multiset, entry.val$backingEntry2.getKey()) != castTo(entry.val$backingEntry2.getValue(), 14).size_1()) { + return false; + } + } + return true; + } + return false; +} + +function lambda$3(entry_0){ + return new Spliterators$IteratorSpliterator(nCopies(castTo(entry_0.val$backingEntry2.getValue(), 14).size_1(), entry_0.val$backingEntry2.getKey()), 16); +} + +function setCountImpl(self_0, element, oldCount){ + var values, oldCount_0, values_0, delta; + checkNonnegative(oldCount, 'oldCount'); + checkNonnegative(0, 'newCount'); + values = castTo(safeGet($asMap(self_0.multimap), element), 14); + if ((!values?0:values.size_1()) == oldCount) { + checkNonnegative(0, 'count'); + oldCount_0 = (values_0 = castTo(safeGet($asMap(self_0.multimap), element), 14) , !values_0?0:values_0.size_1()); + delta = -oldCount_0; + delta > 0?$add():delta < 0 && $remove_5(self_0, element, -delta); + return true; + } + else { + return false; + } +} + +function Multisets$0methodref$add$Type(){ +} + +defineClass(1111, 1, {}, Multisets$0methodref$add$Type); +var Lcom_google_common_collect_Multisets$0methodref$add$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/0methodref$add$Type', 1111); +function Multisets$lambda$3$Type(){ +} + +defineClass(738, 1, {}, Multisets$lambda$3$Type); +_.apply_0 = function apply_16(arg0){ + return lambda$3(castTo(arg0, 416)); +} +; +var Lcom_google_common_collect_Multisets$lambda$3$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/lambda$3$Type', 738); +defineClass(2008, 1, $intern_1); +var Lcom_google_common_collect_RangeGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'RangeGwtSerializationDependencies', 2008); +function $clinit_Range(){ + $clinit_Range = emptyMethod; + new Range_0(($clinit_Cut$BelowAll() , INSTANCE_1), ($clinit_Cut$AboveAll() , INSTANCE_0)); +} + +function $apply_1(this$static, input_0){ + return checkNotNull(input_0) , this$static.lowerBound.isLessThan(input_0) && !this$static.upperBound.isLessThan(input_0); +} + +function Range_0(lowerBound, upperBound){ + this.lowerBound = castTo(checkNotNull(lowerBound), 245); + this.upperBound = castTo(checkNotNull(upperBound), 245); + if (lowerBound.compareTo(upperBound) > 0 || lowerBound == ($clinit_Cut$AboveAll() , INSTANCE_0) || upperBound == ($clinit_Cut$BelowAll() , INSTANCE_1)) { + throw toJs(new IllegalArgumentException_0('Invalid range: ' + toString_29(lowerBound, upperBound))); + } +} + +function closed_0(lower, upper){ + $clinit_Range(); + return new Range_0(new Cut$BelowValue(lower), new Cut$AboveValue(upper)); +} + +function toString_29(lowerBound, upperBound){ + var sb; + sb = new StringBuilder_0; + lowerBound.describeAsLowerBound(sb); + sb.string += '..'; + upperBound.describeAsUpperBound(sb); + return sb.string; +} + +defineClass(514, 2008, {169:1, 514:1, 3:1, 45:1}, Range_0); +_.apply_1 = function apply_17(input_0){ + return $apply_1(this, castTo(input_0, 35)); +} +; +_.test_0 = function test_1(input_0){ + return $apply_1(this, castTo(input_0, 35)); +} +; +_.equals_0 = function equals_29(object){ + var other; + if (instanceOf(object, 514)) { + other = castTo(object, 514); + return $equals_1(this.lowerBound, other.lowerBound) && $equals_1(this.upperBound, other.upperBound); + } + return false; +} +; +_.hashCode_1 = function hashCode_29(){ + return this.lowerBound.hashCode_1() * 31 + this.upperBound.hashCode_1(); +} +; +_.toString_0 = function toString_28(){ + return toString_29(this.lowerBound, this.upperBound); +} +; +var Lcom_google_common_collect_Range_2_classLit = createForClass('com.google.common.collect', 'Range', 514); +function RegularImmutableAsList(delegate, delegateList){ + this.delegate = delegate; + this.delegateList = delegateList; +} + +function RegularImmutableAsList_0(delegate, array){ + $clinit_ImmutableList(); + RegularImmutableAsList.call(this, delegate, unsafeDelegateList(new Arrays$ArrayList(array))); +} + +defineClass(778, 1999, $intern_26, RegularImmutableAsList_0); +_.listIterator_1 = function listIterator_10(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +_.delegateCollection = function delegateCollection_0(){ + return this.delegate; +} +; +_.get_0 = function get_30(index_0){ + return $get_2(this.delegateList, index_0); +} +; +_.listIterator_2 = function listIterator_9(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +var Lcom_google_common_collect_RegularImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableAsList', 778); +function RegularImmutableList(delegate){ + this.delegate = ($clinit_Collections() , instanceOf(delegate, 54)?new Collections$UnmodifiableRandomAccessList(delegate):new Collections$UnmodifiableList(delegate)); +} + +defineClass(646, 2006, $intern_26, RegularImmutableList); +_.delegateList_0 = function delegateList_0(){ + return this.delegate; +} +; +var Lcom_google_common_collect_RegularImmutableList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableList', 646); +function RegularImmutableMap(entries){ + ForwardingImmutableMap.call(this, entries); +} + +defineClass(616, 715, $intern_28, RegularImmutableMap); +var Lcom_google_common_collect_RegularImmutableMap_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableMap', 616); +function $clinit_RegularImmutableSet(){ + $clinit_RegularImmutableSet = emptyMethod; + $clinit_ImmutableCollection(); + EMPTY_2 = new RegularImmutableSet(($clinit_Collections() , $clinit_Collections() , EMPTY_SET)); +} + +function RegularImmutableSet(delegate){ + $clinit_RegularImmutableSet(); + ForwardingImmutableSet.call(this, delegate); +} + +defineClass(716, 703, $intern_30, RegularImmutableSet); +var EMPTY_2; +var Lcom_google_common_collect_RegularImmutableSet_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableSet', 716); +function equalsImpl_3(s, object){ + var o; + if (maskUndefined(s) === maskUndefined(object)) { + return true; + } + if (instanceOf(object, 21)) { + o = castTo(object, 21); + try { + return s.size_1() == o.size_1() && s.containsAll(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 173) || instanceOf($e0, 205)) { + return false; + } + else + throw toJs($e0); + } + } + return false; +} + +function hashCodeImpl_0(s){ + var hashCode, o, o$iterator; + hashCode = 0; + for (o$iterator = s.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + hashCode += o != null?hashCode__I__devirtual$(o):0; + hashCode = ~~hashCode; + } + return hashCode; +} + +function intersection_0(set1, set2){ + checkNotNull_0(set1, 'set1'); + checkNotNull_0(set2, 'set2'); + return new Sets$2(set1, set2); +} + +function newHashSet(elements){ + return instanceOf(elements, 14)?new HashSet_1(castTo(elements, 14)):newHashSet_0(elements.iterator_0()); +} + +function newHashSet_0(elements){ + var set_0; + set_0 = new HashSet; + addAll_7(set_0, elements); + return set_0; +} + +function newHashSet_1(elements){ + var set_0; + set_0 = new HashSet_0(capacity_0(elements.length)); + addAll_15(set_0, elements); + return set_0; +} + +function newLinkedHashSet(elements){ + var set_0; + if (elements) { + return new LinkedHashSet_1(elements); + } + set_0 = new LinkedHashSet; + addAll_6(set_0, elements); + return set_0; +} + +function newTreeSet(elements){ + var set_0; + set_0 = new TreeSet; + addAll_6(set_0, elements); + return set_0; +} + +function unmodifiableNavigableSet(set_0){ + if (instanceOf(set_0, 607)) { + return set_0; + } + return new Sets$UnmodifiableNavigableSet(set_0); +} + +defineClass(1976, $intern_9, $intern_10); +_.iterator_0 = function iterator_41(){ + return new Sets$2$1(this.val$set11, this.val$set22); +} +; +_.add_2 = function add_18(e){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_11(newElements){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_29(){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_47(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lcom_google_common_collect_Sets$SetView_2_classLit = createForClass('com.google.common.collect', 'Sets/SetView', 1976); +function $size_1(this$static){ + var e, e$iterator, size_0; + size_0 = 0; + for (e$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this$static.val$set11); e$iterator.i < e$iterator.this$11.all.length;) { + e = $next_8(e$iterator); + this$static.val$set22.contains(e) && ++size_0; + } + return size_0; +} + +function Sets$2(val$set1, val$set2){ + this.val$set11 = val$set1; + this.val$set22 = val$set2; +} + +defineClass(963, 1976, $intern_10, Sets$2); +_.iterator_0 = function iterator_42(){ + return new Sets$2$1(this.val$set11, this.val$set22); +} +; +_.contains = function contains_25(object){ + return $contains_5(this.val$set11, object) && this.val$set22.contains(object); +} +; +_.containsAll = function containsAll_6(collection){ + return $containsAll(this.val$set11, collection) && this.val$set22.containsAll(collection); +} +; +_.isEmpty = function isEmpty_17(){ + return disjoint(this.val$set22, this.val$set11); +} +; +_.parallelStream = function parallelStream_1(){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$5methodref$contains$Type(this.val$set22)); +} +; +_.size_1 = function size_34(){ + return $size_1(this); +} +; +_.stream = function stream_2(){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$4methodref$contains$Type(this.val$set22)); +} +; +var Lcom_google_common_collect_Sets$2_2_classLit = createForClass('com.google.common.collect', 'Sets/2', 963); +function Sets$2$1(val$set1, val$set2){ + this.val$set12 = val$set1; + this.val$set23 = val$set2; + this.itr = new EnumSet$EnumSetImpl$IteratorImpl(this.val$set12); +} + +defineClass(700, 699, $intern_3, Sets$2$1); +_.computeNext = function computeNext_0(){ + var e; + while ($hasNext_4(this.itr)) { + e = $next_8(this.itr); + if (this.val$set23.contains(e)) { + return e; + } + } + return this.state = 2 , null; +} +; +var Lcom_google_common_collect_Sets$2$1_2_classLit = createForClass('com.google.common.collect', 'Sets/2/1', 700); +function Sets$2$4methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(964, 1, $intern_39, Sets$2$4methodref$contains$Type); +_.test_0 = function test_2(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$4methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/4methodref$contains$Type', 964); +function Sets$2$5methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(965, 1, $intern_39, Sets$2$5methodref$contains$Type); +_.test_0 = function test_3(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$5methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/5methodref$contains$Type', 965); +function Sets$UnmodifiableNavigableSet(delegate){ + this.delegate = castTo(checkNotNull(delegate), 271); + this.unmodifiableDelegate = ($clinit_Collections() , new Collections$UnmodifiableSortedSet(delegate)); +} + +defineClass(607, 1975, {607:1, 3:1, 20:1, 14:1, 271:1, 21:1, 84:1}, Sets$UnmodifiableNavigableSet); +_.delegate_0 = function delegate_9(){ + return this.unmodifiableDelegate; +} +; +_.delegate_1 = function delegate_10(){ + return this.unmodifiableDelegate; +} +; +_.delegate_2 = function delegate_11(){ + return this.unmodifiableDelegate; +} +; +_.forEach_0 = function forEach_16(action){ + this.delegate.forEach_0(action); +} +; +_.parallelStream = function parallelStream_2(){ + return this.delegate.parallelStream(); +} +; +_.stream = function stream_3(){ + return this.delegate.stream(); +} +; +var Lcom_google_common_collect_Sets$UnmodifiableNavigableSet_2_classLit = createForClass('com.google.common.collect', 'Sets/UnmodifiableNavigableSet', 607); +function SingletonImmutableBiMap(key, value_0){ + ImmutableBiMap.call(this, singletonMap(checkNotNull(key), checkNotNull(value_0))); + this.singleValue = value_0; +} + +defineClass(1932, 1931, $intern_28, SingletonImmutableBiMap); +_.values_2 = function values_13(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_0 = function values_14(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +_.values_1 = function values_15(){ + return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); +} +; +var Lcom_google_common_collect_SingletonImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableBiMap', 1932); +function SingletonImmutableList(element){ + $clinit_ImmutableList(); + this.delegate = ($clinit_Collections() , new Collections$SingletonList(checkNotNull(element))); +} + +defineClass(647, 2006, $intern_26, SingletonImmutableList); +_.delegateList_0 = function delegateList_1(){ + return this.delegate; +} +; +var Lcom_google_common_collect_SingletonImmutableList_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableList', 647); +function SingletonImmutableSet(element){ + $clinit_ImmutableCollection(); + this.element = checkNotNull(element); +} + +defineClass(350, 1981, $intern_30, SingletonImmutableSet); +_.iterator_0 = function iterator_44(){ + return new Iterators$9(this.element); +} +; +_.contains = function contains_26(object){ + return equals_Ljava_lang_Object__Z__devirtual$(this.element, object); +} +; +_.iterator_1 = function iterator_43(){ + return new Iterators$9(this.element); +} +; +_.size_1 = function size_35(){ + return 1; +} +; +var Lcom_google_common_collect_SingletonImmutableSet_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableSet', 350); +function concat_1(streams){ + var characteristics, estimatedSize, isParallel, splitr, splitrsBuilder, stream, stream$array, stream$index, stream$max; + isParallel = false; + characteristics = 336; + estimatedSize = 0; + splitrsBuilder = new ImmutableList$Builder(streams.length); + for (stream$array = streams , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + isParallel = isParallel | ($throwIfTerminated(stream) , false); + splitr = ($terminate(stream) , stream.spliterator); + $add_3(splitrsBuilder.contents, checkNotNull(splitr)); + characteristics &= splitr.characteristics_0(); + estimatedSize = saturatedAdd(estimatedSize, splitr.estimateSize_0()); + } + return castTo(castTo($onClose(new StreamImpl(null, flatMap(new Spliterators$IteratorSpliterator(($clinit_ImmutableList() , copyFromCollection(splitrsBuilder.contents)), 16), new Streams$lambda$0$Type, characteristics, estimatedSize)), new Streams$lambda$1$Type(streams)), 670), 833); +} + +function lambda$1_2(streams_0){ + var stream, stream$array, stream$index, stream$max; + for (stream$array = streams_0 , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + $close(stream); + } +} + +function Streams$lambda$0$Type(){ +} + +defineClass(1115, 1, {}, Streams$lambda$0$Type); +_.apply_0 = function apply_18(arg0){ + return castTo(arg0, 164); +} +; +var Lcom_google_common_collect_Streams$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$0$Type', 1115); +function Streams$lambda$1$Type(streams_0){ + this.streams_0 = streams_0; +} + +defineClass(1116, 1, $intern_40, Streams$lambda$1$Type); +_.run = function run_0(){ + lambda$1_2(this.streams_0); +} +; +var Lcom_google_common_collect_Streams$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$1$Type', 1116); +function equalsImpl_4(table, obj){ + var result, result0, that; + if (obj === table) { + return true; + } + else if (instanceOf(obj, 664)) { + that = castTo(obj, 1947); + return $equals_0((result0 = table.cellSet , !result0?(table.cellSet = new AbstractTable$CellSet(table)):result0), (result = that.cellSet , !result?(that.cellSet = new AbstractTable$CellSet(that)):result)); + } + else { + return false; + } +} + +function TreeMultimap(keyComparator, valueComparator){ + AbstractSortedKeySortedSetMultimap.call(this, new TreeMap_0(keyComparator)); + this.keyComparator = keyComparator; + this.valueComparator = valueComparator; +} + +function create(keyComparator, valueComparator){ + return new TreeMultimap(castTo(checkNotNull(keyComparator), 62), castTo(checkNotNull(valueComparator), 62)); +} + +defineClass(1659, 1658, $intern_5, TreeMultimap); +_.asMap_0 = function asMap_5(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); +} +; +_.createCollection = function createCollection_10(){ + return new TreeSet_0(this.valueComparator); +} +; +_.createCollection_1 = function createCollection_11(){ + return new TreeSet_0(this.valueComparator); +} +; +_.keySet_0 = function keySet_14(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); +} +; +_.createAsMap = function createAsMap_1(){ + return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0); +} +; +_.createCollection_0 = function createCollection_12(key){ + key == null && this.keyComparator.compare_1(key, key); + return new TreeSet_0(this.valueComparator); +} +; +var Lcom_google_common_collect_TreeMultimap_2_classLit = createForClass('com.google.common.collect', 'TreeMultimap', 1659); +function $clinit_DoubleMath(){ + $clinit_DoubleMath = emptyMethod; + $wnd.Math.log(2); +} + +function fuzzyCompare(a, b){ + $clinit_DoubleMath(); + return checkNonNegative($intern_41) , $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b)?0:a < b?-1:a > b?1:compare_0(isNaN(a), isNaN(b)); +} + +function fuzzyEquals(a, b){ + $clinit_DoubleMath(); + checkNonNegative($intern_41); + return $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b); +} + +function saturatedAdd(a, b){ + var naiveSum; + naiveSum = add_20(a, b); + if (lt(xor_0(a, b), 0) | gte_0(xor_0(a, naiveSum), 0)) { + return naiveSum; + } + return add_20($intern_20, xor_0(shru_0(naiveSum, 63), 1)); +} + +function checkNonNegative(x_0){ + if (!(x_0 >= 0)) { + throw toJs(new IllegalArgumentException_0('tolerance (' + x_0 + ') must be >= 0')); + } + return x_0; +} + +function compare_0(a, b){ + return a == b?0:a?1:-1; +} + +function saturatedCast(value_0){ + if (compare_2(value_0, $intern_0) > 0) { + return $intern_0; + } + if (compare_2(value_0, $intern_42) < 0) { + return $intern_42; + } + return toInt_0(value_0); +} + +function $$init_0(this$static){ + this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); +} + +function $addSuppressed(this$static, exception){ + checkCriticalNotNull_0(exception, 'Cannot suppress a null exception.'); + checkCriticalArgument_0(exception != this$static, 'Exception can not suppress itself.'); + if (this$static.disableSuppression) { + return; + } + this$static.suppressedExceptions == null?(this$static.suppressedExceptions = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Throwable_2_classLit, 1), $intern_16, 78, 0, [exception])):(this$static.suppressedExceptions[this$static.suppressedExceptions.length] = exception); +} + +function $fillInStackTrace(this$static){ + if (this$static.writableStackTrace) { + this$static.backingJsObject !== '__noinit__' && this$static.initializeBackingError(); + this$static.stackTrace = null; + } + return this$static; +} + +function $linkBack(this$static, error){ + if (error instanceof Object) { + try { + error.__java$exception = this$static; + if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && $doc.documentMode < 9) { + return; + } + var throwable = this$static; + Object.defineProperties(error, {cause:{get:function(){ + var cause = throwable.getCause(); + return cause && cause.getBackingJsObject(); + } + }, suppressed:{get:function(){ + return throwable.getBackingSuppressed(); + } + }}); + } + catch (ignored) { + } + } +} + +function $printStackTraceImpl(this$static, out, ident){ + var t, t$array, t$index, t$max, theCause; + $printStackTraceItems(this$static); + for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this$static.suppressedExceptions) , t$index = 0 , t$max = t$array.length; t$index < t$max; ++t$index) { + t = t$array[t$index]; + $printStackTraceImpl(t, out, '\t' + ident); + } + theCause = this$static.cause_0; + !!theCause && $printStackTraceImpl(theCause, out, ident); +} + +function $printStackTraceItems(this$static){ + var element$array, element$index, element$max, stackTrace; + for (element$array = (this$static.stackTrace == null && (this$static.stackTrace = ($clinit_StackTraceCreator() , stackTrace = collector_1.getStackTrace(this$static) , dropInternalFrames(stackTrace))) , this$static.stackTrace) , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) + ; +} + +function $setBackingJsObject(this$static, backingJsObject){ + this$static.backingJsObject = backingJsObject; + $linkBack(this$static, backingJsObject); +} + +function $toString_4(this$static, message){ + var className; + className = $getName(this$static.___clazz); + return message == null?className:className + ': ' + message; +} + +function Throwable(){ + $$init_0(this); + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function Throwable_0(message){ + $$init_0(this); + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function Throwable_1(message, cause){ + $$init_0(this); + this.cause_0 = cause; + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function fixIE(e){ + if (!('stack' in e)) { + try { + throw e; + } + catch (ignored) { + } + } + return e; +} + +defineClass(78, 1, {3:1, 78:1}); +_.createError = function createError(msg){ + return new Error(msg); +} +; +_.getBackingJsObject = function getBackingJsObject(){ + return this.backingJsObject; +} +; +_.getBackingSuppressed = function getBackingSuppressed(){ + return $toArray_7($map_0(stream_4((this.suppressedExceptions == null && (this.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this.suppressedExceptions)), new Throwable$lambda$0$Type), new StreamImpl$0methodref$lambda$2$Type); +} +; +_.getCause = function getCause(){ + return this.cause_0; +} +; +_.getMessage = function getMessage(){ + return this.detailMessage; +} +; +_.initializeBackingError = function initializeBackingError(){ + $setBackingJsObject(this, fixIE(this.createError($toString_4(this, this.detailMessage)))); + captureStackTrace(this); +} +; +_.toString_0 = function toString_30(){ + return $toString_4(this, this.getMessage()); +} +; +_.backingJsObject = '__noinit__'; +_.disableSuppression = false; +_.writableStackTrace = true; +var Ljava_lang_Throwable_2_classLit = createForClass('java.lang', 'Throwable', 78); +defineClass(102, 78, {3:1, 102:1, 78:1}); +var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 102); +function RuntimeException(){ + Throwable.call(this); +} + +function RuntimeException_0(message){ + Throwable_0.call(this, message); +} + +defineClass(60, 102, $intern_43, RuntimeException, RuntimeException_0); +var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 60); +defineClass(598, 60, $intern_43); +var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 598); +defineClass(863, 598, $intern_43); +var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 863); +function $clinit_JavaScriptException(){ + $clinit_JavaScriptException = emptyMethod; + NOT_SET = new Object_0; +} + +function $ensureInit(this$static){ + var exception; + if (this$static.message_0 == null) { + exception = maskUndefined(this$static.e) === maskUndefined(NOT_SET)?null:this$static.e; + this$static.name_0 = exception == null?'null':instanceOfJso(exception)?getExceptionName0(castToJso(exception)):instanceOfString(exception)?'String':$getName(getClass__Ljava_lang_Class___devirtual$(exception)); + this$static.description = this$static.description + ': ' + (instanceOfJso(exception)?getExceptionDescription0(castToJso(exception)):exception + ''); + this$static.message_0 = '(' + this$static.name_0 + ') ' + this$static.description; + } +} + +function JavaScriptException(e){ + $clinit_JavaScriptException(); + $$init_0(this); + $fillInStackTrace(this); + this.backingJsObject = e; + $linkBack(this, e); + this.detailMessage = e == null?'null':toString_40(e); + this.description = ''; + this.e = e; + this.description = ''; +} + +function getExceptionDescription0(e){ + return e == null?null:e.message; +} + +function getExceptionName0(e){ + return e == null?null:e.name; +} + +defineClass(477, 863, {477:1, 3:1, 102:1, 60:1, 78:1}, JavaScriptException); +_.getMessage = function getMessage_0(){ + $ensureInit(this); + return this.message_0; +} +; +_.getThrown = function getThrown(){ + return maskUndefined(this.e) === maskUndefined(NOT_SET)?null:this.e; +} +; +var NOT_SET; +var Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptException', 477); +function $equals_3(this$static, other){ + return !!this$static && !!this$static.equals?this$static.equals(other):maskUndefined(this$static) === maskUndefined(other); +} + +function $hashCode(this$static){ + return !!this$static && !!this$static.hashCode?this$static.hashCode():getHashCode_0(this$static); +} + +var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); +function now_1(){ + if (Date.now) { + return Date.now(); + } + return (new Date).getTime(); +} + +function escapeChar(c, escapeTable){ + var lookedUp = escapeTable_0[c.charCodeAt(0)]; + return lookedUp == null?c:lookedUp; +} + +function escapeValue(toEscape){ + var escapeTable = (!escapeTable_0 && (escapeTable_0 = initEscapeTable()) , escapeTable_0); + var s = toEscape.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(x_0){ + return escapeChar(x_0, escapeTable); + } + ); + return '"' + s + '"'; +} + +function initEscapeTable(){ + var out = ['\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', '\\n', '\\u000B', '\\f', '\\r', '\\u000E', '\\u000F', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001A', '\\u001B', '\\u001C', '\\u001D', '\\u001E', '\\u001F']; + out[34] = '\\"'; + out[92] = '\\\\'; + out[173] = '\\u00ad'; + out[1536] = '\\u0600'; + out[1537] = '\\u0601'; + out[1538] = '\\u0602'; + out[1539] = '\\u0603'; + out[1757] = '\\u06dd'; + out[1807] = '\\u070f'; + out[6068] = '\\u17b4'; + out[6069] = '\\u17b5'; + out[8203] = '\\u200b'; + out[8204] = '\\u200c'; + out[8205] = '\\u200d'; + out[8206] = '\\u200e'; + out[8207] = '\\u200f'; + out[8232] = '\\u2028'; + out[8233] = '\\u2029'; + out[8234] = '\\u202a'; + out[8235] = '\\u202b'; + out[8236] = '\\u202c'; + out[8237] = '\\u202d'; + out[8238] = '\\u202e'; + out[8288] = '\\u2060'; + out[8289] = '\\u2061'; + out[8290] = '\\u2062'; + out[8291] = '\\u2063'; + out[8292] = '\\u2064'; + out[8298] = '\\u206a'; + out[8299] = '\\u206b'; + out[8300] = '\\u206c'; + out[8301] = '\\u206d'; + out[8302] = '\\u206e'; + out[8303] = '\\u206f'; + out[65279] = '\\ufeff'; + out[65529] = '\\ufff9'; + out[65530] = '\\ufffa'; + out[65531] = '\\ufffb'; + return out; +} + +var escapeTable_0; +defineClass(1948, 1, {}); +var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 1948); +function $clinit_Impl(){ + $clinit_Impl = emptyMethod; + !!($clinit_StackTraceCreator() , collector_1); +} + +function apply_19(jsFunction, thisObj, args){ + return jsFunction.apply(thisObj, args); + var __0; +} + +function enter_0(){ + var now_0; + if (entryDepth != 0) { + now_0 = now_1(); + if (now_0 - watchdogEntryDepthLastScheduled > 2000) { + watchdogEntryDepthLastScheduled = now_0; + watchdogEntryDepthTimerId = $wnd.setTimeout(watchdogEntryDepthRun, 10); + } + } + if (entryDepth++ == 0) { + $flushEntryCommands(($clinit_SchedulerImpl() , INSTANCE_3)); + return true; + } + return false; +} + +function entry_2(jsFunction){ + $clinit_Impl(); + return function(){ + return entry0_0(jsFunction, this, arguments); + var __0; + } + ; +} + +function entry0_0(jsFunction, thisObj, args){ + var initialEntry; + initialEntry = enter_0(); + try { + return apply_19(jsFunction, thisObj, args); + } + finally { + exit(initialEntry); + } +} + +function exit(initialEntry){ + initialEntry && $flushFinallyCommands(($clinit_SchedulerImpl() , INSTANCE_3)); + --entryDepth; + if (initialEntry) { + if (watchdogEntryDepthTimerId != -1) { + watchdogEntryDepthCancel(watchdogEntryDepthTimerId); + watchdogEntryDepthTimerId = -1; + } + } +} + +function reportToBrowser(e){ + $clinit_Impl(); + $wnd.setTimeout(function(){ + throw e; + } + , 0); +} + +function watchdogEntryDepthCancel(timerId){ + $wnd.clearTimeout(timerId); +} + +function watchdogEntryDepthRun(){ + entryDepth != 0 && (entryDepth = 0); + watchdogEntryDepthTimerId = -1; +} + +var entryDepth = 0, watchdogEntryDepthLastScheduled = 0, watchdogEntryDepthTimerId = -1; +function $clinit_SchedulerImpl(){ + $clinit_SchedulerImpl = emptyMethod; + INSTANCE_3 = new SchedulerImpl; +} + +function $flushEntryCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.entryCommands) { + rescheduled = null; + do { + oldQueue = this$static.entryCommands; + this$static.entryCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.entryCommands); + this$static.entryCommands = rescheduled; + } +} + +function $flushFinallyCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.finallyCommands) { + rescheduled = null; + do { + oldQueue = this$static.finallyCommands; + this$static.finallyCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.finallyCommands); + this$static.finallyCommands = rescheduled; + } +} + +function SchedulerImpl(){ +} + +function push_0(queue, task){ + !queue && (queue = []); + queue[queue.length] = task; + return queue; +} + +function runScheduledTasks(tasks, rescheduled){ + var e, i, j, t; + for (i = 0 , j = tasks.length; i < j; i++) { + t = tasks[i]; + try { + t[1]?t[0].$_nullMethod() && (rescheduled = push_0(rescheduled, t)):t[0].$_nullMethod(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + e = $e0; + $clinit_Impl(); + reportToBrowser(instanceOf(e, 477)?castTo(e, 477).getThrown():e); + } + else + throw toJs($e0); + } + } + return rescheduled; +} + +defineClass(890, 1948, {}, SchedulerImpl); +var INSTANCE_3; +var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 890); +function $clinit_StackTraceCreator(){ + $clinit_StackTraceCreator = emptyMethod; + var c, enforceLegacy; + enforceLegacy = !supportsErrorStack(); + c = new StackTraceCreator$CollectorModernNoSourceMap; + collector_1 = enforceLegacy?new StackTraceCreator$CollectorLegacy:c; +} + +function captureStackTrace(error){ + $clinit_StackTraceCreator(); + collector_1.collect(error); +} + +function dropInternalFrames(stackTrace){ + var dropFrameUntilFnName, dropFrameUntilFnName2, i, numberOfFramesToSearch; + dropFrameUntilFnName = 'captureStackTrace'; + dropFrameUntilFnName2 = 'initializeBackingError'; + numberOfFramesToSearch = $wnd.Math.min(stackTrace.length, 5); + for (i = numberOfFramesToSearch - 1; i >= 0; i--) { + if ($equals_5(stackTrace[i].methodName, dropFrameUntilFnName) || $equals_5(stackTrace[i].methodName, dropFrameUntilFnName2)) { + stackTrace.length >= i + 1 && stackTrace.splice(0, i + 1); + break; + } + } + return stackTrace; +} + +function extractFunctionName(fnName){ + var fnRE = /function(?:\s+([\w$]+))?\s*\(/; + var match_0 = fnRE.exec(fnName); + return match_0 && match_0[1] || 'anonymous'; +} + +function parseInt_0(number){ + $clinit_StackTraceCreator(); + return parseInt(number) || -1; +} + +function split_1(t){ + $clinit_StackTraceCreator(); + var e = t.backingJsObject; + if (e && e.stack) { + var stack_0 = e.stack; + var toString_0 = e + '\n'; + stack_0.substring(0, toString_0.length) == toString_0 && (stack_0 = stack_0.substring(toString_0.length)); + return stack_0.split('\n'); + } + return []; +} + +function supportsErrorStack(){ + if (Error.stackTraceLimit > 0) { + $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; + return true; + } + return 'stack' in new Error; +} + +var collector_1; +defineClass(1960, 1, {}); +var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 1960); +function StackTraceCreator$CollectorLegacy(){ +} + +defineClass(864, 1960, {}, StackTraceCreator$CollectorLegacy); +_.collect = function collect(error){ + var seen = {}, name_1; + var fnStack = []; + error['fnStack'] = fnStack; + var callee = arguments.callee.caller; + while (callee) { + var name_0 = ($clinit_StackTraceCreator() , callee.name || (callee.name = extractFunctionName(callee.toString()))); + fnStack.push(name_0); + var keyName = ':' + name_0; + var withThisName = seen[keyName]; + if (withThisName) { + var i, j; + for (i = 0 , j = withThisName.length; i < j; i++) { + if (withThisName[i] === callee) { + return; + } + } + } + (withThisName || (seen[keyName] = [])).push(callee); + callee = callee.caller; + } +} +; +_.getStackTrace = function getStackTrace(t){ + var i, length_0, stack_0, stackTrace; + stack_0 = ($clinit_StackTraceCreator() , t && t['fnStack']?t['fnStack']:[]); + length_0 = stack_0.length; + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, length_0, 0, 1); + for (i = 0; i < length_0; i++) { + stackTrace[i] = new StackTraceElement(stack_0[i], null, -1); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorLegacy_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorLegacy', 864); +function $parse(this$static, stString){ + var closeParen, col, endFileUrlIndex, fileName, index_0, lastColonIndex, line, location_0, toReturn; + location_0 = ''; + if (stString.length == 0) { + return this$static.createSte('Unknown', 'anonymous', -1, -1); + } + toReturn = $trim(stString); + $equals_5(toReturn.substr(0, 3), 'at ') && (toReturn = toReturn.substr(3)); + toReturn = toReturn.replace(/\[.*?\]/g, ''); + index_0 = toReturn.indexOf('('); + if (index_0 == -1) { + index_0 = toReturn.indexOf('@'); + if (index_0 == -1) { + location_0 = toReturn; + toReturn = ''; + } + else { + location_0 = $trim(toReturn.substr(index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + } + else { + closeParen = toReturn.indexOf(')', index_0); + location_0 = toReturn.substr(index_0 + 1, closeParen - (index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + index_0 = $indexOf_1(toReturn, fromCodePoint(46)); + index_0 != -1 && (toReturn = toReturn.substr(index_0 + 1)); + (toReturn.length == 0 || $equals_5(toReturn, 'Anonymous function')) && (toReturn = 'anonymous'); + lastColonIndex = $lastIndexOf(location_0, fromCodePoint(58)); + endFileUrlIndex = $lastIndexOf_0(location_0, fromCodePoint(58), lastColonIndex - 1); + line = -1; + col = -1; + fileName = 'Unknown'; + if (lastColonIndex != -1 && endFileUrlIndex != -1) { + fileName = location_0.substr(0, endFileUrlIndex); + line = parseInt_0(location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1))); + col = parseInt_0(location_0.substr(lastColonIndex + 1)); + } + return this$static.createSte(fileName, toReturn, line, col); +} + +defineClass(1961, 1960, {}); +_.collect = function collect_0(error){ +} +; +_.createSte = function createSte(fileName, method, line, col){ + return new StackTraceElement(method, fileName + '@' + col, line < 0?-1:line); +} +; +_.getStackTrace = function getStackTrace_0(t){ + var addIndex, i, length_0, stack_0, stackTrace, ste; + stack_0 = split_1(t); + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); + addIndex = 0; + length_0 = stack_0.length; + if (length_0 == 0) { + return stackTrace; + } + ste = $parse(this, stack_0[0]); + $equals_5(ste.methodName, 'anonymous') || (stackTrace[addIndex++] = ste); + for (i = 1; i < length_0; i++) { + stackTrace[addIndex++] = $parse(this, stack_0[i]); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModern_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModern', 1961); +function StackTraceCreator$CollectorModernNoSourceMap(){ +} + +defineClass(865, 1961, {}, StackTraceCreator$CollectorModernNoSourceMap); +_.createSte = function createSte_0(fileName, method, line, col){ + return new StackTraceElement(method, fileName, -1); +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModernNoSourceMap_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModernNoSourceMap', 865); +function $clinit_DateTimeFormat(){ + $clinit_DateTimeFormat = emptyMethod; + new HashMap; +} + +function $addPart(this$static, buf, count){ + var oldLength; + if (buf.string.length > 0) { + $add_3(this$static.patternParts, new DateTimeFormat$PatternPart(buf.string, count)); + oldLength = buf.string.length; + 0 < oldLength?(buf.string = buf.string.substr(0, 0)):0 > oldLength && (buf.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); + } +} + +function $format(this$static, date, timeZone){ + var ch_0, diff, i, j, keepDate, keepTime, n, toAppendTo, trailQuote; + !timeZone && (timeZone = createTimeZone(date.jsdate.getTimezoneOffset())); + diff = (date.jsdate.getTimezoneOffset() - timeZone.standardOffset) * 60000; + keepDate = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); + keepTime = keepDate; + if (keepDate.jsdate.getTimezoneOffset() != date.jsdate.getTimezoneOffset()) { + diff > 0?(diff -= 86400000):(diff += 86400000); + keepTime = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); + } + toAppendTo = new StringBuilder_0; + n = this$static.pattern.length; + for (i = 0; i < n;) { + ch_0 = $charAt(this$static.pattern, i); + if (ch_0 >= 97 && ch_0 <= 122 || ch_0 >= 65 && ch_0 <= 90) { + for (j = i + 1; j < n && $charAt(this$static.pattern, j) == ch_0; ++j) + ; + $subFormat(toAppendTo, ch_0, j - i, keepDate, keepTime, timeZone); + i = j; + } + else if (ch_0 == 39) { + ++i; + if (i < n && $charAt(this$static.pattern, i) == 39) { + toAppendTo.string += "'"; + ++i; + continue; + } + trailQuote = false; + while (!trailQuote) { + j = i; + while (j < n && $charAt(this$static.pattern, j) != 39) { + ++j; + } + if (j >= n) { + throw toJs(new IllegalArgumentException_0("Missing trailing '")); + } + j + 1 < n && $charAt(this$static.pattern, j + 1) == 39?++j:(trailQuote = true); + $append_11(toAppendTo, $substring_1(this$static.pattern, i, j)); + i = j + 1; + } + } + else { + toAppendTo.string += String.fromCharCode(ch_0); + ++i; + } + } + return toAppendTo.string; +} + +function $formatFractionalSeconds(buf, count, date){ + var time, value_0; + time = fromDouble_0(date.jsdate.getTime()); + if (compare_2(time, 0) < 0) { + value_0 = $intern_45 - toInt_0(mod(neg_0(time), $intern_45)); + value_0 == $intern_45 && (value_0 = 0); + } + else { + value_0 = toInt_0(mod(time, $intern_45)); + } + if (count == 1) { + value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); + $append_5(buf, 48 + value_0 & $intern_46); + } + else if (count == 2) { + value_0 = $wnd.Math.min((value_0 + 5) / 10 | 0, 99); + $zeroPaddingNumber(buf, value_0, 2); + } + else { + $zeroPaddingNumber(buf, value_0, 3); + count > 3 && $zeroPaddingNumber(buf, 0, count - 3); + } +} + +function $formatMonth(buf, count, date){ + var value_0; + value_0 = date.jsdate.getMonth(); + switch (count) { + case 5: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value_0]); + break; + case 4: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value_0]); + break; + case 3: + $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value_0]); + break; + default:$zeroPaddingNumber(buf, value_0 + 1, count); + } +} + +function $formatYear(buf, count, date){ + var value_0; + value_0 = date.jsdate.getFullYear() - $intern_47 + $intern_47; + value_0 < 0 && (value_0 = -value_0); + switch (count) { + case 1: + buf.string += value_0; + break; + case 2: + $zeroPaddingNumber(buf, value_0 % 100, 2); + break; + default:$zeroPaddingNumber(buf, value_0, count); + } +} + +function $getNextCharCountInPattern(pattern, start_0){ + var ch_0, next; + ch_0 = (checkCriticalStringElementIndex(start_0, pattern.length) , pattern.charCodeAt(start_0)); + next = start_0 + 1; + while (next < pattern.length && (checkCriticalStringElementIndex(next, pattern.length) , pattern.charCodeAt(next) == ch_0)) { + ++next; + } + return next - start_0; +} + +function $identifyAbutStart(this$static){ + var abut, i, len; + abut = false; + len = this$static.patternParts.array.length; + for (i = 0; i < len; i++) { + if ($isNumeric(castTo($get_11(this$static.patternParts, i), 434))) { + if (!abut && i + 1 < len && $isNumeric(castTo($get_11(this$static.patternParts, i + 1), 434))) { + abut = true; + castTo($get_11(this$static.patternParts, i), 434).abutStart = true; + } + } + else { + abut = false; + } + } +} + +function $isNumeric(part){ + var i; + if (part.count <= 0) { + return false; + } + i = $indexOf_1('MLydhHmsSDkK', fromCodePoint($charAt(part.text_0, 0))); + return i > 1 || i >= 0 && part.count < 3; +} + +function $matchString(text_0, start_0, data_0, pos){ + var bestMatch, bestMatchLength, count, i, length_0, textInLowerCase; + count = data_0.length; + bestMatchLength = 0; + bestMatch = -1; + textInLowerCase = $toLowerCase(text_0.substr(start_0), ($clinit_Locale() , ROOT)); + for (i = 0; i < count; ++i) { + length_0 = data_0[i].length; + if (length_0 > bestMatchLength && $startsWith(textInLowerCase, $toLowerCase(data_0[i], ROOT))) { + bestMatch = i; + bestMatchLength = length_0; + } + } + bestMatch >= 0 && (pos[0] = start_0 + bestMatchLength); + return bestMatch; +} + +function $parse_0(this$static, text_0, date){ + var abutPass, abutPat, abutStart, cal, count, i, parsePos, part, s; + cal = new DateRecord; + parsePos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); + abutPat = -1; + abutStart = 0; + abutPass = 0; + for (i = 0; i < this$static.patternParts.array.length; ++i) { + part = castTo($get_11(this$static.patternParts, i), 434); + if (part.count > 0) { + if (abutPat < 0 && part.abutStart) { + abutPat = i; + abutStart = parsePos[0]; + abutPass = 0; + } + if (abutPat >= 0) { + count = part.count; + if (i == abutPat) { + count -= abutPass++; + if (count == 0) { + return 0; + } + } + if (!$subParse(text_0, parsePos, part, count, cal)) { + i = abutPat - 1; + parsePos[0] = abutStart; + continue; + } + } + else { + abutPat = -1; + if (!$subParse(text_0, parsePos, part, 0, cal)) { + return 0; + } + } + } + else { + abutPat = -1; + if ($charAt(part.text_0, 0) == 32) { + s = parsePos[0]; + $skipSpace(text_0, parsePos); + if (parsePos[0] > s) { + continue; + } + } + else if ($startsWith_0(text_0, part.text_0, parsePos[0])) { + parsePos[0] += part.text_0.length; + continue; + } + return 0; + } + } + if (!$calcDate(cal, date)) { + return 0; + } + return parsePos[0]; +} + +function $parse_1(this$static, text_0){ + var charsConsumed, curDate, date; + curDate = new Date_0; + date = new Date_1(curDate.jsdate.getFullYear() - $intern_47, curDate.jsdate.getMonth(), curDate.jsdate.getDate()); + charsConsumed = $parse_0(this$static, text_0, date); + if (charsConsumed == 0 || charsConsumed < text_0.length) { + throw toJs(new IllegalArgumentException_0(text_0)); + } + return date; +} + +function $parseInt(text_0, pos){ + var ch_0, ind, ret; + ret = 0; + ind = pos[0]; + if (ind >= text_0.length) { + return -1; + } + ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); + while (ch_0 >= 48 && ch_0 <= 57) { + ret = ret * 10 + (ch_0 - 48); + ++ind; + if (ind >= text_0.length) { + break; + } + ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); + } + ind > pos[0]?(pos[0] = ind):(ret = -1); + return ret; +} + +function $parsePattern(this$static, pattern){ + var buf, ch_0, count, i, inQuote; + buf = new StringBuilder_0; + inQuote = false; + for (i = 0; i < pattern.length; i++) { + ch_0 = (checkCriticalStringElementIndex(i, pattern.length) , pattern.charCodeAt(i)); + if (ch_0 == 32) { + $addPart(this$static, buf, 0); + buf.string += ' '; + $addPart(this$static, buf, 0); + while (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 32)) { + ++i; + } + continue; + } + if (inQuote) { + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += String.fromCharCode(ch_0); + ++i; + } + else { + inQuote = false; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + continue; + } + if ($indexOf_1('GyMLdkHmsSEcDahKzZv', fromCodePoint(ch_0)) > 0) { + $addPart(this$static, buf, 0); + buf.string += String.fromCharCode(ch_0); + count = $getNextCharCountInPattern(pattern, i); + $addPart(this$static, buf, count); + i += count - 1; + continue; + } + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += "'"; + ++i; + } + else { + inQuote = true; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + } + $addPart(this$static, buf, 0); + $identifyAbutStart(this$static); +} + +function $parseTimeZoneOffset(text_0, pos, cal){ + var offset, sign, st, value_0; + if (pos[0] >= text_0.length) { + cal.tzOffset = 0; + return true; + } + switch ($charAt(text_0, pos[0])) { + case 43: + sign = 1; + break; + case 45: + sign = -1; + break; + default:cal.tzOffset = 0; + return true; + } + ++pos[0]; + st = pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 == 0 && pos[0] == st) { + return false; + } + if (pos[0] < text_0.length && $charAt(text_0, pos[0]) == 58) { + offset = value_0 * 60; + ++pos[0]; + st = pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 == 0 && pos[0] == st) { + return false; + } + offset += value_0; + } + else { + offset = value_0; + offset < 24 && pos[0] - st <= 2?(offset *= 60):(offset = offset % 100 + (offset / 100 | 0) * 60); + } + offset *= sign; + cal.tzOffset = -offset; + return true; +} + +function $skipSpace(text_0, pos){ + while (pos[0] < text_0.length && $indexOf_1(' \t\r\n', fromCodePoint($charAt(text_0, pos[0]))) >= 0) { + ++pos[0]; + } +} + +function $subFormat(buf, ch_0, count, adjustedDate, adjustedTime, timezone){ + var value_0, value0, value1, value10, value2, value3, value4, value5, value6, value7, value8, value9; + switch (ch_0) { + case 71: + value0 = adjustedDate.jsdate.getFullYear() - $intern_47 >= -1900?1:0; + count >= 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini'])[value0]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['BC', 'AD'])[value0]); + break; + case 121: + $formatYear(buf, count, adjustedDate); + break; + case 77: + $formatMonth(buf, count, adjustedDate); + break; + case 107: + value1 = adjustedTime.jsdate.getHours(); + value1 == 0?$zeroPaddingNumber(buf, 24, count):$zeroPaddingNumber(buf, value1, count); + break; + case 83: + $formatFractionalSeconds(buf, count, adjustedTime); + break; + case 69: + value2 = adjustedDate.jsdate.getDay(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value2]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value2]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value2]); + break; + case 97: + adjustedTime.jsdate.getHours() >= 12 && adjustedTime.jsdate.getHours() < 24?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[1]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[0]); + break; + case 104: + value3 = adjustedTime.jsdate.getHours() % 12; + value3 == 0?$zeroPaddingNumber(buf, 12, count):$zeroPaddingNumber(buf, value3, count); + break; + case 75: + value4 = adjustedTime.jsdate.getHours() % 12; + $zeroPaddingNumber(buf, value4, count); + break; + case 72: + value5 = adjustedTime.jsdate.getHours(); + $zeroPaddingNumber(buf, value5, count); + break; + case 99: + value6 = adjustedDate.jsdate.getDay(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value6]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value6]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value6]):$zeroPaddingNumber(buf, value6, 1); + break; + case 76: + value7 = adjustedDate.jsdate.getMonth(); + count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value7]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value7]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value7]):$zeroPaddingNumber(buf, value7 + 1, count); + break; + case 81: + value8 = adjustedDate.jsdate.getMonth() / 3 | 0; + count < 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Q1', 'Q2', 'Q3', 'Q4'])[value8]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'])[value8]); + break; + case 100: + value9 = adjustedDate.jsdate.getDate(); + $zeroPaddingNumber(buf, value9, count); + break; + case 109: + value10 = adjustedTime.jsdate.getMinutes(); + $zeroPaddingNumber(buf, value10, count); + break; + case 115: + value_0 = adjustedTime.jsdate.getSeconds(); + $zeroPaddingNumber(buf, value_0, count); + break; + case 122: + count < 4?$append_11(buf, timezone.tzNames[0]):$append_11(buf, timezone.tzNames[1]); + break; + case 118: + $append_11(buf, timezone.timezoneID); + break; + case 90: + count < 3?$append_11(buf, $getRFCTimeZoneString(timezone)):count == 3?$append_11(buf, $getISOTimeZoneString(timezone)):$append_11(buf, composeGMTString(timezone.standardOffset)); + break; + default:return false; + } + return true; +} + +function $subParse(text_0, pos, part, digitCount, cal){ + var ch_0, start_0, value_0; + $skipSpace(text_0, pos); + start_0 = pos[0]; + ch_0 = $charAt(part.text_0, 0); + value_0 = -1; + if ($isNumeric(part)) { + if (digitCount > 0) { + if (start_0 + digitCount > text_0.length) { + return false; + } + value_0 = $parseInt(text_0.substr(0, start_0 + digitCount), pos); + } + else { + value_0 = $parseInt(text_0, pos); + } + } + switch (ch_0) { + case 71: + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini']), pos); + cal.era = value_0; + return true; + case 77: + return $subParseMonth(text_0, pos, cal, value_0, start_0); + case 76: + return $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0); + case 69: + return $subParseDayOfWeek(text_0, pos, start_0, cal); + case 99: + return $subParseStandaloneDay(text_0, pos, start_0, cal); + case 97: + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM']), pos); + cal.ampm = value_0; + return true; + case 121: + return $subParseYear(text_0, pos, start_0, value_0, part, cal); + case 100: + if (value_0 <= 0) { + return false; + } + + cal.dayOfMonth = value_0; + return true; + case 83: + if (value_0 < 0) { + return false; + } + + return $subParseFractionalSeconds(value_0, start_0, pos[0], cal); + case 104: + value_0 == 12 && (value_0 = 0); + case 75: + case 72: + if (value_0 < 0) { + return false; + } + + cal.hours = value_0; + cal.midnightIs24 = false; + return true; + case 107: + if (value_0 < 0) { + return false; + } + + cal.hours = value_0; + cal.midnightIs24 = true; + return true; + case 109: + if (value_0 < 0) { + return false; + } + + cal.minutes = value_0; + return true; + case 115: + if (value_0 < 0) { + return false; + } + + cal.seconds = value_0; + return true; + case 90: + if (start_0 < text_0.length && (checkCriticalStringElementIndex(start_0, text_0.length) , text_0.charCodeAt(start_0) == 90)) { + ++pos[0]; + cal.tzOffset = 0; + return true; + } + + case 122: + case 118: + return $subParseTimeZoneInGMT(text_0, start_0, pos, cal); + default:return false; + } +} + +function $subParseDayOfWeek(text_0, pos, start_0, cal){ + var value_0; + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); + if (value_0 < 0) { + return false; + } + cal.dayOfWeek = value_0; + return true; +} + +function $subParseFractionalSeconds(value_0, start_0, end, cal){ + var a, i; + i = end - start_0; + if (i < 3) { + while (i < 3) { + value_0 *= 10; + ++i; + } + } + else { + a = 1; + while (i > 3) { + a *= 10; + --i; + } + value_0 = (value_0 + (a >> 1)) / a | 0; + } + cal.milliseconds = value_0; + return true; +} + +function $subParseMonth(text_0, pos, cal, value_0, start_0){ + if (value_0 < 0) { + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); + if (value_0 < 0) { + return false; + } + cal.month = value_0; + return true; + } + else if (value_0 > 0) { + cal.month = value_0 - 1; + return true; + } + return false; +} + +function $subParseStandaloneDay(text_0, pos, start_0, cal){ + var value_0; + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); + if (value_0 < 0) { + return false; + } + cal.dayOfWeek = value_0; + return true; +} + +function $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0){ + if (value_0 < 0) { + value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); + value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); + if (value_0 < 0) { + return false; + } + cal.month = value_0; + return true; + } + else if (value_0 > 0) { + cal.month = value_0 - 1; + return true; + } + return false; +} + +function $subParseTimeZoneInGMT(text_0, start_0, pos, cal){ + if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'GMT'.length), 'GMT')) { + pos[0] = start_0 + 3; + return $parseTimeZoneOffset(text_0, pos, cal); + } + if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'UTC'.length), 'UTC')) { + pos[0] = start_0 + 3; + return $parseTimeZoneOffset(text_0, pos, cal); + } + return $parseTimeZoneOffset(text_0, pos, cal); +} + +function $subParseYear(text_0, pos, start_0, value_0, part, cal){ + var ambiguousTwoDigitYear, ch_0, date, defaultCenturyStartYear; + ch_0 = 32; + if (value_0 < 0) { + if (pos[0] >= text_0.length) { + return false; + } + ch_0 = $charAt(text_0, pos[0]); + if (ch_0 != 43 && ch_0 != 45) { + return false; + } + ++pos[0]; + value_0 = $parseInt(text_0, pos); + if (value_0 < 0) { + return false; + } + ch_0 == 45 && (value_0 = -value_0); + } + if (ch_0 == 32 && pos[0] - start_0 == 2 && part.count == 2) { + date = new Date_0; + defaultCenturyStartYear = date.jsdate.getFullYear() - $intern_47 + $intern_47 - 80; + ambiguousTwoDigitYear = defaultCenturyStartYear % 100; + cal.ambiguousYear = value_0 == ambiguousTwoDigitYear; + value_0 += (defaultCenturyStartYear / 100 | 0) * 100 + (value_0 < ambiguousTwoDigitYear?100:0); + } + cal.year = value_0; + return true; +} + +function $zeroPaddingNumber(buf, value_0, minWidth){ + var b, i; + b = 10; + for (i = 0; i < minWidth - 1; i++) { + value_0 < b && (buf.string += '0' , buf); + b *= 10; + } + buf.string += value_0; +} + +defineClass(1050, 1, {}); +var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 1050); +function $clinit_DateTimeFormat_0(){ + $clinit_DateTimeFormat_0 = emptyMethod; + $clinit_DateTimeFormat(); + cache = new HashMap; +} + +function DateTimeFormat(pattern){ + $clinit_DateTimeFormat(); + this.patternParts = new ArrayList; + this.pattern = pattern; + $parsePattern(this, pattern); +} + +function getFormat(pattern, dtfi){ + $clinit_DateTimeFormat_0(); + var defaultDtfi, dtf; + defaultDtfi = $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); + dtf = null; + dtfi == defaultDtfi && (dtf = castTo($getStringValue(cache, pattern), 615)); + if (!dtf) { + dtf = new DateTimeFormat(pattern); + dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); + } + return dtf; +} + +defineClass(615, 1050, {615:1}, DateTimeFormat); +var cache; +var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 615); +defineClass(2001, 1, {}); +var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 2001); +defineClass(2002, 2001, {}); +var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 2002); +function $clinit_LocaleInfo(){ + $clinit_LocaleInfo = emptyMethod; + instance_0 = new LocaleInfo; +} + +function $getDateTimeFormatInfo(this$static){ + !this$static.dateTimeFormatInfo && (this$static.dateTimeFormatInfo = new DateTimeFormatInfoImpl); + return this$static.dateTimeFormatInfo; +} + +function LocaleInfo(){ +} + +defineClass(1090, 1, {}, LocaleInfo); +var instance_0; +var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 1090); +function $getISOTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 58, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; + data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_46; + data_0[5] = data_0[5] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function $getRFCTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; + data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_46; + data_0[4] = data_0[4] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function TimeZone(){ +} + +function composeGMTString(offset){ + var data_0; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); + if (offset <= 0) { + data_0[3] = 43; + offset = -offset; + } + data_0[4] = data_0[4] + ((offset / 60 | 0) / 10 | 0) & $intern_46; + data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_46; + data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_46; + data_0[8] = data_0[8] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function composePOSIXTimeZoneID(offset){ + var str; + if (offset == 0) { + return 'Etc/GMT'; + } + if (offset < 0) { + offset = -offset; + str = 'Etc/GMT-'; + } + else { + str = 'Etc/GMT+'; + } + return str + offsetDisplay(offset); +} + +function composeUTCString(offset){ + var str; + if (offset == 0) { + return 'UTC'; + } + if (offset < 0) { + offset = -offset; + str = 'UTC+'; + } + else { + str = 'UTC-'; + } + return str + offsetDisplay(offset); +} + +function createTimeZone(timeZoneOffsetInMinutes){ + var tz; + tz = new TimeZone; + tz.standardOffset = timeZoneOffsetInMinutes; + tz.timezoneID = composePOSIXTimeZoneID(timeZoneOffsetInMinutes); + tz.tzNames = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 2, 6, 1); + tz.tzNames[0] = composeUTCString(timeZoneOffsetInMinutes); + tz.tzNames[1] = composeUTCString(timeZoneOffsetInMinutes); + return tz; +} + +function offsetDisplay(offset){ + var hour, mins; + hour = offset / 60 | 0; + mins = offset % 60; + if (mins == 0) { + return '' + hour; + } + return '' + hour + ':' + ('' + mins); +} + +defineClass(1918, 1, {}, TimeZone); +_.standardOffset = 0; +var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 1918); +function DateTimeFormatInfoImpl(){ +} + +defineClass(1258, 2002, {}, DateTimeFormatInfoImpl); +var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 1258); +function DateTimeFormat$PatternPart(txt, cnt){ + this.text_0 = txt; + this.count = cnt; + this.abutStart = false; +} + +defineClass(434, 1, {434:1}, DateTimeFormat$PatternPart); +_.abutStart = false; +_.count = 0; +var Lcom_google_gwt_i18n_shared_DateTimeFormat$PatternPart_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat/PatternPart', 434); +function $compareTo_0(this$static, other){ + return compare_6(fromDouble_0(this$static.jsdate.getTime()), fromDouble_0(other.jsdate.getTime())); +} + +function $fixDaylightSavings(this$static, requestedHours){ + var badHours, copy, day, newTime, originalTimeInMillis, timeDiff, timeDiffHours, timeDiffMinutes; + requestedHours %= 24; + if (this$static.jsdate.getHours() != requestedHours) { + copy = new $wnd.Date(this$static.jsdate.getTime()); + copy.setDate(copy.getDate() + 1); + timeDiff = this$static.jsdate.getTimezoneOffset() - copy.getTimezoneOffset(); + if (timeDiff > 0) { + timeDiffHours = timeDiff / 60 | 0; + timeDiffMinutes = timeDiff % 60; + day = this$static.jsdate.getDate(); + badHours = this$static.jsdate.getHours(); + badHours + timeDiffHours >= 24 && ++day; + newTime = new $wnd.Date(this$static.jsdate.getFullYear(), this$static.jsdate.getMonth(), day, requestedHours + timeDiffHours, this$static.jsdate.getMinutes() + timeDiffMinutes, this$static.jsdate.getSeconds(), this$static.jsdate.getMilliseconds()); + this$static.jsdate.setTime(newTime.getTime()); + } + } + originalTimeInMillis = this$static.jsdate.getTime(); + this$static.jsdate.setTime(originalTimeInMillis + 3600000); + this$static.jsdate.getHours() != requestedHours && this$static.jsdate.setTime(originalTimeInMillis); +} + +function $setDate(this$static, date){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setDate(date); + $fixDaylightSavings(this$static, hours); +} + +function $setHours(this$static, hours){ + this$static.jsdate.setHours(hours); + $fixDaylightSavings(this$static, hours); +} + +function $setMinutes(this$static, minutes){ + var hours; + hours = this$static.jsdate.getHours() + (minutes / 60 | 0); + this$static.jsdate.setMinutes(minutes); + $fixDaylightSavings(this$static, hours); +} + +function $setMonth(this$static, month){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setMonth(month); + $fixDaylightSavings(this$static, hours); +} + +function $setSeconds(this$static, seconds){ + var hours; + hours = this$static.jsdate.getHours() + (seconds / 3600 | 0); + this$static.jsdate.setSeconds(seconds); + $fixDaylightSavings(this$static, hours); +} + +function $setTime(this$static, time){ + this$static.jsdate.setTime(toDouble_0(time)); +} + +function $setYear(this$static, year){ + var hours; + hours = this$static.jsdate.getHours(); + this$static.jsdate.setFullYear(year + $intern_47); + $fixDaylightSavings(this$static, hours); +} + +function Date_0(){ + this.jsdate = new $wnd.Date; +} + +function Date_1(year, month, date){ + this.jsdate = new $wnd.Date; + this.jsdate.setFullYear(year + $intern_47, month, date); + this.jsdate.setHours(0, 0, 0, 0); + $fixDaylightSavings(this, 0); +} + +function Date_2(date){ + this.jsdate = new $wnd.Date(toDouble_0(date)); +} + +function padTwo(number){ + return number < 10?'0' + number:'' + number; +} + +defineClass(199, 1, $intern_49, Date_0, Date_1, Date_2); +_.compareTo_0 = function compareTo_4(other){ + return $compareTo_0(this, castTo(other, 199)); +} +; +_.equals_0 = function equals_30(obj){ + return instanceOf(obj, 199) && eq(fromDouble_0(this.jsdate.getTime()), fromDouble_0(castTo(obj, 199).jsdate.getTime())); +} +; +_.hashCode_1 = function hashCode_30(){ + var time; + time = fromDouble_0(this.jsdate.getTime()); + return toInt_0(xor_0(time, shru_0(time, 32))); +} +; +_.toString_0 = function toString_31(){ + var hourOffset, minuteOffset, offset; + offset = -this.jsdate.getTimezoneOffset(); + hourOffset = (offset >= 0?'+':'') + (offset / 60 | 0); + minuteOffset = padTwo($wnd.Math.abs(offset) % 60); + return ($clinit_Date$StringData() , DAYS)[this.jsdate.getDay()] + ' ' + MONTHS[this.jsdate.getMonth()] + ' ' + padTwo(this.jsdate.getDate()) + ' ' + padTwo(this.jsdate.getHours()) + ':' + padTwo(this.jsdate.getMinutes()) + ':' + padTwo(this.jsdate.getSeconds()) + ' GMT' + hourOffset + minuteOffset + ' ' + this.jsdate.getFullYear(); +} +; +var Ljava_util_Date_2_classLit = createForClass('java.util', 'Date', 199); +function $calcDate(this$static, date){ + var adjustment, daysInCurrentMonth, defaultCenturyStart, offset, orgDayOfMonth, orgMonth, tmp; + this$static.era == 0 && this$static.year > 0 && (this$static.year = -(this$static.year - 1)); + this$static.year > $intern_42 && $setYear(date, this$static.year - $intern_47); + orgDayOfMonth = date.jsdate.getDate(); + $setDate(date, 1); + this$static.month >= 0 && $setMonth(date, this$static.month); + if (this$static.dayOfMonth >= 0) { + $setDate(date, this$static.dayOfMonth); + } + else if (this$static.month >= 0) { + tmp = new Date_1(date.jsdate.getFullYear() - $intern_47, date.jsdate.getMonth(), 35); + daysInCurrentMonth = 35 - tmp.jsdate.getDate(); + $setDate(date, $wnd.Math.min(daysInCurrentMonth, orgDayOfMonth)); + } + else { + $setDate(date, orgDayOfMonth); + } + this$static.hours < 0 && (this$static.hours = date.jsdate.getHours()); + this$static.ampm > 0 && this$static.hours < 12 && (this$static.hours += 12); + $setHours(date, this$static.hours == 24 && this$static.midnightIs24?0:this$static.hours); + this$static.minutes >= 0 && $setMinutes(date, this$static.minutes); + this$static.seconds >= 0 && $setSeconds(date, this$static.seconds); + this$static.milliseconds >= 0 && $setTime(date, add_20(mul_0(div(fromDouble_0(date.jsdate.getTime()), $intern_45), $intern_45), this$static.milliseconds)); + if (this$static.ambiguousYear) { + defaultCenturyStart = new Date_0; + $setYear(defaultCenturyStart, defaultCenturyStart.jsdate.getFullYear() - $intern_47 - 80); + lt(fromDouble_0(date.jsdate.getTime()), fromDouble_0(defaultCenturyStart.jsdate.getTime())) && $setYear(date, defaultCenturyStart.jsdate.getFullYear() - $intern_47 + 100); + } + if (this$static.dayOfWeek >= 0) { + if (this$static.dayOfMonth == -1) { + adjustment = (7 + this$static.dayOfWeek - date.jsdate.getDay()) % 7; + adjustment > 3 && (adjustment -= 7); + orgMonth = date.jsdate.getMonth(); + $setDate(date, date.jsdate.getDate() + adjustment); + date.jsdate.getMonth() != orgMonth && $setDate(date, date.jsdate.getDate() + (adjustment > 0?-7:7)); + } + else { + if (date.jsdate.getDay() != this$static.dayOfWeek) { + return false; + } + } + } + if (this$static.tzOffset > $intern_42) { + offset = date.jsdate.getTimezoneOffset(); + $setTime(date, add_20(fromDouble_0(date.jsdate.getTime()), (this$static.tzOffset - offset) * 60 * $intern_45)); + } + return true; +} + +function DateRecord(){ + Date_0.call(this); + this.era = -1; + this.ambiguousYear = false; + this.year = $intern_42; + this.month = -1; + this.dayOfMonth = -1; + this.ampm = -1; + this.midnightIs24 = false; + this.hours = -1; + this.minutes = -1; + this.seconds = -1; + this.milliseconds = -1; + this.dayOfWeek = -1; + this.tzOffset = $intern_42; +} + +defineClass(1915, 199, $intern_49, DateRecord); +_.ambiguousYear = false; +_.ampm = 0; +_.dayOfMonth = 0; +_.dayOfWeek = 0; +_.era = 0; +_.hours = 0; +_.midnightIs24 = false; +_.milliseconds = 0; +_.minutes = 0; +_.month = 0; +_.seconds = 0; +_.tzOffset = 0; +_.year = 0; +var Lcom_google_gwt_i18n_shared_impl_DateRecord_2_classLit = createForClass('com.google.gwt.i18n.shared.impl', 'DateRecord', 1915); +defineClass(1966, 1, {}); +_.isArray_0 = function isArray(){ + return null; +} +; +_.isBoolean = function isBoolean(){ + return null; +} +; +_.isNumber = function isNumber(){ + return null; +} +; +_.isObject = function isObject(){ + return null; +} +; +_.isString = function isString(){ + return null; +} +; +var Lcom_google_gwt_json_client_JSONValue_2_classLit = createForClass('com.google.gwt.json.client', 'JSONValue', 1966); +function $get_8(this$static, index_0){ + var v = this$static.jsArray[index_0]; + var func = ($clinit_JSONParser() , typeMap)[typeof v]; + return func?func(v):throwUnknownTypeException(typeof v); +} + +function $set_0(this$static, index_0, value_0){ + var previous; + previous = $get_8(this$static, index_0); + $set0(this$static, index_0, value_0); + return previous; +} + +function $set0(this$static, index_0, value_0){ + if (value_0) { + var func = value_0.getUnwrapper(); + value_0 = func(value_0); + } + else { + value_0 = undefined; + } + this$static.jsArray[index_0] = value_0; +} + +function JSONArray(){ + this.jsArray = []; +} + +function JSONArray_0(arr){ + this.jsArray = arr; +} + +function unwrap(value_0){ + return value_0.jsArray; +} + +defineClass(216, 1966, {216:1}, JSONArray, JSONArray_0); +_.equals_0 = function equals_31(other){ + if (!instanceOf(other, 216)) { + return false; + } + return $equals_3(this.jsArray, castTo(other, 216).jsArray); +} +; +_.getUnwrapper = function getUnwrapper(){ + return unwrap; +} +; +_.hashCode_1 = function hashCode_31(){ + return $hashCode(this.jsArray); +} +; +_.isArray_0 = function isArray_0(){ + return this; +} +; +_.toString_0 = function toString_32(){ + var c, i, sb; + sb = new StringBuilder_1('['); + for (i = 0 , c = this.jsArray.length; i < c; i++) { + i > 0 && (sb.string += ',' , sb); + $append_10(sb, $get_8(this, i)); + } + sb.string += ']'; + return sb.string; +} +; +var Lcom_google_gwt_json_client_JSONArray_2_classLit = createForClass('com.google.gwt.json.client', 'JSONArray', 216); +function $clinit_JSONBoolean(){ + $clinit_JSONBoolean = emptyMethod; + FALSE = new JSONBoolean(false); + TRUE = new JSONBoolean(true); +} + +function JSONBoolean(value_0){ + this.value_0 = value_0; +} + +function unwrap_0(value_0){ + return value_0.value_0; +} + +defineClass(483, 1966, {483:1}, JSONBoolean); +_.getUnwrapper = function getUnwrapper_0(){ + return unwrap_0; +} +; +_.isBoolean = function isBoolean_0(){ + return this; +} +; +_.toString_0 = function toString_33(){ + return $clinit_Boolean() , '' + this.value_0; +} +; +_.value_0 = false; +var FALSE, TRUE; +var Lcom_google_gwt_json_client_JSONBoolean_2_classLit = createForClass('com.google.gwt.json.client', 'JSONBoolean', 483); +function JSONException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(985, 60, $intern_43, JSONException); +var Lcom_google_gwt_json_client_JSONException_2_classLit = createForClass('com.google.gwt.json.client', 'JSONException', 985); +function $clinit_JSONNull(){ + $clinit_JSONNull = emptyMethod; + instance_1 = new JSONNull; +} + +function JSONNull(){ +} + +function unwrap_1(){ + return null; +} + +defineClass(1023, 1966, {}, JSONNull); +_.getUnwrapper = function getUnwrapper_1(){ + return unwrap_1; +} +; +_.toString_0 = function toString_34(){ + return 'null'; +} +; +var instance_1; +var Lcom_google_gwt_json_client_JSONNull_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNull', 1023); +function JSONNumber(value_0){ + this.value_0 = value_0; +} + +function unwrap_2(value_0){ + return value_0.value_0; +} + +defineClass(258, 1966, {258:1}, JSONNumber); +_.equals_0 = function equals_32(other){ + if (!instanceOf(other, 258)) { + return false; + } + return this.value_0 == castTo(other, 258).value_0; +} +; +_.getUnwrapper = function getUnwrapper_2(){ + return unwrap_2; +} +; +_.hashCode_1 = function hashCode_32(){ + return $hashCode_0(this.value_0); +} +; +_.isNumber = function isNumber_0(){ + return this; +} +; +_.toString_0 = function toString_35(){ + return this.value_0 + ''; +} +; +_.value_0 = 0; +var Lcom_google_gwt_json_client_JSONNumber_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNumber', 258); +function $computeKeys0(this$static, result){ + var jsObject = this$static.jsObject; + var i = 0; + for (var key in jsObject) { + jsObject.hasOwnProperty(key) && (result[i++] = key); + } + return result; +} + +function $containsKey_2(this$static, key){ + return key in this$static.jsObject; +} + +function $get_9(this$static, key){ + if (key == null) { + throw toJs(new NullPointerException); + } + return $get0(this$static, key); +} + +function $get0(this$static, key){ + var jsObject = this$static.jsObject; + var v; + key = String(key); + jsObject.hasOwnProperty(key) && (v = jsObject[key]); + var func = ($clinit_JSONParser() , typeMap)[typeof v]; + var ret = func?func(v):throwUnknownTypeException(typeof v); + return ret; +} + +function $put_5(this$static, key, jsonValue){ + var previous; + if (key == null) { + throw toJs(new NullPointerException); + } + previous = $get_9(this$static, key); + $put0(this$static, key, jsonValue); + return previous; +} + +function $put0(this$static, key, value_0){ + if (value_0) { + var func = value_0.getUnwrapper(); + this$static.jsObject[key] = func(value_0); + } + else { + delete this$static.jsObject[key]; + } +} + +function JSONObject(){ + JSONObject_0.call(this, {}); +} + +function JSONObject_0(jsValue){ + this.jsObject = jsValue; +} + +function unwrap_3(value_0){ + return value_0.jsObject; +} + +defineClass(183, 1966, {183:1}, JSONObject, JSONObject_0); +_.equals_0 = function equals_33(other){ + if (!instanceOf(other, 183)) { + return false; + } + return $equals_3(this.jsObject, castTo(other, 183).jsObject); +} +; +_.getUnwrapper = function getUnwrapper_3(){ + return unwrap_3; +} +; +_.hashCode_1 = function hashCode_33(){ + return $hashCode(this.jsObject); +} +; +_.isObject = function isObject_0(){ + return this; +} +; +_.toString_0 = function toString_36(){ + var first, key, key$array, key$index, key$max, keys_0, sb; + sb = new StringBuilder_1('{'); + first = true; + keys_0 = $computeKeys0(this, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)); + for (key$array = keys_0 , key$index = 0 , key$max = key$array.length; key$index < key$max; ++key$index) { + key = key$array[key$index]; + first?(first = false):(sb.string += ', ' , sb); + $append_11(sb, escapeValue(key)); + sb.string += ':'; + $append_10(sb, $get_9(this, key)); + } + sb.string += '}'; + return sb.string; +} +; +var Lcom_google_gwt_json_client_JSONObject_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject', 183); +function JSONObject$1(this$0, val$keys){ + this.this$01 = this$0; + this.val$keys2 = val$keys; +} + +defineClass(596, $intern_9, $intern_10, JSONObject$1); +_.contains = function contains_27(o){ + return instanceOfString(o) && $containsKey_2(this.this$01, castToString(o)); +} +; +_.iterator_0 = function iterator_45(){ + return new AbstractList$IteratorImpl(new Arrays$ArrayList(this.val$keys2)); +} +; +_.size_1 = function size_36(){ + return this.val$keys2.length; +} +; +var Lcom_google_gwt_json_client_JSONObject$1_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject/1', 596); +function $clinit_JSONParser(){ + $clinit_JSONParser = emptyMethod; + typeMap = {'boolean':createBoolean, 'number':createNumber, 'string':createString, 'object':createObject, 'function':createObject, 'undefined':createUndefined}; +} + +function createBoolean(v){ + return $clinit_JSONBoolean() , v?TRUE:FALSE; +} + +function createNumber(v){ + return new JSONNumber(v); +} + +function createObject(o){ + if (!o) { + return $clinit_JSONNull() , instance_1; + } + var v = o.valueOf?o.valueOf():o; + if (v !== o) { + var func = typeMap[typeof v]; + return func?func(v):throwUnknownTypeException(typeof v); + } + else if (o instanceof Array || o instanceof $wnd.Array) { + return new JSONArray_0(o); + } + else { + return new JSONObject_0(o); + } +} + +function createString(v){ + return new JSONString(v); +} + +function createUndefined(){ + return null; +} + +function throwUnknownTypeException(typeString){ + $clinit_JSONParser(); + throw toJs(new JSONException("Unexpected typeof result '" + typeString + "'; please report this bug to the GWT team")); +} + +var typeMap; +function JSONString(value_0){ + if (value_0 == null) { + throw toJs(new NullPointerException); + } + this.value_0 = value_0; +} + +function unwrap_4(value_0){ + return value_0.value_0; +} + +defineClass(204, 1966, {204:1}, JSONString); +_.equals_0 = function equals_34(other){ + if (!instanceOf(other, 204)) { + return false; + } + return $equals_5(this.value_0, castTo(other, 204).value_0); +} +; +_.getUnwrapper = function getUnwrapper_4(){ + return unwrap_4; +} +; +_.hashCode_1 = function hashCode_34(){ + return getHashCode_1(this.value_0); +} +; +_.isString = function isString_0(){ + return this; +} +; +_.toString_0 = function toString_37(){ + return escapeValue(this.value_0); +} +; +var Lcom_google_gwt_json_client_JSONString_2_classLit = createForClass('com.google.gwt.json.client', 'JSONString', 204); +function canSet(array, value_0){ + var elementTypeCategory; + switch (getElementTypeCategory(array)) { + case 6: + return instanceOfString(value_0); + case 7: + return instanceOfDouble(value_0); + case 8: + return instanceOfBoolean(value_0); + case 3: + return Array.isArray(value_0) && (elementTypeCategory = getElementTypeCategory(value_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16)); + case 11: + return value_0 != null && typeof value_0 === 'function'; + case 12: + return value_0 != null && (typeof value_0 === 'object' || typeof value_0 == 'function'); + case 0: + return canCast(value_0, array.__elementTypeId$); + case 2: + return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn); + case 1: + return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn) || canCast(value_0, array.__elementTypeId$); + default:return true; + } +} + +function getClassLiteralForArray(clazz, dimensions){ + return getClassLiteralForArray_0(clazz, dimensions); +} + +function getElementTypeCategory(array){ + return array.__elementTypeCategory$ == null?10:array.__elementTypeCategory$; +} + +function initMultidimensionalArray(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, count){ + return initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, 0, count); +} + +function initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count){ + var elementTypeCategory, i, isLastDimension, length_0, result; + length_0 = dimExprs[index_0]; + isLastDimension = index_0 == count - 1; + elementTypeCategory = isLastDimension?leafElementTypeCategory:0; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + leafElementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, count - index_0), castableTypeMapExprs[index_0], elementTypeIds[index_0], elementTypeCategory, result); + if (!isLastDimension) { + ++index_0; + for (i = 0; i < length_0; ++i) { + result[i] = initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count); + } + } + return result; +} + +function initUnidimensionalArray(leafClassLiteral, castableTypeMap, elementTypeId, length_0, elementTypeCategory, dimensions){ + var result; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + elementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, dimensions), castableTypeMap, elementTypeId, elementTypeCategory, result); + return result; +} + +function initializeArrayElementsWithDefaults(elementTypeCategory, length_0){ + var array = new Array(length_0); + var initValue; + switch (elementTypeCategory) { + case 14: + case 15: + initValue = 0; + break; + case 16: + initValue = false; + break; + default:return array; + } + for (var i = 0; i < length_0; ++i) { + array[i] = initValue; + } + return array; +} + +function isJavaArray(src_0){ + return Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function setCheck(array, index_0, value_0){ + checkCriticalArrayType(value_0 == null || canSet(array, value_0)); + return array[index_0] = value_0; +} + +function stampJavaTypeInfo(arrayClass, castableTypeMap, elementTypeId, elementTypeCategory, array){ + array.___clazz = arrayClass; + array.castableTypeMap = castableTypeMap; + array.typeMarker = typeMarkerFn; + array.__elementTypeId$ = elementTypeId; + array.__elementTypeCategory$ = elementTypeCategory; + return array; +} + +function stampJavaTypeInfo_0(array, referenceType){ + getElementTypeCategory(referenceType) != 10 && stampJavaTypeInfo(getClass__Ljava_lang_Class___devirtual$(referenceType), referenceType.castableTypeMap, referenceType.__elementTypeId$, getElementTypeCategory(referenceType), array); + return array; +} + +function create_0(value_0){ + var a0, a1, a2; + a0 = value_0 & $intern_50; + a1 = value_0 >> 22 & $intern_50; + a2 = value_0 < 0?$intern_51:0; + return create0(a0, a1, a2); +} + +function create_1(a){ + return create0(a.l, a.m, a.h); +} + +function create0(l, m, h){ + return {l:l, m:m, h:h}; +} + +function divMod(a, b, computeRemainder){ + var aIsCopy, aIsMinValue, aIsNegative, bpower, c, negative; + if (b.l == 0 && b.m == 0 && b.h == 0) { + throw toJs(new ArithmeticException('divide by zero')); + } + if (a.l == 0 && a.m == 0 && a.h == 0) { + computeRemainder && (remainder = create0(0, 0, 0)); + return create0(0, 0, 0); + } + if (b.h == $intern_52 && b.m == 0 && b.l == 0) { + return divModByMinValue(a, computeRemainder); + } + negative = false; + if (b.h >> 19 != 0) { + b = neg(b); + negative = !negative; + } + bpower = powerOfTwo(b); + aIsNegative = false; + aIsMinValue = false; + aIsCopy = false; + if (a.h == $intern_52 && a.m == 0 && a.l == 0) { + aIsMinValue = true; + aIsNegative = true; + if (bpower == -1) { + a = create_1(($clinit_BigLongLib$Const() , MAX_VALUE)); + aIsCopy = true; + negative = !negative; + } + else { + c = shr(a, bpower); + negative && negate(c); + computeRemainder && (remainder = create0(0, 0, 0)); + return c; + } + } + else if (a.h >> 19 != 0) { + aIsNegative = true; + a = neg(a); + aIsCopy = true; + negative = !negative; + } + if (bpower != -1) { + return divModByShift(a, bpower, negative, aIsNegative, computeRemainder); + } + if (compare_1(a, b) < 0) { + computeRemainder && (aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h))); + return create0(0, 0, 0); + } + return divModHelper(aIsCopy?a:create0(a.l, a.m, a.h), b, negative, aIsNegative, aIsMinValue, computeRemainder); +} + +function divModByMinValue(a, computeRemainder){ + if (a.h == $intern_52 && a.m == 0 && a.l == 0) { + computeRemainder && (remainder = create0(0, 0, 0)); + return create_1(($clinit_BigLongLib$Const() , ONE)); + } + computeRemainder && (remainder = create0(a.l, a.m, a.h)); + return create0(0, 0, 0); +} + +function divModByShift(a, bpower, negative, aIsNegative, computeRemainder){ + var c; + c = shr(a, bpower); + negative && negate(c); + if (computeRemainder) { + a = maskRight(a, bpower); + aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h)); + } + return c; +} + +function divModHelper(a, b, negative, aIsNegative, aIsMinValue, computeRemainder){ + var bshift, gte, quotient, shift_0, a1, a2, a0; + shift_0 = numberOfLeadingZeros(b) - numberOfLeadingZeros(a); + bshift = shl(b, shift_0); + quotient = create0(0, 0, 0); + while (shift_0 >= 0) { + gte = trialSubtract(a, bshift); + if (gte) { + shift_0 < 22?(quotient.l |= 1 << shift_0 , undefined):shift_0 < 44?(quotient.m |= 1 << shift_0 - 22 , undefined):(quotient.h |= 1 << shift_0 - 44 , undefined); + if (a.l == 0 && a.m == 0 && a.h == 0) { + break; + } + } + a1 = bshift.m; + a2 = bshift.h; + a0 = bshift.l; + bshift.h = a2 >>> 1; + bshift.m = a1 >>> 1 | (a2 & 1) << 21; + bshift.l = a0 >>> 1 | (a1 & 1) << 21; + --shift_0; + } + negative && negate(quotient); + if (computeRemainder) { + if (aIsNegative) { + remainder = neg(a); + aIsMinValue && (remainder = sub_1(remainder, ($clinit_BigLongLib$Const() , ONE))); + } + else { + remainder = create0(a.l, a.m, a.h); + } + } + return quotient; +} + +function maskRight(a, bits){ + var b0, b1, b2; + if (bits <= 22) { + b0 = a.l & (1 << bits) - 1; + b1 = b2 = 0; + } + else if (bits <= 44) { + b0 = a.l; + b1 = a.m & (1 << bits - 22) - 1; + b2 = 0; + } + else { + b0 = a.l; + b1 = a.m; + b2 = a.h & (1 << bits - 44) - 1; + } + return create0(b0, b1, b2); +} + +function negate(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_50; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; + a.l = neg0; + a.m = neg1; + a.h = neg2; +} + +function numberOfLeadingZeros(a){ + var b1, b2; + b2 = numberOfLeadingZeros_0(a.h); + if (b2 == 32) { + b1 = numberOfLeadingZeros_0(a.m); + return b1 == 32?numberOfLeadingZeros_0(a.l) + 32:b1 + 20 - 10; + } + else { + return b2 - 12; + } +} + +function powerOfTwo(a){ + var h, l, m; + l = a.l; + if ((l & l - 1) != 0) { + return -1; + } + m = a.m; + if ((m & m - 1) != 0) { + return -1; + } + h = a.h; + if ((h & h - 1) != 0) { + return -1; + } + if (h == 0 && m == 0 && l == 0) { + return -1; + } + if (h == 0 && m == 0 && l != 0) { + return numberOfTrailingZeros(l); + } + if (h == 0 && m != 0 && l == 0) { + return numberOfTrailingZeros(m) + 22; + } + if (h != 0 && m == 0 && l == 0) { + return numberOfTrailingZeros(h) + 44; + } + return -1; +} + +function toDoubleHelper(a){ + return a.l + a.m * $intern_53 + a.h * $intern_54; +} + +function trialSubtract(a, b){ + var sum0, sum1, sum2; + sum2 = a.h - b.h; + if (sum2 < 0) { + return false; + } + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 += sum1 >> 22; + if (sum2 < 0) { + return false; + } + a.l = sum0 & $intern_50; + a.m = sum1 & $intern_50; + a.h = sum2 & $intern_51; + return true; +} + +var remainder; +function add_19(a, b){ + var sum0, sum1, sum2; + sum0 = a.l + b.l; + sum1 = a.m + b.m + (sum0 >> 22); + sum2 = a.h + b.h + (sum1 >> 22); + return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); +} + +function and(a, b){ + return create0(a.l & b.l, a.m & b.m, a.h & b.h); +} + +function compare_1(a, b){ + var a0, a1, a2, b0, b1, b2, signA, signB; + signA = a.h >> 19; + signB = b.h >> 19; + if (signA != signB) { + return signB - signA; + } + a2 = a.h; + b2 = b.h; + if (a2 != b2) { + return a2 - b2; + } + a1 = a.m; + b1 = b.m; + if (a1 != b1) { + return a1 - b1; + } + a0 = a.l; + b0 = b.l; + return a0 - b0; +} + +function fromDouble(value_0){ + var a0, a1, a2, negative, result; + if (isNaN(value_0)) { + return $clinit_BigLongLib$Const() , ZERO; + } + if (value_0 < -9223372036854775808) { + return $clinit_BigLongLib$Const() , MIN_VALUE; + } + if (value_0 >= 9223372036854775807) { + return $clinit_BigLongLib$Const() , MAX_VALUE; + } + negative = false; + if (value_0 < 0) { + negative = true; + value_0 = -value_0; + } + a2 = 0; + if (value_0 >= $intern_54) { + a2 = round_int(value_0 / $intern_54); + value_0 -= a2 * $intern_54; + } + a1 = 0; + if (value_0 >= $intern_53) { + a1 = round_int(value_0 / $intern_53); + value_0 -= a1 * $intern_53; + } + a0 = round_int(value_0); + result = create0(a0, a1, a2); + negative && negate(result); + return result; +} + +function mul(a, b){ + var a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c0, c00, c01, c1, c10, c11, c12, c13, c2, c22, c23, c24, p0, p1, p2, p3, p4; + a0 = a.l & 8191; + a1 = a.l >> 13 | (a.m & 15) << 9; + a2 = a.m >> 4 & 8191; + a3 = a.m >> 17 | (a.h & 255) << 5; + a4 = (a.h & 1048320) >> 8; + b0 = b.l & 8191; + b1 = b.l >> 13 | (b.m & 15) << 9; + b2 = b.m >> 4 & 8191; + b3 = b.m >> 17 | (b.h & 255) << 5; + b4 = (b.h & 1048320) >> 8; + p0 = a0 * b0; + p1 = a1 * b0; + p2 = a2 * b0; + p3 = a3 * b0; + p4 = a4 * b0; + if (b1 != 0) { + p1 += a0 * b1; + p2 += a1 * b1; + p3 += a2 * b1; + p4 += a3 * b1; + } + if (b2 != 0) { + p2 += a0 * b2; + p3 += a1 * b2; + p4 += a2 * b2; + } + if (b3 != 0) { + p3 += a0 * b3; + p4 += a1 * b3; + } + b4 != 0 && (p4 += a0 * b4); + c00 = p0 & $intern_50; + c01 = (p1 & 511) << 13; + c0 = c00 + c01; + c10 = p0 >> 22; + c11 = p1 >> 9; + c12 = (p2 & 262143) << 4; + c13 = (p3 & 31) << 17; + c1 = c10 + c11 + c12 + c13; + c22 = p2 >> 18; + c23 = p3 >> 5; + c24 = (p4 & 4095) << 8; + c2 = c22 + c23 + c24; + c1 += c0 >> 22; + c0 &= $intern_50; + c2 += c1 >> 22; + c1 &= $intern_50; + c2 &= $intern_51; + return create0(c0, c1, c2); +} + +function neg(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_50; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; + return create0(neg0, neg1, neg2); +} + +function not(a){ + return create0(~a.l & $intern_50, ~a.m & $intern_50, ~a.h & $intern_51); +} + +function or(a, b){ + return create0(a.l | b.l, a.m | b.m, a.h | b.h); +} + +function shl(a, n){ + var res0, res1, res2; + n &= 63; + if (n < 22) { + res0 = a.l << n; + res1 = a.m << n | a.l >> 22 - n; + res2 = a.h << n | a.m >> 22 - n; + } + else if (n < 44) { + res0 = 0; + res1 = a.l << n - 22; + res2 = a.m << n - 22 | a.l >> 44 - n; + } + else { + res0 = 0; + res1 = 0; + res2 = a.l << n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function shr(a, n){ + var a2, negative, res0, res1, res2; + n &= 63; + a2 = a.h; + negative = (a2 & $intern_52) != 0; + negative && (a2 |= -1048576); + if (n < 22) { + res2 = a2 >> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = negative?$intern_51:0; + res1 = a2 >> n - 22; + res0 = a.m >> n - 22 | a2 << 44 - n; + } + else { + res2 = negative?$intern_51:0; + res1 = negative?$intern_50:0; + res0 = a2 >> n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function shru(a, n){ + var a2, res0, res1, res2; + n &= 63; + a2 = a.h & $intern_51; + if (n < 22) { + res2 = a2 >>> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = 0; + res1 = a2 >>> n - 22; + res0 = a.m >> n - 22 | a.h << 44 - n; + } + else { + res2 = 0; + res1 = 0; + res0 = a2 >>> n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function sub_1(a, b){ + var sum0, sum1, sum2; + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 = a.h - b.h + (sum1 >> 22); + return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); +} + +function toDouble(a){ + if (compare_1(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { + return -toDoubleHelper(neg(a)); + } + return a.l + a.m * $intern_53 + a.h * $intern_54; +} + +function toInt(a){ + return a.l | a.m << 22; +} + +function toString_38(a){ + var digits, rem, res, tenPowerLong, zeroesNeeded; + if (a.l == 0 && a.m == 0 && a.h == 0) { + return '0'; + } + if (a.h == $intern_52 && a.m == 0 && a.l == 0) { + return '-9223372036854775808'; + } + if (a.h >> 19 != 0) { + return '-' + toString_38(neg(a)); + } + rem = a; + res = ''; + while (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + tenPowerLong = create_0($intern_55); + rem = divMod(rem, tenPowerLong, true); + digits = '' + toInt(remainder); + if (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + zeroesNeeded = 9 - digits.length; + for (; zeroesNeeded > 0; zeroesNeeded--) { + digits = '0' + digits; + } + } + res = digits + res; + } + return res; +} + +function xor(a, b){ + return create0(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); +} + +function $clinit_BigLongLib$Const(){ + $clinit_BigLongLib$Const = emptyMethod; + MAX_VALUE = create0($intern_50, $intern_50, 524287); + MIN_VALUE = create0(0, 0, $intern_52); + ONE = create_0(1); + create_0(2); + ZERO = create_0(0); +} + +var MAX_VALUE, MIN_VALUE, ONE, ZERO; +function toJava(e){ + var javaException; + if (instanceOf(e, 78)) { + return e; + } + javaException = e && e.__java$exception; + if (!javaException) { + javaException = new JavaScriptException(e); + captureStackTrace(javaException); + } + return javaException; +} + +function toJs(t){ + return t.backingJsObject; +} + +function add_20(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a + b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul(add_19(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function and_0(a, b){ + return createLongEmul(and(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function compare_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if (!isNaN(result)) { + return result; + } + } + return compare_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b); +} + +function createLongEmul(big_0){ + var a2; + a2 = big_0.h; + if (a2 == 0) { + return big_0.l + big_0.m * $intern_53; + } + if (a2 == $intern_51) { + return big_0.l + big_0.m * $intern_53 - $intern_54; + } + return big_0; +} + +function div(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a / b; + if ($intern_56 < result && result < $intern_54) { + return result < 0?$wnd.Math.ceil(result):$wnd.Math.floor(result); + } + } + return createLongEmul(divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, false)); +} + +function eq(a, b){ + return compare_2(a, b) == 0; +} + +function fromDouble_0(value_0){ + if ($intern_56 < value_0 && value_0 < $intern_54) { + return value_0 < 0?$wnd.Math.ceil(value_0):$wnd.Math.floor(value_0); + } + return createLongEmul(fromDouble(value_0)); +} + +function gt(a, b){ + return compare_2(a, b) > 0; +} + +function gte_0(a, b){ + return compare_2(a, b) >= 0; +} + +function isSmallLong0(value_0){ + return typeof value_0 === 'number'; +} + +function lt(a, b){ + return compare_2(a, b) < 0; +} + +function mod(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a % b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul((divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, true) , remainder)); +} + +function mul_0(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a * b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul(mul(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function neg_0(a){ + var result; + if (isSmallLong0(a)) { + result = 0 - a; + if (!isNaN(result)) { + return result; + } + } + return createLongEmul(neg(a)); +} + +function neq(a, b){ + return compare_2(a, b) != 0; +} + +function not_0(a){ + return createLongEmul(not(isSmallLong0(a)?toBigLong(a):a)); +} + +function or_0(a, b){ + return createLongEmul(or(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function shl_0(a, n){ + return createLongEmul(shl(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function shr_0(a, n){ + return createLongEmul(shr(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function shru_0(a, n){ + return createLongEmul(shru(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function sub_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if ($intern_56 < result && result < $intern_54) { + return result; + } + } + return createLongEmul(sub_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function toBigLong(longValue){ + var a0, a1, a3, value_0; + value_0 = longValue; + a3 = 0; + if (value_0 < 0) { + value_0 += $intern_54; + a3 = $intern_51; + } + a1 = round_int(value_0 / $intern_53); + a0 = round_int(value_0 - a1 * $intern_53); + return create0(a0, a1, a3); +} + +function toDouble_0(a){ + var d; + if (isSmallLong0(a)) { + d = a; + return d == -0.?0:d; + } + return toDouble(a); +} + +function toInt_0(a){ + if (isSmallLong0(a)) { + return a | 0; + } + return toInt(a); +} + +function toString_39(a){ + if (isSmallLong0(a)) { + return '' + a; + } + return toString_38(a); +} + +function xor_0(a, b){ + return createLongEmul(xor(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function init(){ + $clinit_ElkJs(); + exportLayout(); +} + +function $split(this$static, input_0){ + return input_0.split(this$static); +} + +defineClass(1962, 1, {525:1}); +var Ljava_io_OutputStream_2_classLit = createForClass('java.io', 'OutputStream', 1962); +defineClass(1963, 1962, {525:1}); +var Ljava_io_FilterOutputStream_2_classLit = createForClass('java.io', 'FilterOutputStream', 1963); +function PrintStream(){ +} + +defineClass(866, 1963, {525:1}, PrintStream); +var Ljava_io_PrintStream_2_classLit = createForClass('java.io', 'PrintStream', 866); +function $replace0(this$static, start_0, end, toInsert){ + this$static.string = $substring_1(this$static.string, 0, start_0) + ('' + toInsert) + $substring_0(this$static.string, end); +} + +function $substring(this$static, end){ + return $substring_1(this$static.string, 0, end); +} + +function AbstractStringBuilder(string){ + this.string = string; +} + +defineClass(418, 1, {475:1}); +_.toString_0 = function toString_41(){ + return this.string; +} +; +var Ljava_lang_AbstractStringBuilder_2_classLit = createForClass('java.lang', 'AbstractStringBuilder', 418); +function ArithmeticException(explanation){ + RuntimeException_0.call(this, explanation); +} + +defineClass(529, 60, $intern_43, ArithmeticException); +var Ljava_lang_ArithmeticException_2_classLit = createForClass('java.lang', 'ArithmeticException', 529); +function IndexOutOfBoundsException(){ + RuntimeException.call(this); +} + +function IndexOutOfBoundsException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(73, 60, $intern_57, IndexOutOfBoundsException, IndexOutOfBoundsException_0); +var Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'IndexOutOfBoundsException', 73); +function ArrayIndexOutOfBoundsException(){ + IndexOutOfBoundsException.call(this); +} + +function ArrayIndexOutOfBoundsException_0(msg){ + IndexOutOfBoundsException_0.call(this, msg); +} + +defineClass(320, 73, {3:1, 320:1, 102:1, 73:1, 60:1, 78:1}, ArrayIndexOutOfBoundsException, ArrayIndexOutOfBoundsException_0); +var Ljava_lang_ArrayIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'ArrayIndexOutOfBoundsException', 320); +function ArrayStoreException(){ + RuntimeException.call(this); +} + +function ArrayStoreException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(528, 60, $intern_43, ArrayStoreException, ArrayStoreException_0); +var Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang', 'ArrayStoreException', 528); +function Error_0(message){ + Throwable_0.call(this, message); +} + +function Error_1(message, cause){ + Throwable_1.call(this, message, cause); +} + +defineClass(289, 78, $intern_58, Error_0); +var Ljava_lang_Error_2_classLit = createForClass('java.lang', 'Error', 289); +function AssertionError(){ + Throwable.call(this); +} + +function AssertionError_0(message){ + Error_1.call(this, message == null?'null':toString_40(message), instanceOf(message, 78)?castTo(message, 78):null); +} + +defineClass(194, 289, $intern_58, AssertionError, AssertionError_0); +var Ljava_lang_AssertionError_2_classLit = createForClass('java.lang', 'AssertionError', 194); +function $clinit_Boolean(){ + $clinit_Boolean = emptyMethod; + FALSE_0 = false; + TRUE_0 = true; +} + +function $booleanValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $compareTo_1(this$static, b){ + return compare_3((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); +} + +function compare_3(x_0, y_0){ + $clinit_Boolean(); + return x_0 == y_0?0:x_0?1:-1; +} + +function compareTo_Ljava_lang_Object__I__devirtual$(this$static, other){ + $clinit_Boolean(); + return instanceOfString(this$static)?$compareTo_9(this$static, castToString(other)):instanceOfDouble(this$static)?$compareTo_4(this$static, castToDouble(other)):instanceOfBoolean(this$static)?$compareTo_1(this$static, castToBoolean(other)):this$static.compareTo_0(other); +} + +booleanCastMap = {3:1, 476:1, 35:1}; +var FALSE_0, TRUE_0; +var Ljava_lang_Boolean_2_classLit = createForClass('java.lang', 'Boolean', 476); +function __parseAndValidateDouble(s){ + floatRegex == null && (floatRegex = new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$')); + if (!floatRegex.test(s)) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + return parseFloat(s); +} + +function __parseAndValidateInt(s, lowerBound, upperBound){ + var i, isTooLow, length_0, startIndex, toReturn; + if (s == null) { + throw toJs(new NumberFormatException('null')); + } + length_0 = s.length; + startIndex = length_0 > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 45 || (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 43))?1:0; + for (i = startIndex; i < length_0; i++) { + if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + } + toReturn = parseInt(s, 10); + isTooLow = toReturn < lowerBound; + if (isNaN(toReturn)) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + else if (isTooLow || toReturn > upperBound) { + throw toJs(new NumberFormatException('For input string: "' + s + '"')); + } + return toReturn; +} + +function __parseAndValidateLong(s){ + var c, firstTime, head, i, length_0, maxDigits, minValue, negative, orig, radixPower, toReturn; + if (s == null) { + throw toJs(new NumberFormatException('null')); + } + orig = s; + length_0 = s.length; + negative = false; + if (length_0 > 0) { + c = (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0)); + if (c == 45 || c == 43) { + s = s.substr(1); + --length_0; + negative = c == 45; + } + } + if (length_0 == 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + while (s.length > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 48)) { + s = s.substr(1); + --length_0; + } + if (length_0 > ($clinit_Number$__ParseLong() , maxLengthForRadix)[10]) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + for (i = 0; i < length_0; i++) { + if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + } + toReturn = 0; + maxDigits = maxDigitsForRadix[10]; + radixPower = maxDigitsRadixPower[10]; + minValue = neg_0(maxValueForRadix[10]); + firstTime = true; + head = length_0 % maxDigits; + if (head > 0) { + toReturn = -parseInt(s.substr(0, head), 10); + s = s.substr(head); + length_0 -= head; + firstTime = false; + } + while (length_0 >= maxDigits) { + head = parseInt(s.substr(0, maxDigits), 10); + s = s.substr(maxDigits); + length_0 -= maxDigits; + if (firstTime) { + firstTime = false; + } + else { + if (compare_2(toReturn, minValue) < 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + toReturn = mul_0(toReturn, radixPower); + } + toReturn = sub_2(toReturn, head); + } + if (compare_2(toReturn, 0) > 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + if (!negative) { + toReturn = neg_0(toReturn); + if (compare_2(toReturn, 0) < 0) { + throw toJs(new NumberFormatException('For input string: "' + orig + '"')); + } + } + return toReturn; +} + +function doubleValue__D__devirtual$(this$static){ + return instanceOfDouble(this$static)?(checkCriticalNotNull(this$static) , this$static):this$static.doubleValue(); +} + +defineClass(236, 1, {3:1, 236:1}); +var floatRegex; +var Ljava_lang_Number_2_classLit = createForClass('java.lang', 'Number', 236); +function $compareTo_2(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Byte(value_0){ + this.value_0 = value_0; +} + +function valueOf_2(b){ + var rebase, result; + rebase = b + 128; + result = ($clinit_Byte$BoxedValues() , boxedValues)[rebase]; + !result && (result = boxedValues[rebase] = new Byte(b)); + return result; +} + +defineClass(217, 236, {3:1, 217:1, 35:1, 236:1}, Byte); +_.compareTo_0 = function compareTo_5(b){ + return $compareTo_2(this, castTo(b, 217)); +} +; +_.doubleValue = function doubleValue_0(){ + return this.value_0; +} +; +_.equals_0 = function equals_35(o){ + return instanceOf(o, 217) && castTo(o, 217).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_35(){ + return this.value_0; +} +; +_.toString_0 = function toString_42(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Byte_2_classLit = createForClass('java.lang', 'Byte', 217); +function $clinit_Byte$BoxedValues(){ + $clinit_Byte$BoxedValues = emptyMethod; + boxedValues = initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, 256, 0, 1); +} + +var boxedValues; +function $compareTo_3(this$static, c){ + return this$static.value_0 - c.value_0; +} + +function Character(value_0){ + this.value_0 = value_0; +} + +function digit_0(c){ + if (c >= 48 && c < 48 + $wnd.Math.min(10, 10)) { + return c - 48; + } + if (c >= 97 && c < 97) { + return c - 97 + 10; + } + if (c >= 65 && c < 65) { + return c - 65 + 10; + } + return -1; +} + +function valueOf_3(c){ + var result; + if (c < 128) { + result = ($clinit_Character$BoxedValues() , boxedValues_0)[c]; + !result && (result = boxedValues_0[c] = new Character(c)); + return result; + } + return new Character(c); +} + +defineClass(172, 1, {3:1, 172:1, 35:1}, Character); +_.compareTo_0 = function compareTo_6(c){ + return $compareTo_3(this, castTo(c, 172)); +} +; +_.equals_0 = function equals_36(o){ + return instanceOf(o, 172) && castTo(o, 172).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_36(){ + return this.value_0; +} +; +_.toString_0 = function toString_43(){ + return String.fromCharCode(this.value_0); +} +; +_.value_0 = 0; +var digitRegex; +var Ljava_lang_Character_2_classLit = createForClass('java.lang', 'Character', 172); +function $clinit_Character$BoxedValues(){ + $clinit_Character$BoxedValues = emptyMethod; + boxedValues_0 = initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, 128, 0, 1); +} + +var boxedValues_0; +function ClassCastException(){ + RuntimeException.call(this); +} + +function ClassCastException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(205, 60, {3:1, 205:1, 102:1, 60:1, 78:1}, ClassCastException, ClassCastException_0); +var Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang', 'ClassCastException', 205); +function $compareTo_4(this$static, b){ + return compare_4((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); +} + +function $doubleValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $equals_4(this$static, o){ + return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(o); +} + +function $floatValue(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $hashCode_0(this$static){ + return round_int((checkCriticalNotNull(this$static) , this$static)); +} + +function $intValue(this$static){ + return round_int((checkCriticalNotNull(this$static) , this$static)); +} + +function $toString_6(this$static){ + return '' + (checkCriticalNotNull(this$static) , this$static); +} + +function compare_4(x_0, y_0){ + if (x_0 < y_0) { + return -1; + } + if (x_0 > y_0) { + return 1; + } + if (x_0 == y_0) { + return x_0 == 0?compare_4(1 / x_0, 1 / y_0):0; + } + return isNaN(x_0)?isNaN(y_0)?0:1:-1; +} + +function isInfinite(x_0){ + return !isNaN(x_0) && !isFinite(x_0); +} + +doubleCastMap = {3:1, 35:1, 333:1, 236:1}; +var Ljava_lang_Double_2_classLit = createForClass('java.lang', 'Double', 333); +function $compareTo_5(this$static, b){ + return compare_4(this$static.value_0, b.value_0); +} + +function Float(value_0){ + this.value_0 = value_0; +} + +function Float_0(s){ + this.value_0 = parseFloat_0(s); +} + +function parseFloat_0(s){ + var doubleValue; + doubleValue = __parseAndValidateDouble(s); + if (doubleValue > 3.4028234663852886E38) { + return $intern_59; + } + else if (doubleValue < -3.4028234663852886E38) { + return $intern_60; + } + return doubleValue; +} + +defineClass(155, 236, {3:1, 35:1, 155:1, 236:1}, Float, Float_0); +_.compareTo_0 = function compareTo_7(b){ + return $compareTo_5(this, castTo(b, 155)); +} +; +_.doubleValue = function doubleValue_1(){ + return this.value_0; +} +; +_.equals_0 = function equals_37(o){ + return instanceOf(o, 155) && $equals_4(this.value_0, castTo(o, 155).value_0); +} +; +_.hashCode_1 = function hashCode_37(){ + return round_int(this.value_0); +} +; +_.toString_0 = function toString_45(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Float_2_classLit = createForClass('java.lang', 'Float', 155); +function IllegalArgumentException(){ + RuntimeException.call(this); +} + +function IllegalArgumentException_0(message){ + RuntimeException_0.call(this, message); +} + +function IllegalArgumentException_1(cause){ + Throwable_1.call(this, 'The given string does not match the expected format for individual spacings.', cause); +} + +defineClass(32, 60, {3:1, 102:1, 32:1, 60:1, 78:1}, IllegalArgumentException, IllegalArgumentException_0, IllegalArgumentException_1); +var Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang', 'IllegalArgumentException', 32); +function IllegalStateException(){ + RuntimeException.call(this); +} + +function IllegalStateException_0(s){ + RuntimeException_0.call(this, s); +} + +defineClass(71, 60, $intern_43, IllegalStateException, IllegalStateException_0); +var Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang', 'IllegalStateException', 71); +function $compareTo_6(this$static, b){ + return compare_5(this$static.value_0, b.value_0); +} + +function Integer(value_0){ + this.value_0 = value_0; +} + +function bitCount(x_0){ + x_0 -= x_0 >> 1 & 1431655765; + x_0 = (x_0 >> 2 & 858993459) + (x_0 & 858993459); + x_0 = (x_0 >> 4) + x_0 & 252645135; + x_0 += x_0 >> 8; + x_0 += x_0 >> 16; + return x_0 & 63; +} + +function compare_5(x_0, y_0){ + return x_0 < y_0?-1:x_0 > y_0?1:0; +} + +function highestOneBit(i){ + var rtn; + if (i < 0) { + return $intern_42; + } + else if (i == 0) { + return 0; + } + else { + for (rtn = $intern_35; (rtn & i) == 0; rtn >>= 1) + ; + return rtn; + } +} + +function numberOfLeadingZeros_0(i){ + var m, n, y_0; + if (i < 0) { + return 0; + } + else if (i == 0) { + return 32; + } + else { + y_0 = -(i >> 16); + m = y_0 >> 16 & 16; + n = 16 - m; + i = i >> m; + y_0 = i - 256; + m = y_0 >> 16 & 8; + n += m; + i <<= m; + y_0 = i - $intern_61; + m = y_0 >> 16 & 4; + n += m; + i <<= m; + y_0 = i - $intern_17; + m = y_0 >> 16 & 2; + n += m; + i <<= m; + y_0 = i >> 14; + m = y_0 & ~(y_0 >> 1); + return n + 2 - m; + } +} + +function numberOfTrailingZeros(i){ + var r, rtn; + if (i == 0) { + return 32; + } + else { + rtn = 0; + for (r = 1; (r & i) == 0; r <<= 1) { + ++rtn; + } + return rtn; + } +} + +function reverse_1(i){ + var nibbles; + nibbles = ($clinit_Integer$ReverseNibbles() , reverseNibbles); + return nibbles[i >>> 28] | nibbles[i >> 24 & 15] << 4 | nibbles[i >> 20 & 15] << 8 | nibbles[i >> 16 & 15] << 12 | nibbles[i >> 12 & 15] << 16 | nibbles[i >> 8 & 15] << 20 | nibbles[i >> 4 & 15] << 24 | nibbles[i & 15] << 28; +} + +function rotateLeft(i, distance){ + while (distance-- > 0) { + i = i << 1 | (i < 0?1:0); + } + return i; +} + +function valueOf_4(i){ + var rebase, result; + if (i > -129 && i < 128) { + rebase = i + 128; + result = ($clinit_Integer$BoxedValues() , boxedValues_1)[rebase]; + !result && (result = boxedValues_1[rebase] = new Integer(i)); + return result; + } + return new Integer(i); +} + +defineClass(19, 236, {3:1, 35:1, 19:1, 236:1}, Integer); +_.compareTo_0 = function compareTo_8(b){ + return $compareTo_6(this, castTo(b, 19)); +} +; +_.doubleValue = function doubleValue_2(){ + return this.value_0; +} +; +_.equals_0 = function equals_38(o){ + return instanceOf(o, 19) && castTo(o, 19).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_38(){ + return this.value_0; +} +; +_.toString_0 = function toString_46(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Integer_2_classLit = createForClass('java.lang', 'Integer', 19); +function $clinit_Integer$BoxedValues(){ + $clinit_Integer$BoxedValues = emptyMethod; + boxedValues_1 = initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 256, 0, 1); +} + +var boxedValues_1; +function $clinit_Integer$ReverseNibbles(){ + $clinit_Integer$ReverseNibbles = emptyMethod; + reverseNibbles = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); +} + +var reverseNibbles; +function $compareTo_7(this$static, b){ + return compare_6(this$static.value_0, b.value_0); +} + +function Long(value_0){ + this.value_0 = value_0; +} + +function compare_6(x_0, y_0){ + return compare_2(x_0, y_0) < 0?-1:compare_2(x_0, y_0) > 0?1:0; +} + +function valueOf_5(i){ + var rebase, result; + if (compare_2(i, -129) > 0 && compare_2(i, 128) < 0) { + rebase = toInt_0(i) + 128; + result = ($clinit_Long$BoxedValues() , boxedValues_2)[rebase]; + !result && (result = boxedValues_2[rebase] = new Long(i)); + return result; + } + return new Long(i); +} + +defineClass(162, 236, {3:1, 35:1, 162:1, 236:1}, Long); +_.compareTo_0 = function compareTo_9(b){ + return $compareTo_7(this, castTo(b, 162)); +} +; +_.doubleValue = function doubleValue_3(){ + return toDouble_0(this.value_0); +} +; +_.equals_0 = function equals_39(o){ + return instanceOf(o, 162) && eq(castTo(o, 162).value_0, this.value_0); +} +; +_.hashCode_1 = function hashCode_39(){ + return toInt_0(this.value_0); +} +; +_.toString_0 = function toString_47(){ + return '' + toString_39(this.value_0); +} +; +_.value_0 = 0; +var Ljava_lang_Long_2_classLit = createForClass('java.lang', 'Long', 162); +function $clinit_Long$BoxedValues(){ + $clinit_Long$BoxedValues = emptyMethod; + boxedValues_2 = initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 256, 0, 1); +} + +var boxedValues_2; +function max_1(x_0, y_0){ + return compare_2(x_0, y_0) > 0?x_0:y_0; +} + +function signum(d){ + return d == 0 || isNaN(d)?d:d < 0?-1:1; +} + +defineClass(2039, 1, {}); +function NegativeArraySizeException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(1831, 60, $intern_43, NegativeArraySizeException); +var Ljava_lang_NegativeArraySizeException_2_classLit = createForClass('java.lang', 'NegativeArraySizeException', 1831); +function NullPointerException(){ + RuntimeException.call(this); +} + +function NullPointerException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(173, 598, {3:1, 102:1, 173:1, 60:1, 78:1}, NullPointerException, NullPointerException_0); +_.createError = function createError_0(msg){ + return new TypeError(msg); +} +; +var Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang', 'NullPointerException', 173); +function $clinit_Number$__ParseLong(){ + $clinit_Number$__ParseLong = emptyMethod; + var i; + maxDigitsForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); + maxDigitsRadixPower = initUnidimensionalArray(I_classLit, $intern_48, 25, 37, 15, 1); + maxLengthForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); + maxValueForRadix = initUnidimensionalArray(J_classLit, $intern_62, 25, 37, 14, 1); + for (i = 2; i <= 36; i++) { + maxDigitsRadixPower[i] = round_int($wnd.Math.pow(i, maxDigitsForRadix[i])); + maxValueForRadix[i] = div($intern_20, maxDigitsRadixPower[i]); + } +} + +var maxDigitsForRadix, maxDigitsRadixPower, maxLengthForRadix, maxValueForRadix; +function NumberFormatException(message){ + IllegalArgumentException_0.call(this, message); +} + +defineClass(127, 32, {3:1, 102:1, 32:1, 127:1, 60:1, 78:1}, NumberFormatException); +var Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang', 'NumberFormatException', 127); +function $compareTo_8(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Short(value_0){ + this.value_0 = value_0; +} + +function valueOf_6(s){ + var rebase, result; + if (s > -129 && s < 128) { + rebase = s + 128; + result = ($clinit_Short$BoxedValues() , boxedValues_3)[rebase]; + !result && (result = boxedValues_3[rebase] = new Short(s)); + return result; + } + return new Short(s); +} + +defineClass(184, 236, {3:1, 35:1, 236:1, 184:1}, Short); +_.compareTo_0 = function compareTo_10(b){ + return $compareTo_8(this, castTo(b, 184)); +} +; +_.doubleValue = function doubleValue_4(){ + return this.value_0; +} +; +_.equals_0 = function equals_40(o){ + return instanceOf(o, 184) && castTo(o, 184).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_40(){ + return this.value_0; +} +; +_.toString_0 = function toString_48(){ + return '' + this.value_0; +} +; +_.value_0 = 0; +var Ljava_lang_Short_2_classLit = createForClass('java.lang', 'Short', 184); +function $clinit_Short$BoxedValues(){ + $clinit_Short$BoxedValues = emptyMethod; + boxedValues_3 = initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 256, 0, 1); +} + +var boxedValues_3; +function StackTraceElement(methodName, fileName, lineNumber){ + this.className = 'Unknown'; + this.methodName = methodName; + this.fileName = fileName; + this.lineNumber = lineNumber; +} + +defineClass(310, 1, {3:1, 310:1}, StackTraceElement); +_.equals_0 = function equals_41(other){ + var st; + if (instanceOf(other, 310)) { + st = castTo(other, 310); + return this.lineNumber == st.lineNumber && this.methodName == st.methodName && this.className == st.className && this.fileName == st.fileName; + } + return false; +} +; +_.hashCode_1 = function hashCode_41(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(this.lineNumber), this.className, this.methodName, this.fileName])); +} +; +_.toString_0 = function toString_49(){ + return this.className + '.' + this.methodName + '(' + (this.fileName != null?this.fileName:'Unknown Source') + (this.lineNumber >= 0?':' + this.lineNumber:'') + ')'; +} +; +_.lineNumber = 0; +var Ljava_lang_StackTraceElement_2_classLit = createForClass('java.lang', 'StackTraceElement', 310); +function $charAt(this$static, index_0){ + checkCriticalStringElementIndex(index_0, this$static.length); + return this$static.charCodeAt(index_0); +} + +function $compareTo_9(this$static, other){ + var a, b; + a = (checkCriticalNotNull(this$static) , this$static); + b = (checkCriticalNotNull(other) , other); + return a == b?0:a < b?-1:1; +} + +function $equals_5(this$static, other){ + return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other); +} + +function $equalsIgnoreCase(this$static, other){ + checkCriticalNotNull(this$static); + if (other == null) { + return false; + } + if ($equals_5(this$static, other)) { + return true; + } + return this$static.length == other.length && $equals_5(this$static.toLowerCase(), other.toLowerCase()); +} + +function $getChars0(this$static, srcBegin, srcEnd, dst, dstBegin){ + while (srcBegin < srcEnd) { + dst[dstBegin++] = $charAt(this$static, srcBegin++); + } +} + +function $indexOf_0(this$static, codePoint, startIndex){ + return $indexOf_2(this$static, fromCodePoint(codePoint), startIndex); +} + +function $indexOf_1(this$static, str){ + return this$static.indexOf(str); +} + +function $indexOf_2(this$static, str, startIndex){ + return this$static.indexOf(str, startIndex); +} + +function $intern(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $lastIndexOf(this$static, str){ + return this$static.lastIndexOf(str); +} + +function $lastIndexOf_0(this$static, str, start_0){ + return this$static.lastIndexOf(str, start_0); +} + +function $split_0(this$static, regex){ + var compiled, count, lastNonEmpty, lastTrail, matchIndex, matchObj, out, trail; + compiled = new RegExp(regex, 'g'); + out = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); + count = 0; + trail = this$static; + lastTrail = null; + while (true) { + matchObj = compiled.exec(trail); + if (matchObj == null || trail == '') { + out[count] = trail; + break; + } + else { + matchIndex = matchObj.index; + out[count] = trail.substr(0, matchIndex); + trail = $substring_1(trail, matchIndex + matchObj[0].length, trail.length); + compiled.lastIndex = 0; + if (lastTrail == trail) { + out[count] = trail.substr(0, 1); + trail = trail.substr(1); + } + lastTrail = trail; + ++count; + } + } + if (this$static.length > 0) { + lastNonEmpty = out.length; + while (lastNonEmpty > 0 && out[lastNonEmpty - 1] == '') { + --lastNonEmpty; + } + lastNonEmpty < out.length && (out.length = lastNonEmpty); + } + return out; +} + +function $startsWith(this$static, prefix){ + return $equals_5(this$static.substr(0, prefix.length), prefix); +} + +function $startsWith_0(this$static, prefix, toffset){ + return toffset >= 0 && $equals_5(this$static.substr(toffset, prefix.length), prefix); +} + +function $substring_0(this$static, beginIndex){ + return this$static.substr(beginIndex); +} + +function $substring_1(this$static, beginIndex, endIndex){ + return this$static.substr(beginIndex, endIndex - beginIndex); +} + +function $toCharArray(this$static){ + var charArr, n; + n = this$static.length; + charArr = initUnidimensionalArray(C_classLit, $intern_44, 25, n, 15, 1); + $getChars0(this$static, 0, n, charArr, 0); + return charArr; +} + +function $toLowerCase(this$static, locale){ + return locale == ($clinit_Locale() , $clinit_Locale() , defaultLocale)?this$static.toLocaleLowerCase():this$static.toLowerCase(); +} + +function $toString_7(this$static){ + return checkCriticalNotNull(this$static) , this$static; +} + +function $trim(this$static){ + var end, length_0, start_0; + length_0 = this$static.length; + start_0 = 0; + while (start_0 < length_0 && (checkCriticalStringElementIndex(start_0, this$static.length) , this$static.charCodeAt(start_0) <= 32)) { + ++start_0; + } + end = length_0; + while (end > start_0 && (checkCriticalStringElementIndex(end - 1, this$static.length) , this$static.charCodeAt(end - 1) <= 32)) { + --end; + } + return start_0 > 0 || end < length_0?this$static.substr(start_0, end - start_0):this$static; +} + +function fromCharCode(array){ + return String.fromCharCode.apply(null, array); +} + +function fromCodePoint(codePoint){ + var hiSurrogate, loSurrogate; + if (codePoint >= $intern_63) { + hiSurrogate = $intern_64 + (codePoint - $intern_63 >> 10 & 1023) & $intern_46; + loSurrogate = 56320 + (codePoint - $intern_63 & 1023) & $intern_46; + return String.fromCharCode(hiSurrogate) + ('' + String.fromCharCode(loSurrogate)); + } + else { + return String.fromCharCode(codePoint & $intern_46); + } +} + +function valueOf_7(x_0){ + return x_0 == null?'null':toString_40(x_0); +} + +function valueOf_8(x_0){ + return valueOf_9(x_0, 0, x_0.length); +} + +function valueOf_9(x_0, offset, count){ + var batchEnd, batchStart, end, s; + end = offset + count; + checkCriticalStringBounds(offset, end, x_0.length); + s = ''; + for (batchStart = offset; batchStart < end;) { + batchEnd = $wnd.Math.min(batchStart + 10000, end); + s += fromCharCode(x_0.slice(batchStart, batchEnd)); + batchStart = batchEnd; + } + return s; +} + +stringCastMap = {3:1, 475:1, 35:1, 2:1}; +var Ljava_lang_String_2_classLit = createForClass('java.lang', 'String', 2); +function $append(this$static, x_0){ + this$static.string += String.fromCharCode(x_0); + return this$static; +} + +function $append_0(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_1(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_2(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_3(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_4(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $deleteCharAt(this$static, start_0){ + this$static.string = $substring_1(this$static.string, 0, start_0) + '' + $substring_0(this$static.string, start_0 + 1); + return this$static; +} + +function StringBuffer(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuffer_0(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuffer_1(s){ + AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); +} + +defineClass(107, 418, {475:1}, StringBuffer, StringBuffer_0, StringBuffer_1); +var Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang', 'StringBuffer', 107); +function $append_5(this$static, x_0){ + this$static.string += String.fromCharCode(x_0); + return this$static; +} + +function $append_6(this$static, x_0){ + this$static.string += x_0; + return this$static; +} + +function $append_7(this$static, x_0){ + return this$static.string += '' + x_0 , this$static; +} + +function $append_8(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_9(this$static, x_0, start_0, end){ + this$static.string += '' + $substring_1(x_0 == null?'null':toString_40(x_0), start_0, end); + return this$static; +} + +function $append_10(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_11(this$static, x_0){ + this$static.string += '' + x_0; + return this$static; +} + +function $append_12(this$static, x_0){ + this$static.string += valueOf_9(x_0, 0, x_0.length); + return this$static; +} + +function $append_13(this$static, x_0, len){ + this$static.string += valueOf_9(x_0, 0, len); + return this$static; +} + +function $insert_0(this$static, index_0, x_0){ + this$static.string = $substring_1(this$static.string, 0, index_0) + ('' + x_0) + $substring_0(this$static.string, index_0); + return this$static; +} + +function StringBuilder(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuilder_0(){ + AbstractStringBuilder.call(this, ''); +} + +function StringBuilder_1(s){ + AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); +} + +defineClass(100, 418, {475:1}, StringBuilder, StringBuilder_0, StringBuilder_1); +var Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang', 'StringBuilder', 100); +function StringIndexOutOfBoundsException(message){ + IndexOutOfBoundsException_0.call(this, message); +} + +defineClass(687, 73, $intern_57, StringIndexOutOfBoundsException); +var Ljava_lang_StringIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'StringIndexOutOfBoundsException', 687); +function $clinit_System(){ + $clinit_System = emptyMethod; + err_0 = new PrintStream; +} + +function arraycopy(src_0, srcOfs, dest, destOfs, len){ + $clinit_System(); + var destArray, destComp, destEnd, destType, destlen, srcArray, srcComp, srcType, srclen; + checkCriticalNotNull_0(src_0, 'src'); + checkCriticalNotNull_0(dest, 'dest'); + srcType = getClass__Ljava_lang_Class___devirtual$(src_0); + destType = getClass__Ljava_lang_Class___devirtual$(dest); + checkCriticalArrayType_0((srcType.modifiers & 4) != 0, 'srcType is not an array'); + checkCriticalArrayType_0((destType.modifiers & 4) != 0, 'destType is not an array'); + srcComp = srcType.componentType; + destComp = destType.componentType; + checkCriticalArrayType_0((srcComp.modifiers & 1) != 0?srcComp == destComp:(destComp.modifiers & 1) == 0, "Array types don't match"); + srclen = src_0.length; + destlen = dest.length; + if (srcOfs < 0 || destOfs < 0 || len < 0 || srcOfs + len > srclen || destOfs + len > destlen) { + throw toJs(new IndexOutOfBoundsException); + } + if ((srcComp.modifiers & 1) == 0 && srcType != destType) { + srcArray = castToArray(src_0); + destArray = castToArray(dest); + if (maskUndefined(src_0) === maskUndefined(dest) && srcOfs < destOfs) { + srcOfs += len; + for (destEnd = destOfs + len; destEnd-- > destOfs;) { + setCheck(destArray, destEnd, srcArray[--srcOfs]); + } + } + else { + for (destEnd = destOfs + len; destOfs < destEnd;) { + setCheck(destArray, destOfs++, srcArray[srcOfs++]); + } + } + } + else + len > 0 && copy_0(src_0, srcOfs, dest, destOfs, len, true); +} + +defineClass(2043, 1, {}); +var err_0; +function Throwable$lambda$0$Type(){ +} + +defineClass(844, 1, {}, Throwable$lambda$0$Type); +_.apply_0 = function apply_20(arg0){ + return castTo(arg0, 78).backingJsObject; +} +; +var Ljava_lang_Throwable$lambda$0$Type_2_classLit = createForClass('java.lang', 'Throwable/lambda$0$Type', 844); +function UnsupportedOperationException(){ + RuntimeException.call(this); +} + +function UnsupportedOperationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(41, 60, {3:1, 102:1, 60:1, 78:1, 41:1}, UnsupportedOperationException, UnsupportedOperationException_0); +var Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang', 'UnsupportedOperationException', 41); +function $clinit_BigDecimal(){ + $clinit_BigDecimal = emptyMethod; + var i, j, j0; + new BigDecimal(1, 0); + new BigDecimal(10, 0); + new BigDecimal(0, 0); + BI_SCALED_BY_ZERO = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); + CH_ZEROS = initUnidimensionalArray(C_classLit, $intern_44, 25, 100, 15, 1); + DOUBLE_FIVE_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); + DOUBLE_FIVE_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_FIVE_POW.length, 15, 1); + DOUBLE_TEN_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 10, 100, $intern_45, 10000, $intern_66, 1000000, 10000000, 100000000, $intern_55, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000]); + DOUBLE_TEN_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_TEN_POW.length, 15, 1); + ZERO_SCALED_BY = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); + i = 0; + for (; i < ZERO_SCALED_BY.length; i++) { + BI_SCALED_BY_ZERO[i] = new BigDecimal(i, 0); + ZERO_SCALED_BY[i] = new BigDecimal(0, i); + CH_ZEROS[i] = 48; + } + for (; i < CH_ZEROS.length; i++) { + CH_ZEROS[i] = 48; + } + for (j0 = 0; j0 < DOUBLE_FIVE_POW_BIT_LENGTH.length; j0++) { + DOUBLE_FIVE_POW_BIT_LENGTH[j0] = bitLength(DOUBLE_FIVE_POW[j0]); + } + for (j = 0; j < DOUBLE_TEN_POW_BIT_LENGTH.length; j++) { + DOUBLE_TEN_POW_BIT_LENGTH[j] = bitLength(DOUBLE_TEN_POW[j]); + } + $clinit_Multiplication(); +} + +function $compareTo_10(this$static, val){ + var diffPrecision, diffScale, thisSign, thisUnscaled, valUnscaled, valueSign; + thisSign = $signum(this$static); + valueSign = $signum(val); + if (thisSign == valueSign) { + if (this$static.scale == val.scale && this$static.bitLength < 54 && val.bitLength < 54) { + return this$static.smallValue < val.smallValue?-1:this$static.smallValue > val.smallValue?1:0; + } + diffScale = this$static.scale - val.scale; + diffPrecision = (this$static.precision > 0?this$static.precision:$wnd.Math.floor((this$static.bitLength - 1) * $intern_67) + 1) - (val.precision > 0?val.precision:$wnd.Math.floor((val.bitLength - 1) * $intern_67) + 1); + if (diffPrecision > diffScale + 1) { + return thisSign; + } + else if (diffPrecision < diffScale - 1) { + return -thisSign; + } + else { + thisUnscaled = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal); + valUnscaled = (!val.intVal && (val.intVal = valueOf_10(val.smallValue)) , val.intVal); + diffScale < 0?(thisUnscaled = $multiply(thisUnscaled, powerOf10(-diffScale))):diffScale > 0 && (valUnscaled = $multiply(valUnscaled, powerOf10(diffScale))); + return $compareTo_11(thisUnscaled, valUnscaled); + } + } + else + return thisSign < valueSign?-1:1; +} + +function $initFrom(this$static, val){ + var begin, ch_0, i, last, offset, scaleString, unscaled, unscaledBuffer; + begin = 0; + offset = 0; + last = val.length; + scaleString = null; + unscaledBuffer = new StringBuilder_0; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { + ++offset; + ++begin; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 45))) { + throw toJs(new NumberFormatException('For input string: "' + val + '"')); + } + } + while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 46) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { + ++offset; + } + unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 46)) { + ++offset; + begin = offset; + while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { + ++offset; + } + this$static.scale = offset - begin; + unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); + } + else { + this$static.scale = 0; + } + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 101 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 69))) { + ++offset; + begin = offset; + if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { + ++offset; + offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 45) && ++begin; + } + scaleString = val.substr(begin, last - begin); + this$static.scale = this$static.scale - __parseAndValidateInt(scaleString, $intern_42, $intern_0); + if (this$static.scale != round_int(this$static.scale)) { + throw toJs(new NumberFormatException('Scale out of range.')); + } + } + unscaled = unscaledBuffer.string; + if (unscaled.length < 16) { + this$static.smallValue = (unscaledRegex == null && (unscaledRegex = new RegExp('^[+-]?\\d*$', 'i')) , unscaledRegex.test(unscaled)?parseInt(unscaled, 10):NaN); + if (isNaN(this$static.smallValue)) { + throw toJs(new NumberFormatException('For input string: "' + val + '"')); + } + this$static.bitLength = bitLength(this$static.smallValue); + } + else { + $setUnscaledValue(this$static, new BigInteger_4(unscaled)); + } + this$static.precision = unscaledBuffer.string.length; + for (i = 0; i < unscaledBuffer.string.length; ++i) { + ch_0 = $charAt(unscaledBuffer.string, i); + if (ch_0 != 45 && ch_0 != 48) { + break; + } + --this$static.precision; + } + this$static.precision == 0 && (this$static.precision = 1); +} + +function $setUnscaledValue(this$static, unscaledValue){ + var value_0; + this$static.intVal = unscaledValue; + this$static.bitLength = bitLength_1(unscaledValue); + this$static.bitLength < 54 && (this$static.smallValue = (value_0 = unscaledValue.numberLength > 1?or_0(shl_0(unscaledValue.digits[1], 32), and_0(unscaledValue.digits[0], $intern_68)):and_0(unscaledValue.digits[0], $intern_68) , toDouble_0(mul_0(unscaledValue.sign, value_0)))); +} + +function $signum(this$static){ + if (this$static.bitLength < 54) { + return this$static.smallValue < 0?-1:this$static.smallValue > 0?1:0; + } + return (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign; +} + +function $toPlainString(this$static){ + var begin, delta, intStr, result; + intStr = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); + if (this$static.scale == 0 || this$static.bitLength == 0 && this$static.smallValue != -1 && this$static.scale < 0) { + return intStr; + } + begin = $signum(this$static) < 0?1:0; + delta = this$static.scale; + result = (intStr.length + 1 + $wnd.Math.abs(round_int(this$static.scale)) , new StringBuilder_0); + begin == 1 && (result.string += '-' , result); + if (this$static.scale > 0) { + delta -= intStr.length - begin; + if (delta >= 0) { + result.string += '0.'; + for (; delta > CH_ZEROS.length; delta -= CH_ZEROS.length) { + $append_12(result, CH_ZEROS); + } + $append_13(result, CH_ZEROS, round_int(delta)); + $append_11(result, intStr.substr(begin)); + } + else { + delta = begin - delta; + $append_11(result, $substring_1(intStr, begin, round_int(delta))); + result.string += '.'; + $append_11(result, $substring_0(intStr, round_int(delta))); + } + } + else { + $append_11(result, intStr.substr(begin)); + for (; delta < -CH_ZEROS.length; delta += CH_ZEROS.length) { + $append_12(result, CH_ZEROS); + } + $append_13(result, CH_ZEROS, round_int(-delta)); + } + return result.string; +} + +function $toString_8(this$static){ + var begin, end, exponent, intString, result; + if (this$static.toStringImage != null) { + return this$static.toStringImage; + } + if (this$static.bitLength < 32) { + this$static.toStringImage = toDecimalScaledString(fromDouble_0(this$static.smallValue), round_int(this$static.scale)); + return this$static.toStringImage; + } + intString = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); + if (this$static.scale == 0) { + return intString; + } + begin = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign < 0?2:1; + end = intString.length; + exponent = -this$static.scale + end - begin; + result = new StringBuilder; + result.string += '' + intString; + if (this$static.scale > 0 && exponent >= -6) { + if (exponent >= 0) { + $insert_0(result, end - round_int(this$static.scale), String.fromCharCode(46)); + } + else { + result.string = $substring_1(result.string, 0, begin - 1) + '0.' + $substring_0(result.string, begin - 1); + $insert_0(result, begin + 1, valueOf_9(CH_ZEROS, 0, -round_int(exponent) - 1)); + } + } + else { + if (end - begin >= 1) { + $insert_0(result, begin, String.fromCharCode(46)); + ++end; + } + $insert_0(result, end, String.fromCharCode(69)); + exponent > 0 && $insert_0(result, ++end, String.fromCharCode(43)); + $insert_0(result, ++end, '' + toString_39(fromDouble_0(exponent))); + } + this$static.toStringImage = result.string; + return this$static.toStringImage; +} + +function BigDecimal(smallValue, scale){ + this.scale = scale; + this.bitLength = bitLength_0(smallValue); + this.bitLength < 54?(this.smallValue = toDouble_0(smallValue)):(this.intVal = valueOf_11(smallValue)); +} + +function BigDecimal_0(val){ + $clinit_BigDecimal(); + $initFrom(this, val); +} + +function bitLength(value_0){ + var negative, result; + if (value_0 > -140737488355328 && value_0 < 140737488355328) { + if (value_0 == 0) { + return 0; + } + negative = value_0 < 0; + negative && (value_0 = -value_0); + result = round_int($wnd.Math.floor($wnd.Math.log(value_0) / 0.6931471805599453)); + (!negative || value_0 != $wnd.Math.pow(2, result)) && ++result; + return result; + } + return bitLength_0(fromDouble_0(value_0)); +} + +function bitLength_0(value_0){ + var high; + compare_2(value_0, 0) < 0 && (value_0 = not_0(value_0)); + return high = toInt_0(shr_0(value_0, 32)) , 64 - (high != 0?numberOfLeadingZeros_0(high):numberOfLeadingZeros_0(toInt_0(value_0)) + 32); +} + +defineClass(240, 236, {3:1, 35:1, 236:1, 240:1}, BigDecimal, BigDecimal_0); +_.compareTo_0 = function compareTo_11(val){ + return $compareTo_10(this, castTo(val, 240)); +} +; +_.doubleValue = function doubleValue_5(){ + return __parseAndValidateDouble($toString_8(this)); +} +; +_.equals_0 = function equals_42(x_0){ + var x1; + if (this === x_0) { + return true; + } + if (instanceOf(x_0, 240)) { + x1 = castTo(x_0, 240); + return this.scale == x1.scale && $compareTo_10(this, x1) == 0; + } + return false; +} +; +_.hashCode_1 = function hashCode_42(){ + var longValue; + if (this.hashCode_0 != 0) { + return this.hashCode_0; + } + if (this.bitLength < 54) { + longValue = fromDouble_0(this.smallValue); + this.hashCode_0 = toInt_0(and_0(longValue, -1)); + this.hashCode_0 = 33 * this.hashCode_0 + toInt_0(and_0(shr_0(longValue, 32), -1)); + this.hashCode_0 = 17 * this.hashCode_0 + round_int(this.scale); + return this.hashCode_0; + } + this.hashCode_0 = 17 * $hashCode_1(this.intVal) + round_int(this.scale); + return this.hashCode_0; +} +; +_.toString_0 = function toString_50(){ + return $toString_8(this); +} +; +_.bitLength = 0; +_.hashCode_0 = 0; +_.precision = 0; +_.scale = 0; +_.smallValue = 0; +var BI_SCALED_BY_ZERO, CH_ZEROS, DOUBLE_FIVE_POW, DOUBLE_FIVE_POW_BIT_LENGTH, DOUBLE_TEN_POW, DOUBLE_TEN_POW_BIT_LENGTH, ZERO_SCALED_BY, unscaledRegex; +var Ljava_math_BigDecimal_2_classLit = createForClass('java.math', 'BigDecimal', 240); +function $clinit_BigInteger(){ + $clinit_BigInteger = emptyMethod; + var i; + ONE_0 = new BigInteger_0(1, 1); + TEN = new BigInteger_0(1, 10); + ZERO_0 = new BigInteger_0(0, 0); + MINUS_ONE = new BigInteger_0(-1, 1); + SMALL_VALUES = stampJavaTypeInfo(getClassLiteralForArray(Ljava_math_BigInteger_2_classLit, 1), $intern_16, 91, 0, [ZERO_0, ONE_0, new BigInteger_0(1, 2), new BigInteger_0(1, 3), new BigInteger_0(1, 4), new BigInteger_0(1, 5), new BigInteger_0(1, 6), new BigInteger_0(1, 7), new BigInteger_0(1, 8), new BigInteger_0(1, 9), TEN]); + TWO_POWS = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + for (i = 0; i < TWO_POWS.length; i++) { + TWO_POWS[i] = valueOf_11(shl_0(1, i)); + } +} + +function $compareTo_11(this$static, val){ + if (this$static.sign > val.sign) { + return 1; + } + if (this$static.sign < val.sign) { + return -1; + } + if (this$static.numberLength > val.numberLength) { + return this$static.sign; + } + if (this$static.numberLength < val.numberLength) { + return -val.sign; + } + return this$static.sign * compareArrays(this$static.digits, val.digits, this$static.numberLength); +} + +function $cutOffLeadingZeroes(this$static){ + while (this$static.numberLength > 0 && this$static.digits[--this$static.numberLength] == 0) + ; + this$static.digits[this$static.numberLength++] == 0 && (this$static.sign = 0); +} + +function $equals_6(this$static, x_0){ + var x1; + if (maskUndefined(this$static) === maskUndefined(x_0)) { + return true; + } + if (instanceOf(x_0, 91)) { + x1 = castTo(x_0, 91); + return this$static.sign == x1.sign && this$static.numberLength == x1.numberLength && $equalsArrays(this$static, x1.digits); + } + return false; +} + +function $equalsArrays(this$static, b){ + var i; + for (i = this$static.numberLength - 1; i >= 0 && this$static.digits[i] === b[i]; i--) + ; + return i < 0; +} + +function $getFirstNonzeroDigit(this$static){ + var i; + if (this$static.firstNonzeroDigit == -2) { + if (this$static.sign == 0) { + i = -1; + } + else { + for (i = 0; this$static.digits[i] == 0; i++) + ; + } + this$static.firstNonzeroDigit = i; + } + return this$static.firstNonzeroDigit; +} + +function $hashCode_1(this$static){ + var i; + if (this$static.hashCode_0 != 0) { + return this$static.hashCode_0; + } + for (i = 0; i < this$static.digits.length; i++) { + this$static.hashCode_0 = this$static.hashCode_0 * 33 + (this$static.digits[i] & -1); + } + this$static.hashCode_0 = this$static.hashCode_0 * this$static.sign; + return this$static.hashCode_0; +} + +function $multiply(this$static, val){ + if (val.sign == 0) { + return ZERO_0; + } + if (this$static.sign == 0) { + return ZERO_0; + } + return $clinit_Multiplication() , karatsuba(this$static, val); +} + +function $pow(this$static, exp_0){ + var x_0; + if (exp_0 < 0) { + throw toJs(new ArithmeticException('Negative exponent')); + } + if (exp_0 == 0) { + return ONE_0; + } + else if (exp_0 == 1 || $equals_6(this$static, ONE_0) || $equals_6(this$static, ZERO_0)) { + return this$static; + } + if (!$testBit(this$static, 0)) { + x_0 = 1; + while (!$testBit(this$static, x_0)) { + ++x_0; + } + return $multiply(getPowerOfTwo(x_0 * exp_0), $pow($shiftRight(this$static, x_0), exp_0)); + } + return pow_0(this$static, exp_0); +} + +function $shiftLeft(this$static, n){ + if (n == 0 || this$static.sign == 0) { + return this$static; + } + return n > 0?shiftLeft(this$static, n):shiftRight(this$static, -n); +} + +function $shiftRight(this$static, n){ + if (n == 0 || this$static.sign == 0) { + return this$static; + } + return n > 0?shiftRight(this$static, n):shiftLeft(this$static, -n); +} + +function $testBit(this$static, n){ + var digit, firstNonZeroDigit, intCount; + if (n == 0) { + return (this$static.digits[0] & 1) != 0; + } + if (n < 0) { + throw toJs(new ArithmeticException('Negative bit address')); + } + intCount = n >> 5; + if (intCount >= this$static.numberLength) { + return this$static.sign < 0; + } + digit = this$static.digits[intCount]; + n = 1 << (n & 31); + if (this$static.sign < 0) { + firstNonZeroDigit = $getFirstNonzeroDigit(this$static); + if (intCount < firstNonZeroDigit) { + return false; + } + else + firstNonZeroDigit == intCount?(digit = -digit):(digit = ~digit); + } + return (digit & n) != 0; +} + +function BigInteger(sign, val){ + this.sign = sign; + if (val < $intern_69) { + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val | 0]); + } + else { + this.numberLength = 2; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val % $intern_69 | 0, val / $intern_69 | 0]); + } +} + +function BigInteger_0(sign, value_0){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [value_0]); +} + +function BigInteger_1(sign, numberLength, digits){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = numberLength; + this.digits = digits; +} + +function BigInteger_2(sign, val){ + this.sign = sign; + if (eq(and_0(val, -4294967296), 0)) { + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val)]); + } + else { + this.numberLength = 2; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val), toInt_0(shr_0(val, 32))]); + } +} + +function BigInteger_3(digits){ + $clinit_BigInteger(); + if (digits.length == 0) { + this.sign = 0; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); + } + else { + this.sign = 1; + this.numberLength = digits.length; + this.digits = digits; + $cutOffLeadingZeroes(this); + } +} + +function BigInteger_4(val){ + $clinit_BigInteger(); + BigInteger_5.call(this, val); +} + +function BigInteger_5(val){ + checkCriticalNotNull(val); + if (val.length == 0) { + throw toJs(new NumberFormatException('Zero length BigInteger')); + } + setFromString(this, val); +} + +function getPowerOfTwo(exp_0){ + var bitN, intCount, resDigits; + if (exp_0 < TWO_POWS.length) { + return TWO_POWS[exp_0]; + } + intCount = exp_0 >> 5; + bitN = exp_0 & 31; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, intCount + 1, 15, 1); + resDigits[intCount] = 1 << bitN; + return new BigInteger_1(1, intCount + 1, resDigits); +} + +function setFromString(bi, val){ + var bigRadix, bigRadixDigit, bigRadixDigitsLength, charsPerInt, digitIndex, digits, endChar, newDigit, numberLength, sign, startChar, stringLength, substrEnd, substrStart, topChars; + stringLength = val.length; + endChar = stringLength; + checkCriticalStringElementIndex(0, val.length); + if (val.charCodeAt(0) == 45) { + sign = -1; + startChar = 1; + --stringLength; + } + else { + sign = 1; + startChar = 0; + } + charsPerInt = ($clinit_Conversion() , digitFitInInt)[10]; + bigRadixDigitsLength = stringLength / charsPerInt | 0; + topChars = stringLength % charsPerInt; + topChars != 0 && ++bigRadixDigitsLength; + digits = initUnidimensionalArray(I_classLit, $intern_48, 25, bigRadixDigitsLength, 15, 1); + bigRadix = bigRadices[8]; + digitIndex = 0; + substrEnd = startChar + (topChars == 0?charsPerInt:topChars); + for (substrStart = startChar; substrStart < endChar; substrStart = substrEnd , substrEnd = substrStart + charsPerInt) { + bigRadixDigit = __parseAndValidateInt(val.substr(substrStart, substrEnd - substrStart), $intern_42, $intern_0); + newDigit = ($clinit_Multiplication() , multiplyByInt(digits, digits, digitIndex, bigRadix)); + newDigit += inplaceAdd(digits, digitIndex, bigRadixDigit); + digits[digitIndex++] = newDigit; + } + numberLength = digitIndex; + bi.sign = sign; + bi.numberLength = numberLength; + bi.digits = digits; + $cutOffLeadingZeroes(bi); +} + +function valueOf_10(val){ + $clinit_BigInteger(); + if (val < 0) { + if (val != -1) { + return new BigInteger(-1, -val); + } + return MINUS_ONE; + } + else + return val <= 10?SMALL_VALUES[round_int(val)]:new BigInteger(1, val); +} + +function valueOf_11(val){ + $clinit_BigInteger(); + if (compare_2(val, 0) < 0) { + if (compare_2(val, -1) != 0) { + return new BigInteger_2(-1, neg_0(val)); + } + return MINUS_ONE; + } + else + return compare_2(val, 10) <= 0?SMALL_VALUES[toInt_0(val)]:new BigInteger_2(1, val); +} + +defineClass(91, 236, {3:1, 35:1, 236:1, 91:1}, BigInteger, BigInteger_0, BigInteger_1, BigInteger_2, BigInteger_3, BigInteger_4); +_.compareTo_0 = function compareTo_12(val){ + return $compareTo_11(this, castTo(val, 91)); +} +; +_.doubleValue = function doubleValue_6(){ + return __parseAndValidateDouble(toDecimalScaledString_0(this, 0)); +} +; +_.equals_0 = function equals_43(x_0){ + return $equals_6(this, x_0); +} +; +_.hashCode_1 = function hashCode_43(){ + return $hashCode_1(this); +} +; +_.toString_0 = function toString_51(){ + return toDecimalScaledString_0(this, 0); +} +; +_.firstNonzeroDigit = -2; +_.hashCode_0 = 0; +_.numberLength = 0; +_.sign = 0; +var MINUS_ONE, ONE_0, SMALL_VALUES, TEN, TWO_POWS, ZERO_0; +var Ljava_math_BigInteger_2_classLit = createForClass('java.math', 'BigInteger', 91); +function bitLength_1(val){ + var bLength, highDigit, i; + if (val.sign == 0) { + return 0; + } + bLength = val.numberLength << 5; + highDigit = val.digits[val.numberLength - 1]; + if (val.sign < 0) { + i = $getFirstNonzeroDigit(val); + if (i == val.numberLength - 1) { + --highDigit; + highDigit = highDigit | 0; + } + } + bLength -= numberOfLeadingZeros_0(highDigit); + return bLength; +} + +function shiftLeft(source, count){ + var intCount, resDigits, resLength, result; + intCount = count >> 5; + count &= 31; + resLength = source.numberLength + intCount + (count == 0?0:1); + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); + shiftLeft_0(resDigits, source.digits, intCount, count); + result = new BigInteger_1(source.sign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function shiftLeft_0(result, source, intCount, count){ + var i, i0, rightShiftCount; + if (count == 0) { + arraycopy(source, 0, result, intCount, result.length - intCount); + } + else { + rightShiftCount = 32 - count; + result[result.length - 1] = 0; + for (i0 = result.length - 1; i0 > intCount; i0--) { + result[i0] |= source[i0 - intCount - 1] >>> rightShiftCount; + result[i0 - 1] = source[i0 - intCount - 1] << count; + } + } + for (i = 0; i < intCount; i++) { + result[i] = 0; + } +} + +function shiftLeftOneBit(result, source, srcLen){ + var carry, i, val; + carry = 0; + for (i = 0; i < srcLen; i++) { + val = source[i]; + result[i] = val << 1 | carry; + carry = val >>> 31; + } + carry != 0 && (result[srcLen] = carry); +} + +function shiftRight(source, count){ + var i, intCount, resDigits, resLength, result; + intCount = count >> 5; + count &= 31; + if (intCount >= source.numberLength) { + return source.sign < 0?($clinit_BigInteger() , MINUS_ONE):($clinit_BigInteger() , ZERO_0); + } + resLength = source.numberLength - intCount; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength + 1, 15, 1); + shiftRight_0(resDigits, resLength, source.digits, intCount, count); + if (source.sign < 0) { + for (i = 0; i < intCount && source.digits[i] == 0; i++) + ; + if (i < intCount || count > 0 && source.digits[i] << 32 - count != 0) { + for (i = 0; i < resLength && resDigits[i] == -1; i++) { + resDigits[i] = 0; + } + i == resLength && ++resLength; + ++resDigits[i]; + } + } + result = new BigInteger_1(source.sign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function shiftRight_0(result, resultLen, source, intCount, count){ + var allZero, i, leftShiftCount; + allZero = true; + for (i = 0; i < intCount; i++) { + allZero = allZero & source[i] == 0; + } + if (count == 0) { + arraycopy(source, intCount, result, 0, resultLen); + i = resultLen; + } + else { + leftShiftCount = 32 - count; + allZero = allZero & source[i] << leftShiftCount == 0; + for (i = 0; i < resultLen - 1; i++) { + result[i] = source[i + intCount] >>> count | source[i + intCount + 1] << leftShiftCount; + } + result[i] = source[i + intCount] >>> count; + ++i; + } + return allZero; +} + +function $clinit_Conversion(){ + $clinit_Conversion = emptyMethod; + bigRadices = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [$intern_42, 1162261467, $intern_35, 1220703125, 362797056, 1977326743, $intern_35, 387420489, $intern_55, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, $intern_35, 1291467969, 1544804416, 1838265625, 60466176]); + digitFitInInt = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); +} + +function divideLongByBillion(a){ + var aPos, quot, rem; + if (compare_2(a, 0) >= 0) { + quot = div(a, $intern_55); + rem = mod(a, $intern_55); + } + else { + aPos = shru_0(a, 1); + quot = div(aPos, 500000000); + rem = mod(aPos, 500000000); + rem = add_20(shl_0(rem, 1), and_0(a, 1)); + } + return or_0(shl_0(rem, 32), and_0(quot, $intern_68)); +} + +function toDecimalScaledString(value_0, scale){ + $clinit_Conversion(); + var currentChar, endPoint, exponent, insertPoint, j, j0, negNumber, prev, resLengthInChars, result, result1, result10, startPoint, v; + negNumber = compare_2(value_0, 0) < 0; + negNumber && (value_0 = neg_0(value_0)); + if (compare_2(value_0, 0) == 0) { + switch (scale) { + case 0: + return '0'; + case 1: + return '0.0'; + case 2: + return '0.00'; + case 3: + return '0.000'; + case 4: + return '0.0000'; + case 5: + return '0.00000'; + case 6: + return '0.000000'; + default:result10 = new StringBuilder; + scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); + result10.string += scale == $intern_42?'2147483648':'' + -scale; + return result10.string; + } + } + resLengthInChars = 18; + result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + v = value_0; + do { + prev = v; + v = div(v, 10); + result[--currentChar] = toInt_0(add_20(48, sub_2(prev, mul_0(v, 10)))) & $intern_46; + } + while (compare_2(v, 0) != 0); + exponent = sub_2(sub_2(sub_2(resLengthInChars, currentChar), scale), 1); + if (scale == 0) { + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + if (scale > 0 && compare_2(exponent, -6) >= 0) { + if (compare_2(exponent, 0) >= 0) { + insertPoint = currentChar + toInt_0(exponent); + for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { + result[j0 + 1] = result[j0]; + } + result[++insertPoint] = 46; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); + } + for (j = 2; lt(j, add_20(neg_0(exponent), 1)); j++) { + result[--currentChar] = 48; + } + result[--currentChar] = 46; + result[--currentChar] = 48; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + startPoint = currentChar + 1; + endPoint = resLengthInChars; + result1 = new StringBuilder_0; + negNumber && (result1.string += '-' , result1); + if (endPoint - startPoint >= 1) { + $append_5(result1, result[currentChar]); + result1.string += '.'; + result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + result1.string += 'E'; + compare_2(exponent, 0) > 0 && (result1.string += '+' , result1); + result1.string += '' + toString_39(exponent); + return result1.string; +} + +function toDecimalScaledString_0(val, scale){ + $clinit_Conversion(); + var currentChar, delta, digits, endPoint, exponent, highDigit, i, i1, insertPoint, j, j0, negNumber, numberLength, prev, previous, res, resDigit, resLengthInChars, result, result1, result10, result11, sign, startPoint, temp, temp1, tempLen, v; + sign = val.sign; + numberLength = val.numberLength; + digits = val.digits; + if (sign == 0) { + switch (scale) { + case 0: + return '0'; + case 1: + return '0.0'; + case 2: + return '0.00'; + case 3: + return '0.000'; + case 4: + return '0.0000'; + case 5: + return '0.00000'; + case 6: + return '0.000000'; + default:result10 = new StringBuilder; + scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); + result10.string += -scale; + return result10.string; + } + } + resLengthInChars = numberLength * 10 + 1 + 7; + result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + if (numberLength == 1) { + highDigit = digits[0]; + if (highDigit < 0) { + v = and_0(highDigit, $intern_68); + do { + prev = v; + v = div(v, 10); + result[--currentChar] = 48 + toInt_0(sub_2(prev, mul_0(v, 10))) & $intern_46; + } + while (compare_2(v, 0) != 0); + } + else { + v = highDigit; + do { + prev = v; + v = v / 10 | 0; + result[--currentChar] = 48 + (prev - v * 10) & $intern_46; + } + while (v != 0); + } + } + else { + temp = initUnidimensionalArray(I_classLit, $intern_48, 25, numberLength, 15, 1); + tempLen = numberLength; + arraycopy(digits, 0, temp, 0, tempLen); + BIG_LOOP: while (true) { + result11 = 0; + for (i1 = tempLen - 1; i1 >= 0; i1--) { + temp1 = add_20(shl_0(result11, 32), and_0(temp[i1], $intern_68)); + res = divideLongByBillion(temp1); + temp[i1] = toInt_0(res); + result11 = toInt_0(shr_0(res, 32)); + } + resDigit = toInt_0(result11); + previous = currentChar; + do { + result[--currentChar] = 48 + resDigit % 10 & $intern_46; + } + while ((resDigit = resDigit / 10 | 0) != 0 && currentChar != 0); + delta = 9 - previous + currentChar; + for (i = 0; i < delta && currentChar > 0; i++) { + result[--currentChar] = 48; + } + j = tempLen - 1; + for (; temp[j] == 0; j--) { + if (j == 0) { + break BIG_LOOP; + } + } + tempLen = j + 1; + } + while (result[currentChar] == 48) { + ++currentChar; + } + } + negNumber = sign < 0; + exponent = resLengthInChars - currentChar - scale - 1; + if (scale == 0) { + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + if (scale > 0 && exponent >= -6) { + if (exponent >= 0) { + insertPoint = currentChar + exponent; + for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { + result[j0 + 1] = result[j0]; + } + result[++insertPoint] = 46; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); + } + for (j = 2; j < -exponent + 1; j++) { + result[--currentChar] = 48; + } + result[--currentChar] = 46; + result[--currentChar] = 48; + negNumber && (result[--currentChar] = 45); + return valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + startPoint = currentChar + 1; + endPoint = resLengthInChars; + result1 = new StringBuilder_0; + negNumber && (result1.string += '-' , result1); + if (endPoint - startPoint >= 1) { + $append_5(result1, result[currentChar]); + result1.string += '.'; + result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); + } + result1.string += 'E'; + exponent > 0 && (result1.string += '+' , result1); + result1.string += '' + exponent; + return result1.string; +} + +var bigRadices, digitFitInInt; +function add_21(op1, op2){ + var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, res0, resDigits, resSign, valueHi, valueLo; + op1Sign = op1.sign; + op2Sign = op2.sign; + if (op1Sign == 0) { + return op2; + } + if (op2Sign == 0) { + return op1; + } + op1Len = op1.numberLength; + op2Len = op2.numberLength; + if (op1Len + op2Len == 2) { + a = and_0(op1.digits[0], $intern_68); + b = and_0(op2.digits[0], $intern_68); + if (op1Sign == op2Sign) { + res0 = add_20(a, b); + valueLo = toInt_0(res0); + valueHi = toInt_0(shru_0(res0, 32)); + return valueHi == 0?new BigInteger_0(op1Sign, valueLo):new BigInteger_1(op1Sign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); + } + return valueOf_11(op1Sign < 0?sub_2(b, a):sub_2(a, b)); + } + else if (op1Sign == op2Sign) { + resSign = op1Sign; + resDigits = op1Len >= op2Len?add_22(op1.digits, op1Len, op2.digits, op2Len):add_22(op2.digits, op2Len, op1.digits, op1Len); + } + else { + cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); + if (cmp == 0) { + return $clinit_BigInteger() , ZERO_0; + } + if (cmp == 1) { + resSign = op1Sign; + resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); + } + else { + resSign = op2Sign; + resDigits = subtract_0(op2.digits, op2Len, op1.digits, op1Len); + } + } + res = new BigInteger_1(resSign, resDigits.length, resDigits); + $cutOffLeadingZeroes(res); + return res; +} + +function add_22(a, aSize, b, bSize){ + var res; + res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize + 1, 15, 1); + add_23(res, a, aSize, b, bSize); + return res; +} + +function add_23(res, a, aSize, b, bSize){ + var carry, i; + carry = add_20(and_0(a[0], $intern_68), and_0(b[0], $intern_68)); + res[0] = toInt_0(carry); + carry = shr_0(carry, 32); + if (aSize >= bSize) { + for (i = 1; i < bSize; i++) { + carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_68)); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + } + else { + for (i = 1; i < aSize; i++) { + carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < bSize; i++) { + carry = add_20(carry, and_0(b[i], $intern_68)); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + } + compare_2(carry, 0) != 0 && (res[i] = toInt_0(carry)); +} + +function compareArrays(a, b, size_0){ + var i; + for (i = size_0 - 1; i >= 0 && a[i] === b[i]; i--) + ; + return i < 0?0:lt(and_0(a[i], $intern_68), and_0(b[i], $intern_68))?-1:1; +} + +function inplaceAdd(a, aSize, addend){ + var carry, i; + carry = and_0(addend, $intern_68); + for (i = 0; compare_2(carry, 0) != 0 && i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_68)); + a[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + return toInt_0(carry); +} + +function subtract(op1, op2){ + var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, resDigits, resSign; + op1Sign = op1.sign; + op2Sign = op2.sign; + if (op2Sign == 0) { + return op1; + } + if (op1Sign == 0) { + return op2.sign == 0?op2:new BigInteger_1(-op2.sign, op2.numberLength, op2.digits); + } + op1Len = op1.numberLength; + op2Len = op2.numberLength; + if (op1Len + op2Len == 2) { + a = and_0(op1.digits[0], $intern_68); + b = and_0(op2.digits[0], $intern_68); + op1Sign < 0 && (a = neg_0(a)); + op2Sign < 0 && (b = neg_0(b)); + return valueOf_11(sub_2(a, b)); + } + cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); + if (cmp == -1) { + resSign = -op2Sign; + resDigits = op1Sign == op2Sign?subtract_0(op2.digits, op2Len, op1.digits, op1Len):add_22(op2.digits, op2Len, op1.digits, op1Len); + } + else { + resSign = op1Sign; + if (op1Sign == op2Sign) { + if (cmp == 0) { + return $clinit_BigInteger() , ZERO_0; + } + resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); + } + else { + resDigits = add_22(op1.digits, op1Len, op2.digits, op2Len); + } + } + res = new BigInteger_1(resSign, resDigits.length, resDigits); + $cutOffLeadingZeroes(res); + return res; +} + +function subtract_0(a, aSize, b, bSize){ + var res; + res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize, 15, 1); + subtract_1(res, a, aSize, b, bSize); + return res; +} + +function subtract_1(res, a, aSize, b, bSize){ + var borrow, i; + borrow = 0; + for (i = 0; i < bSize; i++) { + borrow = add_20(borrow, sub_2(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } + for (; i < aSize; i++) { + borrow = add_20(borrow, and_0(a[i], $intern_68)); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } +} + +function $clinit_Multiplication(){ + $clinit_Multiplication = emptyMethod; + var fivePow, i; + bigFivePows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + bigTenPows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + fivePow = 1; + for (i = 0; i <= 18; i++) { + bigFivePows[i] = valueOf_11(fivePow); + bigTenPows[i] = valueOf_11(shl_0(fivePow, i)); + fivePow = mul_0(fivePow, 5); + } + for (; i < bigTenPows.length; i++) { + bigFivePows[i] = $multiply(bigFivePows[i - 1], bigFivePows[1]); + bigTenPows[i] = $multiply(bigTenPows[i - 1], ($clinit_BigInteger() , TEN)); + } +} + +function karatsuba(op1, op2){ + $clinit_Multiplication(); + var lower, lowerOp1, lowerOp2, middle, ndiv2, temp, upper, upperOp1, upperOp2; + if (op2.numberLength > op1.numberLength) { + temp = op1; + op1 = op2; + op2 = temp; + } + if (op2.numberLength < 63) { + return multiplyPAP(op1, op2); + } + ndiv2 = (op1.numberLength & -2) << 4; + upperOp1 = $shiftRight(op1, ndiv2); + upperOp2 = $shiftRight(op2, ndiv2); + lowerOp1 = subtract(op1, $shiftLeft(upperOp1, ndiv2)); + lowerOp2 = subtract(op2, $shiftLeft(upperOp2, ndiv2)); + upper = karatsuba(upperOp1, upperOp2); + lower = karatsuba(lowerOp1, lowerOp2); + middle = karatsuba(subtract(upperOp1, lowerOp1), subtract(lowerOp2, upperOp2)); + middle = add_21(add_21(middle, upper), lower); + middle = $shiftLeft(middle, ndiv2); + upper = $shiftLeft(upper, ndiv2 << 1); + return add_21(add_21(upper, middle), lower); +} + +function multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits){ + if (aLen == 0 || bLen == 0) { + return; + } + aLen == 1?(resDigits[bLen] = multiplyByInt(resDigits, bDigits, bLen, aDigits[0])):bLen == 1?(resDigits[aLen] = multiplyByInt(resDigits, aDigits, aLen, bDigits[0])):multPAP(aDigits, bDigits, resDigits, aLen, bLen); +} + +function multPAP(a, b, t, aLen, bLen){ + var aI, carry, i, j; + if (maskUndefined(a) === maskUndefined(b) && aLen == bLen) { + square(a, aLen, t); + return; + } + for (i = 0; i < aLen; i++) { + carry = 0; + aI = a[i]; + for (j = 0; j < bLen; j++) { + carry = add_20(add_20(mul_0(and_0(aI, $intern_68), and_0(b[j], $intern_68)), and_0(t[i + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); + t[i + j] = toInt_0(carry); + carry = shru_0(carry, 32); + } + t[i + bLen] = toInt_0(carry); + } +} + +function multiplyByInt(res, a, aSize, factor){ + $clinit_Multiplication(); + var carry, i; + carry = 0; + for (i = 0; i < aSize; i++) { + carry = add_20(mul_0(and_0(a[i], $intern_68), and_0(factor, $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[i] = toInt_0(carry); + carry = shru_0(carry, 32); + } + return toInt_0(carry); +} + +function multiplyPAP(a, b){ + var aDigits, aLen, bDigits, bLen, resDigits, resLength, resSign, result, val, valueHi, valueLo; + aLen = a.numberLength; + bLen = b.numberLength; + resLength = aLen + bLen; + resSign = a.sign != b.sign?-1:1; + if (resLength == 2) { + val = mul_0(and_0(a.digits[0], $intern_68), and_0(b.digits[0], $intern_68)); + valueLo = toInt_0(val); + valueHi = toInt_0(shru_0(val, 32)); + return valueHi == 0?new BigInteger_0(resSign, valueLo):new BigInteger_1(resSign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); + } + aDigits = a.digits; + bDigits = b.digits; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); + multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits); + result = new BigInteger_1(resSign, resLength, resDigits); + $cutOffLeadingZeroes(result); + return result; +} + +function pow_0(base, exponent){ + $clinit_Multiplication(); + var acc, res; + res = ($clinit_BigInteger() , ONE_0); + acc = base; + for (; exponent > 1; exponent >>= 1) { + (exponent & 1) != 0 && (res = $multiply(res, acc)); + acc.numberLength == 1?(acc = $multiply(acc, acc)):(acc = new BigInteger_3(square(acc.digits, acc.numberLength, initUnidimensionalArray(I_classLit, $intern_48, 25, acc.numberLength << 1, 15, 1)))); + } + res = $multiply(res, acc); + return res; +} + +function powerOf10(exp_0){ + $clinit_Multiplication(); + var intExp, longExp, powerOfFive, res; + intExp = round_int(exp_0); + if (exp_0 < bigTenPows.length) { + return bigTenPows[intExp]; + } + else if (exp_0 <= 50) { + return $pow(($clinit_BigInteger() , TEN), intExp); + } + else if (exp_0 <= $intern_45) { + return $shiftLeft($pow(bigFivePows[1], intExp), intExp); + } + if (exp_0 > 1000000) { + throw toJs(new ArithmeticException('power of ten too big')); + } + if (exp_0 <= $intern_0) { + return $shiftLeft($pow(bigFivePows[1], intExp), intExp); + } + powerOfFive = $pow(bigFivePows[1], $intern_0); + res = powerOfFive; + longExp = fromDouble_0(exp_0 - $intern_0); + intExp = round_int(exp_0 % $intern_0); + while (compare_2(longExp, $intern_0) > 0) { + res = $multiply(res, powerOfFive); + longExp = sub_2(longExp, $intern_0); + } + res = $multiply(res, $pow(bigFivePows[1], intExp)); + res = $shiftLeft(res, $intern_0); + longExp = fromDouble_0(exp_0 - $intern_0); + while (compare_2(longExp, $intern_0) > 0) { + res = $shiftLeft(res, $intern_0); + longExp = sub_2(longExp, $intern_0); + } + res = $shiftLeft(res, intExp); + return res; +} + +function square(a, aLen, res){ + var carry, i, i0, index_0, j; + for (i0 = 0; i0 < aLen; i0++) { + carry = 0; + for (j = i0 + 1; j < aLen; j++) { + carry = add_20(add_20(mul_0(and_0(a[i0], $intern_68), and_0(a[j], $intern_68)), and_0(res[i0 + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[i0 + j] = toInt_0(carry); + carry = shru_0(carry, 32); + } + res[i0 + aLen] = toInt_0(carry); + } + shiftLeftOneBit(res, res, aLen << 1); + carry = 0; + for (i = 0 , index_0 = 0; i < aLen; ++i , index_0++) { + carry = add_20(add_20(mul_0(and_0(a[i], $intern_68), and_0(a[i], $intern_68)), and_0(res[index_0], $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + ++index_0; + carry = add_20(carry, and_0(res[index_0], $intern_68)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + } + return res; +} + +var bigFivePows, bigTenPows; +function $containsKey_3(this$static, key){ + return instanceOfString(key)?$hasStringValue(this$static, key):!!$getEntry_0(this$static.hashCodeMap, key); +} + +function $containsValue_2(this$static, value_0, entries){ + var entry, entry$iterator; + for (entry$iterator = entries.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if (this$static.equals_1(value_0, entry.getValue())) { + return true; + } + } + return false; +} + +function $get_10(this$static, key){ + return instanceOfString(key)?$getStringValue(this$static, key):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, key)); +} + +function $getStringValue(this$static, key){ + return key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key); +} + +function $hasStringValue(this$static, key){ + return key == null?!!$getEntry_0(this$static.hashCodeMap, null):$contains_7(this$static.stringMap, key); +} + +function $put_6(this$static, key, value_0){ + return instanceOfString(key)?$putStringValue(this$static, key, value_0):$put_9(this$static.hashCodeMap, key, value_0); +} + +function $putStringValue(this$static, key, value_0){ + return key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0); +} + +function $remove_6(this$static, key){ + return instanceOfString(key)?key == null?$remove_19(this$static.hashCodeMap, null):$remove_20(this$static.stringMap, key):$remove_19(this$static.hashCodeMap, key); +} + +function $reset(this$static){ + this$static.hashCodeMap = new InternalHashCodeMap(this$static); + this$static.stringMap = new InternalStringMap(this$static); + structureChanged(this$static); +} + +function $size_2(this$static){ + return this$static.hashCodeMap.size_0 + this$static.stringMap.size_0; +} + +function AbstractHashMap(ignored, alsoIgnored){ + checkCriticalArgument_0(ignored >= 0, 'Negative initial capacity'); + checkCriticalArgument_0(alsoIgnored >= 0, 'Non-positive load factor'); + $reset(this); +} + +defineClass(488, 1967, $intern_7); +_.clear_0 = function clear_30(){ + $reset(this); +} +; +_.containsKey = function containsKey_9(key){ + return $containsKey_3(this, key); +} +; +_.containsValue = function containsValue_3(value_0){ + return $containsValue_2(this, value_0, this.stringMap) || $containsValue_2(this, value_0, this.hashCodeMap); +} +; +_.entrySet_0 = function entrySet_2(){ + return new AbstractHashMap$EntrySet(this); +} +; +_.get_3 = function get_31(key){ + return $get_10(this, key); +} +; +_.put = function put_5(key, value_0){ + return $put_6(this, key, value_0); +} +; +_.remove_0 = function remove_48(key){ + return $remove_6(this, key); +} +; +_.size_1 = function size_37(){ + return $size_2(this); +} +; +var Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util', 'AbstractHashMap', 488); +function $contains_0(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function AbstractHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(261, $intern_9, $intern_10, AbstractHashMap$EntrySet); +_.clear_0 = function clear_31(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_28(o){ + return $contains_0(this, o); +} +; +_.iterator_0 = function iterator_46(){ + return new AbstractHashMap$EntrySetIterator(this.this$01); +} +; +_.remove_1 = function remove_49(entry){ + var key; + if ($contains_0(this, entry)) { + key = castTo(entry, 42).getKey(); + this.this$01.remove_0(key); + return true; + } + return false; +} +; +_.size_1 = function size_38(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractHashMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySet', 261); +function $computeHasNext(this$static){ + if (this$static.current.hasNext_0()) { + return true; + } + if (this$static.current != this$static.stringMapEntries) { + return false; + } + this$static.current = new InternalHashCodeMap$1(this$static.this$01.hashCodeMap); + return this$static.current.hasNext_0(); +} + +function $next_4(this$static){ + var rv; + checkStructuralChange(this$static.this$01, this$static); + checkCriticalElement(this$static.hasNext); + this$static.last = this$static.current; + rv = castTo(this$static.current.next_1(), 42); + this$static.hasNext = $computeHasNext(this$static); + return rv; +} + +function $remove_7(this$static){ + checkCriticalState(!!this$static.last); + checkStructuralChange(this$static.this$01, this$static); + this$static.last.remove(); + this$static.last = null; + this$static.hasNext = $computeHasNext(this$static); + recordLastKnownStructure(this$static.this$01, this$static); +} + +function AbstractHashMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.stringMapEntries = new InternalStringMap$1(this.this$01.stringMap); + this.current = this.stringMapEntries; + this.hasNext = $computeHasNext(this); + this.$modCount = this$0.$modCount; +} + +defineClass(262, 1, $intern_6, AbstractHashMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_16(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_19(){ + return $next_4(this); +} +; +_.hasNext_0 = function hasNext_18(){ + return this.hasNext; +} +; +_.remove = function remove_50(){ + $remove_7(this); +} +; +_.hasNext = false; +var Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySetIterator', 262); +function $hasNext_2(this$static){ + return this$static.i < this$static.this$01_0.size_1(); +} + +function $next_5(this$static){ + checkCriticalElement(this$static.i < this$static.this$01_0.size_1()); + return this$static.this$01_0.get_0(this$static.last = this$static.i++); +} + +function $remove_8(this$static){ + checkCriticalState(this$static.last != -1); + this$static.this$01_0.remove_2(this$static.last); + this$static.i = this$static.last; + this$static.last = -1; +} + +function AbstractList$IteratorImpl(this$0){ + this.this$01_0 = this$0; +} + +defineClass(417, 1, $intern_6, AbstractList$IteratorImpl); +_.forEachRemaining = function forEachRemaining_17(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_19(){ + return $hasNext_2(this); +} +; +_.next_1 = function next_20(){ + return $next_5(this); +} +; +_.remove = function remove_51(){ + $remove_8(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/IteratorImpl', 417); +function $add_1(this$static, o){ + this$static.this$01.add_3(this$static.i, o); + ++this$static.i; + this$static.last = -1; +} + +function AbstractList$ListIteratorImpl(this$0, start_0){ + this.this$01 = this$0; + AbstractList$IteratorImpl.call(this, this$0); + checkCriticalPositionIndex(start_0, this$0.size_1()); + this.i = start_0; +} + +defineClass(96, 417, $intern_14, AbstractList$ListIteratorImpl); +_.remove = function remove_52(){ + $remove_8(this); +} +; +_.add_1 = function add_24(o){ + $add_1(this, o); +} +; +_.hasPrevious = function hasPrevious_3(){ + return this.i > 0; +} +; +_.nextIndex_0 = function nextIndex_4(){ + return this.i; +} +; +_.previous_0 = function previous_4(){ + return checkCriticalElement(this.i > 0) , this.this$01.get_0(this.last = --this.i); +} +; +_.previousIndex = function previousIndex_3(){ + return this.i - 1; +} +; +_.set_1 = function set_11(o){ + checkCriticalState(this.last != -1); + this.this$01.set_2(this.last, o); +} +; +var Ljava_util_AbstractList$ListIteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/ListIteratorImpl', 96); +function AbstractList$SubList(wrapped, fromIndex, toIndex){ + checkCriticalPositionIndexes(fromIndex, toIndex, wrapped.size_1()); + this.wrapped = wrapped; + this.fromIndex = fromIndex; + this.size_0 = toIndex - fromIndex; +} + +defineClass(219, 52, $intern_37, AbstractList$SubList); +_.add_3 = function add_25(index_0, element){ + checkCriticalPositionIndex(index_0, this.size_0); + this.wrapped.add_3(this.fromIndex + index_0, element); + ++this.size_0; +} +; +_.get_0 = function get_32(index_0){ + checkCriticalElementIndex(index_0, this.size_0); + return this.wrapped.get_0(this.fromIndex + index_0); +} +; +_.remove_2 = function remove_53(index_0){ + var result; + checkCriticalElementIndex(index_0, this.size_0); + result = this.wrapped.remove_2(this.fromIndex + index_0); + --this.size_0; + return result; +} +; +_.set_2 = function set_12(index_0, element){ + checkCriticalElementIndex(index_0, this.size_0); + return this.wrapped.set_2(this.fromIndex + index_0, element); +} +; +_.size_1 = function size_39(){ + return this.size_0; +} +; +_.fromIndex = 0; +_.size_0 = 0; +var Ljava_util_AbstractList$SubList_2_classLit = createForClass('java.util', 'AbstractList/SubList', 219); +function AbstractMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(384, $intern_9, $intern_10, AbstractMap$1); +_.clear_0 = function clear_32(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_29(key){ + return this.this$01.containsKey(key); +} +; +_.iterator_0 = function iterator_47(){ + var outerIter; + return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter); +} +; +_.remove_1 = function remove_54(key){ + if (this.this$01.containsKey(key)) { + this.this$01.remove_0(key); + return true; + } + return false; +} +; +_.size_1 = function size_40(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractMap$1_2_classLit = createForClass('java.util', 'AbstractMap/1', 384); +function AbstractMap$1$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(691, 1, $intern_6, AbstractMap$1$1); +_.forEachRemaining = function forEachRemaining_18(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_20(){ + return this.val$outerIter2.hasNext_0(); +} +; +_.next_1 = function next_21(){ + var entry; + return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getKey(); +} +; +_.remove = function remove_55(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util', 'AbstractMap/1/1', 691); +function AbstractMap$2(this$0){ + this.this$01 = this$0; +} + +defineClass(226, 28, $intern_8, AbstractMap$2); +_.clear_0 = function clear_33(){ + this.this$01.clear_0(); +} +; +_.contains = function contains_30(value_0){ + return this.this$01.containsValue(value_0); +} +; +_.iterator_0 = function iterator_48(){ + var outerIter; + return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter); +} +; +_.size_1 = function size_41(){ + return this.this$01.size_1(); +} +; +var Ljava_util_AbstractMap$2_2_classLit = createForClass('java.util', 'AbstractMap/2', 226); +function AbstractMap$2$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(294, 1, $intern_6, AbstractMap$2$1); +_.forEachRemaining = function forEachRemaining_19(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_21(){ + return this.val$outerIter2.hasNext_0(); +} +; +_.next_1 = function next_22(){ + var entry; + return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getValue(); +} +; +_.remove = function remove_56(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$2$1_2_classLit = createForClass('java.util', 'AbstractMap/2/1', 294); +function $setValue_0(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = value_0; + return oldValue; +} + +defineClass(484, 1, {484:1, 42:1}); +_.equals_0 = function equals_44(other){ + var entry; + if (!instanceOf(other, 42)) { + return false; + } + entry = castTo(other, 42); + return equals_57(this.key, entry.getKey()) && equals_57(this.value_0, entry.getValue()); +} +; +_.getKey = function getKey_4(){ + return this.key; +} +; +_.getValue = function getValue_6(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_44(){ + return hashCode_54(this.key) ^ hashCode_54(this.value_0); +} +; +_.setValue = function setValue_7(value_0){ + return $setValue_0(this, value_0); +} +; +_.toString_0 = function toString_52(){ + return this.key + '=' + this.value_0; +} +; +var Ljava_util_AbstractMap$AbstractEntry_2_classLit = createForClass('java.util', 'AbstractMap/AbstractEntry', 484); +function AbstractMap$SimpleEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(383, 484, {484:1, 383:1, 42:1}, AbstractMap$SimpleEntry); +var Ljava_util_AbstractMap$SimpleEntry_2_classLit = createForClass('java.util', 'AbstractMap/SimpleEntry', 383); +defineClass(1984, 1, $intern_70); +_.equals_0 = function equals_45(other){ + var entry; + if (!instanceOf(other, 42)) { + return false; + } + entry = castTo(other, 42); + return equals_57(this.getKey(), entry.getKey()) && equals_57(this.getValue(), entry.getValue()); +} +; +_.hashCode_1 = function hashCode_45(){ + return hashCode_54(this.getKey()) ^ hashCode_54(this.getValue()); +} +; +_.toString_0 = function toString_53(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util', 'AbstractMapEntry', 1984); +function $containsEntry_1(this$static, entry){ + var key, lookupEntry; + key = entry.getKey(); + lookupEntry = $getEntry_1(this$static, key); + return !!lookupEntry && equals_57(lookupEntry.value_0, entry.getValue()); +} + +function $containsKey_4(this$static, k){ + var key; + key = k; + return !!$getEntry_1(this$static, key); +} + +function getKeyOrNSE(entry){ + if (!entry) { + throw toJs(new NoSuchElementException); + } + return entry.key; +} + +defineClass(1992, 1967, $intern_11); +_.containsEntry = function containsEntry_0(entry){ + return $containsEntry_1(this, entry); +} +; +_.containsKey = function containsKey_10(k){ + return $containsKey_4(this, k); +} +; +_.entrySet_0 = function entrySet_3(){ + return new AbstractNavigableMap$EntrySet(this); +} +; +_.get_3 = function get_33(k){ + var key; + key = k; + return getEntryValueOrNull($getEntry_1(this, key)); +} +; +_.keySet_0 = function keySet_15(){ + return new AbstractNavigableMap$NavigableKeySet(this); +} +; +var Ljava_util_AbstractNavigableMap_2_classLit = createForClass('java.util', 'AbstractNavigableMap', 1992); +function AbstractNavigableMap$EntrySet(this$0){ + this.this$01_0 = this$0; +} + +defineClass(739, $intern_9, $intern_10, AbstractNavigableMap$EntrySet); +_.contains = function contains_31(o){ + return instanceOf(o, 42) && $containsEntry_1(this.this$01_0, castTo(o, 42)); +} +; +_.iterator_0 = function iterator_49(){ + return new TreeMap$EntryIterator(this.this$01_0); +} +; +_.remove_1 = function remove_57(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $removeEntry(this.this$01_0, entry); + } + return false; +} +; +_.size_1 = function size_42(){ + return this.this$01_0.size_0; +} +; +var Ljava_util_AbstractNavigableMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/EntrySet', 739); +function AbstractNavigableMap$NavigableKeySet(map_0){ + this.map_0 = map_0; +} + +defineClass(493, $intern_9, $intern_13, AbstractNavigableMap$NavigableKeySet); +_.spliterator_0 = function spliterator_26(){ + return new SortedSet$1(this); +} +; +_.clear_0 = function clear_34(){ + $clear_8(this.map_0); +} +; +_.contains = function contains_32(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_50(){ + var entryIterator; + return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet(this.map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_58(o){ + if ($containsKey_4(this.map_0, o)) { + $remove_26(this.map_0, o); + return true; + } + return false; +} +; +_.size_1 = function size_43(){ + return this.map_0.size_0; +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet', 493); +function AbstractNavigableMap$NavigableKeySet$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(494, 1, $intern_6, AbstractNavigableMap$NavigableKeySet$1); +_.forEachRemaining = function forEachRemaining_20(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_22(){ + return $hasNext_2(this.val$entryIterator2.iter); +} +; +_.next_1 = function next_23(){ + var entry; + return entry = $next_11(this.val$entryIterator2) , entry.getKey(); +} +; +_.remove = function remove_59(){ + $remove_27(this.val$entryIterator2); +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet$1_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet/1', 494); +defineClass(2004, 28, $intern_8); +_.add_2 = function add_26(o){ + return checkCriticalState_0($offer(this, o)) , true; +} +; +_.addAll = function addAll_12(c){ + checkCriticalNotNull(c); + checkCriticalArgument_0(c != this, "Can't add a queue to itself"); + return $addAll(this, c); +} +; +_.clear_0 = function clear_35(){ + while ($poll_0(this) != null) + ; +} +; +var Ljava_util_AbstractQueue_2_classLit = createForClass('java.util', 'AbstractQueue', 2004); +function $$init_1(this$static){ + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); +} + +function $addFirst(this$static, e){ + checkCriticalNotNull(e); + this$static.head = this$static.head - 1 & this$static.array.length - 1; + setCheck(this$static.array, this$static.head, e); + $ensureCapacity(this$static); +} + +function $addLast(this$static, e){ + checkCriticalNotNull(e); + setCheck(this$static.array, this$static.tail, e); + this$static.tail = this$static.tail + 1 & this$static.array.length - 1; + $ensureCapacity(this$static); +} + +function $clear_4(this$static){ + if (this$static.head == this$static.tail) { + return; + } + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); + this$static.head = 0; + this$static.tail = 0; +} + +function $contains_1(it, o){ + if (o == null) { + return false; + } + while (it.currentIndex != it.fence) { + if (equals_Ljava_lang_Object__Z__devirtual$(o, $next_6(it))) { + return true; + } + } + return false; +} + +function $copyElements(this$static, dest, count){ + var dstIdx, i, mask; + mask = this$static.array.length - 1; + for (i = this$static.head , dstIdx = 0; dstIdx < count; i = i + 1 & mask , ++dstIdx) { + setCheck(dest, dstIdx, this$static.array[i]); + } +} + +function $ensureCapacity(this$static){ + var newArray, newLength, numElements; + if (this$static.head != this$static.tail) { + return; + } + numElements = this$static.array.length; + newLength = highestOneBit($wnd.Math.max(8, numElements)) << 1; + if (this$static.head != 0) { + newArray = createFrom(this$static.array, newLength); + $copyElements(this$static, newArray, numElements); + this$static.array = newArray; + this$static.head = 0; + } + else { + setLength(this$static.array, newLength); + } + this$static.tail = numElements; +} + +function $isEmpty(this$static){ + return this$static.head == this$static.tail; +} + +function $pollFirst(this$static){ + var e; + e = this$static.array[this$static.head]; + if (e == null) { + return null; + } + setCheck(this$static.array, this$static.head, null); + this$static.head = this$static.head + 1 & this$static.array.length - 1; + return e; +} + +function $pollLast(this$static){ + var e; + e = this$static.array[this$static.tail - 1 & this$static.array.length - 1]; + if (e == null) { + return null; + } + this$static.tail = this$static.tail - 1 & this$static.array.length - 1; + setCheck(this$static.array, this$static.tail, null); + return e; +} + +function $remove_9(it, o){ + if ($contains_1(it, o)) { + $remove_10(it); + return true; + } + return false; +} + +function $removeAtIndex(this$static, i){ + var headDistance, mask, size_0, tailDistance; + mask = this$static.array.length - 1; + headDistance = i - this$static.head & mask; + tailDistance = this$static.tail - i & mask; + size_0 = this$static.tail - this$static.head & mask; + checkConcurrentModification(headDistance < size_0); + if (headDistance >= tailDistance) { + $shiftLeftAtIndex(this$static, i); + return -1; + } + else { + $shiftRightAtIndex(this$static, i); + return 1; + } +} + +function $removeFirst(this$static){ + var e; + e = $pollFirst(this$static); + checkCriticalElement(e != null); + return e; +} + +function $removeLast(this$static){ + var e; + e = $pollLast(this$static); + checkCriticalElement(e != null); + return e; +} + +function $shiftLeftAtIndex(this$static, i){ + var mask, nextOffset; + mask = this$static.array.length - 1; + this$static.tail = this$static.tail - 1 & mask; + while (i != this$static.tail) { + nextOffset = i + 1 & mask; + setCheck(this$static.array, i, this$static.array[nextOffset]); + i = nextOffset; + } + setCheck(this$static.array, this$static.tail, null); +} + +function $shiftRightAtIndex(this$static, i){ + var mask, prevOffset; + mask = this$static.array.length - 1; + while (i != this$static.head) { + prevOffset = i - 1 & mask; + setCheck(this$static.array, i, this$static.array[prevOffset]); + i = prevOffset; + } + setCheck(this$static.array, this$static.head, null); + this$static.head = this$static.head + 1 & mask; +} + +function ArrayDeque(){ + $$init_1(this); +} + +function ArrayDeque_0(numElements){ + $$init_1(this); + setLength(this.array, highestOneBit($wnd.Math.max(8, numElements)) << 1); +} + +function checkConcurrentModification(expression){ + if (!expression) { + throw toJs(new ConcurrentModificationException); + } +} + +defineClass(302, 28, {4:1, 20:1, 28:1, 14:1}, ArrayDeque, ArrayDeque_0); +_.add_2 = function add_27(e){ + return $addLast(this, e) , true; +} +; +_.clear_0 = function clear_36(){ + $clear_4(this); +} +; +_.contains = function contains_33(o){ + return $contains_1(new ArrayDeque$IteratorImpl(this), o); +} +; +_.isEmpty = function isEmpty_18(){ + return $isEmpty(this); +} +; +_.iterator_0 = function iterator_51(){ + return new ArrayDeque$IteratorImpl(this); +} +; +_.remove_1 = function remove_60(o){ + return $remove_9(new ArrayDeque$IteratorImpl(this), o); +} +; +_.size_1 = function size_44(){ + return this.tail - this.head & this.array.length - 1; +} +; +_.spliterator_0 = function spliterator_27(){ + return new Spliterators$IteratorSpliterator(this, 272); +} +; +_.toArray_0 = function toArray_10(out){ + var size_0; + size_0 = this.tail - this.head & this.array.length - 1; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + $copyElements(this, out, size_0); + out.length > size_0 && setCheck(out, size_0, null); + return out; +} +; +_.head = 0; +_.tail = 0; +var Ljava_util_ArrayDeque_2_classLit = createForClass('java.util', 'ArrayDeque', 302); +function $next_6(this$static){ + var e; + checkCriticalElement(this$static.currentIndex != this$static.fence); + e = this$static.this$01.array[this$static.currentIndex]; + checkConcurrentModification(this$static.fence == this$static.this$01.tail && e != null); + this$static.lastIndex = this$static.currentIndex; + this$static.currentIndex = this$static.currentIndex + 1 & this$static.this$01.array.length - 1; + return e; +} + +function $remove_10(this$static){ + checkCriticalState(this$static.lastIndex >= 0); + if ($removeAtIndex(this$static.this$01, this$static.lastIndex) < 0) { + this$static.currentIndex = this$static.currentIndex - 1 & this$static.this$01.array.length - 1; + this$static.fence = this$static.this$01.tail; + } + this$static.lastIndex = -1; +} + +function ArrayDeque$IteratorImpl(this$0){ + this.this$01 = this$0; + this.currentIndex = this.this$01.head; + this.fence = this.this$01.tail; +} + +defineClass(446, 1, $intern_6, ArrayDeque$IteratorImpl); +_.forEachRemaining = function forEachRemaining_21(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_23(){ + return this.currentIndex != this.fence; +} +; +_.next_1 = function next_24(){ + return $next_6(this); +} +; +_.remove = function remove_61(){ + $remove_10(this); +} +; +_.currentIndex = 0; +_.fence = 0; +_.lastIndex = -1; +var Ljava_util_ArrayDeque$IteratorImpl_2_classLit = createForClass('java.util', 'ArrayDeque/IteratorImpl', 446); +function $$init_2(this$static){ + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $add_2(this$static, index_0, o){ + checkCriticalPositionIndex(index_0, this$static.array.length); + insertTo(this$static.array, index_0, o); +} + +function $add_3(this$static, o){ + this$static.array[this$static.array.length] = o; + return true; +} + +function $addAll_1(this$static, index_0, c){ + var cArray, len; + checkCriticalPositionIndex(index_0, this$static.array.length); + cArray = c.toArray(); + len = cArray.length; + if (len == 0) { + return false; + } + insertTo_0(this$static.array, index_0, cArray); + return true; +} + +function $addAll_2(this$static, c){ + var cArray, len; + cArray = c.toArray(); + len = cArray.length; + if (len == 0) { + return false; + } + insertTo_0(this$static.array, this$static.array.length, cArray); + return true; +} + +function $forEach_1(this$static, consumer){ + var e, e$array, e$index, e$max; + checkCriticalNotNull(consumer); + for (e$array = this$static.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + consumer.accept(e); + } +} + +function $get_11(this$static, index_0){ + checkCriticalElementIndex(index_0, this$static.array.length); + return this$static.array[index_0]; +} + +function $indexOf_3(this$static, o, index_0){ + for (; index_0 < this$static.array.length; ++index_0) { + if (equals_57(o, this$static.array[index_0])) { + return index_0; + } + } + return -1; +} + +function $remove_11(this$static, index_0){ + var previous; + previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); + removeFrom(this$static.array, index_0, 1); + return previous; +} + +function $remove_12(this$static, o){ + var i; + i = $indexOf_3(this$static, o, 0); + if (i == -1) { + return false; + } + $remove_11(this$static, i); + return true; +} + +function $removeRange(this$static, fromIndex, endIndex){ + var count; + checkCriticalPositionIndexes(fromIndex, endIndex, this$static.array.length); + count = endIndex - fromIndex; + removeFrom(this$static.array, fromIndex, count); +} + +function $set_1(this$static, index_0, o){ + var previous; + previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); + this$static.array[index_0] = o; + return previous; +} + +function $sort(this$static, c){ + sort_4(this$static.array, this$static.array.length, c); +} + +function $toArray_1(this$static){ + return clone_0(this$static.array, this$static.array.length); +} + +function $toArray_2(this$static, out){ + var i, size_0; + size_0 = this$static.array.length; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + for (i = 0; i < size_0; ++i) { + setCheck(out, i, this$static.array[i]); + } + out.length > size_0 && setCheck(out, size_0, null); + return out; +} + +function ArrayList(){ + $$init_2(this); +} + +function ArrayList_0(initialCapacity){ + $$init_2(this); + checkCriticalArgument_0(initialCapacity >= 0, 'Initial capacity must not be negative'); +} + +function ArrayList_1(c){ + $$init_2(this); + insertTo_0(this.array, 0, c.toArray()); +} + +defineClass(12, 52, $intern_71, ArrayList, ArrayList_0, ArrayList_1); +_.add_3 = function add_28(index_0, o){ + $add_2(this, index_0, o); +} +; +_.add_2 = function add_29(o){ + return $add_3(this, o); +} +; +_.addAll_0 = function addAll_13(index_0, c){ + return $addAll_1(this, index_0, c); +} +; +_.addAll = function addAll_14(c){ + return $addAll_2(this, c); +} +; +_.clear_0 = function clear_37(){ + this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_34(o){ + return $indexOf_3(this, o, 0) != -1; +} +; +_.forEach_0 = function forEach_17(consumer){ + $forEach_1(this, consumer); +} +; +_.get_0 = function get_34(index_0){ + return $get_11(this, index_0); +} +; +_.indexOf_0 = function indexOf_4(o){ + return $indexOf_3(this, o, 0); +} +; +_.isEmpty = function isEmpty_19(){ + return this.array.length == 0; +} +; +_.iterator_0 = function iterator_52(){ + return new ArrayList$1(this); +} +; +_.remove_2 = function remove_62(index_0){ + return $remove_11(this, index_0); +} +; +_.remove_1 = function remove_63(o){ + return $remove_12(this, o); +} +; +_.removeRange = function removeRange_1(fromIndex, endIndex){ + $removeRange(this, fromIndex, endIndex); +} +; +_.set_2 = function set_13(index_0, o){ + return $set_1(this, index_0, o); +} +; +_.size_1 = function size_45(){ + return this.array.length; +} +; +_.sort_0 = function sort_3(c){ + $sort(this, c); +} +; +_.toArray = function toArray_11(){ + return $toArray_1(this); +} +; +_.toArray_0 = function toArray_12(out){ + return $toArray_2(this, out); +} +; +var Ljava_util_ArrayList_2_classLit = createForClass('java.util', 'ArrayList', 12); +function $hasNext_3(this$static){ + return this$static.i < this$static.this$01.array.length; +} + +function $next_7(this$static){ + checkCriticalElement(this$static.i < this$static.this$01.array.length); + this$static.last = this$static.i++; + return this$static.this$01.array[this$static.last]; +} + +function $remove_13(this$static){ + checkCriticalState(this$static.last != -1); + $remove_11(this$static.this$01, this$static.i = this$static.last); + this$static.last = -1; +} + +function ArrayList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(7, 1, $intern_6, ArrayList$1); +_.forEachRemaining = function forEachRemaining_22(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_24(){ + return $hasNext_3(this); +} +; +_.next_1 = function next_25(){ + return $next_7(this); +} +; +_.remove = function remove_64(){ + $remove_13(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_ArrayList$1_2_classLit = createForClass('java.util', 'ArrayList/1', 7); +function copyOf(original, newLength){ + checkCriticalArraySize(newLength); + return copyPrimitiveArray(original, initUnidimensionalArray(I_classLit, $intern_48, 25, newLength, 15, 1), newLength); +} + +function copyOf_0(original, newLength){ + var copy, result; + checkCriticalArraySize(newLength); + return copy = (result = original.slice(0, newLength) , stampJavaTypeInfo_0(result, original)) , copy.length = newLength , copy; +} + +function copyPrimitiveArray(original, copy, to){ + var copyLen, len; + len = original.length; + copyLen = $wnd.Math.min(to, len); + copy_0(original, 0, copy, 0, copyLen, true); + return copy; +} + +function deepToString(a, arraysIveSeen){ + var joiner, obj, obj$array, obj$index, obj$max, objArray, old, tempSet, elementTypeCategory; + if (a == null) { + return 'null'; + } + old = arraysIveSeen.map_0.put(a, arraysIveSeen); + if (old != null) { + return '[...]'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (obj$array = a , obj$index = 0 , obj$max = obj$array.length; obj$index < obj$max; ++obj$index) { + obj = obj$array[obj$index]; + if (obj != null && (getClass__Ljava_lang_Class___devirtual$(obj).modifiers & 4) != 0) { + if (Array.isArray(obj) && (elementTypeCategory = getElementTypeCategory(obj) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))) { + if (arraysIveSeen.map_0.containsKey(obj)) { + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '[...]'); + } + else { + objArray = castToArray(obj); + tempSet = new HashSet_1(arraysIveSeen); + $add_9(joiner, deepToString(objArray, tempSet)); + } + } + else + instanceOf(obj, 177)?$add_9(joiner, toString_61(castTo(obj, 177))):instanceOf(obj, 190)?$add_9(joiner, toString_54(castTo(obj, 190))):instanceOf(obj, 195)?$add_9(joiner, toString_55(castTo(obj, 195))):instanceOf(obj, 2012)?$add_9(joiner, toString_60(castTo(obj, 2012))):instanceOf(obj, 48)?$add_9(joiner, toString_58(castTo(obj, 48))):instanceOf(obj, 364)?$add_9(joiner, toString_59(castTo(obj, 364))):instanceOf(obj, 832)?$add_9(joiner, toString_57(castTo(obj, 832))):instanceOf(obj, 104) && $add_9(joiner, toString_56(castTo(obj, 104))); + } + else { + $add_9(joiner, obj == null?'null':toString_40(obj)); + } + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function equals_46(array1, array2){ + var i, val1, val2; + if (maskUndefined(array1) === maskUndefined(array2)) { + return true; + } + if (array1 == null || array2 == null) { + return false; + } + if (array1.length != array2.length) { + return false; + } + for (i = 0; i < array1.length; ++i) { + val1 = array1[i]; + val2 = array2[i]; + if (!(maskUndefined(val1) === maskUndefined(val2) || val1 != null && equals_Ljava_lang_Object__Z__devirtual$(val1, val2))) { + return false; + } + } + return true; +} + +function fill_0(a, fromIndex, toIndex, val){ + checkCriticalArrayBounds_0(fromIndex, toIndex, a.length); + fill0(a, fromIndex, toIndex, val); +} + +function fill_1(a, val){ + fill0_0(a, a.length, val); +} + +function fill_2(a, val){ + fill0_2(a, a.length, val); +} + +function fill_3(a){ + fill0_3(a, a.length); +} + +function fill0(a, fromIndex, toIndex, val){ + var i; + for (i = fromIndex; i < toIndex; ++i) { + a[i] = val; + } +} + +function fill0_0(a, toIndex, val){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = val; + } +} + +function fill0_1(a, toIndex){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = -1; + } +} + +function fill0_2(a, toIndex, val){ + var i; + for (i = 0; i < toIndex; ++i) { + setCheck(a, i, val); + } +} + +function fill0_3(a, toIndex){ + var i; + for (i = 0; i < toIndex; ++i) { + a[i] = false; + } +} + +function hashCode_46(a){ + var e, e$array, e$index, e$max, hashCode; + hashCode = 1; + for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function insertionSort(array, low, high, comp){ + var i, j, t; + for (i = low + 1; i < high; ++i) { + for (j = i; j > low && comp.compare_1(array[j - 1], array[j]) > 0; --j) { + t = array[j]; + setCheck(array, j, array[j - 1]); + setCheck(array, j - 1, t); + } + } +} + +function merge_1(src_0, srcLow, srcMid, srcHigh, dest, destLow, destHigh, comp){ + var topIdx; + topIdx = srcMid; + while (destLow < destHigh) { + topIdx >= srcHigh || srcLow < srcMid && comp.compare_1(src_0[srcLow], src_0[topIdx]) <= 0?setCheck(dest, destLow++, src_0[srcLow++]):setCheck(dest, destLow++, src_0[topIdx++]); + } +} + +function mergeSort(x_0, fromIndex, toIndex, comp){ + var temp; + comp = ($clinit_Comparators() , !comp?INTERNAL_NATURAL_ORDER:comp); + temp = x_0.slice(fromIndex, toIndex); + mergeSort_0(temp, x_0, fromIndex, toIndex, -fromIndex, comp); +} + +function mergeSort_0(temp, array, low, high, ofs, comp){ + var length_0, tempHigh, tempLow, tempMid; + length_0 = high - low; + if (length_0 < 7) { + insertionSort(array, low, high, comp); + return; + } + tempLow = low + ofs; + tempHigh = high + ofs; + tempMid = tempLow + (tempHigh - tempLow >> 1); + mergeSort_0(array, temp, tempLow, tempMid, -ofs, comp); + mergeSort_0(array, temp, tempMid, tempHigh, -ofs, comp); + if (comp.compare_1(temp[tempMid - 1], temp[tempMid]) <= 0) { + while (low < high) { + setCheck(array, low++, temp[tempLow++]); + } + return; + } + merge_1(temp, tempLow, tempMid, tempHigh, array, low, high, comp); +} + +function sort_4(x_0, toIndex, c){ + checkCriticalArrayBounds_0(0, toIndex, x_0.length); + mergeSort(x_0, 0, toIndex, c); +} + +function sort_5(x_0, c){ + mergeSort(x_0, 0, x_0.length, c); +} + +function spliterator_28(array, endExclusive){ + return checkCriticalArrayBounds(endExclusive, array.length) , new Spliterators$ArraySpliterator(array, endExclusive); +} + +function stream_4(array){ + return new StreamImpl(null, spliterator_28(array, array.length)); +} + +function toString_54(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_55(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, String.fromCharCode(element)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_56(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_57(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_58(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_59(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + toString_39(element)); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_60(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + $add_9(joiner, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function toString_61(a){ + var element, element$array, element$index, element$max, joiner; + if (a == null) { + return 'null'; + } + joiner = new StringJoiner(', ', '[', ']'); + for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { + element = element$array[element$index]; + !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); + $append_8(joiner.builder, '' + element); + } + return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); +} + +function Arrays$0methodref$compare$Type(){ +} + +defineClass(2013, $wnd.Function, {}, Arrays$0methodref$compare$Type); +_.compare_0 = function compare_7(d1, d2){ + return compare_4(d1, d2); +} +; +function $get_12(this$static, index_0){ + checkCriticalElementIndex(index_0, this$static.array.length); + return this$static.array[index_0]; +} + +function $toArray_3(this$static, out){ + var i, size_0; + size_0 = this$static.array.length; + out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); + for (i = 0; i < size_0; ++i) { + setCheck(out, i, this$static.array[i]); + } + out.length > size_0 && setCheck(out, size_0, null); + return out; +} + +function Arrays$ArrayList(array){ + checkCriticalNotNull(array); + this.array = array; +} + +defineClass(154, 52, $intern_72, Arrays$ArrayList); +_.contains = function contains_35(o){ + return $indexOf(this, o) != -1; +} +; +_.forEach_0 = function forEach_18(consumer){ + var e, e$array, e$index, e$max; + checkCriticalNotNull(consumer); + for (e$array = this.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + consumer.accept(e); + } +} +; +_.get_0 = function get_35(index_0){ + return $get_12(this, index_0); +} +; +_.set_2 = function set_14(index_0, value_0){ + var was; + was = (checkCriticalElementIndex(index_0, this.array.length) , this.array[index_0]); + setCheck(this.array, index_0, value_0); + return was; +} +; +_.size_1 = function size_46(){ + return this.array.length; +} +; +_.sort_0 = function sort_6(c){ + sort_4(this.array, this.array.length, c); +} +; +_.toArray = function toArray_13(){ + return $toArray_3(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.array.length, 5, 1)); +} +; +_.toArray_0 = function toArray_14(out){ + return $toArray_3(this, out); +} +; +var Ljava_util_Arrays$ArrayList_2_classLit = createForClass('java.util', 'Arrays/ArrayList', 154); +function $clinit_Collections(){ + $clinit_Collections = emptyMethod; + EMPTY_LIST = new Collections$EmptyList; + EMPTY_MAP = new Collections$EmptyMap; + EMPTY_SET = new Collections$EmptySet; +} + +function addAll_15(c, a){ + $clinit_Collections(); + var e, e$array, e$index, e$max, result; + result = false; + for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { + e = e$array[e$index]; + result = result | c.add_2(e); + } + return result; +} + +function disjoint(c1, c2){ + $clinit_Collections(); + var iterating, o, o$iterator, testing; + iterating = c1; + testing = c2; + if (instanceOf(c1, 21) && !instanceOf(c2, 21)) { + iterating = c2; + testing = c1; + } + for (o$iterator = iterating.iterator_0(); o$iterator.hasNext_0();) { + o = o$iterator.next_1(); + if (testing.contains(o)) { + return false; + } + } + return true; +} + +function hashCode_47(collection){ + $clinit_Collections(); + var e, e$iterator, hashCode; + hashCode = 0; + for (e$iterator = collection.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + hashCode = hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function hashCode_48(list){ + $clinit_Collections(); + var e, e$iterator, hashCode; + hashCode = 1; + for (e$iterator = list.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); + hashCode = hashCode | 0; + } + return hashCode; +} + +function nCopies(n, o){ + $clinit_Collections(); + var i, list; + list = new ArrayList; + for (i = 0; i < n; ++i) { + list.array[list.array.length] = o; + } + return new Collections$UnmodifiableRandomAccessList(list); +} + +function reverse_2(l){ + var t; + $clinit_Collections(); + var head, headElem, iBack, iFront, tail, tailElem; + if (instanceOf(l, 54)) { + for (iFront = 0 , iBack = l.size_1() - 1; iFront < iBack; ++iFront , --iBack) { + t = l.get_0(iFront); + l.set_2(iFront, l.get_0(iBack)); + l.set_2(iBack, t); + } + } + else { + head = l.listIterator_0(); + tail = l.listIterator_1(l.size_1()); + while (head.nextIndex_0() < tail.previousIndex()) { + headElem = head.next_1(); + tailElem = tail.previous_0(); + head.set_1(tailElem); + tail.set_1(headElem); + } + } +} + +function reverseOrder(cmp){ + $clinit_Collections(); + return !cmp?($clinit_Comparators() , $clinit_Comparators() , REVERSE_NATURAL_ORDER):cmp.reversed(); +} + +function singletonMap(key, value_0){ + $clinit_Collections(); + var map_0; + map_0 = new HashMap_0(1); + instanceOfString(key)?$putStringValue(map_0, key, value_0):$put_9(map_0.hashCodeMap, key, value_0); + return new Collections$UnmodifiableMap(map_0); +} + +function unmodifiableList(list){ + $clinit_Collections(); + return instanceOf(list, 54)?new Collections$UnmodifiableRandomAccessList(list):new Collections$UnmodifiableList(list); +} + +var EMPTY_LIST, EMPTY_MAP, EMPTY_SET; +function $get_13(location_0){ + checkCriticalElementIndex(location_0, 0); + return null; +} + +function Collections$EmptyList(){ +} + +defineClass(940, 52, $intern_72, Collections$EmptyList); +_.contains = function contains_36(object){ + return false; +} +; +_.get_0 = function get_36(location_0){ + return $get_13(location_0); +} +; +_.iterator_0 = function iterator_53(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.listIterator_0 = function listIterator_11(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.size_1 = function size_47(){ + return 0; +} +; +var Ljava_util_Collections$EmptyList_2_classLit = createForClass('java.util', 'Collections/EmptyList', 940); +function $clinit_Collections$EmptyListIterator(){ + $clinit_Collections$EmptyListIterator = emptyMethod; + INSTANCE_4 = new Collections$EmptyListIterator; +} + +function Collections$EmptyListIterator(){ +} + +defineClass(941, 1, $intern_14, Collections$EmptyListIterator); +_.forEachRemaining = function forEachRemaining_23(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_30(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasNext_0 = function hasNext_25(){ + return false; +} +; +_.hasPrevious = function hasPrevious_4(){ + return false; +} +; +_.next_1 = function next_26(){ + throw toJs(new NoSuchElementException); +} +; +_.nextIndex_0 = function nextIndex_5(){ + return 0; +} +; +_.previous_0 = function previous_5(){ + throw toJs(new NoSuchElementException); +} +; +_.previousIndex = function previousIndex_4(){ + return -1; +} +; +_.remove = function remove_65(){ + throw toJs(new IllegalStateException); +} +; +_.set_1 = function set_15(o){ + throw toJs(new IllegalStateException); +} +; +var INSTANCE_4; +var Ljava_util_Collections$EmptyListIterator_2_classLit = createForClass('java.util', 'Collections/EmptyListIterator', 941); +function Collections$EmptyMap(){ +} + +defineClass(943, 1967, $intern_28, Collections$EmptyMap); +_.containsKey = function containsKey_11(key){ + return false; +} +; +_.containsValue = function containsValue_4(value_0){ + return false; +} +; +_.entrySet_0 = function entrySet_4(){ + return $clinit_Collections() , EMPTY_SET; +} +; +_.get_3 = function get_37(key){ + return null; +} +; +_.keySet_0 = function keySet_16(){ + return $clinit_Collections() , EMPTY_SET; +} +; +_.size_1 = function size_48(){ + return 0; +} +; +_.values_0 = function values_16(){ + return $clinit_Collections() , EMPTY_LIST; +} +; +var Ljava_util_Collections$EmptyMap_2_classLit = createForClass('java.util', 'Collections/EmptyMap', 943); +function Collections$EmptySet(){ +} + +defineClass(942, $intern_9, $intern_30, Collections$EmptySet); +_.contains = function contains_37(object){ + return false; +} +; +_.iterator_0 = function iterator_54(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +_.size_1 = function size_49(){ + return 0; +} +; +var Ljava_util_Collections$EmptySet_2_classLit = createForClass('java.util', 'Collections/EmptySet', 942); +function Collections$SingletonList(element){ + this.element = element; +} + +defineClass(599, 52, {3:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Collections$SingletonList); +_.contains = function contains_38(item_0){ + return equals_57(this.element, item_0); +} +; +_.get_0 = function get_38(index_0){ + checkCriticalElementIndex(index_0, 1); + return this.element; +} +; +_.size_1 = function size_50(){ + return 1; +} +; +var Ljava_util_Collections$SingletonList_2_classLit = createForClass('java.util', 'Collections/SingletonList', 599); +function $add_4(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_3(){ + throw toJs(new UnsupportedOperationException); +} + +function $clear_5(){ + throw toJs(new UnsupportedOperationException); +} + +function $contains_2(this$static, o){ + return this$static.coll.contains(o); +} + +function $containsAll_0(this$static, c){ + return this$static.coll.containsAll(c); +} + +function $remove_14(){ + throw toJs(new UnsupportedOperationException); +} + +function $toArray_4(this$static, a){ + return this$static.coll.toArray_0(a); +} + +function Collections$UnmodifiableCollection(coll){ + this.coll = coll; +} + +defineClass(372, 1, $intern_24, Collections$UnmodifiableCollection); +_.forEach_0 = function forEach_19(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_3(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.spliterator_0 = function spliterator_29(){ + return new Spliterators$IteratorSpliterator(this, 0); +} +; +_.stream = function stream_5(){ + return new StreamImpl(null, this.spliterator_0()); +} +; +_.add_2 = function add_31(o){ + return $add_4(); +} +; +_.addAll = function addAll_16(c){ + return $addAll_3(); +} +; +_.clear_0 = function clear_38(){ + $clear_5(); +} +; +_.contains = function contains_39(o){ + return $contains_2(this, o); +} +; +_.containsAll = function containsAll_7(c){ + return $containsAll_0(this, c); +} +; +_.isEmpty = function isEmpty_20(){ + return this.coll.isEmpty(); +} +; +_.iterator_0 = function iterator_55(){ + return new Collections$UnmodifiableCollectionIterator(this.coll.iterator_0()); +} +; +_.remove_1 = function remove_66(o){ + return $remove_14(); +} +; +_.size_1 = function size_51(){ + return this.coll.size_1(); +} +; +_.toArray = function toArray_15(){ + return this.coll.toArray(); +} +; +_.toArray_0 = function toArray_16(a){ + return $toArray_4(this, a); +} +; +_.toString_0 = function toString_62(){ + return toString_40(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollection', 372); +function $remove_15(){ + throw toJs(new UnsupportedOperationException); +} + +function Collections$UnmodifiableCollectionIterator(it){ + this.it = it; +} + +defineClass(371, 1, $intern_6, Collections$UnmodifiableCollectionIterator); +_.forEachRemaining = function forEachRemaining_24(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_26(){ + return this.it.hasNext_0(); +} +; +_.next_1 = function next_27(){ + return this.it.next_1(); +} +; +_.remove = function remove_67(){ + $remove_15(); +} +; +var Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollectionIterator', 371); +function Collections$UnmodifiableList(list){ + Collections$UnmodifiableCollection.call(this, list); + this.list = list; +} + +defineClass(531, 372, $intern_73, Collections$UnmodifiableList); +_.spliterator_0 = function spliterator_30(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.add_3 = function add_32(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_17(index_0, c){ + throw toJs(new UnsupportedOperationException); +} +; +_.equals_0 = function equals_47(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.list, o); +} +; +_.get_0 = function get_39(index_0){ + return this.list.get_0(index_0); +} +; +_.hashCode_1 = function hashCode_49(){ + return hashCode__I__devirtual$(this.list); +} +; +_.indexOf_0 = function indexOf_5(o){ + return this.list.indexOf_0(o); +} +; +_.isEmpty = function isEmpty_21(){ + return this.list.isEmpty(); +} +; +_.listIterator_0 = function listIterator_12(){ + return new Collections$UnmodifiableListIterator(this.list.listIterator_1(0)); +} +; +_.listIterator_1 = function listIterator_13(from){ + return new Collections$UnmodifiableListIterator(this.list.listIterator_1(from)); +} +; +_.remove_2 = function remove_68(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_16(index_0, element){ + throw toJs(new UnsupportedOperationException); +} +; +_.sort_0 = function sort_7(c){ + throw toJs(new UnsupportedOperationException); +} +; +_.subList = function subList_7(fromIndex, toIndex){ + return new Collections$UnmodifiableList(this.list.subList(fromIndex, toIndex)); +} +; +var Ljava_util_Collections$UnmodifiableList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableList', 531); +function Collections$UnmodifiableListIterator(lit){ + Collections$UnmodifiableCollectionIterator.call(this, lit); + this.lit = lit; +} + +defineClass(690, 371, $intern_14, Collections$UnmodifiableListIterator); +_.remove = function remove_69(){ + $remove_15(); +} +; +_.add_1 = function add_33(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasPrevious = function hasPrevious_5(){ + return this.lit.hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_6(){ + return this.lit.nextIndex_0(); +} +; +_.previous_0 = function previous_6(){ + return this.lit.previous_0(); +} +; +_.previousIndex = function previousIndex_5(){ + return this.lit.previousIndex(); +} +; +_.set_1 = function set_17(o){ + throw toJs(new UnsupportedOperationException); +} +; +var Ljava_util_Collections$UnmodifiableListIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableListIterator', 690); +function $containsValue_3(this$static, val){ + return this$static.map_0.containsValue(val); +} + +function $entrySet_2(this$static){ + !this$static.entrySet && (this$static.entrySet = new Collections$UnmodifiableMap$UnmodifiableEntrySet(this$static.map_0.entrySet_0())); + return this$static.entrySet; +} + +function $equals_7(this$static, o){ + return equals_Ljava_lang_Object__Z__devirtual$(this$static.map_0, o); +} + +function $keySet_1(this$static){ + !this$static.keySet && (this$static.keySet = new Collections$UnmodifiableSet(this$static.map_0.keySet_0())); + return this$static.keySet; +} + +function $values_2(this$static){ + !this$static.values && (this$static.values = new Collections$UnmodifiableCollection(this$static.map_0.values_0())); + return this$static.values; +} + +function Collections$UnmodifiableMap(map_0){ + this.map_0 = map_0; +} + +defineClass(600, 1, $intern_7, Collections$UnmodifiableMap); +_.forEach = function forEach_20(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge_2(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_39(){ + throw toJs(new UnsupportedOperationException); +} +; +_.containsKey = function containsKey_12(key){ + return this.map_0.containsKey(key); +} +; +_.containsValue = function containsValue_5(val){ + return $containsValue_3(this, val); +} +; +_.entrySet_0 = function entrySet_5(){ + return $entrySet_2(this); +} +; +_.equals_0 = function equals_48(o){ + return $equals_7(this, o); +} +; +_.get_3 = function get_40(key){ + return this.map_0.get_3(key); +} +; +_.hashCode_1 = function hashCode_50(){ + return hashCode__I__devirtual$(this.map_0); +} +; +_.isEmpty = function isEmpty_22(){ + return this.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_17(){ + return $keySet_1(this); +} +; +_.put = function put_6(key, value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_0 = function remove_70(key){ + throw toJs(new UnsupportedOperationException); +} +; +_.size_1 = function size_52(){ + return this.map_0.size_1(); +} +; +_.toString_0 = function toString_63(){ + return toString_40(this.map_0); +} +; +_.values_0 = function values_17(){ + return $values_2(this); +} +; +var Ljava_util_Collections$UnmodifiableMap_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap', 600); +function Collections$UnmodifiableSet(set_0){ + Collections$UnmodifiableCollection.call(this, set_0); +} + +defineClass(382, 372, $intern_29, Collections$UnmodifiableSet); +_.spliterator_0 = function spliterator_31(){ + return new Spliterators$IteratorSpliterator(this, 1); +} +; +_.equals_0 = function equals_49(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.coll, o); +} +; +_.hashCode_1 = function hashCode_51(){ + return hashCode__I__devirtual$(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSet', 382); +function $contains_3(this$static, o){ + return this$static.coll.contains(o); +} + +function $toArray_5(this$static, a){ + var result; + result = this$static.coll.toArray_0(a); + $wrap(result, this$static.coll.size_1()); + return result; +} + +function $wrap(array, size_0){ + var i; + for (i = 0; i < size_0; ++i) { + setCheck(array, i, new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(array[i], 42))); + } +} + +function Collections$UnmodifiableMap$UnmodifiableEntrySet(s){ + Collections$UnmodifiableSet.call(this, s); +} + +defineClass(944, 382, $intern_29, Collections$UnmodifiableMap$UnmodifiableEntrySet); +_.contains = function contains_40(o){ + return $contains_3(this, o); +} +; +_.containsAll = function containsAll_8(o){ + return this.coll.containsAll(o); +} +; +_.iterator_0 = function iterator_56(){ + var it; + it = this.coll.iterator_0(); + return new Collections$UnmodifiableMap$UnmodifiableEntrySet$1(it); +} +; +_.toArray = function toArray_17(){ + var array; + array = this.coll.toArray(); + $wrap(array, array.length); + return array; +} +; +_.toArray_0 = function toArray_18(a){ + return $toArray_5(this, a); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet', 944); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(val$it){ + this.val$it2 = val$it; +} + +defineClass(945, 1, $intern_6, Collections$UnmodifiableMap$UnmodifiableEntrySet$1); +_.forEachRemaining = function forEachRemaining_25(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_28(){ + return new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(this.val$it2.next_1(), 42)); +} +; +_.hasNext_0 = function hasNext_27(){ + return this.val$it2.hasNext_0(); +} +; +_.remove = function remove_71(){ + throw toJs(new UnsupportedOperationException); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/1', 945); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(entry){ + this.entry = entry; +} + +defineClass(688, 1, $intern_70, Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry); +_.equals_0 = function equals_50(o){ + return this.entry.equals_0(o); +} +; +_.getKey = function getKey_5(){ + return this.entry.getKey(); +} +; +_.getValue = function getValue_7(){ + return this.entry.getValue(); +} +; +_.hashCode_1 = function hashCode_52(){ + return this.entry.hashCode_1(); +} +; +_.setValue = function setValue_8(value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.toString_0 = function toString_64(){ + return toString_40(this.entry); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry', 688); +function Collections$UnmodifiableRandomAccessList(list){ + Collections$UnmodifiableList.call(this, list); +} + +defineClass(601, 531, {20:1, 14:1, 15:1, 54:1}, Collections$UnmodifiableRandomAccessList); +var Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableRandomAccessList', 601); +function Collections$UnmodifiableSortedSet(sortedSet){ + Collections$UnmodifiableSet.call(this, sortedSet); + this.sortedSet = sortedSet; +} + +defineClass(689, 382, $intern_31, Collections$UnmodifiableSortedSet); +_.spliterator_0 = function spliterator_32(){ + return new SortedSet$1(this); +} +; +_.equals_0 = function equals_51(o){ + return equals_Ljava_lang_Object__Z__devirtual$(this.sortedSet, o); +} +; +_.hashCode_1 = function hashCode_53(){ + return hashCode__I__devirtual$(this.sortedSet); +} +; +var Ljava_util_Collections$UnmodifiableSortedSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSortedSet', 689); +function Comparator$lambda$0$Type(){ +} + +defineClass(847, 1, $intern_74, Comparator$lambda$0$Type); +_.compare_1 = function compare_8(a, b){ + var c; + return c = lambda$2_6(castTo(a, 11), castTo(b, 11)) , c != 0?c:lambda$4_6(castTo(a, 11), castTo(b, 11)); +} +; +_.equals_0 = function equals_52(other){ + return this === other; +} +; +_.reversed = function reversed_0(){ + return new Comparators$ReversedComparator(this); +} +; +var Ljava_util_Comparator$lambda$0$Type_2_classLit = createForClass('java.util', 'Comparator/lambda$0$Type', 847); +function $clinit_Comparators(){ + $clinit_Comparators = emptyMethod; + INTERNAL_NATURAL_ORDER = new Comparators$NaturalOrderComparator; + NATURAL_ORDER = new Comparators$NaturalOrderComparator; + REVERSE_NATURAL_ORDER = new Comparators$ReverseNaturalOrderComparator; +} + +var INTERNAL_NATURAL_ORDER, NATURAL_ORDER, REVERSE_NATURAL_ORDER; +function $compare(a, b){ + return checkCriticalNotNull(a) , compareTo_Ljava_lang_Object__I__devirtual$(a, (checkCriticalNotNull(b) , b)); +} + +function Comparators$NaturalOrderComparator(){ +} + +defineClass(751, 1, $intern_74, Comparators$NaturalOrderComparator); +_.compare_1 = function compare_9(a, b){ + return $compare(castTo(a, 35), castTo(b, 35)); +} +; +_.equals_0 = function equals_53(other){ + return this === other; +} +; +_.reversed = function reversed_1(){ + return $clinit_Comparators() , REVERSE_NATURAL_ORDER; +} +; +var Ljava_util_Comparators$NaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/NaturalOrderComparator', 751); +function $compare_0(a, b){ + return checkCriticalNotNull(b) , compareTo_Ljava_lang_Object__I__devirtual$(b, (checkCriticalNotNull(a) , a)); +} + +function Comparators$ReverseNaturalOrderComparator(){ +} + +defineClass(1177, 1, $intern_74, Comparators$ReverseNaturalOrderComparator); +_.compare_1 = function compare_10(a, b){ + return $compare_0(castTo(a, 35), castTo(b, 35)); +} +; +_.equals_0 = function equals_54(other){ + return this === other; +} +; +_.reversed = function reversed_2(){ + return $clinit_Comparators() , NATURAL_ORDER; +} +; +var Ljava_util_Comparators$ReverseNaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/ReverseNaturalOrderComparator', 1177); +function Comparators$ReversedComparator(comparator){ + this.comparator = comparator; +} + +defineClass(64, 1, $intern_74, Comparators$ReversedComparator); +_.equals_0 = function equals_55(other){ + return this === other; +} +; +_.compare_1 = function compare_11(a, b){ + return this.comparator.compare_1(b, a); +} +; +_.reversed = function reversed_3(){ + return this.comparator; +} +; +var Ljava_util_Comparators$ReversedComparator_2_classLit = createForClass('java.util', 'Comparators/ReversedComparator', 64); +function checkStructuralChange(host, iterator){ + if (iterator.$modCount != host.$modCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function recordLastKnownStructure(host, iterator){ + iterator.$modCount = host.$modCount; +} + +function structureChanged(host){ + var modCount, modCountable; + modCountable = host; + modCount = modCountable.$modCount | 0; + modCountable.$modCount = modCount + 1; +} + +function ConcurrentModificationException(){ + RuntimeException.call(this); +} + +defineClass(166, 60, $intern_43, ConcurrentModificationException); +var Ljava_util_ConcurrentModificationException_2_classLit = createForClass('java.util', 'ConcurrentModificationException', 166); +function $clinit_Date$StringData(){ + $clinit_Date$StringData = emptyMethod; + DAYS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']); + MONTHS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); +} + +var DAYS, MONTHS; +function $accept(this$static, value_0){ + var compensatedValue, newSum; + this$static.count = add_20(this$static.count, 1); + this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); + this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); + this$static.naiveSum += value_0; + compensatedValue = value_0 - this$static.sumError; + newSum = this$static.sum + compensatedValue; + this$static.sumError = newSum - this$static.sum - compensatedValue; + this$static.sum = newSum; +} + +function $getSum(this$static){ + var compensatedSum; + compensatedSum = this$static.sum + this$static.sumError; + if (isNaN(compensatedSum) && isInfinite(this$static.naiveSum)) { + return this$static.naiveSum; + } + return compensatedSum; +} + +function DoubleSummaryStatistics(){ +} + +defineClass(1904, 1, $intern_75, DoubleSummaryStatistics); +_.accept_2 = function accept_15(value_0){ + $accept(this, value_0); +} +; +_.toString_0 = function toString_65(){ + return 'DoubleSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?$getSum(this) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + $getSum(this) + ']'; +} +; +_.count = 0; +_.max_0 = $intern_60; +_.min_0 = $intern_59; +_.naiveSum = 0; +_.sum = 0; +_.sumError = 0; +var Ljava_util_DoubleSummaryStatistics_2_classLit = createForClass('java.util', 'DoubleSummaryStatistics', 1904); +function EmptyStackException(){ + RuntimeException.call(this); +} + +defineClass(1805, 60, $intern_43, EmptyStackException); +var Ljava_util_EmptyStackException_2_classLit = createForClass('java.util', 'EmptyStackException', 1805); +function $clear_6(this$static){ + $clear_0(this$static.keySet); + this$static.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.values.length, 5, 1); +} + +function $containsKey_5(this$static, key){ + return $contains_5(this$static.keySet, key); +} + +function $get_14(this$static, k){ + return $contains_5(this$static.keySet, k)?this$static.values[castTo(k, 22).ordinal]:null; +} + +function $put_7(this$static, key, value_0){ + $add_5(this$static.keySet, key); + return $set_2(this$static, key.ordinal, value_0); +} + +function $put_8(this$static, key, value_0){ + return $put_7(this$static, castTo(key, 22), value_0); +} + +function $remove_16(this$static, key){ + return $remove_17(this$static.keySet, key)?$set_2(this$static, castTo(key, 22).ordinal, null):null; +} + +function $set_2(this$static, ordinal, value_0){ + var was; + was = this$static.values[ordinal]; + this$static.values[ordinal] = value_0; + return was; +} + +function EnumMap(type_0){ + var all; + this.keySet = (all = castTo(type_0.enumConstantsFunc && type_0.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.keySet.all.length, 5, 1); +} + +defineClass(451, 1967, $intern_7, EnumMap); +_.put = function put_7(key, value_0){ + return $put_8(this, key, value_0); +} +; +_.clear_0 = function clear_40(){ + $clear_6(this); +} +; +_.containsKey = function containsKey_13(key){ + return $containsKey_5(this, key); +} +; +_.containsValue = function containsValue_6(value_0){ + var key, key$iterator; + for (key$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this.keySet); key$iterator.i < key$iterator.this$11.all.length;) { + key = $next_8(key$iterator); + if (equals_57(value_0, this.values[key.ordinal])) { + return true; + } + } + return false; +} +; +_.entrySet_0 = function entrySet_6(){ + return new EnumMap$EntrySet(this); +} +; +_.get_3 = function get_41(k){ + return $get_14(this, k); +} +; +_.remove_0 = function remove_72(key){ + return $remove_16(this, key); +} +; +_.size_1 = function size_53(){ + return this.keySet.size_0; +} +; +var Ljava_util_EnumMap_2_classLit = createForClass('java.util', 'EnumMap', 451); +function $contains_4(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function EnumMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1352, $intern_9, $intern_10, EnumMap$EntrySet); +_.clear_0 = function clear_41(){ + $clear_6(this.this$01); +} +; +_.contains = function contains_41(o){ + return $contains_4(this, o); +} +; +_.iterator_0 = function iterator_57(){ + return new EnumMap$EntrySetIterator(this.this$01); +} +; +_.remove_1 = function remove_73(entry){ + var key; + if ($contains_4(this, entry)) { + key = castTo(entry, 42).getKey(); + $remove_16(this.this$01, key); + return true; + } + return false; +} +; +_.size_1 = function size_54(){ + return this.this$01.keySet.size_0; +} +; +var Ljava_util_EnumMap$EntrySet_2_classLit = createForClass('java.util', 'EnumMap/EntrySet', 1352); +function EnumMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.it = new EnumSet$EnumSetImpl$IteratorImpl(this.this$01.keySet); +} + +defineClass(1353, 1, $intern_6, EnumMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_26(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_29(){ + return this.key = $next_8(this.it) , new EnumMap$MapEntry(this.this$01, this.key); +} +; +_.hasNext_0 = function hasNext_28(){ + return $hasNext_4(this.it); +} +; +_.remove = function remove_74(){ + checkCriticalState(!!this.key); + $remove_16(this.this$01, this.key); + this.key = null; +} +; +var Ljava_util_EnumMap$EntrySetIterator_2_classLit = createForClass('java.util', 'EnumMap/EntrySetIterator', 1353); +function EnumMap$MapEntry(this$0, key){ + this.this$01 = this$0; + this.key = key; +} + +defineClass(1354, 1984, $intern_70, EnumMap$MapEntry); +_.getKey = function getKey_6(){ + return this.key; +} +; +_.getValue = function getValue_8(){ + return this.this$01.values[this.key.ordinal]; +} +; +_.setValue = function setValue_9(value_0){ + return $set_2(this.this$01, this.key.ordinal, value_0); +} +; +var Ljava_util_EnumMap$MapEntry_2_classLit = createForClass('java.util', 'EnumMap/MapEntry', 1354); +function allOf(elementType){ + var all, set_0; + all = castTo(elementType.enumConstantsFunc && elementType.enumConstantsFunc(), 9); + set_0 = castTo(clone_0(all, all.length), 9); + return new EnumSet$EnumSetImpl(all, set_0, all.length); +} + +function of_1(first){ + var all, set_0, clazz, superclass; + set_0 = (all = castTo($getEnumConstants((clazz = first.___clazz , superclass = clazz.enumSuperclass , superclass == Ljava_lang_Enum_2_classLit?clazz:superclass)), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + $add_5(set_0, first); + return set_0; +} + +function of_2(first, rest){ + var set_0; + set_0 = of_1(first); + addAll_15(set_0, rest); + return set_0; +} + +defineClass(174, $intern_9, {20:1, 28:1, 14:1, 174:1, 21:1}); +var Ljava_util_EnumSet_2_classLit = createForClass('java.util', 'EnumSet', 174); +function $add_5(this$static, e){ + var ordinal; + checkCriticalNotNull(e); + ordinal = e.ordinal; + if (!this$static.set_0[ordinal]) { + setCheck(this$static.set_0, ordinal, e); + ++this$static.size_0; + return true; + } + return false; +} + +function $clone(this$static){ + var clonedSet; + clonedSet = castTo(clone_0(this$static.set_0, this$static.set_0.length), 9); + return new EnumSet$EnumSetImpl(this$static.all, clonedSet, this$static.size_0); +} + +function $contains_5(this$static, o){ + return instanceOf(o, 22) && $containsEnum(this$static, castTo(o, 22)); +} + +function $containsEnum(this$static, e){ + return !!e && this$static.set_0[e.ordinal] == e; +} + +function $remove_17(this$static, o){ + return instanceOf(o, 22) && $removeEnum(this$static, castTo(o, 22)); +} + +function $removeEnum(this$static, e){ + if (!!e && this$static.set_0[e.ordinal] == e) { + setCheck(this$static.set_0, e.ordinal, null); + --this$static.size_0; + return true; + } + return false; +} + +function EnumSet$EnumSetImpl(all, set_0, size_0){ + this.all = all; + this.set_0 = set_0; + this.size_0 = size_0; +} + +defineClass(156, 174, {20:1, 28:1, 14:1, 174:1, 156:1, 21:1}, EnumSet$EnumSetImpl); +_.add_2 = function add_34(e){ + return $add_5(this, castTo(e, 22)); +} +; +_.contains = function contains_42(o){ + return $contains_5(this, o); +} +; +_.iterator_0 = function iterator_58(){ + return new EnumSet$EnumSetImpl$IteratorImpl(this); +} +; +_.remove_1 = function remove_75(o){ + return $remove_17(this, o); +} +; +_.size_1 = function size_55(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_EnumSet$EnumSetImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl', 156); +function $findNext(this$static){ + var c; + ++this$static.i; + for (c = this$static.this$11.all.length; this$static.i < c; ++this$static.i) { + if (this$static.this$11.set_0[this$static.i]) { + return; + } + } +} + +function $hasNext_4(this$static){ + return this$static.i < this$static.this$11.all.length; +} + +function $next_8(this$static){ + checkCriticalElement(this$static.i < this$static.this$11.all.length); + this$static.last = this$static.i; + $findNext(this$static); + return this$static.this$11.set_0[this$static.last]; +} + +function EnumSet$EnumSetImpl$IteratorImpl(this$1){ + this.this$11 = this$1; + $findNext(this); +} + +defineClass(343, 1, $intern_6, EnumSet$EnumSetImpl$IteratorImpl); +_.forEachRemaining = function forEachRemaining_27(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_30(){ + return $next_8(this); +} +; +_.hasNext_0 = function hasNext_29(){ + return $hasNext_4(this); +} +; +_.remove = function remove_76(){ + checkCriticalState(this.last != -1); + setCheck(this.this$11.set_0, this.last, null); + --this.this$11.size_0; + this.last = -1; +} +; +_.i = -1; +_.last = -1; +var Ljava_util_EnumSet$EnumSetImpl$IteratorImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl/IteratorImpl', 343); +function HashMap(){ + $reset(this); +} + +function HashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); +} + +function HashMap_1(toBeCopied){ + $reset(this); + $putAll(this, toBeCopied); +} + +defineClass(43, 488, $intern_76, HashMap, HashMap_0, HashMap_1); +_.equals_1 = function equals_56(value1, value2){ + return maskUndefined(value1) === maskUndefined(value2) || value1 != null && equals_Ljava_lang_Object__Z__devirtual$(value1, value2); +} +; +_.getHashCode = function getHashCode(key){ + var hashCode; + hashCode = hashCode__I__devirtual$(key); + return hashCode | 0; +} +; +var Ljava_util_HashMap_2_classLit = createForClass('java.util', 'HashMap', 43); +function $add_6(this$static, o){ + var old; + old = this$static.map_0.put(o, this$static); + return old == null; +} + +function $contains_6(this$static, o){ + return this$static.map_0.containsKey(o); +} + +function $remove_18(this$static, o){ + return this$static.map_0.remove_0(o) != null; +} + +function HashSet(){ + this.map_0 = new HashMap; +} + +function HashSet_0(initialCapacity){ + this.map_0 = new HashMap_0(initialCapacity); +} + +function HashSet_1(c){ + this.map_0 = new HashMap_0(c.size_1()); + $addAll(this, c); +} + +function HashSet_2(map_0){ + this.map_0 = map_0; +} + +defineClass(53, $intern_9, $intern_77, HashSet, HashSet_0, HashSet_1); +_.add_2 = function add_35(o){ + return $add_6(this, o); +} +; +_.clear_0 = function clear_42(){ + this.map_0.clear_0(); +} +; +_.contains = function contains_43(o){ + return $contains_6(this, o); +} +; +_.isEmpty = function isEmpty_23(){ + return this.map_0.size_1() == 0; +} +; +_.iterator_0 = function iterator_59(){ + return this.map_0.keySet_0().iterator_0(); +} +; +_.remove_1 = function remove_77(o){ + return $remove_18(this, o); +} +; +_.size_1 = function size_56(){ + return this.map_0.size_1(); +} +; +var Ljava_util_HashSet_2_classLit = createForClass('java.util', 'HashSet', 53); +function $accept_0(this$static, value_0){ + this$static.count = add_20(this$static.count, 1); + this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); + this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); + this$static.sum = add_20(this$static.sum, value_0); +} + +function IntSummaryStatistics(){ +} + +defineClass(1781, 1, $intern_21, IntSummaryStatistics); +_.accept_0 = function accept_16(value_0){ + $accept_0(this, value_0); +} +; +_.toString_0 = function toString_66(){ + return 'IntSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?toDouble_0(this.sum) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + toString_39(this.sum) + ']'; +} +; +_.count = 0; +_.max_0 = $intern_42; +_.min_0 = $intern_0; +_.sum = 0; +var Ljava_util_IntSummaryStatistics_2_classLit = createForClass('java.util', 'IntSummaryStatistics', 1781); +function $findEntryInChain(this$static, key, chain){ + var entry, entry$array, entry$index, entry$max; + for (entry$array = chain , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { + entry = entry$array[entry$index]; + if (this$static.host.equals_1(key, entry.getKey())) { + return entry; + } + } + return null; +} + +function $getChainOrEmpty(this$static, hashCode){ + var chain; + chain = this$static.backingMap.get(hashCode); + return chain == null?new Array:chain; +} + +function $getEntry_0(this$static, key){ + return $findEntryInChain(this$static, key, $getChainOrEmpty(this$static, key == null?0:this$static.host.getHashCode(key))); +} + +function $put_9(this$static, key, value_0){ + var chain, chain0, entry, hashCode; + hashCode = key == null?0:this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); + if (chain0.length == 0) { + this$static.backingMap.set(hashCode, chain0); + } + else { + entry = $findEntryInChain(this$static, key, chain0); + if (entry) { + return entry.setValue(value_0); + } + } + setCheck(chain0, chain0.length, new AbstractMap$SimpleEntry(key, value_0)); + ++this$static.size_0; + structureChanged(this$static.host); + return null; +} + +function $remove_19(this$static, key){ + var chain, chain0, entry, hashCode, i; + hashCode = key == null?0:this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); + for (i = 0; i < chain0.length; i++) { + entry = chain0[i]; + if (this$static.host.equals_1(key, entry.getKey())) { + if (chain0.length == 1) { + chain0.length = 0; + $delete_0(this$static.backingMap, hashCode); + } + else { + chain0.splice(i, 1); + } + --this$static.size_0; + structureChanged(this$static.host); + return entry.getValue(); + } + } + return null; +} + +function InternalHashCodeMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1049, 1, $intern_23, InternalHashCodeMap); +_.forEach_0 = function forEach_21(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_60(){ + return new InternalHashCodeMap$1(this); +} +; +_.size_0 = 0; +var Ljava_util_InternalHashCodeMap_2_classLit = createForClass('java.util', 'InternalHashCodeMap', 1049); +function InternalHashCodeMap$1(this$0){ + this.this$01 = this$0; + this.chains = this.this$01.backingMap.entries(); + this.chain = new Array; +} + +defineClass(711, 1, $intern_6, InternalHashCodeMap$1); +_.forEachRemaining = function forEachRemaining_28(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_31(){ + return this.lastEntry = this.chain[this.itemIndex++] , this.lastEntry; +} +; +_.hasNext_0 = function hasNext_30(){ + var current; + if (this.itemIndex < this.chain.length) { + return true; + } + current = this.chains.next(); + if (!current.done) { + this.chain = current.value[1]; + this.itemIndex = 0; + return true; + } + return false; +} +; +_.remove = function remove_78(){ + $remove_19(this.this$01, this.lastEntry.getKey()); + this.itemIndex != 0 && --this.itemIndex; +} +; +_.itemIndex = 0; +_.lastEntry = null; +var Ljava_util_InternalHashCodeMap$1_2_classLit = createForClass('java.util', 'InternalHashCodeMap/1', 711); +function $delete_0(this$static, key){ + var fn; + fn = this$static['delete']; + fn.call(this$static, key); +} + +function $delete_1(this$static, key){ + var fn; + fn = this$static['delete']; + fn.call(this$static, key); +} + +function $clinit_InternalJsMapFactory(){ + $clinit_InternalJsMapFactory = emptyMethod; + jsMapCtor = getJsMapConstructor(); +} + +function canHandleObjectCreateAndProto(){ + if (!Object.create || !Object.getOwnPropertyNames) { + return false; + } + var protoField = '__proto__'; + var map_0 = Object.create(null); + if (map_0[protoField] !== undefined) { + return false; + } + var keys_0 = Object.getOwnPropertyNames(map_0); + if (keys_0.length != 0) { + return false; + } + map_0[protoField] = 42; + if (map_0[protoField] !== 42) { + return false; + } + if (Object.getOwnPropertyNames(map_0).length == 0) { + return false; + } + return true; +} + +function getJsMapConstructor(){ + function isCorrectIterationProtocol(){ + try { + return (new Map).entries().next().done; + } + catch (e) { + return false; + } + } + + if (typeof Map === 'function' && Map.prototype.entries && isCorrectIterationProtocol()) { + return Map; + } + else { + return getJsMapPolyFill(); + } +} + +function getJsMapPolyFill(){ + function Stringmap(){ + this.obj = this.createObject(); + } + + ; + Stringmap.prototype.createObject = function(key){ + return Object.create(null); + } + ; + Stringmap.prototype.get = function(key){ + return this.obj[key]; + } + ; + Stringmap.prototype.set = function(key, value_0){ + this.obj[key] = value_0; + } + ; + Stringmap.prototype['delete'] = function(key){ + delete this.obj[key]; + } + ; + Stringmap.prototype.keys = function(){ + return Object.getOwnPropertyNames(this.obj); + } + ; + Stringmap.prototype.entries = function(){ + var keys_0 = this.keys(); + var map_0 = this; + var nextIndex = 0; + return {next:function(){ + if (nextIndex >= keys_0.length) + return {done:true}; + var key = keys_0[nextIndex++]; + return {value:[key, map_0.get(key)], done:false}; + } + }; + } + ; + if (!canHandleObjectCreateAndProto()) { + Stringmap.prototype.createObject = function(){ + return {}; + } + ; + Stringmap.prototype.get = function(key){ + return this.obj[':' + key]; + } + ; + Stringmap.prototype.set = function(key, value_0){ + this.obj[':' + key] = value_0; + } + ; + Stringmap.prototype['delete'] = function(key){ + delete this.obj[':' + key]; + } + ; + Stringmap.prototype.keys = function(){ + var result = []; + for (var key in this.obj) { + key.charCodeAt(0) == 58 && result.push(key.substring(1)); + } + return result; + } + ; + } + return Stringmap; +} + +function newJsMap(){ + $clinit_InternalJsMapFactory(); + return new jsMapCtor; +} + +var jsMapCtor; +function $contains_7(this$static, key){ + return !(this$static.backingMap.get(key) === undefined); +} + +function $get_15(this$static, key){ + return this$static.backingMap.get(key); +} + +function $put_10(this$static, key, value_0){ + var oldValue; + oldValue = this$static.backingMap.get(key); + this$static.backingMap.set(key, value_0 === undefined?null:value_0); + if (oldValue === undefined) { + ++this$static.size_0; + structureChanged(this$static.host); + } + else { + ++this$static.valueMod; + } + return oldValue; +} + +function $remove_20(this$static, key){ + var value_0; + value_0 = this$static.backingMap.get(key); + if (value_0 === undefined) { + ++this$static.valueMod; + } + else { + $delete_1(this$static.backingMap, key); + --this$static.size_0; + structureChanged(this$static.host); + } + return value_0; +} + +function InternalStringMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1047, 1, $intern_23, InternalStringMap); +_.forEach_0 = function forEach_22(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_61(){ + return new InternalStringMap$1(this); +} +; +_.size_0 = 0; +_.valueMod = 0; +var Ljava_util_InternalStringMap_2_classLit = createForClass('java.util', 'InternalStringMap', 1047); +function InternalStringMap$1(this$0){ + this.this$01 = this$0; + this.entries_0 = this.this$01.backingMap.entries(); + this.current = this.entries_0.next(); +} + +defineClass(710, 1, $intern_6, InternalStringMap$1); +_.forEachRemaining = function forEachRemaining_29(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_32(){ + return this.last = this.current , this.current = this.entries_0.next() , new InternalStringMap$2(this.this$01, this.last, this.this$01.valueMod); +} +; +_.hasNext_0 = function hasNext_31(){ + return !this.current.done; +} +; +_.remove = function remove_79(){ + $remove_20(this.this$01, this.last.value[0]); +} +; +var Ljava_util_InternalStringMap$1_2_classLit = createForClass('java.util', 'InternalStringMap/1', 710); +function InternalStringMap$2(this$0, val$entry, val$lastValueMod){ + this.this$01 = this$0; + this.val$entry2 = val$entry; + this.val$lastValueMod3 = val$lastValueMod; +} + +defineClass(1048, 1984, $intern_70, InternalStringMap$2); +_.getKey = function getKey_7(){ + return this.val$entry2.value[0]; +} +; +_.getValue = function getValue_9(){ + if (this.this$01.valueMod != this.val$lastValueMod3) { + return $get_15(this.this$01, this.val$entry2.value[0]); + } + return this.val$entry2.value[1]; +} +; +_.setValue = function setValue_10(object){ + return $put_10(this.this$01, this.val$entry2.value[0], object); +} +; +_.val$lastValueMod3 = 0; +var Ljava_util_InternalStringMap$2_2_classLit = createForClass('java.util', 'InternalStringMap/2', 1048); +function $$init_3(this$static){ + this$static.head = new LinkedHashMap$ChainEntry(this$static); + this$static.map_0 = new HashMap; +} + +function $clear_7(this$static){ + $reset(this$static.map_0); + this$static.head.prev = this$static.head; + this$static.head.next_0 = this$static.head; +} + +function $containsKey_6(this$static, key){ + return $containsKey_3(this$static.map_0, key); +} + +function $get_16(this$static, key){ + var entry; + entry = castTo($get_10(this$static.map_0, key), 387); + if (entry) { + $recordAccess(this$static, entry); + return entry.value_0; + } + return null; +} + +function $put_11(this$static, key, value_0){ + var newEntry, old, oldValue; + old = castTo($get_10(this$static.map_0, key), 387); + if (!old) { + newEntry = new LinkedHashMap$ChainEntry_0(this$static, key, value_0); + $put_6(this$static.map_0, key, newEntry); + $addToEnd(newEntry); + return null; + } + else { + oldValue = $setValue_0(old, value_0); + $recordAccess(this$static, old); + return oldValue; + } +} + +function $recordAccess(this$static, entry){ + if (this$static.accessOrder) { + $remove_23(entry); + $addToEnd(entry); + } +} + +function $remove_22(this$static, key){ + var entry; + entry = castTo($remove_6(this$static.map_0, key), 387); + if (entry) { + $remove_23(entry); + return entry.value_0; + } + return null; +} + +function LinkedHashMap(){ + HashMap.call(this); + $$init_3(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +function LinkedHashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); + $$init_3(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +defineClass(228, 43, $intern_76, LinkedHashMap, LinkedHashMap_0); +_.clear_0 = function clear_43(){ + $clear_7(this); +} +; +_.containsKey = function containsKey_14(key){ + return $containsKey_6(this, key); +} +; +_.containsValue = function containsValue_7(value_0){ + var node; + node = this.head.next_0; + while (node != this.head) { + if (equals_57(node.value_0, value_0)) { + return true; + } + node = node.next_0; + } + return false; +} +; +_.entrySet_0 = function entrySet_7(){ + return new LinkedHashMap$EntrySet(this); +} +; +_.get_3 = function get_42(key){ + return $get_16(this, key); +} +; +_.put = function put_8(key, value_0){ + return $put_11(this, key, value_0); +} +; +_.remove_0 = function remove_80(key){ + return $remove_22(this, key); +} +; +_.size_1 = function size_57(){ + return $size_2(this.map_0); +} +; +_.accessOrder = false; +var Ljava_util_LinkedHashMap_2_classLit = createForClass('java.util', 'LinkedHashMap', 228); +function $addToEnd(this$static){ + var tail; + tail = this$static.this$01.head.prev; + this$static.prev = tail; + this$static.next_0 = this$static.this$01.head; + tail.next_0 = this$static.this$01.head.prev = this$static; +} + +function $remove_23(this$static){ + this$static.next_0.prev = this$static.prev; + this$static.prev.next_0 = this$static.next_0; + this$static.next_0 = this$static.prev = null; +} + +function LinkedHashMap$ChainEntry(this$0){ + LinkedHashMap$ChainEntry_0.call(this, this$0, null, null); +} + +function LinkedHashMap$ChainEntry_0(this$0, key, value_0){ + this.this$01 = this$0; + AbstractMap$SimpleEntry.call(this, key, value_0); +} + +defineClass(387, 383, {484:1, 383:1, 387:1, 42:1}, LinkedHashMap$ChainEntry, LinkedHashMap$ChainEntry_0); +var Ljava_util_LinkedHashMap$ChainEntry_2_classLit = createForClass('java.util', 'LinkedHashMap/ChainEntry', 387); +function $contains_8(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function LinkedHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(701, $intern_9, $intern_10, LinkedHashMap$EntrySet); +_.clear_0 = function clear_44(){ + $clear_7(this.this$01); +} +; +_.contains = function contains_44(o){ + return $contains_8(this, o); +} +; +_.iterator_0 = function iterator_62(){ + return new LinkedHashMap$EntrySet$EntryIterator(this); +} +; +_.remove_1 = function remove_81(entry){ + var key; + if ($contains_8(this, entry)) { + key = castTo(entry, 42).getKey(); + $remove_22(this.this$01, key); + return true; + } + return false; +} +; +_.size_1 = function size_58(){ + return $size_2(this.this$01.map_0); +} +; +var Ljava_util_LinkedHashMap$EntrySet_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet', 701); +function $next_9(this$static){ + checkStructuralChange(this$static.this$11.this$01.map_0, this$static); + checkCriticalElement(this$static.next_0 != this$static.this$11.this$01.head); + this$static.last = this$static.next_0; + this$static.next_0 = this$static.next_0.next_0; + return this$static.last; +} + +function LinkedHashMap$EntrySet$EntryIterator(this$1){ + this.this$11 = this$1; + this.next_0 = this$1.this$01.head.next_0; + recordLastKnownStructure(this$1.this$01.map_0, this); +} + +defineClass(702, 1, $intern_6, LinkedHashMap$EntrySet$EntryIterator); +_.forEachRemaining = function forEachRemaining_30(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_33(){ + return $next_9(this); +} +; +_.hasNext_0 = function hasNext_32(){ + return this.next_0 != this.this$11.this$01.head; +} +; +_.remove = function remove_82(){ + checkCriticalState(!!this.last); + checkStructuralChange(this.this$11.this$01.map_0, this); + $remove_23(this.last); + $remove_6(this.this$11.this$01.map_0, this.last.key); + recordLastKnownStructure(this.this$11.this$01.map_0, this); + this.last = null; +} +; +var Ljava_util_LinkedHashMap$EntrySet$EntryIterator_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet/EntryIterator', 702); +function LinkedHashSet(){ + HashSet_2.call(this, new LinkedHashMap); +} + +function LinkedHashSet_0(ignored){ + HashSet_2.call(this, new LinkedHashMap_0(ignored)); +} + +function LinkedHashSet_1(c){ + HashSet_2.call(this, new LinkedHashMap); + $addAll(this, c); +} + +defineClass(178, 53, $intern_77, LinkedHashSet, LinkedHashSet_0, LinkedHashSet_1); +var Ljava_util_LinkedHashSet_2_classLit = createForClass('java.util', 'LinkedHashSet', 178); +function $$init_4(this$static){ + this$static.header = new LinkedList$Node; + this$static.tail = new LinkedList$Node; +} + +function $add_7(this$static, o){ + $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); + return true; +} + +function $addFirst_0(this$static, o){ + $addNode_0(this$static, o, this$static.header, this$static.header.next_0); +} + +function $addLast_0(this$static, o){ + $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); +} + +function $addNode_0(this$static, o, prev, next){ + var node; + node = new LinkedList$Node; + node.value_0 = o; + node.prev = prev; + node.next_0 = next; + next.prev = prev.next_0 = node; + ++this$static.size_0; +} + +function $getFirst(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return this$static.header.next_0.value_0; +} + +function $getLast(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return this$static.tail.prev.value_0; +} + +function $listIterator_2(this$static, index_0){ + var i, node; + checkCriticalPositionIndex(index_0, this$static.size_0); + if (index_0 >= this$static.size_0 >> 1) { + node = this$static.tail; + for (i = this$static.size_0; i > index_0; --i) { + node = node.prev; + } + } + else { + node = this$static.header.next_0; + for (i = 0; i < index_0; ++i) { + node = node.next_0; + } + } + return new LinkedList$ListIteratorImpl(this$static, index_0, node); +} + +function $poll(this$static){ + return this$static.size_0 == 0?null:(checkCriticalElement(this$static.size_0 != 0) , $removeNode_0(this$static, this$static.header.next_0)); +} + +function $removeFirst_0(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return $removeNode_0(this$static, this$static.header.next_0); +} + +function $removeLast_0(this$static){ + checkCriticalElement(this$static.size_0 != 0); + return $removeNode_0(this$static, this$static.tail.prev); +} + +function $removeNode_0(this$static, node){ + var oldValue; + oldValue = node.value_0; + node.next_0.prev = node.prev; + node.prev.next_0 = node.next_0; + node.next_0 = node.prev = null; + node.value_0 = null; + --this$static.size_0; + return oldValue; +} + +function $reset_0(this$static){ + this$static.header.next_0 = this$static.tail; + this$static.tail.prev = this$static.header; + this$static.header.prev = this$static.tail.next_0 = null; + this$static.size_0 = 0; +} + +function LinkedList(){ + $$init_4(this); + $reset_0(this); +} + +function LinkedList_0(c){ + $$init_4(this); + $reset_0(this); + $addAll(this, c); +} + +defineClass(68, 1964, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1}, LinkedList, LinkedList_0); +_.add_2 = function add_36(o){ + return $add_7(this, o); +} +; +_.clear_0 = function clear_45(){ + $reset_0(this); +} +; +_.listIterator_1 = function listIterator_14(index_0){ + return $listIterator_2(this, index_0); +} +; +_.size_1 = function size_59(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_LinkedList_2_classLit = createForClass('java.util', 'LinkedList', 68); +function $add_8(this$static, o){ + $addNode_0(this$static.this$01, o, this$static.currentNode.prev, this$static.currentNode); + ++this$static.currentIndex; + this$static.lastNode = null; +} + +function $hasNext_5(this$static){ + return this$static.currentNode != this$static.this$01.tail; +} + +function $next_10(this$static){ + checkCriticalElement(this$static.currentNode != this$static.this$01.tail); + this$static.lastNode = this$static.currentNode; + this$static.currentNode = this$static.currentNode.next_0; + ++this$static.currentIndex; + return this$static.lastNode.value_0; +} + +function $previous_0(this$static){ + checkCriticalElement(this$static.currentNode.prev != this$static.this$01.header); + this$static.lastNode = this$static.currentNode = this$static.currentNode.prev; + --this$static.currentIndex; + return this$static.lastNode.value_0; +} + +function $remove_24(this$static){ + var nextNode; + checkCriticalState(!!this$static.lastNode); + nextNode = this$static.lastNode.next_0; + $removeNode_0(this$static.this$01, this$static.lastNode); + this$static.currentNode == this$static.lastNode?(this$static.currentNode = nextNode):--this$static.currentIndex; + this$static.lastNode = null; +} + +function LinkedList$ListIteratorImpl(this$0, index_0, startNode){ + this.this$01 = this$0; + this.currentNode = startNode; + this.currentIndex = index_0; +} + +defineClass(970, 1, $intern_14, LinkedList$ListIteratorImpl); +_.forEachRemaining = function forEachRemaining_31(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_37(o){ + $add_8(this, o); +} +; +_.hasNext_0 = function hasNext_33(){ + return $hasNext_5(this); +} +; +_.hasPrevious = function hasPrevious_6(){ + return this.currentNode.prev != this.this$01.header; +} +; +_.next_1 = function next_34(){ + return $next_10(this); +} +; +_.nextIndex_0 = function nextIndex_7(){ + return this.currentIndex; +} +; +_.previous_0 = function previous_7(){ + return $previous_0(this); +} +; +_.previousIndex = function previousIndex_6(){ + return this.currentIndex - 1; +} +; +_.remove = function remove_83(){ + $remove_24(this); +} +; +_.set_1 = function set_18(o){ + checkCriticalState(!!this.lastNode); + this.lastNode.value_0 = o; +} +; +_.currentIndex = 0; +_.lastNode = null; +var Ljava_util_LinkedList$ListIteratorImpl_2_classLit = createForClass('java.util', 'LinkedList/ListIteratorImpl', 970); +function LinkedList$Node(){ +} + +defineClass(608, 1, {}, LinkedList$Node); +var Ljava_util_LinkedList$Node_2_classLit = createForClass('java.util', 'LinkedList/Node', 608); +function $clinit_Locale(){ + $clinit_Locale = emptyMethod; + ROOT = new Locale$1; + defaultLocale = new Locale$4; +} + +defineClass(1959, 1, {}); +var ROOT, defaultLocale; +var Ljava_util_Locale_2_classLit = createForClass('java.util', 'Locale', 1959); +function Locale$1(){ +} + +defineClass(861, 1959, {}, Locale$1); +_.toString_0 = function toString_67(){ + return ''; +} +; +var Ljava_util_Locale$1_2_classLit = createForClass('java.util', 'Locale/1', 861); +function Locale$4(){ +} + +defineClass(862, 1959, {}, Locale$4); +_.toString_0 = function toString_68(){ + return 'unknown'; +} +; +var Ljava_util_Locale$4_2_classLit = createForClass('java.util', 'Locale/4', 862); +function NoSuchElementException(){ + RuntimeException.call(this); +} + +function NoSuchElementException_0(){ + RuntimeException_0.call(this, 'There is no more element.'); +} + +defineClass(109, 60, {3:1, 102:1, 60:1, 78:1, 109:1}, NoSuchElementException, NoSuchElementException_0); +var Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util', 'NoSuchElementException', 109); +function equals_57(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function hashCode_54(o){ + return o != null?hashCode__I__devirtual$(o):0; +} + +function requireNonNull(obj, message){ + if (obj == null) { + throw toJs(new NullPointerException_0(message)); + } + return obj; +} + +function $clinit_Optional(){ + $clinit_Optional = emptyMethod; + EMPTY_3 = new Optional(null); +} + +function $get_17(this$static){ + checkCriticalElement(this$static.ref != null); + return this$static.ref; +} + +function $ifPresent(this$static, consumer){ + this$static.ref != null && $accept_4(consumer, this$static.ref); +} + +function $map(this$static, mapper){ + checkCriticalNotNull(mapper); + if (this$static.ref != null) { + return ofNullable(mapper.apply_0(this$static.ref)); + } + return EMPTY_3; +} + +function $orElse(this$static){ + return this$static.ref != null?this$static.ref:null; +} + +function Optional(ref){ + $clinit_Optional(); + this.ref = ref; +} + +function ofNullable(value_0){ + return value_0 == null?EMPTY_3:new Optional(checkCriticalNotNull(value_0)); +} + +defineClass(404, 1, {404:1}, Optional); +_.equals_0 = function equals_58(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 404)) { + return false; + } + other = castTo(obj, 404); + return equals_57(this.ref, other.ref); +} +; +_.hashCode_1 = function hashCode_55(){ + return hashCode_54(this.ref); +} +; +_.toString_0 = function toString_69(){ + return this.ref != null?'Optional.of(' + valueOf_7(this.ref) + ')':'Optional.empty()'; +} +; +var EMPTY_3; +var Ljava_util_Optional_2_classLit = createForClass('java.util', 'Optional', 404); +function $clinit_OptionalDouble(){ + $clinit_OptionalDouble = emptyMethod; + EMPTY_4 = new OptionalDouble; +} + +function $orElse_0(this$static){ + return this$static.present?this$static.ref:0; +} + +function $orElseGet(this$static, other){ + return this$static.present?this$static.ref:other.getAsDouble(); +} + +function OptionalDouble(){ + this.ref = 0; + this.present = false; +} + +function OptionalDouble_0(value_0){ + $clinit_OptionalDouble(); + this.ref = value_0; + this.present = true; +} + +defineClass(463, 1, {463:1}, OptionalDouble, OptionalDouble_0); +_.equals_0 = function equals_59(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 463)) { + return false; + } + other = castTo(obj, 463); + return this.present == other.present && compare_4(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_56(){ + return this.present?round_int(this.ref):0; +} +; +_.toString_0 = function toString_70(){ + return this.present?'OptionalDouble.of(' + ('' + this.ref) + ')':'OptionalDouble.empty()'; +} +; +_.present = false; +_.ref = 0; +var EMPTY_4; +var Ljava_util_OptionalDouble_2_classLit = createForClass('java.util', 'OptionalDouble', 463); +function $clinit_OptionalInt(){ + $clinit_OptionalInt = emptyMethod; + EMPTY_5 = new OptionalInt; +} + +function $orElse_1(this$static){ + return this$static.present?this$static.ref:0; +} + +function OptionalInt(){ + this.ref = 0; + this.present = false; +} + +function OptionalInt_0(value_0){ + $clinit_OptionalInt(); + this.ref = value_0; + this.present = true; +} + +defineClass(517, 1, {517:1}, OptionalInt, OptionalInt_0); +_.equals_0 = function equals_60(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 517)) { + return false; + } + other = castTo(obj, 517); + return this.present == other.present && compare_5(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_57(){ + return this.present?this.ref:0; +} +; +_.toString_0 = function toString_71(){ + return this.present?'OptionalInt.of(' + ('' + this.ref) + ')':'OptionalInt.empty()'; +} +; +_.present = false; +_.ref = 0; +var EMPTY_5; +var Ljava_util_OptionalInt_2_classLit = createForClass('java.util', 'OptionalInt', 517); +function $addAll_4(this$static, c){ + var e, e$iterator, oldSize; + checkCriticalNotNull(c); + checkCriticalArgument(c != this$static); + oldSize = this$static.heap.array.length; + for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { + e = e$iterator.next_1(); + $add_3(this$static.heap, checkCriticalNotNull(e)); + } + if (oldSize != this$static.heap.array.length) { + $makeHeap(this$static, 0); + return true; + } + return false; +} + +function $makeHeap(this$static, node){ + var rightChild; + if (node * 2 + 1 >= this$static.heap.array.length) { + return; + } + $makeHeap(this$static, 2 * node + 1); + rightChild = 2 * node + 2; + rightChild < this$static.heap.array.length && $makeHeap(this$static, rightChild); + $mergeHeaps(this$static, node); +} + +function $mergeHeaps(this$static, node){ + var heapSize, smallestChild, value_0, leftChild, rightChild, smallestChild_0; + heapSize = this$static.heap.array.length; + value_0 = $get_11(this$static.heap, node); + while (node * 2 + 1 < heapSize) { + smallestChild = (leftChild = 2 * node + 1 , rightChild = leftChild + 1 , smallestChild_0 = leftChild , rightChild < heapSize && this$static.cmp.compare_1($get_11(this$static.heap, rightChild), $get_11(this$static.heap, leftChild)) < 0 && (smallestChild_0 = rightChild) , smallestChild_0); + if (this$static.cmp.compare_1(value_0, $get_11(this$static.heap, smallestChild)) < 0) { + break; + } + $set_1(this$static.heap, node, $get_11(this$static.heap, smallestChild)); + node = smallestChild; + } + $set_1(this$static.heap, node, value_0); +} + +function $offer(this$static, e){ + var childNode, node; + checkCriticalNotNull(e); + node = this$static.heap.array.length; + $add_3(this$static.heap, e); + while (node > 0) { + childNode = node; + node = (node - 1) / 2 | 0; + if (this$static.cmp.compare_1($get_11(this$static.heap, node), e) <= 0) { + $set_1(this$static.heap, childNode, e); + return true; + } + $set_1(this$static.heap, childNode, $get_11(this$static.heap, node)); + } + $set_1(this$static.heap, node, e); + return true; +} + +function $poll_0(this$static){ + var value_0; + value_0 = this$static.heap.array.length == 0?null:$get_11(this$static.heap, 0); + value_0 != null && $removeAtIndex_0(this$static, 0); + return value_0; +} + +function $remove_25(this$static, o){ + var index_0; + index_0 = o == null?-1:$indexOf_3(this$static.heap, o, 0); + if (index_0 < 0) { + return false; + } + $removeAtIndex_0(this$static, index_0); + return true; +} + +function $removeAtIndex_0(this$static, index_0){ + var lastValue; + lastValue = $remove_11(this$static.heap, this$static.heap.array.length - 1); + if (index_0 < this$static.heap.array.length) { + $set_1(this$static.heap, index_0, lastValue); + $mergeHeaps(this$static, index_0); + } +} + +function PriorityQueue(comparator){ + this.heap = new ArrayList_0(11); + this.cmp = ($clinit_Comparators() , comparator); +} + +defineClass(503, 2004, $intern_8, PriorityQueue); +_.addAll = function addAll_18(c){ + return $addAll_4(this, c); +} +; +_.clear_0 = function clear_46(){ + this.heap.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_45(o){ + return (o == null?-1:$indexOf_3(this.heap, o, 0)) != -1; +} +; +_.iterator_0 = function iterator_63(){ + return new PriorityQueue$1(this); +} +; +_.remove_1 = function remove_84(o){ + return $remove_25(this, o); +} +; +_.size_1 = function size_60(){ + return this.heap.array.length; +} +; +_.spliterator_0 = function spliterator_33(){ + return new Spliterators$IteratorSpliterator(this, 256); +} +; +_.toArray = function toArray_19(){ + return $toArray_1(this.heap); +} +; +_.toArray_0 = function toArray_20(a){ + return $toArray_2(this.heap, a); +} +; +var Ljava_util_PriorityQueue_2_classLit = createForClass('java.util', 'PriorityQueue', 503); +function PriorityQueue$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1277, 1, $intern_6, PriorityQueue$1); +_.forEachRemaining = function forEachRemaining_32(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_34(){ + return this.i < this.this$01.heap.array.length; +} +; +_.next_1 = function next_35(){ + checkCriticalElement(this.i < this.this$01.heap.array.length); + this.last = this.i++; + return $get_11(this.this$01.heap, this.last); +} +; +_.remove = function remove_85(){ + checkCriticalState(this.last != -1); + $removeAtIndex_0(this.this$01, this.i = this.last); + this.last = -1; +} +; +_.i = 0; +_.last = -1; +var Ljava_util_PriorityQueue$1_2_classLit = createForClass('java.util', 'PriorityQueue/1', 1277); +function $clinit_Random(){ + $clinit_Random = emptyMethod; + var i, i0, twoToTheXMinus24Tmp, twoToTheXMinus48Tmp; + twoToTheXMinus24 = initUnidimensionalArray(D_classLit, $intern_65, 25, 25, 15, 1); + twoToTheXMinus48 = initUnidimensionalArray(D_classLit, $intern_65, 25, 33, 15, 1); + twoToTheXMinus48Tmp = 1.52587890625E-5; + for (i0 = 32; i0 >= 0; i0--) { + twoToTheXMinus48[i0] = twoToTheXMinus48Tmp; + twoToTheXMinus48Tmp *= 0.5; + } + twoToTheXMinus24Tmp = 1; + for (i = 24; i >= 0; i--) { + twoToTheXMinus24[i] = twoToTheXMinus24Tmp; + twoToTheXMinus24Tmp *= 0.5; + } +} + +function $nextDouble(this$static){ + return $nextInternal(this$static, 26) * $intern_78 + $nextInternal(this$static, 27) * $intern_79; +} + +function $nextInt(this$static, n){ + var bits, val; + checkCriticalArgument(n > 0); + if ((n & -n) == n) { + return round_int(n * $nextInternal(this$static, 31) * 4.6566128730773926E-10); + } + do { + bits = $nextInternal(this$static, 31); + val = bits % n; + } + while (bits - val + (n - 1) < 0); + return round_int(val); +} + +function $nextInternal(this$static, bits){ + var carry, dval, h, hi, l, lo; + hi = this$static.seedhi * $intern_80 + this$static.seedlo * 1502; + lo = this$static.seedlo * $intern_80 + 11; + carry = $wnd.Math.floor(lo * $intern_81); + hi += carry; + lo -= carry * $intern_82; + hi %= $intern_82; + this$static.seedhi = hi; + this$static.seedlo = lo; + if (bits <= 24) { + return $wnd.Math.floor(this$static.seedhi * twoToTheXMinus24[bits]); + } + else { + h = this$static.seedhi * (1 << bits - 24); + l = $wnd.Math.floor(this$static.seedlo * twoToTheXMinus48[bits]); + dval = h + l; + dval >= 2147483648 && (dval -= $intern_69); + return dval; + } +} + +function $nextLong(this$static){ + return add_20(shl_0(fromDouble_0($nextInternal(this$static, 32)), 32), fromDouble_0($nextInternal(this$static, 32))); +} + +function $setSeed(this$static, seedhi, seedlo){ + this$static.seedhi = seedhi ^ 1502; + this$static.seedlo = seedlo ^ $intern_80; +} + +function $setSeed_0(this$static, seed){ + $setSeed(this$static, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); +} + +function Random(){ + $clinit_Random(); + var hi, lo, seed; + seed = uniqueSeed++ + Date.now(); + hi = round_int($wnd.Math.floor(seed * $intern_81)) & $intern_83; + lo = round_int(seed - hi * $intern_82); + this.seedhi = hi ^ 1502; + this.seedlo = lo ^ $intern_80; +} + +function Random_0(seed){ + $clinit_Random(); + $setSeed(this, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); +} + +defineClass(230, 1, {230:1}, Random, Random_0); +_.seedhi = 0; +_.seedlo = 0; +var twoToTheXMinus24, twoToTheXMinus48, uniqueSeed = 0; +var Ljava_util_Random_2_classLit = createForClass('java.util', 'Random', 230); +function $initIterator(this$static){ + if (!this$static.it) { + this$static.it = this$static.collection.iterator_0(); + this$static.estimateSize = this$static.collection.size_1(); + } +} + +function $tryAdvance(this$static, consumer){ + checkCriticalNotNull(consumer); + $initIterator(this$static); + if (this$static.it.hasNext_0()) { + consumer.accept(this$static.it.next_1()); + return true; + } + return false; +} + +function Spliterators$IteratorSpliterator(collection, characteristics){ + this.collection = (checkCriticalNotNull(collection) , collection); + this.characteristics = (characteristics & $intern_61) == 0?characteristics | 64 | $intern_17:characteristics; +} + +function Spliterators$IteratorSpliterator_0(it){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 0; + this.estimateSize = $intern_20; +} + +function Spliterators$IteratorSpliterator_1(it, size_0){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 16449; + this.estimateSize = size_0; +} + +defineClass(27, 1, $intern_18, Spliterators$IteratorSpliterator, Spliterators$IteratorSpliterator_0, Spliterators$IteratorSpliterator_1); +_.characteristics_0 = function characteristics_3(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_2(){ + $initIterator(this); + return this.estimateSize; +} +; +_.forEachRemaining = function forEachRemaining_33(consumer){ + $initIterator(this); + this.it.forEachRemaining(consumer); +} +; +_.tryAdvance = function tryAdvance_2(consumer){ + return $tryAdvance(this, consumer); +} +; +_.characteristics = 0; +_.estimateSize = 0; +var Ljava_util_Spliterators$IteratorSpliterator_2_classLit = createForClass('java.util', 'Spliterators/IteratorSpliterator', 27); +function SortedSet$1($anonymous0){ + Spliterators$IteratorSpliterator.call(this, $anonymous0, 21); +} + +defineClass(485, 27, $intern_18, SortedSet$1); +var Ljava_util_SortedSet$1_2_classLit = createForClass('java.util', 'SortedSet/1', 485); +function $forEachRemaining_1(this$static, consumer){ + while (this$static.tryAdvance_0(consumer)) + ; +} + +function Spliterator$OfDouble$0methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(602, 1, $intern_75, Spliterator$OfDouble$0methodref$accept$Type); +_.accept_2 = function accept_17(arg0){ + this.$$outer_0.accept(arg0); +} +; +var Ljava_util_Spliterator$OfDouble$0methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/0methodref$accept$Type', 602); +function Spliterator$OfDouble$1methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(603, 1, $intern_75, Spliterator$OfDouble$1methodref$accept$Type); +_.accept_2 = function accept_18(arg0){ + this.$$outer_0.accept(arg0); +} +; +var Ljava_util_Spliterator$OfDouble$1methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/1methodref$accept$Type', 603); +function Spliterator$OfInt$2methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(604, 1, $intern_21, Spliterator$OfInt$2methodref$accept$Type); +_.accept_0 = function accept_19(arg0){ + this.$$outer_0.accept(valueOf_4(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$2methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/2methodref$accept$Type', 604); +function Spliterator$OfInt$3methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(605, 1, $intern_21, Spliterator$OfInt$3methodref$accept$Type); +_.accept_0 = function accept_20(arg0){ + this.$$outer_0.accept(valueOf_4(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$3methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/3methodref$accept$Type', 605); +function checkCriticalArrayBounds(end, length_0){ + if (0 > end || end > length_0) { + throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: 0, toIndex: ' + end + ', length: ' + length_0)); + } +} + +function Spliterators$BaseSpliterator(size_0, characteristics){ + this.sizeEstimate = size_0; + this.characteristics = (characteristics & 64) != 0?characteristics | $intern_17:characteristics; +} + +defineClass(617, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_34(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.characteristics_0 = function characteristics_4(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_3(){ + return this.sizeEstimate; +} +; +_.characteristics = 0; +_.sizeEstimate = 0; +var Ljava_util_Spliterators$BaseSpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseSpliterator', 617); +function Spliterators$AbstractDoubleSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(721, 617, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_35(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_36(consumer){ + instanceOf(consumer, 182)?$forEachRemaining_1(this, castTo(consumer, 182)):$forEachRemaining_1(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_3(consumer){ + return instanceOf(consumer, 182)?this.tryAdvance_0(castTo(consumer, 182)):this.tryAdvance_0(new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractDoubleSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractDoubleSpliterator', 721); +function Spliterators$AbstractIntSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(720, 617, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_37(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_38(consumer){ + instanceOf(consumer, 196)?$forEachRemaining_1(this, castTo(consumer, 196)):$forEachRemaining_1(this, new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_4(consumer){ + return instanceOf(consumer, 196)?this.tryAdvance_0(castTo(consumer, 196)):this.tryAdvance_0(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractIntSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractIntSpliterator', 720); +function Spliterators$AbstractSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(540, 617, $intern_18); +var Ljava_util_Spliterators$AbstractSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractSpliterator', 540); +function $forEachRemaining_2(this$static, consumer){ + checkCriticalNotNull(consumer); + while (this$static.index_0 < this$static.limit) { + this$static.consume(consumer, this$static.index_0++); + } +} + +function $tryAdvance_0(this$static, consumer){ + checkCriticalNotNull(consumer); + if (this$static.index_0 < this$static.limit) { + this$static.consume(consumer, this$static.index_0++); + return true; + } + return false; +} + +function Spliterators$BaseArraySpliterator(limit, characteristics){ + this.index_0 = 0; + this.limit = limit; + this.characteristics = characteristics | 64 | $intern_17; +} + +defineClass(692, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_39(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.characteristics_0 = function characteristics_5(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_4(){ + return this.limit - this.index_0; +} +; +_.characteristics = 0; +_.index_0 = 0; +_.limit = 0; +var Ljava_util_Spliterators$BaseArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseArraySpliterator', 692); +function $consume(this$static, consumer, index_0){ + consumer.accept(this$static.array[index_0]); +} + +function Spliterators$ArraySpliterator(array, limit){ + Spliterators$BaseArraySpliterator.call(this, limit, 1040); + this.array = array; +} + +defineClass(947, 692, $intern_18, Spliterators$ArraySpliterator); +_.consume = function consume(consumer, index_0){ + $consume(this, castTo(consumer, 38), index_0); +} +; +_.forEachRemaining = function forEachRemaining_40(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.tryAdvance = function tryAdvance_5(consumer){ + return $tryAdvance_0(this, consumer); +} +; +var Ljava_util_Spliterators$ArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/ArraySpliterator', 947); +function $consume_0(this$static, consumer, index_0){ + consumer.accept_2(this$static.array[index_0]); +} + +function Spliterators$DoubleArraySpliterator(array, characteristics){ + Spliterators$DoubleArraySpliterator_0.call(this, array, array.length, characteristics); +} + +function Spliterators$DoubleArraySpliterator_0(array, limit, characteristics){ + Spliterators$BaseArraySpliterator.call(this, limit, characteristics); + this.array = array; +} + +defineClass(693, 692, $intern_18, Spliterators$DoubleArraySpliterator); +_.consume = function consume_0(consumer, index_0){ + $consume_0(this, castTo(consumer, 182), index_0); +} +; +_.forEachRemaining_0 = function forEachRemaining_41(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_42(consumer){ + instanceOf(consumer, 182)?$forEachRemaining_2(this, castTo(consumer, 182)):$forEachRemaining_2(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance_0 = function tryAdvance_6(consumer){ + return $tryAdvance_0(this, consumer); +} +; +_.tryAdvance = function tryAdvance_7(consumer){ + return instanceOf(consumer, 182)?$tryAdvance_0(this, castTo(consumer, 182)):$tryAdvance_0(this, new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$DoubleArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/DoubleArraySpliterator', 693); +function $clinit_Spliterators$EmptySpliterator(){ + $clinit_Spliterators$EmptySpliterator = emptyMethod; + $clinit_Spliterators$EmptySpliterator(); + OF_INT = new Spliterators$EmptySpliterator$OfInt; +} + +defineClass(1968, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_43(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.characteristics_0 = function characteristics_6(){ + return 16448; +} +; +_.estimateSize_0 = function estimateSize_5(){ + return 0; +} +; +var OF_INT; +var Ljava_util_Spliterators$EmptySpliterator_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator', 1968); +function $forEachRemaining_3(consumer){ + checkCriticalNotNull(consumer); +} + +function $tryAdvance_1(consumer){ + return checkCriticalNotNull(consumer) , false; +} + +function Spliterators$EmptySpliterator$OfInt(){ +} + +defineClass(946, 1968, $intern_18, Spliterators$EmptySpliterator$OfInt); +_.forEachRemaining_0 = function forEachRemaining_44(consumer){ + $forEachRemaining_3(consumer); +} +; +_.forEachRemaining = function forEachRemaining_45(consumer){ + instanceOf(consumer, 196)?$forEachRemaining_3(castTo(consumer, 196)):$forEachRemaining_3(new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance_0 = function tryAdvance_8(consumer){ + return $tryAdvance_1(consumer); +} +; +_.tryAdvance = function tryAdvance_9(consumer){ + return instanceOf(consumer, 196)?$tryAdvance_1(castTo(consumer, 196)):$tryAdvance_1(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$EmptySpliterator$OfInt_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator/OfInt', 946); +function $addElement(this$static, o){ + $add_3(this$static.arrayList, o); +} + +function $elementAt(this$static, index_0){ + return checkArrayElementIndex(index_0, this$static.arrayList.array.length) , $get_11(this$static.arrayList, index_0); +} + +function $setElementAt(this$static, o, index_0){ + checkArrayElementIndex(index_0, this$static.arrayList.array.length); + $set_1(this$static.arrayList, index_0, o); +} + +function Vector(){ + this.arrayList = new ArrayList; +} + +function checkArrayElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new ArrayIndexOutOfBoundsException); + } +} + +defineClass(580, 52, $intern_84, Vector); +_.add_3 = function add_38(index_0, o){ + checkArrayElementIndex(index_0, this.arrayList.array.length + 1); + $add_2(this.arrayList, index_0, o); +} +; +_.add_2 = function add_39(o){ + return $add_3(this.arrayList, o); +} +; +_.addAll_0 = function addAll_19(index_0, c){ + checkArrayElementIndex(index_0, this.arrayList.array.length + 1); + return $addAll_1(this.arrayList, index_0, c); +} +; +_.addAll = function addAll_20(c){ + return $addAll_2(this.arrayList, c); +} +; +_.clear_0 = function clear_47(){ + this.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_46(elem){ + return $indexOf_3(this.arrayList, elem, 0) != -1; +} +; +_.containsAll = function containsAll_9(c){ + return $containsAll(this.arrayList, c); +} +; +_.forEach_0 = function forEach_23(consumer){ + $forEach_1(this.arrayList, consumer); +} +; +_.get_0 = function get_43(index_0){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $get_11(this.arrayList, index_0); +} +; +_.indexOf_0 = function indexOf_6(elem){ + return $indexOf_3(this.arrayList, elem, 0); +} +; +_.isEmpty = function isEmpty_24(){ + return this.arrayList.array.length == 0; +} +; +_.iterator_0 = function iterator_64(){ + return new ArrayList$1(this.arrayList); +} +; +_.remove_2 = function remove_86(index_0){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $remove_11(this.arrayList, index_0); +} +; +_.removeRange = function removeRange_2(fromIndex, endIndex){ + $removeRange(this.arrayList, fromIndex, endIndex); +} +; +_.set_2 = function set_19(index_0, elem){ + return checkArrayElementIndex(index_0, this.arrayList.array.length) , $set_1(this.arrayList, index_0, elem); +} +; +_.size_1 = function size_61(){ + return this.arrayList.array.length; +} +; +_.sort_0 = function sort_8(c){ + $sort(this.arrayList, c); +} +; +_.subList = function subList_8(fromIndex, toIndex){ + return new AbstractList$SubList(this.arrayList, fromIndex, toIndex); +} +; +_.toArray = function toArray_21(){ + return $toArray_1(this.arrayList); +} +; +_.toArray_0 = function toArray_22(a){ + return $toArray_2(this.arrayList, a); +} +; +_.toString_0 = function toString_72(){ + return $toString_2(this.arrayList); +} +; +var Ljava_util_Vector_2_classLit = createForClass('java.util', 'Vector', 580); +function $pop(this$static){ + var sz; + sz = this$static.arrayList.array.length; + if (sz > 0) { + return checkArrayElementIndex(sz - 1, this$static.arrayList.array.length) , $remove_11(this$static.arrayList, sz - 1); + } + else { + throw toJs(new EmptyStackException); + } +} + +function $push(this$static, o){ + $add_3(this$static.arrayList, o); + return o; +} + +function Stack(){ + Vector.call(this); +} + +defineClass(809, 580, $intern_84, Stack); +var Ljava_util_Stack_2_classLit = createForClass('java.util', 'Stack', 809); +function $add_9(this$static, newElement){ + !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); + $append_8(this$static.builder, newElement); + return this$static; +} + +function $merge_0(this$static, other){ + var otherLength; + if (other.builder) { + otherLength = other.builder.string.length; + !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); + $append_9(this$static.builder, other.builder, other.prefix.length, otherLength); + } + return this$static; +} + +function $toString_9(this$static){ + return !this$static.builder?this$static.emptyValue:this$static.suffix.length == 0?this$static.builder.string:this$static.builder.string + ('' + this$static.suffix); +} + +function StringJoiner(delimiter, prefix, suffix){ + this.delimiter = (checkCriticalNotNull(delimiter) , delimiter); + this.prefix = (checkCriticalNotNull(prefix) , prefix); + this.suffix = (checkCriticalNotNull(suffix) , suffix); + this.emptyValue = this.prefix + ('' + this.suffix); +} + +defineClass(206, 1, {206:1}, StringJoiner); +_.toString_0 = function toString_73(){ + return $toString_9(this); +} +; +var Ljava_util_StringJoiner_2_classLit = createForClass('java.util', 'StringJoiner', 206); +function $clear_8(this$static){ + this$static.root = null; + this$static.size_0 = 0; +} + +function $getEntry_1(this$static, key){ + var c, childNum, tree; + tree = this$static.root; + while (tree) { + c = this$static.cmp.compare_1(key, tree.key); + if (c == 0) { + return tree; + } + childNum = c < 0?0:1; + tree = tree.child[childNum]; + } + return null; +} + +function $getFirstEntry(this$static){ + var nextNode, node; + if (!this$static.root) { + return null; + } + node = this$static.root; + while (nextNode = node.child[0]) { + node = nextNode; + } + return node; +} + +function $getNodeAfter(this$static, key, inclusive){ + var c, foundNode, node; + foundNode = null; + node = this$static.root; + while (node) { + c = this$static.cmp.compare_1(key, node.key); + if (inclusive && c == 0) { + return node; + } + if (c >= 0) { + node = node.child[1]; + } + else { + foundNode = node; + node = node.child[0]; + } + } + return foundNode; +} + +function $getNodeBefore(this$static, key, inclusive){ + var c, foundNode, node; + foundNode = null; + node = this$static.root; + while (node) { + c = this$static.cmp.compare_1(key, node.key); + if (inclusive && c == 0) { + return node; + } + if (c <= 0) { + node = node.child[0]; + } + else { + foundNode = node; + node = node.child[1]; + } + } + return foundNode; +} + +function $inOrderAdd(this$static, list, type_0, current, fromKey, fromInclusive, toKey, toInclusive){ + var leftNode, rightNode; + if (!current) { + return; + } + leftNode = current.child[0]; + !!leftNode && $inOrderAdd(this$static, list, type_0, leftNode, fromKey, fromInclusive, toKey, toInclusive); + $inRange(this$static, type_0, current.key, fromKey, fromInclusive, toKey, toInclusive) && list.add_2(current); + rightNode = current.child[1]; + !!rightNode && $inOrderAdd(this$static, list, type_0, rightNode, fromKey, fromInclusive, toKey, toInclusive); +} + +function $inRange(this$static, type_0, key, fromKey, fromInclusive, toKey, toInclusive){ + var compare, compare0; + if (type_0.fromKeyValid() && (compare0 = this$static.cmp.compare_1(key, fromKey) , compare0 < 0 || !fromInclusive && compare0 == 0)) { + return false; + } + if (type_0.toKeyValid() && (compare = this$static.cmp.compare_1(key, toKey) , compare > 0 || !toInclusive && compare == 0)) { + return false; + } + return true; +} + +function $insert_1(this$static, tree, newNode, state){ + var c, childNum; + if (!tree) { + return newNode; + } + else { + c = this$static.cmp.compare_1(newNode.key, tree.key); + if (c == 0) { + state.value_0 = $setValue_0(tree, newNode.value_0); + state.found = true; + return tree; + } + childNum = c < 0?0:1; + tree.child[childNum] = $insert_1(this$static, tree.child[childNum], newNode, state); + if ($isRed(tree.child[childNum])) { + if ($isRed(tree.child[1 - childNum])) { + tree.isRed = true; + tree.child[0].isRed = false; + tree.child[1].isRed = false; + } + else { + $isRed(tree.child[childNum].child[childNum])?(tree = $rotateSingle(tree, 1 - childNum)):$isRed(tree.child[childNum].child[1 - childNum]) && (tree = $rotateDouble(tree, 1 - childNum)); + } + } + } + return tree; +} + +function $isRed(node){ + return !!node && node.isRed; +} + +function $put_12(this$static, key, value_0){ + var node, state; + node = new TreeMap$Node(key, value_0); + state = new TreeMap$State; + this$static.root = $insert_1(this$static, this$static.root, node, state); + state.found || ++this$static.size_0; + this$static.root.isRed = false; + return state.value_0; +} + +function $remove_26(this$static, k){ + var key, state; + key = k; + state = new TreeMap$State; + $removeWithState(this$static, key, state); + return state.value_0; +} + +function $removeEntry(this$static, entry){ + var state; + state = new TreeMap$State; + state.matchValue = true; + state.value_0 = entry.getValue(); + return $removeWithState(this$static, entry.getKey(), state); +} + +function $removeWithState(this$static, key, state){ + var c, dir_0, dir2, found, grandparent, head, last, newNode, node, parent_0, sibling; + if (!this$static.root) { + return false; + } + found = null; + parent_0 = null; + head = new TreeMap$Node(null, null); + dir_0 = 1; + head.child[1] = this$static.root; + node = head; + while (node.child[dir_0]) { + last = dir_0; + grandparent = parent_0; + parent_0 = node; + node = node.child[dir_0]; + c = this$static.cmp.compare_1(key, node.key); + dir_0 = c < 0?0:1; + c == 0 && (!state.matchValue || equals_57(node.value_0, state.value_0)) && (found = node); + if (!(!!node && node.isRed) && !$isRed(node.child[dir_0])) { + if ($isRed(node.child[1 - dir_0])) { + parent_0 = parent_0.child[last] = $rotateSingle(node, dir_0); + } + else if (!$isRed(node.child[1 - dir_0])) { + sibling = parent_0.child[1 - last]; + if (sibling) { + if (!$isRed(sibling.child[1 - last]) && !$isRed(sibling.child[last])) { + parent_0.isRed = false; + sibling.isRed = true; + node.isRed = true; + } + else { + dir2 = grandparent.child[1] == parent_0?1:0; + $isRed(sibling.child[last])?(grandparent.child[dir2] = $rotateDouble(parent_0, last)):$isRed(sibling.child[1 - last]) && (grandparent.child[dir2] = $rotateSingle(parent_0, last)); + node.isRed = grandparent.child[dir2].isRed = true; + grandparent.child[dir2].child[0].isRed = false; + grandparent.child[dir2].child[1].isRed = false; + } + } + } + } + } + if (found) { + state.found = true; + state.value_0 = found.value_0; + if (node != found) { + newNode = new TreeMap$Node(node.key, node.value_0); + $replaceNode(this$static, head, found, newNode); + parent_0 == found && (parent_0 = newNode); + } + parent_0.child[parent_0.child[1] == node?1:0] = node.child[!node.child[0]?1:0]; + --this$static.size_0; + } + this$static.root = head.child[1]; + !!this$static.root && (this$static.root.isRed = false); + return state.found; +} + +function $replaceNode(this$static, head, node, newNode){ + var direction, parent_0; + parent_0 = head; + direction = parent_0.key == null || this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; + while (parent_0.child[direction] != node) { + parent_0 = parent_0.child[direction]; + direction = this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; + } + parent_0.child[direction] = newNode; + newNode.isRed = node.isRed; + newNode.child[0] = node.child[0]; + newNode.child[1] = node.child[1]; + node.child[0] = null; + node.child[1] = null; +} + +function $rotateDouble(tree, rotateDirection){ + var otherChildDir; + otherChildDir = 1 - rotateDirection; + tree.child[otherChildDir] = $rotateSingle(tree.child[otherChildDir], otherChildDir); + return $rotateSingle(tree, rotateDirection); +} + +function $rotateSingle(tree, rotateDirection){ + var otherChildDir, save; + otherChildDir = 1 - rotateDirection; + save = tree.child[otherChildDir]; + tree.child[otherChildDir] = save.child[rotateDirection]; + save.child[rotateDirection] = tree; + tree.isRed = true; + save.isRed = false; + return save; +} + +function TreeMap(){ + TreeMap_0.call(this, null); +} + +function TreeMap_0(c){ + this.root = null; + this.cmp = ($clinit_Comparators() , !c?INTERNAL_NATURAL_ORDER:c); +} + +defineClass(544, 1992, {3:1, 83:1, 171:1, 161:1}, TreeMap, TreeMap_0); +_.clear_0 = function clear_48(){ + $clear_8(this); +} +; +_.entrySet_0 = function entrySet_8(){ + return new TreeMap$EntrySet(this); +} +; +_.put = function put_9(key, value_0){ + return $put_12(this, key, value_0); +} +; +_.remove_0 = function remove_87(k){ + return $remove_26(this, k); +} +; +_.size_1 = function size_62(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_TreeMap_2_classLit = createForClass('java.util', 'TreeMap', 544); +function $next_11(this$static){ + return this$static.last = castTo($next_5(this$static.iter), 42); +} + +function $remove_27(this$static){ + $remove_8(this$static.iter); + $removeEntry(this$static.this$01, this$static.last); + this$static.last = null; +} + +function TreeMap$EntryIterator(this$0){ + TreeMap$EntryIterator_0.call(this, this$0, ($clinit_TreeMap$SubMapType() , All)); +} + +function TreeMap$EntryIterator_0(this$0, type_0){ + var list; + this.this$01 = this$0; + list = new ArrayList; + $inOrderAdd(this$0, list, type_0, this$0.root, null, false, null, false); + this.iter = new AbstractList$ListIteratorImpl(list, 0); +} + +defineClass(390, 1, $intern_6, TreeMap$EntryIterator); +_.forEachRemaining = function forEachRemaining_46(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_36(){ + return $next_11(this); +} +; +_.hasNext_0 = function hasNext_35(){ + return $hasNext_2(this.iter); +} +; +_.remove = function remove_88(){ + $remove_27(this); +} +; +var Ljava_util_TreeMap$EntryIterator_2_classLit = createForClass('java.util', 'TreeMap/EntryIterator', 390); +function TreeMap$EntrySet(this$0){ + this.this$01 = this$0; + AbstractNavigableMap$EntrySet.call(this, this$0); +} + +defineClass(435, 739, $intern_10, TreeMap$EntrySet); +_.clear_0 = function clear_49(){ + $clear_8(this.this$01); +} +; +var Ljava_util_TreeMap$EntrySet_2_classLit = createForClass('java.util', 'TreeMap/EntrySet', 435); +function TreeMap$Node(key, value_0){ + AbstractMap$SimpleEntry.call(this, key, value_0); + this.child = initUnidimensionalArray(Ljava_util_TreeMap$Node_2_classLit, $intern_27, 436, 2, 0, 1); + this.isRed = true; +} + +defineClass(436, 383, {484:1, 383:1, 42:1, 436:1}, TreeMap$Node); +_.isRed = false; +var Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util', 'TreeMap/Node', 436); +function TreeMap$State(){ +} + +defineClass(621, 1, {}, TreeMap$State); +_.toString_0 = function toString_74(){ + return 'State: mv=' + this.matchValue + ' value=' + this.value_0 + ' done=' + this.done_0 + ' found=' + this.found; +} +; +_.done_0 = false; +_.found = false; +_.matchValue = false; +var Ljava_util_TreeMap$State_2_classLit = createForClass('java.util', 'TreeMap/State', 621); +function $clinit_TreeMap$SubMapType(){ + $clinit_TreeMap$SubMapType = emptyMethod; + All = new TreeMap$SubMapType('All', 0); + Head = new TreeMap$SubMapType$1; + Range_1 = new TreeMap$SubMapType$2; + Tail = new TreeMap$SubMapType$3; +} + +function TreeMap$SubMapType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_12(name_0){ + $clinit_TreeMap$SubMapType(); + return valueOf(($clinit_TreeMap$SubMapType$Map() , $MAP_0), name_0); +} + +function values_18(){ + $clinit_TreeMap$SubMapType(); + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]); +} + +defineClass(297, 22, $intern_85, TreeMap$SubMapType); +_.fromKeyValid = function fromKeyValid(){ + return false; +} +; +_.toKeyValid = function toKeyValid(){ + return false; +} +; +var All, Head, Range_1, Tail; +var Ljava_util_TreeMap$SubMapType_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType', 297, Ljava_lang_Enum_2_classLit, values_18, valueOf_12); +function TreeMap$SubMapType$1(){ + TreeMap$SubMapType.call(this, 'Head', 1); +} + +defineClass(1112, 297, $intern_85, TreeMap$SubMapType$1); +_.toKeyValid = function toKeyValid_0(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$1_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/1', 1112, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$2(){ + TreeMap$SubMapType.call(this, 'Range', 2); +} + +defineClass(1113, 297, $intern_85, TreeMap$SubMapType$2); +_.fromKeyValid = function fromKeyValid_0(){ + return true; +} +; +_.toKeyValid = function toKeyValid_1(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$2_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/2', 1113, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$3(){ + TreeMap$SubMapType.call(this, 'Tail', 3); +} + +defineClass(1114, 297, $intern_85, TreeMap$SubMapType$3); +_.fromKeyValid = function fromKeyValid_1(){ + return true; +} +; +var Ljava_util_TreeMap$SubMapType$3_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/3', 1114, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function $clinit_TreeMap$SubMapType$Map(){ + $clinit_TreeMap$SubMapType$Map = emptyMethod; + $MAP_0 = createValueOfMap(($clinit_TreeMap$SubMapType() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]))); +} + +var $MAP_0; +function $add_10(this$static, o){ + return $put_12(this$static.map_0, o, ($clinit_Boolean() , FALSE_0)) == null; +} + +function $ceiling(this$static, e){ + return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, true)); +} + +function $floor(this$static, e){ + return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, true)); +} + +function $higher(this$static, e){ + return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, false)); +} + +function $lower(this$static, e){ + return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, false)); +} + +function $remove_28(this$static, o){ + return $remove_26(this$static.map_0, o) != null; +} + +function TreeSet(){ + this.map_0 = new TreeMap; +} + +function TreeSet_0(c){ + this.map_0 = new TreeMap_0(c); +} + +defineClass(208, $intern_9, {3:1, 20:1, 28:1, 14:1, 271:1, 21:1, 84:1, 208:1}, TreeSet, TreeSet_0); +_.spliterator_0 = function spliterator_34(){ + return new SortedSet$1(this); +} +; +_.add_2 = function add_40(o){ + return $add_10(this, o); +} +; +_.clear_0 = function clear_50(){ + $clear_8(this.map_0); +} +; +_.contains = function contains_47(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_65(){ + var entryIterator; + return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_89(o){ + return $remove_28(this, o); +} +; +_.size_1 = function size_63(){ + return this.map_0.size_0; +} +; +var Ljava_util_TreeSet_2_classLit = createForClass('java.util', 'TreeSet', 208); +function lambda$0_2(comparator_0, t_1, u_2){ + return comparator_0.compare_1(t_1, u_2) <= 0?u_2:t_1; +} + +function lambda$1_3(comparator_0, t_1, u_2){ + return comparator_0.compare_1(t_1, u_2) <= 0?t_1:u_2; +} + +function BinaryOperator$lambda$0$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(966, 1, {}, BinaryOperator$lambda$0$Type); +_.apply_3 = function apply_21(arg0, arg1){ + return lambda$0_2(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$0$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$0$Type', 966); +function BinaryOperator$lambda$1$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(967, 1, {}, BinaryOperator$lambda$1$Type); +_.apply_3 = function apply_22(arg0, arg1){ + return lambda$1_3(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$1$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$1$Type', 967); +function Function$lambda$0$Type(){ +} + +defineClass(846, 1, {}, Function$lambda$0$Type); +_.apply_0 = function apply_23(t){ + return t; +} +; +var Ljava_util_function_Function$lambda$0$Type_2_classLit = createForClass('java.util.function', 'Function/lambda$0$Type', 846); +function Predicate$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(431, 1, $intern_39, Predicate$lambda$2$Type); +_.test_0 = function test_4(t){ + return !this.$$outer_0.test_0(t); +} +; +var Ljava_util_function_Predicate$lambda$2$Type_2_classLit = createForClass('java.util.function', 'Predicate/lambda$2$Type', 431); +defineClass(572, 1, {572:1}); +var Ljava_util_logging_Handler_2_classLit = createForClass('java.util.logging', 'Handler', 572); +function $clinit_Level(){ + $clinit_Level = emptyMethod; + INFO = new Level$LevelInfo; +} + +defineClass(2007, 1, $intern_1); +_.getName = function getName_0(){ + return 'DUMMY'; +} +; +_.toString_0 = function toString_75(){ + return this.getName(); +} +; +var INFO; +var Ljava_util_logging_Level_2_classLit = createForClass('java.util.logging', 'Level', 2007); +function Level$LevelInfo(){ +} + +defineClass(1621, 2007, $intern_1, Level$LevelInfo); +_.getName = function getName_1(){ + return 'INFO'; +} +; +var Ljava_util_logging_Level$LevelInfo_2_classLit = createForClass('java.util.logging', 'Level/LevelInfo', 1621); +function $addLoggerImpl(this$static, logger){ + (($clinit_Logger() , LOGGING_OFF)?null:logger.name_0).length == 0 && $addHandler(logger, new SimpleConsoleLogHandler); + $putStringValue(this$static.loggerMap, LOGGING_OFF?null:logger.name_0, logger); +} + +function $ensureLogger(this$static, name_0){ + var logger, newLogger, name_1, parentName; + logger = castTo($getStringValue(this$static.loggerMap, name_0), 512); + if (!logger) { + newLogger = new Logger(name_0); + name_1 = ($clinit_Logger() , LOGGING_OFF)?null:newLogger.name_0; + parentName = $substring_1(name_1, 0, $wnd.Math.max(0, $lastIndexOf(name_1, fromCodePoint(46)))); + $setParent(newLogger, $ensureLogger(this$static, parentName)); + (LOGGING_OFF?null:newLogger.name_0).length == 0 && $addHandler(newLogger, new SimpleConsoleLogHandler); + $putStringValue(this$static.loggerMap, LOGGING_OFF?null:newLogger.name_0, newLogger); + return newLogger; + } + return logger; +} + +function LogManager(){ + this.loggerMap = new HashMap; +} + +function getLogManager(){ + var rootLogger; + if (!singleton) { + singleton = new LogManager; + rootLogger = new Logger(''); + $setLevel(rootLogger, ($clinit_Level() , INFO)); + $addLoggerImpl(singleton, rootLogger); + } + return singleton; +} + +defineClass(1640, 1, {}, LogManager); +var singleton; +var Ljava_util_logging_LogManager_2_classLit = createForClass('java.util.logging', 'LogManager', 1640); +function LogRecord(msg){ + this.msg = msg; + $clinit_System(); + fromDouble_0(Date.now()); +} + +defineClass(1780, 1, $intern_1, LogRecord); +_.thrown = null; +var Ljava_util_logging_LogRecord_2_classLit = createForClass('java.util.logging', 'LogRecord', 1780); +function $clinit_Logger(){ + $clinit_Logger = emptyMethod; + LOGGING_OFF = true; + ALL_ENABLED = false; + INFO_ENABLED = false; + WARNING_ENABLED = false; + SEVERE_ENABLED = false; +} + +function $actuallyLog(this$static, record){ + var handler$array, handler$array0, handler$index, handler$index0, handler$max, handler$max0, logger; + for (handler$array0 = $getHandlers(this$static) , handler$index0 = 0 , handler$max0 = handler$array0.length; handler$index0 < handler$max0; ++handler$index0) { + $publish(record); + } + logger = !LOGGING_OFF && this$static.useParentHandlers?LOGGING_OFF?null:this$static.parent_0:null; + while (logger) { + for (handler$array = $getHandlers(logger) , handler$index = 0 , handler$max = handler$array.length; handler$index < handler$max; ++handler$index) { + $publish(record); + } + logger = !LOGGING_OFF && logger.useParentHandlers?LOGGING_OFF?null:logger.parent_0:null; + } +} + +function $addHandler(this$static, handler){ + if (LOGGING_OFF) { + return; + } + $add_3(this$static.handlers, handler); +} + +function $getEffectiveLevel(this$static){ + var effectiveLevel, logger; + if (this$static.level) { + return this$static.level; + } + logger = LOGGING_OFF?null:this$static.parent_0; + while (logger) { + effectiveLevel = LOGGING_OFF?null:logger.level; + if (effectiveLevel) { + return effectiveLevel; + } + logger = LOGGING_OFF?null:logger.parent_0; + } + return $clinit_Level() , INFO; +} + +function $getHandlers(this$static){ + if (LOGGING_OFF) { + return initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, 0, 0, 1); + } + return castTo($toArray_2(this$static.handlers, initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, this$static.handlers.array.length, 0, 1)), 842); +} + +function $log(this$static, msg, thrown){ + var record; + (ALL_ENABLED?($getEffectiveLevel(this$static) , true):INFO_ENABLED?($clinit_Level() , true):WARNING_ENABLED?($clinit_Level() , true):SEVERE_ENABLED && ($clinit_Level() , false)) && (record = new LogRecord(msg) , record.thrown = thrown , $actuallyLog(this$static, record) , undefined); +} + +function $setLevel(this$static, newLevel){ + if (LOGGING_OFF) { + return; + } + this$static.level = newLevel; +} + +function $setParent(this$static, newParent){ + if (LOGGING_OFF) { + return; + } + !!newParent && (this$static.parent_0 = newParent); +} + +function Logger(name_0){ + $clinit_Logger(); + if (LOGGING_OFF) { + return; + } + this.name_0 = name_0; + this.useParentHandlers = true; + this.handlers = new ArrayList; +} + +function getLogger(){ + $clinit_Logger(); + if (LOGGING_OFF) { + return new Logger(null); + } + return $ensureLogger(getLogManager(), 'com.google.common.base.Strings'); +} + +defineClass(512, 1, {512:1}, Logger); +_.useParentHandlers = false; +var ALL_ENABLED = false, INFO_ENABLED = false, LOGGING_OFF = false, SEVERE_ENABLED = false, WARNING_ENABLED = false; +var Ljava_util_logging_Logger_2_classLit = createForClass('java.util.logging', 'Logger', 512); +function $publish(record){ + var console_0, level, val; + console_0 = $equals_5(typeof(console_0), 'undefined')?null:new ConsoleLogger; + if (!console_0) { + return; + } + $clinit_Level(); + level = (val = 900 , val >= $intern_45?'error':val >= 900?'warn':val >= 800?'info':'log'); + $log_0(level, record.msg); + !!record.thrown && $log_1(console_0, level, record.thrown, 'Exception: ', true); +} + +function SimpleConsoleLogHandler(){ +} + +defineClass(819, 572, {572:1}, SimpleConsoleLogHandler); +var Ljava_util_logging_SimpleConsoleLogHandler_2_classLit = createForClass('java.util.logging', 'SimpleConsoleLogHandler', 819); +function of_3(supplier, accumulator, combiner, finisher, characteristics){ + checkCriticalNotNull(supplier); + checkCriticalNotNull(accumulator); + checkCriticalNotNull(combiner); + checkCriticalNotNull(finisher); + checkCriticalNotNull(characteristics); + return new CollectorImpl(supplier, accumulator, finisher); +} + +function of_4(supplier, accumulator, combiner, characteristics){ + checkCriticalNotNull(supplier); + checkCriticalNotNull(accumulator); + checkCriticalNotNull(combiner); + checkCriticalNotNull(characteristics); + return new CollectorImpl(supplier, accumulator, new Function$lambda$0$Type); +} + +function $clinit_Collector$Characteristics(){ + $clinit_Collector$Characteristics = emptyMethod; + CONCURRENT = new Collector$Characteristics('CONCURRENT', 0); + IDENTITY_FINISH = new Collector$Characteristics('IDENTITY_FINISH', 1); + UNORDERED = new Collector$Characteristics('UNORDERED', 2); +} + +function Collector$Characteristics(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_13(name_0){ + $clinit_Collector$Characteristics(); + return valueOf(($clinit_Collector$Characteristics$Map() , $MAP_1), name_0); +} + +function values_19(){ + $clinit_Collector$Characteristics(); + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]); +} + +defineClass(132, 22, {3:1, 35:1, 22:1, 132:1}, Collector$Characteristics); +var CONCURRENT, IDENTITY_FINISH, UNORDERED; +var Ljava_util_stream_Collector$Characteristics_2_classLit = createForEnum('java.util.stream', 'Collector/Characteristics', 132, Ljava_lang_Enum_2_classLit, values_19, valueOf_13); +function $clinit_Collector$Characteristics$Map(){ + $clinit_Collector$Characteristics$Map = emptyMethod; + $MAP_1 = createValueOfMap(($clinit_Collector$Characteristics() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]))); +} + +var $MAP_1; +function CollectorImpl(supplier, accumulator, finisher){ + this.supplier = supplier; + this.accumulator = accumulator; + $clinit_Collections(); + this.finisher = finisher; +} + +defineClass(744, 1, {}, CollectorImpl); +var Ljava_util_stream_CollectorImpl_2_classLit = createForClass('java.util.stream', 'CollectorImpl', 744); +function addAll_21(collection, items){ + collection.addAll(items); + return collection; +} + +function groupingBy0(supplier, classifier, downstream){ + return of_3(supplier, new Collectors$lambda$7$Type(classifier), new Collectors$lambda$8$Type, new Collectors$lambda$9$Type(downstream), stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); +} + +function lambda$26(op_0, u_2){ + return setCheck(u_2, 0, $apply_2(u_2[0], valueOf_5(1))); +} + +function lambda$27(op_0, u1_1, u2_2){ + setCheck(u1_1, 0, $apply_2(u1_1[0], u2_2[0])); + return u1_1; +} + +function lambda$4(a_0, b_1){ + return valueOf_5(add_20(valueOf_5(a_0.value_0).value_0, b_1.value_0)); +} + +function lambda$42(c1_0, c2_1){ + return c1_0.addAll(c2_1) , c1_0; +} + +function lambda$50(c1_0, c2_1){ + return $addAll(c1_0, c2_1) , c1_0; +} + +function lambda$7(classifier_0, m_1, o_2){ + var k, l; + k = ($clinit_Boolean() , $test(o_2)?true:false); + l = castTo(m_1.get_3(k), 15); + if (!l) { + l = new ArrayList; + m_1.put(k, l); + } + l.add_2(o_2); +} + +function lambda$9(downstream_1, m_2){ + var entry, entry$iterator, result; + result = new HashMap; + for (entry$iterator = m_2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + $put_6(result, entry.getKey(), streamAndCollect(downstream_1, castTo(entry.getValue(), 15))); + } + return result; +} + +function mergeAll(m1, m2, mergeFunction){ + var entry, entry$iterator; + for (entry$iterator = m2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + m1.merge(entry.getKey(), entry.getValue(), mergeFunction); + } + return m1; +} + +function partitioningBy(predicate, downstream){ + return groupingBy0(new Collectors$lambda$22$Type, new Collectors$12methodref$test$Type(predicate), downstream); +} + +function reducing(identity, op){ + return of_3(new Collectors$lambda$25$Type(identity), new Collectors$lambda$26$Type(op), new Collectors$lambda$27$Type(op), new Collectors$lambda$28$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); +} + +function streamAndCollect(downstream, list){ + var a, t, t$iterator; + a = downstream.supplier.get_5(); + for (t$iterator = list.iterator_0(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + downstream.accumulator.accept_1(a, t); + } + return downstream.finisher.apply_0(a); +} + +function Collectors$10methodref$merge$Type(){ +} + +defineClass(1060, 1, {}, Collectors$10methodref$merge$Type); +_.apply_3 = function apply_24(arg0, arg1){ + return $merge_0(castTo(arg0, 206), castTo(arg1, 206)); +} +; +var Ljava_util_stream_Collectors$10methodref$merge$Type_2_classLit = createForClass('java.util.stream', 'Collectors/10methodref$merge$Type', 1060); +function Collectors$11methodref$toString$Type(){ +} + +defineClass(1061, 1, {}, Collectors$11methodref$toString$Type); +_.apply_0 = function apply_25(arg0){ + return $toString_9(castTo(arg0, 206)); +} +; +var Ljava_util_stream_Collectors$11methodref$toString$Type_2_classLit = createForClass('java.util.stream', 'Collectors/11methodref$toString$Type', 1061); +function Collectors$12methodref$test$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1062, 1, {}, Collectors$12methodref$test$Type); +_.apply_0 = function apply_26(arg0){ + return $clinit_Boolean() , $test(arg0)?true:false; +} +; +var Ljava_util_stream_Collectors$12methodref$test$Type_2_classLit = createForClass('java.util.stream', 'Collectors/12methodref$test$Type', 1062); +function Collectors$20methodref$add$Type(){ +} + +defineClass(251, 1, {}, Collectors$20methodref$add$Type); +_.accept_1 = function accept_21(arg0, arg1){ + castTo(arg0, 14).add_2(arg1); +} +; +var Ljava_util_stream_Collectors$20methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/20methodref$add$Type', 251); +function Collectors$21methodref$ctor$Type(){ +} + +defineClass(253, 1, {}, Collectors$21methodref$ctor$Type); +_.get_5 = function get_44(){ + return new ArrayList; +} +; +var Ljava_util_stream_Collectors$21methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/21methodref$ctor$Type', 253); +function Collectors$23methodref$ctor$Type(){ +} + +defineClass(346, 1, {}, Collectors$23methodref$ctor$Type); +_.get_5 = function get_45(){ + return new HashSet; +} +; +var Ljava_util_stream_Collectors$23methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/23methodref$ctor$Type', 346); +function Collectors$24methodref$add$Type(){ +} + +defineClass(347, 1, {}, Collectors$24methodref$add$Type); +_.accept_1 = function accept_22(arg0, arg1){ + $add_6(castTo(arg0, 53), arg1); +} +; +var Ljava_util_stream_Collectors$24methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/24methodref$add$Type', 347); +function Collectors$4methodref$addAll$Type(){ +} + +defineClass(1055, 1, {}, Collectors$4methodref$addAll$Type); +_.apply_3 = function apply_27(arg0, arg1){ + return addAll_21(castTo(arg0, 15), castTo(arg1, 14)); +} +; +var Ljava_util_stream_Collectors$4methodref$addAll$Type_2_classLit = createForClass('java.util.stream', 'Collectors/4methodref$addAll$Type', 1055); +function Collectors$9methodref$add$Type(){ +} + +defineClass(1059, 1, {}, Collectors$9methodref$add$Type); +_.accept_1 = function accept_23(arg0, arg1){ + $add_9(castTo(arg0, 206), castTo(arg1, 475)); +} +; +var Ljava_util_stream_Collectors$9methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/9methodref$add$Type', 1059); +function Collectors$lambda$15$Type(){ + this.delimiter_0 = ';,;'; + this.prefix_1 = ''; + this.suffix_2 = ''; +} + +defineClass(1058, 1, {}, Collectors$lambda$15$Type); +_.get_5 = function get_46(){ + return new StringJoiner(this.delimiter_0, this.prefix_1, this.suffix_2); +} +; +var Ljava_util_stream_Collectors$lambda$15$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$15$Type', 1058); +function Collectors$lambda$22$Type(){ +} + +defineClass(1063, 1, {}, Collectors$lambda$22$Type); +_.get_5 = function get_47(){ + var partition; + return partition = new LinkedHashMap , $put_11(partition, ($clinit_Boolean() , false), new ArrayList) , $put_11(partition, true, new ArrayList) , partition; +} +; +var Ljava_util_stream_Collectors$lambda$22$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$22$Type', 1063); +function Collectors$lambda$25$Type(identity_0){ + this.identity_0 = identity_0; +} + +defineClass(1064, 1, {}, Collectors$lambda$25$Type); +_.get_5 = function get_48(){ + return stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.identity_0]); +} +; +var Ljava_util_stream_Collectors$lambda$25$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$25$Type', 1064); +function Collectors$lambda$26$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1065, 1, {}, Collectors$lambda$26$Type); +_.accept_1 = function accept_24(arg0, arg1){ + lambda$26(this.op_0, castToArray(arg0)); +} +; +var Ljava_util_stream_Collectors$lambda$26$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$26$Type', 1065); +function Collectors$lambda$27$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1066, 1, {}, Collectors$lambda$27$Type); +_.apply_3 = function apply_28(arg0, arg1){ + return lambda$27(this.op_0, castToArray(arg0), castToArray(arg1)); +} +; +var Ljava_util_stream_Collectors$lambda$27$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$27$Type', 1066); +function Collectors$lambda$28$Type(){ +} + +defineClass(1067, 1, {}, Collectors$lambda$28$Type); +_.apply_0 = function apply_29(arg0){ + return castToArray(arg0)[0]; +} +; +var Ljava_util_stream_Collectors$lambda$28$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$28$Type', 1067); +function $apply_2(arg0, arg1){ + return lambda$4(castTo(arg0, 162), castTo(arg1, 162)); +} + +function Collectors$lambda$4$Type(){ +} + +defineClass(713, 1, {}, Collectors$lambda$4$Type); +_.apply_3 = function apply_30(arg0, arg1){ + return $apply_2(arg0, arg1); +} +; +var Ljava_util_stream_Collectors$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$4$Type', 713); +function Collectors$lambda$42$Type(){ +} + +defineClass(252, 1, {}, Collectors$lambda$42$Type); +_.apply_3 = function apply_31(arg0, arg1){ + return lambda$42(castTo(arg0, 14), castTo(arg1, 14)); +} +; +var Ljava_util_stream_Collectors$lambda$42$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$42$Type', 252); +function Collectors$lambda$50$Type(){ +} + +defineClass(348, 1, {}, Collectors$lambda$50$Type); +_.apply_3 = function apply_32(arg0, arg1){ + return lambda$50(castTo(arg0, 53), castTo(arg1, 53)); +} +; +var Ljava_util_stream_Collectors$lambda$50$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$50$Type', 348); +function Collectors$lambda$51$Type(){ +} + +defineClass(349, 1, {}, Collectors$lambda$51$Type); +_.apply_0 = function apply_33(arg0){ + return castTo(arg0, 53); +} +; +var Ljava_util_stream_Collectors$lambda$51$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$51$Type', 349); +function Collectors$lambda$7$Type(classifier_0){ + this.classifier_0 = classifier_0; +} + +defineClass(1054, 1, {}, Collectors$lambda$7$Type); +_.accept_1 = function accept_25(arg0, arg1){ + lambda$7(this.classifier_0, castTo(arg0, 83), arg1); +} +; +var Ljava_util_stream_Collectors$lambda$7$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$7$Type', 1054); +function Collectors$lambda$8$Type(){ +} + +defineClass(1056, 1, {}, Collectors$lambda$8$Type); +_.apply_3 = function apply_34(arg0, arg1){ + return mergeAll(castTo(arg0, 83), castTo(arg1, 83), new Collectors$4methodref$addAll$Type); +} +; +var Ljava_util_stream_Collectors$lambda$8$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$8$Type', 1056); +function Collectors$lambda$9$Type(downstream_1){ + this.downstream_1 = downstream_1; +} + +defineClass(1057, 1, {}, Collectors$lambda$9$Type); +_.apply_0 = function apply_35(arg0){ + return lambda$9(this.downstream_1, castTo(arg0, 83)); +} +; +var Ljava_util_stream_Collectors$lambda$9$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$9$Type', 1057); +function $close(this$static){ + if (!this$static.root) { + this$static.terminated = true; + $runClosers(this$static); + } + else { + this$static.root.close_0(); + } +} + +function $onClose(this$static, closeHandler){ + !this$static.root?$add_3(this$static.onClose, closeHandler):$onClose(this$static.root, closeHandler); + return this$static; +} + +function $runClosers(this$static){ + var e, i, size_0, suppressed, throwables; + throwables = new ArrayList; + $forEach_1(this$static.onClose, new TerminatableStream$lambda$0$Type(throwables)); + this$static.onClose.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (throwables.array.length != 0) { + e = (checkCriticalElementIndex(0, throwables.array.length) , castTo(throwables.array[0], 78)); + for (i = 1 , size_0 = throwables.array.length; i < size_0; ++i) { + suppressed = (checkCriticalElementIndex(i, throwables.array.length) , castTo(throwables.array[i], 78)); + suppressed != e && $addSuppressed(e, suppressed); + } + if (instanceOf(e, 60)) { + throw toJs(castTo(e, 60)); + } + if (instanceOf(e, 289)) { + throw toJs(castTo(e, 289)); + } + } +} + +function $terminate(this$static){ + if (!this$static.root) { + $throwIfTerminated(this$static); + this$static.terminated = true; + } + else { + $terminate(this$static.root); + } +} + +function $throwIfTerminated(this$static){ + if (this$static.root) { + $throwIfTerminated(this$static.root); + } + else if (this$static.terminated) { + throw toJs(new IllegalStateException_0("Stream already terminated, can't be modified or used")); + } +} + +function TerminatableStream(previous){ + if (!previous) { + this.root = null; + this.onClose = new ArrayList; + } + else { + this.root = previous; + this.onClose = null; + } +} + +function lambda$0_3(throwables_0, runnable_1){ + var e; + try { + runnable_1.run(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + e = $e0; + throwables_0.array[throwables_0.array.length] = e; + } + else + throw toJs($e0); + } +} + +defineClass(539, 1, {}); +_.close_0 = function close_0(){ + $close(this); +} +; +_.terminated = false; +var Ljava_util_stream_TerminatableStream_2_classLit = createForClass('java.util.stream', 'TerminatableStream', 539); +function $collect(this$static){ + var acc; + $terminate(this$static); + acc = new DoubleSummaryStatistics; + $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$2$Type(acc)); + return acc; +} + +function $max(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(stats.max_0); +} + +function $min(this$static){ + var stats; + stats = $collect(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; + } + return $clinit_OptionalDouble() , new OptionalDouble_0(stats.min_0); +} + +function $sorted(this$static){ + var sortingSpliterator; + $throwIfTerminated(this$static); + sortingSpliterator = new DoubleStreamImpl$2(this$static, this$static.spliterator.sizeEstimate, this$static.spliterator.characteristics | 4); + return new DoubleStreamImpl(this$static, sortingSpliterator); +} + +function $toArray_6(this$static){ + var entries; + $terminate(this$static); + entries = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); + $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$0$Type(entries)); + return entries; +} + +function DoubleStreamImpl(previous, spliterator){ + TerminatableStream.call(this, previous); + this.spliterator = spliterator; +} + +function lambda$0_4(entries_0, value_1){ + return entries_0[entries_0.length] = value_1; +} + +defineClass(812, 539, $intern_87, DoubleStreamImpl); +_.close_0 = function close_1(){ + $close(this); +} +; +var Ljava_util_stream_DoubleStreamImpl_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl', 812); +function $tryAdvance_2(this$static, action){ + var list; + if (!this$static.ordered) { + list = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); + $forEachRemaining_1(this$static.this$01.spliterator, new DoubleStreamImpl$2$lambda$0$Type(list)); + list.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); + this$static.ordered = new Spliterators$DoubleArraySpliterator(list, this$static.characteristics); + } + return $tryAdvance_0(this$static.ordered, action); +} + +function DoubleStreamImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + Spliterators$AbstractDoubleSpliterator.call(this, $anonymous0, $anonymous1); +} + +function lambda$0_5(list_0, item_1){ + return list_0[list_0.length] = item_1; +} + +defineClass(1784, 721, $intern_18, DoubleStreamImpl$2); +_.tryAdvance_0 = function tryAdvance_10(action){ + return $tryAdvance_2(this, castTo(action, 182)); +} +; +_.ordered = null; +var Ljava_util_stream_DoubleStreamImpl$2_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2', 1784); +function DoubleStreamImpl$2$lambda$0$Type(list_0){ + this.list_0 = list_0; +} + +defineClass(1785, 1, $intern_75, DoubleStreamImpl$2$lambda$0$Type); +_.accept_2 = function accept_26(arg0){ + lambda$0_5(this.list_0, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$2$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2/lambda$0$Type', 1785); +function DoubleStreamImpl$lambda$0$Type(entries_0){ + this.entries_0 = entries_0; +} + +defineClass(1782, 1, $intern_75, DoubleStreamImpl$lambda$0$Type); +_.accept_2 = function accept_27(arg0){ + lambda$0_4(this.entries_0, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$0$Type', 1782); +function DoubleStreamImpl$lambda$2$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1783, 1, $intern_75, DoubleStreamImpl$lambda$2$Type); +_.accept_2 = function accept_28(arg0){ + $accept(this.acc_1, arg0); +} +; +var Ljava_util_stream_DoubleStreamImpl$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$2$Type', 1783); +function range_0(endExclusive){ + if (0 >= endExclusive) { + return new IntStreamImpl$Empty; + } + return rangeClosed(endExclusive - 1); +} + +function rangeClosed(endInclusive){ + var count, spliterator; + if (0 > endInclusive) { + return new IntStreamImpl$Empty; + } + count = endInclusive + 1; + spliterator = new IntStream$5(count, endInclusive); + return new IntStreamImpl(null, spliterator); +} + +function $tryAdvance_3(this$static, action){ + if (this$static.next_0 <= this$static.val$endInclusive5) { + action.accept_0(this$static.next_0++); + return true; + } + return false; +} + +function IntStream$5($anonymous0, val$endInclusive){ + this.val$startInclusive4 = 0; + this.val$endInclusive5 = val$endInclusive; + Spliterators$AbstractIntSpliterator.call(this, $anonymous0, 17493); + this.next_0 = this.val$startInclusive4; +} + +defineClass(1358, 720, $intern_18, IntStream$5); +_.tryAdvance_0 = function tryAdvance_11(action){ + return $tryAdvance_3(this, castTo(action, 196)); +} +; +_.next_0 = 0; +_.val$endInclusive5 = 0; +_.val$startInclusive4 = 0; +var Ljava_util_stream_IntStream$5_2_classLit = createForClass('java.util.stream', 'IntStream/5', 1358); +function $collect_0(this$static){ + var acc; + $terminate(this$static); + acc = new IntSummaryStatistics; + $forEachRemaining_1(this$static.spliterator, new IntStreamImpl$lambda$4$Type(acc)); + return acc; +} + +function $max_0(this$static){ + var stats; + stats = $collect_0(this$static); + if (eq(stats.count, 0)) { + return $clinit_OptionalInt() , $clinit_OptionalInt() , EMPTY_5; + } + return $clinit_OptionalInt() , new OptionalInt_0(stats.max_0); +} + +function IntStreamImpl(previous, spliterator){ + TerminatableStream.call(this, previous); + this.spliterator = spliterator; +} + +defineClass(787, 539, $intern_87, IntStreamImpl); +_.close_0 = function close_2(){ + $close(this); +} +; +_.spliterator_1 = function spliterator_35(){ + return $terminate(this) , this.spliterator; +} +; +var Ljava_util_stream_IntStreamImpl_2_classLit = createForClass('java.util.stream', 'IntStreamImpl', 787); +function IntStreamImpl$Empty(){ + TerminatableStream.call(this, null); +} + +defineClass(788, 539, $intern_87, IntStreamImpl$Empty); +_.close_0 = function close_3(){ + $close(this); +} +; +_.spliterator_1 = function spliterator_36(){ + return $terminate(this) , $clinit_Spliterators$EmptySpliterator() , OF_INT; +} +; +var Ljava_util_stream_IntStreamImpl$Empty_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/Empty', 788); +function IntStreamImpl$lambda$4$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1463, 1, $intern_21, IntStreamImpl$lambda$4$Type); +_.accept_0 = function accept_29(arg0){ + $accept_0(this.acc_1, arg0); +} +; +var Ljava_util_stream_IntStreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/lambda$4$Type', 1463); +var Ljava_util_stream_Stream_2_classLit = createForInterface('java.util.stream', 'Stream'); +function $clinit_StreamImpl(){ + $clinit_StreamImpl = emptyMethod; + NULL_CONSUMER = new StreamImpl$lambda$0$Type; +} + +function $anyMatch(this$static, predicate){ + return ($throwIfTerminated(this$static) , $spliterator(new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)))).tryAdvance(NULL_CONSUMER); +} + +function $collect_1(this$static, collector){ + var lastArg; + return collector.finisher.apply_0($reduce(this$static, collector.supplier.get_5(), (lastArg = new StreamImpl$lambda$4$Type(collector) , lastArg))); +} + +function $count_0(this$static){ + var count; + $terminate(this$static); + count = 0; + while (this$static.spliterator.tryAdvance(new StreamImpl$lambda$1$Type)) { + count = add_20(count, 1); + } + return count; +} + +function $distinct(this$static){ + var seen; + $throwIfTerminated(this$static); + seen = new HashSet; + return $filter(this$static, new StreamImpl$1methodref$add$Type(seen)); +} + +function $filter(this$static, predicate){ + $throwIfTerminated(this$static); + return new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)); +} + +function $findFirst(this$static){ + var holder; + $terminate(this$static); + holder = new StreamImpl$ValueConsumer; + if (this$static.spliterator.tryAdvance(holder)) { + return $clinit_Optional() , new Optional(checkCriticalNotNull(holder.value_0)); + } + return $clinit_Optional() , $clinit_Optional() , EMPTY_3; +} + +function $flatMap(this$static, mapper){ + var flatMapSpliterator, spliteratorOfStreams; + $throwIfTerminated(this$static); + spliteratorOfStreams = new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator); + flatMapSpliterator = new StreamImpl$1(spliteratorOfStreams); + return new StreamImpl(this$static, flatMapSpliterator); +} + +function $forEach_3(this$static, action){ + $terminate(this$static); + this$static.spliterator.forEachRemaining(action); +} + +function $map_0(this$static, mapper){ + $throwIfTerminated(this$static); + return new StreamImpl(this$static, new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator)); +} + +function $mapToDouble(this$static, mapper){ + $throwIfTerminated(this$static); + return new DoubleStreamImpl(this$static, new StreamImpl$MapToDoubleSpliterator(mapper, this$static.spliterator)); +} + +function $mapToInt(this$static, mapper){ + $throwIfTerminated(this$static); + return new IntStreamImpl(this$static, new StreamImpl$MapToIntSpliterator(mapper, this$static.spliterator)); +} + +function $max_1(this$static, comparator){ + return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$0$Type(comparator))); +} + +function $min_0(this$static, comparator){ + return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$1$Type(comparator))); +} + +function $reduce(this$static, identity, accumulator){ + var consumer; + $terminate(this$static); + consumer = new StreamImpl$ValueConsumer; + consumer.value_0 = identity; + this$static.spliterator.forEachRemaining(new StreamImpl$lambda$5$Type(consumer, accumulator)); + return consumer.value_0; +} + +function $reduce_0(this$static, accumulator){ + var consumer; + consumer = new StreamImpl$ValueConsumer; + if (!this$static.spliterator.tryAdvance(consumer)) { + $terminate(this$static); + return $clinit_Optional() , $clinit_Optional() , EMPTY_3; + } + return $clinit_Optional() , new Optional(checkCriticalNotNull($reduce(this$static, consumer.value_0, accumulator))); +} + +function $sorted_0(this$static){ + var c; + $throwIfTerminated(this$static); + c = ($clinit_Comparators() , $clinit_Comparators() , NATURAL_ORDER); + return $sorted_1(this$static, c); +} + +function $sorted_1(this$static, comparator){ + var sortedSpliterator; + $throwIfTerminated(this$static); + sortedSpliterator = new StreamImpl$5(this$static, this$static.spliterator.estimateSize_0(), this$static.spliterator.characteristics_0() | 4, comparator); + return new StreamImpl(this$static, sortedSpliterator); +} + +function $spliterator(this$static){ + $terminate(this$static); + return this$static.spliterator; +} + +function $toArray_7(this$static, generator){ + var collected; + collected = castTo($collect_1(this$static, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + return collected.toArray_0($apply_3(collected.size_1())); +} + +function StreamImpl(prev, spliterator){ + $clinit_StreamImpl(); + TerminatableStream.call(this, prev); + this.spliterator = spliterator; +} + +function lambda$4_0(collector_0, a_1, t_2){ + $clinit_StreamImpl(); + collector_0.accumulator.accept_1(a_1, t_2); + return a_1; +} + +function lambda$5(consumer_0, accumulator_1, item_2){ + $clinit_StreamImpl(); + $accept_1(consumer_0, accumulator_1.apply_3(consumer_0.value_0, item_2)); +} + +defineClass(30, 539, {525:1, 670:1, 833:1}, StreamImpl); +_.close_0 = function close_4(){ + $close(this); +} +; +var NULL_CONSUMER; +var Ljava_util_stream_StreamImpl_2_classLit = createForClass('java.util.stream', 'StreamImpl', 30); +function $apply_3(arg0){ + return $clinit_StreamImpl() , initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, arg0, 5, 1); +} + +function StreamImpl$0methodref$lambda$2$Type(){ +} + +defineClass(845, 1, {}, StreamImpl$0methodref$lambda$2$Type); +_.apply_2 = function apply_36(arg0){ + return $apply_3(arg0); +} +; +var Ljava_util_stream_StreamImpl$0methodref$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/0methodref$lambda$2$Type', 845); +function $advanceToNextSpliterator(this$static){ + while (!this$static.next_0) { + if (!$tryAdvance_6(this$static.val$spliteratorOfStreams5, new StreamImpl$1$lambda$0$Type(this$static))) { + return false; + } + } + return true; +} + +function $lambda$0_0(this$static, n_0){ + if (n_0) { + this$static.nextStream = n_0; + this$static.next_0 = ($terminate(n_0) , n_0.spliterator); + } +} + +function StreamImpl$1(val$spliteratorOfStreams){ + this.val$spliteratorOfStreams5 = val$spliteratorOfStreams; + Spliterators$AbstractSpliterator.call(this, $intern_20, 0); +} + +defineClass(1084, 540, $intern_18, StreamImpl$1); +_.tryAdvance = function tryAdvance_12(action){ + while ($advanceToNextSpliterator(this)) { + if (this.next_0.tryAdvance(action)) { + return true; + } + else { + $close(this.nextStream); + this.nextStream = null; + this.next_0 = null; + } + } + return false; +} +; +var Ljava_util_stream_StreamImpl$1_2_classLit = createForClass('java.util.stream', 'StreamImpl/1', 1084); +function StreamImpl$1$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1085, 1, $intern_19, StreamImpl$1$lambda$0$Type); +_.accept = function accept_30(arg0){ + $lambda$0_0(this.$$outer_0, castTo(arg0, 833)); +} +; +var Ljava_util_stream_StreamImpl$1$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1/lambda$0$Type', 1085); +function StreamImpl$1methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1086, 1, $intern_39, StreamImpl$1methodref$add$Type); +_.test_0 = function test_5(arg0){ + return $add_6(this.$$outer_0, arg0); +} +; +var Ljava_util_stream_StreamImpl$1methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1methodref$add$Type', 1086); +function StreamImpl$5(this$0, $anonymous0, $anonymous1, val$comparator){ + this.this$01 = this$0; + this.val$comparator5 = val$comparator; + Spliterators$AbstractSpliterator.call(this, $anonymous0, $anonymous1); +} + +defineClass(1087, 540, $intern_18, StreamImpl$5); +_.tryAdvance = function tryAdvance_13(action){ + var list; + if (!this.ordered) { + list = new ArrayList; + this.this$01.spliterator.forEachRemaining(new StreamImpl$5$2methodref$add$Type(list)); + $clinit_Collections(); + $sort(list, this.val$comparator5); + this.ordered = new Spliterators$IteratorSpliterator(list, 16); + } + return $tryAdvance(this.ordered, action); +} +; +_.ordered = null; +var Ljava_util_stream_StreamImpl$5_2_classLit = createForClass('java.util.stream', 'StreamImpl/5', 1087); +function StreamImpl$5$2methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1088, 1, $intern_19, StreamImpl$5$2methodref$add$Type); +_.accept = function accept_31(arg0){ + $add_3(this.$$outer_0, arg0); +} +; +var Ljava_util_stream_StreamImpl$5$2methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/5/2methodref$add$Type', 1088); +function $lambda$0_1(this$static, action_1, item_1){ + if (this$static.filter.test_0(item_1)) { + this$static.found = true; + action_1.accept(item_1); + } +} + +function StreamImpl$FilterSpliterator(filter, original){ + Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -16449); + checkCriticalNotNull(filter); + this.filter = filter; + this.original = original; +} + +defineClass(722, 540, $intern_18, StreamImpl$FilterSpliterator); +_.tryAdvance = function tryAdvance_14(action){ + this.found = false; + while (!this.found && this.original.tryAdvance(new StreamImpl$FilterSpliterator$lambda$0$Type(this, action))) + ; + return this.found; +} +; +_.found = false; +var Ljava_util_stream_StreamImpl$FilterSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator', 722); +function StreamImpl$FilterSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1079, 1, $intern_19, StreamImpl$FilterSpliterator$lambda$0$Type); +_.accept = function accept_32(arg0){ + $lambda$0_1(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$FilterSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator/lambda$0$Type', 1079); +function $lambda$0_2(this$static, action_1, u_1){ + action_1.accept_2(this$static.map_0.applyAsDouble(u_1)); +} + +function $tryAdvance_4(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToDoubleSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToDoubleSpliterator(map_0, original){ + Spliterators$AbstractDoubleSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(1075, 721, $intern_18, StreamImpl$MapToDoubleSpliterator); +_.tryAdvance_0 = function tryAdvance_15(action){ + return $tryAdvance_4(this, castTo(action, 182)); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator', 1075); +function StreamImpl$MapToDoubleSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1078, 1, $intern_19, StreamImpl$MapToDoubleSpliterator$lambda$0$Type); +_.accept = function accept_33(arg0){ + $lambda$0_2(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator/lambda$0$Type', 1078); +function $lambda$0_3(this$static, action_1, u_1){ + action_1.accept_0(this$static.map_0.applyAsInt(u_1)); +} + +function $tryAdvance_5(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToIntSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToIntSpliterator(map_0, original){ + Spliterators$AbstractIntSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(1074, 720, $intern_18, StreamImpl$MapToIntSpliterator); +_.tryAdvance_0 = function tryAdvance_16(action){ + return $tryAdvance_5(this, castTo(action, 196)); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator', 1074); +function StreamImpl$MapToIntSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1077, 1, $intern_19, StreamImpl$MapToIntSpliterator$lambda$0$Type); +_.accept = function accept_34(arg0){ + $lambda$0_3(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator/lambda$0$Type', 1077); +function $lambda$0_4(this$static, action_1, u_1){ + action_1.accept(this$static.map_0.apply_0(u_1)); +} + +function $tryAdvance_6(this$static, action){ + return this$static.original.tryAdvance(new StreamImpl$MapToObjSpliterator$lambda$0$Type(this$static, action)); +} + +function StreamImpl$MapToObjSpliterator(map_0, original){ + Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); + checkCriticalNotNull(map_0); + this.map_0 = map_0; + this.original = original; +} + +defineClass(719, 540, $intern_18, StreamImpl$MapToObjSpliterator); +_.tryAdvance = function tryAdvance_17(action){ + return $tryAdvance_6(this, action); +} +; +var Ljava_util_stream_StreamImpl$MapToObjSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator', 719); +function StreamImpl$MapToObjSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1076, 1, $intern_19, StreamImpl$MapToObjSpliterator$lambda$0$Type); +_.accept = function accept_35(arg0){ + $lambda$0_4(this.$$outer_0, this.action_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$MapToObjSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator/lambda$0$Type', 1076); +function $accept_1(this$static, value_0){ + this$static.value_0 = value_0; +} + +function StreamImpl$ValueConsumer(){ +} + +defineClass(618, 1, $intern_19, StreamImpl$ValueConsumer); +_.accept = function accept_36(value_0){ + $accept_1(this, value_0); +} +; +var Ljava_util_stream_StreamImpl$ValueConsumer_2_classLit = createForClass('java.util.stream', 'StreamImpl/ValueConsumer', 618); +function StreamImpl$lambda$0$Type(){ +} + +defineClass(1080, 1, $intern_19, StreamImpl$lambda$0$Type); +_.accept = function accept_37(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$0$Type', 1080); +function StreamImpl$lambda$1$Type(){ +} + +defineClass(1081, 1, $intern_19, StreamImpl$lambda$1$Type); +_.accept = function accept_38(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$1$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$1$Type', 1081); +function StreamImpl$lambda$4$Type(collector_0){ + this.collector_0 = collector_0; +} + +defineClass(1082, 1, {}, StreamImpl$lambda$4$Type); +_.apply_3 = function apply_37(arg0, arg1){ + return lambda$4_0(this.collector_0, arg0, arg1); +} +; +var Ljava_util_stream_StreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$4$Type', 1082); +function StreamImpl$lambda$5$Type(consumer_0, accumulator_1){ + this.consumer_0 = consumer_0; + this.accumulator_1 = accumulator_1; +} + +defineClass(1083, 1, $intern_19, StreamImpl$lambda$5$Type); +_.accept = function accept_39(arg0){ + lambda$5(this.consumer_0, this.accumulator_1, arg0); +} +; +var Ljava_util_stream_StreamImpl$lambda$5$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$5$Type', 1083); +function TerminatableStream$lambda$0$Type(throwables_0){ + this.throwables_0 = throwables_0; +} + +defineClass(1089, 1, $intern_19, TerminatableStream$lambda$0$Type); +_.accept = function accept_40(arg0){ + lambda$0_3(this.throwables_0, castTo(arg0, 365)); +} +; +var Ljava_util_stream_TerminatableStream$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'TerminatableStream/lambda$0$Type', 1089); +function clone_0(array, toIndex){ + var result; + result = array.slice(0, toIndex); + return stampJavaTypeInfo_0(result, array); +} + +function copy_0(src_0, srcOfs, dest, destOfs, len, overwrite){ + var batchEnd, batchStart, destArray, end, spliceArgs; + if (maskUndefined(src_0) === maskUndefined(dest)) { + src_0 = src_0.slice(srcOfs, srcOfs + len); + srcOfs = 0; + } + destArray = dest; + for (batchStart = srcOfs , end = srcOfs + len; batchStart < end;) { + batchEnd = $wnd.Math.min(batchStart + 10000, end); + len = batchEnd - batchStart; + spliceArgs = src_0.slice(batchStart, batchEnd); + spliceArgs.splice(0, 0, destOfs, overwrite?len:0); + Array.prototype.splice.apply(destArray, spliceArgs); + batchStart = batchEnd; + destOfs += len; + } +} + +function createFrom(array, length_0){ + return stampJavaTypeInfo_1(new Array(length_0), array); +} + +function insertTo(array, index_0, value_0){ + array.splice(index_0, 0, value_0); +} + +function insertTo_0(array, index_0, values){ + copy_0(values, 0, array, index_0, values.length, false); +} + +function removeFrom(array, index_0, deleteCount){ + array.splice(index_0, deleteCount); +} + +function setLength(array, length_0){ + array.length = length_0; +} + +defineClass(2041, 1, {}); +function stampJavaTypeInfo_1(array, referenceType){ + return stampJavaTypeInfo_0(array, referenceType); +} + +function $groupStart(msg, expanded){ + (!expanded && console.groupCollapsed != null?console.groupCollapsed:console.group != null?console.group:console.log).call(console, msg); +} + +function $log_0(level, message){ + var logFn; + logFn = console[level]; + logFn.call(console, message); +} + +function $log_1(this$static, level, t, label_0, expanded){ + var cause, suppressed, suppressed$array, suppressed$index, suppressed$max; + $groupStart(label_0 + $toString_4(t, t.getMessage()), expanded); + $log_0(level, getBackingErrorStack(t)); + cause = t.cause_0; + !!cause && $log_1(this$static, level, cause, 'Caused by: ', false); + for (suppressed$array = (t.suppressedExceptions == null && (t.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , t.suppressedExceptions) , suppressed$index = 0 , suppressed$max = suppressed$array.length; suppressed$index < suppressed$max; ++suppressed$index) { + suppressed = suppressed$array[suppressed$index]; + $log_1(this$static, level, suppressed, 'Suppressed: ', false); + } + console.groupEnd != null && console.groupEnd.call(console); +} + +function ConsoleLogger(){ +} + +function getBackingErrorStack(t){ + var backingError = t.backingJsObject; + function stringify(fnStack){ + if (!fnStack || fnStack.length == 0) { + return ''; + } + return '\t' + fnStack.join('\n\t'); + } + + return backingError && (backingError.stack || stringify(t['fnStack'])); +} + +defineClass(1914, 1, {}, ConsoleLogger); +var Ljavaemul_internal_ConsoleLogger_2_classLit = createForClass('javaemul.internal', 'ConsoleLogger', 1914); +function getIdentityHashCode(o){ + switch (typeof(o)) { + case 'string': + return getHashCode_1(o); + case 'number': + return round_int(o); + case 'boolean': + return $clinit_Boolean() , o?1231:1237; + default:return o == null?0:getHashCode_0(o); + } +} + +function checkCriticalArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkCriticalArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkCriticalArgument_1(expression, errorMessageArgs){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(format('Enum constant undefined: %s', errorMessageArgs))); + } +} + +function checkCriticalArrayBounds_0(start_0, end, length_0){ + if (start_0 > end) { + throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); + } + if (start_0 < 0 || end > length_0) { + throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); + } +} + +function checkCriticalArraySize(size_0){ + if (size_0 < 0) { + throw toJs(new NegativeArraySizeException('Negative array size: ' + size_0)); + } +} + +function checkCriticalArrayType(expression){ + if (!expression) { + throw toJs(new ArrayStoreException); + } +} + +function checkCriticalArrayType_0(expression, errorMessage){ + if (!expression) { + throw toJs(new ArrayStoreException_0(errorMessage)); + } +} + +function checkCriticalElement(expression){ + if (!expression) { + throw toJs(new NoSuchElementException); + } +} + +function checkCriticalElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalNotNull(reference){ + if (reference == null) { + throw toJs(new NullPointerException); + } + return reference; +} + +function checkCriticalNotNull_0(reference, errorMessage){ + if (reference == null) { + throw toJs(new NullPointerException_0(errorMessage)); + } +} + +function checkCriticalPositionIndex(index_0, size_0){ + if (index_0 < 0 || index_0 > size_0) { + throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalPositionIndexes(start_0, end, size_0){ + if (start_0 < 0 || end > size_0) { + throw toJs(new IndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', size: ' + size_0)); + } + if (start_0 > end) { + throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); + } +} + +function checkCriticalState(expression){ + if (!expression) { + throw toJs(new IllegalStateException); + } +} + +function checkCriticalState_0(expression){ + if (!expression) { + throw toJs(new IllegalStateException_0('Unable to add element to queue')); + } +} + +function checkCriticalStringBounds(start_0, end, length_0){ + if (start_0 < 0 || end > length_0 || end < start_0) { + throw toJs(new StringIndexOutOfBoundsException('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); + } +} + +function checkCriticalStringElementIndex(index_0, size_0){ + if (index_0 < 0 || index_0 >= size_0) { + throw toJs(new StringIndexOutOfBoundsException('Index: ' + index_0 + ', Size: ' + size_0)); + } +} + +function checkCriticalType(expression){ + if (!expression) { + throw toJs(new ClassCastException_0(null)); + } +} + +function format(template, args){ + var builder, i, placeholderStart, templateStart; + template = template == null?'null':(checkCriticalNotNull(template) , template); + builder = new StringBuilder_0; + templateStart = 0; + i = 0; + while (i < args.length) { + placeholderStart = template.indexOf('%s', templateStart); + if (placeholderStart == -1) { + break; + } + $append_11(builder, template.substr(templateStart, placeholderStart - templateStart)); + $append_10(builder, args[i++]); + templateStart = placeholderStart + 2; + } + $append_11(builder, template.substr(templateStart)); + if (i < args.length) { + builder.string += ' ['; + $append_10(builder, args[i++]); + while (i < args.length) { + builder.string += ', '; + $append_10(builder, args[i++]); + } + builder.string += ']'; + } + return builder.string; +} + +defineClass(2038, 1, {}); +function getHashCode_0(o){ + return o.$H || (o.$H = ++nextHashId); +} + +var nextHashId = 0; +function $clinit_StringHashCache(){ + $clinit_StringHashCache = emptyMethod; + back_0 = new Object_0; + front = new Object_0; +} + +function compute(str){ + var hashCode, i, n, nBatch; + hashCode = 0; + n = str.length; + nBatch = n - 4; + i = 0; + while (i < nBatch) { + hashCode = (checkCriticalStringElementIndex(i + 3, str.length) , str.charCodeAt(i + 3) + (checkCriticalStringElementIndex(i + 2, str.length) , 31 * (str.charCodeAt(i + 2) + (checkCriticalStringElementIndex(i + 1, str.length) , 31 * (str.charCodeAt(i + 1) + (checkCriticalStringElementIndex(i, str.length) , 31 * (str.charCodeAt(i) + 31 * hashCode))))))); + hashCode = hashCode | 0; + i += 4; + } + while (i < n) { + hashCode = hashCode * 31 + $charAt(str, i++); + } + hashCode = hashCode | 0; + return hashCode; +} + +function getHashCode_1(str){ + $clinit_StringHashCache(); + var hashCode, key, result; + key = ':' + str; + result = front[key]; + if (result != null) { + return round_int((checkCriticalNotNull(result) , result)); + } + result = back_0[key]; + hashCode = result == null?compute(str):round_int((checkCriticalNotNull(result) , result)); + increment_0(); + front[key] = hashCode; + return hashCode; +} + +function increment_0(){ + if (count_0 == 256) { + back_0 = front; + front = new Object_0; + count_0 = 0; + } + ++count_0; +} + +var back_0, count_0 = 0, front; +function triangulate(vertices){ + var bottomright, boundary, c, i, invalidTriangles, onBoundary, other, other$iterator, sa, sb, sc, size_0, superTriangle, tEdge, tEdge$iterator, tEdge$iterator0, tEdges, topleft, triangle, triangle$iterator, triangle$iterator0, triangulation, v, v$iterator, vertex, vertex$iterator; + topleft = new KVector_1($intern_59, $intern_59); + bottomright = new KVector_1($intern_60, $intern_60); + for (v$iterator = new ArrayList$1(vertices); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 8); + topleft.x_0 = $wnd.Math.min(topleft.x_0, v.x_0); + topleft.y_0 = $wnd.Math.min(topleft.y_0, v.y_0); + bottomright.x_0 = $wnd.Math.max(bottomright.x_0, v.x_0); + bottomright.y_0 = $wnd.Math.max(bottomright.y_0, v.y_0); + } + size_0 = new KVector_1(bottomright.x_0 - topleft.x_0, bottomright.y_0 - topleft.y_0); + sa = new KVector_1(topleft.x_0 - 50, topleft.y_0 - size_0.x_0 - 50); + sb = new KVector_1(topleft.x_0 - 50, bottomright.y_0 + size_0.x_0 + 50); + sc = new KVector_1(bottomright.x_0 + size_0.y_0 / 2 + 50, topleft.y_0 + size_0.y_0 / 2); + superTriangle = new TTriangle(sa, sb, sc); + triangulation = new HashSet; + invalidTriangles = new ArrayList; + boundary = new ArrayList; + triangulation.map_0.put(superTriangle, triangulation); + for (vertex$iterator = new ArrayList$1(vertices); vertex$iterator.i < vertex$iterator.this$01.array.length;) { + vertex = castTo($next_7(vertex$iterator), 8); + invalidTriangles.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (triangle$iterator0 = triangulation.map_0.keySet_0().iterator_0(); triangle$iterator0.hasNext_0();) { + triangle = castTo(triangle$iterator0.next_1(), 308); + c = triangle.circumcenter; + $distance_0(c, triangle.a); + fuzzyCompare($distance_0(triangle.circumcenter, vertex), $distance_0(triangle.circumcenter, triangle.a)) < 0 && (invalidTriangles.array[invalidTriangles.array.length] = triangle , true); + } + boundary.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (triangle$iterator = new ArrayList$1(invalidTriangles); triangle$iterator.i < triangle$iterator.this$01.array.length;) { + triangle = castTo($next_7(triangle$iterator), 308); + for (tEdge$iterator0 = new ArrayList$1(triangle.tEdges); tEdge$iterator0.i < tEdge$iterator0.this$01.array.length;) { + tEdge = castTo($next_7(tEdge$iterator0), 168); + onBoundary = true; + for (other$iterator = new ArrayList$1(invalidTriangles); other$iterator.i < other$iterator.this$01.array.length;) { + other = castTo($next_7(other$iterator), 308); + other != triangle && (equals_57(tEdge, $get_11(other.tEdges, 0)) || equals_57(tEdge, $get_11(other.tEdges, 1)) || equals_57(tEdge, $get_11(other.tEdges, 2))) && (onBoundary = false); + } + onBoundary && (boundary.array[boundary.array.length] = tEdge , true); + } + } + $removeAll_1(triangulation, invalidTriangles); + $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$0$Type); + for (tEdge$iterator = new ArrayList$1(boundary); tEdge$iterator.i < tEdge$iterator.this$01.array.length;) { + tEdge = castTo($next_7(tEdge$iterator), 168); + $add_6(triangulation, new TTriangle(vertex, tEdge.u, tEdge.v)); + } + } + tEdges = new HashSet; + $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$1$Type(tEdges)); + i = tEdges.map_0.keySet_0().iterator_0(); + while (i.hasNext_0()) { + tEdge = castTo(i.next_1(), 168); + ($contains_9(superTriangle, tEdge.u) || $contains_9(superTriangle, tEdge.v)) && i.remove(); + } + $forEach_0(tEdges, new BowyerWatsonTriangulation$lambda$2$Type); + return tEdges; +} + +function BowyerWatsonTriangulation$lambda$0$Type(){ +} + +defineClass(1768, 1, $intern_19, BowyerWatsonTriangulation$lambda$0$Type); +_.accept = function accept_41(arg0){ + castTo(arg0, 308); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$0$Type', 1768); +function BowyerWatsonTriangulation$lambda$1$Type(tEdges_0){ + this.tEdges_0 = tEdges_0; +} + +defineClass(1769, 1, $intern_19, BowyerWatsonTriangulation$lambda$1$Type); +_.accept = function accept_42(arg0){ + $addAll(this.tEdges_0, castTo(arg0, 308).tEdges); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$1$Type', 1769); +function BowyerWatsonTriangulation$lambda$2$Type(){ +} + +defineClass(1770, 1, $intern_19, BowyerWatsonTriangulation$lambda$2$Type); +_.accept = function accept_43(arg0){ + castTo(arg0, 168); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$2$Type', 1770); +function createSpanningTree(tEdges, root, costFunction){ + var edge, edge$iterator, edge$iterator0, edgeList, edges, minST, nextEdge, nextNode, nodeInTree, subTree, treeNodes, weight; + weight = new HashMap; + for (edge$iterator0 = tEdges.map_0.keySet_0().iterator_0(); edge$iterator0.hasNext_0();) { + edge = castTo(edge$iterator0.next_1(), 168); + $put_6(weight, edge, costFunction.cost(edge)); + } + edgeList = (checkNotNull(tEdges) , tEdges?new ArrayList_1(tEdges):newArrayList_0(tEdges.map_0.keySet_0().iterator_0())); + $sort(edgeList, new NaiveMinST$lambda$0$Type(weight)); + edges = newLinkedHashSet(edgeList); + minST = new Tree(root); + treeNodes = new HashMap; + $put_9(treeNodes.hashCodeMap, root, minST); + while (edges.map_0.size_1() != 0) { + nextEdge = null; + nextNode = null; + nodeInTree = null; + for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 168); + if ($doubleValue(castToDouble(getEntryValueOrNull($getEntry_0(weight.hashCodeMap, edge)))) <= $intern_59) { + if ($containsKey_3(treeNodes, edge.u) && !$containsKey_3(treeNodes, edge.v)) { + nextNode = edge.v; + nodeInTree = edge.u; + nextEdge = edge; + break; + } + if ($containsKey_3(treeNodes, edge.v)) { + if (!$containsKey_3(treeNodes, edge.u)) { + nextNode = edge.u; + nodeInTree = edge.v; + nextEdge = edge; + break; + } + } + } + } + if (!nextEdge) { + break; + } + subTree = new Tree(nextNode); + $add_3(castTo(getEntryValueOrNull($getEntry_0(treeNodes.hashCodeMap, nodeInTree)), 221).children, subTree); + $put_9(treeNodes.hashCodeMap, nextNode, subTree); + edges.map_0.remove_0(nextEdge) != null; + } + return minST; +} + +function lambda$0_6(weight_0, e1_1, e2_2){ + return $compareTo_4(castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e1_1))), castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e2_2)))); +} + +function NaiveMinST$lambda$0$Type(weight_0){ + this.weight_0 = weight_0; +} + +defineClass(1765, 1, $intern_88, NaiveMinST$lambda$0$Type); +_.compare_1 = function compare_12(arg0, arg1){ + return lambda$0_6(this.weight_0, castTo(arg0, 168), castTo(arg1, 168)); +} +; +_.equals_0 = function equals_61(other){ + return this === other; +} +; +_.reversed = function reversed_4(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_NaiveMinST$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NaiveMinST/lambda$0$Type', 1765); +function $execute(this$static){ + var calcu; + sortPortLists(this$static.adapter); + calculateLabelAndNodeSizes(this$static.adapter); + calcu = new NodeMarginCalculator(this$static.adapter); + $process(calcu); +} + +function NodeMicroLayout(adapter){ + this.adapter = adapter; +} + +defineClass(499, 1, {}, NodeMicroLayout); +var Lorg_eclipse_elk_alg_common_NodeMicroLayout_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NodeMicroLayout', 499); +function TEdge(u, v){ + this.u = u; + this.v = v; +} + +defineClass(168, 1, {168:1}, TEdge); +_.equals_0 = function equals_62(obj){ + var other; + if (instanceOf(obj, 168)) { + other = castTo(obj, 168); + return equals_57(this.u, other.u) && equals_57(this.v, other.v) || equals_57(this.u, other.v) && equals_57(this.v, other.u); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_58(){ + return hashCode_54(this.u) + hashCode_54(this.v); +} +; +var Lorg_eclipse_elk_alg_common_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TEdge', 168); +function $contains_9(this$static, vertex){ + return equals_57(vertex, $get_11(this$static.vertices, 0)) || equals_57(vertex, $get_11(this$static.vertices, 1)) || equals_57(vertex, $get_11(this$static.vertices, 2)); +} + +function TTriangle(a, b, c){ + var ab, ac, bc, e, f, g, px, py; + this.a = a; + this.b = b; + this.c = c; + this.tEdges = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_TEdge_2_classLit, 1), $intern_2, 168, 0, [new TEdge(a, b), new TEdge(b, c), new TEdge(c, a)])); + this.vertices = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [a, b, c])); + this.circumcenter = (ab = $sub_0($clone_0(this.b), this.a) , ac = $sub_0($clone_0(this.c), this.a) , bc = $sub_0($clone_0(this.c), this.b) , e = ab.x_0 * (this.a.x_0 + this.b.x_0) + ab.y_0 * (this.a.y_0 + this.b.y_0) , f = ac.x_0 * (this.a.x_0 + this.c.x_0) + ac.y_0 * (this.a.y_0 + this.c.y_0) , g = 2 * (ab.x_0 * bc.y_0 - ab.y_0 * bc.x_0) , px = (ac.y_0 * e - ab.y_0 * f) / g , py = (ab.x_0 * f - ac.x_0 * e) / g , new KVector_1(px, py)); +} + +defineClass(308, 1, {308:1}, TTriangle); +_.equals_0 = function equals_63(obj){ + var other; + if (instanceOf(obj, 308)) { + other = castTo(obj, 308); + return $contains_9(this, other.a) && $contains_9(this, other.b) && $contains_9(this, other.c); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_59(){ + return hashCode_54(this.a) + hashCode_54(this.b) + hashCode_54(this.c); +} +; +var Lorg_eclipse_elk_alg_common_TTriangle_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TTriangle', 308); +function Tree(n){ + this.node = n; + this.children = new ArrayList; +} + +defineClass(221, 1, {221:1}, Tree); +var Lorg_eclipse_elk_alg_common_Tree_2_classLit = createForClass('org.eclipse.elk.alg.common', 'Tree', 221); +function $go(this$static){ + var h, h$iterator, p, p$iterator; + $clinit_Collections(); + $sort(this$static.points, this$static.comparator); + for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { + p = $next_7(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_7(h$iterator), 679); + h.handle(p); + } + } +} + +function Scanline(points, comparator, eventHandlers){ + this.comparator = comparator; + this.points = points; + this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); +} + +function execute(points, comparator, eventHandlers){ + var copy; + copy = (checkNotNull(points) , new ArrayList_1(points)); + $go(new Scanline(copy, comparator, eventHandlers)); +} + +defineClass(1254, 1, {}, Scanline); +var Lorg_eclipse_elk_alg_common_compaction_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction', 'Scanline', 1254); +var Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.common.compaction', 'Scanline/EventHandler'); +function $supports(this$static, direction){ + return $containsEnum(this$static.supportedDirections, direction); +} + +function CGraph(supportedDirections){ + this.cNodes = new ArrayList; + this.cGroups = new ArrayList; + this.predefinedHorizontalConstraints = new ArrayList; + this.predefinedVerticalConstraints = new ArrayList; + this.supportedDirections = supportedDirections; +} + +defineClass(1692, 1, {}, CGraph); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGraph', 1692); +function $addCNode(this$static, cNode){ + if (cNode.cGroup) { + throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); + } + $add_6(this$static.cNodes, cNode); + cNode.cGroup = this$static; + !this$static.reference && (this$static.reference = cNode); +} + +function CGroup(){ + this.cNodes = new LinkedHashSet; + this.incomingConstraints = new HashSet; + this.outDegree = 0; + this.outDegreeReal = 0; +} + +defineClass(307, 1, {307:1}, CGroup); +_.delta = 0; +_.deltaNormalized = 0; +_.id_0 = 0; +_.outDegree = 0; +_.outDegreeReal = 0; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup', 307); +function $create(this$static, graph){ + $add_3(graph.cGroups, this$static.group_0); + return this$static.group_0; +} + +function $master(this$static, master){ + this$static.group_0.master = master; + return this$static; +} + +function $nodes(this$static, nodes){ + var n, n$array, n$index, n$max; + for (n$array = nodes , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { + n = n$array[n$index]; + $addCNode(this$static.group_0, n); + } + return this$static; +} + +function CGroup$CGroupBuilder(){ + this.group_0 = new CGroup; +} + +defineClass(815, 1, {}, CGroup$CGroupBuilder); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup$CGroupBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup/CGroupBuilder', 815); +function CNode(){ + this.cGroupOffset = new KVector; + this.constraints = new ArrayList; +} + +defineClass(57, 1, {57:1}, CNode); +_.toString_0 = function toString_76(){ + var number; + if (this.toStringDelegate) { + return castToString(this.toStringDelegate.apply_0(this)); + } + return $ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit) , Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit.typeName + '@' + (number = getHashCode_0(this) >>> 0 , number.toString(16)); +} +; +_.id_0 = 0; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode', 57); +function $create_0(this$static, graph){ + $add_3(graph.cNodes, this$static.node); + return this$static.node; +} + +function $hitbox(this$static, hitbox){ + this$static.node.hitbox = hitbox; + return this$static; +} + +function $origin(this$static, origin_0){ + this$static.node.origin_0 = origin_0; + return this$static; +} + +function $toStringDelegate(this$static, delegate){ + this$static.node.toStringDelegate = delegate; + return this$static; +} + +function CNode$CNodeBuilder(){ + this.node = new CNode; +} + +defineClass(814, 1, {}, CNode$CNodeBuilder); +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode$CNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode/CNodeBuilder', 814); +function eq_0(d1, d2){ + return $clinit_DoubleMath() , checkNonNegative($intern_41) , $wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2); +} + +function gt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) > 0; +} + +function le(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) <= 0; +} + +function lt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) < 0; +} + +function $clinit_ISpacingsHandler(){ + $clinit_ISpacingsHandler = emptyMethod; + DEFAULT_SPACING_HANDLER = new ISpacingsHandler$1; +} + +var DEFAULT_SPACING_HANDLER; +function ISpacingsHandler$1(){ +} + +defineClass(1525, 1, {}, ISpacingsHandler$1); +_.getHorizontalSpacing = function getHorizontalSpacing(cNode1, cNode2){ + return 0; +} +; +_.getVerticalSpacing = function getVerticalSpacing(cNode1, cNode2){ + return 0; +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ISpacingsHandler/1', 1525); +function LongestPathCompaction(){ +} + +defineClass(1790, 1, {}, LongestPathCompaction); +_.compact = function compact(compactor){ + var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; + minStartPos = $intern_59; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); + } + sinks = new LinkedList; + for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 307); + group.startPos = minStartPos; + group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 307); + diff = group.reference.hitbox.x_0; + for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { + node = castTo(node$iterator0.next_1(), 57); + suggestedX = group.startPos + node.cGroupOffset.x_0; + !$isLocked(compactor, group, compactor.direction) || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); + } + diff -= group.reference.startPos; + group.delta += diff; + compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); + for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 57); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 57); + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing(node, incNode)); + incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); + $isLocked_0(compactor, incNode, compactor.direction) && (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); + --incNode.cGroup.outDegree; + incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); + } + } + } + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.hitbox.x_0 = cNode.startPos; + } +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_LongestPathCompaction_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'LongestPathCompaction', 1790); +function $clinit_OneDimensionalCompactor(){ + $clinit_OneDimensionalCompactor = emptyMethod; + LONGEST_PATH_COMPACTION = new LongestPathCompaction; + SCANLINE_CONSTRAINTS = new ScanlineConstraintCalculator; + QUADRATIC_CONSTRAINTS = new QuadraticConstraintCalculation; +} + +function $calculateConstraints(this$static){ + var cNode, cNode$iterator, cstrs; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.constraints.clear_0(); + } + $isHorizontal(this$static.direction)?(cstrs = this$static.cGraph.predefinedHorizontalConstraints):(cstrs = this$static.cGraph.predefinedVerticalConstraints); + $forEach_1(cstrs, new OneDimensionalCompactor$lambda$0$Type(this$static)); + this$static.constraintAlgorithm.calculateConstraints(this$static); + $calculateConstraintsForCGroups(this$static); +} + +function $calculateConstraintsForCGroups(this$static){ + var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; + for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 307); + group.outDegree = 0; + group.outDegreeReal = 0; + group.incomingConstraints.map_0.clear_0(); + } + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 307); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 57); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 57); + if (inc.cGroup != group) { + $add_6(group.incomingConstraints, inc); + ++inc.cGroup.outDegree; + ++inc.cGroup.outDegreeReal; + } + } + } + } +} + +function $calculateGroupOffsets(this$static){ + var group, group$iterator, n, n$iterator, n$iterator0; + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 307); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 57); + $reset_5(n.cGroupOffset); + (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); + } + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; + n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; + } + } + return this$static; +} + +function $changeDirection(this$static, dir_0){ + var oldDirection; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + if (!$supports(this$static.cGraph, dir_0)) { + throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); + } + if (dir_0 == this$static.direction) { + return this$static; + } + oldDirection = this$static.direction; + this$static.direction = dir_0; + switch (oldDirection.ordinal) { + case 0: + switch (dir_0.ordinal) { + case 2: + $calculateConstraints(this$static); + break; + case 1: + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 4: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 2: + switch (dir_0.ordinal) { + case 1: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + break; + case 4: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 1: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + break; + case 4: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + } + + break; + case 4: + switch (dir_0.ordinal) { + case 2: + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 1: + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 3: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + } + + break; + case 3: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 1: + $mirrorHitboxes(this$static); + $transposeHitboxes(this$static); + $mirrorHitboxes(this$static); + $calculateConstraints(this$static); + break; + case 4: + $mirrorHitboxes(this$static); + $reverseConstraints(this$static); + } + + } + return this$static; +} + +function $compact(this$static){ + var g, g$iterator, n, n$iterator; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection(this$static, LEFT_6); + for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 307); + g.outDegree = g.outDegreeReal; + } + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + n.startPos = $intern_60; + } + this$static.compactionAlgorithm.compact(this$static); + return this$static; +} + +function $isLocked(this$static, group, dir_0){ + var n, n$iterator; + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if ($isLocked_0(this$static, n, dir_0)) { + return true; + } + } + return false; +} + +function $isLocked_0(this$static, node, dir_0){ + if (this$static.lockFun) { + return this$static.lockFun.isLocked(node, dir_0); + } + return false; +} + +function $lambda$0_5(this$static, p_0){ + this$static.direction == ($clinit_Direction_0() , LEFT_6) || this$static.direction == UP_1?castTo(p_0.first, 57).constraints.add_2(castTo(p_0.second, 57)):castTo(p_0.second, 57).constraints.add_2(castTo(p_0.first, 57)); +} + +function $mirrorHitboxes(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; + } + $calculateGroupOffsets(this$static); +} + +function $reverseConstraints(this$static){ + var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; + incMap = new HashMap; + for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + $put_6(incMap, cNode, new ArrayList); + } + for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator1), 57); + cNode.startPos = $intern_60; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 57); + castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); + } + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.constraints.clear_0(); + cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); + } + $calculateConstraintsForCGroups(this$static); +} + +function $setCompactionAlgorithm(this$static, compactor){ + this$static.compactionAlgorithm = compactor; + return this$static; +} + +function $setConstraintAlgorithm(this$static, theConstraintAlgorithm){ + this$static.constraintAlgorithm = theConstraintAlgorithm; + return this$static; +} + +function $setLockFunction(this$static, fun){ + this$static.lockFun = fun; + return this$static; +} + +function $setSpacingsHandler(this$static, handler){ + this$static.spacingsHandler = handler; + return this$static; +} + +function $transposeHitboxes(this$static){ + var cNode, cNode$iterator, tmp; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + tmp = cNode.hitbox.x_0; + cNode.hitbox.x_0 = cNode.hitbox.y_0; + cNode.hitbox.y_0 = tmp; + tmp = cNode.hitbox.width_0; + cNode.hitbox.width_0 = cNode.hitbox.height; + cNode.hitbox.height = tmp; + tmp = cNode.cGroupOffset.x_0; + cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; + cNode.cGroupOffset.y_0 = tmp; + } + $calculateGroupOffsets(this$static); +} + +function OneDimensionalCompactor(cGraph){ + $clinit_OneDimensionalCompactor(); + var n, n$iterator; + this.compactionAlgorithm = LONGEST_PATH_COMPACTION; + this.constraintAlgorithm = SCANLINE_CONSTRAINTS; + this.spacingsHandler = ($clinit_ISpacingsHandler() , DEFAULT_SPACING_HANDLER); + this.direction = ($clinit_Direction_0() , UNDEFINED_2); + this.cGraph = cGraph; + $calculateGroupOffsets(this); + for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + !n.cGroup && $create($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [n])), cGraph); + n.hitboxPreCompaction = new ElkRectangle_1(n.hitbox); + } +} + +defineClass(1690, 1, {}, OneDimensionalCompactor); +_.finished = false; +var LONGEST_PATH_COMPACTION, QUADRATIC_CONSTRAINTS, SCANLINE_CONSTRAINTS; +var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor', 1690); +function OneDimensionalCompactor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1691, 1, $intern_19, OneDimensionalCompactor$lambda$0$Type); +_.accept = function accept_44(arg0){ + $lambda$0_5(this.$$outer_0, castTo(arg0, 46)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1691); +function QuadraticConstraintCalculation(){ +} + +defineClass(1791, 1, {}, QuadraticConstraintCalculation); +_.calculateConstraints = function calculateConstraints(compactor){ + var cNode, cNode$iterator, cNode1, cNode1$iterator, cNode2, cNode2$iterator, spacing; + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.constraints.clear_0(); + } + for (cNode1$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode1$iterator.i < cNode1$iterator.this$01.array.length;) { + cNode1 = castTo($next_7(cNode1$iterator), 57); + for (cNode2$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode2$iterator.i < cNode2$iterator.this$01.array.length;) { + cNode2 = castTo($next_7(cNode2$iterator), 57); + if (cNode1 == cNode2) { + continue; + } + if (!!cNode1.cGroup && cNode1.cGroup == cNode2.cGroup) { + continue; + } + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getVerticalSpacing(cNode1, cNode2)):(spacing = compactor.spacingsHandler.getHorizontalSpacing(cNode1, cNode2)); + (cNode2.hitbox.x_0 > cNode1.hitbox.x_0 || cNode1.hitbox.x_0 == cNode2.hitbox.x_0 && cNode1.hitbox.width_0 < cNode2.hitbox.width_0) && gt_0(cNode2.hitbox.y_0 + cNode2.hitbox.height + spacing, cNode1.hitbox.y_0) && lt_0(cNode2.hitbox.y_0, cNode1.hitbox.y_0 + cNode1.hitbox.height + spacing) && cNode1.constraints.add_2(cNode2); + } + } +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_QuadraticConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'QuadraticConstraintCalculation', 1791); +function $applyOr(this$static, other){ + this$static.left = this$static.left | other.left; + this$static.right = this$static.right | other.right; + this$static.up = this$static.up | other.up; + this$static.down = this$static.down | other.down; +} + +function $get_18(this$static, direction){ + switch (direction.ordinal) { + case 2: + return this$static.left; + case 1: + return this$static.right; + case 4: + return this$static.up; + case 3: + return this$static.down; + default:return false; + } +} + +function $set_3(this$static, value_0, direction){ + switch (direction.ordinal) { + case 2: + this$static.left = value_0; + break; + case 1: + this$static.right = value_0; + break; + case 4: + this$static.up = value_0; + break; + case 3: + this$static.down = value_0; + } +} + +function $set_4(this$static){ + this$static.left = false; + this$static.right = false; + this$static.up = false; + this$static.down = false; +} + +function Quadruplet(){ + $set_4(this); +} + +defineClass(522, 1, {522:1}, Quadruplet); +_.down = false; +_.left = false; +_.right = false; +_.up = false; +var Lorg_eclipse_elk_alg_common_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'Quadruplet', 522); +function $overlap(n1, n2){ + if (!n1 || !n2 || n1 == n2) { + return false; + } + return le(n1.hitbox.x_0, n2.hitbox.x_0 + n2.hitbox.width_0) && le(n2.hitbox.x_0, n1.hitbox.x_0 + n1.hitbox.width_0); +} + +function $sweep(this$static, filterFun){ + var n, n$iterator, points; + points = new ArrayList; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + if (filterFun.apply_1(n)) { + $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, true)); + $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, false)); + } + } + $reset_1(this$static.constraintsScanlineHandler); + execute(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [this$static.constraintsScanlineHandler]))); +} + +function ScanlineConstraintCalculator(){ + this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type; + this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler(this); +} + +function lambda$0_7(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.hitbox.y_0; + p1_0.low || (y1 += p1_0.node.hitbox.height); + y2 = p2_1.node.hitbox.y_0; + p2_1.low || (y2 += p2_1.node.hitbox.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(803, 1, {}, ScanlineConstraintCalculator); +_.calculateConstraints = function calculateConstraints_0(theCompactor){ + this.compactor = theCompactor; + $sweep(this, new ScanlineConstraintCalculator$lambda$1$Type); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator', 803); +function $handle(this$static, p){ + var left, right; + p.low?$insert_2(this$static, p):(left = castTo($lower(this$static.intervals, p.node), 57) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right = castTo($higher(this$static.intervals, p.node), 57) , !!right && this$static.cand[right.id_0] == p.node && !!right.cGroup && right.cGroup != p.node.cGroup && p.node.constraints.add_2(right) , $remove_28(this$static.intervals, p.node) , undefined); +} + +function $insert_2(this$static, p){ + var right, success; + success = $add_10(this$static.intervals, p.node); + if (!success) { + throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline constraint calculation.')); + } + ($overlap(p.node, castTo($floor(this$static.intervals, p.node), 57)) || $overlap(p.node, castTo($ceiling(this$static.intervals, p.node), 57))) && ($clinit_System() , p.node + ' has overlap.'); + this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 57); + right = castTo($higher(this$static.intervals, p.node), 57); + !!right && (this$static.cand[right.id_0] = p.node); +} + +function $reset_1(this$static){ + var index_0, n, n$iterator; + $clear_8(this$static.intervals.map_0); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, $intern_2, 57, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); + index_0 = 0; + for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 57); + n.id_0 = index_0++; + } +} + +function ScanlineConstraintCalculator$ConstraintsScanlineHandler(this$0){ + this.this$01 = this$0; + this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type), 62)); +} + +function lambda$0_8(c1_0, c2_1){ + return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); +} + +defineClass(1718, 1, {679:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler); +_.handle = function handle(p){ + $handle(this, castTo(p, 464)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1718); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1719, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_13(arg0, arg1){ + return lambda$0_8(castTo(arg0, 57), castTo(arg1, 57)); +} +; +_.equals_0 = function equals_64(other){ + return this === other; +} +; +_.reversed = function reversed_5(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1719); +function ScanlineConstraintCalculator$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(464, 1, {464:1}, ScanlineConstraintCalculator$Timestamp); +_.low = false; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/Timestamp', 464); +function ScanlineConstraintCalculator$lambda$0$Type(){ +} + +defineClass(1720, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type); +_.compare_1 = function compare_14(arg0, arg1){ + return lambda$0_7(castTo(arg0, 464), castTo(arg1, 464)); +} +; +_.equals_0 = function equals_65(other){ + return this === other; +} +; +_.reversed = function reversed_6(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$0$Type', 1720); +function ScanlineConstraintCalculator$lambda$1$Type(){ +} + +defineClass(1721, 1, $intern_89, ScanlineConstraintCalculator$lambda$1$Type); +_.apply_1 = function apply_38(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_66(other){ + return this === other; +} +; +_.test_0 = function test_6(input_0){ + return castTo(input_0, 57) , true; +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$1$Type', 1721); +function $clinit_HighLevelSortingCriterion(){ + $clinit_HighLevelSortingCriterion = emptyMethod; + NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST = new HighLevelSortingCriterion('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST', 0); + CORNER_CASES_THAN_SINGLE_SIDE_LAST = new HighLevelSortingCriterion('CORNER_CASES_THAN_SINGLE_SIDE_LAST', 1); +} + +function HighLevelSortingCriterion(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_14(name_0){ + $clinit_HighLevelSortingCriterion(); + return valueOf(($clinit_HighLevelSortingCriterion$Map() , $MAP_2), name_0); +} + +function values_20(){ + $clinit_HighLevelSortingCriterion(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]); +} + +defineClass(428, 22, {3:1, 35:1, 22:1, 428:1}, HighLevelSortingCriterion); +var CORNER_CASES_THAN_SINGLE_SIDE_LAST, NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST; +var Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'HighLevelSortingCriterion', 428, Ljava_lang_Enum_2_classLit, values_20, valueOf_14); +function $clinit_HighLevelSortingCriterion$Map(){ + $clinit_HighLevelSortingCriterion$Map = emptyMethod; + $MAP_2 = createValueOfMap(($clinit_HighLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]))); +} + +var $MAP_2; +function $clinit_LowLevelSortingCriterion(){ + $clinit_LowLevelSortingCriterion = emptyMethod; + BY_SIZE = new LowLevelSortingCriterion('BY_SIZE', 0); + BY_SIZE_AND_SHAPE = new LowLevelSortingCriterion('BY_SIZE_AND_SHAPE', 1); +} + +function LowLevelSortingCriterion(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_15(name_0){ + $clinit_LowLevelSortingCriterion(); + return valueOf(($clinit_LowLevelSortingCriterion$Map() , $MAP_3), name_0); +} + +function values_21(){ + $clinit_LowLevelSortingCriterion(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]); +} + +defineClass(427, 22, {3:1, 35:1, 22:1, 427:1}, LowLevelSortingCriterion); +var BY_SIZE, BY_SIZE_AND_SHAPE; +var Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'LowLevelSortingCriterion', 427, Ljava_lang_Enum_2_classLit, values_21, valueOf_15); +function $clinit_LowLevelSortingCriterion$Map(){ + $clinit_LowLevelSortingCriterion$Map = emptyMethod; + $MAP_3 = createValueOfMap(($clinit_LowLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]))); +} + +var $MAP_3; +var Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit = createForInterface('org.eclipse.elk.core.data', 'ILayoutMetaDataProvider'); +function $clinit_PolyominoOptions(){ + $clinit_PolyominoOptions = emptyMethod; + POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT = ($clinit_TraversalStrategy() , QUADRANTS_LINE_BY_LINE); + POLYOMINO_TRAVERSAL_STRATEGY = new Property_1('org.eclipse.elk.polyomino.traversalStrategy', POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT); + POLYOMINO_LOW_LEVEL_SORT_DEFAULT = ($clinit_LowLevelSortingCriterion() , BY_SIZE_AND_SHAPE); + POLYOMINO_LOW_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.lowLevelSort', POLYOMINO_LOW_LEVEL_SORT_DEFAULT); + POLYOMINO_HIGH_LEVEL_SORT_DEFAULT = ($clinit_HighLevelSortingCriterion() , NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST); + POLYOMINO_HIGH_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.highLevelSort', POLYOMINO_HIGH_LEVEL_SORT_DEFAULT); + POLYOMINO_FILL = new Property_1('org.eclipse.elk.polyomino.fill', ($clinit_Boolean() , true)); +} + +function PolyominoOptions(){ + $clinit_PolyominoOptions(); +} + +defineClass(853, 1, $intern_90, PolyominoOptions); +_.apply_4 = function apply_39(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.traversalStrategy'), 'polyomino'), 'Polyomino Traversal Strategy'), 'Traversal strategy for trying different candidate positions for polyominoes.'), POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.lowLevelSort'), 'polyomino'), 'Polyomino Secondary Sorting Criterion'), 'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'), POLYOMINO_LOW_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.highLevelSort'), 'polyomino'), 'Polyomino Primary Sorting Criterion'), 'Possible primary sorting criteria for the processing order of polyominoes.'), POLYOMINO_HIGH_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.fill'), 'polyomino'), 'Fill Polyominoes'), 'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); +} +; +var POLYOMINO_FILL, POLYOMINO_HIGH_LEVEL_SORT, POLYOMINO_HIGH_LEVEL_SORT_DEFAULT, POLYOMINO_LOW_LEVEL_SORT, POLYOMINO_LOW_LEVEL_SORT_DEFAULT, POLYOMINO_TRAVERSAL_STRATEGY, POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT; +var Lorg_eclipse_elk_alg_common_compaction_options_PolyominoOptions_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.options', 'PolyominoOptions', 853); +function $clinit_TraversalStrategy(){ + $clinit_TraversalStrategy = emptyMethod; + SPIRAL = new TraversalStrategy('SPIRAL', 0); + LINE_BY_LINE = new TraversalStrategy('LINE_BY_LINE', 1); + MANHATTAN = new TraversalStrategy('MANHATTAN', 2); + JITTER = new TraversalStrategy('JITTER', 3); + QUADRANTS_LINE_BY_LINE = new TraversalStrategy('QUADRANTS_LINE_BY_LINE', 4); + QUADRANTS_MANHATTAN = new TraversalStrategy('QUADRANTS_MANHATTAN', 5); + QUADRANTS_JITTER = new TraversalStrategy('QUADRANTS_JITTER', 6); + COMBINE_LINE_BY_LINE_MANHATTAN = new TraversalStrategy('COMBINE_LINE_BY_LINE_MANHATTAN', 7); + COMBINE_JITTER_MANHATTAN = new TraversalStrategy('COMBINE_JITTER_MANHATTAN', 8); +} + +function TraversalStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_16(name_0){ + $clinit_TraversalStrategy(); + return valueOf(($clinit_TraversalStrategy$Map() , $MAP_4), name_0); +} + +function values_22(){ + $clinit_TraversalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]); +} + +defineClass(250, 22, {3:1, 35:1, 22:1, 250:1}, TraversalStrategy); +var COMBINE_JITTER_MANHATTAN, COMBINE_LINE_BY_LINE_MANHATTAN, JITTER, LINE_BY_LINE, MANHATTAN, QUADRANTS_JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, SPIRAL; +var Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'TraversalStrategy', 250, Ljava_lang_Enum_2_classLit, values_22, valueOf_16); +function $clinit_TraversalStrategy$Map(){ + $clinit_TraversalStrategy$Map = emptyMethod; + $MAP_4 = createValueOfMap(($clinit_TraversalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]))); +} + +var $MAP_4; +function $getOther(this$static, some_0){ + if (some_0 == this$static.source) { + return this$static.target; + } + else if (some_0 == this$static.target) { + return this$static.source; + } + else { + throw toJs(new IllegalArgumentException_0('Node ' + some_0 + ' not part of edge ' + this$static)); + } +} + +function NEdge(){ +} + +defineClass(213, 1, {213:1}, NEdge); +_.toString_0 = function toString_77(){ + return 'NEdge[id=' + this.id_0 + ' w=' + this.weight + ' d=' + this.delta + ']'; +} +; +_.delta = 1; +_.id_0 = 0; +_.internalId = 0; +_.treeEdge = false; +_.weight = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge', 213); +function $create_1(this$static){ + if (!this$static.edge.source || !this$static.edge.target) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit.simpleName + ' must have a source and target ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit.simpleName) + ' specified.'))); + } + if (this$static.edge.source == this$static.edge.target) { + throw toJs(new IllegalStateException_0('Network simplex does not support self-loops: ' + this$static.edge + ' ' + this$static.edge.source + ' ' + this$static.edge.target)); + } + $add_11(this$static.edge.source.outgoingEdges, this$static.edge); + $add_11(this$static.edge.target.incomingEdges, this$static.edge); + return this$static.edge; +} + +function $delta(this$static, delta){ + this$static.edge.delta = delta; + return this$static; +} + +function $source(this$static, source){ + this$static.edge.source = source; + return this$static; +} + +function $target(this$static, target){ + this$static.edge.target = target; + return this$static; +} + +function $weight(this$static, weight){ + this$static.edge.weight = weight; + return this$static; +} + +function NEdge$NEdgeBuilder(){ + this.edge = new NEdge; +} + +defineClass(176, 1, {}, NEdge$NEdgeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge$NEdgeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge/NEdgeBuilder', 176); +function $createArtificialRootAndConnect(this$static, nodesToConnect){ + var root, src_0, src$iterator; + root = $create_2(new NNode$NNodeBuilder, this$static); + for (src$iterator = new ArrayList$1(nodesToConnect); src$iterator.i < src$iterator.this$01.array.length;) { + src_0 = castTo($next_7(src$iterator), 121); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0), root), src_0)); + } + return root; +} + +function $dfs(this$static, node, mark){ + var edge, edge$iterator, other; + if (mark[node.internalId]) { + return; + } + mark[node.internalId] = true; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + other = $getOther(edge, node); + $dfs(this$static, other, mark); + } +} + +function $findConCompRepresentatives(this$static){ + var ccRep, mark, node, node$iterator; + ccRep = new ArrayList; + mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.nodes.array.length, 16, 1); + fill0_3(mark, mark.length); + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + if (!mark[node.internalId]) { + ccRep.array[ccRep.array.length] = node; + $dfs(this$static, node, mark); + } + } + return ccRep; +} + +function $makeConnected(this$static){ + var ccRep, id_0, n, n$iterator, root; + id_0 = 0; + for (n$iterator = new ArrayList$1(this$static.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 121); + n.internalId = id_0++; + } + ccRep = $findConCompRepresentatives(this$static); + root = null; + ccRep.array.length > 1 && (root = $createArtificialRootAndConnect(this$static, ccRep)); + return root; +} + +function NGraph(){ + this.nodes = new ArrayList; +} + +defineClass(653, 1, {}, NGraph); +var Lorg_eclipse_elk_alg_common_networksimplex_NGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NGraph', 653); +function $getConnectedEdges(this$static){ + if (this$static.incomingEdgesModCnt != this$static.incomingEdges.modCount || this$static.outgoingEdgesModCnt != this$static.outgoingEdges.modCount) { + this$static.allEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(this$static.allEdges, this$static.incomingEdges); + $addAll_2(this$static.allEdges, this$static.outgoingEdges); + this$static.incomingEdgesModCnt = this$static.incomingEdges.modCount; + this$static.outgoingEdgesModCnt = this$static.outgoingEdges.modCount; + } + return this$static.allEdges; +} + +function NNode(){ + this.outgoingEdges = new NNode$ChangeAwareArrayList; + this.incomingEdges = new NNode$ChangeAwareArrayList; + this.allEdges = new ArrayList; + this.unknownCutvalues = new ArrayList; +} + +defineClass(121, 1, {121:1}, NNode); +_.incomingEdgesModCnt = -1; +_.internalId = 0; +_.layer = 0; +_.outgoingEdgesModCnt = -1; +_.treeNode = false; +var Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode', 121); +function $add_11(this$static, e){ + ++this$static.modCount; + return $add_3(this$static.list, e); +} + +function $remove_29(this$static, o){ + ++this$static.modCount; + return $remove_12(this$static.list, o); +} + +function NNode$ChangeAwareArrayList(){ + this.list = new ArrayList; +} + +defineClass(795, 1, $intern_73, NNode$ChangeAwareArrayList); +_.forEach_0 = function forEach_24(action){ + $forEach_0(this, action); +} +; +_.parallelStream = function parallelStream_4(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.sort_0 = function sort_9(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_37(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_6(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.add_3 = function add_41(index_0, element){ + ++this.modCount; + $add_2(this.list, index_0, element); +} +; +_.add_2 = function add_42(e){ + return $add_11(this, e); +} +; +_.addAll_0 = function addAll_22(index_0, c){ + ++this.modCount; + return $addAll_1(this.list, index_0, c); +} +; +_.addAll = function addAll_23(c){ + ++this.modCount; + return $addAll_2(this.list, c); +} +; +_.clear_0 = function clear_51(){ + ++this.modCount; + this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.contains = function contains_48(o){ + return $indexOf_3(this.list, o, 0) != -1; +} +; +_.containsAll = function containsAll_10(c){ + return $containsAll(this.list, c); +} +; +_.get_0 = function get_49(index_0){ + return $get_11(this.list, index_0); +} +; +_.indexOf_0 = function indexOf_7(o){ + return $indexOf_3(this.list, o, 0); +} +; +_.isEmpty = function isEmpty_25(){ + return this.list.array.length == 0; +} +; +_.iterator_0 = function iterator_66(){ + return unmodifiableIterator(new ArrayList$1(this.list)); +} +; +_.listIterator_0 = function listIterator_15(){ + throw toJs(new UnsupportedOperationException); +} +; +_.listIterator_1 = function listIterator_16(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_2 = function remove_90(index_0){ + ++this.modCount; + return $remove_11(this.list, index_0); +} +; +_.remove_1 = function remove_91(o){ + return $remove_29(this, o); +} +; +_.set_2 = function set_20(index_0, element){ + ++this.modCount; + return $set_1(this.list, index_0, element); +} +; +_.size_1 = function size_64(){ + return this.list.array.length; +} +; +_.subList = function subList_9(fromIndex, toIndex){ + return new AbstractList$SubList(this.list, fromIndex, toIndex); +} +; +_.toArray = function toArray_23(){ + return $toArray_1(this.list); +} +; +_.toArray_0 = function toArray_24(a){ + return $toArray_2(this.list, a); +} +; +_.modCount = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$ChangeAwareArrayList_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/ChangeAwareArrayList', 795); +function $create_2(this$static, graph){ + $add_3(graph.nodes, this$static.node); + return this$static.node; +} + +function $origin_0(this$static, origin_0){ + this$static.node.origin_0 = origin_0; + return this$static; +} + +function NNode$NNodeBuilder(){ + this.node = new NNode; +} + +defineClass(269, 1, {}, NNode$NNodeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$NNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/NNodeBuilder', 269); +function $balance(this$static, filling){ + var i, newLayer, node, node$iterator, range; + range = null; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + if (node.incomingEdges.list.array.length == node.outgoingEdges.list.array.length) { + newLayer = node.layer; + range = $minimalSpan(node); + for (i = node.layer - castTo(range.first, 19).value_0 + 1; i < node.layer + castTo(range.second, 19).value_0; i++) { + filling[i] < filling[newLayer] && (newLayer = i); + } + if (filling[newLayer] < filling[node.layer]) { + --filling[node.layer]; + ++filling[newLayer]; + node.layer = newLayer; + } + } + } +} + +function $cutvalues(this$static){ + var edge, edge$iterator, leafs, node, node$iterator, node$iterator0, source, target, toDetermine, treeEdgeCount; + leafs = new ArrayList; + for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 121); + treeEdgeCount = 0; + node.unknownCutvalues.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.treeEdge) { + $add_3(node.unknownCutvalues, edge); + ++treeEdgeCount; + } + } + treeEdgeCount == 1 && (leafs.array[leafs.array.length] = node , true); + } + for (node$iterator = new ArrayList$1(leafs); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + while (node.unknownCutvalues.array.length == 1) { + toDetermine = castTo($next_7(new ArrayList$1(node.unknownCutvalues)), 213); + this$static.cutvalue[toDetermine.internalId] = toDetermine.weight; + source = toDetermine.source; + target = toDetermine.target; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + equals_Ljava_lang_Object__Z__devirtual$(edge, toDetermine) || (edge.treeEdge?source == edge.source || target == edge.target?(this$static.cutvalue[toDetermine.internalId] -= this$static.cutvalue[edge.internalId] - edge.weight):(this$static.cutvalue[toDetermine.internalId] += this$static.cutvalue[edge.internalId] - edge.weight):node == source?edge.source == node?(this$static.cutvalue[toDetermine.internalId] += edge.weight):(this$static.cutvalue[toDetermine.internalId] -= edge.weight):edge.source == node?(this$static.cutvalue[toDetermine.internalId] -= edge.weight):(this$static.cutvalue[toDetermine.internalId] += edge.weight)); + } + $remove_12(source.unknownCutvalues, toDetermine); + $remove_12(target.unknownCutvalues, toDetermine); + source == node?(node = toDetermine.target):(node = toDetermine.source); + } + } +} + +function $enterEdge(this$static, leave){ + var edge, edge$iterator, repSlack, replace, slack, source, target; + if (!leave.treeEdge) { + throw toJs(new IllegalArgumentException_0('The input edge is not a tree edge.')); + } + replace = null; + repSlack = $intern_0; + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + source = edge.source; + target = edge.target; + if ($isInHead(this$static, source, leave) && !$isInHead(this$static, target, leave)) { + slack = target.layer - source.layer - edge.delta; + if (slack < repSlack) { + repSlack = slack; + replace = edge; + } + } + } + return replace; +} + +function $exchange(this$static, leave, enter){ + var delta, node, node$iterator; + if (!leave.treeEdge) { + throw toJs(new IllegalArgumentException_0('Given leave edge is no tree edge.')); + } + if (enter.treeEdge) { + throw toJs(new IllegalArgumentException_0('Given enter edge is a tree edge already.')); + } + leave.treeEdge = false; + $remove_18(this$static.treeEdges, leave); + enter.treeEdge = true; + $add_6(this$static.treeEdges, enter); + delta = enter.target.layer - enter.source.layer - enter.delta; + $isInHead(this$static, enter.target, leave) || (delta = -delta); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + $isInHead(this$static, node, leave) || (node.layer += delta); + } + this$static.postOrder = 1; + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); + $cutvalues(this$static); +} + +function $execute_0(this$static, monitor){ + var e, iter, node, node$iterator, removeSubtrees; + $begin(monitor, 'Network simplex', 1); + if (this$static.graph_0.nodes.array.length < 1) { + $done_0(monitor); + return; + } + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.layer = 0; + } + removeSubtrees = this$static.graph_0.nodes.array.length >= 40; + removeSubtrees && $removeSubtrees(this$static); + $initialize(this$static); + $feasibleTree(this$static); + e = $leaveEdge(this$static); + iter = 0; + while (!!e && iter < this$static.iterationLimit) { + $exchange(this$static, e, $enterEdge(this$static, e)); + e = $leaveEdge(this$static); + ++iter; + } + removeSubtrees && $reattachSubtrees(this$static); + this$static.balance?$balance(this$static, $normalize(this$static)):$normalize(this$static); + this$static.cutvalue = null; + this$static.edges = null; + this$static.treeEdges = null; + this$static.edgeVisited = null; + this$static.lowestPoID = null; + this$static.poID = null; + this$static.sources = null; + this$static.subtreeNodesStack = null; + $done_0(monitor); +} + +function $feasibleTree(this$static){ + var e, node, node$iterator, slack; + $layeringTopologicalNumbering(this$static, this$static.sources); + if (this$static.edges.array.length > 0) { + fill_3(this$static.edgeVisited); + while ($tightTreeDFS(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)) < this$static.graph_0.nodes.array.length) { + e = $minimalSlack(this$static); + slack = e.target.layer - e.source.layer - e.delta; + e.target.treeNode && (slack = -slack); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.treeNode && (node.layer += slack); + } + fill_3(this$static.edgeVisited); + } + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); + $cutvalues(this$static); + } +} + +function $initialize(this$static){ + var counter, edge, edge$iterator, index_0, n, n$iterator, node, node$iterator, numEdges, numNodes, theEdges; + numNodes = this$static.graph_0.nodes.array.length; + for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 121); + n.treeNode = false; + } + this$static.poID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); + this$static.lowestPoID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); + this$static.sources = new ArrayList; + index_0 = 0; + theEdges = new ArrayList; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.internalId = index_0++; + node.incomingEdges.list.array.length == 0 && $add_3(this$static.sources, node); + $addAll_2(theEdges, node.outgoingEdges); + } + counter = 0; + for (edge$iterator = new ArrayList$1(theEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + edge.internalId = counter++; + edge.treeEdge = false; + } + numEdges = theEdges.array.length; + if (this$static.cutvalue == null || this$static.cutvalue.length < numEdges) { + this$static.cutvalue = initUnidimensionalArray(D_classLit, $intern_65, 25, numEdges, 15, 1); + this$static.edgeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, numEdges, 16, 1); + } + else { + fill_3(this$static.edgeVisited); + } + this$static.edges = theEdges; + this$static.treeEdges = new LinkedHashSet_0(capacity_0(this$static.edges.array.length)); + this$static.postOrder = 1; +} + +function $isInHead(this$static, node, edge){ + var source, target; + source = edge.source; + target = edge.target; + if (this$static.lowestPoID[source.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[source.internalId] && this$static.lowestPoID[target.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[target.internalId]) { + if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { + return false; + } + return true; + } + if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { + return true; + } + return false; +} + +function $layeringTopologicalNumbering(this$static, initialRootNodes){ + var edge, edge$iterator, incident, node, node$iterator, roots, target; + incident = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.graph_0.nodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + incident[node.internalId] += node.incomingEdges.list.array.length; + } + roots = newLinkedList(initialRootNodes); + while (roots.size_0 != 0) { + node = castTo(roots.size_0 == 0?null:(checkCriticalElement(roots.size_0 != 0) , $removeNode_0(roots, roots.header.next_0)), 121); + for (edge$iterator = unmodifiableIterator(new ArrayList$1(node.outgoingEdges.list)); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + target = edge.target; + target.layer = $wnd.Math.max(target.layer, node.layer + edge.delta); + --incident[target.internalId]; + incident[target.internalId] == 0 && ($addNode_0(roots, target, roots.tail.prev, roots.tail) , true); + } + } +} + +function $leaveEdge(this$static){ + var edge, edge$iterator; + for (edge$iterator = this$static.treeEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + if (edge.treeEdge && this$static.cutvalue[edge.internalId] < -1.0E-10) { + return edge; + } + } + return null; +} + +function $minimalSlack(this$static){ + var curSlack, edge, edge$iterator, minSlack, minSlackEdge; + minSlack = $intern_0; + minSlackEdge = null; + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.source.treeNode ^ edge.target.treeNode) { + curSlack = edge.target.layer - edge.source.layer - edge.delta; + if (curSlack < minSlack) { + minSlack = curSlack; + minSlackEdge = edge; + } + } + } + return minSlackEdge; +} + +function $minimalSpan(node){ + var currentSpan, edge, edge$iterator, minSpanIn, minSpanOut; + minSpanOut = $intern_0; + minSpanIn = $intern_0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + currentSpan = edge.target.layer - edge.source.layer; + edge.target == node && currentSpan < minSpanIn?(minSpanIn = currentSpan):currentSpan < minSpanOut && (minSpanOut = currentSpan); + } + minSpanIn == $intern_0 && (minSpanIn = -1); + minSpanOut == $intern_0 && (minSpanOut = -1); + return new Pair(valueOf_4(minSpanIn), valueOf_4(minSpanOut)); +} + +function $normalize(this$static){ + var filling, highest, layerID, lowest, node, node$iterator, node$iterator0, nodeCntInLayer, nodeCntInLayer$array, nodeCntInLayer$index, nodeCntInLayer$max; + highest = $intern_42; + lowest = $intern_0; + for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 121); + lowest = $wnd.Math.min(lowest, node.layer); + highest = $wnd.Math.max(highest, node.layer); + } + filling = initUnidimensionalArray(I_classLit, $intern_48, 25, highest - lowest + 1, 15, 1); + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + node.layer -= lowest; + ++filling[node.layer]; + } + layerID = 0; + if (this$static.previousLayeringNodeCounts != null) { + for (nodeCntInLayer$array = this$static.previousLayeringNodeCounts , nodeCntInLayer$index = 0 , nodeCntInLayer$max = nodeCntInLayer$array.length; nodeCntInLayer$index < nodeCntInLayer$max; ++nodeCntInLayer$index) { + nodeCntInLayer = nodeCntInLayer$array[nodeCntInLayer$index]; + filling[layerID++] += nodeCntInLayer; + if (filling.length == layerID) { + break; + } + } + } + return filling; +} + +function $postorderTraversal(this$static, node){ + var edge, edge$iterator, lowest; + lowest = $intern_0; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.treeEdge && !this$static.edgeVisited[edge.internalId]) { + this$static.edgeVisited[edge.internalId] = true; + lowest = $wnd.Math.min(lowest, $postorderTraversal(this$static, $getOther(edge, node))); + } + } + this$static.poID[node.internalId] = this$static.postOrder; + this$static.lowestPoID[node.internalId] = $wnd.Math.min(lowest, this$static.postOrder++); + return this$static.lowestPoID[node.internalId]; +} + +function $reattachSubtrees(this$static){ + var edge, leafy, node, placed; + while (!$isEmpty(this$static.subtreeNodesStack)) { + leafy = castTo($removeFirst(this$static.subtreeNodesStack), 46); + node = castTo(leafy.first, 121); + edge = castTo(leafy.second, 213); + placed = $getOther(edge, node); + if (edge.target == node) { + $add_11(placed.outgoingEdges, edge); + node.layer = placed.layer + edge.delta; + } + else { + $add_11(placed.incomingEdges, edge); + node.layer = placed.layer - edge.delta; + } + $add_3(this$static.graph_0.nodes, node); + } +} + +function $removeSubtrees(this$static){ + var edge, isOutEdge, leafs, leafy, node, node$iterator, other; + this$static.subtreeNodesStack = new ArrayDeque; + leafs = new LinkedList; + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + $getConnectedEdges(node).array.length == 1 && ($addNode_0(leafs, node, leafs.tail.prev, leafs.tail) , true); + } + while (leafs.size_0 != 0) { + node = castTo(leafs.size_0 == 0?null:(checkCriticalElement(leafs.size_0 != 0) , $removeNode_0(leafs, leafs.header.next_0)), 121); + if ($getConnectedEdges(node).array.length == 0) { + continue; + } + edge = castTo($get_11($getConnectedEdges(node), 0), 213); + isOutEdge = node.outgoingEdges.list.array.length > 0; + other = $getOther(edge, node); + isOutEdge?$remove_29(other.incomingEdges, edge):$remove_29(other.outgoingEdges, edge); + $getConnectedEdges(other).array.length == 1 && ($addNode_0(leafs, other, leafs.tail.prev, leafs.tail) , true); + leafy = new Pair(node, edge); + $addFirst(this$static.subtreeNodesStack, leafy); + $remove_12(this$static.graph_0.nodes, node); + } +} + +function $tightTreeDFS(this$static, node){ + var edge, edge$iterator, nodeCount, opposite; + nodeCount = 1; + node.treeNode = true; + opposite = null; + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (!this$static.edgeVisited[edge.internalId]) { + this$static.edgeVisited[edge.internalId] = true; + opposite = $getOther(edge, node); + if (edge.treeEdge) { + nodeCount += $tightTreeDFS(this$static, opposite); + } + else if (!opposite.treeNode && edge.delta == edge.target.layer - edge.source.layer) { + edge.treeEdge = true; + $add_6(this$static.treeEdges, edge); + nodeCount += $tightTreeDFS(this$static, opposite); + } + } + } + return nodeCount; +} + +function $withBalancing(this$static, doBalance){ + this$static.balance = doBalance; + return this$static; +} + +function $withIterationLimit(this$static, limit){ + this$static.iterationLimit = limit; + return this$static; +} + +function $withPreviousLayering(this$static, considerPreviousLayering){ + this$static.previousLayeringNodeCounts = considerPreviousLayering; + return this$static; +} + +function NetworkSimplex(){ +} + +function forGraph(graph){ + var ns; + ns = new NetworkSimplex; + ns.graph_0 = graph; + return ns; +} + +defineClass(1630, 1, {}, NetworkSimplex); +_.balance = false; +_.iterationLimit = $intern_0; +_.postOrder = 0; +var Lorg_eclipse_elk_alg_common_networksimplex_NetworkSimplex_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NetworkSimplex', 1630); +function calculateLabelAndNodeSizes(adapter){ + $forEach_1(adapter.getNodes(), new NodeLabelAndSizeCalculator$lambda$0$Type(adapter)); +} + +function sortPortLists(adapter){ + var node, node$iterator; + for (node$iterator = new ArrayList$1($getNodes(adapter)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 680); + node.sortPortList(); + } +} + +function computeInsideNodeLabelPadding(node, layoutDirection){ + var col, col$array, col$array0, col$index, col$index0, col$max, col$max0, labelCell, labelCellContainer, nodeContext, padding, row, row$array, row$array0, row$index, row$index0, row$max, row$max0; + nodeContext = new NodeContext(node); + createNodeLabelCells(nodeContext, !(layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1)); + labelCellContainer = nodeContext.insideNodeLabelContainer; + padding = new ElkPadding; + for (col$array0 = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , col$index0 = 0 , col$max0 = col$array0.length; col$index0 < col$max0; ++col$index0) { + col = col$array0[col$index0]; + labelCell = $getCell(labelCellContainer, BEGIN, col); + !!labelCell && (padding.top_0 = $wnd.Math.max(padding.top_0, labelCell.getMinimumHeight())); + } + for (col$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , col$index = 0 , col$max = col$array.length; col$index < col$max; ++col$index) { + col = col$array[col$index]; + labelCell = $getCell(labelCellContainer, END, col); + !!labelCell && (padding.bottom = $wnd.Math.max(padding.bottom, labelCell.getMinimumHeight())); + } + for (row$array0 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index0 = 0 , row$max0 = row$array0.length; row$index0 < row$max0; ++row$index0) { + row = row$array0[row$index0]; + labelCell = $getCell(labelCellContainer, row, BEGIN); + !!labelCell && (padding.left = $wnd.Math.max(padding.left, labelCell.getMinimumWidth())); + } + for (row$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + labelCell = $getCell(labelCellContainer, row, END); + !!labelCell && (padding.right = $wnd.Math.max(padding.right, labelCell.getMinimumWidth())); + } + if (padding.top_0 > 0) { + padding.top_0 += labelCellContainer.padding.top_0; + padding.top_0 += labelCellContainer.gap; + } + if (padding.bottom > 0) { + padding.bottom += labelCellContainer.padding.bottom; + padding.bottom += labelCellContainer.gap; + } + if (padding.left > 0) { + padding.left += labelCellContainer.padding.left; + padding.left += labelCellContainer.gap; + } + if (padding.right > 0) { + padding.right += labelCellContainer.padding.right; + padding.right += labelCellContainer.gap; + } + return padding; +} + +function process(graph, node, applyStuff, ignoreInsidePortLabels){ + var horizontalLayoutMode, layoutDirection, minSize, nodeContext, outerNodeLabelsOverhang; + nodeContext = new NodeContext(node); + createPortContexts(nodeContext, ignoreInsidePortLabels); + horizontalLayoutMode = true; + if (!!graph && graph.hasProperty(($clinit_CoreOptions() , DIRECTION_0))) { + layoutDirection = castTo(graph.getProperty(($clinit_CoreOptions() , DIRECTION_0)), 103); + horizontalLayoutMode = layoutDirection == ($clinit_Direction_0() , UNDEFINED_2) || layoutDirection == LEFT_6 || layoutDirection == RIGHT_6; + } + createNodeLabelCellContainers(nodeContext, false); + $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, false, horizontalLayoutMode)); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, ($clinit_ContainerArea() , BEGIN), ($clinit_PortSide() , NORTH_3)); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, END, SOUTH_2); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, BEGIN, WEST_2); + createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, END, EAST_2); + setupNorthOrSouthPortLabelCell(nodeContext, NORTH_3); + setupNorthOrSouthPortLabelCell(nodeContext, SOUTH_2); + setupEastOrWestPortLabelCell(nodeContext, EAST_2); + setupEastOrWestPortLabelCell(nodeContext, WEST_2); + $clinit_NodeLabelAndSizeUtilities(); + minSize = nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE)) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))?getMinimumNodeOrClientAreaSize(nodeContext):null; + !!minSize && $setCenterCellMinimumSize(nodeContext.insideNodeLabelContainer, minSize); + setupNodePaddingForPortsWithOffset(nodeContext); + calculateHorizontalPortPlacementSize(nodeContext); + calculateVerticalPortPlacementSize(nodeContext); + configureCellSystemSizeContributions(nodeContext); + setNodeWidth(nodeContext); + placeHorizontalPorts(nodeContext); + placePortLabels(nodeContext, NORTH_3); + placePortLabels(nodeContext, SOUTH_2); + updateVerticalInsidePortLabelCellPadding(nodeContext); + setNodeHeight(nodeContext); + if (!applyStuff) { + return nodeContext.nodeSize; + } + offsetSouthernPortsByNodeSize(nodeContext); + placeVerticalPorts(nodeContext); + placePortLabels(nodeContext, EAST_2); + placePortLabels(nodeContext, WEST_2); + outerNodeLabelsOverhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); + placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, NORTH_3); + placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, SOUTH_2); + placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, EAST_2); + placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, WEST_2); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$2(nodeContext.nodeLabelCells), 0)), new LabelPlacer$lambda$0$Type); + $forEach_3($filter(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new LabelPlacer$lambda$1$Type), new LabelPlacer$lambda$2$Type); + setNodePadding(nodeContext); + nodeContext.node.setSize(nodeContext.nodeSize); + $forEach_3(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new NodeLabelAndSizeUtilities$lambda$0$Type); + return nodeContext.nodeSize; +} + +function NodeLabelAndSizeCalculator$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1294, 1, $intern_19, NodeLabelAndSizeCalculator$lambda$0$Type); +_.accept = function accept_45(arg0){ + process(this.graph_0, castTo(arg0, 680), true, false); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_NodeLabelAndSizeCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeLabelAndSizeCalculator/lambda$0$Type', 1294); +function $computeLabelBox(labelBox, label_0, incomingEdge, node, port, portLabelSpace, labelSpacing){ + labelBox.x_0 = node.getPosition().x_0; + labelBox.y_0 = node.getPosition().y_0; + if (port) { + labelBox.x_0 += port.getPosition().x_0; + labelBox.y_0 += port.getPosition().y_0; + } + labelBox.width_0 = label_0.getSize().x_0; + labelBox.height = label_0.getSize().y_0; + if (!port) { + incomingEdge?(labelBox.x_0 -= labelSpacing + label_0.getSize().x_0):(labelBox.x_0 += node.getSize().x_0 + labelSpacing); + } + else { + switch (port.getSide().ordinal) { + case 0: + case 2: + labelBox.x_0 += port.getSize().x_0 + labelSpacing + portLabelSpace.x_0 + labelSpacing; + break; + case 4: + labelBox.x_0 -= labelSpacing + portLabelSpace.x_0 + labelSpacing + label_0.getSize().x_0; + break; + case 1: + labelBox.x_0 += port.getSize().x_0 + labelSpacing; + labelBox.y_0 -= labelSpacing + portLabelSpace.y_0 + labelSpacing + label_0.getSize().y_0; + break; + case 3: + labelBox.x_0 += port.getSize().x_0 + labelSpacing; + labelBox.y_0 += port.getSize().y_0 + labelSpacing + portLabelSpace.y_0 + labelSpacing; + } + } +} + +function $excludeEdgeHeadTailLabels(this$static){ + this$static.includeEdgeHeadTailLabels = false; + return this$static; +} + +function $process(this$static){ + var node, node$iterator, spacing; + spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); + for (node$iterator = new ArrayList$1(this$static.adapter.getNodes()); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 680); + $processNode_0(this$static, node, spacing); + } +} + +function $processEdgeHeadTailLabels(boundingBox, outgoingEdges, incomingEdges, node, port, portLabelSpace, labelSpacing){ + var edge, edge$iterator, edge$iterator0, label_0, label$iterator, labelBox; + labelBox = new ElkRectangle; + for (edge$iterator0 = outgoingEdges.iterator_0(); edge$iterator0.hasNext_0();) { + edge = castTo(edge$iterator0.next_1(), 839); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL))) { + $computeLabelBox(labelBox, label_0, false, node, port, portLabelSpace, labelSpacing); + $union(boundingBox, labelBox); + } + } + } + for (edge$iterator = incomingEdges.iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 839); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { + $computeLabelBox(labelBox, label_0, true, node, port, portLabelSpace, labelSpacing); + $union(boundingBox, labelBox); + } + } + } +} + +function $processNode(this$static, node){ + var spacing; + spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); + $processNode_0(this$static, node, spacing); +} + +function $processNode_0(this$static, node, labelSpacing){ + var boundingBox, elementBox, label_0, label$iterator, margin, port, port$iterator, portX, portY, requiredPortLabelSpace; + boundingBox = new ElkRectangle_0(node.getPosition().x_0, node.getPosition().y_0, node.getSize().x_0, node.getSize().y_0); + elementBox = new ElkRectangle; + if (this$static.includeLabels) { + for (label$iterator = new ArrayList$1(node.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + elementBox.x_0 = label_0.getPosition().x_0 + node.getPosition().x_0; + elementBox.y_0 = label_0.getPosition().y_0 + node.getPosition().y_0; + elementBox.width_0 = label_0.getSize().x_0; + elementBox.height = label_0.getSize().y_0; + $union(boundingBox, elementBox); + } + } + for (port$iterator = new ArrayList$1(node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 838); + portX = port.getPosition().x_0 + node.getPosition().x_0; + portY = port.getPosition().y_0 + node.getPosition().y_0; + if (this$static.includePorts) { + elementBox.x_0 = portX; + elementBox.y_0 = portY; + elementBox.width_0 = port.getSize().x_0; + elementBox.height = port.getSize().y_0; + $union(boundingBox, elementBox); + } + if (this$static.includePortLabels) { + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + elementBox.x_0 = label_0.getPosition().x_0 + portX; + elementBox.y_0 = label_0.getPosition().y_0 + portY; + elementBox.width_0 = label_0.getSize().x_0; + elementBox.height = label_0.getSize().y_0; + $union(boundingBox, elementBox); + } + } + if (this$static.includeEdgeHeadTailLabels) { + requiredPortLabelSpace = new KVector_1(-labelSpacing, -labelSpacing); + if (castTo(node.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).contains(($clinit_PortLabelPlacement() , OUTSIDE_0))) { + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + requiredPortLabelSpace.x_0 += label_0.getSize().x_0 + labelSpacing; + requiredPortLabelSpace.y_0 += label_0.getSize().y_0 + labelSpacing; + } + } + requiredPortLabelSpace.x_0 = $wnd.Math.max(requiredPortLabelSpace.x_0, 0); + requiredPortLabelSpace.y_0 = $wnd.Math.max(requiredPortLabelSpace.y_0, 0); + $processEdgeHeadTailLabels(boundingBox, port.getOutgoingEdges(), port.getIncomingEdges(), node, port, requiredPortLabelSpace, labelSpacing); + } + } + this$static.includeEdgeHeadTailLabels && $processEdgeHeadTailLabels(boundingBox, node.getOutgoingEdges(), node.getIncomingEdges(), node, null, null, labelSpacing); + margin = new ElkMargin_2(node.getMargin()); + margin.top_0 = $wnd.Math.max(0, node.getPosition().y_0 - boundingBox.y_0); + margin.bottom = $wnd.Math.max(0, boundingBox.y_0 + boundingBox.height - (node.getPosition().y_0 + node.getSize().y_0)); + margin.left = $wnd.Math.max(0, node.getPosition().x_0 - boundingBox.x_0); + margin.right = $wnd.Math.max(0, boundingBox.x_0 + boundingBox.width_0 - (node.getPosition().x_0 + node.getSize().x_0)); + node.setMargin(margin); +} + +function NodeMarginCalculator(adapter){ + this.adapter = adapter; +} + +defineClass(558, 1, {}, NodeMarginCalculator); +_.includeEdgeHeadTailLabels = true; +_.includeLabels = true; +_.includePortLabels = true; +_.includePorts = true; +var Lorg_eclipse_elk_alg_common_nodespacing_NodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeMarginCalculator', 558); +function $setContributesToMinimumHeight(this$static, contributesToMinimumHeight){ + this$static.contributesToMinimumHeight = contributesToMinimumHeight; +} + +function Cell(){ + this.padding = new ElkPadding; + this.cellRectangle = new ElkRectangle; +} + +defineClass(212, 1, {212:1}); +_.contributesToMinimumHeight = false; +_.contributesToMinimumWidth = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'Cell', 212); +function $getMinimumHeight(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; +} + +function AtomicCell(){ + Cell.call(this); + this.minimumContentAreaSize = new KVector; +} + +defineClass(124, 212, {124:1, 212:1}, AtomicCell); +_.getMinimumHeight = function getMinimumHeight(){ + return $getMinimumHeight(this); +} +; +_.getMinimumWidth = function getMinimumWidth(){ + var padding; + padding = this.padding; + return this.minimumContentAreaSize.x_0 + padding.left + padding.right; +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_AtomicCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'AtomicCell', 124); +function $clinit_ContainerArea(){ + $clinit_ContainerArea = emptyMethod; + BEGIN = new ContainerArea('BEGIN', 0); + CENTER = new ContainerArea('CENTER', 1); + END = new ContainerArea('END', 2); +} + +function ContainerArea(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_17(name_0){ + $clinit_ContainerArea(); + return valueOf(($clinit_ContainerArea$Map() , $MAP_5), name_0); +} + +function values_23(){ + $clinit_ContainerArea(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]); +} + +defineClass(232, 22, {3:1, 35:1, 22:1, 232:1}, ContainerArea); +var BEGIN, CENTER, END; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerArea', 232, Ljava_lang_Enum_2_classLit, values_23, valueOf_17); +function $clinit_ContainerArea$Map(){ + $clinit_ContainerArea$Map = emptyMethod; + $MAP_5 = createValueOfMap(($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]))); +} + +var $MAP_5; +function $applyHorizontalLayout(cell, x_0, width_0){ + var cellRect; + if (cell) { + cellRect = cell.cellRectangle; + cellRect.x_0 = x_0; + cellRect.width_0 = width_0; + } +} + +function $applyVerticalLayout(cell, y_0, height){ + var cellRect; + if (cell) { + cellRect = cell.cellRectangle; + cellRect.y_0 = y_0; + cellRect.height = height; + } +} + +function ContainerCell(){ + Cell.call(this); +} + +function minHeightOfCell(cell, respectContributionFlag){ + if (!cell) { + return 0; + } + if (respectContributionFlag && !cell.contributesToMinimumHeight) { + return 0; + } + if (instanceOf(cell, 124)) { + if (castTo(cell, 124).minimumContentAreaSize.y_0 == 0) { + return 0; + } + } + return cell.getMinimumHeight(); +} + +function minWidthOfCell(cell, respectContributionFlag){ + if (!cell) { + return 0; + } + if (respectContributionFlag && !cell.contributesToMinimumWidth) { + return 0; + } + if (instanceOf(cell, 124)) { + if (castTo(cell, 124).minimumContentAreaSize.x_0 == 0) { + return 0; + } + } + return cell.getMinimumWidth(); +} + +defineClass(326, 212, $intern_92); +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerCell', 326); +function $clinit_GridContainerCell(){ + $clinit_GridContainerCell = emptyMethod; + ROWS = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length; + COLUMNS = ROWS; +} + +function $applyHeightToRow(this$static, row, y_0, rowHeights){ + var column; + for (column = 0; column < COLUMNS; column++) { + $applyVerticalLayout(this$static.cells_0[row.ordinal][column], y_0, rowHeights[row.ordinal]); + } +} + +function $applyWidthToColumn(this$static, column, x_0, colWidths){ + var row; + for (row = 0; row < ROWS; row++) { + $applyHorizontalLayout(this$static.cells_0[row][column.ordinal], x_0, colWidths[column.ordinal]); + } +} + +function $applyWidthsToRow(this$static, row, colWidths){ + var cellPadding, cellRectangle, centerWidth, freeContentAreaWidth; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + $applyWidthToColumn(this$static, ($clinit_ContainerArea() , BEGIN), cellRectangle.x_0 + cellPadding.left, colWidths); + $applyWidthToColumn(this$static, END, cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - colWidths[2], colWidths); + freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + if (colWidths[0] > 0) { + colWidths[0] += this$static.gap; + freeContentAreaWidth -= colWidths[0]; + } + if (colWidths[2] > 0) { + colWidths[2] += this$static.gap; + freeContentAreaWidth -= colWidths[2]; + } + centerWidth = $wnd.Math.max(0, freeContentAreaWidth); + colWidths[1] = $wnd.Math.max(colWidths[1], freeContentAreaWidth); + $applyWidthToColumn(this$static, CENTER, cellRectangle.x_0 + cellPadding.left + colWidths[0] - (colWidths[1] - freeContentAreaWidth) / 2, colWidths); + if (row == CENTER) { + this$static.centerCellRect.width_0 = centerWidth; + this$static.centerCellRect.x_0 = cellRectangle.x_0 + cellPadding.left + (centerWidth - freeContentAreaWidth) / 2; + } +} + +function $getCell(this$static, row, col){ + return this$static.cells_0[row.ordinal][col.ordinal]; +} + +function $minColumnWidths(this$static, row, respectContributionFlag){ + var colWidths; + colWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minWidthOfColumn(this$static, ($clinit_ContainerArea() , BEGIN), row, respectContributionFlag), $minWidthOfColumn(this$static, CENTER, row, respectContributionFlag), $minWidthOfColumn(this$static, END, row, respectContributionFlag)]); + if (this$static.symmetrical) { + colWidths[0] = $wnd.Math.max(colWidths[0], colWidths[2]); + colWidths[2] = colWidths[0]; + } + return colWidths; +} + +function $minHeightOfRow(this$static, row, respectContributionFlag){ + var column, maxMinHeight; + maxMinHeight = 0; + for (column = 0; column < COLUMNS; column++) { + maxMinHeight = $wnd.Math.max(maxMinHeight, minHeightOfCell(this$static.cells_0[row.ordinal][column], respectContributionFlag)); + } + row == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinHeight = $wnd.Math.max(maxMinHeight, this$static.centerCellMinimumSize.y_0)); + return maxMinHeight; +} + +function $minRowHeights(this$static, respectContributionFlag){ + var rowHeights; + rowHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minHeightOfRow(this$static, ($clinit_ContainerArea() , BEGIN), respectContributionFlag), $minHeightOfRow(this$static, CENTER, respectContributionFlag), $minHeightOfRow(this$static, END, respectContributionFlag)]); + if (this$static.symmetrical) { + rowHeights[0] = $wnd.Math.max(rowHeights[0], rowHeights[2]); + rowHeights[2] = rowHeights[0]; + } + return rowHeights; +} + +function $minWidthOfColumn(this$static, column, row, respectContributionFlag){ + var maxMinWidth, rowIndex; + maxMinWidth = 0; + if (!row) { + for (rowIndex = 0; rowIndex < ROWS; rowIndex++) { + maxMinWidth = $wnd.Math.max(maxMinWidth, minWidthOfCell(this$static.cells_0[rowIndex][column.ordinal], respectContributionFlag)); + } + } + else { + maxMinWidth = minWidthOfCell(this$static.cells_0[row.ordinal][column.ordinal], respectContributionFlag); + } + column == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinWidth = $wnd.Math.max(maxMinWidth, this$static.centerCellMinimumSize.x_0)); + return maxMinWidth; +} + +function $setCell(this$static, row, col, cell){ + setCheck(this$static.cells_0[row.ordinal], col.ordinal, cell); +} + +function $setCenterCellMinimumSize(this$static, minimumSize){ + this$static.centerCellMinimumSize = new KVector_2(minimumSize); +} + +function $sumWithGaps(this$static, values){ + var activeComponents, sum, val, val$array, val$index, val$max; + sum = 0; + activeComponents = 0; + for (val$array = values , val$index = 0 , val$max = val$array.length; val$index < val$max; ++val$index) { + val = val$array[val$index]; + if (val > 0) { + sum += val; + ++activeComponents; + } + } + activeComponents > 1 && (sum += this$static.gap * (activeComponents - 1)); + return sum; +} + +function GridContainerCell(tabular, symmetrical, gap){ + $clinit_GridContainerCell(); + ContainerCell.call(this); + this.cells_0 = initMultidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, [$intern_16, $intern_93], [595, 212], 0, [ROWS, COLUMNS], 2); + this.centerCellRect = new ElkRectangle; + this.tabular = tabular; + this.symmetrical = symmetrical; + this.gap = gap; +} + +defineClass(1473, 326, $intern_92, GridContainerCell); +_.getMinimumHeight = function getMinimumHeight_0(){ + var height; + height = 0; + this.onlyCenterCellContributesToMinimumSize?this.centerCellMinimumSize?(height = this.centerCellMinimumSize.y_0):!!this.cells_0[1][1] && (height = this.cells_0[1][1].getMinimumHeight()):(height = $sumWithGaps(this, $minRowHeights(this, true))); + return height > 0?height + this.padding.top_0 + this.padding.bottom:0; +} +; +_.getMinimumWidth = function getMinimumWidth_0(){ + var area, area$array, area$index, area$max, width_0; + width_0 = 0; + if (this.onlyCenterCellContributesToMinimumSize) { + this.centerCellMinimumSize?(width_0 = this.centerCellMinimumSize.x_0):!!this.cells_0[1][1] && (width_0 = this.cells_0[1][1].getMinimumWidth()); + } + else if (this.tabular) { + width_0 = $sumWithGaps(this, $minColumnWidths(this, null, true)); + } + else { + for (area$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { + area = area$array[area$index]; + width_0 = $wnd.Math.max(width_0, $sumWithGaps(this, $minColumnWidths(this, area, true))); + } + } + return width_0 > 0?width_0 + this.padding.left + this.padding.right:0; +} +; +_.layoutChildrenHorizontally = function layoutChildrenHorizontally(){ + var colWidths, row, row$array, row$index, row$max; + if (this.tabular) { + colWidths = $minColumnWidths(this, null, false); + for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + $applyWidthsToRow(this, row, colWidths); + } + } + else { + for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { + row = row$array[row$index]; + colWidths = $minColumnWidths(this, row, false); + $applyWidthsToRow(this, row, colWidths); + } + } +} +; +_.layoutChildrenVertically = function layoutChildrenVertically(){ + var cellPadding, cellRectangle, freeContentAreaHeight, rowHeights; + cellRectangle = this.cellRectangle; + cellPadding = this.padding; + rowHeights = $minRowHeights(this, false); + $applyHeightToRow(this, ($clinit_ContainerArea() , BEGIN), cellRectangle.y_0 + cellPadding.top_0, rowHeights); + $applyHeightToRow(this, END, cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - rowHeights[2], rowHeights); + freeContentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + if (rowHeights[0] > 0) { + rowHeights[0] += this.gap; + freeContentAreaHeight -= rowHeights[0]; + } + if (rowHeights[2] > 0) { + rowHeights[2] += this.gap; + freeContentAreaHeight -= rowHeights[2]; + } + this.centerCellRect.height = $wnd.Math.max(0, freeContentAreaHeight); + this.centerCellRect.y_0 = cellRectangle.y_0 + cellPadding.top_0 + (this.centerCellRect.height - freeContentAreaHeight) / 2; + rowHeights[1] = $wnd.Math.max(rowHeights[1], freeContentAreaHeight); + $applyHeightToRow(this, CENTER, cellRectangle.y_0 + cellPadding.top_0 + rowHeights[0] - (rowHeights[1] - freeContentAreaHeight) / 2, rowHeights); +} +; +_.centerCellMinimumSize = null; +_.gap = 0; +_.onlyCenterCellContributesToMinimumSize = false; +_.symmetrical = false; +_.tabular = false; +var COLUMNS = 0, ROWS = 0; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_GridContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'GridContainerCell', 1473); +function $clinit_HorizontalLabelAlignment(){ + $clinit_HorizontalLabelAlignment = emptyMethod; + LEFT = new HorizontalLabelAlignment('LEFT', 0); + CENTER_0 = new HorizontalLabelAlignment('CENTER', 1); + RIGHT = new HorizontalLabelAlignment('RIGHT', 2); +} + +function HorizontalLabelAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_18(name_0){ + $clinit_HorizontalLabelAlignment(); + return valueOf(($clinit_HorizontalLabelAlignment$Map() , $MAP_6), name_0); +} + +function values_24(){ + $clinit_HorizontalLabelAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]); +} + +defineClass(461, 22, {3:1, 35:1, 22:1, 461:1}, HorizontalLabelAlignment); +var CENTER_0, LEFT, RIGHT; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'HorizontalLabelAlignment', 461, Ljava_lang_Enum_2_classLit, values_24, valueOf_18); +function $clinit_HorizontalLabelAlignment$Map(){ + $clinit_HorizontalLabelAlignment$Map = emptyMethod; + $MAP_6 = createValueOfMap(($clinit_HorizontalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]))); +} + +var $MAP_6; +function $$init_5(this$static){ + this$static.horizontalAlignment = ($clinit_HorizontalLabelAlignment() , CENTER_0); + this$static.verticalAlignment = ($clinit_VerticalLabelAlignment() , CENTER_1); + this$static.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this$static.minimumContentAreaSize = new KVector; +} + +function $addLabel(this$static, label_0){ + var labelSize; + $add_3(this$static.labels, label_0); + labelSize = label_0.getSize(); + if (this$static.horizontalLayoutMode) { + this$static.minimumContentAreaSize.x_0 = $wnd.Math.max(this$static.minimumContentAreaSize.x_0, labelSize.x_0); + this$static.minimumContentAreaSize.y_0 += labelSize.y_0; + this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.y_0 += this$static.gap); + } + else { + this$static.minimumContentAreaSize.x_0 += labelSize.x_0; + this$static.minimumContentAreaSize.y_0 = $wnd.Math.max(this$static.minimumContentAreaSize.y_0, labelSize.y_0); + this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.x_0 += this$static.gap); + } +} + +function $applyHorizontalModeLabelLayout(this$static){ + var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, yPos; + cellRect = this$static.cellRectangle; + cellPadding = this$static.padding; + yPos = cellRect.y_0; + this$static.verticalAlignment == ($clinit_VerticalLabelAlignment() , CENTER_1)?(yPos += (cellRect.height - this$static.minimumContentAreaSize.y_0) / 2):this$static.verticalAlignment == BOTTOM && (yPos += cellRect.height - this$static.minimumContentAreaSize.y_0); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + labelSize = label_0.getSize(); + labelPos = new KVector; + labelPos.y_0 = yPos; + yPos += labelSize.y_0 + this$static.gap; + switch (this$static.horizontalAlignment.ordinal) { + case 0: + labelPos.x_0 = cellRect.x_0 + cellPadding.left; + break; + case 1: + labelPos.x_0 = cellRect.x_0 + cellPadding.left + (cellRect.width_0 - labelSize.x_0) / 2; + break; + case 2: + labelPos.x_0 = cellRect.x_0 + cellRect.width_0 - cellPadding.right - labelSize.x_0; + } + label_0.setPosition(labelPos); + } +} + +function $applyLabelLayout(this$static){ + this$static.horizontalLayoutMode?$applyHorizontalModeLabelLayout(this$static):$applyVerticalModeLabelLayout(this$static); +} + +function $applyVerticalModeLabelLayout(this$static){ + var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, xPos; + cellRect = this$static.cellRectangle; + cellPadding = this$static.padding; + xPos = cellRect.x_0; + this$static.horizontalAlignment == ($clinit_HorizontalLabelAlignment() , CENTER_0)?(xPos += (cellRect.width_0 - this$static.minimumContentAreaSize.x_0) / 2):this$static.horizontalAlignment == RIGHT && (xPos += cellRect.width_0 - this$static.minimumContentAreaSize.x_0); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + labelSize = label_0.getSize(); + labelPos = new KVector; + labelPos.x_0 = xPos; + xPos += labelSize.x_0 + this$static.gap; + switch (this$static.verticalAlignment.ordinal) { + case 0: + labelPos.y_0 = cellRect.y_0 + cellPadding.top_0; + break; + case 1: + labelPos.y_0 = cellRect.y_0 + cellPadding.top_0 + (cellRect.height - labelSize.y_0) / 2; + break; + case 2: + labelPos.y_0 = cellRect.y_0 + cellRect.height - cellPadding.bottom - labelSize.y_0; + } + label_0.setPosition(labelPos); + } +} + +function $getMinimumHeight_0(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; +} + +function $getMinimumWidth(this$static){ + var padding; + padding = this$static.padding; + return this$static.minimumContentAreaSize.x_0 + padding.left + padding.right; +} + +function $setHorizontalAlignment(this$static, newHorizontalAlignment){ + requireNonNull(newHorizontalAlignment, 'Horizontal alignment cannot be null'); + this$static.horizontalAlignment = newHorizontalAlignment; + return this$static; +} + +function $setVerticalAlignment(this$static, newVerticalAlignment){ + requireNonNull(newVerticalAlignment, 'Vertical alignment cannot be null'); + this$static.verticalAlignment = newVerticalAlignment; + return this$static; +} + +function LabelCell(gap){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = true; +} + +function LabelCell_0(gap, nodeLabelLocation, horizontalLayoutMode){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; + this.horizontalAlignment = nodeLabelLocation.horizontalAlignment; + this.verticalAlignment = nodeLabelLocation.verticalAlignment; +} + +function LabelCell_1(gap, horizontalLayoutMode){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; +} + +defineClass(306, 212, {212:1, 306:1}, LabelCell, LabelCell_0, LabelCell_1); +_.getMinimumHeight = function getMinimumHeight_1(){ + return $getMinimumHeight_0(this); +} +; +_.getMinimumWidth = function getMinimumWidth_1(){ + return $getMinimumWidth(this); +} +; +_.gap = 0; +_.horizontalLayoutMode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'LabelCell', 306); +function $getMinimumHeight_1(this$static){ + var activeCells, cellHeight, cellHeight$array, cellHeight$index, cellHeight$max, cellHeights, height; + height = 0; + if (this$static.containerMode == 0) { + cellHeights = $minCellHeights(this$static, true); + activeCells = 0; + for (cellHeight$array = cellHeights , cellHeight$index = 0 , cellHeight$max = cellHeight$array.length; cellHeight$index < cellHeight$max; ++cellHeight$index) { + cellHeight = cellHeight$array[cellHeight$index]; + if (cellHeight > 0) { + height += cellHeight; + ++activeCells; + } + } + activeCells > 1 && (height += this$static.gap * (activeCells - 1)); + } + else { + height = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$2$Type), new StripContainerCell$lambda$3$Type))); + } + return height > 0?height + this$static.padding.top_0 + this$static.padding.bottom:0; +} + +function $getMinimumWidth_0(this$static){ + var activeCells, cellWidth, cellWidth$array, cellWidth$index, cellWidth$max, cellWidths, width_0; + width_0 = 0; + if (this$static.containerMode == 0) { + width_0 = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$0$Type), new StripContainerCell$lambda$1$Type))); + } + else { + cellWidths = $minCellWidths(this$static, true); + activeCells = 0; + for (cellWidth$array = cellWidths , cellWidth$index = 0 , cellWidth$max = cellWidth$array.length; cellWidth$index < cellWidth$max; ++cellWidth$index) { + cellWidth = cellWidth$array[cellWidth$index]; + if (cellWidth > 0) { + width_0 += cellWidth; + ++activeCells; + } + } + activeCells > 1 && (width_0 += this$static.gap * (activeCells - 1)); + } + return width_0 > 0?width_0 + this$static.padding.left + this$static.padding.right:0; +} + +function $layoutChildrenHorizontally(this$static){ + var cellPadding, cellRectangle, cellWidths, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, freeContentAreaWidth, width_0, xPos; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + if (this$static.containerMode == 0) { + xPos = cellRectangle.x_0 + cellPadding.left; + width_0 = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { + childCell = childCell$array0[childCell$index0]; + $applyHorizontalLayout(childCell, xPos, width_0); + } + } + else { + cellWidths = $minCellWidths(this$static, false); + $applyHorizontalLayout(this$static.cells_0[0], cellRectangle.x_0 + cellPadding.left, cellWidths[0]); + $applyHorizontalLayout(this$static.cells_0[2], cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - cellWidths[2], cellWidths[2]); + freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; + if (cellWidths[0] > 0) { + freeContentAreaWidth -= cellWidths[0] + this$static.gap; + cellWidths[0] += this$static.gap; + } + cellWidths[2] > 0 && (freeContentAreaWidth -= cellWidths[2] + this$static.gap); + cellWidths[1] = $wnd.Math.max(cellWidths[1], freeContentAreaWidth); + $applyHorizontalLayout(this$static.cells_0[1], cellRectangle.x_0 + cellPadding.left + cellWidths[0] - (cellWidths[1] - freeContentAreaWidth) / 2, cellWidths[1]); + } + for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { + childCell = childCell$array[childCell$index]; + instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenHorizontally(); + } +} + +function $layoutChildrenVertically(this$static){ + var cellHeights, cellPadding, cellRectangle, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, contentAreaFreeHeight, contentAreaHeight, height, yPos; + cellRectangle = this$static.cellRectangle; + cellPadding = this$static.padding; + if (this$static.containerMode == 0) { + cellHeights = $minCellHeights(this$static, false); + $applyVerticalLayout(this$static.cells_0[0], cellRectangle.y_0 + cellPadding.top_0, cellHeights[0]); + $applyVerticalLayout(this$static.cells_0[2], cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - cellHeights[2], cellHeights[2]); + contentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + contentAreaFreeHeight = contentAreaHeight; + if (cellHeights[0] > 0) { + cellHeights[0] += this$static.gap; + contentAreaFreeHeight -= cellHeights[0]; + } + cellHeights[2] > 0 && (contentAreaFreeHeight -= cellHeights[2] + this$static.gap); + cellHeights[1] = $wnd.Math.max(cellHeights[1], contentAreaFreeHeight); + $applyVerticalLayout(this$static.cells_0[1], cellRectangle.y_0 + cellPadding.top_0 + cellHeights[0] - (cellHeights[1] - contentAreaFreeHeight) / 2, cellHeights[1]); + } + else { + yPos = cellRectangle.y_0 + cellPadding.top_0; + height = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; + for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { + childCell = childCell$array0[childCell$index0]; + $applyVerticalLayout(childCell, yPos, height); + } + } + for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { + childCell = childCell$array[childCell$index]; + instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenVertically(); + } +} + +function $minCellHeights(this$static, respectContributionFlag){ + var cellHeights; + cellHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minHeightOfCell(this$static.cells_0[0], respectContributionFlag), minHeightOfCell(this$static.cells_0[1], respectContributionFlag), minHeightOfCell(this$static.cells_0[2], respectContributionFlag)]); + if (this$static.symmetrical) { + cellHeights[0] = $wnd.Math.max(cellHeights[0], cellHeights[2]); + cellHeights[2] = cellHeights[0]; + } + return cellHeights; +} + +function $minCellWidths(this$static, respectContributionFlag){ + var cellWidths; + cellWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minWidthOfCell(this$static.cells_0[0], respectContributionFlag), minWidthOfCell(this$static.cells_0[1], respectContributionFlag), minWidthOfCell(this$static.cells_0[2], respectContributionFlag)]); + if (this$static.symmetrical) { + cellWidths[0] = $wnd.Math.max(cellWidths[0], cellWidths[2]); + cellWidths[2] = cellWidths[0]; + } + return cellWidths; +} + +function $setCell_0(this$static, area, cell){ + this$static.cells_0[area.ordinal] = cell; +} + +function StripContainerCell(mode, symmetrical, gap){ + ContainerCell.call(this); + this.cells_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, $intern_93, 212, ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length, 0, 1); + this.containerMode = mode; + this.symmetrical = symmetrical; + this.gap = gap; +} + +function lambda$0_9(cell_0){ + return !!cell_0 && cell_0.contributesToMinimumWidth; +} + +function lambda$2(cell_0){ + return !!cell_0 && cell_0.contributesToMinimumHeight; +} + +defineClass(244, 326, {212:1, 326:1, 244:1}, StripContainerCell); +_.getMinimumHeight = function getMinimumHeight_2(){ + return $getMinimumHeight_1(this); +} +; +_.getMinimumWidth = function getMinimumWidth_2(){ + return $getMinimumWidth_0(this); +} +; +_.layoutChildrenHorizontally = function layoutChildrenHorizontally_0(){ + $layoutChildrenHorizontally(this); +} +; +_.layoutChildrenVertically = function layoutChildrenVertically_0(){ + $layoutChildrenVertically(this); +} +; +_.containerMode = 0; +_.gap = 0; +_.symmetrical = false; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell', 244); +function StripContainerCell$lambda$0$Type(){ +} + +defineClass(1626, 1, $intern_39, StripContainerCell$lambda$0$Type); +_.test_0 = function test_7(arg0){ + return lambda$0_9(castTo(arg0, 212)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$0$Type', 1626); +function StripContainerCell$lambda$1$Type(){ +} + +defineClass(1627, 1, {}, StripContainerCell$lambda$1$Type); +_.applyAsDouble = function applyAsDouble(arg0){ + return castTo(arg0, 212).getMinimumWidth(); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$1$Type', 1627); +function StripContainerCell$lambda$2$Type(){ +} + +defineClass(1628, 1, $intern_39, StripContainerCell$lambda$2$Type); +_.test_0 = function test_8(arg0){ + return lambda$2(castTo(arg0, 212)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$2$Type', 1628); +function StripContainerCell$lambda$3$Type(){ +} + +defineClass(1629, 1, {}, StripContainerCell$lambda$3$Type); +_.applyAsDouble = function applyAsDouble_0(arg0){ + return castTo(arg0, 212).getMinimumHeight(); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$3$Type', 1629); +function $clinit_VerticalLabelAlignment(){ + $clinit_VerticalLabelAlignment = emptyMethod; + TOP = new VerticalLabelAlignment('TOP', 0); + CENTER_1 = new VerticalLabelAlignment('CENTER', 1); + BOTTOM = new VerticalLabelAlignment('BOTTOM', 2); +} + +function VerticalLabelAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_19(name_0){ + $clinit_VerticalLabelAlignment(); + return valueOf(($clinit_VerticalLabelAlignment$Map() , $MAP_7), name_0); +} + +function values_25(){ + $clinit_VerticalLabelAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]); +} + +defineClass(462, 22, {3:1, 35:1, 22:1, 462:1}, VerticalLabelAlignment); +var BOTTOM, CENTER_1, TOP; +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'VerticalLabelAlignment', 462, Ljava_lang_Enum_2_classLit, values_25, valueOf_19); +function $clinit_VerticalLabelAlignment$Map(){ + $clinit_VerticalLabelAlignment$Map = emptyMethod; + $MAP_7 = createValueOfMap(($clinit_VerticalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]))); +} + +var $MAP_7; +function $getPortAlignment(this$static, portSide){ + var alignment; + alignment = null; + switch (portSide.ordinal) { + case 1: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_NORTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_NORTH_0), 249)); + break; + case 3: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_SOUTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_SOUTH_0), 249)); + break; + case 2: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_EAST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_EAST_0), 249)); + break; + case 4: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_WEST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_WEST_0), 249)); + } + !alignment && (alignment = castTo(this$static.node.getProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_DEFAULT)), 249)); + return alignment; +} + +function NodeContext(node){ + var symmetry; + this.portContexts = create(new NodeContext$0methodref$comparePortSides$Type, new NodeContext$1methodref$comparePortContexts$Type); + this.insidePortLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); + this.outsideNodeLabelContainers = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); + this.nodeLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit), 290)); + this.node = node; + this.nodeSize = new KVector_2(node.getSize()); + this.treatAsCompoundNode = node.isCompoundNode() || $booleanValue(castToBoolean(node.getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); + this.sizeConstraints = castTo(node.getProperty(($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + this.sizeOptions = castTo(node.getProperty(NODE_SIZE_OPTIONS_6), 21); + this.portConstraints = castTo(node.getProperty(PORT_CONSTRAINTS_1), 98); + this.portLabelsPlacement = castTo(node.getProperty(PORT_LABELS_PLACEMENT_5), 21); + if (!isValid_1(this.portLabelsPlacement)) { + throw toJs(new UnsupportedConfigurationException_0('Invalid port label placement: ' + this.portLabelsPlacement)); + } + this.portLabelsTreatAsGroup = $booleanValue(castToBoolean(node.getProperty(PORT_LABELS_TREAT_AS_GROUP_0))); + this.nodeLabelPlacement = castTo(node.getProperty(NODE_LABELS_PLACEMENT_5), 21); + if (!isValid_0(this.nodeLabelPlacement)) { + throw toJs(new UnsupportedConfigurationException_0('Invalid node label placement: ' + this.nodeLabelPlacement)); + } + this.nodeLabelsPadding = castTo(getIndividualOrInherited_0(node, NODE_LABELS_PADDING_0), 116); + this.nodeLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_NODE_0))); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_LABEL_0))); + this.portPortSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_PORT_PORT_0))); + this.portLabelSpacingHorizontal = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_HORIZONTAL_0))); + this.portLabelSpacingVertical = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_VERTICAL_0))); + this.surroundingPortMargins = castTo(getIndividualOrInherited_0(node, SPACING_PORTS_SURROUNDING_0), 142); + this.labelCellSpacing = 2 * this.labelLabelSpacing; + symmetry = !this.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); + this.nodeContainer = new StripContainerCell(0, symmetry, 0); + this.nodeContainerMiddleRow = new StripContainerCell(1, symmetry, 0); + $setCell_0(this.nodeContainer, ($clinit_ContainerArea() , CENTER), this.nodeContainerMiddleRow); +} + +function comparePortContexts(portContext1, portContext2){ + var portSideComparison; + portSideComparison = comparePortSides(portContext1.port.getSide(), portContext2.port.getSide()); + if (portSideComparison != 0) { + return portSideComparison; + } + switch (portContext1.port.getSide().ordinal) { + case 1: + case 2: + return compare_5(portContext1.port.getVolatileId(), portContext2.port.getVolatileId()); + case 3: + case 4: + return compare_5(portContext2.port.getVolatileId(), portContext1.port.getVolatileId()); + } + return 0; +} + +function comparePortSides(portSide1, portSide2){ + return compare_5(portSide1.ordinal, portSide2.ordinal); +} + +defineClass(789, 1, {}, NodeContext); +_.labelCellSpacing = 0; +_.labelLabelSpacing = 0; +_.nodeLabelSpacing = 0; +_.portLabelSpacingHorizontal = 0; +_.portLabelSpacingVertical = 0; +_.portLabelsTreatAsGroup = false; +_.portPortSpacing = 0; +_.treatAsCompoundNode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext', 789); +function NodeContext$0methodref$comparePortSides$Type(){ +} + +defineClass(1471, 1, $intern_88, NodeContext$0methodref$comparePortSides$Type); +_.compare_1 = function compare_15(arg0, arg1){ + return comparePortSides(castTo(arg0, 61), castTo(arg1, 61)); +} +; +_.equals_0 = function equals_67(other){ + return this === other; +} +; +_.reversed = function reversed_7(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$0methodref$comparePortSides$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/0methodref$comparePortSides$Type', 1471); +function NodeContext$1methodref$comparePortContexts$Type(){ +} + +defineClass(1472, 1, $intern_88, NodeContext$1methodref$comparePortContexts$Type); +_.compare_1 = function compare_16(arg0, arg1){ + return comparePortContexts(castTo(arg0, 111), castTo(arg1, 111)); +} +; +_.equals_0 = function equals_68(other){ + return this === other; +} +; +_.reversed = function reversed_8(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$1methodref$comparePortContexts$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/1methodref$comparePortContexts$Type', 1472); +function $clinit_NodeLabelLocation(){ + $clinit_NodeLabelLocation = emptyMethod; + OUT_T_L = new NodeLabelLocation('OUT_T_L', 0, ($clinit_HorizontalLabelAlignment() , LEFT), ($clinit_VerticalLabelAlignment() , BOTTOM), ($clinit_ContainerArea() , BEGIN), BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(($clinit_NodeLabelPlacement() , OUTSIDE), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0]))])); + OUT_T_C = new NodeLabelLocation('OUT_T_C', 1, CENTER_0, BOTTOM, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); + OUT_T_R = new NodeLabelLocation('OUT_T_R', 2, RIGHT, BOTTOM, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0]))])); + OUT_B_L = new NodeLabelLocation('OUT_B_L', 3, LEFT, TOP, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0]))])); + OUT_B_C = new NodeLabelLocation('OUT_B_C', 4, CENTER_0, TOP, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); + OUT_B_R = new NodeLabelLocation('OUT_B_R', 5, RIGHT, TOP, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0]))])); + OUT_L_T = new NodeLabelLocation('OUT_L_T', 6, RIGHT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_TOP_0, H_PRIORITY]))])); + OUT_L_C = new NodeLabelLocation('OUT_L_C', 7, RIGHT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0, H_PRIORITY]))])); + OUT_L_B = new NodeLabelLocation('OUT_L_B', 8, RIGHT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_BOTTOM_0, H_PRIORITY]))])); + OUT_R_T = new NodeLabelLocation('OUT_R_T', 9, LEFT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_TOP_0, H_PRIORITY]))])); + OUT_R_C = new NodeLabelLocation('OUT_R_C', 10, LEFT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0, H_PRIORITY]))])); + OUT_R_B = new NodeLabelLocation('OUT_R_B', 11, LEFT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_BOTTOM_0, H_PRIORITY]))])); + IN_T_L = new NodeLabelLocation('IN_T_L', 12, LEFT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0, H_PRIORITY]))])); + IN_T_C = new NodeLabelLocation('IN_T_C', 13, CENTER_0, TOP, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); + IN_T_R = new NodeLabelLocation('IN_T_R', 14, RIGHT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0, H_PRIORITY]))])); + IN_C_L = new NodeLabelLocation('IN_C_L', 15, LEFT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0, H_PRIORITY]))])); + IN_C_C = new NodeLabelLocation('IN_C_C', 16, CENTER_0, CENTER_1, CENTER, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0, H_PRIORITY]))])); + IN_C_R = new NodeLabelLocation('IN_C_R', 17, RIGHT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0, H_PRIORITY]))])); + IN_B_L = new NodeLabelLocation('IN_B_L', 18, LEFT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0, H_PRIORITY]))])); + IN_B_C = new NodeLabelLocation('IN_B_C', 19, CENTER_0, BOTTOM, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); + IN_B_R = new NodeLabelLocation('IN_B_R', 20, RIGHT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0, H_PRIORITY]))])); + UNDEFINED = new NodeLabelLocation('UNDEFINED', 21, null, null, null, null, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [])); +} + +function $getOutsideSide(this$static){ + switch (this$static.ordinal) { + case 0: + case 1: + case 2: + return $clinit_PortSide() , NORTH_3; + case 3: + case 4: + case 5: + return $clinit_PortSide() , SOUTH_2; + case 6: + case 7: + case 8: + return $clinit_PortSide() , WEST_2; + case 9: + case 10: + case 11: + return $clinit_PortSide() , EAST_2; + default:return $clinit_PortSide() , UNDEFINED_5; + } +} + +function $isInsideLocation(this$static){ + switch (this$static.ordinal) { + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + return true; + default:return false; + } +} + +function NodeLabelLocation(enum$name, enum$ordinal, horizontalAlignment, verticalAlignment, row, column, assignedPlacements){ + Enum.call(this, enum$name, enum$ordinal); + this.horizontalAlignment = horizontalAlignment; + this.verticalAlignment = verticalAlignment; + this.containerRow = row; + this.containerColumn = column; + this.assignedPlacements = newArrayList_1(assignedPlacements); +} + +function fromNodeLabelPlacement(labelPlacement){ + $clinit_NodeLabelLocation(); + var location_0, location$array, location$index, location$max; + for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { + location_0 = location$array[location$index]; + if ($indexOf_3(location_0.assignedPlacements, labelPlacement, 0) != -1) { + return location_0; + } + } + return UNDEFINED; +} + +function valueOf_20(name_0){ + $clinit_NodeLabelLocation(); + return valueOf(($clinit_NodeLabelLocation$Map() , $MAP_8), name_0); +} + +function values_26(){ + $clinit_NodeLabelLocation(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit, 1), $intern_36, 159, 0, [OUT_T_L, OUT_T_C, OUT_T_R, OUT_B_L, OUT_B_C, OUT_B_R, OUT_L_T, OUT_L_C, OUT_L_B, OUT_R_T, OUT_R_C, OUT_R_B, IN_T_L, IN_T_C, IN_T_R, IN_C_L, IN_C_C, IN_C_R, IN_B_L, IN_B_C, IN_B_R, UNDEFINED]); +} + +defineClass(159, 22, {3:1, 35:1, 22:1, 159:1}, NodeLabelLocation); +var IN_B_C, IN_B_L, IN_B_R, IN_C_C, IN_C_L, IN_C_R, IN_T_C, IN_T_L, IN_T_R, OUT_B_C, OUT_B_L, OUT_B_R, OUT_L_B, OUT_L_C, OUT_L_T, OUT_R_B, OUT_R_C, OUT_R_T, OUT_T_C, OUT_T_L, OUT_T_R, UNDEFINED; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeLabelLocation', 159, Ljava_lang_Enum_2_classLit, values_26, valueOf_20); +function $clinit_NodeLabelLocation$Map(){ + $clinit_NodeLabelLocation$Map = emptyMethod; + $MAP_8 = createValueOfMap(values_26()); +} + +var $MAP_8; +function $applyPortPosition(this$static){ + this$static.port.setPosition(this$static.portPosition); +} + +function PortContext(parentNodeContext, port){ + var portLabelsNextToPort; + this.portMargin = new ElkMargin; + this.port = port; + this.portPosition = new KVector_2(port.getPosition()); + portLabelsNextToPort = parentNodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + parentNodeContext.portLabelsPlacement.contains(INSIDE_0)?parentNodeContext.treatAsCompoundNode?(this.labelsNextToPort = portLabelsNextToPort && !port.hasCompoundConnections()):(this.labelsNextToPort = true):parentNodeContext.portLabelsPlacement.contains(OUTSIDE_0)?portLabelsNextToPort?(this.labelsNextToPort = !(port.getIncomingEdges().iterator_0().hasNext_0() || port.getOutgoingEdges().iterator_0().hasNext_0())):(this.labelsNextToPort = false):(this.labelsNextToPort = false); +} + +defineClass(111, 1, {111:1}, PortContext); +_.labelsNextToPort = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_PortContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'PortContext', 111); +function configureCellSystemSizeContributions(nodeContext){ + var freePortPlacement, labelCell, location_0, location$array, location$index, location$max, overhang; + if (nodeContext.sizeConstraints.isEmpty()) { + return; + } + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORTS_0))) { + castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumWidth = true; + freePortPlacement = nodeContext.portConstraints != ($clinit_PortConstraints() , FIXED_RATIO) && nodeContext.portConstraints != FIXED_POS; + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124), freePortPlacement); + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124), freePortPlacement); + $setContributesToMinimumHeight(nodeContext.nodeContainerMiddleRow, freePortPlacement); + if (nodeContext.sizeConstraints.contains(PORT_LABELS)) { + castTo($get_14(nodeContext.insidePortLabelCells, NORTH_3), 124).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124).contributesToMinimumWidth = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; + } + } + if (nodeContext.sizeConstraints.contains(NODE_LABELS)) { + nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; + nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; + overhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); + for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { + location_0 = location$array[location$index]; + labelCell = castTo($get_14(nodeContext.nodeLabelCells, location_0), 306); + if (labelCell) { + if ($isInsideLocation(location_0)) { + labelCell.contributesToMinimumHeight = true; + labelCell.contributesToMinimumWidth = true; + } + else { + labelCell.contributesToMinimumHeight = !overhang; + labelCell.contributesToMinimumWidth = !overhang; + } + } + } + } + if (nodeContext.sizeConstraints.contains(MINIMUM_SIZE) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; + if (!nodeContext.insideNodeLabelContainer.contributesToMinimumHeight) { + nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; + nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; + nodeContext.insideNodeLabelContainer.onlyCenterCellContributesToMinimumSize = true; + } + } +} + +function updateVerticalInsidePortLabelCellPadding(nodeContext){ + var bottomBorderOffset, bottomPadding, eastCell, topBorderOffset, topPadding, westCell; + if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { + return; + } + topBorderOffset = nodeContext.nodeContainer.padding.top_0 + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124)) + nodeContext.labelCellSpacing; + bottomBorderOffset = nodeContext.nodeContainer.padding.bottom + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124)) + nodeContext.labelCellSpacing; + eastCell = castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124); + westCell = castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124); + topPadding = $wnd.Math.max(0, eastCell.padding.top_0 - topBorderOffset); + topPadding = $wnd.Math.max(topPadding, westCell.padding.top_0 - topBorderOffset); + bottomPadding = $wnd.Math.max(0, eastCell.padding.bottom - bottomBorderOffset); + bottomPadding = $wnd.Math.max(bottomPadding, westCell.padding.bottom - bottomBorderOffset); + eastCell.padding.top_0 = topPadding; + westCell.padding.top_0 = topPadding; + eastCell.padding.bottom = bottomPadding; + westCell.padding.bottom = bottomPadding; +} + +function calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ + var cell, portContext, portContext$iterator, rightmostPortBorder; + rightmostPortBorder = 0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + rightmostPortBorder = $wnd.Math.max(rightmostPortBorder, portContext.portPosition.x_0 + portContext.port.getSize().x_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + cell.padding.left = 0; + cell.minimumContentAreaSize.x_0 = rightmostPortBorder; +} + +function calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ + var cell, currentPortContext, currentPortRatio, currentPortWidth, minWidth, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortRatio, previousPortWidth, requiredSpace; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.isEmpty()) { + cell.padding.left = 0; + cell.padding.right = 0; + return; + } + portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + minWidth = 0; + portContextIterator = portContexts.iterator_0(); + previousPortContext = null; + previousPortRatio = 0; + previousPortWidth = 0; + while (portContextIterator.hasNext_0()) { + currentPortContext = castTo(portContextIterator.next_1(), 111); + currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); + currentPortWidth = currentPortContext.port.getSize().x_0; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); + if (!previousPortContext) { + !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.left > 0 && (minWidth = $wnd.Math.max(minWidth, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.left + currentPortContext.portMargin.left, currentPortRatio))); + } + else { + requiredSpace = previousPortWidth + previousPortContext.portMargin.right + nodeContext.portPortSpacing + currentPortContext.portMargin.left; + minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); + } + previousPortContext = currentPortContext; + previousPortRatio = currentPortRatio; + previousPortWidth = currentPortWidth; + } + if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.right > 0) { + requiredSpace = previousPortWidth + nodeContext.surroundingPortMargins.right; + portLabelsInside && (requiredSpace += previousPortContext.portMargin.right); + minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); + } + cell.padding.left = 0; + cell.minimumContentAreaSize.x_0 = minWidth; +} + +function calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, portSide){ + var cell, width_0; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + cell.padding.left = 0; + cell.padding.right = 0; + return; + } + cell.padding.left = nodeContext.surroundingPortMargins.left; + cell.padding.right = nodeContext.surroundingPortMargins.right; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); + width_0 = portWidthPlusPortPortSpacing(nodeContext, portSide); + $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (width_0 += 2 * nodeContext.portPortSpacing); + cell.minimumContentAreaSize.x_0 = width_0; +} + +function calculateHorizontalPortPlacementSize(nodeContext){ + switch (nodeContext.portConstraints.ordinal) { + case 5: + calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, SOUTH_2); + break; + case 4: + calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, SOUTH_2); + break; + default:calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, SOUTH_2); + } +} + +function computeHorizontalPortMargins(nodeContext, portSide){ + var labelWidth, labelsBounds, overhang, portContext, portContext$iterator, portWidth; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + labelWidth = portContext.portLabelCell?$getMinimumWidth(portContext.portLabelCell):0; + if (labelWidth > 0) { + if (portContext.labelsNextToPort) { + portWidth = portContext.port.getSize().x_0; + if (labelWidth > portWidth) { + overhang = (labelWidth - portWidth) / 2; + portContext.portMargin.left = overhang; + portContext.portMargin.right = overhang; + } + } + else { + portContext.portMargin.right = nodeContext.portLabelSpacingHorizontal + labelWidth; + } + } + else if (isFixed(nodeContext.portLabelsPlacement)) { + labelsBounds = getLabelsBounds(portContext.port); + labelsBounds.x_0 < 0 && (portContext.portMargin.left = -labelsBounds.x_0); + labelsBounds.x_0 + labelsBounds.width_0 > portContext.port.getSize().x_0 && (portContext.portMargin.right = labelsBounds.x_0 + labelsBounds.width_0 - portContext.port.getSize().x_0); + } + } +} + +function minSizeRequiredToRespectSpacing(spacing, secondRatio){ + return $clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(0 - secondRatio) <= $intern_94 || 0 == secondRatio || isNaN(0) && isNaN(secondRatio)?0:spacing / secondRatio; +} + +function portWidthPlusPortPortSpacing(nodeContext, portSide){ + var portContext, portContextIterator, result; + result = 0; + portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 111); + result += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right; + portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); + } + return result; +} + +function setupPortMargins(nodeContext, portSide){ + var alwaysSameSide, alwaysSameSideAbove, leftmostPortContext, portContextIterator, portContexts, portLabelsOutside, rightmostPortContext, spaceEfficient, spaceEfficientPortLabels, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); + computeHorizontalPortMargins(nodeContext, portSide); + leftmostPortContext = null; + rightmostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + leftmostPortContext = castTo(portContextIterator.next_1(), 111); + rightmostPortContext = leftmostPortContext; + while (portContextIterator.hasNext_0()) { + rightmostPortContext = castTo(portContextIterator.next_1(), 111); + } + leftmostPortContext.portMargin.left = 0; + rightmostPortContext.portMargin.right = 0; + spaceEfficientPortLabels && !leftmostPortContext.labelsNextToPort && (leftmostPortContext.portMargin.right = 0); + } + if (uniformPortSpacing) { + unifyPortMargins(portContexts); + if (portLabelsOutside) { + leftmostPortContext.portMargin.left = 0; + rightmostPortContext.portMargin.right = 0; + } + } +} + +function unifyPortMargins(portContexts){ + var maxLeft, maxRight, portContext, portContext$iterator, portContext$iterator0; + maxLeft = 0; + maxRight = 0; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + maxLeft = $wnd.Math.max(maxLeft, portContext.portMargin.left); + maxRight = $wnd.Math.max(maxRight, portContext.portMargin.right); + } + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portMargin.left = maxLeft; + portContext.portMargin.right = maxRight; + } +} + +function calculateWidthDueToLabels(nodeContext, portSide){ + var minCellSize, portContext, portContext$iterator, theAppropriateCell; + theAppropriateCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + minCellSize = theAppropriateCell.minimumContentAreaSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + !!portContext.portLabelCell && (minCellSize.x_0 = $wnd.Math.max(minCellSize.x_0, $getMinimumWidth(portContext.portLabelCell))); + } + if (minCellSize.x_0 > 0) { + switch (portSide.ordinal) { + case 2: + theAppropriateCell.padding.right = nodeContext.portLabelSpacingHorizontal; + break; + case 4: + theAppropriateCell.padding.left = nodeContext.portLabelSpacingHorizontal; + } + } +} + +function createInsidePortLabelCell(nodeContext, container, containerArea, portSide){ + var portLabelCell; + portLabelCell = new AtomicCell; + container.cells_0[containerArea.ordinal] = portLabelCell; + $put_7(nodeContext.insidePortLabelCells, portSide, portLabelCell); +} + +function setupEastOrWestPortLabelCell(nodeContext, portSide){ + nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && calculateWidthDueToLabels(nodeContext, portSide); + setupTopAndBottomPadding(nodeContext, portSide); +} + +function setupNorthOrSouthPortLabelCell(nodeContext, portSide){ + var padding; + padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; + switch (portSide.ordinal) { + case 1: + nodeContext.portLabelSpacingVertical >= 0 && (padding.top_0 = nodeContext.portLabelSpacingVertical); + break; + case 3: + nodeContext.portLabelSpacingVertical >= 0 && (padding.bottom = nodeContext.portLabelSpacingVertical); + } + if (nodeContext.surroundingPortMargins) { + padding.left = nodeContext.surroundingPortMargins.left; + padding.right = nodeContext.surroundingPortMargins.right; + } +} + +function setupTopAndBottomPadding(nodeContext, portSide){ + var padding; + if (nodeContext.surroundingPortMargins) { + padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; + padding.top_0 = nodeContext.surroundingPortMargins.top_0; + padding.bottom = nodeContext.surroundingPortMargins.bottom; + } +} + +function placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ + var nodeLabelContainer, nodeLabelContainerRect, nodeSize; + nodeSize = nodeContext.nodeSize; + nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); + nodeLabelContainerRect = nodeLabelContainer.cellRectangle; + nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); + nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); + nodeLabelContainerRect.width_0 = $wnd.Math.max(nodeLabelContainerRect.width_0, nodeSize.x_0); + nodeLabelContainerRect.width_0 > nodeSize.x_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.width_0 = nodeSize.x_0); + nodeLabelContainerRect.x_0 = -(nodeLabelContainerRect.width_0 - nodeSize.x_0) / 2; + switch (portSide.ordinal) { + case 1: + nodeLabelContainerRect.y_0 = -nodeLabelContainerRect.height; + break; + case 3: + nodeLabelContainerRect.y_0 = nodeSize.y_0; + } + $layoutChildrenHorizontally(nodeLabelContainer); + $layoutChildrenVertically(nodeLabelContainer); +} + +function placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ + var nodeLabelContainer, nodeLabelContainerRect, nodeSize; + nodeSize = nodeContext.nodeSize; + nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); + nodeLabelContainerRect = nodeLabelContainer.cellRectangle; + nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); + nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); + nodeLabelContainerRect.height = $wnd.Math.max(nodeLabelContainerRect.height, nodeSize.y_0); + nodeLabelContainerRect.height > nodeSize.y_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.height = nodeSize.y_0); + nodeLabelContainerRect.y_0 = -(nodeLabelContainerRect.height - nodeSize.y_0) / 2; + switch (portSide.ordinal) { + case 4: + nodeLabelContainerRect.x_0 = -nodeLabelContainerRect.width_0; + break; + case 2: + nodeLabelContainerRect.x_0 = nodeSize.x_0; + } + $layoutChildrenHorizontally(nodeLabelContainer); + $layoutChildrenVertically(nodeLabelContainer); +} + +function LabelPlacer$lambda$0$Type(){ +} + +defineClass(1476, 1, $intern_19, LabelPlacer$lambda$0$Type); +_.accept = function accept_46(arg0){ + $applyLabelLayout(castTo(arg0, 306)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$0$Type', 1476); +function LabelPlacer$lambda$1$Type(){ +} + +defineClass(1477, 1, $intern_39, LabelPlacer$lambda$1$Type); +_.test_0 = function test_9(arg0){ + return !!castTo(arg0, 111).portLabelCell; +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$1$Type', 1477); +function LabelPlacer$lambda$2$Type(){ +} + +defineClass(1478, 1, $intern_19, LabelPlacer$lambda$2$Type); +_.accept = function accept_47(arg0){ + $applyLabelLayout(castTo(arg0, 111).portLabelCell); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$2$Type', 1478); +function $clinit_NodeLabelAndSizeUtilities(){ + $clinit_NodeLabelAndSizeUtilities = emptyMethod; + EFFECTIVELY_FIXED_SIZE_CONSTRAINTS = of_1(($clinit_SizeConstraint() , PORT_LABELS)); +} + +function getMinimumNodeOrClientAreaSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var minSize; + minSize = new KVector_2(castTo(nodeContext.node.getProperty(($clinit_CoreOptions() , NODE_SIZE_MINIMUM_5)), 8)); + if (nodeContext.sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + return minSize; +} + +function getMinimumNodeSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { + return getMinimumNodeOrClientAreaSize(nodeContext); + } + } + return null; +} + +function isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide){ + $clinit_NodeLabelAndSizeUtilities(); + var alwaysSameSide, firstPort, portContexts, spaceEfficient; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.size_1() >= 2) { + firstPort = castTo(portContexts.iterator_0().next_1(), 111); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_SAME_SIDE)); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + return !firstPort.labelsNextToPort && !alwaysSameSide && (portContexts.size_1() == 2 || spaceEfficient); + } + else { + return false; + } +} + +function offsetSouthernPortsByNodeSize(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var nodeHeight, portContext, portContext$iterator, portPosition; + nodeHeight = nodeContext.nodeSize.y_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, ($clinit_PortSide() , SOUTH_2)), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portPosition = portContext.portPosition; + portPosition.y_0 += nodeHeight; + } +} + +function setNodePadding(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var clientArea, nodePadding, nodeRect; + if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , COMPUTE_PADDING))) { + return; + } + nodeRect = nodeContext.nodeContainer.cellRectangle; + clientArea = new ElkRectangle_1(nodeContext.insideNodeLabelContainer.centerCellRect); + nodePadding = new ElkPadding; + nodePadding.left = clientArea.x_0 - nodeRect.x_0; + nodePadding.top_0 = clientArea.y_0 - nodeRect.y_0; + nodePadding.right = nodeRect.x_0 + nodeRect.width_0 - (clientArea.x_0 + clientArea.width_0); + nodePadding.bottom = nodeRect.y_0 + nodeRect.height - (clientArea.y_0 + clientArea.height); + nodeContext.node.setPadding(nodePadding); +} + +function setupNodePaddingForPortsWithOffset(nodeContext){ + $clinit_NodeLabelAndSizeUtilities(); + var insidePart, insidePartIsBigger, nodeCellPadding, portBorderOffset, portContext, portContext$iterator, symmetry; + nodeCellPadding = nodeContext.nodeContainer.padding; + for (portContext$iterator = $values_0(nodeContext.portContexts).this$01.valueIterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portBorderOffset = 0; + if (portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { + portBorderOffset = $doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))); + if (portBorderOffset < 0) { + switch (portContext.port.getSide().ordinal) { + case 1: + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, -portBorderOffset); + break; + case 3: + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, -portBorderOffset); + break; + case 2: + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, -portBorderOffset); + break; + case 4: + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, -portBorderOffset); + } + } + } + if (isFixed(nodeContext.portLabelsPlacement)) { + insidePart = computeInsidePart_0(portContext.port, portBorderOffset); + symmetry = !castTo(nodeContext.node.getProperty(NODE_SIZE_OPTIONS_6), 174).contains(($clinit_SizeOptions() , ASYMMETRICAL)); + insidePartIsBigger = false; + switch (portContext.port.getSide().ordinal) { + case 1: + insidePartIsBigger = insidePart > nodeCellPadding.top_0; + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, nodeCellPadding.bottom); + nodeCellPadding.bottom = nodeCellPadding.top_0 + portBorderOffset; + } + + break; + case 3: + insidePartIsBigger = insidePart > nodeCellPadding.bottom; + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, nodeCellPadding.top_0); + nodeCellPadding.top_0 = nodeCellPadding.bottom + portBorderOffset; + } + + break; + case 2: + insidePartIsBigger = insidePart > nodeCellPadding.right; + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); + nodeCellPadding.left = nodeCellPadding.right + portBorderOffset; + } + + break; + case 4: + insidePartIsBigger = insidePart > nodeCellPadding.left; + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, insidePart); + if (symmetry && insidePartIsBigger) { + nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); + nodeCellPadding.right = nodeCellPadding.left + portBorderOffset; + } + + } + } + } +} + +var EFFECTIVELY_FIXED_SIZE_CONSTRAINTS; +function NodeLabelAndSizeUtilities$lambda$0$Type(){ +} + +defineClass(1475, 1, $intern_19, NodeLabelAndSizeUtilities$lambda$0$Type); +_.accept = function accept_48(arg0){ + $clinit_NodeLabelAndSizeUtilities(); + $applyPortPosition(castTo(arg0, 111)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelAndSizeUtilities$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelAndSizeUtilities/lambda$0$Type', 1475); +function createNodeLabelCellContainers(nodeContext, onlyInside){ + var eastContainer, northContainer, southContainer, symmetry, tabularNodeLabels, westContainer; + symmetry = !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); + tabularNodeLabels = nodeContext.sizeOptions.contains(FORCE_TABULAR_NODE_LABELS); + nodeContext.insideNodeLabelContainer = new GridContainerCell(tabularNodeLabels, symmetry, nodeContext.labelCellSpacing); + !!nodeContext.nodeLabelsPadding && $copy(nodeContext.insideNodeLabelContainer.padding, nodeContext.nodeLabelsPadding); + $setCell_0(nodeContext.nodeContainerMiddleRow, ($clinit_ContainerArea() , CENTER), nodeContext.insideNodeLabelContainer); + if (!onlyInside) { + northContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); + northContainer.padding.bottom = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3), northContainer); + southContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); + southContainer.padding.top_0 = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, SOUTH_2, southContainer); + westContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); + westContainer.padding.right = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, WEST_2, westContainer); + eastContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); + eastContainer.padding.left = nodeContext.nodeLabelSpacing; + $put_7(nodeContext.outsideNodeLabelContainers, EAST_2, eastContainer); + } +} + +function createNodeLabelCells(nodeContext, horizontalLayoutMode){ + createNodeLabelCellContainers(nodeContext, true); + $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, true, horizontalLayoutMode)); +} + +function handleNodeLabel(nodeContext, label_0, onlyInside, horizontalLayoutMode){ + var labelLocation, labelPlacement; + labelPlacement = label_0.hasProperty(($clinit_CoreOptions() , NODE_LABELS_PLACEMENT_5))?castTo(label_0.getProperty(NODE_LABELS_PLACEMENT_5), 21):nodeContext.nodeLabelPlacement; + labelLocation = fromNodeLabelPlacement(labelPlacement); + if (labelLocation == ($clinit_NodeLabelLocation() , UNDEFINED)) { + return; + } + if (onlyInside && !$isInsideLocation(labelLocation)) { + return; + } + $addLabel(retrieveNodeLabelCell(nodeContext, labelLocation, horizontalLayoutMode), label_0); +} + +function lambda$0_10(nodeContext_0, onlyInside_1, horizontalLayoutMode_2, label_3){ + handleNodeLabel(nodeContext_0, label_3, onlyInside_1, horizontalLayoutMode_2); +} + +function retrieveNodeLabelCell(nodeContext, nodeLabelLocation, horizontalLayoutMode){ + var containerCell, nodeLabelCell, outsideSide; + nodeLabelCell = castTo($get_14(nodeContext.nodeLabelCells, nodeLabelLocation), 306); + if (!nodeLabelCell) { + nodeLabelCell = new LabelCell_0(nodeContext.labelLabelSpacing, nodeLabelLocation, horizontalLayoutMode); + $put_7(nodeContext.nodeLabelCells, nodeLabelLocation, nodeLabelCell); + if ($isInsideLocation(nodeLabelLocation)) { + $setCell(nodeContext.insideNodeLabelContainer, nodeLabelLocation.containerRow, nodeLabelLocation.containerColumn, nodeLabelCell); + } + else { + outsideSide = $getOutsideSide(nodeLabelLocation); + containerCell = castTo($get_14(nodeContext.outsideNodeLabelContainers, outsideSide), 244); + switch (outsideSide.ordinal) { + case 1: + case 3: + nodeLabelCell.contributesToMinimumHeight = true; + $setCell_0(containerCell, nodeLabelLocation.containerColumn, nodeLabelCell); + break; + case 4: + case 2: + nodeLabelCell.contributesToMinimumWidth = true; + $setCell_0(containerCell, nodeLabelLocation.containerRow, nodeLabelCell); + } + } + } + return nodeLabelCell; +} + +function NodeLabelCellCreator$lambda$0$Type(nodeContext_0, onlyInside_1, horizontalLayoutMode_2){ + this.nodeContext_0 = nodeContext_0; + this.onlyInside_1 = onlyInside_1; + this.horizontalLayoutMode_2 = horizontalLayoutMode_2; +} + +defineClass(790, 1, $intern_19, NodeLabelCellCreator$lambda$0$Type); +_.accept = function accept_49(arg0){ + lambda$0_10(this.nodeContext_0, this.onlyInside_1, this.horizontalLayoutMode_2, castTo(arg0, 181)); +} +; +_.horizontalLayoutMode_2 = false; +_.onlyInside_1 = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelCellCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelCellCreator/lambda$0$Type', 790); +function setNodeHeight(nodeContext){ + var height, minNodeSize, nodeCellRectangle, nodeSize; + nodeSize = nodeContext.nodeSize; + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { + height = nodeSize.y_0; + } + else { + height = $getMinimumHeight_1(nodeContext.nodeContainer); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , EAST_2)), 244))); + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, WEST_2), 244))); + } + minNodeSize = getMinimumNodeSize(nodeContext); + !!minNodeSize && (height = $wnd.Math.max(height, minNodeSize.y_0)); + if (nodeContext.sizeConstraints.contains(PORTS_0)) { + if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , EAST_2)), 124))); + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124))); + } + } + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.y_0 = $wnd.Math.max(nodeSize.y_0, height)):(nodeSize.y_0 = height); + nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; + nodeCellRectangle.y_0 = 0; + nodeCellRectangle.height = height; + $layoutChildrenVertically(nodeContext.nodeContainer); +} + +function setNodeWidth(nodeContext){ + var minNodeSize, nodeCellRectangle, nodeSize, width_0; + nodeSize = nodeContext.nodeSize; + $clinit_NodeLabelAndSizeUtilities(); + if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { + width_0 = nodeSize.x_0; + } + else { + width_0 = $getMinimumWidth_0(nodeContext.nodeContainer); + if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3)), 244))); + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, SOUTH_2), 244))); + } + minNodeSize = getMinimumNodeSize(nodeContext); + !!minNodeSize && (width_0 = $wnd.Math.max(width_0, minNodeSize.x_0)); + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.x_0 = $wnd.Math.max(nodeSize.x_0, width_0)):(nodeSize.x_0 = width_0); + nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; + nodeCellRectangle.x_0 = 0; + nodeCellRectangle.width_0 = width_0; + $layoutChildrenHorizontally(nodeContext.nodeContainer); +} + +function createPortContext(nodeContext, port, imPortLabels){ + var portContext; + portContext = new PortContext(nodeContext, port); + $put(nodeContext.portContexts, port.getSide(), portContext); + if (imPortLabels && !isFixed(nodeContext.portLabelsPlacement)) { + portContext.portLabelCell = new LabelCell(nodeContext.labelLabelSpacing); + $forEach_1(port.getLabels(), new PortContextCreator$lambda$0$Type(portContext)); + } +} + +function createPortContexts(nodeContext, ignoreInsidePortLabels){ + var imPortLabels, port, port$iterator, volatileId; + imPortLabels = !ignoreInsidePortLabels || !nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + volatileId = 0; + for (port$iterator = new ArrayList$1(nodeContext.node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 838); + if (port.getSide() == ($clinit_PortSide() , UNDEFINED_5)) { + throw toJs(new IllegalArgumentException_0('Label and node size calculator can only be used with ports that have port sides assigned.')); + } + port.setVolatileId(volatileId++); + createPortContext(nodeContext, port, imPortLabels); + } +} + +function lambda$0_11(portContext_0, label_1){ + $addLabel(portContext_0.portLabelCell, label_1); +} + +function PortContextCreator$lambda$0$Type(portContext_0){ + this.portContext_0 = portContext_0; +} + +defineClass(1474, 1, $intern_19, PortContextCreator$lambda$0$Type); +_.accept = function accept_50(arg0){ + lambda$0_11(this.portContext_0, castTo(arg0, 181)); +} +; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_PortContextCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'PortContextCreator/lambda$0$Type', 1474); +function constrainedInsidePortLabelPlacement(nodeContext, portSide){ + var insidePortLabelContainer, labelContainerRect, leftBorder, overlapRemovalDirection, overlapRemover, padding, padding0, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, rightBorder, startCoordinate, stripHeight, verticalLabelAlignment, actualMinX, actualMaxX; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) { + simpleInsidePortLabelPlacement(nodeContext, portSide); + return; + } + overlapRemovalDirection = portSide == NORTH_3?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP); + verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , TOP):($clinit_VerticalLabelAlignment() , BOTTOM); + insidePortLabelContainer = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + labelContainerRect = insidePortLabelContainer.cellRectangle; + leftBorder = labelContainerRect.x_0 + maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.left, nodeContext.surroundingPortMargins.left, nodeContext.nodeLabelSpacing])); + rightBorder = labelContainerRect.x_0 + labelContainerRect.width_0 - maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.right, nodeContext.surroundingPortMargins.right, nodeContext.nodeLabelSpacing])); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingVertical); + startCoordinate = portSide == NORTH_3?$intern_60:$intern_59; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portPosition = portContext.portPosition; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); + portLabelCell.verticalAlignment = verticalLabelAlignment; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + portLabelCellRect.x_0 = portPosition.x_0 - (portLabelCellRect.width_0 - portSize.x_0) / 2; + actualMinX = $wnd.Math.min(leftBorder, portPosition.x_0); + actualMaxX = $wnd.Math.max(rightBorder, portPosition.x_0 + portSize.x_0); + portLabelCellRect.x_0 < actualMinX?(portLabelCellRect.x_0 = actualMinX):portLabelCellRect.x_0 + portLabelCellRect.width_0 > actualMaxX && (portLabelCellRect.x_0 = actualMaxX - portLabelCellRect.width_0); + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); + startCoordinate = portSide == NORTH_3?$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0):$wnd.Math.min(startCoordinate, portPosition.y_0); + } + startCoordinate += portSide == NORTH_3?nodeContext.portLabelSpacingVertical:-nodeContext.portLabelSpacingVertical; + stripHeight = $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); + stripHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = stripHeight); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portLabelCellRect = portContext.portLabelCell.cellRectangle; + portLabelCellRect.x_0 -= portContext.portPosition.x_0; + portLabelCellRect.y_0 -= portContext.portPosition.y_0; + } +} + +function constrainedOutsidePortLabelPlacement(nodeContext, portSide){ + var overlapRemovalDirection, overlapRemover, padding, padding0, padding1, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, portWithSpecialNeeds, startCoordinate, verticalLabelAlignment; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.size_1() <= 2 || portSide == ($clinit_PortSide() , EAST_2) || portSide == ($clinit_PortSide() , WEST_2)) { + simpleOutsidePortLabelPlacement(nodeContext, portSide); + return; + } + portWithSpecialNeeds = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + overlapRemovalDirection = portSide == ($clinit_PortSide() , NORTH_3)?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN); + verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , BOTTOM):($clinit_VerticalLabelAlignment() , TOP); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingHorizontal); + startCoordinate = portSide == NORTH_3?$intern_59:$intern_60; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portPosition = portContext.portPosition; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding1 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding1.top_0 + padding1.bottom); + if (portWithSpecialNeeds) { + portLabelCellRect.x_0 = portPosition.x_0 - (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding.left + padding.right) - nodeContext.portLabelSpacingHorizontal; + portWithSpecialNeeds = false; + } + else { + portLabelCellRect.x_0 = portPosition.x_0 + portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + } + requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); + portLabelCell.verticalAlignment = verticalLabelAlignment; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); + startCoordinate = portSide == NORTH_3?$wnd.Math.min(startCoordinate, portPosition.y_0):$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0); + } + startCoordinate += portSide == NORTH_3?-nodeContext.portLabelSpacingVertical:nodeContext.portLabelSpacingVertical; + $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portLabelCellRect = portContext.portLabelCell.cellRectangle; + portLabelCellRect.x_0 -= portContext.portPosition.x_0; + portLabelCellRect.y_0 -= portContext.portPosition.y_0; + } +} + +function placePortLabels(nodeContext, portSide){ + var constrainedPlacement; + constrainedPlacement = !nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) || nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_POS); + nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))?constrainedPlacement?constrainedInsidePortLabelPlacement(nodeContext, portSide):simpleInsidePortLabelPlacement(nodeContext, portSide):nodeContext.portLabelsPlacement.contains(OUTSIDE_0) && (constrainedPlacement?constrainedOutsidePortLabelPlacement(nodeContext, portSide):simpleOutsidePortLabelPlacement(nodeContext, portSide)); +} + +function portLabelBorderOffsetForPortSide(nodeContext, portSide){ + switch (portSide.ordinal) { + case 1: + return nodeContext.nodeContainer.padding.top_0 + nodeContext.portLabelSpacingVertical; + case 3: + return nodeContext.nodeContainer.padding.bottom + nodeContext.portLabelSpacingVertical; + case 2: + return nodeContext.nodeContainer.padding.right + nodeContext.portLabelSpacingHorizontal; + case 4: + return nodeContext.nodeContainer.padding.left + nodeContext.portLabelSpacingHorizontal; + default:return 0; + } +} + +function simpleInsidePortLabelPlacement(nodeContext, portSide){ + var insideNorthOrSouthPortLabelAreaHeight, labelBorderOffset, labelHeight, padding, padding0, portBorderOffset, portContext, portContext$iterator, portLabelCell, portLabelCellRect, portLabelSpacingHorizontal, portLabelSpacingVertical, portSize; + insideNorthOrSouthPortLabelAreaHeight = 0; + labelBorderOffset = portLabelBorderOffsetForPortSide(nodeContext, portSide); + portLabelSpacingHorizontal = nodeContext.portLabelSpacingHorizontal; + portLabelSpacingVertical = nodeContext.portLabelSpacingVertical; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portBorderOffset = portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?$doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))):0; + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + switch (portSide.ordinal) { + case 1: + portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; + portLabelCellRect.y_0 = portSize.y_0 + portBorderOffset + labelBorderOffset; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + break; + case 3: + portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; + portLabelCellRect.y_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.height; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + break; + case 2: + portLabelCellRect.x_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.width_0; + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + } + else { + portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; + } + + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + break; + case 4: + portLabelCellRect.x_0 = portSize.x_0 + portBorderOffset + labelBorderOffset; + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + } + else { + portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; + } + + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && (insideNorthOrSouthPortLabelAreaHeight = $wnd.Math.max(insideNorthOrSouthPortLabelAreaHeight, portLabelCellRect.height)); + } + insideNorthOrSouthPortLabelAreaHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = insideNorthOrSouthPortLabelAreaHeight); +} + +function simpleOutsidePortLabelPlacement(nodeContext, portSide){ + var alwaysAbove, labelHeight, padding, padding0, placeFirstPortDifferently, portContext, portContext$iterator, portContexts, portLabelCell, portLabelCellRect, portSize; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + placeFirstPortDifferently = isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide); + alwaysAbove = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_OTHER_SAME_SIDE)); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { + continue; + } + portSize = portContext.port.getSize(); + portLabelCell = portContext.portLabelCell; + portLabelCellRect = portLabelCell.cellRectangle; + portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); + portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); + switch (portSide.ordinal) { + case 1: + if (portContext.labelsNextToPort) { + portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + else { + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + } + + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + break; + case 3: + if (portContext.labelsNextToPort) { + portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + else { + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + } + + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + break; + case 2: + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + } + else { + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + } + + portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + break; + case 4: + if (portContext.labelsNextToPort) { + labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently || alwaysAbove) { + portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + } + else { + portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); + } + + portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; + $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + } + placeFirstPortDifferently = false; + } +} + +function $clinit_PortPlacementCalculator(){ + $clinit_PortPlacementCalculator = emptyMethod; + PORT_RATIO_OR_POSITION = new Property_0('portRatioOrPosition', 0); +} + +function calculateVerticalPortXCoordinate(portContext, nodeWidth){ + var port; + port = portContext.port; + return port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth; +} + +function placeHorizontalFixedPosPorts(nodeContext, portSide){ + var port, portContext, portContext$iterator; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + } +} + +function placeHorizontalFixedRatioPorts(nodeContext, portSide){ + var nodeWidth, port, portContext, portContext$iterator; + nodeWidth = nodeContext.nodeSize.x_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = nodeWidth * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + } +} + +function placeHorizontalFreePorts(nodeContext, portSide){ + var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementWidth, currentXPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; + insidePortLabelCellPadding = insidePortLabelCell.padding; + portAlignment = $getPortAlignment(nodeContext, portSide); + availableSpace = insidePortLabelCellRectangle.width_0 - insidePortLabelCellPadding.left - insidePortLabelCellPadding.right; + calculatedPortPlacementWidth = insidePortLabelCell.minimumContentAreaSize.x_0; + currentXPos = insidePortLabelCellRectangle.x_0 + insidePortLabelCellPadding.left; + spaceBetweenPorts = nodeContext.portPortSpacing; + if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { + calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; + portAlignment = CENTER_6; + } + if (availableSpace < calculatedPortPlacementWidth && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { + if (portAlignment == DISTRIBUTED) { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + currentXPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + } + } + else { + if (availableSpace < calculatedPortPlacementWidth) { + calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; + portAlignment = CENTER_6; + } + switch (portAlignment.ordinal) { + case 3: + currentXPos += (availableSpace - calculatedPortPlacementWidth) / 2; + break; + case 4: + currentXPos += availableSpace - calculatedPortPlacementWidth; + break; + case 0: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentXPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = currentXPos + portContext.portMargin.left; + portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); + currentXPos += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right + spaceBetweenPorts; + } +} + +function placeHorizontalPorts(nodeContext){ + $clinit_PortPlacementCalculator(); + switch (nodeContext.portConstraints.ordinal) { + case 5: + placeHorizontalFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFixedPosPorts(nodeContext, SOUTH_2); + break; + case 4: + placeHorizontalFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFixedRatioPorts(nodeContext, SOUTH_2); + break; + default:placeHorizontalFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); + placeHorizontalFreePorts(nodeContext, SOUTH_2); + } +} + +function placeVerticalFixedPosPorts(nodeContext, portSide){ + var nodeWidth, port, portContext, portContext$iterator; + nodeWidth = nodeContext.nodeSize.x_0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); + } +} + +function placeVerticalFixedRatioPorts(nodeContext, portSide){ + var nodeSize, portContext, portContext$iterator; + nodeSize = nodeContext.nodeSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = calculateVerticalPortXCoordinate(portContext, nodeSize.x_0); + portContext.portPosition.y_0 = nodeSize.y_0 * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); + } +} + +function placeVerticalFreePorts(nodeContext, portSide){ + var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementHeight, currentYPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, nodeWidth, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; + insidePortLabelCellPadding = insidePortLabelCell.padding; + portAlignment = $getPortAlignment(nodeContext, portSide); + availableSpace = insidePortLabelCellRectangle.height - insidePortLabelCellPadding.top_0 - insidePortLabelCellPadding.bottom; + calculatedPortPlacementHeight = insidePortLabelCell.minimumContentAreaSize.y_0; + currentYPos = insidePortLabelCellRectangle.y_0 + insidePortLabelCellPadding.top_0; + spaceBetweenPorts = nodeContext.portPortSpacing; + nodeWidth = nodeContext.nodeSize.x_0; + if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { + calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; + portAlignment = CENTER_6; + } + if (availableSpace < calculatedPortPlacementHeight && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { + if (portAlignment == DISTRIBUTED) { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + currentYPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + } + } + else { + if (availableSpace < calculatedPortPlacementHeight) { + calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; + portAlignment = CENTER_6; + } + switch (portAlignment.ordinal) { + case 3: + currentYPos += (availableSpace - calculatedPortPlacementHeight) / 2; + break; + case 4: + currentYPos += availableSpace - calculatedPortPlacementHeight; + break; + case 0: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentYPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); + portContext.portPosition.y_0 = currentYPos + portContext.portMargin.top_0; + currentYPos += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom + spaceBetweenPorts; + } +} + +function placeVerticalPorts(nodeContext){ + $clinit_PortPlacementCalculator(); + switch (nodeContext.portConstraints.ordinal) { + case 5: + placeVerticalFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFixedPosPorts(nodeContext, WEST_2); + break; + case 4: + placeVerticalFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFixedRatioPorts(nodeContext, WEST_2); + break; + default:placeVerticalFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); + placeVerticalFreePorts(nodeContext, WEST_2); + } +} + +var PORT_RATIO_OR_POSITION; +function calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ + var bottommostPortBorder, cell, portContext, portContext$iterator; + bottommostPortBorder = 0; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + bottommostPortBorder = $wnd.Math.max(bottommostPortBorder, portContext.portPosition.y_0 + portContext.port.getSize().y_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + cell.padding.top_0 = 0; + cell.minimumContentAreaSize.y_0 = bottommostPortBorder; +} + +function calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ + var cell, currentPortContext, currentPortHeight, currentPortRatio, minHeight, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortHeight, previousPortRatio, requiredSpace; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + if (portContexts.isEmpty()) { + cell.padding.top_0 = 0; + cell.padding.bottom = 0; + return; + } + portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); + minHeight = 0; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); + portContextIterator = portContexts.iterator_0(); + previousPortContext = null; + previousPortRatio = 0; + previousPortHeight = 0; + while (portContextIterator.hasNext_0()) { + currentPortContext = castTo(portContextIterator.next_1(), 111); + currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); + currentPortHeight = currentPortContext.port.getSize().y_0; + if (!previousPortContext) { + !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.top_0 > 0 && (minHeight = $wnd.Math.max(minHeight, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.top_0 + currentPortContext.portMargin.top_0, currentPortRatio))); + } + else { + requiredSpace = previousPortHeight + previousPortContext.portMargin.bottom + nodeContext.portPortSpacing + currentPortContext.portMargin.top_0; + minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); + } + previousPortContext = currentPortContext; + previousPortRatio = currentPortRatio; + previousPortHeight = currentPortHeight; + } + if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.bottom > 0) { + requiredSpace = previousPortHeight + nodeContext.surroundingPortMargins.bottom; + portLabelsInside && (requiredSpace += previousPortContext.portMargin.bottom); + minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); + } + cell.padding.top_0 = 0; + cell.minimumContentAreaSize.y_0 = minHeight; +} + +function calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, portSide){ + var cell, height; + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { + cell.padding.top_0 = 0; + cell.padding.bottom = 0; + return; + } + cell.padding.top_0 = nodeContext.surroundingPortMargins.top_0; + cell.padding.bottom = nodeContext.surroundingPortMargins.bottom; + nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); + height = portHeightPlusPortPortSpacing(nodeContext, portSide); + $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (height += 2 * nodeContext.portPortSpacing); + cell.minimumContentAreaSize.y_0 = height; +} + +function calculateVerticalPortPlacementSize(nodeContext){ + switch (nodeContext.portConstraints.ordinal) { + case 5: + calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, WEST_2); + break; + case 4: + calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, WEST_2); + break; + default:calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); + calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, WEST_2); + } +} + +function computeVerticalPortMargins(nodeContext, portSide){ + var firstLabelHeight, firstLabelOverhang, labelHeight, labelsBounds, overhang, portContext, portContext$iterator, portHeight; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + labelHeight = portContext.portLabelCell?$getMinimumHeight_0(portContext.portLabelCell):0; + if (labelHeight > 0) { + if (portContext.labelsNextToPort) { + portHeight = portContext.port.getSize().y_0; + if (labelHeight > portHeight) { + if (nodeContext.portLabelsTreatAsGroup || portContext.portLabelCell.labels.array.length == 1) { + overhang = (labelHeight - portHeight) / 2; + portContext.portMargin.top_0 = overhang; + portContext.portMargin.bottom = overhang; + } + else { + firstLabelHeight = castTo($get_11(portContext.portLabelCell.labels, 0), 181).getSize().y_0; + firstLabelOverhang = (firstLabelHeight - portHeight) / 2; + portContext.portMargin.top_0 = $wnd.Math.max(0, firstLabelOverhang); + portContext.portMargin.bottom = labelHeight - firstLabelOverhang - portHeight; + } + } + } + else { + portContext.portMargin.bottom = nodeContext.portLabelSpacingVertical + labelHeight; + } + } + else if (isFixed(nodeContext.portLabelsPlacement)) { + labelsBounds = getLabelsBounds(portContext.port); + labelsBounds.y_0 < 0 && (portContext.portMargin.top_0 = -labelsBounds.y_0); + labelsBounds.y_0 + labelsBounds.height > portContext.port.getSize().y_0 && (portContext.portMargin.bottom = labelsBounds.y_0 + labelsBounds.height - portContext.port.getSize().y_0); + } + } +} + +function portHeightPlusPortPortSpacing(nodeContext, portSide){ + var portContext, portContextIterator, result; + result = 0; + portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 111); + result += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom; + portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); + } + return result; +} + +function setupPortMargins_0(nodeContext, portSide){ + var alwaysSameSide, alwaysSameSideAbove, bottommostPortContext, portContextIterator, portContexts, portLabelsOutside, spaceEfficient, spaceEfficientPortLabels, topmostPortContext, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); + computeVerticalPortMargins(nodeContext, portSide); + topmostPortContext = null; + bottommostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + topmostPortContext = castTo(portContextIterator.next_1(), 111); + bottommostPortContext = topmostPortContext; + while (portContextIterator.hasNext_0()) { + bottommostPortContext = castTo(portContextIterator.next_1(), 111); + } + topmostPortContext.portMargin.top_0 = 0; + bottommostPortContext.portMargin.bottom = 0; + spaceEfficientPortLabels && !topmostPortContext.labelsNextToPort && (topmostPortContext.portMargin.bottom = 0); + } + if (uniformPortSpacing) { + unifyPortMargins_0(portContexts); + if (portLabelsOutside) { + topmostPortContext.portMargin.top_0 = 0; + bottommostPortContext.portMargin.bottom = 0; + } + } +} + +function unifyPortMargins_0(portContexts){ + var maxBottom, maxTop, portContext, portContext$iterator, portContext$iterator0; + maxTop = 0; + maxBottom = 0; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + maxTop = $wnd.Math.max(maxTop, portContext.portMargin.top_0); + maxBottom = $wnd.Math.max(maxBottom, portContext.portMargin.bottom); + } + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + portContext.portMargin.top_0 = maxTop; + portContext.portMargin.bottom = maxBottom; + } +} + +function $removeOverlaps(overlapRemover){ + var alreadyPlacedNodes, currNode, currNode$iterator, currRect, overlapNode, overlapNode$iterator, overlapRect, stripSize, verticalGap, yPos; + verticalGap = overlapRemover.gapVertical; + alreadyPlacedNodes = new HashSet; + stripSize = 0; + for (currNode$iterator = new ArrayList$1(overlapRemover.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_7(currNode$iterator), 222); + yPos = 0; + $sort_0(currNode.overlappingNodes, new GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); + for (overlapNode$iterator = $listIterator_2(currNode.overlappingNodes, 0); overlapNode$iterator.currentNode != overlapNode$iterator.this$01.tail;) { + overlapNode = castTo($next_10(overlapNode$iterator), 222); + if (alreadyPlacedNodes.map_0.containsKey(overlapNode)) { + currRect = currNode.rectangle; + overlapRect = overlapNode.rectangle; + yPos < overlapRect.y_0 + overlapRect.height + verticalGap && yPos + currRect.height + verticalGap > overlapRect.y_0 && (yPos = overlapRect.y_0 + overlapRect.height + verticalGap); + } + } + currNode.rectangle.y_0 = yPos; + alreadyPlacedNodes.map_0.put(currNode, alreadyPlacedNodes); + stripSize = $wnd.Math.max(stripSize, currNode.rectangle.y_0 + currNode.rectangle.height); + } + return stripSize; +} + +function GreedyRectangleStripOverlapRemover(){ +} + +function compareByYCoordinate(node1, node2){ + return compare_4(node1.rectangle.y_0, node2.rectangle.y_0); +} + +defineClass(1829, 1, {}, GreedyRectangleStripOverlapRemover); +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover', 1829); +function GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type(){ +} + +defineClass(1830, 1, $intern_88, GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); +_.compare_1 = function compare_17(arg0, arg1){ + return compareByYCoordinate(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.equals_0 = function equals_69(other){ + return this === other; +} +; +_.reversed = function reversed_9(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type', 1830); +function $computeOverlaps(this$static){ + var currNode, currNode$iterator, entry, entryIterator, intersectingNode, intersectingNode$iterator, intersectingNodes, intersectingRectangle, scanlinePos; + intersectingNodes = new TreeSet_0(castTo(checkNotNull(new RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type), 62)); + scanlinePos = $intern_60; + for (currNode$iterator = new ArrayList$1(this$static.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_7(currNode$iterator), 222); + scanlinePos = currNode.rectangle.x_0; + while (intersectingNodes.map_0.size_0 != 0) { + intersectingRectangle = castTo(getKeyOrNSE($getFirstEntry(intersectingNodes.map_0)), 222); + if (intersectingRectangle.rectangle.x_0 + intersectingRectangle.rectangle.width_0 < scanlinePos) { + $remove_26(intersectingNodes.map_0, intersectingRectangle) != null; + } + else { + break; + } + } + for (intersectingNode$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(intersectingNodes.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(intersectingNode$iterator.val$entryIterator2.iter);) { + intersectingNode = (entry = $next_11(intersectingNode$iterator.val$entryIterator2) , castTo(entry.getKey(), 222)); + $add_7(intersectingNode.overlappingNodes, currNode); + $add_7(currNode.overlappingNodes, intersectingNode); + } + $put_12(intersectingNodes.map_0, currNode, ($clinit_Boolean() , FALSE_0)) == null; + } +} + +function $exportRectangle(this$static, rectangleNode){ + var originalRectangle, rectangle; + rectangle = rectangleNode.rectangle; + originalRectangle = rectangleNode.originalRectangle; + switch (this$static.overlapRemovalDirection.ordinal) { + case 0: + originalRectangle.y_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; + break; + case 1: + originalRectangle.y_0 += this$static.startCoordinate; + break; + case 2: + originalRectangle.x_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; + break; + case 3: + originalRectangle.x_0 = this$static.startCoordinate + rectangle.y_0; + } +} + +function $importRectangle(this$static, rectangle){ + switch (this$static.overlapRemovalDirection.ordinal) { + case 0: + case 1: + return rectangle; + case 2: + case 3: + return new ElkRectangle_0(rectangle.y_0, 0, rectangle.height, rectangle.width_0); + default:return null; + } +} + +function $removeOverlaps_0(this$static){ + var stripSize; + !this$static.overlapRemovalStrategy && (this$static.overlapRemovalStrategy = new GreedyRectangleStripOverlapRemover); + $sort(this$static.rectangleNodes, new RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); + $computeOverlaps(this$static); + stripSize = $removeOverlaps(this$static); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.rectangleNodes, 16)), new RectangleStripOverlapRemover$lambda$1$Type(this$static)); + return stripSize; +} + +function $withGap(this$static, theVerticalGap){ + this$static.gapVertical = theVerticalGap; + return this$static; +} + +function $withStartCoordinate(this$static, coordinate){ + this$static.startCoordinate = coordinate; + return this$static; +} + +function RectangleStripOverlapRemover(){ + this.rectangleNodes = new ArrayList; +} + +function compareLeftRectangleBorders(rn1, rn2){ + return compare_4(rn1.rectangle.x_0, rn2.rectangle.x_0); +} + +function compareRightRectangleBorders(rn1, rn2){ + return compare_4(rn1.rectangle.x_0 + rn1.rectangle.width_0, rn2.rectangle.x_0 + rn2.rectangle.width_0); +} + +function createForDirection(direction){ + var remover; + remover = new RectangleStripOverlapRemover; + remover.overlapRemovalDirection = direction; + return remover; +} + +defineClass(1786, 1, {}, RectangleStripOverlapRemover); +_.gapVertical = 5; +_.startCoordinate = 0; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover', 1786); +function RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type(){ +} + +defineClass(1787, 1, $intern_88, RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); +_.compare_1 = function compare_18(arg0, arg1){ + return compareLeftRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.equals_0 = function equals_70(other){ + return this === other; +} +; +_.reversed = function reversed_10(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type', 1787); +function RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type(){ +} + +defineClass(1789, 1, $intern_88, RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type); +_.compare_1 = function compare_19(arg0, arg1){ + return compareRightRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.equals_0 = function equals_71(other){ + return this === other; +} +; +_.reversed = function reversed_11(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type', 1789); +function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection = emptyMethod; + UP = new RectangleStripOverlapRemover$OverlapRemovalDirection('UP', 0); + DOWN = new RectangleStripOverlapRemover$OverlapRemovalDirection('DOWN', 1); + LEFT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('LEFT', 2); + RIGHT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('RIGHT', 3); +} + +function RectangleStripOverlapRemover$OverlapRemovalDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_21(name_0){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); + return valueOf(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map() , $MAP_9), name_0); +} + +function values_27(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]); +} + +defineClass(406, 22, {3:1, 35:1, 22:1, 406:1}, RectangleStripOverlapRemover$OverlapRemovalDirection); +var DOWN, LEFT_0, RIGHT_0, UP; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit = createForEnum('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/OverlapRemovalDirection', 406, Ljava_lang_Enum_2_classLit, values_27, valueOf_21); +function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map(){ + $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map = emptyMethod; + $MAP_9 = createValueOfMap(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]))); +} + +var $MAP_9; +function RectangleStripOverlapRemover$RectangleNode(originalRectangle, rectangle){ + this.overlappingNodes = new LinkedList; + this.originalRectangle = originalRectangle; + this.rectangle = rectangle; +} + +defineClass(222, 1, {222:1}, RectangleStripOverlapRemover$RectangleNode); +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$RectangleNode_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/RectangleNode', 222); +function RectangleStripOverlapRemover$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1788, 1, $intern_19, RectangleStripOverlapRemover$lambda$1$Type); +_.accept = function accept_51(arg0){ + $exportRectangle(this.$$outer_0, castTo(arg0, 222)); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/lambda$1$Type', 1788); +function $packPolyominoes(polyHolder){ + var grid, next, offX, offY, poly, poly$iterator, polys, successorBasedOnCost; + polys = polyHolder.polys; + grid = polyHolder.grid; + switch (castTo($getProperty(polyHolder, ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT)), 427).ordinal) { + case 0: + $sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparator)); + break; + case 1: + default:$sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparatorWithShape)); + } + switch (castTo($getProperty(polyHolder, POLYOMINO_HIGH_LEVEL_SORT), 428).ordinal) { + case 1: + $sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); + $sort(polys, new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); + $sort(polys, new PolyominoCompactor$CornerCasesGreaterThanRestComparator); + break; + case 0: + default:$sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); + $sort(polys, new PolyominoCompactor$MinNumOfExtensionDirectionsComparator); + } + switch (castTo($getProperty(polyHolder, POLYOMINO_TRAVERSAL_STRATEGY), 250).ordinal) { + case 0: + successorBasedOnCost = new SuccessorMaxNormWindingInMathPosSense; + break; + case 1: + successorBasedOnCost = new SuccessorLineByLine; + break; + case 2: + successorBasedOnCost = new SuccessorManhattan; + break; + case 3: + successorBasedOnCost = new SuccessorJitter; + break; + case 5: + successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorManhattan); + break; + case 4: + successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorLineByLine); + break; + case 7: + successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorLineByLine), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); + break; + case 8: + successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorJitter), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); + break; + case 6: + default:successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorJitter); + } + for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_7(poly$iterator), 167); + offX = 0; + offY = 0; + next = new Pair(valueOf_4(offX), valueOf_4(offY)); + while ($intersectsWithCenterBased_0(grid, poly, offX, offY)) { + next = castTo(successorBasedOnCost.apply_3(next, poly), 46); + offX = castTo(next.first, 19).value_0; + offY = castTo(next.second, 19).value_0; + } + $addFilledCellsFrom_0(grid, poly, offX, offY); + } +} + +function $compare_1(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + numDir1 = numDir1 == 2?1:0; + numDir1 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir1 = 0); + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + numDir2 = numDir2 == 2?1:0; + numDir2 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir2 = 0); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$CornerCasesGreaterThanRestComparator(){ +} + +defineClass(1304, 1, $intern_88, PolyominoCompactor$CornerCasesGreaterThanRestComparator); +_.compare_1 = function compare_20(o1, o2){ + return $compare_1(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_72(other){ + return this === other; +} +; +_.reversed = function reversed_12(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator', 1304); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1307, 1, {}, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_40(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type', 1307); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type(){ +} + +defineClass(1308, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type); +_.test_0 = function test_10(arg0){ + return castTo(arg0, 323).horizontal; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type', 1308); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type(){ +} + +defineClass(1309, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type); +_.test_0 = function test_11(arg0){ + return castTo(arg0, 323).horizontal; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type', 1309); +function $compare_2(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator(){ +} + +defineClass(1302, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionDirectionsComparator); +_.compare_1 = function compare_21(o1, o2){ + return $compare_2(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_73(other){ + return this === other; +} +; +_.reversed = function reversed_13(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator', 1302); +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type(){ +} + +defineClass(1305, 1, {}, PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type); +_.apply_0 = function apply_41(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type', 1305); +function $compare_3(o1, o2){ + var numExt1, numExt2; + numExt1 = o1.polyominoExtensions.array.length; + numExt2 = o2.polyominoExtensions.array.length; + if (numExt1 < numExt2) { + return -1; + } + if (numExt1 == numExt2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinNumOfExtensionsComparator(){ +} + +defineClass(767, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionsComparator); +_.compare_1 = function compare_22(o1, o2){ + return $compare_3(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_74(other){ + return this === other; +} +; +_.reversed = function reversed_14(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionsComparator', 767); +function $compare_4(o1, o2){ + var halfPeri1, halfPeri2; + halfPeri1 = o1.xSize + o1.ySize; + halfPeri2 = o2.xSize + o2.ySize; + if (halfPeri1 < halfPeri2) { + return -1; + } + if (halfPeri1 == halfPeri2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinPerimeterComparator(){ +} + +defineClass(1300, 1, $intern_88, PolyominoCompactor$MinPerimeterComparator); +_.compare_1 = function compare_23(o1, o2){ + return $compare_4(castTo(o1, 321), castTo(o2, 321)); +} +; +_.equals_0 = function equals_75(other){ + return this === other; +} +; +_.reversed = function reversed_15(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparator', 1300); +function $compare_5(o1, o2){ + var height, val1, val2, width_0; + width_0 = o1.xSize; + height = o1.ySize; + width_0 < height?(width_0 *= width_0):(height *= height); + val1 = width_0 + height; + width_0 = o2.xSize; + height = o2.ySize; + width_0 < height?(width_0 *= width_0):(height *= height); + val2 = width_0 + height; + if (val1 < val2) { + return -1; + } + if (val1 == val2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$MinPerimeterComparatorWithShape(){ +} + +defineClass(1301, 1, $intern_88, PolyominoCompactor$MinPerimeterComparatorWithShape); +_.compare_1 = function compare_24(o1, o2){ + return $compare_5(castTo(o1, 321), castTo(o2, 321)); +} +; +_.equals_0 = function equals_76(other){ + return this === other; +} +; +_.reversed = function reversed_16(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparatorWithShape_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparatorWithShape', 1301); +function $compare_6(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); + numDir2 = dirSet.size_1(); + numDir1 = numDir1 == 1?1:0; + numDir2 = numDir2 == 1?1:0; + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator(){ +} + +defineClass(1303, 1, $intern_88, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); +_.compare_1 = function compare_25(o1, o2){ + return $compare_6(castTo(o1, 167), castTo(o2, 167)); +} +; +_.equals_0 = function equals_77(other){ + return this === other; +} +; +_.reversed = function reversed_17(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator', 1303); +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1306, 1, {}, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_42(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type', 1306); +function fillPolyomino(poly){ + var eastProfile, height, northProfile, southProfile, westProfile, width_0, x_0, xi, xi0, xi1, y_0, yi, yi0, yi1; + width_0 = poly.xSize; + northProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); + southProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); + height = poly.ySize; + eastProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); + westProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); + for (xi0 = 0; xi0 < width_0; xi0++) { + y_0 = 0; + while (y_0 < height && !$isBlocked(poly, xi0, y_0)) { + ++y_0; + } + northProfile[xi0] = y_0; + } + for (xi1 = 0; xi1 < width_0; xi1++) { + y_0 = height - 1; + while (y_0 >= 0 && !$isBlocked(poly, xi1, y_0)) { + --y_0; + } + southProfile[xi1] = y_0; + } + for (yi0 = 0; yi0 < height; yi0++) { + x_0 = 0; + while (x_0 < width_0 && !$isBlocked(poly, x_0, yi0)) { + ++x_0; + } + eastProfile[yi0] = x_0; + } + for (yi1 = 0; yi1 < height; yi1++) { + x_0 = width_0 - 1; + while (x_0 >= 0 && !$isBlocked(poly, x_0, yi1)) { + --x_0; + } + westProfile[yi1] = x_0; + } + for (xi = 0; xi < width_0; xi++) { + for (yi = 0; yi < height; yi++) { + xi < westProfile[yi] && xi > eastProfile[yi] && yi < southProfile[xi] && yi > northProfile[xi] && $set_5(poly, xi, yi, false, true); + } + } +} + +function $apply_4(this$static, coords, poly){ + return poly.polyominoExtensions.array.length > 0?$apply_9(this$static.externalFun, coords, poly):$apply_9(this$static.normalFun, coords, poly); +} + +function SuccessorCombination(normalFun, externalFun){ + this.normalFun = normalFun; + this.externalFun = externalFun; +} + +defineClass(777, 1, {}, SuccessorCombination); +_.apply_3 = function apply_43(coords, poly){ + return $apply_4(this, castTo(coords, 46), castTo(poly, 167)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorCombination_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorCombination', 777); +function $apply_5(coords){ + var cost, newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + newX = x_0; + newY = y_0; + cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); + if (x_0 <= 0 && x_0 == y_0) { + newX = 0; + newY = y_0 - 1; + } + else { + if (x_0 == -cost && y_0 != cost) { + newX = y_0; + newY = x_0; + y_0 >= 0 && ++newX; + } + else { + newX = -y_0; + newY = x_0; + } + } + return new Pair(valueOf_4(newX), valueOf_4(newY)); +} + +function SuccessorJitter(){ +} + +defineClass(644, 1, {}, SuccessorJitter); +_.apply_3 = function apply_44(coords, poly){ + var lastArg; + return $apply_5((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorJitter_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorJitter', 644); +function $apply_6(coords){ + var x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + if (x_0 >= 0) { + if (x_0 == y_0) { + return new Pair(valueOf_4(-x_0 - 1), valueOf_4(-x_0 - 1)); + } + if (x_0 == -y_0) { + return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); + } + } + if ($wnd.Math.abs(x_0) > $wnd.Math.abs(y_0)) { + if (x_0 < 0) { + return new Pair(valueOf_4(-x_0), valueOf_4(y_0)); + } + return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); + } + return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); +} + +function SuccessorLineByLine(){ +} + +defineClass(643, 1, {}, SuccessorLineByLine); +_.apply_3 = function apply_45(coords, poly){ + var lastArg; + return $apply_6((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorLineByLine_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorLineByLine', 643); +function $apply_7(coords){ + var newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + newX = x_0; + newY = y_0; + if (x_0 == 0 && y_0 == 0) { + newY -= 1; + } + else { + if (x_0 == -1 && y_0 <= 0) { + newX = 0; + newY -= 2; + } + else { + if (x_0 <= 0 && y_0 > 0) { + newX -= 1; + newY -= 1; + } + else { + if (x_0 >= 0 && y_0 < 0) { + newX += 1; + newY += 1; + } + else { + if (x_0 > 0 && y_0 >= 0) { + newX -= 1; + newY += 1; + } + else { + newX += 1; + newY -= 1; + } + } + } + } + } + return new Pair(valueOf_4(newX), valueOf_4(newY)); +} + +function SuccessorManhattan(){ +} + +defineClass(568, 1, {}, SuccessorManhattan); +_.apply_3 = function apply_46(coords, poly){ + var lastArg; + return $apply_7((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorManhattan_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorManhattan', 568); +function $apply_8(coords){ + var cost, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); + if (x_0 < cost && y_0 == -cost) { + return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); + } + if (x_0 == cost && y_0 < cost) { + return new Pair(valueOf_4(x_0), valueOf_4(y_0 + 1)); + } + if (x_0 >= -cost && y_0 == cost) { + return new Pair(valueOf_4(x_0 - 1), valueOf_4(y_0)); + } + return new Pair(valueOf_4(x_0), valueOf_4(y_0 - 1)); +} + +function SuccessorMaxNormWindingInMathPosSense(){ +} + +defineClass(1356, 1, {}, SuccessorMaxNormWindingInMathPosSense); +_.apply_3 = function apply_47(coords, poly){ + var lastArg; + return $apply_8((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorMaxNormWindingInMathPosSense_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorMaxNormWindingInMathPosSense', 1356); +function $apply_9(this$static, coords, poly){ + return $apply_10(this$static, castTo(coords, 46), castTo(poly, 167)); +} + +function $apply_10(this$static, coords, poly){ + var containsNeg, containsPos, detectDirections, dirSet, invalid, newX, newY, nextCoords; + if (!equals_Ljava_lang_Object__Z__devirtual$(poly, this$static.lastPoly)) { + this$static.lastPoly = poly; + detectDirections = new SuccessorQuadrantsGeneric$lambda$0$Type; + dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(poly.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + this$static.posX = true; + this$static.posY = true; + this$static.negX = true; + this$static.negY = true; + containsPos = dirSet.contains(($clinit_Direction() , NORTH)); + containsNeg = dirSet.contains(SOUTH); + containsPos && !containsNeg && (this$static.posY = false); + !containsPos && containsNeg && (this$static.negY = false); + containsPos = dirSet.contains(EAST); + containsNeg = dirSet.contains(WEST); + containsPos && !containsNeg && (this$static.negX = false); + !containsPos && containsNeg && (this$static.posX = false); + } + nextCoords = castTo(this$static.costFun.apply_3(coords, poly), 46); + newX = castTo(nextCoords.first, 19).value_0; + newY = castTo(nextCoords.second, 19).value_0; + invalid = false; + newX < 0?this$static.negX || (invalid = true):this$static.posX || (invalid = true); + newY < 0?this$static.negY || (invalid = true):this$static.posY || (invalid = true); + return invalid?$apply_10(this$static, nextCoords, poly):nextCoords; +} + +function SuccessorQuadrantsGeneric(costFun){ + this.costFun = costFun; +} + +defineClass(400, 1, {}, SuccessorQuadrantsGeneric); +_.apply_3 = function apply_48(coords, poly){ + return $apply_9(this, coords, poly); +} +; +_.negX = false; +_.negY = false; +_.posX = false; +_.posY = false; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric', 400); +function SuccessorQuadrantsGeneric$lambda$0$Type(){ +} + +defineClass(1357, 1, {}, SuccessorQuadrantsGeneric$lambda$0$Type); +_.apply_0 = function apply_49(arg0){ + return castTo(arg0, 324).first; +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric/lambda$0$Type', 1357); +function $clinit_Direction(){ + $clinit_Direction = emptyMethod; + NORTH = new Direction('NORTH', 0); + EAST = new Direction('EAST', 1); + SOUTH = new Direction('SOUTH', 2); + WEST = new Direction('WEST', 3); + NORTH.horizontal = false; + EAST.horizontal = true; + SOUTH.horizontal = false; + WEST.horizontal = true; +} + +function Direction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_22(name_0){ + $clinit_Direction(); + return valueOf(($clinit_Direction$Map() , $MAP_10), name_0); +} + +function values_28(){ + $clinit_Direction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]); +} + +defineClass(323, 22, {3:1, 35:1, 22:1, 323:1}, Direction); +_.horizontal = false; +var EAST, NORTH, SOUTH, WEST; +var Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit = createForEnum('org.eclipse.elk.alg.common.polyomino.structures', 'Direction', 323, Ljava_lang_Enum_2_classLit, values_28, valueOf_22); +function $clinit_Direction$Map(){ + $clinit_Direction$Map = emptyMethod; + $MAP_10 = createValueOfMap(($clinit_Direction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]))); +} + +var $MAP_10; +function $incModTen(num){ + if (num > 8) { + return 0; + } + return num + 1; +} + +function $isBlocked(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 1); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $isEmpty_0(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $isWeaklyBlocked(this$static, x_0, y_0){ + try { + return eq($retrieve(this$static, x_0, y_0), 2); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +function $retrieve(this$static, x_0, y_0){ + var value_0, xRest, xWord; + xWord = x_0 >> 5; + xRest = x_0 & 31; + value_0 = and_0(shru_0(this$static.grid[y_0][xWord], toInt_0(shl_0(xRest, 1))), 3); + return value_0; +} + +function $set_5(this$static, x_0, y_0, msb, lsb){ + var mask, xRest, xWord; + try { + if (x_0 >= this$static.xSize) { + throw toJs(new ArrayIndexOutOfBoundsException); + } + xWord = x_0 >> 5; + xRest = x_0 & 31; + mask = shl_0(1, toInt_0(shl_0(xRest, 1))); + lsb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); + mask = shl_0(mask, 1); + msb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 320)) { + throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); + } + else + throw toJs($e0); + } +} + +defineClass(1298, 1, {}); +_.toString_0 = function toString_78(){ + var count, item_0, output, x_0, x0, y_0; + output = ' '; + count = valueOf_4(0); + for (x0 = 0; x0 < this.xSize; x0++) { + output += '' + count.value_0; + count = valueOf_4($incModTen(count.value_0)); + } + output += '\n'; + count = valueOf_4(0); + for (y_0 = 0; y_0 < this.ySize; y_0++) { + output += '' + count.value_0; + count = valueOf_4($incModTen(count.value_0)); + for (x_0 = 0; x_0 < this.xSize; x_0++) { + item_0 = $retrieve(this, x_0, y_0); + compare_2(item_0, 0) == 0?(output += '_'):compare_2(item_0, 1) == 0?(output += 'X'):(output += '0'); + } + output += '\n'; + } + return $substring_1(output, 0, output.length - 1); +} +; +_.xSize = 0; +_.ySize = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_TwoBitGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'TwoBitGrid', 1298); +function $addFilledCellsFrom(this$static, other, xOffset, yOffset){ + var x_0, xTranslated, y_0, yTranslated; + for (x_0 = 0; x_0 < other.xSize; x_0++) { + xTranslated = x_0 - other.xCenter + xOffset; + for (y_0 = 0; y_0 < other.ySize; y_0++) { + yTranslated = y_0 - other.yCenter + yOffset; + $isBlocked(other, x_0, y_0)?$isWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated) || $setBlockedCenterBased(this$static, xTranslated, yTranslated):$isWeaklyBlocked(other, x_0, y_0) && ($isBlockedCenterBased(this$static, xTranslated, yTranslated) || $setWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated)); + } + } +} + +function $addFilledCellsFrom_0(this$static, other, xOffset, yOffset){ + var ext, ext$iterator; + $addFilledCellsFrom(this$static, other, xOffset, yOffset); + $setX(other, this$static.xCenter - other.xCenter + xOffset); + $setY(other, this$static.yCenter - other.yCenter + yOffset); + for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_7(ext$iterator), 324); + switch (ext.first.ordinal) { + case 0: + $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, 0, other.x_0 + ext.third.value_0, other.y_0 - 1); + break; + case 1: + $weaklyBlockArea(this$static, other.x_0 + other.xSize, other.y_0 + ext.second.value_0, this$static.xSize - 1, other.y_0 + ext.third.value_0); + break; + case 2: + $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, other.y_0 + other.ySize, other.x_0 + ext.third.value_0, this$static.ySize - 1); + break; + default:$weaklyBlockArea(this$static, 0, other.y_0 + ext.second.value_0, other.x_0 - 1, other.y_0 + ext.third.value_0); + } + } +} + +function $getFilledBounds(this$static){ + var gridHeight, gridWidth, height, maxX, maxY, minX, minY, width_0, xi, yi; + gridWidth = this$static.xSize; + gridHeight = this$static.ySize; + minX = $intern_0; + maxX = $intern_42; + minY = $intern_0; + maxY = $intern_42; + for (xi = 0; xi < gridWidth; ++xi) { + for (yi = 0; yi < gridHeight; ++yi) { + if ($isBlocked(this$static, xi, yi)) { + minX = $wnd.Math.min(minX, xi); + maxX = $wnd.Math.max(maxX, xi); + minY = $wnd.Math.min(minY, yi); + maxY = $wnd.Math.max(maxY, yi); + } + } + } + width_0 = maxX - minX + 1; + height = maxY - minY + 1; + return new Quadruple(valueOf_4(minX), valueOf_4(minY), valueOf_4(width_0), valueOf_4(height)); +} + +function $intersectsWithCenterBased(this$static, other, xOffset, yOffset){ + var x_0, xTranslated, y_0, yTranslated, xt, yt; + for (x_0 = 0; x_0 < other.xSize; x_0++) { + xTranslated = x_0 - other.xCenter + xOffset; + for (y_0 = 0; y_0 < other.ySize; y_0++) { + yTranslated = y_0 - other.yCenter + yOffset; + if ((xt = xTranslated , yt = yTranslated , xt += this$static.xCenter , yt += this$static.yCenter , xt >= 0 && yt >= 0 && xt < this$static.xSize && yt < this$static.ySize) && (!$isEmpty_0(other, x_0, y_0) && $isBlockedCenterBased(this$static, xTranslated, yTranslated) || $isBlocked(other, x_0, y_0) && !$isEmptyCenterBased(this$static, xTranslated, yTranslated))) { + return true; + } + } + } + return false; +} + +function $intersectsWithCenterBased_0(this$static, other, xOffset, yOffset){ + var bottomY, ext, ext$iterator, intersects, leftX, rightX, topY; + if ($intersectsWithCenterBased(this$static, other, xOffset, yOffset)) { + return true; + } + else { + for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_7(ext$iterator), 324); + intersects = false; + leftX = this$static.xCenter - other.xCenter + xOffset; + rightX = leftX + other.xSize; + topY = this$static.yCenter - other.yCenter + yOffset; + bottomY = topY + other.ySize; + switch (ext.first.ordinal) { + case 0: + intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, 0, leftX + ext.third.value_0, topY - 1); + break; + case 1: + intersects = $weaklyIntersectsArea(this$static, rightX, topY + ext.second.value_0, this$static.xSize - 1, topY + ext.third.value_0); + break; + case 2: + intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, bottomY, leftX + ext.third.value_0, this$static.ySize - 1); + break; + default:intersects = $weaklyIntersectsArea(this$static, 0, topY + ext.second.value_0, leftX - 1, topY + ext.third.value_0); + } + if (intersects) { + return true; + } + } + } + return false; +} + +function $isBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $isEmptyCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isEmpty_0(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $isWeaklyBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + return $isWeaklyBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $reinitialize(this$static, width_0, height){ + this$static.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); + this$static.xSize = width_0; + this$static.ySize = height; + this$static.xCenter = width_0 - 1 >> 1; + this$static.yCenter = height - 1 >> 1; +} + +function $setBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, false, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $setWeaklyBlockedCenterBased(this$static, x_0, y_0){ + var e; + try { + $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, true, false); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + e = $e0; + throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); + } + else + throw toJs($e0); + } +} + +function $weaklyBlockArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ + var xi, yi; + for (yi = yUpperleft; yi <= yBottomRight; yi++) { + for (xi = xUpperLeft; xi <= xBottomRight; xi++) { + $isBlocked(this$static, xi, yi) || $set_5(this$static, xi, yi, true, false); + } + } +} + +function $weaklyIntersectsArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ + var xi, yi; + for (yi = yUpperleft; yi <= yBottomRight; yi++) { + for (xi = xUpperLeft; xi <= xBottomRight; xi++) { + if ($isBlocked(this$static, xi, yi)) { + return true; + } + } + } + return false; +} + +function PlanarGrid(width_0, height){ + this.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); + this.xSize = width_0; + this.ySize = height; + this.xCenter = width_0 - 1 >> 1; + this.yCenter = height - 1 >> 1; +} + +defineClass(321, 1298, {321:1}, PlanarGrid); +_.xCenter = 0; +_.yCenter = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_PlanarGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'PlanarGrid', 321); +function $setX(this$static, val){ + this$static.x_0 = val; +} + +function $setY(this$static, val){ + this$static.y_0 = val; +} + +function Polyomino(extensions){ + PlanarGrid.call(this, 0, 0); + this.polyominoExtensions = extensions; +} + +defineClass(167, 321, {321:1, 167:1}); +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyomino_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyomino', 167); +var Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IPropertyHolder'); +function $copyProperties(this$static, other){ + var otherMap; + if (!other) { + return this$static; + } + otherMap = other.getAllProperties(); + otherMap.isEmpty() || (!this$static.propertyMap?(this$static.propertyMap = new HashMap_1(otherMap)):$putAll(this$static.propertyMap, otherMap)); + return this$static; +} + +function $getAllProperties(this$static){ + return !this$static.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this$static.propertyMap; +} + +function $getProperty(this$static, property){ + var defaultValue, value_0; + value_0 = (!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $get_10(this$static.propertyMap, property)); + if (value_0 != null) { + return value_0; + } + defaultValue = property.getDefault(); + instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, defaultValue)) , this$static); + return defaultValue; +} + +function $hasProperty(this$static, property){ + return !!this$static.propertyMap && $containsKey_3(this$static.propertyMap, property); +} + +function $setProperty(this$static, property, value_0){ + return value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)) , this$static; +} + +function $setProperty_0(this$static, property, value_0){ + value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)); + return this$static; +} + +function MapPropertyHolder(){ +} + +defineClass(134, 1, $intern_95, MapPropertyHolder); +_.setProperty = function setProperty(property, value_0){ + return $setProperty(this, property, value_0); +} +; +_.getAllProperties = function getAllProperties(){ + return $getAllProperties(this); +} +; +_.getProperty = function getProperty(property){ + return $getProperty(this, property); +} +; +_.hasProperty = function hasProperty(property){ + return $hasProperty(this, property); +} +; +var Lorg_eclipse_elk_graph_properties_MapPropertyHolder_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'MapPropertyHolder', 134); +function Polyominoes(polys, aspectRatio, fill){ + var gridHeight, gridWidth, poly, poly$iterator; + this.polys = new ArrayList; + gridWidth = 0; + gridHeight = 0; + for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_7(poly$iterator), 167); + fill && fillPolyomino(poly); + $add_3(this.polys, poly); + gridWidth += poly.xSize; + gridHeight += poly.ySize; + } + if (this.polys.array.length > 0) { + poly = castTo($get_11(this.polys, 0), 167); + gridWidth += poly.xSize; + gridHeight += poly.ySize; + } + gridWidth *= 2; + gridHeight *= 2; + aspectRatio > 1?(gridWidth = round_int($wnd.Math.ceil(gridWidth * aspectRatio))):(gridHeight = round_int($wnd.Math.ceil(gridHeight / aspectRatio))); + this.grid = new PlanarGrid(gridWidth, gridHeight); +} + +defineClass(1299, 134, $intern_95, Polyominoes); +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyominoes_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyominoes', 1299); +function compact_0(tree, orthogonal){ + svg_0 = new SVGImage; + orthogonalCompaction = orthogonal; + root_0 = tree; + castTo(root_0.node, 65); + drawTree(root_0, svg_0, null); + compactTree(root_0); +} + +function compactTree(tree){ + var child, child$iterator, compactionVector, minUnderlap, rc, rt; + $forEach_1(tree.children, new DepthFirstCompaction$0methodref$compactTree$Type); + for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 221); + compactionVector = $sub_0($clone_0(castTo(tree.node, 65).vertex), castTo(child.node, 65).vertex); + if (orthogonalCompaction) { + rt = castTo(tree.node, 65).rect; + rc = castTo(child.node, 65).rect; + if ($wnd.Math.abs(compactionVector.x_0) >= $wnd.Math.abs(compactionVector.y_0)) { + compactionVector.y_0 = 0; + rc.y_0 + rc.height > rt.y_0 && rc.y_0 < rt.y_0 + rt.height && $scaleToLength(compactionVector, $wnd.Math.max(rt.x_0 - (rc.x_0 + rc.width_0), rc.x_0 - (rt.x_0 + rt.width_0))); + } + else { + compactionVector.x_0 = 0; + rc.x_0 + rc.width_0 > rt.x_0 && rc.x_0 < rt.x_0 + rt.width_0 && $scaleToLength(compactionVector, $wnd.Math.max(rt.y_0 - (rc.y_0 + rc.height), rc.y_0 - (rt.y_0 + rt.height))); + } + } + else { + $scaleToLength(compactionVector, $underlap(castTo(tree.node, 65), castTo(child.node, 65))); + } + minUnderlap = $wnd.Math.sqrt(compactionVector.x_0 * compactionVector.x_0 + compactionVector.y_0 * compactionVector.y_0); + minUnderlap = getMinUnderlap(root_0, child, minUnderlap, compactionVector); + $scaleToLength(compactionVector, minUnderlap); + $translate(castTo(child.node, 65), compactionVector); + $forEach_1(child.children, new DepthFirstCompaction$lambda$1$Type(compactionVector)); + castTo(root_0.node, 65); + drawTree(root_0, svg_0, child); + } +} + +function drawTree(t, svgImage, mark){ + castTo(t.node, 65); + castTo(t.node, 65); + castTo(t.node, 65); + $forEach_1(t.children, new DepthFirstCompaction$lambda$2$Type(mark, svgImage, t)); +} + +function getMinUnderlap(tree, child, currentMinUnderlap, compactionVector){ + var c, c$iterator, minUnderlap; + minUnderlap = $wnd.Math.min(currentMinUnderlap, minUnderlapWithSubtree(castTo(tree.node, 65), child, currentMinUnderlap, compactionVector)); + for (c$iterator = new ArrayList$1(tree.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_7(c$iterator), 221); + c != child && (minUnderlap = $wnd.Math.min(minUnderlap, getMinUnderlap(c, child, minUnderlap, compactionVector))); + } + return minUnderlap; +} + +function lambda$1_4(compactionVector_0, c_1){ + $translate(castTo(c_1.node, 65), compactionVector_0); + $forEach_1(c_1.children, new DepthFirstCompaction$lambda$1$Type(compactionVector_0)); +} + +function lambda$2_0(mark_0, svgImage_1, t_2, c_3){ + c_3 == mark_0?(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0):(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0); + drawTree(c_3, svgImage_1, mark_0); +} + +function minUnderlapWithSubtree(r, tree, currentMinUnderlap, compactionVector){ + var c, child, child$iterator, minUnderlap; + minUnderlap = currentMinUnderlap; + for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 221); + c = castTo(child.node, 65); + if (fuzzyCompare(r.rect.x_0, c.rect.x_0 + c.rect.width_0) <= 0 && fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) <= 0 && fuzzyCompare(r.rect.y_0, c.rect.y_0 + c.rect.height) <= 0 && fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) <= 0) { + if (fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) == 0 && compactionVector.x_0 < 0 || fuzzyCompare(c.rect.x_0 + c.rect.width_0, r.rect.x_0) == 0 && compactionVector.x_0 > 0 || fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) == 0 && compactionVector.y_0 < 0 || fuzzyCompare(c.rect.y_0 + c.rect.height, r.rect.y_0) == 0 && compactionVector.y_0 > 0) { + minUnderlap = 0; + break; + } + } + else { + minUnderlap = $wnd.Math.min(minUnderlap, $distance(r, c, compactionVector)); + } + minUnderlap = $wnd.Math.min(minUnderlap, minUnderlapWithSubtree(r, child, minUnderlap, compactionVector)); + } + return minUnderlap; +} + +var orthogonalCompaction = false, root_0, svg_0; +function DepthFirstCompaction$0methodref$compactTree$Type(){ +} + +defineClass(1766, 1, $intern_19, DepthFirstCompaction$0methodref$compactTree$Type); +_.accept = function accept_52(arg0){ + compactTree(castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$0methodref$compactTree$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/0methodref$compactTree$Type', 1766); +function DepthFirstCompaction$lambda$1$Type(compactionVector_0){ + this.compactionVector_0 = compactionVector_0; +} + +defineClass(810, 1, $intern_19, DepthFirstCompaction$lambda$1$Type); +_.accept = function accept_53(arg0){ + lambda$1_4(this.compactionVector_0, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$1$Type', 810); +function DepthFirstCompaction$lambda$2$Type(mark_0, svgImage_1, t_2){ + this.mark_0 = mark_0; + this.svgImage_1 = svgImage_1; + this.t_2 = t_2; +} + +defineClass(1767, 1, $intern_19, DepthFirstCompaction$lambda$2$Type); +_.accept = function accept_54(arg0){ + lambda$2_0(this.mark_0, this.svgImage_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$2$Type', 1767); +function $clinit_InternalProperties(){ + $clinit_InternalProperties = emptyMethod; + DEBUG_SVG = new Property_0('debugSVG', ($clinit_Boolean() , false)); + OVERLAPS_EXISTED = new Property_0('overlapsExisted', true); +} + +var DEBUG_SVG, OVERLAPS_EXISTED; +function $distance(this$static, other, v){ + var distance, e1, e1$iterator, e2, e2$iterator, result; + result = $intern_59; + for (e1$iterator = new ArrayList$1(getRectEdges(this$static.rect)); e1$iterator.i < e1$iterator.this$01.array.length;) { + e1 = castTo($next_7(e1$iterator), 168); + for (e2$iterator = new ArrayList$1(getRectEdges(other.rect)); e2$iterator.i < e2$iterator.this$01.array.length;) { + e2 = castTo($next_7(e2$iterator), 168); + distance = distance_0(e1.u, e1.v, e2.u, e2.v, v); + result = $wnd.Math.min(result, distance); + } + } + return result; +} + +function $setCenterPosition(this$static, p){ + $translate(this$static, $sub_0(new KVector_1(p.x_0, p.y_0), this$static.vertex)); +} + +function $translate(this$static, v){ + $add_19(this$static.vertex, v); + this$static.rect.x_0 += v.x_0; + this$static.rect.y_0 += v.y_0; +} + +function $underlap(this$static, other){ + var hScale, horizontalCenterDistance, horizontalUnderlap, scale, vScale, verticalCenterDistance, verticalUnderlap; + horizontalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).x_0 - $getCenter(other.rect).x_0); + verticalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).y_0 - $getCenter(other.rect).y_0); + horizontalUnderlap = 0; + verticalUnderlap = 0; + hScale = 1; + vScale = 1; + if (horizontalCenterDistance > this$static.rect.width_0 / 2 + other.rect.width_0 / 2) { + horizontalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.x_0 - (other.rect.x_0 + other.rect.width_0)), $wnd.Math.abs(this$static.rect.x_0 + this$static.rect.width_0 - other.rect.x_0)); + hScale = 1 - horizontalUnderlap / horizontalCenterDistance; + } + if (verticalCenterDistance > this$static.rect.height / 2 + other.rect.height / 2) { + verticalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.y_0 - (other.rect.y_0 + other.rect.height)), $wnd.Math.abs(this$static.rect.y_0 + this$static.rect.height - other.rect.y_0)); + vScale = 1 - verticalUnderlap / verticalCenterDistance; + } + scale = $wnd.Math.min(hScale, vScale); + return (1 - scale) * $wnd.Math.sqrt(horizontalCenterDistance * horizontalCenterDistance + verticalCenterDistance * verticalCenterDistance); +} + +function Node_0(v, r){ + this.originalVertex = v; + this.vertex = $clone_0(this.originalVertex); + this.rect = new ElkRectangle_1(r); +} + +defineClass(65, 1, {65:1}, Node_0); +var Lorg_eclipse_elk_alg_common_spore_Node_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'Node', 65); +function $overlap_0(n1, n2){ + if (!n1 || !n2 || n1 == n2) { + return false; + } + return fuzzyCompare(n1.rect.x_0, n2.rect.x_0 + n2.rect.width_0) < 0 && fuzzyCompare(n2.rect.x_0, n1.rect.x_0 + n1.rect.width_0) < 0; +} + +function $sweep_0(this$static, nodes){ + var n, n$iterator, overlapsScanlineHandler, points; + points = new ArrayList; + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 65); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, true)); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, false)); + } + overlapsScanlineHandler = new ScanlineOverlapCheck$OverlapsScanlineHandler(this$static); + $clear_8(overlapsScanlineHandler.intervalsSortLeft.map_0); + execute(points, this$static.overlapsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [overlapsScanlineHandler]))); +} + +function ScanlineOverlapCheck(oh){ + this.overlapsScanlineComparator = new ScanlineOverlapCheck$lambda$0$Type; + this.overlapHandler = oh; +} + +function lambda$0_12(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.rect.y_0; + p1_0.low || (y1 += p1_0.node.rect.height); + y2 = p2_1.node.rect.y_0; + p2_1.low || (y2 += p2_1.node.rect.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(1250, 1, {}, ScanlineOverlapCheck); +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck', 1250); +function $handle_0(this$static, p){ + p.low?$insert_3(this$static, p):$remove_28(this$static.intervalsSortLeft, p.node); +} + +function $insert_3(this$static, p){ + var entry, entryIterator, other, other$iterator, overlapsFound, success; + success = $add_10(this$static.intervalsSortLeft, p.node); + if (!success) { + throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline overlap calculation.')); + } + overlapsFound = false; + for (other$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this$static.intervalsSortLeft.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(other$iterator.val$entryIterator2.iter);) { + other = (entry = $next_11(other$iterator.val$entryIterator2) , castTo(entry.getKey(), 65)); + if ($overlap_0(p.node, other)) { + $handle_4(this$static.this$01.overlapHandler, p.node, other); + overlapsFound = true; + } + else { + if (overlapsFound) { + break; + } + } + } +} + +function ScanlineOverlapCheck$OverlapsScanlineHandler(this$0){ + this.this$01 = this$0; + this.intervalsSortLeft = new TreeSet_0(castTo(checkNotNull(new ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type), 62)); +} + +function lambda$0_13(n1_0, n2_1){ + var cmp; + cmp = compare_4(n1_0.rect.x_0, n2_1.rect.x_0); + if (cmp != 0) { + return cmp; + } + cmp = compare_4(n1_0.originalVertex.x_0, n2_1.originalVertex.x_0); + if (cmp != 0) { + return cmp; + } + return compare_4(n1_0.originalVertex.y_0, n2_1.originalVertex.y_0); +} + +defineClass(1251, 1, {679:1}, ScanlineOverlapCheck$OverlapsScanlineHandler); +_.handle = function handle_0(p){ + $handle_0(this, castTo(p, 440)); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler', 1251); +function ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1252, 1, $intern_88, ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_26(arg0, arg1){ + return lambda$0_13(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.equals_0 = function equals_78(other){ + return this === other; +} +; +_.reversed = function reversed_18(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type', 1252); +function ScanlineOverlapCheck$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(440, 1, {440:1}, ScanlineOverlapCheck$Timestamp); +_.low = false; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/Timestamp', 440); +function ScanlineOverlapCheck$lambda$0$Type(){ +} + +defineClass(1253, 1, $intern_88, ScanlineOverlapCheck$lambda$0$Type); +_.compare_1 = function compare_27(arg0, arg1){ + return lambda$0_12(castTo(arg0, 440), castTo(arg1, 440)); +} +; +_.equals_0 = function equals_79(other){ + return this === other; +} +; +_.reversed = function reversed_19(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/lambda$0$Type', 1253); +function SVGImage(){ +} + +defineClass(550, 1, {}, SVGImage); +var Lorg_eclipse_elk_alg_common_utils_SVGImage_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'SVGImage', 550); +function UniqueTriple(f, s, t){ + this.first = f; + this.second = s; + this.third = t; +} + +defineClass(324, 1, {324:1}, UniqueTriple); +_.toString_0 = function toString_79(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; +} +; +var Lorg_eclipse_elk_alg_common_utils_UniqueTriple_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'UniqueTriple', 324); +function getRectEdges(r){ + var rectEdegs; + rectEdegs = new ArrayList; + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0 + r.width_0, r.y_0))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0, r.y_0 + r.height))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0 + r.width_0, r.y_0))); + $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0, r.y_0 + r.height))); + return rectEdegs; +} + +function overlap_0(r1, r2){ + var horizontalCenterDistance, horizontalOverlap, verticalCenterDistance, verticalOverlap; + horizontalOverlap = $wnd.Math.min($wnd.Math.abs(r1.x_0 - (r2.x_0 + r2.width_0)), $wnd.Math.abs(r1.x_0 + r1.width_0 - r2.x_0)); + verticalOverlap = $wnd.Math.min($wnd.Math.abs(r1.y_0 - (r2.y_0 + r2.height)), $wnd.Math.abs(r1.y_0 + r1.height - r2.y_0)); + horizontalCenterDistance = $wnd.Math.abs(r1.x_0 + r1.width_0 / 2 - (r2.x_0 + r2.width_0 / 2)); + if (horizontalCenterDistance > r1.width_0 / 2 + r2.width_0 / 2) { + return 1; + } + verticalCenterDistance = $wnd.Math.abs(r1.y_0 + r1.height / 2 - (r2.y_0 + r2.height / 2)); + if (verticalCenterDistance > r1.height / 2 + r2.height / 2) { + return 1; + } + if (horizontalCenterDistance == 0 && verticalCenterDistance == 0) { + return 0; + } + if (horizontalCenterDistance == 0) { + return verticalOverlap / verticalCenterDistance + 1; + } + if (verticalCenterDistance == 0) { + return horizontalOverlap / horizontalCenterDistance + 1; + } + return $wnd.Math.min(horizontalOverlap / horizontalCenterDistance, verticalOverlap / verticalCenterDistance) + 1; +} + +defineClass(209, 1, $intern_96); +var Lorg_eclipse_elk_core_AbstractLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core', 'AbstractLayoutProvider', 209); +function DisCoLayoutProvider(){ +} + +defineClass(1132, 209, $intern_96, DisCoLayoutProvider); +_.layout = function layout(layoutGraph, progressMonitor){ + var lad, layoutProvider, requestedAlgorithm, transformer; + $begin(progressMonitor, 'Connected Components Compaction', 1); + this.componentSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_DisCoOptions() , SPACING_COMPONENT_COMPONENT)))); + if ($hasProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + transformer = new ElkGraphTransformer(this.componentSpacing); + this.result = $importGraph(transformer, layoutGraph); + switch (castTo($getProperty_0(layoutGraph, ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY)), 481).ordinal) { + case 0: + $compact_0(new DisCoPolyominoCompactor, this.result); + $setProperty_1(layoutGraph, DEBUG_DISCO_POLYS_0, $getProperty(this.result, DEBUG_DISCO_POLYS_0)); + break; + default:$clinit_System(); + } + $applyLayout(transformer); + $setProperty_1(layoutGraph, DEBUG_DISCO_GRAPH_0, this.result); + $done_0(progressMonitor); +} +; +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_DisCoLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoLayoutProvider', 1132); +function $applyToDCGraph(this$static){ + var absoluteIntPositionX, absoluteIntPositionY, absolutePositionOnCanvas, gridCrop, originalCoordinates, padding, paddingHori, paddingVert, parentHeight, parentWidth, poly, poly$iterator; + gridCrop = $getFilledBounds(this$static.grid); + padding = castTo($getProperty(this$static.cmpGraph, ($clinit_DisCoOptions() , PADDING)), 116); + paddingHori = padding.left + padding.right; + paddingVert = padding.top_0 + padding.bottom; + parentWidth = gridCrop.third.value_0 * this$static.gridCellSizeX + paddingHori; + parentHeight = gridCrop.fourth.value_0 * this$static.gridCellSizeY + paddingVert; + $setDimensions(this$static.cmpGraph, new KVector_1(parentWidth, parentHeight)); + for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + poly = castTo($next_7(poly$iterator), 562); + absoluteIntPositionX = poly.x_0 - gridCrop.first.value_0; + absoluteIntPositionY = poly.y_0 - gridCrop.second.value_0; + absolutePositionOnCanvas = $add_19($scale_0(new KVector_1(absoluteIntPositionX, absoluteIntPositionY), poly.cellSizeX, poly.cellSizeY), $scale($sub($clone_0($getDimensionsOfBoundingRectangle(poly.representee)), poly.pWidth * poly.cellSizeX, poly.pHeight * poly.cellSizeY), -0.5)); + originalCoordinates = $getMinCorner(poly.representee); + $setOffset(poly.representee, $sub_0(absolutePositionOnCanvas, originalCoordinates)); + } +} + +function $compact_0(this$static, graph){ + var gridCellRecommendation; + this$static.cmpGraph = graph; + this$static.polys = new ArrayList; + gridCellRecommendation = $computeCellSize(this$static.cmpGraph); + this$static.gridCellSizeX = gridCellRecommendation; + this$static.gridCellSizeY = gridCellRecommendation; + this$static.fill = $booleanValue(castToBoolean($getProperty(this$static.cmpGraph, ($clinit_PolyominoOptions() , POLYOMINO_FILL)))); + this$static.aspectRatio = castToDouble($getProperty(this$static.cmpGraph, ($clinit_CoreOptions() , ASPECT_RATIO_5))); + this$static.aspectRatio == null && (this$static.aspectRatio = 1); + $doubleValue(this$static.aspectRatio) > 1?(this$static.gridCellSizeX *= $doubleValue(this$static.aspectRatio)):(this$static.gridCellSizeY /= $doubleValue(this$static.aspectRatio)); + $createPolyominoes(this$static); + $packPolyominoes_0(this$static); + $applyToDCGraph(this$static); + $setProperty_0(this$static.cmpGraph, ($clinit_DisCoOptions() , DEBUG_DISCO_POLYS_0), this$static.polys); +} + +function $computeCellSize(graph){ + var bounds, comp, comp$iterator, comps, denominator, height, numOfComps, numerator, prodTerm, sumTerm, width_0; + sumTerm = 0; + prodTerm = 0; + comps = graph.components; + numOfComps = comps.map_0.size_1(); + for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 561); + bounds = (comp.changed && $update(comp) , comp.bounds); + width_0 = bounds.x_0; + height = bounds.y_0; + sumTerm += width_0 + height; + prodTerm += width_0 * height; + } + numerator = $wnd.Math.sqrt(400 * numOfComps * prodTerm - 4 * prodTerm + sumTerm * sumTerm) + sumTerm; + denominator = 2 * (100 * numOfComps - 1); + if (denominator == 0) { + return numerator; + } + return numerator / denominator; +} + +function $createPolyominoes(this$static){ + var comp, comp$iterator, comps, poly; + comps = this$static.cmpGraph.components; + for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 561); + poly = new DCPolyomino(comp, this$static.gridCellSizeX, this$static.gridCellSizeY); + $add_3(this$static.polys, poly); + } +} + +function $packPolyominoes_0(this$static){ + var id_0, poly$iterator, polyHolder; + id_0 = 0; + for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { + castTo($next_7(poly$iterator), 562); + ++id_0; + } + polyHolder = new Polyominoes(this$static.polys, $doubleValue(this$static.aspectRatio), this$static.fill); + $packPolyominoes(polyHolder); + this$static.polys = polyHolder.polys; + this$static.grid = polyHolder.grid; +} + +function DisCoPolyominoCompactor(){ +} + +defineClass(1244, 1, {}, DisCoPolyominoCompactor); +_.fill = false; +_.gridCellSizeX = 0; +_.gridCellSizeY = 0; +var Lorg_eclipse_elk_alg_disco_DisCoPolyominoCompactor_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoPolyominoCompactor', 1244); +function $addElements(this$static, elements){ + var elem, elem$iterator; + for (elem$iterator = elements.iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + this$static.changed = true; + $add_6(this$static.shapes, elem); + elem.cp = this$static; + } +} + +function $getDimensionsOfBoundingRectangle(this$static){ + this$static.changed && $update(this$static); + return this$static.bounds; +} + +function $getMinCorner(this$static){ + this$static.changed && $update(this$static); + return this$static.minCornerOfBoundingRectangle; +} + +function $intersects(this$static, rect){ + var elem, elem$iterator; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + if (intersects_1(rect, elem.shape_0) || contains_51(rect, elem.shape_0)) { + return true; + } + } + return false; +} + +function $setOffset(this$static, offset){ + this$static.changed = true; + this$static.offset = offset; +} + +function $update(this$static){ + var dir_0, elem, elem$iterator, elemBounds, ext, ext$iterator, maxPos, maxX, maxY, minPos, minX, minY; + this$static.changed = false; + minX = $intern_59; + maxX = $intern_60; + minY = $intern_59; + maxY = $intern_60; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + elemBounds = elem.bounds; + minX = $wnd.Math.min(minX, elemBounds.x_0); + maxX = $wnd.Math.max(maxX, elemBounds.x_0 + elemBounds.width_0); + minY = $wnd.Math.min(minY, elemBounds.y_0); + maxY = $wnd.Math.max(maxY, elemBounds.y_0 + elemBounds.height); + for (ext$iterator = new ArrayList$1(elem.extensions); ext$iterator.i < ext$iterator.this$01.array.length;) { + ext = castTo($next_7(ext$iterator), 395); + dir_0 = ext.direction; + if (dir_0.horizontal) { + minPos = elemBounds.y_0 + ext.offset.y_0; + maxPos = minPos + ext.width_0; + minY = $wnd.Math.min(minY, minPos); + maxY = $wnd.Math.max(maxY, maxPos); + } + else { + minPos = elemBounds.x_0 + ext.offset.x_0; + maxPos = minPos + ext.width_0; + minX = $wnd.Math.min(minX, minPos); + maxX = $wnd.Math.max(maxX, maxPos); + } + } + } + this$static.bounds = new KVector_1(maxX - minX, maxY - minY); + this$static.minCornerOfBoundingRectangle = new KVector_1(minX + this$static.offset.x_0, minY + this$static.offset.y_0); +} + +function DCComponent(){ + this.offset = new KVector_1(0, 0); + this.shapes = new HashSet; +} + +defineClass(561, 1, {561:1}, DCComponent); +_.changed = true; +var Lorg_eclipse_elk_alg_disco_graph_DCComponent_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCComponent', 561); +function $clinit_DCDirection(){ + $clinit_DCDirection = emptyMethod; + NORTH_0 = new DCDirection('NORTH', 0); + EAST_0 = new DCDirection('EAST', 1); + SOUTH_0 = new DCDirection('SOUTH', 2); + WEST_0 = new DCDirection('WEST', 3); + NORTH_0.horizontal = false; + EAST_0.horizontal = true; + SOUTH_0.horizontal = false; + WEST_0.horizontal = true; +} + +function DCDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_23(name_0){ + $clinit_DCDirection(); + return valueOf(($clinit_DCDirection$Map() , $MAP_11), name_0); +} + +function values_29(){ + $clinit_DCDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]); +} + +defineClass(394, 22, {3:1, 35:1, 22:1, 394:1}, DCDirection); +_.horizontal = false; +var EAST_0, NORTH_0, SOUTH_0, WEST_0; +var Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit = createForEnum('org.eclipse.elk.alg.disco.graph', 'DCDirection', 394, Ljava_lang_Enum_2_classLit, values_29, valueOf_23); +function $clinit_DCDirection$Map(){ + $clinit_DCDirection$Map = emptyMethod; + $MAP_11 = createValueOfMap(($clinit_DCDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]))); +} + +var $MAP_11; +function DCElement(polyPath){ + var maxX, maxY, minX, minY, v, v$iterator; + this.extensions = new ArrayList; + this.shape_0 = polyPath; + minX = $intern_59; + minY = $intern_59; + maxX = $intern_60; + maxY = $intern_60; + for (v$iterator = $listIterator_2(polyPath, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(v$iterator), 8); + minX = $wnd.Math.min(minX, v.x_0); + minY = $wnd.Math.min(minY, v.y_0); + maxX = $wnd.Math.max(maxX, v.x_0); + maxY = $wnd.Math.max(maxY, v.y_0); + } + this.bounds = new ElkRectangle_0(minX, minY, maxX - minX, maxY - minY); +} + +defineClass(266, 134, {3:1, 266:1, 94:1, 134:1}, DCElement); +var Lorg_eclipse_elk_alg_disco_graph_DCElement_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCElement', 266); +function $setOffset_0(this$static, offset){ + this$static.offset = offset; +} + +function DCExtension(parent_0, direction, middlePos, width_0){ + var bounds, halfWidth; + this.direction = direction; + this.width_0 = width_0; + bounds = parent_0.bounds; + $setOffset_0(this, new KVector_1(-bounds.x_0, -bounds.y_0)); + $add_19(this.offset, middlePos); + halfWidth = width_0 / 2; + direction.horizontal?$sub(this.offset, 0, halfWidth):$sub(this.offset, halfWidth, 0); + $add_3(parent_0.extensions, this); +} + +defineClass(395, 1, {395:1}, DCExtension); +_.width_0 = 0; +var Lorg_eclipse_elk_alg_disco_graph_DCExtension_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCExtension', 395); +function $setDimensions(this$static, dimensions){ + this$static.dimensions = dimensions; +} + +function DCGraph(components){ + var component, elements, elements$iterator; + this.components = new LinkedHashSet; + for (elements$iterator = new ArrayList$1(components); elements$iterator.i < elements$iterator.this$01.array.length;) { + elements = castTo($next_7(elements$iterator), 14); + component = new DCComponent; + $addElements(component, elements); + $add_6(this.components, component); + } +} + +function DCGraph_0(components){ + DCGraph.call(this, components); +} + +defineClass(755, 134, $intern_95, DCGraph_0); +var Lorg_eclipse_elk_alg_disco_graph_DCGraph_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCGraph', 755); +function $clinit_CompactionStrategy(){ + $clinit_CompactionStrategy = emptyMethod; + POLYOMINO = new CompactionStrategy; +} + +function CompactionStrategy(){ + Enum.call(this, 'POLYOMINO', 0); +} + +function valueOf_24(name_0){ + $clinit_CompactionStrategy(); + return valueOf(($clinit_CompactionStrategy$Map() , $MAP_12), name_0); +} + +function values_30(){ + $clinit_CompactionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]); +} + +defineClass(481, 22, {3:1, 35:1, 22:1, 481:1}, CompactionStrategy); +var POLYOMINO; +var Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.disco.options', 'CompactionStrategy', 481, Ljava_lang_Enum_2_classLit, values_30, valueOf_24); +function $clinit_CompactionStrategy$Map(){ + $clinit_CompactionStrategy$Map = emptyMethod; + $MAP_12 = createValueOfMap(($clinit_CompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]))); +} + +var $MAP_12; +function $clinit_DisCoMetaDataProvider(){ + $clinit_DisCoMetaDataProvider = emptyMethod; + COMPONENT_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy() , POLYOMINO); + COMPONENT_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.disco.componentCompaction.strategy', COMPONENT_COMPACTION_STRATEGY_DEFAULT); + COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM = new Property('org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'); + DEBUG_DISCO_GRAPH = new Property('org.eclipse.elk.disco.debug.discoGraph'); + DEBUG_DISCO_POLYS = new Property('org.eclipse.elk.disco.debug.discoPolys'); +} + +function DisCoMetaDataProvider(){ + $clinit_DisCoMetaDataProvider(); +} + +defineClass(854, 1, $intern_90, DisCoMetaDataProvider); +_.apply_4 = function apply_50(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.strategy'), 'componentCompaction'), 'Connected Components Compaction Strategy'), 'Strategy for packing different connected components in order to save space and enhance readability of a graph.'), COMPONENT_COMPACTION_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'), 'componentCompaction'), 'Connected Components Layout Algorithm'), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoGraph'), 'debug'), 'DCGraph'), 'Access to the DCGraph is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoPolys'), 'debug'), 'List of Polyominoes'), 'Access to the polyominoes is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); + $apply_11((new DisCoOptions , registry)); +} +; +var COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM, COMPONENT_COMPACTION_STRATEGY, COMPONENT_COMPACTION_STRATEGY_DEFAULT, DEBUG_DISCO_GRAPH, DEBUG_DISCO_POLYS; +var Lorg_eclipse_elk_alg_disco_options_DisCoMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoMetaDataProvider', 854); +function $clinit_DisCoOptions(){ + $clinit_DisCoOptions = emptyMethod; + SPACING_COMPONENT_COMPONENT = ($clinit_CoreOptions() , SPACING_COMPONENT_COMPONENT_1); + EDGE_THICKNESS = EDGE_THICKNESS_1; + ASPECT_RATIO = ASPECT_RATIO_5; + PADDING = PADDING_6; + POLYOMINO_LOW_LEVEL_SORT_0 = ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT); + POLYOMINO_HIGH_LEVEL_SORT_0 = POLYOMINO_HIGH_LEVEL_SORT; + POLYOMINO_TRAVERSAL_STRATEGY_0 = POLYOMINO_TRAVERSAL_STRATEGY; + POLYOMINO_FILL_0 = POLYOMINO_FILL; + COMPONENT_COMPACTION_STRATEGY_0 = ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY); + COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0 = COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM; + DEBUG_DISCO_GRAPH_0 = DEBUG_DISCO_GRAPH; + DEBUG_DISCO_POLYS_0 = DEBUG_DISCO_POLYS; +} + +function $apply_11(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.disco'), 'ELK DisCo'), 'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'), new DisCoOptions$DiscoFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.aspectRatio', $getDefault(ASPECT_RATIO)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.padding', $getDefault(PADDING)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.lowLevelSort', $getDefault(POLYOMINO_LOW_LEVEL_SORT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.highLevelSort', $getDefault(POLYOMINO_HIGH_LEVEL_SORT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.traversalStrategy', $getDefault(POLYOMINO_TRAVERSAL_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.fill', $getDefault(POLYOMINO_FILL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.strategy', $getDefault(COMPONENT_COMPACTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm', $getDefault(COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoGraph', $getDefault(DEBUG_DISCO_GRAPH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoPolys', $getDefault(DEBUG_DISCO_POLYS_0)); +} + +function DisCoOptions(){ + $clinit_DisCoOptions(); +} + +defineClass(998, 1, $intern_90, DisCoOptions); +_.apply_4 = function apply_51(registry){ + $apply_11(registry); +} +; +var ASPECT_RATIO, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0, COMPONENT_COMPACTION_STRATEGY_0, DEBUG_DISCO_GRAPH_0, DEBUG_DISCO_POLYS_0, EDGE_THICKNESS, PADDING, POLYOMINO_FILL_0, POLYOMINO_HIGH_LEVEL_SORT_0, POLYOMINO_LOW_LEVEL_SORT_0, POLYOMINO_TRAVERSAL_STRATEGY_0, SPACING_COMPONENT_COMPONENT; +var Lorg_eclipse_elk_alg_disco_options_DisCoOptions_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions', 998); +function DisCoOptions$DiscoFactory(){ +} + +defineClass(999, 1, {}, DisCoOptions$DiscoFactory); +_.create_0 = function create_2(){ + var provider; + return provider = new DisCoLayoutProvider , provider; +} +; +_.destroy = function destroy(obj){ +} +; +var Lorg_eclipse_elk_alg_disco_options_DisCoOptions$DiscoFactory_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions/DiscoFactory', 999); +function $addExtensionsToPoly(this$static, elem){ + var baseX, baseY, compCorner, dir_0, elemPos, extension, extension$iterator, extensions, polyDir, polyoOffset, pos, xe, xp, xpPlusWidth, ye, yp, ypPlusWidth; + extensions = elem.extensions; + compCorner = $getMinCorner(this$static.representee); + polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); + baseX = compCorner.x_0 - polyoOffset.x_0; + baseY = compCorner.y_0 - polyoOffset.y_0; + elemPos = elem.bounds; + baseX = elemPos.x_0 - baseX; + baseY = elemPos.y_0 - baseY; + for (extension$iterator = new ArrayList$1(extensions); extension$iterator.i < extension$iterator.this$01.array.length;) { + extension = castTo($next_7(extension$iterator), 395); + pos = extension.offset; + xe = baseX + pos.x_0; + ye = baseY + pos.y_0; + xp = round_int(xe / this$static.cellSizeX); + yp = round_int(ye / this$static.cellSizeY); + dir_0 = extension.direction; + switch (dir_0.ordinal) { + case 0: + polyDir = ($clinit_Direction() , NORTH); + break; + case 1: + polyDir = ($clinit_Direction() , EAST); + break; + case 2: + polyDir = ($clinit_Direction() , SOUTH); + break; + default:polyDir = ($clinit_Direction() , WEST); + } + if (dir_0.horizontal) { + ypPlusWidth = round_int((ye + extension.width_0) / this$static.cellSizeY); + $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(yp), valueOf_4(ypPlusWidth))); + dir_0 == ($clinit_DCDirection() , WEST_0)?$weaklyBlockArea(this$static, 0, yp, xp, ypPlusWidth):$weaklyBlockArea(this$static, xp, yp, this$static.pWidth - 1, ypPlusWidth); + } + else { + xpPlusWidth = round_int((xe + extension.width_0) / this$static.cellSizeX); + $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(xp), valueOf_4(xpPlusWidth))); + dir_0 == ($clinit_DCDirection() , NORTH_0)?$weaklyBlockArea(this$static, xp, 0, xpPlusWidth, yp):$weaklyBlockArea(this$static, xp, yp, xpPlusWidth, this$static.pHeight - 1); + } + } +} + +function $computeLowResDimension(dim, cellSize){ + var cellFit, fitTruncated; + cellFit = dim / cellSize; + fitTruncated = round_int(cellFit); + cellFit > fitTruncated && ++fitTruncated; + return fitTruncated; +} + +function $fillCells(this$static){ + var baseX, compCorner, curX, curY, polyoOffset, x_0, y_0; + compCorner = $getMinCorner(this$static.representee); + polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); + baseX = compCorner.x_0 - polyoOffset.x_0; + curY = compCorner.y_0 - polyoOffset.y_0; + for (y_0 = 0; y_0 < this$static.pHeight; y_0++) { + curX = baseX; + for (x_0 = 0; x_0 < this$static.pWidth; x_0++) { + $intersects(this$static.representee, new ElkRectangle_0(curX, curY, this$static.cellSizeX, this$static.cellSizeY)) && $set_5(this$static, x_0, y_0, false, true); + curX += this$static.cellSizeX; + } + curY += this$static.cellSizeY; + } +} + +function DCPolyomino(comp, csX, csY){ + var compDims, elem, elem$iterator; + Polyomino.call(this, new ArrayList); + this.cellSizeX = csX; + this.cellSizeY = csY; + this.representee = comp; + compDims = (comp.changed && $update(comp) , comp.bounds); + this.pWidth = $computeLowResDimension(compDims.x_0, this.cellSizeX); + this.pHeight = $computeLowResDimension(compDims.y_0, this.cellSizeY); + $reinitialize(this, this.pWidth, this.pHeight); + $fillCells(this); + for (elem$iterator = this.representee.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + elem.extensions.array.length > 0 && $addExtensionsToPoly(this, elem); + } +} + +defineClass(562, 167, {321:1, 167:1, 562:1}, DCPolyomino); +_.cellSizeX = 0; +_.cellSizeY = 0; +_.pHeight = 0; +_.pWidth = 0; +var Lorg_eclipse_elk_alg_disco_structures_DCPolyomino_2_classLit = createForClass('org.eclipse.elk.alg.disco.structures', 'DCPolyomino', 562); +function $clinit_ElkGraphComponentsProcessor(){ + $clinit_ElkGraphComponentsProcessor = emptyMethod; + visited_0 = new ArrayList; + incidenceMap = new HashMap; + components_0 = new ArrayList; +} + +function addNodesToIncidenceSet(incidentNodes, edges, chooseNode){ + var edge, edge$iterator; + for (edge$iterator = edges.iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 79); + $add_6(incidentNodes, castTo(chooseNode.apply_0(edge), 33)); + } +} + +function computeIncidences(nodes){ + var adjacentAndInsideParent, adjacentNodes, connectedToParentPort, edges, incomingEdge, incomingEdge$iterator, node, node$iterator, nodesAtPort, outgoingEdge, outgoingEdge$iterator, port, sameHierarchyLevel; + adjacentAndInsideParent = new HashMap; + for (node$iterator = new AbstractEList$EIterator(nodes); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + adjacentNodes = new HashSet; + $put_6(incidenceMap, node, adjacentNodes); + sameHierarchyLevel = new ElkGraphComponentsProcessor$lambda$0$Type; + edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)])))), 83); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(($clinit_Boolean() , true)), 14), new ElkGraphComponentsProcessor$lambda$1$Type); + connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); + for (incomingEdge$iterator = connectedToParentPort.iterator_0(); incomingEdge$iterator.hasNext_0();) { + incomingEdge = castTo(incomingEdge$iterator.next_1(), 79); + port = getSourcePort(incomingEdge); + if (port) { + nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); + if (!nodesAtPort) { + nodesAtPort = getInnerNeighborsOfPort(port); + $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); + } + $addAll(adjacentNodes, nodesAtPort); + } + } + edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH])))), 83); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(true), 14), new ElkGraphComponentsProcessor$lambda$3$Type); + connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); + for (outgoingEdge$iterator = connectedToParentPort.iterator_0(); outgoingEdge$iterator.hasNext_0();) { + outgoingEdge = castTo(outgoingEdge$iterator.next_1(), 79); + port = getTargetPort(outgoingEdge); + if (port) { + nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); + if (!nodesAtPort) { + nodesAtPort = getInnerNeighborsOfPort(port); + $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); + } + $addAll(adjacentNodes, nodesAtPort); + } + } + } +} + +function dfs(start_0, component){ + var adjacentNodes, node, node$iterator; + $add_3(visited_0, start_0); + component.add_2(start_0); + adjacentNodes = castTo($get_10(incidenceMap, start_0), 21); + if (adjacentNodes) { + for (node$iterator = adjacentNodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + $indexOf_3(visited_0, node, 0) != -1 || dfs(node, component); + } + } +} + +function getInnerNeighborsOfPort(port){ + var allEdges, inwardsPredicate, nodeMapper, portParent; + portParent = $getParent_3(port); + inwardsPredicate = new ElkGraphComponentsProcessor$lambda$5$Type(portParent); + nodeMapper = new ElkGraphComponentsProcessor$lambda$6$Type(portParent); + allEdges = new ArrayList; + $addAll_2(allEdges, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); + $addAll_2(allEdges, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); + return castTo($collect_1($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(allEdges, 16)), inwardsPredicate), nodeMapper), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); +} + +function lambda$0_14(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return $getParent_2(getSourceNode(edge_0)) == $getParent_2(getTargetNode_0(edge_0)); +} + +function lambda$2_1(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return getSourceNode(edge_0) == $getParent_2(getTargetNode_0(edge_0)); +} + +function lambda$4_1(edge_0){ + $clinit_ElkGraphComponentsProcessor(); + return getTargetNode_0(edge_0) == $getParent_2(getSourceNode(edge_0)); +} + +function lambda$5_0(portParent_0, edge_1){ + $clinit_ElkGraphComponentsProcessor(); + return portParent_0 == $getParent_2(getSourceNode(edge_1)) || portParent_0 == $getParent_2(getTargetNode_0(edge_1)); +} + +function lambda$6(portParent_0, edge_1){ + $clinit_ElkGraphComponentsProcessor(); + return portParent_0 == getSourceNode(edge_1)?getTargetNode_0(edge_1):getSourceNode(edge_1); +} + +function split_2(graph){ + $clinit_ElkGraphComponentsProcessor(); + var children, component, node, node$iterator; + visited_0 = new ArrayList; + incidenceMap = new HashMap; + components_0 = new ArrayList; + children = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); + computeIncidences(children); + for (node$iterator = new AbstractEList$EIterator(children); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + if ($indexOf_3(visited_0, node, 0) == -1) { + component = new ArrayList; + $add_3(components_0, component); + dfs(node, component); + } + } + return components_0; +} + +var components_0, incidenceMap, visited_0; +function $test(arg0){ + return lambda$0_14(castTo(arg0, 79)); +} + +function ElkGraphComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1268, 1, $intern_39, ElkGraphComponentsProcessor$lambda$0$Type); +_.test_0 = function test_12(arg0){ + return $test(arg0); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$0$Type', 1268); +function ElkGraphComponentsProcessor$lambda$1$Type(){ +} + +defineClass(1269, 1, {}, ElkGraphComponentsProcessor$lambda$1$Type); +_.apply_0 = function apply_52(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getSourceNode(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$1$Type', 1269); +function ElkGraphComponentsProcessor$lambda$2$Type(){ +} + +defineClass(1270, 1, $intern_39, ElkGraphComponentsProcessor$lambda$2$Type); +_.test_0 = function test_13(arg0){ + return lambda$2_1(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$2$Type', 1270); +function ElkGraphComponentsProcessor$lambda$3$Type(){ +} + +defineClass(1271, 1, {}, ElkGraphComponentsProcessor$lambda$3$Type); +_.apply_0 = function apply_53(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getTargetNode_0(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$3$Type', 1271); +function ElkGraphComponentsProcessor$lambda$4$Type(){ +} + +defineClass(1272, 1, $intern_39, ElkGraphComponentsProcessor$lambda$4$Type); +_.test_0 = function test_14(arg0){ + return lambda$4_1(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$4$Type', 1272); +function ElkGraphComponentsProcessor$lambda$5$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1273, 1, $intern_39, ElkGraphComponentsProcessor$lambda$5$Type); +_.test_0 = function test_15(arg0){ + return lambda$5_0(this.portParent_0, castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$5$Type', 1273); +function ElkGraphComponentsProcessor$lambda$6$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1274, 1, {}, ElkGraphComponentsProcessor$lambda$6$Type); +_.apply_0 = function apply_54(arg0){ + return lambda$6(this.portParent_0, castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$6$Type', 1274); +function $adjustFirstSegment(source, chain, dir_0){ + var firstPoint, iter; + firstPoint = (checkCriticalElement(chain.size_0 != 0) , castTo($removeNode_0(chain, chain.header.next_0), 8)); + switch (dir_0.ordinal) { + case 0: + firstPoint.y_0 = 0; + break; + case 2: + firstPoint.y_0 = source.height; + break; + case 3: + firstPoint.x_0 = 0; + break; + default:firstPoint.x_0 = source.width_0; + } + iter = $listIterator_2(chain, 0); + $add_8(iter, firstPoint); + return chain; +} + +function $adjustRelatedPort(port, edgePoint, dir_0){ + dir_0.horizontal?$setY_3(port, edgePoint.y_0 - port.height / 2):$setX_2(port, edgePoint.x_0 - port.width_0 / 2); +} + +function $applyLayout(this$static){ + var adjustedPorts, dir_0, edge, edgeSection, graphDimensions, inEntry, inEntry$iterator, label_0, label$iterator, newHeight, newPoints, newWidth, oldHeight, oldWidth, outEntry, outEntry$iterator, port, port$iterator, portToAdjust, px, py, xFactor, yFactor; + graphDimensions = this$static.transformedGraph.dimensions; + newWidth = graphDimensions.x_0; + newHeight = graphDimensions.y_0; + oldWidth = this$static.parent_0.width_0; + oldHeight = this$static.parent_0.height; + $setDimensions_0(this$static.parent_0, graphDimensions.x_0, graphDimensions.y_0); + xFactor = newWidth / oldWidth; + yFactor = newHeight / oldHeight; + for (label$iterator = new AbstractEList$EIterator($getLabels_1(this$static.parent_0)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + $setX_2(label_0, label_0.x_0 * xFactor); + $setY_3(label_0, label_0.y_0 * yFactor); + } + for (port$iterator = new AbstractEList$EIterator($getPorts_3(this$static.parent_0)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + px = port.x_0; + py = port.y_0; + px > 0 && $setX_2(port, px * xFactor); + py > 0 && $setY_3(port, py * yFactor); + } + $forEach_2(this$static.elementMapping, new ElkGraphTransformer$OffsetApplier); + adjustedPorts = new ArrayList; + for (inEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.incomingExtensionsMapping)).this$01); inEntry$iterator.hasNext;) { + inEntry = $next_4(inEntry$iterator); + edge = castTo(inEntry.getKey(), 79); + dir_0 = castTo(inEntry.getValue(), 395).direction; + edgeSection = firstEdgeSection(edge, false, false); + newPoints = $adjustFirstSegment(getSourceNode(edge), createVectorChain(edgeSection), dir_0); + applyVectorChain(newPoints, edgeSection); + portToAdjust = getSourcePort(edge); + if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { + adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; + $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.header.next_0.value_0, 8)), dir_0); + } + } + for (outEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.outgoingExtensionsMapping)).this$01); outEntry$iterator.hasNext;) { + outEntry = $next_4(outEntry$iterator); + edge = castTo(outEntry.getKey(), 79); + dir_0 = castTo(outEntry.getValue(), 395).direction; + edgeSection = firstEdgeSection(edge, false, false); + newPoints = $adjustFirstSegment(getTargetNode_0(edge), reverse_3(createVectorChain(edgeSection)), dir_0); + newPoints = reverse_3(newPoints); + applyVectorChain(newPoints, edgeSection); + portToAdjust = getTargetPort(edge); + if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { + adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; + $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.tail.prev.value_0, 8)), dir_0); + } + } +} + +function $computeIntersection(p1, p2, p3, p4){ + var denominator, factor1, factor2, x_0, x1, x2, x3, x4, y_0, y1, y2, y3, y4; + x1 = p1.x_0; + y1 = p1.y_0; + x2 = p2.x_0; + y2 = p2.y_0; + x3 = p3.x_0; + y3 = p3.y_0; + x4 = p4.x_0; + y4 = p4.y_0; + factor1 = x1 * y2 - y1 * x2; + factor2 = x3 * y4 - y3 * x4; + denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); + x_0 = (factor1 * (x3 - x4) - factor2 * (x1 - x2)) / denominator; + y_0 = (factor1 * (y3 - y4) - factor2 * (y1 - y2)) / denominator; + return new KVector_1(x_0, y_0); +} + +function $getContour(edgePoints, thickness){ + var ccwMerged, ccwPoints, current, currentPoint, cwMerged, cwPoints, i, i0, i1, i2, intersectionPoint, numberOfPoints, orthPoints, predecessor, radius, successor; + ccwPoints = new ArrayList; + cwPoints = new ArrayList; + radius = thickness / 2; + numberOfPoints = edgePoints.size_1(); + current = castTo(edgePoints.get_0(0), 8); + successor = castTo(edgePoints.get_0(1), 8); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + for (i0 = 2; i0 < numberOfPoints; i0++) { + predecessor = current; + current = successor; + successor = castTo(edgePoints.get_0(i0), 8); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, predecessor.x_0, predecessor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + } + orthPoints = $getOrthogonalPoints(successor.x_0, successor.y_0, current.x_0, current.y_0, radius); + $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); + $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); + ccwMerged = new KVectorChain; + cwMerged = new ArrayList; + $add_7(ccwMerged, (checkCriticalElementIndex(0, ccwPoints.array.length) , castTo(ccwPoints.array[0], 8))); + for (i1 = 1; i1 < ccwPoints.array.length - 2; i1 += 2) { + currentPoint = (checkCriticalElementIndex(i1, ccwPoints.array.length) , castTo(ccwPoints.array[i1], 8)); + intersectionPoint = $computeIntersection((checkCriticalElementIndex(i1 - 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 - 1], 8)), currentPoint, (checkCriticalElementIndex(i1 + 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 1], 8)), (checkCriticalElementIndex(i1 + 2, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 2], 8))); + !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?($addNode_0(ccwMerged, currentPoint, ccwMerged.tail.prev, ccwMerged.tail) , true):($addNode_0(ccwMerged, intersectionPoint, ccwMerged.tail.prev, ccwMerged.tail) , true); + } + $add_7(ccwMerged, castTo($get_11(ccwPoints, ccwPoints.array.length - 1), 8)); + $add_3(cwMerged, (checkCriticalElementIndex(0, cwPoints.array.length) , castTo(cwPoints.array[0], 8))); + for (i2 = 1; i2 < cwPoints.array.length - 2; i2 += 2) { + currentPoint = (checkCriticalElementIndex(i2, cwPoints.array.length) , castTo(cwPoints.array[i2], 8)); + intersectionPoint = $computeIntersection((checkCriticalElementIndex(i2 - 1, cwPoints.array.length) , castTo(cwPoints.array[i2 - 1], 8)), currentPoint, (checkCriticalElementIndex(i2 + 1, cwPoints.array.length) , castTo(cwPoints.array[i2 + 1], 8)), (checkCriticalElementIndex(i2 + 2, cwPoints.array.length) , castTo(cwPoints.array[i2 + 2], 8))); + !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?(cwMerged.array[cwMerged.array.length] = currentPoint , true):(cwMerged.array[cwMerged.array.length] = intersectionPoint , true); + } + $add_3(cwMerged, castTo($get_11(cwPoints, cwPoints.array.length - 1), 8)); + for (i = cwMerged.array.length - 1; i >= 0; i--) { + $add_7(ccwMerged, (checkCriticalElementIndex(i, cwMerged.array.length) , castTo(cwMerged.array[i], 8))); + } + return ccwMerged; +} + +function $getOrthogonalPoints(curX, curY, nxtX, nxtY, radius){ + var angleRadians, difX, difY, orthAngleCCW, orthAngleCW, xCCW, xCW, yCCW, yCW; + difX = nxtX - curX; + difY = nxtY - curY; + angleRadians = $wnd.Math.atan2(difX, difY); + orthAngleCCW = angleRadians + $intern_97; + orthAngleCW = angleRadians - $intern_97; + xCCW = radius * $wnd.Math.sin(orthAngleCCW) + curX; + yCCW = radius * $wnd.Math.cos(orthAngleCCW) + curY; + xCW = radius * $wnd.Math.sin(orthAngleCW) + curX; + yCW = radius * $wnd.Math.cos(orthAngleCW) + curY; + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [new KVector_1(xCCW, yCCW), new KVector_1(xCW, yCW)])); +} + +function $importElkEdge(this$static, edge, newComponent){ + var componentLabel, contour, edgeSection, label_0, label$iterator, labels, points, shape_0, thickness; + edgeSection = firstEdgeSection(edge, false, false); + points = createVectorChain(edgeSection); + thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); + contour = $getContour(points, thickness + this$static.componentSpacing); + shape_0 = new DCElement(contour); + $copyProperties(shape_0, edge); + $put_6(this$static.elementMapping, edge, shape_0); + newComponent.array[newComponent.array.length] = shape_0; + labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + newComponent.array[newComponent.array.length] = componentLabel; + } + return shape_0; +} + +function $importElkEdges(this$static, edges, newComponent){ + var componentEdge, edge, edge$iterator; + for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 79); + componentEdge = castTo($get_10(this$static.elementMapping, edge), 266); + !componentEdge && ($getParent_2(getSourceNode(edge)) == $getParent_2(getTargetNode_0(edge))?$importElkEdge(this$static, edge, newComponent):getSourceNode(edge) == $getParent_2(getTargetNode_0(edge))?$get_10(this$static.incomingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getTargetNode_0(edge)) != null && $importExtension(this$static, edge, newComponent, false):$get_10(this$static.outgoingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getSourceNode(edge)) != null && $importExtension(this$static, edge, newComponent, true)); + } +} + +function $importElkShape(this$static, element, considerWhenApplyingOffset, offsetX, offsetY){ + var coords, halfComponentSpacing, shape_0, x0, x1, y0, y1; + if (!(instanceOf(element, 239) || instanceOf(element, 354) || instanceOf(element, 186))) { + throw toJs(new IllegalArgumentException_0('Method only works for ElkNode-, ElkLabel and ElkPort-objects.')); + } + halfComponentSpacing = this$static.componentSpacing / 2; + x0 = element.x_0 + offsetX - halfComponentSpacing; + y0 = element.y_0 + offsetY - halfComponentSpacing; + x1 = x0 + element.width_0 + this$static.componentSpacing; + y1 = y0 + element.height + this$static.componentSpacing; + coords = new KVectorChain; + $add_7(coords, new KVector_1(x0, y0)); + $add_7(coords, new KVector_1(x0, y1)); + $add_7(coords, new KVector_1(x1, y1)); + $add_7(coords, new KVector_1(x1, y0)); + shape_0 = new DCElement(coords); + $copyProperties(shape_0, element); + considerWhenApplyingOffset && $put_6(this$static.elementMapping, element, shape_0); + return shape_0; +} + +function $importExtension(this$static, edge, newComponent, outgoingExtension){ + var componentLabel, contour, dir_0, edgeSection, extParent, extensionWidth, fixedEdgePoints, innerPoint, label_0, label$iterator, labels, middlePos, outerPoint, points, shape_0, thickness; + edgeSection = firstEdgeSection(edge, false, false); + points = createVectorChain(edgeSection); + outgoingExtension && (points = reverse_3(points)); + thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); + outerPoint = (checkCriticalElement(points.size_0 != 0) , castTo(points.header.next_0.value_0, 8)); + innerPoint = castTo($get_7(points, 1), 8); + if (points.size_0 > 2) { + fixedEdgePoints = new ArrayList; + $addAll_2(fixedEdgePoints, new AbstractList$SubList(points, 1, points.size_0)); + contour = $getContour(fixedEdgePoints, thickness + this$static.componentSpacing); + shape_0 = new DCElement(contour); + $copyProperties(shape_0, edge); + newComponent.array[newComponent.array.length] = shape_0; + } + else { + outgoingExtension?(shape_0 = castTo($get_10(this$static.elementMapping, getSourceNode(edge)), 266)):(shape_0 = castTo($get_10(this$static.elementMapping, getTargetNode_0(edge)), 266)); + } + extParent = getSourceNode(edge); + outgoingExtension && (extParent = getTargetNode_0(edge)); + dir_0 = $nearestSide(outerPoint, extParent); + extensionWidth = thickness + this$static.componentSpacing; + if (dir_0.horizontal) { + extensionWidth += $wnd.Math.abs(outerPoint.y_0 - innerPoint.y_0); + middlePos = new KVector_1(innerPoint.x_0, (innerPoint.y_0 + outerPoint.y_0) / 2); + } + else { + extensionWidth += $wnd.Math.abs(outerPoint.x_0 - innerPoint.x_0); + middlePos = new KVector_1((innerPoint.x_0 + outerPoint.x_0) / 2, innerPoint.y_0); + } + outgoingExtension?$put_6(this$static.outgoingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)):$put_6(this$static.incomingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)); + $put_6(this$static.elementMapping, edge, shape_0); + labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + newComponent.array[newComponent.array.length] = componentLabel; + } +} + +function $importGraph(this$static, graph){ + var component, component$iterator, componentLabel, componentNode, componentPort, components, edgeSet, label_0, label$iterator, label$iterator0, labels, node, node$iterator, nodeX, nodeY, port, port$iterator, portX, portY, ports, result, subResult; + this$static.parent_0 = graph; + components = split_2(graph); + result = new ArrayList; + for (component$iterator = new ArrayList$1(components); component$iterator.i < component$iterator.this$01.array.length;) { + component = castTo($next_7(component$iterator), 15); + subResult = new ArrayList; + result.array[result.array.length] = subResult; + edgeSet = new HashSet; + for (node$iterator = component.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + componentNode = $importElkShape(this$static, node, true, 0, 0); + subResult.array[subResult.array.length] = componentNode; + nodeX = node.x_0; + nodeY = node.y_0; + new KVector_1(nodeX, nodeY); + labels = (!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels); + for (label$iterator0 = new AbstractEList$EIterator(labels); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator0), 137); + componentLabel = $importElkShape(this$static, label_0, false, nodeX, nodeY); + subResult.array[subResult.array.length] = componentLabel; + } + ports = (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports); + for (port$iterator = new AbstractEList$EIterator(ports); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + componentPort = $importElkShape(this$static, port, false, nodeX, nodeY); + subResult.array[subResult.array.length] = componentPort; + portX = port.x_0 + nodeX; + portY = port.y_0 + nodeY; + labels = (!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels); + for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + componentLabel = $importElkShape(this$static, label_0, false, portX, portY); + subResult.array[subResult.array.length] = componentLabel; + } + } + $addAll(edgeSet, newHashSet(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [allOutgoingEdges(node), allIncomingEdges(node)])))); + } + $importElkEdges(this$static, edgeSet, subResult); + } + this$static.transformedGraph = new DCGraph_0(result); + $copyProperties(this$static.transformedGraph, graph); + return this$static.transformedGraph; +} + +function $nearestSide(point, node){ + var distance, result, shortestDistance; + shortestDistance = $intern_98; + result = ($clinit_DCDirection() , NORTH_0); + shortestDistance = $wnd.Math.abs(point.y_0); + distance = $wnd.Math.abs(node.height - point.y_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = SOUTH_0; + } + distance = $wnd.Math.abs(point.x_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = WEST_0; + } + distance = $wnd.Math.abs(node.width_0 - point.x_0); + if (distance < shortestDistance) { + shortestDistance = distance; + result = EAST_0; + } + return result; +} + +function ElkGraphTransformer(componentSpacing){ + this.elementMapping = new HashMap; + this.incomingExtensionsMapping = new HashMap; + this.outgoingExtensionsMapping = new HashMap; + this.componentSpacing = componentSpacing; +} + +defineClass(1241, 1, {}, ElkGraphTransformer); +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer', 1241); +function $accept_2(this$static, elem, poly){ + var applier, edgeSection, points, shape_0; + this$static.offset = poly.cp.offset; + if (instanceOf(elem, 352)) { + edgeSection = firstEdgeSection(castTo(elem, 79), false, false); + points = createVectorChain(edgeSection); + applier = new ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$static); + $forEach_0(points, applier); + applyVectorChain(points, edgeSection); + elem.getProperty(($clinit_CoreOptions() , JUNCTION_POINTS_0)) != null && $forEach_0(castTo(elem.getProperty(JUNCTION_POINTS_0), 74), applier); + } + else { + shape_0 = castTo(elem, 470); + shape_0.setX(shape_0.getX() + this$static.offset.x_0); + shape_0.setY(shape_0.getY() + this$static.offset.y_0); + } +} + +function ElkGraphTransformer$OffsetApplier(){ +} + +defineClass(1242, 1, {}, ElkGraphTransformer$OffsetApplier); +_.accept_1 = function accept_55(elem, poly){ + $accept_2(this, castTo(elem, 160), castTo(poly, 266)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier', 1242); +function $accept_3(this$static, point){ + $add_18(point, this$static.this$11.offset.x_0, this$static.this$11.offset.y_0); +} + +function ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$1){ + this.this$11 = this$1; +} + +defineClass(1243, 1, $intern_19, ElkGraphTransformer$OffsetApplier$OffSetToChainApplier); +_.accept = function accept_56(point){ + $accept_3(this, castTo(point, 8)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier$OffSetToChainApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier', 1243); +function $buildIncidenceLists(graph){ + var edge, edge$iterator, incidence, n, node, node$iterator; + n = graph.nodes.array.length; + incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + incidence[node.id_0] = new LinkedList; + } + for (edge$iterator = new ArrayList$1(graph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + incidence[edge.source.id_0].add_2(edge); + incidence[edge.target.id_0].add_2(edge); + } + return incidence; +} + +function $dfs_0(this$static, node, last, graph, visited, incidence){ + var component, edge, edge$iterator; + if (!visited[node.id_0]) { + visited[node.id_0] = true; + component = graph; + !component && (component = new FGraph); + $add_3(component.nodes, node); + for (edge$iterator = incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 282); + if (edge.target == last || edge.source == last) { + continue; + } + edge.source != node && $dfs_0(this$static, edge.source, node, component, visited, incidence); + edge.target != node && $dfs_0(this$static, edge.target, node, component, visited, incidence); + $add_3(component.edges, edge); + $addAll_2(component.labels, edge.labels); + } + return component; + } + return null; +} + +function $moveGraph(destGraph, sourceGraph, offsetx, offsety){ + var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, label_0, label$iterator, node, node$iterator; + graphOffset = new KVector_1(offsetx, offsety); + $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_0() , BB_UPLEFT)), 8)); + for (node$iterator = new ArrayList$1(sourceGraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + $add_19(node.position, graphOffset); + $add_3(destGraph.nodes, node); + } + for (edge$iterator = new ArrayList$1(sourceGraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + for (bendpoint$iterator = new ArrayList$1(edge.bendpoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { + bendpoint = castTo($next_7(bendpoint$iterator), 559); + $add_19(bendpoint.position, graphOffset); + } + $add_3(destGraph.edges, edge); + } + for (label$iterator = new ArrayList$1(sourceGraph.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 447); + $add_19(label_0.position, graphOffset); + $add_3(destGraph.labels, label_0); + } +} + +function $recombine(components){ + var broadestRow, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, result, size_0, spacing, totalArea, xpos, ypos; + if (components.size_1() == 1) { + return castTo(components.get_0(0), 231); + } + else if (components.size_1() <= 0) { + return new FGraph; + } + for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 231); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_42; + maxy = $intern_42; + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + priority += castTo($getProperty(node, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + minx = $wnd.Math.min(minx, node.position.x_0 - node.size_0.x_0 / 2); + miny = $wnd.Math.min(miny, node.position.y_0 - node.size_0.y_0 / 2); + maxx = $wnd.Math.max(maxx, node.position.x_0 + node.size_0.x_0 / 2); + maxy = $wnd.Math.max(maxy, node.position.y_0 + node.size_0.y_0 / 2); + } + $setProperty_0(graph, ($clinit_ForceOptions() , PRIORITY), valueOf_4(priority)); + $setProperty_0(graph, ($clinit_InternalProperties_0() , BB_UPLEFT), new KVector_1(minx, miny)); + $setProperty_0(graph, BB_LOWRIGHT, new KVector_1(maxx, maxy)); + } + $clinit_Collections(); + components.sort_0(new ComponentsProcessor$1); + result = new FGraph; + $copyProperties(result, castTo(components.get_0(0), 94)); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 231); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_ForceOptions() , ASPECT_RATIO_0))))); + spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 231); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $moveGraph(result, graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + return result; +} + +function $split_1(this$static, graph){ + var comp, comp$iterator, components, id_0, incidence, node, node$iterator, node$iterator0, separate, visited; + separate = castToBoolean($getProperty(graph, ($clinit_ForceOptions() , SEPARATE_CONNECTED_COMPONENTS))); + if (separate == null || (checkCriticalNotNull(separate) , separate)) { + visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.nodes.array.length, 16, 1); + incidence = $buildIncidenceLists(graph); + components = new LinkedList; + for (node$iterator0 = new ArrayList$1(graph.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 144); + comp = $dfs_0(this$static, node, null, null, visited, incidence); + if (comp) { + $copyProperties(comp, graph); + $addNode_0(components, comp, components.tail.prev, components.tail); + } + } + if (components.size_0 > 1) { + for (comp$iterator = $listIterator_2(components, 0); comp$iterator.currentNode != comp$iterator.this$01.tail;) { + comp = castTo($next_10(comp$iterator), 231); + id_0 = 0; + for (node$iterator = new ArrayList$1(comp.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit, 1), $intern_100, 231, 0, [graph])); +} + +function ComponentsProcessor(){ +} + +defineClass(753, 1, {}, ComponentsProcessor); +var Lorg_eclipse_elk_alg_force_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor', 753); +function $compare_7(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_ForceOptions() , PRIORITY)), 19).value_0 - castTo($getProperty(graph1, PRIORITY), 19).value_0; + if (prio == 0) { + size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph1, BB_UPLEFT), 8)); + size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT), 8)), castTo($getProperty(graph2, BB_UPLEFT), 8)); + return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); + } + return prio; +} + +function ComponentsProcessor$1(){ +} + +defineClass(1232, 1, $intern_88, ComponentsProcessor$1); +_.compare_1 = function compare_28(graph1, graph2){ + return $compare_7(castTo(graph1, 231), castTo(graph2, 231)); +} +; +_.equals_0 = function equals_80(other){ + return this === other; +} +; +_.reversed = function reversed_20(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_force_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor/1', 1232); +function $applyLayout_0(fgraph){ + var endLocation, fedge, fedge$iterator, flabel, flabel$iterator, fnode, fnode$iterator, height, kedge, kedgeSection, kgraph, klabel, knode, labelPos, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, nodePos, object, offset, padding, pos, size_0, startLocation, width_0, v, v_0; + kgraph = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , ORIGIN)), 33); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_42; + maxYPos = $intern_42; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + pos = node.position; + size_0 = node.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + padding = castTo($getProperty_0(kgraph, ($clinit_ForceOptions() , PADDING_0)), 116); + offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); + for (fnode$iterator = new ArrayList$1(fgraph.nodes); fnode$iterator.i < fnode$iterator.this$01.array.length;) { + fnode = castTo($next_7(fnode$iterator), 144); + object = $getProperty(fnode, ORIGIN); + if (instanceOf(object, 239)) { + knode = castTo(object, 33); + nodePos = $add_19(fnode.position, offset); + $setLocation_1(knode, nodePos.x_0 - knode.width_0 / 2, nodePos.y_0 - knode.height / 2); + } + } + for (fedge$iterator = new ArrayList$1(fgraph.edges); fedge$iterator.i < fedge$iterator.this$01.array.length;) { + fedge = castTo($next_7(fedge$iterator), 282); + kedge = castTo($getProperty(fedge, ORIGIN), 79); + kedgeSection = firstEdgeSection(kedge, true, true); + startLocation = (v = $sub_0($clone_0(fedge.target.position), fedge.source.position) , clipVector(v, fedge.source.size_0.x_0, fedge.source.size_0.y_0) , $add_19(v, fedge.source.position)); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + endLocation = (v_0 = $sub_0($clone_0(fedge.source.position), fedge.target.position) , clipVector(v_0, fedge.target.size_0.x_0, fedge.target.size_0.y_0) , $add_19(v_0, fedge.target.position)); + $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); + } + for (flabel$iterator = new ArrayList$1(fgraph.labels); flabel$iterator.i < flabel$iterator.this$01.array.length;) { + flabel = castTo($next_7(flabel$iterator), 447); + klabel = castTo($getProperty(flabel, ORIGIN), 137); + labelPos = $add_19(flabel.position, offset); + $setLocation_1(klabel, labelPos.x_0, labelPos.y_0); + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + resizeNode_1(kgraph, width_0, height, false, true); +} + +function $importGraph_0(kgraph){ + var elemMap, fgraph; + fgraph = new FGraph; + $copyProperties(fgraph, kgraph); + $setProperty_0(fgraph, ($clinit_InternalProperties_0() , ORIGIN), kgraph); + elemMap = new HashMap; + $transformNodes(kgraph, fgraph, elemMap); + $transformEdges(kgraph, fgraph, elemMap); + return fgraph; +} + +function $transformEdges(parentNode, fgraph, elemMap){ + var kedge, kedge$iterator, klabel, klabel$iterator, knode, knode$iterator, newEdge, newLabel; + for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { + knode = castTo($doNext(knode$iterator), 33); + for (kedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(knode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(kedge$iterator);) { + kedge = castTo($next_0(kedge$iterator), 79); + !kedge.sources && (kedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 4, 7)); + if (!(kedge.sources.size_0 <= 1 && (!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets.size_0 <= 1))) { + throw toJs(new UnsupportedGraphException('Graph must not contain hyperedges.')); + } + if (!$isHierarchical(kedge) && knode != connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))) { + newEdge = new FEdge; + $copyProperties(newEdge, kedge); + $setProperty_0(newEdge, ($clinit_InternalProperties_0() , ORIGIN), kedge); + $setSource(newEdge, castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, knode)), 144)); + $setTarget(newEdge, castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))), 144)); + $add_3(fgraph.edges, newEdge); + for (klabel$iterator = new AbstractEList$EIterator((!kedge.labels && (kedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, kedge, 1, 7)) , kedge.labels)); klabel$iterator.cursor != klabel$iterator.this$01_2.size_1();) { + klabel = castTo($doNext(klabel$iterator), 137); + newLabel = new FLabel(newEdge, klabel.text_0); + $copyProperties(newLabel, klabel); + $setProperty_0(newLabel, ORIGIN, klabel); + newLabel.size_0.x_0 = $wnd.Math.max(klabel.width_0, 1); + newLabel.size_0.y_0 = $wnd.Math.max(klabel.height, 1); + $refreshPosition(newLabel); + $add_3(fgraph.labels, newLabel); + } + } + } + } +} + +function $transformNodes(parentNode, fgraph, elemMap){ + var index_0, knode, knode$iterator, label_0, newNode, portConstraints; + index_0 = 0; + for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { + knode = castTo($doNext(knode$iterator), 33); + label_0 = ''; + (!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels).size_0 == 0 || (label_0 = castTo($get_20((!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels), 0), 137).text_0); + newNode = new FNode(label_0); + $copyProperties(newNode, knode); + $setProperty_0(newNode, ($clinit_InternalProperties_0() , ORIGIN), knode); + newNode.id_0 = index_0++; + newNode.position.x_0 = knode.x_0 + knode.width_0 / 2; + newNode.position.y_0 = knode.y_0 + knode.height / 2; + newNode.size_0.x_0 = $wnd.Math.max(knode.width_0, 1); + newNode.size_0.y_0 = $wnd.Math.max(knode.height, 1); + $add_3(fgraph.nodes, newNode); + $put_9(elemMap.hashCodeMap, knode, newNode); + portConstraints = castTo($getProperty_0(knode, ($clinit_ForceOptions() , PORT_CONSTRAINTS)), 98); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4) && (portConstraints = FREE); + } +} + +function $layout(this$static, elkGraph, progressMonitor){ + var builder, comp, comp$iterator, components, fgraph; + $begin(progressMonitor, 'ELK Force', 1); + $booleanValue(castToBoolean($getProperty_0(elkGraph, ($clinit_ForceOptions() , OMIT_NODE_MICRO_LAYOUT)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(elkGraph))) , builder)); + fgraph = $importGraph_0(elkGraph); + $setOptions(fgraph); + $updateModel(this$static, castTo($getProperty(fgraph, MODEL_0), 424)); + components = $split_1(this$static.componentsProcessor, fgraph); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 231); + $layout_0(this$static.forceModel, comp, $subTask(progressMonitor, 1 / components.size_1())); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + $done_0(progressMonitor); +} + +function $setOptions(fgraph){ + var randomSeed, val; + randomSeed = castTo($getProperty(fgraph, ($clinit_ForceOptions() , RANDOM_SEED)), 19); + if (randomSeed) { + val = randomSeed.value_0; + val == 0?$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random):$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(val)); + } + else { + $setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(1)); + } +} + +function $updateModel(this$static, strategy){ + switch (strategy.ordinal) { + case 0: + instanceOf(this$static.forceModel, 631) || (this$static.forceModel = new EadesModel); + break; + case 1: + instanceOf(this$static.forceModel, 632) || (this$static.forceModel = new FruchtermanReingoldModel); + } +} + +function ForceLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; +} + +defineClass(740, 209, $intern_96, ForceLayoutProvider); +_.layout = function layout_0(elkGraph, progressMonitor){ + $layout(this, elkGraph, progressMonitor); +} +; +var Lorg_eclipse_elk_alg_force_ForceLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ForceLayoutProvider', 740); +function FParticle(){ + this.position = new KVector; + this.size_0 = new KVector; +} + +defineClass(357, 134, {3:1, 357:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_force_graph_FParticle_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FParticle', 357); +function FBendpoint(edge){ + FParticle.call(this); + this.edge = edge; + $add_3(edge.bendpoints, this); +} + +defineClass(559, 357, {3:1, 559:1, 357:1, 94:1, 134:1}, FBendpoint); +_.toString_0 = function toString_80(){ + var index_0; + if (this.edge) { + index_0 = $indexOf_3(this.edge.bendpoints, this, 0); + return index_0 >= 0?'b' + index_0 + '[' + $toString_10(this.edge) + ']':'b[' + $toString_10(this.edge) + ']'; + } + return 'b_' + getHashCode_0(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FBendpoint_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FBendpoint', 559); +function $distributeBendpoints(this$static){ + var bendPoint, bendPoint$iterator, count, incr, pos, sourcePos, targetPos; + count = this$static.bendpoints.array.length; + if (count > 0) { + sourcePos = this$static.source.position; + targetPos = this$static.target.position; + incr = $scale($sub_0(new KVector_1(targetPos.x_0, targetPos.y_0), sourcePos), 1 / (count + 1)); + pos = new KVector_1(sourcePos.x_0, sourcePos.y_0); + for (bendPoint$iterator = new ArrayList$1(this$static.bendpoints); bendPoint$iterator.i < bendPoint$iterator.this$01.array.length;) { + bendPoint = castTo($next_7(bendPoint$iterator), 559); + bendPoint.position.x_0 = pos.x_0; + bendPoint.position.y_0 = pos.y_0; + $add_19(pos, incr); + } + } +} + +function $setSource(this$static, theSource){ + this$static.source = theSource; +} + +function $setTarget(this$static, theTarget){ + this$static.target = theTarget; +} + +function $toString_10(this$static){ + return !!this$static.source && !!this$static.target?$toString_11(this$static.source) + '->' + $toString_11(this$static.target):'e_' + getHashCode_0(this$static); +} + +function FEdge(){ + this.bendpoints = new ArrayList; + this.labels = new ArrayList; +} + +defineClass(282, 134, {3:1, 282:1, 94:1, 134:1}, FEdge); +_.toString_0 = function toString_81(){ + return $toString_10(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FEdge_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FEdge', 282); +function $calcAdjacency(this$static){ + var edge, edge$iterator, n; + n = this$static.nodes.array.length; + this$static.adjacency = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [n, n], 2); + for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + this$static.adjacency[edge.source.id_0][edge.target.id_0] += castTo($getProperty(edge, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + } +} + +function $getConnection(this$static, particle1, particle2){ + var node1, node2; + if (instanceOf(particle1, 144) && !!particle2) { + node1 = castTo(particle1, 144); + node2 = particle2; + return this$static.adjacency[node1.id_0][node2.id_0] + this$static.adjacency[node2.id_0][node1.id_0]; + } + return 0; +} + +function FGraph(){ + this.nodes = new ArrayList; + this.edges = new ArrayList; + this.labels = new ArrayList; + this.bendPoints = new ArrayList; +} + +defineClass(231, 134, {3:1, 231:1, 94:1, 134:1}, FGraph); +var Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FGraph', 231); +function $refreshPosition(this$static){ + var newLabelPosition, placeInline, pos, spacing, src_0, srcToTgt, tgt, toLabelCenter; + placeInline = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_ForceOptions() , EDGE_LABELS_INLINE)))); + src_0 = this$static.edge.source.position; + tgt = this$static.edge.target.position; + if (placeInline) { + srcToTgt = $scale($sub_0(new KVector_1(tgt.x_0, tgt.y_0), src_0), 0.5); + toLabelCenter = $scale($clone_0(this$static.size_0), 0.5); + newLabelPosition = $sub_0($add_19(new KVector_1(src_0.x_0, src_0.y_0), srcToTgt), toLabelCenter); + $set_9(this$static.position, newLabelPosition); + } + else { + spacing = $doubleValue(castToDouble($getProperty(this$static.edge, SPACING_EDGE_LABEL))); + pos = this$static.position; + if (src_0.x_0 >= tgt.x_0) { + if (src_0.y_0 >= tgt.y_0) { + pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; + pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 - spacing - this$static.size_0.y_0; + } + else { + pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; + pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 + spacing; + } + } + else { + if (src_0.y_0 >= tgt.y_0) { + pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; + pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 + spacing; + } + else { + pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; + pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 - spacing - this$static.size_0.y_0; + } + } + } +} + +function FLabel(fedge, text_0){ + FParticle.call(this); + this.edge = fedge; + this.text_0 = text_0; + $add_3(this.edge.labels, this); +} + +defineClass(447, 357, {3:1, 447:1, 357:1, 94:1, 134:1}, FLabel); +_.toString_0 = function toString_82(){ + return this.text_0 == null || this.text_0.length == 0?'l[' + $toString_10(this.edge) + ']':'l_' + this.text_0; +} +; +var Lorg_eclipse_elk_alg_force_graph_FLabel_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FLabel', 447); +function $toString_11(this$static){ + return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; +} + +function FNode(label_0){ + FParticle.call(this); + this.displacement = new KVector; + this.label_0 = label_0; +} + +defineClass(144, 357, {3:1, 144:1, 357:1, 94:1, 134:1}, FNode); +_.toString_0 = function toString_83(){ + return $toString_11(this); +} +; +_.id_0 = 0; +var Lorg_eclipse_elk_alg_force_graph_FNode_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FNode', 144); +function $initialize_0(this$static, fgraph){ + var bends, count, edge, edge$iterator, i, node, node$iterator, pos, posScale; + this$static.graph_0 = fgraph; + this$static.random_0 = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , RANDOM)), 230); + $calcAdjacency(fgraph); + this$static.dispBound = $wnd.Math.max(fgraph.nodes.array.length * 16 + fgraph.edges.array.length, 256); + if (!$booleanValue(castToBoolean($getProperty(fgraph, ($clinit_ForceOptions() , INTERACTIVE))))) { + posScale = this$static.graph_0.nodes.array.length; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + pos = node.position; + pos.x_0 = $nextDouble(this$static.random_0) * posScale; + pos.y_0 = $nextDouble(this$static.random_0) * posScale; + } + } + bends = fgraph.bendPoints; + for (edge$iterator = new ArrayList$1(fgraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + count = castTo($getProperty(edge, REPULSIVE_POWER_0), 19).value_0; + if (count > 0) { + for (i = 0; i < count; i++) { + $add_3(bends, new FBendpoint(edge)); + } + $distributeBendpoints(edge); + } + } +} + +function $iterationDone(this$static){ + var edge, edge$iterator, label_0, label$iterator; + for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 447); + $refreshPosition(label_0); + } + $distributeBendpoints(edge); + } +} + +function $layout_0(this$static, fgraph, monitor){ + var d, displacement, iterations, u, u$iterator, v, v$iterator, v$iterator0; + $begin(monitor, 'Component Layout', 1); + this$static.initialize(fgraph); + iterations = 0; + while (this$static.moreIterations(iterations)) { + for (v$iterator0 = new ArrayList$1(fgraph.nodes); v$iterator0.i < v$iterator0.this$01.array.length;) { + v = castTo($next_7(v$iterator0), 144); + for (u$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(u$iterator);) { + u = castTo($next_0(u$iterator), 357); + if (u != v) { + displacement = this$static.calcDisplacement(u, v); + !!displacement && $add_19(v.displacement, displacement); + } + } + } + for (v$iterator = new ArrayList$1(fgraph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + d = v.displacement; + $bound(d, -this$static.dispBound, -this$static.dispBound, this$static.dispBound, this$static.dispBound); + $add_19(v.position, d); + $reset_5(d); + } + this$static.iterationDone(); + ++iterations; + } + $done_0(monitor); +} + +function avoidSamePosition(random, u, v){ + var pu, pv; + pu = u.position; + pv = v.position; + while (pu.x_0 - pv.x_0 == 0 && pu.y_0 - pv.y_0 == 0) { + pu.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pu.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pv.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + pv.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; + } +} + +defineClass(2003, 1, {}); +_.initialize = function initialize(fgraph){ + $initialize_0(this, fgraph); +} +; +_.iterationDone = function iterationDone(){ + $iterationDone(this); +} +; +_.dispBound = 0; +var Lorg_eclipse_elk_alg_force_model_AbstractForceModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'AbstractForceModel', 2003); +function EadesModel(){ + this.maxIterations = castTo($getDefault(($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; + this.springLength = $doubleValue(castToDouble($getDefault(SPACING_NODE_NODE))); + this.repulsionFactor = $doubleValue(castToDouble($getDefault(REPULSION_0))); +} + +function attractive(d, s){ + return d > 0?$wnd.Math.log(d / s):-100; +} + +function repulsive(d, r){ + return d > 0?r / (d * d):r * 100; +} + +defineClass(631, 2003, {631:1}, EadesModel); +_.calcDisplacement = function calcDisplacement(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_0(forcee.position), forcer.position); + length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); + d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); + connection = $getConnection(this.graph_0, forcer, forcee); + connection > 0?(force = -attractive(d, this.springLength) * connection):(force = repulsive(d, this.repulsionFactor) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0); + $scale(displacement, force / length_0); + return displacement; +} +; +_.initialize = function initialize_0(graph){ + $initialize_0(this, graph); + this.maxIterations = castTo($getProperty(graph, ($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; + this.springLength = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))); + this.repulsionFactor = $doubleValue(castToDouble($getProperty(graph, REPULSION_0))); +} +; +_.moreIterations = function moreIterations(count){ + return count < this.maxIterations; +} +; +_.maxIterations = 0; +_.repulsionFactor = 0; +_.springLength = 0; +var Lorg_eclipse_elk_alg_force_model_EadesModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'EadesModel', 631); +function FruchtermanReingoldModel(){ + this.temperature = $doubleValue(castToDouble($getDefault(($clinit_ForceOptions() , TEMPERATURE_0)))); +} + +function attractive_0(d, k){ + return d * d / k; +} + +function repulsive_0(d, k){ + return d > 0?k * k / d:k * k * 100; +} + +defineClass(632, 2003, {632:1}, FruchtermanReingoldModel); +_.calcDisplacement = function calcDisplacement_0(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_0(forcee.position), forcer.position); + length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); + d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); + force = repulsive_0(d, this.k) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + connection = $getConnection(this.graph_0, forcer, forcee); + connection > 0 && (force -= attractive_0(d, this.k) * connection); + $scale(displacement, force * this.temperature / length_0); + return displacement; +} +; +_.initialize = function initialize_1(graph){ + var area, c, n, totalHeight, totalWidth, v, v$iterator; + $initialize_0(this, graph); + this.temperature = $doubleValue(castToDouble($getProperty(graph, ($clinit_ForceOptions() , TEMPERATURE_0)))); + this.threshold = this.temperature / castTo($getProperty(graph, ITERATIONS_0), 19).value_0; + n = graph.nodes.array.length; + totalWidth = 0; + totalHeight = 0; + for (v$iterator = new ArrayList$1(graph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + totalWidth += v.size_0.x_0; + totalHeight += v.size_0.y_0; + } + area = totalWidth * totalHeight; + c = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))) * $intern_94; + this.k = $wnd.Math.sqrt(area / (2 * n)) * c; +} +; +_.iterationDone = function iterationDone_0(){ + $iterationDone(this); + this.temperature -= this.threshold; +} +; +_.moreIterations = function moreIterations_0(count){ + return this.temperature > 0; +} +; +_.k = 0; +_.temperature = 0; +_.threshold = 0; +var Lorg_eclipse_elk_alg_force_model_FruchtermanReingoldModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'FruchtermanReingoldModel', 632); +function $clinit_ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider = emptyMethod; + MODEL_DEFAULT = ($clinit_ForceModelStrategy() , FRUCHTERMAN_REINGOLD); + MODEL = new Property_1('org.eclipse.elk.force.model', MODEL_DEFAULT); + valueOf_4(1); + ITERATIONS = new Property_1('org.eclipse.elk.force.iterations', valueOf_4(300)); + valueOf_4(0); + REPULSIVE_POWER = new Property_1('org.eclipse.elk.force.repulsivePower', valueOf_4(0)); + new ExclusiveBounds$ExclusiveLowerBound; + TEMPERATURE = new Property_1('org.eclipse.elk.force.temperature', $intern_101); + new ExclusiveBounds$ExclusiveLowerBound; + REPULSION = new Property_1('org.eclipse.elk.force.repulsion', 5); + TEMPERATURE_DEP_MODEL_0 = FRUCHTERMAN_REINGOLD; + REPULSION_DEP_MODEL_0 = EADES; +} + +function ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider(); +} + +defineClass(849, 1, $intern_90, ForceMetaDataProvider); +_.apply_4 = function apply_55(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.model'), ''), 'Force Model'), 'Determines the model for force calculation.'), MODEL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.iterations'), ''), 'Iterations'), 'The number of iterations on the force model.'), valueOf_4(300)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsivePower'), ''), 'Repulsive Power'), 'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.temperature'), ''), 'FR Temperature'), 'The temperature is used as a scaling factor for particle displacements.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.force.temperature', 'org.eclipse.elk.force.model', TEMPERATURE_DEP_MODEL_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsion'), ''), 'Eades Repulsion'), "Factor for repulsive forces in Eades' model."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.force.repulsion', 'org.eclipse.elk.force.model', REPULSION_DEP_MODEL_0); + $apply_12((new ForceOptions , registry)); +} +; +var ITERATIONS, MODEL, MODEL_DEFAULT, REPULSION, REPULSION_DEP_MODEL_0, REPULSIVE_POWER, TEMPERATURE, TEMPERATURE_DEP_MODEL_0; +var Lorg_eclipse_elk_alg_force_options_ForceMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceMetaDataProvider', 849); +function $clinit_ForceModelStrategy(){ + $clinit_ForceModelStrategy = emptyMethod; + EADES = new ForceModelStrategy('EADES', 0); + FRUCHTERMAN_REINGOLD = new ForceModelStrategy('FRUCHTERMAN_REINGOLD', 1); +} + +function ForceModelStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_25(name_0){ + $clinit_ForceModelStrategy(); + return valueOf(($clinit_ForceModelStrategy$Map() , $MAP_13), name_0); +} + +function values_31(){ + $clinit_ForceModelStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]); +} + +defineClass(424, 22, {3:1, 35:1, 22:1, 424:1}, ForceModelStrategy); +var EADES, FRUCHTERMAN_REINGOLD; +var Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.force.options', 'ForceModelStrategy', 424, Ljava_lang_Enum_2_classLit, values_31, valueOf_25); +function $clinit_ForceModelStrategy$Map(){ + $clinit_ForceModelStrategy$Map = emptyMethod; + $MAP_13 = createValueOfMap(($clinit_ForceModelStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]))); +} + +var $MAP_13; +function $clinit_ForceOptions(){ + $clinit_ForceOptions = emptyMethod; + PRIORITY = new Property_2(($clinit_CoreOptions() , PRIORITY_3), valueOf_4(1)); + SPACING_NODE_NODE = new Property_2(SPACING_NODE_NODE_6, 80); + SPACING_EDGE_LABEL = new Property_2(SPACING_EDGE_LABEL_1, 5); + ASPECT_RATIO_0 = new Property_2(ASPECT_RATIO_5, $intern_102); + RANDOM_SEED = new Property_2(RANDOM_SEED_1, valueOf_4(1)); + SEPARATE_CONNECTED_COMPONENTS = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + PADDING_DEFAULT = new ElkPadding_0(50); + PADDING_0 = new Property_2(PADDING_6, PADDING_DEFAULT); + INTERACTIVE = INTERACTIVE_7; + PORT_CONSTRAINTS = PORT_CONSTRAINTS_1; + EDGE_LABELS_INLINE = new Property_2(EDGE_LABELS_INLINE_1, false); + OMIT_NODE_MICRO_LAYOUT = OMIT_NODE_MICRO_LAYOUT_4; + NODE_SIZE_OPTIONS = NODE_SIZE_OPTIONS_6; + NODE_SIZE_CONSTRAINTS = NODE_SIZE_CONSTRAINTS_6; + NODE_LABELS_PLACEMENT = NODE_LABELS_PLACEMENT_5; + PORT_LABELS_PLACEMENT = PORT_LABELS_PLACEMENT_5; + MODEL_0 = ($clinit_ForceMetaDataProvider() , MODEL); + TEMPERATURE_0 = TEMPERATURE; + ITERATIONS_0 = ITERATIONS; + REPULSION_0 = REPULSION; + REPULSIVE_POWER_0 = REPULSIVE_POWER; +} + +function $apply_12(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.force'), 'ELK Force'), 'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'), new ForceOptions$ForceFactory), 'org.eclipse.elk.force'), of_2(($clinit_GraphFeature() , MULTI_EDGES), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [EDGE_LABELS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.priority', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.nodeNode', 80); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.edgeLabel', 5); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.randomSeed', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.padding', PADDING_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.edgeLabels.inline', false); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.model', $getDefault(MODEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.temperature', $getDefault(TEMPERATURE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.iterations', $getDefault(ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsion', $getDefault(REPULSION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsivePower', $getDefault(REPULSIVE_POWER_0)); +} + +function ForceOptions(){ + $clinit_ForceOptions(); +} + +defineClass(988, 1, $intern_90, ForceOptions); +_.apply_4 = function apply_56(registry){ + $apply_12(registry); +} +; +var ASPECT_RATIO_0, EDGE_LABELS_INLINE, INTERACTIVE, ITERATIONS_0, MODEL_0, NODE_LABELS_PLACEMENT, NODE_SIZE_CONSTRAINTS, NODE_SIZE_OPTIONS, OMIT_NODE_MICRO_LAYOUT, PADDING_0, PADDING_DEFAULT, PORT_CONSTRAINTS, PORT_LABELS_PLACEMENT, PRIORITY, RANDOM_SEED, REPULSION_0, REPULSIVE_POWER_0, SEPARATE_CONNECTED_COMPONENTS, SPACING_EDGE_LABEL, SPACING_NODE_NODE, TEMPERATURE_0; +var Lorg_eclipse_elk_alg_force_options_ForceOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions', 988); +function ForceOptions$ForceFactory(){ +} + +defineClass(989, 1, {}, ForceOptions$ForceFactory); +_.create_0 = function create_3(){ + var provider; + return provider = new ForceLayoutProvider , provider; +} +; +_.destroy = function destroy_0(obj){ +} +; +var Lorg_eclipse_elk_alg_force_options_ForceOptions$ForceFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions/ForceFactory', 989); +function $clinit_InternalProperties_0(){ + $clinit_InternalProperties_0 = emptyMethod; + ORIGIN = new Property('origin'); + RANDOM = new Property('random'); + BB_UPLEFT = new Property('boundingBox.upLeft'); + BB_LOWRIGHT = new Property('boundingBox.lowRight'); +} + +var BB_LOWRIGHT, BB_UPLEFT, ORIGIN, RANDOM; +function $clinit_StressMetaDataProvider(){ + $clinit_StressMetaDataProvider = emptyMethod; + FIXED = new Property_1('org.eclipse.elk.stress.fixed', ($clinit_Boolean() , false)); + DESIRED_EDGE_LENGTH = new Property_1('org.eclipse.elk.stress.desiredEdgeLength', 100); + DIMENSION_DEFAULT = ($clinit_StressMajorization$Dimension() , XY); + DIMENSION = new Property_1('org.eclipse.elk.stress.dimension', DIMENSION_DEFAULT); + EPSILON = new Property_1('org.eclipse.elk.stress.epsilon', $intern_101); + ITERATION_LIMIT = new Property_1('org.eclipse.elk.stress.iterationLimit', valueOf_4($intern_0)); +} + +function StressMetaDataProvider(){ + $clinit_StressMetaDataProvider(); +} + +defineClass(850, 1, $intern_90, StressMetaDataProvider); +_.apply_4 = function apply_57(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.fixed'), ''), 'Fixed Position'), 'Prevent that the node is moved by the layout algorithm.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.desiredEdgeLength'), ''), 'Desired Edge Length'), 'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'), 100), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.dimension'), ''), 'Layout Dimension'), 'Dimensions that are permitted to be altered during layout.'), DIMENSION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.epsilon'), ''), 'Stress Epsilon'), 'Termination criterion for the iterative process.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.iterationLimit'), ''), 'Iteration Limit'), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $apply_13((new StressOptions , registry)); +} +; +var DESIRED_EDGE_LENGTH, DIMENSION, DIMENSION_DEFAULT, EPSILON, FIXED, ITERATION_LIMIT; +var Lorg_eclipse_elk_alg_force_options_StressMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressMetaDataProvider', 850); +function $clinit_StressOptions(){ + $clinit_StressOptions = emptyMethod; + INTERACTIVE_0 = ($clinit_CoreOptions() , INTERACTIVE_7); + new Property_2(EDGE_LABELS_INLINE_1, ($clinit_Boolean() , true)); + NODE_SIZE_CONSTRAINTS_0 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_0 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_0 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_0 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_0 = PORT_LABELS_PLACEMENT_5; + FIXED_0 = ($clinit_StressMetaDataProvider() , FIXED); + DIMENSION_0 = DIMENSION; + EPSILON_0 = EPSILON; + ITERATION_LIMIT_0 = ITERATION_LIMIT; + DESIRED_EDGE_LENGTH_0 = DESIRED_EDGE_LENGTH; +} + +function $apply_13(registry){ + $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.stress'), 'ELK Stress'), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new StressOptions$StressFactory), 'org.eclipse.elk.force'))); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.edgeLabels.inline', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.fixed', $getDefault(FIXED_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.dimension', $getDefault(DIMENSION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.epsilon', $getDefault(EPSILON_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.iterationLimit', $getDefault(ITERATION_LIMIT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.desiredEdgeLength', $getDefault(DESIRED_EDGE_LENGTH_0)); +} + +function StressOptions(){ + $clinit_StressOptions(); +} + +defineClass(992, 1, $intern_90, StressOptions); +_.apply_4 = function apply_58(registry){ + $apply_13(registry); +} +; +var DESIRED_EDGE_LENGTH_0, DIMENSION_0, EPSILON_0, FIXED_0, INTERACTIVE_0, ITERATION_LIMIT_0, NODE_LABELS_PLACEMENT_0, NODE_SIZE_CONSTRAINTS_0, NODE_SIZE_MINIMUM, NODE_SIZE_OPTIONS_0, OMIT_NODE_MICRO_LAYOUT_0, PORT_LABELS_PLACEMENT_0; +var Lorg_eclipse_elk_alg_force_options_StressOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions', 992); +function StressOptions$StressFactory(){ +} + +defineClass(993, 1, {}, StressOptions$StressFactory); +_.create_0 = function create_4(){ + var provider; + return provider = new StressLayoutProvider , provider; +} +; +_.destroy = function destroy_1(obj){ +} +; +var Lorg_eclipse_elk_alg_force_options_StressOptions$StressFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions/StressFactory', 993); +function StressLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; + this.stressMajorization = new StressMajorization; +} + +defineClass(1128, 209, $intern_96, StressLayoutProvider); +_.layout = function layout_1(layoutGraph, progressMonitor){ + var builder, components, fgraph, subGraph, subGraph$iterator; + $begin(progressMonitor, 'ELK Stress', 1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_StressOptions() , INTERACTIVE_0))))?$booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_0))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)):$layout(new ForceLayoutProvider, layoutGraph, $subTask(progressMonitor, 1)); + fgraph = $importGraph_0(layoutGraph); + components = $split_1(this.componentsProcessor, fgraph); + for (subGraph$iterator = components.iterator_0(); subGraph$iterator.hasNext_0();) { + subGraph = castTo(subGraph$iterator.next_1(), 231); + if (subGraph.nodes.array.length <= 1) { + continue; + } + $initialize_1(this.stressMajorization, subGraph); + $execute_1(this.stressMajorization); + $forEach_1(subGraph.labels, new StressLayoutProvider$lambda$0$Type); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider', 1128); +function StressLayoutProvider$lambda$0$Type(){ +} + +defineClass(1129, 1, $intern_19, StressLayoutProvider$lambda$0$Type); +_.accept = function accept_57(arg0){ + $refreshPosition(castTo(arg0, 447)); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider/lambda$0$Type', 1129); +function $computeNewPosition(this$static, u){ + var eucDist, v, v$iterator, weightSum, wij, xDisp, yDisp; + weightSum = 0; + xDisp = 0; + yDisp = 0; + for (v$iterator = new ArrayList$1(this$static.graph_0.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + if (u == v) { + continue; + } + wij = this$static.w[u.id_0][v.id_0]; + weightSum += wij; + eucDist = $distance_0(u.position, v.position); + eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , Y) && (xDisp += wij * (v.position.x_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.x_0 - v.position.x_0) / eucDist)); + eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , X) && (yDisp += wij * (v.position.y_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.y_0 - v.position.y_0) / eucDist)); + } + switch (this$static.dim.ordinal) { + case 1: + return new KVector_1(xDisp / weightSum, u.position.y_0); + case 2: + return new KVector_1(u.position.x_0, yDisp / weightSum); + default:return new KVector_1(xDisp / weightSum, yDisp / weightSum); + } +} + +function $computeStress(this$static){ + var eucDisplacement, eucDist, i, j, nodes, stress, u, v; + stress = 0; + nodes = this$static.graph_0.nodes; + for (i = 0; i < nodes.array.length; ++i) { + u = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 144)); + for (j = i + 1; j < nodes.array.length; ++j) { + v = (checkCriticalElementIndex(j, nodes.array.length) , castTo(nodes.array[j], 144)); + eucDist = $distance_0(u.position, v.position); + eucDisplacement = eucDist - this$static.apsp[u.id_0][v.id_0]; + stress += this$static.w[u.id_0][v.id_0] * eucDisplacement * eucDisplacement; + } + } + return stress; +} + +function $dijkstra(this$static, source, dist){ + var d, e, e$iterator, el, mark, n, n$iterator, nodes, u, v; + nodes = new PriorityQueue(new StressMajorization$lambda$0$Type(dist)); + mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.nodes.array.length, 16, 1); + fill0_3(mark, mark.length); + dist[source.id_0] = 0; + for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 144); + n.id_0 != source.id_0 && (dist[n.id_0] = $intern_0); + checkCriticalState_0($offer(nodes, n)); + } + while (nodes.heap.array.length != 0) { + u = castTo($poll_0(nodes), 144); + mark[u.id_0] = true; + for (e$iterator = $listIterator_0(new LinkedListMultimap$1(this$static.connectedEdges, u), 0); e$iterator.next_0;) { + e = castTo($next_2(e$iterator), 282); + v = $getOther_0(e, u); + if (mark[v.id_0]) { + continue; + } + $hasProperty(e, ($clinit_StressOptions() , DESIRED_EDGE_LENGTH_0))?(el = $doubleValue(castToDouble($getProperty(e, DESIRED_EDGE_LENGTH_0)))):(el = this$static.desiredEdgeLength); + d = dist[u.id_0] + el; + if (d < dist[v.id_0]) { + dist[v.id_0] = d; + $remove_25(nodes, v); + checkCriticalState_0($offer(nodes, v)); + } + } + } +} + +function $done(this$static, count, prevStress, curStress){ + return prevStress == 0 || (prevStress - curStress) / prevStress < this$static.epsilon || count >= this$static.iterationLimit; +} + +function $execute_1(this$static){ + var count, curStress, newPos, prevStress, u, u$iterator; + if (this$static.graph_0.nodes.array.length <= 1) { + return; + } + count = 0; + prevStress = $computeStress(this$static); + curStress = $intern_59; + do { + count > 0 && (prevStress = curStress); + for (u$iterator = new ArrayList$1(this$static.graph_0.nodes); u$iterator.i < u$iterator.this$01.array.length;) { + u = castTo($next_7(u$iterator), 144); + if ($booleanValue(castToBoolean($getProperty(u, ($clinit_StressOptions() , FIXED_0))))) { + continue; + } + newPos = $computeNewPosition(this$static, u); + $add_19($reset_5(u.position), newPos); + } + curStress = $computeStress(this$static); + } + while (!$done(this$static, count++, prevStress, curStress)); +} + +function $getOther_0(edge, one){ + if (edge.source == one) { + return edge.target; + } + else if (edge.target == one) { + return edge.source; + } + else { + throw toJs(new IllegalArgumentException_0("Node 'one' must be either source or target of edge 'edge'.")); + } +} + +function $initialize_1(this$static, fgraph){ + var dij, edge, edge$iterator, i, j, n, source, source$iterator, wij; + if (fgraph.nodes.array.length <= 1) { + return; + } + this$static.graph_0 = fgraph; + this$static.dim = castTo($getProperty(this$static.graph_0, ($clinit_StressOptions() , DIMENSION_0)), 379); + this$static.iterationLimit = castTo($getProperty(this$static.graph_0, ITERATION_LIMIT_0), 19).value_0; + this$static.epsilon = $doubleValue(castToDouble($getProperty(this$static.graph_0, EPSILON_0))); + this$static.desiredEdgeLength = $doubleValue(castToDouble($getProperty(this$static.graph_0, DESIRED_EDGE_LENGTH_0))); + $clear_3(this$static.connectedEdges); + for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 282); + $addNode(this$static.connectedEdges, edge.source, edge, null); + $addNode(this$static.connectedEdges, edge.target, edge, null); + } + n = this$static.graph_0.nodes.array.length; + this$static.apsp = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); + for (source$iterator = new ArrayList$1(this$static.graph_0.nodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 144); + $dijkstra(this$static, source, this$static.apsp[source.id_0]); + } + this$static.w = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); + for (i = 0; i < n; ++i) { + for (j = 0; j < n; ++j) { + dij = this$static.apsp[i][j]; + wij = 1 / (dij * dij); + this$static.w[i][j] = wij; + } + } +} + +function StressMajorization(){ + this.connectedEdges = new LinkedListMultimap; +} + +function lambda$0_15(dist_0, n1_1, n2_2){ + return compare_4(dist_0[n1_1.id_0], dist_0[n2_2.id_0]); +} + +defineClass(990, 1, {}, StressMajorization); +_.desiredEdgeLength = 0; +_.epsilon = 0; +_.iterationLimit = 0; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization', 990); +function $clinit_StressMajorization$Dimension(){ + $clinit_StressMajorization$Dimension = emptyMethod; + XY = new StressMajorization$Dimension('XY', 0); + X = new StressMajorization$Dimension('X', 1); + Y = new StressMajorization$Dimension('Y', 2); +} + +function StressMajorization$Dimension(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_26(name_0){ + $clinit_StressMajorization$Dimension(); + return valueOf(($clinit_StressMajorization$Dimension$Map() , $MAP_14), name_0); +} + +function values_32(){ + $clinit_StressMajorization$Dimension(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]); +} + +defineClass(379, 22, {3:1, 35:1, 22:1, 379:1}, StressMajorization$Dimension); +var X, XY, Y; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit = createForEnum('org.eclipse.elk.alg.force.stress', 'StressMajorization/Dimension', 379, Ljava_lang_Enum_2_classLit, values_32, valueOf_26); +function $clinit_StressMajorization$Dimension$Map(){ + $clinit_StressMajorization$Dimension$Map = emptyMethod; + $MAP_14 = createValueOfMap(($clinit_StressMajorization$Dimension() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]))); +} + +var $MAP_14; +function StressMajorization$lambda$0$Type(dist_0){ + this.dist_0 = dist_0; +} + +defineClass(991, 1, $intern_88, StressMajorization$lambda$0$Type); +_.compare_1 = function compare_29(arg0, arg1){ + return lambda$0_15(this.dist_0, castTo(arg0, 144), castTo(arg1, 144)); +} +; +_.equals_0 = function equals_81(other){ + return this === other; +} +; +_.reversed = function reversed_21(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressMajorization$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization/lambda$0$Type', 991); +function $collectAllGraphsBottomUp(root){ + var collectedGraphs, continueSearchingTheseGraphs, nestedGraph, nextGraph, node, node$iterator; + collectedGraphs = new ArrayDeque; + continueSearchingTheseGraphs = new ArrayDeque; + $addFirst(collectedGraphs, root); + $addFirst(continueSearchingTheseGraphs, root); + while (continueSearchingTheseGraphs.head != continueSearchingTheseGraphs.tail) { + nextGraph = castTo($removeFirst(continueSearchingTheseGraphs), 37); + for (node$iterator = new ArrayList$1(nextGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.nestedGraph) { + nestedGraph = node.nestedGraph; + $addFirst(collectedGraphs, nestedGraph); + $addFirst(continueSearchingTheseGraphs, nestedGraph); + } + } + } + return collectedGraphs; +} + +function $doCompoundLayout(this$static, lgraph, monitor){ + var theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + $begin(theMonitor, 'Layered layout', 2); + $process_1(this$static.compoundGraphPreprocessor, lgraph, $subTask(theMonitor, 1)); + $hierarchicalLayout(this$static, lgraph, $subTask(theMonitor, 1)); + $process_0(lgraph, $subTask(theMonitor, 1)); + $done_0(theMonitor); +} + +function $doLayout(this$static, lgraph, monitor){ + var comp, comp$iterator, compWork, components, theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + $begin(theMonitor, 'Layered layout', 1); + $prepareGraphForLayout(this$static.graphConfigurator, lgraph); + components = $split_2(this$static.componentsProcessor, lgraph); + if (components.size_1() == 1) { + $layout_1(castTo(components.get_0(0), 37), theMonitor); + } + else { + compWork = 1 / components.size_1(); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 37); + $layout_1(comp, $subTask(theMonitor, compWork)); + } + } + $combine(this$static.componentsProcessor, components, lgraph); + $resizeGraph(lgraph); + $done_0(theMonitor); +} + +function $hierarchicalLayout(this$static, lgraph, monitor){ + var algorithm, g, g$iterator, graph, graphAndAlgorithm, graphAndAlgorithm$iterator, graphs, graphsAndAlgorithms, processor, processors, rootProcessors, slotIndex, work, parentCms, rootType; + graphs = $collectAllGraphsBottomUp(lgraph); + parentCms = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); + parentCms != ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP) && $forEach_0(graphs, new ElkLayered$lambda$0$Type); + rootType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292); + $forEach_0(graphs, new ElkLayered$lambda$1$Type(rootType)); + work = 0; + graphsAndAlgorithms = new ArrayList; + for (g$iterator = new ArrayDeque$IteratorImpl(graphs); g$iterator.currentIndex != g$iterator.fence;) { + g = castTo($next_6(g$iterator), 37); + $prepareGraphForLayout(this$static.graphConfigurator, g); + processors = castTo($getProperty(g, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + work += processors.size_1(); + algorithm = processors.iterator_0(); + $add_3(graphsAndAlgorithms, new Pair(g, algorithm)); + } + $begin(monitor, 'Recursive hierarchical layout', work); + slotIndex = 0; + rootProcessors = castTo(castTo($get_11(graphsAndAlgorithms, graphsAndAlgorithms.array.length - 1), 46).second, 47); + while (rootProcessors.hasNext_0()) { + for (graphAndAlgorithm$iterator = new ArrayList$1(graphsAndAlgorithms); graphAndAlgorithm$iterator.i < graphAndAlgorithm$iterator.this$01.array.length;) { + graphAndAlgorithm = castTo($next_7(graphAndAlgorithm$iterator), 46); + processors = castTo(graphAndAlgorithm.second, 47); + graph = castTo(graphAndAlgorithm.first, 37); + while (processors.hasNext_0()) { + processor = castTo(processors.next_1(), 51); + if (instanceOf(processor, 507)) { + if (!graph.parentNode) { + processor.process(graph, $subTask(monitor, 1)); + ++slotIndex; + break; + } + else { + break; + } + } + else { + processor.process(graph, $subTask(monitor, 1)); + ++slotIndex; + } + } + } + } + $done_0(monitor); +} + +function $layout_1(lgraph, monitor){ + var algorithm, gwtDoesntSupportPrintf, layer, layer$iterator, monitorProgress, monitorWasAlreadyRunning, node, node$iterator, processor, processor$iterator, processor$iterator0, slot, slotIndex; + monitorWasAlreadyRunning = monitor.taskName != null && !monitor.closed_0; + monitorWasAlreadyRunning || $begin(monitor, 'Component Layout', 1); + algorithm = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + monitorProgress = 1 / algorithm.size_1(); + if (monitor.recordLogs) { + $log_2(monitor, 'ELK Layered uses the following ' + algorithm.size_1() + ' modules:'); + slot = 0; + for (processor$iterator0 = algorithm.iterator_0(); processor$iterator0.hasNext_0();) { + processor = castTo(processor$iterator0.next_1(), 51); + gwtDoesntSupportPrintf = (slot < 10?'0':'') + slot++; + $log_2(monitor, ' Slot ' + gwtDoesntSupportPrintf + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(processor))); + } + } + slotIndex = 0; + for (processor$iterator = algorithm.iterator_0(); processor$iterator.hasNext_0();) { + processor = castTo(processor$iterator.next_1(), 51); + processor.process(lgraph, $subTask(monitor, monitorProgress)); + ++slotIndex; + } + for (layer$iterator = new ArrayList$1(lgraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(lgraph.layerlessNodes, layer.nodes); + layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } + lgraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + monitorWasAlreadyRunning || $done_0(monitor); +} + +function $resizeGraph(lgraph){ + var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); + sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); + calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + adjustedSize = new KVector_2(calculatedSize); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); + adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); + } + $booleanValue(castToBoolean($getProperty(lgraph, NODE_SIZE_FIXED_GRAPH_SIZE))) || $resizeGraphNoReallyIMeanIt(lgraph, calculatedSize, adjustedSize); +} + +function $resizeGraphNoReallyIMeanIt(lgraph, oldSize, newSize){ + var contentAlignment, extPortSide, lPadding, node, node$iterator; + contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); + extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); + } + } + } + lPadding = lgraph.padding; + lgraph.size_0.x_0 = newSize.x_0 - lPadding.left - lPadding.right; + lgraph.size_0.y_0 = newSize.y_0 - lPadding.top_0 - lPadding.bottom; +} + +function ElkLayered(){ + this.graphConfigurator = new GraphConfigurator; + this.componentsProcessor = new ComponentsProcessor_0; + this.compoundGraphPreprocessor = new CompoundGraphPreprocessor; + $clinit_CompoundGraphPostprocessor(); +} + +function lambda$0_16(child_0){ + var childCms; + childCms = castTo($getProperty(child_0, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); + if (childCms == ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP)) { + throw toJs(new UnsupportedGraphException('The hierarchy aware processor ' + childCms + ' in child node ' + child_0 + ' is only allowed if the root node specifies the same hierarchical processor.')); + } +} + +function lambda$1_5(rootType_0, g_1){ + return $setProperty_0(g_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), rootType_0); +} + +defineClass(1229, 1, {}, ElkLayered); +var Lorg_eclipse_elk_alg_layered_ElkLayered_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered', 1229); +function ElkLayered$lambda$0$Type(){ +} + +defineClass(1230, 1, $intern_19, ElkLayered$lambda$0$Type); +_.accept = function accept_58(arg0){ + lambda$0_16(castTo(arg0, 37)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$0$Type', 1230); +function ElkLayered$lambda$1$Type(rootType_0){ + this.rootType_0 = rootType_0; +} + +defineClass(1231, 1, $intern_19, ElkLayered$lambda$1$Type); +_.accept = function accept_59(arg0){ + lambda$1_5(this.rootType_0, castTo(arg0, 37)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$1$Type', 1231); +function $clinit_GraphConfigurator(){ + $clinit_GraphConfigurator = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , INNERMOST_NODE_MARGIN_CALCULATOR)), P4_NODE_PLACEMENT, LABEL_AND_NODE_SIZE_PROCESSOR), P5_EDGE_ROUTING, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR), P5_EDGE_ROUTING, END_LABEL_SORTER); + LABEL_MANAGEMENT_ADDITIONS = $addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, CENTER_LABEL_MANAGEMENT_PROCESSOR), P4_NODE_PLACEMENT, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR); + HIERARCHICAL_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HIERARCHICAL_NODE_RESIZER); +} + +function $copyPortConstraints(this$static, node){ + var nestedGraph, originalPortconstraints; + originalPortconstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS), originalPortconstraints); + nestedGraph = node.nestedGraph; + !!nestedGraph && ($forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)) , $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static))); +} + +function $getPhaseIndependentLayoutProcessorConfiguration(lgraph){ + var configuration, graphProperties, greedySwitchType, hierarchyHandling, internalGreedyType; + graphProperties = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = createFrom_0(BASELINE_PROCESSING_CONFIGURATION); + hierarchyHandling = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING)), 334); + hierarchyHandling == ($clinit_HierarchyHandling() , INCLUDE_CHILDREN) && $addAll_6(configuration, HIERARCHICAL_ADDITIONS); + $booleanValue(castToBoolean($getProperty(lgraph, FEEDBACK_EDGES_0)))?$addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)):$addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)); + $getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) != null && $addAll_6(configuration, LABEL_MANAGEMENT_ADDITIONS); + ($booleanValue(castToBoolean($getProperty(lgraph, INTERACTIVE_LAYOUT))) || $booleanValue(castToBoolean($getProperty(lgraph, GENERATE_POSITION_AND_LAYER_IDS_0)))) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , CONSTRAINTS_POSTPROCESSOR)); + switch (castTo($getProperty(lgraph, DIRECTION), 103).ordinal) { + case 2: + case 3: + case 4: + $addAfter($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , DIRECTION_PREPROCESSOR)), P5_EDGE_ROUTING, DIRECTION_POSTPROCESSOR); + } + graphProperties.contains(($clinit_GraphProperties() , COMMENTS)) && $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , COMMENT_PREPROCESSOR)), P4_NODE_PLACEMENT, COMMENT_NODE_MARGIN_CALCULATOR), P5_EDGE_ROUTING, COMMENT_POSTPROCESSOR); + maskUndefined($getProperty(lgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) !== maskUndefined(($clinit_NodePromotionStrategy() , NONE_9)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , NODE_PROMOTION)); + if (graphProperties.contains(PARTITIONS)) { + $addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PARTITION_PREPROCESSOR)); + $addBefore(configuration, P2_LAYERING, PARTITION_MIDPROCESSOR); + $addBefore(configuration, P3_NODE_ORDERING, PARTITION_POSTPROCESSOR); + } + maskUndefined($getProperty(lgraph, COMPACTION_POST_COMPACTION_STRATEGY_0)) !== maskUndefined(($clinit_GraphCompactionStrategy() , NONE_5)) && maskUndefined($getProperty(lgraph, EDGE_ROUTING)) !== maskUndefined(($clinit_EdgeRouting() , POLYLINE)) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HORIZONTAL_COMPACTOR)); + $booleanValue(castToBoolean($getProperty(lgraph, HIGH_DEGREE_NODES_TREATMENT_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , HIGH_DEGREE_NODE_LAYER_PROCESSOR)); + $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SEMI_INTERACTIVE_CROSSMIN_PROCESSOR)); + if (activateGreedySwitchFor(lgraph)) { + maskUndefined($getProperty(lgraph, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN)?(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292)):(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292)); + internalGreedyType = greedySwitchType == ($clinit_GreedySwitchType() , ONE_SIDED)?($clinit_IntermediateProcessorStrategy() , ONE_SIDED_GREEDY_SWITCH):($clinit_IntermediateProcessorStrategy() , TWO_SIDED_GREEDY_SWITCH); + $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), internalGreedyType); + } + switch (castTo($getProperty(lgraph, WRAPPING_STRATEGY_0), 377).ordinal) { + case 1: + $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , SINGLE_EDGE_GRAPH_WRAPPER)); + break; + case 2: + $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , BREAKING_POINT_INSERTER)), P4_NODE_PLACEMENT, BREAKING_POINT_PROCESSOR), P5_EDGE_ROUTING, BREAKING_POINT_REMOVER); + } + maskUndefined($getProperty(lgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SORT_BY_INPUT_ORDER_OF_MODEL)); + return configuration; +} + +function $prepareGraphForLayout(this$static, lgraph){ + var edgeSpacing, direction, randomSeed, favorStraightness, spacings; + edgeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + edgeSpacing < 2 && $setProperty_0(lgraph, SPACING_EDGE_EDGE, 2); + direction = castTo($getProperty(lgraph, DIRECTION), 103); + direction == ($clinit_Direction_0() , UNDEFINED_2) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + randomSeed = castTo($getProperty(lgraph, RANDOM_SEED_0), 19); + randomSeed.value_0 == 0?$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random):$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random_0(randomSeed.value_0)); + favorStraightness = castToBoolean($getProperty(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); + favorStraightness == null && $setProperty_0(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, ($clinit_Boolean() , maskUndefined($getProperty(lgraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))?true:false)); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static)); + spacings = new Spacings(lgraph); + $setProperty_0(lgraph, ($clinit_InternalProperties_1() , SPACINGS), spacings); + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), castTo($getProperty(lgraph, CYCLE_BREAKING_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P2_LAYERING, castTo($getProperty(lgraph, LAYERING_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P3_NODE_ORDERING, castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P4_NODE_PLACEMENT, castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P5_EDGE_ROUTING, factoryFor(castTo($getProperty(lgraph, EDGE_ROUTING), 218))); + $addProcessorConfiguration(this$static.algorithmAssembler, $getPhaseIndependentLayoutProcessorConfiguration(lgraph)); + $setProperty_0(lgraph, PROCESSORS, $build_0(this$static.algorithmAssembler, lgraph)); +} + +function GraphConfigurator(){ + $clinit_GraphConfigurator(); + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit); +} + +function activateGreedySwitchFor(lgraph){ + var activationThreshold, graphSize, greedySwitchType, interactiveCrossMin; + if (maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))) { + return !lgraph.parentNode && maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)) !== maskUndefined(($clinit_GreedySwitchType() , OFF)); + } + greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292); + interactiveCrossMin = $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) || maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0)) === maskUndefined(($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1)); + activationThreshold = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0), 19).value_0; + graphSize = lgraph.layerlessNodes.array.length; + return !interactiveCrossMin && greedySwitchType != ($clinit_GreedySwitchType() , OFF) && (activationThreshold == 0 || activationThreshold > graphSize); +} + +defineClass(1263, 1, {}, GraphConfigurator); +var BASELINE_PROCESSING_CONFIGURATION, HIERARCHICAL_ADDITIONS, LABEL_MANAGEMENT_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator', 1263); +function GraphConfigurator$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(759, 1, $intern_19, GraphConfigurator$lambda$0$Type); +_.accept = function accept_60(arg0){ + $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$0$Type', 759); +function GraphConfigurator$lambda$1$Type(){ +} + +defineClass(760, 1, {}, GraphConfigurator$lambda$1$Type); +_.apply_0 = function apply_59(arg0){ + return $clinit_GraphConfigurator() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$1$Type', 760); +function GraphConfigurator$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(761, 1, $intern_19, GraphConfigurator$lambda$2$Type); +_.accept = function accept_61(arg0){ + $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$2$Type', 761); +function LayeredLayoutProvider(){ + this.elkLayered = new ElkLayered; +} + +defineClass(1127, 209, $intern_96, LayeredLayoutProvider); +_.layout = function layout_2(elkgraph, progressMonitor){ + var layeredGraph; + layeredGraph = $importGraph_1(new ElkGraphImporter, elkgraph); + maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$doCompoundLayout(this.elkLayered, layeredGraph, progressMonitor):$doLayout(this.elkLayered, layeredGraph, progressMonitor); + $applyLayout_2(new ElkGraphLayoutTransferrer, layeredGraph); +} +; +var Lorg_eclipse_elk_alg_layered_LayeredLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'LayeredLayoutProvider', 1127); +function $clinit_LayeredPhases(){ + $clinit_LayeredPhases = emptyMethod; + P1_CYCLE_BREAKING = new LayeredPhases('P1_CYCLE_BREAKING', 0); + P2_LAYERING = new LayeredPhases('P2_LAYERING', 1); + P3_NODE_ORDERING = new LayeredPhases('P3_NODE_ORDERING', 2); + P4_NODE_PLACEMENT = new LayeredPhases('P4_NODE_PLACEMENT', 3); + P5_EDGE_ROUTING = new LayeredPhases('P5_EDGE_ROUTING', 4); +} + +function LayeredPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_27(name_0){ + $clinit_LayeredPhases(); + return valueOf(($clinit_LayeredPhases$Map() , $MAP_15), name_0); +} + +function values_33(){ + $clinit_LayeredPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]); +} + +defineClass(356, 22, {3:1, 35:1, 22:1, 356:1}, LayeredPhases); +var P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit = createForEnum('org.eclipse.elk.alg.layered', 'LayeredPhases', 356, Ljava_lang_Enum_2_classLit, values_33, valueOf_27); +function $clinit_LayeredPhases$Map(){ + $clinit_LayeredPhases$Map = emptyMethod; + $MAP_15 = createValueOfMap(($clinit_LayeredPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]))); +} + +var $MAP_15; +function $clinit_ComponentsToCGraphTransformer(){ + $clinit_ComponentsToCGraphTransformer = emptyMethod; + SPACING_HANDLER = new ComponentsToCGraphTransformer$1; +} + +function $applyLayout_1(this$static){ + var bottomRight, cNode, cNode$iterator, n, n$iterator, placeholder, placeholder$iterator, topLeft; + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + n.rect.x_0 = n.hitbox.x_0; + n.rect.y_0 = n.hitbox.y_0; + } + topLeft = new KVector_1($intern_59, $intern_59); + bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + for (placeholder$iterator = $values(this$static.externalPlaceholder).this$01.valueIterator_0(); placeholder$iterator.hasNext_0();) { + placeholder = castTo(placeholder$iterator.next_1(), 46); + cNode = castTo(placeholder.second, 81); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + this$static.globalOffset = $negate(new KVector_1(topLeft.x_0, topLeft.y_0)); + this$static.graphSize = $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft); + this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $getOffset(this$static, c){ + var cOffset; + cOffset = $sub_0($clone_0(castTo($get_10(this$static.oldPosition, c), 8)), $getPosition(castTo($get_10(this$static.offsets, c), 460).rect)); + return cOffset; +} + +function $setLock(cNode, portSides){ + portSides.isEmpty() && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, ($clinit_PortSide() , SIDES_NORTH)) && $set_6(cNode.lock, true, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST) && $set_6(cNode.lock, false, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH) && $set_6(cNode.lock, true, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_WEST) && $set_6(cNode.lock, true, false, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST) && $set_6(cNode.lock, false, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH) && $set_6(cNode.lock, false, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH_WEST) && $set_6(cNode.lock, true, false, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_WEST) && $set_6(cNode.lock, true, false, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); +} + +function $transform_0(this$static, ccs){ + var comp, comp$iterator, dummyGroup, ee, ee$iterator, group, rect, rect$iterator, rectNode, rectPlaceholder; + this$static.cGraph = new CGraph_0(allOf(Lorg_eclipse_elk_core_options_Direction_2_classLit)); + for (comp$iterator = new ArrayList$1(ccs.components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 841); + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); + $add_3(this$static.cGraph.cGroups, group); + for (rect$iterator = new ArrayList$1(comp.rectilinearConvexHull); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 110); + rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, rect); + $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); + if (!$containsKey_3(this$static.oldPosition, comp)) { + $put_6(this$static.oldPosition, comp, new KVector_1(rect.x_0, rect.y_0)); + $put_6(this$static.offsets, comp, rectNode); + } + $add_3(this$static.cGraph.cNodes, rectNode); + $addCNode_0(group, rectNode); + } + for (ee$iterator = new ArrayList$1(comp.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { + ee = castTo($next_7(ee$iterator), 594); + rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, ee.getRepresentor()); + $put_6(this$static.externalExtensions, ee, new Pair(group, rectNode)); + $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); + if (ee.getPlaceholder()) { + rectPlaceholder = new ComponentsToCGraphTransformer$CRectNode_0(this$static, ee.getPlaceholder(), 1); + $setLock(rectPlaceholder, castTo($getProperty(comp.graph_0, EXT_PORT_CONNECTIONS), 21)); + dummyGroup = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); + $addCNode_0(dummyGroup, rectPlaceholder); + $put(this$static.externalPlaceholder, ee.getDirection(), new Pair(group, rectPlaceholder)); + } + } + } + return this$static.cGraph; +} + +function ComponentsToCGraphTransformer(spacing){ + $clinit_ComponentsToCGraphTransformer(); + this.oldPosition = new HashMap; + this.offsets = new HashMap; + this.externalExtensions = new HashMap; + this.externalPlaceholder = new HashMultimap; + this.spacing = spacing; +} + +defineClass(1651, 1, {}, ComponentsToCGraphTransformer); +_.spacing = 0; +var SPACING_HANDLER; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer', 1651); +function $clinit_ISpacingsHandler_0(){ + $clinit_ISpacingsHandler_0 = emptyMethod; + DEFAULT_SPACING_HANDLER_0 = new ISpacingsHandler$1_0; +} + +var DEFAULT_SPACING_HANDLER_0; +function ComponentsToCGraphTransformer$1(){ +} + +defineClass(1652, 1, {}, ComponentsToCGraphTransformer$1); +_.getHorizontalSpacing_0 = function getHorizontalSpacing_0(cNode1, cNode2){ + return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +_.getVerticalSpacing_0 = function getVerticalSpacing_0(cNode1, cNode2){ + return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/1', 1652); +defineClass(81, 1, {81:1}); +_.id_0 = 0; +_.reposition = true; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CNode', 81); +function ComponentsToCGraphTransformer$CRectNode(this$0, rect){ + ComponentsToCGraphTransformer$CRectNode_0.call(this, this$0, rect, null); +} + +function ComponentsToCGraphTransformer$CRectNode_0(this$0, rect, spacing){ + this.this$01 = this$0; + this.constraints = new ArrayList; + this.cGroupOffset = new KVector; + this.lock = new Quadruplet_0; + this.spacingIgnore = new Quadruplet_0; + this.rect = rect; + this.hitbox = new ElkRectangle_0(rect.x_0, rect.y_0, rect.width_0, rect.height); + this.individualSpacing = spacing; +} + +defineClass(460, 81, {460:1, 81:1}, ComponentsToCGraphTransformer$CRectNode, ComponentsToCGraphTransformer$CRectNode_0); +_.toString_0 = function toString_84(){ + return ''; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$CRectNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/CRectNode', 460); +function $clinit_OneDimensionalComponentsCompaction(){ + $clinit_OneDimensionalComponentsCompaction = emptyMethod; + LEFT_RIGHT = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [($clinit_Direction_0() , LEFT_6), RIGHT_6])); + UP_DOWN = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UP_1, DOWN_1])); +} + +function $addExternalEdgeRepresentations(this$static, ees){ + var p, p$iterator; + for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 46); + $add_3(this$static.compactionGraph.cNodes, castTo(p.second, 81)); + $addCNode_0(castTo(p.first, 189), castTo(p.second, 81)); + } +} + +function $addPlaceholders(this$static, dir_0){ + var d, d$iterator, dirs, pair, pair$iterator; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $add_3(this$static.compactionGraph.cNodes, castTo(pair.second, 81)); + $add_3(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); + } + } +} + +function $compact_1(this$static){ + var delta, direction, g, g$iterator, g$iterator0, g$iterator1, g$iterator2; + delta = 0; + for (g$iterator0 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator0.i < g$iterator0.this$01.array.length;) { + g = castTo($next_7(g$iterator0), 189); + g.delta = 0; + g.deltaNormalized = 0; + } + $addPlaceholders(this$static, 0); + $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $calculateGroupOffsets_0(this$static.compactor); + $forceConstraintsRecalculation(this$static.compactor); + direction = ($clinit_Direction_0() , LEFT_6); + $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($changeDirection_0(this$static.compactor, direction)), $opposite(direction)))), direction))); + $changeDirection_0(this$static.compactor, LEFT_6); + $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $removePlaceholders(this$static, 0); + $updateExternalExtensionDimensions(this$static, 0); + $updatePlaceholders(this$static, 1); + $addPlaceholders(this$static, 1); + $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $calculateGroupOffsets_0(this$static.compactor); + for (g$iterator1 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator1.i < g$iterator1.this$01.array.length;) { + g = castTo($next_7(g$iterator1), 189); + delta += $wnd.Math.abs(g.deltaNormalized); + } + for (g$iterator2 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator2.i < g$iterator2.this$01.array.length;) { + g = castTo($next_7(g$iterator2), 189); + g.delta = 0; + g.deltaNormalized = 0; + } + direction = UP_1; + $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($forceConstraintsRecalculation($changeDirection_0(this$static.compactor, direction))), $opposite(direction)))), direction))); + $changeDirection_0(this$static.compactor, LEFT_6); + $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $removePlaceholders(this$static, 1); + $updateExternalExtensionDimensions(this$static, 1); + $updatePlaceholders(this$static, 0); + $forceConstraintsRecalculation(this$static.compactor); + for (g$iterator = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 189); + delta += $wnd.Math.abs(g.deltaNormalized); + } + return delta; +} + +function $compact_2(this$static){ + var allNodes, cNode, cNode$iterator, delta, entry, entry$iterator, run; + allNodes = new ArrayList; + this$static.verticalExternalExtensions = new ArrayList; + this$static.horizontalExternalExtensions = new ArrayList; + for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { + entry = $next_4(entry$iterator); + $add_3(allNodes, castTo(castTo(entry.getValue(), 46).second, 81)); + $isHorizontal(castTo(entry.getKey(), 594).getDirection())?$add_3(this$static.horizontalExternalExtensions, castTo(entry.getValue(), 46)):$add_3(this$static.verticalExternalExtensions, castTo(entry.getValue(), 46)); + } + $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + this$static.compactor = new OneDimensionalCompactor_0(this$static.compactionGraph); + $setSpacingsHandler_0(this$static.compactor, ($clinit_ComponentsToCGraphTransformer() , SPACING_HANDLER)); + $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); + $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); + $addAll_2(allNodes, this$static.compactor.cGraph.cNodes); + this$static.topLeft = new KVector_1($intern_59, $intern_59); + this$static.bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(allNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, cNode.hitbox.x_0); + this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, cNode.hitbox.y_0); + this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$0$Type); + run = 0; + do { + delta = $compact_1(this$static); + ++run; + } + while ((run < 2 || delta > $intern_41) && run < 10); + $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$1$Type); + $compact_1(this$static); + $finish(this$static.compactor); + $applyLayout_1(this$static.transformer); +} + +function $getOffset_0(this$static, c){ + var individual; + individual = $getOffset(this$static.transformer, c); + return $add_19($negate(individual), this$static.transformer.globalOffset); +} + +function $removeExternalEdgeRepresentations(this$static, ees){ + var p, p$iterator; + for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 46); + $remove_12(this$static.compactionGraph.cNodes, p.second); + $removeCNode(castTo(p.first, 189), castTo(p.second, 81)); + } +} + +function $removePlaceholders(this$static, dir_0){ + var d, d$iterator, dirs, pair, pair$iterator; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(this$static.compactionGraph.cNodes, pair.second); + $remove_12(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); + } + } +} + +function $updateExternalExtensionDimensions(this$static, dir_0){ + var adelta, cNode, ee, entry, entry$iterator, group; + for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { + entry = $next_4(entry$iterator); + ee = castTo(entry.getKey(), 594); + if (dir_0 == 1) { + if (ee.getDirection() != ($clinit_Direction_0() , UP_1) && ee.getDirection() != DOWN_1) { + continue; + } + } + else { + if (ee.getDirection() != ($clinit_Direction_0() , LEFT_6) && ee.getDirection() != RIGHT_6) { + continue; + } + } + cNode = castTo(castTo(entry.getValue(), 46).second, 81); + group = castTo(castTo(entry.getValue(), 46).first, 189); + adelta = group.deltaNormalized; + switch (ee.getDirection().ordinal) { + case 2: + cNode.hitbox.x_0 = this$static.topLeft.x_0; + cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 + adelta); + break; + case 1: + cNode.hitbox.x_0 = cNode.hitbox.x_0 + adelta; + cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 - adelta); + break; + case 4: + cNode.hitbox.y_0 = this$static.topLeft.y_0; + cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height + adelta); + break; + case 3: + cNode.hitbox.y_0 = cNode.hitbox.y_0 + adelta; + cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height - adelta); + } + } +} + +function $updatePlaceholders(this$static, dir_0){ + var adelta, cNode, d, d$iterator, dirs, pair, pair$iterator, parentComponentGroup; + dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; + for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { + d = castTo(d$iterator.next_1(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + cNode = castTo(pair.second, 81); + parentComponentGroup = castTo(pair.first, 189); + adelta = parentComponentGroup.deltaNormalized; + switch (d.ordinal) { + case 2: + case 1: + cNode.hitbox.y_0 += adelta; + break; + case 4: + case 3: + cNode.hitbox.x_0 += adelta; + } + } + } +} + +function OneDimensionalComponentsCompaction(){ +} + +function lambda$0_17(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , castTo(pair_0.first, 81).cGroup.outDegree != 0?true:false; +} + +function lambda$1_6(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103)) || castTo(pair_0.first, 81).cGroup.outDegree != 0 && $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103))?true:false; +} + +defineClass(1623, 1, {}, OneDimensionalComponentsCompaction); +var LEFT_RIGHT, UP_DOWN; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction', 1623); +function OneDimensionalComponentsCompaction$lambda$0$Type(){ +} + +defineClass(1624, 1, {}, OneDimensionalComponentsCompaction$lambda$0$Type); +_.apply_0 = function apply_60(arg0){ + return lambda$0_17(castTo(arg0, 46)); +} +; +_.equals_0 = function equals_82(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$0$Type', 1624); +function OneDimensionalComponentsCompaction$lambda$1$Type(){ +} + +defineClass(1625, 1, {}, OneDimensionalComponentsCompaction$lambda$1$Type); +_.apply_0 = function apply_61(arg0){ + return lambda$1_6(castTo(arg0, 46)); +} +; +_.equals_0 = function equals_83(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$1$Type', 1625); +function $supports_0(this$static, direction){ + return $containsEnum(this$static.supportedDirections, direction); +} + +function CGraph_0(supportedDirections){ + this.cNodes = new ArrayList; + this.cGroups = new ArrayList; + this.supportedDirections = supportedDirections; +} + +defineClass(1654, 1, {}, CGraph_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGraph', 1654); +function $addCNode_0(this$static, cNode){ + $add_6(this$static.cNodes, cNode); + if (cNode.cGroup) { + throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); + } + cNode.cGroup = this$static; +} + +function $removeCNode(this$static, cNode){ + var removed; + removed = $remove_18(this$static.cNodes, cNode); + removed && (cNode.cGroup = null); + return removed; +} + +function CGroup_0(inputCNodes){ + var cNode, cNode$array, cNode$index, cNode$max; + this.cNodes = new LinkedHashSet; + this.incomingConstraints = new HashSet; + this.outDegree = 0; + for (cNode$array = inputCNodes , cNode$index = 0 , cNode$max = cNode$array.length; cNode$index < cNode$max; ++cNode$index) { + cNode = cNode$array[cNode$index]; + !this.reference && (this.reference = cNode); + $addCNode_0(this, cNode); + } +} + +defineClass(189, 1, {189:1}, CGroup_0); +_.delta = 0; +_.deltaNormalized = 0; +_.outDegree = 0; +_.reposition = true; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGroup', 189); +function ISpacingsHandler$1_0(){ +} + +defineClass(1653, 1, {}, ISpacingsHandler$1_0); +_.getHorizontalSpacing_0 = function getHorizontalSpacing_1(cNode1, cNode2){ + return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +_.getVerticalSpacing_0 = function getVerticalSpacing_1(cNode1, cNode2){ + return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'ISpacingsHandler/1', 1653); +function $clinit_OneDimensionalCompactor_0(){ + $clinit_OneDimensionalCompactor_0 = emptyMethod; + SCANLINE_CONSTRAINTS_0 = new ScanlineConstraintCalculator_0; +} + +function $applyLockingStrategy(this$static){ + $applyLockingStrategy_0(this$static, this$static.direction); + return this$static; +} + +function $applyLockingStrategy_0(this$static, dir_0){ + var cGroup, cGroup$iterator, cNode, cNode$iterator; + for (cGroup$iterator = new ArrayList$1(this$static.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { + cGroup = castTo($next_7(cGroup$iterator), 189); + cGroup.reposition = true; + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.reposition = $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); + cNode.cGroup.reposition = cNode.cGroup.reposition & $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); + } + return this$static; +} + +function $calculateConstraints_0(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.constraints.clear_0(); + } + $calculateConstraints_1(this$static.constraintAlgorithm, this$static); + $calculateConstraintsForCGroups_0(this$static); +} + +function $calculateConstraintsForCGroups_0(this$static){ + var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; + for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 189); + group.outDegree = 0; + group.incomingConstraints.map_0.clear_0(); + } + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 189); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 81); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 81); + if (inc.cGroup != group) { + $add_6(group.incomingConstraints, inc); + ++inc.cGroup.outDegree; + } + } + } + } +} + +function $calculateGroupOffsets_0(this$static){ + var group, group$iterator, n, n$iterator, n$iterator0; + for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 189); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 81); + $reset_5(n.cGroupOffset); + (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); + } + for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 81); + n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; + n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; + } + } + return this$static; +} + +function $changeDirection_0(this$static, dir_0){ + var oldDirection; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + if (!$supports_0(this$static.cGraph, dir_0)) { + throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); + } + if (dir_0 == this$static.direction) { + return this$static; + } + oldDirection = this$static.direction; + this$static.direction = dir_0; + switch (oldDirection.ordinal) { + case 0: + switch (dir_0.ordinal) { + case 2: + $calculateConstraints_0(this$static); + break; + case 1: + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 4: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 2: + switch (dir_0.ordinal) { + case 1: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + break; + case 4: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 1: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + break; + case 4: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + } + + break; + case 4: + switch (dir_0.ordinal) { + case 2: + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 1: + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 3: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + } + + break; + case 3: + switch (dir_0.ordinal) { + case 2: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 1: + $mirrorHitboxes_0(this$static); + $transposeHitboxes_0(this$static); + $mirrorHitboxes_0(this$static); + $calculateConstraints_0(this$static); + break; + case 4: + $mirrorHitboxes_0(this$static); + $reverseConstraints_0(this$static); + } + + } + return this$static; +} + +function $compact_3(this$static){ + var g, g$iterator, incN, incN$iterator, n, n$iterator, node, node$iterator; + if (this$static.finished) { + throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); + } + this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection_0(this$static, LEFT_6); + for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 189); + g.outDegree = 0; + } + for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + n.startPos = $intern_60; + for (incN$iterator = n.constraints.iterator_0(); incN$iterator.hasNext_0();) { + incN = castTo(incN$iterator.next_1(), 81); + ++incN.cGroup.outDegree; + } + } + $compact_4(this$static); + for (node$iterator = new ArrayList$1(this$static.cGraph.cNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 81); + node.reposition = true; + } + return this$static; +} + +function $finish(this$static){ + $changeDirection_0(this$static, ($clinit_Direction_0() , LEFT_6)); + this$static.finished = true; + return this$static; +} + +function $forceConstraintsRecalculation(this$static){ + $calculateConstraints_0(this$static); + return this$static; +} + +function $mirrorHitboxes_0(this$static){ + var cNode, cNode$iterator; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; + } + $calculateGroupOffsets_0(this$static); +} + +function $reverseConstraints_0(this$static){ + var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; + incMap = new HashMap; + for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 81); + $put_6(incMap, cNode, new ArrayList); + } + for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator1), 81); + cNode.startPos = $intern_60; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 81); + castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); + } + } + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.constraints.clear_0(); + cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); + } + $calculateConstraintsForCGroups_0(this$static); +} + +function $setLockingStrategy(this$static, strategy){ + this$static.lockingStrategy = strategy; + return this$static; +} + +function $setSpacingsHandler_0(this$static, handler){ + this$static.spacingsHandler = handler; + return this$static; +} + +function $transposeHitboxes_0(this$static){ + var cNode, cNode$iterator, tmp; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + tmp = cNode.hitbox.x_0; + cNode.hitbox.x_0 = cNode.hitbox.y_0; + cNode.hitbox.y_0 = tmp; + tmp = cNode.hitbox.width_0; + cNode.hitbox.width_0 = cNode.hitbox.height; + cNode.hitbox.height = tmp; + tmp = cNode.cGroupOffset.x_0; + cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; + cNode.cGroupOffset.y_0 = tmp; + } + $calculateGroupOffsets_0(this$static); +} + +function OneDimensionalCompactor_0(cGraph){ + $clinit_OneDimensionalCompactor_0(); + var group, n, n$iterator; + this.constraintAlgorithm = SCANLINE_CONSTRAINTS_0; + this.direction = ($clinit_Direction_0() , UNDEFINED_2); + this.spacingsHandler = ($clinit_ISpacingsHandler_0() , DEFAULT_SPACING_HANDLER_0); + this.cGraph = cGraph; + $setLockingStrategy(this, new OneDimensionalCompactor$lambda$0$Type_0); + $calculateGroupOffsets_0(this); + for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + if (!n.cGroup) { + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [n])); + $add_3(cGraph.cGroups, group); + } + } +} + +defineClass(1655, 1, {}, OneDimensionalCompactor_0); +_.finished = false; +var SCANLINE_CONSTRAINTS_0; +var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor', 1655); +function OneDimensionalCompactor$lambda$0$Type_0(){ +} + +defineClass(1656, 1, {}, OneDimensionalCompactor$lambda$0$Type_0); +_.apply_0 = function apply_62(arg0){ + return $clinit_OneDimensionalCompactor_0() , $clinit_Boolean() , castTo(castTo(arg0, 46).first, 81).cGroup.outDegree != 0?true:false; +} +; +_.equals_0 = function equals_84(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1656); +function $get_19(this$static, direction){ + switch (direction.ordinal) { + case 2: + return this$static.left; + case 1: + return this$static.right; + case 4: + return this$static.up; + case 3: + return this$static.down; + default:return false; + } +} + +function $set_6(this$static, l, r, u, d){ + this$static.left = l; + this$static.right = r; + this$static.up = u; + this$static.down = d; +} + +function Quadruplet_0(){ + $set_6(this, false, false, false, false); +} + +defineClass(823, 1, {}, Quadruplet_0); +_.down = false; +_.left = false; +_.right = false; +_.up = false; +var Lorg_eclipse_elk_alg_layered_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'Quadruplet', 823); +function $compact_4(compactor){ + var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; + minStartPos = $intern_59; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 81); + minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); + } + sinks = new LinkedList; + for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 189); + group.startPos = minStartPos; + group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 189); + diff = group.reference.hitbox.x_0; + for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { + node = castTo(node$iterator0.next_1(), 81); + suggestedX = group.startPos + node.cGroupOffset.x_0; + node.cGroup.reposition || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); + } + diff -= group.reference.startPos; + group.delta += diff; + compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); + for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 81); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 81); + $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing_0(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing_0(node, incNode)); + incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); + incNode.reposition || (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); + --incNode.cGroup.outDegree; + incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); + } + } + } + for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + cNode.hitbox.x_0 = cNode.startPos; + } +} + +function $blowUpHitboxes(this$static){ + var n, n$iterator, spacing; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + spacing = (checkCriticalNotNull(0) , 0); + if (spacing > 0) { + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 -= $wnd.Math.max(0, spacing / 2 - 0.5)); + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height += $wnd.Math.max(0, spacing - 1)); + } + } +} + +function $calculateConstraints_1(this$static, theCompactor){ + this$static.compactor = theCompactor; + $sweep_1(this$static); +} + +function $normalizeHitboxes(this$static){ + var n, n$iterator, spacing; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + spacing = (checkCriticalNotNull(0) , 0); + if (spacing > 0) { + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 += $wnd.Math.max(0, spacing / 2 - 0.5)); + !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height -= spacing - 1); + } + } +} + +function $sweep_1(this$static){ + var n, n$iterator, points; + $blowUpHitboxes(this$static); + points = new ArrayList; + for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, true)); + $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, false)); + } + $reset_2(this$static.constraintsScanlineHandler); + execute_0(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [this$static.constraintsScanlineHandler]))); + $normalizeHitboxes(this$static); +} + +function ScanlineConstraintCalculator_0(){ + this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type_0; + this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this); +} + +function lambda$0_18(p1_0, p2_1){ + var cmp, y1, y2; + y1 = p1_0.node.hitbox.y_0; + p1_0.low || (y1 += p1_0.node.hitbox.height); + y2 = p2_1.node.hitbox.y_0; + p2_1.low || (y2 += p2_1.node.hitbox.height); + cmp = compare_4(y1, y2); + if (cmp == 0) { + if (!p1_0.low && p2_1.low) { + return -1; + } + else if (!p2_1.low && p1_0.low) { + return 1; + } + } + return cmp; +} + +defineClass(1825, 1, {}, ScanlineConstraintCalculator_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator', 1825); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline/EventHandler'); +function $handle_1(this$static, p){ + var right, left, right_0; + p.low?($add_10(this$static.intervals, p.node) , this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 81) , right = castTo($higher(this$static.intervals, p.node), 81) , !!right && (this$static.cand[right.id_0] = p.node) , undefined):(left = castTo($lower(this$static.intervals, p.node), 81) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right_0 = castTo($higher(this$static.intervals, p.node), 81) , !!right_0 && this$static.cand[right_0.id_0] == p.node && !!right_0.cGroup && right_0.cGroup != p.node.cGroup && p.node.constraints.add_2(right_0) , $remove_28(this$static.intervals, p.node) , undefined); +} + +function $reset_2(this$static){ + var index_0, n, n$iterator; + $clear_8(this$static.intervals.map_0); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, $intern_2, 81, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); + index_0 = 0; + for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 81); + n.id_0 = index_0++; + } +} + +function ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this$0){ + this.this$01 = this$0; + this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0), 62)); +} + +function lambda$0_19(c1_0, c2_1){ + return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); +} + +defineClass(1826, 1, {369:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler_0); +_.handle = function handle_1(p){ + $handle_1(this, castTo(p, 466)); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1826); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0(){ +} + +defineClass(1827, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0); +_.compare_1 = function compare_30(arg0, arg1){ + return lambda$0_19(castTo(arg0, 81), castTo(arg1, 81)); +} +; +_.equals_0 = function equals_85(other){ + return this === other; +} +; +_.reversed = function reversed_22(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1827); +function ScanlineConstraintCalculator$Timestamp_0(node, low){ + this.node = node; + this.low = low; +} + +defineClass(466, 1, {466:1}, ScanlineConstraintCalculator$Timestamp_0); +_.low = false; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/Timestamp', 466); +function ScanlineConstraintCalculator$lambda$0$Type_0(){ +} + +defineClass(1828, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type_0); +_.compare_1 = function compare_31(arg0, arg1){ + return lambda$0_18(castTo(arg0, 466), castTo(arg1, 466)); +} +; +_.equals_0 = function equals_86(other){ + return this === other; +} +; +_.reversed = function reversed_23(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/lambda$0$Type', 1828); +function Point(x_0, y_0){ + this.x_0 = x_0; + this.y_0 = y_0; +} + +function Point_0(x_0, y_0, quadrant){ + Point.call(this, x_0, y_0); + this.quadrant = quadrant; +} + +defineClass(140, 1, {140:1}, Point, Point_0); +_.equals_0 = function equals_87(obj){ + var p2; + if (obj == null) { + return false; + } + if (Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit != getClass__Ljava_lang_Class___devirtual$(obj)) { + return false; + } + p2 = castTo(obj, 140); + return equals_57(this.x_0, p2.x_0) && equals_57(this.y_0, p2.y_0); +} +; +_.hashCode_1 = function hashCode_60(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0])); +} +; +_.toString_0 = function toString_85(){ + return '(' + this.x_0 + ', ' + this.y_0 + (this.convex?'cx':'') + this.quadrant + ')'; +} +; +_.convex = true; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Point', 140); +function $clinit_Point$Quadrant(){ + $clinit_Point$Quadrant = emptyMethod; + Q1 = new Point$Quadrant('Q1', 0); + Q4 = new Point$Quadrant('Q4', 1); + Q2 = new Point$Quadrant('Q2', 2); + Q3 = new Point$Quadrant('Q3', 3); +} + +function $isLeft(this$static){ + return this$static == Q1 || this$static == Q4; +} + +function $isUpper(this$static){ + return this$static == Q1 || this$static == Q2; +} + +function Point$Quadrant(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isBothLeftOrBothRight(q1, q2){ + $clinit_Point$Quadrant(); + return q1 == Q1 && q2 == Q4 || q1 == Q4 && q2 == Q1 || q1 == Q3 && q2 == Q2 || q1 == Q2 && q2 == Q3; +} + +function isOneLeftOneRight(q1, q2){ + $clinit_Point$Quadrant(); + return q1 == Q1 && q2 == Q2 || q1 == Q1 && q2 == Q3 || q1 == Q4 && q2 == Q3 || q1 == Q4 && q2 == Q2; +} + +function valueOf_28(name_0){ + $clinit_Point$Quadrant(); + return valueOf(($clinit_Point$Quadrant$Map() , $MAP_16), name_0); +} + +function values_34(){ + $clinit_Point$Quadrant(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]); +} + +defineClass(405, 22, {3:1, 35:1, 22:1, 405:1}, Point$Quadrant); +var Q1, Q2, Q3, Q4; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit = createForEnum('org.eclipse.elk.alg.layered.compaction.recthull', 'Point/Quadrant', 405, Ljava_lang_Enum_2_classLit, values_34, valueOf_28); +function $clinit_Point$Quadrant$Map(){ + $clinit_Point$Quadrant$Map = emptyMethod; + $MAP_16 = createValueOfMap(($clinit_Point$Quadrant() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]))); +} + +var $MAP_16; +function $clinit_RectilinearConvexHull(){ + $clinit_RectilinearConvexHull = emptyMethod; + RIGHT_HIGH_FIRST = new RectilinearConvexHull$lambda$0$Type; + RIGHT_LOW_FIRST = new RectilinearConvexHull$lambda$1$Type; + LEFT_HIGH_FIRST = new RectilinearConvexHull$lambda$2$Type; + LEFT_LOW_FIRST = new RectilinearConvexHull$lambda$3$Type; + RIGHT_SPECIAL_ORDER = new RectilinearConvexHull$lambda$4$Type; +} + +function $splitIntoRectangles(this$static){ + var handler; + handler = new RectilinearConvexHull$RectangleEventHandler(this$static); + execute_0(this$static.hull, RIGHT_SPECIAL_ORDER, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [handler]))); + !!handler.queued && $add_3(handler.rects, handler.queued); + return handler.rects; +} + +function RectilinearConvexHull(){ + this.hull = new ArrayList; +} + +function addConcaveCorners(pts, q){ + var last, next, p, pIt; + pIt = new AbstractList$ListIteratorImpl(pts, 0); + last = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); + while (pIt.i < pIt.this$01_0.size_1()) { + next = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); + p = new Point_0(next.x_0, last.y_0, q); + checkCriticalElement(pIt.i > 0); + pIt.this$01.get_0(pIt.last = --pIt.i); + $add_1(pIt, p); + checkCriticalElement(pIt.i < pIt.this$01_0.size_1()); + pIt.this$01_0.get_0(pIt.last = pIt.i++); + p.convex = false; + last = next; + } +} + +function lambda$0_20(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p1_0.x_0, p2_1.x_0); +} + +function lambda$1_7(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p1_0.x_0, p2_1.x_0); +} + +function lambda$2_2(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p2_1.x_0, p1_0.x_0); +} + +function lambda$3_0(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p2_1.x_0, p1_0.x_0); +} + +function lambda$4_2(p1_0, p2_1){ + $clinit_RectilinearConvexHull(); + var val; + if (p1_0.x_0 == p2_1.x_0) { + if (p1_0.quadrant == p2_1.quadrant || isBothLeftOrBothRight(p1_0.quadrant, p2_1.quadrant)) { + val = $isLeft(p1_0.quadrant)?1:-1; + if (p1_0.convex && !p2_1.convex) { + return val; + } + else if (!p1_0.convex && p2_1.convex) { + return -val; + } + } + return compare_5(p1_0.quadrant.ordinal, p2_1.quadrant.ordinal); + } + else { + return compare_4(p1_0.x_0, p2_1.x_0); + } +} + +function of_5(points){ + $clinit_RectilinearConvexHull(); + var p, p$iterator, q1, q2, q3, q4, rch; + rch = new RectilinearConvexHull; + for (p$iterator = new ArrayList$1(points); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 140); + (!rch.xMax1 || p.x_0 >= rch.xMax1.x_0) && (rch.xMax1 = p); + if (!rch.xMin1 || p.x_0 <= rch.xMin1.x_0) { + rch.xMin2 = rch.xMin1; + rch.xMin1 = p; + } + (!rch.yMax1 || p.y_0 >= rch.yMax1.y_0) && (rch.yMax1 = p); + (!rch.yMin1 || p.y_0 <= rch.yMin1.y_0) && (rch.yMin1 = p); + } + q1 = new RectilinearConvexHull$MaximalElementsEventHandler(($clinit_Point$Quadrant() , Q1)); + execute_0(points, RIGHT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q1]))); + q4 = new RectilinearConvexHull$MaximalElementsEventHandler(Q4); + execute_0(points, RIGHT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q4]))); + q2 = new RectilinearConvexHull$MaximalElementsEventHandler(Q2); + execute_0(points, LEFT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q2]))); + q3 = new RectilinearConvexHull$MaximalElementsEventHandler(Q3); + execute_0(points, LEFT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q3]))); + addConcaveCorners(q1.points, Q1); + addConcaveCorners(q2.points, Q2); + addConcaveCorners(q3.points, Q3); + addConcaveCorners(q4.points, Q4); + rch.hull.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(rch.hull, q1.points); + $addAll_2(rch.hull, reverse_0(q2.points)); + $addAll_2(rch.hull, q3.points); + $addAll_2(rch.hull, reverse_0(q4.points)); + return rch; +} + +defineClass(1642, 1, {}, RectilinearConvexHull); +_.xMax1 = null; +_.xMin1 = null; +_.xMin2 = null; +_.yMax1 = null; +_.yMin1 = null; +var LEFT_HIGH_FIRST, LEFT_LOW_FIRST, RIGHT_HIGH_FIRST, RIGHT_LOW_FIRST, RIGHT_SPECIAL_ORDER; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull', 1642); +function $clinit_RectilinearConvexHull$MaximalElementsEventHandler(){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler = emptyMethod; + DBL_CMP = new RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type; +} + +function $handle_2(this$static, p){ + if (this$static.compare.compare_1(p.y_0, this$static.maximalY) > 0) { + $add_3(this$static.points, new Point_0(p.x_0, p.y_0, this$static.quadrant)); + this$static.maximalY = p.y_0; + } +} + +function RectilinearConvexHull$MaximalElementsEventHandler(quadrant){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + this.points = new ArrayList; + this.quadrant = quadrant; + switch (quadrant.ordinal) { + case 0: + case 2: + this.compare = reverseOrder(DBL_CMP); + this.maximalY = $intern_59; + break; + case 3: + case 1: + this.compare = DBL_CMP; + this.maximalY = $intern_60; + } +} + +function lambda$0_21(d1_0, d2_1){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + return compare_4((checkCriticalNotNull(d1_0) , d1_0), (checkCriticalNotNull(d2_1) , d2_1)); +} + +defineClass(574, 1, {369:1}, RectilinearConvexHull$MaximalElementsEventHandler); +_.handle = function handle_2(p){ + $handle_2(this, castTo(p, 140)); +} +; +_.maximalY = 0; +var DBL_CMP; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler', 574); +function RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type(){ +} + +defineClass(1644, 1, $intern_88, RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type); +_.compare_1 = function compare_32(arg0, arg1){ + return lambda$0_21(castToDouble(arg0), castToDouble(arg1)); +} +; +_.equals_0 = function equals_88(other){ + return this === other; +} +; +_.reversed = function reversed_24(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type', 1644); +function $handle_3(this$static, p){ + var r; + if (!!this$static.queued && (p.x_0 != this$static.queuedPnt.x_0 || isOneLeftOneRight(this$static.queuedPnt.quadrant, p.quadrant))) { + $add_3(this$static.rects, this$static.queued); + this$static.lastX = this$static.queued.x_0 + this$static.queued.width_0; + this$static.queued = null; + this$static.queuedPnt = null; + } + $isUpper(p.quadrant)?(this$static.minY = p):(this$static.maxY = p); + if (p.quadrant == ($clinit_Point$Quadrant() , Q1) && !p.convex || p.quadrant == Q2 && p.convex || p.quadrant == Q3 && p.convex || p.quadrant == Q4 && !p.convex) { + if (!!this$static.minY && !!this$static.maxY) { + r = new ElkRectangle_0(this$static.lastX, this$static.minY.y_0, p.x_0 - this$static.lastX, this$static.maxY.y_0 - this$static.minY.y_0); + this$static.queued = r; + this$static.queuedPnt = p; + } + } +} + +function RectilinearConvexHull$RectangleEventHandler(this$0){ + this.this$01 = this$0; + this.rects = new ArrayList; + this.lastX = $wnd.Math.min(this.this$01.xMin1.x_0, this.this$01.xMin2.x_0); +} + +defineClass(1643, 1, {369:1}, RectilinearConvexHull$RectangleEventHandler); +_.handle = function handle_3(p){ + $handle_3(this, castTo(p, 140)); +} +; +_.lastX = 0; +_.maxY = null; +_.minY = null; +_.queued = null; +_.queuedPnt = null; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$RectangleEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/RectangleEventHandler', 1643); +function RectilinearConvexHull$lambda$0$Type(){ +} + +defineClass(1645, 1, $intern_88, RectilinearConvexHull$lambda$0$Type); +_.compare_1 = function compare_33(arg0, arg1){ + return lambda$0_20(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_89(other){ + return this === other; +} +; +_.reversed = function reversed_25(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$0$Type', 1645); +function RectilinearConvexHull$lambda$1$Type(){ +} + +defineClass(1646, 1, $intern_88, RectilinearConvexHull$lambda$1$Type); +_.compare_1 = function compare_34(arg0, arg1){ + return lambda$1_7(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_90(other){ + return this === other; +} +; +_.reversed = function reversed_26(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$1$Type', 1646); +function RectilinearConvexHull$lambda$2$Type(){ +} + +defineClass(1647, 1, $intern_88, RectilinearConvexHull$lambda$2$Type); +_.compare_1 = function compare_35(arg0, arg1){ + return lambda$2_2(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_91(other){ + return this === other; +} +; +_.reversed = function reversed_27(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$2$Type', 1647); +function RectilinearConvexHull$lambda$3$Type(){ +} + +defineClass(1648, 1, $intern_88, RectilinearConvexHull$lambda$3$Type); +_.compare_1 = function compare_36(arg0, arg1){ + return lambda$3_0(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_92(other){ + return this === other; +} +; +_.reversed = function reversed_28(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$3$Type', 1648); +function RectilinearConvexHull$lambda$4$Type(){ +} + +defineClass(1649, 1, $intern_88, RectilinearConvexHull$lambda$4$Type); +_.compare_1 = function compare_37(arg0, arg1){ + return lambda$4_2(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.equals_0 = function equals_93(other){ + return this === other; +} +; +_.reversed = function reversed_29(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$4$Type', 1649); +function $go_0(this$static){ + var h, h$iterator, p, p$iterator; + $clinit_Collections(); + $sort(this$static.points, this$static.comparator); + for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { + p = $next_7(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_7(h$iterator), 369); + h.handle(p); + } + } +} + +function Scanline_0(points, comparator, eventHandlers){ + this.comparator = comparator; + this.points = points; + this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); +} + +function execute_0(points, comparator, eventHandlers){ + var copy; + copy = (checkNotNull(points) , new ArrayList_1(points)); + $go_0(new Scanline_0(copy, comparator, eventHandlers)); +} + +defineClass(1650, 1, {}, Scanline_0); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline', 1650); +function $moveGraph_0(destGraph, sourceGraph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = $add_18(sourceGraph.offset, offsetx, offsety); + for (node$iterator = new ArrayList$1(sourceGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $add_19(label_0.pos, graphOffset); + } + } + } + $add_3(destGraph.layerlessNodes, node); + node.graph_0 = destGraph; + } +} + +function $moveGraphs(destGraph, sourceGraphs){ + var sourceGraph, sourceGraph$iterator; + for (sourceGraph$iterator = sourceGraphs.iterator_0(); sourceGraph$iterator.hasNext_0();) { + sourceGraph = castTo(sourceGraph$iterator.next_1(), 37); + $moveGraph_0(destGraph, sourceGraph, 0, 0); + } +} + +function $offsetGraph(graph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = new KVector_1(offsetx, offsety); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $add_19(label_0.pos, graphOffset); + } + } + } + } +} + +function $offsetGraphs(graphs, offsetx, offsety){ + var graph, graph$iterator; + for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + $offsetGraph(graph, offsetx, offsety); + } +} + +defineClass(2005, 1, {}); +var Lorg_eclipse_elk_alg_layered_components_AbstractGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'AbstractGraphPlacer', 2005); +function $clinit_ComponentGroup(){ + $clinit_ComponentGroup = emptyMethod; + CONSTRAINTS = new HashMultimap; + $put(CONSTRAINTS, ($clinit_PortSide() , SIDES_NONE), SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NONE); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); +} + +function $$init_6(this$static){ + this$static.components = new ArrayListMultimap; +} + +function $getComponents(this$static, connections){ + return castTo($get(this$static.components, connections), 15); +} + +function ComponentGroup(component){ + $clinit_ComponentGroup(); + $$init_6(this); + this.add_4(component); +} + +defineClass(325, 1, {325:1}, ComponentGroup); +_.add_4 = function add_43(component){ + if (this.canAdd(component)) { + $put(this.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); + return true; + } + else { + return false; + } +} +; +_.canAdd = function canAdd(component){ + var candidateSides, constraint, constraint$iterator, constraints; + candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); + constraints = castTo($get(CONSTRAINTS, candidateSides), 21); + for (constraint$iterator = constraints.iterator_0(); constraint$iterator.hasNext_0();) { + constraint = castTo(constraint$iterator.next_1(), 21); + if (!castTo($get(this.components, constraint), 15).isEmpty()) { + return false; + } + } + return true; +} +; +var CONSTRAINTS; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroup', 325); +function $placeComponents(group, spacing){ + var colLeftWidth, colMidWidth, colNsWidth, colRightWidth, componentSize, rowBottomHeight, rowMidHeight, rowTopHeight, rowWeHeight, sizeC, sizeE, sizeENS, sizeN, sizeNE, sizeNESW, sizeNS, sizeNW, sizeNWE, sizeS, sizeSE, sizeSW, sizeSWE, sizeW, sizeWE, sizeWNS; + sizeC = $placeComponentsInRows($getComponents(group, ($clinit_PortSide() , SIDES_NONE)), spacing); + sizeN = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH), spacing); + sizeS = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH), spacing); + sizeW = $placeComponentsVertically($getComponents(group, SIDES_WEST), spacing); + sizeE = $placeComponentsVertically($getComponents(group, SIDES_EAST), spacing); + sizeNW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_WEST), spacing); + sizeNE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST), spacing); + sizeSW = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH_WEST), spacing); + sizeSE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH), spacing); + sizeWE = $placeComponentsVertically($getComponents(group, SIDES_EAST_WEST), spacing); + sizeNS = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_SOUTH), spacing); + sizeNWE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_WEST), spacing); + sizeSWE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH_WEST), spacing); + sizeWNS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_SOUTH_WEST), spacing); + sizeENS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_EAST_SOUTH), spacing); + sizeNESW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), spacing); + colLeftWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.x_0, sizeW.x_0, sizeSW.x_0, sizeWNS.x_0])); + colMidWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeN.x_0, sizeC.x_0, sizeS.x_0, sizeNESW.x_0])); + colNsWidth = sizeNS.x_0; + colRightWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNE.x_0, sizeE.x_0, sizeSE.x_0, sizeENS.x_0])); + rowTopHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.y_0, sizeN.y_0, sizeNE.y_0, sizeNWE.y_0])); + rowMidHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeW.y_0, sizeC.y_0, sizeE.y_0, sizeNESW.y_0])); + rowWeHeight = sizeWE.y_0; + rowBottomHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeSW.y_0, sizeS.y_0, sizeSE.y_0, sizeSWE.y_0])); + $offsetGraphs($getComponents(group, SIDES_NONE), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH), colLeftWidth + colNsWidth, 0); + $offsetGraphs($getComponents(group, SIDES_SOUTH), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_WEST), 0, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_EAST), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST), colLeftWidth + colNsWidth + colMidWidth, 0); + $offsetGraphs($getComponents(group, SIDES_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_EAST_WEST), 0, rowTopHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_SOUTH), colLeftWidth, 0); + $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); + $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, 0); + componentSize = new KVector; + componentSize.x_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [colLeftWidth + colMidWidth + colNsWidth + colRightWidth, sizeWE.x_0, sizeNWE.x_0, sizeSWE.x_0])); + componentSize.y_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [rowTopHeight + rowMidHeight + rowWeHeight + rowBottomHeight, sizeNS.y_0, sizeWNS.y_0, sizeENS.y_0])); + return componentSize; +} + +function $placeComponentsHorizontally(components, spacing){ + var component, component$iterator, size_0; + size_0 = new KVector; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $offsetGraph(component, size_0.x_0, 0); + size_0.x_0 += component.size_0.x_0 + spacing; + size_0.y_0 = $wnd.Math.max(size_0.y_0, component.size_0.y_0); + } + size_0.y_0 > 0 && (size_0.y_0 += spacing); + return size_0; +} + +function $placeComponentsInRows(components, spacing){ + var broadestRow, component, component$iterator, componentSize, graph, graph$iterator, highestBox, maxRowWidth, size_0, totalArea, xpos, ypos; + if (components.isEmpty()) { + return new KVector; + } + maxRowWidth = 0; + totalArea = 0; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + componentSize = component.size_0; + maxRowWidth = $wnd.Math.max(maxRowWidth, componentSize.x_0); + totalArea += componentSize.x_0 * componentSize.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(castTo(components.iterator_0().next_1(), 37), ($clinit_LayeredOptions() , ASPECT_RATIO_1))))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $offsetGraph(graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + return new KVector_1(broadestRow + spacing, ypos + highestBox + spacing); +} + +function $placeComponentsVertically(components, spacing){ + var component, component$iterator, size_0; + size_0 = new KVector; + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $offsetGraph(component, 0, size_0.y_0); + size_0.y_0 += component.size_0.y_0 + spacing; + size_0.x_0 = $wnd.Math.max(size_0.x_0, component.size_0.x_0); + } + size_0.x_0 > 0 && (size_0.x_0 += spacing); + return size_0; +} + +function ComponentGroupGraphPlacer(){ + this.componentGroups = new ArrayList; +} + +defineClass(765, 2005, {}, ComponentGroupGraphPlacer); +_.addComponent = function addComponent(component){ + var group, group$iterator; + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 325); + if (group.add_4(component)) { + return; + } + } + $add_3(this.componentGroups, new ComponentGroup(component)); +} +; +_.combine = function combine(components, target){ + var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, offset; + this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 37); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + this.addComponent(component); + } + offset = new KVector; + componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); + for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 325); + groupSize = $placeComponents(group, componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + offset.x_0 += groupSize.x_0; + offset.y_0 += groupSize.y_0; + } + target.size_0.x_0 = offset.x_0 - componentSpacing; + target.size_0.y_0 = offset.y_0 - componentSpacing; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { + for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { + h = castTo(h$iterator0.next_1(), 37); + $offsetGraph(h, h.offset.x_0, h.offset.y_0); + } + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 325); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupGraphPlacer', 765); +function $addComponent(this$static, component){ + var group; + if (this$static.componentGroups.array.length > 0) { + group = castTo($get_11(this$static.componentGroups, this$static.componentGroups.array.length - 1), 570); + if ($add_14(group, component)) { + return; + } + } + $add_3(this$static.componentGroups, new ModelOrderComponentGroup(component)); +} + +function ComponentGroupModelOrderGraphPlacer(){ + ComponentGroupGraphPlacer.call(this); +} + +defineClass(1293, 765, {}, ComponentGroupModelOrderGraphPlacer); +_.addComponent = function addComponent_0(component){ + $addComponent(this, component); +} +; +_.combine = function combine_0(components, target){ + var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, maxSize, offset, side, side$iterator, spaceBlockedByComponents, spaceBlockedBySouthEdges; + this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 37); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $addComponent(this, component); + } + spaceBlockedBySouthEdges = new KVector; + spaceBlockedByComponents = new KVector; + offset = new KVector; + maxSize = new KVector; + componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); + for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 325); + if ($isHorizontal(castTo($getProperty(target, ($clinit_CoreOptions() , DIRECTION_0)), 103))) { + offset.x_0 = spaceBlockedBySouthEdges.x_0; + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , NORTH_3))) { + offset.x_0 = spaceBlockedByComponents.x_0; + break; + } + } + } + else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { + offset.y_0 = spaceBlockedBySouthEdges.y_0; + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , WEST_2))) { + offset.y_0 = spaceBlockedByComponents.y_0; + break; + } + } + } + groupSize = $placeComponents(castTo(group, 570), componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + if ($isHorizontal(castTo($getProperty(target, DIRECTION_0), 103))) { + spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; + maxSize.x_0 = $wnd.Math.max(maxSize.x_0, spaceBlockedByComponents.x_0); + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , SOUTH_2))) { + spaceBlockedBySouthEdges.x_0 = offset.x_0 + groupSize.x_0; + break; + } + } + spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; + offset.y_0 = spaceBlockedByComponents.y_0; + maxSize.y_0 = $wnd.Math.max(maxSize.y_0, offset.y_0); + } + else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { + spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; + maxSize.y_0 = $wnd.Math.max(maxSize.y_0, spaceBlockedByComponents.y_0); + for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { + side = castTo($transform(side$iterator.backingIterator.next_1()), 21); + if (side.contains(($clinit_PortSide() , EAST_2))) { + spaceBlockedBySouthEdges.y_0 = offset.y_0 + groupSize.y_0; + break; + } + } + spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; + offset.x_0 = spaceBlockedByComponents.x_0; + maxSize.x_0 = $wnd.Math.max(maxSize.x_0, offset.x_0); + } + } + target.size_0.x_0 = maxSize.x_0 - componentSpacing; + target.size_0.y_0 = maxSize.y_0 - componentSpacing; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { + for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { + h = castTo(h$iterator0.next_1(), 37); + $offsetGraph(h, h.offset.x_0, h.offset.y_0); + } + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 325); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupModelOrderGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupModelOrderGraphPlacer', 1293); +function $clinit_ComponentOrderingStrategy(){ + $clinit_ComponentOrderingStrategy = emptyMethod; + NONE = new ComponentOrderingStrategy('NONE', 0); + INSIDE_PORT_SIDE_GROUPS = new ComponentOrderingStrategy('INSIDE_PORT_SIDE_GROUPS', 1); + FORCE_MODEL_ORDER = new ComponentOrderingStrategy('FORCE_MODEL_ORDER', 2); +} + +function ComponentOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_29(name_0){ + $clinit_ComponentOrderingStrategy(); + return valueOf(($clinit_ComponentOrderingStrategy$Map() , $MAP_17), name_0); +} + +function values_35(){ + $clinit_ComponentOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]); +} + +defineClass(423, 22, {3:1, 35:1, 22:1, 423:1}, ComponentOrderingStrategy); +var FORCE_MODEL_ORDER, INSIDE_PORT_SIDE_GROUPS, NONE; +var Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.components', 'ComponentOrderingStrategy', 423, Ljava_lang_Enum_2_classLit, values_35, valueOf_29); +function $clinit_ComponentOrderingStrategy$Map(){ + $clinit_ComponentOrderingStrategy$Map = emptyMethod; + $MAP_17 = createValueOfMap(($clinit_ComponentOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]))); +} + +var $MAP_17; +function $addLGraphElementBounds(pts, element, offset){ + var margins; + margins = null; + !!element && (margins = element.margin); + $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); + $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); +} + +function $compact_5(this$static, graphs, spacing){ + var c, cc, cc$iterator, cc$iterator0, ccs, e, e$iterator, graph, graph$iterator, graph$iterator0, last, lastArg, n, n$iterator, newPos, node, node$iterator, offset, v, v$iterator, vc, compaction; + this$static.graphTopLeft = new KVector_1($intern_59, $intern_59); + this$static.graphBottomRight = new KVector_1($intern_60, $intern_60); + for (graph$iterator0 = graphs.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 37); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.graphTopLeft.x_0 = $wnd.Math.min(this$static.graphTopLeft.x_0, node.pos.x_0 - node.margin.left); + this$static.graphTopLeft.y_0 = $wnd.Math.min(this$static.graphTopLeft.y_0, node.pos.y_0 - node.margin.top_0); + this$static.graphBottomRight.x_0 = $wnd.Math.max(this$static.graphBottomRight.x_0, node.pos.x_0 + node.size_0.x_0 + node.margin.right); + this$static.graphBottomRight.y_0 = $wnd.Math.max(this$static.graphBottomRight.y_0, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); + } + } + ccs = new ComponentsCompactor$InternalConnectedComponents; + for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + c = $transformLGraph(this$static, graph); + $add_3(ccs.components, c); + c.containsRegularNodes = c.containsRegularNodes | !castTo($getProperty(c.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).isEmpty(); + } + this$static.compactor = ($clinit_OneDimensionalComponentsCompaction() , compaction = new OneDimensionalComponentsCompaction , compaction.transformer = new ComponentsToCGraphTransformer(spacing) , compaction.compactionGraph = $transform_0(compaction.transformer, ccs) , compaction); + $compact_2((lastArg = this$static.compactor , new BasicProgressMonitor , lastArg)); + this$static.yetAnotherOffset = new KVector; + this$static.compactedGraphSize = this$static.compactor.transformer.graphSize; + for (cc$iterator0 = new ArrayList$1(ccs.components); cc$iterator0.i < cc$iterator0.this$01.array.length;) { + cc = castTo($next_7(cc$iterator0), 841); + offset = $getOffset_0(this$static.compactor, cc); + offsetGraph(cc.graph_0, offset.x_0, offset.y_0); + for (n$iterator = new ArrayList$1(cc.graph_0.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + newPos = $getExternalPortPosition(this$static, n.pos, castTo($getProperty(n, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); + $add_19($reset_5(n.pos), newPos); + } + } + } + for (cc$iterator = new ArrayList$1(ccs.components); cc$iterator.i < cc$iterator.this$01.array.length;) { + cc = castTo($next_7(cc$iterator), 841); + for (e$iterator = new ArrayList$1($getExternalEdges(cc)); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + vc = new KVectorChain_0(e.bendPoints); + $add_0(vc, 0, $getAbsoluteAnchor(e.source)); + $add_7(vc, $getAbsoluteAnchor(e.target)); + last = null; + for (v$iterator = $listIterator_2(vc, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(v$iterator), 8); + if (!last) { + last = v; + continue; + } + if (fuzzyEquals(last.x_0, v.x_0)) { + this$static.yetAnotherOffset.x_0 = $wnd.Math.min(this$static.yetAnotherOffset.x_0, last.x_0); + this$static.compactedGraphSize.x_0 = $wnd.Math.max(this$static.compactedGraphSize.x_0, last.x_0); + } + else if (fuzzyEquals(last.y_0, v.y_0)) { + this$static.yetAnotherOffset.y_0 = $wnd.Math.min(this$static.yetAnotherOffset.y_0, last.y_0); + this$static.compactedGraphSize.y_0 = $wnd.Math.max(this$static.compactedGraphSize.y_0, last.y_0); + } + last = v; + } + } + } + $negate(this$static.yetAnotherOffset); + $add_19(this$static.compactedGraphSize, this$static.yetAnotherOffset); +} + +function $componentHullPoints(graph){ + var absolute, bp, bp$iterator, edge, edge$iterator, n, n$iterator, pts; + pts = new ComponentsCompactor$Hullpoints; + for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + $addLGraphElementBounds(pts, n, new KVector); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.source.owner.type_0 == EXTERNAL_PORT || edge.target.owner.type_0 == EXTERNAL_PORT) { + continue; + } + for (bp$iterator = $listIterator_2(edge.bendPoints, 0); bp$iterator.currentNode != bp$iterator.this$01.tail;) { + bp = castTo($next_10(bp$iterator), 8); + absolute = bp; + $add_12(pts, new Point(absolute.x_0, absolute.y_0)); + } + } + } + return pts; +} + +function $createDummyNode(graph){ + var dummy, dummyEdge, dummyPort, extPortDummy, extPortDummyPort; + extPortDummy = castTo($get_11(graph.layerlessNodes, 0), 10); + dummy = new LNode(graph); + $add_3(graph.layerlessNodes, dummy); + dummy.size_0.x_0 = $wnd.Math.max(1, extPortDummy.size_0.x_0); + dummy.size_0.y_0 = $wnd.Math.max(1, extPortDummy.size_0.y_0); + dummy.pos.x_0 = extPortDummy.pos.x_0; + dummy.pos.y_0 = extPortDummy.pos.y_0; + switch (castTo($getProperty(extPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 4: + dummy.pos.x_0 += 2; + break; + case 1: + dummy.pos.y_0 += 2; + break; + case 2: + dummy.pos.x_0 -= 2; + break; + case 3: + dummy.pos.y_0 -= 2; + } + dummyPort = new LPort; + $setNode(dummyPort, dummy); + dummyEdge = new LEdge; + extPortDummyPort = castTo($get_11(extPortDummy.ports, 0), 11); + $setSource_0(dummyEdge, extPortDummyPort); + $setTarget_0(dummyEdge, dummyPort); + $add_19($reset_5(dummyPort.pos), extPortDummyPort.pos); + $add_19($reset_5(dummyPort.anchor), extPortDummyPort.anchor); + return dummy; +} + +function $edgeToSegments(this$static, edge, externalExtension){ + var externalPort, externalPortSide, i, outerSegmentIsFirst, p1, p2, points, segment, segments; + externalPort = externalExtension.externalPort; + externalPortSide = externalExtension.externalPortSide; + p1 = $getAbsoluteAnchor(edge.source); + p2 = $getAbsoluteAnchor(edge.target); + if (externalPort == edge.source) { + p1 = $getExternalPortPosition(this$static, p1, externalPortSide); + p2 = $getPortPositionOnMargin(edge.target); + } + else { + p1 = $getPortPositionOnMargin(edge.source); + p2 = $getExternalPortPosition(this$static, p2, externalPortSide); + } + points = new KVectorChain_0(edge.bendPoints); + $addNode_0(points, p1, points.header, points.header.next_0); + $addNode_0(points, p2, points.tail.prev, points.tail); + outerSegmentIsFirst = edge.source == externalPort; + segments = new ComponentsCompactor$Segments; + for (i = 0; i < points.size_0 - 1; ++i) { + segment = new Pair(castTo($get_7(points, i), 8), castTo($get_7(points, i + 1), 8)); + outerSegmentIsFirst && i == 0 || !outerSegmentIsFirst && i == points.size_0 - 2?(segments.outerSegment = segment):$add_3(segments.innerSegments, segment); + } + return segments; +} + +function $getExternalPortPosition(this$static, pos, ps){ + switch (ps.ordinal) { + case 1: + return new KVector_1(pos.x_0, $wnd.Math.min(this$static.graphTopLeft.y_0, pos.y_0)); + case 2: + return new KVector_1($wnd.Math.max(this$static.graphBottomRight.x_0, pos.x_0), pos.y_0); + case 3: + return new KVector_1(pos.x_0, $wnd.Math.max(this$static.graphBottomRight.y_0, pos.y_0)); + case 4: + return new KVector_1($wnd.Math.min(pos.x_0, this$static.graphTopLeft.x_0), pos.y_0); + } + return new KVector_1(pos.x_0, pos.y_0); +} + +function $getPortPositionOnMargin(port){ + var margins, pos; + pos = $clone_0(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor]))); + margins = port.owner.margin; + switch (port.side.ordinal) { + case 1: + pos.y_0 -= margins.top_0; + break; + case 2: + pos.x_0 += margins.right; + break; + case 3: + pos.y_0 += margins.bottom; + break; + case 4: + pos.x_0 -= margins.left; + } + return pos; +} + +function $portSideToDirection(side){ + switch (side.ordinal) { + case 1: + return $clinit_Direction_0() , UP_1; + case 4: + return $clinit_Direction_0() , LEFT_6; + case 2: + return $clinit_Direction_0() , RIGHT_6; + case 3: + return $clinit_Direction_0() , DOWN_1; + } + return $clinit_Direction_0() , UNDEFINED_2; +} + +function $segmentToRectangle(p1, p2, extent){ + return new ElkRectangle_0($wnd.Math.min(p1.x_0, p2.x_0) - extent / 2, $wnd.Math.min(p1.y_0, p2.y_0) - extent / 2, $wnd.Math.abs(p1.x_0 - p2.x_0) + extent, $wnd.Math.abs(p1.y_0 - p2.y_0) + extent); +} + +function $transformLEdge(this$static, externalEdge, hullPoints, outerSegments){ + var extent, externalExtension, margins, outerSegmentRect, rect, segment, segment$iterator, segments, side, thickness; + externalExtension = new ComponentsCompactor$InternalExternalExtension(externalEdge); + segments = $edgeToSegments(this$static, externalEdge, externalExtension); + thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))), 1); + for (segment$iterator = new ArrayList$1(segments.innerSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 46); + rect = $segmentToRectangle(castTo(segment.first, 8), castTo(segment.second, 8), thickness); + returnVal = true; + returnVal = returnVal & $add_13(hullPoints, new KVector_1(rect.x_0, rect.y_0)); + returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, 0)); + returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), 0, rect.height)); + returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, rect.height)); + } + side = externalExtension.externalPortSide; + outerSegmentRect = $segmentToRectangle(castTo(segments.outerSegment.first, 8), castTo(segments.outerSegment.second, 8), thickness); + if (side == ($clinit_PortSide() , WEST_2) || side == EAST_2) { + outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.y_0); + outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.y_0 + outerSegmentRect.height); + } + else { + outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.x_0); + outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.x_0 + outerSegmentRect.width_0); + } + extent = $intern_60; + margins = externalExtension.externalPort.owner.margin; + switch (side.ordinal) { + case 4: + extent = margins.right; + break; + case 2: + extent = margins.left; + break; + case 1: + extent = margins.bottom; + break; + case 3: + extent = margins.top_0; + } + outerSegments.extent[side.ordinal] = $wnd.Math.max(outerSegments.extent[side.ordinal], extent); + return externalExtension; +} + +function $transformLGraph(this$static, graph){ + var component, edge, edge$iterator, extension, extensions, extent, externalExtensions, hullPoints, iee, iuee, max_0, min_0, node, node$iterator, outerSegments, placeholder, ps, ps$iterator; + component = new ComponentsCompactor$InternalComponent(graph); + component.containsRegularNodes || $createDummyNode(graph); + hullPoints = $componentHullPoints(graph); + externalExtensions = new HashMultimap; + outerSegments = new ComponentsCompactor$OuterSegments; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || edge.target.owner.type_0 == EXTERNAL_PORT) { + iee = $transformLEdge(this$static, edge, hullPoints, outerSegments); + $put(externalExtensions, $portSideToDirection(iee.externalPortSide), iee.edge); + } + } + } + extensions = new ArrayList; + for (ps$iterator = castTo($getProperty(component.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).iterator_0(); ps$iterator.hasNext_0();) { + ps = castTo(ps$iterator.next_1(), 61); + min_0 = outerSegments.min_0[ps.ordinal]; + max_0 = outerSegments.max_0[ps.ordinal]; + extent = outerSegments.extent[ps.ordinal]; + extension = null; + placeholder = null; + switch (ps.ordinal) { + case 4: + extension = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, hullPoints.topLeft.x_0 - this$static.graphTopLeft.x_0, max_0 - min_0); + placeholder = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, extent, max_0 - min_0); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); + break; + case 2: + extension = new ElkRectangle_0(hullPoints.bottomRight.x_0, min_0, this$static.graphBottomRight.x_0 - hullPoints.bottomRight.x_0, max_0 - min_0); + placeholder = new ElkRectangle_0(this$static.graphBottomRight.x_0 - extent, min_0, extent, max_0 - min_0); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); + break; + case 1: + extension = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, hullPoints.topLeft.y_0 - this$static.graphTopLeft.y_0); + placeholder = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, extent); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); + break; + case 3: + extension = new ElkRectangle_0(min_0, hullPoints.bottomRight.y_0, max_0 - min_0, this$static.graphBottomRight.y_0 - hullPoints.bottomRight.y_0); + placeholder = new ElkRectangle_0(min_0, this$static.graphBottomRight.y_0 - extent, max_0 - min_0, extent); + $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); + $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); + } + if (extension) { + iuee = new ComponentsCompactor$InternalUnionExternalExtension; + iuee.side = ps; + iuee.extension = extension; + iuee.placeholder = placeholder; + iuee.edges = newHashSet(castTo($get(externalExtensions, $portSideToDirection(ps)), 21)); + extensions.array[extensions.array.length] = iuee; + } + } + $addAll_2(component.externalExtensions, extensions); + component.rectilinearConvexHull = $splitIntoRectangles(of_5(hullPoints)); + return component; +} + +function ComponentsCompactor(){ +} + +defineClass(650, 1, {}, ComponentsCompactor); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor', 650); +function $add_12(this$static, e){ + this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, e.x_0); + this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, e.y_0); + this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, e.x_0); + this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, e.y_0); + return this$static.array[this$static.array.length] = e , true; +} + +function $add_13(this$static, e){ + return $add_12(this$static, new Point(e.x_0, e.y_0)); +} + +function ComponentsCompactor$Hullpoints(){ + $$init_2(this); + this.topLeft = new KVector_1($intern_59, $intern_59); + this.bottomRight = new KVector_1($intern_60, $intern_60); +} + +defineClass(1468, 12, $intern_71, ComponentsCompactor$Hullpoints); +_.add_2 = function add_44(e){ + return $add_12(this, castTo(e, 140)); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Hullpoints_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Hullpoints', 1468); +function $getExternalEdges(this$static){ + var edges, ee, ee$iterator; + edges = new ArrayList; + for (ee$iterator = new ArrayList$1(this$static.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { + ee = castTo($next_7(ee$iterator), 594); + $addAll_2(edges, castTo(ee.getRepresentative(), 14)); + } + return edges; +} + +function ComponentsCompactor$InternalComponent(graph){ + var n, n$iterator; + this.externalExtensions = new ArrayList; + this.graph_0 = graph; + this.containsRegularNodes = false; + for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + this.containsRegularNodes = this.containsRegularNodes | n.type_0 == ($clinit_LNode$NodeType() , NORMAL); + } +} + +defineClass(1465, 1, {841:1}, ComponentsCompactor$InternalComponent); +_.containsRegularNodes = false; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalComponent_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalComponent', 1465); +function ComponentsCompactor$InternalConnectedComponents(){ + this.components = new ArrayList; +} + +defineClass(1464, 1, $intern_23, ComponentsCompactor$InternalConnectedComponents); +_.forEach_0 = function forEach_25(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_67(){ + return new ArrayList$1(this.components); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalConnectedComponents_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalConnectedComponents', 1464); +function ComponentsCompactor$InternalExternalExtension(edge){ + this.edge = edge; + if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + this.externalPort = edge.source; + this.externalPortSide = castTo($getProperty(edge.source.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + } + else if (edge.target.owner.type_0 == EXTERNAL_PORT) { + this.externalPort = edge.target; + this.externalPortSide = castTo($getProperty(edge.target.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + } + else { + throw toJs(new IllegalArgumentException_0('Edge ' + edge + ' is not an external edge.')); + } +} + +defineClass(1467, 1, {594:1}, ComponentsCompactor$InternalExternalExtension); +_.getPlaceholder = function getPlaceholder(){ + return null; +} +; +_.getRepresentative = function getRepresentative(){ + return this.edge; +} +; +_.getDirection = function getDirection(){ + return $portSideToDirection(this.externalPortSide); +} +; +_.getRepresentor = function getRepresentor(){ + return this.externalExtension; +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalExternalExtension', 1467); +function ComponentsCompactor$InternalUnionExternalExtension(){ + this.edges = new HashSet; +} + +defineClass(1466, 1, {594:1}, ComponentsCompactor$InternalUnionExternalExtension); +_.getRepresentative = function getRepresentative_0(){ + return this.edges; +} +; +_.getDirection = function getDirection_0(){ + return $portSideToDirection(this.side); +} +; +_.getPlaceholder = function getPlaceholder_0(){ + return this.placeholder; +} +; +_.getRepresentor = function getRepresentor_0(){ + return this.extension; +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalUnionExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalUnionExternalExtension', 1466); +function ComponentsCompactor$OuterSegments(){ + this.min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + this.extent = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + fill_1(this.min_0, $intern_59); + fill_1(this.max_0, $intern_60); + fill_1(this.extent, $intern_60); +} + +defineClass(1470, 1, {}, ComponentsCompactor$OuterSegments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$OuterSegments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/OuterSegments', 1470); +function ComponentsCompactor$Segments(){ + this.innerSegments = new ArrayList; +} + +defineClass(1469, 1, {}, ComponentsCompactor$Segments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Segments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Segments', 1469); +function $combine(this$static, components, target){ + this$static.graphPlacer.combine(components, target); +} + +function $dfs_1(this$static, node, data_0){ + var all, component, extPortSides, mutableData, port1, port1$iterator, port2, port2$iterator; + if (node.id_0 == 0) { + node.id_0 = 1; + mutableData = data_0; + if (!mutableData) { + component = new ArrayList; + extPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + mutableData = new Pair(component, extPortSides); + } + castTo(mutableData.first, 15).add_2(node); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && castTo(mutableData.second, 21).add_2(castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); + for (port1$iterator = new ArrayList$1(node.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_7(port1$iterator), 11); + for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { + port2 = castTo($next_0(port2$iterator), 11); + $dfs_1(this$static, port2.owner, mutableData); + } + } + return mutableData; + } + return null; +} + +function $split_2(this$static, graph){ + var compatiblePortConstraints, componentData, extPortConstraints, extPorts, n, n$iterator, newGraph, node, node$iterator, node$iterator0, result, separate, separateProperty; + this$static.graphPlacer = this$static.simpleRowGraphPlacer; + separateProperty = castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , SEPARATE_CONNECTED_COMPONENTS_0))); + separate = separateProperty == null || (checkCriticalNotNull(separateProperty) , separateProperty); + extPorts = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + extPortConstraints = castTo($getProperty(graph, PORT_CONSTRAINTS_0), 98); + compatiblePortConstraints = !(extPortConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || extPortConstraints == FIXED_RATIO || extPortConstraints == FIXED_POS); + if (separate && (compatiblePortConstraints || !extPorts)) { + for (node$iterator0 = new ArrayList$1(graph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = 0; + } + result = new ArrayList; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + componentData = $dfs_1(this$static, node, null); + if (componentData) { + newGraph = new LGraph; + $copyProperties(newGraph, graph); + $setProperty_0(newGraph, EXT_PORT_CONNECTIONS, castTo(componentData.second, 21)); + $copy(newGraph.padding, graph.padding); + $setProperty_0(newGraph, NODE_SIZE_MINIMUM_0, null); + for (n$iterator = castTo(componentData.first, 15).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 10); + $add_3(newGraph.layerlessNodes, n); + n.graph_0 = newGraph; + } + result.add_2(newGraph); + } + } + extPorts && (maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) === maskUndefined(($clinit_ComponentOrderingStrategy() , FORCE_MODEL_ORDER))?(this$static.graphPlacer = this$static.componentGroupModelOrderGraphPlacer):(this$static.graphPlacer = this$static.componentGroupGraphPlacer)); + } + else { + result = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [graph])); + } + maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) && ($clinit_Collections() , result.sort_0(new ComponentsProcessor$lambda$0$Type)); + return result; +} + +function ComponentsProcessor_0(){ + this.componentGroupGraphPlacer = new ComponentGroupGraphPlacer; + this.componentGroupModelOrderGraphPlacer = new ComponentGroupModelOrderGraphPlacer; + this.simpleRowGraphPlacer = new SimpleRowGraphPlacer; +} + +function lambda$0_22(g1_0, g2_1){ + var g1Order, g2Order; + g1Order = getMinimalModelOrder(g1_0); + g2Order = getMinimalModelOrder(g2_1); + return g1Order < g2Order?-1:g1Order > g2Order?1:0; +} + +defineClass(1264, 1, {}, ComponentsProcessor_0); +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor', 1264); +function ComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1265, 1, $intern_88, ComponentsProcessor$lambda$0$Type); +_.compare_1 = function compare_38(arg0, arg1){ + return lambda$0_22(castTo(arg0, 37), castTo(arg1, 37)); +} +; +_.equals_0 = function equals_94(other){ + return this === other; +} +; +_.reversed = function reversed_30(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor/lambda$0$Type', 1265); +function $clinit_ModelOrderComponentGroup(){ + $clinit_ModelOrderComponentGroup = emptyMethod; + $clinit_ComponentGroup(); + MODEL_ORDER_CONSTRAINTS = new HashMultimap; + $put(MODEL_ORDER_CONSTRAINTS, ($clinit_PortSide() , SIDES_NORTH), SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_WEST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NONE); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH); + $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); +} + +function $add_14(this$static, component){ + if ($canAdd(this$static, component)) { + $put(this$static.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); + $add_7(this$static.componentOrder, component); + return true; + } + else { + return false; + } +} + +function $canAdd(this$static, component){ + var candidateSides, constraint, constraint$iterator, constraint$iterator0, constraints, modelOrderConstraints; + candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); + constraints = castTo($get(($clinit_ComponentGroup() , CONSTRAINTS), candidateSides), 21); + modelOrderConstraints = castTo($get(MODEL_ORDER_CONSTRAINTS, candidateSides), 21); + for (constraint$iterator0 = constraints.iterator_0(); constraint$iterator0.hasNext_0();) { + constraint = castTo(constraint$iterator0.next_1(), 21); + if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { + return false; + } + } + for (constraint$iterator = modelOrderConstraints.iterator_0(); constraint$iterator.hasNext_0();) { + constraint = castTo(constraint$iterator.next_1(), 21); + if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { + return false; + } + } + return true; +} + +function ModelOrderComponentGroup(component){ + $clinit_ModelOrderComponentGroup(); + $$init_6(this); + this.componentOrder = new LinkedList; + $add_14(this, component); + $add_7(this.componentOrder, component); +} + +defineClass(570, 325, {325:1, 570:1}, ModelOrderComponentGroup); +_.add_4 = function add_45(component){ + return $add_14(this, component); +} +; +_.canAdd = function canAdd_0(component){ + return $canAdd(this, component); +} +; +var MODEL_ORDER_CONSTRAINTS; +var Lorg_eclipse_elk_alg_layered_components_ModelOrderComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ModelOrderComponentGroup', 570); +function SimpleRowGraphPlacer(){ +} + +defineClass(1291, 2005, {}, SimpleRowGraphPlacer); +_.combine = function combine_1(components, target){ + var broadestRow, compactor, componentSpacing, firstComponent, graph, graph$iterator, graph$iterator0, graph$iterator1, h, h$iterator, highestBox, maxRowWidth, node, node$iterator, offset, priority, size_0, source, totalArea, xpos, ypos; + if (components.size_1() == 1) { + source = castTo(components.get_0(0), 37); + if (source != target) { + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $moveGraph_0(target, source, 0, 0); + $copyProperties(target, source); + $copy(target.padding, source.padding); + target.size_0.x_0 = source.size_0.x_0; + target.size_0.y_0 = source.size_0.y_0; + } + return; + } + else if (components.isEmpty()) { + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + if (maskUndefined($getProperty(target, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_COMPONENTS_0))) === maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { + for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 37); + priority = 0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + priority += castTo($getProperty(node, PRIORITY_0), 19).value_0; + } + graph.id_0 = priority; + } + $clinit_Collections(); + components.sort_0(new SimpleRowGraphPlacer$1); + } + firstComponent = castTo(components.get_0(0), 37); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $copyProperties(target, firstComponent); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 37); + size_0 = graph.size_0; + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(target, ASPECT_RATIO_1)))); + componentSpacing = $doubleValue(castToDouble($getProperty(target, SPACING_COMPONENT_COMPONENT_0))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = componentSpacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + size_0 = graph.size_0; + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + componentSpacing; + highestBox = 0; + } + offset = graph.offset; + $offsetGraph(graph, xpos + offset.x_0, ypos + offset.y_0); + $reset_5(offset); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + componentSpacing; + } + target.size_0.x_0 = broadestRow; + target.size_0.y_0 = ypos + highestBox; + if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0)))) { + compactor = new ComponentsCompactor; + $compact_5(compactor, components, componentSpacing); + for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { + h = castTo(h$iterator.next_1(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + $moveGraphs(target, components); +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer', 1291); +function $compare_8(graph1, graph2){ + var prio, size1, size2; + prio = graph2.id_0 - graph1.id_0; + if (prio == 0) { + size1 = graph1.size_0.x_0 * graph1.size_0.y_0; + size2 = graph2.size_0.x_0 * graph2.size_0.y_0; + return compare_4(size1, size2); + } + return prio; +} + +function SimpleRowGraphPlacer$1(){ +} + +defineClass(1292, 1, $intern_88, SimpleRowGraphPlacer$1); +_.compare_1 = function compare_39(graph1, graph2){ + return $compare_8(castTo(graph1, 37), castTo(graph2, 37)); +} +; +_.equals_0 = function equals_95(other){ + return this === other; +} +; +_.reversed = function reversed_31(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer/1', 1292); +function $clinit_CompoundGraphPostprocessor(){ + $clinit_CompoundGraphPostprocessor = emptyMethod; + HAS_JUNCTION_POINTS_PREDICATE = new CompoundGraphPostprocessor$1; +} + +function $process_0(graph, monitor){ + var addUnnecessaryBendpoints, bendPoints, chEdge, chEdge$iterator, crossHierarchyEdges, crossHierarchyMap, dummyEdge, dummyEdge$iterator, dummyEdges, junctionPoints, lastPoint, ledge, nextPoint, offset, origEdge, origEdge$iterator, referenceGraph, referenceNode, sourcePoint, sourcePort, targetPoint, targetPort, xDiffEnough, yDiffEnough; + $begin(monitor, 'Compound graph postprocessor', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + crossHierarchyMap = castTo($getProperty(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP)), 224); + dummyEdges = new HashSet; + for (origEdge$iterator = crossHierarchyMap.keySet_0().iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 17); + crossHierarchyEdges = new ArrayList_1(crossHierarchyMap.get_1(origEdge)); + $clinit_Collections(); + $sort(crossHierarchyEdges, new CrossHierarchyEdgeComparator(graph)); + sourcePort = $getActualSource((checkCriticalElementIndex(0, crossHierarchyEdges.array.length) , castTo(crossHierarchyEdges.array[0], 243))); + targetPort = $getActualTarget(castTo($get_11(crossHierarchyEdges, crossHierarchyEdges.array.length - 1), 243)); + referenceNode = sourcePort.owner; + isDescendant(targetPort.owner, referenceNode)?(referenceGraph = referenceNode.nestedGraph):(referenceGraph = $getGraph(referenceNode)); + junctionPoints = clearJunctionPoints(origEdge, crossHierarchyEdges); + $reset_0(origEdge.bendPoints); + lastPoint = null; + for (chEdge$iterator = new ArrayList$1(crossHierarchyEdges); chEdge$iterator.i < chEdge$iterator.this$01.array.length;) { + chEdge = castTo($next_7(chEdge$iterator), 243); + offset = new KVector; + changeCoordSystem(offset, chEdge.graph_0, referenceGraph); + ledge = chEdge.newEdge; + bendPoints = new KVectorChain; + $addAllAsCopies(bendPoints, 0, ledge.bendPoints); + $offset_2(bendPoints, offset); + sourcePoint = new KVector_2($getAbsoluteAnchor(ledge.source)); + targetPoint = new KVector_2($getAbsoluteAnchor(ledge.target)); + $add_19(sourcePoint, offset); + $add_19(targetPoint, offset); + if (lastPoint) { + bendPoints.size_0 == 0?(nextPoint = targetPoint):(nextPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8))); + xDiffEnough = $wnd.Math.abs(lastPoint.x_0 - nextPoint.x_0) > $intern_101; + yDiffEnough = $wnd.Math.abs(lastPoint.y_0 - nextPoint.y_0) > $intern_101; + (!addUnnecessaryBendpoints && xDiffEnough && yDiffEnough || addUnnecessaryBendpoints && (xDiffEnough || yDiffEnough)) && $add_7(origEdge.bendPoints, sourcePoint); + } + $addAll(origEdge.bendPoints, bendPoints); + bendPoints.size_0 == 0?(lastPoint = sourcePoint):(lastPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8))); + copyJunctionPoints(ledge, junctionPoints, offset); + if ($getActualTarget(chEdge) == targetPort) { + if ($getGraph(targetPort.owner) != chEdge.graph_0) { + offset = new KVector; + changeCoordSystem(offset, $getGraph(targetPort.owner), referenceGraph); + } + $setProperty_0(origEdge, TARGET_OFFSET, offset); + } + copyLabelsBack(ledge, origEdge, referenceGraph); + dummyEdges.map_0.put(ledge, dummyEdges); + } + $setSource_0(origEdge, sourcePort); + $setTarget_0(origEdge, targetPort); + } + for (dummyEdge$iterator = dummyEdges.map_0.keySet_0().iterator_0(); dummyEdge$iterator.hasNext_0();) { + dummyEdge = castTo(dummyEdge$iterator.next_1(), 17); + $setSource_0(dummyEdge, null); + $setTarget_0(dummyEdge, null); + } + $done_0(monitor); +} + +function clearJunctionPoints(origEdge, crossHierarchyEdges){ + var junctionPoints; + junctionPoints = castTo($getProperty(origEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (any_0(crossHierarchyEdges, HAS_JUNCTION_POINTS_PREDICATE)) { + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(origEdge, JUNCTION_POINTS, junctionPoints); + } + else { + $reset_0(junctionPoints); + } + } + else + !!junctionPoints && $setProperty_0(origEdge, JUNCTION_POINTS, null); + return junctionPoints; +} + +function copyJunctionPoints(source, target, offset){ + var jpCopies, ledgeJPs; + ledgeJPs = castTo($getProperty(source, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (ledgeJPs) { + jpCopies = new KVectorChain; + $addAllAsCopies(jpCopies, 0, ledgeJPs); + $offset_2(jpCopies, offset); + $addAll(target, jpCopies); + } +} + +function copyLabelsBack(hierarchySegment, origEdge, referenceGraph){ + var currLabel, labelIterator; + labelIterator = new AbstractList$ListIteratorImpl(hierarchySegment.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + if (maskUndefined($getProperty(currLabel, ($clinit_InternalProperties_1() , ORIGINAL_LABEL_EDGE))) !== maskUndefined(origEdge)) { + continue; + } + changeCoordSystem(currLabel.pos, $getGraph(hierarchySegment.source.owner), referenceGraph); + $remove_8(labelIterator); + $add_3(origEdge.labels, currLabel); + } +} + +var HAS_JUNCTION_POINTS_PREDICATE; +function CompoundGraphPostprocessor$1(){ +} + +defineClass(1262, 1, $intern_89, CompoundGraphPostprocessor$1); +_.apply_1 = function apply_63(chEdge){ + var jps; + return jps = castTo($getProperty(castTo(chEdge, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; +} +; +_.equals_0 = function equals_96(other){ + return this === other; +} +; +_.test_0 = function test_16(input_0){ + var jps; + return jps = castTo($getProperty(castTo(input_0, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPostprocessor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPostprocessor/1', 1262); +function $calculateNetFlow(port){ + var incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, node, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; + node = port.owner; + insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + outputPortVote = 0; + inputPortVote = 0; + for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { + outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); + isSelfLoop = $isSelfLoop(outgoingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(outgoingEdge, INSIDE_SELF_LOOPS_YO))); + targetNode = outgoingEdge.target.owner; + isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getGraph(targetNode).parentNode == node?++inputPortVote:++outputPortVote; + } + for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { + incomingEdge = castTo($next_7(incomingEdge$iterator), 17); + isSelfLoop = $isSelfLoop(incomingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(incomingEdge, INSIDE_SELF_LOOPS_YO))); + sourceNode = incomingEdge.source.owner; + isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getGraph(sourceNode).parentNode == node?++outputPortVote:++inputPortVote; + } + return outputPortVote - inputPortVote; +} + +function $connectChild(this$static, graph, externalPort, origEdge, sourcePort, targetPort){ + var dummyEdge; + dummyEdge = $createDummyEdge(origEdge); + $setSource_0(dummyEdge, sourcePort); + $setTarget_0(dummyEdge, targetPort); + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalPort.type_0)); +} + +function $connectSiblings(this$static, graph, externalOutputPort, containedExternalPorts, origEdge){ + var dummyEdge, externalPort2, externalPort2$iterator, targetExternalPort; + targetExternalPort = null; + for (externalPort2$iterator = new ArrayList$1(containedExternalPorts); externalPort2$iterator.i < externalPort2$iterator.this$01.array.length;) { + externalPort2 = castTo($next_7(externalPort2$iterator), 441); + if (externalPort2 != externalOutputPort && $indexOf_3(externalPort2.origEdges, origEdge, 0) != -1) { + targetExternalPort = externalPort2; + break; + } + } + dummyEdge = $createDummyEdge(origEdge); + $setSource_0(dummyEdge, externalOutputPort.dummyPort); + $setTarget_0(dummyEdge, targetExternalPort.dummyPort); + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalOutputPort.type_0)); +} + +function $createDummyEdge(origEdge){ + var dummyEdge; + dummyEdge = new LEdge; + $copyProperties(dummyEdge, origEdge); + $setProperty_0(dummyEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); + return dummyEdge; +} + +function $createExternalPortDummy(this$static, graph, parentNode, portType, portSide, edge){ + var dummyNode, dummyPort, layoutDirection, outsidePort, propertyHolder, offset; + dummyNode = null; + outsidePort = portType == ($clinit_PortType() , INPUT)?edge.source:edge.target; + layoutDirection = getDirection_1(graph); + if (outsidePort.owner == parentNode) { + dummyNode = castTo($get_10(this$static.dummyNodeMap, outsidePort), 10); + if (!dummyNode) { + dummyNode = createExternalPortDummy(outsidePort, castTo($getProperty(parentNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98), portSide, $calculateNetFlow(outsidePort), null, outsidePort.pos, outsidePort.size_0, layoutDirection, graph); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), outsidePort); + $put_6(this$static.dummyNodeMap, outsidePort, dummyNode); + } + } + else { + dummyNode = createExternalPortDummy((propertyHolder = new MapPropertyHolder , offset = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))) / 2 , $setProperty(propertyHolder, PORT_BORDER_OFFSET, offset) , propertyHolder), castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98), portSide, portType == INPUT?-1:1, null, new KVector, new KVector_1(0, 0), layoutDirection, graph); + dummyPort = $createPortForDummy(dummyNode, parentNode, portType); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), dummyPort); + $put_6(this$static.dummyNodeMap, dummyPort, dummyNode); + } + castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + $isSideFixed(castTo($getProperty(graph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))?$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)):$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FREE)); + return dummyNode; +} + +function $createPortForDummy(dummyNode, parentNode, type_0){ + var graph, layoutDirection, port; + graph = $getGraph(parentNode); + layoutDirection = getDirection_1(graph); + port = new LPort; + $setNode(port, parentNode); + switch (type_0.ordinal) { + case 1: + $setSide(port, $opposed(fromDirection(layoutDirection))); + break; + case 2: + $setSide(port, fromDirection(layoutDirection)); + } + $setProperty_0(port, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET), castToDouble($getProperty(dummyNode, PORT_BORDER_OFFSET))); + return port; +} + +function $getShallowestEdgeSegment(edgeSegments){ + var crossHierarchyEdge, crossHierarchyEdge$iterator, index_0, result; + result = -1; + index_0 = 0; + for (crossHierarchyEdge$iterator = new ArrayList$1(edgeSegments); crossHierarchyEdge$iterator.i < crossHierarchyEdge$iterator.this$01.array.length;) { + crossHierarchyEdge = castTo($next_7(crossHierarchyEdge$iterator), 243); + if (crossHierarchyEdge.type_0 == ($clinit_PortType() , INPUT)) { + result = index_0 == 0?0:index_0 - 1; + break; + } + else + index_0 == edgeSegments.array.length - 1 && (result = index_0); + index_0 += 1; + } + return result; +} + +function $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, origEdge, oppositePort, portType, defaultExternalPort){ + var dummyEdge, dummyNode, externalPort, externalPortSide, mergeExternalPorts, parentEndPort, thickness; + mergeExternalPorts = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , MERGE_HIERARCHY_EDGES_0)))); + parentEndPort = null; + portType == ($clinit_PortType() , INPUT) && origEdge.source.owner == parentNode?(parentEndPort = origEdge.source):portType == OUTPUT && origEdge.target.owner == parentNode && (parentEndPort = origEdge.target); + externalPort = defaultExternalPort; + if (!externalPort || !mergeExternalPorts || !!parentEndPort) { + externalPortSide = ($clinit_PortSide() , UNDEFINED_5); + parentEndPort?(externalPortSide = parentEndPort.side):$isSideFixed(castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98)) && (externalPortSide = portType == INPUT?WEST_2:EAST_2); + dummyNode = $createExternalPortDummy(this$static, graph, parentNode, portType, externalPortSide, origEdge); + dummyEdge = $createDummyEdge(($getGraph(parentNode) , origEdge)); + if (portType == INPUT) { + $setSource_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); + $setTarget_0(dummyEdge, oppositePort); + } + else { + $setSource_0(dummyEdge, oppositePort); + $setTarget_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); + } + externalPort = new CompoundGraphPreprocessor$ExternalPort(origEdge, dummyEdge, dummyNode, castTo($getProperty(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11), portType, !parentEndPort); + } + else { + $add_3(externalPort.origEdges, origEdge); + thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalPort.newEdge, EDGE_THICKNESS_0))), $doubleValue(castToDouble($getProperty(origEdge, EDGE_THICKNESS_0)))); + $setProperty_0(externalPort.newEdge, EDGE_THICKNESS_0, thickness); + } + $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(externalPort.newEdge, graph, portType)); + return externalPort; +} + +function $moveLabelsAndRemoveOriginalEdges(this$static, graph){ + var currLabel, edgeSegments, labelIterator, origEdge, origEdge$iterator, targetDummyEdgeIndex, targetSegment; + for (origEdge$iterator = $keySet(this$static.crossHierarchyMap).iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 17); + if (origEdge.labels.array.length > 0) { + edgeSegments = new ArrayList_1(castTo($get(this$static.crossHierarchyMap, origEdge), 21)); + $clinit_Collections(); + $sort(edgeSegments, new CrossHierarchyEdgeComparator(graph)); + labelIterator = new AbstractList$ListIteratorImpl(origEdge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + targetDummyEdgeIndex = -1; + switch (castTo($getProperty(currLabel, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272).ordinal) { + case 1: + targetDummyEdgeIndex = edgeSegments.array.length - 1; + break; + case 0: + targetDummyEdgeIndex = $getShallowestEdgeSegment(edgeSegments); + break; + case 2: + targetDummyEdgeIndex = 0; + } + if (targetDummyEdgeIndex != -1) { + targetSegment = (checkCriticalElementIndex(targetDummyEdgeIndex, edgeSegments.array.length) , castTo(edgeSegments.array[targetDummyEdgeIndex], 243)); + $add_3(targetSegment.newEdge.labels, currLabel); + castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , END_LABELS)); + castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), GRAPH_PROPERTIES), 21).add_2(CENTER_LABELS); + $remove_8(labelIterator); + $setProperty_0(currLabel, ORIGINAL_LABEL_EDGE, origEdge); + } + } + } + $setSource_0(origEdge, null); + $setTarget_0(origEdge, null); + } +} + +function $process_1(this$static, graph, monitor){ + $begin(monitor, 'Compound graph preprocessor', 1); + this$static.crossHierarchyMap = new HashMultimap; + $transformHierarchyEdges(this$static, graph, null); + $moveLabelsAndRemoveOriginalEdges(this$static, graph); + $setSidesOfPortsToSidesOfDummyNodes(this$static); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP), this$static.crossHierarchyMap); + this$static.crossHierarchyMap = null; + $reset(this$static.dummyNodeMap); + $done_0(monitor); +} + +function $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts){ + var createdExternalPorts, currentExternalPort, externalPort, externalPort$iterator, externalPort$iterator0, inEdge, inEdge$iterator, newExternalPort, outEdge, outEdge$iterator, sourceNode, targetNode; + createdExternalPorts = new ArrayList; + for (externalPort$iterator0 = new ArrayList$1(containedExternalPorts); externalPort$iterator0.i < externalPort$iterator0.this$01.array.length;) { + externalPort = castTo($next_7(externalPort$iterator0), 441); + currentExternalPort = null; + if (externalPort.type_0 == ($clinit_PortType() , OUTPUT)) { + for (outEdge$iterator = new ArrayList$1(externalPort.origEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { + outEdge = castTo($next_7(outEdge$iterator), 17); + targetNode = outEdge.target.owner; + if ($getGraph(targetNode) == graph) { + $connectChild(this$static, graph, externalPort, outEdge, externalPort.dummyPort, outEdge.target); + } + else if (!parentNode || isDescendant(targetNode, parentNode)) { + $connectSiblings(this$static, graph, externalPort, containedExternalPorts, outEdge); + } + else { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, externalPort.dummyPort, OUTPUT, currentExternalPort); + newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalPort = newExternalPort); + } + } + } + else { + for (inEdge$iterator = new ArrayList$1(externalPort.origEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { + inEdge = castTo($next_7(inEdge$iterator), 17); + sourceNode = inEdge.source.owner; + if ($getGraph(sourceNode) == graph) { + $connectChild(this$static, graph, externalPort, inEdge, inEdge.source, externalPort.dummyPort); + } + else if (!parentNode || isDescendant(sourceNode, parentNode)) { + continue; + } + else { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, externalPort.dummyPort, INPUT, currentExternalPort); + newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalPort = newExternalPort); + } + } + } + } + for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { + externalPort = castTo($next_7(externalPort$iterator), 441); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); + } +} + +function $processInsideSelfLoops(this$static, nestedGraph, node){ + var dummyEdge, isInsideSelfLoop, isSelfLoop, lport, lport$iterator, outEdge, outEdge$array, outEdge$index, outEdge$max, outEdges, sourceExtPortDummy, sourcePort, targetExtPortDummy, targetPort; + if (!$booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { + return; + } + for (lport$iterator = new ArrayList$1(node.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { + lport = castTo($next_7(lport$iterator), 11); + outEdges = toEdgeArray(lport.outgoingEdges); + for (outEdge$array = outEdges , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + isSelfLoop = outEdge.target.owner == node; + isInsideSelfLoop = isSelfLoop && $booleanValue(castToBoolean($getProperty(outEdge, INSIDE_SELF_LOOPS_YO))); + if (isInsideSelfLoop) { + sourcePort = outEdge.source; + sourceExtPortDummy = castTo($get_10(this$static.dummyNodeMap, sourcePort), 10); + if (!sourceExtPortDummy) { + sourceExtPortDummy = createExternalPortDummy(sourcePort, ($clinit_PortConstraints() , FREE), sourcePort.side, -1, null, null, sourcePort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); + $setProperty_0(sourceExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), sourcePort); + $put_6(this$static.dummyNodeMap, sourcePort, sourceExtPortDummy); + $add_3(nestedGraph.layerlessNodes, sourceExtPortDummy); + } + targetPort = outEdge.target; + targetExtPortDummy = castTo($get_10(this$static.dummyNodeMap, targetPort), 10); + if (!targetExtPortDummy) { + targetExtPortDummy = createExternalPortDummy(targetPort, ($clinit_PortConstraints() , FREE), targetPort.side, 1, null, null, targetPort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); + $setProperty_0(targetExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), targetPort); + $put_6(this$static.dummyNodeMap, targetPort, targetExtPortDummy); + $add_3(nestedGraph.layerlessNodes, targetExtPortDummy); + } + dummyEdge = $createDummyEdge(outEdge); + $setSource_0(dummyEdge, castTo($get_11(sourceExtPortDummy.ports, 0), 11)); + $setTarget_0(dummyEdge, castTo($get_11(targetExtPortDummy.ports, 0), 11)); + $put(this$static.crossHierarchyMap, outEdge, new CrossHierarchyEdge(dummyEdge, nestedGraph, ($clinit_PortType() , OUTPUT))); + castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + } + } + } +} + +function $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts){ + var childNode, childNode$iterator, childPort, childPort$iterator, createdExternalPorts, currentExternalInputPort, currentExternalOutputPort, externalPort, externalPort$iterator, inEdge, inEdge$array, inEdge$index, inEdge$max, newExternalPort, outEdge, outEdge$array, outEdge$index, outEdge$max; + createdExternalPorts = new ArrayList; + for (childNode$iterator = new ArrayList$1(graph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { + childNode = castTo($next_7(childNode$iterator), 10); + for (childPort$iterator = new ArrayList$1(childNode.ports); childPort$iterator.i < childPort$iterator.this$01.array.length;) { + childPort = castTo($next_7(childPort$iterator), 11); + currentExternalOutputPort = null; + for (outEdge$array = toEdgeArray(childPort.outgoingEdges) , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + if (!isDescendant(outEdge.target.owner, parentNode)) { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, outEdge.source, ($clinit_PortType() , OUTPUT), currentExternalOutputPort); + newExternalPort != currentExternalOutputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalOutputPort = newExternalPort); + } + } + currentExternalInputPort = null; + for (inEdge$array = toEdgeArray(childPort.incomingEdges) , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + if (!isDescendant(inEdge.source.owner, parentNode)) { + newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, inEdge.target, ($clinit_PortType() , INPUT), currentExternalInputPort); + newExternalPort != currentExternalInputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); + newExternalPort.exported && (currentExternalInputPort = newExternalPort); + } + } + } + } + for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { + externalPort = castTo($next_7(externalPort$iterator), 441); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); + } +} + +function $setSidesOfPortsToSidesOfDummyNodes(this$static){ + var dummyNode, e, e$iterator, externalPort; + for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.dummyNodeMap)).this$01); e$iterator.hasNext;) { + e = $next_4(e$iterator); + externalPort = castTo(e.getKey(), 11); + dummyNode = castTo(e.getValue(), 10); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), externalPort); + $setProperty_0(externalPort, PORT_DUMMY, dummyNode); + $setProperty_0(externalPort, INSIDE_CONNECTIONS, ($clinit_Boolean() , true)); + $setSide(externalPort, castTo($getProperty(dummyNode, EXT_PORT_SIDE), 61)); + $getProperty(dummyNode, EXT_PORT_SIDE); + $setProperty_0(externalPort.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); + castTo($getProperty($getGraph(externalPort.owner), GRAPH_PROPERTIES), 21).add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + } +} + +function $transformHierarchyEdges(this$static, graph, parentNode){ + var childPorts, containedExternalPorts, dummyNode, dummyNodePort, dummyPortLabel, exportedExternalPorts, extPortLabel, extPortLabel$iterator, insidePart, insidePortLabels, nestedGraph, node, node$iterator, port, port$iterator, portConstraints, side; + containedExternalPorts = new ArrayList; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nestedGraph = node.nestedGraph; + if (nestedGraph) { + childPorts = $transformHierarchyEdges(this$static, nestedGraph, node); + $addAll_2(containedExternalPorts, childPorts); + $processInsideSelfLoops(this$static, nestedGraph, node); + if (castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + portConstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + insidePortLabels = castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 174).contains(($clinit_PortLabelPlacement() , INSIDE_0)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + dummyNode = castTo($get_10(this$static.dummyNodeMap, port), 10); + if (!dummyNode) { + dummyNode = createExternalPortDummy(port, portConstraints, port.side, -(port.incomingEdges.array.length - port.outgoingEdges.array.length), null, new KVector, port.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); + $setProperty_0(dummyNode, ORIGIN_0, port); + $put_6(this$static.dummyNodeMap, port, dummyNode); + $add_3(nestedGraph.layerlessNodes, dummyNode); + } + dummyNodePort = castTo($get_11(dummyNode.ports, 0), 11); + for (extPortLabel$iterator = new ArrayList$1(port.labels); extPortLabel$iterator.i < extPortLabel$iterator.this$01.array.length;) { + extPortLabel = castTo($next_7(extPortLabel$iterator), 70); + dummyPortLabel = new LLabel; + dummyPortLabel.size_0.x_0 = extPortLabel.size_0.x_0; + dummyPortLabel.size_0.y_0 = extPortLabel.size_0.y_0; + $add_3(dummyNodePort.labels, dummyPortLabel); + if (!insidePortLabels) { + side = port.side; + insidePart = 0; + isFixed(castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(extPortLabel.pos, extPortLabel.size_0, port.size_0, 0, side)); + portConstraints == ($clinit_PortConstraints() , FREE) || ($clinit_PortSide() , SIDES_EAST_WEST).contains(side)?(dummyPortLabel.size_0.x_0 = insidePart):(dummyPortLabel.size_0.y_0 = insidePart); + } + } + } + } + } + } + exportedExternalPorts = new ArrayList; + $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts); + !!parentNode && $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts); + return exportedExternalPorts; +} + +function CompoundGraphPreprocessor(){ + this.dummyNodeMap = new HashMap; +} + +defineClass(1261, 1, $intern_105, CompoundGraphPreprocessor); +_.process = function process_0(graph, monitor){ + $process_1(this, castTo(graph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor', 1261); +function CompoundGraphPreprocessor$ExternalPort(origEdge, newEdge, dummyNode, dummyPort, portType, exported){ + this.origEdges = new ArrayList; + this.type_0 = ($clinit_PortType() , UNDEFINED_0); + $add_3(this.origEdges, origEdge); + this.newEdge = newEdge; + this.dummyNode = dummyNode; + this.dummyPort = dummyPort; + this.type_0 = portType; + this.exported = exported; +} + +defineClass(441, 1, {441:1}, CompoundGraphPreprocessor$ExternalPort); +_.exported = false; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor$ExternalPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor/ExternalPort', 441); +function $getActualSource(this$static){ + if (this$static.newEdge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return castTo($getProperty(this$static.newEdge.source.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + } + return this$static.newEdge.source; +} + +function $getActualTarget(this$static){ + if (this$static.newEdge.target.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return castTo($getProperty(this$static.newEdge.target.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + } + return this$static.newEdge.target; +} + +function CrossHierarchyEdge(newEdge, graph, type_0){ + this.newEdge = newEdge; + this.graph_0 = graph; + this.type_0 = type_0; +} + +defineClass(243, 1, {243:1}, CrossHierarchyEdge); +_.toString_0 = function toString_86(){ + return $toString_3(this.type_0) + ':' + $toString_12(this.newEdge); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdge', 243); +function $compare_9(this$static, edge1, edge2){ + var level1, level2; + if (edge1.type_0 == ($clinit_PortType() , OUTPUT) && edge2.type_0 == INPUT) { + return -1; + } + else if (edge1.type_0 == INPUT && edge2.type_0 == OUTPUT) { + return 1; + } + level1 = hierarchyLevel(edge1.graph_0, this$static.graph_0); + level2 = hierarchyLevel(edge2.graph_0, this$static.graph_0); + return edge1.type_0 == OUTPUT?level2 - level1:level1 - level2; +} + +function CrossHierarchyEdgeComparator(graph){ + this.graph_0 = graph; +} + +function hierarchyLevel(nestedGraph, topLevelGraph){ + var currentGraph, currentNode, level; + currentGraph = nestedGraph; + level = 0; + do { + if (currentGraph == topLevelGraph) { + return level; + } + currentNode = currentGraph.parentNode; + if (!currentNode) { + throw toJs(new IllegalArgumentException); + } + currentGraph = $getGraph(currentNode); + ++level; + } + while (true); +} + +defineClass(763, 1, $intern_88, CrossHierarchyEdgeComparator); +_.compare_1 = function compare_40(edge1, edge2){ + return $compare_9(this, castTo(edge1, 243), castTo(edge2, 243)); +} +; +_.equals_0 = function equals_97(other){ + return this === other; +} +; +_.reversed = function reversed_32(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdgeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdgeComparator', 763); +function $getDesignation(this$static){ + var identifier; + identifier = getOriginIdentifier(this$static); + if (identifier) { + return identifier; + } + return null; +} + +defineClass(299, 134, {3:1, 299:1, 94:1, 134:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_layered_graph_LGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphElement', 299); +function $getDesignation_0(this$static){ + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).text_0; + } + return $getDesignation(this$static); +} + +function $getOther_1(this$static, node){ + if (node == this$static.source.owner) { + return this$static.target.owner; + } + else if (node == this$static.target.owner) { + return this$static.source.owner; + } + else { + throw toJs(new IllegalArgumentException_0("'node' must either be the source node or target node of the edge.")); + } +} + +function $getOther_2(this$static, port){ + if (port == this$static.source) { + return this$static.target; + } + else if (port == this$static.target) { + return this$static.source; + } + else { + throw toJs(new IllegalArgumentException_0("'port' must be either the source port or target port of the edge.")); + } +} + +function $isInLayerEdge(this$static){ + return !$isSelfLoop(this$static) && this$static.source.owner.layer == this$static.target.owner.layer; +} + +function $isSelfLoop(this$static){ + if (!this$static.source || !this$static.target) { + return false; + } + return !!this$static.source.owner && this$static.source.owner == this$static.target.owner; +} + +function $reverse_0(this$static, adaptPorts){ + var label_0, label$iterator, labelPlacement, oldSource, oldTarget, reversed; + oldSource = this$static.source; + oldTarget = this$static.target; + $setSource_0(this$static, null); + $setTarget_0(this$static, null); + adaptPorts && $booleanValue(castToBoolean($getProperty(oldTarget, ($clinit_InternalProperties_1() , INPUT_COLLECT))))?$setSource_0(this$static, provideCollectorPort(oldTarget.owner, ($clinit_PortType() , OUTPUT), ($clinit_PortSide() , EAST_2))):$setSource_0(this$static, oldTarget); + adaptPorts && $booleanValue(castToBoolean($getProperty(oldSource, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))?$setTarget_0(this$static, provideCollectorPort(oldSource.owner, ($clinit_PortType() , INPUT), ($clinit_PortSide() , WEST_2))):$setTarget_0(this$static, oldSource); + for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); + labelPlacement == ($clinit_EdgeLabelPlacement() , TAIL)?$setProperty_0(label_0, EDGE_LABELS_PLACEMENT, HEAD):labelPlacement == HEAD && $setProperty_0(label_0, EDGE_LABELS_PLACEMENT, TAIL); + } + reversed = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_InternalProperties_1() , REVERSED)))); + $setProperty_0(this$static, REVERSED, ($clinit_Boolean() , reversed?false:true)); + this$static.bendPoints = reverse_3(this$static.bendPoints); +} + +function $setSource_0(this$static, source){ + !!this$static.source && $remove_12(this$static.source.outgoingEdges, this$static); + this$static.source = source; + !!this$static.source && $add_3(this$static.source.outgoingEdges, this$static); +} + +function $setTarget_0(this$static, target){ + !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); + this$static.target = target; + !!this$static.target && $add_3(this$static.target.incomingEdges, this$static); +} + +function $setTargetAndInsertAtIndex(this$static, targetPort, index_0){ + !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); + this$static.target = targetPort; + !!this$static.target && $add_2(this$static.target.incomingEdges, index_0, this$static); +} + +function $toString_12(this$static){ + var designation, result; + result = new StringBuilder; + result.string += 'e_'; + designation = $getDesignation_0(this$static); + designation != null && (result.string += '' + designation , result); + if (!!this$static.source && !!this$static.target) { + $append_11((result.string += ' ' , result), $getDesignation_3(this$static.source)); + $append_11($append_10((result.string += '[' , result), this$static.source.owner), ']'); + $append_11((result.string += ' -> ' , result), $getDesignation_3(this$static.target)); + $append_11($append_10((result.string += '[' , result), this$static.target.owner), ']'); + } + return result.string; +} + +function LEdge(){ + this.bendPoints = new KVectorChain; + this.labels = (checkNonnegative(3, 'initialArraySize') , new ArrayList_0(3)); +} + +defineClass(17, 299, {3:1, 17:1, 299:1, 94:1, 134:1}, LEdge); +_.toString_0 = function toString_87(){ + return $toString_12(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LEdge', 17); +function $toNodeArray(this$static){ + var layer, layerIndex, layerIter, lgraphArray; + lgraphArray = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, this$static.layers.array.length, 0, 2); + layerIter = new AbstractList$ListIteratorImpl(this$static.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + layerIndex = layerIter.i - 1; + lgraphArray[layerIndex] = toNodeArray(layer.nodes); + } + return lgraphArray; +} + +function LGraph(){ + this.size_0 = new KVector; + this.padding = new LPadding; + this.offset = new KVector; + this.layerlessNodes = new ArrayList; + this.layers = new ArrayList; +} + +defineClass(37, 299, {3:1, 20:1, 37:1, 299:1, 94:1, 134:1}, LGraph); +_.forEach_0 = function forEach_26(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_68(){ + return new ArrayList$1(this.layers); +} +; +_.toString_0 = function toString_88(){ + if (this.layers.array.length == 0) { + return 'G-unlayered' + $toString_2(this.layerlessNodes); + } + else if (this.layerlessNodes.array.length == 0) { + return 'G-layered' + $toString_2(this.layers); + } + return 'G[layerless' + $toString_2(this.layerlessNodes) + ', layers' + $toString_2(this.layers) + ']'; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraph', 37); +function $clinit_LGraphAdapters(){ + $clinit_LGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER = new LGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER; +defineClass(657, 1, {}); +_.getPosition = function getPosition(){ + return this.element.pos; +} +; +_.getProperty = function getProperty_0(prop){ + return $getProperty(this.element, prop); +} +; +_.getSize = function getSize(){ + return this.element.size_0; +} +; +_.getVolatileId = function getVolatileId(){ + return this.element.id_0; +} +; +_.hasProperty = function hasProperty_0(prop){ + return $hasProperty(this.element, prop); +} +; +_.setPosition = function setPosition(pos){ + this.element.pos.x_0 = pos.x_0; + this.element.pos.y_0 = pos.y_0; +} +; +_.setSize = function setSize(size_0){ + this.element.size_0.x_0 = size_0.x_0; + this.element.size_0.y_0 = size_0.y_0; +} +; +_.setVolatileId = function setVolatileId(volatileId){ + this.element.id_0 = volatileId; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$AbstractLShapeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/AbstractLShapeAdapter', 657); +function LGraphAdapters$LEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(577, 1, {839:1}, LGraphAdapters$LEdgeAdapter); +_.getLabels = function getLabels(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(this.element.labels.array.length); + for (l$iterator = new ArrayList$1(this.element.labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.labelAdapters = null; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LEdgeAdapter', 577); +function LGraphAdapters$LGraphAdapter(element, transparentNorthSouthEdges, transparentCommentNodes, nodeFilter){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; + this.transparentCommentNodes = transparentCommentNodes; + this.nodeFilter = nodeFilter; +} + +defineClass(656, 1, {}, LGraphAdapters$LGraphAdapter); +_.getNodes = function getNodes(){ + var comment, comment$iterator, l, l$iterator, n, n$iterator; + if (!this.nodeAdapters) { + this.nodeAdapters = new ArrayList; + for (l$iterator = new ArrayList$1(this.element.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (this.nodeFilter.test_0(n)) { + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, n, this.transparentNorthSouthEdges)); + if (this.transparentCommentNodes) { + if ($hasProperty(n, ($clinit_InternalProperties_1() , TOP_COMMENTS))) { + for (comment$iterator = castTo($getProperty(n, TOP_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { + comment = castTo(comment$iterator.next_1(), 10); + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); + } + } + if ($hasProperty(n, BOTTOM_COMMENTS)) { + for (comment$iterator = castTo($getProperty(n, BOTTOM_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { + comment = castTo(comment$iterator.next_1(), 10); + $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); + } + } + } + } + } + } + } + return this.nodeAdapters; +} +; +_.getPosition = function getPosition_0(){ + throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); +} +; +_.getProperty = function getProperty_1(prop){ + return $getProperty(this.element, prop); +} +; +_.getSize = function getSize_0(){ + return this.element.size_0; +} +; +_.getVolatileId = function getVolatileId_0(){ + return this.element.id_0; +} +; +_.hasProperty = function hasProperty_1(prop){ + return $hasProperty(this.element, prop); +} +; +_.setPosition = function setPosition_0(pos){ + throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); +} +; +_.setSize = function setSize_0(size_0){ + this.element.size_0.x_0 = size_0.x_0; + this.element.size_0.y_0 = size_0.y_0; +} +; +_.setVolatileId = function setVolatileId_0(volatileId){ + this.element.id_0 = volatileId; +} +; +_.nodeAdapters = null; +_.transparentCommentNodes = false; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LGraphAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LGraphAdapter', 656); +function LGraphAdapters$LLabelAdapter(element){ + this.element = element; +} + +defineClass(576, 657, {181:1}, LGraphAdapters$LLabelAdapter); +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LLabelAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LLabelAdapter', 576); +function $sortPortList(this$static, comparator){ + $isOrderFixed(castTo($getProperty(castTo(this$static.element, 10), ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) && ($clinit_Collections() , $sort(castTo(this$static.element, 10).ports, comparator)); +} + +function LGraphAdapters$LNodeAdapter(parent_0, element, transparentNorthSouthEdges){ + this.element = element; + this.parentGraphAdapter = parent_0; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(575, 657, {680:1}, LGraphAdapters$LNodeAdapter); +_.getGraph = function getGraph(){ + return this.parentGraphAdapter; +} +; +_.getIncomingEdges = function getIncomingEdges(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getLabels = function getLabels_0(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 10).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 10).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getMargin = function getMargin(){ + var lmargins; + lmargins = castTo(this.element, 10).margin; + return new ElkMargin_1(lmargins.top_0, lmargins.right, lmargins.bottom, lmargins.left); +} +; +_.getOutgoingEdges = function getOutgoingEdges(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getPorts = function getPorts(){ + var p, p$iterator; + if (!this.portAdapters) { + this.portAdapters = newArrayListWithCapacity(castTo(this.element, 10).ports.array.length); + for (p$iterator = new ArrayList$1(castTo(this.element, 10).ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + $add_3(this.portAdapters, new LGraphAdapters$LPortAdapter(p, this.transparentNorthSouthEdges)); + } + } + return this.portAdapters; +} +; +_.isCompoundNode = function isCompoundNode(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 10), ($clinit_InternalProperties_1() , COMPOUND_NODE)))); +} +; +_.setMargin = function setMargin(margin){ + castTo(this.element, 10).margin.left = margin.left; + castTo(this.element, 10).margin.top_0 = margin.top_0; + castTo(this.element, 10).margin.right = margin.right; + castTo(this.element, 10).margin.bottom = margin.bottom; +} +; +_.setPadding = function setPadding(padding){ + castTo(this.element, 10).padding.left = padding.left; + castTo(this.element, 10).padding.top_0 = padding.top_0; + castTo(this.element, 10).padding.right = padding.right; + castTo(this.element, 10).padding.bottom = padding.bottom; +} +; +_.sortPortList = function sortPortList(){ + $sortPortList(this, ($clinit_LGraphAdapters() , DEFAULT_PORTLIST_SORTER)); +} +; +_.labelAdapters = null; +_.parentGraphAdapter = null; +_.portAdapters = null; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LNodeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LNodeAdapter', 575); +function LGraphAdapters$LPortAdapter(element, transparentNorthSouthEdges){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(1722, 657, {838:1}, LGraphAdapters$LPortAdapter); +_.getIncomingEdges = function getIncomingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy; + if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + else if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = new ArrayList; + for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).incomingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + } + return this.incomingEdgeAdapters; +} +; +_.getLabels = function getLabels_1(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 11).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 11).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy; + if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + else if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = new ArrayList; + for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide(){ + return castTo(this.element, 11).side; +} +; +_.hasCompoundConnections = function hasCompoundConnections(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))); +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +_.transparentNorthSouthEdges = false; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LPortAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LPortAdapter', 1722); +function $compare_10(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = port1.side.ordinal - port2.side.ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty(port1, ($clinit_LayeredOptions() , PORT_INDEX)), 19); + index2 = castTo($getProperty(port2, PORT_INDEX), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (port1.side.ordinal) { + case 1: + return compare_4(port1.pos.x_0, port2.pos.x_0); + case 2: + return compare_4(port1.pos.y_0, port2.pos.y_0); + case 3: + return compare_4(port2.pos.x_0, port1.pos.x_0); + case 4: + return compare_4(port2.pos.y_0, port1.pos.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function LGraphAdapters$PortComparator(){ +} + +defineClass(1723, 1, $intern_88, LGraphAdapters$PortComparator); +_.compare_1 = function compare_41(port1, port2){ + return $compare_10(castTo(port1, 11), castTo(port2, 11)); +} +; +_.equals_0 = function equals_98(other){ + return this === other; +} +; +_.reversed = function reversed_33(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/PortComparator', 1723); +function LGraphAdapters$lambda$0$Type(){ +} + +defineClass(804, 1, $intern_39, LGraphAdapters$lambda$0$Type); +_.test_0 = function test_17(arg0){ + return castTo(arg0, 10) , $clinit_LGraphAdapters() , true; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/lambda$0$Type', 804); +function calcPortOffset(port, side){ + var node; + node = port.owner; + switch (side.ordinal) { + case 1: + return -(port.pos.y_0 + port.size_0.y_0); + case 2: + return port.pos.x_0 - node.size_0.x_0; + case 3: + return port.pos.y_0 - node.size_0.y_0; + case 4: + return -(port.pos.x_0 + port.size_0.x_0); + } + return 0; +} + +function calcPortSide(port, direction){ + var height, heightPercent, node, nodeHeight, nodeWidth, width_0, widthPercent, xpos, ypos; + node = port.owner; + nodeWidth = node.size_0.x_0; + nodeHeight = node.size_0.y_0; + if (nodeWidth <= 0 && nodeHeight <= 0) { + return $clinit_PortSide() , UNDEFINED_5; + } + xpos = port.pos.x_0; + ypos = port.pos.y_0; + width_0 = port.size_0.x_0; + height = port.size_0.y_0; + switch (direction.ordinal) { + case 2: + case 1: + if (xpos < 0) { + return $clinit_PortSide() , WEST_2; + } + else if (xpos + width_0 > nodeWidth) { + return $clinit_PortSide() , EAST_2; + } + + break; + case 4: + case 3: + if (ypos < 0) { + return $clinit_PortSide() , NORTH_3; + } + else if (ypos + height > nodeHeight) { + return $clinit_PortSide() , SOUTH_2; + } + + } + widthPercent = (xpos + width_0 / 2) / nodeWidth; + heightPercent = (ypos + height / 2) / nodeHeight; + return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); +} + +function centerPoint(point, boundary, side){ + switch (side.ordinal) { + case 1: + point.x_0 = boundary.x_0 / 2; + point.y_0 = 0; + break; + case 2: + point.x_0 = boundary.x_0; + point.y_0 = boundary.y_0 / 2; + break; + case 3: + point.x_0 = boundary.x_0 / 2; + point.y_0 = boundary.y_0; + break; + case 4: + point.x_0 = 0; + point.y_0 = boundary.y_0 / 2; + } +} + +function changeCoordSystem(point, oldGraph, newGraph){ + var graph, node, padding; + if (oldGraph == newGraph) { + return; + } + graph = oldGraph; + do { + $add_19(point, graph.offset); + node = graph.parentNode; + if (node) { + padding = graph.padding; + $add_18(point, padding.left, padding.top_0); + $add_19(point, node.pos); + graph = $getGraph(node); + } + } + while (node); + graph = newGraph; + do { + $sub_0(point, graph.offset); + node = graph.parentNode; + if (node) { + padding = graph.padding; + $sub(point, padding.left, padding.top_0); + $sub_0(point, node.pos); + graph = $getGraph(node); + } + } + while (node); +} + +function createExternalPortDummy(propertyHolder, portConstraints, portSide, netFlow, portNodeSize, portPosition, portSize, layoutDirection, layeredGraph){ + var anchor, dummy, dummyPort, explicitAnchor, finalExternalPortSide, informationAboutIt, portBorderOffset; + finalExternalPortSide = portSide; + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIZE), portSize); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + portBorderOffset = $doubleValue(castToDouble(propertyHolder.getProperty(PORT_BORDER_OFFSET))); + $setProperty_0(dummy, PORT_BORDER_OFFSET, portBorderOffset); + dummyPort = new LPort; + $setNode(dummyPort, dummy); + if (!(portConstraints != FREE && portConstraints != UNDEFINED_4)) { + netFlow >= 0?(finalExternalPortSide = fromDirection(layoutDirection)):(finalExternalPortSide = $opposed(fromDirection(layoutDirection))); + propertyHolder.setProperty(PORT_SIDE, finalExternalPortSide); + } + anchor = new KVector; + explicitAnchor = false; + if (propertyHolder.hasProperty(PORT_ANCHOR)) { + $set_9(anchor, castTo(propertyHolder.getProperty(PORT_ANCHOR), 8)); + explicitAnchor = true; + } + else { + $set_8(anchor, portSize.x_0 / 2, portSize.y_0 / 2); + } + switch (finalExternalPortSide.ordinal) { + case 4: + $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); + $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + dummy.size_0.y_0 = portSize.y_0; + portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , EAST_2)); + explicitAnchor || (anchor.x_0 = portSize.x_0); + anchor.x_0 -= portSize.x_0; + break; + case 2: + $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); + $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , INCOMING_ONLY)); + dummy.size_0.y_0 = portSize.y_0; + portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , WEST_2)); + explicitAnchor || (anchor.x_0 = 0); + break; + case 1: + $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + dummy.size_0.x_0 = portSize.x_0; + portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , SOUTH_2)); + explicitAnchor || (anchor.y_0 = portSize.y_0); + anchor.y_0 -= portSize.y_0; + break; + case 3: + $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + dummy.size_0.x_0 = portSize.x_0; + portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); + $setSide(dummyPort, ($clinit_PortSide() , NORTH_3)); + explicitAnchor || (anchor.y_0 = 0); + } + $set_9(dummyPort.pos, anchor); + $setProperty_0(dummy, PORT_ANCHOR, anchor); + if (portConstraints == FIXED_ORDER || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { + informationAboutIt = 0; + if (portConstraints == FIXED_ORDER && propertyHolder.hasProperty(PORT_INDEX)) { + switch (finalExternalPortSide.ordinal) { + case 1: + case 2: + informationAboutIt = castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; + break; + case 3: + case 4: + informationAboutIt = -castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; + } + } + else { + switch (finalExternalPortSide.ordinal) { + case 4: + case 2: + informationAboutIt = portPosition.y_0; + portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.y_0); + break; + case 1: + case 3: + informationAboutIt = portPosition.x_0; + portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.x_0); + } + } + $setProperty_0(dummy, PORT_RATIO_OR_POSITION_0, informationAboutIt); + } + $setProperty_0(dummy, EXT_PORT_SIDE, finalExternalPortSide); + return dummy; +} + +function createPort(node, endPoint, type_0, layeredGraph){ + var defaultSide, direction, graphProperties, mergePorts, port, portSide, pos; + direction = getDirection_1(layeredGraph); + mergePorts = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , MERGE_EDGES_0)))); + if ((mergePorts || $booleanValue(castToBoolean($getProperty(node, HYPERNODE)))) && !$isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98))) { + defaultSide = fromDirection(direction); + port = provideCollectorPort(node, type_0, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); + } + else { + port = new LPort; + $setNode(port, node); + if (endPoint) { + pos = port.pos; + pos.x_0 = endPoint.x_0 - node.pos.x_0; + pos.y_0 = endPoint.y_0 - node.pos.y_0; + $bound(pos, 0, 0, node.size_0.x_0, node.size_0.y_0); + $setSide(port, calcPortSide(port, direction)); + } + else { + defaultSide = fromDirection(direction); + $setSide(port, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); + } + graphProperties = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + portSide = port.side; + switch (direction.ordinal) { + case 2: + case 1: + (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + break; + case 4: + case 3: + (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + } + } + return port; +} + +function findMaxNonDummyNodeWidth(layer){ + var maxWidth, node, node$iterator, width_0; + if ($isVertical(castTo($getProperty(layer.owner, ($clinit_LayeredOptions() , DIRECTION)), 103))) { + return 0; + } + maxWidth = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + width_0 = node.size_0.x_0; + maxWidth = $wnd.Math.max(maxWidth, width_0); + } + } + return maxWidth; +} + +function getDirection_1(graph){ + var aspectRatio, direction; + direction = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); + if (direction == ($clinit_Direction_0() , UNDEFINED_2)) { + aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); + return aspectRatio >= 1?RIGHT_6:DOWN_1; + } + return direction; +} + +function getExternalPortPosition(graph, portDummy, portWidth, portHeight){ + var graphOffset, graphSize, padding, portOffset, portPosition; + portPosition = new KVector_2(portDummy.pos); + portPosition.x_0 += portDummy.size_0.x_0 / 2; + portPosition.y_0 += portDummy.size_0.y_0 / 2; + portOffset = $doubleValue(castToDouble($getProperty(portDummy, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET)))); + graphSize = graph.size_0; + padding = graph.padding; + graphOffset = graph.offset; + switch (castTo($getProperty(portDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; + portPosition.y_0 = -portHeight - portOffset; + portDummy.pos.y_0 = -(padding.top_0 + portOffset + graphOffset.y_0); + break; + case 2: + portPosition.x_0 = graphSize.x_0 + padding.left + padding.right + portOffset; + portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; + portDummy.pos.x_0 = graphSize.x_0 + padding.right + portOffset - graphOffset.x_0; + break; + case 3: + portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; + portPosition.y_0 = graphSize.y_0 + padding.top_0 + padding.bottom + portOffset; + portDummy.pos.y_0 = graphSize.y_0 + padding.bottom + portOffset - graphOffset.y_0; + break; + case 4: + portPosition.x_0 = -portWidth - portOffset; + portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; + portDummy.pos.x_0 = -(padding.left + portOffset + graphOffset.x_0); + } + return portPosition; +} + +function getIndividualOrInherited(node, property){ + var individualSpacings, result; + result = null; + if ($hasProperty(node, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { + individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL_0), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && !!$getGraph(node) && (result = $getProperty($getGraph(node), property)); + return result; +} + +function getMinimalModelOrder(graph){ + var node, node$iterator, order; + order = $intern_0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (order = $wnd.Math.min(order, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0)); + } + return order; +} + +function initializePort(port, portConstraints, direction, anchorPos){ + var nodeHeight, nodeWidth, portAnchor, portSide, portSize, ratio; + portSide = port.side; + if (portSide == ($clinit_PortSide() , UNDEFINED_5) && portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != ($clinit_PortConstraints() , UNDEFINED_4)) { + portSide = calcPortSide(port, direction); + $setSide(port, portSide); + !(!port.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):port.propertyMap).containsKey(($clinit_LayeredOptions() , PORT_BORDER_OFFSET)) && portSide != UNDEFINED_5 && (port.pos.x_0 != 0 || port.pos.y_0 != 0) && $setProperty_0(port, PORT_BORDER_OFFSET, calcPortOffset(port, portSide)); + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_RATIO)) { + ratio = 0; + switch (portSide.ordinal) { + case 1: + case 3: + nodeWidth = port.owner.size_0.x_0; + nodeWidth > 0 && (ratio = port.pos.x_0 / nodeWidth); + break; + case 2: + case 4: + nodeHeight = port.owner.size_0.y_0; + nodeHeight > 0 && (ratio = port.pos.y_0 / nodeHeight); + } + $setProperty_0(port, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0), ratio); + } + portSize = port.size_0; + portAnchor = port.anchor; + if (anchorPos) { + portAnchor.x_0 = anchorPos.x_0; + portAnchor.y_0 = anchorPos.y_0; + port.explicitlySuppliedPortAnchor = true; + } + else if (portConstraints != FREE && portConstraints != UNDEFINED_4 && portSide != UNDEFINED_5) { + switch (portSide.ordinal) { + case 1: + portAnchor.x_0 = portSize.x_0 / 2; + break; + case 2: + portAnchor.x_0 = portSize.x_0; + portAnchor.y_0 = portSize.y_0 / 2; + break; + case 3: + portAnchor.x_0 = portSize.x_0 / 2; + portAnchor.y_0 = portSize.y_0; + break; + case 4: + portAnchor.y_0 = portSize.y_0 / 2; + } + } + else { + portAnchor.x_0 = portSize.x_0 / 2; + portAnchor.y_0 = portSize.y_0 / 2; + } +} + +function isDescendant(child, parent_0){ + var current, next; + current = child; + next = $getGraph(current).parentNode; + while (next) { + current = next; + if (current == parent_0) { + return true; + } + next = $getGraph(current).parentNode; + } + return false; +} + +function offsetGraph(graph, offsetx, offsety){ + var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; + graphOffset = new KVector_1(offsetx, offsety); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_19(node.pos, graphOffset); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $offset_2(junctionPoints, graphOffset); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $add_19(label_0.pos, graphOffset); + } + } + } + } +} + +function placeNodesHorizontally(layer, xoffset){ + var alignment, inports, leftMargin, maxLeftMargin, maxRightMargin, node, node$iterator, node$iterator0, nodeSize, outports, port, port$iterator, ratio, rightMargin, size_0, xpos; + maxLeftMargin = 0; + maxRightMargin = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + maxLeftMargin = $wnd.Math.max(maxLeftMargin, node.margin.left); + maxRightMargin = $wnd.Math.max(maxRightMargin, node.margin.right); + } + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + alignment = castTo($getProperty(node, ($clinit_LayeredOptions() , ALIGNMENT)), 248); + switch (alignment.ordinal) { + case 1: + ratio = 0; + break; + case 2: + ratio = 1; + break; + case 5: + ratio = 0.5; + break; + default:inports = 0; + outports = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || ++inports; + port.outgoingEdges.array.length == 0 || ++outports; + } + + inports + outports == 0?(ratio = 0.5):(ratio = outports / (inports + outports)); + } + size_0 = layer.size_0; + nodeSize = node.size_0.x_0; + xpos = (size_0.x_0 - nodeSize) * ratio; + ratio > 0.5?(xpos -= maxRightMargin * 2 * (ratio - 0.5)):ratio < 0.5 && (xpos += maxLeftMargin * 2 * (0.5 - ratio)); + leftMargin = node.margin.left; + xpos < leftMargin && (xpos = leftMargin); + rightMargin = node.margin.right; + xpos > size_0.x_0 - rightMargin - nodeSize && (xpos = size_0.x_0 - rightMargin - nodeSize); + node.pos.x_0 = xoffset + xpos; + } +} + +function provideCollectorPort(node, type_0, side){ + var inport, inport$iterator, outport, outport$iterator, port; + port = null; + switch (type_0.ordinal) { + case 1: + for (inport$iterator = new ArrayList$1(node.ports); inport$iterator.i < inport$iterator.this$01.array.length;) { + inport = castTo($next_7(inport$iterator), 11); + if ($booleanValue(castToBoolean($getProperty(inport, ($clinit_InternalProperties_1() , INPUT_COLLECT))))) { + return inport; + } + } + + port = new LPort; + $setProperty_0(port, ($clinit_InternalProperties_1() , INPUT_COLLECT), ($clinit_Boolean() , true)); + break; + case 2: + for (outport$iterator = new ArrayList$1(node.ports); outport$iterator.i < outport$iterator.this$01.array.length;) { + outport = castTo($next_7(outport$iterator), 11); + if ($booleanValue(castToBoolean($getProperty(outport, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))) { + return outport; + } + } + + port = new LPort; + $setProperty_0(port, ($clinit_InternalProperties_1() , OUTPUT_COLLECT), ($clinit_Boolean() , true)); + } + if (port) { + $setNode(port, node); + $setSide(port, side); + centerPoint(port.pos, node.size_0, side); + } + return port; +} + +function resizeNode(node, newSize, movePorts){ + var all, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, oldSize, port, port$iterator, widthDiff, widthPercent, widthRatio; + oldSize = new KVector_2(node.size_0); + widthRatio = newSize.x_0 / oldSize.x_0; + heightRatio = newSize.y_0 / oldSize.y_0; + widthDiff = newSize.x_0 - oldSize.x_0; + heightDiff = newSize.y_0 - oldSize.y_0; + if (movePorts) { + fixedPorts = maskUndefined($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 1: + fixedPorts || (port.pos.x_0 *= widthRatio); + break; + case 2: + port.pos.x_0 += widthDiff; + fixedPorts || (port.pos.y_0 *= heightRatio); + break; + case 3: + fixedPorts || (port.pos.x_0 *= widthRatio); + port.pos.y_0 += heightDiff; + break; + case 4: + fixedPorts || (port.pos.y_0 *= heightRatio); + } + } + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + midx = label_0.pos.x_0 + label_0.size_0.x_0 / 2; + midy = label_0.pos.y_0 + label_0.size_0.y_0 / 2; + widthPercent = midx / oldSize.x_0; + heightPercent = midy / oldSize.y_0; + if (widthPercent + heightPercent >= 1) { + if (widthPercent - heightPercent > 0 && midy >= 0) { + label_0.pos.x_0 += widthDiff; + label_0.pos.y_0 += heightDiff * heightPercent; + } + else if (widthPercent - heightPercent < 0 && midx >= 0) { + label_0.pos.x_0 += widthDiff * widthPercent; + label_0.pos.y_0 += heightDiff; + } + } + } + node.size_0.x_0 = newSize.x_0; + node.size_0.y_0 = newSize.y_0; + $setProperty_0(node, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); +} + +function toEdgeArray(edges){ + return castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); +} + +function toNodeArray(nodes){ + return castTo($toArray_2(nodes, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodes.array.length, 0, 1)), 193); +} + +function toPortArray(ports){ + return castTo($toArray_2(ports, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, $intern_108, 11, ports.array.length, 0, 1)), 1943); +} + +function LShape(){ + this.pos = new KVector; + this.size_0 = new KVector; +} + +defineClass(392, 299, {3:1, 299:1, 392:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_layered_graph_LShape_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LShape', 392); +function $getDesignation_1(this$static){ + if (this$static.text_0) { + return this$static.text_0; + } + return $getDesignation(this$static); +} + +function LLabel(){ + LLabel_0.call(this, ''); +} + +function LLabel_0(thetext){ + LShape.call(this); + this.text_0 = thetext; +} + +defineClass(70, 392, {3:1, 299:1, 70:1, 392:1, 94:1, 134:1}, LLabel, LLabel_0); +_.toString_0 = function toString_89(){ + var designation; + designation = $getDesignation_1(this); + return designation == null?'label':'l_' + designation; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LLabel_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LLabel', 70); +function $$init_7(this$static){ +} + +function $add_15(this$static, other){ + this$static.left += other.left; + this$static.right += other.right; + this$static.top_0 += other.top_0; + this$static.bottom += other.bottom; + return this$static; +} + +function $copy(this$static, other){ + this$static.left = other.left; + this$static.right = other.right; + this$static.top_0 = other.top_0; + this$static.bottom = other.bottom; + return this$static; +} + +function $set_7(this$static, newTop, newRight, newBottom, newLeft){ + this$static.top_0 = newTop; + this$static.right = newRight; + this$static.bottom = newBottom; + this$static.left = newLeft; +} + +function $setBottom(this$static, bottom){ + this$static.bottom = bottom; +} + +function $setLeft(this$static, left){ + this$static.left = left; +} + +function $setRight(this$static, right){ + this$static.right = right; +} + +function $setTop(this$static, top_0){ + this$static.top_0 = top_0; +} + +function Spacing(){ + $$init_7(this); +} + +function Spacing_0(top_0, right, bottom, left){ + $$init_7(this); + $set_7(this, top_0, right, bottom, left); +} + +function isdelim(c, delims){ + var i; + for (i = 0; i < delims.length; i++) { + if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { + return true; + } + } + return false; +} + +defineClass(207, 1, {3:1, 4:1, 207:1, 414:1}); +_.equals_0 = function equals_99(obj){ + var other; + if (instanceOf(obj, 207)) { + other = castTo(obj, 207); + return this.top_0 == other.top_0 && this.bottom == other.bottom && this.left == other.left && this.right == other.right; + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_61(){ + var code1, code2; + code1 = $hashCode_0(this.left) << 16; + code1 |= $hashCode_0(this.bottom) & $intern_46; + code2 = $hashCode_0(this.right) << 16; + code2 |= $hashCode_0(this.top_0) & $intern_46; + return code1 ^ code2; +} +; +_.parse_0 = function parse_0(string){ + var end, exception, key, keyandvalue, start_0, token, token$array, token$index, token$max, tokens, value_0; + start_0 = 0; + while (start_0 < string.length && isdelim((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { + ++start_0; + } + end = string.length; + while (end > 0 && isdelim((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { + --end; + } + if (start_0 < end) { + tokens = $split_0(string.substr(start_0, end - start_0), ',|;'); + try { + for (token$array = tokens , token$index = 0 , token$max = token$array.length; token$index < token$max; ++token$index) { + token = token$array[token$index]; + keyandvalue = $split_0(token, '='); + if (keyandvalue.length != 2) { + throw toJs(new IllegalArgumentException_0('Expecting a list of key-value pairs.')); + } + key = $trim(keyandvalue[0]); + value_0 = __parseAndValidateDouble($trim(keyandvalue[1])); + $equals_5(key, 'top')?(this.top_0 = value_0):$equals_5(key, 'left')?(this.left = value_0):$equals_5(key, 'bottom')?(this.bottom = value_0):$equals_5(key, 'right') && (this.right = value_0); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); + } + else + throw toJs($e0); + } + } +} +; +_.toString_0 = function toString_90(){ + return '[top=' + this.top_0 + ',left=' + this.left + ',bottom=' + this.bottom + ',right=' + this.right + ']'; +} +; +_.bottom = 0; +_.left = 0; +_.right = 0; +_.top_0 = 0; +var Lorg_eclipse_elk_core_math_Spacing_2_classLit = createForClass('org.eclipse.elk.core.math', 'Spacing', 207); +function ElkMargin(){ + Spacing.call(this); +} + +function ElkMargin_0(){ + Spacing_0.call(this, 0, 0, 0, 0); +} + +function ElkMargin_1(top_0, right, bottom, left){ + Spacing_0.call(this, top_0, right, bottom, left); +} + +function ElkMargin_2(other){ + Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); +} + +defineClass(142, 207, $intern_109, ElkMargin, ElkMargin_0, ElkMargin_1, ElkMargin_2); +var Lorg_eclipse_elk_core_math_ElkMargin_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkMargin', 142); +function LMargin(){ + ElkMargin.call(this); +} + +defineClass(651, 142, $intern_109, LMargin); +var Lorg_eclipse_elk_alg_layered_graph_LMargin_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LMargin', 651); +function $borderToContentAreaCoordinates(this$static, horizontal, vertical){ + var graphPadding, offset, pos, thegraph; + thegraph = $getGraph(this$static); + graphPadding = thegraph.padding; + offset = thegraph.offset; + pos = this$static.pos; + horizontal && (pos.x_0 = pos.x_0 - graphPadding.left - offset.x_0); + vertical && (pos.y_0 = pos.y_0 - graphPadding.top_0 - offset.y_0); +} + +function $findPortIndices(this$static){ + var currentIndex, currentSide, firstIndexForCurrentSide, port; + this$static.portSideIndices = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); + firstIndexForCurrentSide = 0; + currentSide = ($clinit_PortSide() , NORTH_3); + currentIndex = 0; + for (; currentIndex < this$static.ports.array.length; currentIndex++) { + port = castTo($get_11(this$static.ports, currentIndex), 11); + if (port.side != currentSide) { + firstIndexForCurrentSide != currentIndex && $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); + currentSide = port.side; + firstIndexForCurrentSide = currentIndex; + } + } + $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); +} + +function $getConnectedEdges_0(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $add_3(iterables, port.connectedEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getDesignation_2(this$static){ + var id_0; + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).text_0; + } + id_0 = $getDesignation(this$static); + if (id_0 != null) { + return id_0; + } + return '' + (!this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0)); +} + +function $getGraph(this$static){ + if (!this$static.graph_0 && !!this$static.layer) { + return this$static.layer.owner; + } + return this$static.graph_0; +} + +function $getIncomingEdges(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $add_3(iterables, port.incomingEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getIndex(this$static){ + return !this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0); +} + +function $getInteractiveReferencePoint(this$static){ + var nodePos, nodeSize; + switch (castTo($getProperty($getGraph(this$static), ($clinit_LayeredOptions() , INTERACTIVE_REFERENCE_POINT_0)), 420).ordinal) { + case 0: + nodePos = this$static.pos; + nodeSize = this$static.size_0; + return new KVector_1(nodePos.x_0 + nodeSize.x_0 / 2, nodePos.y_0 + nodeSize.y_0 / 2); + case 1: + return new KVector_2(this$static.pos); + default:return null; + } +} + +function $getOutgoingEdges(this$static){ + var iterables, port, port$iterator; + iterables = new ArrayList; + for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $add_3(iterables, port.outgoingEdges); + } + return checkNotNull(iterables) , new FluentIterable$2(iterables); +} + +function $getPortSideView(this$static, side){ + var indices; + this$static.portSidesCached || $findPortIndices(this$static); + indices = castTo($get_14(this$static.portSideIndices, side), 46); + return !indices?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):new AbstractList$SubList(this$static.ports, castTo(indices.first, 19).value_0, castTo(indices.second, 19).value_0); +} + +function $getPorts(this$static, portType){ + switch (portType.ordinal) { + case 1: + return filter_0(this$static.ports, ($clinit_LPort() , INPUT_PREDICATE)); + case 2: + return filter_0(this$static.ports, ($clinit_LPort() , OUTPUT_PREDICATE)); + default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $getPorts_0(this$static, portType, side){ + var sidePredicate, typePredicate; + typePredicate = null; + switch (portType.ordinal) { + case 1: + typePredicate = ($clinit_LPort() , INPUT_PREDICATE); + break; + case 2: + typePredicate = ($clinit_LPort() , OUTPUT_PREDICATE); + } + sidePredicate = null; + switch (side.ordinal) { + case 1: + sidePredicate = ($clinit_LPort() , NORTH_PREDICATE); + break; + case 2: + sidePredicate = ($clinit_LPort() , EAST_PREDICATE); + break; + case 3: + sidePredicate = ($clinit_LPort() , SOUTH_PREDICATE); + break; + case 4: + sidePredicate = ($clinit_LPort() , WEST_PREDICATE); + } + return !!typePredicate && !!sidePredicate?filter_0(this$static.ports, new Predicates$AndPredicate(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_base_Predicate_2_classLit, 1), $intern_2, 169, 0, [castTo(checkNotNull(typePredicate), 169), castTo(checkNotNull(sidePredicate), 169)])))):($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); +} + +function $getPorts_1(this$static, side){ + switch (side.ordinal) { + case 1: + return filter_0(this$static.ports, ($clinit_LPort() , NORTH_PREDICATE)); + case 2: + return filter_0(this$static.ports, ($clinit_LPort() , EAST_PREDICATE)); + case 3: + return filter_0(this$static.ports, ($clinit_LPort() , SOUTH_PREDICATE)); + case 4: + return filter_0(this$static.ports, ($clinit_LPort() , WEST_PREDICATE)); + default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $setLayer(this$static, index_0, newlayer){ + if (!!newlayer && (index_0 < 0 || index_0 > newlayer.nodes.array.length)) { + throw toJs(new IllegalArgumentException_0('index must be >= 0 and <= layer node count')); + } + !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); + this$static.layer = newlayer; + !!newlayer && $add_2(newlayer.nodes, index_0, this$static); +} + +function $setLayer_0(this$static, thelayer){ + !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); + this$static.layer = thelayer; + !!this$static.layer && $add_3(this$static.layer.nodes, this$static); +} + +function $setType(this$static, type_0){ + this$static.type_0 = type_0; +} + +function $toString_13(this$static){ + var result; + result = new StringBuilder; + result.string += 'n'; + this$static.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $append_11($append_11((result.string += '(' , result), $toString_3(this$static.type_0).toLowerCase()), ')'); + $append_11((result.string += '_' , result), $getDesignation_2(this$static)); + return result.string; +} + +function LNode(graph){ + LShape.call(this); + this.type_0 = ($clinit_LNode$NodeType() , NORMAL); + this.ports = (checkNonnegative(6, 'initialArraySize') , new ArrayList_0(6)); + this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this.margin = new LMargin; + this.padding = new LPadding; + this.graph_0 = graph; +} + +defineClass(10, 392, {3:1, 299:1, 10:1, 392:1, 94:1, 134:1}, LNode); +_.toString_0 = function toString_91(){ + return $toString_13(this); +} +; +_.portSidesCached = false; +var Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LNode', 10); +function $clinit_LNode$NodeType(){ + $clinit_LNode$NodeType = emptyMethod; + NORMAL = new LNode$NodeType('NORMAL', 0); + LONG_EDGE = new LNode$NodeType('LONG_EDGE', 1); + EXTERNAL_PORT = new LNode$NodeType('EXTERNAL_PORT', 2); + NORTH_SOUTH_PORT = new LNode$NodeType('NORTH_SOUTH_PORT', 3); + LABEL = new LNode$NodeType('LABEL', 4); + BREAKING_POINT = new LNode$NodeType('BREAKING_POINT', 5); +} + +function LNode$NodeType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_30(name_0){ + $clinit_LNode$NodeType(); + return valueOf(($clinit_LNode$NodeType$Map() , $MAP_18), name_0); +} + +function values_36(){ + $clinit_LNode$NodeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]); +} + +defineClass(267, 22, {3:1, 35:1, 22:1, 267:1}, LNode$NodeType); +var BREAKING_POINT, EXTERNAL_PORT, LABEL, LONG_EDGE, NORMAL, NORTH_SOUTH_PORT; +var Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.graph', 'LNode/NodeType', 267, Ljava_lang_Enum_2_classLit, values_36, valueOf_30); +function $clinit_LNode$NodeType$Map(){ + $clinit_LNode$NodeType$Map = emptyMethod; + $MAP_18 = createValueOfMap(($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]))); +} + +var $MAP_18; +function ElkPadding(){ + Spacing.call(this); +} + +function ElkPadding_0(any){ + Spacing_0.call(this, any, any, any, any); +} + +function ElkPadding_1(other){ + Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); +} + +defineClass(116, 207, $intern_110, ElkPadding, ElkPadding_0, ElkPadding_1); +var Lorg_eclipse_elk_core_math_ElkPadding_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkPadding', 116); +function LPadding(){ + ElkPadding.call(this); +} + +defineClass(764, 116, $intern_110, LPadding); +var Lorg_eclipse_elk_alg_layered_graph_LPadding_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPadding', 764); +function $clinit_LPort(){ + $clinit_LPort = emptyMethod; + OUTPUT_PREDICATE = new LPort$lambda$1$Type; + INPUT_PREDICATE = new LPort$lambda$0$Type; + NORTH_PREDICATE = new LPort$lambda$2$Type; + EAST_PREDICATE = new LPort$lambda$3$Type; + SOUTH_PREDICATE = new LPort$lambda$4$Type; + WEST_PREDICATE = new LPort$lambda$5$Type; +} + +function $getAbsoluteAnchor(this$static){ + return sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [this$static.owner.pos, this$static.pos, this$static.anchor])); +} + +function $getDegree(this$static){ + return this$static.incomingEdges.array.length + this$static.outgoingEdges.array.length; +} + +function $getDesignation_3(this$static){ + var id_0; + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).text_0; + } + id_0 = $getDesignation(this$static); + if (id_0 != null) { + return id_0; + } + return '' + (!this$static.owner?-1:$indexOf_3(this$static.owner.ports, this$static, 0)); +} + +function $getNetFlow(this$static){ + return this$static.incomingEdges.array.length - this$static.outgoingEdges.array.length; +} + +function $setConnectedToExternalNodes(this$static, conn){ + this$static.connectedToExternalNodes = conn; +} + +function $setNode(this$static, node){ + !!this$static.owner && $remove_12(this$static.owner.ports, this$static); + this$static.owner = node; + !!this$static.owner && $add_3(this$static.owner.ports, this$static); +} + +function $setSide(this$static, theside){ + if (!theside) { + throw toJs(new NullPointerException); + } + this$static.side = theside; + if (!this$static.explicitlySuppliedPortAnchor) { + switch (this$static.side.ordinal) { + case 1: + this$static.anchor.x_0 = this$static.size_0.x_0 / 2; + this$static.anchor.y_0 = 0; + break; + case 2: + this$static.anchor.x_0 = this$static.size_0.x_0; + this$static.anchor.y_0 = this$static.size_0.y_0 / 2; + break; + case 3: + this$static.anchor.x_0 = this$static.size_0.x_0 / 2; + this$static.anchor.y_0 = this$static.size_0.y_0; + break; + case 4: + this$static.anchor.x_0 = 0; + this$static.anchor.y_0 = this$static.size_0.y_0 / 2; + } + } +} + +function LPort(){ + $clinit_LPort(); + LShape.call(this); + this.side = ($clinit_PortSide() , UNDEFINED_5); + this.anchor = new KVector; + new LMargin; + this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); + this.incomingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + this.outgoingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + this.connectedEdges = new LPort$CombineIter(this.incomingEdges, this.outgoingEdges); +} + +defineClass(11, 392, {3:1, 299:1, 11:1, 392:1, 94:1, 134:1}, LPort); +_.toString_0 = function toString_92(){ + var result, source, target; + result = new StringBuilder; + $append_11((result.string += 'p_' , result), $getDesignation_3(this)); + !!this.owner && $append_11($append_10((result.string += '[' , result), this.owner), ']'); + if (this.incomingEdges.array.length == 1 && this.outgoingEdges.array.length == 0 && castTo($get_11(this.incomingEdges, 0), 17).source != this) { + source = castTo($get_11(this.incomingEdges, 0), 17).source; + $append_11((result.string += ' << ' , result), $getDesignation_3(source)); + $append_11($append_10((result.string += '[' , result), source.owner), ']'); + } + if (this.incomingEdges.array.length == 0 && this.outgoingEdges.array.length == 1 && castTo($get_11(this.outgoingEdges, 0), 17).target != this) { + target = castTo($get_11(this.outgoingEdges, 0), 17).target; + $append_11((result.string += ' >> ' , result), $getDesignation_3(target)); + $append_11($append_10((result.string += '[' , result), target.owner), ']'); + } + return result.string; +} +; +_.connectedToExternalNodes = true; +_.explicitlySuppliedPortAnchor = false; +var EAST_PREDICATE, INPUT_PREDICATE, NORTH_PREDICATE, OUTPUT_PREDICATE, SOUTH_PREDICATE, WEST_PREDICATE; +var Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort', 11); +function LPort$1(this$0){ + this.this$01 = this$0; +} + +defineClass(397, 1, $intern_23, LPort$1); +_.forEach_0 = function forEach_27(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_69(){ + var edgesIter; + edgesIter = new ArrayList$1(this.this$01.incomingEdges); + return new LPort$1$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1', 397); +function LPort$1$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(1290, 1, $intern_6, LPort$1$1); +_.forEachRemaining = function forEachRemaining_47(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_37(){ + return castTo($next_7(this.val$edgesIter2), 17).source; +} +; +_.hasNext_0 = function hasNext_36(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_92(){ + $remove_13(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$1$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1/1', 1290); +function LPort$2(this$0){ + this.this$01 = this$0; +} + +defineClass(359, 1, $intern_23, LPort$2); +_.forEach_0 = function forEach_28(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_70(){ + var edgesIter; + return edgesIter = new ArrayList$1(this.this$01.outgoingEdges) , new LPort$2$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2', 359); +function LPort$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(762, 1, $intern_6, LPort$2$1); +_.forEachRemaining = function forEachRemaining_48(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_38(){ + return castTo($next_7(this.val$edgesIter2), 17).target; +} +; +_.hasNext_0 = function hasNext_37(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_93(){ + $remove_13(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$2$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2/1', 762); +function LPort$CombineIter(firstIterable, secondIterable){ + this.firstIterable = firstIterable; + this.secondIterable = secondIterable; +} + +defineClass(1283, 1, $intern_23, LPort$CombineIter); +_.forEach_0 = function forEach_29(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_71(){ + return new LPort$CombineIter$1(this); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter', 1283); +function $hasNext_6(this$static){ + return $hasNext_3(this$static.firstIterator) || $hasNext_3(this$static.secondIterator); +} + +function LPort$CombineIter$1(this$1){ + this.this$11 = this$1; + this.firstIterator = new ArrayList$1(this.this$11.firstIterable); + this.secondIterator = new ArrayList$1(this.this$11.secondIterable); +} + +defineClass(201, 1, $intern_6, LPort$CombineIter$1); +_.forEachRemaining = function forEachRemaining_49(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_94(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_38(){ + return $hasNext_6(this); +} +; +_.next_1 = function next_39(){ + return $hasNext_3(this.firstIterator)?$next_7(this.firstIterator):$next_7(this.secondIterator); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter/1', 201); +function $apply_14(arg0){ + return $clinit_LPort() , castTo(arg0, 11).incomingEdges.array.length != 0; +} + +function LPort$lambda$0$Type(){ +} + +defineClass(1285, 1, $intern_89, LPort$lambda$0$Type); +_.apply_1 = function apply_64(arg0){ + return $apply_14(arg0); +} +; +_.equals_0 = function equals_100(other){ + return this === other; +} +; +_.test_0 = function test_18(input_0){ + return $clinit_LPort() , castTo(input_0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$0$Type', 1285); +function $apply_15(arg0){ + return $clinit_LPort() , castTo(arg0, 11).outgoingEdges.array.length != 0; +} + +function LPort$lambda$1$Type(){ +} + +defineClass(1284, 1, $intern_89, LPort$lambda$1$Type); +_.apply_1 = function apply_65(arg0){ + return $apply_15(arg0); +} +; +_.equals_0 = function equals_101(other){ + return this === other; +} +; +_.test_0 = function test_19(input_0){ + return $clinit_LPort() , castTo(input_0, 11).outgoingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$1$Type', 1284); +function LPort$lambda$2$Type(){ +} + +defineClass(1286, 1, $intern_89, LPort$lambda$2$Type); +_.apply_1 = function apply_66(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +_.equals_0 = function equals_102(other){ + return this === other; +} +; +_.test_0 = function test_20(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$2$Type', 1286); +function LPort$lambda$3$Type(){ +} + +defineClass(1287, 1, $intern_89, LPort$lambda$3$Type); +_.apply_1 = function apply_67(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +_.equals_0 = function equals_103(other){ + return this === other; +} +; +_.test_0 = function test_21(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$3$Type', 1287); +function LPort$lambda$4$Type(){ +} + +defineClass(1288, 1, $intern_89, LPort$lambda$4$Type); +_.apply_1 = function apply_68(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +_.equals_0 = function equals_104(other){ + return this === other; +} +; +_.test_0 = function test_22(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$4$Type', 1288); +function LPort$lambda$5$Type(){ +} + +defineClass(1289, 1, $intern_89, LPort$lambda$5$Type); +_.apply_1 = function apply_69(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +_.equals_0 = function equals_105(other){ + return this === other; +} +; +_.test_0 = function test_23(input_0){ + return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$5$Type', 1289); +function $getIndex_0(this$static){ + return $indexOf_3(this$static.owner.layers, this$static, 0); +} + +function Layer(graph){ + this.size_0 = new KVector; + this.nodes = new ArrayList; + this.owner = graph; +} + +defineClass(29, 299, {3:1, 20:1, 299:1, 29:1, 94:1, 134:1}, Layer); +_.forEach_0 = function forEach_30(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_72(){ + return new ArrayList$1(this.nodes); +} +; +_.toString_0 = function toString_93(){ + return 'L_' + $indexOf_3(this.owner.layers, this, 0) + $toString_2(this.nodes); +} +; +var Lorg_eclipse_elk_alg_layered_graph_Layer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'Layer', 29); +function $calculateMinimumGraphSize(elkgraph, lgraph){ + var configuredMinSize, graphAdapter, minSize, nodeAdapter, sizeConstraints; + if (!$getParent_2(elkgraph)) { + return; + } + sizeConstraints = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174); + maskUndefined($getProperty_0(elkgraph, PORT_CONSTRAINTS_0)) === maskUndefined(($clinit_PortConstraints() , UNDEFINED_4)) && $setProperty_1(elkgraph, PORT_CONSTRAINTS_0, FREE); + graphAdapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))); + nodeAdapter = new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph); + minSize = process(graphAdapter, nodeAdapter, false, true); + $add_5(sizeConstraints, ($clinit_SizeConstraint() , MINIMUM_SIZE)); + configuredMinSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + configuredMinSize.x_0 = $wnd.Math.max(minSize.x_0, configuredMinSize.x_0); + configuredMinSize.y_0 = $wnd.Math.max(minSize.y_0, configuredMinSize.y_0); +} + +function $calculateNetFlow_0(elkport){ + var elkgraph, incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; + elkgraph = $getParent_3(elkport); + insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + outputPortVote = 0; + inputPortVote = 0; + for (outgoingEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outgoingEdge$iterator.cursor != outgoingEdge$iterator.this$01_2.size_1();) { + outgoingEdge = castTo($doNext(outgoingEdge$iterator), 79); + isSelfLoop = $isSelfloop(outgoingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(outgoingEdge, INSIDE_SELF_LOOPS_YO))); + targetNode = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); + isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getParent_2(targetNode) == elkgraph || targetNode == elkgraph?++inputPortVote:++outputPortVote; + } + for (incomingEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); incomingEdge$iterator.cursor != incomingEdge$iterator.this$01_2.size_1();) { + incomingEdge = castTo($doNext(incomingEdge$iterator), 79); + isSelfLoop = $isSelfloop(incomingEdge); + isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(incomingEdge, INSIDE_SELF_LOOPS_YO))); + sourceNode = connectableShapeToNode(castTo($get_20((!incomingEdge.sources && (incomingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, incomingEdge, 4, 7)) , incomingEdge.sources), 0), 82)); + isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getParent_2(sourceNode) == elkgraph || sourceNode == elkgraph?++outputPortVote:++inputPortVote; + } + return outputPortVote - inputPortVote; +} + +function $checkEdgeValidity(edge){ + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0) { + throw toJs(new UnsupportedGraphException('Edges must have a source.')); + } + else if ((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + throw toJs(new UnsupportedGraphException('Edges must have a target.')); + } + else { + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (!(edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1))) { + throw toJs(new UnsupportedGraphException('Hyperedges are not supported.')); + } + } +} + +function $checkExternalPorts(elkgraph, graphProperties){ + var connectsToChild, elkedge, elkedge$iterator, elkport, enableSelfLoops, externalPortEdges, hasExternalPorts, hasHyperedges, isInsideSelfLoop, portIterator, portLabelPlacement; + enableSelfLoops = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); + portLabelPlacement = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21); + hasExternalPorts = false; + hasHyperedges = false; + portIterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); + while (portIterator.cursor != portIterator.this$01_2.size_1() && (!hasExternalPorts || !hasHyperedges)) { + elkport = castTo($doNext(portIterator), 118); + externalPortEdges = 0; + for (elkedge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges), (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)]))); $hasNext_1(elkedge$iterator);) { + elkedge = castTo($next_0(elkedge$iterator), 79); + isInsideSelfLoop = enableSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + connectsToChild = $contains_11((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), elkport)?elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))):elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82))); + if (isInsideSelfLoop || connectsToChild) { + ++externalPortEdges; + if (externalPortEdges > 1) { + break; + } + } + } + externalPortEdges > 0?(hasExternalPorts = true):portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && (!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels).size_0 > 0 && (hasExternalPorts = true); + externalPortEdges > 1 && (hasHyperedges = true); + } + hasExternalPorts && graphProperties.add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); + hasHyperedges && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); +} + +function $createLGraph(elkgraph){ + var all, lPadding, lgraph, nodeLabelpadding, nodePadding, root; + lgraph = new LGraph; + $copyProperties(lgraph, elkgraph); + maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION))) === maskUndefined(($clinit_Direction_0() , UNDEFINED_2)) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + if ($getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) == null) { + root = castTo(getRootContainer(elkgraph), 160); + $setProperty_0(lgraph, LABEL_MANAGER, throwClassCastExceptionUnlessNull(root.getProperty(LABEL_MANAGER))); + } + $setProperty_0(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0), elkgraph); + $setProperty_0(lgraph, GRAPH_PROPERTIES, (all = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + nodeLabelpadding = computeInsideNodeLabelPadding((!$getParent_2(elkgraph)?null:($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))) , $clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph)), RIGHT_6); + nodePadding = castTo($getProperty(lgraph, PADDING_1), 116); + lPadding = lgraph.padding; + $add_15(lPadding, nodePadding); + $add_15(lPadding, nodeLabelpadding); + return lgraph; +} + +function $ensureDefinedPortSide(lgraph, elkport){ + var layoutDirection, netFlow, portConstraints, portSide; + layoutDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); + portConstraints = castTo($getProperty(lgraph, PORT_CONSTRAINTS_0), 98); + if (portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4) { + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(elkport, layoutDirection); + portSide == UNDEFINED_5 && (portSide = fromDirection(layoutDirection)); + } + } + else { + netFlow = $calculateNetFlow_0(elkport); + netFlow > 0?(portSide = fromDirection(layoutDirection)):(portSide = $opposed(fromDirection(layoutDirection))); + } + $setProperty_1(elkport, PORT_SIDE, portSide); +} + +function $findCoordinateSystemOrigin(this$static, elkedge, topLevelElkGraph, topLevelLGraph){ + var lgraph, lnode, origin_0, source, target; + source = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); + target = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); + if ($getParent_2(source) == $getParent_2(target)) { + return null; + } + if (isDescendant_0(target, source)) { + return null; + } + origin_0 = $getContainingNode(elkedge); + if (origin_0 == topLevelElkGraph) { + return topLevelLGraph; + } + else { + lnode = castTo($get_10(this$static.nodeAndPortMap, origin_0), 10); + if (lnode) { + lgraph = lnode.nestedGraph; + if (lgraph) { + return lgraph; + } + } + } + return null; +} + +function $hasInsideSelfLoops(elknode){ + var edge, edge$iterator; + if ($booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + if ($isSelfloop(edge)) { + if ($booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO)))) { + return true; + } + } + } + } + return false; +} + +function $importFlatGraph(this$static, elkgraph, lgraph){ + var child, child$iterator, connectsSiblings, connectsToGraph, elkedge, elkedge$iterator, elkedge$iterator0, enableInsideSelfLoops, index_0, isInsideSelfLoop, isToBeLaidOut, source, target; + index_0 = 0; + for (child$iterator = new AbstractEList$EIterator((!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + if (!$booleanValue(castToBoolean($getProperty_0(child, ($clinit_LayeredOptions() , NO_LAYOUT))))) { + if ((maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(child, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)))) { + $setProperty_1(child, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); + ++index_0; + } + $transformNode(this$static, child, lgraph); + } + } + index_0 = 0; + for (elkedge$iterator0 = new AbstractEList$EIterator((!elkgraph.containedEdges && (elkgraph.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkgraph, 12, 3)) , elkgraph.containedEdges)); elkedge$iterator0.cursor != elkedge$iterator0.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator0), 79); + if (maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { + $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); + ++index_0; + } + source = getSourceNode(elkedge); + target = getTargetNode_0(elkedge); + enableInsideSelfLoops = $booleanValue(castToBoolean($getProperty_0(source, INSIDE_SELF_LOOPS_ACTIVATE))); + isToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))); + isInsideSelfLoop = enableInsideSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + connectsSiblings = $getParent_2(source) == elkgraph && $getParent_2(source) == $getParent_2(target); + connectsToGraph = ($getParent_2(source) == elkgraph && target == elkgraph) ^ ($getParent_2(target) == elkgraph && source == elkgraph); + isToBeLaidOut && !isInsideSelfLoop && (connectsToGraph || connectsSiblings) && $transformEdge(this$static, elkedge, elkgraph, lgraph); + } + if ($getParent_2(elkgraph)) { + for (elkedge$iterator = new AbstractEList$EIterator($getContainedEdges($getParent_2(elkgraph))); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 79); + source = getSourceNode(elkedge); + if (source == elkgraph && $isSelfloop(elkedge)) { + isInsideSelfLoop = $booleanValue(castToBoolean($getProperty_0(source, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + isInsideSelfLoop && $transformEdge(this$static, elkedge, elkgraph, lgraph); + } + } + } +} + +function $importGraph_1(this$static, elkgraph){ + var elkport, elkport$iterator, graphProperties, topLevelGraph; + topLevelGraph = $createLGraph(elkgraph); + $forEach_3(new StreamImpl(null, (!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , new Spliterators$IteratorSpliterator(elkgraph.ports, 16))), new ElkGraphImporter$lambda$0$Type(topLevelGraph)); + graphProperties = castTo($getProperty(topLevelGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + $checkExternalPorts(elkgraph, graphProperties); + if (graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + for (elkport$iterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { + elkport = castTo($doNext(elkport$iterator), 118); + $transformExternalPort(this$static, elkgraph, topLevelGraph, elkport); + } + } + castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).size_1() != 0 && $calculateMinimumGraphSize(elkgraph, topLevelGraph); + $booleanValue(castToBoolean($getProperty(topLevelGraph, PARTITIONING_ACTIVATE))) && graphProperties.add_2(PARTITIONS); + $hasProperty(topLevelGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(topLevelGraph, SPACING_BASE_VALUE_0)))), topLevelGraph); + maskUndefined($getProperty_0(elkgraph, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$importHierarchicalGraph(this$static, elkgraph, topLevelGraph):$importFlatGraph(this$static, elkgraph, topLevelGraph); + return topLevelGraph; +} + +function $importHierarchicalGraph(this$static, elkgraph, lgraph){ + var elkChildGraphNode, elkChildGraphNode$iterator, elkGraphNode, elkGraphQueue, elkedge, elkedge$iterator, elknode, finalNestedGraph, hasChildren, hasHierarchyHandlingEnabled, hasInsideSelfLoops, index_0, isInsideSelfLoop, isNodeToBeLaidOut, ledge, lnode, nestedGraph, parentElkGraph, parentGraphDirection, parentLGraph, parentLNode, partOfSameLayoutRun, sourceNode, targetNode, usesElkLayered; + elkGraphQueue = new LinkedList; + parentGraphDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); + index_0 = 0; + $addAll(elkGraphQueue, (!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); + while (elkGraphQueue.size_0 != 0) { + elknode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); + (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elknode, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); + isNodeToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elknode, NO_LAYOUT))); + if (isNodeToBeLaidOut) { + hasChildren = (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0; + hasInsideSelfLoops = $hasInsideSelfLoops(elknode); + hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elknode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + usesElkLayered = !$hasProperty_0(elknode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elknode, ALGORITHM)), 'org.eclipse.elk.layered'); + nestedGraph = null; + if (usesElkLayered && hasHierarchyHandlingEnabled && (hasChildren || hasInsideSelfLoops)) { + nestedGraph = $createLGraph(elknode); + $setProperty_0(nestedGraph, DIRECTION, parentGraphDirection); + $hasProperty(nestedGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(nestedGraph, SPACING_BASE_VALUE_0)))), nestedGraph); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0) { + finalNestedGraph = nestedGraph; + $forEach_3(new StreamImpl(null, (!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , new Spliterators$IteratorSpliterator(elknode.ports, 16))), new ElkGraphImporter$lambda$1$Type(finalNestedGraph)); + $calculateMinimumGraphSize(elknode, nestedGraph); + } + } + parentLGraph = lgraph; + parentLNode = castTo($get_10(this$static.nodeAndPortMap, $getParent_2(elknode)), 10); + !!parentLNode && (parentLGraph = parentLNode.nestedGraph); + lnode = $transformNode(this$static, elknode, parentLGraph); + if (nestedGraph) { + lnode.nestedGraph = nestedGraph; + nestedGraph.parentNode = lnode; + $addAll(elkGraphQueue, (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children)); + } + } + } + index_0 = 0; + $addNode_0(elkGraphQueue, elkgraph, elkGraphQueue.tail.prev, elkGraphQueue.tail); + while (elkGraphQueue.size_0 != 0) { + elkGraphNode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); + for (elkedge$iterator = new AbstractEList$EIterator((!elkGraphNode.containedEdges && (elkGraphNode.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkGraphNode, 12, 3)) , elkGraphNode.containedEdges)); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 79); + $checkEdgeValidity(elkedge); + (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); + sourceNode = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); + targetNode = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); + if ($booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(sourceNode, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(targetNode, NO_LAYOUT)))) { + continue; + } + isInsideSelfLoop = $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(sourceNode, INSIDE_SELF_LOOPS_ACTIVATE))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); + parentElkGraph = elkGraphNode; + isInsideSelfLoop || isDescendant_0(targetNode, sourceNode)?(parentElkGraph = sourceNode):isDescendant_0(sourceNode, targetNode) && (parentElkGraph = targetNode); + parentLGraph = lgraph; + parentLNode = castTo($get_10(this$static.nodeAndPortMap, parentElkGraph), 10); + !!parentLNode && (parentLGraph = parentLNode.nestedGraph); + ledge = $transformEdge(this$static, elkedge, parentElkGraph, parentLGraph); + $setProperty_0(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN), $findCoordinateSystemOrigin(this$static, elkedge, elkgraph, lgraph)); + } + hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elkGraphNode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (hasHierarchyHandlingEnabled) { + for (elkChildGraphNode$iterator = new AbstractEList$EIterator((!elkGraphNode.children && (elkGraphNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkGraphNode, 10, 11)) , elkGraphNode.children)); elkChildGraphNode$iterator.cursor != elkChildGraphNode$iterator.this$01_2.size_1();) { + elkChildGraphNode = castTo($doNext(elkChildGraphNode$iterator), 33); + usesElkLayered = !$hasProperty_0(elkChildGraphNode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elkChildGraphNode, ALGORITHM)), 'org.eclipse.elk.layered'); + partOfSameLayoutRun = maskUndefined($getProperty_0(elkChildGraphNode, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN); + usesElkLayered && partOfSameLayoutRun && ($addNode_0(elkGraphQueue, elkChildGraphNode, elkGraphQueue.tail.prev, elkGraphQueue.tail) , true); + } + } + } +} + +function $isConnectedToExternalNodes(elkport){ + var inEdge, inEdge$iterator, outEdge, outEdge$iterator, parent_0, sourceNode, targetNode; + parent_0 = $getParent_3(elkport); + for (outEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outEdge$iterator.cursor != outEdge$iterator.this$01_2.size_1();) { + outEdge = castTo($doNext(outEdge$iterator), 79); + targetNode = connectableShapeToNode(castTo($get_20((!outEdge.targets && (outEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outEdge, 5, 8)) , outEdge.targets), 0), 82)); + if (!isDescendant_0(targetNode, parent_0)) { + return true; + } + } + for (inEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); inEdge$iterator.cursor != inEdge$iterator.this$01_2.size_1();) { + inEdge = castTo($doNext(inEdge$iterator), 79); + sourceNode = connectableShapeToNode(castTo($get_20((!inEdge.sources && (inEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, inEdge, 4, 7)) , inEdge.sources), 0), 82)); + if (!isDescendant_0(sourceNode, parent_0)) { + return true; + } + } + return false; +} + +function $transformEdge(this$static, elkedge, elkparent, lgraph){ + var bendPointsRequired, crossMinStrat, edgeSection, elkSourceNode, elkSourceShape, elkTargetNode, elkTargetShape, elklabel, elklabel$iterator, graphProperties, importedBendpoints, ledge, llabel, nodePlaceStrat, originalBendpoints, point, point$iterator, portType, sourceElem, sourceLNode, sourceLPort, sourcePoint, targetElem, targetLNode, targetLPort, targetPoint; + $checkEdgeValidity(elkedge); + elkSourceShape = castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82); + elkTargetShape = castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82); + elkSourceNode = connectableShapeToNode(elkSourceShape); + elkTargetNode = connectableShapeToNode(elkTargetShape); + edgeSection = (!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections).size_0 == 0?null:castTo($get_20((!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections), 0), 202); + sourceLNode = castTo($get_10(this$static.nodeAndPortMap, elkSourceNode), 10); + targetLNode = castTo($get_10(this$static.nodeAndPortMap, elkTargetNode), 10); + sourceLPort = null; + targetLPort = null; + if (instanceOf(elkSourceShape, 186)) { + sourceElem = castTo($get_10(this$static.nodeAndPortMap, elkSourceShape), 299); + if (instanceOf(sourceElem, 11)) { + sourceLPort = castTo(sourceElem, 11); + } + else if (instanceOf(sourceElem, 10)) { + sourceLNode = castTo(sourceElem, 10); + sourceLPort = castTo($get_11(sourceLNode.ports, 0), 11); + } + } + if (instanceOf(elkTargetShape, 186)) { + targetElem = castTo($get_10(this$static.nodeAndPortMap, elkTargetShape), 299); + if (instanceOf(targetElem, 11)) { + targetLPort = castTo(targetElem, 11); + } + else if (instanceOf(targetElem, 10)) { + targetLNode = castTo(targetElem, 10); + targetLPort = castTo($get_11(targetLNode.ports, 0), 11); + } + } + if (!sourceLNode || !targetLNode) { + throw toJs(new UnsupportedGraphException('The source or the target of edge ' + elkedge + ' could not be found. ' + 'This usually happens when an edge connects a node laid out by ELK Layered to a node in ' + 'another level of hierarchy laid out by either another instance of ELK Layered or another ' + 'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling ' + 'option to INCLUDE_CHILDREN.')); + } + ledge = new LEdge; + $copyProperties(ledge, elkedge); + $setProperty_0(ledge, ($clinit_InternalProperties_1() , ORIGIN_0), elkedge); + $setProperty_0(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); + graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + sourceLNode == targetLNode && graphProperties.add_2(($clinit_GraphProperties() , SELF_LOOPS)); + if (!sourceLPort) { + portType = ($clinit_PortType() , OUTPUT); + sourcePoint = null; + if (!!edgeSection && $isSideFixed(castTo($getProperty(sourceLNode, PORT_CONSTRAINTS_0), 98))) { + sourcePoint = new KVector_1(edgeSection.startX, edgeSection.startY); + toAbsolute(sourcePoint, $getContainingNode(elkedge)); + toRelative(sourcePoint, elkparent); + if (isDescendant_0(elkTargetNode, elkSourceNode)) { + portType = INPUT; + $add_19(sourcePoint, sourceLNode.pos); + } + } + sourceLPort = createPort(sourceLNode, sourcePoint, portType, lgraph); + } + if (!targetLPort) { + portType = ($clinit_PortType() , INPUT); + targetPoint = null; + if (!!edgeSection && $isSideFixed(castTo($getProperty(targetLNode, PORT_CONSTRAINTS_0), 98))) { + targetPoint = new KVector_1(edgeSection.endX, edgeSection.endY); + toAbsolute(targetPoint, $getContainingNode(elkedge)); + toRelative(targetPoint, elkparent); + } + targetLPort = createPort(targetLNode, targetPoint, portType, $getGraph(targetLNode)); + } + $setSource_0(ledge, sourceLPort); + $setTarget_0(ledge, targetLPort); + (sourceLPort.incomingEdges.array.length > 1 || sourceLPort.outgoingEdges.array.length > 1 || targetLPort.incomingEdges.array.length > 1 || targetLPort.outgoingEdges.array.length > 1) && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); + for (elklabel$iterator = new AbstractEList$EIterator((!elkedge.labels && (elkedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkedge, 1, 7)) , elkedge.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { + llabel = $transformLabel(elklabel); + $add_3(ledge.labels, llabel); + switch (castTo($getProperty(llabel, EDGE_LABELS_PLACEMENT), 272).ordinal) { + case 1: + case 2: + graphProperties.add_2(($clinit_GraphProperties() , END_LABELS)); + break; + case 0: + graphProperties.add_2(($clinit_GraphProperties() , CENTER_LABELS)); + $setProperty_0(llabel, EDGE_LABELS_PLACEMENT, ($clinit_EdgeLabelPlacement() , CENTER_5)); + } + } + } + crossMinStrat = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 314); + nodePlaceStrat = castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 315); + bendPointsRequired = crossMinStrat == ($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1) || nodePlaceStrat == ($clinit_NodePlacementStrategy() , INTERACTIVE_4); + if (!!edgeSection && (!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints).size_0 != 0 && bendPointsRequired) { + originalBendpoints = createVectorChain(edgeSection); + importedBendpoints = new KVectorChain; + for (point$iterator = $listIterator_2(originalBendpoints, 0); point$iterator.currentNode != point$iterator.this$01.tail;) { + point = castTo($next_10(point$iterator), 8); + $add_7(importedBendpoints, new KVector_2(point)); + } + $setProperty_0(ledge, ORIGINAL_BENDPOINTS, importedBendpoints); + } + return ledge; +} + +function $transformExternalPort(this$static, elkgraph, lgraph, elkport){ + var dummy, dummyPort, elklabel, elklabel$iterator, elkportPosition, graphSize, insidePart, insidePortLabels, llabel, netFlow, portConstraints, portOffset, portSide; + elkportPosition = new KVector_1(elkport.x_0 + elkport.width_0 / 2, elkport.y_0 + elkport.height / 2); + netFlow = $calculateNetFlow_0(elkport); + portConstraints = castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); + if (!$containsKey_8($getAllProperties_0(elkport), PORT_BORDER_OFFSET)) { + elkport.x_0 == 0 && elkport.y_0 == 0?(portOffset = 0):(portOffset = calcPortOffset_0(elkport, portSide)); + $setProperty_1(elkport, PORT_BORDER_OFFSET, portOffset); + } + graphSize = new KVector_1(elkgraph.width_0, elkgraph.height); + dummy = createExternalPortDummy(elkport, portConstraints, portSide, netFlow, graphSize, elkportPosition, new KVector_1(elkport.width_0, elkport.height), castTo($getProperty(lgraph, DIRECTION), 103), lgraph); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + $setConnectedToExternalNodes(dummyPort, $isConnectedToExternalNodes(elkport)); + $setProperty_0(dummy, PORT_LABELS_PLACEMENT_1, ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0))); + insidePortLabels = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 174).contains(INSIDE_0); + for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { + llabel = $transformLabel(elklabel); + $add_3(dummyPort.labels, llabel); + if (!insidePortLabels) { + insidePart = 0; + isFixed(castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(new KVector_1(elklabel.x_0, elklabel.y_0), new KVector_1(elklabel.width_0, elklabel.height), new KVector_1(elkport.width_0, elkport.height), 0, portSide)); + switch (portSide.ordinal) { + case 2: + case 4: + llabel.size_0.x_0 = insidePart; + break; + case 1: + case 3: + llabel.size_0.y_0 = insidePart; + } + } + } + } + $setProperty_0(dummy, SPACING_LABEL_PORT_HORIZONTAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_HORIZONTAL))); + $setProperty_0(dummy, SPACING_LABEL_PORT_VERTICAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_VERTICAL))); + $setProperty_0(dummy, SPACING_LABEL_LABEL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_LABEL))); + $add_3(lgraph.layerlessNodes, dummy); + $put_6(this$static.nodeAndPortMap, elkport, dummy); +} + +function $transformLabel(elklabel){ + var newLabel; + newLabel = new LLabel_0(elklabel.text_0); + $copyProperties(newLabel, elklabel); + $setProperty_0(newLabel, ($clinit_InternalProperties_1() , ORIGIN_0), elklabel); + newLabel.size_0.x_0 = elklabel.width_0; + newLabel.size_0.y_0 = elklabel.height; + newLabel.pos.x_0 = elklabel.x_0; + newLabel.pos.y_0 = elklabel.y_0; + return newLabel; +} + +function $transformNode(this$static, elknode, lgraph){ + var direction, elklabel, elklabel$iterator, elkport, elkport$iterator, graphProperties, lnode, portConstraints; + lnode = new LNode(lgraph); + $copyProperties(lnode, elknode); + $setProperty_0(lnode, ($clinit_InternalProperties_1() , ORIGIN_0), elknode); + lnode.size_0.x_0 = elknode.width_0; + lnode.size_0.y_0 = elknode.height; + lnode.pos.x_0 = elknode.x_0; + lnode.pos.y_0 = elknode.y_0; + $add_3(lgraph.layerlessNodes, lnode); + $put_6(this$static.nodeAndPortMap, elknode, lnode); + ((!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) && $setProperty_0(lnode, COMPOUND_NODE, ($clinit_Boolean() , true)); + graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + portConstraints = castTo($getProperty(lnode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4)?$setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE):portConstraints != FREE && graphProperties.add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + direction = castTo($getProperty(lgraph, DIRECTION), 103); + for (elkport$iterator = new AbstractEList$EIterator((!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , elknode.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { + elkport = castTo($doNext(elkport$iterator), 118); + $booleanValue(castToBoolean($getProperty_0(elkport, NO_LAYOUT))) || $transformPort(this$static, elkport, lnode, graphProperties, direction, portConstraints); + } + for (elklabel$iterator = new AbstractEList$EIterator((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lnode.labels, $transformLabel(elklabel)); + } + $booleanValue(castToBoolean($getProperty(lnode, COMMENT_BOX))) && graphProperties.add_2(($clinit_GraphProperties() , COMMENTS)); + if ($booleanValue(castToBoolean($getProperty(lnode, HYPERNODE)))) { + graphProperties.add_2(($clinit_GraphProperties() , HYPERNODES)); + graphProperties.add_2(HYPEREDGES); + $setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE); + } + return lnode; +} + +function $transformPort(this$static, elkport, parentLNode, graphProperties, layoutDirection, portConstraints){ + var connectionsToDescendants, elklabel, elklabel$iterator, lport, portPos, portSize; + lport = new LPort; + $copyProperties(lport, elkport); + $setSide(lport, castTo($getProperty_0(elkport, ($clinit_LayeredOptions() , PORT_SIDE)), 61)); + $setProperty_0(lport, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + $setNode(lport, parentLNode); + portSize = lport.size_0; + portSize.x_0 = elkport.width_0; + portSize.y_0 = elkport.height; + portPos = lport.pos; + portPos.x_0 = elkport.x_0; + portPos.y_0 = elkport.y_0; + $put_6(this$static.nodeAndPortMap, elkport, lport); + connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$2$Type), new ElkGraphImporter$0methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$4$Type(elkport)); + connectionsToDescendants || (connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , new Spliterators$IteratorSpliterator(elkport.incomingEdges, 16))), new ElkGraphImporter$lambda$5$Type), new ElkGraphImporter$1methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$7$Type(elkport))); + connectionsToDescendants || (connectionsToDescendants = $anyMatch(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$8$Type)); + $setProperty_0(lport, INSIDE_CONNECTIONS, ($clinit_Boolean() , connectionsToDescendants?true:false)); + initializePort(lport, portConstraints, layoutDirection, castTo($getProperty_0(elkport, PORT_ANCHOR), 8)); + for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { + elklabel = castTo($doNext(elklabel$iterator), 137); + !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lport.labels, $transformLabel(elklabel)); + } + switch (layoutDirection.ordinal) { + case 2: + case 1: + (lport.side == ($clinit_PortSide() , NORTH_3) || lport.side == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + break; + case 4: + case 3: + (lport.side == ($clinit_PortSide() , EAST_2) || lport.side == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); + } + return lport; +} + +function ElkGraphImporter(){ + this.nodeAndPortMap = new HashMap; +} + +function lambda$4_3(elkport_0, targetNode_1){ + return isDescendant_0(targetNode_1, $getParent_3(elkport_0)); +} + +function lambda$7_0(elkport_0, sourceNode_1){ + return isDescendant_0(sourceNode_1, $getParent_3(elkport_0)); +} + +function lambda$8(edge_0){ + return $isSelfloop(edge_0) && $booleanValue(castToBoolean($getProperty_0(edge_0, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_YO)))); +} + +defineClass(1342, 1, {}, ElkGraphImporter); +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter', 1342); +function ElkGraphImporter$0methodref$connectableShapeToNode$Type(){ +} + +defineClass(1346, 1, {}, ElkGraphImporter$0methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_70(arg0){ + return connectableShapeToNode(castTo(arg0, 82)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$0methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/0methodref$connectableShapeToNode$Type', 1346); +function ElkGraphImporter$1methodref$connectableShapeToNode$Type(){ +} + +defineClass(1349, 1, {}, ElkGraphImporter$1methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_71(arg0){ + return connectableShapeToNode(castTo(arg0, 82)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$1methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/1methodref$connectableShapeToNode$Type', 1349); +function ElkGraphImporter$lambda$0$Type(topLevelGraph_1){ + this.topLevelGraph_1 = topLevelGraph_1; +} + +defineClass(1343, 1, $intern_19, ElkGraphImporter$lambda$0$Type); +_.accept = function accept_62(arg0){ + $ensureDefinedPortSide(this.topLevelGraph_1, castTo(arg0, 118)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$0$Type', 1343); +function ElkGraphImporter$lambda$1$Type(finalNestedGraph_1){ + this.finalNestedGraph_1 = finalNestedGraph_1; +} + +defineClass(1344, 1, $intern_19, ElkGraphImporter$lambda$1$Type); +_.accept = function accept_63(arg0){ + $ensureDefinedPortSide(this.finalNestedGraph_1, castTo(arg0, 118)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$1$Type', 1344); +function ElkGraphImporter$lambda$2$Type(){ +} + +defineClass(1345, 1, {}, ElkGraphImporter$lambda$2$Type); +_.apply_0 = function apply_72(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getTargets(castTo(arg0, 79)), 16)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$2$Type', 1345); +function ElkGraphImporter$lambda$4$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1347, 1, $intern_39, ElkGraphImporter$lambda$4$Type); +_.test_0 = function test_24(arg0){ + return lambda$4_3(this.elkport_0, castTo(arg0, 33)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$4$Type', 1347); +function ElkGraphImporter$lambda$5$Type(){ +} + +defineClass(1348, 1, {}, ElkGraphImporter$lambda$5$Type); +_.apply_0 = function apply_73(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getSources(castTo(arg0, 79)), 16)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$5$Type', 1348); +function ElkGraphImporter$lambda$7$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1350, 1, $intern_39, ElkGraphImporter$lambda$7$Type); +_.test_0 = function test_25(arg0){ + return lambda$7_0(this.elkport_0, castTo(arg0, 33)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$7$Type', 1350); +function ElkGraphImporter$lambda$8$Type(){ +} + +defineClass(1351, 1, $intern_39, ElkGraphImporter$lambda$8$Type); +_.test_0 = function test_26(arg0){ + return lambda$8(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$8$Type', 1351); +function $clinit_ElkGraphLayoutTransferrer(){ + $clinit_ElkGraphLayoutTransferrer = emptyMethod; + ZERO_OFFSET = new KVector; +} + +function $applyEdgeLayout(ledge, routing, offset){ + var bendPoints, edgeOffset, elkedge, elkedgeSection, elklabel, junctionPoints, llabel, llabel$iterator, sourcePoint, sourcePort, targetPoint; + elkedge = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , ORIGIN_0)), 79); + if (!elkedge) { + return; + } + bendPoints = ledge.bendPoints; + edgeOffset = new KVector_2(offset); + $add_19(edgeOffset, $calculateHierarchicalOffset(ledge)); + if (isDescendant(ledge.target.owner, ledge.source.owner)) { + sourcePort = ledge.source; + sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.pos, sourcePort.anchor])); + $sub_0(sourcePoint, offset); + } + else { + sourcePoint = $getAbsoluteAnchor(ledge.source); + } + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + targetPoint = $getAbsoluteAnchor(ledge.target); + $getProperty(ledge, TARGET_OFFSET) != null && $add_19(targetPoint, castTo($getProperty(ledge, TARGET_OFFSET), 8)); + $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); + $offset_2(bendPoints, edgeOffset); + elkedgeSection = firstEdgeSection(elkedge, true, true); + $setIncomingShape(elkedgeSection, castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); + $setOutgoingShape(elkedgeSection, castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); + applyVectorChain(bendPoints, elkedgeSection); + for (llabel$iterator = new ArrayList$1(ledge.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator), 70); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $setWidth_0(elklabel, llabel.size_0.x_0); + $setHeight_0(elklabel, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0 + edgeOffset.x_0, llabel.pos.y_0 + edgeOffset.y_0); + $setProperty_1(elklabel, ($clinit_LabelDummySwitcher() , INCLUDE_LABEL), castToBoolean($getProperty(llabel, INCLUDE_LABEL))); + } + junctionPoints = castTo($getProperty(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (junctionPoints) { + $offset_2(junctionPoints, edgeOffset); + $setProperty_1(elkedge, JUNCTION_POINTS, junctionPoints); + } + else { + $setProperty_1(elkedge, JUNCTION_POINTS, null); + } + routing == ($clinit_EdgeRouting() , SPLINES)?$setProperty_1(elkedge, EDGE_ROUTING, SPLINES):$setProperty_1(elkedge, EDGE_ROUTING, null); +} + +function $applyLayout_2(this$static, lgraph){ + var edgeList, elkport, graphOrigin, lPadding, ledge, ledge$iterator, lnode, lnode$iterator, lnode$iterator0, nestedGraph, offset, padding, parentElkNode, parentLNode, port, port$iterator, portPosition, routing, sizeOptions; + graphOrigin = $getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (!instanceOf(graphOrigin, 239)) { + return; + } + parentElkNode = castTo(graphOrigin, 33); + parentLNode = lgraph.parentNode; + offset = new KVector_2(lgraph.offset); + lPadding = lgraph.padding; + offset.x_0 += lPadding.left; + offset.y_0 += lPadding.top_0; + sizeOptions = castTo($getProperty_0(parentElkNode, ($clinit_LayeredOptions() , NODE_SIZE_OPTIONS_1)), 174); + if ($containsEnum(sizeOptions, ($clinit_SizeOptions() , COMPUTE_PADDING))) { + padding = castTo($getProperty_0(parentElkNode, PADDING_1), 116); + $setBottom(padding, lPadding.bottom); + $setTop(padding, lPadding.top_0); + $setLeft(padding, lPadding.left); + $setRight(padding, lPadding.right); + } + edgeList = new ArrayList; + for (lnode$iterator0 = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator0.i < lnode$iterator0.this$01.array.length;) { + lnode = castTo($next_7(lnode$iterator0), 10); + if (instanceOf($getProperty(lnode, ORIGIN_0), 239)) { + $applyNodeLayout(lnode, offset); + } + else if (instanceOf($getProperty(lnode, ORIGIN_0), 186) && !parentLNode) { + elkport = castTo($getProperty(lnode, ORIGIN_0), 118); + portPosition = getExternalPortPosition(lgraph, lnode, elkport.width_0, elkport.height); + $setLocation_1(elkport, portPosition.x_0, portPosition.y_0); + } + for (port$iterator = new ArrayList$1(lnode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$0$Type(lnode)), new ElkGraphLayoutTransferrer$lambda$1$Type(edgeList)); + } + } + if (parentLNode) { + for (port$iterator = new ArrayList$1(parentLNode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode)), new ElkGraphLayoutTransferrer$lambda$3$Type(edgeList)); + } + } + routing = castTo($getProperty_0(parentElkNode, EDGE_ROUTING), 218); + for (ledge$iterator = new ArrayList$1(edgeList); ledge$iterator.i < ledge$iterator.this$01.array.length;) { + ledge = castTo($next_7(ledge$iterator), 17); + $applyEdgeLayout(ledge, routing, offset); + } + $applyParentNodeLayout(lgraph); + for (lnode$iterator = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { + lnode = castTo($next_7(lnode$iterator), 10); + nestedGraph = lnode.nestedGraph; + !!nestedGraph && $applyLayout_2(this$static, nestedGraph); + } +} + +function $applyNodeLayout(lnode, offset){ + var elklabel, elknode, elkport, layerID, llabel, llabel$iterator, llabel$iterator0, lport, lport$iterator, lport$iterator0, nf, nodeHasLabelPlacement, nodeID, origin_0; + elknode = castTo($getProperty(lnode, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); + nodeID = castTo($getProperty(lnode, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_POSITION_ID_0)), 19).value_0; + layerID = castTo($getProperty(lnode, LAYERING_LAYER_ID_0), 19).value_0; + $setProperty_1(elknode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(nodeID)); + $setProperty_1(elknode, LAYERING_LAYER_ID_0, valueOf_4(layerID)); + $setX_2(elknode, lnode.pos.x_0 + offset.x_0); + $setY_3(elknode, lnode.pos.y_0 + offset.y_0); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0 || !!lnode.nestedGraph || maskUndefined($getProperty($getGraph(lnode), NODE_PLACEMENT_STRATEGY_0)) === maskUndefined(($clinit_NodePlacementStrategy() , NETWORK_SIMPLEX_0)) && $isFlexibleSizeWhereSpacePermits(($clinit_NodeFlexibility() , (!lnode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lnode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lnode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lnode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf))) { + $setWidth_0(elknode, lnode.size_0.x_0); + $setHeight_0(elknode, lnode.size_0.y_0); + } + for (lport$iterator0 = new ArrayList$1(lnode.ports); lport$iterator0.i < lport$iterator0.this$01.array.length;) { + lport = castTo($next_7(lport$iterator0), 11); + origin_0 = $getProperty(lport, ORIGIN_0); + if (instanceOf(origin_0, 186)) { + elkport = castTo(origin_0, 118); + $setLocation_1(elkport, lport.pos.x_0, lport.pos.y_0); + $setProperty_1(elkport, PORT_SIDE, lport.side); + } + } + nodeHasLabelPlacement = castTo($getProperty(lnode, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0; + for (llabel$iterator0 = new ArrayList$1(lnode.labels); llabel$iterator0.i < llabel$iterator0.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator0), 70); + if (nodeHasLabelPlacement || castTo($getProperty(llabel, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0) { + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $setDimensions_0(elklabel, llabel.size_0.x_0, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); + } + } + if (!isFixed(castTo($getProperty(lnode, PORT_LABELS_PLACEMENT_1), 21))) { + for (lport$iterator = new ArrayList$1(lnode.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { + lport = castTo($next_7(lport$iterator), 11); + for (llabel$iterator = new ArrayList$1(lport.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator), 70); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $setWidth_0(elklabel, llabel.size_0.x_0); + $setHeight_0(elklabel, llabel.size_0.y_0); + $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); + } + } + } +} + +function $applyParentNodeLayout(lgraph){ + var actualGraphSize, all, elknode, graphProps, sizeConstraintsIncludedPortLabels; + elknode = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); + sizeConstraintsIncludedPortLabels = castTo($getProperty_0(elknode, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS)); + if (!lgraph.parentNode) { + graphProps = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); + actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + if (graphProps.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + $setProperty_1(elknode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); + resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, false, true); + } + else { + $booleanValue(castToBoolean($getProperty_0(elknode, NODE_SIZE_FIXED_GRAPH_SIZE))) || resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, true, true); + } + } + sizeConstraintsIncludedPortLabels?$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, of_1(PORT_LABELS)):$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); +} + +function $calculateHierarchicalOffset(ledge){ + var currentGraph, representingNode, result, targetCoordinateSystem; + targetCoordinateSystem = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN)), 37); + if (targetCoordinateSystem) { + result = new KVector; + currentGraph = $getGraph(ledge.source.owner); + while (currentGraph != targetCoordinateSystem) { + representingNode = currentGraph.parentNode; + currentGraph = $getGraph(representingNode); + $add_18($add_19($add_19(result, representingNode.pos), currentGraph.offset), currentGraph.padding.left, currentGraph.padding.top_0); + } + return result; + } + return ZERO_OFFSET; +} + +function ElkGraphLayoutTransferrer(){ + $clinit_ElkGraphLayoutTransferrer(); +} + +function lambda$0_23(lnode_0, edge_1){ + $clinit_ElkGraphLayoutTransferrer(); + return !isDescendant(edge_1.target.owner, lnode_0); +} + +function lambda$2_3(parentLNode_0, edge_1){ + $clinit_ElkGraphLayoutTransferrer(); + return isDescendant(edge_1.target.owner, parentLNode_0); +} + +defineClass(1278, 1, {}, ElkGraphLayoutTransferrer); +var ZERO_OFFSET; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer', 1278); +function ElkGraphLayoutTransferrer$lambda$0$Type(lnode_0){ + this.lnode_0 = lnode_0; +} + +defineClass(1279, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$0$Type); +_.test_0 = function test_27(arg0){ + return lambda$0_23(this.lnode_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$0$Type', 1279); +function ElkGraphLayoutTransferrer$lambda$1$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1280, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$1$Type); +_.accept = function accept_64(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$1$Type', 1280); +function ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode_0){ + this.parentLNode_0 = parentLNode_0; +} + +defineClass(1281, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$2$Type); +_.test_0 = function test_28(arg0){ + return lambda$2_3(this.parentLNode_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$2$Type', 1281); +function ElkGraphLayoutTransferrer$lambda$3$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1282, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$3$Type); +_.accept = function accept_65(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$3$Type', 1282); +function getIdentifier(element){ + var container, id_0, parentId; + id_0 = element.getIdentifier(); + if (id_0) { + container = element.eContainer_0(); + if (instanceOf(container, 160)) { + parentId = getIdentifier(castTo(container, 160)); + if (parentId != null) { + return parentId + '.' + id_0; + } + } + return id_0; + } + return null; +} + +function getOriginIdentifier(element){ + var origin_0; + origin_0 = $getProperty(element, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 160)) { + return getIdentifier(castTo(origin_0, 160)); + } + return null; +} + +function $process_2(layeredGraph, monitor){ + $begin(monitor, 'Node margin calculation', 1); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new CommentNodeMarginCalculator$lambda$0$Type), new CommentNodeMarginCalculator$lambda$1$Type); + $done_0(monitor); +} + +function $processComments(node){ + var bottomBoxes, bottomWidth, commentBox, commentBox$iterator, commentCommentSpacing, commentNodeSpacing, margin, maxCommentWidth, maxHeight, protrusion, topBoxes, topWidth; + margin = node.margin; + topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); + if (!topBoxes && !bottomBoxes) { + return; + } + commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); + commentNodeSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, SPACING_COMMENT_NODE))); + topWidth = 0; + if (topBoxes) { + maxHeight = 0; + for (commentBox$iterator = topBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { + commentBox = castTo(commentBox$iterator.next_1(), 10); + maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); + topWidth += commentBox.size_0.x_0; + } + topWidth += commentCommentSpacing * (topBoxes.size_1() - 1); + margin.top_0 += maxHeight + commentNodeSpacing; + } + bottomWidth = 0; + if (bottomBoxes) { + maxHeight = 0; + for (commentBox$iterator = bottomBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { + commentBox = castTo(commentBox$iterator.next_1(), 10); + maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); + bottomWidth += commentBox.size_0.x_0; + } + bottomWidth += commentCommentSpacing * (bottomBoxes.size_1() - 1); + margin.bottom += maxHeight + commentNodeSpacing; + } + maxCommentWidth = $wnd.Math.max(topWidth, bottomWidth); + if (maxCommentWidth > node.size_0.x_0) { + protrusion = (maxCommentWidth - node.size_0.x_0) / 2; + margin.left = $wnd.Math.max(margin.left, protrusion); + margin.right = $wnd.Math.max(margin.right, protrusion); + } +} + +function CommentNodeMarginCalculator(){ +} + +defineClass(1485, 1, $intern_105, CommentNodeMarginCalculator); +_.process = function process_1(layeredGraph, monitor){ + $process_2(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator', 1485); +function CommentNodeMarginCalculator$lambda$0$Type(){ +} + +defineClass(1486, 1, {}, CommentNodeMarginCalculator$lambda$0$Type); +_.apply_0 = function apply_74(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$0$Type', 1486); +function CommentNodeMarginCalculator$lambda$1$Type(){ +} + +defineClass(1487, 1, $intern_19, CommentNodeMarginCalculator$lambda$1$Type); +_.accept = function accept_66(arg0){ + $processComments(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$1$Type', 1487); +function $getBoxPort(commentBox){ + var edge, edge$iterator, edge$iterator0, nodePort, port, port$iterator; + nodePort = castTo($getProperty(commentBox, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + for (port$iterator = new ArrayList$1(commentBox.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + $setTarget_0(edge, nodePort); + return port; + } + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $setSource_0(edge, nodePort); + return port; + } + } + return null; +} + +function $process_3(layeredGraph, monitor){ + var bottomBoxes, boxes, layer, layer$iterator, node, node$iterator, topBoxes; + $begin(monitor, 'Comment post-processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + boxes = new ArrayList; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); + if (!!topBoxes || !!bottomBoxes) { + $process_4(node, topBoxes, bottomBoxes); + !!topBoxes && $addAll_2(boxes, topBoxes); + !!bottomBoxes && $addAll_2(boxes, bottomBoxes); + } + } + $addAll_2(layer.nodes, boxes); + } + $done_0(monitor); +} + +function $process_4(node, topBoxes, bottomBoxes){ + var anchorInc, anchorX, baseLine, box, box$iterator, box$iterator0, boxPort, boxesWidth, commentCommentSpacing, margin, maxHeight, nodePort, nodePos, nodeSize, x_0; + nodePos = node.pos; + nodeSize = node.size_0; + margin = node.margin; + commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); + if (topBoxes) { + boxesWidth = commentCommentSpacing * (topBoxes.size_1() - 1); + maxHeight = 0; + for (box$iterator0 = topBoxes.iterator_0(); box$iterator0.hasNext_0();) { + box = castTo(box$iterator0.next_1(), 10); + boxesWidth += box.size_0.x_0; + maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); + } + x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; + baseLine = nodePos.y_0 - margin.top_0 + maxHeight; + anchorInc = nodeSize.x_0 / (topBoxes.size_1() + 1); + anchorX = anchorInc; + for (box$iterator = topBoxes.iterator_0(); box$iterator.hasNext_0();) { + box = castTo(box$iterator.next_1(), 10); + box.pos.x_0 = x_0; + box.pos.y_0 = baseLine - box.size_0.y_0; + x_0 += box.size_0.x_0 + commentCommentSpacing; + boxPort = $getBoxPort(box); + boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; + boxPort.pos.y_0 = box.size_0.y_0; + nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { + nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; + nodePort.pos.y_0 = 0; + $setNode(nodePort, node); + } + anchorX += anchorInc; + } + } + if (bottomBoxes) { + boxesWidth = commentCommentSpacing * (bottomBoxes.size_1() - 1); + maxHeight = 0; + for (box$iterator0 = bottomBoxes.iterator_0(); box$iterator0.hasNext_0();) { + box = castTo(box$iterator0.next_1(), 10); + boxesWidth += box.size_0.x_0; + maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); + } + x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; + baseLine = nodePos.y_0 + nodeSize.y_0 + margin.bottom - maxHeight; + anchorInc = nodeSize.x_0 / (bottomBoxes.size_1() + 1); + anchorX = anchorInc; + for (box$iterator = bottomBoxes.iterator_0(); box$iterator.hasNext_0();) { + box = castTo(box$iterator.next_1(), 10); + box.pos.x_0 = x_0; + box.pos.y_0 = baseLine; + x_0 += box.size_0.x_0 + commentCommentSpacing; + boxPort = $getBoxPort(box); + boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; + boxPort.pos.y_0 = 0; + nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { + nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; + nodePort.pos.y_0 = nodeSize.y_0; + $setNode(nodePort, node); + } + anchorX += anchorInc; + } + } +} + +function CommentPostprocessor(){ +} + +defineClass(1488, 1, $intern_105, CommentPostprocessor); +_.process = function process_2(layeredGraph, monitor){ + $process_3(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPostprocessor', 1488); +function $process_5(layeredGraph, monitor){ + var commentBoxCount, edge, edgeCount, inedge, inedge$iterator, node, nodeIter, oppositePort, outedge, outedge$iterator, port, port$iterator, port$iterator0, re, re$iterator, revEdges; + $begin(monitor, 'Comment pre-processing', 1); + commentBoxCount = 0; + nodeIter = new ArrayList$1(layeredGraph.layerlessNodes); + while (nodeIter.i < nodeIter.this$01.array.length) { + node = castTo($next_7(nodeIter), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + ++commentBoxCount; + edgeCount = 0; + edge = null; + oppositePort = null; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + edgeCount += port.incomingEdges.array.length + port.outgoingEdges.array.length; + if (port.incomingEdges.array.length == 1) { + edge = castTo($get_11(port.incomingEdges, 0), 17); + oppositePort = edge.source; + } + if (port.outgoingEdges.array.length == 1) { + edge = castTo($get_11(port.outgoingEdges, 0), 17); + oppositePort = edge.target; + } + } + if (edgeCount == 1 && oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 1 && !$booleanValue(castToBoolean($getProperty(oppositePort.owner, COMMENT_BOX)))) { + $processBox(node, edge, oppositePort, oppositePort.owner); + $remove_13(nodeIter); + } + else { + revEdges = new ArrayList; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (outedge$iterator = new ArrayList$1(port.outgoingEdges); outedge$iterator.i < outedge$iterator.this$01.array.length;) { + outedge = castTo($next_7(outedge$iterator), 17); + outedge.target.outgoingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = outedge , true); + } + for (inedge$iterator = new ArrayList$1(port.incomingEdges); inedge$iterator.i < inedge$iterator.this$01.array.length;) { + inedge = castTo($next_7(inedge$iterator), 17); + inedge.source.incomingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = inedge , true); + } + } + for (re$iterator = new ArrayList$1(revEdges); re$iterator.i < re$iterator.this$01.array.length;) { + re = castTo($next_7(re$iterator), 17); + $reverse_0(re, true); + } + } + } + } + monitor.recordLogs && $log_2(monitor, 'Found ' + commentBoxCount + ' comment boxes'); + $done_0(monitor); +} + +function $processBox(box, edge, oppositePort, realNode){ + var bottomBoxes, boxList, hasNorth, hasSouth, label_0, label$iterator, labelPos, onlyBottom, onlyTop, port1, port1$iterator, port2, port2$iterator, topBoxes, topFirst; + onlyTop = false; + onlyBottom = false; + if ($isSideFixed(castTo($getProperty(realNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + hasNorth = false; + hasSouth = false; + portLoop: for (port1$iterator = new ArrayList$1(realNode.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_7(port1$iterator), 11); + for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { + port2 = castTo($next_0(port2$iterator), 11); + if (!$booleanValue(castToBoolean($getProperty(port2.owner, COMMENT_BOX)))) { + if (port1.side == ($clinit_PortSide() , NORTH_3)) { + hasNorth = true; + break portLoop; + } + if (port1.side == SOUTH_2) { + hasSouth = true; + break portLoop; + } + } + } + } + onlyTop = hasSouth && !hasNorth; + onlyBottom = hasNorth && !hasSouth; + } + if (!onlyTop && !onlyBottom && realNode.labels.array.length != 0) { + labelPos = 0; + for (label$iterator = new ArrayList$1(realNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelPos += label_0.pos.y_0 + label_0.size_0.y_0 / 2; + } + labelPos /= realNode.labels.array.length; + topFirst = labelPos >= realNode.size_0.y_0 / 2; + } + else { + topFirst = !onlyBottom; + } + if (topFirst) { + topBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); + if (!topBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, TOP_COMMENTS, boxList); + } + else if (onlyTop) { + boxList = topBoxes; + } + else { + bottomBoxes = castTo($getProperty(realNode, BOTTOM_COMMENTS), 15); + if (!bottomBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); + } + else { + topBoxes.size_1() <= bottomBoxes.size_1()?(boxList = topBoxes):(boxList = bottomBoxes); + } + } + } + else { + bottomBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , BOTTOM_COMMENTS)), 15); + if (!bottomBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); + } + else if (onlyBottom) { + boxList = bottomBoxes; + } + else { + topBoxes = castTo($getProperty(realNode, TOP_COMMENTS), 15); + if (!topBoxes) { + boxList = new ArrayList; + $setProperty_0(realNode, TOP_COMMENTS, boxList); + } + else { + bottomBoxes.size_1() <= topBoxes.size_1()?(boxList = bottomBoxes):(boxList = topBoxes); + } + } + } + boxList.add_2(box); + $setProperty_0(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT), oppositePort); + if (edge.target == oppositePort) { + $setTarget_0(edge, null); + oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); + $removeHierarchicalPortDummyNode(oppositePort); + } + else { + $setSource_0(edge, null); + oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); + } + $reset_0(edge.bendPoints); +} + +function $removeHierarchicalPortDummyNode(oppositePort){ + var dummy, layer; + dummy = castTo($getProperty(oppositePort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (dummy) { + layer = dummy.layer; + $remove_12(layer.nodes, dummy); + layer.nodes.array.length == 0 && $remove_12($getGraph(dummy).layers, layer); + } +} + +function CommentPreprocessor(){ +} + +defineClass(1489, 1, $intern_105, CommentPreprocessor); +_.process = function process_3(layeredGraph, monitor){ + $process_5(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPreprocessor', 1489); +function $process_6(graph, progressMonitor){ + var currentNode, currentNode$iterator, layer, layer$iterator, layerIndex, posIndex; + $begin(progressMonitor, 'Constraints Postprocessor', 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + posIndex = 0; + for (currentNode$iterator = new ArrayList$1(layer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_7(currentNode$iterator), 10); + if (currentNode.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + $setProperty_0(currentNode, ($clinit_LayeredOptions() , LAYERING_LAYER_ID_0), valueOf_4(layerIndex)); + $setProperty_0(currentNode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(posIndex)); + ++posIndex; + } + } + ++layerIndex; + } + $done_0(progressMonitor); +} + +function ConstraintsPostprocessor(){ +} + +defineClass(1490, 1, $intern_105, ConstraintsPostprocessor); +_.process = function process_4(graph, progressMonitor){ + $process_6(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ConstraintsPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ConstraintsPostprocessor', 1490); +function $canReverseIncomingEdge(targetNodeLayerConstraint, edge){ + var sourceLayerConstraint, sourceNode; + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { + return false; + } + sourceNode = edge.source.owner; + if (targetNodeLayerConstraint == ($clinit_LayerConstraint() , FIRST)) { + if (sourceNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + return false; + } + } + sourceLayerConstraint = castTo($getProperty(sourceNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (sourceLayerConstraint == FIRST_SEPARATE_0) { + return false; + } + return true; +} + +function $canReverseOutgoingEdge(sourceNodeLayerConstraint, edge){ + var targetLayerConstraint, targetNode; + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { + return false; + } + targetNode = edge.target.owner; + if (sourceNodeLayerConstraint == ($clinit_LayerConstraint() , LAST)) { + if (targetNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + return false; + } + } + targetLayerConstraint = castTo($getProperty(targetNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (targetLayerConstraint == LAST_SEPARATE_0) { + return false; + } + return true; +} + +function $handleInnerNodes(remainingNodes){ + var allPortsReversed, e, e$iterator, e$iterator0, edgeConstraint, layerConstraint, lc, node, node$iterator, port, port$iterator; + for (node$iterator = new ArrayList$1(remainingNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + edgeConstraint = null; + switch (layerConstraint.ordinal) { + case 1: + case 2: + edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); + break; + case 3: + case 4: + edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); + } + if (edgeConstraint) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); + } + else { + if ($isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98)) && node.ports.array.length != 0) { + allPortsReversed = true; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (!(port.side == ($clinit_PortSide() , EAST_2) && port.incomingEdges.array.length - port.outgoingEdges.array.length > 0 || port.side == WEST_2 && port.incomingEdges.array.length - port.outgoingEdges.array.length < 0)) { + allPortsReversed = false; + break; + } + for (e$iterator0 = new ArrayList$1(port.outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + lc = castTo($getProperty(e.target.owner, LAYERING_LAYER_CONSTRAINT_0), 163); + if (lc == ($clinit_LayerConstraint() , LAST) || lc == LAST_SEPARATE_0) { + allPortsReversed = false; + break; + } + } + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + lc = castTo($getProperty(e.source.owner, LAYERING_LAYER_CONSTRAINT_0), 163); + if (lc == ($clinit_LayerConstraint() , FIRST) || lc == FIRST_SEPARATE_0) { + allPortsReversed = false; + break; + } + } + } + allPortsReversed && $reverseEdges(node, layerConstraint, ($clinit_PortType() , UNDEFINED_0)); + } + } + } +} + +function $handleOuterNodes(layeredGraph){ + var edgeConstraint, layerConstraint, node, node$iterator, remainingNodes; + remainingNodes = new ArrayList_0(layeredGraph.layerlessNodes.array.length); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + edgeConstraint = null; + switch (layerConstraint.ordinal) { + case 1: + case 2: + edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); + break; + case 3: + case 4: + edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); + } + if (edgeConstraint) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); + edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); + } + else { + remainingNodes.array[remainingNodes.array.length] = node; + } + } + return remainingNodes; +} + +function $process_7(layeredGraph, monitor){ + var remainingNodes; + $begin(monitor, 'Edge and layer constraint edge reversal', 1); + remainingNodes = $handleOuterNodes(layeredGraph); + $handleInnerNodes(remainingNodes); + $done_0(monitor); +} + +function $reverseEdges(node, nodeLayerConstraint, targetPortType){ + var edge, edge$array, edge$index, edge$max, incoming, outgoing, port, port$array, port$index, port$max; + for (port$array = toPortArray(node.ports) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + if (targetPortType == ($clinit_PortType() , INPUT) || targetPortType == UNDEFINED_0) { + outgoing = toEdgeArray(port.outgoingEdges); + for (edge$array = outgoing , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $canReverseOutgoingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); + } + } + if (targetPortType == OUTPUT || targetPortType == UNDEFINED_0) { + incoming = toEdgeArray(port.incomingEdges); + for (edge$array = incoming , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $canReverseIncomingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); + } + } + } +} + +function EdgeAndLayerConstraintEdgeReverser(){ +} + +defineClass(1491, 1, $intern_105, EdgeAndLayerConstraintEdgeReverser); +_.process = function process_5(layeredGraph, monitor){ + $process_7(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EdgeAndLayerConstraintEdgeReverser_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EdgeAndLayerConstraintEdgeReverser', 1491); +function $process_8(layeredGraph, monitor){ + $begin(monitor, 'End label post-processing', 1); + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPostprocessor$lambda$0$Type), new EndLabelPostprocessor$lambda$1$Type), new EndLabelPostprocessor$lambda$2$Type); + $done_0(monitor); +} + +function $processNode_1(node){ + var endLabelCells, labelCell, labelCell$iterator, labelCellRect, nodePos; + endLabelCells = castTo($getProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0)), 83); + nodePos = node.pos; + for (labelCell$iterator = endLabelCells.values_0().iterator_0(); labelCell$iterator.hasNext_0();) { + labelCell = castTo(labelCell$iterator.next_1(), 306); + labelCellRect = labelCell.cellRectangle; + labelCellRect.x_0 += nodePos.x_0; + labelCellRect.y_0 += nodePos.y_0; + labelCell.horizontalLayoutMode?$applyHorizontalModeLabelLayout(labelCell):$applyVerticalModeLabelLayout(labelCell); + } + $setProperty_0(node, END_LABELS_0, null); +} + +function EndLabelPostprocessor(){ +} + +function lambda$1_8(node_0){ + return node_0.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $hasProperty(node_0, ($clinit_InternalProperties_1() , END_LABELS_0)); +} + +defineClass(1492, 1, $intern_105, EndLabelPostprocessor); +_.process = function process_6(layeredGraph, monitor){ + $process_8(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor', 1492); +function EndLabelPostprocessor$lambda$0$Type(){ +} + +defineClass(1493, 1, {}, EndLabelPostprocessor$lambda$0$Type); +_.apply_0 = function apply_75(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$0$Type', 1493); +function EndLabelPostprocessor$lambda$1$Type(){ +} + +defineClass(1494, 1, $intern_39, EndLabelPostprocessor$lambda$1$Type); +_.test_0 = function test_29(arg0){ + return lambda$1_8(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$1$Type', 1494); +function EndLabelPostprocessor$lambda$2$Type(){ +} + +defineClass(1495, 1, $intern_19, EndLabelPostprocessor$lambda$2$Type); +_.accept = function accept_67(arg0){ + $processNode_1(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$2$Type', 1495); +function $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing){ + var nodeMargin, nodeSize; + nodeSize = node.size_0; + nodeMargin = node.margin; + switch (portSide.ordinal) { + case 1: + return -nodeMargin.top_0 - edgeLabelSpacing; + case 3: + return nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; + case 2: + return nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; + case 4: + return -nodeMargin.left - edgeLabelSpacing; + default:return 0; + } +} + +function $createConfiguredLabelCell(labels, labelLabelSpacing, verticalLayout){ + var label_0, label$iterator, labelCell, labelCellRect, padding, padding0; + if (!labels || labels.array.length == 0) { + return null; + } + labelCell = new LabelCell_1(labelLabelSpacing, !verticalLayout); + for (label$iterator = new ArrayList$1(labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $addLabel(labelCell, ($clinit_LGraphAdapters() , new LGraphAdapters$LLabelAdapter(label_0))); + } + labelCellRect = labelCell.cellRectangle; + labelCellRect.height = (padding0 = labelCell.padding , labelCell.minimumContentAreaSize.y_0 + padding0.top_0 + padding0.bottom); + labelCellRect.width_0 = (padding = labelCell.padding , labelCell.minimumContentAreaSize.x_0 + padding.left + padding.right); + return labelCell; +} + +function $lambda$1(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5, node_3){ + $processNode_2(node_3, edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5); +} + +function $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout){ + var all, port, port$iterator, portSidesWithLabels; + portSidesWithLabels = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (portLabelCells[port.id_0]) { + $placeLabels_0(port, portLabelCells[port.id_0], edgeLabelSpacing); + $add_5(portSidesWithLabels, port.side); + } + } + if (verticalLayout) { + $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , EAST_2), 2 * labelLabelSpacing, edgeLabelSpacing); + $removeLabelOverlaps(node, portLabelCells, WEST_2, 2 * labelLabelSpacing, edgeLabelSpacing); + } + else { + $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , NORTH_3), 2 * labelLabelSpacing, edgeLabelSpacing); + $removeLabelOverlaps(node, portLabelCells, SOUTH_2, 2 * labelLabelSpacing, edgeLabelSpacing); + } +} + +function $placeLabels_0(port, labelCell, edgeLabelSpacing){ + var labelCellRect, nodeMargin, nodeSize, portAnchor, portPos; + labelCellRect = labelCell.cellRectangle; + nodeSize = port.owner.size_0; + nodeMargin = port.owner.margin; + portPos = port.pos; + portAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [portPos, port.anchor])); + switch (port.side.ordinal) { + case 1: + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = -nodeMargin.top_0 - edgeLabelSpacing - labelCellRect.height; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; + } + else { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 2: + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; + } + else { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 3: + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; + } + else { + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); + labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + break; + case 4: + $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); + labelCellRect.x_0 = -nodeMargin.left - edgeLabelSpacing - labelCellRect.width_0; + if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); + labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; + } + else { + $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); + labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; + } + + } +} + +function $portSideToOverlapRemovalDirection(portSide){ + switch (portSide.ordinal) { + case 1: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP; + case 3: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN; + case 2: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , RIGHT_0; + case 4: + return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , LEFT_0; + default:return null; + } +} + +function $process_9(layeredGraph, monitor){ + var edgeLabelSpacing, labelLabelSpacing, verticalLayout; + $begin(monitor, 'End label pre-processing', 1); + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + verticalLayout = $isVertical(castTo($getProperty(layeredGraph, DIRECTION), 103)); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPreprocessor$lambda$0$Type), new EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing, labelLabelSpacing, verticalLayout)); + $done_0(monitor); +} + +function $processNode_2(node, edgeLabelSpacing, labelLabelSpacing, verticalLayout){ + var index_0, port, portCount, portIndex, portLabelCells, portToLabelCellMap; + portCount = node.ports.array.length; + portLabelCells = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit, $intern_93, 306, portCount, 0, 1); + for (portIndex = 0; portIndex < portCount; portIndex++) { + port = castTo($get_11(node.ports, portIndex), 11); + port.id_0 = portIndex; + portLabelCells[portIndex] = $createConfiguredLabelCell(gatherLabels(port), labelLabelSpacing, verticalLayout); + } + $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout); + portToLabelCellMap = new HashMap; + for (index_0 = 0; index_0 < portLabelCells.length; index_0++) { + !!portLabelCells[index_0] && $put_6(portToLabelCellMap, castTo($get_11(node.ports, index_0), 11), portLabelCells[index_0]); + } + if (portToLabelCellMap.hashCodeMap.size_0 + portToLabelCellMap.stringMap.size_0 != 0) { + $setProperty_0(node, ($clinit_InternalProperties_1() , END_LABELS_0), portToLabelCellMap); + $updateNodeMargins(node, portLabelCells); + } +} + +function $removeLabelOverlaps(node, portLabelCells, portSide, labelLabelSpacing, edgeLabelSpacing){ + var labelCellRect, overlapRemover, port, port$iterator; + overlapRemover = $withStartCoordinate($withGap(createForDirection($portSideToOverlapRemovalDirection(portSide)), labelLabelSpacing), $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing)); + for (port$iterator = $getPorts_1(node, portSide).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if (portLabelCells[port.id_0]) { + labelCellRect = portLabelCells[port.id_0].cellRectangle; + $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(labelCellRect, $importRectangle(overlapRemover, labelCellRect))); + } + } + $removeOverlaps_0(overlapRemover); +} + +function $updateNodeMargins(node, labelCells){ + var labelCell, labelCell$array, labelCell$index, labelCell$max, nodeMargin, nodeMarginRectangle, nodeSize; + nodeMargin = node.margin; + nodeSize = node.size_0; + nodeMarginRectangle = new ElkRectangle_0(-nodeMargin.left, -nodeMargin.top_0, nodeMargin.left + nodeSize.x_0 + nodeMargin.right, nodeMargin.top_0 + nodeSize.y_0 + nodeMargin.bottom); + for (labelCell$array = labelCells , labelCell$index = 0 , labelCell$max = labelCell$array.length; labelCell$index < labelCell$max; ++labelCell$index) { + labelCell = labelCell$array[labelCell$index]; + !!labelCell && $union(nodeMarginRectangle, labelCell.cellRectangle); + } + nodeMargin.left = -nodeMarginRectangle.x_0; + nodeMargin.top_0 = -nodeMarginRectangle.y_0; + nodeMargin.right = nodeMarginRectangle.width_0 - nodeMargin.left - nodeSize.x_0; + nodeMargin.bottom = nodeMarginRectangle.height - nodeMargin.top_0 - nodeSize.y_0; +} + +function EndLabelPreprocessor(){ +} + +function gatherLabels(port){ + var dummyNode, dummyPort, dummyPort$iterator, labels, maxEdgeThickness; + labels = new ArrayList; + maxEdgeThickness = gatherLabels_0(port, labels); + dummyNode = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (dummyNode) { + for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { + dummyPort = castTo($next_7(dummyPort$iterator), 11); + maskUndefined($getProperty(dummyPort, ORIGIN_0)) === maskUndefined(port) && (maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, gatherLabels_0(dummyPort, labels))); + } + } + labels.array.length == 0 || $setProperty_0(port, MAX_EDGE_THICKNESS, maxEdgeThickness); + return maxEdgeThickness != -1?labels:null; +} + +function gatherLabels_0(port, targetList){ + var incidentEdge, incidentEdge$iterator, label_0, label$iterator, labels, maxEdgeThickness; + maxEdgeThickness = -1; + labels = new LinkedList; + for (incidentEdge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(incidentEdge$iterator.firstIterator) || $hasNext_3(incidentEdge$iterator.secondIterator);) { + incidentEdge = castTo($hasNext_3(incidentEdge$iterator.firstIterator)?$next_7(incidentEdge$iterator.firstIterator):$next_7(incidentEdge$iterator.secondIterator), 17); + maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, $doubleValue(castToDouble($getProperty(incidentEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0))))); + incidentEdge.source == port?$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$2$Type), new EndLabelPreprocessor$lambda$3$Type(labels)):$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$4$Type), new EndLabelPreprocessor$lambda$5$Type(labels)); + for (label$iterator = $listIterator_2(labels, 0); label$iterator.currentNode != label$iterator.this$01.tail;) { + label_0 = castTo($next_10(label$iterator), 70); + $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, incidentEdge); + } + $addAll_2(targetList, labels); + $reset_0(labels); + } + return maxEdgeThickness; +} + +defineClass(1496, 1, $intern_105, EndLabelPreprocessor); +_.process = function process_7(layeredGraph, monitor){ + $process_9(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor', 1496); +function EndLabelPreprocessor$lambda$0$Type(){ +} + +defineClass(1497, 1, {}, EndLabelPreprocessor$lambda$0$Type); +_.apply_0 = function apply_76(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$0$Type', 1497); +function EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5){ + this.edgeLabelSpacing_1 = edgeLabelSpacing_1; + this.labelLabelSpacing_3 = labelLabelSpacing_3; + this.verticalLayout_5 = verticalLayout_5; +} + +defineClass(1498, 1, $intern_19, EndLabelPreprocessor$lambda$1$Type); +_.accept = function accept_68(arg0){ + $lambda$1(this.edgeLabelSpacing_1, this.labelLabelSpacing_3, this.verticalLayout_5, castTo(arg0, 10)); +} +; +_.edgeLabelSpacing_1 = 0; +_.labelLabelSpacing_3 = 0; +_.verticalLayout_5 = false; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$1$Type', 1498); +function EndLabelPreprocessor$lambda$2$Type(){ +} + +defineClass(1499, 1, $intern_39, EndLabelPreprocessor$lambda$2$Type); +_.test_0 = function test_30(arg0){ + return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$2$Type', 1499); +function EndLabelPreprocessor$lambda$3$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1500, 1, $intern_19, EndLabelPreprocessor$lambda$3$Type); +_.accept = function accept_69(arg0){ + $add_7(this.labels_0, castTo(arg0, 70)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$3$Type', 1500); +function EndLabelPreprocessor$lambda$4$Type(){ +} + +defineClass(1501, 1, $intern_39, EndLabelPreprocessor$lambda$4$Type); +_.test_0 = function test_31(arg0){ + return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$4$Type', 1501); +function EndLabelPreprocessor$lambda$5$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1502, 1, $intern_19, EndLabelPreprocessor$lambda$5$Type); +_.accept = function accept_70(arg0){ + $add_7(this.labels_0, castTo(arg0, 70)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$5$Type', 1502); +function $clinit_EndLabelSorter(){ + $clinit_EndLabelSorter = emptyMethod; + LABEL_GROUP_COMPARATOR = new EndLabelSorter$1; +} + +function $createLabelGroups(portLabelCell){ + var edge, edgeToGroupMap, label_0, label$iterator; + edgeToGroupMap = new HashMap; + for (label$iterator = new ArrayList$1(portLabelCell.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + edge = castTo(label_0.getProperty(($clinit_InternalProperties_1() , END_LABEL_EDGE)), 17); + !!$getEntry_0(edgeToGroupMap.hashCodeMap, edge) || $put_6(edgeToGroupMap, edge, new EndLabelSorter$LabelGroup(edge)); + $add_3(castTo(getEntryValueOrNull($getEntry_0(edgeToGroupMap.hashCodeMap, edge)), 456).labels, label_0); + } + return new ArrayList_1(new AbstractMap$2(edgeToGroupMap)); +} + +function $initialize_2(lGraph){ + var layer, layer$iterator, nextElementID, node, node$iterator, port, port$iterator; + nextElementID = 0; + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nextElementID++; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.id_0 = nextElementID++; + } + } + } +} + +function $needsSorting(port){ + var edgesWithEndLabels, headLabels, inEdge, inEdge$iterator, outEdge, outEdge$iterator, tailLabels; + edgesWithEndLabels = 0; + for (inEdge$iterator = new ArrayList$1(port.incomingEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { + inEdge = castTo($next_7(inEdge$iterator), 17); + headLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(inEdge.labels, 16)), new EndLabelSorter$lambda$3$Type); + headLabels && ++edgesWithEndLabels; + } + for (outEdge$iterator = new ArrayList$1(port.outgoingEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { + outEdge = castTo($next_7(outEdge$iterator), 17); + tailLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(outEdge.labels, 16)), new EndLabelSorter$lambda$4$Type); + tailLabels && ++edgesWithEndLabels; + } + return edgesWithEndLabels >= 2; +} + +function $process_10(layeredGraph, monitor){ + $begin(monitor, 'Sort end labels', 1); + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelSorter$lambda$0$Type), new EndLabelSorter$lambda$1$Type), new EndLabelSorter$lambda$2$Type); + $done_0(monitor); +} + +function $processNode_3(node){ + var initializeMethodCalled, labelCellMap, port, port$iterator; + initializeMethodCalled = false; + if ($hasProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0))) { + labelCellMap = castTo($getProperty(node, END_LABELS_0), 83); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if ($needsSorting(port)) { + if (!initializeMethodCalled) { + $initialize_2($getGraph(node)); + initializeMethodCalled = true; + } + $sort_1(castTo(labelCellMap.get_3(port), 306)); + } + } + } +} + +function $sort_1(portLabelCell){ + var group, group$iterator, labelGroups, portLabelCellLabels; + labelGroups = $createLabelGroups(portLabelCell); + $sort(labelGroups, LABEL_GROUP_COMPARATOR); + portLabelCellLabels = portLabelCell.labels; + portLabelCellLabels.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (group$iterator = new ArrayList$1(labelGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 456); + $addAll_2(portLabelCellLabels, group.labels); + } +} + +function EndLabelSorter(){ + $clinit_EndLabelSorter(); +} + +defineClass(1551, 1, $intern_105, EndLabelSorter); +_.process = function process_8(layeredGraph, monitor){ + $process_10(castTo(layeredGraph, 37), monitor); +} +; +var LABEL_GROUP_COMPARATOR; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter', 1551); +function $compare_11(group1, group2){ + var sourcePortDiff, targetNodeDiff; + sourcePortDiff = compare_5(group1.edge.source.id_0, group2.edge.source.id_0); + if (sourcePortDiff != 0) { + return sourcePortDiff; + } + targetNodeDiff = compare_5(group1.edge.target.owner.id_0, group2.edge.target.owner.id_0); + if (targetNodeDiff != 0) { + return targetNodeDiff; + } + return compare_5(group2.edge.target.id_0, group1.edge.target.id_0); +} + +function EndLabelSorter$1(){ +} + +defineClass(1552, 1, $intern_88, EndLabelSorter$1); +_.compare_1 = function compare_42(group1, group2){ + return $compare_11(castTo(group1, 456), castTo(group2, 456)); +} +; +_.equals_0 = function equals_106(other){ + return this === other; +} +; +_.reversed = function reversed_34(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/1', 1552); +function EndLabelSorter$LabelGroup(edge){ + this.labels = new ArrayList; + $addAll_2(this.labels, this.labels); + this.edge = edge; +} + +defineClass(456, 1, {456:1}, EndLabelSorter$LabelGroup); +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$LabelGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/LabelGroup', 456); +function EndLabelSorter$lambda$0$Type(){ +} + +defineClass(1553, 1, {}, EndLabelSorter$lambda$0$Type); +_.apply_0 = function apply_77(arg0){ + return $clinit_EndLabelSorter() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$0$Type', 1553); +function EndLabelSorter$lambda$1$Type(){ +} + +defineClass(1554, 1, $intern_39, EndLabelSorter$lambda$1$Type); +_.test_0 = function test_32(arg0){ + return $clinit_EndLabelSorter() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$1$Type', 1554); +function EndLabelSorter$lambda$2$Type(){ +} + +defineClass(1555, 1, $intern_19, EndLabelSorter$lambda$2$Type); +_.accept = function accept_71(arg0){ + $processNode_3(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$2$Type', 1555); +function EndLabelSorter$lambda$3$Type(){ +} + +defineClass(1556, 1, $intern_39, EndLabelSorter$lambda$3$Type); +_.test_0 = function test_33(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$3$Type', 1556); +function EndLabelSorter$lambda$4$Type(){ +} + +defineClass(1557, 1, $intern_39, EndLabelSorter$lambda$4$Type); +_.test_0 = function test_34(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$4$Type', 1557); +function $absMin(d1, d2){ + return $wnd.Math.abs(d1) < $wnd.Math.abs(d2)?d1:d2; +} + +function $calculateBezierBendPoints(this$static, edgeChain, survivingEdge){ + var addMidPoint, allCP, currentBendPoints, currentEdge, edge, edgeIterator, halfway, lastCP, northSouthCP, nt, nubSpline, sourcePort, targetPort, y_0, first, second, v, v2, straightenBeginning, iter, last, secondLast, straightenEnding; + if (edgeChain.isEmpty()) { + return; + } + allCP = new KVectorChain; + edge = survivingEdge?survivingEdge:castTo(edgeChain.get_0(0), 17); + sourcePort = edge.source; + $clinit_SplineEdgeRouter(); + nt = sourcePort.owner.type_0; + if (!(nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT)) { + throw toJs(new IllegalArgumentException_0('The target node of the edge must be a normal node or a northSouthPort.')); + } + $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor]))); + if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(sourcePort.side)) { + y_0 = $doubleValue(castToDouble($getProperty(sourcePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); + northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).x_0, y_0); + $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); + } + lastCP = null; + addMidPoint = false; + edgeIterator = edgeChain.iterator_0(); + while (edgeIterator.hasNext_0()) { + currentEdge = castTo(edgeIterator.next_1(), 17); + currentBendPoints = currentEdge.bendPoints; + if (currentBendPoints.size_0 != 0) { + if (addMidPoint) { + halfway = $scale($add_19(lastCP, (checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.header.next_0.value_0, 8))), 0.5); + $addNode_0(allCP, halfway, allCP.tail.prev, allCP.tail); + addMidPoint = false; + } + else { + addMidPoint = true; + } + lastCP = $clone_0((checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.tail.prev.value_0, 8))); + $addAll(allCP, currentBendPoints); + $reset_0(currentBendPoints); + } + } + targetPort = edge.target; + if (SIDES_NORTH_SOUTH.contains(targetPort.side)) { + y_0 = $doubleValue(castToDouble($getProperty(targetPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); + northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).x_0, y_0); + $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); + } + $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor]))); + this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , CONSERVATIVE) && (first = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.header.next_0.value_0, 8)) , second = castTo($get_7(allCP, 1), 8) , v = new KVector_0(portSideToDirection(sourcePort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(second.x_0, second.y_0), first) , straightenBeginning = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenBeginning, first) , iter = $listIterator_2(allCP, 1) , $add_8(iter, straightenBeginning) , last = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.tail.prev.value_0, 8)) , secondLast = castTo($get_7(allCP, allCP.size_0 - 2), 8) , v = new KVector_0(portSideToDirection(targetPort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(secondLast.x_0, secondLast.y_0), last) , straightenEnding = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenEnding, last) , $add_0(allCP, allCP.size_0 - 1, straightenEnding) , undefined); + nubSpline = new NubSpline(allCP); + $addAll(edge.bendPoints, $getBezierCP(nubSpline)); +} + +function $calculateControlPoints(this$static, segment){ + var edge, edge$iterator, ei, sloppy, xStartPos, xEndPos, halfway; + if (segment.handled) { + return; + } + segment.handled = true; + for (edge$iterator = segment.edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 17); + if (segment.isStraight && segment.edges.map_0.size_1() <= 1) { + xStartPos = segment.boundingBox.x_0; + xEndPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; + halfway = new KVector_1(xStartPos + (xEndPos - xStartPos) / 2, segment.centerControlPointY); + $add_7(castTo(segment.edges.map_0.keySet_0().iterator_0().next_1(), 17).bendPoints, halfway); + continue; + } + ei = castTo($get_10(segment.edgeInformation, edge), 459); + if (ei.invertedLeft || ei.invertedRight) { + $calculateControlPointsInvertedEdge(this$static, edge, segment); + continue; + } + sloppy = this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , SLOPPY) && (ei.normalSourceNode || ei.normalTargetNode) && $segmentAllowsSloppyRouting(this$static, segment) && segment.edges.map_0.size_1() <= 1; + sloppy?$calculateControlPointsSloppy(edge, segment):$calculateControlPointsConservative(this$static, edge, segment); + } + segment.inverseOrder && $forEach_0(segment.edges, new FinalSplineBendpointsCalculator$lambda$5$Type); +} + +function $calculateControlPointsConservative(this$static, edge, containingSegment){ + var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); + targetStraightCP = new KVector_1(endXPos, yTargetAnchor); + centerXPos = startXPos; + containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); + centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + isHyperedge = containingSegment.edges.map_0.size_1() > 1; + if (isHyperedge) { + center = new KVector_1(centerXPos, containingSegment.centerControlPointY); + $add_7(edge.bendPoints, center); + } + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $calculateControlPointsInvertedEdge(this$static, edge, containingSegment){ + var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + ei.invertedLeft?(sourceStraightCP = new KVector_1(endXPos, ySourceAnchor)):(sourceStraightCP = new KVector_1(startXPos, ySourceAnchor)); + ei.invertedRight?(targetStraightCP = new KVector_1(startXPos, yTargetAnchor)):(targetStraightCP = new KVector_1(endXPos, yTargetAnchor)); + centerXPos = startXPos; + containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); + centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + isHyperedge = containingSegment.edges.map_0.size_1() > 1; + if (isHyperedge) { + center = new KVector_1(centerXPos, containingSegment.centerControlPointY); + $add_7(edge.bendPoints, center); + } + $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $calculateControlPointsSloppy(edge, containingSegment){ + var approx, box, centerXPos, centerYPos, edgePointsDownwards, ei, endXPos, needToCheckSrc, needToCheckTgt, neighbor, neighborIndex, shortCutSource, shortCutTarget, sourceStraightCP, sourceVerticalCP, src_0, startXPos, targetStraightCP, targetVerticalCP, tgt, v1, v2, v3, ySourceAnchor, yTargetAnchor; + ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); + startXPos = containingSegment.boundingBox.x_0; + endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; + ySourceAnchor = ei.startY; + yTargetAnchor = ei.endY; + edgePointsDownwards = ySourceAnchor < yTargetAnchor; + sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); + targetStraightCP = new KVector_1(endXPos, yTargetAnchor); + centerXPos = (startXPos + endXPos) / 2; + sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); + targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); + centerYPos = $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor); + v1 = $getAbsoluteAnchor(containingSegment.sourcePort); + v2 = new KVector_1(centerXPos, centerYPos); + v3 = $getAbsoluteAnchor(containingSegment.targetPort); + approx = approximateBezierSegment(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [v1, v2, v3])); + shortCutSource = false; + src_0 = containingSegment.sourcePort.owner; + if (!!src_0 && !!src_0.layer && ei.normalSourceNode) { + needToCheckSrc = edgePointsDownwards && src_0.id_0 < src_0.layer.nodes.array.length - 1 || !edgePointsDownwards && src_0.id_0 > 0; + if (needToCheckSrc) { + if (needToCheckSrc) { + neighborIndex = src_0.id_0; + edgePointsDownwards?++neighborIndex:--neighborIndex; + neighbor = castTo($get_11(src_0.layer.nodes, neighborIndex), 10); + box = $nodeToBoundingBox(neighbor); + shortCutSource = !(intersects_0(box, v1, approx[0]) || contains_50(box, v1, approx[0])); + } + } + else { + shortCutSource = true; + } + } + shortCutTarget = false; + tgt = containingSegment.targetPort.owner; + if (!!tgt && !!tgt.layer && ei.normalTargetNode) { + needToCheckTgt = edgePointsDownwards && tgt.id_0 > 0 || !edgePointsDownwards && tgt.id_0 < tgt.layer.nodes.array.length - 1; + if (needToCheckTgt) { + neighborIndex = tgt.id_0; + edgePointsDownwards?--neighborIndex:++neighborIndex; + neighbor = castTo($get_11(tgt.layer.nodes, neighborIndex), 10); + box = $nodeToBoundingBox(neighbor); + shortCutTarget = !(intersects_0(box, approx[0], v3) || contains_50(box, approx[0], v3)); + } + else { + shortCutTarget = true; + } + } + shortCutSource && shortCutTarget && $add_7(edge.bendPoints, v2); + shortCutSource || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); + shortCutTarget || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); +} + +function $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor){ + var centerYPos, degreeDiff, indegree, outdegree, port, port$iterator; + indegree = 0; + outdegree = 0; + if (edge.source) { + for (port$iterator = new ArrayList$1(edge.target.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + indegree += port.incomingEdges.array.length; + } + } + else { + indegree = 1; + } + if (edge.target) { + for (port$iterator = new ArrayList$1(edge.source.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + outdegree += port.outgoingEdges.array.length; + } + } + else { + outdegree = 1; + } + degreeDiff = round_int(signum(outdegree - indegree)); + centerYPos = (yTargetAnchor + ySourceAnchor) / 2 + (yTargetAnchor - ySourceAnchor) * (0.4 * degreeDiff); + return centerYPos; +} + +function $indexNodesPerLayer(graph){ + var index_0, l, l$iterator, n, n$iterator; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + } + } +} + +function $nodeToBoundingBox(node){ + var m, pos, size_0; + pos = node.pos; + size_0 = node.size_0; + m = node.margin; + return new ElkRectangle_0(pos.x_0 - m.left, pos.y_0 - m.top_0, size_0.x_0 + (m.left + m.right), size_0.y_0 + (m.top_0 + m.bottom)); +} + +function $process_11(this$static, graph){ + var e, e$iterator, e$iterator0, edgeChain, spline, startEdges, survivingEdge; + this$static.edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); + this$static.edgeNodeSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + this$static.splineRoutingMode = castTo($getProperty(graph, EDGE_ROUTING_SPLINES_MODE_0), 336); + this$static.compactionStrategy = castTo($getProperty(graph, COMPACTION_POST_COMPACTION_STRATEGY_0), 275); + $indexNodesPerLayer(graph); + startEdges = castTo($collect_1($filter($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new FinalSplineBendpointsCalculator$lambda$0$Type), new FinalSplineBendpointsCalculator$lambda$1$Type), new FinalSplineBendpointsCalculator$lambda$2$Type), new FinalSplineBendpointsCalculator$lambda$3$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + for (e$iterator0 = startEdges.iterator_0(); e$iterator0.hasNext_0();) { + e = castTo(e$iterator0.next_1(), 17); + spline = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); + spline.forEach_0(new FinalSplineBendpointsCalculator$lambda$4$Type(this$static)); + $setProperty_0(e, SPLINE_ROUTE_START, null); + } + for (e$iterator = startEdges.iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + survivingEdge = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_SURVIVING_EDGE)), 17); + edgeChain = castTo($getProperty(e, SPLINE_EDGE_CHAIN), 15); + $calculateBezierBendPoints(this$static, edgeChain, survivingEdge); + $setProperty_0(e, SPLINE_EDGE_CHAIN, null); + } +} + +function $segmentAllowsSloppyRouting(this$static, segment){ + var endXPos, n, nodeSegmentDistance, startXPos, t; + if (this$static.compactionStrategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return true; + } + startXPos = segment.boundingBox.x_0; + endXPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; + if (segment.initialSegment) { + n = segment.sourceNode; + t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; + nodeSegmentDistance = startXPos - (n.pos.x_0 + n.size_0.x_0); + if (nodeSegmentDistance > t) { + return false; + } + } + if (segment.lastSegment) { + n = segment.targetNode; + t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; + nodeSegmentDistance = n.pos.x_0 - endXPos; + if (nodeSegmentDistance > t) { + return false; + } + } + return true; +} + +function FinalSplineBendpointsCalculator(){ +} + +defineClass(1503, 1, $intern_105, FinalSplineBendpointsCalculator); +_.process = function process_9(graph, progressMonitor){ + $process_11(this, castTo(graph, 37)); +} +; +_.edgeEdgeSpacing = 0; +_.edgeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator', 1503); +function FinalSplineBendpointsCalculator$lambda$0$Type(){ +} + +defineClass(1504, 1, {}, FinalSplineBendpointsCalculator$lambda$0$Type); +_.apply_0 = function apply_78(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$0$Type', 1504); +function FinalSplineBendpointsCalculator$lambda$1$Type(){ +} + +defineClass(1505, 1, {}, FinalSplineBendpointsCalculator$lambda$1$Type); +_.apply_0 = function apply_79(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$1$Type', 1505); +function FinalSplineBendpointsCalculator$lambda$2$Type(){ +} + +defineClass(1506, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$2$Type); +_.test_0 = function test_35(arg0){ + return !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$2$Type', 1506); +function FinalSplineBendpointsCalculator$lambda$3$Type(){ +} + +defineClass(1507, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$3$Type); +_.test_0 = function test_36(arg0){ + return $hasProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$3$Type', 1507); +function FinalSplineBendpointsCalculator$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1508, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$4$Type); +_.accept = function accept_72(arg0){ + $calculateControlPoints(this.$$outer_0, castTo(arg0, 128)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$4$Type', 1508); +function FinalSplineBendpointsCalculator$lambda$5$Type(){ +} + +defineClass(1509, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$5$Type); +_.accept = function accept_73(arg0){ + reverse_2(castTo(arg0, 17).bendPoints); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$5$Type', 1509); +function $getMirroredPortSideX(side){ + switch (side.ordinal) { + case 2: + return $clinit_PortSide() , WEST_2; + case 4: + return $clinit_PortSide() , EAST_2; + default:return side; + } +} + +function $getMirroredPortSideY(side){ + switch (side.ordinal) { + case 1: + return $clinit_PortSide() , SOUTH_2; + case 3: + return $clinit_PortSide() , NORTH_3; + default:return side; + } +} + +function $mirrorAllX(layeredGraph, nodes){ + $mirrorX(nodes, layeredGraph); + $mirrorX_1(layeredGraph.padding); + $mirrorX_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); +} + +function $mirrorAllY(layeredGraph, nodes){ + $mirrorY(nodes, layeredGraph); + $mirrorY_1(layeredGraph.padding); + $mirrorY_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); +} + +function $mirrorInLayerConstraintY(node){ + switch (castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303).ordinal) { + case 1: + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + break; + case 2: + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + } +} + +function $mirrorLayerConstraintX(node){ + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 1: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); + break; + case 2: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); + break; + case 3: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); + break; + case 4: + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); + } +} + +function $mirrorNodeLabelPlacementX(shape_0){ + var oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.contains(($clinit_NodeLabelPlacement() , H_LEFT_0))) { + oldPlacement.remove_1(H_LEFT_0); + oldPlacement.add_2(H_RIGHT_0); + } + else if (oldPlacement.contains(H_RIGHT_0)) { + oldPlacement.remove_1(H_RIGHT_0); + oldPlacement.add_2(H_LEFT_0); + } +} + +function $mirrorNodeLabelPlacementY(shape_0){ + var oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.contains(($clinit_NodeLabelPlacement() , V_TOP_0))) { + oldPlacement.remove_1(V_TOP_0); + oldPlacement.add_2(V_BOTTOM_0); + } + else if (oldPlacement.contains(V_BOTTOM_0)) { + oldPlacement.remove_1(V_BOTTOM_0); + oldPlacement.add_2(V_TOP_0); + } +} + +function $mirrorX(nodes, graph){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; + offset = 0; + if (graph.size_0.x_0 == 0) { + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + offset = $wnd.Math.max(offset, node.pos.x_0 + node.size_0.x_0 + node.margin.right); + } + } + else { + offset = graph.size_0.x_0 - graph.offset.x_0; + } + offset -= graph.offset.x_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $mirrorX_0(node.pos, offset - node.size_0.x_0); + $mirrorX_1(node.padding); + $mirrorNodeLabelPlacementX(node); + (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorX_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.x_0); + switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { + case 1: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); + break; + case 2: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); + } + nodeSize = node.size_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $mirrorX_0(port.pos, nodeSize.x_0 - port.size_0.x_0); + $mirrorX_0(port.anchor, port.size_0.x_0); + $setSide(port, $getMirroredPortSideX(port.side)); + index_0 = castTo($getProperty(port, PORT_INDEX), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + bendPoint.x_0 = offset - bendPoint.x_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + jp.x_0 = offset - jp.x_0; + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator0), 70); + $mirrorX_0(label_0.pos, offset - label_0.size_0.x_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator1), 70); + $mirrorX_0(label_0.pos, port.size_0.x_0 - label_0.size_0.x_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideX(castTo($getProperty(node, EXT_PORT_SIDE), 61))); + $mirrorLayerConstraintX(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $mirrorNodeLabelPlacementX(label_0); + $mirrorX_0(label_0.pos, nodeSize.x_0 - label_0.size_0.x_0); + } + } +} + +function $mirrorX_0(v, offset){ + v.x_0 = offset - v.x_0; +} + +function $mirrorX_1(spacing){ + var oldLeft, oldRight; + oldLeft = spacing.left; + oldRight = spacing.right; + spacing.left = oldRight; + spacing.right = oldLeft; +} + +function $mirrorY(nodes, graph){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; + offset = 0; + if (graph.size_0.y_0 == 0) { + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + offset = $wnd.Math.max(offset, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); + } + } + else { + offset = graph.size_0.y_0 - graph.offset.y_0; + } + offset -= graph.offset.y_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $mirrorY_0(node.pos, offset - node.size_0.y_0); + $mirrorY_1(node.padding); + $mirrorNodeLabelPlacementY(node); + (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorY_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.y_0); + switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { + case 3: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); + break; + case 4: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); + } + nodeSize = node.size_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $mirrorY_0(port.pos, nodeSize.y_0 - port.size_0.y_0); + $mirrorY_0(port.anchor, port.size_0.y_0); + $setSide(port, $getMirroredPortSideY(port.side)); + index_0 = castTo($getProperty(port, PORT_INDEX), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + bendPoint.y_0 = offset - bendPoint.y_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + jp.y_0 = offset - jp.y_0; + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator0), 70); + $mirrorY_0(label_0.pos, offset - label_0.size_0.y_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator1), 70); + $mirrorY_0(label_0.pos, port.size_0.y_0 - label_0.size_0.y_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideY(castTo($getProperty(node, EXT_PORT_SIDE), 61))); + $mirrorInLayerConstraintY(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $mirrorNodeLabelPlacementY(label_0); + $mirrorY_0(label_0.pos, nodeSize.y_0 - label_0.size_0.y_0); + } + } +} + +function $mirrorY_0(v, offset){ + v.y_0 = offset - v.y_0; +} + +function $mirrorY_1(spacing){ + var oldBottom, oldTop; + oldTop = spacing.top_0; + oldBottom = spacing.bottom; + spacing.top_0 = oldBottom; + spacing.bottom = oldTop; +} + +function $process_12(this$static, layeredGraph, monitor){ + var congruency, layer, layer$iterator, nodes; + $begin(monitor, 'Graph transformation (' + this$static.mode + ')', 1); + nodes = newArrayList(layeredGraph.layerlessNodes); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(nodes, layer.nodes); + } + congruency = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , DIRECTION_CONGRUENCY_0)), 419); + if (congruency == ($clinit_DirectionCongruency() , READING_DIRECTION)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + break; + case 3: + $transposeAll(layeredGraph, nodes); + break; + case 4: + if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { + $transposeAll(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + } + else { + $mirrorAllY(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + } + + } + } + else { + if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + break; + case 3: + $transposeAll(layeredGraph, nodes); + $mirrorAllX(layeredGraph, nodes); + break; + case 4: + $mirrorAllX(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + } + } + else { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { + case 2: + $mirrorAllX(layeredGraph, nodes); + $mirrorAllY(layeredGraph, nodes); + break; + case 3: + $mirrorAllX(layeredGraph, nodes); + $transposeAll(layeredGraph, nodes); + break; + case 4: + $transposeAll(layeredGraph, nodes); + $mirrorAllX(layeredGraph, nodes); + } + } + } + $done_0(monitor); +} + +function $transpose(nodes){ + var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, port, port$iterator; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $transpose_0(node.pos); + $transpose_0(node.size_0); + $transpose_1(node.padding); + $transposeNodeLabelPlacement(node); + $transposeProperties(node); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $transpose_0(port.pos); + $transpose_0(port.anchor); + $transpose_0(port.size_0); + $setSide(port, $transposePortSide(port.side)); + index_0 = castTo($getProperty(port, ($clinit_LayeredOptions() , PORT_INDEX)), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + $transpose_0(bendPoint); + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + $transpose_0(jp); + } + } + for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator0), 70); + $transpose_0(label_0.pos); + $transpose_0(label_0.size_0); + } + } + for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator1), 70); + $transpose_0(label_0.pos); + $transpose_0(label_0.size_0); + } + } + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $transposePortSide(castTo($getProperty(node, EXT_PORT_SIDE), 61))); + $transposeLayerConstraint(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $transposeNodeLabelPlacement(label_0); + $transpose_0(label_0.size_0); + $transpose_0(label_0.pos); + } + } +} + +function $transpose_0(v){ + var temp; + temp = v.x_0; + v.x_0 = v.y_0; + v.y_0 = temp; +} + +function $transpose_1(spacing){ + var oldBottom, oldLeft, oldRight, oldTop; + oldTop = spacing.top_0; + oldBottom = spacing.bottom; + oldLeft = spacing.left; + oldRight = spacing.right; + spacing.top_0 = oldLeft; + spacing.bottom = oldRight; + spacing.left = oldTop; + spacing.right = oldBottom; +} + +function $transposeAll(layeredGraph, nodes){ + var oldSide; + $transpose(nodes); + oldSide = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); + !!oldSide && $setProperty_0(layeredGraph, EDGE_LABELS_SIDE_SELECTION_0, $transpose_2(oldSide)); + $transpose_0(layeredGraph.offset); + $transpose_0(layeredGraph.size_0); + $transpose_1(layeredGraph.padding); + $transpose_1(castTo($getProperty(layeredGraph, NODE_LABELS_PADDING), 207)); +} + +function $transposeLayerConstraint(node){ + var inLayerConstraint, layerConstraint; + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + inLayerConstraint = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); + if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); + } + else if (layerConstraint == LAST_SEPARATE_0) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); + $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); + } + else if (inLayerConstraint == ($clinit_InLayerConstraint() , TOP_1)) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, FIRST_SEPARATE_0); + $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); + } + else if (inLayerConstraint == BOTTOM_0) { + $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, LAST_SEPARATE_0); + $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); + } +} + +function $transposeNodeLabelPlacement(shape_0){ + var all, newPlacement, oldPlacement; + if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { + return; + } + oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); + if (oldPlacement.isEmpty()) { + return; + } + newPlacement = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + oldPlacement.contains(($clinit_NodeLabelPlacement() , INSIDE))?$add_5(newPlacement, INSIDE):$add_5(newPlacement, OUTSIDE); + oldPlacement.contains(H_PRIORITY) || $add_5(newPlacement, H_PRIORITY); + oldPlacement.contains(H_LEFT_0)?$add_5(newPlacement, V_TOP_0):oldPlacement.contains(H_CENTER_0)?$add_5(newPlacement, V_CENTER_0):oldPlacement.contains(H_RIGHT_0) && $add_5(newPlacement, V_BOTTOM_0); + oldPlacement.contains(V_TOP_0)?$add_5(newPlacement, H_LEFT_0):oldPlacement.contains(V_CENTER_0)?$add_5(newPlacement, H_CENTER_0):oldPlacement.contains(V_BOTTOM_0) && $add_5(newPlacement, H_RIGHT_0); + $setProperty_0(shape_0, NODE_LABELS_PLACEMENT_1, newPlacement); +} + +function $transposePortSide(side){ + switch (side.ordinal) { + case 1: + return $clinit_PortSide() , WEST_2; + case 4: + return $clinit_PortSide() , NORTH_3; + case 3: + return $clinit_PortSide() , EAST_2; + case 2: + return $clinit_PortSide() , SOUTH_2; + default:return $clinit_PortSide() , UNDEFINED_5; + } +} + +function $transposeProperties(node){ + var minSize, pos, tmp; + minSize = castTo($getProperty(node, ($clinit_LayeredOptions() , NODE_SIZE_MINIMUM_0)), 8); + $setProperty_0(node, NODE_SIZE_MINIMUM_0, new KVector_1(minSize.y_0, minSize.x_0)); + switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { + case 1: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); + break; + case 2: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); + break; + case 3: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); + break; + case 4: + $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); + } + if ((!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(POSITION)) { + pos = castTo($getProperty(node, POSITION), 8); + tmp = pos.x_0; + pos.x_0 = pos.y_0; + pos.y_0 = tmp; + } +} + +function GraphTransformer(themode){ + this.mode = themode; +} + +defineClass(792, 1, $intern_105, GraphTransformer); +_.process = function process_10(layeredGraph, monitor){ + $process_12(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer', 792); +function $clinit_GraphTransformer$Mode(){ + $clinit_GraphTransformer$Mode = emptyMethod; + TO_INTERNAL_LTR = new GraphTransformer$Mode('TO_INTERNAL_LTR', 0); + TO_INPUT_DIRECTION = new GraphTransformer$Mode('TO_INPUT_DIRECTION', 1); +} + +function GraphTransformer$Mode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_31(name_0){ + $clinit_GraphTransformer$Mode(); + return valueOf(($clinit_GraphTransformer$Mode$Map() , $MAP_19), name_0); +} + +function values_37(){ + $clinit_GraphTransformer$Mode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]); +} + +defineClass(511, 22, {3:1, 35:1, 22:1, 511:1}, GraphTransformer$Mode); +var TO_INPUT_DIRECTION, TO_INTERNAL_LTR; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer/Mode', 511, Ljava_lang_Enum_2_classLit, values_37, valueOf_31); +function $clinit_GraphTransformer$Mode$Map(){ + $clinit_GraphTransformer$Mode$Map = emptyMethod; + $MAP_19 = createValueOfMap(($clinit_GraphTransformer$Mode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]))); +} + +var $MAP_19; +function $graphLayoutToNode(node, lgraph){ + var actualGraphSize, childNode, childNode$iterator, origin_0, port, portPosition; + for (childNode$iterator = new ArrayList$1(lgraph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { + childNode = castTo($next_7(childNode$iterator), 10); + origin_0 = $getProperty(childNode, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 11)) { + port = castTo(origin_0, 11); + portPosition = getExternalPortPosition(lgraph, childNode, port.size_0.x_0, port.size_0.y_0); + port.pos.x_0 = portPosition.x_0; + port.pos.y_0 = portPosition.y_0; + $setSide(port, castTo($getProperty(childNode, EXT_PORT_SIDE), 61)); + } + } + actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + $setProperty_0(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + castTo($getProperty($getGraph(node), GRAPH_PROPERTIES), 21).add_2(NON_FREE_PORTS); + resizeNode(node, actualGraphSize, false); + } + else { + resizeNode(node, actualGraphSize, true); + } +} + +function $process_13(graph, progressMonitor){ + var layer, layer$iterator, node, node$iterator; + $begin(progressMonitor, 'Resize child graph to fit parent.', 1); + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(graph.layerlessNodes, layer.nodes); + layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } + graph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $resizeGraph_0(graph); + !!graph.parentNode && $graphLayoutToNode(graph.parentNode, graph); + $done_0(progressMonitor); +} + +function $resizeGraph_0(lgraph){ + var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); + sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); + calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); + adjustedSize = new KVector_2(calculatedSize); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); + adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); + } + $resizeGraphNoReallyIMeanIt_0(lgraph, calculatedSize, adjustedSize); +} + +function $resizeGraphNoReallyIMeanIt_0(lgraph, oldSize, newSize){ + var contentAlignment, extPortSide, node, node$iterator, padding; + contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); + if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); + extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); + } + } + } + padding = lgraph.padding; + lgraph.size_0.x_0 = newSize.x_0 - padding.left - padding.right; + lgraph.size_0.y_0 = newSize.y_0 - padding.top_0 - padding.bottom; +} + +function HierarchicalNodeResizingProcessor(){ +} + +defineClass(1510, 1, $intern_105, HierarchicalNodeResizingProcessor); +_.process = function process_11(graph, progressMonitor){ + $process_13(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalNodeResizingProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalNodeResizingProcessor', 1510); +function $createDummy(layeredGraph, originalDummy){ + var inputPort, newDummy, outputPort; + newDummy = new LNode(layeredGraph); + $copyProperties(newDummy, originalDummy); + $setProperty_0(newDummy, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY), originalDummy); + $setProperty_0(newDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(newDummy, ALIGNMENT, ($clinit_Alignment() , CENTER_4)); + $setType(newDummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); + inputPort = new LPort; + $setNode(inputPort, newDummy); + $setSide(inputPort, ($clinit_PortSide() , WEST_2)); + outputPort = new LPort; + $setNode(outputPort, newDummy); + $setSide(outputPort, EAST_2); + return newDummy; +} + +function $isNorthernOrSouthernDummy(node){ + var nodeType, portSide; + nodeType = node.type_0; + if (nodeType == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + portSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + return portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2; + } + return false; +} + +function $process_14(layeredGraph, monitor){ + $begin(monitor, 'Hierarchical port constraint processing', 1); + $processEasternAndWesternPortDummies(layeredGraph); + $processNorthernAndSouthernPortDummies(layeredGraph); + $done_0(monitor); +} + +function $processEasternAndWesternPortDummies(layeredGraph){ + var layers; + if (!$isOrderFixed(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + return; + } + layers = layeredGraph.layers; + $processEasternAndWesternPortDummies_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29))); + $processEasternAndWesternPortDummies_0(castTo($get_11(layers, layers.array.length - 1), 29)); +} + +function $processEasternAndWesternPortDummies_0(layer){ + var externalPortSide, lastHierarchicalDummy, node, node$array, node$index, node$max, nodes; + nodes = toNodeArray(layer.nodes); + sort_5(nodes, new HierarchicalPortConstraintProcessor$NodeComparator); + lastHierarchicalDummy = null; + for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + break; + } + externalPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (externalPortSide != ($clinit_PortSide() , WEST_2) && externalPortSide != EAST_2) { + continue; + } + !!lastHierarchicalDummy && castTo($getProperty(lastHierarchicalDummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(node); + lastHierarchicalDummy = node; + } +} + +function $processNorthernAndSouthernPortDummies(layeredGraph){ + var currLayerIdx, currentLayer, currentNode, currentNode$iterator, dummy, dummy$iterator, edge, edge$iterator, edge$iterator0, extPortToDummyNodeMap, i, layer, layerCount, layers, newDummyNodes, nextExtPortToDummyNodesMap, nextLayerDummy, nextNewDummyNodes, nodeList, originalDummy, originalDummy$iterator, originalExternalPortDummies, portConstraints, prevExtPortToDummyNodesMap, prevLayerDummy, prevNewDummyNodes, sourceNode, targetNode; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + if (!(portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4)) { + return; + } + layers = layeredGraph.layers; + layerCount = layers.array.length; + extPortToDummyNodeMap = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); + newDummyNodes = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); + $add_3(extPortToDummyNodeMap, new HashMap); + $add_3(extPortToDummyNodeMap, new HashMap); + $add_3(newDummyNodes, new ArrayList); + $add_3(newDummyNodes, new ArrayList); + originalExternalPortDummies = new ArrayList; + for (currLayerIdx = 0; currLayerIdx < layerCount; currLayerIdx++) { + currentLayer = (checkCriticalElementIndex(currLayerIdx, layers.array.length) , castTo(layers.array[currLayerIdx], 29)); + prevExtPortToDummyNodesMap = (checkCriticalElementIndex(currLayerIdx, extPortToDummyNodeMap.array.length) , castTo(extPortToDummyNodeMap.array[currLayerIdx], 83)); + nextExtPortToDummyNodesMap = new HashMap; + extPortToDummyNodeMap.array[extPortToDummyNodeMap.array.length] = nextExtPortToDummyNodesMap; + prevNewDummyNodes = (checkCriticalElementIndex(currLayerIdx, newDummyNodes.array.length) , castTo(newDummyNodes.array[currLayerIdx], 15)); + nextNewDummyNodes = new ArrayList; + newDummyNodes.array[newDummyNodes.array.length] = nextNewDummyNodes; + for (currentNode$iterator = new ArrayList$1(currentLayer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_7(currentNode$iterator), 10); + if ($isNorthernOrSouthernDummy(currentNode)) { + originalExternalPortDummies.array[originalExternalPortDummies.array.length] = currentNode; + continue; + } + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 17); + sourceNode = edge.source.owner; + if (!$isNorthernOrSouthernDummy(sourceNode)) { + continue; + } + prevLayerDummy = castTo(prevExtPortToDummyNodesMap.get_3($getProperty(sourceNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); + if (!prevLayerDummy) { + prevLayerDummy = $createDummy(layeredGraph, sourceNode); + prevExtPortToDummyNodesMap.put($getProperty(sourceNode, ORIGIN_0), prevLayerDummy); + prevNewDummyNodes.add_2(prevLayerDummy); + } + $setSource_0(edge, castTo($get_11(prevLayerDummy.ports, 1), 11)); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + targetNode = edge.target.owner; + if (!$isNorthernOrSouthernDummy(targetNode)) { + continue; + } + nextLayerDummy = castTo($get_10(nextExtPortToDummyNodesMap, $getProperty(targetNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); + if (!nextLayerDummy) { + nextLayerDummy = $createDummy(layeredGraph, targetNode); + $put_6(nextExtPortToDummyNodesMap, $getProperty(targetNode, ORIGIN_0), nextLayerDummy); + nextNewDummyNodes.array[nextNewDummyNodes.array.length] = nextLayerDummy; + } + $setTarget_0(edge, castTo($get_11(nextLayerDummy.ports, 0), 11)); + } + } + } + for (i = 0; i < newDummyNodes.array.length; i++) { + nodeList = (checkCriticalElementIndex(i, newDummyNodes.array.length) , castTo(newDummyNodes.array[i], 15)); + if (nodeList.isEmpty()) { + continue; + } + layer = null; + if (i == 0) { + layer = new Layer(layeredGraph); + checkCriticalPositionIndex(0, layers.array.length); + insertTo(layers.array, 0, layer); + } + else if (i == extPortToDummyNodeMap.array.length - 1) { + layer = new Layer(layeredGraph); + layers.array[layers.array.length] = layer; + } + else { + layer = (checkCriticalElementIndex(i - 1, layers.array.length) , castTo(layers.array[i - 1], 29)); + } + for (dummy$iterator = nodeList.iterator_0(); dummy$iterator.hasNext_0();) { + dummy = castTo(dummy$iterator.next_1(), 10); + $setLayer_0(dummy, layer); + } + } + for (originalDummy$iterator = new ArrayList$1(originalExternalPortDummies); originalDummy$iterator.i < originalDummy$iterator.this$01.array.length;) { + originalDummy = castTo($next_7(originalDummy$iterator), 10); + $setLayer_0(originalDummy, null); + } + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES), originalExternalPortDummies); +} + +function HierarchicalPortConstraintProcessor(){ +} + +defineClass(1511, 1, $intern_105, HierarchicalPortConstraintProcessor); +_.process = function process_12(layeredGraph, monitor){ + $process_14(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor', 1511); +function $compare_12(node1, node2){ + var nodePos1, nodePos2, nodeType1, nodeType2; + nodeType1 = node1.type_0; + nodePos1 = $doubleValue(castToDouble($getProperty(node1, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))); + nodeType2 = node2.type_0; + nodePos2 = $doubleValue(castToDouble($getProperty(node2, PORT_RATIO_OR_POSITION_0))); + return nodeType2 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)?-1:nodeType1 != EXTERNAL_PORT?1:nodePos1 == nodePos2?0:nodePos1 < nodePos2?-1:1; +} + +function HierarchicalPortConstraintProcessor$NodeComparator(){ +} + +defineClass(1512, 1, $intern_88, HierarchicalPortConstraintProcessor$NodeComparator); +_.compare_1 = function compare_43(node1, node2){ + return $compare_12(castTo(node1, 10), castTo(node2, 10)); +} +; +_.equals_0 = function equals_107(other){ + return this === other; +} +; +_.reversed = function reversed_35(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor$NodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor/NodeComparator', 1512); +function $process_15(layeredGraph, monitor){ + var delta, edgeSpacing, layer, layer$iterator, node, node$iterator, northernDummies, side, southernDummies; + $begin(monitor, 'Hierarchical port dummy size processing', 1); + northernDummies = new ArrayList; + southernDummies = new ArrayList; + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); + delta = edgeSpacing * 2; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + northernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + southernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + side = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + side == ($clinit_PortSide() , NORTH_3)?(northernDummies.array[northernDummies.array.length] = node , true):side == SOUTH_2 && (southernDummies.array[southernDummies.array.length] = node , true); + } + } + $setWidths(northernDummies, true, delta); + $setWidths(southernDummies, false, delta); + } + $done_0(monitor); +} + +function $setWidths(nodes, topDown, delta){ + var currentWidth, node, node$iterator, port, port$iterator, step; + currentWidth = 0; + step = delta; + if (!topDown) { + currentWidth = delta * (nodes.array.length - 1); + step *= -1; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setProperty_0(node, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , CENTER_4)); + node.size_0.x_0 = currentWidth; + for (port$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + port.pos.x_0 = currentWidth; + } + currentWidth += step; + } +} + +function HierarchicalPortDummySizeProcessor(){ +} + +defineClass(1513, 1, $intern_105, HierarchicalPortDummySizeProcessor); +_.process = function process_13(layeredGraph, monitor){ + $process_15(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortDummySizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortDummySizeProcessor', 1513); +function $assignAscendingCoordinates(dummies, graph){ + var currentMargin, currentPosition, currentSize, delta, graphSize, index_0, nextValidCoordinate, spacing; + spacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); + nextValidCoordinate = dummies[0].pos.x_0 + dummies[0].size_0.x_0 + dummies[0].margin.right + spacing; + for (index_0 = 1; index_0 < dummies.length; index_0++) { + currentPosition = dummies[index_0].pos; + currentSize = dummies[index_0].size_0; + currentMargin = dummies[index_0].margin; + delta = currentPosition.x_0 - currentMargin.left - nextValidCoordinate; + delta < 0 && (currentPosition.x_0 -= delta); + graphSize = graph.size_0; + graphSize.x_0 = $wnd.Math.max(graphSize.x_0, currentPosition.x_0 + currentSize.x_0); + nextValidCoordinate = currentPosition.x_0 + currentSize.x_0 + currentMargin.right + spacing; + } +} + +function $calculateNorthSouthDummyPositions(dummy){ + var anchor, connectedPort, connectedPort$iterator, dummyInPort, offset, posSum; + dummyInPort = castTo($get_11(dummy.ports, 0), 11); + if (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length == 0) { + dummy.pos.x_0 = 0; + } + else { + posSum = 0; + for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(dummyInPort), new LPort$2(dummyInPort)]))); $hasNext_1(connectedPort$iterator);) { + connectedPort = castTo($next_0(connectedPort$iterator), 11); + posSum += connectedPort.owner.pos.x_0 + connectedPort.pos.x_0 + connectedPort.anchor.x_0; + } + anchor = castTo($getProperty(dummy, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8); + offset = !anchor?0:anchor.x_0; + dummy.pos.x_0 = posSum / (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length) - offset; + } +} + +function $correctSlantedEdgeSegments(layer){ + var bendPoints, edge, edge$iterator, extPortSide, firstBendPoint, lastBendPoint, node, node$iterator, sourcePort, targetPort; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (extPortSide == ($clinit_PortSide() , EAST_2) || extPortSide == WEST_2) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + bendPoints = edge.bendPoints; + if (bendPoints.size_0 == 0) { + continue; + } + sourcePort = edge.source; + if (sourcePort.owner == node) { + firstBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8)); + firstBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; + } + targetPort = edge.target; + if (targetPort.owner == node) { + lastBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8)); + lastBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; + } + } + } + } +} + +function $ensureUniquePositions(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); + sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$1); + $assignAscendingCoordinates(dummyArray, graph); +} + +function $fixCoordinates(layer, constraints, graph){ + var extPortSide, extPortSize, graphActualSize, newActualGraphHeight, node, node$iterator, node$iterator0, nodePosition, offset, padding, ratio, requiredActualGraphHeight; + padding = graph.padding; + offset = graph.offset; + graphActualSize = new KVector_1(graph.size_0.x_0 + graph.padding.left + graph.padding.right, graph.size_0.y_0 + graph.padding.top_0 + graph.padding.bottom); + newActualGraphHeight = graphActualSize.y_0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + extPortSize = castTo($getProperty(node, EXT_PORT_SIZE), 8); + nodePosition = node.pos; + switch (extPortSide.ordinal) { + case 2: + nodePosition.x_0 = graph.size_0.x_0 + padding.right - offset.x_0; + break; + case 4: + nodePosition.x_0 = -offset.x_0 - padding.left; + } + requiredActualGraphHeight = 0; + switch (extPortSide.ordinal) { + case 2: + case 4: + if (constraints == ($clinit_PortConstraints() , FIXED_RATIO)) { + ratio = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); + nodePosition.y_0 = graphActualSize.y_0 * ratio - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; + requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; + $borderToContentAreaCoordinates(node, false, true); + } + else if (constraints == FIXED_POS) { + nodePosition.y_0 = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))) - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; + requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; + $borderToContentAreaCoordinates(node, false, true); + } + + } + newActualGraphHeight = $wnd.Math.max(newActualGraphHeight, requiredActualGraphHeight); + } + graph.size_0.y_0 += newActualGraphHeight - graphActualSize.y_0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + nodePosition = node.pos; + switch (extPortSide.ordinal) { + case 1: + nodePosition.y_0 = -offset.y_0 - padding.top_0; + break; + case 3: + nodePosition.y_0 = graph.size_0.y_0 + padding.bottom - offset.y_0; + } + } +} + +function $process_16(this$static, layeredGraph, monitor){ + var northSouthDummies, constraints, layers, layers_0; + $begin(monitor, 'Orthogonally routing hierarchical port edges', 1); + this$static.northernExtPortEdgeRoutingHeight = 0; + northSouthDummies = $restoreNorthSouthDummies(layeredGraph); + $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies); + $routeEdges(this$static, layeredGraph, northSouthDummies); + $removeTemporaryNorthSouthDummies(layeredGraph); + constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + layers = layeredGraph.layers; + $fixCoordinates((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), constraints, layeredGraph); + $fixCoordinates(castTo($get_11(layers, layers.array.length - 1), 29), constraints, layeredGraph); + layers_0 = layeredGraph.layers; + $correctSlantedEdgeSegments((checkCriticalElementIndex(0, layers_0.array.length) , castTo(layers_0.array[0], 29))); + $correctSlantedEdgeSegments(castTo($get_11(layers_0, layers_0.array.length - 1), 29)); + $done_0(monitor); +} + +function $removeTemporaryNorthSouthDummies(layeredGraph){ + var edge, edge$array, edge$array0, edge$index, edge$index0, edge$max, edge$max0, edges, firstBendPoint, incomingEdgeBendPoints, iter, lastBendPoint, layer, layer$iterator, node, node$iterator, node$iterator0, nodeInPort, nodeOriginPort, nodeOutPort, nodeToOriginEdge, nodesToRemove, outgoingEdgeBendPoints, port, port$iterator, replacedDummy, replacedDummyPort; + nodesToRemove = new ArrayList; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + if (!$hasProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY))) { + continue; + } + nodeInPort = null; + nodeOutPort = null; + nodeOriginPort = null; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 4: + nodeInPort = port; + break; + case 2: + nodeOutPort = port; + break; + default:nodeOriginPort = port; + } + } + nodeToOriginEdge = castTo($get_11(nodeOriginPort.outgoingEdges, 0), 17); + incomingEdgeBendPoints = new KVectorChain_0(nodeToOriginEdge.bendPoints); + firstBendPoint = new KVector_2(nodeOriginPort.pos); + $add_19(firstBendPoint, node.pos); + iter = $listIterator_2(incomingEdgeBendPoints, 0); + $add_8(iter, firstBendPoint); + outgoingEdgeBendPoints = reverse_3(nodeToOriginEdge.bendPoints); + lastBendPoint = new KVector_2(nodeOriginPort.pos); + $add_19(lastBendPoint, node.pos); + $addNode_0(outgoingEdgeBendPoints, lastBendPoint, outgoingEdgeBendPoints.tail.prev, outgoingEdgeBendPoints.tail); + replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); + replacedDummyPort = castTo($get_11(replacedDummy.ports, 0), 11); + edges = castTo($toArray_2(nodeInPort.incomingEdges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, 0, 0, 1)), 474); + for (edge$array0 = edges , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { + edge = edge$array0[edge$index0]; + $setTarget_0(edge, replacedDummyPort); + $addAllAsCopies(edge.bendPoints, edge.bendPoints.size_0, incomingEdgeBendPoints); + } + edges = toEdgeArray(nodeOutPort.outgoingEdges); + for (edge$array = edges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, replacedDummyPort); + $addAllAsCopies(edge.bendPoints, 0, outgoingEdgeBendPoints); + } + $setSource_0(nodeToOriginEdge, null); + $setTarget_0(nodeToOriginEdge, null); + nodesToRemove.array[nodesToRemove.array.length] = node; + } + } + for (node$iterator = new ArrayList$1(nodesToRemove); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } +} + +function $restoreDummy(dummy, graph){ + var currentY, dummyPort, label_0, label$iterator, labelLabelSpacing, portLabelPlacement, portLabelSpacingHorizontal, portLabelSpacingVertical, portSide, xCenterRelativeToPort; + portSide = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + portSide == ($clinit_PortSide() , NORTH_3)?$setSide(dummyPort, SOUTH_2):portSide == SOUTH_2 && $setSide(dummyPort, NORTH_3); + if (castTo($getProperty(graph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS))) { + portLabelSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_HORIZONTAL))); + portLabelSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); + portLabelPlacement = castTo($getProperty(graph, PORT_LABELS_PLACEMENT_1), 21); + if (portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { + currentY = portLabelSpacingVertical; + xCenterRelativeToPort = dummy.size_0.x_0 / 2 - dummyPort.pos.x_0; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + label_0.pos.y_0 = currentY; + label_0.pos.x_0 = xCenterRelativeToPort - label_0.size_0.x_0 / 2; + currentY += label_0.size_0.y_0 + labelLabelSpacing; + } + } + else if (portLabelPlacement.contains(OUTSIDE_0)) { + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + label_0.pos.x_0 = portLabelSpacingHorizontal + dummy.size_0.x_0 - dummyPort.pos.x_0; + } + } + $processNode(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(graph, false, false, new LGraphAdapters$lambda$0$Type))), new LGraphAdapters$LNodeAdapter(null, dummy, false)); + } +} + +function $restoreNorthSouthDummies(layeredGraph){ + var dummy, dummy$iterator, dummy$iterator0, layer, layer$iterator, node, node$iterator, replacedDummy, restoredDummies, outPort, extPortSide, inPort, edge; + restoredDummies = new ArrayList; + if (!$hasProperty(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES))) { + return restoredDummies; + } + for (dummy$iterator0 = castTo($getProperty(layeredGraph, EXT_PORT_REPLACED_DUMMIES), 15).iterator_0(); dummy$iterator0.hasNext_0();) { + dummy = castTo(dummy$iterator0.next_1(), 10); + $restoreDummy(dummy, layeredGraph); + restoredDummies.array[restoredDummies.array.length] = dummy; + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); + !!replacedDummy && (outPort = new LPort , $setNode(outPort, node) , extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61) , $setSide(outPort, extPortSide) , inPort = castTo($get_11(replacedDummy.ports, 0), 11) , edge = new LEdge , $setSource_0(edge, outPort) , $setTarget_0(edge, inPort) , undefined); + } + } + for (dummy$iterator = new ArrayList$1(restoredDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + $setLayer_0(dummy, castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29)); + } + return restoredDummies; +} + +function $restoreProperOrder(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); + sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$2); + $assignAscendingCoordinates(dummyArray, graph); +} + +function $routeEdges(this$static, layeredGraph, northSouthDummies){ + var edge, edge$iterator, edgeSpacing, hierarchicalPortDummy, hierarchicalPortDummy$iterator, nodeSpacing, northernSourceLayer, northernTargetLayer, portSide, routingGenerator, slots, southernSourceLayer, southernTargetLayer; + northernSourceLayer = new LinkedHashSet; + northernTargetLayer = new LinkedHashSet; + southernSourceLayer = new LinkedHashSet; + southernTargetLayer = new LinkedHashSet; + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + for (hierarchicalPortDummy$iterator = new ArrayList$1(northSouthDummies); hierarchicalPortDummy$iterator.i < hierarchicalPortDummy$iterator.this$01.array.length;) { + hierarchicalPortDummy = castTo($next_7(hierarchicalPortDummy$iterator), 10); + portSide = castTo($getProperty(hierarchicalPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (portSide == ($clinit_PortSide() , NORTH_3)) { + northernTargetLayer.map_0.put(hierarchicalPortDummy, northernTargetLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $add_6(northernSourceLayer, edge.source.owner); + } + } + else if (portSide == SOUTH_2) { + southernTargetLayer.map_0.put(hierarchicalPortDummy, southernTargetLayer); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $add_6(southernSourceLayer, edge.source.owner); + } + } + } + if (northernSourceLayer.map_0.size_1() != 0) { + routingGenerator = new OrthogonalRoutingGenerator(2, edgeSpacing); + slots = $routeEdges_0(routingGenerator, layeredGraph, northernSourceLayer, northernTargetLayer, -nodeSpacing - layeredGraph.offset.y_0); + if (slots > 0) { + this$static.northernExtPortEdgeRoutingHeight = nodeSpacing + (slots - 1) * edgeSpacing; + layeredGraph.offset.y_0 += this$static.northernExtPortEdgeRoutingHeight; + layeredGraph.size_0.y_0 += this$static.northernExtPortEdgeRoutingHeight; + } + } + if (southernSourceLayer.map_0.size_1() != 0) { + routingGenerator = new OrthogonalRoutingGenerator(1, edgeSpacing); + slots = $routeEdges_0(routingGenerator, layeredGraph, southernSourceLayer, southernTargetLayer, layeredGraph.size_0.y_0 + nodeSpacing - layeredGraph.offset.y_0); + slots > 0 && (layeredGraph.size_0.y_0 += nodeSpacing + (slots - 1) * edgeSpacing); + } +} + +function $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies){ + var constraints, dummy, dummy$iterator, graphPadding, graphSize, graphWidth, northY, northernDummies, southY, southernDummies, anchor, offset, anchor_0, offset_0; + constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + graphSize = layeredGraph.size_0; + graphPadding = layeredGraph.padding; + graphWidth = graphSize.x_0 + graphPadding.left + graphPadding.right; + northY = 0 - graphPadding.top_0 - layeredGraph.offset.y_0; + southY = graphSize.y_0 + graphPadding.top_0 + graphPadding.bottom - layeredGraph.offset.y_0; + northernDummies = new ArrayList; + southernDummies = new ArrayList; + for (dummy$iterator = new ArrayList$1(northSouthDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + switch (constraints.ordinal) { + case 1: + case 2: + case 3: + $calculateNorthSouthDummyPositions(dummy); + break; + case 4: + anchor = castTo($getProperty(dummy, PORT_ANCHOR), 8); + offset = !anchor?0:anchor.x_0; + dummy.pos.x_0 = graphWidth * $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset; + $borderToContentAreaCoordinates(dummy, true, false); + break; + case 5: + anchor_0 = castTo($getProperty(dummy, PORT_ANCHOR), 8); + offset_0 = !anchor_0?0:anchor_0.x_0; + dummy.pos.x_0 = $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset_0; + $borderToContentAreaCoordinates(dummy, true, false); + graphSize.x_0 = $wnd.Math.max(graphSize.x_0, dummy.pos.x_0 + dummy.size_0.x_0 / 2); + } + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + dummy.pos.y_0 = northY; + northernDummies.array[northernDummies.array.length] = dummy; + break; + case 3: + dummy.pos.y_0 = southY; + southernDummies.array[southernDummies.array.length] = dummy; + } + } + switch (constraints.ordinal) { + case 1: + case 2: + $ensureUniquePositions(northernDummies, layeredGraph); + $ensureUniquePositions(southernDummies, layeredGraph); + break; + case 3: + $restoreProperOrder(northernDummies, layeredGraph); + $restoreProperOrder(southernDummies, layeredGraph); + } +} + +function HierarchicalPortOrthogonalEdgeRouter(){ +} + +defineClass(1514, 1, $intern_105, HierarchicalPortOrthogonalEdgeRouter); +_.process = function process_14(layeredGraph, monitor){ + $process_16(this, castTo(layeredGraph, 37), monitor); +} +; +_.northernExtPortEdgeRoutingHeight = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter', 1514); +function $compare_13(a, b){ + return compare_4(a.pos.x_0, b.pos.x_0); +} + +function HierarchicalPortOrthogonalEdgeRouter$1(){ +} + +defineClass(1515, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$1); +_.compare_1 = function compare_44(a, b){ + return $compare_13(castTo(a, 10), castTo(b, 10)); +} +; +_.equals_0 = function equals_108(other){ + return this === other; +} +; +_.reversed = function reversed_36(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/1', 1515); +function $compare_14(a, b){ + return compare_4($doubleValue(castToDouble($getProperty(a, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))), $doubleValue(castToDouble($getProperty(b, PORT_RATIO_OR_POSITION_0)))); +} + +function HierarchicalPortOrthogonalEdgeRouter$2(){ +} + +defineClass(1516, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$2); +_.compare_1 = function compare_45(a, b){ + return $compare_14(castTo(a, 10), castTo(b, 10)); +} +; +_.equals_0 = function equals_109(other){ + return this === other; +} +; +_.reversed = function reversed_37(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/2', 1516); +function $fixCoordinates_0(layer, layeredGraph){ + var extPortSide, finalYCoordinate, graphHeight, node, node$iterator, portConstraints; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + if (!(portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || portConstraints == FIXED_POS)) { + return; + } + graphHeight = (new KVector_1(layeredGraph.size_0.x_0 + layeredGraph.padding.left + layeredGraph.padding.right, layeredGraph.size_0.y_0 + layeredGraph.padding.top_0 + layeredGraph.padding.bottom)).y_0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + if (extPortSide != ($clinit_PortSide() , EAST_2) && extPortSide != WEST_2) { + continue; + } + finalYCoordinate = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); + portConstraints == FIXED_RATIO && (finalYCoordinate *= graphHeight); + node.pos.y_0 = finalYCoordinate - castTo($getProperty(node, PORT_ANCHOR), 8).y_0; + $borderToContentAreaCoordinates(node, false, true); + } +} + +function $process_17(layeredGraph, monitor){ + var layers; + $begin(monitor, 'Hierarchical port position processing', 1); + layers = layeredGraph.layers; + layers.array.length > 0 && $fixCoordinates_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), layeredGraph); + layers.array.length > 1 && $fixCoordinates_0(castTo($get_11(layers, layers.array.length - 1), 29), layeredGraph); + $done_0(monitor); +} + +function HierarchicalPortPositionProcessor(){ +} + +defineClass(1517, 1, $intern_105, HierarchicalPortPositionProcessor); +_.process = function process_15(layeredGraph, monitor){ + $process_17(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortPositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortPositionProcessor', 1517); +function $clinit_HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor = emptyMethod; + INCOMING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$0$Type; + OUTGOING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$1$Type; +} + +function $calculateInformation(this$static, hdn){ + var hdni, incEdge, incEdge$iterator, outEdge, outEdge$iterator, src_0, tgt, treeHeight; + hdni = new HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation; + for (incEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incEdge$iterator);) { + incEdge = castTo($next_0(incEdge$iterator), 17); + if ($isSelfLoop(incEdge)) { + continue; + } + src_0 = incEdge.source.owner; + if ($hasSingleConnection(src_0, OUTGOING_EDGES)) { + treeHeight = $isTreeRoot(this$static, src_0, OUTGOING_EDGES, INCOMING_EDGES); + if (treeHeight == -1) { + continue; + } + hdni.incTreesMaxHeight = $wnd.Math.max(hdni.incTreesMaxHeight, treeHeight); + !hdni.incTreeRoots && (hdni.incTreeRoots = new ArrayList); + $add_3(hdni.incTreeRoots, src_0); + } + } + for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { + outEdge = castTo($next_0(outEdge$iterator), 17); + if ($isSelfLoop(outEdge)) { + continue; + } + tgt = outEdge.target.owner; + if ($hasSingleConnection(tgt, INCOMING_EDGES)) { + treeHeight = $isTreeRoot(this$static, tgt, INCOMING_EDGES, OUTGOING_EDGES); + if (treeHeight == -1) { + continue; + } + hdni.outTreesMaxHeight = $wnd.Math.max(hdni.outTreesMaxHeight, treeHeight); + !hdni.outTreeRoots && (hdni.outTreeRoots = new ArrayList); + $add_3(hdni.outTreeRoots, tgt); + } + } + return hdni; +} + +function $hasSingleConnection(node, edgeSelector){ + var connection, e, e$iterator; + connection = null; + for (e$iterator = castTo(edgeSelector.apply_0(node), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + if (!connection) { + connection = e.source.owner == node?e.target.owner:e.source.owner; + } + else { + if ((e.source.owner == node?e.target.owner:e.source.owner) != connection) { + return false; + } + } + } + return true; +} + +function $isTreeRoot(this$static, root, ancestorEdges, descendantEdges){ + var currentHeight, e, e$iterator, height, other; + if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(root).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { + return -1; + } + if (!$hasSingleConnection(root, ancestorEdges)) { + return -1; + } + if (isEmpty_13(castTo(descendantEdges.apply_0(root), 20))) { + return 1; + } + currentHeight = 0; + for (e$iterator = castTo(descendantEdges.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + other = e.source.owner == root?e.target.owner:e.source.owner; + height = $isTreeRoot(this$static, other, ancestorEdges, descendantEdges); + if (height == -1) { + return -1; + } + currentHeight = $wnd.Math.max(currentHeight, height); + if (currentHeight > this$static.treeHeightThreshold - 1) { + return -1; + } + } + return currentHeight + 1; +} + +function $moveTree(this$static, root, edgesFun, layers){ + var e, e$iterator, other, subList; + $setLayer_0(root, castTo(layers.get_0(0), 29)); + subList = layers.subList(1, layers.size_1()); + for (e$iterator = castTo(edgesFun.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + other = e.source.owner == root?e.target.owner:e.source.owner; + $moveTree(this$static, other, edgesFun, subList); + } +} + +function $process_18(this$static, graph){ + var afterLayers, hdni, highDegreeNode, highDegreeNode$iterator, highDegreeNode$iterator0, highDegreeNodes, i, i0, incMax, incRoot, incRoot$iterator, incRoots, l, lay, layerIt, layerIt2, n, n$iterator, outMax, outRoot, outRoot$iterator, outRoots, preLayers, l_0, l_1; + this$static.layeredGraph = graph; + this$static.degreeThreshold = castTo($getProperty(graph, ($clinit_LayeredOptions() , HIGH_DEGREE_NODES_THRESHOLD_0)), 19).value_0; + this$static.treeHeightThreshold = castTo($getProperty(graph, HIGH_DEGREE_NODES_TREE_HEIGHT_0), 19).value_0; + this$static.treeHeightThreshold == 0 && (this$static.treeHeightThreshold = $intern_0); + layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (layerIt.i < layerIt.this$01_0.size_1()) { + lay = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); + highDegreeNodes = new ArrayList; + incMax = -1; + outMax = -1; + for (n$iterator = new ArrayList$1(lay.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(n).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { + hdni = $calculateInformation(this$static, n); + incMax = $wnd.Math.max(incMax, hdni.incTreesMaxHeight); + outMax = $wnd.Math.max(outMax, hdni.outTreesMaxHeight); + $add_3(highDegreeNodes, new Pair(n, hdni)); + } + } + preLayers = new ArrayList; + for (i0 = 0; i0 < incMax; ++i0) { + $add_2(preLayers, 0, (checkCriticalElement(layerIt.i > 0) , layerIt.this$01.get_0(layerIt.last = --layerIt.i) , l_0 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_0) , checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , layerIt.this$01_0.get_0(layerIt.last = layerIt.i++) , l_0)); + } + for (highDegreeNode$iterator0 = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator0.i < highDegreeNode$iterator0.this$01.array.length;) { + highDegreeNode = castTo($next_7(highDegreeNode$iterator0), 46); + incRoots = castTo(highDegreeNode.second, 571).incTreeRoots; + if (!incRoots) { + continue; + } + for (incRoot$iterator = new ArrayList$1(incRoots); incRoot$iterator.i < incRoot$iterator.this$01.array.length;) { + incRoot = castTo($next_7(incRoot$iterator), 10); + $moveTree(this$static, incRoot, INCOMING_EDGES, preLayers); + } + } + afterLayers = new ArrayList; + for (i = 0; i < outMax; ++i) { + $add_3(afterLayers, (l_1 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_1) , l_1)); + } + for (highDegreeNode$iterator = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator.i < highDegreeNode$iterator.this$01.array.length;) { + highDegreeNode = castTo($next_7(highDegreeNode$iterator), 46); + outRoots = castTo(highDegreeNode.second, 571).outTreeRoots; + if (!outRoots) { + continue; + } + for (outRoot$iterator = new ArrayList$1(outRoots); outRoot$iterator.i < outRoot$iterator.this$01.array.length;) { + outRoot = castTo($next_7(outRoot$iterator), 10); + $moveTree(this$static, outRoot, OUTGOING_EDGES, afterLayers); + } + } + } + layerIt2 = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (layerIt2.i < layerIt2.this$01_0.size_1()) { + l = (checkCriticalElement(layerIt2.i < layerIt2.this$01_0.size_1()) , castTo(layerIt2.this$01_0.get_0(layerIt2.last = layerIt2.i++), 29)); + l.nodes.array.length == 0 && $remove_8(layerIt2); + } +} + +function HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor(); +} + +defineClass(1518, 1, $intern_105, HighDegreeNodeLayeringProcessor); +_.process = function process_16(graph, progressMonitor){ + $process_18(this, castTo(graph, 37)); +} +; +_.degreeThreshold = 0; +_.treeHeightThreshold = 0; +var INCOMING_EDGES, OUTGOING_EDGES; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor', 1518); +function HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation(){ +} + +defineClass(571, 1, {571:1}, HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation); +_.incTreesMaxHeight = -1; +_.outTreesMaxHeight = -1; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation', 571); +function HighDegreeNodeLayeringProcessor$lambda$0$Type(){ +} + +defineClass(1519, 1, {}, HighDegreeNodeLayeringProcessor$lambda$0$Type); +_.apply_0 = function apply_80(arg0){ + return $clinit_HighDegreeNodeLayeringProcessor() , $getIncomingEdges(castTo(arg0, 10)); +} +; +_.equals_0 = function equals_110(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$0$Type', 1519); +function HighDegreeNodeLayeringProcessor$lambda$1$Type(){ +} + +defineClass(1520, 1, {}, HighDegreeNodeLayeringProcessor$lambda$1$Type); +_.apply_0 = function apply_81(arg0){ + return $clinit_HighDegreeNodeLayeringProcessor() , $getOutgoingEdges(castTo(arg0, 10)); +} +; +_.equals_0 = function equals_111(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$1$Type', 1520); +function $checkMergeAllowed(currNode, lastNode){ + var currHasLabelDummies, currNodeSource, currNodeTarget, eligibleForSourceMerging, eligibleForTargetMerging, lastHasLabelDummies, lastNodeSource, lastNodeTarget, sameSource, sameTarget; + currHasLabelDummies = $booleanValue(castToBoolean($getProperty(currNode, ($clinit_InternalProperties_1() , LONG_EDGE_HAS_LABEL_DUMMIES)))); + lastHasLabelDummies = $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))); + currNodeSource = castTo($getProperty(currNode, LONG_EDGE_SOURCE), 11); + lastNodeSource = castTo($getProperty(lastNode, LONG_EDGE_SOURCE), 11); + currNodeTarget = castTo($getProperty(currNode, LONG_EDGE_TARGET), 11); + lastNodeTarget = castTo($getProperty(lastNode, LONG_EDGE_TARGET), 11); + sameSource = !!currNodeSource && currNodeSource == lastNodeSource; + sameTarget = !!currNodeTarget && currNodeTarget == lastNodeTarget; + if (!currHasLabelDummies && !lastHasLabelDummies) { + return new HyperedgeDummyMerger$MergeState(castTo($next_7(new ArrayList$1(currNode.ports)), 11).id_0 == castTo($next_7(new ArrayList$1(lastNode.ports)), 11).id_0, sameSource, sameTarget); + } + eligibleForSourceMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); + eligibleForTargetMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); + return new HyperedgeDummyMerger$MergeState(sameSource && eligibleForSourceMerging || sameTarget && eligibleForTargetMerging, sameSource, sameTarget); +} + +function $dfs_2(this$static, p, index_0){ + var p2, p2$iterator, p2$iterator0; + p.id_0 = index_0; + for (p2$iterator0 = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(p), new LPort$2(p)]))); $hasNext_1(p2$iterator0);) { + p2 = castTo($next_0(p2$iterator0), 11); + p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); + } + if (p.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (p2$iterator = new ArrayList$1(p.owner.ports); p2$iterator.i < p2$iterator.this$01.array.length;) { + p2 = castTo($next_7(p2$iterator), 11); + p2 != p && p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); + } + } +} + +function $identifyHyperedges(this$static, lGraph){ + var index_0, p, p$iterator, ports; + ports = castTo($collect_1($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layers, 16)), new HyperedgeDummyMerger$lambda$0$Type), new HyperedgeDummyMerger$lambda$1$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + ports.forEach_0(new HyperedgeDummyMerger$lambda$2$Type); + index_0 = 0; + for (p$iterator = ports.iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 11); + p.id_0 == -1 && $dfs_2(this$static, p, index_0++); + } +} + +function $mergeNodes(mergeSource, mergeTarget, keepSourcePort, keepTargetPort){ + var mergeTargetInputPort, mergeTargetOutputPort, port, port$iterator; + mergeTargetInputPort = castTo($getPorts_1(mergeTarget, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); + mergeTargetOutputPort = castTo($getPorts_1(mergeTarget, EAST_2).iterator_0().next_1(), 11); + for (port$iterator = new ArrayList$1(mergeSource.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + while (port.incomingEdges.array.length != 0) { + $setTarget_0(castTo($get_11(port.incomingEdges, 0), 17), mergeTargetInputPort); + } + while (port.outgoingEdges.array.length != 0) { + $setSource_0(castTo($get_11(port.outgoingEdges, 0), 17), mergeTargetOutputPort); + } + } + keepSourcePort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), null); + keepTargetPort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), null); +} + +function $process_19(this$static, layeredGraph, monitor){ + var currNode, currNodeType, lastNode, lastNodeType, layer, layerIter, nodeIndex, nodes, state; + $begin(monitor, 'Hyperedge merging', 1); + $identifyHyperedges(this$static, layeredGraph); + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + currNode = null; + currNodeType = null; + lastNode = null; + lastNodeType = null; + for (nodeIndex = 0; nodeIndex < nodes.array.length; nodeIndex++) { + currNode = (checkCriticalElementIndex(nodeIndex, nodes.array.length) , castTo(nodes.array[nodeIndex], 10)); + currNodeType = currNode.type_0; + if (currNodeType == ($clinit_LNode$NodeType() , LONG_EDGE) && lastNodeType == LONG_EDGE) { + state = $checkMergeAllowed(currNode, lastNode); + if (state.allowMerge) { + $mergeNodes(currNode, lastNode, state.sameSource, state.sameTarget); + checkCriticalElementIndex(nodeIndex, nodes.array.length); + removeFrom(nodes.array, nodeIndex, 1); + --nodeIndex; + currNode = lastNode; + currNodeType = lastNodeType; + } + } + lastNode = currNode; + lastNodeType = currNodeType; + } + } + $done_0(monitor); +} + +function HyperedgeDummyMerger(){ +} + +defineClass(1526, 1, $intern_105, HyperedgeDummyMerger); +_.process = function process_17(layeredGraph, monitor){ + $process_19(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger', 1526); +function HyperedgeDummyMerger$MergeState(allowMerge, sameSource, sameTarget){ + this.allowMerge = allowMerge; + this.sameSource = sameSource; + this.sameTarget = sameTarget; +} + +defineClass(793, 1, {}, HyperedgeDummyMerger$MergeState); +_.allowMerge = false; +_.sameSource = false; +_.sameTarget = false; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$MergeState_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/MergeState', 793); +function HyperedgeDummyMerger$lambda$0$Type(){ +} + +defineClass(1527, 1, {}, HyperedgeDummyMerger$lambda$0$Type); +_.apply_0 = function apply_82(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$0$Type', 1527); +function HyperedgeDummyMerger$lambda$1$Type(){ +} + +defineClass(1528, 1, {}, HyperedgeDummyMerger$lambda$1$Type); +_.apply_0 = function apply_83(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 10).ports, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$1$Type', 1528); +function HyperedgeDummyMerger$lambda$2$Type(){ +} + +defineClass(1529, 1, $intern_19, HyperedgeDummyMerger$lambda$2$Type); +_.accept = function accept_74(arg0){ + castTo(arg0, 11).id_0 = -1; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$2$Type', 1529); +function $moveHypernode(layeredGraph, hypernode, right){ + var bendEdges, bendx, diffx, diffy, edge, edge$iterator, first, firstPoint, junctionPoints, lastPoint, northPort, port, port$iterator, second, southPort; + bendEdges = new ArrayList; + bendx = $intern_0; + diffx = $intern_0; + diffy = $intern_0; + if (right) { + bendx = layeredGraph.size_0.x_0; + for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (edge.bendPoints.size_0 != 0) { + firstPoint = castTo($getFirst(edge.bendPoints), 8); + if (firstPoint.x_0 < bendx) { + diffx = bendx - firstPoint.x_0; + diffy = $intern_0; + bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + bendx = firstPoint.x_0; + } + if (firstPoint.x_0 <= bendx) { + bendEdges.array[bendEdges.array.length] = edge; + edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, 1), 8).y_0 - firstPoint.y_0))); + } + } + } + } + } + else { + for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (edge.bendPoints.size_0 != 0) { + lastPoint = castTo($getLast(edge.bendPoints), 8); + if (lastPoint.x_0 > bendx) { + diffx = lastPoint.x_0 - bendx; + diffy = $intern_0; + bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + bendx = lastPoint.x_0; + } + if (lastPoint.x_0 >= bendx) { + bendEdges.array[bendEdges.array.length] = edge; + edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, edge.bendPoints.size_0 - 2), 8).y_0 - lastPoint.y_0))); + } + } + } + } + } + if (bendEdges.array.length != 0 && diffx > hypernode.size_0.x_0 / 2 && diffy > hypernode.size_0.y_0 / 2) { + northPort = new LPort; + $setNode(northPort, hypernode); + $setSide(northPort, ($clinit_PortSide() , NORTH_3)); + northPort.pos.x_0 = hypernode.size_0.x_0 / 2; + southPort = new LPort; + $setNode(southPort, hypernode); + $setSide(southPort, SOUTH_2); + southPort.pos.x_0 = hypernode.size_0.x_0 / 2; + southPort.pos.y_0 = hypernode.size_0.y_0; + for (edge$iterator = new ArrayList$1(bendEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (right) { + first = castTo($removeFirst_0(edge.bendPoints), 8); + second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.target):castTo($getFirst(edge.bendPoints), 8); + second.y_0 >= first.y_0?$setSource_0(edge, southPort):$setSource_0(edge, northPort); + } + else { + first = castTo($removeLast_0(edge.bendPoints), 8); + second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.source):castTo($getLast(edge.bendPoints), 8); + second.y_0 >= first.y_0?$setTarget_0(edge, southPort):$setTarget_0(edge, northPort); + } + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!junctionPoints && $advanceToFind(junctionPoints, first, true); + } + hypernode.pos.x_0 = bendx - hypernode.size_0.x_0 / 2; + } +} + +function $process_20(layeredGraph, monitor){ + var bottomEdges, layer, layer$iterator, leftEdges, node, node$iterator, port, port$iterator, rightEdges, topEdges; + $begin(monitor, 'Hypernodes processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , HYPERNODE)))) && node.ports.array.length <= 2) { + topEdges = 0; + rightEdges = 0; + bottomEdges = 0; + leftEdges = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 1: + ++topEdges; + break; + case 2: + ++rightEdges; + break; + case 3: + ++bottomEdges; + break; + case 4: + ++leftEdges; + } + } + topEdges == 0 && bottomEdges == 0 && $moveHypernode(layeredGraph, node, leftEdges <= rightEdges); + } + } + } + $done_0(monitor); +} + +function HypernodesProcessor(){ +} + +defineClass(1530, 1, $intern_105, HypernodesProcessor); +_.process = function process_18(layeredGraph, monitor){ + $process_20(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HypernodesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HypernodesProcessor', 1530); +function $process_21(layeredGraph, monitor){ + var bottomConstrainedNodes, constraint, i, layer, layer$iterator, node, node$iterator, nodes, topInsertionIndex; + $begin(monitor, 'Layer constraint edge reversal', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + topInsertionIndex = -1; + bottomConstrainedNodes = new ArrayList; + nodes = toNodeArray(layer.nodes); + for (i = 0; i < nodes.length; i++) { + constraint = castTo($getProperty(nodes[i], ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); + if (topInsertionIndex == -1) { + constraint != ($clinit_InLayerConstraint() , TOP_1) && (topInsertionIndex = i); + } + else { + if (constraint == ($clinit_InLayerConstraint() , TOP_1)) { + $setLayer_0(nodes[i], null); + $setLayer(nodes[i], topInsertionIndex++, layer); + } + } + constraint == ($clinit_InLayerConstraint() , BOTTOM_0) && $add_3(bottomConstrainedNodes, nodes[i]); + } + for (node$iterator = new ArrayList$1(bottomConstrainedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + $setLayer_0(node, layer); + } + } + $done_0(monitor); +} + +function InLayerConstraintProcessor(){ +} + +defineClass(1531, 1, $intern_105, InLayerConstraintProcessor); +_.process = function process_19(layeredGraph, monitor){ + $process_21(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InLayerConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InLayerConstraintProcessor', 1531); +function $process_22(layeredGraph, monitor){ + $begin(monitor, 'Node margin calculation', 1); + $process($excludeEdgeHeadTailLabels(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, false, false, new LGraphAdapters$lambda$0$Type))))); + $done_0(monitor); +} + +function InnermostNodeMarginCalculator(){ +} + +defineClass(1532, 1, $intern_105, InnermostNodeMarginCalculator); +_.process = function process_20(layeredGraph, monitor){ + $process_22(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InnermostNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InnermostNodeMarginCalculator', 1532); +function $findNorthSouthPortXCoordinate(dummy){ + var e, e$iterator, margins, max_0, min_0, n, port; + port = castTo($get_11(dummy.ports, 0), 11); + if (port.outgoingEdges.array.length != 0 && port.incomingEdges.array.length != 0) { + throw toJs(new IllegalStateException_0('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.')); + } + if (port.outgoingEdges.array.length != 0) { + min_0 = $intern_59; + for (e$iterator = new ArrayList$1(port.outgoingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + n = e.target.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); + min_0 = $wnd.Math.min(min_0, n.pos.x_0 - margins.left); + } + return new Present(checkNotNull(min_0)); + } + if (port.incomingEdges.array.length != 0) { + max_0 = $intern_60; + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + n = e.source.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); + max_0 = $wnd.Math.max(max_0, n.pos.x_0 + n.size_0.x_0 + margins.right); + } + return new Present(checkNotNull(max_0)); + } + return $clinit_Absent() , $clinit_Absent() , INSTANCE; +} + +function $findYCoordinate(dummy, funGetOtherNode){ + var e, e$iterator, other; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(dummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + other = castTo(funGetOtherNode.apply_0(e), 10); + return new Present(checkNotNull(other.pos.y_0 + other.size_0.y_0 / 2)); + } + return $clinit_Absent() , $clinit_Absent() , INSTANCE; +} + +function $process_23(this$static, layeredGraph){ + var ilc, lc, margins, node, node$iterator, node$iterator0; + if (!castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + return; + } + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + margins = castTo($getProperty(node, ($clinit_LayeredOptions() , MARGINS)), 142); + this$static.minX = $wnd.Math.min(this$static.minX, node.pos.x_0 - margins.left); + this$static.maxX = $wnd.Math.max(this$static.maxX, node.pos.x_0 + node.size_0.x_0 + margins.right); + this$static.minY = $wnd.Math.min(this$static.minY, node.pos.y_0 - margins.top_0); + this$static.maxY = $wnd.Math.max(this$static.maxY, node.pos.y_0 + node.size_0.y_0 + margins.bottom); + } + } + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + switch (node.type_0.ordinal) { + case 2: + lc = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (lc == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + node.pos.x_0 = this$static.minX - 10; + $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$0$Type).transform(new InteractiveExternalPortPositioner$lambda$1$Type(node)); + break; + } + + if (lc == LAST_SEPARATE_0) { + node.pos.x_0 = this$static.maxX + 10; + $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$2$Type).transform(new InteractiveExternalPortPositioner$lambda$3$Type(node)); + break; + } + + ilc = castTo($getProperty(node, IN_LAYER_CONSTRAINT), 303); + if (ilc == ($clinit_InLayerConstraint() , TOP_1)) { + $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$4$Type(node)); + node.pos.y_0 = this$static.minY - 10; + break; + } + + if (ilc == BOTTOM_0) { + $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$5$Type(node)); + node.pos.y_0 = this$static.maxY + 10; + break; + } + + break; + default:throw toJs(new IllegalArgumentException_0('The node type ' + node.type_0 + ' is not supported by the ' + Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit)); + } + } + } +} + +function InteractiveExternalPortPositioner(){ +} + +function lambda$1_9(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$3_1(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$4_4(node_0, x_1){ + return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; +} + +function lambda$5_1(node_0, x_1){ + return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; +} + +defineClass(1533, 1, $intern_105, InteractiveExternalPortPositioner); +_.process = function process_21(layeredGraph, progressMonitor){ + $process_23(this, castTo(layeredGraph, 37)); +} +; +_.maxX = $intern_60; +_.maxY = $intern_60; +_.minX = $intern_59; +_.minY = $intern_59; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner', 1533); +function InteractiveExternalPortPositioner$lambda$0$Type(){ +} + +defineClass(1534, 1, {}, InteractiveExternalPortPositioner$lambda$0$Type); +_.apply_0 = function apply_84(arg0){ + return castTo(arg0, 17).target.owner; +} +; +_.equals_0 = function equals_112(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$0$Type', 1534); +function InteractiveExternalPortPositioner$lambda$1$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1535, 1, {}, InteractiveExternalPortPositioner$lambda$1$Type); +_.apply_0 = function apply_85(arg0){ + return lambda$1_9(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_113(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$1$Type', 1535); +function InteractiveExternalPortPositioner$lambda$2$Type(){ +} + +defineClass(1536, 1, {}, InteractiveExternalPortPositioner$lambda$2$Type); +_.apply_0 = function apply_86(arg0){ + return castTo(arg0, 17).source.owner; +} +; +_.equals_0 = function equals_114(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$2$Type', 1536); +function InteractiveExternalPortPositioner$lambda$3$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1537, 1, {}, InteractiveExternalPortPositioner$lambda$3$Type); +_.apply_0 = function apply_87(arg0){ + return lambda$3_1(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_115(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$3$Type', 1537); +function InteractiveExternalPortPositioner$lambda$4$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1538, 1, {}, InteractiveExternalPortPositioner$lambda$4$Type); +_.apply_0 = function apply_88(arg0){ + return lambda$4_4(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_116(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$4$Type', 1538); +function InteractiveExternalPortPositioner$lambda$5$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1539, 1, {}, InteractiveExternalPortPositioner$lambda$5$Type); +_.apply_0 = function apply_89(arg0){ + return lambda$5_1(this.node_0, castToDouble(arg0)); +} +; +_.equals_0 = function equals_117(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$5$Type', 1539); +function $clinit_IntermediateProcessorStrategy(){ + $clinit_IntermediateProcessorStrategy = emptyMethod; + DIRECTION_PREPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_PREPROCESSOR', 0); + COMMENT_PREPROCESSOR = new IntermediateProcessorStrategy('COMMENT_PREPROCESSOR', 1); + EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER = new IntermediateProcessorStrategy('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER', 2); + INTERACTIVE_EXTERNAL_PORT_POSITIONER = new IntermediateProcessorStrategy('INTERACTIVE_EXTERNAL_PORT_POSITIONER', 3); + PARTITION_PREPROCESSOR = new IntermediateProcessorStrategy('PARTITION_PREPROCESSOR', 4); + LABEL_DUMMY_INSERTER = new IntermediateProcessorStrategy('LABEL_DUMMY_INSERTER', 5); + SELF_LOOP_PREPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_PREPROCESSOR', 6); + LAYER_CONSTRAINT_PREPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_PREPROCESSOR', 7); + PARTITION_MIDPROCESSOR = new IntermediateProcessorStrategy('PARTITION_MIDPROCESSOR', 8); + HIGH_DEGREE_NODE_LAYER_PROCESSOR = new IntermediateProcessorStrategy('HIGH_DEGREE_NODE_LAYER_PROCESSOR', 9); + NODE_PROMOTION = new IntermediateProcessorStrategy('NODE_PROMOTION', 10); + LAYER_CONSTRAINT_POSTPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_POSTPROCESSOR', 11); + PARTITION_POSTPROCESSOR = new IntermediateProcessorStrategy('PARTITION_POSTPROCESSOR', 12); + HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR', 13); + SEMI_INTERACTIVE_CROSSMIN_PROCESSOR = new IntermediateProcessorStrategy('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR', 14); + BREAKING_POINT_INSERTER = new IntermediateProcessorStrategy('BREAKING_POINT_INSERTER', 15); + LONG_EDGE_SPLITTER = new IntermediateProcessorStrategy('LONG_EDGE_SPLITTER', 16); + PORT_SIDE_PROCESSOR = new IntermediateProcessorStrategy('PORT_SIDE_PROCESSOR', 17); + INVERTED_PORT_PROCESSOR = new IntermediateProcessorStrategy('INVERTED_PORT_PROCESSOR', 18); + PORT_LIST_SORTER = new IntermediateProcessorStrategy('PORT_LIST_SORTER', 19); + SORT_BY_INPUT_ORDER_OF_MODEL = new IntermediateProcessorStrategy('SORT_BY_INPUT_ORDER_OF_MODEL', 20); + NORTH_SOUTH_PORT_PREPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_PREPROCESSOR', 21); + BREAKING_POINT_PROCESSOR = new IntermediateProcessorStrategy('BREAKING_POINT_PROCESSOR', 22); + ONE_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('ONE_SIDED_GREEDY_SWITCH', 23); + TWO_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('TWO_SIDED_GREEDY_SWITCH', 24); + SELF_LOOP_PORT_RESTORER = new IntermediateProcessorStrategy('SELF_LOOP_PORT_RESTORER', 25); + SINGLE_EDGE_GRAPH_WRAPPER = new IntermediateProcessorStrategy('SINGLE_EDGE_GRAPH_WRAPPER', 26); + IN_LAYER_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('IN_LAYER_CONSTRAINT_PROCESSOR', 27); + END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR', 28); + LABEL_AND_NODE_SIZE_PROCESSOR = new IntermediateProcessorStrategy('LABEL_AND_NODE_SIZE_PROCESSOR', 29); + INNERMOST_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('INNERMOST_NODE_MARGIN_CALCULATOR', 30); + SELF_LOOP_ROUTER = new IntermediateProcessorStrategy('SELF_LOOP_ROUTER', 31); + COMMENT_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('COMMENT_NODE_MARGIN_CALCULATOR', 32); + END_LABEL_PREPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_PREPROCESSOR', 33); + LABEL_DUMMY_SWITCHER = new IntermediateProcessorStrategy('LABEL_DUMMY_SWITCHER', 34); + CENTER_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('CENTER_LABEL_MANAGEMENT_PROCESSOR', 35); + LABEL_SIDE_SELECTOR = new IntermediateProcessorStrategy('LABEL_SIDE_SELECTOR', 36); + HYPEREDGE_DUMMY_MERGER = new IntermediateProcessorStrategy('HYPEREDGE_DUMMY_MERGER', 37); + HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR', 38); + LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR = new IntermediateProcessorStrategy('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR', 39); + HIERARCHICAL_PORT_POSITION_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_POSITION_PROCESSOR', 40); + CONSTRAINTS_POSTPROCESSOR = new IntermediateProcessorStrategy('CONSTRAINTS_POSTPROCESSOR', 41); + COMMENT_POSTPROCESSOR = new IntermediateProcessorStrategy('COMMENT_POSTPROCESSOR', 42); + HYPERNODE_PROCESSOR = new IntermediateProcessorStrategy('HYPERNODE_PROCESSOR', 43); + HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER', 44); + LONG_EDGE_JOINER = new IntermediateProcessorStrategy('LONG_EDGE_JOINER', 45); + SELF_LOOP_POSTPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_POSTPROCESSOR', 46); + BREAKING_POINT_REMOVER = new IntermediateProcessorStrategy('BREAKING_POINT_REMOVER', 47); + NORTH_SOUTH_PORT_POSTPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_POSTPROCESSOR', 48); + HORIZONTAL_COMPACTOR = new IntermediateProcessorStrategy('HORIZONTAL_COMPACTOR', 49); + LABEL_DUMMY_REMOVER = new IntermediateProcessorStrategy('LABEL_DUMMY_REMOVER', 50); + FINAL_SPLINE_BENDPOINTS_CALCULATOR = new IntermediateProcessorStrategy('FINAL_SPLINE_BENDPOINTS_CALCULATOR', 51); + END_LABEL_SORTER = new IntermediateProcessorStrategy('END_LABEL_SORTER', 52); + REVERSED_EDGE_RESTORER = new IntermediateProcessorStrategy('REVERSED_EDGE_RESTORER', 53); + END_LABEL_POSTPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_POSTPROCESSOR', 54); + HIERARCHICAL_NODE_RESIZER = new IntermediateProcessorStrategy('HIERARCHICAL_NODE_RESIZER', 55); + DIRECTION_POSTPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_POSTPROCESSOR', 56); +} + +function IntermediateProcessorStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_32(name_0){ + $clinit_IntermediateProcessorStrategy(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map() , $MAP_20), name_0); +} + +function values_38(){ + $clinit_IntermediateProcessorStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 77, 0, [DIRECTION_PREPROCESSOR, COMMENT_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, INTERACTIVE_EXTERNAL_PORT_POSITIONER, PARTITION_PREPROCESSOR, LABEL_DUMMY_INSERTER, SELF_LOOP_PREPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, PARTITION_MIDPROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, NODE_PROMOTION, LAYER_CONSTRAINT_POSTPROCESSOR, PARTITION_POSTPROCESSOR, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, BREAKING_POINT_INSERTER, LONG_EDGE_SPLITTER, PORT_SIDE_PROCESSOR, INVERTED_PORT_PROCESSOR, PORT_LIST_SORTER, SORT_BY_INPUT_ORDER_OF_MODEL, NORTH_SOUTH_PORT_PREPROCESSOR, BREAKING_POINT_PROCESSOR, ONE_SIDED_GREEDY_SWITCH, TWO_SIDED_GREEDY_SWITCH, SELF_LOOP_PORT_RESTORER, SINGLE_EDGE_GRAPH_WRAPPER, IN_LAYER_CONSTRAINT_PROCESSOR, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, SELF_LOOP_ROUTER, COMMENT_NODE_MARGIN_CALCULATOR, END_LABEL_PREPROCESSOR, LABEL_DUMMY_SWITCHER, CENTER_LABEL_MANAGEMENT_PROCESSOR, LABEL_SIDE_SELECTOR, HYPEREDGE_DUMMY_MERGER, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, HIERARCHICAL_PORT_POSITION_PROCESSOR, CONSTRAINTS_POSTPROCESSOR, COMMENT_POSTPROCESSOR, HYPERNODE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, LONG_EDGE_JOINER, SELF_LOOP_POSTPROCESSOR, BREAKING_POINT_REMOVER, NORTH_SOUTH_PORT_POSTPROCESSOR, HORIZONTAL_COMPACTOR, LABEL_DUMMY_REMOVER, FINAL_SPLINE_BENDPOINTS_CALCULATOR, END_LABEL_SORTER, REVERSED_EDGE_RESTORER, END_LABEL_POSTPROCESSOR, HIERARCHICAL_NODE_RESIZER, DIRECTION_POSTPROCESSOR]); +} + +defineClass(77, 22, {3:1, 35:1, 22:1, 77:1, 234:1}, IntermediateProcessorStrategy); +_.create_1 = function create_5(){ + switch (this.ordinal) { + case 15: + return new BreakingPointInserter; + case 22: + return new BreakingPointProcessor; + case 47: + return new BreakingPointRemover; + case 28: + case 35: + return new LabelManagementProcessor; + case 32: + return new CommentNodeMarginCalculator; + case 42: + return new CommentPostprocessor; + case 1: + return new CommentPreprocessor; + case 41: + return new ConstraintsPostprocessor; + case 56: + return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)); + case 0: + return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INPUT_DIRECTION)); + case 2: + return new EdgeAndLayerConstraintEdgeReverser; + case 54: + return new EndLabelPostprocessor; + case 33: + return new EndLabelPreprocessor; + case 51: + return new FinalSplineBendpointsCalculator; + case 55: + return new HierarchicalNodeResizingProcessor; + case 13: + return new HierarchicalPortConstraintProcessor; + case 38: + return new HierarchicalPortDummySizeProcessor; + case 44: + return new HierarchicalPortOrthogonalEdgeRouter; + case 40: + return new HierarchicalPortPositionProcessor; + case 9: + return new HighDegreeNodeLayeringProcessor; + case 49: + return new HorizontalGraphCompactor; + case 37: + return new HyperedgeDummyMerger; + case 43: + return new HypernodesProcessor; + case 27: + return new InLayerConstraintProcessor; + case 30: + return new InnermostNodeMarginCalculator; + case 3: + return new InteractiveExternalPortPositioner; + case 18: + return new InvertedPortProcessor; + case 29: + return new LabelAndNodeSizeProcessor; + case 5: + return new LabelDummyInserter; + case 50: + return new LabelDummyRemover; + case 34: + return new LabelDummySwitcher; + case 36: + return new LabelSideSelector; + case 52: + return new EndLabelSorter; + case 11: + return new LayerConstraintPostprocessor; + case 7: + return new LayerConstraintPreprocessor; + case 39: + return new LayerSizeAndGraphHeightCalculator; + case 45: + return new LongEdgeJoiner; + case 16: + return new LongEdgeSplitter; + case 10: + return new NodePromotion; + case 48: + return new NorthSouthPortPostprocessor; + case 21: + return new NorthSouthPortPreprocessor; + case 23: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0)); + case 8: + return new PartitionMidprocessor; + case 12: + return new PartitionPostprocessor; + case 4: + return new PartitionPreprocessor; + case 19: + return new PortListSorter; + case 17: + return new PortSideProcessor; + case 53: + return new ReversedEdgeRestorer; + case 6: + return new SelfLoopPreProcessor; + case 25: + return new SelfLoopPortRestorer; + case 46: + return new SelfLoopPostProcessor; + case 31: + return new SelfLoopRouter; + case 14: + return new SemiInteractiveCrossMinProcessor; + case 26: + return new SingleEdgeGraphWrapper; + case 20: + return new SortByInputModelProcessor; + case 24: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)); + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var BREAKING_POINT_INSERTER, BREAKING_POINT_PROCESSOR, BREAKING_POINT_REMOVER, CENTER_LABEL_MANAGEMENT_PROCESSOR, COMMENT_NODE_MARGIN_CALCULATOR, COMMENT_POSTPROCESSOR, COMMENT_PREPROCESSOR, CONSTRAINTS_POSTPROCESSOR, DIRECTION_POSTPROCESSOR, DIRECTION_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, END_LABEL_POSTPROCESSOR, END_LABEL_PREPROCESSOR, END_LABEL_SORTER, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, FINAL_SPLINE_BENDPOINTS_CALCULATOR, HIERARCHICAL_NODE_RESIZER, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, HIERARCHICAL_PORT_POSITION_PROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, HORIZONTAL_COMPACTOR, HYPEREDGE_DUMMY_MERGER, HYPERNODE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, INTERACTIVE_EXTERNAL_PORT_POSITIONER, INVERTED_PORT_PROCESSOR, IN_LAYER_CONSTRAINT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, LABEL_DUMMY_INSERTER, LABEL_DUMMY_REMOVER, LABEL_DUMMY_SWITCHER, LABEL_SIDE_SELECTOR, LAYER_CONSTRAINT_POSTPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, LONG_EDGE_JOINER, LONG_EDGE_SPLITTER, NODE_PROMOTION, NORTH_SOUTH_PORT_POSTPROCESSOR, NORTH_SOUTH_PORT_PREPROCESSOR, ONE_SIDED_GREEDY_SWITCH, PARTITION_MIDPROCESSOR, PARTITION_POSTPROCESSOR, PARTITION_PREPROCESSOR, PORT_LIST_SORTER, PORT_SIDE_PROCESSOR, REVERSED_EDGE_RESTORER, SELF_LOOP_PORT_RESTORER, SELF_LOOP_POSTPROCESSOR, SELF_LOOP_PREPROCESSOR, SELF_LOOP_ROUTER, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, SINGLE_EDGE_GRAPH_WRAPPER, SORT_BY_INPUT_ORDER_OF_MODEL, TWO_SIDED_GREEDY_SWITCH; +var Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'IntermediateProcessorStrategy', 77, Ljava_lang_Enum_2_classLit, values_38, valueOf_32); +function $clinit_IntermediateProcessorStrategy$Map(){ + $clinit_IntermediateProcessorStrategy$Map = emptyMethod; + $MAP_20 = createValueOfMap(values_38()); +} + +var $MAP_20; +function $createEastPortSideDummies(layeredGraph, eastwardPort, edge, layerNodeList){ + var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, labelPlacement; + if (edge.source.owner == eastwardPort.owner) { + return; + } + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + layerNodeList.array[layerNodeList.array.length] = dummy; + dummyInput = new LPort; + $setNode(dummyInput, dummy); + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + dummyOutput = new LPort; + $setNode(dummyOutput, dummy); + $setSide(dummyOutput, EAST_2); + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, eastwardPort); + $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); + labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + labelPlacement = castTo($getProperty(label_0, EDGE_LABELS_PLACEMENT), 272); + if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { + $hasProperty(label_0, END_LABEL_EDGE) || $setProperty_0(label_0, END_LABEL_EDGE, edge); + $remove_8(labelIterator); + $add_3(dummyEdge.labels, label_0); + } + } +} + +function $createWestPortSideDummies(layeredGraph, westwardPort, edge, layerNodeList){ + var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, originalTarget; + if (edge.target.owner == westwardPort.owner) { + return; + } + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + layerNodeList.array[layerNodeList.array.length] = dummy; + dummyInput = new LPort; + $setNode(dummyInput, dummy); + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + dummyOutput = new LPort; + $setNode(dummyOutput, dummy); + $setSide(dummyOutput, EAST_2); + originalTarget = edge.target; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, originalTarget); + labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { + $setProperty_0(label_0, END_LABEL_EDGE, edge); + $remove_8(labelIterator); + $add_3(dummyEdge.labels, label_0); + } + } + $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); +} + +function $process_24(layeredGraph, monitor){ + var currentLayer, edge, edge$array, edge$index, edge$max, edgeArray, edges, layerIterator, layers, node, node$iterator, node$iterator0, node$iterator1, port, port$iterator, port$iterator0, previousLayer, unassignedNodes; + $begin(monitor, 'Inverted port preprocessing', 1); + layers = layeredGraph.layers; + layerIterator = new AbstractList$ListIteratorImpl(layers, 0); + currentLayer = null; + unassignedNodes = new ArrayList; + while (layerIterator.i < layerIterator.this$01_0.size_1()) { + previousLayer = currentLayer; + currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); + for (node$iterator0 = new ArrayList$1(unassignedNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + $setLayer_0(node, previousLayer); + } + unassignedNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator1 = new ArrayList$1(currentLayer.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + if (!$isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + continue; + } + for (port$iterator0 = $getPorts_0(node, ($clinit_PortType() , INPUT), ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 11); + edges = port.incomingEdges; + edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $createEastPortSideDummies(layeredGraph, port, edge, unassignedNodes); + } + } + for (port$iterator = $getPorts_0(node, OUTPUT, WEST_2).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + edges = port.outgoingEdges; + edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $createWestPortSideDummies(layeredGraph, port, edge, unassignedNodes); + } + } + } + } + for (node$iterator = new ArrayList$1(unassignedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, currentLayer); + } + $done_0(monitor); +} + +function $setLongEdgeSourceAndTarget(longEdgeDummy, dummyInputPort, dummyOutputPort){ + var sourceNode, sourceNodeType, sourcePort, targetNode, targetNodeType, targetPort; + sourcePort = castTo($get_11(dummyInputPort.incomingEdges, 0), 17).source; + sourceNode = sourcePort.owner; + sourceNodeType = sourceNode.type_0; + targetPort = castTo($get_11(dummyOutputPort.outgoingEdges, 0), 17).target; + targetNode = targetPort.owner; + targetNodeType = targetNode.type_0; + sourceNodeType == ($clinit_LNode$NodeType() , LONG_EDGE)?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(sourceNode, LONG_EDGE_SOURCE), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), sourcePort); + targetNodeType == LONG_EDGE?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), castTo($getProperty(targetNode, LONG_EDGE_TARGET), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), targetPort); +} + +function InvertedPortProcessor(){ +} + +defineClass(1540, 1, $intern_105, InvertedPortProcessor); +_.process = function process_22(layeredGraph, monitor){ + $process_24(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InvertedPortProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InvertedPortProcessor', 1540); +function $computePortLabelBox(dummyPort, labelLabelSpacing){ + var label_0, label$iterator, labelSize, result; + if (dummyPort.labels.array.length == 0) { + return null; + } + else { + result = new ElkRectangle; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelSize = label_0.size_0; + result.width_0 = $wnd.Math.max(result.width_0, labelSize.x_0); + result.height += labelSize.y_0; + } + result.height += (dummyPort.labels.array.length - 1) * labelLabelSpacing; + return result; + } +} + +function $lambda$2(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3, dummy_3){ + $placeExternalPortDummyLabels(dummy_3, portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3); +} + +function $placeExternalPortDummyLabels(dummy, graphPortLabelPlacement, placeNextToPortIfPossible, treatAsGroup){ + var currentY, dummyPort, dummyPortPos, dummySize, label_0, label$iterator, labelHeight, labelLabelSpacing, labelPortSpacingHorizontal, labelPortSpacingVertical, labelPos, portLabelBox; + labelPortSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, ($clinit_LayeredOptions() , SPACING_LABEL_PORT_HORIZONTAL)))); + labelPortSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); + dummySize = dummy.size_0; + dummyPort = castTo($get_11(dummy.ports, 0), 11); + dummyPortPos = dummyPort.pos; + portLabelBox = $computePortLabelBox(dummyPort, labelLabelSpacing); + if (!portLabelBox) { + return; + } + if (graphPortLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; + portLabelBox.y_0 = labelPortSpacingVertical; + break; + case 3: + portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; + portLabelBox.y_0 = -labelPortSpacingVertical - portLabelBox.height; + break; + case 2: + if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; + } + + portLabelBox.x_0 = -labelPortSpacingHorizontal - portLabelBox.width_0; + break; + case 4: + if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; + } + + portLabelBox.x_0 = labelPortSpacingHorizontal; + } + } + else if (graphPortLabelPlacement.contains(OUTSIDE_0)) { + switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 1: + case 3: + portLabelBox.x_0 = dummyPortPos.x_0 + labelPortSpacingHorizontal; + break; + case 2: + case 4: + if (placeNextToPortIfPossible && !dummyPort.connectedToExternalNodes) { + labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; + portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; + } + else { + portLabelBox.y_0 = dummyPortPos.y_0 + labelPortSpacingVertical; + } + + } + } + currentY = portLabelBox.y_0; + for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + labelPos = label_0.pos; + labelPos.x_0 = portLabelBox.x_0; + labelPos.y_0 = currentY; + currentY += label_0.size_0.y_0 + labelLabelSpacing; + } +} + +function $process_25(layeredGraph, monitor){ + var layer, layer$iterator, placeNextToPort, portLabelPlacement, treatAsGroup; + $begin(monitor, 'Node and Port Label Placement and Node Sizing', 1); + calculateLabelAndNodeSizes(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, true, true, new LabelAndNodeSizeProcessor$lambda$0$Type))); + if (castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { + portLabelPlacement = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_LABELS_PLACEMENT_1)), 21); + placeNextToPort = portLabelPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + treatAsGroup = $booleanValue(castToBoolean($getProperty(layeredGraph, PORT_LABELS_TREAT_AS_GROUP))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layer.nodes, 16)), new LabelAndNodeSizeProcessor$lambda$1$Type), new LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement, placeNextToPort, treatAsGroup)); + } + } + $done_0(monitor); +} + +function LabelAndNodeSizeProcessor(){ +} + +defineClass(1541, 1, $intern_105, LabelAndNodeSizeProcessor); +_.process = function process_23(layeredGraph, monitor){ + $process_25(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor', 1541); +function LabelAndNodeSizeProcessor$lambda$0$Type(){ +} + +defineClass(1542, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$0$Type); +_.test_0 = function test_37(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$0$Type', 1542); +function LabelAndNodeSizeProcessor$lambda$1$Type(){ +} + +defineClass(1543, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$1$Type); +_.test_0 = function test_38(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$1$Type', 1543); +function LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3){ + this.portLabelPlacement_1 = portLabelPlacement_1; + this.placeNextToPort_2 = placeNextToPort_2; + this.treatAsGroup_3 = treatAsGroup_3; +} + +defineClass(1544, 1, $intern_19, LabelAndNodeSizeProcessor$lambda$2$Type); +_.accept = function accept_75(arg0){ + $lambda$2(this.portLabelPlacement_1, this.placeNextToPort_2, this.treatAsGroup_3, castTo(arg0, 10)); +} +; +_.placeNextToPort_2 = false; +_.treatAsGroup_3 = false; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$2$Type', 1544); +function $clinit_LabelDummyInserter(){ + $clinit_LabelDummyInserter = emptyMethod; + CENTER_LABEL = new LabelDummyInserter$1; +} + +function $createLabelDummy(layeredGraph, edge, thickness, representedLabels){ + var dummyNode, dummyPort, dummyPort$iterator, portPos; + dummyNode = new LNode(layeredGraph); + $setType(dummyNode, ($clinit_LNode$NodeType() , LABEL)); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummyNode, REPRESENTED_LABELS, representedLabels); + $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummyNode, LONG_EDGE_SOURCE, edge.source); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, edge.target); + splitEdge(edge, dummyNode); + portPos = $wnd.Math.floor(thickness / 2); + for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { + dummyPort = castTo($next_7(dummyPort$iterator), 11); + dummyPort.pos.y_0 = portPos; + } + return dummyNode; +} + +function $process_26(layeredGraph, monitor){ + var dummyNode, dummySize, edge, edge$iterator, edgeLabelSpacing, iterator, label_0, labelLabelSpacing, layoutDirection, newDummyNodes, node, node$iterator, representedLabels, thickness; + $begin(monitor, 'Label dummy insertions', 1); + newDummyNodes = new ArrayList; + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.source.owner != edge.target.owner && any_0(edge.labels, CENTER_LABEL)) { + thickness = $retrieveThickness(edge); + representedLabels = newArrayListWithCapacity(edge.labels.array.length); + dummyNode = $createLabelDummy(layeredGraph, edge, thickness, representedLabels); + newDummyNodes.array[newDummyNodes.array.length] = dummyNode; + dummySize = dummyNode.size_0; + iterator = new AbstractList$ListIteratorImpl(edge.labels, 0); + while (iterator.i < iterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 70)); + if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5))) { + if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { + dummySize.x_0 += label_0.size_0.x_0 + labelLabelSpacing; + dummySize.y_0 = $wnd.Math.max(dummySize.y_0, label_0.size_0.y_0); + } + else { + dummySize.x_0 = $wnd.Math.max(dummySize.x_0, label_0.size_0.x_0); + dummySize.y_0 += label_0.size_0.y_0 + labelLabelSpacing; + } + representedLabels.array[representedLabels.array.length] = label_0; + $remove_8(iterator); + } + } + if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { + dummySize.x_0 -= labelLabelSpacing; + dummySize.y_0 += edgeLabelSpacing + thickness; + } + else { + dummySize.y_0 += edgeLabelSpacing - labelLabelSpacing + thickness; + } + } + } + } + $addAll_2(layeredGraph.layerlessNodes, newDummyNodes); + $done_0(monitor); +} + +function $retrieveThickness(edge){ + var thickness; + thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + return thickness; +} + +function LabelDummyInserter(){ + $clinit_LabelDummyInserter(); +} + +defineClass(1545, 1, $intern_105, LabelDummyInserter); +_.process = function process_24(layeredGraph, monitor){ + $process_26(castTo(layeredGraph, 37), monitor); +} +; +var CENTER_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter', 1545); +function LabelDummyInserter$1(){ +} + +defineClass(1546, 1, $intern_89, LabelDummyInserter$1); +_.apply_1 = function apply_90(label_0){ + return maskUndefined($getProperty(castTo(label_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +_.equals_0 = function equals_118(other){ + return this === other; +} +; +_.test_0 = function test_39(input_0){ + return maskUndefined($getProperty(castTo(input_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter/1', 1546); +function $placeLabelsForHorizontalLayout(labels, labelPos, labelSpacing, labelSpace){ + var label_0, label$iterator; + for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + label_0.pos.x_0 = labelPos.x_0 + (labelSpace.x_0 - label_0.size_0.x_0) / 2; + label_0.pos.y_0 = labelPos.y_0; + labelPos.y_0 += label_0.size_0.y_0 + labelSpacing; + } +} + +function $placeLabelsForVerticalLayout(labels, labelPos, labelSpacing, labelSpace, leftAligned, layoutDirection){ + var effectiveLabels, inline, label_0, label$iterator; + inline = !$spliterator($filter(labels.stream(), new Predicate$lambda$2$Type(new LabelDummyRemover$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + effectiveLabels = labels; + layoutDirection == ($clinit_Direction_0() , UP_1) && (effectiveLabels = instanceOf(effectiveLabels, 152)?$reverse(castTo(effectiveLabels, 152)):instanceOf(effectiveLabels, 131)?castTo(effectiveLabels, 131).forwardList:instanceOf(effectiveLabels, 54)?new Lists$RandomAccessReverseList(effectiveLabels):new Lists$ReverseList(effectiveLabels)); + for (label$iterator = effectiveLabels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + label_0.pos.x_0 = labelPos.x_0; + inline?(label_0.pos.y_0 = labelPos.y_0 + (labelSpace.y_0 - label_0.size_0.y_0) / 2):leftAligned?(label_0.pos.y_0 = labelPos.y_0):(label_0.pos.y_0 = labelPos.y_0 + labelSpace.y_0 - label_0.size_0.y_0); + labelPos.x_0 += label_0.size_0.x_0 + labelSpacing; + } +} + +function $process_27(layeredGraph, monitor){ + var currLabelPos, edgeLabelSpacing, labelLabelSpacing, labelSpace, labelsBelowEdge, layer, layer$iterator, layoutDirection, node, nodeIterator, originEdge, representedLabels, thickness; + $begin(monitor, 'Label dummy removal', 1); + edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); + layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + originEdge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); + thickness = $doubleValue(castToDouble($getProperty(originEdge, EDGE_THICKNESS_0))); + labelsBelowEdge = maskUndefined($getProperty(node, LABEL_SIDE)) === maskUndefined(($clinit_LabelSide() , BELOW)); + currLabelPos = new KVector_2(node.pos); + labelsBelowEdge && (currLabelPos.y_0 += thickness + edgeLabelSpacing); + labelSpace = new KVector_1(node.size_0.x_0, node.size_0.y_0 - thickness - edgeLabelSpacing); + representedLabels = castTo($getProperty(node, REPRESENTED_LABELS), 15); + layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1?$placeLabelsForVerticalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace, labelsBelowEdge, layoutDirection):$placeLabelsForHorizontalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace); + $addAll_2(originEdge.labels, representedLabels); + joinAt(node, maskUndefined($getProperty(layeredGraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , POLYLINE))); + $remove_8(nodeIterator); + } + } + } + $done_0(monitor); +} + +function LabelDummyRemover(){ +} + +defineClass(1547, 1, $intern_105, LabelDummyRemover); +_.process = function process_25(layeredGraph, monitor){ + $process_27(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover', 1547); +function LabelDummyRemover$lambda$0$Type(){ +} + +defineClass(1548, 1, $intern_39, LabelDummyRemover$lambda$0$Type); +_.test_0 = function test_40(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover/lambda$0$Type', 1548); +function $clinit_LabelDummySwitcher(){ + $clinit_LabelDummySwitcher = emptyMethod; + INCLUDE_LABEL = new Property_0('edgelabelcenterednessanalysis.includelabel', ($clinit_Boolean() , FALSE_0)); +} + +function $assignIdsToLayers(layeredGraph){ + var layer, layer$iterator, layerIndex; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layer.id_0 = layerIndex; + ++layerIndex; + } +} + +function $assignLayer(this$static, labelDummyInfo, targetLayerIndex){ + var label_0, label$iterator, newLayerId; + targetLayerIndex != labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1() && $swapNodes(labelDummyInfo.labelDummy, $ithDummyNode(labelDummyInfo, targetLayerIndex - labelDummyInfo.leftmostLayerId)); + newLayerId = labelDummyInfo.labelDummy.layer.id_0; + this$static.layerWidths[newLayerId] = $wnd.Math.max(this$static.layerWidths[newLayerId], labelDummyInfo.labelDummy.size_0.x_0); + for (label$iterator = castTo($getProperty(labelDummyInfo.labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + $setProperty_0(label_0, INCLUDE_LABEL, ($clinit_Boolean() , true)); + } +} + +function $assignToWiderLayer(this$static, labelDummyInfo){ + var dummyWidth, layer, layer$iterator, validLayers; + dummyWidth = labelDummyInfo.labelDummy.size_0.x_0; + validLayers = new AbstractList$SubList($getGraph(labelDummyInfo.labelDummy).layers, labelDummyInfo.leftmostLayerId, labelDummyInfo.rightmostLayerId + 1); + for (layer$iterator = new AbstractList$IteratorImpl(validLayers); layer$iterator.i < layer$iterator.this$01_0.size_1();) { + layer = (checkCriticalElement(layer$iterator.i < layer$iterator.this$01_0.size_1()) , castTo(layer$iterator.this$01_0.get_0(layer$iterator.last = layer$iterator.i++), 29)); + if (layer.size_0.x_0 >= dummyWidth) { + $assignLayer(this$static, labelDummyInfo, layer.id_0); + return true; + } + } + return false; +} + +function $calculateLayerWidths(this$static, layeredGraph){ + var layer, layer$iterator; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + this$static.layerWidths[layer.id_0] = findMaxNonDummyNodeWidth(layer); + } +} + +function $computeLayerWidthSums(this$static, labelDummyInfo){ + var currentIndex, currentWidthSum, edgeNodeSpacing, layerWidthSums, leftDummy, leftDummy$iterator, lgraph, minSpaceBetweenLayers, nodeNodeSpacing, rightDummy, rightDummy$iterator; + lgraph = $getGraph(labelDummyInfo.labelDummy); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE_BETWEEN_LAYERS_0)))) * 2; + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + minSpaceBetweenLayers = $wnd.Math.max(edgeNodeSpacing, nodeNodeSpacing); + layerWidthSums = initUnidimensionalArray(D_classLit, $intern_65, 25, labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1, 15, 1); + currentWidthSum = -minSpaceBetweenLayers; + currentIndex = 0; + for (leftDummy$iterator = labelDummyInfo.leftLongEdgeDummies.iterator_0(); leftDummy$iterator.hasNext_0();) { + leftDummy = castTo(leftDummy$iterator.next_1(), 10); + currentWidthSum += this$static.layerWidths[leftDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + } + currentWidthSum += this$static.layerWidths[labelDummyInfo.labelDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + for (rightDummy$iterator = new ArrayList$1(labelDummyInfo.rightLongEdgeDummies); rightDummy$iterator.i < rightDummy$iterator.this$01.array.length;) { + rightDummy = castTo($next_7(rightDummy$iterator), 10); + currentWidthSum += this$static.layerWidths[rightDummy.layer.id_0] + minSpaceBetweenLayers; + layerWidthSums[currentIndex++] = currentWidthSum; + } + return layerWidthSums; +} + +function $computeSpaceEfficientAssignment(this$static, labelDummyInfos){ + var labelCount, labelIndex, nonTrivialLabels; + nonTrivialLabels = $performTrivialAssignments(this$static, labelDummyInfos); + if (nonTrivialLabels.array.length == 0) { + return; + } + $sort(nonTrivialLabels, new LabelDummySwitcher$lambda$4$Type); + labelCount = nonTrivialLabels.array.length; + for (labelIndex = 0; labelIndex < labelCount; labelIndex++) { + $assignLayer(this$static, (checkCriticalElementIndex(labelIndex, nonTrivialLabels.array.length) , castTo(nonTrivialLabels.array[labelIndex], 286)), $findPotentiallyWidestLayer(this$static, nonTrivialLabels, labelIndex)); + } +} + +function $doUpdateLongEdgeLabelDummyInfo(labelDummy){ + var longEdgeDummy; + longEdgeDummy = ($clinit_LabelDummySwitcher() , castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner); + while (longEdgeDummy.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_BEFORE_LABEL_DUMMY), ($clinit_Boolean() , true)); + longEdgeDummy = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(longEdgeDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; + } +} + +function $findCenterLayerTargetId(this$static, labelDummyInfo){ + var i, layerWidthSums, threshold; + layerWidthSums = $computeLayerWidthSums(this$static, labelDummyInfo); + threshold = layerWidthSums[layerWidthSums.length - 1] / 2; + for (i = 0; i < layerWidthSums.length; i++) { + if (layerWidthSums[i] >= threshold) { + return labelDummyInfo.leftmostLayerId + i; + } + } + return labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1(); +} + +function $findPotentiallyWidestLayer(this$static, labelDummyInfos, labelIndex){ + var currLabelInfo, label_0, labelCount, labelDummyInfo, labelDummyWidth, largestUnassignedLabel, layer, potentialWidth, widestLayerIndex, widestLayerWidth; + labelCount = labelDummyInfos.array.length; + labelDummyInfo = (checkCriticalElementIndex(labelIndex, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[labelIndex], 286)); + labelDummyWidth = labelDummyInfo.labelDummy.size_0.x_0; + widestLayerIndex = labelDummyInfo.leftmostLayerId; + widestLayerWidth = 0; + for (layer = labelDummyInfo.leftmostLayerId; layer <= labelDummyInfo.rightmostLayerId; layer++) { + if (labelDummyWidth <= this$static.layerWidths[layer]) { + return layer; + } + potentialWidth = this$static.layerWidths[layer]; + largestUnassignedLabel = null; + for (label_0 = labelIndex + 1; label_0 < labelCount; label_0++) { + currLabelInfo = (checkCriticalElementIndex(label_0, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[label_0], 286)); + currLabelInfo.leftmostLayerId <= layer && currLabelInfo.rightmostLayerId >= layer && (largestUnassignedLabel = currLabelInfo); + } + !!largestUnassignedLabel && (potentialWidth = $wnd.Math.max(potentialWidth, largestUnassignedLabel.labelDummy.size_0.x_0)); + if (potentialWidth > widestLayerWidth) { + widestLayerIndex = layer; + widestLayerWidth = potentialWidth; + } + } + return widestLayerIndex; +} + +function $findWidestLayerTargetId(this$static, labelDummyInfo){ + var index_0, widestLayerIndex; + widestLayerIndex = labelDummyInfo.leftmostLayerId; + for (index_0 = widestLayerIndex + 1; index_0 <= labelDummyInfo.rightmostLayerId; index_0++) { + this$static.layerWidths[index_0] > this$static.layerWidths[widestLayerIndex] && (widestLayerIndex = index_0); + } + return widestLayerIndex; +} + +function $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy){ + var infos, strategy, strategy$array, strategy$index, strategy$max; + infos = new EnumMap(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit); + for (strategy$array = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { + strategy = strategy$array[strategy$index]; + $put_8(infos, strategy, new ArrayList); + } + $forEach_3($map_0($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new LabelDummySwitcher$lambda$0$Type), new LabelDummySwitcher$lambda$1$Type), new LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy)), new LabelDummySwitcher$lambda$3$Type(infos)); + return infos; +} + +function $isPartOfReversedEdge(labelDummyInfo){ + var incoming, outgoing; + incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); + outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); + return $booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || $booleanValue(castToBoolean($getProperty(outgoing, REVERSED))); +} + +function $performTrivialAssignments(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, remainingLabels; + remainingLabels = new ArrayList_0(labelDummyInfos.size_1()); + for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { + labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); + labelDummyInfo.leftmostLayerId == labelDummyInfo.rightmostLayerId?$assignLayer(this$static, labelDummyInfo, labelDummyInfo.leftmostLayerId):$assignToWiderLayer(this$static, labelDummyInfo) || (remainingLabels.array[remainingLabels.array.length] = labelDummyInfo , true); + } + return remainingLabels; +} + +function $process_28(this$static, layeredGraph, monitor){ + var defaultPlacementStrategy, labelDummyInfos, strategy, strategy$array, strategy$array0, strategy$array1, strategy$index, strategy$index0, strategy$index1, strategy$max, strategy$max0, strategy$max1; + $begin(monitor, 'Label dummy switching', 1); + defaultPlacementStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)), 227); + $assignIdsToLayers(layeredGraph); + labelDummyInfos = $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy); + this$static.layerWidths = initUnidimensionalArray(D_classLit, $intern_65, 25, layeredGraph.layers.array.length, 15, 1); + for (strategy$array0 = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index0 = 0 , strategy$max0 = strategy$array0.length; strategy$index0 < strategy$max0; ++strategy$index0) { + strategy = strategy$array0[strategy$index0]; + if ((strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && !castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15).isEmpty()) { + $calculateLayerWidths(this$static, layeredGraph); + break; + } + } + for (strategy$array1 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index1 = 0 , strategy$max1 = strategy$array1.length; strategy$index1 < strategy$max1; ++strategy$index1) { + strategy = strategy$array1[strategy$index1]; + strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER || $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); + } + for (strategy$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { + strategy = strategy$array[strategy$index]; + (strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); + } + this$static.layerWidths = null; + $done_0(monitor); +} + +function $processStrategy(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, reversed, reversed0, layers, lowerMedian; + if (labelDummyInfos.isEmpty()) { + return; + } + if (castTo(labelDummyInfos.get_0(0), 286).placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , SPACE_EFFICIENT_LAYER)) { + $computeSpaceEfficientAssignment(this$static, labelDummyInfos); + } + else { + for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { + labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); + switch (labelDummyInfo.placementStrategy.ordinal) { + case 5: + $assignLayer(this$static, labelDummyInfo, $findCenterLayerTargetId(this$static, labelDummyInfo)); + break; + case 0: + $assignLayer(this$static, labelDummyInfo, (layers = labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1 , lowerMedian = (layers - 1) / 2 | 0 , labelDummyInfo.leftmostLayerId + lowerMedian)); + break; + case 4: + $assignLayer(this$static, labelDummyInfo, $findWidestLayerTargetId(this$static, labelDummyInfo)); + break; + case 2: + $setEndLayerNodeAlignment(labelDummyInfo); + $assignLayer(this$static, labelDummyInfo, (reversed0 = $isPartOfReversedEdge(labelDummyInfo) , reversed0?labelDummyInfo.leftmostLayerId:labelDummyInfo.rightmostLayerId)); + break; + case 1: + $setEndLayerNodeAlignment(labelDummyInfo); + $assignLayer(this$static, labelDummyInfo, (reversed = $isPartOfReversedEdge(labelDummyInfo) , reversed?labelDummyInfo.rightmostLayerId:labelDummyInfo.leftmostLayerId)); + } + $doUpdateLongEdgeLabelDummyInfo(labelDummyInfo.labelDummy); + } + } +} + +function $setEndLayerNodeAlignment(labelDummyInfo){ + var isHeadLabel, isPartOfReversedEdge; + isHeadLabel = labelDummyInfo.placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , HEAD_LAYER); + isPartOfReversedEdge = $isPartOfReversedEdge(labelDummyInfo); + isHeadLabel && !isPartOfReversedEdge || !isHeadLabel && isPartOfReversedEdge?$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , RIGHT_5)):$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , LEFT_5)); +} + +function $swapNodes(labelDummy, longEdgeDummy){ + var dummy1LayerPosition, dummy2LayerPosition, edge, edge$array, edge$array0, edge$array1, edge$array2, edge$index, edge$index0, edge$index1, edge$index2, edge$max, edge$max0, edge$max1, edge$max2, incomingEdges1, incomingEdges2, inputPort1, inputPort2, layer1, layer2, outgoingEdges1, outgoingEdges2, outputPort1, outputPort2; + layer1 = labelDummy.layer; + layer2 = longEdgeDummy.layer; + dummy1LayerPosition = $indexOf_3(layer1.nodes, labelDummy, 0); + dummy2LayerPosition = $indexOf_3(layer2.nodes, longEdgeDummy, 0); + inputPort1 = castTo($getPorts(labelDummy, ($clinit_PortType() , INPUT)).iterator_0().next_1(), 11); + outputPort1 = castTo($getPorts(labelDummy, OUTPUT).iterator_0().next_1(), 11); + inputPort2 = castTo($getPorts(longEdgeDummy, INPUT).iterator_0().next_1(), 11); + outputPort2 = castTo($getPorts(longEdgeDummy, OUTPUT).iterator_0().next_1(), 11); + incomingEdges1 = toEdgeArray(inputPort1.incomingEdges); + outgoingEdges1 = toEdgeArray(outputPort1.outgoingEdges); + incomingEdges2 = toEdgeArray(inputPort2.incomingEdges); + outgoingEdges2 = toEdgeArray(outputPort2.outgoingEdges); + $setLayer(labelDummy, dummy2LayerPosition, layer2); + for (edge$array0 = incomingEdges2 , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { + edge = edge$array0[edge$index0]; + $setTarget_0(edge, inputPort1); + } + for (edge$array1 = outgoingEdges2 , edge$index1 = 0 , edge$max1 = edge$array1.length; edge$index1 < edge$max1; ++edge$index1) { + edge = edge$array1[edge$index1]; + $setSource_0(edge, outputPort1); + } + $setLayer(longEdgeDummy, dummy1LayerPosition, layer1); + for (edge$array2 = incomingEdges1 , edge$index2 = 0 , edge$max2 = edge$array2.length; edge$index2 < edge$max2; ++edge$index2) { + edge = edge$array2[edge$index2]; + $setTarget_0(edge, inputPort2); + } + for (edge$array = outgoingEdges1 , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, outputPort2); + } +} + +function LabelDummySwitcher(){ + $clinit_LabelDummySwitcher(); +} + +function lambda$2_4(defaultPlacementStrategy_0, labelDummy_1){ + $clinit_LabelDummySwitcher(); + return new LabelDummySwitcher$LabelDummyInfo(labelDummy_1, defaultPlacementStrategy_0); +} + +function lambda$3_2(infos_0, dummyInfo_1){ + $clinit_LabelDummySwitcher(); + return castTo($get_14(infos_0, dummyInfo_1.placementStrategy), 15).add_2(dummyInfo_1); +} + +function lambda$4_5(info1_0, info2_1){ + $clinit_LabelDummySwitcher(); + return compare_4(info2_1.labelDummy.size_0.x_0, info1_0.labelDummy.size_0.x_0); +} + +defineClass(1359, 1, $intern_105, LabelDummySwitcher); +_.process = function process_26(layeredGraph, monitor){ + $process_28(this, castTo(layeredGraph, 37), monitor); +} +; +_.layerWidths = null; +var INCLUDE_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher', 1359); +function $gatherLeftLongEdgeDummies(this$static){ + var source; + source = this$static.labelDummy; + do { + source = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(source).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; + source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && this$static.leftLongEdgeDummies.add_2(source); + } + while (source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); + this$static.leftLongEdgeDummies = reverse_0(this$static.leftLongEdgeDummies); +} + +function $gatherRightLongEdgeDummies(this$static){ + var target; + target = this$static.labelDummy; + do { + target = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(target).val$inputs1.iterator_0(), new Iterables$10))), 17).target.owner; + target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $add_3(this$static.rightLongEdgeDummies, target); + } + while (target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); +} + +function $ithDummyNode(this$static, i){ + return i < this$static.leftLongEdgeDummies.size_1()?castTo(this$static.leftLongEdgeDummies.get_0(i), 10):i == this$static.leftLongEdgeDummies.size_1()?this$static.labelDummy:castTo($get_11(this$static.rightLongEdgeDummies, i - this$static.leftLongEdgeDummies.size_1() - 1), 10); +} + +function LabelDummySwitcher$LabelDummyInfo(labelDummy, defaultPlacementStrategy){ + var label_0, label$iterator; + this.leftLongEdgeDummies = new ArrayList; + this.rightLongEdgeDummies = new ArrayList; + this.labelDummy = labelDummy; + this.placementStrategy = defaultPlacementStrategy; + $gatherLeftLongEdgeDummies(this); + $gatherRightLongEdgeDummies(this); + this.leftLongEdgeDummies.isEmpty()?(this.leftmostLayerId = labelDummy.layer.id_0):(this.leftmostLayerId = castTo(this.leftLongEdgeDummies.get_0(0), 10).layer.id_0); + this.rightLongEdgeDummies.array.length == 0?(this.rightmostLayerId = labelDummy.layer.id_0):(this.rightmostLayerId = castTo($get_11(this.rightLongEdgeDummies, this.rightLongEdgeDummies.array.length - 1), 10).layer.id_0); + for (label$iterator = castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + if ($hasProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0))) { + this.placementStrategy = castTo($getProperty(label_0, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0), 227); + break; + } + } +} + +defineClass(286, 1, {286:1}, LabelDummySwitcher$LabelDummyInfo); +_.leftmostLayerId = 0; +_.placementStrategy = null; +_.rightmostLayerId = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$LabelDummyInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/LabelDummyInfo', 286); +function LabelDummySwitcher$lambda$0$Type(){ +} + +defineClass(1360, 1, {}, LabelDummySwitcher$lambda$0$Type); +_.apply_0 = function apply_91(arg0){ + return $clinit_LabelDummySwitcher() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$0$Type', 1360); +function LabelDummySwitcher$lambda$1$Type(){ +} + +defineClass(1361, 1, $intern_39, LabelDummySwitcher$lambda$1$Type); +_.test_0 = function test_41(arg0){ + return $clinit_LabelDummySwitcher() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , LABEL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$1$Type', 1361); +function LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy_0){ + this.defaultPlacementStrategy_0 = defaultPlacementStrategy_0; +} + +defineClass(1362, 1, {}, LabelDummySwitcher$lambda$2$Type); +_.apply_0 = function apply_92(arg0){ + return lambda$2_4(this.defaultPlacementStrategy_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$2$Type', 1362); +function LabelDummySwitcher$lambda$3$Type(infos_0){ + this.infos_0 = infos_0; +} + +defineClass(1363, 1, $intern_19, LabelDummySwitcher$lambda$3$Type); +_.accept = function accept_76(arg0){ + lambda$3_2(this.infos_0, castTo(arg0, 286)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$3$Type', 1363); +function LabelDummySwitcher$lambda$4$Type(){ +} + +defineClass(1364, 1, $intern_88, LabelDummySwitcher$lambda$4$Type); +_.compare_1 = function compare_46(arg0, arg1){ + return lambda$4_5(castTo(arg0, 286), castTo(arg1, 286)); +} +; +_.equals_0 = function equals_119(other){ + return this === other; +} +; +_.reversed = function reversed_38(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$4$Type', 1364); +function $process_29(layeredGraph, monitor){ + $begin(monitor, 'Label management', 1); + throwClassCastExceptionUnlessNull($getProperty(layeredGraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $done_0(monitor); +} + +function LabelManagementProcessor(){ +} + +defineClass(791, 1, $intern_105, LabelManagementProcessor); +_.process = function process_27(layeredGraph, monitor){ + $process_29(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelManagementProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelManagementProcessor', 791); +function $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide){ + var currLongEdgeSource, currLongEdgeTarget, currentDummy, currentDummy$iterator, endPort, endPort0, labelDummyRun, prevLongEdgeSource, prevLongEdgeTarget; + labelDummyRun = newArrayListWithCapacity(dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1); + prevLongEdgeSource = null; + prevLongEdgeTarget = null; + for (currentDummy$iterator = new ArrayDeque$IteratorImpl(dummyNodes); currentDummy$iterator.currentIndex != currentDummy$iterator.fence;) { + currentDummy = castTo($next_6(currentDummy$iterator), 10); + currLongEdgeSource = (endPort0 = castTo($getProperty(currentDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE)), 11) , !endPort0?null:endPort0.owner); + currLongEdgeTarget = (endPort = castTo($getProperty(currentDummy, LONG_EDGE_TARGET), 11) , !endPort?null:endPort.owner); + if (prevLongEdgeSource != currLongEdgeSource || prevLongEdgeTarget != currLongEdgeTarget) { + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); + prevLongEdgeSource = currLongEdgeSource; + prevLongEdgeTarget = currLongEdgeTarget; + } + labelDummyRun.array[labelDummyRun.array.length] = currentDummy; + } + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); +} + +function $applyLabelSide(labels, side){ + var label_0, label$iterator; + for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); + } +} + +function $applyLabelSide_0(edge, side){ + var label_0, label$iterator; + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); + } +} + +function $applyLabelSide_1(labelDummy, side){ + var effectiveSide, originEdge, port, port$iterator, portPos, thickness; + if (labelDummy.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + effectiveSide = $spliterator($filter(castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).stream(), new Predicate$lambda$2$Type(new LabelSideSelector$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?side:($clinit_LabelSide() , INLINE); + $setProperty_0(labelDummy, LABEL_SIDE, effectiveSide); + if (effectiveSide != ($clinit_LabelSide() , BELOW)) { + originEdge = castTo($getProperty(labelDummy, ORIGIN_0), 17); + thickness = $doubleValue(castToDouble($getProperty(originEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + portPos = 0; + if (effectiveSide == ABOVE) { + portPos = labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness / 2); + } + else if (effectiveSide == INLINE) { + labelDummy.size_0.y_0 -= $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))); + portPos = (labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness)) / 2; + } + for (port$iterator = new ArrayList$1(labelDummy.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.pos.y_0 = portPos; + } + } + } +} + +function $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide){ + var dummyNode, dummyNode$iterator; + if (labelDummyRun.array.length != 0) { + if (labelDummyRun.array.length == 2) { + $applyLabelSide_1((checkCriticalElementIndex(0, labelDummyRun.array.length) , castTo(labelDummyRun.array[0], 10)), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide_1((checkCriticalElementIndex(1, labelDummyRun.array.length) , castTo(labelDummyRun.array[1], 10)), BELOW); + } + else { + for (dummyNode$iterator = new ArrayList$1(labelDummyRun); dummyNode$iterator.i < dummyNode$iterator.this$01.array.length;) { + dummyNode = castTo($next_7(dummyNode$iterator), 10); + $applyLabelSide_1(dummyNode, defaultSide); + } + } + labelDummyRun.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } +} + +function $basedOnDirection(graph, sideForRightwardEdges){ + var edge, edge$iterator, layer, layer$iterator, node, node$iterator, side, incoming, outgoing; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { + side = (incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , !$booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || !$booleanValue(castToBoolean($getProperty(outgoing, REVERSED))))?sideForRightwardEdges:$opposite_0(sideForRightwardEdges); + $applyLabelSide_1(node, side); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + side = $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))?$opposite_0(sideForRightwardEdges):sideForRightwardEdges; + $applyLabelSide_0(edge, side); + } + } + } +} + +function $process_30(layeredGraph, monitor){ + var mode; + mode = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); + $begin(monitor, 'Label side selection (' + mode + ')', 1); + switch (mode.ordinal) { + case 0: + $sameSide(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 1: + $sameSide(layeredGraph, ($clinit_LabelSide() , BELOW)); + break; + case 2: + $basedOnDirection(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 3: + $basedOnDirection(layeredGraph, ($clinit_LabelSide() , BELOW)); + break; + case 4: + $smart(layeredGraph, ($clinit_LabelSide() , ABOVE)); + break; + case 5: + $smart(layeredGraph, ($clinit_LabelSide() , BELOW)); + } + $done_0(monitor); +} + +function $sameSide(graph, labelSide){ + var edge, edge$iterator, layer, layer$iterator, node, node$iterator; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.type_0 == ($clinit_LNode$NodeType() , LABEL) && $applyLabelSide_1(node, labelSide); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $applyLabelSide_0(edge, labelSide); + } + } + } +} + +function $smart(graph, defaultSide){ + var dummyNodeQueue, labelDummiesInQueue, layer, layer$iterator, node, node$iterator, topGroup; + dummyNodeQueue = new ArrayDeque; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + topGroup = true; + labelDummiesInQueue = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + switch (node.type_0.ordinal) { + case 4: + ++labelDummiesInQueue; + case 1: + $addLast(dummyNodeQueue, node); + break; + case 0: + $smartForRegularNode(node, defaultSide); + default:dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, false, defaultSide); + topGroup = false; + labelDummiesInQueue = 0; + } + } + dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, true, defaultSide); + } +} + +function $smartForConsecutiveDummyNodeRun(dummyNodes, labelDummyCount, topGroup, bottomGroup, defaultSide){ + if (topGroup && (!bottomGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.head], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.head], 10), ($clinit_LabelSide() , ABOVE)); + } + else if (bottomGroup && (!topGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { + $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10), ($clinit_LabelSide() , BELOW)); + } + else if ((dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) == 2) { + $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), BELOW); + } + else { + $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide); + } + $clear_4(dummyNodes); +} + +function $smartForRegularNode(node, defaultSide){ + var currentPortSide, endLabelQueue, port, port$iterator, portEndLabels; + endLabelQueue = new ArrayDeque_0(node.ports.array.length); + currentPortSide = null; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (port.side != currentPortSide) { + endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); + $clear_4(endLabelQueue); + currentPortSide = port.side; + } + portEndLabels = gatherLabels(port); + !!portEndLabels && ($addLast(endLabelQueue, portEndLabels) , true); + } + endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); +} + +function $smartForRegularNodePortEndLabels(endLabelQueue, portSide, defaultSide){ + var labelList, labelList$iterator; + if ((endLabelQueue.tail - endLabelQueue.head & endLabelQueue.array.length - 1) == 2) { + if (portSide == ($clinit_PortSide() , NORTH_3) || portSide == EAST_2) { + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , ABOVE)); + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), BELOW); + } + else { + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , BELOW)); + $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ABOVE); + } + } + else { + for (labelList$iterator = new ArrayDeque$IteratorImpl(endLabelQueue); labelList$iterator.currentIndex != labelList$iterator.fence;) { + labelList = castTo($next_6(labelList$iterator), 15); + $applyLabelSide(labelList, defaultSide); + } + } +} + +function LabelSideSelector(){ +} + +defineClass(1549, 1, $intern_105, LabelSideSelector); +_.process = function process_28(layeredGraph, monitor){ + $process_30(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector', 1549); +function LabelSideSelector$lambda$0$Type(){ +} + +defineClass(1550, 1, $intern_39, LabelSideSelector$lambda$0$Type); +_.test_0 = function test_42(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector/lambda$0$Type', 1550); +function $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer){ + var layer, layer$iterator, layerIter, node, node$array, node$index, node$max, nodes; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodes = toNodeArray(layer.nodes); + for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 1: + $throwUpUnlessNoIncomingEdges(node); + $setLayer_0(node, firstLayer); + $moveLabelsToLabelLayer(node, true, firstLabelLayer); + break; + case 3: + $throwUpUnlessNoOutgoingEdges(node); + $setLayer_0(node, lastLayer); + $moveLabelsToLabelLayer(node, false, lastLabelLayer); + } + } + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)).nodes.array.length == 0 && $remove_8(layerIter); + } +} + +function $moveLabelsToLabelLayer(node, incoming, labelLayer){ + var edge, edge$iterator, possibleLableDummy; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2((incoming?$getIncomingEdges(node):$getOutgoingEdges(node)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + possibleLableDummy = incoming?edge.source.owner:edge.target.owner; + possibleLableDummy.type_0 == ($clinit_LNode$NodeType() , LABEL) && $setLayer_0(possibleLableDummy, labelLayer); + } +} + +function $process_31(layeredGraph, monitor){ + var firstLabelLayer, firstLayer, firstSeparateLayer, lastLabelLayer, lastLayer, lastSeparateLayer, layers; + $begin(monitor, 'Layer constraint postprocessing', 1); + layers = layeredGraph.layers; + if (layers.array.length != 0) { + firstLayer = (checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)); + lastLayer = castTo($get_11(layers, layers.array.length - 1), 29); + firstLabelLayer = new Layer(layeredGraph); + lastLabelLayer = new Layer(layeredGraph); + $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer); + firstLabelLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstLabelLayer)); + lastLabelLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastLabelLayer , true); + } + if ($hasProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES))) { + firstSeparateLayer = new Layer(layeredGraph); + lastSeparateLayer = new Layer(layeredGraph); + $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer); + firstSeparateLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstSeparateLayer)); + lastSeparateLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastSeparateLayer , true); + } + $done_0(monitor); +} + +function $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer){ + var hiddenEdge, hiddenEdge$iterator, hiddenNode, hiddenNode$iterator, isOutgoing, originalOppositePort; + for (hiddenNode$iterator = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES)), 15).iterator_0(); hiddenNode$iterator.hasNext_0();) { + hiddenNode = castTo(hiddenNode$iterator.next_1(), 10); + switch (castTo($getProperty(hiddenNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 2: + $setLayer_0(hiddenNode, firstSeparateLayer); + break; + case 4: + $setLayer_0(hiddenNode, lastSeparateLayer); + } + for (hiddenEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(hiddenNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(hiddenEdge$iterator);) { + hiddenEdge = castTo($next_0(hiddenEdge$iterator), 17); + if (!!hiddenEdge.source && !!hiddenEdge.target) { + continue; + } + isOutgoing = !hiddenEdge.target; + originalOppositePort = castTo($getProperty(hiddenEdge, ORIGINAL_OPPOSITE_PORT), 11); + isOutgoing?$setTarget_0(hiddenEdge, originalOppositePort):$setSource_0(hiddenEdge, originalOppositePort); + } + } +} + +function $throwUpUnlessNoIncomingEdges(node){ + var incoming, incoming$iterator; + for (incoming$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incoming$iterator);) { + incoming = castTo($next_0(incoming$iterator), 17); + if (incoming.source.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to FIRST, but has at least one incoming edge that " + ' does not come from a FIRST_SEPARATE node. That must not happen.')); + } + } +} + +function $throwUpUnlessNoOutgoingEdges(node){ + var outgoing, outgoing$iterator; + for (outgoing$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoing$iterator);) { + outgoing = castTo($next_0(outgoing$iterator), 17); + if (outgoing.target.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to LAST, but has at least one outgoing edge that " + ' does not go to a LAST_SEPARATE node. That must not happen.')); + } + } +} + +function LayerConstraintPostprocessor(){ +} + +defineClass(1558, 1, $intern_105, LayerConstraintPostprocessor); +_.process = function process_29(layeredGraph, monitor){ + $process_31(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPostprocessor', 1558); +function $clinit_LayerConstraintPreprocessor(){ + $clinit_LayerConstraintPreprocessor = emptyMethod; + HIDDEN_NODE_CONNECTIONS = new Property_0('separateLayerConnections', ($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , NONE_0)); +} + +function $ensureNoInacceptableEdges(lNode){ + var inEdge, inEdge$iterator, layerConstraint, outEdge, outEdge$iterator; + layerConstraint = castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { + for (inEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inEdge$iterator);) { + inEdge = castTo($next_0(inEdge$iterator), 17); + if (!$isAcceptableIncidentEdge(inEdge)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. " + 'FIRST_SEPARATE nodes must not have incoming edges.')); + } + } + } + else if (layerConstraint == LAST_SEPARATE_0) { + for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { + outEdge = castTo($next_0(outEdge$iterator), 17); + if (!$isAcceptableIncidentEdge(outEdge)) { + throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. " + 'LAST_SEPARATE nodes must not have outgoing edges.')); + } + } + } +} + +function $hide(lNode){ + var lEdge, lEdge$iterator, isOutgoing, oppositePort; + $ensureNoInacceptableEdges(lNode); + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + isOutgoing = lEdge.source.owner == lNode; + oppositePort = isOutgoing?lEdge.target:lEdge.source; + isOutgoing?$setTarget_0(lEdge, null):$setSource_0(lEdge, null); + $setProperty_0(lEdge, ($clinit_InternalProperties_1() , ORIGINAL_OPPOSITE_PORT), oppositePort); + $updateOppositeNodeLayerConstraints(lNode, oppositePort.owner); + } +} + +function $isAcceptableIncidentEdge(edge){ + var sourceNode, targetNode; + sourceNode = edge.source.owner; + targetNode = edge.target.owner; + return sourceNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && targetNode.type_0 == EXTERNAL_PORT; +} + +function $isRelevantNode(lNode){ + switch (castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 2: + case 4: + return true; + default:return false; + } +} + +function $process_32(layeredGraph, monitor){ + var hiddenNodes, lNode, nodeIterator; + $begin(monitor, 'Layer constraint preprocessing', 1); + hiddenNodes = new ArrayList; + nodeIterator = new AbstractList$ListIteratorImpl(layeredGraph.layerlessNodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + lNode = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if ($isRelevantNode(lNode)) { + $hide(lNode); + hiddenNodes.array[hiddenNodes.array.length] = lNode; + $remove_8(nodeIterator); + } + } + hiddenNodes.array.length == 0 || $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES), hiddenNodes); + $done_0(monitor); +} + +function $updateOppositeNodeLayerConstraints(hiddenNode, oppositeNode){ + var connections; + if ($hasProperty(oppositeNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0))) { + return; + } + connections = $combine_0(castTo($getProperty(oppositeNode, HIDDEN_NODE_CONNECTIONS), 360), castTo($getProperty(hiddenNode, LAYERING_LAYER_CONSTRAINT_0), 163)); + $setProperty_0(oppositeNode, HIDDEN_NODE_CONNECTIONS, connections); + if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(oppositeNode).val$inputs1.iterator_0(), new Iterables$10)))) { + return; + } + switch (connections.ordinal) { + case 1: + $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); + break; + case 2: + $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); + } +} + +function LayerConstraintPreprocessor(){ + $clinit_LayerConstraintPreprocessor(); +} + +defineClass(1559, 1, $intern_105, LayerConstraintPreprocessor); +_.process = function process_30(layeredGraph, monitor){ + $process_32(castTo(layeredGraph, 37), monitor); +} +; +var HIDDEN_NODE_CONNECTIONS; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor', 1559); +function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections = emptyMethod; + NONE_0 = new LayerConstraintPreprocessor$HiddenNodeConnections('NONE', 0); + FIRST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('FIRST_SEPARATE', 1); + LAST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('LAST_SEPARATE', 2); + BOTH = new LayerConstraintPreprocessor$HiddenNodeConnections('BOTH', 3); +} + +function $combine_0(this$static, layerConstraint){ + switch (this$static.ordinal) { + case 0: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:LAST_SEPARATE; + case 1: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:BOTH; + case 2: + return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?BOTH:LAST_SEPARATE; + default:return BOTH; + } +} + +function LayerConstraintPreprocessor$HiddenNodeConnections(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_33(name_0){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); + return valueOf(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map() , $MAP_21), name_0); +} + +function values_39(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]); +} + +defineClass(360, 22, {3:1, 35:1, 22:1, 360:1}, LayerConstraintPreprocessor$HiddenNodeConnections); +var BOTH, FIRST_SEPARATE, LAST_SEPARATE, NONE_0; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor/HiddenNodeConnections', 360, Ljava_lang_Enum_2_classLit, values_39, valueOf_33); +function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map(){ + $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map = emptyMethod; + $MAP_21 = createValueOfMap(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]))); +} + +var $MAP_21; +function $process_33(layeredGraph, monitor){ + var bottom, firstNode, foundNodes, lastNode, layer, layer$iterator, layerSize, maxY, minY, node, node$iterator, nodeMargin, nodeSize, top_0; + $begin(monitor, 'Layer size calculation', 1); + minY = $intern_59; + maxY = $intern_60; + foundNodes = false; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerSize = layer.size_0; + layerSize.x_0 = 0; + layerSize.y_0 = 0; + if (layer.nodes.array.length == 0) { + continue; + } + foundNodes = true; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeSize = node.size_0; + nodeMargin = node.margin; + layerSize.x_0 = $wnd.Math.max(layerSize.x_0, nodeSize.x_0 + nodeMargin.left + nodeMargin.right); + } + firstNode = castTo($get_11(layer.nodes, 0), 10); + top_0 = firstNode.pos.y_0 - firstNode.margin.top_0; + firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (top_0 -= castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).top_0); + lastNode = castTo($get_11(layer.nodes, layer.nodes.array.length - 1), 10); + bottom = lastNode.pos.y_0 + lastNode.size_0.y_0 + lastNode.margin.bottom; + lastNode.type_0 == EXTERNAL_PORT && (bottom += castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).bottom); + layerSize.y_0 = bottom - top_0; + minY = $wnd.Math.min(minY, top_0); + maxY = $wnd.Math.max(maxY, bottom); + } + if (!foundNodes) { + minY = 0; + maxY = 0; + } + layeredGraph.size_0.y_0 = maxY - minY; + layeredGraph.offset.y_0 -= minY; + $done_0(monitor); +} + +function LayerSizeAndGraphHeightCalculator(){ +} + +defineClass(1560, 1, $intern_105, LayerSizeAndGraphHeightCalculator); +_.process = function process_31(layeredGraph, monitor){ + $process_33(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerSizeAndGraphHeightCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerSizeAndGraphHeightCalculator', 1560); +function $process_34(layeredGraph, monitor){ + var addUnnecessaryBendpoints, layer, layer$iterator, node, nodeIterator; + $begin(monitor, 'Edge joining', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); + while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + joinAt(node, addUnnecessaryBendpoints); + $remove_8(nodeIterator); + } + } + } + $done_0(monitor); +} + +function LongEdgeJoiner(){ +} + +function joinAt(longEdgeDummy, addUnnecessaryBendpoints){ + var bendPoint, bendPoint$iterator, droppedEdge, droppedEdgeListIndex, droppedJunctionsPoints, edgeCount, inputPortEdges, jp, jp$iterator, label_0, label$iterator, outputPortEdges, survivingBendPoints, survivingEdge, survivingJunctionPoints, survivingLabels, targetIncomingEdges, unnecessaryBendpoint; + inputPortEdges = castTo($getPorts_1(longEdgeDummy, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11).incomingEdges; + outputPortEdges = castTo($getPorts_1(longEdgeDummy, EAST_2).iterator_0().next_1(), 11).outgoingEdges; + edgeCount = inputPortEdges.array.length; + unnecessaryBendpoint = $getAbsoluteAnchor(castTo($get_11(longEdgeDummy.ports, 0), 11)); + while (edgeCount-- > 0) { + survivingEdge = (checkCriticalElementIndex(0, inputPortEdges.array.length) , castTo(inputPortEdges.array[0], 17)); + droppedEdge = (checkCriticalElementIndex(0, outputPortEdges.array.length) , castTo(outputPortEdges.array[0], 17)); + targetIncomingEdges = droppedEdge.target.incomingEdges; + droppedEdgeListIndex = $indexOf_3(targetIncomingEdges, droppedEdge, 0); + $setTargetAndInsertAtIndex(survivingEdge, droppedEdge.target, droppedEdgeListIndex); + $setSource_0(droppedEdge, null); + $setTarget_0(droppedEdge, null); + survivingBendPoints = survivingEdge.bendPoints; + addUnnecessaryBendpoints && $add_7(survivingBendPoints, new KVector_2(unnecessaryBendpoint)); + for (bendPoint$iterator = $listIterator_2(droppedEdge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + $add_7(survivingBendPoints, new KVector_2(bendPoint)); + } + survivingLabels = survivingEdge.labels; + for (label$iterator = new ArrayList$1(droppedEdge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + survivingLabels.array[survivingLabels.array.length] = label_0; + } + survivingJunctionPoints = castTo($getProperty(survivingEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + droppedJunctionsPoints = castTo($getProperty(droppedEdge, JUNCTION_POINTS), 74); + if (droppedJunctionsPoints) { + if (!survivingJunctionPoints) { + survivingJunctionPoints = new KVectorChain; + $setProperty_0(survivingEdge, JUNCTION_POINTS, survivingJunctionPoints); + } + for (jp$iterator = $listIterator_2(droppedJunctionsPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + $add_7(survivingJunctionPoints, new KVector_2(jp)); + } + } + } +} + +defineClass(1561, 1, $intern_105, LongEdgeJoiner); +_.process = function process_32(layeredGraph, monitor){ + $process_34(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeJoiner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeJoiner', 1561); +function $process_35(layeredGraph, monitor){ + var edge, edge$iterator, layer, layerIter, nextLayer, node, node$iterator, port, port$iterator, targetLayer, targetPort, dummyNode; + $begin(monitor, 'Edge splitting', 1); + if (layeredGraph.layers.array.length <= 2) { + $done_0(monitor); + return; + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = nextLayer; + nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer != layer && targetLayer != nextLayer && splitEdge(edge, (dummyNode = new LNode(layeredGraph) , $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)) , $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge) , $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)) , $setLayer_0(dummyNode, nextLayer) , dummyNode)); + } + } + } + } + $done_0(monitor); +} + +function LongEdgeSplitter(){ +} + +function moveHeadLabels(oldEdge, newEdge){ + var label_0, labelIterator, labelPlacement; + labelIterator = new AbstractList$ListIteratorImpl(oldEdge.labels, 0); + while (labelIterator.i < labelIterator.this$01_0.size_1()) { + label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); + if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { + $remove_8(labelIterator); + $add_3(newEdge.labels, label_0); + $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, oldEdge); + } + } +} + +function setDummyNodeProperties(dummyNode, inEdge, outEdge){ + var inEdgeSourceNode, outEdgeTargetNode; + inEdgeSourceNode = inEdge.source.owner; + outEdgeTargetNode = outEdge.target.owner; + if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, castToBoolean($getProperty(inEdgeSourceNode, LONG_EDGE_HAS_LABEL_DUMMIES))); + } + else if (inEdgeSourceNode.type_0 == LABEL) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); + } + else if (outEdgeTargetNode.type_0 == LABEL) { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(outEdgeTargetNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(outEdgeTargetNode, LONG_EDGE_TARGET), 11)); + $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); + } + else { + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, outEdge.target); + } +} + +function splitEdge(edge, dummyNode){ + var dummyEdge, dummyInput, dummyOutput, oldEdgeTarget, portPos, thickness; + oldEdgeTarget = edge.target; + thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + dummyNode.size_0.y_0 = thickness; + portPos = $wnd.Math.floor(thickness / 2); + dummyInput = new LPort; + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInput, dummyNode); + dummyInput.pos.y_0 = portPos; + dummyOutput = new LPort; + $setSide(dummyOutput, EAST_2); + $setNode(dummyOutput, dummyNode); + dummyOutput.pos.y_0 = portPos; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, oldEdgeTarget); + setDummyNodeProperties(dummyNode, edge, dummyEdge); + moveHeadLabels(edge, dummyEdge); + return dummyEdge; +} + +defineClass(1562, 1, $intern_105, LongEdgeSplitter); +_.process = function process_33(layeredGraph, monitor){ + $process_35(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeSplitter', 1562); +function $precalculateAndSetInformation(this$static){ + var dummyBaggage, inDegree, incoming, layer, layer$iterator, layer$iterator0, layerID, layerSize, layerSizePixel, node, node$iterator, nodeID, nodesNdummies, outDegree, outcoming; + this$static.nodeSizeAffix = $doubleValue(castToDouble($getProperty(this$static.masterGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + this$static.dummySize = $doubleValue(castToDouble($getProperty(this$static.masterGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + this$static.maxHeight = this$static.masterGraph.layers.array.length; + layerID = this$static.maxHeight - 1; + nodeID = 0; + this$static.maxWidth = 0; + this$static.maxWidthPixel = 0; + this$static.currentWidth = newArrayList_1(initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, this$static.maxHeight, 0, 1)); + this$static.currentWidthPixel = newArrayList_1(initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, this$static.maxHeight, 7, 1)); + for (layer$iterator0 = new ArrayList$1(this$static.masterGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + layer.id_0 = layerID; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nodeID; + ++nodeID; + } + --layerID; + } + this$static.layers = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeID, 15, 1); + this$static.degreeDiff = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [nodeID, 3], 2); + this$static.nodes = new ArrayList; + this$static.nodesWithIncomingEdges = new ArrayList; + dummyBaggage = 0; + this$static.dummyNodeCount = 0; + for (layer$iterator = new ArrayList$1(this$static.masterGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerID = layer.id_0; + incoming = 0; + outcoming = 0; + layerSize = layer.nodes.array.length; + layerSizePixel = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeID = node.id_0; + this$static.layers[nodeID] = node.layer.id_0; + layerSizePixel += node.size_0.y_0 + this$static.nodeSizeAffix; + inDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + outDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + this$static.degreeDiff[nodeID][0] = outDegree - inDegree; + this$static.degreeDiff[nodeID][1] = inDegree; + this$static.degreeDiff[nodeID][2] = outDegree; + incoming += inDegree; + outcoming += outDegree; + inDegree > 0 && $add_3(this$static.nodesWithIncomingEdges, node); + $add_3(this$static.nodes, node); + } + dummyBaggage -= incoming; + nodesNdummies = layerSize + dummyBaggage; + layerSizePixel += dummyBaggage * this$static.dummySize; + $set_1(this$static.currentWidth, layerID, valueOf_4(nodesNdummies)); + $set_1(this$static.currentWidthPixel, layerID, layerSizePixel); + this$static.maxWidth = $wnd.Math.max(this$static.maxWidth, nodesNdummies); + this$static.maxWidthPixel = $wnd.Math.max(this$static.maxWidthPixel, layerSizePixel); + this$static.dummyNodeCount += dummyBaggage; + dummyBaggage += outcoming; + } +} + +function $process_36(this$static, layeredGraph, progressMonitor){ + var donna, donna$iterator, funFunction, martha, martha$iterator, newMaxWidth, newMaxWidthPixel, promoteUntil, promoteUntilD, promoteUntilN; + $begin(progressMonitor, 'Node promotion heuristic', 1); + this$static.masterGraph = layeredGraph; + $precalculateAndSetInformation(this$static); + this$static.promotionStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_NODE_PROMOTION_STRATEGY_0)), 260); + promoteUntil = castTo($getProperty(this$static.masterGraph, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0), 19).value_0; + funFunction = new NodePromotion$lambda$0$Type; + switch (this$static.promotionStrategy.ordinal) { + case 2: + case 1: + $promotionMagic(this$static, funFunction); + break; + case 3: + this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); + $promotionMagic(this$static, funFunction); + newMaxWidth = 0; + for (martha$iterator = new ArrayList$1(this$static.currentWidth); martha$iterator.i < martha$iterator.this$01.array.length;) { + martha = castTo($next_7(martha$iterator), 19); + newMaxWidth = $wnd.Math.max(newMaxWidth, martha.value_0); + } + + if (newMaxWidth > this$static.maxWidth) { + this$static.promotionStrategy = NIKOLOV; + $promotionMagic(this$static, funFunction); + } + + break; + case 4: + this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); + $promotionMagic(this$static, funFunction); + newMaxWidthPixel = 0; + for (donna$iterator = new ArrayList$1(this$static.currentWidthPixel); donna$iterator.i < donna$iterator.this$01.array.length;) { + donna = castToDouble($next_7(donna$iterator)); + newMaxWidthPixel = $wnd.Math.max(newMaxWidthPixel, (checkCriticalNotNull(donna) , donna)); + } + + if (newMaxWidthPixel > this$static.maxWidthPixel) { + this$static.promotionStrategy = NIKOLOV_PIXEL; + $promotionMagic(this$static, funFunction); + } + + break; + case 6: + promoteUntilN = round_int($wnd.Math.ceil(this$static.layers.length * promoteUntil / 100)); + $promotionMagic(this$static, new NodePromotion$lambda$1$Type(promoteUntilN)); + break; + case 5: + promoteUntilD = round_int($wnd.Math.ceil(this$static.dummyNodeCount * promoteUntil / 100)); + $promotionMagic(this$static, new NodePromotion$lambda$2$Type(promoteUntilD)); + break; + default:$promotionMagic(this$static, funFunction); + } + $setNewLayering(this$static, layeredGraph); + $done_0(progressMonitor); +} + +function $promoteNode(this$static, node){ + var dummiesBuilt, dummiesReduced, dummydiff, edge, edge$iterator, masterNode, maxWidthNotExceeded, nodeLayerPos, nodeSize, promotion; + maxWidthNotExceeded = true; + dummydiff = 0; + nodeLayerPos = this$static.layers[node.id_0]; + nodeSize = node.size_0.y_0 + this$static.nodeSizeAffix; + dummiesBuilt = this$static.degreeDiff[node.id_0][2]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 - 1 + dummiesBuilt)); + $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) - nodeSize + dummiesBuilt * this$static.dummySize); + ++nodeLayerPos; + if (nodeLayerPos >= this$static.maxHeight) { + ++this$static.maxHeight; + $add_3(this$static.currentWidth, valueOf_4(1)); + $add_3(this$static.currentWidthPixel, nodeSize); + } + else { + dummiesReduced = this$static.degreeDiff[node.id_0][1]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 + 1 - dummiesReduced)); + $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) + nodeSize - dummiesReduced * this$static.dummySize); + } + (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) && (castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 > this$static.maxWidth || castTo($get_11(this$static.currentWidth, nodeLayerPos - 1), 19).value_0 > this$static.maxWidth) || this$static.promotionStrategy == NIKOLOV_PIXEL && ($doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) > this$static.maxWidthPixel || $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos - 1))) > this$static.maxWidthPixel)) && (maxWidthNotExceeded = false); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + masterNode = edge.source.owner; + if (this$static.layers[masterNode.id_0] == nodeLayerPos) { + promotion = $promoteNode(this$static, masterNode); + dummydiff = dummydiff + castTo(promotion.first, 19).value_0; + maxWidthNotExceeded = maxWidthNotExceeded && $booleanValue(castToBoolean(promotion.second)); + } + } + this$static.layers[node.id_0] = nodeLayerPos; + dummydiff = dummydiff + this$static.degreeDiff[node.id_0][0]; + return new Pair(valueOf_4(dummydiff), ($clinit_Boolean() , maxWidthNotExceeded?true:false)); +} + +function $promotionMagic(this$static, funky){ + var apply_0, currentWidthBackup, currentWidthPixelBackup, dummyBackup, heightBackup, iterationCounter, layeringBackup, node, node$iterator, promotionFlag, promotionPair, promotions, reducedDummies; + iterationCounter = 0; + reducedDummies = 0; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + dummyBackup = this$static.dummyNodeCount; + heightBackup = this$static.maxHeight; + currentWidthBackup = this$static.currentWidth; + currentWidthPixelBackup = this$static.currentWidthPixel; + do { + promotions = 0; + for (node$iterator = new ArrayList$1(this$static.nodesWithIncomingEdges); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + promotionPair = $promoteNode(this$static, node); + apply_0 = true; + (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) || this$static.promotionStrategy == NIKOLOV_PIXEL) && (apply_0 = $booleanValue(castToBoolean(promotionPair.second))); + if (castTo(promotionPair.first, 19).value_0 < 0 && apply_0) { + ++promotions; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + this$static.dummyNodeCount = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; + reducedDummies += dummyBackup - this$static.dummyNodeCount; + dummyBackup = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; + heightBackup = this$static.maxHeight; + currentWidthBackup = newArrayList(this$static.currentWidth); + currentWidthPixelBackup = newArrayList(this$static.currentWidthPixel); + } + else { + this$static.layers = copyOf(layeringBackup, layeringBackup.length); + this$static.dummyNodeCount = dummyBackup; + this$static.currentWidth = (checkNotNull(currentWidthBackup) , currentWidthBackup?new ArrayList_1(currentWidthBackup):newArrayList_0(new ArrayList$1(currentWidthBackup))); + this$static.currentWidthPixel = (checkNotNull(currentWidthPixelBackup) , currentWidthPixelBackup?new ArrayList_1(currentWidthPixelBackup):newArrayList_0(new ArrayList$1(currentWidthPixelBackup))); + this$static.maxHeight = heightBackup; + } + } + ++iterationCounter; + promotionFlag = promotions != 0 && $booleanValue(castToBoolean(funky.apply_0(new Pair(valueOf_4(reducedDummies), valueOf_4(iterationCounter))))); + } + while (promotionFlag); +} + +function $setNewLayering(this$static, layeredGraph){ + var i, laLaLayer, layList, layerIt, node, node$iterator, possiblyEvilLayer; + layList = new ArrayList; + for (i = 0; i <= this$static.maxHeight; i++) { + laLaLayer = new Layer(layeredGraph); + laLaLayer.id_0 = this$static.maxHeight - i; + layList.array[layList.array.length] = laLaLayer; + } + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, castTo($get_11(layList, this$static.maxHeight - this$static.layers[node.id_0]), 29)); + } + layerIt = new ArrayList$1(layList); + while (layerIt.i < layerIt.this$01.array.length) { + possiblyEvilLayer = castTo($next_7(layerIt), 29); + possiblyEvilLayer.nodes.array.length == 0 && $remove_13(layerIt); + } + layeredGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(layeredGraph.layers, layList); +} + +function NodePromotion(){ +} + +function lambda$1_10(promoteUntilN_0, pair_1){ + return $clinit_Boolean() , castTo(pair_1.second, 19).value_0 < promoteUntilN_0?true:false; +} + +function lambda$2_5(promoteUntilD_0, pair_1){ + return $clinit_Boolean() , castTo(pair_1.first, 19).value_0 < promoteUntilD_0?true:false; +} + +defineClass(1563, 1, $intern_105, NodePromotion); +_.process = function process_34(layeredGraph, progressMonitor){ + $process_36(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.dummyNodeCount = 0; +_.dummySize = 0; +_.maxHeight = 0; +_.maxWidth = 0; +_.maxWidthPixel = 0; +_.nodeSizeAffix = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion', 1563); +function NodePromotion$lambda$0$Type(){ +} + +defineClass(1564, 1, {}, NodePromotion$lambda$0$Type); +_.apply_0 = function apply_93(arg0){ + return castTo(arg0, 46) , $clinit_Boolean() , true; +} +; +_.equals_0 = function equals_120(other){ + return this === other; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$0$Type', 1564); +function NodePromotion$lambda$1$Type(promoteUntilN_0){ + this.promoteUntilN_0 = promoteUntilN_0; +} + +defineClass(1565, 1, {}, NodePromotion$lambda$1$Type); +_.apply_0 = function apply_94(arg0){ + return lambda$1_10(this.promoteUntilN_0, castTo(arg0, 46)); +} +; +_.equals_0 = function equals_121(other){ + return this === other; +} +; +_.promoteUntilN_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$1$Type', 1565); +function NodePromotion$lambda$2$Type(promoteUntilD_0){ + this.promoteUntilD_0 = promoteUntilD_0; +} + +defineClass(1566, 1, {}, NodePromotion$lambda$2$Type); +_.apply_0 = function apply_95(arg0){ + return lambda$2_5(this.promoteUntilD_0, castTo(arg0, 46)); +} +; +_.equals_0 = function equals_122(other){ + return this === other; +} +; +_.promoteUntilD_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$2$Type', 1566); +function $process_37(layeredGraph, monitor){ + var currentPort, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, port, port$iterator, portIterator, previousPort, routing, sameOriginPort, selfLoop, inputPort, outputPort, originInputPort, originOutputPort, bendPoint; + $begin(monitor, 'Odd port side processing', 1); + routing = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeArray = toNodeArray(layer.nodes); + for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 != ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + continue; + } + if (routing == ($clinit_EdgeRouting() , SPLINES)) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || $processSplineInputPort(port); + port.outgoingEdges.array.length == 0 || $processSplineOutputPort(port); + } + } + else if (instanceOf($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17)) { + selfLoop = castTo($getProperty(node, ORIGIN_0), 17); + inputPort = castTo($getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); + outputPort = castTo($getPorts_1(node, EAST_2).iterator_0().next_1(), 11); + originInputPort = castTo($getProperty(inputPort, ORIGIN_0), 11); + originOutputPort = castTo($getProperty(outputPort, ORIGIN_0), 11); + $setSource_0(selfLoop, originOutputPort); + $setTarget_0(selfLoop, originInputPort); + bendPoint = new KVector_2(outputPort.owner.pos); + bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originOutputPort.owner.pos, originOutputPort.pos, originOutputPort.anchor])).x_0; + $add_7(selfLoop.bendPoints, bendPoint); + bendPoint = new KVector_2(inputPort.owner.pos); + bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originInputPort.owner.pos, originInputPort.pos, originInputPort.anchor])).x_0; + $add_7(selfLoop.bendPoints, bendPoint); + } + else { + if (node.ports.array.length >= 2) { + sameOriginPort = true; + portIterator = new ArrayList$1(node.ports); + currentPort = castTo($next_7(portIterator), 11); + previousPort = null; + while (portIterator.i < portIterator.this$01.array.length) { + previousPort = currentPort; + currentPort = castTo($next_7(portIterator), 11); + if (!equals_Ljava_lang_Object__Z__devirtual$($getProperty(previousPort, ORIGIN_0), $getProperty(currentPort, ORIGIN_0))) { + sameOriginPort = false; + break; + } + } + } + else { + sameOriginPort = false; + } + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || $processInputPort(port, sameOriginPort); + port.outgoingEdges.array.length == 0 || $processOutputPort(port, sameOriginPort); + } + } + $setLayer_0(node, null); + } + } + $done_0(monitor); +} + +function $processInputPort(inputPort, addJunctionPoints){ + var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, junctionPoints, originPort, x_0, y_0; + originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; + y_0 = inputPort.owner.pos.y_0; + edgeArray = toEdgeArray(inputPort.incomingEdges); + for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + $setTarget_0(inEdge, originPort); + $addLast_0(inEdge.bendPoints, new KVector_1(x_0, y_0)); + if (addJunctionPoints) { + junctionPoints = castTo($getProperty(inEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(inEdge, JUNCTION_POINTS, junctionPoints); + } + $add_7(junctionPoints, new KVector_1(x_0, y_0)); + } + } +} + +function $processOutputPort(outputPort, addJunctionPoints){ + var edgeArray, junctionPoints, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max, x_0, y_0; + originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; + y_0 = outputPort.owner.pos.y_0; + edgeArray = toEdgeArray(outputPort.outgoingEdges); + for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + $setSource_0(outEdge, originPort); + $addFirst_0(outEdge.bendPoints, new KVector_1(x_0, y_0)); + if (addJunctionPoints) { + junctionPoints = castTo($getProperty(outEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(outEdge, JUNCTION_POINTS, junctionPoints); + } + $add_7(junctionPoints, new KVector_1(x_0, y_0)); + } + } +} + +function $processSplineInputPort(inputPort){ + var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, originPort; + originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, inputPort.owner.pos.y_0); + edgeArray = toEdgeArray(inputPort.incomingEdges); + for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { + inEdge = inEdge$array[inEdge$index]; + $setTarget_0(inEdge, originPort); + } +} + +function $processSplineOutputPort(outputPort){ + var edgeArray, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max; + originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, outputPort.owner.pos.y_0); + edgeArray = toEdgeArray(outputPort.outgoingEdges); + for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { + outEdge = outEdge$array[outEdge$index]; + $setSource_0(outEdge, originPort); + } +} + +function NorthSouthPortPostprocessor(){ +} + +defineClass(1567, 1, $intern_105, NorthSouthPortPostprocessor); +_.process = function process_35(layeredGraph, monitor){ + $process_37(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPostprocessor', 1567); +function $createDummyNode_0(layeredGraph, inPort, outPort, dummyNodes){ + var crossingHint, dummy, dummyInputPort, dummyOutputPort, edge, edge$array, edge$index, edge$max, edgeArray; + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + crossingHint = 0; + if (inPort) { + dummyInputPort = new LPort; + $setProperty_0(dummyInputPort, ($clinit_InternalProperties_1() , ORIGIN_0), inPort); + $setProperty_0(dummy, ORIGIN_0, inPort.owner); + $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInputPort, dummy); + edgeArray = toEdgeArray(inPort.incomingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setTarget_0(edge, dummyInputPort); + } + $setProperty_0(inPort, PORT_DUMMY, dummy); + ++crossingHint; + } + if (outPort) { + dummyOutputPort = new LPort; + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), outPort.owner); + $setProperty_0(dummyOutputPort, ORIGIN_0, outPort); + $setSide(dummyOutputPort, ($clinit_PortSide() , EAST_2)); + $setNode(dummyOutputPort, dummy); + edgeArray = toEdgeArray(outPort.outgoingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $setSource_0(edge, dummyOutputPort); + } + $setProperty_0(outPort, PORT_DUMMY, dummy); + ++crossingHint; + } + $setProperty_0(dummy, ($clinit_InternalProperties_1() , CROSSING_HINT), valueOf_4(crossingHint)); + dummyNodes.array[dummyNodes.array.length] = dummy; + return dummy; +} + +function $createDummyNodes(layeredGraph, ports, dummyNodes, opposingSideDummyNodes, barycenterAssociates){ + var edge, edge$iterator, edge$iterator0, edge$iterator1, in_0, inOutPort, inOutPort$iterator, inOutPorts, inPort, inPort$iterator, inPorts, northSouthSelfLoopEdges, out, outPort, outPort$iterator, outPorts, port, port$iterator, port$iterator0, sameSideSelfLoopEdges, dummy, dummyInputPort, dummyOutputPort; + inPorts = new ArrayList_0(ports.size_0); + outPorts = new ArrayList_0(ports.size_0); + inOutPorts = new ArrayList_0(ports.size_0); + sameSideSelfLoopEdges = new ArrayList_0(ports.size_0); + northSouthSelfLoopEdges = new ArrayList_0(ports.size_0); + for (port$iterator0 = $listIterator_2(ports, 0); port$iterator0.currentNode != port$iterator0.this$01.tail;) { + port = castTo($next_10(port$iterator0), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + if (edge.source.owner == edge.target.owner) { + if (port.side == edge.target.side) { + sameSideSelfLoopEdges.array[sameSideSelfLoopEdges.array.length] = edge; + continue; + } + else if (port.side == ($clinit_PortSide() , NORTH_3) && edge.target.side == SOUTH_2) { + northSouthSelfLoopEdges.array[northSouthSelfLoopEdges.array.length] = edge; + continue; + } + } + } + } + for (edge$iterator1 = new ArrayList$1(northSouthSelfLoopEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_7(edge$iterator1), 17); + $createNorthSouthSelfLoopDummyNodes(layeredGraph, edge, dummyNodes, opposingSideDummyNodes, ($clinit_PortSide() , EAST_2)); + } + for (edge$iterator = new ArrayList$1(sameSideSelfLoopEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + dummy = new LNode(layeredGraph); + $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + dummyInputPort = new LPort; + $setProperty_0(dummyInputPort, ORIGIN_0, edge.target); + $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInputPort, dummy); + dummyOutputPort = new LPort; + $setProperty_0(dummyOutputPort, ORIGIN_0, edge.source); + $setSide(dummyOutputPort, EAST_2); + $setNode(dummyOutputPort, dummy); + $setProperty_0(edge.source, PORT_DUMMY, dummy); + $setProperty_0(edge.target, PORT_DUMMY, dummy); + $setSource_0(edge, null); + $setTarget_0(edge, null); + dummyNodes.array[dummyNodes.array.length] = dummy; + $setProperty_0(dummy, CROSSING_HINT, valueOf_4(2)); + } + for (port$iterator = $listIterator_2(ports, 0); port$iterator.currentNode != port$iterator.this$01.tail;) { + port = castTo($next_10(port$iterator), 11); + in_0 = port.incomingEdges.array.length > 0; + out = port.outgoingEdges.array.length > 0; + in_0 && out?(inOutPorts.array[inOutPorts.array.length] = port , true):in_0?(inPorts.array[inPorts.array.length] = port , true):out && (outPorts.array[outPorts.array.length] = port , true); + } + for (inPort$iterator = new ArrayList$1(inPorts); inPort$iterator.i < inPort$iterator.this$01.array.length;) { + inPort = castTo($next_7(inPort$iterator), 11); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inPort, null, dummyNodes)); + } + for (outPort$iterator = new ArrayList$1(outPorts); outPort$iterator.i < outPort$iterator.this$01.array.length;) { + outPort = castTo($next_7(outPort$iterator), 11); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, null, outPort, dummyNodes)); + } + for (inOutPort$iterator = new ArrayList$1(inOutPorts); inOutPort$iterator.i < inOutPort$iterator.this$01.array.length;) { + inOutPort = castTo($next_7(inOutPort$iterator), 11); + $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inOutPort, inOutPort, dummyNodes)); + } +} + +function $createNorthSouthSelfLoopDummyNodes(layeredGraph, selfLoop, northDummyNodes, southDummyNodes, portSide){ + var northDummy, northDummyOutputPort, southDummy, southDummyInputPort; + northDummy = new LNode(layeredGraph); + $setType(northDummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); + $setProperty_0(northDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(northDummy, ($clinit_InternalProperties_1() , ORIGIN_0), selfLoop.source.owner); + northDummyOutputPort = new LPort; + $setProperty_0(northDummyOutputPort, ORIGIN_0, selfLoop.source); + $setSide(northDummyOutputPort, portSide); + $setNode(northDummyOutputPort, northDummy); + $setProperty_0(selfLoop.source, PORT_DUMMY, northDummy); + southDummy = new LNode(layeredGraph); + $setType(southDummy, NORTH_SOUTH_PORT); + $setProperty_0(southDummy, PORT_CONSTRAINTS_0, FIXED_POS); + $setProperty_0(southDummy, ORIGIN_0, selfLoop.target.owner); + southDummyInputPort = new LPort; + $setProperty_0(southDummyInputPort, ORIGIN_0, selfLoop.target); + $setSide(southDummyInputPort, portSide); + $setNode(southDummyInputPort, southDummy); + $setProperty_0(selfLoop.target, PORT_DUMMY, southDummy); + $setSource_0(selfLoop, northDummyOutputPort); + $setTarget_0(selfLoop, southDummyInputPort); + checkCriticalPositionIndex(0, northDummyNodes.array.length); + insertTo(northDummyNodes.array, 0, northDummy); + southDummyNodes.array[southDummyNodes.array.length] = southDummy; + $setProperty_0(northDummy, CROSSING_HINT, valueOf_4(1)); + $setProperty_0(southDummy, CROSSING_HINT, valueOf_4(1)); +} + +function $process_38(layeredGraph, monitor){ + var barycenterAssociates, dummy, dummy$iterator, dummy$iterator0, dummyPort, insertPoint, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, northDummyNodes, originPort, pointer, port, port$iterator, portList, predecessor, southDummyNodes, successor; + $begin(monitor, 'Odd port side processing', 1); + northDummyNodes = new ArrayList; + southDummyNodes = new ArrayList; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + pointer = -1; + nodeArray = toNodeArray(layer.nodes); + for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + ++pointer; + if (!(node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)))) { + continue; + } + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $sortPortList_0(node); + $setProperty_0(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT), node); + northDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + southDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + barycenterAssociates = new ArrayList; + portList = new LinkedList; + addAll_6(portList, $getPorts_1(node, ($clinit_PortSide() , NORTH_3))); + $createDummyNodes(layeredGraph, portList, northDummyNodes, southDummyNodes, barycenterAssociates); + insertPoint = pointer; + successor = node; + for (dummy$iterator0 = new ArrayList$1(northDummyNodes); dummy$iterator0.i < dummy$iterator0.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator0), 10); + $setLayer(dummy, insertPoint, layer); + ++pointer; + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); + $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(dummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(successor); + } + $reset_0(portList); + for (port$iterator = $getPorts_1(node, SOUTH_2).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $addNode_0(portList, port, portList.header, portList.header.next_0); + } + $createDummyNodes(layeredGraph, portList, southDummyNodes, null, barycenterAssociates); + predecessor = node; + for (dummy$iterator = new ArrayList$1(southDummyNodes); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + $setLayer(dummy, ++pointer, layer); + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); + $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(predecessor, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(dummy); + } + barycenterAssociates.array.length == 0 || $setProperty_0(node, BARYCENTER_ASSOCIATES, barycenterAssociates); + } + } + $done_0(monitor); +} + +function $sortPortList_0(node){ + var inOutPorts, inPorts, incoming, outPorts, outgoing, port, port$iterator, ports; + ports = node.ports.array.length; + inPorts = 0; + inOutPorts = ports; + outPorts = 2 * ports; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + switch (port.side.ordinal) { + case 2: + case 4: + port.id_0 = -1; + break; + case 1: + case 3: + incoming = port.incomingEdges.array.length; + outgoing = port.outgoingEdges.array.length; + incoming > 0 && outgoing > 0?(port.id_0 = inOutPorts++):incoming > 0?(port.id_0 = inPorts++):outgoing > 0?(port.id_0 = outPorts++):(port.id_0 = inPorts++); + } + } + $clinit_Collections(); + $sort(node.ports, new NorthSouthPortPreprocessor$lambda$0$Type); +} + +function NorthSouthPortPreprocessor(){ +} + +function lambda$0_24(port1_0, port2_1){ + var side1, side2; + side1 = port1_0.side; + side2 = port2_1.side; + return side1 != side2?side1.ordinal - side2.ordinal:port1_0.id_0 == port2_1.id_0?0:side1 == ($clinit_PortSide() , NORTH_3)?port1_0.id_0 - port2_1.id_0:port2_1.id_0 - port1_0.id_0; +} + +defineClass(1568, 1, $intern_105, NorthSouthPortPreprocessor); +_.process = function process_36(layeredGraph, monitor){ + $process_38(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor', 1568); +function NorthSouthPortPreprocessor$lambda$0$Type(){ +} + +defineClass(1569, 1, $intern_88, NorthSouthPortPreprocessor$lambda$0$Type); +_.compare_1 = function compare_47(arg0, arg1){ + return lambda$0_24(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_123(other){ + return this === other; +} +; +_.reversed = function reversed_39(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor/lambda$0$Type', 1569); +function $connectNodes(firstPartition, secondPartition){ + var edge, node, node$iterator, otherNode, otherNode$iterator, sourcePort, targetPort; + for (node$iterator = firstPartition.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + sourcePort = new LPort; + $setNode(sourcePort, node); + $setSide(sourcePort, ($clinit_PortSide() , EAST_2)); + $setProperty_0(sourcePort, ($clinit_InternalProperties_1() , PARTITION_DUMMY), ($clinit_Boolean() , true)); + for (otherNode$iterator = secondPartition.iterator_0(); otherNode$iterator.hasNext_0();) { + otherNode = castTo(otherNode$iterator.next_1(), 10); + targetPort = new LPort; + $setNode(targetPort, otherNode); + $setSide(targetPort, WEST_2); + $setProperty_0(targetPort, PARTITION_DUMMY, true); + edge = new LEdge; + $setProperty_0(edge, PARTITION_DUMMY, true); + $setSource_0(edge, sourcePort); + $setTarget_0(edge, targetPort); + } + } +} + +function $process_39(lGraph, monitor){ + var firstId, idIterator, partitionToNodesMap, result, secondId, sortedPartitionIDs; + $begin(monitor, 'Partition midprocessing', 1); + partitionToNodesMap = new HashMultimap; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionMidprocessor$lambda$0$Type), new PartitionMidprocessor$lambda$1$Type(partitionToNodesMap)); + if (partitionToNodesMap.totalSize == 0) { + return; + } + sortedPartitionIDs = castTo($collect_1($sorted_0((result = partitionToNodesMap.keySet , new StreamImpl(null, (!result?(partitionToNodesMap.keySet = new AbstractMapBasedMultimap$KeySet(partitionToNodesMap, partitionToNodesMap.map_0)):result).spliterator_0()))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + idIterator = sortedPartitionIDs.iterator_0(); + firstId = castTo(idIterator.next_1(), 19); + while (idIterator.hasNext_0()) { + secondId = castTo(idIterator.next_1(), 19); + $connectNodes(castTo($get(partitionToNodesMap, firstId), 21), castTo($get(partitionToNodesMap, secondId), 21)); + firstId = secondId; + } + $done_0(monitor); +} + +function PartitionMidprocessor(){ +} + +function lambda$1_11(partitionToNodesMap_0, node_1){ + return $put(partitionToNodesMap_0, castTo($getProperty(node_1, ($clinit_LayeredOptions() , PARTITIONING_PARTITION)), 19), node_1); +} + +defineClass(1570, 1, $intern_105, PartitionMidprocessor); +_.process = function process_37(lGraph, monitor){ + $process_39(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor', 1570); +function PartitionMidprocessor$lambda$0$Type(){ +} + +defineClass(1571, 1, $intern_39, PartitionMidprocessor$lambda$0$Type); +_.test_0 = function test_43(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$0$Type', 1571); +function PartitionMidprocessor$lambda$1$Type(partitionToNodesMap_0){ + this.partitionToNodesMap_0 = partitionToNodesMap_0; +} + +defineClass(1572, 1, $intern_19, PartitionMidprocessor$lambda$1$Type); +_.accept = function accept_77(arg0){ + lambda$1_11(this.partitionToNodesMap_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$1$Type', 1572); +function $process_40(lGraph, monitor){ + var layer, layer$iterator, node, node$iterator, port, ports; + $begin(monitor, 'Partition postprocessing', 1); + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + ports = new ArrayList$1(node.ports); + while (ports.i < ports.this$01.array.length) { + port = castTo($next_7(ports), 11); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , PARTITION_DUMMY)))) && $remove_13(ports); + } + } + } + $done_0(monitor); +} + +function PartitionPostprocessor(){ +} + +defineClass(1573, 1, $intern_105, PartitionPostprocessor); +_.process = function process_38(lGraph, monitor){ + $process_40(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPostprocessor', 1573); +function $mustBeReversed(lEdge){ + var sourcePartition, targetPartition; + if ($hasProperty(lEdge.target.owner, ($clinit_LayeredOptions() , PARTITIONING_PARTITION))) { + sourcePartition = castTo($getProperty(lEdge.source.owner, PARTITIONING_PARTITION), 19); + targetPartition = castTo($getProperty(lEdge.target.owner, PARTITIONING_PARTITION), 19); + return compare_5(sourcePartition.value_0, targetPartition.value_0) > 0; + } + else { + return false; + } +} + +function $process_41(lGraph, monitor){ + var edgesToBeReversed; + $begin(monitor, 'Partition preprocessing', 1); + edgesToBeReversed = castTo($collect_1($filter($flatMap($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionPreprocessor$lambda$0$Type), new PartitionPreprocessor$lambda$1$Type), new PartitionPreprocessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + $forEach_3(edgesToBeReversed.stream(), new PartitionPreprocessor$lambda$3$Type); + $done_0(monitor); +} + +function $reverse_1(lEdge){ + var priority; + $reverse_0(lEdge, true); + priority = $intern_45; + $hasProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)) && (priority += castTo($getProperty(lEdge, PRIORITY_DIRECTION_0), 19).value_0); + $setProperty_0(lEdge, PRIORITY_DIRECTION_0, valueOf_4(priority)); +} + +function PartitionPreprocessor(){ +} + +defineClass(1574, 1, $intern_105, PartitionPreprocessor); +_.process = function process_39(lGraph, monitor){ + $process_41(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor', 1574); +function PartitionPreprocessor$lambda$0$Type(){ +} + +defineClass(1575, 1, $intern_39, PartitionPreprocessor$lambda$0$Type); +_.test_0 = function test_44(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$0$Type', 1575); +function PartitionPreprocessor$lambda$1$Type(){ +} + +defineClass(1576, 1, {}, PartitionPreprocessor$lambda$1$Type); +_.apply_0 = function apply_96(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$1$Type', 1576); +function PartitionPreprocessor$lambda$2$Type(){ +} + +defineClass(1577, 1, $intern_39, PartitionPreprocessor$lambda$2$Type); +_.test_0 = function test_45(arg0){ + return $mustBeReversed(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$2$Type', 1577); +function PartitionPreprocessor$lambda$3$Type(){ +} + +defineClass(1578, 1, $intern_19, PartitionPreprocessor$lambda$3$Type); +_.accept = function accept_78(arg0){ + $reverse_1(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$3$Type', 1578); +function $clinit_PortListSorter(){ + $clinit_PortListSorter = emptyMethod; + IN_EDGES = new PortListSorter$lambda$0$Type; + OUT_EDGES = new PortListSorter$lambda$1$Type; + CMP_PORT_SIDE = new PortListSorter$lambda$2$Type; + CMP_PORT_DEGREE_EAST_WEST = new PortListSorter$lambda$3$Type; + CMP_FIXED_ORDER_AND_FIXED_POS = new PortListSorter$lambda$4$Type; + CMP_COMBINED = (checkCriticalNotNull(CMP_FIXED_ORDER_AND_FIXED_POS) , new Comparator$lambda$0$Type); +} + +function $findPortSideRange(ports, side){ + var currentSide, hb, highIdx, lb, lowIdx; + if (ports.array.length == 0) { + return new Pair(valueOf_4(0), valueOf_4(0)); + } + currentSide = (checkCriticalElementIndex(0, ports.array.length) , castTo(ports.array[0], 11)).side; + lowIdx = 0; + lb = side.ordinal; + hb = side.ordinal + 1; + while (lowIdx < ports.array.length - 1 && currentSide.ordinal < lb) { + ++lowIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; + } + highIdx = lowIdx; + while (highIdx < ports.array.length - 1 && currentSide.ordinal < hb) { + ++highIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; + } + return new Pair(valueOf_4(lowIdx), valueOf_4(highIdx)); +} + +function $process_42(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, portConstraints, ports, pss; + $begin(monitor, 'Port order processing', 1); + pss = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_SORTING_STRATEGY_0)), 421); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + portConstraints = castTo($getProperty(node, PORT_CONSTRAINTS_0), 98); + ports = node.ports; + if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { + $clinit_Collections(); + $sort(ports, CMP_COMBINED); + } + else if (portConstraints != FREE && portConstraints != UNDEFINED_4) { + $clinit_Collections(); + $sort(ports, CMP_PORT_SIDE); + $reverseWestAndSouthSide(ports); + pss == ($clinit_PortSortingStrategy() , PORT_DEGREE) && $sort(ports, CMP_PORT_DEGREE_EAST_WEST); + } + node.portSidesCached = true; + $findPortIndices(node); + } + } + $done_0(monitor); +} + +function $reverse_2(ports, lowIdx, highIdx){ + var i, n, tmp; + if (highIdx <= lowIdx + 2) { + return; + } + n = (highIdx - lowIdx) / 2 | 0; + for (i = 0; i < n; ++i) { + tmp = (checkCriticalElementIndex(lowIdx + i, ports.array.length) , castTo(ports.array[lowIdx + i], 11)); + $set_1(ports, lowIdx + i, (checkCriticalElementIndex(highIdx - i - 1, ports.array.length) , castTo(ports.array[highIdx - i - 1], 11))); + checkCriticalElementIndex(highIdx - i - 1, ports.array.length); + ports.array[highIdx - i - 1] = tmp; + } +} + +function $reverseWestAndSouthSide(ports){ + var southIndices, westIndices; + if (ports.array.length <= 1) { + return; + } + southIndices = $findPortSideRange(ports, ($clinit_PortSide() , SOUTH_2)); + $reverse_2(ports, castTo(southIndices.first, 19).value_0, castTo(southIndices.second, 19).value_0); + westIndices = $findPortSideRange(ports, WEST_2); + $reverse_2(ports, castTo(westIndices.first, 19).value_0, castTo(westIndices.second, 19).value_0); +} + +function PortListSorter(){ + $clinit_PortListSorter(); +} + +function lambda$2_6(p1_0, p2_1){ + $clinit_PortListSorter(); + var ordinalDifference; + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + return 0; +} + +function lambda$3_3(p1_0, p2_1){ + $clinit_PortListSorter(); + var ordinalDifference; + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0) { + return 0; + } + switch (p1_0.side.ordinal) { + case 2: + return realDegree_0(p2_1, OUT_EDGES) - realDegree_0(p1_0, OUT_EDGES); + case 4: + return realDegree_0(p1_0, IN_EDGES) - realDegree_0(p2_1, IN_EDGES); + } + return 0; +} + +function lambda$4_6(p1_0, p2_1){ + $clinit_PortListSorter(); + var index1, index2, indexDifference, ordinalDifference, portConstraints; + portConstraints = castTo($getProperty(p1_0.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; + if (ordinalDifference != 0 || !(portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS)) { + return 0; + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER)) { + index1 = castTo($getProperty(p1_0, PORT_INDEX), 19); + index2 = castTo($getProperty(p2_1, PORT_INDEX), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + } + switch (p1_0.side.ordinal) { + case 1: + return compare_4(p1_0.pos.x_0, p2_1.pos.x_0); + case 2: + return compare_4(p1_0.pos.y_0, p2_1.pos.y_0); + case 3: + return compare_4(p2_1.pos.x_0, p1_0.pos.x_0); + case 4: + return compare_4(p2_1.pos.y_0, p1_0.pos.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function realDegree_0(p, edgesFun){ + var e, e$iterator, realDegree; + realDegree = 0; + for (e$iterator = castTo(edgesFun.apply_0(p), 20).iterator_0(); e$iterator.hasNext_0();) { + e = castTo(e$iterator.next_1(), 17); + $booleanValue(castToBoolean($getProperty(e, ($clinit_InternalProperties_1() , REVERSED)))) || ++realDegree; + } + return realDegree; +} + +defineClass(1579, 1, $intern_105, PortListSorter); +_.process = function process_40(layeredGraph, monitor){ + $process_42(castTo(layeredGraph, 37), monitor); +} +; +var CMP_COMBINED, CMP_FIXED_ORDER_AND_FIXED_POS, CMP_PORT_DEGREE_EAST_WEST, CMP_PORT_SIDE, IN_EDGES, OUT_EDGES; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter', 1579); +function PortListSorter$lambda$0$Type(){ +} + +defineClass(1580, 1, {}, PortListSorter$lambda$0$Type); +_.apply_0 = function apply_97(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 11).incomingEdges; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$0$Type', 1580); +function PortListSorter$lambda$1$Type(){ +} + +defineClass(1581, 1, {}, PortListSorter$lambda$1$Type); +_.apply_0 = function apply_98(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 11).outgoingEdges; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$1$Type', 1581); +function PortListSorter$lambda$2$Type(){ +} + +defineClass(1582, 1, $intern_88, PortListSorter$lambda$2$Type); +_.compare_1 = function compare_48(arg0, arg1){ + return lambda$2_6(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_124(other){ + return this === other; +} +; +_.reversed = function reversed_40(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$2$Type', 1582); +function PortListSorter$lambda$3$Type(){ +} + +defineClass(1583, 1, $intern_88, PortListSorter$lambda$3$Type); +_.compare_1 = function compare_49(arg0, arg1){ + return lambda$3_3(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_125(other){ + return this === other; +} +; +_.reversed = function reversed_41(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$3$Type', 1583); +function PortListSorter$lambda$4$Type(){ +} + +defineClass(1584, 1, $intern_88, PortListSorter$lambda$4$Type); +_.compare_1 = function compare_50(arg0, arg1){ + return lambda$4_6(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_126(other){ + return this === other; +} +; +_.reversed = function reversed_42(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$4$Type', 1584); +function $process_43(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, node$iterator0; + $begin(monitor, 'Port side processing', 1); + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + $process_44(node); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $process_44(node); + } + } + $done_0(monitor); +} + +function $process_44(node){ + var port, port$iterator, portDummy; + if ($isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.side == ($clinit_PortSide() , UNDEFINED_5) && (portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10) , portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, EAST_2):$setSide(port, WEST_2)); + } + } + else { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, ($clinit_PortSide() , EAST_2)):$setSide(port, ($clinit_PortSide() , WEST_2)); + } + $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)); + } +} + +function PortSideProcessor(){ +} + +defineClass(1585, 1, $intern_105, PortSideProcessor); +_.process = function process_41(layeredGraph, monitor){ + $process_43(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortSideProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortSideProcessor', 1585); +function $process_45(layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$max, edgeArray, layer, layer$iterator, node, node$iterator, port, port$iterator; + $begin(monitor, 'Restoring reversed edges', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + edgeArray = toEdgeArray(port.outgoingEdges); + for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) && $reverse_0(edge, false); + } + } + } + } + $done_0(monitor); +} + +function ReversedEdgeRestorer(){ +} + +defineClass(1586, 1, $intern_105, ReversedEdgeRestorer); +_.process = function process_42(layeredGraph, monitor){ + $process_45(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ReversedEdgeRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ReversedEdgeRestorer', 1586); +function $process_46(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Self-Loop ordering', 1); + $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPortRestorer$lambda$0$Type), new SelfLoopPortRestorer$lambda$1$Type), new SelfLoopPortRestorer$lambda$2$Type), new SelfLoopPortRestorer$lambda$3$Type), new SelfLoopPortRestorer$lambda$4$Type(this$static)); + $done_0(progressMonitor); +} + +function $processNode_4(this$static, slHolder){ + if (slHolder.arePortsHidden) { + switch (castTo($getProperty(slHolder.lNode, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS)), 98).ordinal) { + case 0: + case 1: + $assignPortSides(slHolder); + case 2: + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); + $restorePorts_0(this$static.portRestorer, slHolder); + } + } + else { + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); + } +} + +function SelfLoopPortRestorer(){ + this.portRestorer = new PortRestorer; +} + +defineClass(1591, 1, $intern_105, SelfLoopPortRestorer); +_.process = function process_43(graph, progressMonitor){ + $process_46(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer', 1591); +function SelfLoopPortRestorer$lambda$0$Type(){ +} + +defineClass(1592, 1, {}, SelfLoopPortRestorer$lambda$0$Type); +_.apply_0 = function apply_99(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$0$Type', 1592); +function SelfLoopPortRestorer$lambda$1$Type(){ +} + +defineClass(1593, 1, $intern_39, SelfLoopPortRestorer$lambda$1$Type); +_.test_0 = function test_46(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$1$Type', 1593); +function SelfLoopPortRestorer$lambda$2$Type(){ +} + +defineClass(1594, 1, $intern_39, SelfLoopPortRestorer$lambda$2$Type); +_.test_0 = function test_47(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$2$Type', 1594); +function SelfLoopPortRestorer$lambda$3$Type(){ +} + +defineClass(1595, 1, {}, SelfLoopPortRestorer$lambda$3$Type); +_.apply_0 = function apply_100(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$3$Type', 1595); +function SelfLoopPortRestorer$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1596, 1, $intern_19, SelfLoopPortRestorer$lambda$4$Type); +_.accept = function accept_79(arg0){ + $processNode_4(this.$$outer_0, castTo(arg0, 403)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$4$Type', 1596); +function SelfLoopPortRestorer$lambda$5$Type(){ +} + +defineClass(794, 1, $intern_19, SelfLoopPortRestorer$lambda$5$Type); +_.accept = function accept_80(arg0){ + $computePortsPerSide(castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$5$Type', 794); +function $process_47(graph, progressMonitor){ + $begin(progressMonitor, 'Self-Loop post-processing', 1); + $forEach_3($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPostProcessor$lambda$0$Type), new SelfLoopPostProcessor$lambda$1$Type), new SelfLoopPostProcessor$lambda$2$Type), new SelfLoopPostProcessor$lambda$3$Type); + $done_0(progressMonitor); +} + +function $processNode_5(lNode){ + var slHolder; + slHolder = castTo($getProperty(lNode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$4$Type), new SelfLoopPostProcessor$lambda$5$Type(lNode)); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$6$Type), new SelfLoopPostProcessor$lambda$7$Type(lNode)); +} + +function $restoreEdge(lNode, slEdge){ + var lEdge; + lEdge = slEdge.lEdge; + $setSource_0(lEdge, slEdge.slSource.lPort); + $setTarget_0(lEdge, slEdge.slTarget.lPort); + $offset_2(lEdge.bendPoints, lNode.pos); +} + +function SelfLoopPostProcessor(){ +} + +function lambda$7_1(lNode_0, slLoop_1){ + $applyPlacement(slLoop_1.slLabels, lNode_0.pos); +} + +defineClass(1597, 1, $intern_105, SelfLoopPostProcessor); +_.process = function process_44(graph, progressMonitor){ + $process_47(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor', 1597); +function SelfLoopPostProcessor$lambda$0$Type(){ +} + +defineClass(1598, 1, {}, SelfLoopPostProcessor$lambda$0$Type); +_.apply_0 = function apply_101(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$0$Type', 1598); +function SelfLoopPostProcessor$lambda$1$Type(){ +} + +defineClass(1599, 1, $intern_39, SelfLoopPostProcessor$lambda$1$Type); +_.test_0 = function test_48(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$1$Type', 1599); +function SelfLoopPostProcessor$lambda$2$Type(){ +} + +defineClass(1600, 1, $intern_39, SelfLoopPostProcessor$lambda$2$Type); +_.test_0 = function test_49(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$2$Type', 1600); +function SelfLoopPostProcessor$lambda$3$Type(){ +} + +defineClass(1601, 1, $intern_19, SelfLoopPostProcessor$lambda$3$Type); +_.accept = function accept_81(arg0){ + $processNode_5(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$3$Type', 1601); +function SelfLoopPostProcessor$lambda$4$Type(){ +} + +defineClass(1602, 1, {}, SelfLoopPostProcessor$lambda$4$Type); +_.apply_0 = function apply_102(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$4$Type', 1602); +function SelfLoopPostProcessor$lambda$5$Type(lNode_1){ + this.lNode_1 = lNode_1; +} + +defineClass(1603, 1, $intern_19, SelfLoopPostProcessor$lambda$5$Type); +_.accept = function accept_82(arg0){ + $restoreEdge(this.lNode_1, castTo(arg0, 409)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$5$Type', 1603); +function SelfLoopPostProcessor$lambda$6$Type(){ +} + +defineClass(1604, 1, $intern_39, SelfLoopPostProcessor$lambda$6$Type); +_.test_0 = function test_50(arg0){ + return !!castTo(arg0, 101).slLabels; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$6$Type', 1604); +function SelfLoopPostProcessor$lambda$7$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1605, 1, $intern_19, SelfLoopPostProcessor$lambda$7$Type); +_.accept = function accept_83(arg0){ + lambda$7_1(this.lNode_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$7$Type', 1605); +function $hidePorts(slHolder){ + var entry, hierarchyMode, lNode, lPort, nestedGraph, orderFixed, outerIter, slPort, slPort$iterator; + lNode = slHolder.lNode; + nestedGraph = lNode.nestedGraph; + orderFixed = $isOrderFixed(castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)); + hierarchyMode = !!nestedGraph && castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + if (orderFixed || hierarchyMode) { + return; + } + for (slPort$iterator = (outerIter = (new AbstractMap$2(slHolder.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); + if (slPort.hadOnlySelfLoops) { + lPort = slPort.lPort; + $setNode(lPort, null); + slPort.isHidden = true; + slHolder.arePortsHidden = true; + } + } +} + +function $lambda$2_0(lEdge_0){ + $setSource_0(lEdge_0, null); + $setTarget_0(lEdge_0, null); +} + +function $process_48(graph, progressMonitor){ + var lnode, lnode$iterator, slHolder, holder; + $begin(progressMonitor, 'Self-Loop pre-processing', 1); + for (lnode$iterator = new ArrayList$1(graph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { + lnode = castTo($next_7(lnode$iterator), 10); + if (needsSelfLoopProcessing(lnode)) { + slHolder = (holder = new SelfLoopHolder(lnode) , $setProperty_0(lnode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER), holder) , $initialize_3(holder) , holder); + $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPreProcessor$lambda$0$Type), new SelfLoopPreProcessor$lambda$1$Type), new SelfLoopPreProcessor$lambda$2$Type); + $hidePorts(slHolder); + } + } + $done_0(progressMonitor); +} + +function SelfLoopPreProcessor(){ +} + +defineClass(1587, 1, $intern_105, SelfLoopPreProcessor); +_.process = function process_45(graph, progressMonitor){ + $process_48(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor', 1587); +function SelfLoopPreProcessor$lambda$0$Type(){ +} + +defineClass(1588, 1, {}, SelfLoopPreProcessor$lambda$0$Type); +_.apply_0 = function apply_103(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$0$Type', 1588); +function SelfLoopPreProcessor$lambda$1$Type(){ +} + +defineClass(1589, 1, {}, SelfLoopPreProcessor$lambda$1$Type); +_.apply_0 = function apply_104(arg0){ + return castTo(arg0, 409).lEdge; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$1$Type', 1589); +function SelfLoopPreProcessor$lambda$2$Type(){ +} + +defineClass(1590, 1, $intern_19, SelfLoopPreProcessor$lambda$2$Type); +_.accept = function accept_84(arg0){ + $lambda$2_0(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$2$Type', 1590); +function $lambda$4(this$static, router_2, slHolder_3){ + $determineLoopRoutes(this$static.routingDirector, slHolder_3); + $placeLabels_1(slHolder_3); + $assignRoutingSlots(this$static.routingSlotAssigner, slHolder_3); + $routeSelfLoops(router_2, slHolder_3); +} + +function $process_49(this$static, graph, progressMonitor){ + var router; + $begin(progressMonitor, 'Self-Loop routing', 1); + router = $routerForGraph(graph); + throwClassCastExceptionUnlessNull($getProperty(graph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopRouter$lambda$0$Type), new SelfLoopRouter$lambda$1$Type), new SelfLoopRouter$lambda$2$Type), new SelfLoopRouter$lambda$3$Type), new SelfLoopRouter$lambda$4$Type(this$static, router)); + $done_0(progressMonitor); +} + +function $routerForGraph(graph){ + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218).ordinal) { + case 1: + return new PolylineSelfLoopRouter; + case 3: + return new SplineSelfLoopRouter; + default:return new OrthogonalSelfLoopRouter; + } +} + +function SelfLoopRouter(){ + this.routingDirector = new RoutingDirector; + this.routingSlotAssigner = new RoutingSlotAssigner; +} + +defineClass(1606, 1, $intern_105, SelfLoopRouter); +_.process = function process_46(graph, progressMonitor){ + $process_49(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter', 1606); +function SelfLoopRouter$lambda$0$Type(){ +} + +defineClass(1607, 1, {}, SelfLoopRouter$lambda$0$Type); +_.apply_0 = function apply_105(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$0$Type', 1607); +function SelfLoopRouter$lambda$1$Type(){ +} + +defineClass(1608, 1, $intern_39, SelfLoopRouter$lambda$1$Type); +_.test_0 = function test_51(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$1$Type', 1608); +function SelfLoopRouter$lambda$2$Type(){ +} + +defineClass(1609, 1, $intern_39, SelfLoopRouter$lambda$2$Type); +_.test_0 = function test_52(arg0){ + return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$2$Type', 1609); +function SelfLoopRouter$lambda$3$Type(){ +} + +defineClass(1610, 1, {}, SelfLoopRouter$lambda$3$Type); +_.apply_0 = function apply_106(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$3$Type', 1610); +function SelfLoopRouter$lambda$4$Type($$outer_0, router_2){ + this.$$outer_0 = $$outer_0; + this.router_2 = router_2; +} + +defineClass(1611, 1, $intern_19, SelfLoopRouter$lambda$4$Type); +_.accept = function accept_85(arg0){ + $lambda$4(this.$$outer_0, this.router_2, castTo(arg0, 403)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$4$Type', 1611); +function $process_50(layeredGraph, progressMonitor){ + var addedConstraints, l, l$iterator, reduced; + $begin(progressMonitor, 'Semi-Interactive Crossing Minimization Processor', 1); + addedConstraints = false; + for (l$iterator = new ArrayList$1(layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + reduced = $reduce_0($sorted_1($filter($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(l.nodes, 16)), new SemiInteractiveCrossMinProcessor$lambda$0$Type), new SemiInteractiveCrossMinProcessor$lambda$1$Type), new SemiInteractiveCrossMinProcessor$lambda$2$Type), new SemiInteractiveCrossMinProcessor$lambda$3$Type); + addedConstraints = addedConstraints | reduced.ref != null; + } + addedConstraints && $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES), ($clinit_Boolean() , true)); + $done_0(progressMonitor); +} + +function SemiInteractiveCrossMinProcessor(){ +} + +function lambda$2_7(n1_0, n2_1){ + var origPos1, origPos2; + origPos1 = castTo($getProperty(n1_0, ($clinit_LayeredOptions() , POSITION)), 8); + origPos2 = castTo($getProperty(n2_1, POSITION), 8); + return compare_4(origPos1.y_0, origPos2.y_0); +} + +function lambda$3_4(prev_0, cur_1){ + castTo($getProperty(prev_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).add_2(cur_1); + return cur_1; +} + +defineClass(1612, 1, $intern_105, SemiInteractiveCrossMinProcessor); +_.process = function process_47(layeredGraph, progressMonitor){ + $process_50(castTo(layeredGraph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor', 1612); +function SemiInteractiveCrossMinProcessor$lambda$0$Type(){ +} + +defineClass(1613, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$0$Type); +_.test_0 = function test_53(arg0){ + return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$0$Type', 1613); +function SemiInteractiveCrossMinProcessor$lambda$1$Type(){ +} + +defineClass(1614, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$1$Type); +_.test_0 = function test_54(arg0){ + return $getAllProperties(castTo(arg0, 10)).containsKey(($clinit_LayeredOptions() , POSITION)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$1$Type', 1614); +function SemiInteractiveCrossMinProcessor$lambda$2$Type(){ +} + +defineClass(1615, 1, $intern_88, SemiInteractiveCrossMinProcessor$lambda$2$Type); +_.compare_1 = function compare_51(arg0, arg1){ + return lambda$2_7(castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_127(other){ + return this === other; +} +; +_.reversed = function reversed_43(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$2$Type', 1615); +function SemiInteractiveCrossMinProcessor$lambda$3$Type(){ +} + +defineClass(1616, 1, {}, SemiInteractiveCrossMinProcessor$lambda$3$Type); +_.apply_3 = function apply_107(arg0, arg1){ + return lambda$3_4(castTo(arg0, 10), castTo(arg1, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$3$Type', 1616); +function $process_51(graph, progressMonitor){ + var layer, layer$iterator, layerIndex, node, node$iterator, previousLayer, previousLayerIndex; + $begin(progressMonitor, 'Sort By Input Model ' + $getProperty(graph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + previousLayerIndex = layerIndex == 0?0:layerIndex - 1; + previousLayer = castTo($get_11(graph.layers, previousLayerIndex), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(($clinit_PortConstraints() , FIXED_ORDER)) && maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(FIXED_POS)) { + $clinit_Collections(); + $sort(node.ports, new ModelOrderPortComparator(previousLayer, longEdgeTargetNodePreprocessing(node))); + $log_2(progressMonitor, 'Node ' + node + ' ports: ' + node.ports); + } + } + $clinit_Collections(); + $sort(layer.nodes, new ModelOrderNodeComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 339), castTo($getProperty(graph, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0), 378))); + $log_2(progressMonitor, 'Layer ' + layerIndex + ': ' + layer); + ++layerIndex; + } + $done_0(progressMonitor); +} + +function SortByInputModelProcessor(){ +} + +function getTargetNode(port){ + var edge, node; + node = null; + edge = castTo($get_11(port.outgoingEdges, 0), 17); + do { + node = edge.target.owner; + if ($hasProperty(node, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET))) { + return castTo($getProperty(node, LONG_EDGE_TARGET), 11).owner; + } + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))) { + edge = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17); + } + else if (node.type_0 != NORMAL) { + return null; + } + } + while (!!node && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)); + return node; +} + +function lambda$1_12(targetNodeModelOrder_0, p_1){ + var edge, previousOrder, targetNode; + targetNode = getTargetNode(p_1); + $setProperty_0(p_1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE), targetNode); + if (targetNode) { + previousOrder = $intern_0; + !!$getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode) && (previousOrder = castTo(getEntryValueOrNull($getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode)), 19).value_0); + edge = castTo($get_11(p_1.outgoingEdges, 0), 17); + $booleanValue(castToBoolean($getProperty(edge, REVERSED))) || $put_6(targetNodeModelOrder_0, targetNode, valueOf_4($wnd.Math.min(castTo($getProperty(edge, MODEL_ORDER_0), 19).value_0, previousOrder))); + } +} + +function longEdgeTargetNodePreprocessing(node){ + var targetNodeModelOrder; + targetNodeModelOrder = new HashMap; + if ($hasProperty(node, ($clinit_InternalProperties_1() , TARGET_NODE_MODEL_ORDER))) { + return castTo($getProperty(node, TARGET_NODE_MODEL_ORDER), 83); + } + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(node.ports, 16)), new SortByInputModelProcessor$lambda$0$Type), new SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder)); + $setProperty_0(node, TARGET_NODE_MODEL_ORDER, targetNodeModelOrder); + return targetNodeModelOrder; +} + +defineClass(1618, 1, $intern_105, SortByInputModelProcessor); +_.process = function process_48(graph, progressMonitor){ + $process_51(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor', 1618); +function SortByInputModelProcessor$lambda$0$Type(){ +} + +defineClass(1619, 1, $intern_39, SortByInputModelProcessor$lambda$0$Type); +_.test_0 = function test_55(arg0){ + return castTo(arg0, 11).outgoingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$0$Type', 1619); +function SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder_0){ + this.targetNodeModelOrder_0 = targetNodeModelOrder_0; +} + +defineClass(1620, 1, $intern_19, SortByInputModelProcessor$lambda$1$Type); +_.accept = function accept_86(arg0){ + lambda$1_12(this.targetNodeModelOrder_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$1$Type', 1620); +function $alterGroupedHitboxOrthogonal(g, spacing, fac){ + var delta, master, n, n$iterator, vs; + master = g.master; + !master && (master = castTo(g.cNodes.map_0.keySet_0().iterator_0().next_1(), 57)); + $alterHitbox(master, spacing, fac); + if (g.cNodes.map_0.size_1() == 1) { + return; + } + delta = spacing * fac; + for (n$iterator = g.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if (n != master) { + vs = getVerticalSegmentOrNull(n); + if (vs.ignoreSpacing.up) { + n.hitbox.y_0 += delta + $intern_94; + n.hitbox.height -= delta + $intern_94; + } + else + vs.ignoreSpacing.down && (n.hitbox.height -= delta + $intern_94); + } + } +} + +function $alterHitbox(n, spacing, fac){ + var delta, vs; + delta = spacing * fac; + if (instanceOf(n.origin_0, 145)) { + vs = getVerticalSegmentOrNull(n); + if (vs.ignoreSpacing.up) { + vs.ignoreSpacing.down || (n.hitbox.height += delta + $intern_94); + } + else { + n.hitbox.y_0 -= delta + $intern_94; + n.hitbox.height += delta + $intern_94; + } + } + else if (instanceOf(n.origin_0, 10)) { + n.hitbox.y_0 -= delta; + n.hitbox.height += 2 * delta; + } +} + +function $lambda$1_0(this$static, n_0){ + var lNode, spacing, vs; + if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return $intern_59; + } + vs = getVerticalSegmentOrNull(n_0); + if (vs) { + return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + } + lNode = getLNodeOrNull(n_0); + if (lNode) { + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + return $wnd.Math.max(0, spacing / 2 - 0.5); + } + return $intern_59; +} + +function $lambda$14(schedule_1, n_1){ + var finalSpacing, lNode, spacing; + lNode = getLNodeOrNull(n_1); + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + finalSpacing = $wnd.Math.max(0, spacing / 2 - 0.5); + $alterHitbox(n_1, finalSpacing, 1); + $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing)); +} + +function $lambda$18(this$static, n_0){ + var lNode, spacing, vs; + if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return $intern_59; + } + vs = getVerticalSegmentOrNull(n_0); + if (vs) { + return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + } + lNode = getLNodeOrNull(n_0); + if (lNode) { + spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + return $wnd.Math.max(0, spacing / 2 - 0.5); + } + return $intern_59; +} + +function $lambda$20(minSpacing_1, schedule_3, g_2){ + $alterGroupedHitboxOrthogonal(g_2, minSpacing_1, 1); + $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_2, minSpacing_1)); +} + +function $lambda$4_0(minSpacing_1, schedule_3, n_2){ + $alterHitbox(n_2, minSpacing_1, 1); + $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_2, minSpacing_1)); +} + +function $lambda$9(this$static, schedule_1, n_1){ + var spacing; + spacing = $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); + $alterHitbox(n_1, spacing, 1); + $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing)); +} + +function EdgeAwareScanlineConstraintCalculation(graph){ + ScanlineConstraintCalculator.call(this); + this.verticalEdgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + this.edgeRouting = castTo($getProperty(graph, EDGE_ROUTING), 218); +} + +defineClass(1693, 803, {}, EdgeAwareScanlineConstraintCalculation); +_.calculateConstraints = function calculateConstraints_1(theCompactor){ + var schedule, minSpacing, schedule_0, minSpacing_0; + this.compactor = theCompactor; + switch (this.edgeRouting.ordinal) { + case 2: + schedule = new ArrayList; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$8$Type), new EdgeAwareScanlineConstraintCalculation$lambda$9$Type(this, schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$11$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$12$Type); + schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$13$Type), new EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$16$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$17$Type); + schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + minSpacing = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$18$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$19$Type); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cGroups, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing, schedule)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$22$Type); + $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$23$Type); + schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + break; + case 3: + schedule_0 = new ArrayList; + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$0$Type); + minSpacing_0 = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$1$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$2$Type); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$3$Type), new EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_0, schedule_0)); + $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$6$Type); + $forEach_1(schedule_0, new EdgeAwareScanlineConstraintCalculation$lambda$7$Type); + schedule_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + break; + default:throw toJs(new UnsupportedConfigurationException); + } +} +; +_.verticalEdgeEdgeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation', 1693); +function EdgeAwareScanlineConstraintCalculation$lambda$0$Type(){ +} + +defineClass(1694, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$0$Type); +_.apply_1 = function apply_108(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +_.equals_0 = function equals_128(other){ + return this === other; +} +; +_.test_0 = function test_56(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$0$Type', 1694); +function EdgeAwareScanlineConstraintCalculation$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1695, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$1$Type); +_.applyAsDouble = function applyAsDouble_1(arg0){ + return $lambda$1_0(this.$$outer_0, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$1$Type', 1695); +function EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing_2){ + this.n_1 = n_1; + this.spacing_2 = spacing_2; +} + +defineClass(1703, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$10$Type); +_.run = function run_1(){ + $alterHitbox(this.n_1, this.spacing_2, -1); +} +; +_.spacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$10$Type', 1703); +function EdgeAwareScanlineConstraintCalculation$lambda$11$Type(){ +} + +defineClass(1705, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$11$Type); +_.apply_1 = function apply_109(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +_.equals_0 = function equals_129(other){ + return this === other; +} +; +_.test_0 = function test_57(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$11$Type', 1705); +function EdgeAwareScanlineConstraintCalculation$lambda$12$Type(){ +} + +defineClass(1706, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$12$Type); +_.accept = function accept_87(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$12$Type', 1706); +function EdgeAwareScanlineConstraintCalculation$lambda$13$Type(){ +} + +defineClass(1707, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$13$Type); +_.test_0 = function test_58(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$13$Type', 1707); +function EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule_1){ + this.schedule_1 = schedule_1; +} + +defineClass(1709, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$14$Type); +_.accept = function accept_88(arg0){ + $lambda$14(this.schedule_1, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$14$Type', 1709); +function EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing_2){ + this.n_1 = n_1; + this.finalSpacing_2 = finalSpacing_2; +} + +defineClass(1708, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$15$Type); +_.run = function run_2(){ + $alterHitbox(this.n_1, this.finalSpacing_2, -1); +} +; +_.finalSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$15$Type', 1708); +function EdgeAwareScanlineConstraintCalculation$lambda$16$Type(){ +} + +defineClass(1710, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$16$Type); +_.apply_1 = function apply_110(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +_.equals_0 = function equals_130(other){ + return this === other; +} +; +_.test_0 = function test_59(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$16$Type', 1710); +function EdgeAwareScanlineConstraintCalculation$lambda$17$Type(){ +} + +defineClass(1711, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$17$Type); +_.accept = function accept_89(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$17$Type', 1711); +function EdgeAwareScanlineConstraintCalculation$lambda$18$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1712, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$18$Type); +_.applyAsDouble = function applyAsDouble_2(arg0){ + return $lambda$18(this.$$outer_0, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$18$Type', 1712); +function EdgeAwareScanlineConstraintCalculation$lambda$19$Type(){ +} + +defineClass(1713, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$19$Type); +_.getAsDouble = function getAsDouble(){ + return 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$19$Type', 1713); +function EdgeAwareScanlineConstraintCalculation$lambda$2$Type(){ +} + +defineClass(1696, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$2$Type); +_.getAsDouble = function getAsDouble_0(){ + return 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$2$Type', 1696); +function EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1715, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$20$Type); +_.accept = function accept_90(arg0){ + $lambda$20(this.minSpacing_1, this.schedule_3, castTo(arg0, 307)); +} +; +_.minSpacing_1 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$20$Type', 1715); +function EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_1, minSpacing_2){ + this.g_1 = g_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1714, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$21$Type); +_.run = function run_3(){ + $alterGroupedHitboxOrthogonal(this.g_1, this.minSpacing_2, -1); +} +; +_.minSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$21$Type', 1714); +function EdgeAwareScanlineConstraintCalculation$lambda$22$Type(){ +} + +defineClass(1716, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$22$Type); +_.apply_1 = function apply_111(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_131(other){ + return this === other; +} +; +_.test_0 = function test_60(input_0){ + return castTo(input_0, 57) , true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$22$Type', 1716); +function EdgeAwareScanlineConstraintCalculation$lambda$23$Type(){ +} + +defineClass(1717, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$23$Type); +_.accept = function accept_91(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$23$Type', 1717); +function EdgeAwareScanlineConstraintCalculation$lambda$3$Type(){ +} + +defineClass(1697, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$3$Type); +_.test_0 = function test_61(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$3$Type', 1697); +function EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1699, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$4$Type); +_.accept = function accept_92(arg0){ + $lambda$4_0(this.minSpacing_1, this.schedule_3, castTo(arg0, 57)); +} +; +_.minSpacing_1 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$4$Type', 1699); +function EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_1, minSpacing_2){ + this.n_1 = n_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1698, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$5$Type); +_.run = function run_4(){ + $alterHitbox(this.n_1, this.minSpacing_2, -1); +} +; +_.minSpacing_2 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$5$Type', 1698); +function EdgeAwareScanlineConstraintCalculation$lambda$6$Type(){ +} + +defineClass(1700, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$6$Type); +_.apply_1 = function apply_112(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_132(other){ + return this === other; +} +; +_.test_0 = function test_62(input_0){ + return castTo(input_0, 57) , true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$6$Type', 1700); +function EdgeAwareScanlineConstraintCalculation$lambda$7$Type(){ +} + +defineClass(1701, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$7$Type); +_.accept = function accept_93(arg0){ + castTo(arg0, 365).run(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$7$Type', 1701); +function EdgeAwareScanlineConstraintCalculation$lambda$8$Type(){ +} + +defineClass(1702, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$8$Type); +_.test_0 = function test_63(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$8$Type', 1702); +function EdgeAwareScanlineConstraintCalculation$lambda$9$Type($$outer_0, schedule_1){ + this.$$outer_0 = $$outer_0; + this.schedule_1 = schedule_1; +} + +defineClass(1704, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$9$Type); +_.accept = function accept_94(arg0){ + $lambda$9(this.$$outer_0, this.schedule_1, castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$9$Type', 1704); +function $clinit_HorizontalGraphCompactor(){ + $clinit_HorizontalGraphCompactor = emptyMethod; + NETWORK_SIMPLEX_COMPACTION = new NetworkSimplexCompaction; +} + +function $process_52(this$static, layeredGraph, progressMonitor){ + var odc, strategy, transformer; + strategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , COMPACTION_POST_COMPACTION_STRATEGY_0)), 275); + if (strategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return; + } + $begin(progressMonitor, 'Horizontal Compaction', 1); + this$static.lGraph = layeredGraph; + transformer = new LGraphToCGraphTransformer; + odc = new OneDimensionalCompactor((transformer.layeredGraph = layeredGraph , transformer.edgeRouting = castTo($getProperty(transformer.layeredGraph, EDGE_ROUTING), 218) , $init(transformer) , $transformNodes_0(transformer) , $transformEdges_0(transformer) , transformer.cGraph)); + $setSpacingsHandler(odc, this$static.specialSpacingsHandler); + switch (castTo($getProperty(layeredGraph, COMPACTION_POST_COMPACTION_CONSTRAINTS_0), 422).ordinal) { + case 1: + $setConstraintAlgorithm(odc, new EdgeAwareScanlineConstraintCalculation(this$static.lGraph)); + break; + default:$setConstraintAlgorithm(odc, ($clinit_OneDimensionalCompactor() , QUADRATIC_CONSTRAINTS)); + } + switch (strategy.ordinal) { + case 1: + $compact(odc); + break; + case 2: + $compact($changeDirection(odc, ($clinit_Direction_0() , RIGHT_6))); + break; + case 3: + $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$0$Type)); + break; + case 4: + $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$1$Type(transformer))); + break; + case 5: + $compact($setCompactionAlgorithm(odc, NETWORK_SIMPLEX_COMPACTION)); + } + $changeDirection(odc, ($clinit_Direction_0() , LEFT_6)); + odc.finished = true; + $applyLayout_3(transformer); + $done_0(progressMonitor); +} + +function HorizontalGraphCompactor(){ + $clinit_HorizontalGraphCompactor(); + this.specialSpacingsHandler = new HorizontalGraphCompactor$1(this); +} + +function getLNodeOrNull(cNode){ + $clinit_HorizontalGraphCompactor(); + if (instanceOf(cNode.origin_0, 10)) { + return castTo(cNode.origin_0, 10); + } + return null; +} + +function getVerticalSegmentOrNull(cNode){ + $clinit_HorizontalGraphCompactor(); + if (instanceOf(cNode.origin_0, 145)) { + return castTo(cNode.origin_0, 145); + } + return null; +} + +function isVerticalSegmentsOfSameEdge(cNode1, cNode2){ + $clinit_HorizontalGraphCompactor(); + var v1, v2; + v1 = getVerticalSegmentOrNull(cNode1); + v2 = getVerticalSegmentOrNull(cNode2); + return !!v1 && !!v2 && !disjoint(v1.representedLEdges, v2.representedLEdges); +} + +function lambda$1_13(transformer_0, node_1, dir_2){ + $clinit_HorizontalGraphCompactor(); + return $get_18(castTo($get_10(transformer_0.lockMap, node_1), 522), dir_2); +} + +defineClass(1521, 1, $intern_105, HorizontalGraphCompactor); +_.process = function process_49(layeredGraph, progressMonitor){ + $process_52(this, castTo(layeredGraph, 37), progressMonitor); +} +; +var NETWORK_SIMPLEX_COMPACTION; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor', 1521); +function HorizontalGraphCompactor$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1522, 1, {}, HorizontalGraphCompactor$1); +_.getHorizontalSpacing = function getHorizontalSpacing_2(cNode1, cNode2){ + var node1, node2, spacings; + if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { + return 0; + } + node1 = getLNodeOrNull(cNode1); + node2 = getLNodeOrNull(cNode2); + if (!!node1 && node1.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || !!node2 && node2.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return 0; + } + spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + return $getHorizontalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); +} +; +_.getVerticalSpacing = function getVerticalSpacing_2(cNode1, cNode2){ + var node1, node2, spacings; + if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { + return 1; + } + node1 = getLNodeOrNull(cNode1); + node2 = getLNodeOrNull(cNode2); + spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + return $getVerticalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/1', 1522); +function HorizontalGraphCompactor$lambda$0$Type(){ +} + +defineClass(1523, 1, {}, HorizontalGraphCompactor$lambda$0$Type); +_.isLocked = function isLocked(arg0, arg1){ + return $clinit_HorizontalGraphCompactor() , arg0.cGroup.outDegreeReal == 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$0$Type', 1523); +function HorizontalGraphCompactor$lambda$1$Type(transformer_0){ + this.transformer_0 = transformer_0; +} + +defineClass(1524, 1, {}, HorizontalGraphCompactor$lambda$1$Type); +_.isLocked = function isLocked_0(arg0, arg1){ + return lambda$1_13(this.transformer_0, arg0, arg1); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$1$Type', 1524); +function $clinit_LGraphToCGraphTransformer(){ + $clinit_LGraphToCGraphTransformer = emptyMethod; + NODE_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$0$Type; + VS_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$1$Type; +} + +function $adjustControlPointBetweenSegments(this$static, left, right, leftIdx, rightIdx, spline){ + var adjust, chunk, chunks, endX, idx1, idx2, k, n, newPos, startX, strip, width_0; + idx1 = leftIdx; + if (left.initialSegment && left.isStraight) { + n = castTo($get_10(this$static.nodesMap, left.sourceNode), 57); + startX = n.hitbox.x_0 + n.hitbox.width_0; + --idx1; + } + else { + startX = left.boundingBox.x_0 + left.boundingBox.width_0; + } + idx2 = rightIdx; + if (right.lastSegment && right.isStraight) { + n = castTo($get_10(this$static.nodesMap, right.targetNode), 57); + endX = n.hitbox.x_0; + ++idx2; + } + else { + endX = right.boundingBox.x_0; + } + strip = endX - startX; + chunks = $wnd.Math.max(2, idx2 - idx1); + chunk = strip / chunks; + newPos = startX + chunk; + for (k = idx1; k < idx2; ++k) { + adjust = castTo(spline.get_0(k), 128); + width_0 = adjust.boundingBox.width_0; + adjust.boundingBox.x_0 = newPos - width_0 / 2; + newPos += chunk; + } +} + +function $adjustSplineControlPoints(this$static, spline){ + var i, j, lastSeg, needle, nextSeg; + if (spline.isEmpty()) { + return; + } + lastSeg = castTo(spline.get_0(0), 128); + if (spline.size_1() == 1) { + $adjustControlPointBetweenSegments(this$static, lastSeg, lastSeg, 1, 0, spline); + return; + } + i = 1; + while (i < spline.size_1()) { + if (lastSeg.initialSegment || !lastSeg.isStraight) { + needle = $firstNonStraightSegment(spline, i); + if (needle) { + j = castTo(needle.first, 19).value_0; + nextSeg = castTo(needle.second, 128); + $adjustControlPointBetweenSegments(this$static, lastSeg, nextSeg, i, j, spline); + i = j + 1; + lastSeg = nextSeg; + } + } + } +} + +function $applyCommentPositions(this$static){ + var comment, e, e$iterator, offset, other; + for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.commentOffsets)).this$01); e$iterator.hasNext;) { + e = $next_4(e$iterator); + comment = castTo(e.getKey(), 10); + other = castTo(castTo(e.getValue(), 46).first, 10); + offset = castTo(castTo(e.getValue(), 46).second, 8); + $add_19($reset_5(comment.pos), $add_19($clone_0(other.pos), offset)); + } +} + +function $applyExternalPortPositions(this$static, topLeft, bottomRight){ + var cNode, cNode$iterator, lNode; + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + if (lNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + switch (castTo($getProperty(lNode, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { + case 4: + lNode.pos.x_0 = topLeft.x_0; + break; + case 2: + lNode.pos.x_0 = bottomRight.x_0 - (lNode.size_0.x_0 + lNode.margin.right); + break; + case 1: + lNode.pos.y_0 = topLeft.y_0; + break; + case 3: + lNode.pos.y_0 = bottomRight.y_0 - (lNode.size_0.y_0 + lNode.margin.bottom); + } + } + } + } +} + +function $applyLayout_3(this$static){ + var bottomRight, cNode, cNode$iterator, topLeft; + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$10$Type), new LGraphToCGraphTransformer$lambda$11$Type); + $applyCommentPositions(this$static); + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$12$Type), new LGraphToCGraphTransformer$lambda$13$Type); + if (this$static.edgeRouting == ($clinit_EdgeRouting() , SPLINES)) { + $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.nodesMap), 1)), new LGraphToCGraphTransformer$lambda$17$Type), new LGraphToCGraphTransformer$lambda$18$Type), new LGraphToCGraphTransformer$lambda$19$Type(this$static)); + $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$20$Type), new LGraphToCGraphTransformer$lambda$21$Type), new LGraphToCGraphTransformer$lambda$22$Type), new LGraphToCGraphTransformer$lambda$23$Type), new LGraphToCGraphTransformer$lambda$24$Type(this$static)); + } + topLeft = new KVector_1($intern_59, $intern_59); + bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); + topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); + bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); + bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); + } + $add_19($reset_5(this$static.layeredGraph.offset), $negate(new KVector_1(topLeft.x_0, topLeft.y_0))); + $add_19($reset_5(this$static.layeredGraph.size_0), $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft)); + $applyExternalPortPositions(this$static, topLeft, bottomRight); + $reset(this$static.nodesMap); + $reset(this$static.commentOffsets); + $reset(this$static.verticalSegmentsMap); + $reset(this$static.lockMap); + this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph = null; + this$static.layeredGraph = null; +} + +function $collectVerticalSegmentsOrthogonal(this$static){ + var bend1, bend2, bends, cNode, cTargetNode, edge, edge$iterator, edge$iterator0, first, lastSegment, layer, layer$iterator, node, node$iterator, verticalSegments, vs; + verticalSegments = new ArrayList; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + cNode = castTo($get_10(this$static.nodesMap, node), 57); + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 17); + bends = $listIterator_2(edge.bendPoints, 0); + first = true; + lastSegment = null; + if (bends.currentNode != bends.this$01.tail) { + bend1 = castTo($next_10(bends), 8); + bend2 = null; + if (edge.source.side == ($clinit_PortSide() , NORTH_3)) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); + vs.ignoreSpacing.down = true; + vs.aPort = edge.source; + verticalSegments.array[verticalSegments.array.length] = vs; + } + if (edge.source.side == SOUTH_2) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); + vs.ignoreSpacing.up = true; + vs.aPort = edge.source; + verticalSegments.array[verticalSegments.array.length] = vs; + } + while (bends.currentNode != bends.this$01.tail) { + bend2 = castTo($next_10(bends), 8); + if (!eq_0(bend1.y_0, bend2.y_0)) { + lastSegment = new VerticalSegment(bend1, bend2, null, edge); + verticalSegments.array[verticalSegments.array.length] = lastSegment; + if (first) { + first = false; + if (bend2.y_0 < cNode.hitbox.y_0) { + lastSegment.ignoreSpacing.down = true; + } + else if (bend2.y_0 > cNode.hitbox.y_0 + cNode.hitbox.height) { + lastSegment.ignoreSpacing.up = true; + } + else { + lastSegment.ignoreSpacing.up = true; + lastSegment.ignoreSpacing.down = true; + } + } + } + bends.currentNode != bends.this$01.tail && (bend1 = bend2); + } + if (lastSegment) { + cTargetNode = castTo($get_10(this$static.nodesMap, edge.target.owner), 57); + if (bend1.y_0 < cTargetNode.hitbox.y_0) { + lastSegment.ignoreSpacing.down = true; + } + else if (bend1.y_0 > cTargetNode.hitbox.y_0 + cTargetNode.hitbox.height) { + lastSegment.ignoreSpacing.up = true; + } + else { + lastSegment.ignoreSpacing.up = true; + lastSegment.ignoreSpacing.down = true; + } + } + } + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.bendPoints.size_0 != 0) { + bend1 = castTo($getLast(edge.bendPoints), 8); + if (edge.target.side == ($clinit_PortSide() , NORTH_3)) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); + vs.ignoreSpacing.down = true; + vs.aPort = edge.target; + verticalSegments.array[verticalSegments.array.length] = vs; + } + if (edge.target.side == SOUTH_2) { + vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); + vs.ignoreSpacing.up = true; + vs.aPort = edge.target; + verticalSegments.array[verticalSegments.array.length] = vs; + } + } + } + } + } + return verticalSegments; +} + +function $firstNonStraightSegment(spline, index_0){ + var i, seg; + if (index_0 < 0 || index_0 >= spline.size_1()) { + return null; + } + for (i = index_0; i < spline.size_1(); ++i) { + seg = castTo(spline.get_0(i), 128); + if (i == spline.size_1() - 1 || !seg.isStraight) { + return new Pair(valueOf_4(i), seg); + } + } + return null; +} + +function $init(this$static){ + var hasEdges, index_0, l, l$iterator, n, n$iterator, supportedDirections; + hasEdges = false; + index_0 = 0; + for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + l.id_0 = index_0++; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + !hasEdges && !isEmpty_13($getConnectedEdges_0(n)) && (hasEdges = true); + } + } + supportedDirections = of_2(($clinit_Direction_0() , UNDEFINED_2), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [LEFT_6, RIGHT_6])); + if (!hasEdges) { + $add_5(supportedDirections, UP_1); + $add_5(supportedDirections, DOWN_1); + } + this$static.cGraph = new CGraph(supportedDirections); + $reset(this$static.nodesMap); + $reset(this$static.commentOffsets); + $reset(this$static.lockMap); + $reset(this$static.verticalSegmentsMap); +} + +function $lambda$19(this$static, sl_0){ + var cNode, deltaX, lNode; + lNode = sl_0.source.owner; + cNode = castTo($get_10(this$static.nodesMap, lNode), 57); + deltaX = cNode.hitbox.x_0 - cNode.hitboxPreCompaction.x_0; + $offset_1(sl_0.bendPoints, deltaX, 0); +} + +function $lambda$2_1(this$static, vs_0){ + var vsNode; + vsNode = castTo($get_10(this$static.verticalSegmentsMap, vs_0), 57); + $forEach_1(vs_0.constraints, new LGraphToCGraphTransformer$lambda$3$Type(this$static, vsNode)); +} + +function $lambda$3(this$static, vsNode_1, other_1){ + var otherNode; + otherNode = castTo($get_10(this$static.verticalSegmentsMap, other_1), 57); + $add_3(this$static.cGraph.predefinedHorizontalConstraints, new Pair(vsNode_1, otherNode)); +} + +function $lambda$9_0(this$static, cNode_1, other_1){ + return $put_6(this$static.verticalSegmentsMap, other_1, cNode_1); +} + +function $mergeVerticalSegments(this$static, verticalSegments){ + var next, survivor, vsIt, newX, newY, maxX, newW, maxY, newH; + if (verticalSegments.array.length == 0) { + return; + } + $clinit_Collections(); + sort_4(verticalSegments.array, verticalSegments.array.length, null); + vsIt = new ArrayList$1(verticalSegments); + survivor = castTo($next_7(vsIt), 145); + while (vsIt.i < vsIt.this$01.array.length) { + next = castTo($next_7(vsIt), 145); + if (eq_0(survivor.hitbox.x_0, next.hitbox.x_0) && !(lt_0($getBottomLeft(survivor.hitbox).y_0, next.hitbox.y_0) || lt_0($getBottomLeft(next.hitbox).y_0, survivor.hitbox.y_0))) { + survivor = ($addAll_2(survivor.representedLEdges, next.representedLEdges) , $addAll_2(survivor.affectedBends, next.affectedBends) , $addAll_2(survivor.affectedBoundingBoxes, next.affectedBoundingBoxes) , $addAll(survivor.junctionPoints, next.junctionPoints) , $addAll_2(survivor.constraints, next.constraints) , $addAll_2(survivor.potentialGroupParents, next.potentialGroupParents) , newX = $wnd.Math.min(survivor.hitbox.x_0, next.hitbox.x_0) , newY = $wnd.Math.min(survivor.hitbox.y_0, next.hitbox.y_0) , maxX = $wnd.Math.max(survivor.hitbox.x_0 + survivor.hitbox.width_0, next.hitbox.x_0 + next.hitbox.width_0) , newW = maxX - newX , maxY = $wnd.Math.max(survivor.hitbox.y_0 + survivor.hitbox.height, next.hitbox.y_0 + next.hitbox.height) , newH = maxY - newY , $setRect(survivor.hitbox, newX, newY, newW, newH) , $applyOr(survivor.ignoreSpacing, next.ignoreSpacing) , !survivor.aPort && (survivor.aPort = next.aPort) , $addAll_2(survivor.joined, next.joined) , $add_3(survivor.joined, next) , survivor); + } + else { + $verticalSegmentToCNode(this$static, survivor); + survivor = next; + } + } + $verticalSegmentToCNode(this$static, survivor); +} + +function $transformEdges_0(this$static){ + var style, verticalSegments, verticalSegments_0; + style = castTo($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + switch (style.ordinal) { + case 2: + verticalSegments = $collectVerticalSegmentsOrthogonal(this$static); + break; + case 3: + verticalSegments = (verticalSegments_0 = new ArrayList , $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$4$Type), new LGraphToCGraphTransformer$lambda$5$Type), new LGraphToCGraphTransformer$lambda$6$Type), new LGraphToCGraphTransformer$0methodref$nonNull$Type), new LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0)) , verticalSegments_0); + break; + default:throw toJs(new IllegalStateException_0('Compaction not supported for ' + style + ' edges.')); + } + $mergeVerticalSegments(this$static, verticalSegments); + $forEach_0(new AbstractMap$1(this$static.verticalSegmentsMap), new LGraphToCGraphTransformer$lambda$2$Type(this$static)); +} + +function $transformNodes_0(this$static){ + var cNode, difference, e, hitbox, layer, layer$iterator, node, node$iterator, nodeLock, other, p; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + if (!isEmpty_13($getConnectedEdges_0(node))) { + e = castTo(get_21($getConnectedEdges_0(node)), 17); + other = e.source.owner; + other == node && (other = e.target.owner); + p = new Pair(other, $sub_0($clone_0(node.pos), other.pos)); + $put_6(this$static.commentOffsets, node, p); + continue; + } + } + hitbox = new ElkRectangle_0(node.pos.x_0 - node.margin.left, node.pos.y_0 - node.margin.top_0, node.size_0.x_0 + node.margin.left + node.margin.right, node.size_0.y_0 + node.margin.top_0 + node.margin.bottom); + cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, node), hitbox), NODE_TO_STRING_DELEGATE), this$static.cGraph); + $create($master($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [cNode])), cNode), this$static.cGraph); + nodeLock = new Quadruplet; + $put_6(this$static.lockMap, cNode, nodeLock); + difference = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))) - size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + difference < 0?$set_3(nodeLock, true, ($clinit_Direction_0() , LEFT_6)):difference > 0 && $set_3(nodeLock, true, ($clinit_Direction_0() , RIGHT_6)); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && $set_4(nodeLock); + $put_6(this$static.nodesMap, node, cNode); + } + } +} + +function $verticalSegmentToCNode(this$static, verticalSegment){ + var cNode, difference, e, e$iterator, inc, out, vsLock; + cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, verticalSegment), new ElkRectangle_1(verticalSegment.hitbox)), VS_TO_STRING_DELEGATE), this$static.cGraph); + verticalSegment.potentialGroupParents.array.length == 0 || $addCNode(castTo($get_11(verticalSegment.potentialGroupParents, 0), 57).cGroup, cNode); + vsLock = new Quadruplet; + $put_6(this$static.lockMap, cNode, vsLock); + inc = new HashSet; + out = new HashSet; + for (e$iterator = new ArrayList$1(verticalSegment.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $add_6(inc, e.source); + $add_6(out, e.target); + } + difference = inc.map_0.size_1() - out.map_0.size_1(); + if (difference < 0) { + $set_3(vsLock, true, ($clinit_Direction_0() , LEFT_6)); + $set_3(vsLock, false, RIGHT_6); + } + else if (difference > 0) { + $set_3(vsLock, false, ($clinit_Direction_0() , LEFT_6)); + $set_3(vsLock, true, RIGHT_6); + } + $forEach_1(verticalSegment.joined, new LGraphToCGraphTransformer$lambda$9$Type(this$static, cNode)); + $put_6(this$static.verticalSegmentsMap, verticalSegment, cNode); +} + +function LGraphToCGraphTransformer(){ + $clinit_LGraphToCGraphTransformer(); + this.commentOffsets = new HashMap; + this.nodesMap = new HashMap; + this.verticalSegmentsMap = new HashMap; + this.lockMap = new HashMap; +} + +function lambda$11(cNode_0){ + $clinit_LGraphToCGraphTransformer(); + var lNode; + lNode = castTo(cNode_0.origin_0, 10); + lNode.pos.x_0 = cNode_0.hitbox.x_0 + lNode.margin.left; +} + +function lambda$13(cNode_0){ + $clinit_LGraphToCGraphTransformer(); + var deltaX, vs; + deltaX = cNode_0.hitbox.x_0 - cNode_0.hitboxPreCompaction.x_0; + vs = castTo(cNode_0.origin_0, 145); + $forEach_1(vs.affectedBends, new LGraphToCGraphTransformer$lambda$14$Type(deltaX)); + $forEach_1(vs.affectedBoundingBoxes, new LGraphToCGraphTransformer$lambda$15$Type(deltaX)); + $forEach_0(vs.junctionPoints, new LGraphToCGraphTransformer$lambda$16$Type(deltaX)); +} + +function lambda$14(deltaX_0, b_1){ + $clinit_LGraphToCGraphTransformer(); + return b_1.x_0 += deltaX_0; +} + +function lambda$15(deltaX_0, bb_1){ + $clinit_LGraphToCGraphTransformer(); + return bb_1.x_0 += deltaX_0; +} + +function lambda$16(deltaX_0, jp_1){ + $clinit_LGraphToCGraphTransformer(); + return jp_1.x_0 += deltaX_0; +} + +function lambda$23(chain_0){ + $clinit_LGraphToCGraphTransformer(); + return !!chain_0 && !chain_0.isEmpty(); +} + +function lambda$8_0(verticalSegments_0, spline_1){ + $clinit_LGraphToCGraphTransformer(); + var lastVs, leftTop, rightBottom, s, s$iterator, vs; + lastVs = null; + for (s$iterator = spline_1.iterator_0(); s$iterator.hasNext_0();) { + s = castTo(s$iterator.next_1(), 128); + if (s.isStraight) { + continue; + } + leftTop = $getTopLeft(s.boundingBox); + rightBottom = $getBottomRight(s.boundingBox); + vs = new VerticalSegment(leftTop, rightBottom, null, castTo(s.edges.map_0.keySet_0().iterator_0().next_1(), 17)); + $add_3(vs.affectedBoundingBoxes, s.boundingBox); + verticalSegments_0.array[verticalSegments_0.array.length] = vs; + !!lastVs && $add_3(lastVs.constraints, vs); + lastVs = vs; + } +} + +defineClass(1664, 1, {}, LGraphToCGraphTransformer); +var NODE_TO_STRING_DELEGATE, VS_TO_STRING_DELEGATE; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer', 1664); +function LGraphToCGraphTransformer$0methodref$nonNull$Type(){ +} + +defineClass(1672, 1, $intern_39, LGraphToCGraphTransformer$0methodref$nonNull$Type); +_.test_0 = function test_64(arg0){ + return arg0 != null; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$0methodref$nonNull$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/0methodref$nonNull$Type', 1672); +function LGraphToCGraphTransformer$lambda$0$Type(){ +} + +defineClass(1665, 1, {}, LGraphToCGraphTransformer$lambda$0$Type); +_.apply_0 = function apply_113(arg0){ + return $clinit_LGraphToCGraphTransformer() , toString_40($getProperty(castTo(castTo(arg0, 57).origin_0, 10), ($clinit_InternalProperties_1() , ORIGIN_0))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$0$Type', 1665); +function LGraphToCGraphTransformer$lambda$1$Type(){ +} + +defineClass(1666, 1, {}, LGraphToCGraphTransformer$lambda$1$Type); +_.apply_0 = function apply_114(arg0){ + return $clinit_LGraphToCGraphTransformer() , $toString_14(castTo(castTo(arg0, 57).origin_0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$1$Type', 1666); +function LGraphToCGraphTransformer$lambda$10$Type(){ +} + +defineClass(1675, 1, $intern_39, LGraphToCGraphTransformer$lambda$10$Type); +_.test_0 = function test_65(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$10$Type', 1675); +function LGraphToCGraphTransformer$lambda$11$Type(){ +} + +defineClass(1676, 1, $intern_19, LGraphToCGraphTransformer$lambda$11$Type); +_.accept = function accept_95(arg0){ + lambda$11(castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$11$Type', 1676); +function LGraphToCGraphTransformer$lambda$12$Type(){ +} + +defineClass(1677, 1, $intern_39, LGraphToCGraphTransformer$lambda$12$Type); +_.test_0 = function test_66(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$12$Type', 1677); +function LGraphToCGraphTransformer$lambda$13$Type(){ +} + +defineClass(1681, 1, $intern_19, LGraphToCGraphTransformer$lambda$13$Type); +_.accept = function accept_96(arg0){ + lambda$13(castTo(arg0, 57)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$13$Type', 1681); +function LGraphToCGraphTransformer$lambda$14$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1678, 1, $intern_19, LGraphToCGraphTransformer$lambda$14$Type); +_.accept = function accept_97(arg0){ + lambda$14(this.deltaX_0, castTo(arg0, 8)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$14$Type', 1678); +function LGraphToCGraphTransformer$lambda$15$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1679, 1, $intern_19, LGraphToCGraphTransformer$lambda$15$Type); +_.accept = function accept_98(arg0){ + lambda$15(this.deltaX_0, castTo(arg0, 110)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$15$Type', 1679); +function LGraphToCGraphTransformer$lambda$16$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1680, 1, $intern_19, LGraphToCGraphTransformer$lambda$16$Type); +_.accept = function accept_99(arg0){ + lambda$16(this.deltaX_0, castTo(arg0, 8)); +} +; +_.deltaX_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$16$Type', 1680); +function LGraphToCGraphTransformer$lambda$17$Type(){ +} + +defineClass(1682, 1, {}, LGraphToCGraphTransformer$lambda$17$Type); +_.apply_0 = function apply_115(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$17$Type', 1682); +function LGraphToCGraphTransformer$lambda$18$Type(){ +} + +defineClass(1683, 1, $intern_39, LGraphToCGraphTransformer$lambda$18$Type); +_.test_0 = function test_67(arg0){ + return $clinit_LGraphToCGraphTransformer() , $isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$18$Type', 1683); +function LGraphToCGraphTransformer$lambda$19$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1684, 1, $intern_19, LGraphToCGraphTransformer$lambda$19$Type); +_.accept = function accept_100(arg0){ + $lambda$19(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$19$Type', 1684); +function LGraphToCGraphTransformer$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1668, 1, $intern_19, LGraphToCGraphTransformer$lambda$2$Type); +_.accept = function accept_101(arg0){ + $lambda$2_1(this.$$outer_0, castTo(arg0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$2$Type', 1668); +function LGraphToCGraphTransformer$lambda$20$Type(){ +} + +defineClass(1685, 1, {}, LGraphToCGraphTransformer$lambda$20$Type); +_.apply_0 = function apply_116(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$20$Type', 1685); +function LGraphToCGraphTransformer$lambda$21$Type(){ +} + +defineClass(1686, 1, {}, LGraphToCGraphTransformer$lambda$21$Type); +_.apply_0 = function apply_117(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$21$Type', 1686); +function LGraphToCGraphTransformer$lambda$22$Type(){ +} + +defineClass(1687, 1, {}, LGraphToCGraphTransformer$lambda$22$Type); +_.apply_0 = function apply_118(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$22$Type', 1687); +function LGraphToCGraphTransformer$lambda$23$Type(){ +} + +defineClass(1688, 1, $intern_39, LGraphToCGraphTransformer$lambda$23$Type); +_.test_0 = function test_68(arg0){ + return lambda$23(castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$23$Type', 1688); +function LGraphToCGraphTransformer$lambda$24$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1689, 1, $intern_19, LGraphToCGraphTransformer$lambda$24$Type); +_.accept = function accept_102(arg0){ + $adjustSplineControlPoints(this.$$outer_0, castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$24$Type', 1689); +function LGraphToCGraphTransformer$lambda$3$Type($$outer_0, vsNode_1){ + this.$$outer_0 = $$outer_0; + this.vsNode_1 = vsNode_1; +} + +defineClass(1667, 1, $intern_19, LGraphToCGraphTransformer$lambda$3$Type); +_.accept = function accept_103(arg0){ + $lambda$3(this.$$outer_0, this.vsNode_1, castTo(arg0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$3$Type', 1667); +function LGraphToCGraphTransformer$lambda$4$Type(){ +} + +defineClass(1669, 1, {}, LGraphToCGraphTransformer$lambda$4$Type); +_.apply_0 = function apply_119(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$4$Type', 1669); +function LGraphToCGraphTransformer$lambda$5$Type(){ +} + +defineClass(1670, 1, {}, LGraphToCGraphTransformer$lambda$5$Type); +_.apply_0 = function apply_120(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$5$Type', 1670); +function LGraphToCGraphTransformer$lambda$6$Type(){ +} + +defineClass(1671, 1, {}, LGraphToCGraphTransformer$lambda$6$Type); +_.apply_0 = function apply_121(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$6$Type', 1671); +function LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0){ + this.verticalSegments_0 = verticalSegments_0; +} + +defineClass(1673, 1, $intern_19, LGraphToCGraphTransformer$lambda$8$Type); +_.accept = function accept_104(arg0){ + lambda$8_0(this.verticalSegments_0, castTo(arg0, 15)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$8$Type', 1673); +function LGraphToCGraphTransformer$lambda$9$Type($$outer_0, cNode_1){ + this.$$outer_0 = $$outer_0; + this.cNode_1 = cNode_1; +} + +defineClass(1674, 1, $intern_19, LGraphToCGraphTransformer$lambda$9$Type); +_.accept = function accept_105(arg0){ + $lambda$9_0(this.$$outer_0, this.cNode_1, castTo(arg0, 145)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$9$Type', 1674); +function $addArtificialSourceNode(this$static){ + var dummySource, lastArg, n, n$iterator, sources, src_0, src$iterator; + sources = new LinkedList; + for (n$iterator = new ArrayList$1(this$static.networkSimplexGraph.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 121); + n.incomingEdges.list.array.length == 0 && ($addNode_0(sources, n, sources.tail.prev, sources.tail) , true); + } + if (sources.size_0 > 1) { + dummySource = $create_2((lastArg = new NNode$NNodeBuilder , ++this$static.index_0 , lastArg), this$static.networkSimplexGraph); + for (src$iterator = $listIterator_2(sources, 0); src$iterator.currentNode != src$iterator.this$01.tail;) { + src_0 = castTo($next_10(src$iterator), 121); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 0), dummySource), src_0)); + } + } +} + +function $addEdgeConstraints(this$static){ + var cNode, cNode$iterator, cNode$iterator0, e, e$iterator, lEdge, lEdge$iterator, lEdgeMap, lNode, lNodeMap, n, n$iterator, src_0, srcPort, target, tgt, tgtPort, vs; + lNodeMap = new HashMap; + lEdgeMap = new HashMultimap; + for (cNode$iterator0 = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + $put_9(lNodeMap.hashCodeMap, lNode, cNode); + } + else { + vs = getVerticalSegmentOrNull(cNode); + if (vs) { + for (e$iterator = new ArrayList$1(vs.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $put(lEdgeMap, e, cNode); + } + } + } + } + for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + if ($isSelfLoop(lEdge)) { + continue; + } + srcPort = lEdge.source; + tgtPort = lEdge.target; + if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(lEdge.source.side) && SIDES_NORTH_SOUTH.contains(lEdge.target.side)) { + continue; + } + target = castTo($get_10(lNodeMap, lEdge.target.owner), 57); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 100), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[target.cGroup.id_0])); + if (srcPort.side == WEST_2 && $apply_15(($clinit_LPort() , OUTPUT_PREDICATE , srcPort))) { + for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if (n.hitbox.x_0 < cNode.hitbox.x_0) { + src_0 = this$static.nNodes[n.cGroup.id_0]; + tgt = this$static.nNodes[cNode.cGroup.id_0]; + if (src_0 == tgt) { + continue; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); + } + } + } + if (tgtPort.side == EAST_2 && $apply_14(($clinit_LPort() , INPUT_PREDICATE , tgtPort))) { + for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { + n = castTo(n$iterator.next_1(), 57); + if (n.hitbox.x_0 > cNode.hitbox.x_0) { + src_0 = this$static.nNodes[cNode.cGroup.id_0]; + tgt = this$static.nNodes[n.cGroup.id_0]; + if (src_0 == tgt) { + continue; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); + } + } + } + } + } + } +} + +function $addSeparationConstraints(this$static){ + var adjust, alterOffset, cNode, cNode$iterator, delta, helper, incNode, incNode$iterator, offsetDelta, port, spacing, weight; + for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + for (incNode$iterator = cNode.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 57); + if (cNode.cGroup == incNode.cGroup) { + continue; + } + $isHorizontal(this$static.compactor.direction)?(spacing = this$static.compactor.spacingsHandler.getHorizontalSpacing(cNode, incNode)):(spacing = this$static.compactor.spacingsHandler.getVerticalSpacing(cNode, incNode)); + delta = cNode.cGroupOffset.x_0 + cNode.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0; + delta = $wnd.Math.ceil(delta); + delta = $wnd.Math.max(0, delta); + if (isVerticalSegmentsOfSameEdge(cNode, incNode)) { + helper = $create_2(new NNode$NNodeBuilder, this$static.networkSimplexGraph); + offsetDelta = round_int($wnd.Math.ceil(incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0)); + adjust = offsetDelta - (incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0); + port = getVerticalSegmentOrNull(cNode).aPort; + alterOffset = cNode; + if (!port) { + port = getVerticalSegmentOrNull(incNode).aPort; + adjust = -adjust; + alterOffset = incNode; + } + if (port) { + alterOffset.cGroupOffset.x_0 -= adjust; + port.pos.x_0 -= adjust; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, offsetDelta)), 1), helper), this$static.nNodes[cNode.cGroup.id_0])); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, -offsetDelta)), 1), helper), this$static.nNodes[incNode.cGroup.id_0])); + } + else { + weight = 1; + (instanceOf(cNode.origin_0, 145) && instanceOf(incNode.origin_0, 10) || instanceOf(incNode.origin_0, 145) && instanceOf(cNode.origin_0, 10)) && (weight = 2); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int(delta)), weight), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[incNode.cGroup.id_0])); + } + } + } +} + +function NetworkSimplexCompaction(){ +} + +defineClass(1663, 1, {}, NetworkSimplexCompaction); +_.compact = function compact_1(theCompactor){ + var cGroup, cGroup$iterator, cNode, cNode$iterator, nNode; + this.compactor = theCompactor; + this.networkSimplexGraph = new NGraph; + this.nNodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit, $intern_2, 121, this.compactor.cGraph.cGroups.array.length, 0, 1); + this.index_0 = 0; + for (cGroup$iterator = new ArrayList$1(this.compactor.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { + cGroup = castTo($next_7(cGroup$iterator), 307); + cGroup.id_0 = this.index_0; + nNode = $create_2($origin_0(new NNode$NNodeBuilder, cGroup), this.networkSimplexGraph); + this.nNodes[this.index_0] = nNode; + ++this.index_0; + } + $addSeparationConstraints(this); + $addEdgeConstraints(this); + $addArtificialSourceNode(this); + $execute_0(forGraph(this.networkSimplexGraph), new BasicProgressMonitor); + for (cNode$iterator = new ArrayList$1(this.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + cNode.hitbox.x_0 = this.nNodes[cNode.cGroup.id_0].layer + cNode.cGroupOffset.x_0; + } +} +; +_.index_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_NetworkSimplexCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'NetworkSimplexCompaction', 1663); +function $compareTo_12(this$static, o){ + var d; + d = fuzzyCompare(this$static.hitbox.x_0, o.hitbox.x_0); + if (d == 0) { + return compare_4(this$static.hitbox.y_0, o.hitbox.y_0); + } + return d; +} + +function $toString_14(this$static){ + var sb; + sb = new StringBuilder; + sb.string += 'VerticalSegment '; + $append_10(sb, this$static.hitbox); + sb.string += ' '; + $append_11(sb, $join(new Joiner, new ArrayList$1(this$static.representedLEdges))); + return sb.string; +} + +function VerticalSegment(bend1, bend2, cNode, lEdge){ + var inJPs, jp, jp$iterator; + this.potentialGroupParents = new ArrayList; + this.representedLEdges = new ArrayList; + this.affectedBends = new ArrayList; + this.affectedBoundingBoxes = new ArrayList; + this.hitbox = new ElkRectangle; + this.junctionPoints = new KVectorChain; + this.ignoreSpacing = new Quadruplet; + this.constraints = new ArrayList; + this.joined = new ArrayList; + $add_3(this.affectedBends, bend1); + $add_3(this.affectedBends, bend2); + this.hitbox.x_0 = $wnd.Math.min(bend1.x_0, bend2.x_0); + this.hitbox.y_0 = $wnd.Math.min(bend1.y_0, bend2.y_0); + this.hitbox.width_0 = $wnd.Math.abs(bend1.x_0 - bend2.x_0); + this.hitbox.height = $wnd.Math.abs(bend1.y_0 - bend2.y_0); + inJPs = castTo($getProperty(lEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (inJPs) { + for (jp$iterator = $listIterator_2(inJPs, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(jp$iterator), 8); + eq_0(jp.x_0, bend1.x_0) && $add_7(this.junctionPoints, jp); + } + } + !!cNode && $add_3(this.potentialGroupParents, cNode); + $add_3(this.representedLEdges, lEdge); +} + +defineClass(145, 1, {35:1, 145:1}, VerticalSegment); +_.compareTo_0 = function compareTo_13(o){ + return $compareTo_12(this, castTo(o, 145)); +} +; +_.toString_0 = function toString_94(){ + return $toString_14(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_compaction_VerticalSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'VerticalSegment', 145); +function $addEasternCrossings(this$static, upperNode, lowerNode){ + this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , EAST_2), this$static.easternAdjacencies); + this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, EAST_2, this$static.easternAdjacencies); + if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { + return; + } + $countCrossingsByMergingAdjacencyLists(this$static); +} + +function $addWesternCrossings(this$static, upperNode, lowerNode){ + this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , WEST_2), this$static.westernAdjacencies); + this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, WEST_2, this$static.westernAdjacencies); + if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { + return; + } + $countCrossingsByMergingAdjacencyLists(this$static); +} + +function $countBothSideCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addWesternCrossings(this$static, upperNode, lowerNode); + $addEasternCrossings(this$static, upperNode, lowerNode); +} + +function $countCrossingsByMergingAdjacencyLists(this$static){ + while (this$static.upperAdjacencies.currentSize != 0 && this$static.lowerAdjacencies.currentSize != 0) { + if ($currentAdjacency(this$static.upperAdjacencies).position > $currentAdjacency(this$static.lowerAdjacencies).position) { + this$static.upperLowerCrossings += this$static.upperAdjacencies.currentSize; + $removeFirst_1(this$static.lowerAdjacencies); + } + else if ($currentAdjacency(this$static.lowerAdjacencies).position > $currentAdjacency(this$static.upperAdjacencies).position) { + this$static.lowerUpperCrossings += this$static.lowerAdjacencies.currentSize; + $removeFirst_1(this$static.upperAdjacencies); + } + else { + this$static.upperLowerCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.upperAdjacencies); + this$static.lowerUpperCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.lowerAdjacencies); + $removeFirst_1(this$static.upperAdjacencies); + $removeFirst_1(this$static.lowerAdjacencies); + } + } +} + +function $countEasternEdgeCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addEasternCrossings(this$static, upperNode, lowerNode); +} + +function $countWesternEdgeCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + if (upperNode == lowerNode) { + return; + } + $addWesternCrossings(this$static, upperNode, lowerNode); +} + +function $getAdjacencyFor(this$static, node, side, adjacencies){ + var aL, n, n$array, n$index, n$max; + if (adjacencies.hashCodeMap.size_0 + adjacencies.stringMap.size_0 == 0) { + for (n$array = this$static.currentNodeOrder[this$static.freeLayerIndex] , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { + n = n$array[n$index]; + $put_6(adjacencies, n, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$static, n, side)); + } + } + aL = castTo(getEntryValueOrNull($getEntry_0(adjacencies.hashCodeMap, node)), 663); + aL.currentIndex = 0; + aL.currentSize = aL.size_0; + aL.currentSize == 0 || $reset_3(castTo($get_11(aL.adjacencyList, aL.currentIndex), 287)); + return aL; +} + +function $setPortPositionsForLayer(this$static, layerIndex, portSide){ + var node, node$array, node$index, node$max, port, port$iterator, portId, ports; + portId = 0; + for (node$array = this$static.currentNodeOrder[layerIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + ports = inNorthSouthEastWestOrder(node, portSide); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $put_6(this$static.portPositions, port, valueOf_4(portId++)); + } + } +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter(currentNodeOrder, freeLayerIndex){ + this.portPositions = new HashMap; + this.easternAdjacencies = new HashMap; + this.westernAdjacencies = new HashMap; + this.currentNodeOrder = currentNodeOrder; + this.freeLayerIndex = freeLayerIndex; + this.freeLayerIndex > 0 && $setPortPositionsForLayer(this, this.freeLayerIndex - 1, ($clinit_PortSide() , EAST_2)); + this.freeLayerIndex < this.currentNodeOrder.length - 1 && $setPortPositionsForLayer(this, this.freeLayerIndex + 1, ($clinit_PortSide() , WEST_2)); +} + +defineClass(827, 1, {}, BetweenLayerEdgeTwoNodeCrossingsCounter); +_.freeLayerIndex = 0; +_.lowerUpperCrossings = 0; +_.upperLowerCrossings = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter', 827); +function $addAdjacencyOf(this$static, edge){ + var adjacentPort, adjacentPortPosition, lastIndex; + adjacentPort = $adjacentPortOf(edge, this$static.side); + adjacentPortPosition = castTo($get_10(this$static.this$01.portPositions, adjacentPort), 19).value_0; + lastIndex = this$static.adjacencyList.array.length - 1; + if (this$static.adjacencyList.array.length != 0 && castTo($get_11(this$static.adjacencyList, lastIndex), 287).position == adjacentPortPosition) { + ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).cardinality; + ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).currentCardinality; + } + else { + $add_3(this$static.adjacencyList, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition)); + } +} + +function $adjacentPortOf(e, s){ + return s == ($clinit_PortSide() , WEST_2)?e.source:e.target; +} + +function $countAdjacenciesBelowNodeOfFirstPort(this$static){ + return this$static.currentSize - castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287).currentCardinality; +} + +function $currentAdjacency(this$static){ + return castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); +} + +function $iterateTroughEdgesCollectingAdjacencies(this$static){ + var edge, edge$iterator, edges, port, port$iterator, ports; + ports = inNorthSouthEastWestOrder(this$static.node, this$static.side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + edges = this$static.side == ($clinit_PortSide() , WEST_2)?port.incomingEdges:port.outgoingEdges; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer != edge.target.owner.layer) { + $addAdjacencyOf(this$static, edge); + ++this$static.size_0; + ++this$static.currentSize; + } + } + } +} + +function $removeFirst_1(this$static){ + var currentEntry; + if (this$static.currentSize == 0) { + return; + } + currentEntry = castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); + currentEntry.currentCardinality == 1?(++this$static.currentIndex , this$static.currentIndex < this$static.adjacencyList.array.length && $reset_3(castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287))):--currentEntry.currentCardinality; + --this$static.currentSize; +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$0, node, side){ + this.this$01 = this$0; + this.node = node; + this.side = side; + this.adjacencyList = new ArrayList; + $iterateTroughEdgesCollectingAdjacencies(this); + $clinit_Collections(); + $sort(this.adjacencyList, null); +} + +defineClass(663, 1, {663:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList); +_.toString_0 = function toString_95(){ + return 'AdjacencyList [node=' + this.node + ', adjacencies= ' + this.adjacencyList + ']'; +} +; +_.currentIndex = 0; +_.currentSize = 0; +_.size_0 = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList', 663); +function $compareTo_13(this$static, o){ + return this$static.position < o.position?-1:this$static.position == o.position?0:1; +} + +function $reset_3(this$static){ + this$static.currentCardinality = this$static.cardinality; +} + +function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition){ + this.position = adjacentPortPosition; + this.cardinality = 1; + this.currentCardinality = 1; +} + +defineClass(287, 1, {35:1, 287:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency); +_.compareTo_0 = function compareTo_14(o){ + return $compareTo_13(this, castTo(o, 287)); +} +; +_.toString_0 = function toString_96(){ + return 'Adjacency [position=' + this.position + ', cardinality=' + this.cardinality + ', currentCardinality=' + this.currentCardinality + ']'; +} +; +_.cardinality = 0; +_.currentCardinality = 0; +_.position = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency', 287); +function $fillCrossingMatrix(this$static, upperNode, lowerNode){ + if (this$static.oneSided) { + switch (this$static.direction) { + case 1: + $countEasternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + break; + case 0: + $countWesternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + } + } + else { + $countBothSideCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); + } + this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0] = this$static.inBetweenLayerCrossingCounter.upperLowerCrossings; + this$static.crossingMatrix[lowerNode.id_0][upperNode.id_0] = this$static.inBetweenLayerCrossingCounter.lowerUpperCrossings; +} + +function $getCrossingMatrixEntry(this$static, upperNode, lowerNode){ + if (!this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0]) { + $fillCrossingMatrix(this$static, upperNode, lowerNode); + this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0] = true; + this$static.isCrossingMatrixFilled[lowerNode.id_0][upperNode.id_0] = true; + } + return this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0]; +} + +function CrossingMatrixFiller(greedySwitchType, graph, freeLayerIndex, direction){ + var freeLayer; + this.direction = direction; + this.oneSided = greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); + freeLayer = graph[freeLayerIndex]; + this.isCrossingMatrixFilled = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [freeLayer.length, freeLayer.length], 2); + this.crossingMatrix = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [freeLayer.length, freeLayer.length], 2); + this.inBetweenLayerCrossingCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(graph, freeLayerIndex); +} + +defineClass(1929, 1, {}, CrossingMatrixFiller); +_.direction = 0; +_.oneSided = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_CrossingMatrixFiller_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'CrossingMatrixFiller', 1929); +function init_0(initializables, order){ + var e, edge, edge$iterator, i, i$iterator, i$iterator0, i$iterator1, i$iterator2, i$iterator3, l, n, p, port, ports; + for (l = 0; l < order.length; l++) { + for (i$iterator0 = initializables.iterator_0(); i$iterator0.hasNext_0();) { + i = castTo(i$iterator0.next_1(), 225); + i.initAtLayerLevel(l, order); + } + for (n = 0; n < order[l].length; n++) { + for (i$iterator1 = initializables.iterator_0(); i$iterator1.hasNext_0();) { + i = castTo(i$iterator1.next_1(), 225); + i.initAtNodeLevel(l, n, order); + } + ports = order[l][n].ports; + for (p = 0; p < ports.array.length; p++) { + for (i$iterator2 = initializables.iterator_0(); i$iterator2.hasNext_0();) { + i = castTo(i$iterator2.next_1(), 225); + i.initAtPortLevel(l, n, p, order); + } + port = (checkCriticalElementIndex(p, ports.array.length) , castTo(ports.array[p], 11)); + e = 0; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + for (i$iterator3 = initializables.iterator_0(); i$iterator3.hasNext_0();) { + i = castTo(i$iterator3.next_1(), 225); + i.initAtEdgeLevel(l, n, p, e++, edge, order); + } + } + } + } + } + for (i$iterator = initializables.iterator_0(); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 225); + i.initAfterTraversal(); + } +} + +var Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit = createForInterface('org.eclipse.elk.alg.layered.p3order.counting', 'IInitializable'); +function $continueSwitchingUntilNoImprovementInLayer(this$static, freeLayerIndex){ + var continueSwitching, improved; + improved = false; + do { + continueSwitching = $sweepDownwardInLayer(this$static, freeLayerIndex); + improved = improved | continueSwitching; + } + while (continueSwitching); + return improved; +} + +function $setUp(this$static, order, freeLayerIndex, forwardSweep){ + var crossingMatrixFiller, side; + this$static.currentNodeOrder = order; + side = forwardSweep?0:1; + this$static.switchDecider = (crossingMatrixFiller = new CrossingMatrixFiller(this$static.greedySwitchType, this$static.currentNodeOrder, freeLayerIndex, side) , new SwitchDecider(freeLayerIndex, this$static.currentNodeOrder, crossingMatrixFiller, this$static.portPositions, this$static.graphData, this$static.greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0))); +} + +function $startIndex(isForwardSweep, length_0){ + return isForwardSweep?0:length_0 - 1; +} + +function $sweepDownwardInLayer(this$static, layerIndex){ + var continueSwitching, lengthOfFreeLayer, lowerNodeIndex, upperNodeIndex; + continueSwitching = false; + lengthOfFreeLayer = this$static.currentNodeOrder[layerIndex].length; + for (upperNodeIndex = 0; upperNodeIndex < lengthOfFreeLayer - 1; upperNodeIndex++) { + lowerNodeIndex = upperNodeIndex + 1; + continueSwitching = continueSwitching | $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex); + } + return continueSwitching; +} + +function $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex){ + var continueSwitching, layer, temp; + continueSwitching = false; + if ($doesSwitchReduceCrossings(this$static.switchDecider, upperNodeIndex, lowerNodeIndex)) { + $notifyOfSwitch(this$static.switchDecider, this$static.currentNodeOrder[layerIndex][upperNodeIndex], this$static.currentNodeOrder[layerIndex][lowerNodeIndex]); + layer = this$static.currentNodeOrder[layerIndex]; + temp = layer[lowerNodeIndex]; + layer[lowerNodeIndex] = layer[upperNodeIndex]; + layer[upperNodeIndex] = temp; + continueSwitching = true; + } + return continueSwitching; +} + +function GreedySwitchHeuristic(greedyType, graphData){ + this.graphData = graphData; + this.greedySwitchType = greedyType; +} + +defineClass(1804, 1, $intern_111, GreedySwitchHeuristic); +_.initAtEdgeLevel = function initAtEdgeLevel(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtNodeLevel = function initAtNodeLevel(l, n, nodeOrder){ +} +; +_.alwaysImproves = function alwaysImproves(){ + return this.greedySwitchType != ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); +} +; +_.initAfterTraversal = function initAfterTraversal(){ + this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; +} +; +_.initAtPortLevel = function initAtPortLevel(l, n, p, nodeOrder){ + ++this.nPorts; +} +; +_.isDeterministic = function isDeterministic(){ + return true; +} +; +_.minimizeCrossings = function minimizeCrossings(order, freeLayerIndex, forwardSweep, isFirstSweep){ + $setUp(this, order, freeLayerIndex, forwardSweep); + return $continueSwitchingUntilNoImprovementInLayer(this, freeLayerIndex); +} +; +_.setFirstLayerOrder = function setFirstLayerOrder(currentOrder, isForwardSweep){ + var startIndex; + startIndex = $startIndex(isForwardSweep, currentOrder.length); + $setUp(this, currentOrder, startIndex, isForwardSweep); + return $sweepDownwardInLayer(this, startIndex); +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_GreedySwitchHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'GreedySwitchHeuristic', 1804); +function $countCrossings(this$static, upperNode, lowerNode){ + this$static.upperLowerCrossings = 0; + this$static.lowerUpperCrossings = 0; + upperNode.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode.type_0 == NORTH_SOUTH_PORT && castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 10) == castTo($getProperty(lowerNode, ORIGIN_0), 10) && ($originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?$countCrossingsOfTwoNorthSouthDummies(this$static, upperNode, lowerNode):$countCrossingsOfTwoNorthSouthDummies(this$static, lowerNode, upperNode)); + upperNode.type_0 == NORTH_SOUTH_PORT && lowerNode.type_0 == LONG_EDGE?$originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.upperLowerCrossings = 1):(this$static.lowerUpperCrossings = 1):lowerNode.type_0 == NORTH_SOUTH_PORT && upperNode.type_0 == LONG_EDGE && ($originPortOf(lowerNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.lowerUpperCrossings = 1):(this$static.upperLowerCrossings = 1)); + $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode); +} + +function $countCrossingsOfTwoNorthSouthDummies(this$static, furtherFromNormalNode, closerToNormalNode){ + var closerEastPorts, closerWestPorts, furtherEastPorts, furtherWestPorts; + if ($originPortPositionOf(this$static, furtherFromNormalNode) > $originPortPositionOf(this$static, closerToNormalNode)) { + closerEastPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , EAST_2)); + this$static.upperLowerCrossings = closerEastPorts.isEmpty()?0:$getDegree(castTo(closerEastPorts.get_0(0), 11)); + furtherWestPorts = $getPortSideView(furtherFromNormalNode, WEST_2); + this$static.lowerUpperCrossings = furtherWestPorts.isEmpty()?0:$getDegree(castTo(furtherWestPorts.get_0(0), 11)); + } + else { + closerWestPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , WEST_2)); + this$static.upperLowerCrossings = closerWestPorts.isEmpty()?0:$getDegree(castTo(closerWestPorts.get_0(0), 11)); + furtherEastPorts = $getPortSideView(furtherFromNormalNode, EAST_2); + this$static.lowerUpperCrossings = furtherEastPorts.isEmpty()?0:$getDegree(castTo(furtherEastPorts.get_0(0), 11)); + } +} + +function $initializePortPositions(this$static){ + var node, node$array, node$index, node$max; + for (node$array = this$static.layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $setPortIdsOn(this$static, node, ($clinit_PortSide() , SOUTH_2)); + $setPortIdsOn(this$static, node, NORTH_3); + } +} + +function $numberOfNorthSouthEdges(node, side){ + var numberOfEdges, port, port$iterator; + numberOfEdges = 0; + for (port$iterator = $getPortSideView(node, side).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + numberOfEdges += $getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null?1:0; + } + return numberOfEdges; +} + +function $originPortOf(node){ + var origin_0, port; + port = castTo($get_11(node.ports, 0), 11); + origin_0 = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + return origin_0; +} + +function $originPortPositionOf(this$static, node){ + var origin_0, port; + origin_0 = $originPortOf(node); + port = origin_0; + return castTo($get_10(this$static.portPositions, port), 19).value_0; +} + +function $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode){ + if (upperNode.type_0 == ($clinit_LNode$NodeType() , NORMAL) && lowerNode.type_0 == LONG_EDGE) { + this$static.upperLowerCrossings = $numberOfNorthSouthEdges(upperNode, ($clinit_PortSide() , SOUTH_2)); + this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(upperNode, NORTH_3); + } + if (lowerNode.type_0 == NORMAL && upperNode.type_0 == LONG_EDGE) { + this$static.upperLowerCrossings = $numberOfNorthSouthEdges(lowerNode, ($clinit_PortSide() , NORTH_3)); + this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(lowerNode, SOUTH_2); + } +} + +function $setPortIdsOn(this$static, node, side){ + var port, port$iterator, portId, ports; + ports = inNorthSouthEastWestOrder(node, side); + portId = 0; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $put_6(this$static.portPositions, port, valueOf_4(portId++)); + } +} + +function NorthSouthEdgeNeighbouringNodeCrossingsCounter(nodes){ + this.layer = nodes; + this.portPositions = new HashMap; + $initializePortPositions(this); +} + +defineClass(1930, 1, {}, NorthSouthEdgeNeighbouringNodeCrossingsCounter); +_.lowerUpperCrossings = 0; +_.upperLowerCrossings = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_NorthSouthEdgeNeighbouringNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'NorthSouthEdgeNeighbouringNodeCrossingsCounter', 1930); +function $doesSwitchReduceCrossings(this$static, upperNodeIndex, lowerNodeIndex){ + var crossingNumbers, leftInlayer, lowerNode, lowerPort, lowerUpperCrossings, rightInlayer, upperLowerCrossings, upperNode, upperPort, upperNode_0, lowerNode_0, constraints, neitherNodeIsLongEdgeDummy, upperLayoutUnit, lowerLayoutUnit, areInDifferentLayoutUnits, nodesHaveLayoutUnits, upperNodeHasNorthernEdges, lowerNodeHasSouthernEdges, hasLayoutUnitConstraint; + if (upperNode_0 = this$static.freeLayer[upperNodeIndex] , lowerNode_0 = this$static.freeLayer[lowerNodeIndex] , (constraints = castTo($getProperty(upperNode_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15) , !!constraints && constraints.size_1() != 0 && constraints.contains(lowerNode_0)) || (neitherNodeIsLongEdgeDummy = upperNode_0.type_0 != ($clinit_LNode$NodeType() , LONG_EDGE) && lowerNode_0.type_0 != LONG_EDGE , upperLayoutUnit = castTo($getProperty(upperNode_0, IN_LAYER_LAYOUT_UNIT), 10) , lowerLayoutUnit = castTo($getProperty(lowerNode_0, IN_LAYER_LAYOUT_UNIT), 10) , areInDifferentLayoutUnits = upperLayoutUnit != lowerLayoutUnit , nodesHaveLayoutUnits = !!upperLayoutUnit && upperLayoutUnit != upperNode_0 || !!lowerLayoutUnit && lowerLayoutUnit != lowerNode_0 , upperNodeHasNorthernEdges = $hasEdgesOnSide(upperNode_0, ($clinit_PortSide() , NORTH_3)) , lowerNodeHasSouthernEdges = $hasEdgesOnSide(lowerNode_0, SOUTH_2) , nodesHaveLayoutUnits = nodesHaveLayoutUnits | ($hasEdgesOnSide(upperNode_0, SOUTH_2) || $hasEdgesOnSide(lowerNode_0, NORTH_3)) , hasLayoutUnitConstraint = nodesHaveLayoutUnits && areInDifferentLayoutUnits || upperNodeHasNorthernEdges || lowerNodeHasSouthernEdges , neitherNodeIsLongEdgeDummy && hasLayoutUnitConstraint) || upperNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode_0.type_0 == NORMAL || lowerNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && upperNode_0.type_0 == NORMAL) { + return false; + } + upperNode = this$static.freeLayer[upperNodeIndex]; + lowerNode = this$static.freeLayer[lowerNodeIndex]; + leftInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); + rightInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); + $countCrossings(this$static.northSouthCounter, upperNode, lowerNode); + upperLowerCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, upperNode, lowerNode) + castTo(leftInlayer.first, 19).value_0 + castTo(rightInlayer.first, 19).value_0 + this$static.northSouthCounter.upperLowerCrossings; + lowerUpperCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, lowerNode, upperNode) + castTo(leftInlayer.second, 19).value_0 + castTo(rightInlayer.second, 19).value_0 + this$static.northSouthCounter.lowerUpperCrossings; + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ORIGIN_0), 11); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); + crossingNumbers = $countCrossingsBetweenPortsInBothOrders(this$static.parentCrossCounter, upperPort, lowerPort); + upperLowerCrossings += castTo(crossingNumbers.first, 19).value_0; + lowerUpperCrossings += castTo(crossingNumbers.second, 19).value_0; + } + return upperLowerCrossings > lowerUpperCrossings; +} + +function $hasEdgesOnSide(node, side){ + var port, port$iterator, ports; + ports = $getPortSideView(node, side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if ($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null || $hasNext_6(new LPort$CombineIter$1(port.connectedEdges))) { + return true; + } + } + return false; +} + +function $initParentCrossingsCounters(this$static, freeLayerIndex, length_0){ + var leftLayer, middleLayer, parentGraphData, parentNodeLayerPos, parentNodeOrder, portPos, rightLayer, rightMostLayer; + parentGraphData = this$static.graphData.parentGraphData; + parentNodeOrder = parentGraphData.currentNodeOrder; + portPos = parentGraphData.portPositions; + this$static.parentCrossCounter = new CrossingsCounter(portPos); + parentNodeLayerPos = this$static.graphData.parent_0.layer.id_0; + leftLayer = parentNodeLayerPos > 0?parentNodeOrder[parentNodeLayerPos - 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); + middleLayer = parentNodeOrder[parentNodeLayerPos]; + rightLayer = parentNodeLayerPos < parentNodeOrder.length - 1?parentNodeOrder[parentNodeLayerPos + 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); + rightMostLayer = freeLayerIndex == length_0 - 1; + rightMostLayer?$initForCountingBetween(this$static.parentCrossCounter, middleLayer, rightLayer):$initForCountingBetween(this$static.parentCrossCounter, leftLayer, middleLayer); +} + +function $notifyOfSwitch(this$static, upperNode, lowerNode){ + var lowerPort, upperPort; + $switchNodes(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); + $switchNodes(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); + $switchPorts(this$static.parentCrossCounter, upperPort, lowerPort); + } +} + +function SwitchDecider(freeLayerIndex, graph, crossingMatrixFiller, portPositions, graphData, oneSided){ + this.crossingMatrixFiller = crossingMatrixFiller; + this.graphData = graphData; + if (freeLayerIndex >= graph.length) { + throw toJs(new IndexOutOfBoundsException_0('Greedy SwitchDecider: Free layer not in graph.')); + } + this.freeLayer = graph[freeLayerIndex]; + this.leftInLayerCounter = new CrossingsCounter(portPositions); + $initPortPositionsForInLayerCrossings(this.leftInLayerCounter, this.freeLayer, ($clinit_PortSide() , WEST_2)); + this.rightInLayerCounter = new CrossingsCounter(portPositions); + $initPortPositionsForInLayerCrossings(this.rightInLayerCounter, this.freeLayer, EAST_2); + this.northSouthCounter = new NorthSouthEdgeNeighbouringNodeCrossingsCounter(this.freeLayer); + this.countCrossingsCausedByPortSwitch = !oneSided && graphData.hasParent && !graphData.useBottomUp && this.freeLayer[0].type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); + this.countCrossingsCausedByPortSwitch && $initParentCrossingsCounters(this, freeLayerIndex, graph.length); +} + +defineClass(1917, 1, {}, SwitchDecider); +_.countCrossingsCausedByPortSwitch = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_SwitchDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'SwitchDecider', 1917); +function $addSelfLoopEdge(this$static, slEdge){ + var lLabels, slSource, slTarget; + if ($add_6(this$static.slEdges, slEdge)) { + slEdge.slHyperLoop = this$static; + slSource = slEdge.slSource; + $indexOf_3(this$static.slPorts, slSource, 0) != -1 || $add_3(this$static.slPorts, slSource); + slTarget = slEdge.slTarget; + $indexOf_3(this$static.slPorts, slTarget, 0) != -1 || $add_3(this$static.slPorts, slTarget); + lLabels = slEdge.lEdge.labels; + if (lLabels.array.length != 0) { + !this$static.slLabels && (this$static.slLabels = new SelfHyperLoopLabels(this$static)); + $addLLabels(this$static.slLabels, lLabels); + } + } +} + +function $computePortsPerSide(this$static){ + var portSide, slPort, slPort$iterator; + this$static.slPortsBySide = new ArrayListMultimap_0(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, this$static.slPorts.array.length); + for (slPort$iterator = new ArrayList$1(this$static.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_7(slPort$iterator), 113); + portSide = slPort.lPort.side; + $put(this$static.slPortsBySide, portSide, slPort); + } + this$static.selfLoopType = fromPortSides($keySet(this$static.slPortsBySide)); +} + +function $setLeftmostPort(this$static, leftmostPort){ + this$static.leftmostPort = leftmostPort; +} + +function $setRightmostPort(this$static, rightmostPort){ + this$static.rightmostPort = rightmostPort; +} + +function $setRoutingSlot(this$static, portSide, slot){ + var slotCount; + this$static.routingSlot[portSide.ordinal] = slot; + slotCount = this$static.slHolder.routingSlotCount; + slotCount[portSide.ordinal] = $wnd.Math.max(slotCount[portSide.ordinal], slot + 1); +} + +function SelfHyperLoop(slHolder){ + var all; + this.slPorts = new ArrayList; + this.slEdges = new HashSet; + this.occupiedPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.routingSlot = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.slHolder = slHolder; +} + +defineClass(101, 1, {101:1}, SelfHyperLoop); +_.leftmostPort = null; +_.rightmostPort = null; +_.slLabels = null; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoop_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoop', 101); +function $addLLabels(this$static, newLLabels){ + var newLLabel, newLLabel$iterator; + for (newLLabel$iterator = new ArrayList$1(newLLabels); newLLabel$iterator.i < newLLabel$iterator.this$01.array.length;) { + newLLabel = castTo($next_7(newLLabel$iterator), 70); + $add_3(this$static.lLabels, newLLabel); + $updateSize(this$static, newLLabel); + } +} + +function $applyPlacement(this$static, offset){ + $isHorizontal(this$static.layoutDirection)?$applyPlacementForHorizontalLayout(this$static, offset):$applyPlacementVerticalForVerticalLayout(this$static, offset); +} + +function $applyPlacementForHorizontalLayout(this$static, offset){ + var lLabel, lLabel$iterator, labelPos, x_0, y_0; + x_0 = this$static.position.x_0; + y_0 = this$static.position.y_0; + for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { + lLabel = castTo($next_7(lLabel$iterator), 70); + labelPos = lLabel.pos; + this$static.alignment == ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1) || this$static.side == ($clinit_PortSide() , EAST_2)?(labelPos.x_0 = x_0):this$static.alignment == RIGHT_1 || this$static.side == ($clinit_PortSide() , WEST_2)?(labelPos.x_0 = x_0 + this$static.size_0.x_0 - lLabel.size_0.x_0):(labelPos.x_0 = x_0 + (this$static.size_0.x_0 - lLabel.size_0.x_0) / 2); + labelPos.y_0 = y_0; + $add_19(labelPos, offset); + y_0 += lLabel.size_0.y_0 + this$static.labelLabelSpacing; + } +} + +function $applyPlacementVerticalForVerticalLayout(this$static, offset){ + var lLabel, lLabel$iterator, labelPos, x_0, y_0; + x_0 = this$static.position.x_0; + y_0 = this$static.position.y_0; + for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { + lLabel = castTo($next_7(lLabel$iterator), 70); + labelPos = lLabel.pos; + labelPos.x_0 = x_0; + this$static.side == ($clinit_PortSide() , NORTH_3)?(labelPos.y_0 = y_0 + this$static.size_0.y_0 - lLabel.size_0.y_0):(labelPos.y_0 = y_0); + $add_19(labelPos, offset); + x_0 += lLabel.size_0.x_0 + this$static.labelLabelSpacing; + } +} + +function $updateSize(this$static, newLLabel){ + var newLLabelSize; + newLLabelSize = newLLabel.size_0; + if ($isHorizontal(this$static.layoutDirection)) { + this$static.size_0.x_0 = $wnd.Math.max(this$static.size_0.x_0, newLLabelSize.x_0); + this$static.size_0.y_0 += newLLabelSize.y_0; + this$static.lLabels.array.length > 1 && (this$static.size_0.y_0 += this$static.labelLabelSpacing); + } + else { + this$static.size_0.x_0 += newLLabelSize.x_0; + this$static.size_0.y_0 = $wnd.Math.max(this$static.size_0.y_0, newLLabelSize.y_0); + this$static.lLabels.array.length > 1 && (this$static.size_0.x_0 += this$static.labelLabelSpacing); + } +} + +function SelfHyperLoopLabels(slLoop){ + var lNode; + this.lLabels = new ArrayList; + this.size_0 = new KVector; + this.position = new KVector; + lNode = slLoop.slHolder.lNode; + this.layoutDirection = castTo($getProperty($getGraph(lNode), ($clinit_LayeredOptions() , DIRECTION)), 103); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_LABEL_LABEL))); +} + +defineClass(1916, 1, {}, SelfHyperLoopLabels); +_.id_0 = 0; +_.labelLabelSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels', 1916); +function $clinit_SelfHyperLoopLabels$Alignment(){ + $clinit_SelfHyperLoopLabels$Alignment = emptyMethod; + CENTER_2 = new SelfHyperLoopLabels$Alignment('CENTER', 0); + LEFT_1 = new SelfHyperLoopLabels$Alignment('LEFT', 1); + RIGHT_1 = new SelfHyperLoopLabels$Alignment('RIGHT', 2); + TOP_0 = new SelfHyperLoopLabels$Alignment('TOP', 3); +} + +function SelfHyperLoopLabels$Alignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_34(name_0){ + $clinit_SelfHyperLoopLabels$Alignment(); + return valueOf(($clinit_SelfHyperLoopLabels$Alignment$Map() , $MAP_22), name_0); +} + +function values_40(){ + $clinit_SelfHyperLoopLabels$Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]); +} + +defineClass(411, 22, {3:1, 35:1, 22:1, 411:1}, SelfHyperLoopLabels$Alignment); +var CENTER_2, LEFT_1, RIGHT_1, TOP_0; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels/Alignment', 411, Ljava_lang_Enum_2_classLit, values_40, valueOf_34); +function $clinit_SelfHyperLoopLabels$Alignment$Map(){ + $clinit_SelfHyperLoopLabels$Alignment$Map = emptyMethod; + $MAP_22 = createValueOfMap(($clinit_SelfHyperLoopLabels$Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]))); +} + +var $MAP_22; +function SelfLoopEdge(lEdge, slSource, slTarget){ + this.lEdge = lEdge; + this.slSource = slSource; + this.slTarget = slTarget; + $add_3(slSource.outgoingSLEdges, this); + $add_3(slTarget.incomingSLEdges, this); +} + +defineClass(409, 1, {409:1}, SelfLoopEdge); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopEdge', 409); +function $initialize_3(this$static){ + var entry, lEdge, lEdge$iterator, outerIter, outerIter0, slEdges, slPort, slPort$iterator, slPort$iterator0; + slEdges = new ArrayList; + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(this$static.lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + $isSelfLoop(lEdge) && $add_3(slEdges, new SelfLoopEdge(lEdge, $selfLoopPortFor(this$static, lEdge.source), $selfLoopPortFor(this$static, lEdge.target))); + } + for (slPort$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); slPort$iterator0.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); + slPort.lPort.id_0 = 0; + } + for (slPort$iterator = (outerIter = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { + slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); + slPort.lPort.id_0 == 0 && $add_3(this$static.slHyperLoops, $initializeHyperLoop(this$static, slPort)); + } +} + +function $initializeHyperLoop(this$static, slPort){ + var bfsQueue, currentSLPort, slEdge, slEdge$iterator, slEdge$iterator0, slLoop, slSourcePort, slTargetPort; + slLoop = new SelfHyperLoop(this$static); + bfsQueue = new LinkedList; + $addNode_0(bfsQueue, slPort, bfsQueue.tail.prev, bfsQueue.tail); + while (bfsQueue.size_0 != 0) { + currentSLPort = castTo(bfsQueue.size_0 == 0?null:(checkCriticalElement(bfsQueue.size_0 != 0) , $removeNode_0(bfsQueue, bfsQueue.header.next_0)), 113); + currentSLPort.lPort.id_0 = 1; + for (slEdge$iterator0 = new ArrayList$1(currentSLPort.outgoingSLEdges); slEdge$iterator0.i < slEdge$iterator0.this$01.array.length;) { + slEdge = castTo($next_7(slEdge$iterator0), 409); + $addSelfLoopEdge(slLoop, slEdge); + slTargetPort = slEdge.slTarget; + slTargetPort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slTargetPort, bfsQueue.tail.prev, bfsQueue.tail) , true); + } + for (slEdge$iterator = new ArrayList$1(currentSLPort.incomingSLEdges); slEdge$iterator.i < slEdge$iterator.this$01.array.length;) { + slEdge = castTo($next_7(slEdge$iterator), 409); + $addSelfLoopEdge(slLoop, slEdge); + slSourcePort = slEdge.slSource; + slSourcePort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slSourcePort, bfsQueue.tail.prev, bfsQueue.tail) , true); + } + } + return slLoop; +} + +function $selfLoopPortFor(this$static, lport){ + $containsKey_6(this$static.slPorts, lport) || $put_11(this$static.slPorts, lport, new SelfLoopPort(lport)); + return castTo($get_16(this$static.slPorts, lport), 113); +} + +function SelfLoopHolder(node){ + this.slHyperLoops = new ArrayList; + this.slPorts = new LinkedHashMap; + this.routingSlotCount = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.lNode = node; +} + +function needsSelfLoopProcessing(lNode){ + if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + return false; + } + return $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)))), new SelfLoopHolder$lambda$0$Type); +} + +defineClass(403, 1, {403:1}, SelfLoopHolder); +_.arePortsHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder', 403); +function SelfLoopHolder$lambda$0$Type(){ +} + +defineClass(1724, 1, $intern_39, SelfLoopHolder$lambda$0$Type); +_.test_0 = function test_69(arg0){ + return $isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder/lambda$0$Type', 1724); +function $getSLNetFlow(this$static){ + return this$static.incomingSLEdges.array.length - this$static.outgoingSLEdges.array.length; +} + +function SelfLoopPort(lPort){ + this.incomingSLEdges = new ArrayList; + this.outgoingSLEdges = new ArrayList; + this.lPort = lPort; + this.hadOnlySelfLoops = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new LPort$CombineIter$1(lPort.connectedEdges))), new Predicate$lambda$2$Type(new SelfLoopPort$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); +} + +defineClass(113, 1, {113:1}, SelfLoopPort); +_.hadOnlySelfLoops = false; +_.isHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort', 113); +function SelfLoopPort$lambda$0$Type(){ +} + +defineClass(1792, 1, $intern_39, SelfLoopPort$lambda$0$Type); +_.test_0 = function test_70(arg0){ + return $isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort/lambda$0$Type', 1792); +function $clinit_SelfLoopType(){ + $clinit_SelfLoopType = emptyMethod; + ONE_SIDE = new SelfLoopType('ONE_SIDE', 0); + TWO_SIDES_CORNER = new SelfLoopType('TWO_SIDES_CORNER', 1); + TWO_SIDES_OPPOSING = new SelfLoopType('TWO_SIDES_OPPOSING', 2); + THREE_SIDES = new SelfLoopType('THREE_SIDES', 3); + FOUR_SIDES = new SelfLoopType('FOUR_SIDES', 4); +} + +function SelfLoopType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function fromPortSides(portSides){ + $clinit_SelfLoopType(); + var eastWest, northSouth; + if (portSides.contains(($clinit_PortSide() , UNDEFINED_5))) { + throw toJs(new IllegalArgumentException_0('Port sides must not contain UNDEFINED')); + } + switch (portSides.size_1()) { + case 1: + return ONE_SIDE; + case 2: + eastWest = portSides.contains(EAST_2) && portSides.contains(WEST_2); + northSouth = portSides.contains(NORTH_3) && portSides.contains(SOUTH_2); + return eastWest || northSouth?TWO_SIDES_OPPOSING:TWO_SIDES_CORNER; + case 3: + return THREE_SIDES; + case 4: + return FOUR_SIDES; + default:return null; + } +} + +function valueOf_35(name_0){ + $clinit_SelfLoopType(); + return valueOf(($clinit_SelfLoopType$Map() , $MAP_23), name_0); +} + +function values_41(){ + $clinit_SelfLoopType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]); +} + +defineClass(363, 22, {3:1, 35:1, 22:1, 363:1}, SelfLoopType); +var FOUR_SIDES, ONE_SIDE, THREE_SIDES, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopType', 363, Ljava_lang_Enum_2_classLit, values_41, valueOf_35); +function $clinit_SelfLoopType$Map(){ + $clinit_SelfLoopType$Map = emptyMethod; + $MAP_23 = createValueOfMap(($clinit_SelfLoopType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]))); +} + +var $MAP_23; +function $clinit_PortRestorer(){ + $clinit_PortRestorer = emptyMethod; + NES = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [($clinit_PortSide() , NORTH_3), EAST_2, SOUTH_2]); + ESW = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]); + SWN = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2, NORTH_3]); + WNE = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2, NORTH_3, EAST_2]); +} + +function $addAll_5(slPorts, lNode){ + $forEach_3($map_0(slPorts.stream(), new PortRestorer$lambda$11$Type), new PortRestorer$lambda$12$Type(lNode)); +} + +function $addAllThat(lPorts, fromIndex, condition, target){ + var i, lPort; + for (i = fromIndex; i < lPorts.array.length; i++) { + lPort = (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)); + if (condition.test_0(lPort)) { + target.array[target.array.length] = lPort; + } + else { + return i; + } + } + return lPorts.array.length; +} + +function $addToTargetArea(this$static, slPorts, portSide, area, addMode){ + var hiddenPorts, targetArea; + hiddenPorts = castTo($collect_1($filter(slPorts.stream(), new PortRestorer$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + targetArea = castTo($get_1(this$static.targetAreas, portSide, area), 15); + addMode == 0?targetArea.addAll_0(0, hiddenPorts):targetArea.addAll(hiddenPorts); +} + +function $addToTargetArea_0(this$static, slLoop, portSide, area, addMode){ + $addToTargetArea(this$static, castTo($get(slLoop.slPortsBySide, portSide), 15), portSide, area, addMode); +} + +function $computePortListSplitIndex(sortedPorts){ + var nonNegativeNetFlowIndex, positiveNetFlowIndex; + positiveNetFlowIndex = 0; + for (; positiveNetFlowIndex < sortedPorts.array.length; positiveNetFlowIndex++) { + if ($getSLNetFlow((checkCriticalElementIndex(positiveNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[positiveNetFlowIndex], 113))) > 0) { + break; + } + } + if (positiveNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { + return positiveNetFlowIndex; + } + nonNegativeNetFlowIndex = 0; + for (; nonNegativeNetFlowIndex < sortedPorts.array.length; nonNegativeNetFlowIndex++) { + if ($getSLNetFlow((checkCriticalElementIndex(nonNegativeNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[nonNegativeNetFlowIndex], 113))) > 0) { + break; + } + } + if (nonNegativeNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { + return nonNegativeNetFlowIndex; + } + return sortedPorts.array.length / 2 | 0; +} + +function $initTargetAreas(this$static){ + var area, area$array, area$index, area$max, side, side$array, side$index, side$max; + this$static.targetAreas = new ArrayTable(new Arrays$ArrayList(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))), new Arrays$ArrayList(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0])))); + for (side$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { + side = side$array[side$index]; + for (area$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { + area = area$array[area$index]; + $put_0(this$static.targetAreas, side, area, new ArrayList); + } + } +} + +function $lambda$5(lPort_0){ + var connections, eastConnections, westConnections; + return lPort_0.side == ($clinit_PortSide() , NORTH_3) && (connections = $northSouthPortConnectionSides(lPort_0) , eastConnections = $containsEnum(connections, EAST_2) , westConnections = $containsEnum(connections, WEST_2) , westConnections || westConnections && eastConnections); +} + +function $lambda$8(lPort_0){ + var connections; + return lPort_0.side == ($clinit_PortSide() , SOUTH_2) && (connections = $northSouthPortConnectionSides(lPort_0) , $containsEnum(connections, EAST_2)); +} + +function $northSouthPortConnectionSides(lPort){ + var all, connectionSides, dummyLPort, dummyLPort$iterator, portDummy; + connectionSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + portDummy = castTo($getProperty(lPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (portDummy) { + for (dummyLPort$iterator = new ArrayList$1(portDummy.ports); dummyLPort$iterator.i < dummyLPort$iterator.this$01.array.length;) { + dummyLPort = castTo($next_7(dummyLPort$iterator), 11); + maskUndefined($getProperty(dummyLPort, ORIGIN_0)) === maskUndefined(lPort) && $hasNext_6(new LPort$CombineIter$1(dummyLPort.connectedEdges)) && $add_5(connectionSides, dummyLPort.side); + } + } + return connectionSides; +} + +function $processFourSideLoops(this$static){ + var side, side$iterator, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , FOUR_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + for (side$iterator = $keySet(slLoop.slPortsBySide).iterator_0(); side$iterator.hasNext_0();) { + side = castTo(side$iterator.next_1(), 61); + $addToTargetArea_0(this$static, slLoop, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + } + } +} + +function $processOneSideLoops(this$static, ordering){ + var side, slLoop, slLoop$iterator, sortedPorts, splitIndex; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , ONE_SIDE)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; + sortedPorts = new ArrayList_1(slLoop.slPorts); + $sort(sortedPorts, new PortRestorer$lambda$3$Type); + switch (ordering.ordinal) { + case 1: + $addToTargetArea(this$static, sortedPorts, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + break; + case 0: + splitIndex = $computePortListSplitIndex(sortedPorts); + $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, 0, splitIndex), side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 0); + $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, splitIndex, sortedPorts.array.length), side, MIDDLE, 1); + } + } +} + +function $processThreeSideLoops(this$static){ + var portSides, sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , THREE_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + sides = (portSides = $keySet(slLoop.slPortsBySide) , portSides.contains(($clinit_PortSide() , NORTH_3))?portSides.contains(EAST_2)?portSides.contains(SOUTH_2)?portSides.contains(WEST_2)?null:NES:WNE:SWN:ESW); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], MIDDLE, 1); + $addToTargetArea_0(this$static, slLoop, sides[2], START, 1); + } +} + +function $processTwoSideCornerLoops(this$static){ + var sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_CORNER)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + sides = sortedTwoSideLoopPortSides(slLoop); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); + } +} + +function $processTwoSideOpposingLoops(this$static){ + var sides, slLoop, slLoop$iterator; + for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_OPPOSING)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + sides = sortedTwoSideLoopPortSides(slLoop); + $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); + $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); + } +} + +function $restorePorts(this$static, slHolder){ + var lNode, newPortList, nextOldPortIndex, oldPortList; + lNode = slHolder.lNode; + oldPortList = new ArrayList_1(lNode.ports); + nextOldPortIndex = 0; + newPortList = lNode.ports; + newPortList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_5(castTo($get_1(this$static.targetAreas, ($clinit_PortSide() , NORTH_3), ($clinit_PortRestorer$PortSideArea() , START)), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$5$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$6$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, START), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$7$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, START), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$8$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, MIDDLE), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$9$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, END_0), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, START), 15), lNode); + nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$10$Type, newPortList); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, MIDDLE), 15), lNode); + $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, END_0), 15), lNode); +} + +function $restorePorts_0(this$static, slHolder){ + var loops; + $initTargetAreas(this$static); + this$static.slLoopsByType = (loops = new ArrayListMultimap , $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortRestorer$lambda$2$Type(loops)) , loops); + $processOneSideLoops(this$static, castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376)); + $processTwoSideCornerLoops(this$static); + $processThreeSideLoops(this$static); + $processFourSideLoops(this$static); + $processTwoSideOpposingLoops(this$static); + $restorePorts(this$static, slHolder); + $forEach_3($flatMap(new StreamImpl(null, $valuesSpliterator($values_1(this$static.targetAreas).this$01)), new PortRestorer$lambda$0$Type), new PortRestorer$lambda$1$Type); + slHolder.arePortsHidden = false; + this$static.slLoopsByType = null; +} + +function PortRestorer(){ + $clinit_PortRestorer(); +} + +function lambda$12(lNode_0, lPort_1){ + $clinit_PortRestorer(); + $setNode(lPort_1, lNode_0); +} + +function lambda$2_8(loops_0, slLoop_1){ + $clinit_PortRestorer(); + return $put(loops_0, slLoop_1.selfLoopType, slLoop_1); +} + +function lambda$3_5(slPort1_0, slPort2_1){ + $clinit_PortRestorer(); + return compare_5(slPort1_0.incomingSLEdges.array.length - slPort1_0.outgoingSLEdges.array.length, slPort2_1.incomingSLEdges.array.length - slPort2_1.outgoingSLEdges.array.length); +} + +function sortedTwoSideLoopPortSides(slLoop){ + $clinit_PortRestorer(); + var sides; + sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); + mergeSort(sides, 0, sides.length, null); + if (sides[0] == ($clinit_PortSide() , NORTH_3) && sides[1] == WEST_2) { + setCheck(sides, 0, WEST_2); + setCheck(sides, 1, NORTH_3); + } + return sides; +} + +defineClass(1732, 1, {}, PortRestorer); +var ESW, NES, SWN, WNE; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer', 1732); +function $clinit_PortRestorer$PortSideArea(){ + $clinit_PortRestorer$PortSideArea = emptyMethod; + START = new PortRestorer$PortSideArea('START', 0); + MIDDLE = new PortRestorer$PortSideArea('MIDDLE', 1); + END_0 = new PortRestorer$PortSideArea('END', 2); +} + +function PortRestorer$PortSideArea(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_36(name_0){ + $clinit_PortRestorer$PortSideArea(); + return valueOf(($clinit_PortRestorer$PortSideArea$Map() , $MAP_24), name_0); +} + +function values_42(){ + $clinit_PortRestorer$PortSideArea(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]); +} + +defineClass(361, 22, {3:1, 35:1, 22:1, 361:1}, PortRestorer$PortSideArea); +var END_0, MIDDLE, START; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/PortSideArea', 361, Ljava_lang_Enum_2_classLit, values_42, valueOf_36); +function $clinit_PortRestorer$PortSideArea$Map(){ + $clinit_PortRestorer$PortSideArea$Map = emptyMethod; + $MAP_24 = createValueOfMap(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]))); +} + +var $MAP_24; +function PortRestorer$lambda$0$Type(){ +} + +defineClass(1733, 1, {}, PortRestorer$lambda$0$Type); +_.apply_0 = function apply_122(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 15).stream(); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$0$Type', 1733); +function PortRestorer$lambda$1$Type(){ +} + +defineClass(1734, 1, $intern_19, PortRestorer$lambda$1$Type); +_.accept = function accept_106(arg0){ + $clinit_PortRestorer(); + castTo(arg0, 113).isHidden = false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$1$Type', 1734); +function PortRestorer$lambda$10$Type(){ +} + +defineClass(1743, 1, $intern_39, PortRestorer$lambda$10$Type); +_.test_0 = function test_71(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$10$Type', 1743); +function PortRestorer$lambda$11$Type(){ +} + +defineClass(1744, 1, {}, PortRestorer$lambda$11$Type); +_.apply_0 = function apply_123(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$11$Type', 1744); +function PortRestorer$lambda$12$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1745, 1, $intern_19, PortRestorer$lambda$12$Type); +_.accept = function accept_107(arg0){ + lambda$12(this.lNode_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$12$Type', 1745); +function PortRestorer$lambda$2$Type(loops_0){ + this.loops_0 = loops_0; +} + +defineClass(1735, 1, $intern_19, PortRestorer$lambda$2$Type); +_.accept = function accept_108(arg0){ + lambda$2_8(this.loops_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$2$Type', 1735); +function PortRestorer$lambda$3$Type(){ +} + +defineClass(1736, 1, $intern_88, PortRestorer$lambda$3$Type); +_.compare_1 = function compare_52(arg0, arg1){ + return lambda$3_5(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_133(other){ + return this === other; +} +; +_.reversed = function reversed_44(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$3$Type', 1736); +function PortRestorer$lambda$4$Type(){ +} + +defineClass(1737, 1, $intern_39, PortRestorer$lambda$4$Type); +_.test_0 = function test_72(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 113).isHidden; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$4$Type', 1737); +function PortRestorer$lambda$5$Type(){ +} + +defineClass(1738, 1, $intern_39, PortRestorer$lambda$5$Type); +_.test_0 = function test_73(arg0){ + return $lambda$5(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$5$Type', 1738); +function PortRestorer$lambda$6$Type(){ +} + +defineClass(1739, 1, $intern_39, PortRestorer$lambda$6$Type); +_.test_0 = function test_74(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$6$Type', 1739); +function PortRestorer$lambda$7$Type(){ +} + +defineClass(1740, 1, $intern_39, PortRestorer$lambda$7$Type); +_.test_0 = function test_75(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$7$Type', 1740); +function PortRestorer$lambda$8$Type(){ +} + +defineClass(1741, 1, $intern_39, PortRestorer$lambda$8$Type); +_.test_0 = function test_76(arg0){ + return $lambda$8(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$8$Type', 1741); +function PortRestorer$lambda$9$Type(){ +} + +defineClass(1742, 1, $intern_39, PortRestorer$lambda$9$Type); +_.test_0 = function test_77(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$9$Type', 1742); +function $assignPortSides(slHolder){ + switch (castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)), 375).ordinal) { + case 1: + $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortSideAssigner$lambda$1$Type), new PortSideAssigner$lambda$2$Type), new PortSideAssigner$lambda$3$Type); + break; + case 2: + $assignToNorthOrSouthSide(slHolder); + break; + case 0: + $assignToAllSides(slHolder); + } +} + +function $assignToAllSides(slHolder){ + var assignmentTargets, currLoop, currTarget, slLoop, slLoop$iterator, slSortedLoops; + slSortedLoops = new ArrayList_1(slHolder.slHyperLoops); + $sort(slSortedLoops, new PortSideAssigner$lambda$6$Type); + assignmentTargets = ($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER])); + currLoop = 0; + for (slLoop$iterator = new ArrayList$1(slSortedLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + currTarget = assignmentTargets[currLoop % assignmentTargets.length]; + $assignToTarget(slLoop, currTarget); + ++currLoop; + } +} + +function $assignToNorthOrSouthSide(slHolder){ + var finalNewPortSide, newPortSide, northPorts, slHiddenPorts, slLoop, slLoop$iterator, southPorts; + northPorts = 0; + southPorts = 0; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slHiddenPorts = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slLoop.slPorts, 16)), new PortSideAssigner$lambda$8$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + newPortSide = null; + if (northPorts <= southPorts) { + newPortSide = ($clinit_PortSide() , NORTH_3); + northPorts += slHiddenPorts.size_1(); + } + else if (southPorts < northPorts) { + newPortSide = ($clinit_PortSide() , SOUTH_2); + southPorts += slHiddenPorts.size_1(); + } + finalNewPortSide = newPortSide; + $forEach_3($map_0(slHiddenPorts.stream(), new PortSideAssigner$lambda$4$Type), new PortSideAssigner$lambda$5$Type(finalNewPortSide)); + } +} + +function $assignToTarget(slLoop, target){ + var i, i0, secondHalfStartIndex, slPort, slPorts; + slPorts = slLoop.slPorts; + target.firstSide != target.secondSide && $sort(slPorts, new PortSideAssigner$lambda$7$Type); + secondHalfStartIndex = slPorts.array.length / 2 | 0; + for (i0 = 0; i0 < secondHalfStartIndex; i0++) { + slPort = (checkCriticalElementIndex(i0, slPorts.array.length) , castTo(slPorts.array[i0], 113)); + slPort.isHidden && $setSide(slPort.lPort, target.firstSide); + } + for (i = secondHalfStartIndex; i < slPorts.array.length; i++) { + slPort = (checkCriticalElementIndex(i, slPorts.array.length) , castTo(slPorts.array[i], 113)); + slPort.isHidden && $setSide(slPort.lPort, target.secondSide); + } +} + +function lambda$5_2(finalNewPortSide_0, lPort_1){ + $setSide(lPort_1, finalNewPortSide_0); +} + +function lambda$6_0(slLoop1_0, slLoop2_1){ + return compare_5(slLoop2_1.slPorts.array.length, slLoop1_0.slPorts.array.length); +} + +function lambda$7_2(slPort1_0, slPort2_1){ + return compare_5($getNetFlow(slPort1_0.lPort), $getNetFlow(slPort2_1.lPort)); +} + +function $clinit_PortSideAssigner$Target(){ + $clinit_PortSideAssigner$Target = emptyMethod; + NORTH_1 = new PortSideAssigner$Target('NORTH', 0, ($clinit_PortSide() , NORTH_3), NORTH_3); + SOUTH_1 = new PortSideAssigner$Target('SOUTH', 1, SOUTH_2, SOUTH_2); + EAST_1 = new PortSideAssigner$Target('EAST', 2, EAST_2, EAST_2); + WEST_1 = new PortSideAssigner$Target('WEST', 3, WEST_2, WEST_2); + NORTH_WEST_CORNER = new PortSideAssigner$Target('NORTH_WEST_CORNER', 4, WEST_2, NORTH_3); + NORTH_EAST_CORNER = new PortSideAssigner$Target('NORTH_EAST_CORNER', 5, NORTH_3, EAST_2); + SOUTH_WEST_CORNER = new PortSideAssigner$Target('SOUTH_WEST_CORNER', 6, SOUTH_2, WEST_2); + SOUTH_EAST_CORNER = new PortSideAssigner$Target('SOUTH_EAST_CORNER', 7, EAST_2, SOUTH_2); +} + +function PortSideAssigner$Target(enum$name, enum$ordinal, firstSide, secondSide){ + Enum.call(this, enum$name, enum$ordinal); + this.firstSide = firstSide; + this.secondSide = secondSide; +} + +function valueOf_37(name_0){ + $clinit_PortSideAssigner$Target(); + return valueOf(($clinit_PortSideAssigner$Target$Map() , $MAP_25), name_0); +} + +function values_43(){ + $clinit_PortSideAssigner$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]); +} + +defineClass(270, 22, {3:1, 35:1, 22:1, 270:1}, PortSideAssigner$Target); +var EAST_1, NORTH_1, NORTH_EAST_CORNER, NORTH_WEST_CORNER, SOUTH_1, SOUTH_EAST_CORNER, SOUTH_WEST_CORNER, WEST_1; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/Target', 270, Ljava_lang_Enum_2_classLit, values_43, valueOf_37); +function $clinit_PortSideAssigner$Target$Map(){ + $clinit_PortSideAssigner$Target$Map = emptyMethod; + $MAP_25 = createValueOfMap(($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]))); +} + +var $MAP_25; +function PortSideAssigner$lambda$1$Type(){ +} + +defineClass(1725, 1, {}, PortSideAssigner$lambda$1$Type); +_.apply_0 = function apply_124(arg0){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slPorts, 16)), new PortSideAssigner$lambda$8$Type); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$1$Type', 1725); +function PortSideAssigner$lambda$2$Type(){ +} + +defineClass(1726, 1, {}, PortSideAssigner$lambda$2$Type); +_.apply_0 = function apply_125(arg0){ + return castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$2$Type', 1726); +function PortSideAssigner$lambda$3$Type(){ +} + +defineClass(1727, 1, $intern_19, PortSideAssigner$lambda$3$Type); +_.accept = function accept_109(arg0){ + $setSide(castTo(arg0, 11), ($clinit_PortSide() , NORTH_3)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$3$Type', 1727); +function PortSideAssigner$lambda$4$Type(){ +} + +defineClass(1728, 1, {}, PortSideAssigner$lambda$4$Type); +_.apply_0 = function apply_126(arg0){ + return castTo(arg0, 113).lPort; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$4$Type', 1728); +function PortSideAssigner$lambda$5$Type(finalNewPortSide_0){ + this.finalNewPortSide_0 = finalNewPortSide_0; +} + +defineClass(1729, 1, $intern_19, PortSideAssigner$lambda$5$Type); +_.accept = function accept_110(arg0){ + lambda$5_2(this.finalNewPortSide_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$5$Type', 1729); +function PortSideAssigner$lambda$6$Type(){ +} + +defineClass(1730, 1, $intern_88, PortSideAssigner$lambda$6$Type); +_.compare_1 = function compare_53(arg0, arg1){ + return lambda$6_0(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_134(other){ + return this === other; +} +; +_.reversed = function reversed_45(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$6$Type', 1730); +function PortSideAssigner$lambda$7$Type(){ +} + +defineClass(1731, 1, $intern_88, PortSideAssigner$lambda$7$Type); +_.compare_1 = function compare_54(arg0, arg1){ + return lambda$7_2(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_135(other){ + return this === other; +} +; +_.reversed = function reversed_46(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$7$Type', 1731); +function PortSideAssigner$lambda$8$Type(){ +} + +defineClass(805, 1, $intern_39, PortSideAssigner$lambda$8$Type); +_.test_0 = function test_78(arg0){ + return castTo(arg0, 113).isHidden; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$8$Type', 805); +defineClass(2009, 1, {}); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_AbstractSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'AbstractSelfLoopRouter', 2009); +function $assignOneSidedSequencedSideAndAlignment(slLoops, portSide){ + var id_0, lPort, lPort$iterator, leftLoopAlignmentReference, leftSlLoop, leftSlLoopIdx, rightLoopAlignmentReference, rightSlLoop, rightSlLoopIdx; + id_0 = 0; + for (lPort$iterator = new ArrayList$1((checkCriticalElementIndex(0, slLoops.array.length) , castTo(slLoops.array[0], 101)).slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_7(lPort$iterator), 11); + lPort.id_0 = id_0++; + } + portSide == ($clinit_PortSide() , NORTH_3)?$sort(slLoops, new LabelPlacer$lambda$0$Type_0):$sort(slLoops, new LabelPlacer$lambda$1$Type_0); + leftSlLoopIdx = 0; + rightSlLoopIdx = slLoops.array.length - 1; + while (leftSlLoopIdx < rightSlLoopIdx) { + leftSlLoop = (checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)); + rightSlLoop = (checkCriticalElementIndex(rightSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[rightSlLoopIdx], 101)); + leftLoopAlignmentReference = portSide == NORTH_3?leftSlLoop.rightmostPort:leftSlLoop.leftmostPort; + rightLoopAlignmentReference = portSide == NORTH_3?rightSlLoop.leftmostPort:rightSlLoop.rightmostPort; + $assignSideAndAlignment(leftSlLoop, portSide, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), leftLoopAlignmentReference); + $assignSideAndAlignment(rightSlLoop, portSide, LEFT_1, rightLoopAlignmentReference); + ++leftSlLoopIdx; + --rightSlLoopIdx; + } + leftSlLoopIdx == rightSlLoopIdx && $assignSideAndAlignment((checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)), portSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); +} + +function $assignOneSidedSimpleSideAndAlignment(slLoop, loopSide){ + var topmostPort; + switch (loopSide.ordinal) { + case 2: + case 4: + topmostPort = slLoop.leftmostPort; + slLoop.rightmostPort.lPort.pos.y_0 < topmostPort.lPort.pos.y_0 && (topmostPort = slLoop.rightmostPort); + $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , TOP_0), topmostPort); + break; + case 1: + case 3: + $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + } +} + +function $assignSideAndAlignment(slLoop, side, alignment, alignmentReference){ + var slLabels; + slLabels = slLoop.slLabels; + slLabels.side = side; + slLabels.alignment = alignment; + slLabels.alignmentReferenceSLPort = alignmentReference; +} + +function $assignSideAndAlignment_0(slHolder){ + var loopSide, northernOneSidedSLLoops, occupiedSides, orderingStrategy, slLabels, slLoop, slLoop$iterator, southernOneSidedSLLoops, leftmostPortSide, rightmostPortSide, leftmostPortSide_0, rightmostPortSide_0; + northernOneSidedSLLoops = null; + southernOneSidedSLLoops = null; + orderingStrategy = castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376); + if (orderingStrategy == ($clinit_SelfLoopOrderingStrategy() , SEQUENCED)) { + northernOneSidedSLLoops = new ArrayList; + southernOneSidedSLLoops = new ArrayList; + } + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slLabels = slLoop.slLabels; + if (!slLabels) { + continue; + } + switch (slLoop.selfLoopType.ordinal) { + case 0: + loopSide = castTo($next_8(new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides)), 61); + orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , NORTH_3)?(northernOneSidedSLLoops.array[northernOneSidedSLLoops.array.length] = slLoop , true):orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , SOUTH_2)?(southernOneSidedSLLoops.array[southernOneSidedSLLoops.array.length] = slLoop , true):$assignOneSidedSimpleSideAndAlignment(slLoop, loopSide); + break; + case 1: + leftmostPortSide = slLoop.leftmostPort.lPort.side; + rightmostPortSide = slLoop.rightmostPort.lPort.side; + leftmostPortSide == ($clinit_PortSide() , NORTH_3)?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):rightmostPortSide == NORTH_3?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):leftmostPortSide == SOUTH_2?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.leftmostPort):rightmostPortSide == SOUTH_2 && $assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.rightmostPort); + break; + case 2: + case 3: + occupiedSides = slLoop.occupiedPortSides; + $containsEnum(occupiedSides, ($clinit_PortSide() , NORTH_3))?$containsEnum(occupiedSides, SOUTH_2)?$containsEnum(occupiedSides, WEST_2)?$containsEnum(occupiedSides, EAST_2) || $assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + break; + case 4: + leftmostPortSide_0 = slLoop.leftmostPort.lPort.side; + rightmostPortSide_0 = slLoop.leftmostPort.lPort.side; + leftmostPortSide_0 == ($clinit_PortSide() , NORTH_3) || rightmostPortSide_0 == NORTH_3?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); + } + } + if (northernOneSidedSLLoops) { + northernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(northernOneSidedSLLoops, ($clinit_PortSide() , NORTH_3)); + southernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(southernOneSidedSLLoops, ($clinit_PortSide() , SOUTH_2)); + } +} + +function $computeCoordinates(slLoop){ + var alignRef, pos, size_0, slLabels; + slLabels = slLoop.slLabels; + alignRef = slLabels.alignmentReferenceSLPort; + size_0 = slLabels.size_0; + pos = slLabels.position; + switch (slLabels.alignment.ordinal) { + case 0: + pos.x_0 = (slLoop.slHolder.lNode.size_0.x_0 - size_0.x_0) / 2; + break; + case 1: + pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0; + break; + case 2: + pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0 - size_0.x_0; + break; + case 3: + pos.y_0 = alignRef.lPort.pos.y_0 + alignRef.lPort.anchor.y_0; + } +} + +function $placeLabels_1(slHolder){ + var slLoop, slLoop$iterator; + $assignSideAndAlignment_0(slHolder); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + !!slLoop.slLabels && $computeCoordinates(slLoop); + } +} + +function lambda$0_25(slLoop1_0, slLoop2_1){ + return compare_5(slLoop1_0.leftmostPort.lPort.id_0, slLoop2_1.leftmostPort.lPort.id_0); +} + +function lambda$1_14(slLoop1_0, slLoop2_1){ + return compare_5(slLoop2_1.leftmostPort.lPort.id_0, slLoop1_0.leftmostPort.lPort.id_0); +} + +function LabelPlacer$lambda$0$Type_0(){ +} + +defineClass(1750, 1, $intern_88, LabelPlacer$lambda$0$Type_0); +_.compare_1 = function compare_55(arg0, arg1){ + return lambda$0_25(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_136(other){ + return this === other; +} +; +_.reversed = function reversed_47(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$0$Type', 1750); +function LabelPlacer$lambda$1$Type_0(){ +} + +defineClass(1751, 1, $intern_88, LabelPlacer$lambda$1$Type_0); +_.compare_1 = function compare_56(arg0, arg1){ + return lambda$1_14(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_137(other){ + return this === other; +} +; +_.reversed = function reversed_48(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$1$Type', 1751); +function $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints){ + var currPortSide, currPortSideComponent, lSourcePort, lTargetPort, nextPortSide, nextPortSideComponent, slLoop; + lSourcePort = slEdge.slSource.lPort; + lTargetPort = slEdge.slTarget.lPort; + if (lSourcePort.side == lTargetPort.side) { + return; + } + slLoop = slEdge.slHyperLoop; + currPortSide = lSourcePort.side; + nextPortSide = null; + while (currPortSide != lTargetPort.side) { + nextPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); + currPortSideComponent = $getBaseVector(currPortSide, slLoop.routingSlot[currPortSide.ordinal], routingSlotPositions); + nextPortSideComponent = $getBaseVector(nextPortSide, slLoop.routingSlot[nextPortSide.ordinal], routingSlotPositions); + $add_7(bendPoints, $add_19(currPortSideComponent, nextPortSideComponent)); + currPortSide = nextPortSide; + } +} + +function $addOuterBendPoint(slEdge, slPort, routingSlotPositions, bendPoints){ + var anchor, lPort, portSide, result, slLoop; + slLoop = slEdge.slHyperLoop; + lPort = slPort.lPort; + portSide = lPort.side; + result = $getBaseVector(portSide, slLoop.routingSlot[portSide.ordinal], routingSlotPositions); + anchor = $add_19($clone_0(lPort.pos), lPort.anchor); + switch (lPort.side.ordinal) { + case 1: + case 3: + result.x_0 += anchor.x_0; + break; + case 2: + case 4: + result.y_0 += anchor.y_0; + } + $addNode_0(bendPoints, result, bendPoints.tail.prev, bendPoints.tail); +} + +function $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance){ + var lMargins, lNode; + lNode = slHolder.lNode; + lMargins = lNode.margin; + switch (portSide.ordinal) { + case 1: + return -lMargins.top_0 - nodeSelfLoopDistance; + case 2: + return lNode.size_0.x_0 + lMargins.right + nodeSelfLoopDistance; + case 3: + return lNode.size_0.y_0 + lMargins.bottom + nodeSelfLoopDistance; + case 4: + return -lMargins.left - nodeSelfLoopDistance; + default:return -1; + } +} + +function $computeEdgeRoutingDirection(slEdge){ + var slLoop, sourceLPort, sourcePortSide, targetLPort, targetPortSide; + sourceLPort = slEdge.slSource.lPort; + sourcePortSide = sourceLPort.side; + targetLPort = slEdge.slTarget.lPort; + targetPortSide = targetLPort.side; + if (sourcePortSide == targetPortSide) { + return sourceLPort.id_0 < targetLPort.id_0?0:1; + } + else if ($right(sourcePortSide) == targetPortSide) { + return 0; + } + else if ($left(sourcePortSide) == targetPortSide) { + return 1; + } + else { + slLoop = slEdge.slHyperLoop; + return $containsEnum(slLoop.occupiedPortSides, $right(sourcePortSide))?0:1; + } +} + +function $computePositions(positions, slHolder, portSide, edgeEdgeDistance, edgeLabelDistance, nodeSelfLoopDistance){ + var currPos, factor, largestLabelSize, sidePositions, slot; + currPos = $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance); + factor = portSide == ($clinit_PortSide() , NORTH_3) || portSide == WEST_2?-1:1; + sidePositions = positions[portSide.ordinal]; + for (slot = 0; slot < sidePositions.length; slot++) { + largestLabelSize = sidePositions[slot]; + largestLabelSize > 0 && (largestLabelSize += edgeLabelDistance); + sidePositions[slot] = currPos; + currPos += factor * (largestLabelSize + edgeEdgeDistance); + } +} + +function $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance){ + var portSide, portSide$array, portSide$index, portSide$max, positions; + positions = initUnidimensionalArray(D_classLit, $intern_16, 104, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 0, 2); + for (portSide$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , portSide$index = 0 , portSide$max = portSide$array.length; portSide$index < portSide$max; ++portSide$index) { + portSide = portSide$array[portSide$index]; + positions[portSide.ordinal] = initUnidimensionalArray(D_classLit, $intern_65, 25, slHolder.routingSlotCount[portSide.ordinal], 15, 1); + } + $initializeWithMaxLabelHeight(positions, slHolder, NORTH_3); + $initializeWithMaxLabelHeight(positions, slHolder, SOUTH_2); + $computePositions(positions, slHolder, NORTH_3, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, EAST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, SOUTH_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + $computePositions(positions, slHolder, WEST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + return positions; +} + +function $getBaseVector(portSide, routingSlot, routingSlotPositions){ + var position; + position = routingSlotPositions[portSide.ordinal][routingSlot]; + switch (portSide.ordinal) { + case 1: + case 3: + return new KVector_1(0, position); + case 2: + case 4: + return new KVector_1(position, 0); + default:return null; + } +} + +function $initializeWithMaxLabelHeight(positions, slHolder, portSide){ + var routingSlot, sidePositions, slLabels, slLoop, slLoop$iterator; + sidePositions = positions[portSide.ordinal]; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slLabels = slLoop.slLabels; + if (!!slLabels && slLabels.side == portSide) { + routingSlot = slLoop.routingSlot[portSide.ordinal]; + sidePositions[routingSlot] = $wnd.Math.max(sidePositions[routingSlot], slLabels.size_0.y_0); + } + } +} + +function $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance){ + var labelPosition, labelSide; + labelSide = slLabels.side; + labelPosition = routingSlotPositions[labelSide.ordinal][slLoop.routingSlot[labelSide.ordinal]]; + switch (labelSide.ordinal) { + case 1: + labelPosition -= edgeLabelDistance + slLabels.size_0.y_0; + slLabels.position.y_0 = labelPosition; + break; + case 3: + labelPosition += edgeLabelDistance; + slLabels.position.y_0 = labelPosition; + break; + case 4: + labelPosition -= edgeLabelDistance + slLabels.size_0.x_0; + slLabels.position.x_0 = labelPosition; + break; + case 2: + labelPosition += edgeLabelDistance; + slLabels.position.x_0 = labelPosition; + } +} + +function $routeSelfLoops(this$static, slHolder){ + var bendPoints, edgeEdgeDistance, edgeLabelDistance, lEdge, lNode, newNodeMargins, nodeMargins, nodeSLDistance, nodeSize, routingDirection, routingSlotPositions, slEdge, slEdge$iterator, slLabels, slLoop, slLoop$iterator, bendPoints_0, pos; + lNode = slHolder.lNode; + nodeSize = lNode.size_0; + nodeMargins = lNode.margin; + edgeEdgeDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_EDGE_LABEL_0))); + nodeSLDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_NODE_SELF_LOOP))); + newNodeMargins = new LMargin; + $set_7(newNodeMargins, nodeMargins.top_0, nodeMargins.right, nodeMargins.bottom, nodeMargins.left); + routingSlotPositions = $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + for (slEdge$iterator = slLoop.slEdges.map_0.keySet_0().iterator_0(); slEdge$iterator.hasNext_0();) { + slEdge = castTo(slEdge$iterator.next_1(), 409); + lEdge = slEdge.lEdge; + routingDirection = $computeEdgeRoutingDirection(slEdge); + bendPoints = (bendPoints_0 = new KVectorChain , $addOuterBendPoint(slEdge, slEdge.slSource, routingSlotPositions, bendPoints_0) , $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints_0) , $addOuterBendPoint(slEdge, slEdge.slTarget, routingSlotPositions, bendPoints_0) , bendPoints_0); + bendPoints = this$static.modifyBendPoints(slEdge, routingDirection, bendPoints); + $reset_0(lEdge.bendPoints); + $addAll(lEdge.bendPoints, bendPoints); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(bendPoints, 16)), new OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize, newNodeMargins)); + } + slLabels = slLoop.slLabels; + if (slLabels) { + $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance); + pos = new KVector_2(slLabels.position); + $updateNewNodeMargins(nodeSize, newNodeMargins, pos); + $add_19(pos, slLabels.size_0); + $updateNewNodeMargins(nodeSize, newNodeMargins, pos); + } + } + $set_7(nodeMargins, newNodeMargins.top_0, newNodeMargins.right, newNodeMargins.bottom, newNodeMargins.left); +} + +function $updateNewNodeMargins(nodeSize, newNodeMargins, bendPoint){ + newNodeMargins.left = $wnd.Math.max(newNodeMargins.left, -bendPoint.x_0); + newNodeMargins.right = $wnd.Math.max(newNodeMargins.right, bendPoint.x_0 - nodeSize.x_0); + newNodeMargins.top_0 = $wnd.Math.max(newNodeMargins.top_0, -bendPoint.y_0); + newNodeMargins.bottom = $wnd.Math.max(newNodeMargins.bottom, bendPoint.y_0 - nodeSize.y_0); +} + +function OrthogonalSelfLoopRouter(){ +} + +defineClass(1793, 2009, {}, OrthogonalSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints(slEdge, routingDirection, bendPoints){ + return bendPoints; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter', 1793); +function OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize_1, newNodeMargins_2){ + this.nodeSize_1 = nodeSize_1; + this.newNodeMargins_2 = newNodeMargins_2; +} + +defineClass(1795, 1, $intern_19, OrthogonalSelfLoopRouter$lambda$0$Type); +_.accept = function accept_111(arg0){ + $updateNewNodeMargins(this.nodeSize_1, this.newNodeMargins_2, castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter/lambda$0$Type', 1795); +function $cutCorners(bendPoints){ + var bpIterator, corner, effectiveDistance, next, offset1, offset2, previous, result; + result = new KVectorChain; + bpIterator = $listIterator_2(bendPoints, 0); + previous = null; + corner = castTo($next_10(bpIterator), 8); + next = castTo($next_10(bpIterator), 8); + while (bpIterator.currentNode != bpIterator.this$01.tail) { + previous = corner; + corner = next; + next = castTo($next_10(bpIterator), 8); + offset1 = $nearZeroToZero($sub_0(new KVector_1(previous.x_0, previous.y_0), corner)); + offset2 = $nearZeroToZero($sub_0(new KVector_1(next.x_0, next.y_0), corner)); + effectiveDistance = 10; + effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset1.x_0 + offset1.y_0) / 2); + effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset2.x_0 + offset2.y_0) / 2); + offset1.x_0 = signum(offset1.x_0) * effectiveDistance; + offset1.y_0 = signum(offset1.y_0) * effectiveDistance; + offset2.x_0 = signum(offset2.x_0) * effectiveDistance; + offset2.y_0 = signum(offset2.y_0) * effectiveDistance; + $add_7(result, $add_19(offset1, corner)); + $add_7(result, $add_19(offset2, corner)); + } + return result; +} + +function $nearZeroToZero(vector){ + vector.x_0 >= -0.01 && vector.x_0 <= $intern_94 && (vector.x_0 = 0); + vector.y_0 >= -0.01 && vector.y_0 <= $intern_94 && (vector.y_0 = 0); + return vector; +} + +function PolylineSelfLoopRouter(){ +} + +defineClass(1794, 1793, {}, PolylineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_0(slEdge, routingDirection, bendPoints){ + var lSourcePort, lTargetPort; + lSourcePort = slEdge.slSource.lPort; + $add_0(bendPoints, 0, $add_19($clone_0(lSourcePort.pos), lSourcePort.anchor)); + lTargetPort = slEdge.slTarget.lPort; + $add_7(bendPoints, $add_19($clone_0(lTargetPort.pos), lTargetPort.anchor)); + return $cutCorners(bendPoints); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_PolylineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'PolylineSelfLoopRouter', 1794); +function $clinit_RoutingDirector(){ + $clinit_RoutingDirector = emptyMethod; + COMPARE_BY_ID = new RoutingDirector$lambda$0$Type; +} + +function $assignPortIds(lPorts){ + var i; + for (i = 0; i < lPorts.array.length; i++) { + (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)).id_0 = i; + } +} + +function $computeEdgePenalty(this$static, slHolder, leftmostPort, rightmostPort){ + var leftOfRightmostPortId, leftmostPortId, portCount, rightmostPortId; + this$static.portPenalties == null && $computePenalties(this$static, slHolder); + portCount = slHolder.lNode.ports.array.length; + leftmostPortId = leftmostPort.lPort.id_0; + rightmostPortId = rightmostPort.lPort.id_0; + leftOfRightmostPortId = rightmostPortId - 1; + leftOfRightmostPortId < 0 && (leftOfRightmostPortId = portCount - 1); + return leftmostPortId <= leftOfRightmostPortId?this$static.portPenalties[leftOfRightmostPortId] - this$static.portPenalties[leftmostPortId]:this$static.portPenalties[portCount - 1] - this$static.portPenalties[leftmostPortId] + this$static.portPenalties[leftOfRightmostPortId]; +} + +function $computeMissingPortSide(slLoop){ + var side, side$array, side$index, side$max, sides; + sides = $keySet(slLoop.slPortsBySide); + for (side$array = ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { + side = side$array[side$index]; + if (side != UNDEFINED_5 && !sides.contains(side)) { + return side; + } + } + return null; +} + +function $computeOccupiedPortSides(slLoop){ + var currPortSide, targetSide; + currPortSide = slLoop.leftmostPort.lPort.side; + targetSide = slLoop.rightmostPort.lPort.side; + while (currPortSide != targetSide) { + $add_5(slLoop.occupiedPortSides, currPortSide); + currPortSide = $right(currPortSide); + } + $add_5(slLoop.occupiedPortSides, currPortSide); +} + +function $computePenalties(this$static, slHolder){ + var currPort, i, penaltySum, ports; + ports = slHolder.lNode.ports; + this$static.portPenalties = initUnidimensionalArray(I_classLit, $intern_48, 25, ports.array.length, 15, 1); + penaltySum = 0; + for (i = 0; i < ports.array.length; i++) { + currPort = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); + currPort.incomingEdges.array.length == 0 && currPort.outgoingEdges.array.length == 0?(penaltySum += 1):(penaltySum += 3); + this$static.portPenalties[i] = penaltySum; + } +} + +function $determineFourSideLoopRoutes(this$static, slLoop){ + var currLeftPort, currPenalty, currRightPort, rightPortIndex, slHolder, sortedSLPorts, worstLeftPort, worstPenalty, worstRightPort; + sortedSLPorts = slLoop.slPorts; + slHolder = slLoop.slHolder; + worstLeftPort = castTo($get_11(sortedSLPorts, sortedSLPorts.array.length - 1), 113); + worstRightPort = (checkCriticalElementIndex(0, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[0], 113)); + worstPenalty = $computeEdgePenalty(this$static, slHolder, worstLeftPort, worstRightPort); + for (rightPortIndex = 1; rightPortIndex < sortedSLPorts.array.length; rightPortIndex++) { + currLeftPort = (checkCriticalElementIndex(rightPortIndex - 1, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex - 1], 113)); + currRightPort = (checkCriticalElementIndex(rightPortIndex, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex], 113)); + currPenalty = $computeEdgePenalty(this$static, slHolder, currLeftPort, currRightPort); + if (currPenalty > worstPenalty) { + worstLeftPort = currLeftPort; + worstRightPort = currRightPort; + worstPenalty = currPenalty; + } + } + slLoop.leftmostPort = worstRightPort; + slLoop.rightmostPort = worstLeftPort; +} + +function $determineLoopRoutes(this$static, slHolder){ + var side, sides, slLoop, slLoop$iterator; + $assignPortIds(slHolder.lNode.ports); + $forEach_3($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingDirector$lambda$1$Type), new RoutingDirector$lambda$2$Type); + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + switch (slLoop.selfLoopType.ordinal) { + case 0: + side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); + break; + case 1: + sides = sortedTwoSideLoopPortSides(slLoop); + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, sides[0]), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, sides[1]), 15).stream(), COMPARE_BY_ID)), 113)); + break; + case 2: + $determineTwoSideOpposingLoopRoutes(this$static, slLoop); + break; + case 3: + $determineThreeSideLoopRoutes(slLoop); + break; + case 4: + $determineFourSideLoopRoutes(this$static, slLoop); + } + $computeOccupiedPortSides(slLoop); + } + this$static.portPenalties = null; +} + +function $determineThreeSideLoopRoutes(slLoop){ + var leftmostSide, rightmostSide; + leftmostSide = null; + rightmostSide = null; + switch ($computeMissingPortSide(slLoop).ordinal) { + case 1: + leftmostSide = ($clinit_PortSide() , EAST_2); + rightmostSide = WEST_2; + break; + case 2: + leftmostSide = ($clinit_PortSide() , SOUTH_2); + rightmostSide = NORTH_3; + break; + case 3: + leftmostSide = ($clinit_PortSide() , WEST_2); + rightmostSide = EAST_2; + break; + case 4: + leftmostSide = ($clinit_PortSide() , NORTH_3); + rightmostSide = SOUTH_2; + } + $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, leftmostSide), 15).stream(), COMPARE_BY_ID)), 113)); + $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, rightmostSide), 15).stream(), COMPARE_BY_ID)), 113)); +} + +function $determineTwoSideOpposingLoopRoutes(this$static, slLoop){ + var option1LeftmostPort, option1Penalty, option1RightmostPort, option2LeftmostPort, option2Penalty, option2RightmostPort, sides, slHolder; + sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); + slHolder = slLoop.slHolder; + option1LeftmostPort = $lowestPortOnSide(slLoop, sides[0]); + option1RightmostPort = $highestPortOnSide(slLoop, sides[1]); + option1Penalty = $computeEdgePenalty(this$static, slHolder, option1LeftmostPort, option1RightmostPort); + option2LeftmostPort = $lowestPortOnSide(slLoop, sides[1]); + option2RightmostPort = $highestPortOnSide(slLoop, sides[0]); + option2Penalty = $computeEdgePenalty(this$static, slHolder, option2LeftmostPort, option2RightmostPort); + if (option1Penalty <= option2Penalty) { + slLoop.leftmostPort = option1LeftmostPort; + slLoop.rightmostPort = option1RightmostPort; + } + else { + slLoop.leftmostPort = option2LeftmostPort; + slLoop.rightmostPort = option2RightmostPort; + } +} + +function $highestPortOnSide(slLoop, side){ + return castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); +} + +function $lowestPortOnSide(slLoop, side){ + return castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); +} + +function RoutingDirector(){ + $clinit_RoutingDirector(); +} + +function lambda$0_26(slPort1_0, slPort2_1){ + $clinit_RoutingDirector(); + return compare_5(slPort1_0.lPort.id_0, slPort2_1.lPort.id_0); +} + +defineClass(1746, 1, {}, RoutingDirector); +_.portPenalties = null; +var COMPARE_BY_ID; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector', 1746); +function RoutingDirector$lambda$0$Type(){ +} + +defineClass(1747, 1, $intern_88, RoutingDirector$lambda$0$Type); +_.compare_1 = function compare_57(arg0, arg1){ + return lambda$0_26(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_138(other){ + return this === other; +} +; +_.reversed = function reversed_49(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$0$Type', 1747); +function RoutingDirector$lambda$1$Type(){ +} + +defineClass(1748, 1, {}, RoutingDirector$lambda$1$Type); +_.apply_0 = function apply_127(arg0){ + return $clinit_RoutingDirector() , castTo(arg0, 101).slPorts; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$1$Type', 1748); +function RoutingDirector$lambda$2$Type(){ +} + +defineClass(1749, 1, $intern_19, RoutingDirector$lambda$2$Type); +_.accept = function accept_112(arg0){ + $clinit_RoutingDirector(); + castTo(arg0, 15).sort_0(COMPARE_BY_ID); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$2$Type', 1749); +function $assignRawRoutingSlotsToLoops(this$static, slHolder){ + var portSide, portSide$iterator, slLoop, slLoop$iterator, slot; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + slot = castTo($get_10(this$static.slLoopToSegmentMap, slLoop), 112).routingSlot; + for (portSide$iterator = new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides); portSide$iterator.i < portSide$iterator.this$11.all.length;) { + portSide = castTo($next_8(portSide$iterator), 61); + $setRoutingSlot(slLoop, portSide, slot); + } + } +} + +function $assignRawRoutingSlotsToSegments(this$static){ + var inDependency, inDependency$iterator, nextRoutingSlot, segment, segment$iterator, sinks, sourceSegment; + sinks = new LinkedList; + for (segment$iterator = new ArrayList$1(this$static.hyperEdgeSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 112); + $setInWeight(segment, segment.incomingSegmentDependencies.array.length); + $setOutWeight(segment, segment.outgoingSegmentDependencies.array.length); + if (segment.outDepWeight == 0) { + segment.routingSlot = 0; + $addNode_0(sinks, segment, sinks.tail.prev, sinks.tail); + } + } + while (sinks.size_0 != 0) { + segment = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 112); + nextRoutingSlot = segment.routingSlot + 1; + for (inDependency$iterator = new ArrayList$1(segment.incomingSegmentDependencies); inDependency$iterator.i < inDependency$iterator.this$01.array.length;) { + inDependency = castTo($next_7(inDependency$iterator), 129); + sourceSegment = inDependency.source; + $setRoutingSlot_0(sourceSegment, $wnd.Math.max(sourceSegment.routingSlot, nextRoutingSlot)); + $setOutWeight(sourceSegment, sourceSegment.outDepWeight - 1); + sourceSegment.outDepWeight == 0 && ($addNode_0(sinks, sourceSegment, sinks.tail.prev, sinks.tail) , true); + } + } +} + +function $assignRoutingSlots(this$static, slHolder){ + var labelCrossingMatrix, nextFreeRoutingSlotAtPort; + labelCrossingMatrix = $computeLabelCrossingMatrix(slHolder); + $createCrossingGraph(this$static, slHolder, labelCrossingMatrix); + breakNonCriticalCycles(this$static.hyperEdgeSegments, castTo($getProperty($getGraph(slHolder.lNode), ($clinit_InternalProperties_1() , RANDOM_0)), 230)); + $assignRawRoutingSlotsToSegments(this$static); + $assignRawRoutingSlotsToLoops(this$static, slHolder); + nextFreeRoutingSlotAtPort = initUnidimensionalArray(I_classLit, $intern_48, 25, slHolder.lNode.ports.array.length, 15, 1); + $shiftTowardsNodeOnSide(this$static, slHolder, ($clinit_PortSide() , NORTH_3), nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, EAST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, SOUTH_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + $shiftTowardsNodeOnSide(this$static, slHolder, WEST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); + this$static.hyperEdgeSegments = null; + this$static.slLoopToSegmentMap = null; + this$static.slLoopActivityOverPorts = null; +} + +function $computeLabelCrossingMatrix(slHolder){ + var crossingMatrix, labelID, overlap, sl1Idx, sl2Idx, slLoop, slLoop$iterator, slLoop1, slLoop2, slLoops; + labelID = 0; + for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + !!slLoop.slLabels && (slLoop.slLabels.id_0 = labelID++); + } + crossingMatrix = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [labelID, labelID], 2); + slLoops = slHolder.slHyperLoops; + for (sl1Idx = 0; sl1Idx < slLoops.array.length; sl1Idx++) { + slLoop1 = (checkCriticalElementIndex(sl1Idx, slLoops.array.length) , castTo(slLoops.array[sl1Idx], 101)); + if (slLoop1.slLabels) { + for (sl2Idx = sl1Idx + 1; sl2Idx < slLoops.array.length; sl2Idx++) { + slLoop2 = (checkCriticalElementIndex(sl2Idx, slLoops.array.length) , castTo(slLoops.array[sl2Idx], 101)); + if (slLoop2.slLabels) { + overlap = $labelsOverlap(slLoop1, slLoop2); + crossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0] = overlap; + crossingMatrix[slLoop2.slLabels.id_0][slLoop1.slLabels.id_0] = overlap; + } + } + } + } + return crossingMatrix; +} + +function $computeLoopActivity(this$static, slHolder){ + var lPortIdx, lPortTargetIdx, lPorts, loopActivity, slLoop, slLoop$iterator, slLoops; + slLoops = slHolder.slHyperLoops; + lPorts = slHolder.lNode.ports; + for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + loopActivity = initUnidimensionalArray(Z_classLit, $intern_91, 25, lPorts.array.length, 16, 1); + $put_6(this$static.slLoopActivityOverPorts, slLoop, loopActivity); + lPortIdx = slLoop.leftmostPort.lPort.id_0 - 1; + lPortTargetIdx = slLoop.rightmostPort.lPort.id_0; + while (lPortIdx != lPortTargetIdx) { + lPortIdx = (lPortIdx + 1) % lPorts.array.length; + loopActivity[lPortIdx] = true; + } + } +} + +function $countCrossings_0(this$static, slUpperLoop, slLowerLoop){ + var crossings, lowerLoopActivity, slPort, slPort$iterator; + lowerLoopActivity = castTo($get_10(this$static.slLoopActivityOverPorts, slLowerLoop), 177); + crossings = 0; + for (slPort$iterator = new ArrayList$1(slUpperLoop.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_7(slPort$iterator), 113); + lowerLoopActivity[slPort.lPort.id_0] && ++crossings; + } + return crossings; +} + +function $createCrossingGraph(this$static, slHolder, labelCrossingMatrix){ + var firstIdx, secondIdx, segment, slLoop, slLoop$iterator, slLoop1, slLoops; + slLoops = slHolder.slHyperLoops; + this$static.hyperEdgeSegments = new ArrayList_0(slLoops.array.length); + this$static.slLoopToSegmentMap = new HashMap; + for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { + slLoop = castTo($next_7(slLoop$iterator), 101); + segment = new HyperEdgeSegment(null); + $add_3(this$static.hyperEdgeSegments, segment); + $put_6(this$static.slLoopToSegmentMap, slLoop, segment); + } + this$static.slLoopActivityOverPorts = new HashMap; + $computeLoopActivity(this$static, slHolder); + for (firstIdx = 0; firstIdx < slLoops.array.length - 1; firstIdx++) { + slLoop1 = castTo($get_11(slHolder.slHyperLoops, firstIdx), 101); + for (secondIdx = firstIdx + 1; secondIdx < slLoops.array.length; secondIdx++) { + $createDependencies(this$static, slLoop1, castTo($get_11(slHolder.slHyperLoops, secondIdx), 101), labelCrossingMatrix); + } + } +} + +function $createDependencies(this$static, slLoop1, slLoop2, labelCrossingMatrix){ + var firstAboveSecondCrossings, secondAboveFirstCrossings, segment1, segment2; + firstAboveSecondCrossings = $countCrossings_0(this$static, slLoop1, slLoop2); + secondAboveFirstCrossings = $countCrossings_0(this$static, slLoop2, slLoop1); + segment1 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop1), 112); + segment2 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop2), 112); + if (firstAboveSecondCrossings < secondAboveFirstCrossings) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, secondAboveFirstCrossings - firstAboveSecondCrossings); + } + else if (secondAboveFirstCrossings < firstAboveSecondCrossings) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment2, segment1, firstAboveSecondCrossings - secondAboveFirstCrossings); + } + else if (firstAboveSecondCrossings != 0 || !(!slLoop1.slLabels || !slLoop2.slLabels) && labelCrossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0]) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, 0); + new HyperEdgeSegmentDependency(REGULAR, segment2, segment1, 0); + } +} + +function $labelsOverlap(slLoop1, slLoop2){ + var end1, end2, slLabels1, slLabels2, start1, start2; + slLabels1 = slLoop1.slLabels; + slLabels2 = slLoop2.slLabels; + if (!slLabels1 || !slLabels2) { + return false; + } + if (slLabels1.side != slLabels2.side || slLabels1.side == ($clinit_PortSide() , EAST_2) || slLabels1.side == ($clinit_PortSide() , WEST_2)) { + return false; + } + start1 = slLabels1.position.x_0; + end1 = start1 + slLabels1.size_0.x_0; + start2 = slLabels2.position.x_0; + end2 = start2 + slLabels2.size_0.x_0; + return start1 <= end2 && end1 >= start2; +} + +function $shiftTowardsNodeOnSide(this$static, slHolder, side, nextFreeRoutingSlotAtPort, labelCrossingMatrix){ + var activeAtPort, i, lPort, lPort$iterator, lowestAvailableSlot, maxLPortIndex, minLPortIndex, otherLabelIdx, ourLabelIdx, portIndex, portIndex0, slLoop, slLoop$iterator, slLoops, slotAssignedToLabel, slotsWithLabelConflicts; + slLoops = castTo($collect_1($sorted_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingSlotAssigner$lambda$0$Type(side)), new RoutingSlotAssigner$lambda$1$Type(side)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minLPortIndex = $intern_0; + maxLPortIndex = $intern_42; + for (lPort$iterator = new ArrayList$1(slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_7(lPort$iterator), 11); + if (lPort.side == side) { + minLPortIndex = $wnd.Math.min(minLPortIndex, lPort.id_0); + maxLPortIndex = $wnd.Math.max(maxLPortIndex, lPort.id_0); + } + } + if (minLPortIndex == $intern_0) { + for (i = 0; i < slLoops.size_1(); i++) { + $setRoutingSlot(castTo(slLoops.get_0(i), 101), side, i); + } + } + else { + slotAssignedToLabel = initUnidimensionalArray(I_classLit, $intern_48, 25, labelCrossingMatrix.length, 15, 1); + fill0_1(slotAssignedToLabel, slotAssignedToLabel.length); + for (slLoop$iterator = slLoops.iterator_0(); slLoop$iterator.hasNext_0();) { + slLoop = castTo(slLoop$iterator.next_1(), 101); + activeAtPort = castTo($get_10(this$static.slLoopActivityOverPorts, slLoop), 177); + lowestAvailableSlot = 0; + for (portIndex0 = minLPortIndex; portIndex0 <= maxLPortIndex; portIndex0++) { + activeAtPort[portIndex0] && (lowestAvailableSlot = $wnd.Math.max(lowestAvailableSlot, nextFreeRoutingSlotAtPort[portIndex0])); + } + if (slLoop.slLabels) { + ourLabelIdx = slLoop.slLabels.id_0; + slotsWithLabelConflicts = new HashSet; + for (otherLabelIdx = 0; otherLabelIdx < labelCrossingMatrix.length; otherLabelIdx++) { + labelCrossingMatrix[ourLabelIdx][otherLabelIdx] && $add_6(slotsWithLabelConflicts, valueOf_4(slotAssignedToLabel[otherLabelIdx])); + } + while ($contains_6(slotsWithLabelConflicts, valueOf_4(lowestAvailableSlot))) { + ++lowestAvailableSlot; + } + } + $setRoutingSlot(slLoop, side, lowestAvailableSlot); + for (portIndex = minLPortIndex; portIndex <= maxLPortIndex; portIndex++) { + activeAtPort[portIndex] && (nextFreeRoutingSlotAtPort[portIndex] = lowestAvailableSlot + 1); + } + !!slLoop.slLabels && (slotAssignedToLabel[slLoop.slLabels.id_0] = lowestAvailableSlot); + } + } +} + +function RoutingSlotAssigner(){ +} + +function lambda$0_27(side_0, slLoop_1){ + return $containsEnum(slLoop_1.occupiedPortSides, side_0); +} + +function lambda$1_15(side_0, sl1_1, sl2_2){ + return compare_5(sl1_1.routingSlot[side_0.ordinal], sl2_2.routingSlot[side_0.ordinal]); +} + +defineClass(1752, 1, {}, RoutingSlotAssigner); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner', 1752); +function RoutingSlotAssigner$lambda$0$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1753, 1, $intern_39, RoutingSlotAssigner$lambda$0$Type); +_.test_0 = function test_79(arg0){ + return lambda$0_27(this.side_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$0$Type', 1753); +function RoutingSlotAssigner$lambda$1$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1754, 1, $intern_88, RoutingSlotAssigner$lambda$1$Type); +_.compare_1 = function compare_58(arg0, arg1){ + return lambda$1_15(this.side_0, castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_139(other){ + return this === other; +} +; +_.reversed = function reversed_50(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$1$Type', 1754); +function $addSplineControlPoints(slEdge, routingDirection, orthoBendPoints, newBendPoints, edgeLabelDistance){ + var currPortSide, firstBP, midBP, offset, secondBP, secondBPIndex; + currPortSide = slEdge.slSource.lPort.side; + firstBP = castTo($get_7(orthoBendPoints, 0), 8); + for (secondBPIndex = 1; secondBPIndex < orthoBendPoints.size_0; secondBPIndex++) { + secondBP = castTo($get_7(orthoBendPoints, secondBPIndex), 8); + $addNode_0(newBendPoints, firstBP, newBendPoints.tail.prev, newBendPoints.tail); + midBP = $scale($add_19(new KVector_2(firstBP), secondBP), 0.5); + offset = $scale(new KVector_0(portSideToDirection(currPortSide)), edgeLabelDistance); + $add_19(midBP, offset); + $addNode_0(newBendPoints, midBP, newBendPoints.tail.prev, newBendPoints.tail); + firstBP = secondBP; + currPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); + } + $add_7(newBendPoints, (checkCriticalElement(orthoBendPoints.size_0 != 0) , castTo(orthoBendPoints.tail.prev.value_0, 8))); +} + +function SplineSelfLoopRouter(){ +} + +defineClass(1796, 1793, {}, SplineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_1(slEdge, routingDirection, bendPoints){ + var edgeLabelDistance, lPort, lPort0, splineBendPoints; + edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(slEdge.slHyperLoop.slHolder.lNode, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); + splineBendPoints = new KVectorChain_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [(lPort0 = slEdge.slSource.lPort , $add_19(new KVector_2(lPort0.pos), lPort0.anchor))])); + $addSplineControlPoints(slEdge, routingDirection, bendPoints, splineBendPoints, edgeLabelDistance); + $add_7(splineBendPoints, (lPort = slEdge.slTarget.lPort , $add_19(new KVector_2(lPort.pos), lPort.anchor))); + return $getBezierCP(new NubSpline(splineBendPoints)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_SplineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'SplineSelfLoopRouter', 1796); +function $compare_15(this$static, n1, n2){ + var n1ModelOrder, n1ModelOrder0, n2ModelOrder, n2ModelOrder0, p1Node, p1SourcePort, p2Node, p2SourcePort, port, port$iterator, previousNode, previousNode$array, previousNode$index, previousNode$max; + if ($containsKey_3(this$static.biggerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, n2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, n2, new HashSet); + } + if (this$static.orderingStrategy == ($clinit_OrderingStrategy() , PREFER_EDGES) || !$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, ($clinit_InternalProperties_1() , MODEL_ORDER_0))) { + p1SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n1.ports, 16)), new ModelOrderNodeComparator$lambda$0$Type)), new ModelOrderNodeComparator$lambda$1$Type)), 11); + p2SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n2.ports, 16)), new ModelOrderNodeComparator$lambda$2$Type)), new ModelOrderNodeComparator$lambda$3$Type)), 11); + if (!!p1SourcePort && !!p2SourcePort) { + p1Node = p1SourcePort.owner; + p2Node = p2SourcePort.owner; + if (!!p1Node && p1Node == p2Node) { + for (port$iterator = new ArrayList$1(p1Node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (port == p1SourcePort) { + $updateBiggerAndSmallerAssociations(this$static, n2, n1); + return -1; + } + else if (port == p2SourcePort) { + $updateBiggerAndSmallerAssociations(this$static, n1, n2); + return 1; + } + } + return compare_5($getModelOrderFromConnectedEdges(this$static, n1), $getModelOrderFromConnectedEdges(this$static, n2)); + } + for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { + previousNode = previousNode$array[previousNode$index]; + if (previousNode == p1Node) { + $updateBiggerAndSmallerAssociations(this$static, n2, n1); + return -1; + } + else if (previousNode == p2Node) { + $updateBiggerAndSmallerAssociations(this$static, n1, n2); + return 1; + } + } + } + if (!$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, MODEL_ORDER_0)) { + n1ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n1); + n2ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n2); + n1ModelOrder0 > n2ModelOrder0?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); + return n1ModelOrder0 < n2ModelOrder0?-1:n1ModelOrder0 > n2ModelOrder0?1:0; + } + } + n1ModelOrder = castTo($getProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; + n2ModelOrder = castTo($getProperty(n2, MODEL_ORDER_0), 19).value_0; + n1ModelOrder > n2ModelOrder?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); + return n1ModelOrder < n2ModelOrder?-1:n1ModelOrder > n2ModelOrder?1:0; +} + +function $getModelOrderFromConnectedEdges(this$static, n){ + var edge, sourcePort; + sourcePort = castTo($orElse($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n.ports, 16)), new ModelOrderNodeComparator$lambda$4$Type))), 11); + if (sourcePort) { + edge = castTo($get_11(sourcePort.incomingEdges, 0), 17); + if (edge) { + return castTo($getProperty(edge, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; + } + } + return $returnValue(this$static.longEdgeNodeOrder); +} + +function $updateBiggerAndSmallerAssociations(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); + biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); + smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); + for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 10); + biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); + } + for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 10); + smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); + } +} + +function ModelOrderNodeComparator(thePreviousLayer, orderingStrategy, longEdgeOrderingStrategy){ + ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, thePreviousLayer.nodes.array.length, 0, 1); + $toArray_2(thePreviousLayer.nodes, this.previousLayer); +} + +function ModelOrderNodeComparator_0(orderingStrategy, longEdgeOrderingStrategy){ + this.biggerThan = new HashMap; + this.smallerThan = new HashMap; + this.longEdgeNodeOrder = ($clinit_LongEdgeOrderingStrategy() , EQUAL); + this.orderingStrategy = orderingStrategy; + this.longEdgeNodeOrder = longEdgeOrderingStrategy; +} + +function ModelOrderNodeComparator_1(previousLayer, orderingStrategy, longEdgeOrderingStrategy){ + ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); + this.previousLayer = previousLayer; +} + +defineClass(578, 1, $intern_88, ModelOrderNodeComparator, ModelOrderNodeComparator_1); +_.compare_1 = function compare_59(n1, n2){ + return $compare_15(this, castTo(n1, 10), castTo(n2, 10)); +} +; +_.equals_0 = function equals_140(other){ + return this === other; +} +; +_.reversed = function reversed_51(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator', 578); +function ModelOrderNodeComparator$lambda$0$Type(){ +} + +defineClass(1755, 1, $intern_39, ModelOrderNodeComparator$lambda$0$Type); +_.test_0 = function test_80(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$0$Type', 1755); +function ModelOrderNodeComparator$lambda$1$Type(){ +} + +defineClass(1756, 1, {}, ModelOrderNodeComparator$lambda$1$Type); +_.apply_0 = function apply_128(arg0){ + return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$1$Type', 1756); +function ModelOrderNodeComparator$lambda$2$Type(){ +} + +defineClass(1757, 1, $intern_39, ModelOrderNodeComparator$lambda$2$Type); +_.test_0 = function test_81(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$2$Type', 1757); +function ModelOrderNodeComparator$lambda$3$Type(){ +} + +defineClass(1758, 1, {}, ModelOrderNodeComparator$lambda$3$Type); +_.apply_0 = function apply_129(arg0){ + return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$3$Type', 1758); +function ModelOrderNodeComparator$lambda$4$Type(){ +} + +defineClass(1759, 1, $intern_39, ModelOrderNodeComparator$lambda$4$Type); +_.test_0 = function test_82(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$4$Type', 1759); +function $compare_16(this$static, p1, p2){ + return $compare_17(this$static, castTo(p1, 11), castTo(p2, 11)); +} + +function $compare_17(this$static, p1, p2){ + var p1Node, p1Order, p1TargetNode, p2Node, p2Order, p2TargetNode, previousNode, previousNode$array, previousNode$index, previousNode$max; + if (p1.incomingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { + p1Node = castTo($get_11(p1.incomingEdges, 0), 17).source.owner; + p2Node = castTo($get_11(p2.incomingEdges, 0), 17).source.owner; + if (p1Node == p2Node) { + return compare_5(castTo($getProperty(castTo($get_11(p1.incomingEdges, 0), 17), ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0, castTo($getProperty(castTo($get_11(p2.incomingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + } + for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { + previousNode = previousNode$array[previousNode$index]; + if (previousNode == p1Node) { + return 1; + } + else if (previousNode == p2Node) { + return -1; + } + } + } + if (p1.outgoingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0) { + p1TargetNode = castTo($getProperty(p1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE)), 10); + p2TargetNode = castTo($getProperty(p2, LONG_EDGE_TARGET_NODE), 10); + p1Order = 0; + p2Order = 0; + $hasProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p1Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + $hasProperty(castTo($get_11(p2.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p2Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + if (!!p1TargetNode && p1TargetNode == p2TargetNode) { + if ($booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && !$booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { + return 1; + } + else if (!$booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && $booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { + return -1; + } + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + if (this$static.targetNodeModelOrder) { + this$static.targetNodeModelOrder.containsKey(p1TargetNode) && (p1Order = castTo(this$static.targetNodeModelOrder.get_3(p1TargetNode), 19).value_0); + this$static.targetNodeModelOrder.containsKey(p2TargetNode) && (p2Order = castTo(this$static.targetNodeModelOrder.get_3(p2TargetNode), 19).value_0); + } + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + return p1.incomingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0?1:-1; +} + +function ModelOrderPortComparator(previousLayer, targetNodeModelOrder){ + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, previousLayer.nodes.array.length, 0, 1); + $toArray_2(previousLayer.nodes, this.previousLayer); + this.targetNodeModelOrder = targetNodeModelOrder; +} + +function ModelOrderPortComparator_0(previousLayer, targetNodeModelOrder){ + this.previousLayer = previousLayer; + this.targetNodeModelOrder = targetNodeModelOrder; +} + +defineClass(806, 1, $intern_88, ModelOrderPortComparator, ModelOrderPortComparator_0); +_.compare_1 = function compare_60(p1, p2){ + return $compare_16(this, p1, p2); +} +; +_.equals_0 = function equals_141(other){ + return this === other; +} +; +_.reversed = function reversed_52(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderPortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderPortComparator', 806); +function ARDCutIndexHeuristic(){ +} + +function getChunkCount(gs){ + var rows_0, rowsd; + rowsd = $wnd.Math.sqrt((gs.sumWidth == null && (gs.sumWidth = $determineWidth(gs, new GraphStats$lambda$1$Type)) , $doubleValue(gs.sumWidth) / (gs.dar * (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight))))); + rows_0 = toInt_0(fromDouble_0($wnd.Math.round(rowsd))); + rows_0 = $wnd.Math.min(rows_0, gs.longestPath); + return rows_0; +} + +defineClass(801, 1, {}, ARDCutIndexHeuristic); +_.getCutIndexes = function getCutIndexes(graph, gs){ + var cuts, idx, rows_0, step; + rows_0 = getChunkCount(gs); + cuts = new ArrayList; + step = gs.longestPath / rows_0; + for (idx = 1; idx < rows_0; ++idx) { + $add_3(cuts, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(idx * step))))); + } + return cuts; +} +; +_.guaranteeValid = function guaranteeValid(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ARDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ARDCutIndexHeuristic', 801); +function $applyCuts(graph, cuts){ + var alreadySplit, bpEndMarker, bpLayer1, bpLayer2, bpStartMarker, bpi, bpiPrev, cut, cutIt, e, e$iterator, e$iterator0, idx, inPortBp1, inPortBp2, layer, layerIt, n, n$iterator, noSplitEdges, nodeStartEdge, openEdges, originalEdge, originalEdge$iterator, outPortBp1, outPortBp2, prevNode, startEndEdge; + layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); + cutIt = cuts.iterator_0(); + idx = 0; + cut = castTo(cutIt.next_1(), 19).value_0; + noSplitEdges = 0; + alreadySplit = new HashSet; + openEdges = new LinkedHashSet; + while (layerIt.i < layerIt.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + for (e$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator0);) { + e = castTo($next_0(e$iterator0), 17); + openEdges.map_0.put(e, openEdges); + } + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + openEdges.map_0.remove_0(e) != null; + } + } + if (idx + 1 == cut) { + bpLayer1 = new Layer(graph); + $add_1(layerIt, bpLayer1); + bpLayer2 = new Layer(graph); + $add_1(layerIt, bpLayer2); + for (originalEdge$iterator = openEdges.map_0.keySet_0().iterator_0(); originalEdge$iterator.hasNext_0();) { + originalEdge = castTo(originalEdge$iterator.next_1(), 17); + if (!alreadySplit.map_0.containsKey(originalEdge)) { + ++noSplitEdges; + alreadySplit.map_0.put(originalEdge, alreadySplit); + } + bpStartMarker = new LNode(graph); + $setProperty_0(bpStartMarker, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); + $setLayer_0(bpStartMarker, bpLayer1); + $setType(bpStartMarker, ($clinit_LNode$NodeType() , BREAKING_POINT)); + inPortBp1 = new LPort; + $setNode(inPortBp1, bpStartMarker); + $setSide(inPortBp1, ($clinit_PortSide() , WEST_2)); + outPortBp1 = new LPort; + $setNode(outPortBp1, bpStartMarker); + $setSide(outPortBp1, EAST_2); + bpEndMarker = new LNode(graph); + $setProperty_0(bpEndMarker, PORT_CONSTRAINTS_0, FIXED_SIDE); + $setLayer_0(bpEndMarker, bpLayer2); + $setType(bpEndMarker, BREAKING_POINT); + inPortBp2 = new LPort; + $setNode(inPortBp2, bpEndMarker); + $setSide(inPortBp2, WEST_2); + outPortBp2 = new LPort; + $setNode(outPortBp2, bpEndMarker); + $setSide(outPortBp2, EAST_2); + nodeStartEdge = new LEdge; + $setSource_0(nodeStartEdge, originalEdge.source); + $setTarget_0(nodeStartEdge, inPortBp1); + startEndEdge = new LEdge; + $setSource_0(startEndEdge, outPortBp1); + $setTarget_0(startEndEdge, inPortBp2); + $setSource_0(originalEdge, outPortBp2); + bpi = new BreakingPointInserter$BPInfo(bpStartMarker, bpEndMarker, nodeStartEdge, startEndEdge, originalEdge); + $setProperty_0(bpStartMarker, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO), bpi); + $setProperty_0(bpEndMarker, BREAKING_POINT_INFO, bpi); + prevNode = nodeStartEdge.source.owner; + if (prevNode.type_0 == BREAKING_POINT) { + bpiPrev = castTo($getProperty(prevNode, BREAKING_POINT_INFO), 305); + bpiPrev.next_0 = bpi; + bpi.prev = bpiPrev; + } + } + if (cutIt.hasNext_0()) { + cut = castTo(cutIt.next_1(), 19).value_0; + } + else { + break; + } + } + ++idx; + } + return valueOf_4(noSplitEdges); +} + +function $computeEdgeSpans(graph){ + var e, e$iterator, i, l, l$iterator, n, n$iterator, n$iterator0, open_0, spans; + spans = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length + 1, 15, 1); + open_0 = new HashSet; + i = 0; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + spans[i++] = open_0.map_0.size_1(); + for (n$iterator0 = new ArrayList$1(l.nodes); n$iterator0.i < n$iterator0.this$01.array.length;) { + n = castTo($next_7(n$iterator0), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + open_0.map_0.put(e, open_0); + } + } + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + open_0.map_0.remove_0(e) != null; + } + } + } + return spans; +} + +function $improveCuts(graph, cuts){ + var bestCut, bestScore, ccuts, cut, cutIdx, cutIdx$iterator, dist, hit, i, idx, improvedCuts, lCut, lDist, lastCut, rCut, rDist, score, spans, distancePenalty; + improvedCuts = new ArrayList; + ccuts = new ArrayList; + lastCut = null; + for (cutIdx$iterator = cuts.iterator_0(); cutIdx$iterator.hasNext_0();) { + cutIdx = castTo(cutIdx$iterator.next_1(), 19); + cut = new BreakingPointInserter$Cut(cutIdx.value_0); + ccuts.array[ccuts.array.length] = cut; + if (lastCut) { + cut.prev = lastCut; + lastCut.suc = cut; + } + lastCut = cut; + } + spans = $computeEdgeSpans(graph); + for (i = 0; i < ccuts.array.length; ++i) { + lCut = null; + rCut = $selfOrNext((checkCriticalElementIndex(0, ccuts.array.length) , castTo(ccuts.array[0], 652))); + bestCut = null; + bestScore = $intern_59; + for (idx = 1; idx < graph.layers.array.length; ++idx) { + rDist = rCut?$wnd.Math.abs(rCut.index_0 - idx):$wnd.Math.abs(idx - lCut.index_0) + 1; + lDist = lCut?$wnd.Math.abs(idx - lCut.index_0):rDist + 1; + if (lDist < rDist) { + hit = lCut; + dist = lDist; + } + else { + hit = rCut; + dist = rDist; + } + score = (distancePenalty = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)))) , spans[idx] + $wnd.Math.pow(dist, distancePenalty)); + if (score < bestScore) { + bestScore = score; + bestCut = hit; + bestCut.newIndex = idx; + } + if (!!rCut && idx == rCut.index_0) { + lCut = rCut; + rCut = $next_12(rCut); + } + } + if (bestCut) { + $add_3(improvedCuts, valueOf_4(bestCut.newIndex)); + bestCut.assigned = true; + $offset(bestCut); + } + } + $clinit_Collections(); + sort_4(improvedCuts.array, improvedCuts.array.length, null); + return improvedCuts; +} + +function $process_53(graph, progressMonitor){ + var cuts, gs, icic; + $begin(progressMonitor, 'Breaking Point Insertion', 1); + gs = new GraphStats(graph); + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + case 0: + icic = new ARDCutIndexHeuristic; + break; + default:icic = new MSDCutIndexHeuristic; + } + cuts = icic.getCutIndexes(graph, gs); + $booleanValue(castToBoolean($getProperty(graph, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0))) && (cuts = $improveCuts(graph, cuts)); + if (!icic.guaranteeValid() && $hasProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0)) { + switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + if (cuts.isEmpty()) { + $done_0(progressMonitor); + return; + } + $applyCuts(graph, cuts); + $done_0(progressMonitor); +} + +function BreakingPointInserter(){ +} + +defineClass(1479, 1, $intern_105, BreakingPointInserter); +_.process = function process_50(graph, progressMonitor){ + $process_53(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter', 1479); +function BreakingPointInserter$BPInfo(startDummy, endDummy, nodeStartEdge, startEndEdge, originalEdge){ + this.start_0 = startDummy; + this.end = endDummy; + this.nodeStartEdge = nodeStartEdge; + this.startEndEdge = startEndEdge; + this.originalEdge = originalEdge; +} + +function isEnd(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (bpi) { + return bpi.end == n; + } + return false; +} + +function isStart(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (bpi) { + return bpi.start_0 == n; + } + return false; +} + +defineClass(305, 1, {305:1}, BreakingPointInserter$BPInfo); +_.toString_0 = function toString_97(){ + var sb; + sb = new StringBuilder; + sb.string += 'BPInfo['; + sb.string += '\n\tstart='; + $append_10(sb, this.start_0); + sb.string += '\n\tend='; + $append_10(sb, this.end); + sb.string += '\n\tnodeStartEdge='; + $append_10(sb, this.nodeStartEdge); + sb.string += '\n\tstartEndEdge='; + $append_10(sb, this.startEndEdge); + sb.string += '\n\toriginalEdge='; + $append_10(sb, this.originalEdge); + sb.string += '\n\tstartInLayerDummy='; + $append_10(sb, this.startInLayerDummy); + sb.string += '\n\tstartInLayerEdge='; + $append_10(sb, this.startInLayerEdge); + sb.string += '\n\tendInLayerDummy='; + $append_10(sb, this.endInLayerDummy); + sb.string += '\n\tendInLayerEdge='; + $append_10(sb, this.endInLayerEdge); + return sb.string; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$BPInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/BPInfo', 305); +function $next_12(this$static){ + if (this$static.suc) { + return $selfOrNext(this$static.suc); + } + return null; +} + +function $offset(this$static){ + var offset; + if (!this$static.assigned) { + throw toJs(new IllegalStateException_0('Cannot offset an unassigned cut.')); + } + offset = this$static.newIndex - this$static.index_0; + this$static.index_0 += offset; + $offsetPrev(this$static, offset); + $offsetSuc(this$static, offset); +} + +function $offset_0(this$static, offset){ + this$static.index_0 += offset; +} + +function $offsetPrev(this$static, offset){ + if (!!this$static.prev && !this$static.prev.assigned) { + $offset_0(this$static.prev, offset); + $offsetPrev(this$static.prev, offset); + } +} + +function $offsetSuc(this$static, offset){ + if (!!this$static.suc && !this$static.suc.assigned) { + $offset_0(this$static.suc, offset); + $offsetSuc(this$static.suc, offset); + } +} + +function $selfOrNext(this$static){ + if (this$static.assigned) { + if (this$static.suc) { + return $selfOrNext(this$static.suc); + } + } + else { + return this$static; + } + return null; +} + +function BreakingPointInserter$Cut(index_0){ + this.index_0 = index_0; +} + +defineClass(652, 1, {652:1}, BreakingPointInserter$Cut); +_.assigned = false; +_.index_0 = 0; +_.newIndex = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$Cut_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/Cut', 652); +function $dropDummies(bpNode, inLayerDummy, forwards, force){ + var didsome, newLayer, nextOne, nextTwo, predOne, predTwo; + predOne = $nextLongEdgeDummy(bpNode, forwards); + predTwo = $nextLongEdgeDummy(inLayerDummy, forwards); + didsome = false; + while (!!predOne && !!predTwo) { + if (force || $isAdjacentOrSeparatedByBreakingpoints(predOne, predTwo, forwards)) { + nextOne = $nextLongEdgeDummy(predOne, forwards); + nextTwo = $nextLongEdgeDummy(predTwo, forwards); + $updateIndexesAfter(inLayerDummy); + $updateIndexesAfter(bpNode); + newLayer = predOne.layer; + joinAt(predOne, false); + joinAt(predTwo, false); + if (forwards) { + $setLayer(inLayerDummy, predTwo.id_0, newLayer); + inLayerDummy.id_0 = predTwo.id_0; + $setLayer(bpNode, predOne.id_0 + 1, newLayer); + bpNode.id_0 = predOne.id_0; + } + else { + $setLayer(bpNode, predOne.id_0, newLayer); + bpNode.id_0 = predOne.id_0; + $setLayer(inLayerDummy, predTwo.id_0 + 1, newLayer); + inLayerDummy.id_0 = predTwo.id_0; + } + $setLayer_0(predOne, null); + $setLayer_0(predTwo, null); + predOne = nextOne; + predTwo = nextTwo; + didsome = true; + } + else { + break; + } + } + return didsome; +} + +function $improveMultiCutIndexEdges(graph){ + var current, info, l, l$iterator, n, n$iterator, newInfo, next; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(newArrayList(l.nodes)); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (isStart(n)) { + info = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (!info.prev && !!info.next_0) { + current = info; + next = info.next_0; + while (next) { + $dropDummies(next.start_0, next.startInLayerDummy, false, true); + $updateIndexesAfter(current.end); + $updateIndexesAfter(next.start_0); + $updateIndexesAfter(next.startInLayerDummy); + $updateIndexesAfter(next.endInLayerDummy); + $setTarget_0(next.endInLayerEdge, current.endInLayerEdge.target); + $setTarget_0(current.endInLayerEdge, null); + $setLayer_0(current.end, null); + $setLayer_0(next.start_0, null); + $setLayer_0(next.startInLayerDummy, null); + $setLayer_0(next.endInLayerDummy, null); + newInfo = new BreakingPointInserter$BPInfo(current.start_0, next.end, current.nodeStartEdge, next.startEndEdge, next.originalEdge); + newInfo.startInLayerDummy = current.startInLayerDummy; + newInfo.startInLayerEdge = current.startInLayerEdge; + newInfo.endInLayerDummy = current.endInLayerDummy; + newInfo.endInLayerEdge = next.endInLayerEdge; + newInfo.prev = current.prev; + newInfo.next_0 = next.next_0; + $setProperty_0(current.start_0, BREAKING_POINT_INFO, newInfo); + $setProperty_0(next.end, BREAKING_POINT_INFO, newInfo); + next = next.next_0; + current = newInfo; + } + } + } + } + } +} + +function $improveUnneccesarilyLongEdges(graph, forwards){ + var bpInfo, bpNode, check, didsome, dummy, layer, layer$iterator, layers, n, n$iterator, nodes; + check = forwards?new BreakingPointProcessor$0methodref$isEnd$Type:new BreakingPointProcessor$1methodref$isStart$Type; + didsome = false; + do { + didsome = false; + layers = forwards?reverse_0(graph.layers):graph.layers; + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + nodes = newArrayList(layer.nodes); + forwards || new Lists$RandomAccessReverseList(nodes); + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (check.test_0(n)) { + bpNode = n; + bpInfo = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + dummy = forwards?bpInfo.endInLayerDummy:bpInfo.startInLayerDummy; + didsome = $dropDummies(bpNode, dummy, forwards, false); + } + } + } + } + while (didsome); +} + +function $isAdjacentOrSeparatedByBreakingpoints(dummy1, dummy2, forwards){ + var end, i, layer, node, start_0; + layer = dummy1.layer; + start_0 = forwards?dummy2:dummy1; + end = forwards?dummy1:dummy2; + for (i = start_0.id_0 + 1; i < end.id_0; ++i) { + node = castTo($get_11(layer.nodes, i), 10); + if (!(node.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT) || $isInLayerDummy(node))) { + return false; + } + } + return true; +} + +function $isInLayerDummy(node){ + var e, e$iterator; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!$isSelfLoop(e) && node.layer == $getOther_1(e, node).layer) { + return true; + } + } + } + return false; +} + +function $nextLongEdgeDummy(start_0, forwards){ + var e, e$iterator, edges, other; + edges = forwards?$getOutgoingEdges(start_0):$getIncomingEdges(start_0); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + other = $getOther_1(e, start_0); + if (other.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && other.layer != start_0.layer) { + return other; + } + } + return null; +} + +function $performWrapping(graph){ + var aNode, bpi, dummyEdges, e, e$iterator, idx, it, l, layer, layerIt, layers, n, n$iterator, n$iterator0, newLayer, nodesToMove, offset, reverse, startInLayerEdge; + layers = graph.layers; + layerIt = new AbstractList$ListIteratorImpl(layers, 0); + $add_1(layerIt, new Layer(graph)); + reverse = false; + idx = 1; + while (layerIt.i < layerIt.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); + newLayer = (checkCriticalElementIndex(idx, layers.array.length) , castTo(layers.array[idx], 29)); + nodesToMove = newArrayList(layer.nodes); + offset = nodesToMove.array.length; + for (n$iterator0 = new ArrayList$1(nodesToMove); n$iterator0.i < n$iterator0.this$01.array.length;) { + n = castTo($next_7(n$iterator0), 10); + $setLayer_0(n, newLayer); + } + if (reverse) { + for (n$iterator = $listIterator_1(new Lists$RandomAccessReverseList(nodesToMove), 0); n$iterator.val$forwardIterator2.hasPrevious();) { + n = castTo($next_3(n$iterator), 10); + for (e$iterator = new ArrayList$1(newArrayList($getIncomingEdges(n))); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $reverse_0(e, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + dummyEdges = insertDummies(graph, e, offset); + bpi = castTo($getProperty(n, BREAKING_POINT_INFO), 305); + startInLayerEdge = castTo($get_11(dummyEdges, dummyEdges.array.length - 1), 17); + bpi.startInLayerDummy = startInLayerEdge.source.owner; + bpi.startInLayerEdge = startInLayerEdge; + bpi.endInLayerDummy = e.target.owner; + bpi.endInLayerEdge = e; + } + } + reverse = false; + } + else { + if (nodesToMove.array.length != 0) { + aNode = (checkCriticalElementIndex(0, nodesToMove.array.length) , castTo(nodesToMove.array[0], 10)); + if (aNode.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT)) { + reverse = true; + idx = -1; + } + } + } + ++idx; + } + it = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (it.i < it.this$01_0.size_1()) { + l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_54(graph, progressMonitor){ + var index_0, l, l$iterator, n, n$iterator; + $begin(progressMonitor, 'Breaking Point Processor', 1); + $performWrapping(graph); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0))))) { + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + } + } + $improveMultiCutIndexEdges(graph); + $improveUnneccesarilyLongEdges(graph, true); + $improveUnneccesarilyLongEdges(graph, false); + } + $done_0(progressMonitor); +} + +function $updateIndexesAfter(node){ + var i; + for (i = node.id_0 + 1; i < node.layer.nodes.array.length; ++i) { + --castTo($get_11(node.layer.nodes, i), 10).id_0; + } +} + +function BreakingPointProcessor(){ +} + +defineClass(1480, 1, $intern_105, BreakingPointProcessor); +_.process = function process_51(graph, progressMonitor){ + $process_54(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor', 1480); +function BreakingPointProcessor$0methodref$isEnd$Type(){ +} + +defineClass(1481, 1, $intern_39, BreakingPointProcessor$0methodref$isEnd$Type); +_.test_0 = function test_83(arg0){ + return isEnd(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$0methodref$isEnd$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/0methodref$isEnd$Type', 1481); +function BreakingPointProcessor$1methodref$isStart$Type(){ +} + +defineClass(1482, 1, $intern_39, BreakingPointProcessor$1methodref$isStart$Type); +_.test_0 = function test_84(arg0){ + return isStart(castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$1methodref$isStart$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/1methodref$isStart$Type', 1482); +function $addNullSafe(container, toAdd){ + if (!toAdd) { + return false; + } + return $addAll(container, toAdd); +} + +function $process_55(this$static, graph, progressMonitor){ + var bpi, l, l$iterator, node, node$iterator; + $begin(progressMonitor, 'Breaking Point Removing', 1); + this$static.edgeRouting = castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (node$iterator = new ArrayList$1(newArrayList(l.nodes)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (isEnd(node)) { + bpi = castTo($getProperty(node, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + !bpi.next_0 && $remove_30(this$static, bpi); + } + } + } + $done_0(progressMonitor); +} + +function $remove_30(this$static, bpi){ + var e1, e2, e3, joinedEdges, joinedSegments, junctionPointsOne, junctionPointsThree, junctionPointsTwo, newBends, newJunctionPoints, s1, s2, s3; + newBends = new KVectorChain; + switch (this$static.edgeRouting.ordinal) { + case 3: + s1 = castTo($getProperty(bpi.nodeStartEdge, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); + s2 = castTo($getProperty(bpi.startEndEdge, SPLINE_ROUTE_START), 15); + s3 = castTo($getProperty(bpi.originalEdge, SPLINE_ROUTE_START), 15); + e1 = castTo($getProperty(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN), 15); + e2 = castTo($getProperty(bpi.startEndEdge, SPLINE_EDGE_CHAIN), 15); + e3 = castTo($getProperty(bpi.originalEdge, SPLINE_EDGE_CHAIN), 15); + joinedSegments = new ArrayList; + $addAll_2(joinedSegments, s1); + s2.forEach_0(new BreakingPointRemover$lambda$0$Type); + $addAll_2(joinedSegments, instanceOf(s2, 152)?$reverse(castTo(s2, 152)):instanceOf(s2, 131)?castTo(s2, 131).forwardList:instanceOf(s2, 54)?new Lists$RandomAccessReverseList(s2):new Lists$ReverseList(s2)); + $addAll_2(joinedSegments, s3); + joinedEdges = new ArrayList; + $addAll_2(joinedEdges, e1); + $addAll_2(joinedEdges, instanceOf(e2, 152)?$reverse(castTo(e2, 152)):instanceOf(e2, 131)?castTo(e2, 131).forwardList:instanceOf(e2, 54)?new Lists$RandomAccessReverseList(e2):new Lists$ReverseList(e2)); + $addAll_2(joinedEdges, e3); + $setProperty_0(bpi.originalEdge, SPLINE_ROUTE_START, joinedSegments); + $setProperty_0(bpi.originalEdge, SPLINE_EDGE_CHAIN, joinedEdges); + $setProperty_0(bpi.originalEdge, SPLINE_SURVIVING_EDGE, bpi.originalEdge); + $setProperty_0(bpi.nodeStartEdge, SPLINE_ROUTE_START, null); + $setProperty_0(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN, null); + $setProperty_0(bpi.startEndEdge, SPLINE_ROUTE_START, null); + $setProperty_0(bpi.startEndEdge, SPLINE_EDGE_CHAIN, null); + break; + case 1: + $addAll(newBends, bpi.nodeStartEdge.bendPoints); + $add_7(newBends, bpi.start_0.pos); + $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); + $add_7(newBends, bpi.end.pos); + $addAll(newBends, bpi.originalEdge.bendPoints); + break; + default:$addAll(newBends, bpi.nodeStartEdge.bendPoints); + $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); + $addAll(newBends, bpi.originalEdge.bendPoints); + } + $reset_0(bpi.originalEdge.bendPoints); + $addAll(bpi.originalEdge.bendPoints, newBends); + $setSource_0(bpi.originalEdge, bpi.nodeStartEdge.source); + junctionPointsOne = castTo($getProperty(bpi.nodeStartEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + junctionPointsTwo = castTo($getProperty(bpi.startEndEdge, JUNCTION_POINTS), 74); + junctionPointsThree = castTo($getProperty(bpi.originalEdge, JUNCTION_POINTS), 74); + if (!!junctionPointsOne || !!junctionPointsTwo || !!junctionPointsThree) { + newJunctionPoints = new KVectorChain; + $addNullSafe(newJunctionPoints, junctionPointsThree); + $addNullSafe(newJunctionPoints, junctionPointsTwo); + $addNullSafe(newJunctionPoints, junctionPointsOne); + $setProperty_0(bpi.originalEdge, JUNCTION_POINTS, newJunctionPoints); + } + $setSource_0(bpi.startEndEdge, null); + $setTarget_0(bpi.startEndEdge, null); + $setSource_0(bpi.nodeStartEdge, null); + $setTarget_0(bpi.nodeStartEdge, null); + $setLayer_0(bpi.end, null); + $setLayer_0(bpi.start_0, null); + !!bpi.prev && $remove_30(this$static, bpi.prev); +} + +function BreakingPointRemover(){ +} + +defineClass(1483, 1, $intern_105, BreakingPointRemover); +_.process = function process_52(graph, progressMonitor){ + $process_55(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover', 1483); +function BreakingPointRemover$lambda$0$Type(){ +} + +defineClass(1484, 1, $intern_19, BreakingPointRemover$lambda$0$Type); +_.accept = function accept_113(arg0){ + castTo(arg0, 128).inverseOrder = true; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover/lambda$0$Type', 1484); +function insertDummies(layeredGraph, originalEdge, offsetFirstInLayerDummy){ + var additionalSpacing, createdEdges, dummyEdge, dummyInput, dummyNode, dummyOutput, edge, edgeNodeSpacing, i, is, nextLayer, portPos, src_0, srcIndex, targetPort, tgt, tgtIndex, thickness; + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE)))); + additionalSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, WRAPPING_ADDITIONAL_EDGE_SPACING_0))); + is = new IndividualSpacings; + $setProperty_0(is, SPACING_EDGE_NODE, edgeNodeSpacing + additionalSpacing); + edge = originalEdge; + targetPort = edge.target; + src_0 = edge.source.owner; + tgt = edge.target.owner; + srcIndex = $getIndex_0(src_0.layer); + tgtIndex = $getIndex_0(tgt.layer); + createdEdges = new ArrayList; + for (i = srcIndex; i <= tgtIndex; i++) { + dummyNode = new LNode(layeredGraph); + $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)); + $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); + $setProperty_0(dummyNode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); + $setProperty_0(dummyNode, SPACING_INDIVIDUAL, is); + nextLayer = castTo($get_11(layeredGraph.layers, i), 29); + i == srcIndex?$setLayer(dummyNode, nextLayer.nodes.array.length - offsetFirstInLayerDummy, nextLayer):$setLayer_0(dummyNode, nextLayer); + thickness = $doubleValue(castToDouble($getProperty(edge, EDGE_THICKNESS_0))); + if (thickness < 0) { + thickness = 0; + $setProperty_0(edge, EDGE_THICKNESS_0, thickness); + } + dummyNode.size_0.y_0 = thickness; + portPos = $wnd.Math.floor(thickness / 2); + dummyInput = new LPort; + $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); + $setNode(dummyInput, dummyNode); + dummyInput.pos.y_0 = portPos; + dummyOutput = new LPort; + $setSide(dummyOutput, EAST_2); + $setNode(dummyOutput, dummyNode); + dummyOutput.pos.y_0 = portPos; + $setTarget_0(edge, dummyInput); + dummyEdge = new LEdge; + $copyProperties(dummyEdge, edge); + $setProperty_0(dummyEdge, JUNCTION_POINTS, null); + $setSource_0(dummyEdge, dummyOutput); + $setTarget_0(dummyEdge, targetPort); + setDummyProperties(dummyNode, edge, dummyEdge); + createdEdges.array[createdEdges.array.length] = dummyEdge; + edge = dummyEdge; + } + return createdEdges; +} + +function setDummyProperties(dummy, inEdge, outEdge){ + var inEdgeSourceNode; + inEdgeSourceNode = inEdge.source.owner; + if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); + $setProperty_0(dummy, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + } + else { + $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); + $setProperty_0(dummy, LONG_EDGE_TARGET, outEdge.target); + } +} + +function $determineHeight(this$static, fun){ + return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$6$Type(this$static)), fun)))); +} + +function $determineLayerHeight(this$static, layer){ + var inc, inc$iterator, lH, n, n$iterator, origin_0, src_0; + lH = 0; + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + lH += n.size_0.y_0 + n.margin.bottom + n.margin.top_0 + this$static.inLayerSpacing; + for (inc$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inc$iterator);) { + inc = castTo($next_0(inc$iterator), 17); + if (inc.source.owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + src_0 = inc.source.owner; + origin_0 = castTo($getProperty(src_0, ($clinit_InternalProperties_1() , ORIGIN_0)), 10); + lH += origin_0.size_0.y_0 + origin_0.margin.bottom + origin_0.margin.top_0; + } + } + } + return lH; +} + +function $determineLayerWidth(this$static, l){ + var maxW, n, n$iterator, nW; + maxW = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + nW = n.size_0.x_0 + n.margin.right + n.margin.left + this$static.spacing; + maxW = $wnd.Math.max(maxW, nW); + } + return maxW; +} + +function $determineWidth(this$static, fun){ + return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$2$Type(this$static)), fun)))); +} + +function $initCutAllowed(this$static){ + var f, f$iterator, forbidden, i, layer, layerIt; + if (this$static.cutsAllowed != null) { + return; + } + this$static.cutsAllowed = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.layers.array.length, 16, 1); + this$static.cutsAllowed[0] = false; + if ($hasProperty(this$static.graph_0, ($clinit_LayeredOptions() , WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0))) { + forbidden = castTo($getProperty(this$static.graph_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0), 15); + for (f$iterator = forbidden.iterator_0(); f$iterator.hasNext_0();) { + f = castTo(f$iterator.next_1(), 19).value_0; + f > 0 && f < this$static.cutsAllowed.length && (this$static.cutsAllowed[f] = false); + } + } + else { + layerIt = new ArrayList$1(this$static.graph_0.layers); + layerIt.i < layerIt.this$01.array.length && $next_7(layerIt); + i = 1; + while (layerIt.i < layerIt.this$01.array.length) { + layer = castTo($next_7(layerIt), 29); + this$static.cutsAllowed[i++] = $isCutAllowed_0(layer); + } + } +} + +function $initWidthsAndHeights(this$static){ + var i, l, n; + n = this$static.longestPath; + this$static.widths = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); + this$static.heights = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); + for (i = 0; i < n; i++) { + l = castTo($get_11(this$static.graph_0.layers, i), 29); + this$static.widths[i] = $determineLayerWidth(this$static, l); + this$static.heights[i] = $determineLayerHeight(this$static, l); + } +} + +function $isCutAllowed(this$static, layerIndex){ + this$static.cutsAllowed == null && $initCutAllowed(this$static); + return this$static.cutsAllowed[layerIndex]; +} + +function $isCutAllowed_0(layer){ + var cutAllowed, e, e$iterator, n1, n2, src_0, tgt, tgt$iterator; + cutAllowed = true; + n1 = null; + n2 = null; + check: for (tgt$iterator = new ArrayList$1(layer.nodes); tgt$iterator.i < tgt$iterator.this$01.array.length;) { + tgt = castTo($next_7(tgt$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(tgt).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!!n1 && n1 != tgt) { + cutAllowed = false; + break check; + } + n1 = tgt; + src_0 = e.source.owner; + if (!!n2 && n2 != src_0) { + cutAllowed = false; + break check; + } + n2 = src_0; + } + } + return cutAllowed; +} + +function GraphStats(graph){ + var aspectRatio, correction, dir_0; + this.graph_0 = graph; + dir_0 = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); + aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); + correction = $doubleValue(castToDouble($getProperty(graph, WRAPPING_CORRECTION_FACTOR_0))); + dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6 || dir_0 == UNDEFINED_2?(this.dar = aspectRatio * correction):(this.dar = 1 / (aspectRatio * correction)); + this.spacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + this.inLayerSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_0))); + this.longestPath = graph.layers.array.length; +} + +function lambda$1_16(a_0, b_1){ + return (checkCriticalNotNull(a_0) , a_0) + (checkCriticalNotNull(b_1) , b_1); +} + +defineClass(797, 1, {}, GraphStats); +_.dar = 0; +_.inLayerSpacing = 0; +_.longestPath = 0; +_.spacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats', 797); +function GraphStats$0methodref$max$Type(){ +} + +defineClass(798, 1, {}, GraphStats$0methodref$max$Type); +_.apply_3 = function apply_130(arg0, arg1){ + return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$0methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/0methodref$max$Type', 798); +function GraphStats$2methodref$max$Type(){ +} + +defineClass(799, 1, {}, GraphStats$2methodref$max$Type); +_.apply_3 = function apply_131(arg0, arg1){ + return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$2methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/2methodref$max$Type', 799); +function GraphStats$lambda$1$Type(){ +} + +defineClass(1660, 1, {}, GraphStats$lambda$1$Type); +_.apply_3 = function apply_132(arg0, arg1){ + return lambda$1_16(castToDouble(arg0), castToDouble(arg1)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$1$Type', 1660); +function GraphStats$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1661, 1, {}, GraphStats$lambda$2$Type); +_.apply_0 = function apply_133(arg0){ + return $determineLayerWidth(this.$$outer_0, castTo(arg0, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$2$Type', 1661); +function GraphStats$lambda$6$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1662, 1, {}, GraphStats$lambda$6$Type); +_.apply_0 = function apply_134(arg0){ + return $determineLayerHeight(this.$$outer_0, castTo(arg0, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$6$Type', 1662); +function ICutIndexCalculator$ManualCutIndexCalculator(){ +} + +defineClass(800, 1, {}, ICutIndexCalculator$ManualCutIndexCalculator); +_.getCutIndexes = function getCutIndexes_0(graph, gs){ + var cuts; + cuts = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_CUTS_0)), 15); + return cuts?cuts:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); +} +; +_.guaranteeValid = function guaranteeValid_0(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ICutIndexCalculator$ManualCutIndexCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ICutIndexCalculator/ManualCutIndexCalculator', 800); +function MSDCutIndexHeuristic(){ +} + +defineClass(802, 1, {}, MSDCutIndexHeuristic); +_.getCutIndexes = function getCutIndexes_1(graph, gs){ + var bestCuts, bestMaxScale, cutCnt, cuts, freedom, height, heights, i, index_0, lastCutWidth, m, maxScale, rowHeightMax, rowSum, sumSoFar, total, width_0, widthAtIndex, widths; + widths = (gs.widths == null && $initWidthsAndHeights(gs) , gs.widths); + heights = (gs.heights == null && $initWidthsAndHeights(gs) , gs.heights); + widthAtIndex = initUnidimensionalArray(D_classLit, $intern_65, 25, widths.length, 15, 1); + widthAtIndex[0] = widths[0]; + total = widths[0]; + for (i = 1; i < widths.length; i++) { + widthAtIndex[i] = widthAtIndex[i - 1] + widths[i]; + total += widths[i]; + } + cutCnt = getChunkCount(gs) - 1; + freedom = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_MSD_FREEDOM_0)), 19).value_0; + bestMaxScale = $intern_60; + bestCuts = new ArrayList; + for (m = $wnd.Math.max(0, cutCnt - freedom); m <= $wnd.Math.min(gs.longestPath - 1, cutCnt + freedom); m++) { + rowSum = total / (m + 1); + sumSoFar = 0; + index_0 = 1; + cuts = new ArrayList; + width_0 = $intern_60; + lastCutWidth = 0; + height = 0; + rowHeightMax = heights[0]; + if (m == 0) { + width_0 = total; + height = (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight)); + } + else { + while (index_0 < gs.longestPath) { + if (widthAtIndex[index_0 - 1] - sumSoFar >= rowSum) { + $add_3(cuts, valueOf_4(index_0)); + width_0 = $wnd.Math.max(width_0, widthAtIndex[index_0 - 1] - lastCutWidth); + height += rowHeightMax; + sumSoFar += widthAtIndex[index_0 - 1] - sumSoFar; + lastCutWidth = widthAtIndex[index_0 - 1]; + rowHeightMax = heights[index_0]; + } + rowHeightMax = $wnd.Math.max(rowHeightMax, heights[index_0]); + ++index_0; + } + height += rowHeightMax; + } + maxScale = $wnd.Math.min(1 / width_0, 1 / gs.dar / height); + if (maxScale > bestMaxScale) { + bestMaxScale = maxScale; + bestCuts = cuts; + } + } + return bestCuts; +} +; +_.guaranteeValid = function guaranteeValid_1(){ + return false; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_MSDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'MSDCutIndexHeuristic', 802); +function $performCuts(graph, gs, cuts){ + var cutIt, e, e$iterator, incEdges, index_0, it, l, n, n$iterator, newIndex, newLayer, nextCut, nodesToMove, oldLayer; + if (cuts.isEmpty()) { + return; + } + index_0 = 0; + newIndex = 0; + cutIt = cuts.iterator_0(); + nextCut = castTo(cutIt.next_1(), 19).value_0; + while (index_0 < gs.longestPath) { + if (index_0 == nextCut) { + newIndex = 0; + cutIt.hasNext_0()?(nextCut = castTo(cutIt.next_1(), 19).value_0):(nextCut = gs.longestPath + 1); + } + if (index_0 != newIndex) { + oldLayer = castTo($get_11(graph.layers, index_0), 29); + newLayer = castTo($get_11(graph.layers, newIndex), 29); + nodesToMove = newArrayList(oldLayer.nodes); + for (n$iterator = new ArrayList$1(nodesToMove); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + $setLayer(n, newLayer.nodes.array.length, newLayer); + if (newIndex == 0) { + incEdges = newArrayList($getIncomingEdges(n)); + for (e$iterator = new ArrayList$1(incEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $reverse_0(e, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + insertDummies(graph, e, 1); + } + } + } + } + ++newIndex; + ++index_0; + } + it = new AbstractList$ListIteratorImpl(graph.layers, 0); + while (it.i < it.this$01_0.size_1()) { + l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_56(graph, progressMonitor){ + var currentAR, cuts, gs, icic, sumWidth; + $begin(progressMonitor, 'Path-Like Graph Wrapping', 1); + if (graph.layers.array.length == 0) { + $done_0(progressMonitor); + return; + } + gs = new GraphStats(graph); + sumWidth = (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth) * gs.longestPath); + currentAR = sumWidth / (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth)); + if (gs.dar > currentAR) { + $done_0(progressMonitor); + return; + } + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + break; + case 0: + icic = new ARDCutIndexHeuristic; + break; + default:icic = new MSDCutIndexHeuristic; + } + cuts = icic.getCutIndexes(graph, gs); + if (!icic.guaranteeValid()) { + switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + $performCuts(graph, gs, cuts); + $done_0(progressMonitor); +} + +function SingleEdgeGraphWrapper(){ +} + +function validifyIndexesGreedily(gs, cuts){ + var cut, cutIt, offset, validCuts; + validCuts = new ArrayList; + offset = 0; + cutIt = cuts.iterator_0(); + while (cutIt.hasNext_0()) { + cut = valueOf_4(castTo(cutIt.next_1(), 19).value_0 + offset); + while (cut.value_0 < gs.longestPath && !$isCutAllowed(gs, cut.value_0)) { + cut = valueOf_4(cut.value_0 + 1); + ++offset; + } + if (cut.value_0 >= gs.longestPath) { + break; + } + validCuts.array[validCuts.array.length] = cut; + } + return validCuts; +} + +function validifyIndexesLookingBack(desiredCuts, validCuts){ + var cIdx, current, distHigher, distLower, finalCuts, iIdx, offset, select; + finalCuts = new ArrayList; + iIdx = 0; + cIdx = 0; + offset = 0; + while (iIdx < validCuts.array.length - 1 && cIdx < desiredCuts.size_1()) { + current = castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset; + while ((checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 < current) { + ++iIdx; + } + select = 0; + distLower = current - (checkCriticalElementIndex(iIdx, validCuts.array.length) , castTo(validCuts.array[iIdx], 19)).value_0; + distHigher = (checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 - current; + distLower > distHigher && ++select; + $add_3(finalCuts, (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19))); + offset += (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0 - current; + ++cIdx; + while (cIdx < desiredCuts.size_1() && castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset <= (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0) { + ++cIdx; + } + iIdx += 1 + select; + } + return finalCuts; +} + +function validifyIndexesLookingBack_0(gs, desiredCuts){ + var i, validCuts; + if (desiredCuts.isEmpty()) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + validCuts = new ArrayList; + $add_3(validCuts, valueOf_4($intern_42)); + for (i = 1; i < gs.longestPath; ++i) { + gs.cutsAllowed == null && $initCutAllowed(gs); + gs.cutsAllowed[i] && $add_3(validCuts, valueOf_4(i)); + } + if (validCuts.array.length == 1) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + $add_3(validCuts, valueOf_4($intern_0)); + return validifyIndexesLookingBack(desiredCuts, validCuts); +} + +defineClass(1617, 1, $intern_105, SingleEdgeGraphWrapper); +_.process = function process_53(graph, progressMonitor){ + $process_56(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_SingleEdgeGraphWrapper_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'SingleEdgeGraphWrapper', 1617); +function $clinit_CenterEdgeLabelPlacementStrategy(){ + $clinit_CenterEdgeLabelPlacementStrategy = emptyMethod; + MEDIAN_LAYER = new CenterEdgeLabelPlacementStrategy('MEDIAN_LAYER', 0); + TAIL_LAYER = new CenterEdgeLabelPlacementStrategy('TAIL_LAYER', 1); + HEAD_LAYER = new CenterEdgeLabelPlacementStrategy('HEAD_LAYER', 2); + SPACE_EFFICIENT_LAYER = new CenterEdgeLabelPlacementStrategy('SPACE_EFFICIENT_LAYER', 3); + WIDEST_LAYER = new CenterEdgeLabelPlacementStrategy('WIDEST_LAYER', 4); + CENTER_LAYER = new CenterEdgeLabelPlacementStrategy('CENTER_LAYER', 5); +} + +function CenterEdgeLabelPlacementStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_38(name_0){ + $clinit_CenterEdgeLabelPlacementStrategy(); + return valueOf(($clinit_CenterEdgeLabelPlacementStrategy$Map() , $MAP_26), name_0); +} + +function values_44(){ + $clinit_CenterEdgeLabelPlacementStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]); +} + +defineClass(227, 22, {3:1, 35:1, 22:1, 227:1}, CenterEdgeLabelPlacementStrategy); +var CENTER_LAYER, HEAD_LAYER, MEDIAN_LAYER, SPACE_EFFICIENT_LAYER, TAIL_LAYER, WIDEST_LAYER; +var Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CenterEdgeLabelPlacementStrategy', 227, Ljava_lang_Enum_2_classLit, values_44, valueOf_38); +function $clinit_CenterEdgeLabelPlacementStrategy$Map(){ + $clinit_CenterEdgeLabelPlacementStrategy$Map = emptyMethod; + $MAP_26 = createValueOfMap(($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]))); +} + +var $MAP_26; +function $clinit_ConstraintCalculationStrategy(){ + $clinit_ConstraintCalculationStrategy = emptyMethod; + QUADRATIC = new ConstraintCalculationStrategy('QUADRATIC', 0); + SCANLINE = new ConstraintCalculationStrategy('SCANLINE', 1); +} + +function ConstraintCalculationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_39(name_0){ + $clinit_ConstraintCalculationStrategy(); + return valueOf(($clinit_ConstraintCalculationStrategy$Map() , $MAP_27), name_0); +} + +function values_45(){ + $clinit_ConstraintCalculationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]); +} + +defineClass(422, 22, {3:1, 35:1, 22:1, 422:1}, ConstraintCalculationStrategy); +var QUADRATIC, SCANLINE; +var Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ConstraintCalculationStrategy', 422, Ljava_lang_Enum_2_classLit, values_45, valueOf_39); +function $clinit_ConstraintCalculationStrategy$Map(){ + $clinit_ConstraintCalculationStrategy$Map = emptyMethod; + $MAP_27 = createValueOfMap(($clinit_ConstraintCalculationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]))); +} + +var $MAP_27; +function $clinit_CrossingMinimizationStrategy(){ + $clinit_CrossingMinimizationStrategy = emptyMethod; + LAYER_SWEEP = new CrossingMinimizationStrategy('LAYER_SWEEP', 0); + INTERACTIVE_1 = new CrossingMinimizationStrategy('INTERACTIVE', 1); + NONE_1 = new CrossingMinimizationStrategy('NONE', 2); +} + +function $create_3(this$static){ + switch (this$static.ordinal) { + case 0: + return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER)); + case 1: + return new InteractiveCrossingMinimizer; + case 2: + return new NoCrossingMinimizer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the crossing minimizer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CrossingMinimizationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_40(name_0){ + $clinit_CrossingMinimizationStrategy(); + return valueOf(($clinit_CrossingMinimizationStrategy$Map() , $MAP_28), name_0); +} + +function values_46(){ + $clinit_CrossingMinimizationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]); +} + +defineClass(314, 22, {3:1, 35:1, 22:1, 314:1, 246:1, 234:1}, CrossingMinimizationStrategy); +_.create_1 = function create_7(){ + return $create_3(this); +} +; +_.create_2 = function create_6(){ + return $create_3(this); +} +; +var INTERACTIVE_1, LAYER_SWEEP, NONE_1; +var Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CrossingMinimizationStrategy', 314, Ljava_lang_Enum_2_classLit, values_46, valueOf_40); +function $clinit_CrossingMinimizationStrategy$Map(){ + $clinit_CrossingMinimizationStrategy$Map = emptyMethod; + $MAP_28 = createValueOfMap(($clinit_CrossingMinimizationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]))); +} + +var $MAP_28; +function $clinit_CuttingStrategy(){ + $clinit_CuttingStrategy = emptyMethod; + ARD = new CuttingStrategy('ARD', 0); + MSD = new CuttingStrategy('MSD', 1); + MANUAL = new CuttingStrategy('MANUAL', 2); +} + +function CuttingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_41(name_0){ + $clinit_CuttingStrategy(); + return valueOf(($clinit_CuttingStrategy$Map() , $MAP_29), name_0); +} + +function values_47(){ + $clinit_CuttingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]); +} + +defineClass(337, 22, {3:1, 35:1, 22:1, 337:1}, CuttingStrategy); +var ARD, MANUAL, MSD; +var Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CuttingStrategy', 337, Ljava_lang_Enum_2_classLit, values_47, valueOf_41); +function $clinit_CuttingStrategy$Map(){ + $clinit_CuttingStrategy$Map = emptyMethod; + $MAP_29 = createValueOfMap(($clinit_CuttingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]))); +} + +var $MAP_29; +function $clinit_CycleBreakingStrategy(){ + $clinit_CycleBreakingStrategy = emptyMethod; + GREEDY = new CycleBreakingStrategy('GREEDY', 0); + DEPTH_FIRST = new CycleBreakingStrategy('DEPTH_FIRST', 1); + INTERACTIVE_2 = new CycleBreakingStrategy('INTERACTIVE', 2); + MODEL_ORDER = new CycleBreakingStrategy('MODEL_ORDER', 3); + GREEDY_MODEL_ORDER = new CycleBreakingStrategy('GREEDY_MODEL_ORDER', 4); +} + +function $create_4(this$static){ + switch (this$static.ordinal) { + case 0: + return new GreedyCycleBreaker; + case 1: + return new DepthFirstCycleBreaker; + case 2: + return new InteractiveCycleBreaker; + case 3: + return new ModelOrderCycleBreaker; + case 4: + return new GreedyModelOrderCycleBreaker; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the cycle breaker ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CycleBreakingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_42(name_0){ + $clinit_CycleBreakingStrategy(); + return valueOf(($clinit_CycleBreakingStrategy$Map() , $MAP_30), name_0); +} + +function values_48(){ + $clinit_CycleBreakingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]); +} + +defineClass(335, 22, {3:1, 35:1, 22:1, 335:1, 246:1, 234:1}, CycleBreakingStrategy); +_.create_1 = function create_9(){ + return $create_4(this); +} +; +_.create_2 = function create_8(){ + return $create_4(this); +} +; +var DEPTH_FIRST, GREEDY, GREEDY_MODEL_ORDER, INTERACTIVE_2, MODEL_ORDER; +var Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CycleBreakingStrategy', 335, Ljava_lang_Enum_2_classLit, values_48, valueOf_42); +function $clinit_CycleBreakingStrategy$Map(){ + $clinit_CycleBreakingStrategy$Map = emptyMethod; + $MAP_30 = createValueOfMap(($clinit_CycleBreakingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]))); +} + +var $MAP_30; +function $clinit_DirectionCongruency(){ + $clinit_DirectionCongruency = emptyMethod; + READING_DIRECTION = new DirectionCongruency('READING_DIRECTION', 0); + ROTATION = new DirectionCongruency('ROTATION', 1); +} + +function DirectionCongruency(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_43(name_0){ + $clinit_DirectionCongruency(); + return valueOf(($clinit_DirectionCongruency$Map() , $MAP_31), name_0); +} + +function values_49(){ + $clinit_DirectionCongruency(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]); +} + +defineClass(419, 22, {3:1, 35:1, 22:1, 419:1}, DirectionCongruency); +var READING_DIRECTION, ROTATION; +var Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'DirectionCongruency', 419, Ljava_lang_Enum_2_classLit, values_49, valueOf_43); +function $clinit_DirectionCongruency$Map(){ + $clinit_DirectionCongruency$Map = emptyMethod; + $MAP_31 = createValueOfMap(($clinit_DirectionCongruency() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]))); +} + +var $MAP_31; +function $clinit_EdgeConstraint(){ + $clinit_EdgeConstraint = emptyMethod; + NONE_2 = new EdgeConstraint('NONE', 0); + INCOMING_ONLY = new EdgeConstraint('INCOMING_ONLY', 1); + OUTGOING_ONLY = new EdgeConstraint('OUTGOING_ONLY', 2); +} + +function EdgeConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_44(name_0){ + $clinit_EdgeConstraint(); + return valueOf(($clinit_EdgeConstraint$Map() , $MAP_32), name_0); +} + +function values_50(){ + $clinit_EdgeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]); +} + +defineClass(450, 22, {3:1, 35:1, 22:1, 450:1}, EdgeConstraint); +var INCOMING_ONLY, NONE_2, OUTGOING_ONLY; +var Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeConstraint', 450, Ljava_lang_Enum_2_classLit, values_50, valueOf_44); +function $clinit_EdgeConstraint$Map(){ + $clinit_EdgeConstraint$Map = emptyMethod; + $MAP_32 = createValueOfMap(($clinit_EdgeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]))); +} + +var $MAP_32; +function $clinit_EdgeLabelSideSelection(){ + $clinit_EdgeLabelSideSelection = emptyMethod; + ALWAYS_UP = new EdgeLabelSideSelection('ALWAYS_UP', 0); + ALWAYS_DOWN = new EdgeLabelSideSelection('ALWAYS_DOWN', 1); + DIRECTION_UP = new EdgeLabelSideSelection('DIRECTION_UP', 2); + DIRECTION_DOWN = new EdgeLabelSideSelection('DIRECTION_DOWN', 3); + SMART_UP = new EdgeLabelSideSelection('SMART_UP', 4); + SMART_DOWN = new EdgeLabelSideSelection('SMART_DOWN', 5); +} + +function $transpose_2(this$static){ + switch (this$static.ordinal) { + case 0: + return ALWAYS_DOWN; + case 1: + return ALWAYS_UP; + case 2: + return DIRECTION_DOWN; + case 3: + return DIRECTION_UP; + case 4: + return SMART_DOWN; + case 5: + return SMART_UP; + default:return null; + } +} + +function EdgeLabelSideSelection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_45(name_0){ + $clinit_EdgeLabelSideSelection(); + return valueOf(($clinit_EdgeLabelSideSelection$Map() , $MAP_33), name_0); +} + +function values_51(){ + $clinit_EdgeLabelSideSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]); +} + +defineClass(276, 22, {3:1, 35:1, 22:1, 276:1}, EdgeLabelSideSelection); +var ALWAYS_DOWN, ALWAYS_UP, DIRECTION_DOWN, DIRECTION_UP, SMART_DOWN, SMART_UP; +var Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeLabelSideSelection', 276, Ljava_lang_Enum_2_classLit, values_51, valueOf_45); +function $clinit_EdgeLabelSideSelection$Map(){ + $clinit_EdgeLabelSideSelection$Map = emptyMethod; + $MAP_33 = createValueOfMap(($clinit_EdgeLabelSideSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]))); +} + +var $MAP_33; +function $clinit_EdgeStraighteningStrategy(){ + $clinit_EdgeStraighteningStrategy = emptyMethod; + NONE_3 = new EdgeStraighteningStrategy('NONE', 0); + IMPROVE_STRAIGHTNESS = new EdgeStraighteningStrategy('IMPROVE_STRAIGHTNESS', 1); +} + +function EdgeStraighteningStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_46(name_0){ + $clinit_EdgeStraighteningStrategy(); + return valueOf(($clinit_EdgeStraighteningStrategy$Map() , $MAP_34), name_0); +} + +function values_52(){ + $clinit_EdgeStraighteningStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]); +} + +defineClass(479, 22, {3:1, 35:1, 22:1, 479:1}, EdgeStraighteningStrategy); +var IMPROVE_STRAIGHTNESS, NONE_3; +var Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeStraighteningStrategy', 479, Ljava_lang_Enum_2_classLit, values_52, valueOf_46); +function $clinit_EdgeStraighteningStrategy$Map(){ + $clinit_EdgeStraighteningStrategy$Map = emptyMethod; + $MAP_34 = createValueOfMap(($clinit_EdgeStraighteningStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]))); +} + +var $MAP_34; +function $clinit_FixedAlignment(){ + $clinit_FixedAlignment = emptyMethod; + NONE_4 = new FixedAlignment('NONE', 0); + LEFTUP = new FixedAlignment('LEFTUP', 1); + RIGHTUP = new FixedAlignment('RIGHTUP', 2); + LEFTDOWN = new FixedAlignment('LEFTDOWN', 3); + RIGHTDOWN = new FixedAlignment('RIGHTDOWN', 4); + BALANCED = new FixedAlignment('BALANCED', 5); +} + +function FixedAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_47(name_0){ + $clinit_FixedAlignment(); + return valueOf(($clinit_FixedAlignment$Map() , $MAP_35), name_0); +} + +function values_53(){ + $clinit_FixedAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]); +} + +defineClass(274, 22, {3:1, 35:1, 22:1, 274:1}, FixedAlignment); +var BALANCED, LEFTDOWN, LEFTUP, NONE_4, RIGHTDOWN, RIGHTUP; +var Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'FixedAlignment', 274, Ljava_lang_Enum_2_classLit, values_53, valueOf_47); +function $clinit_FixedAlignment$Map(){ + $clinit_FixedAlignment$Map = emptyMethod; + $MAP_35 = createValueOfMap(($clinit_FixedAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]))); +} + +var $MAP_35; +function $clinit_GraphCompactionStrategy(){ + $clinit_GraphCompactionStrategy = emptyMethod; + NONE_5 = new GraphCompactionStrategy('NONE', 0); + LEFT_2 = new GraphCompactionStrategy('LEFT', 1); + RIGHT_2 = new GraphCompactionStrategy('RIGHT', 2); + LEFT_RIGHT_CONSTRAINT_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONSTRAINT_LOCKING', 3); + LEFT_RIGHT_CONNECTION_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONNECTION_LOCKING', 4); + EDGE_LENGTH = new GraphCompactionStrategy('EDGE_LENGTH', 5); +} + +function GraphCompactionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_48(name_0){ + $clinit_GraphCompactionStrategy(); + return valueOf(($clinit_GraphCompactionStrategy$Map() , $MAP_36), name_0); +} + +function values_54(){ + $clinit_GraphCompactionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]); +} + +defineClass(275, 22, {3:1, 35:1, 22:1, 275:1}, GraphCompactionStrategy); +var EDGE_LENGTH, LEFT_2, LEFT_RIGHT_CONNECTION_LOCKING, LEFT_RIGHT_CONSTRAINT_LOCKING, NONE_5, RIGHT_2; +var Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphCompactionStrategy', 275, Ljava_lang_Enum_2_classLit, values_54, valueOf_48); +function $clinit_GraphCompactionStrategy$Map(){ + $clinit_GraphCompactionStrategy$Map = emptyMethod; + $MAP_36 = createValueOfMap(($clinit_GraphCompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]))); +} + +var $MAP_36; +function $clinit_GraphProperties(){ + $clinit_GraphProperties = emptyMethod; + COMMENTS = new GraphProperties('COMMENTS', 0); + EXTERNAL_PORTS = new GraphProperties('EXTERNAL_PORTS', 1); + HYPEREDGES = new GraphProperties('HYPEREDGES', 2); + HYPERNODES = new GraphProperties('HYPERNODES', 3); + NON_FREE_PORTS = new GraphProperties('NON_FREE_PORTS', 4); + NORTH_SOUTH_PORTS = new GraphProperties('NORTH_SOUTH_PORTS', 5); + SELF_LOOPS = new GraphProperties('SELF_LOOPS', 6); + CENTER_LABELS = new GraphProperties('CENTER_LABELS', 7); + END_LABELS = new GraphProperties('END_LABELS', 8); + PARTITIONS = new GraphProperties('PARTITIONS', 9); +} + +function GraphProperties(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_49(name_0){ + $clinit_GraphProperties(); + return valueOf(($clinit_GraphProperties$Map() , $MAP_37), name_0); +} + +function values_55(){ + $clinit_GraphProperties(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]); +} + +defineClass(256, 22, {3:1, 35:1, 22:1, 256:1}, GraphProperties); +var CENTER_LABELS, COMMENTS, END_LABELS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, PARTITIONS, SELF_LOOPS; +var Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphProperties', 256, Ljava_lang_Enum_2_classLit, values_55, valueOf_49); +function $clinit_GraphProperties$Map(){ + $clinit_GraphProperties$Map = emptyMethod; + $MAP_37 = createValueOfMap(($clinit_GraphProperties() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]))); +} + +var $MAP_37; +function $clinit_GreedySwitchType(){ + $clinit_GreedySwitchType = emptyMethod; + ONE_SIDED = new GreedySwitchType('ONE_SIDED', 0); + TWO_SIDED = new GreedySwitchType('TWO_SIDED', 1); + OFF = new GreedySwitchType('OFF', 2); +} + +function GreedySwitchType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_50(name_0){ + $clinit_GreedySwitchType(); + return valueOf(($clinit_GreedySwitchType$Map() , $MAP_38), name_0); +} + +function values_56(){ + $clinit_GreedySwitchType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]); +} + +defineClass(292, 22, {3:1, 35:1, 22:1, 292:1}, GreedySwitchType); +var OFF, ONE_SIDED, TWO_SIDED; +var Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GreedySwitchType', 292, Ljava_lang_Enum_2_classLit, values_56, valueOf_50); +function $clinit_GreedySwitchType$Map(){ + $clinit_GreedySwitchType$Map = emptyMethod; + $MAP_38 = createValueOfMap(($clinit_GreedySwitchType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]))); +} + +var $MAP_38; +function $clinit_InLayerConstraint(){ + $clinit_InLayerConstraint = emptyMethod; + NONE_6 = new InLayerConstraint('NONE', 0); + TOP_1 = new InLayerConstraint('TOP', 1); + BOTTOM_0 = new InLayerConstraint('BOTTOM', 2); +} + +function InLayerConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_51(name_0){ + $clinit_InLayerConstraint(); + return valueOf(($clinit_InLayerConstraint$Map() , $MAP_39), name_0); +} + +function values_57(){ + $clinit_InLayerConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]); +} + +defineClass(303, 22, {3:1, 35:1, 22:1, 303:1}, InLayerConstraint); +var BOTTOM_0, NONE_6, TOP_1; +var Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InLayerConstraint', 303, Ljava_lang_Enum_2_classLit, values_57, valueOf_51); +function $clinit_InLayerConstraint$Map(){ + $clinit_InLayerConstraint$Map = emptyMethod; + $MAP_39 = createValueOfMap(($clinit_InLayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]))); +} + +var $MAP_39; +function $clinit_InteractiveReferencePoint(){ + $clinit_InteractiveReferencePoint = emptyMethod; + CENTER_3 = new InteractiveReferencePoint('CENTER', 0); + TOP_LEFT = new InteractiveReferencePoint('TOP_LEFT', 1); +} + +function InteractiveReferencePoint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_52(name_0){ + $clinit_InteractiveReferencePoint(); + return valueOf(($clinit_InteractiveReferencePoint$Map() , $MAP_40), name_0); +} + +function values_58(){ + $clinit_InteractiveReferencePoint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]); +} + +defineClass(420, 22, {3:1, 35:1, 22:1, 420:1}, InteractiveReferencePoint); +var CENTER_3, TOP_LEFT; +var Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InteractiveReferencePoint', 420, Ljava_lang_Enum_2_classLit, values_58, valueOf_52); +function $clinit_InteractiveReferencePoint$Map(){ + $clinit_InteractiveReferencePoint$Map = emptyMethod; + $MAP_40 = createValueOfMap(($clinit_InteractiveReferencePoint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]))); +} + +var $MAP_40; +function $clinit_InternalProperties_1(){ + $clinit_InternalProperties_1 = emptyMethod; + var all, all0; + ORIGIN_0 = new Property('origin'); + COORDINATE_SYSTEM_ORIGIN = new Property('coordinateOrigin'); + PROCESSORS = new Property('processors'); + COMPOUND_NODE = new Property_0('compoundNode', ($clinit_Boolean() , false)); + INSIDE_CONNECTIONS = new Property_0('insideConnections', false); + ORIGINAL_BENDPOINTS = new Property('originalBendpoints'); + ORIGINAL_DUMMY_NODE_POSITION = new Property('originalDummyNodePosition'); + ORIGINAL_LABEL_EDGE = new Property('originalLabelEdge'); + REPRESENTED_LABELS = new Property('representedLabels'); + END_LABELS_0 = new Property('endLabels'); + END_LABEL_EDGE = new Property('endLabel.origin'); + LABEL_SIDE = new Property_0('labelSide', ($clinit_LabelSide() , UNKNOWN)); + MAX_EDGE_THICKNESS = new Property_0('maxEdgeThickness', 0); + REVERSED = new Property_0('reversed', false); + RANDOM_0 = new Property('random'); + LONG_EDGE_SOURCE = new Property_0('longEdgeSource', null); + LONG_EDGE_TARGET = new Property_0('longEdgeTarget', null); + LONG_EDGE_HAS_LABEL_DUMMIES = new Property_0('longEdgeHasLabelDummies', false); + LONG_EDGE_BEFORE_LABEL_DUMMY = new Property_0('longEdgeBeforeLabelDummy', false); + EDGE_CONSTRAINT = new Property_0('edgeConstraint', ($clinit_EdgeConstraint() , NONE_2)); + IN_LAYER_LAYOUT_UNIT = new Property('inLayerLayoutUnit'); + IN_LAYER_CONSTRAINT = new Property_0('inLayerConstraint', ($clinit_InLayerConstraint() , NONE_6)); + IN_LAYER_SUCCESSOR_CONSTRAINTS = new Property_0('inLayerSuccessorConstraint', new ArrayList); + IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES = new Property_0('inLayerSuccessorConstraintBetweenNonDummies', false); + PORT_DUMMY = new Property('portDummy'); + CROSSING_HINT = new Property_0('crossingHint', valueOf_4(0)); + GRAPH_PROPERTIES = new Property_0('graphProperties', (all0 = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0))); + EXT_PORT_SIDE = new Property_0('externalPortSide', ($clinit_PortSide() , UNDEFINED_5)); + EXT_PORT_SIZE = new Property_0('externalPortSize', new KVector); + EXT_PORT_REPLACED_DUMMIES = new Property('externalPortReplacedDummies'); + EXT_PORT_REPLACED_DUMMY = new Property('externalPortReplacedDummy'); + EXT_PORT_CONNECTIONS = new Property_0('externalPortConnections', (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + PORT_RATIO_OR_POSITION_0 = new Property_0('portRatioOrPosition', 0); + BARYCENTER_ASSOCIATES = new Property('barycenterAssociates'); + TOP_COMMENTS = new Property('TopSideComments'); + BOTTOM_COMMENTS = new Property('BottomSideComments'); + COMMENT_CONN_PORT = new Property('CommentConnectionPort'); + INPUT_COLLECT = new Property_0('inputCollect', false); + OUTPUT_COLLECT = new Property_0('outputCollect', false); + CYCLIC = new Property_0('cyclic', false); + CROSS_HIERARCHY_MAP = new Property('crossHierarchyMap'); + TARGET_OFFSET = new Property('targetOffset'); + new Property_0('splineLabelSize', new KVector); + SPACINGS = new Property('spacings'); + PARTITION_DUMMY = new Property_0('partitionConstraint', false); + BREAKING_POINT_INFO = new Property('breakingPoint.info'); + SPLINE_SURVIVING_EDGE = new Property('splines.survivingEdge'); + SPLINE_ROUTE_START = new Property('splines.route.start'); + SPLINE_EDGE_CHAIN = new Property('splines.edgeChain'); + ORIGINAL_PORT_CONSTRAINTS = new Property('originalPortConstraints'); + SELF_LOOP_HOLDER = new Property('selfLoopHolder'); + SPLINE_NS_PORT_Y_COORD = new Property('splines.nsPortY'); + MODEL_ORDER_0 = new Property('modelOrder'); + LONG_EDGE_TARGET_NODE = new Property('longEdgeTargetNode'); + FIRST_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); + SECOND_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); + HIDDEN_NODES = new Property('layerConstraints.hiddenNodes'); + ORIGINAL_OPPOSITE_PORT = new Property('layerConstraints.opposidePort'); + TARGET_NODE_MODEL_ORDER = new Property('targetNode.modelOrder'); +} + +var BARYCENTER_ASSOCIATES, BOTTOM_COMMENTS, BREAKING_POINT_INFO, COMMENT_CONN_PORT, COMPOUND_NODE, COORDINATE_SYSTEM_ORIGIN, CROSSING_HINT, CROSS_HIERARCHY_MAP, CYCLIC, EDGE_CONSTRAINT, END_LABELS_0, END_LABEL_EDGE, EXT_PORT_CONNECTIONS, EXT_PORT_REPLACED_DUMMIES, EXT_PORT_REPLACED_DUMMY, EXT_PORT_SIDE, EXT_PORT_SIZE, FIRST_TRY_WITH_INITIAL_ORDER, GRAPH_PROPERTIES, HIDDEN_NODES, INPUT_COLLECT, INSIDE_CONNECTIONS, IN_LAYER_CONSTRAINT, IN_LAYER_LAYOUT_UNIT, IN_LAYER_SUCCESSOR_CONSTRAINTS, IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES, LABEL_SIDE, LONG_EDGE_BEFORE_LABEL_DUMMY, LONG_EDGE_HAS_LABEL_DUMMIES, LONG_EDGE_SOURCE, LONG_EDGE_TARGET, LONG_EDGE_TARGET_NODE, MAX_EDGE_THICKNESS, MODEL_ORDER_0, ORIGIN_0, ORIGINAL_BENDPOINTS, ORIGINAL_DUMMY_NODE_POSITION, ORIGINAL_LABEL_EDGE, ORIGINAL_OPPOSITE_PORT, ORIGINAL_PORT_CONSTRAINTS, OUTPUT_COLLECT, PARTITION_DUMMY, PORT_DUMMY, PORT_RATIO_OR_POSITION_0, PROCESSORS, RANDOM_0, REPRESENTED_LABELS, REVERSED, SECOND_TRY_WITH_INITIAL_ORDER, SELF_LOOP_HOLDER, SPACINGS, SPLINE_EDGE_CHAIN, SPLINE_NS_PORT_Y_COORD, SPLINE_ROUTE_START, SPLINE_SURVIVING_EDGE, TARGET_NODE_MODEL_ORDER, TARGET_OFFSET, TOP_COMMENTS; +function $clinit_LayerConstraint(){ + $clinit_LayerConstraint = emptyMethod; + NONE_7 = new LayerConstraint('NONE', 0); + FIRST = new LayerConstraint('FIRST', 1); + FIRST_SEPARATE_0 = new LayerConstraint('FIRST_SEPARATE', 2); + LAST = new LayerConstraint('LAST', 3); + LAST_SEPARATE_0 = new LayerConstraint('LAST_SEPARATE', 4); +} + +function LayerConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_53(name_0){ + $clinit_LayerConstraint(); + return valueOf(($clinit_LayerConstraint$Map() , $MAP_41), name_0); +} + +function values_59(){ + $clinit_LayerConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]); +} + +defineClass(163, 22, {3:1, 35:1, 22:1, 163:1}, LayerConstraint); +var FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0, NONE_7; +var Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayerConstraint', 163, Ljava_lang_Enum_2_classLit, values_59, valueOf_53); +function $clinit_LayerConstraint$Map(){ + $clinit_LayerConstraint$Map = emptyMethod; + $MAP_41 = createValueOfMap(($clinit_LayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]))); +} + +var $MAP_41; +function $clinit_LayeredMetaDataProvider(){ + $clinit_LayeredMetaDataProvider = emptyMethod; + DIRECTION_CONGRUENCY_DEFAULT = ($clinit_DirectionCongruency() , READING_DIRECTION); + DIRECTION_CONGRUENCY = new Property_1('org.eclipse.elk.layered.directionCongruency', DIRECTION_CONGRUENCY_DEFAULT); + FEEDBACK_EDGES = new Property_1('org.eclipse.elk.layered.feedbackEdges', ($clinit_Boolean() , false)); + INTERACTIVE_REFERENCE_POINT_DEFAULT = ($clinit_InteractiveReferencePoint() , CENTER_3); + INTERACTIVE_REFERENCE_POINT = new Property_1('org.eclipse.elk.layered.interactiveReferencePoint', INTERACTIVE_REFERENCE_POINT_DEFAULT); + MERGE_EDGES = new Property_1('org.eclipse.elk.layered.mergeEdges', false); + MERGE_HIERARCHY_EDGES = new Property_1('org.eclipse.elk.layered.mergeHierarchyEdges', true); + ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES = new Property_1('org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', false); + PORT_SORTING_STRATEGY_DEFAULT = ($clinit_PortSortingStrategy() , INPUT_ORDER); + PORT_SORTING_STRATEGY = new Property_1('org.eclipse.elk.layered.portSortingStrategy', PORT_SORTING_STRATEGY_DEFAULT); + valueOf_4(1); + THOROUGHNESS = new Property_1('org.eclipse.elk.layered.thoroughness', valueOf_4(7)); + UNNECESSARY_BENDPOINTS = new Property_1('org.eclipse.elk.layered.unnecessaryBendpoints', false); + GENERATE_POSITION_AND_LAYER_IDS = new Property_1('org.eclipse.elk.layered.generatePositionAndLayerIds', false); + CYCLE_BREAKING_STRATEGY_DEFAULT = ($clinit_CycleBreakingStrategy() , GREEDY); + CYCLE_BREAKING_STRATEGY = new Property_1('org.eclipse.elk.layered.cycleBreaking.strategy', CYCLE_BREAKING_STRATEGY_DEFAULT); + LAYERING_STRATEGY_DEFAULT = ($clinit_LayeringStrategy() , NETWORK_SIMPLEX); + LAYERING_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.strategy', LAYERING_STRATEGY_DEFAULT); + LAYERING_LAYER_CONSTRAINT_DEFAULT = ($clinit_LayerConstraint() , NONE_7); + LAYERING_LAYER_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerConstraint', LAYERING_LAYER_CONSTRAINT_DEFAULT); + valueOf_4(-1); + LAYERING_LAYER_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerChoiceConstraint', valueOf_4(-1)); + valueOf_4(-1); + LAYERING_LAYER_ID = new Property_1('org.eclipse.elk.layered.layering.layerId', valueOf_4(-1)); + valueOf_4(-1); + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', valueOf_4(4)); + valueOf_4(-1); + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', valueOf_4(2)); + LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT = ($clinit_NodePromotionStrategy() , NONE_9); + LAYERING_NODE_PROMOTION_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.strategy', LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT); + valueOf_4(0); + LAYERING_NODE_PROMOTION_MAX_ITERATIONS = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.maxIterations', valueOf_4(0)); + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND = new Property_1('org.eclipse.elk.layered.layering.coffmanGraham.layerBound', valueOf_4($intern_0)); + CROSSING_MINIMIZATION_STRATEGY_DEFAULT = ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP); + CROSSING_MINIMIZATION_STRATEGY = new Property_1('org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_STRATEGY_DEFAULT); + CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', false); + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS = new Property_1('org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 0.1); + CROSSING_MINIMIZATION_SEMI_INTERACTIVE = new Property_1('org.eclipse.elk.layered.crossingMinimization.semiInteractive', false); + valueOf_4(-1); + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', valueOf_4(-1)); + valueOf_4(-1); + CROSSING_MINIMIZATION_POSITION_ID = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionId', valueOf_4(-1)); + valueOf_4(0); + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', valueOf_4(40)); + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT = ($clinit_GreedySwitchType() , TWO_SIDED); + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT); + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT = OFF; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT); + NODE_PLACEMENT_STRATEGY_DEFAULT = ($clinit_NodePlacementStrategy() , BRANDES_KOEPF); + NODE_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_STRATEGY_DEFAULT); + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES = new Property('org.eclipse.elk.layered.nodePlacement.favorStraightEdges'); + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT = ($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS); + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT); + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT = ($clinit_FixedAlignment() , NONE_4); + NODE_PLACEMENT_BK_FIXED_ALIGNMENT = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT); + new ExclusiveBounds$ExclusiveLowerBound; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING = new Property_1('org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 0.3); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY = new Property('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT = ($clinit_NodeFlexibility() , NONE_8); + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT = new Property_1('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT); + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT = ($clinit_SelfLoopDistributionStrategy() , NORTH_2); + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT); + EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT = ($clinit_SelfLoopOrderingStrategy() , STACKED); + EDGE_ROUTING_SELF_LOOP_ORDERING = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT); + EDGE_ROUTING_SPLINES_MODE_DEFAULT = ($clinit_SplineRoutingMode() , SLOPPY); + EDGE_ROUTING_SPLINES_MODE = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_MODE_DEFAULT); + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 0.2); + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH = new Property_1('org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 2); + SPACING_BASE_VALUE = new Property_1('org.eclipse.elk.layered.spacing.baseValue', null); + SPACING_EDGE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', 10); + SPACING_EDGE_EDGE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', 10); + SPACING_NODE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', 20); + valueOf_4(0); + PRIORITY_DIRECTION = new Property_1('org.eclipse.elk.layered.priority.direction', valueOf_4(0)); + valueOf_4(0); + PRIORITY_SHORTNESS = new Property_1('org.eclipse.elk.layered.priority.shortness', valueOf_4(0)); + valueOf_4(0); + PRIORITY_STRAIGHTNESS = new Property_1('org.eclipse.elk.layered.priority.straightness', valueOf_4(0)); + COMPACTION_CONNECTED_COMPONENTS = new Property_1('org.eclipse.elk.layered.compaction.connectedComponents', false); + COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT = ($clinit_GraphCompactionStrategy() , NONE_5); + COMPACTION_POST_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.strategy', COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT); + COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT = ($clinit_ConstraintCalculationStrategy() , SCANLINE); + COMPACTION_POST_COMPACTION_CONSTRAINTS = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.constraints', COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT); + HIGH_DEGREE_NODES_TREATMENT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treatment', false); + valueOf_4(0); + HIGH_DEGREE_NODES_THRESHOLD = new Property_1('org.eclipse.elk.layered.highDegreeNodes.threshold', valueOf_4(16)); + valueOf_4(0); + HIGH_DEGREE_NODES_TREE_HEIGHT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treeHeight', valueOf_4(5)); + WRAPPING_STRATEGY_DEFAULT = ($clinit_WrappingStrategy() , OFF_0); + WRAPPING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.strategy', WRAPPING_STRATEGY_DEFAULT); + WRAPPING_ADDITIONAL_EDGE_SPACING = new Property_1('org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 10); + WRAPPING_CORRECTION_FACTOR = new Property_1('org.eclipse.elk.layered.wrapping.correctionFactor', 1); + WRAPPING_CUTTING_STRATEGY_DEFAULT = ($clinit_CuttingStrategy() , MSD); + WRAPPING_CUTTING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_STRATEGY_DEFAULT); + WRAPPING_CUTTING_CUTS = new Property('org.eclipse.elk.layered.wrapping.cutting.cuts'); + WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT = valueOf_4(1); + valueOf_4(0); + WRAPPING_CUTTING_MSD_FREEDOM = new Property_1('org.eclipse.elk.layered.wrapping.cutting.msd.freedom', WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT); + WRAPPING_VALIDIFY_STRATEGY_DEFAULT = ($clinit_ValidifyStrategy() , GREEDY_0); + WRAPPING_VALIDIFY_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.validify.strategy', WRAPPING_VALIDIFY_STRATEGY_DEFAULT); + WRAPPING_VALIDIFY_FORBIDDEN_INDICES = new Property('org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'); + WRAPPING_MULTI_EDGE_IMPROVE_CUTS = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 2); + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', true); + EDGE_LABELS_SIDE_SELECTION_DEFAULT = ($clinit_EdgeLabelSideSelection() , SMART_DOWN); + EDGE_LABELS_SIDE_SELECTION = new Property_1('org.eclipse.elk.layered.edgeLabels.sideSelection', EDGE_LABELS_SIDE_SELECTION_DEFAULT); + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT = ($clinit_CenterEdgeLabelPlacementStrategy() , MEDIAN_LAYER); + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT = ($clinit_OrderingStrategy() , NONE_10); + CONSIDER_MODEL_ORDER_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.strategy', CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_NO_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.considerModelOrder.noModelOrder', false); + CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT = ($clinit_ComponentOrderingStrategy() , NONE); + CONSIDER_MODEL_ORDER_COMPONENTS = new Property_1('org.eclipse.elk.layered.considerModelOrder.components', CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT); + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT = ($clinit_LongEdgeOrderingStrategy() , DUMMY_NODE_OVER); + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT); + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 0); + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 0); + INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0 = INTERACTIVE_2; + INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1 = INTERACTIVE_1; + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0 = COFFMAN_GRAHAM; + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0 = ($clinit_HierarchyHandling() , INCLUDE_CHILDREN); + CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1 = INCLUDE_CHILDREN; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1 = BRANDES_KOEPF; + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0 = LINEAR_SEGMENTS; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; + EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0 = ($clinit_EdgeRouting() , SPLINES); + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0 = SPLINES; + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1 = SLOPPY; + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0 = POLYLINE; + WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0 = MANUAL; + WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0 = MSD; + WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; +} + +function LayeredMetaDataProvider(){ + $clinit_LayeredMetaDataProvider(); +} + +defineClass(848, 1, $intern_90, LayeredMetaDataProvider); +_.apply_4 = function apply_135(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.directionCongruency'), ''), 'Direction Congruency'), 'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'), DIRECTION_CONGRUENCY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.feedbackEdges'), ''), 'Feedback Edges'), 'Whether feedback edges should be highlighted by routing around the nodes.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.interactiveReferencePoint'), ''), 'Interactive Reference Point'), 'Determines which point of a node is considered by interactive layout phases.'), INTERACTIVE_REFERENCE_POINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.cycleBreaking.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.crossingMinimization.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeEdges'), ''), 'Merge Edges'), 'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeHierarchyEdges'), ''), 'Merge Hierarchy-Crossing Edges'), 'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($legacyIds($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides'), ''), 'Allow Non-Flow Ports To Switch Sides'), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PORTS)), stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['org.eclipse.elk.layered.northOrSouthPort'])))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.portSortingStrategy'), ''), 'Port Sorting Strategy'), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), PORT_SORTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.thoroughness'), ''), 'Thoroughness'), 'How much effort should be spent to produce a nice layout.'), valueOf_4(7)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.unnecessaryBendpoints'), ''), 'Add Unnecessary Bendpoints'), 'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.generatePositionAndLayerIds'), ''), 'Generate Position and Layer IDs'), 'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.cycleBreaking.strategy'), 'cycleBreaking'), 'Cycle Breaking Strategy'), 'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'), CYCLE_BREAKING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.strategy'), 'layering'), 'Node Layering Strategy'), 'Strategy for node layering.'), LAYERING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerConstraint'), 'layering'), 'Layer Constraint'), 'Determines a constraint on the placement of the node regarding the layering.'), LAYERING_LAYER_CONSTRAINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerChoiceConstraint'), 'layering'), 'Layer Choice Constraint'), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerId'), 'layering'), 'Layer ID'), 'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth'), 'layering.minWidth'), 'Upper Bound On Width [MinWidth Layerer]'), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(4)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor'), 'layering.minWidth'), 'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(2)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.strategy'), 'layering.nodePromotion'), 'Node Promotion Strategy'), 'Reduces number of dummy nodes after layering phase (if possible).'), LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations'), 'layering.nodePromotion'), 'Max Node Promotion Iterations'), 'Limits the number of iterations for node promotion.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound'), 'layering.coffmanGraham'), 'Layer Bound'), 'The maximum number of nodes allowed per layer.'), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', 'org.eclipse.elk.layered.layering.strategy', LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.strategy'), 'crossingMinimization'), 'Crossing Minimization Strategy'), 'Strategy for crossing minimization.'), CROSSING_MINIMIZATION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder'), 'crossingMinimization'), 'Force Node Model Order'), 'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness'), 'crossingMinimization'), 'Hierarchical Sweepiness'), 'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'), 0.1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive'), 'crossingMinimization'), 'Semi-Interactive Crossing Minimization'), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint'), 'crossingMinimization'), 'Position Choice Constraint'), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionId'), 'crossingMinimization'), 'Position ID'), 'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Activation Threshold'), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), valueOf_4(40)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Crossing Minimization'), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type'), 'crossingMinimization.greedySwitchHierarchical'), 'Greedy Switch Crossing Minimization (hierarchical)'), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.strategy'), 'nodePlacement'), 'Node Placement Strategy'), 'Strategy for node placement.'), NODE_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges'), 'nodePlacement'), 'Favor Straight Edges Over Balancing'), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening'), 'nodePlacement.bk'), 'BK Edge Straightening'), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment'), 'nodePlacement.bk'), 'BK Fixed Alignment'), 'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'), NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening'), 'nodePlacement.linearSegments'), 'Linear Segments Deflection Dampening'), 'Dampens the movement of nodes to keep the diagram from getting too large.'), 0.3), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'), 'nodePlacement.networkSimplex'), 'Node Flexibility'), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default'), 'nodePlacement.networkSimplex.nodeFlexibility'), 'Node Flexibility Default'), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution'), 'edgeRouting'), 'Self-Loop Distribution'), 'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering'), 'edgeRouting'), 'Self-Loop Ordering'), 'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.mode'), 'edgeRouting.splines'), 'Spline Routing Mode'), 'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'), EDGE_ROUTING_SPLINES_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.mode', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor'), 'edgeRouting.splines.sloppy'), 'Sloppy Spline Layer Spacing Factor'), 'Spacing factor for routing area between layers when using sloppy spline routing.'), 0.2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth'), 'edgeRouting.polyline'), 'Sloped Edge Zone Width'), 'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.baseValue'), 'spacing'), 'Spacing Base Value'), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers'), 'spacing'), 'Edge Node Between Layers Spacing'), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers'), 'spacing'), 'Edge Edge Between Layer Spacing'), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers'), 'spacing'), 'Node Node Between Layers Spacing'), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.direction'), 'priority'), 'Direction Priority'), 'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.shortness'), 'priority'), 'Shortness Priority'), 'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.straightness'), 'priority'), 'Straightness Priority'), 'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.connectedComponents'), 'compaction'), 'Connected Components Compaction'), 'Tries to further compact components (disconnected sub-graphs).'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.compaction.connectedComponents', 'org.eclipse.elk.separateConnectedComponents', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.strategy'), 'compaction.postCompaction'), 'Post Compaction Strategy'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.constraints'), 'compaction.postCompaction'), 'Post Compaction Constraint Calculation'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treatment'), 'highDegreeNodes'), 'High Degree Node Treatment'), 'Makes room around high degree nodes to place leafs and trees.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.threshold'), 'highDegreeNodes'), 'High Degree Node Threshold'), 'Whether a node is considered to have a high degree.'), valueOf_4(16)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.threshold', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight'), 'highDegreeNodes'), 'High Degree Node Maximum Tree Height'), 'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'), valueOf_4(5)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.strategy'), 'wrapping'), 'Graph Wrapping Strategy'), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), WRAPPING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing'), 'wrapping'), 'Additional Wrapped Edges Spacing'), 'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.correctionFactor'), 'wrapping'), 'Correction Factor for Wrapping'), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.strategy'), 'wrapping.cutting'), 'Cutting Strategy'), 'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'), WRAPPING_CUTTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.cuts'), 'wrapping.cutting'), 'Manually Specified Cuts'), 'Allows the user to specify her own cuts for a certain graph.'), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.cuts', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom'), 'wrapping.cutting.msd'), 'MSD Freedom'), 'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'), WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.strategy'), 'wrapping.validify'), 'Validification Strategy'), 'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'), WRAPPING_VALIDIFY_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'), 'wrapping.validify'), 'Valid Indices for Wrapping'), null), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts'), 'wrapping.multiEdge'), 'Improve Cuts'), 'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty'), 'wrapping.multiEdge'), 'Distance Penalty When Improving Cuts'), null), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges'), 'wrapping.multiEdge'), 'Improve Wrapped Edges'), 'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.sideSelection'), 'edgeLabels'), 'Edge Label Side Selection'), 'Method to decide on edge label sides.'), EDGE_LABELS_SIDE_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy'), 'edgeLabels'), 'Edge Center Label Placement Strategy'), 'Determines in which layer center labels of long edges should be placed.'), EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.strategy'), 'considerModelOrder'), 'Consider Model Order'), 'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'), CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.noModelOrder'), 'considerModelOrder'), 'No Model Order'), 'Set on a node to not set a model order for this node even though it is a real node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.components'), 'considerModelOrder'), 'Consider Model Order for Components'), 'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'), CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.components', 'org.eclipse.elk.separateConnectedComponents', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy'), 'considerModelOrder'), 'Long Edge Ordering Strategy'), 'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'), CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence'), 'considerModelOrder'), 'Crossing Counter Node Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence'), 'considerModelOrder'), 'Crossing Counter Port Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); + $apply_16((new LayeredOptions , registry)); +} +; +var ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES, COMPACTION_CONNECTED_COMPONENTS, COMPACTION_POST_COMPACTION_CONSTRAINTS, COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT, COMPACTION_POST_COMPACTION_STRATEGY, COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_COMPONENTS, CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER, CONSIDER_MODEL_ORDER_STRATEGY, CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT, CROSSING_MINIMIZATION_POSITION_ID, CROSSING_MINIMIZATION_SEMI_INTERACTIVE, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_STRATEGY, CROSSING_MINIMIZATION_STRATEGY_DEFAULT, CYCLE_BREAKING_STRATEGY, CYCLE_BREAKING_STRATEGY_DEFAULT, DIRECTION_CONGRUENCY, DIRECTION_CONGRUENCY_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT, EDGE_LABELS_SIDE_SELECTION, EDGE_LABELS_SIDE_SELECTION_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT, EDGE_ROUTING_SELF_LOOP_ORDERING, EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT, EDGE_ROUTING_SPLINES_MODE, EDGE_ROUTING_SPLINES_MODE_DEFAULT, EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1, FEEDBACK_EDGES, GENERATE_POSITION_AND_LAYER_IDS, HIGH_DEGREE_NODES_THRESHOLD, HIGH_DEGREE_NODES_TREATMENT, HIGH_DEGREE_NODES_TREE_HEIGHT, INTERACTIVE_REFERENCE_POINT, INTERACTIVE_REFERENCE_POINT_DEFAULT, INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1, INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0, LAYERING_LAYER_CHOICE_CONSTRAINT, LAYERING_LAYER_CONSTRAINT, LAYERING_LAYER_CONSTRAINT_DEFAULT, LAYERING_LAYER_ID, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS, LAYERING_NODE_PROMOTION_STRATEGY, LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT, LAYERING_STRATEGY, LAYERING_STRATEGY_DEFAULT, MERGE_EDGES, MERGE_HIERARCHY_EDGES, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_STRATEGY, NODE_PLACEMENT_STRATEGY_DEFAULT, PORT_SORTING_STRATEGY, PORT_SORTING_STRATEGY_DEFAULT, PRIORITY_DIRECTION, PRIORITY_SHORTNESS, PRIORITY_STRAIGHTNESS, SPACING_BASE_VALUE, SPACING_EDGE_EDGE_BETWEEN_LAYERS, SPACING_EDGE_NODE_BETWEEN_LAYERS, SPACING_NODE_NODE_BETWEEN_LAYERS, THOROUGHNESS, UNNECESSARY_BENDPOINTS, WRAPPING_ADDITIONAL_EDGE_SPACING, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1, WRAPPING_CORRECTION_FACTOR, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1, WRAPPING_CUTTING_CUTS, WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_MSD_FREEDOM, WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT, WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY, WRAPPING_CUTTING_STRATEGY_DEFAULT, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0, WRAPPING_STRATEGY, WRAPPING_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_FORBIDDEN_INDICES, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1, WRAPPING_VALIDIFY_STRATEGY, WRAPPING_VALIDIFY_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1; +var Lorg_eclipse_elk_alg_layered_options_LayeredMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredMetaDataProvider', 848); +function $clinit_LayeredOptions(){ + $clinit_LayeredOptions = emptyMethod; + SPACING_COMMENT_COMMENT = ($clinit_CoreOptions() , SPACING_COMMENT_COMMENT_0); + SPACING_COMMENT_NODE = SPACING_COMMENT_NODE_0; + SPACING_COMPONENT_COMPONENT_0 = SPACING_COMPONENT_COMPONENT_1; + SPACING_EDGE_EDGE = SPACING_EDGE_EDGE_0; + SPACING_EDGE_LABEL_0 = SPACING_EDGE_LABEL_1; + SPACING_EDGE_NODE = SPACING_EDGE_NODE_0; + SPACING_LABEL_LABEL = SPACING_LABEL_LABEL_0; + SPACING_LABEL_PORT_HORIZONTAL = SPACING_LABEL_PORT_HORIZONTAL_0; + SPACING_LABEL_PORT_VERTICAL = SPACING_LABEL_PORT_VERTICAL_0; + SPACING_LABEL_NODE = SPACING_LABEL_NODE_0; + SPACING_NODE_NODE_0 = SPACING_NODE_NODE_6; + SPACING_NODE_SELF_LOOP = SPACING_NODE_SELF_LOOP_0; + SPACING_PORT_PORT = SPACING_PORT_PORT_0; + SPACING_INDIVIDUAL = SPACING_INDIVIDUAL_0; + SPACING_BASE_VALUE_0 = ($clinit_LayeredMetaDataProvider() , SPACING_BASE_VALUE); + SPACING_EDGE_EDGE_BETWEEN_LAYERS_0 = SPACING_EDGE_EDGE_BETWEEN_LAYERS; + SPACING_EDGE_NODE_BETWEEN_LAYERS_0 = SPACING_EDGE_NODE_BETWEEN_LAYERS; + SPACING_NODE_NODE_BETWEEN_LAYERS_0 = SPACING_NODE_NODE_BETWEEN_LAYERS; + PRIORITY_0 = new Property_2(PRIORITY_3, valueOf_4(0)); + PRIORITY_DIRECTION_0 = PRIORITY_DIRECTION; + PRIORITY_SHORTNESS_0 = PRIORITY_SHORTNESS; + PRIORITY_STRAIGHTNESS_0 = PRIORITY_STRAIGHTNESS; + WRAPPING_STRATEGY_0 = WRAPPING_STRATEGY; + WRAPPING_ADDITIONAL_EDGE_SPACING_0 = WRAPPING_ADDITIONAL_EDGE_SPACING; + WRAPPING_CORRECTION_FACTOR_0 = WRAPPING_CORRECTION_FACTOR; + WRAPPING_CUTTING_STRATEGY_0 = WRAPPING_CUTTING_STRATEGY; + WRAPPING_CUTTING_CUTS_0 = WRAPPING_CUTTING_CUTS; + WRAPPING_CUTTING_MSD_FREEDOM_0 = WRAPPING_CUTTING_MSD_FREEDOM; + WRAPPING_VALIDIFY_STRATEGY_0 = WRAPPING_VALIDIFY_STRATEGY; + WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0 = WRAPPING_VALIDIFY_FORBIDDEN_INDICES; + WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0 = WRAPPING_MULTI_EDGE_IMPROVE_CUTS; + WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0 = WRAPPING_MULTI_EDGE_DISTANCE_PENALTY; + WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0 = WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY; + NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT; + EDGE_ROUTING_SPLINES_MODE_0 = EDGE_ROUTING_SPLINES_MODE; + EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0 = EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR; + PADDING_DEFAULT_0 = new ElkPadding_0(12); + PADDING_1 = new Property_2(PADDING_6, PADDING_DEFAULT_0); + EDGE_ROUTING_DEFAULT = ($clinit_EdgeRouting() , ORTHOGONAL); + EDGE_ROUTING = new Property_2(EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT); + PORT_BORDER_OFFSET = new Property_2(PORT_BORDER_OFFSET_0, 0); + RANDOM_SEED_0 = new Property_2(RANDOM_SEED_1, valueOf_4(1)); + ASPECT_RATIO_1 = new Property_2(ASPECT_RATIO_5, $intern_102); + NO_LAYOUT = NO_LAYOUT_0; + PORT_CONSTRAINTS_0 = PORT_CONSTRAINTS_1; + PORT_SIDE = PORT_SIDE_0; + DEBUG_MODE = DEBUG_MODE_3; + ALIGNMENT = ALIGNMENT_0; + HIERARCHY_HANDLING = HIERARCHY_HANDLING_0; + SEPARATE_CONNECTED_COMPONENTS_0 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + INSIDE_SELF_LOOPS_ACTIVATE = INSIDE_SELF_LOOPS_ACTIVATE_0; + INSIDE_SELF_LOOPS_YO = INSIDE_SELF_LOOPS_YO_0; + NODE_SIZE_CONSTRAINTS_1 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_OPTIONS_1 = NODE_SIZE_OPTIONS_6; + NODE_SIZE_FIXED_GRAPH_SIZE = NODE_SIZE_FIXED_GRAPH_SIZE_0; + DIRECTION_DEFAULT = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION = new Property_2(DIRECTION_0, DIRECTION_DEFAULT); + NODE_LABELS_PLACEMENT_1 = NODE_LABELS_PLACEMENT_5; + NODE_LABELS_PADDING = NODE_LABELS_PADDING_0; + PORT_LABELS_PLACEMENT_1 = PORT_LABELS_PLACEMENT_5; + PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE = PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0; + PORT_LABELS_TREAT_AS_GROUP = PORT_LABELS_TREAT_AS_GROUP_0; + PORT_ALIGNMENT_DEFAULT_DEFAULT = ($clinit_PortAlignment() , JUSTIFIED); + new Property_2(PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT); + PORT_ALIGNMENT_NORTH = PORT_ALIGNMENT_NORTH_0; + PORT_ALIGNMENT_SOUTH = PORT_ALIGNMENT_SOUTH_0; + PORT_ALIGNMENT_WEST = PORT_ALIGNMENT_WEST_0; + PORT_ALIGNMENT_EAST = PORT_ALIGNMENT_EAST_0; + UNNECESSARY_BENDPOINTS_0 = UNNECESSARY_BENDPOINTS; + LAYERING_STRATEGY_0 = LAYERING_STRATEGY; + LAYERING_NODE_PROMOTION_STRATEGY_0 = LAYERING_NODE_PROMOTION_STRATEGY; + THOROUGHNESS_0 = THOROUGHNESS; + LAYERING_LAYER_CONSTRAINT_0 = LAYERING_LAYER_CONSTRAINT; + CYCLE_BREAKING_STRATEGY_0 = CYCLE_BREAKING_STRATEGY; + CROSSING_MINIMIZATION_STRATEGY_0 = CROSSING_MINIMIZATION_STRATEGY; + CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0 = CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER; + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD; + CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE; + CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE; + CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0 = CROSSING_MINIMIZATION_SEMI_INTERACTIVE; + MERGE_EDGES_0 = MERGE_EDGES; + MERGE_HIERARCHY_EDGES_0 = MERGE_HIERARCHY_EDGES; + INTERACTIVE_REFERENCE_POINT_0 = INTERACTIVE_REFERENCE_POINT; + NODE_PLACEMENT_STRATEGY_0 = NODE_PLACEMENT_STRATEGY; + NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0 = NODE_PLACEMENT_BK_FIXED_ALIGNMENT; + FEEDBACK_EDGES_0 = FEEDBACK_EDGES; + NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0 = NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING; + EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0 = EDGE_ROUTING_SELF_LOOP_DISTRIBUTION; + EDGE_ROUTING_SELF_LOOP_ORDERING_0 = EDGE_ROUTING_SELF_LOOP_ORDERING; + CONTENT_ALIGNMENT = CONTENT_ALIGNMENT_2; + NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0 = NODE_PLACEMENT_BK_EDGE_STRAIGHTENING; + COMPACTION_POST_COMPACTION_STRATEGY_0 = COMPACTION_POST_COMPACTION_STRATEGY; + COMPACTION_POST_COMPACTION_CONSTRAINTS_0 = COMPACTION_POST_COMPACTION_CONSTRAINTS; + COMPACTION_CONNECTED_COMPONENTS_0 = COMPACTION_CONNECTED_COMPONENTS; + HIGH_DEGREE_NODES_TREATMENT_0 = HIGH_DEGREE_NODES_TREATMENT; + HIGH_DEGREE_NODES_THRESHOLD_0 = HIGH_DEGREE_NODES_THRESHOLD; + HIGH_DEGREE_NODES_TREE_HEIGHT_0 = HIGH_DEGREE_NODES_TREE_HEIGHT; + NODE_SIZE_MINIMUM_0 = NODE_SIZE_MINIMUM_5; + JUNCTION_POINTS = JUNCTION_POINTS_0; + EDGE_THICKNESS_0 = EDGE_THICKNESS_1; + EDGE_LABELS_PLACEMENT = EDGE_LABELS_PLACEMENT_0; + EDGE_LABELS_INLINE_0 = EDGE_LABELS_INLINE_1; + CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0 = CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS; + PORT_INDEX = PORT_INDEX_0; + COMMENT_BOX = COMMENT_BOX_0; + HYPERNODE = HYPERNODE_0; + PORT_ANCHOR = PORT_ANCHOR_0; + PARTITIONING_ACTIVATE = PARTITIONING_ACTIVATE_0; + PARTITIONING_PARTITION = PARTITIONING_PARTITION_0; + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0 = LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH; + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0 = LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR; + POSITION = POSITION_2; + ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0 = ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES; + LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0 = LAYERING_NODE_PROMOTION_MAX_ITERATIONS; + EDGE_LABELS_SIDE_SELECTION_0 = EDGE_LABELS_SIDE_SELECTION; + EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0 = EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY; + MARGINS = MARGINS_0; + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0 = LAYERING_COFFMAN_GRAHAM_LAYER_BOUND; + NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0 = NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES; + SPACING_PORTS_SURROUNDING = SPACING_PORTS_SURROUNDING_0; + DIRECTION_CONGRUENCY_0 = DIRECTION_CONGRUENCY; + PORT_SORTING_STRATEGY_0 = PORT_SORTING_STRATEGY; + EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0 = EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH; + LAYERING_LAYER_CHOICE_CONSTRAINT_0 = LAYERING_LAYER_CHOICE_CONSTRAINT; + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0 = CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT; + INTERACTIVE_LAYOUT = INTERACTIVE_LAYOUT_1; + LAYERING_LAYER_ID_0 = LAYERING_LAYER_ID; + CROSSING_MINIMIZATION_POSITION_ID_0 = CROSSING_MINIMIZATION_POSITION_ID; + CONSIDER_MODEL_ORDER_STRATEGY_0 = CONSIDER_MODEL_ORDER_STRATEGY; + CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0 = CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY; + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE; + CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE; + CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0 = CONSIDER_MODEL_ORDER_NO_MODEL_ORDER; + CONSIDER_MODEL_ORDER_COMPONENTS_0 = CONSIDER_MODEL_ORDER_COMPONENTS; + GENERATE_POSITION_AND_LAYER_IDS_0 = GENERATE_POSITION_AND_LAYER_IDS; +} + +function $apply_16(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.layered'), 'ELK Layered'), 'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'), new LayeredOptions$LayeredFactory), 'org.eclipse.elk.layered'), of_2(($clinit_GraphFeature() , SELF_LOOPS_0), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentComment', $getDefault(SPACING_COMMENT_COMMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentNode', $getDefault(SPACING_COMMENT_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeEdge', $getDefault(SPACING_EDGE_EDGE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeLabel', $getDefault(SPACING_EDGE_LABEL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeNode', $getDefault(SPACING_EDGE_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelLabel', $getDefault(SPACING_LABEL_LABEL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortHorizontal', $getDefault(SPACING_LABEL_PORT_HORIZONTAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortVertical', $getDefault(SPACING_LABEL_PORT_VERTICAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelNode', $getDefault(SPACING_LABEL_NODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeSelfLoop', $getDefault(SPACING_NODE_SELF_LOOP)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portPort', $getDefault(SPACING_PORT_PORT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.individual', $getDefault(SPACING_INDIVIDUAL)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.baseValue', $getDefault(SPACING_BASE_VALUE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', $getDefault(SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', $getDefault(SPACING_EDGE_NODE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', $getDefault(SPACING_NODE_NODE_BETWEEN_LAYERS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.priority', valueOf_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.direction', $getDefault(PRIORITY_DIRECTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.shortness', $getDefault(PRIORITY_SHORTNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.straightness', $getDefault(PRIORITY_STRAIGHTNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.strategy', $getDefault(WRAPPING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', $getDefault(WRAPPING_ADDITIONAL_EDGE_SPACING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.correctionFactor', $getDefault(WRAPPING_CORRECTION_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.strategy', $getDefault(WRAPPING_CUTTING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.cuts', $getDefault(WRAPPING_CUTTING_CUTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', $getDefault(WRAPPING_CUTTING_MSD_FREEDOM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.strategy', $getDefault(WRAPPING_VALIDIFY_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', $getDefault(WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', $getDefault(WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.mode', $getDefault(EDGE_ROUTING_SPLINES_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', $getDefault(EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.padding', PADDING_DEFAULT_0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.borderOffset', 0); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.randomSeed', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.noLayout', $getDefault(NO_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.side', $getDefault(PORT_SIDE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.alignment', $getDefault(ALIGNMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hierarchyHandling', $getDefault(HIERARCHY_HANDLING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.activate', $getDefault(INSIDE_SELF_LOOPS_ACTIVATE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.yo', $getDefault(INSIDE_SELF_LOOPS_YO)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.direction', DIRECTION_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.padding', $getDefault(NODE_LABELS_PADDING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.nextToPortIfPossible', $getDefault(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.treatAsGroup', $getDefault(PORT_LABELS_TREAT_AS_GROUP)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.north', $getDefault(PORT_ALIGNMENT_NORTH)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.south', $getDefault(PORT_ALIGNMENT_SOUTH)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.west', $getDefault(PORT_ALIGNMENT_WEST)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.east', $getDefault(PORT_ALIGNMENT_EAST)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.unnecessaryBendpoints', $getDefault(UNNECESSARY_BENDPOINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.strategy', $getDefault(LAYERING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', $getDefault(LAYERING_NODE_PROMOTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.thoroughness', $getDefault(THOROUGHNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerConstraint', $getDefault(LAYERING_LAYER_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.cycleBreaking.strategy', $getDefault(CYCLE_BREAKING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.strategy', $getDefault(CROSSING_MINIMIZATION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', $getDefault(CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', $getDefault(CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeEdges', $getDefault(MERGE_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeHierarchyEdges', $getDefault(MERGE_HIERARCHY_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.interactiveReferencePoint', $getDefault(INTERACTIVE_REFERENCE_POINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.strategy', $getDefault(NODE_PLACEMENT_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', $getDefault(NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.feedbackEdges', $getDefault(FEEDBACK_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', $getDefault(NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', $getDefault(EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', $getDefault(EDGE_ROUTING_SELF_LOOP_ORDERING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', $getDefault(NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.strategy', $getDefault(COMPACTION_POST_COMPACTION_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.constraints', $getDefault(COMPACTION_POST_COMPACTION_CONSTRAINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.connectedComponents', $getDefault(COMPACTION_CONNECTED_COMPONENTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treatment', $getDefault(HIGH_DEGREE_NODES_TREATMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.threshold', $getDefault(HIGH_DEGREE_NODES_THRESHOLD_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', $getDefault(HIGH_DEGREE_NODES_TREE_HEIGHT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.junctionPoints', $getDefault(JUNCTION_POINTS)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.placement', $getDefault(EDGE_LABELS_PLACEMENT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.inline', $getDefault(EDGE_LABELS_INLINE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', $getDefault(CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.index', $getDefault(PORT_INDEX)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.commentBox', $getDefault(COMMENT_BOX)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hypernode', $getDefault(HYPERNODE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.anchor', $getDefault(PORT_ANCHOR)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.activate', $getDefault(PARTITIONING_ACTIVATE)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.partition', $getDefault(PARTITIONING_PARTITION)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', $getDefault(LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', $getDefault(LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.position', $getDefault(POSITION)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', $getDefault(ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', $getDefault(LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.sideSelection', $getDefault(EDGE_LABELS_SIDE_SELECTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', $getDefault(EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.margins', $getDefault(MARGINS)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', $getDefault(LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', $getDefault(NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portsSurrounding', $getDefault(SPACING_PORTS_SURROUNDING)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.directionCongruency', $getDefault(DIRECTION_CONGRUENCY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.portSortingStrategy', $getDefault(PORT_SORTING_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', $getDefault(EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerChoiceConstraint', $getDefault(LAYERING_LAYER_CHOICE_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', $getDefault(CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerId', $getDefault(LAYERING_LAYER_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionId', $getDefault(CROSSING_MINIMIZATION_POSITION_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.strategy', $getDefault(CONSIDER_MODEL_ORDER_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', $getDefault(CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.noModelOrder', $getDefault(CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.components', $getDefault(CONSIDER_MODEL_ORDER_COMPONENTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.generatePositionAndLayerIds', $getDefault(GENERATE_POSITION_AND_LAYER_IDS_0)); +} + +function LayeredOptions(){ + $clinit_LayeredOptions(); +} + +defineClass(986, 1, $intern_90, LayeredOptions); +_.apply_4 = function apply_136(registry){ + $apply_16(registry); +} +; +var ALIGNMENT, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0, ASPECT_RATIO_1, COMMENT_BOX, COMPACTION_CONNECTED_COMPONENTS_0, COMPACTION_POST_COMPACTION_CONSTRAINTS_0, COMPACTION_POST_COMPACTION_STRATEGY_0, CONSIDER_MODEL_ORDER_COMPONENTS_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0, CONSIDER_MODEL_ORDER_STRATEGY_0, CONTENT_ALIGNMENT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0, CROSSING_MINIMIZATION_POSITION_ID_0, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0, CROSSING_MINIMIZATION_STRATEGY_0, CYCLE_BREAKING_STRATEGY_0, DEBUG_MODE, DIRECTION, DIRECTION_CONGRUENCY_0, DIRECTION_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0, EDGE_LABELS_INLINE_0, EDGE_LABELS_PLACEMENT, EDGE_LABELS_SIDE_SELECTION_0, EDGE_ROUTING, EDGE_ROUTING_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0, EDGE_ROUTING_SELF_LOOP_ORDERING_0, EDGE_ROUTING_SPLINES_MODE_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0, EDGE_THICKNESS_0, FEEDBACK_EDGES_0, GENERATE_POSITION_AND_LAYER_IDS_0, HIERARCHY_HANDLING, HIGH_DEGREE_NODES_THRESHOLD_0, HIGH_DEGREE_NODES_TREATMENT_0, HIGH_DEGREE_NODES_TREE_HEIGHT_0, HYPERNODE, INSIDE_SELF_LOOPS_ACTIVATE, INSIDE_SELF_LOOPS_YO, INTERACTIVE_LAYOUT, INTERACTIVE_REFERENCE_POINT_0, JUNCTION_POINTS, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0, LAYERING_LAYER_CHOICE_CONSTRAINT_0, LAYERING_LAYER_CONSTRAINT_0, LAYERING_LAYER_ID_0, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0, LAYERING_NODE_PROMOTION_STRATEGY_0, LAYERING_STRATEGY_0, MARGINS, MERGE_EDGES_0, MERGE_HIERARCHY_EDGES_0, NODE_LABELS_PADDING, NODE_LABELS_PLACEMENT_1, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0, NODE_PLACEMENT_STRATEGY_0, NODE_SIZE_CONSTRAINTS_1, NODE_SIZE_FIXED_GRAPH_SIZE, NODE_SIZE_MINIMUM_0, NODE_SIZE_OPTIONS_1, NO_LAYOUT, PADDING_1, PADDING_DEFAULT_0, PARTITIONING_ACTIVATE, PARTITIONING_PARTITION, PORT_ALIGNMENT_DEFAULT_DEFAULT, PORT_ALIGNMENT_EAST, PORT_ALIGNMENT_NORTH, PORT_ALIGNMENT_SOUTH, PORT_ALIGNMENT_WEST, PORT_ANCHOR, PORT_BORDER_OFFSET, PORT_CONSTRAINTS_0, PORT_INDEX, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE, PORT_LABELS_PLACEMENT_1, PORT_LABELS_TREAT_AS_GROUP, PORT_SIDE, PORT_SORTING_STRATEGY_0, POSITION, PRIORITY_0, PRIORITY_DIRECTION_0, PRIORITY_SHORTNESS_0, PRIORITY_STRAIGHTNESS_0, RANDOM_SEED_0, SEPARATE_CONNECTED_COMPONENTS_0, SPACING_BASE_VALUE_0, SPACING_COMMENT_COMMENT, SPACING_COMMENT_NODE, SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_INDIVIDUAL, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_SELF_LOOP, SPACING_PORTS_SURROUNDING, SPACING_PORT_PORT, THOROUGHNESS_0, UNNECESSARY_BENDPOINTS_0, WRAPPING_ADDITIONAL_EDGE_SPACING_0, WRAPPING_CORRECTION_FACTOR_0, WRAPPING_CUTTING_CUTS_0, WRAPPING_CUTTING_MSD_FREEDOM_0, WRAPPING_CUTTING_STRATEGY_0, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0, WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0, WRAPPING_VALIDIFY_STRATEGY_0; +var Lorg_eclipse_elk_alg_layered_options_LayeredOptions_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions', 986); +function LayeredOptions$LayeredFactory(){ +} + +defineClass(987, 1, {}, LayeredOptions$LayeredFactory); +_.create_0 = function create_10(){ + var provider; + return provider = new LayeredLayoutProvider , provider; +} +; +_.destroy = function destroy_2(obj){ +} +; +var Lorg_eclipse_elk_alg_layered_options_LayeredOptions$LayeredFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions/LayeredFactory', 987); +function $clinit_ElkSpacings$AbstractSpacingsBuilder(){ + $clinit_ElkSpacings$AbstractSpacingsBuilder = emptyMethod; + ELK_OPTION_TARGET_FILTER = new ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type; +} + +function $apply_17(this$static, holder){ + $build(this$static).accept(holder); +} + +function $build(this$static){ + $add_3(this$static.filters, ($clinit_LayoutConfigurator() , NO_OVERWRITE_HOLDER)); + if (fuzzyEquals(this$static.baseSpacing, $doubleValue(castToDouble($getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)))))) { + return new ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type; + } + return new ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type(this$static); +} + +function $lambda$1_1(this$static, option_0){ + var factor; + factor = $getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)) != null && option_0.getDefault() != null?$doubleValue(castToDouble(option_0.getDefault())) / $doubleValue(castToDouble($getDefault(BASE_SPACING_OPTION))):1; + $put_6(this$static.factorMap, option_0, factor); +} + +function $lambda$3_0(this$static, element_0){ + $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.factorMap), 1)), new ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type(this$static, element_0)), new ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type(this$static, element_0)); +} + +function $lambda$4_1(this$static, element_1, p_1){ + return !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.filters, 16)), new Predicate$lambda$2$Type(new ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_1, p_1)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); +} + +function $lambda$6(this$static, element_1, p_1){ + element_1.setProperty(p_1, $doubleValue(castToDouble($get_10(this$static.factorMap, p_1))) * this$static.baseSpacing); +} + +function lambda$5_3(element_0, p_1, filter_2){ + $clinit_ElkSpacings$AbstractSpacingsBuilder(); + return filter_2.accept_4(element_0, p_1); +} + +defineClass(1372, 1, {}); +_.baseSpacing = 0; +var ELK_OPTION_TARGET_FILTER; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder', 1372); +function $clinit_LayeredSpacings$LayeredSpacingsBuilder(){ + $clinit_LayeredSpacings$LayeredSpacingsBuilder = emptyMethod; + $clinit_ElkSpacings$AbstractSpacingsBuilder(); + BASE_SPACING_OPTION = ($clinit_LayeredOptions() , SPACING_NODE_NODE_0); + DEPENDENT_SPACING_OPTIONS = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 1), $intern_112, 146, 0, [SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_SELF_LOOP, SPACING_PORT_PORT, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0])); +} + +function LayeredSpacings$LayeredSpacingsBuilder(d){ + $clinit_LayeredSpacings$LayeredSpacingsBuilder(); + this.filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit, 1), $intern_2, 831, 0, [ELK_OPTION_TARGET_FILTER])); + this.factorMap = new HashMap; + this.baseSpacing = d; + $put_6(this.factorMap, BASE_SPACING_OPTION, 1); + $forEach_1(DEPENDENT_SPACING_OPTIONS, new ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type(this)); +} + +defineClass(779, 1372, {}, LayeredSpacings$LayeredSpacingsBuilder); +var BASE_SPACING_OPTION, DEPENDENT_SPACING_OPTIONS; +var Lorg_eclipse_elk_alg_layered_options_LayeredSpacings$LayeredSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredSpacings/LayeredSpacingsBuilder', 779); +function $clinit_LayeringStrategy(){ + $clinit_LayeringStrategy = emptyMethod; + NETWORK_SIMPLEX = new LayeringStrategy('NETWORK_SIMPLEX', 0); + LONGEST_PATH = new LayeringStrategy('LONGEST_PATH', 1); + COFFMAN_GRAHAM = new LayeringStrategy('COFFMAN_GRAHAM', 2); + INTERACTIVE_3 = new LayeringStrategy('INTERACTIVE', 3); + STRETCH_WIDTH = new LayeringStrategy('STRETCH_WIDTH', 4); + MIN_WIDTH = new LayeringStrategy('MIN_WIDTH', 5); +} + +function $create_5(this$static){ + switch (this$static.ordinal) { + case 0: + return new NetworkSimplexLayerer; + case 1: + return new LongestPathLayerer; + case 2: + return new CoffmanGrahamLayerer; + case 3: + return new InteractiveLayerer; + case 4: + return new StretchWidthLayerer; + case 5: + return new MinWidthLayerer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layerer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function LayeringStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_54(name_0){ + $clinit_LayeringStrategy(); + return valueOf(($clinit_LayeringStrategy$Map() , $MAP_42), name_0); +} + +function values_60(){ + $clinit_LayeringStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]); +} + +defineClass(313, 22, {3:1, 35:1, 22:1, 313:1, 246:1, 234:1}, LayeringStrategy); +_.create_1 = function create_12(){ + return $create_5(this); +} +; +_.create_2 = function create_11(){ + return $create_5(this); +} +; +var COFFMAN_GRAHAM, INTERACTIVE_3, LONGEST_PATH, MIN_WIDTH, NETWORK_SIMPLEX, STRETCH_WIDTH; +var Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayeringStrategy', 313, Ljava_lang_Enum_2_classLit, values_60, valueOf_54); +function $clinit_LayeringStrategy$Map(){ + $clinit_LayeringStrategy$Map = emptyMethod; + $MAP_42 = createValueOfMap(($clinit_LayeringStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]))); +} + +var $MAP_42; +function $clinit_LongEdgeOrderingStrategy(){ + $clinit_LongEdgeOrderingStrategy = emptyMethod; + DUMMY_NODE_OVER = new LongEdgeOrderingStrategy('DUMMY_NODE_OVER', 0); + DUMMY_NODE_UNDER = new LongEdgeOrderingStrategy('DUMMY_NODE_UNDER', 1); + EQUAL = new LongEdgeOrderingStrategy('EQUAL', 2); +} + +function $returnValue(this$static){ + switch (this$static.ordinal) { + case 0: + return $intern_0; + case 1: + return -1; + default:return 0; + } +} + +function LongEdgeOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_55(name_0){ + $clinit_LongEdgeOrderingStrategy(); + return valueOf(($clinit_LongEdgeOrderingStrategy$Map() , $MAP_43), name_0); +} + +function values_61(){ + $clinit_LongEdgeOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]); +} + +defineClass(378, 22, {3:1, 35:1, 22:1, 378:1}, LongEdgeOrderingStrategy); +var DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL; +var Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LongEdgeOrderingStrategy', 378, Ljava_lang_Enum_2_classLit, values_61, valueOf_55); +function $clinit_LongEdgeOrderingStrategy$Map(){ + $clinit_LongEdgeOrderingStrategy$Map = emptyMethod; + $MAP_43 = createValueOfMap(($clinit_LongEdgeOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]))); +} + +var $MAP_43; +function $clinit_NodeFlexibility(){ + $clinit_NodeFlexibility = emptyMethod; + NONE_8 = new NodeFlexibility('NONE', 0); + PORT_POSITION = new NodeFlexibility('PORT_POSITION', 1); + NODE_SIZE_WHERE_SPACE_PERMITS = new NodeFlexibility('NODE_SIZE_WHERE_SPACE_PERMITS', 2); + NODE_SIZE = new NodeFlexibility('NODE_SIZE', 3); +} + +function $isFlexibleSizeWhereSpacePermits(this$static){ + return this$static == NODE_SIZE_WHERE_SPACE_PERMITS || this$static == NODE_SIZE; +} + +function NodeFlexibility(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function getNodeFlexibility(lNode){ + $clinit_NodeFlexibility(); + var nf; + (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)); + return nf; +} + +function valueOf_56(name_0){ + $clinit_NodeFlexibility(); + return valueOf(($clinit_NodeFlexibility$Map() , $MAP_44), name_0); +} + +function values_62(){ + $clinit_NodeFlexibility(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]); +} + +defineClass(197, 22, {3:1, 35:1, 22:1, 197:1}, NodeFlexibility); +var NODE_SIZE, NODE_SIZE_WHERE_SPACE_PERMITS, NONE_8, PORT_POSITION; +var Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodeFlexibility', 197, Ljava_lang_Enum_2_classLit, values_62, valueOf_56); +function $clinit_NodeFlexibility$Map(){ + $clinit_NodeFlexibility$Map = emptyMethod; + $MAP_44 = createValueOfMap(($clinit_NodeFlexibility() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]))); +} + +var $MAP_44; +function $clinit_NodePlacementStrategy(){ + $clinit_NodePlacementStrategy = emptyMethod; + SIMPLE = new NodePlacementStrategy('SIMPLE', 0); + INTERACTIVE_4 = new NodePlacementStrategy('INTERACTIVE', 1); + LINEAR_SEGMENTS = new NodePlacementStrategy('LINEAR_SEGMENTS', 2); + BRANDES_KOEPF = new NodePlacementStrategy('BRANDES_KOEPF', 3); + NETWORK_SIMPLEX_0 = new NodePlacementStrategy('NETWORK_SIMPLEX', 4); +} + +function $create_6(this$static){ + switch (this$static.ordinal) { + case 0: + return new SimpleNodePlacer; + case 1: + return new InteractiveNodePlacer; + case 2: + return new LinearSegmentsNodePlacer; + case 3: + return new BKNodePlacer; + case 4: + return new NetworkSimplexPlacer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the node placer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function NodePlacementStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_57(name_0){ + $clinit_NodePlacementStrategy(); + return valueOf(($clinit_NodePlacementStrategy$Map() , $MAP_45), name_0); +} + +function values_63(){ + $clinit_NodePlacementStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]); +} + +defineClass(315, 22, {3:1, 35:1, 22:1, 315:1, 246:1, 234:1}, NodePlacementStrategy); +_.create_1 = function create_14(){ + return $create_6(this); +} +; +_.create_2 = function create_13(){ + return $create_6(this); +} +; +var BRANDES_KOEPF, INTERACTIVE_4, LINEAR_SEGMENTS, NETWORK_SIMPLEX_0, SIMPLE; +var Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePlacementStrategy', 315, Ljava_lang_Enum_2_classLit, values_63, valueOf_57); +function $clinit_NodePlacementStrategy$Map(){ + $clinit_NodePlacementStrategy$Map = emptyMethod; + $MAP_45 = createValueOfMap(($clinit_NodePlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]))); +} + +var $MAP_45; +function $clinit_NodePromotionStrategy(){ + $clinit_NodePromotionStrategy = emptyMethod; + NONE_9 = new NodePromotionStrategy('NONE', 0); + NIKOLOV = new NodePromotionStrategy('NIKOLOV', 1); + NIKOLOV_PIXEL = new NodePromotionStrategy('NIKOLOV_PIXEL', 2); + NIKOLOV_IMPROVED = new NodePromotionStrategy('NIKOLOV_IMPROVED', 3); + NIKOLOV_IMPROVED_PIXEL = new NodePromotionStrategy('NIKOLOV_IMPROVED_PIXEL', 4); + DUMMYNODE_PERCENTAGE = new NodePromotionStrategy('DUMMYNODE_PERCENTAGE', 5); + NODECOUNT_PERCENTAGE = new NodePromotionStrategy('NODECOUNT_PERCENTAGE', 6); + NO_BOUNDARY = new NodePromotionStrategy('NO_BOUNDARY', 7); +} + +function NodePromotionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_58(name_0){ + $clinit_NodePromotionStrategy(); + return valueOf(($clinit_NodePromotionStrategy$Map() , $MAP_46), name_0); +} + +function values_64(){ + $clinit_NodePromotionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]); +} + +defineClass(260, 22, {3:1, 35:1, 22:1, 260:1}, NodePromotionStrategy); +var DUMMYNODE_PERCENTAGE, NIKOLOV, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, NIKOLOV_PIXEL, NODECOUNT_PERCENTAGE, NONE_9, NO_BOUNDARY; +var Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePromotionStrategy', 260, Ljava_lang_Enum_2_classLit, values_64, valueOf_58); +function $clinit_NodePromotionStrategy$Map(){ + $clinit_NodePromotionStrategy$Map = emptyMethod; + $MAP_46 = createValueOfMap(($clinit_NodePromotionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]))); +} + +var $MAP_46; +function $clinit_OrderingStrategy(){ + $clinit_OrderingStrategy = emptyMethod; + NONE_10 = new OrderingStrategy('NONE', 0); + NODES_AND_EDGES = new OrderingStrategy('NODES_AND_EDGES', 1); + PREFER_EDGES = new OrderingStrategy('PREFER_EDGES', 2); +} + +function OrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_59(name_0){ + $clinit_OrderingStrategy(); + return valueOf(($clinit_OrderingStrategy$Map() , $MAP_47), name_0); +} + +function values_65(){ + $clinit_OrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]); +} + +defineClass(339, 22, {3:1, 35:1, 22:1, 339:1}, OrderingStrategy); +var NODES_AND_EDGES, NONE_10, PREFER_EDGES; +var Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'OrderingStrategy', 339, Ljava_lang_Enum_2_classLit, values_65, valueOf_59); +function $clinit_OrderingStrategy$Map(){ + $clinit_OrderingStrategy$Map = emptyMethod; + $MAP_47 = createValueOfMap(($clinit_OrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]))); +} + +var $MAP_47; +function $clinit_PortSortingStrategy(){ + $clinit_PortSortingStrategy = emptyMethod; + INPUT_ORDER = new PortSortingStrategy('INPUT_ORDER', 0); + PORT_DEGREE = new PortSortingStrategy('PORT_DEGREE', 1); +} + +function PortSortingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_60(name_0){ + $clinit_PortSortingStrategy(); + return valueOf(($clinit_PortSortingStrategy$Map() , $MAP_48), name_0); +} + +function values_66(){ + $clinit_PortSortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]); +} + +defineClass(421, 22, {3:1, 35:1, 22:1, 421:1}, PortSortingStrategy); +var INPUT_ORDER, PORT_DEGREE; +var Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortSortingStrategy', 421, Ljava_lang_Enum_2_classLit, values_66, valueOf_60); +function $clinit_PortSortingStrategy$Map(){ + $clinit_PortSortingStrategy$Map = emptyMethod; + $MAP_48 = createValueOfMap(($clinit_PortSortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]))); +} + +var $MAP_48; +function $clinit_PortType(){ + $clinit_PortType = emptyMethod; + UNDEFINED_0 = new PortType('UNDEFINED', 0); + INPUT = new PortType('INPUT', 1); + OUTPUT = new PortType('OUTPUT', 2); +} + +function PortType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_61(name_0){ + $clinit_PortType(); + return valueOf(($clinit_PortType$Map() , $MAP_49), name_0); +} + +function values_67(){ + $clinit_PortType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]); +} + +defineClass(452, 22, {3:1, 35:1, 22:1, 452:1}, PortType); +var INPUT, OUTPUT, UNDEFINED_0; +var Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortType', 452, Ljava_lang_Enum_2_classLit, values_67, valueOf_61); +function $clinit_PortType$Map(){ + $clinit_PortType$Map = emptyMethod; + $MAP_49 = createValueOfMap(($clinit_PortType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]))); +} + +var $MAP_49; +function $clinit_SelfLoopDistributionStrategy(){ + $clinit_SelfLoopDistributionStrategy = emptyMethod; + EQUALLY = new SelfLoopDistributionStrategy('EQUALLY', 0); + NORTH_2 = new SelfLoopDistributionStrategy('NORTH', 1); + NORTH_SOUTH = new SelfLoopDistributionStrategy('NORTH_SOUTH', 2); +} + +function SelfLoopDistributionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_62(name_0){ + $clinit_SelfLoopDistributionStrategy(); + return valueOf(($clinit_SelfLoopDistributionStrategy$Map() , $MAP_50), name_0); +} + +function values_68(){ + $clinit_SelfLoopDistributionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]); +} + +defineClass(375, 22, {3:1, 35:1, 22:1, 375:1}, SelfLoopDistributionStrategy); +var EQUALLY, NORTH_2, NORTH_SOUTH; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopDistributionStrategy', 375, Ljava_lang_Enum_2_classLit, values_68, valueOf_62); +function $clinit_SelfLoopDistributionStrategy$Map(){ + $clinit_SelfLoopDistributionStrategy$Map = emptyMethod; + $MAP_50 = createValueOfMap(($clinit_SelfLoopDistributionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]))); +} + +var $MAP_50; +function $clinit_SelfLoopOrderingStrategy(){ + $clinit_SelfLoopOrderingStrategy = emptyMethod; + STACKED = new SelfLoopOrderingStrategy('STACKED', 0); + SEQUENCED = new SelfLoopOrderingStrategy('SEQUENCED', 1); +} + +function SelfLoopOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_63(name_0){ + $clinit_SelfLoopOrderingStrategy(); + return valueOf(($clinit_SelfLoopOrderingStrategy$Map() , $MAP_51), name_0); +} + +function values_69(){ + $clinit_SelfLoopOrderingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]); +} + +defineClass(376, 22, {3:1, 35:1, 22:1, 376:1}, SelfLoopOrderingStrategy); +var SEQUENCED, STACKED; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopOrderingStrategy', 376, Ljava_lang_Enum_2_classLit, values_69, valueOf_63); +function $clinit_SelfLoopOrderingStrategy$Map(){ + $clinit_SelfLoopOrderingStrategy$Map = emptyMethod; + $MAP_51 = createValueOfMap(($clinit_SelfLoopOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]))); +} + +var $MAP_51; +function $getHorizontalSpacing(this$static, nt1, nt2){ + return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsHorizontal); +} + +function $getLocalSpacing(this$static, nt1, nt2, nodeTypeSpacingMapping){ + var layoutOption; + layoutOption = nodeTypeSpacingMapping[nt1.ordinal][nt2.ordinal]; + return $doubleValue(castToDouble($getProperty(this$static.graph_0, layoutOption))); +} + +function $getLocalSpacing_0(n1, n2, nodeTypeSpacingMapping){ + var layoutOption, s1, s2, t1, t2; + t1 = n1.type_0; + t2 = n2.type_0; + layoutOption = nodeTypeSpacingMapping[t1.ordinal][t2.ordinal]; + s1 = castToDouble(getIndividualOrDefault(n1, layoutOption)); + s2 = castToDouble(getIndividualOrDefault(n2, layoutOption)); + return $wnd.Math.max((checkCriticalNotNull(s1) , s1), (checkCriticalNotNull(s2) , s2)); +} + +function $getVerticalSpacing(this$static, nt1, nt2){ + return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsVertical); +} + +function $getVerticalSpacing_0(this$static, n1, n2){ + return $getLocalSpacing_0(n1, n2, this$static.nodeTypeSpacingOptionsVertical); +} + +function $nodeTypeSpacing(this$static, n1, n2, spacing){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacing); + setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacing); +} + +function $nodeTypeSpacing_0(this$static, n1, n2, spacingVert, spacingHorz){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n1.ordinal], n2.ordinal, spacingHorz); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n2.ordinal], n1.ordinal, spacingHorz); +} + +function $nodeTypeSpacing_1(this$static, nt, spacing){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacing); +} + +function $nodeTypeSpacing_2(this$static, nt, spacingVert, spacingHorz){ + setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacingVert); + setCheck(this$static.nodeTypeSpacingOptionsHorizontal[nt.ordinal], nt.ordinal, spacingHorz); +} + +function Spacings(graph){ + var n; + this.graph_0 = graph; + n = ($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT])).length; + this.nodeTypeSpacingOptionsHorizontal = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); + this.nodeTypeSpacingOptionsVertical = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); + $nodeTypeSpacing_2(this, NORMAL, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0), SPACING_NODE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, NORMAL, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing(this, NORMAL, NORTH_SOUTH_PORT, SPACING_EDGE_NODE); + $nodeTypeSpacing(this, NORMAL, EXTERNAL_PORT, SPACING_EDGE_NODE); + $nodeTypeSpacing_0(this, NORMAL, LABEL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_2(this, LONG_EDGE, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); + $nodeTypeSpacing(this, LONG_EDGE, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, LONG_EDGE, EXTERNAL_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing_0(this, LONG_EDGE, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_1(this, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, NORTH_SOUTH_PORT, EXTERNAL_PORT, SPACING_EDGE_EDGE); + $nodeTypeSpacing(this, NORTH_SOUTH_PORT, LABEL, SPACING_LABEL_NODE); + $nodeTypeSpacing_1(this, EXTERNAL_PORT, SPACING_PORT_PORT); + $nodeTypeSpacing_0(this, EXTERNAL_PORT, LABEL, SPACING_LABEL_PORT_VERTICAL, SPACING_LABEL_PORT_HORIZONTAL); + $nodeTypeSpacing_2(this, LABEL, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE); + $nodeTypeSpacing_2(this, BREAKING_POINT, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, NORMAL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); + $nodeTypeSpacing_0(this, BREAKING_POINT, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); +} + +function getIndividualOrDefault(node, property){ + var individualSpacings, result; + result = null; + if ($hasProperty(node, ($clinit_LayeredOptions() , SPACING_INDIVIDUAL))) { + individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && (result = $getProperty($getGraph(node), property)); + return result; +} + +defineClass(304, 1, {304:1}, Spacings); +var Lorg_eclipse_elk_alg_layered_options_Spacings_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'Spacings', 304); +function $clinit_SplineRoutingMode(){ + $clinit_SplineRoutingMode = emptyMethod; + CONSERVATIVE = new SplineRoutingMode('CONSERVATIVE', 0); + CONSERVATIVE_SOFT = new SplineRoutingMode('CONSERVATIVE_SOFT', 1); + SLOPPY = new SplineRoutingMode('SLOPPY', 2); +} + +function SplineRoutingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_64(name_0){ + $clinit_SplineRoutingMode(); + return valueOf(($clinit_SplineRoutingMode$Map() , $MAP_52), name_0); +} + +function values_70(){ + $clinit_SplineRoutingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]); +} + +defineClass(336, 22, {3:1, 35:1, 22:1, 336:1}, SplineRoutingMode); +var CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY; +var Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SplineRoutingMode', 336, Ljava_lang_Enum_2_classLit, values_70, valueOf_64); +function $clinit_SplineRoutingMode$Map(){ + $clinit_SplineRoutingMode$Map = emptyMethod; + $MAP_52 = createValueOfMap(($clinit_SplineRoutingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]))); +} + +var $MAP_52; +function $clinit_ValidifyStrategy(){ + $clinit_ValidifyStrategy = emptyMethod; + NO = new ValidifyStrategy('NO', 0); + GREEDY_0 = new ValidifyStrategy('GREEDY', 1); + LOOK_BACK = new ValidifyStrategy('LOOK_BACK', 2); +} + +function ValidifyStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_65(name_0){ + $clinit_ValidifyStrategy(); + return valueOf(($clinit_ValidifyStrategy$Map() , $MAP_53), name_0); +} + +function values_71(){ + $clinit_ValidifyStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]); +} + +defineClass(338, 22, {3:1, 35:1, 22:1, 338:1}, ValidifyStrategy); +var GREEDY_0, LOOK_BACK, NO; +var Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ValidifyStrategy', 338, Ljava_lang_Enum_2_classLit, values_71, valueOf_65); +function $clinit_ValidifyStrategy$Map(){ + $clinit_ValidifyStrategy$Map = emptyMethod; + $MAP_53 = createValueOfMap(($clinit_ValidifyStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]))); +} + +var $MAP_53; +function $clinit_WrappingStrategy(){ + $clinit_WrappingStrategy = emptyMethod; + OFF_0 = new WrappingStrategy('OFF', 0); + SINGLE_EDGE = new WrappingStrategy('SINGLE_EDGE', 1); + MULTI_EDGE = new WrappingStrategy('MULTI_EDGE', 2); +} + +function WrappingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_66(name_0){ + $clinit_WrappingStrategy(); + return valueOf(($clinit_WrappingStrategy$Map() , $MAP_54), name_0); +} + +function values_72(){ + $clinit_WrappingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]); +} + +defineClass(377, 22, {3:1, 35:1, 22:1, 377:1}, WrappingStrategy); +var MULTI_EDGE, OFF_0, SINGLE_EDGE; +var Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'WrappingStrategy', 377, Ljava_lang_Enum_2_classLit, values_72, valueOf_66); +function $clinit_WrappingStrategy$Map(){ + $clinit_WrappingStrategy$Map = emptyMethod; + $MAP_54 = createValueOfMap(($clinit_WrappingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]))); +} + +var $MAP_54; +function $clinit_DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $dfs_3(this$static, n){ + var out, out$iterator, target; + if (this$static.visited[n.id_0]) { + return; + } + this$static.visited[n.id_0] = true; + this$static.active[n.id_0] = true; + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 17); + if ($isSelfLoop(out)) { + continue; + } + target = out.target.owner; + this$static.active[target.id_0]?$add_3(this$static.edgesToBeReversed, out):$dfs_3(this$static, target); + } + this$static.active[n.id_0] = false; +} + +function $process_57(this$static, graph, monitor){ + var edge, edge$iterator, i, index_0, n, node, node$iterator, nodeCount, nodes, source, source$iterator; + $begin(monitor, 'Depth-first cycle removal', 1); + nodes = graph.layerlessNodes; + nodeCount = nodes.array.length; + this$static.sources = new ArrayList; + this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); + this$static.active = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); + this$static.edgesToBeReversed = new ArrayList; + index_0 = 0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = index_0; + isEmpty_13($getIncomingEdges(node)) && $add_3(this$static.sources, node); + ++index_0; + } + for (source$iterator = new ArrayList$1(this$static.sources); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 10); + $dfs_3(this$static, source); + } + for (i = 0; i < nodeCount; i++) { + if (!this$static.visited[i]) { + n = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 10)); + $dfs_3(this$static, n); + } + } + for (edge$iterator = new ArrayList$1(this$static.edgesToBeReversed); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + this$static.sources = null; + this$static.visited = null; + this$static.active = null; + this$static.edgesToBeReversed = null; + $done_0(monitor); +} + +function DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker(); +} + +defineClass(1383, 1, $intern_113, DepthFirstCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION; +} +; +_.process = function process_54(graph, monitor){ + $process_57(this, castTo(graph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION; +var Lorg_eclipse_elk_alg_layered_p1cycles_DepthFirstCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'DepthFirstCycleBreaker', 1383); +function $clinit_GreedyCycleBreaker(){ + $clinit_GreedyCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_0 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $process_58(this$static, layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$iterator, edge$iterator0, edge$max, index_0, maxNode, maxNodes, maxOutflow, nextLeft, nextRight, node, node$iterator, node$iterator0, node$iterator1, nodes, outflow, outgoingEdges, port, port$array, port$index, port$iterator, port$max, ports, priority, shiftBase, sink, source, targetIx, unprocessedNodeCount; + $begin(monitor, 'Greedy cycle removal', 1); + nodes = layeredGraph.layerlessNodes; + unprocessedNodeCount = nodes.array.length; + this$static.indeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + this$static.outdeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + this$static.mark = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = index_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + if (edge.source.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; + this$static.indeg[index_0] += priority > 0?priority + 1:1; + } + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (edge.target.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; + this$static.outdeg[index_0] += priority > 0?priority + 1:1; + } + } + this$static.outdeg[index_0] == 0?$add_7(this$static.sinks, node):this$static.indeg[index_0] == 0 && $add_7(this$static.sources, node); + ++index_0; + } + nextRight = -1; + nextLeft = 1; + maxNodes = new ArrayList; + this$static.random_0 = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + while (unprocessedNodeCount > 0) { + while (this$static.sinks.size_0 != 0) { + sink = castTo($removeFirst_0(this$static.sinks), 10); + this$static.mark[sink.id_0] = nextRight--; + $updateNeighbors(this$static, sink); + --unprocessedNodeCount; + } + while (this$static.sources.size_0 != 0) { + source = castTo($removeFirst_0(this$static.sources), 10); + this$static.mark[source.id_0] = nextLeft++; + $updateNeighbors(this$static, source); + --unprocessedNodeCount; + } + if (unprocessedNodeCount > 0) { + maxOutflow = $intern_42; + for (node$iterator1 = new ArrayList$1(nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + if (this$static.mark[node.id_0] == 0) { + outflow = this$static.outdeg[node.id_0] - this$static.indeg[node.id_0]; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxNodes.array[maxNodes.array.length] = node; + } + } + } + maxNode = this$static.chooseNodeWithMaxOutflow(maxNodes); + this$static.mark[maxNode.id_0] = nextLeft++; + $updateNeighbors(this$static, maxNode); + --unprocessedNodeCount; + } + } + shiftBase = nodes.array.length + 1; + for (index_0 = 0; index_0 < nodes.array.length; index_0++) { + this$static.mark[index_0] < 0 && (this$static.mark[index_0] += shiftBase); + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + ports = toPortArray(node.ports); + for (port$array = ports , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + outgoingEdges = toEdgeArray(port.outgoingEdges); + for (edge$array = outgoingEdges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { + edge = edge$array[edge$index]; + targetIx = edge.target.owner.id_0; + if (this$static.mark[node.id_0] > this$static.mark[targetIx]) { + $reverse_0(edge, true); + $setProperty_0(layeredGraph, CYCLIC, ($clinit_Boolean() , true)); + } + } + } + } + this$static.indeg = null; + this$static.outdeg = null; + this$static.mark = null; + $reset_0(this$static.sources); + $reset_0(this$static.sinks); + $done_0(monitor); +} + +function $updateNeighbors(this$static, node){ + var connectedPort, edge, edge$iterator, endpoint, index_0, port, port$iterator, priority; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + connectedPort = edge.source == port?edge.target:edge.source; + endpoint = connectedPort.owner; + if (node == endpoint) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; + priority < 0 && (priority = 0); + index_0 = endpoint.id_0; + if (this$static.mark[index_0] == 0) { + if (edge.target == connectedPort) { + this$static.indeg[index_0] -= priority + 1; + this$static.indeg[index_0] <= 0 && this$static.outdeg[index_0] > 0 && $add_7(this$static.sources, endpoint); + } + else { + this$static.outdeg[index_0] -= priority + 1; + this$static.outdeg[index_0] <= 0 && this$static.indeg[index_0] > 0 && $add_7(this$static.sinks, endpoint); + } + } + } + } +} + +function GreedyCycleBreaker(){ + $clinit_GreedyCycleBreaker(); + this.sources = new LinkedList; + this.sinks = new LinkedList; +} + +defineClass(782, 1, $intern_113, GreedyCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_0(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_55(layeredGraph, monitor){ + $process_58(this, castTo(layeredGraph, 37), monitor); +} +; +_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow(nodes){ + return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyCycleBreaker', 782); +function GreedyModelOrderCycleBreaker(){ + $clinit_GreedyCycleBreaker(); + GreedyCycleBreaker.call(this); +} + +defineClass(1386, 782, $intern_113, GreedyModelOrderCycleBreaker); +_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow_0(nodes){ + var minimumModelOrder, node, node$iterator, returnNode; + returnNode = null; + minimumModelOrder = $intern_0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 < minimumModelOrder) { + minimumModelOrder = castTo($getProperty(node, MODEL_ORDER_0), 19).value_0; + returnNode = node; + } + } + if (!returnNode) { + return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); + } + return returnNode; +} +; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyModelOrderCycleBreaker', 1386); +function $clinit_InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_1 = $addAfter($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P5_EDGE_ROUTING, REVERSED_EDGE_RESTORER); +} + +function $findCycles(this$static, node1, revEdges){ + var edge, edge$iterator, node2, port, port$iterator; + node1.id_0 = -1; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node2 = edge.target.owner; + node1 != node2 && (node2.id_0 < 0?revEdges.add_2(edge):node2.id_0 > 0 && $findCycles(this$static, node2, revEdges)); + } + } + node1.id_0 = 0; +} + +function $process_59(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edge$iterator0, edge$iterator1, node, node$iterator, port, port$iterator, revEdges, source, source$iterator, sourcex, target, targetx; + $begin(monitor, 'Interactive cycle breaking', 1); + revEdges = new ArrayList; + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 10); + source.id_0 = 1; + sourcex = $getInteractiveReferencePoint(source).x_0; + for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + target = edge.target.owner; + if (target != source) { + targetx = $getInteractiveReferencePoint(target).x_0; + targetx < sourcex && (revEdges.array[revEdges.array.length] = edge , true); + } + } + } + } + for (edge$iterator1 = new ArrayList$1(revEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_7(edge$iterator1), 17); + $reverse_0(edge, true); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 > 0 && $findCycles(this$static, node, revEdges); + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker(); +} + +defineClass(1384, 1, $intern_113, InteractiveCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_1(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_56(layeredGraph, monitor){ + $process_59(this, castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p1cycles_InteractiveCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'InteractiveCycleBreaker', 1384); +function $clinit_ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_2 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); +} + +function $computeConstraintModelOrder(this$static, node, offset){ + var modelOrder; + modelOrder = 0; + switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { + case 2: + modelOrder = 2 * -offset + this$static.firstSeparateModelOrder; + ++this$static.firstSeparateModelOrder; + break; + case 1: + modelOrder = -offset; + break; + case 3: + modelOrder = offset; + break; + case 4: + modelOrder = 2 * offset + this$static.lastSeparateModelOrder; + ++this$static.lastSeparateModelOrder; + } + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (modelOrder += castTo($getProperty(node, MODEL_ORDER_0), 19).value_0); + return modelOrder; +} + +function $process_60(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edge$iterator0, modelOrderSource, modelOrderTarget, node, node$iterator, offset, port, port$iterator, revEdges, source, source$iterator, target; + $begin(monitor, 'Model order cycle breaking', 1); + this$static.firstSeparateModelOrder = 0; + this$static.lastSeparateModelOrder = 0; + revEdges = new ArrayList; + offset = layeredGraph.layerlessNodes.array.length; + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (offset = $wnd.Math.max(offset, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 + 1)); + } + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 10); + modelOrderSource = $computeConstraintModelOrder(this$static, source, offset); + for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + target = edge.target.owner; + modelOrderTarget = $computeConstraintModelOrder(this$static, target, offset); + modelOrderTarget < modelOrderSource && (revEdges.array[revEdges.array.length] = edge , true); + } + } + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker(); +} + +defineClass(1385, 1, $intern_113, ModelOrderCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_2(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_57(layeredGraph, monitor){ + $process_60(this, castTo(layeredGraph, 37), monitor); +} +; +_.firstSeparateModelOrder = 0; +_.lastSeparateModelOrder = 0; +var INTERMEDIATE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p1cycles_ModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'ModelOrderCycleBreaker', 1385); +function $clinit_CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_0 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $canAdd_0(n, l){ + var e, e$iterator, v; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + v = e.target.owner; + if (v.layer == l) { + return false; + } + } + return true; +} + +function $compareNodesInTopo(this$static, u, v){ + var inListU, inLsitV, itU, itV, iu, iv; + inListU = castTo($get(this$static.inTopo, u), 15); + inLsitV = castTo($get(this$static.inTopo, v), 15); + itU = inListU.listIterator_1(inListU.size_1()); + itV = inLsitV.listIterator_1(inLsitV.size_1()); + while (itU.hasPrevious() && itV.hasPrevious()) { + iu = castTo(itU.previous_0(), 19); + iv = castTo(itV.previous_0(), 19); + if (iu != iv) { + return compare_5(iu.value_0, iv.value_0); + } + } + return !itU.hasNext_0() && !itV.hasNext_0()?0:itU.hasNext_0()?1:-1; +} + +function $createLayer(graph, layers){ + var aLayer; + aLayer = new Layer(graph); + layers.array[layers.array.length] = aLayer; + return aLayer; +} + +function $dfs_4(this$static, start_0, v){ + var out, out$iterator, transitive, transitive$iterator, w; + if (this$static.nodeMark[v.id_0]) { + return; + } + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 17); + w = out.target.owner; + for (transitive$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(w).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(transitive$iterator);) { + transitive = castTo($next_0(transitive$iterator), 17); + transitive.source.owner == start_0 && (this$static.edgeMark[transitive.id_0] = true); + } + $dfs_4(this$static, start_0, w); + } + this$static.nodeMark[v.id_0] = true; +} + +function $lambda$1_2(this$static, n1_0, n2_1){ + return -compare_5(this$static.topoOrd[n1_0.id_0], this$static.topoOrd[n2_1.id_0]); +} + +function $process_61(this$static, layeredGraph, progressMonitor){ + var currentLayer, e, e$iterator, edgeIndex, i, index_0, j, layers, n, n$iterator, sinks, sources, src_0, tgt, u, v, v$iterator, v$iterator0, w; + $begin(progressMonitor, 'Coffman-Graham Layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + $done_0(progressMonitor); + return; + } + w = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)), 19).value_0; + index_0 = 0; + edgeIndex = 0; + for (n$iterator = new ArrayList$1(layeredGraph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + e.id_0 = edgeIndex++; + } + } + this$static.nodeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, index_0, 16, 1); + this$static.edgeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, edgeIndex, 16, 1); + this$static.inDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + this$static.outDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + this$static.topoOrd = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + $clear(this$static.inTopo); + $transitiveReduction(this$static, layeredGraph); + sources = new PriorityQueue(new CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type(this$static)); + for (v$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator0.i < v$iterator0.this$01.array.length;) { + v = castTo($next_7(v$iterator0), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + this$static.edgeMark[e.id_0] || ++this$static.inDeg[v.id_0]; + } + this$static.inDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sources, v)) , true); + } + i = 0; + while (sources.heap.array.length != 0) { + v = castTo($poll_0(sources), 10); + this$static.topoOrd[v.id_0] = i++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (this$static.edgeMark[e.id_0]) { + continue; + } + tgt = e.target.owner; + --this$static.inDeg[tgt.id_0]; + $put(this$static.inTopo, tgt, valueOf_4(this$static.topoOrd[v.id_0])); + this$static.inDeg[tgt.id_0] == 0 && (checkCriticalState_0($offer(sources, tgt)) , true); + } + } + sinks = new PriorityQueue(new CoffmanGrahamLayerer$lambda$1$Type(this$static)); + for (v$iterator = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 10); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + this$static.edgeMark[e.id_0] || ++this$static.outDeg[v.id_0]; + } + this$static.outDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sinks, v)) , true); + } + layers = new ArrayList; + currentLayer = $createLayer(layeredGraph, layers); + while (sinks.heap.array.length != 0) { + u = castTo($poll_0(sinks), 10); + (currentLayer.nodes.array.length >= w || !$canAdd_0(u, currentLayer)) && (currentLayer = $createLayer(layeredGraph, layers)); + $setLayer_0(u, currentLayer); + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(u).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (this$static.edgeMark[e.id_0]) { + continue; + } + src_0 = e.source.owner; + --this$static.outDeg[src_0.id_0]; + this$static.outDeg[src_0.id_0] == 0 && (checkCriticalState_0($offer(sinks, src_0)) , true); + } + } + for (j = layers.array.length - 1; j >= 0; --j) { + $add_3(layeredGraph.layers, (checkCriticalElementIndex(j, layers.array.length) , castTo(layers.array[j], 29))); + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(progressMonitor); +} + +function $transitiveReduction(this$static, graph){ + var out, out$iterator, start_0, start$iterator; + for (start$iterator = new ArrayList$1(graph.layerlessNodes); start$iterator.i < start$iterator.this$01.array.length;) { + start_0 = castTo($next_7(start$iterator), 10); + fill_3(this$static.nodeMark); + for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(start_0).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { + out = castTo($next_0(out$iterator), 17); + $dfs_4(this$static, start_0, out.target.owner); + } + } +} + +function CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer(); + this.inTopo = new ArrayListMultimap; +} + +defineClass(1389, 1, $intern_113, CoffmanGrahamLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_3(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_58(layeredGraph, progressMonitor){ + $process_61(this, castTo(layeredGraph, 37), progressMonitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer', 1389); +function CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1390, 1, $intern_88, CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type); +_.compare_1 = function compare_61(arg0, arg1){ + return $compareNodesInTopo(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_142(other){ + return this === other; +} +; +_.reversed = function reversed_53(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type', 1390); +function CoffmanGrahamLayerer$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1391, 1, $intern_88, CoffmanGrahamLayerer$lambda$1$Type); +_.compare_1 = function compare_62(arg0, arg1){ + return $lambda$1_2(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_143(other){ + return this === other; +} +; +_.reversed = function reversed_54(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/lambda$1$Type', 1391); +function $checkNode(this$static, node1, graph){ + var edge, edge$iterator, layer1, layer2, newIndex, newLayer, node2, port, port$iterator; + node1.id_0 = 1; + layer1 = node1.layer; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node2 = edge.target.owner; + if (node1 != node2) { + layer2 = node2.layer; + if (layer2.id_0 <= layer1.id_0) { + newIndex = layer1.id_0 + 1; + if (newIndex == graph.layers.array.length) { + newLayer = new Layer(graph); + newLayer.id_0 = newIndex; + $add_3(graph.layers, newLayer); + $setLayer_0(node2, newLayer); + } + else { + newLayer = castTo($get_11(graph.layers, newIndex), 29); + $setLayer_0(node2, newLayer); + } + $checkNode(this$static, node2, graph); + } + } + } + } +} + +function $process_62(this$static, layeredGraph, monitor){ + var currentSpans, foundSpan, layer, layerIterator, layers, maxx, minx, nextIndex, node, node$iterator, node$iterator0, node$iterator1, span_0, span$iterator, spanIter; + $begin(monitor, 'Interactive node layering', 1); + currentSpans = new ArrayList; + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + minx = node.pos.x_0; + maxx = minx + node.size_0.x_0; + maxx = $wnd.Math.max(minx + 1, maxx); + spanIter = new AbstractList$ListIteratorImpl(currentSpans, 0); + foundSpan = null; + while (spanIter.i < spanIter.this$01_0.size_1()) { + span_0 = (checkCriticalElement(spanIter.i < spanIter.this$01_0.size_1()) , castTo(spanIter.this$01_0.get_0(spanIter.last = spanIter.i++), 569)); + if (span_0.start_0 >= maxx) { + checkCriticalElement(spanIter.i > 0); + spanIter.this$01.get_0(spanIter.last = --spanIter.i); + break; + } + else if (span_0.end > minx) { + if (!foundSpan) { + $add_3(span_0.nodes, node); + span_0.start_0 = $wnd.Math.min(span_0.start_0, minx); + span_0.end = $wnd.Math.max(span_0.end, maxx); + foundSpan = span_0; + } + else { + $addAll_2(foundSpan.nodes, span_0.nodes); + foundSpan.end = $wnd.Math.max(foundSpan.end, span_0.end); + $remove_8(spanIter); + } + } + } + if (!foundSpan) { + foundSpan = new InteractiveLayerer$LayerSpan; + foundSpan.start_0 = minx; + foundSpan.end = maxx; + $add_1(spanIter, foundSpan); + $add_3(foundSpan.nodes, node); + } + } + layers = layeredGraph.layers; + nextIndex = 0; + for (span$iterator = new ArrayList$1(currentSpans); span$iterator.i < span$iterator.this$01.array.length;) { + span_0 = castTo($next_7(span$iterator), 569); + layer = new Layer(layeredGraph); + layer.id_0 = nextIndex++; + layers.array[layers.array.length] = layer; + for (node$iterator1 = new ArrayList$1(span_0.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + $setLayer_0(node, layer); + node.id_0 = 0; + } + } + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 == 0 && $checkNode(this$static, node, layeredGraph); + } + layerIterator = new AbstractList$ListIteratorImpl(layers, 0); + while (layerIterator.i < layerIterator.this$01_0.size_1()) { + (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)).nodes.array.length == 0 && $remove_8(layerIterator); + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function InteractiveLayerer(){ +} + +defineClass(1392, 1, $intern_113, InteractiveLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_4(graph){ + return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_59(layeredGraph, monitor){ + $process_62(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer', 1392); +function InteractiveLayerer$LayerSpan(){ + this.nodes = new ArrayList; +} + +defineClass(569, 1, {569:1}, InteractiveLayerer$LayerSpan); +_.end = 0; +_.start_0 = 0; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer$LayerSpan_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer/LayerSpan', 569); +function $clinit_LongestPathLayerer(){ + $clinit_LongestPathLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_1 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $process_63(this$static, thelayeredGraph, monitor){ + var index_0, node, node$iterator, node$iterator0, nodes; + $begin(monitor, 'Longest path layering', 1); + this$static.layeredGraph = thelayeredGraph; + nodes = this$static.layeredGraph.layerlessNodes; + this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.array.length, 15, 1); + index_0 = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = index_0; + this$static.nodeHeights[index_0] = -1; + ++index_0; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $visit(this$static, node); + } + nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.layeredGraph = null; + this$static.nodeHeights = null; + $done_0(monitor); +} + +function $putNode(this$static, node, height){ + var i, layers; + layers = this$static.layeredGraph.layers; + for (i = layers.array.length; i < height; i++) { + $add_2(layers, 0, new Layer(this$static.layeredGraph)); + } + $setLayer_0(node, castTo($get_11(layers, layers.array.length - height), 29)); + this$static.nodeHeights[node.id_0] = height; +} + +function $visit(this$static, node){ + var edge, edge$iterator, height, maxHeight, port, port$iterator, targetHeight, targetNode; + height = this$static.nodeHeights[node.id_0]; + if (height >= 0) { + return height; + } + else { + maxHeight = 1; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetNode = edge.target.owner; + if (node != targetNode) { + targetHeight = $visit(this$static, targetNode); + maxHeight = $wnd.Math.max(maxHeight, targetHeight + 1); + } + } + } + $putNode(this$static, node, maxHeight); + return maxHeight; + } +} + +function LongestPathLayerer(){ + $clinit_LongestPathLayerer(); +} + +defineClass(1388, 1, $intern_113, LongestPathLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_5(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_60(thelayeredGraph, monitor){ + $process_63(this, castTo(thelayeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathLayerer', 1388); +function $clinit_MinWidthLayerer(){ + $clinit_MinWidthLayerer = emptyMethod; + UPPERBOUND_ON_WIDTH_RANGE = closed_0(valueOf_4(1), valueOf_4(4)); + COMPENSATOR_RANGE = closed_0(valueOf_4(1), valueOf_4(2)); +} + +function $computeMinWidthLayering(this$static, upperBoundOnWidth, compensator, nodes, nodeSuccessors){ + var alreadyPlacedInCurrentLayer, alreadyPlacedInOtherLayers, currentLayer, currentNode, currentSpanningEdges, goingOutFromThisLayer, inDeg, layers, maxWidth, outDeg, realWidth, ubwConsiderSize, unplacedNodes, widthCurrent, widthUp; + layers = new ArrayList; + unplacedNodes = newLinkedHashSet(nodes); + ubwConsiderSize = upperBoundOnWidth * this$static.avgSize; + inDeg = 0; + outDeg = 0; + alreadyPlacedInCurrentLayer = new HashSet; + alreadyPlacedInOtherLayers = new HashSet; + currentLayer = new ArrayList; + widthCurrent = 0; + widthUp = 0; + maxWidth = 0; + realWidth = 0; + currentSpanningEdges = 0; + goingOutFromThisLayer = 0; + while (unplacedNodes.map_0.size_1() != 0) { + currentNode = $selectNode(unplacedNodes, nodeSuccessors, alreadyPlacedInOtherLayers); + if (currentNode) { + unplacedNodes.map_0.remove_0(currentNode) != null; + currentLayer.array[currentLayer.array.length] = currentNode; + alreadyPlacedInCurrentLayer.map_0.put(currentNode, alreadyPlacedInCurrentLayer); + outDeg = this$static.outDegree[currentNode.id_0]; + widthCurrent += this$static.normSize[currentNode.id_0] - outDeg * this$static.dummySize; + inDeg = this$static.inDegree[currentNode.id_0]; + widthUp += inDeg * this$static.dummySize; + goingOutFromThisLayer += outDeg * this$static.dummySize; + realWidth += this$static.normSize[currentNode.id_0]; + } + if (!currentNode || unplacedNodes.map_0.size_1() == 0 || widthCurrent >= ubwConsiderSize && this$static.normSize[currentNode.id_0] > outDeg * this$static.dummySize || widthUp >= compensator * ubwConsiderSize) { + layers.array[layers.array.length] = currentLayer; + currentLayer = new ArrayList; + $addAll(alreadyPlacedInOtherLayers, alreadyPlacedInCurrentLayer); + alreadyPlacedInCurrentLayer.map_0.clear_0(); + currentSpanningEdges -= goingOutFromThisLayer; + maxWidth = $wnd.Math.max(maxWidth, currentSpanningEdges * this$static.dummySize + realWidth); + currentSpanningEdges += widthUp; + widthCurrent = widthUp; + widthUp = 0; + goingOutFromThisLayer = 0; + realWidth = 0; + } + } + return new Pair(maxWidth, layers); +} + +function $countEdgesExceptSelfLoops(edges){ + var edge, edge$iterator, i; + i = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + edge.source.owner == edge.target.owner || ++i; + } + return i; +} + +function $precalcSuccessors(nodes){ + var edge, edge$iterator, node, node$iterator, outEdges, outNodes, successors; + successors = newArrayListWithCapacity(nodes.array.length); + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + outNodes = new HashSet; + outEdges = $getOutgoingEdges(node); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(outEdges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + edge.source.owner == edge.target.owner || $add_6(outNodes, edge.target.owner); + } + successors.array[successors.array.length] = outNodes; + } + return successors; +} + +function $process_64(this$static, layeredGraph, progressMonitor){ + var c, cEnd, cStart, candidateLayering, compensator, currentLayer, i, layerList, layerList$iterator, layering, layers, minNumOfLayers, minWidth, newNumOfLayers, newWidth, node, node$iterator, node$iterator0, node$iterator1, nodeSuccessors, notInserted, numOfNodes, result, size_0, ubw, ubwEnd, ubwStart, upperBoundOnWidth; + $begin(progressMonitor, 'MinWidth layering', 1); + layers = layeredGraph.layers; + notInserted = layeredGraph.layerlessNodes; + upperBoundOnWidth = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)), 19).value_0; + compensator = castTo($getProperty(layeredGraph, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0), 19).value_0; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + this$static.minimumNodeSize = $intern_59; + for (node$iterator0 = new ArrayList$1(notInserted); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + size_0 = node.size_0.y_0; + this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); + } + this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); + numOfNodes = notInserted.array.length; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, numOfNodes, 15, 1); + i = 0; + this$static.avgSize = 0; + for (node$iterator1 = new ArrayList$1(notInserted); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + node.id_0 = i++; + this$static.inDegree[node.id_0] = $countEdgesExceptSelfLoops($getIncomingEdges(node)); + this$static.outDegree[node.id_0] = $countEdgesExceptSelfLoops($getOutgoingEdges(node)); + this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; + this$static.avgSize += this$static.normSize[node.id_0]; + } + this$static.dummySize /= this$static.minimumNodeSize; + this$static.avgSize /= numOfNodes; + nodeSuccessors = $precalcSuccessors(notInserted); + $sort(notInserted, reverseOrder(new MinWidthLayerer$MinOutgoingEdgesComparator(this$static))); + minWidth = $intern_59; + minNumOfLayers = $intern_0; + candidateLayering = null; + ubwStart = upperBoundOnWidth; + ubwEnd = upperBoundOnWidth; + cStart = compensator; + cEnd = compensator; + if (upperBoundOnWidth < 0) { + ubwStart = castTo(UPPERBOUND_ON_WIDTH_RANGE.lowerBound.endpoint_0(), 19).value_0; + ubwEnd = castTo(UPPERBOUND_ON_WIDTH_RANGE.upperBound.endpoint_0(), 19).value_0; + } + if (compensator < 0) { + cStart = castTo(COMPENSATOR_RANGE.lowerBound.endpoint_0(), 19).value_0; + cEnd = castTo(COMPENSATOR_RANGE.upperBound.endpoint_0(), 19).value_0; + } + for (ubw = ubwStart; ubw <= ubwEnd; ubw++) { + for (c = cStart; c <= cEnd; c++) { + result = $computeMinWidthLayering(this$static, ubw, c, notInserted, nodeSuccessors); + newWidth = $doubleValue(castToDouble(result.first)); + layering = castTo(result.second, 15); + newNumOfLayers = layering.size_1(); + if (newWidth < minWidth || newWidth == minWidth && newNumOfLayers < minNumOfLayers) { + minWidth = newWidth; + minNumOfLayers = newNumOfLayers; + candidateLayering = layering; + } + } + } + for (layerList$iterator = candidateLayering.iterator_0(); layerList$iterator.hasNext_0();) { + layerList = castTo(layerList$iterator.next_1(), 15); + currentLayer = new Layer(layeredGraph); + for (node$iterator = layerList.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + $setLayer_0(node, currentLayer); + } + layers.array[layers.array.length] = currentLayer; + } + reverse_2(layers); + notInserted.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(progressMonitor); +} + +function $selectNode(nodes, successors, targets){ + var node, node$iterator; + for (node$iterator = nodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + if ($containsAll(targets, castTo($get_11(successors, node.id_0), 14))) { + return node; + } + } + return null; +} + +function MinWidthLayerer(){ + $clinit_MinWidthLayerer(); +} + +defineClass(1395, 1, $intern_113, MinWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_6(graph){ + return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_61(layeredGraph, progressMonitor){ + $process_64(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.avgSize = 0; +_.dummySize = 0; +_.minimumNodeSize = 0; +var COMPENSATOR_RANGE, UPPERBOUND_ON_WIDTH_RANGE; +var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer', 1395); +function $compare_18(this$static, o1, o2){ + var outs1, outs2; + outs1 = this$static.this$01.outDegree[o1.id_0]; + outs2 = this$static.this$01.outDegree[o2.id_0]; + if (outs1 < outs2) { + return -1; + } + if (outs1 == outs2) { + return 0; + } + return 1; +} + +function MinWidthLayerer$MinOutgoingEdgesComparator(this$0){ + this.this$01 = this$0; +} + +defineClass(1396, 1, $intern_88, MinWidthLayerer$MinOutgoingEdgesComparator); +_.compare_1 = function compare_63(o1, o2){ + return $compare_18(this, castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_144(other){ + return this === other; +} +; +_.reversed = function reversed_55(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer$MinOutgoingEdgesComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer/MinOutgoingEdgesComparator', 1396); +function $clinit_NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer = emptyMethod; + BASELINE_PROCESSING_CONFIGURATION_2 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} + +function $connectedComponents(this$static, theNodes){ + var components, counter, node, node$iterator, node$iterator0; + this$static.nodeVisited == null || this$static.nodeVisited.length < theNodes.array.length?(this$static.nodeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, theNodes.array.length, 16, 1)):fill_3(this$static.nodeVisited); + this$static.componentNodes = new ArrayList; + counter = 0; + for (node$iterator0 = new ArrayList$1(theNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + node.id_0 = counter++; + } + components = new LinkedList; + for (node$iterator = new ArrayList$1(theNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (!this$static.nodeVisited[node.id_0]) { + $connectedComponentsDFS(this$static, node); + components.size_0 == 0 || (checkCriticalElement(components.size_0 != 0) , castTo(components.header.next_0.value_0, 15)).size_1() < this$static.componentNodes.array.length?$addFirst_0(components, this$static.componentNodes):$addLast_0(components, this$static.componentNodes); + this$static.componentNodes = new ArrayList; + } + } + return components; +} + +function $connectedComponentsDFS(this$static, node){ + var edge, edge$iterator, opposite, port, port$iterator; + this$static.nodeVisited[node.id_0] = true; + $add_3(this$static.componentNodes, node); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + opposite = $getOpposite(port, edge).owner; + this$static.nodeVisited[opposite.id_0] || $connectedComponentsDFS(this$static, opposite); + } + } +} + +function $getOpposite(port, edge){ + if (edge.source == port) { + return edge.target; + } + else if (edge.target == port) { + return edge.source; + } + throw toJs(new IllegalArgumentException_0('Input edge is not connected to the input port.')); +} + +function $initialize_4(theNodes){ + var graph, lEdge, lEdge$iterator, lNode, lNode$iterator, lNode$iterator0, nNode, nodeMap; + nodeMap = new HashMap; + graph = new NGraph; + for (lNode$iterator0 = theNodes.iterator_0(); lNode$iterator0.hasNext_0();) { + lNode = castTo(lNode$iterator0.next_1(), 10); + nNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), graph); + $put_9(nodeMap.hashCodeMap, lNode, nNode); + } + for (lNode$iterator = theNodes.iterator_0(); lNode$iterator.hasNext_0();) { + lNode = castTo(lNode$iterator.next_1(), 10); + for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { + lEdge = castTo($next_0(lEdge$iterator), 17); + if ($isSelfLoop(lEdge)) { + continue; + } + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_SHORTNESS_0)), 19).value_0)), 1), castTo($get_10(nodeMap, lEdge.source.owner), 121)), castTo($get_10(nodeMap, lEdge.target.owner), 121))); + } + } + return graph; +} + +function $process_65(this$static, theLayeredGraph, monitor){ + var connComp, connComp$iterator, connectedComponents, graph, iterLimit, l, l$iterator, lNode, layerIdx, layers, nNode, nNode$iterator, previousLayeringNodeCounts, theNodes, thoroughness; + $begin(monitor, 'Network simplex layering', 1); + this$static.layeredGraph = theLayeredGraph; + thoroughness = castTo($getProperty(theLayeredGraph, ($clinit_LayeredOptions() , THOROUGHNESS_0)), 19).value_0 * 4; + theNodes = this$static.layeredGraph.layerlessNodes; + if (theNodes.array.length < 1) { + $done_0(monitor); + return; + } + connectedComponents = $connectedComponents(this$static, theNodes); + previousLayeringNodeCounts = null; + for (connComp$iterator = $listIterator_2(connectedComponents, 0); connComp$iterator.currentNode != connComp$iterator.this$01.tail;) { + connComp = castTo($next_10(connComp$iterator), 15); + iterLimit = thoroughness * round_int($wnd.Math.sqrt(connComp.size_1())); + graph = $initialize_4(connComp); + $execute_0($withBalancing($withPreviousLayering($withIterationLimit(forGraph(graph), iterLimit), previousLayeringNodeCounts), true), $subTask(monitor, 1)); + layers = this$static.layeredGraph.layers; + for (nNode$iterator = new ArrayList$1(graph.nodes); nNode$iterator.i < nNode$iterator.this$01.array.length;) { + nNode = castTo($next_7(nNode$iterator), 121); + while (layers.array.length <= nNode.layer) { + $add_2(layers, layers.array.length, new Layer(this$static.layeredGraph)); + } + lNode = castTo(nNode.origin_0, 10); + $setLayer_0(lNode, castTo($get_11(layers, nNode.layer), 29)); + } + if (connectedComponents.size_0 > 1) { + previousLayeringNodeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.layeredGraph.layers.array.length, 15, 1); + layerIdx = 0; + for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + previousLayeringNodeCounts[layerIdx++] = l.nodes.array.length; + } + } + } + theNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.componentNodes = null; + this$static.layeredGraph = null; + this$static.nodeVisited = null; + $done_0(monitor); +} + +function NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer(); +} + +defineClass(1387, 1, $intern_113, NetworkSimplexLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_7(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_62(theLayeredGraph, monitor){ + $process_65(this, castTo(theLayeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p2layers_NetworkSimplexLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'NetworkSimplexLayerer', 1387); +function $computeDegrees(this$static){ + var node, node$iterator; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.inDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + this$static.outDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + } +} + +function $computeNormalizedSize(this$static){ + var node, node$iterator; + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; + } +} + +function $computeSortedNodes(this$static){ + var node, node$iterator, unsortedNodes; + unsortedNodes = this$static.currentGraph.layerlessNodes; + this$static.sortedLayerlessNodes = (checkNotNull(unsortedNodes) , new ArrayList_1(unsortedNodes)); + for (node$iterator = new ArrayList$1(unsortedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = $getRank(node).value_0; + } + $clinit_Collections(); + $sort(this$static.sortedLayerlessNodes, new StretchWidthLayerer$1); +} + +function $computeSuccessors(this$static){ + var currSucc, edge, edge$iterator, i, node, node$iterator; + i = 0; + this$static.successors = new ArrayList; + currSucc = new HashSet; + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = i; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + $add_6(currSucc, edge.target.owner); + } + currSucc.map_0.remove_0(node) != null; + $add_3(this$static.successors, new HashSet_1(currSucc)); + currSucc.map_0.clear_0(); + ++i; + } +} + +function $conditionGoUp(this$static){ + var a, b; + a = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0] > this$static.maxWidth; + b = this$static.widthUp + this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize > this$static.maxWidth * this$static.upperLayerInfluence * this$static.dummySize; + return a || b; +} + +function $getAverageOutDegree(this$static){ + var allOut, node, node$iterator; + allOut = 0; + for (node$iterator = new ArrayList$1(this$static.currentGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + allOut += size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + } + return allOut / this$static.currentGraph.layerlessNodes.array.length; +} + +function $getRank(node){ + var max_0, pre, preEdge, preEdge$iterator, temp; + max_0 = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + for (preEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(preEdge$iterator);) { + preEdge = castTo($next_0(preEdge$iterator), 17); + pre = preEdge.source.owner; + temp = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(pre).val$inputs1.iterator_0(), new Iterables$10))); + max_0 = $wnd.Math.max(max_0, temp); + } + return valueOf_4(max_0); +} + +function $minMaxNodeSize(this$static){ + var node, node$iterator, size_0; + for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + size_0 = node.size_0.y_0; + this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); + this$static.maximumNodeSize = $wnd.Math.max(this$static.maximumNodeSize, size_0); + } +} + +function $process_66(this$static, layeredGraph, progressMonitor){ + var currentLayer; + $begin(progressMonitor, 'StretchWidth layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + $done_0(progressMonitor); + return; + } + this$static.currentGraph = layeredGraph; + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.minimumNodeSize = $intern_59; + this$static.maximumNodeSize = $intern_60; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + $computeSortedNodes(this$static); + $computeSuccessors(this$static); + $computeDegrees(this$static); + $minMaxNodeSize(this$static); + $computeNormalizedSize(this$static); + this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); + this$static.maximumNodeSize = $wnd.Math.max(1, this$static.maximumNodeSize); + this$static.dummySize = this$static.dummySize / this$static.minimumNodeSize; + this$static.maxWidth = this$static.maximumNodeSize / this$static.minimumNodeSize; + this$static.upperLayerInfluence = $getAverageOutDegree(this$static); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); + this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); + while (this$static.tempLayerlessNodes.array.length != 0) { + this$static.selectedNode = $selectNode_0(this$static); + if (!this$static.selectedNode || $conditionGoUp(this$static) && this$static.alreadyPlacedNodes.map_0.size_1() != 0) { + $updateOutGoing(this$static, currentLayer); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + $addAll(this$static.alreadyPlacedInOtherLayers, this$static.alreadyPlacedNodes); + this$static.alreadyPlacedNodes.map_0.clear_0(); + this$static.widthCurrent = this$static.widthUp; + this$static.widthUp = 0; + } + else { + if ($conditionGoUp(this$static)) { + this$static.currentGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + currentLayer = new Layer(this$static.currentGraph); + $add_3(this$static.currentGraph.layers, currentLayer); + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.alreadyPlacedNodes.map_0.clear_0(); + this$static.alreadyPlacedInOtherLayers.map_0.clear_0(); + ++this$static.maxWidth; + this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); + this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); + } + else { + $setLayer_0(this$static.selectedNode, currentLayer); + $remove_12(this$static.tempLayerlessNodes, this$static.selectedNode); + $add_6(this$static.alreadyPlacedNodes, this$static.selectedNode); + this$static.widthCurrent = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0]; + this$static.widthUp += this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize; + } + } + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + reverse_2(layeredGraph.layers); + $done_0(progressMonitor); +} + +function $selectNode_0(this$static){ + var node, node$iterator; + for (node$iterator = new ArrayList$1(this$static.tempLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (this$static.remainingOutGoing[node.id_0] <= 0) { + return node; + } + } + return null; +} + +function $updateOutGoing(this$static, currentLayer){ + var edge, edge$iterator, node, node$iterator, pos; + for (node$iterator = new ArrayList$1(currentLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + pos = edge.source.owner.id_0; + this$static.remainingOutGoing[pos] = this$static.remainingOutGoing[pos] - 1; + } + } +} + +function StretchWidthLayerer(){ + this.alreadyPlacedNodes = new HashSet; + this.alreadyPlacedInOtherLayers = new HashSet; +} + +defineClass(1393, 1, $intern_113, StretchWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_8(graph){ + return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); +} +; +_.process = function process_63(layeredGraph, progressMonitor){ + $process_66(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.dummySize = 0; +_.maxWidth = 0; +_.maximumNodeSize = 0; +_.minimumNodeSize = 0; +_.upperLayerInfluence = 0; +_.widthCurrent = 0; +_.widthUp = 0; +var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer', 1393); +function $compare_19(o1, o2){ + if (o1.id_0 < o2.id_0) { + return 1; + } + else if (o1.id_0 > o2.id_0) { + return -1; + } + return 0; +} + +function StretchWidthLayerer$1(){ +} + +defineClass(1394, 1, $intern_88, StretchWidthLayerer$1); +_.compare_1 = function compare_64(o1, o2){ + return $compare_19(castTo(o1, 10), castTo(o2, 10)); +} +; +_.equals_0 = function equals_145(other){ + return this === other; +} +; +_.reversed = function reversed_56(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer/1', 1394); +function create_15(cmt, r, currentOrder){ + return cmt == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)?new GreedyPortDistributor:$nextInternal(r, 1) != 0?new NodeRelativePortDistributor(currentOrder.length):new LayerTotalPortDistributor(currentOrder.length); +} + +function $calculateInLayerPortsBarycenterValues(this$static, node){ + var barycenter, connectedPort, connectedPort$iterator, inLayerConnections, inLayerPort, inLayerPort$iterator, layerSize, nodeIndexInLayer, portSide, sum; + nodeIndexInLayer = this$static.nodePositions[node.layer.id_0][node.id_0] + 1; + layerSize = node.layer.nodes.array.length + 1; + for (inLayerPort$iterator = new ArrayList$1(this$static.inLayerPorts); inLayerPort$iterator.i < inLayerPort$iterator.this$01.array.length;) { + inLayerPort = castTo($next_7(inLayerPort$iterator), 11); + sum = 0; + inLayerConnections = 0; + for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(inLayerPort), new LPort$2(inLayerPort)]))); $hasNext_1(connectedPort$iterator);) { + connectedPort = castTo($next_0(connectedPort$iterator), 11); + if (connectedPort.owner.layer == node.layer) { + sum += $positionOf(this$static, connectedPort.owner) + 1; + ++inLayerConnections; + } + } + barycenter = sum / inLayerConnections; + portSide = inLayerPort.side; + portSide == ($clinit_PortSide() , EAST_2)?barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + (layerSize - barycenter)):portSide == WEST_2 && (barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - (layerSize - barycenter))); + } +} + +function $calculatePortRanks(this$static, layer, portType){ + var consumedRank, nodeIx; + consumedRank = 0; + for (nodeIx = 0; nodeIx < layer.length; nodeIx++) { + consumedRank += this$static.calculatePortRanks(layer[nodeIx], consumedRank, portType); + } +} + +function $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy){ + var input_0, output, portDummyPort, portDummyPort$iterator, sum; + input_0 = false; + output = false; + for (portDummyPort$iterator = new ArrayList$1(portDummy.ports); portDummyPort$iterator.i < portDummyPort$iterator.this$01.array.length;) { + portDummyPort = castTo($next_7(portDummyPort$iterator), 11); + maskUndefined($getProperty(portDummyPort, ($clinit_InternalProperties_1() , ORIGIN_0))) === maskUndefined(port) && (portDummyPort.outgoingEdges.array.length == 0?portDummyPort.incomingEdges.array.length == 0 || (input_0 = true):(output = true)); + } + sum = 0; + input_0 && input_0 ^ output?(sum = port.side == ($clinit_PortSide() , NORTH_3)?-this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]:absurdlyLargeFloat - this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]):output && input_0 ^ output?(sum = this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0] + 1):input_0 && output && (sum = port.side == ($clinit_PortSide() , NORTH_3)?0:absurdlyLargeFloat / 2); + return sum; +} + +function $distributePorts(this$static, node, ports){ + this$static.inLayerPorts.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $iteratePortsAndCollectInLayerPorts(this$static, node, ports); + this$static.inLayerPorts.array.length == 0 || $calculateInLayerPortsBarycenterValues(this$static, node); +} + +function $distributePorts_0(this$static, node, side){ + if (!$isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + $distributePorts(this$static, node, $getPorts_1(node, side)); + $distributePorts(this$static, node, $getPorts_1(node, ($clinit_PortSide() , SOUTH_2))); + $distributePorts(this$static, node, $getPorts_1(node, NORTH_3)); + $clinit_Collections(); + $sort(node.ports, new AbstractBarycenterPortDistributor$lambda$0$Type(this$static)); + } +} + +function $distributePortsWhileSweeping(this$static, nodeOrder, currentIndex, isForwardSweep){ + var fixedLayer, freeLayer, node, node$array, node$array0, node$index, node$index0, node$max, node$max0, side; + $updateNodePositions(this$static, nodeOrder, currentIndex); + freeLayer = nodeOrder[currentIndex]; + side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); + if ($isNotFirstLayer(nodeOrder.length, currentIndex, isForwardSweep)) { + fixedLayer = nodeOrder[isForwardSweep?currentIndex - 1:currentIndex + 1]; + $calculatePortRanks(this$static, fixedLayer, isForwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); + for (node$array0 = freeLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { + node = node$array0[node$index0]; + $distributePorts_0(this$static, node, side); + } + $calculatePortRanks(this$static, freeLayer, isForwardSweep?($clinit_PortType() , INPUT):($clinit_PortType() , OUTPUT)); + for (node$array = fixedLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + !!node.nestedGraph || $distributePorts_0(this$static, node, $opposed(side)); + } + } + else { + for (node$array = freeLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $distributePorts_0(this$static, node, side); + } + } + return false; +} + +function $isNotFirstLayer(length_0, currentIndex, isForwardSweep){ + return isForwardSweep?currentIndex != 0:currentIndex != length_0 - 1; +} + +function $iteratePortsAndCollectInLayerPorts(this$static, node, ports){ + var absurdlyLargeFloat, connectedPort, incomingEdge, incomingEdge$iterator, northSouthPort, outgoingEdge, outgoingEdge$iterator, port, port$iterator, portDummy, sum; + this$static.minBarycenter = 0; + this$static.maxBarycenter = 0; + absurdlyLargeFloat = 2 * node.layer.nodes.array.length + 1; + PortIteration: for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + northSouthPort = port.side == ($clinit_PortSide() , NORTH_3) || port.side == SOUTH_2; + sum = 0; + if (northSouthPort) { + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (!portDummy) { + continue; + } + sum += $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy); + } + else { + for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { + outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); + connectedPort = outgoingEdge.target; + if (connectedPort.owner.layer == node.layer) { + $add_3(this$static.inLayerPorts, port); + continue PortIteration; + } + else { + sum += this$static.portRanks[connectedPort.id_0]; + } + } + for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { + incomingEdge = castTo($next_7(incomingEdge$iterator), 17); + connectedPort = incomingEdge.source; + if (connectedPort.owner.layer == node.layer) { + $add_3(this$static.inLayerPorts, port); + continue PortIteration; + } + else { + sum -= this$static.portRanks[connectedPort.id_0]; + } + } + } + if (port.incomingEdges.array.length + port.outgoingEdges.array.length > 0) { + this$static.portBarycenter[port.id_0] = sum / (port.incomingEdges.array.length + port.outgoingEdges.array.length); + this$static.minBarycenter = $wnd.Math.min(this$static.minBarycenter, this$static.portBarycenter[port.id_0]); + this$static.maxBarycenter = $wnd.Math.max(this$static.maxBarycenter, this$static.portBarycenter[port.id_0]); + } + else + northSouthPort && (this$static.portBarycenter[port.id_0] = sum); + } +} + +function $lambda$0_6(this$static, port1_0, port2_1){ + var port1Bary, port2Bary, side1, side2; + side1 = port1_0.side; + side2 = port2_1.side; + if (side1 != side2) { + return side1.ordinal - side2.ordinal; + } + else { + port1Bary = this$static.portBarycenter[port1_0.id_0]; + port2Bary = this$static.portBarycenter[port2_1.id_0]; + return port1Bary == 0 && port2Bary == 0?0:port1Bary == 0?-1:port2Bary == 0?1:compare_4(port1Bary, port2Bary); + } +} + +function $positionOf(this$static, node){ + return this$static.nodePositions[node.layer.id_0][node.id_0]; +} + +function $updateNodePositions(this$static, nodeOrder, currentIndex){ + var i, layer, node; + layer = nodeOrder[currentIndex]; + for (i = 0; i < layer.length; i++) { + node = layer[i]; + this$static.nodePositions[node.layer.id_0][node.id_0] = i; + } +} + +function AbstractBarycenterPortDistributor(numLayers){ + this.inLayerPorts = new ArrayList; + this.nodePositions = initUnidimensionalArray(I_classLit, $intern_16, 48, numLayers, 0, 2); +} + +defineClass(402, 1, $intern_114); +_.initAtEdgeLevel = function initAtEdgeLevel_0(l, n, p, e, edge, nodeOrder){ +} +; +_.distributePortsWhileSweeping = function distributePortsWhileSweeping(nodeOrder, currentIndex, isForwardSweep){ + return $distributePortsWhileSweeping(this, nodeOrder, currentIndex, isForwardSweep); +} +; +_.initAfterTraversal = function initAfterTraversal_0(){ + this.portRanks = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); + this.portBarycenter = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel_0(l, nodeOrder){ + this.nodePositions[l] = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeOrder[l].length, 15, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_0(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + node.id_0 = n; + this.nodePositions[l][n] = n; +} +; +_.initAtPortLevel = function initAtPortLevel_0(l, n, p, nodeOrder){ + castTo($get_11(nodeOrder[l][n].ports, p), 11).id_0 = this.nPorts++; +} +; +_.maxBarycenter = 0; +_.minBarycenter = 0; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor', 402); +function AbstractBarycenterPortDistributor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1633, 1, $intern_88, AbstractBarycenterPortDistributor$lambda$0$Type); +_.compare_1 = function compare_65(arg0, arg1){ + return $lambda$0_6(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_146(other){ + return this === other; +} +; +_.reversed = function reversed_57(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor/lambda$0$Type', 1633); +function $calculateBarycenter(this$static, node, forward_0){ + var associate, associate$iterator, barycenterAssociates, fixedNode, fixedPort, fixedPort$iterator, freePort, freePort$iterator, portIterable; + if (this$static.barycenterState[node.layer.id_0][node.id_0].visited) { + return; + } + else { + this$static.barycenterState[node.layer.id_0][node.id_0].visited = true; + } + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = 0; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = null; + for (freePort$iterator = new ArrayList$1(node.ports); freePort$iterator.i < freePort$iterator.this$01.array.length;) { + freePort = castTo($next_7(freePort$iterator), 11); + portIterable = forward_0?new LPort$1(freePort):new LPort$2(freePort); + for (fixedPort$iterator = portIterable.iterator_0(); fixedPort$iterator.hasNext_0();) { + fixedPort = castTo(fixedPort$iterator.next_1(), 11); + fixedNode = fixedPort.owner; + if (fixedNode.layer == node.layer) { + if (fixedNode != node) { + $calculateBarycenter(this$static, fixedNode, forward_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].degree; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].summedWeight; + } + } + else { + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.portRanks[fixedPort.id_0]; + ++this$static.barycenterState[node.layer.id_0][node.id_0].degree; + } + } + } + barycenterAssociates = castTo($getProperty(node, ($clinit_InternalProperties_1() , BARYCENTER_ASSOCIATES)), 15); + if (barycenterAssociates) { + for (associate$iterator = barycenterAssociates.iterator_0(); associate$iterator.hasNext_0();) { + associate = castTo(associate$iterator.next_1(), 10); + if (node.layer == associate.layer) { + $calculateBarycenter(this$static, associate, forward_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[associate.layer.id_0][associate.id_0].degree; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[associate.layer.id_0][associate.id_0].summedWeight; + } + } + } + if (this$static.barycenterState[node.layer.id_0][node.id_0].degree > 0) { + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += $nextInternal(this$static.random_0, 24) * $intern_81 * 0.07000000029802322 - 0.03500000014901161; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight / this$static.barycenterState[node.layer.id_0][node.id_0].degree; + } +} + +function $calculateBarycenters(this$static, nodes, forward_0){ + var node, node$iterator, node$iterator0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].visited = false; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $calculateBarycenter(this$static, node, forward_0); + } +} + +function $fillInUnknownBarycenters(this$static, nodes, preOrdered){ + var lastValue, maxBary, nextNodeIterator, nextValue, node, node$iterator, node$iterator0, nodesIterator, value_0, x_0; + if (preOrdered) { + lastValue = -1; + nodesIterator = new AbstractList$ListIteratorImpl(nodes, 0); + while (nodesIterator.i < nodesIterator.this$01_0.size_1()) { + node = (checkCriticalElement(nodesIterator.i < nodesIterator.this$01_0.size_1()) , castTo(nodesIterator.this$01_0.get_0(nodesIterator.last = nodesIterator.i++), 10)); + value_0 = this$static.barycenterState[node.layer.id_0][node.id_0].barycenter; + if (value_0 == null) { + nextValue = lastValue + 1; + nextNodeIterator = new AbstractList$ListIteratorImpl(nodes, nodesIterator.i); + while (nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) { + x_0 = $stateOf(this$static, (checkCriticalElement(nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) , castTo(nextNodeIterator.this$01_0.get_0(nextNodeIterator.last = nextNodeIterator.i++), 10))).barycenter; + if (x_0 != null) { + nextValue = (checkCriticalNotNull(x_0) , x_0); + break; + } + } + value_0 = (lastValue + nextValue) / 2; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = (checkCriticalNotNull(value_0) , value_0); + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } + lastValue = (checkCriticalNotNull(value_0) , value_0); + } + } + else { + maxBary = 0; + for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter != null && (maxBary = $wnd.Math.max(maxBary, $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter))); + } + maxBary += 2; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (this$static.barycenterState[node.layer.id_0][node.id_0].barycenter == null) { + value_0 = $nextInternal(this$static.random_0, 24) * $intern_81 * maxBary - 1; + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = value_0; + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } + } + } +} + +function $lambda$0_7(this$static, n1_0, n2_1){ + var s1, s2; + s1 = this$static.barycenterState[n1_0.layer.id_0][n1_0.id_0]; + s2 = this$static.barycenterState[n2_1.layer.id_0][n2_1.id_0]; + if (s1.barycenter != null && s2.barycenter != null) { + return $compareTo_4(s1.barycenter, s2.barycenter); + } + else if (s1.barycenter != null) { + return -1; + } + else if (s2.barycenter != null) { + return 1; + } + return 0; +} + +function $randomizeBarycenters(this$static, nodes){ + var node, node$iterator; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = $nextDouble(this$static.random_0); + this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter); + this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; + } +} + +function $startIndex_0(dir_0, length_0){ + return dir_0?0:$wnd.Math.max(0, length_0 - 1); +} + +function $stateOf(this$static, node){ + return this$static.barycenterState[node.layer.id_0][node.id_0]; +} + +function BarycenterHeuristic(constraintResolver, random, portDistributor){ + this.barycenterStateComparator = new BarycenterHeuristic$lambda$0$Type(this); + this.constraintResolver = constraintResolver; + this.random_0 = random; + this.portDistributor = portDistributor; +} + +defineClass(817, 1, $intern_111, BarycenterHeuristic); +_.initAtEdgeLevel = function initAtEdgeLevel_1(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtNodeLevel = function initAtNodeLevel_1(l, n, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_1(l, n, p, nodeOrder){ +} +; +_.alwaysImproves = function alwaysImproves_0(){ + return false; +} +; +_.initAfterTraversal = function initAfterTraversal_1(){ + this.barycenterState = this.constraintResolver.barycenterStates; + this.portRanks = this.portDistributor.portRanks; +} +; +_.initAtLayerLevel = function initAtLayerLevel_1(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; +} +; +_.isDeterministic = function isDeterministic_0(){ + return false; +} +; +_.minimizeCrossings_0 = function minimizeCrossings_0(layer, preOrdered, randomize, forward_0){ + if (randomize) { + $randomizeBarycenters(this, layer); + } + else { + $calculateBarycenters(this, layer, forward_0); + $fillInUnknownBarycenters(this, layer, preOrdered); + } + if (layer.array.length > 1) { + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, castTo(this, 660)):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); + $processConstraints(this.constraintResolver, layer); + } +} +; +_.minimizeCrossings = function minimizeCrossings_1(order, freeLayerIndex, forwardSweep, isFirstSweep){ + var firstNodeInLayer, fixedLayer, index_0, nodeGroup, nodeGroup$iterator, nodes, preOrdered; + if (freeLayerIndex != $startIndex_0(forwardSweep, order.length)) { + fixedLayer = order[freeLayerIndex - (forwardSweep?1:-1)]; + $calculatePortRanks(this.portDistributor, fixedLayer, forwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); + } + firstNodeInLayer = order[freeLayerIndex][0]; + preOrdered = !isFirstSweep || firstNodeInLayer.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); + nodes = newArrayList_1(order[freeLayerIndex]); + this.minimizeCrossings_0(nodes, preOrdered, false, forwardSweep); + index_0 = 0; + for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { + nodeGroup = castTo($next_7(nodeGroup$iterator), 10); + order[freeLayerIndex][index_0++] = nodeGroup; + } + return false; +} +; +_.setFirstLayerOrder = function setFirstLayerOrder_0(order, isForwardSweep){ + var index_0, nodeGroup, nodeGroup$iterator, nodes, startIndex; + startIndex = $startIndex_0(isForwardSweep, order.length); + nodes = newArrayList_1(order[startIndex]); + this.minimizeCrossings_0(nodes, false, true, isForwardSweep); + index_0 = 0; + for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { + nodeGroup = castTo($next_7(nodeGroup$iterator), 10); + order[startIndex][index_0++] = nodeGroup; + } + return false; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic', 817); +function BarycenterHeuristic$BarycenterState(node){ + this.node = node; +} + +defineClass(658, 1, {658:1}, BarycenterHeuristic$BarycenterState); +_.toString_0 = function toString_98(){ + return 'BarycenterState [node=' + this.node + ', summedWeight=' + this.summedWeight + ', degree=' + this.degree + ', barycenter=' + this.barycenter + ', visited=' + this.visited + ']'; +} +; +_.degree = 0; +_.summedWeight = 0; +_.visited = false; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/BarycenterState', 658); +function BarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1802, 1, $intern_88, BarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_66(arg0, arg1){ + return $lambda$0_7(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_147(other){ + return this === other; +} +; +_.reversed = function reversed_58(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/lambda$0$Type', 1802); +function $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes){ + var currentUnitNode, currentUnitNode$iterator, group, group$iterator, group$iterator0, lastNonDummyNode, lastUnitNode, lastUnitNode$iterator, node, successor, successor$iterator; + for (group$iterator0 = new ArrayList$1(groups); group$iterator0.i < group$iterator0.this$01.array.length;) { + group = castTo($next_7(group$iterator0), 233); + group.outgoingConstraints = null; + group.incomingConstraintsCount = 0; + } + lastNonDummyNode = null; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + node = group.nodes[0]; + if (onlyBetweenNormalNodes && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + for (successor$iterator = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).iterator_0(); successor$iterator.hasNext_0();) { + successor = castTo(successor$iterator.next_1(), 10); + if (!onlyBetweenNormalNodes || successor.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).add_2(this$static.constraintGroups[successor.layer.id_0][successor.id_0]); + ++this$static.constraintGroups[successor.layer.id_0][successor.id_0].incomingConstraintsCount; + } + } + if (!onlyBetweenNormalNodes && node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + if (lastNonDummyNode) { + for (lastUnitNode$iterator = castTo($get(this$static.layoutUnits, lastNonDummyNode), 21).iterator_0(); lastUnitNode$iterator.hasNext_0();) { + lastUnitNode = castTo(lastUnitNode$iterator.next_1(), 10); + for (currentUnitNode$iterator = castTo($get(this$static.layoutUnits, node), 21).iterator_0(); currentUnitNode$iterator.hasNext_0();) { + currentUnitNode = castTo(currentUnitNode$iterator.next_1(), 10); + $getOutgoingConstraints(this$static.constraintGroups[lastUnitNode.layer.id_0][lastUnitNode.id_0]).add_2(this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0]); + ++this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0].incomingConstraintsCount; + } + } + } + lastNonDummyNode = node; + } + } +} + +function $findViolatedConstraint(groups){ + var activeGroups, group, group$iterator, predecessor, predecessor$iterator, successor, successor$iterator, successorIncomingList; + activeGroups = null; + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter); + group.incomingConstraints = null; + if (!!group.outgoingConstraints && group.outgoingConstraints.size_1() > 0 && group.incomingConstraintsCount == 0) { + !activeGroups && (activeGroups = new ArrayList); + activeGroups.array[activeGroups.array.length] = group; + } + } + if (activeGroups) { + while (activeGroups.array.length != 0) { + group = castTo($remove_11(activeGroups, 0), 233); + if (!!group.incomingConstraints && group.incomingConstraints.array.length > 0) { + for (predecessor$iterator = (!group.incomingConstraints && (group.incomingConstraints = new ArrayList) , new ArrayList$1(group.incomingConstraints)); predecessor$iterator.i < predecessor$iterator.this$01.array.length;) { + predecessor = castTo($next_7(predecessor$iterator), 233); + if ($floatValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) == $floatValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { + if ($indexOf_3(groups, predecessor, 0) > $indexOf_3(groups, group, 0)) { + return new Pair(predecessor, group); + } + } + else if ($doubleValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) > $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { + return new Pair(predecessor, group); + } + } + } + for (successor$iterator = (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).iterator_0(); successor$iterator.hasNext_0();) { + successor = castTo(successor$iterator.next_1(), 233); + successorIncomingList = (!successor.incomingConstraints && (successor.incomingConstraints = new ArrayList) , successor.incomingConstraints); + checkCriticalPositionIndex(0, successorIncomingList.array.length); + insertTo(successorIncomingList.array, 0, group); + successor.incomingConstraintsCount == successorIncomingList.array.length && (activeGroups.array[activeGroups.array.length] = successor , true); + } + } + } + return null; +} + +function $handleViolatedConstraint(this$static, firstNodeGroup, secondNodeGroup, nodeGroups){ + var alreadyInserted, firstNodeGroupConstraint, newNodeGroup, nodeGroup, nodeGroupIterator, secondNodeGroupConstraint; + newNodeGroup = new ForsterConstraintResolver$ConstraintGroup_0(this$static, firstNodeGroup, secondNodeGroup); + nodeGroupIterator = new AbstractList$ListIteratorImpl(nodeGroups, 0); + alreadyInserted = false; + while (nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) { + nodeGroup = (checkCriticalElement(nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) , castTo(nodeGroupIterator.this$01_0.get_0(nodeGroupIterator.last = nodeGroupIterator.i++), 233)); + if (nodeGroup == firstNodeGroup || nodeGroup == secondNodeGroup) { + $remove_8(nodeGroupIterator); + } + else if (!alreadyInserted && $doubleValue($stateOf_0(nodeGroup.this$01, nodeGroup.nodes[0]).barycenter) > $doubleValue($stateOf_0(newNodeGroup.this$01, newNodeGroup.nodes[0]).barycenter)) { + checkCriticalElement(nodeGroupIterator.i > 0); + nodeGroupIterator.this$01.get_0(nodeGroupIterator.last = --nodeGroupIterator.i); + $add_1(nodeGroupIterator, newNodeGroup); + alreadyInserted = true; + } + else if (!!nodeGroup.outgoingConstraints && nodeGroup.outgoingConstraints.size_1() > 0) { + firstNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(firstNodeGroup); + secondNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(secondNodeGroup); + if (firstNodeGroupConstraint || secondNodeGroupConstraint) { + (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).add_2(newNodeGroup); + ++newNodeGroup.incomingConstraintsCount; + } + } + } + alreadyInserted || (nodeGroups.array[nodeGroups.array.length] = newNodeGroup , true); +} + +function $initAtNodeLevel(this$static, node, fullInit){ + var layerIndex, layoutUnit, nodeIndex; + layerIndex = node.layer.id_0; + nodeIndex = node.id_0; + this$static.constraintGroups[layerIndex][nodeIndex] = new ForsterConstraintResolver$ConstraintGroup(this$static, node); + if (fullInit) { + this$static.barycenterStates[layerIndex][nodeIndex] = new BarycenterHeuristic$BarycenterState(node); + layoutUnit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + !!layoutUnit && $put(this$static.layoutUnits, layoutUnit, node); + } +} + +function $processConstraints(this$static, nodes){ + if (this$static.constraintsBetweenNonDummies) { + $processConstraints_0(this$static, nodes, true); + $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nodes, 16)), new ForsterConstraintResolver$lambda$0$Type(this$static)); + } + $processConstraints_0(this$static, nodes, false); +} + +function $processConstraints_0(this$static, nodes, onlyBetweenNormalNodes){ + var group, group$iterator, groups, node, node$array, node$index, node$iterator, node$max, violatedConstraint; + groups = new ArrayList_0(nodes.array.length); + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $add_3(groups, this$static.constraintGroups[node.layer.id_0][node.id_0]); + } + $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes); + violatedConstraint = null; + while (violatedConstraint = $findViolatedConstraint(groups)) { + $handleViolatedConstraint(this$static, castTo(violatedConstraint.first, 233), castTo(violatedConstraint.second, 233), groups); + } + nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + for (node$array = group.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + nodes.array[nodes.array.length] = node; + this$static.barycenterStates[node.layer.id_0][node.id_0].barycenter = $stateOf_0(group.this$01, group.nodes[0]).barycenter; + } + } +} + +function $stateOf_0(this$static, node){ + return this$static.barycenterStates[node.layer.id_0][node.id_0]; +} + +function ForsterConstraintResolver(currentNodeOrder){ + currentNodeOrder.length > 0 && currentNodeOrder[0].length > 0 && (this.constraintsBetweenNonDummies = $booleanValue(castToBoolean($getProperty($getGraph(currentNodeOrder[0][0]), ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES))))); + this.barycenterStates = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, $intern_16, 2018, currentNodeOrder.length, 0, 2); + this.constraintGroups = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, $intern_16, 2019, currentNodeOrder.length, 0, 2); + this.layoutUnits = new LinkedHashMultimap; +} + +defineClass(816, 1, $intern_111, ForsterConstraintResolver); +_.initAfterTraversal = function initAfterTraversal_2(){ +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_2(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_2(l, n, p, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_2(l, nodeOrder){ + this.barycenterStates[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, {3:1, 4:1, 5:1, 2018:1}, 658, nodeOrder[l].length, 0, 1); + this.constraintGroups[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, {3:1, 4:1, 5:1, 2019:1}, 233, nodeOrder[l].length, 0, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_2(l, n, nodeOrder){ + $initAtNodeLevel(this, nodeOrder[l][n], true); +} +; +_.constraintsBetweenNonDummies = false; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver', 816); +function $getOutgoingConstraints(this$static){ + !this$static.outgoingConstraints && (this$static.outgoingConstraints = new ArrayList); + return this$static.outgoingConstraints; +} + +function $setBarycenter(this$static, barycenter){ + var node, node$array, node$index, node$max; + for (node$array = this$static.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $stateOf_0(this$static.this$01, node).barycenter = barycenter; + } +} + +function ForsterConstraintResolver$ConstraintGroup(this$0, node){ + this.this$01 = this$0; + this.nodes = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [node]); +} + +function ForsterConstraintResolver$ConstraintGroup_0(this$0, nodeGroup1, nodeGroup2){ + var candidate, candidate$iterator, i, i0, length1, length2; + this.this$01 = this$0; + length1 = nodeGroup1.nodes.length; + length2 = nodeGroup2.nodes.length; + this.nodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, length1 + length2, 0, 1); + for (i0 = 0; i0 < length1; i0++) { + this.nodes[i0] = nodeGroup1.nodes[i0]; + } + for (i = 0; i < length2; i++) { + this.nodes[length1 + i] = nodeGroup2.nodes[i]; + } + if (nodeGroup1.outgoingConstraints) { + this.outgoingConstraints = newLinkedList(nodeGroup1.outgoingConstraints); + this.outgoingConstraints.remove_1(nodeGroup2); + if (nodeGroup2.outgoingConstraints) { + for (candidate$iterator = nodeGroup2.outgoingConstraints.iterator_0(); candidate$iterator.hasNext_0();) { + candidate = castTo(candidate$iterator.next_1(), 233); + if (candidate == nodeGroup1) { + continue; + } + else + this.outgoingConstraints.contains(candidate)?--candidate.incomingConstraintsCount:this.outgoingConstraints.add_2(candidate); + } + } + } + else if (nodeGroup2.outgoingConstraints) { + this.outgoingConstraints = newLinkedList(nodeGroup2.outgoingConstraints); + this.outgoingConstraints.remove_1(nodeGroup1); + } + this.summedWeight = nodeGroup1.summedWeight + nodeGroup2.summedWeight; + this.degree = nodeGroup1.degree + nodeGroup2.degree; + this.degree > 0?$setBarycenter(this, this.summedWeight / this.degree):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null && $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null?$setBarycenter(this, ($doubleValue($stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter) + $doubleValue($stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter)) / 2):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null?$setBarycenter(this, $stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter):$stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null && $setBarycenter(this, $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter); +} + +defineClass(233, 1, {233:1}, ForsterConstraintResolver$ConstraintGroup, ForsterConstraintResolver$ConstraintGroup_0); +_.toString_0 = function toString_99(){ + var i, sb; + sb = new StringBuilder; + sb.string += '['; + for (i = 0; i < this.nodes.length; i++) { + $append_11(sb, $toString_13(this.nodes[i])); + $stateOf_0(this.this$01, this.nodes[0]).barycenter != null && $append_11($append_11((sb.string += '<' , sb), $toString_6($stateOf_0(this.this$01, this.nodes[0]).barycenter)), '>'); + i < this.nodes.length - 1 && (sb.string += ', ' , sb); + } + return (sb.string += ']' , sb).string; +} +; +_.degree = 0; +_.incomingConstraintsCount = 0; +_.summedWeight = 0; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/ConstraintGroup', 233); +function ForsterConstraintResolver$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1797, 1, $intern_19, ForsterConstraintResolver$lambda$0$Type); +_.accept = function accept_114(arg0){ + $initAtNodeLevel(this.$$outer_0, castTo(arg0, 10), false); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/lambda$0$Type', 1797); +function $setBestNodeNPortOrder(this$static, bestNodeNPortOrder){ + this$static.bestNodeAndPortOrder = bestNodeNPortOrder; +} + +function $setCurrentlyBestNodeAndPortOrder(this$static, currentlyBestNodeAndPortOrder){ + this$static.currentlyBestNodeAndPortOrder = currentlyBestNodeAndPortOrder; +} + +function GraphInfoHolder(graph, crossMinType, graphs){ + var constraintResolver, graphProperties, initializables, random; + this.lGraph = graph; + this.currentNodeOrder = $toNodeArray(graph); + this.parent_0 = this.lGraph.parentNode; + this.hasParent = !!this.parent_0; + this.parentGraphData = this.hasParent?castTo($get_11(graphs, $getGraph(this.parent_0).id_0), 214):null; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + this.hasExternalPorts = graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); + this.childGraphs = new ArrayList; + this.crossingsCounter = new AllCrossingsCounter(this.currentNodeOrder); + random = castTo($getProperty(this.lGraph, RANDOM_0), 230); + this.portDistributor = create_15(crossMinType, random, this.currentNodeOrder); + this.layerSweepTypeDecider = new LayerSweepTypeDecider(this); + initializables = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [this, this.crossingsCounter, this.layerSweepTypeDecider, this.portDistributor])); + if (crossMinType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER) && !$booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + initializables.array[initializables.array.length] = constraintResolver; + this.crossMinimizer = new BarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); + } + else if (crossMinType == BARYCENTER && $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + initializables.array[initializables.array.length] = constraintResolver; + this.crossMinimizer = new ModelOrderBarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); + } + else { + this.crossMinimizer = new GreedySwitchHeuristic(crossMinType, this); + } + $add_3(initializables, this.crossMinimizer); + init_0(initializables, this.currentNodeOrder); + this.useBottomUp = $useBottomUp(this.layerSweepTypeDecider); +} + +defineClass(214, 1, {214:1, 225:1}, GraphInfoHolder); +_.initAtEdgeLevel = function initAtEdgeLevel_3(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_3(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_3(){ + this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_3(l, n, nodeOrder){ + var nestedGraph, node; + node = nodeOrder[l][n]; + nestedGraph = node.nestedGraph; + !!nestedGraph && $add_3(this.childGraphs, nestedGraph); +} +; +_.initAtPortLevel = function initAtPortLevel_3(l, n, p, nodeOrder){ + ++this.nPorts; +} +; +_.toString_0 = function toString_100(){ + return deepToString(this.currentNodeOrder, new HashSet); +} +; +_.hasExternalPorts = false; +_.hasParent = false; +_.nPorts = 0; +_.useBottomUp = false; +var Lorg_eclipse_elk_alg_layered_p3order_GraphInfoHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GraphInfoHolder', 214); +function $distributePortsInLayer(this$static, nodeOrder, currentIndex, isForwardSweep){ + var improved, innerGraph, nestedGraph, node, node$array, node$index, node$max, side, useHierarchicalCrossCounter; + side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); + improved = false; + for (node$array = nodeOrder[currentIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if ($isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + continue; + } + nestedGraph = node.nestedGraph; + useHierarchicalCrossCounter = !$getPortSideView(node, side).isEmpty() && !!nestedGraph; + if (useHierarchicalCrossCounter) { + innerGraph = $toNodeArray(nestedGraph); + this$static.hierarchicalCrossingsCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(innerGraph, isForwardSweep?0:innerGraph.length - 1); + } + improved = improved | $distributePortsOnNode(this$static, node, side, useHierarchicalCrossCounter); + } + return improved; +} + +function $distributePortsOnNode(this$static, node, side, useHierarchicalCrosscounter){ + var continueSwitching, i, improved, lowerPort, ports, upperPort, lower; + ports = $getPortSideView(node, side); + (side == ($clinit_PortSide() , SOUTH_2) || side == WEST_2) && (ports = instanceOf(ports, 152)?$reverse(castTo(ports, 152)):instanceOf(ports, 131)?castTo(ports, 131).forwardList:instanceOf(ports, 54)?new Lists$RandomAccessReverseList(ports):new Lists$ReverseList(ports)); + improved = false; + do { + continueSwitching = false; + for (i = 0; i < ports.size_1() - 1; i++) { + upperPort = castTo(ports.get_0(i), 11); + lowerPort = castTo(ports.get_0(i + 1), 11); + if ($switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter)) { + improved = true; + $switchPorts(this$static.crossingsCounter, castTo(ports.get_0(i), 11), castTo(ports.get_0(i + 1), 11)); + lower = castTo(ports.get_0(i + 1), 11); + ports.set_2(i + 1, castTo(ports.get_0(i), 11)); + ports.set_2(i, lower); + continueSwitching = true; + } + } + } + while (continueSwitching); + return improved; +} + +function $switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter){ + var lowerNode, lowerUpperCrossings, originalNSwitchedCrossings, upperLowerCrossings, upperNode; + originalNSwitchedCrossings = $countCrossingsBetweenPortsInBothOrders(this$static.crossingsCounter, upperPort, lowerPort); + upperLowerCrossings = castTo(originalNSwitchedCrossings.first, 19).value_0; + lowerUpperCrossings = castTo(originalNSwitchedCrossings.second, 19).value_0; + if (useHierarchicalCrosscounter) { + upperNode = castTo($getProperty(upperPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + lowerNode = castTo($getProperty(lowerPort, PORT_DUMMY), 10); + if (!!upperNode && !!lowerNode) { + $countBothSideCrossings(this$static.hierarchicalCrossingsCounter, upperNode, lowerNode); + upperLowerCrossings += this$static.hierarchicalCrossingsCounter.upperLowerCrossings; + lowerUpperCrossings += this$static.hierarchicalCrossingsCounter.lowerUpperCrossings; + } + } + return upperLowerCrossings > lowerUpperCrossings; +} + +function GreedyPortDistributor(){ +} + +defineClass(1832, 1, $intern_111, GreedyPortDistributor); +_.initAtEdgeLevel = function initAtEdgeLevel_4(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_4(l, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_4(l, n, p, nodeOrder){ +} +; +_.distributePortsWhileSweeping = function distributePortsWhileSweeping_0(nodeOrder, currentIndex, isForwardSweep){ + isForwardSweep && currentIndex > 0?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex - 1], nodeOrder[currentIndex]) , undefined):!isForwardSweep && currentIndex < nodeOrder.length - 1?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex], nodeOrder[currentIndex + 1]) , undefined):$initPortPositionsForInLayerCrossings(this.crossingsCounter, nodeOrder[currentIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2)); + return $distributePortsInLayer(this, nodeOrder, currentIndex, isForwardSweep); +} +; +_.initAfterTraversal = function initAfterTraversal_4(){ + this.portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); + this.crossingsCounter = new CrossingsCounter(this.portPos); +} +; +_.initAtNodeLevel = function initAtNodeLevel_4(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + this.nPorts += node.ports.array.length; +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_GreedyPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GreedyPortDistributor', 1832); +function $clinit_InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_3 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING, LONG_EDGE_JOINER); +} + +function $getLayoutProcessorConfiguration(graph){ + var configuration; + configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_3); + castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , NON_FREE_PORTS)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)); + return configuration; +} + +function $getPos(node, horizPos){ + var bendpoints, edge, originNode, originPort, point1, point2, pointIter, source, sourcePoint, target, targetPoint; + switch (node.type_0.ordinal) { + case 1: + edge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); + bendpoints = castTo($getProperty(edge, ORIGINAL_BENDPOINTS), 74); + !bendpoints?(bendpoints = new KVectorChain):$booleanValue(castToBoolean($getProperty(edge, REVERSED))) && (bendpoints = reverse_3(bendpoints)); + source = castTo($getProperty(node, LONG_EDGE_SOURCE), 11); + if (source) { + sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [source.owner.pos, source.pos, source.anchor])); + if (horizPos <= sourcePoint.x_0) { + return sourcePoint.y_0; + } + $addNode_0(bendpoints, sourcePoint, bendpoints.header, bendpoints.header.next_0); + } + + target = castTo($getProperty(node, LONG_EDGE_TARGET), 11); + if (target) { + targetPoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])); + if (targetPoint.x_0 <= horizPos) { + return targetPoint.y_0; + } + $addNode_0(bendpoints, targetPoint, bendpoints.tail.prev, bendpoints.tail); + } + + if (bendpoints.size_0 >= 2) { + pointIter = $listIterator_2(bendpoints, 0); + point1 = castTo($next_10(pointIter), 8); + point2 = castTo($next_10(pointIter), 8); + while (point2.x_0 < horizPos && pointIter.currentNode != pointIter.this$01.tail) { + point1 = point2; + point2 = castTo($next_10(pointIter), 8); + } + return point1.y_0 + (horizPos - point1.x_0) / (point2.x_0 - point1.x_0) * (point2.y_0 - point1.y_0); + } + + break; + case 3: + originPort = castTo($getProperty(castTo($get_11(node.ports, 0), 11), ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + originNode = originPort.owner; + switch (originPort.side.ordinal) { + case 1: + return originNode.pos.y_0; + case 3: + return originNode.pos.y_0 + originNode.size_0.y_0; + } + + } + return $getInteractiveReferencePoint(node).y_0; +} + +function $process_67(layeredGraph, monitor){ + var horizPos, layer, layer$iterator, layer$iterator0, layerIndex, nextIndex, node, node$iterator, node$iterator0, nodeCount, nodeOrder, port, port$iterator, portCount, portDistributor, pos; + $begin(monitor, 'Interactive crossing minimization', 1); + layerIndex = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + layer.id_0 = layerIndex++; + } + nodeOrder = $toNodeArray(layeredGraph); + portDistributor = new NodeRelativePortDistributor(nodeOrder.length); + init_0(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [portDistributor])), nodeOrder); + portCount = 0; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + horizPos = 0; + nodeCount = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + if (node.pos.x_0 > 0) { + horizPos += node.pos.x_0 + node.size_0.x_0 / 2; + ++nodeCount; + } + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + port.id_0 = portCount++; + } + } + nodeCount > 0 && (horizPos /= nodeCount); + pos = initUnidimensionalArray(D_classLit, $intern_65, 25, layer.nodes.array.length, 15, 1); + nextIndex = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nextIndex++; + pos[node.id_0] = $getPos(node, horizPos); + node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION), pos[node.id_0]); + } + $clinit_Collections(); + $sort(layer.nodes, new InteractiveCrossingMinimizer$1(pos)); + $distributePortsWhileSweeping(portDistributor, nodeOrder, layerIndex, true); + ++layerIndex; + } + $done_0(monitor); +} + +function InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer(); +} + +defineClass(1401, 1, $intern_113, InteractiveCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_9(graph){ + return $getLayoutProcessorConfiguration(castTo(graph, 37)); +} +; +_.process = function process_64(layeredGraph, monitor){ + $process_67(castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_3; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer', 1401); +function $compare_20(this$static, node1, node2){ + var compare, node1Successors, node2Successors; + compare = compare_4(this$static.val$pos2[node1.id_0], this$static.val$pos2[node2.id_0]); + if (compare == 0) { + node1Successors = castTo($getProperty(node1, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15); + node2Successors = castTo($getProperty(node2, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15); + if (node1Successors.contains(node2)) { + return -1; + } + else if (node2Successors.contains(node1)) { + return 1; + } + } + return compare; +} + +function InteractiveCrossingMinimizer$1(val$pos){ + this.val$pos2 = val$pos; +} + +defineClass(1402, 1, $intern_88, InteractiveCrossingMinimizer$1); +_.compare_1 = function compare_67(node1, node2){ + return $compare_20(this, castTo(node1, 10), castTo(node2, 10)); +} +; +_.equals_0 = function equals_148(other){ + return this === other; +} +; +_.reversed = function reversed_59(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer/1', 1402); +function $clinit_LayerSweepCrossingMinimizer(){ + $clinit_LayerSweepCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_4 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); +} + +function $compareDifferentRandomizedLayouts(this$static, gData){ + var bestCrossings, crossings, i, thouroughness; + $setSeed_0(this$static.random_0, this$static.randomSeed); + this$static.graphsWhoseNodeOrderChanged.map_0.clear_0(); + if ($doubleValue(castToDouble($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)))) != 0 || $doubleValue(castToDouble($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))) != 0) { + bestCrossings = $intern_98; + maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); + thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; + for (i = 0; i < thouroughness; i++) { + crossings = $minimizeCrossingsNodePortOrderWithCounter(this$static, gData); + if (crossings < bestCrossings) { + bestCrossings = crossings; + $saveAllNodeOrdersOfChangedGraphs(this$static); + if (bestCrossings == 0) { + break; + } + } + } + } + else { + bestCrossings = $intern_0; + maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); + thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; + for (i = 0; i < thouroughness; i++) { + crossings = $minimizeCrossingsWithCounter(this$static, gData); + if (crossings < bestCrossings) { + bestCrossings = crossings; + $saveAllNodeOrdersOfChangedGraphs(this$static); + if (bestCrossings == 0) { + break; + } + } + } + } +} + +function $countCurrentNumberOfCrossings(this$static, currentGraph){ + var child, childLGraph, childLGraph$iterator, countCrossingsIn, gD, totalCrossings; + totalCrossings = 0; + countCrossingsIn = new ArrayDeque; + $addFirst(countCrossingsIn, currentGraph); + while (countCrossingsIn.head != countCrossingsIn.tail) { + gD = castTo($removeFirst(countCrossingsIn), 214); + totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder); + for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { + childLGraph = castTo($next_7(childLGraph$iterator), 37); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); + child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); + } + } + return totalCrossings; +} + +function $countCurrentNumberOfCrossingsNodePortOrder(this$static, currentGraph){ + var child, childLGraph, childLGraph$iterator, countCrossingsIn, crossingCounterNodeInfluence, crossingCounterPortInfluence, gD, modelOrderInfluence, modelOrderStrategy, totalCrossings; + totalCrossings = 0; + countCrossingsIn = new ArrayDeque; + $addFirst(countCrossingsIn, currentGraph); + while (countCrossingsIn.head != countCrossingsIn.tail) { + gD = castTo($removeFirst(countCrossingsIn), 214); + modelOrderInfluence = 0; + modelOrderStrategy = castTo($getProperty(currentGraph.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 339); + crossingCounterNodeInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))); + crossingCounterPortInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0))); + if (modelOrderStrategy != ($clinit_OrderingStrategy() , NONE_10)) { + modelOrderInfluence += crossingCounterNodeInfluence * $countModelOrderNodeChanges(gD.currentNodeOrder, modelOrderStrategy); + modelOrderInfluence += crossingCounterPortInfluence * $countModelOrderPortChanges(gD.currentNodeOrder); + } + totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder) + modelOrderInfluence; + for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { + childLGraph = castTo($next_7(childLGraph$iterator), 37); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); + child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); + } + } + return totalCrossings; +} + +function $countModelOrderNodeChanges(layers, strategy){ + var comp, i, j, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; + previousLayer = -1; + wrongModelOrder = 0; + for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + comp = new ModelOrderNodeComparator_1(previousLayer == -1?layers[0]:layers[previousLayer], strategy, ($clinit_LongEdgeOrderingStrategy() , EQUAL)); + for (i = 0; i < layer.length; i++) { + for (j = i + 1; j < layer.length; j++) { + $hasProperty(layer[i], ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(layer[j], MODEL_ORDER_0) && $compare_15(comp, layer[i], layer[j]) > 0 && ++wrongModelOrder; + } + } + ++previousLayer; + } + return wrongModelOrder; +} + +function $countModelOrderPortChanges(layers){ + var comp, i, j, lNode, lNode$array, lNode$index, lNode$max, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; + previousLayer = -1; + wrongModelOrder = 0; + for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + for (lNode$array = layer , lNode$index = 0 , lNode$max = lNode$array.length; lNode$index < lNode$max; ++lNode$index) { + lNode = lNode$array[lNode$index]; + comp = new ModelOrderPortComparator_0(previousLayer == -1?layers[0]:layers[previousLayer], longEdgeTargetNodePreprocessing(lNode)); + for (i = 0; i < lNode.ports.array.length; i++) { + for (j = i + 1; j < lNode.ports.array.length; j++) { + $compare_16(comp, castTo($get_11(lNode.ports, i), 11), castTo($get_11(lNode.ports, j), 11)) > 0 && ++wrongModelOrder; + } + } + } + ++previousLayer; + } + return wrongModelOrder; +} + +function $endIndex(isForwardSweep, length_0){ + return isForwardSweep?length_0 - 1:0; +} + +function $firstIndex(isForwardSweep, length_0){ + return isForwardSweep?0:length_0 - 1; +} + +function $initialize_5(this$static, rootGraph){ + var gData, graph, graphs, graphsToSweepOn, i, iter; + this$static.graphInfoHolders = new ArrayList; + this$static.random_0 = castTo($getProperty(rootGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + this$static.randomSeed = $nextLong(this$static.random_0); + graphsToSweepOn = new LinkedList; + graphs = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [rootGraph])); + i = 0; + while (i < graphs.array.length) { + graph = (checkCriticalElementIndex(i, graphs.array.length) , castTo(graphs.array[i], 37)); + graph.id_0 = i++; + gData = new GraphInfoHolder(graph, this$static.crossMinType, this$static.graphInfoHolders); + $addAll_2(graphs, gData.childGraphs); + $add_3(this$static.graphInfoHolders, gData); + gData.useBottomUp && (iter = $listIterator_2(graphsToSweepOn, 0) , $add_8(iter, gData)); + } + this$static.graphsWhoseNodeOrderChanged = new HashSet; + return graphsToSweepOn; +} + +function $minimizeCrossings(graphsToSweepOn, minimizingMethod){ + var gData, gData$iterator; + for (gData$iterator = $listIterator_2(graphsToSweepOn, 0); gData$iterator.currentNode != gData$iterator.this$01.tail;) { + gData = castTo($next_10(gData$iterator), 214); + if (gData.currentNodeOrder.length > 0) { + minimizingMethod.accept(gData); + gData.hasParent && $setPortOrderOnParentGraph(gData); + } + } +} + +function $minimizeCrossingsNoCounter(this$static, gData){ + var improved, isForwardSweep; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + improved = true; + while (improved) { + improved = false; + improved = gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep); + improved = improved | $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + isForwardSweep = !isForwardSweep; + } + $setCurrentlyBestNodeOrders(this$static); +} + +function $minimizeCrossingsNodePortOrderWithCounter(this$static, gData){ + var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); + $sweepReducingCrossings(this$static, gData, isForwardSweep, true); + $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { + $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); + } + crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + do { + $setCurrentlyBestNodeOrders(this$static); + if (crossingsInGraph == 0) { + return 0; + } + isForwardSweep = !isForwardSweep; + oldNumberOfCrossings = crossingsInGraph; + $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); + } + while (oldNumberOfCrossings > crossingsInGraph); + return oldNumberOfCrossings; +} + +function $minimizeCrossingsWithCounter(this$static, gData){ + var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; + !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); + $sweepReducingCrossings(this$static, gData, isForwardSweep, true); + $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { + $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); + $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); + } + crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); + do { + $setCurrentlyBestNodeOrders(this$static); + if (crossingsInGraph == 0) { + return 0; + } + isForwardSweep = !isForwardSweep; + oldNumberOfCrossings = crossingsInGraph; + $sweepReducingCrossings(this$static, gData, isForwardSweep, false); + crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); + } + while (oldNumberOfCrossings > crossingsInGraph); + return oldNumberOfCrossings; +} + +function $process_68(this$static, layeredGraph, progressMonitor){ + var emptyGraph, graphsToSweepOn, hierarchicalLayout, minimizingMethod, parent_0, singleNode; + $begin(progressMonitor, 'Minimize Crossings ' + this$static.crossMinType, 1); + emptyGraph = layeredGraph.layers.array.length == 0 || !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new Predicate$lambda$2$Type(new LayerSweepCrossingMinimizer$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + singleNode = layeredGraph.layers.array.length == 1 && castTo($get_11(layeredGraph.layers, 0), 29).nodes.array.length == 1; + hierarchicalLayout = maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (emptyGraph || singleNode && !hierarchicalLayout) { + $done_0(progressMonitor); + return; + } + graphsToSweepOn = $initialize_5(this$static, layeredGraph); + minimizingMethod = (parent_0 = castTo($get_7(graphsToSweepOn, 0), 214) , parent_0.crossMinimizer.isDeterministic()?parent_0.crossMinimizer.alwaysImproves()?new LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type(this$static):new LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type(this$static):new LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type(this$static)); + $minimizeCrossings(graphsToSweepOn, minimizingMethod); + $transferNodeAndPortOrdersToGraph(this$static); + $done_0(progressMonitor); +} + +function $saveAllNodeOrdersOfChangedGraphs(this$static){ + var graph, graph$iterator; + for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 214); + $setBestNodeNPortOrder(graph, new SweepCopy(graph.currentlyBestNodeAndPortOrder)); + } +} + +function $setCurrentlyBestNodeOrders(this$static){ + var graph, graph$iterator; + for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 214); + $setCurrentlyBestNodeAndPortOrder(graph, new SweepCopy_0(graph.currentNodeOrder)); + } +} + +function $setPortOrderOnParentGraph(gData){ + var bestSweep; + if (gData.hasExternalPorts) { + bestSweep = gData.crossMinimizer.isDeterministic()?gData.currentlyBestNodeAndPortOrder:gData.bestNodeAndPortOrder; + $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, true); + $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, false); + $setProperty_0(gData.parent_0, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_ORDER)); + } +} + +function $sortPortDummiesByPortPositions(parentNode, layerCloseToNodeEdge, side){ + var i, port, port$iterator, ports, sortedDummies; + ports = inNorthSouthEastWestOrder(parentNode, side); + sortedDummies = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layerCloseToNodeEdge.length, 0, 1); + i = 0; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))) && (sortedDummies[i++] = castTo($getProperty(port, PORT_DUMMY), 10)); + } + if (i < layerCloseToNodeEdge.length) { + throw toJs(new IllegalStateException_0('Expected ' + layerCloseToNodeEdge.length + ' hierarchical ports, but found only ' + i + '.')); + } + return sortedDummies; +} + +function $sortPortsByDummyPositionsInLastLayer(nodeOrder, parent_0, onRightMostLayer){ + var endIndex, i, j, lastLayer, port, ports; + endIndex = $endIndex(onRightMostLayer, nodeOrder.length); + lastLayer = nodeOrder[endIndex]; + if (lastLayer[0].type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return; + } + j = $firstIndex(onRightMostLayer, lastLayer.length); + ports = parent_0.ports; + for (i = 0; i < ports.array.length; i++) { + port = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); + if ((onRightMostLayer?port.side == ($clinit_PortSide() , EAST_2):port.side == ($clinit_PortSide() , WEST_2)) && $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS))))) { + $set_1(ports, i, castTo($getProperty(lastLayer[j], ($clinit_InternalProperties_1() , ORIGIN_0)), 11)); + j += onRightMostLayer?1:-1; + } + } +} + +function $sweepInHierarchicalNodes(this$static, layer, isForwardSweep, isFirstSweep){ + var improved, node, node$array, node$index, node$max, nestedLGraph, nestedGraph, nestedGraphNodeOrder, startIndex, firstNode, improved_0; + improved = false; + for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $booleanValue(($clinit_Boolean() , node.nestedGraph?true:false)) && !castTo($get_11(this$static.graphInfoHolders, node.nestedGraph.id_0), 214).useBottomUp && (improved = improved | (nestedLGraph = node.nestedGraph , nestedGraph = castTo($get_11(this$static.graphInfoHolders, nestedLGraph.id_0), 214) , nestedGraphNodeOrder = nestedGraph.currentNodeOrder , startIndex = $firstIndex(isForwardSweep, nestedGraphNodeOrder.length) , firstNode = nestedGraphNodeOrder[startIndex][0] , firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)?(nestedGraphNodeOrder[startIndex] = $sortPortDummiesByPortPositions(node, nestedGraphNodeOrder[startIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2))):nestedGraph.crossMinimizer.setFirstLayerOrder(nestedGraphNodeOrder, isForwardSweep) , improved_0 = $sweepReducingCrossings(this$static, nestedGraph, isForwardSweep, isFirstSweep) , $sortPortsByDummyPositionsInLastLayer(nestedGraph.currentNodeOrder, nestedGraph.parent_0, isForwardSweep) , improved_0)); + } + return improved; +} + +function $sweepReducingCrossings(this$static, graph, forward_0, firstSweep){ + var firstLayer, i, improved, length_0, nodes; + nodes = graph.currentNodeOrder; + length_0 = nodes.length; + improved = graph.portDistributor.distributePortsWhileSweeping(nodes, forward_0?0:length_0 - 1, forward_0); + firstLayer = nodes[forward_0?0:length_0 - 1]; + improved = improved | $sweepInHierarchicalNodes(this$static, firstLayer, forward_0, firstSweep); + for (i = forward_0?1:length_0 - 2; forward_0?i < length_0:i >= 0; i += forward_0?1:-1) { + improved = improved | graph.crossMinimizer.minimizeCrossings(nodes, i, forward_0, firstSweep && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , SECOND_TRY_WITH_INITIAL_ORDER))))); + improved = improved | graph.portDistributor.distributePortsWhileSweeping(nodes, i, forward_0); + improved = improved | $sweepInHierarchicalNodes(this$static, nodes[i], forward_0, firstSweep); + } + $add_6(this$static.graphsWhoseNodeOrderChanged, graph); + return improved; +} + +function $transferNodeAndPortOrdersToGraph(this$static){ + var bestSweep, gD, gD$iterator; + for (gD$iterator = new ArrayList$1(this$static.graphInfoHolders); gD$iterator.i < gD$iterator.this$01.array.length;) { + gD = castTo($next_7(gD$iterator), 214); + bestSweep = gD.crossMinimizer.isDeterministic()?gD.currentlyBestNodeAndPortOrder:gD.bestNodeAndPortOrder; + !!bestSweep && $transferNodeAndPortOrdersToGraph_0(bestSweep, gD.lGraph); + } +} + +function LayerSweepCrossingMinimizer(cT){ + $clinit_LayerSweepCrossingMinimizer(); + this.crossMinType = cT; +} + +defineClass(507, 1, {507:1, 123:1, 51:1}, LayerSweepCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_10(graph){ + var configuration; + return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_4) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_65(layeredGraph, progressMonitor){ + $process_68(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.randomSeed = 0; +var INTERMEDIATE_PROCESSING_CONFIGURATION_4; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer', 507); +function LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1398, 1, $intern_19, LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type); +_.accept = function accept_115(arg0){ + $compareDifferentRandomizedLayouts(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type', 1398); +function LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1399, 1, $intern_19, LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type); +_.accept = function accept_116(arg0){ + $minimizeCrossingsNoCounter(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type', 1399); +function LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1400, 1, $intern_19, LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type); +_.accept = function accept_117(arg0){ + $minimizeCrossingsWithCounter(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type', 1400); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType = emptyMethod; + BARYCENTER = new LayerSweepCrossingMinimizer$CrossMinType('BARYCENTER', 0); + ONE_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('ONE_SIDED_GREEDY_SWITCH', 1); + TWO_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('TWO_SIDED_GREEDY_SWITCH', 2); +} + +function LayerSweepCrossingMinimizer$CrossMinType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_67(name_0){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType(); + return valueOf(($clinit_LayerSweepCrossingMinimizer$CrossMinType$Map() , $MAP_55), name_0); +} + +function values_73(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]); +} + +defineClass(454, 22, {3:1, 35:1, 22:1, 454:1}, LayerSweepCrossingMinimizer$CrossMinType); +var BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/CrossMinType', 454, Ljava_lang_Enum_2_classLit, values_73, valueOf_67); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map = emptyMethod; + $MAP_55 = createValueOfMap(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]))); +} + +var $MAP_55; +function LayerSweepCrossingMinimizer$lambda$0$Type(){ +} + +defineClass(1397, 1, $intern_39, LayerSweepCrossingMinimizer$lambda$0$Type); +_.test_0 = function test_85(arg0){ + return $clinit_LayerSweepCrossingMinimizer() , castTo(arg0, 29).nodes.array.length == 0; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/lambda$0$Type', 1397); +function $transferInfoTo(this$static, currentNode, target){ + var targetNodeInfo; + targetNodeInfo = this$static.nodeInfo[target.layer.id_0][target.id_0]; + targetNodeInfo.hierarchicalInfluence += currentNode.hierarchicalInfluence; + targetNodeInfo.randomInfluence += currentNode.randomInfluence; + targetNodeInfo.connectedEdges += currentNode.connectedEdges; + ++targetNodeInfo.connectedEdges; +} + +function $useBottomUp(this$static){ + var allPaths, boundary, currentNode, eastPorts, edge, edge$iterator, layer, layer$array, layer$index, layer$max, node, node$array, node$index, node$iterator, node$max, normalized, northSouthPorts, nsDummy, nsPortDummies, pathsToHierarchical, pathsToRandom, port, port$iterator, target, westPorts; + boundary = $doubleValue(castToDouble($getProperty(this$static.graphData.lGraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)))); + if (boundary < -1 || !this$static.graphData.hasParent || $isOrderFixed(castTo($getProperty(this$static.graphData.parent_0, PORT_CONSTRAINTS_0), 98)) || $getPortSideView(this$static.graphData.parent_0, ($clinit_PortSide() , EAST_2)).size_1() < 2 && $getPortSideView(this$static.graphData.parent_0, WEST_2).size_1() < 2) { + return true; + } + if (this$static.graphData.crossMinimizer.isDeterministic()) { + return false; + } + pathsToRandom = 0; + pathsToHierarchical = 0; + nsPortDummies = new ArrayList; + for (layer$array = this$static.graphData.currentNodeOrder , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { + layer = layer$array[layer$index]; + for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + nsPortDummies.array[nsPortDummies.array.length] = node; + continue; + } + currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; + if (node.type_0 == EXTERNAL_PORT) { + currentNode.hierarchicalInfluence = 1; + castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 11).side == ($clinit_PortSide() , EAST_2) && (pathsToHierarchical += currentNode.connectedEdges); + } + else { + westPorts = $getPortSideView(node, ($clinit_PortSide() , WEST_2)); + westPorts.isEmpty() || !any_0(westPorts, new LayerSweepTypeDecider$lambda$1$Type)?(currentNode.randomInfluence = 1):(eastPorts = $getPortSideView(node, EAST_2) , (eastPorts.isEmpty() || !any_0(eastPorts, new LayerSweepTypeDecider$lambda$0$Type)) && (pathsToRandom += currentNode.connectedEdges)); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + northSouthPorts = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [$getPortSideView(node, ($clinit_PortSide() , NORTH_3)), $getPortSideView(node, SOUTH_2)])); + for (port$iterator = new Iterators$ConcatenatedIterator(new FluentIterable$3$1(northSouthPorts.val$inputs1.length, northSouthPorts.val$inputs1)); $hasNext_1(port$iterator);) { + port = castTo($next_0(port$iterator), 11); + nsDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + if (nsDummy) { + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + $transferInfoTo(this$static, currentNode, nsDummy); + } + } + } + for (node$iterator = new ArrayList$1(nsPortDummies); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + } + nsPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + allPaths = pathsToRandom + pathsToHierarchical; + normalized = allPaths == 0?$intern_59:(pathsToRandom - pathsToHierarchical) / allPaths; + return normalized >= boundary; +} + +function LayerSweepTypeDecider(graphData){ + this.graphData = graphData; + this.nodeInfo = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, $intern_16, 1944, graphData.currentNodeOrder.length, 0, 2); +} + +defineClass(1799, 1, $intern_111, LayerSweepTypeDecider); +_.initAfterTraversal = function initAfterTraversal_5(){ +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_5(l, n, p, e, edge, nodeOrder){ +} +; +_.initAtPortLevel = function initAtPortLevel_5(l, n, p, nodeOrder){ +} +; +_.initAtLayerLevel = function initAtLayerLevel_5(l, nodeOrder){ + nodeOrder[l][0].layer.id_0 = l; + this.nodeInfo[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, {3:1, 4:1, 5:1, 1944:1}, 659, nodeOrder[l].length, 0, 1); +} +; +_.initAtNodeLevel = function initAtNodeLevel_5(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + node.id_0 = n; + setCheck(this.nodeInfo[l], n, new LayerSweepTypeDecider$NodeInfo); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider', 1799); +function LayerSweepTypeDecider$NodeInfo(){ +} + +defineClass(659, 1, {659:1}, LayerSweepTypeDecider$NodeInfo); +_.toString_0 = function toString_101(){ + return 'NodeInfo [connectedEdges=' + this.connectedEdges + ', hierarchicalInfluence=' + this.hierarchicalInfluence + ', randomInfluence=' + this.randomInfluence + ']'; +} +; +_.connectedEdges = 0; +_.hierarchicalInfluence = 0; +_.randomInfluence = 0; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/NodeInfo', 659); +function LayerSweepTypeDecider$lambda$0$Type(){ +} + +defineClass(1800, 1, $intern_89, LayerSweepTypeDecider$lambda$0$Type); +_.apply_1 = function apply_137(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); +} +; +_.equals_0 = function equals_149(other){ + return this === other; +} +; +_.test_0 = function test_86(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$0$Type', 1800); +function LayerSweepTypeDecider$lambda$1$Type(){ +} + +defineClass(1801, 1, $intern_89, LayerSweepTypeDecider$lambda$1$Type); +_.apply_1 = function apply_138(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); +} +; +_.equals_0 = function equals_150(other){ + return this === other; +} +; +_.test_0 = function test_87(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$1$Type', 1801); +function LayerTotalPortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(1833, 402, $intern_114, LayerTotalPortDistributor); +_.calculatePortRanks = function calculatePortRanks(node, rankSum, type_0){ + var inputCount, northInputCount, northPos, port, port$iterator, port$iterator0, portRanks, pos, restPos; + portRanks = this.portRanks; + switch (type_0.ordinal) { + case 1: + { + inputCount = 0; + northInputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + if (port.incomingEdges.array.length != 0) { + ++inputCount; + port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; + } + } + northPos = rankSum + northInputCount; + restPos = rankSum + inputCount; + for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + portRanks[port.id_0] = northPos; + --northPos; + } + else { + portRanks[port.id_0] = restPos; + --restPos; + } + } + return inputCount; + } + + case 2: + { + pos = 0; + for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + ++pos; + portRanks[port.id_0] = rankSum + pos; + } + return pos; + } + + default:throw toJs(new IllegalArgumentException); + } +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerTotalPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerTotalPortDistributor', 1833); +function $compareBasedOnBarycenter(this$static, n1, n2){ + var s1, s2, value_0; + s1 = this$static.barycenterState[n1.layer.id_0][n1.id_0]; + s2 = this$static.barycenterState[n2.layer.id_0][n2.id_0]; + if (s1.barycenter != null && s2.barycenter != null) { + value_0 = $compareTo_4(s1.barycenter, s2.barycenter); + value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1, n2):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); + return value_0; + } + else if (s1.barycenter != null) { + $updateBiggerAndSmallerAssociations_0(this$static, n1, n2); + return -1; + } + else if (s2.barycenter != null) { + $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); + return 1; + } + return 0; +} + +function $compareBasedOnTansitiveDependencies(this$static, n1, n2){ + if ($containsKey_3(this$static.biggerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { + return 1; + } + } + else { + $put_6(this$static.biggerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.biggerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { + return -1; + } + } + else { + $put_6(this$static.biggerThan, n2, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n1)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { + return -1; + } + } + else { + $put_6(this$static.smallerThan, n1, new HashSet); + } + if ($containsKey_3(this$static.smallerThan, n2)) { + if ($contains_6(castTo($get_10(this$static.smallerThan, n2), 53), n1)) { + return 1; + } + } + else { + $put_6(this$static.smallerThan, n2, new HashSet); + } + return 0; +} + +function $lambda$0_8(this$static, n1_0, n2_1){ + var transitiveComparison, value_0; + transitiveComparison = $compareBasedOnTansitiveDependencies(this$static, n1_0, n2_1); + if (transitiveComparison != 0) { + return transitiveComparison; + } + if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(n2_1, MODEL_ORDER_0)) { + value_0 = compare_5(castTo($getProperty(n1_0, MODEL_ORDER_0), 19).value_0, castTo($getProperty(n2_1, MODEL_ORDER_0), 19).value_0); + value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1_0, n2_1):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2_1, n1_0); + return value_0; + } + return $compareBasedOnBarycenter(this$static, n1_0, n2_1); +} + +function $updateBiggerAndSmallerAssociations_0(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); + biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); + smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); + for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { + verySmall = castTo(verySmall$iterator.next_1(), 10); + biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); + $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); + } + for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { + veryBig = castTo(veryBig$iterator.next_1(), 10); + smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); + $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); + } +} + +function ModelOrderBarycenterHeuristic(constraintResolver, random, portDistributor){ + BarycenterHeuristic.call(this, constraintResolver, random, portDistributor); + this.biggerThan = new HashMap; + this.smallerThan = new HashMap; + this.barycenterStateComparator = new ModelOrderBarycenterHeuristic$lambda$0$Type(this); +} + +function insertionSort_0(layer, comparator, barycenterHeuristic){ + var i, j, temp; + for (i = 1; i < layer.array.length; i++) { + temp = (checkCriticalElementIndex(i, layer.array.length) , castTo(layer.array[i], 10)); + j = i; + while (j > 0 && comparator.compare_1((checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10)), temp) > 0) { + $set_1(layer, j, (checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10))); + --j; + } + checkCriticalElementIndex(j, layer.array.length); + layer.array[j] = temp; + } + barycenterHeuristic.biggerThan = new HashMap; + barycenterHeuristic.smallerThan = new HashMap; +} + +defineClass(660, 817, {660:1, 225:1}, ModelOrderBarycenterHeuristic); +_.minimizeCrossings_0 = function minimizeCrossings_2(layer, preOrdered, randomize, forward_0){ + if (randomize) { + $randomizeBarycenters(this, layer); + } + else { + $calculateBarycenters(this, layer, forward_0); + $fillInUnknownBarycenters(this, layer, preOrdered); + } + if (layer.array.length > 1) { + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, this):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); + $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || $processConstraints(this.constraintResolver, layer); + } +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic', 660); +function ModelOrderBarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1803, 1, $intern_88, ModelOrderBarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_68(arg0, arg1){ + return $lambda$0_8(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_151(other){ + return this === other; +} +; +_.reversed = function reversed_60(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic/lambda$0$Type', 1803); +function $clinit_NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIGURATION_5 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); +} + +function $process_69(progressMonitor){ + $begin(progressMonitor, 'No crossing minimization', 1); + $done_0(progressMonitor); +} + +function NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer(); +} + +defineClass(1403, 1, $intern_113, NoCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_11(graph){ + var configuration; + return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_5) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_66(graph, progressMonitor){ + $process_69((castTo(graph, 37) , progressMonitor)); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_5; +var Lorg_eclipse_elk_alg_layered_p3order_NoCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NoCrossingMinimizer', 1403); +function NodeRelativePortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(796, 402, $intern_114, NodeRelativePortDistributor); +_.calculatePortRanks = function calculatePortRanks_0(node, rankSum, type_0){ + var incr, inputCount, northInputCount, northPos, outputCount, port, port$iterator, port$iterator0, portRanks, pos, restPos; + portRanks = this.portRanks; + switch (type_0.ordinal) { + case 1: + { + inputCount = 0; + northInputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + if (port.incomingEdges.array.length != 0) { + ++inputCount; + port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; + } + } + incr = 1 / (inputCount + 1); + northPos = rankSum + northInputCount * incr; + restPos = rankSum + 1 - incr; + for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + portRanks[port.id_0] = northPos; + northPos -= incr; + } + else { + portRanks[port.id_0] = restPos; + restPos -= incr; + } + } + break; + } + + case 2: + { + outputCount = 0; + for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { + port = castTo($next_7(port$iterator0), 11); + port.outgoingEdges.array.length == 0 || ++outputCount; + } + incr = 1 / (outputCount + 1); + pos = rankSum + incr; + for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + portRanks[port.id_0] = pos; + pos += incr; + } + break; + } + + default:throw toJs(new IllegalArgumentException_0('Port type is undefined')); + } + return 1; +} +; +var Lorg_eclipse_elk_alg_layered_p3order_NodeRelativePortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NodeRelativePortDistributor', 796); +function $assertCorrectPortSides(dummy){ + var anchorY, dummyPort, dummyPorts, origin_0, port, port$iterator, portHeight; + origin_0 = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + dummyPorts = dummy.ports; + dummyPort = (checkCriticalElementIndex(0, dummyPorts.array.length) , castTo(dummyPorts.array[0], 11)); + for (port$iterator = new ArrayList$1(origin_0.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (maskUndefined(port) === maskUndefined($getProperty(dummyPort, ORIGIN_0))) { + if (port.side == ($clinit_PortSide() , NORTH_3) && dummy.id_0 > origin_0.id_0) { + $setSide(port, SOUTH_2); + if (port.explicitlySuppliedPortAnchor) { + portHeight = port.size_0.y_0; + anchorY = port.anchor.y_0; + port.anchor.y_0 = portHeight - anchorY; + } + } + else if (port.side == SOUTH_2 && origin_0.id_0 > dummy.id_0) { + $setSide(port, NORTH_3); + if (port.explicitlySuppliedPortAnchor) { + portHeight = port.size_0.y_0; + anchorY = port.anchor.y_0; + port.anchor.y_0 = -(portHeight - anchorY); + } + } + break; + } + } + return origin_0; +} + +function $deepCopy(currentlyBestNodeOrder){ + var i, result; + if (currentlyBestNodeOrder == null) { + return null; + } + result = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, currentlyBestNodeOrder.length, 0, 2); + for (i = 0; i < result.length; i++) { + result[i] = castTo(copyOf_0(currentlyBestNodeOrder[i], currentlyBestNodeOrder[i].length), 193); + } + return result; +} + +function $transferNodeAndPortOrdersToGraph_0(this$static, lGraph){ + var dummy, dummy$iterator, i, j, layers, node, node$iterator, nodes, northSouthPortDummies, origin_0, updatePortOrder; + northSouthPortDummies = new ArrayList; + updatePortOrder = new HashSet; + layers = lGraph.layers; + for (i = 0; i < layers.array.length; i++) { + nodes = (checkCriticalElementIndex(i, layers.array.length) , castTo(layers.array[i], 29)).nodes; + northSouthPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (j = 0; j < nodes.array.length; j++) { + node = this$static.nodeOrder[i][j]; + node.id_0 = j; + node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && (northSouthPortDummies.array[northSouthPortDummies.array.length] = node , true); + $set_1(castTo($get_11(lGraph.layers, i), 29).nodes, j, node); + node.ports.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(node.ports, castTo(castTo($get_11(this$static.portOrders, i), 15).get_0(j), 14)); + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_ORDER)); + } + for (dummy$iterator = new ArrayList$1(northSouthPortDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { + dummy = castTo($next_7(dummy$iterator), 10); + origin_0 = $assertCorrectPortSides(dummy); + updatePortOrder.map_0.put(origin_0, updatePortOrder); + updatePortOrder.map_0.put(dummy, updatePortOrder); + } + } + for (node$iterator = updatePortOrder.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + $clinit_Collections(); + $sort(node.ports, ($clinit_PortListSorter() , CMP_COMBINED)); + node.portSidesCached = true; + $findPortIndices(node); + } +} + +function SweepCopy(sc){ + this.nodeOrder = $deepCopy(sc.nodeOrder); + this.portOrders = new ArrayList_1(sc.portOrders); +} + +function SweepCopy_0(nodeOrderIn){ + var lNodes, lNodes$array, lNodes$index, lNodes$max, layer, node, node$array, node$index, node$max; + this.nodeOrder = $deepCopy(nodeOrderIn); + this.portOrders = new ArrayList; + for (lNodes$array = nodeOrderIn , lNodes$index = 0 , lNodes$max = lNodes$array.length; lNodes$index < lNodes$max; ++lNodes$index) { + lNodes = lNodes$array[lNodes$index]; + layer = new ArrayList; + $add_3(this.portOrders, layer); + for (node$array = lNodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + $add_3(layer, new ArrayList_1(node.ports)); + } + } +} + +defineClass(807, 1, {}, SweepCopy, SweepCopy_0); +var Lorg_eclipse_elk_alg_layered_p3order_SweepCopy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'SweepCopy', 807); +function $countAllCrossings(this$static, currentOrder){ + var crossings, layerIndex; + if (currentOrder.length == 0) { + return 0; + } + crossings = $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[0], ($clinit_PortSide() , WEST_2)); + crossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[currentOrder.length - 1], EAST_2); + for (layerIndex = 0; layerIndex < currentOrder.length; layerIndex++) { + crossings += $countCrossingsAt(this$static, layerIndex, currentOrder); + } + return crossings; +} + +function $countCrossingsAt(this$static, layerIndex, currentOrder){ + var leftLayer, rightLayer, totalCrossings; + totalCrossings = 0; + leftLayer = currentOrder[layerIndex]; + if (layerIndex < currentOrder.length - 1) { + rightLayer = currentOrder[layerIndex + 1]; + if (this$static.hasHyperEdgesEastOfIndex[layerIndex]) { + totalCrossings = $countCrossings_1(this$static.hyperedgeCrossingsCounter, leftLayer, rightLayer); + totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, leftLayer, ($clinit_PortSide() , EAST_2)); + totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, rightLayer, WEST_2); + } + else { + totalCrossings = $countCrossingsBetweenLayers(this$static.crossingCounter, leftLayer, rightLayer); + } + } + this$static.hasNorthSouthPorts[layerIndex] && (totalCrossings += $countNorthSouthPortCrossingsInLayer(this$static.crossingCounter, leftLayer)); + return totalCrossings; +} + +function AllCrossingsCounter(graph){ + this.inLayerEdgeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.length, 15, 1); + this.hasNorthSouthPorts = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); + this.hasHyperEdgesEastOfIndex = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); + this.nPorts = 0; +} + +defineClass(1798, 1, $intern_111, AllCrossingsCounter); +_.initAtLayerLevel = function initAtLayerLevel_6(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_6(){ + var portPos; + portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); + this.hyperedgeCrossingsCounter = new HyperedgeCrossingsCounter(portPos); + this.crossingCounter = new CrossingsCounter(portPos); +} +; +_.initAtEdgeLevel = function initAtEdgeLevel_6(l, n, p, e, edge, nodeOrder){ + var port; + port = castTo($get_11(nodeOrder[l][n].ports, p), 11); + edge.source == port && edge.source.owner.layer == edge.target.owner.layer && ++this.inLayerEdgeCounts[l]; +} +; +_.initAtNodeLevel = function initAtNodeLevel_6(l, n, nodeOrder){ + var node; + node = nodeOrder[l][n]; + this.hasNorthSouthPorts[l] = this.hasNorthSouthPorts[l] | node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT); +} +; +_.initAtPortLevel = function initAtPortLevel_6(l, n, p, nodeOrder){ + var port; + port = castTo($get_11(nodeOrder[l][n].ports, p), 11); + port.id_0 = this.nPorts++; + port.outgoingEdges.array.length + port.incomingEdges.array.length > 1 && (port.side == ($clinit_PortSide() , EAST_2)?(this.hasHyperEdgesEastOfIndex[l] = true):port.side == WEST_2 && l > 0 && (this.hasHyperEdgesEastOfIndex[l - 1] = true)); +} +; +_.nPorts = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_AllCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'AllCrossingsCounter', 1798); +function $add_16(this$static, index_0){ + var i; + ++this$static.size_0; + ++this$static.numsPerIndex[index_0]; + i = index_0 + 1; + while (i < this$static.binarySums.length) { + ++this$static.binarySums[i]; + i += i & -i; + } +} + +function $clear_9(this$static){ + this$static.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum + 1, 15, 1); + this$static.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum, 15, 1); + this$static.size_0 = 0; +} + +function $rank(this$static, index_0){ + var i, sum; + i = index_0; + sum = 0; + while (i > 0) { + sum += this$static.binarySums[i]; + i -= i & -i; + } + return sum; +} + +function $removeAll_3(this$static, index_0){ + var i, numEntries; + numEntries = this$static.numsPerIndex[index_0]; + if (numEntries == 0) { + return; + } + this$static.numsPerIndex[index_0] = 0; + this$static.size_0 -= numEntries; + i = index_0 + 1; + while (i < this$static.binarySums.length) { + this$static.binarySums[i] -= numEntries; + i += i & -i; + } +} + +function BinaryIndexedTree(maxNum){ + this.maxNum = maxNum; + this.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum + 1, 15, 1); + this.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum, 15, 1); + this.size_0 = 0; +} + +defineClass(587, 1, {}, BinaryIndexedTree); +_.maxNum = 0; +_.size_0 = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_BinaryIndexedTree_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'BinaryIndexedTree', 587); +function inNorthSouthEastWestOrder(node, side){ + switch (side.ordinal) { + case 2: + case 1: + return $getPortSideView(node, side); + case 3: + case 4: + return reverse_0($getPortSideView(node, side)); + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $clinit_CrossingsCounter(){ + $clinit_CrossingsCounter = emptyMethod; + INDEXING_SIDE = ($clinit_PortSide() , WEST_2); + STACK_SIDE = EAST_2; +} + +function $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side){ + var edge, edge$iterator, node, node$array, node$index, node$max, port, port$iterator, ports; + ports = new TreeSet_0(new CrossingsCounter$lambda$2$Type(this$static)); + for (node$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [upperNode, lowerNode]) , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + for (port$iterator = inNorthSouthEastWestOrder(node, side).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if (!$isSelfLoop(edge)) { + $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; + $isInLayer(edge) && $add_10(ports, port == edge.source?edge.target:edge.source); + } + } + } + } + return checkNotNull(ports) , new ArrayList_1(ports); +} + +function $connectedPortsSortedByPosition(this$static, upperPort, lowerPort){ + var edge, edge$iterator, port, port$array, port$index, port$max, ports; + ports = new TreeSet_0(new CrossingsCounter$lambda$3$Type(this$static)); + for (port$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, 1), $intern_108, 11, 0, [upperPort, lowerPort]) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + edge.source == edge.target || $add_10(ports, port == edge.source?edge.target:edge.source); + } + } + return checkNotNull(ports) , new ArrayList_1(ports); +} + +function $countCrossingsBetweenLayers(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return $countCrossingsOnPorts(this$static, ports); +} + +function $countCrossingsBetweenPortsInBothOrders(this$static, upperPort, lowerPort){ + var lowerUpperCrossings, ports, upperLowerCrossings; + ports = $connectedPortsSortedByPosition(this$static, upperPort, lowerPort); + upperLowerCrossings = $countCrossingsOnPorts(this$static, ports); + $clear_9(this$static.indexTree); + $switchPorts(this$static, upperPort, lowerPort); + $clinit_Collections(); + $sort(ports, new CrossingsCounter$lambda$0$Type(this$static)); + lowerUpperCrossings = $countCrossingsOnPorts(this$static, ports); + $clear_9(this$static.indexTree); + $switchPorts(this$static, lowerPort, upperPort); + return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); +} + +function $countCrossingsOnPorts(this$static, ports){ + var crossings, edge, edge$iterator, endPosition, port, port$iterator; + crossings = 0; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition); + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); + } + } + return crossings; +} + +function $countInLayerCrossingsBetweenNodesInBothOrders(this$static, upperNode, lowerNode, side){ + var lowerUpperCrossings, ports, upperLowerCrossings; + ports = $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side); + upperLowerCrossings = $countInLayerCrossingsOnPorts(this$static, ports); + $switchNodes(this$static, upperNode, lowerNode, side); + $clear_9(this$static.indexTree); + $clinit_Collections(); + $sort(ports, new CrossingsCounter$lambda$1$Type(this$static)); + lowerUpperCrossings = $countInLayerCrossingsOnPorts(this$static, ports); + $switchNodes(this$static, lowerNode, upperNode, side); + $clear_9(this$static.indexTree); + return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); +} + +function $countInLayerCrossingsOnPorts(this$static, ports){ + var crossings, edge, edge$iterator, endPosition, numBetweenLayerEdges, port, port$iterator; + crossings = 0; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + numBetweenLayerEdges = 0; + for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if ($isInLayer(edge)) { + endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition); + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + else { + ++numBetweenLayerEdges; + } + } + crossings += this$static.indexTree.size_0 * numBetweenLayerEdges; + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); + } + } + return crossings; +} + +function $countInLayerCrossingsOnSide(this$static, nodes, side){ + var ports; + ports = $initPortPositionsForInLayerCrossings(this$static, nodes, side); + return $countInLayerCrossingsOnPorts(this$static, ports); +} + +function $countNorthSouthCrossingsOnPorts(this$static, ports){ + var crossings, dummy, dummyPort, endPosition, port, port$iterator, targetAndDegree, targetAndDegree$iterator, targetsAndDegrees; + crossings = 0; + targetsAndDegrees = new ArrayList; + for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + targetsAndDegrees.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + switch (port.owner.type_0.ordinal) { + case 0: + dummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + $forEach_1(dummy.ports, new CrossingsCounter$lambda$4$Type(targetsAndDegrees)); + break; + case 1: + $ifPresent($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.owner.ports, 16)), new CrossingsCounter$lambda$5$Type(port))), new CrossingsCounter$lambda$6$Type(targetsAndDegrees)); + break; + case 3: + dummyPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + $add_3(targetsAndDegrees, new Pair(dummyPort, valueOf_4(port.incomingEdges.array.length + port.outgoingEdges.array.length))); + } + for (targetAndDegree$iterator = new ArrayList$1(targetsAndDegrees); targetAndDegree$iterator.i < targetAndDegree$iterator.this$01.array.length;) { + targetAndDegree = castTo($next_7(targetAndDegree$iterator), 46); + endPosition = $positionOf_0(this$static, castTo(targetAndDegree.first, 11)); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition) * castTo(targetAndDegree.second, 19).value_0; + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); + } + } + return crossings; +} + +function $countNorthSouthPortCrossingsInLayer(this$static, layer){ + var ports; + ports = $initPositionsForNorthSouthCounting(this$static, layer); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return $countNorthSouthCrossingsOnPorts(this$static, ports); +} + +function $emptyStack(this$static, stack_0, ports, side, startIndex){ + var dummy, index_0, p; + index_0 = startIndex; + while (stack_0.head != stack_0.tail) { + dummy = castTo($removeFirst(stack_0), 10); + p = castTo($getPortSideView(dummy, side).get_0(0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + return index_0; +} + +function $initForCountingBetween(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); +} + +function $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes){ + var ports; + ports = new ArrayList; + $initPositions(this$static, leftLayerNodes, ports, ($clinit_PortSide() , EAST_2), true, false); + $initPositions(this$static, rightLayerNodes, ports, WEST_2, false, false); + return ports; +} + +function $initPortPositionsForInLayerCrossings(this$static, nodes, side){ + var ports; + ports = new ArrayList; + $initPositions(this$static, nodes, ports, side, true, true); + this$static.indexTree = new BinaryIndexedTree(ports.array.length); + return ports; +} + +function $initPositions(this$static, nodes, ports, side, topDown, getCardinalities){ + var i, node, nodePorts, numPorts, port, port$iterator; + numPorts = ports.array.length; + getCardinalities && (this$static.nodeCardinalities = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.length, 15, 1)); + for (i = topDown?0:nodes.length - 1; topDown?i < nodes.length:i >= 0; i += topDown?1:-1) { + node = nodes[i]; + nodePorts = side == ($clinit_PortSide() , EAST_2)?topDown?$getPortSideView(node, side):reverse_0($getPortSideView(node, side)):topDown?reverse_0($getPortSideView(node, side)):$getPortSideView(node, side); + getCardinalities && (this$static.nodeCardinalities[node.id_0] = nodePorts.size_1()); + for (port$iterator = nodePorts.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + this$static.portPositions[port.id_0] = numPorts++; + } + $addAll_2(ports, nodePorts); + } +} + +function $initPositionsForNorthSouthCounting(this$static, nodes){ + var current, i, index_0, lastLayoutUnit, p, p$iterator, p$iterator0, p$iterator1, ports, stack_0; + ports = new ArrayList; + stack_0 = new ArrayDeque; + lastLayoutUnit = null; + index_0 = 0; + for (i = 0; i < nodes.length; ++i) { + current = nodes[i]; + $isLayoutUnitChanged(lastLayoutUnit, current) && (index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0)); + $hasProperty(current, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)) && (lastLayoutUnit = castTo($getProperty(current, IN_LAYER_LAYOUT_UNIT), 10)); + switch (current.type_0.ordinal) { + case 0: + for (p$iterator0 = $iterator_0(filter_0($getPortSideView(current, ($clinit_PortSide() , NORTH_3)), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator0);) { + p = castTo($next(p$iterator0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); + for (p$iterator1 = $iterator_0(filter_0($getPortSideView(current, SOUTH_2), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator1);) { + p = castTo($next(p$iterator1), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + break; + case 3: + if (!$getPortSideView(current, INDEXING_SIDE).isEmpty()) { + p = castTo($getPortSideView(current, INDEXING_SIDE).get_0(0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + $getPortSideView(current, STACK_SIDE).isEmpty() || $addFirst(stack_0, current); + break; + case 1: + for (p$iterator = $getPortSideView(current, ($clinit_PortSide() , WEST_2)).iterator_0(); p$iterator.hasNext_0();) { + p = castTo(p$iterator.next_1(), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + $getPortSideView(current, EAST_2).forEach_0(new CrossingsCounter$lambda$7$Type(stack_0, current)); + } + } + $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); + return ports; +} + +function $isInLayer(edge){ + var sourceLayer, targetLayer; + sourceLayer = edge.source.owner.layer; + targetLayer = edge.target.owner.layer; + return sourceLayer == targetLayer; +} + +function $isLayoutUnitChanged(lastUnit, node){ + var unit; + if (!lastUnit || lastUnit == node || !$hasProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT))) { + return false; + } + unit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); + return unit != lastUnit; +} + +function $lambda$0_9(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$1_3(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$2_2(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $lambda$3_1(this$static, a_0, b_1){ + return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); +} + +function $positionOf_0(this$static, port){ + return this$static.portPositions[port.id_0]; +} + +function $switchNodes(this$static, wasUpperNode, wasLowerNode, side){ + var port, port$iterator, port$iterator0, ports; + ports = inNorthSouthEastWestOrder(wasUpperNode, side); + for (port$iterator0 = ports.iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 11); + this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] + this$static.nodeCardinalities[wasLowerNode.id_0]; + } + ports = inNorthSouthEastWestOrder(wasLowerNode, side); + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] - this$static.nodeCardinalities[wasUpperNode.id_0]; + } +} + +function $switchPorts(this$static, topPort, bottomPort){ + var topPortPos; + topPortPos = this$static.portPositions[topPort.id_0]; + this$static.portPositions[topPort.id_0] = this$static.portPositions[bottomPort.id_0]; + this$static.portPositions[bottomPort.id_0] = topPortPos; +} + +function CrossingsCounter(portPositions){ + $clinit_CrossingsCounter(); + this.portPositions = portPositions; + this.ends = new ArrayDeque; +} + +function lambda$4_7(targetsAndDegrees_0, p_1){ + $clinit_CrossingsCounter(); + return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +function lambda$5_4(port_0, p_1){ + $clinit_CrossingsCounter(); + return p_1 != port_0; +} + +function lambda$6_1(targetsAndDegrees_0, p_1){ + $clinit_CrossingsCounter(); + return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +defineClass(524, 1, {}, CrossingsCounter); +var INDEXING_SIDE, STACK_SIDE; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter', 524); +function CrossingsCounter$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1906, 1, $intern_88, CrossingsCounter$lambda$0$Type); +_.compare_1 = function compare_69(arg0, arg1){ + return $lambda$0_9(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_152(other){ + return this === other; +} +; +_.reversed = function reversed_61(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$0$Type', 1906); +function CrossingsCounter$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1907, 1, $intern_88, CrossingsCounter$lambda$1$Type); +_.compare_1 = function compare_70(arg0, arg1){ + return $lambda$1_3(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_153(other){ + return this === other; +} +; +_.reversed = function reversed_62(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$1$Type', 1907); +function CrossingsCounter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1908, 1, $intern_88, CrossingsCounter$lambda$2$Type); +_.compare_1 = function compare_71(arg0, arg1){ + return $lambda$2_2(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_154(other){ + return this === other; +} +; +_.reversed = function reversed_63(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$2$Type', 1908); +function CrossingsCounter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1909, 1, $intern_88, CrossingsCounter$lambda$3$Type); +_.compare_1 = function compare_72(arg0, arg1){ + return $lambda$3_1(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_155(other){ + return this === other; +} +; +_.reversed = function reversed_64(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$3$Type', 1909); +function CrossingsCounter$lambda$4$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1910, 1, $intern_19, CrossingsCounter$lambda$4$Type); +_.accept = function accept_118(arg0){ + lambda$4_7(this.targetsAndDegrees_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$4$Type', 1910); +function CrossingsCounter$lambda$5$Type(port_0){ + this.port_0 = port_0; +} + +defineClass(1911, 1, $intern_39, CrossingsCounter$lambda$5$Type); +_.test_0 = function test_88(arg0){ + return lambda$5_4(this.port_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$5$Type', 1911); +function $accept_4(this$static, arg0){ + lambda$6_1(this$static.targetsAndDegrees_0, castTo(arg0, 11)); +} + +function CrossingsCounter$lambda$6$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1912, 1, $intern_19, CrossingsCounter$lambda$6$Type); +_.accept = function accept_119(arg0){ + $accept_4(this, arg0); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$6$Type', 1912); +function CrossingsCounter$lambda$7$Type(stack_0, current_1){ + this.stack_0 = stack_0; + this.current_1 = current_1; +} + +defineClass(1913, 1, $intern_19, CrossingsCounter$lambda$7$Type); +_.accept = function accept_120(arg0){ + var lastArg; + $clinit_CrossingsCounter(); + $addFirst(this.stack_0, (lastArg = this.current_1 , castTo(arg0, 11) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$7$Type', 1913); +function CrossingsCounter$lambda$8$Type(){ +} + +defineClass(826, 1, $intern_89, CrossingsCounter$lambda$8$Type); +_.apply_1 = function apply_139(arg0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(arg0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +_.equals_0 = function equals_156(other){ + return this === other; +} +; +_.test_0 = function test_89(input_0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(input_0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$8$Type', 826); +function $countCrossings_1(this$static, leftLayer, rightLayer){ + var compressDeltas, crossings, delta, edge, edge$iterator, firstIndex, he, he$array, he$index, he$max, hyperedge, hyperedgeSet, hyperedges, i, i0, i1, i2, i3, i4, i5, index_0, k, leftCorners, leftLayerRef, node, node$array, node$array0, node$array1, node$index, node$index0, node$index1, node$max, node$max0, node$max1, northInputPorts, openHyperedges, otherInputPorts, p, p$iterator, port, port$iterator, port2HyperedgeMap, portEdges, portIter, pos, q, rightCorners, rightLayerRef, sourceCount, sourceHE, sourcePort, sourcePort$iterator, southSequence, targetCount, targetHE, targetPort, tree, treeSize; + sourceCount = 0; + for (node$array0 = leftLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { + node = node$array0[node$index0]; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node.layer != edge.target.owner.layer && ++portEdges; + } + portEdges > 0 && (this$static.portPos[port.id_0] = sourceCount++); + } + } + targetCount = 0; + for (node$array1 = rightLayer , node$index1 = 0 , node$max1 = node$array1.length; node$index1 < node$max1; ++node$index1) { + node = node$array1[node$index1]; + northInputPorts = 0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if (port.side == ($clinit_PortSide() , NORTH_3)) { + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (node.layer != edge.source.owner.layer) { + ++northInputPorts; + break; + } + } + } + else { + break; + } + } + otherInputPorts = 0; + portIter = new AbstractList$ListIteratorImpl(node.ports, node.ports.array.length); + while (portIter.i > 0) { + port = (checkCriticalElement(portIter.i > 0) , castTo(portIter.this$01.get_0(portIter.last = --portIter.i), 11)); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + node.layer != edge.source.owner.layer && ++portEdges; + } + if (portEdges > 0) { + if (port.side == ($clinit_PortSide() , NORTH_3)) { + this$static.portPos[port.id_0] = targetCount; + ++targetCount; + } + else { + this$static.portPos[port.id_0] = targetCount + northInputPorts + otherInputPorts; + ++otherInputPorts; + } + } + } + targetCount += otherInputPorts; + } + port2HyperedgeMap = new HashMap; + hyperedgeSet = new LinkedHashSet; + for (node$array = leftLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { + sourcePort = castTo($next_7(sourcePort$iterator), 11); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetPort = edge.target; + if (node.layer != targetPort.owner.layer) { + sourceHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, sourcePort)), 467); + targetHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, targetPort)), 467); + if (!sourceHE && !targetHE) { + hyperedge = new HyperedgeCrossingsCounter$Hyperedge; + hyperedgeSet.map_0.put(hyperedge, hyperedgeSet); + $add_3(hyperedge.edges, edge); + $add_3(hyperedge.ports, sourcePort); + $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, hyperedge); + $add_3(hyperedge.ports, targetPort); + $put_9(port2HyperedgeMap.hashCodeMap, targetPort, hyperedge); + } + else if (!sourceHE) { + $add_3(targetHE.edges, edge); + $add_3(targetHE.ports, sourcePort); + $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, targetHE); + } + else if (!targetHE) { + $add_3(sourceHE.edges, edge); + $add_3(sourceHE.ports, targetPort); + $put_9(port2HyperedgeMap.hashCodeMap, targetPort, sourceHE); + } + else if (sourceHE == targetHE) { + $add_3(sourceHE.edges, edge); + } + else { + $add_3(sourceHE.edges, edge); + for (p$iterator = new ArrayList$1(targetHE.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + $put_9(port2HyperedgeMap.hashCodeMap, p, sourceHE); + } + $addAll_2(sourceHE.edges, targetHE.edges); + $addAll_2(sourceHE.ports, targetHE.ports); + hyperedgeSet.map_0.remove_0(targetHE) != null; + } + } + } + } + } + hyperedges = castTo($toArray_0(hyperedgeSet, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit, {3:1, 4:1, 5:1, 1946:1}, 467, hyperedgeSet.map_0.size_1(), 0, 1)), 1946); + leftLayerRef = leftLayer[0].layer; + rightLayerRef = rightLayer[0].layer; + for (he$array = hyperedges , he$index = 0 , he$max = he$array.length; he$index < he$max; ++he$index) { + he = he$array[he$index]; + he.upperLeft = sourceCount; + he.upperRight = targetCount; + for (port$iterator = new ArrayList$1(he.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + pos = this$static.portPos[port.id_0]; + if (port.owner.layer == leftLayerRef) { + pos < he.upperLeft && (he.upperLeft = pos); + pos > he.lowerLeft && (he.lowerLeft = pos); + } + else if (port.owner.layer == rightLayerRef) { + pos < he.upperRight && (he.upperRight = pos); + pos > he.lowerRight && (he.lowerRight = pos); + } + } + } + mergeSort(hyperedges, 0, hyperedges.length, null); + southSequence = initUnidimensionalArray(I_classLit, $intern_48, 25, hyperedges.length, 15, 1); + compressDeltas = initUnidimensionalArray(I_classLit, $intern_48, 25, targetCount + 1, 15, 1); + for (i0 = 0; i0 < hyperedges.length; i0++) { + southSequence[i0] = hyperedges[i0].upperRight; + compressDeltas[southSequence[i0]] = 1; + } + delta = 0; + for (i1 = 0; i1 < compressDeltas.length; i1++) { + compressDeltas[i1] == 1?(compressDeltas[i1] = delta):--delta; + } + q = 0; + for (i2 = 0; i2 < southSequence.length; i2++) { + southSequence[i2] += compressDeltas[southSequence[i2]]; + q = $wnd.Math.max(q, southSequence[i2] + 1); + } + firstIndex = 1; + while (firstIndex < q) { + firstIndex *= 2; + } + treeSize = 2 * firstIndex - 1; + firstIndex -= 1; + tree = initUnidimensionalArray(I_classLit, $intern_48, 25, treeSize, 15, 1); + crossings = 0; + for (k = 0; k < southSequence.length; k++) { + index_0 = southSequence[k] + firstIndex; + ++tree[index_0]; + while (index_0 > 0) { + index_0 % 2 > 0 && (crossings += tree[index_0 + 1]); + index_0 = (index_0 - 1) / 2 | 0; + ++tree[index_0]; + } + } + leftCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); + for (i3 = 0; i3 < hyperedges.length; i3++) { + leftCorners[2 * i3] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].upperLeft, hyperedges[i3].lowerLeft, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); + leftCorners[2 * i3 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].lowerLeft, hyperedges[i3].upperLeft, LOWER); + } + mergeSort(leftCorners, 0, leftCorners.length, null); + openHyperedges = 0; + for (i4 = 0; i4 < leftCorners.length; i4++) { + switch (leftCorners[i4].type_0.ordinal) { + case 0: + ++openHyperedges; + break; + case 1: + --openHyperedges; + crossings += openHyperedges; + } + } + rightCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); + for (i5 = 0; i5 < hyperedges.length; i5++) { + rightCorners[2 * i5] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].upperRight, hyperedges[i5].lowerRight, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); + rightCorners[2 * i5 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].lowerRight, hyperedges[i5].upperRight, LOWER); + } + mergeSort(rightCorners, 0, rightCorners.length, null); + openHyperedges = 0; + for (i = 0; i < rightCorners.length; i++) { + switch (rightCorners[i].type_0.ordinal) { + case 0: + ++openHyperedges; + break; + case 1: + --openHyperedges; + crossings += openHyperedges; + } + } + return crossings; +} + +function HyperedgeCrossingsCounter(portPos){ + this.portPos = portPos; +} + +defineClass(1905, 1, {}, HyperedgeCrossingsCounter); +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter', 1905); +function $compareTo_14(this$static, other){ + if (this$static.upperLeft < other.upperLeft) { + return -1; + } + else if (this$static.upperLeft > other.upperLeft) { + return 1; + } + else if (this$static.upperRight < other.upperRight) { + return -1; + } + else if (this$static.upperRight > other.upperRight) { + return 1; + } + return hashCode__I__devirtual$(this$static) - hashCode__I__devirtual$(other); +} + +function HyperedgeCrossingsCounter$Hyperedge(){ + this.edges = new ArrayList; + this.ports = new ArrayList; +} + +defineClass(467, 1, {35:1, 467:1}, HyperedgeCrossingsCounter$Hyperedge); +_.compareTo_0 = function compareTo_15(other){ + return $compareTo_14(this, castTo(other, 467)); +} +; +_.lowerLeft = 0; +_.lowerRight = 0; +_.upperLeft = 0; +_.upperRight = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/Hyperedge', 467); +function $compareTo_15(this$static, other){ + if (this$static.position < other.position) { + return -1; + } + else if (this$static.position > other.position) { + return 1; + } + else if (this$static.oppositePosition < other.oppositePosition) { + return -1; + } + else if (this$static.oppositePosition > other.oppositePosition) { + return 1; + } + else if (this$static.hyperedge != other.hyperedge) { + return hashCode__I__devirtual$(this$static.hyperedge) - hashCode__I__devirtual$(other.hyperedge); + } + else if (this$static.type_0 == ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER) && other.type_0 == LOWER) { + return -1; + } + else if (this$static.type_0 == LOWER && other.type_0 == UPPER) { + return 1; + } + return 0; +} + +function HyperedgeCrossingsCounter$HyperedgeCorner(hyperedge, position, oppositePosition, type_0){ + this.hyperedge = hyperedge; + this.position = position; + this.oppositePosition = oppositePosition; + this.type_0 = type_0; +} + +defineClass(362, 1, {35:1, 362:1}, HyperedgeCrossingsCounter$HyperedgeCorner); +_.compareTo_0 = function compareTo_16(other){ + return $compareTo_15(this, castTo(other, 362)); +} +; +_.oppositePosition = 0; +_.position = 0; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner', 362); +function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type = emptyMethod; + UPPER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('UPPER', 0); + LOWER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('LOWER', 1); +} + +function HyperedgeCrossingsCounter$HyperedgeCorner$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_68(name_0){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); + return valueOf(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map() , $MAP_56), name_0); +} + +function values_74(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]); +} + +defineClass(523, 22, {3:1, 35:1, 22:1, 523:1}, HyperedgeCrossingsCounter$HyperedgeCorner$Type); +var LOWER, UPPER; +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner/Type', 523, Ljava_lang_Enum_2_classLit, values_74, valueOf_68); +function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map(){ + $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map = emptyMethod; + $MAP_56 = createValueOfMap(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]))); +} + +var $MAP_56; +function $clinit_InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $placeNodes(this$static, layer){ + var minValidY, node, node$iterator, nodeType, originalYCoordinate, prevNodeType, spacing; + minValidY = $intern_60; + prevNodeType = ($clinit_LNode$NodeType() , NORMAL); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeType = node.type_0; + if (nodeType != NORMAL) { + originalYCoordinate = castToDouble($getProperty(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION))); + if (originalYCoordinate == null) { + minValidY = $wnd.Math.max(minValidY, 0); + node.pos.y_0 = minValidY + $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); + } + else { + node.pos.y_0 = (checkCriticalNotNull(originalYCoordinate) , originalYCoordinate); + } + } + spacing = $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); + node.pos.y_0 < minValidY + spacing + node.margin.top_0 && (node.pos.y_0 = minValidY + spacing + node.margin.top_0); + minValidY = node.pos.y_0 + node.size_0.y_0 + node.margin.bottom; + prevNodeType = nodeType; + } +} + +function $process_70(this$static, layeredGraph, monitor){ + var layer, layer$iterator; + $begin(monitor, 'Interactive node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $placeNodes(this$static, layer); + } + $done_0(monitor); +} + +function InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer(); +} + +defineClass(1405, 1, $intern_113, InteractiveNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_12(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS:null; +} +; +_.process = function process_67(layeredGraph, monitor){ + $process_70(this, castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p4nodes_InteractiveNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'InteractiveNodePlacer', 1405); +function $clinit_LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_0 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); + INPUT_PRIO = new Property_0('linearSegments.inputPrio', valueOf_4(0)); + OUTPUT_PRIO = new Property_0('linearSegments.outputPrio', valueOf_4(0)); +} + +function $balancePlacement(this$static, layeredGraph){ + var deflection, deflectionDampening, finalIters, incoming, lastTotalDeflection, merged, mode, node, node$iterator, outgoing, pendulumIters, ready, segment, segment$array, segment$array0, segment$index, segment$index0, segment$max, segment$max0, thoroughness, threshold, totalDeflection; + deflectionDampening = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)))); + thoroughness = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0; + pendulumIters = 4; + finalIters = 3; + threshold = 20 / thoroughness; + ready = false; + mode = 0; + lastTotalDeflection = $intern_0; + do { + incoming = mode != 1; + outgoing = mode != 0; + totalDeflection = 0; + for (segment$array0 = this$static.linearSegments , segment$index0 = 0 , segment$max0 = segment$array0.length; segment$index0 < segment$max0; ++segment$index0) { + segment = segment$array0[segment$index0]; + segment.refSegment = null; + $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening); + totalDeflection += $wnd.Math.abs(segment.deflection); + } + do { + merged = $mergeRegions(this$static, layeredGraph); + } + while (merged); + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + deflection = $region(segment).deflection; + if (deflection != 0) { + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 += deflection; + } + } + } + if (mode == 0 || mode == 1) { + --pendulumIters; + if (pendulumIters <= 0 && (totalDeflection < lastTotalDeflection || -pendulumIters > thoroughness)) { + mode = 2; + lastTotalDeflection = $intern_0; + } + else if (mode == 0) { + mode = 1; + lastTotalDeflection = totalDeflection; + } + else { + mode = 0; + lastTotalDeflection = totalDeflection; + } + } + else { + ready = totalDeflection >= lastTotalDeflection || lastTotalDeflection - totalDeflection < threshold; + lastTotalDeflection = totalDeflection; + ready && --finalIters; + } + } + while (!(ready && finalIters <= 0)); +} + +function $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening){ + var edge, edge$iterator, edgeWeightSum, inputPrio, minPrio, node, node$iterator, nodeDeflection, nodeWeightSum, otherNode, otherPort, otherPrio, outputPrio, port, port$iterator, portpos, prio, segmentDeflection; + segmentDeflection = 0; + nodeWeightSum = 0; + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + nodeDeflection = 0; + edgeWeightSum = 0; + inputPrio = incoming?castTo($getProperty(node, INPUT_PRIO), 19).value_0:$intern_42; + outputPrio = outgoing?castTo($getProperty(node, OUTPUT_PRIO), 19).value_0:$intern_42; + minPrio = $wnd.Math.max(inputPrio, outputPrio); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + portpos = node.pos.y_0 + port.pos.y_0 + port.anchor.y_0; + if (outgoing) { + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + otherPort = edge.target; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (prio >= minPrio && prio >= otherPrio) { + nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; + ++edgeWeightSum; + } + } + } + } + if (incoming) { + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + otherPort = edge.source; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (prio >= minPrio && prio >= otherPrio) { + nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; + ++edgeWeightSum; + } + } + } + } + } + if (edgeWeightSum > 0) { + segmentDeflection += nodeDeflection / edgeWeightSum; + ++nodeWeightSum; + } + } + if (nodeWeightSum > 0) { + segment.deflection = deflectionDampening * segmentDeflection / nodeWeightSum; + segment.weight = nodeWeightSum; + } + else { + segment.deflection = 0; + segment.weight = 0; + } +} + +function $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList){ + var currentNode, currentSegment, cycleNode, cycleNodesIter, cycleSegment, indexInLayer, layer, layer$iterator, layerIndex, nextLinearSegmentID, nextNode, nextSegment, nodeIter, nodes, previousNode; + nextLinearSegmentID = segmentList.array.length; + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + nodeIter = new ArrayList$1(nodes); + indexInLayer = 0; + previousNode = null; + currentNode = castTo($next_7(nodeIter), 10); + currentSegment = null; + while (currentNode) { + currentSegment = castTo($get_11(segmentList, currentNode.id_0), 257); + if (currentSegment.indexInLastLayer >= 0) { + cycleSegment = null; + cycleNodesIter = new AbstractList$ListIteratorImpl(layer.nodes, indexInLayer + 1); + while (cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) { + cycleNode = (checkCriticalElement(cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) , castTo(cycleNodesIter.this$01_0.get_0(cycleNodesIter.last = cycleNodesIter.i++), 10)); + cycleSegment = castTo($get_11(segmentList, cycleNode.id_0), 257); + if (cycleSegment.lastLayer == currentSegment.lastLayer && cycleSegment.indexInLastLayer < currentSegment.indexInLastLayer) { + break; + } + else { + cycleSegment = null; + } + } + if (cycleSegment) { + if (previousNode) { + $set_1(incomingCountList, currentNode.id_0, valueOf_4(castTo($get_11(incomingCountList, currentNode.id_0), 19).value_0 - 1)); + castTo($get_11(outgoingList, previousNode.id_0), 15).remove_1(currentSegment); + } + currentSegment = $split_3(currentSegment, currentNode, nextLinearSegmentID++); + segmentList.array[segmentList.array.length] = currentSegment; + $add_3(outgoingList, new ArrayList); + if (previousNode) { + castTo($get_11(outgoingList, previousNode.id_0), 15).add_2(currentSegment); + $add_3(incomingCountList, valueOf_4(1)); + } + else { + $add_3(incomingCountList, valueOf_4(0)); + } + } + } + nextNode = null; + if (nodeIter.i < nodeIter.this$01.array.length) { + nextNode = castTo($next_7(nodeIter), 10); + nextSegment = castTo($get_11(segmentList, nextNode.id_0), 257); + castTo($get_11(outgoingList, currentNode.id_0), 15).add_2(nextSegment); + $set_1(incomingCountList, nextNode.id_0, valueOf_4(castTo($get_11(incomingCountList, nextNode.id_0), 19).value_0 + 1)); + } + currentSegment.lastLayer = layerIndex; + currentSegment.indexInLastLayer = indexInLayer++; + previousNode = currentNode; + currentNode = nextNode; + } + ++layerIndex; + } +} + +function $createUnbalancedPlacement(this$static, layeredGraph){ + var layer, layerIndex, node, node$iterator, node$iterator0, nodeCount, recentNode, recentNodeType, segment, segment$array, segment$index, segment$max, spacing, uppermostPlace; + nodeCount = initUnidimensionalArray(I_classLit, $intern_48, 25, layeredGraph.layers.array.length, 15, 1); + recentNodeType = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, $intern_36, 267, layeredGraph.layers.array.length, 0, 1); + recentNode = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layeredGraph.layers.array.length, 0, 1); + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + uppermostPlace = 0; + for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + layerIndex = $getIndex_0(node.layer); + ++nodeCount[layerIndex]; + spacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); + nodeCount[layerIndex] > 0 && !!recentNode[layerIndex] && (spacing = $getVerticalSpacing_0(this$static.spacings, recentNode[layerIndex], node)); + uppermostPlace = $wnd.Math.max(uppermostPlace, node.layer.size_0.y_0 + spacing); + } + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 = uppermostPlace + node.margin.top_0; + layer = node.layer; + layer.size_0.y_0 = uppermostPlace + node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; + recentNodeType[$indexOf_3(layer.owner.layers, layer, 0)] = node.type_0; + recentNode[$indexOf_3(layer.owner.layers, layer, 0)] = node; + } + } +} + +function $fillSegment(this$static, node, segment){ + var edgesIter, nodeType, sourcePort, sourcePort$iterator, targetNode, targetNodeType, targetPort, targetPort$iterator; + nodeType = node.type_0; + if (node.id_0 >= 0) { + return false; + } + else { + node.id_0 = segment.id_0; + $add_3(segment.nodes, node); + } + if (nodeType == ($clinit_LNode$NodeType() , LONG_EDGE) || nodeType == NORTH_SOUTH_PORT) { + for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { + sourcePort = castTo($next_7(sourcePort$iterator), 11); + for (targetPort$iterator = (edgesIter = new ArrayList$1((new LPort$2(sourcePort)).this$01.outgoingEdges) , new LPort$2$1(edgesIter)); $hasNext_3(targetPort$iterator.val$edgesIter2);) { + targetPort = castTo($next_7(targetPort$iterator.val$edgesIter2), 17).target; + targetNode = targetPort.owner; + targetNodeType = targetNode.type_0; + if (node.layer != targetNode.layer) { + if (targetNodeType == LONG_EDGE || targetNodeType == NORTH_SOUTH_PORT) { + if ($fillSegment(this$static, targetNode, segment)) { + return true; + } + } + } + } + } + } + return true; +} + +function $mergeRegions(this$static, layeredGraph){ + var changed, layer, layer$iterator, node1, node1Extent, node2, node2Extent, nodeIter, nodeSpacing, region1, region2, spacing, threshold, weightSum; + changed = false; + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + threshold = $intern_41 * nodeSpacing; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIter = new ArrayList$1(layer.nodes); + node1 = castTo($next_7(nodeIter), 10); + region1 = $region(this$static.linearSegments[node1.id_0]); + while (nodeIter.i < nodeIter.this$01.array.length) { + node2 = castTo($next_7(nodeIter), 10); + region2 = $region(this$static.linearSegments[node2.id_0]); + if (region1 != region2) { + spacing = $getVerticalSpacing_0(this$static.spacings, node1, node2); + node1Extent = node1.pos.y_0 + node1.size_0.y_0 + node1.margin.bottom + region1.deflection + spacing; + node2Extent = node2.pos.y_0 - node2.margin.top_0 + region2.deflection; + if (node1Extent > node2Extent + threshold) { + weightSum = region1.weight + region2.weight; + region2.deflection = (region2.weight * region2.deflection + region1.weight * region1.deflection) / weightSum; + region2.weight = weightSum; + region1.refSegment = region2; + changed = true; + } + } + node1 = node2; + region1 = region2; + } + } + return changed; +} + +function $postProcess(this$static){ + var d, edge, edge$iterator, firstNode, foundPlace, index_0, lastNode, minDisplacement, minRoomAbove, minRoomBelow, neighbor, node, node$iterator, node$iterator0, pos, roomAbove, roomBelow, segment, segment$array, segment$index, segment$max, source, source$iterator, spacing, target, target$iterator; + for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { + segment = segment$array[segment$index]; + minRoomAbove = $intern_0; + minRoomBelow = $intern_0; + for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + index_0 = !node.layer?-1:$indexOf_3(node.layer.nodes, node, 0); + if (index_0 > 0) { + neighbor = castTo($get_11(node.layer.nodes, index_0 - 1), 10); + spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); + roomAbove = node.pos.y_0 - node.margin.top_0 - (neighbor.pos.y_0 + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing); + } + else { + roomAbove = node.pos.y_0 - node.margin.top_0; + } + minRoomAbove = $wnd.Math.min(roomAbove, minRoomAbove); + if (index_0 < node.layer.nodes.array.length - 1) { + neighbor = castTo($get_11(node.layer.nodes, index_0 + 1), 10); + spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); + roomBelow = neighbor.pos.y_0 - neighbor.margin.top_0 - (node.pos.y_0 + node.size_0.y_0 + node.margin.bottom + spacing); + } + else { + roomBelow = 2 * node.pos.y_0; + } + minRoomBelow = $wnd.Math.min(roomBelow, minRoomBelow); + } + minDisplacement = $intern_0; + foundPlace = false; + firstNode = castTo($get_11(segment.nodes, 0), 10); + for (target$iterator = new ArrayList$1(firstNode.ports); target$iterator.i < target$iterator.this$01.array.length;) { + target = castTo($next_7(target$iterator), 11); + pos = firstNode.pos.y_0 + target.pos.y_0 + target.anchor.y_0; + for (edge$iterator = new ArrayList$1(target.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + source = edge.source; + d = source.owner.pos.y_0 + source.pos.y_0 + source.anchor.y_0 - pos; + if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { + minDisplacement = d; + foundPlace = true; + } + } + } + lastNode = castTo($get_11(segment.nodes, segment.nodes.array.length - 1), 10); + for (source$iterator = new ArrayList$1(lastNode.ports); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 11); + pos = lastNode.pos.y_0 + source.pos.y_0 + source.anchor.y_0; + for (edge$iterator = new ArrayList$1(source.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + target = edge.target; + d = target.owner.pos.y_0 + target.pos.y_0 + target.anchor.y_0 - pos; + if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { + minDisplacement = d; + foundPlace = true; + } + } + } + if (foundPlace && minDisplacement != 0) { + for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 += minDisplacement; + } + } + } +} + +function $process_71(this$static, layeredGraph, monitor){ + $begin(monitor, 'Linear segments node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + $sortLinearSegments(this$static, layeredGraph); + $createUnbalancedPlacement(this$static, layeredGraph); + $balancePlacement(this$static, layeredGraph); + $postProcess(this$static); + this$static.linearSegments = null; + this$static.spacings = null; + $done_0(monitor); +} + +function $sortLinearSegments(this$static, layeredGraph){ + var edge, edge$iterator, edge$iterator0, i, i0, i1, i2, incomingCount, incomingCountList, inprio, layer, layer$iterator, layer$iterator0, ls, newRanks, nextLinearSegmentID, nextRank, noIncoming, node, node$iterator, outgoing, outgoingList, outprio, port, port$iterator, prio, rank, segment, segmentList, segments, target; + segmentList = new ArrayList; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = -1; + inprio = $intern_42; + outprio = $intern_42; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + inprio = $wnd.Math.max(inprio, prio); + } + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + outprio = $wnd.Math.max(outprio, prio); + } + } + $setProperty_0(node, INPUT_PRIO, valueOf_4(inprio)); + $setProperty_0(node, OUTPUT_PRIO, valueOf_4(outprio)); + } + } + nextLinearSegmentID = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.id_0 < 0) { + segment = new LinearSegmentsNodePlacer$LinearSegment; + segment.id_0 = nextLinearSegmentID++; + $fillSegment(this$static, node, segment); + segmentList.array[segmentList.array.length] = segment; + } + } + } + outgoingList = newArrayListWithCapacity(segmentList.array.length); + incomingCountList = newArrayListWithCapacity(segmentList.array.length); + for (i0 = 0; i0 < segmentList.array.length; i0++) { + $add_3(outgoingList, new ArrayList); + $add_3(incomingCountList, valueOf_4(0)); + } + $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList); + segments = castTo($toArray_2(segmentList, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segmentList.array.length, 0, 1)), 840); + outgoing = castTo($toArray_2(outgoingList, initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, outgoingList.array.length, 0, 1)), 192); + incomingCount = initUnidimensionalArray(I_classLit, $intern_48, 25, incomingCountList.array.length, 15, 1); + for (i1 = 0; i1 < incomingCount.length; i1++) { + incomingCount[i1] = (checkCriticalElementIndex(i1, incomingCountList.array.length) , castTo(incomingCountList.array[i1], 19)).value_0; + } + nextRank = 0; + noIncoming = new ArrayList; + for (i2 = 0; i2 < segments.length; i2++) { + incomingCount[i2] == 0 && $add_3(noIncoming, segments[i2]); + } + newRanks = initUnidimensionalArray(I_classLit, $intern_48, 25, segments.length, 15, 1); + while (noIncoming.array.length != 0) { + segment = castTo($remove_11(noIncoming, 0), 257); + newRanks[segment.id_0] = nextRank++; + while (!outgoing[segment.id_0].isEmpty()) { + target = castTo(outgoing[segment.id_0].remove_2(0), 257); + --incomingCount[target.id_0]; + incomingCount[target.id_0] == 0 && (noIncoming.array[noIncoming.array.length] = target , true); + } + } + this$static.linearSegments = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segments.length, 0, 1); + for (i = 0; i < segments.length; i++) { + ls = segments[i]; + rank = newRanks[i]; + this$static.linearSegments[rank] = ls; + ls.id_0 = rank; + for (node$iterator = new ArrayList$1(ls.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = rank; + } + } + return this$static.linearSegments; +} + +function LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer(); +} + +defineClass(1406, 1, $intern_113, LinearSegmentsNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_13(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_0:null; +} +; +_.process = function process_68(layeredGraph, monitor){ + $process_71(this, castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_0, INPUT_PRIO, OUTPUT_PRIO; +var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer', 1406); +function $compareTo_16(this$static, other){ + return this$static.id_0 - other.id_0; +} + +function $region(this$static){ + var seg; + seg = this$static; + while (seg.refSegment) { + seg = seg.refSegment; + } + return seg; +} + +function $split_3(this$static, node, newId){ + var iterator, movedNode, newSegment, nodeIndex; + nodeIndex = $indexOf_3(this$static.nodes, node, 0); + newSegment = new LinearSegmentsNodePlacer$LinearSegment; + newSegment.id_0 = newId; + iterator = new AbstractList$ListIteratorImpl(this$static.nodes, nodeIndex); + while (iterator.i < iterator.this$01_0.size_1()) { + movedNode = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 10)); + movedNode.id_0 = newId; + $add_3(newSegment.nodes, movedNode); + $remove_8(iterator); + } + return newSegment; +} + +function LinearSegmentsNodePlacer$LinearSegment(){ + this.nodes = new ArrayList; +} + +defineClass(257, 1, {35:1, 257:1}, LinearSegmentsNodePlacer$LinearSegment); +_.compareTo_0 = function compareTo_17(other){ + return $compareTo_16(this, castTo(other, 257)); +} +; +_.equals_0 = function equals_157(object){ + var other; + if (instanceOf(object, 257)) { + other = castTo(object, 257); + return this.id_0 == other.id_0; + } + return false; +} +; +_.hashCode_1 = function hashCode_62(){ + return this.id_0; +} +; +_.toString_0 = function toString_102(){ + return 'ls' + $toString_2(this.nodes); +} +; +_.deflection = 0; +_.id_0 = 0; +_.indexInLastLayer = -1; +_.lastLayer = -1; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer/LinearSegment', 257); +function $clinit_NetworkSimplexPlacer(){ + $clinit_NetworkSimplexPlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_1 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $applyPositions(this$static){ + var flexibleNode, l, l$iterator, lNode, lNode$iterator, label_0, label$iterator, maxY, minY, nNode, nf, nf0, nodeRep, p, p$iterator, placement, sizeDelta; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(lNode$iterator), 10); + nodeRep = this$static.nodeReps[lNode.id_0]; + minY = nodeRep.head.layer; + maxY = nodeRep.tail.layer; + lNode.pos.y_0 = minY; + sizeDelta = maxY - minY - lNode.size_0.y_0; + flexibleNode = isFlexibleNode(lNode); + nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); + flexibleNode && (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && (lNode.size_0.y_0 += sizeDelta); + if (flexibleNode && (nf0 == PORT_POSITION || nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { + for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + if (($clinit_PortSide() , SIDES_EAST_WEST).contains(p.side)) { + nNode = castTo($get_10(this$static.portMap, p), 121); + p.pos.y_0 = nNode.layer - minY; + } + } + for (label$iterator = new ArrayList$1(lNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + placement = castTo($getProperty(lNode, NODE_LABELS_PLACEMENT_1), 21); + placement.contains(($clinit_NodeLabelPlacement() , V_BOTTOM_0))?(label_0.pos.y_0 += sizeDelta):placement.contains(V_CENTER_0) && (label_0.pos.y_0 += sizeDelta / 2); + } + (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && $getPortSideView(lNode, ($clinit_PortSide() , SOUTH_2)).forEach_0(new NetworkSimplexPlacer$lambda$20$Type(sizeDelta)); + } + } + } +} + +function $buildInitialAuxiliaryGraph(this$static){ + var l, l$iterator; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + $transformLayer(this$static, l); + } + $forEach_3($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$2$Type), new NetworkSimplexPlacer$lambda$3$Type), new NetworkSimplexPlacer$lambda$4$Type), new NetworkSimplexPlacer$lambda$5$Type(this$static)); +} + +function $follow(this$static, edge, current, path){ + var incident, incident$iterator, other; + other = $getOther_1(edge, current); + path.array[path.array.length] = edge; + if (this$static.nodeState[other.id_0] == -1 || this$static.nodeState[other.id_0] == 2 || this$static.crossing[edge.id_0]) { + return path; + } + this$static.nodeState[other.id_0] = -1; + for (incident$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(other).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incident$iterator);) { + incident = castTo($next_0(incident$iterator), 17); + if (!(!$isSelfLoop(incident) && !(!$isSelfLoop(incident) && incident.source.owner.layer == incident.target.owner.layer)) || incident == edge) { + continue; + } + return $follow(this$static, incident, other, path); + } + return path; +} + +function $getEdgeWeight(nodeType1, nodeType2){ + return nodeType1 == ($clinit_LNode$NodeType() , NORMAL) && nodeType2 == NORMAL?4:nodeType1 == NORMAL || nodeType2 == NORMAL?8:32; +} + +function $improveTwoPath(this$static, path, probe){ + var a, above, aboveDist, aboveRep, b, below, belowDist, belowRep, c, caseA, caseB, caseC, caseD, centerNode, centerOrigin, d, leftEdge, move, nNode, nodeIndex, rightEdge, spacing; + leftEdge = this$static.edgeReps[(checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).id_0]; + rightEdge = this$static.edgeReps[(checkCriticalElementIndex(1, path.array.length) , castTo(path.array[1], 17)).id_0]; + if (leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) == 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) == 0) { + return false; + } + centerOrigin = leftEdge.right.target.origin_0; + if (!instanceOf(centerOrigin, 10)) { + return false; + } + centerNode = castTo(centerOrigin, 10); + nNode = this$static.nodeReps[centerNode.id_0]; + nodeIndex = !centerNode.layer?-1:$indexOf_3(centerNode.layer.nodes, centerNode, 0); + aboveDist = $intern_59; + if (nodeIndex > 0) { + above = castTo($get_11(centerNode.layer.nodes, nodeIndex - 1), 10); + aboveRep = this$static.nodeReps[above.id_0]; + spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, above, centerNode)); + aboveDist = nNode.head.layer - centerNode.margin.top_0 - (aboveRep.head.layer + above.size_0.y_0 + above.margin.bottom) - spacing; + } + belowDist = $intern_59; + if (nodeIndex < centerNode.layer.nodes.array.length - 1) { + below = castTo($get_11(centerNode.layer.nodes, nodeIndex + 1), 10); + belowRep = this$static.nodeReps[below.id_0]; + spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, below, centerNode)); + belowDist = belowRep.head.layer - below.margin.top_0 - (nNode.head.layer + centerNode.size_0.y_0 + centerNode.margin.bottom) - spacing; + } + if (probe && ($clinit_DoubleMath() , checkNonNegative($intern_117) , $wnd.Math.abs(aboveDist - belowDist) <= $intern_117 || aboveDist == belowDist || isNaN(aboveDist) && isNaN(belowDist))) { + return true; + } + a = length_1(leftEdge.left); + b = -length_1(leftEdge.right); + c = -length_1(rightEdge.left); + d = length_1(rightEdge.right); + caseD = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) > 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) < 0; + caseC = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) < 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) > 0; + caseB = leftEdge.left.target.layer + leftEdge.right.delta < rightEdge.right.target.layer + rightEdge.left.delta; + caseA = leftEdge.left.target.layer + leftEdge.right.delta > rightEdge.right.target.layer + rightEdge.left.delta; + move = 0; + !caseD && !caseC && (caseA?aboveDist + c > 0?(move = c):belowDist - a > 0 && (move = a):caseB && (aboveDist + b > 0?(move = b):belowDist - d > 0 && (move = d))); + nNode.head.layer += move; + nNode.isFlexible && (nNode.tail.layer += move); + return false; +} + +function $lambda$1_4(this$static, singleNode_1, p_1){ + return $put_6(this$static.portMap, p_1, singleNode_1); +} + +function $lambda$10(this$static, inLayerEdge_0){ + var dummyNode, dummyRep, portRep, src_0, srcIsDummy, tgt, thePort; + srcIsDummy = inLayerEdge_0.source.owner.type_0 != ($clinit_LNode$NodeType() , NORMAL); + thePort = srcIsDummy?inLayerEdge_0.target:inLayerEdge_0.source; + dummyNode = $getOther_2(inLayerEdge_0, thePort).owner; + portRep = castTo($get_10(this$static.portMap, thePort), 121); + dummyRep = this$static.nodeReps[dummyNode.id_0].head; + if ($getIndex(thePort.owner) < (!dummyNode.layer?-1:$indexOf_3(dummyNode.layer.nodes, dummyNode, 0))) { + src_0 = portRep; + tgt = dummyRep; + } + else { + src_0 = dummyRep; + tgt = portRep; + } + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 4), src_0), tgt)); +} + +function $lambda$12(this$static, n_0){ + var other, sp, sp$iterator, sp$iterator0; + for (sp$iterator0 = $getPortSideView(n_0, ($clinit_PortSide() , SOUTH_2)).iterator_0(); sp$iterator0.hasNext_0();) { + sp = castTo(sp$iterator0.next_1(), 11); + other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[n_0.id_0].tail), this$static.nodeReps[other.id_0].head)); + } + for (sp$iterator = $getPortSideView(n_0, NORTH_3).iterator_0(); sp$iterator.hasNext_0();) { + sp = castTo(sp$iterator.next_1(), 11); + other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[other.id_0].tail), this$static.nodeReps[n_0.id_0].head)); + } +} + +function $lambda$22(this$static, n_0){ + return this$static.nodeState[n_0.id_0] = getNodeState(n_0); +} + +function $lambda$25(this$static, n_0){ + return this$static.nodeState[n_0.id_0] == 2; +} + +function $lambda$26(this$static, paths_1, junction_1){ + var e, e$iterator, path; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(junction_1).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!(!$isSelfLoop(e) && !(!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer))) { + continue; + } + path = $follow(this$static, e, junction_1, new NetworkSimplexPlacer$Path); + path.array.length > 1 && (paths_1.array[paths_1.array.length] = path , true); + } +} + +function $lambda$29(this$static, left_0, right_1){ + $markCrossingEdges(this$static, left_0, right_1); + return right_1; +} + +function $markCrossingEdges(this$static, left, right){ + var edge, edge$iterator, last, node, node$iterator, node$iterator0, openEdges, openEdgesIt, port, port$iterator; + openEdges = new ArrayList; + for (node$iterator0 = new ArrayList$1(left.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.target.owner.layer != right) { + continue; + } + openEdges.array[openEdges.array.length] = edge; + } + } + } + for (node$iterator = reverse_0(right.nodes).iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , WEST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.source.owner.layer != left) { + continue; + } + openEdgesIt = new AbstractList$ListIteratorImpl(openEdges, openEdges.array.length); + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); + while (last != edge && openEdgesIt.i > 0) { + this$static.crossing[last.id_0] = true; + this$static.crossing[edge.id_0] = true; + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); + } + openEdgesIt.i > 0 && $remove_8(openEdgesIt); + } + } + } +} + +function $postProcessTwoPaths(this$static){ + var path, q, s, tryAgain; + q = new LinkedList; + $addAll(q, this$static.twoPaths); + s = new Stack; + while (q.size_0 != 0) { + path = castTo(q.size_0 == 0?null:(checkCriticalElement(q.size_0 != 0) , $removeNode_0(q, q.header.next_0)), 508); + tryAgain = $improveTwoPath(this$static, path, true); + tryAgain && $add_3(s.arrayList, path); + } + while (s.arrayList.array.length != 0) { + path = castTo($pop(s), 508); + $improveTwoPath(this$static, path, false); + } +} + +function $preferStraightEdges(this$static){ + var cur, curRep, identifiedPaths, last, oldLeftWeight, oldRightWeight, path, path$iterator, pathIt, weight, paths; + this$static.nodeState = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.nodeCount, 15, 1); + this$static.twoPaths = new ArrayList; + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$21$Type), new NetworkSimplexPlacer$lambda$22$Type(this$static)); + this$static.crossing = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.edgeCount, 16, 1); + $reduce_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$29$Type(this$static)); + identifiedPaths = (paths = new ArrayList , $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$24$Type), new NetworkSimplexPlacer$lambda$25$Type(this$static)), new NetworkSimplexPlacer$lambda$26$Type(this$static, paths)) , paths); + for (path$iterator = new ArrayList$1(identifiedPaths); path$iterator.i < path$iterator.this$01.array.length;) { + path = castTo($next_7(path$iterator), 508); + if (path.array.length <= 1) { + continue; + } + if (path.array.length == 2) { + $orderTwoPath(path); + isFlexibleNode((checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).target.owner) || $add_3(this$static.twoPaths, path); + continue; + } + if ($containsLongEdgeDummy(path) || $containsFlexibleNode(path, new NetworkSimplexPlacer$lambda$23$Type)) { + continue; + } + pathIt = new ArrayList$1(path); + last = null; + while (pathIt.i < pathIt.this$01.array.length) { + cur = castTo($next_7(pathIt), 17); + curRep = this$static.edgeReps[cur.id_0]; + !last || pathIt.i >= pathIt.this$01.array.length?(weight = $getEdgeWeight(($clinit_LNode$NodeType() , NORMAL), LONG_EDGE)):(weight = $getEdgeWeight(($clinit_LNode$NodeType() , LONG_EDGE), LONG_EDGE)); + weight *= 2; + oldLeftWeight = curRep.left.weight; + curRep.left.weight = $wnd.Math.max(oldLeftWeight, oldLeftWeight + (weight - oldLeftWeight)); + oldRightWeight = curRep.right.weight; + curRep.right.weight = $wnd.Math.max(oldRightWeight, oldRightWeight + (weight - oldRightWeight)); + last = cur; + } + } +} + +function $prepare(this$static){ + var anchorMustBeInteger, e, e$iterator, edgeIdx, l, l$iterator, lNode, lNode$iterator, nodeIdx, offset, p, p$iterator, y_0, y0; + this$static.nGraph = new NGraph; + nodeIdx = 0; + edgeIdx = 0; + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(lNode$iterator), 10); + lNode.id_0 = nodeIdx++; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + e.id_0 = edgeIdx++; + } + anchorMustBeInteger = isFlexibleNode(lNode); + for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + if (anchorMustBeInteger) { + y0 = p.anchor.y_0; + if (y0 != $wnd.Math.floor(y0)) { + offset = y0 - toDouble_0(fromDouble_0($wnd.Math.round(y0))); + p.anchor.y_0 -= offset; + } + } + y_0 = p.pos.y_0 + p.anchor.y_0; + if (y_0 != $wnd.Math.floor(y_0)) { + offset = y_0 - toDouble_0(fromDouble_0($wnd.Math.round(y_0))); + p.pos.y_0 -= offset; + } + } + } + } + this$static.nodeCount = nodeIdx; + this$static.edgeCount = edgeIdx; + this$static.nodeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit, $intern_2, 401, nodeIdx, 0, 1); + this$static.edgeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit, $intern_2, 649, edgeIdx, 0, 1); + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); +} + +function $process_72(this$static, layeredGraph, progressMonitor){ + var edge, edge$iterator, iterLimit, pm, minLayer, maxLayer, usedLayers, globalSource, globalSink; + $begin(progressMonitor, 'Network simplex node placement', 1); + this$static.lGraph = layeredGraph; + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + $prepare(this$static); + $buildInitialAuxiliaryGraph(this$static); + $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$11$Type), new NetworkSimplexPlacer$lambda$12$Type(this$static)); + $forEach_3($filter($flatMap($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$6$Type), new NetworkSimplexPlacer$lambda$7$Type), new NetworkSimplexPlacer$lambda$8$Type), new NetworkSimplexPlacer$lambda$9$Type), new NetworkSimplexPlacer$lambda$10$Type(this$static)); + if ($booleanValue(castToBoolean($getProperty(this$static.lGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))))) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Straight Edges Pre-Processing', 1); + $preferStraightEdges(this$static); + $done_0(pm); + } + $makeConnected(this$static.nGraph); + iterLimit = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0 * this$static.nGraph.nodes.array.length; + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(progressMonitor, 1)); + if (this$static.flexibleWhereSpacePermitsEdges.map_0.size_1() != 0) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Flexible Where Space Processing', 1); + minLayer = castTo($get_17($min_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$13$Type), new NetworkSimplexPlacer$0methodref$compare$Type)), 19).value_0; + maxLayer = castTo($get_17($max_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$15$Type), new NetworkSimplexPlacer$1methodref$compare$Type)), 19).value_0; + usedLayers = maxLayer - minLayer; + globalSource = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + globalSink = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 20000), usedLayers), globalSource), globalSink)); + $forEach_3($filter($filter(stream_4(this$static.nodeReps), new NetworkSimplexPlacer$lambda$17$Type), new NetworkSimplexPlacer$lambda$18$Type), new NetworkSimplexPlacer$lambda$19$Type(minLayer, globalSource, usedLayers, globalSink)); + for (edge$iterator = this$static.flexibleWhereSpacePermitsEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + edge.weight = 1; + } + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(pm, 1)); + $done_0(pm); + } + if ($booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)))) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Straight Edges Post-Processing', 1); + $postProcessTwoPaths(this$static); + $done_0(pm); + } + $applyPositions(this$static); + this$static.lGraph = null; + this$static.nGraph = null; + this$static.nodeReps = null; + this$static.edgeReps = null; + $reset(this$static.portMap); + this$static.nodeState = null; + this$static.crossing = null; + this$static.twoPaths = null; + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); + $done_0(progressMonitor); +} + +function $transformEdge_0(this$static, lEdge){ + var dummy, edgeRep, left, right, srcDelta, srcOffset, srcPort, srcRep, tgtDelta, tgtOffset, tgtPort, tgtRep, weight, priority, edgeTypeWeight; + dummy = $create_2(new NNode$NNodeBuilder, this$static.nGraph); + srcRep = this$static.nodeReps[lEdge.source.owner.id_0]; + tgtRep = this$static.nodeReps[lEdge.target.owner.id_0]; + srcPort = lEdge.source; + tgtPort = lEdge.target; + srcOffset = srcPort.anchor.y_0; + tgtOffset = tgtPort.anchor.y_0; + srcRep.isFlexible || (srcOffset += srcPort.pos.y_0); + tgtRep.isFlexible || (tgtOffset += tgtPort.pos.y_0); + tgtDelta = round_int($wnd.Math.max(0, srcOffset - tgtOffset)); + srcDelta = round_int($wnd.Math.max(0, tgtOffset - srcOffset)); + weight = (priority = $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0) , edgeTypeWeight = $getEdgeWeight(lEdge.source.owner.type_0, lEdge.target.owner.type_0) , priority * edgeTypeWeight); + left = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), srcDelta), dummy), castTo($get_10(this$static.portMap, lEdge.source), 121))); + right = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), tgtDelta), dummy), castTo($get_10(this$static.portMap, lEdge.target), 121))); + edgeRep = new NetworkSimplexPlacer$EdgeRep(left, right); + this$static.edgeReps[lEdge.id_0] = edgeRep; +} + +function $transformLayer(this$static, layer){ + var lNode, lNode$iterator, lastRep, nodeRep, spacing, topLeft, bottomLeft, corners, minHeight, nf0, nf, sizeWeight, nodeSizeEdge, singleNode; + lastRep = null; + for (lNode$iterator = new ArrayList$1(layer.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(lNode$iterator), 10); + isFlexibleNode(lNode)?(nodeRep = (topLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , bottomLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , corners = new NetworkSimplexPlacer$NodeRep(lNode, true, topLeft, bottomLeft) , minHeight = lNode.size_0.y_0 , nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf) , sizeWeight = 10000 , nf0 == NODE_SIZE && (sizeWeight = 1) , nodeSizeEdge = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, sizeWeight), round_int($wnd.Math.ceil(minHeight))), topLeft), bottomLeft)) , nf0 == NODE_SIZE_WHERE_SPACE_PERMITS && $add_6(this$static.flexibleWhereSpacePermitsEdges, nodeSizeEdge) , $transformPorts(this$static, reverse_0($getPortSideView(lNode, ($clinit_PortSide() , WEST_2))), corners) , $transformPorts(this$static, $getPortSideView(lNode, EAST_2), corners) , corners)):(nodeRep = (singleNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lNode.ports, 16)), new NetworkSimplexPlacer$lambda$0$Type), new NetworkSimplexPlacer$lambda$1$Type(this$static, singleNode)) , new NetworkSimplexPlacer$NodeRep(lNode, false, singleNode, singleNode))); + this$static.nodeReps[lNode.id_0] = nodeRep; + if (lastRep) { + spacing = lastRep.origin_0.margin.bottom + $getVerticalSpacing_0(this$static.spacings, lastRep.origin_0, lNode) + lNode.margin.top_0; + lastRep.isFlexible || (spacing += lastRep.origin_0.size_0.y_0); + $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int($wnd.Math.ceil(spacing))), 0), lastRep.tail), nodeRep.head)); + } + lastRep = nodeRep; + } +} + +function $transformPorts(this$static, ports, corners){ + var lastNNode, lastPort, nNode, port, port$iterator, portSpacing, portSurrounding, spacing; + if (isEmpty_13(ports)) { + return; + } + portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(corners.origin_0, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); + portSurrounding = castTo(getIndividualOrDefault(corners.origin_0, SPACING_PORTS_SURROUNDING), 142); + !portSurrounding && (portSurrounding = new ElkMargin); + lastNNode = corners.head; + lastPort = null; + for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + spacing = 0; + if (!lastPort) { + spacing = portSurrounding.top_0; + } + else { + spacing = portSpacing; + spacing += lastPort.size_0.y_0; + } + nNode = $create_2($origin_0(new NNode$NNodeBuilder, port), this$static.nGraph); + $put_6(this$static.portMap, port, nNode); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(spacing))), lastNNode), nNode)); + lastPort = port; + lastNNode = nNode; + } + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(portSurrounding.bottom + lastPort.size_0.y_0))), lastNNode), corners.tail)); +} + +function NetworkSimplexPlacer(){ + $clinit_NetworkSimplexPlacer(); + this.portMap = new HashMap; + this.flexibleWhereSpacePermitsEdges = new HashSet; +} + +function getNodeState(node){ + var inco, ouco, p, p$iterator; + inco = 0; + ouco = 0; + for (p$iterator = new ArrayList$1(node.ports); p$iterator.i < p$iterator.this$01.array.length;) { + p = castTo($next_7(p$iterator), 11); + inco = toInt_0(add_20(inco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.incomingEdges, 16)), new NetworkSimplexPlacer$lambda$27$Type)))); + ouco = toInt_0(add_20(ouco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.outgoingEdges, 16)), new NetworkSimplexPlacer$lambda$28$Type)))); + if (inco > 1 || ouco > 1) { + return 2; + } + } + if (inco + ouco == 1) { + return 2; + } + return 0; +} + +function isFlexibleNode(lNode){ + var additionalPortSpacing, eastPorts, nf, nf0, pc, portSpacing, requiredEastHeight, requiredWestHeight, westPorts; + if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + return false; + } + if (lNode.ports.array.length <= 1) { + return false; + } + pc = castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + if (pc == ($clinit_PortConstraints() , FIXED_POS)) { + return false; + } + nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); + if (nf0 == NONE_8) { + return false; + } + if (!(nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { + portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, SPACING_PORT_PORT))); + additionalPortSpacing = castTo($getProperty(lNode, SPACING_PORTS_SURROUNDING), 142); + !additionalPortSpacing && (additionalPortSpacing = new ElkMargin_1(portSpacing, portSpacing, portSpacing, portSpacing)); + westPorts = $getPortSideView(lNode, ($clinit_PortSide() , WEST_2)); + requiredWestHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (westPorts.size_1() - 1) * portSpacing; + if (requiredWestHeight > lNode.size_0.y_0) { + return false; + } + eastPorts = $getPortSideView(lNode, EAST_2); + requiredEastHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (eastPorts.size_1() - 1) * portSpacing; + if (requiredEastHeight > lNode.size_0.y_0) { + return false; + } + } + return true; +} + +function isHandledEdge(edge){ + $clinit_NetworkSimplexPlacer(); + return !$isSelfLoop(edge) && !(!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer); +} + +function lambda$0_28(p_0){ + $clinit_NetworkSimplexPlacer(); + return ($clinit_PortSide() , SIDES_EAST_WEST).contains(p_0.side); +} + +function lambda$19(minLayer_0, globalSource_1, usedLayers_2, globalSink_3, nr_4){ + $clinit_NetworkSimplexPlacer(); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), nr_4.tail.layer - minLayer_0), globalSource_1), nr_4.tail)); + $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), usedLayers_2 - nr_4.head.layer), nr_4.head), globalSink_3)); +} + +function lambda$20(sizeDelta_0, p_1){ + $clinit_NetworkSimplexPlacer(); + return p_1.pos.y_0 += sizeDelta_0; +} + +function length_1(edge){ + return $wnd.Math.abs(edge.source.layer - edge.target.layer) - edge.delta; +} + +defineClass(1408, 1, $intern_113, NetworkSimplexPlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_14(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_1:null; +} +; +_.process = function process_69(layeredGraph, progressMonitor){ + $process_72(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.edgeCount = 0; +_.nodeCount = 0; +var HIERARCHY_PROCESSING_ADDITIONS_1; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer', 1408); +function NetworkSimplexPlacer$0methodref$compare$Type(){ +} + +defineClass(1427, 1, $intern_88, NetworkSimplexPlacer$0methodref$compare$Type); +_.compare_1 = function compare_73(arg0, arg1){ + return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); +} +; +_.equals_0 = function equals_158(other){ + return this === other; +} +; +_.reversed = function reversed_65(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$0methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/0methodref$compare$Type', 1427); +function NetworkSimplexPlacer$1methodref$compare$Type(){ +} + +defineClass(1429, 1, $intern_88, NetworkSimplexPlacer$1methodref$compare$Type); +_.compare_1 = function compare_74(arg0, arg1){ + return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); +} +; +_.equals_0 = function equals_159(other){ + return this === other; +} +; +_.reversed = function reversed_66(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$1methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/1methodref$compare$Type', 1429); +function NetworkSimplexPlacer$EdgeRep(left, right){ + this.left = left; + this.right = right; +} + +defineClass(649, 1, {649:1}, NetworkSimplexPlacer$EdgeRep); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/EdgeRep', 649); +function NetworkSimplexPlacer$NodeRep(origin_0, isFlexible, top_0, bottom){ + this.origin_0 = origin_0; + this.isFlexible = isFlexible; + this.head = top_0; + this.tail = bottom; +} + +defineClass(401, 1, {401:1}, NetworkSimplexPlacer$NodeRep); +_.isFlexible = false; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/NodeRep', 401); +function $containsFlexibleNode(this$static, p){ + var nf; + if (this$static.array.length == 0) { + return false; + } + nf = getNodeFlexibility((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner); + $clinit_NetworkSimplexPlacer(); + if (nf == ($clinit_NodeFlexibility() , NODE_SIZE_WHERE_SPACE_PERMITS) || nf == NODE_SIZE) { + return true; + } + return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$2$Type), new NetworkSimplexPlacer$Path$lambda$3$Type(p)); +} + +function $containsLongEdgeDummy(this$static){ + if (this$static.array.length == 0) { + return false; + } + if ((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + return true; + } + return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$0$Type), new NetworkSimplexPlacer$Path$lambda$1$Type); +} + +function $orderTwoPath(this$static){ + var first, second; + if (this$static.array.length != 2) { + throw toJs(new IllegalStateException_0('Order only allowed for two paths.')); + } + first = (checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)); + second = (checkCriticalElementIndex(1, this$static.array.length) , castTo(this$static.array[1], 17)); + if (first.target.owner != second.source.owner) { + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.array[this$static.array.length] = second; + this$static.array[this$static.array.length] = first; + } +} + +function NetworkSimplexPlacer$Path(){ + ArrayList.call(this); +} + +defineClass(508, 12, {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1, 508:1}, NetworkSimplexPlacer$Path); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path', 508); +function NetworkSimplexPlacer$Path$lambda$0$Type(){ +} + +defineClass(1409, 1, {}, NetworkSimplexPlacer$Path$lambda$0$Type); +_.apply_0 = function apply_140(arg0){ + return castTo(arg0, 17).target.owner.type_0; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$0$Type', 1409); +function NetworkSimplexPlacer$Path$lambda$1$Type(){ +} + +defineClass(1410, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$1$Type); +_.test_0 = function test_90(arg0){ + return castTo(arg0, 267) == ($clinit_LNode$NodeType() , LONG_EDGE); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$1$Type', 1410); +function NetworkSimplexPlacer$Path$lambda$2$Type(){ +} + +defineClass(1411, 1, {}, NetworkSimplexPlacer$Path$lambda$2$Type); +_.apply_0 = function apply_141(arg0){ + return castTo(arg0, 17).target.owner; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$2$Type', 1411); +function NetworkSimplexPlacer$Path$lambda$3$Type(p_0){ + this.p_0 = p_0; +} + +defineClass(1412, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$3$Type); +_.test_0 = function test_91(arg0){ + return $test_0(getNodeFlexibility(castTo(arg0, 10))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$3$Type', 1412); +function NetworkSimplexPlacer$lambda$0$Type(){ +} + +defineClass(1413, 1, $intern_39, NetworkSimplexPlacer$lambda$0$Type); +_.test_0 = function test_92(arg0){ + return lambda$0_28(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$0$Type', 1413); +function NetworkSimplexPlacer$lambda$1$Type($$outer_0, singleNode_1){ + this.$$outer_0 = $$outer_0; + this.singleNode_1 = singleNode_1; +} + +defineClass(1414, 1, $intern_19, NetworkSimplexPlacer$lambda$1$Type); +_.accept = function accept_121(arg0){ + $lambda$1_4(this.$$outer_0, this.singleNode_1, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$1$Type', 1414); +function NetworkSimplexPlacer$lambda$10$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1423, 1, $intern_19, NetworkSimplexPlacer$lambda$10$Type); +_.accept = function accept_122(arg0){ + $lambda$10(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$10$Type', 1423); +function NetworkSimplexPlacer$lambda$11$Type(){ +} + +defineClass(1424, 1, {}, NetworkSimplexPlacer$lambda$11$Type); +_.apply_0 = function apply_142(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$11$Type', 1424); +function NetworkSimplexPlacer$lambda$12$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1425, 1, $intern_19, NetworkSimplexPlacer$lambda$12$Type); +_.accept = function accept_123(arg0){ + $lambda$12(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$12$Type', 1425); +function NetworkSimplexPlacer$lambda$13$Type(){ +} + +defineClass(1426, 1, {}, NetworkSimplexPlacer$lambda$13$Type); +_.apply_0 = function apply_143(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$13$Type', 1426); +function NetworkSimplexPlacer$lambda$15$Type(){ +} + +defineClass(1428, 1, {}, NetworkSimplexPlacer$lambda$15$Type); +_.apply_0 = function apply_144(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$15$Type', 1428); +function NetworkSimplexPlacer$lambda$17$Type(){ +} + +defineClass(1430, 1, $intern_39, NetworkSimplexPlacer$lambda$17$Type); +_.test_0 = function test_93(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$17$Type', 1430); +function NetworkSimplexPlacer$lambda$18$Type(){ +} + +defineClass(1431, 1, $intern_39, NetworkSimplexPlacer$lambda$18$Type); +_.test_0 = function test_94(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.ports.array.length > 1; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$18$Type', 1431); +function NetworkSimplexPlacer$lambda$19$Type(minLayer_0, globalSource_1, usedLayers_2, globalSink_3){ + this.minLayer_0 = minLayer_0; + this.globalSource_1 = globalSource_1; + this.usedLayers_2 = usedLayers_2; + this.globalSink_3 = globalSink_3; +} + +defineClass(1432, 1, $intern_19, NetworkSimplexPlacer$lambda$19$Type); +_.accept = function accept_124(arg0){ + lambda$19(this.minLayer_0, this.globalSource_1, this.usedLayers_2, this.globalSink_3, castTo(arg0, 401)); +} +; +_.minLayer_0 = 0; +_.usedLayers_2 = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$19$Type', 1432); +function NetworkSimplexPlacer$lambda$2$Type(){ +} + +defineClass(1415, 1, {}, NetworkSimplexPlacer$lambda$2$Type); +_.apply_0 = function apply_145(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$2$Type', 1415); +function NetworkSimplexPlacer$lambda$20$Type(sizeDelta_0){ + this.sizeDelta_0 = sizeDelta_0; +} + +defineClass(1433, 1, $intern_19, NetworkSimplexPlacer$lambda$20$Type); +_.accept = function accept_125(arg0){ + lambda$20(this.sizeDelta_0, castTo(arg0, 11)); +} +; +_.sizeDelta_0 = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$20$Type', 1433); +function NetworkSimplexPlacer$lambda$21$Type(){ +} + +defineClass(1434, 1, {}, NetworkSimplexPlacer$lambda$21$Type); +_.apply_0 = function apply_146(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$21$Type', 1434); +function NetworkSimplexPlacer$lambda$22$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1435, 1, $intern_19, NetworkSimplexPlacer$lambda$22$Type); +_.accept = function accept_126(arg0){ + $lambda$22(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$22$Type', 1435); +function $test_0(arg0){ + return $clinit_NetworkSimplexPlacer() , $isFlexibleSizeWhereSpacePermits(castTo(arg0, 197)); +} + +function NetworkSimplexPlacer$lambda$23$Type(){ +} + +defineClass(1436, 1, $intern_39, NetworkSimplexPlacer$lambda$23$Type); +_.test_0 = function test_95(arg0){ + return $test_0(arg0); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$23$Type', 1436); +function NetworkSimplexPlacer$lambda$24$Type(){ +} + +defineClass(1437, 1, {}, NetworkSimplexPlacer$lambda$24$Type); +_.apply_0 = function apply_147(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$24$Type', 1437); +function NetworkSimplexPlacer$lambda$25$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1438, 1, $intern_39, NetworkSimplexPlacer$lambda$25$Type); +_.test_0 = function test_96(arg0){ + return $lambda$25(this.$$outer_0, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$25$Type', 1438); +function NetworkSimplexPlacer$lambda$26$Type($$outer_0, paths_1){ + this.$$outer_0 = $$outer_0; + this.paths_1 = paths_1; +} + +defineClass(1439, 1, $intern_19, NetworkSimplexPlacer$lambda$26$Type); +_.accept = function accept_127(arg0){ + $lambda$26(this.$$outer_0, this.paths_1, castTo(arg0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$26$Type', 1439); +function NetworkSimplexPlacer$lambda$27$Type(){ +} + +defineClass(1440, 1, $intern_39, NetworkSimplexPlacer$lambda$27$Type); +_.test_0 = function test_97(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$27$Type', 1440); +function NetworkSimplexPlacer$lambda$28$Type(){ +} + +defineClass(1441, 1, $intern_39, NetworkSimplexPlacer$lambda$28$Type); +_.test_0 = function test_98(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$28$Type', 1441); +function NetworkSimplexPlacer$lambda$29$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1442, 1, {}, NetworkSimplexPlacer$lambda$29$Type); +_.apply_3 = function apply_148(arg0, arg1){ + return $lambda$29(this.$$outer_0, castTo(arg0, 29), castTo(arg1, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$29$Type', 1442); +function NetworkSimplexPlacer$lambda$3$Type(){ +} + +defineClass(1416, 1, {}, NetworkSimplexPlacer$lambda$3$Type); +_.apply_0 = function apply_149(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$3$Type', 1416); +function NetworkSimplexPlacer$lambda$4$Type(){ +} + +defineClass(1417, 1, $intern_39, NetworkSimplexPlacer$lambda$4$Type); +_.test_0 = function test_99(arg0){ + return $clinit_NetworkSimplexPlacer() , isHandledEdge(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$4$Type', 1417); +function NetworkSimplexPlacer$lambda$5$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1418, 1, $intern_19, NetworkSimplexPlacer$lambda$5$Type); +_.accept = function accept_128(arg0){ + $transformEdge_0(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$5$Type', 1418); +function NetworkSimplexPlacer$lambda$6$Type(){ +} + +defineClass(1419, 1, {}, NetworkSimplexPlacer$lambda$6$Type); +_.apply_0 = function apply_150(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$6$Type', 1419); +function NetworkSimplexPlacer$lambda$7$Type(){ +} + +defineClass(1420, 1, $intern_39, NetworkSimplexPlacer$lambda$7$Type); +_.test_0 = function test_100(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$7$Type', 1420); +function NetworkSimplexPlacer$lambda$8$Type(){ +} + +defineClass(1421, 1, {}, NetworkSimplexPlacer$lambda$8$Type); +_.apply_0 = function apply_151(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$8$Type', 1421); +function NetworkSimplexPlacer$lambda$9$Type(){ +} + +defineClass(1422, 1, $intern_39, NetworkSimplexPlacer$lambda$9$Type); +_.test_0 = function test_101(arg0){ + return $clinit_NetworkSimplexPlacer() , $isInLayerEdge(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$9$Type', 1422); +function $clinit_SimpleNodePlacer(){ + $clinit_SimpleNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_2 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $process_73(layeredGraph, monitor){ + var lastNode, layer, layer$iterator, layer$iterator0, layerSize, maxHeight, node, node$iterator, pos, spacings; + $begin(monitor, 'Simple node placement', 1); + spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + maxHeight = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + layerSize = layer.size_0; + layerSize.y_0 = 0; + lastNode = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + !!lastNode && (layerSize.y_0 += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); + layerSize.y_0 += node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; + lastNode = node; + } + maxHeight = $wnd.Math.max(maxHeight, layerSize.y_0); + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerSize = layer.size_0; + pos = (maxHeight - layerSize.y_0) / 2; + lastNode = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + !!lastNode && (pos += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); + pos += node.margin.top_0; + node.pos.y_0 = pos; + pos += node.size_0.y_0 + node.margin.bottom; + lastNode = node; + } + } + $done_0(monitor); +} + +function SimpleNodePlacer(){ + $clinit_SimpleNodePlacer(); +} + +defineClass(1404, 1, $intern_113, SimpleNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_15(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_2:null; +} +; +_.process = function process_70(layeredGraph, monitor){ + $process_73(castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_2; +var Lorg_eclipse_elk_alg_layered_p4nodes_SimpleNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'SimpleNodePlacer', 1404); +function $calculateDelta(this$static, src_0, tgt){ + var srcPos, tgtPos; + srcPos = $doubleValue(this$static.y_0[src_0.owner.id_0]) + $doubleValue(this$static.innerShift[src_0.owner.id_0]) + src_0.pos.y_0 + src_0.anchor.y_0; + tgtPos = $doubleValue(this$static.y_0[tgt.owner.id_0]) + $doubleValue(this$static.innerShift[tgt.owner.id_0]) + tgt.pos.y_0 + tgt.anchor.y_0; + return tgtPos - srcPos; +} + +function $checkSpaceAbove(this$static, blockRoot, delta, ni){ + var availableSpace, current, maxYNeighbor, minYCurrent, neighbor, rootNode, rootNode0, rootNode1; + availableSpace = delta; + rootNode0 = blockRoot; + current = rootNode0; + do { + current = this$static.align_0[current.id_0]; + minYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) - current.margin.top_0); + neighbor = $getUpperNeighbor(current, ni); + if (neighbor) { + maxYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom); + availableSpace = $wnd.Math.min(availableSpace, minYCurrent - (maxYNeighbor + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); + } + } + while (rootNode0 != current); + return availableSpace; +} + +function $checkSpaceBelow(this$static, blockRoot, delta, ni){ + var availableSpace, current, maxYCurrent, minYNeighbor, neighbor, rootNode, rootNode0, rootNode1; + availableSpace = delta; + rootNode0 = blockRoot; + current = rootNode0; + do { + current = this$static.align_0[current.id_0]; + maxYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) + current.size_0.y_0 + current.margin.bottom); + neighbor = $getLowerNeighbor(current, ni); + if (neighbor) { + minYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) - neighbor.margin.top_0); + availableSpace = $wnd.Math.min(availableSpace, minYNeighbor - (maxYCurrent + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); + } + } + while (rootNode0 != current); + return availableSpace; +} + +function $getLowerNeighbor(n, ni){ + var l, layerIndex; + l = n.layer; + layerIndex = ni.nodeIndex[n.id_0]; + if (layerIndex < l.nodes.array.length - 1) { + return castTo($get_11(l.nodes, layerIndex + 1), 10); + } + return null; +} + +function $getUpperNeighbor(n, ni){ + var l, layerIndex; + l = n.layer; + layerIndex = ni.nodeIndex[n.id_0]; + if (layerIndex > 0) { + return castTo($get_11(l.nodes, layerIndex - 1), 10); + } + return null; +} + +function $layoutSize(this$static){ + var layer, layer$iterator, max_0, min_0, n, n$iterator, yMax, yMin; + min_0 = $intern_59; + max_0 = $intern_60; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + yMin = $doubleValue(this$static.y_0[n.id_0]); + yMax = yMin + $doubleValue(this$static.blockSize[this$static.root[n.id_0].id_0]); + min_0 = $wnd.Math.min(min_0, yMin); + max_0 = $wnd.Math.max(max_0, yMax); + } + } + return max_0 - min_0; +} + +function $shiftBlock(this$static, rootNode, delta){ + var current, newPos; + current = rootNode; + do { + newPos = $doubleValue(this$static.y_0[current.id_0]) + delta; + this$static.y_0[current.id_0] = newPos; + current = this$static.align_0[current.id_0]; + } + while (current != rootNode); +} + +function BKAlignedLayout(layeredGraph, nodeCount, vdir, hdir){ + this.layeredGraph = layeredGraph; + this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + this.root = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.blockSize = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.align_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.innerShift = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.sink = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); + this.shift_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.y_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.su = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); + fill_2(this.su, ($clinit_Boolean() , false)); + this.od = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); + fill_2(this.od, true); + this.vdir = vdir; + this.hdir = hdir; +} + +defineClass(180, 1, {180:1}, BKAlignedLayout); +_.toString_0 = function toString_103(){ + var result; + result = ''; + this.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?(result += 'RIGHT'):this.hdir == LEFT_3 && (result += 'LEFT'); + this.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(result += 'DOWN'):this.vdir == UP_0?(result += 'UP'):(result += 'BALANCED'); + return result; +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout', 180); +function $clinit_BKAlignedLayout$HDirection(){ + $clinit_BKAlignedLayout$HDirection = emptyMethod; + RIGHT_3 = new BKAlignedLayout$HDirection('RIGHT', 0); + LEFT_3 = new BKAlignedLayout$HDirection('LEFT', 1); +} + +function BKAlignedLayout$HDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_69(name_0){ + $clinit_BKAlignedLayout$HDirection(); + return valueOf(($clinit_BKAlignedLayout$HDirection$Map() , $MAP_57), name_0); +} + +function values_75(){ + $clinit_BKAlignedLayout$HDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]); +} + +defineClass(516, 22, {3:1, 35:1, 22:1, 516:1}, BKAlignedLayout$HDirection); +var LEFT_3, RIGHT_3; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/HDirection', 516, Ljava_lang_Enum_2_classLit, values_75, valueOf_69); +function $clinit_BKAlignedLayout$HDirection$Map(){ + $clinit_BKAlignedLayout$HDirection$Map = emptyMethod; + $MAP_57 = createValueOfMap(($clinit_BKAlignedLayout$HDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]))); +} + +var $MAP_57; +function $clinit_BKAlignedLayout$VDirection(){ + $clinit_BKAlignedLayout$VDirection = emptyMethod; + DOWN_0 = new BKAlignedLayout$VDirection('DOWN', 0); + UP_0 = new BKAlignedLayout$VDirection('UP', 1); +} + +function BKAlignedLayout$VDirection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_70(name_0){ + $clinit_BKAlignedLayout$VDirection(); + return valueOf(($clinit_BKAlignedLayout$VDirection$Map() , $MAP_58), name_0); +} + +function values_76(){ + $clinit_BKAlignedLayout$VDirection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]); +} + +defineClass(515, 22, {3:1, 35:1, 22:1, 515:1}, BKAlignedLayout$VDirection); +var DOWN_0, UP_0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/VDirection', 515, Ljava_lang_Enum_2_classLit, values_76, valueOf_70); +function $clinit_BKAlignedLayout$VDirection$Map(){ + $clinit_BKAlignedLayout$VDirection$Map = emptyMethod; + $MAP_58 = createValueOfMap(($clinit_BKAlignedLayout$VDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]))); +} + +var $MAP_58; +function $insideBlockShift(bal){ + var blocks, current, edge, entry, next, nextInnerShift, outerIter, portPosDiff, root, root$iterator, spaceAbove, spaceBelow; + blocks = getBlocks(bal); + for (root$iterator = (outerIter = (new AbstractMap$1(blocks)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); root$iterator.val$outerIter2.hasNext_0();) { + root = (entry = castTo(root$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getKey(), 10)); + spaceAbove = 0; + spaceBelow = 0; + spaceAbove = root.margin.top_0; + spaceBelow = root.size_0.y_0 + root.margin.bottom; + bal.innerShift[root.id_0] = 0; + current = root; + while ((next = bal.align_0[current.id_0]) != root) { + edge = getEdge(current, next); + portPosDiff = 0; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?(portPosDiff = edge.target.pos.y_0 + edge.target.anchor.y_0 - edge.source.pos.y_0 - edge.source.anchor.y_0):(portPosDiff = edge.source.pos.y_0 + edge.source.anchor.y_0 - edge.target.pos.y_0 - edge.target.anchor.y_0); + nextInnerShift = $doubleValue(bal.innerShift[current.id_0]) + portPosDiff; + bal.innerShift[next.id_0] = nextInnerShift; + spaceAbove = $wnd.Math.max(spaceAbove, next.margin.top_0 - nextInnerShift); + spaceBelow = $wnd.Math.max(spaceBelow, nextInnerShift + next.size_0.y_0 + next.margin.bottom); + current = next; + } + current = root; + do { + bal.innerShift[current.id_0] = $doubleValue(bal.innerShift[current.id_0]) + spaceAbove; + current = bal.align_0[current.id_0]; + } + while (current != root); + bal.blockSize[root.id_0] = spaceAbove + spaceBelow; + } +} + +function $verticalAlignment(this$static, bal, markedEdges){ + var d, high, layer, layer$iterator, layer$iterator0, layers, low, m, neighbors, nodes, r, u_m, u_m_pair, um, um_pair, v, v$iterator, v_i_k, v_i_k$iterator; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 10); + bal.root[v.id_0] = v; + bal.align_0[v.id_0] = v; + bal.innerShift[v.id_0] = 0; + } + } + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + r = -1; + nodes = layer.nodes; + if (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)) { + r = $intern_0; + nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes); + } + for (v_i_k$iterator = nodes.iterator_0(); v_i_k$iterator.hasNext_0();) { + v_i_k = castTo(v_i_k$iterator.next_1(), 10); + neighbors = null; + bal.hdir == LEFT_3?(neighbors = castTo($get_11(this$static.ni.rightNeighbors, v_i_k.id_0), 15)):(neighbors = castTo($get_11(this$static.ni.leftNeighbors, v_i_k.id_0), 15)); + if (neighbors.size_1() > 0) { + d = neighbors.size_1(); + low = round_int($wnd.Math.floor((d + 1) / 2)) - 1; + high = round_int($wnd.Math.ceil((d + 1) / 2)) - 1; + if (bal.vdir == UP_0) { + for (m = high; m >= low; m--) { + if (bal.align_0[v_i_k.id_0] == v_i_k) { + u_m_pair = castTo(neighbors.get_0(m), 46); + u_m = castTo(u_m_pair.first, 10); + if (!$contains_6(markedEdges, u_m_pair.second) && r > this$static.ni.nodeIndex[u_m.id_0]) { + bal.align_0[u_m.id_0] = v_i_k; + bal.root[v_i_k.id_0] = bal.root[u_m.id_0]; + bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; + bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); + r = this$static.ni.nodeIndex[u_m.id_0]; + } + } + } + } + else { + for (m = low; m <= high; m++) { + if (bal.align_0[v_i_k.id_0] == v_i_k) { + um_pair = castTo(neighbors.get_0(m), 46); + um = castTo(um_pair.first, 10); + if (!$contains_6(markedEdges, um_pair.second) && r < this$static.ni.nodeIndex[um.id_0]) { + bal.align_0[um.id_0] = v_i_k; + bal.root[v_i_k.id_0] = bal.root[um.id_0]; + bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; + bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); + r = this$static.ni.nodeIndex[um.id_0]; + } + } + } + } + } + } + } +} + +function BKAligner(layeredGraph, ni){ + this.layeredGraph = layeredGraph; + this.ni = ni; +} + +defineClass(1634, 1, {}, BKAligner); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAligner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAligner', 1634); +function $getOrCreateClassNode(this$static, sinkNode){ + var node; + node = castTo($get_10(this$static.sinkNodes, sinkNode), 458); + if (!node) { + node = new BKCompactor$ClassNode; + node.node = sinkNode; + $put_6(this$static.sinkNodes, node.node, node); + } + return node; +} + +function $horizontalCompaction(this$static, bal){ + var layer, layer$iterator, layer$iterator0, layer$iterator1, layers, node, node$iterator, nodes, sinkShift, v, v$iterator; + for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + bal.sink[node.id_0] = node; + bal.shift_0[node.id_0] = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_59; + } + } + $reset(this$static.sinkNodes); + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); + $init_0(this$static.threshStrategy, bal, this$static.ni); + fill_2(bal.y_0, null); + for (layer$iterator1 = layers.iterator_0(); layer$iterator1.hasNext_0();) { + layer = castTo(layer$iterator1.next_1(), 29); + nodes = layer.nodes; + bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && (nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes)); + for (v$iterator = nodes.iterator_0(); v$iterator.hasNext_0();) { + v = castTo(v$iterator.next_1(), 10); + bal.root[v.id_0] == v && $placeBlock(this$static, v, bal); + } + } + $placeClasses(this$static, bal); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 10); + bal.y_0[v.id_0] = bal.y_0[bal.root[v.id_0].id_0]; + if (v == bal.root[v.id_0]) { + sinkShift = $doubleValue(bal.shift_0[bal.sink[v.id_0].id_0]); + (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && sinkShift > $intern_60 || bal.vdir == DOWN_0 && sinkShift < $intern_59) && (bal.y_0[v.id_0] = $doubleValue(bal.y_0[v.id_0]) + sinkShift); + } + } + } + this$static.threshStrategy.postProcess(); +} + +function $placeBlock(this$static, root, bal){ + var currentBlockPosition, currentIndexInLayer, currentLayerSize, currentNode, isInitialAssignment, neighbor, neighborRoot, neighborSink, newPosition, requiredSpace, sinkNode, spacing, thresh; + if (bal.y_0[root.id_0] != null) { + return; + } + isInitialAssignment = true; + bal.y_0[root.id_0] = 0; + currentNode = root; + thresh = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?$intern_60:$intern_59; + do { + currentIndexInLayer = this$static.ni.nodeIndex[currentNode.id_0]; + currentLayerSize = currentNode.layer.nodes.array.length; + if (bal.vdir == DOWN_0 && currentIndexInLayer > 0 || bal.vdir == UP_0 && currentIndexInLayer < currentLayerSize - 1) { + neighbor = null; + neighborRoot = null; + bal.vdir == UP_0?(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer + 1), 10)):(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer - 1), 10)); + neighborRoot = bal.root[neighbor.id_0]; + $placeBlock(this$static, neighborRoot, bal); + thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); + bal.sink[root.id_0] == root && (bal.sink[root.id_0] = bal.sink[neighborRoot.id_0]); + if (bal.sink[root.id_0] == bal.sink[neighborRoot.id_0]) { + spacing = $getVerticalSpacing_0(this$static.spacings, currentNode, neighbor); + if (bal.vdir == UP_0) { + currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); + newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0 - spacing - currentNode.margin.bottom - currentNode.size_0.y_0 - $doubleValue(bal.innerShift[currentNode.id_0]); + if (isInitialAssignment) { + isInitialAssignment = false; + bal.y_0[root.id_0] = $wnd.Math.min(newPosition, thresh); + } + else { + bal.y_0[root.id_0] = $wnd.Math.min(currentBlockPosition, $wnd.Math.min(newPosition, thresh)); + } + } + else { + currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); + newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing + currentNode.margin.top_0 - $doubleValue(bal.innerShift[currentNode.id_0]); + if (isInitialAssignment) { + isInitialAssignment = false; + bal.y_0[root.id_0] = $wnd.Math.max(newPosition, thresh); + } + else { + bal.y_0[root.id_0] = $wnd.Math.max(currentBlockPosition, $wnd.Math.max(newPosition, thresh)); + } + } + } + else { + spacing = $doubleValue(castToDouble($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); + sinkNode = $getOrCreateClassNode(this$static, bal.sink[root.id_0]); + neighborSink = $getOrCreateClassNode(this$static, bal.sink[neighborRoot.id_0]); + if (bal.vdir == UP_0) { + requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) + currentNode.size_0.y_0 + currentNode.margin.bottom + spacing - ($doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0); + $addEdge(sinkNode, neighborSink, requiredSpace); + } + else { + requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) - currentNode.margin.top_0 - $doubleValue(bal.y_0[neighborRoot.id_0]) - $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.size_0.y_0 - neighbor.margin.bottom - spacing; + $addEdge(sinkNode, neighborSink, requiredSpace); + } + } + } + else { + thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); + } + currentNode = bal.align_0[currentNode.id_0]; + } + while (currentNode != root); + $finishBlock(this$static.threshStrategy, root); +} + +function $placeClasses(this$static, bal){ + var e, e$iterator, entry, n, n$iterator, n$iterator0, outerIter, outerIter0, sinks; + sinks = new LinkedList; + for (n$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); n$iterator0.val$outerIter2.hasNext_0();) { + n = (entry = castTo(n$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); + n.indegree == 0 && ($addNode_0(sinks, n, sinks.tail.prev, sinks.tail) , true); + } + while (sinks.size_0 != 0) { + n = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 458); + n.classShift == null && (n.classShift = 0); + for (e$iterator = new ArrayList$1(n.outgoing); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 654); + e.target.classShift == null?(e.target.classShift = $doubleValue(n.classShift) + e.separation):bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(e.target.classShift = $wnd.Math.min($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)):(e.target.classShift = $wnd.Math.max($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)); + --e.target.indegree; + e.target.indegree == 0 && $add_7(sinks, e.target); + } + } + for (n$iterator = (outerIter = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); n$iterator.val$outerIter2.hasNext_0();) { + n = (entry = castTo(n$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); + bal.shift_0[n.node.id_0] = n.classShift; + } +} + +function BKCompactor(layeredGraph, ni){ + this.sinkNodes = new HashMap; + this.layeredGraph = layeredGraph; + this.ni = ni; + this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0))) === maskUndefined(($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS))?(this.threshStrategy = new ThresholdStrategy$SimpleThresholdStrategy):(this.threshStrategy = new ThresholdStrategy$NullThresholdStrategy); +} + +defineClass(1637, 1, {}, BKCompactor); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor', 1637); +function BKCompactor$ClassEdge(){ +} + +defineClass(654, 1, {654:1}, BKCompactor$ClassEdge); +_.separation = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassEdge', 654); +function $addEdge(this$static, target, separation){ + var se; + se = new BKCompactor$ClassEdge; + se.target = target; + se.separation = separation; + ++target.indegree; + $add_3(this$static.outgoing, se); +} + +function BKCompactor$ClassNode(){ + this.outgoing = new ArrayList; +} + +defineClass(458, 1, {458:1}, BKCompactor$ClassNode); +_.classShift = null; +_.indegree = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassNode', 458); +function $clinit_BKNodePlacer(){ + $clinit_BKNodePlacer = emptyMethod; + HIERARCHY_PROCESSING_ADDITIONS_3 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); +} + +function $checkOrderConstraint(layeredGraph, bal, monitor){ + var bottom, feasible, layer, layer$iterator, node, node$iterator, pos, previous, top_0; + feasible = true; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + pos = $intern_60; + previous = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + top_0 = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) - node.margin.top_0; + bottom = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; + if (top_0 > pos && bottom > pos) { + previous = node; + pos = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; + } + else { + feasible = false; + monitor.recordLogs && $log_2(monitor, 'bk node placement breaks on ' + node + ' which should have been after ' + previous); + break; + } + } + if (!feasible) { + break; + } + } + monitor.recordLogs && $log_2(monitor, bal + ' is feasible: ' + feasible); + return feasible; +} + +function $createBalancedLayout(this$static, layouts, nodeCount){ + var bal, balanced, calculatedYs, i, i0, i1, i2, l, l$iterator, layer, layer$iterator, max_0, min_0, minWidthLayout, n, n$iterator, noOfLayouts, node, node$iterator, nodePosY, shift_0, width_0; + noOfLayouts = layouts.array.length; + balanced = new BKAlignedLayout(this$static.lGraph, nodeCount, null, null); + width_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + minWidthLayout = 0; + for (i0 = 0; i0 < noOfLayouts; i0++) { + min_0[i0] = $intern_0; + max_0[i0] = $intern_42; + } + for (i1 = 0; i1 < noOfLayouts; i1++) { + bal = (checkCriticalElementIndex(i1, layouts.array.length) , castTo(layouts.array[i1], 180)); + width_0[i1] = $layoutSize(bal); + width_0[minWidthLayout] > width_0[i1] && (minWidthLayout = i1); + for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + nodePosY = $doubleValue(bal.y_0[n.id_0]) + $doubleValue(bal.innerShift[n.id_0]); + min_0[i1] = $wnd.Math.min(min_0[i1], nodePosY); + max_0[i1] = $wnd.Math.max(max_0[i1], nodePosY + n.size_0.y_0); + } + } + } + shift_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + for (i2 = 0; i2 < noOfLayouts; i2++) { + (checkCriticalElementIndex(i2, layouts.array.length) , castTo(layouts.array[i2], 180)).vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(shift_0[i2] = min_0[minWidthLayout] - min_0[i2]):(shift_0[i2] = max_0[minWidthLayout] - max_0[i2]); + } + calculatedYs = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + for (layer$iterator = new ArrayList$1(this$static.lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (i = 0; i < noOfLayouts; i++) { + calculatedYs[i] = $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).y_0[node.id_0]) + $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).innerShift[node.id_0]) + shift_0[i]; + } + calculatedYs.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); + balanced.y_0[node.id_0] = (calculatedYs[1] + calculatedYs[2]) / 2; + balanced.innerShift[node.id_0] = 0; + } + } + return balanced; +} + +function $incidentToInnerSegment(this$static, node, layer1, layer2){ + var edge, edge$iterator, sourceNodeType; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + sourceNodeType = edge.source.owner.type_0; + if (sourceNodeType == LONG_EDGE && this$static.ni.layerIndex[edge.source.owner.layer.id_0] == layer2 && this$static.ni.layerIndex[node.layer.id_0] == layer1) { + return true; + } + } + } + return false; +} + +function $markConflicts(this$static, layeredGraph){ + var currentLayer, i, k, k_0, k_1, l, l_1, layer, layer$iterator, layerIndex, layerIterator, layerSize, nodeIterator, numberOfLayers, upperNeighbor, upperNeighbor$iterator, v_l, v_l_i; + numberOfLayers = layeredGraph.layers.array.length; + if (numberOfLayers < 3) { + return; + } + layerSize = initUnidimensionalArray(I_classLit, $intern_48, 25, numberOfLayers, 15, 1); + layerIndex = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + layerSize[layerIndex++] = layer.nodes.array.length; + } + layerIterator = new AbstractList$ListIteratorImpl(layeredGraph.layers, 2); + for (i = 1; i < numberOfLayers - 1; i++) { + currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); + nodeIterator = new ArrayList$1(currentLayer.nodes); + k_0 = 0; + l = 0; + for (l_1 = 0; l_1 < layerSize[i + 1]; l_1++) { + v_l_i = castTo($next_7(nodeIterator), 10); + if (l_1 == layerSize[i + 1] - 1 || $incidentToInnerSegment(this$static, v_l_i, i + 1, i)) { + k_1 = layerSize[i] - 1; + $incidentToInnerSegment(this$static, v_l_i, i + 1, i) && (k_1 = this$static.ni.nodeIndex[castTo(castTo(castTo($get_11(this$static.ni.leftNeighbors, v_l_i.id_0), 15).get_0(0), 46).first, 10).id_0]); + while (l <= l_1) { + v_l = castTo($get_11(currentLayer.nodes, l), 10); + if (!$incidentToInnerSegment(this$static, v_l, i + 1, i)) { + for (upperNeighbor$iterator = castTo($get_11(this$static.ni.leftNeighbors, v_l.id_0), 15).iterator_0(); upperNeighbor$iterator.hasNext_0();) { + upperNeighbor = castTo(upperNeighbor$iterator.next_1(), 46); + k = this$static.ni.nodeIndex[castTo(upperNeighbor.first, 10).id_0]; + (k < k_0 || k > k_1) && $add_6(this$static.markedEdges, castTo(upperNeighbor.second, 17)); + } + } + ++l; + } + k_0 = k_1; + } + } + } +} + +function $process_74(this$static, layeredGraph, monitor){ + var align_0, aligner, bal, bal$iterator, bal$iterator0, bal$iterator1, bal$iterator2, balanced, chosenLayout, compacter, favorStraightEdges, layer, layer$iterator, layouts, leftdown, leftup, node, node$iterator, rightdown, rightup; + $begin(monitor, 'Brandes & Koepf node placement', 1); + this$static.lGraph = layeredGraph; + this$static.ni = buildFor(layeredGraph); + align_0 = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)), 274); + favorStraightEdges = $booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))); + this$static.produceBalancedLayout = align_0 == ($clinit_FixedAlignment() , NONE_4) && !favorStraightEdges || align_0 == BALANCED; + $markConflicts(this$static, layeredGraph); + rightdown = null; + rightup = null; + leftdown = null; + leftup = null; + layouts = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); + switch (castTo($getProperty(layeredGraph, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0), 274).ordinal) { + case 3: + leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + layouts.array[layouts.array.length] = leftdown; + break; + case 1: + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + layouts.array[layouts.array.length] = leftup; + break; + case 4: + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + layouts.array[layouts.array.length] = rightdown; + break; + case 2: + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + layouts.array[layouts.array.length] = rightup; + break; + default:leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, LEFT_3); + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, DOWN_0, RIGHT_3); + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, RIGHT_3); + layouts.array[layouts.array.length] = rightdown; + layouts.array[layouts.array.length] = rightup; + layouts.array[layouts.array.length] = leftdown; + layouts.array[layouts.array.length] = leftup; + } + aligner = new BKAligner(layeredGraph, this$static.ni); + for (bal$iterator0 = new ArrayList$1(layouts); bal$iterator0.i < bal$iterator0.this$01.array.length;) { + bal = castTo($next_7(bal$iterator0), 180); + $verticalAlignment(aligner, bal, this$static.markedEdges); + $insideBlockShift(bal); + } + compacter = new BKCompactor(layeredGraph, this$static.ni); + for (bal$iterator1 = new ArrayList$1(layouts); bal$iterator1.i < bal$iterator1.this$01.array.length;) { + bal = castTo($next_7(bal$iterator1), 180); + $horizontalCompaction(compacter, bal); + } + if (monitor.recordLogs) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_7(bal$iterator2), 180); + $log_2(monitor, bal + ' size is ' + $layoutSize(bal)); + } + } + chosenLayout = null; + if (this$static.produceBalancedLayout) { + balanced = $createBalancedLayout(this$static, layouts, this$static.ni.nodeCount); + $checkOrderConstraint(layeredGraph, balanced, monitor) && (chosenLayout = balanced); + } + if (!chosenLayout) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_7(bal$iterator2), 180); + $checkOrderConstraint(layeredGraph, bal, monitor) && (!chosenLayout || $layoutSize(chosenLayout) > $layoutSize(bal)) && (chosenLayout = bal); + } + } + !chosenLayout && (chosenLayout = (checkCriticalElementIndex(0, layouts.array.length) , castTo(layouts.array[0], 180))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 = $doubleValue(chosenLayout.y_0[node.id_0]) + $doubleValue(chosenLayout.innerShift[node.id_0]); + } + } + if (monitor.recordLogs) { + $log_2(monitor, 'Chosen node placement: ' + chosenLayout); + $log_2(monitor, 'Blocks: ' + getBlocks(chosenLayout)); + $log_2(monitor, 'Classes: ' + getClasses(chosenLayout, monitor)); + $log_2(monitor, 'Marked edges: ' + this$static.markedEdges); + } + for (bal$iterator = new ArrayList$1(layouts); bal$iterator.i < bal$iterator.this$01.array.length;) { + bal = castTo($next_7(bal$iterator), 180); + bal.root = null; + bal.blockSize = null; + bal.align_0 = null; + bal.innerShift = null; + bal.sink = null; + bal.shift_0 = null; + bal.y_0 = null; + } + $cleanup(this$static.ni); + this$static.markedEdges.map_0.clear_0(); + $done_0(monitor); +} + +function BKNodePlacer(){ + $clinit_BKNodePlacer(); + this.markedEdges = new HashSet; +} + +function getBlocks(bal){ + $clinit_BKNodePlacer(); + var blockContents, blocks, layer, layer$iterator, node, node$iterator, root; + blocks = new LinkedHashMap; + for (layer$iterator = new ArrayList$1(bal.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + root = bal.root[node.id_0]; + blockContents = castTo($get_16(blocks, root), 15); + if (!blockContents) { + blockContents = new ArrayList; + $put_11(blocks, root, blockContents); + } + blockContents.add_2(node); + } + } + return blocks; +} + +function getClasses(bal, monitor){ + var classContents, classes, root, root$iterator, roots, sink; + classes = new LinkedHashMap; + roots = newLinkedHashSet(new Arrays$ArrayList(bal.root)); + for (root$iterator = roots.map_0.keySet_0().iterator_0(); root$iterator.hasNext_0();) { + root = castTo(root$iterator.next_1(), 10); + if (!root) { + $log_2(monitor, 'There are no classes in a balanced layout.'); + break; + } + sink = bal.sink[root.id_0]; + classContents = castTo($get_16(classes, sink), 15); + if (!classContents) { + classContents = new ArrayList; + $put_11(classes, sink, classContents); + } + classContents.add_2(root); + } + return classes; +} + +function getEdge(source, target){ + $clinit_BKNodePlacer(); + var edge, edge$iterator; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if (edge.target.owner == target || edge.source.owner == target) { + return edge; + } + } + return null; +} + +defineClass(1407, 1, $intern_113, BKNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_16(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_3:null; +} +; +_.process = function process_71(layeredGraph, monitor){ + $process_74(this, castTo(layeredGraph, 37), monitor); +} +; +_.produceBalancedLayout = false; +var HIERARCHY_PROCESSING_ADDITIONS_3; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKNodePlacer', 1407); +function $cleanup(this$static){ + this$static.layerIndex = null; + this$static.nodeIndex = null; + this$static.leftNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.rightNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.neighborComparator = null; +} + +function NeighborhoodInformation(){ +} + +function buildFor(graph){ + var l, l$iterator, lId, lIndex, layer, layer$iterator, n, n$iterator, nId, nIndex, ni; + ni = new NeighborhoodInformation; + ni.nodeCount = 0; + for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + ni.nodeCount += layer.nodes.array.length; + } + lId = 0; + lIndex = 0; + ni.layerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length, 15, 1); + nId = 0; + nIndex = 0; + ni.nodeIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, ni.nodeCount, 15, 1); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + l.id_0 = lId++; + ni.layerIndex[l.id_0] = lIndex++; + nIndex = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = nId++; + ni.nodeIndex[n.id_0] = nIndex++; + } + } + ni.neighborComparator = new NeighborhoodInformation$NeighborComparator(ni); + ni.leftNeighbors = newArrayListWithCapacity(ni.nodeCount); + determineAllLeftNeighbors(ni, graph); + ni.rightNeighbors = newArrayListWithCapacity(ni.nodeCount); + determineAllRightNeighbors(ni, graph); + return ni; +} + +function determineAllLeftNeighbors(ni, graph){ + var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + result = new ArrayList; + maxPriority = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + edgePrio == maxPriority && $add_3(result, new Pair(edge.source.owner, edge)); + } + $clinit_Collections(); + $sort(result, ni.neighborComparator); + $add_2(ni.leftNeighbors, n.id_0, result); + } + } +} + +function determineAllRightNeighbors(ni, graph){ + var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + result = new ArrayList; + maxPriority = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 17); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + edgePrio == maxPriority && $add_3(result, new Pair(edge.target.owner, edge)); + } + $clinit_Collections(); + $sort(result, ni.neighborComparator); + $add_2(ni.rightNeighbors, n.id_0, result); + } + } +} + +defineClass(1635, 1, {}, NeighborhoodInformation); +_.nodeCount = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation', 1635); +function $compare_21(this$static, o1, o2){ + var cmp; + cmp = this$static.this$01.nodeIndex[castTo(o1.first, 10).id_0] - this$static.this$01.nodeIndex[castTo(o2.first, 10).id_0]; + return round_int(signum(cmp)); +} + +function NeighborhoodInformation$NeighborComparator(this$0){ + this.this$01 = this$0; +} + +defineClass(1636, 1, $intern_88, NeighborhoodInformation$NeighborComparator); +_.compare_1 = function compare_75(o1, o2){ + return $compare_21(this, castTo(o1, 46), castTo(o2, 46)); +} +; +_.equals_0 = function equals_160(other){ + return this === other; +} +; +_.reversed = function reversed_67(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation$NeighborComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation/NeighborComparator', 1636); +function $finishBlock(this$static, n){ + $add_6(this$static.blockFinished, n); +} + +function $getOther_3(edge, n){ + if (edge.source.owner == n) { + return edge.target.owner; + } + else if (edge.target.owner == n) { + return edge.source.owner; + } + else { + throw toJs(new IllegalArgumentException_0('Node ' + n + ' is neither source nor target of edge ' + edge)); + } +} + +function $init_0(this$static, theBal, theNi){ + this$static.bal = theBal; + this$static.ni = theNi; + this$static.blockFinished.map_0.clear_0(); + $reset_0(this$static.postProcessablesQueue); + this$static.postProcessablesStack.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function ThresholdStrategy(){ + this.blockFinished = new HashSet; + this.postProcessablesQueue = new LinkedList; + this.postProcessablesStack = new Stack; +} + +defineClass(808, 1, {}); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy', 808); +function ThresholdStrategy$NullThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1763, 808, {}, ThresholdStrategy$NullThresholdStrategy); +_.calculateThreshold = function calculateThreshold(oldThresh, blockRoot, currentNode){ + return this.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; +} +; +_.postProcess = function postProcess(){ +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$NullThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/NullThresholdStrategy', 1763); +function ThresholdStrategy$Postprocessable(free, isRoot){ + this.free = free; + this.isRoot = isRoot; +} + +defineClass(579, 1, {579:1}, ThresholdStrategy$Postprocessable); +_.hasEdges = false; +_.isRoot = false; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$Postprocessable_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/Postprocessable', 579); +function $getBound(this$static, blockNode, isRoot){ + var invalid, left, otherPort, otherRoot, pick, right, rootPort, threshold; + invalid = this$static.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; + pick = $pickEdge(this$static, new ThresholdStrategy$Postprocessable(blockNode, isRoot)); + if (!pick.edge && pick.hasEdges) { + $add_7(this$static.postProcessablesQueue, pick); + return invalid; + } + else if (pick.edge) { + left = pick.edge.source; + right = pick.edge.target; + if (isRoot) { + rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?right:left; + otherPort = this$static.bal.hdir == RIGHT_3?left:right; + otherRoot = this$static.bal.root[otherPort.owner.id_0]; + threshold = $doubleValue(this$static.bal.y_0[otherRoot.id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; + } + else { + rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?right:left; + otherPort = this$static.bal.hdir == LEFT_3?left:right; + threshold = $doubleValue(this$static.bal.y_0[this$static.bal.root[otherPort.owner.id_0].id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; + } + this$static.bal.su[this$static.bal.root[left.owner.id_0].id_0] = ($clinit_Boolean() , true); + this$static.bal.su[this$static.bal.root[right.owner.id_0].id_0] = true; + return threshold; + } + return invalid; +} + +function $pickEdge(this$static, pp){ + var e, e$iterator, edges, hasEdges, onlyDummies; + pp.isRoot?(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)):(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)); + hasEdges = false; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + onlyDummies = $booleanValue(this$static.bal.od[this$static.bal.root[pp.free.id_0].id_0]); + if (!onlyDummies && !$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + continue; + } + if ($booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0]) || $booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0])) { + continue; + } + hasEdges = true; + if ($contains_6(this$static.blockFinished, this$static.bal.root[$getOther_3(e, pp.free).id_0])) { + pp.hasEdges = true; + pp.edge = e; + return pp; + } + } + pp.hasEdges = hasEdges; + pp.edge = null; + return pp; +} + +function $process_75(this$static, pp){ + var availableSpace, block, delta, edge, fix; + edge = pp.edge; + edge.source.owner == pp.free?(fix = edge.target):(fix = edge.source); + edge.source.owner == pp.free?(block = edge.source):(block = edge.target); + delta = $calculateDelta(this$static.bal, fix, block); + if (delta > 0 && delta < $intern_98) { + availableSpace = $checkSpaceAbove(this$static.bal, block.owner, delta, this$static.ni); + $shiftBlock(this$static.bal, block.owner, -availableSpace); + return availableSpace > 0; + } + else if (delta < 0 && -delta < $intern_98) { + availableSpace = $checkSpaceBelow(this$static.bal, block.owner, -delta, this$static.ni); + $shiftBlock(this$static.bal, block.owner, availableSpace); + return availableSpace > 0; + } + return false; +} + +function ThresholdStrategy$SimpleThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1764, 808, {}, ThresholdStrategy$SimpleThresholdStrategy); +_.calculateThreshold = function calculateThreshold_0(oldThresh, blockRoot, currentNode){ + var isLast, isRoot, t; + isRoot = blockRoot == currentNode; + isLast = this.bal.align_0[currentNode.id_0] == blockRoot; + if (!(isRoot || isLast)) { + return oldThresh; + } + t = oldThresh; + if (this.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)) { + isRoot && (t = $getBound(this, blockRoot, true)); + !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); + } + else { + isRoot && (t = $getBound(this, blockRoot, true)); + !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); + } + return t; +} +; +_.postProcess = function postProcess_0(){ + var edge, moved, onlyDummies, pick, pp; + while (this.postProcessablesQueue.size_0 != 0) { + pp = castTo($poll(this.postProcessablesQueue), 579); + pick = $pickEdge(this, pp); + if (!pick.edge) { + continue; + } + edge = pick.edge; + onlyDummies = $booleanValue(this.bal.od[this.bal.root[pp.free.id_0].id_0]); + if (!onlyDummies && !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + moved = $process_75(this, pp); + moved || $push(this.postProcessablesStack, pp); + } + while (this.postProcessablesStack.arrayList.array.length != 0) { + $process_75(this, castTo($pop(this.postProcessablesStack), 579)); + } +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$SimpleThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/SimpleThresholdStrategy', 1764); +function $clinit_EdgeRouterFactory(){ + $clinit_EdgeRouterFactory = emptyMethod; + factoryCache = new EnumMap(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit); +} + +function $create_7(this$static){ + switch (this$static.edgeRoutingStrategy.ordinal) { + case 1: + return new PolylineEdgeRouter; + case 3: + return new SplineEdgeRouter; + default:return new OrthogonalEdgeRouter; + } +} + +function EdgeRouterFactory(){ +} + +function factoryFor(edgeRoutingStrategy){ + $clinit_EdgeRouterFactory(); + var factory; + if (!$containsKey_5(factoryCache, edgeRoutingStrategy)) { + factory = new EdgeRouterFactory; + factory.edgeRoutingStrategy = edgeRoutingStrategy; + $put_8(factoryCache, edgeRoutingStrategy, factory); + } + return castTo($get_14(factoryCache, edgeRoutingStrategy), 635); +} + +defineClass(635, 1, {635:1, 246:1, 234:1}, EdgeRouterFactory); +_.create_1 = function create_17(){ + return $create_7(this); +} +; +_.create_2 = function create_16(){ + return $create_7(this); +} +; +var factoryCache; +var Lorg_eclipse_elk_alg_layered_p5edges_EdgeRouterFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'EdgeRouterFactory', 635); +function $clinit_OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter = emptyMethod; + HYPEREDGE_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , HYPEREDGE_DUMMY_MERGER)); + INVERTED_PORT_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + HIERARCHICAL_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR), P4_NODE_PLACEMENT, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR), P5_EDGE_ROUTING, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER); + SELF_LOOP_PROCESSING_ADDITIONS = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + HYPERNODE_PROCESSING_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HYPERNODE_PROCESSOR); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + END_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $getLayoutProcessorConfiguration_0(graph){ + var configuration, graphProperties; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = new LayoutProcessorConfiguration; + if (graphProperties.contains(($clinit_GraphProperties() , HYPEREDGES))) { + $addAll_6(configuration, HYPEREDGE_PROCESSING_ADDITIONS); + $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); + } + if (graphProperties.contains(NON_FREE_PORTS) || $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , FEEDBACK_EDGES_0))))) { + $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); + graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS); + } + graphProperties.contains(EXTERNAL_PORTS) && $addAll_6(configuration, HIERARCHICAL_PORT_PROCESSING_ADDITIONS); + graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS); + graphProperties.contains(HYPERNODES) && $addAll_6(configuration, HYPERNODE_PROCESSING_ADDITIONS); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS); + return configuration; +} + +function $process_76(layeredGraph, monitor){ + var edgeEdgeSpacing, edgeNodeSpacing, isLeftLayerExternal, isRightLayerExternal, layerIter, leftLayer, leftLayerNodes, nodeNodeSpacing, rightLayer, rightLayerNodes, routingGenerator, routingWidth, slotsCount, startPos, xpos; + $begin(monitor, 'Orthogonal edge routing', 1); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); + edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + routingGenerator = new OrthogonalRoutingGenerator(0, edgeEdgeSpacing); + xpos = 0; + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + leftLayer = null; + rightLayer = null; + leftLayerNodes = null; + rightLayerNodes = null; + do { + rightLayer = layerIter.i < layerIter.this$01_0.size_1()?(checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)):null; + rightLayerNodes = !rightLayer?null:rightLayer.nodes; + if (leftLayer) { + placeNodesHorizontally(leftLayer, xpos); + xpos += leftLayer.size_0.x_0; + } + startPos = !leftLayer?xpos:xpos + edgeNodeSpacing; + slotsCount = $routeEdges_0(routingGenerator, layeredGraph, leftLayerNodes, rightLayerNodes, startPos); + isLeftLayerExternal = !leftLayer || all_0(leftLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + isRightLayerExternal = !rightLayer || all_0(rightLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + if (slotsCount > 0) { + routingWidth = (slotsCount - 1) * edgeEdgeSpacing; + !!leftLayer && (routingWidth += edgeNodeSpacing); + !!rightLayer && (routingWidth += edgeNodeSpacing); + routingWidth < nodeNodeSpacing && !isLeftLayerExternal && !isRightLayerExternal && (routingWidth = nodeNodeSpacing); + xpos += routingWidth; + } + else + !isLeftLayerExternal && !isRightLayerExternal && (xpos += nodeNodeSpacing); + leftLayer = rightLayer; + leftLayerNodes = rightLayerNodes; + } + while (rightLayer); + layeredGraph.size_0.x_0 = xpos; + $done_0(monitor); +} + +function OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter(); +} + +defineClass(1458, 1, $intern_113, OrthogonalEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_17(graph){ + return $getLayoutProcessorConfiguration_0(castTo(graph, 37)); +} +; +_.process = function process_72(layeredGraph, monitor){ + $process_76(castTo(layeredGraph, 37), monitor); +} +; +var CENTER_EDGE_LABEL_PROCESSING_ADDITIONS, END_EDGE_LABEL_PROCESSING_ADDITIONS, HIERARCHICAL_PORT_PROCESSING_ADDITIONS, HYPEREDGE_PROCESSING_ADDITIONS, HYPERNODE_PROCESSING_ADDITIONS, INVERTED_PORT_PROCESSING_ADDITIONS, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS, SELF_LOOP_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p5edges_OrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'OrthogonalEdgeRouter', 1458); +function $clinit_PolylineEdgeRouter(){ + $clinit_PolylineEdgeRouter = emptyMethod; + PRED_EXTERNAL_WEST_OR_EAST_PORT = new PolylineEdgeRouter$1; + BASELINE_PROCESSOR_CONFIGURATION = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , INVERTED_PORT_PROCESSOR)); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0 = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + SELF_LOOP_PROCESSING_ADDITIONS_0 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + END_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $addBendPoint(this$static, edge, bendPoint, addJunctionPoint, currPort){ + var jpoint, junctionPoints; + if ((!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || !$equals_9(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [currPort.owner.pos, currPort.pos, currPort.anchor])), bendPoint)) && !$isSelfLoop(edge)) { + edge.source == currPort?$add_0(edge.bendPoints, 0, new KVector_2(bendPoint)):$add_7(edge.bendPoints, new KVector_2(bendPoint)); + if (addJunctionPoint && !$contains_6(this$static.createdJunctionPoints, bendPoint)) { + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); + } + jpoint = new KVector_2(bendPoint); + $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); + $add_6(this$static.createdJunctionPoints, jpoint); + } + } +} + +function $calculateWestInLayerEdgeYDiff(layer){ + var maxYDiff, node, node$iterator, outgoingEdge, outgoingEdge$iterator, sourcePos, targetPos; + maxYDiff = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); + if (layer == outgoingEdge.target.owner.layer && outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { + sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; + maxYDiff = $wnd.Math.max(maxYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + } + } + return maxYDiff; +} + +function $getLayoutProcessorConfiguration_1(graph){ + var configuration, graphProperties; + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + configuration = createFrom_0(BASELINE_PROCESSOR_CONFIGURATION); + graphProperties.contains(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0); + graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_0); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_0); + return configuration; +} + +function $isInLayerDummy_0(node){ + var e, e$iterator; + if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 17); + if (!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + return true; + } + } + } + return false; +} + +function $process_77(this$static, layeredGraph, monitor){ + var edgeSpaceFac, edgeSpacing, externalLayer, layer, layerIter, layerSpacing, maxCurrOutputYDiff, maxVertDiff, node, node$iterator, nodeSpacing, outgoingEdge, outgoingEdge$iterator, slopedEdgeZoneWidth, sourcePos, targetPos, xpos, yDiff; + $begin(monitor, 'Polyline edge routing', 1); + slopedEdgeZoneWidth = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)))); + nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); + edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + edgeSpaceFac = $wnd.Math.min(1, edgeSpacing / nodeSpacing); + xpos = 0; + layerSpacing = 0; + if (layeredGraph.layers.array.length != 0) { + yDiff = $calculateWestInLayerEdgeYDiff(castTo($get_11(layeredGraph.layers, 0), 29)); + xpos = 0.4 * edgeSpaceFac * yDiff; + } + layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); + while (layerIter.i < layerIter.this$01_0.size_1()) { + layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); + externalLayer = all_0(layer, PRED_EXTERNAL_WEST_OR_EAST_PORT); + externalLayer && xpos > 0 && (xpos -= nodeSpacing); + placeNodesHorizontally(layer, xpos); + maxVertDiff = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + maxCurrOutputYDiff = 0; + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); + sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; + if (layer == outgoingEdge.target.owner.layer && !$isSelfLoop(outgoingEdge)) { + $processInLayerEdge(outgoingEdge, xpos, 0.4 * edgeSpaceFac * $wnd.Math.abs(sourcePos - targetPos)); + if (outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { + sourcePos = 0; + targetPos = 0; + } + } + maxCurrOutputYDiff = $wnd.Math.max(maxCurrOutputYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + switch (node.type_0.ordinal) { + case 0: + case 4: + case 1: + case 3: + case 5: + $processNode_6(this$static, node, xpos, slopedEdgeZoneWidth); + } + maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrOutputYDiff); + } + if (layerIter.i < layerIter.this$01_0.size_1()) { + yDiff = $calculateWestInLayerEdgeYDiff((checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29))); + maxVertDiff = $wnd.Math.max(maxVertDiff, yDiff); + checkCriticalElement(layerIter.i > 0); + layerIter.this$01.get_0(layerIter.last = --layerIter.i); + } + layerSpacing = 0.4 * edgeSpaceFac * maxVertDiff; + !externalLayer && layerIter.i < layerIter.this$01_0.size_1() && (layerSpacing += nodeSpacing); + xpos += layer.size_0.x_0 + layerSpacing; + } + this$static.createdJunctionPoints.map_0.clear_0(); + layeredGraph.size_0.x_0 = xpos; + $done_0(monitor); +} + +function $processInLayerEdge(edge, layerXPos, edgeSpacing){ + var bendPoint, midY, sourceAnchorY, sourcePort, targetPort; + sourcePort = edge.source; + targetPort = edge.target; + sourceAnchorY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; + midY = (sourceAnchorY + sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0) / 2; + bendPoint = null; + sourcePort.side == ($clinit_PortSide() , EAST_2)?(bendPoint = new KVector_1(layerXPos + sourcePort.owner.layer.size_0.x_0 + edgeSpacing, midY)):(bendPoint = new KVector_1(layerXPos - edgeSpacing, midY)); + $add_0(edge.bendPoints, 0, bendPoint); +} + +function $processNode_6(this$static, node, layerLeftXPos, maxAcceptableXDiff){ + var absolutePortAnchor, addJunctionPoint, bendPoint, correspondingPort, e, e$iterator, layerRightXPos, otherPort, port, port$iterator, xDistance; + layerRightXPos = layerLeftXPos + node.layer.size_0.x_0; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + absolutePortAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])); + if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { + correspondingPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + absolutePortAnchor.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [correspondingPort.owner.pos, correspondingPort.pos, correspondingPort.anchor])).x_0; + node.pos.x_0 = absolutePortAnchor.x_0; + } + bendPoint = new KVector_1(0, absolutePortAnchor.y_0); + if (port.side == ($clinit_PortSide() , EAST_2)) { + bendPoint.x_0 = layerRightXPos; + } + else if (port.side == WEST_2) { + bendPoint.x_0 = layerLeftXPos; + } + else { + continue; + } + xDistance = $wnd.Math.abs(absolutePortAnchor.x_0 - bendPoint.x_0); + if (xDistance <= maxAcceptableXDiff && !$isInLayerDummy_0(node)) { + continue; + } + addJunctionPoint = port.outgoingEdges.array.length + port.incomingEdges.array.length > 1; + for (e$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(e$iterator.firstIterator) || $hasNext_3(e$iterator.secondIterator);) { + e = castTo($hasNext_3(e$iterator.firstIterator)?$next_7(e$iterator.firstIterator):$next_7(e$iterator.secondIterator), 17); + otherPort = e.source == port?e.target:e.source; + $wnd.Math.abs(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [otherPort.owner.pos, otherPort.pos, otherPort.anchor])).y_0 - bendPoint.y_0) > 1 && $addBendPoint(this$static, e, bendPoint, addJunctionPoint, port); + } + } +} + +function PolylineEdgeRouter(){ + $clinit_PolylineEdgeRouter(); + this.createdJunctionPoints = new HashSet; +} + +defineClass(1451, 1, $intern_113, PolylineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_18(graph){ + return $getLayoutProcessorConfiguration_1(castTo(graph, 37)); +} +; +_.process = function process_73(layeredGraph, monitor){ + $process_77(this, castTo(layeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSOR_CONFIGURATION, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0, END_EDGE_LABEL_PROCESSING_ADDITIONS_0, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0, PRED_EXTERNAL_WEST_OR_EAST_PORT, SELF_LOOP_PROCESSING_ADDITIONS_0; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter', 1451); +function $apply_18(node){ + var extPortSide; + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + return node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (extPortSide == ($clinit_PortSide() , WEST_2) || extPortSide == EAST_2); +} + +function PolylineEdgeRouter$1(){ +} + +defineClass(1452, 1, $intern_89, PolylineEdgeRouter$1); +_.apply_1 = function apply_152(node){ + return $apply_18(castTo(node, 10)); +} +; +_.equals_0 = function equals_161(other){ + return this === other; +} +; +_.test_0 = function test_102(input_0){ + return $apply_18(castTo(input_0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter/1', 1452); +function computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random){ + var entry, entryIterator, markBase, maxNode, maxOutflow, maxSegments, nextSinkMark, nextSourceMark, node, node$iterator, outflow, segment, segment$iterator, shiftBase, sink, source, unprocessed; + unprocessed = newTreeSet(segments); + maxSegments = new ArrayList; + markBase = segments.array.length; + nextSinkMark = markBase - 1; + nextSourceMark = markBase + 1; + while (unprocessed.map_0.size_0 != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 112)); + $remove_26(unprocessed.map_0, sink) != null; + sink.mark = nextSinkMark--; + updateNeighbors(sink, sources, sinks, criticalOnly); + } + while (sources.size_0 != 0) { + source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 112)); + $remove_26(unprocessed.map_0, source) != null; + source.mark = nextSourceMark++; + updateNeighbors(source, sources, sinks, criticalOnly); + } + maxOutflow = $intern_42; + for (segment$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(unprocessed.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(segment$iterator.val$entryIterator2.iter);) { + segment = (entry = $next_11(segment$iterator.val$entryIterator2) , castTo(entry.getKey(), 112)); + if (!criticalOnly && segment.criticalOutDepWeight > 0 && segment.criticalInDepWeight <= 0) { + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxSegments.array[maxSegments.array.length] = segment; + break; + } + outflow = segment.outDepWeight - segment.inDepWeight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxSegments.array[maxSegments.array.length] = segment; + } + } + if (maxSegments.array.length != 0) { + maxNode = castTo($get_11(maxSegments, $nextInt(random, maxSegments.array.length)), 112); + $remove_26(unprocessed.map_0, maxNode) != null; + maxNode.mark = nextSourceMark++; + updateNeighbors(maxNode, sources, sinks, criticalOnly); + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + shiftBase = segments.array.length + 1; + for (node$iterator = new ArrayList$1(segments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + node.mark < markBase && (node.mark = node.mark + shiftBase); + } +} + +function detectCycles(segments, criticalOnly, random){ + var outDependency, outDependency$iterator, result, sinks, source, source$iterator, sources; + result = new ArrayList; + sources = new LinkedList; + sinks = new LinkedList; + initialize_2(segments, sources, sinks, criticalOnly); + computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random); + for (source$iterator = new ArrayList$1(segments); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 112); + for (outDependency$iterator = new ArrayList$1(source.outgoingSegmentDependencies); outDependency$iterator.i < outDependency$iterator.this$01.array.length;) { + outDependency = castTo($next_7(outDependency$iterator), 129); + (!criticalOnly || outDependency.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) && source.mark > outDependency.target.mark && (result.array[result.array.length] = outDependency , true); + } + } + return result; +} + +function initialize_2(segments, sources, sinks, criticalOnly){ + var criticalInWeight, criticalOutWeight, inWeight, nextMark, outWeight, segment, segment$iterator; + nextMark = -1; + for (segment$iterator = new ArrayList$1(segments); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 112); + segment.mark = nextMark--; + criticalInWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$0$Type), new HyperEdgeCycleDetector$lambda$1$Type)).sum); + criticalOutWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$2$Type), new HyperEdgeCycleDetector$lambda$3$Type)).sum); + inWeight = criticalInWeight; + outWeight = criticalOutWeight; + if (!criticalOnly) { + inWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$4$Type)).sum); + outWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$5$Type)).sum); + } + segment.inDepWeight = inWeight; + segment.criticalInDepWeight = criticalInWeight; + segment.outDepWeight = outWeight; + segment.criticalOutDepWeight = criticalOutWeight; + outWeight == 0?($addNode_0(sinks, segment, sinks.tail.prev, sinks.tail) , true):inWeight == 0 && ($addNode_0(sources, segment, sources.tail.prev, sources.tail) , true); + } +} + +function updateNeighbors(node, sources, sinks, criticalOnly){ + var dep, dep$iterator, dep$iterator0, source, target; + for (dep$iterator0 = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator0.i < dep$iterator0.this$01.array.length;) { + dep = castTo($next_7(dep$iterator0), 129); + if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { + target = dep.target; + if (target.mark < 0 && dep.weight > 0) { + $setInWeight(target, target.inDepWeight - dep.weight); + dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalInWeight(target, target.criticalInDepWeight - dep.weight); + target.inDepWeight <= 0 && target.outDepWeight > 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); + } + } + } + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { + source = dep.source; + if (source.mark < 0 && dep.weight > 0) { + $setOutWeight(source, source.outDepWeight - dep.weight); + dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalOutWeight(source, source.criticalOutDepWeight - dep.weight); + source.outDepWeight <= 0 && source.inDepWeight > 0 && ($addNode_0(sinks, source, sinks.tail.prev, sinks.tail) , true); + } + } + } +} + +function HyperEdgeCycleDetector$lambda$0$Type(){ +} + +defineClass(1809, 1, $intern_39, HyperEdgeCycleDetector$lambda$0$Type); +_.test_0 = function test_103(arg0){ + return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$0$Type', 1809); +function HyperEdgeCycleDetector$lambda$1$Type(){ +} + +defineClass(1810, 1, {}, HyperEdgeCycleDetector$lambda$1$Type); +_.applyAsInt = function applyAsInt(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$1$Type', 1810); +function HyperEdgeCycleDetector$lambda$2$Type(){ +} + +defineClass(1811, 1, $intern_39, HyperEdgeCycleDetector$lambda$2$Type); +_.test_0 = function test_104(arg0){ + return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$2$Type', 1811); +function HyperEdgeCycleDetector$lambda$3$Type(){ +} + +defineClass(1812, 1, {}, HyperEdgeCycleDetector$lambda$3$Type); +_.applyAsInt = function applyAsInt_0(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$3$Type', 1812); +function HyperEdgeCycleDetector$lambda$4$Type(){ +} + +defineClass(1813, 1, {}, HyperEdgeCycleDetector$lambda$4$Type); +_.applyAsInt = function applyAsInt_1(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$4$Type', 1813); +function HyperEdgeCycleDetector$lambda$5$Type(){ +} + +defineClass(1814, 1, {}, HyperEdgeCycleDetector$lambda$5$Type); +_.applyAsInt = function applyAsInt_2(arg0){ + return castTo(arg0, 129).weight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$5$Type', 1814); +function $addPortPositions(this$static, port, hyperEdgeSegmentMap){ + var otherPort, otherPort$iterator, portPos; + hyperEdgeSegmentMap.put(port, this$static); + $add_3(this$static.ports, port); + portPos = this$static.routingStrategy.getPortPositionOnHyperNode(port); + port.side == this$static.routingStrategy.getSourcePortSide()?insertSorted(this$static.incomingConnectionCoordinates, portPos):insertSorted(this$static.outgoingConnectionCoordinates, portPos); + $recomputeExtent(this$static); + for (otherPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port), new LPort$2(port)]))); $hasNext_1(otherPort$iterator);) { + otherPort = castTo($next_0(otherPort$iterator), 11); + hyperEdgeSegmentMap.containsKey(otherPort) || $addPortPositions(this$static, otherPort, hyperEdgeSegmentMap); + } +} + +function $compareTo_17(this$static, other){ + return this$static.mark - other.mark; +} + +function $recomputeExtent(this$static){ + this$static.startPosition = NaN; + this$static.endPosition = NaN; + $recomputeExtent_0(this$static, this$static.incomingConnectionCoordinates); + $recomputeExtent_0(this$static, this$static.outgoingConnectionCoordinates); +} + +function $recomputeExtent_0(this$static, positions){ + if (positions.size_0 != 0) { + isNaN(this$static.startPosition)?(this$static.startPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0)))):(this$static.startPosition = $wnd.Math.min(this$static.startPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0))))); + isNaN(this$static.endPosition)?(this$static.endPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0)))):(this$static.endPosition = $wnd.Math.max(this$static.endPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0))))); + } +} + +function $setCriticalInWeight(this$static, inWeight){ + this$static.criticalInDepWeight = inWeight; +} + +function $setCriticalOutWeight(this$static, outWeight){ + this$static.criticalOutDepWeight = outWeight; +} + +function $setInWeight(this$static, inWeight){ + this$static.inDepWeight = inWeight; +} + +function $setOutWeight(this$static, outWeight){ + this$static.outDepWeight = outWeight; +} + +function $setRoutingSlot_0(this$static, slot){ + this$static.routingSlot = slot; +} + +function $setSplitPartner(this$static, splitPartner){ + this$static.splitPartner = splitPartner; +} + +function $splitAt(this$static, splitPosition){ + this$static.splitPartner = new HyperEdgeSegment(this$static.routingStrategy); + $setSplitPartner(this$static.splitPartner, this$static); + $addAll(this$static.splitPartner.outgoingConnectionCoordinates, this$static.outgoingConnectionCoordinates); + $reset_0(this$static.outgoingConnectionCoordinates); + $add_7(this$static.outgoingConnectionCoordinates, splitPosition); + $add_7(this$static.splitPartner.incomingConnectionCoordinates, splitPosition); + $recomputeExtent(this$static); + $recomputeExtent(this$static.splitPartner); + while (this$static.incomingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.incomingSegmentDependencies, 0), 129)); + } + while (this$static.outgoingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.outgoingSegmentDependencies, 0), 129)); + } + return this$static.splitPartner; +} + +function HyperEdgeSegment(routingStrategy){ + this.ports = new ArrayList; + this.incomingConnectionCoordinates = new LinkedList; + this.outgoingConnectionCoordinates = new LinkedList; + this.outgoingSegmentDependencies = new ArrayList; + this.incomingSegmentDependencies = new ArrayList; + this.routingStrategy = routingStrategy; +} + +function insertSorted(list, value_0){ + var listIter, next; + listIter = $listIterator_2(list, 0); + while (listIter.currentNode != listIter.this$01.tail) { + next = $floatValue(castToDouble($next_10(listIter))); + if (next == value_0) { + return; + } + else if (next > value_0) { + $previous_0(listIter); + break; + } + } + $add_8(listIter, value_0); +} + +defineClass(112, 1, {35:1, 112:1}, HyperEdgeSegment); +_.compareTo_0 = function compareTo_18(other){ + return $compareTo_17(this, castTo(other, 112)); +} +; +_.equals_0 = function equals_162(object){ + var other; + if (instanceOf(object, 112)) { + other = castTo(object, 112); + return this.mark == other.mark; + } + return false; +} +; +_.hashCode_1 = function hashCode_63(){ + return this.mark; +} +; +_.toString_0 = function toString_104(){ + var builder, name_0, port, portIter; + builder = new StringBuilder_1('{'); + portIter = new ArrayList$1(this.ports); + while (portIter.i < portIter.this$01.array.length) { + port = castTo($next_7(portIter), 11); + name_0 = $getDesignation_2(port.owner); + name_0 == null && (name_0 = 'n' + $getIndex(port.owner)); + builder.string += '' + name_0; + portIter.i < portIter.this$01.array.length && (builder.string += ',' , builder); + } + builder.string += '}'; + return builder.string; +} +; +_.criticalInDepWeight = 0; +_.criticalOutDepWeight = 0; +_.endPosition = NaN; +_.inDepWeight = 0; +_.mark = 0; +_.outDepWeight = 0; +_.routingSlot = 0; +_.startPosition = NaN; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegment', 112); +function $remove_31(this$static){ + $setSource_1(this$static, null); + $setTarget_1(this$static, null); +} + +function $setSource_1(this$static, newSource){ + !!this$static.source && $remove_12(this$static.source.outgoingSegmentDependencies, this$static); + this$static.source = newSource; + !!this$static.source && $add_3(this$static.source.outgoingSegmentDependencies, this$static); +} + +function $setTarget_1(this$static, newTarget){ + !!this$static.target && $remove_12(this$static.target.incomingSegmentDependencies, this$static); + this$static.target = newTarget; + !!this$static.target && $add_3(this$static.target.incomingSegmentDependencies, this$static); +} + +function HyperEdgeSegmentDependency(type_0, source, target, weight){ + this.type_0 = type_0; + this.weight = weight; + $setSource_1(this, source); + $setTarget_1(this, target); +} + +defineClass(129, 1, {129:1}, HyperEdgeSegmentDependency); +_.toString_0 = function toString_105(){ + return this.source + '->' + this.target + ' (' + $name(this.type_0) + ')'; +} +; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency', 129); +function $clinit_HyperEdgeSegmentDependency$DependencyType(){ + $clinit_HyperEdgeSegmentDependency$DependencyType = emptyMethod; + REGULAR = new HyperEdgeSegmentDependency$DependencyType('REGULAR', 0); + CRITICAL = new HyperEdgeSegmentDependency$DependencyType('CRITICAL', 1); +} + +function HyperEdgeSegmentDependency$DependencyType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_71(name_0){ + $clinit_HyperEdgeSegmentDependency$DependencyType(); + return valueOf(($clinit_HyperEdgeSegmentDependency$DependencyType$Map() , $MAP_59), name_0); +} + +function values_77(){ + $clinit_HyperEdgeSegmentDependency$DependencyType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]); +} + +defineClass(520, 22, {3:1, 35:1, 22:1, 520:1}, HyperEdgeSegmentDependency$DependencyType); +var CRITICAL, REGULAR; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency/DependencyType', 520, Ljava_lang_Enum_2_classLit, values_77, valueOf_71); +function $clinit_HyperEdgeSegmentDependency$DependencyType$Map(){ + $clinit_HyperEdgeSegmentDependency$DependencyType$Map = emptyMethod; + $MAP_59 = createValueOfMap(($clinit_HyperEdgeSegmentDependency$DependencyType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]))); +} + +var $MAP_59; +function $chooseBestAreaIndex(segment, freeAreas, fromIndex, toIndex){ + var bestArea, bestAreaIndex, bestRating, currArea, currRating, i, splitPartner, splitSegment, splitSegments, newSplit, newSplitPartner; + bestAreaIndex = fromIndex; + if (fromIndex < toIndex) { + splitSegments = (newSplit = new HyperEdgeSegment(segment.routingStrategy) , newSplitPartner = new HyperEdgeSegment(segment.routingStrategy) , $addAll(newSplit.incomingConnectionCoordinates, segment.incomingConnectionCoordinates) , newSplit.splitBy = segment.splitBy , newSplit.splitPartner = newSplitPartner , $recomputeExtent(newSplit) , $addAll(newSplitPartner.outgoingConnectionCoordinates, segment.outgoingConnectionCoordinates) , newSplitPartner.splitPartner = newSplit , $recomputeExtent(newSplitPartner) , new Pair(newSplit, newSplitPartner)); + splitSegment = castTo(splitSegments.first, 112); + splitPartner = castTo(splitSegments.second, 112); + bestArea = (checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329)); + bestRating = $rateArea(segment, splitSegment, splitPartner, bestArea); + for (i = fromIndex + 1; i <= toIndex; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); + currRating = $rateArea(segment, splitSegment, splitPartner, currArea); + if ($isBetter(currArea, currRating, bestArea, bestRating)) { + bestArea = currArea; + bestRating = currRating; + } + } + } + return bestAreaIndex; +} + +function $computePositionToSplitAndUpdateFreeAreas(segment, freeAreas, criticalConflictThreshold){ + var bestAreaIndex, currArea, firstPossibleAreaIndex, i, lastPossibleAreaIndex, splitPosition; + firstPossibleAreaIndex = -1; + lastPossibleAreaIndex = -1; + for (i = 0; i < freeAreas.array.length; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); + if (currArea.startPosition > segment.endPosition) { + break; + } + else if (currArea.endPosition >= segment.startPosition) { + firstPossibleAreaIndex < 0 && (firstPossibleAreaIndex = i); + lastPossibleAreaIndex = i; + } + } + splitPosition = (segment.startPosition + segment.endPosition) / 2; + if (firstPossibleAreaIndex >= 0) { + bestAreaIndex = $chooseBestAreaIndex(segment, freeAreas, firstPossibleAreaIndex, lastPossibleAreaIndex); + splitPosition = center_0((checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329))); + $useArea(freeAreas, bestAreaIndex, criticalConflictThreshold); + } + return splitPosition; +} + +function $countCrossingsForSingleOrdering(left, right){ + return countCrossings(left.outgoingConnectionCoordinates, right.startPosition, right.endPosition) + countCrossings(right.incomingConnectionCoordinates, left.startPosition, left.endPosition); +} + +function $decideWhichSegmentsToSplit(dependencies){ + var dependency, dependency$iterator, segmentCausingSplit, segmentToSplit, segmentsToSplit, sourceSegment, targetSegment; + segmentsToSplit = new LinkedHashSet; + for (dependency$iterator = new ArrayList$1(dependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 129); + sourceSegment = dependency.source; + targetSegment = dependency.target; + if (segmentsToSplit.map_0.containsKey(sourceSegment) || segmentsToSplit.map_0.containsKey(targetSegment)) { + continue; + } + segmentToSplit = sourceSegment; + segmentCausingSplit = targetSegment; + if (sourceSegment.incomingConnectionCoordinates.size_0 + sourceSegment.outgoingConnectionCoordinates.size_0 > 2 && targetSegment.incomingConnectionCoordinates.size_0 + targetSegment.outgoingConnectionCoordinates.size_0 <= 2) { + segmentToSplit = targetSegment; + segmentCausingSplit = sourceSegment; + } + segmentsToSplit.map_0.put(segmentToSplit, segmentsToSplit); + segmentToSplit.splitBy = segmentCausingSplit; + } + return segmentsToSplit; +} + +function $findFreeAreas(segments, criticalConflictThreshold){ + var freeAreas, i, inCoordinates, outCoordinates, sortedCoordinates; + freeAreas = new ArrayList; + inCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$2$Type); + outCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$3$Type); + sortedCoordinates = $toArray_6($sorted($mapToDouble(concat_1(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Stream_2_classLit, 1), $intern_2, 833, 0, [inCoordinates, outCoordinates])), new HyperEdgeSegmentSplitter$lambda$4$Type))); + for (i = 1; i < sortedCoordinates.length; i++) { + sortedCoordinates[i] - sortedCoordinates[i - 1] >= 2 * criticalConflictThreshold && $add_3(freeAreas, new HyperEdgeSegmentSplitter$FreeArea(sortedCoordinates[i - 1] + criticalConflictThreshold, sortedCoordinates[i] - criticalConflictThreshold)); + } + return freeAreas; +} + +function $isBetter(currArea, currRating, bestArea, bestRating){ + if (currRating.crossings < bestRating.crossings) { + return true; + } + else if (currRating.crossings == bestRating.crossings) { + if (currRating.dependencies < bestRating.dependencies) { + return true; + } + else if (currRating.dependencies == bestRating.dependencies) { + if (currArea.size_0 > bestArea.size_0) { + return true; + } + } + } + return false; +} + +function $lambda$1_5(this$static, segments_1, freeAreas_2, criticalConflictThreshold_3, segment_3){ + var splitPosition; + splitPosition = $computePositionToSplitAndUpdateFreeAreas(segment_3, freeAreas_2, criticalConflictThreshold_3); + $add_3(segments_1, $splitAt(segment_3, splitPosition)); + $updateDependencies(this$static, segment_3, segments_1); +} + +function $rateArea(segment, splitSegment, splitPartner, area){ + var areaCentre, dependency, dependency$iterator, dependency$iterator0, otherSegment, rating; + areaCentre = (area.startPosition + area.endPosition) / 2; + $reset_0(splitSegment.outgoingConnectionCoordinates); + $add_7(splitSegment.outgoingConnectionCoordinates, areaCentre); + $reset_0(splitPartner.incomingConnectionCoordinates); + $add_7(splitPartner.incomingConnectionCoordinates, areaCentre); + rating = new HyperEdgeSegmentSplitter$AreaRating; + for (dependency$iterator0 = new ArrayList$1(segment.incomingSegmentDependencies); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator0), 129); + otherSegment = dependency.source; + $updateConsideringBothOrderings(rating, splitSegment, otherSegment); + $updateConsideringBothOrderings(rating, splitPartner, otherSegment); + } + for (dependency$iterator = new ArrayList$1(segment.outgoingSegmentDependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 129); + otherSegment = dependency.target; + $updateConsideringBothOrderings(rating, splitSegment, otherSegment); + $updateConsideringBothOrderings(rating, splitPartner, otherSegment); + } + rating.dependencies += 2; + rating.crossings += $countCrossingsForSingleOrdering(splitSegment, segment.splitBy); + rating.crossings += $countCrossingsForSingleOrdering(segment.splitBy, splitPartner); + return rating; +} + +function $splitSegments(this$static, dependenciesToResolve, segments, criticalConflictThreshold){ + var freeAreas, segmentsToSplit; + if (dependenciesToResolve.array.length == 0) { + return; + } + freeAreas = $findFreeAreas(segments, criticalConflictThreshold); + segmentsToSplit = $decideWhichSegmentsToSplit(dependenciesToResolve); + $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(segmentsToSplit, 1)), new HyperEdgeSegmentSplitter$lambda$0$Type), new HyperEdgeSegmentSplitter$lambda$1$Type(this$static, segments, freeAreas, criticalConflictThreshold)); +} + +function $updateConsideringBothOrderings(rating, s1, s2){ + var crossingsS1LeftOfS2, crossingsS2LeftOfS1; + crossingsS1LeftOfS2 = countCrossings(s1.outgoingConnectionCoordinates, s2.startPosition, s2.endPosition) + countCrossings(s2.incomingConnectionCoordinates, s1.startPosition, s1.endPosition); + crossingsS2LeftOfS1 = countCrossings(s2.outgoingConnectionCoordinates, s1.startPosition, s1.endPosition) + countCrossings(s1.incomingConnectionCoordinates, s2.startPosition, s2.endPosition); + if (crossingsS1LeftOfS2 == crossingsS2LeftOfS1) { + if (crossingsS1LeftOfS2 > 0) { + rating.dependencies += 2; + rating.crossings += crossingsS1LeftOfS2; + } + } + else { + rating.dependencies += 1; + rating.crossings += $wnd.Math.min(crossingsS1LeftOfS2, crossingsS2LeftOfS1); + } +} + +function $updateDependencies(this$static, segment, segments){ + var otherSegment, otherSegment$iterator, splitCausingSegment, splitPartner; + splitCausingSegment = segment.splitBy; + splitPartner = segment.splitPartner; + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), segment, splitCausingSegment, 1); + new HyperEdgeSegmentDependency(CRITICAL, splitCausingSegment, splitPartner, 1); + for (otherSegment$iterator = new ArrayList$1(segments); otherSegment$iterator.i < otherSegment$iterator.this$01.array.length;) { + otherSegment = castTo($next_7(otherSegment$iterator), 112); + if (otherSegment != splitCausingSegment && otherSegment != segment && otherSegment != splitPartner) { + $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, segment); + $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, splitPartner); + } + } +} + +function $useArea(freeAreas, usedAreaIndex, criticalConflictThreshold){ + var insertIndex, newArea1, newArea2, newEnd1, newStart2, oldArea, oldAreaCentre; + oldArea = (checkCriticalElementIndex(usedAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[usedAreaIndex], 329)); + $remove_11(freeAreas, usedAreaIndex); + if (oldArea.size_0 / 2 >= criticalConflictThreshold) { + insertIndex = usedAreaIndex; + oldAreaCentre = (oldArea.startPosition + oldArea.endPosition) / 2; + newEnd1 = oldAreaCentre - criticalConflictThreshold; + if (oldArea.startPosition <= oldAreaCentre - criticalConflictThreshold) { + newArea1 = new HyperEdgeSegmentSplitter$FreeArea(oldArea.startPosition, newEnd1); + $add_2(freeAreas, insertIndex++, newArea1); + } + newStart2 = oldAreaCentre + criticalConflictThreshold; + if (newStart2 <= oldArea.endPosition) { + newArea2 = new HyperEdgeSegmentSplitter$FreeArea(newStart2, oldArea.endPosition); + checkCriticalPositionIndex(insertIndex, freeAreas.array.length); + insertTo(freeAreas.array, insertIndex, newArea2); + } + } +} + +function HyperEdgeSegmentSplitter(routingGenerator){ + this.routingGenerator = routingGenerator; +} + +function center_0(a){ + return (a.startPosition + a.endPosition) / 2; +} + +function lambda$0_29(hes1_0, hes2_1){ + return compare_4(hes1_0.endPosition - hes1_0.startPosition, hes2_1.endPosition - hes2_1.startPosition); +} + +defineClass(1815, 1, {}, HyperEdgeSegmentSplitter); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter', 1815); +function HyperEdgeSegmentSplitter$AreaRating(){ + this.dependencies = 0; + this.crossings = 0; +} + +defineClass(1816, 1, {}, HyperEdgeSegmentSplitter$AreaRating); +_.crossings = 0; +_.dependencies = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$AreaRating_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/AreaRating', 1816); +function HyperEdgeSegmentSplitter$FreeArea(startPosition, endPosition){ + this.startPosition = startPosition; + this.endPosition = endPosition; + this.size_0 = endPosition - startPosition; +} + +defineClass(329, 1, {329:1}, HyperEdgeSegmentSplitter$FreeArea); +_.endPosition = 0; +_.size_0 = 0; +_.startPosition = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$FreeArea_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/FreeArea', 329); +function HyperEdgeSegmentSplitter$lambda$0$Type(){ +} + +defineClass(1817, 1, $intern_88, HyperEdgeSegmentSplitter$lambda$0$Type); +_.compare_1 = function compare_76(arg0, arg1){ + return lambda$0_29(castTo(arg0, 112), castTo(arg1, 112)); +} +; +_.equals_0 = function equals_163(other){ + return this === other; +} +; +_.reversed = function reversed_68(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$0$Type', 1817); +function HyperEdgeSegmentSplitter$lambda$1$Type($$outer_0, segments_1, freeAreas_2, criticalConflictThreshold_3){ + this.$$outer_0 = $$outer_0; + this.segments_1 = segments_1; + this.freeAreas_2 = freeAreas_2; + this.criticalConflictThreshold_3 = criticalConflictThreshold_3; +} + +defineClass(1818, 1, $intern_19, HyperEdgeSegmentSplitter$lambda$1$Type); +_.accept = function accept_129(arg0){ + $lambda$1_5(this.$$outer_0, this.segments_1, this.freeAreas_2, this.criticalConflictThreshold_3, castTo(arg0, 112)); +} +; +_.criticalConflictThreshold_3 = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$1$Type', 1818); +function HyperEdgeSegmentSplitter$lambda$2$Type(){ +} + +defineClass(1819, 1, {}, HyperEdgeSegmentSplitter$lambda$2$Type); +_.apply_0 = function apply_153(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$2$Type', 1819); +function HyperEdgeSegmentSplitter$lambda$3$Type(){ +} + +defineClass(1820, 1, {}, HyperEdgeSegmentSplitter$lambda$3$Type); +_.apply_0 = function apply_154(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$3$Type', 1820); +function HyperEdgeSegmentSplitter$lambda$4$Type(){ +} + +defineClass(1821, 1, {}, HyperEdgeSegmentSplitter$lambda$4$Type); +_.applyAsDouble = function applyAsDouble_3(arg0){ + return $doubleValue(castToDouble(arg0)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$4$Type', 1821); +function $countConflicts(this$static, posis1, posis2){ + var conflicts, hasMore, iter1, iter2, pos1, pos2; + conflicts = 0; + if (posis1.size_0 != 0 && posis2.size_0 != 0) { + iter1 = $listIterator_2(posis1, 0); + iter2 = $listIterator_2(posis2, 0); + pos1 = $doubleValue(castToDouble($next_10(iter1))); + pos2 = $doubleValue(castToDouble($next_10(iter2))); + hasMore = true; + do { + if (pos1 > pos2 - this$static.criticalConflictThreshold && pos1 < pos2 + this$static.criticalConflictThreshold) { + return -1; + } + else + pos1 > pos2 - this$static.conflictThreshold && pos1 < pos2 + this$static.conflictThreshold && ++conflicts; + pos1 <= pos2 && iter1.currentNode != iter1.this$01.tail?(pos1 = $doubleValue(castToDouble($next_10(iter1)))):pos2 <= pos1 && iter2.currentNode != iter2.this$01.tail?(pos2 = $doubleValue(castToDouble($next_10(iter2)))):(hasMore = false); + } + while (hasMore); + } + return conflicts; +} + +function $createDependencyIfNecessary(this$static, he1, he2){ + var conflicts1, conflicts2, criticalConflictsDetected, criticalDependencyCount, crossings1, crossings2, depValue1, depValue2; + if ($wnd.Math.abs(he1.startPosition - he1.endPosition) < $intern_101 || $wnd.Math.abs(he2.startPosition - he2.endPosition) < $intern_101) { + return 0; + } + conflicts1 = $countConflicts(this$static, he1.outgoingConnectionCoordinates, he2.incomingConnectionCoordinates); + conflicts2 = $countConflicts(this$static, he2.outgoingConnectionCoordinates, he1.incomingConnectionCoordinates); + criticalConflictsDetected = conflicts1 == -1 || conflicts2 == -1; + criticalDependencyCount = 0; + if (criticalConflictsDetected) { + if (conflicts1 == -1) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he2, he1, 1); + ++criticalDependencyCount; + } + if (conflicts2 == -1) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he1, he2, 1); + ++criticalDependencyCount; + } + } + else { + crossings1 = countCrossings(he1.outgoingConnectionCoordinates, he2.startPosition, he2.endPosition); + crossings1 += countCrossings(he2.incomingConnectionCoordinates, he1.startPosition, he1.endPosition); + crossings2 = countCrossings(he2.outgoingConnectionCoordinates, he1.startPosition, he1.endPosition); + crossings2 += countCrossings(he1.incomingConnectionCoordinates, he2.startPosition, he2.endPosition); + depValue1 = conflicts1 + 16 * crossings1; + depValue2 = conflicts2 + 16 * crossings2; + if (depValue1 < depValue2) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, depValue2 - depValue1); + } + else if (depValue1 > depValue2) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he2, he1, depValue1 - depValue2); + } + else if (depValue1 > 0 && depValue2 > 0) { + new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, 0); + new HyperEdgeSegmentDependency(REGULAR, he2, he1, 0); + } + } + return criticalDependencyCount; +} + +function $createHyperEdgeSegments(this$static, nodes, portSide, hyperEdges, portToHyperEdgeSegmentMap){ + var hyperEdge, node, node$iterator, port, port$iterator; + if (nodes) { + for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 10); + for (port$iterator = $getPorts_0(node, ($clinit_PortType() , OUTPUT), portSide).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + hyperEdge = castTo(getEntryValueOrNull($getEntry_0(portToHyperEdgeSegmentMap.hashCodeMap, port)), 112); + if (!hyperEdge) { + hyperEdge = new HyperEdgeSegment(this$static.routingStrategy); + hyperEdges.array[hyperEdges.array.length] = hyperEdge; + $addPortPositions(hyperEdge, port, portToHyperEdgeSegmentMap); + } + } + } + } +} + +function $minimumDifference(numberStream){ + var currentNumber, iter, minDifference, numbers, previousNumber; + numbers = castTo($collect_1($distinct($sorted_0(numberStream)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minDifference = $intern_98; + if (numbers.size_1() >= 2) { + iter = numbers.iterator_0(); + currentNumber = castToDouble(iter.next_1()); + while (iter.hasNext_0()) { + previousNumber = currentNumber; + currentNumber = castToDouble(iter.next_1()); + minDifference = $wnd.Math.min(minDifference, (checkCriticalNotNull(currentNumber) , currentNumber) - (checkCriticalNotNull(previousNumber) , previousNumber)); + } + } + return minDifference; +} + +function $routeEdges_0(this$static, layeredGraph, sourceLayerNodes, targetLayerNodes, startPos){ + var criticalDependencyCount, edgeSegments, firstIdx, firstSegment, node, node$iterator, portToEdgeSegmentMap, random, rankCount, secondIdx, minIncomingDistance, minOutgoingDistance, cycleDependencies; + portToEdgeSegmentMap = new HashMap; + edgeSegments = new ArrayList; + $createHyperEdgeSegments(this$static, sourceLayerNodes, this$static.routingStrategy.getSourcePortSide(), edgeSegments, portToEdgeSegmentMap); + $createHyperEdgeSegments(this$static, targetLayerNodes, this$static.routingStrategy.getTargetPortSide(), edgeSegments, portToEdgeSegmentMap); + this$static.criticalConflictThreshold = 0.2 * (minIncomingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$0$Type)) , minOutgoingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$1$Type)) , $wnd.Math.min(minIncomingDistance, minOutgoingDistance)); + criticalDependencyCount = 0; + for (firstIdx = 0; firstIdx < edgeSegments.array.length - 1; firstIdx++) { + firstSegment = (checkCriticalElementIndex(firstIdx, edgeSegments.array.length) , castTo(edgeSegments.array[firstIdx], 112)); + for (secondIdx = firstIdx + 1; secondIdx < edgeSegments.array.length; secondIdx++) { + criticalDependencyCount += $createDependencyIfNecessary(this$static, firstSegment, (checkCriticalElementIndex(secondIdx, edgeSegments.array.length) , castTo(edgeSegments.array[secondIdx], 112))); + } + } + random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + criticalDependencyCount >= 2 && (cycleDependencies = detectCycles(edgeSegments, true, random) , !this$static.segmentSplitter && (this$static.segmentSplitter = new HyperEdgeSegmentSplitter(this$static)) , $splitSegments(this$static.segmentSplitter, cycleDependencies, edgeSegments, this$static.criticalConflictThreshold) , undefined); + breakNonCriticalCycles(edgeSegments, random); + topologicalNumbering(edgeSegments); + rankCount = -1; + for (node$iterator = new ArrayList$1(edgeSegments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + if ($wnd.Math.abs(node.startPosition - node.endPosition) < $intern_101) { + continue; + } + rankCount = $wnd.Math.max(rankCount, node.routingSlot); + this$static.routingStrategy.calculateBendPoints(node, startPos, this$static.edgeSpacing); + } + this$static.routingStrategy.createdJunctionPoints.map_0.clear_0(); + return rankCount + 1; +} + +function OrthogonalRoutingGenerator(direction, edgeSpacing){ + this.routingStrategy = forRoutingDirection(direction); + this.edgeSpacing = edgeSpacing; + this.conflictThreshold = 0.5 * edgeSpacing; +} + +function breakNonCriticalCycles(edgeSegments, random){ + var cycleDependencies, cycleDependency, cycleDependency$iterator, oldSource, oldTarget; + cycleDependencies = detectCycles(edgeSegments, false, random); + for (cycleDependency$iterator = new ArrayList$1(cycleDependencies); cycleDependency$iterator.i < cycleDependency$iterator.this$01.array.length;) { + cycleDependency = castTo($next_7(cycleDependency$iterator), 129); + cycleDependency.weight == 0?($setSource_1(cycleDependency, null) , $setTarget_1(cycleDependency, null)):(oldSource = cycleDependency.source , oldTarget = cycleDependency.target , $setSource_1(cycleDependency, oldTarget) , $setTarget_1(cycleDependency, oldSource) , undefined); + } +} + +function countCrossings(posis, start_0, end){ + var crossings, pos, pos$iterator; + crossings = 0; + for (pos$iterator = $listIterator_2(posis, 0); pos$iterator.currentNode != pos$iterator.this$01.tail;) { + pos = $doubleValue(castToDouble($next_10(pos$iterator))); + if (pos > end) { + break; + } + else + pos >= start_0 && ++crossings; + } + return crossings; +} + +function topologicalNumbering(segments){ + var dep, dep$iterator, maxRank, node, node$iterator, node$iterator0, rightwardTargets, source, sources, target; + sources = new ArrayList; + rightwardTargets = new ArrayList; + for (node$iterator0 = new ArrayList$1(segments); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 112); + $setInWeight(node, node.incomingSegmentDependencies.array.length); + $setOutWeight(node, node.outgoingSegmentDependencies.array.length); + node.inDepWeight == 0 && (sources.array[sources.array.length] = node , true); + node.outDepWeight == 0 && node.incomingConnectionCoordinates.size_0 == 0 && (rightwardTargets.array[rightwardTargets.array.length] = node , true); + } + maxRank = -1; + while (sources.array.length != 0) { + node = castTo($remove_11(sources, 0), 112); + for (dep$iterator = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + target = dep.target; + $setRoutingSlot_0(target, $wnd.Math.max(target.routingSlot, node.routingSlot + 1)); + maxRank = $wnd.Math.max(maxRank, target.routingSlot); + $setInWeight(target, target.inDepWeight - 1); + target.inDepWeight == 0 && (sources.array[sources.array.length] = target , true); + } + } + if (maxRank > -1) { + for (node$iterator = new ArrayList$1(rightwardTargets); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + node.routingSlot = maxRank; + } + while (rightwardTargets.array.length != 0) { + node = castTo($remove_11(rightwardTargets, 0), 112); + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + source = dep.source; + if (source.incomingConnectionCoordinates.size_0 > 0) { + continue; + } + $setRoutingSlot_0(source, $wnd.Math.min(source.routingSlot, node.routingSlot - 1)); + $setOutWeight(source, source.outDepWeight - 1); + source.outDepWeight == 0 && (rightwardTargets.array[rightwardTargets.array.length] = source , true); + } + } + } +} + +defineClass(655, 1, {}, OrthogonalRoutingGenerator); +_.conflictThreshold = 0; +_.criticalConflictThreshold = 0; +_.edgeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator', 655); +function OrthogonalRoutingGenerator$lambda$0$Type(){ +} + +defineClass(1638, 1, {}, OrthogonalRoutingGenerator$lambda$0$Type); +_.apply_0 = function apply_155(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$0$Type', 1638); +function OrthogonalRoutingGenerator$lambda$1$Type(){ +} + +defineClass(1639, 1, {}, OrthogonalRoutingGenerator$lambda$1$Type); +_.apply_0 = function apply_156(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$1$Type', 1639); +function $addJunctionPointIfNecessary(this$static, edge, segment, pos, vertical){ + var jpoint, junctionPoints, p, pointAtSegmentBoundary, pointInsideEdgeSegment; + p = vertical?pos.y_0:pos.x_0; + if ($contains_6(this$static.createdJunctionPoints, pos)) { + return; + } + pointInsideEdgeSegment = p > segment.startPosition && p < segment.endPosition; + pointAtSegmentBoundary = false; + if (segment.incomingConnectionCoordinates.size_0 != 0 && segment.outgoingConnectionCoordinates.size_0 != 0) { + pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.outgoingConnectionCoordinates)))) < $intern_101); + pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.outgoingConnectionCoordinates)))) < $intern_101); + } + if (pointInsideEdgeSegment || pointAtSegmentBoundary) { + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + if (!junctionPoints) { + junctionPoints = new KVectorChain; + $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); + } + jpoint = new KVector_2(pos); + $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); + $add_6(this$static.createdJunctionPoints, jpoint); + } +} + +function BaseRoutingDirectionStrategy(){ + this.createdJunctionPoints = new HashSet; +} + +function forRoutingDirection(direction){ + switch (direction) { + case 0: + return new WestToEastRoutingStrategy; + case 1: + return new NorthToSouthRoutingStrategy; + case 2: + return new SouthToNorthRoutingStrategy; + default:throw toJs(new IllegalArgumentException); + } +} + +defineClass(661, 1, {}); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_BaseRoutingDirectionStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'BaseRoutingDirectionStrategy', 661); +function NorthToSouthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1807, 661, {}, NorthToSouthRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentY = startPos + segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; + if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { + currentY = segmentY; + currentSegment = segment; + bend = new KVector_1(sourceX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + currentY = startPos + splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + bend = new KVector_1(targetX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode(port){ + return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; +} +; +_.getSourcePortSide = function getSourcePortSide(){ + return $clinit_PortSide() , SOUTH_2; +} +; +_.getTargetPortSide = function getTargetPortSide(){ + return $clinit_PortSide() , NORTH_3; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_NorthToSouthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'NorthToSouthRoutingStrategy', 1807); +function SouthToNorthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1808, 661, {}, SouthToNorthRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints_0(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentY = startPos - segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; + if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { + currentY = segmentY; + currentSegment = segment; + bend = new KVector_1(sourceX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + currentY = startPos - splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(splitX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + bend = new KVector_1(targetX, currentY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_0(port){ + return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; +} +; +_.getSourcePortSide = function getSourcePortSide_0(){ + return $clinit_PortSide() , NORTH_3; +} +; +_.getTargetPortSide = function getTargetPortSide_0(){ + return $clinit_PortSide() , SOUTH_2; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_SouthToNorthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'SouthToNorthRoutingStrategy', 1808); +function WestToEastRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1806, 661, {}, WestToEastRoutingStrategy); +_.calculateBendPoints = function calculateBendPoints_1(segment, startPos, edgeSpacing){ + var bend, currentSegment, currentX, edge, edge$iterator, port, port$iterator, segmentX, sourceY, splitPartner, splitY, target, targetY; + if (!!segment.splitPartner && !segment.splitBy) { + return; + } + segmentX = startPos + segment.routingSlot * edgeSpacing; + for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + sourceY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge)) { + target = edge.target; + targetY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).y_0; + if ($wnd.Math.abs(sourceY - targetY) > $intern_101) { + currentX = segmentX; + currentSegment = segment; + bend = new KVector_1(currentX, sourceY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + splitPartner = segment.splitPartner; + if (splitPartner) { + splitY = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); + bend = new KVector_1(currentX, splitY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + currentX = startPos + splitPartner.routingSlot * edgeSpacing; + currentSegment = splitPartner; + bend = new KVector_1(currentX, splitY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + } + bend = new KVector_1(currentX, targetY); + $add_7(edge.bendPoints, bend); + $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); + } + } + } + } +} +; +_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_1(port){ + return port.owner.pos.y_0 + port.pos.y_0 + port.anchor.y_0; +} +; +_.getSourcePortSide = function getSourcePortSide_1(){ + return $clinit_PortSide() , EAST_2; +} +; +_.getTargetPortSide = function getTargetPortSide_1(){ + return $clinit_PortSide() , WEST_2; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_WestToEastRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'WestToEastRoutingStrategy', 1806); +function $createUniformKnotVector(this$static, size_0){ + var fraction, i, i0, i1, mySize; + if (size_0 < 2 * this$static.dimNUBS) { + throw toJs(new IllegalArgumentException_0('The knot vector must have at least two time the dimension elements.')); + } + this$static.maxKnot = 1; + for (i0 = 0; i0 < this$static.dimNUBS; i0++) { + $add_3(this$static.knotVector, 0); + } + mySize = size_0 + 1 - 2 * this$static.dimNUBS; + fraction = mySize; + for (i1 = 1; i1 < mySize; i1++) { + $add_3(this$static.knotVector, i1 / fraction); + } + if (this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS; i++) { + $add_3(this$static.knotVector, 1); + } + } +} + +function $getBezierCP(this$static){ + var iter, retVal; + this$static.isBezier || $toBezier(this$static); + retVal = new KVectorChain; + iter = new ArrayList$1(this$static.controlPoints); + $next_7(iter); + while (iter.i < iter.this$01.array.length) { + $add_7(retVal, castTo($next_7(iter), 407).cp); + } + checkCriticalElement(retVal.size_0 != 0); + $removeNode_0(retVal, retVal.tail.prev); + return retVal; +} + +function $getMultiplicity(this$static, knotToCheck){ + var count, currentKnot, diff, iter; + iter = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); + count = 0; + while (iter.i < iter.this$01_0.size_1()) { + currentKnot = $doubleValue((checkCriticalElement(iter.i < iter.this$01_0.size_1()) , castToDouble(iter.this$01_0.get_0(iter.last = iter.i++)))); + diff = currentKnot - knotToCheck; + if (diff > $intern_118) { + return count; + } + else + diff > -1.0E-6 && ++count; + } + return count; +} + +function $insertKnotAtCurrentPosition(this$static, insertions, knotToInsert, iterCP, iterKnot){ + var cp, cp$iterator, firstCP, i, j, j0, j1, multiplicity, newCPs, secondCP; + multiplicity = $getMultiplicity(this$static, knotToInsert); + for (i = 0; i < insertions; i++) { + $add_1(iterKnot, knotToInsert); + newCPs = new ArrayList; + secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); + for (j0 = multiplicity + i; j0 < this$static.dimNUBS; j0++) { + firstCP = secondCP; + secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); + $add_3(newCPs, new NubSpline$PolarCP(firstCP, secondCP, knotToInsert)); + } + for (j1 = multiplicity + i; j1 < this$static.dimNUBS; j1++) { + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + j1 > multiplicity + i && $remove_8(iterCP); + } + for (cp$iterator = new ArrayList$1(newCPs); cp$iterator.i < cp$iterator.this$01.array.length;) { + cp = castTo($next_7(cp$iterator), 407); + $add_1(iterCP, cp); + } + if (i < insertions - 1) { + for (j = multiplicity + i; j < this$static.dimNUBS; j++) { + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + } + } + } +} + +function $toBezier(this$static){ + var currentKnot, i, iterCP, iterKnot, knotToCount, occurrence; + iterKnot = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); + iterCP = new AbstractList$ListIteratorImpl(this$static.controlPoints, 0); + if (this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + } + } + else { + for (i = 0; i < this$static.dimNUBS - 1; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + $remove_8(iterKnot); + } + } + currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); + while (this$static.maxKnot - currentKnot > $intern_118) { + knotToCount = currentKnot; + occurrence = 0; + while ($wnd.Math.abs(currentKnot - knotToCount) < $intern_118) { + ++occurrence; + currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); + checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()); + iterCP.this$01_0.get_0(iterCP.last = iterCP.i++); + } + if (occurrence < this$static.dimNUBS) { + checkCriticalElement(iterKnot.i > 0); + iterKnot.this$01.get_0(iterKnot.last = --iterKnot.i); + $insertKnotAtCurrentPosition(this$static, this$static.dimNUBS - occurrence, knotToCount, iterCP, iterKnot); + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + } + checkCriticalElement(iterCP.i > 0); + iterCP.this$01.get_0(iterCP.last = --iterCP.i); + } + if (!this$static.isClamped) { + for (i = 0; i < this$static.dimNUBS - 1; i++) { + checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); + iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); + $remove_8(iterKnot); + } + } + this$static.isClamped = true; + this$static.isBezier = true; +} + +function NubSpline(kVectors){ + var i, i0, kVector, kVector$iterator, knotIter, polarCoordinate; + this.knotVector = new ArrayList; + this.controlPoints = new ArrayList; + for (i0 = kVectors.size_0 - 1; i0 < 3; i0++) { + $add_0(kVectors, 0, castTo($get_7(kVectors, 0), 8)); + } + if (kVectors.size_0 < 4) { + throw toJs(new IllegalArgumentException_0('At (least dimension + 1) control points are necessary!')); + } + else { + this.dimNUBS = 3; + this.isClamped = true; + this.isBezier = false; + $createUniformKnotVector(this, kVectors.size_0 + this.dimNUBS - 1); + polarCoordinate = new ArrayList; + knotIter = new ArrayList$1(this.knotVector); + for (i = 0; i < this.dimNUBS - 1; i++) { + $add_3(polarCoordinate, castToDouble($next_7(knotIter))); + } + for (kVector$iterator = $listIterator_2(kVectors, 0); kVector$iterator.currentNode != kVector$iterator.this$01.tail;) { + kVector = castTo($next_10(kVector$iterator), 8); + $add_3(polarCoordinate, castToDouble($next_7(knotIter))); + $add_3(this.controlPoints, new NubSpline$PolarCP_0(kVector, polarCoordinate)); + checkCriticalElementIndex(0, polarCoordinate.array.length); + polarCoordinate.array.splice(0, 1); + } + } +} + +defineClass(813, 1, {}, NubSpline); +_.toString_0 = function toString_106(){ + return $toString_2(this.controlPoints); +} +; +_.dimNUBS = 0; +_.isBezier = false; +_.isClamped = false; +_.maxKnot = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline', 813); +function $setCp(this$static, cp){ + this$static.cp = cp; +} + +function $setPolarCoordinate(this$static, polarCoordinate){ + this$static.polarCoordinate = polarCoordinate; +} + +function NubSpline$PolarCP(firstCP, secondCP, newKnot){ + var aScaled, bScaled, firstFactor, iter, needsToBeAdded, nextKnot, secondFactor, total; + firstFactor = $doubleValue(castToDouble(firstCP.polarCoordinate.iterator_0().next_1())); + secondFactor = $doubleValue(castToDouble(getLast(secondCP.polarCoordinate))); + aScaled = $scale($clone_0(firstCP.cp), secondFactor - newKnot); + bScaled = $scale($clone_0(secondCP.cp), newKnot - firstFactor); + total = $add_19(aScaled, bScaled); + $scale(total, 1 / (secondFactor - firstFactor)); + this.cp = total; + this.polarCoordinate = new ArrayList; + needsToBeAdded = true; + iter = firstCP.polarCoordinate.iterator_0(); + iter.next_1(); + while (iter.hasNext_0()) { + nextKnot = $doubleValue(castToDouble(iter.next_1())); + if (needsToBeAdded && nextKnot - newKnot > $intern_118) { + this.polarCoordinate.add_2(newKnot); + needsToBeAdded = false; + } + this.polarCoordinate.add_2(nextKnot); + } + needsToBeAdded && this.polarCoordinate.add_2(newKnot); +} + +function NubSpline$PolarCP_0(controlPoint, polarCoordinate){ + $setCp(this, new KVector_1(controlPoint.x_0, controlPoint.y_0)); + $setPolarCoordinate(this, newLinkedList(polarCoordinate)); +} + +defineClass(407, 1, {407:1}, NubSpline$PolarCP, NubSpline$PolarCP_0); +var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline$PolarCP_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline/PolarCP', 407); +function $clinit_SplineEdgeRouter(){ + $clinit_SplineEdgeRouter = emptyMethod; + BASELINE_PROCESSING_ADDITIONS = $addBefore($addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , FINAL_SPLINE_BENDPOINTS_CALCULATOR)), P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); + SELF_LOOP_PROCESSING_ADDITIONS_1 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); + CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); + NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1 = $addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); + END_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); +} + +function $clearThenFillMappings(this$static, leftLayer, rightLayer){ + var edge, edge$iterator, node, node$iterator, nt, port, port$iterator, sourcePort, sourcePort$iterator, targetLayer, targetPort; + this$static.leftPortsLayer.map_0.clear_0(); + this$static.rightPortsLayer.map_0.clear_0(); + this$static.edgesRemainingLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.splineSegmentsLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.selfLoopsLayer.map_0.clear_0(); + if (leftLayer) { + for (node$iterator = new ArrayList$1(leftLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { + sourcePort = castTo(sourcePort$iterator.next_1(), 11); + $add_6(this$static.leftPortsLayer, sourcePort); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if ($isSelfLoop(edge)) { + continue; + } + $add_3(this$static.edgesRemainingLayer, edge); + $findAndAddSuccessor(this$static, edge); + nt = edge.source.owner.type_0; + (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); + } + } + } + } + if (rightLayer) { + for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $isSelfLoop(edge) && $add_6(this$static.selfLoopsLayer, edge); + } + } + for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { + sourcePort = castTo(sourcePort$iterator.next_1(), 11); + $add_6(this$static.rightPortsLayer, sourcePort); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if ($isSelfLoop(edge)) { + continue; + } + $add_3(this$static.edgesRemainingLayer, edge); + $findAndAddSuccessor(this$static, edge); + nt = edge.source.owner.type_0; + (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); + targetPort = edge.target; + targetLayer = targetPort.owner.layer; + targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); + } + } + } + } +} + +function $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor){ + var incomingEdge, incomingEdge$iterator, layerSpacing, maxCurrInputYDiff, maxVertDiff, node, node$iterator, sourcePos, targetPos; + maxVertDiff = 0; + for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + maxCurrInputYDiff = 0; + for (incomingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incomingEdge$iterator);) { + incomingEdge = castTo($next_0(incomingEdge$iterator), 17); + sourcePos = $getAbsoluteAnchor(incomingEdge.source).y_0; + targetPos = $getAbsoluteAnchor(incomingEdge.target).y_0; + maxCurrInputYDiff = $wnd.Math.max(maxCurrInputYDiff, $wnd.Math.abs(targetPos - sourcePos)); + } + maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrInputYDiff); + } + layerSpacing = sloppyLayerSpacingFactor * $wnd.Math.min(1, edgeEdgeSpacing / nodeNodeSpacing) * maxVertDiff; + return layerSpacing; +} + +function $createDependency(edge0, edge1){ + var edge0Counter, edge1Counter, port, port$iterator, port$iterator0, port$iterator1, port$iterator2; + if (edge0.hyperEdgeTopYPos > edge1.hyperEdgeBottomYPos || edge1.hyperEdgeTopYPos > edge0.hyperEdgeBottomYPos) { + return; + } + edge0Counter = 0; + edge1Counter = 0; + for (port$iterator0 = edge0.rightPorts.map_0.keySet_0().iterator_0(); port$iterator0.hasNext_0();) { + port = castTo(port$iterator0.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && ++edge0Counter; + } + for (port$iterator1 = edge0.leftPorts.map_0.keySet_0().iterator_0(); port$iterator1.hasNext_0();) { + port = castTo(port$iterator1.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && --edge0Counter; + } + for (port$iterator2 = edge1.rightPorts.map_0.keySet_0().iterator_0(); port$iterator2.hasNext_0();) { + port = castTo(port$iterator2.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && ++edge1Counter; + } + for (port$iterator = edge1.leftPorts.map_0.keySet_0().iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && --edge1Counter; + } + if (edge0Counter < edge1Counter) { + new SplineEdgeRouter$Dependency(edge0, edge1, edge1Counter - edge0Counter); + } + else if (edge1Counter < edge0Counter) { + new SplineEdgeRouter$Dependency(edge1, edge0, edge0Counter - edge1Counter); + } + else { + new SplineEdgeRouter$Dependency(edge1, edge0, 0); + new SplineEdgeRouter$Dependency(edge0, edge1, 0); + } +} + +function $createSegmentsAndComputeRanking(this$static){ + var hyperEdge1, hyperEdge2, sourceIter, targetIter; + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4), true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, LEFT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); + $createSplineSegments(this$static, this$static.edgesRemainingLayer, this$static.leftPortsLayer, this$static.rightPortsLayer, this$static.splineSegmentsLayer); + sourceIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, 0); + while (sourceIter.i < sourceIter.this$01_0.size_1()) { + hyperEdge1 = (checkCriticalElement(sourceIter.i < sourceIter.this$01_0.size_1()) , castTo(sourceIter.this$01_0.get_0(sourceIter.last = sourceIter.i++), 128)); + targetIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, sourceIter.i); + while (targetIter.i < targetIter.this$01_0.size_1()) { + hyperEdge2 = (checkCriticalElement(targetIter.i < targetIter.this$01_0.size_1()) , castTo(targetIter.this$01_0.get_0(targetIter.last = targetIter.i++), 128)); + $createDependency(hyperEdge1, hyperEdge2); + } + } + breakCycles(this$static.splineSegmentsLayer, castTo($getProperty(this$static.lGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230)); + topologicalNumbering_0(this$static.splineSegmentsLayer); +} + +function $createSplineSegments(this$static, edges, leftPorts, rightPorts, hyperEdges){ + var edge, edge$iterator, seg, sourcePort, sourceSide, targetPort, targetSide; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + sourcePort = edge.source; + if (leftPorts.map_0.containsKey(sourcePort)) { + sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); + } + else if (rightPorts.map_0.containsKey(sourcePort)) { + sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); + } + else { + throw toJs(new IllegalArgumentException_0('Source port must be in one of the port sets.')); + } + targetPort = edge.target; + if (leftPorts.map_0.containsKey(targetPort)) { + targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); + } + else if (rightPorts.map_0.containsKey(targetPort)) { + targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); + } + else { + throw toJs(new IllegalArgumentException_0('Target port must be in one of the port sets.')); + } + seg = new SplineSegment(edge, sourceSide, targetSide); + $put_6(this$static.edgeToSegmentMap, edge, seg); + hyperEdges.array[hyperEdges.array.length] = seg; + } +} + +function $createSplineSegmentsForHyperEdges(this$static, leftPorts, rightPorts, sideToProcess, reversed, edgesRemaining, hyperEdges){ + var downEdges, edge, edge$iterator, pair, pair$iterator, portsToProcess, seg, singlePort, singlePort$iterator, singlePortPosition, targetPort, targetPortPosition, upEdges; + portsToProcess = null; + sideToProcess == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?(portsToProcess = leftPorts):sideToProcess == RIGHT_4 && (portsToProcess = rightPorts); + for (singlePort$iterator = portsToProcess.map_0.keySet_0().iterator_0(); singlePort$iterator.hasNext_0();) { + singlePort = castTo(singlePort$iterator.next_1(), 11); + singlePortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; + upEdges = new HashSet; + downEdges = new HashSet; + for (edge$iterator = new LPort$CombineIter$1(singlePort.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { + edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) != reversed) { + continue; + } + if ($indexOf_3(edgesRemaining, edge, 0) != -1) { + edge.target == singlePort?(targetPort = edge.source):(targetPort = edge.target); + targetPortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; + if ($wnd.Math.abs(targetPortPosition - singlePortPosition) < 0.2) { + continue; + } + targetPortPosition < singlePortPosition?leftPorts.map_0.containsKey(targetPort)?$add_6(upEdges, new Pair(LEFT_4, edge)):$add_6(upEdges, new Pair(RIGHT_4, edge)):leftPorts.map_0.containsKey(targetPort)?$add_6(downEdges, new Pair(LEFT_4, edge)):$add_6(downEdges, new Pair(RIGHT_4, edge)); + } + } + if (upEdges.map_0.size_1() > 1) { + seg = new SplineSegment_0(singlePort, upEdges, sideToProcess); + $forEach_0(upEdges, new SplineEdgeRouter$lambda$2$Type(this$static, seg)); + hyperEdges.array[hyperEdges.array.length] = seg; + for (pair$iterator = upEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(edgesRemaining, pair.second); + } + } + if (downEdges.map_0.size_1() > 1) { + seg = new SplineSegment_0(singlePort, downEdges, sideToProcess); + $forEach_0(downEdges, new SplineEdgeRouter$lambda$3$Type(this$static, seg)); + hyperEdges.array[hyperEdges.array.length] = seg; + for (pair$iterator = downEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(edgesRemaining, pair.second); + } + } + } +} + +function $findAndAddSuccessor(this$static, edge){ + var iter, nt, targetNode; + targetNode = edge.target.owner; + nt = targetNode.type_0; + if (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == BREAKING_POINT) { + return; + } + iter = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(targetNode).val$inputs1.iterator_0(), new Iterables$10)); + $hasNext_1(iter) && $put_6(this$static.successingEdge, edge, castTo($next_0(iter), 17)); +} + +function $getEdgeChain(this$static, start_0){ + var current, edgeChain; + edgeChain = new ArrayList; + current = start_0; + do { + edgeChain.array[edgeChain.array.length] = current; + current = castTo($get_10(this$static.successingEdge, current), 17); + } + while (current); + return edgeChain; +} + +function $getLayoutProcessorConfiguration_2(graph){ + var configuration, graphProperties; + configuration = new LayoutProcessorConfiguration; + $addAll_6(configuration, BASELINE_PROCESSING_ADDITIONS); + graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); + graphProperties.contains(($clinit_GraphProperties() , SELF_LOOPS)) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_1); + graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1); + graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1); + graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_1); + return configuration; +} + +function $getSplinePath(this$static, start_0){ + var current, initialSegment, lastSegment, segment, segmentChain; + segmentChain = new ArrayList; + current = start_0; + do { + segment = castTo($get_10(this$static.edgeToSegmentMap, current), 128); + segment.sourcePort = current.source; + segment.targetPort = current.target; + segmentChain.array[segmentChain.array.length] = segment; + current = castTo($get_10(this$static.successingEdge, current), 17); + } + while (current); + initialSegment = (checkCriticalElementIndex(0, segmentChain.array.length) , castTo(segmentChain.array[0], 128)); + initialSegment.initialSegment = true; + initialSegment.sourceNode = castTo(initialSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).source.owner; + lastSegment = castTo($get_11(segmentChain, segmentChain.array.length - 1), 128); + lastSegment.lastSegment = true; + lastSegment.targetNode = castTo(lastSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).target.owner; + return segmentChain; +} + +function $lambda$2_3(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); +} + +function $lambda$3_2(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); +} + +function $process_78(this$static, layeredGraph, monitor){ + var edge, edge$iterator, edgeChain, edgeEdgeSpacing, edgeNodeSpacing, firstLayer, increment, isLeftLayerExternal, isRightLayerExternal, isSpecialLeftLayer, isSpecialRightLayer, lastLayer, layerIterator, leftLayer, mode, nodeNodeSpacing, rightLayer, rightLayerPosition, segment, segment$iterator, sloppyLayerSpacingFactor, sloppyRouting, slotCount, spline, xSegmentDelta, xpos; + $begin(monitor, 'Spline edge routing', 1); + if (layeredGraph.layers.array.length == 0) { + layeredGraph.size_0.x_0 = 0; + $done_0(monitor); + return; + } + nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); + edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); + edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); + mode = castTo($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_MODE_0), 336); + sloppyRouting = mode == ($clinit_SplineRoutingMode() , SLOPPY); + sloppyLayerSpacingFactor = $doubleValue(castToDouble($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0))); + this$static.lGraph = layeredGraph; + this$static.startEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.allSplineSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $reset(this$static.successingEdge); + firstLayer = castTo($get_11(layeredGraph.layers, 0), 29); + isLeftLayerExternal = all_0(firstLayer.nodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + lastLayer = castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29); + isRightLayerExternal = all_0(lastLayer.nodes, PRED_EXTERNAL_WEST_OR_EAST_PORT); + layerIterator = new ArrayList$1(layeredGraph.layers); + leftLayer = null; + xpos = 0; + do { + rightLayer = layerIterator.i < layerIterator.this$01.array.length?castTo($next_7(layerIterator), 29):null; + $clearThenFillMappings(this$static, leftLayer, rightLayer); + $createSegmentsAndComputeRanking(this$static); + slotCount = $orElse_1($max_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.splineSegmentsLayer, 16)), new SplineEdgeRouter$lambda$0$Type), new SplineEdgeRouter$lambda$1$Type))); + xSegmentDelta = 0; + rightLayerPosition = xpos; + isSpecialLeftLayer = !leftLayer || isLeftLayerExternal && leftLayer == firstLayer; + isSpecialRightLayer = !rightLayer || isRightLayerExternal && rightLayer == lastLayer; + if (slotCount > 0) { + increment = 0; + !!leftLayer && (increment += edgeNodeSpacing); + increment += (slotCount - 1) * edgeEdgeSpacing; + !!rightLayer && (increment += edgeNodeSpacing); + sloppyRouting && !!rightLayer && (increment = $wnd.Math.max(increment, $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor))); + if (increment < nodeNodeSpacing && !isSpecialLeftLayer && !isSpecialRightLayer) { + xSegmentDelta = (nodeNodeSpacing - increment) / 2; + increment = nodeNodeSpacing; + } + rightLayerPosition += increment; + } + else + !isSpecialLeftLayer && !isSpecialRightLayer && (rightLayerPosition += nodeNodeSpacing); + !!rightLayer && placeNodesHorizontally(rightLayer, rightLayerPosition); + for (segment$iterator = new ArrayList$1(this$static.splineSegmentsLayer); segment$iterator.i < segment$iterator.this$01.array.length;) { + segment = castTo($next_7(segment$iterator), 128); + segment.boundingBox.x_0 = xpos; + segment.boundingBox.width_0 = rightLayerPosition - xpos; + segment.xDelta = xSegmentDelta; + segment.isWestOfInitialLayer = !leftLayer; + } + $addAll_2(this$static.allSplineSegments, this$static.splineSegmentsLayer); + xpos = rightLayerPosition; + !!rightLayer && (xpos += rightLayer.size_0.x_0); + leftLayer = rightLayer; + isSpecialLeftLayer = isSpecialRightLayer; + } + while (rightLayer); + for (edge$iterator = new ArrayList$1(this$static.startEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + edgeChain = $getEdgeChain(this$static, edge); + $setProperty_0(edge, ($clinit_InternalProperties_1() , SPLINE_EDGE_CHAIN), edgeChain); + spline = $getSplinePath(this$static, edge); + $setProperty_0(edge, SPLINE_ROUTE_START, spline); + } + layeredGraph.size_0.x_0 = xpos; + this$static.lGraph = null; + $done_0(monitor); +} + +function SplineEdgeRouter(){ + $clinit_SplineEdgeRouter(); + this.edgesRemainingLayer = new ArrayList; + this.splineSegmentsLayer = new ArrayList; + this.leftPortsLayer = new LinkedHashSet; + this.rightPortsLayer = new LinkedHashSet; + this.selfLoopsLayer = new LinkedHashSet; + this.startEdges = new ArrayList; + this.allSplineSegments = new ArrayList; + this.edgeToSegmentMap = new HashMap; + this.successingEdge = new HashMap; +} + +function breakCycles(edges, random){ + var depIter, dependency, dependency$iterator, dependency$iterator0, edge, edge$iterator, edge$iterator0, edge$iterator1, inweight, markBase, maxEdge, maxEdges, maxOutflow, nextLeft, nextMark, nextRight, outflow, outweight, shiftBase, sink, sinks, source, source$iterator, sources, target, unprocessed; + sources = new LinkedList; + sinks = new LinkedList; + nextMark = -1; + for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 128); + edge.mark = nextMark--; + inweight = 0; + outweight = 0; + for (dependency$iterator0 = new ArrayList$1(edge.outgoing); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator0), 268); + outweight += dependency.weight; + } + for (dependency$iterator = new ArrayList$1(edge.incoming); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 268); + inweight += dependency.weight; + } + edge.inweight = inweight; + edge.outweight = outweight; + outweight == 0?($addNode_0(sinks, edge, sinks.tail.prev, sinks.tail) , true):inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); + } + unprocessed = newLinkedHashSet(edges); + markBase = edges.array.length; + nextLeft = markBase + 1; + nextRight = markBase - 1; + maxEdges = new ArrayList; + while (unprocessed.map_0.size_1() != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 128)); + unprocessed.map_0.remove_0(sink) != null; + sink.mark = nextRight--; + updateNeighbors_0(sink, sources, sinks); + } + while (sources.size_0 != 0) { + source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 128)); + unprocessed.map_0.remove_0(source) != null; + source.mark = nextLeft++; + updateNeighbors_0(source, sources, sinks); + } + maxOutflow = $intern_42; + for (edge$iterator1 = unprocessed.map_0.keySet_0().iterator_0(); edge$iterator1.hasNext_0();) { + edge = castTo(edge$iterator1.next_1(), 128); + outflow = edge.outweight - edge.inweight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxEdges.array[maxEdges.array.length] = edge; + } + } + if (maxEdges.array.length != 0) { + maxEdge = castTo($get_11(maxEdges, $nextInt(random, maxEdges.array.length)), 128); + unprocessed.map_0.remove_0(maxEdge) != null; + maxEdge.mark = nextLeft++; + updateNeighbors_0(maxEdge, sources, sinks); + maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + shiftBase = edges.array.length + 1; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 128); + edge.mark < markBase && (edge.mark += shiftBase); + } + for (source$iterator = new ArrayList$1(edges); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(source$iterator), 128); + depIter = new AbstractList$ListIteratorImpl(source.outgoing, 0); + while (depIter.i < depIter.this$01_0.size_1()) { + dependency = (checkCriticalElement(depIter.i < depIter.this$01_0.size_1()) , castTo(depIter.this$01_0.get_0(depIter.last = depIter.i++), 268)); + target = dependency.target; + if (source.mark > target.mark) { + $remove_8(depIter); + $remove_12(target.incoming, dependency); + if (dependency.weight > 0) { + dependency.source = target; + $add_3(target.outgoing, dependency); + dependency.target = source; + $add_3(source.incoming, dependency); + } + } + } + } +} + +function topologicalNumbering_0(edges){ + var dep, dep$iterator, edge, edge$iterator, edge$iterator0, maxRank, rightwardTargets, source, sources, target; + sources = new LinkedList; + rightwardTargets = new LinkedList; + for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 128); + edge.rank = 0; + edge.inweight = edge.incoming.array.length; + edge.outweight = edge.outgoing.array.length; + edge.inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); + edge.outweight == 0 && edge.leftPorts.map_0.size_1() == 0 && ($addNode_0(rightwardTargets, edge, rightwardTargets.tail.prev, rightwardTargets.tail) , true); + } + maxRank = -1; + while (sources.size_0 != 0) { + edge = castTo($remove_4(sources, 0), 128); + for (dep$iterator = new ArrayList$1(edge.outgoing); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + target = dep.target; + target.rank = $wnd.Math.max(target.rank, edge.rank + 1); + maxRank = $wnd.Math.max(maxRank, target.rank); + --target.inweight; + target.inweight == 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); + } + } + if (maxRank > -1) { + for (edge$iterator = $listIterator_2(rightwardTargets, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 128); + edge.rank = maxRank; + } + while (rightwardTargets.size_0 != 0) { + edge = castTo($remove_4(rightwardTargets, 0), 128); + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + source = dep.source; + if (source.leftPorts.map_0.size_1() != 0) { + continue; + } + source.rank = $wnd.Math.min(source.rank, edge.rank - 1); + --source.outweight; + source.outweight == 0 && ($addNode_0(rightwardTargets, source, rightwardTargets.tail.prev, rightwardTargets.tail) , true); + } + } + } +} + +function updateNeighbors_0(edge, sources, sinks){ + var dep, dep$iterator, dep$iterator0; + for (dep$iterator0 = new ArrayList$1(edge.outgoing); dep$iterator0.i < dep$iterator0.this$01.array.length;) { + dep = castTo($next_7(dep$iterator0), 268); + if (dep.target.mark < 0 && dep.weight > 0) { + dep.target.inweight -= dep.weight; + dep.target.inweight <= 0 && dep.target.outweight > 0 && $add_7(sources, dep.target); + } + } + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + if (dep.source.mark < 0 && dep.weight > 0) { + dep.source.outweight -= dep.weight; + dep.source.outweight <= 0 && dep.source.inweight > 0 && $add_7(sinks, dep.source); + } + } +} + +defineClass(1453, 1, $intern_113, SplineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_19(graph){ + return $getLayoutProcessorConfiguration_2(castTo(graph, 37)); +} +; +_.process = function process_74(layeredGraph, monitor){ + $process_78(this, castTo(layeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_ADDITIONS, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1, END_EDGE_LABEL_PROCESSING_ADDITIONS_1, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1, SELF_LOOP_PROCESSING_ADDITIONS_1; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter', 1453); +function SplineEdgeRouter$Dependency(source, target, weight){ + this.source = source; + this.target = target; + this.weight = weight; + $add_3(source.outgoing, this); + $add_3(target.incoming, this); +} + +defineClass(268, 1, {268:1}, SplineEdgeRouter$Dependency); +_.toString_0 = function toString_107(){ + return this.source + ' ->(' + this.weight + ') ' + this.target; +} +; +_.weight = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$Dependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/Dependency', 268); +function $clinit_SplineEdgeRouter$SideToProcess(){ + $clinit_SplineEdgeRouter$SideToProcess = emptyMethod; + LEFT_4 = new SplineEdgeRouter$SideToProcess('LEFT', 0); + RIGHT_4 = new SplineEdgeRouter$SideToProcess('RIGHT', 1); +} + +function SplineEdgeRouter$SideToProcess(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_72(name_0){ + $clinit_SplineEdgeRouter$SideToProcess(); + return valueOf(($clinit_SplineEdgeRouter$SideToProcess$Map() , $MAP_60), name_0); +} + +function values_78(){ + $clinit_SplineEdgeRouter$SideToProcess(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]); +} + +defineClass(455, 22, {3:1, 35:1, 22:1, 455:1}, SplineEdgeRouter$SideToProcess); +var LEFT_4, RIGHT_4; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/SideToProcess', 455, Ljava_lang_Enum_2_classLit, values_78, valueOf_72); +function $clinit_SplineEdgeRouter$SideToProcess$Map(){ + $clinit_SplineEdgeRouter$SideToProcess$Map = emptyMethod; + $MAP_60 = createValueOfMap(($clinit_SplineEdgeRouter$SideToProcess() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]))); +} + +var $MAP_60; +function SplineEdgeRouter$lambda$0$Type(){ +} + +defineClass(1454, 1, $intern_39, SplineEdgeRouter$lambda$0$Type); +_.test_0 = function test_105(arg0){ + return $clinit_SplineEdgeRouter() , !castTo(arg0, 128).isStraight; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$0$Type', 1454); +function SplineEdgeRouter$lambda$1$Type(){ +} + +defineClass(1455, 1, {}, SplineEdgeRouter$lambda$1$Type); +_.applyAsInt = function applyAsInt_3(arg0){ + return $clinit_SplineEdgeRouter() , castTo(arg0, 128).rank + 1; +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$1$Type', 1455); +function SplineEdgeRouter$lambda$2$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1456, 1, $intern_19, SplineEdgeRouter$lambda$2$Type); +_.accept = function accept_130(arg0){ + $lambda$2_3(this.$$outer_0, this.seg_1, castTo(arg0, 46)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$2$Type', 1456); +function SplineEdgeRouter$lambda$3$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1457, 1, $intern_19, SplineEdgeRouter$lambda$3$Type); +_.accept = function accept_131(arg0){ + $lambda$3_2(this.$$outer_0, this.seg_1, castTo(arg0, 46)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$3$Type', 1457); +function $$init_8(this$static){ + this$static.leftPorts = new HashSet; + this$static.rightPorts = new HashSet; + this$static.outgoing = new ArrayList; + this$static.incoming = new ArrayList; + this$static.edges = new HashSet; + this$static.boundingBox = new ElkRectangle; + this$static.edgeInformation = new HashMap; +} + +function $addEdge_0(this$static, edge){ + var ei, nt, nt0; + $add_6(this$static.edges, edge); + ei = new SplineSegment$EdgeInformation; + $put_6(this$static.edgeInformation, edge, ei); + ei.startY = $anchorY(edge.source); + ei.endY = $anchorY(edge.target); + ei.normalSourceNode = ($clinit_SplineEdgeRouter() , nt0 = edge.source.owner.type_0 , nt0 == ($clinit_LNode$NodeType() , NORMAL) || nt0 == BREAKING_POINT); + ei.normalTargetNode = (nt = edge.target.owner.type_0 , nt == NORMAL || nt == BREAKING_POINT); + ei.invertedLeft = edge.source.side == ($clinit_PortSide() , WEST_2); + ei.invertedRight = edge.target.side == EAST_2; +} + +function $anchorY(p){ + return ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(p.side)?$doubleValue(castToDouble($getProperty(p, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [p.owner.pos, p.pos, p.anchor])).y_0; +} + +function $compareTo_18(this$static, other){ + return this$static.mark - other.mark; +} + +function $setRelevantPositions(this$static, sourceY, targetYMin, targetYMax){ + this$static.boundingBox.y_0 = $wnd.Math.min(sourceY, targetYMin); + this$static.boundingBox.height = $wnd.Math.max(sourceY, targetYMax) - this$static.boundingBox.y_0; + if (sourceY < targetYMin) { + this$static.centerControlPointY = 0.5 * (sourceY + targetYMin); + this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; + this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMin; + } + else { + this$static.centerControlPointY = 0.5 * (sourceY + targetYMax); + this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMax; + this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; + } +} + +function SplineSegment(edge, sourceSide, targetSide){ + var sourceY, targetY; + $$init_8(this); + sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, edge.source):$add_6(this.rightPorts, edge.source); + targetSide == LEFT_4?$add_6(this.leftPorts, edge.target):$add_6(this.rightPorts, edge.target); + $addEdge_0(this, edge); + sourceY = $anchorY(edge.source); + targetY = $anchorY(edge.target); + $setRelevantPositions(this, sourceY, targetY, targetY); + this.isStraight = ($clinit_SplineEdgeRouter() , $wnd.Math.abs(sourceY - targetY) < 0.2); +} + +function SplineSegment_0(singlePort, edges, sourceSide){ + var edge, pair, pair$iterator, pair$iterator0, side, tgtPort, yMaxPosOfTarget, yMinPosOfTarget, yPosOfSingleSide, yPosOfTarget; + $$init_8(this); + sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, singlePort):$add_6(this.rightPorts, singlePort); + yMinPosOfTarget = $intern_59; + yMaxPosOfTarget = $intern_60; + for (pair$iterator0 = edges.map_0.keySet_0().iterator_0(); pair$iterator0.hasNext_0();) { + pair = castTo(pair$iterator0.next_1(), 46); + side = castTo(pair.first, 455); + edge = castTo(pair.second, 17); + tgtPort = edge.source; + tgtPort == singlePort && (tgtPort = edge.target); + side == LEFT_4?$add_6(this.leftPorts, tgtPort):$add_6(this.rightPorts, tgtPort); + yPosOfTarget = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(tgtPort.side)?$doubleValue(castToDouble($getProperty(tgtPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [tgtPort.owner.pos, tgtPort.pos, tgtPort.anchor])).y_0; + yMinPosOfTarget = $wnd.Math.min(yMinPosOfTarget, yPosOfTarget); + yMaxPosOfTarget = $wnd.Math.max(yMaxPosOfTarget, yPosOfTarget); + } + yPosOfSingleSide = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(singlePort.side)?$doubleValue(castToDouble($getProperty(singlePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; + $setRelevantPositions(this, yPosOfSingleSide, yMinPosOfTarget, yMaxPosOfTarget); + for (pair$iterator = edges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $addEdge_0(this, castTo(pair.second, 17)); + } + this.isStraight = false; +} + +defineClass(128, 1, {35:1, 128:1}, SplineSegment, SplineSegment_0); +_.compareTo_0 = function compareTo_19(other){ + return $compareTo_18(this, castTo(other, 128)); +} +; +_.centerControlPointY = 0; +_.handled = false; +_.hyperEdgeBottomYPos = 0; +_.hyperEdgeTopYPos = 0; +_.initialSegment = false; +_.inverseOrder = false; +_.inweight = 0; +_.isStraight = false; +_.isWestOfInitialLayer = false; +_.lastSegment = false; +_.mark = 0; +_.outweight = 0; +_.rank = 0; +_.xDelta = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment', 128); +function SplineSegment$EdgeInformation(){ +} + +defineClass(459, 1, {459:1}, SplineSegment$EdgeInformation); +_.endY = 0; +_.invertedLeft = false; +_.invertedRight = false; +_.normalSourceNode = false; +_.normalTargetNode = false; +_.startY = 0; +var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment$EdgeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment/EdgeInformation', 459); +function isBetween(value_0, boundary0, boundary1){ + if ($wnd.Math.abs(boundary0 - value_0) < $intern_120 || $wnd.Math.abs(boundary1 - value_0) < $intern_120) { + return true; + } + return boundary0 - value_0 > $intern_120?value_0 - boundary1 > $intern_120:boundary1 - value_0 > $intern_120; +} + +function portSideToDirection(side){ + switch (side.ordinal) { + case 1: + return $intern_121; + default:case 2: + return 0; + case 3: + return $intern_97; + case 4: + return $intern_122; + } +} + +function $dfs_5(this$static, node, graph){ + var component, edge, edge$iterator; + if (!this$static.visited[node.id_0]) { + this$static.visited[node.id_0] = true; + component = graph; + !component && (component = new TGraph); + $add_7(component.nodes, node); + for (edge$iterator = this$static.incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 188); + edge.source != node && $dfs_5(this$static, edge.source, component); + edge.target != node && $dfs_5(this$static, edge.target, component); + $add_7(component.edges, edge); + } + return component; + } + return null; +} + +function $initialize_6(this$static, graph){ + var edge, edge$iterator, n, node, node$iterator; + n = graph.nodes.size_0; + this$static.incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); + this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, n, 16, 1); + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + this$static.incidence[node.id_0] = new LinkedList; + } + for (edge$iterator = $listIterator_2(graph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 188); + this$static.incidence[edge.source.id_0].add_2(edge); + this$static.incidence[edge.target.id_0].add_2(edge); + } +} + +function $moveGraph_1(destGraph, sourceGraph, offsetx, offsety){ + var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, node, node$iterator; + graphOffset = new KVector_1(offsetx, offsety); + $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_2() , BB_UPLEFT_0)), 8)); + for (node$iterator = $listIterator_2(sourceGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + $add_19(node.pos, graphOffset); + $add_7(destGraph.nodes, node); + } + for (edge$iterator = $listIterator_2(sourceGraph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 188); + for (bendpoint$iterator = $listIterator_2(edge.bendPoints, 0); bendpoint$iterator.currentNode != bendpoint$iterator.this$01.tail;) { + bendpoint = castTo($next_10(bendpoint$iterator), 8); + $add_19(bendpoint, graphOffset); + } + $add_7(destGraph.edges, edge); + } +} + +function $pack(components){ + var broadestRow, debug, debugMode, entry, entry$iterator, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, propComp, propMerge, result, size_0, spacing, tGraph, tGraph$iterator, totalArea, xpos, ypos; + if (components.array.length == 1) { + return checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 135); + } + else if (components.array.length <= 0) { + return new TGraph; + } + for (graph$iterator0 = new ArrayList$1(components); graph$iterator0.i < graph$iterator0.this$01.array.length;) { + graph = castTo($next_7(graph$iterator0), 135); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_42; + maxy = $intern_42; + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + priority += castTo($getProperty(node, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0; + minx = $wnd.Math.min(minx, node.pos.x_0); + miny = $wnd.Math.min(miny, node.pos.y_0); + maxx = $wnd.Math.max(maxx, node.pos.x_0 + node.size_0.x_0); + maxy = $wnd.Math.max(maxy, node.pos.y_0 + node.size_0.y_0); + } + $setProperty_0(graph, ($clinit_MrTreeOptions() , PRIORITY_1), valueOf_4(priority)); + $setProperty_0(graph, ($clinit_InternalProperties_2() , BB_UPLEFT_0), new KVector_1(minx, miny)); + $setProperty_0(graph, BB_LOWRIGHT_0, new KVector_1(maxx, maxy)); + } + $clinit_Collections(); + $sort(components, new ComponentsProcessor$1_0); + result = new TGraph; + $copyProperties(result, (checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 94))); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = new ArrayList$1(components); graph$iterator1.i < graph$iterator1.this$01.array.length;) { + graph = castTo($next_7(graph$iterator1), 135); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); + maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); + totalArea += size_0.x_0 * size_0.y_0; + } + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_MrTreeOptions() , ASPECT_RATIO_2))))); + spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE_1))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = spacing; + for (graph$iterator = new ArrayList$1(components); graph$iterator.i < graph$iterator.this$01.array.length;) { + graph = castTo($next_7(graph$iterator), 135); + size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); + if (xpos + size_0.x_0 > maxRowWidth) { + xpos = 0; + ypos += highestBox + spacing; + highestBox = 0; + } + $moveGraph_1(result, graph, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); + highestBox = $wnd.Math.max(highestBox, size_0.y_0); + xpos += size_0.x_0 + spacing; + } + propMerge = new HashMap; + debug = new HashMap; + for (tGraph$iterator = new ArrayList$1(components); tGraph$iterator.i < tGraph$iterator.this$01.array.length;) { + tGraph = castTo($next_7(tGraph$iterator), 135); + debugMode = $booleanValue(castToBoolean($getProperty(tGraph, ($clinit_CoreOptions() , DEBUG_MODE_3)))); + propComp = !tGraph.propertyMap?(null , EMPTY_MAP):tGraph.propertyMap; + for (entry$iterator = propComp.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + if ($containsKey_3(propMerge, entry.getKey())) { + if (maskUndefined(castTo(entry.getKey(), 146).getDefault()) !== maskUndefined(entry.getValue())) { + if (debugMode && $containsKey_3(debug, entry.getKey())) { + $clinit_System(); + 'Found different values for property ' + castTo(entry.getKey(), 146).getId() + ' in components.'; + } + else { + $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); + debugMode && $put_6(debug, castTo(entry.getKey(), 146), entry.getValue()); + } + } + } + else { + $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); + } + } + } + return result; +} + +function $split_4(this$static, graph){ + var comp, comp$iterator, components, id_0, node, node$iterator, node$iterator0, separate; + separate = castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , SEPARATE_CONNECTED_COMPONENTS_1))); + if (separate == null || (checkCriticalNotNull(separate) , separate)) { + $initialize_6(this$static, graph); + components = new ArrayList; + for (node$iterator0 = $listIterator_2(graph.nodes, 0); node$iterator0.currentNode != node$iterator0.this$01.tail;) { + node = castTo($next_10(node$iterator0), 86); + comp = $dfs_5(this$static, node, null); + if (comp) { + $copyProperties(comp, graph); + components.array[components.array.length] = comp; + } + } + this$static.incidence = null; + this$static.visited = null; + if (components.array.length > 1) { + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 135); + id_0 = 0; + for (node$iterator = $listIterator_2(comp.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit, 1), $intern_100, 135, 0, [graph])); +} + +function ComponentsProcessor_1(){ +} + +defineClass(1234, 1, {}, ComponentsProcessor_1); +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor', 1234); +function $compare_22(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0 - castTo($getProperty(graph1, PRIORITY_1), 19).value_0; + if (prio == 0) { + size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph1, BB_UPLEFT_0), 8)); + size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT_0), 8)), castTo($getProperty(graph2, BB_UPLEFT_0), 8)); + return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); + } + return prio; +} + +function ComponentsProcessor$1_0(){ +} + +defineClass(1235, 1, $intern_88, ComponentsProcessor$1_0); +_.compare_1 = function compare_77(graph1, graph2){ + return $compare_22(castTo(graph1, 135), castTo(graph2, 135)); +} +; +_.equals_0 = function equals_164(other){ + return this === other; +} +; +_.reversed = function reversed_69(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor/1', 1235); +function $applyLayout_4(tGraph){ + var bendPoints, edgeSection, elkedge, elkgraph, elknode, height, maxXPos, maxYPos, minXPos, minYPos, nodePos, object, offset, padding, pos, size_0, sourcePoint, tEdge, tEdge$iterator, tNode, tNode$iterator, tNode$iterator0, targetPoint, width_0; + elkgraph = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , ORIGIN_1)), 33); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_42; + maxYPos = $intern_42; + for (tNode$iterator0 = $listIterator_2(tGraph.nodes, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator0), 86); + pos = tNode.pos; + size_0 = tNode.size_0; + minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); + minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); + maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); + maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); + } + padding = castTo($getProperty_0(elkgraph, ($clinit_MrTreeOptions() , PADDING_2)), 116); + offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + object = $getProperty(tNode, ORIGIN_1); + if (instanceOf(object, 239)) { + elknode = castTo(object, 33); + nodePos = $add_19(tNode.pos, offset); + $setLocation_1(elknode, nodePos.x_0 - elknode.width_0 / 2, nodePos.y_0 - elknode.height / 2); + } + } + for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + elkedge = castTo($getProperty(tEdge, ORIGIN_1), 79); + if (elkedge) { + bendPoints = tEdge.bendPoints; + sourcePoint = new KVector_2(tEdge.source.pos); + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + targetPoint = new KVector_2(tEdge.target.pos); + $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); + toNodeBorder(sourcePoint, castTo($get_7(bendPoints, 1), 8), tEdge.source.size_0); + toNodeBorder(targetPoint, castTo($get_7(bendPoints, bendPoints.size_0 - 2), 8), tEdge.target.size_0); + edgeSection = firstEdgeSection(elkedge, true, true); + applyVectorChain(bendPoints, edgeSection); + } + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + resizeNode_1(elkgraph, width_0, height, false, false); +} + +function $transformEdges_1(parentNode, tGraph, elemMap){ + var elkedge, elkedge$iterator, elknode, elknode$iterator, newEdge, source, target; + for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { + elknode = castTo($doNext(elknode$iterator), 33); + for (elkedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(elkedge$iterator);) { + elkedge = castTo($next_0(elkedge$iterator), 79); + if (!$isHierarchical(elkedge) && !$isHierarchical(elkedge) && !$isSelfloop(elkedge)) { + source = castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, elknode)), 86); + target = castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))), 86); + if (!!source && !!target) { + newEdge = new TEdge_0(source, target); + $setProperty_0(newEdge, ($clinit_InternalProperties_2() , ORIGIN_1), elkedge); + $copyProperties(newEdge, elkedge); + $add_7(source.outgoingEdges, newEdge); + $add_7(target.incomingEdges, newEdge); + $add_7(tGraph.edges, newEdge); + } + } + } + } +} + +function $transformNodes_1(parentNode, tGraph, elemMap){ + var elknode, elknode$iterator, index_0, label_0, newNode; + index_0 = 0; + for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { + elknode = castTo($doNext(elknode$iterator), 33); + label_0 = ''; + (!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels).size_0 == 0 || (label_0 = castTo($get_20((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels), 0), 137).text_0); + newNode = new TNode(index_0++, tGraph, label_0); + $copyProperties(newNode, elknode); + $setProperty_0(newNode, ($clinit_InternalProperties_2() , ORIGIN_1), elknode); + newNode.pos.y_0 = elknode.y_0 + elknode.height / 2; + newNode.size_0.x_0 = $wnd.Math.max(elknode.width_0, 1); + newNode.pos.x_0 = elknode.x_0 + elknode.width_0 / 2; + newNode.size_0.y_0 = $wnd.Math.max(elknode.height, 1); + $add_7(tGraph.nodes, newNode); + $put_9(elemMap.hashCodeMap, elknode, newNode); + } +} + +function toNodeBorder(center, next, size_0){ + var absx, absy, hh, scale, wh, xscale, yscale; + wh = size_0.x_0 / 2; + hh = size_0.y_0 / 2; + absx = $wnd.Math.abs(next.x_0 - center.x_0); + absy = $wnd.Math.abs(next.y_0 - center.y_0); + xscale = 1; + yscale = 1; + absx > wh && (xscale = wh / absx); + absy > hh && (yscale = hh / absy); + scale = $wnd.Math.min(xscale, yscale); + center.x_0 += scale * (next.x_0 - center.x_0); + center.y_0 += scale * (next.y_0 - center.y_0); +} + +function $doLayout_0(this$static, tgraph, progressMonitor){ + $begin(progressMonitor, 'Tree layout', 1); + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_TreeLayoutPhases() , P1_TREEIFICATION), P1_TREEIFICATION); + $setPhase(this$static.algorithmAssembler, P2_NODE_ORDERING, P2_NODE_ORDERING); + $setPhase(this$static.algorithmAssembler, P3_NODE_PLACEMENT, P3_NODE_PLACEMENT); + $setPhase(this$static.algorithmAssembler, P4_EDGE_ROUTING, P4_EDGE_ROUTING); + this$static.algorithm = $build_0(this$static.algorithmAssembler, tgraph); + $layout_2(this$static, tgraph, $subTask(progressMonitor, 1)); + $done_0(progressMonitor); + return tgraph; +} + +function $layout_2(this$static, graph, themonitor){ + var i, monitor, processor, processor$iterator, slot; + monitor = themonitor; + !monitor && (monitor = new BasicProgressMonitor); + $begin(monitor, 'Layout', this$static.algorithm.array.length); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , DEBUG_MODE_0))))) { + $clinit_System(); + for (i = 0; i < this$static.algorithm.array.length; i++) { + slot = (i < 10?'0':'') + i++; + ' Slot ' + slot + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(castTo($get_11(this$static.algorithm, i), 51))); + } + } + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(monitor, 1)); + } + $done_0(monitor); +} + +function MrTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit); +} + +defineClass(1233, 1, {}, MrTree); +var Lorg_eclipse_elk_alg_mrtree_MrTree_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'MrTree', 1233); +function $clinit_TreeLayoutPhases(){ + $clinit_TreeLayoutPhases = emptyMethod; + P1_TREEIFICATION = new TreeLayoutPhases('P1_TREEIFICATION', 0); + P2_NODE_ORDERING = new TreeLayoutPhases('P2_NODE_ORDERING', 1); + P3_NODE_PLACEMENT = new TreeLayoutPhases('P3_NODE_PLACEMENT', 2); + P4_EDGE_ROUTING = new TreeLayoutPhases('P4_EDGE_ROUTING', 3); +} + +function $create_8(this$static){ + switch (this$static.ordinal) { + case 0: + return new DFSTreeifyer; + case 1: + return new NodeOrderer; + case 2: + return new NodePlacer; + case 3: + return new EdgeRouter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout phase ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function TreeLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_73(name_0){ + $clinit_TreeLayoutPhases(); + return valueOf(($clinit_TreeLayoutPhases$Map() , $MAP_61), name_0); +} + +function values_79(){ + $clinit_TreeLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]); +} + +defineClass(393, 22, {3:1, 35:1, 22:1, 393:1, 246:1, 234:1}, TreeLayoutPhases); +_.create_1 = function create_19(){ + return $create_8(this); +} +; +_.create_2 = function create_18(){ + return $create_8(this); +} +; +var P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree', 'TreeLayoutPhases', 393, Ljava_lang_Enum_2_classLit, values_79, valueOf_73); +function $clinit_TreeLayoutPhases$Map(){ + $clinit_TreeLayoutPhases$Map = emptyMethod; + $MAP_61 = createValueOfMap(($clinit_TreeLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]))); +} + +var $MAP_61; +function TreeLayoutProvider(){ + this.klayTree = new MrTree; + this.componentsProcessor = new ComponentsProcessor_1; +} + +defineClass(1130, 209, $intern_96, TreeLayoutProvider); +_.layout = function layout_3(layoutGraph, progressMonitor){ + var builder, comp, comp$iterator, components, tGraph, tGraph_0, elemMap; + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_MrTreeOptions() , OMIT_NODE_MICRO_LAYOUT_1)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + tGraph = (tGraph_0 = new TGraph , $copyProperties(tGraph_0, layoutGraph) , $setProperty_0(tGraph_0, ($clinit_InternalProperties_2() , ORIGIN_1), layoutGraph) , elemMap = new HashMap , $transformNodes_1(layoutGraph, tGraph_0, elemMap) , $transformEdges_1(layoutGraph, tGraph_0, elemMap) , tGraph_0); + components = $split_4(this.componentsProcessor, tGraph); + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 135); + $doLayout_0(this.klayTree, comp, $subTask(progressMonitor, 1 / components.array.length)); + } + tGraph = $pack(components); + $applyLayout_4(tGraph); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeLayoutProvider', 1130); +function getLeftMost(currentlevel, depth){ + var cN, cN$iterator, d, nextLevel; + if (0 < (instanceOf(currentlevel, 14)?castTo(currentlevel, 14).size_1():size_24(currentlevel.iterator_0()))) { + d = depth; + if (1 < d) { + --d; + nextLevel = new TreeUtil$1; + for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + return getLeftMost(nextLevel, d); + } + if (d < 0) { + nextLevel = new TreeUtil$2; + for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + if (0 < (instanceOf(nextLevel, 14)?castTo(nextLevel, 14).size_1():size_24(nextLevel.iterator_0()))) { + return getLeftMost(nextLevel, d); + } + } + } + return castTo(getNext(currentlevel.iterator_0()), 86); +} + +function TreeUtil$1(){ +} + +defineClass(1847, 1, $intern_23, TreeUtil$1); +_.forEach_0 = function forEach_31(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_73(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/1', 1847); +function TreeUtil$2(){ +} + +defineClass(1848, 1, $intern_23, TreeUtil$2); +_.forEach_0 = function forEach_32(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_74(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeUtil$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/2', 1848); +defineClass(502, 134, {3:1, 502:1, 94:1, 134:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraphElement', 502); +function TEdge_0(source, target){ + new LinkedList; + this.bendPoints = new KVectorChain; + this.source = source; + this.target = target; +} + +defineClass(188, 502, {3:1, 188:1, 502:1, 94:1, 134:1}, TEdge_0); +_.toString_0 = function toString_108(){ + return !!this.source && !!this.target?$toString_15(this.source) + '->' + $toString_15(this.target):'e_' + hashCode__I__devirtual$(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TEdge', 188); +function TGraph(){ + this.nodes = new LinkedList; + this.edges = new LinkedList; + this.nodes = new LinkedList; + this.edges = new LinkedList; +} + +defineClass(135, 134, {3:1, 135:1, 94:1, 134:1}, TGraph); +_.toString_0 = function toString_109(){ + var tEdge, tEdge$iterator, tNode, tNode$iterator, tmp; + tmp = null; + for (tNode$iterator = $listIterator_2(this.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + tmp += (tNode.label_0 == null || tNode.label_0.length == 0?'n_' + tNode.id_0:'n_' + tNode.label_0) + '\n'; + } + for (tEdge$iterator = $listIterator_2(this.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + tmp += (!!tEdge.source && !!tEdge.target?$toString_15(tEdge.source) + '->' + $toString_15(tEdge.target):'e_' + hashCode__I__devirtual$(tEdge)) + '\n'; + } + return tmp; +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraph', 135); +defineClass(633, 502, {3:1, 502:1, 633:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_mrtree_graph_TShape_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TShape', 633); +function $getChildrenCopy(this$static){ + var children, iEdge, iEdge$iterator; + children = new LinkedList; + for (iEdge$iterator = $listIterator_2(this$static.outgoingEdges, 0); iEdge$iterator.currentNode != iEdge$iterator.this$01.tail;) { + iEdge = castTo($next_10(iEdge$iterator), 188); + $add_7(children, iEdge.target); + } + return children; +} + +function $getParent(this$static){ + var edges; + edges = this$static.incomingEdges; + if (edges.size_0 == 0) { + return null; + } + return castTo($get_7(edges, 0), 188).source; +} + +function $toString_15(this$static){ + return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; +} + +function TNode(id_0, graph, label_0){ + this.id_0 = id_0; + this.pos = new KVector; + this.size_0 = new KVector; + this.outgoingEdges = new LinkedList; + this.incomingEdges = new LinkedList; + this.graph_0 = graph; + this.label_0 = label_0; +} + +defineClass(86, 633, {3:1, 502:1, 86:1, 633:1, 94:1, 134:1}, TNode); +_.toString_0 = function toString_110(){ + return $toString_15(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode', 86); +function TNode$2(this$0){ + this.this$01 = this$0; +} + +defineClass(255, 1, $intern_23, TNode$2); +_.forEach_0 = function forEach_33(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_75(){ + var edgesIter; + return edgesIter = $listIterator_2(this.this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2', 255); +function TNode$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(358, 1, $intern_6, TNode$2$1); +_.forEachRemaining = function forEachRemaining_50(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_40(){ + return castTo($next_10(this.val$edgesIter2), 188).target; +} +; +_.hasNext_0 = function hasNext_39(){ + return $hasNext_5(this.val$edgesIter2); +} +; +_.remove = function remove_95(){ + $remove_24(this.val$edgesIter2); +} +; +var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2/1', 358); +function $calculateFan(this$static, currentLevel){ + var blockSize, digits, edgesIter, gloValue, i, id_0, index_0, key, locEntry, locEntry$iterator, locFanMap, nextLevel, pId, tChild, tChild$iterator, tNode, tNode$iterator, tNode$iterator0; + if (currentLevel.size_0 != 0) { + nextLevel = new LinkedList; + id_0 = null; + pId = null; + digits = round_int($wnd.Math.floor($wnd.Math.log(currentLevel.size_0) * $wnd.Math.LOG10E) + 1); + index_0 = 0; + for (tNode$iterator0 = $listIterator_2(currentLevel, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator0), 86); + if (maskUndefined(pId) !== maskUndefined($getProperty(tNode, ($clinit_InternalProperties_2() , ID)))) { + pId = castToString($getProperty(tNode, ID)); + index_0 = 0; + } + pId != null?(id_0 = pId + formatRight(index_0++, digits)):(id_0 = formatRight(index_0++, digits)); + $setProperty_0(tNode, ID, id_0); + for (tChild$iterator = (edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter)); $hasNext_5(tChild$iterator.val$edgesIter2);) { + tChild = castTo($next_10(tChild$iterator.val$edgesIter2), 188).target; + $addNode_0(nextLevel, tChild, nextLevel.tail.prev, nextLevel.tail); + $setProperty_0(tChild, ID, id_0); + } + } + locFanMap = new HashMap; + for (i = 0; i < id_0.length - digits; i++) { + for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + key = $substring_1(castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))), 0, i + 1); + blockSize = (key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key)) != null?castTo(key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key), 19).value_0 + 1:1; + $putStringValue(locFanMap, key, valueOf_4(blockSize)); + } + } + for (locEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(locFanMap)).this$01); locEntry$iterator.hasNext;) { + locEntry = $next_4(locEntry$iterator); + gloValue = valueOf_4($get_10(this$static.gloDescMap, locEntry.getKey()) != null?castTo($get_10(this$static.gloDescMap, locEntry.getKey()), 19).value_0:0); + $putStringValue(this$static.gloDescMap, castToString(locEntry.getKey()), valueOf_4(castTo(locEntry.getValue(), 19).value_0 + gloValue.value_0)); + gloValue = castTo($get_10(this$static.gloFanMap, locEntry.getKey()), 19); + (!gloValue || gloValue.value_0 < castTo(locEntry.getValue(), 19).value_0) && $putStringValue(this$static.gloFanMap, castToString(locEntry.getKey()), castTo(locEntry.getValue(), 19)); + } + $calculateFan(this$static, nextLevel); + } +} + +function $process_79(this$static, tGraph, progressMonitor){ + var desc, fan, it, key, root, rootLevel, tNode, tNode$iterator; + $begin(progressMonitor, 'Processor compute fanout', 1); + $reset(this$static.gloFanMap); + $reset(this$static.gloDescMap); + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + rootLevel = new LinkedList; + $addNode_0(rootLevel, root, rootLevel.tail.prev, rootLevel.tail); + $calculateFan(this$static, rootLevel); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + key = castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))); + fan = $getStringValue(this$static.gloFanMap, key) != null?castTo($getStringValue(this$static.gloFanMap, key), 19).value_0:0; + $setProperty_0(tNode, FAN, valueOf_4(fan)); + desc = 1 + ($getStringValue(this$static.gloDescMap, key) != null?castTo($getStringValue(this$static.gloDescMap, key), 19).value_0:0); + $setProperty_0(tNode, DESCENDANTS, valueOf_4(desc)); + } + $done_0(progressMonitor); +} + +function FanProcessor(){ + this.gloFanMap = new HashMap; + this.gloDescMap = new HashMap; +} + +function formatRight(value_0, len){ + var s; + s = value_0 + ''; + while (s.length < len) { + s = '0' + s; + } + return s; +} + +defineClass(1840, 1, $intern_105, FanProcessor); +_.process = function process_75(tGraph, progressMonitor){ + $process_79(this, castTo(tGraph, 135), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_FanProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'FanProcessor', 1840); +function $clinit_IntermediateProcessorStrategy_0(){ + $clinit_IntermediateProcessorStrategy_0 = emptyMethod; + ROOT_PROC = new IntermediateProcessorStrategy_0('ROOT_PROC', 0); + FAN_PROC = new IntermediateProcessorStrategy_0('FAN_PROC', 1); + NEIGHBORS_PROC = new IntermediateProcessorStrategy_0('NEIGHBORS_PROC', 2); + LEVEL_HEIGHT = new IntermediateProcessorStrategy_0('LEVEL_HEIGHT', 3); + NODE_POSITION_PROC = new IntermediateProcessorStrategy_0('NODE_POSITION_PROC', 4); + DETREEIFYING_PROC = new IntermediateProcessorStrategy_0('DETREEIFYING_PROC', 5); +} + +function IntermediateProcessorStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_74(name_0){ + $clinit_IntermediateProcessorStrategy_0(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_0() , $MAP_62), name_0); +} + +function values_80(){ + $clinit_IntermediateProcessorStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]); +} + +defineClass(327, 22, {3:1, 35:1, 22:1, 327:1, 234:1}, IntermediateProcessorStrategy_0); +_.create_1 = function create_20(){ + switch (this.ordinal) { + case 0: + return new RootProcessor; + case 1: + return new FanProcessor; + case 2: + return new NeighborsProcessor; + case 3: + return new LevelHeightProcessor; + case 4: + return new NodePositionProcessor; + case 5: + return new Untreeifyer; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var DETREEIFYING_PROC, FAN_PROC, LEVEL_HEIGHT, NEIGHBORS_PROC, NODE_POSITION_PROC, ROOT_PROC; +var Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.intermediate', 'IntermediateProcessorStrategy', 327, Ljava_lang_Enum_2_classLit, values_80, valueOf_74); +function $clinit_IntermediateProcessorStrategy$Map_0(){ + $clinit_IntermediateProcessorStrategy$Map_0 = emptyMethod; + $MAP_62 = createValueOfMap(($clinit_IntermediateProcessorStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]))); +} + +var $MAP_62; +function $process_80(this$static, tGraph, progressMonitor){ + var it, root, tNode; + $begin(progressMonitor, 'Processor determine the height for each level', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors(this$static, newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_100, 86, 0, [root])), progressMonitor); + $done_0(progressMonitor); +} + +function $setNeighbors(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, cN$iterator0, height, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + $begin(sT, 'Set neighbors in level', 1); + nextLevel = new LevelHeightProcessor$1; + height = 0; + for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { + cN = castTo(cN$iterator0.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + height < cN.size_0.y_0 && (height = cN.size_0.y_0); + } + for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + $setProperty_0(cN, ($clinit_InternalProperties_2() , LEVELHEIGHT), height); + } + $done_0(sT); + $setNeighbors(this$static, nextLevel, progressMonitor); + } +} + +function LevelHeightProcessor(){ +} + +defineClass(1843, 1, $intern_105, LevelHeightProcessor); +_.process = function process_76(tGraph, progressMonitor){ + $process_80(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor', 1843); +function LevelHeightProcessor$1(){ +} + +defineClass(1844, 1, $intern_23, LevelHeightProcessor$1); +_.forEach_0 = function forEach_34(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_76(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor/1', 1844); +function $process_81(this$static, tGraph, progressMonitor){ + var it, root, tNode; + $begin(progressMonitor, 'Processor set neighbors', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors_0(this$static, new TNode$2(root), progressMonitor); + $done_0(progressMonitor); +} + +function $setNeighbors_0(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, lN, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + $begin(sT, 'Set neighbors in level', 1); + nextLevel = new NeighborsProcessor$1; + lN = null; + for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { + cN = castTo(cN$iterator.next_1(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + if (lN) { + $setProperty_0(lN, ($clinit_InternalProperties_2() , RIGHTNEIGHBOR), cN); + $setProperty_0(cN, LEFTNEIGHBOR, lN); + if ($getParent(cN) == $getParent(lN)) { + $setProperty_0(lN, RIGHTSIBLING, cN); + $setProperty_0(cN, LEFTSIBLING, lN); + } + } + lN = cN; + } + $done_0(sT); + $setNeighbors_0(this$static, nextLevel, progressMonitor); + } +} + +function NeighborsProcessor(){ +} + +defineClass(1841, 1, $intern_105, NeighborsProcessor); +_.process = function process_77(tGraph, progressMonitor){ + $process_81(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor', 1841); +function NeighborsProcessor$1(){ +} + +defineClass(1842, 1, $intern_23, NeighborsProcessor$1); +_.forEach_0 = function forEach_35(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_77(){ + return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor/1', 1842); +function $process_82(this$static, tGraph, progressMonitor){ + var it, pos, root, tNode; + $begin(progressMonitor, 'Processor set coordinates', 1); + this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; + root = null; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + if ($booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0))))) { + root = tNode; + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, XCOOR), 19).value_0; + pos.y_0 = 0; + } + } + $setCoordinates(this$static, $getChildrenCopy(root), $subTask(progressMonitor, 1)); + $done_0(progressMonitor); +} + +function $setCoordinates(this$static, currentLevel, progressMonitor){ + var nextLevel, pos, tNode, tNode$iterator; + if (currentLevel.size_0 != 0) { + nextLevel = new LinkedList; + for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + $addAll(nextLevel, $getChildrenCopy(tNode)); + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, ($clinit_InternalProperties_2() , XCOOR)), 19).value_0; + pos.y_0 = castTo($getProperty(tNode, YCOOR), 19).value_0; + } + $setCoordinates(this$static, nextLevel, $subTask(progressMonitor, nextLevel.size_0 / this$static.numberOfNodes | 0)); + } +} + +function NodePositionProcessor(){ +} + +defineClass(1845, 1, $intern_105, NodePositionProcessor); +_.process = function process_78(tGraph, progressMonitor){ + $process_82(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NodePositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NodePositionProcessor', 1845); +function $process_83(this$static, tGraph){ + var node, node$iterator, root, superRoot, tRoot, tRoot$iterator, newEdge; + this$static.roots.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + if (node.incomingEdges.size_0 == 0) { + $setProperty_0(node, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $add_3(this$static.roots, node); + } + } + switch (this$static.roots.array.length) { + case 0: + root = new TNode(0, tGraph, 'DUMMY_ROOT'); + $setProperty_0(root, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $setProperty_0(root, DUMMY, true); + $add_7(tGraph.nodes, root); + break; + case 1: + break; + default:superRoot = new TNode(0, tGraph, 'SUPER_ROOT'); + for (tRoot$iterator = new ArrayList$1(this$static.roots); tRoot$iterator.i < tRoot$iterator.this$01.array.length;) { + tRoot = castTo($next_7(tRoot$iterator), 86); + newEdge = new TEdge_0(superRoot, tRoot); + $setProperty_0(newEdge, ($clinit_InternalProperties_2() , DUMMY), ($clinit_Boolean() , true)); + $add_7(superRoot.graph_0.edges, newEdge); + $add_7(superRoot.outgoingEdges, newEdge); + $add_7(tRoot.incomingEdges, newEdge); + $setProperty_0(tRoot, ROOT_0, false); + } + + $setProperty_0(superRoot, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); + $setProperty_0(superRoot, DUMMY, true); + $add_7(tGraph.nodes, superRoot); + } +} + +function RootProcessor(){ + this.roots = new ArrayList; +} + +defineClass(1839, 1, $intern_105, RootProcessor); +_.process = function process_79(tGraph, progressMonitor){ + $process_83(this, castTo(tGraph, 135)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_RootProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'RootProcessor', 1839); +function $process_84(tGraph){ + var edges, tEdge, tEdge$iterator; + edges = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES)), 15); + for (tEdge$iterator = edges.iterator_0(); tEdge$iterator.hasNext_0();) { + tEdge = castTo(tEdge$iterator.next_1(), 188); + $add_7(tEdge.source.outgoingEdges, tEdge); + $add_7(tEdge.target.incomingEdges, tEdge); + } +} + +function Untreeifyer(){ +} + +defineClass(1846, 1, $intern_105, Untreeifyer); +_.process = function process_80(tGraph, progressMonitor){ + $process_84(castTo(tGraph, 135)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_Untreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'Untreeifyer', 1846); +function $clinit_InternalProperties_2(){ + $clinit_InternalProperties_2 = emptyMethod; + ORIGIN_1 = new Property('origin'); + new Property('random'); + new Property_0('DEPTH', valueOf_4(0)); + FAN = new Property_0('FAN', valueOf_4(0)); + DESCENDANTS = new Property_0('DESCENDANTS', valueOf_4(0)); + ROOT_0 = new Property_0('ROOT', ($clinit_Boolean() , false)); + LEFTNEIGHBOR = new Property_0('LEFTNEIGHBOR', null); + RIGHTNEIGHBOR = new Property_0('RIGHTNEIGHBOR', null); + LEFTSIBLING = new Property_0('LEFTSIBLING', null); + RIGHTSIBLING = new Property_0('RIGHTSIBLING', null); + DUMMY = new Property_0('DUMMY', false); + new Property_0('LEVEL', valueOf_4(0)); + REMOVABLE_EDGES = new Property_0('REMOVABLE_EDGES', new LinkedList); + XCOOR = new Property_0('XCOOR', valueOf_4(0)); + YCOOR = new Property_0('YCOOR', valueOf_4(0)); + LEVELHEIGHT = new Property_0('LEVELHEIGHT', 0); + ID = new Property_0('ID', ''); + POSITION_0 = new Property_0('POSITION', valueOf_4(0)); + PRELIM = new Property_0('PRELIM', 0); + MODIFIER = new Property_0('MODIFIER', 0); + BB_UPLEFT_0 = new Property('boundingBox.upLeft'); + BB_LOWRIGHT_0 = new Property('boundingBox.lowRight'); +} + +var BB_LOWRIGHT_0, BB_UPLEFT_0, DESCENDANTS, DUMMY, FAN, ID, LEFTNEIGHBOR, LEFTSIBLING, LEVELHEIGHT, MODIFIER, ORIGIN_1, POSITION_0, PRELIM, REMOVABLE_EDGES, RIGHTNEIGHBOR, RIGHTSIBLING, ROOT_0, XCOOR, YCOOR; +function $clinit_MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider = emptyMethod; + WEIGHTING_DEFAULT = ($clinit_OrderWeighting() , DESCENDANTS_0); + WEIGHTING = new Property_1('org.eclipse.elk.mrtree.weighting', WEIGHTING_DEFAULT); + SEARCH_ORDER_DEFAULT = ($clinit_TreeifyingOrder() , DFS); + SEARCH_ORDER = new Property_1('org.eclipse.elk.mrtree.searchOrder', SEARCH_ORDER_DEFAULT); +} + +function MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider(); +} + +defineClass(851, 1, $intern_90, MrTreeMetaDataProvider); +_.apply_4 = function apply_157(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.weighting'), ''), 'Weighting of Nodes'), 'Which weighting to use when computing a node order.'), WEIGHTING_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.searchOrder'), ''), 'Search Order'), 'Which search order to use when computing a spanning tree.'), SEARCH_ORDER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit), of_1(PARENTS)))); + $apply_19((new MrTreeOptions , registry)); +} +; +var SEARCH_ORDER, SEARCH_ORDER_DEFAULT, WEIGHTING, WEIGHTING_DEFAULT; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeMetaDataProvider', 851); +function $clinit_MrTreeOptions(){ + $clinit_MrTreeOptions = emptyMethod; + PADDING_DEFAULT_1 = new ElkPadding_0(20); + PADDING_2 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_1); + SPACING_NODE_NODE_1 = new Property_2(SPACING_NODE_NODE_6, 20); + ASPECT_RATIO_2 = new Property_2(ASPECT_RATIO_5, $intern_102); + PRIORITY_1 = new Property_2(PRIORITY_3, valueOf_4(1)); + SEPARATE_CONNECTED_COMPONENTS_1 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + DEBUG_MODE_0 = DEBUG_MODE_3; + NODE_SIZE_CONSTRAINTS_2 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_1 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_2 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_2 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_1 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_2 = PORT_LABELS_PLACEMENT_5; + WEIGHTING_0 = ($clinit_MrTreeMetaDataProvider() , WEIGHTING); + SEARCH_ORDER_0 = SEARCH_ORDER; +} + +function $apply_19(registry){ + $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.mrtree'), 'ELK Mr. Tree'), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new MrTreeOptions$MrtreeFactory), 'org.eclipse.elk.tree'), of_1(($clinit_GraphFeature() , DISCONNECTED))))); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.padding', PADDING_DEFAULT_1); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.spacing.nodeNode', 20); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.priority', valueOf_4(1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_1)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.weighting', $getDefault(WEIGHTING_0)); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.searchOrder', $getDefault(SEARCH_ORDER_0)); +} + +function MrTreeOptions(){ + $clinit_MrTreeOptions(); +} + +defineClass(994, 1, $intern_90, MrTreeOptions); +_.apply_4 = function apply_158(registry){ + $apply_19(registry); +} +; +var ASPECT_RATIO_2, DEBUG_MODE_0, NODE_LABELS_PLACEMENT_2, NODE_SIZE_CONSTRAINTS_2, NODE_SIZE_MINIMUM_1, NODE_SIZE_OPTIONS_2, OMIT_NODE_MICRO_LAYOUT_1, PADDING_2, PADDING_DEFAULT_1, PORT_LABELS_PLACEMENT_2, PRIORITY_1, SEARCH_ORDER_0, SEPARATE_CONNECTED_COMPONENTS_1, SPACING_NODE_NODE_1, WEIGHTING_0; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions', 994); +function MrTreeOptions$MrtreeFactory(){ +} + +defineClass(995, 1, {}, MrTreeOptions$MrtreeFactory); +_.create_0 = function create_21(){ + var provider; + return provider = new TreeLayoutProvider , provider; +} +; +_.destroy = function destroy_3(obj){ +} +; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions$MrtreeFactory_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions/MrtreeFactory', 995); +function $clinit_OrderWeighting(){ + $clinit_OrderWeighting = emptyMethod; + DESCENDANTS_0 = new OrderWeighting('DESCENDANTS', 0); + FAN_0 = new OrderWeighting('FAN', 1); +} + +function OrderWeighting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_75(name_0){ + $clinit_OrderWeighting(); + return valueOf(($clinit_OrderWeighting$Map() , $MAP_63), name_0); +} + +function values_81(){ + $clinit_OrderWeighting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]); +} + +defineClass(480, 22, {3:1, 35:1, 22:1, 480:1}, OrderWeighting); +var DESCENDANTS_0, FAN_0; +var Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'OrderWeighting', 480, Ljava_lang_Enum_2_classLit, values_81, valueOf_75); +function $clinit_OrderWeighting$Map(){ + $clinit_OrderWeighting$Map = emptyMethod; + $MAP_63 = createValueOfMap(($clinit_OrderWeighting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]))); +} + +var $MAP_63; +function $clinit_TreeifyingOrder(){ + $clinit_TreeifyingOrder = emptyMethod; + DFS = new TreeifyingOrder('DFS', 0); + BFS = new TreeifyingOrder('BFS', 1); +} + +function TreeifyingOrder(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_76(name_0){ + $clinit_TreeifyingOrder(); + return valueOf(($clinit_TreeifyingOrder$Map() , $MAP_64), name_0); +} + +function values_82(){ + $clinit_TreeifyingOrder(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]); +} + +defineClass(425, 22, {3:1, 35:1, 22:1, 425:1}, TreeifyingOrder); +var BFS, DFS; +var Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'TreeifyingOrder', 425, Ljava_lang_Enum_2_classLit, values_82, valueOf_76); +function $clinit_TreeifyingOrder$Map(){ + $clinit_TreeifyingOrder$Map = emptyMethod; + $MAP_64 = createValueOfMap(($clinit_TreeifyingOrder() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]))); +} + +var $MAP_64; +function $clinit_DFSTreeifyer(){ + $clinit_DFSTreeifyer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG = $addAfter(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P4_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy_0() , DETREEIFYING_PROC)); +} + +function $bfs(this$static, startNode){ + var node, nodeQueue, tEdge, tEdge$iterator, target; + nodeQueue = new LinkedList; + $addNode_0(nodeQueue, startNode, nodeQueue.tail.prev, nodeQueue.tail); + do { + node = (checkCriticalElement(nodeQueue.size_0 != 0) , castTo($removeNode_0(nodeQueue, nodeQueue.header.next_0), 86)); + this$static.visited[node.id_0] = 1; + for (tEdge$iterator = $listIterator_2(node.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + target = tEdge.target; + this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$addNode_0(nodeQueue, target, nodeQueue.tail.prev, nodeQueue.tail); + } + } + while (nodeQueue.size_0 != 0); +} + +function $collectEdges(this$static, tGraph){ + var tEdge, tEdge$iterator, tNode, tNode$iterator, treeifyingOrder; + treeifyingOrder = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , SEARCH_ORDER_0)), 425); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + if (this$static.visited[tNode.id_0] == 0) { + switch (treeifyingOrder.ordinal) { + case 0: + $dfs_6(this$static, tNode); + break; + case 1: + $bfs(this$static, tNode); + } + this$static.visited[tNode.id_0] = 2; + } + } + for (tEdge$iterator = $listIterator_2(this$static.eliminated, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + $advanceToFind(tEdge.source.outgoingEdges, tEdge, true); + $advanceToFind(tEdge.target.incomingEdges, tEdge, true); + } + $setProperty_0(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES), this$static.eliminated); +} + +function $dfs_6(this$static, tNode){ + var tEdge, tEdge$iterator, target; + this$static.visited[tNode.id_0] = 1; + for (tEdge$iterator = $listIterator_2(tNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + target = tEdge.target; + this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$dfs_6(this$static, target); + } +} + +function $init_1(this$static, tGraph){ + var id_0, node, node$iterator, size_0; + size_0 = tGraph.nodes.size_0; + this$static.eliminated = new LinkedList; + this$static.visited = initUnidimensionalArray(I_classLit, $intern_48, 25, size_0, 15, 1); + id_0 = 0; + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + node.id_0 = id_0++; + } +} + +function $process_85(this$static, tGraph, progressMonitor){ + $begin(progressMonitor, 'DFS Treeifying phase', 1); + $init_1(this$static, tGraph); + $collectEdges(this$static, tGraph); + this$static.eliminated = null; + this$static.visited = null; + $done_0(progressMonitor); +} + +function DFSTreeifyer(){ + $clinit_DFSTreeifyer(); +} + +defineClass(1459, 1, $intern_113, DFSTreeifyer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_20(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG; +} +; +_.process = function process_81(tGraph, progressMonitor){ + $process_85(this, castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG; +var Lorg_eclipse_elk_alg_mrtree_p1treeify_DFSTreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p1treeify', 'DFSTreeifyer', 1459); +function $clinit_NodeOrderer(){ + $clinit_NodeOrderer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_0 = $add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING)), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), FAN_PROC); +} + +function $orderLevel(this$static, currentLevel, progressMonitor){ + var children, fillGap, firstOcc, inners, it, leaves, notNull, pos, size_0, sortedOutEdges, tENode, tENode$iterator, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$iterator, tmp; + $begin(progressMonitor, 'Processor arrange level', 1); + pos = 0; + $clinit_Collections(); + $sort_0(currentLevel, new PropertyHolderComparator(($clinit_InternalProperties_2() , FAN))); + firstOcc = currentLevel.size_0; + it = $listIterator_2(currentLevel, currentLevel.size_0); + notNull = true; + while (notNull && it.currentNode.prev != it.this$01.header) { + tNode = castTo($previous_0(it), 86); + castTo($getProperty(tNode, FAN), 19).value_0 == 0?--firstOcc:(notNull = false); + } + tmp = new AbstractList$SubList(currentLevel, 0, firstOcc); + inners = new LinkedList_0(tmp); + tmp = new AbstractList$SubList(currentLevel, firstOcc, currentLevel.size_0); + leaves = new LinkedList_0(tmp); + if (inners.size_0 == 0) { + for (tENode$iterator = $listIterator_2(leaves, 0); tENode$iterator.currentNode != tENode$iterator.this$01.tail;) { + tENode = castTo($next_10(tENode$iterator), 86); + $setProperty_0(tENode, POSITION_0, valueOf_4(pos++)); + } + } + else { + size_0 = inners.size_0; + for (tPNode$iterator = $listIterator_2(inners, 0); tPNode$iterator.currentNode != tPNode$iterator.this$01.tail;) { + tPNode = castTo($next_10(tPNode$iterator), 86); + $setProperty_0(tPNode, POSITION_0, valueOf_4(pos++)); + children = $getChildrenCopy(tPNode); + $orderLevel(this$static, children, $subTask(progressMonitor, 1 / size_0 | 0)); + $sort_0(children, reverseOrder(new PropertyHolderComparator(POSITION_0))); + sortedOutEdges = new LinkedList; + for (tNode$iterator = $listIterator_2(children, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + tEdge.target == tNode && ($addNode_0(sortedOutEdges, tEdge, sortedOutEdges.tail.prev, sortedOutEdges.tail) , true); + } + } + $reset_0(tPNode.outgoingEdges); + $addAll(tPNode.outgoingEdges, sortedOutEdges); + it = $listIterator_2(leaves, leaves.size_0); + fillGap = tPNode.outgoingEdges.size_0; + notNull = true; + while (0 < fillGap && notNull && it.currentNode.prev != it.this$01.header) { + tNode = castTo($previous_0(it), 86); + if (castTo($getProperty(tNode, FAN), 19).value_0 == 0) { + $setProperty_0(tNode, POSITION_0, valueOf_4(pos++)); + --fillGap; + $remove_24(it); + } + else { + notNull = false; + } + } + } + } + $done_0(progressMonitor); +} + +function $process_86(this$static, tGraph, progressMonitor){ + var it, root, roots, tNode; + $begin(progressMonitor, 'Processor arrange node', 1); + root = null; + roots = new LinkedList; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + $addNode_0(roots, root, roots.tail.prev, roots.tail); + $orderLevel(this$static, roots, $subTask(progressMonitor, 1)); + $done_0(progressMonitor); +} + +function NodeOrderer(){ + $clinit_NodeOrderer(); +} + +defineClass(1460, 1, $intern_113, NodeOrderer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_21(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_0; +} +; +_.process = function process_82(tGraph, progressMonitor){ + $process_86(this, castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_0; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer', 1460); +function $clinit_NodePlacer(){ + $clinit_NodePlacer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_1 = $addBefore($add_17($add_17($before($addBefore(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), P3_NODE_PLACEMENT), LEVEL_HEIGHT), NEIGHBORS_PROC), P4_EDGE_ROUTING, NODE_POSITION_PROC); +} + +function $apportion(this$static, cN){ + var ancestorLeftmost, ancestorNeighbor, compareDepth, edgesIter, edgesIter0, i, leftModSum, leftSibling, leftSiblings, leftmost, mean, moveDistance, neighbor, newMod, newPr, portion, prL, prN, rightModSum; + leftmost = castTo(getNext((edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0))), 86); + neighbor = leftmost?castTo($getProperty(leftmost, ($clinit_InternalProperties_2() , LEFTNEIGHBOR)), 86):null; + compareDepth = 1; + while (!!leftmost && !!neighbor) { + leftModSum = 0; + rightModSum = 0; + ancestorLeftmost = leftmost; + ancestorNeighbor = neighbor; + for (i = 0; i < compareDepth; i++) { + ancestorLeftmost = $getParent(ancestorLeftmost); + ancestorNeighbor = $getParent(ancestorNeighbor); + rightModSum += $doubleValue(castToDouble($getProperty(ancestorLeftmost, ($clinit_InternalProperties_2() , MODIFIER)))); + leftModSum += $doubleValue(castToDouble($getProperty(ancestorNeighbor, MODIFIER))); + } + prN = $doubleValue(castToDouble($getProperty(neighbor, ($clinit_InternalProperties_2() , PRELIM)))); + prL = $doubleValue(castToDouble($getProperty(leftmost, PRELIM))); + mean = $meanNodeWidth(leftmost, neighbor); + moveDistance = prN + leftModSum + this$static.spacing + mean - prL - rightModSum; + if (0 < moveDistance) { + leftSibling = cN; + leftSiblings = 0; + while (!!leftSibling && leftSibling != ancestorNeighbor) { + ++leftSiblings; + leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); + } + if (leftSibling) { + portion = moveDistance / leftSiblings; + leftSibling = cN; + while (leftSibling != ancestorNeighbor) { + newPr = $doubleValue(castToDouble($getProperty(leftSibling, PRELIM))) + moveDistance; + $setProperty_0(leftSibling, PRELIM, newPr); + newMod = $doubleValue(castToDouble($getProperty(leftSibling, MODIFIER))) + moveDistance; + $setProperty_0(leftSibling, MODIFIER, newMod); + moveDistance -= portion; + leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); + } + } + else { + return; + } + } + ++compareDepth; + leftmost.outgoingEdges.size_0 == 0?(leftmost = getLeftMost(new TNode$2(cN), compareDepth)):(leftmost = castTo(getNext((edgesIter = $listIterator_2((new TNode$2(leftmost)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86)); + neighbor = leftmost?castTo($getProperty(leftmost, LEFTNEIGHBOR), 86):null; + } +} + +function $firstWalk(this$static, cN){ + var child, child$iterator, edgesIter, edgesIter0, edgesIter1, lM, lS, midPoint, p, rM; + $setProperty_0(cN, ($clinit_InternalProperties_2() , MODIFIER), 0); + lS = castTo($getProperty(cN, LEFTSIBLING), 86); + if (cN.outgoingEdges.size_0 == 0) { + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); + $setProperty_0(cN, PRELIM, p); + } + else { + $setProperty_0(cN, PRELIM, 0); + } + } + else { + for (child$iterator = (edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0)); $hasNext_5(child$iterator.val$edgesIter2);) { + child = castTo($next_10(child$iterator.val$edgesIter2), 188).target; + $firstWalk(this$static, child); + } + lM = castTo(getNext((edgesIter1 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter1))), 86); + rM = castTo(getLast_1((edgesIter = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86); + midPoint = ($doubleValue(castToDouble($getProperty(rM, PRELIM))) + $doubleValue(castToDouble($getProperty(lM, PRELIM)))) / 2; + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); + $setProperty_0(cN, PRELIM, p); + $setProperty_0(cN, MODIFIER, $doubleValue(castToDouble($getProperty(cN, PRELIM))) - midPoint); + $apportion(this$static, cN); + } + else { + $setProperty_0(cN, PRELIM, midPoint); + } + } +} + +function $meanNodeWidth(leftNode, rightNode){ + var nodeWidth; + nodeWidth = 0; + !!leftNode && (nodeWidth += leftNode.size_0.x_0 / 2); + !!rightNode && (nodeWidth += rightNode.size_0.x_0 / 2); + return nodeWidth; +} + +function $process_87(this$static, tGraph, progressMonitor){ + var root, roots, tNode, tNode$iterator; + $begin(progressMonitor, 'Processor order nodes', 2); + this$static.spacing = $doubleValue(castToDouble($getProperty(tGraph, ($clinit_MrTreeOptions() , SPACING_NODE_NODE_1)))); + roots = new LinkedList; + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && ($addNode_0(roots, tNode, roots.tail.prev, roots.tail) , true); + } + root = (checkCriticalElement(roots.size_0 != 0) , castTo(roots.header.next_0.value_0, 86)); + $firstWalk(this$static, root); + !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); + $secondWalk(this$static, root, 0 - $doubleValue(castToDouble($getProperty(root, ($clinit_InternalProperties_2() , LEVELHEIGHT)))) / 2, 0); + !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); + $done_0(progressMonitor); +} + +function $secondWalk(this$static, tNode, yCoor, modsum){ + var edgesIter, xTemp, yTemp; + if (tNode) { + xTemp = $doubleValue(castToDouble($getProperty(tNode, ($clinit_InternalProperties_2() , PRELIM)))) + modsum; + yTemp = yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) / 2; + $setProperty_0(tNode, XCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(xTemp))))); + $setProperty_0(tNode, YCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(yTemp))))); + tNode.outgoingEdges.size_0 == 0 || $secondWalk(this$static, castTo(getNext((edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86), yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) + this$static.spacing, modsum + $doubleValue(castToDouble($getProperty(tNode, MODIFIER)))); + $getProperty(tNode, RIGHTSIBLING) != null && $secondWalk(this$static, castTo($getProperty(tNode, RIGHTSIBLING), 86), yCoor, modsum); + } +} + +function NodePlacer(){ + $clinit_NodePlacer(); +} + +defineClass(1461, 1, $intern_113, NodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_22(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_1; +} +; +_.process = function process_83(tGraph, progressMonitor){ + $process_87(this, castTo(tGraph, 135), progressMonitor); +} +; +_.spacing = 0; +var INTERMEDIATE_PROCESSING_CONFIG_1; +var Lorg_eclipse_elk_alg_mrtree_p3place_NodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p3place', 'NodePlacer', 1461); +function $clinit_EdgeRouter(){ + $clinit_EdgeRouter = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_2 = new LayoutProcessorConfiguration; +} + +function $process_88(tGraph, progressMonitor){ + var tedge, tedge$iterator, tnode, tnode$iterator; + $begin(progressMonitor, 'Dull edge routing', 1); + for (tnode$iterator = $listIterator_2(tGraph.nodes, 0); tnode$iterator.currentNode != tnode$iterator.this$01.tail;) { + tnode = castTo($next_10(tnode$iterator), 86); + for (tedge$iterator = $listIterator_2(tnode.outgoingEdges, 0); tedge$iterator.currentNode != tedge$iterator.this$01.tail;) { + tedge = castTo($next_10(tedge$iterator), 188); + $reset_0(tedge.bendPoints); + } + } +} + +function EdgeRouter(){ + $clinit_EdgeRouter(); +} + +defineClass(1462, 1, $intern_113, EdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_23(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_2; +} +; +_.process = function process_84(tGraph, progressMonitor){ + $process_88(castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_2; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter', 1462); +function $clinit_InternalProperties_3(){ + $clinit_InternalProperties_3 = emptyMethod; + ROOT_NODE = new Property('root'); +} + +var ROOT_NODE; +function $clinit_RadialLayoutPhases(){ + $clinit_RadialLayoutPhases = emptyMethod; + P1_NODE_PLACEMENT = new RadialLayoutPhases('P1_NODE_PLACEMENT', 0); + P2_EDGE_ROUTING = new RadialLayoutPhases('P2_EDGE_ROUTING', 1); +} + +function $create_9(this$static){ + switch (this$static.ordinal) { + case 0: + return new EadesRadial; + case 1: + return new StraightLineEdgeRouter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function RadialLayoutPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_77(name_0){ + $clinit_RadialLayoutPhases(); + return valueOf(($clinit_RadialLayoutPhases$Map() , $MAP_65), name_0); +} + +function values_83(){ + $clinit_RadialLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]); +} + +defineClass(495, 22, {3:1, 35:1, 22:1, 495:1, 246:1, 234:1}, RadialLayoutPhases); +_.create_1 = function create_23(){ + return $create_9(this); +} +; +_.create_2 = function create_22(){ + return $create_9(this); +} +; +var P1_NODE_PLACEMENT, P2_EDGE_ROUTING; +var Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.radial', 'RadialLayoutPhases', 495, Ljava_lang_Enum_2_classLit, values_83, valueOf_77); +function $clinit_RadialLayoutPhases$Map(){ + $clinit_RadialLayoutPhases$Map = emptyMethod; + $MAP_65 = createValueOfMap(($clinit_RadialLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]))); +} + +var $MAP_65; +function $assembleAlgorithm(this$static, layoutGraph){ + var algorithm, configuration; + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_RadialLayoutPhases() , P1_NODE_PLACEMENT), P1_NODE_PLACEMENT); + $setPhase(this$static.algorithmAssembler, P2_EDGE_ROUTING, P2_EDGE_ROUTING); + configuration = new LayoutProcessorConfiguration; + $addBefore(configuration, P2_EDGE_ROUTING, ($clinit_IntermediateProcessorStrategy_1() , OVERLAP_REMOVAL)); + maskUndefined($getProperty_0(layoutGraph, ($clinit_RadialOptions() , COMPACTOR_0))) !== maskUndefined(($clinit_CompactionStrategy_0() , NONE_11)) && $addBefore(configuration, P2_EDGE_ROUTING, COMPACTION); + $addBefore(configuration, P2_EDGE_ROUTING, GRAPH_SIZE_CALCULATION); + $addProcessorConfiguration(this$static.algorithmAssembler, configuration); + algorithm = $build_0(this$static.algorithmAssembler, layoutGraph); + return algorithm; +} + +function RadialLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit); +} + +defineClass(1131, 209, $intern_96, RadialLayoutProvider); +_.layout = function layout_4(layoutGraph, progressMonitor){ + var algorithm, builder, layoutRadius, processor, processor$iterator, root; + algorithm = $assembleAlgorithm(this, layoutGraph); + $begin(progressMonitor, 'Radial layout', algorithm.array.length); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_RadialOptions() , OMIT_NODE_MICRO_LAYOUT_2)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + root = findRoot(layoutGraph); + $setProperty_1(layoutGraph, ($clinit_InternalProperties_3() , ROOT_NODE), root); + if (!root) { + throw toJs(new IllegalArgumentException_0('The given graph is not a tree!')); + } + layoutRadius = $doubleValue(castToDouble($getProperty_0(layoutGraph, RADIUS_0))); + layoutRadius == 0 && (layoutRadius = findLargestNodeInGraph(layoutGraph)); + $setProperty_1(layoutGraph, RADIUS_0, layoutRadius); + for (processor$iterator = new ArrayList$1($assembleAlgorithm(this, layoutGraph)); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(layoutGraph, $subTask(progressMonitor, 1)); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_RadialLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialLayoutProvider', 1131); +function findLargestNodeInGraph(graph){ + var child, child$iterator, diameter, height, largestChild, largestChildSize, width_0; + largestChildSize = 0; + for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + width_0 = child.width_0; + height = child.height; + diameter = $wnd.Math.sqrt(width_0 * width_0 + height * height); + largestChildSize = $wnd.Math.max(diameter, largestChildSize); + largestChild = findLargestNodeInGraph(child); + largestChildSize = $wnd.Math.max(largestChild, largestChildSize); + } + return largestChildSize; +} + +function findRoot(graph){ + var child, child$iterator, incomingEdges; + for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + incomingEdges = allIncomingEdges(child); + if (!$hasNext_1(new Iterators$ConcatenatedIterator(transform_2(incomingEdges.val$inputs1.iterator_0(), new Iterables$10)))) { + return child; + } + } + return null; +} + +function findRootOfNode(elkNode){ + var parent_0; + parent_0 = getTreeParent(elkNode); + return !parent_0?elkNode:findRootOfNode(parent_0); +} + +function getNextLevelNodeSet(nodes){ + var nextLevelSet, node, node$iterator, successors; + successors = new HashSet; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + nextLevelSet = getSuccessorSet(node); + $addAll(successors, nextLevelSet); + } + return successors; +} + +function getNextLevelNodes(nodes){ + var nextLevelNodes, node, node$iterator, successors; + successors = new ArrayList; + for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + nextLevelNodes = getSuccessors(node); + $addAll_2(successors, nextLevelNodes); + } + return successors; +} + +function getNumberOfLeaves(node){ + var child, child$iterator, leafs, successors; + leafs = 0; + successors = getSuccessors(node); + if (successors.array.length == 0) { + return 1; + } + else { + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 33); + leafs += getNumberOfLeaves(child); + } + } + return leafs; +} + +function getSuccessorSet(node){ + var children, old, outgoingEdge, outgoingEdge$iterator, successors, target; + successors = new HashSet; + children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { + target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); + children.map_0.containsKey(target) || (old = successors.map_0.put(target, successors) , old == null); + } + } + return successors; +} + +function getSuccessors(node){ + var children, outgoingEdge, outgoingEdge$iterator, successors, target; + successors = new ArrayList; + children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { + outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { + target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); + children.map_0.containsKey(target) || (successors.array[successors.array.length] = target , true); + } + } + return successors; +} + +function getTreeParent(node){ + var edgeFromParent, iterator; + iterator = allIncomingEdges(node); + if (isEmpty_13(iterator)) { + return null; + } + else { + edgeFromParent = (checkNotNull(iterator) , castTo(get_22(new Iterators$ConcatenatedIterator(transform_2(iterator.val$inputs1.iterator_0(), new Iterables$10))), 79)); + return connectableShapeToNode(castTo($get_20((!edgeFromParent.sources && (edgeFromParent.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edgeFromParent, 4, 7)) , edgeFromParent.sources), 0), 82)); + } +} + +function lambda$0_30(nodeOffsetY_0, radialOffset_2, node1_2, node2_3){ + var arc1, arc2, position1, position2, xPos1, xPos2, yPos1, yPos2; + position1 = castTo($getProperty_0(node1_2, ($clinit_CoreOptions() , POSITION_2)), 8); + xPos1 = position1.x_0; + yPos1 = position1.y_0 + nodeOffsetY_0; + arc1 = $wnd.Math.atan2(yPos1, xPos1); + arc1 < 0 && (arc1 += $intern_123); + arc1 += radialOffset_2; + arc1 > $intern_123 && (arc1 -= $intern_123); + position2 = castTo($getProperty_0(node2_3, POSITION_2), 8); + xPos2 = position2.x_0; + yPos2 = position2.y_0 + nodeOffsetY_0; + arc2 = $wnd.Math.atan2(yPos2, xPos2); + arc2 < 0 && (arc2 += $intern_123); + arc2 += radialOffset_2; + arc2 > $intern_123 && (arc2 -= $intern_123); + return $clinit_DoubleMath() , checkNonNegative(1.0E-10) , $wnd.Math.abs(arc1 - arc2) <= 1.0E-10 || arc1 == arc2 || isNaN(arc1) && isNaN(arc2)?0:arc1 < arc2?-1:arc1 > arc2?1:compare_0(isNaN(arc1), isNaN(arc2)); +} + +function RadialUtil$lambda$0$Type(radialOffset_2){ + this.nodeOffsetY_0 = 0; + this.radialOffset_2 = radialOffset_2; +} + +defineClass(549, 1, $intern_88, RadialUtil$lambda$0$Type); +_.compare_1 = function compare_78(arg0, arg1){ + return lambda$0_30(this.nodeOffsetY_0, this.radialOffset_2, castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_165(other){ + return this === other; +} +; +_.reversed = function reversed_70(){ + return new Comparators$ReversedComparator(this); +} +; +_.nodeOffsetY_0 = 0; +_.radialOffset_2 = 0; +var Lorg_eclipse_elk_alg_radial_RadialUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialUtil/lambda$0$Type', 549); +function $process_89(graph, progressMonitor){ + var height, height0, margins, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, node$iterator0, offset, padding, posX, posY, width_0, width0; + $begin(progressMonitor, 'Calculate Graph Size', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + minXPos = $intern_98; + minYPos = $intern_98; + maxXPos = $intern_124; + maxYPos = $intern_124; + for (node$iterator0 = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 33); + posX = node.x_0; + posY = node.y_0; + width0 = node.width_0; + height0 = node.height; + margins = castTo($getProperty_0(node, ($clinit_CoreOptions() , MARGINS_0)), 142); + minXPos = $wnd.Math.min(minXPos, posX - margins.left); + minYPos = $wnd.Math.min(minYPos, posY - margins.top_0); + maxXPos = $wnd.Math.max(maxXPos, posX + width0 + margins.right); + maxYPos = $wnd.Math.max(maxYPos, posY + height0 + margins.bottom); + } + padding = castTo($getProperty_0(graph, ($clinit_CoreOptions() , PADDING_6)), 116); + offset = new KVector_1(minXPos - padding.left, minYPos - padding.top_0); + for (node$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + $setX_2(node, node.x_0 - offset.x_0); + $setY_3(node, node.y_0 - offset.y_0); + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + $setWidth_0(graph, width_0); + $setHeight_0(graph, height); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function CalculateGraphSize(){ +} + +defineClass(1375, 1, $intern_105, CalculateGraphSize); +_.process = function process_85(graph, progressMonitor){ + $process_89(castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_CalculateGraphSize_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'CalculateGraphSize', 1375); +function $clinit_IntermediateProcessorStrategy_1(){ + $clinit_IntermediateProcessorStrategy_1 = emptyMethod; + OVERLAP_REMOVAL = new IntermediateProcessorStrategy_1('OVERLAP_REMOVAL', 0); + COMPACTION = new IntermediateProcessorStrategy_1('COMPACTION', 1); + GRAPH_SIZE_CALCULATION = new IntermediateProcessorStrategy_1('GRAPH_SIZE_CALCULATION', 2); +} + +function IntermediateProcessorStrategy_1(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_78(name_0){ + $clinit_IntermediateProcessorStrategy_1(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_1() , $MAP_66), name_0); +} + +function values_84(){ + $clinit_IntermediateProcessorStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]); +} + +defineClass(442, 22, {3:1, 35:1, 22:1, 442:1, 234:1}, IntermediateProcessorStrategy_1); +_.create_1 = function create_24(){ + switch (this.ordinal) { + case 0: + return new RadiusExtensionOverlapRemoval; + case 1: + return new GeneralCompactor; + case 2: + return new CalculateGraphSize; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); + } +} +; +var COMPACTION, GRAPH_SIZE_CALCULATION, OVERLAP_REMOVAL; +var Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.intermediate', 'IntermediateProcessorStrategy', 442, Ljava_lang_Enum_2_classLit, values_84, valueOf_78); +function $clinit_IntermediateProcessorStrategy$Map_1(){ + $clinit_IntermediateProcessorStrategy$Map_1 = emptyMethod; + $MAP_66 = createValueOfMap(($clinit_IntermediateProcessorStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]))); +} + +var $MAP_66; +function $contractLayer(this$static, layerNodes, isContracting){ + var length_0, node, node$iterator, parentX, parentY, treeParent, x_0, xPos, y_0, yPos; + for (node$iterator = layerNodes.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + xPos = node.x_0 + node.width_0 / 2; + yPos = node.y_0 + node.height / 2; + treeParent = this$static.root_0; + parentX = treeParent.x_0 + treeParent.width_0 / 2; + parentY = treeParent.y_0 + treeParent.height / 2; + x_0 = xPos - parentX; + y_0 = yPos - parentY; + length_0 = $wnd.Math.sqrt(x_0 * x_0 + y_0 * y_0); + x_0 *= this$static.compactionStep / length_0; + y_0 *= this$static.compactionStep / length_0; + if (isContracting) { + xPos -= x_0; + yPos -= y_0; + } + else { + xPos += x_0; + yPos += y_0; + } + $setX_2(node, xPos - node.width_0 / 2); + $setY_3(node, yPos - node.height / 2); + } +} + +function $overlap_1(this$static, node1, node2){ + var height1, height2, width1, width2, x1, x2, y1, y2; + x1 = node1.x_0 - this$static.spacing / 2; + x2 = node2.x_0 - this$static.spacing / 2; + y1 = node1.y_0 - this$static.spacing / 2; + y2 = node2.y_0 - this$static.spacing / 2; + width1 = node1.width_0 + this$static.spacing / 2; + width2 = node2.width_0 + this$static.spacing / 2; + height1 = node1.height + this$static.spacing / 2; + height2 = node2.height + this$static.spacing / 2; + if (x1 < x2 + width2 && x2 < x1 && y1 < y2 + height2 && y2 < y1) { + return true; + } + else if (x2 < x1 + width1 && x1 < x2 && y2 < y1 + height1 && y1 < y2) { + return true; + } + else if (x1 < x2 + width2 && x2 < x1 && y1 < y2 && y2 < y1 + height1) { + return true; + } + else if (x2 < x1 + width1 && x1 < x2 && y1 < y2 + height2 && y2 < y1) { + return true; + } + return false; +} + +function $overlapLayer(this$static, nodes){ + var i, overlapping; + overlapping = false; + if (nodes.size_1() < 2) { + return false; + } + for (i = 0; i < nodes.size_1(); i++) { + i < nodes.size_1() - 1?(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(i + 1), 33))):(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(0), 33))); + } + return overlapping; +} + +function $setCompactionStep(this$static, compactionStep){ + this$static.compactionStep = compactionStep; +} + +function $setRoot(this$static, root){ + this$static.root_0 = root; +} + +function $setSpacing(this$static, spacing){ + this$static.spacing = spacing; +} + +defineClass(645, 1, {}); +_.compactionStep = 1; +_.spacing = 0; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AbstractRadiusExtensionCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AbstractRadiusExtensionCompaction', 645); +function $constructContour(this$static, nodes){ + var node, node$iterator, successors; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + $put(this$static.leftContour, node, node); + $put(this$static.rightContour, node, node); + successors = getSuccessors(node); + if (successors.array.length != 0) { + !!this$static.sorter && this$static.sorter.sort_1(successors); + $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); + while (getNextLevelNodes(successors).array.length != 0) { + successors = getNextLevelNodes(successors); + !!this$static.sorter && this$static.sorter.sort_1(successors); + $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); + } + } + } +} + +function $contourOverlap(this$static, neighbourWedgeParent, node, left){ + var contour, contourNode, contourNode$iterator; + contour = left?castTo($get(this$static.leftContour, neighbourWedgeParent), 21):castTo($get(this$static.rightContour, neighbourWedgeParent), 21); + for (contourNode$iterator = contour.iterator_0(); contourNode$iterator.hasNext_0();) { + contourNode = castTo(contourNode$iterator.next_1(), 33); + if ($overlap_1(this$static, node, contourNode)) { + return true; + } + } + return false; +} + +function $contractWedge(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes){ + var isOverlapping, nextLevelNodes, wasContracted; + isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); + wasContracted = false; + while (!isOverlapping) { + $contractLayer(this$static, currentRadiusNodes, true); + wasContracted = true; + isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); + } + wasContracted && $contractLayer(this$static, currentRadiusNodes, false); + nextLevelNodes = getNextLevelNodes(currentRadiusNodes); + if (nextLevelNodes.array.length != 0) { + !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); + $contractWedge(this$static, currentRadiusNodes, radialPredecessor, radialSuccessor, nextLevelNodes); + } +} + +function $overlapping(this$static, predecessors, leftParent, rightParent, layerNodes){ + var firstNode, lastNode, predecessor, predecessor$iterator, sortedNode, sortedNode$iterator; + !!this$static.sorter && this$static.sorter.sort_1(layerNodes); + firstNode = castTo(layerNodes.get_0(0), 33); + if ($contourOverlap(this$static, leftParent, firstNode, false)) { + return true; + } + lastNode = castTo(layerNodes.get_0(layerNodes.size_1() - 1), 33); + if ($contourOverlap(this$static, rightParent, lastNode, true)) { + return true; + } + if ($overlapLayer(this$static, layerNodes)) { + return true; + } + for (sortedNode$iterator = layerNodes.iterator_0(); sortedNode$iterator.hasNext_0();) { + sortedNode = castTo(sortedNode$iterator.next_1(), 33); + for (predecessor$iterator = predecessors.iterator_0(); predecessor$iterator.hasNext_0();) { + predecessor = castTo(predecessor$iterator.next_1(), 33); + if ($overlap_1(this$static, sortedNode, predecessor)) { + return true; + } + } + } + return false; +} + +function AnnulusWedgeCompaction(){ + this.leftContour = new HashMultimap; + this.rightContour = new HashMultimap; +} + +defineClass(1772, 645, {}, AnnulusWedgeCompaction); +_.compact_0 = function compact_2(graph){ + var i, k, leftParent, nodeAsList, rightParent, rootList, spacing, stepSize, successors; + this.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + $setRoot(this, this.root); + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); + !!stepSize && $setCompactionStep(this, stepSize.value_0); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); + successors = getSuccessors(this.root); + !!this.sorter && this.sorter.sort_1(successors); + $constructContour(this, successors); + rootList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [this.root])); + for (k = 0; k < 2; k++) { + for (i = 0; i < successors.array.length; i++) { + nodeAsList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [(checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33))])); + rightParent = i < successors.array.length - 1?(checkCriticalElementIndex(i + 1, successors.array.length) , castTo(successors.array[i + 1], 33)):(checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33)); + leftParent = i == 0?castTo($get_11(successors, successors.array.length - 1), 33):(checkCriticalElementIndex(i - 1, successors.array.length) , castTo(successors.array[i - 1], 33)); + $contractWedge(this, (checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33) , rootList), leftParent, rightParent, nodeAsList); + } + } +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AnnulusWedgeCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AnnulusWedgeCompaction', 1772); +function $process_90(graph, progressMonitor){ + var compactor; + $begin(progressMonitor, 'General Compactor', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + compactor = $create_11(castTo($getProperty_0(graph, ($clinit_RadialOptions() , COMPACTOR_0)), 380)); + compactor.compact_0(graph); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function GeneralCompactor(){ +} + +defineClass(1374, 1, $intern_105, GeneralCompactor); +_.process = function process_86(graph, progressMonitor){ + $process_90(castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_GeneralCompactor_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'GeneralCompactor', 1374); +function $calculateRadius(this$static, node){ + var radius, root, rootX, rootY, vectorX, vectorY, xPos, yPos; + xPos = node.x_0; + yPos = node.y_0; + root = this$static.root_0; + rootX = root.x_0; + rootY = root.y_0; + vectorX = xPos - rootX; + vectorY = yPos - rootY; + radius = $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + return radius; +} + +function $contract(this$static, nodes){ + var isOverlapping, nextLevelNodes, wasContracted; + if (nodes.array.length != 0) { + isOverlapping = $overlapping_0(this$static, nodes); + wasContracted = false; + while (!isOverlapping) { + $contractLayer(this$static, nodes, true); + wasContracted = true; + isOverlapping = $overlapping_0(this$static, nodes); + } + wasContracted && $contractLayer(this$static, nodes, false); + nextLevelNodes = getNextLevelNodes(nodes); + !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); + this$static.lastRadius = $calculateRadius(this$static, (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33))); + $contract(this$static, nextLevelNodes); + } +} + +function $overlapping_0(this$static, nodes){ + var node, node$iterator, parent_0; + if ($overlapLayer(this$static, nodes)) { + return true; + } + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + parent_0 = getTreeParent(node); + if ($overlap_1(this$static, node, parent_0)) { + return true; + } + if ($calculateRadius(this$static, node) - this$static.spacing <= this$static.lastRadius) { + return true; + } + } + return false; +} + +function RadialCompaction(){ +} + +defineClass(1771, 645, {}, RadialCompaction); +_.compact_0 = function compact_3(graph){ + var firstLevelNodes, root, spacing, stepSize; + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this.root_0 = root; + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); + !!stepSize && $setCompactionStep(this, stepSize.value_0); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); + firstLevelNodes = getSuccessors(root); + !!this.sorter && this.sorter.sort_1(firstLevelNodes); + $contract(this, firstLevelNodes); +} +; +_.lastRadius = 0; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_RadialCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'RadialCompaction', 1771); +function $isCrossing(this$static, node1, node2){ + var b1, b2, m1, m2, node1Vector, node2Vector, position1, position2, rootX, rootY, xCut, xPos1, xPos2, yPos1, yPos2; + rootX = this$static.root.x_0 + this$static.root.width_0 / 2; + rootY = this$static.root.x_0 + this$static.root.width_0 / 2; + xPos1 = node1.x_0 + node1.width_0 / 2; + yPos1 = node1.y_0 + node1.height / 2; + node1Vector = new KVector_1(xPos1, yPos1); + position1 = castTo($getProperty_0(node1, ($clinit_CoreOptions() , POSITION_2)), 8); + position1.x_0 = position1.x_0 + rootX; + position1.y_0 = position1.y_0 + rootY; + m1 = (node1Vector.y_0 - position1.y_0) / (node1Vector.x_0 - position1.x_0); + b1 = node1Vector.y_0 - m1 * node1Vector.x_0; + xPos2 = node2.x_0 + node2.width_0 / 2; + yPos2 = node2.y_0 + node2.height / 2; + node2Vector = new KVector_1(xPos2, yPos2); + position2 = castTo($getProperty_0(node2, POSITION_2), 8); + position2.x_0 = position2.x_0 + rootX; + position2.y_0 = position2.y_0 + rootY; + m2 = (node2Vector.y_0 - position2.y_0) / (node2Vector.x_0 - position2.x_0); + b2 = node2Vector.y_0 - m2 * node2Vector.x_0; + xCut = (b1 - b2) / (m2 - m1); + if (position1.x_0 < xCut && node1Vector.x_0 < xCut || xCut < position1.x_0 && xCut < node1Vector.x_0) { + return false; + } + else if (position2.x_0 < xCut && node2Vector.x_0 < xCut || xCut < position2.x_0 && xCut < node2Vector.x_0) { + return false; + } + return true; +} + +function CrossingMinimizationPosition(){ +} + +defineClass(1779, 1, {}, CrossingMinimizationPosition); +_.evaluate = function evaluate(rootNode){ + var crossings, i, k, node1, node1$iterator, nodes; + this.root = rootNode; + crossings = 0; + nodes = getSuccessors(rootNode); + k = 0; + for (node1$iterator = new ArrayList$1(nodes); node1$iterator.i < node1$iterator.this$01.array.length;) { + node1 = castTo($next_7(node1$iterator), 33); + ++k; + for (i = k; i < nodes.array.length; i++) { + $isCrossing(this, node1, (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 33))) && (crossings += 1); + } + } + return crossings; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_CrossingMinimizationPosition_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'CrossingMinimizationPosition', 1779); +function EdgeLengthOptimization(){ +} + +defineClass(1777, 1, {}, EdgeLengthOptimization); +_.evaluate = function evaluate_0(root){ + var edge, edge$iterator, edgeLength, rootX, rootY, sourceClip, target, targetClip, targetX, targetY, vector, vectorX, vectorY; + edgeLength = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + rootX = root.x_0 + root.width_0 / 2; + rootY = root.y_0 + root.height / 2; + vector = new KVector; + vector.x_0 = targetX - rootX; + vector.y_0 = targetY - rootY; + sourceClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(sourceClip, root.width_0, root.height); + vector.x_0 -= sourceClip.x_0; + vector.y_0 -= sourceClip.y_0; + rootX = targetX - vector.x_0; + rootY = targetY - vector.y_0; + targetClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(targetClip, target.width_0, target.height); + vector.x_0 -= targetClip.x_0; + vector.y_0 -= targetClip.y_0; + targetX = rootX + vector.x_0; + targetY = rootY + vector.y_0; + vectorX = targetX - rootX; + vectorY = targetY - rootY; + edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + } + return edgeLength; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthOptimization', 1777); +function EdgeLengthPositionOptimization(){ +} + +defineClass(1778, 1, {}, EdgeLengthPositionOptimization); +_.evaluate = function evaluate_1(root){ + var edge, edge$iterator, edgeLength, position, rootX, rootY, target, targetX, targetY, vectorX, vectorY; + edgeLength = 0; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + position = castTo($getProperty_0(target, ($clinit_CoreOptions() , POSITION_2)), 8); + rootX = root.x_0 + position.x_0 + root.width_0 / 2; + rootY = root.y_0 + position.y_0 + root.height; + vectorX = targetX - rootX; + vectorY = targetY - rootY; + edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); + } + return edgeLength; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthPositionOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthPositionOptimization', 1778); +function $extend(this$static, graph, nodes, progressMonitor){ + var firstNode, index_0, movedDistance, movedX, movedY, nextLevelNode, nextLevelNode$iterator, nextLevelNodes, node, node$iterator, oldPositions, root, rootX, rootY, nodeX, nodeY, differenceX, differenceY, length_0, unitX, unitY; + if (nodes.array.length != 0) { + oldPositions = new ArrayList; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + $add_3(oldPositions, new KVector_1(node.x_0, node.y_0)); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + while ($overlapLayer(this$static, nodes)) { + $contractLayer(this$static, nodes, false); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + movedX = 0; + movedY = 0; + firstNode = null; + if (nodes.array.length != 0) { + firstNode = (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33)); + movedX = firstNode.x_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).x_0; + movedY = firstNode.y_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).y_0; + } + movedDistance = $wnd.Math.sqrt(movedX * movedX + movedY * movedY); + nextLevelNodes = getNextLevelNodeSet(nodes); + index_0 = 1; + while (nextLevelNodes.map_0.size_1() != 0) { + for (nextLevelNode$iterator = nextLevelNodes.map_0.keySet_0().iterator_0(); nextLevelNode$iterator.hasNext_0();) { + nextLevelNode = castTo(nextLevelNode$iterator.next_1(), 33); + root = this$static.root_0; + rootX = root.x_0 + root.width_0 / 2; + rootY = root.y_0 + root.height / 2; + nodeX = nextLevelNode.x_0 + nextLevelNode.width_0 / 2; + nodeY = nextLevelNode.y_0 + nextLevelNode.height / 2; + differenceX = nodeX - rootX; + differenceY = nodeY - rootY; + length_0 = $wnd.Math.sqrt(differenceX * differenceX + differenceY * differenceY); + unitX = differenceX / length_0; + unitY = differenceY / length_0; + $setX_2(nextLevelNode, nextLevelNode.x_0 + unitX * movedDistance); + $setY_3(nextLevelNode, nextLevelNode.y_0 + unitY * movedDistance); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + nextLevelNodes = getNextLevelNodeSet(new ArrayList_1(nextLevelNodes)); + ++index_0; + } + !!this$static.sorter && this$static.sorter.sort_1(new ArrayList_1(nextLevelNodes)); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + $extend(this$static, graph, new ArrayList_1(nextLevelNodes), progressMonitor); + } +} + +function $process_91(this$static, graph, progressMonitor){ + var root, spacing, successors; + $begin(progressMonitor, 'Remove overlaps', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this$static.root_0 = root; + this$static.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); + $setSpacing(this$static, (checkCriticalNotNull(spacing) , spacing)); + successors = getSuccessors(root); + $extend(this$static, graph, successors, progressMonitor); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function RadiusExtensionOverlapRemoval(){ +} + +defineClass(1373, 645, $intern_105, RadiusExtensionOverlapRemoval); +_.process = function process_87(graph, progressMonitor){ + $process_91(this, castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_overlaps_RadiusExtensionOverlapRemoval_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.overlaps', 'RadiusExtensionOverlapRemoval', 1373); +function $clinit_AnnulusWedgeCriteria(){ + $clinit_AnnulusWedgeCriteria = emptyMethod; + LEAF_NUMBER = new AnnulusWedgeCriteria('LEAF_NUMBER', 0); + NODE_SIZE_0 = new AnnulusWedgeCriteria('NODE_SIZE', 1); +} + +function $create_10(this$static){ + switch (this$static.ordinal) { + case 0: + return new AnnulusWedgeByLeafs; + case 1: + return new AnnulusWedgeByNodeSpace; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function AnnulusWedgeCriteria(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_79(name_0){ + $clinit_AnnulusWedgeCriteria(); + return valueOf(($clinit_AnnulusWedgeCriteria$Map() , $MAP_67), name_0); +} + +function values_85(){ + $clinit_AnnulusWedgeCriteria(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]); +} + +defineClass(426, 22, {3:1, 35:1, 22:1, 426:1}, AnnulusWedgeCriteria); +var LEAF_NUMBER, NODE_SIZE_0; +var Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'AnnulusWedgeCriteria', 426, Ljava_lang_Enum_2_classLit, values_85, valueOf_79); +function $clinit_AnnulusWedgeCriteria$Map(){ + $clinit_AnnulusWedgeCriteria$Map = emptyMethod; + $MAP_67 = createValueOfMap(($clinit_AnnulusWedgeCriteria() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]))); +} + +var $MAP_67; +function $clinit_CompactionStrategy_0(){ + $clinit_CompactionStrategy_0 = emptyMethod; + NONE_11 = new CompactionStrategy_0('NONE', 0); + RADIAL_COMPACTION = new CompactionStrategy_0('RADIAL_COMPACTION', 1); + WEDGE_COMPACTION = new CompactionStrategy_0('WEDGE_COMPACTION', 2); +} + +function $create_11(this$static){ + switch (this$static.ordinal) { + case 1: + return new RadialCompaction; + case 2: + return new AnnulusWedgeCompaction; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CompactionStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_80(name_0){ + $clinit_CompactionStrategy_0(); + return valueOf(($clinit_CompactionStrategy$Map_0() , $MAP_68), name_0); +} + +function values_86(){ + $clinit_CompactionStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]); +} + +defineClass(380, 22, {3:1, 35:1, 22:1, 380:1}, CompactionStrategy_0); +var NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION; +var Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'CompactionStrategy', 380, Ljava_lang_Enum_2_classLit, values_86, valueOf_80); +function $clinit_CompactionStrategy$Map_0(){ + $clinit_CompactionStrategy$Map_0 = emptyMethod; + $MAP_68 = createValueOfMap(($clinit_CompactionStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]))); +} + +var $MAP_68; +function $clinit_RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider = emptyMethod; + ORDER_ID = new Property_1('org.eclipse.elk.radial.orderId', valueOf_4(0)); + RADIUS = new Property_1('org.eclipse.elk.radial.radius', 0); + COMPACTOR_DEFAULT = ($clinit_CompactionStrategy_0() , NONE_11); + COMPACTOR = new Property_1('org.eclipse.elk.radial.compactor', COMPACTOR_DEFAULT); + valueOf_4(0); + COMPACTION_STEP_SIZE = new Property_1('org.eclipse.elk.radial.compactionStepSize', valueOf_4(1)); + SORTER_DEFAULT = ($clinit_SortingStrategy() , NONE_13); + SORTER = new Property_1('org.eclipse.elk.radial.sorter', SORTER_DEFAULT); + WEDGE_CRITERIA_DEFAULT = ($clinit_AnnulusWedgeCriteria() , NODE_SIZE_0); + WEDGE_CRITERIA = new Property_1('org.eclipse.elk.radial.wedgeCriteria', WEDGE_CRITERIA_DEFAULT); + OPTIMIZATION_CRITERIA_DEFAULT = ($clinit_RadialTranslationStrategy() , NONE_12); + OPTIMIZATION_CRITERIA = new Property_1('org.eclipse.elk.radial.optimizationCriteria', OPTIMIZATION_CRITERIA_DEFAULT); +} + +function RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider(); +} + +defineClass(852, 1, $intern_90, RadialMetaDataProvider); +_.apply_4 = function apply_159(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.orderId'), ''), 'Order ID'), 'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'), valueOf_4(0)), ($clinit_LayoutOptionData$Type() , INT)), Ljava_lang_Integer_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.radius'), ''), 'Radius'), 'The radius option can be used to set the initial radius for the radial layouter.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactor'), ''), 'Compaction'), 'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'), COMPACTOR_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactionStepSize'), ''), 'Compaction Step Size'), 'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'), valueOf_4(1)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.radial.compactionStepSize', 'org.eclipse.elk.radial.compactor', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.sorter'), ''), 'Sorter'), 'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'), SORTER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.wedgeCriteria'), ''), 'Annulus Wedge Criteria'), 'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'), WEDGE_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.optimizationCriteria'), ''), 'Translation Optimization'), 'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'), OPTIMIZATION_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit), of_1(PARENTS)))); + $apply_20((new RadialOptions , registry)); +} +; +var COMPACTION_STEP_SIZE, COMPACTOR, COMPACTOR_DEFAULT, OPTIMIZATION_CRITERIA, OPTIMIZATION_CRITERIA_DEFAULT, ORDER_ID, RADIUS, SORTER, SORTER_DEFAULT, WEDGE_CRITERIA, WEDGE_CRITERIA_DEFAULT; +var Lorg_eclipse_elk_alg_radial_options_RadialMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialMetaDataProvider', 852); +function $clinit_RadialOptions(){ + $clinit_RadialOptions = emptyMethod; + POSITION_1 = ($clinit_CoreOptions() , POSITION_2); + SPACING_NODE_NODE_2 = SPACING_NODE_NODE_6; + NODE_SIZE_CONSTRAINTS_3 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_2 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_3 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_3 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_2 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_3 = PORT_LABELS_PLACEMENT_5; + COMPACTION_STEP_SIZE_0 = ($clinit_RadialMetaDataProvider() , COMPACTION_STEP_SIZE); + COMPACTOR_0 = COMPACTOR; + OPTIMIZATION_CRITERIA_0 = OPTIMIZATION_CRITERIA; + ORDER_ID_0 = ORDER_ID; + RADIUS_0 = RADIUS; + SORTER_0 = SORTER; + WEDGE_CRITERIA_0 = WEDGE_CRITERIA; +} + +function $apply_20(registry){ + $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.radial'), 'ELK Radial'), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new RadialOptions$RadialFactory), 'org.eclipse.elk.radial'))); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.position', $getDefault(POSITION_1)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_2)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactionStepSize', $getDefault(COMPACTION_STEP_SIZE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactor', $getDefault(COMPACTOR_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.optimizationCriteria', $getDefault(OPTIMIZATION_CRITERIA_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.orderId', $getDefault(ORDER_ID_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.radius', $getDefault(RADIUS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.sorter', $getDefault(SORTER_0)); + $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.wedgeCriteria', $getDefault(WEDGE_CRITERIA_0)); +} + +function RadialOptions(){ + $clinit_RadialOptions(); +} + +defineClass(996, 1, $intern_90, RadialOptions); +_.apply_4 = function apply_160(registry){ + $apply_20(registry); +} +; +var COMPACTION_STEP_SIZE_0, COMPACTOR_0, NODE_LABELS_PLACEMENT_3, NODE_SIZE_CONSTRAINTS_3, NODE_SIZE_MINIMUM_2, NODE_SIZE_OPTIONS_3, OMIT_NODE_MICRO_LAYOUT_2, OPTIMIZATION_CRITERIA_0, ORDER_ID_0, PORT_LABELS_PLACEMENT_3, POSITION_1, RADIUS_0, SORTER_0, SPACING_NODE_NODE_2, WEDGE_CRITERIA_0; +var Lorg_eclipse_elk_alg_radial_options_RadialOptions_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions', 996); +function RadialOptions$RadialFactory(){ +} + +defineClass(997, 1, {}, RadialOptions$RadialFactory); +_.create_0 = function create_25(){ + var provider; + return provider = new RadialLayoutProvider , provider; +} +; +_.destroy = function destroy_4(obj){ +} +; +var Lorg_eclipse_elk_alg_radial_options_RadialOptions$RadialFactory_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions/RadialFactory', 997); +function $clinit_RadialTranslationStrategy(){ + $clinit_RadialTranslationStrategy = emptyMethod; + NONE_12 = new RadialTranslationStrategy('NONE', 0); + EDGE_LENGTH_0 = new RadialTranslationStrategy('EDGE_LENGTH', 1); + EDGE_LENGTH_BY_POSITION = new RadialTranslationStrategy('EDGE_LENGTH_BY_POSITION', 2); + CROSSING_MINIMIZATION_BY_POSITION = new RadialTranslationStrategy('CROSSING_MINIMIZATION_BY_POSITION', 3); +} + +function $create_12(this$static){ + switch (this$static.ordinal) { + case 1: + return new EdgeLengthOptimization; + case 2: + return new EdgeLengthPositionOptimization; + case 3: + return new CrossingMinimizationPosition; + case 0: + return null; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function RadialTranslationStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_81(name_0){ + $clinit_RadialTranslationStrategy(); + return valueOf(($clinit_RadialTranslationStrategy$Map() , $MAP_69), name_0); +} + +function values_87(){ + $clinit_RadialTranslationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]); +} + +defineClass(340, 22, {3:1, 35:1, 22:1, 340:1}, RadialTranslationStrategy); +var CROSSING_MINIMIZATION_BY_POSITION, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, NONE_12; +var Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'RadialTranslationStrategy', 340, Ljava_lang_Enum_2_classLit, values_87, valueOf_81); +function $clinit_RadialTranslationStrategy$Map(){ + $clinit_RadialTranslationStrategy$Map = emptyMethod; + $MAP_69 = createValueOfMap(($clinit_RadialTranslationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]))); +} + +var $MAP_69; +function $clinit_SortingStrategy(){ + $clinit_SortingStrategy = emptyMethod; + NONE_13 = new SortingStrategy('NONE', 0); + POLAR_COORDINATE = new SortingStrategy('POLAR_COORDINATE', 1); + ID_0 = new SortingStrategy('ID', 2); +} + +function $create_13(this$static){ + switch (this$static.ordinal) { + case 0: + return null; + case 1: + return new PolarCoordinateSorter; + case 2: + return new IDSorter; + default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function SortingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_82(name_0){ + $clinit_SortingStrategy(); + return valueOf(($clinit_SortingStrategy$Map() , $MAP_70), name_0); +} + +function values_88(){ + $clinit_SortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]); +} + +defineClass(293, 22, {3:1, 35:1, 22:1, 293:1}, SortingStrategy); +var ID_0, NONE_13, POLAR_COORDINATE; +var Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'SortingStrategy', 293, Ljava_lang_Enum_2_classLit, values_88, valueOf_82); +function $clinit_SortingStrategy$Map(){ + $clinit_SortingStrategy$Map = emptyMethod; + $MAP_70 = createValueOfMap(($clinit_SortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]))); +} + +var $MAP_70; +function $positionNodes(this$static, node, currentRadius, minAlpha, maxAlpha, optimalOffset){ + var alpha_0, alphaPoint, child, child$iterator, numberOfChildLeafs, numberOfLeafs, radOffest, s, successors, tau, xPos, yPos, xPosition, yPosition; + radOffest = optimalOffset; + alphaPoint = (minAlpha + maxAlpha) / 2 + radOffest; + xPos = currentRadius * $wnd.Math.cos(alphaPoint); + yPos = currentRadius * $wnd.Math.sin(alphaPoint); + xPosition = xPos - node.width_0 / 2; + yPosition = yPos - node.height / 2; + $setX_2(node, xPosition); + $setY_3(node, yPosition); + numberOfLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(node); + tau = 2 * $wnd.Math.acos(currentRadius / currentRadius + this$static.radius); + if (tau < maxAlpha - minAlpha) { + s = tau / numberOfLeafs; + alpha_0 = (minAlpha + maxAlpha - tau) / 2; + } + else { + s = (maxAlpha - minAlpha) / numberOfLeafs; + alpha_0 = minAlpha; + } + successors = getSuccessors(node); + if (this$static.sorter) { + this$static.sorter.initialize_0(this$static.root); + this$static.sorter.sort_1(successors); + } + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 33); + numberOfChildLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(child); + $positionNodes(this$static, child, currentRadius + this$static.radius, alpha_0, alpha_0 + s * numberOfChildLeafs, optimalOffset); + alpha_0 += s * numberOfChildLeafs; + } +} + +function $process_92(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Eades radial', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + this$static.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this$static.radius = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , RADIUS_0)))); + this$static.sorter = $create_13(castTo($getProperty_0(graph, SORTER_0), 293)); + this$static.annulusWedgeCriteria = $create_10(castTo($getProperty_0(graph, WEDGE_CRITERIA_0), 426)); + this$static.optimizer = $create_12(castTo($getProperty_0(graph, OPTIMIZATION_CRITERIA_0), 340)); + $translate_0(this$static); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function $translate_0(this$static){ + var i, offset, optimalOffset, optimalValue, translatedValue; + optimalOffset = 0; + optimalValue = $intern_98; + if (this$static.optimizer) { + for (i = 0; i < 360; i++) { + offset = i * 0.017453292519943295; + $positionNodes(this$static, this$static.root, 0, 0, $intern_123, offset); + translatedValue = this$static.optimizer.evaluate(this$static.root); + if (translatedValue < optimalValue) { + optimalOffset = offset; + optimalValue = translatedValue; + } + } + } + $positionNodes(this$static, this$static.root, 0, 0, $intern_123, optimalOffset); +} + +function EadesRadial(){ +} + +defineClass(1449, 1, $intern_113, EadesRadial); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_24(graph){ + return castTo(graph, 33) , null; +} +; +_.process = function process_88(graph, progressMonitor){ + $process_92(this, castTo(graph, 33), progressMonitor); +} +; +_.radius = 0; +var Lorg_eclipse_elk_alg_radial_p1position_EadesRadial_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position', 'EadesRadial', 1449); +function AnnulusWedgeByLeafs(){ +} + +defineClass(1775, 1, {}, AnnulusWedgeByLeafs); +_.calculateWedgeSpace = function calculateWedgeSpace(node){ + return getNumberOfLeaves(node); +} +; +var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByLeafs_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByLeafs', 1775); +function $calculateWedgeSpace(this$static, node){ + var child, child$iterator, childSpace, height, nodeSize, successors, width_0; + successors = getSuccessors(node); + height = node.height; + width_0 = node.width_0; + nodeSize = $wnd.Math.sqrt(height * height + width_0 * width_0); + childSpace = 0; + for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 33); + childSpace += $calculateWedgeSpace(this$static, child); + } + return $wnd.Math.max(childSpace, nodeSize); +} + +function AnnulusWedgeByNodeSpace(){ +} + +defineClass(1776, 1, {}, AnnulusWedgeByNodeSpace); +_.calculateWedgeSpace = function calculateWedgeSpace_0(node){ + return $calculateWedgeSpace(this, node); +} +; +var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByNodeSpace_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByNodeSpace', 1776); +function $process_93(this$static, graph, progressMonitor){ + var root; + $begin(progressMonitor, 'Straight Line Edge Routing', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + $routeEdges_1(this$static, root); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function $routeEdges_1(this$static, node){ + var edge, edge$iterator, section, sourceClip, sourceX, sourceY, target, targetClip, targetX, targetY, vector; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + if (!instanceOf($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 186)) { + target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + if (!$isHierarchical(edge)) { + sourceX = node.x_0 + node.width_0 / 2; + sourceY = node.y_0 + node.height / 2; + targetX = target.x_0 + target.width_0 / 2; + targetY = target.y_0 + target.height / 2; + vector = new KVector; + vector.x_0 = targetX - sourceX; + vector.y_0 = targetY - sourceY; + sourceClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(sourceClip, node.width_0, node.height); + vector.x_0 -= sourceClip.x_0; + vector.y_0 -= sourceClip.y_0; + sourceX = targetX - vector.x_0; + sourceY = targetY - vector.y_0; + targetClip = new KVector_1(vector.x_0, vector.y_0); + clipVector(targetClip, target.width_0, target.height); + vector.x_0 -= targetClip.x_0; + vector.y_0 -= targetClip.y_0; + targetX = sourceX + vector.x_0; + targetY = sourceY + vector.y_0; + section = firstEdgeSection(edge, true, true); + $setStartX(section, sourceX); + $setStartY(section, sourceY); + $setEndX(section, targetX); + $setEndY(section, targetY); + $routeEdges_1(this$static, target); + } + } + } +} + +function StraightLineEdgeRouter(){ +} + +defineClass(1450, 1, $intern_113, StraightLineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_25(graph){ + return castTo(graph, 33) , null; +} +; +_.process = function process_89(graph, progressMonitor){ + $process_93(this, castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_p2routing_StraightLineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.radial.p2routing', 'StraightLineEdgeRouter', 1450); +function $sort_2(this$static, nodes){ + nodes.sort_0(this$static.idSorter); +} + +function IDSorter(){ + this.idSorter = new IDSorter$lambda$0$Type; +} + +function lambda$0_31(node1_0, node2_1){ + var orderID1, orderID2; + orderID1 = castTo($getProperty_0(node1_0, ($clinit_RadialOptions() , ORDER_ID_0)), 19); + orderID2 = castTo($getProperty_0(node2_1, ORDER_ID_0), 19); + return compare_5(orderID1.value_0, orderID2.value_0); +} + +defineClass(811, 1, {}, IDSorter); +_.initialize_0 = function initialize_3(root){ +} +; +_.sort_1 = function sort_10(nodes){ + $sort_2(this, nodes); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter', 811); +function IDSorter$lambda$0$Type(){ +} + +defineClass(1774, 1, $intern_88, IDSorter$lambda$0$Type); +_.compare_1 = function compare_79(arg0, arg1){ + return lambda$0_31(castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_166(other){ + return this === other; +} +; +_.reversed = function reversed_71(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter/lambda$0$Type', 1774); +function $initialize_7(this$static, root){ + var successors; + this$static.idSorter = new IDSorter; + successors = getSuccessors(root); + $sort(successors, this$static.compRight); + $setIDForNodes(this$static, successors, 0); +} + +function $setIDForNodes(this$static, nodes, idOffset){ + var arc, id_0, nextLayerId, node, node$iterator, nodeSuccessors; + id_0 = idOffset; + nextLayerId = 0; + for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 33); + $setProperty_1(node, ($clinit_RadialOptions() , ORDER_ID_0), valueOf_4(id_0++)); + nodeSuccessors = getSuccessors(node); + arc = $wnd.Math.atan2(node.y_0 + node.height / 2, node.x_0 + node.width_0 / 2); + arc += arc < 0?$intern_123:0; + arc < 0.7853981633974483 || arc > $intern_126?$sort(nodeSuccessors, this$static.compLeft):arc <= $intern_126 && arc > $intern_127?$sort(nodeSuccessors, this$static.compTop):arc <= $intern_127 && arc > $intern_128?$sort(nodeSuccessors, this$static.compRight):arc <= $intern_128 && $sort(nodeSuccessors, this$static.compBottom); + nextLayerId = $setIDForNodes(this$static, nodeSuccessors, nextLayerId); + } + return id_0; +} + +function PolarCoordinateSorter(){ + this.compRight = new RadialUtil$lambda$0$Type(0); + this.compLeft = new RadialUtil$lambda$0$Type($intern_122); + this.compTop = new RadialUtil$lambda$0$Type($intern_121); + this.compBottom = new RadialUtil$lambda$0$Type($intern_97); +} + +defineClass(1773, 1, {}, PolarCoordinateSorter); +_.initialize_0 = function initialize_4(root){ + $initialize_7(this, root); +} +; +_.sort_1 = function sort_11(nodes){ + var root; + if (!nodes.isEmpty()) { + if (!this.idSorter) { + root = findRootOfNode(castTo(nodes.get_0(0), 33)); + $initialize_7(this, root); + } + $sort_2(this.idSorter, nodes); + } +} +; +var Lorg_eclipse_elk_alg_radial_sorting_PolarCoordinateSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'PolarCoordinateSorter', 1773); +function RectPackingLayoutProvider(){ +} + +function applyPadding(rectangles, padding){ + var rect, rect$iterator; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 33); + $setLocation_1(rect, rect.x_0 + padding.left, rect.y_0 + padding.top_0); + } +} + +function lambda$0_32(a_0, b_1){ + var positionA, positionB; + positionA = castTo($getProperty_0(a_0, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 19).value_0; + positionB = castTo($getProperty_0(b_1, DESIRED_POSITION_0), 19).value_0; + return positionA == positionB?-1:positionA < positionB?-1:positionA > positionB?1:0; +} + +defineClass(1136, 209, $intern_96, RectPackingLayoutProvider); +_.layout = function layout_5(layoutGraph, progressMonitor){ + var aspectRatio, builder, compaction, drawing, elkNode, elkNode$iterator, elkNode$iterator0, elkNode$iterator1, elkNode$iterator2, expandNodes, expandToAspectRatio, firstIt, fixedNodes, goal, index_0, interactive, lastPlaceShift, maxWidth, minSize, nodeNodeSpacing, onlyFirstIteration, padding, position, rectangles, secondIt, targetWidth; + $begin(progressMonitor, 'Rectangle Packing', 1); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + aspectRatio = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); + goal = castTo($getProperty_0(layoutGraph, OPTIMIZATION_GOAL_0), 381); + lastPlaceShift = $booleanValue(castToBoolean($getProperty_0(layoutGraph, LAST_PLACE_SHIFT_0))); + onlyFirstIteration = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ONLY_FIRST_ITERATION_0))); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_NODES))); + padding = castTo($getProperty_0(layoutGraph, PADDING_3), 116); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, SPACING_NODE_NODE_3))); + compaction = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROW_COMPACTION_0))); + expandToAspectRatio = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_TO_ASPECT_RATIO_0))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutGraph, INTERACTIVE_5))); + targetWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, TARGET_WIDTH_0))); + rectangles = (!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children); + resetCoordinates(rectangles); + if (interactive) { + fixedNodes = new ArrayList; + for (elkNode$iterator0 = new AbstractEList$EIterator(rectangles); elkNode$iterator0.cursor != elkNode$iterator0.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator0), 33); + $hasProperty_0(elkNode, DESIRED_POSITION_0) && (fixedNodes.array[fixedNodes.array.length] = elkNode , true); + } + for (elkNode$iterator1 = new ArrayList$1(fixedNodes); elkNode$iterator1.i < elkNode$iterator1.this$01.array.length;) { + elkNode = castTo($next_7(elkNode$iterator1), 33); + $remove_32(rectangles, elkNode); + } + $clinit_Collections(); + $sort(fixedNodes, new RectPackingLayoutProvider$lambda$0$Type); + for (elkNode$iterator2 = new ArrayList$1(fixedNodes); elkNode$iterator2.i < elkNode$iterator2.this$01.array.length;) { + elkNode = castTo($next_7(elkNode$iterator2), 33); + position = castTo($getProperty_0(elkNode, DESIRED_POSITION_0), 19).value_0; + position = $wnd.Math.min(position, rectangles.size_0); + $add_20(rectangles, position, elkNode); + } + index_0 = 0; + for (elkNode$iterator = new AbstractEList$EIterator(rectangles); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 33); + $setProperty_1(elkNode, CURRENT_POSITION_0, valueOf_4(index_0)); + ++index_0; + } + } + minSize = effectiveMinSizeConstraintFor(layoutGraph); + minSize.x_0 -= padding.left + padding.right; + minSize.y_0 -= padding.top_0 + padding.bottom; + maxWidth = minSize.x_0; + if (targetWidth < 0 || targetWidth < minSize.x_0) { + firstIt = new AreaApproximation(aspectRatio, goal, lastPlaceShift); + drawing = $approxBoundingBox(firstIt, rectangles, nodeNodeSpacing, padding); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + } + else { + drawing = new DrawingData(aspectRatio, targetWidth, 0, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); + } + minSize.x_0 += padding.left + padding.right; + minSize.y_0 += padding.top_0 + padding.bottom; + if (!onlyFirstIteration) { + resetCoordinates(rectangles); + secondIt = new RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing); + maxWidth = $wnd.Math.max(minSize.x_0, drawing.drawingWidth); + drawing = $start(secondIt, rectangles, maxWidth, minSize, progressMonitor, layoutGraph, padding); + } + applyPadding(rectangles, padding); + resizeNode_1(layoutGraph, drawing.drawingWidth + (padding.left + padding.right), drawing.drawingHeight + (padding.top_0 + padding.bottom), false, true); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_3))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider', 1136); +function RectPackingLayoutProvider$lambda$0$Type(){ +} + +defineClass(1137, 1, $intern_88, RectPackingLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_80(arg0, arg1){ + return lambda$0_32(castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_167(other){ + return this === other; +} +; +_.reversed = function reversed_72(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider/lambda$0$Type', 1137); +function $approxBoundingBox(this$static, rectangles, nodeNodeSpacing, padding){ + var bestOpt, currentValues, firstRect, lastPlaced, opt1, opt2, opt3, opt4, placedRects, rectangleIdx, toPlace; + firstRect = castTo($get_20(rectangles, 0), 33); + $setX_2(firstRect, 0); + $setY_3(firstRect, 0); + placedRects = new ArrayList; + placedRects.array[placedRects.array.length] = firstRect; + lastPlaced = firstRect; + currentValues = new DrawingData(this$static.aspectRatio, firstRect.width_0, firstRect.height, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); + for (rectangleIdx = 1; rectangleIdx < rectangles.size_0; rectangleIdx++) { + toPlace = castTo($get_20(rectangles, rectangleIdx), 33); + opt1 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt2 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt3 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + opt4 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); + bestOpt = $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding); + $setX_2(toPlace, bestOpt.nextXcoordinate); + $setY_3(toPlace, bestOpt.nextYcoordinate); + $setPlacementOption(bestOpt, WHOLE_DRAWING); + currentValues = bestOpt; + lastPlaced = toPlace; + placedRects.array[placedRects.array.length] = toPlace; + } + return currentValues; +} + +function $calcValuesForOpt(this$static, option, toPlace, lastPlaced, drawing, placedRects, nodeNodeSpacing){ + var drawingHeight, drawingWidth, height, heightToPlace, newDrawing, width_0, widthToPlace, x_0, y_0; + x_0 = 0; + y_0 = 0; + drawingWidth = drawing.drawingWidth; + drawingHeight = drawing.drawingHeight; + heightToPlace = toPlace.height; + widthToPlace = toPlace.width_0; + switch (option.ordinal) { + case 0: + x_0 = lastPlaced.x_0 + lastPlaced.width_0 + nodeNodeSpacing; + this$static.lpShift?(y_0 = calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing)):(y_0 = lastPlaced.y_0); + width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); + height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); + break; + case 1: + y_0 = lastPlaced.y_0 + lastPlaced.height + nodeNodeSpacing; + this$static.lpShift?(x_0 = calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing)):(x_0 = lastPlaced.x_0); + width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); + height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); + break; + case 2: + x_0 = drawingWidth + nodeNodeSpacing; + y_0 = 0; + width_0 = drawingWidth + nodeNodeSpacing + widthToPlace; + height = $wnd.Math.max(drawingHeight, heightToPlace); + break; + case 3: + x_0 = 0; + y_0 = drawingHeight + nodeNodeSpacing; + width_0 = $wnd.Math.max(drawingWidth, widthToPlace); + height = drawingHeight + nodeNodeSpacing + heightToPlace; + break; + default:throw toJs(new IllegalArgumentException_0('IllegalPlacementOption.')); + } + newDrawing = new DrawingData_0(this$static.aspectRatio, width_0, height, option, x_0, y_0); + return newDrawing; +} + +function $checkSpecialCases(drawing1, drawing2, lastPlaced, toPlace){ + var areaLPB, areaLPR, firstOpt, firstOptLPBorCDB, firstOptLPRorCDR, firstOptLPRorLPB, lpbOpt, lprOpt, secondOpt, secondOptLPBorCDB, secondOptLPRorCDR, secondOptLPRorLPB, lastPlacedBottomBorder, toPlaceBottomBorder, maxYLPR, heightLPR, widthLPR, lastPlacedRightBorder, toPlaceRightBorder, maxXLPB, widthLPB, heightLPB; + firstOpt = drawing1.placementOption; + secondOpt = drawing2.placementOption; + firstOptLPBorCDB = firstOpt == ($clinit_DrawingDataDescriptor() , CANDIDATE_POSITION_LAST_PLACED_BELOW) || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; + secondOptLPBorCDB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; + firstOptLPRorCDR = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; + secondOptLPRorCDR = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; + firstOptLPRorLPB = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; + secondOptLPRorLPB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; + if (firstOptLPBorCDB && secondOptLPBorCDB) { + return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW?drawing1:drawing2; + } + else if (firstOptLPRorCDR && secondOptLPRorCDR) { + return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT?drawing1:drawing2; + } + else if (firstOptLPRorLPB && secondOptLPRorLPB) { + if (firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT) { + lprOpt = drawing1; + lpbOpt = drawing2; + } + else { + lprOpt = drawing2; + lpbOpt = drawing1; + } + areaLPR = (lastPlacedBottomBorder = lastPlaced.y_0 + lastPlaced.height , toPlaceBottomBorder = lprOpt.nextYcoordinate + toPlace.height , maxYLPR = $wnd.Math.max(lastPlacedBottomBorder, toPlaceBottomBorder) , heightLPR = maxYLPR - $wnd.Math.min(lastPlaced.y_0, lprOpt.nextYcoordinate) , widthLPR = lprOpt.nextXcoordinate + toPlace.width_0 - lastPlaced.x_0 , widthLPR * heightLPR); + areaLPB = (lastPlacedRightBorder = lastPlaced.x_0 + lastPlaced.width_0 , toPlaceRightBorder = lpbOpt.nextXcoordinate + toPlace.width_0 , maxXLPB = $wnd.Math.max(lastPlacedRightBorder, toPlaceRightBorder) , widthLPB = maxXLPB - $wnd.Math.min(lastPlaced.x_0, lpbOpt.nextXcoordinate) , heightLPB = lpbOpt.nextYcoordinate + toPlace.height - lastPlaced.y_0 , widthLPB * heightLPB); + return areaLPR <= areaLPB?drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_RIGHT?drawing1:drawing2:drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_BELOW?drawing1:drawing2; + } + return drawing1; +} + +function $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding){ + var candidates, filter, filter$iterator, filters; + candidates = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit, 1), $intern_2, 220, 0, [opt1, opt2, opt3, opt4])); + filters = null; + switch (this$static.goal.ordinal) { + case 1: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new ScaleMeasureFilter, new AreaFilter, new AspectRatioFilter])); + break; + case 0: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AspectRatioFilter, new AreaFilter, new ScaleMeasureFilter])); + break; + case 2: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AreaFilter, new ScaleMeasureFilter, new AspectRatioFilter])); + } + for (filter$iterator = new ArrayList$1(filters); filter$iterator.i < filter$iterator.this$01.array.length;) { + filter = castTo($next_7(filter$iterator), 526); + candidates.array.length > 1 && (candidates = filter.filterList(candidates, this$static.aspectRatio, padding)); + } + if (candidates.array.length == 1) { + return castTo($get_11(candidates, candidates.array.length - 1), 220); + } + if (candidates.array.length == 2) { + return $checkSpecialCases((checkCriticalElementIndex(0, candidates.array.length) , castTo(candidates.array[0], 220)), (checkCriticalElementIndex(1, candidates.array.length) , castTo(candidates.array[1], 220)), lastPlaced, toPlace); + } + return null; +} + +function AreaApproximation(aspectRatio, goal, lpShift){ + this.aspectRatio = aspectRatio; + this.goal = goal; + this.lpShift = lpShift; +} + +defineClass(1256, 1, {}, AreaApproximation); +_.aspectRatio = 0; +_.lpShift = false; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaApproximation_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaApproximation', 1256); +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit = createForInterface('org.eclipse.elk.alg.rectpacking.firstiteration', 'BestCandidateFilter'); +function AreaFilter(){ +} + +defineClass(638, 1, {526:1}, AreaFilter); +_.filterList = function filterList(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, minArea, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + minArea = $intern_59; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + minArea = $wnd.Math.min(minArea, (opt.drawingWidth + (padding.left + padding.right)) * (opt.drawingHeight + (padding.top_0 + padding.bottom))); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_7(candidate$iterator), 220); + (candidate.drawingWidth + (padding.left + padding.right)) * (candidate.drawingHeight + (padding.top_0 + padding.bottom)) == minArea && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaFilter', 638); +function AspectRatioFilter(){ +} + +defineClass(639, 1, {526:1}, AspectRatioFilter); +_.filterList = function filterList_0(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, opt, opt$iterator, remainingCandidates, smallestDeviation; + remainingCandidates = new ArrayList; + smallestDeviation = $intern_59; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + smallestDeviation = $wnd.Math.min(smallestDeviation, $wnd.Math.abs((opt.drawingWidth + (padding.left + padding.right)) / (opt.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio)); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_7(candidate$iterator), 220); + $wnd.Math.abs((candidate.drawingWidth + (padding.left + padding.right)) / (candidate.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio) == smallestDeviation && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AspectRatioFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AspectRatioFilter', 639); +function calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing){ + var closestLeftNeighbour, closestNeighborRightBorder, placedRect, placedRect$iterator, placedRectRightBorder; + closestLeftNeighbour = null; + closestNeighborRightBorder = 0; + for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { + placedRect = castTo($next_7(placedRect$iterator), 33); + placedRectRightBorder = placedRect.x_0 + placedRect.width_0; + if (y_0 < placedRect.y_0 + placedRect.height + nodeNodeSpacing) { + !closestLeftNeighbour?(closestLeftNeighbour = placedRect):lastPlaced.x_0 - placedRectRightBorder < lastPlaced.x_0 - closestNeighborRightBorder && (closestLeftNeighbour = placedRect); + closestNeighborRightBorder = closestLeftNeighbour.x_0 + closestLeftNeighbour.width_0; + } + } + return !closestLeftNeighbour?0:closestNeighborRightBorder + nodeNodeSpacing; +} + +function calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing){ + var closestNeighborBottomBorder, closestUpperNeighbor, placedRect, placedRect$iterator, placedRectBottomBorder; + closestUpperNeighbor = null; + closestNeighborBottomBorder = 0; + for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { + placedRect = castTo($next_7(placedRect$iterator), 33); + placedRectBottomBorder = placedRect.y_0 + placedRect.height; + if (x_0 < placedRect.x_0 + placedRect.width_0 + nodeNodeSpacing) { + !closestUpperNeighbor?(closestUpperNeighbor = placedRect):lastPlaced.y_0 - placedRectBottomBorder < lastPlaced.y_0 - closestNeighborBottomBorder && (closestUpperNeighbor = placedRect); + closestNeighborBottomBorder = closestUpperNeighbor.y_0 + closestUpperNeighbor.height; + } + } + return !closestUpperNeighbor?0:closestNeighborBottomBorder + nodeNodeSpacing; +} + +function ScaleMeasureFilter(){ +} + +defineClass(637, 1, {526:1}, ScaleMeasureFilter); +_.filterList = function filterList_1(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, maxScale, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + maxScale = $intern_60; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + maxScale = $wnd.Math.max(maxScale, computeScaleMeasure(opt.drawingWidth + (padding.left + padding.right), opt.drawingHeight + (padding.top_0 + padding.bottom), opt.dar)); + } + for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { + candidate = castTo($next_7(candidate$iterator), 220); + computeScaleMeasure(candidate.drawingWidth + (padding.left + padding.right), candidate.drawingHeight + (padding.top_0 + padding.bottom), candidate.dar) == maxScale && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_ScaleMeasureFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'ScaleMeasureFilter', 637); +function $clinit_OptimizationGoal(){ + $clinit_OptimizationGoal = emptyMethod; + ASPECT_RATIO_DRIVEN = new OptimizationGoal('ASPECT_RATIO_DRIVEN', 0); + MAX_SCALE_DRIVEN = new OptimizationGoal('MAX_SCALE_DRIVEN', 1); + AREA_DRIVEN = new OptimizationGoal('AREA_DRIVEN', 2); +} + +function OptimizationGoal(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_83(name_0){ + $clinit_OptimizationGoal(); + return valueOf(($clinit_OptimizationGoal$Map() , $MAP_71), name_0); +} + +function values_89(){ + $clinit_OptimizationGoal(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]); +} + +defineClass(381, 22, {3:1, 35:1, 22:1, 381:1}, OptimizationGoal); +var AREA_DRIVEN, ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN; +var Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.options', 'OptimizationGoal', 381, Ljava_lang_Enum_2_classLit, values_89, valueOf_83); +function $clinit_OptimizationGoal$Map(){ + $clinit_OptimizationGoal$Map = emptyMethod; + $MAP_71 = createValueOfMap(($clinit_OptimizationGoal() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]))); +} + +var $MAP_71; +function $clinit_RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider = emptyMethod; + OPTIMIZATION_GOAL_DEFAULT = ($clinit_OptimizationGoal() , MAX_SCALE_DRIVEN); + OPTIMIZATION_GOAL = new Property_1('org.eclipse.elk.rectpacking.optimizationGoal', OPTIMIZATION_GOAL_DEFAULT); + LAST_PLACE_SHIFT = new Property_1('org.eclipse.elk.rectpacking.lastPlaceShift', ($clinit_Boolean() , true)); + valueOf_4(-1); + CURRENT_POSITION = new Property_1('org.eclipse.elk.rectpacking.currentPosition', valueOf_4(-1)); + valueOf_4(-1); + DESIRED_POSITION = new Property_1('org.eclipse.elk.rectpacking.desiredPosition', valueOf_4(-1)); + ONLY_FIRST_ITERATION = new Property_1('org.eclipse.elk.rectpacking.onlyFirstIteration', false); + ROW_COMPACTION = new Property_1('org.eclipse.elk.rectpacking.rowCompaction', true); + EXPAND_TO_ASPECT_RATIO = new Property_1('org.eclipse.elk.rectpacking.expandToAspectRatio', false); + TARGET_WIDTH = new Property_1('org.eclipse.elk.rectpacking.targetWidth', -1); +} + +function RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider(); +} + +defineClass(856, 1, $intern_90, RectPackingMetaDataProvider); +_.apply_4 = function apply_161(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.optimizationGoal'), ''), 'Optimization Goal'), 'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'), OPTIMIZATION_GOAL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.lastPlaceShift'), ''), 'Shift Last Placed.'), 'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.currentPosition'), ''), 'Current position of a node in the order of nodes'), 'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.desiredPosition'), ''), 'Desired index of node'), 'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.onlyFirstIteration'), ''), 'Only Area Approximation'), 'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.rowCompaction'), ''), 'Compact Rows'), 'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.expandToAspectRatio'), ''), 'Fit Aspect Ratio'), 'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.rectpacking.expandToAspectRatio', 'org.eclipse.elk.expandNodes', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.targetWidth'), ''), 'Target Width'), 'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'), -1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); + $apply_21((new RectPackingOptions , registry)); +} +; +var CURRENT_POSITION, DESIRED_POSITION, EXPAND_TO_ASPECT_RATIO, LAST_PLACE_SHIFT, ONLY_FIRST_ITERATION, OPTIMIZATION_GOAL, OPTIMIZATION_GOAL_DEFAULT, ROW_COMPACTION, TARGET_WIDTH; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingMetaDataProvider', 856); +function $clinit_RectPackingOptions(){ + $clinit_RectPackingOptions = emptyMethod; + ASPECT_RATIO_3 = new Property_2(($clinit_CoreOptions() , ASPECT_RATIO_5), 1.3); + EXPAND_NODES = EXPAND_NODES_1; + PADDING_DEFAULT_2 = new ElkPadding_0(15); + PADDING_3 = new Property_2(PADDING_6, PADDING_DEFAULT_2); + SPACING_NODE_NODE_3 = new Property_2(SPACING_NODE_NODE_6, 15); + CONTENT_ALIGNMENT_0 = CONTENT_ALIGNMENT_2; + NODE_SIZE_CONSTRAINTS_4 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_3 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_OPTIONS_4 = NODE_SIZE_OPTIONS_6; + NODE_LABELS_PLACEMENT_4 = NODE_LABELS_PLACEMENT_5; + OMIT_NODE_MICRO_LAYOUT_3 = OMIT_NODE_MICRO_LAYOUT_4; + PORT_LABELS_PLACEMENT_4 = PORT_LABELS_PLACEMENT_5; + OPTIMIZATION_GOAL_0 = ($clinit_RectPackingMetaDataProvider() , OPTIMIZATION_GOAL); + LAST_PLACE_SHIFT_0 = LAST_PLACE_SHIFT; + ONLY_FIRST_ITERATION_0 = ONLY_FIRST_ITERATION; + ROW_COMPACTION_0 = ROW_COMPACTION; + EXPAND_TO_ASPECT_RATIO_0 = EXPAND_TO_ASPECT_RATIO; + INTERACTIVE_5 = INTERACTIVE_7; + INTERACTIVE_LAYOUT_0 = INTERACTIVE_LAYOUT_1; + DESIRED_POSITION_0 = DESIRED_POSITION; + CURRENT_POSITION_0 = CURRENT_POSITION; + TARGET_WIDTH_0 = TARGET_WIDTH; +} + +function $apply_21(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.rectpacking'), 'ELK Rectangle Packing'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'), new RectPackingOptions$RectpackingFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.aspectRatio', 1.3); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.padding', PADDING_DEFAULT_2); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_3)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_3)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_4)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.optimizationGoal', $getDefault(OPTIMIZATION_GOAL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.lastPlaceShift', $getDefault(LAST_PLACE_SHIFT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.onlyFirstIteration', $getDefault(ONLY_FIRST_ITERATION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.rowCompaction', $getDefault(ROW_COMPACTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.expandToAspectRatio', $getDefault(EXPAND_TO_ASPECT_RATIO_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_5)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.desiredPosition', $getDefault(DESIRED_POSITION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.currentPosition', $getDefault(CURRENT_POSITION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.targetWidth', $getDefault(TARGET_WIDTH_0)); +} + +function RectPackingOptions(){ + $clinit_RectPackingOptions(); +} + +defineClass(1004, 1, $intern_90, RectPackingOptions); +_.apply_4 = function apply_162(registry){ + $apply_21(registry); +} +; +var ASPECT_RATIO_3, CONTENT_ALIGNMENT_0, CURRENT_POSITION_0, DESIRED_POSITION_0, EXPAND_NODES, EXPAND_TO_ASPECT_RATIO_0, INTERACTIVE_5, INTERACTIVE_LAYOUT_0, LAST_PLACE_SHIFT_0, NODE_LABELS_PLACEMENT_4, NODE_SIZE_CONSTRAINTS_4, NODE_SIZE_MINIMUM_3, NODE_SIZE_OPTIONS_4, OMIT_NODE_MICRO_LAYOUT_3, ONLY_FIRST_ITERATION_0, OPTIMIZATION_GOAL_0, PADDING_3, PADDING_DEFAULT_2, PORT_LABELS_PLACEMENT_4, ROW_COMPACTION_0, SPACING_NODE_NODE_3, TARGET_WIDTH_0; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions', 1004); +function RectPackingOptions$RectpackingFactory(){ +} + +defineClass(1005, 1, {}, RectPackingOptions$RectpackingFactory); +_.create_0 = function create_26(){ + var provider; + return provider = new RectPackingLayoutProvider , provider; +} +; +_.destroy = function destroy_5(obj){ +} +; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions$RectpackingFactory_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions/RectpackingFactory', 1005); +function absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing){ + var rect, somethingWasChanged; + somethingWasChanged = false; + rect = castTo($get_11(nextBlock.children, 0), 33); + while (placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing)) { + somethingWasChanged = true; + $removeChild(nextBlock, rect); + if (nextBlock.children.array.length == 0) { + break; + } + rect = castTo($get_11(nextBlock.children, 0), 33); + } + nextBlock.children.array.length == 0 && $removeBlock(nextBlock.parentRow, nextBlock); + somethingWasChanged && $updateDimension(block.stack_0); + return somethingWasChanged; +} + +function compact_4(rowIdx, rows_0, boundingWidth, nodeNodeSpacing){ + var block, blockId, blocks, currentStack, nextBlock, nextRowIndex, row, somethingWasChanged, wasFromNextRow, nextBlock_0; + somethingWasChanged = false; + nextRowIndex = rowIdx + 1; + row = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); + blocks = row.children; + currentStack = null; + for (blockId = 0; blockId < row.children.array.length; blockId++) { + block = (checkCriticalElementIndex(blockId, blocks.array.length) , castTo(blocks.array[blockId], 187)); + if (block.fixed_0) { + continue; + } + if (block.children.array.length == 0) { + $clinit_System(); + $removeBlock(row, block); + --blockId; + somethingWasChanged = true; + continue; + } + if (!block.positionFixed) { + !!currentStack && $updateDimension(currentStack); + currentStack = new BlockStack(!currentStack?0:currentStack.x_0 + currentStack.width_0 + nodeNodeSpacing, row.y_0, nodeNodeSpacing); + $setLocation(block, currentStack.x_0 + currentStack.width_0, row.y_0); + $add_3(row.stacks, currentStack); + $addBlock(currentStack, block); + block.positionFixed = true; + } + nextBlock = null; + nextBlock = (nextBlock_0 = null , blockId < row.children.array.length - 1?(nextBlock_0 = castTo($get_11(row.children, blockId + 1), 187)):nextRowIndex < rows_0.array.length && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length != 0 && (nextBlock_0 = castTo($get_11((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children, 0), 187)) , nextBlock_0); + wasFromNextRow = false; + !!nextBlock && (wasFromNextRow = !equals_Ljava_lang_Object__Z__devirtual$(nextBlock.parentRow, row)); + if (nextBlock) { + if (nextBlock.children.array.length == 0) { + $removeBlock(row, nextBlock); + break; + } + else { + $placeRectsIn(block, boundingWidth - block.x_0); + $updateDimension(block.stack_0); + somethingWasChanged = somethingWasChanged | absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing); + } + if (nextBlock.children.array.length == 0) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + nextBlock = null; + while (rows_0.array.length > nextRowIndex && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0) { + $remove_12(rows_0, (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , rows_0.array[nextRowIndex])); + } + } + if (!nextBlock) { + --blockId; + continue; + } + if (placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + continue; + } + if (wasFromNextRow) { + if (placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + continue; + } + else if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + continue; + } + } + else if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + continue; + } + if (somethingWasChanged) { + continue; + } + } + if (useRowHeight(row, block)) { + block.fixed_0 = true; + somethingWasChanged = true; + !!nextBlock && (nextBlock.positionFixed = false); + continue; + } + else { + $updateDimension(block.stack_0); + } + } + return somethingWasChanged; +} + +function placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing){ + var bounds, bounds0, currentBlockMinHeight, nextBlockMinHeight, remainingWidth, somethingWasChanged; + somethingWasChanged = false; + remainingWidth = boundingWidth - block.x_0; + currentBlockMinHeight = block.y_0 - row.y_0 + (bounds0 = $placeRectsIn_1(block, remainingWidth, false) , bounds0.height); + if (nextBlock.minWidth + nodeNodeSpacing > remainingWidth) { + return false; + } + nextBlockMinHeight = (bounds = $placeRectsIn_1(nextBlock, remainingWidth, false) , bounds.height); + if (currentBlockMinHeight + nodeNodeSpacing + nextBlockMinHeight <= row.height) { + $placeRectsIn(block, boundingWidth - block.x_0); + block.fixed_0 = true; + $placeRectsIn(nextBlock, boundingWidth - block.x_0); + $setLocation(nextBlock, block.x_0, block.y_0 + block.height + nodeNodeSpacing); + nextBlock.positionFixed = true; + $addBlock(block.stack_0, nextBlock); + somethingWasChanged = true; + if (wasFromNextRow) { + $addBlock_0(row, nextBlock); + nextBlock.parentRow = row; + if (rows_0.array.length > nextRowIndex) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + } + } + return somethingWasChanged; +} + +function placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing){ + var bounds, currentBlockMinWidth, lastRowOptimization, nextBlockHeight, somethingWasChanged, targetWidthOfNextBlock; + somethingWasChanged = false; + currentBlockMinWidth = $getWidthForFixedHeight(block.stack_0, row.y_0 + row.height - block.stack_0.y_0); + targetWidthOfNextBlock = boundingWidth - (block.stack_0.x_0 + currentBlockMinWidth - nodeNodeSpacing); + if (targetWidthOfNextBlock < nextBlock.minWidth) { + return false; + } + lastRowOptimization = nextRowIndex == rows_0.array.length - 1 && targetWidthOfNextBlock >= (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).width_0; + nextBlockHeight = (bounds = $placeRectsIn_1(nextBlock, targetWidthOfNextBlock, false) , bounds.height); + if (nextBlockHeight > row.height && !lastRowOptimization) { + return false; + } + if (lastRowOptimization || nextBlockHeight <= row.height) { + if (lastRowOptimization && nextBlockHeight > row.height) { + block.height = nextBlockHeight; + $placeRectsIn(block, $getWidthForTargetHeight(block, nextBlockHeight)); + } + else { + $placeRectsIn_2(block.stack_0, currentBlockMinWidth); + block.fixed_0 = true; + } + $placeRectsIn(nextBlock, boundingWidth - (block.x_0 + block.width_0)); + $setLocation(nextBlock, block.stack_0.x_0 + block.stack_0.width_0, row.y_0); + $addBlock_0(row, nextBlock); + if (rows_0.array.length > nextRowIndex) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + somethingWasChanged = true; + } + return somethingWasChanged; +} + +function useRowHeight(row, block){ + var previousWidth, somethingWasChanged, targetWidth; + somethingWasChanged = false; + previousWidth = block.stack_0.width_0; + if (block.height < row.height) { + targetWidth = $getWidthForFixedHeight(block.stack_0, row.height); + if (block.stack_0.width_0 > targetWidth) { + $placeRectsIn_2(block.stack_0, targetWidth); + somethingWasChanged = previousWidth != block.stack_0.width_0; + } + } + return somethingWasChanged; +} + +function place(rectangles, boundingWidth, nodeNodeSpacing){ + var block, currentWidth, drawingHeight, newBlock, potentialRowWidth, rect, rect$iterator, row, rows_0; + rows_0 = new ArrayList; + row = new RectRow(0, nodeNodeSpacing); + drawingHeight = 0; + $addBlock_0(row, new Block(0, 0, row, nodeNodeSpacing)); + currentWidth = 0; + for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { + rect = castTo($doNext(rect$iterator), 33); + block = castTo($get_11(row.children, row.children.array.length - 1), 187); + potentialRowWidth = currentWidth + rect.width_0 + (castTo($get_11(row.children, 0), 187).children.array.length == 0?0:nodeNodeSpacing); + if (potentialRowWidth > boundingWidth) { + currentWidth = 0; + drawingHeight += row.height + nodeNodeSpacing; + rows_0.array[rows_0.array.length] = row; + row = new RectRow(drawingHeight, nodeNodeSpacing); + block = new Block(0, row.y_0, row, nodeNodeSpacing); + $addBlock_0(row, block); + currentWidth = 0; + } + if (block.children.array.length == 0 || rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { + $addChild(block, rect); + } + else { + newBlock = new Block(block.x_0 + block.width_0 + nodeNodeSpacing, row.y_0, row, nodeNodeSpacing); + $addBlock_0(row, newBlock); + $addChild(newBlock, rect); + } + currentWidth = rect.x_0 + rect.width_0; + } + rows_0.array[rows_0.array.length] = row; + return rows_0; +} + +function placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing){ + var lastRow, lastRow0, lastRow_0; + if (rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { + lastRow0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); + if (lastRow0.x_0 + lastRow0.width_0 + rect.width_0 + nodeNodeSpacing <= boundingWidth && (lastRow = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211) , lastRow.y_0 - row.y_0 + rect.height <= row.height || row.children.array.length == 1)) { + $addChild(block, rect); + return true; + } + else if (block.x_0 + rect.width_0 <= boundingWidth && (block.y_0 + block.height + rect.height + nodeNodeSpacing <= row.height || row.children.array.length == 1)) { + $add_3(block.children, rect); + lastRow_0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); + $add_3(block.rows_0, new BlockRow(block.x_0, lastRow_0.y_0 + lastRow_0.height + block.nodeNodeSpacing, block.nodeNodeSpacing)); + $addRectangle(castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211), rect); + $adjustSizeAdd(block, rect); + return true; + } + } + return false; +} + +function expand(rows_0, drawingWidth, additionalHeight){ + var heightPerRow, index_0, row, row$iterator; + heightPerRow = additionalHeight / rows_0.array.length; + index_0 = 0; + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + $setY_1(row, row.y_0 + heightPerRow * index_0); + $expand_2(row, drawingWidth, heightPerRow); + ++index_0; + } +} + +function $adjustWidthAndHeight(this$static, row){ + var index_0, maxHeight, maxWidth, stack_0, stack$iterator; + maxHeight = 0; + maxWidth = 0; + index_0 = 0; + for (stack$iterator = new ArrayList$1(row.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_7(stack$iterator), 443); + $updateDimension(stack_0); + maxHeight = $wnd.Math.max(maxHeight, stack_0.height); + maxWidth += stack_0.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + row.height = maxHeight; + row.width_0 = maxWidth; +} + +function $calculateDimensions(this$static, rows_0){ + var index_0, maxWidth, newHeight, row, row$iterator; + maxWidth = 0; + newHeight = 0; + index_0 = 0; + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + maxWidth = $wnd.Math.max(maxWidth, row.width_0); + newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + this$static.drawingHeight = newHeight; + this$static.drawingWidth = maxWidth; +} + +function $start(this$static, rectangles, maxWidth, minParentSize, progressMonitor, layoutGraph, padding){ + var additionalHeight, aspectRatio, block, block$iterator, currentRow, minHeight, previousRow, row, row$iterator, rowIdx, rows_0, stack_0, totalWidth; + rows_0 = place(rectangles, maxWidth, this$static.nodeNodeSpacing); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + if (this$static.compaction) { + for (rowIdx = 0; rowIdx < rows_0.array.length; rowIdx++) { + currentRow = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); + if (rowIdx != 0) { + previousRow = (checkCriticalElementIndex(rowIdx - 1, rows_0.array.length) , castTo(rows_0.array[rowIdx - 1], 200)); + $setY_1(currentRow, previousRow.y_0 + previousRow.height + this$static.nodeNodeSpacing); + } + compact_4(rowIdx, rows_0, maxWidth, this$static.nodeNodeSpacing); + $adjustWidthAndHeight(this$static, currentRow); + progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + } + } + else { + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + for (block$iterator = new ArrayList$1(row.children); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + stack_0 = new BlockStack(block.x_0, block.y_0, this$static.nodeNodeSpacing); + $addBlock(stack_0, block); + $add_3(row.stacks, stack_0); + } + } + } + $calculateDimensions(this$static, rows_0); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + totalWidth = $wnd.Math.max(this$static.drawingWidth, minParentSize.x_0 - (padding.left + padding.right)); + minHeight = $wnd.Math.max(this$static.drawingHeight, minParentSize.y_0 - (padding.top_0 + padding.bottom)); + additionalHeight = minHeight - this$static.drawingHeight; + if (this$static.expandNodes && this$static.expandToAspectRatio) { + aspectRatio = totalWidth / minHeight; + aspectRatio < this$static.aspectRatio?(totalWidth = minHeight * this$static.aspectRatio):(additionalHeight += totalWidth / this$static.aspectRatio - minHeight); + } + this$static.expandNodes && expand(rows_0, totalWidth, additionalHeight); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + return new DrawingData(this$static.aspectRatio, totalWidth, this$static.drawingHeight + additionalHeight, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); +} + +function RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing){ + this.aspectRatio = aspectRatio; + this.expandNodes = expandNodes; + this.expandToAspectRatio = expandToAspectRatio; + this.compaction = compaction; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(1257, 1, {}, RowFillingAndCompaction); +_.aspectRatio = 0; +_.compaction = false; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.expandNodes = false; +_.expandToAspectRatio = false; +_.nodeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_rectpacking_seconditeration_RowFillingAndCompaction_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.seconditeration', 'RowFillingAndCompaction', 1257); +function $addChild(this$static, rect){ + this$static.rows_0.array.length == 0 && $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); + $add_3(this$static.children, rect); + $addRectangle(castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211), rect); + $adjustSizeAdd(this$static, rect); +} + +function $adjustChildrensXandY(this$static, xChange, yChange){ + var rect, rect$iterator; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + $setLocation_1(rect, rect.x_0 + xChange, rect.y_0 + yChange); + } +} + +function $adjustSizeAdd(this$static, rect){ + var row, row$iterator, totalHeight, widthOflastRow; + widthOflastRow = castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211).width_0; + this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); + this$static.width_0 = $wnd.Math.max(this$static.width_0, widthOflastRow); + this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0 + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing)); + this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); + this$static.maxHeight += rect.height + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing); + this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); + totalHeight = this$static.rows_0.array.length > 0?(this$static.rows_0.array.length - 1) * this$static.nodeNodeSpacing:0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + totalHeight += row.height; + } + this$static.height = totalHeight; + this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); + $notifyAboutNodeChange(this$static.parentRow); +} + +function $adjustSizeAfterRemove(this$static){ + var index_0, newHeight, newWidth, rect, rect$iterator, row, row$iterator, rowsToDelete; + newWidth = 0; + newHeight = 0; + rowsToDelete = new LinkedList; + index_0 = 0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + if (row.rects.array.length == 0) { + $addNode_0(rowsToDelete, row, rowsToDelete.tail.prev, rowsToDelete.tail); + } + else { + newWidth = $wnd.Math.max(newWidth, row.width_0); + newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + } + ++index_0; + } + $removeAll_0(this$static.rows_0, rowsToDelete); + this$static.height = newHeight; + this$static.width_0 = newWidth; + this$static.minWidth = 0; + this$static.minHeight = 0; + this$static.maxHeight = 0; + this$static.smallestRectHeight = $intern_59; + this$static.smallestRectWidth = $intern_59; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); + this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0); + this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); + this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); + this$static.maxHeight += rect.height + this$static.nodeNodeSpacing; + } + this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); + $notifyAboutNodeChange(this$static.parentRow); +} + +function $expand(this$static, additionalWidthPerBlock, additionalHeightForBlock){ + var additionalHeightForRow, index_0, row, row$iterator, widthForRow; + widthForRow = this$static.width_0 + additionalWidthPerBlock; + this$static.width_0 += additionalWidthPerBlock; + this$static.height += additionalHeightForBlock; + additionalHeightForRow = additionalHeightForBlock / this$static.rows_0.array.length; + index_0 = 0; + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + $expand_0(row, widthForRow, additionalHeightForRow, index_0); + ++index_0; + } +} + +function $getWidthForTargetHeight(this$static, height){ + var bounds, lowerBound, newWidth, upperBound, viableWidth; + if (this$static.maxHeight <= height) { + return this$static.minWidth; + } + if ($placeRectsIn_0(this$static, this$static.minWidth, height)) { + return this$static.minWidth; + } + upperBound = this$static.width_0; + lowerBound = this$static.minWidth; + viableWidth = this$static.width_0; + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + while (lowerBound + 1 < upperBound) { + bounds = $placeRectsIn_1(this$static, newWidth, false); + if (bounds.width_0 <= newWidth && bounds.height <= height) { + viableWidth = newWidth; + upperBound = newWidth; + } + else { + lowerBound = newWidth; + } + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + } + return viableWidth; +} + +function $placeRectsIn(this$static, width_0){ + var bounds, oldHeight, oldWidth; + oldWidth = this$static.width_0; + oldHeight = this$static.height; + bounds = $placeRectsIn_1(this$static, width_0, true); + return bounds.width_0 != oldWidth || bounds.height != oldHeight; +} + +function $placeRectsIn_0(this$static, width_0, height){ + var bounds; + bounds = $placeRectsIn_1(this$static, width_0, false); + return bounds.width_0 <= width_0 && bounds.height <= height; +} + +function $placeRectsIn_1(this$static, width_0, placeRects){ + var currentHeight, currentWidth, currentX, currentY, index_0, maxHeightInRow, rect, rect$iterator, row, widthInRow; + currentX = 0; + currentY = this$static.y_0; + currentWidth = 0; + currentHeight = 0; + maxHeightInRow = 0; + widthInRow = 0; + row = 0; + if (placeRects) { + this$static.rows_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); + } + index_0 = 0; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + if (currentX + rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0) > width_0 && maxHeightInRow > 0) { + currentX = 0; + currentY += maxHeightInRow + this$static.nodeNodeSpacing; + currentWidth = $wnd.Math.max(currentWidth, widthInRow); + currentHeight += maxHeightInRow + this$static.nodeNodeSpacing; + maxHeightInRow = 0; + widthInRow = 0; + if (placeRects) { + ++row; + $add_3(this$static.rows_0, new BlockRow(this$static.x_0, currentY, this$static.nodeNodeSpacing)); + } + index_0 = 0; + } + widthInRow += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + maxHeightInRow = $wnd.Math.max(maxHeightInRow, rect.height); + placeRects && $addRectangle(castTo($get_11(this$static.rows_0, row), 211), rect); + currentX += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + currentWidth = $wnd.Math.max(currentWidth, widthInRow); + currentHeight += maxHeightInRow; + if (placeRects) { + this$static.width_0 = currentWidth; + this$static.height = currentHeight; + $notifyAboutNodeChange(this$static.parentRow); + } + return new ElkRectangle_0(this$static.x_0, this$static.y_0, currentWidth, currentHeight); +} + +function $removeChild(this$static, rect){ + var row, row$iterator; + $remove_12(this$static.children, rect); + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + if ($indexOf_3(row.rects, rect, 0) != -1) { + $remove_12(row.rects, rect); + $updateRow(row); + row.rects.array.length == 0 && $remove_12(this$static.rows_0, row); + break; + } + } + $adjustSizeAfterRemove(this$static); +} + +function $setLocation(this$static, xCoord, yCoord){ + var row, row$iterator; + $adjustChildrensXandY(this$static, xCoord - this$static.x_0, yCoord - this$static.y_0); + for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 211); + $setX_0(row, row.x_0 + xCoord - this$static.x_0); + $setY_0(row, row.y_0 + yCoord - this$static.y_0); + } + this$static.x_0 = xCoord; + this$static.y_0 = yCoord; +} + +function Block(xCoord, yCoord, parentRow, nodeNodeSpacing){ + this.children = new ArrayList; + this.rows_0 = new ArrayList; + this.nodeNodeSpacing = nodeNodeSpacing; + this.parentRow = parentRow; + this.x_0 = xCoord; + this.y_0 = yCoord; + this.width_0 = 0; + this.height = 0; +} + +defineClass(187, 1, {187:1}, Block); +_.averageHeight = 0; +_.fixed_0 = false; +_.height = 0; +_.maxHeight = 0; +_.minHeight = 0; +_.minWidth = 0; +_.nodeNodeSpacing = 0; +_.positionFixed = false; +_.smallestRectHeight = $intern_59; +_.smallestRectWidth = $intern_59; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_Block_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'Block', 187); +function $addRectangle(this$static, rect){ + $setX_2(rect, this$static.x_0 + this$static.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing)); + $setY_3(rect, this$static.y_0); + this$static.height = $wnd.Math.max(this$static.height, rect.height); + this$static.width_0 += rect.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.rects, rect); + return true; +} + +function $expand_0(this$static, widthForRow, additionalHeightForRow, index_0){ + var additionalWidthForRect, i, newHeight, newWidth, oldHeight, oldWidth, rect, rect$iterator; + additionalWidthForRect = (widthForRow - this$static.width_0) / this$static.rects.array.length; + i = 0; + this$static.height += additionalHeightForRow; + this$static.width_0 = widthForRow; + for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + oldWidth = rect.width_0; + oldHeight = rect.height; + $setX_2(rect, rect.x_0 + i * additionalWidthForRect); + $setY_3(rect, rect.y_0 + index_0 * additionalHeightForRow); + $setWidth_0(rect, rect.width_0 + additionalWidthForRect); + $setHeight_0(rect, this$static.height); + ++i; + newWidth = rect.width_0; + newHeight = rect.height; + translate_1(rect, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); + } +} + +function $setX_0(this$static, x_0){ + this$static.x_0 = x_0; +} + +function $setY_0(this$static, y_0){ + this$static.y_0 = y_0; +} + +function $updateRow(this$static){ + var height, rect, rect$iterator, width_0; + width_0 = 0; + height = 0; + for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + $setX_2(rect, this$static.x_0 + width_0); + $setY_3(rect, this$static.y_0); + width_0 += rect.width_0 + this$static.nodeNodeSpacing; + height = $wnd.Math.max(height, rect.height + this$static.nodeNodeSpacing); + } + this$static.width_0 = width_0 - this$static.nodeNodeSpacing; + this$static.height = height - this$static.nodeNodeSpacing; +} + +function BlockRow(x_0, y_0, nodeNodeSpacing){ + this.rects = new ArrayList; + this.x_0 = x_0; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(211, 1, {211:1}, BlockRow); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_BlockRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockRow', 211); +function $addBlock(this$static, block){ + block.stack_0 = this$static; + this$static.width_0 = $wnd.Math.max(this$static.width_0, block.width_0); + this$static.height += block.height + (this$static.blocks.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.blocks, block); +} + +function $expand_1(this$static, additionalWidth, additionalHeight){ + var additionalHeightPerBlock, block, block$iterator, index_0; + index_0 = 0; + additionalHeightPerBlock = additionalHeight / this$static.blocks.array.length; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + $setLocation(block, block.x_0, block.y_0 + index_0 * additionalHeightPerBlock); + $expand(block, this$static.width_0 - block.width_0 + additionalWidth, additionalHeightPerBlock); + ++index_0; + } +} + +function $getMinimumWidth_1(this$static){ + var block, block$iterator, minWidth; + minWidth = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + minWidth = $wnd.Math.max(minWidth, block.minWidth); + } + return minWidth; +} + +function $getWidthForFixedHeight(this$static, height){ + var block, block$iterator, bounds, lowerBound, minWidth, newWidth, totalHeight, upperBound, viableWidth; + if (this$static.blocks.array.length == 1) { + return $getWidthForTargetHeight(castTo($get_11(this$static.blocks, 0), 187), height); + } + minWidth = $getMinimumWidth_1(this$static); + totalHeight = 0; + upperBound = this$static.width_0; + lowerBound = minWidth; + viableWidth = this$static.width_0; + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + while (lowerBound + 1 < upperBound) { + totalHeight = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + totalHeight += (bounds = $placeRectsIn_1(block, newWidth, false) , bounds.height); + } + if (totalHeight < height) { + viableWidth = newWidth; + upperBound = newWidth; + } + else { + lowerBound = newWidth; + } + newWidth = (upperBound - lowerBound) / 2 + lowerBound; + } + return viableWidth; +} + +function $placeRectsIn_2(this$static, targetWidth){ + var block, block$iterator, currentHeight, currentWidth, currentY; + currentY = this$static.y_0; + currentHeight = 0; + currentWidth = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + $setLocation(block, this$static.x_0, currentY); + $placeRectsIn(block, targetWidth); + currentWidth = $wnd.Math.max(currentWidth, block.width_0); + currentY += block.height + this$static.nodeNodeSpacing; + currentHeight = currentY; + } + this$static.width_0 = currentWidth; + this$static.height = currentHeight; +} + +function $setLocation_0(this$static, x_0, y_0){ + var block, block$iterator, xDiff, yDiff; + xDiff = x_0 - this$static.x_0; + yDiff = y_0 - this$static.y_0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + $setLocation(block, block.x_0 + xDiff, block.y_0 + yDiff); + } + this$static.x_0 = x_0; + this$static.y_0 = y_0; +} + +function $updateDimension(this$static){ + var block, block$iterator, height, index_0, width_0; + height = 0; + width_0 = 0; + index_0 = 0; + for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + width_0 = $wnd.Math.max(width_0, block.width_0); + height += block.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + this$static.height = height; + this$static.width_0 = width_0; +} + +function BlockStack(x_0, y_0, nodeNodeSpacing){ + this.blocks = new ArrayList; + this.x_0 = x_0; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(443, 1, {443:1}, BlockStack); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_BlockStack_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockStack', 443); +function $setPlacementOption(this$static, placementOption){ + this$static.placementOption = placementOption; +} + +function DrawingData(dar, drawingWidth, drawingHeight, placementOption){ + DrawingData_0.call(this, dar, drawingWidth, drawingHeight, placementOption, 0, 0); +} + +function DrawingData_0(dar, drawingWidth, drawingHeight, placementOption, nextXcoord, nextYcoord){ + this.dar = dar; + this.drawingWidth = drawingWidth; + this.drawingHeight = drawingHeight; + this.placementOption = placementOption; + this.nextXcoordinate = nextXcoord; + this.nextYcoordinate = nextYcoord; + this.drawingWidth > 0 && this.drawingHeight > 0 && computeScaleMeasure(this.drawingWidth, this.drawingHeight, this.dar); +} + +defineClass(220, 1, {220:1}, DrawingData, DrawingData_0); +_.dar = 0; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.nextXcoordinate = 0; +_.nextYcoordinate = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'DrawingData', 220); +function $clinit_DrawingDataDescriptor(){ + $clinit_DrawingDataDescriptor = emptyMethod; + CANDIDATE_POSITION_LAST_PLACED_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_RIGHT', 0); + CANDIDATE_POSITION_LAST_PLACED_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_BELOW', 1); + CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT', 2); + CANDIDATE_POSITION_WHOLE_DRAWING_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW', 3); + WHOLE_DRAWING = new DrawingDataDescriptor('WHOLE_DRAWING', 4); +} + +function DrawingDataDescriptor(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_84(name_0){ + $clinit_DrawingDataDescriptor(); + return valueOf(($clinit_DrawingDataDescriptor$Map() , $MAP_72), name_0); +} + +function values_90(){ + $clinit_DrawingDataDescriptor(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]); +} + +defineClass(355, 22, {3:1, 35:1, 22:1, 355:1}, DrawingDataDescriptor); +var CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, WHOLE_DRAWING; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.util', 'DrawingDataDescriptor', 355, Ljava_lang_Enum_2_classLit, values_90, valueOf_84); +function $clinit_DrawingDataDescriptor$Map(){ + $clinit_DrawingDataDescriptor$Map = emptyMethod; + $MAP_72 = createValueOfMap(($clinit_DrawingDataDescriptor() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]))); +} + +var $MAP_72; +function computeScaleMeasure(width_0, height, dar){ + return $wnd.Math.min(dar / width_0, 1 / height); +} + +function resetCoordinates(graph){ + var node, node$iterator; + for (node$iterator = new AbstractEList$EIterator(graph); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + $setX_2(node, 0); + $setY_3(node, 0); + } +} + +function $addBlock_0(this$static, block){ + this$static.height = $wnd.Math.max(this$static.height, block.height); + this$static.width_0 += block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); + $add_3(this$static.children, block); +} + +function $expand_2(this$static, width_0, additionalHeight){ + var additionalHeightForStack, additionalWidth, additionalWidthPerStack, index_0, stack_0, stack$iterator; + additionalWidth = width_0 - this$static.width_0; + additionalWidthPerStack = additionalWidth / this$static.stacks.array.length; + index_0 = 0; + for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_7(stack$iterator), 443); + additionalHeightForStack = this$static.height - stack_0.height + additionalHeight; + $setLocation_0(stack_0, stack_0.x_0 + index_0 * additionalWidthPerStack, stack_0.y_0); + $expand_1(stack_0, additionalWidthPerStack, additionalHeightForStack); + ++index_0; + } +} + +function $notifyAboutNodeChange(this$static){ + var child, child$iterator, index_0, newMaxHeight, totalStackWidth; + totalStackWidth = 0; + newMaxHeight = $intern_60; + index_0 = 0; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 187); + totalStackWidth += child.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); + newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); + ++index_0; + } + this$static.width_0 = totalStackWidth; + this$static.height = newMaxHeight; +} + +function $removeBlock(this$static, block){ + var child, child$iterator, newMaxHeight; + $remove_12(this$static.children, block); + this$static.width_0 -= block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); + newMaxHeight = $intern_124; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 187); + newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); + } + this$static.height = newMaxHeight; +} + +function $setY_1(this$static, y_0){ + var stack_0, stack$iterator, yChange; + yChange = y_0 - this$static.y_0; + for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { + stack_0 = castTo($next_7(stack$iterator), 443); + $setLocation_0(stack_0, stack_0.x_0, stack_0.y_0 + yChange); + } + this$static.y_0 = y_0; +} + +function RectRow(y_0, nodeNodeSpacing){ + this.children = new ArrayList; + this.stacks = new ArrayList; + this.y_0 = y_0; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(200, 1, {200:1}, RectRow); +_.height = 0; +_.nodeNodeSpacing = 0; +_.width_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_RectRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'RectRow', 200); +function $applyPositions_0(this$static, g){ + var e, e$iterator, elkNode, endLocation, kedgeSection, maxX, maxY, minX, minY, node, node$iterator, padding, source, startLocation, target, uv, vu; + minX = $intern_59; + minY = $intern_59; + maxX = $intern_60; + maxY = $intern_60; + for (node$iterator = new ArrayList$1(g.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 65); + elkNode = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33); + $setLocation_1(elkNode, node.rect.x_0, node.rect.y_0); + minX = $wnd.Math.min(minX, elkNode.x_0); + minY = $wnd.Math.min(minY, elkNode.y_0); + maxX = $wnd.Math.max(maxX, elkNode.x_0 + elkNode.width_0); + maxY = $wnd.Math.max(maxY, elkNode.y_0 + elkNode.height); + } + padding = castTo($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PADDING_4)), 116); + resizeNode_1(this$static.elkGraph, maxX - minX + (padding.left + padding.right), maxY - minY + (padding.top_0 + padding.bottom), true, true); + translate_0(this$static.elkGraph, -minX + padding.left, -minY + padding.top_0); + for (e$iterator = new AbstractEList$EIterator($getContainedEdges(this$static.elkGraph)); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + kedgeSection = firstEdgeSection(e, true, true); + source = getSourceNode(e); + target = getTargetNode_0(e); + startLocation = new KVector_1(source.x_0 + source.width_0 / 2, source.y_0 + source.height / 2); + endLocation = new KVector_1(target.x_0 + target.width_0 / 2, target.y_0 + target.height / 2); + uv = $sub_0(new KVector_1(endLocation.x_0, endLocation.y_0), startLocation); + clipVector(uv, source.width_0, source.height); + $add_19(startLocation, uv); + vu = $sub_0(new KVector_1(startLocation.x_0, startLocation.y_0), endLocation); + clipVector(vu, target.width_0, target.height); + $add_19(endLocation, vu); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); + } +} + +function $importGraph_2(this$static, inputGraph){ + var adapter, calcu, center, closest, compactionStrategy, costFunction, costFunctionID, distance, elkNode, elkNode$iterator, halfHeight, halfWidth, id_0, margin, node, node$iterator, node$iterator0, preferredRootID, rootSelection, treeConstructionStrategy, vertex; + this$static.elkGraph = inputGraph; + this$static.nodeMap = new HashMap; + adapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(this$static.elkGraph)); + calcu = new NodeMarginCalculator(adapter); + $process(calcu); + preferredRootID = castToString($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PROCESSING_ORDER_PREFERRED_ROOT))); + costFunctionID = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION), 316); + treeConstructionStrategy = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_TREE_CONSTRUCTION), 429); + compactionStrategy = castTo($getProperty_0(this$static.elkGraph, COMPACTION_COMPACTION_STRATEGY), 482); + rootSelection = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_ROOT_SELECTION), 430); + this$static.spacingNodeNode = $doubleValue(castToDouble($getProperty_0(this$static.elkGraph, SPACING_NODE_NODE_4))); + costFunction = this$static.centerDistance; + switch (costFunctionID.ordinal) { + case 0: + costFunction = this$static.centerDistance; + break; + case 1: + costFunction = this$static.circleUnderlap; + break; + case 2: + costFunction = this$static.rectangleUnderlap; + break; + case 3: + costFunction = this$static.invertedOverlap; + break; + case 4: + costFunction = this$static.minimumRootDistance; + break; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (costFunctionID.name_0 != null?costFunctionID.name_0:'' + costFunctionID.ordinal))); + } + this$static.graph_0 = new Graph(costFunction, treeConstructionStrategy, compactionStrategy); + $setProperty_0(this$static.graph_0, ($clinit_InternalProperties() , DEBUG_SVG), castToBoolean($getProperty_0(this$static.elkGraph, DEBUG_MODE_1))); + this$static.graph_0.orthogonalCompaction = $booleanValue(castToBoolean($getProperty_0(this$static.elkGraph, COMPACTION_ORTHOGONAL))); + if ($getChildren(this$static.elkGraph).size_0 == 0) { + return this$static.graph_0; + } + for (elkNode$iterator = new AbstractEList$EIterator($getChildren(this$static.elkGraph)); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { + elkNode = castTo($doNext(elkNode$iterator), 33); + halfWidth = elkNode.width_0 / 2; + halfHeight = elkNode.height / 2; + vertex = new KVector_1(elkNode.x_0 + halfWidth, elkNode.y_0 + halfHeight); + while ($containsKey_3(this$static.nodeMap, vertex)) { + $add_18(vertex, ($wnd.Math.random() - 0.5) * $intern_101, ($wnd.Math.random() - 0.5) * $intern_101); + } + margin = castTo($getProperty_0(elkNode, ($clinit_CoreOptions() , MARGINS_0)), 142); + node = new Node_0(vertex, new ElkRectangle_0(vertex.x_0 - halfWidth - this$static.spacingNodeNode / 2 - margin.left, vertex.y_0 - halfHeight - this$static.spacingNodeNode / 2 - margin.top_0, elkNode.width_0 + this$static.spacingNodeNode + (margin.left + margin.right), elkNode.height + this$static.spacingNodeNode + (margin.top_0 + margin.bottom))); + $add_3(this$static.graph_0.vertices, node); + $put_6(this$static.nodeMap, vertex, new Pair(node, elkNode)); + } + switch (rootSelection.ordinal) { + case 0: + if (preferredRootID == null) { + this$static.graph_0.preferredRoot = castTo($get_11(this$static.graph_0.vertices, 0), 65); + } + else { + for (node$iterator0 = new ArrayList$1(this$static.graph_0.vertices); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 65); + id_0 = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33).getIdentifier(); + id_0 != null && $equals_5(id_0, preferredRootID) && (this$static.graph_0.preferredRoot = node); + } + } + + break; + case 1: + center = new KVector_1(this$static.elkGraph.width_0, this$static.elkGraph.height); + center.x_0 *= 0.5; + center.y_0 *= 0.5; + $add_18(center, this$static.elkGraph.x_0, this$static.elkGraph.y_0); + closest = $intern_59; + for (node$iterator = new ArrayList$1(this$static.graph_0.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 65); + distance = $distance_0(node.originalVertex, center); + if (distance < closest) { + closest = distance; + this$static.graph_0.preferredRoot = node; + } + } + + break; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (rootSelection.name_0 != null?rootSelection.name_0:'' + rootSelection.ordinal))); + } + return this$static.graph_0; +} + +function $lambda$1_6(this$static, e_0){ + return $wnd.Math.min($distance_0(e_0.u, this$static.graph_0.preferredRoot.vertex), $distance_0(e_0.v, this$static.graph_0.preferredRoot.vertex)); +} + +function $lambda$2_4(this$static, e_0){ + var n1, n2; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + return $distance_0(e_0.u, e_0.v) - $distance_0(e_0.u, $getPosition(n1.rect)) - $distance_0(e_0.v, $getPosition(n2.rect)); +} + +function $lambda$3_3(this$static, e_0){ + var n1, n2; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + return $underlap(n1, n2); +} + +function $lambda$4_2(this$static, e_0){ + var dist, n1, n2, r1, r2, s; + n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + r1 = n1.rect; + r2 = n2.rect; + dist = shortestDistance_0(r1, r2); + if (dist >= 0) { + return dist; + } + s = $length($sub_0(new KVector_1(r2.x_0 + r2.width_0 / 2, r2.y_0 + r2.height / 2), new KVector_1(r1.x_0 + r1.width_0 / 2, r1.y_0 + r1.height / 2))); + return -(overlap_0(r1, r2) - 1) * s; +} + +function $updateGraph(this$static, g){ + var n, n$iterator, original, updatedNodeMap; + updatedNodeMap = new HashMap; + g.tEdges = null; + g.tree = null; + for (n$iterator = new ArrayList$1(g.vertices); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 65); + original = castTo($get_10(this$static.nodeMap, n.originalVertex), 46); + n.originalVertex = $getCenter(n.rect); + $put_6(updatedNodeMap, n.originalVertex, original); + } + this$static.nodeMap = updatedNodeMap; +} + +function ElkGraphImporter_0(){ + this.centerDistance = new ElkGraphImporter$lambda$0$Type_0; + this.minimumRootDistance = new ElkGraphImporter$lambda$1$Type_0(this); + this.circleUnderlap = new ElkGraphImporter$lambda$2$Type_0(this); + this.rectangleUnderlap = new ElkGraphImporter$lambda$3$Type(this); + this.invertedOverlap = new ElkGraphImporter$lambda$4$Type_0(this); +} + +defineClass(756, 1, {}, ElkGraphImporter_0); +_.spacingNodeNode = 0; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter', 756); +function ElkGraphImporter$lambda$0$Type_0(){ +} + +defineClass(1245, 1, {}, ElkGraphImporter$lambda$0$Type_0); +_.cost = function cost_0(arg0){ + return $distance_0(arg0.u, arg0.v); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$0$Type', 1245); +function ElkGraphImporter$lambda$1$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1246, 1, {}, ElkGraphImporter$lambda$1$Type_0); +_.cost = function cost_1(arg0){ + return $lambda$1_6(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$1$Type', 1246); +function ElkGraphImporter$lambda$2$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1247, 1, {}, ElkGraphImporter$lambda$2$Type_0); +_.cost = function cost_2(arg0){ + return $lambda$2_4(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$2$Type', 1247); +function ElkGraphImporter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1248, 1, {}, ElkGraphImporter$lambda$3$Type); +_.cost = function cost_3(arg0){ + return $lambda$3_3(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$3$Type', 1248); +function ElkGraphImporter$lambda$4$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1249, 1, {}, ElkGraphImporter$lambda$4$Type_0); +_.cost = function cost_4(arg0){ + return $lambda$4_2(this.$$outer_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$4$Type', 1249); +function OverlapRemovalLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +function lambda$0_33(overlapEdges_0, n1_1, n2_2){ + return $add_6(overlapEdges_0, new TEdge(n1_1.originalVertex, n2_2.originalVertex)); +} + +defineClass(1133, 209, $intern_96, OverlapRemovalLayoutProvider); +_.layout = function layout_6(layoutGraph, progressMonitor){ + var graph, graphImporter, iteration, lad, layoutProvider, maxIterations, overlapEdges, overlapHandler, overlapsExisted, processor, processor$iterator, requestedAlgorithm; + if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , UNDERLYING_LAYOUT_ALGORITHM_1))); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + $setProperty_1(layoutGraph, PROCESSING_ORDER_ROOT_SELECTION, ($clinit_RootSelection() , CENTER_NODE)); + $setProperty_1(layoutGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, ($clinit_SpanningTreeCostFunction() , INVERTED_OVERLAP)); + $setProperty_1(layoutGraph, PROCESSING_ORDER_TREE_CONSTRUCTION, ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE)); + maxIterations = castTo($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , OVERLAP_REMOVAL_MAX_ITERATIONS_0)), 19).value_0; + $begin(progressMonitor, 'Overlap removal', 1); + $booleanValue(castToBoolean($getProperty_0(layoutGraph, DEBUG_MODE_2))) && 'null45scanlineOverlaps'; + overlapEdges = new HashSet; + overlapHandler = new OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges); + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + overlapsExisted = true; + iteration = 0; + while (iteration < maxIterations && overlapsExisted) { + if ($booleanValue(castToBoolean($getProperty_0(layoutGraph, OVERLAP_REMOVAL_RUN_SCANLINE_0)))) { + overlapEdges.map_0.clear_0(); + $sweep_0(new ScanlineOverlapCheck(overlapHandler), graph.vertices); + if (overlapEdges.map_0.size_1() == 0) { + break; + } + graph.tEdges = overlapEdges; + } + $reset_4(this.algorithmAssembler); + $setPhase(this.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); + $setPhase(this.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); + $setPhase(this.algorithmAssembler, P3_EXECUTION, ($clinit_OverlapRemovalStrategy() , GROW_TREE)); + this.algorithm = $build_0(this.algorithmAssembler, graph); + for (processor$iterator = new ArrayList$1(this.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(progressMonitor, 1)); + } + $updateGraph(graphImporter, graph); + overlapsExisted = $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , OVERLAPS_EXISTED)))); + ++iteration; + } + $applyPositions_0(graphImporter, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider', 1133); +function $handle_4(this$static, arg0, arg1){ + lambda$0_33(this$static.overlapEdges_0, arg0, arg1); +} + +function OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges_0){ + this.overlapEdges_0 = overlapEdges_0; +} + +defineClass(1134, 1, {}, OverlapRemovalLayoutProvider$lambda$0$Type); +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider/lambda$0$Type', 1134); +function $clinit_SPOrEPhases(){ + $clinit_SPOrEPhases = emptyMethod; + P1_STRUCTURE = new SPOrEPhases('P1_STRUCTURE', 0); + P2_PROCESSING_ORDER = new SPOrEPhases('P2_PROCESSING_ORDER', 1); + P3_EXECUTION = new SPOrEPhases('P3_EXECUTION', 2); +} + +function SPOrEPhases(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_85(name_0){ + $clinit_SPOrEPhases(); + return valueOf(($clinit_SPOrEPhases$Map() , $MAP_73), name_0); +} + +function values_91(){ + $clinit_SPOrEPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]); +} + +defineClass(437, 22, {3:1, 35:1, 22:1, 437:1}, SPOrEPhases); +var P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION; +var Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit = createForEnum('org.eclipse.elk.alg.spore', 'SPOrEPhases', 437, Ljava_lang_Enum_2_classLit, values_91, valueOf_85); +function $clinit_SPOrEPhases$Map(){ + $clinit_SPOrEPhases$Map = emptyMethod; + $MAP_73 = createValueOfMap(($clinit_SPOrEPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]))); +} + +var $MAP_73; +function $shrink(this$static, graph, progressMonitor){ + var processor, processor$iterator; + $reset_4(this$static.algorithmAssembler); + $setPhase(this$static.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); + $setPhase(this$static.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); + $setPhase(this$static.algorithmAssembler, P3_EXECUTION, graph.compactionStrategy); + this$static.algorithm = $build_0(this$static.algorithmAssembler, graph); + $begin(progressMonitor, 'Compaction by shrinking a tree', this$static.algorithm.array.length); + if (graph.vertices.array.length > 1) { + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(progressMonitor, 1)); + } + } + $done_0(progressMonitor); +} + +function ShrinkTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +defineClass(1255, 1, {}, ShrinkTree); +var Lorg_eclipse_elk_alg_spore_ShrinkTree_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTree', 1255); +function ShrinkTreeLayoutProvider(){ + this.shrinktree = new ShrinkTree; +} + +defineClass(1135, 209, $intern_96, ShrinkTreeLayoutProvider); +_.layout = function layout_7(layoutGraph, progressMonitor){ + var graph, graphImporter, lad, layoutProvider, requestedAlgorithm; + if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { + requestedAlgorithm = castToString($getProperty_0(layoutGraph, UNDERLYING_LAYOUT_ALGORITHM)); + lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); + if (lad) { + layoutProvider = castTo($fetch(lad.providerPool), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + $shrink(this.shrinktree, graph, $subTask(progressMonitor, 1)); + $applyPositions_0(graphImporter, graph); +} +; +var Lorg_eclipse_elk_alg_spore_ShrinkTreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTreeLayoutProvider', 1135); +function Graph(costFun, treeStrategy, compStrategy){ + this.vertices = new ArrayList; + this.costFunction = costFun; + this.treeConstructionStrategy = treeStrategy; + this.compactionStrategy = compStrategy; +} + +defineClass(300, 134, {3:1, 300:1, 94:1, 134:1}, Graph); +_.orthogonalCompaction = false; +var Lorg_eclipse_elk_alg_spore_graph_Graph_2_classLit = createForClass('org.eclipse.elk.alg.spore.graph', 'Graph', 300); +function $clinit_CompactionStrategy_1(){ + $clinit_CompactionStrategy_1 = emptyMethod; + DEPTH_FIRST_0 = new CompactionStrategy_1; +} + +function $create_14(this$static){ + switch (this$static.ordinal) { + case 0: + return new ShrinkTreeCompactionPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function CompactionStrategy_1(){ + Enum.call(this, 'DEPTH_FIRST', 0); +} + +function valueOf_86(name_0){ + $clinit_CompactionStrategy_1(); + return valueOf(($clinit_CompactionStrategy$Map_1() , $MAP_74), name_0); +} + +function values_92(){ + $clinit_CompactionStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]); +} + +defineClass(482, 22, {3:1, 35:1, 22:1, 482:1, 246:1, 234:1}, CompactionStrategy_1); +_.create_1 = function create_28(){ + return $create_14(this); +} +; +_.create_2 = function create_27(){ + return $create_14(this); +} +; +var DEPTH_FIRST_0; +var Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'CompactionStrategy', 482, Ljava_lang_Enum_2_classLit, values_92, valueOf_86); +function $clinit_CompactionStrategy$Map_1(){ + $clinit_CompactionStrategy$Map_1 = emptyMethod; + $MAP_74 = createValueOfMap(($clinit_CompactionStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]))); +} + +var $MAP_74; +function $clinit_OverlapRemovalStrategy(){ + $clinit_OverlapRemovalStrategy = emptyMethod; + GROW_TREE = new OverlapRemovalStrategy; +} + +function OverlapRemovalStrategy(){ + Enum.call(this, 'GROW_TREE', 0); +} + +function valueOf_87(name_0){ + $clinit_OverlapRemovalStrategy(); + return valueOf(($clinit_OverlapRemovalStrategy$Map() , $MAP_75), name_0); +} + +function values_93(){ + $clinit_OverlapRemovalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]); +} + +defineClass(551, 22, {3:1, 35:1, 22:1, 551:1, 246:1, 234:1}, OverlapRemovalStrategy); +_.create_1 = function create_30(){ + return new GrowTreePhase; +} +; +_.create_2 = function create_29(){ + return new GrowTreePhase; +} +; +var GROW_TREE; +var Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'OverlapRemovalStrategy', 551, Ljava_lang_Enum_2_classLit, values_93, valueOf_87); +function $clinit_OverlapRemovalStrategy$Map(){ + $clinit_OverlapRemovalStrategy$Map = emptyMethod; + $MAP_75 = createValueOfMap(($clinit_OverlapRemovalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]))); +} + +var $MAP_75; +function $clinit_RootSelection(){ + $clinit_RootSelection = emptyMethod; + FIXED_1 = new RootSelection('FIXED', 0); + CENTER_NODE = new RootSelection('CENTER_NODE', 1); +} + +function RootSelection(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_88(name_0){ + $clinit_RootSelection(); + return valueOf(($clinit_RootSelection$Map() , $MAP_76), name_0); +} + +function values_94(){ + $clinit_RootSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]); +} + +defineClass(430, 22, {3:1, 35:1, 22:1, 430:1}, RootSelection); +var CENTER_NODE, FIXED_1; +var Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'RootSelection', 430, Ljava_lang_Enum_2_classLit, values_94, valueOf_88); +function $clinit_RootSelection$Map(){ + $clinit_RootSelection$Map = emptyMethod; + $MAP_76 = createValueOfMap(($clinit_RootSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]))); +} + +var $MAP_76; +function $clinit_SpanningTreeCostFunction(){ + $clinit_SpanningTreeCostFunction = emptyMethod; + CENTER_DISTANCE = new SpanningTreeCostFunction('CENTER_DISTANCE', 0); + CIRCLE_UNDERLAP = new SpanningTreeCostFunction('CIRCLE_UNDERLAP', 1); + RECTANGLE_UNDERLAP = new SpanningTreeCostFunction('RECTANGLE_UNDERLAP', 2); + INVERTED_OVERLAP = new SpanningTreeCostFunction('INVERTED_OVERLAP', 3); + MINIMUM_ROOT_DISTANCE = new SpanningTreeCostFunction('MINIMUM_ROOT_DISTANCE', 4); +} + +function SpanningTreeCostFunction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_89(name_0){ + $clinit_SpanningTreeCostFunction(); + return valueOf(($clinit_SpanningTreeCostFunction$Map() , $MAP_77), name_0); +} + +function values_95(){ + $clinit_SpanningTreeCostFunction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]); +} + +defineClass(316, 22, {3:1, 35:1, 22:1, 316:1}, SpanningTreeCostFunction); +var CENTER_DISTANCE, CIRCLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE, RECTANGLE_UNDERLAP; +var Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'SpanningTreeCostFunction', 316, Ljava_lang_Enum_2_classLit, values_95, valueOf_89); +function $clinit_SpanningTreeCostFunction$Map(){ + $clinit_SpanningTreeCostFunction$Map = emptyMethod; + $MAP_77 = createValueOfMap(($clinit_SpanningTreeCostFunction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]))); +} + +var $MAP_77; +function $clinit_SporeCompactionOptions(){ + $clinit_SporeCompactionOptions = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); + PROCESSING_ORDER_TREE_CONSTRUCTION = PROCESSING_ORDER_TREE_CONSTRUCTION_0; + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION = PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0; + PROCESSING_ORDER_PREFERRED_ROOT = PROCESSING_ORDER_PREFERRED_ROOT_0; + PROCESSING_ORDER_ROOT_SELECTION = PROCESSING_ORDER_ROOT_SELECTION_0; + PADDING_DEFAULT_3 = new ElkPadding_0(8); + PADDING_4 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_3); + SPACING_NODE_NODE_4 = new Property_2(SPACING_NODE_NODE_6, 8); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; + COMPACTION_COMPACTION_STRATEGY = COMPACTION_COMPACTION_STRATEGY_0; + COMPACTION_ORTHOGONAL = COMPACTION_ORTHOGONAL_0; + DEBUG_MODE_1 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); +} + +function $apply_22(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeCompaction'), 'ELK SPOrE Compaction'), 'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'), new SporeCompactionOptions$SporeCompactionFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.treeConstruction', $getDefault(PROCESSING_ORDER_TREE_CONSTRUCTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.spanningTreeCostFunction', $getDefault(PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.preferredRoot', $getDefault(PROCESSING_ORDER_PREFERRED_ROOT)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.rootSelection', $getDefault(PROCESSING_ORDER_ROOT_SELECTION)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.padding', PADDING_DEFAULT_3); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.spacing.nodeNode', 8); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.compactionStrategy', $getDefault(COMPACTION_COMPACTION_STRATEGY)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.orthogonal', $getDefault(COMPACTION_ORTHOGONAL)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); +} + +function SporeCompactionOptions(){ + $clinit_SporeCompactionOptions(); +} + +defineClass(1002, 1, $intern_90, SporeCompactionOptions); +_.apply_4 = function apply_163(registry){ + $apply_22(registry); +} +; +var COMPACTION_COMPACTION_STRATEGY, COMPACTION_ORTHOGONAL, DEBUG_MODE_1, PADDING_4, PADDING_DEFAULT_3, PROCESSING_ORDER_PREFERRED_ROOT, PROCESSING_ORDER_ROOT_SELECTION, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, PROCESSING_ORDER_TREE_CONSTRUCTION, SPACING_NODE_NODE_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY, UNDERLYING_LAYOUT_ALGORITHM; +var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions', 1002); +function SporeCompactionOptions$SporeCompactionFactory(){ +} + +defineClass(1003, 1, {}, SporeCompactionOptions$SporeCompactionFactory); +_.create_0 = function create_31(){ + var provider; + return provider = new ShrinkTreeLayoutProvider , provider; +} +; +_.destroy = function destroy_6(obj){ +} +; +var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions$SporeCompactionFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions/SporeCompactionFactory', 1003); +function $clinit_SporeMetaDataProvider(){ + $clinit_SporeMetaDataProvider = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM_0 = new Property('org.eclipse.elk.underlyingLayoutAlgorithm'); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT = ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.structure.structureExtractionStrategy', STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT); + PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT = ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE); + PROCESSING_ORDER_TREE_CONSTRUCTION_0 = new Property_1('org.eclipse.elk.processingOrder.treeConstruction', PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT); + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT = ($clinit_SpanningTreeCostFunction() , CIRCLE_UNDERLAP); + PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0 = new Property_1('org.eclipse.elk.processingOrder.spanningTreeCostFunction', PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT); + PROCESSING_ORDER_PREFERRED_ROOT_0 = new Property_1('org.eclipse.elk.processingOrder.preferredRoot', null); + PROCESSING_ORDER_ROOT_SELECTION_DEFAULT = ($clinit_RootSelection() , CENTER_NODE); + PROCESSING_ORDER_ROOT_SELECTION_0 = new Property_1('org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_ROOT_SELECTION_DEFAULT); + COMPACTION_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy_1() , DEPTH_FIRST_0); + COMPACTION_COMPACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.compaction.compactionStrategy', COMPACTION_COMPACTION_STRATEGY_DEFAULT); + COMPACTION_ORTHOGONAL_0 = new Property_1('org.eclipse.elk.compaction.orthogonal', ($clinit_Boolean() , false)); + OVERLAP_REMOVAL_MAX_ITERATIONS = new Property_1('org.eclipse.elk.overlapRemoval.maxIterations', valueOf_4(64)); + OVERLAP_REMOVAL_RUN_SCANLINE = new Property_1('org.eclipse.elk.overlapRemoval.runScanline', true); + PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0 = FIXED_1; +} + +function SporeMetaDataProvider(){ + $clinit_SporeMetaDataProvider(); +} + +defineClass(855, 1, $intern_90, SporeMetaDataProvider); +_.apply_4 = function apply_164(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.underlyingLayoutAlgorithm'), ''), 'Underlying Layout Algorithm'), 'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.structure.structureExtractionStrategy'), 'structure'), 'Structure Extraction Strategy'), 'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'), STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.treeConstruction'), 'processingOrder'), 'Tree Construction Strategy'), 'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'), PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.spanningTreeCostFunction'), 'processingOrder'), 'Cost Function for Spanning Tree'), 'The cost function is used in the creation of the spanning tree.'), PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.preferredRoot'), 'processingOrder'), 'Root node for spanning tree construction'), 'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'), null), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); + $addDependency(registry, 'org.eclipse.elk.processingOrder.preferredRoot', 'org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.rootSelection'), 'processingOrder'), 'Root selection for spanning tree'), 'This sets the method used to select a root node for the construction of a spanning tree'), PROCESSING_ORDER_ROOT_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.compactionStrategy'), 'compaction'), 'Compaction Strategy'), 'This option defines how the compaction is applied.'), COMPACTION_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.orthogonal'), 'compaction'), 'Orthogonal Compaction'), 'Restricts the translation of nodes to orthogonal directions in the compaction phase.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.maxIterations'), 'overlapRemoval'), 'Upper limit for iterations of overlap removal'), null), valueOf_4(64)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.runScanline'), 'overlapRemoval'), 'Whether to run a supplementary scanline overlap check.'), null), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $apply_23((new SporeOverlapRemovalOptions , registry)); + $apply_22((new SporeCompactionOptions , registry)); +} +; +var COMPACTION_COMPACTION_STRATEGY_0, COMPACTION_COMPACTION_STRATEGY_DEFAULT, COMPACTION_ORTHOGONAL_0, OVERLAP_REMOVAL_MAX_ITERATIONS, OVERLAP_REMOVAL_RUN_SCANLINE, PROCESSING_ORDER_PREFERRED_ROOT_0, PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_DEFAULT, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT, PROCESSING_ORDER_TREE_CONSTRUCTION_0, PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT, UNDERLYING_LAYOUT_ALGORITHM_0; +var Lorg_eclipse_elk_alg_spore_options_SporeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeMetaDataProvider', 855); +function $clinit_SporeOverlapRemovalOptions(){ + $clinit_SporeOverlapRemovalOptions = emptyMethod; + UNDERLYING_LAYOUT_ALGORITHM_1 = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); + PADDING_DEFAULT_4 = new ElkPadding_0(8); + new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_4); + new Property_2(SPACING_NODE_NODE_6, 8); + STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1 = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; + OVERLAP_REMOVAL_MAX_ITERATIONS_0 = OVERLAP_REMOVAL_MAX_ITERATIONS; + OVERLAP_REMOVAL_RUN_SCANLINE_0 = OVERLAP_REMOVAL_RUN_SCANLINE; + DEBUG_MODE_2 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); +} + +function $apply_23(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeOverlap'), 'ELK SPOrE Overlap Removal'), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new SporeOverlapRemovalOptions$SporeOverlapFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM_1)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.padding', PADDING_DEFAULT_4); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.spacing.nodeNode', 8); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.maxIterations', $getDefault(OVERLAP_REMOVAL_MAX_ITERATIONS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.runScanline', $getDefault(OVERLAP_REMOVAL_RUN_SCANLINE_0)); + $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); +} + +function SporeOverlapRemovalOptions(){ + $clinit_SporeOverlapRemovalOptions(); +} + +defineClass($intern_45, 1, $intern_90, SporeOverlapRemovalOptions); +_.apply_4 = function apply_165(registry){ + $apply_23(registry); +} +; +var DEBUG_MODE_2, OVERLAP_REMOVAL_MAX_ITERATIONS_0, OVERLAP_REMOVAL_RUN_SCANLINE_0, PADDING_DEFAULT_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1, UNDERLYING_LAYOUT_ALGORITHM_1; +var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions', $intern_45); +function SporeOverlapRemovalOptions$SporeOverlapFactory(){ +} + +defineClass(1001, 1, {}, SporeOverlapRemovalOptions$SporeOverlapFactory); +_.create_0 = function create_32(){ + var provider; + return provider = new OverlapRemovalLayoutProvider , provider; +} +; +_.destroy = function destroy_7(obj){ +} +; +var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions$SporeOverlapFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions/SporeOverlapFactory', 1001); +function $clinit_StructureExtractionStrategy(){ + $clinit_StructureExtractionStrategy = emptyMethod; + DELAUNAY_TRIANGULATION = new StructureExtractionStrategy; +} + +function $create_15(this$static){ + switch (this$static.ordinal) { + case 0: + return new DelaunayTriangulationPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function StructureExtractionStrategy(){ + Enum.call(this, 'DELAUNAY_TRIANGULATION', 0); +} + +function valueOf_90(name_0){ + $clinit_StructureExtractionStrategy(); + return valueOf(($clinit_StructureExtractionStrategy$Map() , $MAP_78), name_0); +} + +function values_96(){ + $clinit_StructureExtractionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]); +} + +defineClass(530, 22, {3:1, 35:1, 22:1, 530:1, 246:1, 234:1}, StructureExtractionStrategy); +_.create_1 = function create_34(){ + return $create_15(this); +} +; +_.create_2 = function create_33(){ + return $create_15(this); +} +; +var DELAUNAY_TRIANGULATION; +var Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'StructureExtractionStrategy', 530, Ljava_lang_Enum_2_classLit, values_96, valueOf_90); +function $clinit_StructureExtractionStrategy$Map(){ + $clinit_StructureExtractionStrategy$Map = emptyMethod; + $MAP_78 = createValueOfMap(($clinit_StructureExtractionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]))); +} + +var $MAP_78; +function $clinit_TreeConstructionStrategy(){ + $clinit_TreeConstructionStrategy = emptyMethod; + MINIMUM_SPANNING_TREE = new TreeConstructionStrategy('MINIMUM_SPANNING_TREE', 0); + MAXIMUM_SPANNING_TREE = new TreeConstructionStrategy('MAXIMUM_SPANNING_TREE', 1); +} + +function $create_16(this$static){ + switch (this$static.ordinal) { + case 0: + return new MinSTPhase; + case 1: + return new MaxSTPhase; + default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); + } +} + +function TreeConstructionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_91(name_0){ + $clinit_TreeConstructionStrategy(); + return valueOf(($clinit_TreeConstructionStrategy$Map() , $MAP_79), name_0); +} + +function values_97(){ + $clinit_TreeConstructionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]); +} + +defineClass(429, 22, {3:1, 35:1, 22:1, 429:1, 246:1, 234:1}, TreeConstructionStrategy); +_.create_1 = function create_36(){ + return $create_16(this); +} +; +_.create_2 = function create_35(){ + return $create_16(this); +} +; +var MAXIMUM_SPANNING_TREE, MINIMUM_SPANNING_TREE; +var Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'TreeConstructionStrategy', 429, Ljava_lang_Enum_2_classLit, values_97, valueOf_91); +function $clinit_TreeConstructionStrategy$Map(){ + $clinit_TreeConstructionStrategy$Map = emptyMethod; + $MAP_79 = createValueOfMap(($clinit_TreeConstructionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]))); +} + +var $MAP_79; +function $process_94(graph, progressMonitor){ + var vertices; + $begin(progressMonitor, 'Delaunay triangulation', 1); + vertices = new ArrayList; + $forEach_1(graph.vertices, new DelaunayTriangulationPhase$lambda$0$Type(vertices)); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG)))) && 'null10bw'; + !graph.tEdges?(graph.tEdges = triangulate(vertices)):$addAll(graph.tEdges, triangulate(vertices)); + $done_0(progressMonitor); +} + +function DelaunayTriangulationPhase(){ +} + +defineClass(1443, 1, $intern_113, DelaunayTriangulationPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_26(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_90(graph, progressMonitor){ + $process_94(castTo(graph, 300), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase', 1443); +function DelaunayTriangulationPhase$lambda$0$Type(vertices_0){ + this.vertices_0 = vertices_0; +} + +defineClass(1444, 1, $intern_19, DelaunayTriangulationPhase$lambda$0$Type); +_.accept = function accept_132(arg0){ + $add_3(this.vertices_0, castTo(arg0, 65).originalVertex); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase/lambda$0$Type', 1444); +function $addNode_1(this$static, s, t){ + var child, tTree, tTree$iterator; + for (tTree$iterator = new ArrayList$1(t.children); tTree$iterator.i < tTree$iterator.this$01.array.length;) { + tTree = castTo($next_7(tTree$iterator), 221); + child = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); + $add_3(s.children, child); + $addNode_1(this$static, child, tTree); + } +} + +function $convert(this$static, tTree, graph){ + var root; + $reset(this$static.nodeMap); + $forEach_1(graph.vertices, new MinSTPhase$lambda$0$Type(this$static)); + root = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); + $addNode_1(this$static, root, tTree); + graph.tree = root; +} + +function $lambda$0_10(this$static, n_0){ + return $put_6(this$static.nodeMap, n_0.originalVertex, n_0); +} + +function MinSTPhase(){ + this.nodeMap = new HashMap; +} + +defineClass(783, 1, $intern_113, MinSTPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_27(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_91(graph, progressMonitor){ + this.process_0(castTo(graph, 300), progressMonitor); +} +; +_.process_0 = function process_92(graph, progressMonitor){ + var lastArg, root, tTree; + $begin(progressMonitor, 'Minimum spanning tree construction', 1); + graph.preferredRoot?(root = graph.preferredRoot.originalVertex):(root = castTo($get_11(graph.vertices, 0), 65).originalVertex); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tTree = createSpanningTree(graph.tEdges, root, (lastArg = graph.costFunction , lastArg))):(tTree = createSpanningTree(graph.tEdges, root, graph.costFunction)); + $convert(this, tTree, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase', 783); +function MaxSTPhase(){ + MinSTPhase.call(this); +} + +function lambda$0_34(graph_0, e_1){ + return -graph_0.costFunction.cost(e_1); +} + +defineClass(1446, 783, $intern_113, MaxSTPhase); +_.process_0 = function process_93(graph, progressMonitor){ + var invertedCF, lastArg, root, tree; + $begin(progressMonitor, 'Maximum spanning tree construction', 1); + invertedCF = new MaxSTPhase$lambda$0$Type(graph); + graph.preferredRoot?(root = graph.preferredRoot.vertex):(root = castTo($get_11(graph.vertices, 0), 65).vertex); + $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tree = createSpanningTree(graph.tEdges, root, (lastArg = invertedCF , lastArg))):(tree = createSpanningTree(graph.tEdges, root, invertedCF)); + $convert(this, tree, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase', 1446); +function MaxSTPhase$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1447, 1, {}, MaxSTPhase$lambda$0$Type); +_.cost = function cost_5(arg0){ + return lambda$0_34(this.graph_0, arg0); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase/lambda$0$Type', 1447); +function MinSTPhase$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1445, 1, $intern_19, MinSTPhase$lambda$0$Type); +_.accept = function accept_133(arg0){ + $lambda$0_10(this.$$outer_0, castTo(arg0, 65)); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase/lambda$0$Type', 1445); +function $debugOut(this$static, c){ + $drawTree(this$static, this$static.root, this$static.svg); + castTo(this$static.root.node, 65); + !!c && castTo(c.node, 65).rect; +} + +function $drawTree(this$static, t, img){ + castTo(t.node, 65); + $forEach_1(t.children, new GrowTreePhase$lambda$0$Type(this$static, img, t)); +} + +function $growAt(this$static, r){ + var c, c$iterator, t; + for (c$iterator = new ArrayList$1(r.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_7(c$iterator), 221); + $translate(castTo(c.node, 65), $sub_0($clone_0(castTo(r.node, 65).vertex), castTo(r.node, 65).originalVertex)); + t = overlap_0(castTo(r.node, 65).rect, castTo(c.node, 65).rect); + t > 1 && (this$static.overlapsExisted = true); + $setCenterPosition(castTo(c.node, 65), $add_19($clone_0(castTo(r.node, 65).vertex), $scale($sub_0($clone_0(castTo(c.node, 65).originalVertex), castTo(r.node, 65).originalVertex), t))); + $debugOut(this$static, r); + $growAt(this$static, c); + } +} + +function $lambda$0_11(this$static, img_1, t_2, c_2){ + castTo(t_2.node, 65); + castTo(t_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + $forEach_1(c_2.children, new GrowTreePhase$lambda$0$Type(this$static, img_1, c_2)); +} + +function $process_95(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Grow Tree', 1); + this$static.root = graph.tree; + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { + this$static.svg = new SVGImage; + $debugOut(this$static, null); + } + else { + this$static.svg = new SVGImage; + } + this$static.overlapsExisted = false; + $growAt(this$static, graph.tree); + $setProperty_0(graph, OVERLAPS_EXISTED, ($clinit_Boolean() , this$static.overlapsExisted?true:false)); + $done_0(progressMonitor); +} + +function GrowTreePhase(){ +} + +defineClass(785, 1, $intern_113, GrowTreePhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_28(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_94(graph, progressMonitor){ + $process_95(this, castTo(graph, 300), progressMonitor); +} +; +_.overlapsExisted = false; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase', 785); +function GrowTreePhase$lambda$0$Type($$outer_0, img_1, t_2){ + this.$$outer_0 = $$outer_0; + this.img_1 = img_1; + this.t_2 = t_2; +} + +defineClass(786, 1, $intern_19, GrowTreePhase$lambda$0$Type); +_.accept = function accept_134(arg0){ + $lambda$0_11(this.$$outer_0, this.img_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase/lambda$0$Type', 786); +function $debugOut_0(this$static, tree){ + var svg; + svg = new SVGImage; + castTo(tree.node, 65); + castTo(tree.node, 65); + castTo(tree.node, 65); + $forEach_1(tree.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg, tree)); +} + +function $lambda$0_12(this$static, svg_1, t_2, c_2){ + var cv; + castTo(t_2.node, 65); + castTo(t_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + cv = $sub_0($clone_0(castTo(t_2.node, 65).vertex), castTo(c_2.node, 65).vertex); + $scaleToLength(cv, $distance(castTo(t_2.node, 65), castTo(c_2.node, 65), cv)); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65).vertex.x_0 + cv.x_0; + castTo(c_2.node, 65).vertex.y_0 + cv.y_0; + castTo(c_2.node, 65); + $forEach_1(c_2.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg_1, c_2)); +} + +function $process_96(this$static, graph, progressMonitor){ + var lastArg; + $begin(progressMonitor, 'Shrinking tree compaction', 1); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { + $debugOut_0(this$static, graph.tree); + compact_0(graph.tree, (lastArg = graph.orthogonalCompaction , lastArg)); + } + else { + compact_0(graph.tree, graph.orthogonalCompaction); + } + $done_0(progressMonitor); +} + +function ShrinkTreeCompactionPhase(){ +} + +defineClass(1448, 1, $intern_113, ShrinkTreeCompactionPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_29(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_95(graph, progressMonitor){ + $process_96(this, castTo(graph, 300), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase', 1448); +function ShrinkTreeCompactionPhase$lambda$0$Type($$outer_0, svg_1, t_2){ + this.$$outer_0 = $$outer_0; + this.svg_1 = svg_1; + this.t_2 = t_2; +} + +defineClass(784, 1, $intern_19, ShrinkTreeCompactionPhase$lambda$0$Type); +_.accept = function accept_135(arg0){ + $lambda$0_12(this.$$outer_0, this.svg_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase/lambda$0$Type', 784); +var Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit = createForInterface('org.eclipse.elk.core.util', 'IGraphElementVisitor'); +function $clinit_LayoutConfigurator(){ + $clinit_LayoutConfigurator = emptyMethod; + new Property('org.eclipse.elk.addLayoutConfig'); + NO_OVERWRITE_HOLDER = new LayoutConfigurator$lambda$2$Type; + NO_OVERWRITE = new LayoutConfigurator$lambda$0$Type; + OPTION_TARGET_FILTER = new LayoutConfigurator$lambda$1$Type; +} + +function $addFilter(this$static, filter){ + $add_3(this$static.optionFilters, filter); + return this$static; +} + +function $applyProperties(this$static, element, properties){ + var accept, clone, entry, entry$iterator, filters, value_0; + filters = this$static.optionFilters; + for (entry$iterator = (!properties.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):properties.propertyMap).entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + accept = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(filters, 16)), new Predicate$lambda$2$Type(new LayoutConfigurator$lambda$3$Type(element, entry)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); + if (accept) { + value_0 = entry.getValue(); + if (instanceOf(value_0, 4)) { + clone = clone_11(value_0); + clone != null && (value_0 = clone); + } + element.setProperty(castTo(entry.getKey(), 146), value_0); + } + } +} + +function $configure(this$static, elementClass){ + var result; + result = castTo($get_10(this$static.classOptionMap, elementClass), 134); + if (!result) { + result = new MapPropertyHolder; + $put_6(this$static.classOptionMap, elementClass, result); + } + return result; +} + +function $findClassOptions(this$static, element){ + var combined; + combined = new MapPropertyHolder; + !!element && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit), 94)); + instanceOf(element, 470) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkShape_2_classLit), 94)); + if (instanceOf(element, 354)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), 94)); + return combined; + } + instanceOf(element, 82) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit), 94)); + if (instanceOf(element, 239)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkNode_2_classLit), 94)); + return combined; + } + if (instanceOf(element, 186)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkPort_2_classLit), 94)); + return combined; + } + instanceOf(element, 352) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), 94)); + return combined; +} + +function LayoutConfigurator(){ + $clinit_LayoutConfigurator(); + this.elementOptionMap = new HashMap; + this.classOptionMap = new HashMap; + this.optionFilters = new ArrayList; +} + +function lambda$1_17(e_0, property_1){ + $clinit_LayoutConfigurator(); + var optionData, targets; + optionData = $getOptionData(getInstance(), property_1.getId()); + if (optionData) { + targets = optionData.targets; + if (instanceOf(e_0, 239)) { + return $isHierarchical_0(castTo(e_0, 33))?$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(targets, PARENTS):$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)); + } + else if (instanceOf(e_0, 352)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , EDGES)); + } + else if (instanceOf(e_0, 186)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , PORTS)); + } + else if (instanceOf(e_0, 354)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , LABELS)); + } + } + return true; +} + +function lambda$3_6(element_0, entry_1, filter_2){ + $clinit_LayoutConfigurator(); + return filter_2.accept_3(element_0, castTo(entry_1.getKey(), 146)); +} + +defineClass(860, 1, {527:1}, LayoutConfigurator); +_.visit = function visit(element){ + var combined; + combined = $findClassOptions(this, element); + $copyProperties(combined, castTo($get_10(this.elementOptionMap, element), 94)); + $applyProperties(this, element, combined); +} +; +var NO_OVERWRITE, NO_OVERWRITE_HOLDER, OPTION_TARGET_FILTER; +var Lorg_eclipse_elk_core_LayoutConfigurator_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator', 860); +var Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit = createForInterface('org.eclipse.elk.core', 'LayoutConfigurator/IPropertyHolderOptionFilter'); +function LayoutConfigurator$lambda$0$Type(){ +} + +defineClass(932, 1, {1933:1}, LayoutConfigurator$lambda$0$Type); +_.accept_3 = function accept_136(e, p){ + return $clinit_LayoutConfigurator() , !e.hasProperty(p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$0$Type', 932); +function $accept_5(e, p){ + return lambda$1_17(e, p); +} + +function LayoutConfigurator$lambda$1$Type(){ +} + +defineClass(933, 1, {1933:1}, LayoutConfigurator$lambda$1$Type); +_.accept_3 = function accept_137(e, p){ + return $accept_5(e, p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$1$Type', 933); +function LayoutConfigurator$lambda$2$Type(){ +} + +defineClass(931, 1, {831:1}, LayoutConfigurator$lambda$2$Type); +_.accept_4 = function accept_138(holder, property){ + return $clinit_LayoutConfigurator() , !holder.hasProperty(property); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$2$Type', 931); +function LayoutConfigurator$lambda$3$Type(element_0, entry_1){ + this.element_0 = element_0; + this.entry_1 = entry_1; +} + +defineClass(934, 1, $intern_39, LayoutConfigurator$lambda$3$Type); +_.test_0 = function test_106(arg0){ + return lambda$3_6(this.element_0, this.entry_1, castTo(arg0, 1933)); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$3$Type', 934); +function $countNodesRecursively(this$static, layoutNode, countAncestors){ + var childNode, childNode$iterator, count, parent_0; + count = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; + for (childNode$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 33); + (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 == 0 || (count += $countNodesRecursively(this$static, childNode, false)); + } + if (countAncestors) { + parent_0 = $getParent_2(layoutNode); + while (parent_0) { + count += (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; + parent_0 = $getParent_2(parent_0); + } + } + return count; +} + +function $countNodesWithHierarchy(this$static, parentNode){ + var childData, childNode, childNode$iterator, count, parentData; + count = (!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0; + for (childNode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { + childNode = castTo($doNext(childNode$iterator), 33); + if (maskUndefined($getProperty_0(childNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) !== maskUndefined(($clinit_HierarchyHandling() , SEPARATE_CHILDREN))) { + parentData = castTo($getProperty_0(parentNode, RESOLVED_ALGORITHM), 149); + childData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 149); + (parentData == childData || !!parentData && $equals_8(parentData, childData)) && (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 != 0 && (count += $countNodesWithHierarchy(this$static, childNode)); + } + } + return count; +} + +function $evaluateHierarchyHandlingInheritance(layoutNode){ + var parentHandling; + if (maskUndefined($getProperty_0(layoutNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) === maskUndefined(($clinit_HierarchyHandling() , INHERIT))) { + if (!$getParent_2(layoutNode)) { + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); + } + else { + parentHandling = castTo($getProperty_0($getParent_2(layoutNode), HIERARCHY_HANDLING_0), 334); + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, parentHandling); + } + } +} + +function $executeAlgorithm(layoutNode, algorithmData, progressMonitor){ + var exception, layoutProvider; + layoutProvider = castTo($fetch(algorithmData.providerPool), 209); + try { + layoutProvider.layout(layoutNode, progressMonitor); + $release(algorithmData.providerPool, layoutProvider); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + throw toJs(exception); + } + else + throw toJs($e0); + } +} + +function $gatherInsideSelfLoops(node){ + var edge, edge$iterator, insideSelfLoops; + if ($booleanValue(castToBoolean($getProperty_0(node, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0))))) { + insideSelfLoops = new ArrayList; + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + $isSelfloop(edge) && $booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO_0))) && (insideSelfLoops.array[insideSelfLoops.array.length] = edge , true); + } + return insideSelfLoops; + } + else { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $layout_3(this$static, layoutGraph, progressMonitor){ + var nodeCount; + nodeCount = $countNodesRecursively(this$static, layoutGraph, true); + $begin(progressMonitor, 'Recursive Graph Layout', nodeCount); + applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new DeprecatedLayoutOptionReplacer])); + $hasProperty_0(layoutGraph, ($clinit_CoreOptions() , RESOLVED_ALGORITHM)) || applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new LayoutAlgorithmResolver])); + $layoutRecursively(this$static, layoutGraph, null, progressMonitor); + $done_0(progressMonitor); +} + +function $layoutRecursively(this$static, layoutNode, testController, progressMonitor){ + var algorithmData, child, child$iterator, childLayoutSelfLoops, childrenInsideSelfLoops, hasChildren, hasInsideSelfLoops, insideSelfLoops, node, nodeCount, nodeQueue, selfLoop, selfLoop$iterator, stopHierarchy, supportsInsideSelfLoops; + if ($booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_CoreOptions() , NO_LAYOUT_0))))) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + hasChildren = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0 != 0; + insideSelfLoops = $gatherInsideSelfLoops(layoutNode); + hasInsideSelfLoops = !insideSelfLoops.isEmpty(); + if (hasChildren || hasInsideSelfLoops) { + algorithmData = castTo($getProperty_0(layoutNode, RESOLVED_ALGORITHM), 149); + if (!algorithmData) { + throw toJs(new UnsupportedConfigurationException_0('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.')); + } + supportsInsideSelfLoops = $supportsFeature(algorithmData, ($clinit_GraphFeature() , INSIDE_SELF_LOOPS)); + $evaluateHierarchyHandlingInheritance(layoutNode); + if (!hasChildren && hasInsideSelfLoops && !supportsInsideSelfLoops) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + childrenInsideSelfLoops = new ArrayList; + if (maskUndefined($getProperty_0(layoutNode, HIERARCHY_HANDLING_0)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)) && ($supportsFeature(algorithmData, COMPOUND) || $supportsFeature(algorithmData, CLUSTERS))) { + nodeCount = $countNodesWithHierarchy(this$static, layoutNode); + nodeQueue = new LinkedList; + $addAll(nodeQueue, (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); + while (nodeQueue.size_0 != 0) { + node = castTo(nodeQueue.size_0 == 0?null:(checkCriticalElement(nodeQueue.size_0 != 0) , $removeNode_0(nodeQueue, nodeQueue.header.next_0)), 33); + $evaluateHierarchyHandlingInheritance(node); + stopHierarchy = maskUndefined($getProperty_0(node, HIERARCHY_HANDLING_0)) === maskUndefined(SEPARATE_CHILDREN); + if (stopHierarchy || $hasProperty_0(node, ALGORITHM) && !$equals_8(algorithmData, $getProperty_0(node, RESOLVED_ALGORITHM))) { + childLayoutSelfLoops = $layoutRecursively(this$static, node, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + $setProperty_1(node, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); + applyConfiguredNodeScaling(node); + } + else { + $addAll(nodeQueue, (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); + } + } + } + else { + nodeCount = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; + for (child$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + childLayoutSelfLoops = $layoutRecursively(this$static, child, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + applyConfiguredNodeScaling(child); + } + } + for (selfLoop$iterator = new ArrayList$1(childrenInsideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_7(selfLoop$iterator), 79); + $setProperty_1(selfLoop, NO_LAYOUT_0, ($clinit_Boolean() , true)); + } + $executeAlgorithm(layoutNode, algorithmData, $subTask(progressMonitor, nodeCount)); + $postProcessInsideSelfLoops(childrenInsideSelfLoops); + return hasInsideSelfLoops && supportsInsideSelfLoops?insideSelfLoops:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); + } + else { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } +} + +function $postProcessInsideSelfLoops(insideSelfLoops){ + var bend, bend$iterator, node, section, selfLoop, selfLoop$iterator, xOffset, yOffset; + for (selfLoop$iterator = new ArrayList$1(insideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_7(selfLoop$iterator), 79); + node = connectableShapeToNode(castTo($get_20((!selfLoop.sources && (selfLoop.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, selfLoop, 4, 7)) , selfLoop.sources), 0), 82)); + xOffset = node.x_0; + yOffset = node.y_0; + section = castTo($get_20((!selfLoop.sections && (selfLoop.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, selfLoop, 6, 6)) , selfLoop.sections), 0), 202); + $setStartLocation(section, section.startX + xOffset, section.startY + yOffset); + $setEndLocation(section, section.endX + xOffset, section.endY + yOffset); + for (bend$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bend$iterator.cursor != bend$iterator.this$01_2.size_1();) { + bend = castTo($doNext(bend$iterator), 469); + $set_10(bend, bend.x_0 + xOffset, bend.y_0 + yOffset); + } + $offset_1(castTo($getProperty_0(selfLoop, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74), xOffset, yOffset); + } +} + +function RecursiveGraphLayoutEngine(){ +} + +defineClass(858, 1, {}, RecursiveGraphLayoutEngine); +var Lorg_eclipse_elk_core_RecursiveGraphLayoutEngine_2_classLit = createForClass('org.eclipse.elk.core', 'RecursiveGraphLayoutEngine', 858); +function UnsupportedConfigurationException(){ + RuntimeException.call(this); +} + +function UnsupportedConfigurationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(296, 60, $intern_43, UnsupportedConfigurationException, UnsupportedConfigurationException_0); +var Lorg_eclipse_elk_core_UnsupportedConfigurationException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedConfigurationException', 296); +function UnsupportedGraphException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(453, 60, $intern_43, UnsupportedGraphException); +var Lorg_eclipse_elk_core_UnsupportedGraphException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedGraphException', 453); +function $ensureListSize(this$static, size_0){ + var i; + for (i = this$static.list.array.length; i < size_0; i++) { + $add_3(this$static.list, this$static.provideDefault()); + } +} + +function $getListItem(this$static, index_0){ + if (index_0 < 0) { + throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); + } + $ensureListSize(this$static, index_0 + 1); + return $get_11(this$static.list, index_0); +} + +function $setListItem(this$static, index_0, value_0){ + if (index_0 < 0) { + throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); + } + if (index_0 < this$static.list.array.length) { + $set_1(this$static.list, index_0, value_0); + } + else { + $ensureListSize(this$static, index_0); + $add_3(this$static.list, value_0); + } +} + +function AbstractRandomListAccessor(){ + this.list = new ArrayList; +} + +defineClass(754, 1, {}); +var Lorg_eclipse_elk_core_util_AbstractRandomListAccessor_2_classLit = createForClass('org.eclipse.elk.core.util', 'AbstractRandomListAccessor', 754); +function $addProcessorConfiguration(this$static, config){ + $addAll_6(this$static.additionalProcessors, config); + return this$static; +} + +function $build_0(this$static, graph){ + var algorithm, phase, phase$array, phase$array0, phase$index, phase$index0, phase$max, phase$max0, phaseEnumConstants, phaseFactory, phaseImplementation, phaseImplementations, processorConfiguration; + if (this$static.failOnMissingPhase && this$static.configuredPhases.size_0 < this$static.numberOfPhases) { + throw toJs(new IllegalStateException_0('Expected ' + this$static.numberOfPhases + ' phases to be configured; ' + 'only found ' + this$static.configuredPhases.size_0)); + } + phaseEnumConstants = castTo($getEnumConstants(this$static.phasesEnumClass), 9); + phaseImplementations = newArrayListWithCapacity(this$static.numberOfPhases); + for (phase$array0 = phaseEnumConstants , phase$index0 = 0 , phase$max0 = phase$array0.length; phase$index0 < phase$max0; ++phase$index0) { + phase = phase$array0[phase$index0]; + phaseFactory = castTo($getListItem(this$static, phase.ordinal), 246); + phaseFactory?$add_3(phaseImplementations, castTo($retrieveProcessor(this$static, phaseFactory), 123)):(phaseImplementations.array[phaseImplementations.array.length] = null , true); + } + processorConfiguration = new LayoutProcessorConfiguration; + $forEach_3($filter($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(phaseImplementations, 16)), new AlgorithmAssembler$lambda$0$Type), new AlgorithmAssembler$lambda$1$Type(graph)), new AlgorithmAssembler$lambda$2$Type), new AlgorithmAssembler$lambda$3$Type(processorConfiguration)); + $addAll_6(processorConfiguration, this$static.additionalProcessors); + algorithm = new ArrayList; + for (phase$array = phaseEnumConstants , phase$index = 0 , phase$max = phase$array.length; phase$index < phase$max; ++phase$index) { + phase = phase$array[phase$index]; + $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phase.ordinal), 20)))); + phaseImplementation = castTo($get_11(phaseImplementations, phase.ordinal), 123); + !!phaseImplementation && (algorithm.array[algorithm.array.length] = phaseImplementation , true); + } + $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phaseEnumConstants[phaseEnumConstants.length - 1].ordinal + 1), 20)))); + return algorithm; +} + +function $lambda$4_3(this$static, processors_1, factory_1){ + return $add_3(processors_1, $retrieveProcessor(this$static, factory_1)); +} + +function $reset_4(this$static){ + this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $clear_0(this$static.configuredPhases); + $clear_10(this$static.additionalProcessors); + return this$static; +} + +function $retrieveProcessor(this$static, factory){ + var processor; + if (this$static.enableCaching) { + if ($containsKey_3(this$static.cache, factory)) { + return castTo($get_10(this$static.cache, factory), 51); + } + else { + processor = factory.create_1(); + $put_6(this$static.cache, factory, processor); + return processor; + } + } + else { + return factory.create_1(); + } +} + +function $retrieveProcessors(this$static, factories){ + var processors; + processors = newArrayListWithCapacity(factories.map_0.size_1()); + $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(factories, 1)), this$static.processorComparator), new AlgorithmAssembler$lambda$4$Type(this$static, processors)); + return processors; +} + +function $setPhase(this$static, phase, phaseFactory){ + $setListItem(this$static, phase.ordinal, phaseFactory); + $add_5(this$static.configuredPhases, phase); + return this$static; +} + +function AlgorithmAssembler(phaseEnum){ + var all; + AbstractRandomListAccessor.call(this); + this.processorComparator = new EnumBasedFactoryComparator; + this.phasesEnumClass = phaseEnum; + this.numberOfPhases = castTo(phaseEnum.enumConstantsFunc && phaseEnum.enumConstantsFunc(), 9).length; + if (this.numberOfPhases == 0) { + throw toJs(new IllegalArgumentException_0('There must be at least one phase in the phase enumeration.')); + } + this.configuredPhases = (all = castTo($getEnumConstants(this.phasesEnumClass), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + this.additionalProcessors = new LayoutProcessorConfiguration; + this.cache = new HashMap; +} + +function lambda$1_18(graph_0, phase_1){ + return phase_1.getLayoutProcessorConfiguration(graph_0); +} + +defineClass(500, 754, {}, AlgorithmAssembler); +_.provideDefault = function provideDefault(){ + return null; +} +; +_.enableCaching = true; +_.failOnMissingPhase = true; +_.numberOfPhases = 0; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler', 500); +function AlgorithmAssembler$lambda$0$Type(){ +} + +defineClass(1236, 1, $intern_39, AlgorithmAssembler$lambda$0$Type); +_.test_0 = function test_107(arg0){ + return !!castTo(arg0, 123); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$0$Type', 1236); +function AlgorithmAssembler$lambda$1$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1237, 1, {}, AlgorithmAssembler$lambda$1$Type); +_.apply_0 = function apply_166(arg0){ + return lambda$1_18(this.graph_0, castTo(arg0, 123)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$1$Type', 1237); +function AlgorithmAssembler$lambda$2$Type(){ +} + +defineClass(1238, 1, $intern_39, AlgorithmAssembler$lambda$2$Type); +_.test_0 = function test_108(arg0){ + return !!castTo(arg0, 80); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$2$Type', 1238); +function AlgorithmAssembler$lambda$3$Type(processorConfiguration_0){ + this.processorConfiguration_0 = processorConfiguration_0; +} + +defineClass(1239, 1, $intern_19, AlgorithmAssembler$lambda$3$Type); +_.accept = function accept_139(arg0){ + $addAll_6(this.processorConfiguration_0, castTo(arg0, 80)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$3$Type', 1239); +function AlgorithmAssembler$lambda$4$Type($$outer_0, processors_1){ + this.$$outer_0 = $$outer_0; + this.processors_1 = processors_1; +} + +defineClass(1240, 1, $intern_19, AlgorithmAssembler$lambda$4$Type); +_.accept = function accept_140(arg0){ + $lambda$4_3(this.$$outer_0, this.processors_1, castTo(arg0, 234)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$4$Type', 1240); +function $compare_23(factory1, factory2){ + getClass__Ljava_lang_Class___devirtual$(factory1); + getClass__Ljava_lang_Class___devirtual$(factory2); + return $compareTo(castTo(factory1, 22), castTo(factory2, 22)); +} + +function EnumBasedFactoryComparator(){ +} + +defineClass(1355, 1, $intern_88, EnumBasedFactoryComparator); +_.compare_1 = function compare_81(factory1, factory2){ + return $compare_23(castTo(factory1, 234), castTo(factory2, 234)); +} +; +_.equals_0 = function equals_168(other){ + return this === other; +} +; +_.reversed = function reversed_73(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_alg_EnumBasedFactoryComparator_2_classLit = createForClass('org.eclipse.elk.core.alg', 'EnumBasedFactoryComparator', 1355); +function $add_17(this$static, processor){ + if (this$static.currentIndex < 0) { + throw toJs(new IllegalStateException_0('Did not call before(...) or after(...) before calling add(...).')); + } + $doAdd(this$static, this$static.currentIndex, processor); + return this$static; +} + +function $addAfter(this$static, phase, processor){ + this$static.currentIndex = -1; + $doAdd(this$static, phase.ordinal + 1, processor); + return this$static; +} + +function $addAll_6(this$static, configuration){ + var i; + for (i = 0; i < configuration.list.array.length; i++) { + castTo($getListItem(this$static, i), 21).addAll(castTo($getListItem(configuration, i), 14)); + } + return this$static; +} + +function $addBefore(this$static, phase, processor){ + this$static.currentIndex = -1; + $doAdd(this$static, phase.ordinal, processor); + return this$static; +} + +function $after(this$static, phase){ + this$static.currentIndex = phase.ordinal + 1; + return this$static; +} + +function $before(this$static, phase){ + this$static.currentIndex = phase.ordinal; + return this$static; +} + +function $clear_10(this$static){ + this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.currentIndex = -1; + return this$static; +} + +function $doAdd(this$static, index_0, processor){ + castTo($getListItem(this$static, index_0), 21).add_2(processor); +} + +function LayoutProcessorConfiguration(){ + AbstractRandomListAccessor.call(this); + this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this.currentIndex = -1; +} + +function createFrom_0(source){ + return $addAll_6(new LayoutProcessorConfiguration, source); +} + +defineClass(80, 754, {80:1}, LayoutProcessorConfiguration); +_.provideDefault = function provideDefault_0(){ + return new HashSet; +} +; +_.currentIndex = 0; +var Lorg_eclipse_elk_core_alg_LayoutProcessorConfiguration_2_classLit = createForClass('org.eclipse.elk.core.alg', 'LayoutProcessorConfiguration', 80); +function $clinit_DeprecatedLayoutOptionReplacer(){ + $clinit_DeprecatedLayoutOptionReplacer = emptyMethod; + NEXT_TO_PORT_IF_POSSIBLE = new DeprecatedLayoutOptionReplacer$lambda$0$Type; + SPACE_EFFICIENT = new DeprecatedLayoutOptionReplacer$lambda$1$Type; + RULES = of_0(($clinit_CoreOptions() , PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0), NEXT_TO_PORT_IF_POSSIBLE, NODE_SIZE_OPTIONS_6, SPACE_EFFICIENT); +} + +function DeprecatedLayoutOptionReplacer(){ + $clinit_DeprecatedLayoutOptionReplacer(); +} + +function lambda$0_35(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + castTo(e_0.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).add_2(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); + e_0.setProperty(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, null); +} + +function lambda$1_19(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + if (castTo(e_0.getProperty(($clinit_CoreOptions() , NODE_SIZE_OPTIONS_6)), 174).contains(($clinit_SizeOptions() , SPACE_EFFICIENT_PORT_LABELS))) { + castTo(e_0.getProperty(PORT_LABELS_PLACEMENT_5), 174).add_2(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + castTo(e_0.getProperty(NODE_SIZE_OPTIONS_6), 174).remove_1(SPACE_EFFICIENT_PORT_LABELS); + } +} + +function lambda$2_9(element_0, option_1, replacer_2){ + $clinit_DeprecatedLayoutOptionReplacer(); + element_0.hasProperty(option_1) && replacer_2.accept(element_0); +} + +defineClass(1013, 1, {527:1}, DeprecatedLayoutOptionReplacer); +_.visit = function visit_0(element){ + $forEach_2(RULES, new DeprecatedLayoutOptionReplacer$lambda$2$Type(element)); +} +; +var NEXT_TO_PORT_IF_POSSIBLE, RULES, SPACE_EFFICIENT; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer', 1013); +function DeprecatedLayoutOptionReplacer$lambda$0$Type(){ +} + +defineClass(1014, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$0$Type); +_.accept = function accept_141(arg0){ + lambda$0_35(castTo(arg0, 160)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$0$Type', 1014); +function DeprecatedLayoutOptionReplacer$lambda$1$Type(){ +} + +defineClass(1015, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$1$Type); +_.accept = function accept_142(arg0){ + lambda$1_19(castTo(arg0, 160)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$1$Type', 1015); +function DeprecatedLayoutOptionReplacer$lambda$2$Type(element_0){ + this.element_0 = element_0; +} + +defineClass(1016, 1, {}, DeprecatedLayoutOptionReplacer$lambda$2$Type); +_.accept_1 = function accept_143(arg0, arg1){ + lambda$2_9(this.element_0, castTo(arg0, 146), castTo(arg1, 38)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$2$Type', 1016); +function $addKnownOption(this$static, property, defaultValue){ + $putStringValue(this$static.knownOptions, property.id_0, defaultValue); +} + +function $equals_8(this$static, obj){ + if (instanceOf(obj, 149)) { + return $equals_5(this$static.id_0, castTo(obj, 149).id_0); + } + return false; +} + +function $supportsFeature(this$static, graphFeature){ + return $containsEnum(this$static.supportedFeatures, graphFeature); +} + +function LayoutAlgorithmData(builder){ + var all; + this.knownOptions = new HashMap; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; + this.providerPool = new InstancePool(builder.providerFactory); + this.category = builder.category; + !builder.supportedFeatures?(this.supportedFeatures = (all = castTo($getEnumConstants(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.supportedFeatures = builder.supportedFeatures); +} + +defineClass(149, 1, {686:1, 149:1}, LayoutAlgorithmData); +_.equals_0 = function equals_169(obj){ + return $equals_8(this, obj); +} +; +_.getDescription = function getDescription(){ + return this.description; +} +; +_.getId = function getId(){ + return this.id_0; +} +; +_.getName = function getName_2(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_64(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_111(){ + return 'Layout Algorithm: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData', 149); +function $category(this$static, acategory){ + this$static.category = acategory; + return this$static; +} + +function $description(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $id(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $name_0(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function $providerFactory(this$static, aproviderFactory){ + this$static.providerFactory = aproviderFactory; + return this$static; +} + +function $supportedFeatures(this$static, asupportedFeatures){ + this$static.supportedFeatures = asupportedFeatures; + return this$static; +} + +function LayoutAlgorithmData$Builder(){ +} + +defineClass(263, 1, {}, LayoutAlgorithmData$Builder); +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData/Builder', 263); +function $resolveAlgorithm(node){ + var algorithmId, message; + algorithmId = castToString($getProperty_0(node, ($clinit_CoreOptions() , ALGORITHM))); + if ($resolveAndSetAlgorithm(algorithmId, node)) { + return; + } + if (!$hasProperty_0(node, RESOLVED_ALGORITHM) && ((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(node, INSIDE_SELF_LOOPS_ACTIVATE_0))))) { + if (algorithmId == null || $trim(algorithmId).length == 0) { + if (!$resolveAndSetAlgorithm('org.eclipse.elk.layered', node)) { + message = $append_11($append_11(new StringBuilder_1('Unable to load default layout algorithm '), 'org.eclipse.elk.layered'), ' for unconfigured node '); + printElementPath(node, message); + throw toJs(new UnsupportedConfigurationException_0(message.string)); + } + } + else { + message = $append_11($append_11(new StringBuilder_1("Layout algorithm '"), algorithmId), "' not found for "); + printElementPath(node, message); + throw toJs(new UnsupportedConfigurationException_0(message.string)); + } + } +} + +function $resolveAndSetAlgorithm(algorithmId, node){ + var algorithmData; + algorithmData = $getAlgorithmDataBySuffix(getInstance(), algorithmId); + if (algorithmData) { + $setProperty_1(node, ($clinit_CoreOptions() , RESOLVED_ALGORITHM), algorithmData); + return true; + } + else { + return false; + } +} + +function LayoutAlgorithmResolver(){ +} + +defineClass(1017, 1, {527:1}, LayoutAlgorithmResolver); +_.visit = function visit_1(element){ + instanceOf(element, 239) && !$booleanValue(castToBoolean(element.getProperty(($clinit_CoreOptions() , NO_LAYOUT_0)))) && $resolveAlgorithm(castTo(element, 33)); +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmResolver_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmResolver', 1017); +function LayoutCategoryData(builder){ + this.layouters = new LinkedList; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; +} + +defineClass(229, 1, {686:1, 229:1}, LayoutCategoryData); +_.equals_0 = function equals_170(obj){ + if (instanceOf(obj, 229)) { + return $equals_5(this.id_0, castTo(obj, 229).id_0); + } + return false; +} +; +_.getDescription = function getDescription_0(){ + return this.description; +} +; +_.getId = function getId_0(){ + return this.id_0; +} +; +_.getName = function getName_3(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_65(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_112(){ + return 'Layout Type: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutCategoryData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData', 229); +function $description_0(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $id_0(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $name_1(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function LayoutCategoryData$Builder(){ +} + +defineClass(344, 1, {}, LayoutCategoryData$Builder); +var Lorg_eclipse_elk_core_data_LayoutCategoryData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData/Builder', 344); +function $getAlgorithmData(this$static, id_0){ + return castTo($get_16(this$static.layoutAlgorithmMap, id_0), 149); +} + +function $getAlgorithmDataBySuffix(this$static, suffix){ + var d, d$iterator, data_0, entry, id_0, outerIter, suffixlength; + if (suffix == null || suffix.length == 0) { + return null; + } + data_0 = castTo($getStringValue(this$static.algorithmSuffixMap, suffix), 149); + if (!data_0) { + for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); + id_0 = d.id_0; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + !!data_0 && $putStringValue(this$static.algorithmSuffixMap, suffix, data_0); + } + return data_0; +} + +function $getCategoryData(this$static, id_0){ + return castTo($get_16(this$static.layoutCategoryMap, id_0), 229); +} + +function $getOptionData(this$static, id_0){ + var data_0; + data_0 = castTo($get_16(this$static.layoutOptionMap, id_0), 23); + return data_0?data_0:castTo($get_16(this$static.legacyLayoutOptionMap, id_0), 23); +} + +function $getOptionDataBySuffix(this$static, suffix){ + var d, d$iterator, d$iterator0, data_0, entry, id_0, id$array, id$index, id$max, legacyIds, outerIter, outerIter0, suffixlength; + if (suffix == null || suffix.length == 0) { + return null; + } + data_0 = castTo($getStringValue(this$static.optionSuffixMap, suffix), 23); + if (!data_0) { + for (d$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); d$iterator0.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); + id_0 = d.id_0; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + if (!data_0) { + for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { + d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); + legacyIds = d.legacyIds; + if (legacyIds != null) { + for (id$array = legacyIds , id$index = 0 , id$max = id$array.length; id$index < id$max; ++id$index) { + id_0 = id$array[id$index]; + suffixlength = suffix.length; + if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { + if (data_0) { + return null; + } + data_0 = d; + } + } + } + } + } + !!data_0 && $putStringValue(this$static.optionSuffixMap, suffix, data_0); + } + return data_0; +} + +function $registerLayoutMetaDataProviders(this$static, providers){ + var provider, provider$array, provider$index, provider$max, registry; + for (provider$array = providers , provider$index = 0 , provider$max = provider$array.length; provider$index < provider$max; ++provider$index) { + provider = provider$array[provider$index]; + registry = new LayoutMetaDataService$Registry(this$static); + provider.apply_4(registry); + $applyDependencies(registry); + } + $reset(this$static.optionSuffixMap); +} + +function LayoutMetaDataService(){ + this.layoutAlgorithmMap = new LinkedHashMap; + this.layoutOptionMap = new LinkedHashMap; + this.legacyLayoutOptionMap = new LinkedHashMap; + this.layoutCategoryMap = new LinkedHashMap; + this.algorithmSuffixMap = new HashMap; + this.optionSuffixMap = new HashMap; + register(Lorg_eclipse_elk_core_math_KVector_2_classLit, new LayoutMetaDataService$lambda$0$Type, new LayoutMetaDataService$lambda$1$Type); + register(Lorg_eclipse_elk_core_math_KVectorChain_2_classLit, new LayoutMetaDataService$lambda$2$Type, new LayoutMetaDataService$lambda$3$Type); + register(Lorg_eclipse_elk_core_math_ElkMargin_2_classLit, new LayoutMetaDataService$lambda$4$Type, new LayoutMetaDataService$lambda$5$Type); + register(Lorg_eclipse_elk_core_math_ElkPadding_2_classLit, new LayoutMetaDataService$lambda$6$Type, new LayoutMetaDataService$lambda$7$Type); + register(Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit, new LayoutMetaDataService$lambda$8$Type, new LayoutMetaDataService$lambda$9$Type); + register(Ljava_util_ArrayList_2_classLit, new LayoutMetaDataService$lambda$10$Type, new LayoutMetaDataService$lambda$11$Type); + register(Ljava_util_LinkedList_2_classLit, new LayoutMetaDataService$lambda$12$Type, new LayoutMetaDataService$lambda$13$Type); + register(Ljava_util_HashSet_2_classLit, new LayoutMetaDataService$lambda$14$Type, new LayoutMetaDataService$lambda$15$Type); + register(Ljava_util_LinkedHashSet_2_classLit, new LayoutMetaDataService$lambda$16$Type, new LayoutMetaDataService$lambda$17$Type); + register(Ljava_util_TreeSet_2_classLit, new LayoutMetaDataService$lambda$18$Type, new LayoutMetaDataService$lambda$19$Type); +} + +function getInstance(){ + if (!instance_2) { + instance_2 = new LayoutMetaDataService; + $registerLayoutMetaDataProviders(instance_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); + } + return instance_2; +} + +defineClass(867, 1, {}, LayoutMetaDataService); +var instance_2; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService', 867); +function $addDependency(this$static, sourceOption, targetOption, requiredValue){ + var dep; + dep = new LayoutMetaDataService$Registry$Triple; + dep.firstId = sourceOption; + dep.secondId = targetOption; + dep.value_0 = requiredValue; + $add_7(this$static.optionDependencies, dep); +} + +function $addOptionSupport(this$static, algorithm, option, defaultValue){ + var sup_0; + sup_0 = new LayoutMetaDataService$Registry$Triple; + sup_0.firstId = algorithm; + sup_0.secondId = option; + sup_0.value_0 = defaultValue; + $add_7(this$static.optionSupport, sup_0); +} + +function $applyDependencies(this$static){ + var algorithm, algorithm$iterator, category, categoryId, dep, dep$iterator, entry, option, outerIter, source, sup_0, sup$iterator, target; + for (algorithm$iterator = (outerIter = (new AbstractMap$2(this$static.this$01.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); algorithm$iterator.val$outerIter2.hasNext_0();) { + algorithm = (entry = castTo(algorithm$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); + categoryId = algorithm.category; + categoryId == null && (categoryId = ''); + category = $getCategoryData(this$static.this$01, categoryId); + !category && categoryId.length == 0 && (category = $retrieveBackupCategory(this$static)); + !!category && !$advanceToFind(category.layouters, algorithm, false) && $add_7(category.layouters, algorithm); + } + for (dep$iterator = $listIterator_2(this$static.optionDependencies, 0); dep$iterator.currentNode != dep$iterator.this$01.tail;) { + dep = castTo($next_10(dep$iterator), 478); + source = $getOptionData(this$static.this$01, dep.firstId); + target = $getOptionData(this$static.this$01, dep.secondId); + !!source && !!target && $add_7(source.dependencies, new Pair(target, dep.value_0)); + } + $reset_0(this$static.optionDependencies); + for (sup$iterator = $listIterator_2(this$static.optionSupport, 0); sup$iterator.currentNode != sup$iterator.this$01.tail;) { + sup_0 = castTo($next_10(sup$iterator), 478); + algorithm = $getAlgorithmData(this$static.this$01, sup_0.firstId); + option = $getOptionData(this$static.this$01, sup_0.secondId); + !!algorithm && !!option && $addKnownOption(algorithm, option, sup_0.value_0); + } + $reset_0(this$static.optionSupport); +} + +function $register(this$static, algorithmData){ + $put_11(this$static.this$01.layoutAlgorithmMap, algorithmData.id_0, algorithmData); +} + +function $register_0(this$static, categoryData){ + $put_11(this$static.this$01.layoutCategoryMap, categoryData.id_0, categoryData); +} + +function $register_1(this$static, optionData){ + var id_0, legacyId, legacyId$array, legacyId$index, legacyId$max; + id_0 = optionData.id_0; + $put_11(this$static.this$01.layoutOptionMap, id_0, optionData); + if (optionData.legacyIds != null) { + for (legacyId$array = optionData.legacyIds , legacyId$index = 0 , legacyId$max = legacyId$array.length; legacyId$index < legacyId$max; ++legacyId$index) { + legacyId = legacyId$array[legacyId$index]; + $put_11(this$static.this$01.legacyLayoutOptionMap, legacyId, optionData); + } + } +} + +function $retrieveBackupCategory(this$static){ + var otherCategory; + otherCategory = castTo($get_16(this$static.this$01.layoutCategoryMap, ''), 229); + if (!otherCategory) { + otherCategory = new LayoutCategoryData($name_1($id_0(new LayoutCategoryData$Builder, ''), 'Other')); + $put_11(this$static.this$01.layoutCategoryMap, '', otherCategory); + } + return otherCategory; +} + +function LayoutMetaDataService$Registry(this$0){ + this.this$01 = this$0; + this.optionDependencies = new LinkedList; + this.optionSupport = new LinkedList; +} + +defineClass(868, 1, {}, LayoutMetaDataService$Registry); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry', 868); +function LayoutMetaDataService$Registry$Triple(){ +} + +defineClass(478, 1, {478:1}, LayoutMetaDataService$Registry$Triple); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry$Triple_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry/Triple', 478); +function LayoutMetaDataService$lambda$0$Type(){ +} + +defineClass(869, 1, $intern_129, LayoutMetaDataService$lambda$0$Type); +_.newInstance = function newInstance_0(){ + return new KVector; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$0$Type', 869); +function LayoutMetaDataService$lambda$1$Type(){ +} + +defineClass(870, 1, $intern_130, LayoutMetaDataService$lambda$1$Type); +_.clone = function clone_1(arg0){ + return $clone_0(castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$1$Type', 870); +function LayoutMetaDataService$lambda$10$Type(){ +} + +defineClass(879, 1, $intern_129, LayoutMetaDataService$lambda$10$Type); +_.newInstance = function newInstance_1(){ + return new ArrayList; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$10$Type', 879); +function LayoutMetaDataService$lambda$11$Type(){ +} + +defineClass(880, 1, $intern_130, LayoutMetaDataService$lambda$11$Type); +_.clone = function clone_2(arg0){ + return new ArrayList_1(castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$11$Type', 880); +function LayoutMetaDataService$lambda$12$Type(){ +} + +defineClass(881, 1, $intern_129, LayoutMetaDataService$lambda$12$Type); +_.newInstance = function newInstance_2(){ + return new LinkedList; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$12$Type', 881); +function LayoutMetaDataService$lambda$13$Type(){ +} + +defineClass(882, 1, $intern_130, LayoutMetaDataService$lambda$13$Type); +_.clone = function clone_3(arg0){ + return newLinkedList(castTo(arg0, 68)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$13$Type', 882); +function LayoutMetaDataService$lambda$14$Type(){ +} + +defineClass(883, 1, $intern_129, LayoutMetaDataService$lambda$14$Type); +_.newInstance = function newInstance_3(){ + return new HashSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$14$Type', 883); +function LayoutMetaDataService$lambda$15$Type(){ +} + +defineClass(884, 1, $intern_130, LayoutMetaDataService$lambda$15$Type); +_.clone = function clone_4(arg0){ + return newHashSet(castTo(arg0, 53)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$15$Type', 884); +function LayoutMetaDataService$lambda$16$Type(){ +} + +defineClass(885, 1, $intern_129, LayoutMetaDataService$lambda$16$Type); +_.newInstance = function newInstance_4(){ + return new LinkedHashSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$16$Type', 885); +function LayoutMetaDataService$lambda$17$Type(){ +} + +defineClass(886, 1, $intern_130, LayoutMetaDataService$lambda$17$Type); +_.clone = function clone_5(arg0){ + return newLinkedHashSet(castTo(arg0, 53)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$17$Type', 886); +function LayoutMetaDataService$lambda$18$Type(){ +} + +defineClass(887, 1, $intern_129, LayoutMetaDataService$lambda$18$Type); +_.newInstance = function newInstance_5(){ + return new TreeSet; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$18$Type', 887); +function LayoutMetaDataService$lambda$19$Type(){ +} + +defineClass(888, 1, $intern_130, LayoutMetaDataService$lambda$19$Type); +_.clone = function clone_6(arg0){ + return newTreeSet(castTo(arg0, 208)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$19$Type', 888); +function LayoutMetaDataService$lambda$2$Type(){ +} + +defineClass(871, 1, $intern_129, LayoutMetaDataService$lambda$2$Type); +_.newInstance = function newInstance_6(){ + return new KVectorChain; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$2$Type', 871); +function LayoutMetaDataService$lambda$3$Type(){ +} + +defineClass(872, 1, $intern_130, LayoutMetaDataService$lambda$3$Type); +_.clone = function clone_7(arg0){ + return new KVectorChain_0(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$3$Type', 872); +function LayoutMetaDataService$lambda$4$Type(){ +} + +defineClass(873, 1, $intern_129, LayoutMetaDataService$lambda$4$Type); +_.newInstance = function newInstance_7(){ + return new ElkMargin; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$4$Type', 873); +function LayoutMetaDataService$lambda$5$Type(){ +} + +defineClass(874, 1, $intern_130, LayoutMetaDataService$lambda$5$Type); +_.clone = function clone_8(arg0){ + return new ElkMargin_2(castTo(arg0, 142)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$5$Type', 874); +function LayoutMetaDataService$lambda$6$Type(){ +} + +defineClass(875, 1, $intern_129, LayoutMetaDataService$lambda$6$Type); +_.newInstance = function newInstance_8(){ + return new ElkPadding; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$6$Type', 875); +function LayoutMetaDataService$lambda$7$Type(){ +} + +defineClass(876, 1, $intern_130, LayoutMetaDataService$lambda$7$Type); +_.clone = function clone_9(arg0){ + return new ElkPadding_1(castTo(arg0, 116)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$7$Type', 876); +function LayoutMetaDataService$lambda$8$Type(){ +} + +defineClass(877, 1, $intern_129, LayoutMetaDataService$lambda$8$Type); +_.newInstance = function newInstance_9(){ + return new IndividualSpacings; +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$8$Type', 877); +function LayoutMetaDataService$lambda$9$Type(){ +} + +defineClass(878, 1, $intern_130, LayoutMetaDataService$lambda$9$Type); +_.clone = function clone_10(arg0){ + return new IndividualSpacings_0(castTo(arg0, 373)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$9$Type', 878); +var Lorg_eclipse_elk_graph_properties_IProperty_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IProperty'); +function $checkEnumClass(this$static){ + if (!this$static.clazz || (this$static.clazz.modifiers & 8) == 0) { + throw toJs(new IllegalStateException_0('Enumeration class expected for layout option ' + this$static.id_0)); + } +} + +function $compareTo_19(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $createDataInstance(this$static){ + var instance; + if (!this$static.clazz) { + throw toJs(new IllegalStateException_0('IDataType class expected for layout option ' + this$static.id_0)); + } + instance = newInstance_10(this$static.clazz); + if (instance == null) { + throw toJs(new IllegalStateException_0("Couldn't create new instance of property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return castTo(instance, 414); +} + +function $enumForString(this$static, leString){ + var constants, index_0, value_0; + try { + value_0 = valueOf_0(this$static.clazz, leString); + return value_0; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 32)) { + try { + index_0 = __parseAndValidateInt(leString, $intern_42, $intern_0); + constants = $getEnumConstants(this$static.clazz); + if (index_0 >= 0 && index_0 < constants.length) { + return constants[index_0]; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 127)) + throw toJs($e0); + } + return null; + } + else + throw toJs($e1); + } +} + +function $enumSetForStringArray(this$static, leClazz, leString){ + var all, component, component$array, component$index, component$max, components, o, set_0; + set_0 = (all = castTo(leClazz.enumConstantsFunc && leClazz.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + components = $split_0(leString, '[\\[\\]\\s,]+'); + for (component$array = components , component$index = 0 , component$max = component$array.length; component$index < component$max; ++component$index) { + component = component$array[component$index]; + if ($trim(component).length == 0) { + continue; + } + o = $enumForString(this$static, component); + if (o == null) { + return null; + } + else { + $add_5(set_0, castTo(o, 22)); + } + } + return set_0; +} + +function $parseValue(this$static, valueString){ + var value_0; + if (valueString == null || $equals_5(valueString, 'null')) { + return null; + } + if (valueString.length == 0 && this$static.type_0 != ($clinit_LayoutOptionData$Type() , ENUMSET)) { + return null; + } + switch (this$static.type_0.ordinal) { + case 1: + return $equalsIgnoreCase(valueString, 'true')?($clinit_Boolean() , TRUE_0):$equalsIgnoreCase(valueString, 'false')?($clinit_Boolean() , FALSE_0):null; + case 2: + try { + return valueOf_4(__parseAndValidateInt(valueString, $intern_42, $intern_0)); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + return null; + } + else + throw toJs($e0); + } + + case 4: + try { + return __parseAndValidateDouble(valueString); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + return null; + } + else + throw toJs($e1); + } + + case 3: + return valueString; + case 5: + $checkEnumClass(this$static); + return $enumForString(this$static, valueString); + case 6: + $checkEnumClass(this$static); + return $enumSetForStringArray(this$static, this$static.clazz, valueString); + case 7: + try { + value_0 = $createDataInstance(this$static); + value_0.parse_0(valueString); + return value_0; + } + catch ($e2) { + $e2 = toJava($e2); + if (instanceOf($e2, 32)) { + return null; + } + else + throw toJs($e2); + } + + default:throw toJs(new IllegalStateException_0('Invalid type set for this layout option.')); + } +} + +function LayoutOptionData(builder){ + var all; + this.dependencies = new LinkedList; + this.id_0 = builder.id_0; + this.group_0 = builder.group_0; + this.name_0 = builder.name_0; + this.description = builder.description; + this.defaultValue = builder.defaultValue; + this.type_0 = builder.type_0; + this.clazz = builder.clazz; + !builder.targets?(this.targets = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.targets = builder.targets); + this.legacyIds = builder.legacyIds; +} + +defineClass(23, 1, {35:1, 686:1, 23:1, 146:1}, LayoutOptionData); +_.compareTo_0 = function compareTo_20(other){ + return $compareTo_19(this, castTo(other, 146)); +} +; +_.equals_0 = function equals_171(obj){ + return instanceOf(obj, 23)?$equals_5(this.id_0, castTo(obj, 23).id_0):instanceOf(obj, 146) && $equals_5(this.id_0, castTo(obj, 146).getId()); +} +; +_.getDefault = function getDefault(){ + var clone; + if (instanceOf(this.defaultValue, 4)) { + clone = clone_11(this.defaultValue); + if (clone == null) { + throw toJs(new IllegalStateException_0("Couldn't clone property '" + this.id_0 + "'. " + "Make sure it's type is registered with the " + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return clone; + } + else { + return this.defaultValue; + } +} +; +_.getDescription = function getDescription_1(){ + return this.description; +} +; +_.getId = function getId_1(){ + return this.id_0; +} +; +_.getName = function getName_4(){ + return this.name_0; +} +; +_.hashCode_1 = function hashCode_66(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_113(){ + return 'Layout Option: ' + this.id_0; +} +; +var Lorg_eclipse_elk_core_data_LayoutOptionData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData', 23); +function $defaultValue(this$static, adefaultValue){ + this$static.defaultValue = adefaultValue; + return this$static; +} + +function $description_1(this$static, adescription){ + this$static.description = adescription; + return this$static; +} + +function $group(this$static, agroup){ + this$static.group_0 = agroup; + return this$static; +} + +function $id_1(this$static, aid){ + this$static.id_0 = aid; + return this$static; +} + +function $legacyIds(this$static, alegacyIds){ + this$static.legacyIds = alegacyIds; + return this$static; +} + +function $name_2(this$static, aname){ + this$static.name_0 = aname; + return this$static; +} + +function $optionClass(this$static, aclazz){ + this$static.clazz = aclazz; + return this$static; +} + +function $targets(this$static, atargets){ + this$static.targets = atargets; + return this$static; +} + +function $type(this$static, atype){ + this$static.type_0 = atype; + return this$static; +} + +function LayoutOptionData$Builder(){ +} + +defineClass(24, 1, {}, LayoutOptionData$Builder); +var Lorg_eclipse_elk_core_data_LayoutOptionData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData/Builder', 24); +function $clinit_LayoutOptionData$Target(){ + $clinit_LayoutOptionData$Target = emptyMethod; + PARENTS = new LayoutOptionData$Target('PARENTS', 0); + NODES = new LayoutOptionData$Target('NODES', 1); + EDGES = new LayoutOptionData$Target('EDGES', 2); + PORTS = new LayoutOptionData$Target('PORTS', 3); + LABELS = new LayoutOptionData$Target('LABELS', 4); +} + +function LayoutOptionData$Target(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_92(name_0){ + $clinit_LayoutOptionData$Target(); + return valueOf(($clinit_LayoutOptionData$Target$Map() , $MAP_80), name_0); +} + +function values_98(){ + $clinit_LayoutOptionData$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]); +} + +defineClass(175, 22, {3:1, 35:1, 22:1, 175:1}, LayoutOptionData$Target); +var EDGES, LABELS, NODES, PARENTS, PORTS; +var Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Target', 175, Ljava_lang_Enum_2_classLit, values_98, valueOf_92); +function $clinit_LayoutOptionData$Target$Map(){ + $clinit_LayoutOptionData$Target$Map = emptyMethod; + $MAP_80 = createValueOfMap(($clinit_LayoutOptionData$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]))); +} + +var $MAP_80; +function $clinit_LayoutOptionData$Type(){ + $clinit_LayoutOptionData$Type = emptyMethod; + UNDEFINED_1 = new LayoutOptionData$Type('UNDEFINED', 0); + BOOLEAN = new LayoutOptionData$Type('BOOLEAN', 1); + INT = new LayoutOptionData$Type('INT', 2); + STRING = new LayoutOptionData$Type('STRING', 3); + DOUBLE = new LayoutOptionData$Type('DOUBLE', 4); + ENUM = new LayoutOptionData$Type('ENUM', 5); + ENUMSET = new LayoutOptionData$Type('ENUMSET', 6); + OBJECT = new LayoutOptionData$Type('OBJECT', 7); +} + +function LayoutOptionData$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_93(name_0){ + $clinit_LayoutOptionData$Type(); + return valueOf(($clinit_LayoutOptionData$Type$Map() , $MAP_81), name_0); +} + +function values_99(){ + $clinit_LayoutOptionData$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]); +} + +defineClass(277, 22, {3:1, 35:1, 22:1, 277:1}, LayoutOptionData$Type); +var BOOLEAN, DOUBLE, ENUM, ENUMSET, INT, OBJECT, STRING, UNDEFINED_1; +var Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Type', 277, Ljava_lang_Enum_2_classLit, values_99, valueOf_93); +function $clinit_LayoutOptionData$Type$Map(){ + $clinit_LayoutOptionData$Type$Map = emptyMethod; + $MAP_81 = createValueOfMap(($clinit_LayoutOptionData$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]))); +} + +var $MAP_81; +function $clinit_LabelManagementOptions(){ + $clinit_LabelManagementOptions = emptyMethod; + LABEL_MANAGER = new Property('org.eclipse.elk.labels.labelManager'); +} + +var LABEL_MANAGER; +function $clinit_ElkMath(){ + $clinit_ElkMath = emptyMethod; + FACT_TABLE = stampJavaTypeInfo(getClassLiteralForArray(J_classLit, 1), $intern_62, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, {l:3506176, m:794077, h:1}, {l:884736, m:916411, h:20}, {l:3342336, m:3912489, h:363}, {l:589824, m:3034138, h:6914}, {l:3407872, m:1962506, h:138294}]); + $wnd.Math.pow(2, -65); +} + +function approximateBezierSegment(controlPoints){ + $clinit_ElkMath(); + var i, result, t; + result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, 2, 0, 1); + t = 0; + for (i = 0; i < 2; i++) { + t += 0.5; + result[i] = getPointOnBezierSegment(t, controlPoints); + } + return result; +} + +function binomiald(n, k){ + if (n < 0 || k < 0) { + throw toJs(new IllegalArgumentException_0('k and n must be positive')); + } + else if (k > n) { + throw toJs(new IllegalArgumentException_0('k must be smaller than n')); + } + else + return k == 0 || k == n?1:n == 0?0:factd(n) / (factd(k) * factd(n - k)); +} + +function clipVector(v, width_0, height){ + $clinit_ElkMath(); + var absx, absy, hh, wh, xscale, yscale; + wh = width_0 / 2; + hh = height / 2; + absx = $wnd.Math.abs(v.x_0); + absy = $wnd.Math.abs(v.y_0); + xscale = 1; + yscale = 1; + absx > wh && (xscale = wh / absx); + absy > hh && (yscale = hh / absy); + $scale(v, $wnd.Math.min(xscale, yscale)); + return v; +} + +function contains_49(rect, p){ + var maxX, maxY, minX, minY; + minX = rect.x_0; + maxX = rect.x_0 + rect.width_0; + minY = rect.y_0; + maxY = rect.y_0 + rect.height; + return p.x_0 > minX && p.x_0 < maxX && p.y_0 > minY && p.y_0 < maxY; +} + +function contains_50(rect, p1, p2){ + $clinit_ElkMath(); + return contains_49(rect, p1) && contains_49(rect, p2); +} + +function contains_51(rect, path){ + $clinit_ElkMath(); + var first, p1, p2, pathIt; + if (path.size_0 < 2) { + return false; + } + pathIt = $listIterator_2(path, 0); + first = castTo($next_10(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_10(pathIt), 8); + if (!(contains_49(rect, p1) && contains_49(rect, p2))) { + return false; + } + p1 = p2; + } + if (!(contains_49(rect, p1) && contains_49(rect, first))) { + return false; + } + return true; +} + +function distance_0(a1, a2, b1, b2, v){ + $clinit_ElkMath(); + return $wnd.Math.min(traceRays(a1, a2, b1, b2, v), traceRays(b1, b2, a1, a2, $negate(new KVector_1(v.x_0, v.y_0)))); +} + +function factd(x_0){ + if (x_0 < 0) { + throw toJs(new IllegalArgumentException_0('The input must be positive')); + } + else + return x_0 < FACT_TABLE.length?toDouble_0(FACT_TABLE[x_0]):$wnd.Math.sqrt($intern_123 * x_0) * (powf(x_0, x_0) / powd(2.718281828459045, x_0)); +} + +function getPointOnBezierSegment(t, controlPoints){ + var factor, j, n, p, px, py; + n = controlPoints.length - 1; + px = 0; + py = 0; + for (j = 0; j <= n; j++) { + p = controlPoints[j]; + factor = binomiald(n, j) * powd(1 - t, n - j) * powd(t, j); + px += p.x_0 * factor; + py += p.y_0 * factor; + } + return new KVector_1(px, py); +} + +function intersects_0(rect, p1, p2){ + $clinit_ElkMath(); + if (contains_49(rect, p1) && contains_49(rect, p2)) { + return false; + } + return intersects_2(new KVector_1(rect.x_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0), p1, p2); +} + +function intersects_1(rect, path){ + $clinit_ElkMath(); + var first, p1, p2, pathIt; + if (path.size_0 < 2) { + return false; + } + pathIt = $listIterator_2(path, 0); + first = castTo($next_10(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_10(pathIt), 8); + if (intersects_0(rect, p1, p2)) { + return true; + } + p1 = p2; + } + if (intersects_0(rect, p1, first)) { + return true; + } + return false; +} + +function intersects_2(l11, l12, l21, l22){ + var d, intersects, s, t, u0, u1, v0, v1, x00, x01, x10, x11, y00, y01, y10, y11; + u0 = l11; + v0 = $sub_0(new KVector_1(l12.x_0, l12.y_0), l11); + u1 = l21; + v1 = $sub_0(new KVector_1(l22.x_0, l22.y_0), l21); + x00 = u0.x_0; + y00 = u0.y_0; + x10 = u1.x_0; + y10 = u1.y_0; + x01 = v0.x_0; + y01 = v0.y_0; + x11 = v1.x_0; + y11 = v1.y_0; + d = x11 * y01 - x01 * y11; + $clinit_DoubleMath(); + checkNonNegative($intern_117); + if ($wnd.Math.abs(0 - d) <= $intern_117 || 0 == d || isNaN(0) && isNaN(d)) { + return false; + } + s = 1 / d * ((x00 - x10) * y01 - (y00 - y10) * x01); + t = 1 / d * -(-(x00 - x10) * y11 + (y00 - y10) * x11); + intersects = (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - s) <= $intern_117 || 0 == s || isNaN(0) && isNaN(s)?0:0 < s?-1:0 > s?1:compare_0(isNaN(0), isNaN(s))) < 0 && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(s - 1) <= $intern_117 || s == 1 || isNaN(s) && isNaN(1)?0:s < 1?-1:s > 1?1:compare_0(isNaN(s), isNaN(1))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - t) <= $intern_117 || 0 == t || isNaN(0) && isNaN(t)?0:0 < t?-1:0 > t?1:compare_0(isNaN(0), isNaN(t))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(t - 1) <= $intern_117 || t == 1 || isNaN(t) && isNaN(1)?0:t < 1?-1:t > 1?1:compare_0(isNaN(t), isNaN(1))) < 0)); + return intersects; +} + +function intersects2(p, r, q, s){ + var center, d1, d2, l, pq, pqXr, rXs, t, u; + pq = $sub_0(new KVector_1(q.x_0, q.y_0), p); + pqXr = pq.x_0 * r.y_0 - pq.y_0 * r.x_0; + rXs = r.x_0 * s.y_0 - r.y_0 * s.x_0; + t = (pq.x_0 * s.y_0 - pq.y_0 * s.x_0) / rXs; + u = pqXr / rXs; + if (rXs == 0) { + if (pqXr == 0) { + center = $add_19(new KVector_1(q.x_0, q.y_0), $scale(new KVector_1(s.x_0, s.y_0), 0.5)); + d1 = $distance_0(p, center); + d2 = $distance_0($add_19(new KVector_1(p.x_0, p.y_0), r), center); + l = $wnd.Math.sqrt(s.x_0 * s.x_0 + s.y_0 * s.y_0) * 0.5; + if (d1 < d2 && d1 <= l) { + return new KVector_1(p.x_0, p.y_0); + } + if (d2 <= l) { + return $add_19(new KVector_1(p.x_0, p.y_0), r); + } + return null; + } + else { + return null; + } + } + else { + return t >= 0 && t <= 1 && u >= 0 && u <= 1?$add_19(new KVector_1(p.x_0, p.y_0), $scale(new KVector_1(r.x_0, r.y_0), t)):null; + } +} + +function maxd(values){ + $clinit_ElkMath(); + var i, max_0; + max_0 = -1.7976931348623157E308; + for (i = 0; i < values.length; i++) { + values[i] > max_0 && (max_0 = values[i]); + } + return max_0; +} + +function powd(a, b){ + var base, exp_0, result; + result = 1; + base = a; + exp_0 = b >= 0?b:-b; + while (exp_0 > 0) { + if (exp_0 % 2 == 0) { + base *= base; + exp_0 = exp_0 / 2 | 0; + } + else { + result *= base; + exp_0 -= 1; + } + } + return b < 0?1 / result:result; +} + +function powf(a, b){ + var base, exp_0, result; + result = 1; + base = a; + exp_0 = b >= 0?b:-b; + while (exp_0 > 0) { + if (exp_0 % 2 == 0) { + base *= base; + exp_0 = exp_0 / 2 | 0; + } + else { + result *= base; + exp_0 -= 1; + } + } + return b < 0?1 / result:result; +} + +function shortestDistance_0(r1, r2){ + $clinit_ElkMath(); + var bottomDist, horzDist, leftDist, rightDist, topDist, vertDist; + rightDist = r2.x_0 - (r1.x_0 + r1.width_0); + leftDist = r1.x_0 - (r2.x_0 + r2.width_0); + topDist = r1.y_0 - (r2.y_0 + r2.height); + bottomDist = r2.y_0 - (r1.y_0 + r1.height); + horzDist = $wnd.Math.max(leftDist, rightDist); + vertDist = $wnd.Math.max(topDist, bottomDist); + $clinit_DoubleMath(); + checkNonNegative($intern_117); + if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) >= 0 ^ (null , checkNonNegative($intern_117) , ($wnd.Math.abs(vertDist) <= $intern_117 || vertDist == 0 || isNaN(vertDist) && isNaN(0)?0:vertDist < 0?-1:vertDist > 0?1:compare_0(isNaN(vertDist), isNaN(0))) >= 0)) { + return $wnd.Math.max(vertDist, horzDist); + } + checkNonNegative($intern_117); + if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) > 0) { + return $wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); + } + return -$wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); +} + +function traceRays(a1, a2, b1, b2, v){ + var edgeCase, endpointHit, intersection, result; + result = $intern_59; + endpointHit = false; + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), $add_19(new KVector_1(b1.x_0, b1.y_0), v), $sub_0(new KVector_1(b2.x_0, b2.y_0), b1)); + edgeCase = !!intersection && !($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131 || $wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131); + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b1, v); + !!intersection && (($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase?(result = $wnd.Math.min(result, $length($sub_0(intersection, b1)))):(endpointHit = true)); + intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b2, v); + !!intersection && (endpointHit || ($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase) && (result = $wnd.Math.min(result, $length($sub_0(intersection, b2)))); + return result; +} + +var FACT_TABLE; +function $getBottomLeft(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0 + this$static.height); +} + +function $getBottomRight(this$static){ + return new KVector_1(this$static.x_0 + this$static.width_0, this$static.y_0 + this$static.height); +} + +function $getCenter(this$static){ + return new KVector_1(this$static.x_0 + this$static.width_0 / 2, this$static.y_0 + this$static.height / 2); +} + +function $getPosition(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $getTopLeft(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $setRect(this$static, nx, ny, nw, nh){ + this$static.x_0 = nx; + this$static.y_0 = ny; + this$static.width_0 = nw; + this$static.height = nh; +} + +function $union(this$static, other){ + var t, x1, x2, y1, y2; + x1 = $wnd.Math.min(this$static.x_0, other.x_0); + y1 = $wnd.Math.min(this$static.y_0, other.y_0); + x2 = $wnd.Math.max(this$static.x_0 + this$static.width_0, other.x_0 + other.width_0); + y2 = $wnd.Math.max(this$static.y_0 + this$static.height, other.y_0 + other.height); + if (x2 < x1) { + t = x1; + x1 = x2; + x2 = t; + } + if (y2 < y1) { + t = y1; + y1 = y2; + y2 = t; + } + $setRect(this$static, x1, y1, x2 - x1, y2 - y1); +} + +function ElkRectangle(){ + ElkRectangle_0.call(this, 0, 0, 0, 0); +} + +function ElkRectangle_0(x_0, y_0, w, h){ + this.x_0 = x_0; + this.y_0 = y_0; + this.width_0 = w; + this.height = h; +} + +function ElkRectangle_1(rect){ + this.x_0 = rect.x_0; + this.y_0 = rect.y_0; + this.width_0 = rect.width_0; + this.height = rect.height; +} + +defineClass(110, 1, {110:1}, ElkRectangle, ElkRectangle_0, ElkRectangle_1); +_.equals_0 = function equals_172(obj){ + var other; + if (obj == null || !instanceOf(obj, 110)) { + return false; + } + other = castTo(obj, 110); + return equals_57(this.x_0, other.x_0) && equals_57(this.y_0, other.y_0) && equals_57(this.width_0, other.width_0) && equals_57(this.height, other.height); +} +; +_.hashCode_1 = function hashCode_67(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0, this.width_0, this.height])); +} +; +_.toString_0 = function toString_114(){ + return 'Rect[x=' + this.x_0 + ',y=' + this.y_0 + ',w=' + this.width_0 + ',h=' + this.height + ']'; +} +; +_.height = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_core_math_ElkRectangle_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkRectangle', 110); +function $add_18(this$static, dx, dy){ + this$static.x_0 += dx; + this$static.y_0 += dy; + return this$static; +} + +function $add_19(this$static, v){ + this$static.x_0 += v.x_0; + this$static.y_0 += v.y_0; + return this$static; +} + +function $bound(this$static, lowx, lowy, highx, highy){ + if (highx < lowx || highy < lowy) { + throw toJs(new IllegalArgumentException_0('The highx must be bigger then lowx and the highy must be bigger then lowy')); + } + this$static.x_0 < lowx?(this$static.x_0 = lowx):this$static.x_0 > highx && (this$static.x_0 = highx); + this$static.y_0 < lowy?(this$static.y_0 = lowy):this$static.y_0 > highy && (this$static.y_0 = highy); + return this$static; +} + +function $clone_0(this$static){ + return new KVector_1(this$static.x_0, this$static.y_0); +} + +function $distance_0(this$static, v2){ + var dx, dy; + dx = this$static.x_0 - v2.x_0; + dy = this$static.y_0 - v2.y_0; + return $wnd.Math.sqrt(dx * dx + dy * dy); +} + +function $equals_9(this$static, obj){ + var other; + if (instanceOf(obj, 8)) { + other = castTo(obj, 8); + return this$static.x_0 == other.x_0 && this$static.y_0 == other.y_0; + } + else { + return false; + } +} + +function $length(this$static){ + return $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); +} + +function $negate(this$static){ + this$static.x_0 = -this$static.x_0; + this$static.y_0 = -this$static.y_0; + return this$static; +} + +function $normalize_0(this$static){ + var length_0; + length_0 = $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); + if (length_0 > 0) { + this$static.x_0 /= length_0; + this$static.y_0 /= length_0; + } + return this$static; +} + +function $reset_5(this$static){ + this$static.x_0 = 0; + this$static.y_0 = 0; + return this$static; +} + +function $scale(this$static, scale){ + this$static.x_0 *= scale; + this$static.y_0 *= scale; + return this$static; +} + +function $scale_0(this$static, scalex, scaley){ + this$static.x_0 *= scalex; + this$static.y_0 *= scaley; + return this$static; +} + +function $scaleToLength(this$static, length_0){ + $normalize_0(this$static); + this$static.x_0 *= length_0; + this$static.y_0 *= length_0; + return this$static; +} + +function $set_8(this$static, newX, newY){ + this$static.x_0 = newX; + this$static.y_0 = newY; + return this$static; +} + +function $set_9(this$static, other){ + this$static.x_0 = other.x_0; + this$static.y_0 = other.y_0; + return this$static; +} + +function $sub(this$static, dx, dy){ + this$static.x_0 -= dx; + this$static.y_0 -= dy; + return this$static; +} + +function $sub_0(this$static, v){ + this$static.x_0 -= v.x_0; + this$static.y_0 -= v.y_0; + return this$static; +} + +function KVector(){ + this.x_0 = 0; + this.y_0 = 0; +} + +function KVector_0(angle){ + this.x_0 = $wnd.Math.cos(angle); + this.y_0 = $wnd.Math.sin(angle); +} + +function KVector_1(thex, they){ + this.x_0 = thex; + this.y_0 = they; +} + +function KVector_2(v){ + this.x_0 = v.x_0; + this.y_0 = v.y_0; +} + +function isdelim_0(c, delims){ + var i; + for (i = 0; i < delims.length; i++) { + if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { + return true; + } + } + return false; +} + +function sum_0(vs){ + var sum, v, v$array, v$index, v$max; + sum = new KVector; + for (v$array = vs , v$index = 0 , v$max = v$array.length; v$index < v$max; ++v$index) { + v = v$array[v$index]; + sum.x_0 += v.x_0; + sum.y_0 += v.y_0; + } + return sum; +} + +defineClass(8, 1, {3:1, 4:1, 8:1, 414:1}, KVector, KVector_0, KVector_1, KVector_2); +_.equals_0 = function equals_173(obj){ + return $equals_9(this, obj); +} +; +_.hashCode_1 = function hashCode_68(){ + return $hashCode_0(this.x_0) + reverse_1($hashCode_0(this.y_0)); +} +; +_.parse_0 = function parse_1(string){ + var end, exception, start_0, tokens; + start_0 = 0; + while (start_0 < string.length && isdelim_0((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { + ++start_0; + } + end = string.length; + while (end > 0 && isdelim_0((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { + --end; + } + if (start_0 >= end) { + throw toJs(new IllegalArgumentException_0('The given string does not contain any numbers.')); + } + tokens = $split_0(string.substr(start_0, end - start_0), ',|;|\r|\n'); + if (tokens.length != 2) { + throw toJs(new IllegalArgumentException_0('Exactly two numbers are expected, ' + tokens.length + ' were found.')); + } + try { + this.x_0 = __parseAndValidateDouble($trim(tokens[0])); + this.y_0 = __parseAndValidateDouble($trim(tokens[1])); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_115(){ + return '(' + this.x_0 + ',' + this.y_0 + ')'; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_core_math_KVector_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVector', 8); +function $addAll_7(this$static, vectors){ + var vector, vector$array, vector$index, vector$max; + for (vector$array = vectors , vector$index = 0 , vector$max = vector$array.length; vector$index < vector$max; ++vector$index) { + vector = vector$array[vector$index]; + $addNode_0(this$static, vector, this$static.tail.prev, this$static.tail); + } +} + +function $addAllAsCopies(this$static, index_0, chain){ + var copies, v, v$iterator; + copies = new LinkedList; + for (v$iterator = $listIterator_2(chain, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(v$iterator), 8); + $add_7(copies, new KVector_2(v)); + } + $addAll_0(this$static, index_0, copies); +} + +function $offset_1(this$static, dx, dy){ + var vector, vector$iterator; + for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_10(vector$iterator), 8); + vector.x_0 += dx; + vector.y_0 += dy; + } + return this$static; +} + +function $offset_2(this$static, offset){ + var vector, vector$iterator; + for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_10(vector$iterator), 8); + $add_19(vector, offset); + } + return this$static; +} + +function $toArray_8(this$static){ + var i, iter, result; + i = 0; + result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, this$static.size_0, 0, 1); + iter = $listIterator_2(this$static, 0); + while (iter.currentNode != iter.this$01.tail) { + result[i++] = castTo($next_10(iter), 8); + } + return result; +} + +function KVectorChain(){ + LinkedList.call(this); +} + +function KVectorChain_0(collection){ + LinkedList_0.call(this, collection); +} + +function KVectorChain_1(vectors){ + LinkedList.call(this); + $addAll_7(this, vectors); +} + +function reverse_3(chain){ + var result, vector, vector$iterator; + result = new KVectorChain; + for (vector$iterator = $listIterator_2(chain, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { + vector = castTo($next_10(vector$iterator), 8); + $add_0(result, 0, new KVector_2(vector)); + } + return result; +} + +defineClass(74, 68, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1, 74:1, 414:1}, KVectorChain, KVectorChain_0, KVectorChain_1); +_.toArray = function toArray_25(){ + return $toArray_8(this); +} +; +_.parse_0 = function parse_2(string){ + var exception, i, tokens, x_0, xy, y_0; + tokens = $split_0(string, ',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n'); + $reset_0(this); + try { + i = 0; + xy = 0; + x_0 = 0; + y_0 = 0; + while (i < tokens.length) { + if (tokens[i] != null && $trim(tokens[i]).length > 0) { + xy % 2 == 0?(x_0 = __parseAndValidateDouble(tokens[i])):(y_0 = __parseAndValidateDouble(tokens[i])); + xy > 0 && xy % 2 != 0 && $add_7(this, new KVector_1(x_0, y_0)); + ++xy; + } + ++i; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new IllegalArgumentException_0('The given string does not match the expected format for vectors.' + exception)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_116(){ + var builder, iter, vector; + builder = new StringBuilder_1('('); + iter = $listIterator_2(this, 0); + while (iter.currentNode != iter.this$01.tail) { + vector = castTo($next_10(iter), 8); + $append_11(builder, vector.x_0 + ',' + vector.y_0); + iter.currentNode != iter.this$01.tail && (builder.string += '; ' , builder); + } + return (builder.string += ')' , builder).string; +} +; +var Lorg_eclipse_elk_core_math_KVectorChain_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVectorChain', 74); +function $clinit_Alignment(){ + $clinit_Alignment = emptyMethod; + AUTOMATIC = new Alignment('AUTOMATIC', 0); + LEFT_5 = new Alignment('LEFT', 1); + RIGHT_5 = new Alignment('RIGHT', 2); + TOP_2 = new Alignment('TOP', 3); + BOTTOM_1 = new Alignment('BOTTOM', 4); + CENTER_4 = new Alignment('CENTER', 5); +} + +function Alignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_94(name_0){ + $clinit_Alignment(); + return valueOf(($clinit_Alignment$Map() , $MAP_82), name_0); +} + +function values_100(){ + $clinit_Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]); +} + +defineClass(248, 22, {3:1, 35:1, 22:1, 248:1}, Alignment); +var AUTOMATIC, BOTTOM_1, CENTER_4, LEFT_5, RIGHT_5, TOP_2; +var Lorg_eclipse_elk_core_options_Alignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Alignment', 248, Ljava_lang_Enum_2_classLit, values_100, valueOf_94); +function $clinit_Alignment$Map(){ + $clinit_Alignment$Map = emptyMethod; + $MAP_82 = createValueOfMap(($clinit_Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]))); +} + +var $MAP_82; +function $clinit_BoxLayouterOptions(){ + $clinit_BoxLayouterOptions = emptyMethod; + PADDING_DEFAULT_5 = new ElkPadding_0(15); + PADDING_5 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_5); + SPACING_NODE_NODE_5 = new Property_2(SPACING_NODE_NODE_6, 15); + PRIORITY_2 = new Property_2(PRIORITY_3, valueOf_4(0)); + EXPAND_NODES_0 = EXPAND_NODES_1; + NODE_SIZE_CONSTRAINTS_5 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_OPTIONS_5 = NODE_SIZE_OPTIONS_6; + ASPECT_RATIO_4 = new Property_2(ASPECT_RATIO_5, $intern_132); + INTERACTIVE_6 = INTERACTIVE_7; + NODE_SIZE_MINIMUM_4 = NODE_SIZE_MINIMUM_5; + BOX_PACKING_MODE = BOX_PACKING_MODE_0; + CONTENT_ALIGNMENT_1 = CONTENT_ALIGNMENT_2; +} + +function $apply_24(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.box'), 'ELK Box'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'), new BoxLayouterOptions$BoxFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.padding', PADDING_DEFAULT_5); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.priority', valueOf_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES_0)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_5)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_5)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.aspectRatio', $intern_132); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_6)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_4)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.box.packingMode', $getDefault(BOX_PACKING_MODE)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_1)); +} + +function BoxLayouterOptions(){ + $clinit_BoxLayouterOptions(); +} + +defineClass(979, 1, $intern_90, BoxLayouterOptions); +_.apply_4 = function apply_167(registry){ + $apply_24(registry); +} +; +var ASPECT_RATIO_4, BOX_PACKING_MODE, CONTENT_ALIGNMENT_1, EXPAND_NODES_0, INTERACTIVE_6, NODE_SIZE_CONSTRAINTS_5, NODE_SIZE_MINIMUM_4, NODE_SIZE_OPTIONS_5, PADDING_5, PADDING_DEFAULT_5, PRIORITY_2, SPACING_NODE_NODE_5; +var Lorg_eclipse_elk_core_options_BoxLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions', 979); +function BoxLayouterOptions$BoxFactory(){ +} + +defineClass(980, 1, {}, BoxLayouterOptions$BoxFactory); +_.create_0 = function create_37(){ + var provider; + return provider = new BoxLayoutProvider , provider; +} +; +_.destroy = function destroy_8(obj){ +} +; +var Lorg_eclipse_elk_core_options_BoxLayouterOptions$BoxFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions/BoxFactory', 980); +function $clinit_ContentAlignment(){ + $clinit_ContentAlignment = emptyMethod; + V_TOP = new ContentAlignment('V_TOP', 0); + V_CENTER = new ContentAlignment('V_CENTER', 1); + V_BOTTOM = new ContentAlignment('V_BOTTOM', 2); + H_LEFT = new ContentAlignment('H_LEFT', 3); + H_CENTER = new ContentAlignment('H_CENTER', 4); + H_RIGHT = new ContentAlignment('H_RIGHT', 5); +} + +function ContentAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_95(name_0){ + $clinit_ContentAlignment(); + return valueOf(($clinit_ContentAlignment$Map() , $MAP_83), name_0); +} + +function values_101(){ + $clinit_ContentAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]); +} + +defineClass(291, 22, {3:1, 35:1, 22:1, 291:1}, ContentAlignment); +var H_CENTER, H_LEFT, H_RIGHT, V_BOTTOM, V_CENTER, V_TOP; +var Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'ContentAlignment', 291, Ljava_lang_Enum_2_classLit, values_101, valueOf_95); +function $clinit_ContentAlignment$Map(){ + $clinit_ContentAlignment$Map = emptyMethod; + $MAP_83 = createValueOfMap(($clinit_ContentAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]))); +} + +var $MAP_83; +function $clinit_CoreOptions(){ + $clinit_CoreOptions = emptyMethod; + var all, all0; + ALGORITHM = new Property('org.eclipse.elk.algorithm'); + RESOLVED_ALGORITHM = new Property('org.eclipse.elk.resolvedAlgorithm'); + ALIGNMENT_DEFAULT = ($clinit_Alignment() , AUTOMATIC); + ALIGNMENT_0 = new Property_1('org.eclipse.elk.alignment', ALIGNMENT_DEFAULT); + new ExclusiveBounds$ExclusiveLowerBound; + ASPECT_RATIO_5 = new Property_1('org.eclipse.elk.aspectRatio', null); + BEND_POINTS = new Property('org.eclipse.elk.bendPoints'); + CONTENT_ALIGNMENT_DEFAULT = ($clinit_ContentAlignment() , of_2(V_TOP, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [H_LEFT]))); + CONTENT_ALIGNMENT_2 = new Property_1('org.eclipse.elk.contentAlignment', CONTENT_ALIGNMENT_DEFAULT); + DEBUG_MODE_3 = new Property_1('org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); + DIRECTION_DEFAULT_0 = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION_0 = new Property_1('org.eclipse.elk.direction', DIRECTION_DEFAULT_0); + EDGE_ROUTING_DEFAULT_0 = ($clinit_EdgeRouting() , UNDEFINED_3); + EDGE_ROUTING_0 = new Property_1('org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT_0); + EXPAND_NODES_1 = new Property_1('org.eclipse.elk.expandNodes', false); + HIERARCHY_HANDLING_DEFAULT = ($clinit_HierarchyHandling() , INHERIT); + HIERARCHY_HANDLING_0 = new Property_1('org.eclipse.elk.hierarchyHandling', HIERARCHY_HANDLING_DEFAULT); + PADDING_DEFAULT_6 = new ElkPadding_0(12); + PADDING_6 = new Property_1('org.eclipse.elk.padding', PADDING_DEFAULT_6); + INTERACTIVE_7 = new Property_1('org.eclipse.elk.interactive', false); + INTERACTIVE_LAYOUT_1 = new Property_1('org.eclipse.elk.interactiveLayout', false); + OMIT_NODE_MICRO_LAYOUT_4 = new Property_1('org.eclipse.elk.omitNodeMicroLayout', false); + PORT_CONSTRAINTS_DEFAULT = ($clinit_PortConstraints() , UNDEFINED_4); + PORT_CONSTRAINTS_1 = new Property_1('org.eclipse.elk.portConstraints', PORT_CONSTRAINTS_DEFAULT); + POSITION_2 = new Property('org.eclipse.elk.position'); + PRIORITY_3 = new Property('org.eclipse.elk.priority'); + RANDOM_SEED_1 = new Property('org.eclipse.elk.randomSeed'); + SEPARATE_CONNECTED_COMPONENTS_2 = new Property('org.eclipse.elk.separateConnectedComponents'); + JUNCTION_POINTS_DEFAULT = new KVectorChain; + JUNCTION_POINTS_0 = new Property_1('org.eclipse.elk.junctionPoints', JUNCTION_POINTS_DEFAULT); + COMMENT_BOX_0 = new Property_1('org.eclipse.elk.commentBox', false); + HYPERNODE_0 = new Property_1('org.eclipse.elk.hypernode', false); + new Property('org.eclipse.elk.labelManager'); + MARGINS_DEFAULT = new ElkMargin; + MARGINS_0 = new Property_1('org.eclipse.elk.margins', MARGINS_DEFAULT); + NO_LAYOUT_0 = new Property_1('org.eclipse.elk.noLayout', false); + new ExclusiveBounds$ExclusiveLowerBound; + SCALE_FACTOR = new Property_1('org.eclipse.elk.scaleFactor', 1); + new Property_1('org.eclipse.elk.animate', true); + valueOf_4(0); + new Property_1('org.eclipse.elk.animTimeFactor', valueOf_4(100)); + new Property_1('org.eclipse.elk.layoutAncestors', false); + valueOf_4(0); + new Property_1('org.eclipse.elk.maxAnimTime', valueOf_4(4000)); + valueOf_4(0); + new Property_1('org.eclipse.elk.minAnimTime', valueOf_4(400)); + new Property_1('org.eclipse.elk.progressBar', false); + new Property_1('org.eclipse.elk.validateGraph', false); + new Property_1('org.eclipse.elk.validateOptions', true); + new Property_1('org.eclipse.elk.zoomToFit', false); + BOX_PACKING_MODE_DEFAULT = ($clinit_BoxLayoutProvider$PackingMode() , SIMPLE_0); + BOX_PACKING_MODE_0 = new Property_1('org.eclipse.elk.box.packingMode', BOX_PACKING_MODE_DEFAULT); + SPACING_COMMENT_COMMENT_0 = new Property_1('org.eclipse.elk.spacing.commentComment', 10); + SPACING_COMMENT_NODE_0 = new Property_1('org.eclipse.elk.spacing.commentNode', 10); + SPACING_COMPONENT_COMPONENT_1 = new Property_1('org.eclipse.elk.spacing.componentComponent', 20); + SPACING_EDGE_EDGE_0 = new Property_1('org.eclipse.elk.spacing.edgeEdge', 10); + SPACING_EDGE_LABEL_1 = new Property_1('org.eclipse.elk.spacing.edgeLabel', 2); + SPACING_EDGE_NODE_0 = new Property_1('org.eclipse.elk.spacing.edgeNode', 10); + SPACING_LABEL_LABEL_0 = new Property_1('org.eclipse.elk.spacing.labelLabel', 0); + SPACING_LABEL_NODE_0 = new Property_1('org.eclipse.elk.spacing.labelNode', 5); + SPACING_LABEL_PORT_HORIZONTAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortHorizontal', 1); + SPACING_LABEL_PORT_VERTICAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortVertical', 1); + SPACING_NODE_NODE_6 = new Property_1('org.eclipse.elk.spacing.nodeNode', 20); + SPACING_NODE_SELF_LOOP_0 = new Property_1('org.eclipse.elk.spacing.nodeSelfLoop', 10); + SPACING_PORT_PORT_0 = new Property_1('org.eclipse.elk.spacing.portPort', 10); + SPACING_INDIVIDUAL_0 = new Property('org.eclipse.elk.spacing.individual'); + SPACING_PORTS_SURROUNDING_DEFAULT = new ElkMargin_0; + SPACING_PORTS_SURROUNDING_0 = new Property_1('org.eclipse.elk.spacing.portsSurrounding', SPACING_PORTS_SURROUNDING_DEFAULT); + PARTITIONING_PARTITION_0 = new Property('org.eclipse.elk.partitioning.partition'); + PARTITIONING_ACTIVATE_DEFAULT = false; + PARTITIONING_ACTIVATE_0 = new Property_1('org.eclipse.elk.partitioning.activate', PARTITIONING_ACTIVATE_DEFAULT); + NODE_LABELS_PADDING_DEFAULT = new ElkPadding_0(5); + NODE_LABELS_PADDING_0 = new Property_1('org.eclipse.elk.nodeLabels.padding', NODE_LABELS_PADDING_DEFAULT); + NODE_LABELS_PLACEMENT_DEFAULT = ($clinit_NodeLabelPlacement() , all0 = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0)); + NODE_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.nodeLabels.placement', NODE_LABELS_PLACEMENT_DEFAULT); + PORT_ALIGNMENT_DEFAULT_DEFAULT_0 = ($clinit_PortAlignment() , DISTRIBUTED); + PORT_ALIGNMENT_DEFAULT = new Property_1('org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT_0); + PORT_ALIGNMENT_NORTH_0 = new Property('org.eclipse.elk.portAlignment.north'); + PORT_ALIGNMENT_SOUTH_0 = new Property('org.eclipse.elk.portAlignment.south'); + PORT_ALIGNMENT_WEST_0 = new Property('org.eclipse.elk.portAlignment.west'); + PORT_ALIGNMENT_EAST_0 = new Property('org.eclipse.elk.portAlignment.east'); + NODE_SIZE_CONSTRAINTS_DEFAULT = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); + NODE_SIZE_CONSTRAINTS_6 = new Property_1('org.eclipse.elk.nodeSize.constraints', NODE_SIZE_CONSTRAINTS_DEFAULT); + NODE_SIZE_OPTIONS_DEFAULT = of_1(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE)); + NODE_SIZE_OPTIONS_6 = new Property_1('org.eclipse.elk.nodeSize.options', NODE_SIZE_OPTIONS_DEFAULT); + NODE_SIZE_MINIMUM_DEFAULT = new KVector_1(0, 0); + NODE_SIZE_MINIMUM_5 = new Property_1('org.eclipse.elk.nodeSize.minimum', NODE_SIZE_MINIMUM_DEFAULT); + NODE_SIZE_FIXED_GRAPH_SIZE_0 = new Property_1('org.eclipse.elk.nodeSize.fixedGraphSize', false); + EDGE_LABELS_PLACEMENT_DEFAULT = ($clinit_EdgeLabelPlacement() , CENTER_5); + EDGE_LABELS_PLACEMENT_0 = new Property_1('org.eclipse.elk.edgeLabels.placement', EDGE_LABELS_PLACEMENT_DEFAULT); + EDGE_LABELS_INLINE_1 = new Property_1('org.eclipse.elk.edgeLabels.inline', false); + new Property('org.eclipse.elk.font.name'); + valueOf_4(1); + new Property_1('org.eclipse.elk.font.size', null); + PORT_ANCHOR_0 = new Property('org.eclipse.elk.port.anchor'); + PORT_INDEX_0 = new Property('org.eclipse.elk.port.index'); + PORT_SIDE_DEFAULT = ($clinit_PortSide() , UNDEFINED_5); + PORT_SIDE_0 = new Property_1('org.eclipse.elk.port.side', PORT_SIDE_DEFAULT); + PORT_BORDER_OFFSET_0 = new Property('org.eclipse.elk.port.borderOffset'); + PORT_LABELS_PLACEMENT_DEFAULT = ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0)); + PORT_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.portLabels.placement', PORT_LABELS_PLACEMENT_DEFAULT); + PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0 = new Property_1('org.eclipse.elk.portLabels.nextToPortIfPossible', false); + PORT_LABELS_TREAT_AS_GROUP_0 = new Property_1('org.eclipse.elk.portLabels.treatAsGroup', true); + INSIDE_SELF_LOOPS_ACTIVATE_0 = new Property_1('org.eclipse.elk.insideSelfLoops.activate', false); + INSIDE_SELF_LOOPS_YO_0 = new Property_1('org.eclipse.elk.insideSelfLoops.yo', false); + EDGE_THICKNESS_1 = new Property_1('org.eclipse.elk.edge.thickness', 1); + EDGE_TYPE_DEFAULT = ($clinit_EdgeType() , NONE_14); + new Property_1('org.eclipse.elk.edge.type', EDGE_TYPE_DEFAULT); + PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0 = true; +} + +function CoreOptions(){ + $clinit_CoreOptions(); +} + +defineClass(684, 1, $intern_90, CoreOptions); +_.apply_4 = function apply_168(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.algorithm'), ''), 'Layout Algorithm'), 'Select a specific layout algorithm.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.resolvedAlgorithm'), ''), 'Resolved Layout Algorithm'), 'Meta data associated with the selected algorithm.'), OBJECT), Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.alignment'), ''), 'Alignment'), 'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'), ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_Alignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.aspectRatio'), ''), 'Aspect Ratio'), 'The desired aspect ratio of the drawing, that is the quotient of width by height.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.bendPoints'), ''), 'Bend Points'), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.contentAlignment'), ''), 'Content Alignment'), 'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'), CONTENT_ALIGNMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.debugMode'), ''), 'Debug Mode'), 'Whether additional debug information shall be generated.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.direction'), ''), 'Direction'), 'Overall direction of edges: horizontal (right / left) or vertical (down / up).'), DIRECTION_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_Direction_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeRouting'), ''), 'Edge Routing'), 'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'), EDGE_ROUTING_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.expandNodes'), ''), 'Expand Nodes'), 'If active, nodes are expanded to fill the area of their parent.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hierarchyHandling'), ''), 'Hierarchy Handling'), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), HIERARCHY_HANDLING_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.padding'), ''), 'Padding'), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), PADDING_DEFAULT_6), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactive'), ''), 'Interactive'), 'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactiveLayout'), ''), 'interactive Layout'), 'Whether the graph should be changeable interactively and by setting constraints'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.omitNodeMicroLayout'), ''), 'Omit Node Micro Layout'), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portConstraints'), ''), 'Port Constraints'), 'Defines constraints of the position of the ports of a node.'), PORT_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortConstraints_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.position'), ''), 'Position'), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.priority'), ''), 'Priority'), 'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'), INT), Ljava_lang_Integer_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.randomSeed'), ''), 'Randomization Seed'), 'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.separateConnectedComponents'), ''), 'Separate Connected Components'), 'Whether each connected component should be processed separately.'), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.junctionPoints'), ''), 'Junction Points'), 'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'), JUNCTION_POINTS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.commentBox'), ''), 'Comment Box'), 'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hypernode'), ''), 'Hypernode'), 'Whether the node should be handled as a hypernode.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.labelManager'), ''), 'Label Manager'), "Label managers can shorten labels upon a layout algorithm's request."), OBJECT), Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.margins'), ''), 'Margins'), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), MARGINS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.noLayout'), ''), 'No Layout'), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.scaleFactor'), ''), 'Scale Factor'), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animate'), ''), 'Animate'), 'Whether the shift from the old layout to the new computed layout shall be animated.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animTimeFactor'), ''), 'Animation Time Factor'), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), valueOf_4(100)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layoutAncestors'), ''), 'Layout Ancestors'), 'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.maxAnimTime'), ''), 'Maximal Animation Time'), 'The maximal time for animations, in milliseconds.'), valueOf_4(4000)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.minAnimTime'), ''), 'Minimal Animation Time'), 'The minimal time for animations, in milliseconds.'), valueOf_4(400)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.progressBar'), ''), 'Progress Bar'), 'Whether a progress bar shall be displayed during layout computations.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateGraph'), ''), 'Validate Graph'), 'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateOptions'), ''), 'Validate Options'), 'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.zoomToFit'), ''), 'Zoom to Fit'), 'Whether the zoom level shall be set to view the whole diagram after layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.box.packingMode'), 'box'), 'Box Layout Mode'), 'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'), BOX_PACKING_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentComment'), 'spacing'), 'Comment Comment Spacing'), 'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentNode'), 'spacing'), 'Comment Node Spacing'), 'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.componentComponent'), 'spacing'), 'Components Spacing'), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeEdge'), 'spacing'), 'Edge Spacing'), 'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeLabel'), 'spacing'), 'Edge Label Spacing'), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeNode'), 'spacing'), 'Edge Node Spacing'), 'Spacing to be preserved between nodes and edges.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelLabel'), 'spacing'), 'Label Spacing'), 'Determines the amount of space to be left between two labels of the same graph element.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelNode'), 'spacing'), 'Label Node Spacing'), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortHorizontal'), 'spacing'), 'Horizontal spacing between Label and Port'), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortVertical'), 'spacing'), 'Vertical spacing between Label and Port'), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeNode'), 'spacing'), 'Node Spacing'), 'The minimal distance to be preserved between each two nodes.'), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeSelfLoop'), 'spacing'), 'Node Self Loop Spacing'), 'Spacing to be preserved between a node and its self loops.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portPort'), 'spacing'), 'Port Spacing'), 'Spacing between pairs of ports of the same node.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.individual'), 'spacing'), 'Individual Spacing'), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), OBJECT), Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portsSurrounding'), 'spacing'), 'Additional Port Space'), 'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'), SPACING_PORTS_SURROUNDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.partition'), 'partitioning'), 'Layout Partition'), 'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'), INT), Ljava_lang_Integer_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); + $addDependency(registry, 'org.eclipse.elk.partitioning.partition', 'org.eclipse.elk.partitioning.activate', PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.activate'), 'partitioning'), 'Layout Partitioning'), 'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'), PARTITIONING_ACTIVATE_DEFAULT), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.padding'), 'nodeLabels'), 'Node Label Padding'), 'Define padding for node labels that are placed inside of a node.'), NODE_LABELS_PADDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.placement'), 'nodeLabels'), 'Node Label Placement'), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), NODE_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.default'), 'portAlignment'), 'Port Alignment'), 'Defines the default port distribution for a node. May be overridden for each side individually.'), PORT_ALIGNMENT_DEFAULT_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.north'), 'portAlignment'), 'Port Alignment (North)'), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.south'), 'portAlignment'), 'Port Alignment (South)'), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.west'), 'portAlignment'), 'Port Alignment (West)'), "Defines how ports on the western side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.east'), 'portAlignment'), 'Port Alignment (East)'), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.constraints'), 'nodeSize'), 'Node Size Constraints'), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), NODE_SIZE_CONSTRAINTS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.options'), 'nodeSize'), 'Node Size Options'), 'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'), NODE_SIZE_OPTIONS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeOptions_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.minimum'), 'nodeSize'), 'Node Size Minimum'), 'The minimal size to which a node can be reduced.'), NODE_SIZE_MINIMUM_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.fixedGraphSize'), 'nodeSize'), 'Fixed Graph Size'), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.placement'), 'edgeLabels'), 'Edge Label Placement'), 'Gives a hint on where to put edge labels.'), EDGE_LABELS_PLACEMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.inline'), 'edgeLabels'), 'Inline Edge Labels'), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.name'), 'font'), 'Font Name'), 'Font name used for a label.'), STRING), Ljava_lang_String_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.size'), 'font'), 'Font Size'), 'Font size used for a label.'), INT), Ljava_lang_Integer_2_classLit), of_1(LABELS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.anchor'), 'port'), 'Port Anchor Offset'), 'The offset to the port position where connections shall be attached.'), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.index'), 'port'), 'Port Index'), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), INT), Ljava_lang_Integer_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.side'), 'port'), 'Port Side'), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), PORT_SIDE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortSide_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.borderOffset'), 'port'), 'Port Border Offset'), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PORTS)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.placement'), 'portLabels'), 'Port Label Placement'), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), PORT_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.nextToPortIfPossible'), 'portLabels'), 'Port Labels Next to Port'), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.treatAsGroup'), 'portLabels'), 'Treat Port Labels as Group'), 'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.activate'), 'insideSelfLoops'), 'Activate Inside Self Loops'), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.yo'), 'insideSelfLoops'), 'Inside Self Loop'), 'Whether a self loop should be routed inside a node instead of around that node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.thickness'), 'edge'), 'Edge Thickness'), 'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(EDGES)))); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.type'), 'edge'), 'Edge Type'), 'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'), EDGE_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeType_2_classLit), of_1(EDGES)))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.layered'), 'Layered'), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.orthogonal'), 'Orthogonal'), 'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.force'), 'Force'), 'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.circle'), 'Circle'), 'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.tree'), 'Tree'), 'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.planar'), 'Planar'), 'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.'))); + $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.radial'), 'Radial'), 'Radial layout algorithms usually position the nodes of the graph on concentric circles.'))); + $apply_25((new FixedLayouterOptions , registry)); + $apply_24((new BoxLayouterOptions , registry)); + $apply_26((new RandomLayouterOptions , registry)); +} +; +var ALGORITHM, ALIGNMENT_0, ALIGNMENT_DEFAULT, ASPECT_RATIO_5, BEND_POINTS, BOX_PACKING_MODE_0, BOX_PACKING_MODE_DEFAULT, COMMENT_BOX_0, CONTENT_ALIGNMENT_2, CONTENT_ALIGNMENT_DEFAULT, DEBUG_MODE_3, DIRECTION_0, DIRECTION_DEFAULT_0, EDGE_LABELS_INLINE_1, EDGE_LABELS_PLACEMENT_0, EDGE_LABELS_PLACEMENT_DEFAULT, EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT_0, EDGE_THICKNESS_1, EDGE_TYPE_DEFAULT, EXPAND_NODES_1, HIERARCHY_HANDLING_0, HIERARCHY_HANDLING_DEFAULT, HYPERNODE_0, INSIDE_SELF_LOOPS_ACTIVATE_0, INSIDE_SELF_LOOPS_YO_0, INTERACTIVE_7, INTERACTIVE_LAYOUT_1, JUNCTION_POINTS_0, JUNCTION_POINTS_DEFAULT, MARGINS_0, MARGINS_DEFAULT, NODE_LABELS_PADDING_0, NODE_LABELS_PADDING_DEFAULT, NODE_LABELS_PLACEMENT_5, NODE_LABELS_PLACEMENT_DEFAULT, NODE_SIZE_CONSTRAINTS_6, NODE_SIZE_CONSTRAINTS_DEFAULT, NODE_SIZE_FIXED_GRAPH_SIZE_0, NODE_SIZE_MINIMUM_5, NODE_SIZE_MINIMUM_DEFAULT, NODE_SIZE_OPTIONS_6, NODE_SIZE_OPTIONS_DEFAULT, NO_LAYOUT_0, OMIT_NODE_MICRO_LAYOUT_4, PADDING_6, PADDING_DEFAULT_6, PARTITIONING_ACTIVATE_0, PARTITIONING_ACTIVATE_DEFAULT, PARTITIONING_PARTITION_0, PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0, PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT_0, PORT_ALIGNMENT_EAST_0, PORT_ALIGNMENT_NORTH_0, PORT_ALIGNMENT_SOUTH_0, PORT_ALIGNMENT_WEST_0, PORT_ANCHOR_0, PORT_BORDER_OFFSET_0, PORT_CONSTRAINTS_1, PORT_CONSTRAINTS_DEFAULT, PORT_INDEX_0, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, PORT_LABELS_PLACEMENT_5, PORT_LABELS_PLACEMENT_DEFAULT, PORT_LABELS_TREAT_AS_GROUP_0, PORT_SIDE_0, PORT_SIDE_DEFAULT, POSITION_2, PRIORITY_3, RANDOM_SEED_1, RESOLVED_ALGORITHM, SCALE_FACTOR, SEPARATE_CONNECTED_COMPONENTS_2, SPACING_COMMENT_COMMENT_0, SPACING_COMMENT_NODE_0, SPACING_COMPONENT_COMPONENT_1, SPACING_EDGE_EDGE_0, SPACING_EDGE_LABEL_1, SPACING_EDGE_NODE_0, SPACING_INDIVIDUAL_0, SPACING_LABEL_LABEL_0, SPACING_LABEL_NODE_0, SPACING_LABEL_PORT_HORIZONTAL_0, SPACING_LABEL_PORT_VERTICAL_0, SPACING_NODE_NODE_6, SPACING_NODE_SELF_LOOP_0, SPACING_PORTS_SURROUNDING_0, SPACING_PORTS_SURROUNDING_DEFAULT, SPACING_PORT_PORT_0; +var Lorg_eclipse_elk_core_options_CoreOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'CoreOptions', 684); +function $clinit_Direction_0(){ + $clinit_Direction_0 = emptyMethod; + UNDEFINED_2 = new Direction_0('UNDEFINED', 0); + RIGHT_6 = new Direction_0('RIGHT', 1); + LEFT_6 = new Direction_0('LEFT', 2); + DOWN_1 = new Direction_0('DOWN', 3); + UP_1 = new Direction_0('UP', 4); +} + +function $isHorizontal(this$static){ + return this$static == LEFT_6 || this$static == RIGHT_6; +} + +function $isVertical(this$static){ + return this$static == UP_1 || this$static == DOWN_1; +} + +function $opposite(this$static){ + switch (this$static.ordinal) { + case 2: + return RIGHT_6; + case 1: + return LEFT_6; + case 4: + return DOWN_1; + case 3: + return UP_1; + default:return UNDEFINED_2; + } +} + +function Direction_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_96(name_0){ + $clinit_Direction_0(); + return valueOf(($clinit_Direction$Map_0() , $MAP_84), name_0); +} + +function values_102(){ + $clinit_Direction_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]); +} + +defineClass(103, 22, {3:1, 35:1, 22:1, 103:1}, Direction_0); +var DOWN_1, LEFT_6, RIGHT_6, UNDEFINED_2, UP_1; +var Lorg_eclipse_elk_core_options_Direction_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Direction', 103, Ljava_lang_Enum_2_classLit, values_102, valueOf_96); +function $clinit_Direction$Map_0(){ + $clinit_Direction$Map_0 = emptyMethod; + $MAP_84 = createValueOfMap(($clinit_Direction_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]))); +} + +var $MAP_84; +function $clinit_EdgeLabelPlacement(){ + $clinit_EdgeLabelPlacement = emptyMethod; + CENTER_5 = new EdgeLabelPlacement('CENTER', 0); + HEAD = new EdgeLabelPlacement('HEAD', 1); + TAIL = new EdgeLabelPlacement('TAIL', 2); +} + +function EdgeLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_97(name_0){ + $clinit_EdgeLabelPlacement(); + return valueOf(($clinit_EdgeLabelPlacement$Map() , $MAP_85), name_0); +} + +function values_103(){ + $clinit_EdgeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]); +} + +defineClass(272, 22, {3:1, 35:1, 22:1, 272:1}, EdgeLabelPlacement); +var CENTER_5, HEAD, TAIL; +var Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeLabelPlacement', 272, Ljava_lang_Enum_2_classLit, values_103, valueOf_97); +function $clinit_EdgeLabelPlacement$Map(){ + $clinit_EdgeLabelPlacement$Map = emptyMethod; + $MAP_85 = createValueOfMap(($clinit_EdgeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]))); +} + +var $MAP_85; +function $clinit_EdgeRouting(){ + $clinit_EdgeRouting = emptyMethod; + UNDEFINED_3 = new EdgeRouting('UNDEFINED', 0); + POLYLINE = new EdgeRouting('POLYLINE', 1); + ORTHOGONAL = new EdgeRouting('ORTHOGONAL', 2); + SPLINES = new EdgeRouting('SPLINES', 3); +} + +function EdgeRouting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_98(name_0){ + $clinit_EdgeRouting(); + return valueOf(($clinit_EdgeRouting$Map() , $MAP_86), name_0); +} + +function values_104(){ + $clinit_EdgeRouting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]); +} + +defineClass(218, 22, {3:1, 35:1, 22:1, 218:1}, EdgeRouting); +var ORTHOGONAL, POLYLINE, SPLINES, UNDEFINED_3; +var Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeRouting', 218, Ljava_lang_Enum_2_classLit, values_104, valueOf_98); +function $clinit_EdgeRouting$Map(){ + $clinit_EdgeRouting$Map = emptyMethod; + $MAP_86 = createValueOfMap(($clinit_EdgeRouting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]))); +} + +var $MAP_86; +function $clinit_EdgeType(){ + $clinit_EdgeType = emptyMethod; + NONE_14 = new EdgeType('NONE', 0); + DIRECTED = new EdgeType('DIRECTED', 1); + UNDIRECTED = new EdgeType('UNDIRECTED', 2); + ASSOCIATION = new EdgeType('ASSOCIATION', 3); + GENERALIZATION = new EdgeType('GENERALIZATION', 4); + DEPENDENCY = new EdgeType('DEPENDENCY', 5); +} + +function EdgeType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_99(name_0){ + $clinit_EdgeType(); + return valueOf(($clinit_EdgeType$Map() , $MAP_87), name_0); +} + +function values_105(){ + $clinit_EdgeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]); +} + +defineClass(312, 22, {3:1, 35:1, 22:1, 312:1}, EdgeType); +var ASSOCIATION, DEPENDENCY, DIRECTED, GENERALIZATION, NONE_14, UNDIRECTED; +var Lorg_eclipse_elk_core_options_EdgeType_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeType', 312, Ljava_lang_Enum_2_classLit, values_105, valueOf_99); +function $clinit_EdgeType$Map(){ + $clinit_EdgeType$Map = emptyMethod; + $MAP_87 = createValueOfMap(($clinit_EdgeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]))); +} + +var $MAP_87; +function $clinit_FixedLayouterOptions(){ + $clinit_FixedLayouterOptions = emptyMethod; + PADDING_DEFAULT_7 = new ElkPadding_0(15); + PADDING_7 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_7); + POSITION_3 = POSITION_2; + BEND_POINTS_0 = BEND_POINTS; + NODE_SIZE_CONSTRAINTS_7 = NODE_SIZE_CONSTRAINTS_6; + NODE_SIZE_MINIMUM_6 = NODE_SIZE_MINIMUM_5; + NODE_SIZE_FIXED_GRAPH_SIZE_1 = NODE_SIZE_FIXED_GRAPH_SIZE_0; +} + +function $apply_25(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.fixed'), 'ELK Fixed'), 'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'), new FixedLayouterOptions$FixedFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.padding', PADDING_DEFAULT_7); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.position', $getDefault(POSITION_3)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.bendPoints', $getDefault(BEND_POINTS_0)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_7)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_6)); + $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_1)); +} + +function FixedLayouterOptions(){ + $clinit_FixedLayouterOptions(); +} + +defineClass(977, 1, $intern_90, FixedLayouterOptions); +_.apply_4 = function apply_169(registry){ + $apply_25(registry); +} +; +var BEND_POINTS_0, NODE_SIZE_CONSTRAINTS_7, NODE_SIZE_FIXED_GRAPH_SIZE_1, NODE_SIZE_MINIMUM_6, PADDING_7, PADDING_DEFAULT_7, POSITION_3; +var Lorg_eclipse_elk_core_options_FixedLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions', 977); +function FixedLayouterOptions$FixedFactory(){ +} + +defineClass(978, 1, {}, FixedLayouterOptions$FixedFactory); +_.create_0 = function create_38(){ + var provider; + return provider = new FixedLayoutProvider , provider; +} +; +_.destroy = function destroy_9(obj){ +} +; +var Lorg_eclipse_elk_core_options_FixedLayouterOptions$FixedFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions/FixedFactory', 978); +function $clinit_HierarchyHandling(){ + $clinit_HierarchyHandling = emptyMethod; + INHERIT = new HierarchyHandling('INHERIT', 0); + INCLUDE_CHILDREN = new HierarchyHandling('INCLUDE_CHILDREN', 1); + SEPARATE_CHILDREN = new HierarchyHandling('SEPARATE_CHILDREN', 2); +} + +function HierarchyHandling(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_100(name_0){ + $clinit_HierarchyHandling(); + return valueOf(($clinit_HierarchyHandling$Map() , $MAP_88), name_0); +} + +function values_106(){ + $clinit_HierarchyHandling(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]); +} + +defineClass(334, 22, {3:1, 35:1, 22:1, 334:1}, HierarchyHandling); +var INCLUDE_CHILDREN, INHERIT, SEPARATE_CHILDREN; +var Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit = createForEnum('org.eclipse.elk.core.options', 'HierarchyHandling', 334, Ljava_lang_Enum_2_classLit, values_106, valueOf_100); +function $clinit_HierarchyHandling$Map(){ + $clinit_HierarchyHandling$Map = emptyMethod; + $MAP_88 = createValueOfMap(($clinit_HierarchyHandling() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]))); +} + +var $MAP_88; +function $clinit_LabelSide(){ + $clinit_LabelSide = emptyMethod; + UNKNOWN = new LabelSide('UNKNOWN', 0); + ABOVE = new LabelSide('ABOVE', 1); + BELOW = new LabelSide('BELOW', 2); + INLINE = new LabelSide('INLINE', 3); + new Property_0('org.eclipse.elk.labelSide', UNKNOWN); +} + +function $opposite_0(this$static){ + switch (this$static.ordinal) { + case 1: + return BELOW; + case 2: + return ABOVE; + case 3: + return INLINE; + default:return UNKNOWN; + } +} + +function LabelSide(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_101(name_0){ + $clinit_LabelSide(); + return valueOf(($clinit_LabelSide$Map() , $MAP_89), name_0); +} + +function values_107(){ + $clinit_LabelSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]); +} + +defineClass(285, 22, {3:1, 35:1, 22:1, 285:1}, LabelSide); +var ABOVE, BELOW, INLINE, UNKNOWN; +var Lorg_eclipse_elk_core_options_LabelSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'LabelSide', 285, Ljava_lang_Enum_2_classLit, values_107, valueOf_101); +function $clinit_LabelSide$Map(){ + $clinit_LabelSide$Map = emptyMethod; + $MAP_89 = createValueOfMap(($clinit_LabelSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]))); +} + +var $MAP_89; +function $clinit_NodeLabelPlacement(){ + $clinit_NodeLabelPlacement = emptyMethod; + H_LEFT_0 = new NodeLabelPlacement('H_LEFT', 0); + H_CENTER_0 = new NodeLabelPlacement('H_CENTER', 1); + H_RIGHT_0 = new NodeLabelPlacement('H_RIGHT', 2); + V_TOP_0 = new NodeLabelPlacement('V_TOP', 3); + V_CENTER_0 = new NodeLabelPlacement('V_CENTER', 4); + V_BOTTOM_0 = new NodeLabelPlacement('V_BOTTOM', 5); + INSIDE = new NodeLabelPlacement('INSIDE', 6); + OUTSIDE = new NodeLabelPlacement('OUTSIDE', 7); + H_PRIORITY = new NodeLabelPlacement('H_PRIORITY', 8); +} + +function NodeLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isValid_0(placement){ + $clinit_NodeLabelPlacement(); + var validHorizontal, validInsideOutside, validVertical; + validInsideOutside = of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [OUTSIDE])); + if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { + return false; + } + validHorizontal = of_2(H_LEFT_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_CENTER_0, H_RIGHT_0])); + if ($size_1(intersection_0(validHorizontal, placement)) > 1) { + return false; + } + validVertical = of_2(V_TOP_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, V_BOTTOM_0])); + if ($size_1(intersection_0(validVertical, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_102(name_0){ + $clinit_NodeLabelPlacement(); + return valueOf(($clinit_NodeLabelPlacement$Map() , $MAP_90), name_0); +} + +function values_108(){ + $clinit_NodeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]); +} + +defineClass(93, 22, {3:1, 35:1, 22:1, 93:1}, NodeLabelPlacement); +var H_CENTER_0, H_LEFT_0, H_PRIORITY, H_RIGHT_0, INSIDE, OUTSIDE, V_BOTTOM_0, V_CENTER_0, V_TOP_0; +var Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'NodeLabelPlacement', 93, Ljava_lang_Enum_2_classLit, values_108, valueOf_102); +function $clinit_NodeLabelPlacement$Map(){ + $clinit_NodeLabelPlacement$Map = emptyMethod; + $MAP_90 = createValueOfMap(($clinit_NodeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]))); +} + +var $MAP_90; +function $clinit_PortAlignment(){ + $clinit_PortAlignment = emptyMethod; + DISTRIBUTED = new PortAlignment('DISTRIBUTED', 0); + JUSTIFIED = new PortAlignment('JUSTIFIED', 1); + BEGIN_0 = new PortAlignment('BEGIN', 2); + CENTER_6 = new PortAlignment('CENTER', 3); + END_1 = new PortAlignment('END', 4); +} + +function PortAlignment(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_103(name_0){ + $clinit_PortAlignment(); + return valueOf(($clinit_PortAlignment$Map() , $MAP_91), name_0); +} + +function values_109(){ + $clinit_PortAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]); +} + +defineClass(249, 22, {3:1, 35:1, 22:1, 249:1}, PortAlignment); +var BEGIN_0, CENTER_6, DISTRIBUTED, END_1, JUSTIFIED; +var Lorg_eclipse_elk_core_options_PortAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortAlignment', 249, Ljava_lang_Enum_2_classLit, values_109, valueOf_103); +function $clinit_PortAlignment$Map(){ + $clinit_PortAlignment$Map = emptyMethod; + $MAP_91 = createValueOfMap(($clinit_PortAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]))); +} + +var $MAP_91; +function $clinit_PortConstraints(){ + $clinit_PortConstraints = emptyMethod; + UNDEFINED_4 = new PortConstraints('UNDEFINED', 0); + FREE = new PortConstraints('FREE', 1); + FIXED_SIDE = new PortConstraints('FIXED_SIDE', 2); + FIXED_ORDER = new PortConstraints('FIXED_ORDER', 3); + FIXED_RATIO = new PortConstraints('FIXED_RATIO', 4); + FIXED_POS = new PortConstraints('FIXED_POS', 5); +} + +function $isOrderFixed(this$static){ + return this$static == FIXED_ORDER || this$static == FIXED_RATIO || this$static == FIXED_POS; +} + +function $isSideFixed(this$static){ + return this$static != FREE && this$static != UNDEFINED_4; +} + +function PortConstraints(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_104(name_0){ + $clinit_PortConstraints(); + return valueOf(($clinit_PortConstraints$Map() , $MAP_92), name_0); +} + +function values_110(){ + $clinit_PortConstraints(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]); +} + +defineClass(98, 22, {3:1, 35:1, 22:1, 98:1}, PortConstraints); +var FIXED_ORDER, FIXED_POS, FIXED_RATIO, FIXED_SIDE, FREE, UNDEFINED_4; +var Lorg_eclipse_elk_core_options_PortConstraints_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortConstraints', 98, Ljava_lang_Enum_2_classLit, values_110, valueOf_104); +function $clinit_PortConstraints$Map(){ + $clinit_PortConstraints$Map = emptyMethod; + $MAP_92 = createValueOfMap(($clinit_PortConstraints() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]))); +} + +var $MAP_92; +function $clinit_PortLabelPlacement(){ + $clinit_PortLabelPlacement = emptyMethod; + OUTSIDE_0 = new PortLabelPlacement('OUTSIDE', 0); + INSIDE_0 = new PortLabelPlacement('INSIDE', 1); + NEXT_TO_PORT_IF_POSSIBLE_0 = new PortLabelPlacement('NEXT_TO_PORT_IF_POSSIBLE', 2); + ALWAYS_SAME_SIDE = new PortLabelPlacement('ALWAYS_SAME_SIDE', 3); + ALWAYS_OTHER_SAME_SIDE = new PortLabelPlacement('ALWAYS_OTHER_SAME_SIDE', 4); + SPACE_EFFICIENT_0 = new PortLabelPlacement('SPACE_EFFICIENT', 5); +} + +function PortLabelPlacement(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function isFixed(placement){ + $clinit_PortLabelPlacement(); + return !placement.contains(INSIDE_0) && !placement.contains(OUTSIDE_0); +} + +function isValid_1(placement){ + $clinit_PortLabelPlacement(); + var validInsideOutside, validPosition; + validInsideOutside = of_2(INSIDE_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0])); + if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { + return false; + } + validPosition = of_2(ALWAYS_SAME_SIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0])); + if ($size_1(intersection_0(validPosition, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_105(name_0){ + $clinit_PortLabelPlacement(); + return valueOf(($clinit_PortLabelPlacement$Map() , $MAP_93), name_0); +} + +function values_111(){ + $clinit_PortLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]); +} + +defineClass(273, 22, {3:1, 35:1, 22:1, 273:1}, PortLabelPlacement); +var ALWAYS_OTHER_SAME_SIDE, ALWAYS_SAME_SIDE, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, OUTSIDE_0, SPACE_EFFICIENT_0; +var Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortLabelPlacement', 273, Ljava_lang_Enum_2_classLit, values_111, valueOf_105); +function $clinit_PortLabelPlacement$Map(){ + $clinit_PortLabelPlacement$Map = emptyMethod; + $MAP_93 = createValueOfMap(($clinit_PortLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]))); +} + +var $MAP_93; +function $clinit_PortSide(){ + $clinit_PortSide = emptyMethod; + var all; + UNDEFINED_5 = new PortSide('UNDEFINED', 0); + NORTH_3 = new PortSide('NORTH', 1); + EAST_2 = new PortSide('EAST', 2); + SOUTH_2 = new PortSide('SOUTH', 3); + WEST_2 = new PortSide('WEST', 4); + SIDES_NONE = ($clinit_Collections() , new Collections$UnmodifiableSet((all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)))); + SIDES_NORTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_EAST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_SOUTH = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_WEST = asImmutable(of_2(WEST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_NORTH_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); + SIDES_EAST_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_NORTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_NORTH_EAST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2]))); + SIDES_SOUTH_WEST = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_EAST_SOUTH = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); + SIDES_NORTH_EAST_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, WEST_2]))); + SIDES_EAST_SOUTH_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); + SIDES_NORTH_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); + SIDES_NORTH_EAST_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2]))); + SIDES_NORTH_EAST_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]))); +} + +function $left(this$static){ + switch (this$static.ordinal) { + case 1: + return WEST_2; + case 2: + return NORTH_3; + case 3: + return EAST_2; + case 4: + return SOUTH_2; + default:return UNDEFINED_5; + } +} + +function $opposed(this$static){ + switch (this$static.ordinal) { + case 1: + return SOUTH_2; + case 2: + return WEST_2; + case 3: + return NORTH_3; + case 4: + return EAST_2; + default:return UNDEFINED_5; + } +} + +function $right(this$static){ + switch (this$static.ordinal) { + case 1: + return EAST_2; + case 2: + return SOUTH_2; + case 3: + return WEST_2; + case 4: + return NORTH_3; + default:return UNDEFINED_5; + } +} + +function PortSide(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function fromDirection(direction){ + $clinit_PortSide(); + switch (direction.ordinal) { + case 4: + return NORTH_3; + case 1: + return EAST_2; + case 3: + return SOUTH_2; + case 2: + return WEST_2; + default:return UNDEFINED_5; + } +} + +function valueOf_106(name_0){ + $clinit_PortSide(); + return valueOf(($clinit_PortSide$Map() , $MAP_94), name_0); +} + +function values_112(){ + $clinit_PortSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]); +} + +defineClass(61, 22, {3:1, 35:1, 22:1, 61:1}, PortSide); +var EAST_2, NORTH_3, SIDES_EAST, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST, SIDES_EAST_WEST, SIDES_NONE, SIDES_NORTH, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST, SIDES_SOUTH, SIDES_SOUTH_WEST, SIDES_WEST, SOUTH_2, UNDEFINED_5, WEST_2; +var Lorg_eclipse_elk_core_options_PortSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortSide', 61, Ljava_lang_Enum_2_classLit, values_112, valueOf_106); +function $clinit_PortSide$Map(){ + $clinit_PortSide$Map = emptyMethod; + $MAP_94 = createValueOfMap(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))); +} + +var $MAP_94; +function $clinit_RandomLayouterOptions(){ + $clinit_RandomLayouterOptions = emptyMethod; + PADDING_DEFAULT_8 = new ElkPadding_0(15); + PADDING_8 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_8); + SPACING_NODE_NODE_7 = new Property_2(SPACING_NODE_NODE_6, 15); + RANDOM_SEED_2 = new Property_2(RANDOM_SEED_1, valueOf_4(0)); + ASPECT_RATIO_6 = new Property_2(ASPECT_RATIO_5, $intern_102); +} + +function $apply_26(registry){ + $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.random'), 'ELK Randomizer'), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new RandomLayouterOptions$RandomFactory))); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.padding', PADDING_DEFAULT_8); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.spacing.nodeNode', 15); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.randomSeed', valueOf_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.aspectRatio', $intern_102); +} + +function RandomLayouterOptions(){ + $clinit_RandomLayouterOptions(); +} + +defineClass(981, 1, $intern_90, RandomLayouterOptions); +_.apply_4 = function apply_170(registry){ + $apply_26(registry); +} +; +var ASPECT_RATIO_6, PADDING_8, PADDING_DEFAULT_8, RANDOM_SEED_2, SPACING_NODE_NODE_7; +var Lorg_eclipse_elk_core_options_RandomLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions', 981); +function RandomLayouterOptions$RandomFactory(){ +} + +defineClass(982, 1, {}, RandomLayouterOptions$RandomFactory); +_.create_0 = function create_39(){ + var provider; + return provider = new RandomLayoutProvider , provider; +} +; +_.destroy = function destroy_10(obj){ +} +; +var Lorg_eclipse_elk_core_options_RandomLayouterOptions$RandomFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions/RandomFactory', 982); +function $clinit_SizeConstraint(){ + $clinit_SizeConstraint = emptyMethod; + PORTS_0 = new SizeConstraint('PORTS', 0); + PORT_LABELS = new SizeConstraint('PORT_LABELS', 1); + NODE_LABELS = new SizeConstraint('NODE_LABELS', 2); + MINIMUM_SIZE = new SizeConstraint('MINIMUM_SIZE', 3); +} + +function SizeConstraint(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_107(name_0){ + $clinit_SizeConstraint(); + return valueOf(($clinit_SizeConstraint$Map() , $MAP_95), name_0); +} + +function values_113(){ + $clinit_SizeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]); +} + +defineClass(374, 22, {3:1, 35:1, 22:1, 374:1}, SizeConstraint); +var MINIMUM_SIZE, NODE_LABELS, PORTS_0, PORT_LABELS; +var Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeConstraint', 374, Ljava_lang_Enum_2_classLit, values_113, valueOf_107); +function $clinit_SizeConstraint$Map(){ + $clinit_SizeConstraint$Map = emptyMethod; + $MAP_95 = createValueOfMap(($clinit_SizeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]))); +} + +var $MAP_95; +function $clinit_SizeOptions(){ + $clinit_SizeOptions = emptyMethod; + DEFAULT_MINIMUM_SIZE = new SizeOptions('DEFAULT_MINIMUM_SIZE', 0); + MINIMUM_SIZE_ACCOUNTS_FOR_PADDING = new SizeOptions('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING', 1); + COMPUTE_PADDING = new SizeOptions('COMPUTE_PADDING', 2); + OUTSIDE_NODE_LABELS_OVERHANG = new SizeOptions('OUTSIDE_NODE_LABELS_OVERHANG', 3); + PORTS_OVERHANG = new SizeOptions('PORTS_OVERHANG', 4); + UNIFORM_PORT_SPACING = new SizeOptions('UNIFORM_PORT_SPACING', 5); + SPACE_EFFICIENT_PORT_LABELS = new SizeOptions('SPACE_EFFICIENT_PORT_LABELS', 6); + FORCE_TABULAR_NODE_LABELS = new SizeOptions('FORCE_TABULAR_NODE_LABELS', 7); + ASYMMETRICAL = new SizeOptions('ASYMMETRICAL', 8); +} + +function SizeOptions(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_108(name_0){ + $clinit_SizeOptions(); + return valueOf(($clinit_SizeOptions$Map() , $MAP_96), name_0); +} + +function values_114(){ + $clinit_SizeOptions(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]); +} + +defineClass(259, 22, {3:1, 35:1, 22:1, 259:1}, SizeOptions); +var ASYMMETRICAL, COMPUTE_PADDING, DEFAULT_MINIMUM_SIZE, FORCE_TABULAR_NODE_LABELS, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, SPACE_EFFICIENT_PORT_LABELS, UNIFORM_PORT_SPACING; +var Lorg_eclipse_elk_core_options_SizeOptions_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeOptions', 259, Ljava_lang_Enum_2_classLit, values_114, valueOf_108); +function $clinit_SizeOptions$Map(){ + $clinit_SizeOptions$Map = emptyMethod; + $MAP_96 = createValueOfMap(($clinit_SizeOptions() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]))); +} + +var $MAP_96; +function $begin(this$static, name_0, thetotalWork){ + if (this$static.closed_0) { + throw toJs(new IllegalStateException_0('The task is already done.')); + } + else if (this$static.taskName != null) { + return false; + } + else { + this$static.taskName = name_0; + this$static.totalWork = thetotalWork; + this$static.recordExecutionTime && (this$static.startTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45))); + return true; + } +} + +function $doSubTask(this$static, maxHierarchyLevels){ + var newMaxHierarchyLevels; + newMaxHierarchyLevels = maxHierarchyLevels > 0?maxHierarchyLevels - 1:maxHierarchyLevels; + return $withExecutionTimeMeasurement($withLogPersistence($withLogging($withMaxHierarchyLevels(new BasicProgressMonitor, newMaxHierarchyLevels), this$static.recordLogs), this$static.persistLogs), this$static.recordExecutionTime); +} + +function $done_0(this$static){ + var endTime; + if (this$static.taskName == null) { + throw toJs(new IllegalStateException_0('The task has not begun yet.')); + } + if (!this$static.closed_0) { + if (this$static.recordExecutionTime) { + endTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45)); + this$static.totalTime = toDouble_0(sub_2(endTime, this$static.startTime)) * 1.0E-9; + } + this$static.completedWork < this$static.totalWork && $internalWorked(this$static, this$static.totalWork - this$static.completedWork); + this$static.closed_0 = true; + } +} + +function $internalWorked(this$static, work){ + if (this$static.totalWork > 0 && this$static.completedWork < this$static.totalWork) { + this$static.completedWork += work; + !!this$static.parentMonitor && this$static.parentMonitor.currentChildWork > 0 && this$static.maxLevels != 0 && $internalWorked(this$static.parentMonitor, work / this$static.totalWork * this$static.parentMonitor.currentChildWork); + } +} + +function $log_2(this$static, object){ + var logMessage; + if (this$static.recordLogs) { + logMessage = object; + $add_3(this$static.logMessages, logMessage); + } +} + +function $logGraph(this$static, object, graphType){ + var loggedGraph; + if (this$static.recordLogs && !!object && !!graphType) { + loggedGraph = new LoggedGraph; + $add_3(this$static.logGraphs, loggedGraph); + } +} + +function $subTask(this$static, work){ + var subMonitor; + if (this$static.closed_0) { + return null; + } + else { + subMonitor = $doSubTask(this$static, this$static.maxLevels); + $add_7(this$static.children, subMonitor); + subMonitor.parentMonitor = this$static; + this$static.currentChildWork = work; + return subMonitor; + } +} + +function $withExecutionTimeMeasurement(this$static, enabled){ + this$static.recordExecutionTime = enabled; + return this$static; +} + +function $withLogPersistence(this$static, enabled){ + this$static.persistLogs = enabled; + return this$static; +} + +function $withLogging(this$static, enabled){ + this$static.recordLogs = enabled; + if (this$static.recordLogs) { + this$static.logMessages = new ArrayList; + this$static.logGraphs = new ArrayList; + } + else { + this$static.logMessages = null; + this$static.logGraphs = null; + } + return this$static; +} + +function $withMaxHierarchyLevels(this$static, levels){ + levels < 0?(this$static.maxLevels = -1):(this$static.maxLevels = levels); + return this$static; +} + +function BasicProgressMonitor(){ + this.children = new LinkedList; +} + +defineClass(370, 1, {1949:1}, BasicProgressMonitor); +_.closed_0 = false; +_.completedWork = 0; +_.currentChildWork = -1; +_.logGraphs = null; +_.logMessages = null; +_.maxLevels = -1; +_.persistLogs = false; +_.recordExecutionTime = false; +_.recordLogs = false; +_.startTime = 0; +_.totalTime = 0; +_.totalWork = 0; +var Lorg_eclipse_elk_core_util_BasicProgressMonitor_2_classLit = createForClass('org.eclipse.elk.core.util', 'BasicProgressMonitor', 370); +function $areaStdDev(boxes, mean){ + var box, box$iterator, stddev, variance; + variance = 0; + for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 33); + variance += $wnd.Math.pow(box.width_0 * box.height - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +function $areaStdDev2(boxes, mean){ + var box, box$iterator, stddev, variance; + variance = 0; + for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 157); + variance += $wnd.Math.pow($getWidth(box) * $getHeight(box) - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +function $mergeAndPlaceDec(groups, objSpacing, minWidth, minHeight, expandNodes){ + var box, boxQueue, boxToBeat, collectedArea, groupSize, innerAspectRatio, innerGroup, maybeGroup, toBePlaced; + $clinit_Collections(); + $sort(groups, new BoxLayoutProvider$lambda$0$Type); + boxQueue = newLinkedList(groups); + toBePlaced = new ArrayList; + maybeGroup = new ArrayList; + boxToBeat = null; + collectedArea = 0; + while (boxQueue.size_0 != 0) { + box = castTo(boxQueue.size_0 == 0?null:(checkCriticalElement(boxQueue.size_0 != 0) , $removeNode_0(boxQueue, boxQueue.header.next_0)), 157); + if (!boxToBeat || $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 < $getWidth(box) * $getHeight(box)) { + boxToBeat = box; + toBePlaced.array[toBePlaced.array.length] = box; + } + else { + collectedArea += $getWidth(box) * $getHeight(box); + maybeGroup.array[maybeGroup.array.length] = box; + if (maybeGroup.array.length > 1 && (collectedArea > $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 || boxQueue.size_0 == 0)) { + innerGroup = new BoxLayoutProvider$Group(maybeGroup); + innerAspectRatio = $getWidth(boxToBeat) / $getHeight(boxToBeat); + groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(innerGroup.size_0), groupSize); + boxToBeat = innerGroup; + toBePlaced.array[toBePlaced.array.length] = innerGroup; + collectedArea = 0; + maybeGroup.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + } + $addAll_2(toBePlaced, maybeGroup); + return toBePlaced; +} + +function $mergeAndPlaceInc(groups, objSpacing, minWidth, minHeight, expandNodes){ + var commonArea, g, groupIterator, groupSize, innerAspectRatio, merged, toBePlaced; + $clinit_Collections(); + $sort(groups, new BoxLayoutProvider$lambda$2$Type); + groupIterator = new AbstractList$ListIteratorImpl(groups, 0); + toBePlaced = new ArrayList; + commonArea = 0; + while (groupIterator.i < groupIterator.this$01_0.size_1()) { + g = (checkCriticalElement(groupIterator.i < groupIterator.this$01_0.size_1()) , castTo(groupIterator.this$01_0.get_0(groupIterator.last = groupIterator.i++), 157)); + if (toBePlaced.array.length != 0 && $getWidth(g) * $getHeight(g) > commonArea * 2) { + merged = new BoxLayoutProvider$Group(toBePlaced); + innerAspectRatio = $getWidth(g) / $getHeight(g); + groupSize = $placeInnerBoxes(merged, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(merged.size_0), groupSize); + toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + commonArea = 0; + toBePlaced.array[toBePlaced.array.length] = merged; + toBePlaced.array[toBePlaced.array.length] = g; + commonArea = $getWidth(merged) * $getHeight(merged) + $getWidth(g) * $getHeight(g); + } + else { + toBePlaced.array[toBePlaced.array.length] = g; + commonArea += $getWidth(g) * $getHeight(g); + } + } + return toBePlaced; +} + +function $mergeAndPlaceMixed(groups, objSpacing, minWidth, minHeight, expandNodes){ + var anIndex, box, cumAreaArray, groupSize, index_0, innerAspectRatio, innerGroup, pq, remain, select, toBePlaced, value_0; + cumAreaArray = initUnidimensionalArray(D_classLit, $intern_65, 25, groups.array.length, 15, 1); + pq = new PriorityQueue(new BoxLayoutProvider$lambda$1$Type); + $addAll_4(pq, groups); + index_0 = 0; + toBePlaced = new ArrayList; + while (pq.heap.array.length != 0) { + box = castTo(pq.heap.array.length == 0?null:$get_11(pq.heap, 0), 157); + if (index_0 > 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[0]) { + anIndex = 0; + while (anIndex < toBePlaced.array.length - 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[anIndex]) { + ++anIndex; + } + select = new AbstractList$SubList(toBePlaced, 0, anIndex + 1); + innerGroup = new BoxLayoutProvider$Group(select); + innerAspectRatio = $getWidth(box) / $getHeight(box); + groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); + $add_19($reset_5(innerGroup.size_0), groupSize); + checkCriticalState_0($offer(pq, innerGroup)); + remain = new AbstractList$SubList(toBePlaced, anIndex + 1, toBePlaced.array.length); + $addAll_4(pq, remain); + toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + index_0 = 0; + fill0_0(cumAreaArray, cumAreaArray.length, 0); + } + else { + value_0 = pq.heap.array.length == 0?null:$get_11(pq.heap, 0); + value_0 != null && $removeAtIndex_0(pq, 0); + index_0 > 0 && (cumAreaArray[index_0] = cumAreaArray[index_0 - 1]); + cumAreaArray[index_0] += $getWidth(box) * $getHeight(box); + ++index_0; + toBePlaced.array[toBePlaced.array.length] = box; + } + } + return toBePlaced; +} + +function $placeBoxes(sortedBoxes, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ + var box, box$iterator, boxIter, broadestRow, height, highestBox, maxRowWidth, mean, newHeight, newWidth, nextRowIndex, oldHeight, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; + maxRowWidth = 0; + totalArea = 0; + for (box$iterator = new ArrayList$1(sortedBoxes); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 33); + resizeNode_0(box); + maxRowWidth = $wnd.Math.max(maxRowWidth, box.width_0); + totalArea += box.width_0 * box.height; + } + mean = totalArea / sortedBoxes.array.length; + stddev = $areaStdDev(sortedBoxes, mean); + totalArea += sortedBoxes.array.length * stddev; + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; + xpos = padding.left; + ypos = padding.top_0; + highestBox = 0; + broadestRow = padding.left + padding.right; + rowIndices = new LinkedList; + $add_7(rowIndices, valueOf_4(0)); + rowHeights = new LinkedList; + boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); + while (boxIter.i < boxIter.this$01_0.size_1()) { + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); + width_0 = box.width_0; + height = box.height; + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + $setX_2(box, xpos); + $setY_3(box, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); + highestBox = $wnd.Math.max(highestBox, height); + xpos += width_0 + minSpacing; + } + broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); + totalHeight = ypos + highestBox + padding.bottom; + if (totalHeight < minTotalHeight) { + highestBox += minTotalHeight - totalHeight; + totalHeight = minTotalHeight; + } + if (expandNodes) { + xpos = padding.left; + boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); + $addLast_0(rowIndices, valueOf_4(sortedBoxes.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + $addLast_0(rowHeights, highestBox); + rowHeightIter = $listIterator_2(rowHeights, 0); + rowHeight = 0; + while (boxIter.i < boxIter.this$01_0.size_1()) { + if (boxIter.i == nextRowIndex) { + xpos = padding.left; + rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); + oldHeight = box.height; + $setHeight_0(box, rowHeight); + newHeight = rowHeight; + if (boxIter.i == nextRowIndex) { + newWidth = broadestRow - xpos - padding.right; + oldWidth = box.width_0; + $setWidth_0(box, newWidth); + translate_1(box, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); + } + xpos += box.width_0 + minSpacing; + } + } + return new KVector_1(broadestRow, totalHeight); +} + +function $placeBoxesGrouping(parentNode, objSpacing, padding, expandNodes){ + var aspectRatio, finalGroup, g, groups, lastArg, lastArg0, lastArg1, minSize, mode, node, node$iterator, parentSize, toBePlaced; + minSize = new KVector_2(castTo($getProperty_0(parentNode, ($clinit_BoxLayouterOptions() , NODE_SIZE_MINIMUM_4)), 8)); + minSize.x_0 = $wnd.Math.max(minSize.x_0 - padding.left - padding.right, 0); + minSize.y_0 = $wnd.Math.max(minSize.y_0 - padding.top_0 - padding.bottom, 0); + aspectRatio = castToDouble($getProperty_0(parentNode, ASPECT_RATIO_4)); + (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); + groups = new ArrayList; + for (node$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + g = new BoxLayoutProvider$Group_0(node); + groups.array[groups.array.length] = g; + } + mode = castTo($getProperty_0(parentNode, BOX_PACKING_MODE), 311); + switch (mode.ordinal) { + case 3: + toBePlaced = $mergeAndPlaceInc(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg0 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg0)); + break; + case 1: + toBePlaced = $mergeAndPlaceDec(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg1 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg1)); + break; + default:toBePlaced = $mergeAndPlaceMixed(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg)); + } + finalGroup = new BoxLayoutProvider$Group(toBePlaced); + parentSize = $placeInnerBoxes(finalGroup, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); + resizeNode_1(parentNode, parentSize.x_0, parentSize.y_0, false, true); +} + +function $placeInnerBoxes(group, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ + var bottoms, box, box$iterator, boxIter, broadestRow, height, highestBox, last, maxRowWidth, mean, newWidth, nextRowIndex, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; + maxRowWidth = 0; + totalArea = 0; + for (box$iterator = new ArrayList$1(group.groups); box$iterator.i < box$iterator.this$01.array.length;) { + box = castTo($next_7(box$iterator), 157); + !!box.node && resizeNode_0(box.node); + maxRowWidth = $wnd.Math.max(maxRowWidth, $getWidth(box)); + totalArea += $getWidth(box) * $getHeight(box); + } + mean = totalArea / group.groups.array.length; + stddev = $areaStdDev2(group.groups, mean); + totalArea += group.groups.array.length * stddev; + maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; + xpos = padding.left; + ypos = padding.top_0; + highestBox = 0; + broadestRow = padding.left + padding.right; + rowIndices = new LinkedList; + $add_7(rowIndices, valueOf_4(0)); + rowHeights = new LinkedList; + boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); + last = null; + bottoms = new ArrayList; + while (boxIter.i < boxIter.this$01_0.size_1()) { + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); + width_0 = $getWidth(box); + height = $getHeight(box); + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); + $add_3(group.right, last); + bottoms.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + bottoms.array[bottoms.array.length] = box; + $translate_1(box, xpos, ypos); + broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); + highestBox = $wnd.Math.max(highestBox, height); + xpos += width_0 + minSpacing; + last = box; + } + $addAll_2(group.bottom, bottoms); + $add_3(group.right, castTo($get_11(bottoms, bottoms.array.length - 1), 157)); + broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); + totalHeight = ypos + highestBox + padding.bottom; + if (totalHeight < minTotalHeight) { + highestBox += minTotalHeight - totalHeight; + totalHeight = minTotalHeight; + } + if (expandNodes) { + xpos = padding.left; + boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); + $addLast_0(rowIndices, valueOf_4(group.groups.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + $addLast_0(rowHeights, highestBox); + rowHeightIter = $listIterator_2(rowHeights, 0); + rowHeight = 0; + while (boxIter.i < boxIter.this$01_0.size_1()) { + if (boxIter.i == nextRowIndex) { + xpos = padding.left; + rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); + $setHeight(box, rowHeight); + if (boxIter.i == nextRowIndex) { + newWidth = broadestRow - xpos - padding.right; + oldWidth = $getWidth(box); + $setWidth(box, newWidth); + $translateInnerNodes(box, (newWidth - oldWidth) / 2, 0); + } + xpos += $getWidth(box) + minSpacing; + } + } + return new KVector_1(broadestRow, totalHeight); +} + +function BoxLayoutProvider(){ +} + +function lambda$0_36(g1_0, g2_1){ + return -compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$1_20(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$2_10(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +defineClass(972, 209, $intern_96, BoxLayoutProvider); +_.layout = function layout_8(layoutNode, progressMonitor){ + var expandNodes, interactive, objSpacing, padding, sortedBoxes, sortedBoxes_0, minSize, aspectRatio, parentSize; + $begin(progressMonitor, 'Box layout', 2); + objSpacing = $floatValue(castToDouble($getProperty_0(layoutNode, ($clinit_BoxLayouterOptions() , SPACING_NODE_NODE_5)))); + padding = castTo($getProperty_0(layoutNode, PADDING_5), 116); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutNode, EXPAND_NODES_0))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutNode, INTERACTIVE_6))); + switch (castTo($getProperty_0(layoutNode, BOX_PACKING_MODE), 311).ordinal) { + case 0: + sortedBoxes = (sortedBoxes_0 = new ArrayList_1((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)) , $clinit_Collections() , $sort(sortedBoxes_0, new BoxLayoutProvider$1(interactive)) , sortedBoxes_0); + minSize = effectiveMinSizeConstraintFor(layoutNode); + aspectRatio = castToDouble($getProperty_0(layoutNode, ASPECT_RATIO_4)); + (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); + parentSize = $placeBoxes(sortedBoxes, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); + resizeNode_1(layoutNode, parentSize.x_0, parentSize.y_0, false, true); + break; + default:$placeBoxesGrouping(layoutNode, objSpacing, padding, expandNodes); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider', 972); +function $compare_24(this$static, child1, child2){ + var c, prio1, prio2, size1, size2; + prio1 = castTo($getProperty_0(child1, ($clinit_BoxLayouterOptions() , PRIORITY_2)), 19); + !prio1 && (prio1 = valueOf_4(0)); + prio2 = castTo($getProperty_0(child2, PRIORITY_2), 19); + !prio2 && (prio2 = valueOf_4(0)); + if (prio1.value_0 > prio2.value_0) { + return -1; + } + else if (prio1.value_0 < prio2.value_0) { + return 1; + } + else { + if (this$static.val$interactive2) { + c = compare_4(child1.y_0, child2.y_0); + if (c != 0) { + return c; + } + c = compare_4(child1.x_0, child2.x_0); + if (c != 0) { + return c; + } + } + size1 = child1.width_0 * child1.height; + size2 = child2.width_0 * child2.height; + return compare_4(size1, size2); + } +} + +function BoxLayoutProvider$1(val$interactive){ + this.val$interactive2 = val$interactive; +} + +defineClass(973, 1, $intern_88, BoxLayoutProvider$1); +_.compare_1 = function compare_82(child1, child2){ + return $compare_24(this, castTo(child1, 33), castTo(child2, 33)); +} +; +_.equals_0 = function equals_174(other){ + return this === other; +} +; +_.reversed = function reversed_74(){ + return new Comparators$ReversedComparator(this); +} +; +_.val$interactive2 = false; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/1', 973); +function $getHeight(this$static){ + if (this$static.node) { + return this$static.node.height; + } + return this$static.size_0.y_0; +} + +function $getWidth(this$static){ + if (this$static.node) { + return this$static.node.width_0; + } + return this$static.size_0.x_0; +} + +function $setHeight(this$static, h){ + var delta, g, g$iterator; + if (this$static.node) { + $setHeight_0(this$static.node, h); + } + else { + delta = h - $getHeight(this$static); + for (g$iterator = new ArrayList$1(this$static.bottom); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $setHeight(g, $getHeight(g) + delta); + } + } +} + +function $setWidth(this$static, w){ + var delta, g, g$iterator; + if (this$static.node) { + $setWidth_0(this$static.node, w); + } + else { + delta = w - $getWidth(this$static); + for (g$iterator = new ArrayList$1(this$static.right); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $setWidth(g, $getWidth(g) + delta); + } + } +} + +function $translate_1(this$static, x_0, y_0){ + var g, g$iterator; + if (this$static.node) { + $setX_2(this$static.node, this$static.node.x_0 + x_0); + $setY_3(this$static.node, this$static.node.y_0 + y_0); + } + else { + for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $translate_1(g, x_0, y_0); + } + } +} + +function $translateInnerNodes(this$static, x_0, y_0){ + var g, g$iterator; + if (this$static.node) { + translate_0(this$static.node, x_0, y_0); + } + else { + for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { + g = castTo($next_7(g$iterator), 157); + $translateInnerNodes(g, x_0, y_0); + } + } +} + +function BoxLayoutProvider$Group(groups){ + this.groups = (checkNotNull(groups) , new ArrayList_1(groups)); + this.bottom = new ArrayList; + this.right = new ArrayList; + this.size_0 = new KVector; +} + +function BoxLayoutProvider$Group_0(node){ + this.node = node; + $setX_2(node, 0); + $setY_3(node, 0); +} + +defineClass(157, 1, {157:1}, BoxLayoutProvider$Group, BoxLayoutProvider$Group_0); +_.toString_0 = function toString_117(){ + return this.node?$toString_23(this.node):$toString_2(this.groups); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$Group_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/Group', 157); +function $clinit_BoxLayoutProvider$PackingMode(){ + $clinit_BoxLayoutProvider$PackingMode = emptyMethod; + SIMPLE_0 = new BoxLayoutProvider$PackingMode('SIMPLE', 0); + GROUP_DEC = new BoxLayoutProvider$PackingMode('GROUP_DEC', 1); + GROUP_MIXED = new BoxLayoutProvider$PackingMode('GROUP_MIXED', 2); + GROUP_INC = new BoxLayoutProvider$PackingMode('GROUP_INC', 3); +} + +function BoxLayoutProvider$PackingMode(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_109(name_0){ + $clinit_BoxLayoutProvider$PackingMode(); + return valueOf(($clinit_BoxLayoutProvider$PackingMode$Map() , $MAP_97), name_0); +} + +function values_115(){ + $clinit_BoxLayoutProvider$PackingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]); +} + +defineClass(311, 22, {3:1, 35:1, 22:1, 311:1}, BoxLayoutProvider$PackingMode); +var GROUP_DEC, GROUP_INC, GROUP_MIXED, SIMPLE_0; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit = createForEnum('org.eclipse.elk.core.util', 'BoxLayoutProvider/PackingMode', 311, Ljava_lang_Enum_2_classLit, values_115, valueOf_109); +function $clinit_BoxLayoutProvider$PackingMode$Map(){ + $clinit_BoxLayoutProvider$PackingMode$Map = emptyMethod; + $MAP_97 = createValueOfMap(($clinit_BoxLayoutProvider$PackingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]))); +} + +var $MAP_97; +function BoxLayoutProvider$lambda$0$Type(){ +} + +defineClass(974, 1, $intern_88, BoxLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_83(arg0, arg1){ + return lambda$0_36(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_175(other){ + return this === other; +} +; +_.reversed = function reversed_75(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$0$Type', 974); +function BoxLayoutProvider$lambda$1$Type(){ +} + +defineClass(975, 1, $intern_88, BoxLayoutProvider$lambda$1$Type); +_.compare_1 = function compare_84(arg0, arg1){ + return lambda$1_20(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_176(other){ + return this === other; +} +; +_.reversed = function reversed_76(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$1$Type', 975); +function BoxLayoutProvider$lambda$2$Type(){ +} + +defineClass(976, 1, $intern_88, BoxLayoutProvider$lambda$2$Type); +_.compare_1 = function compare_85(arg0, arg1){ + return lambda$2_10(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_177(other){ + return this === other; +} +; +_.reversed = function reversed_77(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$2$Type', 976); +function ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type(){ +} + +defineClass(1365, 1, {831:1}, ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type); +_.accept_4 = function accept_144(arg0, arg1){ + return $clinit_ElkSpacings$AbstractSpacingsBuilder() , !instanceOf(arg1, 160) || $accept_5(($clinit_LayoutConfigurator() , OPTION_TARGET_FILTER , castTo(arg0, 160)), arg1); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type', 1365); +function ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1366, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type); +_.accept = function accept_145(arg0){ + $lambda$1_1(this.$$outer_0, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type', 1366); +function ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type(){ +} + +defineClass(1367, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type); +_.accept = function accept_146(arg0){ + castTo(arg0, 94); + $clinit_ElkSpacings$AbstractSpacingsBuilder(); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type', 1367); +function ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1371, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type); +_.accept = function accept_147(arg0){ + $lambda$3_0(this.$$outer_0, castTo(arg0, 94)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type', 1371); +function ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1369, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type); +_.test_0 = function test_109(arg0){ + return $lambda$4_1(this.$$outer_0, this.element_1, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type', 1369); +function ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_0, p_1){ + this.element_0 = element_0; + this.p_1 = p_1; +} + +defineClass(1368, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type); +_.test_0 = function test_110(arg0){ + return lambda$5_3(this.element_0, this.p_1, castTo(arg0, 831)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type', 1368); +function ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1370, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type); +_.accept = function accept_148(arg0){ + $lambda$6(this.$$outer_0, this.element_1, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type', 1370); +function applyConfiguredNodeScaling(node){ + var anchor, portLabels, scalingFactor, shape_0, shape$iterator; + scalingFactor = $doubleValue(castToDouble($getProperty_0(node, ($clinit_CoreOptions() , SCALE_FACTOR)))); + if (scalingFactor == 1) { + return; + } + $setDimensions_0(node, scalingFactor * node.width_0, scalingFactor * node.height); + portLabels = concat_0(transform_1((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), new ElkUtil$lambda$0$Type)); + for (shape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels), (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), portLabels]))); $hasNext_1(shape$iterator);) { + shape_0 = castTo($next_0(shape$iterator), 470); + shape_0.setLocation(scalingFactor * shape_0.getX(), scalingFactor * shape_0.getY()); + shape_0.setDimensions(scalingFactor * shape_0.getWidth(), scalingFactor * shape_0.getHeight()); + anchor = castTo(shape_0.getProperty(PORT_ANCHOR_0), 8); + if (anchor) { + anchor.x_0 *= scalingFactor; + anchor.y_0 *= scalingFactor; + } + } +} + +function applyVectorChain(vectorChain, section){ + var bendpoint, elkBendPoint, firstPoint, lastPoint, newPointIter, nextPoint, oldPointIter; + if (vectorChain.size_0 < 2) { + throw toJs(new IllegalArgumentException_0('The vector chain must contain at least a source and a target point.')); + } + firstPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.header.next_0.value_0, 8)); + $setStartLocation(section, firstPoint.x_0, firstPoint.y_0); + oldPointIter = new AbstractEList$EListIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); + newPointIter = $listIterator_2(vectorChain, 1); + while (newPointIter.currentIndex < vectorChain.size_0 - 1) { + nextPoint = castTo($next_10(newPointIter), 8); + if (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + bendpoint = castTo($doNext(oldPointIter), 469); + } + else { + bendpoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $doAdd_0(oldPointIter, bendpoint); + } + $set_10(bendpoint, nextPoint.x_0, nextPoint.y_0); + } + while (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + $doNext(oldPointIter); + $remove_36(oldPointIter); + } + lastPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.tail.prev.value_0, 8)); + $setEndLocation(section, lastPoint.x_0, lastPoint.y_0); +} + +function applyVisitors(graph, visitors){ + var allElements, graphElement, i, nextElement; + allElements = new ElkGraphUtil$PropertiesSkippingTreeIterator(graph); + while (allElements.data_0 == null && !allElements.includeRoot?$hasAnyChildren(allElements):allElements.data_0 == null || allElements.size_0 != 0 && castTo(allElements.data_0[allElements.size_0 - 1], 47).hasNext_0()) { + nextElement = castTo($next_14(allElements), 56); + if (instanceOf(nextElement, 160)) { + graphElement = castTo(nextElement, 160); + for (i = 0; i < visitors.length; i++) { + visitors[i].visit(graphElement); + } + } + } +} + +function calcPortOffset_0(port, side){ + var node; + if (!$getParent_3(port)) { + throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); + } + node = $getParent_3(port); + switch (side.ordinal) { + case 1: + return -(port.y_0 + port.height); + case 2: + return port.x_0 - node.width_0; + case 3: + return port.y_0 - node.height; + case 4: + return -(port.x_0 + port.width_0); + } + return 0; +} + +function calcPortSide_0(port, direction){ + var heightPercent, node, nodeHeight, nodeWidth, widthPercent, xpos, ypos; + if (!$getParent_3(port)) { + throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); + } + node = $getParent_3(port); + nodeWidth = node.width_0; + nodeHeight = node.height; + if (nodeWidth <= 0 && nodeHeight <= 0) { + return $clinit_PortSide() , UNDEFINED_5; + } + xpos = port.x_0; + ypos = port.y_0; + switch (direction.ordinal) { + case 2: + case 1: + if (xpos < 0) { + return $clinit_PortSide() , WEST_2; + } + else if (xpos + port.width_0 > nodeWidth) { + return $clinit_PortSide() , EAST_2; + } + + break; + case 4: + case 3: + if (ypos < 0) { + return $clinit_PortSide() , NORTH_3; + } + else if (ypos + port.height > nodeHeight) { + return $clinit_PortSide() , SOUTH_2; + } + + } + widthPercent = (xpos + port.width_0 / 2) / nodeWidth; + heightPercent = (ypos + port.height / 2) / nodeHeight; + return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); +} + +function computeInsidePart(labelPosition, labelSize, portSize, portBorderOffset, portSide){ + var insidePart; + insidePart = 0; + switch (portSide.ordinal) { + case 1: + insidePart = $wnd.Math.max(0, labelSize.y_0 + labelPosition.y_0 - (portSize.y_0 + portBorderOffset)); + break; + case 3: + insidePart = $wnd.Math.max(0, -labelPosition.y_0 - portBorderOffset); + break; + case 2: + insidePart = $wnd.Math.max(0, -labelPosition.x_0 - portBorderOffset); + break; + case 4: + insidePart = $wnd.Math.max(0, labelSize.x_0 + labelPosition.x_0 - (portSize.x_0 + portBorderOffset)); + } + return insidePart; +} + +function computeInsidePart_0(port, portBorderOffset){ + var labelBounds; + labelBounds = getLabelsBounds(port); + return computeInsidePart(new KVector_1(labelBounds.x_0, labelBounds.y_0), new KVector_1(labelBounds.width_0, labelBounds.height), port.getSize(), portBorderOffset, port.getSide()); +} + +function createVectorChain(edgeSection){ + var bendPoint, bendPoint$iterator, chain; + chain = new KVectorChain; + $add_7(chain, new KVector_1(edgeSection.startX, edgeSection.startY)); + for (bendPoint$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 469); + $add_7(chain, new KVector_1(bendPoint.x_0, bendPoint.y_0)); + } + $add_7(chain, new KVector_1(edgeSection.endX, edgeSection.endY)); + return chain; +} + +function determineJunctionPoints(edge){ + var junctionPoints; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { + throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); + } + junctionPoints = new KVectorChain; + !!connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)), false)); + !!connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)), true)); + return junctionPoints; +} + +function determineJunctionPoints_0(edge, port, reverse){ + var allConnectedSections, allSectIter, dx2, dx3, dy2, dy3, i, junctionPoints, offset, offsetMap, otherEdge, otherEdge$iterator, otherPoints, otherSection, p1, p2, p3, pointsMap, section, sectionPoints; + section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + junctionPoints = new KVectorChain; + pointsMap = new HashMap; + sectionPoints = getPoints(section); + $put_9(pointsMap.hashCodeMap, section, sectionPoints); + offsetMap = new HashMap; + allConnectedSections = new LinkedList; + for (otherEdge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges), (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)]))); $hasNext_1(otherEdge$iterator);) { + otherEdge = castTo($next_0(otherEdge$iterator), 79); + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { + throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); + } + if (otherEdge != edge) { + otherSection = castTo($get_20((!otherEdge.sections && (otherEdge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, otherEdge, 6, 6)) , otherEdge.sections), 0), 202); + $addNode_0(allConnectedSections, otherSection, allConnectedSections.tail.prev, allConnectedSections.tail); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); + if (!otherPoints) { + otherPoints = getPoints(otherSection); + $put_9(pointsMap.hashCodeMap, otherSection, otherPoints); + } + offset = reverse?$sub_0(new KVector_2(castTo($get_11(sectionPoints, sectionPoints.array.length - 1), 8)), castTo($get_11(otherPoints, otherPoints.array.length - 1), 8)):$sub_0(new KVector_2((checkCriticalElementIndex(0, sectionPoints.array.length) , castTo(sectionPoints.array[0], 8))), (checkCriticalElementIndex(0, otherPoints.array.length) , castTo(otherPoints.array[0], 8))); + $put_9(offsetMap.hashCodeMap, otherSection, offset); + } + } + if (allConnectedSections.size_0 != 0) { + p1 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1:0), 8); + for (i = 1; i < sectionPoints.array.length; i++) { + p2 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1 - i:i), 8); + allSectIter = $listIterator_2(allConnectedSections, 0); + while (allSectIter.currentNode != allSectIter.this$01.tail) { + otherSection = castTo($next_10(allSectIter), 202); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); + if (otherPoints.array.length <= i) { + $remove_24(allSectIter); + } + else { + p3 = $add_19(new KVector_2(castTo($get_11(otherPoints, reverse?otherPoints.array.length - 1 - i:i), 8)), castTo(getEntryValueOrNull($getEntry_0(offsetMap.hashCodeMap, otherSection)), 8)); + if (p2.x_0 != p3.x_0 || p2.y_0 != p3.y_0) { + dx2 = p2.x_0 - p1.x_0; + dy2 = p2.y_0 - p1.y_0; + dx3 = p3.x_0 - p1.x_0; + dy3 = p3.y_0 - p1.y_0; + dx3 * dy2 == dy3 * dx2 && (dx2 == 0 || isNaN(dx2)?dx2:dx2 < 0?-1:1) == (dx3 == 0 || isNaN(dx3)?dx3:dx3 < 0?-1:1) && (dy2 == 0 || isNaN(dy2)?dy2:dy2 < 0?-1:1) == (dy3 == 0 || isNaN(dy3)?dy3:dy3 < 0?-1:1)?($wnd.Math.abs(dx2) < $wnd.Math.abs(dx3) || $wnd.Math.abs(dy2) < $wnd.Math.abs(dy3)) && ($addNode_0(junctionPoints, p2, junctionPoints.tail.prev, junctionPoints.tail) , true):i > 1 && ($addNode_0(junctionPoints, p1, junctionPoints.tail.prev, junctionPoints.tail) , true); + $remove_24(allSectIter); + } + } + } + p1 = p2; + } + } + return junctionPoints; +} + +function effectiveMinSizeConstraintFor(node){ + var minSize, sizeConstraint, sizeOptions; + sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + sizeOptions = castTo($getProperty_0(node, NODE_SIZE_OPTIONS_6), 21); + minSize = new KVector_2(castTo($getProperty_0(node, NODE_SIZE_MINIMUM_5), 8)); + if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { + minSize.x_0 <= 0 && (minSize.x_0 = 20); + minSize.y_0 <= 0 && (minSize.y_0 = 20); + } + return minSize; + } + else { + return new KVector; + } +} + +function getLabelsBounds(port){ + var bounds, currentLabelBounds, label_0, label$iterator; + bounds = null; + for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + currentLabelBounds = new ElkRectangle_0(label_0.getPosition().x_0, label_0.getPosition().y_0, label_0.getSize().x_0, label_0.getSize().y_0); + !bounds?(bounds = currentLabelBounds):$union(bounds, currentLabelBounds); + } + !bounds && (bounds = new ElkRectangle); + return bounds; +} + +function getPoints(section){ + var i, n, p1, p2, p3, points; + n = (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints).size_0 + 2; + points = new ArrayList_0(n); + $add_3(points, new KVector_1(section.startX, section.startY)); + $forEach_3(new StreamImpl(null, (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , new Spliterators$IteratorSpliterator(section.bendPoints, 16))), new ElkUtil$lambda$4$Type(points)); + $add_3(points, new KVector_1(section.endX, section.endY)); + i = 1; + while (i < points.array.length - 1) { + p1 = (checkCriticalElementIndex(i - 1, points.array.length) , castTo(points.array[i - 1], 8)); + p2 = (checkCriticalElementIndex(i, points.array.length) , castTo(points.array[i], 8)); + p3 = (checkCriticalElementIndex(i + 1, points.array.length) , castTo(points.array[i + 1], 8)); + p1.x_0 == p2.x_0 && p2.x_0 == p3.x_0 || p1.y_0 == p2.y_0 && p2.y_0 == p3.y_0?$remove_11(points, i):++i; + } + return points; +} + +function lambda$1_21(xoffset_0, yoffset_2, edge_2){ + var junctionPoints; + $forEach_3(new StreamImpl(null, (!edge_2.sections && (edge_2.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge_2, 6, 6)) , new Spliterators$IteratorSpliterator(edge_2.sections, 16))), new ElkUtil$lambda$2$Type(xoffset_0, yoffset_2)); + $forEach_3(new StreamImpl(null, (!edge_2.labels && (edge_2.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge_2, 1, 7)) , new Spliterators$IteratorSpliterator(edge_2.labels, 16))), new ElkUtil$lambda$3$Type(xoffset_0, yoffset_2)); + junctionPoints = castTo($getProperty_0(edge_2, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74); + !!junctionPoints && $offset_1(junctionPoints, xoffset_0, yoffset_2); +} + +function lambda$2_11(xoffset_0, yoffset_2, s_2){ + translate(s_2, xoffset_0, yoffset_2); +} + +function lambda$3_7(xoffset_0, yoffset_2, label_2){ + $setLocation_1(label_2, label_2.x_0 + xoffset_0, label_2.y_0 + yoffset_2); +} + +function lambda$4_8(points_0, bendPoint_1){ + return $add_3(points_0, new KVector_1(bendPoint_1.x_0, bendPoint_1.y_0)); +} + +function printElementPath(element, builder){ + var className, edge, identifier, label_0, label$iterator, sourceIter, targetIter, text_0; + if (instanceOf(element.eContainer_0(), 160)) { + printElementPath(castTo(element.eContainer_0(), 160), builder); + builder.string += ' > '; + } + else { + builder.string += 'Root '; + } + className = element.eClass_0().name_0; + $equals_5(className.substr(0, 3), 'Elk')?$append_11(builder, className.substr(3)):(builder.string += '' + className , builder); + identifier = element.getIdentifier(); + if (identifier) { + $append_11((builder.string += ' ' , builder), identifier); + return; + } + if (instanceOf(element, 354)) { + text_0 = castTo(element, 137).text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + for (label$iterator = new AbstractEList$EIterator(element.getLabels_0()); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + text_0 = label_0.text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + if (instanceOf(element, 352)) { + edge = castTo(element, 79); + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0)) { + builder.string += ' ('; + sourceIter = new AbstractEList$EListIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); + while (sourceIter.cursor != sourceIter.this$01_2.size_1()) { + sourceIter.cursor > 0 && (builder.string += ', ' , builder); + printElementPath(castTo($doNext(sourceIter), 160), builder); + } + builder.string += ' -> '; + targetIter = new AbstractEList$EListIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); + while (targetIter.cursor != targetIter.this$01_2.size_1()) { + targetIter.cursor > 0 && (builder.string += ', ' , builder); + printElementPath(castTo($doNext(targetIter), 160), builder); + } + builder.string += ')'; + } + } +} + +function resizeNode_0(node){ + var direction, minEast, minNorth, minSouth, minWest, newHeight, newWidth, port, port$iterator, portConstraints, portSide, sizeConstraint; + sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + if (sizeConstraint.isEmpty()) { + return null; + } + newWidth = 0; + newHeight = 0; + if (sizeConstraint.contains(($clinit_SizeConstraint() , PORTS_0))) { + portConstraints = castTo($getProperty_0(node, PORT_CONSTRAINTS_1), 98); + minNorth = 2; + minEast = 2; + minSouth = 2; + minWest = 2; + direction = !$getParent_2(node)?castTo($getProperty_0(node, DIRECTION_0), 103):castTo($getProperty_0($getParent_2(node), DIRECTION_0), 103); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(port, direction); + $setProperty_1(port, PORT_SIDE_0, portSide); + } + if (portConstraints == ($clinit_PortConstraints() , FIXED_POS)) { + switch (portSide.ordinal) { + case 1: + minNorth = $wnd.Math.max(minNorth, port.x_0 + port.width_0); + break; + case 2: + minEast = $wnd.Math.max(minEast, port.y_0 + port.height); + break; + case 3: + minSouth = $wnd.Math.max(minSouth, port.x_0 + port.width_0); + break; + case 4: + minWest = $wnd.Math.max(minWest, port.y_0 + port.height); + } + } + else { + switch (portSide.ordinal) { + case 1: + minNorth += port.width_0 + 2; + break; + case 2: + minEast += port.height + 2; + break; + case 3: + minSouth += port.width_0 + 2; + break; + case 4: + minWest += port.height + 2; + } + } + } + newWidth = $wnd.Math.max(minNorth, minSouth); + newHeight = $wnd.Math.max(minEast, minWest); + } + return resizeNode_1(node, newWidth, newHeight, true, true); +} + +function resizeNode_1(node, newWidth, newHeight, movePorts, moveLabels){ + var all, direction, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, newSize, oldSize, port, port$iterator, portSide, widthDiff, widthPercent, widthRatio; + oldSize = new KVector_1(node.width_0, node.height); + newSize = effectiveMinSizeConstraintFor(node); + newSize.x_0 = $wnd.Math.max(newSize.x_0, newWidth); + newSize.y_0 = $wnd.Math.max(newSize.y_0, newHeight); + widthRatio = newSize.x_0 / oldSize.x_0; + heightRatio = newSize.y_0 / oldSize.y_0; + widthDiff = newSize.x_0 - oldSize.x_0; + heightDiff = newSize.y_0 - oldSize.y_0; + if (movePorts) { + direction = !$getParent_2(node)?castTo($getProperty_0(node, ($clinit_CoreOptions() , DIRECTION_0)), 103):castTo($getProperty_0($getParent_2(node), ($clinit_CoreOptions() , DIRECTION_0)), 103); + fixedPorts = maskUndefined($getProperty_0(node, ($clinit_CoreOptions() , PORT_CONSTRAINTS_1))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); + if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { + portSide = calcPortSide_0(port, direction); + $setProperty_1(port, PORT_SIDE_0, portSide); + } + switch (portSide.ordinal) { + case 1: + fixedPorts || $setX_2(port, port.x_0 * widthRatio); + break; + case 2: + $setX_2(port, port.x_0 + widthDiff); + fixedPorts || $setY_3(port, port.y_0 * heightRatio); + break; + case 3: + fixedPorts || $setX_2(port, port.x_0 * widthRatio); + $setY_3(port, port.y_0 + heightDiff); + break; + case 4: + fixedPorts || $setY_3(port, port.y_0 * heightRatio); + } + } + } + $setDimensions_0(node, newSize.x_0, newSize.y_0); + if (moveLabels) { + for (label$iterator = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + midx = label_0.x_0 + label_0.width_0 / 2; + midy = label_0.y_0 + label_0.height / 2; + widthPercent = midx / oldSize.x_0; + heightPercent = midy / oldSize.y_0; + if (widthPercent + heightPercent >= 1) { + if (widthPercent - heightPercent > 0 && midy >= 0) { + $setX_2(label_0, label_0.x_0 + widthDiff); + $setY_3(label_0, label_0.y_0 + heightDiff * heightPercent); + } + else if (widthPercent - heightPercent < 0 && midx >= 0) { + $setX_2(label_0, label_0.x_0 + widthDiff * widthPercent); + $setY_3(label_0, label_0.y_0 + heightDiff); + } + } + } + } + $setProperty_1(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); + return new KVector_1(widthRatio, heightRatio); +} + +function toAbsolute(point, parent_0){ + var node; + node = parent_0; + while (node) { + $add_18(point, node.x_0, node.y_0); + node = $getParent_2(node); + } + return point; +} + +function toRelative(point, parent_0){ + var node; + node = parent_0; + while (node) { + $add_18(point, -node.x_0, -node.y_0); + node = $getParent_2(node); + } + return point; +} + +function translate(section, xoffset, yoffset){ + var bendPoint, bendPoint$iterator; + $setStartLocation(section, section.startX + xoffset, section.startY + yoffset); + for (bendPoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { + bendPoint = castTo($doNext(bendPoint$iterator), 469); + $set_10(bendPoint, bendPoint.x_0 + xoffset, bendPoint.y_0 + yoffset); + } + $setEndLocation(section, section.endX + xoffset, section.endY + yoffset); +} + +function translate_0(parent_0, xoffset, yoffset){ + var child, child$iterator; + for (child$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + $setLocation_1(child, child.x_0 + xoffset, child.y_0 + yoffset); + } + $forEach_0((!parent_0.containedEdges && (parent_0.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, parent_0, 12, 3)) , parent_0.containedEdges), new ElkUtil$lambda$1$Type(xoffset, yoffset)); +} + +function translate_1(parent_0, newSize, oldSize){ + var contentAlignment, xTranslate, yTranslate; + contentAlignment = castTo($getProperty_0(parent_0, ($clinit_CoreOptions() , CONTENT_ALIGNMENT_2)), 21); + xTranslate = 0; + yTranslate = 0; + newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(xTranslate = (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (xTranslate = newSize.x_0 - oldSize.x_0)); + newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(yTranslate = (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (yTranslate = newSize.y_0 - oldSize.y_0)); + translate_0(parent_0, xTranslate, yTranslate); +} + +function $apply_27(arg0){ + return $getLabels_1(castTo(arg0, 118)); +} + +function ElkUtil$lambda$0$Type(){ +} + +defineClass(935, 1, {}, ElkUtil$lambda$0$Type); +_.apply_0 = function apply_171(arg0){ + return $apply_27(arg0); +} +; +_.equals_0 = function equals_178(other){ + return this === other; +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$0$Type', 935); +function ElkUtil$lambda$1$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(936, 1, $intern_19, ElkUtil$lambda$1$Type); +_.accept = function accept_149(arg0){ + lambda$1_21(this.xoffset_0, this.yoffset_2, castTo(arg0, 79)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$1$Type', 936); +function ElkUtil$lambda$2$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(937, 1, $intern_19, ElkUtil$lambda$2$Type); +_.accept = function accept_150(arg0){ + lambda$2_11(this.xoffset_0, this.yoffset_2, castTo(arg0, 202)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$2$Type', 937); +function ElkUtil$lambda$3$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(938, 1, $intern_19, ElkUtil$lambda$3$Type); +_.accept = function accept_151(arg0){ + lambda$3_7(this.xoffset_0, this.yoffset_2, castTo(arg0, 137)); +} +; +_.xoffset_0 = 0; +_.yoffset_2 = 0; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$3$Type', 938); +function ElkUtil$lambda$4$Type(points_0){ + this.points_0 = points_0; +} + +defineClass(939, 1, $intern_19, ElkUtil$lambda$4$Type); +_.accept = function accept_152(arg0){ + lambda$4_8(this.points_0, castTo(arg0, 469)); +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$4$Type', 939); +function $compareTo_20(this$static, x_0){ + return this$static.exclusiveLowerBound < doubleValue__D__devirtual$(x_0)?-1:1; +} + +function ExclusiveBounds$ExclusiveLowerBound(){ + this.exclusiveLowerBound = 0; +} + +defineClass(342, 1, {35:1, 342:1}, ExclusiveBounds$ExclusiveLowerBound); +_.compareTo_0 = function compareTo_21(x_0){ + return $compareTo_20(this, castTo(x_0, 236)); +} +; +_.equals_0 = function equals_179(obj){ + var other; + if (instanceOf(obj, 342)) { + other = castTo(obj, 342); + return this.exclusiveLowerBound == other.exclusiveLowerBound; + } + return false; +} +; +_.hashCode_1 = function hashCode_69(){ + return round_int(this.exclusiveLowerBound); +} +; +_.toString_0 = function toString_118(){ + return this.exclusiveLowerBound + ' (exclusive)'; +} +; +_.exclusiveLowerBound = 0; +var Lorg_eclipse_elk_core_util_ExclusiveBounds$ExclusiveLowerBound_2_classLit = createForClass('org.eclipse.elk.core.util', 'ExclusiveBounds/ExclusiveLowerBound', 342); +function $processEdge(edge){ + var bendPoints, edgeSection, edgeSection$iterator, elkEdgeSection, label_0, label$iterator, maxv, point, point$iterator, pos, sameHierarchy, sections, sourceParent, targetParent; + sourceParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); + targetParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))); + sameHierarchy = sourceParent == targetParent; + maxv = new KVector; + bendPoints = castTo($getProperty_0(edge, ($clinit_FixedLayouterOptions() , BEND_POINTS_0)), 74); + if (!!bendPoints && bendPoints.size_0 >= 2) { + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + edgeSection = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection); + } + else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { + sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + while (sections.cursor != sections.this$01_2.size_1()) { + $remove_36(sections); + } + } + applyVectorChain(bendPoints, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202)); + } + if (sameHierarchy) { + for (edgeSection$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); edgeSection$iterator.cursor != edgeSection$iterator.this$01_2.size_1();) { + edgeSection = castTo($doNext(edgeSection$iterator), 202); + for (point$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); point$iterator.cursor != point$iterator.this$01_2.size_1();) { + point = castTo($doNext(point$iterator), 469); + maxv.x_0 = $wnd.Math.max(maxv.x_0, point.x_0); + maxv.y_0 = $wnd.Math.max(maxv.y_0, point.y_0); + } + } + } + for (label$iterator = new AbstractEList$EIterator((!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + if (sameHierarchy) { + maxv.x_0 = $wnd.Math.max(maxv.x_0, label_0.x_0 + label_0.width_0); + maxv.y_0 = $wnd.Math.max(maxv.y_0, label_0.y_0 + label_0.height); + } + } + return maxv; +} + +function FixedLayoutProvider(){ +} + +defineClass(1138, 209, $intern_96, FixedLayoutProvider); +_.layout = function layout_9(layoutNode, progressMonitor){ + var edge, edge$iterator, edge$iterator0, edgeRouting, junctionPoints, label_0, label$iterator, label$iterator0, maxv, maxx, maxy, minSize, newHeight, newWidth, node, node$iterator, node$iterator0, padding, port, port$iterator, portx, porty, pos; + $begin(progressMonitor, 'Fixed Layout', 1); + edgeRouting = castTo($getProperty_0(layoutNode, ($clinit_CoreOptions() , EDGE_ROUTING_0)), 218); + maxx = 0; + maxy = 0; + for (node$iterator0 = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 33); + pos = castTo($getProperty_0(node, ($clinit_FixedLayouterOptions() , POSITION_3)), 8); + if (pos) { + $setLocation_1(node, pos.x_0, pos.y_0); + if (castTo($getProperty_0(node, NODE_SIZE_CONSTRAINTS_7), 174).contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { + minSize = castTo($getProperty_0(node, NODE_SIZE_MINIMUM_6), 8); + minSize.x_0 > 0 && minSize.y_0 > 0 && resizeNode_1(node, minSize.x_0, minSize.y_0, true, true); + } + } + maxx = $wnd.Math.max(maxx, node.x_0 + node.width_0); + maxy = $wnd.Math.max(maxy, node.y_0 + node.height); + for (label$iterator0 = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator0), 137); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + maxx = $wnd.Math.max(maxx, node.x_0 + label_0.x_0 + label_0.width_0); + maxy = $wnd.Math.max(maxy, node.y_0 + label_0.y_0 + label_0.height); + } + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + pos = castTo($getProperty_0(port, POSITION_3), 8); + !!pos && $setLocation_1(port, pos.x_0, pos.y_0); + portx = node.x_0 + port.x_0; + porty = node.y_0 + port.y_0; + maxx = $wnd.Math.max(maxx, portx + port.width_0); + maxy = $wnd.Math.max(maxy, porty + port.height); + for (label$iterator = new AbstractEList$EIterator((!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { + label_0 = castTo($doNext(label$iterator), 137); + pos = castTo($getProperty_0(label_0, POSITION_3), 8); + !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); + maxx = $wnd.Math.max(maxx, portx + label_0.x_0 + label_0.width_0); + maxy = $wnd.Math.max(maxy, porty + label_0.y_0 + label_0.height); + } + } + for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { + edge = castTo($next_0(edge$iterator0), 79); + maxv = $processEdge(edge); + maxx = $wnd.Math.max(maxx, maxv.x_0); + maxy = $wnd.Math.max(maxy, maxv.y_0); + } + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + if ($getParent_2(getSourceNode(edge)) != layoutNode) { + maxv = $processEdge(edge); + maxx = $wnd.Math.max(maxx, maxv.x_0); + maxy = $wnd.Math.max(maxy, maxv.y_0); + } + } + } + if (edgeRouting == ($clinit_EdgeRouting() , ORTHOGONAL)) { + for (node$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + junctionPoints = determineJunctionPoints(edge); + junctionPoints.size_0 == 0?$setProperty_1(edge, JUNCTION_POINTS_0, null):$setProperty_1(edge, JUNCTION_POINTS_0, junctionPoints); + } + } + } + if (!$booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_FixedLayouterOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_1))))) { + padding = castTo($getProperty_0(layoutNode, PADDING_7), 116); + newWidth = maxx + padding.left + padding.right; + newHeight = maxy + padding.top_0 + padding.bottom; + resizeNode_1(layoutNode, newWidth, newHeight, true, true); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_FixedLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'FixedLayoutProvider', 1138); +function IndividualSpacings(){ +} + +function IndividualSpacings_0(other){ + (!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).putAll(!other.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):other.propertyMap); +} + +function getIndividualOrInherited_0(node, property){ + var individualSpacings, result; + result = null; + if (node.hasProperty(($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { + individualSpacings = castTo(node.getProperty(SPACING_INDIVIDUAL_0), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && !!node.getGraph() && (result = node.getGraph().getProperty(property)); + result == null && (result = $getDefault(property)); + return result; +} + +function lambda$0_37(entry_0){ + return castTo(entry_0.getKey(), 146).getId() + ':' + toString_40(entry_0.getValue()); +} + +defineClass(373, 134, {3:1, 414:1, 373:1, 94:1, 134:1}, IndividualSpacings, IndividualSpacings_0); +_.parse_0 = function parse_3(string){ + var e, option, optionData, optionString, optionString$array, optionString$index, optionString$max, options, value_0; + if (!string) { + return; + } + try { + options = $split_0(string, ';,;'); + for (optionString$array = options , optionString$index = 0 , optionString$max = optionString$array.length; optionString$index < optionString$max; ++optionString$index) { + optionString = optionString$array[optionString$index]; + option = $split_0(optionString, '\\:'); + optionData = $getOptionDataBySuffix(getInstance(), option[0]); + if (!optionData) { + throw toJs(new IllegalArgumentException_0('Invalid option id: ' + option[0])); + } + value_0 = $parseValue(optionData, option[1]); + if (value_0 == null) { + throw toJs(new IllegalArgumentException_0('Invalid option value: ' + option[1])); + } + value_0 == null?(!this.propertyMap && (this.propertyMap = new HashMap) , $remove_6(this.propertyMap, optionData)):(!this.propertyMap && (this.propertyMap = new HashMap) , $put_6(this.propertyMap, optionData, value_0)); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + e = $e0; + throw toJs(new IllegalArgumentException_1(e)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_119(){ + var serialized; + serialized = castToString($collect_1($map_0((!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).entrySet_0().stream(), new IndividualSpacings$lambda$0$Type), of_3(new Collectors$lambda$15$Type, new Collectors$9methodref$add$Type, new Collectors$10methodref$merge$Type, new Collectors$11methodref$toString$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])))); + return serialized; +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings', 373); +function IndividualSpacings$lambda$0$Type(){ +} + +defineClass(971, 1, {}, IndividualSpacings$lambda$0$Type); +_.apply_0 = function apply_172(arg0){ + return lambda$0_37(castTo(arg0, 42)); +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings/lambda$0$Type', 971); +function $fetch(this$static){ + if (this$static.instances.size_0 == 0) { + return this$static.factory.create_0(); + } + return $removeFirst_0(this$static.instances); +} + +function $release(this$static, obj){ + this$static.limit < 0 || this$static.instances.size_0 < this$static.limit?$addLast_0(this$static.instances, obj):this$static.factory.destroy(obj); +} + +function InstancePool(thefactory){ + this.instances = new LinkedList; + this.factory = thefactory; + this.limit = -1; +} + +defineClass(709, 1, {}, InstancePool); +_.limit = 0; +var Lorg_eclipse_elk_core_util_InstancePool_2_classLit = createForClass('org.eclipse.elk.core.util', 'InstancePool', 709); +function LoggedGraph(){ +} + +defineClass(1275, 1, {}, LoggedGraph); +var Lorg_eclipse_elk_core_util_LoggedGraph_2_classLit = createForClass('org.eclipse.elk.core.util', 'LoggedGraph', 1275); +function $clinit_LoggedGraph$Type(){ + $clinit_LoggedGraph$Type = emptyMethod; + ELK = new LoggedGraph$Type('ELK', 0); + JSON_0 = new LoggedGraph$Type('JSON', 1); + DOT = new LoggedGraph$Type('DOT', 2); + SVG = new LoggedGraph$Type('SVG', 3); +} + +function LoggedGraph$Type(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_110(name_0){ + $clinit_LoggedGraph$Type(); + return valueOf(($clinit_LoggedGraph$Type$Map() , $MAP_98), name_0); +} + +function values_116(){ + $clinit_LoggedGraph$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]); +} + +defineClass(396, 22, {3:1, 35:1, 22:1, 396:1}, LoggedGraph$Type); +var DOT, ELK, JSON_0, SVG; +var Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit = createForEnum('org.eclipse.elk.core.util', 'LoggedGraph/Type', 396, Ljava_lang_Enum_2_classLit, values_116, valueOf_110); +function $clinit_LoggedGraph$Type$Map(){ + $clinit_LoggedGraph$Type$Map = emptyMethod; + $MAP_98 = createValueOfMap(($clinit_LoggedGraph$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]))); +} + +var $MAP_98; +function Pair(thefirst, thesecond){ + this.first = thefirst; + this.second = thesecond; +} + +defineClass(46, 1, {20:1, 46:1}, Pair); +_.forEach_0 = function forEach_36(action){ + $forEach_0(this, action); +} +; +_.equals_0 = function equals_180(obj){ + var firstEqual, other, secondEqual; + if (instanceOf(obj, 46)) { + other = castTo(obj, 46); + firstEqual = this.first == null?other.first == null:equals_Ljava_lang_Object__Z__devirtual$(this.first, other.first); + secondEqual = this.second == null?other.second == null:equals_Ljava_lang_Object__Z__devirtual$(this.second, other.second); + return firstEqual && secondEqual; + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_70(){ + var first1, first2, firstCode, second1, second2, secondCode; + firstCode = this.first == null?0:hashCode__I__devirtual$(this.first); + first1 = firstCode & $intern_46; + first2 = firstCode & -65536; + secondCode = this.second == null?0:hashCode__I__devirtual$(this.second); + second1 = secondCode & $intern_46; + second2 = secondCode & -65536; + return first1 ^ second2 >> 16 & $intern_46 | first2 ^ second1 << 16; +} +; +_.iterator_0 = function iterator_78(){ + return new Pair$1(this); +} +; +_.toString_0 = function toString_120(){ + return this.first == null && this.second == null?'pair(null,null)':this.first == null?'pair(null,' + toString_40(this.second) + ')':this.second == null?'pair(' + toString_40(this.first) + ',null)':'pair(' + toString_40(this.first) + ',' + toString_40(this.second) + ')'; +} +; +var Lorg_eclipse_elk_core_util_Pair_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair', 46); +function Pair$1(this$0){ + this.this$01 = this$0; +} + +defineClass(983, 1, $intern_6, Pair$1); +_.forEachRemaining = function forEachRemaining_51(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_40(){ + return !this.visitedSecond && (!this.visitedFirst && this.this$01.first != null || this.this$01.second != null); +} +; +_.next_1 = function next_41(){ + if (!this.visitedSecond && !this.visitedFirst && this.this$01.first != null) { + this.visitedFirst = true; + return this.this$01.first; + } + else if (!this.visitedSecond && this.this$01.second != null) { + this.visitedSecond = true; + return this.this$01.second; + } + throw toJs(new NoSuchElementException); +} +; +_.remove = function remove_96(){ + this.visitedSecond && this.this$01.second != null?(this.this$01.second = null):this.visitedFirst && this.this$01.first != null && (this.this$01.first = null); + throw toJs(new IllegalStateException); +} +; +_.visitedFirst = false; +_.visitedSecond = false; +var Lorg_eclipse_elk_core_util_Pair$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair/1', 983); +function Quadruple(a, b, c, d){ + this.first = a; + this.second = b; + this.third = c; + this.fourth = d; +} + +defineClass(448, 1, {448:1}, Quadruple); +_.equals_0 = function equals_181(obj){ + return equals_57(this.first, castTo(obj, 448).first) && equals_57(this.second, castTo(obj, 448).second) && equals_57(this.third, castTo(obj, 448).third) && equals_57(this.fourth, castTo(obj, 448).fourth); +} +; +_.hashCode_1 = function hashCode_71(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.first, this.second, this.third, this.fourth])); +} +; +_.toString_0 = function toString_121(){ + return '(' + this.first + ', ' + this.second + ', ' + this.third + ', ' + this.fourth + ')'; +} +; +var Lorg_eclipse_elk_core_util_Quadruple_2_classLit = createForClass('org.eclipse.elk.core.util', 'Quadruple', 448); +function $randomize(edge, random, drawWidth, drawHeight){ + var bendPoint, bendsNum, edgeSection, edgeSection0, elkBendPoint, elkEdgeSection, i, maxRand, randx, randy, sections, sourceHeight, sourcePX, sourcePY, sourcePort, sourceShape, sourceWidth, sourceX, sourceY, targetHeight, targetPX, targetPY, targetPort, targetShape, targetWidth, targetX, targetY, totalDist, x_0, xdiff, xincr, y_0, ydiff, yincr; + sourceShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); + sourceX = sourceShape.getX(); + sourceY = sourceShape.getY(); + sourceWidth = sourceShape.getWidth() / 2; + sourceHeight = sourceShape.getHeight() / 2; + if (instanceOf(sourceShape, 186)) { + sourcePort = castTo(sourceShape, 118); + sourceX += $getParent_3(sourcePort).x_0; + sourceX += $getParent_3(sourcePort).x_0; + } + sourceX += sourceWidth; + sourceY += sourceHeight; + targetShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); + targetX = targetShape.getX(); + targetY = targetShape.getY(); + targetWidth = targetShape.getWidth() / 2; + targetHeight = targetShape.getHeight() / 2; + if (instanceOf(targetShape, 186)) { + targetPort = castTo(targetShape, 118); + targetX += $getParent_3(targetPort).x_0; + targetX += $getParent_3(targetPort).x_0; + } + targetX += targetWidth; + targetY += targetHeight; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + edgeSection0 = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection0); + } + else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { + sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + while (sections.cursor != sections.this$01_2.size_1()) { + $remove_36(sections); + } + } + edgeSection = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + sourcePX = targetX; + targetX > sourceX + sourceWidth?(sourcePX = sourceX + sourceWidth):targetX < sourceX - sourceWidth && (sourcePX = sourceX - sourceWidth); + sourcePY = targetY; + targetY > sourceY + sourceHeight?(sourcePY = sourceY + sourceHeight):targetY < sourceY - sourceHeight && (sourcePY = sourceY - sourceHeight); + sourcePX > sourceX - sourceWidth && sourcePX < sourceX + sourceWidth && sourcePY > sourceY - sourceHeight && sourcePY < sourceY + sourceHeight && (sourcePX = sourceX + sourceWidth); + $setStartX(edgeSection, sourcePX); + $setStartY(edgeSection, sourcePY); + targetPX = sourceX; + sourceX > targetX + targetWidth?(targetPX = targetX + targetWidth):sourceX < targetX - targetWidth && (targetPX = targetX - targetWidth); + targetPY = sourceY; + sourceY > targetY + targetHeight?(targetPY = targetY + targetHeight):sourceY < targetY - targetHeight && (targetPY = targetY - targetHeight); + targetPX > targetX - targetWidth && targetPX < targetX + targetWidth && targetPY > targetY - targetHeight && targetPY < targetY + targetHeight && (targetPY = targetY + targetHeight); + $setEndX(edgeSection, targetPX); + $setEndY(edgeSection, targetPY); + $clear_13((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); + bendsNum = $nextInt(random, 5); + sourceShape == targetShape && ++bendsNum; + xdiff = targetPX - sourcePX; + ydiff = targetPY - sourcePY; + totalDist = $wnd.Math.sqrt(xdiff * xdiff + ydiff * ydiff); + maxRand = totalDist * 0.20000000298023224; + xincr = xdiff / (bendsNum + 1); + yincr = ydiff / (bendsNum + 1); + x_0 = sourcePX; + y_0 = sourcePY; + for (i = 0; i < bendsNum; i++) { + x_0 += xincr; + y_0 += yincr; + randx = x_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; + randx < 0?(randx = 1):randx > drawWidth && (randx = drawWidth - 1); + randy = y_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; + randy < 0?(randy = 1):randy > drawHeight && (randy = drawHeight - 1); + bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $setX_1(bendPoint, randx); + $setY_2(bendPoint, randy); + $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); + } +} + +function $randomize_0(parent_0, random, aspectRatio, spacing, padding){ + var areaSqrt, drawArea, drawHeight, drawWidth, edge, edge$iterator, height, m, maxHeight, maxWidth, n, node, node$iterator, node$iterator0, nodesArea, source, source$iterator, totalHeight, totalWidth, width_0, x_0, y_0; + nodesArea = 0; + maxWidth = 0; + maxHeight = 0; + m = 1; + for (node$iterator0 = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { + node = castTo($doNext(node$iterator0), 33); + m += size_24(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); + width_0 = node.width_0; + maxWidth = $wnd.Math.max(maxWidth, width_0); + height = node.height; + maxHeight = $wnd.Math.max(maxHeight, height); + nodesArea += width_0 * height; + } + n = (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; + drawArea = nodesArea + 2 * spacing * spacing * m * n; + areaSqrt = $wnd.Math.sqrt(drawArea); + drawWidth = $wnd.Math.max(areaSqrt * aspectRatio, maxWidth); + drawHeight = $wnd.Math.max(areaSqrt / aspectRatio, maxHeight); + for (node$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { + node = castTo($doNext(node$iterator), 33); + x_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawWidth - node.width_0); + y_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawHeight - node.height); + $setX_2(node, x_0); + $setY_3(node, y_0); + } + totalWidth = drawWidth + (padding.left + padding.right); + totalHeight = drawHeight + (padding.top_0 + padding.bottom); + for (source$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { + source = castTo($doNext(source$iterator), 33); + for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { + edge = castTo($next_0(edge$iterator), 79); + $isHierarchical(edge) || $randomize(edge, random, totalWidth, totalHeight); + } + } + totalWidth += padding.left + padding.right; + totalHeight += padding.top_0 + padding.bottom; + resizeNode_1(parent_0, totalWidth, totalHeight, false, true); +} + +function RandomLayoutProvider(){ +} + +defineClass(1126, 209, $intern_96, RandomLayoutProvider); +_.layout = function layout_10(parentNode, progressMonitor){ + var aspectRatio, padding, random, randomSeed, spacing; + $begin(progressMonitor, 'Random Layout', 1); + if ((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0 == 0) { + $done_0(progressMonitor); + return; + } + randomSeed = castTo($getProperty_0(parentNode, ($clinit_RandomLayouterOptions() , RANDOM_SEED_2)), 19); + !!randomSeed && randomSeed.value_0 != 0?(random = new Random_0(randomSeed.value_0)):(random = new Random); + aspectRatio = $floatValue(castToDouble($getProperty_0(parentNode, ASPECT_RATIO_6))); + spacing = $floatValue(castToDouble($getProperty_0(parentNode, SPACING_NODE_NODE_7))); + padding = castTo($getProperty_0(parentNode, PADDING_8), 116); + $randomize_0(parentNode, random, aspectRatio, spacing, padding); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_RandomLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'RandomLayoutProvider', 1126); +function $clinit_ElkGraphAdapters(){ + $clinit_ElkGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER_0 = new ElkGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER_0; +function $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter = emptyMethod; + OFFSET_PROXY = new Property_2(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0), 0); +} + +defineClass(553, 1, {}); +_.getPosition = function getPosition_1(){ + return new KVector_1(this.element.x_0, this.element.y_0); +} +; +_.getProperty = function getProperty_2(prop){ + if ($equals_10(prop, ($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { + return $getProperty_0(this.element, OFFSET_PROXY); + } + return $getProperty_0(this.element, prop); +} +; +_.getSize = function getSize_1(){ + return new KVector_1(this.element.width_0, this.element.height); +} +; +_.getVolatileId = function getVolatileId_1(){ + return this.id_0; +} +; +_.hasProperty = function hasProperty_2(prop){ + return $hasProperty_0(this.element, prop); +} +; +_.setPosition = function setPosition_1(pos){ + $setX_2(this.element, pos.x_0); + $setY_3(this.element, pos.y_0); +} +; +_.setSize = function setSize_1(size_0){ + $setWidth_0(this.element, size_0.x_0); + $setHeight_0(this.element, size_0.y_0); +} +; +_.setVolatileId = function setVolatileId_1(volatileId){ + this.id_0 = volatileId; +} +; +_.id_0 = 0; +var OFFSET_PROXY; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$AbstractElkGraphElementAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/AbstractElkGraphElementAdapter', 553); +function ElkGraphAdapters$ElkEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(554, 1, {839:1}, ElkGraphAdapters$ElkEdgeAdapter); +_.getLabels = function getLabels_2(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithExpectedSize($getLabels_1(this.element).size_0); + for (l$iterator = new AbstractEList$EIterator($getLabels_1(this.element)); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.labelAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkEdgeAdapter', 554); +function $getNodes(this$static){ + var n, n$iterator; + if (!this$static.childNodes) { + this$static.childNodes = newArrayListWithExpectedSize($getChildren(castTo(this$static.element, 33)).size_0); + for (n$iterator = new AbstractEList$EIterator($getChildren(castTo(this$static.element, 33))); n$iterator.cursor != n$iterator.this$01_2.size_1();) { + n = castTo($doNext(n$iterator), 33); + $add_3(this$static.childNodes, new ElkGraphAdapters$ElkNodeAdapter(this$static, n)); + } + } + return this$static.childNodes; +} + +function ElkGraphAdapters$ElkGraphAdapter(node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; +} + +defineClass(301, 553, {}, ElkGraphAdapters$ElkGraphAdapter); +_.getNodes = function getNodes_0(){ + return $getNodes(this); +} +; +_.childNodes = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkGraphAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkGraphAdapter', 301); +function ElkGraphAdapters$ElkLabelAdapter(label_0){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = label_0; +} + +defineClass(630, 553, {181:1}, ElkGraphAdapters$ElkLabelAdapter); +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkLabelAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkLabelAdapter', 630); +function $getLabels(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 33).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 33).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function $getPorts_2(this$static){ + var p, p$iterator; + if (!this$static.portAdapters) { + this$static.portAdapters = newArrayListWithExpectedSize($getPorts_3(castTo(this$static.element, 33)).size_0); + for (p$iterator = new AbstractEList$EIterator($getPorts_3(castTo(this$static.element, 33))); p$iterator.cursor != p$iterator.this$01_2.size_1();) { + p = castTo($doNext(p$iterator), 118); + $add_3(this$static.portAdapters, new ElkGraphAdapters$ElkPortAdapter(p)); + } + } + return this$static.portAdapters; +} + +function $sortPortList_1(this$static, comparator){ + $isOrderFixed(castTo(castTo(this$static.element, 33).getProperty(($clinit_CoreOptions() , PORT_CONSTRAINTS_1)), 98)) && sort_13($getPorts_3(castTo(this$static.element, 33)), comparator); +} + +function ElkGraphAdapters$ElkNodeAdapter(parent_0, node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; + this.parentGraphAdapter = parent_0; +} + +defineClass(629, 553, {680:1}, ElkGraphAdapters$ElkNodeAdapter); +_.getLabels = function getLabels_3(){ + return $getLabels(this); +} +; +_.getMargin = function getMargin_0(){ + var margins; + return margins = castTo($getProperty_0(this.element, ($clinit_CoreOptions() , MARGINS_0)), 142) , !margins && (margins = new ElkMargin) , margins; +} +; +_.getPorts = function getPorts_0(){ + return $getPorts_2(this); +} +; +_.setMargin = function setMargin_0(margin){ + var newMargin; + newMargin = new ElkMargin_2(margin); + $setProperty_1(this.element, ($clinit_CoreOptions() , MARGINS_0), newMargin); +} +; +_.setPadding = function setPadding_0(padding){ + $setProperty_1(this.element, ($clinit_CoreOptions() , PADDING_6), new ElkPadding_1(padding)); +} +; +_.getGraph = function getGraph_0(){ + return this.parentGraphAdapter; +} +; +_.getIncomingEdges = function getIncomingEdges_1(){ + var e, e$iterator; + if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = new ArrayList; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 79); + $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.incomingEdgeAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_1(){ + var e, e$iterator; + if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = new ArrayList; + for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 79); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.isCompoundNode = function isCompoundNode_0(){ + return $getChildren(castTo(this.element, 33)).size_0 != 0 || $booleanValue(castToBoolean(castTo(this.element, 33).getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); +} +; +_.sortPortList = function sortPortList_0(){ + $sortPortList_1(this, ($clinit_ElkGraphAdapters() , DEFAULT_PORTLIST_SORTER_0)); +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +_.parentGraphAdapter = null; +_.portAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkNodeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkNodeAdapter', 629); +function $getLabels_0(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 118).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 118).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function ElkGraphAdapters$ElkPortAdapter(port){ + this.element = port; +} + +defineClass(1266, 553, {838:1}, ElkGraphAdapters$ElkPortAdapter); +_.getLabels = function getLabels_4(){ + return $getLabels_0(this); +} +; +_.getIncomingEdges = function getIncomingEdges_2(){ + var e, e$iterator; + if (!this.incomingEdgeAdapters) { + this.incomingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getIncomingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.incomingEdgeAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_2(){ + var e, e$iterator; + if (!this.outgoingEdgeAdapters) { + this.outgoingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getOutgoingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide_0(){ + return castTo(castTo(this.element, 118).getProperty(($clinit_CoreOptions() , PORT_SIDE_0)), 61); +} +; +_.hasCompoundConnections = function hasCompoundConnections_0(){ + var edge, edge$iterator, edge$iterator0, node, source, source$iterator, target, target$iterator; + node = $getParent_3(castTo(this.element, 118)); + for (edge$iterator0 = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator0), 79); + for (target$iterator = new AbstractEList$EIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); target$iterator.cursor != target$iterator.this$01_2.size_1();) { + target = castTo($doNext(target$iterator), 82); + if (isDescendant_0(connectableShapeToNode(target), node)) { + return true; + } + else if (connectableShapeToNode(target) == node && $booleanValue(castToBoolean($getProperty_0(edge, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_YO_0))))) { + return true; + } + } + } + for (edge$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 79); + for (source$iterator = new AbstractEList$EIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { + source = castTo($doNext(source$iterator), 82); + if (isDescendant_0(connectableShapeToNode(source), node)) { + return true; + } + } + } + return false; +} +; +_.incomingEdgeAdapters = null; +_.labelAdapters = null; +_.outgoingEdgeAdapters = null; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkPortAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkPortAdapter', 1266); +function $compare_25(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = castTo($getProperty_0(port1, ($clinit_CoreOptions() , PORT_SIDE_0)), 61).ordinal - castTo($getProperty_0(port2, PORT_SIDE_0), 61).ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty_0(port1, PORT_INDEX_0), 19); + index2 = castTo($getProperty_0(port2, PORT_INDEX_0), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (castTo($getProperty_0(port1, PORT_SIDE_0), 61).ordinal) { + case 1: + return compare_4(port1.x_0, port2.x_0); + case 2: + return compare_4(port1.y_0, port2.y_0); + case 3: + return compare_4(port2.x_0, port1.x_0); + case 4: + return compare_4(port2.y_0, port1.y_0); + default:throw toJs(new IllegalStateException_0('Port side is undefined')); + } +} + +function ElkGraphAdapters$PortComparator(){ +} + +defineClass(1267, 1, $intern_88, ElkGraphAdapters$PortComparator); +_.compare_1 = function compare_86(port1, port2){ + return $compare_25(castTo(port1, 118), castTo(port2, 118)); +} +; +_.equals_0 = function equals_182(other){ + return this === other; +} +; +_.reversed = function reversed_78(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/PortComparator', 1267); +var Lorg_eclipse_emf_ecore_EObject_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EObject'); +var Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph', 'EMapPropertyHolder'); +var Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkBendPoint'); +var Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkGraphElement'); +var Lorg_eclipse_elk_graph_ElkShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkShape'); +var Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkConnectableShape'); +var Lorg_eclipse_elk_graph_ElkEdge_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdge'); +var Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdgeSection'); +var Lorg_eclipse_emf_ecore_EModelElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EModelElement'); +var Lorg_eclipse_emf_ecore_EFactory_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EFactory'); +function $clinit_ElkGraphFactory(){ + $clinit_ElkGraphFactory = emptyMethod; + eINSTANCE = init_1(); +} + +var eINSTANCE; +var Lorg_eclipse_emf_ecore_ENamedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ENamedElement'); +var Lorg_eclipse_emf_ecore_EPackage_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EPackage'); +function $clinit_ElkGraphPackage(){ + $clinit_ElkGraphPackage = emptyMethod; + eINSTANCE_0 = init_2(); +} + +var eINSTANCE_0; +function $clinit_ElkGraphPackage$Literals(){ + $clinit_ElkGraphPackage$Literals = emptyMethod; + $clinit_ElkGraphPackage(); + EMAP_PROPERTY_HOLDER = eINSTANCE_0.eMapPropertyHolderEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.eMapPropertyHolderEClass), 0), 18); + ELK_GRAPH_ELEMENT = eINSTANCE_0.elkGraphElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 1), 34); + ELK_SHAPE = eINSTANCE_0.elkShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 3), 34); + ELK_LABEL = eINSTANCE_0.elkLabelEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 1), 34); + ELK_CONNECTABLE_SHAPE = eINSTANCE_0.elkConnectableShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 1), 18); + ELK_NODE = eINSTANCE_0.elkNodeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 4), 34); + ELK_PORT = eINSTANCE_0.elkPortEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPortEClass), 0), 18); + ELK_EDGE = eINSTANCE_0.elkEdgeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 6), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 7), 34); + ELK_BEND_POINT = eINSTANCE_0.elkBendPointEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 1), 34); + ELK_EDGE_SECTION = eINSTANCE_0.elkEdgeSectionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 5), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 7), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 8), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 9), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 10), 34); + ELK_PROPERTY_TO_VALUE_MAP_ENTRY = eINSTANCE_0.elkPropertyToValueMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 1), 34); +} + +var ELK_BEND_POINT, ELK_CONNECTABLE_SHAPE, ELK_EDGE, ELK_EDGE_SECTION, ELK_GRAPH_ELEMENT, ELK_LABEL, ELK_NODE, ELK_PORT, ELK_PROPERTY_TO_VALUE_MAP_ENTRY, ELK_SHAPE, EMAP_PROPERTY_HOLDER; +var Lorg_eclipse_elk_graph_ElkLabel_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkLabel'); +var Lorg_eclipse_elk_graph_ElkNode_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkNode'); +var Lorg_eclipse_elk_graph_ElkPort_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkPort'); +function $eNotify(this$static, notification){ + var eAdapters, i, size_0; + eAdapters = this$static.eBasicAdapterArray(); + if (eAdapters != null && this$static.eDeliver()) { + for (i = 0 , size_0 = eAdapters.length; i < size_0; ++i) { + eAdapters[i].notifyChanged(notification); + } + } +} + +defineClass(90, 1, $intern_133); +_.eBasicAdapterArray = function eBasicAdapterArray(){ + this.eBasicAdapters(); + return null; +} +; +_.eBasicAdapters = function eBasicAdapters(){ + return null; +} +; +_.eBasicHasAdapters = function eBasicHasAdapters(){ + return this.eBasicAdapters() , false; +} +; +_.eDeliver = function eDeliver(){ + return false; +} +; +_.eNotify = function eNotify(notification){ + $eNotify(this, notification); +} +; +var Lorg_eclipse_emf_common_notify_impl_BasicNotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'BasicNotifierImpl', 90); +function $eAttribute(eClass, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(eClass, name_0); + if (instanceOf(eStructuralFeature, 322)) { + return castTo(eStructuralFeature, 34); + } + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid attribute")); +} + +function $eBasicSetContainer(this$static, newContainer, newContainerFeatureID, msgs){ + var newResource, notification, oldContainer, oldContainerFeatureID, oldResource; + oldContainer = this$static.eInternalContainer(); + oldResource = this$static.eDirectResource(); + newResource = null; + if (oldResource) { + if (!!newContainer && (eContainmentFeature(this$static, newContainer, newContainerFeatureID).eFlags & $intern_63) == 0) { + msgs = $basicRemove_0(oldResource.getContents(), this$static, msgs); + this$static.eSetDirectResource(null); + newResource = newContainer.eInternalResource(); + } + else { + oldResource = null; + } + } + else { + !!oldContainer && (oldResource = oldContainer.eInternalResource()); + !!newContainer && (newResource = newContainer.eInternalResource()); + } + oldResource != newResource && !!oldResource && oldResource.detached(this$static); + oldContainerFeatureID = this$static.eContainerFeatureID_0(); + this$static.eBasicSetContainer(newContainer, newContainerFeatureID); + oldResource != newResource && !!newResource && newResource.attached(this$static); + if (this$static.eBasicHasAdapters() && this$static.eDeliver()) { + if (!!oldContainer && oldContainerFeatureID >= 0 && oldContainerFeatureID != newContainerFeatureID) { + notification = new ENotificationImpl_1(this$static, 1, oldContainerFeatureID, oldContainer, null); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (newContainerFeatureID >= 0) { + notification = new ENotificationImpl_1(this$static, 1, newContainerFeatureID, oldContainerFeatureID == newContainerFeatureID?oldContainer:null, newContainer); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + return msgs; +} + +function $eContainer(this$static){ + var eContainerFeatureID, eContainerFeatureID0, notificationChain, resolved, result; + result = this$static.eInternalContainer(); + if (result) { + if (result.eIsProxy()) { + resolved = $eResolveProxy(this$static, result); + if (resolved != result) { + eContainerFeatureID0 = this$static.eContainerFeatureID_0(); + notificationChain = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(null):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, null)); + this$static.eBasicSetContainer(castTo(resolved, 49), eContainerFeatureID0); + !!notificationChain && notificationChain.dispatch_0(); + this$static.eBasicHasAdapters() && this$static.eDeliver() && eContainerFeatureID0 > -1 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, eContainerFeatureID0, result, resolved)); + return resolved; + } + } + } + return result; +} + +function $eDynamicGet(this$static, dynamicFeatureID, eFeature, resolve, coreType){ + return dynamicFeatureID < 0?$eOpenGet(this$static, eFeature, resolve):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); +} + +function $eDynamicIsSet(this$static, dynamicFeatureID, eFeature){ + return dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); +} + +function $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue){ + if (dynamicFeatureID < 0) { + $eOpenSet(this$static, eFeature, newValue); + } + else { + if (!eFeature.isChangeable()) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + castTo(eFeature, 66).getSettingDelegate().dynamicSet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, newValue); + } +} + +function $eDynamicUnset(this$static, dynamicFeatureID, eFeature){ + if (dynamicFeatureID < 0) { + $eOpenUnset(this$static, eFeature); + } + else { + if (!eFeature.isChangeable()) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + castTo(eFeature, 66).getSettingDelegate().dynamicUnset_0(this$static, this$static.eSettings_0(), dynamicFeatureID); + } +} + +function $eGet(this$static, featureID0, resolve, coreType){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve)):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); +} + +function $eGet_0(this$static, eFeature){ + var featureID; + return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, eFeature, true); +} + +function $eGet_1(this$static, eFeature, resolve){ + var featureID; + return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve); +} + +function $eGet_2(this$static, eFeature){ + var featureID; + featureID = $getFeatureID(this$static.eClass, eFeature); + return featureID >= 0?$eGet(this$static, featureID, true, true):$eOpenGet(this$static, eFeature, true); +} + +function $eInternalResource(this$static){ + var count, eContainer, result; + result = this$static.eDirectResource(); + if (!result) { + count = 0; + for (eContainer = this$static.eInternalContainer(); eContainer; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_66) { + return eContainer.eInternalResource(); + } + result = eContainer.eDirectResource(); + if (!!result || eContainer == this$static) { + break; + } + } + } + return result; +} + +function $eInverseAdd(this$static, otherEnd, featureID, msgs){ + var eContainerFeatureID; + if (featureID >= 0) { + return this$static.eInverseAdd_0(otherEnd, featureID, msgs); + } + else { + !!this$static.eInternalContainer() && (msgs = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(msgs):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + return this$static.eBasicSetContainer_0(otherEnd, featureID, msgs); + } +} + +function $eInverseRemove(this$static, otherEnd, featureID, msgs){ + return featureID >= 0?this$static.eInverseRemove_0(otherEnd, featureID, msgs):this$static.eBasicSetContainer_0(null, featureID, msgs); +} + +function $eIsSet(this$static, featureID0){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature)):dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); +} + +function $eIsSet_0(this$static, eFeature){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + return featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature); +} + +function $eNotificationRequired(this$static){ + return this$static.eBasicHasAdapters() && this$static.eDeliver(); +} + +function $eObjectForURIFragmentPredicate(this$static, predicate, eReference){ + var eAttribute, eDataType, eFactory, eReferenceType, end, featureMapEntries, i, index_0, length_0, values; + featureMapEntries = new ArrayList; + length_0 = predicate.length; + eReferenceType = $getEReferenceType(eReference); + for (i = 0; i < length_0; ++i) { + index_0 = $indexOf_2(predicate, fromCodePoint(61), i); + eAttribute = $eAttribute(eReferenceType, predicate.substr(i, index_0 - i)); + eDataType = $getEAttributeType(eAttribute); + eFactory = eDataType.getEPackage().getEFactoryInstance(); + switch ($charAt(predicate, ++index_0)) { + case 39: + { + end = $indexOf_0(predicate, 39, ++index_0); + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); + i = end + 1; + break; + } + + case 34: + { + end = $indexOf_0(predicate, 34, ++index_0); + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); + i = end + 1; + break; + } + + case 91: + { + values = new ArrayList; + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, values)); + LOOP: for (;;) { + switch ($charAt(predicate, ++index_0)) { + case 39: + { + end = $indexOf_0(predicate, 39, ++index_0); + $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); + index_0 = end + 1; + break; + } + + case 34: + { + end = $indexOf_0(predicate, 34, ++index_0); + $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); + index_0 = end + 1; + break; + } + + case 110: + { + ++index_0; + if (predicate.indexOf('ull', index_0) == index_0) { + values.array[values.array.length] = null; + } + else { + throw toJs(new RuntimeException_0('Expecting null')); + } + index_0 += 3; + break; + } + + } + if (index_0 < length_0) { + switch (checkCriticalStringElementIndex(index_0, predicate.length) , predicate.charCodeAt(index_0)) { + case 44: + { + break; + } + + case 93: + { + break LOOP; + } + + default:{ + throw toJs(new RuntimeException_0('Expecting , or ]')); + } + + } + } + else { + break; + } + } + i = index_0 + 1; + break; + } + + case 110: + { + ++index_0; + if (predicate.indexOf('ull', index_0) == index_0) { + $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, null)); + } + else { + throw toJs(new RuntimeException_0('Expecting null')); + } + i = index_0 + 3; + break; + } + + } + if (i < length_0) { + checkCriticalStringElementIndex(i, predicate.length); + if (predicate.charCodeAt(i) != 44) { + throw toJs(new RuntimeException_0('Expecting ,')); + } + } + else { + break; + } + } + return $eObjectForURIFragmentPredicate_0(this$static, featureMapEntries, eReference); +} + +function $eObjectForURIFragmentPredicate_0(this$static, predicate, eReference){ + var actualValue, eObject, eObject$iterator, entry, entryFeature, entryValue, featureID, i, list, size_0; + size_0 = predicate.array.length; + list = (featureID = this$static.eDerivedStructuralFeatureID_0(eReference) , castTo(featureID >= 0?this$static.eGet(featureID, false, true):$eOpenGet(this$static, eReference, false), 58)); + LOOP: for (eObject$iterator = list.iterator_0(); eObject$iterator.hasNext_0();) { + eObject = castTo(eObject$iterator.next_1(), 56); + for (i = 0; i < size_0; ++i) { + entry = (checkCriticalElementIndex(i, predicate.array.length) , castTo(predicate.array[i], 72)); + entryValue = entry.getValue(); + entryFeature = entry.getEStructuralFeature(); + actualValue = eObject.eGet_1(entryFeature, false); + if (entryValue == null?actualValue != null:!equals_Ljava_lang_Object__Z__devirtual$(entryValue, actualValue)) { + continue LOOP; + } + } + return eObject; + } + return null; +} + +function $eObjectForURIFragmentSegment(this$static, uriFragmentSegment){ + var dotIndex, eList, eReference, exception, index_0, lastChar, lastIndex, position, predicate, result; + lastIndex = uriFragmentSegment.length - 1; + lastChar = (checkCriticalStringElementIndex(lastIndex, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(lastIndex)); + if (lastChar == 93) { + index_0 = $indexOf_1(uriFragmentSegment, fromCodePoint(91)); + if (index_0 >= 0) { + eReference = $eReference(this$static, uriFragmentSegment.substr(1, index_0 - 1)); + predicate = uriFragmentSegment.substr(index_0 + 1, lastIndex - (index_0 + 1)); + return $eObjectForURIFragmentPredicate(this$static, predicate, eReference); + } + } + else { + dotIndex = -1; + digitRegex == null && (digitRegex = new RegExp('\\d')); + if (digitRegex.test(String.fromCharCode(lastChar))) { + dotIndex = $lastIndexOf_0(uriFragmentSegment, fromCodePoint(46), lastIndex - 1); + if (dotIndex >= 0) { + eList = castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1, dotIndex - 1)), false), 58); + position = 0; + try { + position = __parseAndValidateInt(uriFragmentSegment.substr(dotIndex + 1), $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + if (position < eList.size_1()) { + result = eList.get_0(position); + instanceOf(result, 72) && (result = castTo(result, 72).getValue()); + return castTo(result, 56); + } + } + } + if (dotIndex < 0) { + return castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1)), false), 56); + } + } + return null; +} + +function $eOpenGet(this$static, eFeature, resolve){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + return castTo(featureMap, 215).get_7(eFeature, resolve); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } +} + +function $eOpenIsSet(this$static, eFeature){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + return castTo(featureMap, 215).isSet_1(eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } +} + +function $eOpenSet(this$static, eFeature, newValue){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + if (!castTo(openFeature, 66).isFeatureMap_0()) { + openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature)); + if (!openFeature) { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + castTo(featureMap, 215).set_3(eFeature, newValue); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } +} + +function $eOpenUnset(this$static, eFeature){ + var featureID, featureMap, openFeature; + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); + castTo(featureMap, 215).unset_0(eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } +} + +function $eReference(this$static, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); + if (instanceOf(eStructuralFeature, 99)) { + return castTo(eStructuralFeature, 18); + } + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid reference")); +} + +function $eResolveProxy(this$static, proxy){ + var eResource, lastArg, resourceContext, result; + result = (resourceContext = this$static?$eInternalResource(this$static):null , resolve_20((lastArg = proxy , resourceContext?resourceContext.getResourceSet():null , lastArg))); + if (result == proxy) { + eResource = $eInternalResource(this$static); + !!eResource && eResource.getResourceSet(); + } + return result; +} + +function $eSet(this$static, featureID0, newValue){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + if (dynamicFeatureID < 0) { + if (!eFeature) { + throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); + } + else if (eFeature.isChangeable()) { + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + else { + $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue); + } +} + +function $eSet_0(this$static, eFeature, newValue){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); +} + +function $eSettings(this$static){ + var size_0; + if (!this$static.eHasSettings()) { + size_0 = $getFeatureCount(this$static.eClass_0()) - this$static.eStaticFeatureCount(); + this$static.eProperties_0().allocateSettings(size_0); + } + return this$static.eBasicProperties(); +} + +function $eStructuralFeature(this$static, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); + if (!eStructuralFeature) { + throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid feature")); + } + return eStructuralFeature; +} + +function $eUnset(this$static, featureID0){ + var dynamicFeatureID, eFeature, featureID; + eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); + dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); + if (dynamicFeatureID < 0) { + if (!eFeature) { + throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); + } + else if (eFeature.isChangeable()) { + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); + } + } + else { + $eDynamicUnset(this$static, dynamicFeatureID, eFeature); + } +} + +function $eUnset_0(this$static, eFeature){ + var featureID; + featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); + featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); +} + +function $toString_16(this$static){ + var number, result; + result = new StringBuilder_1($getName(this$static.___clazz)); + result.string += '@'; + $append_11(result, (number = hashCode__I__devirtual$(this$static) >>> 0 , number.toString(16))); + if (this$static.eIsProxy()) { + result.string += ' (eProxyURI: '; + $append_10(result, this$static.eProxyURI_0()); + if (this$static.eDynamicClass()) { + result.string += ' eClass: '; + $append_10(result, this$static.eDynamicClass()); + } + result.string += ')'; + } + else if (this$static.eDynamicClass()) { + result.string += ' (eClass: '; + $append_10(result, this$static.eDynamicClass()); + result.string += ')'; + } + return result.string; +} + +function eContainmentFeature(eObject, eContainer, eContainerFeatureID){ + var eFeature, entryFeature, entryReference, featureMap, i, size_0; + if (!eContainer) { + return null; + } + else { + if (eContainerFeatureID <= -1) { + eFeature = $getEStructuralFeature(eContainer.eClass_0(), -1 - eContainerFeatureID); + if (instanceOf(eFeature, 99)) { + return castTo(eFeature, 18); + } + else { + featureMap = castTo(eContainer.eGet_0(eFeature), 153); + for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { + if (maskUndefined(featureMap.getValue_1(i)) === maskUndefined(eObject)) { + entryFeature = featureMap.getEStructuralFeature_0(i); + if (instanceOf(entryFeature, 99)) { + entryReference = castTo(entryFeature, 18); + if ((entryReference.eFlags & $intern_134) != 0) { + return entryReference; + } + } + } + } + throw toJs(new IllegalStateException_0('The containment feature could not be located')); + } + } + else { + return $getEOpposite(castTo($getEStructuralFeature(eObject.eClass_0(), eContainerFeatureID), 18)); + } + } +} + +function eDecodeValue(encodedValue, eFactory, eDataType){ + var literal, value_0; + literal = decode(encodedValue); + value_0 = eFactory.createFromString(eDataType, literal); + return value_0; +} + +defineClass(97, 90, $intern_135); +_.eNotificationRequired = function eNotificationRequired(){ + return $eNotificationRequired(this); +} +; +_.eBaseStructuralFeatureID = function eBaseStructuralFeatureID(derivedFeatureID, baseClass){ + return derivedFeatureID; +} +; +_.eBasicProperties = function eBasicProperties(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature(msgs){ + var inverseFeature; + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature(this.eClass_0(), this.eContainerFeatureID_0()), 18)) , this.eInternalContainer().eInverseRemove(this, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} +; +_.eBasicSetContainer = function eBasicSetContainer(newContainer, newContainerFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicSetContainer_0 = function eBasicSetContainer_0(newContainer, newContainerFeatureID, msgs){ + return $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); +} +; +_.eClass_0 = function eClass_0(){ + var result; + if (this.eBasicProperties()) { + result = this.eBasicProperties().getEClass(); + if (result) { + return result; + } + } + return this.eStaticClass(); +} +; +_.eContainer_0 = function eContainer_0(){ + return $eContainer(this); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eContents_0 = function eContents_0(){ + var eStructuralFeatures, result; + result = this.eProperties_0().getEContents(); + !result && this.eBasicProperties().setEContents(result = ($clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures(this.eClass_0())) , eStructuralFeatures == null?EMPTY_CONTENTS_ELIST:new EContentsEList(this, eStructuralFeatures))); + return result; +} +; +_.eDerivedStructuralFeatureID = function eDerivedStructuralFeatureID(baseFeatureID, baseClass){ + return baseFeatureID; +} +; +_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_0(eStructuralFeature){ + var containerClass; + containerClass = eStructuralFeature.getContainerClass(); + return !containerClass?$getFeatureID(this.eClass_0(), eStructuralFeature):eStructuralFeature.getFeatureID_0(); +} +; +_.eDirectResource = function eDirectResource(){ + var eProperties; + eProperties = this.eBasicProperties(); + return !eProperties?null:eProperties.getEResource(); +} +; +_.eDynamicClass = function eDynamicClass(){ + return !this.eBasicProperties()?null:this.eBasicProperties().getEClass(); +} +; +_.eGet = function eGet(featureID, resolve, coreType){ + return $eGet(this, featureID, resolve, coreType); +} +; +_.eGet_0 = function eGet_0(eFeature){ + return $eGet_0(this, eFeature); +} +; +_.eGet_1 = function eGet_1(eFeature, resolve){ + return $eGet_1(this, eFeature, resolve); +} +; +_.eHasSettings = function eHasSettings(){ + var eProperties; + eProperties = this.eBasicProperties(); + return !!eProperties && eProperties.hasSettings(); +} +; +_.eInternalContainer = function eInternalContainer_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eInternalResource = function eInternalResource(){ + return $eInternalResource(this); +} +; +_.eInverseAdd = function eInverseAdd(otherEnd, featureID, baseClass, msgs){ + return $eInverseAdd(this, otherEnd, featureID, msgs); +} +; +_.eInverseAdd_0 = function eInverseAdd_0(otherEnd, featureID, msgs){ + var feature; + return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); +} +; +_.eInverseRemove = function eInverseRemove(otherEnd, featureID, baseClass, msgs){ + return $eInverseRemove(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_0(otherEnd, featureID, msgs){ + var feature; + return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); +} +; +_.eIsProxy = function eIsProxy(){ + return !!this.eBasicProperties() && !!this.eBasicProperties().getEProxyURI(); +} +; +_.eIsSet = function eIsSet(featureID){ + return $eIsSet(this, featureID); +} +; +_.eIsSet_0 = function eIsSet_0(eFeature){ + return $eIsSet_0(this, eFeature); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment(uriFragmentSegment){ + return $eObjectForURIFragmentSegment(this, uriFragmentSegment); +} +; +_.eProperties_0 = function eProperties_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eProxyURI_0 = function eProxyURI_0(){ + return !this.eBasicProperties()?null:this.eBasicProperties().getEProxyURI(); +} +; +_.eResource_0 = function eResource_0(){ + return $eInternalResource(this); +} +; +_.eSet = function eSet(featureID, newValue){ + $eSet(this, featureID, newValue); +} +; +_.eSetClass = function eSetClass(eClass){ + this.eProperties_0().setEClass(eClass); +} +; +_.eSetDirectResource = function eSetDirectResource(resource){ + this.eProperties_0().setEResource(resource); +} +; +_.eSetProxyURI = function eSetProxyURI(uri_0){ + this.eProperties_0().setEProxyURI(uri_0); +} +; +_.eSetResource = function eSetResource(resource, notifications){ + var eContainerFeatureID, oldContainer, oldContainerResource, oldResource; + oldResource = this.eDirectResource(); + if (!!oldResource && !!resource) { + notifications = $basicRemove_0(oldResource.getContents(), this, notifications); + oldResource.detached(this); + } + oldContainer = this.eInternalContainer(); + if (oldContainer) { + if ((eContainmentFeature(this, this.eInternalContainer(), this.eContainerFeatureID_0()).eFlags & $intern_63) != 0) { + oldContainerResource = oldContainer.eInternalResource(); + !!oldContainerResource && (!resource?oldContainerResource.attached(this):!oldResource && oldContainerResource.detached(this)); + } + else { + notifications = (eContainerFeatureID = this.eContainerFeatureID_0() , eContainerFeatureID >= 0?this.eBasicRemoveFromContainerFeature(notifications):this.eInternalContainer().eInverseRemove(this, -1 - eContainerFeatureID, null, notifications)); + notifications = this.eBasicSetContainer_0(null, -1, notifications); + } + } + this.eSetDirectResource(resource); + return notifications; +} +; +_.eSetting = function eSetting(eFeature){ + var dynamicIndex, eClass, featureID, featureMap, index_0, openFeature, setting, upperBound; + eClass = this.eClass_0(); + index_0 = $getFeatureID(eClass, eFeature); + dynamicIndex = this.eStaticFeatureCount(); + if (index_0 >= dynamicIndex) { + return castTo(eFeature, 66).getSettingDelegate().dynamicSetting(this, this.eSettings_0(), index_0 - dynamicIndex); + } + else if (index_0 <= -1) { + openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, eFeature); + if (openFeature) { + $clinit_FeatureMapUtil(); + castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); + featureMap = (featureID = this.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this.eGet(featureID, true, true):$eOpenGet(this, openFeature, true), 153)); + upperBound = openFeature.getUpperBound(); + if (upperBound > 1 || upperBound == -1) { + return castTo(castTo(featureMap, 215).get_7(eFeature, false), 76); + } + } + else { + throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); + } + } + else if (eFeature.isMany()) { + return featureID = this.eDerivedStructuralFeatureID_0(eFeature) , castTo(featureID >= 0?this.eGet(featureID, false, true):$eOpenGet(this, eFeature, false), 76); + } + setting = new BasicEObjectImpl$4(this, eFeature); + return setting; +} +; +_.eSettings_0 = function eSettings(){ + return $eSettings(this); +} +; +_.eStaticClass = function eStaticClass(){ + return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; +} +; +_.eStaticFeatureCount = function eStaticFeatureCount(){ + return $getFeatureCount(this.eStaticClass()); +} +; +_.eUnset = function eUnset(featureID){ + $eUnset(this, featureID); +} +; +_.toString_0 = function toString_122(){ + return $toString_16(this); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl', 97); +function $clinit_EStructuralFeature$Internal$DynamicValueHolder(){ + $clinit_EStructuralFeature$Internal$DynamicValueHolder = emptyMethod; + NIL = new EStructuralFeature$Internal$DynamicValueHolder$1; +} + +var NIL; +function $addField(this$static, field, value_0){ + var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; + fieldCount = bitCount(this$static.eFlags_0 & 254); + if (fieldCount == 0) { + this$static.eStorage = value_0; + } + else { + if (fieldCount == 1) { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 2, 5, 1); + fieldIndex = $fieldIndex(this$static, field); + if (fieldIndex == 0) { + result[0] = value_0; + result[1] = this$static.eStorage; + } + else { + result[0] = this$static.eStorage; + result[1] = value_0; + } + } + else { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount + 1, 5, 1); + oldStorage = castToArray(this$static.eStorage); + for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { + bit == field?(result[targetIndex++] = value_0):(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); + } + } + this$static.eStorage = result; + } + this$static.eFlags_0 |= field; +} + +function $eClass(this$static){ + var eClass; + eClass = castTo($getField(this$static, 16), 26); + return !eClass?this$static.eStaticClass():eClass; +} + +function $eDynamicSettings(this$static){ + var settings; + settings = castToArray($getField(this$static, 32)); + if (settings == null) { + $eSettings_0(this$static); + settings = castToArray($getField(this$static, 32)); + } + return settings; +} + +function $eSettings_0(this$static){ + var eClass, size_0; + if ((this$static.eFlags_0 & 32) == 0) { + size_0 = (eClass = castTo($getField(this$static, 16), 26) , $getFeatureCount(!eClass?this$static.eStaticClass():eClass) - $getFeatureCount(this$static.eStaticClass())); + size_0 != 0 && $setField(this$static, 32, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1)); + } + return this$static; +} + +function $fieldIndex(this$static, field){ + var bit, bit0, result; + result = 0; + for (bit0 = 2; bit0 < field; bit0 <<= 1) { + (this$static.eFlags_0 & bit0) != 0 && ++result; + } + if (result == 0) { + for (bit = field <<= 1; bit <= 128; bit <<= 1) { + if ((this$static.eFlags_0 & bit) != 0) { + return 0; + } + } + return -1; + } + else { + return result; + } +} + +function $getField(this$static, field){ + var fieldIndex; + if ((this$static.eFlags_0 & field) != 0) { + fieldIndex = $fieldIndex(this$static, field); + return fieldIndex == -1?this$static.eStorage:castToArray(this$static.eStorage)[fieldIndex]; + } + else { + return null; + } +} + +function $removeField(this$static, field){ + var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; + fieldCount = bitCount(this$static.eFlags_0 & 254); + if (fieldCount == 1) { + this$static.eStorage = null; + } + else { + oldStorage = castToArray(this$static.eStorage); + if (fieldCount == 2) { + fieldIndex = $fieldIndex(this$static, field); + this$static.eStorage = oldStorage[fieldIndex == 0?1:0]; + } + else { + result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount - 1, 5, 1); + for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { + bit == field?++sourceIndex:(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); + } + this$static.eStorage = result; + } + } + this$static.eFlags_0 &= ~field; +} + +function $setField(this$static, field, value_0){ + var fieldIndex; + if ((this$static.eFlags_0 & field) != 0) { + if (value_0 == null) { + $removeField(this$static, field); + } + else { + fieldIndex = $fieldIndex(this$static, field); + fieldIndex == -1?(this$static.eStorage = value_0):setCheck(castToArray(this$static.eStorage), fieldIndex, value_0); + } + } + else + value_0 != null && $addField(this$static, field, value_0); +} + +defineClass(114, 97, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1}); +_.dynamicGet = function dynamicGet(dynamicFeatureID){ + var settings; + settings = $eDynamicSettings(this); + return settings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet(dynamicFeatureID, newValue){ + var settings; + settings = $eDynamicSettings(this); + setCheck(settings, dynamicFeatureID, newValue); +} +; +_.dynamicUnset = function dynamicUnset(dynamicFeatureID){ + var settings; + settings = $eDynamicSettings(this); + setCheck(settings, dynamicFeatureID, null); +} +; +_.eBasicAdapterArray = function eBasicAdapterArray_0(){ + return castTo($getField(this, 4), 126); +} +; +_.eBasicAdapters = function eBasicAdapters_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicHasAdapters = function eBasicHasAdapters_0(){ + return (this.eFlags_0 & 4) != 0; +} +; +_.eBasicProperties = function eBasicProperties_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eBasicSetContainer_1 = function eBasicSetContainer_1(newContainer){ + $setField(this, 2, newContainer); +} +; +_.eBasicSetContainer = function eBasicSetContainer_2(newContainer, newContainerFeatureID){ + this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; + this.eBasicSetContainer_1(newContainer); +} +; +_.eClass_0 = function eClass_1(){ + return $eClass(this); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_1(){ + return this.eFlags_0 >> 16; +} +; +_.eContents_0 = function eContents_1(){ + var eClass, eStructuralFeatures; + return $clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass))) , eStructuralFeatures == null?(null , EMPTY_CONTENTS_ELIST):new EContentsEList(this, eStructuralFeatures); +} +; +_.eDeliver = function eDeliver_0(){ + return (this.eFlags_0 & 1) == 0; +} +; +_.eDirectResource = function eDirectResource_0(){ + return castTo($getField(this, 128), 1935); +} +; +_.eDynamicClass = function eDynamicClass_0(){ + return castTo($getField(this, 16), 26); +} +; +_.eHasSettings = function eHasSettings_0(){ + return (this.eFlags_0 & 32) != 0; +} +; +_.eInternalContainer = function eInternalContainer_1(){ + return castTo($getField(this, 2), 49); +} +; +_.eIsProxy = function eIsProxy_0(){ + return (this.eFlags_0 & 64) != 0; +} +; +_.eProperties_0 = function eProperties_1(){ + throw toJs(new UnsupportedOperationException); +} +; +_.eProxyURI_0 = function eProxyURI_1(){ + return castTo($getField(this, 64), 281); +} +; +_.eSetClass = function eSetClass_0(eClass){ + $setField(this, 16, eClass); +} +; +_.eSetDirectResource = function eSetDirectResource_0(resource){ + $setField(this, 128, resource); +} +; +_.eSetProxyURI = function eSetProxyURI_0(uri_0){ + $setField(this, 64, uri_0); +} +; +_.eSettings_0 = function eSettings_0(){ + return $eSettings_0(this); +} +; +_.eFlags_0 = 0; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl', 114); +defineClass(115, 114, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eBasicSetContainer_1 = function eBasicSetContainer_3(newContainer){ + this.eContainer = newContainer; +} +; +_.eInternalContainer = function eInternalContainer_2(){ + return this.eContainer; +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$Container_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/Container', 115); +function $eGet_3(this$static, featureID, resolve, coreType){ + if (featureID == 0) { + return coreType?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $map_1(this$static.properties)); + } + return $eGet(this$static, featureID, resolve, coreType); +} + +function $eInverseRemove_0(this$static, otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $basicRemove_1(this$static.properties, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); +} + +function $eIsSet_1(this$static, featureID){ + if (featureID == 0) { + return !!this$static.properties && this$static.properties.size_0 != 0; + } + return $eIsSet(this$static, featureID); +} + +function $eSet_1(this$static, featureID, newValue){ + switch (featureID) { + case 0: + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + $set_14(this$static.properties, newValue); + return; + } + $eSet(this$static, featureID, newValue); +} + +function $eUnset_1(this$static, featureID){ + switch (featureID) { + case 0: + !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); + this$static.properties.delegateEList.clear_0(); + return; + } + $eUnset(this$static, featureID); +} + +function $getAllProperties_0(this$static){ + var entry, entry$iterator, props; + props = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties); + for (entry$iterator = props.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 42); + entry.getValue(); + } + return $map_1(props); +} + +function $getProperty_0(this$static, property){ + var defaultValue, value_0; + value_0 = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $get_21(this$static.properties, property)); + if (value_0 != null) { + return value_0; + } + defaultValue = property.getDefault(); + instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, defaultValue)) , this$static); + return defaultValue; +} + +function $hasProperty_0(this$static, property){ + return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $containsKey_7(this$static.properties, property); +} + +function $setProperty_1(this$static, property, value_0){ + value_0 == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, value_0)); + return this$static; +} + +defineClass(1985, 115, {105:1, 413:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_2(featureID, resolve, coreType){ + return $eGet_3(this, featureID, resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_1(otherEnd, featureID, msgs){ + return $eInverseRemove_0(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_1(featureID){ + return $eIsSet_1(this, featureID); +} +; +_.eSet = function eSet_0(featureID, newValue){ + $eSet_1(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_0(){ + return $clinit_ElkGraphPackage$Literals() , EMAP_PROPERTY_HOLDER; +} +; +_.eUnset = function eUnset_0(featureID){ + $eUnset_1(this, featureID); +} +; +_.getAllProperties = function getAllProperties_0(){ + return $getAllProperties_0(this); +} +; +_.getProperty = function getProperty_3(property){ + return $getProperty_0(this, property); +} +; +_.hasProperty = function hasProperty_3(property){ + return $hasProperty_0(this, property); +} +; +_.setProperty = function setProperty_0(property, value_0){ + return $setProperty_1(this, property, value_0); +} +; +var Lorg_eclipse_elk_graph_impl_EMapPropertyHolderImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'EMapPropertyHolderImpl', 1985); +function $set_10(this$static, x_0, y_0){ + $setX_1(this$static, x_0); + $setY_2(this$static, y_0); +} + +function $setX_1(this$static, newX){ + var oldX; + oldX = this$static.x_0; + this$static.x_0 = newX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 0, oldX, this$static.x_0)); +} + +function $setY_2(this$static, newY){ + var oldY; + oldY = this$static.y_0; + this$static.y_0 = newY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldY, this$static.y_0)); +} + +function ElkBendPointImpl(){ +} + +defineClass(567, 115, {105:1, 469:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkBendPointImpl); +_.eGet = function eGet_3(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.x_0; + case 1: + return this.y_0; + } + return $eGet(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_2(featureID){ + switch (featureID) { + case 0: + return this.x_0 != 0; + case 1: + return this.y_0 != 0; + } + return $eIsSet(this, featureID); +} +; +_.eSet = function eSet_1(featureID, newValue){ + switch (featureID) { + case 0: + $setX_1(this, $doubleValue(castToDouble(newValue))); + return; + case 1: + $setY_2(this, $doubleValue(castToDouble(newValue))); + return; + } + $eSet(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_1(){ + return $clinit_ElkGraphPackage$Literals() , ELK_BEND_POINT; +} +; +_.eUnset = function eUnset_1(featureID){ + switch (featureID) { + case 0: + $setX_1(this, 0); + return; + case 1: + $setY_2(this, 0); + return; + } + $eUnset(this, featureID); +} +; +_.toString_0 = function toString_123(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (x: '; + $append_0(result, this.x_0); + result.string += ', y: '; + $append_0(result, this.y_0); + result.string += ')'; + return result.string; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_graph_impl_ElkBendPointImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkBendPointImpl', 567); +function $eGet_4(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 1: + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , this$static.labels; + case 2: + return this$static.identifier; + } + return $eGet_3(this$static, featureID, resolve, coreType); +} + +function $eInverseAdd_0(this$static, otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 1) { + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicAdd_0(this$static.labels, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); +} + +function $eInverseRemove_1(this$static, otherEnd, featureID, msgs){ + if (featureID == 1) { + return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicRemove_0(this$static.labels, otherEnd, msgs); + } + return $eInverseRemove_0(this$static, otherEnd, featureID, msgs); +} + +function $eIsSet_2(this$static, featureID){ + switch (featureID) { + case 1: + return !!this$static.labels && this$static.labels.size_0 != 0; + case 2: + return this$static.identifier != null; + } + return $eIsSet_1(this$static, featureID); +} + +function $eSet_2(this$static, featureID, newValue){ + switch (featureID) { + case 1: + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $clear_13(this$static.labels); + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $addAll_9(this$static.labels, castTo(newValue, 14)); + return; + case 2: + $setIdentifier(this$static, castToString(newValue)); + return; + } + $eSet_1(this$static, featureID, newValue); +} + +function $eUnset_2(this$static, featureID){ + switch (featureID) { + case 1: + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + $clear_13(this$static.labels); + return; + case 2: + $setIdentifier(this$static, null); + return; + } + $eUnset_1(this$static, featureID); +} + +function $getLabels_1(this$static){ + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + return this$static.labels; +} + +function $setIdentifier(this$static, newIdentifier){ + var oldIdentifier; + oldIdentifier = this$static.identifier; + this$static.identifier = newIdentifier; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldIdentifier, this$static.identifier)); +} + +function $toString_17(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (identifier: '; + $append_3(result, this$static.identifier); + result.string += ')'; + return result.string; +} + +defineClass(723, 1985, {105:1, 413:1, 160:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_4(featureID, resolve, coreType){ + return $eGet_4(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_1(otherEnd, featureID, msgs){ + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_2(otherEnd, featureID, msgs){ + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_3(featureID){ + return $eIsSet_2(this, featureID); +} +; +_.eSet = function eSet_2(featureID, newValue){ + $eSet_2(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_2(){ + return $clinit_ElkGraphPackage$Literals() , ELK_GRAPH_ELEMENT; +} +; +_.eUnset = function eUnset_2(featureID){ + $eUnset_2(this, featureID); +} +; +_.getIdentifier = function getIdentifier_0(){ + return this.identifier; +} +; +_.getLabels_0 = function getLabels_5(){ + return $getLabels_1(this); +} +; +_.toString_0 = function toString_124(){ + return $toString_17(this); +} +; +_.identifier = null; +var Lorg_eclipse_elk_graph_impl_ElkGraphElementImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphElementImpl', 723); +function $eGet_5(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 3: + return this$static.height; + case 4: + return this$static.width_0; + case 5: + return this$static.x_0; + case 6: + return this$static.y_0; + } + return $eGet_4(this$static, featureID, resolve, coreType); +} + +function $eIsSet_3(this$static, featureID){ + switch (featureID) { + case 3: + return this$static.height != 0; + case 4: + return this$static.width_0 != 0; + case 5: + return this$static.x_0 != 0; + case 6: + return this$static.y_0 != 0; + } + return $eIsSet_2(this$static, featureID); +} + +function $eSet_3(this$static, featureID, newValue){ + switch (featureID) { + case 3: + $setHeight_0(this$static, $doubleValue(castToDouble(newValue))); + return; + case 4: + $setWidth_0(this$static, $doubleValue(castToDouble(newValue))); + return; + case 5: + $setX_2(this$static, $doubleValue(castToDouble(newValue))); + return; + case 6: + $setY_3(this$static, $doubleValue(castToDouble(newValue))); + return; + } + $eSet_2(this$static, featureID, newValue); +} + +function $eUnset_3(this$static, featureID){ + switch (featureID) { + case 3: + $setHeight_0(this$static, 0); + return; + case 4: + $setWidth_0(this$static, 0); + return; + case 5: + $setX_2(this$static, 0); + return; + case 6: + $setY_3(this$static, 0); + return; + } + $eUnset_2(this$static, featureID); +} + +function $setDimensions_0(this$static, width_0, height){ + $setWidth_0(this$static, width_0); + $setHeight_0(this$static, height); +} + +function $setHeight_0(this$static, newHeight){ + var oldHeight; + oldHeight = this$static.height; + this$static.height = newHeight; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldHeight, this$static.height)); +} + +function $setLocation_1(this$static, x_0, y_0){ + $setX_2(this$static, x_0); + $setY_3(this$static, y_0); +} + +function $setWidth_0(this$static, newWidth){ + var oldWidth; + oldWidth = this$static.width_0; + this$static.width_0 = newWidth; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldWidth, this$static.width_0)); +} + +function $setX_2(this$static, newX){ + var oldX; + oldX = this$static.x_0; + this$static.x_0 = newX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 5, oldX, this$static.x_0)); +} + +function $setY_3(this$static, newY){ + var oldY; + oldY = this$static.y_0; + this$static.y_0 = newY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 6, oldY, this$static.y_0)); +} + +function $toString_18(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_17(this$static); + result = new StringBuffer_1($toString_17(this$static)); + result.string += ' (height: '; + $append_0(result, this$static.height); + result.string += ', width: '; + $append_0(result, this$static.width_0); + result.string += ', x: '; + $append_0(result, this$static.x_0); + result.string += ', y: '; + $append_0(result, this$static.y_0); + result.string += ')'; + return result.string; +} + +defineClass(724, 723, {105:1, 413:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_5(featureID, resolve, coreType){ + return $eGet_5(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_4(featureID){ + return $eIsSet_3(this, featureID); +} +; +_.eSet = function eSet_3(featureID, newValue){ + $eSet_3(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_3(){ + return $clinit_ElkGraphPackage$Literals() , ELK_SHAPE; +} +; +_.eUnset = function eUnset_3(featureID){ + $eUnset_3(this, featureID); +} +; +_.getHeight = function getHeight(){ + return this.height; +} +; +_.getWidth = function getWidth(){ + return this.width_0; +} +; +_.getX = function getX(){ + return this.x_0; +} +; +_.getY = function getY(){ + return this.y_0; +} +; +_.setDimensions = function setDimensions(width_0, height){ + $setDimensions_0(this, width_0, height); +} +; +_.setLocation = function setLocation(x_0, y_0){ + $setLocation_1(this, x_0, y_0); +} +; +_.setX = function setX(newX){ + $setX_2(this, newX); +} +; +_.setY = function setY(newY){ + $setY_3(this, newY); +} +; +_.toString_0 = function toString_125(){ + return $toString_18(this); +} +; +_.height = 0; +_.width_0 = 0; +_.x_0 = 0; +_.y_0 = 0; +var Lorg_eclipse_elk_graph_impl_ElkShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkShapeImpl', 724); +function $eGet_6(this$static, featureID, resolve, coreType){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , this$static.outgoingEdges; + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , this$static.incomingEdges; + } + return $eGet_5(this$static, featureID, resolve, coreType); +} + +function $eInverseAdd_1(this$static, otherEnd, featureID, msgs){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicAdd_0(this$static.outgoingEdges, otherEnd, msgs); + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicAdd_0(this$static.incomingEdges, otherEnd, msgs); + } + return $eInverseAdd_0(this$static, otherEnd, featureID, msgs); +} + +function $eInverseRemove_2(this$static, otherEnd, featureID, msgs){ + switch (featureID) { + case 7: + return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicRemove_0(this$static.outgoingEdges, otherEnd, msgs); + case 8: + return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicRemove_0(this$static.incomingEdges, otherEnd, msgs); + } + return $eInverseRemove_1(this$static, otherEnd, featureID, msgs); +} + +function $eIsSet_4(this$static, featureID){ + switch (featureID) { + case 7: + return !!this$static.outgoingEdges && this$static.outgoingEdges.size_0 != 0; + case 8: + return !!this$static.incomingEdges && this$static.incomingEdges.size_0 != 0; + } + return $eIsSet_3(this$static, featureID); +} + +function $eSet_4(this$static, featureID, newValue){ + switch (featureID) { + case 7: + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $clear_13(this$static.outgoingEdges); + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $addAll_9(this$static.outgoingEdges, castTo(newValue, 14)); + return; + case 8: + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $clear_13(this$static.incomingEdges); + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $addAll_9(this$static.incomingEdges, castTo(newValue, 14)); + return; + } + $eSet_3(this$static, featureID, newValue); +} + +function $eUnset_4(this$static, featureID){ + switch (featureID) { + case 7: + !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); + $clear_13(this$static.outgoingEdges); + return; + case 8: + !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); + $clear_13(this$static.incomingEdges); + return; + } + $eUnset_3(this$static, featureID); +} + +function ElkConnectableShapeImpl(){ +} + +defineClass(725, 724, {105:1, 413:1, 82:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); +_.eGet = function eGet_6(featureID, resolve, coreType){ + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_2(otherEnd, featureID, msgs){ + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_3(otherEnd, featureID, msgs){ + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_5(featureID){ + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_4(featureID, newValue){ + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_4(){ + return $clinit_ElkGraphPackage$Literals() , ELK_CONNECTABLE_SHAPE; +} +; +_.eUnset = function eUnset_4(featureID){ + $eUnset_4(this, featureID); +} +; +_.getIncomingEdges_0 = function getIncomingEdges_3(){ + return !this.incomingEdges && (this.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 8, 5)) , this.incomingEdges; +} +; +_.getOutgoingEdges_0 = function getOutgoingEdges_3(){ + return !this.outgoingEdges && (this.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 7, 4)) , this.outgoingEdges; +} +; +var Lorg_eclipse_elk_graph_impl_ElkConnectableShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkConnectableShapeImpl', 725); +function $basicSetContainingNode(this$static, newContainingNode, msgs){ + msgs = $eBasicSetContainer(this$static, newContainingNode, 3, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 3) { + return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getContainingNode(this$static){ + if (this$static.eFlags_0 >> 16 != 3) + return null; + return castTo(this$static.eContainer, 33); +} + +function $getSources(this$static){ + !this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)); + return this$static.sources; +} + +function $getTargets(this$static){ + !this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)); + return this$static.targets; +} + +function $isHierarchical(this$static){ + var commonRepresentingNode, incidentShape, incidentShape$iterator, shapeNode; + commonRepresentingNode = null; + for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { + incidentShape = castTo($next_0(incidentShape$iterator), 82); + shapeNode = connectableShapeToNode(incidentShape); + if (!commonRepresentingNode) { + commonRepresentingNode = $getParent_2(shapeNode); + } + else if (commonRepresentingNode != $getParent_2(shapeNode)) { + return true; + } + } + return false; +} + +function $isSelfloop(this$static){ + var commonNode, incidentShape, incidentShape$iterator, shapeNode; + commonNode = null; + for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { + incidentShape = castTo($next_0(incidentShape$iterator), 82); + shapeNode = connectableShapeToNode(incidentShape); + if (!commonNode) { + commonNode = shapeNode; + } + else if (commonNode != shapeNode) { + return false; + } + } + return true; +} + +function $setContainingNode(this$static, newContainingNode){ + var eContainerFeatureID, msgs; + if (newContainingNode != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newContainingNode) { + if (isAncestor(this$static, newContainingNode)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_19(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newContainingNode && (msgs = $eInverseAdd(newContainingNode, this$static, 12, msgs)); + msgs = $basicSetContainingNode(this$static, newContainingNode, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newContainingNode, newContainingNode)); +} + +function $toString_19(this$static){ + var builder, hyperedge, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_17(this$static); + builder = new StringBuilder_1('ElkEdge'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + hyperedge = (!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , !(this$static.sources.size_0 <= 1 && (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets.size_0 <= 1))); + hyperedge?(builder.string += ' [' , builder):(builder.string += ' ' , builder); + $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.sources))); + hyperedge && (builder.string += ']' , builder); + builder.string += ' -> '; + hyperedge && (builder.string += '[' , builder); + $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.targets))); + hyperedge && (builder.string += ']' , builder); + return builder.string; +} + +function ElkEdgeImpl(){ +} + +defineClass(352, 723, {105:1, 413:1, 79:1, 160:1, 352:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_0(msgs){ + return $eBasicRemoveFromContainerFeature(this, msgs); +} +; +_.eGet = function eGet_7(featureID, resolve, coreType){ + switch (featureID) { + case 3: + return $getContainingNode(this); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources; + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets; + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , this.sections; + case 7: + return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)?false:true; + case 8: + return $clinit_Boolean() , $isHierarchical(this)?true:false; + case 9: + return $clinit_Boolean() , $isSelfloop(this)?true:false; + case 10: + return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0)?true:false; + } + return $eGet_4(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_3(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 3: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetContainingNode(this, castTo(otherEnd, 33), msgs); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicAdd_0(this.sources, otherEnd, msgs); + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicAdd_0(this.targets, otherEnd, msgs); + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicAdd_0(this.sections, otherEnd, msgs); + } + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_4(otherEnd, featureID, msgs){ + switch (featureID) { + case 3: + return $basicSetContainingNode(this, null, msgs); + case 4: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicRemove_0(this.sources, otherEnd, msgs); + case 5: + return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicRemove_0(this.targets, otherEnd, msgs); + case 6: + return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicRemove_0(this.sections, otherEnd, msgs); + } + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_6(featureID){ + switch (featureID) { + case 3: + return !!$getContainingNode(this); + case 4: + return !!this.sources && this.sources.size_0 != 0; + case 5: + return !!this.targets && this.targets.size_0 != 0; + case 6: + return !!this.sections && this.sections.size_0 != 0; + case 7: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , !(this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)); + case 8: + return $isHierarchical(this); + case 9: + return $isSelfloop(this); + case 10: + return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0); + } + return $eIsSet_2(this, featureID); +} +; +_.eSet = function eSet_5(featureID, newValue){ + switch (featureID) { + case 3: + $setContainingNode(this, castTo(newValue, 33)); + return; + case 4: + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $clear_13(this.sources); + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $addAll_9(this.sources, castTo(newValue, 14)); + return; + case 5: + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $clear_13(this.targets); + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $addAll_9(this.targets, castTo(newValue, 14)); + return; + case 6: + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $clear_13(this.sections); + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $addAll_9(this.sections, castTo(newValue, 14)); + return; + } + $eSet_2(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_5(){ + return $clinit_ElkGraphPackage$Literals() , ELK_EDGE; +} +; +_.eUnset = function eUnset_5(featureID){ + switch (featureID) { + case 3: + $setContainingNode(this, null); + return; + case 4: + !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); + $clear_13(this.sources); + return; + case 5: + !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); + $clear_13(this.targets); + return; + case 6: + !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); + $clear_13(this.sections); + return; + } + $eUnset_2(this, featureID); +} +; +_.toString_0 = function toString_126(){ + return $toString_19(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkEdgeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeImpl', 352); +function $basicSetParent(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 6, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_0(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 6) { + return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getIncomingShape(this$static){ + var oldIncomingShape; + if (!!this$static.incomingShape && this$static.incomingShape.eIsProxy()) { + oldIncomingShape = castTo(this$static.incomingShape, 49); + this$static.incomingShape = castTo($eResolveProxy(this$static, oldIncomingShape), 82); + this$static.incomingShape != oldIncomingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldIncomingShape, this$static.incomingShape)); + } + return this$static.incomingShape; +} + +function $getOutgoingShape(this$static){ + var oldOutgoingShape; + if (!!this$static.outgoingShape && this$static.outgoingShape.eIsProxy()) { + oldOutgoingShape = castTo(this$static.outgoingShape, 49); + this$static.outgoingShape = castTo($eResolveProxy(this$static, oldOutgoingShape), 82); + this$static.outgoingShape != oldOutgoingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 7, oldOutgoingShape, this$static.outgoingShape)); + } + return this$static.outgoingShape; +} + +function $getParent_0(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 79); +} + +function $setEndLocation(this$static, x_0, y_0){ + $setEndX(this$static, x_0); + $setEndY(this$static, y_0); +} + +function $setEndX(this$static, newEndX){ + var oldEndX; + oldEndX = this$static.endX; + this$static.endX = newEndX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldEndX, this$static.endX)); +} + +function $setEndY(this$static, newEndY){ + var oldEndY; + oldEndY = this$static.endY; + this$static.endY = newEndY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldEndY, this$static.endY)); +} + +function $setIdentifier_0(this$static, newIdentifier){ + var oldIdentifier; + oldIdentifier = this$static.identifier; + this$static.identifier = newIdentifier; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, oldIdentifier, this$static.identifier)); +} + +function $setIncomingShape(this$static, newIncomingShape){ + var oldIncomingShape; + oldIncomingShape = this$static.incomingShape; + this$static.incomingShape = newIncomingShape; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldIncomingShape, this$static.incomingShape)); +} + +function $setOutgoingShape(this$static, newOutgoingShape){ + var oldOutgoingShape; + oldOutgoingShape = this$static.outgoingShape; + this$static.outgoingShape = newOutgoingShape; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, oldOutgoingShape, this$static.outgoingShape)); +} + +function $setParent_0(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 6 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_20(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 6, msgs)); + msgs = $basicSetParent(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 6, newParent, newParent)); +} + +function $setStartLocation(this$static, x_0, y_0){ + $setStartX(this$static, x_0); + $setStartY(this$static, y_0); +} + +function $setStartX(this$static, newStartX){ + var oldStartX; + oldStartX = this$static.startX; + this$static.startX = newStartX; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldStartX, this$static.startX)); +} + +function $setStartY(this$static, newStartY){ + var oldStartY; + oldStartY = this$static.startY; + this$static.startY = newStartY; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 2, oldStartY, this$static.startY)); +} + +function $toString_20(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (startX: '; + $append_0(result, this$static.startX); + result.string += ', startY: '; + $append_0(result, this$static.startY); + result.string += ', endX: '; + $append_0(result, this$static.endX); + result.string += ', endY: '; + $append_0(result, this$static.endY); + result.string += ', identifier: '; + $append_3(result, this$static.identifier); + result.string += ')'; + return result.string; +} + +function ElkEdgeSectionImpl(){ +} + +defineClass(439, 1985, {105:1, 413:1, 202:1, 439:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeSectionImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_1(msgs){ + return $eBasicRemoveFromContainerFeature_0(this, msgs); +} +; +_.eGet = function eGet_8(featureID, resolve, coreType){ + switch (featureID) { + case 1: + return this.startX; + case 2: + return this.startY; + case 3: + return this.endX; + case 4: + return this.endY; + case 5: + return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , this.bendPoints; + case 6: + return $getParent_0(this); + case 7: + if (resolve) + return $getOutgoingShape(this); + return this.outgoingShape; + case 8: + if (resolve) + return $getIncomingShape(this); + return this.incomingShape; + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , this.outgoingSections; + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , this.incomingSections; + case 11: + return this.identifier; + } + return $eGet_3(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_4(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent(this, castTo(otherEnd, 79), msgs); + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicAdd_0(this.outgoingSections, otherEnd, msgs); + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicAdd_0(this.incomingSections, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_5(otherEnd, featureID, msgs){ + switch (featureID) { + case 5: + return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , $basicRemove_0(this.bendPoints, otherEnd, msgs); + case 6: + return $basicSetParent(this, null, msgs); + case 9: + return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicRemove_0(this.outgoingSections, otherEnd, msgs); + case 10: + return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicRemove_0(this.incomingSections, otherEnd, msgs); + } + return $eInverseRemove_0(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_7(featureID){ + switch (featureID) { + case 1: + return this.startX != 0; + case 2: + return this.startY != 0; + case 3: + return this.endX != 0; + case 4: + return this.endY != 0; + case 5: + return !!this.bendPoints && this.bendPoints.size_0 != 0; + case 6: + return !!$getParent_0(this); + case 7: + return !!this.outgoingShape; + case 8: + return !!this.incomingShape; + case 9: + return !!this.outgoingSections && this.outgoingSections.size_0 != 0; + case 10: + return !!this.incomingSections && this.incomingSections.size_0 != 0; + case 11: + return this.identifier != null; + } + return $eIsSet_1(this, featureID); +} +; +_.eSet = function eSet_6(featureID, newValue){ + switch (featureID) { + case 1: + $setStartX(this, $doubleValue(castToDouble(newValue))); + return; + case 2: + $setStartY(this, $doubleValue(castToDouble(newValue))); + return; + case 3: + $setEndX(this, $doubleValue(castToDouble(newValue))); + return; + case 4: + $setEndY(this, $doubleValue(castToDouble(newValue))); + return; + case 5: + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $clear_13(this.bendPoints); + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $addAll_9(this.bendPoints, castTo(newValue, 14)); + return; + case 6: + $setParent_0(this, castTo(newValue, 79)); + return; + case 7: + $setOutgoingShape(this, castTo(newValue, 82)); + return; + case 8: + $setIncomingShape(this, castTo(newValue, 82)); + return; + case 9: + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $clear_13(this.outgoingSections); + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $addAll_9(this.outgoingSections, castTo(newValue, 14)); + return; + case 10: + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $clear_13(this.incomingSections); + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $addAll_9(this.incomingSections, castTo(newValue, 14)); + return; + case 11: + $setIdentifier_0(this, castToString(newValue)); + return; + } + $eSet_1(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_6(){ + return $clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION; +} +; +_.eUnset = function eUnset_6(featureID){ + switch (featureID) { + case 1: + $setStartX(this, 0); + return; + case 2: + $setStartY(this, 0); + return; + case 3: + $setEndX(this, 0); + return; + case 4: + $setEndY(this, 0); + return; + case 5: + !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); + $clear_13(this.bendPoints); + return; + case 6: + $setParent_0(this, null); + return; + case 7: + $setOutgoingShape(this, null); + return; + case 8: + $setIncomingShape(this, null); + return; + case 9: + !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); + $clear_13(this.outgoingSections); + return; + case 10: + !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); + $clear_13(this.incomingSections); + return; + case 11: + $setIdentifier_0(this, null); + return; + } + $eUnset_1(this, featureID); +} +; +_.toString_0 = function toString_127(){ + return $toString_20(this); +} +; +_.endX = 0; +_.endY = 0; +_.identifier = null; +_.startX = 0; +_.startY = 0; +var Lorg_eclipse_elk_graph_impl_ElkEdgeSectionImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeSectionImpl', 439); +function $eObjectForURIFragmentSegment_0(this$static, uriFragmentSegment){ + var count, count0, eAnnotation, eNamedElement, encodedSource, exception, firstCharacter, hasCount, index_0, index0, length_0, name_0, object, object$iterator, object$iterator0, otherName, otherSource, source; + length_0 = uriFragmentSegment.length; + if (length_0 > 0) { + firstCharacter = (checkCriticalStringElementIndex(0, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(0)); + if (firstCharacter != 64) { + if (firstCharacter == 37) { + index0 = uriFragmentSegment.lastIndexOf('%'); + hasCount = false; + if (index0 != 0 && (index0 == length_0 - 1 || (hasCount = (checkCriticalStringElementIndex(index0 + 1, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(index0 + 1) == 46)))) { + encodedSource = uriFragmentSegment.substr(1, index0 - 1); + source = $equals_5('%', encodedSource)?null:decode(encodedSource); + count0 = 0; + if (hasCount) { + try { + count0 = __parseAndValidateInt(uriFragmentSegment.substr(index0 + 2), $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + } + for (object$iterator0 = $iterator_1(this$static.eContents_0()); object$iterator0.hasNext_0();) { + object = $next_15(object$iterator0); + if (instanceOf(object, 510)) { + eAnnotation = castTo(object, 590); + otherSource = eAnnotation.source; + if ((source == null?otherSource == null:$equals_5(source, otherSource)) && count0-- == 0) { + return eAnnotation; + } + } + } + return null; + } + } + index_0 = uriFragmentSegment.lastIndexOf('.'); + name_0 = index_0 == -1?uriFragmentSegment:uriFragmentSegment.substr(0, index_0); + count = 0; + if (index_0 != -1) { + try { + count = __parseAndValidateInt(uriFragmentSegment.substr(index_0 + 1), $intern_42, $intern_0); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + name_0 = uriFragmentSegment; + } + else + throw toJs($e1); + } + } + name_0 = $equals_5('%', name_0)?null:decode(name_0); + for (object$iterator = $iterator_1(this$static.eContents_0()); object$iterator.hasNext_0();) { + object = $next_15(object$iterator); + if (instanceOf(object, 191)) { + eNamedElement = castTo(object, 191); + otherName = eNamedElement.getName(); + if ((name_0 == null?otherName == null:$equals_5(name_0, otherName)) && count-- == 0) { + return eNamedElement; + } + } + } + return null; + } + } + return $eObjectForURIFragmentSegment(this$static, uriFragmentSegment); +} + +function $freeze(eModelElement){ + instanceOf(eModelElement, 150) && castTo(eModelElement, 150).freeze(); +} + +function $getEAnnotation(this$static, source){ + var eAnnotation, eAnnotation$iterator, eAnnotationArray, i, size_0; + if (this$static.eAnnotations) { + if (this$static.eAnnotations) { + size_0 = this$static.eAnnotations.size_0; + if (size_0 > 0) { + eAnnotationArray = castTo(this$static.eAnnotations.data_0, 1934); + if (source == null) { + for (i = 0; i < size_0; ++i) { + eAnnotation = eAnnotationArray[i]; + if (eAnnotation.source == null) { + return eAnnotation; + } + } + } + else { + for (i = 0; i < size_0; ++i) { + eAnnotation = eAnnotationArray[i]; + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + else { + if (source == null) { + for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { + eAnnotation = castTo($doNext(eAnnotation$iterator), 590); + if (eAnnotation.source == null) { + return eAnnotation; + } + } + } + else { + for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { + eAnnotation = castTo($doNext(eAnnotation$iterator), 590); + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + return null; +} + +defineClass(150, 115, {105:1, 92:1, 90:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); +_.eGet = function eGet_9(featureID, resolve, coreType){ + var eClass; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_5(otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_6(otherEnd, featureID, msgs){ + var eClass, feature; + if (featureID == 0) { + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_8(featureID){ + var eClass; + if (featureID == 0) { + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_0(uriFragmentSegment){ + return $eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_7(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eSetDirectResource = function eSetDirectResource_1(resource){ + $setField(this, 128, resource); +} +; +_.eStaticClass = function eStaticClass_7(){ + return $clinit_EcorePackage$Literals() , EMODEL_ELEMENT; +} +; +_.eUnset = function eUnset_7(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze(){ + this.eFlags |= 1; +} +; +_.getEAnnotation = function getEAnnotation(source){ + return $getEAnnotation(this, source); +} +; +_.eFlags = 0; +var Lorg_eclipse_emf_ecore_impl_EModelElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EModelElementImpl', 150); +function $clinit_EFactoryImpl(){ + $clinit_EFactoryImpl = emptyMethod; + HEX_DIGITS = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); + WHITE_SPACE = new RegExp('[ \t\n\r\f]+'); + try { + EDATE_FORMATS = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit, 1), $intern_2, 2015, 0, [new EFactoryImpl$1ClientInternalEDateTimeFormat(($clinit_DateTimeFormat_0() , getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0))))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat('yyyy-MM-dd', $getDateTimeFormatInfo((null , instance_0))))]); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 78)) + throw toJs($e0); + } +} + +function $basicSetEPackage(this$static, newEPackage, msgs){ + var notification, oldEPackage; + oldEPackage = this$static.ePackage; + this$static.ePackage = newEPackage; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 1, oldEPackage, newEPackage); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $bytesToHexString(bytes, count){ + var high, i, j, low, result; + if (bytes == null) { + return null; + } + else { + result = initUnidimensionalArray(C_classLit, $intern_44, 25, 2 * count, 15, 1); + for (i = 0 , j = 0; i < count; ++i) { + high = bytes[i] >> 4 & 15; + low = bytes[i] & 15; + result[j++] = HEX_DIGITS[high]; + result[j++] = HEX_DIGITS[low]; + } + return valueOf_9(result, 0, result.length); + } +} + +function $convertToString(this$static, eDataType, objectValue){ + var baseType, item_0, item$iterator, itemType, list, memberType, memberType$iterator, memberTypes, result; + if (this$static.ePackage != eDataType.getEPackage()) { + throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } + baseType = $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getBaseType(); + if (baseType) { + return baseType.getEPackage().getEFactoryInstance().convertToString(baseType, objectValue); + } + itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); + if (itemType) { + if (objectValue == null) { + return null; + } + list = castTo(objectValue, 15); + if (list.isEmpty()) { + return ''; + } + result = new StringBuffer; + for (item$iterator = list.iterator_0(); item$iterator.hasNext_0();) { + item_0 = item$iterator.next_1(); + $append_3(result, itemType.getEPackage().getEFactoryInstance().convertToString(itemType, item_0)); + result.string += ' '; + } + return $substring(result, result.string.length - 1); + } + memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); + if (!memberTypes.isEmpty()) { + for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { + memberType = castTo(memberType$iterator.next_1(), 148); + if (memberType.isInstance(objectValue)) { + try { + result = memberType.getEPackage().getEFactoryInstance().convertToString(memberType, objectValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 102)) + throw toJs($e0); + } + } + } + throw toJs(new IllegalArgumentException_0("Invalid value: '" + objectValue + "' for datatype :" + eDataType.getName())); + } + castTo(eDataType, 834).getConversionDelegate(); + return objectValue == null?null:instanceOf(objectValue, 172)?'' + castTo(objectValue, 172).value_0:getClass__Ljava_lang_Class___devirtual$(objectValue) == Ljava_util_Date_2_classLit?$format_0(EDATE_FORMATS[0], castTo(objectValue, 199)):toString_40(objectValue); +} + +function $createFromString(this$static, eDataType, stringValue){ + var baseType, c, carray, charValue, i, item_0, item$array, item$index, item$max, itemType, memberType, memberType$iterator, memberTypes, result; + if (stringValue == null) { + return null; + } + if (this$static.ePackage != eDataType.getEPackage()) { + throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } + if (instanceOf(eDataType, 457)) { + result = $getEEnumLiteralByLiteral(castTo(eDataType, 671), stringValue); + if (!result) { + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a valid enumerator of '" + eDataType.getName() + "'")); + } + return result; + } + switch ($getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getWhiteSpaceFacet()) { + case 2: + { + stringValue = normalize(stringValue, false); + break; + } + + case 3: + { + stringValue = normalize(stringValue, true); + break; + } + + } + baseType = $getExtendedMetaData(INSTANCE_11, eDataType).getBaseType(); + if (baseType) { + return baseType.getEPackage().getEFactoryInstance().createFromString(baseType, stringValue); + } + itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); + if (itemType) { + result = new ArrayList; + for (item$array = $split_5(stringValue) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, itemType.getEPackage().getEFactoryInstance().createFromString(itemType, item_0)); + } + return result; + } + memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); + if (!memberTypes.isEmpty()) { + for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { + memberType = castTo(memberType$iterator.next_1(), 148); + try { + result = memberType.getEPackage().getEFactoryInstance().createFromString(memberType, stringValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' does not match any member types of the union datatype '" + eDataType.getName() + "'")); + } + castTo(eDataType, 834).getConversionDelegate(); + c = wrapperClassFor(eDataType.getInstanceClass()); + if (!c) + return null; + if (c == Ljava_lang_Character_2_classLit) { + charValue = 0; + try { + charValue = __parseAndValidateInt(stringValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + carray = $toCharArray(stringValue); + charValue = carray[0]; + } + else + throw toJs($e1); + } + return valueOf_3(charValue); + } + if (c == Ljava_util_Date_2_classLit) { + for (i = 0; i < EDATE_FORMATS.length; ++i) { + try { + return $parse_2(EDATE_FORMATS[i], stringValue); + } + catch ($e2) { + $e2 = toJava($e2); + if (!instanceOf($e2, 32)) + throw toJs($e2); + } + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); + } + throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is invalid. ")); +} + +function $hexStringToBytes(initialValue){ + var high, i, j, limit, low, result, size_0; + if (initialValue == null) { + return null; + } + size_0 = initialValue.length; + limit = (size_0 + 1) / 2 | 0; + result = initUnidimensionalArray(B_classLit, $intern_136, 25, limit, 15, 1); + size_0 % 2 != 0 && (result[--limit] = hexCharToByte((checkCriticalStringElementIndex(size_0 - 1, initialValue.length) , initialValue.charCodeAt(size_0 - 1)))); + for (i = 0 , j = 0; i < limit; ++i) { + high = hexCharToByte($charAt(initialValue, j++)); + low = hexCharToByte($charAt(initialValue, j++)); + result[i] = (high << 4 | low) << 24 >> 24; + } + return result; +} + +function $setEPackage(this$static, newEPackage){ + var msgs; + if (newEPackage != this$static.ePackage) { + msgs = null; + !!this$static.ePackage && (msgs = castTo(this$static.ePackage, 49).eInverseRemove(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + !!newEPackage && (msgs = castTo(newEPackage, 49).eInverseAdd(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + msgs = $basicSetEPackage(this$static, newEPackage, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, newEPackage, newEPackage)); +} + +function $split_5(value_0){ + var i, length_0, result, split_0; + split_0 = $split(WHITE_SPACE, value_0); + length_0 = split_0.length; + result = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, length_0, 6, 1); + for (i = 0; i < length_0; ++i) { + result[i] = split_0[i]; + } + return result; +} + +function EFactoryImpl(){ + $clinit_EFactoryImpl(); +} + +function hexCharToByte(character){ + switch (character) { + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + { + return character - 48 << 24 >> 24; + } + + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + { + return character - 97 + 10 << 24 >> 24; + } + + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + { + return character - 65 + 10 << 24 >> 24; + } + + default:{ + throw toJs(new NumberFormatException('Invalid hexadecimal')); + } + + } +} + +defineClass(704, 150, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EFactoryImpl); +_.convertToString = function convertToString(eDataType, objectValue){ + return $convertToString(this, eDataType, objectValue); +} +; +_.create_3 = function create_40(eClass){ + var eGenericType, eSuperType, eSuperTypes, result, result0; + if (this.ePackage != $getEPackage(eClass) || (eClass.eFlags & 256) != 0) { + throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } + for (eSuperTypes = $getESuperTypes(eClass); $getEGenericSuperTypes(eSuperTypes.this$01).size_0 != 0;) { + eSuperType = castTo($resolve_1(eSuperTypes, 0, (eGenericType = castTo($get_20($getEGenericSuperTypes(eSuperTypes.this$01), 0), 87) , result0 = eGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + if ($getInstanceClass(eSuperType)) { + result = $getEPackage(eSuperType).getEFactoryInstance().create_3(eSuperType); + castTo(result, 49).eSetClass(eClass); + return result; + } + eSuperTypes = $getESuperTypes(eSuperType); + } + return (eClass.instanceClassName != null?eClass.instanceClassName:eClass.generatedInstanceClassName) == 'java.util.Map$Entry'?new DynamicEObjectImpl$BasicEMapEntry(eClass):new DynamicEObjectImpl(eClass); +} +; +_.createFromString = function createFromString(eDataType, stringValue){ + return $createFromString(this, eDataType, stringValue); +} +; +_.eGet = function eGet_10(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.ePackage; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_6(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 1: + !!this.ePackage && (msgs = castTo(this.ePackage, 49).eInverseRemove(this, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + return $basicSetEPackage(this, castTo(otherEnd, 235), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_7(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 1: + return $basicSetEPackage(this, null, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_9(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return !!this.ePackage; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); +} +; +_.eSet = function eSet_8(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setEPackage(this, castTo(newValue, 235)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_8(){ + return $clinit_EcorePackage$Literals() , EFACTORY; +} +; +_.eUnset = function eUnset_8(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setEPackage(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); +} +; +var EDATE_FORMATS, HEX_DIGITS, WHITE_SPACE; +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl', 704); +function ElkGraphFactoryImpl(){ +} + +function init_1(){ + $clinit_EFactoryImpl(); + var exception, theElkGraphFactory; + try { + theElkGraphFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2014); + if (theElkGraphFactory) { + return theElkGraphFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new ElkGraphFactoryImpl; +} + +defineClass($intern_137, 704, {105:1, 2014:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, ElkGraphFactoryImpl); +_.convertToString = function convertToString_0(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 12: + return castTo(instanceValue, 146).getId(); + case 13: + return toString_40(instanceValue); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_41(eClass){ + var ePackage, elkBendPoint, elkEdge, elkEdgeSection, elkLabel, elkNode, elkPort, elkPropertyToValueMapEntry; + switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { + case 4: + return elkLabel = new ElkLabelImpl , elkLabel; + case 6: + return elkNode = new ElkNodeImpl , elkNode; + case 7: + return elkPort = new ElkPortImpl , elkPort; + case 8: + return elkEdge = new ElkEdgeImpl , elkEdge; + case 9: + return elkBendPoint = new ElkBendPointImpl , elkBendPoint; + case 10: + return elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection; + case 11: + return elkPropertyToValueMapEntry = new ElkPropertyToValueMapEntryImpl , elkPropertyToValueMapEntry; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_0(eDataType, initialValue){ + switch (eDataType.getClassifierID()) { + case 13: + case 12: + return null; + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var Lorg_eclipse_elk_graph_impl_ElkGraphFactoryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphFactoryImpl', $intern_137); +function $setName(this$static, newName){ + var oldName; + oldName = this$static.name_0; + this$static.name_0 = newName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldName, this$static.name_0)); +} + +function $toString_21(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (name: '; + $append_3(result, this$static.name_0); + result.string += ')'; + return result.string; +} + +defineClass(438, 150, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); +_.eContents_0 = function eContents_2(){ + var eClass, eStructuralFeatures; + eStructuralFeatures = (eClass = castTo($getField(this, 16), 26) , $containments($getEAllStructuralFeatures(!eClass?this.eStaticClass():eClass))); + return eStructuralFeatures == null?($clinit_EContentsEList() , $clinit_EContentsEList() , EMPTY_CONTENTS_ELIST):new ENamedElementImpl$1(this, eStructuralFeatures); +} +; +_.eGet = function eGet_11(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.getName(); + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_10(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_9(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + this.setName(castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_9(){ + return $clinit_EcorePackage$Literals() , ENAMED_ELEMENT; +} +; +_.eUnset = function eUnset_9(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + this.setName(null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getName = function getName_5(){ + return this.name_0; +} +; +_.setName = function setName(newName){ + $setName(this, newName); +} +; +_.toString_0 = function toString_128(){ + return $toString_21(this); +} +; +_.name_0 = null; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl', 438); +function $addAnnotation(eNamedElement, source, details){ + var annotations, childAnnotations, eAnnotation, eAnnotation0, i, i0, theDetails; + eAnnotation0 = (eAnnotation = new EAnnotationImpl , eAnnotation); + $setSourceGen(eAnnotation0, (checkCriticalNotNull(source) , source)); + theDetails = (!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details); + for (i0 = 1; i0 < details.length; i0 += 2) { + $put_13(theDetails, details[i0 - 1], details[i0]); + } + annotations = (!eNamedElement.eAnnotations && (eNamedElement.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, eNamedElement, 0, 3)) , eNamedElement.eAnnotations); + for (i = 0; i < 0; ++i) { + childAnnotations = $getContents(castTo($get_20(annotations, annotations.size_0 - 1), 590)); + annotations = childAnnotations; + } + $add_21(annotations, eAnnotation0); +} + +function $addEException(owner, exception){ + $add_21((!owner.eExceptions && (owner.eExceptions = new EOperationImpl$1(owner, owner)) , owner.eExceptions), exception); +} + +function $addEOperation(owner, type_0, name_0){ + var eOperation, o; + o = (eOperation = new EOperationImpl , eOperation); + $initEOperation(o, type_0, name_0); + $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); + return o; +} + +function $addEParameter(owner, type_0, name_0){ + var p, p_0; + p = (p_0 = new EParameterImpl , $setEType(p_0, type_0) , $setName(p_0, name_0) , $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p_0) , p_0); + $setLowerBound(p, 0); + $setUpperBound(p, 1); + $setUnique_2(p, true); + $setOrdered(p, true); + return p; +} + +function $addEParameter_0(owner, type_0, name_0){ + var eParameter, msgs, p; + p = (eParameter = new EParameterImpl , eParameter); + msgs = $setEGenericType(p, type_0, null); + !!msgs && msgs.dispatch_0(); + $setName(p, name_0); + $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p); + $setLowerBound(p, 0); + $setUpperBound(p, 1); + $setUnique_2(p, true); + $setOrdered(p, true); +} + +function $addETypeParameter(owner, name_0){ + var eTypeParameter, eTypeParameter0; + eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); + $setName(eTypeParameter0, name_0); + $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 7)) , owner.eTypeParameters), eTypeParameter0); + return eTypeParameter0; +} + +function $addETypeParameter_0(owner){ + var eTypeParameter, eTypeParameter0; + eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); + $setName(eTypeParameter0, 'T'); + $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 11)) , owner.eTypeParameters), eTypeParameter0); + return eTypeParameter0; +} + +function $basicGetESuperPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 7) + return null; + return castTo(this$static.eContainer, 235); +} + +function $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs){ + var notification, oldEFactoryInstance; + oldEFactoryInstance = this$static.eFactoryInstance; + this$static.eFactoryInstance = newEFactoryInstance; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 4, oldEFactoryInstance, newEFactoryInstance); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $createEAttribute(owner, id_0){ + var a, eAttribute; + a = (eAttribute = new EAttributeImpl , eAttribute); + a.featureID = id_0; + $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), a); +} + +function $createEClass(this$static, id_0){ + var c, eClass; + c = (eClass = new EClassImpl , eClass); + c.metaObjectID = id_0; + !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); + $add_21(this$static.eClassifiers, c); + return c; +} + +function $createEDataType(this$static, id_0){ + var d, eDataType; + d = (eDataType = new EDataTypeImpl , eDataType); + d.metaObjectID = id_0; + !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); + $add_21(this$static.eClassifiers, d); + return d; +} + +function $createEGenericType(eClassifier){ + var eGenericType, eGenericType0; + eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClassifier); + return eGenericType0; +} + +function $createEGenericType_0(eTypeParameter){ + var eGenericType, eGenericType0; + eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); + $setETypeParameter(eGenericType0, eTypeParameter); + return eGenericType0; +} + +function $createEOperation(owner){ + var eOperation, o; + o = (eOperation = new EOperationImpl , eOperation); + $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); +} + +function $createEReference(owner, id_0){ + var eReference, r; + r = (eReference = new EReferenceImpl , eReference); + r.featureID = id_0; + $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), r); +} + +function $createResource(this$static, uri_0){ + var actualURI, resource; + resource = $eInternalResource(this$static); + if (!resource) { + !resourceFactory && (resourceFactory = new EPackageImpl$3); + actualURI = ($clinit_URI() , createURIWithCache(uri_0)); + resource = new BinaryResourceImpl(actualURI); + $add_21(resource.getContents(), this$static); + } + return resource; +} + +function $eBasicRemoveFromContainerFeature_1(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 7) { + return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $freeze_0(this$static){ + var i, size_0; + if (this$static.eClassifiers) { + for (i = 0 , size_0 = this$static.eClassifiers.size_0; i < size_0; ++i) { + $freeze($get_20(this$static.eClassifiers, i)); + } + } + if (this$static.eSubpackages) { + for (i = 0 , size_0 = this$static.eSubpackages.size_0; i < size_0; ++i) { + $freeze($get_20(this$static.eSubpackages, i)); + } + } + $getNamespace(($clinit_ExtendedMetaData() , INSTANCE_11), this$static); + this$static.eFlags |= 1; +} + +function $getEClassifierGen(this$static, name_0){ + var duplicate, eClassifier, eClassifier$iterator, eClassifiers, key, result; + if (!this$static.eNameToEClassifierMap) { + eClassifiers = (!this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)) , this$static.eClassifiers); + result = new HashMap_0(eClassifiers.size_0); + for (eClassifier$iterator = new AbstractEList$EIterator(eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = castTo($doNext(eClassifier$iterator), 138); + key = eClassifier.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eClassifier):$put_10(result.stringMap, key, eClassifier), 138); + !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); + } + this$static.eNameToEClassifierMap = result; + } + return castTo($getStringValue(this$static.eNameToEClassifierMap, name_0), 138); +} + +function $initEAttribute(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ + $initEStructuralFeature(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived); + $setID(a, false); + return a; +} + +function $initEAttribute_0(a, type_0, name_0, containerClass, isTransient, isVolatile, isChangeable, isDerived){ + var msgs; + instanceOf(a.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(a.eContainer, 88)), 4); + $setName(a, name_0); + a.containerClass = containerClass; + $setTransient(a, isTransient); + $setVolatile(a, isVolatile); + $setChangeable(a, isChangeable); + $setUnsettable(a, false); + $setUnique_2(a, true); + $setDerived(a, isDerived); + $setOrdered(a, true); + $setLowerBound(a, 0); + a.effectiveIsMany = 0; + $setUpperBound(a, 1); + msgs = $setEGenericType(a, type_0, null); + !!msgs && msgs.dispatch_0(); + $setID(a, false); + return a; +} + +function $initEClass(c, instanceClass, name_0, isAbstract, isInterface, isGenerated){ + $initEClassifier(c, instanceClass, name_0, isGenerated); + $setAbstract(c, isAbstract); + $setInterface(c, isInterface); + return c; +} + +function $initEClassifier(o, instanceClass, name_0, isGenerated){ + instanceOf(o.eContainer, 179) && (castTo(o.eContainer, 179).eNameToEClassifierMap = null); + $setName(o, name_0); + !!instanceClass && $setInstanceClass(o, instanceClass); + isGenerated && o.setGeneratedInstanceClass(true); +} + +function $initEDataType(d, instanceClass, name_0, isSerializable){ + $initEClassifier(d, instanceClass, name_0, false); + $setSerializable(d, isSerializable); + return d; +} + +function $initEOperation(eOperation, type_0, name_0){ + $setEType(eOperation, type_0); + $setName(eOperation, name_0); + $setLowerBound(eOperation, 0); + $setUpperBound(eOperation, 1); + $setUnique_2(eOperation, true); + $setOrdered(eOperation, true); + return eOperation; +} + +function $initEReference(r, type_0, otherEnd, name_0, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isContainment, isResolveProxies, isUnsettable, isDerived){ + $initEStructuralFeature(r, type_0, name_0, null, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, true, isDerived); + $setContainmentGen(r, isContainment); + instanceOf(r.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(r.eContainer, 88)), 2); + !!otherEnd && $setEOpposite(r, otherEnd); + $setResolveProxies(r, isResolveProxies); + return r; +} + +function $initEStructuralFeature(s, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ + instanceOf(s.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(s.eContainer, 88)), 4); + $setName(s, name_0); + s.containerClass = containerClass; + $setTransient(s, isTransient); + $setVolatile(s, isVolatile); + $setChangeable(s, isChangeable); + $setUnsettable(s, isUnsettable); + $setUnique_2(s, isUnique); + $setDerived(s, isDerived); + $setOrdered(s, true); + $setLowerBound(s, lowerBound); + s.setUpperBound(upperBound); + $setEType(s, type_0); + defaultValue != null && (s.defaultValueFactory = null , $setDefaultValueLiteralGen(s, defaultValue)); +} + +function $setEFactoryInstance(this$static, newEFactoryInstance){ + var msgs; + if (newEFactoryInstance != this$static.eFactoryInstance) { + msgs = null; + !!this$static.eFactoryInstance && (msgs = castTo(this$static.eFactoryInstance, 49).eInverseRemove(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + !!newEFactoryInstance && (msgs = castTo(newEFactoryInstance, 49).eInverseAdd(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + msgs = $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newEFactoryInstance, newEFactoryInstance)); +} + +function $setNsPrefix(this$static, newNsPrefix){ + var oldNsPrefix; + oldNsPrefix = this$static.nsPrefix; + this$static.nsPrefix = newNsPrefix; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldNsPrefix, this$static.nsPrefix)); +} + +function $setNsURI(this$static, newNsURI){ + var oldNsURI; + oldNsURI = this$static.nsURI; + this$static.nsURI = newNsURI; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldNsURI, this$static.nsURI)); +} + +function EPackageImpl(){ + $setEFactoryInstance(this, new EFactoryImpl); + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + $clinit_EcoreFactory(); +} + +function EPackageImpl_0(packageURI, factory){ + var registration; + registration = $getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), packageURI); + instanceOf(registration, 498)?$putStringValue(INSTANCE_6, packageURI, new EPackageImpl$1(this, factory)):$putStringValue(INSTANCE_6, packageURI, this); + $setEFactoryInstance(this, factory); + if (factory == ($clinit_EcoreFactory() , eINSTANCE_1)) { + this.ecorePackage = castTo(this, 1939); + castTo(factory, 1941); + } + else { + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + } +} + +defineClass(179, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, EPackageImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_2(msgs){ + return $eBasicRemoveFromContainerFeature_1(this, msgs); +} +; +_.eGet = function eGet_12(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.nsURI; + case 3: + return this.nsPrefix; + case 4: + return this.eFactoryInstance; + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , this.eSubpackages; + case 7: + if (resolve) + return this.eFlags_0 >> 16 == 7?castTo(this.eContainer, 235):null; + return $basicGetESuperPackage(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_7(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 4: + !!this.eFactoryInstance && (msgs = castTo(this.eFactoryInstance, 49).eInverseRemove(this, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + return $basicSetEFactoryInstance(this, castTo(otherEnd, 471), msgs); + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicAdd_0(this.eClassifiers, otherEnd, msgs); + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicAdd_0(this.eSubpackages, otherEnd, msgs); + case 7: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_1(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 7, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_8(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 4: + return $basicSetEFactoryInstance(this, null, msgs); + case 5: + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicRemove_0(this.eClassifiers, otherEnd, msgs); + case 6: + return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicRemove_0(this.eSubpackages, otherEnd, msgs); + case 7: + return $eBasicSetContainer(this, null, 7, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_11(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.nsURI != null; + case 3: + return this.nsPrefix != null; + case 4: + return !!this.eFactoryInstance; + case 5: + return !!this.eClassifiers && this.eClassifiers.size_0 != 0; + case 6: + return !!this.eSubpackages && this.eSubpackages.size_0 != 0; + case 7: + return !!$basicGetESuperPackage(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_1(uriFragmentSegment){ + var result; + result = $getEClassifierGen(this, uriFragmentSegment); + return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_10(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setNsURI(this, castToString(newValue)); + return; + case 3: + $setNsPrefix(this, castToString(newValue)); + return; + case 4: + $setEFactoryInstance(this, castTo(newValue, 471)); + return; + case 5: + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $clear_13(this.eClassifiers); + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $addAll_9(this.eClassifiers, castTo(newValue, 14)); + return; + case 6: + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $clear_13(this.eSubpackages); + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $addAll_9(this.eSubpackages, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), newValue); +} +; +_.eSetProxyURI = function eSetProxyURI_1(uri_0){ + var eClassifier, eClassifier$iterator; + if (!!uri_0 && !!this.eClassifiers) { + for (eClassifier$iterator = new AbstractEList$EIterator(this.eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = $doNext(eClassifier$iterator); + instanceOf(eClassifier, 351) && (castTo(eClassifier, 351).ePackage = null); + } + } + $setField(this, 64, uri_0); +} +; +_.eStaticClass = function eStaticClass_10(){ + return $clinit_EcorePackage$Literals() , EPACKAGE; +} +; +_.eUnset = function eUnset_10(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setNsURI(this, null); + return; + case 3: + $setNsPrefix(this, null); + return; + case 4: + $setEFactoryInstance(this, null); + return; + case 5: + !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); + $clear_13(this.eClassifiers); + return; + case 6: + !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); + $clear_13(this.eSubpackages); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); +} +; +_.freeze = function freeze_0(){ + $freeze_0(this); +} +; +_.getEClassifiers = function getEClassifiers(){ + return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; +} +; +_.getEFactoryInstance = function getEFactoryInstance(){ + return this.eFactoryInstance; +} +; +_.getExtendedMetaData = function getExtendedMetaData(){ + return this.ePackageExtendedMetaData; +} +; +_.getNsPrefix = function getNsPrefix(){ + return this.nsPrefix; +} +; +_.getNsURI = function getNsURI(){ + return this.nsURI; +} +; +_.setExtendedMetaData = function setExtendedMetaData(ePackageExtendedMetaData){ + this.ePackageExtendedMetaData = ePackageExtendedMetaData; +} +; +_.toString_0 = function toString_129(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_21(this); + result = new StringBuffer_1($toString_21(this)); + result.string += ' (nsURI: '; + $append_3(result, this.nsURI); + result.string += ', nsPrefix: '; + $append_3(result, this.nsPrefix); + result.string += ')'; + return result.string; +} +; +_.nsPrefix = null; +_.nsURI = null; +var resourceFactory; +var Lorg_eclipse_emf_ecore_impl_EPackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl', 179); +function $createPackageContents(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.iPropertyHolderEClass = $createEClass(this$static, 0); + this$static.eMapPropertyHolderEClass = $createEClass(this$static, 1); + $createEReference(this$static.eMapPropertyHolderEClass, 0); + this$static.elkGraphElementEClass = $createEClass(this$static, 2); + $createEReference(this$static.elkGraphElementEClass, 1); + $createEAttribute(this$static.elkGraphElementEClass, 2); + this$static.elkShapeEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.elkShapeEClass, 3); + $createEAttribute(this$static.elkShapeEClass, 4); + $createEAttribute(this$static.elkShapeEClass, 5); + $createEAttribute(this$static.elkShapeEClass, 6); + this$static.elkLabelEClass = $createEClass(this$static, 4); + $createEReference(this$static.elkLabelEClass, 7); + $createEAttribute(this$static.elkLabelEClass, 8); + this$static.elkConnectableShapeEClass = $createEClass(this$static, 5); + $createEReference(this$static.elkConnectableShapeEClass, 7); + $createEReference(this$static.elkConnectableShapeEClass, 8); + this$static.elkNodeEClass = $createEClass(this$static, 6); + $createEReference(this$static.elkNodeEClass, 9); + $createEReference(this$static.elkNodeEClass, 10); + $createEReference(this$static.elkNodeEClass, 11); + $createEReference(this$static.elkNodeEClass, 12); + $createEAttribute(this$static.elkNodeEClass, 13); + this$static.elkPortEClass = $createEClass(this$static, 7); + $createEReference(this$static.elkPortEClass, 9); + this$static.elkEdgeEClass = $createEClass(this$static, 8); + $createEReference(this$static.elkEdgeEClass, 3); + $createEReference(this$static.elkEdgeEClass, 4); + $createEReference(this$static.elkEdgeEClass, 5); + $createEReference(this$static.elkEdgeEClass, 6); + $createEAttribute(this$static.elkEdgeEClass, 7); + $createEAttribute(this$static.elkEdgeEClass, 8); + $createEAttribute(this$static.elkEdgeEClass, 9); + $createEAttribute(this$static.elkEdgeEClass, 10); + this$static.elkBendPointEClass = $createEClass(this$static, 9); + $createEAttribute(this$static.elkBendPointEClass, 0); + $createEAttribute(this$static.elkBendPointEClass, 1); + this$static.elkEdgeSectionEClass = $createEClass(this$static, 10); + $createEAttribute(this$static.elkEdgeSectionEClass, 1); + $createEAttribute(this$static.elkEdgeSectionEClass, 2); + $createEAttribute(this$static.elkEdgeSectionEClass, 3); + $createEAttribute(this$static.elkEdgeSectionEClass, 4); + $createEReference(this$static.elkEdgeSectionEClass, 5); + $createEReference(this$static.elkEdgeSectionEClass, 6); + $createEReference(this$static.elkEdgeSectionEClass, 7); + $createEReference(this$static.elkEdgeSectionEClass, 8); + $createEReference(this$static.elkEdgeSectionEClass, 9); + $createEReference(this$static.elkEdgeSectionEClass, 10); + $createEAttribute(this$static.elkEdgeSectionEClass, 11); + this$static.elkPropertyToValueMapEntryEClass = $createEClass(this$static, 11); + $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 0); + $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 1); + this$static.iPropertyEDataType = $createEDataType(this$static, 12); + this$static.propertyValueEDataType = $createEDataType(this$static, 13); +} + +function $initializePackageContents(this$static){ + var eGenericType, eGenericType0, eGenericType1, eGenericType2, eGenericType3, eGenericType4, eGenericType5, eGenericType6, g1, g2, g3, msgs, msgs0, op, t1; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'graph'); + $setNsPrefix(this$static, 'graph'); + $setNsURI(this$static, 'http://www.eclipse.org/elk/ElkGraph'); + $addETypeParameter(this$static.iPropertyEDataType, 'T'); + $add_21($getESuperTypes(this$static.eMapPropertyHolderEClass), this$static.iPropertyHolderEClass); + $add_21($getESuperTypes(this$static.elkGraphElementEClass), this$static.eMapPropertyHolderEClass); + $add_21($getESuperTypes(this$static.elkShapeEClass), this$static.elkGraphElementEClass); + $add_21($getESuperTypes(this$static.elkLabelEClass), this$static.elkShapeEClass); + $add_21($getESuperTypes(this$static.elkConnectableShapeEClass), this$static.elkShapeEClass); + $add_21($getESuperTypes(this$static.elkNodeEClass), this$static.elkConnectableShapeEClass); + $add_21($getESuperTypes(this$static.elkPortEClass), this$static.elkConnectableShapeEClass); + $add_21($getESuperTypes(this$static.elkEdgeEClass), this$static.elkGraphElementEClass); + $add_21($getESuperTypes(this$static.elkEdgeSectionEClass), this$static.eMapPropertyHolderEClass); + $initEClass(this$static.iPropertyHolderEClass, Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit, 'IPropertyHolder', true, true, false); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'setProperty'); + t1 = $addETypeParameter_0(op); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType0 = (eGenericType1 = new EGenericTypeImpl , eGenericType1) , eGenericType0); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + g3 = $createEGenericType_0(t1); + $setELowerBound(g2, g3); + $addEParameter_0(op, g1, 'property'); + g1 = $createEGenericType_0(t1); + $addEParameter_0(op, g1, 'value'); + op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getProperty'); + t1 = $addETypeParameter_0(op); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = $createEGenericType_0(t1); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'property'); + g1 = $createEGenericType_0(t1); + msgs0 = $setEGenericType(op, g1, null); + !!msgs0 && msgs0.dispatch_0(); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.ecorePackage.eBooleanEDataType, 'hasProperty'); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType2 = (eGenericType3 = new EGenericTypeImpl , eGenericType3) , eGenericType2); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'property'); + op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'copyProperties'); + $addEParameter(op, this$static.iPropertyHolderEClass, 'source'); + op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getAllProperties'); + g1 = $createEGenericType(this$static.ecorePackage.eMapEDataType); + g2 = $createEGenericType(this$static.iPropertyEDataType); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + g3 = (eGenericType4 = (eGenericType5 = new EGenericTypeImpl , eGenericType5) , eGenericType4); + $add_21((!g2.eTypeArguments && (g2.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g2, 1)) , g2.eTypeArguments), g3); + g2 = $createEGenericType(this$static.ecorePackage.eJavaObjectEDataType); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs = $setEGenericType(op, g1, null); + !!msgs && msgs.dispatch_0(); + $initEClass(this$static.eMapPropertyHolderEClass, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, 'EMapPropertyHolder', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eMapPropertyHolderEClass), 0), 18), this$static.elkPropertyToValueMapEntryEClass, null, 'properties', 0, -1, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, false, false, true, true, false, false, false); + $initEClass(this$static.elkGraphElementEClass, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, 'ElkGraphElement', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), this$static.elkLabelEClass, castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), 'labels', 0, -1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.elkShapeEClass, Lorg_eclipse_elk_graph_ElkShape_2_classLit, 'ElkShape', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'height', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'width', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkShapeEClass, null, 'setDimensions'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'width'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'height'); + op = $addEOperation(this$static.elkShapeEClass, null, 'setLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkLabelEClass, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, 'ElkLabel', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), this$static.elkGraphElementEClass, castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'text', '', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.elkConnectableShapeEClass, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, 'ElkConnectableShape', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), 'outgoingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), 'incomingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.elkNodeEClass, Lorg_eclipse_elk_graph_ElkNode_2_classLit, 'ElkNode', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), this$static.elkPortEClass, castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), 'ports', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), 'children', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), 'containedEdges', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, true, true, false, false, true, true); + $initEClass(this$static.elkPortEClass, Lorg_eclipse_elk_graph_ElkPort_2_classLit, 'ElkPort', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkPort_2_classLit, false, false, true, false, false, false, false); + $initEClass(this$static.elkEdgeEClass, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, 'ElkEdge', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), 'containingNode', 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), 'sources', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), 'targets', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), 'sections', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hyperedge', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 5), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 6), 34), this$static.ecorePackage.eBooleanEDataType, 'selfloop', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 7), 34), this$static.ecorePackage.eBooleanEDataType, 'connected', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); + $initEClass(this$static.elkBendPointEClass, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, 'ElkBendPoint', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkBendPointEClass, null, 'set'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkEdgeSectionEClass, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, 'ElkEdgeSection', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'startX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'startY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'endX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'endY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 4), 18), this$static.elkBendPointEClass, null, 'bendPoints', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 6), 18), this$static.elkConnectableShapeEClass, null, 'outgoingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 7), 18), this$static.elkConnectableShapeEClass, null, 'incomingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), 'outgoingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), 'incomingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 10), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); + op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setStartLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setEndLocation'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); + $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); + $initEClass(this$static.elkPropertyToValueMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'ElkPropertyToValueMapEntry', false, false, false); + g1 = $createEGenericType(this$static.iPropertyEDataType); + g2 = (eGenericType6 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType6); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 0), 34), g1, 'key', Ljava_util_Map$Entry_2_classLit, false, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 1), 34), this$static.propertyValueEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEDataType(this$static.iPropertyEDataType, Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 'IProperty', true); + $initEDataType(this$static.propertyValueEDataType, Ljava_lang_Object_2_classLit, 'PropertyValue', true); + $createResource(this$static, 'http://www.eclipse.org/elk/ElkGraph'); +} + +function ElkGraphPackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/elk/ElkGraph', ($clinit_ElkGraphFactory() , eINSTANCE)); + this.iPropertyHolderEClass = null; + this.eMapPropertyHolderEClass = null; + this.elkGraphElementEClass = null; + this.elkShapeEClass = null; + this.elkLabelEClass = null; + this.elkConnectableShapeEClass = null; + this.elkNodeEClass = null; + this.elkPortEClass = null; + this.elkEdgeEClass = null; + this.elkBendPointEClass = null; + this.elkEdgeSectionEClass = null; + this.elkPropertyToValueMapEntryEClass = null; + this.iPropertyEDataType = null; + this.propertyValueEDataType = null; + this.isCreated = false; + this.isInitialized = false; +} + +function init_2(){ + var theElkGraphPackage; + if (isInited) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2016); + theElkGraphPackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 555)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph'):new ElkGraphPackageImpl, 555); + isInited = true; + $createPackageContents(theElkGraphPackage); + $initializePackageContents(theElkGraphPackage); + $freeze_0(theElkGraphPackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph', theElkGraphPackage); + return theElkGraphPackage; +} + +defineClass(555, 179, {105:1, 2016:1, 555:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, ElkGraphPackageImpl); +_.isCreated = false; +_.isInitialized = false; +var isInited = false; +var Lorg_eclipse_elk_graph_impl_ElkGraphPackageImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphPackageImpl', 555); +function $basicSetParent_0(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newParent, 49), 7, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_2(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 7) { + return this$static.eContainer.eInverseRemove(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_LABEL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getParent_1(this$static){ + if (this$static.eFlags_0 >> 16 != 7) + return null; + return castTo(this$static.eContainer, 160); +} + +function $setParent_1(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 7 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_22(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = castTo(newParent, 49).eInverseAdd(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs)); + msgs = $basicSetParent_0(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, newParent, newParent)); +} + +function $setText(this$static, newText){ + var oldText; + oldText = this$static.text_0; + this$static.text_0 = newText; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldText, this$static.text_0)); +} + +function $toString_22(this$static){ + var builder; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkLabel'); + !this$static.text_0 || $append_11($append_11((builder.string += ' "' , builder), this$static.text_0), '"'); + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkLabelImpl(){ +} + +defineClass(354, 724, {105:1, 413:1, 160:1, 137:1, 470:1, 354:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkLabelImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_3(msgs){ + return $eBasicRemoveFromContainerFeature_2(this, msgs); +} +; +_.eGet = function eGet_13(featureID, resolve, coreType){ + switch (featureID) { + case 7: + return $getParent_1(this); + case 8: + return this.text_0; + } + return $eGet_5(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_8(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 7: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_0(this, castTo(otherEnd, 160), msgs); + } + return $eInverseAdd_0(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_9(otherEnd, featureID, msgs){ + if (featureID == 7) { + return $basicSetParent_0(this, null, msgs); + } + return $eInverseRemove_1(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_12(featureID){ + switch (featureID) { + case 7: + return !!$getParent_1(this); + case 8: + return !$equals_5('', this.text_0); + } + return $eIsSet_3(this, featureID); +} +; +_.eSet = function eSet_11(featureID, newValue){ + switch (featureID) { + case 7: + $setParent_1(this, castTo(newValue, 160)); + return; + case 8: + $setText(this, castToString(newValue)); + return; + } + $eSet_3(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_11(){ + return $clinit_ElkGraphPackage$Literals() , ELK_LABEL; +} +; +_.eUnset = function eUnset_11(featureID){ + switch (featureID) { + case 7: + $setParent_1(this, null); + return; + case 8: + $setText(this, ''); + return; + } + $eUnset_3(this, featureID); +} +; +_.toString_0 = function toString_130(){ + return $toString_22(this); +} +; +_.text_0 = ''; +var Lorg_eclipse_elk_graph_impl_ElkLabelImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkLabelImpl', 354); +function $basicSetParent_1(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 11, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_3(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 11) { + return this$static.eContainer.eInverseRemove(this$static, 10, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_NODE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getChildren(this$static){ + !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)); + return this$static.children; +} + +function $getContainedEdges(this$static){ + !this$static.containedEdges && (this$static.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 12, 3)); + return this$static.containedEdges; +} + +function $getParent_2(this$static){ + if (this$static.eFlags_0 >> 16 != 11) + return null; + return castTo(this$static.eContainer, 33); +} + +function $getPorts_3(this$static){ + !this$static.ports && (this$static.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this$static, 9, 9)); + return this$static.ports; +} + +function $isHierarchical_0(this$static){ + return !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)) , this$static.children.size_0 > 0; +} + +function $setParent_2(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 11 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_23(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 10, msgs)); + msgs = $basicSetParent_1(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, newParent, newParent)); +} + +function $toString_23(this$static){ + var builder, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkNode'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkNodeImpl(){ + ElkConnectableShapeImpl.call(this); +} + +defineClass(239, 725, {105:1, 413:1, 82:1, 160:1, 33:1, 470:1, 239:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkNodeImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_4(msgs){ + return $eBasicRemoveFromContainerFeature_3(this, msgs); +} +; +_.eGet = function eGet_14(featureID, resolve, coreType){ + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , this.ports; + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children; + case 11: + return $getParent_2(this); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , this.containedEdges; + case 13: + return $clinit_Boolean() , !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0?true:false; + } + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_9(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicAdd_0(this.ports, otherEnd, msgs); + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicAdd_0(this.children, otherEnd, msgs); + case 11: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_1(this, castTo(otherEnd, 33), msgs); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicAdd_0(this.containedEdges, otherEnd, msgs); + } + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_10(otherEnd, featureID, msgs){ + switch (featureID) { + case 9: + return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicRemove_0(this.ports, otherEnd, msgs); + case 10: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicRemove_0(this.children, otherEnd, msgs); + case 11: + return $basicSetParent_1(this, null, msgs); + case 12: + return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicRemove_0(this.containedEdges, otherEnd, msgs); + } + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_13(featureID){ + switch (featureID) { + case 9: + return !!this.ports && this.ports.size_0 != 0; + case 10: + return !!this.children && this.children.size_0 != 0; + case 11: + return !!$getParent_2(this); + case 12: + return !!this.containedEdges && this.containedEdges.size_0 != 0; + case 13: + return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0; + } + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_12(featureID, newValue){ + switch (featureID) { + case 9: + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $clear_13(this.ports); + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $addAll_9(this.ports, castTo(newValue, 14)); + return; + case 10: + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $clear_13(this.children); + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $addAll_9(this.children, castTo(newValue, 14)); + return; + case 11: + $setParent_2(this, castTo(newValue, 33)); + return; + case 12: + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $clear_13(this.containedEdges); + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $addAll_9(this.containedEdges, castTo(newValue, 14)); + return; + } + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_12(){ + return $clinit_ElkGraphPackage$Literals() , ELK_NODE; +} +; +_.eUnset = function eUnset_12(featureID){ + switch (featureID) { + case 9: + !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); + $clear_13(this.ports); + return; + case 10: + !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); + $clear_13(this.children); + return; + case 11: + $setParent_2(this, null); + return; + case 12: + !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); + $clear_13(this.containedEdges); + return; + } + $eUnset_4(this, featureID); +} +; +_.toString_0 = function toString_131(){ + return $toString_23(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkNodeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkNodeImpl', 239); +function $basicSetParent_2(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, newParent, 9, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_4(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 9) { + return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_PORT):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getParent_3(this$static){ + if (this$static.eFlags_0 >> 16 != 9) + return null; + return castTo(this$static.eContainer, 33); +} + +function $setParent_3(this$static, newParent){ + var eContainerFeatureID, msgs; + if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 9 && !!newParent) { + if (isAncestor(this$static, newParent)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_24(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newParent && (msgs = $eInverseAdd(newParent, this$static, 9, msgs)); + msgs = $basicSetParent_2(this$static, newParent, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 9, newParent, newParent)); +} + +function $toString_24(this$static){ + var builder, id_0, text_0; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_18(this$static); + builder = new StringBuilder_1('ElkPort'); + id_0 = this$static.identifier; + if (!id_0) { + !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); + if (this$static.labels.size_0 > 0) { + text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; + !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); + } + } + else { + $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); + } + $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); + return builder.string; +} + +function ElkPortImpl(){ + ElkConnectableShapeImpl.call(this); +} + +defineClass(186, 725, {105:1, 413:1, 82:1, 160:1, 118:1, 470:1, 186:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPortImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_5(msgs){ + return $eBasicRemoveFromContainerFeature_4(this, msgs); +} +; +_.eGet = function eGet_15(featureID, resolve, coreType){ + if (featureID == 9) { + return $getParent_3(this); + } + return $eGet_6(this, featureID, resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_10(otherEnd, featureID, msgs){ + var eContainerFeatureID; + switch (featureID) { + case 9: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetParent_2(this, castTo(otherEnd, 33), msgs); + } + return $eInverseAdd_1(this, otherEnd, featureID, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_11(otherEnd, featureID, msgs){ + if (featureID == 9) { + return $basicSetParent_2(this, null, msgs); + } + return $eInverseRemove_2(this, otherEnd, featureID, msgs); +} +; +_.eIsSet = function eIsSet_14(featureID){ + if (featureID == 9) { + return !!$getParent_3(this); + } + return $eIsSet_4(this, featureID); +} +; +_.eSet = function eSet_13(featureID, newValue){ + switch (featureID) { + case 9: + $setParent_3(this, castTo(newValue, 33)); + return; + } + $eSet_4(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_13(){ + return $clinit_ElkGraphPackage$Literals() , ELK_PORT; +} +; +_.eUnset = function eUnset_13(featureID){ + switch (featureID) { + case 9: + $setParent_3(this, null); + return; + } + $eUnset_4(this, featureID); +} +; +_.toString_0 = function toString_132(){ + return $toString_24(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkPortImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPortImpl', 186); +var Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit = createForInterface('org.eclipse.emf.common.util', 'BasicEMap/Entry'); +function $setTypedKey(this$static, newKey){ + var oldKey; + oldKey = this$static.key; + this$static.key = newKey; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); +} + +function $setTypedValue(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); +} + +function ElkPropertyToValueMapEntryImpl(){ +} + +defineClass(1092, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPropertyToValueMapEntryImpl); +_.equals_0 = function equals_183(other){ + return this === other; +} +; +_.getKey = function getKey_8(){ + return this.key; +} +; +_.hashCode_1 = function hashCode_72(){ + return getHashCode_0(this); +} +; +_.setKey = function setKey(key){ + $setTypedKey(this, castTo(key, 146)); +} +; +_.eGet = function eGet_16(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.key; + case 1: + return this.value_0; + } + return $eGet(this, featureID, resolve, coreType); +} +; +_.eIsSet = function eIsSet_15(featureID){ + switch (featureID) { + case 0: + return !!this.key; + case 1: + return this.value_0 != null; + } + return $eIsSet(this, featureID); +} +; +_.eSet = function eSet_14(featureID, newValue){ + switch (featureID) { + case 0: + $setTypedKey(this, castTo(newValue, 146)); + return; + case 1: + $setTypedValue(this, newValue); + return; + } + $eSet(this, featureID, newValue); +} +; +_.eStaticClass = function eStaticClass_14(){ + return $clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY; +} +; +_.eUnset = function eUnset_14(featureID){ + switch (featureID) { + case 0: + $setTypedKey(this, null); + return; + case 1: + $setTypedValue(this, null); + return; + } + $eUnset(this, featureID); +} +; +_.getHash = function getHash(){ + var theKey; + if (this.hash == -1) { + theKey = this.key; + this.hash = !theKey?0:hashCode__I__devirtual$(theKey); + } + return this.hash; +} +; +_.getValue = function getValue_10(){ + return this.value_0; +} +; +_.setHash = function setHash(hash){ + this.hash = hash; +} +; +_.setValue = function setValue_11(value_0){ + var oldValue; + oldValue = this.value_0; + $setTypedValue(this, value_0); + return oldValue; +} +; +_.toString_0 = function toString_133(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuilder; + $append_11($append_11($append_11(result, this.key?this.key.getId():'null'), ' -> '), valueOf_7(this.value_0)); + return result.string; +} +; +_.hash = -1; +_.value_0 = null; +var Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPropertyToValueMapEntryImpl', 1092); +function $addJsonArr(arr, jv){ + var size_0; + size_0 = arr.jsArray.length; + $get_8(arr, size_0); + $set0(arr, size_0, jv); +} + +function $addJsonArr_0(arr, o){ + var _doubleValue, _matched; + _matched = false; + if (instanceOfString(o)) { + _matched = true; + $addJsonArr(arr, new JSONString(castToString(o))); + } + if (!_matched) { + if (instanceOf(o, 236)) { + _matched = true; + $addJsonArr(arr, (_doubleValue = doubleValue__D__devirtual$(castTo(o, 236)) , new JSONNumber(_doubleValue))); + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } +} + +function $addJsonObj(o, element, n){ + var _doubleValue, _jSONNumber; + _doubleValue = doubleValue__D__devirtual$(n); + _jSONNumber = new JSONNumber(_doubleValue); + $put_5(o, element, _jSONNumber); +} + +function $addJsonObj_0(this$static, o, element, obj){ + var _matched; + _matched = false; + if (instanceOfString(obj)) { + _matched = true; + $addJsonObj_1(o, element, castToString(obj)); + } + if (!_matched) { + if (instanceOfBoolean(obj)) { + _matched = true; + $addJsonObj_0(this$static, o, element, obj); + } + } + if (!_matched) { + if (instanceOf(obj, 236)) { + _matched = true; + $addJsonObj(o, element, castTo(obj, 236)); + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } +} + +function $addJsonObj_1(o, element, s){ + var _jSONString; + _jSONString = new JSONString(s); + $put_5(o, element, _jSONString); +} + +function $asId(id_0){ + var _isInt, _matched; + _matched = false; + if (instanceOf(id_0, 204)) { + _matched = true; + return castTo(id_0, 204).value_0; + } + if (!_matched) { + if (instanceOf(id_0, 258)) { + _isInt = castTo(id_0, 258).value_0 % 1 == 0; + if (_isInt) { + _matched = true; + return valueOf_4($intValue(castTo(id_0, 258).value_0)); + } + } + } + throw toJs(new JsonImportException("Id must be a string or an integer: '" + id_0 + "'.")); +} + +function $getId(o){ + var _containsKey, _not, _xblockexpression; + _xblockexpression = null; + _containsKey = 'id' in o.jsObject; + _not = !_containsKey; + if (_not) { + throw toJs(new JsonImportException('Every element must have an id.')); + } + _xblockexpression = $asId($get_9(o, 'id')); + return _xblockexpression; +} + +function $optDouble(o, element){ + var _containsKey, num; + _containsKey = element in o.jsObject; + if (_containsKey) { + num = $get_9(o, element).isNumber(); + if (num) { + return num.value_0; + } + } + return null; +} + +function $optJSONArray(arr, element){ + var _get, _isArray; + _get = $get_9(arr, element); + _isArray = null; + !!_get && (_isArray = _get.isArray_0()); + return _isArray; +} + +function $optJSONObject(arr, i){ + var _get, _isObject; + _get = $get_8(arr, i); + _isObject = null; + !!_get && (_isObject = _get.isObject()); + return _isObject; +} + +function $optJSONObject_0(o, element){ + var _get, _isObject; + _get = $get_9(o, element); + _isObject = null; + !!_get && (_isObject = _get.isObject()); + return _isObject; +} + +function $optString(o, element){ + var _get, _stringVal; + _get = $get_9(o, element); + _stringVal = null; + !!_get && (_stringVal = $stringVal(_get)); + return _stringVal; +} + +function $stringVal(v){ + var _matched, _switchResult; + _switchResult = null; + _matched = false; + if (instanceOf(v, 204)) { + _matched = true; + _switchResult = castTo(v, 204).value_0; + } + if (!_matched) { + if (instanceOf(v, 258)) { + _matched = true; + _switchResult = '' + castTo(v, 258).value_0; + } + } + if (!_matched) { + if (instanceOf(v, 483)) { + _matched = true; + _switchResult = '' + castTo(v, 483).value_0; + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } + return _switchResult; +} + +function JsonAdapter(){ +} + +defineClass(984, 1, {}, JsonAdapter); +var Lorg_eclipse_elk_graph_json_JsonAdapter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonAdapter', 984); +function JsonImportException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(210, 60, $intern_43, JsonImportException); +var Lorg_eclipse_elk_graph_json_JsonImportException_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImportException', 210); +function $_idByElement(this$static, section){ + return $get_5($inverse(this$static.edgeSectionIdMap), section); +} + +function $_idByElement_0(this$static, node){ + return $get_5($inverse(this$static.nodeIdMap), node); +} + +function $_idByElement_1(this$static, port){ + return $get_5($inverse(this$static.portIdMap), port); +} + +function $_transferLayoutInt(this$static, edge){ + var _function, _function_1, _hasProperty, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, edgeId, jps, jsonJPs, jsonObj, sections; + jsonObj = castTo($get_10(this$static.edgeJsonMap, edge), 183); + if (!jsonObj) { + throw toJs(new JsonImportException('Edge did not exist in input.')); + } + edgeId = $getId(jsonObj); + _isNullOrEmpty = isNullOrEmpty((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); + _not = !_isNullOrEmpty; + if (_not) { + sections = new JSONArray; + _function = new JsonImporter$lambda$36$Type(this$static, edgeId, sections); + forEach_42((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), _function); + $put_5(jsonObj, 'sections', sections); + } + _hasProperty = $hasProperty_0(edge, ($clinit_CoreOptions() , JUNCTION_POINTS_0)); + if (_hasProperty) { + jps = castTo($getProperty_0(edge, JUNCTION_POINTS_0), 74); + _isNullOrEmpty_1 = !jps || isEmpty_35(jps); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + jsonJPs = new JSONArray; + _function_1 = new JsonImporter$lambda$40$Type(jsonJPs); + $forEach_0(jps, _function_1); + $put_5(jsonObj, 'junctionPoints', jsonJPs); + } + } + $addJsonObj_1(jsonObj, 'container', $getContainingNode(edge).identifier); + return null; +} + +function $_transferLayoutInt_0(this$static, label_0){ + var jsonObj; + jsonObj = $get_10(this$static.labelJsonMap, label_0); + $transferShapeLayout(label_0, jsonObj); + return null; +} + +function $_transferLayoutInt_1(this$static, node){ + var jsonObj; + jsonObj = $get_4(this$static.nodeJsonMap, node); + if (jsonObj == null) { + throw toJs(new JsonImportException('Node did not exist in input.')); + } + $transferShapeLayout(node, jsonObj); + return null; +} + +function $_transferLayoutInt_2(this$static, port){ + var jsonObj; + jsonObj = $get_10(this$static.portJsonMap, port); + if (jsonObj == null) { + throw toJs(new JsonImportException('Port did not exist in input.')); + } + $transferShapeLayout(port, jsonObj); + return null; +} + +function $idByElement(this$static, node){ + if (instanceOf(node, 239)) { + return $_idByElement_0(this$static, castTo(node, 33)); + } + else if (instanceOf(node, 186)) { + return $_idByElement_1(this$static, castTo(node, 118)); + } + else if (instanceOf(node, 439)) { + return $_idByElement(this$static, castTo(node, 202)); + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); + } +} + +function $lambda$0_13(this$static, parent_1, children_1){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (children_1) { + _sizeJsonArr = children_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(children_1, i.value_0); + !!_optJSONObject && $transformNode_0(this$static, _optJSONObject, parent_1); + } + } +} + +function $lambda$1_7(this$static, node_1, edges_1){ + var _doubleDotLessThan, _sizeJsonArr, edge, i, i$iterator; + if (edges_1) { + _sizeJsonArr = edges_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + edge = $optJSONObject(edges_1, i.value_0); + 'sources' in edge.jsObject || 'targets' in edge.jsObject?$transformEdge_1(this$static, edge, node_1):$transformPrimitiveEdge(this$static, edge, node_1); + updateContainment(castTo($get_10(this$static.edgeIdMap, $getId(edge)), 79)); + } + } +} + +function $lambda$10_0(section_1, bendPoint_1){ + createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); +} + +function $lambda$11(this$static, edge_1, sources_1){ + var _doubleDotLessThan, _sizeJsonArr, _sources, i, i$iterator, sourceElement; + if (sources_1) { + _sizeJsonArr = sources_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + sourceElement = $shapeById(this$static, $asId($get_8(sources_1, i.value_0))); + if (sourceElement) { + _sources = (!edge_1.sources && (edge_1.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 4, 7)) , edge_1.sources); + $add_21(_sources, sourceElement); + } + } + } +} + +function $lambda$12_0(this$static, edge_1, targets_1){ + var _doubleDotLessThan, _sizeJsonArr, _targets, i, i$iterator, targetElement; + if (targets_1) { + _sizeJsonArr = targets_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + targetElement = $shapeById(this$static, $asId($get_8(targets_1, i.value_0))); + if (targetElement) { + _targets = (!edge_1.targets && (edge_1.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 5, 8)) , edge_1.targets); + $add_21(_targets, targetElement); + } + } + } +} + +function $lambda$13(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, sections_3){ + var _doubleDotLessThan, _function_1, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (sections_3) { + _sizeJsonArr = sections_3.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(sections_3, i.value_0); + _function_1 = new JsonImporter$lambda$14$Type(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3); + $lambda$14_0(_function_1.$$outer_0, _function_1.edge_1, _function_1.incomingSectionIdentifiers_2, _function_1.outgoingSectionIdentifiers_3, _optJSONObject); + } + } +} + +function $lambda$14_0(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, jsonSection_3){ + var _function_2, _function_3, _function_4, _function_5, _optJSONArray_1, _optJSONArray_2, _optString, _optString_1, elkSection, jsonObj, _optJSONObject, _function, _optJSONObject_1, _function_1, _optJSONArray, _function_2_0; + elkSection = $register_3(this$static, createEdgeSection(edge_1), jsonSection_3); + $setIdentifier_0(elkSection, $optString(jsonSection_3, 'id')); + _xblockexpression = null; + jsonObj = jsonSection_3; + _optJSONObject = $optJSONObject_0(jsonObj, 'startPoint'); + _function = new JsonImporter$lambda$19$Type(elkSection); + $lambda$19_0(_function.section_1, _optJSONObject); + _optJSONObject_1 = $optJSONObject_0(jsonObj, 'endPoint'); + _function_1 = new JsonImporter$lambda$22$Type(elkSection); + $lambda$22_0(_function_1.section_1, _optJSONObject_1); + _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); + _function_2_0 = new JsonImporter$lambda$25$Type(elkSection); + $lambda$25_0(_function_2_0.section_1, _optJSONArray); + _optString = $optString(jsonSection_3, 'incomingShape'); + _function_2 = new JsonImporter$lambda$15$Type(this$static, elkSection); + $lambda$15(_function_2.$$outer_0, _function_2.elkSection_1, _optString); + _optString_1 = $optString(jsonSection_3, 'outgoingShape'); + _function_3 = new JsonImporter$lambda$16$Type(this$static, elkSection); + $lambda$16(_function_3.$$outer_0, _function_3.elkSection_1, _optString_1); + _optJSONArray_1 = $optJSONArray(jsonSection_3, 'incomingSections'); + _function_4 = new JsonImporter$lambda$17$Type(incomingSectionIdentifiers_2, elkSection); + $lambda$17(_function_4.incomingSectionIdentifiers_1, _function_4.elkSection_2, _optJSONArray_1); + _optJSONArray_2 = $optJSONArray(jsonSection_3, 'outgoingSections'); + _function_5 = new JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_3, elkSection); + $lambda$18_0(_function_5.outgoingSectionIdentifiers_1, _function_5.elkSection_2, _optJSONArray_2); +} + +function $lambda$15(this$static, elkSection_1, jsonShapeId_1){ + jsonShapeId_1 != null && $setIncomingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); +} + +function $lambda$16(this$static, elkSection_1, jsonShapeId_1){ + jsonShapeId_1 != null && $setOutgoingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); +} + +function $lambda$17(incomingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ + var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; + if (jsonSectionIds_2) { + _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; + _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); + for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { + j = castTo(j$iterator.next_1(), 19); + $put(incomingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); + } + } +} + +function $lambda$18_0(outgoingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ + var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; + if (jsonSectionIds_2) { + _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; + _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); + for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { + j = castTo(j$iterator.next_1(), 19); + $put(outgoingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); + } + } +} + +function $lambda$19_0(section_1, startPoint_1){ + var _function_1, _function_2, _optDouble, _optDouble_1; + if (startPoint_1) { + _optDouble = $optDouble(startPoint_1, 'x'); + _function_1 = new JsonImporter$lambda$20$Type(section_1); + $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(startPoint_1, 'y'); + _function_2 = new JsonImporter$lambda$21$Type(section_1); + $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } + else { + throw toJs(new JsonImportException('All edge sections need a start point.')); + } +} + +function $lambda$2_5(this$static, children_0){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; + if (children_0) { + _sizeJsonArr = children_0.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(children_0, i.value_0); + !!_optJSONObject && $transformEdges_2(this$static, _optJSONObject); + } + } +} + +function $lambda$22_0(section_1, endPoint_1){ + var _function_2, _function_3, _optDouble, _optDouble_1; + if (endPoint_1) { + _optDouble = $optDouble(endPoint_1, 'x'); + _function_2 = new JsonImporter$lambda$23$Type(section_1); + $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(endPoint_1, 'y'); + _function_3 = new JsonImporter$lambda$24$Type(section_1); + $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } + else { + throw toJs(new JsonImportException('All edge sections need an end point.')); + } +} + +function $lambda$25_0(section_1, bendPoints_1){ + var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; + if (bendPoints_1) { + _sizeJsonArr = bendPoints_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); + _function_3 = new JsonImporter$lambda$26$Type(section_1); + $lambda$26_0(_function_3.section_1, _optJSONObject_2); + } + } +} + +function $lambda$26_0(section_1, bendPoint_1){ + createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); +} + +function $lambda$27(opts_1, layoutData_2, k_2){ + var _jsonObj, _stringVal, value_0; + _jsonObj = $get_9(opts_1, k_2); + _stringVal = null; + !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); + value_0 = _stringVal; + $setOption(layoutData_2, k_2, value_0); +} + +function $lambda$28(opts_1, individualSpacings_2, k_2){ + var _jsonObj, _stringVal, value_0; + _jsonObj = $get_9(opts_1, k_2); + _stringVal = null; + !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); + value_0 = _stringVal; + $setOption(individualSpacings_2, k_2, value_0); +} + +function $lambda$29_0(this$static, element_1, labels_1){ + var _doubleDotLessThan, _hasJsonObj, _sizeJsonArr, i, i$iterator, jsonLabel, label_0; + if (labels_1) { + _sizeJsonArr = labels_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + jsonLabel = $optJSONObject(labels_1, i.value_0); + if (jsonLabel) { + label_0 = createLabel($optString(jsonLabel, 'text'), element_1); + $put_6(this$static.labelJsonMap, label_0, jsonLabel); + _hasJsonObj = 'id' in jsonLabel.jsObject; + _hasJsonObj && $setIdentifier(label_0, $optString(jsonLabel, 'id')); + $transformProperties(jsonLabel, label_0); + $transformShapeLayout(jsonLabel, label_0); + } + } + } +} + +function $lambda$3_4(section_1, srcPnt_1){ + var _function_1, _function_2, _optDouble, _optDouble_1; + if (srcPnt_1) { + _optDouble = $optDouble(srcPnt_1, 'x'); + _function_1 = new JsonImporter$lambda$4$Type(section_1); + $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(srcPnt_1, 'y'); + _function_2 = new JsonImporter$lambda$5$Type(section_1); + $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } +} + +function $lambda$30(this$static, parent_1, ports_1){ + var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator, port, port_0, elkPort; + if (ports_1) { + _sizeJsonArr = ports_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject = $optJSONObject(ports_1, i.value_0); + !!_optJSONObject && (_xblockexpression = null , port = $register_5(this$static, (port_0 = ($clinit_ElkGraphFactory() , elkPort = new ElkPortImpl , elkPort) , !!parent_1 && $setParent_3(port_0, parent_1) , port_0), _optJSONObject) , $setIdentifier(port, $optString(_optJSONObject, 'id')) , $transformProperties(_optJSONObject, port) , $transformShapeLayout(_optJSONObject, port) , $transformLabels(this$static, _optJSONObject, port)); + } + } +} + +function $lambda$31(shape_1, it_1){ + $setX_2(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$32(shape_1, it_1){ + $setY_3(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$33(shape_1, it_1){ + $setWidth_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$34(shape_1, it_1){ + $setHeight_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); +} + +function $lambda$36(this$static, edgeId_1, sections_2, elkSection_2, i_3){ + var _function_1, _function_2, _function_3, _incomingShape, _isEmpty, _isEmpty_1, _isNullOrEmpty_1, _jSONString, _jsonObject, _not_1, _not_2, _not_3, _outgoingShape, _plus, _plus_1, _tripleNotEquals, _tripleNotEquals_1, bendPoints, endPoint, incomingSections, jsonSection, maybeSection, outgoingSections, startPoint; + maybeSection = $get_10(this$static.edgeSectionJsonMap, elkSection_2); + if (maybeSection == null) { + maybeSection = new JSONObject; + _jsonObject = castTo(maybeSection, 183); + _plus = edgeId_1 + '_s'; + _plus_1 = _plus + i_3; + _jSONString = new JSONString(_plus_1); + $put_5(_jsonObject, 'id', _jSONString); + } + jsonSection = castTo(maybeSection, 183); + $addJsonArr(sections_2, jsonSection); + startPoint = new JSONObject; + $addJsonObj(startPoint, 'x', elkSection_2.startX); + $addJsonObj(startPoint, 'y', elkSection_2.startY); + $put_5(jsonSection, 'startPoint', startPoint); + endPoint = new JSONObject; + $addJsonObj(endPoint, 'x', elkSection_2.endX); + $addJsonObj(endPoint, 'y', elkSection_2.endY); + $put_5(jsonSection, 'endPoint', endPoint); + _isNullOrEmpty_1 = isNullOrEmpty((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints)); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + bendPoints = new JSONArray; + _function_1 = new JsonImporter$lambda$37$Type(bendPoints); + $forEach_0((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints), _function_1); + $put_5(jsonSection, 'bendPoints', bendPoints); + } + _incomingShape = $getIncomingShape(elkSection_2); + _tripleNotEquals = !!_incomingShape; + _tripleNotEquals && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'incomingShape', $idByElement(this$static, $getIncomingShape(elkSection_2))); + _outgoingShape = $getOutgoingShape(elkSection_2); + _tripleNotEquals_1 = !!_outgoingShape; + _tripleNotEquals_1 && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'outgoingShape', $idByElement(this$static, $getOutgoingShape(elkSection_2))); + _isEmpty = (!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections).size_0 == 0; + _not_2 = !_isEmpty; + if (_not_2) { + incomingSections = new JSONArray; + _function_2 = new JsonImporter$lambda$38$Type(this$static, incomingSections); + $forEach_0((!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections), _function_2); + $put_5(jsonSection, 'incomingSections', incomingSections); + } + _isEmpty_1 = (!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections).size_0 == 0; + _not_3 = !_isEmpty_1; + if (_not_3) { + outgoingSections = new JSONArray; + _function_3 = new JsonImporter$lambda$39$Type(this$static, outgoingSections); + $forEach_0((!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections), _function_3); + $put_5(jsonSection, 'outgoingSections', outgoingSections); + } +} + +function $lambda$37(bendPoints_1, pnt_1){ + var jsonPnt; + jsonPnt = new JSONObject; + $addJsonObj(jsonPnt, 'x', pnt_1.x_0); + $addJsonObj(jsonPnt, 'y', pnt_1.y_0); + $addJsonArr(bendPoints_1, jsonPnt); +} + +function $lambda$38(this$static, incomingSections_1, sec_1){ + $addJsonArr_0(incomingSections_1, $idByElement(this$static, sec_1)); +} + +function $lambda$39(this$static, outgoingSections_1, sec_1){ + $addJsonArr_0(outgoingSections_1, $idByElement(this$static, sec_1)); +} + +function $lambda$40(jsonJPs_1, jp_1){ + var jsonPnt; + jsonPnt = new JSONObject; + $addJsonObj(jsonPnt, 'x', jp_1.x_0); + $addJsonObj(jsonPnt, 'y', jp_1.y_0); + $addJsonArr(jsonJPs_1, jsonPnt); +} + +function $lambda$6_0(section_1, tgtPnt_1){ + var _function_2, _function_3, _optDouble, _optDouble_1; + if (tgtPnt_1) { + _optDouble = $optDouble(tgtPnt_1, 'x'); + _function_2 = new JsonImporter$lambda$7$Type(section_1); + $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); + _optDouble_1 = $optDouble(tgtPnt_1, 'y'); + _function_3 = new JsonImporter$lambda$8$Type(section_1); + $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); + } +} + +function $lambda$9_1(section_1, bendPoints_1){ + var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; + if (bendPoints_1) { + _sizeJsonArr = bendPoints_1.jsArray.length; + _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); + for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 19); + _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); + _function_3 = new JsonImporter$lambda$10$Type(section_1); + $lambda$10_0(_function_3.section_1, _optJSONObject_2); + } + } +} + +function $register_2(this$static, edge, obj){ + var id_0; + id_0 = $getId(obj); + $put_6(this$static.edgeIdMap, id_0, edge); + $put_6(this$static.edgeJsonMap, edge, obj); + return edge; +} + +function $register_3(this$static, edgeSection, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.edgeSectionIdMap, id_0, edgeSection); + $put_6(this$static.edgeSectionJsonMap, edgeSection, obj); + return edgeSection; +} + +function $register_4(this$static, node, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.nodeIdMap, id_0, node); + $put_3(this$static.nodeJsonMap, node, obj); + return node; +} + +function $register_5(this$static, port, obj){ + var id_0; + id_0 = $getId(obj); + $put_3(this$static.portIdMap, id_0, port); + $put_6(this$static.portJsonMap, port, obj); + return port; +} + +function $setOption(e, id_0, value_0){ + var _xblockexpression, _xblockexpression_1, _xifexpression, _xifexpression_1, optionData, parsed; + _xblockexpression = null; + optionData = $getOptionDataBySuffix(getInstance(), id_0); + _xifexpression = null; + if (optionData) { + _xblockexpression_1 = null; + parsed = $parseValue(optionData, value_0); + _xifexpression_1 = null; + parsed != null && (_xifexpression_1 = e.setProperty(optionData, parsed)); + _xblockexpression_1 = _xifexpression_1; + _xifexpression = _xblockexpression_1; + } + _xblockexpression = _xifexpression; + return _xblockexpression; +} + +function $shapeById(this$static, id_0){ + var node, port; + node = castTo($get_4(this$static.nodeIdMap, id_0), 33); + if (node) { + return node; + } + port = castTo($get_4(this$static.portIdMap, id_0), 118); + if (port) { + return port; + } + throw toJs(new JsonImportException('Referenced shape does not exist: ' + id_0)); +} + +function $transferLayoutInt(this$static, node){ + if (instanceOf(node, 239)) { + return $_transferLayoutInt_1(this$static, castTo(node, 33)); + } + else if (instanceOf(node, 186)) { + return $_transferLayoutInt_2(this$static, castTo(node, 118)); + } + else if (instanceOf(node, 354)) { + return $_transferLayoutInt_0(this$static, castTo(node, 137)); + } + else if (instanceOf(node, 352)) { + return $_transferLayoutInt(this$static, castTo(node, 79)); + } + else if (node) { + return null; + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); + } +} + +function $transferShapeLayout(shape_0, jsonObjA){ + var jsonObj; + jsonObj = castTo(jsonObjA, 183); + $addJsonObj(jsonObj, 'x', shape_0.x_0); + $addJsonObj(jsonObj, 'y', shape_0.y_0); + $addJsonObj(jsonObj, 'width', shape_0.width_0); + $addJsonObj(jsonObj, 'height', shape_0.height); +} + +function $transformChildNodes(this$static, jsonNodeA, parent_0){ + var _function, _optJSONArray, _xblockexpression, jsonNode; + _xblockexpression = null; + jsonNode = jsonNodeA; + _optJSONArray = $optJSONArray(jsonNode, 'children'); + _function = new JsonImporter$lambda$0$Type(this$static, parent_0); + _xblockexpression = ($lambda$0_13(_function.$$outer_0, _function.parent_1, _optJSONArray) , _optJSONArray); + return _xblockexpression; +} + +function $transformEdge_1(this$static, jsonObjA, parent_0){ + var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, _xblockexpression, edge, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + edge = $register_2(this$static, createEdge(parent_0), jsonObj); + $setIdentifier(edge, $optString(jsonObj, 'id')); + _optJSONArray = $optJSONArray(jsonObj, 'sources'); + _function = new JsonImporter$lambda$11$Type(this$static, edge); + $lambda$11(_function.$$outer_0, _function.edge_1, _optJSONArray); + _optJSONArray_1 = $optJSONArray(jsonObj, 'targets'); + _function_1 = new JsonImporter$lambda$12$Type(this$static, edge); + $lambda$12_0(_function_1.$$outer_0, _function_1.edge_1, _optJSONArray_1); + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + _idSave = $optString(jsonObj, 'id'); + _plus = "An edge must have at least one source and one target (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + $transformProperties(jsonObj, edge); + $transformEdgeSections(this$static, jsonObj, edge); + _xblockexpression = $transformLabels(this$static, jsonObj, edge); + return _xblockexpression; +} + +function $transformEdgeSections(this$static, jsonObjA, edge){ + var _function, _get, _get_1, _idSave, _incomingSections, _keySet, _keySet_1, _optJSONArray, _outgoingSections, _plus, _plus_1, id_0, id$iterator, id_1, id_1$iterator, incomingSectionIdentifiers, jsonObj, outgoingSectionIdentifiers, referencedSection, result, result0, section, section$iterator, section_1, section_1$iterator, section_2; + jsonObj = jsonObjA; + incomingSectionIdentifiers = new HashMultimap; + outgoingSectionIdentifiers = new HashMultimap; + _optJSONArray = $optJSONArray(jsonObj, 'sections'); + _function = new JsonImporter$lambda$13$Type(this$static, edge, incomingSectionIdentifiers, outgoingSectionIdentifiers); + $lambda$13(_function.$$outer_0, _function.edge_1, _function.incomingSectionIdentifiers_2, _function.outgoingSectionIdentifiers_3, _optJSONArray); + _keySet = (result0 = incomingSectionIdentifiers.keySet , !result0?(incomingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(incomingSectionIdentifiers, incomingSectionIdentifiers.map_0)):result0); + for (section$iterator = _keySet.iterator_0(); section$iterator.hasNext_0();) { + section = castTo(section$iterator.next_1(), 202); + _get = castTo($get(incomingSectionIdentifiers, section), 21); + for (id$iterator = _get.iterator_0(); id$iterator.hasNext_0();) { + id_0 = id$iterator.next_1(); + referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_0), 202); + if (referencedSection) { + _incomingSections = (!section.incomingSections && (section.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section, 10, 9)) , section.incomingSections); + $add_21(_incomingSections, referencedSection); + } + else { + _idSave = $optString(jsonObj, 'id'); + _plus = 'Referenced edge section does not exist: ' + id_0 + " (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + } + } + _keySet_1 = (result = outgoingSectionIdentifiers.keySet , !result?(outgoingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(outgoingSectionIdentifiers, outgoingSectionIdentifiers.map_0)):result); + for (section_1$iterator = _keySet_1.iterator_0(); section_1$iterator.hasNext_0();) { + section_1 = castTo(section_1$iterator.next_1(), 202); + _get_1 = castTo($get(outgoingSectionIdentifiers, section_1), 21); + for (id_1$iterator = _get_1.iterator_0(); id_1$iterator.hasNext_0();) { + id_1 = id_1$iterator.next_1(); + referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_1), 202); + if (referencedSection) { + _outgoingSections = (!section_1.outgoingSections && (section_1.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section_1, 9, 10)) , section_1.outgoingSections); + $add_21(_outgoingSections, referencedSection); + } + else { + _idSave = $optString(jsonObj, 'id'); + _plus = 'Referenced edge section does not exist: ' + id_1 + " (edge id: '" + _idSave; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + } + } + !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); + if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0) && (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1)) && (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 1) { + section_2 = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + if (!$getIncomingShape(section_2) && !$getOutgoingShape(section_2)) { + $setIncomingShape(section_2, castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); + $setOutgoingShape(section_2, castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + } + } +} + +function $transformEdges_2(this$static, jsonObjA){ + var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, jsonObj, node; + jsonObj = jsonObjA; + node = castTo($get_5($inverse(this$static.nodeJsonMap), jsonObj), 33); + if (!node) { + _idSave = $optString(jsonObj, 'id'); + _plus = "Unable to find elk node for json object '" + _idSave; + _plus_1 = _plus + "' Panic!"; + throw toJs(new JsonImportException(_plus_1)); + } + _optJSONArray = $optJSONArray(jsonObj, 'edges'); + _function = new JsonImporter$lambda$1$Type(this$static, node); + $lambda$1_7(_function.$$outer_0, _function.node_1, _optJSONArray); + _optJSONArray_1 = $optJSONArray(jsonObj, 'children'); + _function_1 = new JsonImporter$lambda$2$Type(this$static); + $lambda$2_5(_function_1.$$outer_0, _optJSONArray_1); +} + +function $transformIndividualSpacings(jsonObjA, layoutData){ + var _function, _hasProperty, _individualSpacings, _keysJsonObj, _not, individualSpacings, jsonIndividualSpacings, jsonObj, keys_0, opts; + jsonObj = jsonObjA; + jsonIndividualSpacings = $optJSONObject_0(jsonObj, 'individualSpacings'); + if (jsonIndividualSpacings) { + _hasProperty = $hasProperty_0(layoutData, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0)); + _not = !_hasProperty; + if (_not) { + _individualSpacings = new IndividualSpacings; + $setProperty_1(layoutData, SPACING_INDIVIDUAL_0, _individualSpacings); + } + individualSpacings = castTo($getProperty_0(layoutData, SPACING_INDIVIDUAL_0), 373); + opts = jsonIndividualSpacings; + _keysJsonObj = null; + !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); + if (_keysJsonObj) { + _function = new JsonImporter$lambda$28$Type(opts, individualSpacings); + $forEach_0(_keysJsonObj, _function); + } + } +} + +function $transformLabels(this$static, jsonObjA, element){ + var _function, _optJSONArray, _xblockexpression, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + _optJSONArray = $optJSONArray(jsonObj, 'labels'); + _function = new JsonImporter$lambda$29$Type(this$static, element); + _xblockexpression = ($lambda$29_0(_function.$$outer_0, _function.element_1, _optJSONArray) , _optJSONArray); + return _xblockexpression; +} + +function $transformNode_0(this$static, jsonNode, parent_0){ + var node, node_0, elkNode, jsonObj, _optJSONArray, _function; + node = $register_4(this$static, (node_0 = ($clinit_ElkGraphFactory() , elkNode = new ElkNodeImpl , elkNode) , !!parent_0 && $setParent_2(node_0, parent_0) , node_0), jsonNode); + $setIdentifier(node, $optString(jsonNode, 'id')); + $transformProperties(jsonNode, node); + $transformIndividualSpacings(jsonNode, node); + $transformShapeLayout(jsonNode, node); + _xblockexpression = null; + jsonObj = jsonNode; + _optJSONArray = $optJSONArray(jsonObj, 'ports'); + _function = new JsonImporter$lambda$30$Type(this$static, node); + $lambda$30(_function.$$outer_0, _function.parent_1, _optJSONArray); + $transformLabels(this$static, jsonNode, node); + $transformChildNodes(this$static, jsonNode, node); + return node; +} + +function $transformPrimitiveEdge(this$static, jsonObjA, parent_0){ + var _asId, _asId_1, _elvis, _elvis_1, _id, _idSave, _idSave_1, _idSave_2, _id_1, _jsonObj, _jsonObj_1, _plus, _plus_1, _plus_2, _plus_3, _plus_4, _plus_5, _plus_6, _plus_7, _plus_8, _plus_9, _sources, _targets, _xblockexpression, edge, jsonObj, srcNode, srcPort, tgtNode, tgtPort; + _xblockexpression = null; + jsonObj = jsonObjA; + edge = $register_2(this$static, createEdge(parent_0), jsonObj); + $setIdentifier(edge, $optString(jsonObj, 'id')); + srcNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'source'))), 33); + _jsonObj = $get_9(jsonObj, 'sourcePort'); + _asId = null; + !!_jsonObj && (_asId = $asId(_jsonObj)); + srcPort = castTo($get_4(this$static.portIdMap, _asId), 118); + if (!srcNode) { + _id = $getId(jsonObj); + _plus = "An edge must have a source node (edge id: '" + _id; + _plus_1 = _plus + "')."; + throw toJs(new JsonImportException(_plus_1)); + } + if (!!srcPort && !equal($getParent_3(srcPort), srcNode)) { + _idSave = $optString(jsonObj, 'id'); + _plus_2 = "The source port of an edge must be a port of the edge's source node (edge id: '" + _idSave; + _plus_3 = _plus_2 + "')."; + throw toJs(new JsonImportException(_plus_3)); + } + _sources = (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources); + _elvis = null; + srcPort?(_elvis = srcPort):(_elvis = srcNode); + $add_21(_sources, _elvis); + tgtNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'target'))), 33); + _jsonObj_1 = $get_9(jsonObj, 'targetPort'); + _asId_1 = null; + !!_jsonObj_1 && (_asId_1 = $asId(_jsonObj_1)); + tgtPort = castTo($get_4(this$static.portIdMap, _asId_1), 118); + if (!tgtNode) { + _id_1 = $getId(jsonObj); + _plus_4 = "An edge must have a target node (edge id: '" + _id_1; + _plus_5 = _plus_4 + "')."; + throw toJs(new JsonImportException(_plus_5)); + } + if (!!tgtPort && !equal($getParent_3(tgtPort), tgtNode)) { + _idSave_1 = $optString(jsonObj, 'id'); + _plus_6 = "The target port of an edge must be a port of the edge's target node (edge id: '" + _idSave_1; + _plus_7 = _plus_6 + "')."; + throw toJs(new JsonImportException(_plus_7)); + } + _targets = (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets); + _elvis_1 = null; + tgtPort?(_elvis_1 = tgtPort):(_elvis_1 = tgtNode); + $add_21(_targets, _elvis_1); + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { + _idSave_2 = $optString(jsonObj, 'id'); + _plus_8 = "An edge must have at least one source and one target (edge id: '" + _idSave_2; + _plus_9 = _plus_8 + "')."; + throw toJs(new JsonImportException(_plus_9)); + } + $transformProperties(jsonObj, edge); + $transformPrimitiveEdgeLayout(jsonObj, edge); + _xblockexpression = $transformLabels(this$static, jsonObj, edge); + return _xblockexpression; +} + +function $transformPrimitiveEdgeLayout(jsonObjA, edge){ + var _function, _function_1, _function_2, _optJSONArray, _optJSONObject, _optJSONObject_1, _xblockexpression, _xblockexpression_1, _xifexpression, jsonObj, section; + _xblockexpression = null; + jsonObj = jsonObjA; + _xifexpression = null; + if ('sourcePoint' in jsonObj.jsObject || 'targetPoint' in jsonObj.jsObject || 'bendPoints' in jsonObj.jsObject) { + _xblockexpression_1 = null; + section = createEdgeSection(edge); + _optJSONObject = $optJSONObject_0(jsonObj, 'sourcePoint'); + _function = new JsonImporter$lambda$3$Type(section); + $lambda$3_4(_function.section_1, _optJSONObject); + _optJSONObject_1 = $optJSONObject_0(jsonObj, 'targetPoint'); + _function_1 = new JsonImporter$lambda$6$Type(section); + $lambda$6_0(_function_1.section_1, _optJSONObject_1); + _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); + _function_2 = new JsonImporter$lambda$9$Type(section); + _xblockexpression_1 = ($lambda$9_1(_function_2.section_1, _optJSONArray) , _optJSONArray); + _xifexpression = _xblockexpression_1; + } + _xblockexpression = _xifexpression; + return _xblockexpression; +} + +function $transformProperties(jsonObjA, layoutData){ + var _function, _keysJsonObj, jsonObj, keys_0, layoutOptions, opts; + jsonObj = jsonObjA; + layoutOptions = $optJSONObject_0(jsonObj, 'layoutOptions'); + !layoutOptions && (layoutOptions = $optJSONObject_0(jsonObj, 'properties')); + if (layoutOptions) { + opts = layoutOptions; + _keysJsonObj = null; + !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); + if (_keysJsonObj) { + _function = new JsonImporter$lambda$27$Type(opts, layoutData); + $forEach_0(_keysJsonObj, _function); + } + } +} + +function $transformShapeLayout(jsonObjA, shape_0){ + var _function, _function_1, _function_2, _function_3, _optDouble, _optDouble_1, _optDouble_2, _optDouble_3, _xblockexpression, jsonObj; + _xblockexpression = null; + jsonObj = jsonObjA; + _optDouble = $optDouble(jsonObj, 'x'); + _function = new JsonImporter$lambda$31$Type(shape_0); + $lambda$31(_function.shape_1, _optDouble); + _optDouble_1 = $optDouble(jsonObj, 'y'); + _function_1 = new JsonImporter$lambda$32$Type(shape_0); + $lambda$32(_function_1.shape_1, _optDouble_1); + _optDouble_2 = $optDouble(jsonObj, 'width'); + _function_2 = new JsonImporter$lambda$33$Type(shape_0); + $lambda$33(_function_2.shape_1, _optDouble_2); + _optDouble_3 = $optDouble(jsonObj, 'height'); + _function_3 = new JsonImporter$lambda$34$Type(shape_0); + _xblockexpression = ($lambda$34(_function_3.shape_1, _optDouble_3) , _optDouble_3); + return _xblockexpression; +} + +function JsonImporter(){ + this._jsonAdapter = new JsonAdapter; + this.nodeIdMap = new HashBiMap; + this.portIdMap = new HashBiMap; + this.edgeIdMap = new HashMap; + this.edgeSectionIdMap = new HashBiMap; + this.nodeJsonMap = new HashBiMap; + this.portJsonMap = new HashMap; + this.edgeJsonMap = new HashMap; + this.edgeSectionJsonMap = new HashMap; + this.labelJsonMap = new HashMap; +} + +defineClass(857, 1, {}, JsonImporter); +var Lorg_eclipse_elk_graph_json_JsonImporter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter', 857); +function JsonImporter$lambda$0$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(891, 1, {}, JsonImporter$lambda$0$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$0$Type', 891); +function JsonImporter$lambda$1$Type($$outer_0, node_1){ + this.$$outer_0 = $$outer_0; + this.node_1 = node_1; +} + +defineClass(892, 1, {}, JsonImporter$lambda$1$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$1$Type', 892); +function JsonImporter$lambda$10$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(900, 1, {}, JsonImporter$lambda$10$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$10$Type', 900); +function JsonImporter$lambda$11$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(902, 1, {}, JsonImporter$lambda$11$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$11$Type', 902); +function JsonImporter$lambda$12$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(903, 1, {}, JsonImporter$lambda$12$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$12$Type', 903); +function JsonImporter$lambda$13$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; + this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; + this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; +} + +defineClass(909, 1, {}, JsonImporter$lambda$13$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$13$Type', 909); +function JsonImporter$lambda$14$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; + this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; + this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; +} + +defineClass(908, 1, {}, JsonImporter$lambda$14$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$14$Type', 908); +function JsonImporter$lambda$15$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(904, 1, {}, JsonImporter$lambda$15$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$15$Type', 904); +function JsonImporter$lambda$16$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(905, 1, {}, JsonImporter$lambda$16$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$16$Type', 905); +function JsonImporter$lambda$17$Type(incomingSectionIdentifiers_1, elkSection_2){ + this.incomingSectionIdentifiers_1 = incomingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(906, 1, {}, JsonImporter$lambda$17$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$17$Type', 906); +function JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_1, elkSection_2){ + this.outgoingSectionIdentifiers_1 = outgoingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(907, 1, {}, JsonImporter$lambda$18$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$18$Type', 907); +function JsonImporter$lambda$19$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(912, 1, {}, JsonImporter$lambda$19$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$19$Type', 912); +function JsonImporter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(893, 1, {}, JsonImporter$lambda$2$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$2$Type', 893); +function JsonImporter$lambda$20$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(910, 1, {}, JsonImporter$lambda$20$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$20$Type', 910); +function JsonImporter$lambda$21$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(911, 1, {}, JsonImporter$lambda$21$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$21$Type', 911); +function JsonImporter$lambda$22$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(915, 1, {}, JsonImporter$lambda$22$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$22$Type', 915); +function JsonImporter$lambda$23$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(913, 1, {}, JsonImporter$lambda$23$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$23$Type', 913); +function JsonImporter$lambda$24$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(914, 1, {}, JsonImporter$lambda$24$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$24$Type', 914); +function JsonImporter$lambda$25$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(917, 1, {}, JsonImporter$lambda$25$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$25$Type', 917); +function JsonImporter$lambda$26$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(916, 1, {}, JsonImporter$lambda$26$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$26$Type', 916); +function JsonImporter$lambda$27$Type(opts_1, layoutData_2){ + this.opts_1 = opts_1; + this.layoutData_2 = layoutData_2; +} + +defineClass(918, 1, $intern_19, JsonImporter$lambda$27$Type); +_.accept = function accept_153(arg0){ + $lambda$27(this.opts_1, this.layoutData_2, castToString(arg0)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$27$Type', 918); +function JsonImporter$lambda$28$Type(opts_1, individualSpacings_2){ + this.opts_1 = opts_1; + this.individualSpacings_2 = individualSpacings_2; +} + +defineClass(919, 1, $intern_19, JsonImporter$lambda$28$Type); +_.accept = function accept_154(arg0){ + $lambda$28(this.opts_1, this.individualSpacings_2, castToString(arg0)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$28$Type', 919); +function JsonImporter$lambda$29$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(920, 1, {}, JsonImporter$lambda$29$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$29$Type', 920); +function JsonImporter$lambda$3$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(896, 1, {}, JsonImporter$lambda$3$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$3$Type', 896); +function JsonImporter$lambda$30$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(921, 1, {}, JsonImporter$lambda$30$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$30$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$30$Type', 921); +function JsonImporter$lambda$31$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(922, 1, {}, JsonImporter$lambda$31$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$31$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$31$Type', 922); +function JsonImporter$lambda$32$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(923, 1, {}, JsonImporter$lambda$32$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$32$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$32$Type', 923); +function JsonImporter$lambda$33$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(924, 1, {}, JsonImporter$lambda$33$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$33$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$33$Type', 924); +function JsonImporter$lambda$34$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(925, 1, {}, JsonImporter$lambda$34$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$34$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$34$Type', 925); +function $apply_28(this$static, arg0){ + $transferLayoutInt(this$static.$$outer_0, castTo(arg0, 56)); +} + +function JsonImporter$lambda$35$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(859, 1, {}, JsonImporter$lambda$35$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$35$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$35$Type', 859); +function $apply_29(this$static, arg0, arg1){ + $lambda$36(this$static.$$outer_0, this$static.edgeId_1, this$static.sections_2, castTo(arg0, 202), arg1); +} + +function JsonImporter$lambda$36$Type($$outer_0, edgeId_1, sections_2){ + this.$$outer_0 = $$outer_0; + this.edgeId_1 = edgeId_1; + this.sections_2 = sections_2; +} + +defineClass(929, 1, {}, JsonImporter$lambda$36$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$36$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$36$Type', 929); +function JsonImporter$lambda$37$Type(bendPoints_1){ + this.bendPoints_1 = bendPoints_1; +} + +defineClass(926, 1, $intern_19, JsonImporter$lambda$37$Type); +_.accept = function accept_155(arg0){ + $lambda$37(this.bendPoints_1, castTo(arg0, 469)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$37$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$37$Type', 926); +function JsonImporter$lambda$38$Type($$outer_0, incomingSections_1){ + this.$$outer_0 = $$outer_0; + this.incomingSections_1 = incomingSections_1; +} + +defineClass(927, 1, $intern_19, JsonImporter$lambda$38$Type); +_.accept = function accept_156(arg0){ + $lambda$38(this.$$outer_0, this.incomingSections_1, castTo(arg0, 202)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$38$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$38$Type', 927); +function JsonImporter$lambda$39$Type($$outer_0, outgoingSections_1){ + this.$$outer_0 = $$outer_0; + this.outgoingSections_1 = outgoingSections_1; +} + +defineClass(928, 1, $intern_19, JsonImporter$lambda$39$Type); +_.accept = function accept_157(arg0){ + $lambda$39(this.$$outer_0, this.outgoingSections_1, castTo(arg0, 202)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$39$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$39$Type', 928); +function JsonImporter$lambda$4$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(894, 1, {}, JsonImporter$lambda$4$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$4$Type', 894); +function JsonImporter$lambda$40$Type(jsonJPs_1){ + this.jsonJPs_1 = jsonJPs_1; +} + +defineClass(930, 1, $intern_19, JsonImporter$lambda$40$Type); +_.accept = function accept_158(arg0){ + $lambda$40(this.jsonJPs_1, castTo(arg0, 8)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$40$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$40$Type', 930); +function JsonImporter$lambda$5$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(895, 1, {}, JsonImporter$lambda$5$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$5$Type', 895); +function JsonImporter$lambda$6$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(899, 1, {}, JsonImporter$lambda$6$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$6$Type', 899); +function JsonImporter$lambda$7$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(897, 1, {}, JsonImporter$lambda$7$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$7$Type', 897); +function JsonImporter$lambda$8$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(898, 1, {}, JsonImporter$lambda$8$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$8$Type', 898); +function JsonImporter$lambda$9$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(901, 1, {}, JsonImporter$lambda$9$Type); +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$9$Type', 901); +function _toJson(lad){ + var _categoryId, _function, _function_1, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, _tripleNotEquals, jsonArr, jsonArr_1, jsonObj; + jsonObj = createCommon(lad); + _categoryId = lad.category; + _tripleNotEquals = _categoryId != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'category', lad.category); + _isNullOrEmpty = isNullOrEmpty(new AbstractMap$1(lad.knownOptions)); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'knownOptions', jsonArr); + _function = new JsonMetaDataConverter$lambda$0$Type(jsonArr); + $forEach_0(new AbstractMap$1(lad.knownOptions), _function); + } + _isNullOrEmpty_1 = isNullOrEmpty(lad.supportedFeatures); + _not_1 = !_isNullOrEmpty_1; + if (_not_1) { + jsonArr_1 = new JSONArray; + $put_5(jsonObj, 'supportedFeatures', jsonArr_1); + _function_1 = new JsonMetaDataConverter$lambda$1$Type(jsonArr_1); + $forEach_0(lad.supportedFeatures, _function_1); + } + return jsonObj; +} + +function _toJson_0(lcd){ + var _function, _isNullOrEmpty, _not, jsonArr, jsonObj; + jsonObj = createCommon(lcd); + _isNullOrEmpty = isNullOrEmpty(lcd.layouters); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'knownLayouters', jsonArr); + _function = new JsonMetaDataConverter$lambda$2$Type(jsonArr); + $forEach_0(lcd.layouters, _function); + } + return jsonObj; +} + +function _toJson_1(lod){ + var _function, _group, _isNullOrEmpty, _not, _tripleNotEquals, _tripleNotEquals_1, _type, jsonArr, jsonObj; + jsonObj = createCommon(lod); + _group = lod.group_0; + _tripleNotEquals = _group != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'group', lod.group_0); + _type = lod.type_0; + _tripleNotEquals_1 = !!_type; + _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'type', $toString_3(lod.type_0)); + _isNullOrEmpty = isNullOrEmpty(lod.targets); + _not = !_isNullOrEmpty; + if (_not) { + jsonArr = new JSONArray; + $put_5(jsonObj, 'targets', jsonArr); + _function = new JsonMetaDataConverter$lambda$3$Type(jsonArr); + $forEach_0(lod.targets, _function); + } + return jsonObj; +} + +function createCommon(data_0){ + var _description, _id, _name, _tripleNotEquals, _tripleNotEquals_1, _tripleNotEquals_2, jsonObj; + jsonObj = new JSONObject; + _id = data_0.getId(); + _tripleNotEquals = _id != null; + _tripleNotEquals && $addJsonObj_1(jsonObj, 'id', data_0.getId()); + _name = data_0.getName(); + _tripleNotEquals_1 = _name != null; + _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'name', data_0.getName()); + _description = data_0.getDescription(); + _tripleNotEquals_2 = _description != null; + _tripleNotEquals_2 && $addJsonObj_1(jsonObj, 'description', data_0.getDescription()); + return jsonObj; +} + +function lambda$1_22(jsonArr_1_0, f_1){ + $addJsonArr(jsonArr_1_0, new JSONString(f_1.name_0 != null?f_1.name_0:'' + f_1.ordinal)); +} + +function lambda$2_12(jsonArr_0, l_1){ + var _id, _tripleNotEquals; + _id = l_1.id_0; + _tripleNotEquals = _id != null; + _tripleNotEquals && $addJsonArr(jsonArr_0, new JSONString(l_1.id_0)); +} + +function lambda$3_8(jsonArr_0, t_1){ + $addJsonArr(jsonArr_0, new JSONString(t_1.name_0 != null?t_1.name_0:'' + t_1.ordinal)); +} + +function toJson(lad){ + if (instanceOf(lad, 149)) { + return _toJson(castTo(lad, 149)); + } + else if (instanceOf(lad, 229)) { + return _toJson_0(castTo(lad, 229)); + } + else if (instanceOf(lad, 23)) { + return _toJson_1(castTo(lad, 23)); + } + else { + throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [lad]))))); + } +} + +function JsonMetaDataConverter$lambda$0$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(948, 1, $intern_19, JsonMetaDataConverter$lambda$0$Type); +_.accept = function accept_159(arg0){ + $addJsonArr(this.jsonArr_0, new JSONString(castToString(arg0))); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$0$Type', 948); +function JsonMetaDataConverter$lambda$1$Type(jsonArr_1_0){ + this.jsonArr_1_0 = jsonArr_1_0; +} + +defineClass(949, 1, $intern_19, JsonMetaDataConverter$lambda$1$Type); +_.accept = function accept_160(arg0){ + lambda$1_22(this.jsonArr_1_0, castTo(arg0, 237)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$1$Type', 949); +function JsonMetaDataConverter$lambda$2$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(950, 1, $intern_19, JsonMetaDataConverter$lambda$2$Type); +_.accept = function accept_161(arg0){ + lambda$2_12(this.jsonArr_0, castTo(arg0, 149)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$2$Type', 950); +function JsonMetaDataConverter$lambda$3$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(951, 1, $intern_19, JsonMetaDataConverter$lambda$3$Type); +_.accept = function accept_162(arg0){ + lambda$3_8(this.jsonArr_0, castTo(arg0, 175)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$3$Type', 951); +function $clinit_GraphFeature(){ + $clinit_GraphFeature = emptyMethod; + SELF_LOOPS_0 = new GraphFeature('SELF_LOOPS', 0); + INSIDE_SELF_LOOPS = new GraphFeature('INSIDE_SELF_LOOPS', 1); + MULTI_EDGES = new GraphFeature('MULTI_EDGES', 2); + EDGE_LABELS = new GraphFeature('EDGE_LABELS', 3); + PORTS_1 = new GraphFeature('PORTS', 4); + COMPOUND = new GraphFeature('COMPOUND', 5); + CLUSTERS = new GraphFeature('CLUSTERS', 6); + DISCONNECTED = new GraphFeature('DISCONNECTED', 7); +} + +function GraphFeature(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_111(name_0){ + $clinit_GraphFeature(); + return valueOf(($clinit_GraphFeature$Map() , $MAP_99), name_0); +} + +function values_117(){ + $clinit_GraphFeature(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]); +} + +defineClass(237, 22, {3:1, 35:1, 22:1, 237:1}, GraphFeature); +var CLUSTERS, COMPOUND, DISCONNECTED, EDGE_LABELS, INSIDE_SELF_LOOPS, MULTI_EDGES, PORTS_1, SELF_LOOPS_0; +var Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit = createForEnum('org.eclipse.elk.graph.properties', 'GraphFeature', 237, Ljava_lang_Enum_2_classLit, values_117, valueOf_111); +function $clinit_GraphFeature$Map(){ + $clinit_GraphFeature$Map = emptyMethod; + $MAP_99 = createValueOfMap(($clinit_GraphFeature() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]))); +} + +var $MAP_99; +function $compareTo_21(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $equals_10(this$static, obj){ + return instanceOf(obj, 146) && $equals_5(this$static.id_0, castTo(obj, 146).getId()); +} + +function $getDefault(this$static){ + var clone; + if (instanceOf(this$static.defaultValue, 4)) { + clone = clone_11(this$static.defaultValue); + if (clone == null) { + throw toJs(new IllegalStateException_0("Couldn't clone property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); + } + return clone; + } + else { + return this$static.defaultValue; + } +} + +function Property(theid){ + this.id_0 = theid; +} + +function Property_0(theid, thedefaultValue){ + Property.call(this, theid); + this.defaultValue = thedefaultValue; +} + +function Property_1(theid, thedefaultValue){ + Property_0.call(this, theid, thedefaultValue); +} + +function Property_2(other, thedefaultValue){ + Property_0.call(this, other.id_0, thedefaultValue); +} + +defineClass(13, 1, {35:1, 146:1}, Property, Property_0, Property_1, Property_2); +_.compareTo_0 = function compareTo_22(other){ + return $compareTo_21(this, castTo(other, 146)); +} +; +_.equals_0 = function equals_184(obj){ + return $equals_10(this, obj); +} +; +_.getDefault = function getDefault_0(){ + return $getDefault(this); +} +; +_.getId = function getId_2(){ + return this.id_0; +} +; +_.hashCode_1 = function hashCode_73(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_134(){ + return this.id_0; +} +; +var Lorg_eclipse_elk_graph_properties_Property_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'Property', 13); +function $compare_26(this$static, ph1, ph2){ + var p1, p2; + p1 = castTo(ph1.getProperty(this$static.property), 35); + p2 = castTo(ph2.getProperty(this$static.property), 35); + return p1 != null && p2 != null?compareTo_Ljava_lang_Object__I__devirtual$(p1, p2):p1 != null?-1:p2 != null?1:0; +} + +function PropertyHolderComparator(property){ + this.property = property; +} + +defineClass(818, 1, $intern_88, PropertyHolderComparator); +_.compare_1 = function compare_87(ph1, ph2){ + return $compare_26(this, castTo(ph1, 94), castTo(ph2, 94)); +} +; +_.equals_0 = function equals_185(other){ + return this === other; +} +; +_.reversed = function reversed_79(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_graph_properties_PropertyHolderComparator_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'PropertyHolderComparator', 818); +function allIncomingEdges(node){ + var incomingEdgeIterables, port, port$iterator; + incomingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); + $add_3(incomingEdgeIterables, (!node.incomingEdges && (node.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 8, 5)) , node.incomingEdges)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + $add_3(incomingEdgeIterables, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); + } + return checkNotNull(incomingEdgeIterables) , new FluentIterable$2(incomingEdgeIterables); +} + +function allOutgoingEdges(node){ + var outgoingEdgeIterables, port, port$iterator; + outgoingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); + $add_3(outgoingEdgeIterables, (!node.outgoingEdges && (node.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 7, 4)) , node.outgoingEdges)); + for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { + port = castTo($doNext(port$iterator), 118); + $add_3(outgoingEdgeIterables, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); + } + return checkNotNull(outgoingEdgeIterables) , new FluentIterable$2(outgoingEdgeIterables); +} + +function connectableShapeToNode(connectableShape){ + if (instanceOf(connectableShape, 239)) { + return castTo(connectableShape, 33); + } + else if (instanceOf(connectableShape, 186)) { + return $getParent_3(castTo(connectableShape, 118)); + } + else if (!connectableShape) { + throw toJs(new NullPointerException_0('connectableShape cannot be null')); + } + else { + throw toJs(new UnsupportedOperationException_0('Only support nodes and ports.')); + } +} + +function connectableShapeToPort(connectableShape){ + if (instanceOf(connectableShape, 186)) { + return castTo(connectableShape, 118); + } + else if (!connectableShape) { + throw toJs(new NullPointerException_0('connectableShape cannot be null')); + } + else { + return null; + } +} + +function createBendPoint(edgeSection, x_0, y_0){ + var bendPoint, elkBendPoint; + bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $setX_1(bendPoint, x_0); + $setY_2(bendPoint, y_0); + !!edgeSection && $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); + return bendPoint; +} + +function createEdge(containingNode){ + var edge, elkEdge; + edge = ($clinit_ElkGraphFactory() , elkEdge = new ElkEdgeImpl , elkEdge); + !!containingNode && $setContainingNode(edge, containingNode); + return edge; +} + +function createEdgeSection(edge){ + var elkEdgeSection, section; + section = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); + !!edge && $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), section); + return section; +} + +function createLabel(text_0, parent_0){ + var label_0, label_1, elkLabel; + label_0 = (label_1 = ($clinit_ElkGraphFactory() , elkLabel = new ElkLabelImpl , elkLabel) , !!parent_0 && $setParent_1(label_1, parent_0) , label_1); + $setText(label_0, text_0); + return label_0; +} + +function findBestEdgeContainment(edge){ + var commonAncestor, incidentNode, incidentShapes, sourceNode, targetNode; + requireNonNull(edge, 'edge cannot be null'); + switch ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 + (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0) { + case 0: + throw toJs(new IllegalArgumentException_0('The edge must have at least one source or target.')); + case 1: + return (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0?$getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))):$getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); + } + if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 1) { + sourceNode = connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); + targetNode = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); + if ($getParent_2(sourceNode) == $getParent_2(targetNode)) { + return $getParent_2(sourceNode); + } + else if (sourceNode == $getParent_2(targetNode)) { + return sourceNode; + } + else if (targetNode == $getParent_2(sourceNode)) { + return targetNode; + } + } + incidentShapes = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)]))); + commonAncestor = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); + while ($hasNext_1(incidentShapes)) { + incidentNode = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); + if (incidentNode != commonAncestor && !isDescendant_0(incidentNode, commonAncestor)) { + if ($getParent_2(incidentNode) == $getParent_2(commonAncestor)) { + commonAncestor = $getParent_2(incidentNode); + } + else { + commonAncestor = findLowestCommonAncestor(commonAncestor, incidentNode); + if (!commonAncestor) { + return null; + } + } + } + } + return commonAncestor; +} + +function findLowestCommonAncestor(node1, node2){ + var ancestor1, ancestor2, ancestors1, ancestors2, commonAncestor, iterator1, iterator2; + ancestors1 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node1)); + iterator1 = new AbstractList$ListIteratorImpl(ancestors1, ancestors1.array.length); + ancestors2 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node2)); + iterator2 = new AbstractList$ListIteratorImpl(ancestors2, ancestors2.array.length); + commonAncestor = null; + while (iterator1.i > 0 && iterator2.i > 0) { + ancestor1 = (checkCriticalElement(iterator1.i > 0) , castTo(iterator1.this$01.get_0(iterator1.last = --iterator1.i), 33)); + ancestor2 = (checkCriticalElement(iterator2.i > 0) , castTo(iterator2.this$01.get_0(iterator2.last = --iterator2.i), 33)); + if (ancestor1 == ancestor2) { + commonAncestor = ancestor1; + } + else { + break; + } + } + return commonAncestor; +} + +function firstEdgeSection(edge, resetSection, removeOtherSections){ + var section, sections; + if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { + return createEdgeSection(edge); + } + else { + section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); + if (resetSection) { + $clear_13((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); + $setStartX(section, 0); + $setStartY(section, 0); + $setEndX(section, 0); + $setEndY(section, 0); + } + if (removeOtherSections) { + sections = (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections); + while (sections.size_0 > 1) { + $remove_35(sections, sections.size_0 - 1); + } + } + return section; + } +} + +function getSourceNode(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToNode(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); +} + +function getSourcePort(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToPort(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); +} + +function getTargetNode_0(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToNode(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); +} + +function getTargetPort(simpleEdge){ + if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { + throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); + } + return connectableShapeToPort(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); +} + +function isDescendant_0(child, ancestor){ + var current; + current = child; + while ($getParent_2(current)) { + current = $getParent_2(current); + if (current == ancestor) { + return true; + } + } + return false; +} + +function updateContainment(edge){ + requireNonNull(edge, 'edge cannot be null'); + $setContainingNode(edge, findBestEdgeContainment(edge)); +} + +function $next_13(this$static){ + var next; + if (!this$static.nextNode) { + throw toJs(new NoSuchElementException_0); + } + next = this$static.nextNode; + this$static.nextNode = $getParent_2(this$static.nextNode); + return next; +} + +function ElkGraphUtil$AncestorIterator(startNode){ + this.nextNode = startNode; +} + +defineClass(695, 1, $intern_6, ElkGraphUtil$AncestorIterator); +_.forEachRemaining = function forEachRemaining_52(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_42(){ + return $next_13(this); +} +; +_.remove = function remove_97(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_41(){ + return !!this.nextNode; +} +; +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$AncestorIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/AncestorIterator', 695); +var Lorg_eclipse_emf_common_util_EList_2_classLit = createForInterface('org.eclipse.emf.common.util', 'EList'); +function $add_20(this$static, index_0, object){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + if (this$static.isUnique() && this$static.contains(object)) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + this$static.addUnique(index_0, object); +} + +function $add_21(this$static, object){ + if (this$static.isUnique() && this$static.contains(object)) { + return false; + } + else { + this$static.addUnique_0(object); + return true; + } +} + +function $addAll_8(this$static, index_0, collection){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); + return this$static.addAllUnique(index_0, collection); +} + +function $addAll_9(this$static, collection){ + this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); + return this$static.addAllUnique_0(collection); +} + +function $basicListIterator(this$static, index_0){ + var size_0; + size_0 = this$static.size_1(); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new AbstractEList$NonResolvingEListIterator_0(this$static, index_0); +} + +function $didClear(this$static, size_0, oldObjects){ + var i, object; + if (oldObjects != null) { + for (i = 0; i < size_0; ++i) { + object = oldObjects[i]; + this$static.didRemove(i, object); + } + } +} + +function $equals_11(this$static, object){ + var i, list, o1, o2, objects, size_0; + if (maskUndefined(object) === maskUndefined(this$static)) { + return true; + } + if (!instanceOf(object, 15)) { + return false; + } + list = castTo(object, 15); + size_0 = this$static.size_1(); + if (list.size_1() != size_0) { + return false; + } + objects = list.iterator_0(); + if (this$static.useEquals()) { + for (i = 0; i < size_0; ++i) { + o1 = this$static.primitiveGet(i); + o2 = objects.next_1(); + if (o1 == null?o2 != null:!equals_Ljava_lang_Object__Z__devirtual$(o1, o2)) { + return false; + } + } + } + else { + for (i = 0; i < size_0; ++i) { + o1 = this$static.primitiveGet(i); + o2 = objects.next_1(); + if (maskUndefined(o1) !== maskUndefined(o2)) { + return false; + } + } + } + return true; +} + +function $getDuplicates(this$static, collection){ + var filteredResult, object, object$iterator; + if (collection.isEmpty()) { + return $clinit_ECollections() , $clinit_ECollections() , EMPTY_ELIST; + } + else { + filteredResult = new AbstractEList$1(this$static, collection.size_1()); + for (object$iterator = new AbstractEList$EIterator(this$static); object$iterator.cursor != object$iterator.this$01_2.size_1();) { + object = $doNext(object$iterator); + collection.contains(object) && $add_21(filteredResult, object); + } + return filteredResult; + } +} + +function $getNonDuplicates(this$static, collection){ + var result; + result = new LinkedHashSet_1(collection); + $removeAll_1(result, this$static); + return new ArrayList_1(result); +} + +function $hashCode_2(this$static){ + var hashCode, i, object, size_0; + hashCode = 1; + for (i = 0 , size_0 = this$static.size_1(); i < size_0; ++i) { + object = this$static.primitiveGet(i); + hashCode = 31 * hashCode + (object == null?0:hashCode__I__devirtual$(object)); + } + return hashCode; +} + +function $remove_32(this$static, object){ + var index_0; + index_0 = this$static.indexOf_0(object); + if (index_0 >= 0) { + this$static.remove_2(index_0); + return true; + } + else { + return false; + } +} + +function $set_11(this$static, index_0, object){ + var currentIndex, size_0; + size_0 = this$static.size_1(); + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + if (this$static.isUnique()) { + currentIndex = this$static.indexOf_0(object); + if (currentIndex >= 0 && currentIndex != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + return this$static.setUnique(index_0, object); +} + +function $toString_25(this$static){ + var i, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = 0 , size_0 = this$static.size_1(); i < size_0;) { + $append_3(stringBuffer, valueOf_7(this$static.primitiveGet(i))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} + +function $validate(this$static, object){ + if (!this$static.canContainNull() && object == null) { + throw toJs(new IllegalArgumentException_0("The 'no null' constraint is violated")); + } + return object; +} + +defineClass(67, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}); +_.add_3 = function add_46(index_0, object){ + $add_20(this, index_0, object); +} +; +_.add_2 = function add_47(object){ + return $add_21(this, object); +} +; +_.addAll_0 = function addAll_24(index_0, collection){ + return $addAll_8(this, index_0, collection); +} +; +_.addAll = function addAll_25(collection){ + return $addAll_9(this, collection); +} +; +_.basicIterator = function basicIterator(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_0(index_0){ + return $basicListIterator(this, index_0); +} +; +_.canContainNull = function canContainNull(){ + return true; +} +; +_.didAdd = function didAdd(index_0, newObject){ +} +; +_.didChange = function didChange(){ +} +; +_.didClear = function didClear(size_0, oldObjects){ + $didClear(this, size_0, oldObjects); +} +; +_.didMove = function didMove(index_0, movedObject, oldIndex){ +} +; +_.didRemove = function didRemove(index_0, oldObject){ +} +; +_.didSet = function didSet(index_0, newObject, oldObject){ +} +; +_.equals_0 = function equals_186(object){ + return $equals_11(this, object); +} +; +_.hashCode_1 = function hashCode_74(){ + return $hashCode_2(this); +} +; +_.isUnique = function isUnique_0(){ + return false; +} +; +_.iterator_0 = function iterator_79(){ + return new AbstractEList$EIterator(this); +} +; +_.listIterator_0 = function listIterator_17(){ + return new AbstractEList$EListIterator(this); +} +; +_.listIterator_1 = function listIterator_18(index_0){ + var size_0; + size_0 = this.size_1(); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new AbstractEList$EListIterator_0(this, index_0); +} +; +_.move_0 = function move_0(index_0, object){ + this.move(index_0, this.indexOf_0(object)); +} +; +_.remove_1 = function remove_98(object){ + return $remove_32(this, object); +} +; +_.resolve = function resolve_0(index_0, object){ + return object; +} +; +_.set_2 = function set_21(index_0, object){ + return $set_11(this, index_0, object); +} +; +_.toString_0 = function toString_135(){ + return $toString_25(this); +} +; +_.useEquals = function useEquals(){ + return true; +} +; +_.validate = function validate(index_0, object){ + return $validate(this, object); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList', 67); +function $addAllUnique(this$static, index_0, collection){ + var growth, i, object, objects, shifted; + growth = collection.size_1(); + this$static.grow(this$static.size_0 + growth); + shifted = this$static.size_0 - index_0; + shifted > 0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + growth, shifted); + objects = collection.iterator_0(); + this$static.size_0 += growth; + for (i = 0; i < growth; ++i) { + object = objects.next_1(); + $assign(this$static, index_0, this$static.validate(index_0, object)); + this$static.didAdd(index_0, object); + this$static.didChange(); + ++index_0; + } + return growth != 0; +} + +function $addAllUnique_0(this$static, collection){ + var growth, i, object, objects, oldSize; + growth = collection.size_1(); + this$static.grow(this$static.size_0 + growth); + objects = collection.iterator_0(); + oldSize = this$static.size_0; + this$static.size_0 += growth; + for (i = oldSize; i < this$static.size_0; ++i) { + object = objects.next_1(); + $assign(this$static, i, this$static.validate(i, object)); + this$static.didAdd(i, object); + this$static.didChange(); + } + return growth != 0; +} + +function $addUnique(this$static, index_0, object){ + var validatedObject; + this$static.grow(this$static.size_0 + 1); + validatedObject = this$static.validate(index_0, object); + index_0 != this$static.size_0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + 1, this$static.size_0 - index_0); + setCheck(this$static.data_0, index_0, validatedObject); + ++this$static.size_0; + this$static.didAdd(index_0, object); + this$static.didChange(); +} + +function $addUnique_0(this$static, object){ + this$static.grow(this$static.size_0 + 1); + $assign(this$static, this$static.size_0, this$static.validate(this$static.size_0, object)); + this$static.didAdd(this$static.size_0++, object); + this$static.didChange(); +} + +function $assign(this$static, index_0, object){ + setCheck(this$static.data_0, index_0, object); + return object; +} + +function $basicGet(this$static, index_0){ + if (this$static.data_0 == null || index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + return this$static.data_0[index_0]; +} + +function $clear_11(this$static){ + var oldData, oldSize; + ++this$static.modCount; + oldData = this$static.data_0; + oldSize = this$static.size_0; + this$static.data_0 = null; + this$static.size_0 = 0; + this$static.didClear(oldSize, oldData); + this$static.didChange(); +} + +function $contains_10(this$static, object){ + var i; + if (this$static.useEquals() && object != null) { + for (i = 0; i < this$static.size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { + return true; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { + return true; + } + } + } + return false; +} + +function $get_20(this$static, index_0){ + if (this$static.data_0 == null || index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + return this$static.resolve(index_0, this$static.data_0[index_0]); +} + +function $indexOf_4(this$static, object){ + var i; + if (this$static.useEquals() && object != null) { + for (i = 0; i < this$static.size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { + return i; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} + +function $move(this$static, targetIndex, sourceIndex){ + var object; + ++this$static.modCount; + if (targetIndex >= this$static.size_0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + this$static.size_0)); + if (sourceIndex >= this$static.size_0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + this$static.size_0)); + object = this$static.data_0[sourceIndex]; + if (targetIndex != sourceIndex) { + targetIndex < sourceIndex?arraycopy(this$static.data_0, targetIndex, this$static.data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(this$static.data_0, sourceIndex + 1, this$static.data_0, sourceIndex, targetIndex - sourceIndex); + setCheck(this$static.data_0, targetIndex, object); + this$static.didMove(targetIndex, object, sourceIndex); + this$static.didChange(); + } + return object; +} + +function $remove_33(this$static, index_0){ + var oldObject, shifted; + if (index_0 >= this$static.size_0) + throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); + ++this$static.modCount; + oldObject = this$static.data_0[index_0]; + shifted = this$static.size_0 - index_0 - 1; + shifted > 0 && arraycopy(this$static.data_0, index_0 + 1, this$static.data_0, index_0, shifted); + setCheck(this$static.data_0, --this$static.size_0, null); + this$static.didRemove(index_0, oldObject); + this$static.didChange(); + return oldObject; +} + +function $setUnique(this$static, index_0, object){ + var oldObject; + oldObject = this$static.data_0[index_0]; + $assign(this$static, index_0, this$static.validate(index_0, object)); + this$static.didSet(index_0, object, oldObject); + this$static.didChange(); + return oldObject; +} + +function $shrink_0(this$static){ + var oldData; + ++this$static.modCount; + if (this$static.size_0 == 0) { + this$static.data_0 = null; + } + else if (this$static.size_0 < this$static.data_0.length) { + oldData = this$static.data_0; + this$static.data_0 = this$static.newData(this$static.size_0); + arraycopy(oldData, 0, this$static.data_0, 0, this$static.size_0); + } +} + +function $toArray_9(this$static){ + var result; + result = this$static.newData(this$static.size_0); + this$static.size_0 > 0 && arraycopy(this$static.data_0, 0, result, 0, this$static.size_0); + return result; +} + +function $toArray_10(this$static, array){ + var newArray; + if (this$static.size_0 > 0) { + if (array.length < this$static.size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, this$static.size_0); + array = newArray; + } + arraycopy(this$static.data_0, 0, array, 0, this$static.size_0); + } + array.length > this$static.size_0 && setCheck(array, this$static.size_0, null); + return array; +} + +function BasicEList(){ +} + +function BasicEList_0(initialCapacity){ + if (initialCapacity < 0) { + throw toJs(new IllegalArgumentException_0('Illegal Capacity: ' + initialCapacity)); + } + this.data_0 = this.newData(initialCapacity); +} + +function BasicEList_1(collection){ + this.size_0 = collection.size_1(); + if (this.size_0 > 0) { + this.data_0 = this.newData(this.size_0 + (this.size_0 / 8 | 0) + 1); + collection.toArray_0(this.data_0); + } +} + +defineClass(63, 67, $intern_138, BasicEList, BasicEList_0, BasicEList_1); +_.addAllUnique = function addAllUnique(index_0, collection){ + return $addAllUnique(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_0(collection){ + return $addAllUnique_0(this, collection); +} +; +_.addUnique = function addUnique(index_0, object){ + $addUnique(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_0(object){ + $addUnique_0(this, object); +} +; +_.basicGet = function basicGet(index_0){ + return $basicGet(this, index_0); +} +; +_.clear_0 = function clear_52(){ + $clear_11(this); +} +; +_.contains = function contains_52(object){ + return $contains_10(this, object); +} +; +_.get_0 = function get_50(index_0){ + return $get_20(this, index_0); +} +; +_.grow = function grow(minimumCapacity){ + var newCapacity, oldCapacity, oldData; + ++this.modCount; + oldCapacity = this.data_0 == null?0:this.data_0.length; + if (minimumCapacity > oldCapacity) { + oldData = this.data_0; + newCapacity = oldCapacity + (oldCapacity / 2 | 0) + 4; + newCapacity < minimumCapacity && (newCapacity = minimumCapacity); + this.data_0 = this.newData(newCapacity); + oldData != null && arraycopy(oldData, 0, this.data_0, 0, this.size_0); + } +} +; +_.indexOf_0 = function indexOf_8(object){ + return $indexOf_4(this, object); +} +; +_.isEmpty = function isEmpty_26(){ + return this.size_0 == 0; +} +; +_.move = function move_1(targetIndex, sourceIndex){ + return $move(this, targetIndex, sourceIndex); +} +; +_.newData = function newData_0(capacity){ + return initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, capacity, 5, 1); +} +; +_.primitiveGet = function primitiveGet(index_0){ + return this.data_0[index_0]; +} +; +_.remove_2 = function remove_99(index_0){ + return $remove_33(this, index_0); +} +; +_.setUnique = function setUnique(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.size_1 = function size_65(){ + return this.size_0; +} +; +_.toArray = function toArray_26(){ + return $toArray_9(this); +} +; +_.toArray_0 = function toArray_27(array){ + return $toArray_10(this, array); +} +; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList', 63); +var Lorg_eclipse_emf_common_util_TreeIterator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'TreeIterator'); +function $hasAnyChildren(this$static){ + var nextPruneIterator; + nextPruneIterator = this$static.nextPruneIterator; + nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, nextPruneIterator); + return nextPruneIterator.hasNext_0(); +} + +function $next_14(this$static){ + var currentIterator, iterator, nextIterator, result, result0; + if (this$static.data_0 == null) { + this$static.nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, this$static.nextPruneIterator); + if (this$static.includeRoot) { + result0 = this$static.object; + return result0; + } + } + currentIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); + result = currentIterator.next_1(); + this$static.nextRemoveIterator = currentIterator; + iterator = this$static.getChildren(result); + if (iterator.hasNext_0()) { + this$static.nextPruneIterator = iterator; + $add_21(this$static, iterator); + } + else { + this$static.nextPruneIterator = null; + while (!currentIterator.hasNext_0()) { + setCheck(this$static.data_0, --this$static.size_0, null); + if (this$static.size_0 == 0) { + break; + } + nextIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); + currentIterator = nextIterator; + } + } + return result; +} + +function AbstractTreeIterator(object, includeRoot){ + this.object = object; + this.includeRoot = includeRoot; +} + +defineClass(694, 63, $intern_139); +_.forEachRemaining = function forEachRemaining_53(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_42(){ + return this.data_0 == null && !this.includeRoot?$hasAnyChildren(this):this.data_0 == null || this.size_0 != 0 && castTo(this.data_0[this.size_0 - 1], 47).hasNext_0(); +} +; +_.next_1 = function next_43(){ + return $next_14(this); +} +; +_.remove = function remove_100(){ + if (!this.nextRemoveIterator) { + throw toJs(new IllegalStateException_0('There is no valid object to remove.')); + } + this.nextRemoveIterator.remove(); +} +; +_.includeRoot = false; +var Lorg_eclipse_emf_common_util_AbstractTreeIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractTreeIterator', 694); +function ElkGraphUtil$PropertiesSkippingTreeIterator(object){ + AbstractTreeIterator.call(this, object, true); +} + +defineClass(685, 694, $intern_139, ElkGraphUtil$PropertiesSkippingTreeIterator); +_.getChildren = function getChildren(object){ + var iterator; + iterator = castTo(object, 56).eContents_0().iterator_0(); + instanceOf(iterator, 279) && castTo(iterator, 279).filter_0(new ElkGraphUtil$PropertiesSkippingTreeIterator$1); + return iterator; +} +; +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator', 685); +function ElkGraphUtil$PropertiesSkippingTreeIterator$1(){ +} + +defineClass(952, 1, {}, ElkGraphUtil$PropertiesSkippingTreeIterator$1); +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator$1_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator/1', 952); +function $clinit_ElkReflect(){ + $clinit_ElkReflect = emptyMethod; + REGISTRY_NEW = new HashMap; + REGISTRY_CLONE = new HashMap; + registerClone(Ljava_util_EnumSet_2_classLit, new ElkReflect$lambda$0$Type); +} + +function clone_11(clonee){ + $clinit_ElkReflect(); + if (instanceOf(clonee, 156)) { + return castTo($get_10(REGISTRY_CLONE, Ljava_util_EnumSet_2_classLit), 288).clone(clonee); + } + if ($containsKey_3(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee))) { + return castTo($get_10(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee)), 288).clone(clonee); + } + return null; +} + +function newInstance_10(clazz){ + $clinit_ElkReflect(); + return $containsKey_3(REGISTRY_NEW, clazz)?castTo($get_10(REGISTRY_NEW, clazz), 331).newInstance():null; +} + +function register(clazz, newFun, cloneFun){ + $clinit_ElkReflect(); + !!clazz && $put_6(REGISTRY_NEW, clazz, newFun); + !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); +} + +function registerClone(clazz, cloneFun){ + !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); +} + +var REGISTRY_CLONE, REGISTRY_NEW; +var Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect', null); +function ElkReflect$lambda$0$Type(){ +} + +defineClass(889, 1, $intern_130, ElkReflect$lambda$0$Type); +_.clone = function clone_12(o){ + return $clinit_ElkReflect() , $clone(castTo(o, 174)); +} +; +var Lorg_eclipse_elk_graph_util_ElkReflect$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect/lambda$0$Type', 889); +function $clinit_ElkJs(){ + $clinit_ElkJs = emptyMethod; + SERVICE = getInstance(); +} + +function collectLogs(currentPM, logObject, recordLogs, recordExecutionTime){ + var child, child$iterator, children, i, jsonChild, jsonExecTime, jsonLogs, jsonString, jsonTaskName, s, s$iterator; + jsonTaskName = new JSONString(currentPM.taskName); + $put_5(logObject, 'name', jsonTaskName); + if (recordLogs && !(!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).list.isEmpty()) { + jsonLogs = new JSONArray; + $put_5(logObject, 'logs', jsonLogs); + i = 0; + for (s$iterator = new Collections$UnmodifiableCollectionIterator((!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).coll.iterator_0()); s$iterator.it.hasNext_0();) { + s = castToString(s$iterator.it.next_1()); + jsonString = new JSONString(s); + $get_8(jsonLogs, i); + $set0(jsonLogs, i, jsonString); + ++i; + } + } + if (recordExecutionTime) { + jsonExecTime = new JSONNumber(currentPM.totalTime); + $put_5(logObject, 'executionTime', jsonExecTime); + } + if (!unmodifiableList(currentPM.children).list.isEmpty()) { + children = new JSONArray; + $put_5(logObject, 'children', children); + i = 0; + for (child$iterator = new Collections$UnmodifiableCollectionIterator(unmodifiableList(currentPM.children).coll.iterator_0()); child$iterator.it.hasNext_0();) { + child = castTo(child$iterator.it.next_1(), 1949); + jsonChild = new JSONObject; + $get_8(children, i); + $set0(children, i, jsonChild); + collectLogs(child, jsonChild, recordLogs, recordExecutionTime); + ++i; + } + } +} + +function exportLayout(){ + $clinit_ElkJs(); + function Dispatcher(worker){ + var _this = this; + this.dispatch = function(event_0){ + var data_0 = event_0.data; + switch (data_0.cmd) { + case 'algorithms': + var algs = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutAlgorithmMap)))); + worker.postMessage({id:data_0.id, data:algs}); + break; + case 'categories': + var cats = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutCategoryMap)))); + worker.postMessage({id:data_0.id, data:cats}); + break; + case 'options': + var opts = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutOptionMap)))); + worker.postMessage({id:data_0.id, data:opts}); + break; + case 'register': + registerLayoutAlgorithms(data_0.algorithms); + worker.postMessage({id:data_0.id}); + break; + case 'layout': + layout_11(data_0.graph, data_0.layoutOptions || {}, data_0.options || {}); + worker.postMessage({id:data_0.id, data:data_0.graph}); + break; + } + } + ; + this.saveDispatch = function(event_0){ + try { + _this.dispatch(event_0); + } + catch (err) { + worker.postMessage({id:event_0.data.id, error:err}); + } + } + ; + } + + function FakeWorker(url_0){ + var _this = this; + this.dispatcher = new Dispatcher({postMessage:function(msg){ + _this.onmessage({data:msg}); + } + }); + this.postMessage = function(msg){ + setTimeout(function(){ + _this.dispatcher.saveDispatch({data:msg}); + } + , 0); + } + ; + } + + if (typeof document === 'undefined' && typeof self !== 'undefined') { + var dispatcher = new Dispatcher(self); + self.onmessage = dispatcher.saveDispatch; + } + else if (typeof module !== 'undefined' && module.exports) { + Object.defineProperty(exports, '__esModule', {value:true}); + module.exports = {'default':FakeWorker, Worker:FakeWorker}; + } +} + +function getLayoutData(data_0){ + var arr, json, ld, ld$iterator; + arr = new JSONArray; + for (ld$iterator = new Collections$UnmodifiableCollectionIterator(data_0.coll.iterator_0()); ld$iterator.it.hasNext_0();) { + ld = castTo(ld$iterator.it.next_1(), 686); + json = toJson(ld); + $set_0(arr, arr.jsArray.length, json); + } + return arr.jsArray; +} + +function layout_11(graphObj, layoutOptionsObj, optionsObj){ + var _function, elkGraph, graph, importer, lc, logs, options, pm, recordExecutionTime, recordLogs, root; + graph = new JSONObject_0(graphObj); + importer = new JsonImporter; + elkGraph = ($clear_2(importer.nodeIdMap) , $clear_2(importer.portIdMap) , $reset(importer.edgeIdMap) , $clear_2(importer.edgeSectionIdMap) , $clear_2(importer.nodeJsonMap) , $reset(importer.portJsonMap) , $reset(importer.edgeJsonMap) , $reset(importer.edgeSectionJsonMap) , root = $transformNode_0(importer, graph, null) , $transformEdges_2(importer, graph) , root); + if (layoutOptionsObj) { + options = new JSONObject_0(layoutOptionsObj); + lc = optsToCfg(options); + applyVisitors(elkGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [lc])); + } + recordLogs = false; + recordExecutionTime = false; + if (optionsObj) { + options = new JSONObject_0(optionsObj); + 'logging' in options.jsObject && (recordLogs = $get_9(options, 'logging').isBoolean().value_0); + 'measureExecutionTime' in options.jsObject && (recordExecutionTime = $get_9(options, 'measureExecutionTime').isBoolean().value_0); + } + pm = $withExecutionTimeMeasurement($withLogging(new BasicProgressMonitor, recordLogs), recordExecutionTime); + $layout_3(new RecursiveGraphLayoutEngine, elkGraph, pm); + 'logging' in graph.jsObject && $put_5(graph, 'logging', null); + if (recordLogs || recordExecutionTime) { + logs = new JSONObject; + collectLogs(pm, logs, recordLogs, recordExecutionTime); + $put_5(graph, 'logging', logs); + } + _function = new JsonImporter$lambda$35$Type(importer); + forEach_43(new ElkGraphUtil$PropertiesSkippingTreeIterator(elkGraph), _function); +} + +function optsToCfg(opts){ + var jsonVal, key, key$iterator, keys_0, lc, option, serialized, value_0; + lc = new LayoutConfigurator; + $addFilter(lc, ($clinit_LayoutConfigurator() , NO_OVERWRITE)); + for (key$iterator = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new AbstractList$IteratorImpl(new Arrays$ArrayList((new JSONObject$1(opts, keys_0)).val$keys2))); key$iterator.i < key$iterator.this$01_0.size_1();) { + key = (checkCriticalElement(key$iterator.i < key$iterator.this$01_0.size_1()) , castToString(key$iterator.this$01_0.get_0(key$iterator.last = key$iterator.i++))); + option = $getOptionDataBySuffix(SERVICE, key); + if (option) { + jsonVal = $get_9(opts, key); + jsonVal.isString()?(serialized = jsonVal.isString().value_0):jsonVal.isBoolean()?(serialized = '' + jsonVal.isBoolean().value_0):jsonVal.isNumber()?(serialized = '' + jsonVal.isNumber().value_0):(serialized = jsonVal.toString_0()); + value_0 = $parseValue(option, serialized); + if (value_0 != null) { + ($containsEnum(option.targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(option.targets, PARENTS)) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkNode_2_classLit), option, value_0); + $containsEnum(option.targets, EDGES) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), option, value_0); + $containsEnum(option.targets, PORTS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkPort_2_classLit), option, value_0); + $containsEnum(option.targets, LABELS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), option, value_0); + } + } + } + return lc; +} + +function registerLayoutAlgorithms(arrayObj){ + var alg, arr, i; + $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); + arr = new JSONArray_0(arrayObj); + for (i = 0; i < arr.jsArray.length; ++i) { + alg = $get_8(arr, i).isString().value_0; + $equals_5(alg, 'layered')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new LayeredMetaDataProvider])):$equals_5(alg, 'force')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new ForceMetaDataProvider])):$equals_5(alg, 'stress')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new StressMetaDataProvider])):$equals_5(alg, 'mrtree')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new MrTreeMetaDataProvider])):$equals_5(alg, 'radial')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RadialMetaDataProvider])):$equals_5(alg, 'disco')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new PolyominoOptions, new DisCoMetaDataProvider])):$equals_5(alg, 'sporeOverlap') || $equals_5(alg, 'sporeCompaction')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new SporeMetaDataProvider])):$equals_5(alg, 'rectpacking') && $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RectPackingMetaDataProvider])); + } +} + +var SERVICE; +var Lorg_eclipse_emf_common_util_ResourceLocator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'ResourceLocator'); +function $getString(key){ + return $equals_5('_UI_EMFDiagnostic_marker', key)?'EMF Problem':$equals_5('_UI_CircularContainment_diagnostic', key)?'An object may not circularly contain itself':$equals_5('parser.parse.1', key)?'Wrong character.':$equals_5('parser.parse.2', key)?'Invalid reference number.':$equals_5('parser.next.1', key)?'A character is required after \\.':$equals_5('parser.next.2', key)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":$equals_5('parser.next.3', key)?"'(?<' or '(?= size_0 || targetIndex < 0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); + if (sourceIndex >= size_0 || sourceIndex < 0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); + targetIndex != sourceIndex?(object = (result = this$static.delegateRemove(sourceIndex) , this$static.delegateAdd(targetIndex, result) , result)):(object = this$static.delegateGet(sourceIndex)); + return object; +} + +function $remove_34(this$static, index_0){ + var oldObject; + ++this$static.modCount; + oldObject = this$static.delegateRemove(index_0); + return oldObject; +} + +defineClass(1995, 67, $intern_141); +_.addAllUnique = function addAllUnique_1(index_0, collection){ + return $addAllUnique_1(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_2(collection){ + var i, object, object$iterator; + ++this.modCount; + if (collection.isEmpty()) { + return false; + } + else { + i = this.delegateSize(); + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + this.delegateAdd_0(this.validate(i, object)); + ++i; + } + return true; + } +} +; +_.addUnique = function addUnique_1(index_0, object){ + $addUnique_1(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_2(object){ + $addUnique_2(this, object); +} +; +_.basicList = function basicList(){ + return this.delegateBasicList(); +} +; +_.clear_0 = function clear_53(){ + $doClear(this, this.delegateSize(), this.delegateToArray()); +} +; +_.contains = function contains_53(object){ + return this.delegateContains(object); +} +; +_.containsAll = function containsAll_11(collection){ + return this.delegateContainsAll(collection); +} +; +_.delegateAdd = function delegateAdd(index_0, object){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateAdd_0 = function delegateAdd_0(object){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateBasicList = function delegateBasicList(){ + return this.delegateList_1(); +} +; +_.delegateClear = function delegateClear(){ + this.delegateList_1().$_nullMethod(); +} +; +_.delegateContains = function delegateContains(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateContainsAll = function delegateContainsAll(collection){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateEquals = function delegateEquals(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateGet = function delegateGet(index_0){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateHashCode = function delegateHashCode(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateIndexOf = function delegateIndexOf(object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateIsEmpty = function delegateIsEmpty(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateRemove = function delegateRemove(index_0){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateSet = function delegateSet(index_0, object){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateSize = function delegateSize(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToArray = function delegateToArray(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToArray_0 = function delegateToArray_0(array){ + return this.delegateList_1().$_nullMethod(); +} +; +_.delegateToString = function delegateToString(){ + return this.delegateList_1().$_nullMethod(); +} +; +_.equals_0 = function equals_187(object){ + return this.delegateEquals(object); +} +; +_.get_0 = function get_51(index_0){ + return this.resolve(index_0, this.delegateGet(index_0)); +} +; +_.hashCode_1 = function hashCode_75(){ + return this.delegateHashCode(); +} +; +_.indexOf_0 = function indexOf_9(object){ + return this.delegateIndexOf(object); +} +; +_.isEmpty = function isEmpty_27(){ + return this.delegateIsEmpty(); +} +; +_.move = function move_2(targetIndex, sourceIndex){ + return $move_0(this, targetIndex, sourceIndex); +} +; +_.primitiveGet = function primitiveGet_0(index_0){ + return this.delegateGet(index_0); +} +; +_.remove_2 = function remove_101(index_0){ + return $remove_34(this, index_0); +} +; +_.remove_1 = function remove_102(object){ + var index_0; + index_0 = this.indexOf_0(object); + if (index_0 >= 0) { + this.remove_2(index_0); + return true; + } + else { + return false; + } +} +; +_.setUnique = function setUnique_0(index_0, object){ + return this.delegateSet(index_0, this.validate(index_0, object)); +} +; +_.size_1 = function size_66(){ + return this.delegateSize(); +} +; +_.toArray = function toArray_28(){ + return this.delegateToArray(); +} +; +_.toArray_0 = function toArray_29(array){ + return this.delegateToArray_0(array); +} +; +_.toString_0 = function toString_136(){ + return this.delegateToString(); +} +; +var Lorg_eclipse_emf_common_util_DelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'DelegatingEList', 1995); +function $addAllUnique_2(this$static, index_0, collection){ + var collectionSize, i, lastIndex, notification, notifications, oldIsSet, value_0; + collectionSize = collection.size_1(); + if (collectionSize == 0) { + return false; + } + else { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addAllUnique_1(this$static, index_0, collection); + notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + value_0 = this$static.delegateGet(i); + notifications = this$static.inverseAdd(value_0, notifications); + notifications = notifications; + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addAllUnique_1(this$static, index_0, collection); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + notifications = this$static.inverseAdd(this$static.delegateGet(i), notifications); + } + !!notifications && notifications.dispatch_0(); + } + } + return true; + } +} + +function $addUnique_3(this$static, index_0, object){ + var notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $addUnique_4(this$static, object){ + var index_0, notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique_2(this$static, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $basicAdd(this$static, object, notifications){ + var index_0, notification, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + ++this$static.modCount; + this$static.delegateAdd(index_0, this$static.validate(index_0, object)); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $addUnique_1(this$static, this$static.delegateSize(), object); + } + return notifications; +} + +function $basicRemove(this$static, object, notifications){ + var index_0, notification, oldIsSet, oldObject; + index_0 = this$static.indexOf_0(object); + if (index_0 != -1) { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + oldObject = $remove_34(this$static, index_0); + notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $remove_34(this$static, index_0); + } + } + return notifications; +} + +function $clear_12(this$static){ + var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize, size_0; + if (this$static.isNotificationRequired()) { + size_0 = this$static.delegateSize(); + oldIsSet = this$static.isSet_0(); + if (size_0 > 0) { + collection = new BasicEList_1(this$static.basicList()); + collectionSize = size_0; + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + $doClear(this$static, collectionSize, collection.data_0); + notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); + if (this$static.hasInverse()) { + for (i = new AbstractEList$EIterator(collection); i.cursor != i.this$01_2.size_1();) { + notifications = this$static.inverseRemove($doNext(i), notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); + } + } + else if (this$static.hasInverse()) { + size_0 = this$static.delegateSize(); + if (size_0 > 0) { + oldData = this$static.delegateToArray(); + oldSize = size_0; + $doClear(this$static, size_0, oldData); + notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); + for (i = 0; i < oldSize; ++i) { + object = oldData[i]; + notifications = this$static.inverseRemove(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + } + } + else { + $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); + } +} + +function $setUnique_0(this$static, index_0, object){ + var notification, notifications, oldIsSet, oldObject, oldObject0; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + notification = this$static.createNotification(1, oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject), object, index_0, oldIsSet); + if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { + !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, notifications)); + notifications = this$static.inverseAdd(object, notifications); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject0; + } + else { + oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject); + if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { + notifications = null; + !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, null)); + notifications = this$static.inverseAdd(object, notifications); + !!notifications && notifications.dispatch_0(); + } + return oldObject0; + } +} + +defineClass(1996, 1995, $intern_141); +_.addAllUnique = function addAllUnique_3(index_0, collection){ + return $addAllUnique_2(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_4(collection){ + return this.addAllUnique(this.delegateSize(), collection); +} +; +_.addUnique = function addUnique_3(index_0, object){ + $addUnique_3(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_4(object){ + $addUnique_4(this, object); +} +; +_.canContainNull = function canContainNull_0(){ + return !this.hasInverse(); +} +; +_.clear_0 = function clear_54(){ + $clear_12(this); +} +; +_.createNotification = function createNotification(eventType, oldObject, newObject, index_0, wasSet){ + return new DelegatingNotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification(notification){ + $eNotify(this.getNotifier(), notification); +} +; +_.getFeature = function getFeature(){ + return null; +} +; +_.getFeatureID_0 = function getFeatureID(){ + return -1; +} +; +_.getNotifier = function getNotifier(){ + return null; +} +; +_.hasInverse = function hasInverse(){ + return false; +} +; +_.inverseAdd = function inverseAdd(object, notifications){ + return notifications; +} +; +_.inverseRemove = function inverseRemove(object, notifications){ + return notifications; +} +; +_.isNotificationRequired = function isNotificationRequired(){ + return false; +} +; +_.isSet_0 = function isSet(){ + return !this.delegateIsEmpty(); +} +; +_.move = function move_3(targetIndex, sourceIndex){ + var object, oldIsSet; + if (this.isNotificationRequired()) { + oldIsSet = this.isSet_0(); + object = $move_0(this, targetIndex, sourceIndex); + this.dispatchNotification(this.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move_0(this, targetIndex, sourceIndex); + } +} +; +_.remove_2 = function remove_103(index_0){ + var notification, notifications, oldIsSet, oldObject; + if (this.isNotificationRequired()) { + notifications = null; + oldIsSet = this.isSet_0(); + notification = this.createNotification(4, oldObject = $remove_34(this, index_0), null, index_0, oldIsSet); + if (this.hasInverse() && !!oldObject) { + notifications = this.inverseRemove(oldObject, notifications); + if (!notifications) { + this.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $remove_34(this, index_0); + if (this.hasInverse() && !!oldObject) { + notifications = this.inverseRemove(oldObject, null); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} +; +_.setUnique = function setUnique_1(index_0, object){ + return $setUnique_0(this, index_0, object); +} +; +var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl', 1996); +function $add_22(this$static, newNotification){ + if (!newNotification) { + return false; + } + else { + if (this$static.merge_0(newNotification)) { + return false; + } + if (!this$static.next_0) { + if (instanceOf(newNotification, 143)) { + this$static.next_0 = castTo(newNotification, 143); + return true; + } + else { + this$static.next_0 = new NotificationChainImpl; + return this$static.next_0.add_5(newNotification); + } + } + else { + return this$static.next_0.add_5(newNotification); + } + } +} + +function $dispatch(this$static){ + var notifier; + notifier = this$static.getNotifier(); + notifier != null && this$static.eventType != -1 && castTo(notifier, 92).eNotify(this$static); + !!this$static.next_0 && this$static.next_0.dispatch_0(); +} + +function $getNewBooleanValue(this$static){ + if (this$static.primitiveType != 0) + throw toJs(new IllegalStateException); + return neq(this$static.newSimplePrimitiveValue, 0); +} + +function $getNewByteValue(this$static){ + if (this$static.primitiveType != 1) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) << 24 >> 24; +} + +function $getNewCharValue(this$static){ + if (this$static.primitiveType != 2) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) & $intern_46; +} + +function $getNewDoubleValue(this$static){ + if (this$static.primitiveType != 3) + throw toJs(new IllegalStateException); + return this$static.newIEEEPrimitiveValue; +} + +function $getNewFloatValue(this$static){ + if (this$static.primitiveType != 4) + throw toJs(new IllegalStateException); + return this$static.newIEEEPrimitiveValue; +} + +function $getNewIntValue(this$static){ + if (this$static.primitiveType != 5) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue); +} + +function $getNewLongValue(this$static){ + if (this$static.primitiveType != 6) + throw toJs(new IllegalStateException); + return this$static.newSimplePrimitiveValue; +} + +function $getNewShortValue(this$static){ + if (this$static.primitiveType != 7) + throw toJs(new IllegalStateException); + return toInt_0(this$static.newSimplePrimitiveValue) << 16 >> 16; +} + +function $getNewValue(this$static){ + if (this$static.newValue == null) { + switch (this$static.primitiveType) { + case 0: + this$static.newValue = $getNewBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); + break; + case 1: + this$static.newValue = valueOf_2($getNewByteValue(this$static)); + break; + case 2: + this$static.newValue = valueOf_3($getNewCharValue(this$static)); + break; + case 3: + this$static.newValue = $getNewDoubleValue(this$static); + break; + case 4: + this$static.newValue = new Float($getNewFloatValue(this$static)); + break; + case 6: + this$static.newValue = valueOf_5($getNewLongValue(this$static)); + break; + case 5: + this$static.newValue = valueOf_4($getNewIntValue(this$static)); + break; + case 7: + this$static.newValue = valueOf_6($getNewShortValue(this$static)); + } + } + return this$static.newValue; +} + +function $getOldBooleanValue(this$static){ + if (this$static.primitiveType != 0) + throw toJs(new IllegalStateException); + return neq(this$static.oldSimplePrimitiveValue, 0); +} + +function $getOldByteValue(this$static){ + if (this$static.primitiveType != 1) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; +} + +function $getOldCharValue(this$static){ + if (this$static.primitiveType != 2) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46; +} + +function $getOldDoubleValue(this$static){ + if (this$static.primitiveType != 3) + throw toJs(new IllegalStateException); + return this$static.oldIEEEPrimitiveValue; +} + +function $getOldFloatValue(this$static){ + if (this$static.primitiveType != 4) + throw toJs(new IllegalStateException); + return this$static.oldIEEEPrimitiveValue; +} + +function $getOldIntValue(this$static){ + if (this$static.primitiveType != 5) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue); +} + +function $getOldLongValue(this$static){ + if (this$static.primitiveType != 6) + throw toJs(new IllegalStateException); + return this$static.oldSimplePrimitiveValue; +} + +function $getOldShortValue(this$static){ + if (this$static.primitiveType != 7) + throw toJs(new IllegalStateException); + return toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; +} + +function $getOldValue(this$static){ + if (this$static.oldValue == null) { + switch (this$static.primitiveType) { + case 0: + this$static.oldValue = $getOldBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); + break; + case 1: + this$static.oldValue = valueOf_2($getOldByteValue(this$static)); + break; + case 2: + this$static.oldValue = valueOf_3($getOldCharValue(this$static)); + break; + case 3: + this$static.oldValue = $getOldDoubleValue(this$static); + break; + case 4: + this$static.oldValue = new Float($getOldFloatValue(this$static)); + break; + case 6: + this$static.oldValue = valueOf_5($getOldLongValue(this$static)); + break; + case 5: + this$static.oldValue = valueOf_4($getOldIntValue(this$static)); + break; + case 7: + this$static.oldValue = valueOf_6($getOldShortValue(this$static)); + } + } + return this$static.oldValue; +} + +function $isTouch(this$static){ + switch (this$static.eventType) { + case 9: + case 8: + { + return true; + } + + case 3: + case 5: + case 4: + case 6: + { + return false; + } + + case 7: + { + return castTo($getOldValue(this$static), 19).value_0 == this$static.position; + } + + case 1: + case 2: + { + if (this$static.position == -2) { + return false; + } + else { + switch (this$static.primitiveType) { + case 0: + case 1: + case 2: + case 6: + case 5: + case 7: + { + return eq(this$static.oldSimplePrimitiveValue, this$static.newSimplePrimitiveValue); + } + + case 3: + case 4: + { + return this$static.oldIEEEPrimitiveValue == this$static.newIEEEPrimitiveValue; + } + + default:{ + return this$static.oldValue == null?this$static.newValue == null:equals_Ljava_lang_Object__Z__devirtual$(this$static.oldValue, this$static.newValue); + } + + } + } + } + + default:{ + return false; + } + + } +} + +function $wasSet(this$static){ + var defaultValue; + switch (this$static.eventType) { + case 1: + { + if (this$static.isFeatureUnsettable()) { + return this$static.position != -2; + } + break; + } + + case 2: + { + if (this$static.isFeatureUnsettable()) { + return this$static.position == -2; + } + break; + } + + case 3: + case 5: + case 4: + case 6: + case 7: + { + return this$static.position > -2; + } + + default:{ + return false; + } + + } + defaultValue = this$static.getFeatureDefaultValue(); + switch (this$static.primitiveType) { + case 0: + return defaultValue != null && $booleanValue(castToBoolean(defaultValue)) != neq(this$static.oldSimplePrimitiveValue, 0); + case 1: + return defaultValue != null && castTo(defaultValue, 217).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; + case 2: + return defaultValue != null && castTo(defaultValue, 172).value_0 != (toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46); + case 6: + return defaultValue != null && neq(castTo(defaultValue, 162).value_0, this$static.oldSimplePrimitiveValue); + case 5: + return defaultValue != null && castTo(defaultValue, 19).value_0 != toInt_0(this$static.oldSimplePrimitiveValue); + case 7: + return defaultValue != null && castTo(defaultValue, 184).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; + case 3: + return defaultValue != null && $doubleValue(castToDouble(defaultValue)) != this$static.oldIEEEPrimitiveValue; + case 4: + return defaultValue != null && castTo(defaultValue, 155).value_0 != this$static.oldIEEEPrimitiveValue; + default:return defaultValue == null?this$static.oldValue != null:!equals_Ljava_lang_Object__Z__devirtual$(defaultValue, this$static.oldValue); + } +} + +function NotificationImpl(eventType, oldDoubleValue, newDoubleValue){ + this.eventType = eventType; + this.oldIEEEPrimitiveValue = oldDoubleValue; + this.newIEEEPrimitiveValue = newDoubleValue; + this.position = -1; + this.primitiveType = 3; +} + +function NotificationImpl_0(eventType, oldIntValue, newIntValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldIntValue; + this.newSimplePrimitiveValue = newIntValue; + this.position = -1; + this.primitiveType = 5; +} + +function NotificationImpl_1(eventType, oldValue, newValue, position){ + this.eventType = eventType; + this.oldValue = oldValue; + this.newValue = newValue; + this.position = position; + this.primitiveType = -1; +} + +function NotificationImpl_2(eventType, oldValue, newValue, position, wasSet){ + this.eventType = eventType; + this.oldValue = oldValue; + this.newValue = newValue; + this.position = position; + this.primitiveType = -1; + wasSet || (this.position = -2 - position - 1); +} + +function NotificationImpl_3(eventType, oldBooleanValue, newBooleanValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldBooleanValue?1:0; + this.newSimplePrimitiveValue = newBooleanValue?1:0; + this.position = -1; + this.primitiveType = 0; +} + +defineClass(143, 1, $intern_142); +_.add_5 = function add_48(newNotification){ + return $add_22(this, newNotification); +} +; +_.dispatch_0 = function dispatch(){ + $dispatch(this); +} +; +_.getEventType = function getEventType(){ + return this.eventType; +} +; +_.getFeature = function getFeature_0(){ + return null; +} +; +_.getFeatureDefaultValue = function getFeatureDefaultValue(){ + return null; +} +; +_.getFeatureID = function getFeatureID_0(expectedClass){ + return -1; +} +; +_.getNewValue = function getNewValue(){ + return $getNewValue(this); +} +; +_.getNotifier = function getNotifier_0(){ + return null; +} +; +_.getOldValue = function getOldValue(){ + return $getOldValue(this); +} +; +_.getPosition_0 = function getPosition_2(){ + return this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; +} +; +_.isFeatureUnsettable = function isFeatureUnsettable(){ + return false; +} +; +_.merge_0 = function merge_3(notification){ + var index_0, list, newPositions, notificationEventType, notificationNotifier, notificationPosition, oldPosition, originalPosition, originalWasSet, positions, removedValues; + switch (this.eventType) { + case 1: + case 2: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 1: + case 2: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + this.newValue = notification.getNewValue(); + notification.getEventType() == 1 && (this.eventType = 1); + return true; + } + } + + } + } + + case 4: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + originalWasSet = $wasSet(this); + originalPosition = this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; + notificationPosition = notification.getPosition_0(); + this.eventType = 6; + removedValues = new BasicEList_0(2); + if (originalPosition <= notificationPosition) { + $add_21(removedValues, this.oldValue); + $add_21(removedValues, notification.getOldValue()); + this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = originalPosition, notificationPosition + 1]); + } + else { + $add_21(removedValues, notification.getOldValue()); + $add_21(removedValues, this.oldValue); + this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = notificationPosition, originalPosition]); + } + this.oldValue = removedValues; + originalWasSet || (this.position = -2 - this.position - 1); + return true; + } + break; + } + + } + break; + } + + case 6: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { + originalWasSet = $wasSet(this); + notificationPosition = notification.getPosition_0(); + positions = castTo(this.newValue, 48); + newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); + index_0 = 0; + while (index_0 < positions.length) { + oldPosition = positions[index_0]; + if (oldPosition <= notificationPosition) { + newPositions[index_0++] = oldPosition; + ++notificationPosition; + } + else { + break; + } + } + list = castTo(this.oldValue, 15); + list.add_3(index_0, notification.getOldValue()); + newPositions[index_0] = notificationPosition; + while (++index_0 < newPositions.length) { + newPositions[index_0] = positions[index_0 - 1]; + } + this.newValue = newPositions; + originalWasSet || (this.position = -2 - newPositions[0]); + return true; + } + break; + } + + } + break; + } + + } + return false; +} +; +_.toString_0 = function toString_137(){ + var i, number, positions, result; + result = new StringBuffer_1($getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16))); + result.string += ' (eventType: '; + switch (this.eventType) { + case 1: + { + result.string += 'SET'; + break; + } + + case 2: + { + result.string += 'UNSET'; + break; + } + + case 3: + { + result.string += 'ADD'; + break; + } + + case 5: + { + result.string += 'ADD_MANY'; + break; + } + + case 4: + { + result.string += 'REMOVE'; + break; + } + + case 6: + { + result.string += 'REMOVE_MANY'; + break; + } + + case 7: + { + result.string += 'MOVE'; + break; + } + + case 8: + { + result.string += 'REMOVING_ADAPTER'; + break; + } + + case 9: + { + result.string += 'RESOLVE'; + break; + } + + default:{ + $append_1(result, this.eventType); + break; + } + + } + $isTouch(this) && (result.string += ', touch: true' , result); + result.string += ', position: '; + $append_1(result, this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position); + result.string += ', notifier: '; + $append_2(result, this.getNotifier()); + result.string += ', feature: '; + $append_2(result, this.getFeature()); + result.string += ', oldValue: '; + $append_2(result, $getOldValue(this)); + result.string += ', newValue: '; + if (this.eventType == 6 && instanceOf(this.newValue, 48)) { + positions = castTo(this.newValue, 48); + result.string += '['; + for (i = 0; i < positions.length;) { + result.string += positions[i]; + ++i < positions.length && (result.string += ', ' , result); + } + result.string += ']'; + } + else { + $append_2(result, $getNewValue(this)); + } + result.string += ', isTouch: '; + $append_4(result, $isTouch(this)); + result.string += ', wasSet: '; + $append_4(result, $wasSet(this)); + result.string += ')'; + return result.string; +} +; +_.eventType = 0; +_.newIEEEPrimitiveValue = 0; +_.newSimplePrimitiveValue = 0; +_.oldIEEEPrimitiveValue = 0; +_.oldSimplePrimitiveValue = 0; +_.position = 0; +_.primitiveType = 0; +var Lorg_eclipse_emf_common_notify_impl_NotificationImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationImpl', 143); +function DelegatingNotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ + this.this$01 = this$0; + NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); +} + +defineClass(1167, 143, $intern_142, DelegatingNotifyingListImpl$1); +_.getFeature = function getFeature_1(){ + return this.this$01.getFeature(); +} +; +_.getFeatureID = function getFeatureID_1(expectedClass){ + return this.this$01.getFeatureID_0(); +} +; +_.getNotifier = function getNotifier_1(){ + return this.this$01.getNotifier(); +} +; +var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl/1', 1167); +function $add_23(this$static, newNotification){ + var i, notification; + if (!newNotification) { + return false; + } + else { + for (i = 0; i < this$static.size_0; ++i) { + notification = castTo(this$static.data_0[i], 366); + if (notification.merge_0(newNotification)) { + return false; + } + } + return $add_21(this$static, newNotification); + } +} + +function NotificationChainImpl(){ +} + +function NotificationChainImpl_0(initialCapacity){ + BasicEList_0.call(this, initialCapacity); +} + +defineClass(242, 63, $intern_138, NotificationChainImpl, NotificationChainImpl_0); +_.add_2 = function add_49(newNotification){ + return $add_23(this, castTo(newNotification, 366)); +} +; +_.add_5 = function add_50(newNotification){ + return $add_23(this, newNotification); +} +; +_.dispatch_0 = function dispatch_0(){ + var i, notification, notifier; + for (i = 0; i < this.size_0; ++i) { + notification = castTo(this.data_0[i], 366); + notifier = notification.getNotifier(); + notifier != null && notification.getEventType() != -1 && castTo(notifier, 92).eNotify(notification); + } +} +; +_.newData = function newData_1(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Notification_2_classLit, $intern_2, 366, capacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotificationChainImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationChainImpl', 242); +defineClass(1378, 90, $intern_133); +_.eBasicAdapters = function eBasicAdapters_1(){ + return this.eAdapters; +} +; +_.eDeliver = function eDeliver_1(){ + return (this.eFlags & 1) != 0; +} +; +_.eFlags = 1; +var Lorg_eclipse_emf_common_notify_impl_NotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifierImpl', 1378); +function $addAllUnique_3(this$static, index_0, collection){ + var collectionSize, i, lastIndex, notification, notifications, object, oldIsSet, value_0; + collectionSize = collection.size_1(); + if (collectionSize == 0) { + return false; + } + else { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addAllUnique(this$static, index_0, collection); + notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + value_0 = this$static.data_0[i]; + notifications = this$static.inverseAdd(value_0, notifications); + notifications = this$static.shadowAdd(value_0, notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addAllUnique(this$static, index_0, collection); + if (this$static.hasInverse()) { + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + lastIndex = index_0 + collectionSize; + for (i = index_0; i < lastIndex; ++i) { + object = this$static.data_0[i]; + notifications = this$static.inverseAdd(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + } + return true; + } +} + +function $addUnique_5(this$static, index_0, object){ + var notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + $addUnique(this$static, index_0, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique(this$static, index_0, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $addUnique_6(this$static, object){ + var index_0, notification, notifications, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.size_0; + oldIsSet = this$static.isSet_0(); + $addUnique_0(this$static, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.dispatchNotification(notification); + } + } + else { + $addUnique_0(this$static, object); + if (this$static.hasInverse()) { + notifications = this$static.inverseAdd(object, null); + !!notifications && notifications.dispatch_0(); + } + } +} + +function $basicAdd_0(this$static, object, notifications){ + var index_0, notification, oldIsSet; + if (this$static.isNotificationRequired()) { + index_0 = this$static.size_0; + oldIsSet = this$static.isSet_0(); + $addUnique(this$static, index_0, object); + notification = this$static.createNotification(3, null, object, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $addUnique(this$static, this$static.size_0, object); + } + return notifications; +} + +function $basicRemove_0(this$static, object, notifications){ + var index_0, notification, oldIsSet, oldObject; + index_0 = this$static.indexOf_0(object); + if (index_0 != -1) { + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + oldObject = $remove_33(this$static, index_0); + notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); + !notifications?(notifications = notification):notifications.add_5(notification); + } + else { + $remove_33(this$static, index_0); + } + } + return notifications; +} + +function $clear_13(this$static){ + var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + if (this$static.size_0 > 0) { + collection = new BasicEList$UnmodifiableEList(this$static.size_0, this$static.data_0); + collectionSize = this$static.size_0; + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + if (this$static.hasShadow()) { + for (i = 0; i < this$static.size_0; ++i) { + object = this$static.data_0[i]; + notifications = this$static.shadowRemove(object, notifications); + } + } + $clear_11(this$static); + notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); + if (this$static.hasInverse()) { + for (i = new AbstractEList$NonResolvingEIterator(collection); i.cursor != i.this$01_2.size_1();) { + notifications = this$static.inverseRemove($doNext_0(i), notifications); + } + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + } + else { + $clear_11(this$static); + this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); + } + } + else if (this$static.hasInverse()) { + if (this$static.size_0 > 0) { + oldData = this$static.data_0; + oldSize = this$static.size_0; + $clear_11(this$static); + notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); + for (i = 0; i < oldSize; ++i) { + object = oldData[i]; + notifications = this$static.inverseRemove(object, notifications); + } + !!notifications && notifications.dispatch_0(); + } + else { + $clear_11(this$static); + } + } + else { + $clear_11(this$static); + } +} + +function $createNotificationChain(capacity){ + return capacity < 100?null:new NotificationChainImpl_0(capacity); +} + +function $move_1(this$static, targetIndex, sourceIndex){ + var object, oldIsSet; + if (this$static.isNotificationRequired()) { + oldIsSet = this$static.isSet_0(); + object = $move(this$static, targetIndex, sourceIndex); + this$static.dispatchNotification(this$static.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move(this$static, targetIndex, sourceIndex); + } +} + +function $remove_35(this$static, index_0){ + var notification, notifications, oldIsSet, oldObject; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + this$static.hasShadow() && (notifications = this$static.shadowRemove(this$static.basicGet(index_0), null)); + notification = this$static.createNotification(4, oldObject = $remove_33(this$static, index_0), null, index_0, oldIsSet); + if (this$static.hasInverse() && oldObject != null) { + notifications = this$static.inverseRemove(oldObject, notifications); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $remove_33(this$static, index_0); + if (this$static.hasInverse() && oldObject != null) { + notifications = this$static.inverseRemove(oldObject, null); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} + +function $removeAll_4(this$static, collection){ + var collectionSize, count, i, i0, i1, initialObject, j, list, listSize, notification, notifications, object, objects, oldIsSet, oldPositions, positions, repeat, result, resultList; + oldIsSet = this$static.size_0 != 0; + result = false; + positions = null; + if ($eNotificationRequired(this$static.owner)) { + listSize = collection.size_1(); + if (listSize > 0) { + notifications = listSize < 100?null:new NotificationChainImpl_0(listSize); + list = new BasicEList_1(collection); + objects = list.data_0; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, listSize, 15, 1); + count = 0; + resultList = new BasicEList_0(listSize); + for (i = 0; i < this$static.size_0; ++i) { + initialObject = this$static.data_0[i]; + object = initialObject; + LOOP: for (repeat = 0; repeat < 2; ++repeat) { + for (j = listSize; --j >= 0;) { + if (object != null?equals_Ljava_lang_Object__Z__devirtual$(object, objects[j]):maskUndefined(object) === maskUndefined(objects[j])) { + if (positions.length <= count) { + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, 2 * positions.length, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + positions[count++] = i; + $add_21(resultList, objects[j]); + break LOOP; + } + } + object = object; + if (maskUndefined(object) === maskUndefined(initialObject)) { + break; + } + } + } + list = resultList; + objects = resultList.data_0; + listSize = count; + if (count > positions.length) { + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + if (count > 0) { + result = true; + for (i0 = 0; i0 < count; ++i0) { + object = objects[i0]; + notifications = $shadowRemove_2(this$static, castTo(object, 72), notifications); + } + for (i1 = count; --i1 >= 0;) { + $remove_33(this$static, positions[i1]); + } + if (count != listSize) { + for (i = listSize; --i >= count;) { + $remove_33(list, i); + } + oldPositions = positions; + positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); + arraycopy(oldPositions, 0, positions, 0, count); + } + collection = list; + } + } + } + else { + collection = $getDuplicates(this$static, collection); + for (i = this$static.size_0; --i >= 0;) { + if (collection.contains(this$static.data_0[i])) { + $remove_33(this$static, i); + result = true; + } + } + } + if (result) { + if (positions != null) { + collectionSize = collection.size_1(); + notification = collectionSize == 1?$createNotification(this$static, 4, collection.iterator_0().next_1(), null, positions[0], oldIsSet):$createNotification(this$static, 6, collection, positions, positions[0], oldIsSet); + notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); + for (i = collection.iterator_0(); i.hasNext_0();) { + object = i.next_1(); + notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); + } + if (!notifications) { + $eNotify(this$static.owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + notifications = $createNotificationChain(collection.size_1()); + for (i = collection.iterator_0(); i.hasNext_0();) { + object = i.next_1(); + notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); + } + !!notifications && notifications.dispatch_0(); + } + return true; + } + else { + return false; + } +} + +function $setUnique_1(this$static, index_0, object){ + var notification, notifications, oldIsSet, oldObject; + if (this$static.isNotificationRequired()) { + notifications = null; + oldIsSet = this$static.isSet_0(); + notification = this$static.createNotification(1, oldObject = $setUnique(this$static, index_0, object), object, index_0, oldIsSet); + if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { + oldObject != null && (notifications = this$static.inverseRemove(oldObject, notifications)); + notifications = this$static.inverseAdd(object, notifications); + this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); + if (!notifications) { + this$static.dispatchNotification(notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + return oldObject; + } + else { + oldObject = $setUnique(this$static, index_0, object); + if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { + notifications = null; + oldObject != null && (notifications = this$static.inverseRemove(oldObject, null)); + notifications = this$static.inverseAdd(object, notifications); + !!notifications && notifications.dispatch_0(); + } + return oldObject; + } +} + +defineClass(1993, 63, $intern_138); +_.addAllUnique = function addAllUnique_5(index_0, collection){ + return $addAllUnique_3(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_6(collection){ + return this.addAllUnique(this.size_0, collection); +} +; +_.addUnique = function addUnique_5(index_0, object){ + $addUnique_5(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_6(object){ + $addUnique_6(this, object); +} +; +_.canContainNull = function canContainNull_1(){ + return !this.hasInverse(); +} +; +_.clear_0 = function clear_55(){ + $clear_13(this); +} +; +_.createNotification = function createNotification_0(eventType, oldObject, newObject, index_0, wasSet){ + return new NotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_0(notification){ + $eNotify(this.getNotifier(), notification); +} +; +_.getFeature = function getFeature_2(){ + return null; +} +; +_.getFeatureID_0 = function getFeatureID_2(){ + return -1; +} +; +_.getNotifier = function getNotifier_2(){ + return null; +} +; +_.hasInverse = function hasInverse_0(){ + return false; +} +; +_.hasShadow = function hasShadow(){ + return false; +} +; +_.inverseAdd = function inverseAdd_0(object, notifications){ + return notifications; +} +; +_.inverseRemove = function inverseRemove_0(object, notifications){ + return notifications; +} +; +_.isNotificationRequired = function isNotificationRequired_0(){ + return false; +} +; +_.isSet_0 = function isSet_0(){ + return this.size_0 != 0; +} +; +_.move = function move_4(targetIndex, sourceIndex){ + return $move_1(this, targetIndex, sourceIndex); +} +; +_.remove_2 = function remove_104(index_0){ + return $remove_35(this, index_0); +} +; +_.setUnique = function setUnique_2(index_0, object){ + return $setUnique_1(this, index_0, object); +} +; +_.shadowAdd = function shadowAdd(object, notifications){ + return notifications; +} +; +_.shadowRemove = function shadowRemove(object, notifications){ + return notifications; +} +; +_.shadowSet = function shadowSet(oldObject, newObject, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl', 1993); +function NotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ + this.this$01 = this$0; + NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); +} + +defineClass(1166, 143, $intern_142, NotifyingListImpl$1); +_.getFeature = function getFeature_3(){ + return this.this$01.getFeature(); +} +; +_.getFeatureID = function getFeatureID_3(expectedClass){ + return this.this$01.getFeatureID_0(); +} +; +_.getNotifier = function getNotifier_3(){ + return this.this$01.getNotifier(); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl/1', 1166); +function AbstractEList$1(this$0, $anonymous0){ + this.this$01 = this$0; + BasicEList_0.call(this, $anonymous0); +} + +defineClass(953, 63, $intern_138, AbstractEList$1); +_.contains = function contains_54(object){ + if (this.size_0 > 10) { + if (!this.set_0 || this.this$01.modCount != this.expectedModCount) { + this.set_0 = new HashSet_1(this); + this.expectedModCount = this.modCount; + } + return $contains_6(this.set_0, object); + } + else { + return $contains_10(this, object); + } +} +; +_.useEquals = function useEquals_0(){ + return true; +} +; +_.expectedModCount = 0; +var Lorg_eclipse_emf_common_util_AbstractEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/1', 953); +function AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0){ + IndexOutOfBoundsException_0.call(this, 'index=' + index_0 + ', size=' + size_0); +} + +defineClass(295, 73, $intern_57, AbstractEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_AbstractEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/BasicIndexOutOfBoundsException', 295); +function $doNext(this$static){ + var next; + try { + next = this$static.this$01_2.get_0(this$static.cursor); + this$static.checkModCount(); + this$static.lastCursor = this$static.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this$static.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} + +function $remove_36(this$static){ + if (this$static.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + this$static.checkModCount(); + try { + this$static.this$01_2.remove_2(this$static.lastCursor); + this$static.expectedModCount = this$static.this$01_2.modCount; + this$static.lastCursor < this$static.cursor && --this$static.cursor; + this$static.lastCursor = -1; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$EIterator(this$0){ + this.this$01_2 = this$0; + this.expectedModCount = this.this$01_2.modCount; +} + +defineClass(40, 1, $intern_6, AbstractEList$EIterator); +_.forEachRemaining = function forEachRemaining_54(consumer){ + $forEachRemaining(this, consumer); +} +; +_.checkModCount = function checkModCount(){ + if (this.this$01_2.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.doNext = function doNext(){ + return $doNext(this); +} +; +_.hasNext_0 = function hasNext_43(){ + return this.cursor != this.this$01_2.size_1(); +} +; +_.next_1 = function next_44(){ + return this.doNext(); +} +; +_.remove = function remove_105(){ + $remove_36(this); +} +; +_.cursor = 0; +_.expectedModCount = 0; +_.lastCursor = -1; +var Lorg_eclipse_emf_common_util_AbstractEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EIterator', 40); +function $doAdd_0(this$static, object){ + this$static.checkModCount(); + try { + this$static.this$01_1.add_3(this$static.cursor++, object); + this$static.expectedModCount = this$static.this$01_1.modCount; + this$static.lastCursor = -1; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function $doSet(this$static, object){ + if (this$static.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + this$static.checkModCount(); + try { + this$static.this$01_1.set_2(this$static.lastCursor, object); + this$static.expectedModCount = this$static.this$01_1.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$EListIterator(this$0){ + this.this$01_1 = this$0; + AbstractEList$EIterator.call(this, this$0); +} + +function AbstractEList$EListIterator_0(this$0, index_0){ + this.this$01_1 = this$0; + AbstractEList$EIterator.call(this, this$0); + this.cursor = index_0; +} + +defineClass(278, 40, $intern_14, AbstractEList$EListIterator, AbstractEList$EListIterator_0); +_.remove = function remove_106(){ + $remove_36(this); +} +; +_.add_1 = function add_51(object){ + $doAdd_0(this, object); +} +; +_.doPrevious = function doPrevious(){ + var previous; + try { + previous = this.this$01_1.get_0(--this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor; + return previous; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.doSet = function doSet(object){ + $doSet(this, object); +} +; +_.hasPrevious = function hasPrevious_7(){ + return this.cursor != 0; +} +; +_.nextIndex_0 = function nextIndex_8(){ + return this.cursor; +} +; +_.previous_0 = function previous_8(){ + return this.doPrevious(); +} +; +_.previousIndex = function previousIndex_7(){ + return this.cursor - 1; +} +; +_.set_1 = function set_22(object){ + this.doSet(object); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EListIterator', 278); +function $doNext_0(this$static){ + var next; + try { + next = this$static.this$01_0.primitiveGet(this$static.cursor); + this$static.checkModCount(); + this$static.lastCursor = this$static.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this$static.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} + +function AbstractEList$NonResolvingEIterator(this$0){ + this.this$01_0 = this$0; + AbstractEList$EIterator.call(this, this$0); +} + +defineClass(341, 40, $intern_6, AbstractEList$NonResolvingEIterator); +_.doNext = function doNext_0(){ + return $doNext_0(this); +} +; +_.remove = function remove_107(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEIterator', 341); +function AbstractEList$NonResolvingEListIterator(this$0){ + this.this$01_0 = this$0; + AbstractEList$EListIterator.call(this, this$0); +} + +function AbstractEList$NonResolvingEListIterator_0(this$0, index_0){ + this.this$01_0 = this$0; + AbstractEList$EListIterator_0.call(this, this$0, index_0); +} + +defineClass(385, 278, $intern_14, AbstractEList$NonResolvingEListIterator, AbstractEList$NonResolvingEListIterator_0); +_.add_1 = function add_52(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.doNext = function doNext_1(){ + var next; + try { + next = this.this$01_0.primitiveGet(this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor++; + return next; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.doPrevious = function doPrevious_0(){ + var previous; + try { + previous = this.this$01_0.primitiveGet(--this.cursor); + this.checkModCount(); + this.lastCursor = this.cursor; + return previous; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.remove = function remove_108(){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_23(object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEListIterator', 385); +function newInstance_11(componentType, size_0){ + var helper; + helper = castTo($get_10(($clinit_Reflect() , HELPER_REGISTRY), componentType), 55); + return helper?helper.newArrayInstance(size_0):initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); +} + +function $clinit_ArrayDelegatingEList(){ + $clinit_ArrayDelegatingEList = emptyMethod; + EMPTY_ARRAY = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $assign_0(data_0, index_0, object){ + setCheck(data_0, index_0, object); + return object; +} + +function $copy_0(this$static){ + var data_0, newData; + data_0 = castTo($getField(this$static.this$01, 4), 126); + if (data_0 != null) { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, data_0.length, 0, 1); + arraycopy(data_0, 0, newData, 0, data_0.length); + return newData; + } + else { + return EMPTY_ARRAY; + } +} + +function $grow(this$static, size_0){ + var data_0, oldData; + oldData = castTo($getField(this$static.this$01, 4), 126); + data_0 = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); + oldData != null && arraycopy(oldData, 0, data_0, 0, oldData.length); + return data_0; +} + +function $remove_37(this$static, index_0){ + var data_0, newData, oldObject, shifted, size_0; + data_0 = castTo($getField(this$static.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + oldObject = data_0[index_0]; + if (size_0 == 1) { + newData = null; + } + else { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0 - 1, 0, 1); + arraycopy(data_0, 0, newData, 0, index_0); + shifted = size_0 - index_0 - 1; + shifted > 0 && arraycopy(data_0, index_0 + 1, newData, index_0, shifted); + } + $setData(this$static, newData); + $didRemove_0(this$static, index_0, oldObject); + return oldObject; +} + +defineClass(1982, 67, $intern_144); +_.addAllUnique = function addAllUnique_7(index_0, collection){ + var currentIndex, data_0, growth, i, i0, object, objects, oldData, oldSize, shifted, size_0; + growth = collection.size_1(); + if (growth != 0) { + oldData = castTo($getField(this.this$01, 4), 126); + oldSize = oldData == null?0:oldData.length; + size_0 = oldSize + growth; + data_0 = $grow(this, size_0); + shifted = oldSize - index_0; + shifted > 0 && arraycopy(oldData, index_0, data_0, index_0 + growth, shifted); + objects = collection.iterator_0(); + for (i0 = 0; i0 < growth; ++i0) { + object = objects.next_1(); + currentIndex = index_0 + i0; + $assign_0(data_0, currentIndex, $validate(this, object)); + } + $setData(this, data_0); + for (i = 0; i < growth; ++i) { + object = data_0[index_0]; + this.didAdd(index_0, object); + ++index_0; + } + return true; + } + else { + ++this.modCount; + return false; + } +} +; +_.addAllUnique_0 = function addAllUnique_8(collection){ + var data_0, data0, growth, i, i0, object, objects, oldSize, size_0; + growth = collection.size_1(); + if (growth != 0) { + oldSize = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); + size_0 = oldSize + growth; + data_0 = $grow(this, size_0); + objects = collection.iterator_0(); + for (i0 = oldSize; i0 < size_0; ++i0) { + object = objects.next_1(); + $assign_0(data_0, i0, $validate(this, object)); + } + $setData(this, data_0); + for (i = oldSize; i < size_0; ++i) { + object = data_0[i]; + this.didAdd(i, object); + } + return true; + } + else { + ++this.modCount; + return false; + } +} +; +_.addUnique = function addUnique_7(index_0, object){ + var data_0, oldData, size_0, validatedObject; + oldData = castTo($getField(this.this$01, 4), 126); + size_0 = oldData == null?0:oldData.length; + data_0 = $grow(this, size_0 + 1); + validatedObject = $validate(this, object); + index_0 != size_0 && arraycopy(oldData, index_0, data_0, index_0 + 1, size_0 - index_0); + setCheck(data_0, index_0, validatedObject); + $setData(this, data_0); + this.didAdd(index_0, object); +} +; +_.addUnique_0 = function addUnique_8(object){ + var data_0, data0, size_0; + size_0 = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); + data_0 = $grow(this, size_0 + 1); + $assign_0(data_0, size_0, $validate(this, object)); + $setData(this, data_0); + this.didAdd(size_0, object); +} +; +_.basicIterator = function basicIterator_0(){ + return new ArrayDelegatingEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_1(){ + return new ArrayDelegatingEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_2(index_0){ + var data_0, size_0; + size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new ArrayDelegatingEList$NonResolvingEListIterator_0(this, index_0); +} +; +_.clear_0 = function clear_56(){ + var oldData, oldSize; + ++this.modCount; + oldData = castTo($getField(this.this$01, 4), 126); + oldSize = oldData == null?0:oldData.length; + $setData(this, null); + $didClear(this, oldSize, oldData); +} +; +_.contains = function contains_55(object){ + var data_0, datum, datum$array, datum$index, datum$max; + data_0 = castTo($getField(this.this$01, 4), 126); + if (data_0 != null) { + if (object != null) { + for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { + datum = datum$array[datum$index]; + if (equals_Ljava_lang_Object__Z__devirtual$(object, datum)) { + return true; + } + } + } + else { + for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { + datum = datum$array[datum$index]; + if (maskUndefined(datum) === maskUndefined(object)) { + return true; + } + } + } + } + return false; +} +; +_.get_0 = function get_52(index_0){ + var data_0, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + if (index_0 >= size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return data_0[index_0]; +} +; +_.indexOf_0 = function indexOf_10(object){ + var data_0, i, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + if (data_0 != null) { + if (object != null) { + for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, data_0[i])) { + return i; + } + } + } + else { + for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { + if (maskUndefined(data_0[i]) === maskUndefined(object)) { + return i; + } + } + } + } + return -1; +} +; +_.isEmpty = function isEmpty_28(){ + return castTo($getField(this.this$01, 4), 126) == null; +} +; +_.iterator_0 = function iterator_80(){ + return new ArrayDelegatingEList$EIterator(this); +} +; +_.listIterator_0 = function listIterator_19(){ + return new ArrayDelegatingEList$EListIterator(this); +} +; +_.listIterator_1 = function listIterator_20(index_0){ + var data_0, size_0; + size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); + if (index_0 < 0 || index_0 > size_0) + throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); + return new ArrayDelegatingEList$EListIterator_0(this, index_0); +} +; +_.move = function move_5(targetIndex, sourceIndex){ + var data_0, object, size_0; + data_0 = $copy_0(this); + size_0 = data_0 == null?0:data_0.length; + if (targetIndex >= size_0) + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); + if (sourceIndex >= size_0) + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); + object = data_0[sourceIndex]; + if (targetIndex != sourceIndex) { + targetIndex < sourceIndex?arraycopy(data_0, targetIndex, data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(data_0, sourceIndex + 1, data_0, sourceIndex, targetIndex - sourceIndex); + setCheck(data_0, targetIndex, object); + $setData(this, data_0); + } + return object; +} +; +_.primitiveGet = function primitiveGet_1(index_0){ + return castTo($getField(this.this$01, 4), 126)[index_0]; +} +; +_.remove_2 = function remove_109(index_0){ + return $remove_37(this, index_0); +} +; +_.setUnique = function setUnique_3(index_0, object){ + var data_0, oldObject; + data_0 = $copy_0(this); + oldObject = data_0[index_0]; + $assign_0(data_0, index_0, $validate(this, object)); + $setData(this, data_0); + return oldObject; +} +; +_.size_1 = function size_67(){ + var data_0; + return data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length; +} +; +_.toArray = function toArray_30(){ + var data_0, result, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + result = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); + size_0 > 0 && arraycopy(data_0, 0, result, 0, size_0); + return result; +} +; +_.toArray_0 = function toArray_31(array){ + var data_0, newArray, size_0; + data_0 = castTo($getField(this.this$01, 4), 126); + size_0 = data_0 == null?0:data_0.length; + if (size_0 > 0) { + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + arraycopy(data_0, 0, array, 0, size_0); + } + array.length > size_0 && setCheck(array, size_0, null); + return array; +} +; +var EMPTY_ARRAY; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList', 1982); +function ArrayDelegatingEList$EIterator(this$0){ + this.this$01 = this$0; + AbstractEList$EIterator.call(this, this$0); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} + +defineClass(1038, 40, $intern_6, ArrayDelegatingEList$EIterator); +_.checkModCount = function checkModCount_0(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.remove = function remove_110(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EIterator', 1038); +function $$init_9(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); +} + +function ArrayDelegatingEList$EListIterator(this$0){ + this.this$01 = this$0; + AbstractEList$EListIterator.call(this, this$0); + $$init_9(this); +} + +function ArrayDelegatingEList$EListIterator_0(this$0, index_0){ + this.this$01 = this$0; + AbstractEList$EListIterator_0.call(this, this$0, index_0); + $$init_9(this); +} + +defineClass(706, 278, $intern_14, ArrayDelegatingEList$EListIterator, ArrayDelegatingEList$EListIterator_0); +_.checkModCount = function checkModCount_1(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.doSet = function doSet_0(object){ + $doSet(this, object); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} +; +_.remove = function remove_111(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EListIterator', 706); +function ArrayDelegatingEList$NonResolvingEIterator(this$0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEIterator.call(this, this$0); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); +} + +defineClass(1039, 341, $intern_6, ArrayDelegatingEList$NonResolvingEIterator); +_.checkModCount = function checkModCount_2(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEIterator', 1039); +function $$init_10(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); +} + +function ArrayDelegatingEList$NonResolvingEListIterator(this$0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEListIterator.call(this, this$0); + $$init_10(this); +} + +function ArrayDelegatingEList$NonResolvingEListIterator_0(this$0, index_0){ + this.this$01 = this$0; + AbstractEList$NonResolvingEListIterator_0.call(this, this$0, index_0); + $$init_10(this); +} + +defineClass(707, 385, $intern_14, ArrayDelegatingEList$NonResolvingEListIterator, ArrayDelegatingEList$NonResolvingEListIterator_0); +_.checkModCount = function checkModCount_3(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEListIterator', 707); +function BasicEList$BasicIndexOutOfBoundsException(index_0, size_0){ + AbstractEList$BasicIndexOutOfBoundsException.call(this, index_0, size_0); +} + +defineClass(606, 295, $intern_57, BasicEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_BasicEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/BasicIndexOutOfBoundsException', 606); +function BasicEList$UnmodifiableEList(size_0, data_0){ + this.size_0 = size_0; + this.data_0 = data_0; +} + +defineClass(696, 63, $intern_138, BasicEList$UnmodifiableEList); +_.add_3 = function add_53(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +_.add_2 = function add_54(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll_0 = function addAll_26(index_0, collection){ + throw toJs(new UnsupportedOperationException); +} +; +_.addAll = function addAll_27(collection){ + throw toJs(new UnsupportedOperationException); +} +; +_.clear_0 = function clear_57(){ + throw toJs(new UnsupportedOperationException); +} +; +_.grow = function grow_0(minimumCapacity){ + throw toJs(new UnsupportedOperationException); +} +; +_.iterator_0 = function iterator_81(){ + return this.basicIterator(); +} +; +_.listIterator_0 = function listIterator_21(){ + return this.basicListIterator(); +} +; +_.listIterator_1 = function listIterator_22(index_0){ + return this.basicListIterator_0(index_0); +} +; +_.move = function move_6(targetIndex, sourceIndex){ + throw toJs(new UnsupportedOperationException); +} +; +_.move_0 = function move_7(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_2 = function remove_112(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_113(object){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_2 = function set_24(index_0, object){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_BasicEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/UnmodifiableEList', 696); +function $add_24(this$static, index_0, object){ + this$static.delegateEList.add_3(index_0, castTo(object, 133)); +} + +function $add_25(this$static, object){ + return this$static.delegateEList.add_2(castTo(object, 133)); +} + +function $containsKey_7(this$static, key){ + var entryIndex, hash, index_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entryIndex = $entryIndexForKey(this$static, index_0, hash, key); + return entryIndex != -1; + } + else { + return false; + } +} + +function $containsValue_4(this$static, value_0){ + var eList, entries, entry, i, j, size_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + if (value_0 != null) { + for (i = 0; i < this$static.entryData.length; ++i) { + eList = this$static.entryData[i]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue())) { + return true; + } + } + } + } + } + else { + for (i = 0; i < this$static.entryData.length; ++i) { + eList = this$static.entryData[i]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (maskUndefined(value_0) === maskUndefined(entry.getValue())) { + return true; + } + } + } + } + } + } + return false; +} + +function $didClear_0(oldEntryData){ + var eList, i, j, size_0; + if (oldEntryData != null) { + for (i = 0; i < oldEntryData.length; ++i) { + eList = oldEntryData[i]; + if (eList) { + castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) + ; + } + } + } +} + +function $doClear_0(this$static){ + var oldEntryData; + if (this$static.entryData == null) { + ++this$static.modCount; + this$static.size_0 = 0; + $didClear_0(null); + } + else { + ++this$static.modCount; + oldEntryData = this$static.entryData; + this$static.entryData = null; + this$static.size_0 = 0; + $didClear_0(oldEntryData); + } +} + +function $doPut(this$static, entry){ + var eList, hash, index_0; + if (this$static.entryData == null) { + ++this$static.modCount; + ++this$static.size_0; + } + else { + hash = entry.getHash(); + $grow_0(this$static, this$static.size_0 + 1); + index_0 = (hash & $intern_0) % this$static.entryData.length; + eList = this$static.entryData[index_0]; + !eList && (eList = this$static.entryData[index_0] = this$static.newList()); + eList.add_2(entry); + ++this$static.size_0; + } +} + +function $doRemove(this$static, entry){ + var hash, index_0, key; + if (this$static.entryData == null) { + ++this$static.modCount; + --this$static.size_0; + } + else { + key = entry.getKey(); + hash = entry.getHash(); + index_0 = (hash & $intern_0) % this$static.entryData.length; + $removeEntry_0(this$static, index_0, $entryIndexForKey(this$static, index_0, hash, key)); + } +} + +function $entryForKey(this$static, index_0, hash, key){ + var eList, entries, entry, j, size_0; + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + if (key != null) { + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { + return entry; + } + } + } + else { + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (maskUndefined(entry.getKey()) === maskUndefined(key)) { + return entry; + } + } + } + } + return null; +} + +function $entryIndexForKey(this$static, index_0, hash, key){ + var eList, entries, entry, j, size_0; + if (key != null) { + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { + return j; + } + } + } + } + else { + eList = this$static.entryData[index_0]; + if (eList) { + entries = eList.data_0; + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + if (maskUndefined(entry.getKey()) === maskUndefined(key)) { + return j; + } + } + } + } + return -1; +} + +function $entrySet_3(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.entrySet && (this$static.view.entrySet = new BasicEMap$5(this$static)); + return this$static.view.entrySet; +} + +function $equals_12(this$static, object){ + return instanceOf(object, 15) && $equals_11(this$static.delegateEList, object); +} + +function $get_21(this$static, key){ + var entry, hash, index_0; + if (this$static.size_0 > 0) { + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry = $entryForKey(this$static, index_0, hash, key); + if (entry) { + return entry.getValue(); + } + } + return null; +} + +function $grow_0(this$static, minimumCapacity){ + var eList, entries, entry, i, index_0, j, oldCapacity, oldEList, oldEntryData, size_0; + ++this$static.modCount; + oldCapacity = this$static.entryData == null?0:this$static.entryData.length; + if (minimumCapacity > oldCapacity) { + oldEntryData = this$static.entryData; + this$static.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * oldCapacity + 4, 0, 1); + for (i = 0; i < oldCapacity; ++i) { + oldEList = oldEntryData[i]; + if (oldEList) { + entries = oldEList.data_0; + size_0 = oldEList.size_0; + for (j = 0; j < size_0; ++j) { + entry = castTo(entries[j], 133); + index_0 = $indexOf_5(this$static, entry.getHash()); + eList = this$static.entryData[index_0]; + !eList && (eList = this$static.entryData[index_0] = this$static.newList()); + eList.add_2(entry); + } + } + } + return true; + } + else { + return false; + } +} + +function $hashOf(key){ + return key == null?0:hashCode__I__devirtual$(key); +} + +function $indexOf_5(this$static, hash){ + return (hash & $intern_0) % this$static.entryData.length; +} + +function $keySet_2(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.keySet && (this$static.view.keySet = new BasicEMap$3(this$static)); + return this$static.view.keySet; +} + +function $map_1(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.map_0 && (this$static.view.map_0 = new BasicEMap$DelegatingMap(this$static)); + return this$static.view.map_0; +} + +function $move_2(this$static, index_0, object){ + this$static.delegateEList.move_0(index_0, castTo(object, 133)); +} + +function $put_13(this$static, key, value_0){ + var entry, entry0, hash, index_0, result; + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + if (this$static.size_0 > 0) { + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry0 = $entryForKey(this$static, index_0, hash, key); + if (entry0) { + result = entry0.setValue(value_0); + return result; + } + } + entry = this$static.newEntry(hash, key, value_0); + this$static.delegateEList.add_2(entry); + return null; +} + +function $putAll_0(this$static, map_0){ + var entry, entry$iterator; + for (entry$iterator = map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + $put_13(this$static, entry.getKey(), entry.getValue()); + } +} + +function $remove_38(this$static, object){ + var result; + if (instanceOf(object, 42)) { + return this$static.delegateEList.remove_1(object); + } + else { + result = $containsKey_7(this$static, object); + $removeKey(this$static, object); + return result; + } +} + +function $removeEntry_0(this$static, index_0, entryIndex){ + var entry; + ++this$static.modCount; + --this$static.size_0; + entry = castTo(this$static.entryData[index_0].remove_2(entryIndex), 133); + return entry.getValue(); +} + +function $removeKey(this$static, key){ + var entry, hash, index_0; + this$static.ensureEntryDataExists(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = (hash & $intern_0) % this$static.entryData.length; + entry = $entryForKey(this$static, index_0, hash, key); + if (entry) { + $remove_38(this$static, entry); + return entry.getValue(); + } + else { + return null; + } +} + +function $set_12(this$static, index_0, object){ + return castTo(this$static.delegateEList.set_2(index_0, castTo(object, 133)), 42); +} + +function $values_3(this$static){ + !this$static.view && (this$static.view = new BasicEMap$View); + !this$static.view.values && (this$static.view.values = new BasicEMap$4(this$static)); + return this$static.view.values; +} + +defineClass(705, 1, {3:1, 20:1, 14:1, 15:1, 58:1, 589:1}); +_.add_3 = function add_55(index_0, object){ + $add_24(this, index_0, castTo(object, 42)); +} +; +_.add_2 = function add_56(object){ + return $add_25(this, castTo(object, 42)); +} +; +_.forEach_0 = function forEach_37(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_53(index_0){ + return castTo($get_20(this.delegateEList, index_0), 133); +} +; +_.move = function move_8(targetIndex, sourceIndex){ + return castTo(this.delegateEList.move(targetIndex, sourceIndex), 42); +} +; +_.move_0 = function move_9(index_0, object){ + $move_2(this, index_0, castTo(object, 42)); +} +; +_.parallelStream = function parallelStream_5(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_114(index_0){ + return castTo(this.delegateEList.remove_2(index_0), 42); +} +; +_.set_2 = function set_25(index_0, object){ + return $set_12(this, index_0, castTo(object, 42)); +} +; +_.sort_0 = function sort_12(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_38(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_7(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.addAll_0 = function addAll_28(index_0, collection){ + return this.delegateEList.addAll_0(index_0, collection); +} +; +_.addAll = function addAll_29(collection){ + return this.delegateEList.addAll(collection); +} +; +_.clear_0 = function clear_58(){ + this.delegateEList.clear_0(); +} +; +_.contains = function contains_56(object){ + return this.delegateEList.contains(object); +} +; +_.containsAll = function containsAll_12(collection){ + return $containsAll(this.delegateEList, collection); +} +; +_.ensureEntryDataExists = function ensureEntryDataExists(){ + var entry, entry$iterator, oldModCount; + if (this.entryData == null) { + this.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); + oldModCount = this.modCount; + this.size_0 = 0; + for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 133); + $doPut(this, entry); + } + this.modCount = oldModCount; + } +} +; +_.equals_0 = function equals_188(object){ + return $equals_12(this, object); +} +; +_.hashCode_1 = function hashCode_76(){ + return $hashCode_2(this.delegateEList); +} +; +_.indexOf_0 = function indexOf_11(object){ + return this.delegateEList.indexOf_0(object); +} +; +_.initializeDelegateEList = function initializeDelegateEList(){ + this.delegateEList = new BasicEMap$1(this); +} +; +_.isEmpty = function isEmpty_29(){ + return this.size_0 == 0; +} +; +_.iterator_0 = function iterator_82(){ + return this.delegateEList.iterator_0(); +} +; +_.listIterator_0 = function listIterator_23(){ + return this.delegateEList.listIterator_0(); +} +; +_.listIterator_1 = function listIterator_24(index_0){ + return this.delegateEList.listIterator_1(index_0); +} +; +_.map_2 = function map_5(){ + return $map_1(this); +} +; +_.newEntry = function newEntry_0(hash, key, value_0){ + return new BasicEMap$EntryImpl(hash, key, value_0); +} +; +_.newList = function newList(){ + return new BasicEMap$2; +} +; +_.remove_1 = function remove_115(object){ + return $remove_38(this, object); +} +; +_.size_1 = function size_68(){ + return this.size_0; +} +; +_.subList = function subList_10(start_0, end){ + return new AbstractList$SubList(this.delegateEList, start_0, end); +} +; +_.toArray = function toArray_32(){ + return this.delegateEList.toArray(); +} +; +_.toArray_0 = function toArray_33(array){ + return this.delegateEList.toArray_0(array); +} +; +_.toString_0 = function toString_138(){ + return $toString_25(this.delegateEList); +} +; +_.modCount = 0; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap', 705); +function $didAdd(this$static, newObject){ + $doPut(this$static.this$01, newObject); +} + +function $didRemove(this$static, oldObject){ + $doRemove(this$static.this$01, oldObject); +} + +function $didSet(this$static, newObject, oldObject){ + $doRemove(this$static.this$01, oldObject); + $doPut(this$static.this$01, newObject); +} + +function BasicEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1033, 63, $intern_138, BasicEMap$1); +_.didAdd = function didAdd_0(index_0, newObject){ + $didAdd(this, castTo(newObject, 133)); +} +; +_.didMove = function didMove_0(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this , castTo(movedObject, 133) , lastArg).this$01.modCount; +} +; +_.didRemove = function didRemove_0(index_0, oldObject){ + $didRemove(this, castTo(oldObject, 133)); +} +; +_.didSet = function didSet_0(index_0, newObject, oldObject){ + $didSet(this, castTo(newObject, 133), castTo(oldObject, 133)); +} +; +_.didClear = function didClear_0(size_0, oldObjects){ + $doClear_0(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/1', 1033); +function BasicEMap$2(){ +} + +defineClass(1034, 63, $intern_138, BasicEMap$2); +_.newData = function newData_2(listCapacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit, $intern_146, 612, listCapacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$2_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/2', 1034); +function BasicEMap$3(this$0){ + this.this$01 = this$0; +} + +defineClass(1035, $intern_9, $intern_10, BasicEMap$3); +_.clear_0 = function clear_59(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_57(key){ + return $containsKey_7(this.this$01, key); +} +; +_.iterator_0 = function iterator_83(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapKeyIterator(this.this$01); +} +; +_.remove_1 = function remove_116(key){ + var oldSize; + oldSize = this.this$01.size_0; + $removeKey(this.this$01, key); + return this.this$01.size_0 != oldSize; +} +; +_.size_1 = function size_69(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$3_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/3', 1035); +function BasicEMap$4(this$0){ + this.this$01 = this$0; +} + +defineClass(1036, 28, $intern_8, BasicEMap$4); +_.clear_0 = function clear_60(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_58(value_0){ + return $containsValue_4(this.this$01, value_0); +} +; +_.iterator_0 = function iterator_84(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapValueIterator(this.this$01); +} +; +_.size_1 = function size_70(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$4_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/4', 1036); +function $remove_39(this$static, object){ + var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; + if (this$static.this$01.size_0 > 0 && instanceOf(object, 42)) { + this$static.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 42); + key = otherEntry.getKey(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = $indexOf_5(this$static.this$01, hash); + eList = this$static.this$01.entryData[index_0]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (entry.getHash() == hash && entry.equals_0(otherEntry)) { + $remove_39(this$static, otherEntry); + return true; + } + } + } + } + return false; +} + +function BasicEMap$5(this$0){ + this.this$01 = this$0; +} + +defineClass(1037, $intern_9, $intern_10, BasicEMap$5); +_.clear_0 = function clear_61(){ + this.this$01.delegateEList.clear_0(); +} +; +_.contains = function contains_59(object){ + var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; + if (this.this$01.size_0 > 0 && instanceOf(object, 42)) { + this.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 42); + key = otherEntry.getKey(); + hash = key == null?0:hashCode__I__devirtual$(key); + index_0 = $indexOf_5(this.this$01, hash); + eList = this.this$01.entryData[index_0]; + if (eList) { + entries = castTo(eList.data_0, 367); + size_0 = eList.size_0; + for (j = 0; j < size_0; ++j) { + entry = entries[j]; + if (entry.getHash() == hash && entry.equals_0(otherEntry)) { + return true; + } + } + } + } + return false; +} +; +_.iterator_0 = function iterator_85(){ + return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapIterator(this.this$01); +} +; +_.remove_1 = function remove_117(object){ + return $remove_39(this, object); +} +; +_.size_1 = function size_71(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$5_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/5', 1037); +function $scan(this$static){ + var eList; + this$static.this$01.ensureEntryDataExists(); + if (this$static.entryCursor != -1) { + ++this$static.entryCursor; + eList = this$static.this$01.entryData[this$static.cursor]; + if (this$static.entryCursor < eList.size_0) { + return; + } + ++this$static.cursor; + } + for (; this$static.cursor < this$static.this$01.entryData.length; ++this$static.cursor) { + eList = this$static.this$01.entryData[this$static.cursor]; + if (!!eList && eList.size_0 != 0) { + this$static.entryCursor = 0; + return; + } + } + this$static.entryCursor = -1; +} + +function BasicEMap$BasicEMapIterator(this$0){ + this.this$01 = this$0; + this.expectedModCount = this.this$01.modCount; + this$0.size_0 > 0 && $scan(this); +} + +defineClass(613, 1, $intern_6, BasicEMap$BasicEMapIterator); +_.forEachRemaining = function forEachRemaining_55(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_44(){ + return this.entryCursor != -1; +} +; +_.next_1 = function next_45(){ + var result; + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (this.entryCursor == -1) { + throw toJs(new NoSuchElementException); + } + this.lastCursor = this.cursor; + this.lastEntryCursor = this.entryCursor; + $scan(this); + result = castTo(this.this$01.entryData[this.lastCursor].data_0[this.lastEntryCursor], 133); + return this.yield_0(result); +} +; +_.remove = function remove_118(){ + if (this.this$01.modCount != this.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } + if (this.lastEntryCursor == -1) { + throw toJs(new IllegalStateException); + } + this.this$01.delegateEList.remove_1($get_20(this.this$01.entryData[this.lastCursor], this.lastEntryCursor)); + this.expectedModCount = this.this$01.modCount; + this.lastEntryCursor = -1; + this.cursor == this.lastCursor && this.entryCursor != -1 && --this.entryCursor; +} +; +_.yield_0 = function yield_0(entry){ + return entry; +} +; +_.cursor = 0; +_.entryCursor = -1; +_.expectedModCount = 0; +_.lastCursor = 0; +_.lastEntryCursor = 0; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapIterator', 613); +function BasicEMap$BasicEMapKeyIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1031, 613, $intern_6, BasicEMap$BasicEMapKeyIterator); +_.yield_0 = function yield_1(entry){ + return entry.getKey(); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapKeyIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapKeyIterator', 1031); +function BasicEMap$BasicEMapValueIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1032, 613, $intern_6, BasicEMap$BasicEMapValueIterator); +_.yield_0 = function yield_2(entry){ + return entry.getValue(); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapValueIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapValueIterator', 1032); +function $containsKey_8(this$static, key){ + return $containsKey_7(this$static.this$01, key); +} + +function BasicEMap$DelegatingMap(this$0){ + this.this$01 = this$0; +} + +defineClass(1030, 1, $intern_7, BasicEMap$DelegatingMap); +_.forEach = function forEach_38(consumer){ + $forEach_2(this, consumer); +} +; +_.merge = function merge_4(key, value_0, remappingFunction){ + return $merge(this, key, value_0, remappingFunction); +} +; +_.clear_0 = function clear_62(){ + this.this$01.delegateEList.clear_0(); +} +; +_.containsKey = function containsKey_15(key){ + return $containsKey_8(this, key); +} +; +_.containsValue = function containsValue_8(value_0){ + return $containsValue_4(this.this$01, value_0); +} +; +_.entrySet_0 = function entrySet_9(){ + return $entrySet_3(this.this$01); +} +; +_.equals_0 = function equals_189(object){ + return $equals_12(this.this$01, object); +} +; +_.get_3 = function get_54(key){ + return $get_21(this.this$01, key); +} +; +_.hashCode_1 = function hashCode_77(){ + return $hashCode_2(this.this$01.delegateEList); +} +; +_.isEmpty = function isEmpty_30(){ + return this.this$01.size_0 == 0; +} +; +_.keySet_0 = function keySet_18(){ + return $keySet_2(this.this$01); +} +; +_.put = function put_10(key, value_0){ + return $put_13(this.this$01, key, value_0); +} +; +_.remove_0 = function remove_119(key){ + return $removeKey(this.this$01, key); +} +; +_.size_1 = function size_72(){ + return this.this$01.size_0; +} +; +_.toString_0 = function toString_139(){ + return $toString_25(this.this$01.delegateEList); +} +; +_.values_0 = function values_118(){ + return $values_3(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$DelegatingMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/DelegatingMap', 1030); +function BasicEMap$EntryImpl(hash, key, value_0){ + this.hash = hash; + this.key = key; + this.value_0 = value_0; +} + +defineClass(612, 1, {42:1, 133:1, 612:1}, BasicEMap$EntryImpl); +_.equals_0 = function equals_190(object){ + var entry; + if (instanceOf(object, 42)) { + entry = castTo(object, 42); + return (this.key != null?equals_Ljava_lang_Object__Z__devirtual$(this.key, entry.getKey()):maskUndefined(this.key) === maskUndefined(entry.getKey())) && (this.value_0 != null?equals_Ljava_lang_Object__Z__devirtual$(this.value_0, entry.getValue()):maskUndefined(this.value_0) === maskUndefined(entry.getValue())); + } + else { + return false; + } +} +; +_.getHash = function getHash_0(){ + return this.hash; +} +; +_.getKey = function getKey_9(){ + return this.key; +} +; +_.getValue = function getValue_11(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_78(){ + return this.hash ^ (this.value_0 == null?0:hashCode__I__devirtual$(this.value_0)); +} +; +_.setHash = function setHash_0(hash){ + this.hash = hash; +} +; +_.setKey = function setKey_0(key){ + throw toJs(new RuntimeException); +} +; +_.setValue = function setValue_12(value_0){ + var oldValue; + oldValue = this.value_0; + this.value_0 = value_0; + return oldValue; +} +; +_.toString_0 = function toString_140(){ + return this.key + '->' + this.value_0; +} +; +_.hash = 0; +var Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/EntryImpl', 612); +function BasicEMap$View(){ +} + +defineClass(536, 1, {}, BasicEMap$View); +var Lorg_eclipse_emf_common_util_BasicEMap$View_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/View', 536); +function $clinit_ECollections(){ + $clinit_ECollections = emptyMethod; + EMPTY_ELIST = new ECollections$EmptyUnmodifiableEList; + new ECollections$EmptyUnmodifiableEMap; +} + +function indexOf_12(list, o, fromIndex){ + var element, i, size_0; + fromIndex < 0 && (fromIndex = 0); + size_0 = list.size_0; + for (i = fromIndex; i < size_0; i++) { + element = $get_20(list, i); + if (o == null) { + if (element == null) { + return i; + } + } + else if (maskUndefined(o) === maskUndefined(element) || equals_Ljava_lang_Object__Z__devirtual$(o, element)) { + return i; + } + } + return -1; +} + +function sort_13(list, comparator){ + $clinit_ECollections(); + var i, listAsArray, objectComparator, oldIndex; + listAsArray = $toArray_11(list); + objectComparator = comparator; + mergeSort(listAsArray, 0, listAsArray.length, objectComparator); + for (i = 0; i < listAsArray.length; i++) { + oldIndex = indexOf_12(list, listAsArray[i], i); + i != oldIndex && $move_1(list, i, oldIndex); + } +} + +var EMPTY_ELIST; +function $add_26(){ + throw toJs(new UnsupportedOperationException); +} + +function $add_27(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_10(){ + throw toJs(new UnsupportedOperationException); +} + +function $addAll_11(){ + throw toJs(new UnsupportedOperationException); +} + +function $clear_14(){ + throw toJs(new UnsupportedOperationException); +} + +function $move_3(){ + throw toJs(new UnsupportedOperationException); +} + +function $move_4(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove_40(){ + throw toJs(new UnsupportedOperationException); +} + +function $remove_41(){ + throw toJs(new UnsupportedOperationException); +} + +function $set_13(){ + throw toJs(new UnsupportedOperationException); +} + +function ECollections$BasicEmptyUnmodifiableEList(){ + this.listIterator = new ECollections$BasicEmptyUnmodifiableEList$1; +} + +defineClass(768, 1, {}); +_.equals_0 = function equals_191(o){ + return $equals_2(($clinit_Collections() , EMPTY_LIST), o); +} +; +_.hashCode_1 = function hashCode_79(){ + return hashCode_48(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toString_0 = function toString_141(){ + return $toString_2(($clinit_Collections() , EMPTY_LIST)); +} +; +var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList', 768); +function ECollections$BasicEmptyUnmodifiableEList$1(){ +} + +defineClass(1312, 1, $intern_14, ECollections$BasicEmptyUnmodifiableEList$1); +_.forEachRemaining = function forEachRemaining_56(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_57(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.hasNext_0 = function hasNext_45(){ + return false; +} +; +_.hasPrevious = function hasPrevious_8(){ + return false; +} +; +_.next_1 = function next_46(){ + throw toJs(new NoSuchElementException); +} +; +_.nextIndex_0 = function nextIndex_9(){ + return 0; +} +; +_.previous_0 = function previous_9(){ + throw toJs(new NoSuchElementException); +} +; +_.previousIndex = function previousIndex_8(){ + return -1; +} +; +_.remove = function remove_120(){ + throw toJs(new UnsupportedOperationException); +} +; +_.set_1 = function set_26(o){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList/1', 1312); +function ECollections$EmptyUnmodifiableEList(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1310, 768, {20:1, 14:1, 15:1, 58:1}, ECollections$EmptyUnmodifiableEList); +_.add_3 = function add_58(index_0, element){ + $add_26(); +} +; +_.add_2 = function add_59(o){ + return $add_27(); +} +; +_.addAll_0 = function addAll_30(index_0, collection){ + return $addAll_10(); +} +; +_.addAll = function addAll_31(coll){ + return $addAll_11(); +} +; +_.clear_0 = function clear_63(){ + $clear_14(); +} +; +_.contains = function contains_60(o){ + return false; +} +; +_.containsAll = function containsAll_13(coll){ + return false; +} +; +_.forEach_0 = function forEach_39(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_55(index_0){ + return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; +} +; +_.indexOf_0 = function indexOf_13(o){ + return -1; +} +; +_.isEmpty = function isEmpty_31(){ + return true; +} +; +_.iterator_0 = function iterator_86(){ + return this.listIterator; +} +; +_.listIterator_0 = function listIterator_25(){ + return this.listIterator; +} +; +_.listIterator_1 = function listIterator_26(index_0){ + return this.listIterator; +} +; +_.move = function move_10(newPosition, oldPosition){ + return $move_3(); +} +; +_.move_0 = function move_11(newPosition, o){ + $move_4(); +} +; +_.parallelStream = function parallelStream_6(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_121(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_122(o){ + return $remove_41(); +} +; +_.set_2 = function set_27(index_0, element){ + return $set_13(); +} +; +_.size_1 = function size_73(){ + return 0; +} +; +_.sort_0 = function sort_14(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_39(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_8(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.subList = function subList_11(fromIndex, toIndex){ + return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); +} +; +_.toArray = function toArray_34(){ + return $toArray(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toArray_0 = function toArray_35(a){ + return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); +} +; +var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEList', 1310); +function ECollections$EmptyUnmodifiableEMap(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1311, 768, {20:1, 14:1, 15:1, 58:1, 589:1}, ECollections$EmptyUnmodifiableEMap); +_.add_3 = function add_60(index_0, element){ + $add_26(); +} +; +_.add_2 = function add_61(o){ + return $add_27(); +} +; +_.addAll_0 = function addAll_32(index_0, collection){ + return $addAll_10(); +} +; +_.addAll = function addAll_33(coll){ + return $addAll_11(); +} +; +_.clear_0 = function clear_64(){ + $clear_14(); +} +; +_.contains = function contains_61(o){ + return false; +} +; +_.containsAll = function containsAll_14(coll){ + return false; +} +; +_.forEach_0 = function forEach_40(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_56(index_0){ + return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; +} +; +_.indexOf_0 = function indexOf_14(o){ + return -1; +} +; +_.isEmpty = function isEmpty_32(){ + return true; +} +; +_.iterator_0 = function iterator_87(){ + return this.listIterator; +} +; +_.listIterator_0 = function listIterator_27(){ + return this.listIterator; +} +; +_.listIterator_1 = function listIterator_28(index_0){ + return this.listIterator; +} +; +_.move = function move_12(newPosition, oldPosition){ + return $move_3(); +} +; +_.move_0 = function move_13(newPosition, o){ + $move_4(); +} +; +_.parallelStream = function parallelStream_7(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_123(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_124(o){ + return $remove_41(); +} +; +_.set_2 = function set_28(index_0, element){ + return $set_13(); +} +; +_.size_1 = function size_74(){ + return 0; +} +; +_.sort_0 = function sort_15(c){ + $sort_0(this, c); +} +; +_.spliterator_0 = function spliterator_40(){ + return new Spliterators$IteratorSpliterator(this, 16); +} +; +_.stream = function stream_9(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.subList = function subList_12(fromIndex, toIndex){ + return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); +} +; +_.toArray = function toArray_36(){ + return $toArray(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toArray_0 = function toArray_37(a){ + return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); +} +; +_.map_2 = function map_6(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_MAP; +} +; +var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEMap', 1311); +var Lorg_eclipse_emf_common_util_Enumerator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'Enumerator'); +function $clinit_Reflect(){ + $clinit_Reflect = emptyMethod; + HELPER_REGISTRY = new HashMap; +} + +function isInstance(class_, instance){ + $clinit_Reflect(); + var helper; + helper = castTo($get_10(HELPER_REGISTRY, class_), 55); + return !helper || helper.isInstance(instance); +} + +function register_0(class_, helper){ + $clinit_Reflect(); + $put_6(HELPER_REGISTRY, class_, helper); +} + +var HELPER_REGISTRY; +function $clinit_URI(){ + $clinit_URI = emptyMethod; + var set_0; + uriCache = new URI$URICache; + NO_SEGMENTS = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); + ALPHA_HI = or_0(lowBitmask_0(33, 58), lowBitmask_0(1, 26)); + ALPHA_LO = or_0(lowBitmask_0(97, 122), lowBitmask_0(65, 90)); + DIGIT_LO = lowBitmask_0(48, 57); + ALPHANUM_HI = or_0(ALPHA_HI, 0); + ALPHANUM_LO = or_0(ALPHA_LO, DIGIT_LO); + HEX_HI = or_0(or_0(0, lowBitmask_0(1, 6)), lowBitmask_0(33, 38)); + HEX_LO = or_0(or_0(DIGIT_LO, lowBitmask_0(65, 70)), lowBitmask_0(97, 102)); + UNRESERVED_HI = or_0(ALPHANUM_HI, highBitmask_0("-_.!~*'()")); + UNRESERVED_LO = or_0(ALPHANUM_LO, lowBitmask_1("-_.!~*'()")); + highBitmask_0(';/?:@&=+$,'); + lowBitmask_1(';/?:@&=+$,'); + or_0(UNRESERVED_HI, highBitmask_0(';:@&=+$,')); + or_0(UNRESERVED_LO, lowBitmask_1(';:@&=+$,')); + MAJOR_SEPARATOR_HI = highBitmask_0(':/?#'); + MAJOR_SEPARATOR_LO = lowBitmask_1(':/?#'); + SEGMENT_END_HI = highBitmask_0('/?#'); + SEGMENT_END_LO = lowBitmask_1('/?#'); + set_0 = new HashSet; + set_0.map_0.put('jar', set_0); + set_0.map_0.put('zip', set_0); + set_0.map_0.put('archive', set_0); + archiveSchemes = ($clinit_Collections() , new Collections$UnmodifiableSet(set_0)); +} + +function $appendFragment(this$static, fragment){ + var result; + result = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, fragment); + this$static.fragment != null || (result.cachedTrimFragment = this$static); + return result; +} + +function $segmentsEqual(this$static, uri_0){ + var i, len; + if (this$static.segments.length != uri_0.segments.length) + return false; + for (i = 0 , len = this$static.segments.length; i < len; i++) { + if (!$equals_5(this$static.segments[i], uri_0.segments[i])) + return false; + } + return true; +} + +function $toString_26(this$static){ + var i, len, result; + if (this$static.cachedToString == null) { + result = new StringBuffer; + if (this$static.scheme != null) { + $append_3(result, this$static.scheme); + result.string += ':'; + } + if ((this$static.hashCode_0 & 256) != 0) { + if ((this$static.hashCode_0 & 256) != 0 && this$static.authority != null) { + isArchiveScheme(this$static.scheme) || (result.string += '//' , result); + $append_3(result, this$static.authority); + } + if (this$static.device != null) { + result.string += '/'; + $append_3(result, this$static.device); + } + (this$static.hashCode_0 & 16) != 0 && (result.string += '/' , result); + for (i = 0 , len = this$static.segments.length; i < len; i++) { + i != 0 && (result.string += '/' , result); + $append_3(result, this$static.segments[i]); + } + if (this$static.query != null) { + result.string += '?'; + $append_3(result, this$static.query); + } + } + else { + $append_3(result, this$static.authority); + } + if (this$static.fragment != null) { + result.string += '#'; + $append_3(result, this$static.fragment); + } + this$static.cachedToString = result.string; + } + return this$static.cachedToString; +} + +function $trimFragment(this$static){ + if (this$static.fragment == null) { + return this$static; + } + else + !this$static.cachedTrimFragment && (this$static.cachedTrimFragment = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, null)); + return this$static.cachedTrimFragment; +} + +function URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment){ + var hashCode, i, len; + hashCode = 0; + scheme != null && (hashCode ^= getHashCode_1(scheme.toLowerCase())); + authority != null && (hashCode ^= getHashCode_1(authority)); + device != null && (hashCode ^= getHashCode_1(device)); + query != null && (hashCode ^= getHashCode_1(query)); + fragment != null && (hashCode ^= getHashCode_1(fragment)); + for (i = 0 , len = segments.length; i < len; i++) { + hashCode ^= getHashCode_1(segments[i]); + } + hierarchical?(hashCode |= 256):(hashCode &= -257); + absolutePath?(hashCode |= 16):(hashCode &= -17); + this.hashCode_0 = hashCode; + this.scheme = scheme == null?null:(checkCriticalNotNull(scheme) , scheme); + this.authority = authority; + this.device = device; + this.segments = segments; + this.query = query; + this.fragment = fragment; +} + +function contains_62(s, highBitmask, lowBitmask){ + var i, len; + for (i = 0 , len = s.length; i < len; i++) { + if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) + return true; + } + return false; +} + +function createURIWithCache(uri_0){ + $clinit_URI(); + var base, fragment, i, result; + i = $indexOf_1(uri_0, fromCodePoint(35)); + base = i == -1?uri_0:uri_0.substr(0, i); + fragment = i == -1?null:uri_0.substr(i + 1); + result = $get_22(uriCache, base); + if (!result) { + result = parseIntoURI(base); + $put_14(uriCache, base, result); + fragment != null && (result = $appendFragment(result, fragment)); + } + else + fragment != null && (result = $appendFragment(result, (checkCriticalNotNull(fragment) , fragment))); + return result; +} + +function decode(value_0){ + $clinit_URI(); + var bytes, character, expectedBytes, i, j, len, receivedBytes, result; + if (value_0 == null) + return null; + i = $indexOf_1(value_0, fromCodePoint(37)); + if (i < 0) { + return value_0; + } + else { + result = new StringBuilder_1(value_0.substr(0, i)); + bytes = initUnidimensionalArray(B_classLit, $intern_136, 25, 4, 15, 1); + receivedBytes = 0; + expectedBytes = 0; + for (len = value_0.length; i < len; i++) { + checkCriticalStringElementIndex(i, value_0.length); + if (value_0.charCodeAt(i) == 37 && value_0.length > i + 2 && matches((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), HEX_HI, HEX_LO) && matches((checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2)), HEX_HI, HEX_LO)) { + character = unescape_0((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), (checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2))); + i += 2; + if (expectedBytes > 0) { + (character & 192) == 128?(bytes[receivedBytes++] = character << 24 >> 24):(expectedBytes = 0); + } + else if (character >= 128) { + if ((character & 224) == 192) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 2; + } + else if ((character & 240) == 224) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 3; + } + else if ((character & 248) == 240) { + bytes[receivedBytes++] = character << 24 >> 24; + expectedBytes = 4; + } + } + if (expectedBytes > 0) { + if (receivedBytes == expectedBytes) { + switch (receivedBytes) { + case 2: + { + $append_5(result, ((bytes[0] & 31) << 6 | bytes[1] & 63) & $intern_46); + break; + } + + case 3: + { + $append_5(result, ((bytes[0] & 15) << 12 | (bytes[1] & 63) << 6 | bytes[2] & 63) & $intern_46); + break; + } + + } + receivedBytes = 0; + expectedBytes = 0; + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_46); + } + receivedBytes = 0; + result.string += String.fromCharCode(character); + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_46); + } + receivedBytes = 0; + $append_5(result, (checkCriticalStringElementIndex(i, value_0.length) , value_0.charCodeAt(i))); + } + } + return result.string; + } +} + +function equals_193(o1, o2){ + return o1 == null?o2 == null:$equals_5(o1, o2); +} + +function equals_194(s1, s2){ + return s1 == null?s2 == null:$equalsIgnoreCase(s1, s2); +} + +function find_0(s, i, highBitmask, lowBitmask){ + var len; + len = s.length; + if (i >= len) + return len; + for (i = i > 0?i:0; i < len; i++) { + if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) + break; + } + return i; +} + +function firstInvalidSegment(value_0){ + var i, len; + if (value_0 == null) + return null; + for (i = 0 , len = value_0.length; i < len; i++) { + if (!validSegment(value_0[i])) + return value_0[i]; + } + return null; +} + +function highBitmask_0(chars){ + var c, i, len, result; + result = 0; + for (i = 0 , len = chars.length; i < len; i++) { + c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); + c >= 64 && c < 128 && (result = or_0(result, shl_0(1, c - 64))); + } + return result; +} + +function isArchiveScheme(value_0){ + return value_0 != null && $contains_2(archiveSchemes, value_0.toLowerCase()); +} + +function lowBitmask_0(from, to){ + var c, result; + result = 0; + if (from < 64 && from <= to) { + to = to < 64?to:63; + for (c = from; c <= to; c++) { + result = or_0(result, shl_0(1, c)); + } + } + return result; +} + +function lowBitmask_1(chars){ + var c, i, len, result; + result = 0; + for (i = 0 , len = chars.length; i < len; i++) { + c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); + c < 64 && (result = or_0(result, shl_0(1, c))); + } + return result; +} + +function matches(c, highBitmask, lowBitmask){ + if (c >= 128) + return false; + return c < 64?neq(and_0(shl_0(1, c), lowBitmask), 0):neq(and_0(shl_0(1, c - 64), highBitmask), 0); +} + +function parseIntoURI(uri_0){ + var absolutePath, archiveScheme, authority, device, fragment, hierarchical, i, j, query, s, scheme, segmentList, segments; + hierarchical = true; + scheme = null; + authority = null; + device = null; + absolutePath = false; + segments = NO_SEGMENTS; + query = null; + fragment = null; + i = 0; + j = find_0(uri_0, i, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO); + if (j < uri_0.length && (checkCriticalStringElementIndex(j, uri_0.length) , uri_0.charCodeAt(j) == 58)) { + scheme = uri_0.substr(i, j - i); + i = j + 1; + } + archiveScheme = scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()); + if (archiveScheme) { + j = uri_0.lastIndexOf('!/'); + if (j == -1) { + throw toJs(new IllegalArgumentException_0('no archive separator')); + } + hierarchical = true; + authority = $substring_1(uri_0, i, ++j); + i = j; + } + else if (i >= 0 && $equals_5(uri_0.substr(i, '//'.length), '//')) { + i += 2; + j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); + authority = uri_0.substr(i, j - i); + i = j; + } + else if (scheme != null && (i == uri_0.length || (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 47))) { + hierarchical = false; + j = $indexOf_2(uri_0, fromCodePoint(35), i); + j == -1 && (j = uri_0.length); + authority = uri_0.substr(i, j - i); + i = j; + } + if (!archiveScheme && i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { + j = find_0(uri_0, i + 1, SEGMENT_END_HI, SEGMENT_END_LO); + s = uri_0.substr(i + 1, j - (i + 1)); + if (s.length > 0 && $charAt(s, s.length - 1) == 58) { + device = s; + i = j; + } + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { + ++i; + absolutePath = true; + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { + segmentList = new ArrayList; + while (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { + j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); + $add_3(segmentList, uri_0.substr(i, j - i)); + i = j; + i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47) && (segmentsRemain(uri_0, ++i) || (segmentList.array[segmentList.array.length] = '' , true)); + } + segments = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, segmentList.array.length, 6, 1); + $toArray_2(segmentList, segments); + } + if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 63)) { + j = $indexOf_0(uri_0, 35, ++i); + j == -1 && (j = uri_0.length); + query = uri_0.substr(i, j - i); + i = j; + } + i < uri_0.length && (fragment = $substring_0(uri_0, ++i)); + validateURI(hierarchical, scheme, authority, device, segments, query); + return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); +} + +function segmentsRemain(uri_0, i){ + return i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35); +} + +function unescape_0(highHexDigit, lowHexDigit){ + return (valueOf_112(highHexDigit) << 4 | valueOf_112(lowHexDigit)) & $intern_46; +} + +function validArchiveAuthority(value_0){ + var archiveURI; + if (value_0 != null && value_0.length > 0 && $charAt(value_0, value_0.length - 1) == 33) { + try { + archiveURI = createURIWithCache($substring_1(value_0, 0, value_0.length - 1)); + return archiveURI.fragment == null; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 32)) + throw toJs($e0); + } + } + return false; +} + +function validDevice(value_0){ + var len; + if (value_0 == null) + return true; + len = value_0.length; + return len > 0 && (checkCriticalStringElementIndex(len - 1, value_0.length) , value_0.charCodeAt(len - 1) == 58) && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); +} + +function validSegment(value_0){ + return value_0 != null && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); +} + +function validSegments(value_0){ + var i, len; + if (value_0 == null) + return false; + for (i = 0 , len = value_0.length; i < len; i++) { + if (!validSegment(value_0[i])) + return false; + } + return true; +} + +function validateURI(hierarchical, scheme, authority, device, segments, query){ + var s; + if (!(scheme == null || !contains_62(scheme, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO))) { + throw toJs(new IllegalArgumentException_0('invalid scheme: ' + scheme)); + } + if (!hierarchical && !(authority != null && $indexOf_1(authority, fromCodePoint(35)) == -1 && authority.length > 0 && (checkCriticalStringElementIndex(0, authority.length) , authority.charCodeAt(0) != 47))) { + throw toJs(new IllegalArgumentException_0('invalid opaquePart: ' + authority)); + } + if (hierarchical && !(scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase())) && !(authority == null || !contains_62(authority, SEGMENT_END_HI, SEGMENT_END_LO))) { + throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); + } + if (hierarchical && scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()) && !validArchiveAuthority(authority)) { + throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); + } + if (!validDevice(device)) { + throw toJs(new IllegalArgumentException_0('invalid device: ' + device)); + } + if (!validSegments(segments)) { + s = segments == null?'invalid segments: null':'invalid segment: ' + firstInvalidSegment(segments); + throw toJs(new IllegalArgumentException_0(s)); + } + if (!(query == null || $indexOf_1(query, fromCodePoint(35)) == -1)) { + throw toJs(new IllegalArgumentException_0('invalid query: ' + query)); + } +} + +function valueOf_112(hexDigit){ + if (hexDigit >= 65 && hexDigit <= 70) { + return hexDigit - 65 + 10; + } + if (hexDigit >= 97 && hexDigit <= 102) { + return hexDigit - 97 + 10; + } + if (hexDigit >= 48 && hexDigit <= 57) { + return hexDigit - 48; + } + return 0; +} + +defineClass(281, 1, {281:1}, URI); +_.equals_0 = function equals_192(object){ + var uri_0; + if (this === object) + return true; + if (!instanceOf(object, 281)) + return false; + uri_0 = castTo(object, 281); + return this.hashCode_0 == uri_0.hashCode_0 && equals_194(this.scheme, uri_0.scheme) && equals_193(this.authority, (this.hashCode_0 & 256) != 0?(uri_0.hashCode_0 & 256) != 0?uri_0.authority:null:(uri_0.hashCode_0 & 256) != 0?null:uri_0.authority) && equals_193(this.device, uri_0.device) && equals_193(this.query, uri_0.query) && equals_193(this.fragment, uri_0.fragment) && $segmentsEqual(this, uri_0); +} +; +_.hashCode_1 = function hashCode_80(){ + return this.hashCode_0; +} +; +_.toString_0 = function toString_142(){ + return $toString_26(this); +} +; +_.hashCode_0 = 0; +var ALPHANUM_HI = 0, ALPHANUM_LO = 0, ALPHA_HI = 0, ALPHA_LO = 0, DIGIT_LO = 0, HEX_HI = 0, HEX_LO = 0, MAJOR_SEPARATOR_HI = 0, MAJOR_SEPARATOR_LO = 0, NO_SEGMENTS, SEGMENT_END_HI = 0, SEGMENT_END_LO = 0, UNRESERVED_HI = 0, UNRESERVED_LO = 0, archiveSchemes, uriCache; +var Lorg_eclipse_emf_common_util_URI_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI', 281); +function $get_22(this$static, key){ + return castTo(key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key), 281); +} + +function $put_14(this$static, key, value_0){ + return castTo(key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0), 281); +} + +function URI$URICache(){ + HashMap.call(this); +} + +defineClass(1091, 43, $intern_76, URI$URICache); +_.put = function put_11(key, value_0){ + return castTo($putStringValue(this, castToString(key), castTo(value_0, 281)), 281); +} +; +var Lorg_eclipse_emf_common_util_URI$URICache_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI/URICache', 1091); +function UniqueEList(){ +} + +function UniqueEList_0(collection){ + BasicEList_0.call(this, collection.size_1()); + $addAll_9(this, collection); +} + +defineClass(497, 63, $intern_138, UniqueEList, UniqueEList_0); +_.isUnique = function isUnique_1(){ + return true; +} +; +var Lorg_eclipse_emf_common_util_UniqueEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'UniqueEList', 497); +function WrappedException(exception){ + $$init_0(this); + this.detailMessage = !exception?null:$toString_4(exception, exception.getMessage()); + this.cause_0 = exception; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +defineClass(581, 60, $intern_43, WrappedException); +var Lorg_eclipse_emf_common_util_WrappedException_2_classLit = createForClass('org.eclipse.emf.common.util', 'WrappedException', 581); +var Lorg_eclipse_emf_ecore_EAnnotation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAnnotation'); +var Lorg_eclipse_emf_ecore_ETypedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypedElement'); +var Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EStructuralFeature'); +var Lorg_eclipse_emf_ecore_EAttribute_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAttribute'); +var Lorg_eclipse_emf_ecore_EClassifier_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClassifier'); +var Lorg_eclipse_emf_ecore_EClass_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClass'); +var Lorg_eclipse_emf_ecore_EDataType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EDataType'); +function $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry(){ + $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry = emptyMethod; + INSTANCE_5 = new EDataType$Internal$ConversionDelegate$Factory$Registry$Impl; +} + +var INSTANCE_5; +function $getFactory(this$static, uri_0){ + var factory; + return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); +} + +function EDataType$Internal$ConversionDelegate$Factory$Registry$Impl(){ + HashMap.call(this); +} + +defineClass(1183, 43, $intern_76, EDataType$Internal$ConversionDelegate$Factory$Registry$Impl); +_.get_3 = function get_57(key){ + return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); +} +; +var Lorg_eclipse_emf_ecore_EDataType$Internal$ConversionDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl', 1183); +var Lorg_eclipse_emf_ecore_EEnum_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnum'); +var Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnumLiteral'); +var Lorg_eclipse_emf_ecore_EGenericType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EGenericType'); +var Lorg_eclipse_emf_ecore_EOperation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EOperation'); +function $clinit_EPackage$Registry(){ + $clinit_EPackage$Registry = emptyMethod; + INSTANCE_6 = new EPackageRegistryImpl; +} + +var INSTANCE_6; +var Lorg_eclipse_emf_ecore_EParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EParameter'); +var Lorg_eclipse_emf_ecore_EReference_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EReference'); +function EStructuralFeature$Internal$DynamicValueHolder$1(){ +} + +defineClass(1029, 1, {}, EStructuralFeature$Internal$DynamicValueHolder$1); +_.toString_0 = function toString_143(){ + return 'NIL'; +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$DynamicValueHolder$1_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/DynamicValueHolder/1', 1029); +function $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry(){ + $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry = emptyMethod; + INSTANCE_7 = new EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl; +} + +var INSTANCE_7; +function $getFactory_0(this$static, uri_0){ + var factory; + return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); +} + +function EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl(){ + HashMap.call(this); +} + +defineClass(1028, 43, $intern_76, EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl); +_.get_3 = function get_58(key){ + return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl', 1028); +var Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypeParameter'); +var Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EValidator/PatternMatcher'); +function $clinit_EValidator$Registry(){ + $clinit_EValidator$Registry = emptyMethod; + INSTANCE_8 = new EValidatorRegistryImpl; +} + +var INSTANCE_8; +function $clinit_EcoreFactory(){ + $clinit_EcoreFactory = emptyMethod; + eINSTANCE_1 = init_3(); +} + +var eINSTANCE_1; +function $clinit_EcorePackage(){ + $clinit_EcorePackage = emptyMethod; + eINSTANCE_2 = init_4(); + !!($clinit_EcorePackage$Literals() , EATTRIBUTE) && internalBootstrap(); +} + +var eINSTANCE_2; +function $clinit_EcorePackage$Literals(){ + $clinit_EcorePackage$Literals = emptyMethod; + EATTRIBUTE = ($clinit_EcorePackage() , eINSTANCE_2).eAttributeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 1), 18); + EANNOTATION = eINSTANCE_2.eAnnotationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 4), 18); + ECLASS = eINSTANCE_2.eClassEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 1), 34); + ECLASS__ESUPER_TYPES = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 7), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 8), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 9), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 10), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 11), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 12), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 13), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 14), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 15), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 2), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 3), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 4), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 5), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 6), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 7), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 8), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 9), 59); + ECLASSIFIER = eINSTANCE_2.eClassifierEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 1), 59); + EDATA_TYPE = eINSTANCE_2.eDataTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eDataTypeEClass), 0), 34); + EENUM = eINSTANCE_2.eEnumEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 2), 59); + EENUM_LITERAL = eINSTANCE_2.eEnumLiteralEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 3), 18); + EFACTORY = eINSTANCE_2.eFactoryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eFactoryEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 2), 59); + EMODEL_ELEMENT = eINSTANCE_2.eModelElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eModelElementEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eModelElementEClass), 0), 59); + ENAMED_ELEMENT = eINSTANCE_2.eNamedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eNamedElementEClass), 0), 34); + EOBJECT = eINSTANCE_2.eObjectEClass; + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 2), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 3), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 4), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 5), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 6), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 7), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 8), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 9), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 10), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 11), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 12), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 13), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 14), 59); + EOPERATION = eINSTANCE_2.eOperationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 2), 18); + EOPERATION__EEXCEPTIONS = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 4), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 1), 59); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 1), 18); + EPACKAGE = eINSTANCE_2.ePackageEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.ePackageEClass), 0), 59); + EPARAMETER = eINSTANCE_2.eParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eParameterEClass), 0), 18); + EREFERENCE = eINSTANCE_2.eReferenceEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 5), 18); + ESTRUCTURAL_FEATURE = eINSTANCE_2.eStructuralFeatureEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 6), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 7), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 1), 59); + ETYPED_ELEMENT = eINSTANCE_2.eTypedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 7), 18); + ESTRING_TO_STRING_MAP_ENTRY = eINSTANCE_2.eStringToStringMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 1), 34); + EGENERIC_TYPE = eINSTANCE_2.eGenericTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eGenericTypeEClass), 0), 59); + ETYPE_PARAMETER = eINSTANCE_2.eTypeParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypeParameterEClass), 0), 18); + EJAVA_OBJECT = eINSTANCE_2.eJavaObjectEDataType; +} + +var EANNOTATION, EATTRIBUTE, ECLASS, ECLASSIFIER, ECLASS__ESUPER_TYPES, EDATA_TYPE, EENUM, EENUM_LITERAL, EFACTORY, EGENERIC_TYPE, EJAVA_OBJECT, EMODEL_ELEMENT, ENAMED_ELEMENT, EOBJECT, EOPERATION, EOPERATION__EEXCEPTIONS, EPACKAGE, EPARAMETER, EREFERENCE, ESTRING_TO_STRING_MAP_ENTRY, ESTRUCTURAL_FEATURE, ETYPED_ELEMENT, ETYPE_PARAMETER; +var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry'); +function BasicEObjectImpl$1(val$eAttribute, val$value){ + this.val$eAttribute1 = val$eAttribute; + this.val$value2 = val$value; +} + +defineClass(535, 1, {72:1}, BasicEObjectImpl$1); +_.getEStructuralFeature = function getEStructuralFeature(){ + return this.val$eAttribute1; +} +; +_.getValue = function getValue_12(){ + return this.val$value2; +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/1', 535); +function BasicEObjectImpl$4(this$0, val$eFeature){ + this.this$01 = this$0; + this.val$eFeature2 = val$eFeature; +} + +defineClass(1027, 1, $intern_147, BasicEObjectImpl$4); +_.get_6 = function get_59(resolve){ + return $eGet_1(this.this$01, this.val$eFeature2, resolve); +} +; +_.isSet_0 = function isSet_1(){ + return $eIsSet_0(this.this$01, this.val$eFeature2); +} +; +_.set_1 = function set_29(newValue){ + $eSet_0(this.this$01, this.val$eFeature2, newValue); +} +; +_.unset = function unset(){ + $eUnset_0(this.this$01, this.val$eFeature2); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/4', 1027); +function $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl = emptyMethod; + NO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +defineClass(1983, 1, {108:1}); +_.allocateSettings = function allocateSettings(dynamicFeatureCount){ + this.eSettings = dynamicFeatureCount == 0?NO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, dynamicFeatureCount, 5, 1); +} +; +_.dynamicGet = function dynamicGet_0(dynamicFeatureID){ + return this.eSettings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet_0(dynamicFeatureID, value_0){ + this.eSettings[dynamicFeatureID] = value_0; +} +; +_.dynamicUnset = function dynamicUnset_0(dynamicFeatureID){ + this.eSettings[dynamicFeatureID] = null; +} +; +_.getEClass = function getEClass(){ + return this.eClass; +} +; +_.getEContents = function getEContents(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEProxyURI = function getEProxyURI(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEResource = function getEResource(){ + return this.eResource; +} +; +_.hasSettings = function hasSettings(){ + return this.eSettings != null; +} +; +_.setEClass = function setEClass(eClass){ + this.eClass = eClass; +} +; +_.setEContents = function setEContents(eContents){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEProxyURI = function setEProxyURI(eProxyURI){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEResource = function setEResource(eResource){ + this.eResource = eResource; +} +; +var NO_SETTINGS; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderBaseImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderBaseImpl', 1983); +function BasicEObjectImpl$EPropertiesHolderImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(); +} + +defineClass(185, 1983, {108:1}, BasicEObjectImpl$EPropertiesHolderImpl); +_.getEContents = function getEContents_0(){ + return this.eContents; +} +; +_.getEProxyURI = function getEProxyURI_0(){ + return this.eProxyURI; +} +; +_.setEContents = function setEContents_0(eContents){ + this.eContents = eContents; +} +; +_.setEProxyURI = function setEProxyURI_0(eProxyURI){ + this.eProxyURI = eProxyURI; +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderImpl', 185); +function EObjectImpl(){ +} + +defineClass(506, 97, $intern_135, EObjectImpl); +_.eBasicAdapters = function eBasicAdapters_2(){ + return this.eAdapters; +} +; +_.eBasicProperties = function eBasicProperties_1(){ + return this.eProperties; +} +; +_.eBasicSetContainer = function eBasicSetContainer_4(newContainer, newContainerFeatureID){ + this.eContainer = newContainer; + this.eContainerFeatureID = newContainerFeatureID; +} +; +_.eClass_0 = function eClass_2(){ + return (this.eFlags & 2) == 0?this.eStaticClass():this.eProperties_0().getEClass(); +} +; +_.eContainerFeatureID_0 = function eContainerFeatureID_2(){ + return this.eContainerFeatureID; +} +; +_.eDeliver = function eDeliver_2(){ + return (this.eFlags & 1) != 0; +} +; +_.eInternalContainer = function eInternalContainer_3(){ + return this.eContainer; +} +; +_.eIsProxy = function eIsProxy_1(){ + return (this.eFlags & 4) != 0; +} +; +_.eProperties_0 = function eProperties_2(){ + return !this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties; +} +; +_.eSetClass = function eSetClass_1(eClass){ + this.eProperties_0().setEClass(eClass); + eClass?(this.eFlags |= 2):(this.eFlags &= -3); +} +; +_.eSetProxyURI = function eSetProxyURI_2(uri_0){ + this.eProperties_0().setEProxyURI(uri_0); + uri_0?(this.eFlags |= 4):(this.eFlags &= -5); +} +; +_.eStaticClass = function eStaticClass_15(){ + return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; +} +; +_.eContainerFeatureID = 0; +_.eFlags = 1; +var Lorg_eclipse_emf_ecore_impl_EObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EObjectImpl', 506); +function $clinit_DynamicEObjectImpl(){ + $clinit_DynamicEObjectImpl = emptyMethod; + ENO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function DynamicEObjectImpl(eClass){ + $clinit_DynamicEObjectImpl(); + EObjectImpl.call(this); + this.eSetClass(eClass); +} + +defineClass(780, 506, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl); +_.dynamicGet = function dynamicGet_1(dynamicFeatureID){ + return this.eSettings[dynamicFeatureID]; +} +; +_.dynamicSet = function dynamicSet_1(dynamicFeatureID, value_0){ + this.eSettings[dynamicFeatureID] = value_0; +} +; +_.dynamicUnset = function dynamicUnset_1(dynamicFeatureID){ + this.eSettings[dynamicFeatureID] = null; +} +; +_.eClass_0 = function eClass_3(){ + return this.eClass; +} +; +_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_1(eStructuralFeature){ + return $getFeatureID(this.eClass, eStructuralFeature); +} +; +_.eDynamicClass = function eDynamicClass_1(){ + return this.eClass; +} +; +_.eHasSettings = function eHasSettings_1(){ + return this.eSettings != null; +} +; +_.eProperties_0 = function eProperties_3(){ + !this.eProperties && (this.eProperties = new DynamicEObjectImpl$DynamicEPropertiesHolderImpl); + return this.eProperties; +} +; +_.eSetClass = function eSetClass_2(eClass){ + this.eClass = eClass; +} +; +_.eSettings_0 = function eSettings_1(){ + var size_0; + if (this.eSettings == null) { + size_0 = $getFeatureCount(this.eClass); + this.eSettings = size_0 == 0?ENO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + } + return this; +} +; +_.eStaticFeatureCount = function eStaticFeatureCount_0(){ + return 0; +} +; +var ENO_SETTINGS; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl', 780); +function DynamicEObjectImpl$BasicEMapEntry(eClass){ + $clinit_DynamicEObjectImpl(); + DynamicEObjectImpl.call(this, eClass); + this.hash = -1; +} + +defineClass(1376, 780, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl$BasicEMapEntry); +_.equals_0 = function equals_195(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_81(){ + return getHashCode_0(this); +} +; +_.eSetClass = function eSetClass_3(eClass){ + this.eClass = eClass; + this.keyFeature = $getEStructuralFeature_0(eClass, 'key'); + this.valueFeature = $getEStructuralFeature_0(eClass, 'value'); +} +; +_.getHash = function getHash_1(){ + var theKey; + if (this.hash == -1) { + theKey = $eGet_2(this, this.keyFeature); + this.hash = theKey == null?0:hashCode__I__devirtual$(theKey); + } + return this.hash; +} +; +_.getKey = function getKey_10(){ + return $eGet_2(this, this.keyFeature); +} +; +_.getValue = function getValue_13(){ + return $eGet_2(this, this.valueFeature); +} +; +_.setHash = function setHash_1(hash){ + this.hash = hash; +} +; +_.setKey = function setKey_1(key){ + $eSet_0(this, this.keyFeature, key); +} +; +_.setValue = function setValue_13(value_0){ + var result; + result = $eGet_2(this, this.valueFeature); + $eSet_0(this, this.valueFeature, value_0); + return result; +} +; +_.hash = 0; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$BasicEMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/BasicEMapEntry', 1376); +function DynamicEObjectImpl$DynamicEPropertiesHolderImpl(){ +} + +defineClass(1377, 1, {108:1}, DynamicEObjectImpl$DynamicEPropertiesHolderImpl); +_.allocateSettings = function allocateSettings_0(maximumDynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicGet = function dynamicGet_2(dynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicSet = function dynamicSet_2(dynamicFeatureID, value_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicUnset = function dynamicUnset_2(dynamicFeatureID){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEClass = function getEClass_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.getEContents = function getEContents_1(){ + return this.eContents; +} +; +_.getEProxyURI = function getEProxyURI_1(){ + return this.eProxyURI; +} +; +_.getEResource = function getEResource_0(){ + return this.eResource; +} +; +_.hasSettings = function hasSettings_0(){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEClass = function setEClass_0(eClass){ + throw toJs(new UnsupportedOperationException); +} +; +_.setEContents = function setEContents_1(eContents){ + this.eContents = eContents; +} +; +_.setEProxyURI = function setEProxyURI_1(eProxyURI){ + this.eProxyURI = eProxyURI; +} +; +_.setEResource = function setEResource_0(eResource){ + this.eResource = eResource; +} +; +var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$DynamicEPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/DynamicEPropertiesHolderImpl', 1377); +function $basicSetEModelElement(this$static, newEModelElement, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newEModelElement, 49), 3, msgs); + return msgs; +} + +function $eBasicRemoveFromContainerFeature_5(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 3) { + return this$static.eContainer.eInverseRemove(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getContents(this$static){ + !this$static.contents && (this$static.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this$static, 4)); + return this$static.contents; +} + +function $getEModelElement(this$static){ + if (this$static.eFlags_0 >> 16 != 3) + return null; + return castTo(this$static.eContainer, 147); +} + +function $setEModelElement(this$static, newEModelElement){ + var eContainerFeatureID, msgs; + if (newEModelElement != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newEModelElement) { + if (isAncestor(this$static, newEModelElement)) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_27(this$static))); + msgs = null; + !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); + !!newEModelElement && (msgs = castTo(newEModelElement, 49).eInverseAdd(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs)); + msgs = $basicSetEModelElement(this$static, newEModelElement, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newEModelElement, newEModelElement)); +} + +function $setSource_2(this$static, newSource){ + $setSourceGen(this$static, newSource == null?null:(checkCriticalNotNull(newSource) , newSource)); +} + +function $setSourceGen(this$static, newSource){ + var oldSource; + oldSource = this$static.source; + this$static.source = newSource; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldSource, this$static.source)); +} + +function $toString_27(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_16(this$static); + result = new StringBuffer_1($toString_16(this$static)); + result.string += ' (source: '; + $append_3(result, this$static.source); + result.string += ')'; + return result.string; +} + +function EAnnotationImpl(){ +} + +defineClass(510, 150, {105:1, 92:1, 90:1, 590:1, 147:1, 56:1, 108:1, 49:1, 97:1, 510:1, 150:1, 114:1, 115:1}, EAnnotationImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_6(msgs){ + return $eBasicRemoveFromContainerFeature_5(this, msgs); +} +; +_.eGet = function eGet_17(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.source; + case 2: + return coreType?(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , this.details):(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $map_1(this.details)); + case 3: + return $getEModelElement(this); + case 4: + return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , this.contents; + case 5: + return !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)) , this.references; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_11(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 3: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $basicSetEModelElement(this, castTo(otherEnd, 147), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_12(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 2: + return !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $basicRemove_1(this.details, otherEnd, msgs); + case 3: + return $basicSetEModelElement(this, null, msgs); + case 4: + return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , $basicRemove_0(this.contents, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_16(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.source != null; + case 2: + return !!this.details && this.details.size_0 != 0; + case 3: + return !!$getEModelElement(this); + case 4: + return !!this.contents && this.contents.size_0 != 0; + case 5: + return !!this.references && this.references.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.eSet = function eSet_15(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setSource_2(this, castToString(newValue)); + return; + case 2: + !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); + $set_14(this.details, newValue); + return; + case 3: + $setEModelElement(this, castTo(newValue, 147)); + return; + case 4: + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $clear_13(this.contents); + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $addAll_9(this.contents, castTo(newValue, 14)); + return; + case 5: + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $clear_13(this.references); + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $addAll_9(this.references, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_16(){ + return $clinit_EcorePackage$Literals() , EANNOTATION; +} +; +_.eUnset = function eUnset_15(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setSourceGen(this, null); + return; + case 2: + !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); + this.details.delegateEList.clear_0(); + return; + case 3: + $setEModelElement(this, null); + return; + case 4: + !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); + $clear_13(this.contents); + return; + case 5: + !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); + $clear_13(this.references); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.toString_0 = function toString_144(){ + return $toString_27(this); +} +; +_.source = null; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl', 510); +function $addUnique_7(this$static, index_0, object){ + castTo(this$static.delegateEList, 69).addUnique(index_0, object); +} + +function $basicAdd_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 69).basicAdd(object, notifications); +} + +function $basicRemove_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 69).basicRemove(object, notifications); +} + +function $set_14(this$static, value_0){ + var mapValue; + if (instanceOf(value_0, 83)) { + castTo(this$static.delegateEList, 76).unset(); + mapValue = castTo(value_0, 83); + $putAll_0(this$static, mapValue); + } + else { + castTo(this$static.delegateEList, 76).set_1(value_0); + } +} + +function EcoreEMap(entryEClass, entryClass, owner, featureID){ + this.initializeDelegateEList(); + this.entryClass = entryClass; + this.entryEClass = entryEClass; + this.delegateEList = new EcoreEMap$DelegateEObjectContainmentEList(this, entryClass, owner, featureID); +} + +defineClass(151, 705, $intern_148, EcoreEMap); +_.addUnique = function addUnique_9(index_0, object){ + $addUnique_7(this, index_0, castTo(object, 42)); +} +; +_.basicAdd = function basicAdd(object, notifications){ + return $basicAdd_1(this, castTo(object, 42), notifications); +} +; +_.basicGet = function basicGet_0(index_0){ + return castTo(castTo(this.delegateEList, 69).basicGet(index_0), 133); +} +; +_.basicIterator = function basicIterator_1(){ + return castTo(this.delegateEList, 69).basicIterator(); +} +; +_.basicListIterator = function basicListIterator_3(){ + return castTo(this.delegateEList, 69).basicListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_4(index_0){ + return castTo(this.delegateEList, 69).basicListIterator_0(index_0); +} +; +_.basicRemove = function basicRemove(object, notifications){ + return $basicRemove_1(this, object, notifications); +} +; +_.get_6 = function get_60(resolve){ + return castTo(this.delegateEList, 76).get_6(resolve); +} +; +_.initializeDelegateEList = function initializeDelegateEList_0(){ +} +; +_.isSet_0 = function isSet_2(){ + return castTo(this.delegateEList, 76).isSet_0(); +} +; +_.newEntry = function newEntry_1(hash, key, value_0){ + var entry; + entry = castTo($getEPackage(this.entryEClass).getEFactoryInstance().create_3(this.entryEClass), 133); + entry.setHash(hash); + entry.setKey(key); + entry.setValue(value_0); + return entry; +} +; +_.newList = function newList_0(){ + return new EcoreEMap$1(this); +} +; +_.set_1 = function set_30(value_0){ + $set_14(this, value_0); +} +; +_.unset = function unset_0(){ + castTo(this.delegateEList, 76).unset(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap', 151); +function EAnnotationImpl$1($anonymous0, $anonymous1, $anonymous2){ + EcoreEMap.call(this, $anonymous0, $anonymous1, $anonymous2, 2); +} + +defineClass(158, 151, $intern_148, EAnnotationImpl$1); +_.ensureEntryDataExists = function ensureEntryDataExists_0(){ + var eList, entry, entry$iterator, hash, index_0, result; + if (this.entryData == null) { + result = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); + for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { + entry = castTo(entry$iterator.doNext(), 133); + hash = entry.getHash(); + index_0 = (hash & $intern_0) % result.length; + eList = result[index_0]; + !eList && (eList = result[index_0] = new EcoreEMap$1(this)); + eList.add_2(entry); + } + this.entryData = result; + } +} +; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl/1', 158); +function $basicSetEGenericType(this$static, newEGenericType, msgs){ + var newEType, notification, oldEGenericType; + oldEGenericType = this$static.eGenericType; + this$static.eGenericType = newEGenericType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 9, oldEGenericType, newEGenericType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (!newEGenericType) { + !!this$static.eType && (msgs = this$static.setEType(null, msgs)); + } + else { + newEType = newEGenericType.eRawType; + newEType != this$static.eType && (msgs = this$static.setEType(newEType, msgs)); + } + return msgs; +} + +function $basicUnsetEGenericType(this$static, msgs){ + msgs = this$static.setEType(null, msgs); + return $basicSetEGenericType(this$static, null, msgs); +} + +function $getEType(this$static){ + var oldEType; + if ((this$static.eFlags & 1) == 0 && !!this$static.eType && this$static.eType.eIsProxy()) { + oldEType = castTo(this$static.eType, 49); + this$static.eType = castTo($eResolveProxy(this$static, oldEType), 138); + this$static.eType != oldEType && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldEType, this$static.eType)); + } + return this$static.eType; +} + +function $setEGenericType(this$static, newEGenericType, msgs){ + var notification; + if (newEGenericType != this$static.eGenericType) { + !!this$static.eGenericType && (msgs = $eInverseRemove(this$static.eGenericType, this$static, -10, msgs)); + !!newEGenericType && (msgs = $eInverseAdd(newEGenericType, this$static, -10, msgs)); + msgs = $basicSetEGenericType(this$static, newEGenericType, msgs); + } + else if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 9, newEGenericType, newEGenericType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $setEType(this$static, newEType){ + var eGenericType, msgs, newEGenericType; + msgs = this$static.setEType(newEType, null); + newEGenericType = null; + if (newEType) { + newEGenericType = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(newEGenericType, this$static.eType); + } + msgs = $setEGenericType(this$static, newEGenericType, msgs); + !!msgs && msgs.dispatch_0(); +} + +function $setEType_0(this$static, newEType, msgs){ + var notification, oldEType; + oldEType = this$static.eType; + this$static.eType = newEType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 8, oldEType, this$static.eType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $setLowerBound(this$static, newLowerBound){ + var oldLowerBound; + oldLowerBound = this$static.lowerBound; + this$static.lowerBound = newLowerBound; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 4, oldLowerBound, this$static.lowerBound)); +} + +function $setOrdered(this$static, newOrdered){ + var oldOrdered; + oldOrdered = (this$static.eFlags & 256) != 0; + newOrdered?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 2, oldOrdered, newOrdered)); +} + +function $setUnique_2(this$static, newUnique){ + var oldUnique; + oldUnique = (this$static.eFlags & 512) != 0; + newUnique?(this$static.eFlags |= 512):(this$static.eFlags &= -513); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 3, oldUnique, newUnique)); +} + +function $setUpperBound(this$static, newUpperBound){ + var oldUpperBound; + oldUpperBound = this$static.upperBound; + this$static.upperBound = newUpperBound; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 5, oldUpperBound, this$static.upperBound)); +} + +function $toString_28(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_21(this$static); + result = new StringBuffer_1($toString_21(this$static)); + result.string += ' (ordered: '; + $append_4(result, (this$static.eFlags & 256) != 0); + result.string += ', unique: '; + $append_4(result, (this$static.eFlags & 512) != 0); + result.string += ', lowerBound: '; + $append_1(result, this$static.lowerBound); + result.string += ', upperBound: '; + $append_1(result, this$static.upperBound); + result.string += ')'; + return result.string; +} + +function ETypedElementImpl(){ + this.eFlags |= 256; + this.eFlags |= 512; +} + +defineClass(284, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 472:1, 49:1, 97:1, 150:1, 284:1, 114:1, 115:1}); +_.eGet = function eGet_18(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , this.isMany()?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_13(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_17(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return this.isMany(); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_16(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + this.setName(castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_17(){ + return $clinit_EcorePackage$Literals() , ETYPED_ELEMENT; +} +; +_.eUnset = function eUnset_16(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + this.setName(null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.setUpperBound(1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_1(){ + $getEType(this); + this.eFlags |= 1; +} +; +_.getEType = function getEType(){ + return $getEType(this); +} +; +_.getUpperBound = function getUpperBound(){ + return this.upperBound; +} +; +_.isMany = function isMany(){ + var upper; + return upper = this.upperBound , upper > 1 || upper == -1; +} +; +_.isUnique = function isUnique_2(){ + return (this.eFlags & 512) != 0; +} +; +_.setEType = function setEType(newEType, msgs){ + return $setEType_0(this, newEType, msgs); +} +; +_.setUpperBound = function setUpperBound(newUpperBound){ + $setUpperBound(this, newUpperBound); +} +; +_.toString_0 = function toString_145(){ + return $toString_28(this); +} +; +_.lowerBound = 0; +_.upperBound = 1; +var Lorg_eclipse_emf_ecore_impl_ETypedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypedElementImpl', 284); +function $eBasicRemoveFromContainerFeature_6(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 17) { + return this$static.eContainer.eInverseRemove(this$static, 21, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getDefaultValue(this$static){ + var eDataType, ePackage, eType, factory, literal; + eType = $getEType(this$static); + literal = this$static.defaultValueLiteral; + if (literal == null && !!eType) { + return this$static.isMany()?null:eType.getDefaultValue(); + } + else if (instanceOf(eType, 148)) { + ePackage = eType.getEPackage(); + if (ePackage) { + factory = ePackage.getEFactoryInstance(); + if (factory != this$static.defaultValueFactory) { + eDataType = castTo(eType, 148); + if (eDataType.isSerializable()) { + try { + this$static.defaultValue = factory.createFromString(eDataType, literal); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + this$static.defaultValue = null; + } + else + throw toJs($e0); + } + } + this$static.defaultValueFactory = factory; + } + } + return this$static.defaultValue; + } + return null; +} + +function $getEContainingClass(this$static){ + if (this$static.eFlags_0 >> 16 != 17) + return null; + return castTo(this$static.eContainer, 26); +} + +function $getFeatureMapEntryPrototype(this$static){ + var eOpposite; + if (!this$static.prototypeFeatureMapEntry) { + eOpposite = this$static.getEOpposite(); + eOpposite?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$static, this$static, null)):this$static.isContainment()?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this$static, null)):$getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this$static)) == 1?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleContentFeatureMapEntry(this$static)):(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleFeatureMapEntry(this$static, null)); + } + return this$static.prototypeFeatureMapEntry; +} + +function $isFeatureMap(this$static){ + var eType; + if (this$static.cachedEType != this$static.eType) { + eType = $getEType(this$static); + this$static.cachedIsFeatureMap = !!eType && eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry'; + this$static.cachedEType = eType; + } + return this$static.cachedIsFeatureMap; +} + +function $setChangeable(this$static, newChangeable){ + var oldChangeable; + oldChangeable = (this$static.eFlags & $intern_137) != 0; + newChangeable?(this$static.eFlags |= $intern_137):(this$static.eFlags &= -1025); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 10, oldChangeable, newChangeable)); +} + +function $setDefaultValueLiteral(this$static, newDefaultValueLiteral){ + this$static.defaultValueFactory = null; + $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral); +} + +function $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral){ + var oldDefaultValueLiteral; + oldDefaultValueLiteral = this$static.defaultValueLiteral; + this$static.defaultValueLiteral = newDefaultValueLiteral; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 13, oldDefaultValueLiteral, this$static.defaultValueLiteral)); +} + +function $setDerived(this$static, newDerived){ + var oldDerived; + oldDerived = (this$static.eFlags & $intern_17) != 0; + newDerived?(this$static.eFlags |= $intern_17):(this$static.eFlags &= -16385); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 16, oldDerived, newDerived)); +} + +function $setFeatureID(this$static, featureID){ + this$static.featureID = featureID; +} + +function $setName_0(this$static, newName){ + instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 4); + $setName(this$static, newName); +} + +function $setTransient(this$static, newTransient){ + var oldTransient; + oldTransient = (this$static.eFlags & $intern_61) != 0; + newTransient?(this$static.eFlags |= $intern_61):(this$static.eFlags &= -4097); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 12, oldTransient, newTransient)); +} + +function $setUnsettable(this$static, newUnsettable){ + var oldUnsettable; + oldUnsettable = (this$static.eFlags & $intern_149) != 0; + newUnsettable?(this$static.eFlags |= $intern_149):(this$static.eFlags &= -8193); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 15, oldUnsettable, newUnsettable)); +} + +function $setVolatile(this$static, newVolatile){ + var oldVolatile; + oldVolatile = (this$static.eFlags & $intern_150) != 0; + newVolatile?(this$static.eFlags |= $intern_150):(this$static.eFlags &= -2049); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 11, oldVolatile, newVolatile)); +} + +function $toString_29(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_28(this$static); + result = new StringBuffer_1($toString_28(this$static)); + result.string += ' (changeable: '; + $append_4(result, (this$static.eFlags & $intern_137) != 0); + result.string += ', volatile: '; + $append_4(result, (this$static.eFlags & $intern_150) != 0); + result.string += ', transient: '; + $append_4(result, (this$static.eFlags & $intern_61) != 0); + result.string += ', defaultValueLiteral: '; + $append_3(result, this$static.defaultValueLiteral); + result.string += ', unsettable: '; + $append_4(result, (this$static.eFlags & $intern_149) != 0); + result.string += ', derived: '; + $append_4(result, (this$static.eFlags & $intern_17) != 0); + result.string += ')'; + return result.string; +} + +function EStructuralFeatureImpl(){ + ETypedElementImpl.call(this); + this.featureID = -1; + this.defaultValue = null; + this.defaultValueFactory = null; + this.defaultValueLiteral = null; + this.eFlags |= $intern_137; +} + +defineClass(449, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_7(msgs){ + return $eBasicRemoveFromContainerFeature_6(this, msgs); +} +; +_.eGet = function eGet_19(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , this.isMany()?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_12(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 17: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_6(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 17, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_14(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 17: + return $eBasicSetContainer(this, null, 17, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_18(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return this.isMany(); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_137) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_17(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_18(){ + return $clinit_EcorePackage$Literals() , ESTRUCTURAL_FEATURE; +} +; +_.eUnset = function eUnset_17(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.setUpperBound(1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_2(){ + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.getContainerClass = function getContainerClass(){ + return this.containerClass; +} +; +_.getDefaultValue = function getDefaultValue(){ + return $getDefaultValue(this); +} +; +_.getEContainingClass = function getEContainingClass(){ + return $getEContainingClass(this); +} +; +_.getEOpposite = function getEOpposite(){ + return null; +} +; +_.getExtendedMetaData_0 = function getExtendedMetaData_0(){ + return this.eStructuralFeatureExtendedMetaData; +} +; +_.getFeatureID_0 = function getFeatureID_4(){ + return this.featureID; +} +; +_.getFeatureMapEntryPrototype = function getFeatureMapEntryPrototype(){ + return $getFeatureMapEntryPrototype(this); +} +; +_.getSettingDelegate = function getSettingDelegate(){ + var dataClass, defaultValue, eClass, eOpposite, eType, featureMapFeature, instanceClass, intrinsicDefaultValue, upper; + if (!this.settingDelegate) { + eClass = $getEContainingClass(this); + (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; + eOpposite = this.getEOpposite(); + !!eOpposite && $getFeatureCount($getEContainingClass(eOpposite)); + eType = $getEType(this); + instanceClass = eType.getInstanceClass(); + dataClass = !instanceClass?null:(instanceClass.modifiers & 1) != 0?instanceClass == Z_classLit?Ljava_lang_Boolean_2_classLit:instanceClass == I_classLit?Ljava_lang_Integer_2_classLit:instanceClass == F_classLit?Ljava_lang_Float_2_classLit:instanceClass == D_classLit?Ljava_lang_Double_2_classLit:instanceClass == J_classLit?Ljava_lang_Long_2_classLit:instanceClass == S_classLit?Ljava_lang_Short_2_classLit:instanceClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:instanceClass; + defaultValue = $getDefaultValue(this); + intrinsicDefaultValue = eType.getDefaultValue(); + getSettingDelegateFactory(this); + (this.eFlags & $intern_17) != 0 && (!!(featureMapFeature = $getMixedFeature(($clinit_ExtendedMetaData() , INSTANCE_11), eClass)) && featureMapFeature != this || !!(featureMapFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, this))))?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(this, featureMapFeature)):this.isMany()?this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(42, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(0, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(50, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(43, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(1, dataClass, this)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(44, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(2, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(41, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(45, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(3, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(46, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(4, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(47, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(5, dataClass, this, eOpposite)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(48, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(6, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(49, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(7, dataClass, this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & 512) != 0?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(8, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(9, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(10, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(11, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(12, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(13, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(14, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(15, dataClass, this)):!eOpposite?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(16, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(17, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(18, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(19, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(20, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(21, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(22, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(23, dataClass, this)):(upper = eOpposite.upperBound , upper > 1 || upper == -1?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(24, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(25, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(26, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(27, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(28, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(29, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(30, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(31, dataClass, this, eOpposite)):this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(32, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(33, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(34, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(35, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(36, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(37, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(38, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(39, dataClass, this, eOpposite))):this.isContainer()?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(castTo(eType, 26), this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(castTo(eType, 26), this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(castTo(eType, 26), this, eOpposite)):!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(castTo(eType, 26), this, eOpposite)); + } + return this.settingDelegate; +} +; +_.isChangeable = function isChangeable_0(){ + return (this.eFlags & $intern_137) != 0; +} +; +_.isContainer = function isContainer(){ + return false; +} +; +_.isContainment = function isContainment_0(){ + return false; +} +; +_.isDerived = function isDerived_0(){ + return (this.eFlags & $intern_17) != 0; +} +; +_.isFeatureMap_0 = function isFeatureMap_0(){ + return $isFeatureMap(this); +} +; +_.isResolveProxies_0 = function isResolveProxies_0(){ + return false; +} +; +_.isUnsettable = function isUnsettable_0(){ + return (this.eFlags & $intern_149) != 0; +} +; +_.setExtendedMetaData_0 = function setExtendedMetaData_0(eStructuralFeatureExtendedMetaData){ + this.eStructuralFeatureExtendedMetaData = eStructuralFeatureExtendedMetaData; +} +; +_.setName = function setName_0(newName){ + $setName_0(this, newName); +} +; +_.toString_0 = function toString_146(){ + return $toString_29(this); +} +; +_.cachedIsFeatureMap = false; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl', 449); +function $basicGetEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType) { + eType = this$static.eType; + instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); + } + return this$static.eAttributeType; +} + +function $getEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType || (this$static.eFlags & 1) == 0 && this$static.eAttributeType.eIsProxy()) { + eType = $getEType(this$static); + instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); + } + return this$static.eAttributeType; +} + +function $isMany(this$static){ + var eType, upper; + switch (this$static.effectiveIsMany) { + case -1: + { + return true; + } + + case 0: + { + upper = this$static.upperBound; + if (upper > 1 || upper == -1) { + this$static.effectiveIsMany = -1; + return true; + } + else { + eType = $getEType(this$static); + if (!!eType && ($clinit_FeatureMapUtil() , eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry')) { + this$static.effectiveIsMany = -1; + return true; + } + else { + this$static.effectiveIsMany = 1; + return false; + } + } + } + + default:case 1: + { + return false; + } + + } +} + +function $setID(this$static, newID){ + var oldID; + oldID = (this$static.eFlags & $intern_134) != 0; + newID?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldID, newID)); +} + +function $setUpperBound_0(this$static, upperBound){ + this$static.effectiveIsMany = 0; + $setUpperBound(this$static, upperBound); +} + +function EAttributeImpl(){ + EStructuralFeatureImpl.call(this); +} + +defineClass(322, 449, {105:1, 92:1, 90:1, 34:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 322:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EAttributeImpl); +_.eGet = function eGet_20(featureID, resolve, coreType){ + var eClass, lower; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , $isMany(this)?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + case 18: + return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; + case 19: + if (resolve) + return $getEAttributeType(this); + return $basicGetEAttributeType(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_19(featureID){ + var eClass, lower; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return $isMany(this); + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_137) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_134) != 0; + case 19: + return !!$basicGetEAttributeType(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); +} +; +_.eSet = function eSet_18(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + $setUpperBound_0(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + case 18: + $setID(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_19(){ + return $clinit_EcorePackage$Literals() , EATTRIBUTE; +} +; +_.eUnset = function eUnset_18(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + this.effectiveIsMany = 0; + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + case 18: + $setID(this, false); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); +} +; +_.freeze = function freeze_3(){ + $getEAttributeType(this); + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.isMany = function isMany_0(){ + return $isMany(this); +} +; +_.setEType = function setEType_0(newEType, msgs){ + this.effectiveIsMany = 0; + this.eAttributeType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.setUpperBound = function setUpperBound_0(upperBound){ + $setUpperBound_0(this, upperBound); +} +; +_.toString_0 = function toString_147(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_29(this); + result = new StringBuffer_1($toString_29(this)); + result.string += ' (iD: '; + $append_4(result, (this.eFlags & $intern_134) != 0); + result.string += ')'; + return result.string; +} +; +_.effectiveIsMany = 0; +var Lorg_eclipse_emf_ecore_impl_EAttributeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAttributeImpl', 322); +function $basicGetEPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 235); +} + +function $basicSetInstanceClassName(this$static, value_0){ + if (this$static.instanceClassName == null && this$static.generatedInstanceClassName != null) { + this$static.instanceClassName = this$static.generatedInstanceClassName; + this$static.generatedInstanceClassName = null; + } + $setInstanceClassNameGen(this$static, value_0 == null?null:(checkCriticalNotNull(value_0) , value_0)); + !!this$static.instanceClass && this$static.setInstanceClassGen(null); +} + +function $basicSetInstanceTypeName(this$static, newInstanceTypeName){ + var oldInstanceTypeName; + oldInstanceTypeName = this$static.instanceTypeName; + this$static.instanceTypeName = newInstanceTypeName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); +} + +function $eBasicRemoveFromContainerFeature_7(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 6) { + return this$static.eContainer.eInverseRemove(this$static, 5, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getEPackage(this$static){ + var result; + if (this$static.ePackage) { + return this$static.ePackage; + } + else { + result = $getEPackageGen(this$static); + !!result && !result.eIsProxy() && (this$static.ePackage = result); + return result; + } +} + +function $getEPackageGen(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo($eContainer(this$static), 235); +} + +function $getInstanceClass(this$static){ + var primitiveClass; + if (!this$static.instanceClass && (this$static.instanceClassName != null || this$static.generatedInstanceClassName != null)) { + primitiveClass = $getPrimitiveOrArrayClass(this$static); + if (primitiveClass) { + this$static.setInstanceClassGen(primitiveClass); + } + else { + try { + this$static.setInstanceClassGen(null); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + } + return this$static.instanceClass; +} + +function $getPrimitiveOrArrayClass(this$static){ + var arrayIndex, className, componentClassName, result; + className = this$static.instanceClassName != null?this$static.instanceClassName:this$static.generatedInstanceClassName; + arrayIndex = $indexOf_1(className, fromCodePoint(91)); + if (arrayIndex != -1) { + componentClassName = className.substr(0, arrayIndex); + result = new StringBuffer; + do + result.string += '['; + while ((arrayIndex = $indexOf_0(className, 91, ++arrayIndex)) != -1); + if ($equals_5(componentClassName, 'boolean')) + result.string += 'Z'; + else if ($equals_5(componentClassName, 'byte')) + result.string += 'B'; + else if ($equals_5(componentClassName, 'char')) + result.string += 'C'; + else if ($equals_5(componentClassName, 'double')) + result.string += 'D'; + else if ($equals_5(componentClassName, 'float')) + result.string += 'F'; + else if ($equals_5(componentClassName, 'int')) + result.string += 'I'; + else if ($equals_5(componentClassName, 'long')) + result.string += 'J'; + else if ($equals_5(componentClassName, 'short')) + result.string += 'S'; + else { + result.string += 'L'; + result.string += '' + componentClassName; + result.string += ';'; + } + try { + return null; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + else if ($indexOf_1(className, fromCodePoint(46)) == -1) { + if ($equals_5(className, 'boolean')) + return Z_classLit; + else if ($equals_5(className, 'byte')) + return B_classLit; + else if ($equals_5(className, 'char')) + return C_classLit; + else if ($equals_5(className, 'double')) + return D_classLit; + else if ($equals_5(className, 'float')) + return F_classLit; + else if ($equals_5(className, 'int')) + return I_classLit; + else if ($equals_5(className, 'long')) + return J_classLit; + else if ($equals_5(className, 'short')) + return S_classLit; + } + return null; +} + +function $isInstance(this$static, object){ + var helper, instanceClass; + if (object != null) { + instanceClass = $getInstanceClass(this$static); + if (instanceClass) { + if ((instanceClass.modifiers & 1) != 0) { + if (instanceClass == Z_classLit) { + return instanceOfBoolean(object); + } + else if (instanceClass == I_classLit) { + return instanceOf(object, 19); + } + else if (instanceClass == F_classLit) { + return instanceOf(object, 155); + } + else if (instanceClass == B_classLit) { + return instanceOf(object, 217); + } + else if (instanceClass == C_classLit) { + return instanceOf(object, 172); + } + else if (instanceClass == D_classLit) { + return instanceOfDouble(object); + } + else if (instanceClass == S_classLit) { + return instanceOf(object, 184); + } + else if (instanceClass == J_classLit) { + return instanceOf(object, 162); + } + } + else { + return $clinit_Reflect() , helper = castTo($get_10(HELPER_REGISTRY, instanceClass), 55) , !helper || helper.isInstance(object); + } + } + else if (instanceOf(object, 56)) { + return this$static.dynamicIsInstance(castTo(object, 56)); + } + } + return false; +} + +function $setGeneratedInstanceClass(this$static, isGenerated){ + if (isGenerated) { + if (this$static.generatedInstanceClassName == null) { + this$static.generatedInstanceClassName = this$static.instanceClassName; + this$static.instanceClassName = null; + } + } + else if (this$static.generatedInstanceClassName != null) { + this$static.instanceClassName = this$static.generatedInstanceClassName; + this$static.generatedInstanceClassName = null; + } +} + +function $setInstanceClass(this$static, value_0){ + var component, indices, name_0; + if (!value_0) { + $setInstanceClassNameGen(this$static, null); + $basicSetInstanceTypeName(this$static, null); + } + else if ((value_0.modifiers & 4) != 0) { + indices = '[]'; + for (component = value_0.componentType;; component = component.componentType) { + if ((component.modifiers & 4) == 0) { + name_0 = $intern(($ensureNamesAreInitialized(component) , component.typeName + indices)); + $setInstanceClassNameGen(this$static, name_0); + $basicSetInstanceTypeName(this$static, name_0); + break; + } + indices += '[]'; + } + } + else { + name_0 = $intern(($ensureNamesAreInitialized(value_0) , value_0.typeName)); + $setInstanceClassNameGen(this$static, name_0); + $basicSetInstanceTypeName(this$static, name_0); + } + this$static.setInstanceClassGen(value_0); +} + +function $setInstanceClassName(this$static, value_0){ + $basicSetInstanceClassName(this$static, value_0); + $basicSetInstanceTypeName(this$static, this$static.instanceClassName); +} + +function $setInstanceClassNameGen(this$static, newInstanceClassName){ + var oldInstanceClassName; + oldInstanceClassName = this$static.instanceClassName; + this$static.instanceClassName = newInstanceClassName; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldInstanceClassName, this$static.instanceClassName)); +} + +function $setInstanceTypeName(this$static, newInstanceTypeName){ + var end, index_0, newInstanceClassName, oldInstanceTypeName; + oldInstanceTypeName = this$static.instanceTypeName; + if (newInstanceTypeName == null) { + this$static.instanceTypeName = null; + $basicSetInstanceClassName(this$static, null); + } + else { + this$static.instanceTypeName = (checkCriticalNotNull(newInstanceTypeName) , newInstanceTypeName); + index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(60)); + if (index_0 != -1) { + newInstanceClassName = newInstanceTypeName.substr(0, index_0); + $indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1 && !$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short') && (newInstanceClassName = 'java.lang.Object'); + end = $lastIndexOf(newInstanceTypeName, fromCodePoint(62)); + end != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(end + 1)); + $basicSetInstanceClassName(this$static, newInstanceClassName); + } + else { + newInstanceClassName = newInstanceTypeName; + if ($indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1) { + index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(91)); + index_0 != -1 && (newInstanceClassName = newInstanceTypeName.substr(0, index_0)); + if (!$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short')) { + newInstanceClassName = 'java.lang.Object'; + index_0 != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(index_0)); + } + else { + newInstanceClassName = newInstanceTypeName; + } + } + $basicSetInstanceClassName(this$static, newInstanceClassName); + newInstanceClassName == newInstanceTypeName && (this$static.instanceTypeName = this$static.instanceClassName); + } + } + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); +} + +function $setName_1(this$static, newName){ + instanceOf(this$static.eContainer, 179) && (castTo(this$static.eContainer, 179).eNameToEClassifierMap = null); + $setName(this$static, newName); +} + +function $toString_30(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_21(this$static); + result = new StringBuffer_1($toString_21(this$static)); + result.string += ' (instanceClassName: '; + $append_3(result, this$static.instanceClassName); + result.string += ')'; + return result.string; +} + +defineClass(351, 438, {105:1, 92:1, 90:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}); +_.dynamicIsInstance = function dynamicIsInstance(eObject){ + return eObject.eClass_0() == this; +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_8(msgs){ + return $eBasicRemoveFromContainerFeature_7(this, msgs); +} +; +_.eBasicSetContainer = function eBasicSetContainer_5(newContainer, newContainerFeatureID){ + this.ePackage = null; + this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; + this.eContainer = newContainer; +} +; +_.eGet = function eGet_21(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return this.getDefaultValue(); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_13(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_15(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_20(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return this.getDefaultValue() != null; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_19(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_20(){ + return $clinit_EcorePackage$Literals() , ECLASSIFIER; +} +; +_.eUnset = function eUnset_19(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getClassifierID = function getClassifierID(){ + var ePackage; + return this.metaObjectID == -1 && (this.metaObjectID = (ePackage = $getEPackage(this) , ePackage?$indexOf_6(ePackage.getEClassifiers(), this):-1)) , this.metaObjectID; +} +; +_.getDefaultValue = function getDefaultValue_0(){ + return null; +} +; +_.getEPackage = function getEPackage(){ + return $getEPackage(this); +} +; +_.getExtendedMetaData_1 = function getExtendedMetaData_1(){ + return this.eClassifierExtendedMetaData; +} +; +_.getInstanceClass = function getInstanceClass(){ + return $getInstanceClass(this); +} +; +_.getInstanceClassName = function getInstanceClassName(){ + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; +} +; +_.getInstanceTypeName = function getInstanceTypeName(){ + return this.instanceTypeName; +} +; +_.isInstance = function isInstance_0(object){ + return $isInstance(this, object); +} +; +_.setExtendedMetaData_1 = function setExtendedMetaData_1(eClassifierExtendedMetaData){ + this.eClassifierExtendedMetaData = eClassifierExtendedMetaData; +} +; +_.setGeneratedInstanceClass = function setGeneratedInstanceClass(isGenerated){ + $setGeneratedInstanceClass(this, isGenerated); +} +; +_.setInstanceClassGen = function setInstanceClassGen(newInstanceClass){ + this.instanceClass = newInstanceClass; +} +; +_.setName = function setName_1(newName){ + $setName_1(this, newName); +} +; +_.toString_0 = function toString_148(){ + return $toString_30(this); +} +; +_.instanceClass = null; +_.instanceClassName = null; +_.metaObjectID = -1; +var Lorg_eclipse_emf_ecore_impl_EClassifierImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassifierImpl', 351); +function $clinit_EClassImpl(){ + $clinit_EClassImpl = emptyMethod; + COMPUTATION_IN_PROGRESS = new EClassImpl$MyHashSet; + NO_EALL_STRUCTURE_FEATURES_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, []); + NO_EALL_OPERATIONS_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, 1), $intern_152, 59, 0, []); +} + +function $getEAllAttributes(this$static){ + var attributes, computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, result; + if (!this$static.eAllAttributes) { + this$static.eIDAttribute = null; + result = new EClassImpl$2(this$static); + attributes = new EClassImpl$3; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllAttributes(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); + instanceOf(eStructuralFeature, 322) && $add_21(attributes, castTo(eStructuralFeature, 34)); + } + $shrink_0(attributes); + this$static.eAttributes = new EClassImpl$4(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 7), 18) , attributes.size_0), attributes.data_0); + $addAll_9(result, this$static.eAttributes); + $shrink_0(result); + this$static.eAllAttributes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -2; + } + return this$static.eAllAttributes; +} + +function $getEAllContainments(this$static){ + var eReference, eReference$iterator, result; + if (!this$static.eAllContainments) { + result = new EClassImpl$7; + for (eReference$iterator = new AbstractEList$NonResolvingEIterator($getEAllReferences(this$static)); eReference$iterator.cursor != eReference$iterator.this$01_2.size_1();) { + eReference = castTo($doNext_0(eReference$iterator), 18); + (eReference.eFlags & $intern_134) != 0 && $add_21(result, eReference); + } + $shrink_0(result); + this$static.eAllContainments = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 8), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -9; + } + return this$static.eAllContainments; +} + +function $getEAllGenericSuperTypes(this$static){ + var computationInProgress, eGenericSuperType, eGenericSuperType$iterator, eSuperType, old, result; + if (!this$static.eAllGenericSuperTypes) { + result = new EClassImpl$1EGenericSuperTypeEList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eGenericSuperType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this$static)); eGenericSuperType$iterator.cursor != eGenericSuperType$iterator.this$01_2.size_1();) { + eGenericSuperType = castTo($doNext(eGenericSuperType$iterator), 87); + eSuperType = $getERawType(eGenericSuperType); + instanceOf(eSuperType, 88) && $addAll_9(result, $getEAllGenericSuperTypes(castTo(eSuperType, 26))); + $add_21(result, eGenericSuperType); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + $eliminateEquivalentDuplicates(result); + $shrink_0(result); + this$static.eAllGenericSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 15), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -33; + } + return this$static.eAllGenericSuperTypes; +} + +function $getEAllOperations(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, i, old, operationID, result; + if (!this$static.eAllOperations) { + result = new EClassImpl$6; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllOperations(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + operationID = result.size_0; + for (i = (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , new AbstractEList$EIterator(this$static.eOperations)); i.cursor != i.this$01_2.size_1(); ++operationID) { + castTo($doNext(i), 399); + } + $addAll_9(result, (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , this$static.eOperations)); + $shrink_0(result); + this$static.eAllOperations = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 9), 18) , result.size_0), result.data_0); + this$static.eAllOperationsData = castTo(result.data_0, 673); + this$static.eAllOperationsData == null && (this$static.eAllOperationsData = NO_EALL_OPERATIONS_DATA); + $getESuperAdapter(this$static).modifiedState &= -17; + } + return this$static.eAllOperations; +} + +function $getEAllReferences(this$static){ + var computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, references, result; + if (!this$static.eAllReferences) { + result = new EClassImpl$1ReferenceList; + references = new EClassImpl$1ReferenceList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllReferences(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); + instanceOf(eStructuralFeature, 99) && $add_21(references, castTo(eStructuralFeature, 18)); + } + $shrink_0(references); + this$static.eReferences = new EClassImpl$5(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 6), 18) , references.size_0), references.data_0); + $addAll_9(result, this$static.eReferences); + $shrink_0(result); + this$static.eAllReferences = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -3; + } + return this$static.eAllReferences; +} + +function $getEAllStructuralFeatures(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, featureID, i, old, result; + if (!this$static.eAllStructuralFeatures) { + result = new EClassImpl$1EStructuralFeatureUniqueEList; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + $addAll_9(result, $getEAllStructuralFeatures(eSuperType)); + } + computationInProgress.map_0.remove_0(this$static) != null; + computationInProgress.map_0.size_1() == 0 && undefined; + } + featureID = result.size_0; + for (i = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); i.cursor != i.this$01_2.size_1(); ++featureID) { + $setFeatureID(castTo($doNext(i), 449), featureID); + } + $addAll_9(result, (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , this$static.eStructuralFeatures)); + $shrink_0(result); + this$static.eAllStructuralFeatures = new EClassImpl$1EAllStructuralFeaturesList(this$static, result); + this$static.eAllStructuralFeaturesData = castTo(result.data_0, 247); + this$static.eAllStructuralFeaturesData == null && (this$static.eAllStructuralFeaturesData = NO_EALL_STRUCTURE_FEATURES_DATA); + this$static.eNameToFeatureMap = null; + $getESuperAdapter(this$static).modifiedState &= -5; + } + return this$static.eAllStructuralFeatures; +} + +function $getEAllSuperTypes(this$static){ + var computationInProgress, eSuperType, eSuperType$iterator, higherSupers, old, result; + if (!this$static.eAllSuperTypes) { + result = new EClassImpl$9; + computationInProgress = COMPUTATION_IN_PROGRESS; + old = computationInProgress.map_0.put(this$static, computationInProgress); + if (old == null) { + for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { + eSuperType = castTo($doNext(eSuperType$iterator), 26); + higherSupers = $getEAllSuperTypes(eSuperType); + $addAll_9(result, higherSupers); + $add_21(result, eSuperType); + } + computationInProgress.map_0.remove_0(this$static) != null; + } + $shrink_0(result); + this$static.eAllSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 11), 18) , result.size_0), result.data_0); + $getESuperAdapter(this$static).modifiedState &= -33; + } + return this$static.eAllSuperTypes; +} + +function $getEGenericSuperTypes(this$static){ + if (!this$static.eGenericSuperTypes) { + $getESuperAdapter(this$static); + this$static.eGenericSuperTypes = new EClassImpl$1(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); + $getESuperTypes(this$static); + } + return this$static.eGenericSuperTypes; +} + +function $getEOperations(this$static){ + !this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)); + return this$static.eOperations; +} + +function $getEStructuralFeature(this$static, featureID){ + var eAllStructuralFeaturesData; + eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); + return featureID >= 0 && featureID < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[featureID]:null; +} + +function $getEStructuralFeature_0(this$static, name_0){ + var duplicate, eStructuralFeature, eStructuralFeature$iterator, key, result; + (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; + if (!this$static.eNameToFeatureMap) { + result = new HashMap_0((3 * this$static.eAllStructuralFeatures.size_0 / 2 | 0) + 1); + for (eStructuralFeature$iterator = new AbstractEList$NonResolvingEIterator(this$static.eAllStructuralFeatures); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { + eStructuralFeature = castTo($doNext_0(eStructuralFeature$iterator), 170); + key = eStructuralFeature.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eStructuralFeature):$put_10(result.stringMap, key, eStructuralFeature), 170); + !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); + } + this$static.eNameToFeatureMap = result; + } + return castTo($getStringValue(this$static.eNameToFeatureMap, name_0), 170); +} + +function $getEStructuralFeatures(this$static){ + !this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)); + return this$static.eStructuralFeatures; +} + +function $getESuperAdapter(this$static){ + if (!this$static.eSuperAdapter) { + this$static.eSuperAdapter = new EClassImpl$10(this$static); + $add_20(new MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$static), 0, this$static.eSuperAdapter); + } + return this$static.eSuperAdapter; +} + +function $getESuperTypes(this$static){ + if (!this$static.eSuperTypes) { + $getESuperAdapter(this$static); + this$static.eSuperTypes = new EClassImpl$8(this$static, this$static); + } + return this$static.eSuperTypes; +} + +function $getFeatureCount(this$static){ + return (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; +} + +function $getFeatureID(this$static, feature){ + var eAllStructuralFeaturesData, index_0, last; + eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); + index_0 = feature.getFeatureID_0(); + if (index_0 != -1) { + for (last = eAllStructuralFeaturesData.length; index_0 < last; ++index_0) { + if (eAllStructuralFeaturesData[index_0] == feature) { + return index_0; + } + } + } + return -1; +} + +function $isSetESuperTypes(this$static){ + return !!this$static.eSuperTypes && $getEGenericSuperTypes(this$static.eSuperTypes.this$01).size_0 != 0 && !(!!this$static.eGenericSuperTypes && $isSet(this$static.eGenericSuperTypes)); +} + +function $isSuperTypeOf(this$static, someClass){ + return someClass == this$static || $contains_10($getEAllSuperTypes(someClass), this$static); +} + +function $setAbstract(this$static, newAbstract){ + var oldAbstract; + oldAbstract = (this$static.eFlags & 256) != 0; + newAbstract?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldAbstract, newAbstract)); +} + +function $setInterface(this$static, newInterface){ + var oldInterface; + oldInterface = (this$static.eFlags & 512) != 0; + newInterface?(this$static.eFlags |= 512):(this$static.eFlags &= -513); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 9, oldInterface, newInterface)); +} + +function $toString_31(this$static){ + var result; + if ((this$static.eFlags_0 & 64) != 0) + return $toString_30(this$static); + result = new StringBuffer_1($toString_30(this$static)); + result.string += ' (abstract: '; + $append_4(result, (this$static.eFlags & 256) != 0); + result.string += ', interface: '; + $append_4(result, (this$static.eFlags & 512) != 0); + result.string += ')'; + return result.string; +} + +function EClassImpl(){ + $clinit_EClassImpl(); +} + +defineClass(88, 351, {105:1, 92:1, 90:1, 26:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 88:1, 351:1, 150:1, 473:1, 114:1, 115:1, 676:1}, EClassImpl); +_.dynamicIsInstance = function dynamicIsInstance_0(eObject){ + return $isSuperTypeOf(this, eObject.eClass_0()); +} +; +_.eGet = function eGet_22(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return null; + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 9: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 10: + return $getESuperTypes(this); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , this.eOperations; + case 12: + return $getEAllAttributes(this); + case 13: + return $getEAllReferences(this); + case 14: + return $getEAllReferences(this) , this.eReferences; + case 15: + return $getEAllAttributes(this) , this.eAttributes; + case 16: + return $getEAllContainments(this); + case 17: + return $getEAllOperations(this); + case 18: + return $getEAllStructuralFeatures(this); + case 19: + return $getEAllSuperTypes(this); + case 20: + return $getEAllAttributes(this) , this.eIDAttribute; + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , this.eStructuralFeatures; + case 22: + return $getEGenericSuperTypes(this); + case 23: + return $getEAllGenericSuperTypes(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_14(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicAdd_0(this.eOperations, otherEnd, msgs); + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicAdd_0(this.eStructuralFeatures, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_16(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 11: + return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicRemove_0(this.eOperations, otherEnd, msgs); + case 21: + return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicRemove_0(this.eStructuralFeatures, otherEnd, msgs); + case 22: + return $basicRemove_0($getEGenericSuperTypes(this), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_21(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return false; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) != 0; + case 9: + return (this.eFlags & 512) != 0; + case 10: + return !!this.eSuperTypes && $getEGenericSuperTypes(this.eSuperTypes.this$01).size_0 != 0 && !(!!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes)); + case 11: + return !!this.eOperations && this.eOperations.size_0 != 0; + case 12: + return $getEAllAttributes(this).size_0 != 0; + case 13: + return $getEAllReferences(this).size_0 != 0; + case 14: + return $getEAllReferences(this) , this.eReferences.size_0 != 0; + case 15: + return $getEAllAttributes(this) , this.eAttributes.size_0 != 0; + case 16: + return $getEAllContainments(this).size_0 != 0; + case 17: + return $getEAllOperations(this).size_0 != 0; + case 18: + return $getEAllStructuralFeatures(this).size_0 != 0; + case 19: + return $getEAllSuperTypes(this).size_0 != 0; + case 20: + return $getEAllAttributes(this) , !!this.eIDAttribute; + case 21: + return !!this.eStructuralFeatures && this.eStructuralFeatures.size_0 != 0; + case 22: + return !!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes); + case 23: + return $getEAllGenericSuperTypes(this).size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); +} +; +_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_2(uriFragmentSegment){ + var result; + result = this.eAllStructuralFeaturesData == null || !!this.eOperations && this.eOperations.size_0 != 0?null:$getEStructuralFeature_0(this, uriFragmentSegment); + return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); +} +; +_.eSet = function eSet_20(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 8: + $setAbstract(this, $booleanValue(castToBoolean(newValue))); + return; + case 9: + $setInterface(this, $booleanValue(castToBoolean(newValue))); + return; + case 10: + $clear_12($getESuperTypes(this)); + $addAll_9($getESuperTypes(this), castTo(newValue, 14)); + return; + case 11: + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $clear_13(this.eOperations); + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $addAll_9(this.eOperations, castTo(newValue, 14)); + return; + case 21: + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $clear_13(this.eStructuralFeatures); + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $addAll_9(this.eStructuralFeatures, castTo(newValue, 14)); + return; + case 22: + $clear_13($getEGenericSuperTypes(this)); + $addAll_9($getEGenericSuperTypes(this), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_21(){ + return $clinit_EcorePackage$Literals() , ECLASS; +} +; +_.eUnset = function eUnset_20(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setAbstract(this, false); + return; + case 9: + $setInterface(this, false); + return; + case 10: + !!this.eSuperTypes && $clear_12(this.eSuperTypes); + return; + case 11: + !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); + $clear_13(this.eOperations); + return; + case 21: + !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); + $clear_13(this.eStructuralFeatures); + return; + case 22: + !!this.eGenericSuperTypes && $clear_13(this.eGenericSuperTypes); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); +} +; +_.freeze = function freeze_4(){ + var i, size_0; + $getEAllAttributes(this); + $getEAllReferences(this); + $getEAllContainments(this); + $getEAllOperations(this); + $getEAllStructuralFeatures(this); + $getEAllSuperTypes(this); + $getEAllGenericSuperTypes(this); + $clear_11($getSubclasses($getESuperAdapter(this))); + if (this.eStructuralFeatures) { + for (i = 0 , size_0 = this.eStructuralFeatures.size_0; i < size_0; ++i) { + $freeze($get_20(this.eStructuralFeatures, i)); + } + } + if (this.eOperations) { + for (i = 0 , size_0 = this.eOperations.size_0; i < size_0; ++i) { + $freeze($get_20(this.eOperations, i)); + } + } + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.toString_0 = function toString_149(){ + return $toString_31(this); +} +; +_.eAttributes = null; +_.eReferences = null; +var COMPUTATION_IN_PROGRESS, NO_EALL_OPERATIONS_DATA, NO_EALL_STRUCTURE_FEATURES_DATA; +var Lorg_eclipse_emf_ecore_impl_EClassImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl', 88); +defineClass(1994, 1993, $intern_153); +_.addAllUnique = function addAllUnique_9(index_0, collection){ + return $addAllUnique_3(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_10(collection){ + return $addAllUnique_3(this, this.size_0, collection); +} +; +_.addUnique = function addUnique_10(index_0, object){ + $addUnique_5(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_11(object){ + $addUnique_6(this, object); +} +; +_.basicAdd = function basicAdd_0(object, notifications){ + return $basicAdd_0(this, object, notifications); +} +; +_.basicGet = function basicGet_1(index_0){ + return $basicGet(this, index_0); +} +; +_.basicRemove = function basicRemove_0(object, notifications){ + return $basicRemove_0(this, object, notifications); +} +; +_.setUnique = function setUnique_4(index_0, object){ + return $setUnique_1(this, index_0, object); +} +; +_.basicIterator = function basicIterator_2(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_5(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_6(index_0){ + return $basicListIterator(this, index_0); +} +; +var Lorg_eclipse_emf_ecore_util_NotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'NotifyingInternalEListImpl', 1994); +function $contains_11(this$static, object){ + var containedEObject, eContainer, eObject, i, opposite, result, result0; + if (this$static.isEObject()) { + if (this$static.size_0 > 4) { + if (this$static.isInstance(object)) { + if (this$static.isContainment()) { + eObject = castTo(object, 49); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this$static.owner && (this$static.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), this$static.getInverseFeatureClass()) == this$static.getInverseFeatureID():-1 - eObject.eContainerFeatureID_0() == this$static.getFeatureID_0()); + if (this$static.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { + for (i = 0; i < this$static.size_0; ++i) { + containedEObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this$static.hasNavigableInverse() && !this$static.hasManyInverse()) { + opposite = castTo(object, 56).eGet_0($getEOpposite(castTo(this$static.getEStructuralFeature(), 18))); + if (maskUndefined(opposite) === maskUndefined(this$static.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { + return false; + } + } + } + else { + return false; + } + } + result = $contains_10(this$static, object); + if (this$static.hasProxies() && !result) { + for (i = 0; i < this$static.size_0; ++i) { + eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return true; + } + } + } + return result; + } + else { + return $contains_10(this$static, object); + } +} + +function $createNotification(this$static, eventType, oldObject, newObject, index_0, wasSet){ + return new ENotificationImpl_3(this$static.owner, eventType, this$static.getFeatureID_0(), oldObject, newObject, index_0, wasSet); +} + +function $dispatchNotification(this$static, notification){ + $eNotify(this$static.owner, notification); +} + +function $indexOf_6(this$static, object){ + var eObject, i, index_0; + index_0 = $indexOf_4(this$static, object); + if (index_0 >= 0) + return index_0; + if (this$static.isEObject()) { + for (i = 0; i < this$static.size_0; ++i) { + eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} + +function $resolve(this$static, index_0, eObject){ + var element, notificationChain, oldElement, oldObject, resolved, resolvedElement; + resolved = this$static.resolveProxy(eObject); + if (resolved != eObject) { + oldObject = this$static.data_0[index_0]; + resolvedElement = resolved; + $assign(this$static, index_0, this$static.validate(index_0, resolvedElement)); + oldElement = oldObject; + this$static.didSet(index_0, resolvedElement, oldElement); + if (this$static.isContainment()) { + element = eObject; + notificationChain = this$static.inverseRemove(element, null); + !castTo(resolved, 49).eInternalContainer() && (notificationChain = this$static.inverseAdd(resolvedElement, notificationChain)); + !!notificationChain && notificationChain.dispatch_0(); + } + $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, this$static.createNotification(9, eObject, resolved, index_0, false)); + return resolved; + } + else { + return eObject; + } +} + +function $set_15(this$static, newValue){ + $clear_13(this$static); + this$static.addAll(castTo(newValue, 15)); +} + +function $toArray_11(this$static){ + var i; + if (this$static.hasProxies()) { + for (i = this$static.size_0 - 1; i >= 0; --i) { + $get_20(this$static, i); + } + } + return $toArray_9(this$static); +} + +function $validate_0(this$static, index_0, object){ + $validate(this$static, object); + if (!this$static.hasInstanceClass() && object != null && !this$static.isInstance(object)) { + throw toJs(new ArrayStoreException); + } + return object; +} + +function EcoreEList(dataClass, owner){ + this.dataClass = dataClass; + this.owner = owner; +} + +defineClass(622, 1994, $intern_154); +_.contains = function contains_63(object){ + return $contains_11(this, object); +} +; +_.createNotification = function createNotification_1(eventType, oldObject, newObject, index_0, wasSet){ + return $createNotification(this, eventType, oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_1(notification){ + $dispatchNotification(this, notification); +} +; +_.get_6 = function get_61(resolve){ + return this; +} +; +_.getEStructuralFeature = function getEStructuralFeature_0(){ + return $getEStructuralFeature(this.owner.eClass_0(), this.getFeatureID_0()); +} +; +_.getFeature = function getFeature_4(){ + return this.getEStructuralFeature(); +} +; +_.getFeatureID_0 = function getFeatureID_5(){ + return $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()); +} +; +_.getInverseFeatureClass = function getInverseFeatureClass(){ + return castTo(this.getEStructuralFeature().getEType(), 26).getInstanceClass(); +} +; +_.getInverseFeatureID = function getInverseFeatureID(){ + return $getEOpposite(castTo(this.getEStructuralFeature(), 18)).featureID; +} +; +_.getNotifier = function getNotifier_4(){ + return this.owner; +} +; +_.hasInstanceClass = function hasInstanceClass(){ + return true; +} +; +_.hasManyInverse = function hasManyInverse(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse(){ + return false; +} +; +_.hasProxies = function hasProxies(){ + return false; +} +; +_.indexOf_0 = function indexOf_15(object){ + return $indexOf_6(this, object); +} +; +_.inverseAdd = function inverseAdd_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.isContainment = function isContainment_1(){ + return false; +} +; +_.isEObject = function isEObject(){ + return true; +} +; +_.isInstance = function isInstance_1(object){ + return isInstance(this.dataClass, object); +} +; +_.isNotificationRequired = function isNotificationRequired_1(){ + return $eNotificationRequired(this.owner); +} +; +_.isSet_0 = function isSet_3(){ + return this.size_0 != 0; +} +; +_.newData = function newData_3(capacity){ + return newInstance_11(this.dataClass, capacity); +} +; +_.resolve = function resolve_1(index_0, object){ + return this.isEObject() && this.hasProxies()?$resolve(this, index_0, castTo(object, 56)):object; +} +; +_.resolveProxy = function resolveProxy(eObject){ + return eObject.eIsProxy()?$eResolveProxy(this.owner, castTo(eObject, 49)):eObject; +} +; +_.set_1 = function set_31(newValue){ + $set_15(this, newValue); +} +; +_.toArray = function toArray_38(){ + return $toArray_11(this); +} +; +_.toArray_0 = function toArray_39(array){ + var i; + if (this.hasProxies()) { + for (i = this.size_0 - 1; i >= 0; --i) { + $get_20(this, i); + } + } + return $toArray_10(this, array); +} +; +_.unset = function unset_1(){ + $clear_13(this); +} +; +_.validate = function validate_0(index_0, object){ + return $validate_0(this, index_0, object); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList', 622); +function EObjectEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(496, 622, $intern_154, EObjectEList); +_.canContainNull = function canContainNull_2(){ + return false; +} +; +_.getFeatureID_0 = function getFeatureID_6(){ + return this.featureID; +} +; +_.hasInverse = function hasInverse_1(){ + return false; +} +; +_.isEObject = function isEObject_0(){ + return true; +} +; +_.isUnique = function isUnique_3(){ + return true; +} +; +_.resolve = function resolve_2(index_0, object){ + return object; +} +; +_.useEquals = function useEquals_1(){ + return false; +} +; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList', 496); +function EObjectContainmentEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(85, 496, $intern_154, EObjectContainmentEList); +_.hasInverse = function hasInverse_2(){ + return true; +} +; +_.hasNavigableInverse = function hasNavigableInverse_0(){ + return false; +} +; +_.isContainment = function isContainment_2(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList', 85); +function EObjectContainmentEList$Unsettable(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(545, 85, $intern_154, EObjectContainmentEList$Unsettable); +_.didChange = function didChange_0(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_4(){ + return this.isSet; +} +; +_.unset = function unset_2(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable', 545); +function $isSet(this$static){ + var eGenericType, eGenericType$iterator; + for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { + return true; + } + } + return false; +} + +function $shadowAdd(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 3, 10, null, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowRemove(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 4, 10, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), null, $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowSet(this$static, oldEGenericType, newEGenericType, notifications){ + var notification, result, result0; + notification = new ENotificationImpl_3(this$static.owner, 1, 10, (result0 = oldEGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT)), (result = newEGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, oldEGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function EClassImpl$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 22); +} + +defineClass(1140, 545, $intern_154, EClassImpl$1); +_.move = function move_14(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , ECLASS__ESUPER_TYPES), valueOf_4(sourceIndex), (result = result0.eRawType , instanceOf(result, 88)?castTo(result, 26):EOBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_0(eGenericType, notifications){ + return $shadowAdd(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowRemove = function shadowRemove_0(eGenericType, notifications){ + return $shadowRemove(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowSet = function shadowSet_0(oldEGenericType, newEGenericType, notifications){ + return $shadowSet(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); +} +; +_.createNotification = function createNotification_2(eventType, oldObject, newObject, index_0, wasSet){ + switch (eventType) { + case 3: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); + } + + case 5: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); + } + + default:{ + return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); + } + + } +} +; +_.hasShadow = function hasShadow_0(){ + return true; +} +; +_.isSet_0 = function isSet_5(){ + return $isSet(this); +} +; +_.unset = function unset_3(){ + $clear_13(this); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1', 1140); +function $getSubclasses(this$static){ + !this$static.subclasses && (this$static.subclasses = new ESuperAdapter$1); + return this$static.subclasses; +} + +function $setFlags(this$static, featureId){ + var eSuperAdapter, i, oldModifiedState, subclass; + oldModifiedState = this$static.modifiedState; + switch (featureId) { + case 1: + { + this$static.modifiedState |= 1; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 2: + { + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 4: + { + this$static.modifiedState |= 1; + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + this$static.modifiedState |= 8; + break; + } + + case 3: + { + this$static.modifiedState |= 16; + this$static.modifiedState |= 8; + break; + } + + case 0: + { + this$static.modifiedState |= 32; + this$static.modifiedState |= 16; + this$static.modifiedState |= 8; + this$static.modifiedState |= 1; + this$static.modifiedState |= 2; + this$static.modifiedState |= 4; + break; + } + + } + if (this$static.modifiedState != oldModifiedState && !!this$static.subclasses) { + for (i = new AbstractEList$EIterator(this$static.subclasses); i.cursor != i.this$01_2.size_1();) { + subclass = castTo($doNext(i), 473); + eSuperAdapter = $getESuperAdapter(subclass); + $setFlags_0(eSuperAdapter, featureId); + } + } +} + +function getFeatureID_7(notification){ + var featureID; + featureID = notification.getFeatureID(null); + switch (featureID) { + case 10: + return 0; + case 15: + return 1; + case 14: + return 2; + case 11: + return 3; + case 21: + return 4; + } + return -1; +} + +defineClass(1154, 1153, $intern_140); +_.notifyChanged = function notifyChanged_0(notification){ + var eSuperAdapter, eventType, featureID, holder, i, newValue, oldValue; + eventType = notification.getEventType(); + if (eventType != 8) { + featureID = getFeatureID_7(notification); + if (featureID == 0) { + switch (eventType) { + case 1: + case 9: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + eSuperAdapter = $getESuperAdapter(castTo(oldValue, 473)); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + break; + } + + case 3: + { + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + break; + } + + case 5: + { + newValue = notification.getNewValue(); + if (newValue != null) { + for (i = castTo(newValue, 14).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + } + break; + } + + case 4: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + holder = castTo(oldValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + } + break; + } + + case 6: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + for (i = castTo(oldValue, 14).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + } + } + break; + } + + } + } + this.setFlags(featureID); + } +} +; +_.setFlags = function setFlags(featureId){ + $setFlags(this, featureId); +} +; +_.modifiedState = 63; +var Lorg_eclipse_emf_ecore_impl_ESuperAdapter_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter', 1154); +function $setFlags_0(this$static, featureId){ + $setFlags(this$static, featureId); + (this$static.modifiedState & 1) != 0 && (this$static.this$01.eAllAttributes = null); + (this$static.modifiedState & 2) != 0 && (this$static.this$01.eAllReferences = null); + if ((this$static.modifiedState & 4) != 0) { + this$static.this$01.eAllStructuralFeatures = null; + this$static.this$01.eAllStructuralFeaturesData = null; + } + if ((this$static.modifiedState & 16) != 0) { + this$static.this$01.eAllOperations = null; + this$static.this$01.eAllOperationsData = null; + } + (this$static.modifiedState & 8) != 0 && (this$static.this$01.eAllContainments = null); + if ((this$static.modifiedState & 32) != 0) { + this$static.this$01.eAllSuperTypes = null; + this$static.this$01.eAllGenericSuperTypes = null; + } +} + +function EClassImpl$10(this$0){ + this.this$01 = this$0; +} + +defineClass(1155, 1154, $intern_140, EClassImpl$10); +_.setFlags = function setFlags_0(featureId){ + $setFlags_0(this, featureId); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/10', 1155); +defineClass(1144, 696, $intern_154); +_.addAllUnique = function addAllUnique_11(index_0, collection){ + return $addAllUnique(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_12(collection){ + return $addAllUnique_0(this, collection); +} +; +_.addUnique = function addUnique_12(index_0, object){ + $addUnique(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_13(object){ + $addUnique_0(this, object); +} +; +_.basicGet = function basicGet_2(index_0){ + return $basicGet(this, index_0); +} +; +_.setUnique = function setUnique_5(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.basicAdd = function basicAdd_1(object, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.basicIterator = function basicIterator_3(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicListIterator = function basicListIterator_7(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_8(index_0){ + return $basicListIterator(this, index_0); +} +; +_.basicRemove = function basicRemove_1(object, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.get_6 = function get_62(resolve){ + return this; +} +; +_.isSet_0 = function isSet_6(){ + return this.size_0 != 0; +} +; +_.set_1 = function set_32(newValue){ + throw toJs(new UnsupportedOperationException); +} +; +_.unset = function unset_4(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList', 1144); +function EcoreEList$UnmodifiableEList$FastCompare(size_0, data_0){ + BasicEList$UnmodifiableEList.call(this, size_0, data_0); +} + +defineClass(319, 1144, $intern_154, EcoreEList$UnmodifiableEList$FastCompare); +_.useEquals = function useEquals_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList$FastCompare_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList/FastCompare', 319); +function $containments(this$static){ + maskUndefined(this$static.containments) === maskUndefined(($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA)) && $init_2(this$static); + return this$static.containments; +} + +function $init_2(this$static){ + var containmentsList, crossReferencesList, eAnnotation, eAnnotation0, eAnnotation1, eReference, eStructuralFeature, i, isMixed, theOpposite; + containmentsList = new EClassImpl$1EStructuralFeatureUniqueEList; + crossReferencesList = new EClassImpl$1EStructuralFeatureUniqueEList; + isMixed = $equals_5('mixed', (eAnnotation0 = $getEAnnotation(this$static.this$01, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , !eAnnotation0?null:castToString($get_21((!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details), 'kind')))); + for (i = 0; i < this$static.size_0; ++i) { + eStructuralFeature = castTo(this$static.data_0[i], 170); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) != 0?((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation1 = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation1?null:castToString($get_21((!eAnnotation1.details && (eAnnotation1.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation1)) , eAnnotation1.details), 'group'))) == null)) && $add_21(containmentsList, eReference):(theOpposite = $getEOpposite(eReference) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0 || ((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation?null:castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group'))) == null)) && $add_21(crossReferencesList, eReference)); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + if (!eStructuralFeature.isDerived()) { + $add_21(containmentsList, eStructuralFeature); + $add_21(crossReferencesList, eStructuralFeature); + } + } + } + } + $shrink_0(containmentsList); + $shrink_0(crossReferencesList); + this$static.containments = castTo(containmentsList.data_0, 247); + castTo(crossReferencesList.data_0, 247); +} + +function EClassImpl$1EAllStructuralFeaturesList(this$0, eAllStructuralFeatures){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 10), 18) , eAllStructuralFeatures.size_0), eAllStructuralFeatures.data_0); + this.containments = ($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA); +} + +defineClass(1147, 319, $intern_154, EClassImpl$1EAllStructuralFeaturesList); +_.indexOf_0 = function indexOf_16(object){ + var eStructuralFeature, index_0, last; + if (instanceOf(object, 170)) { + eStructuralFeature = castTo(object, 170); + index_0 = eStructuralFeature.getFeatureID_0(); + if (index_0 != -1) { + for (last = this.size_0; index_0 < last; ++index_0) { + if (maskUndefined(this.data_0[index_0]) === maskUndefined(object)) { + return index_0; + } + } + } + } + return -1; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EAllStructuralFeaturesList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EAllStructuralFeaturesList', 1147); +function $eliminateEquivalentDuplicates(this$static){ + var eGenericType, eGenericTypes, i, j, otherEGenericType; + eGenericTypes = castTo(this$static.data_0, 674); + for (i = this$static.size_0 - 1; i >= 0; --i) { + eGenericType = eGenericTypes[i]; + for (j = 0; j < i; ++j) { + otherEGenericType = eGenericTypes[j]; + if ($equivalent(this$static, eGenericType, otherEGenericType)) { + $remove_33(this$static, i); + break; + } + } + } +} + +function $equivalent(this$static, eGenericType, otherEGenericType){ + var eClassifier, eTypeArgument, eTypeArgumentSize, eTypeArguments, eTypeParameter, instanceTypeName, j, otherEClassifier, otherETypeArgument, otherETypeArguments, otherETypeParameter, otherInstanceTypeName; + if (eGenericType == otherEGenericType) { + return true; + } + else { + eGenericType = $resolve_0(this$static, eGenericType); + otherEGenericType = $resolve_0(this$static, otherEGenericType); + eClassifier = $getEClassifier(eGenericType); + if (eClassifier) { + otherEClassifier = $getEClassifier(otherEGenericType); + if (otherEClassifier != eClassifier) { + if (!otherEClassifier) { + return false; + } + else { + instanceTypeName = eClassifier.getInstanceTypeName(); + otherInstanceTypeName = otherEClassifier.getInstanceTypeName(); + return instanceTypeName == otherInstanceTypeName && instanceTypeName != null; + } + } + else { + eTypeArguments = (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments); + eTypeArgumentSize = eTypeArguments.size_0; + otherETypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); + if (eTypeArgumentSize == otherETypeArguments.size_0) { + for (j = 0; j < eTypeArgumentSize; ++j) { + eTypeArgument = castTo($get_20(eTypeArguments, j), 87); + otherETypeArgument = castTo($get_20(otherETypeArguments, j), 87); + if (!$equivalent(this$static, eTypeArgument, otherETypeArgument)) { + return false; + } + } + } + return true; + } + } + else { + eTypeParameter = eGenericType.eTypeParameter; + otherETypeParameter = otherEGenericType.eTypeParameter; + return eTypeParameter == otherETypeParameter; + } + } +} + +function $resolve_0(this$static, eGenericType){ + var eContainer, eGenericTypes, eTypeArguments, eTypeParameter, i, index_0, otherEGenericType; + eTypeParameter = eGenericType.eTypeParameter; + if (eTypeParameter) { + eContainer = $eContainer(eTypeParameter); + eGenericTypes = castTo(this$static.data_0, 674); + for (i = 0; i < this$static.size_0; ++i) { + otherEGenericType = eGenericTypes[i]; + if ($getEClassifier(otherEGenericType) == eContainer) { + eTypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); + index_0 = castTo(eContainer.eGet_0(eContainmentFeature(eTypeParameter, eTypeParameter.eContainer, eTypeParameter.eFlags_0 >> 16)), 15).indexOf_0(eTypeParameter); + if (index_0 < eTypeArguments.size_0) { + return $resolve_0(this$static, castTo($get_20(eTypeArguments, index_0), 87)); + } + } + } + } + return eGenericType; +} + +function EClassImpl$1EGenericSuperTypeEList(){ +} + +defineClass(1141, 497, $intern_138, EClassImpl$1EGenericSuperTypeEList); +_.newData = function newData_4(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, capacity, 0, 1); +} +; +_.useEquals = function useEquals_3(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EGenericSuperTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EGenericSuperTypeEList', 1141); +function EClassImpl$1EStructuralFeatureUniqueEList(){ +} + +defineClass(623, 497, $intern_138, EClassImpl$1EStructuralFeatureUniqueEList); +_.newData = function newData_5(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, capacity, 0, 1); +} +; +_.useEquals = function useEquals_4(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EStructuralFeatureUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EStructuralFeatureUniqueEList', 623); +function EClassImpl$1ReferenceList(){ +} + +defineClass(741, 497, $intern_138, EClassImpl$1ReferenceList); +_.newData = function newData_6(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); +} +; +_.useEquals = function useEquals_5(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$1ReferenceList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1ReferenceList', 741); +function $didAdd_0(this$static, eAttribute){ + (eAttribute.eFlags & $intern_134) != 0 && !this$static.this$01.eIDAttribute && (this$static.this$01.eIDAttribute = eAttribute); +} + +function EClassImpl$2(this$0){ + this.this$01 = this$0; +} + +defineClass(1142, 497, $intern_138, EClassImpl$2); +_.didAdd = function didAdd_1(index_0, eAttribute){ + $didAdd_0(this, castTo(eAttribute, 34)); +} +; +_.newData = function newData_7(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); +} +; +_.useEquals = function useEquals_6(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/2', 1142); +function EClassImpl$3(){ +} + +defineClass(1143, 497, $intern_138, EClassImpl$3); +_.newData = function newData_8(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); +} +; +_.useEquals = function useEquals_7(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/3', 1143); +function $add_28(this$static, object){ + $clinit_System(); + return $add_21($getEStructuralFeatures(this$static.this$01), object); +} + +function $addUnique_8(this$static, object){ + $addUnique_6($getEStructuralFeatures(this$static.this$01), object); +} + +function EClassImpl$4(this$0, $anonymous2, $anonymous3){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); +} + +defineClass(1145, 319, $intern_154, EClassImpl$4); +_.add_2 = function add_62(object){ + return $add_28(this, castTo(object, 34)); +} +; +_.addUnique_0 = function addUnique_14(object){ + $addUnique_8(this, castTo(object, 34)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/4', 1145); +function $add_29(this$static, object){ + $clinit_System(); + return $add_21($getEStructuralFeatures(this$static.this$01), object); +} + +function $addUnique_9(this$static, object){ + $addUnique_6($getEStructuralFeatures(this$static.this$01), object); +} + +function EClassImpl$5(this$0, $anonymous2, $anonymous3){ + this.this$01 = this$0; + EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); +} + +defineClass(1146, 319, $intern_154, EClassImpl$5); +_.add_2 = function add_63(object){ + return $add_29(this, castTo(object, 18)); +} +; +_.addUnique_0 = function addUnique_15(object){ + $addUnique_9(this, castTo(object, 18)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/5', 1146); +function EClassImpl$6(){ +} + +defineClass(1148, 497, $intern_138, EClassImpl$6); +_.newData = function newData_9(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, capacity, 0, 1); +} +; +_.useEquals = function useEquals_8(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/6', 1148); +function EClassImpl$7(){ +} + +defineClass(1149, 497, $intern_138, EClassImpl$7); +_.newData = function newData_10(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); +} +; +_.useEquals = function useEquals_9(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/7', 1149); +defineClass(1997, 1996, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 69:1}); +_.addAllUnique = function addAllUnique_13(index_0, collection){ + return $addAllUnique_2(this, index_0, collection); +} +; +_.addAllUnique_0 = function addAllUnique_14(collection){ + return $addAllUnique_2(this, this.delegateSize(), collection); +} +; +_.addUnique = function addUnique_16(index_0, object){ + $addUnique_3(this, index_0, object); +} +; +_.addUnique_0 = function addUnique_17(object){ + $addUnique_4(this, object); +} +; +_.basicAdd = function basicAdd_2(object, notifications){ + return $basicAdd(this, object, notifications); +} +; +_.basicRemove = function basicRemove_2(object, notifications){ + return $basicRemove(this, object, notifications); +} +; +_.setUnique = function setUnique_6(index_0, object){ + return $setUnique_0(this, index_0, object); +} +; +_.basicGet = function basicGet_3(index_0){ + return this.delegateGet(index_0); +} +; +_.basicIterator = function basicIterator_4(){ + return new AbstractEList$NonResolvingEIterator(this); +} +; +_.basicList = function basicList_0(){ + return this.delegateBasicList(); +} +; +_.basicListIterator = function basicListIterator_9(){ + return new AbstractEList$NonResolvingEListIterator(this); +} +; +_.basicListIterator_0 = function basicListIterator_10(index_0){ + return $basicListIterator(this, index_0); +} +; +var Lorg_eclipse_emf_ecore_util_DelegatingNotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingNotifyingInternalEListImpl', 1997); +function $resolve_1(this$static, index_0, object){ + var internalEObject, internalEObject0, notificationChain, resolved; + if (this$static.isEObject() && this$static.hasProxies()) { + resolved = $resolveProxy(this$static, castTo(object, 56)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + this$static.delegateGet(index_0); + this$static.delegateSet(index_0, $validate_1(this$static, index_0, resolved)); + if (this$static.isContainment()) { + notificationChain = (internalEObject0 = castTo(object, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject0.eInverseRemove(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), null):internalEObject0.eInverseRemove(this$static.owner, $getFeatureID(internalEObject0.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, null):internalEObject0.eInverseRemove(this$static.owner, -1 - this$static.getFeatureID_0(), null, null)); + !castTo(resolved, 49).eInternalContainer() && (notificationChain = (internalEObject = castTo(resolved, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject.eInverseAdd(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), notificationChain):internalEObject.eInverseAdd(this$static.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, notificationChain):internalEObject.eInverseAdd(this$static.owner, -1 - this$static.getFeatureID_0(), null, notificationChain))); + !!notificationChain && notificationChain.dispatch_0(); + } + $eNotificationRequired(this$static.owner) && this$static.dispatchNotification(this$static.createNotification(9, object, resolved, index_0, false)); + return resolved; + } + } + return object; +} + +function $resolveProxy(this$static, eObject){ + return eObject.eIsProxy()?$eResolveProxy(this$static.owner, castTo(eObject, 49)):eObject; +} + +function $validate_1(this$static, index_0, object){ + $validate(this$static, object); + if (object != null && !this$static.isInstance(object)) { + throw toJs(new ArrayStoreException); + } + return object; +} + +function DelegatingEcoreEList(owner){ + this.owner = owner; +} + +defineClass(742, 1997, $intern_156); +_.canContainNull = function canContainNull_3(){ + var eClassifier; + eClassifier = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(); + return instanceOf(eClassifier, 148) && !instanceOf(eClassifier, 457) && (eClassifier.getInstanceClass().modifiers & 1) == 0; +} +; +_.contains = function contains_64(object){ + var containedEObject, eContainer, eObject, i, opposite, result, result0, size_0; + if (this.isEObject()) { + size_0 = this.delegateSize(); + if (size_0 > 4) { + if (this.isInstance(object)) { + if (this.isContainment()) { + eObject = castTo(object, 49); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this.owner && (this.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass()) == $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID:-1 - eObject.eContainerFeatureID_0() == this.getFeatureID_0()); + if (this.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { + for (i = 0; i < size_0; ++i) { + containedEObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this.hasNavigableInverse() && !this.hasManyInverse()) { + opposite = castTo(object, 56).eGet_0($getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))); + if (maskUndefined(opposite) === maskUndefined(this.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { + return false; + } + } + } + else { + return false; + } + } + result = this.delegateContains(object); + if (this.hasProxies() && !result) { + for (i = 0; i < size_0; ++i) { + eObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return true; + } + } + } + return result; + } + else { + return this.delegateContains(object); + } +} +; +_.createNotification = function createNotification_3(eventType, oldObject, newObject, index_0, wasSet){ + return new ENotificationImpl_3(this.owner, eventType, this.getFeatureID_0(), oldObject, newObject, index_0, wasSet); +} +; +_.dispatchNotification = function dispatchNotification_2(notification){ + $eNotify(this.owner, notification); +} +; +_.get_6 = function get_63(resolve){ + return this; +} +; +_.getFeature = function getFeature_5(){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); +} +; +_.getFeatureID_0 = function getFeatureID_8(){ + return $getFeatureID($eClass(this.owner), $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0())); +} +; +_.getNotifier = function getNotifier_5(){ + return this.owner; +} +; +_.hasInstanceClass = function hasInstanceClass_0(){ + return !!$getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().getInstanceClass(); +} +; +_.hasInverse = function hasInverse_3(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_134) != 0 || !!$getEOpposite(castTo(eStructuralFeature, 18)); + } + else { + return false; + } +} +; +_.hasManyInverse = function hasManyInverse_0(){ + var eReference, eStructuralFeature, oppositeEReference, upper; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + oppositeEReference = $getEOpposite(eReference); + return !!oppositeEReference && (upper = oppositeEReference.upperBound , upper > 1 || upper == -1); + } + else { + return false; + } +} +; +_.hasNavigableInverse = function hasNavigableInverse_1(){ + var eReference, eStructuralFeature, oppositeEReference; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + oppositeEReference = $getEOpposite(eReference); + return !!oppositeEReference; + } + else { + return false; + } +} +; +_.hasProxies = function hasProxies_0(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_63) != 0; + } + else { + return false; + } +} +; +_.indexOf_0 = function indexOf_17(object){ + var eObject, i, index_0, size_0; + index_0 = this.delegateIndexOf(object); + if (index_0 >= 0) + return index_0; + if (this.isEObject()) { + for (i = 0 , size_0 = this.delegateSize(); i < size_0; ++i) { + eObject = $resolveProxy(this, this.delegateGet(i)); + if (maskUndefined(eObject) === maskUndefined(object)) { + return i; + } + } + } + return -1; +} +; +_.inverseAdd = function inverseAdd_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.isContainment = function isContainment_3(){ + var eReference, eStructuralFeature; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_134) != 0; + } + else { + return false; + } +} +; +_.isEObject = function isEObject_1(){ + return instanceOf($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 88); +} +; +_.isInstance = function isInstance_2(object){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().isInstance(object); +} +; +_.isNotificationRequired = function isNotificationRequired_2(){ + return $eNotificationRequired(this.owner); +} +; +_.isSet_0 = function isSet_7(){ + return !this.delegateIsEmpty(); +} +; +_.isUnique = function isUnique_4(){ + return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).isUnique(); +} +; +_.resolve = function resolve_3(index_0, object){ + return $resolve_1(this, index_0, object); +} +; +_.set_1 = function set_33(newValue){ + $clear_12(this); + $addAll_9(this, castTo(newValue, 15)); +} +; +_.toArray = function toArray_40(){ + var i; + if (this.hasProxies()) { + for (i = this.delegateSize() - 1; i >= 0; --i) { + $resolve_1(this, i, this.delegateGet(i)); + } + } + return this.delegateToArray(); +} +; +_.toArray_0 = function toArray_41(array){ + var i; + if (this.hasProxies()) { + for (i = this.delegateSize() - 1; i >= 0; --i) { + $resolve_1(this, i, this.delegateGet(i)); + } + } + return this.delegateToArray_0(array); +} +; +_.unset = function unset_5(){ + $clear_12(this); +} +; +_.validate = function validate_1(index_0, object){ + return $validate_1(this, index_0, object); +} +; +var Lorg_eclipse_emf_ecore_util_DelegatingEcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingEcoreEList', 742); +function $delegateAdd(this$static, index_0, eClass){ + $add_20($getEGenericSuperTypes(this$static.this$01), index_0, $wrap_0(eClass)); +} + +function $delegateAdd_0(this$static, eClass){ + $add_21($getEGenericSuperTypes(this$static.this$01), $wrap_0(eClass)); +} + +function $delegateContains(this$static, object){ + var eClass, eClass$iterator; + for (eClass$iterator = new AbstractEList$EIterator(this$static); eClass$iterator.cursor != eClass$iterator.this$01_2.size_1();) { + eClass = castTo($doNext(eClass$iterator), 26); + if (maskUndefined(object) === maskUndefined(eClass)) { + return true; + } + } + return false; +} + +function $delegateSet(this$static, index_0, eClass){ + var eGenericType, result, result0; + eGenericType = castTo($get_20($getEGenericSuperTypes(this$static.this$01), index_0), 87); + result0 = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + ((result0.eFlags_0 & 64) != 0?$eResolveProxy(this$static.owner, result0):result0) == eClass?$getERawType(eGenericType):$setEClassifier(eGenericType, eClass); + return result0; +} + +function $wrap_0(eClass){ + var eGenericType, eGenericType0; + eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClass); + return eGenericType0; +} + +function EClassImpl$8(this$0, $anonymous0){ + this.this$01 = this$0; + DelegatingEcoreEList.call(this, $anonymous0); +} + +defineClass(1150, 742, $intern_156, EClassImpl$8); +_.delegateAdd = function delegateAdd_1(index_0, eClass){ + $delegateAdd(this, index_0, castTo(eClass, 26)); +} +; +_.delegateAdd_0 = function delegateAdd_2(eClass){ + $delegateAdd_0(this, castTo(eClass, 26)); +} +; +_.delegateGet = function delegateGet_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateRemove = function delegateRemove_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateSet = function delegateSet_0(index_0, eClass){ + return $delegateSet(this, index_0, castTo(eClass, 26)); +} +; +_.canContainNull = function canContainNull_4(){ + return false; +} +; +_.createNotification = function createNotification_4(eventType, oldObject, newObject, index_0, wasSet){ + return null; +} +; +_.delegateBasicList = function delegateBasicList_0(){ + return new EClassImpl$8$1(this); +} +; +_.delegateClear = function delegateClear_0(){ + $clear_13($getEGenericSuperTypes(this.this$01)); +} +; +_.delegateContains = function delegateContains_0(object){ + return $delegateContains(this, object); +} +; +_.delegateContainsAll = function delegateContainsAll_0(collection){ + var object, object$iterator; + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$delegateContains(this, object)) { + return false; + } + } + return true; +} +; +_.delegateEquals = function delegateEquals_0(object){ + var i, j, list; + if (instanceOf(object, 15)) { + list = castTo(object, 15); + if (list.size_1() == $getEGenericSuperTypes(this.this$01).size_0) { + for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { + if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { + return false; + } + } + return true; + } + } + return false; +} +; +_.delegateHashCode = function delegateHashCode_0(){ + var eGenericType, eGenericType$iterator, hashCode, object, result; + hashCode = 1; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + object = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + hashCode = 31 * hashCode + (!object?0:getHashCode_0(object)); + } + return hashCode; +} +; +_.delegateIndexOf = function delegateIndexOf_0(object){ + var eGenericType, eGenericType$iterator, index_0, result; + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))) { + return index_0; + } + ++index_0; + } + return -1; +} +; +_.delegateIsEmpty = function delegateIsEmpty_0(){ + return $getEGenericSuperTypes(this.this$01).size_0 == 0; +} +; +_.delegateList_1 = function delegateList_2(){ + return null; +} +; +_.delegateSize = function delegateSize_0(){ + return $getEGenericSuperTypes(this.this$01).size_0; +} +; +_.delegateToArray = function delegateToArray_1(){ + var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; + size_0 = $getEGenericSuperTypes(this.this$01).size_0; + result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + result0[index_0++] = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + } + return result0; +} +; +_.delegateToArray_0 = function delegateToArray_2(array){ + var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; + size_0 = $getEGenericSuperTypes(this.this$01).size_0; + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + array.length > size_0 && setCheck(array, size_0, null); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + rawType = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + setCheck(array, index_0++, rawType); + } + return array; +} +; +_.delegateToString = function delegateToString_0(){ + var eGenericSuperTypes, i, result, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + eGenericSuperTypes = $getEGenericSuperTypes(this.this$01); + for (i = 0 , size_0 = $getEGenericSuperTypes(this.this$01).size_0; i < size_0;) { + $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericSuperTypes, i), 87).eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.dispatchNotification = function dispatchNotification_3(notification){ +} +; +_.getFeatureID_0 = function getFeatureID_9(){ + return 10; +} +; +_.hasInstanceClass = function hasInstanceClass_1(){ + return true; +} +; +_.hasInverse = function hasInverse_4(){ + return false; +} +; +_.hasManyInverse = function hasManyInverse_1(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse_2(){ + return false; +} +; +_.hasProxies = function hasProxies_1(){ + return true; +} +; +_.isContainment = function isContainment_4(){ + return false; +} +; +_.isEObject = function isEObject_2(){ + return true; +} +; +_.isInstance = function isInstance_3(object){ + return instanceOf(object, 88); +} +; +_.isSet_0 = function isSet_8(){ + return $isSetESuperTypes(this.this$01); +} +; +_.isUnique = function isUnique_5(){ + return true; +} +; +_.useEquals = function useEquals_10(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8', 1150); +function EClassImpl$8$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1151, 1964, $intern_37, EClassImpl$8$1); +_.listIterator_1 = function listIterator_29(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_75(){ + return $getEGenericSuperTypes(this.this$11.this$01).size_0; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$8$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8/1', 1151); +function EClassImpl$9(){ +} + +defineClass(1152, 497, $intern_138, EClassImpl$9); +_.newData = function newData_11(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, capacity, 0, 1); +} +; +_.useEquals = function useEquals_11(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/9', 1152); +function EClassImpl$MyHashSet(){ + HashSet.call(this); +} + +defineClass(1139, 53, $intern_77, EClassImpl$MyHashSet); +var Lorg_eclipse_emf_ecore_impl_EClassImpl$MyHashSet_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/MyHashSet', 1139); +function $setSerializable(this$static, newSerializable){ + var oldSerializable; + oldSerializable = (this$static.eFlags & 256) != 0; + newSerializable?(this$static.eFlags |= 256):(this$static.eFlags &= -257); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldSerializable, newSerializable)); +} + +function EDataTypeImpl(){ + this.eFlags |= 256; +} + +defineClass(566, 351, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}, EDataTypeImpl); +_.eGet = function eGet_23(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return this.getDefaultValue(); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_22(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return this.getDefaultValue() != null; + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) == 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.eSet = function eSet_21(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_22(){ + return $clinit_EcorePackage$Literals() , EDATA_TYPE; +} +; +_.eUnset = function eUnset_21(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setSerializable(this, true); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.freeze = function freeze_5(){ + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.getConversionDelegate = function getConversionDelegate(){ + var conversionDelegates, eDataTypeDelegateURI, eDataTypeDelegateURI$iterator; + if (!this.conversionDelegateIsSet) { + conversionDelegates = getConversionDelegates($getEPackage(this)); + if (!conversionDelegates.isEmpty()) { + for (eDataTypeDelegateURI$iterator = conversionDelegates.iterator_0(); eDataTypeDelegateURI$iterator.hasNext_0();) { + eDataTypeDelegateURI = castToString(eDataTypeDelegateURI$iterator.next_1()); + !!$getEAnnotation(this, eDataTypeDelegateURI) && getConversionDelegateFactory(this); + } + } + } + return this.conversionDelegate; +} +; +_.getDefaultValue = function getDefaultValue_1(){ + var instanceClass; + if (!this.defaultValueIsSet) { + instanceClass = null; + try { + instanceClass = $getInstanceClass(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 102)) + throw toJs($e0); + } + this.defaultValue = null; + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (instanceClass == Z_classLit?(this.defaultValue = ($clinit_Boolean() , FALSE_0)):instanceClass == I_classLit?(this.defaultValue = valueOf_4(0)):instanceClass == F_classLit?(this.defaultValue = new Float(0)):instanceClass == D_classLit?(this.defaultValue = 0):instanceClass == J_classLit?(this.defaultValue = valueOf_5(0)):instanceClass == S_classLit?(this.defaultValue = valueOf_6(0)):instanceClass == B_classLit?(this.defaultValue = valueOf_2(0)):(this.defaultValue = valueOf_3(0))); + this.defaultValueIsSet = true; + } + return this.defaultValue; +} +; +_.isSerializable = function isSerializable_0(){ + return (this.eFlags & 256) != 0; +} +; +_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass(isGenerated){ + isGenerated && (this.instanceClassName = 'org.eclipse.emf.common.util.AbstractEnumerator'); +} +; +_.setGeneratedInstanceClass = function setGeneratedInstanceClass_0(isGenerated){ + $setGeneratedInstanceClass(this, isGenerated); + this.setDataTypeGeneratedInstanceClass(isGenerated); +} +; +_.setInstanceClassGen = function setInstanceClassGen_0(instanceClass){ + this.instanceClass = instanceClass; + this.defaultValueIsSet = false; +} +; +_.toString_0 = function toString_150(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_30(this); + result = new StringBuffer_1($toString_30(this)); + result.string += ' (serializable: '; + $append_4(result, (this.eFlags & 256) != 0); + result.string += ')'; + return result.string; +} +; +_.conversionDelegateIsSet = false; +_.defaultValue = null; +_.defaultValueIsSet = false; +var Lorg_eclipse_emf_ecore_impl_EDataTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EDataTypeImpl', 566); +function $getDefaultValue_0(this$static){ + var eLiterals; + eLiterals = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , this$static.eLiterals); + if (eLiterals.size_0 != 0) { + return $getInstance(castTo($get_20(eLiterals, 0), 678)); + } + return null; +} + +function $getEEnumLiteralByLiteral(this$static, literal){ + var eEnumLiteral, eEnumLiteral$iterator, result; + if (literal == null) { + for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { + eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); + result = eEnumLiteral.literal; + if ((result == null?eEnumLiteral.name_0:result) == null) { + return eEnumLiteral; + } + } + } + else { + for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { + eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); + if ($equals_5(literal, (result = eEnumLiteral.literal , result == null?eEnumLiteral.name_0:result))) { + return eEnumLiteral; + } + } + } + return null; +} + +function EEnumImpl(){ + EDataTypeImpl.call(this); +} + +defineClass(457, 566, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 671:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 457:1, 150:1, 114:1, 115:1, 676:1}, EEnumImpl); +_.eGet = function eGet_24(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; + case 3: + return $getInstanceClass(this); + case 4: + return $getDefaultValue_0(this); + case 5: + return this.instanceTypeName; + case 6: + if (resolve) + return $getEPackage(this); + return $basicGetEPackage(this); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; + case 8: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , this.eLiterals; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_15(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 6: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 6, msgs); + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicAdd_0(this.eLiterals, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_17(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 6: + return $eBasicSetContainer(this, null, 6, msgs); + case 7: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 9: + return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicRemove_0(this.eLiterals, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_23(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; + case 3: + return !!$getInstanceClass(this); + case 4: + return !!$getDefaultValue_0(this); + case 5: + return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; + case 6: + return !!$basicGetEPackage(this); + case 7: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 8: + return (this.eFlags & 256) == 0; + case 9: + return !!this.eLiterals && this.eLiterals.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); +} +; +_.eSet = function eSet_22(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_1(this, castToString(newValue)); + return; + case 2: + $setInstanceClassName(this, castToString(newValue)); + return; + case 5: + $setInstanceTypeName(this, castToString(newValue)); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + case 9: + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $clear_13(this.eLiterals); + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $addAll_9(this.eLiterals, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_23(){ + return $clinit_EcorePackage$Literals() , EENUM; +} +; +_.eUnset = function eUnset_22(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); + $setName(this, null); + return; + case 2: + $basicSetInstanceClassName(this, null); + $basicSetInstanceTypeName(this, this.instanceClassName); + return; + case 5: + $setInstanceTypeName(this, null); + return; + case 7: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); + $clear_13(this.eTypeParameters); + return; + case 8: + $setSerializable(this, true); + return; + case 9: + !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); + $clear_13(this.eLiterals); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); +} +; +_.freeze = function freeze_6(){ + var i, size_0; + if (this.eLiterals) { + for (i = 0 , size_0 = this.eLiterals.size_0; i < size_0; ++i) { + $freeze($get_20(this.eLiterals, i)); + } + } + $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); + this.eFlags |= 1; +} +; +_.getDefaultValue = function getDefaultValue_2(){ + return $getDefaultValue_0(this); +} +; +_.isInstance = function isInstance_4(object){ + if (object != null) { + return true; + } + return false; +} +; +_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass_0(isGenerated){ +} +; +var Lorg_eclipse_emf_ecore_impl_EEnumImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumImpl', 457); +function $eBasicRemoveFromContainerFeature_8(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 5) { + return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_emf_ecore_EEnum_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getInstance(this$static){ + return this$static.instance?this$static.instance:this$static.generatedInstance; +} + +function $setInstance(this$static, newInstance){ + var literal, result, oldInstance; + oldInstance = this$static.instance; + this$static.instance = newInstance; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldInstance, this$static.instance)); + if (!newInstance) { + $setName(this$static, null); + $setValue_1(this$static, 0); + $setLiteral(this$static, null); + } + else if (newInstance != this$static) { + $setName(this$static, newInstance.name_0); + $setValue_1(this$static, newInstance.value_0); + literal = (result = newInstance.literal , result == null?newInstance.name_0:result); + $setLiteral(this$static, literal == null || $equals_5(literal, newInstance.name_0)?null:literal); + } +} + +function $setLiteral(this$static, newLiteral){ + var oldLiteral; + oldLiteral = this$static.literal; + this$static.literal = newLiteral; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, oldLiteral, this$static.literal)); +} + +function $setValue_1(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 2, oldValue, this$static.value_0)); +} + +function EEnumLiteralImpl(){ + this.generatedInstance = this; +} + +defineClass(573, 438, {105:1, 92:1, 90:1, 1940:1, 678:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 573:1, 150:1, 114:1, 115:1}, EEnumLiteralImpl); +_.getName = function getName_6(){ + return this.name_0; +} +; +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_9(msgs){ + return $eBasicRemoveFromContainerFeature_8(this, msgs); +} +; +_.eGet = function eGet_25(featureID, resolve, coreType){ + var eClass, result; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return valueOf_4(this.value_0); + case 3: + return this.instance?this.instance:this.generatedInstance; + case 4: + return result = this.literal , result == null?this.name_0:result; + case 5: + return this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_16(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 5: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_8(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 5, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_18(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 5: + return $eBasicSetContainer(this, null, 5, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_24(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return this.value_0 != 0; + case 3: + return !!this.instance; + case 4: + return this.literal != null; + case 5: + return !!(this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.eSet = function eSet_23(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setValue_1(this, castTo(newValue, 19).value_0); + return; + case 3: + $setInstance(this, castTo(newValue, 1940)); + return; + case 4: + $setLiteral(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_24(){ + return $clinit_EcorePackage$Literals() , EENUM_LITERAL; +} +; +_.eUnset = function eUnset_23(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setValue_1(this, 0); + return; + case 3: + $setInstance(this, null); + return; + case 4: + $setLiteral(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.toString_0 = function toString_151(){ + var result; + return result = this.literal , result == null?this.name_0:result; +} +; +_.instance = null; +_.literal = null; +_.value_0 = 0; +var Lorg_eclipse_emf_ecore_impl_EEnumLiteralImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumLiteralImpl', 573); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit = createForInterface('org.eclipse.emf.ecore.impl', 'EFactoryImpl/InternalEDateTimeFormat'); +function $format_0(this$static, value_0){ + return $format(this$static.dateTimeFormat, value_0, null); +} + +function $parse_2(this$static, value_0){ + return $parse_1(this$static.dateTimeFormat, value_0); +} + +function EFactoryImpl$1ClientInternalEDateTimeFormat(dateTimeFormat){ + this.dateTimeFormat = dateTimeFormat; +} + +defineClass(489, 1, {2015:1}, EFactoryImpl$1ClientInternalEDateTimeFormat); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$1ClientInternalEDateTimeFormat_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl/1ClientInternalEDateTimeFormat', 489); +function $basicSetELowerBound(this$static, newELowerBound, msgs){ + var notification, oldELowerBound; + oldELowerBound = this$static.eLowerBound; + this$static.eLowerBound = newELowerBound; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 3, oldELowerBound, newELowerBound); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $basicSetETypeParameter(this$static, newETypeParameter, msgs){ + var notification, oldETypeParameter; + oldETypeParameter = this$static.eTypeParameter; + this$static.eTypeParameter = newETypeParameter; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 4, oldETypeParameter, newETypeParameter); + !msgs?(msgs = notification):msgs.add_5(notification); + } + oldETypeParameter != newETypeParameter && (newETypeParameter?(msgs = $setERawType(this$static, $getErasure(this$static, newETypeParameter), msgs)):(msgs = $setERawType(this$static, this$static.eClassifier, msgs))); + return msgs; +} + +function $basicSetEUpperBound(this$static, newEUpperBound, msgs){ + var notification, oldEUpperBound; + oldEUpperBound = this$static.eUpperBound; + this$static.eUpperBound = newEUpperBound; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 0, oldEUpperBound, newEUpperBound); + !msgs?(msgs = notification):msgs.add_5(notification); + } + return msgs; +} + +function $getEClassifier(this$static){ + var oldEClassifier; + if (!!this$static.eClassifier && this$static.eClassifier.eIsProxy()) { + oldEClassifier = castTo(this$static.eClassifier, 49); + this$static.eClassifier = castTo($eResolveProxy(this$static, oldEClassifier), 138); + this$static.eClassifier != oldEClassifier && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 5, oldEClassifier, this$static.eClassifier)); + } + return this$static.eClassifier; +} + +function $getERawType(this$static){ + var newERawType, oldERawType; + if (!!this$static.eRawType && this$static.eRawType.eIsProxy()) { + oldERawType = castTo(this$static.eRawType, 49); + this$static.eRawType = castTo($eResolveProxy(this$static, oldERawType), 138); + if (this$static.eRawType != oldERawType) { + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 2, oldERawType, this$static.eRawType)); + if (instanceOf(this$static.eContainer, 399)) { + this$static.eFlags_0 >> 16 == -15 && this$static.eContainer.eNotificationRequired() && $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 13, oldERawType, this$static.eRawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static))); + } + else if (instanceOf(this$static.eContainer, 88)) { + if (this$static.eFlags_0 >> 16 == -23 && this$static.eContainer.eNotificationRequired()) { + newERawType = this$static.eRawType; + instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static))); + } + } + } + } + return this$static.eRawType; +} + +function $getETypeArguments(this$static){ + !this$static.eTypeArguments && (this$static.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static, 1)); + return this$static.eTypeArguments; +} + +function $getErasure(this$static, eTypeParameter){ + var eBound, eBound$iterator, eRawType, needEClass, needEDataType; + if (!eTypeParameter) { + return null; + } + else { + needEClass = instanceOf(this$static.eContainer, 88) || instanceOf(this$static.eContainer, 99); + needEDataType = !needEClass && instanceOf(this$static.eContainer, 322); + for (eBound$iterator = new AbstractEList$EIterator((!eTypeParameter.eBounds && (eTypeParameter.eBounds = new ETypeParameterImpl$1(eTypeParameter, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eTypeParameter)) , eTypeParameter.eBounds)); eBound$iterator.cursor != eBound$iterator.this$01_2.size_1();) { + eBound = castTo($doNext(eBound$iterator), 87); + eRawType = $getERawType(eBound); + if (needEClass?instanceOf(eRawType, 88):needEDataType?instanceOf(eRawType, 148):!!eRawType) { + return eRawType; + } + } + return needEClass?($clinit_EcorePackage$Literals() , EOBJECT):($clinit_EcorePackage$Literals() , EJAVA_OBJECT); + } +} + +function $setEClassifier(this$static, newEClassifier){ + var msgs, oldEClassifier; + oldEClassifier = this$static.eClassifier; + msgs = $setEClassifier_0(this$static, newEClassifier, null); + oldEClassifier != newEClassifier && !this$static.eTypeParameter && (msgs = $setERawType(this$static, newEClassifier, msgs)); + !!msgs && msgs.dispatch_0(); +} + +function $setEClassifier_0(this$static, newEClassifier, msgs){ + var notification, oldEClassifier; + oldEClassifier = this$static.eClassifier; + this$static.eClassifier = newEClassifier; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 5, oldEClassifier, this$static.eClassifier); + !msgs?(msgs = notification):$add_22(msgs, notification); + } + return msgs; +} + +function $setELowerBound(this$static, newELowerBound){ + var msgs; + if (newELowerBound != this$static.eLowerBound) { + msgs = null; + !!this$static.eLowerBound && (msgs = $eInverseRemove(this$static.eLowerBound, this$static, -4, msgs)); + !!newELowerBound && (msgs = $eInverseAdd(newELowerBound, this$static, -4, msgs)); + msgs = $basicSetELowerBound(this$static, newELowerBound, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newELowerBound, newELowerBound)); +} + +function $setERawType(this$static, newERawType, msgs){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, eTypeParameter, notification, oldERawType; + oldERawType = this$static.eRawType; + !newERawType && (newERawType = eJavaObject); + this$static.eRawType = newERawType; + if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { + notification = new ENotificationImpl_1(this$static, 1, 2, oldERawType, this$static.eRawType); + !msgs?(msgs = notification):msgs.add_5(notification); + } + if (oldERawType != newERawType) { + if (instanceOf(this$static.eContainer, 284)) { + if (this$static.eFlags_0 >> 16 == -10) { + msgs = castTo(this$static.eContainer, 284).setEType(newERawType, msgs); + } + else if (this$static.eFlags_0 >> 16 == -15) { + !newERawType && (newERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + !oldERawType && (oldERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + if (this$static.eContainer.eNotificationRequired()) { + notification = new ENotificationImpl_3(this$static.eContainer, 1, 13, oldERawType, newERawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 88)) { + if (this$static.eFlags_0 >> 16 == -23) { + instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + if (this$static.eContainer.eNotificationRequired()) { + notification = new ENotificationImpl_3(this$static.eContainer, 1, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 444)) { + eTypeParameter = castTo(this$static.eContainer, 836); + eGenericTypes = (!eTypeParameter.eGenericTypes && (eTypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , eTypeParameter.eGenericTypes); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + msgs = $setERawType(eGenericType, $getErasure(eGenericType, eTypeParameter), msgs); + } + } + } + return msgs; +} + +function $setETypeParameter(this$static, newETypeParameter){ + var msgs; + if (newETypeParameter != this$static.eTypeParameter) { + !!this$static.eTypeParameter && $remove_42($getEGenericTypes(this$static.eTypeParameter), this$static); + !!newETypeParameter && (!newETypeParameter.eGenericTypes && (newETypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , $add_30(newETypeParameter.eGenericTypes, this$static)); + msgs = $basicSetETypeParameter(this$static, newETypeParameter, null); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newETypeParameter, newETypeParameter)); +} + +function $setEUpperBound(this$static, newEUpperBound){ + var msgs; + if (newEUpperBound != this$static.eUpperBound) { + msgs = null; + !!this$static.eUpperBound && (msgs = $eInverseRemove(this$static.eUpperBound, this$static, -1, msgs)); + !!newEUpperBound && (msgs = $eInverseAdd(newEUpperBound, this$static, -1, msgs)); + msgs = $basicSetEUpperBound(this$static, newEUpperBound, msgs); + !!msgs && msgs.dispatch_0(); + } + else + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, newEUpperBound, newEUpperBound)); +} + +function $toString_32(this$static, result){ + var eTypeArgument, eTypeArgument$iterator, first, index_0, instanceTypeName, label_0, tail; + if (this$static.eClassifier) { + label_0 = this$static.eClassifier.getName(); + tail = null; + if (label_0 != null) { + result.string += '' + label_0; + } + else { + instanceTypeName = this$static.eClassifier.getInstanceTypeName(); + if (instanceTypeName != null) { + index_0 = $indexOf_1(instanceTypeName, fromCodePoint(91)); + if (index_0 != -1) { + tail = instanceTypeName.substr(index_0); + result.string += '' + $substring_1(instanceTypeName == null?'null':(checkCriticalNotNull(instanceTypeName) , instanceTypeName), 0, index_0); + } + else { + result.string += '' + instanceTypeName; + } + } + } + if (!!this$static.eTypeArguments && this$static.eTypeArguments.size_0 != 0) { + first = true; + result.string += '<'; + for (eTypeArgument$iterator = new AbstractEList$EIterator(this$static.eTypeArguments); eTypeArgument$iterator.cursor != eTypeArgument$iterator.this$01_2.size_1();) { + eTypeArgument = castTo($doNext(eTypeArgument$iterator), 87); + first?(first = false):(result.string += ', ' , result); + $toString_32(eTypeArgument, result); + } + result.string += '>'; + } + tail != null && (result.string += '' + tail , result); + } + else if (this$static.eTypeParameter) { + label_0 = this$static.eTypeParameter.name_0; + label_0 != null && (result.string += '' + label_0 , result); + } + else { + result.string += '?'; + if (this$static.eLowerBound) { + result.string += ' super '; + $toString_32(this$static.eLowerBound, result); + } + else { + if (this$static.eUpperBound) { + result.string += ' extends '; + $toString_32(this$static.eUpperBound, result); + } + } + } +} + +function EGenericTypeImpl(){ + this.eRawType = eJavaObject; +} + +defineClass(241, 115, {105:1, 92:1, 90:1, 87:1, 56:1, 108:1, 49:1, 97:1, 241:1, 114:1, 115:1}, EGenericTypeImpl); +_.eBasicSetContainer_0 = function eBasicSetContainer_6(newContainer, newContainerFeatureID, msgs){ + var newERawType; + msgs = $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); + if (!!this.eTypeParameter && instanceOf(newContainer, 170)) { + newERawType = $getErasure(this, this.eTypeParameter); + newERawType != this.eRawType && (msgs = $setERawType(this, newERawType, msgs)); + } + return msgs; +} +; +_.eGet = function eGet_26(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return this.eUpperBound; + case 1: + return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , this.eTypeArguments; + case 2: + if (resolve) + return $getERawType(this); + return this.eRawType; + case 3: + return this.eLowerBound; + case 4: + return this.eTypeParameter; + case 5: + if (resolve) + return $getEClassifier(this); + return this.eClassifier; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_19(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return $basicSetEUpperBound(this, null, msgs); + case 1: + return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , $basicRemove_0(this.eTypeArguments, otherEnd, msgs); + case 3: + return $basicSetELowerBound(this, null, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EGENERIC_TYPE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_25(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eUpperBound; + case 1: + return !!this.eTypeArguments && this.eTypeArguments.size_0 != 0; + case 2: + return !!this.eRawType; + case 3: + return !!this.eLowerBound; + case 4: + return !!this.eTypeParameter; + case 5: + return !!this.eClassifier; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.eSet = function eSet_24(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, castTo(newValue, 87)); + return; + case 1: + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $clear_13(this.eTypeArguments); + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $addAll_9(this.eTypeArguments, castTo(newValue, 14)); + return; + case 3: + $setELowerBound(this, castTo(newValue, 87)); + return; + case 4: + $setETypeParameter(this, castTo(newValue, 836)); + return; + case 5: + $setEClassifier(this, castTo(newValue, 138)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_25(){ + return $clinit_EcorePackage$Literals() , EGENERIC_TYPE; +} +; +_.eUnset = function eUnset_24(featureID){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, null); + return; + case 1: + !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); + $clear_13(this.eTypeArguments); + return; + case 3: + $setELowerBound(this, null); + return; + case 4: + $setETypeParameter(this, null); + return; + case 5: + $setEClassifier(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.toString_0 = function toString_152(){ + var result; + result = new StringBuilder_1($toString_16(this)); + result.string += ' (expression: '; + $toString_32(this, result); + result.string += ')'; + return result.string; +} +; +var eJavaObject; +var Lorg_eclipse_emf_ecore_impl_EGenericTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EGenericTypeImpl', 241); +function $addUnique_10(this$static, index_0, object){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(object); +} + +defineClass(1969, 1964, $intern_157); +_.addUnique = function addUnique_18(index_0, object){ + $addUnique_10(this, index_0, object); +} +; +_.basicAdd = function basicAdd_3(object, notifications){ + $addUnique_10(this, this.size_1(), object); + return notifications; +} +; +_.basicGet = function basicGet_4(index_0){ + return $get_7(this.basicList(), index_0); +} +; +_.basicIterator = function basicIterator_5(){ + return this.basicListIterator(); +} +; +_.basicList = function basicList_1(){ + return new AbstractSequentialInternalEList$1(this); +} +; +_.basicListIterator = function basicListIterator_11(){ + return this.basicListIterator_0(0); +} +; +_.basicListIterator_0 = function basicListIterator_12(index_0){ + return this.basicList().listIterator_1(index_0); +} +; +_.basicRemove = function basicRemove_3(object, notifications){ + $advanceToFind(this, object, true); + return notifications; +} +; +_.move = function move_15(newPosition, oldPosition){ + var iter, movedObject; + movedObject = $remove_4(this, oldPosition); + iter = this.listIterator_1(newPosition); + iter.add_1(movedObject); + return movedObject; +} +; +_.move_0 = function move_16(newPosition, object){ + var iter; + $advanceToFind(this, object, true); + iter = this.listIterator_1(newPosition); + iter.add_1(object); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList', 1969); +function $clinit_EContentsEList(){ + $clinit_EContentsEList = emptyMethod; + EMPTY_CONTENTS_ELIST = new EContentsEList$1; +} + +function $isIncludedEntry(eStructuralFeature){ + return instanceOf(eStructuralFeature, 99) && (castTo(eStructuralFeature, 18).eFlags & $intern_134) != 0; +} + +function $iterator_1(this$static){ + var result; + if (this$static.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this$static.resolve_0()?this$static.newResolvingListIterator():this$static.newNonResolvingListIterator(); + return result; +} + +function EContentsEList(eObject, eStructuralFeatures){ + $clinit_EContentsEList(); + this.eObject = eObject; + this.eStructuralFeatures = eStructuralFeatures; +} + +defineClass(486, 1969, $intern_157, EContentsEList); +_.basicGet = function basicGet_5(index_0){ + return $get_7(this.basicList(), index_0); +} +; +_.basicIterator = function basicIterator_6(){ + if (this.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + return this.newNonResolvingListIterator(); +} +; +_.basicList = function basicList_2(){ + return new EContentsEList$2(this.eObject, this.eStructuralFeatures); +} +; +_.basicListIterator = function basicListIterator_13(){ + if (this.eStructuralFeatures == null) { + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + return this.newNonResolvingListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_14(index_0){ + var i, result; + if (this.eStructuralFeatures == null) { + if (index_0 < 0 || index_0 > 1) { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); + } + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this.newNonResolvingListIterator(); + for (i = 0; i < index_0; ++i) { + $next_15(result); + } + return result; +} +; +_.isEmpty = function isEmpty_33(){ + var feature, featureMap, i, j, size_0, value_0; + if (this.eStructuralFeatures != null) { + for (i = 0; i < this.eStructuralFeatures.length; ++i) { + feature = this.eStructuralFeatures[i]; + if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { + value_0 = this.eObject.eGet_1(feature, false); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + featureMap = castTo(value_0, 153); + for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { + if ($isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null) { + return false; + } + } + } + else if (feature.isMany()) { + if (!castTo(value_0, 14).isEmpty()) { + return false; + } + } + else if (value_0 != null) { + return false; + } + } + } + } + return true; +} +; +_.iterator_0 = function iterator_88(){ + return $iterator_1(this); +} +; +_.listIterator_1 = function listIterator_30(index_0){ + var i, result; + if (this.eStructuralFeatures == null) { + if (index_0 != 0) { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); + } + return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; + } + result = this.resolve_0()?this.newResolvingListIterator():this.newNonResolvingListIterator(); + for (i = 0; i < index_0; ++i) { + $next_15(result); + } + return result; +} +; +_.move = function move_17(newPosition, oldPosition){ + throw toJs(new UnsupportedOperationException); +} +; +_.move_0 = function move_18(newPosition, o){ + throw toJs(new UnsupportedOperationException); +} +; +_.newNonResolvingListIterator = function newNonResolvingListIterator(){ + return new EContentsEList$FeatureIteratorImpl(this.eObject, this.eStructuralFeatures); +} +; +_.newResolvingListIterator = function newResolvingListIterator(){ + return new EContentsEList$ResolvingFeatureIteratorImpl(this.eObject, this.eStructuralFeatures); +} +; +_.resolve_0 = function resolve_4(){ + return true; +} +; +_.size_1 = function size_76(){ + var feature, featureMap, i, j, result, size_0, value_0; + result = 0; + if (this.eStructuralFeatures != null) { + for (i = 0; i < this.eStructuralFeatures.length; ++i) { + feature = this.eStructuralFeatures[i]; + if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { + value_0 = this.eObject.eGet_1(feature, false); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + featureMap = castTo(value_0, 153); + for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { + $isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null && ++result; + } + } + else + feature.isMany()?(result += castTo(value_0, 14).size_1()):value_0 != null && ++result; + } + } + } + return result; +} +; +_.useIsSet = function useIsSet(){ + return true; +} +; +var EMPTY_CONTENTS_ELIST; +var Lorg_eclipse_emf_ecore_util_EContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList', 486); +function ENamedElementImpl$1($anonymous0, $anonymous1){ + $clinit_EContentsEList(); + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(1156, 486, $intern_157, ENamedElementImpl$1); +_.newNonResolvingListIterator = function newNonResolvingListIterator_0(){ + return new ENamedElementImpl$1$2(this.eObject, this.eStructuralFeatures); +} +; +_.newResolvingListIterator = function newResolvingListIterator_0(){ + return new ENamedElementImpl$1$1(this.eObject, this.eStructuralFeatures); +} +; +_.useIsSet = function useIsSet_0(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1', 1156); +function $clinit_EContentsEList$FeatureIteratorImpl(){ + $clinit_EContentsEList$FeatureIteratorImpl = emptyMethod; + EMPTY_ITERATOR = new EContentsEList$FeatureIteratorImpl$1; +} + +function $next_15(this$static){ + var result; + if (this$static.prepared > 1 || this$static.hasNext_0()) { + ++this$static.cursor; + this$static.prepared = 0; + result = this$static.preparedResult; + this$static.hasNext_0(); + return result; + } + else { + throw toJs(new NoSuchElementException); + } +} + +function $scanNext(this$static){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (this$static.valueListIndex < this$static.valueListSize) { + entry = castTo(!this$static.valueInternalEList?this$static.valueList.get_0(this$static.valueListIndex):this$static.valueInternalEList.basicGet(this$static.valueListIndex), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + return true; + } + else { + ++this$static.valueListIndex; + } + } + return false; + } + else { + return this$static.valueListIndex < this$static.valueListSize; + } +} + +function $scanNext_0(this$static, values){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (values.hasNext_0()) { + entry = castTo(values.next_1(), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + values.previous_0(); + return true; + } + } + return false; + } + else { + return values.hasNext_0(); + } +} + +function $scanPrevious(this$static){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (this$static.valueListIndex > 0) { + entry = castTo(this$static.valueList.get_0(this$static.valueListIndex - 1), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + return true; + } + else { + --this$static.valueListIndex; + } + } + return false; + } + else { + return this$static.valueListIndex > 0; + } +} + +function $scanPrevious_0(this$static, values){ + var entry, entryFeature; + if (this$static.isHandlingFeatureMap) { + while (values.hasPrevious()) { + entry = castTo(values.previous_0(), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { + values.next_1(); + return true; + } + } + return false; + } + else { + return values.hasPrevious(); + } +} + +function EContentsEList$FeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + this.eObject = eObject; + this.eStructuralFeatures = eStructuralFeatures; +} + +defineClass(279, 1, $intern_158, EContentsEList$FeatureIteratorImpl); +_.forEachRemaining = function forEachRemaining_57(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_64(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.filter_0 = function filter_3(featureFilter){ + if (this.prepared != 0 || !!this.featureFilter) { + throw toJs(new IllegalStateException_0('Iterator already in use or already filtered')); + } + this.featureFilter = featureFilter; +} +; +_.hasNext_0 = function hasNext_46(){ + var entry, feature, newPreparedResult, newValueList, result, value_0; + switch (this.prepared) { + case 3: + case 2: + { + return true; + } + + case 1: + { + return false; + } + + case -3: + { + !this.values?++this.valueListIndex:this.values.next_1(); + } + + default:{ + if (!this.valueList || (!this.values?!$scanNext(this):!$scanNext_0(this, this.values))) { + while (this.featureCursor < this.eStructuralFeatures.length) { + feature = this.eStructuralFeatures[this.featureCursor++]; + if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { + value_0 = this.eObject.eGet_1(feature, this.resolve_0()); + this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 69); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 54)) { + this.values = null; + this.valueListSize = this.valueList.size_1(); + this.valueListIndex = 0; + } + else { + this.values = !this.valueInternalEList?this.valueList.listIterator_0():this.valueInternalEList.basicListIterator(); + } + if (!this.values?$scanNext(this):$scanNext_0(this, this.values)) { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = 3; + return true; + } + } + else if (value_0 != null) { + this.valueList = null; + this.values = null; + newPreparedResult = value_0; + this.preparedResult = newPreparedResult; + this.prepared = 2; + return true; + } + } + } + this.valueList = null; + this.values = null; + this.isHandlingFeatureMap = false; + this.prepared = 1; + return false; + } + else { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = 3; + return true; + } + } + + } +} +; +_.hasPrevious = function hasPrevious_9(){ + var entry, feature, newPreparedResult, newValueList, result, value_0; + switch (this.prepared) { + case -3: + case -2: + { + return true; + } + + case -1: + { + return false; + } + + case 3: + { + !this.values?--this.valueListIndex:this.values.previous_0(); + } + + default:{ + if (!this.valueList || (!this.values?!$scanPrevious(this):!$scanPrevious_0(this, this.values))) { + while (this.featureCursor > 0) { + feature = this.eStructuralFeatures[--this.featureCursor]; + if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { + value_0 = this.eObject.eGet_1(feature, this.resolve_0()); + this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 69); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 54)) { + this.valueListSize = this.valueList.size_1(); + this.valueListIndex = this.valueListSize; + } + else { + this.values = !this.valueInternalEList?this.valueList.listIterator_1(this.valueList.size_1()):this.valueInternalEList.basicListIterator_0(this.valueList.size_1()); + } + if (!this.values?$scanPrevious(this):$scanPrevious_0(this, this.values)) { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = -3; + return true; + } + } + else if (value_0 != null) { + this.valueList = null; + this.values = null; + newPreparedResult = value_0; + this.preparedResult = newPreparedResult; + this.prepared = -2; + return true; + } + } + } + this.valueList = null; + this.values = null; + this.prepared = -1; + return false; + } + else { + result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); + if (this.isHandlingFeatureMap) { + entry = castTo(result, 72); + entry.getEStructuralFeature(); + newPreparedResult = entry.getValue(); + this.preparedResult = newPreparedResult; + } + else { + newPreparedResult = result; + this.preparedResult = newPreparedResult; + } + this.prepared = -3; + return true; + } + } + + } +} +; +_.next_1 = function next_47(){ + return $next_15(this); +} +; +_.nextIndex_0 = function nextIndex_10(){ + return this.cursor; +} +; +_.previous_0 = function previous_10(){ + var result; + if (this.prepared < -1 || this.hasPrevious()) { + --this.cursor; + this.prepared = 0; + result = this.preparedResult; + this.hasPrevious(); + return result; + } + else { + throw toJs(new NoSuchElementException); + } +} +; +_.previousIndex = function previousIndex_9(){ + return this.cursor - 1; +} +; +_.remove = function remove_125(){ + throw toJs(new UnsupportedOperationException); +} +; +_.resolve_0 = function resolve_5(){ + return false; +} +; +_.set_1 = function set_34(o){ + throw toJs(new UnsupportedOperationException); +} +; +_.useIsSet = function useIsSet_1(){ + return true; +} +; +_.cursor = 0; +_.featureCursor = 0; +_.isHandlingFeatureMap = false; +_.prepared = 0; +_.valueListIndex = 0; +_.valueListSize = 0; +var EMPTY_ITERATOR; +var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl', 279); +function EContentsEList$ResolvingFeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, eObject, eStructuralFeatures); +} + +defineClass(697, 279, $intern_158, EContentsEList$ResolvingFeatureIteratorImpl); +_.resolve_0 = function resolve_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$ResolvingFeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/ResolvingFeatureIteratorImpl', 697); +function ENamedElementImpl$1$1($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$ResolvingFeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1157, 697, $intern_158, ENamedElementImpl$1$1); +_.useIsSet = function useIsSet_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/1', 1157); +function ENamedElementImpl$1$2($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1158, 279, $intern_158, ENamedElementImpl$1$2); +_.useIsSet = function useIsSet_3(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/2', 1158); +function $$init_11(this$static){ +} + +function $getFeature(this$static){ + var eClass; + if (!this$static.feature && this$static.featureID != -1) { + eClass = this$static.notifier.eClass_0(); + this$static.feature = $getEStructuralFeature(eClass, this$static.featureID); + } + return this$static.feature; +} + +function ENotificationImpl(notifier, featureID, oldDoubleValue, newDoubleValue){ + NotificationImpl.call(this, 1, oldDoubleValue, newDoubleValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_0(notifier, featureID, oldIntValue, newIntValue){ + NotificationImpl_0.call(this, 1, oldIntValue, newIntValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_1(notifier, eventType, featureID, oldValue, newValue){ + ENotificationImpl_2.call(this, notifier, eventType, featureID, oldValue, newValue, -1); +} + +function ENotificationImpl_2(notifier, eventType, featureID, oldValue, newValue, position){ + NotificationImpl_1.call(this, eventType, oldValue, newValue, position); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_3(notifier, eventType, featureID, oldValue, newValue, position, wasSet){ + NotificationImpl_2.call(this, eventType, oldValue, newValue, position, wasSet); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_4(notifier, eventType, featureID, oldBooleanValue, newBooleanValue){ + NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); + $$init_11(this); + this.notifier = notifier; + this.featureID = featureID; +} + +function ENotificationImpl_5(notifier, eventType, feature, oldByteValue, newByteValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldByteValue; + this.newSimplePrimitiveValue = newByteValue; + this.position = -1; + this.primitiveType = 1; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_6(notifier, eventType, feature, oldByteValue, newByteValue, isSetChange){ + ENotificationImpl_5.call(this, notifier, eventType, feature, oldByteValue, newByteValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_7(notifier, eventType, feature, oldCharValue, newCharValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldCharValue; + this.newSimplePrimitiveValue = newCharValue; + this.position = -1; + this.primitiveType = 2; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_8(notifier, eventType, feature, oldCharValue, newCharValue, isSetChange){ + ENotificationImpl_7.call(this, notifier, eventType, feature, oldCharValue, newCharValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_9(notifier, eventType, feature, oldDoubleValue, newDoubleValue){ + NotificationImpl.call(this, eventType, oldDoubleValue, newDoubleValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_10(notifier, eventType, feature, oldDoubleValue, newDoubleValue, isSetChange){ + ENotificationImpl_9.call(this, notifier, eventType, feature, oldDoubleValue, newDoubleValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_11(notifier, eventType, feature, oldFloatValue, newFloatValue){ + this.eventType = eventType; + this.oldIEEEPrimitiveValue = oldFloatValue; + this.newIEEEPrimitiveValue = newFloatValue; + this.position = -1; + this.primitiveType = 4; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_12(notifier, eventType, feature, oldFloatValue, newFloatValue, isSetChange){ + ENotificationImpl_11.call(this, notifier, eventType, feature, oldFloatValue, newFloatValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_13(notifier, eventType, feature, oldIntValue, newIntValue){ + NotificationImpl_0.call(this, eventType, oldIntValue, newIntValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_14(notifier, eventType, feature, oldIntValue, newIntValue, isSetChange){ + ENotificationImpl_13.call(this, notifier, eventType, feature, oldIntValue, newIntValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_15(notifier, eventType, feature, oldLongValue, newLongValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldLongValue; + this.newSimplePrimitiveValue = newLongValue; + this.position = -1; + this.primitiveType = 6; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_16(notifier, eventType, feature, oldLongValue, newLongValue, isSetChange){ + ENotificationImpl_15.call(this, notifier, eventType, feature, oldLongValue, newLongValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue){ + ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, -1); +} + +function ENotificationImpl_18(notifier, eventType, feature, oldValue, newValue, position){ + NotificationImpl_1.call(this, eventType, oldValue, newValue, position); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, isSetChange){ + ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, isSetChange?-2:-1); +} + +function ENotificationImpl_20(notifier, eventType, feature, oldShortValue, newShortValue){ + this.eventType = eventType; + this.oldSimplePrimitiveValue = oldShortValue; + this.newSimplePrimitiveValue = newShortValue; + this.position = -1; + this.primitiveType = 7; + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_21(notifier, eventType, feature, oldShortValue, newShortValue, isSetChange){ + ENotificationImpl_20.call(this, notifier, eventType, feature, oldShortValue, newShortValue); + isSetChange && (this.position = -2); +} + +function ENotificationImpl_22(notifier, eventType, feature, oldBooleanValue, newBooleanValue){ + NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); + $$init_11(this); + this.notifier = notifier; + this.feature = feature; +} + +function ENotificationImpl_23(notifier, eventType, feature, oldBooleanValue, newBooleanValue, isSetChange){ + ENotificationImpl_22.call(this, notifier, eventType, feature, oldBooleanValue, newBooleanValue); + isSetChange && (this.position = -2); +} + +defineClass(36, 143, $intern_142, ENotificationImpl, ENotificationImpl_0, ENotificationImpl_1, ENotificationImpl_2, ENotificationImpl_3, ENotificationImpl_4, ENotificationImpl_5, ENotificationImpl_6, ENotificationImpl_7, ENotificationImpl_8, ENotificationImpl_9, ENotificationImpl_10, ENotificationImpl_11, ENotificationImpl_12, ENotificationImpl_13, ENotificationImpl_14, ENotificationImpl_15, ENotificationImpl_16, ENotificationImpl_17, ENotificationImpl_18, ENotificationImpl_19, ENotificationImpl_20, ENotificationImpl_21, ENotificationImpl_22, ENotificationImpl_23); +_.getFeature = function getFeature_6(){ + return $getFeature(this); +} +; +_.getFeatureDefaultValue = function getFeatureDefaultValue_0(){ + var feature; + feature = $getFeature(this); + if (feature) { + return feature.getDefaultValue(); + } + return null; +} +; +_.getFeatureID = function getFeatureID_10(expectedClass){ + this.featureID == -1 && !!this.feature && (this.featureID = this.notifier.eDerivedStructuralFeatureID(this.feature.getFeatureID_0(), this.feature.getContainerClass())); + return this.notifier.eBaseStructuralFeatureID(this.featureID, expectedClass); +} +; +_.getNotifier = function getNotifier_6(){ + return this.notifier; +} +; +_.isFeatureUnsettable = function isFeatureUnsettable_0(){ + var feature; + feature = $getFeature(this); + if (feature) { + return feature.isUnsettable(); + } + return false; +} +; +_.featureID = -1; +var Lorg_eclipse_emf_ecore_impl_ENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENotificationImpl', 36); +function $eBasicRemoveFromContainerFeature_9(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 10) { + return this$static.eContainer.eInverseRemove(this$static, 11, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function $getEGenericExceptions(this$static){ + if (!this$static.eGenericExceptions) { + this$static.eGenericExceptions = new EOperationImpl$2(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); + !this$static.eExceptions && (this$static.eExceptions = new EOperationImpl$1(this$static, this$static)); + } + return this$static.eGenericExceptions; +} + +function $isSetEExceptions(this$static){ + return !!this$static.eExceptions && $getEGenericExceptions(this$static.eExceptions.this$01).size_0 != 0 && !(!!this$static.eGenericExceptions && $isSet_0(this$static.eGenericExceptions)); +} + +function EOperationImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(399, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 59:1, 108:1, 472:1, 49:1, 97:1, 150:1, 399:1, 284:1, 114:1, 115:1}, EOperationImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_10(msgs){ + return $eBasicRemoveFromContainerFeature_9(this, msgs); +} +; +_.eGet = function eGet_27(featureID, resolve, coreType){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null; + case 11: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , this.eTypeParameters; + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , this.eParameters; + case 13: + return !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)) , this.eExceptions; + case 14: + return $getEGenericExceptions(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_17(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 10: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_9(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 10, msgs); + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicAdd_0(this.eParameters, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_20(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 10: + return $eBasicSetContainer(this, null, 10, msgs); + case 11: + return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); + case 12: + return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicRemove_0(this.eParameters, otherEnd, msgs); + case 14: + return $basicRemove_0($getEGenericExceptions(this), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_26(featureID){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null); + case 11: + return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; + case 12: + return !!this.eParameters && this.eParameters.size_0 != 0; + case 13: + return !!this.eExceptions && $getEGenericExceptions(this.eExceptions.this$01).size_0 != 0 && !(!!this.eGenericExceptions && $isSet_0(this.eGenericExceptions)); + case 14: + return !!this.eGenericExceptions && $isSet_0(this.eGenericExceptions); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); +} +; +_.eSet = function eSet_25(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 11: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $clear_13(this.eTypeParameters); + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $addAll_9(this.eTypeParameters, castTo(newValue, 14)); + return; + case 12: + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $clear_13(this.eParameters); + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $addAll_9(this.eParameters, castTo(newValue, 14)); + return; + case 13: + !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); + $clear_12(this.eExceptions); + !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); + $addAll_9(this.eExceptions, castTo(newValue, 14)); + return; + case 14: + $clear_13($getEGenericExceptions(this)); + $addAll_9($getEGenericExceptions(this), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_26(){ + return $clinit_EcorePackage$Literals() , EOPERATION; +} +; +_.eUnset = function eUnset_25(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 11: + !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); + $clear_13(this.eTypeParameters); + return; + case 12: + !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); + $clear_13(this.eParameters); + return; + case 13: + !!this.eExceptions && $clear_12(this.eExceptions); + return; + case 14: + !!this.eGenericExceptions && $clear_13(this.eGenericExceptions); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); +} +; +_.freeze = function freeze_7(){ + var i, size_0; + if (this.eParameters) { + for (i = 0 , size_0 = this.eParameters.size_0; i < size_0; ++i) { + $freeze($get_20(this.eParameters, i)); + } + } + $getEType(this); + this.eFlags |= 1; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl', 399); +function $delegateAdd_1(this$static, index_0, eClassifier){ + $add_20($getEGenericExceptions(this$static.this$01), index_0, $wrap_1(eClassifier)); +} + +function $delegateAdd_2(this$static, eClassifier){ + $add_21($getEGenericExceptions(this$static.this$01), $wrap_1(eClassifier)); +} + +function $delegateContains_0(this$static, object){ + var eClassifier, eClassifier$iterator; + for (eClassifier$iterator = new AbstractEList$EIterator(this$static); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { + eClassifier = castTo($doNext(eClassifier$iterator), 138); + if (maskUndefined(object) === maskUndefined(eClassifier)) { + return true; + } + } + return false; +} + +function $delegateSet_0(this$static, index_0, eClassifier){ + var eGenericType, result, result0; + eGenericType = castTo($get_20($getEGenericExceptions(this$static.this$01), index_0), 87); + result0 = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + (result0.eIsProxy()?$eResolveProxy(this$static.owner, castTo(result0, 49)):result0) == eClassifier?$getERawType(eGenericType):$setEClassifier(eGenericType, eClassifier); + return result0; +} + +function $wrap_1(eClassifier){ + var eGenericType, eGenericType0; + eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); + $setEClassifier(eGenericType0, eClassifier); + return eGenericType0; +} + +function EOperationImpl$1(this$0, $anonymous0){ + this.this$01 = this$0; + DelegatingEcoreEList.call(this, $anonymous0); +} + +defineClass(505, 742, $intern_156, EOperationImpl$1); +_.delegateAdd = function delegateAdd_3(index_0, eClassifier){ + $delegateAdd_1(this, index_0, castTo(eClassifier, 138)); +} +; +_.delegateAdd_0 = function delegateAdd_4(eClassifier){ + $delegateAdd_2(this, castTo(eClassifier, 138)); +} +; +_.delegateGet = function delegateGet_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); +} +; +_.delegateRemove = function delegateRemove_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); +} +; +_.delegateSet = function delegateSet_1(index_0, eClassifier){ + return $delegateSet_0(this, index_0, castTo(eClassifier, 138)); +} +; +_.canContainNull = function canContainNull_5(){ + return false; +} +; +_.createNotification = function createNotification_5(eventType, oldObject, newObject, index_0, wasSet){ + return null; +} +; +_.delegateBasicList = function delegateBasicList_1(){ + return new EOperationImpl$1$1(this); +} +; +_.delegateClear = function delegateClear_1(){ + $clear_13($getEGenericExceptions(this.this$01)); +} +; +_.delegateContains = function delegateContains_1(object){ + return $delegateContains_0(this, object); +} +; +_.delegateContainsAll = function delegateContainsAll_1(collection){ + var object, object$iterator; + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$delegateContains_0(this, object)) { + return false; + } + } + return true; +} +; +_.delegateEquals = function delegateEquals_1(object){ + var i, j, list; + if (instanceOf(object, 15)) { + list = castTo(object, 15); + if (list.size_1() == $getEGenericExceptions(this.this$01).size_0) { + for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { + if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { + return false; + } + } + return true; + } + } + return false; +} +; +_.delegateHashCode = function delegateHashCode_1(){ + var eGenericType, eGenericType$iterator, hashCode, object, result; + hashCode = 1; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + object = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + hashCode = 31 * hashCode + (!object?0:hashCode__I__devirtual$(object)); + } + return hashCode; +} +; +_.delegateIndexOf = function delegateIndexOf_1(object){ + var eGenericType, eGenericType$iterator, index_0, result; + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))) { + return index_0; + } + ++index_0; + } + return -1; +} +; +_.delegateIsEmpty = function delegateIsEmpty_1(){ + return $getEGenericExceptions(this.this$01).size_0 == 0; +} +; +_.delegateList_1 = function delegateList_3(){ + return null; +} +; +_.delegateSize = function delegateSize_1(){ + return $getEGenericExceptions(this.this$01).size_0; +} +; +_.delegateToArray = function delegateToArray_3(){ + var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; + size_0 = $getEGenericExceptions(this.this$01).size_0; + result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + result0[index_0++] = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + } + return result0; +} +; +_.delegateToArray_0 = function delegateToArray_4(array){ + var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; + size_0 = $getEGenericExceptions(this.this$01).size_0; + if (array.length < size_0) { + newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); + array = newArray; + } + array.length > size_0 && setCheck(array, size_0, null); + index_0 = 0; + for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + rawType = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + setCheck(array, index_0++, rawType); + } + return array; +} +; +_.delegateToString = function delegateToString_1(){ + var eGenericExceptions, i, result, size_0, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + eGenericExceptions = $getEGenericExceptions(this.this$01); + for (i = 0 , size_0 = $getEGenericExceptions(this.this$01).size_0; i < size_0;) { + $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericExceptions, i), 87).eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))); + ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.dispatchNotification = function dispatchNotification_4(notification){ +} +; +_.getFeatureID_0 = function getFeatureID_11(){ + return 13; +} +; +_.hasInstanceClass = function hasInstanceClass_2(){ + return true; +} +; +_.hasInverse = function hasInverse_5(){ + return false; +} +; +_.hasManyInverse = function hasManyInverse_2(){ + return false; +} +; +_.hasNavigableInverse = function hasNavigableInverse_3(){ + return false; +} +; +_.hasProxies = function hasProxies_2(){ + return true; +} +; +_.isContainment = function isContainment_5(){ + return false; +} +; +_.isEObject = function isEObject_3(){ + return true; +} +; +_.isInstance = function isInstance_5(object){ + return instanceOf(object, 138); +} +; +_.isSet_0 = function isSet_9(){ + return $isSetEExceptions(this.this$01); +} +; +_.isUnique = function isUnique_6(){ + return true; +} +; +_.useEquals = function useEquals_12(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1', 505); +function EOperationImpl$1$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1340, 1964, $intern_37, EOperationImpl$1$1); +_.listIterator_1 = function listIterator_31(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_77(){ + return $getEGenericExceptions(this.this$11.this$01).size_0; +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1/1', 1340); +function $isSet_0(this$static){ + var eGenericType, eGenericType$iterator; + for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { + eGenericType = castTo($doNext(eGenericType$iterator), 87); + if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { + return true; + } + } + return false; +} + +function $shadowAdd_0(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 3, 13, null, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowRemove_0(this$static, eGenericType, notifications){ + var notification, result; + notification = new ENotificationImpl_3(this$static.owner, 4, 13, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), null, $indexOf_6(this$static, eGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function $shadowSet_0(this$static, oldEGenericType, newEGenericType, notifications){ + var notification, result, result0; + notification = new ENotificationImpl_3(this$static.owner, 1, 13, (result0 = oldEGenericType.eRawType , result0?result0:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), (result = newEGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, oldEGenericType), false); + !notifications?(notifications = notification):notifications.add_5(notification); + return notifications; +} + +function EOperationImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 14); +} + +defineClass(1341, 545, $intern_154, EOperationImpl$2); +_.move = function move_19(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , EOPERATION__EEXCEPTIONS), valueOf_4(sourceIndex), (result = result0.eRawType , result?result:EJAVA_OBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_1(eGenericType, notifications){ + return $shadowAdd_0(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowRemove = function shadowRemove_1(eGenericType, notifications){ + return $shadowRemove_0(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowSet = function shadowSet_1(oldEGenericType, newEGenericType, notifications){ + return $shadowSet_0(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); +} +; +_.createNotification = function createNotification_6(eventType, oldObject, newObject, index_0, wasSet){ + switch (eventType) { + case 3: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); + } + + case 5: + { + return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); + } + + default:{ + return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); + } + + } +} +; +_.hasShadow = function hasShadow_1(){ + return true; +} +; +_.isSet_0 = function isSet_10(){ + return $isSet_0(this); +} +; +_.unset = function unset_6(){ + $clear_13(this); +} +; +var Lorg_eclipse_emf_ecore_impl_EOperationImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/2', 1341); +function EPackageImpl$1(this$0, val$factory){ + this.this$01 = this$0; + this.val$factory2 = val$factory; +} + +defineClass(498, 1, {1938:1, 498:1}, EPackageImpl$1); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/1', 498); +function EObjectContainmentWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(16, 85, $intern_154, EObjectContainmentWithInverseEList); +_.getInverseFeatureClass = function getInverseFeatureClass_0(){ + return this.dataClass; +} +; +_.getInverseFeatureID = function getInverseFeatureID_0(){ + return this.inverseFeatureID; +} +; +_.hasNavigableInverse = function hasNavigableInverse_4(){ + return true; +} +; +_.inverseFeatureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList', 16); +function EObjectContainmentWithInverseEList$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(353, 16, $intern_154, EObjectContainmentWithInverseEList$Resolving); +_.hasProxies = function hasProxies_3(){ + return true; +} +; +_.resolve = function resolve_7(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Resolving', 353); +function EPackageImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentWithInverseEList$Resolving.call(this, $anonymous0, $anonymous1, 5, 6); +} + +defineClass(298, 353, $intern_154, EPackageImpl$2); +_.didChange = function didChange_1(){ + this.this$01.eNameToEClassifierMap = null; +} +; +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/2', 298); +function EPackageImpl$3(){ +} + +defineClass(1228, 1, {}, EPackageImpl$3); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/3', 1228); +function $getEFactory(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = $get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 235)) { + result = castTo(ePackage, 235); + result.getNsURI() == null && undefined; + return result.getEFactoryInstance(); + } + else if (instanceOf(ePackage, 498)) { + ePackageDescriptor = castTo(ePackage, 1938); + result = ePackageDescriptor.val$factory2; + return result; + } + else { + return null; + } +} + +function $getEPackage_0(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = nsURI == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 235)) { + result = castTo(ePackage, 235); + result.getNsURI() == null && undefined; + return result; + } + else if (instanceOf(ePackage, 498)) { + ePackageDescriptor = castTo(ePackage, 1938); + result = ePackageDescriptor.this$01; + !!result && (result.nsURI == null?undefined:nsURI == null?$put_9(this$static.hashCodeMap, null, result):$put_10(this$static.stringMap, nsURI, result)); + return result; + } + else { + return null; + } +} + +function EPackageRegistryImpl(){ + HashMap.call(this); +} + +defineClass(718, 43, $intern_76, EPackageRegistryImpl); +_.containsKey = function containsKey_16(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +var Lorg_eclipse_emf_ecore_impl_EPackageRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageRegistryImpl', 718); +function $eBasicRemoveFromContainerFeature_10(this$static, msgs){ + var eClass, inverseFeature; + if (this$static.eFlags_0 >> 16 == 10) { + return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_emf_ecore_EOperation_2_classLit, msgs); + } + return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function EParameterImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(509, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 2017:1, 108:1, 472:1, 49:1, 97:1, 150:1, 509:1, 284:1, 114:1, 115:1}, EParameterImpl); +_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_11(msgs){ + return $eBasicRemoveFromContainerFeature_10(this, msgs); +} +; +_.eGet = function eGet_28(featureID, resolve, coreType){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID), resolve, coreType); +} +; +_.eInverseAdd_0 = function eInverseAdd_18(otherEnd, featureID, msgs){ + var eClass, eContainerFeatureID, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); + case 10: + !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_10(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); + return $eBasicSetContainer(this, otherEnd, 10, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); +} +; +_.eInverseRemove_0 = function eInverseRemove_21(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 9: + return $basicUnsetEGenericType(this, msgs); + case 10: + return $eBasicSetContainer(this, null, 10, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_27(featureID){ + var eClass, lower, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID)); +} +; +_.eStaticClass = function eStaticClass_27(){ + return $clinit_EcorePackage$Literals() , EPARAMETER; +} +; +var Lorg_eclipse_emf_ecore_impl_EParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EParameterImpl', 509); +function $basicGetEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType) { + eType = this$static.eType; + instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); + } + return this$static.eReferenceType; +} + +function $getEOpposite(this$static){ + var oldEOpposite; + if (!!this$static.eOpposite && (this$static.eOpposite.eFlags_0 & 64) != 0) { + oldEOpposite = this$static.eOpposite; + this$static.eOpposite = castTo($eResolveProxy(this$static, oldEOpposite), 18); + this$static.eOpposite != oldEOpposite && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 21, oldEOpposite, this$static.eOpposite)); + } + return this$static.eOpposite; +} + +function $getEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType || (this$static.eFlags & 1) == 0 && (this$static.eReferenceType.eFlags_0 & 64) != 0) { + eType = $getEType(this$static); + instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); + } + return this$static.eReferenceType; +} + +function $setContainment(this$static, value_0){ + $setContainmentGen(this$static, value_0); + instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 2); +} + +function $setContainmentGen(this$static, newContainment){ + var oldContainment; + oldContainment = (this$static.eFlags & $intern_134) != 0; + newContainment?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldContainment, newContainment)); +} + +function $setEOpposite(this$static, newEOpposite){ + var oldEOpposite; + oldEOpposite = this$static.eOpposite; + this$static.eOpposite = newEOpposite; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 21, oldEOpposite, this$static.eOpposite)); +} + +function $setResolveProxies(this$static, newResolveProxies){ + var oldResolveProxies; + oldResolveProxies = (this$static.eFlags & $intern_63) != 0; + newResolveProxies?(this$static.eFlags |= $intern_63):(this$static.eFlags &= -65537); + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 20, oldResolveProxies, newResolveProxies)); +} + +function EReferenceImpl(){ + EStructuralFeatureImpl.call(this); + this.eFlags |= $intern_63; +} + +defineClass(99, 449, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 18:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 99:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EReferenceImpl); +_.eGet = function eGet_29(featureID, resolve, coreType){ + var eClass, lower, theOpposite, upper; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; + case 3: + return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; + case 4: + return valueOf_4(this.lowerBound); + case 5: + return valueOf_4(this.upperBound); + case 6: + return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; + case 7: + return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; + case 8: + if (resolve) + return $getEType(this); + return this.eType; + case 9: + return this.eGenericType; + case 10: + return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; + case 16: + return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; + case 17: + return $getEContainingClass(this); + case 18: + return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; + case 19: + return $clinit_Boolean() , theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0?true:false; + case 20: + return $clinit_Boolean() , (this.eFlags & $intern_63) != 0?true:false; + case 21: + if (resolve) + return $getEOpposite(this); + return this.eOpposite; + case 22: + if (resolve) + return $getEReferenceType(this); + return $basicGetEReferenceType(this); + case 23: + return !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)) , this.eKeys; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_28(featureID){ + var eClass, lower, theOpposite, upper; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return (this.eFlags & 256) == 0; + case 3: + return (this.eFlags & 512) == 0; + case 4: + return this.lowerBound != 0; + case 5: + return this.upperBound != 1; + case 6: + return upper = this.upperBound , upper > 1 || upper == -1; + case 7: + return lower = this.lowerBound , lower >= 1; + case 8: + return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; + case 9: + return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); + case 10: + return (this.eFlags & $intern_137) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_134) != 0; + case 19: + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; + case 20: + return (this.eFlags & $intern_63) == 0; + case 21: + return !!this.eOpposite; + case 22: + return !!$basicGetEReferenceType(this); + case 23: + return !!this.eKeys && this.eKeys.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); +} +; +_.eSet = function eSet_26(featureID, newValue){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName_0(this, castToString(newValue)); + return; + case 2: + $setOrdered(this, $booleanValue(castToBoolean(newValue))); + return; + case 3: + $setUnique_2(this, $booleanValue(castToBoolean(newValue))); + return; + case 4: + $setLowerBound(this, castTo(newValue, 19).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, $booleanValue(castToBoolean(newValue))); + return; + case 11: + $setVolatile(this, $booleanValue(castToBoolean(newValue))); + return; + case 12: + $setTransient(this, $booleanValue(castToBoolean(newValue))); + return; + case 13: + $setDefaultValueLiteral(this, castToString(newValue)); + return; + case 15: + $setUnsettable(this, $booleanValue(castToBoolean(newValue))); + return; + case 16: + $setDerived(this, $booleanValue(castToBoolean(newValue))); + return; + case 18: + $setContainment(this, $booleanValue(castToBoolean(newValue))); + return; + case 20: + $setResolveProxies(this, $booleanValue(castToBoolean(newValue))); + return; + case 21: + $setEOpposite(this, castTo(newValue, 18)); + return; + case 23: + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $clear_13(this.eKeys); + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $addAll_9(this.eKeys, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_28(){ + return $clinit_EcorePackage$Literals() , EREFERENCE; +} +; +_.eUnset = function eUnset_26(featureID){ + var eClass, msgs; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); + $setName(this, null); + return; + case 2: + $setOrdered(this, true); + return; + case 3: + $setUnique_2(this, true); + return; + case 4: + $setLowerBound(this, 0); + return; + case 5: + $setUpperBound(this, 1); + return; + case 8: + $setEType(this, null); + return; + case 9: + msgs = $setEGenericType(this, null, null); + !!msgs && msgs.dispatch_0(); + return; + case 10: + $setChangeable(this, true); + return; + case 11: + $setVolatile(this, false); + return; + case 12: + $setTransient(this, false); + return; + case 13: + this.defaultValueFactory = null; + $setDefaultValueLiteralGen(this, null); + return; + case 15: + $setUnsettable(this, false); + return; + case 16: + $setDerived(this, false); + return; + case 18: + $setContainmentGen(this, false); + instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 2); + return; + case 20: + $setResolveProxies(this, true); + return; + case 21: + $setEOpposite(this, null); + return; + case 23: + !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); + $clear_13(this.eKeys); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); +} +; +_.freeze = function freeze_8(){ + $getEReferenceType(this); + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); + $getEType(this); + this.eFlags |= 1; +} +; +_.getEOpposite = function getEOpposite_0(){ + return $getEOpposite(this); +} +; +_.isContainer = function isContainer_0(){ + var theOpposite; + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; +} +; +_.isContainment = function isContainment_6(){ + return (this.eFlags & $intern_134) != 0; +} +; +_.isResolveProxies_0 = function isResolveProxies_1(){ + return (this.eFlags & $intern_63) != 0; +} +; +_.setEType = function setEType_1(newEType, msgs){ + this.eReferenceType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.toString_0 = function toString_153(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_29(this); + result = new StringBuffer_1($toString_29(this)); + result.string += ' (containment: '; + $append_4(result, (this.eFlags & $intern_134) != 0); + result.string += ', resolveProxies: '; + $append_4(result, (this.eFlags & $intern_63) != 0); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_impl_EReferenceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EReferenceImpl', 99); +function $setKey(this$static, key){ + $setTypedKeyGen(this$static, key == null?null:(checkCriticalNotNull(key) , key)); +} + +function $setTypedKey_0(this$static, newKey){ + $setTypedKeyGen(this$static, newKey == null?null:(checkCriticalNotNull(newKey) , newKey)); +} + +function $setTypedKeyGen(this$static, newKey){ + var oldKey; + oldKey = this$static.key; + this$static.key = newKey; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); +} + +function $setTypedValue_0(this$static, newValue){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = newValue; + (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); +} + +function $setValue_2(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + $setTypedValue_0(this$static, value_0); + return oldValue; +} + +function EStringToStringMapEntryImpl(){ +} + +defineClass(548, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 548:1, 114:1, 115:1}, EStringToStringMapEntryImpl); +_.equals_0 = function equals_196(other){ + return this === other; +} +; +_.getKey = function getKey_11(){ + return this.key; +} +; +_.getValue = function getValue_14(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_82(){ + return getHashCode_0(this); +} +; +_.setKey = function setKey_2(key){ + $setKey(this, castToString(key)); +} +; +_.setValue = function setValue_14(value_0){ + return $setValue_2(this, castToString(value_0)); +} +; +_.eGet = function eGet_30(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return this.key; + case 1: + return this.value_0; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_29(featureID){ + var eClass; + switch (featureID) { + case 0: + return this.key != null; + case 1: + return this.value_0 != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); +} +; +_.eSet = function eSet_27(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setTypedKey_0(this, castToString(newValue)); + return; + case 1: + $setTypedValue_0(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_29(){ + return $clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY; +} +; +_.eUnset = function eUnset_27(featureID){ + var eClass; + switch (featureID) { + case 0: + $setTypedKeyGen(this, null); + return; + case 1: + $setTypedValue_0(this, null); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); +} +; +_.getHash = function getHash_2(){ + var theKey; + if (this.hash == -1) { + theKey = this.key; + this.hash = theKey == null?0:getHashCode_1(theKey); + } + return this.hash; +} +; +_.setHash = function setHash_2(hash){ + this.hash = hash; +} +; +_.toString_0 = function toString_154(){ + var result; + if ((this.eFlags_0 & 64) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (key: '; + $append_3(result, this.key); + result.string += ', value: '; + $append_3(result, this.value_0); + result.string += ')'; + return result.string; +} +; +_.hash = -1; +_.key = null; +_.value_0 = null; +var Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStringToStringMapEntryImpl', 548); +var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry/Internal'); +function $validate_2(this$static, value_0){ + var valueClass; + if (value_0 != null && !this$static.eStructuralFeature.getEType().isInstance(value_0)) { + valueClass = instanceOf(value_0, 56)?castTo(value_0, 56).eClass_0().name_0:$getName(getClass__Ljava_lang_Class___devirtual$(value_0)); + throw toJs(new ClassCastException_0("The feature '" + this$static.eStructuralFeature.getName() + "'s type '" + this$static.eStructuralFeature.getEType().getName() + "' does not permit a value of type '" + valueClass + "'")); + } +} + +function EStructuralFeatureImpl$BasicFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(565, 1, $intern_159); +_.createEntry = function createEntry(value_0){ + return this.createEntry_0(castTo(value_0, 49)); +} +; +_.createEntry_0 = function createEntry_0(value_0){ + return this.createEntry(value_0); +} +; +_.equals_0 = function equals_197(that){ + var entry, value_0; + if (this === that) { + return true; + } + else if (instanceOf(that, 72)) { + entry = castTo(that, 72); + if (entry.getEStructuralFeature() == this.eStructuralFeature) { + value_0 = this.getValue(); + return value_0 == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue()); + } + else { + return false; + } + } + else { + return false; + } +} +; +_.getEStructuralFeature = function getEStructuralFeature_1(){ + return this.eStructuralFeature; +} +; +_.hashCode_1 = function hashCode_83(){ + var value_0; + value_0 = this.getValue(); + return hashCode__I__devirtual$(this.eStructuralFeature) ^ (value_0 == null?0:hashCode__I__devirtual$(value_0)); +} +; +_.toString_0 = function toString_155(){ + var eStructuralFeature, prefix; + eStructuralFeature = this.eStructuralFeature; + prefix = $getEPackage(eStructuralFeature.getEContainingClass()).getNsPrefix(); + eStructuralFeature.getName(); + return (prefix != null && prefix.length != 0?prefix + ':' + eStructuralFeature.getName():eStructuralFeature.getName()) + '=' + this.getValue(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$BasicFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/BasicFeatureMapEntry', 565); +function $inverseAdd(this$static, owner, otherEnd, featureID, notifications){ + var containmentFeatureID; + if (otherEnd) { + containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); + notifications = otherEnd.eInverseAdd(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); + } + return notifications; +} + +function $inverseRemove(this$static, owner, otherEnd, featureID, notifications){ + var containmentFeatureID; + if (otherEnd) { + containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); + notifications = otherEnd.eInverseRemove(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); + } + return notifications; +} + +function EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(776, 565, $intern_159, EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry); +_.createEntry_0 = function createEntry_1(value_0){ + return new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_15(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_3(owner, featureID, notifications){ + return $inverseAdd(this, owner, this.value_0, featureID, notifications); +} +; +_.inverseRemove_0 = function inverseRemove_3(owner, featureID, notifications){ + return $inverseRemove(this, owner, this.value_0, featureID, notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry', 776); +function EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(feature, featureMapFeature){ + this.feature = feature; + this.featureMapFeature = featureMapFeature; +} + +defineClass(1314, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator); +_.dynamicGet_0 = function dynamicGet_3(owner, settings, index_0, resolve, coreType){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.setting(this.feature).get_6(resolve); +} +; +_.dynamicInverseAdd = function dynamicInverseAdd(owner, settings, index_0, otherEnd, notifications){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.basicAdd_0(this.feature, otherEnd, notifications); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove(owner, settings, index_0, otherEnd, notifications){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.basicRemove_0(this.feature, otherEnd, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + return featureMap.setting(this.feature).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_3(owner, settings, index_0, newValue){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + featureMap.setting(this.feature).set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting(owner, settings, index_0){ + return castTo($eGet_0(owner, this.featureMapFeature), 215).setting(this.feature); +} +; +_.dynamicUnset_0 = function dynamicUnset_3(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + featureMap.setting(this.feature).unset(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator', 1314); +function $createDynamicSetting(this$static, owner){ + switch (this$static.style) { + case 0: + case 2: + case 4: + case 6: + case 42: + case 44: + case 46: + case 48: + case 8: + case 10: + case 12: + case 14: + case 16: + case 18: + case 20: + case 22: + case 24: + case 26: + case 28: + case 30: + case 32: + case 34: + case 36: + case 38: + return new EcoreEList$Dynamic(this$static.dynamicKind, this$static.dataClass, owner, this$static.feature); + case 1: + return new EObjectContainmentEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 43: + return new EObjectContainmentEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 3: + return new EObjectContainmentEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 45: + return new EObjectContainmentEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 41: + return new EcoreEMap(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 50: + return new EcoreEMap$Unsettable(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 5: + return new EObjectContainmentWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 47: + return new EObjectContainmentWithInverseEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 7: + return new EObjectContainmentWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 49: + return new EObjectContainmentWithInverseEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 9: + return new EDataTypeUniqueEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 11: + return new EDataTypeUniqueEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 13: + return new EDataTypeEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 15: + return new EDataTypeEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 17: + return new EObjectResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 19: + return new EObjectResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 21: + return new EObjectEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 23: + return new EObjectEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 25: + return new EObjectWithInverseResolvingEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 27: + return new EObjectWithInverseResolvingEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 29: + return new EObjectWithInverseEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 31: + return new EObjectWithInverseEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 33: + return new EObjectWithInverseResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 35: + return new EObjectWithInverseResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 37: + return new EObjectWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 39: + return new EObjectWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); + case 40: + return new BasicFeatureMap(owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + default:throw toJs(new RuntimeException_0('Unknown feature style: ' + this$static.style)); + } +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany(style, dataClass, feature){ + this.style = style; + this.dataClass = dataClass; + this.feature = feature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_0(style, dataClass, feature, inverseFeature){ + this.style = style; + this.dataClass = dataClass; + this.feature = feature; + this.inverseFeature = inverseFeature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_1(style, feature){ + this.style = style; + this.dataClass = Ljava_lang_Object_2_classLit; + this.dynamicKind = kind_0(feature); + this.feature = feature; +} + +function EStructuralFeatureImpl$InternalSettingDelegateMany_2(style, feature, inverseFeature){ + this.style = style; + this.dataClass = Ljava_lang_Object_2_classLit; + this.dynamicKind = kind_0(feature); + this.feature = feature; + this.inverseFeature = inverseFeature; +} + +defineClass(89, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateMany, EStructuralFeatureImpl$InternalSettingDelegateMany_0, EStructuralFeatureImpl$InternalSettingDelegateMany_1, EStructuralFeatureImpl$InternalSettingDelegateMany_2); +_.dynamicGet_0 = function dynamicGet_4(owner, settings, index_0, resolve, coreType){ + var result; + result = settings.dynamicGet(index_0); + result == null && settings.dynamicSet(index_0, result = $createDynamicSetting(this, owner)); + if (!coreType) { + switch (this.style) { + case 50: + case 41: + return castTo(result, 589).map_2(); + case 40: + return castTo(result, 215).getWrapper(); + } + } + return result; +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_0(owner, settings, index_0, otherEnd, notifications){ + var result, setting; + setting = settings.dynamicGet(index_0); + setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + result = castTo(setting, 69).basicAdd(otherEnd, notifications); + return result; +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_0(owner, settings, index_0, otherEnd, notifications){ + var setting; + setting = settings.dynamicGet(index_0); + setting != null && (notifications = castTo(setting, 69).basicRemove(otherEnd, notifications)); + return notifications; +} +; +_.dynamicIsSet = function dynamicIsSet_0(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null && castTo(setting, 76).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_4(owner, settings, index_0, newValue){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 76); + !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + setting.set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting_0(owner, settings, index_0){ + var result, setting; + setting = settings.dynamicGet(index_0); + setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + if (instanceOf(setting, 76)) { + return castTo(setting, 76); + } + else { + result = castTo(settings.dynamicGet(index_0), 15); + return new EStructuralFeatureImpl$SettingMany(result); + } +} +; +_.dynamicUnset_0 = function dynamicUnset_4(owner, settings, index_0){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 76); + !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); + setting.unset(); +} +; +_.dynamicKind = 0; +_.style = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateMany', 89); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle = emptyMethod; + NIL_0 = ($clinit_EStructuralFeature$Internal$DynamicValueHolder() , NIL); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingle(feature){ + this.feature = feature; +} + +defineClass(504, 1, {}); +_.dynamicInverseAdd = function dynamicInverseAdd_1(owner, settings, index_0, otherEnd, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_1(owner, settings, index_0, otherEnd, notifications){ + throw toJs(new UnsupportedOperationException); +} +; +_.dynamicSetting = function dynamicSetting_1(owner, settings, index_0){ + return new EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this, owner, settings, index_0); +} +; +var NIL_0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle', 504); +function EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this$1, val$owner, val$settings, val$index){ + this.this$11 = this$1; + this.val$owner2 = val$owner; + this.val$settings3 = val$settings; + this.val$index4 = val$index; +} + +defineClass(1331, 1, $intern_147, EStructuralFeatureImpl$InternalSettingDelegateSingle$1); +_.get_6 = function get_64(resolve){ + return this.this$11.dynamicGet_0(this.val$owner2, this.val$settings3, this.val$index4, resolve, true); +} +; +_.isSet_0 = function isSet_11(){ + return this.this$11.dynamicIsSet(this.val$owner2, this.val$settings3, this.val$index4); +} +; +_.set_1 = function set_35(newValue){ + this.this$11.dynamicSet_0(this.val$owner2, this.val$settings3, this.val$index4, newValue); +} +; +_.unset = function unset_7(){ + this.this$11.dynamicUnset_0(this.val$owner2, this.val$settings3, this.val$index4); +} +; +_.val$index4 = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle/1', 1331); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(769, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainer); +_.dynamicGet_0 = function dynamicGet_5(owner, settings, index_0, resolve, coreType){ + return eContainmentFeature(owner, owner.eInternalContainer(), owner.eContainerFeatureID_0()) == this.inverseFeature?this.isResolveProxies_0() && resolve?$eContainer(owner):owner.eInternalContainer():null; +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_2(owner, settings, index_0, otherEnd, notifications){ + var eContainerFeatureID, featureID; + !!owner.eInternalContainer() && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return owner.eBasicSetContainer_0(otherEnd, featureID, notifications); +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_2(owner, settings, index_0, otherEnd, notifications){ + var featureID; + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return owner.eBasicSetContainer_0(null, featureID, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet_1(owner, settings, index_0){ + var featureID; + featureID = $getFeatureID(owner.eClass_0(), this.feature); + return !!owner.eInternalContainer() && owner.eContainerFeatureID_0() == featureID; +} +; +_.dynamicSet_0 = function dynamicSet_5(owner, settings, index_0, newValue){ + var eContainer, eContainerFeatureID, featureID, internalEObject, notifications; + if (newValue != null && !$isInstance(this.eClass, newValue)) { + throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); + } + eContainer = owner.eInternalContainer(); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + if (maskUndefined(newValue) !== maskUndefined(eContainer) || owner.eContainerFeatureID_0() != featureID && newValue != null) { + if (isAncestor(owner, castTo(newValue, 56))) + throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + owner.toString_0())); + notifications = null; + !!eContainer && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); + internalEObject = castTo(newValue, 49); + !!internalEObject && (notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications)); + notifications = owner.eBasicSetContainer_0(internalEObject, featureID, notifications); + !!notifications && notifications.dispatch_0(); + } + else { + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_1(owner, 1, featureID, newValue, newValue)); + } +} +; +_.dynamicUnset_0 = function dynamicUnset_5(owner, settings, index_0){ + var eContainer, eContainerFeatureID, featureID, notifications; + eContainer = owner.eInternalContainer(); + if (eContainer) { + notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(null):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, null)); + featureID = $getFeatureID(owner.eClass_0(), this.feature); + notifications = owner.eBasicSetContainer_0(null, featureID, notifications); + !!notifications && notifications.dispatch_0(); + } + else { + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 1, this.feature, null, null)); + } +} +; +_.isResolveProxies_0 = function isResolveProxies_2(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainer_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer', 769); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleContainer.call(this, eClass, feature, inverseFeature); +} + +defineClass(1315, 769, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving); +_.isResolveProxies_0 = function isResolveProxies_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving', 1315); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData(defaultValue, intrinsicDefaultValue, feature){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.defaultValue = defaultValue; + this.intrinsicDefaultValue = intrinsicDefaultValue; + this.notificationCreator = ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , OBJECT_NOTIFICATION_CREATOR); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleData_0(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.defaultValue = defaultValue; + this.intrinsicDefaultValue = intrinsicDefaultValue; + this.notificationCreator = notificationCreator; +} + +defineClass(563, 504, {}); +_.dynamicGet_0 = function dynamicGet_6(owner, settings, index_0, resolve, coreType){ + var result; + return result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result; +} +; +_.dynamicIsSet = function dynamicIsSet_2(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null && (maskUndefined(setting) === maskUndefined(NIL_0) || !equals_Ljava_lang_Object__Z__devirtual$(setting, this.defaultValue)); +} +; +_.dynamicSet_0 = function dynamicSet_6(owner, settings, index_0, newValue){ + var oldValue, result; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); + if (newValue == null) { + if (this.intrinsicDefaultValue != null) { + settings.dynamicSet(index_0, null); + newValue = this.defaultValue; + } + else + this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, newValue)); + } + else { + if (newValue == null) { + this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + } +} +; +_.dynamicUnset_0 = function dynamicUnset_6(owner, settings, index_0){ + var oldValue, result; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); + settings.dynamicUnset(index_0); + $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, this.defaultValue)); + } + else { + settings.dynamicUnset(index_0); + } +} +; +_.validate_0 = function validate_2(object){ + throw toJs(new ClassCastException); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData', 563); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator = emptyMethod; + OBJECT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator; + BOOLEAN_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1; + BYTE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2; + CHAR_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3; + DOUBLE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4; + FLOAT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5; + INT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6; + LONG_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7; + SHORT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8; +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ +} + +defineClass($intern_160, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator); +_.createNotification_0 = function createNotification_7(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue); +} +; +_.createNotification_1 = function createNotification_8(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, wasSet); +} +; +var BOOLEAN_NOTIFICATION_CREATOR, BYTE_NOTIFICATION_CREATOR, CHAR_NOTIFICATION_CREATOR, DOUBLE_NOTIFICATION_CREATOR, FLOAT_NOTIFICATION_CREATOR, INT_NOTIFICATION_CREATOR, LONG_NOTIFICATION_CREATOR, OBJECT_NOTIFICATION_CREATOR, SHORT_NOTIFICATION_CREATOR; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator', $intern_160); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1(){ +} + +defineClass(1332, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1); +_.createNotification_0 = function createNotification_9(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_22(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue))); +} +; +_.createNotification_1 = function createNotification_10(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_23(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue)), wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1', 1332); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2(){ +} + +defineClass(1333, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2); +_.createNotification_0 = function createNotification_11(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_5(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0); +} +; +_.createNotification_1 = function createNotification_12(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_6(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2', 1333); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3(){ +} + +defineClass(1334, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3); +_.createNotification_0 = function createNotification_13(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_7(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0); +} +; +_.createNotification_1 = function createNotification_14(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_8(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3', 1334); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4(){ +} + +defineClass(1335, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4); +_.createNotification_0 = function createNotification_15(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_9(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue))); +} +; +_.createNotification_1 = function createNotification_16(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_10(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue)), wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4', 1335); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5(){ +} + +defineClass(1336, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5); +_.createNotification_0 = function createNotification_17(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_11(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0); +} +; +_.createNotification_1 = function createNotification_18(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_12(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5', 1336); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6(){ +} + +defineClass(1337, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6); +_.createNotification_0 = function createNotification_19(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_13(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0); +} +; +_.createNotification_1 = function createNotification_20(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_14(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6', 1337); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7(){ +} + +defineClass(1338, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7); +_.createNotification_0 = function createNotification_21(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_15(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0); +} +; +_.createNotification_1 = function createNotification_22(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_16(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7', 1338); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8(){ +} + +defineClass(1339, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8); +_.createNotification_0 = function createNotification_23(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_20(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0); +} +; +_.createNotification_1 = function createNotification_24(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_21(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0, wasSet); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8', 1339); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1317, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic); +_.validate_0 = function validate_3(object){ + if (!this.eDataType.isInstance(object)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic', 1317); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1318, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic); +_.validate_0 = function validate_4(object){ +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic', 1318); +defineClass(770, 563, {}); +_.dynamicIsSet = function dynamicIsSet_3(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null; +} +; +_.dynamicSet_0 = function dynamicSet_7(owner, settings, index_0, newValue){ + var oldIsSet, oldValue; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldIsSet = true; + oldValue = settings.dynamicGet(index_0); + if (oldValue == null) { + oldIsSet = false; + oldValue = this.defaultValue; + } + else + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + if (newValue == null) { + if (this.intrinsicDefaultValue != null) { + settings.dynamicSet(index_0, null); + newValue = this.defaultValue; + } + else { + settings.dynamicSet(index_0, NIL_0); + } + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + $eNotify(owner, this.notificationCreator.createNotification_1(owner, 1, this.feature, oldValue, newValue, !oldIsSet)); + } + else { + if (newValue == null) { + this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):settings.dynamicSet(index_0, NIL_0); + } + else { + this.validate_0(newValue); + settings.dynamicSet(index_0, newValue); + } + } +} +; +_.dynamicUnset_0 = function dynamicUnset_7(owner, settings, index_0){ + var oldIsSet, oldValue; + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + oldIsSet = true; + oldValue = settings.dynamicGet(index_0); + if (oldValue == null) { + oldIsSet = false; + oldValue = this.defaultValue; + } + else + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicUnset(index_0); + $eNotify(owner, this.notificationCreator.createNotification_1(owner, 2, this.feature, oldValue, this.defaultValue, oldIsSet)); + } + else { + settings.dynamicUnset(index_0); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable', 770); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1319, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic); +_.validate_0 = function validate_5(object){ + if (!this.eDataType.isInstance(object)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic', 1319); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1320, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic); +_.validate_0 = function validate_6(object){ +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic', 1320); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0(eClass, feature, inverseFeature){ + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(398, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObject); +_.dynamicGet_0 = function dynamicGet_7(owner, settings, index_0, resolve, coreType){ + var newEObject, notificationChain, oldEObject, resolvedEObject, result; + result = settings.dynamicGet(index_0); + if (this.isUnsettable() && maskUndefined(result) === maskUndefined(NIL_0)) { + return null; + } + else if (this.isResolveProxies_0() && resolve && result != null) { + oldEObject = castTo(result, 49); + if (oldEObject.eIsProxy()) { + resolvedEObject = $eResolveProxy(owner, oldEObject); + if (oldEObject != resolvedEObject) { + if (!$isInstance(this.eClass, resolvedEObject)) { + throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(resolvedEObject) + "' must be of type '" + this.eClass + "'")); + } + settings.dynamicSet(index_0, result = resolvedEObject); + if (this.isContainment()) { + newEObject = castTo(resolvedEObject, 49); + notificationChain = oldEObject.eInverseRemove(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(oldEObject.eClass_0(), this.inverseFeature), null, null); + !newEObject.eInternalContainer() && (notificationChain = newEObject.eInverseAdd(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(newEObject.eClass_0(), this.inverseFeature), null, notificationChain)); + !!notificationChain && notificationChain.dispatch_0(); + } + owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 9, this.feature, oldEObject, resolvedEObject)); + } + } + return result; + } + else { + return result; + } +} +; +_.dynamicInverseAdd = function dynamicInverseAdd_3(owner, settings, index_0, otherEnd, notifications){ + var internalEObject, oldValue; + oldValue = settings.dynamicGet(index_0); + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicSet(index_0, otherEnd); + if (this.hasInverse()) { + if (maskUndefined(oldValue) !== maskUndefined(otherEnd) && oldValue != null) { + internalEObject = castTo(oldValue, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + else + this.isContainment() && oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + !notifications && (notifications = new NotificationChainImpl_0(4)); + notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, otherEnd)); + } + return notifications; +} +; +_.dynamicInverseRemove = function dynamicInverseRemove_3(owner, settings, index_0, otherEnd, notifications){ + var oldValue; + oldValue = settings.dynamicGet(index_0); + maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + settings.dynamicUnset(index_0); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + !notifications && (notifications = new NotificationChainImpl_0(4)); + this.isUnsettable()?notifications.add_5(new ENotificationImpl_17(owner, 2, this.feature, oldValue, null)):notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, null)); + } + return notifications; +} +; +_.dynamicIsSet = function dynamicIsSet_4(owner, settings, index_0){ + var setting; + setting = settings.dynamicGet(index_0); + return setting != null; +} +; +_.dynamicSet_0 = function dynamicSet_8(owner, settings, index_0, newValue){ + var internalEObject, notification, notifications, oldIsSet, oldValue; + if (newValue != null && !$isInstance(this.eClass, newValue)) { + throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); + } + oldValue = settings.dynamicGet(index_0); + oldIsSet = oldValue != null; + this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + notifications = null; + if (this.hasInverse()) { + if (maskUndefined(oldValue) !== maskUndefined(newValue)) { + if (oldValue != null) { + internalEObject = castTo(oldValue, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + if (newValue != null) { + internalEObject = castTo(newValue, 49); + notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + } + else if (this.isContainment()) { + if (maskUndefined(oldValue) !== maskUndefined(newValue)) { + oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + newValue != null && (notifications = castTo(newValue, 49).eInverseAdd(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + } + } + newValue == null && this.isUnsettable()?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, newValue); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + notification = new ENotificationImpl_19(owner, 1, this.feature, oldValue, newValue, this.isUnsettable() && !oldIsSet); + if (!notifications) { + $eNotify(owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else + !!notifications && notifications.dispatch_0(); +} +; +_.dynamicUnset_0 = function dynamicUnset_8(owner, settings, index_0){ + var internalEObject, notification, notifications, oldIsSet, oldValue; + oldValue = settings.dynamicGet(index_0); + oldIsSet = oldValue != null; + this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); + notifications = null; + if (oldValue != null) { + if (this.hasInverse()) { + internalEObject = castTo(oldValue, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + else + this.isContainment() && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + } + settings.dynamicUnset(index_0); + if (owner.eBasicHasAdapters() && owner.eDeliver()) { + notification = new ENotificationImpl_19(owner, this.isUnsettable()?2:1, this.feature, oldValue, null, oldIsSet); + if (!notifications) { + $eNotify(owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else + !!notifications && notifications.dispatch_0(); +} +; +_.hasInverse = function hasInverse_6(){ + return false; +} +; +_.isContainment = function isContainment_7(){ + return false; +} +; +_.isResolveProxies_0 = function isResolveProxies_4(){ + return false; +} +; +_.isUnsettable = function isUnsettable_1(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject', 398); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(564, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment); +_.isContainment = function isContainment_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment', 564); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(1323, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving); +_.isResolveProxies_0 = function isResolveProxies_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving', 1323); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(772, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable); +_.isUnsettable = function isUnsettable_2(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable', 772); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable.call(this, eClass, feature); +} + +defineClass(1325, 772, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving); +_.isResolveProxies_0 = function isResolveProxies_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving', 1325); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(640, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse); +_.hasInverse = function hasInverse_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse', 640); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1324, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving); +_.isResolveProxies_0 = function isResolveProxies_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving', 1324); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(773, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable); +_.isUnsettable = function isUnsettable_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable', 773); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable.call(this, eClass, feature, inverseFeature); +} + +defineClass(1326, 773, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving); +_.isResolveProxies_0 = function isResolveProxies_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving', 1326); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(641, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving); +_.isResolveProxies_0 = function isResolveProxies_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving', 641); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving.call(this, eClass, feature); +} + +defineClass(1327, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable); +_.isUnsettable = function isUnsettable_4(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable', 1327); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(774, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse); +_.hasInverse = function hasInverse_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse', 774); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1328, 774, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable); +_.isUnsettable = function isUnsettable_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable', 1328); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(1321, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable); +_.isUnsettable = function isUnsettable_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable', 1321); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(771, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse); +_.hasInverse = function hasInverse_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse', 771); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1322, 771, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable); +_.isUnsettable = function isUnsettable_7(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable', 1322); +function $inverseAdd_0(this$static, owner, otherEnd, notifications){ + !!otherEnd && (notifications = otherEnd.eInverseAdd(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); + return notifications; +} + +function $inverseRemove_0(this$static, owner, otherEnd, notifications){ + !!otherEnd && (notifications = otherEnd.eInverseRemove(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); + return notifications; +} + +function EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$0, eStructuralFeature, value_0){ + this.this$01 = this$0; + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(775, 565, $intern_159, EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry); +_.createEntry_0 = function createEntry_2(value_0){ + return new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this.this$01, this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_16(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_4(owner, featureID, notifications){ + return $inverseAdd_0(this, owner, this.value_0, notifications); +} +; +_.inverseRemove_0 = function inverseRemove_4(owner, featureID, notifications){ + return $inverseRemove_0(this, owner, this.value_0, notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry', 775); +function EStructuralFeatureImpl$SettingMany(list){ + this.list = list; +} + +defineClass(1329, 1, $intern_147, EStructuralFeatureImpl$SettingMany); +_.get_6 = function get_65(resolve){ + return this.list; +} +; +_.isSet_0 = function isSet_12(){ + return instanceOf(this.list, 95)?castTo(this.list, 95).isSet_0():!this.list.isEmpty(); +} +; +_.set_1 = function set_36(newValue){ + this.list.clear_0(); + this.list.addAll(castTo(newValue, 15)); +} +; +_.unset = function unset_8(){ + instanceOf(this.list, 95)?castTo(this.list, 95).unset():this.list.clear_0(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SettingMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SettingMany', 1329); +function EStructuralFeatureImpl$SimpleContentFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; + this.eDataType = castTo($getEType(eStructuralFeature), 148); + this.eFactory = this.eDataType.getEPackage().getEFactoryInstance(); +} + +defineClass(1330, 565, $intern_159, EStructuralFeatureImpl$SimpleContentFeatureMapEntry); +_.createEntry = function createEntry_3(value_0){ + return new EStructuralFeatureImpl$SimpleFeatureMapEntry(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT), this.eFactory.convertToString(this.eDataType, value_0)); +} +; +_.getValue = function getValue_17(){ + return null; +} +; +_.inverseAdd_0 = function inverseAdd_5(owner, featureID, notifications){ + return notifications; +} +; +_.inverseRemove_0 = function inverseRemove_5(owner, featureID, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleContentFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleContentFeatureMapEntry', 1330); +function EStructuralFeatureImpl$SimpleFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(642, 565, $intern_159, EStructuralFeatureImpl$SimpleFeatureMapEntry); +_.createEntry = function createEntry_4(value_0){ + return new EStructuralFeatureImpl$SimpleFeatureMapEntry(this.eStructuralFeature, value_0); +} +; +_.getValue = function getValue_18(){ + return this.value_0; +} +; +_.inverseAdd_0 = function inverseAdd_6(owner, featureID, notifications){ + return notifications; +} +; +_.inverseRemove_0 = function inverseRemove_6(owner, featureID, notifications){ + return notifications; +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleFeatureMapEntry', 642); +function ESuperAdapter$1(){ +} + +defineClass(391, 497, $intern_138, ESuperAdapter$1); +_.newData = function newData_12(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, capacity, 0, 1); +} +; +_.useEquals = function useEquals_13(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_impl_ESuperAdapter$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter/1', 391); +function $getEGenericTypes(this$static){ + !this$static.eGenericTypes && (this$static.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)); + return this$static.eGenericTypes; +} + +function ETypeParameterImpl(){ +} + +defineClass(444, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 836:1, 49:1, 97:1, 150:1, 444:1, 114:1, 115:1}, ETypeParameterImpl); +_.eGet = function eGet_31(featureID, resolve, coreType){ + var eClass; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; + case 1: + return this.name_0; + case 2: + return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , this.eBounds; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_22(otherEnd, featureID, msgs){ + var eClass, feature; + switch (featureID) { + case 0: + return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); + case 2: + return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , $basicRemove_0(this.eBounds, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ETYPE_PARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_30(featureID){ + var eClass; + switch (featureID) { + case 0: + return !!this.eAnnotations && this.eAnnotations.size_0 != 0; + case 1: + return this.name_0 != null; + case 2: + return !!this.eBounds && this.eBounds.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +_.eSet = function eSet_28(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $addAll_9(this.eAnnotations, castTo(newValue, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $clear_13(this.eBounds); + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $addAll_9(this.eBounds, castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_30(){ + return $clinit_EcorePackage$Literals() , ETYPE_PARAMETER; +} +; +_.eUnset = function eUnset_28(featureID){ + var eClass; + switch (featureID) { + case 0: + !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); + $clear_13(this.eAnnotations); + return; + case 1: + $setName(this, null); + return; + case 2: + !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); + $clear_13(this.eBounds); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl', 444); +function $inverseAdd_1(this$static, object, notifications){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; + notifications = (internalEObject = object , $eInverseAdd(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); + eGenericTypes = $getEGenericTypes(this$static.this$01); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); + } + return notifications; +} + +function $inverseRemove_1(this$static, object, notifications){ + var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; + notifications = (internalEObject = object , $eInverseRemove(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); + eGenericTypes = $getEGenericTypes(this$static.this$01); + for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { + eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); + } + return notifications; +} + +function ETypeParameterImpl$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, $anonymous0, $anonymous1, 2); +} + +defineClass(445, 85, $intern_154, ETypeParameterImpl$1); +_.inverseAdd = function inverseAdd_7(object, notifications){ + return $inverseAdd_1(this, castTo(object, 87), notifications); +} +; +_.inverseRemove = function inverseRemove_7(object, notifications){ + return $inverseRemove_1(this, castTo(object, 87), notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/1', 445); +function ETypeParameterImpl$2(){ + HashMap.call(this); +} + +defineClass(634, 43, $intern_76, ETypeParameterImpl$2); +_.keySet_0 = function keySet_19(){ + return new ETypeParameterImpl$2$1(this); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2', 634); +function $add_30(this$static, eGenericType){ + return $put_6(this$static.this$11, eGenericType, '') == null; +} + +function $remove_42(this$static, object){ + if ($containsKey_3(this$static.this$11, object)) { + $remove_6(this$static.this$11, object); + return true; + } + else { + return false; + } +} + +function ETypeParameterImpl$2$1(this$1){ + this.this$11 = this$1; +} + +defineClass(556, $intern_9, $intern_10, ETypeParameterImpl$2$1); +_.add_2 = function add_65(eGenericType){ + return $add_30(this, castTo(eGenericType, 87)); +} +; +_.addAll = function addAll_34(eGenericTypes){ + var eGenericType, eGenericType$iterator, result; + result = false; + for (eGenericType$iterator = eGenericTypes.iterator_0(); eGenericType$iterator.hasNext_0();) { + eGenericType = castTo(eGenericType$iterator.next_1(), 87); + $put_6(this.this$11, eGenericType, '') == null && (result = true); + } + return result; +} +; +_.clear_0 = function clear_65(){ + $reset(this.this$11); +} +; +_.contains = function contains_65(object){ + return $containsKey_3(this.this$11, object); +} +; +_.iterator_0 = function iterator_89(){ + var delegateIterator; + return delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator); +} +; +_.remove_1 = function remove_126(object){ + return $remove_42(this, object); +} +; +_.size_1 = function size_78(){ + return $size_2(this.this$11); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1', 556); +function ETypeParameterImpl$2$1$1(val$delegateIterator){ + this.val$delegateIterator2 = val$delegateIterator; +} + +defineClass(557, 1, $intern_6, ETypeParameterImpl$2$1$1); +_.forEachRemaining = function forEachRemaining_58(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_48(){ + return castTo($next_4(this.val$delegateIterator2).getKey(), 87); +} +; +_.hasNext_0 = function hasNext_47(){ + return this.val$delegateIterator2.hasNext; +} +; +_.remove = function remove_127(){ + $remove_7(this.val$delegateIterator2); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1/1', 557); +function EValidatorRegistryImpl(){ + HashMap.call(this); +} + +defineClass(1276, 43, $intern_76, EValidatorRegistryImpl); +_.containsKey = function containsKey_17(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +_.get_3 = function get_66(key){ + var eValidator, eValidatorDescriptor; + eValidator = instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); + if (instanceOf(eValidator, 837)) { + eValidatorDescriptor = castTo(eValidator, 837); + eValidator = eValidatorDescriptor.getEValidator(); + $put_6(this, castTo(key, 235), eValidator); + return eValidator; + } + else + return eValidator != null?eValidator:key == null?($clinit_EObjectValidator() , INSTANCE_9):null; +} +; +var Lorg_eclipse_emf_ecore_impl_EValidatorRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EValidatorRegistryImpl', 1276); +function $booleanValueOf(initialValue){ + if ($equalsIgnoreCase('true', initialValue)) { + return $clinit_Boolean() , TRUE_0; + } + else if ($equalsIgnoreCase('false', initialValue)) { + return $clinit_Boolean() , FALSE_0; + } + else { + throw toJs(new IllegalArgumentException_0('Expecting true or false')); + } +} + +function $convertEByteArrayToString(instanceValue){ + var bytes; + if (instanceValue == null) { + return null; + } + else { + bytes = castTo(instanceValue, 190); + return $bytesToHexString(bytes, bytes.length); + } +} + +function $convertECharToString(instanceValue){ + if (instanceOf(instanceValue, 172)) { + return '' + castTo(instanceValue, 172).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertECharacterObjectToString(instanceValue){ + if (instanceOf(instanceValue, 172)) { + return '' + castTo(instanceValue, 172).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $createECharFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_3(charValue); +} + +function $createECharacterObjectFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_3(charValue); +} + +function $createEDateFromString(initialValue){ + var exception, i, parseException; + if (initialValue == null) { + return null; + } + exception = null; + for (i = 0; i < EDATE_FORMATS.length; ++i) { + try { + return $parse_2(EDATE_FORMATS[i], initialValue); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 32)) { + parseException = $e0; + exception = parseException; + } + else + throw toJs($e0); + } + } + throw toJs(new WrappedException(exception)); +} + +function EcoreFactoryImpl(){ +} + +function init_3(){ + $clinit_EFactoryImpl(); + var exception, theEcoreFactory; + try { + theEcoreFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1941); + if (theEcoreFactory) { + return theEcoreFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new EcoreFactoryImpl; +} + +defineClass(1313, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 1941:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EcoreFactoryImpl); +_.convertToString = function convertToString_1(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 21: + case 22: + case 23: + case 24: + case 26: + case 31: + case 32: + case 37: + case 38: + case 39: + case 40: + case 43: + case 44: + case 48: + case 49: + case 20: + return instanceValue == null?null:toString_40(instanceValue); + case 25: + return $convertEByteArrayToString(instanceValue); + case 27: + return $convertECharToString(instanceValue); + case 28: + return $convertECharacterObjectToString(instanceValue); + case 29: + return instanceValue == null?null:$format_0(EDATE_FORMATS[0], castTo(instanceValue, 199)); + case 41: + return instanceValue == null?'':$getName(castTo(instanceValue, 290)); + case 42: + return toString_40(instanceValue); + case 50: + return castToString(instanceValue); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_42(eClass0){ + var eAnnotation, eAttribute, eClass, eDataType, eEnum, eEnumLiteral, eFactory, eGenericType, eObject, eOperation, ePackage, ePackage0, eParameter, eReference, eStringToStringMapEntry, eTypeParameter; + switch (eClass0.metaObjectID == -1 && (eClass0.metaObjectID = (ePackage0 = $getEPackage(eClass0) , ePackage0?$indexOf_6(ePackage0.getEClassifiers(), eClass0):-1)) , eClass0.metaObjectID) { + case 0: + return eAttribute = new EAttributeImpl , eAttribute; + case 1: + return eAnnotation = new EAnnotationImpl , eAnnotation; + case 2: + return eClass = new EClassImpl , eClass; + case 4: + return eDataType = new EDataTypeImpl , eDataType; + case 5: + return eEnum = new EEnumImpl , eEnum; + case 6: + return eEnumLiteral = new EEnumLiteralImpl , eEnumLiteral; + case 7: + return eFactory = new EFactoryImpl , eFactory; + case 10: + return eObject = new EObjectImpl , eObject; + case 11: + return eOperation = new EOperationImpl , eOperation; + case 12: + return ePackage = new EPackageImpl , ePackage; + case 13: + return eParameter = new EParameterImpl , eParameter; + case 14: + return eReference = new EReferenceImpl , eReference; + case 17: + return eStringToStringMapEntry = new EStringToStringMapEntryImpl , eStringToStringMapEntry; + case 18: + return eGenericType = new EGenericTypeImpl , eGenericType; + case 19: + return eTypeParameter = new ETypeParameterImpl , eTypeParameter; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass0.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_1(eDataType, initialValue){ + switch (eDataType.getClassifierID()) { + case 20: + return initialValue == null?null:new BigDecimal_0(initialValue); + case 21: + return initialValue == null?null:new BigInteger_4(initialValue); + case 23: + case 22: + return initialValue == null?null:$booleanValueOf(initialValue); + case 26: + case 24: + return initialValue == null?null:valueOf_2(__parseAndValidateInt(initialValue, -128, 127) << 24 >> 24); + case 25: + return $hexStringToBytes(initialValue); + case 27: + return $createECharFromString(initialValue); + case 28: + return $createECharacterObjectFromString(initialValue); + case 29: + return $createEDateFromString(initialValue); + case 32: + case 31: + return initialValue == null?null:__parseAndValidateDouble(initialValue); + case 38: + case 37: + return initialValue == null?null:new Float_0(initialValue); + case 40: + case 39: + return initialValue == null?null:valueOf_4(__parseAndValidateInt(initialValue, $intern_42, $intern_0)); + case 41: + return null; + case 42: + return initialValue == null?null:null; + case 44: + case 43: + return initialValue == null?null:valueOf_5(__parseAndValidateLong(initialValue)); + case 49: + case 48: + return initialValue == null?null:valueOf_6(__parseAndValidateInt(initialValue, $intern_161, 32767) << 16 >> 16); + case 50: + return initialValue; + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var Lorg_eclipse_emf_ecore_impl_EcoreFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcoreFactoryImpl', 1313); +function $clinit_EcorePackageImpl(){ + $clinit_EcorePackageImpl = emptyMethod; + eGenericTypes_0 = new ArrayList; +} + +function $$init_12(this$static){ + this$static.eAttributeEClass = null; + this$static.eAnnotationEClass = null; + this$static.eClassEClass = null; + this$static.eDataTypeEClass = null; + this$static.eEnumEClass = null; + this$static.eEnumLiteralEClass = null; + this$static.eFactoryEClass = null; + this$static.eClassifierEClass = null; + this$static.eModelElementEClass = null; + this$static.eNamedElementEClass = null; + this$static.eObjectEClass = null; + this$static.eOperationEClass = null; + this$static.ePackageEClass = null; + this$static.eParameterEClass = null; + this$static.eReferenceEClass = null; + this$static.eStructuralFeatureEClass = null; + this$static.eTypedElementEClass = null; + this$static.eStringToStringMapEntryEClass = null; + this$static.eGenericTypeEClass = null; + this$static.eTypeParameterEClass = null; + this$static.eBigDecimalEDataType = null; + this$static.eBigIntegerEDataType = null; + this$static.eBooleanObjectEDataType = null; + this$static.eCharacterObjectEDataType = null; + this$static.eDateEDataType = null; + this$static.eDiagnosticChainEDataType = null; + this$static.eDoubleObjectEDataType = null; + this$static.eFloatObjectEDataType = null; + this$static.eIntegerObjectEDataType = null; + this$static.eBooleanEDataType = null; + this$static.eByteObjectEDataType = null; + this$static.eByteEDataType = null; + this$static.eByteArrayEDataType = null; + this$static.eCharEDataType = null; + this$static.eDoubleEDataType = null; + this$static.eFloatEDataType = null; + this$static.eIntEDataType = null; + this$static.eJavaClassEDataType = null; + this$static.eJavaObjectEDataType = null; + this$static.eLongObjectEDataType = null; + this$static.eMapEDataType = null; + this$static.eShortObjectEDataType = null; + this$static.eLongEDataType = null; + this$static.eShortEDataType = null; + this$static.eTreeIteratorEDataType = null; + this$static.eInvocationTargetExceptionEDataType = null; + this$static.eFeatureMapEntryEDataType = null; + this$static.eEnumeratorEDataType = null; + this$static.eFeatureMapEDataType = null; + this$static.eStringEDataType = null; + this$static.eeListEDataType = null; + this$static.eResourceEDataType = null; + this$static.eResourceSetEDataType = null; + this$static.isCreated = false; + this$static.isInitialized = false; +} + +function $createEGenericType_1(){ + var eGenericType, eGenericType0, eGenericType1; + eGenericType0 = (eGenericType1 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType1); + $add_3(eGenericTypes_0, eGenericType0); + return eGenericType0; +} + +function $createEcoreAnnotations(this$static){ + $addAnnotation(this$static.eAttributeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentTransient'])); + $addAnnotation(this$static.eAnnotationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedSourceURI'])); + $addAnnotation(this$static.eClassEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures'])); + $addAnnotation(this$static.eClassifierEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedInstanceTypeName UniqueTypeParameterNames'])); + $addAnnotation(this$static.eEnumEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueEnumeratorNames UniqueEnumeratorLiterals'])); + $addAnnotation(this$static.eNamedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedName'])); + $addAnnotation(this$static.eOperationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid'])); + $addAnnotation(this$static.ePackageEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs'])); + $addAnnotation(this$static.eReferenceEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer'])); + $addAnnotation(this$static.eStructuralFeatureEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidDefaultValueLiteral'])); + $addAnnotation(this$static.eTypedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidLowerBound ValidUpperBound ConsistentBounds ValidType'])); + $addAnnotation(this$static.eGenericTypeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentType ConsistentBounds ConsistentArguments'])); +} + +function $createExtendedMetaDataAnnotations(this$static){ + $addAnnotation(this$static.eBigDecimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#decimal'])); + $addAnnotation(this$static.eBigIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#integer'])); + $addAnnotation(this$static.eBooleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#boolean'])); + $addAnnotation(this$static.eBooleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EBoolean', 'name', 'EBoolean:Object'])); + $addAnnotation(this$static.eByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#byte'])); + $addAnnotation(this$static.eByteArrayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#hexBinary'])); + $addAnnotation(this$static.eByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EByte', 'name', 'EByte:Object'])); + $addAnnotation(this$static.eCharacterObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EChar', 'name', 'EChar:Object'])); + $addAnnotation(this$static.eDoubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#double'])); + $addAnnotation(this$static.eDoubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EDouble', 'name', 'EDouble:Object'])); + $addAnnotation(this$static.eFloatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#float'])); + $addAnnotation(this$static.eFloatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EFloat', 'name', 'EFloat:Object'])); + $addAnnotation(this$static.eIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#int'])); + $addAnnotation(this$static.eIntegerObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EInt', 'name', 'EInt:Object'])); + $addAnnotation(this$static.eLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#long'])); + $addAnnotation(this$static.eLongObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'ELong', 'name', 'ELong:Object'])); + $addAnnotation(this$static.eShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#short'])); + $addAnnotation(this$static.eShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EShort', 'name', 'EShort:Object'])); + $addAnnotation(this$static.eStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#string'])); +} + +function $createPackageContents_0(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.eAttributeEClass = $createEClass(this$static, 0); + $createEAttribute(this$static.eAttributeEClass, 18); + $createEReference(this$static.eAttributeEClass, 19); + this$static.eAnnotationEClass = $createEClass(this$static, 1); + $createEAttribute(this$static.eAnnotationEClass, 1); + $createEReference(this$static.eAnnotationEClass, 2); + $createEReference(this$static.eAnnotationEClass, 3); + $createEReference(this$static.eAnnotationEClass, 4); + $createEReference(this$static.eAnnotationEClass, 5); + this$static.eClassEClass = $createEClass(this$static, 2); + $createEAttribute(this$static.eClassEClass, 8); + $createEAttribute(this$static.eClassEClass, 9); + $createEReference(this$static.eClassEClass, 10); + $createEReference(this$static.eClassEClass, 11); + $createEReference(this$static.eClassEClass, 12); + $createEReference(this$static.eClassEClass, 13); + $createEReference(this$static.eClassEClass, 14); + $createEReference(this$static.eClassEClass, 15); + $createEReference(this$static.eClassEClass, 16); + $createEReference(this$static.eClassEClass, 17); + $createEReference(this$static.eClassEClass, 18); + $createEReference(this$static.eClassEClass, 19); + $createEReference(this$static.eClassEClass, 20); + $createEReference(this$static.eClassEClass, 21); + $createEReference(this$static.eClassEClass, 22); + $createEReference(this$static.eClassEClass, 23); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + $createEOperation(this$static.eClassEClass); + this$static.eClassifierEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.eClassifierEClass, 2); + $createEAttribute(this$static.eClassifierEClass, 3); + $createEAttribute(this$static.eClassifierEClass, 4); + $createEAttribute(this$static.eClassifierEClass, 5); + $createEReference(this$static.eClassifierEClass, 6); + $createEReference(this$static.eClassifierEClass, 7); + $createEOperation(this$static.eClassifierEClass); + $createEOperation(this$static.eClassifierEClass); + this$static.eDataTypeEClass = $createEClass(this$static, 4); + $createEAttribute(this$static.eDataTypeEClass, 8); + this$static.eEnumEClass = $createEClass(this$static, 5); + $createEReference(this$static.eEnumEClass, 9); + $createEOperation(this$static.eEnumEClass); + $createEOperation(this$static.eEnumEClass); + $createEOperation(this$static.eEnumEClass); + this$static.eEnumLiteralEClass = $createEClass(this$static, 6); + $createEAttribute(this$static.eEnumLiteralEClass, 2); + $createEAttribute(this$static.eEnumLiteralEClass, 3); + $createEAttribute(this$static.eEnumLiteralEClass, 4); + $createEReference(this$static.eEnumLiteralEClass, 5); + this$static.eFactoryEClass = $createEClass(this$static, 7); + $createEReference(this$static.eFactoryEClass, 1); + $createEOperation(this$static.eFactoryEClass); + $createEOperation(this$static.eFactoryEClass); + $createEOperation(this$static.eFactoryEClass); + this$static.eModelElementEClass = $createEClass(this$static, 8); + $createEReference(this$static.eModelElementEClass, 0); + $createEOperation(this$static.eModelElementEClass); + this$static.eNamedElementEClass = $createEClass(this$static, 9); + $createEAttribute(this$static.eNamedElementEClass, 1); + this$static.eObjectEClass = $createEClass(this$static, 10); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + $createEOperation(this$static.eObjectEClass); + this$static.eOperationEClass = $createEClass(this$static, 11); + $createEReference(this$static.eOperationEClass, 10); + $createEReference(this$static.eOperationEClass, 11); + $createEReference(this$static.eOperationEClass, 12); + $createEReference(this$static.eOperationEClass, 13); + $createEReference(this$static.eOperationEClass, 14); + $createEOperation(this$static.eOperationEClass); + $createEOperation(this$static.eOperationEClass); + this$static.ePackageEClass = $createEClass(this$static, 12); + $createEAttribute(this$static.ePackageEClass, 2); + $createEAttribute(this$static.ePackageEClass, 3); + $createEReference(this$static.ePackageEClass, 4); + $createEReference(this$static.ePackageEClass, 5); + $createEReference(this$static.ePackageEClass, 6); + $createEReference(this$static.ePackageEClass, 7); + $createEOperation(this$static.ePackageEClass); + this$static.eParameterEClass = $createEClass(this$static, 13); + $createEReference(this$static.eParameterEClass, 10); + this$static.eReferenceEClass = $createEClass(this$static, 14); + $createEAttribute(this$static.eReferenceEClass, 18); + $createEAttribute(this$static.eReferenceEClass, 19); + $createEAttribute(this$static.eReferenceEClass, 20); + $createEReference(this$static.eReferenceEClass, 21); + $createEReference(this$static.eReferenceEClass, 22); + $createEReference(this$static.eReferenceEClass, 23); + this$static.eStructuralFeatureEClass = $createEClass(this$static, 15); + $createEAttribute(this$static.eStructuralFeatureEClass, 10); + $createEAttribute(this$static.eStructuralFeatureEClass, 11); + $createEAttribute(this$static.eStructuralFeatureEClass, 12); + $createEAttribute(this$static.eStructuralFeatureEClass, 13); + $createEAttribute(this$static.eStructuralFeatureEClass, 14); + $createEAttribute(this$static.eStructuralFeatureEClass, 15); + $createEAttribute(this$static.eStructuralFeatureEClass, 16); + $createEReference(this$static.eStructuralFeatureEClass, 17); + $createEOperation(this$static.eStructuralFeatureEClass); + $createEOperation(this$static.eStructuralFeatureEClass); + this$static.eTypedElementEClass = $createEClass(this$static, 16); + $createEAttribute(this$static.eTypedElementEClass, 2); + $createEAttribute(this$static.eTypedElementEClass, 3); + $createEAttribute(this$static.eTypedElementEClass, 4); + $createEAttribute(this$static.eTypedElementEClass, 5); + $createEAttribute(this$static.eTypedElementEClass, 6); + $createEAttribute(this$static.eTypedElementEClass, 7); + $createEReference(this$static.eTypedElementEClass, 8); + $createEReference(this$static.eTypedElementEClass, 9); + this$static.eStringToStringMapEntryEClass = $createEClass(this$static, 17); + $createEAttribute(this$static.eStringToStringMapEntryEClass, 0); + $createEAttribute(this$static.eStringToStringMapEntryEClass, 1); + this$static.eGenericTypeEClass = $createEClass(this$static, 18); + $createEReference(this$static.eGenericTypeEClass, 0); + $createEReference(this$static.eGenericTypeEClass, 1); + $createEReference(this$static.eGenericTypeEClass, 2); + $createEReference(this$static.eGenericTypeEClass, 3); + $createEReference(this$static.eGenericTypeEClass, 4); + $createEReference(this$static.eGenericTypeEClass, 5); + $createEOperation(this$static.eGenericTypeEClass); + this$static.eTypeParameterEClass = $createEClass(this$static, 19); + $createEReference(this$static.eTypeParameterEClass, 2); + this$static.eBigDecimalEDataType = $createEDataType(this$static, 20); + this$static.eBigIntegerEDataType = $createEDataType(this$static, 21); + this$static.eBooleanEDataType = $createEDataType(this$static, 22); + this$static.eBooleanObjectEDataType = $createEDataType(this$static, 23); + this$static.eByteEDataType = $createEDataType(this$static, 24); + this$static.eByteArrayEDataType = $createEDataType(this$static, 25); + this$static.eByteObjectEDataType = $createEDataType(this$static, 26); + this$static.eCharEDataType = $createEDataType(this$static, 27); + this$static.eCharacterObjectEDataType = $createEDataType(this$static, 28); + this$static.eDateEDataType = $createEDataType(this$static, 29); + this$static.eDiagnosticChainEDataType = $createEDataType(this$static, 30); + this$static.eDoubleEDataType = $createEDataType(this$static, 31); + this$static.eDoubleObjectEDataType = $createEDataType(this$static, 32); + this$static.eeListEDataType = $createEDataType(this$static, 33); + this$static.eEnumeratorEDataType = $createEDataType(this$static, 34); + this$static.eFeatureMapEDataType = $createEDataType(this$static, 35); + this$static.eFeatureMapEntryEDataType = $createEDataType(this$static, 36); + this$static.eFloatEDataType = $createEDataType(this$static, 37); + this$static.eFloatObjectEDataType = $createEDataType(this$static, 38); + this$static.eIntEDataType = $createEDataType(this$static, 39); + this$static.eIntegerObjectEDataType = $createEDataType(this$static, 40); + this$static.eJavaClassEDataType = $createEDataType(this$static, 41); + this$static.eJavaObjectEDataType = $createEDataType(this$static, 42); + this$static.eLongEDataType = $createEDataType(this$static, 43); + this$static.eLongObjectEDataType = $createEDataType(this$static, 44); + this$static.eMapEDataType = $createEDataType(this$static, 45); + this$static.eResourceEDataType = $createEDataType(this$static, 46); + this$static.eResourceSetEDataType = $createEDataType(this$static, 47); + this$static.eShortEDataType = $createEDataType(this$static, 48); + this$static.eShortObjectEDataType = $createEDataType(this$static, 49); + this$static.eStringEDataType = $createEDataType(this$static, 50); + this$static.eTreeIteratorEDataType = $createEDataType(this$static, 51); + this$static.eInvocationTargetExceptionEDataType = $createEDataType(this$static, 52); +} + +function $initializePackageContents_0(this$static){ + var g1, g2, msgs, msgs0, msgs1, msgs2, op; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'ecore'); + $setNsPrefix(this$static, 'ecore'); + $setNsURI(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); + $addETypeParameter(this$static.eeListEDataType, 'E'); + $addETypeParameter(this$static.eJavaClassEDataType, 'T'); + $addETypeParameter(this$static.eMapEDataType, 'K'); + $addETypeParameter(this$static.eMapEDataType, 'V'); + $addETypeParameter(this$static.eTreeIteratorEDataType, 'E'); + $add_21($getESuperTypes(this$static.eAttributeEClass), this$static.eStructuralFeatureEClass); + $add_21($getESuperTypes(this$static.eAnnotationEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eClassEClass), this$static.eClassifierEClass); + $add_21($getESuperTypes(this$static.eClassifierEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eDataTypeEClass), this$static.eClassifierEClass); + $add_21($getESuperTypes(this$static.eEnumEClass), this$static.eDataTypeEClass); + $add_21($getESuperTypes(this$static.eEnumLiteralEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eFactoryEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eNamedElementEClass), this$static.eModelElementEClass); + $add_21($getESuperTypes(this$static.eOperationEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.ePackageEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eParameterEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.eReferenceEClass), this$static.eStructuralFeatureEClass); + $add_21($getESuperTypes(this$static.eStructuralFeatureEClass), this$static.eTypedElementEClass); + $add_21($getESuperTypes(this$static.eTypedElementEClass), this$static.eNamedElementEClass); + $add_21($getESuperTypes(this$static.eTypeParameterEClass), this$static.eNamedElementEClass); + $initEClass(this$static.eAttributeEClass, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, 'EAttribute', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 0), 34), this$static.eBooleanEDataType, 'iD', null, 0, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 1), 18), this$static.eDataTypeEClass, null, 'eAttributeType', 1, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, true, true, false, false, true, false, true); + $initEClass(this$static.eAnnotationEClass, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, 'EAnnotation', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 0), 34), this$static.eStringEDataType, 'source', null, 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 1), 18), this$static.eStringToStringMapEntryEClass, null, 'details', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), this$static.eModelElementEClass, castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), 'eModelElement', 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, true, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 3), 18), this$static.eObjectEClass, null, 'contents', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 4), 18), this$static.eObjectEClass, null, 'references', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.eClassEClass, Lorg_eclipse_emf_ecore_EClass_2_classLit, 'EClass', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 0), 34), this$static.eBooleanEDataType, 'abstract', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 1), 34), this$static.eBooleanEDataType, 'interface', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 2), 18), this$static.eClassEClass, null, 'eSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), 'eOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 4), 18), this$static.eAttributeEClass, null, 'eAllAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 5), 18), this$static.eReferenceEClass, null, 'eAllReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 6), 18), this$static.eReferenceEClass, null, 'eReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 7), 18), this$static.eAttributeEClass, null, 'eAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 8), 18), this$static.eReferenceEClass, null, 'eAllContainments', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 9), 18), this$static.eOperationEClass, null, 'eAllOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 10), 18), this$static.eStructuralFeatureEClass, null, 'eAllStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 11), 18), this$static.eClassEClass, null, 'eAllSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 12), 18), this$static.eAttributeEClass, null, 'eIDAttribute', 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), this$static.eStructuralFeatureEClass, castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), 'eStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 14), 18), this$static.eGenericTypeEClass, null, 'eGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 15), 18), this$static.eGenericTypeEClass, null, 'eAllGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 0), 59), this$static.eBooleanEDataType, 'isSuperTypeOf'); + $addEParameter(op, this$static.eClassEClass, 'someClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 1), 59), this$static.eIntEDataType, 'getFeatureCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 2), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eIntEDataType, 'featureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 3), 59), this$static.eIntEDataType, 'getFeatureID'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 4), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eStringEDataType, 'featureName'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 5), 59), this$static.eIntEDataType, 'getOperationCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 6), 59), this$static.eOperationEClass, 'getEOperation'); + $addEParameter(op, this$static.eIntEDataType, 'operationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 7), 59), this$static.eIntEDataType, 'getOperationID'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 8), 59), this$static.eOperationEClass, 'getOverride'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 9), 59), this$static.eGenericTypeEClass, 'getFeatureType'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $initEClass(this$static.eClassifierEClass, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, 'EClassifier', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 0), 34), this$static.eStringEDataType, 'instanceClassName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); + g1 = $createEGenericType(this$static.eJavaClassEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 1), 34), g1, 'instanceClass', Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 2), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 3), 34), this$static.eStringEDataType, 'instanceTypeName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), 'ePackage', 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, false, false, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 5), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, false, true, true, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 1), 59), this$static.eIntEDataType, 'getClassifierID'); + $initEClass(this$static.eDataTypeEClass, Lorg_eclipse_emf_ecore_EDataType_2_classLit, 'EDataType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eDataTypeEClass), 0), 34), this$static.eBooleanEDataType, 'serializable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EDataType_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eEnumEClass, Lorg_eclipse_emf_ecore_EEnum_2_classLit, 'EEnum', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), this$static.eEnumLiteralEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), 'eLiterals', 0, -1, Lorg_eclipse_emf_ecore_EEnum_2_classLit, false, false, true, true, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 0), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 1), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eIntEDataType, 'value'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 2), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteralByLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'literal'); + $initEClass(this$static.eEnumLiteralEClass, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, 'EEnumLiteral', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 0), 34), this$static.eIntEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 1), 34), this$static.eEnumeratorEDataType, 'instance', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 2), 34), this$static.eStringEDataType, 'literal', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), this$static.eEnumEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), 'eEnum', 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, false, false, false, false, false); + $initEClass(this$static.eFactoryEClass, Lorg_eclipse_emf_ecore_EFactory_2_classLit, 'EFactory', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), 'ePackage', 1, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, true, false, true, false, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 0), 59), this$static.eObjectEClass, 'create'); + $addEParameter(op, this$static.eClassEClass, 'eClass'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 1), 59), this$static.eJavaObjectEDataType, 'createFromString'); + $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); + $addEParameter(op, this$static.eStringEDataType, 'literalValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 2), 59), this$static.eStringEDataType, 'convertToString'); + $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'instanceValue'); + $initEClass(this$static.eModelElementEClass, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, 'EModelElement', true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), this$static.eAnnotationEClass, castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), 'eAnnotations', 0, -1, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, false, false, true, true, false, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eModelElementEClass), 0), 59), this$static.eAnnotationEClass, 'getEAnnotation'); + $addEParameter(op, this$static.eStringEDataType, 'source'); + $initEClass(this$static.eNamedElementEClass, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, 'ENamedElement', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eNamedElementEClass), 0), 34), this$static.eStringEDataType, 'name', null, 0, 1, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eObjectEClass, Lorg_eclipse_emf_ecore_EObject_2_classLit, 'EObject', false, false, true); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 0), 59), this$static.eClassEClass, 'eClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 1), 59), this$static.eBooleanEDataType, 'eIsProxy'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 2), 59), this$static.eResourceEDataType, 'eResource'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 3), 59), this$static.eObjectEClass, 'eContainer'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 4), 59), this$static.eStructuralFeatureEClass, 'eContainingFeature'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 5), 59), this$static.eReferenceEClass, 'eContainmentFeature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 6), 59), null, 'eContents'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs0 = $setEGenericType(op, g1, null); + !!msgs0 && msgs0.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 7), 59), null, 'eAllContents'); + g1 = $createEGenericType(this$static.eTreeIteratorEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs1 = $setEGenericType(op, g1, null); + !!msgs1 && msgs1.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 8), 59), null, 'eCrossReferences'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType(this$static.eObjectEClass); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs2 = $setEGenericType(op, g1, null); + !!msgs2 && msgs2.dispatch_0(); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 9), 59), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 10), 59), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eBooleanEDataType, 'resolve'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 11), 59), null, 'eSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'newValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 12), 59), this$static.eBooleanEDataType, 'eIsSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 13), 59), null, 'eUnset'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 14), 59), this$static.eJavaObjectEDataType, 'eInvoke'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + g1 = $createEGenericType(this$static.eeListEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + $addEParameter_0(op, g1, 'arguments'); + $addEException(op, this$static.eInvocationTargetExceptionEDataType); + $initEClass(this$static.eOperationEClass, Lorg_eclipse_emf_ecore_EOperation_2_classLit, 'EOperation', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, true, false, false, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 1), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), this$static.eParameterEClass, castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), 'eParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 3), 18), this$static.eClassifierEClass, null, 'eExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 4), 18), this$static.eGenericTypeEClass, null, 'eGenericExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, true, false); + $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 0), 59), this$static.eIntEDataType, 'getOperationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 1), 59), this$static.eBooleanEDataType, 'isOverrideOf'); + $addEParameter(op, this$static.eOperationEClass, 'someOperation'); + $initEClass(this$static.ePackageEClass, Lorg_eclipse_emf_ecore_EPackage_2_classLit, 'EPackage', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 0), 34), this$static.eStringEDataType, 'nsURI', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 1), 34), this$static.eStringEDataType, 'nsPrefix', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), this$static.eFactoryEClass, castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), 'eFactoryInstance', 1, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), this$static.eClassifierEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), 'eClassifiers', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), 'eSubpackages', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), 'eSuperPackage', 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, false, false, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.ePackageEClass), 0), 59), this$static.eClassifierEClass, 'getEClassifier'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + $initEClass(this$static.eParameterEClass, Lorg_eclipse_emf_ecore_EParameter_2_classLit, 'EParameter', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), 'eOperation', 0, 1, Lorg_eclipse_emf_ecore_EParameter_2_classLit, true, false, false, false, false, false, false); + $initEClass(this$static.eReferenceEClass, Lorg_eclipse_emf_ecore_EReference_2_classLit, 'EReference', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 0), 34), this$static.eBooleanEDataType, 'containment', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 1), 34), this$static.eBooleanEDataType, 'container', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 2), 34), this$static.eBooleanEDataType, 'resolveProxies', 'true', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 3), 18), this$static.eReferenceEClass, null, 'eOpposite', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 4), 18), this$static.eClassEClass, null, 'eReferenceType', 1, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 5), 18), this$static.eAttributeEClass, null, 'eKeys', 0, -1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); + $initEClass(this$static.eStructuralFeatureEClass, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 'EStructuralFeature', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 0), 34), this$static.eBooleanEDataType, 'changeable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 1), 34), this$static.eBooleanEDataType, 'volatile', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 2), 34), this$static.eBooleanEDataType, 'transient', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 3), 34), this$static.eStringEDataType, 'defaultValueLiteral', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 4), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 5), 34), this$static.eBooleanEDataType, 'unsettable', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 6), 34), this$static.eBooleanEDataType, 'derived', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, false, false, false, false, false, false); + $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 0), 59), this$static.eIntEDataType, 'getFeatureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 1), 59), null, 'getContainerClass'); + g1 = $createEGenericType(this$static.eJavaClassEDataType); + g2 = $createEGenericType_1(); + $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); + msgs = $setEGenericType(op, g1, null); + !!msgs && msgs.dispatch_0(); + $initEClass(this$static.eTypedElementEClass, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, 'ETypedElement', true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 0), 34), this$static.eBooleanEDataType, 'ordered', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 1), 34), this$static.eBooleanEDataType, 'unique', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 2), 34), this$static.eIntEDataType, 'lowerBound', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 3), 34), this$static.eIntEDataType, 'upperBound', '1', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 4), 34), this$static.eBooleanEDataType, 'many', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 5), 34), this$static.eBooleanEDataType, 'required', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 6), 18), this$static.eClassifierEClass, null, 'eType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, false, true, true, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 7), 18), this$static.eGenericTypeEClass, null, 'eGenericType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, true, false, true, false); + $initEClass(this$static.eStringToStringMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'EStringToStringMapEntry', false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 0), 34), this$static.eStringEDataType, 'key', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 1), 34), this$static.eStringEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.eGenericTypeEClass, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, 'EGenericType', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eUpperBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 1), 18), this$static.eGenericTypeEClass, null, 'eTypeArguments', 0, -1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 2), 18), this$static.eClassifierEClass, null, 'eRawType', 1, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, true, false, false, false, true, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 3), 18), this$static.eGenericTypeEClass, null, 'eLowerBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 4), 18), this$static.eTypeParameterEClass, null, 'eTypeParameter', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 5), 18), this$static.eClassifierEClass, null, 'eClassifier', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, true, false, false); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eGenericTypeEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEClass(this$static.eTypeParameterEClass, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, 'ETypeParameter', false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypeParameterEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eBounds', 0, -1, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, false, false, true, true, false, false, false); + $initEDataType(this$static.eBigDecimalEDataType, Ljava_math_BigDecimal_2_classLit, 'EBigDecimal', true); + $initEDataType(this$static.eBigIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'EBigInteger', true); + $initEDataType(this$static.eBooleanEDataType, Z_classLit, 'EBoolean', true); + $initEDataType(this$static.eBooleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'EBooleanObject', true); + $initEDataType(this$static.eByteEDataType, B_classLit, 'EByte', true); + $initEDataType(this$static.eByteArrayEDataType, getClassLiteralForArray(B_classLit, 1), 'EByteArray', true); + $initEDataType(this$static.eByteObjectEDataType, Ljava_lang_Byte_2_classLit, 'EByteObject', true); + $initEDataType(this$static.eCharEDataType, C_classLit, 'EChar', true); + $initEDataType(this$static.eCharacterObjectEDataType, Ljava_lang_Character_2_classLit, 'ECharacterObject', true); + $initEDataType(this$static.eDateEDataType, Ljava_util_Date_2_classLit, 'EDate', true); + $initEDataType(this$static.eDiagnosticChainEDataType, Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, 'EDiagnosticChain', false); + $initEDataType(this$static.eDoubleEDataType, D_classLit, 'EDouble', true); + $initEDataType(this$static.eDoubleObjectEDataType, Ljava_lang_Double_2_classLit, 'EDoubleObject', true); + $initEDataType(this$static.eeListEDataType, Lorg_eclipse_emf_common_util_EList_2_classLit, 'EEList', false); + $initEDataType(this$static.eEnumeratorEDataType, Lorg_eclipse_emf_common_util_Enumerator_2_classLit, 'EEnumerator', false); + $initEDataType(this$static.eFeatureMapEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, 'EFeatureMap', false); + $initEDataType(this$static.eFeatureMapEntryEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, 'EFeatureMapEntry', false); + $initEDataType(this$static.eFloatEDataType, F_classLit, 'EFloat', true); + $initEDataType(this$static.eFloatObjectEDataType, Ljava_lang_Float_2_classLit, 'EFloatObject', true); + $initEDataType(this$static.eIntEDataType, I_classLit, 'EInt', true); + $initEDataType(this$static.eIntegerObjectEDataType, Ljava_lang_Integer_2_classLit, 'EIntegerObject', true); + $initEDataType(this$static.eJavaClassEDataType, Ljava_lang_Class_2_classLit, 'EJavaClass', true); + $initEDataType(this$static.eJavaObjectEDataType, Ljava_lang_Object_2_classLit, 'EJavaObject', true); + $initEDataType(this$static.eLongEDataType, J_classLit, 'ELong', true); + $initEDataType(this$static.eLongObjectEDataType, Ljava_lang_Long_2_classLit, 'ELongObject', true); + $initEDataType(this$static.eMapEDataType, Ljava_util_Map_2_classLit, 'EMap', false); + $initEDataType(this$static.eResourceEDataType, Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, 'EResource', false); + $initEDataType(this$static.eResourceSetEDataType, Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, 'EResourceSet', false); + $initEDataType(this$static.eShortEDataType, S_classLit, 'EShort', true); + $initEDataType(this$static.eShortObjectEDataType, Ljava_lang_Short_2_classLit, 'EShortObject', true); + $initEDataType(this$static.eStringEDataType, Ljava_lang_String_2_classLit, 'EString', true); + $initEDataType(this$static.eTreeIteratorEDataType, Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, 'ETreeIterator', false); + $initEDataType(this$static.eInvocationTargetExceptionEDataType, Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, 'EInvocationTargetException', false); + $createResource(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); +} + +function EcorePackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2002/Ecore', ($clinit_EcoreFactory() , eINSTANCE_1)); + $$init_12(this); +} + +function init_4(){ + $clinit_EcorePackageImpl(); + var theEcorePackage; + if (isInited_0) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1939); + register_0(Ljava_util_Map$Entry_2_classLit, new EcorePackageImpl$44); + initializeRegistryHelpersGen(); + theEcorePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 547)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore'):new EcorePackageImpl, 547); + isInited_0 = true; + $createPackageContents_0(theEcorePackage); + $initializePackageContents_0(theEcorePackage); + $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theEcorePackage, new EcorePackageImpl$1); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore', theEcorePackage); + return theEcorePackage; +} + +function initializeRegistryHelpersGen(){ + register_0(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, new EcorePackageImpl$2); + register_0(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, new EcorePackageImpl$3); + register_0(Lorg_eclipse_emf_ecore_EClass_2_classLit, new EcorePackageImpl$4); + register_0(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, new EcorePackageImpl$5); + register_0(Lorg_eclipse_emf_ecore_EDataType_2_classLit, new EcorePackageImpl$6); + register_0(Lorg_eclipse_emf_ecore_EEnum_2_classLit, new EcorePackageImpl$7); + register_0(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, new EcorePackageImpl$8); + register_0(Lorg_eclipse_emf_ecore_EFactory_2_classLit, new EcorePackageImpl$9); + register_0(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, new EcorePackageImpl$10); + register_0(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, new EcorePackageImpl$11); + register_0(Lorg_eclipse_emf_ecore_EObject_2_classLit, new EcorePackageImpl$12); + register_0(Lorg_eclipse_emf_ecore_EOperation_2_classLit, new EcorePackageImpl$13); + register_0(Lorg_eclipse_emf_ecore_EPackage_2_classLit, new EcorePackageImpl$14); + register_0(Lorg_eclipse_emf_ecore_EParameter_2_classLit, new EcorePackageImpl$15); + register_0(Lorg_eclipse_emf_ecore_EReference_2_classLit, new EcorePackageImpl$16); + register_0(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, new EcorePackageImpl$17); + register_0(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, new EcorePackageImpl$18); + register_0(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, new EcorePackageImpl$19); + register_0(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, new EcorePackageImpl$20); + register_0(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, new EcorePackageImpl$21); + register_0(Ljava_lang_Boolean_2_classLit, new EcorePackageImpl$22); + register_0(getClassLiteralForArray(B_classLit, 1), new EcorePackageImpl$23); + register_0(Ljava_lang_Byte_2_classLit, new EcorePackageImpl$24); + register_0(Ljava_lang_Character_2_classLit, new EcorePackageImpl$25); + register_0(Ljava_util_Date_2_classLit, new EcorePackageImpl$26); + register_0(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, new EcorePackageImpl$27); + register_0(Ljava_lang_Double_2_classLit, new EcorePackageImpl$28); + register_0(Lorg_eclipse_emf_common_util_EList_2_classLit, new EcorePackageImpl$29); + register_0(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, new EcorePackageImpl$30); + register_0(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, new EcorePackageImpl$31); + register_0(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, new EcorePackageImpl$32); + register_0(Ljava_lang_Float_2_classLit, new EcorePackageImpl$33); + register_0(Ljava_lang_Integer_2_classLit, new EcorePackageImpl$34); + register_0(Ljava_lang_Class_2_classLit, new EcorePackageImpl$35); + register_0(Ljava_lang_Long_2_classLit, new EcorePackageImpl$36); + register_0(Ljava_util_Map_2_classLit, new EcorePackageImpl$37); + register_0(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, new EcorePackageImpl$38); + register_0(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, new EcorePackageImpl$39); + register_0(Ljava_lang_Short_2_classLit, new EcorePackageImpl$40); + register_0(Ljava_lang_String_2_classLit, new EcorePackageImpl$41); + register_0(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, new EcorePackageImpl$42); + register_0(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, new EcorePackageImpl$43); +} + +function internalBootstrap(){ + $clinit_EcorePackageImpl(); + var eGenericType, eGenericType$iterator; + $createExtendedMetaDataAnnotations(($clinit_EcorePackage() , eINSTANCE_2)); + $createEcoreAnnotations(eINSTANCE_2); + $freeze_0(eINSTANCE_2); + eJavaObject = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT); + for (eGenericType$iterator = new ArrayList$1(eGenericTypes_0); eGenericType$iterator.i < eGenericType$iterator.this$01.array.length;) { + eGenericType = castTo($next_7(eGenericType$iterator), 241); + $setERawType(eGenericType, EJAVA_OBJECT, null); + } + return true; +} + +defineClass(547, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 1939:1, 49:1, 97:1, 150:1, 179:1, 547:1, 114:1, 115:1, 675:1}, EcorePackageImpl); +_.isCreated = false; +_.isInitialized = false; +var eGenericTypes_0, isInited_0 = false; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl', 547); +function EcorePackageImpl$1(){ +} + +defineClass(1184, 1, {837:1}, EcorePackageImpl$1); +_.getEValidator = function getEValidator(){ + return $clinit_EcoreValidator() , INSTANCE_10; +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/1', 1184); +function EcorePackageImpl$10(){ +} + +defineClass(1193, 1, $intern_162, EcorePackageImpl$10); +_.isInstance = function isInstance_6(instance){ + return instanceOf(instance, 147); +} +; +_.newArrayInstance = function newArrayInstance(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, $intern_2, 147, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/10', 1193); +function EcorePackageImpl$11(){ +} + +defineClass(1194, 1, $intern_162, EcorePackageImpl$11); +_.isInstance = function isInstance_7(instance){ + return instanceOf(instance, 191); +} +; +_.newArrayInstance = function newArrayInstance_0(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, $intern_2, 191, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/11', 1194); +function EcorePackageImpl$12(){ +} + +defineClass(1195, 1, $intern_162, EcorePackageImpl$12); +_.isInstance = function isInstance_8(instance){ + return instanceOf(instance, 56); +} +; +_.newArrayInstance = function newArrayInstance_1(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/12', 1195); +function EcorePackageImpl$13(){ +} + +defineClass(1196, 1, $intern_162, EcorePackageImpl$13); +_.isInstance = function isInstance_9(instance){ + return instanceOf(instance, 399); +} +; +_.newArrayInstance = function newArrayInstance_2(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/13', 1196); +function EcorePackageImpl$14(){ +} + +defineClass(1197, 1, $intern_162, EcorePackageImpl$14); +_.isInstance = function isInstance_10(instance){ + return instanceOf(instance, 235); +} +; +_.newArrayInstance = function newArrayInstance_3(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EPackage_2_classLit, $intern_2, 235, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/14', 1197); +function EcorePackageImpl$15(){ +} + +defineClass(1198, 1, $intern_162, EcorePackageImpl$15); +_.isInstance = function isInstance_11(instance){ + return instanceOf(instance, 509); +} +; +_.newArrayInstance = function newArrayInstance_4(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EParameter_2_classLit, $intern_2, 2017, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/15', 1198); +function EcorePackageImpl$16(){ +} + +defineClass(1199, 1, $intern_162, EcorePackageImpl$16); +_.isInstance = function isInstance_12(instance){ + return instanceOf(instance, 99); +} +; +_.newArrayInstance = function newArrayInstance_5(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/16', 1199); +function EcorePackageImpl$17(){ +} + +defineClass(1200, 1, $intern_162, EcorePackageImpl$17); +_.isInstance = function isInstance_13(instance){ + return instanceOf(instance, 170); +} +; +_.newArrayInstance = function newArrayInstance_6(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/17', 1200); +function EcorePackageImpl$18(){ +} + +defineClass(1201, 1, $intern_162, EcorePackageImpl$18); +_.isInstance = function isInstance_14(instance){ + return instanceOf(instance, 472); +} +; +_.newArrayInstance = function newArrayInstance_7(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, $intern_2, 472, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/18', 1201); +function EcorePackageImpl$19(){ +} + +defineClass(1202, 1, $intern_162, EcorePackageImpl$19); +_.isInstance = function isInstance_15(instance){ + return instanceOf(instance, 548); +} +; +_.newArrayInstance = function newArrayInstance_8(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, $intern_146, 548, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/19', 1202); +function EcorePackageImpl$2(){ +} + +defineClass(1185, 1, $intern_162, EcorePackageImpl$2); +_.isInstance = function isInstance_16(instance){ + return instanceOf(instance, 322); +} +; +_.newArrayInstance = function newArrayInstance_9(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/2', 1185); +function EcorePackageImpl$20(){ +} + +defineClass(1203, 1, $intern_162, EcorePackageImpl$20); +_.isInstance = function isInstance_17(instance){ + return instanceOf(instance, 241); +} +; +_.newArrayInstance = function newArrayInstance_10(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/20', 1203); +function EcorePackageImpl$21(){ +} + +defineClass(1204, 1, $intern_162, EcorePackageImpl$21); +_.isInstance = function isInstance_18(instance){ + return instanceOf(instance, 444); +} +; +_.newArrayInstance = function newArrayInstance_11(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, $intern_2, 836, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/21', 1204); +function EcorePackageImpl$22(){ +} + +defineClass(1205, 1, $intern_162, EcorePackageImpl$22); +_.isInstance = function isInstance_19(instance){ + return instanceOfBoolean(instance); +} +; +_.newArrayInstance = function newArrayInstance_12(size_0){ + return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/22', 1205); +function EcorePackageImpl$23(){ +} + +defineClass(1206, 1, $intern_162, EcorePackageImpl$23); +_.isInstance = function isInstance_20(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_13(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/23', 1206); +function EcorePackageImpl$24(){ +} + +defineClass(1207, 1, $intern_162, EcorePackageImpl$24); +_.isInstance = function isInstance_21(instance){ + return instanceOf(instance, 217); +} +; +_.newArrayInstance = function newArrayInstance_14(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/24', 1207); +function EcorePackageImpl$25(){ +} + +defineClass(1208, 1, $intern_162, EcorePackageImpl$25); +_.isInstance = function isInstance_22(instance){ + return instanceOf(instance, 172); +} +; +_.newArrayInstance = function newArrayInstance_15(size_0){ + return initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/25', 1208); +function EcorePackageImpl$26(){ +} + +defineClass(1209, 1, $intern_162, EcorePackageImpl$26); +_.isInstance = function isInstance_23(instance){ + return instanceOf(instance, 199); +} +; +_.newArrayInstance = function newArrayInstance_16(size_0){ + return initUnidimensionalArray(Ljava_util_Date_2_classLit, $intern_16, 199, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/26', 1209); +function EcorePackageImpl$27(){ +} + +defineClass(1210, 1, $intern_162, EcorePackageImpl$27); +_.isInstance = function isInstance_24(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_17(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, $intern_2, 2110, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/27', 1210); +function EcorePackageImpl$28(){ +} + +defineClass(1211, 1, $intern_162, EcorePackageImpl$28); +_.isInstance = function isInstance_25(instance){ + return instanceOfDouble(instance); +} +; +_.newArrayInstance = function newArrayInstance_18(size_0){ + return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/28', 1211); +function EcorePackageImpl$29(){ +} + +defineClass(1212, 1, $intern_162, EcorePackageImpl$29); +_.isInstance = function isInstance_26(instance){ + return instanceOf(instance, 58); +} +; +_.newArrayInstance = function newArrayInstance_19(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_EList_2_classLit, $intern_99, 58, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/29', 1212); +function EcorePackageImpl$3(){ +} + +defineClass(1186, 1, $intern_162, EcorePackageImpl$3); +_.isInstance = function isInstance_27(instance){ + return instanceOf(instance, 510); +} +; +_.newArrayInstance = function newArrayInstance_20(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, {3:1, 4:1, 5:1, 1934:1}, 590, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/3', 1186); +function EcorePackageImpl$30(){ +} + +defineClass(1213, 1, $intern_162, EcorePackageImpl$30); +_.isInstance = function isInstance_28(instance){ + return instanceOf(instance, 573); +} +; +_.newArrayInstance = function newArrayInstance_21(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, $intern_2, 1940, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/30', 1213); +function EcorePackageImpl$31(){ +} + +defineClass(1214, 1, $intern_162, EcorePackageImpl$31); +_.isInstance = function isInstance_29(instance){ + return instanceOf(instance, 153); +} +; +_.newArrayInstance = function newArrayInstance_22(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, $intern_99, 153, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/31', 1214); +function EcorePackageImpl$32(){ +} + +defineClass(1215, 1, $intern_162, EcorePackageImpl$32); +_.isInstance = function isInstance_30(instance){ + return instanceOf(instance, 72); +} +; +_.newArrayInstance = function newArrayInstance_23(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, $intern_163, 72, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/32', 1215); +function EcorePackageImpl$33(){ +} + +defineClass(1216, 1, $intern_162, EcorePackageImpl$33); +_.isInstance = function isInstance_31(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance_24(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/33', 1216); +function EcorePackageImpl$34(){ +} + +defineClass(1217, 1, $intern_162, EcorePackageImpl$34); +_.isInstance = function isInstance_32(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_25(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/34', 1217); +function EcorePackageImpl$35(){ +} + +defineClass(1218, 1, $intern_162, EcorePackageImpl$35); +_.isInstance = function isInstance_33(instance){ + return instanceOf(instance, 290); +} +; +_.newArrayInstance = function newArrayInstance_26(size_0){ + return initUnidimensionalArray(Ljava_lang_Class_2_classLit, $intern_2, 290, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/35', 1218); +function EcorePackageImpl$36(){ +} + +defineClass(1219, 1, $intern_162, EcorePackageImpl$36); +_.isInstance = function isInstance_34(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_27(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/36', 1219); +function EcorePackageImpl$37(){ +} + +defineClass(1220, 1, $intern_162, EcorePackageImpl$37); +_.isInstance = function isInstance_35(instance){ + return instanceOf(instance, 83); +} +; +_.newArrayInstance = function newArrayInstance_28(size_0){ + return initUnidimensionalArray(Ljava_util_Map_2_classLit, $intern_2, 83, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/37', 1220); +function EcorePackageImpl$38(){ +} + +defineClass(1221, 1, $intern_162, EcorePackageImpl$38); +_.isInstance = function isInstance_36(instance){ + return instanceOf(instance, 591); +} +; +_.newArrayInstance = function newArrayInstance_29(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, $intern_2, 591, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/38', 1221); +function EcorePackageImpl$39(){ +} + +defineClass(1222, 1, $intern_162, EcorePackageImpl$39); +_.isInstance = function isInstance_37(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_30(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, $intern_2, 2111, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/39', 1222); +function EcorePackageImpl$4(){ +} + +defineClass(1187, 1, $intern_162, EcorePackageImpl$4); +_.isInstance = function isInstance_38(instance){ + return instanceOf(instance, 88); +} +; +_.newArrayInstance = function newArrayInstance_31(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/4', 1187); +function EcorePackageImpl$40(){ +} + +defineClass(1223, 1, $intern_162, EcorePackageImpl$40); +_.isInstance = function isInstance_39(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_32(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/40', 1223); +function EcorePackageImpl$41(){ +} + +defineClass(1224, 1, $intern_162, EcorePackageImpl$41); +_.isInstance = function isInstance_40(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_33(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/41', 1224); +function EcorePackageImpl$42(){ +} + +defineClass(1225, 1, $intern_162, EcorePackageImpl$42); +_.isInstance = function isInstance_41(instance){ + return instanceOf(instance, 588); +} +; +_.newArrayInstance = function newArrayInstance_34(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, $intern_2, 588, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/42', 1225); +function EcorePackageImpl$43(){ +} + +defineClass(1226, 1, $intern_162, EcorePackageImpl$43); +_.isInstance = function isInstance_42(instance){ + return false; +} +; +_.newArrayInstance = function newArrayInstance_35(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, $intern_16, 2112, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/43', 1226); +function EcorePackageImpl$44(){ +} + +defineClass(1227, 1, $intern_162, EcorePackageImpl$44); +_.isInstance = function isInstance_43(instance){ + return instanceOf(instance, 42); +} +; +_.newArrayInstance = function newArrayInstance_36(size_0){ + return initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/44', 1227); +function EcorePackageImpl$5(){ +} + +defineClass(1188, 1, $intern_162, EcorePackageImpl$5); +_.isInstance = function isInstance_44(instance){ + return instanceOf(instance, 138); +} +; +_.newArrayInstance = function newArrayInstance_37(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/5', 1188); +function EcorePackageImpl$6(){ +} + +defineClass(1189, 1, $intern_162, EcorePackageImpl$6); +_.isInstance = function isInstance_45(instance){ + return instanceOf(instance, 148); +} +; +_.newArrayInstance = function newArrayInstance_38(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EDataType_2_classLit, $intern_2, 148, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/6', 1189); +function EcorePackageImpl$7(){ +} + +defineClass(1190, 1, $intern_162, EcorePackageImpl$7); +_.isInstance = function isInstance_46(instance){ + return instanceOf(instance, 457); +} +; +_.newArrayInstance = function newArrayInstance_39(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnum_2_classLit, $intern_2, 671, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/7', 1190); +function EcorePackageImpl$8(){ +} + +defineClass(1191, 1, $intern_162, EcorePackageImpl$8); +_.isInstance = function isInstance_47(instance){ + return instanceOf(instance, 573); +} +; +_.newArrayInstance = function newArrayInstance_40(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, $intern_2, 678, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/8', 1191); +function EcorePackageImpl$9(){ +} + +defineClass(1192, 1, $intern_162, EcorePackageImpl$9); +_.isInstance = function isInstance_48(instance){ + return instanceOf(instance, 471); +} +; +_.newArrayInstance = function newArrayInstance_41(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EFactory_2_classLit, $intern_2, 471, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/9', 1192); +function $didAdd_1(this$static, newAdapter){ + var listener$array, listener$index, listener$max, listeners; + newAdapter.setTarget(this$static.this$01); + listeners = castTo($getField(this$static.this$01, 8), 1936); + if (listeners != null) { + for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { + null.$_nullMethod(); + } + } +} + +function $didRemove_0(this$static, index_0, oldAdapter){ + var adapter, listener$array, listener$index, listener$max, listeners, notification; + listeners = castTo($getField(this$static.this$01, 8), 1936); + if (listeners != null) { + for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { + null.$_nullMethod(); + } + } + adapter = oldAdapter; + if ((this$static.this$01.eFlags_0 & 1) == 0) { + notification = new MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$static, oldAdapter, index_0); + adapter.notifyChanged(notification); + } + instanceOf(adapter, 672)?castTo(adapter, 672).unsetTarget(this$static.this$01):adapter.getTarget() == this$static.this$01 && adapter.setTarget(null); +} + +function $setData(this$static, data_0){ + var eContainerAdapterArray, eInternalContainer; + ++this$static.modCount; + if (data_0 != null) { + eContainerAdapterArray = (eInternalContainer = this$static.this$01.eContainer , instanceOf(eInternalContainer, 97)?castTo(eInternalContainer, 97).eBasicAdapterArray():null); + if (equals_46(data_0, eContainerAdapterArray)) { + $setField(this$static.this$01, 4, eContainerAdapterArray); + return; + } + } + $setField(this$static.this$01, 4, castTo(data_0, 126)); +} + +function MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$0){ + $clinit_ArrayDelegatingEList(); + this.this$01 = this$0; +} + +defineClass(1025, 1982, $intern_144, MinimalEObjectImpl$1ArrayDelegatingAdapterList); +_.didAdd = function didAdd_2(index_0, newAdapter){ + $didAdd_1(this, castTo(newAdapter, 415)); +} +; +_.didRemove = function didRemove_1(index_0, oldAdapter){ + $didRemove_0(this, index_0, castTo(oldAdapter, 415)); +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList', 1025); +function MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$1, $anonymous1, $anonymous3){ + this.this$11 = this$1; + NotificationImpl_1.call(this, 8, $anonymous1, null, $anonymous3); +} + +defineClass(1026, 143, $intern_142, MinimalEObjectImpl$1ArrayDelegatingAdapterList$1); +_.getNotifier = function getNotifier_7(){ + return this.this$11.this$01; +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1', 1026); +function $clinit_EcorePlugin(){ + $clinit_EcorePlugin = emptyMethod; + new EcorePlugin; + new ArrayList; +} + +function EcorePlugin(){ + new HashMap; + new HashMap; + new HashMap; +} + +defineClass(1053, 1052, {}, EcorePlugin); +var Lorg_eclipse_emf_ecore_plugin_EcorePlugin_2_classLit = createForClass('org.eclipse.emf.ecore.plugin', 'EcorePlugin', 1053); +var Lorg_eclipse_emf_ecore_resource_Resource_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'Resource'); +function $getEObject(this$static, uriFragmentPath){ + var eObject, i, size_0; + size_0 = uriFragmentPath.array.length; + eObject = $getEObjectForURIFragmentRootSegment(this$static, size_0 == 0?'':(checkCriticalElementIndex(0, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[0]))); + for (i = 1; i < size_0 && !!eObject; ++i) { + eObject = castTo(eObject, 49).eObjectForURIFragmentSegment((checkCriticalElementIndex(i, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[i]))); + } + return eObject; +} + +function $getEObjectByID(this$static, id_0){ + var eObject, eObjectId, i, result, eClass, eIDAttribute; + result = null; + for (i = new ResourceImpl$5((!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents)); $hasNext_7(i);) { + eObject = castTo($next_14(i), 56); + eObjectId = (eClass = eObject.eClass_0() , eIDAttribute = ($getEAllAttributes(eClass) , eClass.eIDAttribute) , !eIDAttribute || !eObject.eIsSet_0(eIDAttribute)?null:convertToString_2($getEAttributeType(eIDAttribute), eObject.eGet_0(eIDAttribute))); + if (eObjectId != null) { + if ($equals_5(eObjectId, id_0)) { + result = eObject; + break; + } + } + } + return result; +} + +function $getEObjectForURIFragmentRootSegment(this$static, uriFragmentRootSegment){ + var contents, exception, position; + position = 0; + if (uriFragmentRootSegment.length > 0) { + try { + position = __parseAndValidateInt(uriFragmentRootSegment, $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + } + contents = (!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents); + return position < contents.size_0 && position >= 0?castTo($get_20(contents, position), 56):null; +} + +defineClass(781, 1378, $intern_164); +_.attached = function attached(eObject){ +} +; +_.detached = function detached(eObject){ +} +; +_.getContents = function getContents(){ + return !this.contents && (this.contents = new ResourceImpl$ContentsEList(this)) , this.contents; +} +; +_.getEObject = function getEObject(uriFragment){ + var i, index_0, length_0, start_0, uriFragmentPath; + length_0 = uriFragment.length; + if (length_0 > 0) { + checkCriticalStringElementIndex(0, uriFragment.length); + if (uriFragment.charCodeAt(0) == 47) { + uriFragmentPath = new ArrayList_0(4); + start_0 = 1; + for (i = 1; i < length_0; ++i) { + checkCriticalStringElementIndex(i, uriFragment.length); + if (uriFragment.charCodeAt(i) == 47) { + $add_3(uriFragmentPath, start_0 == i?'':uriFragment.substr(start_0, i - start_0)); + start_0 = i + 1; + } + } + $add_3(uriFragmentPath, uriFragment.substr(start_0)); + return $getEObject(this, uriFragmentPath); + } + else { + checkCriticalStringElementIndex(length_0 - 1, uriFragment.length); + if (uriFragment.charCodeAt(length_0 - 1) == 63) { + index_0 = $lastIndexOf_0(uriFragment, fromCodePoint(63), length_0 - 2); + index_0 > 0 && (uriFragment = uriFragment.substr(0, index_0)); + } + } + } + return $getEObjectByID(this, uriFragment); +} +; +_.getResourceSet = function getResourceSet(){ + return this.resourceSet; +} +; +_.toString_0 = function toString_156(){ + var number; + return $getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)) + " uri='" + this.uri_0 + "'"; +} +; +_.isLoaded = false; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl', 781); +function BinaryResourceImpl(uri_0){ + this.uri_0 = uri_0; +} + +defineClass(1379, 781, $intern_164, BinaryResourceImpl); +var Lorg_eclipse_emf_ecore_resource_impl_BinaryResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'BinaryResourceImpl', 1379); +function $getEObjectChildren(this$static, eObject){ + return this$static.isResolveProxies?eObject.eContents_0().iterator_0():castTo(eObject.eContents_0(), 69).basicIterator(); +} + +function $hasNext_7(this$static){ + var iterator; + if (!this$static.includeRoot && this$static.data_0 == null) { + this$static.nextPruneIterator = this$static.getChildren(this$static.object); + $add_21(this$static, this$static.nextPruneIterator); + iterator = this$static.nextPruneIterator; + } + else { + if (this$static.data_0 == null) { + return true; + } + else if (this$static.size_0 == 0) { + return false; + } + else { + iterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); + } + } + if (iterator == this$static.resourceSetIterator && null.$_nullField >= null.$_nullMethod()) { + $next_14(this$static); + return $hasNext_7(this$static); + } + else { + return iterator.hasNext_0(); + } +} + +defineClass(1169, 694, $intern_139); +_.getChildren = function getChildren_0(object){ + return instanceOf(object, 56)?$getEObjectChildren(this, castTo(object, 56)):instanceOf(object, 591)?new AbstractEList$EIterator(castTo(object, 591).getContents()):maskUndefined(object) === maskUndefined(this.object)?castTo(object, 14).iterator_0():($clinit_ECollections() , EMPTY_ELIST.listIterator); +} +; +_.hasNext_0 = function hasNext_48(){ + return $hasNext_7(this); +} +; +_.isResolveProxies = false; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ContentTreeIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ContentTreeIterator', 1169); +function ResourceImpl$5($anonymous0){ + AbstractTreeIterator.call(this, $anonymous0, false); + this.isResolveProxies = false; +} + +defineClass(1380, 1169, $intern_139, ResourceImpl$5); +_.getChildren = function getChildren_1(object){ + return maskUndefined(object) === maskUndefined(this.object)?castTo(object, 15).iterator_0():new EcoreUtil$ProperContentIterator(castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/5', 1380); +function ResourceImpl$ContentsEList(this$0){ + this.this$01 = this$0; +} + +defineClass(648, 1994, $intern_153, ResourceImpl$ContentsEList); +_.contains = function contains_66(object){ + return this.size_0 <= 4?$contains_10(this, object):instanceOf(object, 49) && castTo(object, 49).eDirectResource() == this.this$01; +} +; +_.didAdd = function didAdd_3(index_0, object){ + index_0 == this.size_0 - 1 && (this.this$01.isLoaded || (this.this$01.isLoaded = true , null)); +} +; +_.didClear = function didClear_1(oldSize, oldData){ + oldSize == 0?this.this$01.isLoaded || (this.this$01.isLoaded = true , null):$didClear(this, oldSize, oldData); +} +; +_.didRemove = function didRemove_2(index_0, object){ +} +; +_.didSet = function didSet_1(index_0, newObject, oldObject){ +} +; +_.getFeatureID_0 = function getFeatureID_12(){ + return 2; +} +; +_.getNotifier = function getNotifier_8(){ + return this.this$01; +} +; +_.hasInverse = function hasInverse_10(){ + return true; +} +; +_.inverseAdd = function inverseAdd_8(object, notifications){ + var eObject; + eObject = castTo(object, 49); + notifications = eObject.eSetResource(this.this$01, notifications); + return notifications; +} +; +_.inverseRemove = function inverseRemove_8(object, notifications){ + var eObject; + eObject = castTo(object, 49); + return eObject.eSetResource(null, notifications); +} +; +_.isNotificationRequired = function isNotificationRequired_3(){ + return false; +} +; +_.isUnique = function isUnique_7(){ + return true; +} +; +_.newData = function newData_13(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, capacity, 0, 1); +} +; +_.useEquals = function useEquals_14(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$ContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/ContentsEList', 648); +function AbstractSequentialInternalEList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(957, 1964, $intern_37, AbstractSequentialInternalEList$1); +_.listIterator_1 = function listIterator_32(index_0){ + return this.this$01.basicListIterator_0(index_0); +} +; +_.size_1 = function size_79(){ + return this.this$01.size_1(); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList/1', 957); +function $clinit_ExtendedMetaData(){ + $clinit_ExtendedMetaData = emptyMethod; + FEATURE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'simple', 'attribute', 'attributeWildcard', 'element', 'elementWildcard', 'group']); + CONTENT_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'empty', 'simple', 'mixed', 'elementOnly']); + WHITE_SPACE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'preserve', 'replace', 'collapse']); + INSTANCE_11 = new BasicExtendedMetaData; +} + +var CONTENT_KINDS, FEATURE_KINDS, INSTANCE_11, WHITE_SPACE_KINDS; +function $clinit_BasicExtendedMetaData(){ + $clinit_BasicExtendedMetaData = emptyMethod; + var eAttribute, eDataType; + UNINITIALIZED_EDATA_TYPE = ($clinit_EcoreFactory() , eDataType = new EDataTypeImpl , eDataType); + UNINITIALIZED_ESTRUCTURAL_FEATURE = (eAttribute = new EAttributeImpl , eAttribute); +} + +function $basicGetAffiliation(this$static, eStructuralFeature){ + var eAnnotation, fragmentIndex, qualifiedName; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'affiliation')); + if (qualifiedName != null) { + fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); + return fragmentIndex == -1?$getElement(this$static, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())), qualifiedName):fragmentIndex == 0?$getElement(this$static, null, qualifiedName.substr(1)):$getElement(this$static, qualifiedName.substr(0, fragmentIndex), qualifiedName.substr(fragmentIndex + 1)); + } + } + return null; +} + +function $basicGetBaseType(this$static, eDataType){ + var baseType, details, eAnnotation, index_0, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); + baseType = castToString($get_21(details, 'baseType')); + if (baseType != null) { + index_0 = baseType.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), baseType):index_0 == 0?$getType(this$static, null, baseType.substr(1)):$getType(this$static, baseType.substr(0, index_0), baseType.substr(index_0 + 1)); + if (instanceOf(type_0, 148)) { + return castTo(type_0, 148); + } + } + } + return null; +} + +function $basicGetContentKind(this$static, eClass){ + var eAnnotation, i, kind; + eAnnotation = eClass.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); + if (kind != null) { + for (i = 1; i < ($clinit_ExtendedMetaData() , CONTENT_KINDS).length; ++i) { + if ($equals_5(CONTENT_KINDS[i], kind)) { + return i; + } + } + } + } + return 0; +} + +function $basicGetFeatureKind(this$static, eStructuralFeature){ + var eAnnotation, i, kind; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); + if (kind != null) { + for (i = 1; i < ($clinit_ExtendedMetaData() , FEATURE_KINDS).length; ++i) { + if ($equals_5(FEATURE_KINDS[i], kind)) { + return i; + } + } + } + } + return 0; +} + +function $basicGetGroup(this$static, eStructuralFeature){ + var eAnnotation, eContainingClass, fragmentIndex, name_0, namespace, qualifiedName; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group')); + if (qualifiedName != null) { + fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); + eContainingClass = eStructuralFeature.getEContainingClass(); + if (fragmentIndex == -1) { + namespace = $getNamespace(this$static, $getEPackage(eContainingClass)); + name_0 = qualifiedName; + } + else if (fragmentIndex == 0) { + namespace = null; + name_0 = qualifiedName.substr(1); + } + else { + namespace = qualifiedName.substr(0, fragmentIndex); + name_0 = qualifiedName.substr(fragmentIndex + 1); + } + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + return $getAttribute_0(this$static, eContainingClass, namespace, name_0); + } + + case 0: + case 4: + case 5: + case 6: + { + return $getElement_0(this$static, eContainingClass, namespace, name_0); + } + + } + } + } + return null; +} + +function $basicGetItemType(this$static, eDataType){ + var details, eAnnotation, index_0, itemType, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); + itemType = castToString($get_21(details, 'itemType')); + if (itemType != null) { + index_0 = itemType.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), itemType):index_0 == 0?$getType(this$static, null, itemType.substr(1)):$getType(this$static, itemType.substr(0, index_0), itemType.substr(index_0 + 1)); + if (instanceOf(type_0, 148)) { + return castTo(type_0, 148); + } + } + } + return null; +} + +function $basicGetMemberTypes(this$static, eDataType){ + var eAnnotation, index_0, member, member$array, member$index, member$max, memberTypes, result, type_0; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + memberTypes = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'memberTypes')); + if (memberTypes != null) { + result = new ArrayList; + for (member$array = $split_0(memberTypes, '\\w') , member$index = 0 , member$max = member$array.length; member$index < member$max; ++member$index) { + member = member$array[member$index]; + index_0 = member.lastIndexOf('#'); + type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), member):index_0 == 0?$getType(this$static, null, member.substr(1)):$getType(this$static, member.substr(0, index_0), member.substr(index_0 + 1)); + instanceOf(type_0, 148) && $add_3(result, castTo(type_0, 148)); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $basicGetName(this$static, eClassifier){ + var eAnnotation, result; + eAnnotation = eClassifier.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); + if (result != null) { + return result; + } + } + return eClassifier.getName(); +} + +function $basicGetName_0(this$static, eStructuralFeature){ + var eAnnotation, result; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); + if (result != null) { + return result; + } + } + return eStructuralFeature.getName(); +} + +function $basicGetNamespace(this$static, eStructuralFeature){ + var eAnnotation, result; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (!eAnnotation) { + return null; + } + else { + result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'namespace')); + return $equals_5('##targetNamespace', result)?$getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())):result; + } +} + +function $basicGetWhiteSpaceFacet(this$static, eDataType){ + var eAnnotation, i, whiteSpaceLiteral; + eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + whiteSpaceLiteral = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'whiteSpace')); + for (i = 1; i < ($clinit_ExtendedMetaData() , WHITE_SPACE_KINDS).length; ++i) { + if ($equals_5(WHITE_SPACE_KINDS[i], whiteSpaceLiteral)) { + return i; + } + } + } + return 0; +} + +function $basicGetWildcards(this$static, eStructuralFeature){ + var eAnnotation, result, wildcard, wildcard$array, wildcard$index, wildcard$max, wildcards; + eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); + if (eAnnotation) { + wildcards = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'wildcards')); + if (wildcards != null) { + result = new ArrayList; + for (wildcard$array = $split_0(wildcards, '\\w') , wildcard$index = 0 , wildcard$max = wildcard$array.length; wildcard$index < wildcard$max; ++wildcard$index) { + wildcard = wildcard$array[wildcard$index]; + $equals_5(wildcard, '##other')?$add_3(result, '!##' + $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):$equals_5(wildcard, '##local')?(result.array[result.array.length] = null , true):$equals_5(wildcard, '##targetNamespace')?$add_3(result, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):(result.array[result.array.length] = wildcard , true); + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function $getAffiliation(this$static, eClass, eStructuralFeature){ + var affiliation, allAttributes, allElements, i, name_0, namespace, namespace0, result, size_0; + if ($getFeatureID(eClass, eStructuralFeature) >= 0) { + return eStructuralFeature; + } + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + { + if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { + namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + name_0 = $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + result = $getLocalAttribute(this$static, eClass, namespace, name_0); + if (result) { + return result; + } + allAttributes = $getAllAttributes(this$static, eClass); + for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { + result = castTo(allAttributes.get_0(i), 170); + if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { + return result; + } + } + } + return null; + } + + case 4: + { + if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { + for (affiliation = eStructuralFeature; affiliation; affiliation = $getAffiliation_0($getExtendedMetaData_1(this$static, affiliation))) { + namespace0 = $getNamespace_0($getExtendedMetaData_1(this$static, affiliation)); + name_0 = $getName_0($getExtendedMetaData_1(this$static, affiliation)); + result = $getLocalElement(this$static, eClass, namespace0, name_0); + if (result) { + return result; + } + } + namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if ($equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace)) { + return $getMixedFeature(this$static, eClass); + } + else { + allElements = $getAllElements(this$static, eClass); + for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { + result = castTo(allElements.get_0(i), 170); + if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { + return result; + } + } + } + } + return null; + } + + default:{ + return null; + } + + } +} + +function $getAllAttributes(this$static, eClass){ + var allAttributes, attributes, changeable, eGenericType, eSuperType, i, result, result0, size_0, superTypes; + superTypes = $getESuperTypes(eClass); + result0 = null; + changeable = false; + for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { + eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + allAttributes = $getAllAttributes(this$static, eSuperType); + if (!allAttributes.isEmpty()) { + if (!result0) { + result0 = allAttributes; + } + else { + if (!changeable) { + changeable = true; + result0 = new UniqueEList_0(result0); + } + result0.addAll(allAttributes); + } + } + } + attributes = $getAttributes(this$static, eClass); + if (attributes.isEmpty()) { + return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; + } + else { + if (!result0) { + return attributes; + } + else { + changeable || (result0 = new UniqueEList_0(result0)); + result0.addAll(attributes); + return result0; + } + } +} + +function $getAllElements(this$static, eClass){ + var allElements, changeable, eGenericType, eSuperType, elements, i, result, result0, size_0, superTypes; + superTypes = $getESuperTypes(eClass); + result0 = null; + changeable = false; + for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { + eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + allElements = $getAllElements(this$static, eSuperType); + if (!allElements.isEmpty()) { + if (!result0) { + result0 = allElements; + } + else { + if (!changeable) { + changeable = true; + result0 = new UniqueEList_0(result0); + } + result0.addAll(allElements); + } + } + } + elements = $getElements(this$static, eClass); + if (elements.isEmpty()) { + return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; + } + else { + if (!result0) { + return elements; + } + else { + changeable || (result0 = new UniqueEList_0(result0)); + result0.addAll(elements); + return result0; + } + } +} + +function $getAnnotation(this$static, eModelElement){ + var result; + result = eModelElement.getEAnnotation(this$static.annotationURI); + return result; +} + +function $getAttribute(this$static, namespace, name_0){ + var documentRoot, ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + if (ePackage0) { + documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); + if (documentRoot) { + return $getLocalAttribute(this$static, documentRoot, namespace, name_0); + } + } + return null; +} + +function $getAttribute_0(this$static, eClass, namespace, name_0){ + var result; + result = $getLocalAttribute(this$static, eClass, namespace, name_0); + if (!result) { + result = $getAttribute(this$static, namespace, name_0); + if (!!result && !$getAffiliation(this$static, eClass, result)) { + return null; + } + } + return result; +} + +function $getAttributes(this$static, eClass){ + var eStructuralFeature, eStructuralFeatures, i, result, size_0; + eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); + result = null; + for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { + eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + !result && (result = new ArrayList); + result.array[result.array.length] = eStructuralFeature; + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getElement(this$static, namespace, name_0){ + var documentRoot, ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + if (ePackage0) { + documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); + if (documentRoot) { + return $getLocalElement(this$static, documentRoot, namespace, name_0); + } + } + return null; +} + +function $getElement_0(this$static, eClass, namespace, name_0){ + var result; + result = $getLocalElement(this$static, eClass, namespace, name_0); + if (!result) { + result = $getElement(this$static, namespace, name_0); + if (!!result && !$getAffiliation(this$static, eClass, result)) { + return null; + } + } + return result; +} + +function $getElements(this$static, eClass){ + var eStructuralFeature, eStructuralFeatures, i, result, size_0; + eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); + result = null; + for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { + eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 4: + case 5: + case 6: + { + !result && (result = new ArrayList); + result.array[result.array.length] = eStructuralFeature; + break; + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getExtendedMetaData(this$static, eClassifier){ + var holder, result; + holder = castTo(eClassifier, 676); + result = holder.getExtendedMetaData_1(); + !result && holder.setExtendedMetaData_1(result = instanceOf(eClassifier, 88)?new BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$static, castTo(eClassifier, 26)):new BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$static, castTo(eClassifier, 148))); + return result; +} + +function $getExtendedMetaData_0(this$static, ePackage){ + var holder, result; + holder = castTo(ePackage, 675); + result = holder.getExtendedMetaData(); + !result && holder.setExtendedMetaData(result = new BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$static, ePackage)); + return result; +} + +function $getExtendedMetaData_1(this$static, eStructuralFeature){ + var holder, result; + holder = castTo(eStructuralFeature, 677); + result = holder.getExtendedMetaData_0(); + !result && holder.setExtendedMetaData_0(result = new BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$static, eStructuralFeature)); + return result; +} + +function $getLocalAttribute(this$static, eClass, namespace, name_0){ + var allAttributes, eStructuralFeature, featureNamespace, i, result, size_0; + result = null; + allAttributes = $getAllAttributes(this$static, eClass); + for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { + eStructuralFeature = castTo(allAttributes.get_0(i), 170); + if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { + featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if (namespace == null) { + if (featureNamespace == null) { + return eStructuralFeature; + } + else + !result && (result = eStructuralFeature); + } + else if ($equals_5(namespace, featureNamespace)) { + return eStructuralFeature; + } + else + featureNamespace == null && !result && (result = eStructuralFeature); + } + } + return null; +} + +function $getLocalElement(this$static, eClass, namespace, name_0){ + var allElements, eStructuralFeature, featureNamespace, i, result, size_0; + result = null; + allElements = $getAllElements(this$static, eClass); + for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { + eStructuralFeature = castTo(allElements.get_0(i), 170); + if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { + featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); + if (namespace == null) { + if (featureNamespace == null) { + return eStructuralFeature; + } + else + !result && (result = eStructuralFeature); + } + else if ($equals_5(namespace, featureNamespace)) { + return eStructuralFeature; + } + else + featureNamespace == null && !result && (result = eStructuralFeature); + } + } + return null; +} + +function $getMixedFeature(this$static, eClass){ + var eAllAttributes, eAttribute, i, size_0; + switch ($getExtendedMetaData(this$static, eClass).getContentKind()) { + case 3: + case 2: + { + eAllAttributes = $getEAllAttributes(eClass); + for (i = 0 , size_0 = eAllAttributes.size_0; i < size_0; ++i) { + eAttribute = castTo($get_20(eAllAttributes, i), 34); + if ($getFeatureKind($getExtendedMetaData_1(this$static, eAttribute)) == 5) { + return eAttribute; + } + } + break; + } + + } + return null; +} + +function $getNamespace(this$static, ePackage){ + return $isQualified($getExtendedMetaData_0(this$static, ePackage))?ePackage.getNsURI():null; +} + +function $getType(this$static, namespace, name_0){ + var ePackage, ePackage0; + ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); + return !ePackage0?null:$getType_1($getExtendedMetaData_0(this$static, ePackage0), name_0); +} + +function $getType_0(this$static, ePackage, name_0){ + return $getType_1($getExtendedMetaData_0(this$static, ePackage), name_0); +} + +function $matches(wildcards, namespace){ + var i, size_0, suffixlength, wildcard; + if (!wildcards.isEmpty()) { + for (i = 0 , size_0 = wildcards.size_1(); i < size_0; ++i) { + wildcard = castToString(wildcards.get_0(i)); + if (wildcard == null?namespace == null:$equals_5(wildcard.substr(0, 3), '!##')?namespace != null && (suffixlength = namespace.length , !$equals_5(wildcard.substr(wildcard.length - suffixlength, suffixlength), namespace) || wildcard.length != namespace.length + 3) && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace):$equals_5(wildcard, '##any') && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace) || $equals_5(wildcard, namespace)) { + return true; + } + } + } + return false; +} + +function BasicExtendedMetaData(){ + $clinit_BasicExtendedMetaData(); + BasicExtendedMetaData_0.call(this, ($clinit_EPackage$Registry() , INSTANCE_6)); +} + +function BasicExtendedMetaData_0(registry){ + this.annotationURI = (checkCriticalNotNull('http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData'); + this.registry = registry; + new EPackageRegistryImpl; +} + +defineClass(624, 1, {}, BasicExtendedMetaData); +var UNINITIALIZED_EDATA_TYPE, UNINITIALIZED_ESTRUCTURAL_FEATURE; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData', 624); +function $setContentKind(this$static, kind){ + this$static.contentKind = kind; +} + +function $setName_2(this$static, name_0){ + this$static.name_0 = name_0; +} + +function BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$0, eClass){ + this.this$01 = this$0; + this.eClass = eClass; +} + +defineClass(1160, 1, {}, BasicExtendedMetaData$EClassExtendedMetaDataImpl); +_.getBaseType = function getBaseType(){ + return null; +} +; +_.getContentKind = function getContentKind(){ + this.contentKind == -2 && $setContentKind(this, $basicGetContentKind(this.this$01, this.eClass)); + return this.contentKind; +} +; +_.getItemType = function getItemType(){ + return null; +} +; +_.getMemberTypes = function getMemberTypes(){ + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} +; +_.getName = function getName_7(){ + this.name_0 == 'uninitialized' && $setName_2(this, $basicGetName(this.this$01, this.eClass)); + return this.name_0; +} +; +_.getWhiteSpaceFacet = function getWhiteSpaceFacet(){ + return 0; +} +; +_.contentKind = -2; +_.name_0 = 'uninitialized'; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EClassExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EClassExtendedMetaDataImpl', 1160); +function $setBaseType(this$static, baseType){ + this$static.baseType = baseType; +} + +function $setItemType(this$static, itemType){ + this$static.itemType = itemType; +} + +function $setMemberTypes(this$static, memberTypes){ + this$static.memberTypes = memberTypes; +} + +function $setName_3(this$static, name_0){ + this$static.name_0 = name_0; +} + +function $setWhiteSpaceFacet(this$static, whiteSpace){ + this$static.whiteSpace = whiteSpace; +} + +function BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$0, eDataType){ + this.this$01 = this$0; + this.baseType = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE); + this.itemType = UNINITIALIZED_EDATA_TYPE; + this.eDataType = eDataType; +} + +defineClass(1161, 1, {}, BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl); +_.getBaseType = function getBaseType_0(){ + this.baseType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setBaseType(this, $basicGetBaseType(this.this$01, this.eDataType)); + return this.baseType; +} +; +_.getContentKind = function getContentKind_0(){ + return 0; +} +; +_.getItemType = function getItemType_0(){ + this.itemType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setItemType(this, $basicGetItemType(this.this$01, this.eDataType)); + return this.itemType; +} +; +_.getMemberTypes = function getMemberTypes_0(){ + !this.memberTypes && $setMemberTypes(this, $basicGetMemberTypes(this.this$01, this.eDataType)); + return this.memberTypes; +} +; +_.getName = function getName_8(){ + this.name_0 == 'uninitialized' && $setName_3(this, $basicGetName(this.this$01, this.eDataType)); + return this.name_0; +} +; +_.getWhiteSpaceFacet = function getWhiteSpaceFacet_0(){ + this.whiteSpace == -2 && $setWhiteSpaceFacet(this, $basicGetWhiteSpaceFacet(this.this$01, this.eDataType)); + return this.whiteSpace; +} +; +_.name_0 = 'uninitialized'; +_.whiteSpace = -2; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl', 1161); +function $getType_1(this$static, name_0){ + var conflictingEClassifier, eClassifier, eClassifierName, eClassifiers, i, i0, nameToClassifierMap, originalMapSize, result, size_0; + result = null; + !!this$static.nameToClassifierMap && (result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138)); + if (!result) { + eClassifiers = this$static.ePackage.getEClassifiers(); + size_0 = eClassifiers.size_0; + if (!this$static.nameToClassifierMap || $size_2(this$static.nameToClassifierMap) != size_0) { + nameToClassifierMap = new HashMap; + !!this$static.nameToClassifierMap && $putAll(nameToClassifierMap, this$static.nameToClassifierMap); + originalMapSize = nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0; + for (i0 = originalMapSize; i0 < size_0; ++i0) { + eClassifier = castTo($get_20(eClassifiers, i0), 138); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); + !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); + } + if (nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0 != size_0) { + for (i = 0; i < originalMapSize; ++i) { + eClassifier = castTo($get_20(eClassifiers, i), 138); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); + !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); + } + } + this$static.nameToClassifierMap = nameToClassifierMap; + } + result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138); + } + return result; +} + +function $isQualified(this$static){ + var eAnnotation; + this$static.isInitialized || $setQualified(this$static, (eAnnotation = $getAnnotation(this$static.this$01, this$static.ePackage) , !eAnnotation || !$equals_5('false', $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'qualified')))); + return this$static.isQualified; +} + +function $setQualified(this$static, isQualified){ + this$static.isQualified = isQualified; + this$static.isInitialized = true; +} + +function BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$0, ePackage){ + this.this$01 = this$0; + this.ePackage = ePackage; +} + +defineClass(1159, 1, {}, BasicExtendedMetaData$EPackageExtendedMetaDataImpl); +_.isInitialized = false; +_.isQualified = false; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EPackageExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EPackageExtendedMetaDataImpl', 1159); +function $getAffiliation_0(this$static){ + this$static.affiliation == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setAffiliation(this$static, $basicGetAffiliation(this$static.this$01, this$static.eStructuralFeature)); + return this$static.affiliation; +} + +function $getFeatureKind(this$static){ + this$static.featureKind == -2 && $setFeatureKind(this$static, $basicGetFeatureKind(this$static.this$01, this$static.eStructuralFeature)); + return this$static.featureKind; +} + +function $getGroup(this$static){ + this$static.group_0 == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setGroup(this$static, $basicGetGroup(this$static.this$01, this$static.eStructuralFeature)); + return this$static.group_0; +} + +function $getName_0(this$static){ + this$static.name_0 == 'uninitialized' && $setName_4(this$static, $basicGetName_0(this$static.this$01, this$static.eStructuralFeature)); + return this$static.name_0; +} + +function $getNamespace_0(this$static){ + this$static.namespace == 'uninitialized' && $setNamespace(this$static, $basicGetNamespace(this$static.this$01, this$static.eStructuralFeature)); + return this$static.namespace; +} + +function $getWildcards(this$static){ + !this$static.wildcards && $setWildcards(this$static, $basicGetWildcards(this$static.this$01, this$static.eStructuralFeature)); + return this$static.wildcards; +} + +function $setAffiliation(this$static, affiliation){ + this$static.affiliation = affiliation; +} + +function $setFeatureKind(this$static, kind){ + this$static.featureKind = kind; +} + +function $setGroup(this$static, group){ + this$static.group_0 = group; +} + +function $setName_4(this$static, name_0){ + this$static.name_0 = name_0; +} + +function $setNamespace(this$static, namespace){ + this$static.namespace = namespace; +} + +function $setWildcards(this$static, wildcards){ + this$static.wildcards = wildcards; +} + +function BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$0, eStructuralFeature){ + this.this$01 = this$0; + this.group_0 = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE); + this.affiliation = UNINITIALIZED_ESTRUCTURAL_FEATURE; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1162, 1, {}, BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl); +_.featureKind = -2; +_.name_0 = 'uninitialized'; +_.namespace = 'uninitialized'; +var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl', 1162); +function EDataTypeEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(585, 622, $intern_154, EDataTypeEList); +_.getFeatureID_0 = function getFeatureID_13(){ + return this.featureID; +} +; +_.isEObject = function isEObject_4(){ + return false; +} +; +_.resolve = function resolve_8(index_0, object){ + return object; +} +; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_util_EDataTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList', 585); +var Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap'); +function $add_31(this$static, index_0, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique()) { + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + $add_20(this$static, index_0, object); +} + +function $add_32(this$static, feature, index_0, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + $add_20(this$static, $entryIndex(this$static, feature, index_0), isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); +} + +function $add_33(this$static, feature, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (isFeatureMap?equals_Ljava_lang_Object__Z__devirtual$(entry, object):object == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return false; + } + else { + castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); + return true; + } + } + } + } + return $add_21(this$static, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); +} + +function $add_34(this$static, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique() && $contains_12(this$static, entryFeature, entry.getValue())) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry)) { + return false; + } + else { + castTo($set_11(this$static, i, object), 72); + return true; + } + } + } + } + return $add_21(this$static, object); +} + +function $addAll_12(this$static, feature, index_0, collection){ + var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; + if (collection.size_1() == 0) { + return false; + } + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else if (!isFeatureMap) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + if (collection.size_1() > 1) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + if (!isFeatureMap) { + entry = createEntry_5(feature, collection.iterator_0().next_1()); + entryCollection.add_2(entry); + } + } + return $addAll_8(this$static, $entryIndex(this$static, feature, index_0), entryCollection); +} + +function $addAll_13(this$static, feature, collection){ + var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; + if (collection.size_1() == 0) { + return false; + } + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + entry = createEntry_5(feature, object); + entryCollection.contains(entry) || entryCollection.add_2(entry); + } + } + } + else if (!isFeatureMap) { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + entry = createEntry_5(feature, object); + entryCollection.add_2(entry); + } + } + } + else { + if (collection.size_1() > 1) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (collection.contains(isFeatureMap?entry:entry.getValue())) { + return false; + } + else { + for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); + } + return true; + } + } + } + if (!isFeatureMap) { + entry = createEntry_5(feature, collection.iterator_0().next_1()); + entryCollection.add_2(entry); + } + } + return $addAll_9(this$static, entryCollection); +} + +function $addUnique_11(this$static, feature, index_0, object){ + var prototype_0; + this$static.modCount = -1; + $addUnique_5(this$static, $entryIndex(this$static, feature, index_0), ($clinit_FeatureMapUtil() , prototype_0 = castTo(feature, 66).getFeatureMapEntryPrototype() , prototype_0.createEntry(object))); +} + +function $addUnique_12(this$static, entry){ + var index_0, notification, notifications, oldIsSet; + this$static.modCount = -1; + if ($eNotificationRequired(this$static.owner)) { + index_0 = this$static.size_0; + oldIsSet = this$static.size_0 != 0; + $addUnique_0(this$static, entry); + notification = new ENotificationImpl_3(this$static.owner, 3, this$static.featureID, null, entry, index_0, oldIsSet); + notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); + notifications = $shadowAdd_1(this$static, entry, notifications); + if (!notifications) { + $eNotify(this$static.owner, notification); + } + else { + notifications.add_5(notification); + notifications.dispatch_0(); + } + } + else { + $addUnique_0(this$static, entry); + notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); + !!notifications && notifications.dispatch_0(); + } +} + +function $addUnique_13(this$static, object){ + ++this$static.modCount; + $validate_3(this$static, this$static.size_0, object); + $addUnique_12(this$static, castTo(object, 332)); +} + +function $basicAdd_2(this$static, feature, object, notifications){ + var entries, entry, entry0, i, notification, oldIsSet; + if (object == null) { + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry0 = entries[i]; + if (entry0.getEStructuralFeature() == feature) { + return $basicRemove_0(this$static, entry0, notifications); + } + } + } + entry = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object)); + if ($eNotificationRequired(this$static.owner)) { + oldIsSet = !$isEmpty_1(this$static, feature); + notifications = $basicAdd_0(this$static, entry, notifications); + notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, object, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), oldIsSet):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), object, -1, oldIsSet); + notifications?notifications.add_5(notification):(notifications = notification); + } + else { + notifications = $basicAdd_0(this$static, entry, notifications); + } + return notifications; +} + +function $basicIterator(this$static, feature){ + return new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $basicListIterator_0(this$static, feature){ + return new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $basicListIterator_1(this$static, feature, index_0){ + var i, result; + result = new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_16(result); + } + return result; +} + +function $basicRemove_2(this$static, object, notifications){ + var entries, entry, feature, i, match_0, notification; + if (instanceOf(object, 72)) { + return $basicRemove_0(this$static, object, notifications); + } + else { + match_0 = null; + feature = null; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + feature = entry.getEStructuralFeature(); + if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { + match_0 = entry; + break; + } + } + } + if (match_0) { + if ($eNotificationRequired(this$static.owner)) { + notification = feature.isMany()?$createNotification_0(this$static, 4, feature, object, null, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + notifications = $basicRemove_2(this$static, match_0, notifications); + } + return notifications; + } +} + +function $basicRemove_3(this$static, feature, object, notifications){ + var count, entries, entry, i, match_0, notification, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + entries = castTo(this$static.data_0, 119); + match_0 = null; + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + match_0 = entry; + break; + } + ++count; + } + } + } + else if (object != null) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + match_0 = entry; + break; + } + ++count; + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + match_0 = entry; + break; + } + ++count; + } + } + } + if (match_0) { + if ($eNotificationRequired(this$static.owner)) { + notification = feature.isMany()?new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 4, feature, object, null, count, true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + notifications = $basicRemove_2(this$static, match_0, notifications); + } + return notifications; +} + +function $clear_15(this$static, feature){ + var entries, entry, entryCollection, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entryCollection = new BasicEList; + entries = castTo(this$static.data_0, 119); + for (i = this$static.size_0; --i >= 0;) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(entryCollection, entry); + } + !$removeAll_4(this$static, entryCollection) && $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, feature.isMany()?$createNotification_0(this$static, 6, feature, ($clinit_Collections() , EMPTY_LIST), null, -1, false):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, null, null, -1, false)); +} + +function $contains_12(this$static, feature, object){ + return $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $contains_13(this$static, feature, object, resolve){ + var entries, entry, i, i0, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + return true; + } + } + } + else if (object != null) { + for (i0 = 0; i0 < this$static.size_0; ++i0) { + entry = entries[i0]; + if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return true; + } + } + if (resolve) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { + return true; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature()) && entry.getValue() == null) { + return false; + } + } + } + return false; +} + +function $containsAll_1(this$static, feature, collection){ + var i; + for (i = collection.iterator_0(); i.hasNext_0();) { + if (!$contains_12(this$static, feature, i.next_1())) { + return false; + } + } + return true; +} + +function $createNotification_0(this$static, eventType, feature, oldObject, newObject, index_0, wasSet){ + return new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, eventType, feature, oldObject, newObject, index_0, wasSet); +} + +function $entryIndex(this$static, feature, index_0){ + var count, entries, entry, i, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + result = this$static.size_0; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (index_0 == count) { + return i; + } + ++count; + result = i + 1; + } + } + if (index_0 == count) { + return result; + } + else { + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } +} + +function $get_23(this$static, feature, index_0, resolve){ + var count, entries, entry, i, validator, value_0; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + if (isMany_1(this$static.owner, feature)) { + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } + else { + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + return feature.getDefaultValue(); + } +} + +function $get_24(this$static, feature, resolve){ + var count, entries, entry, entryFeature, i, result, validator, value_0; + entries = castTo(this$static.data_0, 119); + if (isMany_1(this$static.owner, feature)) { + return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + if (validator.isValid(entryFeature)) { + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + return entry; + } + else if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { + result = new StringBuilder_1(toString_40(entry.getValue())); + while (++i < this$static.size_0) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + (entryFeature == TEXT || entryFeature == CDATA) && $append_11(result, toString_40(entry.getValue())); + } + return createFromString_2(castTo(feature.getEType(), 148), result.string); + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); + return value_0; + } + } + ++count; + } + return feature.getDefaultValue(); + } +} + +function $indexOf_7(this$static, feature, object){ + return $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $indexOf_8(this$static, feature, object, resolve){ + var entries, entry, i, i0, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + result = 0; + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + return result; + } + ++result; + } + } + } + else if (object != null) { + for (i0 = 0; i0 < this$static.size_0; ++i0) { + entry = entries[i0]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + return result; + } + ++result; + } + } + if (resolve) { + result = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { + return result; + } + ++result; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + return result; + } + ++result; + } + } + } + return -1; +} + +function $inverseAdd_2(this$static, entry, notifications){ + return entry.inverseAdd_0(this$static.owner, this$static.featureID, notifications); +} + +function $inverseAdd_3(this$static, object, notifications){ + return $inverseAdd_2(this$static, castTo(object, 332), notifications); +} + +function $inverseRemove_2(this$static, entry, notifications){ + return entry.inverseRemove_0(this$static.owner, this$static.featureID, notifications); +} + +function $inverseRemove_3(this$static, object, notifications){ + return $inverseRemove_2(this$static, castTo(object, 332), notifications); +} + +function $isEmpty_1(this$static, feature){ + var entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + return false; + } + } + return true; +} + +function $iterator_2(this$static, feature){ + return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $list(this$static, feature){ + return $clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); +} + +function $listIterator_3(this$static, feature){ + return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); +} + +function $listIterator_4(this$static, feature, index_0){ + var i, result; + result = instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_16(result); + } + return result; +} + +function $move_5(this$static, targetIndex, sourceIndex){ + var count, entries, entry, feature, featureSourceIndex, featureTargetIndex, i, isValid, maxIndex, result, sourceEntry, validator; + if ($eNotificationRequired(this$static.owner)) { + if (targetIndex != sourceIndex) { + entries = castTo(this$static.data_0, 119); + sourceEntry = entries[sourceIndex]; + feature = sourceEntry.getEStructuralFeature(); + if (isMany_1(this$static.owner, feature)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + featureTargetIndex = -1; + featureSourceIndex = -1; + count = 0; + for (i = 0 , maxIndex = targetIndex > sourceIndex?targetIndex:sourceIndex; i <= maxIndex; ++i) { + if (i == sourceIndex) { + featureSourceIndex = count++; + } + else { + entry = entries[i]; + isValid = validator.isValid(entry.getEStructuralFeature()); + i == targetIndex && (featureTargetIndex = i == maxIndex && !isValid?count - 1:count); + isValid && ++count; + } + } + result = castTo($move_1(this$static, targetIndex, sourceIndex), 72); + featureSourceIndex != featureTargetIndex && $dispatchNotification(this$static, new ENotificationImpl_18(this$static.owner, 7, feature, valueOf_4(featureSourceIndex), sourceEntry.getValue(), featureTargetIndex)); + return result; + } + } + } + else { + return castTo($move(this$static, targetIndex, sourceIndex), 72); + } + return castTo($move_1(this$static, targetIndex, sourceIndex), 72); +} + +function $move_6(this$static, feature, targetIndex, sourceIndex){ + var count, entries, entry, entrySourceIndex, entryTargetIndex, i, result, validator; + if (isMany_1(this$static.owner, feature)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + result = null; + entryTargetIndex = -1; + entrySourceIndex = -1; + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + count == targetIndex && (entryTargetIndex = i); + if (count == sourceIndex) { + entrySourceIndex = i; + result = entry.getValue(); + } + ++count; + } + } + if (entryTargetIndex == -1) { + throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + count)); + } + if (entrySourceIndex == -1) { + throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + count)); + } + $move_1(this$static, entryTargetIndex, entrySourceIndex); + $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, $createNotification_0(this$static, 7, feature, valueOf_4(sourceIndex), result, targetIndex, true)); + return result; + } + else { + throw toJs(new IllegalArgumentException_0('The feature must be many-valued to support move')); + } +} + +function $move_7(this$static, feature, index_0, object){ + $move_6(this$static, feature, index_0, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)); +} + +function $remove_43(this$static, feature, index_0){ + var count, entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + $remove_35(this$static, i); + return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); +} + +function $remove_44(this$static, feature, object){ + var entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { + $remove_35(this$static, i); + return true; + } + } + } + } + else if (object != null) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { + $remove_35(this$static, i); + return true; + } + } + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (entry.getValue() == null) { + $remove_35(this$static, i); + return true; + } + } + } + } + return false; +} + +function $resolve_2(this$static, index_0, entry){ + var affiliatedFeature, affliatedEntry, entries, feature, featureIndex, i, inverseFeatureID, newEntry, notifications, object, opposite, reference, resolved, validator; + feature = entry.getEStructuralFeature(); + if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0) { + object = castTo(entry.getValue(), 49); + resolved = $eResolveProxy(this$static.owner, object); + if (resolved != object) { + newEntry = createEntry_5(feature, resolved); + $assign(this$static, index_0, $validate_3(this$static, index_0, newEntry)); + notifications = null; + if ($eNotificationRequired(this$static.owner)) { + affiliatedFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.owner.eClass_0(), feature); + if (affiliatedFeature != $getEStructuralFeature(this$static.owner.eClass_0(), this$static.featureID)) { + validator = getValidator(this$static.owner.eClass_0(), feature); + featureIndex = 0; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < index_0; ++i) { + affliatedEntry = entries[i]; + validator.isValid(affliatedEntry.getEStructuralFeature()) && ++featureIndex; + } + notifications = new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 9, affiliatedFeature, object, resolved, featureIndex, false); + notifications.add_5(new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, entry, newEntry, index_0, false)); + } + } + reference = castTo(feature, 18); + opposite = $getEOpposite(reference); + if (opposite) { + notifications = object.eInverseRemove(this$static.owner, $getFeatureID(object.eClass_0(), opposite), null, notifications); + notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, $getFeatureID(resolved.eClass_0(), opposite), null, notifications); + } + else if ((reference.eFlags & $intern_134) != 0) { + inverseFeatureID = -1 - $getFeatureID(this$static.owner.eClass_0(), reference); + notifications = object.eInverseRemove(this$static.owner, inverseFeatureID, null, null); + !castTo(resolved, 49).eInternalContainer() && (notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, inverseFeatureID, null, notifications)); + } + !!notifications && notifications.dispatch_0(); + return newEntry; + } + } + return entry; +} + +function $resolveProxy_0(this$static, eObject){ + return $eResolveProxy(this$static.owner, castTo(eObject, 49)); +} + +function $resolveProxy_1(this$static, feature, entryIndex, index_0, object){ + var entry, notifications, oldObject, resolved; + resolved = $resolveProxy_0(this$static, castTo(object, 56)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + oldObject = castTo(this$static.data_0[entryIndex], 72); + entry = createEntry_5(feature, resolved); + $assign(this$static, entryIndex, $validate_3(this$static, entryIndex, entry)); + if ($eNotificationRequired(this$static.owner)) { + notifications = $createNotification_0(this$static, 9, entry.getEStructuralFeature(), object, resolved, index_0, false); + $add_22(notifications, new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, oldObject, entry, index_0, false)); + $dispatch(notifications); + } + return resolved; + } + return object; +} + +function $set_16(this$static, index_0, object){ + var entries, entry, entryFeature, i, otherEntry, validator; + entry = object; + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this$static.owner, entryFeature)) { + if (entryFeature.isUnique()) { + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), entryFeature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + otherEntry = entries[i]; + if (validator.isValid(otherEntry.getEStructuralFeature()) && i != index_0) { + throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); + } + } + } + return castTo($set_11(this$static, index_0, object), 72); +} + +function $set_17(this$static, newValue){ + $set_15(this$static, instanceOf(newValue, 153)?newValue:castTo(newValue, 1937).featureMap_0()); +} + +function $set_18(this$static, feature, index_0, object){ + var count, currentIndex, entries, entry, i, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + currentIndex = $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); + if (currentIndex >= 0 && currentIndex != index_0) { + throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); + } + } + count = 0; + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + if (count == index_0) { + return castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); + } + ++count; + } + } + throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); + } + } + return null; + } +} + +function $set_19(this$static, feature, object){ + var entries, entry, entryFeature, i, index_0, list, shouldUnset, validator; + if (isMany_1(this$static.owner, feature)) { + list = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)); + $clear_15(list.featureMap, list.feature); + $addAll_14(list, castTo(object, 14)); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + if (validator.isValid(entryFeature)) { + if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { + shouldUnset = $shouldUnset(this$static, feature, object); + index_0 = i; + shouldUnset?$remove_35(this$static, i):++i; + while (i < this$static.size_0) { + entry = entries[i]; + entryFeature = entry.getEStructuralFeature(); + entryFeature == TEXT || entryFeature == CDATA?$remove_35(this$static, i):++i; + } + shouldUnset || castTo($set_11(this$static, index_0, createEntry_5(feature, object)), 72); + } + else + $shouldUnset(this$static, feature, object)?$remove_35(this$static, i):castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); + return; + } + } + $shouldUnset(this$static, feature, object) || $add_21(this$static, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))); + } +} + +function $setting(this$static, feature){ + return isMany_1(this$static.owner, feature)?($clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)):new FeatureMapUtil$FeatureValue(feature, this$static); +} + +function $shadowAdd_1(this$static, entry, notifications){ + var feature, notification, value_0; + feature = entry.getEStructuralFeature(); + value_0 = entry.getValue(); + notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, value_0, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), value_0, -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + return notifications; +} + +function $shadowAdd_2(this$static, object, notifications){ + return $shadowAdd_1(this$static, castTo(object, 332), notifications); +} + +function $shadowRemove_1(this$static, entry, notifications){ + var feature, notification, value_0; + feature = entry.getEStructuralFeature(); + value_0 = entry.getValue(); + notification = feature.isMany()?$createNotification_0(this$static, 4, feature, value_0, null, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, value_0, feature.getDefaultValue(), -1, true); + notifications?notifications.add_5(notification):(notifications = notification); + return notifications; +} + +function $shadowRemove_2(this$static, object, notifications){ + return $shadowRemove_1(this$static, castTo(object, 332), notifications); +} + +function $shadowSet_1(this$static, oldObject, newObject, notifications){ + var feature, newValue, notification, oldValue; + if ($eNotificationRequired(this$static.owner)) { + feature = oldObject.getEStructuralFeature(); + oldValue = oldObject.getValue(); + newValue = newObject.getValue(); + notification = $createNotification_0(this$static, 1, feature, oldValue, newValue, feature.isMany()?$indexOf_8(this$static, feature, newValue, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0):-1, true); + notifications?notifications.add_5(notification):(notifications = notification); + } + return notifications; +} + +function $shouldUnset(this$static, feature, value_0){ + var defaultValue; + if (feature.isUnsettable()) { + return false; + } + else if (feature.getUpperBound() != -2) { + defaultValue = feature.getDefaultValue(); + return defaultValue == null?value_0 == null:equals_Ljava_lang_Object__Z__devirtual$(defaultValue, value_0); + } + else + return feature.getEContainingClass() == this$static.owner.eClass_0() && value_0 == null; +} + +function $size_3(this$static, feature){ + var entries, entry, i, result, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + result = 0; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && ++result; + } + return result; +} + +function $toArray_12(this$static, feature){ + return $toArray_13(this$static, feature, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $toArray_13(this$static, feature, resolve){ + var entries, entry, i, result, validator, value_0; + result = new BasicEList; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + value_0 = entry.getValue(); + $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); + } + } + } + return $toArray_9(result); +} + +function $toArray_14(this$static, feature, array){ + return $toArray_15(this$static, feature, array, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $toArray_15(this$static, feature, array, resolve){ + var entries, entry, i, result, validator, value_0; + result = new BasicEList; + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).isFeatureMap_0()) { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); + } + } + else { + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + value_0 = entry.getValue(); + $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); + } + } + } + return $toArray_10(result, array); +} + +function $unset(this$static, feature){ + var entries, entry, i, removals, validator; + validator = getValidator(this$static.owner.eClass_0(), feature); + removals = null; + entries = castTo(this$static.data_0, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + if (validator.isValid(entry.getEStructuralFeature())) { + !removals && (removals = new BasicEList); + $add_21(removals, entry); + } + } + !!removals && $removeAll_4(this$static, removals); +} + +function $validate_3(this$static, index_0, object){ + var eStructuralFeature, result; + if (this$static.modCount == 0) + return object; + result = castTo($validate_0(this$static, index_0, object), 72); + eStructuralFeature = object.getEStructuralFeature(); + if (!eStructuralFeature.isChangeable() || !this$static.featureMapValidator.isValid(eStructuralFeature)) { + throw toJs(new RuntimeException_0("Invalid entry feature '" + eStructuralFeature.getEContainingClass().name_0 + '.' + eStructuralFeature.getName() + "'")); + } + return result; +} + +function BasicFeatureMap(owner, featureID){ + EDataTypeEList.call(this, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, owner, featureID); + this.wrapper = this; + this.featureMapValidator = getValidator(owner.eClass_0(), $getEStructuralFeature(this.owner.eClass_0(), this.featureID)); +} + +defineClass(75, 585, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, BasicFeatureMap); +_.add_3 = function add_66(index_0, object){ + $add_31(this, index_0, castTo(object, 72)); +} +; +_.add_2 = function add_67(object){ + return $add_34(this, castTo(object, 72)); +} +; +_.addUnique_0 = function addUnique_19(object){ + $addUnique_13(this, castTo(object, 72)); +} +; +_.inverseAdd = function inverseAdd_9(object, notifications){ + return $inverseAdd_3(this, castTo(object, 72), notifications); +} +; +_.inverseRemove = function inverseRemove_9(object, notifications){ + return $inverseRemove_3(this, castTo(object, 72), notifications); +} +; +_.move = function move_20(targetIndex, sourceIndex){ + return $move_5(this, targetIndex, sourceIndex); +} +; +_.resolve = function resolve_9(index_0, entry){ + return $resolve_2(this, index_0, castTo(entry, 72)); +} +; +_.set_2 = function set_37(index_0, object){ + return $set_16(this, index_0, castTo(object, 72)); +} +; +_.shadowAdd = function shadowAdd_2(object, notifications){ + return $shadowAdd_2(this, castTo(object, 72), notifications); +} +; +_.shadowRemove = function shadowRemove_2(object, notifications){ + return $shadowRemove_2(this, castTo(object, 72), notifications); +} +; +_.shadowSet = function shadowSet_2(oldObject, newObject, notifications){ + return $shadowSet_1(this, castTo(oldObject, 72), castTo(newObject, 72), notifications); +} +; +_.validate = function validate_7(index_0, object){ + return $validate_3(this, index_0, castTo(object, 72)); +} +; +_.add_6 = function add_68(feature, object){ + return $add_33(this, feature, object); +} +; +_.addAll_0 = function addAll_35(index_0, collection){ + var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; + uniqueCollection = new BasicEList_0(collection.size_1()); + for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 72); + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this.owner, entryFeature)) { + (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); + } + else { + validator = getValidator(this.owner.eClass_0(), entryFeature); + entries = castTo(this.data_0, 119); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_11(this, j, entry), 72); + include = false; + break; + } + } + include && $add_21(uniqueCollection, entry); + } + } + return $addAll_8(this, index_0, uniqueCollection); +} +; +_.addAll = function addAll_36(collection){ + var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; + uniqueCollection = new BasicEList_0(collection.size_1()); + for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 72); + entryFeature = entry.getEStructuralFeature(); + if (isMany_1(this.owner, entryFeature)) { + (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); + } + else { + validator = getValidator(this.owner.eClass_0(), entryFeature); + entries = castTo(this.data_0, 119); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_11(this, j, entry), 72); + include = false; + break; + } + } + include && $add_21(uniqueCollection, entry); + } + } + return $addAll_9(this, uniqueCollection); +} +; +_.addAllUnique_0 = function addAllUnique_15(collection){ + this.modCount = -1; + return $addAllUnique_3(this, this.size_0, collection); +} +; +_.basicAdd_0 = function basicAdd_4(feature, object, notifications){ + return $basicAdd_2(this, feature, object, notifications); +} +; +_.basicRemove = function basicRemove_4(object, notifications){ + return $basicRemove_2(this, object, notifications); +} +; +_.basicRemove_0 = function basicRemove_5(feature, object, notifications){ + return $basicRemove_3(this, feature, object, notifications); +} +; +_.featureMap_0 = function featureMap_0(){ + return this; +} +; +_.get_7 = function get_67(feature, resolve){ + return $get_24(this, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_2(index_0){ + return castTo($get_20(this, index_0), 72).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_19(index_0){ + return castTo($get_20(this, index_0), 72).getValue(); +} +; +_.getWrapper = function getWrapper(){ + return this.wrapper; +} +; +_.hasInverse = function hasInverse_11(){ + return true; +} +; +_.hasShadow = function hasShadow_2(){ + return true; +} +; +_.isSet_1 = function isSet_13(feature){ + return !$isEmpty_1(this, feature); +} +; +_.newData = function newData_14(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, $intern_163, 332, capacity, 0, 1); +} +; +_.resolveProxy = function resolveProxy_0(eObject){ + return $resolveProxy_0(this, eObject); +} +; +_.set_1 = function set_38(newValue){ + $set_17(this, newValue); +} +; +_.set_3 = function set_39(feature, object){ + $set_19(this, feature, object); +} +; +_.setting = function setting_0(feature){ + return $setting(this, feature); +} +; +_.unset_0 = function unset_9(feature){ + $unset(this, feature); +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap', 75); +function $checkModCount(this$static){ + if (this$static.featureMap.modCount != this$static.expectedModCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function $hasNext_8(this$static){ + switch (this$static.prepared) { + case 2: + { + return true; + } + + case 1: + { + return false; + } + + case -1: + { + ++this$static.entryCursor; + } + + default:{ + return this$static.scanNext(); + } + + } +} + +function $hasPrevious(this$static){ + switch (this$static.prepared) { + case -2: + { + return true; + } + + case -1: + { + return false; + } + + case 1: + { + --this$static.entryCursor; + } + + default:{ + return this$static.scanPrevious(); + } + + } +} + +function $next_16(this$static){ + var newPreparedResult; + if ($hasNext_8(this$static)) { + $checkModCount(this$static); + if (this$static.resolve_0()) { + newPreparedResult = $resolveProxy_1(this$static.featureMap, this$static.eStructuralFeature, this$static.entryCursor, this$static.cursor, this$static.preparedResult); + this$static.preparedResult = newPreparedResult; + } + this$static.lastCursor = this$static.cursor; + ++this$static.cursor; + ++this$static.entryCursor; + this$static.prepared = 0; + return this$static.preparedResult; + } + else { + throw toJs(new NoSuchElementException); + } +} + +defineClass(1851, 1, $intern_14); +_.forEachRemaining = function forEachRemaining_59(consumer){ + $forEachRemaining(this, consumer); +} +; +_.add_1 = function add_69(o){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $add_32(this.featureMap, this.eStructuralFeature, this.cursor, o); + this.expectedModCount = this.featureMap.modCount; + $next_16(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.hasNext_0 = function hasNext_49(){ + return $hasNext_8(this); +} +; +_.hasPrevious = function hasPrevious_10(){ + return $hasPrevious(this); +} +; +_.next_1 = function next_49(){ + return $next_16(this); +} +; +_.nextIndex_0 = function nextIndex_11(){ + return this.cursor; +} +; +_.previous_0 = function previous_11(){ + var newPreparedResult; + if ($hasPrevious(this)) { + $checkModCount(this); + this.lastCursor = --this.cursor; + if (this.resolve_0()) { + newPreparedResult = $resolveProxy_1(this.featureMap, this.eStructuralFeature, this.entryCursor, this.cursor, this.preparedResult); + this.preparedResult = newPreparedResult; + } + this.prepared = 0; + return this.preparedResult; + } + else { + throw toJs(new NoSuchElementException); + } +} +; +_.previousIndex = function previousIndex_10(){ + return this.cursor - 1; +} +; +_.remove = function remove_128(){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $remove_43(this.featureMap, this.eStructuralFeature, this.lastCursor); + this.expectedModCount = this.featureMap.modCount; + if (this.lastCursor < this.cursor) { + --this.cursor; + --this.entryCursor; + } + --this.lastCursor; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.resolve_0 = function resolve_10(){ + return false; +} +; +_.set_1 = function set_40(o){ + if (this.lastCursor == -1) { + throw toJs(new IllegalStateException); + } + $checkModCount(this); + try { + $set_18(this.featureMap, this.eStructuralFeature, this.lastCursor, o); + this.expectedModCount = this.featureMap.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + throw toJs(new ConcurrentModificationException); + } + else + throw toJs($e0); + } +} +; +_.cursor = 0; +_.entryCursor = 0; +_.expectedModCount = 0; +_.isFeatureMap = false; +_.lastCursor = 0; +_.prepared = 0; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicFeatureEIterator', 1851); +function BasicFeatureMap$FeatureEIterator(eStructuralFeature, featureMap){ + this.eStructuralFeature = eStructuralFeature; + this.featureMap = featureMap; + this.expectedModCount = featureMap.modCount; + this.isFeatureMap = ($clinit_FeatureMapUtil() , castTo(eStructuralFeature, 66).isFeatureMap_0()); + this.validator = getValidator(featureMap.owner.eClass_0(), eStructuralFeature); +} + +defineClass(410, 1851, $intern_14, BasicFeatureMap$FeatureEIterator); +_.scanNext = function scanNext(){ + var entries, entry, size_0; + size_0 = this.featureMap.size_0; + entries = castTo(this.featureMap.data_0, 119); + while (this.entryCursor < size_0) { + entry = entries[this.entryCursor]; + if (this.validator.isValid(entry.getEStructuralFeature())) { + this.preparedResult = this.isFeatureMap?entry:entry.getValue(); + this.prepared = 2; + return true; + } + ++this.entryCursor; + } + this.prepared = 1; + this.lastCursor = -1; + return false; +} +; +_.scanPrevious = function scanPrevious(){ + var entries, entry; + entries = castTo(this.featureMap.data_0, 119); + while (--this.entryCursor >= 0) { + entry = entries[this.entryCursor]; + if (this.validator.isValid(entry.getEStructuralFeature())) { + this.preparedResult = this.isFeatureMap?entry:entry.getValue(); + this.prepared = -2; + return true; + } + } + this.prepared = -1; + this.lastCursor = -1; + return false; +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$FeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/FeatureEIterator', 410); +function BasicFeatureMap$ResolvingFeatureEIterator(eStructuralFeature, featureMap){ + BasicFeatureMap$FeatureEIterator.call(this, eStructuralFeature, featureMap); +} + +defineClass(662, 410, $intern_14, BasicFeatureMap$ResolvingFeatureEIterator); +_.resolve_0 = function resolve_11(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$ResolvingFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/ResolvingFeatureEIterator', 662); +function EContentsEList$1(){ + EContentsEList.call(this, null, null); +} + +defineClass(955, 486, $intern_157, EContentsEList$1); +_.basicList = function basicList_3(){ + return this; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/1', 955); +function EContentsEList$2($anonymous0, $anonymous1){ + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(956, 486, $intern_157, EContentsEList$2); +_.resolve_0 = function resolve_12(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$2_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/2', 956); +function EContentsEList$FeatureIteratorImpl$1(){ + EContentsEList$FeatureIteratorImpl.call(this, null, null); +} + +defineClass(954, 279, $intern_158, EContentsEList$FeatureIteratorImpl$1); +_.filter_0 = function filter_4(featureFilter){ +} +; +_.hasNext_0 = function hasNext_50(){ + return false; +} +; +_.hasPrevious = function hasPrevious_11(){ + return false; +} +; +var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl/1', 954); +function EDataTypeEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(825, 585, $intern_154, EDataTypeEList$Unsettable); +_.didChange = function didChange_2(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_14(){ + return this.isSet; +} +; +_.unset = function unset_10(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EDataTypeEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList/Unsettable', 825); +function EDataTypeUniqueEList(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(1849, 585, $intern_154, EDataTypeUniqueEList); +_.isUnique = function isUnique_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList', 1849); +function EDataTypeUniqueEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1850, 825, $intern_154, EDataTypeUniqueEList$Unsettable); +_.isUnique = function isUnique_9(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList/Unsettable', 1850); +function EObjectContainmentEList$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(139, 85, $intern_154, EObjectContainmentEList$Resolving); +_.hasProxies = function hasProxies_4(){ + return true; +} +; +_.resolve = function resolve_13(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Resolving', 139); +function EObjectContainmentEList$Unsettable$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1163, 545, $intern_154, EObjectContainmentEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_5(){ + return true; +} +; +_.resolve = function resolve_14(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable/Resolving', 1163); +function EObjectContainmentWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(748, 16, $intern_154, EObjectContainmentWithInverseEList$Unsettable); +_.didChange = function didChange_3(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_15(){ + return this.isSet; +} +; +_.unset = function unset_11(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable', 748); +function EObjectContainmentWithInverseEList$Unsettable$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1173, 748, $intern_154, EObjectContainmentWithInverseEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_6(){ + return true; +} +; +_.resolve = function resolve_15(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable/Resolving', 1173); +function EObjectEList$Unsettable(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(743, 496, $intern_154, EObjectEList$Unsettable); +_.didChange = function didChange_4(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_16(){ + return this.isSet; +} +; +_.unset = function unset_12(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList/Unsettable', 743); +function EObjectResolvingEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(328, 496, $intern_154, EObjectResolvingEList); +_.hasProxies = function hasProxies_7(){ + return true; +} +; +_.resolve = function resolve_16(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList', 328); +function EObjectResolvingEList$Unsettable(dataClass, owner, featureID){ + EObjectEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1641, 743, $intern_154, EObjectResolvingEList$Unsettable); +_.hasProxies = function hasProxies_8(){ + return true; +} +; +_.resolve = function resolve_17(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList/Unsettable', 1641); +function $clinit_EObjectValidator(){ + $clinit_EObjectValidator = emptyMethod; + INSTANCE_9 = new EObjectValidator; +} + +function EObjectValidator(){ +} + +defineClass(1381, 1, {}, EObjectValidator); +var INSTANCE_9; +var Lorg_eclipse_emf_ecore_util_EObjectValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectValidator', 1381); +function EObjectWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(546, 496, $intern_154, EObjectWithInverseEList); +_.getInverseFeatureClass = function getInverseFeatureClass_1(){ + return this.dataClass; +} +; +_.getInverseFeatureID = function getInverseFeatureID_1(){ + return this.inverseFeatureID; +} +; +_.hasInverse = function hasInverse_12(){ + return true; +} +; +_.hasNavigableInverse = function hasNavigableInverse_5(){ + return true; +} +; +_.inverseFeatureID = 0; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList', 546); +function EObjectWithInverseEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1176, 546, $intern_154, EObjectWithInverseEList$ManyInverse); +_.hasManyInverse = function hasManyInverse_3(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/ManyInverse', 1176); +function EObjectWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(625, 546, $intern_154, EObjectWithInverseEList$Unsettable); +_.didChange = function didChange_5(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_17(){ + return this.isSet; +} +; +_.unset = function unset_13(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable', 625); +function EObjectWithInverseEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1175, 625, $intern_154, EObjectWithInverseEList$Unsettable$ManyInverse); +_.hasManyInverse = function hasManyInverse_4(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable/ManyInverse', 1175); +function EObjectWithInverseResolvingEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(749, 546, $intern_154, EObjectWithInverseResolvingEList); +_.hasProxies = function hasProxies_9(){ + return true; +} +; +_.resolve = function resolve_18(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList', 749); +function EObjectWithInverseResolvingEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(31, 749, $intern_154, EObjectWithInverseResolvingEList$ManyInverse); +_.hasManyInverse = function hasManyInverse_5(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/ManyInverse', 31); +function EObjectWithInverseResolvingEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(750, 625, $intern_154, EObjectWithInverseResolvingEList$Unsettable); +_.hasProxies = function hasProxies_10(){ + return true; +} +; +_.resolve = function resolve_19(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable', 750); +function EObjectWithInverseResolvingEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1174, 750, $intern_154, EObjectWithInverseResolvingEList$Unsettable$ManyInverse); +_.hasManyInverse = function hasManyInverse_6(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable/ManyInverse', 1174); +function kind_0(eStructuralFeature){ + var eClassifier, eReference, instanceClass, inverseEReference, result, upper; + result = 0; + eClassifier = $getEType(eStructuralFeature); + !!eClassifier.getInstanceClass() && (result |= 4); + (eStructuralFeature.eFlags & $intern_149) != 0 && (result |= 2); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + inverseEReference = $getEOpposite(eReference); + (eReference.eFlags & $intern_134) != 0 && (result |= 32); + if (inverseEReference) { + $getFeatureCount($getEContainingClass(inverseEReference)); + result |= 8; + upper = inverseEReference.upperBound; + (upper > 1 || upper == -1) && (result |= 16); + (inverseEReference.eFlags & $intern_134) != 0 && (result |= 64); + } + (eReference.eFlags & $intern_63) != 0 && (result |= $intern_150); + result |= $intern_137; + } + else { + if (instanceOf(eClassifier, 457)) { + result |= 512; + } + else { + instanceClass = eClassifier.getInstanceClass(); + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (result |= 256); + } + } + (eStructuralFeature.eFlags & 512) != 0 && (result |= 128); + return result; +} + +defineClass(1164, 622, $intern_154); +_.canContainNull = function canContainNull_6(){ + return (this.kind & 1792) == 0; +} +; +_.didChange = function didChange_6(){ + this.kind |= 1; +} +; +_.hasInstanceClass = function hasInstanceClass_3(){ + return (this.kind & 4) != 0; +} +; +_.hasInverse = function hasInverse_13(){ + return (this.kind & 40) != 0; +} +; +_.hasManyInverse = function hasManyInverse_7(){ + return (this.kind & 16) != 0; +} +; +_.hasNavigableInverse = function hasNavigableInverse_6(){ + return (this.kind & 8) != 0; +} +; +_.hasProxies = function hasProxies_11(){ + return (this.kind & $intern_150) != 0; +} +; +_.isContainment = function isContainment_9(){ + return (this.kind & 32) != 0; +} +; +_.isEObject = function isEObject_5(){ + return (this.kind & $intern_137) != 0; +} +; +_.isInstance = function isInstance_49(object){ + return !this.dataClass?this.getEStructuralFeature().getEType().isInstance(object):isInstance(this.dataClass, object); +} +; +_.isSet_0 = function isSet_18(){ + return (this.kind & 2) != 0?(this.kind & 1) != 0:this.size_0 != 0; +} +; +_.isUnique = function isUnique_10(){ + return (this.kind & 128) != 0; +} +; +_.unset = function unset_14(){ + var oldIsSet; + $clear_13(this); + if ((this.kind & 2) != 0) { + if ($eNotificationRequired(this.owner)) { + oldIsSet = (this.kind & 1) != 0; + this.kind &= -2; + $dispatchNotification(this, new ENotificationImpl_4(this.owner, 2, $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()), oldIsSet, false)); + } + else { + this.kind &= -2; + } + } +} +; +_.useEquals = function useEquals_15(){ + return (this.kind & 1536) == 0; +} +; +_.kind = 0; +var Lorg_eclipse_emf_ecore_util_EcoreEList$Generic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Generic', 1164); +function EcoreEList$Dynamic(kind, dataClass, owner, eStructuralFeature){ + EcoreEList.call(this, dataClass, owner); + this.kind = kind; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1165, 1164, $intern_154, EcoreEList$Dynamic); +_.getEStructuralFeature = function getEStructuralFeature_3(){ + return this.eStructuralFeature; +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEList$Dynamic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Dynamic', 1165); +function EcoreEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(747, 63, $intern_138, EcoreEMap$1); +_.newData = function newData_15(listCapacity){ + return newInstance_11(this.this$01.entryClass, listCapacity); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/1', 747); +function EcoreEMap$DelegateEObjectContainmentEList(this$0, entryClass, owner, featureID){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, entryClass, owner, featureID); +} + +defineClass(746, 85, $intern_154, EcoreEMap$DelegateEObjectContainmentEList); +_.didAdd = function didAdd_4(index_0, newObject){ + $doPut(this.this$01, castTo(newObject, 133)); +} +; +_.didClear = function didClear_2(size_0, oldObjects){ + $doClear_0(this.this$01); +} +; +_.didMove = function didMove_1(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this.this$01 , castTo(movedObject, 133) , lastArg).modCount; +} +; +_.didRemove = function didRemove_3(index_0, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 133)); +} +; +_.didSet = function didSet_2(index_0, newObject, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 133)); + maskUndefined(oldObject) === maskUndefined(newObject) && castTo(oldObject, 133).setHash($hashOf(castTo(newObject, 133).getKey())); + $doPut(this.this$01, castTo(newObject, 133)); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$DelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/DelegateEObjectContainmentEList', 746); +function EcoreEMap$Unsettable(entryEClass, entryClass, owner, featureID){ + this.initializeDelegateEList(); + this.entryClass = entryClass; + this.entryEClass = entryEClass; + this.delegateEList = null; + this.delegateEList = new EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this, entryClass, owner, featureID); +} + +defineClass(1171, 151, $intern_148, EcoreEMap$Unsettable); +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable', 1171); +function EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this$1, dataClass, owner, featureID){ + EcoreEMap$DelegateEObjectContainmentEList.call(this, this$1, dataClass, owner, featureID); +} + +defineClass(1172, 746, $intern_154, EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList); +_.didChange = function didChange_7(){ + this.isSet = true; +} +; +_.isSet_0 = function isSet_19(){ + return this.isSet; +} +; +_.unset = function unset_15(){ + var oldIsSet; + $clear_13(this); + if ($eNotificationRequired(this.owner)) { + oldIsSet = this.isSet; + this.isSet = false; + $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); + } + else { + this.isSet = false; + } +} +; +_.isSet = false; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList', 1172); +function convertToString_2(eDataType, value_0){ + return eDataType.getEPackage().getEFactoryInstance().convertToString(eDataType, value_0); +} + +function copy_1(eObject){ + var copier, result, t; + copier = new EcoreUtil$Copier; + result = $copy_1(copier, eObject); + $copyReferences(copier); + t = result; + return t; +} + +function createFromString_2(eDataType, literal){ + return eDataType.getEPackage().getEFactoryInstance().createFromString(eDataType, literal); +} + +function getConversionDelegateFactory(eDataType){ + var eDataTypeDelegate, eDataTypeDelegate$iterator; + for (eDataTypeDelegate$iterator = getConversionDelegates($getEPackage(eDataType)).iterator_0(); eDataTypeDelegate$iterator.hasNext_0();) { + eDataTypeDelegate = castToString(eDataTypeDelegate$iterator.next_1()); + if ($getEAnnotation(eDataType, eDataTypeDelegate)) { + return $getFactory(($clinit_EDataType$Internal$ConversionDelegate$Factory$Registry() , INSTANCE_5), eDataTypeDelegate); + } + } + return null; +} + +function getConversionDelegates(ePackage){ + var eAnnotation, eDataTypeDelegate, eDataTypeDelegate$array, eDataTypeDelegate$index, eDataTypeDelegate$max, eDataTypeDelegates, result; + if (ePackage) { + eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); + if (eAnnotation) { + eDataTypeDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'conversionDelegates')); + if (eDataTypeDelegates != null) { + result = new ArrayList; + for (eDataTypeDelegate$array = $split_0(eDataTypeDelegates, '\\w+') , eDataTypeDelegate$index = 0 , eDataTypeDelegate$max = eDataTypeDelegate$array.length; eDataTypeDelegate$index < eDataTypeDelegate$max; ++eDataTypeDelegate$index) { + eDataTypeDelegate = eDataTypeDelegate$array[eDataTypeDelegate$index]; + result.array[result.array.length] = eDataTypeDelegate; + } + return result; + } + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function getRootContainer(eObject){ + var count, parent_0, result; + result = eObject; + if (eObject) { + count = 0; + for (parent_0 = eObject.eContainer_0(); parent_0; parent_0 = parent_0.eContainer_0()) { + if (++count > $intern_66) { + return getRootContainer(parent_0); + } + result = parent_0; + if (parent_0 == eObject) { + throw toJs(new IllegalStateException_0('There is a cycle in the containment hierarchy of ' + eObject)); + } + } + } + return result; +} + +function getSettingDelegateFactory(eStructuralFeature){ + var settingDelegate, settingDelegate$iterator; + for (settingDelegate$iterator = getSettingDelegates($getEPackage($getEContainingClass(eStructuralFeature))).iterator_0(); settingDelegate$iterator.hasNext_0();) { + settingDelegate = castToString(settingDelegate$iterator.next_1()); + if ($getEAnnotation(eStructuralFeature, settingDelegate)) + return $getFactory_0(($clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry() , INSTANCE_7), settingDelegate); + } + return null; +} + +function getSettingDelegates(ePackage){ + var eAnnotation, result, settingDelegate, settingDelegate$array, settingDelegate$index, settingDelegate$max, settingDelegates; + eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); + if (eAnnotation) { + settingDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'settingDelegates')); + if (settingDelegates != null) { + result = new ArrayList; + for (settingDelegate$array = $split_0(settingDelegates, '\\w+') , settingDelegate$index = 0 , settingDelegate$max = settingDelegate$array.length; settingDelegate$index < settingDelegate$max; ++settingDelegate$index) { + settingDelegate = settingDelegate$array[settingDelegate$index]; + result.array[result.array.length] = settingDelegate; + } + return result; + } + } + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; +} + +function isAncestor(ancestorEObject, eObject){ + var count, eContainer; + if (eObject) { + if (eObject == ancestorEObject) { + return true; + } + count = 0; + for (eContainer = castTo(eObject, 49).eInternalContainer(); !!eContainer && eContainer != eObject; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_66) { + return isAncestor(ancestorEObject, eContainer); + } + if (eContainer == ancestorEObject) { + return true; + } + } + } + return false; +} + +function resolve_20(proxy){ + var ePackage, proxyURI, resolvedObject, resource; + proxyURI = castTo(proxy, 49).eProxyURI_0(); + if (proxyURI) { + try { + resolvedObject = null; + ePackage = $getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), $toString_26($trimFragment(proxyURI))); + if (ePackage) { + resource = ePackage.eResource_0(); + !!resource && (resolvedObject = resource.getEObject($toString_7(proxyURI.fragment))); + } + if (!!resolvedObject && resolvedObject != proxy) { + return resolve_20(resolvedObject); + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + throw toJs($e0); + } + } + return proxy; +} + +function wrapperClassFor(javaClass){ + return !javaClass?null:(javaClass.modifiers & 1) != 0?javaClass == Z_classLit?Ljava_lang_Boolean_2_classLit:javaClass == I_classLit?Ljava_lang_Integer_2_classLit:javaClass == F_classLit?Ljava_lang_Float_2_classLit:javaClass == D_classLit?Ljava_lang_Double_2_classLit:javaClass == J_classLit?Ljava_lang_Long_2_classLit:javaClass == S_classLit?Ljava_lang_Short_2_classLit:javaClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:javaClass; +} + +function $copy_1(this$static, eObject){ + var copyEObject, eAllStructuralFeaturesData, eClass, eClass0, eReference, eStructuralFeature, i, size_0; + if (!eObject) { + return null; + } + else { + copyEObject = (eClass0 = eObject.eClass_0() , !eClass0?null:$getEPackage(eClass0).getEFactoryInstance().create_3(eClass0)); + if (copyEObject) { + $put_11(this$static, eObject, copyEObject); + eClass = eObject.eClass_0(); + for (i = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { + eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); + if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { + if (instanceOf(eStructuralFeature, 322)) { + $copyAttribute(this$static, castTo(eStructuralFeature, 34), eObject, copyEObject); + } + else { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) != 0 && $copyContainment(this$static, eReference, eObject, copyEObject); + } + } + } + eObject.eIsProxy() && castTo(copyEObject, 49).eSetProxyURI(castTo(eObject, 49).eProxyURI_0()); + } + return copyEObject; + } +} + +function $copyAll(this$static, eObjects){ + var object, object$iterator, result, t; + result = new ArrayList_0(eObjects.size_1()); + for (object$iterator = eObjects.iterator_0(); object$iterator.hasNext_0();) { + object = object$iterator.next_1(); + t = $copy_1(this$static, castTo(object, 56)); + !!t && (result.array[result.array.length] = t , true); + } + return result; +} + +function $copyAttribute(this$static, eAttribute, eObject, copyEObject){ + var featureMap, setting, targetEStructuralFeature; + if (eObject.eIsSet_0(eAttribute)) { + $clinit_FeatureMapUtil(); + if ($isFeatureMap(eAttribute)) { + featureMap = castTo(eObject.eGet_0(eAttribute), 153); + $copyFeatureMap(this$static, featureMap); + } + else { + setting = (targetEStructuralFeature = eAttribute , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); + !!setting && $copyAttributeValue(eObject.eGet_0(eAttribute), setting); + } + } +} + +function $copyAttributeValue(value_0, setting){ + setting.set_1(value_0); +} + +function $copyContainment(this$static, eReference, eObject, copyEObject){ + var setting, target, targetEStructuralFeature, upper, value_0; + if (eObject.eIsSet_0(eReference)) { + setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); + if (setting) { + value_0 = eObject.eGet_0(eReference); + upper = eReference.upperBound; + if (upper > 1 || upper == -1) { + target = castTo(value_0, 15); + setting.set_1($copyAll(this$static, target)); + } + else { + setting.set_1($copy_1(this$static, castTo(value_0, 56))); + } + } + } +} + +function $copyFeatureMap(this$static, featureMap){ + var feature, i, size_0, value_0; + for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { + feature = featureMap.getEStructuralFeature_0(i); + if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { + value_0 = featureMap.getValue_1(i); + value_0 != null && $copy_1(this$static, castTo(value_0, 56)); + } + } +} + +function $copyReference(this$static, eReference, eObject, copyEObject){ + var copyReferencedEObject, index_0, isBidirectional, k, position, referencedEObject, setting, source, target, targetEStructuralFeature, upper, value_0; + if (eObject.eIsSet_0(eReference)) { + setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); + if (setting) { + value_0 = eObject.eGet_1(eReference, this$static.resolveProxies); + upper = eReference.upperBound; + if (upper > 1 || upper == -1) { + source = castTo(value_0, 69); + target = castTo(setting, 69); + if (source.isEmpty()) { + target.clear_0(); + } + else { + isBidirectional = !!$getEOpposite(eReference); + index_0 = 0; + for (k = this$static.resolveProxies?source.iterator_0():source.basicIterator(); k.hasNext_0();) { + referencedEObject = castTo(k.next_1(), 56); + copyReferencedEObject = castTo($get_16(this$static, referencedEObject), 56); + if (!copyReferencedEObject) { + if (this$static.useOriginalReferences && !isBidirectional) { + target.addUnique(index_0, referencedEObject); + ++index_0; + } + } + else { + if (isBidirectional) { + position = target.indexOf_0(copyReferencedEObject); + position == -1?target.addUnique(index_0, copyReferencedEObject):index_0 != position && target.move_0(index_0, copyReferencedEObject); + } + else { + target.addUnique(index_0, copyReferencedEObject); + } + ++index_0; + } + } + } + } + else { + if (value_0 == null) { + setting.set_1(null); + } + else { + copyReferencedEObject = $get_16(this$static, value_0); + copyReferencedEObject == null?this$static.useOriginalReferences && !$getEOpposite(eReference) && setting.set_1(value_0):setting.set_1(copyReferencedEObject); + } + } + } + } +} + +function $copyReferences(this$static){ + var copyEObject, copyFeatureMap, copyFeatureMapSize, copyReferencedEObject, eAllStructuralFeaturesData, eClass, eObject, eReference, eStructuralFeature, entry, entry$iterator, feature, featureMap, featureMapSize, j, k, l, reference, referencedEObject, size_0, targetEStructuralFeature, theOpposite; + for (entry$iterator = new LinkedHashMap$EntrySet$EntryIterator(new LinkedHashMap$EntrySet(this$static)); entry$iterator.next_0 != entry$iterator.this$11.this$01.head;) { + entry = $next_9(entry$iterator); + eObject = castTo(entry.key, 56); + copyEObject = castTo(entry.value_0, 56); + eClass = eObject.eClass_0(); + for (j = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; j < size_0; ++j) { + eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , j >= 0 && j < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[j]:null); + if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) == 0 && (theOpposite = $getEOpposite(eReference) , !(!!theOpposite && (theOpposite.eFlags & $intern_134) != 0)) && $copyReference(this$static, eReference, eObject, copyEObject); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + copyFeatureMap = (targetEStructuralFeature = eStructuralFeature , castTo(!targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature), 153)); + if (copyFeatureMap) { + featureMap = castTo(eObject.eGet_0(eStructuralFeature), 153); + copyFeatureMapSize = copyFeatureMap.size_1(); + for (k = 0 , featureMapSize = featureMap.size_1(); k < featureMapSize; ++k) { + feature = featureMap.getEStructuralFeature_0(k); + if (instanceOf(feature, 99)) { + referencedEObject = featureMap.getValue_1(k); + copyReferencedEObject = $get_16(this$static, referencedEObject); + if (copyReferencedEObject == null && referencedEObject != null) { + reference = castTo(feature, 18); + if (!this$static.useOriginalReferences || (reference.eFlags & $intern_134) != 0 || !!$getEOpposite(reference)) { + continue; + } + copyReferencedEObject = referencedEObject; + } + if (!copyFeatureMap.add_6(feature, copyReferencedEObject)) { + for (l = 0; l < copyFeatureMapSize; ++l) { + if (copyFeatureMap.getEStructuralFeature_0(l) == feature && maskUndefined(copyFeatureMap.getValue_1(l)) === maskUndefined(copyReferencedEObject)) { + copyFeatureMap.move(copyFeatureMap.size_1() - 1, l); + --copyFeatureMapSize; + break; + } + } + } + } + else { + copyFeatureMap.add_6(featureMap.getEStructuralFeature_0(k), featureMap.getValue_1(k)); + } + } + } + } + } + } + } + } +} + +function EcoreUtil$Copier(){ + LinkedHashMap.call(this); + this.resolveProxies = true; + this.useOriginalReferences = true; +} + +defineClass(1168, 228, $intern_76, EcoreUtil$Copier); +_.resolveProxies = false; +_.useOriginalReferences = false; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$Copier_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/Copier', 1168); +function $hasNext_9(this$static){ + if (this$static.preparedResult == null) { + while (this$static.iterator.hasNext_0()) { + this$static.preparedResult = this$static.iterator.next_1(); + if (!castTo(this$static.preparedResult, 49).eDirectResource()) { + return true; + } + } + this$static.preparedResult = null; + return false; + } + else { + return true; + } +} + +function EcoreUtil$ProperContentIterator(eObject){ + var contents; + contents = eObject.eContents_0(); + this.iterator = instanceOf(contents, 69)?castTo(contents, 69).basicIterator():contents.iterator_0(); +} + +defineClass(745, 1, $intern_6, EcoreUtil$ProperContentIterator); +_.forEachRemaining = function forEachRemaining_60(consumer){ + $forEachRemaining(this, consumer); +} +; +_.hasNext_0 = function hasNext_51(){ + return $hasNext_9(this); +} +; +_.next_1 = function next_50(){ + var result; + $hasNext_9(this); + result = this.preparedResult; + this.preparedResult = null; + return result; +} +; +_.remove = function remove_129(){ + this.iterator.remove(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ProperContentIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ProperContentIterator', 745); +function $clinit_EcoreValidator(){ + $clinit_EcoreValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_10 = new EcoreValidator; +} + +function EcoreValidator(){ + $clinit_XMLTypeValidator(); +} + +defineClass(1382, 1381, {}, EcoreValidator); +var INSTANCE_10; +var Lorg_eclipse_emf_ecore_util_EcoreValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreValidator', 1382); +function $clinit_FeatureMapUtil(){ + $clinit_FeatureMapUtil = emptyMethod; + NULL_VALIDATOR = new FeatureMapUtil$1; +} + +function createEntry_5(eStructuralFeature, value_0){ + $clinit_FeatureMapUtil(); + var prototype_0; + prototype_0 = castTo(eStructuralFeature, 66).getFeatureMapEntryPrototype(); + $validate_2(prototype_0, value_0); + return prototype_0.createEntry(value_0); +} + +function getValidator(containingClass, eStructuralFeature){ + $clinit_FeatureMapUtil(); + var extendedMetaData, holder, result, validatorMap; + if (!eStructuralFeature) { + return NULL_VALIDATOR; + } + else if (eStructuralFeature == ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__MIXED) || (eStructuralFeature == ANY_TYPE__MIXED || eStructuralFeature == ANY_TYPE__ANY || eStructuralFeature == ANY_TYPE__ANY_ATTRIBUTE) && containingClass != ANY_TYPE) { + return new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature); + } + else { + holder = castTo(eStructuralFeature, 677); + extendedMetaData = holder.getExtendedMetaData_0(); + if (!extendedMetaData) { + $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); + extendedMetaData = holder.getExtendedMetaData_0(); + } + validatorMap = (!extendedMetaData.validatorMap && (extendedMetaData.validatorMap = new HashMap) , extendedMetaData.validatorMap); + result = castTo(getEntryValueOrNull($getEntry_0(validatorMap.hashCodeMap, containingClass)), 1942); + !result && $put_6(validatorMap, containingClass, result = new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature)); + return result; + } +} + +function isMany_1(owner, feature){ + $clinit_FeatureMapUtil(); + var affiliation, affiliationUpperBound, eClass; + if (feature.isMany()) { + return true; + } + else if (feature.getUpperBound() == -2) { + if (feature == ($clinit_XMLTypeFeatures() , TEXT) || feature == CDATA || feature == COMMENT || feature == PROCESSING_INSTRUCTION) { + return true; + } + else { + eClass = owner.eClass_0(); + if ($getFeatureID(eClass, feature) >= 0) { + return false; + } + else { + affiliation = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, feature); + if (!affiliation) { + return true; + } + else { + affiliationUpperBound = affiliation.getUpperBound(); + return (affiliationUpperBound > 1 || affiliationUpperBound == -1) && $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, affiliation)) != 3; + } + } + } + } + else { + return false; + } +} + +var NULL_VALIDATOR; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$Validator_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMapUtil/Validator'); +function FeatureMapUtil$1(){ +} + +defineClass(1260, 1, {1942:1}, FeatureMapUtil$1); +_.isValid = function isValid_2(eStructuralFeature){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/1', 1260); +function $clinit_FeatureMapUtil$BasicValidator(){ + $clinit_FeatureMapUtil$BasicValidator = emptyMethod; + ANY_WILDCARD = ($clinit_Collections() , new Collections$SingletonList('##any')); +} + +function $isIncluded(this$static, feature){ + var featureKind; + if (this$static.wildcards == ANY_WILDCARD) { + featureKind = $getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature)); + return this$static.isElement?featureKind == 4 && feature != ($clinit_XMLTypeFeatures() , TEXT) && feature != ($clinit_XMLTypeFeatures() , CDATA) && feature != ($clinit_XMLTypeFeatures() , COMMENT) && feature != ($clinit_XMLTypeFeatures() , PROCESSING_INSTRUCTION):featureKind == 2; + } + if (!!this$static.groupMembers && (this$static.groupMembers.contains(feature) || this$static.groupMembers.contains($getGroup($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature))) || this$static.groupMembers.contains($getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.containingClass, feature)))) { + return true; + } + if (this$static.wildcards) { + if ($matches(($clinit_ExtendedMetaData() , this$static.wildcards), $getNamespace_0($getExtendedMetaData_1(INSTANCE_11, feature)))) { + featureKind = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature)); + return this$static.isElement?featureKind == 4:featureKind == 2; + } + } + return false; +} + +function FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature){ + $clinit_FeatureMapUtil$BasicValidator(); + var eAllStructuralFeaturesData, feature, feature$iterator, group, i, mixedFeature, size_0; + this.cache = new FeatureMapUtil$BasicValidator$Cache(this); + this.containingClass = containingClass; + this.eStructuralFeature = eStructuralFeature; + this.wildcards = $getWildcards($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); + if (this.wildcards.isEmpty()) { + if ((mixedFeature = $getMixedFeature(INSTANCE_11, containingClass)) == eStructuralFeature) { + this.isElement = true; + this.groupMembers = new ArrayList; + this.wildcards = new UniqueEList; + this.wildcards.add_2('http://www.eclipse.org/emf/2003/XMLType'); + castTo($getType_1($getExtendedMetaData_0(INSTANCE_11, $getEPackage(containingClass)), ''), 26) == containingClass && this.wildcards.add_2($getNamespace(INSTANCE_11, $getEPackage(containingClass))); + for (feature$iterator = $getAllElements(INSTANCE_11, containingClass).iterator_0(); feature$iterator.hasNext_0();) { + feature = castTo(feature$iterator.next_1(), 170); + switch ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature))) { + case 4: + { + this.groupMembers.add_2(feature); + break; + } + + case 5: + { + this.wildcards.addAll($getWildcards($getExtendedMetaData_1(INSTANCE_11, feature))); + break; + } + + } + } + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + this.isElement = true; + this.wildcards = null; + this.groupMembers = new ArrayList; + for (i = 0 , size_0 = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { + feature = (eAllStructuralFeaturesData = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); + for (group = $getGroup($getExtendedMetaData_1(INSTANCE_11, feature)); group; group = $getGroup($getExtendedMetaData_1(INSTANCE_11, group))) { + group == eStructuralFeature && this.groupMembers.add_2(feature); + } + } + } + else if ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 1 && !!mixedFeature) { + this.wildcards = null; + this.groupMembers = ($clinit_XMLTypeFeatures() , TEXTUAL_FEATURES); + } + else { + this.wildcards = null; + this.isElement = true; + this.groupMembers = ($clinit_Collections() , new Collections$SingletonList(eStructuralFeature)); + } + } + } + else { + this.isElement = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 5; + this.wildcards.equals_0(ANY_WILDCARD) && (this.wildcards = ANY_WILDCARD); + } +} + +defineClass(757, 1, {1942:1}, FeatureMapUtil$BasicValidator); +_.isValid = function isValid_3(feature){ + var result; + if (this.eStructuralFeature == feature) + return true; + result = castToBoolean($get_10(this.cache, feature)); + if (result == null) { + if ($isIncluded(this, feature)) { + $put_15(this.cache, feature, ($clinit_Boolean() , TRUE_0)); + return true; + } + else { + $put_15(this.cache, feature, ($clinit_Boolean() , FALSE_0)); + return false; + } + } + else { + return result == ($clinit_Boolean() , TRUE_0); + } +} +; +_.isElement = false; +var ANY_WILDCARD; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator', 757); +function $put_15(this$static, eStructuralFeature, isValid){ + var newCache; + newCache = new FeatureMapUtil$BasicValidator$Cache(this$static.this$11); + $putAll(newCache, this$static.this$11.cache); + $put_9(newCache.hashCodeMap, eStructuralFeature, isValid); + this$static.this$11.cache = newCache; +} + +function FeatureMapUtil$BasicValidator$Cache(this$1){ + this.this$11 = this$1; + HashMap.call(this); +} + +defineClass(758, 43, $intern_76, FeatureMapUtil$BasicValidator$Cache); +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator$Cache_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator/Cache', 758); +function $addAll_14(this$static, collection){ + return $addAll_13(this$static.featureMap, this$static.feature, collection); +} + +function $basicRemove_4(this$static, object, notifications){ + return $basicRemove_3(this$static.featureMap, this$static.feature, object, notifications); +} + +function $clear_16(this$static){ + $clear_15(this$static.featureMap, this$static.feature); +} + +function $isEmpty_2(this$static){ + return $isEmpty_1(this$static.featureMap, this$static.feature); +} + +function FeatureMapUtil$FeatureEList(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(501, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 69:1, 95:1}, FeatureMapUtil$FeatureEList); +_.add_3 = function add_70(index_0, object){ + $add_32(this.featureMap, this.feature, index_0, object); +} +; +_.add_2 = function add_71(object){ + return $add_33(this.featureMap, this.feature, object); +} +; +_.addAll_0 = function addAll_37(index_0, collection){ + return $addAll_12(this.featureMap, this.feature, index_0, collection); +} +; +_.addAll = function addAll_38(collection){ + return $addAll_14(this, collection); +} +; +_.addUnique = function addUnique_20(index_0, object){ + $addUnique_11(this.featureMap, this.feature, index_0, object); +} +; +_.basicAdd = function basicAdd_5(object, notifications){ + return $basicAdd_2(this.featureMap, this.feature, object, notifications); +} +; +_.basicGet = function basicGet_6(index_0){ + return $get_23(this.featureMap, this.feature, index_0, false); +} +; +_.basicIterator = function basicIterator_7(){ + return $basicIterator(this.featureMap, this.feature); +} +; +_.basicListIterator = function basicListIterator_15(){ + return $basicListIterator_0(this.featureMap, this.feature); +} +; +_.basicListIterator_0 = function basicListIterator_16(index_0){ + return $basicListIterator_1(this.featureMap, this.feature, index_0); +} +; +_.basicRemove = function basicRemove_6(object, notifications){ + return $basicRemove_4(this, object, notifications); +} +; +_.clear_0 = function clear_66(){ + $clear_16(this); +} +; +_.contains = function contains_67(object){ + return $contains_12(this.featureMap, this.feature, object); +} +; +_.containsAll = function containsAll_15(collection){ + return $containsAll_1(this.featureMap, this.feature, collection); +} +; +_.get_0 = function get_68(index_0){ + return $get_23(this.featureMap, this.feature, index_0, true); +} +; +_.get_6 = function get_69(resolve){ + return this; +} +; +_.indexOf_0 = function indexOf_18(object){ + return $indexOf_7(this.featureMap, this.feature, object); +} +; +_.isEmpty = function isEmpty_34(){ + return $isEmpty_2(this); +} +; +_.isSet_0 = function isSet_20(){ + return !$isEmpty_1(this.featureMap, this.feature); +} +; +_.iterator_0 = function iterator_90(){ + return $iterator_2(this.featureMap, this.feature); +} +; +_.listIterator_0 = function listIterator_33(){ + return $listIterator_3(this.featureMap, this.feature); +} +; +_.listIterator_1 = function listIterator_34(index_0){ + return $listIterator_4(this.featureMap, this.feature, index_0); +} +; +_.move = function move_21(targetIndex, sourceIndex){ + return $move_6(this.featureMap, this.feature, targetIndex, sourceIndex); +} +; +_.move_0 = function move_22(index_0, object){ + $move_7(this.featureMap, this.feature, index_0, object); +} +; +_.remove_2 = function remove_130(index_0){ + return $remove_43(this.featureMap, this.feature, index_0); +} +; +_.remove_1 = function remove_131(object){ + return $remove_44(this.featureMap, this.feature, object); +} +; +_.set_2 = function set_41(index_0, object){ + return $set_18(this.featureMap, this.feature, index_0, object); +} +; +_.set_1 = function set_42(newValue){ + $clear_15(this.featureMap, this.feature); + $addAll_14(this, castTo(newValue, 15)); +} +; +_.size_1 = function size_80(){ + return $size_3(this.featureMap, this.feature); +} +; +_.toArray = function toArray_42(){ + return $toArray_12(this.featureMap, this.feature); +} +; +_.toArray_0 = function toArray_43(array){ + return $toArray_14(this.featureMap, this.feature, array); +} +; +_.toString_0 = function toString_157(){ + var i, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = $basicIterator(this.featureMap, this.feature); $hasNext_8(i);) { + $append_3(stringBuffer, valueOf_7($next_16(i))); + $hasNext_8(i) && (stringBuffer.string += ', ' , stringBuffer); + } + stringBuffer.string += ']'; + return stringBuffer.string; +} +; +_.unset = function unset_16(){ + $clear_15(this.featureMap, this.feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureEList', 501); +function $getFeatureID_0(this$static, expectedClass){ + var containerClass; + if (this$static.featureID == -1 && !!this$static.feature) { + containerClass = this$static.feature.getContainerClass(); + this$static.featureID = !containerClass?$getFeatureID(this$static.notifier.eClass_0(), this$static.feature):this$static.notifier.eDerivedStructuralFeatureID(this$static.feature.getFeatureID_0(), containerClass); + } + return this$static.notifier.eBaseStructuralFeatureID(this$static.featureID, expectedClass); +} + +function FeatureMapUtil$FeatureENotificationImpl(owner, eventType, feature, oldObject, newObject, index_0, wasSet){ + NotificationImpl_2.call(this, eventType, oldObject, newObject, index_0, wasSet); + this.notifier = owner; + this.feature = feature; +} + +defineClass(627, 36, $intern_142, FeatureMapUtil$FeatureENotificationImpl); +_.getFeatureID = function getFeatureID_14(expectedClass){ + return $getFeatureID_0(this, expectedClass); +} +; +_.merge_0 = function merge_5(notification){ + var addedValues, collection, newPositions, notificationEventType, notificationNotifier, positions, removedValues; + switch (this.eventType) { + case 1: + case 2: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.newValue = notification.getNewValue(); + notification.getEventType() == 1 && (this.eventType = 1); + return true; + } + break; + } + + case 3: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 5; + addedValues = new BasicEList_0(2); + $add_21(addedValues, this.newValue); + $add_21(addedValues, notification.getNewValue()); + this.newValue = addedValues; + return true; + } + break; + } + + } + break; + } + + case 5: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + collection = castTo(this.newValue, 14); + collection.add_2(notification.getNewValue()); + return true; + } + break; + } + + } + break; + } + + case 4: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 3: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 1; + this.newValue = notification.getNewValue(); + return true; + } + break; + } + + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + this.eventType = 6; + removedValues = new BasicEList_0(2); + $add_21(removedValues, this.oldValue); + $add_21(removedValues, notification.getOldValue()); + this.oldValue = removedValues; + positions = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position, notification.getPosition_0()]); + this.newValue = positions; + return true; + } + break; + } + + } + break; + } + + case 6: + { + notificationEventType = notification.getEventType(); + switch (notificationEventType) { + case 4: + { + notificationNotifier = notification.getNotifier(); + if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { + collection = castTo(this.oldValue, 14); + collection.add_2(notification.getOldValue()); + positions = castTo(this.newValue, 48); + newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); + arraycopy(positions, 0, newPositions, 0, positions.length); + newPositions[positions.length] = notification.getPosition_0(); + this.newValue = newPositions; + return true; + } + break; + } + + } + break; + } + + } + return false; +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureENotificationImpl', 627); +function FeatureMapUtil$FeatureFeatureMap(feature, featureMap){ + FeatureMapUtil$FeatureEList.call(this, feature, featureMap); + this.wrapper = this; +} + +defineClass(552, 501, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, FeatureMapUtil$FeatureFeatureMap); +_.add_6 = function add_72(feature, value_0){ + return $add_33(this.featureMap, feature, value_0); +} +; +_.basicAdd_0 = function basicAdd_6(feature, object, notifications){ + return $basicAdd_2(this.featureMap, feature, object, notifications); +} +; +_.basicRemove_0 = function basicRemove_7(feature, object, notifications){ + return $basicRemove_3(this.featureMap, feature, object, notifications); +} +; +_.featureMap_0 = function featureMap_1(){ + return this; +} +; +_.get_7 = function get_70(feature, resolve){ + return $get_24(this.featureMap, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_4(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_20(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getValue(); +} +; +_.getWrapper = function getWrapper_0(){ + return this.wrapper; +} +; +_.isSet_1 = function isSet_21(feature){ + return !$isEmpty_1(this.featureMap, feature); +} +; +_.set_3 = function set_43(feature, object){ + $set_19(this.featureMap, feature, object); +} +; +_.setting = function setting_1(feature){ + return $setting(this.featureMap, feature); +} +; +_.unset_0 = function unset_17(feature){ + $unset(this.featureMap, feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureFeatureMap', 552); +function FeatureMapUtil$FeatureValue(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(1259, 1, $intern_147, FeatureMapUtil$FeatureValue); +_.get_6 = function get_71(resolve){ + return $get_23(this.featureMap, this.feature, -1, resolve); +} +; +_.isSet_0 = function isSet_22(){ + return !$isEmpty_1(this.featureMap, this.feature); +} +; +_.set_1 = function set_44(newValue){ + $set_19(this.featureMap, this.feature, newValue); +} +; +_.unset = function unset_18(){ + $clear_15(this.featureMap, this.feature); +} +; +var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureValue_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureValue', 1259); +function $clinit_XMLTypeFeatures(){ + $clinit_XMLTypeFeatures = emptyMethod; + TEXT = castTo($get_20($getEStructuralFeatures(($clinit_XMLTypePackage() , eINSTANCE_4).xmlTypeDocumentRootEClass), 6), 34); + CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); + COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); + PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); + $getFeatureMapEntryPrototype(TEXT); + $getFeatureMapEntryPrototype(CDATA); + $getFeatureMapEntryPrototype(COMMENT); + $getFeatureMapEntryPrototype(PROCESSING_INSTRUCTION); + TEXTUAL_FEATURES = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, [TEXT, CDATA])); +} + +var CDATA, COMMENT, PROCESSING_INSTRUCTION, TEXT, TEXTUAL_FEATURES; +var Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'AnyType'); +function InvalidDatatypeValueException(reason){ + RuntimeException_0.call(this, reason); +} + +defineClass(666, 60, $intern_43, InvalidDatatypeValueException); +var Lorg_eclipse_emf_ecore_xml_type_InvalidDatatypeValueException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type', 'InvalidDatatypeValueException', 666); +var Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'ProcessingInstruction'); +var Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'SimpleAnyType'); +var Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'XMLTypeDocumentRoot'); +function $clinit_XMLTypeFactory(){ + $clinit_XMLTypeFactory = emptyMethod; + eINSTANCE_3 = init_5(); +} + +var eINSTANCE_3; +function $clinit_XMLTypePackage(){ + $clinit_XMLTypePackage = emptyMethod; + eINSTANCE_4 = init_6(); +} + +var eINSTANCE_4; +function $clinit_XMLTypePackage$Literals(){ + $clinit_XMLTypePackage$Literals = emptyMethod; + ANY_TYPE = ($clinit_XMLTypePackage() , eINSTANCE_4).anyTypeEClass; + ANY_TYPE__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 0), 34); + ANY_TYPE__ANY = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 1), 34); + ANY_TYPE__ANY_ATTRIBUTE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 2), 34); + PROCESSING_INSTRUCTION_0 = eINSTANCE_4.processingInstructionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 1), 34); + SIMPLE_ANY_TYPE = eINSTANCE_4.simpleAnyTypeEClass; + SIMPLE_ANY_TYPE__RAW_VALUE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 2), 18); + XML_TYPE_DOCUMENT_ROOT = eINSTANCE_4.xmlTypeDocumentRootEClass; + XML_TYPE_DOCUMENT_ROOT__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 2), 18); + XML_TYPE_DOCUMENT_ROOT__CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); + XML_TYPE_DOCUMENT_ROOT__COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); + XML_TYPE_DOCUMENT_ROOT__TEXT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 6), 34); + XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); + DATE = eINSTANCE_4.dateEDataType; + DATE_TIME = eINSTANCE_4.dateTimeEDataType; + DURATION = eINSTANCE_4.durationEDataType; + GDAY = eINSTANCE_4.gDayEDataType; + GMONTH = eINSTANCE_4.gMonthEDataType; + GMONTH_DAY = eINSTANCE_4.gMonthDayEDataType; + GYEAR = eINSTANCE_4.gYearEDataType; + GYEAR_MONTH = eINSTANCE_4.gYearMonthEDataType; + NOTATION = eINSTANCE_4.notationEDataType; + QNAME = eINSTANCE_4.qNameEDataType; + TIME = eINSTANCE_4.timeEDataType; +} + +var ANY_TYPE, ANY_TYPE__ANY, ANY_TYPE__ANY_ATTRIBUTE, ANY_TYPE__MIXED, DATE, DATE_TIME, DURATION, GDAY, GMONTH, GMONTH_DAY, GYEAR, GYEAR_MONTH, NOTATION, PROCESSING_INSTRUCTION_0, QNAME, SIMPLE_ANY_TYPE, SIMPLE_ANY_TYPE__RAW_VALUE, TIME, XML_TYPE_DOCUMENT_ROOT, XML_TYPE_DOCUMENT_ROOT__CDATA, XML_TYPE_DOCUMENT_ROOT__COMMENT, XML_TYPE_DOCUMENT_ROOT__MIXED, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION, XML_TYPE_DOCUMENT_ROOT__TEXT; +function AnyTypeImpl(){ + EObjectImpl.call(this); +} + +defineClass(830, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1}, AnyTypeImpl); +_.eGet = function eGet_32(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); + case 2: + if (coreType) + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; + } + return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_23(otherEnd, featureID, msgs){ + var feature; + switch (featureID) { + case 0: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); + case 1: + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 69)).basicRemove(otherEnd, msgs); + case 2: + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , $basicRemove_2(this.anyAttribute, otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_31(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); + case 2: + return !!this.anyAttribute && this.anyAttribute.size_0 != 0; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_29(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_17(this.mixed, newValue); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_17(this.anyAttribute, newValue); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_31(){ + return $clinit_XMLTypePackage$Literals() , ANY_TYPE; +} +; +_.eUnset = function eUnset_29(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $clear_13(this.anyAttribute); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_158(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (mixed: '; + $append_2(result, this.mixed); + result.string += ', anyAttribute: '; + $append_2(result, this.anyAttribute); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_AnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'AnyTypeImpl', 830); +function $setData_0(this$static, newData){ + this$static.data_0 = newData; +} + +function $setTarget_2(this$static, newTarget){ + this$static.target = newTarget; +} + +function ProcessingInstructionImpl(){ +} + +defineClass(667, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2021:1, 667:1}, ProcessingInstructionImpl); +_.eGet = function eGet_33(featureID, resolve, coreType){ + switch (featureID) { + case 0: + return this.data_0; + case 1: + return this.target; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_32(featureID){ + switch (featureID) { + case 0: + return this.data_0 != null; + case 1: + return this.target != null; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_30(featureID, newValue){ + switch (featureID) { + case 0: + $setData_0(this, castToString(newValue)); + return; + case 1: + $setTarget_2(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_32(){ + return $clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0; +} +; +_.eUnset = function eUnset_30(featureID){ + switch (featureID) { + case 0: + this.data_0 = null; + return; + case 1: + this.target = null; + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_159(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (data: '; + $append_3(result, this.data_0); + result.string += ', target: '; + $append_3(result, this.target); + result.string += ')'; + return result.string; +} +; +_.data_0 = null; +_.target = null; +var Lorg_eclipse_emf_ecore_xml_type_impl_ProcessingInstructionImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'ProcessingInstructionImpl', 667); +function $setInstanceType(this$static, newInstanceType){ + this$static.instanceType = newInstanceType; +} + +function $setRawValue(this$static, newRawValue){ + !this$static.mixed && (this$static.mixed = new BasicFeatureMap(this$static, 0)); + $set_19(this$static.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), newRawValue); +} + +function SimpleAnyTypeImpl(){ + AnyTypeImpl.call(this); +} + +defineClass(668, 830, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1, 2022:1, 668:1}, SimpleAnyTypeImpl); +_.eGet = function eGet_34(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); + case 2: + if (coreType) + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; + return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)); + case 4: + return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))); + case 5: + return this.instanceType; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eIsSet = function eIsSet_33(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); + case 2: + return !!this.anyAttribute && this.anyAttribute.size_0 != 0; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)) != null; + case 4: + return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))) != null; + case 5: + return !!this.instanceType; + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_31(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_17(this.mixed, newValue); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_17(this.anyAttribute, newValue); + return; + case 3: + $setRawValue(this, castToString(newValue)); + return; + case 4: + $setRawValue(this, convertToString_2(this.instanceType, newValue)); + return; + case 5: + $setInstanceType(this, castTo(newValue, 148)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_33(){ + return $clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE; +} +; +_.eUnset = function eUnset_31(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $clear_13(this.anyAttribute); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_19(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), null); + return; + case 4: + $setRawValue(this, convertToString_2(this.instanceType, null)); + return; + case 5: + this.instanceType = null; + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_SimpleAnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'SimpleAnyTypeImpl', 668); +function XMLTypeDocumentRootImpl(){ + EObjectImpl.call(this); +} + +defineClass(669, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2023:1, 669:1}, XMLTypeDocumentRootImpl); +_.eGet = function eGet_35(featureID, resolve, coreType){ + switch (featureID) { + case 0: + if (coreType) + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; + case 1: + return coreType?(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , this.xMLNSPrefixMap):(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $map_1(this.xMLNSPrefixMap)); + case 2: + return coreType?(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , this.xSISchemaLocation):(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $map_1(this.xSISchemaLocation)); + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA)); + case 4: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT)); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)); + case 6: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT)); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); +} +; +_.eInverseRemove_0 = function eInverseRemove_24(otherEnd, featureID, msgs){ + var feature; + switch (featureID) { + case 0: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); + case 1: + return !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $basicRemove_1(this.xMLNSPrefixMap, otherEnd, msgs); + case 2: + return !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $basicRemove_1(this.xSISchemaLocation, otherEnd, msgs); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_4($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)), otherEnd, msgs); + } + return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT):(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), otherEnd, msgs); +} +; +_.eIsSet = function eIsSet_34(featureID){ + switch (featureID) { + case 0: + return !!this.mixed && this.mixed.size_0 != 0; + case 1: + return !!this.xMLNSPrefixMap && this.xMLNSPrefixMap.size_0 != 0; + case 2: + return !!this.xSISchemaLocation && this.xSISchemaLocation.size_0 != 0; + case 3: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + case 4: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + case 5: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + case 6: + return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.eSet = function eSet_32(featureID, newValue){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $set_17(this.mixed, newValue); + return; + case 1: + !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); + $set_14(this.xMLNSPrefixMap, newValue); + return; + case 2: + !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); + $set_14(this.xSISchemaLocation, newValue); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__CDATA), castTo(newValue, 14)); + return; + case 4: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__COMMENT), castTo(newValue, 14)); + return; + case 5: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION), castTo(newValue, 14)); + return; + case 6: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__TEXT), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); +} +; +_.eStaticClass = function eStaticClass_34(){ + return $clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT; +} +; +_.eUnset = function eUnset_32(featureID){ + switch (featureID) { + case 0: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_13(this.mixed); + return; + case 1: + !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); + this.xMLNSPrefixMap.delegateEList.clear_0(); + return; + case 2: + !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); + this.xSISchemaLocation.delegateEList.clear_0(); + return; + case 3: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); + return; + case 4: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); + return; + case 5: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); + return; + case 6: + !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); + $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); + return; + } + $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); +} +; +_.toString_0 = function toString_160(){ + var result; + if ((this.eFlags & 4) != 0) + return $toString_16(this); + result = new StringBuffer_1($toString_16(this)); + result.string += ' (mixed: '; + $append_2(result, this.mixed); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeDocumentRootImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeDocumentRootImpl', 669); +function $clinit_XMLTypeFactoryImpl(){ + $clinit_XMLTypeFactoryImpl = emptyMethod; + $clinit_EFactoryImpl(); + DOUBLE_POSITIVE_INFINITY = $intern_59; + DOUBLE_NEGATIVE_INFINITY = $intern_60; + FLOAT_POSITIVE_INFINITY = new Float($intern_59); + FLOAT_NEGATIVE_INFINITY = new Float($intern_60); +} + +function $booleanValueOf_0(initialValue){ + initialValue = normalize(initialValue, true); + if ($equals_5('true', initialValue) || $equals_5('1', initialValue)) { + return $clinit_Boolean() , TRUE_0; + } + else if ($equals_5('false', initialValue) || $equals_5('0', initialValue)) { + return $clinit_Boolean() , FALSE_0; + } + throw toJs(new InvalidDatatypeValueException("Invalid boolean value: '" + initialValue + "'")); +} + +function $convertBase64Binary(instanceValue){ + return instanceValue == null?null:encode(instanceValue); +} + +function $convertDouble(instanceValue){ + return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; +} + +function $convertENTITIESBaseToString(instanceValue){ + var i, list, result; + if (instanceValue == null) + return null; + list = castTo(instanceValue, 15); + if (list.isEmpty()) + return ''; + result = new StringBuffer; + for (i = list.iterator_0(); i.hasNext_0();) { + $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertFloat(instanceValue){ + return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; +} + +function $convertHexBinary(instanceValue){ + return instanceValue == null?null:encode_0(instanceValue); +} + +function $convertIDREFSBase(instanceValue){ + var item_0, item$iterator, result; + if (!instanceValue) + return null; + if (instanceValue.isEmpty()) + return ''; + result = new StringBuffer; + for (item$iterator = instanceValue.iterator_0(); item$iterator.hasNext_0();) { + item_0 = item$iterator.next_1(); + $append_3(result, castToString(item_0)); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertNMTOKENSBaseToString(instanceValue){ + var i, list, result; + if (instanceValue == null) + return null; + list = castTo(instanceValue, 15); + if (list.isEmpty()) + return ''; + result = new StringBuffer; + for (i = list.iterator_0(); i.hasNext_0();) { + $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); + result.string += ' '; + } + return $substring(result, result.string.length - 1); +} + +function $convertNonNegativeIntegerToString(instanceValue){ + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertNonPositiveIntegerToString(instanceValue){ + return instanceValue == null?null:toString_40(instanceValue); +} + +function $createBase64Binary(literal){ + var value_0; + if (literal == null) + return null; + value_0 = decode_0(normalize(literal, true)); + if (value_0 == null) { + throw toJs(new InvalidDatatypeValueException("Invalid base64Binary value: '" + literal + "'")); + } + return value_0; +} + +function $createDoubleObject(literal){ + var ch_0, length_0, normalizedLiteral, suffixlength; + if (literal == null) { + return null; + } + else { + normalizedLiteral = normalize(literal, true); + suffixlength = 'INF'.length; + if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { + length_0 = normalizedLiteral.length; + if (length_0 == 4) { + ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); + if (ch_0 == 43) { + return DOUBLE_POSITIVE_INFINITY; + } + else if (ch_0 == 45) { + return DOUBLE_NEGATIVE_INFINITY; + } + } + else if (length_0 == 3) { + return DOUBLE_POSITIVE_INFINITY; + } + } + return __parseAndValidateDouble(normalizedLiteral); + } +} + +function $createENTITIESBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createFloatObject(literal){ + var ch_0, length_0, normalizedLiteral, suffixlength; + if (literal == null) { + return null; + } + else { + normalizedLiteral = normalize(literal, true); + suffixlength = 'INF'.length; + if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { + length_0 = normalizedLiteral.length; + if (length_0 == 4) { + ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); + if (ch_0 == 43) { + return FLOAT_POSITIVE_INFINITY; + } + else if (ch_0 == 45) { + return FLOAT_NEGATIVE_INFINITY; + } + } + else if (length_0 == 3) { + return FLOAT_POSITIVE_INFINITY; + } + } + return new Float_0(normalizedLiteral); + } +} + +function $createHexBinary(literal){ + var value_0; + if (literal == null) + return null; + value_0 = decode_1(normalize(literal, true)); + if (value_0 == null) { + throw toJs(new InvalidDatatypeValueException("Invalid hexBinary value: '" + literal + "'")); + } + return value_0; +} + +function $createIDREFSBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createNMTOKENSBase(literal){ + var item_0, item$array, item$index, item$max, result; + if (literal == null) + return null; + result = new ArrayList; + for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { + item_0 = item$array[item$index]; + $add_3(result, normalize(item_0, true)); + } + return result; +} + +function $createNonNegativeIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); +} + +function $createNonPositiveIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); +} + +function XMLTypeFactoryImpl(){ +} + +function init_5(){ + $clinit_XMLTypeFactoryImpl(); + var exception, theXMLTypeFactory; + try { + theXMLTypeFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2024); + if (theXMLTypeFactory) { + return theXMLTypeFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new XMLTypeFactoryImpl; +} + +defineClass(1919, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1, 2024:1}, XMLTypeFactoryImpl); +_.convertToString = function convertToString_3(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 7: + case 8: + case 9: + case 10: + case 16: + case 22: + case 23: + case 24: + case 25: + case 26: + case 32: + case 33: + case 34: + case 36: + case 37: + case 44: + case 45: + case 50: + case 51: + case 53: + case 55: + case 56: + case 57: + case 58: + case 60: + case 61: + case 4: + return instanceValue == null?null:toString_40(instanceValue); + case 19: + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 46: + case 52: + case 54: + case 5: + return castToString(instanceValue); + case 6: + return $convertBase64Binary(castTo(instanceValue, 190)); + case 12: + case 47: + case 49: + case 11: + return $convertToString(this, eDataType, instanceValue); + case 13: + return instanceValue == null?null:$toPlainString(castTo(instanceValue, 240)); + case 15: + case 14: + return instanceValue == null?null:$convertDouble($doubleValue(castToDouble(instanceValue))); + case 17: + return $convertENTITIESBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 18: + return $convertENTITIESBaseToString(instanceValue); + case 21: + case 20: + return instanceValue == null?null:$convertFloat(castTo(instanceValue, 155).value_0); + case 27: + return $convertHexBinary(castTo(instanceValue, 190)); + case 30: + return $convertIDREFSBase(($clinit_XMLTypePackage$Literals() , castTo(instanceValue, 15))); + case 31: + return $convertIDREFSBase(castTo(instanceValue, 15)); + case 40: + return $convertNonPositiveIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 42: + return $convertNMTOKENSBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + case 43: + return $convertNMTOKENSBaseToString(instanceValue); + case 59: + case 48: + return $convertNonNegativeIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +_.create_3 = function create_43(eClass){ + var anyType, ePackage, processingInstruction, simpleAnyType, xmlTypeDocumentRoot; + switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { + case 0: + return anyType = new AnyTypeImpl , anyType; + case 1: + return processingInstruction = new ProcessingInstructionImpl , processingInstruction; + case 2: + return simpleAnyType = new SimpleAnyTypeImpl , simpleAnyType; + case 3: + return xmlTypeDocumentRoot = new XMLTypeDocumentRootImpl , xmlTypeDocumentRoot; + default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); + } +} +; +_.createFromString = function createFromString_3(eDataType, initialValue){ + var result, result0, result1, result10, result11, result12, result13, result14, result2, result3, result4, result5, result6, result7, result8, result9; + switch (eDataType.getClassifierID()) { + case 5: + case 52: + case 4: + return initialValue; + case 6: + return $createBase64Binary(initialValue); + case 8: + case 7: + return initialValue == null?null:$booleanValueOf_0(initialValue); + case 9: + return initialValue == null?null:valueOf_2(__parseAndValidateInt((result0 = normalize(initialValue, true) , result0.length > 0 && (checkCriticalStringElementIndex(0, result0.length) , result0.charCodeAt(0) == 43)?result0.substr(1):result0), -128, 127) << 24 >> 24); + case 10: + return initialValue == null?null:valueOf_2(__parseAndValidateInt((result1 = normalize(initialValue, true) , result1.length > 0 && (checkCriticalStringElementIndex(0, result1.length) , result1.charCodeAt(0) == 43)?result1.substr(1):result1), -128, 127) << 24 >> 24); + case 11: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE), initialValue)); + case 12: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE_TIME), initialValue)); + case 13: + return initialValue == null?null:new BigDecimal_0(normalize(initialValue, true)); + case 15: + case 14: + return $createDoubleObject(initialValue); + case 16: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DURATION), initialValue)); + case 17: + return $createENTITIESBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 18: + return $createENTITIESBase(initialValue); + case 28: + case 29: + case 35: + case 38: + case 39: + case 41: + case 54: + case 19: + return normalize(initialValue, true); + case 21: + case 20: + return $createFloatObject(initialValue); + case 22: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GDAY), initialValue)); + case 23: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH), initialValue)); + case 24: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH_DAY), initialValue)); + case 25: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR), initialValue)); + case 26: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR_MONTH), initialValue)); + case 27: + return $createHexBinary(initialValue); + case 30: + return $createIDREFSBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 31: + return $createIDREFSBase(initialValue); + case 32: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result2 = normalize(initialValue, true) , result2.length > 0 && (checkCriticalStringElementIndex(0, result2.length) , result2.charCodeAt(0) == 43)?result2.substr(1):result2), $intern_42, $intern_0)); + case 33: + return initialValue == null?null:new BigInteger_4((result3 = normalize(initialValue, true) , result3.length > 0 && (checkCriticalStringElementIndex(0, result3.length) , result3.charCodeAt(0) == 43)?result3.substr(1):result3)); + case 34: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result4 = normalize(initialValue, true) , result4.length > 0 && (checkCriticalStringElementIndex(0, result4.length) , result4.charCodeAt(0) == 43)?result4.substr(1):result4), $intern_42, $intern_0)); + case 36: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result5 = normalize(initialValue, true) , result5.length > 0 && (checkCriticalStringElementIndex(0, result5.length) , result5.charCodeAt(0) == 43)?result5.substr(1):result5))); + case 37: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result6 = normalize(initialValue, true) , result6.length > 0 && (checkCriticalStringElementIndex(0, result6.length) , result6.charCodeAt(0) == 43)?result6.substr(1):result6))); + case 40: + return $createNonPositiveIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); + case 42: + return $createNMTOKENSBase(($clinit_XMLTypePackage$Literals() , initialValue)); + case 43: + return $createNMTOKENSBase(initialValue); + case 44: + return initialValue == null?null:new BigInteger_4((result7 = normalize(initialValue, true) , result7.length > 0 && (checkCriticalStringElementIndex(0, result7.length) , result7.charCodeAt(0) == 43)?result7.substr(1):result7)); + case 45: + return initialValue == null?null:new BigInteger_4((result8 = normalize(initialValue, true) , result8.length > 0 && (checkCriticalStringElementIndex(0, result8.length) , result8.charCodeAt(0) == 43)?result8.substr(1):result8)); + case 46: + return normalize(initialValue, false); + case 47: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , NOTATION), initialValue)); + case 59: + case 48: + return $createNonNegativeIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); + case 49: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , QNAME), initialValue)); + case 50: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result9 = normalize(initialValue, true) , result9.length > 0 && (checkCriticalStringElementIndex(0, result9.length) , result9.charCodeAt(0) == 43)?result9.substr(1):result9), $intern_161, 32767) << 16 >> 16); + case 51: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result10 = normalize(initialValue, true) , result10.length > 0 && (checkCriticalStringElementIndex(0, result10.length) , result10.charCodeAt(0) == 43)?result10.substr(1):result10), $intern_161, 32767) << 16 >> 16); + case 53: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , TIME), initialValue)); + case 55: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result11 = normalize(initialValue, true) , result11.length > 0 && (checkCriticalStringElementIndex(0, result11.length) , result11.charCodeAt(0) == 43)?result11.substr(1):result11), $intern_161, 32767) << 16 >> 16); + case 56: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result12 = normalize(initialValue, true) , result12.length > 0 && (checkCriticalStringElementIndex(0, result12.length) , result12.charCodeAt(0) == 43)?result12.substr(1):result12), $intern_161, 32767) << 16 >> 16); + case 57: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result13 = normalize(initialValue, true) , result13.length > 0 && (checkCriticalStringElementIndex(0, result13.length) , result13.charCodeAt(0) == 43)?result13.substr(1):result13))); + case 58: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result14 = normalize(initialValue, true) , result14.length > 0 && (checkCriticalStringElementIndex(0, result14.length) , result14.charCodeAt(0) == 43)?result14.substr(1):result14))); + case 60: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result), $intern_42, $intern_0)); + case 61: + return initialValue == null?null:valueOf_4(__parseAndValidateInt(normalize(initialValue, true), $intern_42, $intern_0)); + default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); + } +} +; +var DOUBLE_NEGATIVE_INFINITY, DOUBLE_POSITIVE_INFINITY, FLOAT_NEGATIVE_INFINITY, FLOAT_POSITIVE_INFINITY; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeFactoryImpl', 1919); +function $$init_13(this$static){ + this$static.anyTypeEClass = null; + this$static.processingInstructionEClass = null; + this$static.simpleAnyTypeEClass = null; + this$static.xmlTypeDocumentRootEClass = null; + this$static.anySimpleTypeEDataType = null; + this$static.anyURIEDataType = null; + this$static.base64BinaryEDataType = null; + this$static.booleanEDataType = null; + this$static.booleanObjectEDataType = null; + this$static.decimalEDataType = null; + this$static.integerEDataType = null; + this$static.intObjectEDataType = null; + this$static.longEDataType = null; + this$static.longObjectEDataType = null; + this$static.intEDataType = null; + this$static.shortEDataType = null; + this$static.shortObjectEDataType = null; + this$static.byteEDataType = null; + this$static.byteObjectEDataType = null; + this$static.dateEDataType = null; + this$static.dateTimeEDataType = null; + this$static.stringEDataType = null; + this$static.doubleEDataType = null; + this$static.doubleObjectEDataType = null; + this$static.durationEDataType = null; + this$static.entitiesBaseEDataType = null; + this$static.normalizedStringEDataType = null; + this$static.tokenEDataType = null; + this$static.nameEDataType = null; + this$static.ncNameEDataType = null; + this$static.entityEDataType = null; + this$static.entitiesEDataType = null; + this$static.floatEDataType = null; + this$static.floatObjectEDataType = null; + this$static.gDayEDataType = null; + this$static.gMonthEDataType = null; + this$static.gMonthDayEDataType = null; + this$static.gYearEDataType = null; + this$static.gYearMonthEDataType = null; + this$static.hexBinaryEDataType = null; + this$static.idEDataType = null; + this$static.idrefEDataType = null; + this$static.idrefsBaseEDataType = null; + this$static.idrefsEDataType = null; + this$static.languageEDataType = null; + this$static.nonPositiveIntegerEDataType = null; + this$static.negativeIntegerEDataType = null; + this$static.nmtokenEDataType = null; + this$static.nmtokensBaseEDataType = null; + this$static.nmtokensEDataType = null; + this$static.nonNegativeIntegerEDataType = null; + this$static.notationEDataType = null; + this$static.positiveIntegerEDataType = null; + this$static.qNameEDataType = null; + this$static.timeEDataType = null; + this$static.unsignedLongEDataType = null; + this$static.unsignedIntEDataType = null; + this$static.unsignedIntObjectEDataType = null; + this$static.unsignedShortEDataType = null; + this$static.unsignedShortObjectEDataType = null; + this$static.unsignedByteEDataType = null; + this$static.unsignedByteObjectEDataType = null; + this$static.isCreated = false; + this$static.isInitialized = false; +} + +function $createExtendedMetaDataAnnotations_0(this$static){ + $addAnnotation(this$static.anySimpleTypeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anySimpleType'])); + $addAnnotation(this$static.anyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyType', 'kind', 'mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'wildcards', '##any', 'name', ':1', 'processing', 'lax'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attributeWildcard', 'wildcards', '##any', 'name', ':2', 'processing', 'lax'])); + $addAnnotation(this$static.anyURIEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyURI', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.base64BinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'base64Binary', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.booleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.booleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean:Object', 'baseType', 'boolean'])); + $addAnnotation(this$static.byteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte'])); + $addAnnotation(this$static.byteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte:Object', 'baseType', 'byte'])); + $addAnnotation(this$static.dateEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'date', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.dateTimeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'dateTime', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.decimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'decimal', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.doubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.doubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double:Object', 'baseType', 'double'])); + $addAnnotation(this$static.durationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'duration', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.entitiesEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES', 'baseType', 'ENTITIES_._base', 'minLength', '1'])); + $addAnnotation(this$static.entitiesBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES_._base', 'itemType', 'ENTITY'])); + $addAnnotation(this$static.entityEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITY', 'baseType', 'NCName'])); + $addAnnotation(this$static.floatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.floatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float:Object', 'baseType', 'float'])); + $addAnnotation(this$static.gDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gDay', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonth', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gMonthDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonthDay', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gYearEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYear', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.gYearMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYearMonth', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.hexBinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'hexBinary', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.idEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ID', 'baseType', 'NCName'])); + $addAnnotation(this$static.idrefEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREF', 'baseType', 'NCName'])); + $addAnnotation(this$static.idrefsEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS', 'baseType', 'IDREFS_._base', 'minLength', '1'])); + $addAnnotation(this$static.idrefsBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS_._base', 'itemType', 'IDREF'])); + $addAnnotation(this$static.intEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int'])); + $addAnnotation(this$static.integerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'integer'])); + $addAnnotation(this$static.intObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int:Object', 'baseType', 'int'])); + $addAnnotation(this$static.languageEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'language', 'baseType', 'token', 'pattern', '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'])); + $addAnnotation(this$static.longEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long'])); + $addAnnotation(this$static.longObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long:Object', 'baseType', 'long'])); + $addAnnotation(this$static.nameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'Name', 'baseType', 'token', 'pattern', '\\i\\c*'])); + $addAnnotation(this$static.ncNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NCName', 'baseType', 'Name', 'pattern', '[\\i-[:]][\\c-[:]]*'])); + $addAnnotation(this$static.negativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'negativeInteger', 'baseType', 'nonPositiveInteger', 'maxInclusive', '-1'])); + $addAnnotation(this$static.nmtokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKEN', 'baseType', 'token', 'pattern', '\\c+'])); + $addAnnotation(this$static.nmtokensEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS', 'baseType', 'NMTOKENS_._base', 'minLength', '1'])); + $addAnnotation(this$static.nmtokensBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS_._base', 'itemType', 'NMTOKEN'])); + $addAnnotation(this$static.nonNegativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonNegativeInteger', 'baseType', 'integer', 'minInclusive', '0'])); + $addAnnotation(this$static.nonPositiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonPositiveInteger', 'baseType', 'integer', 'maxInclusive', '0'])); + $addAnnotation(this$static.normalizedStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'normalizedString', 'baseType', 'string', 'whiteSpace', 'replace'])); + $addAnnotation(this$static.notationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NOTATION', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.positiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'positiveInteger', 'baseType', 'nonNegativeInteger', 'minInclusive', '1'])); + $addAnnotation(this$static.processingInstructionEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'processingInstruction_._type', 'kind', 'empty'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'data'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'target'])); + $addAnnotation(this$static.qNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'QName', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.shortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short'])); + $addAnnotation(this$static.shortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short:Object', 'baseType', 'short'])); + $addAnnotation(this$static.simpleAnyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'simpleAnyType', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':3', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':4', 'kind', 'simple'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':5', 'kind', 'simple'])); + $addAnnotation(this$static.stringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'string', 'whiteSpace', 'preserve'])); + $addAnnotation(this$static.timeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'time', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.tokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'token', 'baseType', 'normalizedString', 'whiteSpace', 'collapse'])); + $addAnnotation(this$static.unsignedByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte', 'maxInclusive', '255', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte:Object', 'baseType', 'unsignedByte'])); + $addAnnotation(this$static.unsignedIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt', 'maxInclusive', '4294967295', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedIntObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt:Object', 'baseType', 'unsignedInt'])); + $addAnnotation(this$static.unsignedLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedLong', 'baseType', 'nonNegativeInteger', 'maxInclusive', '18446744073709551615', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort', 'maxInclusive', '65535', 'minInclusive', '0'])); + $addAnnotation(this$static.unsignedShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort:Object', 'baseType', 'unsignedShort'])); + $addAnnotation(this$static.xmlTypeDocumentRootEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', '', 'kind', 'mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xmlns:prefix'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xsi:schemaLocation'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'cDATA', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'comment', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'processingInstruction', 'namespace', '##targetNamespace'])); + $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'text', 'namespace', '##targetNamespace'])); +} + +function $createPackageContents_1(this$static){ + if (this$static.isCreated) + return; + this$static.isCreated = true; + this$static.anyTypeEClass = $createEClass(this$static, 0); + $createEAttribute(this$static.anyTypeEClass, 0); + $createEAttribute(this$static.anyTypeEClass, 1); + $createEAttribute(this$static.anyTypeEClass, 2); + this$static.processingInstructionEClass = $createEClass(this$static, 1); + $createEAttribute(this$static.processingInstructionEClass, 0); + $createEAttribute(this$static.processingInstructionEClass, 1); + this$static.simpleAnyTypeEClass = $createEClass(this$static, 2); + $createEAttribute(this$static.simpleAnyTypeEClass, 3); + $createEAttribute(this$static.simpleAnyTypeEClass, 4); + $createEReference(this$static.simpleAnyTypeEClass, 5); + this$static.xmlTypeDocumentRootEClass = $createEClass(this$static, 3); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 0); + $createEReference(this$static.xmlTypeDocumentRootEClass, 1); + $createEReference(this$static.xmlTypeDocumentRootEClass, 2); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 3); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 4); + $createEReference(this$static.xmlTypeDocumentRootEClass, 5); + $createEAttribute(this$static.xmlTypeDocumentRootEClass, 6); + this$static.anySimpleTypeEDataType = $createEDataType(this$static, 4); + this$static.anyURIEDataType = $createEDataType(this$static, 5); + this$static.base64BinaryEDataType = $createEDataType(this$static, 6); + this$static.booleanEDataType = $createEDataType(this$static, 7); + this$static.booleanObjectEDataType = $createEDataType(this$static, 8); + this$static.byteEDataType = $createEDataType(this$static, 9); + this$static.byteObjectEDataType = $createEDataType(this$static, 10); + this$static.dateEDataType = $createEDataType(this$static, 11); + this$static.dateTimeEDataType = $createEDataType(this$static, 12); + this$static.decimalEDataType = $createEDataType(this$static, 13); + this$static.doubleEDataType = $createEDataType(this$static, 14); + this$static.doubleObjectEDataType = $createEDataType(this$static, 15); + this$static.durationEDataType = $createEDataType(this$static, 16); + this$static.entitiesEDataType = $createEDataType(this$static, 17); + this$static.entitiesBaseEDataType = $createEDataType(this$static, 18); + this$static.entityEDataType = $createEDataType(this$static, 19); + this$static.floatEDataType = $createEDataType(this$static, 20); + this$static.floatObjectEDataType = $createEDataType(this$static, 21); + this$static.gDayEDataType = $createEDataType(this$static, 22); + this$static.gMonthEDataType = $createEDataType(this$static, 23); + this$static.gMonthDayEDataType = $createEDataType(this$static, 24); + this$static.gYearEDataType = $createEDataType(this$static, 25); + this$static.gYearMonthEDataType = $createEDataType(this$static, 26); + this$static.hexBinaryEDataType = $createEDataType(this$static, 27); + this$static.idEDataType = $createEDataType(this$static, 28); + this$static.idrefEDataType = $createEDataType(this$static, 29); + this$static.idrefsEDataType = $createEDataType(this$static, 30); + this$static.idrefsBaseEDataType = $createEDataType(this$static, 31); + this$static.intEDataType = $createEDataType(this$static, 32); + this$static.integerEDataType = $createEDataType(this$static, 33); + this$static.intObjectEDataType = $createEDataType(this$static, 34); + this$static.languageEDataType = $createEDataType(this$static, 35); + this$static.longEDataType = $createEDataType(this$static, 36); + this$static.longObjectEDataType = $createEDataType(this$static, 37); + this$static.nameEDataType = $createEDataType(this$static, 38); + this$static.ncNameEDataType = $createEDataType(this$static, 39); + this$static.negativeIntegerEDataType = $createEDataType(this$static, 40); + this$static.nmtokenEDataType = $createEDataType(this$static, 41); + this$static.nmtokensEDataType = $createEDataType(this$static, 42); + this$static.nmtokensBaseEDataType = $createEDataType(this$static, 43); + this$static.nonNegativeIntegerEDataType = $createEDataType(this$static, 44); + this$static.nonPositiveIntegerEDataType = $createEDataType(this$static, 45); + this$static.normalizedStringEDataType = $createEDataType(this$static, 46); + this$static.notationEDataType = $createEDataType(this$static, 47); + this$static.positiveIntegerEDataType = $createEDataType(this$static, 48); + this$static.qNameEDataType = $createEDataType(this$static, 49); + this$static.shortEDataType = $createEDataType(this$static, 50); + this$static.shortObjectEDataType = $createEDataType(this$static, 51); + this$static.stringEDataType = $createEDataType(this$static, 52); + this$static.timeEDataType = $createEDataType(this$static, 53); + this$static.tokenEDataType = $createEDataType(this$static, 54); + this$static.unsignedByteEDataType = $createEDataType(this$static, 55); + this$static.unsignedByteObjectEDataType = $createEDataType(this$static, 56); + this$static.unsignedIntEDataType = $createEDataType(this$static, 57); + this$static.unsignedIntObjectEDataType = $createEDataType(this$static, 58); + this$static.unsignedLongEDataType = $createEDataType(this$static, 59); + this$static.unsignedShortEDataType = $createEDataType(this$static, 60); + this$static.unsignedShortObjectEDataType = $createEDataType(this$static, 61); +} + +function $initializePackageContents_1(this$static){ + var theXMLTypePackage_1; + if (this$static.isInitialized) + return; + this$static.isInitialized = true; + $setName(this$static, 'type'); + $setNsPrefix(this$static, 'ecore.xml.type'); + $setNsURI(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); + theXMLTypePackage_1 = castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); + $add_21($getESuperTypes(this$static.simpleAnyTypeEClass), this$static.anyTypeEClass); + $initEClass(this$static.anyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, 'AnyType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'any', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'anyAttribute', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); + $initEClass(this$static.processingInstructionEClass, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, 'ProcessingInstruction', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), this$static.stringEDataType, 'data', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), this$static.stringEDataType, 'target', null, 1, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); + $initEClass(this$static.simpleAnyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, 'SimpleAnyType', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), theXMLTypePackage_1.stringEDataType, 'rawValue', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), theXMLTypePackage_1.anySimpleTypeEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), this$static.ecorePackage.eDataTypeEClass, null, 'instanceType', 1, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, false, false, true, false, false, false, false); + $initEClass(this$static.xmlTypeDocumentRootEClass, Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, 'XMLTypeDocumentRoot', false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, null, false, false, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xMLNSPrefixMap', 0, -1, null, true, false, true, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xSISchemaLocation', 0, -1, null, true, false, true, true, false, false, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), this$static.stringEDataType, 'cDATA', null, 0, -2, null, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), this$static.stringEDataType, 'comment', null, 0, -2, null, true, true, true, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), this$static.processingInstructionEClass, null, 'processingInstruction', 0, -2, null, true, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), this$static.stringEDataType, 'text', null, 0, -2, null, true, true, true, false, false, true); + $initEDataType(this$static.anySimpleTypeEDataType, Ljava_lang_Object_2_classLit, 'AnySimpleType', true); + $initEDataType(this$static.anyURIEDataType, Ljava_lang_String_2_classLit, 'AnyURI', true); + $initEDataType(this$static.base64BinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'Base64Binary', true); + $initEDataType(this$static.booleanEDataType, Z_classLit, 'Boolean', true); + $initEDataType(this$static.booleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'BooleanObject', true); + $initEDataType(this$static.byteEDataType, B_classLit, 'Byte', true); + $initEDataType(this$static.byteObjectEDataType, Ljava_lang_Byte_2_classLit, 'ByteObject', true); + $initEDataType(this$static.dateEDataType, Ljava_lang_String_2_classLit, 'Date', true); + $initEDataType(this$static.dateTimeEDataType, Ljava_lang_String_2_classLit, 'DateTime', true); + $initEDataType(this$static.decimalEDataType, Ljava_math_BigDecimal_2_classLit, 'Decimal', true); + $initEDataType(this$static.doubleEDataType, D_classLit, 'Double', true); + $initEDataType(this$static.doubleObjectEDataType, Ljava_lang_Double_2_classLit, 'DoubleObject', true); + $initEDataType(this$static.durationEDataType, Ljava_lang_String_2_classLit, 'Duration', true); + $initEDataType(this$static.entitiesEDataType, Ljava_util_List_2_classLit, 'ENTITIES', true); + $initEDataType(this$static.entitiesBaseEDataType, Ljava_util_List_2_classLit, 'ENTITIESBase', true); + $initEDataType(this$static.entityEDataType, Ljava_lang_String_2_classLit, 'ENTITY', true); + $initEDataType(this$static.floatEDataType, F_classLit, 'Float', true); + $initEDataType(this$static.floatObjectEDataType, Ljava_lang_Float_2_classLit, 'FloatObject', true); + $initEDataType(this$static.gDayEDataType, Ljava_lang_String_2_classLit, 'GDay', true); + $initEDataType(this$static.gMonthEDataType, Ljava_lang_String_2_classLit, 'GMonth', true); + $initEDataType(this$static.gMonthDayEDataType, Ljava_lang_String_2_classLit, 'GMonthDay', true); + $initEDataType(this$static.gYearEDataType, Ljava_lang_String_2_classLit, 'GYear', true); + $initEDataType(this$static.gYearMonthEDataType, Ljava_lang_String_2_classLit, 'GYearMonth', true); + $initEDataType(this$static.hexBinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'HexBinary', true); + $initEDataType(this$static.idEDataType, Ljava_lang_String_2_classLit, 'ID', true); + $initEDataType(this$static.idrefEDataType, Ljava_lang_String_2_classLit, 'IDREF', true); + $initEDataType(this$static.idrefsEDataType, Ljava_util_List_2_classLit, 'IDREFS', true); + $initEDataType(this$static.idrefsBaseEDataType, Ljava_util_List_2_classLit, 'IDREFSBase', true); + $initEDataType(this$static.intEDataType, I_classLit, 'Int', true); + $initEDataType(this$static.integerEDataType, Ljava_math_BigInteger_2_classLit, 'Integer', true); + $initEDataType(this$static.intObjectEDataType, Ljava_lang_Integer_2_classLit, 'IntObject', true); + $initEDataType(this$static.languageEDataType, Ljava_lang_String_2_classLit, 'Language', true); + $initEDataType(this$static.longEDataType, J_classLit, 'Long', true); + $initEDataType(this$static.longObjectEDataType, Ljava_lang_Long_2_classLit, 'LongObject', true); + $initEDataType(this$static.nameEDataType, Ljava_lang_String_2_classLit, 'Name', true); + $initEDataType(this$static.ncNameEDataType, Ljava_lang_String_2_classLit, 'NCName', true); + $initEDataType(this$static.negativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NegativeInteger', true); + $initEDataType(this$static.nmtokenEDataType, Ljava_lang_String_2_classLit, 'NMTOKEN', true); + $initEDataType(this$static.nmtokensEDataType, Ljava_util_List_2_classLit, 'NMTOKENS', true); + $initEDataType(this$static.nmtokensBaseEDataType, Ljava_util_List_2_classLit, 'NMTOKENSBase', true); + $initEDataType(this$static.nonNegativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonNegativeInteger', true); + $initEDataType(this$static.nonPositiveIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonPositiveInteger', true); + $initEDataType(this$static.normalizedStringEDataType, Ljava_lang_String_2_classLit, 'NormalizedString', true); + $initEDataType(this$static.notationEDataType, Ljava_lang_String_2_classLit, 'NOTATION', true); + $initEDataType(this$static.positiveIntegerEDataType, Ljava_lang_String_2_classLit, 'PositiveInteger', true); + $initEDataType(this$static.qNameEDataType, Ljava_lang_String_2_classLit, 'QName', true); + $initEDataType(this$static.shortEDataType, S_classLit, 'Short', true); + $initEDataType(this$static.shortObjectEDataType, Ljava_lang_Short_2_classLit, 'ShortObject', true); + $initEDataType(this$static.stringEDataType, Ljava_lang_String_2_classLit, 'String', true); + $initEDataType(this$static.timeEDataType, Ljava_lang_String_2_classLit, 'Time', true); + $initEDataType(this$static.tokenEDataType, Ljava_lang_String_2_classLit, 'Token', true); + $initEDataType(this$static.unsignedByteEDataType, S_classLit, 'UnsignedByte', true); + $initEDataType(this$static.unsignedByteObjectEDataType, Ljava_lang_Short_2_classLit, 'UnsignedByteObject', true); + $initEDataType(this$static.unsignedIntEDataType, J_classLit, 'UnsignedInt', true); + $initEDataType(this$static.unsignedIntObjectEDataType, Ljava_lang_Long_2_classLit, 'UnsignedIntObject', true); + $initEDataType(this$static.unsignedLongEDataType, Ljava_math_BigInteger_2_classLit, 'UnsignedLong', true); + $initEDataType(this$static.unsignedShortEDataType, I_classLit, 'UnsignedShort', true); + $initEDataType(this$static.unsignedShortObjectEDataType, Ljava_lang_Integer_2_classLit, 'UnsignedShortObject', true); + $createResource(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); + $createExtendedMetaDataAnnotations_0(this$static); +} + +function XMLTypePackageImpl(){ + EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2003/XMLType', ($clinit_XMLTypeFactory() , eINSTANCE_3)); + $$init_13(this); +} + +function init_6(){ + var theXMLTypePackage; + if (isInited_1) + return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); + initializeRegistryHelpers(); + theXMLTypePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 586)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType'):new XMLTypePackageImpl, 586); + isInited_1 = true; + $createPackageContents_1(theXMLTypePackage); + $initializePackageContents_1(theXMLTypePackage); + $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theXMLTypePackage, new XMLTypePackageImpl$1); + $freeze_0(theXMLTypePackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType', theXMLTypePackage); + return theXMLTypePackage; +} + +function initializeRegistryHelpers(){ + register_0(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, new XMLTypePackageImpl$2); + register_0(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, new XMLTypePackageImpl$3); + register_0(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, new XMLTypePackageImpl$4); + register_0(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, new XMLTypePackageImpl$5); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$6); + register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$7); + register_0(Ljava_lang_Boolean_2_classLit, new XMLTypePackageImpl$8); + register_0(Ljava_lang_Byte_2_classLit, new XMLTypePackageImpl$9); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$10); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$11); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$12); + register_0(Ljava_lang_Double_2_classLit, new XMLTypePackageImpl$13); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$14); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$15); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$16); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$17); + register_0(Ljava_lang_Float_2_classLit, new XMLTypePackageImpl$18); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$19); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$20); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$21); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$22); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$23); + register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$24); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$25); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$26); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$27); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$28); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$29); + register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$30); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$31); + register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$32); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$33); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$34); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$35); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$36); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$37); + register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$38); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$39); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$40); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$41); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$42); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$43); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$44); + register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$45); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$46); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$47); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$48); + register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$49); + register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$50); + register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$51); + register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$52); +} + +defineClass(586, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1, 1945:1, 586:1}, XMLTypePackageImpl); +_.isCreated = false; +_.isInitialized = false; +var isInited_1 = false; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl', 586); +function XMLTypePackageImpl$1(){ +} + +defineClass(1852, 1, {837:1}, XMLTypePackageImpl$1); +_.getEValidator = function getEValidator_0(){ + return $clinit_XMLTypeValidator() , INSTANCE_12; +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/1', 1852); +function XMLTypePackageImpl$10(){ +} + +defineClass(1861, 1, $intern_162, XMLTypePackageImpl$10); +_.isInstance = function isInstance_50(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_42(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/10', 1861); +function XMLTypePackageImpl$11(){ +} + +defineClass(1862, 1, $intern_162, XMLTypePackageImpl$11); +_.isInstance = function isInstance_51(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_43(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/11', 1862); +function XMLTypePackageImpl$12(){ +} + +defineClass(1863, 1, $intern_162, XMLTypePackageImpl$12); +_.isInstance = function isInstance_52(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_44(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/12', 1863); +function XMLTypePackageImpl$13(){ +} + +defineClass(1864, 1, $intern_162, XMLTypePackageImpl$13); +_.isInstance = function isInstance_53(instance){ + return instanceOfDouble(instance); +} +; +_.newArrayInstance = function newArrayInstance_45(size_0){ + return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/13', 1864); +function XMLTypePackageImpl$14(){ +} + +defineClass(1865, 1, $intern_162, XMLTypePackageImpl$14); +_.isInstance = function isInstance_54(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_46(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/14', 1865); +function XMLTypePackageImpl$15(){ +} + +defineClass(1866, 1, $intern_162, XMLTypePackageImpl$15); +_.isInstance = function isInstance_55(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_47(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/15', 1866); +function XMLTypePackageImpl$16(){ +} + +defineClass(1867, 1, $intern_162, XMLTypePackageImpl$16); +_.isInstance = function isInstance_56(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_48(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/16', 1867); +function XMLTypePackageImpl$17(){ +} + +defineClass(1868, 1, $intern_162, XMLTypePackageImpl$17); +_.isInstance = function isInstance_57(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_49(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/17', 1868); +function XMLTypePackageImpl$18(){ +} + +defineClass(1869, 1, $intern_162, XMLTypePackageImpl$18); +_.isInstance = function isInstance_58(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance_50(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/18', 1869); +function XMLTypePackageImpl$19(){ +} + +defineClass(1870, 1, $intern_162, XMLTypePackageImpl$19); +_.isInstance = function isInstance_59(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_51(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/19', 1870); +function XMLTypePackageImpl$2(){ +} + +defineClass(1853, 1, $intern_162, XMLTypePackageImpl$2); +_.isInstance = function isInstance_60(instance){ + return instanceOf(instance, 843); +} +; +_.newArrayInstance = function newArrayInstance_52(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, $intern_2, 843, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/2', 1853); +function XMLTypePackageImpl$20(){ +} + +defineClass(1871, 1, $intern_162, XMLTypePackageImpl$20); +_.isInstance = function isInstance_61(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_53(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/20', 1871); +function XMLTypePackageImpl$21(){ +} + +defineClass(1872, 1, $intern_162, XMLTypePackageImpl$21); +_.isInstance = function isInstance_62(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_54(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/21', 1872); +function XMLTypePackageImpl$22(){ +} + +defineClass(1873, 1, $intern_162, XMLTypePackageImpl$22); +_.isInstance = function isInstance_63(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_55(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/22', 1873); +function XMLTypePackageImpl$23(){ +} + +defineClass(1874, 1, $intern_162, XMLTypePackageImpl$23); +_.isInstance = function isInstance_64(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_56(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/23', 1874); +function XMLTypePackageImpl$24(){ +} + +defineClass(1875, 1, $intern_162, XMLTypePackageImpl$24); +_.isInstance = function isInstance_65(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_57(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/24', 1875); +function XMLTypePackageImpl$25(){ +} + +defineClass(1876, 1, $intern_162, XMLTypePackageImpl$25); +_.isInstance = function isInstance_66(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_58(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/25', 1876); +function XMLTypePackageImpl$26(){ +} + +defineClass(1877, 1, $intern_162, XMLTypePackageImpl$26); +_.isInstance = function isInstance_67(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_59(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/26', 1877); +function XMLTypePackageImpl$27(){ +} + +defineClass(1878, 1, $intern_162, XMLTypePackageImpl$27); +_.isInstance = function isInstance_68(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_60(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/27', 1878); +function XMLTypePackageImpl$28(){ +} + +defineClass(1879, 1, $intern_162, XMLTypePackageImpl$28); +_.isInstance = function isInstance_69(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_61(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/28', 1879); +function XMLTypePackageImpl$29(){ +} + +defineClass(1880, 1, $intern_162, XMLTypePackageImpl$29); +_.isInstance = function isInstance_70(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_62(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/29', 1880); +function XMLTypePackageImpl$3(){ +} + +defineClass(1854, 1, $intern_162, XMLTypePackageImpl$3); +_.isInstance = function isInstance_71(instance){ + return instanceOf(instance, 667); +} +; +_.newArrayInstance = function newArrayInstance_63(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, $intern_2, 2021, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/3', 1854); +function XMLTypePackageImpl$30(){ +} + +defineClass(1881, 1, $intern_162, XMLTypePackageImpl$30); +_.isInstance = function isInstance_72(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_64(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/30', 1881); +function XMLTypePackageImpl$31(){ +} + +defineClass(1882, 1, $intern_162, XMLTypePackageImpl$31); +_.isInstance = function isInstance_73(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_65(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/31', 1882); +function XMLTypePackageImpl$32(){ +} + +defineClass(1883, 1, $intern_162, XMLTypePackageImpl$32); +_.isInstance = function isInstance_74(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_66(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/32', 1883); +function XMLTypePackageImpl$33(){ +} + +defineClass(1884, 1, $intern_162, XMLTypePackageImpl$33); +_.isInstance = function isInstance_75(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_67(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/33', 1884); +function XMLTypePackageImpl$34(){ +} + +defineClass(1885, 1, $intern_162, XMLTypePackageImpl$34); +_.isInstance = function isInstance_76(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_68(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/34', 1885); +function XMLTypePackageImpl$35(){ +} + +defineClass(1886, 1, $intern_162, XMLTypePackageImpl$35); +_.isInstance = function isInstance_77(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_69(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/35', 1886); +function XMLTypePackageImpl$36(){ +} + +defineClass(1887, 1, $intern_162, XMLTypePackageImpl$36); +_.isInstance = function isInstance_78(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_70(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/36', 1887); +function XMLTypePackageImpl$37(){ +} + +defineClass(1888, 1, $intern_162, XMLTypePackageImpl$37); +_.isInstance = function isInstance_79(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_71(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/37', 1888); +function XMLTypePackageImpl$38(){ +} + +defineClass(1889, 1, $intern_162, XMLTypePackageImpl$38); +_.isInstance = function isInstance_80(instance){ + return instanceOf(instance, 15); +} +; +_.newArrayInstance = function newArrayInstance_72(size_0){ + return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/38', 1889); +function XMLTypePackageImpl$39(){ +} + +defineClass(1890, 1, $intern_162, XMLTypePackageImpl$39); +_.isInstance = function isInstance_81(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_73(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/39', 1890); +function XMLTypePackageImpl$4(){ +} + +defineClass(1855, 1, $intern_162, XMLTypePackageImpl$4); +_.isInstance = function isInstance_82(instance){ + return instanceOf(instance, 668); +} +; +_.newArrayInstance = function newArrayInstance_74(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, $intern_2, 2022, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/4', 1855); +function XMLTypePackageImpl$40(){ +} + +defineClass(1891, 1, $intern_162, XMLTypePackageImpl$40); +_.isInstance = function isInstance_83(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_75(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/40', 1891); +function XMLTypePackageImpl$41(){ +} + +defineClass(1892, 1, $intern_162, XMLTypePackageImpl$41); +_.isInstance = function isInstance_84(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_76(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/41', 1892); +function XMLTypePackageImpl$42(){ +} + +defineClass(1893, 1, $intern_162, XMLTypePackageImpl$42); +_.isInstance = function isInstance_85(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_77(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/42', 1893); +function XMLTypePackageImpl$43(){ +} + +defineClass(1894, 1, $intern_162, XMLTypePackageImpl$43); +_.isInstance = function isInstance_86(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_78(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/43', 1894); +function XMLTypePackageImpl$44(){ +} + +defineClass(1895, 1, $intern_162, XMLTypePackageImpl$44); +_.isInstance = function isInstance_87(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_79(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/44', 1895); +function XMLTypePackageImpl$45(){ +} + +defineClass(1896, 1, $intern_162, XMLTypePackageImpl$45); +_.isInstance = function isInstance_88(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_80(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$45_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/45', 1896); +function XMLTypePackageImpl$46(){ +} + +defineClass(1897, 1, $intern_162, XMLTypePackageImpl$46); +_.isInstance = function isInstance_89(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_81(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$46_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/46', 1897); +function XMLTypePackageImpl$47(){ +} + +defineClass(1898, 1, $intern_162, XMLTypePackageImpl$47); +_.isInstance = function isInstance_90(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_82(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$47_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/47', 1898); +function XMLTypePackageImpl$48(){ +} + +defineClass(1899, 1, $intern_162, XMLTypePackageImpl$48); +_.isInstance = function isInstance_91(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_83(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$48_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/48', 1899); +function XMLTypePackageImpl$49(){ +} + +defineClass($intern_47, 1, $intern_162, XMLTypePackageImpl$49); +_.isInstance = function isInstance_92(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_84(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$49_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/49', $intern_47); +function XMLTypePackageImpl$5(){ +} + +defineClass(1856, 1, $intern_162, XMLTypePackageImpl$5); +_.isInstance = function isInstance_93(instance){ + return instanceOf(instance, 669); +} +; +_.newArrayInstance = function newArrayInstance_85(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, $intern_2, 2023, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/5', 1856); +function XMLTypePackageImpl$50(){ +} + +defineClass(1901, 1, $intern_162, XMLTypePackageImpl$50); +_.isInstance = function isInstance_94(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_86(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$50_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/50', 1901); +function XMLTypePackageImpl$51(){ +} + +defineClass(1902, 1, $intern_162, XMLTypePackageImpl$51); +_.isInstance = function isInstance_95(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_87(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$51_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/51', 1902); +function XMLTypePackageImpl$52(){ +} + +defineClass(1903, 1, $intern_162, XMLTypePackageImpl$52); +_.isInstance = function isInstance_96(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_88(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$52_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/52', 1903); +function XMLTypePackageImpl$6(){ +} + +defineClass(1857, 1, $intern_162, XMLTypePackageImpl$6); +_.isInstance = function isInstance_97(instance){ + return instanceOfString(instance); +} +; +_.newArrayInstance = function newArrayInstance_89(size_0){ + return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/6', 1857); +function XMLTypePackageImpl$7(){ +} + +defineClass(1858, 1, $intern_162, XMLTypePackageImpl$7); +_.isInstance = function isInstance_98(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_90(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/7', 1858); +function XMLTypePackageImpl$8(){ +} + +defineClass(1859, 1, $intern_162, XMLTypePackageImpl$8); +_.isInstance = function isInstance_99(instance){ + return instanceOfBoolean(instance); +} +; +_.newArrayInstance = function newArrayInstance_91(size_0){ + return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/8', 1859); +function XMLTypePackageImpl$9(){ +} + +defineClass(1860, 1, $intern_162, XMLTypePackageImpl$9); +_.isInstance = function isInstance_100(instance){ + return instanceOf(instance, 217); +} +; +_.newArrayInstance = function newArrayInstance_92(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/9', 1860); +function $clinit_DataValue$Base64(){ + $clinit_DataValue$Base64 = emptyMethod; + var i, i0, i1, i2, i3, i4, i5, j, j0; + base64Alphabet = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); + lookUpBase64Alphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 64, 15, 1); + for (i0 = 0; i0 < 255; i0++) { + base64Alphabet[i0] = -1; + } + for (i1 = 90; i1 >= 65; i1--) { + base64Alphabet[i1] = i1 - 65 << 24 >> 24; + } + for (i2 = 122; i2 >= 97; i2--) { + base64Alphabet[i2] = i2 - 97 + 26 << 24 >> 24; + } + for (i3 = 57; i3 >= 48; i3--) { + base64Alphabet[i3] = i3 - 48 + 52 << 24 >> 24; + } + base64Alphabet[43] = 62; + base64Alphabet[47] = 63; + for (i4 = 0; i4 <= 25; i4++) + lookUpBase64Alphabet[i4] = 65 + i4 & $intern_46; + for (i5 = 26 , j0 = 0; i5 <= 51; ++i5 , j0++) + lookUpBase64Alphabet[i5] = 97 + j0 & $intern_46; + for (i = 52 , j = 0; i <= 61; ++i , j++) + lookUpBase64Alphabet[i] = 48 + j & $intern_46; + lookUpBase64Alphabet[62] = 43; + lookUpBase64Alphabet[63] = 47; +} + +function decode_0(encoded){ + $clinit_DataValue$Base64(); + var b1, b2, b3, b4, base64Data, d1, d2, d3, d4, dataIndex, decodedData, encodedIndex, i, len, numberQuadruple, tmp; + if (encoded == null) + return null; + base64Data = $toCharArray(encoded); + len = removeWhiteSpace(base64Data); + if (len % 4 != 0) { + return null; + } + numberQuadruple = len / 4 | 0; + if (numberQuadruple == 0) + return initUnidimensionalArray(B_classLit, $intern_136, 25, 0, 15, 1); + decodedData = null; + b1 = 0; + b2 = 0; + b3 = 0; + b4 = 0; + d1 = 0; + d2 = 0; + d3 = 0; + d4 = 0; + i = 0; + encodedIndex = 0; + dataIndex = 0; + decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, numberQuadruple * 3, 15, 1); + for (; i < numberQuadruple - 1; i++) { + if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++]) || !isData(d3 = base64Data[dataIndex++]) || !isData(d4 = base64Data[dataIndex++])) + return null; + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; + } + if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++])) { + return null; + } + b1 = base64Alphabet[d1]; + b2 = base64Alphabet[d2]; + d3 = base64Data[dataIndex++]; + d4 = base64Data[dataIndex++]; + if (base64Alphabet[d3] == -1 || base64Alphabet[d4] == -1) { + if (d3 == 61 && d4 == 61) { + if ((b2 & 15) != 0) + return null; + tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 1, 15, 1); + arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex] = (b1 << 2 | b2 >> 4) << 24 >> 24; + return tmp; + } + else if (d3 != 61 && d4 == 61) { + b3 = base64Alphabet[d3]; + if ((b3 & 3) != 0) + return null; + tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 2, 15, 1); + arraycopy(decodedData, 0, tmp, 0, i * 3); + tmp[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + tmp[encodedIndex] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + return tmp; + } + else { + return null; + } + } + else { + b3 = base64Alphabet[d3]; + b4 = base64Alphabet[d4]; + decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; + decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; + decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; + } + return decodedData; +} + +function encode(binaryData){ + $clinit_DataValue$Base64(); + var b1, b2, b3, dataIndex, encodedData, encodedIndex, fewerThan24bits, i, k, l, lengthDataBits, numberQuartet, numberTriplets, val1, val2, val3; + if (binaryData == null) + return null; + lengthDataBits = binaryData.length * 8; + if (lengthDataBits == 0) { + return ''; + } + fewerThan24bits = lengthDataBits % 24; + numberTriplets = lengthDataBits / 24 | 0; + numberQuartet = fewerThan24bits != 0?numberTriplets + 1:numberTriplets; + encodedData = null; + encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, numberQuartet * 4, 15, 1); + k = 0; + l = 0; + b1 = 0; + b2 = 0; + b3 = 0; + encodedIndex = 0; + dataIndex = 0; + for (i = 0; i < numberTriplets; i++) { + b1 = binaryData[dataIndex++]; + b2 = binaryData[dataIndex++]; + b3 = binaryData[dataIndex++]; + l = (b2 & 15) << 24 >> 24; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; + val3 = (b3 & -128) == 0?b3 >> 6 << 24 >> 24:(b3 >> 6 ^ 252) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2 | val3]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 63]; + } + if (fewerThan24bits == 8) { + b1 = binaryData[dataIndex]; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; + encodedData[encodedIndex++] = 61; + encodedData[encodedIndex++] = 61; + } + else if (fewerThan24bits == 16) { + b1 = binaryData[dataIndex]; + b2 = binaryData[dataIndex + 1]; + l = (b2 & 15) << 24 >> 24; + k = (b1 & 3) << 24 >> 24; + val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; + val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; + encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; + encodedData[encodedIndex++] = 61; + } + return valueOf_9(encodedData, 0, encodedData.length); +} + +function isData(octect){ + return base64Alphabet[octect] != -1; +} + +function removeWhiteSpace(data_0){ + var i, len, newSize; + newSize = 0; + len = data_0.length; + for (i = 0; i < len; i++) { + data_0[i] == 32 || data_0[i] == 13 || data_0[i] == 10 || data_0[i] == 9 || (data_0[newSize++] = data_0[i]); + } + return newSize; +} + +var base64Alphabet, lookUpBase64Alphabet; +function $clinit_DataValue$HexBin(){ + $clinit_DataValue$HexBin = emptyMethod; + var i, i0, i1, i2, i3, i4; + hexNumberTable = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); + lookUpHexAlphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 16, 15, 1); + for (i0 = 0; i0 < 255; i0++) { + hexNumberTable[i0] = -1; + } + for (i1 = 57; i1 >= 48; i1--) { + hexNumberTable[i1] = i1 - 48 << 24 >> 24; + } + for (i2 = 70; i2 >= 65; i2--) { + hexNumberTable[i2] = i2 - 65 + 10 << 24 >> 24; + } + for (i3 = 102; i3 >= 97; i3--) { + hexNumberTable[i3] = i3 - 97 + 10 << 24 >> 24; + } + for (i4 = 0; i4 < 10; i4++) + lookUpHexAlphabet[i4] = 48 + i4 & $intern_46; + for (i = 10; i <= 15; i++) + lookUpHexAlphabet[i] = 65 + i - 10 & $intern_46; +} + +function decode_1(encoded){ + $clinit_DataValue$HexBin(); + var binaryData, decodedData, i, lengthData, lengthDecode, temp1, temp2; + if (encoded == null) + return null; + lengthData = encoded.length; + if (lengthData % 2 != 0) + return null; + binaryData = $toCharArray(encoded); + lengthDecode = lengthData / 2 | 0; + decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, lengthDecode, 15, 1); + for (i = 0; i < lengthDecode; i++) { + temp1 = hexNumberTable[binaryData[i * 2]]; + if (temp1 == -1) + return null; + temp2 = hexNumberTable[binaryData[i * 2 + 1]]; + if (temp2 == -1) + return null; + decodedData[i] = (temp1 << 4 | temp2) << 24 >> 24; + } + return decodedData; +} + +function encode_0(binaryData){ + $clinit_DataValue$HexBin(); + var encodedData, i, lengthData, lengthEncode, temp; + if (binaryData == null) + return null; + lengthData = binaryData.length; + lengthEncode = lengthData * 2; + encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, lengthEncode, 15, 1); + for (i = 0; i < lengthData; i++) { + temp = binaryData[i]; + temp < 0 && (temp += 256); + encodedData[i * 2] = lookUpHexAlphabet[temp >> 4]; + encodedData[i * 2 + 1] = lookUpHexAlphabet[temp & 15]; + } + return valueOf_9(encodedData, 0, encodedData.length); +} + +var hexNumberTable, lookUpHexAlphabet; +function $clinit_DataValue$XMLChar(){ + $clinit_DataValue$XMLChar = emptyMethod; + CHARS = initUnidimensionalArray(B_classLit, $intern_136, 25, $intern_63, 15, 1); + CHARS[9] = 35; + CHARS[10] = 19; + CHARS[13] = 19; + CHARS[32] = 51; + CHARS[33] = 49; + CHARS[34] = 33; + fill_0(CHARS, 35, 38, 49); + CHARS[38] = 1; + fill_0(CHARS, 39, 45, 49); + fill_0(CHARS, 45, 47, -71); + CHARS[47] = 49; + fill_0(CHARS, 48, 58, -71); + CHARS[58] = 61; + CHARS[59] = 49; + CHARS[60] = 1; + CHARS[61] = 49; + CHARS[62] = 33; + fill_0(CHARS, 63, 65, 49); + fill_0(CHARS, 65, 91, -3); + fill_0(CHARS, 91, 93, 33); + CHARS[93] = 1; + CHARS[94] = 33; + CHARS[95] = -3; + CHARS[96] = 33; + fill_0(CHARS, 97, 123, -3); + fill_0(CHARS, 123, 183, 33); + CHARS[183] = -87; + fill_0(CHARS, 184, 192, 33); + fill_0(CHARS, 192, 215, -19); + CHARS[215] = 33; + fill_0(CHARS, 216, 247, -19); + CHARS[247] = 33; + fill_0(CHARS, 248, 306, -19); + fill_0(CHARS, 306, 308, 33); + fill_0(CHARS, 308, 319, -19); + fill_0(CHARS, 319, 321, 33); + fill_0(CHARS, 321, 329, -19); + CHARS[329] = 33; + fill_0(CHARS, 330, 383, -19); + CHARS[383] = 33; + fill_0(CHARS, 384, 452, -19); + fill_0(CHARS, 452, 461, 33); + fill_0(CHARS, 461, 497, -19); + fill_0(CHARS, 497, 500, 33); + fill_0(CHARS, 500, 502, -19); + fill_0(CHARS, 502, 506, 33); + fill_0(CHARS, 506, 536, -19); + fill_0(CHARS, 536, 592, 33); + fill_0(CHARS, 592, 681, -19); + fill_0(CHARS, 681, 699, 33); + fill_0(CHARS, 699, 706, -19); + fill_0(CHARS, 706, 720, 33); + fill_0(CHARS, 720, 722, -87); + fill_0(CHARS, 722, 768, 33); + fill_0(CHARS, 768, 838, -87); + fill_0(CHARS, 838, 864, 33); + fill_0(CHARS, 864, 866, -87); + fill_0(CHARS, 866, 902, 33); + CHARS[902] = -19; + CHARS[903] = -87; + fill_0(CHARS, 904, 907, -19); + CHARS[907] = 33; + CHARS[908] = -19; + CHARS[909] = 33; + fill_0(CHARS, 910, 930, -19); + CHARS[930] = 33; + fill_0(CHARS, 931, 975, -19); + CHARS[975] = 33; + fill_0(CHARS, 976, 983, -19); + fill_0(CHARS, 983, 986, 33); + CHARS[986] = -19; + CHARS[987] = 33; + CHARS[988] = -19; + CHARS[989] = 33; + CHARS[990] = -19; + CHARS[991] = 33; + CHARS[992] = -19; + CHARS[993] = 33; + fill_0(CHARS, 994, 1012, -19); + fill_0(CHARS, 1012, 1025, 33); + fill_0(CHARS, 1025, 1037, -19); + CHARS[1037] = 33; + fill_0(CHARS, 1038, 1104, -19); + CHARS[1104] = 33; + fill_0(CHARS, 1105, 1117, -19); + CHARS[1117] = 33; + fill_0(CHARS, 1118, 1154, -19); + CHARS[1154] = 33; + fill_0(CHARS, 1155, 1159, -87); + fill_0(CHARS, 1159, 1168, 33); + fill_0(CHARS, 1168, 1221, -19); + fill_0(CHARS, 1221, 1223, 33); + fill_0(CHARS, 1223, 1225, -19); + fill_0(CHARS, 1225, 1227, 33); + fill_0(CHARS, 1227, 1229, -19); + fill_0(CHARS, 1229, 1232, 33); + fill_0(CHARS, 1232, 1260, -19); + fill_0(CHARS, 1260, 1262, 33); + fill_0(CHARS, 1262, 1270, -19); + fill_0(CHARS, 1270, 1272, 33); + fill_0(CHARS, 1272, 1274, -19); + fill_0(CHARS, 1274, 1329, 33); + fill_0(CHARS, 1329, 1367, -19); + fill_0(CHARS, 1367, 1369, 33); + CHARS[1369] = -19; + fill_0(CHARS, 1370, 1377, 33); + fill_0(CHARS, 1377, 1415, -19); + fill_0(CHARS, 1415, 1425, 33); + fill_0(CHARS, 1425, 1442, -87); + CHARS[1442] = 33; + fill_0(CHARS, 1443, 1466, -87); + CHARS[1466] = 33; + fill_0(CHARS, 1467, 1470, -87); + CHARS[1470] = 33; + CHARS[1471] = -87; + CHARS[1472] = 33; + fill_0(CHARS, 1473, 1475, -87); + CHARS[1475] = 33; + CHARS[1476] = -87; + fill_0(CHARS, 1477, 1488, 33); + fill_0(CHARS, 1488, 1515, -19); + fill_0(CHARS, 1515, 1520, 33); + fill_0(CHARS, 1520, 1523, -19); + fill_0(CHARS, 1523, 1569, 33); + fill_0(CHARS, 1569, 1595, -19); + fill_0(CHARS, 1595, 1600, 33); + CHARS[1600] = -87; + fill_0(CHARS, 1601, 1611, -19); + fill_0(CHARS, 1611, 1619, -87); + fill_0(CHARS, 1619, 1632, 33); + fill_0(CHARS, 1632, 1642, -87); + fill_0(CHARS, 1642, 1648, 33); + CHARS[1648] = -87; + fill_0(CHARS, 1649, 1720, -19); + fill_0(CHARS, 1720, 1722, 33); + fill_0(CHARS, 1722, 1727, -19); + CHARS[1727] = 33; + fill_0(CHARS, 1728, 1743, -19); + CHARS[1743] = 33; + fill_0(CHARS, 1744, 1748, -19); + CHARS[1748] = 33; + CHARS[1749] = -19; + fill_0(CHARS, 1750, 1765, -87); + fill_0(CHARS, 1765, 1767, -19); + fill_0(CHARS, 1767, 1769, -87); + CHARS[1769] = 33; + fill_0(CHARS, 1770, 1774, -87); + fill_0(CHARS, 1774, 1776, 33); + fill_0(CHARS, 1776, 1786, -87); + fill_0(CHARS, 1786, 2305, 33); + fill_0(CHARS, 2305, 2308, -87); + CHARS[2308] = 33; + fill_0(CHARS, 2309, 2362, -19); + fill_0(CHARS, 2362, 2364, 33); + CHARS[2364] = -87; + CHARS[2365] = -19; + fill_0(CHARS, 2366, 2382, -87); + fill_0(CHARS, 2382, 2385, 33); + fill_0(CHARS, 2385, 2389, -87); + fill_0(CHARS, 2389, 2392, 33); + fill_0(CHARS, 2392, 2402, -19); + fill_0(CHARS, 2402, 2404, -87); + fill_0(CHARS, 2404, 2406, 33); + fill_0(CHARS, 2406, 2416, -87); + fill_0(CHARS, 2416, 2433, 33); + fill_0(CHARS, 2433, 2436, -87); + CHARS[2436] = 33; + fill_0(CHARS, 2437, 2445, -19); + fill_0(CHARS, 2445, 2447, 33); + fill_0(CHARS, 2447, 2449, -19); + fill_0(CHARS, 2449, 2451, 33); + fill_0(CHARS, 2451, 2473, -19); + CHARS[2473] = 33; + fill_0(CHARS, 2474, 2481, -19); + CHARS[2481] = 33; + CHARS[2482] = -19; + fill_0(CHARS, 2483, 2486, 33); + fill_0(CHARS, 2486, 2490, -19); + fill_0(CHARS, 2490, 2492, 33); + CHARS[2492] = -87; + CHARS[2493] = 33; + fill_0(CHARS, 2494, 2501, -87); + fill_0(CHARS, 2501, 2503, 33); + fill_0(CHARS, 2503, 2505, -87); + fill_0(CHARS, 2505, 2507, 33); + fill_0(CHARS, 2507, 2510, -87); + fill_0(CHARS, 2510, 2519, 33); + CHARS[2519] = -87; + fill_0(CHARS, 2520, 2524, 33); + fill_0(CHARS, 2524, 2526, -19); + CHARS[2526] = 33; + fill_0(CHARS, 2527, 2530, -19); + fill_0(CHARS, 2530, 2532, -87); + fill_0(CHARS, 2532, 2534, 33); + fill_0(CHARS, 2534, 2544, -87); + fill_0(CHARS, 2544, 2546, -19); + fill_0(CHARS, 2546, 2562, 33); + CHARS[2562] = -87; + fill_0(CHARS, 2563, 2565, 33); + fill_0(CHARS, 2565, 2571, -19); + fill_0(CHARS, 2571, 2575, 33); + fill_0(CHARS, 2575, 2577, -19); + fill_0(CHARS, 2577, 2579, 33); + fill_0(CHARS, 2579, 2601, -19); + CHARS[2601] = 33; + fill_0(CHARS, 2602, 2609, -19); + CHARS[2609] = 33; + fill_0(CHARS, 2610, 2612, -19); + CHARS[2612] = 33; + fill_0(CHARS, 2613, 2615, -19); + CHARS[2615] = 33; + fill_0(CHARS, 2616, 2618, -19); + fill_0(CHARS, 2618, 2620, 33); + CHARS[2620] = -87; + CHARS[2621] = 33; + fill_0(CHARS, 2622, 2627, -87); + fill_0(CHARS, 2627, 2631, 33); + fill_0(CHARS, 2631, 2633, -87); + fill_0(CHARS, 2633, 2635, 33); + fill_0(CHARS, 2635, 2638, -87); + fill_0(CHARS, 2638, 2649, 33); + fill_0(CHARS, 2649, 2653, -19); + CHARS[2653] = 33; + CHARS[2654] = -19; + fill_0(CHARS, 2655, 2662, 33); + fill_0(CHARS, 2662, 2674, -87); + fill_0(CHARS, 2674, 2677, -19); + fill_0(CHARS, 2677, 2689, 33); + fill_0(CHARS, 2689, 2692, -87); + CHARS[2692] = 33; + fill_0(CHARS, 2693, 2700, -19); + CHARS[2700] = 33; + CHARS[2701] = -19; + CHARS[2702] = 33; + fill_0(CHARS, 2703, 2706, -19); + CHARS[2706] = 33; + fill_0(CHARS, 2707, 2729, -19); + CHARS[2729] = 33; + fill_0(CHARS, 2730, 2737, -19); + CHARS[2737] = 33; + fill_0(CHARS, 2738, 2740, -19); + CHARS[2740] = 33; + fill_0(CHARS, 2741, 2746, -19); + fill_0(CHARS, 2746, 2748, 33); + CHARS[2748] = -87; + CHARS[2749] = -19; + fill_0(CHARS, 2750, 2758, -87); + CHARS[2758] = 33; + fill_0(CHARS, 2759, 2762, -87); + CHARS[2762] = 33; + fill_0(CHARS, 2763, 2766, -87); + fill_0(CHARS, 2766, 2784, 33); + CHARS[2784] = -19; + fill_0(CHARS, 2785, 2790, 33); + fill_0(CHARS, 2790, 2800, -87); + fill_0(CHARS, 2800, 2817, 33); + fill_0(CHARS, 2817, 2820, -87); + CHARS[2820] = 33; + fill_0(CHARS, 2821, 2829, -19); + fill_0(CHARS, 2829, 2831, 33); + fill_0(CHARS, 2831, 2833, -19); + fill_0(CHARS, 2833, 2835, 33); + fill_0(CHARS, 2835, 2857, -19); + CHARS[2857] = 33; + fill_0(CHARS, 2858, 2865, -19); + CHARS[2865] = 33; + fill_0(CHARS, 2866, 2868, -19); + fill_0(CHARS, 2868, 2870, 33); + fill_0(CHARS, 2870, 2874, -19); + fill_0(CHARS, 2874, 2876, 33); + CHARS[2876] = -87; + CHARS[2877] = -19; + fill_0(CHARS, 2878, 2884, -87); + fill_0(CHARS, 2884, 2887, 33); + fill_0(CHARS, 2887, 2889, -87); + fill_0(CHARS, 2889, 2891, 33); + fill_0(CHARS, 2891, 2894, -87); + fill_0(CHARS, 2894, 2902, 33); + fill_0(CHARS, 2902, 2904, -87); + fill_0(CHARS, 2904, 2908, 33); + fill_0(CHARS, 2908, 2910, -19); + CHARS[2910] = 33; + fill_0(CHARS, 2911, 2914, -19); + fill_0(CHARS, 2914, 2918, 33); + fill_0(CHARS, 2918, 2928, -87); + fill_0(CHARS, 2928, 2946, 33); + fill_0(CHARS, 2946, 2948, -87); + CHARS[2948] = 33; + fill_0(CHARS, 2949, 2955, -19); + fill_0(CHARS, 2955, 2958, 33); + fill_0(CHARS, 2958, 2961, -19); + CHARS[2961] = 33; + fill_0(CHARS, 2962, 2966, -19); + fill_0(CHARS, 2966, 2969, 33); + fill_0(CHARS, 2969, 2971, -19); + CHARS[2971] = 33; + CHARS[2972] = -19; + CHARS[2973] = 33; + fill_0(CHARS, 2974, 2976, -19); + fill_0(CHARS, 2976, 2979, 33); + fill_0(CHARS, 2979, 2981, -19); + fill_0(CHARS, 2981, 2984, 33); + fill_0(CHARS, 2984, 2987, -19); + fill_0(CHARS, 2987, 2990, 33); + fill_0(CHARS, 2990, 2998, -19); + CHARS[2998] = 33; + fill_0(CHARS, 2999, 3002, -19); + fill_0(CHARS, 3002, 3006, 33); + fill_0(CHARS, 3006, 3011, -87); + fill_0(CHARS, 3011, 3014, 33); + fill_0(CHARS, 3014, 3017, -87); + CHARS[3017] = 33; + fill_0(CHARS, 3018, 3022, -87); + fill_0(CHARS, 3022, 3031, 33); + CHARS[3031] = -87; + fill_0(CHARS, 3032, 3047, 33); + fill_0(CHARS, 3047, 3056, -87); + fill_0(CHARS, 3056, 3073, 33); + fill_0(CHARS, 3073, 3076, -87); + CHARS[3076] = 33; + fill_0(CHARS, 3077, 3085, -19); + CHARS[3085] = 33; + fill_0(CHARS, 3086, 3089, -19); + CHARS[3089] = 33; + fill_0(CHARS, 3090, 3113, -19); + CHARS[3113] = 33; + fill_0(CHARS, 3114, 3124, -19); + CHARS[3124] = 33; + fill_0(CHARS, 3125, 3130, -19); + fill_0(CHARS, 3130, 3134, 33); + fill_0(CHARS, 3134, 3141, -87); + CHARS[3141] = 33; + fill_0(CHARS, 3142, 3145, -87); + CHARS[3145] = 33; + fill_0(CHARS, 3146, 3150, -87); + fill_0(CHARS, 3150, 3157, 33); + fill_0(CHARS, 3157, 3159, -87); + fill_0(CHARS, 3159, 3168, 33); + fill_0(CHARS, 3168, 3170, -19); + fill_0(CHARS, 3170, 3174, 33); + fill_0(CHARS, 3174, 3184, -87); + fill_0(CHARS, 3184, 3202, 33); + fill_0(CHARS, 3202, 3204, -87); + CHARS[3204] = 33; + fill_0(CHARS, 3205, 3213, -19); + CHARS[3213] = 33; + fill_0(CHARS, 3214, 3217, -19); + CHARS[3217] = 33; + fill_0(CHARS, 3218, 3241, -19); + CHARS[3241] = 33; + fill_0(CHARS, 3242, 3252, -19); + CHARS[3252] = 33; + fill_0(CHARS, 3253, 3258, -19); + fill_0(CHARS, 3258, 3262, 33); + fill_0(CHARS, 3262, 3269, -87); + CHARS[3269] = 33; + fill_0(CHARS, 3270, 3273, -87); + CHARS[3273] = 33; + fill_0(CHARS, 3274, 3278, -87); + fill_0(CHARS, 3278, 3285, 33); + fill_0(CHARS, 3285, 3287, -87); + fill_0(CHARS, 3287, 3294, 33); + CHARS[3294] = -19; + CHARS[3295] = 33; + fill_0(CHARS, 3296, 3298, -19); + fill_0(CHARS, 3298, 3302, 33); + fill_0(CHARS, 3302, 3312, -87); + fill_0(CHARS, 3312, 3330, 33); + fill_0(CHARS, 3330, 3332, -87); + CHARS[3332] = 33; + fill_0(CHARS, 3333, 3341, -19); + CHARS[3341] = 33; + fill_0(CHARS, 3342, 3345, -19); + CHARS[3345] = 33; + fill_0(CHARS, 3346, 3369, -19); + CHARS[3369] = 33; + fill_0(CHARS, 3370, 3386, -19); + fill_0(CHARS, 3386, 3390, 33); + fill_0(CHARS, 3390, 3396, -87); + fill_0(CHARS, 3396, 3398, 33); + fill_0(CHARS, 3398, 3401, -87); + CHARS[3401] = 33; + fill_0(CHARS, 3402, 3406, -87); + fill_0(CHARS, 3406, 3415, 33); + CHARS[3415] = -87; + fill_0(CHARS, 3416, 3424, 33); + fill_0(CHARS, 3424, 3426, -19); + fill_0(CHARS, 3426, 3430, 33); + fill_0(CHARS, 3430, 3440, -87); + fill_0(CHARS, 3440, 3585, 33); + fill_0(CHARS, 3585, 3631, -19); + CHARS[3631] = 33; + CHARS[3632] = -19; + CHARS[3633] = -87; + fill_0(CHARS, 3634, 3636, -19); + fill_0(CHARS, 3636, 3643, -87); + fill_0(CHARS, 3643, 3648, 33); + fill_0(CHARS, 3648, 3654, -19); + fill_0(CHARS, 3654, 3663, -87); + CHARS[3663] = 33; + fill_0(CHARS, 3664, 3674, -87); + fill_0(CHARS, 3674, 3713, 33); + fill_0(CHARS, 3713, 3715, -19); + CHARS[3715] = 33; + CHARS[3716] = -19; + fill_0(CHARS, 3717, 3719, 33); + fill_0(CHARS, 3719, 3721, -19); + CHARS[3721] = 33; + CHARS[3722] = -19; + fill_0(CHARS, 3723, 3725, 33); + CHARS[3725] = -19; + fill_0(CHARS, 3726, 3732, 33); + fill_0(CHARS, 3732, 3736, -19); + CHARS[3736] = 33; + fill_0(CHARS, 3737, 3744, -19); + CHARS[3744] = 33; + fill_0(CHARS, 3745, 3748, -19); + CHARS[3748] = 33; + CHARS[3749] = -19; + CHARS[3750] = 33; + CHARS[3751] = -19; + fill_0(CHARS, 3752, 3754, 33); + fill_0(CHARS, 3754, 3756, -19); + CHARS[3756] = 33; + fill_0(CHARS, 3757, 3759, -19); + CHARS[3759] = 33; + CHARS[3760] = -19; + CHARS[3761] = -87; + fill_0(CHARS, 3762, 3764, -19); + fill_0(CHARS, 3764, 3770, -87); + CHARS[3770] = 33; + fill_0(CHARS, 3771, 3773, -87); + CHARS[3773] = -19; + fill_0(CHARS, 3774, 3776, 33); + fill_0(CHARS, 3776, 3781, -19); + CHARS[3781] = 33; + CHARS[3782] = -87; + CHARS[3783] = 33; + fill_0(CHARS, 3784, 3790, -87); + fill_0(CHARS, 3790, 3792, 33); + fill_0(CHARS, 3792, 3802, -87); + fill_0(CHARS, 3802, 3864, 33); + fill_0(CHARS, 3864, 3866, -87); + fill_0(CHARS, 3866, 3872, 33); + fill_0(CHARS, 3872, 3882, -87); + fill_0(CHARS, 3882, 3893, 33); + CHARS[3893] = -87; + CHARS[3894] = 33; + CHARS[3895] = -87; + CHARS[3896] = 33; + CHARS[3897] = -87; + fill_0(CHARS, 3898, 3902, 33); + fill_0(CHARS, 3902, 3904, -87); + fill_0(CHARS, 3904, 3912, -19); + CHARS[3912] = 33; + fill_0(CHARS, 3913, 3946, -19); + fill_0(CHARS, 3946, 3953, 33); + fill_0(CHARS, 3953, 3973, -87); + CHARS[3973] = 33; + fill_0(CHARS, 3974, 3980, -87); + fill_0(CHARS, 3980, 3984, 33); + fill_0(CHARS, 3984, 3990, -87); + CHARS[3990] = 33; + CHARS[3991] = -87; + CHARS[3992] = 33; + fill_0(CHARS, 3993, 4014, -87); + fill_0(CHARS, 4014, 4017, 33); + fill_0(CHARS, 4017, 4024, -87); + CHARS[4024] = 33; + CHARS[4025] = -87; + fill_0(CHARS, 4026, 4256, 33); + fill_0(CHARS, 4256, 4294, -19); + fill_0(CHARS, 4294, 4304, 33); + fill_0(CHARS, 4304, 4343, -19); + fill_0(CHARS, 4343, 4352, 33); + CHARS[4352] = -19; + CHARS[4353] = 33; + fill_0(CHARS, 4354, 4356, -19); + CHARS[4356] = 33; + fill_0(CHARS, 4357, 4360, -19); + CHARS[4360] = 33; + CHARS[4361] = -19; + CHARS[4362] = 33; + fill_0(CHARS, 4363, 4365, -19); + CHARS[4365] = 33; + fill_0(CHARS, 4366, 4371, -19); + fill_0(CHARS, 4371, 4412, 33); + CHARS[4412] = -19; + CHARS[4413] = 33; + CHARS[4414] = -19; + CHARS[4415] = 33; + CHARS[4416] = -19; + fill_0(CHARS, 4417, 4428, 33); + CHARS[4428] = -19; + CHARS[4429] = 33; + CHARS[4430] = -19; + CHARS[4431] = 33; + CHARS[4432] = -19; + fill_0(CHARS, 4433, 4436, 33); + fill_0(CHARS, 4436, 4438, -19); + fill_0(CHARS, 4438, 4441, 33); + CHARS[4441] = -19; + fill_0(CHARS, 4442, 4447, 33); + fill_0(CHARS, 4447, 4450, -19); + CHARS[4450] = 33; + CHARS[4451] = -19; + CHARS[4452] = 33; + CHARS[4453] = -19; + CHARS[4454] = 33; + CHARS[4455] = -19; + CHARS[4456] = 33; + CHARS[4457] = -19; + fill_0(CHARS, 4458, 4461, 33); + fill_0(CHARS, 4461, 4463, -19); + fill_0(CHARS, 4463, 4466, 33); + fill_0(CHARS, 4466, 4468, -19); + CHARS[4468] = 33; + CHARS[4469] = -19; + fill_0(CHARS, 4470, 4510, 33); + CHARS[4510] = -19; + fill_0(CHARS, 4511, 4520, 33); + CHARS[4520] = -19; + fill_0(CHARS, 4521, 4523, 33); + CHARS[4523] = -19; + fill_0(CHARS, 4524, 4526, 33); + fill_0(CHARS, 4526, 4528, -19); + fill_0(CHARS, 4528, 4535, 33); + fill_0(CHARS, 4535, 4537, -19); + CHARS[4537] = 33; + CHARS[4538] = -19; + CHARS[4539] = 33; + fill_0(CHARS, 4540, 4547, -19); + fill_0(CHARS, 4547, 4587, 33); + CHARS[4587] = -19; + fill_0(CHARS, 4588, 4592, 33); + CHARS[4592] = -19; + fill_0(CHARS, 4593, 4601, 33); + CHARS[4601] = -19; + fill_0(CHARS, 4602, 7680, 33); + fill_0(CHARS, 7680, 7836, -19); + fill_0(CHARS, 7836, 7840, 33); + fill_0(CHARS, 7840, 7930, -19); + fill_0(CHARS, 7930, 7936, 33); + fill_0(CHARS, 7936, 7958, -19); + fill_0(CHARS, 7958, 7960, 33); + fill_0(CHARS, 7960, 7966, -19); + fill_0(CHARS, 7966, 7968, 33); + fill_0(CHARS, 7968, 8006, -19); + fill_0(CHARS, 8006, 8008, 33); + fill_0(CHARS, 8008, 8014, -19); + fill_0(CHARS, 8014, 8016, 33); + fill_0(CHARS, 8016, 8024, -19); + CHARS[8024] = 33; + CHARS[8025] = -19; + CHARS[8026] = 33; + CHARS[8027] = -19; + CHARS[8028] = 33; + CHARS[8029] = -19; + CHARS[8030] = 33; + fill_0(CHARS, 8031, 8062, -19); + fill_0(CHARS, 8062, 8064, 33); + fill_0(CHARS, 8064, 8117, -19); + CHARS[8117] = 33; + fill_0(CHARS, 8118, 8125, -19); + CHARS[8125] = 33; + CHARS[8126] = -19; + fill_0(CHARS, 8127, 8130, 33); + fill_0(CHARS, 8130, 8133, -19); + CHARS[8133] = 33; + fill_0(CHARS, 8134, 8141, -19); + fill_0(CHARS, 8141, 8144, 33); + fill_0(CHARS, 8144, 8148, -19); + fill_0(CHARS, 8148, 8150, 33); + fill_0(CHARS, 8150, 8156, -19); + fill_0(CHARS, 8156, 8160, 33); + fill_0(CHARS, 8160, 8173, -19); + fill_0(CHARS, 8173, 8178, 33); + fill_0(CHARS, 8178, 8181, -19); + CHARS[8181] = 33; + fill_0(CHARS, 8182, 8189, -19); + fill_0(CHARS, 8189, 8400, 33); + fill_0(CHARS, 8400, 8413, -87); + fill_0(CHARS, 8413, 8417, 33); + CHARS[8417] = -87; + fill_0(CHARS, 8418, 8486, 33); + CHARS[8486] = -19; + fill_0(CHARS, 8487, 8490, 33); + fill_0(CHARS, 8490, 8492, -19); + fill_0(CHARS, 8492, 8494, 33); + CHARS[8494] = -19; + fill_0(CHARS, 8495, 8576, 33); + fill_0(CHARS, 8576, 8579, -19); + fill_0(CHARS, 8579, 12293, 33); + CHARS[12293] = -87; + CHARS[12294] = 33; + CHARS[12295] = -19; + fill_0(CHARS, 12296, 12321, 33); + fill_0(CHARS, 12321, 12330, -19); + fill_0(CHARS, 12330, 12336, -87); + CHARS[12336] = 33; + fill_0(CHARS, 12337, 12342, -87); + fill_0(CHARS, 12342, 12353, 33); + fill_0(CHARS, 12353, 12437, -19); + fill_0(CHARS, 12437, 12441, 33); + fill_0(CHARS, 12441, 12443, -87); + fill_0(CHARS, 12443, 12445, 33); + fill_0(CHARS, 12445, 12447, -87); + fill_0(CHARS, 12447, 12449, 33); + fill_0(CHARS, 12449, 12539, -19); + CHARS[12539] = 33; + fill_0(CHARS, 12540, 12543, -87); + fill_0(CHARS, 12543, 12549, 33); + fill_0(CHARS, 12549, 12589, -19); + fill_0(CHARS, 12589, 19968, 33); + fill_0(CHARS, 19968, 40870, -19); + fill_0(CHARS, 40870, 44032, 33); + fill_0(CHARS, 44032, 55204, -19); + fill_0(CHARS, 55204, $intern_64, 33); + fill_0(CHARS, 57344, 65534, 33); +} + +var CHARS; +function RegEx$ParseException(mes){ + RuntimeException_0.call(this, mes); +} + +defineClass(50, 60, $intern_43, RegEx$ParseException); +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParseException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParseException', 50); +function $next_17(this$static){ + var ch_0, low, ret; + if (this$static.offset >= this$static.regexlen) { + this$static.chardata = -1; + this$static.nexttoken = 1; + return; + } + ch_0 = $charAt(this$static.regex, this$static.offset++); + this$static.chardata = ch_0; + if (this$static.context == 1) { + switch (ch_0) { + case 92: + ret = 10; + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + this$static.chardata = $charAt(this$static.regex, this$static.offset++); + break; + case 45: + if ((this$static.options_0 & 512) == 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 91) { + ++this$static.offset; + ret = 24; + } + else + ret = 0; + break; + case 91: + if ((this$static.options_0 & 512) != 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 58) { + ++this$static.offset; + ret = 20; + break; + } + + default:if ((ch_0 & 64512) == $intern_64 && this$static.offset < this$static.regexlen) { + low = $charAt(this$static.regex, this$static.offset); + if ((low & 64512) == 56320) { + this$static.chardata = $intern_63 + (ch_0 - $intern_64 << 10) + low - 56320; + ++this$static.offset; + } + } + + ret = 0; + } + this$static.nexttoken = ret; + return; + } + switch (ch_0) { + case 124: + ret = 2; + break; + case 42: + ret = 3; + break; + case 43: + ret = 4; + break; + case 63: + ret = 5; + break; + case 41: + ret = 7; + break; + case 46: + ret = 8; + break; + case 91: + ret = 9; + break; + case 94: + ret = 11; + break; + case 36: + ret = 12; + break; + case 40: + ret = 6; + if (this$static.offset >= this$static.regexlen) + break; + if ($charAt(this$static.regex, this$static.offset) != 63) + break; + if (++this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + ch_0 = $charAt(this$static.regex, this$static.offset++); + switch (ch_0) { + case 58: + ret = 13; + break; + case 61: + ret = 14; + break; + case 33: + ret = 15; + break; + case 91: + ret = 19; + break; + case 62: + ret = 18; + break; + case 60: + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + ch_0 = $charAt(this$static.regex, this$static.offset++); + if (ch_0 == 61) { + ret = 16; + } + else if (ch_0 == 33) { + ret = 17; + } + else + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.3')))); + break; + case 35: + while (this$static.offset < this$static.regexlen) { + ch_0 = $charAt(this$static.regex, this$static.offset++); + if (ch_0 == 41) + break; + } + + if (ch_0 != 41) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.4')))); + ret = 21; + break; + default:if (ch_0 == 45 || 97 <= ch_0 && ch_0 <= 122 || 65 <= ch_0 && ch_0 <= 90) { + --this$static.offset; + ret = 22; + break; + } + else if (ch_0 == 40) { + ret = 23; + break; + } + + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); + } + + break; + case 92: + ret = 10; + if (this$static.offset >= this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + this$static.chardata = $charAt(this$static.regex, this$static.offset++); + break; + default:ret = 0; + } + this$static.nexttoken = ret; +} + +function $parse_3(this$static, regex, options){ + var i, position, ret; + this$static.options_0 = options; + this$static.offset = 0; + this$static.context = 0; + this$static.parennumber = 1; + this$static.regex = regex; + (this$static.options_0 & 16) == 16 && (this$static.regex = stripExtendedComment(this$static.regex)); + this$static.regexlen = this$static.regex.length; + $next_17(this$static); + ret = $parseRegex(this$static); + if (this$static.offset != this$static.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.1')))); + if (this$static.references) { + for (i = 0; i < this$static.references.arrayList.array.length; i++) { + position = castTo($elementAt(this$static.references, i), 584); + if (this$static.parennumber <= position.refNumber) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.2')))); + } + this$static.references.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + return ret; +} + +function $parseAtom(this$static){ + var ch_0, ch2, high, sur, tok; + ch_0 = this$static.nexttoken; + tok = null; + switch (ch_0) { + case 6: + return this$static.processParen(); + case 13: + return this$static.processParen2(); + case 23: + return this$static.processCondition(); + case 22: + return this$static.processModifiers(); + case 18: + return this$static.processIndependent(); + case 8: + $next_17(this$static); + tok = ($clinit_RegEx$Token() , token_dot); + break; + case 9: + return this$static.parseCharacterClass(true); + case 19: + return this$static.parseSetOperations(); + case 10: + switch (this$static.chardata) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + tok = this$static.getTokenForShorthand(this$static.chardata); + $next_17(this$static); + return tok; + case 101: + case 102: + case 110: + case 114: + case 116: + case 117: + case 118: + case 120: + { + ch2 = this$static.decodeEscaped(); + ch2 < $intern_63?(tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2))):(tok = createString_0(decomposeToSurrogates(ch2))); + } + + break; + case 99: + return this$static.processBacksolidus_c(); + case 67: + return this$static.processBacksolidus_C(); + case 105: + return this$static.processBacksolidus_i(); + case 73: + return this$static.processBacksolidus_I(); + case 103: + return this$static.processBacksolidus_g(); + case 88: + return this$static.processBacksolidus_X(); + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return this$static.processBackreference(); + case 80: + case 112: + tok = $processBacksolidus_pP(this$static, this$static.chardata); + if (!tok) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + break; + default:tok = createChar(this$static.chardata); + } + + $next_17(this$static); + break; + case 0: + if (this$static.chardata == 93 || this$static.chardata == 123 || this$static.chardata == 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); + tok = createChar(this$static.chardata); + high = this$static.chardata; + $next_17(this$static); + if ((high & 64512) == $intern_64 && this$static.nexttoken == 0 && (this$static.chardata & 64512) == 56320) { + sur = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); + sur[0] = high & $intern_46; + sur[1] = this$static.chardata & $intern_46; + tok = createParen(createString_0(valueOf_9(sur, 0, sur.length)), 0); + $next_17(this$static); + } + + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); + } + return tok; +} + +function $parseFactor(this$static){ + var ch_0, max_0, min_0, off, tok; + ch_0 = this$static.nexttoken; + switch (ch_0) { + case 11: + return this$static.processCaret(); + case 12: + return this$static.processDollar(); + case 14: + return this$static.processLookahead(); + case 15: + return this$static.processNegativelookahead(); + case 16: + return this$static.processLookbehind(); + case 17: + return this$static.processNegativelookbehind(); + case 21: + $next_17(this$static); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; + case 10: + switch (this$static.chardata) { + case 65: + return this$static.processBacksolidus_A(); + case 90: + return this$static.processBacksolidus_Z(); + case 122: + return this$static.processBacksolidus_z(); + case 98: + return this$static.processBacksolidus_b(); + case 66: + return this$static.processBacksolidus_B(); + case 60: + return this$static.processBacksolidus_lt(); + case 62: + return this$static.processBacksolidus_gt(); + } + + } + tok = $parseAtom(this$static); + ch_0 = this$static.nexttoken; + switch (ch_0) { + case 3: + return this$static.processStar(tok); + case 4: + return this$static.processPlus(tok); + case 5: + return this$static.processQuestion(tok); + case 0: + if (this$static.chardata == 123 && this$static.offset < this$static.regexlen) { + off = this$static.offset; + min_0 = 0; + max_0 = -1; + if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + min_0 = ch_0 - 48; + while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + min_0 = min_0 * 10 + ch_0 - 48; + if (min_0 < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); + } + } + else { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.1')))); + } + max_0 = min_0; + if (ch_0 == 44) { + if (off >= this$static.regexlen) { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.3')))); + } + else if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + max_0 = ch_0 - 48; + while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { + max_0 = max_0 * 10 + ch_0 - 48; + if (max_0 < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); + } + if (min_0 > max_0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.4')))); + } + else { + max_0 = -1; + } + } + if (ch_0 != 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.2')))); + if (this$static.checkQuestion(off)) { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok)); + this$static.offset = off + 1; + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok)); + this$static.offset = off; + } + tok.setMin(min_0); + tok.setMax(max_0); + $next_17(this$static); + } + + } + return tok; +} + +function $parseRegex(this$static){ + var parent_0, tok; + tok = $parseTerm(this$static); + parent_0 = null; + while (this$static.nexttoken == 2) { + $next_17(this$static); + if (!parent_0) { + parent_0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(parent_0, tok); + tok = parent_0; + } + tok.addChild($parseTerm(this$static)); + } + return tok; +} + +function $parseTerm(this$static){ + var ch_0, concat, tok; + ch_0 = this$static.nexttoken; + if (ch_0 == 2 || ch_0 == 7 || ch_0 == 1) { + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; + } + else { + tok = $parseFactor(this$static); + concat = null; + while ((ch_0 = this$static.nexttoken) != 2 && ch_0 != 7 && ch_0 != 1) { + if (!concat) { + concat = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(1)); + $addChild_0(concat, tok); + tok = concat; + } + $addChild_0(concat, $parseFactor(this$static)); + } + return tok; + } +} + +function $processBacksolidus_pP(this$static, c){ + var nameend, namestart, pname, positive; + $next_17(this$static); + if (this$static.nexttoken != 0 || this$static.chardata != 123) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.2')))); + positive = c == 112; + namestart = this$static.offset; + nameend = $indexOf_0(this$static.regex, 125, namestart); + if (nameend < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.3')))); + pname = $substring_1(this$static.regex, namestart, nameend); + this$static.offset = nameend + 1; + return getRange_1(pname, positive, (this$static.options_0 & 512) == 512); +} + +function RegEx$RegexParser(){ +} + +function hexChar(ch_0){ + if (ch_0 < 48) + return -1; + if (ch_0 > 102) + return -1; + if (ch_0 <= 57) + return ch_0 - 48; + if (ch_0 < 65) + return -1; + if (ch_0 <= 70) + return ch_0 - 65 + 10; + if (ch_0 < 97) + return -1; + return ch_0 - 97 + 10; +} + +defineClass(820, 1, {}, RegEx$RegexParser); +_.checkQuestion = function checkQuestion(off){ + return off < this.regexlen && $charAt(this.regex, off) == 63; +} +; +_.decodeEscaped = function decodeEscaped(){ + var c, uv, uv0, v1, v10; + if (this.nexttoken != 10) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + c = this.chardata; + switch (c) { + case 101: + c = 27; + break; + case 102: + c = 12; + break; + case 110: + c = 10; + break; + case 114: + c = 13; + break; + case 116: + c = 9; + break; + case 120: + $next_17(this); + if (this.nexttoken != 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + if (this.chardata == 123) { + v10 = 0; + uv0 = 0; + do { + $next_17(this); + if (this.nexttoken != 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + if ((v10 = hexChar(this.chardata)) < 0) + break; + if (uv0 > uv0 * 16) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.2')))); + uv0 = uv0 * 16 + v10; + } + while (true); + if (this.chardata != 125) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.3')))); + if (uv0 > $intern_165) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.4')))); + c = uv0; + } + else { + v10 = 0; + if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv0 = v10; + $next_17(this); + if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv0 = uv0 * 16 + v10; + c = uv0; + } + + break; + case 117: + v1 = 0; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + c = uv; + break; + case 118: + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + $next_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = uv * 16 + v1; + if (uv > $intern_165) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descappe.4')))); + c = uv; + break; + case 65: + case 90: + case 122: + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.5')))); + } + return c; +} +; +_.getTokenForShorthand = function getTokenForShorthand(ch_0){ + var number, tok; + switch (ch_0) { + case 100: + tok = (this.options_0 & 32) == 32?getRange_0('Nd', true):($clinit_RegEx$Token() , token_0to9); + break; + case 68: + tok = (this.options_0 & 32) == 32?getRange_0('Nd', false):($clinit_RegEx$Token() , token_not_0to9); + break; + case 119: + tok = (this.options_0 & 32) == 32?getRange_0('IsWord', true):($clinit_RegEx$Token() , token_wordchars); + break; + case 87: + tok = (this.options_0 & 32) == 32?getRange_0('IsWord', false):($clinit_RegEx$Token() , token_not_wordchars); + break; + case 115: + tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', true):($clinit_RegEx$Token() , token_spaces); + break; + case 83: + tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', false):($clinit_RegEx$Token() , token_not_spaces); + break; + default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); + } + return tok; +} +; +_.parseCharacterClass = function parseCharacterClass(useNrange){ + var base, c, end, firstloop, name_0, nameend, positive, range, rangeend, tok, tok2, type_0; + this.context = 1; + $next_17(this); + base = null; + if (this.nexttoken == 0 && this.chardata == 94) { + $next_17(this); + if (useNrange) { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(5)); + } + else { + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_165); + tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); + } + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + } + firstloop = true; + while ((type_0 = this.nexttoken) != 1) { + if (type_0 == 0 && this.chardata == 93 && !firstloop) + break; + firstloop = false; + c = this.chardata; + end = false; + if (type_0 == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + $mergeRanges(tok, this.getTokenForShorthand(c)); + end = true; + break; + case 105: + case 73: + case 99: + case 67: + c = this.processCIinCharacterClass(tok, c); + c < 0 && (end = true); + break; + case 112: + case 80: + tok2 = $processBacksolidus_pP(this, c); + if (!tok2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + $mergeRanges(tok, tok2); + end = true; + break; + default:c = this.decodeEscaped(); + } + } + else if (type_0 == 20) { + nameend = $indexOf_0(this.regex, 58, this.offset); + if (nameend < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); + positive = true; + if ($charAt(this.regex, this.offset) == 94) { + ++this.offset; + positive = false; + } + name_0 = $substring_1(this.regex, this.offset, nameend); + range = getRange_1(name_0, positive, (this.options_0 & 512) == 512); + if (!range) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.3')))); + $mergeRanges(tok, range); + end = true; + if (nameend + 1 >= this.regexlen || $charAt(this.regex, nameend + 1) != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); + this.offset = nameend + 2; + } + $next_17(this); + if (!end) { + if (this.nexttoken != 0 || this.chardata != 45) { + $addRange(tok, c, c); + } + else { + $next_17(this); + if ((type_0 = this.nexttoken) == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (type_0 == 0 && this.chardata == 93) { + $addRange(tok, c, c); + $addRange(tok, 45, 45); + } + else { + rangeend = this.chardata; + type_0 == 10 && (rangeend = this.decodeEscaped()); + $next_17(this); + $addRange(tok, c, rangeend); + } + } + } + (this.options_0 & $intern_137) == $intern_137 && this.nexttoken == 0 && this.chardata == 44 && $next_17(this); + } + if (this.nexttoken == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (base) { + $subtractRanges(base, tok); + tok = base; + } + $sortRanges(tok); + $compactRanges(tok); + this.context = 0; + $next_17(this); + return tok; +} +; +_.parseSetOperations = function parseSetOperations(){ + var ch_0, t2, tok, type_0; + tok = this.parseCharacterClass(false); + while ((type_0 = this.nexttoken) != 7) { + ch_0 = this.chardata; + if (type_0 == 0 && (ch_0 == 45 || ch_0 == 38) || type_0 == 4) { + $next_17(this); + if (this.nexttoken != 9) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.1')))); + t2 = this.parseCharacterClass(false); + if (type_0 == 4) + $mergeRanges(tok, t2); + else if (ch_0 == 45) + $subtractRanges(tok, t2); + else if (ch_0 == 38) + $intersectRanges(tok, t2); + else + throw toJs(new RuntimeException_0('ASSERT')); + } + else { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.2')))); + } + } + $next_17(this); + return tok; +} +; +_.processBackreference = function processBackreference(){ + var refnum, tok; + refnum = this.chardata - 48; + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$StringToken(12, null, refnum)); + !this.references && (this.references = new Vector); + $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refnum)); + $next_17(this); + return tok; +} +; +_.processBacksolidus_A = function processBacksolidus_A(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringbeginning; +} +; +_.processBacksolidus_B = function processBacksolidus_B(){ + $next_17(this); + return $clinit_RegEx$Token() , token_not_wordedge; +} +; +_.processBacksolidus_C = function processBacksolidus_C(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_I = function processBacksolidus_I(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_X = function processBacksolidus_X(){ + $next_17(this); + return getCombiningCharacterSequence(); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringend2; +} +; +_.processBacksolidus_b = function processBacksolidus_b(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordedge; +} +; +_.processBacksolidus_c = function processBacksolidus_c(){ + var ch2; + if (this.offset >= this.regexlen || ((ch2 = $charAt(this.regex, this.offset++)) & 65504) != 64) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.1')))); + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2 - 64); +} +; +_.processBacksolidus_g = function processBacksolidus_g(){ + $next_17(this); + return getGraphemePattern(); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordend; +} +; +_.processBacksolidus_i = function processBacksolidus_i(){ + var tok; + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 105)); + $next_17(this); + return tok; +} +; +_.processBacksolidus_lt = function processBacksolidus_lt(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordbeginning; +} +; +_.processBacksolidus_z = function processBacksolidus_z(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringend; +} +; +_.processCIinCharacterClass = function processCIinCharacterClass(tok, c){ + return this.decodeEscaped(); +} +; +_.processCaret = function processCaret(){ + $next_17(this); + return $clinit_RegEx$Token() , token_linebeginning; +} +; +_.processCondition = function processCondition(){ + var ch_0, condition, noPattern, refno, yesPattern; + if (this.offset + 1 >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.4')))); + refno = -1; + condition = null; + ch_0 = $charAt(this.regex, this.offset); + if (49 <= ch_0 && ch_0 <= 57) { + refno = ch_0 - 48; + !this.references && (this.references = new Vector); + $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refno)); + ++this.offset; + if ($charAt(this.regex, this.offset) != 41) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + ++this.offset; + } + else { + ch_0 == 63 && --this.offset; + $next_17(this); + condition = $parseFactor(this); + switch (condition.type_0) { + case 20: + case 21: + case 22: + case 23: + break; + case 8: + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.5')))); + } + } + $next_17(this); + yesPattern = $parseRegex(this); + noPattern = null; + if (yesPattern.type_0 == 2) { + if (yesPattern.size_2() != 2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.6')))); + noPattern = yesPattern.getChild(1); + yesPattern = yesPattern.getChild(0); + } + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ConditionToken(refno, condition, yesPattern, noPattern); +} +; +_.processDollar = function processDollar(){ + $next_17(this); + return $clinit_RegEx$Token() , token_lineend; +} +; +_.processIndependent = function processIndependent(){ + var tok; + $next_17(this); + tok = createLook(24, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processLookahead = function processLookahead(){ + var tok; + $next_17(this); + tok = createLook(20, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processLookbehind = function processLookbehind(){ + var tok; + $next_17(this); + tok = createLook(22, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processModifiers = function processModifiers(){ + var add_0, ch_0, mask, tok, v; + add_0 = 0; + mask = 0; + ch_0 = -1; + while (this.offset < this.regexlen) { + ch_0 = $charAt(this.regex, this.offset); + v = getOptionValue(ch_0); + if (v == 0) + break; + add_0 |= v; + ++this.offset; + } + if (this.offset >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); + if (ch_0 == 45) { + ++this.offset; + while (this.offset < this.regexlen) { + ch_0 = $charAt(this.regex, this.offset); + v = getOptionValue(ch_0); + if (v == 0) + break; + mask |= v; + ++this.offset; + } + if (this.offset >= this.regexlen) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); + } + if (ch_0 == 58) { + ++this.offset; + $next_17(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + } + else if (ch_0 == 41) { + ++this.offset; + $next_17(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + } + else + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.3')))); + return tok; +} +; +_.processNegativelookahead = function processNegativelookahead(){ + var tok; + $next_17(this); + tok = createLook(21, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processNegativelookbehind = function processNegativelookbehind(){ + var tok; + $next_17(this); + tok = createLook(23, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen = function processParen(){ + var p, tok; + $next_17(this); + p = this.parennumber++; + tok = createParen($parseRegex(this), p); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen2 = function processParen2(){ + var tok; + $next_17(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processPlus = function processPlus(tok){ + $next_17(this); + if (this.nexttoken == 5) { + $next_17(this); + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok))); + } + else + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); +} +; +_.processQuestion = function processQuestion(tok){ + var par; + $next_17(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + if (this.nexttoken == 5) { + $next_17(this); + $addChild_0(par, (null , token_empty)); + $addChild_0(par, tok); + } + else { + $addChild_0(par, tok); + $addChild_0(par, (null , token_empty)); + } + return par; +} +; +_.processStar = function processStar(tok){ + $next_17(this); + if (this.nexttoken == 5) { + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok); + } + else + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); +} +; +_.chardata = 0; +_.context = 0; +_.nexttoken = 0; +_.offset = 0; +_.options_0 = 0; +_.parennumber = 1; +_.references = null; +_.regexlen = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser', 820); +function $decodeEscaped(this$static){ + var c; + if (this$static.nexttoken != 10) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); + c = this$static.chardata; + switch (c) { + case 110: + c = 10; + break; + case 114: + c = 13; + break; + case 116: + c = 9; + break; + case 92: + case 124: + case 46: + case 94: + case 45: + case 63: + case 42: + case 43: + case 123: + case 125: + case 40: + case 41: + case 91: + case 93: + break; + default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); + } + return c; +} + +function $getTokenForShorthand(ch_0){ + var number; + switch (ch_0) { + case 100: + return getRange('xml:isDigit', true); + case 68: + return getRange('xml:isDigit', false); + case 119: + return getRange('xml:isWord', true); + case 87: + return getRange('xml:isWord', false); + case 115: + return getRange('xml:isSpace', true); + case 83: + return getRange('xml:isSpace', false); + case 99: + return getRange('xml:isNameChar', true); + case 67: + return getRange('xml:isNameChar', false); + case 105: + return getRange('xml:isInitialNameChar', true); + case 73: + return getRange('xml:isInitialNameChar', false); + default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); + } +} + +function $parseCharacterClass(this$static){ + var base, c, end, firstloop, range2, rangeend, tok, tok2, type_0; + this$static.context = 1; + $next_17(this$static); + base = null; + if (this$static.nexttoken == 0 && this$static.chardata == 94) { + $next_17(this$static); + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_165); + tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); + } + else { + tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + } + firstloop = true; + while ((type_0 = this$static.nexttoken) != 1) { + if (type_0 == 0 && this$static.chardata == 93 && !firstloop) { + if (base) { + $subtractRanges(base, tok); + tok = base; + } + break; + } + c = this$static.chardata; + end = false; + if (type_0 == 10) { + switch (c) { + case 100: + case 68: + case 119: + case 87: + case 115: + case 83: + $mergeRanges(tok, $getTokenForShorthand(c)); + end = true; + break; + case 105: + case 73: + case 99: + case 67: + c = ($mergeRanges(tok, $getTokenForShorthand(c)) , -1); + c < 0 && (end = true); + break; + case 112: + case 80: + tok2 = $processBacksolidus_pP(this$static, c); + if (!tok2) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); + $mergeRanges(tok, tok2); + end = true; + break; + default:c = $decodeEscaped(this$static); + } + } + else if (type_0 == 24 && !firstloop) { + if (base) { + $subtractRanges(base, tok); + tok = base; + } + range2 = $parseCharacterClass(this$static); + $subtractRanges(tok, range2); + if (this$static.nexttoken != 0 || this$static.chardata != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.5')))); + break; + } + $next_17(this$static); + if (!end) { + if (type_0 == 0) { + if (c == 91) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); + if (c == 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); + if (c == 45 && !firstloop && this$static.chardata != 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + if (this$static.nexttoken != 0 || this$static.chardata != 45 || c == 45 && firstloop) { + $addRange(tok, c, c); + } + else { + $next_17(this$static); + if ((type_0 = this$static.nexttoken) == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + if (type_0 == 0 && this$static.chardata == 93) { + $addRange(tok, c, c); + $addRange(tok, 45, 45); + } + else if (type_0 == 0 && this$static.chardata == 93 || type_0 == 24) { + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + else { + rangeend = this$static.chardata; + if (type_0 == 0) { + if (rangeend == 91) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); + if (rangeend == 93) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); + if (rangeend == 45) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); + } + else + type_0 == 10 && (rangeend = $decodeEscaped(this$static)); + $next_17(this$static); + if (c > rangeend) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.3')))); + $addRange(tok, c, rangeend); + } + } + } + firstloop = false; + } + if (this$static.nexttoken == 1) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); + $sortRanges(tok); + $compactRanges(tok); + this$static.context = 0; + $next_17(this$static); + return tok; +} + +function RegEx$ParserForXMLSchema(){ + RegEx$RegexParser.call(this); +} + +function getRange(name_0, positive){ + var tok, tok0; + if (!ranges_0) { + ranges_0 = new HashMap; + ranges2 = new HashMap; + tok0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '\t\n\r\r '); + $putStringValue(ranges_0, 'xml:isSpace', tok0); + $putStringValue(ranges2, 'xml:isSpace', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); + $putStringValue(ranges_0, 'xml:isDigit', tok0); + $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); + $putStringValue(ranges_0, 'xml:isDigit', tok0); + $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $mergeRanges(tok0, castTo($getStringValue(ranges_0, 'xml:isDigit'), 117)); + $putStringValue(ranges_0, 'xml:isWord', tok0); + $putStringValue(ranges2, 'xml:isWord', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, '-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $putStringValue(ranges_0, 'xml:isNameChar', tok0); + $putStringValue(ranges2, 'xml:isNameChar', complementRanges(tok0)); + tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); + setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); + $addRange(tok0, 95, 95); + $addRange(tok0, 58, 58); + $putStringValue(ranges_0, 'xml:isInitialNameChar', tok0); + $putStringValue(ranges2, 'xml:isInitialNameChar', complementRanges(tok0)); + } + tok = positive?castTo($getStringValue(ranges_0, name_0), 136):castTo($getStringValue(ranges2, name_0), 136); + return tok; +} + +function setupRange(range, src_0){ + var i, len; + len = src_0.length; + for (i = 0; i < len; i += 2) + $addRange(range, (checkCriticalStringElementIndex(i, src_0.length) , src_0.charCodeAt(i)), (checkCriticalStringElementIndex(i + 1, src_0.length) , src_0.charCodeAt(i + 1))); +} + +defineClass(1824, 820, {}, RegEx$ParserForXMLSchema); +_.checkQuestion = function checkQuestion_0(off){ + return false; +} +; +_.decodeEscaped = function decodeEscaped_0(){ + return $decodeEscaped(this); +} +; +_.getTokenForShorthand = function getTokenForShorthand_0(ch_0){ + return $getTokenForShorthand(ch_0); +} +; +_.parseCharacterClass = function parseCharacterClass_0(useNrange){ + return $parseCharacterClass(this); +} +; +_.parseSetOperations = function parseSetOperations_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBackreference = function processBackreference_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_A = function processBacksolidus_A_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_B = function processBacksolidus_B_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_C = function processBacksolidus_C_0(){ + $next_17(this); + return $getTokenForShorthand(67); +} +; +_.processBacksolidus_I = function processBacksolidus_I_0(){ + $next_17(this); + return $getTokenForShorthand(73); +} +; +_.processBacksolidus_X = function processBacksolidus_X_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_b = function processBacksolidus_b_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_c = function processBacksolidus_c_0(){ + $next_17(this); + return $getTokenForShorthand(99); +} +; +_.processBacksolidus_g = function processBacksolidus_g_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_i = function processBacksolidus_i_0(){ + $next_17(this); + return $getTokenForShorthand(105); +} +; +_.processBacksolidus_lt = function processBacksolidus_lt_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processBacksolidus_z = function processBacksolidus_z_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processCIinCharacterClass = function processCIinCharacterClass_0(tok, c){ + return $mergeRanges(tok, $getTokenForShorthand(c)) , -1; +} +; +_.processCaret = function processCaret_0(){ + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 94); +} +; +_.processCondition = function processCondition_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processDollar = function processDollar_0(){ + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 36); +} +; +_.processIndependent = function processIndependent_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processLookahead = function processLookahead_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processLookbehind = function processLookbehind_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processModifiers = function processModifiers_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processNegativelookahead = function processNegativelookahead_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processNegativelookbehind = function processNegativelookbehind_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processParen = function processParen_0(){ + var tok; + $next_17(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen2 = function processParen2_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processPlus = function processPlus_0(tok){ + $next_17(this); + return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); +} +; +_.processQuestion = function processQuestion_0(tok){ + var par; + $next_17(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(par, tok); + $addChild_0(par, (null , token_empty)); + return par; +} +; +_.processStar = function processStar_0(tok){ + $next_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); +} +; +var ranges_0 = null, ranges2 = null; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParserForXMLSchema_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParserForXMLSchema', 1824); +function createOptionString(options){ + var sb; + sb = new StringBuffer_0; + (options & 256) != 0 && (sb.string += 'F' , sb); + (options & 128) != 0 && (sb.string += 'H' , sb); + (options & 512) != 0 && (sb.string += 'X' , sb); + (options & 2) != 0 && (sb.string += 'i' , sb); + (options & 8) != 0 && (sb.string += 'm' , sb); + (options & 4) != 0 && (sb.string += 's' , sb); + (options & 32) != 0 && (sb.string += 'u' , sb); + (options & 64) != 0 && (sb.string += 'w' , sb); + (options & 16) != 0 && (sb.string += 'x' , sb); + (options & $intern_137) != 0 && (sb.string += ',' , sb); + return $intern(sb.string); +} + +function decomposeToSurrogates(ch_0){ + var chs; + chs = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); + ch_0 -= $intern_63; + chs[0] = (ch_0 >> 10) + $intern_64 & $intern_46; + chs[1] = (ch_0 & 1023) + 56320 & $intern_46; + return valueOf_9(chs, 0, chs.length); +} + +function getOptionValue(ch_0){ + var ret; + ret = 0; + switch (ch_0) { + case 105: + ret = 2; + break; + case 109: + ret = 8; + break; + case 115: + ret = 4; + break; + case 120: + ret = 16; + break; + case 117: + ret = 32; + break; + case 119: + ret = 64; + break; + case 70: + ret = 256; + break; + case 72: + ret = 128; + break; + case 88: + ret = 512; + break; + case 44: + ret = $intern_137; + } + return ret; +} + +function parseOptions(){ + var i, options, v; + options = 0; + for (i = 0; i < 'X'.length; i++) { + v = getOptionValue((checkCriticalStringElementIndex(i, 'X'.length) , 'X'.charCodeAt(i))); + if (v == 0) + throw toJs(new RegEx$ParseException('Unknown Option: ' + 'X'.substr(i))); + options |= v; + } + return options; +} + +function quoteMeta(literal){ + var buffer, ch_0, i, len; + len = literal.length; + buffer = null; + for (i = 0; i < len; i++) { + ch_0 = (checkCriticalStringElementIndex(i, literal.length) , literal.charCodeAt(i)); + if ($indexOf_1('.*+?{[()|\\^$', fromCodePoint(ch_0)) >= 0) { + if (!buffer) { + buffer = new StringBuffer_0; + i > 0 && $append_3(buffer, literal.substr(0, i)); + } + buffer.string += '\\'; + $append(buffer, ch_0 & $intern_46); + } + else + !!buffer && $append(buffer, ch_0 & $intern_46); + } + return buffer?buffer.string:literal; +} + +function stripExtendedComment(regex){ + var buffer, ch_0, len, next, offset; + len = regex.length; + buffer = new StringBuffer_0; + offset = 0; + while (offset < len) { + ch_0 = $charAt(regex, offset++); + if (ch_0 == 9 || ch_0 == 10 || ch_0 == 12 || ch_0 == 13 || ch_0 == 32) + continue; + if (ch_0 == 35) { + while (offset < len) { + ch_0 = $charAt(regex, offset++); + if (ch_0 == 13 || ch_0 == 10) + break; + } + continue; + } + if (ch_0 == 92 && offset < len) { + if ((next = (checkCriticalStringElementIndex(offset, regex.length) , regex.charCodeAt(offset))) == 35 || next == 9 || next == 10 || next == 12 || next == 13 || next == 32) { + $append(buffer, next & $intern_46); + ++offset; + } + else { + buffer.string += '\\'; + $append(buffer, next & $intern_46); + ++offset; + } + } + else + $append(buffer, ch_0 & $intern_46); + } + return buffer.string; +} + +function $clinit_RegEx$Token(){ + $clinit_RegEx$Token = emptyMethod; + token_empty = new RegEx$Token(7); + token_linebeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 94)); + ++tokens_0; + new RegEx$Token$CharToken(8, 64); + token_lineend = (++tokens_0 , new RegEx$Token$CharToken(8, 36)); + token_stringbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 65)); + token_stringend = (++tokens_0 , new RegEx$Token$CharToken(8, 122)); + token_stringend2 = (++tokens_0 , new RegEx$Token$CharToken(8, 90)); + token_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 98)); + token_not_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 66)); + token_wordbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 60)); + token_wordend = (++tokens_0 , new RegEx$Token$CharToken(8, 62)); + token_dot = new RegEx$Token(11); + token_0to9 = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_0to9, 48, 57); + token_wordchars = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_wordchars, 48, 57); + $addRange(token_wordchars, 65, 90); + $addRange(token_wordchars, 95, 95); + $addRange(token_wordchars, 97, 122); + token_spaces = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(token_spaces, 9, 9); + $addRange(token_spaces, 10, 10); + $addRange(token_spaces, 12, 12); + $addRange(token_spaces, 13, 13); + $addRange(token_spaces, 32, 32); + token_not_0to9 = complementRanges(token_0to9); + token_not_wordchars = complementRanges(token_wordchars); + token_not_spaces = complementRanges(token_spaces); + categories = new HashMap; + categories2 = new HashMap; + categoryNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Cn', 'Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Me', 'Mc', 'Nd', 'Nl', 'No', 'Zs', 'Zl', 'Zp', 'Cc', 'Cf', null, 'Co', 'Cs', 'Pd', 'Ps', 'Pe', 'Pc', 'Po', 'Sm', 'Sc', 'Sk', 'So', 'Pi', 'Pf', 'L', 'M', 'N', 'Z', 'C', 'P', 'S']); + blockNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Basic Latin', 'Latin-1 Supplement', 'Latin Extended-A', 'Latin Extended-B', 'IPA Extensions', 'Spacing Modifier Letters', 'Combining Diacritical Marks', 'Greek', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul Jamo', 'Ethiopic', 'Cherokee', 'Unified Canadian Aboriginal Syllabics', 'Ogham', 'Runic', 'Khmer', 'Mongolian', 'Latin Extended Additional', 'Greek Extended', 'General Punctuation', 'Superscripts and Subscripts', 'Currency Symbols', 'Combining Marks for Symbols', 'Letterlike Symbols', 'Number Forms', 'Arrows', 'Mathematical Operators', 'Miscellaneous Technical', 'Control Pictures', 'Optical Character Recognition', 'Enclosed Alphanumerics', 'Box Drawing', 'Block Elements', 'Geometric Shapes', 'Miscellaneous Symbols', 'Dingbats', 'Braille Patterns', 'CJK Radicals Supplement', 'Kangxi Radicals', 'Ideographic Description Characters', 'CJK Symbols and Punctuation', 'Hiragana', 'Katakana', 'Bopomofo', 'Hangul Compatibility Jamo', 'Kanbun', 'Bopomofo Extended', 'Enclosed CJK Letters and Months', 'CJK Compatibility', 'CJK Unified Ideographs Extension A', 'CJK Unified Ideographs', 'Yi Syllables', 'Yi Radicals', 'Hangul Syllables', 'Private Use', 'CJK Compatibility Ideographs', 'Alphabetic Presentation Forms', 'Arabic Presentation Forms-A', 'Combining Half Marks', 'CJK Compatibility Forms', 'Small Form Variants', 'Arabic Presentation Forms-B', 'Specials', 'Halfwidth and Fullwidth Forms', 'Old Italic', 'Gothic', 'Deseret', 'Byzantine Musical Symbols', 'Musical Symbols', 'Mathematical Alphanumeric Symbols', 'CJK Unified Ideographs Extension B', 'CJK Compatibility Ideographs Supplement', 'Tags']); + nonBMPBlockRanges = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); +} + +function RegEx$Token(type_0){ + this.type_0 = type_0; +} + +function createChar(ch_0){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$CharToken(0, ch_0); +} + +function createClosure(tok){ + ++tokens_0; + return new RegEx$Token$ClosureToken(3, tok); +} + +function createConcat(tok1, tok2){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ConcatToken(tok1, tok2); +} + +function createLook(type_0, child){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ParenToken(type_0, child, 0); +} + +function createModifierGroup(child, add_0, mask){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ModifierToken(child, add_0, mask); +} + +function createParen(child, pnumber){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$ParenToken(6, child, pnumber); +} + +function createString_0(str){ + $clinit_RegEx$Token(); + ++tokens_0; + return new RegEx$Token$StringToken(10, str, 0); +} + +function getCombiningCharacterSequence(){ + $clinit_RegEx$Token(); + var foo; + if (token_ccs) + return token_ccs; + foo = createClosure(getRange_0('M', true)); + foo = createConcat(getRange_0('M', false), foo); + token_ccs = foo; + return token_ccs; +} + +function getGraphemePattern(){ + $clinit_RegEx$Token(); + var base_char, combiner_wo_virama, foo, i, left, virama; + if (token_grapheme) + return token_grapheme; + base_char = (++tokens_0 , new RegEx$RangeToken(4)); + $mergeRanges(base_char, getRange_0('ASSIGNED', true)); + $subtractRanges(base_char, getRange_0('M', true)); + $subtractRanges(base_char, getRange_0('C', true)); + virama = (++tokens_0 , new RegEx$RangeToken(4)); + for (i = 0; i < 11; i++) { + $addRange(virama, i, i); + } + combiner_wo_virama = (++tokens_0 , new RegEx$RangeToken(4)); + $mergeRanges(combiner_wo_virama, getRange_0('M', true)); + $addRange(combiner_wo_virama, 4448, 4607); + $addRange(combiner_wo_virama, 65438, 65439); + left = (++tokens_0 , new RegEx$Token$UnionToken(2)); + $addChild_0(left, base_char); + $addChild_0(left, token_empty); + foo = (++tokens_0 , new RegEx$Token$UnionToken(2)); + foo.addChild(createConcat(virama, getRange_0('L', true))); + foo.addChild(combiner_wo_virama); + foo = (++tokens_0 , new RegEx$Token$ClosureToken(3, foo)); + foo = (++tokens_0 , new RegEx$Token$ConcatToken(left, foo)); + token_grapheme = foo; + return token_grapheme; +} + +function getRange_0(name_0, positive){ + $clinit_RegEx$Token(); + var all, buffer, ci, i, i0, location_0, n, oldLength, r1, ranges, rend, rstart, tok; + if ($size_2(categories) == 0) { + ranges = initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit, $intern_16, 117, categoryNames.length, 0, 1); + for (i0 = 0; i0 < ranges.length; i0++) { + ranges[i0] = (++tokens_0 , new RegEx$RangeToken(4)); + } + buffer = new StringBuffer_0; + for (i = 0; i < blockNames.length; i++) { + r1 = (++tokens_0 , new RegEx$RangeToken(4)); + if (i < 84) { + location_0 = i * 2; + rstart = (checkCriticalStringElementIndex(location_0, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0)); + rend = (checkCriticalStringElementIndex(location_0 + 1, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0 + 1)); + $addRange(r1, rstart, rend); + } + else { + location_0 = (i - 84) * 2; + $addRange(r1, nonBMPBlockRanges[location_0], nonBMPBlockRanges[location_0 + 1]); + } + n = blockNames[i]; + $equals_5(n, 'Specials') && $addRange(r1, 65520, 65533); + if ($equals_5(n, 'Private Use')) { + $addRange(r1, 983040, 1048573); + $addRange(r1, 1048576, 1114109); + } + $putStringValue(categories, n, r1); + $putStringValue(categories2, n, complementRanges(r1)); + oldLength = buffer.string.length; + 0 < oldLength?(buffer.string = buffer.string.substr(0, 0)):0 > oldLength && (buffer.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); + buffer.string += 'Is'; + if ($indexOf_1(n, fromCodePoint(32)) >= 0) { + for (ci = 0; ci < n.length; ci++) { + checkCriticalStringElementIndex(ci, n.length); + n.charCodeAt(ci) != 32 && $append(buffer, (checkCriticalStringElementIndex(ci, n.length) , n.charCodeAt(ci))); + } + } + else { + buffer.string += '' + n; + } + setAlias(buffer.string, n, true); + } + setAlias('ASSIGNED', 'Cn', false); + setAlias('UNASSIGNED', 'Cn', true); + all = (++tokens_0 , new RegEx$RangeToken(4)); + $addRange(all, 0, $intern_165); + $putStringValue(categories, 'ALL', all); + $putStringValue(categories2, 'ALL', complementRanges(all)); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'ASSIGNED', 'ASSIGNED'); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'UNASSIGNED', 'UNASSIGNED'); + !nonxs && (nonxs = new HashMap); + $putStringValue(nonxs, 'ALL', 'ALL'); + } + tok = positive?castTo($getStringValue(categories, name_0), 136):castTo($getStringValue(categories2, name_0), 136); + return tok; +} + +function getRange_1(name_0, positive, xs){ + $clinit_RegEx$Token(); + var range; + range = getRange_0(name_0, positive); + xs && !!range && isRegisterNonXS(name_0) && (range = null); + return range; +} + +function isRegisterNonXS(name_0){ + if (!nonxs) + return false; + return $hasStringValue(nonxs, name_0); +} + +function setAlias(newName, name_0, positive){ + var t1, t2; + t1 = castTo($getStringValue(categories, name_0), 117); + t2 = castTo($getStringValue(categories2, name_0), 117); + if (positive) { + $putStringValue(categories, newName, t1); + $putStringValue(categories2, newName, t2); + } + else { + $putStringValue(categories2, newName, t1); + $putStringValue(categories, newName, t2); + } +} + +defineClass(117, 1, $intern_166, RegEx$Token); +_.addChild = function addChild(tok){ + throw toJs(new RuntimeException_0('Not supported.')); +} +; +_.getChar = function getChar(){ + return -1; +} +; +_.getChild = function getChild(index_0){ + return null; +} +; +_.getString = function getString(){ + return null; +} +; +_.setMax = function setMax(max_0){ +} +; +_.setMin = function setMin(min_0){ +} +; +_.size_2 = function size_81(){ + return 0; +} +; +_.toString_0 = function toString_161(){ + return this.toString_1(0); +} +; +_.toString_1 = function toString_162(options){ + return this.type_0 == 11?'.':''; +} +; +_.type_0 = 0; +var blockNames, categories, categories2, categoryNames, nonBMPBlockRanges, nonxs = null, token_0to9, token_ccs = null, token_dot, token_empty, token_grapheme = null, token_linebeginning, token_lineend, token_not_0to9, token_not_spaces, token_not_wordchars, token_not_wordedge, token_spaces, token_stringbeginning, token_stringend, token_stringend2, token_wordbeginning, token_wordchars, token_wordedge, token_wordend, tokens_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token', 117); +function $addRange(this$static, start_0, end){ + var pos, r1, r2, temp; + if (start_0 <= end) { + r1 = start_0; + r2 = end; + } + else { + r1 = end; + r2 = start_0; + } + pos = 0; + if (this$static.ranges == null) { + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, 2, 15, 1); + this$static.ranges[0] = r1; + this$static.ranges[1] = r2; + this$static.sorted = true; + } + else { + pos = this$static.ranges.length; + if (this$static.ranges[pos - 1] + 1 == r1) { + this$static.ranges[pos - 1] = r2; + return; + } + temp = initUnidimensionalArray(I_classLit, $intern_48, 25, pos + 2, 15, 1); + arraycopy(this$static.ranges, 0, temp, 0, pos); + this$static.ranges = temp; + this$static.ranges[pos - 1] >= r1 && (this$static.sorted = false , this$static.compacted = false); + this$static.ranges[pos++] = r1; + this$static.ranges[pos] = r2; + this$static.sorted || $sortRanges(this$static); + } +} + +function $compactRanges(this$static){ + var base, baseend, result, target; + if (this$static.ranges == null || this$static.ranges.length <= 2) + return; + if (this$static.compacted) + return; + base = 0; + target = 0; + while (target < this$static.ranges.length) { + if (base != target) { + this$static.ranges[base] = this$static.ranges[target++]; + this$static.ranges[base + 1] = this$static.ranges[target++]; + } + else + target += 2; + baseend = this$static.ranges[base + 1]; + while (target < this$static.ranges.length) { + if (baseend + 1 < this$static.ranges[target]) + break; + if (baseend + 1 == this$static.ranges[target]) { + this$static.ranges[base + 1] = this$static.ranges[target + 1]; + baseend = this$static.ranges[base + 1]; + target += 2; + } + else if (baseend >= this$static.ranges[target + 1]) { + target += 2; + } + else if (baseend < this$static.ranges[target + 1]) { + this$static.ranges[base + 1] = this$static.ranges[target + 1]; + baseend = this$static.ranges[base + 1]; + target += 2; + } + else { + throw toJs(new RuntimeException_0('Token#compactRanges(): Internel Error: [' + this$static.ranges[base] + ',' + this$static.ranges[base + 1] + '] [' + this$static.ranges[target] + ',' + this$static.ranges[target + 1] + ']')); + } + } + base += 2; + } + if (base != this$static.ranges.length) { + result = initUnidimensionalArray(I_classLit, $intern_48, 25, base, 15, 1); + arraycopy(this$static.ranges, 0, result, 0, base); + this$static.ranges = result; + } + this$static.compacted = true; +} + +function $intersectRanges(this$static, token){ + var result, src1, src1begin, src1end, src2, src2begin, src2end, tok, wp; + tok = token; + if (tok.ranges == null || this$static.ranges == null) + return; + $sortRanges(this$static); + $compactRanges(this$static); + $sortRanges(tok); + $compactRanges(tok); + result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); + wp = 0; + src1 = 0; + src2 = 0; + while (src1 < this$static.ranges.length && src2 < tok.ranges.length) { + src1begin = this$static.ranges[src1]; + src1end = this$static.ranges[src1 + 1]; + src2begin = tok.ranges[src2]; + src2end = tok.ranges[src2 + 1]; + if (src1end < src2begin) { + src1 += 2; + } + else if (src1end >= src2begin && src1begin <= src2end) { + if (src2begin <= src1begin && src1end <= src2end) { + result[wp++] = src1begin; + result[wp++] = src1end; + src1 += 2; + } + else if (src2begin <= src1begin) { + result[wp++] = src1begin; + result[wp++] = src2end; + this$static.ranges[src1] = src2end + 1; + src2 += 2; + } + else if (src1end <= src2end) { + result[wp++] = src2begin; + result[wp++] = src1end; + src1 += 2; + } + else { + result[wp++] = src2begin; + result[wp++] = src2end; + this$static.ranges[src1] = src2end + 1; + } + } + else if (src2end < src1begin) { + src2 += 2; + } + else { + throw toJs(new RuntimeException_0('Token#intersectRanges(): Internal Error: [' + this$static.ranges[src1] + ',' + this$static.ranges[src1 + 1] + '] & [' + tok.ranges[src2] + ',' + tok.ranges[src2 + 1] + ']')); + } + } + while (src1 < this$static.ranges.length) { + result[wp++] = this$static.ranges[src1++]; + result[wp++] = this$static.ranges[src1++]; + } + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); + arraycopy(result, 0, this$static.ranges, 0, wp); +} + +function $mergeRanges(this$static, token){ + var i, j, k, result, tok; + tok = castTo(token, 136); + $sortRanges(this$static); + $sortRanges(tok); + if (tok.ranges == null) + return; + this$static.sorted = true; + if (this$static.ranges == null) { + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, tok.ranges.length, 15, 1); + arraycopy(tok.ranges, 0, this$static.ranges, 0, tok.ranges.length); + return; + } + result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); + for (i = 0 , j = 0 , k = 0; i < this$static.ranges.length || j < tok.ranges.length;) { + if (i >= this$static.ranges.length) { + result[k++] = tok.ranges[j++]; + result[k++] = tok.ranges[j++]; + } + else if (j >= tok.ranges.length) { + result[k++] = this$static.ranges[i++]; + result[k++] = this$static.ranges[i++]; + } + else if (tok.ranges[j] < this$static.ranges[i] || tok.ranges[j] === this$static.ranges[i] && tok.ranges[j + 1] < this$static.ranges[i + 1]) { + result[k++] = tok.ranges[j++]; + result[k++] = tok.ranges[j++]; + } + else { + result[k++] = this$static.ranges[i++]; + result[k++] = this$static.ranges[i++]; + } + } + this$static.ranges = result; +} + +function $sortRanges(this$static){ + var i, j, tmp; + if (this$static.sorted) + return; + if (this$static.ranges == null) + return; + for (i = this$static.ranges.length - 4; i >= 0; i -= 2) { + for (j = 0; j <= i; j += 2) { + if (this$static.ranges[j] > this$static.ranges[j + 2] || this$static.ranges[j] === this$static.ranges[j + 2] && this$static.ranges[j + 1] > this$static.ranges[j + 3]) { + tmp = this$static.ranges[j + 2]; + this$static.ranges[j + 2] = this$static.ranges[j]; + this$static.ranges[j] = tmp; + tmp = this$static.ranges[j + 3]; + this$static.ranges[j + 3] = this$static.ranges[j + 1]; + this$static.ranges[j + 1] = tmp; + } + } + } + this$static.sorted = true; +} + +function $subtractRanges(this$static, token){ + var result, src_0, srcbegin, srcend, sub_0, subbegin, subend, tok, wp; + if (token.type_0 == 5) { + $intersectRanges(this$static, token); + return; + } + tok = token; + if (tok.ranges == null || this$static.ranges == null) + return; + $sortRanges(this$static); + $compactRanges(this$static); + $sortRanges(tok); + $compactRanges(tok); + result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); + wp = 0; + src_0 = 0; + sub_0 = 0; + while (src_0 < this$static.ranges.length && sub_0 < tok.ranges.length) { + srcbegin = this$static.ranges[src_0]; + srcend = this$static.ranges[src_0 + 1]; + subbegin = tok.ranges[sub_0]; + subend = tok.ranges[sub_0 + 1]; + if (srcend < subbegin) { + result[wp++] = this$static.ranges[src_0++]; + result[wp++] = this$static.ranges[src_0++]; + } + else if (srcend >= subbegin && srcbegin <= subend) { + if (subbegin <= srcbegin && srcend <= subend) { + src_0 += 2; + } + else if (subbegin <= srcbegin) { + this$static.ranges[src_0] = subend + 1; + sub_0 += 2; + } + else if (srcend <= subend) { + result[wp++] = srcbegin; + result[wp++] = subbegin - 1; + src_0 += 2; + } + else { + result[wp++] = srcbegin; + result[wp++] = subbegin - 1; + this$static.ranges[src_0] = subend + 1; + sub_0 += 2; + } + } + else if (subend < srcbegin) { + sub_0 += 2; + } + else { + throw toJs(new RuntimeException_0('Token#subtractRanges(): Internal Error: [' + this$static.ranges[src_0] + ',' + this$static.ranges[src_0 + 1] + '] - [' + tok.ranges[sub_0] + ',' + tok.ranges[sub_0 + 1] + ']')); + } + } + while (src_0 < this$static.ranges.length) { + result[wp++] = this$static.ranges[src_0++]; + result[wp++] = this$static.ranges[src_0++]; + } + this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); + arraycopy(result, 0, this$static.ranges, 0, wp); +} + +function RegEx$RangeToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.sorted = false; + this.compacted = false; +} + +function complementRanges(token){ + $clinit_RegEx$Token(); + var i, last, len, ret, tok, wp; + if (token.type_0 != 4 && token.type_0 != 5) + throw toJs(new IllegalArgumentException_0('Token#complementRanges(): must be RANGE: ' + token.type_0)); + tok = token; + $sortRanges(tok); + $compactRanges(tok); + len = tok.ranges.length + 2; + tok.ranges[0] == 0 && (len -= 2); + last = tok.ranges[tok.ranges.length - 1]; + last == $intern_165 && (len -= 2); + ret = (++tokens_0 , new RegEx$RangeToken(4)); + ret.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, len, 15, 1); + wp = 0; + if (tok.ranges[0] > 0) { + ret.ranges[wp++] = 0; + ret.ranges[wp++] = tok.ranges[0] - 1; + } + for (i = 1; i < tok.ranges.length - 2; i += 2) { + ret.ranges[wp++] = tok.ranges[i] + 1; + ret.ranges[wp++] = tok.ranges[i + 1] - 1; + } + if (last != $intern_165) { + ret.ranges[wp++] = last + 1; + ret.ranges[wp] = $intern_165; + } + ret.compacted = true; + return ret; +} + +function escapeCharInCharClass(ch_0){ + var number, pre, ret; + switch (ch_0) { + case 91: + case 93: + case 45: + case 94: + case 44: + case 92: + ret = '\\' + String.fromCharCode(ch_0 & $intern_46); + break; + case 12: + ret = '\\f'; + break; + case 10: + ret = '\\n'; + break; + case 13: + ret = '\\r'; + break; + case 9: + ret = '\\t'; + break; + case 27: + ret = '\\e'; + break; + default:if (ch_0 < 32) { + pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); + ret = '\\x' + $substring_1(pre, pre.length - 2, pre.length); + } + else if (ch_0 >= $intern_63) { + pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); + ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); + } + else + ret = '' + String.fromCharCode(ch_0 & $intern_46); + } + return ret; +} + +defineClass(136, 117, {3:1, 136:1, 117:1}, RegEx$RangeToken); +_.toString_1 = function toString_163(options){ + var i, ret, sb; + if (this.type_0 == 4) { + if (this == token_dot) + ret = '.'; + else if (this == token_0to9) + ret = '\\d'; + else if (this == token_wordchars) + ret = '\\w'; + else if (this == token_spaces) + ret = '\\s'; + else { + sb = new StringBuffer; + sb.string += '['; + for (i = 0; i < this.ranges.length; i += 2) { + (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); + if (this.ranges[i] === this.ranges[i + 1]) { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + } + else { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + sb.string += '-'; + $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); + } + } + sb.string += ']'; + ret = sb.string; + } + } + else { + if (this == token_not_0to9) + ret = '\\D'; + else if (this == token_not_wordchars) + ret = '\\W'; + else if (this == token_not_spaces) + ret = '\\S'; + else { + sb = new StringBuffer; + sb.string += '[^'; + for (i = 0; i < this.ranges.length; i += 2) { + (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); + if (this.ranges[i] === this.ranges[i + 1]) { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + } + else { + $append_3(sb, escapeCharInCharClass(this.ranges[i])); + sb.string += '-'; + $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); + } + } + sb.string += ']'; + ret = sb.string; + } + } + return ret; +} +; +_.compacted = false; +_.sorted = false; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RangeToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RangeToken', 136); +function RegEx$RegexParser$ReferencePosition(n){ + this.refNumber = n; +} + +defineClass(584, 1, {584:1}, RegEx$RegexParser$ReferencePosition); +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser$ReferencePosition_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser/ReferencePosition', 584); +function $setPattern(this$static, newPattern, options){ + var rp; + this$static.regex = newPattern; + this$static.options_0 = options; + rp = (this$static.options_0 & 512) == 512?new RegEx$ParserForXMLSchema:new RegEx$RegexParser; + this$static.tokentree = $parse_3(rp, this$static.regex, this$static.options_0); +} + +function RegEx$RegularExpression(regex){ + $setPattern(this, regex, parseOptions()); +} + +defineClass(583, 1, {3:1, 583:1}, RegEx$RegularExpression); +_.equals_0 = function equals_198(obj){ + var r; + if (obj == null) + return false; + if (!instanceOf(obj, 583)) + return false; + r = castTo(obj, 583); + return $equals_5(this.regex, r.regex) && this.options_0 == r.options_0; +} +; +_.hashCode_1 = function hashCode_84(){ + return getHashCode_1(this.regex + '/' + createOptionString(this.options_0)); +} +; +_.toString_0 = function toString_164(){ + return this.tokentree.toString_1(this.options_0); +} +; +_.options_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegularExpression_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegularExpression', 583); +function RegEx$Token$CharToken(type_0, ch_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.chardata = ch_0; +} + +defineClass(223, 117, $intern_166, RegEx$Token$CharToken); +_.getChar = function getChar_0(){ + return this.chardata; +} +; +_.toString_1 = function toString_165(options){ + var number, pre, ret; + switch (this.type_0) { + case 0: + switch (this.chardata) { + case 124: + case 42: + case 43: + case 63: + case 40: + case 41: + case 46: + case 91: + case 123: + case 92: + ret = '\\' + charToString(this.chardata & $intern_46); + break; + case 12: + ret = '\\f'; + break; + case 10: + ret = '\\n'; + break; + case 13: + ret = '\\r'; + break; + case 9: + ret = '\\t'; + break; + case 27: + ret = '\\e'; + break; + default:if (this.chardata >= $intern_63) { + pre = (number = this.chardata >>> 0 , '0' + number.toString(16)); + ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); + } + else + ret = '' + charToString(this.chardata & $intern_46); + } + + break; + case 8: + this == token_linebeginning || this == token_lineend?(ret = '' + charToString(this.chardata & $intern_46)):(ret = '\\' + charToString(this.chardata & $intern_46)); + break; + default:ret = null; + } + return ret; +} +; +_.chardata = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$CharToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/CharToken', 223); +function RegEx$Token$ClosureToken(type_0, tok){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.child = tok; + this.min_0 = -1; + this.max_0 = -1; +} + +defineClass(309, 117, $intern_166, RegEx$Token$ClosureToken); +_.getChild = function getChild_0(index_0){ + return this.child; +} +; +_.setMax = function setMax_0(max_0){ + this.max_0 = max_0; +} +; +_.setMin = function setMin_0(min_0){ + this.min_0 = min_0; +} +; +_.size_2 = function size_82(){ + return 1; +} +; +_.toString_1 = function toString_166(options){ + var ret; + if (this.type_0 == 3) { + if (this.min_0 < 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '*'; + } + else if (this.min_0 == this.max_0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + '}'; + } + else if (this.min_0 >= 0 && this.max_0 >= 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}'; + } + else if (this.min_0 >= 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',}'; + } + else + throw toJs(new RuntimeException_0('Token#toString(): CLOSURE ' + this.min_0 + ', ' + this.max_0)); + } + else { + if (this.min_0 < 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '*?'; + } + else if (this.min_0 == this.max_0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + '}?'; + } + else if (this.min_0 >= 0 && this.max_0 >= 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}?'; + } + else if (this.min_0 >= 0 && this.max_0 < 0) { + ret = this.child.toString_1(options) + '{' + this.min_0 + ',}?'; + } + else + throw toJs(new RuntimeException_0('Token#toString(): NONGREEDYCLOSURE ' + this.min_0 + ', ' + this.max_0)); + } + return ret; +} +; +_.max_0 = 0; +_.min_0 = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ClosureToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ClosureToken', 309); +function RegEx$Token$ConcatToken(t1, t2){ + RegEx$Token.call(this, 1); + this.child = t1; + this.child2 = t2; +} + +defineClass(821, 117, $intern_166, RegEx$Token$ConcatToken); +_.getChild = function getChild_1(index_0){ + return index_0 == 0?this.child:this.child2; +} +; +_.size_2 = function size_83(){ + return 2; +} +; +_.toString_1 = function toString_167(options){ + var ret; + this.child2.type_0 == 3 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+'):this.child2.type_0 == 9 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+?'):(ret = this.child.toString_1(options) + ('' + this.child2.toString_1(options))); + return ret; +} +; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConcatToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConcatToken', 821); +function RegEx$Token$ConditionToken(refno, cond, yespat, nopat){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, 26); + this.refNumber = refno; + this.condition = cond; + this.yes = yespat; + this.no = nopat; +} + +defineClass(1822, 117, $intern_166, RegEx$Token$ConditionToken); +_.getChild = function getChild_2(index_0){ + if (index_0 == 0) + return this.yes; + if (index_0 == 1) + return this.no; + throw toJs(new RuntimeException_0('Internal Error: ' + index_0)); +} +; +_.size_2 = function size_84(){ + return !this.no?1:2; +} +; +_.toString_1 = function toString_168(options){ + var ret; + this.refNumber > 0?(ret = '(?(' + this.refNumber + ')'):this.condition.type_0 == 8?(ret = '(?(' + this.condition + ')'):(ret = '(?' + this.condition); + !this.no?(ret += this.yes + ')'):(ret += this.yes + '|' + this.no + ')'); + return ret; +} +; +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConditionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConditionToken', 1822); +function RegEx$Token$ModifierToken(tok, add_0, mask){ + RegEx$Token.call(this, 25); + this.child = tok; + this.add_0 = add_0; + this.mask = mask; +} + +defineClass(1823, 117, $intern_166, RegEx$Token$ModifierToken); +_.getChild = function getChild_3(index_0){ + return this.child; +} +; +_.size_2 = function size_85(){ + return 1; +} +; +_.toString_1 = function toString_169(options){ + return '(?' + (this.add_0 == 0?'':createOptionString(this.add_0)) + (this.mask == 0?'':createOptionString(this.mask)) + ':' + this.child.toString_1(options) + ')'; +} +; +_.add_0 = 0; +_.mask = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ModifierToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ModifierToken', 1823); +function RegEx$Token$ParenToken(type_0, tok, paren){ + RegEx$Token.call(this, type_0); + this.child = tok; + this.parennumber = paren; +} + +defineClass(822, 117, $intern_166, RegEx$Token$ParenToken); +_.getChild = function getChild_4(index_0){ + return this.child; +} +; +_.size_2 = function size_86(){ + return 1; +} +; +_.toString_1 = function toString_170(options){ + var ret; + ret = null; + switch (this.type_0) { + case 6: + this.parennumber == 0?(ret = '(?:' + this.child.toString_1(options) + ')'):(ret = '(' + this.child.toString_1(options) + ')'); + break; + case 20: + ret = '(?=' + this.child.toString_1(options) + ')'; + break; + case 21: + ret = '(?!' + this.child.toString_1(options) + ')'; + break; + case 22: + ret = '(?<=' + this.child.toString_1(options) + ')'; + break; + case 23: + ret = '(?' + this.child.toString_1(options) + ')'; + } + return ret; +} +; +_.parennumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ParenToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ParenToken', 822); +function RegEx$Token$StringToken(type_0, str, n){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.string = str; + this.refNumber = n; +} + +defineClass(521, 117, {3:1, 117:1, 521:1}, RegEx$Token$StringToken); +_.getString = function getString_0(){ + return this.string; +} +; +_.toString_1 = function toString_171(options){ + return this.type_0 == 12?'\\' + this.refNumber:quoteMeta(this.string); +} +; +_.refNumber = 0; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$StringToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/StringToken', 521); +function $addChild_0(this$static, tok){ + var buffer, ch_0, i, nextMaxLength, previous, size_0; + if (!tok) + return; + !this$static.children && (this$static.children = new Vector); + if (this$static.type_0 == 2) { + $addElement(this$static.children, tok); + return; + } + if (tok.type_0 == 1) { + for (i = 0; i < tok.size_2(); i++) + $addChild_0(this$static, tok.getChild(i)); + return; + } + size_0 = this$static.children.arrayList.array.length; + if (size_0 == 0) { + $addElement(this$static.children, tok); + return; + } + previous = castTo($elementAt(this$static.children, size_0 - 1), 117); + if (!((previous.type_0 == 0 || previous.type_0 == 10) && (tok.type_0 == 0 || tok.type_0 == 10))) { + $addElement(this$static.children, tok); + return; + } + nextMaxLength = tok.type_0 == 0?2:tok.getString().length; + if (previous.type_0 == 0) { + buffer = new StringBuffer_0; + ch_0 = previous.getChar(); + ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); + previous = (++tokens_0 , new RegEx$Token$StringToken(10, null, 0)); + $setElementAt(this$static.children, previous, size_0 - 1); + } + else { + buffer = (previous.getString().length + nextMaxLength , new StringBuffer_0); + $append_3(buffer, previous.getString()); + } + if (tok.type_0 == 0) { + ch_0 = tok.getChar(); + ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); + } + else { + $append_3(buffer, tok.getString()); + } + castTo(previous, 521).string = buffer.string; +} + +function RegEx$Token$UnionToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); +} + +defineClass(465, 117, $intern_166, RegEx$Token$UnionToken); +_.addChild = function addChild_0(tok){ + $addChild_0(this, tok); +} +; +_.getChild = function getChild_5(index_0){ + return castTo($elementAt(this.children, index_0), 117); +} +; +_.size_2 = function size_87(){ + return !this.children?0:this.children.arrayList.array.length; +} +; +_.toString_1 = function toString_172(options){ + var ch_0, ch2, i, ret, sb; + if (this.type_0 == 1) { + if (this.children.arrayList.array.length == 2) { + ch_0 = castTo($elementAt(this.children, 0), 117); + ch2 = castTo($elementAt(this.children, 1), 117); + ch2.type_0 == 3 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+'):ch2.type_0 == 9 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+?'):(ret = ch_0.toString_1(options) + ('' + ch2.toString_1(options))); + } + else { + sb = new StringBuffer; + for (i = 0; i < this.children.arrayList.array.length; i++) { + $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); + } + ret = sb.string; + } + return ret; + } + if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 1), 117).type_0 == 7) { + ret = castTo($elementAt(this.children, 0), 117).toString_1(options) + '?'; + } + else if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 0), 117).type_0 == 7) { + ret = castTo($elementAt(this.children, 1), 117).toString_1(options) + '??'; + } + else { + sb = new StringBuffer; + $append_3(sb, castTo($elementAt(this.children, 0), 117).toString_1(options)); + for (i = 1; i < this.children.arrayList.array.length; i++) { + sb.string += '|'; + $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); + } + ret = sb.string; + } + return ret; +} +; +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$UnionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/UnionToken', 465); +function normalize(value_0, collapse){ + var buffer, c, i, length_0, offset, skipSpace, valueArray; + if (value_0 == null) { + return null; + } + length_0 = value_0.length; + if (length_0 == 0) { + return ''; + } + valueArray = initUnidimensionalArray(C_classLit, $intern_44, 25, length_0, 15, 1); + checkCriticalStringBounds(0, length_0, value_0.length); + checkCriticalStringBounds(0, length_0, valueArray.length); + $getChars0(value_0, 0, length_0, valueArray, 0); + buffer = null; + skipSpace = collapse; + for (i = 0 , offset = 0; i < length_0; i++) { + c = valueArray[i]; + $clinit_DataValue$XMLChar(); + if (c <= 32 && (CHARS[c] & 2) != 0) { + if (skipSpace) { + !buffer && (buffer = new StringBuffer_1(value_0)); + $deleteCharAt(buffer, i - offset++); + } + else { + skipSpace = collapse; + if (c != 32) { + !buffer && (buffer = new StringBuffer_1(value_0)); + $replace0(buffer, i - offset, i - offset + 1, String.fromCharCode(32)); + } + } + } + else { + skipSpace = false; + } + } + if (skipSpace) { + if (!buffer) { + return value_0.substr(0, length_0 - 1); + } + else { + length_0 = buffer.string.length; + return length_0 > 0?$substring_1(buffer.string, 0, length_0 - 1):''; + } + } + else { + return !buffer?value_0:buffer.string; + } +} + +function XMLTypeUtil$PatternMatcherImpl(pattern){ + this.regularExpression = new RegEx$RegularExpression(pattern); +} + +defineClass(518, 1, {592:1}, XMLTypeUtil$PatternMatcherImpl); +_.toString_0 = function toString_173(){ + return this.regularExpression.regex; +} +; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeUtil$PatternMatcherImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeUtil/PatternMatcherImpl', 518); +function $clinit_XMLTypeValidator(){ + $clinit_XMLTypeValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_12 = new XMLTypeValidator; + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[\\i-[:]][\\c-[:]]*')]), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + new BigInteger_4('-1'); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\c+')])]); + new BigInteger_4('0'); + new BigInteger_4('0'); + new BigInteger_4('1'); + new BigInteger_4('0'); + new BigInteger_4('18446744073709551615'); +} + +function XMLTypeValidator(){ +} + +defineClass(1622, 1381, {}, XMLTypeValidator); +var INSTANCE_12; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeValidator_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeValidator', 1622); +function $clinit_ExclusiveRange(){ + $clinit_ExclusiveRange = emptyMethod; + EMPTY_LIST_ITERATOR = new ExclusiveRange$1; +} + +function ExclusiveRange(end){ + $clinit_ExclusiveRange(); + this.first = 0; + this.last = end - 1; + this.step = 1; +} + +defineClass(264, 1, $intern_23, ExclusiveRange); +_.forEach_0 = function forEach_41(action){ + $forEach_0(this, action); +} +; +_.iterator_0 = function iterator_91(){ + return (this.last - this.first) * this.step < 0?EMPTY_LIST_ITERATOR:new ExclusiveRange$RangeIterator(this); +} +; +_.first = 0; +_.last = 0; +_.step = 0; +var EMPTY_LIST_ITERATOR; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange', 264); +function $add_35(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_18(){ + throw toJs(new NoSuchElementException); +} + +function $previous_1(){ + throw toJs(new NoSuchElementException); +} + +function $set_20(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$1(){ +} + +defineClass(1068, 1, $intern_14, ExclusiveRange$1); +_.add_1 = function add_73(e){ + castTo(e, 19); + $add_35(); +} +; +_.forEachRemaining = function forEachRemaining_61(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_51(){ + return $next_18(); +} +; +_.previous_0 = function previous_12(){ + return $previous_1(); +} +; +_.set_1 = function set_45(e){ + castTo(e, 19); + $set_20(); +} +; +_.hasNext_0 = function hasNext_52(){ + return false; +} +; +_.hasPrevious = function hasPrevious_12(){ + return false; +} +; +_.nextIndex_0 = function nextIndex_12(){ + return -1; +} +; +_.previousIndex = function previousIndex_11(){ + return -1; +} +; +_.remove = function remove_132(){ + throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); +} +; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$1_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/1', 1068); +function $add_36(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_19(this$static){ + var value_0; + if (!(this$static.this$01.step < 0?this$static.next_0 >= this$static.this$01.last:this$static.next_0 <= this$static.this$01.last)) { + throw toJs(new NoSuchElementException); + } + value_0 = this$static.next_0; + this$static.next_0 += this$static.this$01.step; + ++this$static.nextIndex; + return valueOf_4(value_0); +} + +function $previous_2(this$static){ + if (this$static.nextIndex <= 0) + throw toJs(new NoSuchElementException); + --this$static.nextIndex; + this$static.next_0 -= this$static.this$01.step; + return valueOf_4(this$static.next_0); +} + +function $set_21(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$RangeIterator(this$0){ + this.this$01 = this$0; + this.next_0 = this.this$01.first; +} + +defineClass(254, 1, $intern_14, ExclusiveRange$RangeIterator); +_.add_1 = function add_74(e){ + castTo(e, 19); + $add_36(); +} +; +_.forEachRemaining = function forEachRemaining_62(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_52(){ + return $next_19(this); +} +; +_.previous_0 = function previous_13(){ + return $previous_2(this); +} +; +_.set_1 = function set_46(e){ + castTo(e, 19); + $set_21(); +} +; +_.hasNext_0 = function hasNext_53(){ + return this.this$01.step < 0?this.next_0 >= this.this$01.last:this.next_0 <= this.this$01.last; +} +; +_.hasPrevious = function hasPrevious_13(){ + return this.nextIndex > 0; +} +; +_.nextIndex_0 = function nextIndex_13(){ + return this.nextIndex; +} +; +_.previousIndex = function previousIndex_12(){ + return this.nextIndex - 1; +} +; +_.remove = function remove_133(){ + throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); +} +; +_.next_0 = 0; +_.nextIndex = 0; +var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$RangeIterator_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/RangeIterator', 254); +function forEach_42(iterable, procedure){ + forEach_44(new AbstractEList$EIterator(iterable), procedure); +} + +function isEmpty_35(iterable){ + if (iterable) + return iterable.isEmpty(); + return !iterable.iterator_0().hasNext_0(); +} + +function isNullOrEmpty(iterable){ + return !iterable || isEmpty_35(iterable); +} + +function forEach_43(iterator, procedure){ + while (iterator.data_0 == null && !iterator.includeRoot?$hasAnyChildren(iterator):iterator.data_0 == null || iterator.size_0 != 0 && castTo(iterator.data_0[iterator.size_0 - 1], 47).hasNext_0()) { + $apply_28(procedure, $next_14(iterator)); + } +} + +function forEach_44(iterator, procedure){ + var i; + i = 0; + while (iterator.cursor != iterator.this$01_2.size_1()) { + $apply_29(procedure, $doNext(iterator), valueOf_4(i)); + i != $intern_0 && ++i; + } +} + +var C_classLit = createForPrimitive('char', 'C'); +var I_classLit = createForPrimitive('int', 'I'); +var Z_classLit = createForPrimitive('boolean', 'Z'); +var J_classLit = createForPrimitive('long', 'J'); +var B_classLit = createForPrimitive('byte', 'B'); +var D_classLit = createForPrimitive('double', 'D'); +var F_classLit = createForPrimitive('float', 'F'); +var S_classLit = createForPrimitive('short', 'S'); +var Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit = createForInterface('org.eclipse.elk.core.labels', 'ILabelManager'); +var Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit = createForInterface('org.eclipse.emf.common.util', 'DiagnosticChain'); +var Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'ResourceSet'); +var Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit = createForClass('org.eclipse.emf.common.util', 'InvocationTargetException', null); +var $entry = ($clinit_Impl() , entry_2); +var gwtOnLoad = gwtOnLoad = gwtOnLoad_0; +addInitFunctions(init); +setGwtProperty('permProps', [[['locale', 'default'], ['user.agent', 'gecko1_8']], [['locale', 'default'], ['user.agent', 'ie10']], [['locale', 'default'], ['user.agent', 'ie8']], [['locale', 'default'], ['user.agent', 'ie9']], [['locale', 'default'], ['user.agent', 'safari']]]); + +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); diff --git a/gen/local/elkjs/lib/elk-worker.min.js b/gen/local/elkjs/lib/elk-worker.min.js new file mode 100644 index 00000000..10b98052 --- /dev/null +++ b/gen/local/elkjs/lib/elk-worker.min.js @@ -0,0 +1,6149 @@ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function Ylb(){} +function Ymb(){} +function xmb(){} +function Fmb(){} +function Qmb(){} +function gcb(){} +function ccb(){} +function jcb(){} +function jtb(){} +function otb(){} +function qtb(){} +function _fb(){} +function bpb(){} +function kpb(){} +function ppb(){} +function Gpb(){} +function drb(){} +function dzb(){} +function fzb(){} +function fxb(){} +function Vxb(){} +function Ovb(){} +function byb(){} +function zyb(){} +function Zyb(){} +function _yb(){} +function hzb(){} +function jzb(){} +function lzb(){} +function nzb(){} +function rzb(){} +function zzb(){} +function Czb(){} +function Ezb(){} +function Gzb(){} +function Izb(){} +function Mzb(){} +function bBb(){} +function NBb(){} +function PBb(){} +function RBb(){} +function iCb(){} +function OCb(){} +function SCb(){} +function GDb(){} +function JDb(){} +function fEb(){} +function xEb(){} +function CEb(){} +function GEb(){} +function yFb(){} +function KGb(){} +function tIb(){} +function vIb(){} +function xIb(){} +function zIb(){} +function OIb(){} +function SIb(){} +function TJb(){} +function VJb(){} +function XJb(){} +function XKb(){} +function fKb(){} +function VKb(){} +function VLb(){} +function jLb(){} +function nLb(){} +function GLb(){} +function KLb(){} +function MLb(){} +function OLb(){} +function RLb(){} +function YLb(){} +function bMb(){} +function gMb(){} +function lMb(){} +function pMb(){} +function wMb(){} +function zMb(){} +function CMb(){} +function FMb(){} +function LMb(){} +function zNb(){} +function PNb(){} +function kOb(){} +function pOb(){} +function tOb(){} +function yOb(){} +function FOb(){} +function GPb(){} +function aQb(){} +function cQb(){} +function eQb(){} +function gQb(){} +function iQb(){} +function CQb(){} +function MQb(){} +function OQb(){} +function ASb(){} +function fTb(){} +function kTb(){} +function STb(){} +function fUb(){} +function DUb(){} +function VUb(){} +function YUb(){} +function _Ub(){} +function _Wb(){} +function QWb(){} +function XWb(){} +function jVb(){} +function DVb(){} +function VVb(){} +function $Vb(){} +function dXb(){} +function hXb(){} +function lXb(){} +function gYb(){} +function HYb(){} +function SYb(){} +function VYb(){} +function dZb(){} +function P$b(){} +function T$b(){} +function h1b(){} +function m1b(){} +function q1b(){} +function u1b(){} +function y1b(){} +function C1b(){} +function e2b(){} +function g2b(){} +function m2b(){} +function q2b(){} +function u2b(){} +function S2b(){} +function U2b(){} +function W2b(){} +function _2b(){} +function e3b(){} +function h3b(){} +function p3b(){} +function t3b(){} +function w3b(){} +function y3b(){} +function A3b(){} +function M3b(){} +function Q3b(){} +function U3b(){} +function Y3b(){} +function l4b(){} +function q4b(){} +function s4b(){} +function u4b(){} +function w4b(){} +function y4b(){} +function L4b(){} +function N4b(){} +function P4b(){} +function R4b(){} +function T4b(){} +function X4b(){} +function I5b(){} +function Q5b(){} +function T5b(){} +function Z5b(){} +function l6b(){} +function o6b(){} +function t6b(){} +function z6b(){} +function L6b(){} +function M6b(){} +function P6b(){} +function X6b(){} +function $6b(){} +function a7b(){} +function c7b(){} +function g7b(){} +function j7b(){} +function m7b(){} +function r7b(){} +function x7b(){} +function D7b(){} +function D9b(){} +function b9b(){} +function h9b(){} +function j9b(){} +function l9b(){} +function w9b(){} +function F9b(){} +function hac(){} +function jac(){} +function pac(){} +function uac(){} +function Iac(){} +function Kac(){} +function Sac(){} +function obc(){} +function rbc(){} +function vbc(){} +function Fbc(){} +function Jbc(){} +function Xbc(){} +function ccc(){} +function fcc(){} +function lcc(){} +function occ(){} +function tcc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ecc(){} +function Gcc(){} +function Zcc(){} +function _cc(){} +function bdc(){} +function fdc(){} +function jdc(){} +function pdc(){} +function sdc(){} +function ydc(){} +function Adc(){} +function Cdc(){} +function Edc(){} +function Idc(){} +function Ndc(){} +function Qdc(){} +function Sdc(){} +function Udc(){} +function Wdc(){} +function Ydc(){} +function aec(){} +function hec(){} +function jec(){} +function lec(){} +function nec(){} +function uec(){} +function wec(){} +function yec(){} +function Aec(){} +function Fec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Rec(){} +function Uec(){} +function Zec(){} +function Zfc(){} +function lfc(){} +function tfc(){} +function xfc(){} +function zfc(){} +function Ffc(){} +function Jfc(){} +function Nfc(){} +function Pfc(){} +function Vfc(){} +function _fc(){} +function fgc(){} +function jgc(){} +function lgc(){} +function Bgc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function khc(){} +function mhc(){} +function ohc(){} +function qhc(){} +function yhc(){} +function Ahc(){} +function Ghc(){} +function Ihc(){} +function Khc(){} +function Mhc(){} +function Shc(){} +function Uhc(){} +function Whc(){} +function dic(){} +function dlc(){} +function blc(){} +function flc(){} +function hlc(){} +function jlc(){} +function Glc(){} +function Ilc(){} +function Klc(){} +function Mlc(){} +function Mjc(){} +function Qjc(){} +function Qlc(){} +function Ulc(){} +function Ylc(){} +function Lkc(){} +function Nkc(){} +function Pkc(){} +function Rkc(){} +function Xkc(){} +function _kc(){} +function gmc(){} +function kmc(){} +function zmc(){} +function Fmc(){} +function Wmc(){} +function $mc(){} +function anc(){} +function mnc(){} +function wnc(){} +function Hnc(){} +function Jnc(){} +function Lnc(){} +function Nnc(){} +function Pnc(){} +function Ync(){} +function eoc(){} +function Aoc(){} +function Coc(){} +function Eoc(){} +function Joc(){} +function Loc(){} +function Zoc(){} +function _oc(){} +function bpc(){} +function hpc(){} +function kpc(){} +function ppc(){} +function pFc(){} +function Ryc(){} +function QCc(){} +function PDc(){} +function xGc(){} +function HGc(){} +function JGc(){} +function NGc(){} +function GIc(){} +function iKc(){} +function mKc(){} +function wKc(){} +function yKc(){} +function AKc(){} +function EKc(){} +function KKc(){} +function OKc(){} +function QKc(){} +function SKc(){} +function UKc(){} +function YKc(){} +function aLc(){} +function fLc(){} +function hLc(){} +function nLc(){} +function pLc(){} +function tLc(){} +function vLc(){} +function zLc(){} +function BLc(){} +function DLc(){} +function FLc(){} +function sMc(){} +function JMc(){} +function hNc(){} +function RNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function fOc(){} +function hOc(){} +function hRc(){} +function jRc(){} +function KRc(){} +function NRc(){} +function NQc(){} +function LQc(){} +function _Qc(){} +function cPc(){} +function iPc(){} +function kPc(){} +function mPc(){} +function xPc(){} +function zPc(){} +function zSc(){} +function BSc(){} +function GSc(){} +function ISc(){} +function NSc(){} +function TSc(){} +function NTc(){} +function NVc(){} +function oVc(){} +function SVc(){} +function VVc(){} +function XVc(){} +function ZVc(){} +function bWc(){} +function bXc(){} +function CXc(){} +function FXc(){} +function IXc(){} +function MXc(){} +function UXc(){} +function bYc(){} +function fYc(){} +function oYc(){} +function qYc(){} +function uYc(){} +function pZc(){} +function G$c(){} +function h0c(){} +function N0c(){} +function k1c(){} +function I1c(){} +function Q1c(){} +function f2c(){} +function i2c(){} +function k2c(){} +function w2c(){} +function O2c(){} +function S2c(){} +function Z2c(){} +function v3c(){} +function x3c(){} +function R3c(){} +function U3c(){} +function e4c(){} +function w4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function _7c(){} +function b5c(){} +function d5c(){} +function f5c(){} +function h5c(){} +function H5c(){} +function Hfd(){} +function Zfd(){} +function Zed(){} +function ged(){} +function Jed(){} +function Ned(){} +function Red(){} +function Ved(){} +function bbd(){} +function mdd(){} +function _fd(){} +function fgd(){} +function kgd(){} +function Mgd(){} +function Ahd(){} +function Ald(){} +function Tld(){} +function xkd(){} +function rmd(){} +function knd(){} +function Jod(){} +function JCd(){} +function Bpd(){} +function BFd(){} +function oFd(){} +function bqd(){} +function bvd(){} +function jvd(){} +function yud(){} +function Hxd(){} +function EBd(){} +function aDd(){} +function MGd(){} +function vHd(){} +function RHd(){} +function wNd(){} +function zNd(){} +function CNd(){} +function KNd(){} +function XNd(){} +function $Nd(){} +function HPd(){} +function lUd(){} +function XUd(){} +function DWd(){} +function GWd(){} +function JWd(){} +function MWd(){} +function PWd(){} +function SWd(){} +function VWd(){} +function YWd(){} +function _Wd(){} +function xYd(){} +function BYd(){} +function mZd(){} +function EZd(){} +function GZd(){} +function JZd(){} +function MZd(){} +function PZd(){} +function SZd(){} +function VZd(){} +function YZd(){} +function _Zd(){} +function c$d(){} +function f$d(){} +function i$d(){} +function l$d(){} +function o$d(){} +function r$d(){} +function u$d(){} +function x$d(){} +function A$d(){} +function D$d(){} +function G$d(){} +function J$d(){} +function M$d(){} +function P$d(){} +function S$d(){} +function V$d(){} +function Y$d(){} +function _$d(){} +function c_d(){} +function f_d(){} +function i_d(){} +function l_d(){} +function o_d(){} +function r_d(){} +function u_d(){} +function x_d(){} +function A_d(){} +function D_d(){} +function G_d(){} +function J_d(){} +function M_d(){} +function P_d(){} +function S_d(){} +function V_d(){} +function Y_d(){} +function h5d(){} +function U6d(){} +function U9d(){} +function _8d(){} +function fae(){} +function hae(){} +function kae(){} +function nae(){} +function qae(){} +function tae(){} +function wae(){} +function zae(){} +function Cae(){} +function Fae(){} +function Iae(){} +function Lae(){} +function Oae(){} +function Rae(){} +function Uae(){} +function Xae(){} +function $ae(){} +function bbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function ude(){} +function Vge(){} +function dhe(){} +function s_b(a){} +function jSd(a){} +function ol(){wb()} +function oPb(){nPb()} +function EPb(){CPb()} +function gFb(){fFb()} +function TRb(){SRb()} +function ySb(){wSb()} +function PSb(){OSb()} +function dTb(){bTb()} +function i4b(){b4b()} +function D2b(){x2b()} +function J6b(){D6b()} +function u9b(){q9b()} +function $9b(){I9b()} +function Umc(){Imc()} +function abc(){Vac()} +function ZCc(){VCc()} +function kCc(){hCc()} +function rCc(){oCc()} +function Tcc(){Occ()} +function xkc(){gkc()} +function xDc(){rDc()} +function iDc(){cDc()} +function kwc(){jwc()} +function tJc(){jJc()} +function dJc(){aJc()} +function Pyc(){Nyc()} +function VBc(){SBc()} +function CFc(){yFc()} +function CUc(){wUc()} +function lUc(){fUc()} +function sUc(){pUc()} +function IUc(){GUc()} +function IWc(){HWc()} +function _Wc(){ZWc()} +function fHc(){dHc()} +function f0c(){d0c()} +function B0c(){A0c()} +function L0c(){J0c()} +function LTc(){JTc()} +function sTc(){rTc()} +function KLc(){ILc()} +function wNc(){tNc()} +function PYc(){OYc()} +function nZc(){lZc()} +function q3c(){p3c()} +function Z7c(){X7c()} +function Z9c(){Y9c()} +function _ad(){Zad()} +function kdd(){idd()} +function $md(){Smd()} +function HGd(){tGd()} +function hLd(){NKd()} +function J6d(){Uge()} +function Mvb(a){uCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function MBb(a,b){a.a=b} +function w_b(a,b){a.a=b} +function x_b(a,b){a.b=b} +function YOb(a,b){a.b=b} +function $Ob(a,b){a.b=b} +function ZGb(a,b){a.j=b} +function qNb(a,b){a.g=b} +function rNb(a,b){a.i=b} +function dRb(a,b){a.c=b} +function eRb(a,b){a.d=b} +function z_b(a,b){a.d=b} +function y_b(a,b){a.c=b} +function __b(a,b){a.k=b} +function E0b(a,b){a.c=b} +function njc(a,b){a.c=b} +function mjc(a,b){a.a=b} +function dFc(a,b){a.a=b} +function eFc(a,b){a.f=b} +function nOc(a,b){a.a=b} +function oOc(a,b){a.b=b} +function pOc(a,b){a.d=b} +function qOc(a,b){a.i=b} +function rOc(a,b){a.o=b} +function sOc(a,b){a.r=b} +function $Pc(a,b){a.a=b} +function _Pc(a,b){a.b=b} +function DVc(a,b){a.e=b} +function EVc(a,b){a.f=b} +function FVc(a,b){a.g=b} +function SZc(a,b){a.e=b} +function TZc(a,b){a.f=b} +function c$c(a,b){a.f=b} +function bJd(a,b){a.n=b} +function A1d(a,b){a.a=b} +function J1d(a,b){a.a=b} +function B1d(a,b){a.c=b} +function K1d(a,b){a.c=b} +function L1d(a,b){a.d=b} +function M1d(a,b){a.e=b} +function N1d(a,b){a.g=b} +function d2d(a,b){a.a=b} +function e2d(a,b){a.c=b} +function f2d(a,b){a.d=b} +function g2d(a,b){a.e=b} +function h2d(a,b){a.f=b} +function i2d(a,b){a.j=b} +function Z8d(a,b){a.a=b} +function $8d(a,b){a.b=b} +function g9d(a,b){a.a=b} +function Cic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function vib(a){this.d=a} +function eib(a){this.a=a} +function Pib(a){this.a=a} +function Vib(a){this.a=a} +function $ib(a){this.a=a} +function mcb(a){this.a=a} +function Mcb(a){this.a=a} +function Xcb(a){this.a=a} +function Ndb(a){this.a=a} +function _db(a){this.a=a} +function teb(a){this.a=a} +function Qeb(a){this.a=a} +function djb(a){this.a=a} +function Gjb(a){this.a=a} +function Njb(a){this.a=a} +function Bjb(a){this.b=a} +function lnb(a){this.b=a} +function Dnb(a){this.b=a} +function anb(a){this.a=a} +function Mob(a){this.a=a} +function Rob(a){this.a=a} +function iob(a){this.c=a} +function olb(a){this.c=a} +function qub(a){this.c=a} +function Tub(a){this.a=a} +function Vub(a){this.a=a} +function Xub(a){this.a=a} +function Zub(a){this.a=a} +function tpb(a){this.a=a} +function _pb(a){this.a=a} +function Wqb(a){this.a=a} +function nsb(a){this.a=a} +function Rxb(a){this.a=a} +function Txb(a){this.a=a} +function Xxb(a){this.a=a} +function bzb(a){this.a=a} +function tzb(a){this.a=a} +function vzb(a){this.a=a} +function xzb(a){this.a=a} +function Kzb(a){this.a=a} +function Ozb(a){this.a=a} +function iAb(a){this.a=a} +function kAb(a){this.a=a} +function mAb(a){this.a=a} +function BAb(a){this.a=a} +function hBb(a){this.a=a} +function jBb(a){this.a=a} +function nBb(a){this.a=a} +function TBb(a){this.a=a} +function XBb(a){this.a=a} +function QCb(a){this.a=a} +function WCb(a){this.a=a} +function _Cb(a){this.a=a} +function dEb(a){this.a=a} +function QGb(a){this.a=a} +function YGb(a){this.a=a} +function tKb(a){this.a=a} +function CLb(a){this.a=a} +function JMb(a){this.a=a} +function RNb(a){this.a=a} +function kQb(a){this.a=a} +function mQb(a){this.a=a} +function FQb(a){this.a=a} +function ETb(a){this.a=a} +function UTb(a){this.a=a} +function dUb(a){this.a=a} +function hUb(a){this.a=a} +function EZb(a){this.a=a} +function j$b(a){this.a=a} +function v$b(a){this.e=a} +function J0b(a){this.a=a} +function M0b(a){this.a=a} +function R0b(a){this.a=a} +function U0b(a){this.a=a} +function i2b(a){this.a=a} +function k2b(a){this.a=a} +function o2b(a){this.a=a} +function s2b(a){this.a=a} +function G2b(a){this.a=a} +function I2b(a){this.a=a} +function K2b(a){this.a=a} +function M2b(a){this.a=a} +function W3b(a){this.a=a} +function $3b(a){this.a=a} +function V4b(a){this.a=a} +function u5b(a){this.a=a} +function A7b(a){this.a=a} +function G7b(a){this.a=a} +function J7b(a){this.a=a} +function M7b(a){this.a=a} +function Mbc(a){this.a=a} +function Pbc(a){this.a=a} +function lac(a){this.a=a} +function nac(a){this.a=a} +function qcc(a){this.a=a} +function Gdc(a){this.a=a} +function $dc(a){this.a=a} +function cec(a){this.a=a} +function _ec(a){this.a=a} +function pfc(a){this.a=a} +function Bfc(a){this.a=a} +function Lfc(a){this.a=a} +function ygc(a){this.a=a} +function Dgc(a){this.a=a} +function shc(a){this.a=a} +function uhc(a){this.a=a} +function whc(a){this.a=a} +function Chc(a){this.a=a} +function Ehc(a){this.a=a} +function Ohc(a){this.a=a} +function Yhc(a){this.a=a} +function Tkc(a){this.a=a} +function Vkc(a){this.a=a} +function Olc(a){this.a=a} +function pnc(a){this.a=a} +function rnc(a){this.a=a} +function dpc(a){this.a=a} +function fpc(a){this.a=a} +function GCc(a){this.a=a} +function KCc(a){this.a=a} +function mDc(a){this.a=a} +function jEc(a){this.a=a} +function HEc(a){this.a=a} +function FEc(a){this.c=a} +function qoc(a){this.b=a} +function bFc(a){this.a=a} +function GFc(a){this.a=a} +function iGc(a){this.a=a} +function kGc(a){this.a=a} +function mGc(a){this.a=a} +function $Gc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function xIc(a){this.a=a} +function zIc(a){this.a=a} +function CIc(a){this.a=a} +function LIc(a){this.a=a} +function CKc(a){this.a=a} +function IKc(a){this.a=a} +function MKc(a){this.a=a} +function $Kc(a){this.a=a} +function cLc(a){this.a=a} +function jLc(a){this.a=a} +function rLc(a){this.a=a} +function xLc(a){this.a=a} +function OMc(a){this.a=a} +function ZOc(a){this.a=a} +function ZRc(a){this.a=a} +function aSc(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function M$c(a){this.a=a} +function O$c(a){this.a=a} +function U$c(a){this.a=a} +function n1c(a){this.a=a} +function z1c(a){this.a=a} +function B1c(a){this.a=a} +function Q2c(a){this.a=a} +function U2c(a){this.a=a} +function z3c(a){this.a=a} +function med(a){this.a=a} +function Xed(a){this.a=a} +function _ed(a){this.a=a} +function Qfd(a){this.a=a} +function Bgd(a){this.a=a} +function $gd(a){this.a=a} +function lrd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function yrd(a){this.a=a} +function zrd(a){this.a=a} +function Ard(a){this.a=a} +function Brd(a){this.a=a} +function Crd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Lrd(a){this.a=a} +function Mrd(a){this.a=a} +function Nrd(a){this.a=a} +function Prd(a){this.a=a} +function Srd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function _rd(a){this.a=a} +function asd(a){this.a=a} +function bsd(a){this.a=a} +function csd(a){this.a=a} +function dsd(a){this.a=a} +function msd(a){this.a=a} +function osd(a){this.a=a} +function qsd(a){this.a=a} +function ssd(a){this.a=a} +function Wsd(a){this.a=a} +function Lsd(a){this.b=a} +function thd(a){this.f=a} +function qtd(a){this.a=a} +function yBd(a){this.a=a} +function GBd(a){this.a=a} +function MBd(a){this.a=a} +function SBd(a){this.a=a} +function iCd(a){this.a=a} +function YMd(a){this.a=a} +function GNd(a){this.a=a} +function EPd(a){this.a=a} +function EQd(a){this.a=a} +function NTd(a){this.a=a} +function qOd(a){this.b=a} +function lVd(a){this.c=a} +function VVd(a){this.e=a} +function iYd(a){this.a=a} +function RYd(a){this.a=a} +function ZYd(a){this.a=a} +function z0d(a){this.a=a} +function O0d(a){this.a=a} +function s0d(a){this.d=a} +function W5d(a){this.a=a} +function cge(a){this.a=a} +function xfe(a){this.e=a} +function Tfd(){this.a=0} +function jkb(){Vjb(this)} +function Rkb(){Ckb(this)} +function Lqb(){Uhb(this)} +function lEb(){kEb(this)} +function A_b(){s_b(this)} +function UQd(){this.c=FQd} +function v6d(a,b){b.Wb(a)} +function moc(a,b){a.b+=b} +function yXb(a){a.b=new Ji} +function vbb(a){return a.e} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function wC(){return null} +function SB(){return null} +function hcb(){mvd();ovd()} +function zJb(a){a.b.tf(a.e)} +function j5b(a,b){a.b=b-a.b} +function g5b(a,b){a.a=b-a.a} +function PXc(a,b){b.ad(a.a)} +function plc(a,b){G0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function gz(){Xy.call(this)} +function xcb(){Xy.call(this)} +function pcb(){gz.call(this)} +function tcb(){gz.call(this)} +function Bdb(){gz.call(this)} +function Vdb(){gz.call(this)} +function Ydb(){gz.call(this)} +function Geb(){gz.call(this)} +function bgb(){gz.call(this)} +function Apb(){gz.call(this)} +function Jpb(){gz.call(this)} +function utb(){gz.call(this)} +function x2c(){gz.call(this)} +function rQd(){this.a=this} +function MPd(){this.Bb|=256} +function tTb(){this.b=new mt} +function fA(){fA=ccb;new Lqb} +function rcb(){pcb.call(this)} +function dCb(a,b){a.length=b} +function Tvb(a,b){Ekb(a.a,b)} +function sKb(a,b){UHb(a.c,b)} +function SMc(a,b){Qqb(a.b,b)} +function vBd(a,b){uAd(a.a,b)} +function wBd(a,b){vAd(a.a,b)} +function GLd(a,b){Uhd(a.e,b)} +function d7d(a){D2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Odb(a){this.a=Tdb(a)} +function Tqb(){this.a=new Lqb} +function gyb(){this.a=new Lqb} +function Wvb(){this.a=new Rkb} +function KFb(){this.a=new Rkb} +function PFb(){this.a=new Rkb} +function FFb(){this.a=new yFb} +function pGb(){this.a=new MFb} +function ZQb(){this.a=new MQb} +function Gxb(){this.a=new Pwb} +function jUb(){this.a=new PTb} +function sDb(){this.a=new oDb} +function zDb(){this.a=new tDb} +function CWb(){this.a=new Rkb} +function HXb(){this.a=new Rkb} +function nYb(){this.a=new Rkb} +function BYb(){this.a=new Rkb} +function fLb(){this.d=new Rkb} +function vYb(){this.a=new Tqb} +function a2b(){this.a=new Lqb} +function wZb(){this.b=new Lqb} +function TCc(){this.b=new Rkb} +function zJc(){this.e=new Rkb} +function uMc(){this.d=new Rkb} +function wdc(){this.a=new xkc} +function vKc(){Rkb.call(this)} +function twb(){Wvb.call(this)} +function oHb(){$Gb.call(this)} +function LXb(){HXb.call(this)} +function L_b(){H_b.call(this)} +function H_b(){A_b.call(this)} +function p0b(){A_b.call(this)} +function s0b(){p0b.call(this)} +function WMc(){VMc.call(this)} +function bNc(){VMc.call(this)} +function EPc(){CPc.call(this)} +function JPc(){CPc.call(this)} +function OPc(){CPc.call(this)} +function w1c(){s1c.call(this)} +function s7c(){Psb.call(this)} +function apd(){Ald.call(this)} +function ppd(){Ald.call(this)} +function lDd(){YCd.call(this)} +function NDd(){YCd.call(this)} +function mFd(){Lqb.call(this)} +function vFd(){Lqb.call(this)} +function GFd(){Lqb.call(this)} +function KPd(){Tqb.call(this)} +function OJd(){hJd.call(this)} +function aQd(){MPd.call(this)} +function SSd(){FId.call(this)} +function rUd(){FId.call(this)} +function oUd(){Lqb.call(this)} +function NYd(){Lqb.call(this)} +function cZd(){Lqb.call(this)} +function R8d(){MGd.call(this)} +function o9d(){MGd.call(this)} +function i9d(){R8d.call(this)} +function hee(){ude.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Zdd(){this.a=new Psb} +function CPc(){this.a=new Tqb} +function s1c(){this.a=new Lqb} +function QSc(){this.a=new Rkb} +function D2c(){this.j=new Rkb} +function QXc(){this.a=new UXc} +function e_c(){this.a=new d_c} +function YCd(){this.a=new aDd} +function _k(){_k=ccb;$k=new al} +function Lk(){Lk=ccb;Kk=new Mk} +function wb(){wb=ccb;vb=new xb} +function hs(){hs=ccb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Ftb(a){Atb();this.a=a} +function zwb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function LVb(a,b){a.a=b;NVb(a)} +function lIb(a,b,c){a.a[b.g]=c} +function vfd(a,b,c){Dfd(c,a,b)} +function Odc(a,b){rjc(b.i,a.n)} +function Wyc(a,b){Xyc(a).td(b)} +function ERb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ocb(a){hz.call(this,a)} +function qcb(a){hz.call(this,a)} +function ucb(a){hz.call(this,a)} +function vcb(a){Yy.call(this,a)} +function fGc(a){LFc();this.a=a} +function c0d(a){kzd();this.a=a} +function bhd(a){Rgd();this.f=a} +function dhd(a){Rgd();this.f=a} +function Cdb(a){hz.call(this,a)} +function Wdb(a){hz.call(this,a)} +function Zdb(a){hz.call(this,a)} +function Feb(a){hz.call(this,a)} +function Heb(a){hz.call(this,a)} +function Ccb(a){return uCb(a),a} +function Edb(a){return uCb(a),a} +function Gdb(a){return uCb(a),a} +function jfb(a){return uCb(a),a} +function tfb(a){return uCb(a),a} +function akb(a){return a.b==a.c} +function Hwb(a){return !!a&&a.b} +function pIb(a){return !!a&&a.k} +function qIb(a){return !!a&&a.j} +function amb(a){uCb(a);this.a=a} +function wVb(a){qVb(a);return a} +function Blb(a){Glb(a,a.length)} +function cgb(a){hz.call(this,a)} +function cqd(a){hz.call(this,a)} +function n8d(a){hz.call(this,a)} +function y2c(a){hz.call(this,a)} +function z2c(a){hz.call(this,a)} +function mde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Kz(){Kz=ccb;Jz=new Nz} +function jz(){jz=ccb;iz=new nb} +function KA(){KA=ccb;JA=new MA} +function OB(){OB=ccb;NB=new PB} +function jc(){throw vbb(new bgb)} +function zh(){throw vbb(new bgb)} +function Pi(){throw vbb(new bgb)} +function Pj(){throw vbb(new bgb)} +function Qj(){throw vbb(new bgb)} +function Ym(){throw vbb(new bgb)} +function Gb(){this.a=GD(Qb(She))} +function oy(a){Ql();this.a=Qb(a)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function iw(a,b){a.a.ec().Mc(b)} +function CYb(a,b,c){a.c.lf(b,c)} +function scb(a){qcb.call(this,a)} +function Oeb(a){Wdb.call(this,a)} +function Hfb(){mcb.call(this,'')} +function Ifb(){mcb.call(this,'')} +function Ufb(){mcb.call(this,'')} +function Vfb(){mcb.call(this,'')} +function Xfb(a){qcb.call(this,a)} +function zob(a){lnb.call(this,a)} +function Yob(a){Inb.call(this,a)} +function Gob(a){zob.call(this,a)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function Az(){Az=ccb;!!(Rz(),Qz)} +function wrb(){wrb=ccb;vrb=yrb()} +function Mtb(a){return a.a?a.b:0} +function Vtb(a){return a.a?a.b:0} +function Lcb(a,b){return a.a-b.a} +function Wcb(a,b){return a.a-b.a} +function Peb(a,b){return a.a-b.a} +function eCb(a,b){return PC(a,b)} +function GC(a,b){return rdb(a,b)} +function _B(b,a){return a in b.a} +function _Db(a,b){a.f=b;return a} +function ZDb(a,b){a.b=b;return a} +function $Db(a,b){a.c=b;return a} +function aEb(a,b){a.g=b;return a} +function HGb(a,b){a.a=b;return a} +function IGb(a,b){a.f=b;return a} +function JGb(a,b){a.k=b;return a} +function dLb(a,b){a.a=b;return a} +function eLb(a,b){a.e=b;return a} +function zVb(a,b){a.e=b;return a} +function AVb(a,b){a.f=b;return a} +function KOb(a,b){a.b=true;a.d=b} +function DHb(a,b){a.b=new g7c(b)} +function uvb(a,b,c){b.td(a.a[c])} +function zvb(a,b,c){b.we(a.a[c])} +function wJc(a,b){return a.b-b.b} +function kOc(a,b){return a.g-b.g} +function WQc(a,b){return a.s-b.s} +function Lic(a,b){return a?0:b-1} +function SFc(a,b){return a?0:b-1} +function RFc(a,b){return a?b-1:0} +function M2c(a,b){return b.Yf(a)} +function M3c(a,b){a.b=b;return a} +function L3c(a,b){a.a=b;return a} +function N3c(a,b){a.c=b;return a} +function O3c(a,b){a.d=b;return a} +function P3c(a,b){a.e=b;return a} +function Q3c(a,b){a.f=b;return a} +function b4c(a,b){a.a=b;return a} +function c4c(a,b){a.b=b;return a} +function d4c(a,b){a.c=b;return a} +function z5c(a,b){a.c=b;return a} +function y5c(a,b){a.b=b;return a} +function A5c(a,b){a.d=b;return a} +function B5c(a,b){a.e=b;return a} +function C5c(a,b){a.f=b;return a} +function D5c(a,b){a.g=b;return a} +function E5c(a,b){a.a=b;return a} +function F5c(a,b){a.i=b;return a} +function G5c(a,b){a.j=b;return a} +function Vdd(a,b){a.k=b;return a} +function Wdd(a,b){a.j=b;return a} +function ykc(a,b){gkc();F0b(b,a)} +function T$c(a,b,c){R$c(a.a,b,c)} +function RGc(a){cEc.call(this,a)} +function iHc(a){cEc.call(this,a)} +function t7c(a){Qsb.call(this,a)} +function aPb(a){_Ob.call(this,a)} +function Ixd(a){zud.call(this,a)} +function dCd(a){ZBd.call(this,a)} +function fCd(a){ZBd.call(this,a)} +function p_b(){q_b.call(this,'')} +function d7c(){this.a=0;this.b=0} +function aPc(){this.b=0;this.a=0} +function NJd(a,b){a.b=0;DId(a,b)} +function X1d(a,b){a.c=b;a.b=true} +function Oc(a,b){return a.c._b(b)} +function gdb(a){return a.e&&a.e()} +function Vd(a){return !a?null:a.d} +function sn(a,b){return Gv(a.b,b)} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function hdb(a){fdb(a);return a.o} +function Fhd(){Fhd=ccb;Ehd=ond()} +function Hhd(){Hhd=ccb;Ghd=Cod()} +function LFd(){LFd=ccb;KFd=qZd()} +function p8d(){p8d=ccb;o8d=Y9d()} +function r8d(){r8d=ccb;q8d=dae()} +function mvd(){mvd=ccb;lvd=n4c()} +function Srb(){throw vbb(new bgb)} +function enb(){throw vbb(new bgb)} +function fnb(){throw vbb(new bgb)} +function gnb(){throw vbb(new bgb)} +function jnb(){throw vbb(new bgb)} +function Cnb(){throw vbb(new bgb)} +function Uqb(a){this.a=new Mqb(a)} +function tgb(a){lgb();ngb(this,a)} +function Hxb(a){this.a=new Qwb(a)} +function _ub(a,b){while(a.ye(b));} +function Sub(a,b){while(a.sd(b));} +function Bfb(a,b){a.a+=b;return a} +function Cfb(a,b){a.a+=b;return a} +function Ffb(a,b){a.a+=b;return a} +function Lfb(a,b){a.a+=b;return a} +function WAb(a){Tzb(a);return a.a} +function Wsb(a){return a.b!=a.d.c} +function pD(a){return a.l|a.m<<22} +function aIc(a,b){return a.d[b.p]} +function h2c(a,b){return c2c(a,b)} +function cCb(a,b,c){a.splice(b,c)} +function WHb(a){a.c?VHb(a):XHb(a)} +function jVc(a){this.a=0;this.b=a} +function ZUc(){this.a=new L2c(K$)} +function tRc(){this.b=new L2c(h$)} +function Q$c(){this.b=new L2c(J_)} +function d_c(){this.b=new L2c(J_)} +function OCd(){throw vbb(new bgb)} +function PCd(){throw vbb(new bgb)} +function QCd(){throw vbb(new bgb)} +function RCd(){throw vbb(new bgb)} +function SCd(){throw vbb(new bgb)} +function TCd(){throw vbb(new bgb)} +function UCd(){throw vbb(new bgb)} +function VCd(){throw vbb(new bgb)} +function WCd(){throw vbb(new bgb)} +function XCd(){throw vbb(new bgb)} +function ahe(){throw vbb(new utb)} +function bhe(){throw vbb(new utb)} +function Rge(a){this.a=new ege(a)} +function ege(a){dge(this,a,Vee())} +function Fhe(a){return !a||Ehe(a)} +function dde(a){return $ce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Ybb(){Wbb==null&&(Wbb=[])} +function ONd(a,b){Rxd(ZKd(a.a),b)} +function TNd(a,b){Rxd(ZKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Zfb(){Zfb=ccb;Yfb=new jcb} +function Emb(){Emb=ccb;Dmb=new Fmb} +function Vhb(a){return a.f.c+a.g.c} +function hnb(a,b){return a.b.Hc(b)} +function inb(a,b){return a.b.Ic(b)} +function knb(a,b){return a.b.Qc(b)} +function Dob(a,b){return a.b.Hc(b)} +function dob(a,b){return a.c.uc(b)} +function Rqb(a,b){return a.a._b(b)} +function fob(a,b){return pb(a.c,b)} +function jt(a,b){return Mhb(a.b,b)} +function Lp(a,b){return a>b&&b0} +function Gbb(a,b){return ybb(a,b)<0} +function Crb(a,b){return a.a.get(b)} +function icb(b,a){return a.split(b)} +function Vrb(a,b){return Mhb(a.e,b)} +function Nvb(a){return uCb(a),false} +function Rub(a){Kub.call(this,a,21)} +function wcb(a,b){Zy.call(this,a,b)} +function mxb(a,b){$r.call(this,a,b)} +function Gyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Dlb(a,a.length,b)} +function Alb(a,b){Flb(a,a.length,b)} +function ABb(a,b,c){b.ud(a.a.Ge(c))} +function uBb(a,b,c){b.we(a.a.Fe(c))} +function GBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function aCb(a,b,c){a.splice(b,0,c)} +function lDb(a,b){return uqb(a.e,b)} +function pjb(a,b){this.d=a;this.e=b} +function kqb(a,b){this.b=a;this.a=b} +function VBb(a,b){this.b=a;this.a=b} +function BEb(a,b){this.b=a;this.a=b} +function sBb(a,b){this.a=a;this.b=b} +function yBb(a,b){this.a=a;this.b=b} +function EBb(a,b){this.a=a;this.b=b} +function KBb(a,b){this.a=a;this.b=b} +function aDb(a,b){this.a=a;this.b=b} +function tMb(a,b){this.b=a;this.a=b} +function oOb(a,b){this.b=a;this.a=b} +function SOb(a,b){$r.call(this,a,b)} +function SMb(a,b){$r.call(this,a,b)} +function NEb(a,b){$r.call(this,a,b)} +function VEb(a,b){$r.call(this,a,b)} +function sFb(a,b){$r.call(this,a,b)} +function hHb(a,b){$r.call(this,a,b)} +function OHb(a,b){$r.call(this,a,b)} +function FIb(a,b){$r.call(this,a,b)} +function wLb(a,b){$r.call(this,a,b)} +function YRb(a,b){$r.call(this,a,b)} +function zTb(a,b){$r.call(this,a,b)} +function rUb(a,b){$r.call(this,a,b)} +function oWb(a,b){$r.call(this,a,b)} +function SXb(a,b){$r.call(this,a,b)} +function k0b(a,b){$r.call(this,a,b)} +function z5b(a,b){$r.call(this,a,b)} +function T8b(a,b){$r.call(this,a,b)} +function ibc(a,b){$r.call(this,a,b)} +function Cec(a,b){this.a=a;this.b=b} +function rfc(a,b){this.a=a;this.b=b} +function Rfc(a,b){this.a=a;this.b=b} +function Tfc(a,b){this.a=a;this.b=b} +function bgc(a,b){this.a=a;this.b=b} +function ngc(a,b){this.a=a;this.b=b} +function Qhc(a,b){this.a=a;this.b=b} +function $hc(a,b){this.a=a;this.b=b} +function Z0b(a,b){this.a=a;this.b=b} +function ZVb(a,b){this.b=a;this.a=b} +function Dfc(a,b){this.b=a;this.a=b} +function dgc(a,b){this.b=a;this.a=b} +function Bmc(a,b){this.b=a;this.a=b} +function cWb(a,b){this.c=a;this.d=b} +function I$b(a,b){this.e=a;this.d=b} +function Unc(a,b){this.a=a;this.b=b} +function Oic(a,b){this.b=b;this.c=a} +function Bjc(a,b){$r.call(this,a,b)} +function Yjc(a,b){$r.call(this,a,b)} +function Gkc(a,b){$r.call(this,a,b)} +function Bpc(a,b){$r.call(this,a,b)} +function Jpc(a,b){$r.call(this,a,b)} +function Tpc(a,b){$r.call(this,a,b)} +function cqc(a,b){$r.call(this,a,b)} +function oqc(a,b){$r.call(this,a,b)} +function yqc(a,b){$r.call(this,a,b)} +function Hqc(a,b){$r.call(this,a,b)} +function Uqc(a,b){$r.call(this,a,b)} +function arc(a,b){$r.call(this,a,b)} +function mrc(a,b){$r.call(this,a,b)} +function zrc(a,b){$r.call(this,a,b)} +function Prc(a,b){$r.call(this,a,b)} +function Yrc(a,b){$r.call(this,a,b)} +function fsc(a,b){$r.call(this,a,b)} +function nsc(a,b){$r.call(this,a,b)} +function nzc(a,b){$r.call(this,a,b)} +function zzc(a,b){$r.call(this,a,b)} +function Kzc(a,b){$r.call(this,a,b)} +function Xzc(a,b){$r.call(this,a,b)} +function Dtc(a,b){$r.call(this,a,b)} +function lAc(a,b){$r.call(this,a,b)} +function uAc(a,b){$r.call(this,a,b)} +function CAc(a,b){$r.call(this,a,b)} +function LAc(a,b){$r.call(this,a,b)} +function UAc(a,b){$r.call(this,a,b)} +function aBc(a,b){$r.call(this,a,b)} +function uBc(a,b){$r.call(this,a,b)} +function DBc(a,b){$r.call(this,a,b)} +function MBc(a,b){$r.call(this,a,b)} +function sGc(a,b){$r.call(this,a,b)} +function VIc(a,b){$r.call(this,a,b)} +function EIc(a,b){this.b=a;this.a=b} +function qKc(a,b){this.a=a;this.b=b} +function GKc(a,b){this.a=a;this.b=b} +function lLc(a,b){this.a=a;this.b=b} +function mMc(a,b){this.a=a;this.b=b} +function fMc(a,b){$r.call(this,a,b)} +function ZLc(a,b){$r.call(this,a,b)} +function ZMc(a,b){this.b=a;this.d=b} +function IOc(a,b){$r.call(this,a,b)} +function GQc(a,b){$r.call(this,a,b)} +function PQc(a,b){this.a=a;this.b=b} +function RQc(a,b){this.a=a;this.b=b} +function ARc(a,b){$r.call(this,a,b)} +function rSc(a,b){$r.call(this,a,b)} +function TTc(a,b){$r.call(this,a,b)} +function _Tc(a,b){$r.call(this,a,b)} +function RUc(a,b){$r.call(this,a,b)} +function uVc(a,b){$r.call(this,a,b)} +function hWc(a,b){$r.call(this,a,b)} +function rWc(a,b){$r.call(this,a,b)} +function kXc(a,b){$r.call(this,a,b)} +function uXc(a,b){$r.call(this,a,b)} +function AYc(a,b){$r.call(this,a,b)} +function l$c(a,b){$r.call(this,a,b)} +function Z$c(a,b){$r.call(this,a,b)} +function D_c(a,b){$r.call(this,a,b)} +function O_c(a,b){$r.call(this,a,b)} +function c1c(a,b){$r.call(this,a,b)} +function cVb(a,b){return uqb(a.c,b)} +function nnc(a,b){return uqb(b.b,a)} +function x1c(a,b){return -a.b.Je(b)} +function D3c(a,b){return uqb(a.g,b)} +function O5c(a,b){$r.call(this,a,b)} +function a6c(a,b){$r.call(this,a,b)} +function m2c(a,b){this.a=a;this.b=b} +function W2c(a,b){this.a=a;this.b=b} +function f7c(a,b){this.a=a;this.b=b} +function G7c(a,b){$r.call(this,a,b)} +function j8c(a,b){$r.call(this,a,b)} +function iad(a,b){$r.call(this,a,b)} +function rad(a,b){$r.call(this,a,b)} +function Bad(a,b){$r.call(this,a,b)} +function Nad(a,b){$r.call(this,a,b)} +function ibd(a,b){$r.call(this,a,b)} +function tbd(a,b){$r.call(this,a,b)} +function Ibd(a,b){$r.call(this,a,b)} +function Ubd(a,b){$r.call(this,a,b)} +function gcd(a,b){$r.call(this,a,b)} +function scd(a,b){$r.call(this,a,b)} +function Ycd(a,b){$r.call(this,a,b)} +function udd(a,b){$r.call(this,a,b)} +function Jdd(a,b){$r.call(this,a,b)} +function Eed(a,b){$r.call(this,a,b)} +function bfd(a,b){this.a=a;this.b=b} +function dfd(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function Kfd(a,b){this.a=a;this.b=b} +function Mfd(a,b){this.a=a;this.b=b} +function Ofd(a,b){this.a=a;this.b=b} +function vgd(a,b){this.a=a;this.b=b} +function qgd(a,b){$r.call(this,a,b)} +function jrd(a,b){this.a=a;this.b=b} +function krd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.a=a;this.b=b} +function qrd(a,b){this.a=a;this.b=b} +function rrd(a,b){this.a=a;this.b=b} +function srd(a,b){this.b=a;this.a=b} +function trd(a,b){this.b=a;this.a=b} +function Drd(a,b){this.b=a;this.a=b} +function Frd(a,b){this.b=a;this.a=b} +function Hrd(a,b){this.a=a;this.b=b} +function Jrd(a,b){this.a=a;this.b=b} +function Ord(a,b){Xqd(a.a,BD(b,56))} +function BIc(a,b){gIc(a.a,BD(b,11))} +function fIc(a,b){FHc();return b!=a} +function Arb(){wrb();return new vrb} +function CMc(){wMc();this.b=new Tqb} +function NNc(){FNc();this.a=new Tqb} +function eCc(){ZBc();aCc.call(this)} +function Dsd(a,b){$r.call(this,a,b)} +function Urd(a,b){this.a=a;this.b=b} +function Wrd(a,b){this.a=a;this.b=b} +function kGd(a,b){this.a=a;this.b=b} +function nGd(a,b){this.a=a;this.b=b} +function bUd(a,b){this.a=a;this.b=b} +function zVd(a,b){this.a=a;this.b=b} +function C1d(a,b){this.d=a;this.b=b} +function MLd(a,b){this.d=a;this.e=b} +function Wud(a,b){this.f=a;this.c=b} +function f7d(a,b){this.b=a;this.c=b} +function _zd(a,b){this.i=a;this.g=b} +function Y1d(a,b){this.e=a;this.a=b} +function c8d(a,b){this.a=a;this.b=b} +function $Id(a,b){a.i=null;_Id(a,b)} +function ivd(a,b){!!a&&Rhb(cvd,a,b)} +function hCd(a,b){return qAd(a.a,b)} +function e7d(a){return R2d(a.c,a.b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Khe} +function LD(a){return typeof a===Lhe} +function ND(a){return typeof a===Mhe} +function Em(a,b){return a.Hd().Xb(b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Bbb(a,b){return ybb(a,b)==0} +function Ebb(a,b){return ybb(a,b)>=0} +function Kbb(a,b){return ybb(a,b)!=0} +function Jdb(a){return ''+(uCb(a),a)} +function pfb(a,b){return a.substr(b)} +function cg(a){ag(a);return a.d.gc()} +function oVb(a){pVb(a,a.c);return a} +function RD(a){CCb(a==null);return a} +function Dfb(a,b){a.a+=''+b;return a} +function Efb(a,b){a.a+=''+b;return a} +function Nfb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function Qfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){return a.a+=''+b,a} +function Esb(a,b){Gsb(a,b,a.a,a.a.a)} +function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} +function Mqd(a,b,c){Rpd(b,kqd(a,c))} +function Nqd(a,b,c){Rpd(b,kqd(a,c))} +function Dhe(a,b){Hhe(new Fyd(a),b)} +function cB(a,b){a.q.setTime(Sbb(b))} +function fvb(a,b){bvb.call(this,a,b)} +function jvb(a,b){bvb.call(this,a,b)} +function nvb(a,b){bvb.call(this,a,b)} +function Nqb(a){Uhb(this);Ld(this,a)} +function wmb(a){tCb(a,0);return null} +function X6c(a){a.a=0;a.b=0;return a} +function f3c(a,b){a.a=b.g+1;return a} +function PJc(a,b){return a.j[b.p]==2} +function _Pb(a){return VPb(BD(a,79))} +function yJb(){yJb=ccb;xJb=as(wJb())} +function Y8b(){Y8b=ccb;X8b=as(W8b())} +function mt(){this.b=new Mqb(Cv(12))} +function Otb(){this.b=0;this.a=false} +function Wtb(){this.b=0;this.a=false} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Nsd(a,b){Msd.call(this,a,b)} +function $zd(a,b){Cyd.call(this,a,b)} +function nNd(a,b){_zd.call(this,a,b)} +function s4d(a,b){p4d.call(this,a,b)} +function w4d(a,b){qRd.call(this,a,b)} +function rEd(a,b){pEd();Rhb(oEd,a,b)} +function lcb(a,b){return qfb(a.a,0,b)} +function ww(a,b){return a.a.a.a.cc(b)} +function mb(a,b){return PD(a)===PD(b)} +function Mdb(a,b){return Kdb(a.a,b.a)} +function $db(a,b){return beb(a.a,b.a)} +function seb(a,b){return ueb(a.a,b.a)} +function hfb(a,b){return a.indexOf(b)} +function Ny(a,b){return a==b?0:a?1:-1} +function kB(a){return a<10?'0'+a:''+a} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Hdb(a){return QD((uCb(a),a))} +function Idb(a){return QD((uCb(a),a))} +function NIb(a,b){return beb(a.g,b.g)} +function Fbb(a){return typeof a===Lhe} +function mWb(a){return a==hWb||a==kWb} +function nWb(a){return a==hWb||a==iWb} +function G1b(a){return Jkb(a.b.b,a,0)} +function lrb(a){this.a=Arb();this.b=a} +function Frb(a){this.a=Arb();this.b=a} +function swb(a,b){Ekb(a.a,b);return b} +function Z1c(a,b){Ekb(a.c,b);return a} +function E2c(a,b){d3c(a.a,b);return a} +function _gc(a,b){Hgc();return b.a+=a} +function bhc(a,b){Hgc();return b.a+=a} +function ahc(a,b){Hgc();return b.c+=a} +function Nlb(a,b){Klb(a,0,a.length,b)} +function zsb(){Wqb.call(this,new $rb)} +function I_b(){B_b.call(this,0,0,0,0)} +function I6c(){J6c.call(this,0,0,0,0)} +function g7c(a){this.a=a.a;this.b=a.b} +function fad(a){return a==aad||a==bad} +function gad(a){return a==dad||a==_9c} +function Jzc(a){return a==Fzc||a==Ezc} +function fcd(a){return a!=bcd&&a!=ccd} +function oid(a){return a.Lg()&&a.Mg()} +function Gfd(a){return Kkd(BD(a,118))} +function k3c(a){return d3c(new j3c,a)} +function y2d(a,b){return new p4d(b,a)} +function z2d(a,b){return new p4d(b,a)} +function ukd(a,b,c){vkd(a,b);wkd(a,c)} +function _kd(a,b,c){cld(a,b);ald(a,c)} +function bld(a,b,c){dld(a,b);eld(a,c)} +function gmd(a,b,c){hmd(a,b);imd(a,c)} +function nmd(a,b,c){omd(a,b);pmd(a,c)} +function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} +function _ud(a){Wud.call(this,a,true)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Ygb(a){Hgb();Zgb.call(this,a)} +function rxb(){mxb.call(this,'Head',1)} +function wxb(){mxb.call(this,'Tail',3)} +function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} +function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} +function MGb(a){Hkb(a.xf(),new QGb(a))} +function xtb(a){return a!=null?tb(a):0} +function b2b(a,b){return ntd(b,mpd(a))} +function c2b(a,b){return ntd(b,mpd(a))} +function dAb(a,b){return a[a.length]=b} +function gAb(a,b){return a[a.length]=b} +function Vq(a){return lr(a.b.Kc(),a.a)} +function dqd(a,b){return _o(qo(a.d),b)} +function eqd(a,b){return _o(qo(a.g),b)} +function fqd(a,b){return _o(qo(a.j),b)} +function Osd(a,b){Msd.call(this,a.b,b)} +function q0b(a){B_b.call(this,a,a,a,a)} +function HOb(a){a.b&&LOb(a);return a.a} +function IOb(a){a.b&&LOb(a);return a.c} +function uyb(a,b){if(lyb){return}a.b=b} +function lzd(a,b,c){NC(a,b,c);return c} +function mBc(a,b,c){NC(a.c[b.g],b.g,c)} +function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} +function wfd(a,b,c){bld(c,c.i+a,c.j+b)} +function UOd(a,b){wtd(VKd(a.a),XOd(b))} +function bTd(a,b){wtd(QSd(a.a),eTd(b))} +function Lge(a){wfe();xfe.call(this,a)} +function CAd(a){return a==null?0:tb(a)} +function fNc(){fNc=ccb;eNc=new Rpb(v1)} +function h0d(){h0d=ccb;new i0d;new Rkb} +function i0d(){new Lqb;new Lqb;new Lqb} +function GA(){GA=ccb;fA();FA=new Lqb} +function Iy(){Iy=ccb;$wnd.Math.log(2)} +function UVd(){UVd=ccb;TVd=(AFd(),zFd)} +function _ge(){throw vbb(new cgb(Cxe))} +function ohe(){throw vbb(new cgb(Cxe))} +function che(){throw vbb(new cgb(Dxe))} +function rhe(){throw vbb(new cgb(Dxe))} +function Mg(a){this.a=a;Gg.call(this,a)} +function up(a){this.a=a;rf.call(this,a)} +function Bp(a){this.a=a;rf.call(this,a)} +function Okb(a,b){Mlb(a.c,a.c.length,b)} +function llb(a){return a.ab?1:0} +function Deb(a,b){return ybb(a,b)>0?a:b} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Ctb(a,b){a.a!=null&&BIc(b,a.a)} +function Csb(a){a.a=new jtb;a.c=new jtb} +function hDb(a){this.b=a;this.a=new Rkb} +function dOb(a){this.b=new pOb;this.a=a} +function q_b(a){n_b.call(this);this.a=a} +function txb(){mxb.call(this,'Range',2)} +function bUb(){ZTb();this.a=new L2c(zP)} +function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} +function fKc(a,b){FJc();return b.n.b+=a} +function Tgc(a,b,c){return Rhb(a.g,c,b)} +function LJc(a,b,c){return Rhb(a.k,c,b)} +function r1c(a,b){return Rhb(a.a,b.a,b)} +function jBc(a,b,c){return hBc(b,c,a.c)} +function E6c(a){return new f7c(a.c,a.d)} +function F6c(a){return new f7c(a.c,a.d)} +function R6c(a){return new f7c(a.a,a.b)} +function CQd(a,b){return hA(a.a,b,null)} +function fec(a){QZb(a,null);RZb(a,null)} +function AOc(a){BOc(a,null);COc(a,null)} +function u4d(){qRd.call(this,null,null)} +function y4d(){RRd.call(this,null,null)} +function a7d(a){this.a=a;Lqb.call(this)} +function Pp(a){this.b=(mmb(),new iob(a))} +function Py(a){a.j=KC(VI,nie,310,0,0,1)} +function oAd(a,b,c){a.c.Vc(b,BD(c,133))} +function GAd(a,b,c){a.c.ji(b,BD(c,133))} +function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} +function b7d(a,b){return t2d(a.c,a.b,b)} +function Bv(a,b){return new Qv(a.Kc(),b)} +function Lq(a,b){return rr(a.Kc(),b)!=-1} +function Sqb(a,b){return a.a.Bc(b)!=null} +function pr(a){return a.Ob()?a.Pb():null} +function yfb(a){return zfb(a,0,a.length)} +function JD(a,b){return a!=null&&AD(a,b)} +function $A(a,b){a.q.setHours(b);YA(a,b)} +function Yrb(a,b){if(a.c){jsb(b);isb(b)}} +function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} +function RJc(a,b,c){SJc(a,b,c);return c} +function Eub(a,b,c){a.a=b^1502;a.b=c^kke} +function xHb(a,b,c){return a.a[b.g][c.g]} +function REc(a,b){return a.a[b.c.p][b.p]} +function aEc(a,b){return a.e[b.c.p][b.p]} +function tEc(a,b){return a.c[b.c.p][b.p]} +function OJc(a,b){return a.j[b.p]=aKc(b)} +function k5c(a,b){return cfb(a.f,b.tg())} +function Isd(a,b){return cfb(a.b,b.tg())} +function Sfd(a,b){return a.a0?b*b/a:b*b*100} +function CRb(a,b){return a>0?b/(a*a):b*100} +function G2c(a,b,c){return Ekb(b,I2c(a,c))} +function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function O6c(a,b,c){a.a+=b;a.b+=c;return a} +function Z6c(a,b,c){a.a*=b;a.b*=c;return a} +function b7c(a,b,c){a.a-=b;a.b-=c;return a} +function a7c(a,b){a.a=b.a;a.b=b.b;return a} +function V6c(a){a.a=-a.a;a.b=-a.b;return a} +function Dic(a){this.c=a;this.a=1;this.b=1} +function xed(a){this.c=a;dld(a,0);eld(a,0)} +function u7c(a){Psb.call(this);n7c(this,a)} +function AXb(a){xXb();yXb(this);this.mf(a)} +function GRd(a,b){nRd();qRd.call(this,a,b)} +function dSd(a,b){LRd();RRd.call(this,a,b)} +function hSd(a,b){LRd();RRd.call(this,a,b)} +function fSd(a,b){LRd();dSd.call(this,a,b)} +function sId(a,b,c){dId.call(this,a,b,c,2)} +function zXd(a,b){UVd();nXd.call(this,a,b)} +function BXd(a,b){UVd();zXd.call(this,a,b)} +function DXd(a,b){UVd();zXd.call(this,a,b)} +function FXd(a,b){UVd();DXd.call(this,a,b)} +function PXd(a,b){UVd();nXd.call(this,a,b)} +function RXd(a,b){UVd();PXd.call(this,a,b)} +function XXd(a,b){UVd();nXd.call(this,a,b)} +function pAd(a,b){return a.c.Fc(BD(b,133))} +function w1d(a,b,c){return V1d(p1d(a,b),c)} +function N2d(a,b,c){return b.Qk(a.e,a.c,c)} +function P2d(a,b,c){return b.Rk(a.e,a.c,c)} +function a3d(a,b){return xid(a.e,BD(b,49))} +function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} +function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} +function ypb(a,b){b.$modCount=a.$modCount} +function MUc(){MUc=ccb;LUc=new Lsd('root')} +function LCd(){LCd=ccb;KCd=new lDd;new NDd} +function KVc(){this.a=new Hp;this.b=new Hp} +function FUd(){hJd.call(this);this.Bb|=Tje} +function t_c(){$r.call(this,'GROW_TREE',0)} +function C9d(a){return a==null?null:cde(a)} +function G9d(a){return a==null?null:jde(a)} +function J9d(a){return a==null?null:fcb(a)} +function K9d(a){return a==null?null:fcb(a)} +function fdb(a){if(a.o!=null){return}vdb(a)} +function DD(a){CCb(a==null||KD(a));return a} +function ED(a){CCb(a==null||LD(a));return a} +function GD(a){CCb(a==null||ND(a));return a} +function gB(a){this.q=new $wnd.Date(Sbb(a))} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function bAb(a,b){Vzb.call(this,a);this.a=b} +function vAb(a,b){Vzb.call(this,a);this.a=b} +function sNb(a){pNb.call(this,0,0);this.f=a} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} +function g4c(a,b){return BD(Wrb(a.b,b),149)} +function i4c(a,b){return BD(Wrb(a.c,b),229)} +function wic(a){return BD(Ikb(a.a,a.b),287)} +function B6c(a){return new f7c(a.c,a.d+a.a)} +function eLc(a){return FJc(),Jzc(BD(a,197))} +function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} +function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} +function qyb(a,b){if(lyb){return}Ekb(a.a,b)} +function F2b(a,b){x2b();return f_b(b.d.i,a)} +function _9b(a,b){I9b();return new gac(b,a)} +function _Hb(a,b){ytb(b,lle);a.f=b;return a} +function Kld(a,b,c){c=_hd(a,b,3,c);return c} +function bmd(a,b,c){c=_hd(a,b,6,c);return c} +function kpd(a,b,c){c=_hd(a,b,9,c);return c} +function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} +function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} +function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function c7d(a,b,c){return C2d(a.c,a.b,b,c)} +function DAd(a,b){return (b&Ohe)%a.d.length} +function Msd(a,b){Lsd.call(this,a);this.a=b} +function uVd(a,b){lVd.call(this,a);this.a=b} +function sYd(a,b){lVd.call(this,a);this.a=b} +function zyd(a,b){this.c=a;zud.call(this,b)} +function YOd(a,b){this.a=a;qOd.call(this,b)} +function fTd(a,b){this.a=a;qOd.call(this,b)} +function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} +function cq(a){this.a=(Xj(a,Jie),new Skb(a))} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function XMb(a){if(a>8){return 0}return a+1} +function Ecb(a,b){Bcb();return a==b?0:a?1:-1} +function Opb(a,b,c){return Npb(a,BD(b,22),c)} +function Bz(a,b,c){return a.apply(b,c);var d} +function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} +function ijb(a,b){var c;c=a.e;a.e=b;return c} +function trb(a,b){var c;c=a[hke];c.call(a,b)} +function urb(a,b){var c;c=a[hke];c.call(a,b)} +function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function Cxb(a,b){return Vd(Dwb(a.a,b,true))} +function _Bb(a,b){return eCb(new Array(b),a)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function gRb(){this.a=new Rkb;this.b=new Rkb} +function iTb(){this.a=new MQb;this.b=new tTb} +function tDb(){this.b=new d7c;this.c=new Rkb} +function _Qb(){this.d=new d7c;this.e=new d7c} +function n_b(){this.n=new d7c;this.o=new d7c} +function $Gb(){this.n=new p0b;this.i=new I6c} +function sec(){this.a=new Umc;this.b=new mnc} +function NIc(){this.a=new Rkb;this.d=new Rkb} +function LDc(){this.b=new Tqb;this.a=new Tqb} +function hSc(){this.b=new Lqb;this.a=new Lqb} +function HRc(){this.b=new tRc;this.a=new hRc} +function aHb(){$Gb.call(this);this.a=new d7c} +function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} +function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} +function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} +function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} +function Tod(a,b,c){c=_hd(a,b,11,c);return c} +function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} +function u7b(a,b){return a.n.a=(uCb(b),b)+10} +function v7b(a,b){return a.n.a=(uCb(b),b)+10} +function dLd(a,b){return b==a||pud(UKd(b),a)} +function PYd(a,b){return Rhb(a.a,b,'')==null} +function E2b(a,b){x2b();return !f_b(b.d.i,a)} +function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} +function h1d(a,b){var c;c=b.Hh(a.a);return c} +function Cyd(a,b){qcb.call(this,gve+a+mue+b)} +function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} +function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} +function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} +function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} +function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function j6d(a,b){return a.Aj().Nh().Kh(a,b)} +function h6d(a,b){return a.Aj().Nh().Ih(a,b)} +function Fdb(a,b){return uCb(a),PD(a)===PD(b)} +function dfb(a,b){return uCb(a),PD(a)===PD(b)} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function Exb(a,b){return Vd(Dwb(a.a,b,false))} +function vBb(a,b){return a.b.sd(new yBb(a,b))} +function BBb(a,b){return a.b.sd(new EBb(a,b))} +function HBb(a,b){return a.b.sd(new KBb(a,b))} +function lfb(a,b,c){return a.lastIndexOf(b,c)} +function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} +function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} +function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} +function emc(a,b){return beb(a.a.d.p,b.a.d.p)} +function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} +function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} +function Vxd(a){return a<100?null:new Ixd(a)} +function ecd(a){return a==Zbd||a==_bd||a==$bd} +function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} +function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} +function ujb(a,b){var c;c=b;return !!Awb(a,c)} +function czd(a,b){this.c=a;Pyd.call(this,a,b)} +function fBb(a){this.c=a;nvb.call(this,rie,0)} +function Avb(a,b){Bvb.call(this,a,a.length,b)} +function aId(a,b,c){return BD(a.c,69).lk(b,c)} +function bId(a,b,c){return BD(a.c,69).mk(b,c)} +function O2d(a,b,c){return N2d(a,BD(b,332),c)} +function Q2d(a,b,c){return P2d(a,BD(b,332),c)} +function i3d(a,b,c){return h3d(a,BD(b,332),c)} +function k3d(a,b,c){return j3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} +function Ldb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(mmb(),new zob(a))} +function dIc(a){FHc();this.d=a;this.a=new jkb} +function xqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.d=a;this.b=c;this.a=b} +function Qsb(a){Csb(this);Osb(this);ye(this,a)} +function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} +function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} +function iyb(a){this.a=a;Zfb();Cbb(Date.now())} +function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} +function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} +function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} +function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} +function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} +function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} +function pxb(a){lxb();return es((zxb(),yxb),a)} +function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} +function OEb(a){MEb();return es((REb(),QEb),a)} +function WEb(a){UEb();return es((ZEb(),YEb),a)} +function tFb(a){rFb();return es((wFb(),vFb),a)} +function iHb(a){gHb();return es((lHb(),kHb),a)} +function PHb(a){NHb();return es((SHb(),RHb),a)} +function GIb(a){EIb();return es((JIb(),IIb),a)} +function vJb(a){qJb();return es((yJb(),xJb),a)} +function xLb(a){vLb();return es((ALb(),zLb),a)} +function TMb(a){RMb();return es((WMb(),VMb),a)} +function TOb(a){ROb();return es((WOb(),VOb),a)} +function ePb(a){cPb();return es((hPb(),gPb),a)} +function ZRb(a){XRb();return es((aSb(),_Rb),a)} +function ATb(a){yTb();return es((DTb(),CTb),a)} +function sUb(a){qUb();return es((vUb(),uUb),a)} +function rWb(a){lWb();return es((uWb(),tWb),a)} +function TXb(a){RXb();return es((WXb(),VXb),a)} +function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} +function l0b(a){j0b();return es((o0b(),n0b),a)} +function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function mKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BZb(a,b,c){this.b=a;this.a=b;this.c=c} +function TNb(a,b,c){this.a=a;this.b=b;this.c=c} +function uOb(a,b,c){this.a=a;this.b=b;this.c=c} +function S3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} +function n9b(a,b,c){this.b=a;this.a=b;this.c=c} +function x$b(a,b,c){this.e=b;this.b=a;this.d=c} +function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} +function LGb(a){var b;b=new KGb;b.e=a;return b} +function iLb(a){var b;b=new fLb;b.b=a;return b} +function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} +function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} +function jbc(a){gbc();return es((mbc(),lbc),a)} +function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} +function Clc(a){Alc();return es((Flc(),Elc),a)} +function Cpc(a){Apc();return es((Fpc(),Epc),a)} +function Kpc(a){Ipc();return es((Npc(),Mpc),a)} +function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} +function $jc(a){Xjc();return es((bkc(),akc),a)} +function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} +function dqc(a){bqc();return es((gqc(),fqc),a)} +function rqc(a){mqc();return es((uqc(),tqc),a)} +function zqc(a){xqc();return es((Cqc(),Bqc),a)} +function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} +function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} +function brc(a){_qc();return es((erc(),drc),a)} +function nrc(a){lrc();return es((qrc(),prc),a)} +function Arc(a){yrc();return es((Drc(),Crc),a)} +function Qrc(a){Orc();return es((Trc(),Src),a)} +function Zrc(a){Xrc();return es((asc(),_rc),a)} +function gsc(a){esc();return es((jsc(),isc),a)} +function osc(a){msc();return es((rsc(),qsc),a)} +function Etc(a){Ctc();return es((Htc(),Gtc),a)} +function qzc(a){lzc();return es((tzc(),szc),a)} +function Azc(a){xzc();return es((Dzc(),Czc),a)} +function Mzc(a){Izc();return es((Pzc(),Ozc),a)} +function MAc(a){KAc();return es((PAc(),OAc),a)} +function mAc(a){kAc();return es((pAc(),oAc),a)} +function vAc(a){tAc();return es((yAc(),xAc),a)} +function DAc(a){BAc();return es((GAc(),FAc),a)} +function VAc(a){TAc();return es((YAc(),XAc),a)} +function $zc(a){Vzc();return es((bAc(),aAc),a)} +function bBc(a){_Ac();return es((eBc(),dBc),a)} +function vBc(a){tBc();return es((yBc(),xBc),a)} +function EBc(a){CBc();return es((HBc(),GBc),a)} +function NBc(a){LBc();return es((QBc(),PBc),a)} +function tGc(a){rGc();return es((wGc(),vGc),a)} +function WIc(a){UIc();return es((ZIc(),YIc),a)} +function $Lc(a){YLc();return es((bMc(),aMc),a)} +function gMc(a){eMc();return es((jMc(),iMc),a)} +function JOc(a){HOc();return es((MOc(),LOc),a)} +function HQc(a){FQc();return es((KQc(),JQc),a)} +function DRc(a){yRc();return es((GRc(),FRc),a)} +function tSc(a){qSc();return es((wSc(),vSc),a)} +function UTc(a){STc();return es((XTc(),WTc),a)} +function UUc(a){PUc();return es((XUc(),WUc),a)} +function aUc(a){$Tc();return es((dUc(),cUc),a)} +function wVc(a){tVc();return es((zVc(),yVc),a)} +function iWc(a){fWc();return es((lWc(),kWc),a)} +function sWc(a){pWc();return es((vWc(),uWc),a)} +function lXc(a){iXc();return es((oXc(),nXc),a)} +function vXc(a){sXc();return es((yXc(),xXc),a)} +function BYc(a){zYc();return es((EYc(),DYc),a)} +function m$c(a){k$c();return es((p$c(),o$c),a)} +function $$c(a){Y$c();return es((b_c(),a_c),a)} +function n_c(a){i_c();return es((q_c(),p_c),a)} +function w_c(a){s_c();return es((z_c(),y_c),a)} +function E_c(a){C_c();return es((H_c(),G_c),a)} +function P_c(a){N_c();return es((S_c(),R_c),a)} +function W0c(a){R0c();return es((Z0c(),Y0c),a)} +function f1c(a){a1c();return es((i1c(),h1c),a)} +function P5c(a){N5c();return es((S5c(),R5c),a)} +function b6c(a){_5c();return es((e6c(),d6c),a)} +function H7c(a){F7c();return es((K7c(),J7c),a)} +function k8c(a){i8c();return es((n8c(),m8c),a)} +function V8b(a){S8b();return es((Y8b(),X8b),a)} +function A5b(a){y5b();return es((D5b(),C5b),a)} +function jad(a){ead();return es((mad(),lad),a)} +function sad(a){qad();return es((vad(),uad),a)} +function Cad(a){Aad();return es((Fad(),Ead),a)} +function Oad(a){Mad();return es((Rad(),Qad),a)} +function jbd(a){hbd();return es((mbd(),lbd),a)} +function ubd(a){rbd();return es((xbd(),wbd),a)} +function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} +function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} +function hcd(a){dcd();return es((kcd(),jcd),a)} +function vcd(a){rcd();return es((ycd(),xcd),a)} +function vdd(a){tdd();return es((ydd(),xdd),a)} +function Kdd(a){Idd();return es((Ndd(),Mdd),a)} +function $cd(a){Ucd();return es((cdd(),bdd),a)} +function Fed(a){Ded();return es((Ied(),Hed),a)} +function rgd(a){pgd();return es((ugd(),tgd),a)} +function Esd(a){Csd();return es((Hsd(),Gsd),a)} +function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} +function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function bPc(a,b){this.c=a;this.a=b;this.b=b-a} +function nYc(a,b,c){this.a=a;this.b=b;this.c=c} +function L1c(a,b,c){this.a=a;this.b=b;this.c=c} +function T1c(a,b,c){this.a=a;this.b=b;this.c=c} +function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} +function zCd(a,b,c){this.a=a;this.b=b;this.c=c} +function IVd(a,b,c){this.e=a;this.a=b;this.c=c} +function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} +function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} +function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} +function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function BD(a,b){CCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Rkb;fr(b,a);return b} +function Ex(a){var b;b=new Tqb;fr(b,a);return b} +function Hx(a){var b;b=new Gxb;Jq(b,a);return b} +function Ru(a){var b;b=new Psb;Jq(b,a);return b} +function YEc(a){!a.e&&(a.e=new Rkb);return a.e} +function SMd(a){!a.c&&(a.c=new xYd);return a.c} +function Ekb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function pzb(){this.a=';,;';this.b='';this.c=''} +function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} +function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} +function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} +function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} +function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} +function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} +function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} +function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} +function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} +function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} +function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} +function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} +function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} +function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} +function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} +function rCb(a,b){if(!a){throw vbb(new ucb(b))}} +function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} +function dWb(a,b,c){cWb.call(this,a,b);this.b=c} +function pMd(a,b,c){MLd.call(this,a,b);this.c=c} +function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} +function _Gd(a){$Gd();MGd.call(this);this.th(a)} +function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function k2d(a,b,c){MLd.call(this,a,b);this.c=c} +function y1d(){T0d();z1d.call(this,(yFd(),xFd))} +function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} +function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} +function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function WUd(a,b){var c;c=a.c;VUd(a,b);return c} +function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} +function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} +function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function vvb(a,b){qvb.call(this,b,1040);this.a=a} +function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} +function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} +function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} +function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} +function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function zfe(a){wfe();++vfe;return new ige(0,a)} +function o_b(a){if(a.a){return a.a}return JZb(a)} +function CCb(a){if(!a){throw vbb(new Cdb(null))}} +function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} +function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} +function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} +function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} +function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} +function Bic(a,b){return a.c=b){throw vbb(new rcb)}} +function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} +function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} +function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} +function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} +function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} +function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} +function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} +function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} +function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} +function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} +function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} +function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} +function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} +function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} +function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} +function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} +function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} +function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} +function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} +function x0d(a){Wud.call(this,a,false);this.a=false} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} +function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} +function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} +function nfb(a,b){return dfb(a.substr(0,b.length),b)} +function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} +function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} +function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} +function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function xJc(a){var b;b=a;while(b.f){b=b.f}return b} +function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} +function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} +function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} +function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} +function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} +function Olb(a,b){return avb(b,a.length),new vvb(a,b)} +function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} +function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} +function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} +function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Flb(a,b,c){var d;for(d=0;d=a.g} +function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} +function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function gCb(a,b){var c;c=console[a];c.call(console,b)} +function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} +function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} +function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} +function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} +function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} +function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} +function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} +function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} +function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} +function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} +function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} +function uCb(a){if(a==null){throw vbb(new Geb)}return a} +function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} +function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} +function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} +function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} +function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} +function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} +function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} +function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} +function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} +function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} +function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} +function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} +function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} +function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} +function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} +function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} +function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} +function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} +function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} +function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} +function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} +function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} +function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} +function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} +function vfb(a){return String.fromCharCode.apply(null,a)} +function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} +function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} +function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} +function ix(a,b){ex();return new gx(new il(a),new Uk(b))} +function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} +function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} +function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} +function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} +function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} +function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} +function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} +function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} +function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} +function JZb(a){var b;b=P2b(a);if(b){return b}return null} +function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} +function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} +function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} +function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} +function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} +function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} +function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} +function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} +function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} +function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} +function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} +function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} +function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} +function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} +function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} +function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} +function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} +function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} +function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} +function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} +function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} +function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} +function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} +function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} +function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} +function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} +function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} +function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} +function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} +function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} +function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} +function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} +function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} +function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} +function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} +function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} +function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} +function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} +function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} +function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} +function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} +function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} +function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} +function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} +function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} +function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} +function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} +function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} +function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} +function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} +function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} +function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} +function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} +function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} +function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} +function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} +function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} +function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} +function ecb(a){function b(){} +;b.prototype=a||{};return new b} +function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} +function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} +function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} +function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} +function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} +function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} +function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} +function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} +function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} +function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} +function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} +function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} +function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} +function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} +function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} +function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} +function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} +function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} +function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} +function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} +function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} +function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} +function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} +function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} +function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} +function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} +function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} +function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} +function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} +function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} +function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} +function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} +function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} +function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} +function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} +function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} +function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} +function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} +function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} +function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} +function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} +function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} +function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} +function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} +function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} +function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} +function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} +function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} +function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} +function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} +function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} +function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} +function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} +function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} +function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} +function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} +function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} +function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} +function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} +function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} +function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} +function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} +function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} +function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} +function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} +function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} +function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} +function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} +function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} +function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} +function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} +function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} +function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} +function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} +function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} +function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} +function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} +function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} +function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} +function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} +function mlb(a){sCb(a.ad?1:0} +function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} +function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} +function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} +function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} +function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} +function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} +function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} +function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} +function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} +function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} +function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} +function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} +function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} +function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} +function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} +function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} +function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} +function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} +function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} +function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} +function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} +function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} +function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} +function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} +function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} +function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} +function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} +function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} +function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} +function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} +function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} +function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} +function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} +function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} +function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} +function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} +function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} +function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} +function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} +function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} +function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} +function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} +function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} +function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} +function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} +function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} +function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} +function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} +function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} +function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} +function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} +function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} +function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} +function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} +function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} +function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} +function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} +function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} +function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} +function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} +function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} +function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} +function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} +function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} +function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} +function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} +function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} +function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} +function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} +function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} +function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} +function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} +function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} +function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} +function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} +function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} +function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} +function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} +function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} +function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} +function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} +function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} +function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} +function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} +function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} +function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} +function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} +function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} +function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} +function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} +function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} +function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} +function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} +function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} +function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} +function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} +function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} +function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} +function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} +function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} +function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} +function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} +function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} +function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} +function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} +function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} +function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} +function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} +function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} +function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} +function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} +function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} +function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} +function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} +function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} +function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} +function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} +function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} +function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} +function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} +function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} +function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} +function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} +function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} +function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} +function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} +function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} +function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} +function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} +function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} +function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} +function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} +function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} +function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} +function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} +function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} +function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} +function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} +function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} +function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} +function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} +function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} +function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} +function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} +function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} +function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} +function ODc(a,b){if(a.pb.p){return -1}return 0} +function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} +function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} +function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} +function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} +function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} +function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} +function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} +function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} +function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} +function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} +function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} +function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} +function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} +function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} +function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} +function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} +function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} +function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} +function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} +function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} +function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} +function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} +function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} +function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} +function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} +function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} +function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} +function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} +function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} +function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} +function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} +function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} +function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} +function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} +function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} +function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} +function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} +function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} +function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} +function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} +function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} +function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} +function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} +function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} +function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} +function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} +function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} +function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} +function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} +function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} +function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} +function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} +function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} +function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} +function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} +function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} +function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} +function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} +function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} +function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} +function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} +function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} +function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} +function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} +function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} +function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} +function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} +function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} +function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} +function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} +function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} +function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} +function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} +function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} +function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} +function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} +function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} +function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} +function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} +function uA(a,b){while(b[0]=0){++b[0]}} +function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} +function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} +function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} +function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} +function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} +function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} +function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} +function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} +function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} +function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} +function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} +function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} +function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} +function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} +function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} +function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} +function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} +function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} +function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} +function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} +function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} +function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} +function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} +function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} +function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} +function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} +function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} +function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} +function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} +function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} +function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} +function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} +function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} +function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} +function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} +function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} +function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} +function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} +function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} +function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} +function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} +function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} +function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} +function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} +function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} +function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} +function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} +function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} +function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} +function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} +function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} +function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} +function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} +function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} +function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} +function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} +function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} +function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} +function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} +function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} +function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} +function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} +function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} +function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} +function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} +function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} +function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} +function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} +function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} +function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} +function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} +function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} +function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} +function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} +function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} +function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} +function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} +function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} +function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} +function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} +function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} +function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} +function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} +function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} +function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} +function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} +function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} +function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} +function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} +function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} +function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} +function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} +function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} +function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} +function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} +function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} +function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} +function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} +function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} +function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} +function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} +function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} +function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} +function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} +function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} +function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} +function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} +function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} +function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} +function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} +function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} +function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} +function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} +function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} +function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} +function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} +function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} +function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} +function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} +function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} +function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} +function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} +function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} +function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} +function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} +function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} +function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} +function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} +function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} +function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} +function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} +function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} +function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} +function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} +function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} +function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} +function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} +function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} +function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} +function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} +function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} +function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} +function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} +function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} +function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} +function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} +function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} +function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} +function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} +function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} +function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} +function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} +function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} +function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} +function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} +function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} +function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} +function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} +function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} +function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} +function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} +function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} +function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} +function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} +function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} +function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} +function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} +function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} +function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} +function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} +function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} +function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} +function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} +function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} +function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} +function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} +function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} +function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} +function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} +function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} +function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} +function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} +function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} +function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} +function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} +function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} +function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} +function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} +function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} +function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} +function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} +function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} +function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} +function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} +function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} +function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} +function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} +function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} +function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} +function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} +function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} +function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} +function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} +function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} +function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} +function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} +function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} +function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} +function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} +function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} +function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} +function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} +function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} +function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} +function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} +function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} +function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} +function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} +function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} +function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} +function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} +function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} +function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} +function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} +function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} +function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} +function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} +function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} +function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} +function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} +function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} +function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} +function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} +function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} +function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} +function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} +function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} +function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} +function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} +function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} +function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} +function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} +function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} +function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} +function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} +function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} +function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} +function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} +function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} +function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} +function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} +function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} +function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} +function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} +function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} +function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} +function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} +function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} +function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} +function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} +function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} +function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} +function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} +function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} +function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} +function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} +function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} +function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} +function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} +function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} +function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} +function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} +function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} +function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} +function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} +function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} +function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} +function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} +function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} +function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} +function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} +function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} +function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} +function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} +function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} +function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} +function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} +function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} +function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} +function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} +function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} +function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} +function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} +function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} +function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} +function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} +function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} +function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} +function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} +function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} +function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} +function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} +function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} +function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} +function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} +function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} +function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} +function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} +function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} +function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} +function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} +function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} +function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} +function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} +function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} +function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} +function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} +function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} +function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} +function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} +function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} +function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} +function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} +function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} +function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} +function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} +function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} +function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} +function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} +function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} +function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} +function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} +function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} +function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} +function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} +function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} +function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} +function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} +function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} +function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} +function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} +function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} +function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} +function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} +function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} +function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} +function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} +function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} +function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} +function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} +function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} +function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} +function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} +function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} +function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} +function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} +function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} +function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} +function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} +function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} +function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} +function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} +function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} +function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} +function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} +function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} +function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} +function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} +function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} +function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} +function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} +function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} +function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} +function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} +function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} +function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} +function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} +function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} +function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} +function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} +function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} +function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} +function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} +function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} +function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} +function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} +function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} +function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} +function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} +function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} +function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} +function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} +function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} +function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} +function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} +function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} +function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} +function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} +function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} +function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} +function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} +function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} +function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} +function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} +function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} +function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} +function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} +function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} +function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} +function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} +function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} +function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} +function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} +function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} +function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} +function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} +function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} +function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} +function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} +function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} +function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} +function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} +function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} +function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} +function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} +function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} +function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} +function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} +function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} +function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} +function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} +function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} +function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} +function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} +function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} +function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} +function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} +function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} +function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} +function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} +function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} +function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} +function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} +function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} +function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} +function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} +function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} +function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} +function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} +function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} +function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} +function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} +function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} +function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} +function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} +function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} +function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} +function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} +function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} +function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} +function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} +function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} +function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} +function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} +function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} +function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} +function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} +function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} +function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} +function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} +function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} +function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} +function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} +function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} +function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} +function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} +function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} +function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} +function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} +function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} +function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} +function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} +function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} +function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} +function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} +function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} +function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} +function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} +function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} +function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} +function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} +function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} +function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} +function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} +function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} +function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} +function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} +function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} +function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} +function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} +function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} +function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} +function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} +function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} +function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} +function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} +function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} +function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} +function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} +function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} +function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} +function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} +function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} +function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} +function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} +function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} +function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} +function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} +function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} +function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} +function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} +function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} +function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} +function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} +function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} +function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} +function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} +function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} +function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} +function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} +function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} +function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} +function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} +function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} +function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} +function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} +function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} +function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} +function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} +function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} +function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} +function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} +function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} +function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} +function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} +function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} +function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} +function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} +function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} +function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} +function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} +function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} +function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} +function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} +function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} +function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} +function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} +function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} +function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} +function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} +function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} +function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} +function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} +function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} +function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} +function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} +function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} +function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} +function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} +function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} +function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} +function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} +function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} +function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} +function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} +function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} +function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} +function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} +function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} +function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} +function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} +function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} +function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} +function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} +function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} +function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} +function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} +function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} +function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} +function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} +function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} +function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} +function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} +function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} +function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} +function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} +function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} +function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} +function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} +function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} +function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} +function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} +function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} +function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} +function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} +function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} +function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} +function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} +function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} +function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} +function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} +function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} +function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} +function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} +function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} +function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} +function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} +function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} +function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} +function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} +function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} +function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} +function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} +function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} +function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} +function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} +function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} +function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} +function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} +function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} +function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} +function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} +function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} +function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} +function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} +function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} +function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} +function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} +function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} +function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} +function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} +function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} +function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} +function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} +function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} +function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} +function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} +function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} +function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} +function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} +function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} +function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} +function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} +function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} +function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} +function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} +function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} +function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} +function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} +function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} +function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} +function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} +function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} +function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} +function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} +function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} +function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} +function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} +function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} +function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} +function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} +function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} +function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} +function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} +function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} +function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} +function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} +function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} +function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} +function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} +function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} +function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} +function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} +function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} +function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} +function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} +function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} +function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} +function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} +function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} +function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} +function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} +function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} +function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} +function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} +function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} +function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} +function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} +function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} +function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} +function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} +function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); diff --git a/gen/local/elkjs/lib/elk.bundled.d.ts b/gen/local/elkjs/lib/elk.bundled.d.ts new file mode 100644 index 00000000..780a5cfd --- /dev/null +++ b/gen/local/elkjs/lib/elk.bundled.d.ts @@ -0,0 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export * from "./elk-api"; +import ElkConstructor from "./elk-api"; +export default ElkConstructor; diff --git a/gen/local/elkjs/lib/elk.bundled.js b/gen/local/elkjs/lib/elk.bundled.js new file mode 100644 index 00000000..5973d0aa --- /dev/null +++ b/gen/local/elkjs/lib/elk.bundled.js @@ -0,0 +1,6444 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +(function (global){(function (){ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function Ylb(){} +function Ymb(){} +function xmb(){} +function Fmb(){} +function Qmb(){} +function gcb(){} +function ccb(){} +function jcb(){} +function jtb(){} +function otb(){} +function qtb(){} +function _fb(){} +function bpb(){} +function kpb(){} +function ppb(){} +function Gpb(){} +function drb(){} +function dzb(){} +function fzb(){} +function fxb(){} +function Vxb(){} +function Ovb(){} +function byb(){} +function zyb(){} +function Zyb(){} +function _yb(){} +function hzb(){} +function jzb(){} +function lzb(){} +function nzb(){} +function rzb(){} +function zzb(){} +function Czb(){} +function Ezb(){} +function Gzb(){} +function Izb(){} +function Mzb(){} +function bBb(){} +function NBb(){} +function PBb(){} +function RBb(){} +function iCb(){} +function OCb(){} +function SCb(){} +function GDb(){} +function JDb(){} +function fEb(){} +function xEb(){} +function CEb(){} +function GEb(){} +function yFb(){} +function KGb(){} +function tIb(){} +function vIb(){} +function xIb(){} +function zIb(){} +function OIb(){} +function SIb(){} +function TJb(){} +function VJb(){} +function XJb(){} +function XKb(){} +function fKb(){} +function VKb(){} +function VLb(){} +function jLb(){} +function nLb(){} +function GLb(){} +function KLb(){} +function MLb(){} +function OLb(){} +function RLb(){} +function YLb(){} +function bMb(){} +function gMb(){} +function lMb(){} +function pMb(){} +function wMb(){} +function zMb(){} +function CMb(){} +function FMb(){} +function LMb(){} +function zNb(){} +function PNb(){} +function kOb(){} +function pOb(){} +function tOb(){} +function yOb(){} +function FOb(){} +function GPb(){} +function aQb(){} +function cQb(){} +function eQb(){} +function gQb(){} +function iQb(){} +function CQb(){} +function MQb(){} +function OQb(){} +function ASb(){} +function fTb(){} +function kTb(){} +function STb(){} +function fUb(){} +function DUb(){} +function VUb(){} +function YUb(){} +function _Ub(){} +function _Wb(){} +function QWb(){} +function XWb(){} +function jVb(){} +function DVb(){} +function VVb(){} +function $Vb(){} +function dXb(){} +function hXb(){} +function lXb(){} +function gYb(){} +function HYb(){} +function SYb(){} +function VYb(){} +function dZb(){} +function P$b(){} +function T$b(){} +function h1b(){} +function m1b(){} +function q1b(){} +function u1b(){} +function y1b(){} +function C1b(){} +function e2b(){} +function g2b(){} +function m2b(){} +function q2b(){} +function u2b(){} +function S2b(){} +function U2b(){} +function W2b(){} +function _2b(){} +function e3b(){} +function h3b(){} +function p3b(){} +function t3b(){} +function w3b(){} +function y3b(){} +function A3b(){} +function M3b(){} +function Q3b(){} +function U3b(){} +function Y3b(){} +function l4b(){} +function q4b(){} +function s4b(){} +function u4b(){} +function w4b(){} +function y4b(){} +function L4b(){} +function N4b(){} +function P4b(){} +function R4b(){} +function T4b(){} +function X4b(){} +function I5b(){} +function Q5b(){} +function T5b(){} +function Z5b(){} +function l6b(){} +function o6b(){} +function t6b(){} +function z6b(){} +function L6b(){} +function M6b(){} +function P6b(){} +function X6b(){} +function $6b(){} +function a7b(){} +function c7b(){} +function g7b(){} +function j7b(){} +function m7b(){} +function r7b(){} +function x7b(){} +function D7b(){} +function D9b(){} +function b9b(){} +function h9b(){} +function j9b(){} +function l9b(){} +function w9b(){} +function F9b(){} +function hac(){} +function jac(){} +function pac(){} +function uac(){} +function Iac(){} +function Kac(){} +function Sac(){} +function obc(){} +function rbc(){} +function vbc(){} +function Fbc(){} +function Jbc(){} +function Xbc(){} +function ccc(){} +function fcc(){} +function lcc(){} +function occ(){} +function tcc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ecc(){} +function Gcc(){} +function Zcc(){} +function _cc(){} +function bdc(){} +function fdc(){} +function jdc(){} +function pdc(){} +function sdc(){} +function ydc(){} +function Adc(){} +function Cdc(){} +function Edc(){} +function Idc(){} +function Ndc(){} +function Qdc(){} +function Sdc(){} +function Udc(){} +function Wdc(){} +function Ydc(){} +function aec(){} +function hec(){} +function jec(){} +function lec(){} +function nec(){} +function uec(){} +function wec(){} +function yec(){} +function Aec(){} +function Fec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Rec(){} +function Uec(){} +function Zec(){} +function Zfc(){} +function lfc(){} +function tfc(){} +function xfc(){} +function zfc(){} +function Ffc(){} +function Jfc(){} +function Nfc(){} +function Pfc(){} +function Vfc(){} +function _fc(){} +function fgc(){} +function jgc(){} +function lgc(){} +function Bgc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function khc(){} +function mhc(){} +function ohc(){} +function qhc(){} +function yhc(){} +function Ahc(){} +function Ghc(){} +function Ihc(){} +function Khc(){} +function Mhc(){} +function Shc(){} +function Uhc(){} +function Whc(){} +function dic(){} +function dlc(){} +function blc(){} +function flc(){} +function hlc(){} +function jlc(){} +function Glc(){} +function Ilc(){} +function Klc(){} +function Mlc(){} +function Mjc(){} +function Qjc(){} +function Qlc(){} +function Ulc(){} +function Ylc(){} +function Lkc(){} +function Nkc(){} +function Pkc(){} +function Rkc(){} +function Xkc(){} +function _kc(){} +function gmc(){} +function kmc(){} +function zmc(){} +function Fmc(){} +function Wmc(){} +function $mc(){} +function anc(){} +function mnc(){} +function wnc(){} +function Hnc(){} +function Jnc(){} +function Lnc(){} +function Nnc(){} +function Pnc(){} +function Ync(){} +function eoc(){} +function Aoc(){} +function Coc(){} +function Eoc(){} +function Joc(){} +function Loc(){} +function Zoc(){} +function _oc(){} +function bpc(){} +function hpc(){} +function kpc(){} +function ppc(){} +function pFc(){} +function Ryc(){} +function QCc(){} +function PDc(){} +function xGc(){} +function HGc(){} +function JGc(){} +function NGc(){} +function GIc(){} +function iKc(){} +function mKc(){} +function wKc(){} +function yKc(){} +function AKc(){} +function EKc(){} +function KKc(){} +function OKc(){} +function QKc(){} +function SKc(){} +function UKc(){} +function YKc(){} +function aLc(){} +function fLc(){} +function hLc(){} +function nLc(){} +function pLc(){} +function tLc(){} +function vLc(){} +function zLc(){} +function BLc(){} +function DLc(){} +function FLc(){} +function sMc(){} +function JMc(){} +function hNc(){} +function RNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function fOc(){} +function hOc(){} +function hRc(){} +function jRc(){} +function KRc(){} +function NRc(){} +function NQc(){} +function LQc(){} +function _Qc(){} +function cPc(){} +function iPc(){} +function kPc(){} +function mPc(){} +function xPc(){} +function zPc(){} +function zSc(){} +function BSc(){} +function GSc(){} +function ISc(){} +function NSc(){} +function TSc(){} +function NTc(){} +function NVc(){} +function oVc(){} +function SVc(){} +function VVc(){} +function XVc(){} +function ZVc(){} +function bWc(){} +function bXc(){} +function CXc(){} +function FXc(){} +function IXc(){} +function MXc(){} +function UXc(){} +function bYc(){} +function fYc(){} +function oYc(){} +function qYc(){} +function uYc(){} +function pZc(){} +function G$c(){} +function h0c(){} +function N0c(){} +function k1c(){} +function I1c(){} +function Q1c(){} +function f2c(){} +function i2c(){} +function k2c(){} +function w2c(){} +function O2c(){} +function S2c(){} +function Z2c(){} +function v3c(){} +function x3c(){} +function R3c(){} +function U3c(){} +function e4c(){} +function w4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function _7c(){} +function b5c(){} +function d5c(){} +function f5c(){} +function h5c(){} +function H5c(){} +function Hfd(){} +function Zfd(){} +function Zed(){} +function ged(){} +function Jed(){} +function Ned(){} +function Red(){} +function Ved(){} +function bbd(){} +function mdd(){} +function _fd(){} +function fgd(){} +function kgd(){} +function Mgd(){} +function Ahd(){} +function Ald(){} +function Tld(){} +function xkd(){} +function rmd(){} +function knd(){} +function Jod(){} +function JCd(){} +function Bpd(){} +function BFd(){} +function oFd(){} +function bqd(){} +function bvd(){} +function jvd(){} +function yud(){} +function Hxd(){} +function EBd(){} +function aDd(){} +function MGd(){} +function vHd(){} +function RHd(){} +function wNd(){} +function zNd(){} +function CNd(){} +function KNd(){} +function XNd(){} +function $Nd(){} +function HPd(){} +function lUd(){} +function XUd(){} +function DWd(){} +function GWd(){} +function JWd(){} +function MWd(){} +function PWd(){} +function SWd(){} +function VWd(){} +function YWd(){} +function _Wd(){} +function xYd(){} +function BYd(){} +function mZd(){} +function EZd(){} +function GZd(){} +function JZd(){} +function MZd(){} +function PZd(){} +function SZd(){} +function VZd(){} +function YZd(){} +function _Zd(){} +function c$d(){} +function f$d(){} +function i$d(){} +function l$d(){} +function o$d(){} +function r$d(){} +function u$d(){} +function x$d(){} +function A$d(){} +function D$d(){} +function G$d(){} +function J$d(){} +function M$d(){} +function P$d(){} +function S$d(){} +function V$d(){} +function Y$d(){} +function _$d(){} +function c_d(){} +function f_d(){} +function i_d(){} +function l_d(){} +function o_d(){} +function r_d(){} +function u_d(){} +function x_d(){} +function A_d(){} +function D_d(){} +function G_d(){} +function J_d(){} +function M_d(){} +function P_d(){} +function S_d(){} +function V_d(){} +function Y_d(){} +function h5d(){} +function U6d(){} +function U9d(){} +function _8d(){} +function fae(){} +function hae(){} +function kae(){} +function nae(){} +function qae(){} +function tae(){} +function wae(){} +function zae(){} +function Cae(){} +function Fae(){} +function Iae(){} +function Lae(){} +function Oae(){} +function Rae(){} +function Uae(){} +function Xae(){} +function $ae(){} +function bbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function ude(){} +function Vge(){} +function dhe(){} +function s_b(a){} +function jSd(a){} +function ol(){wb()} +function oPb(){nPb()} +function EPb(){CPb()} +function gFb(){fFb()} +function TRb(){SRb()} +function ySb(){wSb()} +function PSb(){OSb()} +function dTb(){bTb()} +function i4b(){b4b()} +function D2b(){x2b()} +function J6b(){D6b()} +function u9b(){q9b()} +function $9b(){I9b()} +function Umc(){Imc()} +function abc(){Vac()} +function ZCc(){VCc()} +function kCc(){hCc()} +function rCc(){oCc()} +function Tcc(){Occ()} +function xkc(){gkc()} +function xDc(){rDc()} +function iDc(){cDc()} +function kwc(){jwc()} +function tJc(){jJc()} +function dJc(){aJc()} +function Pyc(){Nyc()} +function VBc(){SBc()} +function CFc(){yFc()} +function CUc(){wUc()} +function lUc(){fUc()} +function sUc(){pUc()} +function IUc(){GUc()} +function IWc(){HWc()} +function _Wc(){ZWc()} +function fHc(){dHc()} +function f0c(){d0c()} +function B0c(){A0c()} +function L0c(){J0c()} +function LTc(){JTc()} +function sTc(){rTc()} +function KLc(){ILc()} +function wNc(){tNc()} +function PYc(){OYc()} +function nZc(){lZc()} +function q3c(){p3c()} +function Z7c(){X7c()} +function Z9c(){Y9c()} +function _ad(){Zad()} +function kdd(){idd()} +function $md(){Smd()} +function HGd(){tGd()} +function hLd(){NKd()} +function J6d(){Uge()} +function Mvb(a){uCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function MBb(a,b){a.a=b} +function w_b(a,b){a.a=b} +function x_b(a,b){a.b=b} +function YOb(a,b){a.b=b} +function $Ob(a,b){a.b=b} +function ZGb(a,b){a.j=b} +function qNb(a,b){a.g=b} +function rNb(a,b){a.i=b} +function dRb(a,b){a.c=b} +function eRb(a,b){a.d=b} +function z_b(a,b){a.d=b} +function y_b(a,b){a.c=b} +function __b(a,b){a.k=b} +function E0b(a,b){a.c=b} +function njc(a,b){a.c=b} +function mjc(a,b){a.a=b} +function dFc(a,b){a.a=b} +function eFc(a,b){a.f=b} +function nOc(a,b){a.a=b} +function oOc(a,b){a.b=b} +function pOc(a,b){a.d=b} +function qOc(a,b){a.i=b} +function rOc(a,b){a.o=b} +function sOc(a,b){a.r=b} +function $Pc(a,b){a.a=b} +function _Pc(a,b){a.b=b} +function DVc(a,b){a.e=b} +function EVc(a,b){a.f=b} +function FVc(a,b){a.g=b} +function SZc(a,b){a.e=b} +function TZc(a,b){a.f=b} +function c$c(a,b){a.f=b} +function bJd(a,b){a.n=b} +function A1d(a,b){a.a=b} +function J1d(a,b){a.a=b} +function B1d(a,b){a.c=b} +function K1d(a,b){a.c=b} +function L1d(a,b){a.d=b} +function M1d(a,b){a.e=b} +function N1d(a,b){a.g=b} +function d2d(a,b){a.a=b} +function e2d(a,b){a.c=b} +function f2d(a,b){a.d=b} +function g2d(a,b){a.e=b} +function h2d(a,b){a.f=b} +function i2d(a,b){a.j=b} +function Z8d(a,b){a.a=b} +function $8d(a,b){a.b=b} +function g9d(a,b){a.a=b} +function Cic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function vib(a){this.d=a} +function eib(a){this.a=a} +function Pib(a){this.a=a} +function Vib(a){this.a=a} +function $ib(a){this.a=a} +function mcb(a){this.a=a} +function Mcb(a){this.a=a} +function Xcb(a){this.a=a} +function Ndb(a){this.a=a} +function _db(a){this.a=a} +function teb(a){this.a=a} +function Qeb(a){this.a=a} +function djb(a){this.a=a} +function Gjb(a){this.a=a} +function Njb(a){this.a=a} +function Bjb(a){this.b=a} +function lnb(a){this.b=a} +function Dnb(a){this.b=a} +function anb(a){this.a=a} +function Mob(a){this.a=a} +function Rob(a){this.a=a} +function iob(a){this.c=a} +function olb(a){this.c=a} +function qub(a){this.c=a} +function Tub(a){this.a=a} +function Vub(a){this.a=a} +function Xub(a){this.a=a} +function Zub(a){this.a=a} +function tpb(a){this.a=a} +function _pb(a){this.a=a} +function Wqb(a){this.a=a} +function nsb(a){this.a=a} +function Rxb(a){this.a=a} +function Txb(a){this.a=a} +function Xxb(a){this.a=a} +function bzb(a){this.a=a} +function tzb(a){this.a=a} +function vzb(a){this.a=a} +function xzb(a){this.a=a} +function Kzb(a){this.a=a} +function Ozb(a){this.a=a} +function iAb(a){this.a=a} +function kAb(a){this.a=a} +function mAb(a){this.a=a} +function BAb(a){this.a=a} +function hBb(a){this.a=a} +function jBb(a){this.a=a} +function nBb(a){this.a=a} +function TBb(a){this.a=a} +function XBb(a){this.a=a} +function QCb(a){this.a=a} +function WCb(a){this.a=a} +function _Cb(a){this.a=a} +function dEb(a){this.a=a} +function QGb(a){this.a=a} +function YGb(a){this.a=a} +function tKb(a){this.a=a} +function CLb(a){this.a=a} +function JMb(a){this.a=a} +function RNb(a){this.a=a} +function kQb(a){this.a=a} +function mQb(a){this.a=a} +function FQb(a){this.a=a} +function ETb(a){this.a=a} +function UTb(a){this.a=a} +function dUb(a){this.a=a} +function hUb(a){this.a=a} +function EZb(a){this.a=a} +function j$b(a){this.a=a} +function v$b(a){this.e=a} +function J0b(a){this.a=a} +function M0b(a){this.a=a} +function R0b(a){this.a=a} +function U0b(a){this.a=a} +function i2b(a){this.a=a} +function k2b(a){this.a=a} +function o2b(a){this.a=a} +function s2b(a){this.a=a} +function G2b(a){this.a=a} +function I2b(a){this.a=a} +function K2b(a){this.a=a} +function M2b(a){this.a=a} +function W3b(a){this.a=a} +function $3b(a){this.a=a} +function V4b(a){this.a=a} +function u5b(a){this.a=a} +function A7b(a){this.a=a} +function G7b(a){this.a=a} +function J7b(a){this.a=a} +function M7b(a){this.a=a} +function Mbc(a){this.a=a} +function Pbc(a){this.a=a} +function lac(a){this.a=a} +function nac(a){this.a=a} +function qcc(a){this.a=a} +function Gdc(a){this.a=a} +function $dc(a){this.a=a} +function cec(a){this.a=a} +function _ec(a){this.a=a} +function pfc(a){this.a=a} +function Bfc(a){this.a=a} +function Lfc(a){this.a=a} +function ygc(a){this.a=a} +function Dgc(a){this.a=a} +function shc(a){this.a=a} +function uhc(a){this.a=a} +function whc(a){this.a=a} +function Chc(a){this.a=a} +function Ehc(a){this.a=a} +function Ohc(a){this.a=a} +function Yhc(a){this.a=a} +function Tkc(a){this.a=a} +function Vkc(a){this.a=a} +function Olc(a){this.a=a} +function pnc(a){this.a=a} +function rnc(a){this.a=a} +function dpc(a){this.a=a} +function fpc(a){this.a=a} +function GCc(a){this.a=a} +function KCc(a){this.a=a} +function mDc(a){this.a=a} +function jEc(a){this.a=a} +function HEc(a){this.a=a} +function FEc(a){this.c=a} +function qoc(a){this.b=a} +function bFc(a){this.a=a} +function GFc(a){this.a=a} +function iGc(a){this.a=a} +function kGc(a){this.a=a} +function mGc(a){this.a=a} +function $Gc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function xIc(a){this.a=a} +function zIc(a){this.a=a} +function CIc(a){this.a=a} +function LIc(a){this.a=a} +function CKc(a){this.a=a} +function IKc(a){this.a=a} +function MKc(a){this.a=a} +function $Kc(a){this.a=a} +function cLc(a){this.a=a} +function jLc(a){this.a=a} +function rLc(a){this.a=a} +function xLc(a){this.a=a} +function OMc(a){this.a=a} +function ZOc(a){this.a=a} +function ZRc(a){this.a=a} +function aSc(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function M$c(a){this.a=a} +function O$c(a){this.a=a} +function U$c(a){this.a=a} +function n1c(a){this.a=a} +function z1c(a){this.a=a} +function B1c(a){this.a=a} +function Q2c(a){this.a=a} +function U2c(a){this.a=a} +function z3c(a){this.a=a} +function med(a){this.a=a} +function Xed(a){this.a=a} +function _ed(a){this.a=a} +function Qfd(a){this.a=a} +function Bgd(a){this.a=a} +function $gd(a){this.a=a} +function lrd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function yrd(a){this.a=a} +function zrd(a){this.a=a} +function Ard(a){this.a=a} +function Brd(a){this.a=a} +function Crd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Lrd(a){this.a=a} +function Mrd(a){this.a=a} +function Nrd(a){this.a=a} +function Prd(a){this.a=a} +function Srd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function _rd(a){this.a=a} +function asd(a){this.a=a} +function bsd(a){this.a=a} +function csd(a){this.a=a} +function dsd(a){this.a=a} +function msd(a){this.a=a} +function osd(a){this.a=a} +function qsd(a){this.a=a} +function ssd(a){this.a=a} +function Wsd(a){this.a=a} +function Lsd(a){this.b=a} +function thd(a){this.f=a} +function qtd(a){this.a=a} +function yBd(a){this.a=a} +function GBd(a){this.a=a} +function MBd(a){this.a=a} +function SBd(a){this.a=a} +function iCd(a){this.a=a} +function YMd(a){this.a=a} +function GNd(a){this.a=a} +function EPd(a){this.a=a} +function EQd(a){this.a=a} +function NTd(a){this.a=a} +function qOd(a){this.b=a} +function lVd(a){this.c=a} +function VVd(a){this.e=a} +function iYd(a){this.a=a} +function RYd(a){this.a=a} +function ZYd(a){this.a=a} +function z0d(a){this.a=a} +function O0d(a){this.a=a} +function s0d(a){this.d=a} +function W5d(a){this.a=a} +function cge(a){this.a=a} +function xfe(a){this.e=a} +function Tfd(){this.a=0} +function jkb(){Vjb(this)} +function Rkb(){Ckb(this)} +function Lqb(){Uhb(this)} +function lEb(){kEb(this)} +function A_b(){s_b(this)} +function UQd(){this.c=FQd} +function v6d(a,b){b.Wb(a)} +function moc(a,b){a.b+=b} +function yXb(a){a.b=new Ji} +function vbb(a){return a.e} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function wC(){return null} +function SB(){return null} +function hcb(){mvd();ovd()} +function zJb(a){a.b.tf(a.e)} +function j5b(a,b){a.b=b-a.b} +function g5b(a,b){a.a=b-a.a} +function PXc(a,b){b.ad(a.a)} +function plc(a,b){G0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function gz(){Xy.call(this)} +function xcb(){Xy.call(this)} +function pcb(){gz.call(this)} +function tcb(){gz.call(this)} +function Bdb(){gz.call(this)} +function Vdb(){gz.call(this)} +function Ydb(){gz.call(this)} +function Geb(){gz.call(this)} +function bgb(){gz.call(this)} +function Apb(){gz.call(this)} +function Jpb(){gz.call(this)} +function utb(){gz.call(this)} +function x2c(){gz.call(this)} +function rQd(){this.a=this} +function MPd(){this.Bb|=256} +function tTb(){this.b=new mt} +function fA(){fA=ccb;new Lqb} +function rcb(){pcb.call(this)} +function dCb(a,b){a.length=b} +function Tvb(a,b){Ekb(a.a,b)} +function sKb(a,b){UHb(a.c,b)} +function SMc(a,b){Qqb(a.b,b)} +function vBd(a,b){uAd(a.a,b)} +function wBd(a,b){vAd(a.a,b)} +function GLd(a,b){Uhd(a.e,b)} +function d7d(a){D2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Odb(a){this.a=Tdb(a)} +function Tqb(){this.a=new Lqb} +function gyb(){this.a=new Lqb} +function Wvb(){this.a=new Rkb} +function KFb(){this.a=new Rkb} +function PFb(){this.a=new Rkb} +function FFb(){this.a=new yFb} +function pGb(){this.a=new MFb} +function ZQb(){this.a=new MQb} +function Gxb(){this.a=new Pwb} +function jUb(){this.a=new PTb} +function sDb(){this.a=new oDb} +function zDb(){this.a=new tDb} +function CWb(){this.a=new Rkb} +function HXb(){this.a=new Rkb} +function nYb(){this.a=new Rkb} +function BYb(){this.a=new Rkb} +function fLb(){this.d=new Rkb} +function vYb(){this.a=new Tqb} +function a2b(){this.a=new Lqb} +function wZb(){this.b=new Lqb} +function TCc(){this.b=new Rkb} +function zJc(){this.e=new Rkb} +function uMc(){this.d=new Rkb} +function wdc(){this.a=new xkc} +function vKc(){Rkb.call(this)} +function twb(){Wvb.call(this)} +function oHb(){$Gb.call(this)} +function LXb(){HXb.call(this)} +function L_b(){H_b.call(this)} +function H_b(){A_b.call(this)} +function p0b(){A_b.call(this)} +function s0b(){p0b.call(this)} +function WMc(){VMc.call(this)} +function bNc(){VMc.call(this)} +function EPc(){CPc.call(this)} +function JPc(){CPc.call(this)} +function OPc(){CPc.call(this)} +function w1c(){s1c.call(this)} +function s7c(){Psb.call(this)} +function apd(){Ald.call(this)} +function ppd(){Ald.call(this)} +function lDd(){YCd.call(this)} +function NDd(){YCd.call(this)} +function mFd(){Lqb.call(this)} +function vFd(){Lqb.call(this)} +function GFd(){Lqb.call(this)} +function KPd(){Tqb.call(this)} +function OJd(){hJd.call(this)} +function aQd(){MPd.call(this)} +function SSd(){FId.call(this)} +function rUd(){FId.call(this)} +function oUd(){Lqb.call(this)} +function NYd(){Lqb.call(this)} +function cZd(){Lqb.call(this)} +function R8d(){MGd.call(this)} +function o9d(){MGd.call(this)} +function i9d(){R8d.call(this)} +function hee(){ude.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Zdd(){this.a=new Psb} +function CPc(){this.a=new Tqb} +function s1c(){this.a=new Lqb} +function QSc(){this.a=new Rkb} +function D2c(){this.j=new Rkb} +function QXc(){this.a=new UXc} +function e_c(){this.a=new d_c} +function YCd(){this.a=new aDd} +function _k(){_k=ccb;$k=new al} +function Lk(){Lk=ccb;Kk=new Mk} +function wb(){wb=ccb;vb=new xb} +function hs(){hs=ccb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Ftb(a){Atb();this.a=a} +function zwb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function LVb(a,b){a.a=b;NVb(a)} +function lIb(a,b,c){a.a[b.g]=c} +function vfd(a,b,c){Dfd(c,a,b)} +function Odc(a,b){rjc(b.i,a.n)} +function Wyc(a,b){Xyc(a).td(b)} +function ERb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ocb(a){hz.call(this,a)} +function qcb(a){hz.call(this,a)} +function ucb(a){hz.call(this,a)} +function vcb(a){Yy.call(this,a)} +function fGc(a){LFc();this.a=a} +function c0d(a){kzd();this.a=a} +function bhd(a){Rgd();this.f=a} +function dhd(a){Rgd();this.f=a} +function Cdb(a){hz.call(this,a)} +function Wdb(a){hz.call(this,a)} +function Zdb(a){hz.call(this,a)} +function Feb(a){hz.call(this,a)} +function Heb(a){hz.call(this,a)} +function Ccb(a){return uCb(a),a} +function Edb(a){return uCb(a),a} +function Gdb(a){return uCb(a),a} +function jfb(a){return uCb(a),a} +function tfb(a){return uCb(a),a} +function akb(a){return a.b==a.c} +function Hwb(a){return !!a&&a.b} +function pIb(a){return !!a&&a.k} +function qIb(a){return !!a&&a.j} +function amb(a){uCb(a);this.a=a} +function wVb(a){qVb(a);return a} +function Blb(a){Glb(a,a.length)} +function cgb(a){hz.call(this,a)} +function cqd(a){hz.call(this,a)} +function n8d(a){hz.call(this,a)} +function y2c(a){hz.call(this,a)} +function z2c(a){hz.call(this,a)} +function mde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Kz(){Kz=ccb;Jz=new Nz} +function jz(){jz=ccb;iz=new nb} +function KA(){KA=ccb;JA=new MA} +function OB(){OB=ccb;NB=new PB} +function jc(){throw vbb(new bgb)} +function zh(){throw vbb(new bgb)} +function Pi(){throw vbb(new bgb)} +function Pj(){throw vbb(new bgb)} +function Qj(){throw vbb(new bgb)} +function Ym(){throw vbb(new bgb)} +function Gb(){this.a=GD(Qb(She))} +function oy(a){Ql();this.a=Qb(a)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function iw(a,b){a.a.ec().Mc(b)} +function CYb(a,b,c){a.c.lf(b,c)} +function scb(a){qcb.call(this,a)} +function Oeb(a){Wdb.call(this,a)} +function Hfb(){mcb.call(this,'')} +function Ifb(){mcb.call(this,'')} +function Ufb(){mcb.call(this,'')} +function Vfb(){mcb.call(this,'')} +function Xfb(a){qcb.call(this,a)} +function zob(a){lnb.call(this,a)} +function Yob(a){Inb.call(this,a)} +function Gob(a){zob.call(this,a)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function Az(){Az=ccb;!!(Rz(),Qz)} +function wrb(){wrb=ccb;vrb=yrb()} +function Mtb(a){return a.a?a.b:0} +function Vtb(a){return a.a?a.b:0} +function Lcb(a,b){return a.a-b.a} +function Wcb(a,b){return a.a-b.a} +function Peb(a,b){return a.a-b.a} +function eCb(a,b){return PC(a,b)} +function GC(a,b){return rdb(a,b)} +function _B(b,a){return a in b.a} +function _Db(a,b){a.f=b;return a} +function ZDb(a,b){a.b=b;return a} +function $Db(a,b){a.c=b;return a} +function aEb(a,b){a.g=b;return a} +function HGb(a,b){a.a=b;return a} +function IGb(a,b){a.f=b;return a} +function JGb(a,b){a.k=b;return a} +function dLb(a,b){a.a=b;return a} +function eLb(a,b){a.e=b;return a} +function zVb(a,b){a.e=b;return a} +function AVb(a,b){a.f=b;return a} +function KOb(a,b){a.b=true;a.d=b} +function DHb(a,b){a.b=new g7c(b)} +function uvb(a,b,c){b.td(a.a[c])} +function zvb(a,b,c){b.we(a.a[c])} +function wJc(a,b){return a.b-b.b} +function kOc(a,b){return a.g-b.g} +function WQc(a,b){return a.s-b.s} +function Lic(a,b){return a?0:b-1} +function SFc(a,b){return a?0:b-1} +function RFc(a,b){return a?b-1:0} +function M2c(a,b){return b.Yf(a)} +function M3c(a,b){a.b=b;return a} +function L3c(a,b){a.a=b;return a} +function N3c(a,b){a.c=b;return a} +function O3c(a,b){a.d=b;return a} +function P3c(a,b){a.e=b;return a} +function Q3c(a,b){a.f=b;return a} +function b4c(a,b){a.a=b;return a} +function c4c(a,b){a.b=b;return a} +function d4c(a,b){a.c=b;return a} +function z5c(a,b){a.c=b;return a} +function y5c(a,b){a.b=b;return a} +function A5c(a,b){a.d=b;return a} +function B5c(a,b){a.e=b;return a} +function C5c(a,b){a.f=b;return a} +function D5c(a,b){a.g=b;return a} +function E5c(a,b){a.a=b;return a} +function F5c(a,b){a.i=b;return a} +function G5c(a,b){a.j=b;return a} +function Vdd(a,b){a.k=b;return a} +function Wdd(a,b){a.j=b;return a} +function ykc(a,b){gkc();F0b(b,a)} +function T$c(a,b,c){R$c(a.a,b,c)} +function RGc(a){cEc.call(this,a)} +function iHc(a){cEc.call(this,a)} +function t7c(a){Qsb.call(this,a)} +function aPb(a){_Ob.call(this,a)} +function Ixd(a){zud.call(this,a)} +function dCd(a){ZBd.call(this,a)} +function fCd(a){ZBd.call(this,a)} +function p_b(){q_b.call(this,'')} +function d7c(){this.a=0;this.b=0} +function aPc(){this.b=0;this.a=0} +function NJd(a,b){a.b=0;DId(a,b)} +function X1d(a,b){a.c=b;a.b=true} +function Oc(a,b){return a.c._b(b)} +function gdb(a){return a.e&&a.e()} +function Vd(a){return !a?null:a.d} +function sn(a,b){return Gv(a.b,b)} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function hdb(a){fdb(a);return a.o} +function Fhd(){Fhd=ccb;Ehd=ond()} +function Hhd(){Hhd=ccb;Ghd=Cod()} +function LFd(){LFd=ccb;KFd=qZd()} +function p8d(){p8d=ccb;o8d=Y9d()} +function r8d(){r8d=ccb;q8d=dae()} +function mvd(){mvd=ccb;lvd=n4c()} +function Srb(){throw vbb(new bgb)} +function enb(){throw vbb(new bgb)} +function fnb(){throw vbb(new bgb)} +function gnb(){throw vbb(new bgb)} +function jnb(){throw vbb(new bgb)} +function Cnb(){throw vbb(new bgb)} +function Uqb(a){this.a=new Mqb(a)} +function tgb(a){lgb();ngb(this,a)} +function Hxb(a){this.a=new Qwb(a)} +function _ub(a,b){while(a.ye(b));} +function Sub(a,b){while(a.sd(b));} +function Bfb(a,b){a.a+=b;return a} +function Cfb(a,b){a.a+=b;return a} +function Ffb(a,b){a.a+=b;return a} +function Lfb(a,b){a.a+=b;return a} +function WAb(a){Tzb(a);return a.a} +function Wsb(a){return a.b!=a.d.c} +function pD(a){return a.l|a.m<<22} +function aIc(a,b){return a.d[b.p]} +function h2c(a,b){return c2c(a,b)} +function cCb(a,b,c){a.splice(b,c)} +function WHb(a){a.c?VHb(a):XHb(a)} +function jVc(a){this.a=0;this.b=a} +function ZUc(){this.a=new L2c(K$)} +function tRc(){this.b=new L2c(h$)} +function Q$c(){this.b=new L2c(J_)} +function d_c(){this.b=new L2c(J_)} +function OCd(){throw vbb(new bgb)} +function PCd(){throw vbb(new bgb)} +function QCd(){throw vbb(new bgb)} +function RCd(){throw vbb(new bgb)} +function SCd(){throw vbb(new bgb)} +function TCd(){throw vbb(new bgb)} +function UCd(){throw vbb(new bgb)} +function VCd(){throw vbb(new bgb)} +function WCd(){throw vbb(new bgb)} +function XCd(){throw vbb(new bgb)} +function ahe(){throw vbb(new utb)} +function bhe(){throw vbb(new utb)} +function Rge(a){this.a=new ege(a)} +function ege(a){dge(this,a,Vee())} +function Fhe(a){return !a||Ehe(a)} +function dde(a){return $ce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Ybb(){Wbb==null&&(Wbb=[])} +function ONd(a,b){Rxd(ZKd(a.a),b)} +function TNd(a,b){Rxd(ZKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Zfb(){Zfb=ccb;Yfb=new jcb} +function Emb(){Emb=ccb;Dmb=new Fmb} +function Vhb(a){return a.f.c+a.g.c} +function hnb(a,b){return a.b.Hc(b)} +function inb(a,b){return a.b.Ic(b)} +function knb(a,b){return a.b.Qc(b)} +function Dob(a,b){return a.b.Hc(b)} +function dob(a,b){return a.c.uc(b)} +function Rqb(a,b){return a.a._b(b)} +function fob(a,b){return pb(a.c,b)} +function jt(a,b){return Mhb(a.b,b)} +function Lp(a,b){return a>b&&b0} +function Gbb(a,b){return ybb(a,b)<0} +function Crb(a,b){return a.a.get(b)} +function icb(b,a){return a.split(b)} +function Vrb(a,b){return Mhb(a.e,b)} +function Nvb(a){return uCb(a),false} +function Rub(a){Kub.call(this,a,21)} +function wcb(a,b){Zy.call(this,a,b)} +function mxb(a,b){$r.call(this,a,b)} +function Gyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Dlb(a,a.length,b)} +function Alb(a,b){Flb(a,a.length,b)} +function ABb(a,b,c){b.ud(a.a.Ge(c))} +function uBb(a,b,c){b.we(a.a.Fe(c))} +function GBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function aCb(a,b,c){a.splice(b,0,c)} +function lDb(a,b){return uqb(a.e,b)} +function pjb(a,b){this.d=a;this.e=b} +function kqb(a,b){this.b=a;this.a=b} +function VBb(a,b){this.b=a;this.a=b} +function BEb(a,b){this.b=a;this.a=b} +function sBb(a,b){this.a=a;this.b=b} +function yBb(a,b){this.a=a;this.b=b} +function EBb(a,b){this.a=a;this.b=b} +function KBb(a,b){this.a=a;this.b=b} +function aDb(a,b){this.a=a;this.b=b} +function tMb(a,b){this.b=a;this.a=b} +function oOb(a,b){this.b=a;this.a=b} +function SOb(a,b){$r.call(this,a,b)} +function SMb(a,b){$r.call(this,a,b)} +function NEb(a,b){$r.call(this,a,b)} +function VEb(a,b){$r.call(this,a,b)} +function sFb(a,b){$r.call(this,a,b)} +function hHb(a,b){$r.call(this,a,b)} +function OHb(a,b){$r.call(this,a,b)} +function FIb(a,b){$r.call(this,a,b)} +function wLb(a,b){$r.call(this,a,b)} +function YRb(a,b){$r.call(this,a,b)} +function zTb(a,b){$r.call(this,a,b)} +function rUb(a,b){$r.call(this,a,b)} +function oWb(a,b){$r.call(this,a,b)} +function SXb(a,b){$r.call(this,a,b)} +function k0b(a,b){$r.call(this,a,b)} +function z5b(a,b){$r.call(this,a,b)} +function T8b(a,b){$r.call(this,a,b)} +function ibc(a,b){$r.call(this,a,b)} +function Cec(a,b){this.a=a;this.b=b} +function rfc(a,b){this.a=a;this.b=b} +function Rfc(a,b){this.a=a;this.b=b} +function Tfc(a,b){this.a=a;this.b=b} +function bgc(a,b){this.a=a;this.b=b} +function ngc(a,b){this.a=a;this.b=b} +function Qhc(a,b){this.a=a;this.b=b} +function $hc(a,b){this.a=a;this.b=b} +function Z0b(a,b){this.a=a;this.b=b} +function ZVb(a,b){this.b=a;this.a=b} +function Dfc(a,b){this.b=a;this.a=b} +function dgc(a,b){this.b=a;this.a=b} +function Bmc(a,b){this.b=a;this.a=b} +function cWb(a,b){this.c=a;this.d=b} +function I$b(a,b){this.e=a;this.d=b} +function Unc(a,b){this.a=a;this.b=b} +function Oic(a,b){this.b=b;this.c=a} +function Bjc(a,b){$r.call(this,a,b)} +function Yjc(a,b){$r.call(this,a,b)} +function Gkc(a,b){$r.call(this,a,b)} +function Bpc(a,b){$r.call(this,a,b)} +function Jpc(a,b){$r.call(this,a,b)} +function Tpc(a,b){$r.call(this,a,b)} +function cqc(a,b){$r.call(this,a,b)} +function oqc(a,b){$r.call(this,a,b)} +function yqc(a,b){$r.call(this,a,b)} +function Hqc(a,b){$r.call(this,a,b)} +function Uqc(a,b){$r.call(this,a,b)} +function arc(a,b){$r.call(this,a,b)} +function mrc(a,b){$r.call(this,a,b)} +function zrc(a,b){$r.call(this,a,b)} +function Prc(a,b){$r.call(this,a,b)} +function Yrc(a,b){$r.call(this,a,b)} +function fsc(a,b){$r.call(this,a,b)} +function nsc(a,b){$r.call(this,a,b)} +function nzc(a,b){$r.call(this,a,b)} +function zzc(a,b){$r.call(this,a,b)} +function Kzc(a,b){$r.call(this,a,b)} +function Xzc(a,b){$r.call(this,a,b)} +function Dtc(a,b){$r.call(this,a,b)} +function lAc(a,b){$r.call(this,a,b)} +function uAc(a,b){$r.call(this,a,b)} +function CAc(a,b){$r.call(this,a,b)} +function LAc(a,b){$r.call(this,a,b)} +function UAc(a,b){$r.call(this,a,b)} +function aBc(a,b){$r.call(this,a,b)} +function uBc(a,b){$r.call(this,a,b)} +function DBc(a,b){$r.call(this,a,b)} +function MBc(a,b){$r.call(this,a,b)} +function sGc(a,b){$r.call(this,a,b)} +function VIc(a,b){$r.call(this,a,b)} +function EIc(a,b){this.b=a;this.a=b} +function qKc(a,b){this.a=a;this.b=b} +function GKc(a,b){this.a=a;this.b=b} +function lLc(a,b){this.a=a;this.b=b} +function mMc(a,b){this.a=a;this.b=b} +function fMc(a,b){$r.call(this,a,b)} +function ZLc(a,b){$r.call(this,a,b)} +function ZMc(a,b){this.b=a;this.d=b} +function IOc(a,b){$r.call(this,a,b)} +function GQc(a,b){$r.call(this,a,b)} +function PQc(a,b){this.a=a;this.b=b} +function RQc(a,b){this.a=a;this.b=b} +function ARc(a,b){$r.call(this,a,b)} +function rSc(a,b){$r.call(this,a,b)} +function TTc(a,b){$r.call(this,a,b)} +function _Tc(a,b){$r.call(this,a,b)} +function RUc(a,b){$r.call(this,a,b)} +function uVc(a,b){$r.call(this,a,b)} +function hWc(a,b){$r.call(this,a,b)} +function rWc(a,b){$r.call(this,a,b)} +function kXc(a,b){$r.call(this,a,b)} +function uXc(a,b){$r.call(this,a,b)} +function AYc(a,b){$r.call(this,a,b)} +function l$c(a,b){$r.call(this,a,b)} +function Z$c(a,b){$r.call(this,a,b)} +function D_c(a,b){$r.call(this,a,b)} +function O_c(a,b){$r.call(this,a,b)} +function c1c(a,b){$r.call(this,a,b)} +function cVb(a,b){return uqb(a.c,b)} +function nnc(a,b){return uqb(b.b,a)} +function x1c(a,b){return -a.b.Je(b)} +function D3c(a,b){return uqb(a.g,b)} +function O5c(a,b){$r.call(this,a,b)} +function a6c(a,b){$r.call(this,a,b)} +function m2c(a,b){this.a=a;this.b=b} +function W2c(a,b){this.a=a;this.b=b} +function f7c(a,b){this.a=a;this.b=b} +function G7c(a,b){$r.call(this,a,b)} +function j8c(a,b){$r.call(this,a,b)} +function iad(a,b){$r.call(this,a,b)} +function rad(a,b){$r.call(this,a,b)} +function Bad(a,b){$r.call(this,a,b)} +function Nad(a,b){$r.call(this,a,b)} +function ibd(a,b){$r.call(this,a,b)} +function tbd(a,b){$r.call(this,a,b)} +function Ibd(a,b){$r.call(this,a,b)} +function Ubd(a,b){$r.call(this,a,b)} +function gcd(a,b){$r.call(this,a,b)} +function scd(a,b){$r.call(this,a,b)} +function Ycd(a,b){$r.call(this,a,b)} +function udd(a,b){$r.call(this,a,b)} +function Jdd(a,b){$r.call(this,a,b)} +function Eed(a,b){$r.call(this,a,b)} +function bfd(a,b){this.a=a;this.b=b} +function dfd(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function Kfd(a,b){this.a=a;this.b=b} +function Mfd(a,b){this.a=a;this.b=b} +function Ofd(a,b){this.a=a;this.b=b} +function vgd(a,b){this.a=a;this.b=b} +function qgd(a,b){$r.call(this,a,b)} +function jrd(a,b){this.a=a;this.b=b} +function krd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.a=a;this.b=b} +function qrd(a,b){this.a=a;this.b=b} +function rrd(a,b){this.a=a;this.b=b} +function srd(a,b){this.b=a;this.a=b} +function trd(a,b){this.b=a;this.a=b} +function Drd(a,b){this.b=a;this.a=b} +function Frd(a,b){this.b=a;this.a=b} +function Hrd(a,b){this.a=a;this.b=b} +function Jrd(a,b){this.a=a;this.b=b} +function Ord(a,b){Xqd(a.a,BD(b,56))} +function BIc(a,b){gIc(a.a,BD(b,11))} +function fIc(a,b){FHc();return b!=a} +function Arb(){wrb();return new vrb} +function CMc(){wMc();this.b=new Tqb} +function NNc(){FNc();this.a=new Tqb} +function eCc(){ZBc();aCc.call(this)} +function Dsd(a,b){$r.call(this,a,b)} +function Urd(a,b){this.a=a;this.b=b} +function Wrd(a,b){this.a=a;this.b=b} +function kGd(a,b){this.a=a;this.b=b} +function nGd(a,b){this.a=a;this.b=b} +function bUd(a,b){this.a=a;this.b=b} +function zVd(a,b){this.a=a;this.b=b} +function C1d(a,b){this.d=a;this.b=b} +function MLd(a,b){this.d=a;this.e=b} +function Wud(a,b){this.f=a;this.c=b} +function f7d(a,b){this.b=a;this.c=b} +function _zd(a,b){this.i=a;this.g=b} +function Y1d(a,b){this.e=a;this.a=b} +function c8d(a,b){this.a=a;this.b=b} +function $Id(a,b){a.i=null;_Id(a,b)} +function ivd(a,b){!!a&&Rhb(cvd,a,b)} +function hCd(a,b){return qAd(a.a,b)} +function e7d(a){return R2d(a.c,a.b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Khe} +function LD(a){return typeof a===Lhe} +function ND(a){return typeof a===Mhe} +function Em(a,b){return a.Hd().Xb(b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Bbb(a,b){return ybb(a,b)==0} +function Ebb(a,b){return ybb(a,b)>=0} +function Kbb(a,b){return ybb(a,b)!=0} +function Jdb(a){return ''+(uCb(a),a)} +function pfb(a,b){return a.substr(b)} +function cg(a){ag(a);return a.d.gc()} +function oVb(a){pVb(a,a.c);return a} +function RD(a){CCb(a==null);return a} +function Dfb(a,b){a.a+=''+b;return a} +function Efb(a,b){a.a+=''+b;return a} +function Nfb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function Qfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){return a.a+=''+b,a} +function Esb(a,b){Gsb(a,b,a.a,a.a.a)} +function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} +function Mqd(a,b,c){Rpd(b,kqd(a,c))} +function Nqd(a,b,c){Rpd(b,kqd(a,c))} +function Dhe(a,b){Hhe(new Fyd(a),b)} +function cB(a,b){a.q.setTime(Sbb(b))} +function fvb(a,b){bvb.call(this,a,b)} +function jvb(a,b){bvb.call(this,a,b)} +function nvb(a,b){bvb.call(this,a,b)} +function Nqb(a){Uhb(this);Ld(this,a)} +function wmb(a){tCb(a,0);return null} +function X6c(a){a.a=0;a.b=0;return a} +function f3c(a,b){a.a=b.g+1;return a} +function PJc(a,b){return a.j[b.p]==2} +function _Pb(a){return VPb(BD(a,79))} +function yJb(){yJb=ccb;xJb=as(wJb())} +function Y8b(){Y8b=ccb;X8b=as(W8b())} +function mt(){this.b=new Mqb(Cv(12))} +function Otb(){this.b=0;this.a=false} +function Wtb(){this.b=0;this.a=false} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Nsd(a,b){Msd.call(this,a,b)} +function $zd(a,b){Cyd.call(this,a,b)} +function nNd(a,b){_zd.call(this,a,b)} +function s4d(a,b){p4d.call(this,a,b)} +function w4d(a,b){qRd.call(this,a,b)} +function rEd(a,b){pEd();Rhb(oEd,a,b)} +function lcb(a,b){return qfb(a.a,0,b)} +function ww(a,b){return a.a.a.a.cc(b)} +function mb(a,b){return PD(a)===PD(b)} +function Mdb(a,b){return Kdb(a.a,b.a)} +function $db(a,b){return beb(a.a,b.a)} +function seb(a,b){return ueb(a.a,b.a)} +function hfb(a,b){return a.indexOf(b)} +function Ny(a,b){return a==b?0:a?1:-1} +function kB(a){return a<10?'0'+a:''+a} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Hdb(a){return QD((uCb(a),a))} +function Idb(a){return QD((uCb(a),a))} +function NIb(a,b){return beb(a.g,b.g)} +function Fbb(a){return typeof a===Lhe} +function mWb(a){return a==hWb||a==kWb} +function nWb(a){return a==hWb||a==iWb} +function G1b(a){return Jkb(a.b.b,a,0)} +function lrb(a){this.a=Arb();this.b=a} +function Frb(a){this.a=Arb();this.b=a} +function swb(a,b){Ekb(a.a,b);return b} +function Z1c(a,b){Ekb(a.c,b);return a} +function E2c(a,b){d3c(a.a,b);return a} +function _gc(a,b){Hgc();return b.a+=a} +function bhc(a,b){Hgc();return b.a+=a} +function ahc(a,b){Hgc();return b.c+=a} +function Nlb(a,b){Klb(a,0,a.length,b)} +function zsb(){Wqb.call(this,new $rb)} +function I_b(){B_b.call(this,0,0,0,0)} +function I6c(){J6c.call(this,0,0,0,0)} +function g7c(a){this.a=a.a;this.b=a.b} +function fad(a){return a==aad||a==bad} +function gad(a){return a==dad||a==_9c} +function Jzc(a){return a==Fzc||a==Ezc} +function fcd(a){return a!=bcd&&a!=ccd} +function oid(a){return a.Lg()&&a.Mg()} +function Gfd(a){return Kkd(BD(a,118))} +function k3c(a){return d3c(new j3c,a)} +function y2d(a,b){return new p4d(b,a)} +function z2d(a,b){return new p4d(b,a)} +function ukd(a,b,c){vkd(a,b);wkd(a,c)} +function _kd(a,b,c){cld(a,b);ald(a,c)} +function bld(a,b,c){dld(a,b);eld(a,c)} +function gmd(a,b,c){hmd(a,b);imd(a,c)} +function nmd(a,b,c){omd(a,b);pmd(a,c)} +function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} +function _ud(a){Wud.call(this,a,true)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Ygb(a){Hgb();Zgb.call(this,a)} +function rxb(){mxb.call(this,'Head',1)} +function wxb(){mxb.call(this,'Tail',3)} +function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} +function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} +function MGb(a){Hkb(a.xf(),new QGb(a))} +function xtb(a){return a!=null?tb(a):0} +function b2b(a,b){return ntd(b,mpd(a))} +function c2b(a,b){return ntd(b,mpd(a))} +function dAb(a,b){return a[a.length]=b} +function gAb(a,b){return a[a.length]=b} +function Vq(a){return lr(a.b.Kc(),a.a)} +function dqd(a,b){return _o(qo(a.d),b)} +function eqd(a,b){return _o(qo(a.g),b)} +function fqd(a,b){return _o(qo(a.j),b)} +function Osd(a,b){Msd.call(this,a.b,b)} +function q0b(a){B_b.call(this,a,a,a,a)} +function HOb(a){a.b&&LOb(a);return a.a} +function IOb(a){a.b&&LOb(a);return a.c} +function uyb(a,b){if(lyb){return}a.b=b} +function lzd(a,b,c){NC(a,b,c);return c} +function mBc(a,b,c){NC(a.c[b.g],b.g,c)} +function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} +function wfd(a,b,c){bld(c,c.i+a,c.j+b)} +function UOd(a,b){wtd(VKd(a.a),XOd(b))} +function bTd(a,b){wtd(QSd(a.a),eTd(b))} +function Lge(a){wfe();xfe.call(this,a)} +function CAd(a){return a==null?0:tb(a)} +function fNc(){fNc=ccb;eNc=new Rpb(v1)} +function h0d(){h0d=ccb;new i0d;new Rkb} +function i0d(){new Lqb;new Lqb;new Lqb} +function GA(){GA=ccb;fA();FA=new Lqb} +function Iy(){Iy=ccb;$wnd.Math.log(2)} +function UVd(){UVd=ccb;TVd=(AFd(),zFd)} +function _ge(){throw vbb(new cgb(Cxe))} +function ohe(){throw vbb(new cgb(Cxe))} +function che(){throw vbb(new cgb(Dxe))} +function rhe(){throw vbb(new cgb(Dxe))} +function Mg(a){this.a=a;Gg.call(this,a)} +function up(a){this.a=a;rf.call(this,a)} +function Bp(a){this.a=a;rf.call(this,a)} +function Okb(a,b){Mlb(a.c,a.c.length,b)} +function llb(a){return a.ab?1:0} +function Deb(a,b){return ybb(a,b)>0?a:b} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Ctb(a,b){a.a!=null&&BIc(b,a.a)} +function Csb(a){a.a=new jtb;a.c=new jtb} +function hDb(a){this.b=a;this.a=new Rkb} +function dOb(a){this.b=new pOb;this.a=a} +function q_b(a){n_b.call(this);this.a=a} +function txb(){mxb.call(this,'Range',2)} +function bUb(){ZTb();this.a=new L2c(zP)} +function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} +function fKc(a,b){FJc();return b.n.b+=a} +function Tgc(a,b,c){return Rhb(a.g,c,b)} +function LJc(a,b,c){return Rhb(a.k,c,b)} +function r1c(a,b){return Rhb(a.a,b.a,b)} +function jBc(a,b,c){return hBc(b,c,a.c)} +function E6c(a){return new f7c(a.c,a.d)} +function F6c(a){return new f7c(a.c,a.d)} +function R6c(a){return new f7c(a.a,a.b)} +function CQd(a,b){return hA(a.a,b,null)} +function fec(a){QZb(a,null);RZb(a,null)} +function AOc(a){BOc(a,null);COc(a,null)} +function u4d(){qRd.call(this,null,null)} +function y4d(){RRd.call(this,null,null)} +function a7d(a){this.a=a;Lqb.call(this)} +function Pp(a){this.b=(mmb(),new iob(a))} +function Py(a){a.j=KC(VI,nie,310,0,0,1)} +function oAd(a,b,c){a.c.Vc(b,BD(c,133))} +function GAd(a,b,c){a.c.ji(b,BD(c,133))} +function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} +function b7d(a,b){return t2d(a.c,a.b,b)} +function Bv(a,b){return new Qv(a.Kc(),b)} +function Lq(a,b){return rr(a.Kc(),b)!=-1} +function Sqb(a,b){return a.a.Bc(b)!=null} +function pr(a){return a.Ob()?a.Pb():null} +function yfb(a){return zfb(a,0,a.length)} +function JD(a,b){return a!=null&&AD(a,b)} +function $A(a,b){a.q.setHours(b);YA(a,b)} +function Yrb(a,b){if(a.c){jsb(b);isb(b)}} +function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} +function RJc(a,b,c){SJc(a,b,c);return c} +function Eub(a,b,c){a.a=b^1502;a.b=c^kke} +function xHb(a,b,c){return a.a[b.g][c.g]} +function REc(a,b){return a.a[b.c.p][b.p]} +function aEc(a,b){return a.e[b.c.p][b.p]} +function tEc(a,b){return a.c[b.c.p][b.p]} +function OJc(a,b){return a.j[b.p]=aKc(b)} +function k5c(a,b){return cfb(a.f,b.tg())} +function Isd(a,b){return cfb(a.b,b.tg())} +function Sfd(a,b){return a.a0?b*b/a:b*b*100} +function CRb(a,b){return a>0?b/(a*a):b*100} +function G2c(a,b,c){return Ekb(b,I2c(a,c))} +function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function O6c(a,b,c){a.a+=b;a.b+=c;return a} +function Z6c(a,b,c){a.a*=b;a.b*=c;return a} +function b7c(a,b,c){a.a-=b;a.b-=c;return a} +function a7c(a,b){a.a=b.a;a.b=b.b;return a} +function V6c(a){a.a=-a.a;a.b=-a.b;return a} +function Dic(a){this.c=a;this.a=1;this.b=1} +function xed(a){this.c=a;dld(a,0);eld(a,0)} +function u7c(a){Psb.call(this);n7c(this,a)} +function AXb(a){xXb();yXb(this);this.mf(a)} +function GRd(a,b){nRd();qRd.call(this,a,b)} +function dSd(a,b){LRd();RRd.call(this,a,b)} +function hSd(a,b){LRd();RRd.call(this,a,b)} +function fSd(a,b){LRd();dSd.call(this,a,b)} +function sId(a,b,c){dId.call(this,a,b,c,2)} +function zXd(a,b){UVd();nXd.call(this,a,b)} +function BXd(a,b){UVd();zXd.call(this,a,b)} +function DXd(a,b){UVd();zXd.call(this,a,b)} +function FXd(a,b){UVd();DXd.call(this,a,b)} +function PXd(a,b){UVd();nXd.call(this,a,b)} +function RXd(a,b){UVd();PXd.call(this,a,b)} +function XXd(a,b){UVd();nXd.call(this,a,b)} +function pAd(a,b){return a.c.Fc(BD(b,133))} +function w1d(a,b,c){return V1d(p1d(a,b),c)} +function N2d(a,b,c){return b.Qk(a.e,a.c,c)} +function P2d(a,b,c){return b.Rk(a.e,a.c,c)} +function a3d(a,b){return xid(a.e,BD(b,49))} +function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} +function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} +function ypb(a,b){b.$modCount=a.$modCount} +function MUc(){MUc=ccb;LUc=new Lsd('root')} +function LCd(){LCd=ccb;KCd=new lDd;new NDd} +function KVc(){this.a=new Hp;this.b=new Hp} +function FUd(){hJd.call(this);this.Bb|=Tje} +function t_c(){$r.call(this,'GROW_TREE',0)} +function C9d(a){return a==null?null:cde(a)} +function G9d(a){return a==null?null:jde(a)} +function J9d(a){return a==null?null:fcb(a)} +function K9d(a){return a==null?null:fcb(a)} +function fdb(a){if(a.o!=null){return}vdb(a)} +function DD(a){CCb(a==null||KD(a));return a} +function ED(a){CCb(a==null||LD(a));return a} +function GD(a){CCb(a==null||ND(a));return a} +function gB(a){this.q=new $wnd.Date(Sbb(a))} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function bAb(a,b){Vzb.call(this,a);this.a=b} +function vAb(a,b){Vzb.call(this,a);this.a=b} +function sNb(a){pNb.call(this,0,0);this.f=a} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} +function g4c(a,b){return BD(Wrb(a.b,b),149)} +function i4c(a,b){return BD(Wrb(a.c,b),229)} +function wic(a){return BD(Ikb(a.a,a.b),287)} +function B6c(a){return new f7c(a.c,a.d+a.a)} +function eLc(a){return FJc(),Jzc(BD(a,197))} +function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} +function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} +function qyb(a,b){if(lyb){return}Ekb(a.a,b)} +function F2b(a,b){x2b();return f_b(b.d.i,a)} +function _9b(a,b){I9b();return new gac(b,a)} +function _Hb(a,b){ytb(b,lle);a.f=b;return a} +function Kld(a,b,c){c=_hd(a,b,3,c);return c} +function bmd(a,b,c){c=_hd(a,b,6,c);return c} +function kpd(a,b,c){c=_hd(a,b,9,c);return c} +function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} +function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} +function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function c7d(a,b,c){return C2d(a.c,a.b,b,c)} +function DAd(a,b){return (b&Ohe)%a.d.length} +function Msd(a,b){Lsd.call(this,a);this.a=b} +function uVd(a,b){lVd.call(this,a);this.a=b} +function sYd(a,b){lVd.call(this,a);this.a=b} +function zyd(a,b){this.c=a;zud.call(this,b)} +function YOd(a,b){this.a=a;qOd.call(this,b)} +function fTd(a,b){this.a=a;qOd.call(this,b)} +function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} +function cq(a){this.a=(Xj(a,Jie),new Skb(a))} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function XMb(a){if(a>8){return 0}return a+1} +function Ecb(a,b){Bcb();return a==b?0:a?1:-1} +function Opb(a,b,c){return Npb(a,BD(b,22),c)} +function Bz(a,b,c){return a.apply(b,c);var d} +function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} +function ijb(a,b){var c;c=a.e;a.e=b;return c} +function trb(a,b){var c;c=a[hke];c.call(a,b)} +function urb(a,b){var c;c=a[hke];c.call(a,b)} +function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function Cxb(a,b){return Vd(Dwb(a.a,b,true))} +function _Bb(a,b){return eCb(new Array(b),a)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function gRb(){this.a=new Rkb;this.b=new Rkb} +function iTb(){this.a=new MQb;this.b=new tTb} +function tDb(){this.b=new d7c;this.c=new Rkb} +function _Qb(){this.d=new d7c;this.e=new d7c} +function n_b(){this.n=new d7c;this.o=new d7c} +function $Gb(){this.n=new p0b;this.i=new I6c} +function sec(){this.a=new Umc;this.b=new mnc} +function NIc(){this.a=new Rkb;this.d=new Rkb} +function LDc(){this.b=new Tqb;this.a=new Tqb} +function hSc(){this.b=new Lqb;this.a=new Lqb} +function HRc(){this.b=new tRc;this.a=new hRc} +function aHb(){$Gb.call(this);this.a=new d7c} +function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} +function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} +function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} +function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} +function Tod(a,b,c){c=_hd(a,b,11,c);return c} +function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} +function u7b(a,b){return a.n.a=(uCb(b),b)+10} +function v7b(a,b){return a.n.a=(uCb(b),b)+10} +function dLd(a,b){return b==a||pud(UKd(b),a)} +function PYd(a,b){return Rhb(a.a,b,'')==null} +function E2b(a,b){x2b();return !f_b(b.d.i,a)} +function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} +function h1d(a,b){var c;c=b.Hh(a.a);return c} +function Cyd(a,b){qcb.call(this,gve+a+mue+b)} +function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} +function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} +function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} +function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} +function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function j6d(a,b){return a.Aj().Nh().Kh(a,b)} +function h6d(a,b){return a.Aj().Nh().Ih(a,b)} +function Fdb(a,b){return uCb(a),PD(a)===PD(b)} +function dfb(a,b){return uCb(a),PD(a)===PD(b)} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function Exb(a,b){return Vd(Dwb(a.a,b,false))} +function vBb(a,b){return a.b.sd(new yBb(a,b))} +function BBb(a,b){return a.b.sd(new EBb(a,b))} +function HBb(a,b){return a.b.sd(new KBb(a,b))} +function lfb(a,b,c){return a.lastIndexOf(b,c)} +function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} +function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} +function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} +function emc(a,b){return beb(a.a.d.p,b.a.d.p)} +function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} +function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} +function Vxd(a){return a<100?null:new Ixd(a)} +function ecd(a){return a==Zbd||a==_bd||a==$bd} +function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} +function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} +function ujb(a,b){var c;c=b;return !!Awb(a,c)} +function czd(a,b){this.c=a;Pyd.call(this,a,b)} +function fBb(a){this.c=a;nvb.call(this,rie,0)} +function Avb(a,b){Bvb.call(this,a,a.length,b)} +function aId(a,b,c){return BD(a.c,69).lk(b,c)} +function bId(a,b,c){return BD(a.c,69).mk(b,c)} +function O2d(a,b,c){return N2d(a,BD(b,332),c)} +function Q2d(a,b,c){return P2d(a,BD(b,332),c)} +function i3d(a,b,c){return h3d(a,BD(b,332),c)} +function k3d(a,b,c){return j3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} +function Ldb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(mmb(),new zob(a))} +function dIc(a){FHc();this.d=a;this.a=new jkb} +function xqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.d=a;this.b=c;this.a=b} +function Qsb(a){Csb(this);Osb(this);ye(this,a)} +function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} +function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} +function iyb(a){this.a=a;Zfb();Cbb(Date.now())} +function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} +function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} +function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} +function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} +function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} +function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} +function pxb(a){lxb();return es((zxb(),yxb),a)} +function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} +function OEb(a){MEb();return es((REb(),QEb),a)} +function WEb(a){UEb();return es((ZEb(),YEb),a)} +function tFb(a){rFb();return es((wFb(),vFb),a)} +function iHb(a){gHb();return es((lHb(),kHb),a)} +function PHb(a){NHb();return es((SHb(),RHb),a)} +function GIb(a){EIb();return es((JIb(),IIb),a)} +function vJb(a){qJb();return es((yJb(),xJb),a)} +function xLb(a){vLb();return es((ALb(),zLb),a)} +function TMb(a){RMb();return es((WMb(),VMb),a)} +function TOb(a){ROb();return es((WOb(),VOb),a)} +function ePb(a){cPb();return es((hPb(),gPb),a)} +function ZRb(a){XRb();return es((aSb(),_Rb),a)} +function ATb(a){yTb();return es((DTb(),CTb),a)} +function sUb(a){qUb();return es((vUb(),uUb),a)} +function rWb(a){lWb();return es((uWb(),tWb),a)} +function TXb(a){RXb();return es((WXb(),VXb),a)} +function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} +function l0b(a){j0b();return es((o0b(),n0b),a)} +function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function mKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BZb(a,b,c){this.b=a;this.a=b;this.c=c} +function TNb(a,b,c){this.a=a;this.b=b;this.c=c} +function uOb(a,b,c){this.a=a;this.b=b;this.c=c} +function S3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} +function n9b(a,b,c){this.b=a;this.a=b;this.c=c} +function x$b(a,b,c){this.e=b;this.b=a;this.d=c} +function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} +function LGb(a){var b;b=new KGb;b.e=a;return b} +function iLb(a){var b;b=new fLb;b.b=a;return b} +function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} +function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} +function jbc(a){gbc();return es((mbc(),lbc),a)} +function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} +function Clc(a){Alc();return es((Flc(),Elc),a)} +function Cpc(a){Apc();return es((Fpc(),Epc),a)} +function Kpc(a){Ipc();return es((Npc(),Mpc),a)} +function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} +function $jc(a){Xjc();return es((bkc(),akc),a)} +function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} +function dqc(a){bqc();return es((gqc(),fqc),a)} +function rqc(a){mqc();return es((uqc(),tqc),a)} +function zqc(a){xqc();return es((Cqc(),Bqc),a)} +function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} +function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} +function brc(a){_qc();return es((erc(),drc),a)} +function nrc(a){lrc();return es((qrc(),prc),a)} +function Arc(a){yrc();return es((Drc(),Crc),a)} +function Qrc(a){Orc();return es((Trc(),Src),a)} +function Zrc(a){Xrc();return es((asc(),_rc),a)} +function gsc(a){esc();return es((jsc(),isc),a)} +function osc(a){msc();return es((rsc(),qsc),a)} +function Etc(a){Ctc();return es((Htc(),Gtc),a)} +function qzc(a){lzc();return es((tzc(),szc),a)} +function Azc(a){xzc();return es((Dzc(),Czc),a)} +function Mzc(a){Izc();return es((Pzc(),Ozc),a)} +function MAc(a){KAc();return es((PAc(),OAc),a)} +function mAc(a){kAc();return es((pAc(),oAc),a)} +function vAc(a){tAc();return es((yAc(),xAc),a)} +function DAc(a){BAc();return es((GAc(),FAc),a)} +function VAc(a){TAc();return es((YAc(),XAc),a)} +function $zc(a){Vzc();return es((bAc(),aAc),a)} +function bBc(a){_Ac();return es((eBc(),dBc),a)} +function vBc(a){tBc();return es((yBc(),xBc),a)} +function EBc(a){CBc();return es((HBc(),GBc),a)} +function NBc(a){LBc();return es((QBc(),PBc),a)} +function tGc(a){rGc();return es((wGc(),vGc),a)} +function WIc(a){UIc();return es((ZIc(),YIc),a)} +function $Lc(a){YLc();return es((bMc(),aMc),a)} +function gMc(a){eMc();return es((jMc(),iMc),a)} +function JOc(a){HOc();return es((MOc(),LOc),a)} +function HQc(a){FQc();return es((KQc(),JQc),a)} +function DRc(a){yRc();return es((GRc(),FRc),a)} +function tSc(a){qSc();return es((wSc(),vSc),a)} +function UTc(a){STc();return es((XTc(),WTc),a)} +function UUc(a){PUc();return es((XUc(),WUc),a)} +function aUc(a){$Tc();return es((dUc(),cUc),a)} +function wVc(a){tVc();return es((zVc(),yVc),a)} +function iWc(a){fWc();return es((lWc(),kWc),a)} +function sWc(a){pWc();return es((vWc(),uWc),a)} +function lXc(a){iXc();return es((oXc(),nXc),a)} +function vXc(a){sXc();return es((yXc(),xXc),a)} +function BYc(a){zYc();return es((EYc(),DYc),a)} +function m$c(a){k$c();return es((p$c(),o$c),a)} +function $$c(a){Y$c();return es((b_c(),a_c),a)} +function n_c(a){i_c();return es((q_c(),p_c),a)} +function w_c(a){s_c();return es((z_c(),y_c),a)} +function E_c(a){C_c();return es((H_c(),G_c),a)} +function P_c(a){N_c();return es((S_c(),R_c),a)} +function W0c(a){R0c();return es((Z0c(),Y0c),a)} +function f1c(a){a1c();return es((i1c(),h1c),a)} +function P5c(a){N5c();return es((S5c(),R5c),a)} +function b6c(a){_5c();return es((e6c(),d6c),a)} +function H7c(a){F7c();return es((K7c(),J7c),a)} +function k8c(a){i8c();return es((n8c(),m8c),a)} +function V8b(a){S8b();return es((Y8b(),X8b),a)} +function A5b(a){y5b();return es((D5b(),C5b),a)} +function jad(a){ead();return es((mad(),lad),a)} +function sad(a){qad();return es((vad(),uad),a)} +function Cad(a){Aad();return es((Fad(),Ead),a)} +function Oad(a){Mad();return es((Rad(),Qad),a)} +function jbd(a){hbd();return es((mbd(),lbd),a)} +function ubd(a){rbd();return es((xbd(),wbd),a)} +function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} +function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} +function hcd(a){dcd();return es((kcd(),jcd),a)} +function vcd(a){rcd();return es((ycd(),xcd),a)} +function vdd(a){tdd();return es((ydd(),xdd),a)} +function Kdd(a){Idd();return es((Ndd(),Mdd),a)} +function $cd(a){Ucd();return es((cdd(),bdd),a)} +function Fed(a){Ded();return es((Ied(),Hed),a)} +function rgd(a){pgd();return es((ugd(),tgd),a)} +function Esd(a){Csd();return es((Hsd(),Gsd),a)} +function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} +function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function bPc(a,b){this.c=a;this.a=b;this.b=b-a} +function nYc(a,b,c){this.a=a;this.b=b;this.c=c} +function L1c(a,b,c){this.a=a;this.b=b;this.c=c} +function T1c(a,b,c){this.a=a;this.b=b;this.c=c} +function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} +function zCd(a,b,c){this.a=a;this.b=b;this.c=c} +function IVd(a,b,c){this.e=a;this.a=b;this.c=c} +function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} +function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} +function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} +function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function BD(a,b){CCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Rkb;fr(b,a);return b} +function Ex(a){var b;b=new Tqb;fr(b,a);return b} +function Hx(a){var b;b=new Gxb;Jq(b,a);return b} +function Ru(a){var b;b=new Psb;Jq(b,a);return b} +function YEc(a){!a.e&&(a.e=new Rkb);return a.e} +function SMd(a){!a.c&&(a.c=new xYd);return a.c} +function Ekb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function pzb(){this.a=';,;';this.b='';this.c=''} +function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} +function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} +function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} +function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} +function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} +function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} +function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} +function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} +function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} +function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} +function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} +function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} +function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} +function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} +function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} +function rCb(a,b){if(!a){throw vbb(new ucb(b))}} +function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} +function dWb(a,b,c){cWb.call(this,a,b);this.b=c} +function pMd(a,b,c){MLd.call(this,a,b);this.c=c} +function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} +function _Gd(a){$Gd();MGd.call(this);this.th(a)} +function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function k2d(a,b,c){MLd.call(this,a,b);this.c=c} +function y1d(){T0d();z1d.call(this,(yFd(),xFd))} +function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} +function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} +function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function WUd(a,b){var c;c=a.c;VUd(a,b);return c} +function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} +function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} +function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function vvb(a,b){qvb.call(this,b,1040);this.a=a} +function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} +function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} +function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} +function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} +function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function zfe(a){wfe();++vfe;return new ige(0,a)} +function o_b(a){if(a.a){return a.a}return JZb(a)} +function CCb(a){if(!a){throw vbb(new Cdb(null))}} +function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} +function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} +function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} +function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} +function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} +function Bic(a,b){return a.c=b){throw vbb(new rcb)}} +function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} +function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} +function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} +function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} +function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} +function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} +function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} +function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} +function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} +function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} +function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} +function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} +function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} +function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} +function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} +function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} +function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} +function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} +function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} +function x0d(a){Wud.call(this,a,false);this.a=false} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} +function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} +function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} +function nfb(a,b){return dfb(a.substr(0,b.length),b)} +function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} +function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} +function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} +function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function xJc(a){var b;b=a;while(b.f){b=b.f}return b} +function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} +function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} +function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} +function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} +function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} +function Olb(a,b){return avb(b,a.length),new vvb(a,b)} +function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} +function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} +function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} +function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Flb(a,b,c){var d;for(d=0;d=a.g} +function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} +function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function gCb(a,b){var c;c=console[a];c.call(console,b)} +function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} +function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} +function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} +function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} +function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} +function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} +function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} +function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} +function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} +function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} +function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} +function uCb(a){if(a==null){throw vbb(new Geb)}return a} +function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} +function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} +function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} +function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} +function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} +function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} +function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} +function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} +function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} +function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} +function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} +function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} +function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} +function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} +function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} +function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} +function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} +function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} +function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} +function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} +function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} +function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} +function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} +function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} +function vfb(a){return String.fromCharCode.apply(null,a)} +function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} +function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} +function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} +function ix(a,b){ex();return new gx(new il(a),new Uk(b))} +function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} +function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} +function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} +function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} +function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} +function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} +function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} +function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} +function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} +function JZb(a){var b;b=P2b(a);if(b){return b}return null} +function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} +function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} +function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} +function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} +function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} +function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} +function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} +function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} +function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} +function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} +function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} +function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} +function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} +function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} +function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} +function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} +function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} +function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} +function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} +function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} +function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} +function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} +function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} +function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} +function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} +function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} +function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} +function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} +function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} +function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} +function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} +function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} +function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} +function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} +function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} +function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} +function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} +function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} +function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} +function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} +function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} +function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} +function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} +function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} +function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} +function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} +function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} +function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} +function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} +function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} +function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} +function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} +function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} +function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} +function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} +function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} +function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} +function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} +function ecb(a){function b(){} +;b.prototype=a||{};return new b} +function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} +function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} +function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} +function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} +function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} +function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} +function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} +function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} +function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} +function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} +function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} +function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} +function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} +function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} +function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} +function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} +function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} +function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} +function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} +function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} +function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} +function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} +function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} +function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} +function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} +function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} +function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} +function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} +function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} +function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} +function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} +function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} +function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} +function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} +function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} +function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} +function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} +function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} +function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} +function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} +function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} +function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} +function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} +function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} +function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} +function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} +function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} +function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} +function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} +function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} +function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} +function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} +function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} +function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} +function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} +function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} +function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} +function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} +function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} +function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} +function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} +function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} +function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} +function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} +function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} +function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} +function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} +function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} +function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} +function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} +function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} +function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} +function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} +function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} +function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} +function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} +function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} +function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} +function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} +function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} +function mlb(a){sCb(a.ad?1:0} +function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} +function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} +function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} +function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} +function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} +function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} +function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} +function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} +function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} +function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} +function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} +function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} +function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} +function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} +function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} +function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} +function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} +function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} +function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} +function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} +function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} +function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} +function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} +function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} +function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} +function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} +function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} +function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} +function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} +function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} +function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} +function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} +function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} +function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} +function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} +function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} +function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} +function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} +function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} +function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} +function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} +function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} +function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} +function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} +function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} +function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} +function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} +function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} +function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} +function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} +function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} +function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} +function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} +function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} +function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} +function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} +function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} +function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} +function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} +function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} +function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} +function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} +function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} +function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} +function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} +function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} +function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} +function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} +function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} +function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} +function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} +function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} +function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} +function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} +function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} +function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} +function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} +function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} +function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} +function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} +function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} +function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} +function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} +function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} +function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} +function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} +function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} +function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} +function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} +function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} +function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} +function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} +function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} +function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} +function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} +function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} +function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} +function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} +function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} +function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} +function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} +function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} +function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} +function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} +function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} +function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} +function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} +function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} +function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} +function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} +function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} +function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} +function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} +function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} +function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} +function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} +function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} +function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} +function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} +function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} +function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} +function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} +function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} +function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} +function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} +function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} +function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} +function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} +function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} +function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} +function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} +function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} +function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} +function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} +function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} +function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} +function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} +function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} +function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} +function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} +function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} +function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} +function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} +function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} +function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} +function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} +function ODc(a,b){if(a.pb.p){return -1}return 0} +function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} +function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} +function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} +function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} +function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} +function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} +function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} +function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} +function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} +function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} +function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} +function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} +function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} +function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} +function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} +function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} +function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} +function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} +function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} +function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} +function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} +function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} +function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} +function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} +function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} +function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} +function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} +function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} +function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} +function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} +function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} +function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} +function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} +function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} +function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} +function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} +function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} +function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} +function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} +function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} +function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} +function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} +function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} +function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} +function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} +function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} +function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} +function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} +function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} +function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} +function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} +function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} +function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} +function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} +function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} +function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} +function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} +function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} +function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} +function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} +function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} +function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} +function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} +function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} +function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} +function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} +function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} +function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} +function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} +function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} +function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} +function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} +function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} +function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} +function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} +function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} +function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} +function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} +function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} +function uA(a,b){while(b[0]=0){++b[0]}} +function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} +function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} +function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} +function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} +function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} +function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} +function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} +function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} +function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} +function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} +function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} +function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} +function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} +function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} +function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} +function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} +function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} +function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} +function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} +function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} +function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} +function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} +function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} +function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} +function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} +function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} +function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} +function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} +function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} +function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} +function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} +function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} +function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} +function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} +function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} +function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} +function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} +function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} +function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} +function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} +function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} +function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} +function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} +function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} +function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} +function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} +function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} +function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} +function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} +function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} +function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} +function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} +function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} +function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} +function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} +function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} +function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} +function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} +function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} +function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} +function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} +function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} +function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} +function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} +function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} +function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} +function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} +function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} +function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} +function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} +function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} +function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} +function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} +function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} +function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} +function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} +function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} +function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} +function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} +function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} +function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} +function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} +function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} +function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} +function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} +function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} +function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} +function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} +function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} +function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} +function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} +function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} +function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} +function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} +function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} +function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} +function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} +function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} +function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} +function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} +function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} +function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} +function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} +function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} +function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} +function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} +function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} +function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} +function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} +function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} +function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} +function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} +function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} +function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} +function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} +function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} +function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} +function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} +function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} +function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} +function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} +function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} +function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} +function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} +function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} +function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} +function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} +function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} +function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} +function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} +function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} +function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} +function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} +function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} +function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} +function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} +function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} +function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} +function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} +function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} +function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} +function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} +function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} +function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} +function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} +function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} +function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} +function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} +function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} +function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} +function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} +function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} +function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} +function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} +function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} +function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} +function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} +function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} +function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} +function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} +function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} +function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} +function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} +function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} +function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} +function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} +function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} +function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} +function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} +function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} +function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} +function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} +function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} +function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} +function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} +function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} +function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} +function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} +function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} +function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} +function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} +function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} +function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} +function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} +function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} +function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} +function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} +function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} +function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} +function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} +function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} +function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} +function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} +function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} +function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} +function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} +function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} +function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} +function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} +function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} +function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} +function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} +function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} +function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} +function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} +function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} +function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} +function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} +function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} +function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} +function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} +function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} +function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} +function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} +function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} +function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} +function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} +function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} +function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} +function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} +function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} +function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} +function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} +function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} +function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} +function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} +function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} +function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} +function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} +function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} +function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} +function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} +function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} +function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} +function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} +function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} +function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} +function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} +function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} +function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} +function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} +function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} +function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} +function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} +function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} +function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} +function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} +function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} +function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} +function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} +function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} +function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} +function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} +function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} +function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} +function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} +function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} +function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} +function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} +function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} +function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} +function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} +function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} +function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} +function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} +function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} +function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} +function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} +function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} +function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} +function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} +function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} +function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} +function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} +function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} +function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} +function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} +function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} +function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} +function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} +function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} +function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} +function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} +function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} +function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} +function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} +function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} +function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} +function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} +function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} +function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} +function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} +function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} +function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} +function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} +function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} +function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} +function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} +function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} +function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} +function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} +function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} +function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} +function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} +function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} +function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} +function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} +function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} +function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} +function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} +function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} +function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} +function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} +function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} +function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} +function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} +function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} +function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} +function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} +function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} +function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} +function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} +function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} +function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} +function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} +function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} +function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} +function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} +function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} +function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} +function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} +function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} +function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} +function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} +function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} +function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} +function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} +function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} +function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} +function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} +function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} +function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} +function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} +function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} +function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} +function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} +function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} +function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} +function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} +function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} +function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} +function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} +function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} +function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} +function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} +function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} +function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} +function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} +function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} +function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} +function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} +function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} +function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} +function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} +function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} +function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} +function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} +function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} +function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} +function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} +function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} +function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} +function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} +function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} +function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} +function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} +function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} +function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} +function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} +function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} +function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} +function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} +function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} +function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} +function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} +function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} +function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} +function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} +function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} +function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} +function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} +function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} +function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} +function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} +function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} +function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} +function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} +function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} +function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} +function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} +function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} +function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} +function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} +function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} +function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} +function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} +function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} +function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} +function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} +function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} +function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} +function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} +function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} +function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} +function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} +function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} +function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} +function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} +function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} +function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} +function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} +function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} +function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} +function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} +function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} +function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} +function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} +function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} +function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} +function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} +function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} +function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} +function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} +function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} +function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} +function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} +function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} +function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} +function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} +function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} +function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} +function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} +function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} +function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} +function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} +function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} +function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} +function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} +function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} +function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} +function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} +function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} +function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} +function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} +function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} +function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} +function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} +function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} +function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} +function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} +function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} +function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} +function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} +function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} +function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} +function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} +function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} +function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} +function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} +function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} +function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} +function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} +function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} +function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} +function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} +function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} +function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} +function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} +function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} +function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} +function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} +function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} +function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} +function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} +function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} +function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} +function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} +function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} +function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} +function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} +function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} +function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} +function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} +function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} +function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} +function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} +function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} +function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} +function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} +function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} +function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} +function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} +function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} +function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} +function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} +function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} +function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} +function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} +function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} +function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} +function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} +function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} +function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} +function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} +function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} +function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} +function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} +function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} +function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} +function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} +function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} +function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} +function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} +function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} +function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} +function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} +function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} +function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} +function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} +function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} +function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} +function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} +function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} +function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} +function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} +function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} +function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} +function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} +function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} +function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} +function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} +function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} +function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} +function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} +function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} +function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} +function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} +function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} +function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} +function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} +function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} +function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} +function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} +function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} +function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} +function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} +function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} +function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} +function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} +function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} +function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} +function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} +function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} +function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} +function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} +function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} +function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} +function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} +function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} +function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} +function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} +function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} +function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} +function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} +function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} +function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} +function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} +function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} +function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} +function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} +function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} +function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} +function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} +function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} +function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} +function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} +function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} +function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} +function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} +function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} +function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} +function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} +function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} +function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} +function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} +function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} +function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} +function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} +function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} +function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} +function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} +function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} +function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} +function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} +function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} +function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} +function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} +function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} +function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} +function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} +function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} +function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} +function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} +function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} +function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} +function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} +function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} +function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} +function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} +function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} +function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} +function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} +function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} +function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} +function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} +function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} +function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} +function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} +function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} +function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} +function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} +function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} +function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} +function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} +function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} +function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} +function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} +function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} +function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} +function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} +function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} +function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} +function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} +function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} +function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} +function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} +function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} +function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} +function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} +function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} +function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} +function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} +function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} +function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} +function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} +function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} +function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} +function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} +function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} +function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} +function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} +function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} +function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} +function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} +function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} +function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} +function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} +function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} +function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} +function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} +function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} +function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} +function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} +function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} +function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} +function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} +function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} +function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} +function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} +function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} +function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} +function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} +function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} +function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} +function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} +function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} +function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} +function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} +function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} +function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} +function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} +function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} +function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} +function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} +function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} +function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} +function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} +function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} +function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} +function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} +function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} +function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} +function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],3:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; +},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ +/** + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = Worker; +},{}]},{},[3])(3) +}); diff --git a/gen/local/elkjs/lib/main.d.ts b/gen/local/elkjs/lib/main.d.ts new file mode 100644 index 00000000..780a5cfd --- /dev/null +++ b/gen/local/elkjs/lib/main.d.ts @@ -0,0 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2019 TypeFox and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +export * from "./elk-api"; +import ElkConstructor from "./elk-api"; +export default ElkConstructor; diff --git a/gen/local/elkjs/lib/main.js b/gen/local/elkjs/lib/main.js new file mode 100644 index 00000000..f7199e87 --- /dev/null +++ b/gen/local/elkjs/lib/main.js @@ -0,0 +1,67 @@ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; \ No newline at end of file diff --git a/gen/local/elkjs/package.json b/gen/local/elkjs/package.json new file mode 100644 index 00000000..5cd49ffe --- /dev/null +++ b/gen/local/elkjs/package.json @@ -0,0 +1,53 @@ +{ + "name": "elkjs", + "version": "0.8.2", + "author": { + "name": "Ulf Rüegg", + "email": "uruurumail@gmail.com" + }, + "description": "Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.", + "main": "lib/main", + "types": "lib/main", + "files": [ + "lib" + ], + "repository": { + "type": "git", + "url": "https://github.com/kieler/elkjs.git" + }, + "keywords": [ + "graph", + "layout", + "layered", + "ports", + "dataflow" + ], + "license": "EPL-2.0", + "scripts": { + "test": "mocha test/mocha", + "gradle": "./gradlew lib", + "babel": "babel src/js/ -d build/js/", + "browserifyApi": "browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js", + "browserifyBundle": "browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js", + "browserify": "mkdirp lib && npm run browserifyApi && npm run browserifyBundle", + "cp": "cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/", + "js": "npm run babel && npm run browserify && npm run cp", + "build": "npm run gradle && npm run js", + "clean": "./gradlew clean && rm -r lib", + "setDevVersion": "npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\"" + }, + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.0", + "browserify": "^14.4.0", + "chai": "^4.0.2", + "chai-as-promised": "^7.1.1", + "mkdirp": "^0.5.0", + "mocha": "^10.0.0", + "web-worker": "^1.0.0" + }, + "publishConfig": { + "access": "public", + "tag": "next" + } +} diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart new file mode 100644 index 00000000..d6abb785 --- /dev/null +++ b/gen/one_hot_gen.dart @@ -0,0 +1,28 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// one_hot_gen.dart +// Generate one_hot codecs. +// +// 2023 May 09 +// Author: Desmond Kirkpatrick +// + +import 'dart:io'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/src/one_hot.dart'; +import 'package:rohd_hcl/src/utils.dart'; + +void one_hot_gen () async { + const pos = 8; + final w = log2Ceil(pos + 1); + final mod = BinaryToOneHot(Const(pos, width: w)); + await mod.build(); + final res = mod.generateSynth(); + File('build/${mod.definitionName}.v').openWrite().write(res); + final val = BigInt.from(2).pow(pos); + final mod2 = OneHotToBinary(Const(val, width: pos + 1)); + await mod2.build(); + final res2 = mod2.generateSynth(); + File('build/${mod2.definitionName}.v').openWrite().write(res2); +} diff --git a/gen/rf_gen.dart b/gen/rf_gen.dart new file mode 100644 index 00000000..705a97b4 --- /dev/null +++ b/gen/rf_gen.dart @@ -0,0 +1,41 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// rf_gen.dart +// Generate an example register file +// +// 2023 May 09 +// Author: Desmond Kirkpatrick +// + +import 'dart:io'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/rohd_hcl.dart'; +import 'package:test/test.dart'; + +void rf_gen () async { + const dataWidth = 16; + const addrWidth = 4; + + const numWr = 2; + const numRd = 2; + + final clk = SimpleClockGenerator(10).clk; + final reset = Logic(); + + final wrPorts = [ + for (var i = 0; i < numWr; i++) + DataPortInterface(dataWidth, addrWidth)..en.put(0) + ]; + final rdPorts = [ + for (var i = 0; i < numRd; i++) + DataPortInterface(dataWidth, addrWidth)..en.put(0) + ]; + + final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); + + await rf.build(); + + final res = rf.generateSynth(); + File('build/${rf.definitionName}.v').openWrite().write(res); +} diff --git a/gen/rotate_gen.dart b/gen/rotate_gen.dart new file mode 100644 index 00000000..e15147b1 --- /dev/null +++ b/gen/rotate_gen.dart @@ -0,0 +1,24 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// rotate_gen.dart +// Generate an example rotator +// +// 2023 May 09 +// Author: Desmond Kirkpatrick +// + +import 'dart:io'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/src/rotate.dart'; + +void rotate_gen() async { + final rot = RotateLeft( + Const(0xf000, width: 16), + Const(4, width: 8), + maxAmount: 4, + ); + await rot.build(); + final res = rot.generateSynth(); + File('build/${rot.definitionName}.v').openWrite().write(res); +} diff --git a/test/arbiter_test.dart b/test/arbiter_test.dart index 4f1ee127..e196e5e9 100644 --- a/test/arbiter_test.dart +++ b/test/arbiter_test.dart @@ -36,17 +36,4 @@ void main() { vector.put(bin('00010100')); expect(grantVec.value, LogicValue.ofString('00000100')); }); - - test('gen priority arbiter', () async { - const width = 8; - - final vector = Logic(width: width); - final reqs = List.generate(width, (i) => vector[i]); - - final arb = PriorityArbiter(reqs); - - await arb.build(); - final res = arb.generateSynth(); - File('build/${arb.definitionName}.v').openWrite().write(res); - }); } diff --git a/test/fifo_test.dart b/test/fifo_test.dart index 032eb198..95f70b93 100644 --- a/test/fifo_test.dart +++ b/test/fifo_test.dart @@ -273,26 +273,4 @@ void main() { Simulator.endSimulation(); await Simulator.simulationEnded; }); - test('gen fifo', () async { - final clk = SimpleClockGenerator(10).clk; - final reset = Logic()..put(0); - - final wrEn = Logic()..put(0); - final rdEn = Logic()..put(0); - final wrData = Logic(width: 32); - - final fifo = Fifo( - clk, - reset, - writeEnable: wrEn, - readEnable: rdEn, - writeData: wrData, - generateError: true, - generateOccupancy: true, - depth: 3, - ); - await fifo.build(); - final res = fifo.generateSynth(); - File('build/${fifo.definitionName}.v').openWrite().write(res); - }); } diff --git a/test/one_hot_test.dart b/test/one_hot_test.dart index 260e788d..ab2fc683 100644 --- a/test/one_hot_test.dart +++ b/test/one_hot_test.dart @@ -52,19 +52,4 @@ void main() { expect(computed.value, equals(expected)); } }); - - test('gen one-hot', () async { - // Generate one-hot codecs - const pos = 8; - final w = log2Ceil(pos + 1); - final mod = BinaryToOneHot(Const(pos, width: w)); - await mod.build(); - final res = mod.generateSynth(); - File('build/${mod.definitionName}.v').openWrite().write(res); - final val = BigInt.from(2).pow(pos); - final mod2 = OneHotToBinary(Const(val, width: pos + 1)); - await mod2.build(); - final res2 = mod2.generateSynth(); - File('build/${mod2.definitionName}.v').openWrite().write(res2); - }); } diff --git a/test/rf_test.dart b/test/rf_test.dart index a5799f85..8fcaf107 100644 --- a/test/rf_test.dart +++ b/test/rf_test.dart @@ -160,30 +160,4 @@ void main() { throwsA(const TypeMatcher())); }); }); - test('gen simple rf', () async { - const dataWidth = 16; - const addrWidth = 4; - - const numWr = 2; - const numRd = 2; - - final clk = SimpleClockGenerator(10).clk; - final reset = Logic(); - - final wrPorts = [ - for (var i = 0; i < numWr; i++) - DataPortInterface(dataWidth, addrWidth)..en.put(0) - ]; - final rdPorts = [ - for (var i = 0; i < numRd; i++) - DataPortInterface(dataWidth, addrWidth)..en.put(0) - ]; - - final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); - - await rf.build(); - - final res = rf.generateSynth(); - File('build/${rf.definitionName}.v').openWrite().write(res); - }); } diff --git a/test/rotate_test.dart b/test/rotate_test.dart index bd631632..a984e98f 100644 --- a/test/rotate_test.dart +++ b/test/rotate_test.dart @@ -91,15 +91,4 @@ void main() { expect(() => Logic().rotateLeft('badType'), throwsA(const TypeMatcher())); }); - - test('generate RotateLeft', () async { - final rot = RotateLeft( - Const(0xf000, width: 16), - Const(4, width: 8), - maxAmount: 4, - ); - await rot.build(); - final res = rot.generateSynth(); - File('build/${rot.definitionName}.v').openWrite().write(res); - }); } diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh index d9f513da..41774a5e 100755 --- a/tool/converters/verilog_json.sh +++ b/tool/converters/verilog_json.sh @@ -19,10 +19,9 @@ if !(test 1 -eq $#); then exit 1 fi; -yosys_area=../yosys -lib=$yosys_area/tests/liberty/normal.lib +yosys_bin=/oss-cad-suite/bin/yosys module=`basename $1 .v` -$yosys_area/yosys < +# + +set -euo pipefail + +cd doc/d3-hwschematic +npm install +npm install --only=dev +npm run build + +cd ../.. +mkdir doc/api/d3-hwschematic-assets +cp -r doc/d3-hwschematic/node_modules/d3 doc/api/d3-hwschematic-assets +cp -r doc/d3-hwschematic/node_modules/elkjs doc/api/d3-hwschematic-assets +cp doc/d3-hwschematic/dist/d3-hwschematic.{css,js} doc/api/d3-hwschematic-assets + +cd / +sudo wget -O oss-cad-suite-build.tgz https://github.com/YosysHQ/oss-cad-suite-build/releases/download/2023-05-12/oss-cad-suite-linux-x64-20230512.tgz + +sudo tar -xvzf oss-cad-suite-build.tgz + +# Trim if needed diff --git a/tool/gh_actions/install_synthesis.sh b/tool/gh_actions/install_synthesis.sh deleted file mode 100755 index ab458260..00000000 --- a/tool/gh_actions/install_synthesis.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: BSD-3-Clause -# -# install_synthesis.sh -# GitHub Actions step: Install project dependencies. -# -# 2023 May 09 -# Author: Desmond Kirkpatrick -# - -set -euo pipefail - -sudo apt-get update -DEBIAN_FRONTEND=noninteractive sudo apt-get install -y \ - build-essential \ - clang \ - bison \ - flex \ - libreadline-dev \ - gawk \ - tcl-dev \ - libffi-dev \ - git \ - pkg-config \ - python3 \ - python3-dev \ - python3-pip \ - python3-setuptools \ - python3-wheel \ - python3-tk - -sudo git clone https://github.com/YosysHQ/yosys.git -cd yosys -sudo make -j$(nproc) From 0941a1aa181d0a484b6f55bce5c063414de3a7f7 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 15:09:17 -0700 Subject: [PATCH 11/53] github submodules --- .github/workflows/general.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 330efc07..a8f83e55 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -16,6 +16,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + with: + submodules: recursive - name: Lint Markdown files uses: DavidAnson/markdownlint-cli2-action@v9 From 50d989823091d0ea297232a6a2553d1527ffede8 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 15:10:44 -0700 Subject: [PATCH 12/53] github submodules (untabify) --- .github/workflows/general.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index a8f83e55..6b457e81 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -16,8 +16,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - with: - submodules: recursive + with: + submodules: recursive - name: Lint Markdown files uses: DavidAnson/markdownlint-cli2-action@v9 From 51905dbd5cd8f13c77c0f967ce882d22f9d32340 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 15:35:17 -0700 Subject: [PATCH 13/53] more ignore lint entries --- .markdownlint-cli2.jsonc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index 2cd91120..c66455f7 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -10,6 +10,7 @@ "doc/d3-hwschematic-assets/", "doc/d3-hwschematic-assets/elkjs", "doc/api/d3-hwschematic-assets/", - "doc/api/d3-hwschematic-assets/elkjs" + "doc/api/d3-hwschematic-assets/elkjs", + "doc/d3-hwschematic/" ] } From f3dfe50d76ba7ce3dbf8bfd76ae65b619fa432b7 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 15:36:59 -0700 Subject: [PATCH 14/53] remove redundant elkjs --- gen/local/README.md | 2 - gen/local/d3/LICENSE | 27 - gen/local/d3/dist/d3.js | 19708 ----- gen/local/d3/dist/d3.min.js | 2 - gen/local/d3/dist/d3.node.js | 278 - gen/local/d3/dist/package.js | 16 - gen/local/dist/d3-hwschematic-dark.css | 96 - gen/local/dist/d3-hwschematic.css | 91 - gen/local/dist/d3-hwschematic.js | 2887 - gen/local/elkjs/LICENSE.md | 264 - gen/local/elkjs/README.md | 378 - gen/local/elkjs/lib/elk-api.d.ts | 131 - gen/local/elkjs/lib/elk-api.js | 224 - gen/local/elkjs/lib/elk-worker.d.ts | 1 - gen/local/elkjs/lib/elk-worker.js | 100643 ---------------------- gen/local/elkjs/lib/elk-worker.min.js | 6149 -- gen/local/elkjs/lib/elk.bundled.d.ts | 13 - gen/local/elkjs/lib/elk.bundled.js | 6444 -- gen/local/elkjs/lib/main.d.ts | 13 - gen/local/elkjs/lib/main.js | 67 - gen/local/elkjs/package.json | 53 - 21 files changed, 137487 deletions(-) delete mode 100644 gen/local/README.md delete mode 100644 gen/local/d3/LICENSE delete mode 100644 gen/local/d3/dist/d3.js delete mode 100644 gen/local/d3/dist/d3.min.js delete mode 100644 gen/local/d3/dist/d3.node.js delete mode 100644 gen/local/d3/dist/package.js delete mode 100644 gen/local/dist/d3-hwschematic-dark.css delete mode 100644 gen/local/dist/d3-hwschematic.css delete mode 100644 gen/local/dist/d3-hwschematic.js delete mode 100644 gen/local/elkjs/LICENSE.md delete mode 100644 gen/local/elkjs/README.md delete mode 100644 gen/local/elkjs/lib/elk-api.d.ts delete mode 100644 gen/local/elkjs/lib/elk-api.js delete mode 100644 gen/local/elkjs/lib/elk-worker.d.ts delete mode 100644 gen/local/elkjs/lib/elk-worker.js delete mode 100644 gen/local/elkjs/lib/elk-worker.min.js delete mode 100644 gen/local/elkjs/lib/elk.bundled.d.ts delete mode 100644 gen/local/elkjs/lib/elk.bundled.js delete mode 100644 gen/local/elkjs/lib/main.d.ts delete mode 100644 gen/local/elkjs/lib/main.js delete mode 100644 gen/local/elkjs/package.json diff --git a/gen/local/README.md b/gen/local/README.md deleted file mode 100644 index e557c17c..00000000 --- a/gen/local/README.md +++ /dev/null @@ -1,2 +0,0 @@ -These are grabbed from building Nic30/d3-hwschematic (115MB). -We only need the basic installed javascript for web pages (8MB). diff --git a/gen/local/d3/LICENSE b/gen/local/d3/LICENSE deleted file mode 100644 index 894ddc65..00000000 --- a/gen/local/d3/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2010-2020 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gen/local/d3/dist/d3.js b/gen/local/d3/dist/d3.js deleted file mode 100644 index 50605bd3..00000000 --- a/gen/local/d3/dist/d3.js +++ /dev/null @@ -1,19708 +0,0 @@ -// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {})); -}(this, (function (exports) { 'use strict'; - -var version = "6.7.0"; - -function ascending$3(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -} - -function bisector(f) { - let delta = f; - let compare = f; - - if (f.length === 1) { - delta = (d, x) => f(d) - x; - compare = ascendingComparator(f); - } - - function left(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - const mid = (lo + hi) >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; - } - return lo; - } - - function right(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - const mid = (lo + hi) >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; - } - return lo; - } - - function center(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - const i = left(a, x, lo, hi - 1); - return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; - } - - return {left, center, right}; -} - -function ascendingComparator(f) { - return (d, x) => ascending$3(f(d), x); -} - -function number$3(x) { - return x === null ? NaN : +x; -} - -function* numbers(values, valueof) { - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - yield value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - yield value; - } - } - } -} - -const ascendingBisect = bisector(ascending$3); -const bisectRight = ascendingBisect.right; -const bisectLeft = ascendingBisect.left; -const bisectCenter = bisector(number$3).center; - -function count$1(values, valueof) { - let count = 0; - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - ++count; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - ++count; - } - } - } - return count; -} - -function length$3(array) { - return array.length | 0; -} - -function empty$2(length) { - return !(length > 0); -} - -function arrayify(values) { - return typeof values !== "object" || "length" in values ? values : Array.from(values); -} - -function reducer(reduce) { - return values => reduce(...values); -} - -function cross$2(...values) { - const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop()); - values = values.map(arrayify); - const lengths = values.map(length$3); - const j = values.length - 1; - const index = new Array(j + 1).fill(0); - const product = []; - if (j < 0 || lengths.some(empty$2)) return product; - while (true) { - product.push(index.map((j, i) => values[i][j])); - let i = j; - while (++index[i] === lengths[i]) { - if (i === 0) return reduce ? product.map(reduce) : product; - index[i--] = 0; - } - } -} - -function cumsum(values, valueof) { - var sum = 0, index = 0; - return Float64Array.from(values, valueof === undefined - ? v => (sum += +v || 0) - : v => (sum += +valueof(v, index++, values) || 0)); -} - -function descending$2(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; -} - -function variance(values, valueof) { - let count = 0; - let delta; - let mean = 0; - let sum = 0; - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - delta = value - mean; - mean += delta / ++count; - sum += delta * (value - mean); - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - delta = value - mean; - mean += delta / ++count; - sum += delta * (value - mean); - } - } - } - if (count > 1) return sum / (count - 1); -} - -function deviation(values, valueof) { - const v = variance(values, valueof); - return v ? Math.sqrt(v) : v; -} - -function extent$1(values, valueof) { - let min; - let max; - if (valueof === undefined) { - for (const value of values) { - if (value != null) { - if (min === undefined) { - if (value >= value) min = max = value; - } else { - if (min > value) min = value; - if (max < value) max = value; - } - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null) { - if (min === undefined) { - if (value >= value) min = max = value; - } else { - if (min > value) min = value; - if (max < value) max = value; - } - } - } - } - return [min, max]; -} - -// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423 -class Adder { - constructor() { - this._partials = new Float64Array(32); - this._n = 0; - } - add(x) { - const p = this._partials; - let i = 0; - for (let j = 0; j < this._n && j < 32; j++) { - const y = p[j], - hi = x + y, - lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x); - if (lo) p[i++] = lo; - x = hi; - } - p[i] = x; - this._n = i + 1; - return this; - } - valueOf() { - const p = this._partials; - let n = this._n, x, y, lo, hi = 0; - if (n > 0) { - hi = p[--n]; - while (n > 0) { - x = hi; - y = p[--n]; - hi = x + y; - lo = y - (hi - x); - if (lo) break; - } - if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) { - y = lo * 2; - x = hi + y; - if (y == x - hi) hi = x; - } - } - return hi; - } -} - -function fsum(values, valueof) { - const adder = new Adder(); - if (valueof === undefined) { - for (let value of values) { - if (value = +value) { - adder.add(value); - } - } - } else { - let index = -1; - for (let value of values) { - if (value = +valueof(value, ++index, values)) { - adder.add(value); - } - } - } - return +adder; -} - -function fcumsum(values, valueof) { - const adder = new Adder(); - let index = -1; - return Float64Array.from(values, valueof === undefined - ? v => adder.add(+v || 0) - : v => adder.add(+valueof(v, ++index, values) || 0) - ); -} - -class InternMap extends Map { - constructor(entries, key = keyof) { - super(); - Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); - if (entries != null) for (const [key, value] of entries) this.set(key, value); - } - get(key) { - return super.get(intern_get(this, key)); - } - has(key) { - return super.has(intern_get(this, key)); - } - set(key, value) { - return super.set(intern_set(this, key), value); - } - delete(key) { - return super.delete(intern_delete(this, key)); - } -} - -class InternSet extends Set { - constructor(values, key = keyof) { - super(); - Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); - if (values != null) for (const value of values) this.add(value); - } - has(value) { - return super.has(intern_get(this, value)); - } - add(value) { - return super.add(intern_set(this, value)); - } - delete(value) { - return super.delete(intern_delete(this, value)); - } -} - -function intern_get({_intern, _key}, value) { - const key = _key(value); - return _intern.has(key) ? _intern.get(key) : value; -} - -function intern_set({_intern, _key}, value) { - const key = _key(value); - if (_intern.has(key)) return _intern.get(key); - _intern.set(key, value); - return value; -} - -function intern_delete({_intern, _key}, value) { - const key = _key(value); - if (_intern.has(key)) { - value = _intern.get(value); - _intern.delete(key); - } - return value; -} - -function keyof(value) { - return value !== null && typeof value === "object" ? value.valueOf() : value; -} - -function identity$9(x) { - return x; -} - -function group(values, ...keys) { - return nest(values, identity$9, identity$9, keys); -} - -function groups(values, ...keys) { - return nest(values, Array.from, identity$9, keys); -} - -function rollup(values, reduce, ...keys) { - return nest(values, identity$9, reduce, keys); -} - -function rollups(values, reduce, ...keys) { - return nest(values, Array.from, reduce, keys); -} - -function index$4(values, ...keys) { - return nest(values, identity$9, unique, keys); -} - -function indexes(values, ...keys) { - return nest(values, Array.from, unique, keys); -} - -function unique(values) { - if (values.length !== 1) throw new Error("duplicate key"); - return values[0]; -} - -function nest(values, map, reduce, keys) { - return (function regroup(values, i) { - if (i >= keys.length) return reduce(values); - const groups = new InternMap(); - const keyof = keys[i++]; - let index = -1; - for (const value of values) { - const key = keyof(value, ++index, values); - const group = groups.get(key); - if (group) group.push(value); - else groups.set(key, [value]); - } - for (const [key, values] of groups) { - groups.set(key, regroup(values, i)); - } - return map(groups); - })(values, 0); -} - -function permute(source, keys) { - return Array.from(keys, key => source[key]); -} - -function sort(values, ...F) { - if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); - values = Array.from(values); - let [f = ascending$3] = F; - if (f.length === 1 || F.length > 1) { - const index = Uint32Array.from(values, (d, i) => i); - if (F.length > 1) { - F = F.map(f => values.map(f)); - index.sort((i, j) => { - for (const f of F) { - const c = ascending$3(f[i], f[j]); - if (c) return c; - } - }); - } else { - f = values.map(f); - index.sort((i, j) => ascending$3(f[i], f[j])); - } - return permute(values, index); - } - return values.sort(f); -} - -function groupSort(values, reduce, key) { - return (reduce.length === 1 - ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending$3(av, bv) || ascending$3(ak, bk))) - : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending$3(ak, bk)))) - .map(([key]) => key); -} - -var array$5 = Array.prototype; - -var slice$4 = array$5.slice; - -function constant$b(x) { - return function() { - return x; - }; -} - -var e10 = Math.sqrt(50), - e5 = Math.sqrt(10), - e2 = Math.sqrt(2); - -function ticks(start, stop, count) { - var reverse, - i = -1, - n, - ticks, - step; - - stop = +stop, start = +start, count = +count; - if (start === stop && count > 0) return [start]; - if (reverse = stop < start) n = start, start = stop, stop = n; - if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; - - if (step > 0) { - let r0 = Math.round(start / step), r1 = Math.round(stop / step); - if (r0 * step < start) ++r0; - if (r1 * step > stop) --r1; - ticks = new Array(n = r1 - r0 + 1); - while (++i < n) ticks[i] = (r0 + i) * step; - } else { - step = -step; - let r0 = Math.round(start * step), r1 = Math.round(stop * step); - if (r0 / step < start) ++r0; - if (r1 / step > stop) --r1; - ticks = new Array(n = r1 - r0 + 1); - while (++i < n) ticks[i] = (r0 + i) / step; - } - - if (reverse) ticks.reverse(); - - return ticks; -} - -function tickIncrement(start, stop, count) { - var step = (stop - start) / Math.max(0, count), - power = Math.floor(Math.log(step) / Math.LN10), - error = step / Math.pow(10, power); - return power >= 0 - ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) - : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); -} - -function tickStep(start, stop, count) { - var step0 = Math.abs(stop - start) / Math.max(0, count), - step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), - error = step0 / step1; - if (error >= e10) step1 *= 10; - else if (error >= e5) step1 *= 5; - else if (error >= e2) step1 *= 2; - return stop < start ? -step1 : step1; -} - -function nice$1(start, stop, count) { - let prestep; - while (true) { - const step = tickIncrement(start, stop, count); - if (step === prestep || step === 0 || !isFinite(step)) { - return [start, stop]; - } else if (step > 0) { - start = Math.floor(start / step) * step; - stop = Math.ceil(stop / step) * step; - } else if (step < 0) { - start = Math.ceil(start * step) / step; - stop = Math.floor(stop * step) / step; - } - prestep = step; - } -} - -function thresholdSturges(values) { - return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1; -} - -function bin() { - var value = identity$9, - domain = extent$1, - threshold = thresholdSturges; - - function histogram(data) { - if (!Array.isArray(data)) data = Array.from(data); - - var i, - n = data.length, - x, - values = new Array(n); - - for (i = 0; i < n; ++i) { - values[i] = value(data[i], i, data); - } - - var xz = domain(values), - x0 = xz[0], - x1 = xz[1], - tz = threshold(values, x0, x1); - - // Convert number of thresholds into uniform thresholds, and nice the - // default domain accordingly. - if (!Array.isArray(tz)) { - const max = x1, tn = +tz; - if (domain === extent$1) [x0, x1] = nice$1(x0, x1, tn); - tz = ticks(x0, x1, tn); - - // If the last threshold is coincident with the domain’s upper bound, the - // last bin will be zero-width. If the default domain is used, and this - // last threshold is coincident with the maximum input value, we can - // extend the niced upper bound by one tick to ensure uniform bin widths; - // otherwise, we simply remove the last threshold. Note that we don’t - // coerce values or the domain to numbers, and thus must be careful to - // compare order (>=) rather than strict equality (===)! - if (tz[tz.length - 1] >= x1) { - if (max >= x1 && domain === extent$1) { - const step = tickIncrement(x0, x1, tn); - if (isFinite(step)) { - if (step > 0) { - x1 = (Math.floor(x1 / step) + 1) * step; - } else if (step < 0) { - x1 = (Math.ceil(x1 * -step) + 1) / -step; - } - } - } else { - tz.pop(); - } - } - } - - // Remove any thresholds outside the domain. - var m = tz.length; - while (tz[0] <= x0) tz.shift(), --m; - while (tz[m - 1] > x1) tz.pop(), --m; - - var bins = new Array(m + 1), - bin; - - // Initialize bins. - for (i = 0; i <= m; ++i) { - bin = bins[i] = []; - bin.x0 = i > 0 ? tz[i - 1] : x0; - bin.x1 = i < m ? tz[i] : x1; - } - - // Assign data to bins by value, ignoring any outside the domain. - for (i = 0; i < n; ++i) { - x = values[i]; - if (x0 <= x && x <= x1) { - bins[bisectRight(tz, x, 0, m)].push(data[i]); - } - } - - return bins; - } - - histogram.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant$b(_), histogram) : value; - }; - - histogram.domain = function(_) { - return arguments.length ? (domain = typeof _ === "function" ? _ : constant$b([_[0], _[1]]), histogram) : domain; - }; - - histogram.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$b(slice$4.call(_)) : constant$b(_), histogram) : threshold; - }; - - return histogram; -} - -function max$3(values, valueof) { - let max; - if (valueof === undefined) { - for (const value of values) { - if (value != null - && (max < value || (max === undefined && value >= value))) { - max = value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (max < value || (max === undefined && value >= value))) { - max = value; - } - } - } - return max; -} - -function min$2(values, valueof) { - let min; - if (valueof === undefined) { - for (const value of values) { - if (value != null - && (min > value || (min === undefined && value >= value))) { - min = value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (min > value || (min === undefined && value >= value))) { - min = value; - } - } - } - return min; -} - -// Based on https://github.com/mourner/quickselect -// ISC license, Copyright 2018 Vladimir Agafonkin. -function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending$3) { - while (right > left) { - if (right - left > 600) { - const n = right - left + 1; - const m = k - left + 1; - const z = Math.log(n); - const s = 0.5 * Math.exp(2 * z / 3); - const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); - const newLeft = Math.max(left, Math.floor(k - m * s / n + sd)); - const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd)); - quickselect(array, k, newLeft, newRight, compare); - } - - const t = array[k]; - let i = left; - let j = right; - - swap$1(array, left, k); - if (compare(array[right], t) > 0) swap$1(array, left, right); - - while (i < j) { - swap$1(array, i, j), ++i, --j; - while (compare(array[i], t) < 0) ++i; - while (compare(array[j], t) > 0) --j; - } - - if (compare(array[left], t) === 0) swap$1(array, left, j); - else ++j, swap$1(array, j, right); - - if (j <= k) left = j + 1; - if (k <= j) right = j - 1; - } - return array; -} - -function swap$1(array, i, j) { - const t = array[i]; - array[i] = array[j]; - array[j] = t; -} - -function quantile$1(values, p, valueof) { - values = Float64Array.from(numbers(values, valueof)); - if (!(n = values.length)) return; - if ((p = +p) <= 0 || n < 2) return min$2(values); - if (p >= 1) return max$3(values); - var n, - i = (n - 1) * p, - i0 = Math.floor(i), - value0 = max$3(quickselect(values, i0).subarray(0, i0 + 1)), - value1 = min$2(values.subarray(i0 + 1)); - return value0 + (value1 - value0) * (i - i0); -} - -function quantileSorted(values, p, valueof = number$3) { - if (!(n = values.length)) return; - if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values); - if (p >= 1) return +valueof(values[n - 1], n - 1, values); - var n, - i = (n - 1) * p, - i0 = Math.floor(i), - value0 = +valueof(values[i0], i0, values), - value1 = +valueof(values[i0 + 1], i0 + 1, values); - return value0 + (value1 - value0) * (i - i0); -} - -function freedmanDiaconis(values, min, max) { - return Math.ceil((max - min) / (2 * (quantile$1(values, 0.75) - quantile$1(values, 0.25)) * Math.pow(count$1(values), -1 / 3))); -} - -function scott(values, min, max) { - return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count$1(values), -1 / 3))); -} - -function maxIndex(values, valueof) { - let max; - let maxIndex = -1; - let index = -1; - if (valueof === undefined) { - for (const value of values) { - ++index; - if (value != null - && (max < value || (max === undefined && value >= value))) { - max = value, maxIndex = index; - } - } - } else { - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (max < value || (max === undefined && value >= value))) { - max = value, maxIndex = index; - } - } - } - return maxIndex; -} - -function mean(values, valueof) { - let count = 0; - let sum = 0; - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - ++count, sum += value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - ++count, sum += value; - } - } - } - if (count) return sum / count; -} - -function median(values, valueof) { - return quantile$1(values, 0.5, valueof); -} - -function* flatten(arrays) { - for (const array of arrays) { - yield* array; - } -} - -function merge(arrays) { - return Array.from(flatten(arrays)); -} - -function minIndex(values, valueof) { - let min; - let minIndex = -1; - let index = -1; - if (valueof === undefined) { - for (const value of values) { - ++index; - if (value != null - && (min > value || (min === undefined && value >= value))) { - min = value, minIndex = index; - } - } - } else { - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (min > value || (min === undefined && value >= value))) { - min = value, minIndex = index; - } - } - } - return minIndex; -} - -function pairs(values, pairof = pair) { - const pairs = []; - let previous; - let first = false; - for (const value of values) { - if (first) pairs.push(pairof(previous, value)); - previous = value; - first = true; - } - return pairs; -} - -function pair(a, b) { - return [a, b]; -} - -function sequence(start, stop, step) { - start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; - - var i = -1, - n = Math.max(0, Math.ceil((stop - start) / step)) | 0, - range = new Array(n); - - while (++i < n) { - range[i] = start + i * step; - } - - return range; -} - -function least(values, compare = ascending$3) { - let min; - let defined = false; - if (compare.length === 1) { - let minValue; - for (const element of values) { - const value = compare(element); - if (defined - ? ascending$3(value, minValue) < 0 - : ascending$3(value, value) === 0) { - min = element; - minValue = value; - defined = true; - } - } - } else { - for (const value of values) { - if (defined - ? compare(value, min) < 0 - : compare(value, value) === 0) { - min = value; - defined = true; - } - } - } - return min; -} - -function leastIndex(values, compare = ascending$3) { - if (compare.length === 1) return minIndex(values, compare); - let minValue; - let min = -1; - let index = -1; - for (const value of values) { - ++index; - if (min < 0 - ? compare(value, value) === 0 - : compare(value, minValue) < 0) { - minValue = value; - min = index; - } - } - return min; -} - -function greatest(values, compare = ascending$3) { - let max; - let defined = false; - if (compare.length === 1) { - let maxValue; - for (const element of values) { - const value = compare(element); - if (defined - ? ascending$3(value, maxValue) > 0 - : ascending$3(value, value) === 0) { - max = element; - maxValue = value; - defined = true; - } - } - } else { - for (const value of values) { - if (defined - ? compare(value, max) > 0 - : compare(value, value) === 0) { - max = value; - defined = true; - } - } - } - return max; -} - -function greatestIndex(values, compare = ascending$3) { - if (compare.length === 1) return maxIndex(values, compare); - let maxValue; - let max = -1; - let index = -1; - for (const value of values) { - ++index; - if (max < 0 - ? compare(value, value) === 0 - : compare(value, maxValue) > 0) { - maxValue = value; - max = index; - } - } - return max; -} - -function scan(values, compare) { - const index = leastIndex(values, compare); - return index < 0 ? undefined : index; -} - -var shuffle$1 = shuffler(Math.random); - -function shuffler(random) { - return function shuffle(array, i0 = 0, i1 = array.length) { - let m = i1 - (i0 = +i0); - while (m) { - const i = random() * m-- | 0, t = array[m + i0]; - array[m + i0] = array[i + i0]; - array[i + i0] = t; - } - return array; - }; -} - -function sum$1(values, valueof) { - let sum = 0; - if (valueof === undefined) { - for (let value of values) { - if (value = +value) { - sum += value; - } - } - } else { - let index = -1; - for (let value of values) { - if (value = +valueof(value, ++index, values)) { - sum += value; - } - } - } - return sum; -} - -function transpose(matrix) { - if (!(n = matrix.length)) return []; - for (var i = -1, m = min$2(matrix, length$2), transpose = new Array(m); ++i < m;) { - for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { - row[j] = matrix[j][i]; - } - } - return transpose; -} - -function length$2(d) { - return d.length; -} - -function zip() { - return transpose(arguments); -} - -function every(values, test) { - if (typeof test !== "function") throw new TypeError("test is not a function"); - let index = -1; - for (const value of values) { - if (!test(value, ++index, values)) { - return false; - } - } - return true; -} - -function some(values, test) { - if (typeof test !== "function") throw new TypeError("test is not a function"); - let index = -1; - for (const value of values) { - if (test(value, ++index, values)) { - return true; - } - } - return false; -} - -function filter$1(values, test) { - if (typeof test !== "function") throw new TypeError("test is not a function"); - const array = []; - let index = -1; - for (const value of values) { - if (test(value, ++index, values)) { - array.push(value); - } - } - return array; -} - -function map$1(values, mapper) { - if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); - if (typeof mapper !== "function") throw new TypeError("mapper is not a function"); - return Array.from(values, (value, index) => mapper(value, index, values)); -} - -function reduce(values, reducer, value) { - if (typeof reducer !== "function") throw new TypeError("reducer is not a function"); - const iterator = values[Symbol.iterator](); - let done, next, index = -1; - if (arguments.length < 3) { - ({done, value} = iterator.next()); - if (done) return; - ++index; - } - while (({done, value: next} = iterator.next()), !done) { - value = reducer(value, next, ++index, values); - } - return value; -} - -function reverse$1(values) { - if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); - return Array.from(values).reverse(); -} - -function difference(values, ...others) { - values = new Set(values); - for (const other of others) { - for (const value of other) { - values.delete(value); - } - } - return values; -} - -function disjoint(values, other) { - const iterator = other[Symbol.iterator](), set = new Set(); - for (const v of values) { - if (set.has(v)) return false; - let value, done; - while (({value, done} = iterator.next())) { - if (done) break; - if (Object.is(v, value)) return false; - set.add(value); - } - } - return true; -} - -function set$2(values) { - return values instanceof Set ? values : new Set(values); -} - -function intersection(values, ...others) { - values = new Set(values); - others = others.map(set$2); - out: for (const value of values) { - for (const other of others) { - if (!other.has(value)) { - values.delete(value); - continue out; - } - } - } - return values; -} - -function superset(values, other) { - const iterator = values[Symbol.iterator](), set = new Set(); - for (const o of other) { - if (set.has(o)) continue; - let value, done; - while (({value, done} = iterator.next())) { - if (done) return false; - set.add(value); - if (Object.is(o, value)) break; - } - } - return true; -} - -function subset(values, other) { - return superset(other, values); -} - -function union(...others) { - const set = new Set(); - for (const other of others) { - for (const o of other) { - set.add(o); - } - } - return set; -} - -var slice$3 = Array.prototype.slice; - -function identity$8(x) { - return x; -} - -var top = 1, - right = 2, - bottom = 3, - left = 4, - epsilon$5 = 1e-6; - -function translateX(x) { - return "translate(" + x + ",0)"; -} - -function translateY(y) { - return "translate(0," + y + ")"; -} - -function number$2(scale) { - return d => +scale(d); -} - -function center$1(scale, offset) { - offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; - if (scale.round()) offset = Math.round(offset); - return d => +scale(d) + offset; -} - -function entering() { - return !this.__axis; -} - -function axis(orient, scale) { - var tickArguments = [], - tickValues = null, - tickFormat = null, - tickSizeInner = 6, - tickSizeOuter = 6, - tickPadding = 3, - offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, - k = orient === top || orient === left ? -1 : 1, - x = orient === left || orient === right ? "x" : "y", - transform = orient === top || orient === bottom ? translateX : translateY; - - function axis(context) { - var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues, - format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$8) : tickFormat, - spacing = Math.max(tickSizeInner, 0) + tickPadding, - range = scale.range(), - range0 = +range[0] + offset, - range1 = +range[range.length - 1] + offset, - position = (scale.bandwidth ? center$1 : number$2)(scale.copy(), offset), - selection = context.selection ? context.selection() : context, - path = selection.selectAll(".domain").data([null]), - tick = selection.selectAll(".tick").data(values, scale).order(), - tickExit = tick.exit(), - tickEnter = tick.enter().append("g").attr("class", "tick"), - line = tick.select("line"), - text = tick.select("text"); - - path = path.merge(path.enter().insert("path", ".tick") - .attr("class", "domain") - .attr("stroke", "currentColor")); - - tick = tick.merge(tickEnter); - - line = line.merge(tickEnter.append("line") - .attr("stroke", "currentColor") - .attr(x + "2", k * tickSizeInner)); - - text = text.merge(tickEnter.append("text") - .attr("fill", "currentColor") - .attr(x, k * spacing) - .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); - - if (context !== selection) { - path = path.transition(context); - tick = tick.transition(context); - line = line.transition(context); - text = text.transition(context); - - tickExit = tickExit.transition(context) - .attr("opacity", epsilon$5) - .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); }); - - tickEnter - .attr("opacity", epsilon$5) - .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); }); - } - - tickExit.remove(); - - path - .attr("d", orient === left || orient === right - ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1) - : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1)); - - tick - .attr("opacity", 1) - .attr("transform", function(d) { return transform(position(d) + offset); }); - - line - .attr(x + "2", k * tickSizeInner); - - text - .attr(x, k * spacing) - .text(format); - - selection.filter(entering) - .attr("fill", "none") - .attr("font-size", 10) - .attr("font-family", "sans-serif") - .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); - - selection - .each(function() { this.__axis = position; }); - } - - axis.scale = function(_) { - return arguments.length ? (scale = _, axis) : scale; - }; - - axis.ticks = function() { - return tickArguments = slice$3.call(arguments), axis; - }; - - axis.tickArguments = function(_) { - return arguments.length ? (tickArguments = _ == null ? [] : slice$3.call(_), axis) : tickArguments.slice(); - }; - - axis.tickValues = function(_) { - return arguments.length ? (tickValues = _ == null ? null : slice$3.call(_), axis) : tickValues && tickValues.slice(); - }; - - axis.tickFormat = function(_) { - return arguments.length ? (tickFormat = _, axis) : tickFormat; - }; - - axis.tickSize = function(_) { - return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner; - }; - - axis.tickSizeInner = function(_) { - return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner; - }; - - axis.tickSizeOuter = function(_) { - return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter; - }; - - axis.tickPadding = function(_) { - return arguments.length ? (tickPadding = +_, axis) : tickPadding; - }; - - axis.offset = function(_) { - return arguments.length ? (offset = +_, axis) : offset; - }; - - return axis; -} - -function axisTop(scale) { - return axis(top, scale); -} - -function axisRight(scale) { - return axis(right, scale); -} - -function axisBottom(scale) { - return axis(bottom, scale); -} - -function axisLeft(scale) { - return axis(left, scale); -} - -var noop$3 = {value: () => {}}; - -function dispatch() { - for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { - if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); - _[t] = []; - } - return new Dispatch(_); -} - -function Dispatch(_) { - this._ = _; -} - -function parseTypenames$1(typenames, types) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); - return {type: t, name: name}; - }); -} - -Dispatch.prototype = dispatch.prototype = { - constructor: Dispatch, - on: function(typename, callback) { - var _ = this._, - T = parseTypenames$1(typename + "", _), - t, - i = -1, - n = T.length; - - // If no callback was specified, return the callback of the given type and name. - if (arguments.length < 2) { - while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t; - return; - } - - // If a type was specified, set the callback for the given type and name. - // Otherwise, if a null callback was specified, remove callbacks of the given name. - if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); - while (++i < n) { - if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback); - else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null); - } - - return this; - }, - copy: function() { - var copy = {}, _ = this._; - for (var t in _) copy[t] = _[t].slice(); - return new Dispatch(copy); - }, - call: function(type, that) { - if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - }, - apply: function(type, that, args) { - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - } -}; - -function get$1(type, name) { - for (var i = 0, n = type.length, c; i < n; ++i) { - if ((c = type[i]).name === name) { - return c.value; - } - } -} - -function set$1(type, name, callback) { - for (var i = 0, n = type.length; i < n; ++i) { - if (type[i].name === name) { - type[i] = noop$3, type = type.slice(0, i).concat(type.slice(i + 1)); - break; - } - } - if (callback != null) type.push({name: name, value: callback}); - return type; -} - -var xhtml = "http://www.w3.org/1999/xhtml"; - -var namespaces = { - svg: "http://www.w3.org/2000/svg", - xhtml: xhtml, - xlink: "http://www.w3.org/1999/xlink", - xml: "http://www.w3.org/XML/1998/namespace", - xmlns: "http://www.w3.org/2000/xmlns/" -}; - -function namespace(name) { - var prefix = name += "", i = prefix.indexOf(":"); - if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); - return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins -} - -function creatorInherit(name) { - return function() { - var document = this.ownerDocument, - uri = this.namespaceURI; - return uri === xhtml && document.documentElement.namespaceURI === xhtml - ? document.createElement(name) - : document.createElementNS(uri, name); - }; -} - -function creatorFixed(fullname) { - return function() { - return this.ownerDocument.createElementNS(fullname.space, fullname.local); - }; -} - -function creator(name) { - var fullname = namespace(name); - return (fullname.local - ? creatorFixed - : creatorInherit)(fullname); -} - -function none$2() {} - -function selector(selector) { - return selector == null ? none$2 : function() { - return this.querySelector(selector); - }; -} - -function selection_select(select) { - if (typeof select !== "function") select = selector(select); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { - if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { - if ("__data__" in node) subnode.__data__ = node.__data__; - subgroup[i] = subnode; - } - } - } - - return new Selection$1(subgroups, this._parents); -} - -function array$4(x) { - return typeof x === "object" && "length" in x - ? x // Array, TypedArray, NodeList, array-like - : Array.from(x); // Map, Set, iterable, string, or anything else -} - -function empty$1() { - return []; -} - -function selectorAll(selector) { - return selector == null ? empty$1 : function() { - return this.querySelectorAll(selector); - }; -} - -function arrayAll(select) { - return function() { - var group = select.apply(this, arguments); - return group == null ? [] : array$4(group); - }; -} - -function selection_selectAll(select) { - if (typeof select === "function") select = arrayAll(select); - else select = selectorAll(select); - - for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - subgroups.push(select.call(node, node.__data__, i, group)); - parents.push(node); - } - } - } - - return new Selection$1(subgroups, parents); -} - -function matcher(selector) { - return function() { - return this.matches(selector); - }; -} - -function childMatcher(selector) { - return function(node) { - return node.matches(selector); - }; -} - -var find$1 = Array.prototype.find; - -function childFind(match) { - return function() { - return find$1.call(this.children, match); - }; -} - -function childFirst() { - return this.firstElementChild; -} - -function selection_selectChild(match) { - return this.select(match == null ? childFirst - : childFind(typeof match === "function" ? match : childMatcher(match))); -} - -var filter = Array.prototype.filter; - -function children() { - return this.children; -} - -function childrenFilter(match) { - return function() { - return filter.call(this.children, match); - }; -} - -function selection_selectChildren(match) { - return this.selectAll(match == null ? children - : childrenFilter(typeof match === "function" ? match : childMatcher(match))); -} - -function selection_filter(match) { - if (typeof match !== "function") match = matcher(match); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { - if ((node = group[i]) && match.call(node, node.__data__, i, group)) { - subgroup.push(node); - } - } - } - - return new Selection$1(subgroups, this._parents); -} - -function sparse(update) { - return new Array(update.length); -} - -function selection_enter() { - return new Selection$1(this._enter || this._groups.map(sparse), this._parents); -} - -function EnterNode(parent, datum) { - this.ownerDocument = parent.ownerDocument; - this.namespaceURI = parent.namespaceURI; - this._next = null; - this._parent = parent; - this.__data__ = datum; -} - -EnterNode.prototype = { - constructor: EnterNode, - appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, - insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, - querySelector: function(selector) { return this._parent.querySelector(selector); }, - querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } -}; - -function constant$a(x) { - return function() { - return x; - }; -} - -function bindIndex(parent, group, enter, update, exit, data) { - var i = 0, - node, - groupLength = group.length, - dataLength = data.length; - - // Put any non-null nodes that fit into update. - // Put any null nodes into enter. - // Put any remaining data into enter. - for (; i < dataLength; ++i) { - if (node = group[i]) { - node.__data__ = data[i]; - update[i] = node; - } else { - enter[i] = new EnterNode(parent, data[i]); - } - } - - // Put any non-null nodes that don’t fit into exit. - for (; i < groupLength; ++i) { - if (node = group[i]) { - exit[i] = node; - } - } -} - -function bindKey(parent, group, enter, update, exit, data, key) { - var i, - node, - nodeByKeyValue = new Map, - groupLength = group.length, - dataLength = data.length, - keyValues = new Array(groupLength), - keyValue; - - // Compute the key for each node. - // If multiple nodes have the same key, the duplicates are added to exit. - for (i = 0; i < groupLength; ++i) { - if (node = group[i]) { - keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; - if (nodeByKeyValue.has(keyValue)) { - exit[i] = node; - } else { - nodeByKeyValue.set(keyValue, node); - } - } - } - - // Compute the key for each datum. - // If there a node associated with this key, join and add it to update. - // If there is not (or the key is a duplicate), add it to enter. - for (i = 0; i < dataLength; ++i) { - keyValue = key.call(parent, data[i], i, data) + ""; - if (node = nodeByKeyValue.get(keyValue)) { - update[i] = node; - node.__data__ = data[i]; - nodeByKeyValue.delete(keyValue); - } else { - enter[i] = new EnterNode(parent, data[i]); - } - } - - // Add any remaining nodes that were not bound to data to exit. - for (i = 0; i < groupLength; ++i) { - if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) { - exit[i] = node; - } - } -} - -function datum(node) { - return node.__data__; -} - -function selection_data(value, key) { - if (!arguments.length) return Array.from(this, datum); - - var bind = key ? bindKey : bindIndex, - parents = this._parents, - groups = this._groups; - - if (typeof value !== "function") value = constant$a(value); - - for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { - var parent = parents[j], - group = groups[j], - groupLength = group.length, - data = array$4(value.call(parent, parent && parent.__data__, j, parents)), - dataLength = data.length, - enterGroup = enter[j] = new Array(dataLength), - updateGroup = update[j] = new Array(dataLength), - exitGroup = exit[j] = new Array(groupLength); - - bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); - - // Now connect the enter nodes to their following update node, such that - // appendChild can insert the materialized enter node before this node, - // rather than at the end of the parent node. - for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { - if (previous = enterGroup[i0]) { - if (i0 >= i1) i1 = i0 + 1; - while (!(next = updateGroup[i1]) && ++i1 < dataLength); - previous._next = next || null; - } - } - } - - update = new Selection$1(update, parents); - update._enter = enter; - update._exit = exit; - return update; -} - -function selection_exit() { - return new Selection$1(this._exit || this._groups.map(sparse), this._parents); -} - -function selection_join(onenter, onupdate, onexit) { - var enter = this.enter(), update = this, exit = this.exit(); - enter = typeof onenter === "function" ? onenter(enter) : enter.append(onenter + ""); - if (onupdate != null) update = onupdate(update); - if (onexit == null) exit.remove(); else onexit(exit); - return enter && update ? enter.merge(update).order() : update; -} - -function selection_merge(selection) { - if (!(selection instanceof Selection$1)) throw new Error("invalid merge"); - - for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { - for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group0[i] || group1[i]) { - merge[i] = node; - } - } - } - - for (; j < m0; ++j) { - merges[j] = groups0[j]; - } - - return new Selection$1(merges, this._parents); -} - -function selection_order() { - - for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { - for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { - if (node = group[i]) { - if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); - next = node; - } - } - } - - return this; -} - -function selection_sort(compare) { - if (!compare) compare = ascending$2; - - function compareNode(a, b) { - return a && b ? compare(a.__data__, b.__data__) : !a - !b; - } - - for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group[i]) { - sortgroup[i] = node; - } - } - sortgroup.sort(compareNode); - } - - return new Selection$1(sortgroups, this._parents).order(); -} - -function ascending$2(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -} - -function selection_call() { - var callback = arguments[0]; - arguments[0] = this; - callback.apply(null, arguments); - return this; -} - -function selection_nodes() { - return Array.from(this); -} - -function selection_node() { - - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { - var node = group[i]; - if (node) return node; - } - } - - return null; -} - -function selection_size() { - let size = 0; - for (const node of this) ++size; // eslint-disable-line no-unused-vars - return size; -} - -function selection_empty() { - return !this.node(); -} - -function selection_each(callback) { - - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { - if (node = group[i]) callback.call(node, node.__data__, i, group); - } - } - - return this; -} - -function attrRemove$1(name) { - return function() { - this.removeAttribute(name); - }; -} - -function attrRemoveNS$1(fullname) { - return function() { - this.removeAttributeNS(fullname.space, fullname.local); - }; -} - -function attrConstant$1(name, value) { - return function() { - this.setAttribute(name, value); - }; -} - -function attrConstantNS$1(fullname, value) { - return function() { - this.setAttributeNS(fullname.space, fullname.local, value); - }; -} - -function attrFunction$1(name, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.removeAttribute(name); - else this.setAttribute(name, v); - }; -} - -function attrFunctionNS$1(fullname, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.removeAttributeNS(fullname.space, fullname.local); - else this.setAttributeNS(fullname.space, fullname.local, v); - }; -} - -function selection_attr(name, value) { - var fullname = namespace(name); - - if (arguments.length < 2) { - var node = this.node(); - return fullname.local - ? node.getAttributeNS(fullname.space, fullname.local) - : node.getAttribute(fullname); - } - - return this.each((value == null - ? (fullname.local ? attrRemoveNS$1 : attrRemove$1) : (typeof value === "function" - ? (fullname.local ? attrFunctionNS$1 : attrFunction$1) - : (fullname.local ? attrConstantNS$1 : attrConstant$1)))(fullname, value)); -} - -function defaultView(node) { - return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node - || (node.document && node) // node is a Window - || node.defaultView; // node is a Document -} - -function styleRemove$1(name) { - return function() { - this.style.removeProperty(name); - }; -} - -function styleConstant$1(name, value, priority) { - return function() { - this.style.setProperty(name, value, priority); - }; -} - -function styleFunction$1(name, value, priority) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.style.removeProperty(name); - else this.style.setProperty(name, v, priority); - }; -} - -function selection_style(name, value, priority) { - return arguments.length > 1 - ? this.each((value == null - ? styleRemove$1 : typeof value === "function" - ? styleFunction$1 - : styleConstant$1)(name, value, priority == null ? "" : priority)) - : styleValue(this.node(), name); -} - -function styleValue(node, name) { - return node.style.getPropertyValue(name) - || defaultView(node).getComputedStyle(node, null).getPropertyValue(name); -} - -function propertyRemove(name) { - return function() { - delete this[name]; - }; -} - -function propertyConstant(name, value) { - return function() { - this[name] = value; - }; -} - -function propertyFunction(name, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) delete this[name]; - else this[name] = v; - }; -} - -function selection_property(name, value) { - return arguments.length > 1 - ? this.each((value == null - ? propertyRemove : typeof value === "function" - ? propertyFunction - : propertyConstant)(name, value)) - : this.node()[name]; -} - -function classArray(string) { - return string.trim().split(/^|\s+/); -} - -function classList(node) { - return node.classList || new ClassList(node); -} - -function ClassList(node) { - this._node = node; - this._names = classArray(node.getAttribute("class") || ""); -} - -ClassList.prototype = { - add: function(name) { - var i = this._names.indexOf(name); - if (i < 0) { - this._names.push(name); - this._node.setAttribute("class", this._names.join(" ")); - } - }, - remove: function(name) { - var i = this._names.indexOf(name); - if (i >= 0) { - this._names.splice(i, 1); - this._node.setAttribute("class", this._names.join(" ")); - } - }, - contains: function(name) { - return this._names.indexOf(name) >= 0; - } -}; - -function classedAdd(node, names) { - var list = classList(node), i = -1, n = names.length; - while (++i < n) list.add(names[i]); -} - -function classedRemove(node, names) { - var list = classList(node), i = -1, n = names.length; - while (++i < n) list.remove(names[i]); -} - -function classedTrue(names) { - return function() { - classedAdd(this, names); - }; -} - -function classedFalse(names) { - return function() { - classedRemove(this, names); - }; -} - -function classedFunction(names, value) { - return function() { - (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); - }; -} - -function selection_classed(name, value) { - var names = classArray(name + ""); - - if (arguments.length < 2) { - var list = classList(this.node()), i = -1, n = names.length; - while (++i < n) if (!list.contains(names[i])) return false; - return true; - } - - return this.each((typeof value === "function" - ? classedFunction : value - ? classedTrue - : classedFalse)(names, value)); -} - -function textRemove() { - this.textContent = ""; -} - -function textConstant$1(value) { - return function() { - this.textContent = value; - }; -} - -function textFunction$1(value) { - return function() { - var v = value.apply(this, arguments); - this.textContent = v == null ? "" : v; - }; -} - -function selection_text(value) { - return arguments.length - ? this.each(value == null - ? textRemove : (typeof value === "function" - ? textFunction$1 - : textConstant$1)(value)) - : this.node().textContent; -} - -function htmlRemove() { - this.innerHTML = ""; -} - -function htmlConstant(value) { - return function() { - this.innerHTML = value; - }; -} - -function htmlFunction(value) { - return function() { - var v = value.apply(this, arguments); - this.innerHTML = v == null ? "" : v; - }; -} - -function selection_html(value) { - return arguments.length - ? this.each(value == null - ? htmlRemove : (typeof value === "function" - ? htmlFunction - : htmlConstant)(value)) - : this.node().innerHTML; -} - -function raise() { - if (this.nextSibling) this.parentNode.appendChild(this); -} - -function selection_raise() { - return this.each(raise); -} - -function lower() { - if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); -} - -function selection_lower() { - return this.each(lower); -} - -function selection_append(name) { - var create = typeof name === "function" ? name : creator(name); - return this.select(function() { - return this.appendChild(create.apply(this, arguments)); - }); -} - -function constantNull() { - return null; -} - -function selection_insert(name, before) { - var create = typeof name === "function" ? name : creator(name), - select = before == null ? constantNull : typeof before === "function" ? before : selector(before); - return this.select(function() { - return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); - }); -} - -function remove() { - var parent = this.parentNode; - if (parent) parent.removeChild(this); -} - -function selection_remove() { - return this.each(remove); -} - -function selection_cloneShallow() { - var clone = this.cloneNode(false), parent = this.parentNode; - return parent ? parent.insertBefore(clone, this.nextSibling) : clone; -} - -function selection_cloneDeep() { - var clone = this.cloneNode(true), parent = this.parentNode; - return parent ? parent.insertBefore(clone, this.nextSibling) : clone; -} - -function selection_clone(deep) { - return this.select(deep ? selection_cloneDeep : selection_cloneShallow); -} - -function selection_datum(value) { - return arguments.length - ? this.property("__data__", value) - : this.node().__data__; -} - -function contextListener(listener) { - return function(event) { - listener.call(this, event, this.__data__); - }; -} - -function parseTypenames(typenames) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - return {type: t, name: name}; - }); -} - -function onRemove(typename) { - return function() { - var on = this.__on; - if (!on) return; - for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { - if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { - this.removeEventListener(o.type, o.listener, o.options); - } else { - on[++i] = o; - } - } - if (++i) on.length = i; - else delete this.__on; - }; -} - -function onAdd(typename, value, options) { - return function() { - var on = this.__on, o, listener = contextListener(value); - if (on) for (var j = 0, m = on.length; j < m; ++j) { - if ((o = on[j]).type === typename.type && o.name === typename.name) { - this.removeEventListener(o.type, o.listener, o.options); - this.addEventListener(o.type, o.listener = listener, o.options = options); - o.value = value; - return; - } - } - this.addEventListener(typename.type, listener, options); - o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options}; - if (!on) this.__on = [o]; - else on.push(o); - }; -} - -function selection_on(typename, value, options) { - var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; - - if (arguments.length < 2) { - var on = this.node().__on; - if (on) for (var j = 0, m = on.length, o; j < m; ++j) { - for (i = 0, o = on[j]; i < n; ++i) { - if ((t = typenames[i]).type === o.type && t.name === o.name) { - return o.value; - } - } - } - return; - } - - on = value ? onAdd : onRemove; - for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); - return this; -} - -function dispatchEvent(node, type, params) { - var window = defaultView(node), - event = window.CustomEvent; - - if (typeof event === "function") { - event = new event(type, params); - } else { - event = window.document.createEvent("Event"); - if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; - else event.initEvent(type, false, false); - } - - node.dispatchEvent(event); -} - -function dispatchConstant(type, params) { - return function() { - return dispatchEvent(this, type, params); - }; -} - -function dispatchFunction(type, params) { - return function() { - return dispatchEvent(this, type, params.apply(this, arguments)); - }; -} - -function selection_dispatch(type, params) { - return this.each((typeof params === "function" - ? dispatchFunction - : dispatchConstant)(type, params)); -} - -function* selection_iterator() { - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { - if (node = group[i]) yield node; - } - } -} - -var root$1 = [null]; - -function Selection$1(groups, parents) { - this._groups = groups; - this._parents = parents; -} - -function selection() { - return new Selection$1([[document.documentElement]], root$1); -} - -function selection_selection() { - return this; -} - -Selection$1.prototype = selection.prototype = { - constructor: Selection$1, - select: selection_select, - selectAll: selection_selectAll, - selectChild: selection_selectChild, - selectChildren: selection_selectChildren, - filter: selection_filter, - data: selection_data, - enter: selection_enter, - exit: selection_exit, - join: selection_join, - merge: selection_merge, - selection: selection_selection, - order: selection_order, - sort: selection_sort, - call: selection_call, - nodes: selection_nodes, - node: selection_node, - size: selection_size, - empty: selection_empty, - each: selection_each, - attr: selection_attr, - style: selection_style, - property: selection_property, - classed: selection_classed, - text: selection_text, - html: selection_html, - raise: selection_raise, - lower: selection_lower, - append: selection_append, - insert: selection_insert, - remove: selection_remove, - clone: selection_clone, - datum: selection_datum, - on: selection_on, - dispatch: selection_dispatch, - [Symbol.iterator]: selection_iterator -}; - -function select(selector) { - return typeof selector === "string" - ? new Selection$1([[document.querySelector(selector)]], [document.documentElement]) - : new Selection$1([[selector]], root$1); -} - -function create$1(name) { - return select(creator(name).call(document.documentElement)); -} - -var nextId = 0; - -function local$1() { - return new Local; -} - -function Local() { - this._ = "@" + (++nextId).toString(36); -} - -Local.prototype = local$1.prototype = { - constructor: Local, - get: function(node) { - var id = this._; - while (!(id in node)) if (!(node = node.parentNode)) return; - return node[id]; - }, - set: function(node, value) { - return node[this._] = value; - }, - remove: function(node) { - return this._ in node && delete node[this._]; - }, - toString: function() { - return this._; - } -}; - -function sourceEvent(event) { - let sourceEvent; - while (sourceEvent = event.sourceEvent) event = sourceEvent; - return event; -} - -function pointer(event, node) { - event = sourceEvent(event); - if (node === undefined) node = event.currentTarget; - if (node) { - var svg = node.ownerSVGElement || node; - if (svg.createSVGPoint) { - var point = svg.createSVGPoint(); - point.x = event.clientX, point.y = event.clientY; - point = point.matrixTransform(node.getScreenCTM().inverse()); - return [point.x, point.y]; - } - if (node.getBoundingClientRect) { - var rect = node.getBoundingClientRect(); - return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; - } - } - return [event.pageX, event.pageY]; -} - -function pointers(events, node) { - if (events.target) { // i.e., instanceof Event, not TouchList or iterable - events = sourceEvent(events); - if (node === undefined) node = events.currentTarget; - events = events.touches || [events]; - } - return Array.from(events, event => pointer(event, node)); -} - -function selectAll(selector) { - return typeof selector === "string" - ? new Selection$1([document.querySelectorAll(selector)], [document.documentElement]) - : new Selection$1([selector == null ? [] : array$4(selector)], root$1); -} - -function nopropagation$2(event) { - event.stopImmediatePropagation(); -} - -function noevent$2(event) { - event.preventDefault(); - event.stopImmediatePropagation(); -} - -function dragDisable(view) { - var root = view.document.documentElement, - selection = select(view).on("dragstart.drag", noevent$2, true); - if ("onselectstart" in root) { - selection.on("selectstart.drag", noevent$2, true); - } else { - root.__noselect = root.style.MozUserSelect; - root.style.MozUserSelect = "none"; - } -} - -function yesdrag(view, noclick) { - var root = view.document.documentElement, - selection = select(view).on("dragstart.drag", null); - if (noclick) { - selection.on("click.drag", noevent$2, true); - setTimeout(function() { selection.on("click.drag", null); }, 0); - } - if ("onselectstart" in root) { - selection.on("selectstart.drag", null); - } else { - root.style.MozUserSelect = root.__noselect; - delete root.__noselect; - } -} - -var constant$9 = x => () => x; - -function DragEvent(type, { - sourceEvent, - subject, - target, - identifier, - active, - x, y, dx, dy, - dispatch -}) { - Object.defineProperties(this, { - type: {value: type, enumerable: true, configurable: true}, - sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, - subject: {value: subject, enumerable: true, configurable: true}, - target: {value: target, enumerable: true, configurable: true}, - identifier: {value: identifier, enumerable: true, configurable: true}, - active: {value: active, enumerable: true, configurable: true}, - x: {value: x, enumerable: true, configurable: true}, - y: {value: y, enumerable: true, configurable: true}, - dx: {value: dx, enumerable: true, configurable: true}, - dy: {value: dy, enumerable: true, configurable: true}, - _: {value: dispatch} - }); -} - -DragEvent.prototype.on = function() { - var value = this._.on.apply(this._, arguments); - return value === this._ ? this : value; -}; - -// Ignore right-click, since that should open the context menu. -function defaultFilter$2(event) { - return !event.ctrlKey && !event.button; -} - -function defaultContainer() { - return this.parentNode; -} - -function defaultSubject(event, d) { - return d == null ? {x: event.x, y: event.y} : d; -} - -function defaultTouchable$2() { - return navigator.maxTouchPoints || ("ontouchstart" in this); -} - -function drag() { - var filter = defaultFilter$2, - container = defaultContainer, - subject = defaultSubject, - touchable = defaultTouchable$2, - gestures = {}, - listeners = dispatch("start", "drag", "end"), - active = 0, - mousedownx, - mousedowny, - mousemoving, - touchending, - clickDistance2 = 0; - - function drag(selection) { - selection - .on("mousedown.drag", mousedowned) - .filter(touchable) - .on("touchstart.drag", touchstarted) - .on("touchmove.drag", touchmoved) - .on("touchend.drag touchcancel.drag", touchended) - .style("touch-action", "none") - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - function mousedowned(event, d) { - if (touchending || !filter.call(this, event, d)) return; - var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse"); - if (!gesture) return; - select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true); - dragDisable(event.view); - nopropagation$2(event); - mousemoving = false; - mousedownx = event.clientX; - mousedowny = event.clientY; - gesture("start", event); - } - - function mousemoved(event) { - noevent$2(event); - if (!mousemoving) { - var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; - mousemoving = dx * dx + dy * dy > clickDistance2; - } - gestures.mouse("drag", event); - } - - function mouseupped(event) { - select(event.view).on("mousemove.drag mouseup.drag", null); - yesdrag(event.view, mousemoving); - noevent$2(event); - gestures.mouse("end", event); - } - - function touchstarted(event, d) { - if (!filter.call(this, event, d)) return; - var touches = event.changedTouches, - c = container.call(this, event, d), - n = touches.length, i, gesture; - - for (i = 0; i < n; ++i) { - if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) { - nopropagation$2(event); - gesture("start", event, touches[i]); - } - } - } - - function touchmoved(event) { - var touches = event.changedTouches, - n = touches.length, i, gesture; - - for (i = 0; i < n; ++i) { - if (gesture = gestures[touches[i].identifier]) { - noevent$2(event); - gesture("drag", event, touches[i]); - } - } - } - - function touchended(event) { - var touches = event.changedTouches, - n = touches.length, i, gesture; - - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! - for (i = 0; i < n; ++i) { - if (gesture = gestures[touches[i].identifier]) { - nopropagation$2(event); - gesture("end", event, touches[i]); - } - } - } - - function beforestart(that, container, event, d, identifier, touch) { - var dispatch = listeners.copy(), - p = pointer(touch || event, container), dx, dy, - s; - - if ((s = subject.call(that, new DragEvent("beforestart", { - sourceEvent: event, - target: drag, - identifier, - active, - x: p[0], - y: p[1], - dx: 0, - dy: 0, - dispatch - }), d)) == null) return; - - dx = s.x - p[0] || 0; - dy = s.y - p[1] || 0; - - return function gesture(type, event, touch) { - var p0 = p, n; - switch (type) { - case "start": gestures[identifier] = gesture, n = active++; break; - case "end": delete gestures[identifier], --active; // nobreak - case "drag": p = pointer(touch || event, container), n = active; break; - } - dispatch.call( - type, - that, - new DragEvent(type, { - sourceEvent: event, - subject: s, - target: drag, - identifier, - active: n, - x: p[0] + dx, - y: p[1] + dy, - dx: p[0] - p0[0], - dy: p[1] - p0[1], - dispatch - }), - d - ); - }; - } - - drag.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant$9(!!_), drag) : filter; - }; - - drag.container = function(_) { - return arguments.length ? (container = typeof _ === "function" ? _ : constant$9(_), drag) : container; - }; - - drag.subject = function(_) { - return arguments.length ? (subject = typeof _ === "function" ? _ : constant$9(_), drag) : subject; - }; - - drag.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$9(!!_), drag) : touchable; - }; - - drag.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? drag : value; - }; - - drag.clickDistance = function(_) { - return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); - }; - - return drag; -} - -function define(constructor, factory, prototype) { - constructor.prototype = factory.prototype = prototype; - prototype.constructor = constructor; -} - -function extend(parent, definition) { - var prototype = Object.create(parent.prototype); - for (var key in definition) prototype[key] = definition[key]; - return prototype; -} - -function Color() {} - -var darker = 0.7; -var brighter = 1 / darker; - -var reI = "\\s*([+-]?\\d+)\\s*", - reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", - reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", - reHex = /^#([0-9a-f]{3,8})$/, - reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), - reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), - reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), - reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), - reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), - reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); - -var named = { - aliceblue: 0xf0f8ff, - antiquewhite: 0xfaebd7, - aqua: 0x00ffff, - aquamarine: 0x7fffd4, - azure: 0xf0ffff, - beige: 0xf5f5dc, - bisque: 0xffe4c4, - black: 0x000000, - blanchedalmond: 0xffebcd, - blue: 0x0000ff, - blueviolet: 0x8a2be2, - brown: 0xa52a2a, - burlywood: 0xdeb887, - cadetblue: 0x5f9ea0, - chartreuse: 0x7fff00, - chocolate: 0xd2691e, - coral: 0xff7f50, - cornflowerblue: 0x6495ed, - cornsilk: 0xfff8dc, - crimson: 0xdc143c, - cyan: 0x00ffff, - darkblue: 0x00008b, - darkcyan: 0x008b8b, - darkgoldenrod: 0xb8860b, - darkgray: 0xa9a9a9, - darkgreen: 0x006400, - darkgrey: 0xa9a9a9, - darkkhaki: 0xbdb76b, - darkmagenta: 0x8b008b, - darkolivegreen: 0x556b2f, - darkorange: 0xff8c00, - darkorchid: 0x9932cc, - darkred: 0x8b0000, - darksalmon: 0xe9967a, - darkseagreen: 0x8fbc8f, - darkslateblue: 0x483d8b, - darkslategray: 0x2f4f4f, - darkslategrey: 0x2f4f4f, - darkturquoise: 0x00ced1, - darkviolet: 0x9400d3, - deeppink: 0xff1493, - deepskyblue: 0x00bfff, - dimgray: 0x696969, - dimgrey: 0x696969, - dodgerblue: 0x1e90ff, - firebrick: 0xb22222, - floralwhite: 0xfffaf0, - forestgreen: 0x228b22, - fuchsia: 0xff00ff, - gainsboro: 0xdcdcdc, - ghostwhite: 0xf8f8ff, - gold: 0xffd700, - goldenrod: 0xdaa520, - gray: 0x808080, - green: 0x008000, - greenyellow: 0xadff2f, - grey: 0x808080, - honeydew: 0xf0fff0, - hotpink: 0xff69b4, - indianred: 0xcd5c5c, - indigo: 0x4b0082, - ivory: 0xfffff0, - khaki: 0xf0e68c, - lavender: 0xe6e6fa, - lavenderblush: 0xfff0f5, - lawngreen: 0x7cfc00, - lemonchiffon: 0xfffacd, - lightblue: 0xadd8e6, - lightcoral: 0xf08080, - lightcyan: 0xe0ffff, - lightgoldenrodyellow: 0xfafad2, - lightgray: 0xd3d3d3, - lightgreen: 0x90ee90, - lightgrey: 0xd3d3d3, - lightpink: 0xffb6c1, - lightsalmon: 0xffa07a, - lightseagreen: 0x20b2aa, - lightskyblue: 0x87cefa, - lightslategray: 0x778899, - lightslategrey: 0x778899, - lightsteelblue: 0xb0c4de, - lightyellow: 0xffffe0, - lime: 0x00ff00, - limegreen: 0x32cd32, - linen: 0xfaf0e6, - magenta: 0xff00ff, - maroon: 0x800000, - mediumaquamarine: 0x66cdaa, - mediumblue: 0x0000cd, - mediumorchid: 0xba55d3, - mediumpurple: 0x9370db, - mediumseagreen: 0x3cb371, - mediumslateblue: 0x7b68ee, - mediumspringgreen: 0x00fa9a, - mediumturquoise: 0x48d1cc, - mediumvioletred: 0xc71585, - midnightblue: 0x191970, - mintcream: 0xf5fffa, - mistyrose: 0xffe4e1, - moccasin: 0xffe4b5, - navajowhite: 0xffdead, - navy: 0x000080, - oldlace: 0xfdf5e6, - olive: 0x808000, - olivedrab: 0x6b8e23, - orange: 0xffa500, - orangered: 0xff4500, - orchid: 0xda70d6, - palegoldenrod: 0xeee8aa, - palegreen: 0x98fb98, - paleturquoise: 0xafeeee, - palevioletred: 0xdb7093, - papayawhip: 0xffefd5, - peachpuff: 0xffdab9, - peru: 0xcd853f, - pink: 0xffc0cb, - plum: 0xdda0dd, - powderblue: 0xb0e0e6, - purple: 0x800080, - rebeccapurple: 0x663399, - red: 0xff0000, - rosybrown: 0xbc8f8f, - royalblue: 0x4169e1, - saddlebrown: 0x8b4513, - salmon: 0xfa8072, - sandybrown: 0xf4a460, - seagreen: 0x2e8b57, - seashell: 0xfff5ee, - sienna: 0xa0522d, - silver: 0xc0c0c0, - skyblue: 0x87ceeb, - slateblue: 0x6a5acd, - slategray: 0x708090, - slategrey: 0x708090, - snow: 0xfffafa, - springgreen: 0x00ff7f, - steelblue: 0x4682b4, - tan: 0xd2b48c, - teal: 0x008080, - thistle: 0xd8bfd8, - tomato: 0xff6347, - turquoise: 0x40e0d0, - violet: 0xee82ee, - wheat: 0xf5deb3, - white: 0xffffff, - whitesmoke: 0xf5f5f5, - yellow: 0xffff00, - yellowgreen: 0x9acd32 -}; - -define(Color, color, { - copy: function(channels) { - return Object.assign(new this.constructor, this, channels); - }, - displayable: function() { - return this.rgb().displayable(); - }, - hex: color_formatHex, // Deprecated! Use color.formatHex. - formatHex: color_formatHex, - formatHsl: color_formatHsl, - formatRgb: color_formatRgb, - toString: color_formatRgb -}); - -function color_formatHex() { - return this.rgb().formatHex(); -} - -function color_formatHsl() { - return hslConvert(this).formatHsl(); -} - -function color_formatRgb() { - return this.rgb().formatRgb(); -} - -function color(format) { - var m, l; - format = (format + "").trim().toLowerCase(); - return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 - : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 - : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 - : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 - : null) // invalid hex - : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) - : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) - : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) - : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) - : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) - : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) - : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins - : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) - : null; -} - -function rgbn(n) { - return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); -} - -function rgba(r, g, b, a) { - if (a <= 0) r = g = b = NaN; - return new Rgb(r, g, b, a); -} - -function rgbConvert(o) { - if (!(o instanceof Color)) o = color(o); - if (!o) return new Rgb; - o = o.rgb(); - return new Rgb(o.r, o.g, o.b, o.opacity); -} - -function rgb(r, g, b, opacity) { - return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); -} - -function Rgb(r, g, b, opacity) { - this.r = +r; - this.g = +g; - this.b = +b; - this.opacity = +opacity; -} - -define(Rgb, rgb, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - rgb: function() { - return this; - }, - displayable: function() { - return (-0.5 <= this.r && this.r < 255.5) - && (-0.5 <= this.g && this.g < 255.5) - && (-0.5 <= this.b && this.b < 255.5) - && (0 <= this.opacity && this.opacity <= 1); - }, - hex: rgb_formatHex, // Deprecated! Use color.formatHex. - formatHex: rgb_formatHex, - formatRgb: rgb_formatRgb, - toString: rgb_formatRgb -})); - -function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); -} - -function rgb_formatRgb() { - var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "rgb(" : "rgba(") - + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " - + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " - + Math.max(0, Math.min(255, Math.round(this.b) || 0)) - + (a === 1 ? ")" : ", " + a + ")"); -} - -function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); - return (value < 16 ? "0" : "") + value.toString(16); -} - -function hsla(h, s, l, a) { - if (a <= 0) h = s = l = NaN; - else if (l <= 0 || l >= 1) h = s = NaN; - else if (s <= 0) h = NaN; - return new Hsl(h, s, l, a); -} - -function hslConvert(o) { - if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Color)) o = color(o); - if (!o) return new Hsl; - if (o instanceof Hsl) return o; - o = o.rgb(); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = NaN, - s = max - min, - l = (max + min) / 2; - if (s) { - if (r === max) h = (g - b) / s + (g < b) * 6; - else if (g === max) h = (b - r) / s + 2; - else h = (r - g) / s + 4; - s /= l < 0.5 ? max + min : 2 - max - min; - h *= 60; - } else { - s = l > 0 && l < 1 ? 0 : h; - } - return new Hsl(h, s, l, o.opacity); -} - -function hsl$2(h, s, l, opacity) { - return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); -} - -function Hsl(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; -} - -define(Hsl, hsl$2, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = this.h % 360 + (this.h < 0) * 360, - s = isNaN(h) || isNaN(this.s) ? 0 : this.s, - l = this.l, - m2 = l + (l < 0.5 ? l : 1 - l) * s, - m1 = 2 * l - m2; - return new Rgb( - hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), - hsl2rgb(h, m1, m2), - hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), - this.opacity - ); - }, - displayable: function() { - return (0 <= this.s && this.s <= 1 || isNaN(this.s)) - && (0 <= this.l && this.l <= 1) - && (0 <= this.opacity && this.opacity <= 1); - }, - formatHsl: function() { - var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") - + (this.h || 0) + ", " - + (this.s || 0) * 100 + "%, " - + (this.l || 0) * 100 + "%" - + (a === 1 ? ")" : ", " + a + ")"); - } -})); - -/* From FvD 13.37, CSS Color Module Level 3 */ -function hsl2rgb(h, m1, m2) { - return (h < 60 ? m1 + (m2 - m1) * h / 60 - : h < 180 ? m2 - : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 - : m1) * 255; -} - -const radians$1 = Math.PI / 180; -const degrees$2 = 180 / Math.PI; - -// https://observablehq.com/@mbostock/lab-and-rgb -const K = 18, - Xn = 0.96422, - Yn = 1, - Zn = 0.82521, - t0$1 = 4 / 29, - t1$1 = 6 / 29, - t2 = 3 * t1$1 * t1$1, - t3 = t1$1 * t1$1 * t1$1; - -function labConvert(o) { - if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); - if (o instanceof Hcl) return hcl2lab(o); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = rgb2lrgb(o.r), - g = rgb2lrgb(o.g), - b = rgb2lrgb(o.b), - y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; - if (r === g && g === b) x = z = y; else { - x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); - z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); - } - return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); -} - -function gray(l, opacity) { - return new Lab(l, 0, 0, opacity == null ? 1 : opacity); -} - -function lab$1(l, a, b, opacity) { - return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); -} - -function Lab(l, a, b, opacity) { - this.l = +l; - this.a = +a; - this.b = +b; - this.opacity = +opacity; -} - -define(Lab, lab$1, extend(Color, { - brighter: function(k) { - return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - darker: function(k) { - return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - rgb: function() { - var y = (this.l + 16) / 116, - x = isNaN(this.a) ? y : y + this.a / 500, - z = isNaN(this.b) ? y : y - this.b / 200; - x = Xn * lab2xyz(x); - y = Yn * lab2xyz(y); - z = Zn * lab2xyz(z); - return new Rgb( - lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), - lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), - lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), - this.opacity - ); - } -})); - -function xyz2lab(t) { - return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1; -} - -function lab2xyz(t) { - return t > t1$1 ? t * t * t : t2 * (t - t0$1); -} - -function lrgb2rgb(x) { - return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); -} - -function rgb2lrgb(x) { - return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); -} - -function hclConvert(o) { - if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); - if (!(o instanceof Lab)) o = labConvert(o); - if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); - var h = Math.atan2(o.b, o.a) * degrees$2; - return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); -} - -function lch(l, c, h, opacity) { - return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); -} - -function hcl$2(h, c, l, opacity) { - return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); -} - -function Hcl(h, c, l, opacity) { - this.h = +h; - this.c = +c; - this.l = +l; - this.opacity = +opacity; -} - -function hcl2lab(o) { - if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); - var h = o.h * radians$1; - return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); -} - -define(Hcl, hcl$2, extend(Color, { - brighter: function(k) { - return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); - }, - darker: function(k) { - return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); - }, - rgb: function() { - return hcl2lab(this).rgb(); - } -})); - -var A = -0.14861, - B = +1.78277, - C = -0.29227, - D = -0.90649, - E = +1.97294, - ED = E * D, - EB = E * B, - BC_DA = B * C - D * A; - -function cubehelixConvert(o) { - if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), - bl = b - l, - k = (E * (g - l) - C * bl) / D, - s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 - h = s ? Math.atan2(k, bl) * degrees$2 - 120 : NaN; - return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); -} - -function cubehelix$3(h, s, l, opacity) { - return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); -} - -function Cubehelix(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; -} - -define(Cubehelix, cubehelix$3, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = isNaN(this.h) ? 0 : (this.h + 120) * radians$1, - l = +this.l, - a = isNaN(this.s) ? 0 : this.s * l * (1 - l), - cosh = Math.cos(h), - sinh = Math.sin(h); - return new Rgb( - 255 * (l + a * (A * cosh + B * sinh)), - 255 * (l + a * (C * cosh + D * sinh)), - 255 * (l + a * (E * cosh)), - this.opacity - ); - } -})); - -function basis$1(t1, v0, v1, v2, v3) { - var t2 = t1 * t1, t3 = t2 * t1; - return ((1 - 3 * t1 + 3 * t2 - t3) * v0 - + (4 - 6 * t2 + 3 * t3) * v1 - + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 - + t3 * v3) / 6; -} - -function basis$2(values) { - var n = values.length - 1; - return function(t) { - var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), - v1 = values[i], - v2 = values[i + 1], - v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, - v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; - return basis$1((t - i / n) * n, v0, v1, v2, v3); - }; -} - -function basisClosed$1(values) { - var n = values.length; - return function(t) { - var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), - v0 = values[(i + n - 1) % n], - v1 = values[i % n], - v2 = values[(i + 1) % n], - v3 = values[(i + 2) % n]; - return basis$1((t - i / n) * n, v0, v1, v2, v3); - }; -} - -var constant$8 = x => () => x; - -function linear$2(a, d) { - return function(t) { - return a + t * d; - }; -} - -function exponential$1(a, b, y) { - return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { - return Math.pow(a + t * b, y); - }; -} - -function hue$1(a, b) { - var d = b - a; - return d ? linear$2(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$8(isNaN(a) ? b : a); -} - -function gamma$1(y) { - return (y = +y) === 1 ? nogamma : function(a, b) { - return b - a ? exponential$1(a, b, y) : constant$8(isNaN(a) ? b : a); - }; -} - -function nogamma(a, b) { - var d = b - a; - return d ? linear$2(a, d) : constant$8(isNaN(a) ? b : a); -} - -var interpolateRgb = (function rgbGamma(y) { - var color = gamma$1(y); - - function rgb$1(start, end) { - var r = color((start = rgb(start)).r, (end = rgb(end)).r), - g = color(start.g, end.g), - b = color(start.b, end.b), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.r = r(t); - start.g = g(t); - start.b = b(t); - start.opacity = opacity(t); - return start + ""; - }; - } - - rgb$1.gamma = rgbGamma; - - return rgb$1; -})(1); - -function rgbSpline(spline) { - return function(colors) { - var n = colors.length, - r = new Array(n), - g = new Array(n), - b = new Array(n), - i, color; - for (i = 0; i < n; ++i) { - color = rgb(colors[i]); - r[i] = color.r || 0; - g[i] = color.g || 0; - b[i] = color.b || 0; - } - r = spline(r); - g = spline(g); - b = spline(b); - color.opacity = 1; - return function(t) { - color.r = r(t); - color.g = g(t); - color.b = b(t); - return color + ""; - }; - }; -} - -var rgbBasis = rgbSpline(basis$2); -var rgbBasisClosed = rgbSpline(basisClosed$1); - -function numberArray(a, b) { - if (!b) b = []; - var n = a ? Math.min(b.length, a.length) : 0, - c = b.slice(), - i; - return function(t) { - for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; - return c; - }; -} - -function isNumberArray(x) { - return ArrayBuffer.isView(x) && !(x instanceof DataView); -} - -function array$3(a, b) { - return (isNumberArray(b) ? numberArray : genericArray)(a, b); -} - -function genericArray(a, b) { - var nb = b ? b.length : 0, - na = a ? Math.min(nb, a.length) : 0, - x = new Array(na), - c = new Array(nb), - i; - - for (i = 0; i < na; ++i) x[i] = interpolate$2(a[i], b[i]); - for (; i < nb; ++i) c[i] = b[i]; - - return function(t) { - for (i = 0; i < na; ++i) c[i] = x[i](t); - return c; - }; -} - -function date$1(a, b) { - var d = new Date; - return a = +a, b = +b, function(t) { - return d.setTime(a * (1 - t) + b * t), d; - }; -} - -function interpolateNumber(a, b) { - return a = +a, b = +b, function(t) { - return a * (1 - t) + b * t; - }; -} - -function object$1(a, b) { - var i = {}, - c = {}, - k; - - if (a === null || typeof a !== "object") a = {}; - if (b === null || typeof b !== "object") b = {}; - - for (k in b) { - if (k in a) { - i[k] = interpolate$2(a[k], b[k]); - } else { - c[k] = b[k]; - } - } - - return function(t) { - for (k in i) c[k] = i[k](t); - return c; - }; -} - -var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, - reB = new RegExp(reA.source, "g"); - -function zero(b) { - return function() { - return b; - }; -} - -function one(b) { - return function(t) { - return b(t) + ""; - }; -} - -function interpolateString(a, b) { - var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b - am, // current match in a - bm, // current match in b - bs, // string preceding current number in b, if any - i = -1, // index in s - s = [], // string constants and placeholders - q = []; // number interpolators - - // Coerce inputs to strings. - a = a + "", b = b + ""; - - // Interpolate pairs of numbers in a & b. - while ((am = reA.exec(a)) - && (bm = reB.exec(b))) { - if ((bs = bm.index) > bi) { // a string precedes the next number in b - bs = b.slice(bi, bs); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match - if (s[i]) s[i] += bm; // coalesce with previous string - else s[++i] = bm; - } else { // interpolate non-matching numbers - s[++i] = null; - q.push({i: i, x: interpolateNumber(am, bm)}); - } - bi = reB.lastIndex; - } - - // Add remains of b. - if (bi < b.length) { - bs = b.slice(bi); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - - // Special optimization for only a single match. - // Otherwise, interpolate each of the numbers and rejoin the string. - return s.length < 2 ? (q[0] - ? one(q[0].x) - : zero(b)) - : (b = q.length, function(t) { - for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }); -} - -function interpolate$2(a, b) { - var t = typeof b, c; - return b == null || t === "boolean" ? constant$8(b) - : (t === "number" ? interpolateNumber - : t === "string" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString) - : b instanceof color ? interpolateRgb - : b instanceof Date ? date$1 - : isNumberArray(b) ? numberArray - : Array.isArray(b) ? genericArray - : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object$1 - : interpolateNumber)(a, b); -} - -function discrete(range) { - var n = range.length; - return function(t) { - return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; - }; -} - -function hue(a, b) { - var i = hue$1(+a, +b); - return function(t) { - var x = i(t); - return x - 360 * Math.floor(x / 360); - }; -} - -function interpolateRound(a, b) { - return a = +a, b = +b, function(t) { - return Math.round(a * (1 - t) + b * t); - }; -} - -var degrees$1 = 180 / Math.PI; - -var identity$7 = { - translateX: 0, - translateY: 0, - rotate: 0, - skewX: 0, - scaleX: 1, - scaleY: 1 -}; - -function decompose(a, b, c, d, e, f) { - var scaleX, scaleY, skewX; - if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; - if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; - if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; - if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; - return { - translateX: e, - translateY: f, - rotate: Math.atan2(b, a) * degrees$1, - skewX: Math.atan(skewX) * degrees$1, - scaleX: scaleX, - scaleY: scaleY - }; -} - -var svgNode; - -/* eslint-disable no-undef */ -function parseCss(value) { - const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); - return m.isIdentity ? identity$7 : decompose(m.a, m.b, m.c, m.d, m.e, m.f); -} - -function parseSvg(value) { - if (value == null) return identity$7; - if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); - svgNode.setAttribute("transform", value); - if (!(value = svgNode.transform.baseVal.consolidate())) return identity$7; - value = value.matrix; - return decompose(value.a, value.b, value.c, value.d, value.e, value.f); -} - -function interpolateTransform(parse, pxComma, pxParen, degParen) { - - function pop(s) { - return s.length ? s.pop() + " " : ""; - } - - function translate(xa, ya, xb, yb, s, q) { - if (xa !== xb || ya !== yb) { - var i = s.push("translate(", null, pxComma, null, pxParen); - q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); - } else if (xb || yb) { - s.push("translate(" + xb + pxComma + yb + pxParen); - } - } - - function rotate(a, b, s, q) { - if (a !== b) { - if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path - q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b)}); - } else if (b) { - s.push(pop(s) + "rotate(" + b + degParen); - } - } - - function skewX(a, b, s, q) { - if (a !== b) { - q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b)}); - } else if (b) { - s.push(pop(s) + "skewX(" + b + degParen); - } - } - - function scale(xa, ya, xb, yb, s, q) { - if (xa !== xb || ya !== yb) { - var i = s.push(pop(s) + "scale(", null, ",", null, ")"); - q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); - } else if (xb !== 1 || yb !== 1) { - s.push(pop(s) + "scale(" + xb + "," + yb + ")"); - } - } - - return function(a, b) { - var s = [], // string constants and placeholders - q = []; // number interpolators - a = parse(a), b = parse(b); - translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); - rotate(a.rotate, b.rotate, s, q); - skewX(a.skewX, b.skewX, s, q); - scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); - a = b = null; // gc - return function(t) { - var i = -1, n = q.length, o; - while (++i < n) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }; - }; -} - -var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); -var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); - -var epsilon2$1 = 1e-12; - -function cosh(x) { - return ((x = Math.exp(x)) + 1 / x) / 2; -} - -function sinh(x) { - return ((x = Math.exp(x)) - 1 / x) / 2; -} - -function tanh(x) { - return ((x = Math.exp(2 * x)) - 1) / (x + 1); -} - -var interpolateZoom = (function zoomRho(rho, rho2, rho4) { - - // p0 = [ux0, uy0, w0] - // p1 = [ux1, uy1, w1] - function zoom(p0, p1) { - var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], - ux1 = p1[0], uy1 = p1[1], w1 = p1[2], - dx = ux1 - ux0, - dy = uy1 - uy0, - d2 = dx * dx + dy * dy, - i, - S; - - // Special case for u0 ≅ u1. - if (d2 < epsilon2$1) { - S = Math.log(w1 / w0) / rho; - i = function(t) { - return [ - ux0 + t * dx, - uy0 + t * dy, - w0 * Math.exp(rho * t * S) - ]; - }; - } - - // General case. - else { - var d1 = Math.sqrt(d2), - b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), - b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), - r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), - r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); - S = (r1 - r0) / rho; - i = function(t) { - var s = t * S, - coshr0 = cosh(r0), - u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); - return [ - ux0 + u * dx, - uy0 + u * dy, - w0 * coshr0 / cosh(rho * s + r0) - ]; - }; - } - - i.duration = S * 1000 * rho / Math.SQRT2; - - return i; - } - - zoom.rho = function(_) { - var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; - return zoomRho(_1, _2, _4); - }; - - return zoom; -})(Math.SQRT2, 2, 4); - -function hsl(hue) { - return function(start, end) { - var h = hue((start = hsl$2(start)).h, (end = hsl$2(end)).h), - s = nogamma(start.s, end.s), - l = nogamma(start.l, end.l), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.h = h(t); - start.s = s(t); - start.l = l(t); - start.opacity = opacity(t); - return start + ""; - }; - } -} - -var hsl$1 = hsl(hue$1); -var hslLong = hsl(nogamma); - -function lab(start, end) { - var l = nogamma((start = lab$1(start)).l, (end = lab$1(end)).l), - a = nogamma(start.a, end.a), - b = nogamma(start.b, end.b), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.l = l(t); - start.a = a(t); - start.b = b(t); - start.opacity = opacity(t); - return start + ""; - }; -} - -function hcl(hue) { - return function(start, end) { - var h = hue((start = hcl$2(start)).h, (end = hcl$2(end)).h), - c = nogamma(start.c, end.c), - l = nogamma(start.l, end.l), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.h = h(t); - start.c = c(t); - start.l = l(t); - start.opacity = opacity(t); - return start + ""; - }; - } -} - -var hcl$1 = hcl(hue$1); -var hclLong = hcl(nogamma); - -function cubehelix$1(hue) { - return (function cubehelixGamma(y) { - y = +y; - - function cubehelix(start, end) { - var h = hue((start = cubehelix$3(start)).h, (end = cubehelix$3(end)).h), - s = nogamma(start.s, end.s), - l = nogamma(start.l, end.l), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.h = h(t); - start.s = s(t); - start.l = l(Math.pow(t, y)); - start.opacity = opacity(t); - return start + ""; - }; - } - - cubehelix.gamma = cubehelixGamma; - - return cubehelix; - })(1); -} - -var cubehelix$2 = cubehelix$1(hue$1); -var cubehelixLong = cubehelix$1(nogamma); - -function piecewise(interpolate, values) { - if (values === undefined) values = interpolate, interpolate = interpolate$2; - var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); - while (i < n) I[i] = interpolate(v, v = values[++i]); - return function(t) { - var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); - return I[i](t - i); - }; -} - -function quantize$1(interpolator, n) { - var samples = new Array(n); - for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); - return samples; -} - -var frame = 0, // is an animation frame pending? - timeout$1 = 0, // is a timeout pending? - interval$1 = 0, // are any timers active? - pokeDelay = 1000, // how frequently we check for clock skew - taskHead, - taskTail, - clockLast = 0, - clockNow = 0, - clockSkew = 0, - clock = typeof performance === "object" && performance.now ? performance : Date, - setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; - -function now() { - return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); -} - -function clearNow() { - clockNow = 0; -} - -function Timer() { - this._call = - this._time = - this._next = null; -} - -Timer.prototype = timer.prototype = { - constructor: Timer, - restart: function(callback, delay, time) { - if (typeof callback !== "function") throw new TypeError("callback is not a function"); - time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); - if (!this._next && taskTail !== this) { - if (taskTail) taskTail._next = this; - else taskHead = this; - taskTail = this; - } - this._call = callback; - this._time = time; - sleep(); - }, - stop: function() { - if (this._call) { - this._call = null; - this._time = Infinity; - sleep(); - } - } -}; - -function timer(callback, delay, time) { - var t = new Timer; - t.restart(callback, delay, time); - return t; -} - -function timerFlush() { - now(); // Get the current time, if not already set. - ++frame; // Pretend we’ve set an alarm, if we haven’t already. - var t = taskHead, e; - while (t) { - if ((e = clockNow - t._time) >= 0) t._call.call(null, e); - t = t._next; - } - --frame; -} - -function wake() { - clockNow = (clockLast = clock.now()) + clockSkew; - frame = timeout$1 = 0; - try { - timerFlush(); - } finally { - frame = 0; - nap(); - clockNow = 0; - } -} - -function poke() { - var now = clock.now(), delay = now - clockLast; - if (delay > pokeDelay) clockSkew -= delay, clockLast = now; -} - -function nap() { - var t0, t1 = taskHead, t2, time = Infinity; - while (t1) { - if (t1._call) { - if (time > t1._time) time = t1._time; - t0 = t1, t1 = t1._next; - } else { - t2 = t1._next, t1._next = null; - t1 = t0 ? t0._next = t2 : taskHead = t2; - } - } - taskTail = t0; - sleep(time); -} - -function sleep(time) { - if (frame) return; // Soonest alarm already set, or will be. - if (timeout$1) timeout$1 = clearTimeout(timeout$1); - var delay = time - clockNow; // Strictly less than if we recomputed clockNow. - if (delay > 24) { - if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew); - if (interval$1) interval$1 = clearInterval(interval$1); - } else { - if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay); - frame = 1, setFrame(wake); - } -} - -function timeout(callback, delay, time) { - var t = new Timer; - delay = delay == null ? 0 : +delay; - t.restart(elapsed => { - t.stop(); - callback(elapsed + delay); - }, delay, time); - return t; -} - -function interval(callback, delay, time) { - var t = new Timer, total = delay; - if (delay == null) return t.restart(callback, delay, time), t; - t._restart = t.restart; - t.restart = function(callback, delay, time) { - delay = +delay, time = time == null ? now() : +time; - t._restart(function tick(elapsed) { - elapsed += total; - t._restart(tick, total += delay, time); - callback(elapsed); - }, delay, time); - }; - t.restart(callback, delay, time); - return t; -} - -var emptyOn = dispatch("start", "end", "cancel", "interrupt"); -var emptyTween = []; - -var CREATED = 0; -var SCHEDULED = 1; -var STARTING = 2; -var STARTED = 3; -var RUNNING = 4; -var ENDING = 5; -var ENDED = 6; - -function schedule(node, name, id, index, group, timing) { - var schedules = node.__transition; - if (!schedules) node.__transition = {}; - else if (id in schedules) return; - create(node, id, { - name: name, - index: index, // For context during callback. - group: group, // For context during callback. - on: emptyOn, - tween: emptyTween, - time: timing.time, - delay: timing.delay, - duration: timing.duration, - ease: timing.ease, - timer: null, - state: CREATED - }); -} - -function init(node, id) { - var schedule = get(node, id); - if (schedule.state > CREATED) throw new Error("too late; already scheduled"); - return schedule; -} - -function set(node, id) { - var schedule = get(node, id); - if (schedule.state > STARTED) throw new Error("too late; already running"); - return schedule; -} - -function get(node, id) { - var schedule = node.__transition; - if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found"); - return schedule; -} - -function create(node, id, self) { - var schedules = node.__transition, - tween; - - // Initialize the self timer when the transition is created. - // Note the actual delay is not known until the first callback! - schedules[id] = self; - self.timer = timer(schedule, 0, self.time); - - function schedule(elapsed) { - self.state = SCHEDULED; - self.timer.restart(start, self.delay, self.time); - - // If the elapsed delay is less than our first sleep, start immediately. - if (self.delay <= elapsed) start(elapsed - self.delay); - } - - function start(elapsed) { - var i, j, n, o; - - // If the state is not SCHEDULED, then we previously errored on start. - if (self.state !== SCHEDULED) return stop(); - - for (i in schedules) { - o = schedules[i]; - if (o.name !== self.name) continue; - - // While this element already has a starting transition during this frame, - // defer starting an interrupting transition until that transition has a - // chance to tick (and possibly end); see d3/d3-transition#54! - if (o.state === STARTED) return timeout(start); - - // Interrupt the active transition, if any. - if (o.state === RUNNING) { - o.state = ENDED; - o.timer.stop(); - o.on.call("interrupt", node, node.__data__, o.index, o.group); - delete schedules[i]; - } - - // Cancel any pre-empted transitions. - else if (+i < id) { - o.state = ENDED; - o.timer.stop(); - o.on.call("cancel", node, node.__data__, o.index, o.group); - delete schedules[i]; - } - } - - // Defer the first tick to end of the current frame; see d3/d3#1576. - // Note the transition may be canceled after start and before the first tick! - // Note this must be scheduled before the start event; see d3/d3-transition#16! - // Assuming this is successful, subsequent callbacks go straight to tick. - timeout(function() { - if (self.state === STARTED) { - self.state = RUNNING; - self.timer.restart(tick, self.delay, self.time); - tick(elapsed); - } - }); - - // Dispatch the start event. - // Note this must be done before the tween are initialized. - self.state = STARTING; - self.on.call("start", node, node.__data__, self.index, self.group); - if (self.state !== STARTING) return; // interrupted - self.state = STARTED; - - // Initialize the tween, deleting null tween. - tween = new Array(n = self.tween.length); - for (i = 0, j = -1; i < n; ++i) { - if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { - tween[++j] = o; - } - } - tween.length = j + 1; - } - - function tick(elapsed) { - var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), - i = -1, - n = tween.length; - - while (++i < n) { - tween[i].call(node, t); - } - - // Dispatch the end event. - if (self.state === ENDING) { - self.on.call("end", node, node.__data__, self.index, self.group); - stop(); - } - } - - function stop() { - self.state = ENDED; - self.timer.stop(); - delete schedules[id]; - for (var i in schedules) return; // eslint-disable-line no-unused-vars - delete node.__transition; - } -} - -function interrupt(node, name) { - var schedules = node.__transition, - schedule, - active, - empty = true, - i; - - if (!schedules) return; - - name = name == null ? null : name + ""; - - for (i in schedules) { - if ((schedule = schedules[i]).name !== name) { empty = false; continue; } - active = schedule.state > STARTING && schedule.state < ENDING; - schedule.state = ENDED; - schedule.timer.stop(); - schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); - delete schedules[i]; - } - - if (empty) delete node.__transition; -} - -function selection_interrupt(name) { - return this.each(function() { - interrupt(this, name); - }); -} - -function tweenRemove(id, name) { - var tween0, tween1; - return function() { - var schedule = set(this, id), - tween = schedule.tween; - - // If this node shared tween with the previous node, - // just assign the updated shared tween and we’re done! - // Otherwise, copy-on-write. - if (tween !== tween0) { - tween1 = tween0 = tween; - for (var i = 0, n = tween1.length; i < n; ++i) { - if (tween1[i].name === name) { - tween1 = tween1.slice(); - tween1.splice(i, 1); - break; - } - } - } - - schedule.tween = tween1; - }; -} - -function tweenFunction(id, name, value) { - var tween0, tween1; - if (typeof value !== "function") throw new Error; - return function() { - var schedule = set(this, id), - tween = schedule.tween; - - // If this node shared tween with the previous node, - // just assign the updated shared tween and we’re done! - // Otherwise, copy-on-write. - if (tween !== tween0) { - tween1 = (tween0 = tween).slice(); - for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { - if (tween1[i].name === name) { - tween1[i] = t; - break; - } - } - if (i === n) tween1.push(t); - } - - schedule.tween = tween1; - }; -} - -function transition_tween(name, value) { - var id = this._id; - - name += ""; - - if (arguments.length < 2) { - var tween = get(this.node(), id).tween; - for (var i = 0, n = tween.length, t; i < n; ++i) { - if ((t = tween[i]).name === name) { - return t.value; - } - } - return null; - } - - return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); -} - -function tweenValue(transition, name, value) { - var id = transition._id; - - transition.each(function() { - var schedule = set(this, id); - (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); - }); - - return function(node) { - return get(node, id).value[name]; - }; -} - -function interpolate$1(a, b) { - var c; - return (typeof b === "number" ? interpolateNumber - : b instanceof color ? interpolateRgb - : (c = color(b)) ? (b = c, interpolateRgb) - : interpolateString)(a, b); -} - -function attrRemove(name) { - return function() { - this.removeAttribute(name); - }; -} - -function attrRemoveNS(fullname) { - return function() { - this.removeAttributeNS(fullname.space, fullname.local); - }; -} - -function attrConstant(name, interpolate, value1) { - var string00, - string1 = value1 + "", - interpolate0; - return function() { - var string0 = this.getAttribute(name); - return string0 === string1 ? null - : string0 === string00 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, value1); - }; -} - -function attrConstantNS(fullname, interpolate, value1) { - var string00, - string1 = value1 + "", - interpolate0; - return function() { - var string0 = this.getAttributeNS(fullname.space, fullname.local); - return string0 === string1 ? null - : string0 === string00 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, value1); - }; -} - -function attrFunction(name, interpolate, value) { - var string00, - string10, - interpolate0; - return function() { - var string0, value1 = value(this), string1; - if (value1 == null) return void this.removeAttribute(name); - string0 = this.getAttribute(name); - string1 = value1 + ""; - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); - }; -} - -function attrFunctionNS(fullname, interpolate, value) { - var string00, - string10, - interpolate0; - return function() { - var string0, value1 = value(this), string1; - if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); - string0 = this.getAttributeNS(fullname.space, fullname.local); - string1 = value1 + ""; - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); - }; -} - -function transition_attr(name, value) { - var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate$1; - return this.attrTween(name, typeof value === "function" - ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) - : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) - : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); -} - -function attrInterpolate(name, i) { - return function(t) { - this.setAttribute(name, i.call(this, t)); - }; -} - -function attrInterpolateNS(fullname, i) { - return function(t) { - this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); - }; -} - -function attrTweenNS(fullname, value) { - var t0, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); - return t0; - } - tween._value = value; - return tween; -} - -function attrTween(name, value) { - var t0, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); - return t0; - } - tween._value = value; - return tween; -} - -function transition_attrTween(name, value) { - var key = "attr." + name; - if (arguments.length < 2) return (key = this.tween(key)) && key._value; - if (value == null) return this.tween(key, null); - if (typeof value !== "function") throw new Error; - var fullname = namespace(name); - return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); -} - -function delayFunction(id, value) { - return function() { - init(this, id).delay = +value.apply(this, arguments); - }; -} - -function delayConstant(id, value) { - return value = +value, function() { - init(this, id).delay = value; - }; -} - -function transition_delay(value) { - var id = this._id; - - return arguments.length - ? this.each((typeof value === "function" - ? delayFunction - : delayConstant)(id, value)) - : get(this.node(), id).delay; -} - -function durationFunction(id, value) { - return function() { - set(this, id).duration = +value.apply(this, arguments); - }; -} - -function durationConstant(id, value) { - return value = +value, function() { - set(this, id).duration = value; - }; -} - -function transition_duration(value) { - var id = this._id; - - return arguments.length - ? this.each((typeof value === "function" - ? durationFunction - : durationConstant)(id, value)) - : get(this.node(), id).duration; -} - -function easeConstant(id, value) { - if (typeof value !== "function") throw new Error; - return function() { - set(this, id).ease = value; - }; -} - -function transition_ease(value) { - var id = this._id; - - return arguments.length - ? this.each(easeConstant(id, value)) - : get(this.node(), id).ease; -} - -function easeVarying(id, value) { - return function() { - var v = value.apply(this, arguments); - if (typeof v !== "function") throw new Error; - set(this, id).ease = v; - }; -} - -function transition_easeVarying(value) { - if (typeof value !== "function") throw new Error; - return this.each(easeVarying(this._id, value)); -} - -function transition_filter(match) { - if (typeof match !== "function") match = matcher(match); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { - if ((node = group[i]) && match.call(node, node.__data__, i, group)) { - subgroup.push(node); - } - } - } - - return new Transition(subgroups, this._parents, this._name, this._id); -} - -function transition_merge(transition) { - if (transition._id !== this._id) throw new Error; - - for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { - for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group0[i] || group1[i]) { - merge[i] = node; - } - } - } - - for (; j < m0; ++j) { - merges[j] = groups0[j]; - } - - return new Transition(merges, this._parents, this._name, this._id); -} - -function start(name) { - return (name + "").trim().split(/^|\s+/).every(function(t) { - var i = t.indexOf("."); - if (i >= 0) t = t.slice(0, i); - return !t || t === "start"; - }); -} - -function onFunction(id, name, listener) { - var on0, on1, sit = start(name) ? init : set; - return function() { - var schedule = sit(this, id), - on = schedule.on; - - // If this node shared a dispatch with the previous node, - // just assign the updated shared dispatch and we’re done! - // Otherwise, copy-on-write. - if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); - - schedule.on = on1; - }; -} - -function transition_on(name, listener) { - var id = this._id; - - return arguments.length < 2 - ? get(this.node(), id).on.on(name) - : this.each(onFunction(id, name, listener)); -} - -function removeFunction(id) { - return function() { - var parent = this.parentNode; - for (var i in this.__transition) if (+i !== id) return; - if (parent) parent.removeChild(this); - }; -} - -function transition_remove() { - return this.on("end.remove", removeFunction(this._id)); -} - -function transition_select(select) { - var name = this._name, - id = this._id; - - if (typeof select !== "function") select = selector(select); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { - if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { - if ("__data__" in node) subnode.__data__ = node.__data__; - subgroup[i] = subnode; - schedule(subgroup[i], name, id, i, subgroup, get(node, id)); - } - } - } - - return new Transition(subgroups, this._parents, name, id); -} - -function transition_selectAll(select) { - var name = this._name, - id = this._id; - - if (typeof select !== "function") select = selectorAll(select); - - for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) { - if (child = children[k]) { - schedule(child, name, id, k, children, inherit); - } - } - subgroups.push(children); - parents.push(node); - } - } - } - - return new Transition(subgroups, parents, name, id); -} - -var Selection = selection.prototype.constructor; - -function transition_selection() { - return new Selection(this._groups, this._parents); -} - -function styleNull(name, interpolate) { - var string00, - string10, - interpolate0; - return function() { - var string0 = styleValue(this, name), - string1 = (this.style.removeProperty(name), styleValue(this, name)); - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, string10 = string1); - }; -} - -function styleRemove(name) { - return function() { - this.style.removeProperty(name); - }; -} - -function styleConstant(name, interpolate, value1) { - var string00, - string1 = value1 + "", - interpolate0; - return function() { - var string0 = styleValue(this, name); - return string0 === string1 ? null - : string0 === string00 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, value1); - }; -} - -function styleFunction(name, interpolate, value) { - var string00, - string10, - interpolate0; - return function() { - var string0 = styleValue(this, name), - value1 = value(this), - string1 = value1 + ""; - if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); - }; -} - -function styleMaybeRemove(id, name) { - var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; - return function() { - var schedule = set(this, id), - on = schedule.on, - listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; - - // If this node shared a dispatch with the previous node, - // just assign the updated shared dispatch and we’re done! - // Otherwise, copy-on-write. - if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); - - schedule.on = on1; - }; -} - -function transition_style(name, value, priority) { - var i = (name += "") === "transform" ? interpolateTransformCss : interpolate$1; - return value == null ? this - .styleTween(name, styleNull(name, i)) - .on("end.style." + name, styleRemove(name)) - : typeof value === "function" ? this - .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))) - .each(styleMaybeRemove(this._id, name)) - : this - .styleTween(name, styleConstant(name, i, value), priority) - .on("end.style." + name, null); -} - -function styleInterpolate(name, i, priority) { - return function(t) { - this.style.setProperty(name, i.call(this, t), priority); - }; -} - -function styleTween(name, value, priority) { - var t, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); - return t; - } - tween._value = value; - return tween; -} - -function transition_styleTween(name, value, priority) { - var key = "style." + (name += ""); - if (arguments.length < 2) return (key = this.tween(key)) && key._value; - if (value == null) return this.tween(key, null); - if (typeof value !== "function") throw new Error; - return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); -} - -function textConstant(value) { - return function() { - this.textContent = value; - }; -} - -function textFunction(value) { - return function() { - var value1 = value(this); - this.textContent = value1 == null ? "" : value1; - }; -} - -function transition_text(value) { - return this.tween("text", typeof value === "function" - ? textFunction(tweenValue(this, "text", value)) - : textConstant(value == null ? "" : value + "")); -} - -function textInterpolate(i) { - return function(t) { - this.textContent = i.call(this, t); - }; -} - -function textTween(value) { - var t0, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t0 = (i0 = i) && textInterpolate(i); - return t0; - } - tween._value = value; - return tween; -} - -function transition_textTween(value) { - var key = "text"; - if (arguments.length < 1) return (key = this.tween(key)) && key._value; - if (value == null) return this.tween(key, null); - if (typeof value !== "function") throw new Error; - return this.tween(key, textTween(value)); -} - -function transition_transition() { - var name = this._name, - id0 = this._id, - id1 = newId(); - - for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - var inherit = get(node, id0); - schedule(node, name, id1, i, group, { - time: inherit.time + inherit.delay + inherit.duration, - delay: 0, - duration: inherit.duration, - ease: inherit.ease - }); - } - } - } - - return new Transition(groups, this._parents, name, id1); -} - -function transition_end() { - var on0, on1, that = this, id = that._id, size = that.size(); - return new Promise(function(resolve, reject) { - var cancel = {value: reject}, - end = {value: function() { if (--size === 0) resolve(); }}; - - that.each(function() { - var schedule = set(this, id), - on = schedule.on; - - // If this node shared a dispatch with the previous node, - // just assign the updated shared dispatch and we’re done! - // Otherwise, copy-on-write. - if (on !== on0) { - on1 = (on0 = on).copy(); - on1._.cancel.push(cancel); - on1._.interrupt.push(cancel); - on1._.end.push(end); - } - - schedule.on = on1; - }); - - // The selection was empty, resolve end immediately - if (size === 0) resolve(); - }); -} - -var id = 0; - -function Transition(groups, parents, name, id) { - this._groups = groups; - this._parents = parents; - this._name = name; - this._id = id; -} - -function transition(name) { - return selection().transition(name); -} - -function newId() { - return ++id; -} - -var selection_prototype = selection.prototype; - -Transition.prototype = transition.prototype = { - constructor: Transition, - select: transition_select, - selectAll: transition_selectAll, - filter: transition_filter, - merge: transition_merge, - selection: transition_selection, - transition: transition_transition, - call: selection_prototype.call, - nodes: selection_prototype.nodes, - node: selection_prototype.node, - size: selection_prototype.size, - empty: selection_prototype.empty, - each: selection_prototype.each, - on: transition_on, - attr: transition_attr, - attrTween: transition_attrTween, - style: transition_style, - styleTween: transition_styleTween, - text: transition_text, - textTween: transition_textTween, - remove: transition_remove, - tween: transition_tween, - delay: transition_delay, - duration: transition_duration, - ease: transition_ease, - easeVarying: transition_easeVarying, - end: transition_end, - [Symbol.iterator]: selection_prototype[Symbol.iterator] -}; - -const linear$1 = t => +t; - -function quadIn(t) { - return t * t; -} - -function quadOut(t) { - return t * (2 - t); -} - -function quadInOut(t) { - return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2; -} - -function cubicIn(t) { - return t * t * t; -} - -function cubicOut(t) { - return --t * t * t + 1; -} - -function cubicInOut(t) { - return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; -} - -var exponent$1 = 3; - -var polyIn = (function custom(e) { - e = +e; - - function polyIn(t) { - return Math.pow(t, e); - } - - polyIn.exponent = custom; - - return polyIn; -})(exponent$1); - -var polyOut = (function custom(e) { - e = +e; - - function polyOut(t) { - return 1 - Math.pow(1 - t, e); - } - - polyOut.exponent = custom; - - return polyOut; -})(exponent$1); - -var polyInOut = (function custom(e) { - e = +e; - - function polyInOut(t) { - return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2; - } - - polyInOut.exponent = custom; - - return polyInOut; -})(exponent$1); - -var pi$4 = Math.PI, - halfPi$3 = pi$4 / 2; - -function sinIn(t) { - return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi$3); -} - -function sinOut(t) { - return Math.sin(t * halfPi$3); -} - -function sinInOut(t) { - return (1 - Math.cos(pi$4 * t)) / 2; -} - -// tpmt is two power minus ten times t scaled to [0,1] -function tpmt(x) { - return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494; -} - -function expIn(t) { - return tpmt(1 - +t); -} - -function expOut(t) { - return 1 - tpmt(t); -} - -function expInOut(t) { - return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2; -} - -function circleIn(t) { - return 1 - Math.sqrt(1 - t * t); -} - -function circleOut(t) { - return Math.sqrt(1 - --t * t); -} - -function circleInOut(t) { - return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2; -} - -var b1 = 4 / 11, - b2 = 6 / 11, - b3 = 8 / 11, - b4 = 3 / 4, - b5 = 9 / 11, - b6 = 10 / 11, - b7 = 15 / 16, - b8 = 21 / 22, - b9 = 63 / 64, - b0 = 1 / b1 / b1; - -function bounceIn(t) { - return 1 - bounceOut(1 - t); -} - -function bounceOut(t) { - return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9; -} - -function bounceInOut(t) { - return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2; -} - -var overshoot = 1.70158; - -var backIn = (function custom(s) { - s = +s; - - function backIn(t) { - return (t = +t) * t * (s * (t - 1) + t); - } - - backIn.overshoot = custom; - - return backIn; -})(overshoot); - -var backOut = (function custom(s) { - s = +s; - - function backOut(t) { - return --t * t * ((t + 1) * s + t) + 1; - } - - backOut.overshoot = custom; - - return backOut; -})(overshoot); - -var backInOut = (function custom(s) { - s = +s; - - function backInOut(t) { - return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2; - } - - backInOut.overshoot = custom; - - return backInOut; -})(overshoot); - -var tau$5 = 2 * Math.PI, - amplitude = 1, - period = 0.3; - -var elasticIn = (function custom(a, p) { - var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); - - function elasticIn(t) { - return a * tpmt(-(--t)) * Math.sin((s - t) / p); - } - - elasticIn.amplitude = function(a) { return custom(a, p * tau$5); }; - elasticIn.period = function(p) { return custom(a, p); }; - - return elasticIn; -})(amplitude, period); - -var elasticOut = (function custom(a, p) { - var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); - - function elasticOut(t) { - return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p); - } - - elasticOut.amplitude = function(a) { return custom(a, p * tau$5); }; - elasticOut.period = function(p) { return custom(a, p); }; - - return elasticOut; -})(amplitude, period); - -var elasticInOut = (function custom(a, p) { - var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); - - function elasticInOut(t) { - return ((t = t * 2 - 1) < 0 - ? a * tpmt(-t) * Math.sin((s - t) / p) - : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2; - } - - elasticInOut.amplitude = function(a) { return custom(a, p * tau$5); }; - elasticInOut.period = function(p) { return custom(a, p); }; - - return elasticInOut; -})(amplitude, period); - -var defaultTiming = { - time: null, // Set on use. - delay: 0, - duration: 250, - ease: cubicInOut -}; - -function inherit(node, id) { - var timing; - while (!(timing = node.__transition) || !(timing = timing[id])) { - if (!(node = node.parentNode)) { - throw new Error(`transition ${id} not found`); - } - } - return timing; -} - -function selection_transition(name) { - var id, - timing; - - if (name instanceof Transition) { - id = name._id, name = name._name; - } else { - id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; - } - - for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - schedule(node, name, id, i, group, timing || inherit(node, id)); - } - } - } - - return new Transition(groups, this._parents, name, id); -} - -selection.prototype.interrupt = selection_interrupt; -selection.prototype.transition = selection_transition; - -var root = [null]; - -function active(node, name) { - var schedules = node.__transition, - schedule, - i; - - if (schedules) { - name = name == null ? null : name + ""; - for (i in schedules) { - if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) { - return new Transition([[node]], root, name, +i); - } - } - } - - return null; -} - -var constant$7 = x => () => x; - -function BrushEvent(type, { - sourceEvent, - target, - selection, - mode, - dispatch -}) { - Object.defineProperties(this, { - type: {value: type, enumerable: true, configurable: true}, - sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, - target: {value: target, enumerable: true, configurable: true}, - selection: {value: selection, enumerable: true, configurable: true}, - mode: {value: mode, enumerable: true, configurable: true}, - _: {value: dispatch} - }); -} - -function nopropagation$1(event) { - event.stopImmediatePropagation(); -} - -function noevent$1(event) { - event.preventDefault(); - event.stopImmediatePropagation(); -} - -var MODE_DRAG = {name: "drag"}, - MODE_SPACE = {name: "space"}, - MODE_HANDLE = {name: "handle"}, - MODE_CENTER = {name: "center"}; - -const {abs: abs$3, max: max$2, min: min$1} = Math; - -function number1(e) { - return [+e[0], +e[1]]; -} - -function number2(e) { - return [number1(e[0]), number1(e[1])]; -} - -var X = { - name: "x", - handles: ["w", "e"].map(type), - input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; }, - output: function(xy) { return xy && [xy[0][0], xy[1][0]]; } -}; - -var Y = { - name: "y", - handles: ["n", "s"].map(type), - input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; }, - output: function(xy) { return xy && [xy[0][1], xy[1][1]]; } -}; - -var XY = { - name: "xy", - handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), - input: function(xy) { return xy == null ? null : number2(xy); }, - output: function(xy) { return xy; } -}; - -var cursors = { - overlay: "crosshair", - selection: "move", - n: "ns-resize", - e: "ew-resize", - s: "ns-resize", - w: "ew-resize", - nw: "nwse-resize", - ne: "nesw-resize", - se: "nwse-resize", - sw: "nesw-resize" -}; - -var flipX = { - e: "w", - w: "e", - nw: "ne", - ne: "nw", - se: "sw", - sw: "se" -}; - -var flipY = { - n: "s", - s: "n", - nw: "sw", - ne: "se", - se: "ne", - sw: "nw" -}; - -var signsX = { - overlay: +1, - selection: +1, - n: null, - e: +1, - s: null, - w: -1, - nw: -1, - ne: +1, - se: +1, - sw: -1 -}; - -var signsY = { - overlay: +1, - selection: +1, - n: -1, - e: null, - s: +1, - w: null, - nw: -1, - ne: -1, - se: +1, - sw: +1 -}; - -function type(t) { - return {type: t}; -} - -// Ignore right-click, since that should open the context menu. -function defaultFilter$1(event) { - return !event.ctrlKey && !event.button; -} - -function defaultExtent$1() { - var svg = this.ownerSVGElement || this; - if (svg.hasAttribute("viewBox")) { - svg = svg.viewBox.baseVal; - return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; - } - return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; -} - -function defaultTouchable$1() { - return navigator.maxTouchPoints || ("ontouchstart" in this); -} - -// Like d3.local, but with the name “__brush” rather than auto-generated. -function local(node) { - while (!node.__brush) if (!(node = node.parentNode)) return; - return node.__brush; -} - -function empty(extent) { - return extent[0][0] === extent[1][0] - || extent[0][1] === extent[1][1]; -} - -function brushSelection(node) { - var state = node.__brush; - return state ? state.dim.output(state.selection) : null; -} - -function brushX() { - return brush$1(X); -} - -function brushY() { - return brush$1(Y); -} - -function brush() { - return brush$1(XY); -} - -function brush$1(dim) { - var extent = defaultExtent$1, - filter = defaultFilter$1, - touchable = defaultTouchable$1, - keys = true, - listeners = dispatch("start", "brush", "end"), - handleSize = 6, - touchending; - - function brush(group) { - var overlay = group - .property("__brush", initialize) - .selectAll(".overlay") - .data([type("overlay")]); - - overlay.enter().append("rect") - .attr("class", "overlay") - .attr("pointer-events", "all") - .attr("cursor", cursors.overlay) - .merge(overlay) - .each(function() { - var extent = local(this).extent; - select(this) - .attr("x", extent[0][0]) - .attr("y", extent[0][1]) - .attr("width", extent[1][0] - extent[0][0]) - .attr("height", extent[1][1] - extent[0][1]); - }); - - group.selectAll(".selection") - .data([type("selection")]) - .enter().append("rect") - .attr("class", "selection") - .attr("cursor", cursors.selection) - .attr("fill", "#777") - .attr("fill-opacity", 0.3) - .attr("stroke", "#fff") - .attr("shape-rendering", "crispEdges"); - - var handle = group.selectAll(".handle") - .data(dim.handles, function(d) { return d.type; }); - - handle.exit().remove(); - - handle.enter().append("rect") - .attr("class", function(d) { return "handle handle--" + d.type; }) - .attr("cursor", function(d) { return cursors[d.type]; }); - - group - .each(redraw) - .attr("fill", "none") - .attr("pointer-events", "all") - .on("mousedown.brush", started) - .filter(touchable) - .on("touchstart.brush", started) - .on("touchmove.brush", touchmoved) - .on("touchend.brush touchcancel.brush", touchended) - .style("touch-action", "none") - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - brush.move = function(group, selection) { - if (group.tween) { - group - .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); }) - .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); }) - .tween("brush", function() { - var that = this, - state = that.__brush, - emit = emitter(that, arguments), - selection0 = state.selection, - selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), - i = interpolate$2(selection0, selection1); - - function tween(t) { - state.selection = t === 1 && selection1 === null ? null : i(t); - redraw.call(that); - emit.brush(); - } - - return selection0 !== null && selection1 !== null ? tween : tween(1); - }); - } else { - group - .each(function() { - var that = this, - args = arguments, - state = that.__brush, - selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), - emit = emitter(that, args).beforestart(); - - interrupt(that); - state.selection = selection1 === null ? null : selection1; - redraw.call(that); - emit.start().brush().end(); - }); - } - }; - - brush.clear = function(group) { - brush.move(group, null); - }; - - function redraw() { - var group = select(this), - selection = local(this).selection; - - if (selection) { - group.selectAll(".selection") - .style("display", null) - .attr("x", selection[0][0]) - .attr("y", selection[0][1]) - .attr("width", selection[1][0] - selection[0][0]) - .attr("height", selection[1][1] - selection[0][1]); - - group.selectAll(".handle") - .style("display", null) - .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; }) - .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; }) - .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; }) - .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; }); - } - - else { - group.selectAll(".selection,.handle") - .style("display", "none") - .attr("x", null) - .attr("y", null) - .attr("width", null) - .attr("height", null); - } - } - - function emitter(that, args, clean) { - var emit = that.__brush.emitter; - return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); - } - - function Emitter(that, args, clean) { - this.that = that; - this.args = args; - this.state = that.__brush; - this.active = 0; - this.clean = clean; - } - - Emitter.prototype = { - beforestart: function() { - if (++this.active === 1) this.state.emitter = this, this.starting = true; - return this; - }, - start: function(event, mode) { - if (this.starting) this.starting = false, this.emit("start", event, mode); - else this.emit("brush", event); - return this; - }, - brush: function(event, mode) { - this.emit("brush", event, mode); - return this; - }, - end: function(event, mode) { - if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode); - return this; - }, - emit: function(type, event, mode) { - var d = select(this.that).datum(); - listeners.call( - type, - this.that, - new BrushEvent(type, { - sourceEvent: event, - target: brush, - selection: dim.output(this.state.selection), - mode, - dispatch: listeners - }), - d - ); - } - }; - - function started(event) { - if (touchending && !event.touches) return; - if (!filter.apply(this, arguments)) return; - - var that = this, - type = event.target.__data__.type, - mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE), - signX = dim === Y ? null : signsX[type], - signY = dim === X ? null : signsY[type], - state = local(that), - extent = state.extent, - selection = state.selection, - W = extent[0][0], w0, w1, - N = extent[0][1], n0, n1, - E = extent[1][0], e0, e1, - S = extent[1][1], s0, s1, - dx = 0, - dy = 0, - moving, - shifting = signX && signY && keys && event.shiftKey, - lockX, - lockY, - points = Array.from(event.touches || [event], t => { - const i = t.identifier; - t = pointer(t, that); - t.point0 = t.slice(); - t.identifier = i; - return t; - }); - - if (type === "overlay") { - if (selection) moving = true; - const pts = [points[0], points[1] || points[0]]; - state.selection = selection = [[ - w0 = dim === Y ? W : min$1(pts[0][0], pts[1][0]), - n0 = dim === X ? N : min$1(pts[0][1], pts[1][1]) - ], [ - e0 = dim === Y ? E : max$2(pts[0][0], pts[1][0]), - s0 = dim === X ? S : max$2(pts[0][1], pts[1][1]) - ]]; - if (points.length > 1) move(); - } else { - w0 = selection[0][0]; - n0 = selection[0][1]; - e0 = selection[1][0]; - s0 = selection[1][1]; - } - - w1 = w0; - n1 = n0; - e1 = e0; - s1 = s0; - - var group = select(that) - .attr("pointer-events", "none"); - - var overlay = group.selectAll(".overlay") - .attr("cursor", cursors[type]); - - interrupt(that); - var emit = emitter(that, arguments, true).beforestart(); - - if (event.touches) { - emit.moved = moved; - emit.ended = ended; - } else { - var view = select(event.view) - .on("mousemove.brush", moved, true) - .on("mouseup.brush", ended, true); - if (keys) view - .on("keydown.brush", keydowned, true) - .on("keyup.brush", keyupped, true); - - dragDisable(event.view); - } - - redraw.call(that); - emit.start(event, mode.name); - - function moved(event) { - for (const p of event.changedTouches || [event]) { - for (const d of points) - if (d.identifier === p.identifier) d.cur = pointer(p, that); - } - if (shifting && !lockX && !lockY && points.length === 1) { - const point = points[0]; - if (abs$3(point.cur[0] - point[0]) > abs$3(point.cur[1] - point[1])) - lockY = true; - else - lockX = true; - } - for (const point of points) - if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1]; - moving = true; - noevent$1(event); - move(event); - } - - function move(event) { - const point = points[0], point0 = point.point0; - var t; - - dx = point[0] - point0[0]; - dy = point[1] - point0[1]; - - switch (mode) { - case MODE_SPACE: - case MODE_DRAG: { - if (signX) dx = max$2(W - w0, min$1(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; - if (signY) dy = max$2(N - n0, min$1(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; - break; - } - case MODE_HANDLE: { - if (points[1]) { - if (signX) w1 = max$2(W, min$1(E, points[0][0])), e1 = max$2(W, min$1(E, points[1][0])), signX = 1; - if (signY) n1 = max$2(N, min$1(S, points[0][1])), s1 = max$2(N, min$1(S, points[1][1])), signY = 1; - } else { - if (signX < 0) dx = max$2(W - w0, min$1(E - w0, dx)), w1 = w0 + dx, e1 = e0; - else if (signX > 0) dx = max$2(W - e0, min$1(E - e0, dx)), w1 = w0, e1 = e0 + dx; - if (signY < 0) dy = max$2(N - n0, min$1(S - n0, dy)), n1 = n0 + dy, s1 = s0; - else if (signY > 0) dy = max$2(N - s0, min$1(S - s0, dy)), n1 = n0, s1 = s0 + dy; - } - break; - } - case MODE_CENTER: { - if (signX) w1 = max$2(W, min$1(E, w0 - dx * signX)), e1 = max$2(W, min$1(E, e0 + dx * signX)); - if (signY) n1 = max$2(N, min$1(S, n0 - dy * signY)), s1 = max$2(N, min$1(S, s0 + dy * signY)); - break; - } - } - - if (e1 < w1) { - signX *= -1; - t = w0, w0 = e0, e0 = t; - t = w1, w1 = e1, e1 = t; - if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]); - } - - if (s1 < n1) { - signY *= -1; - t = n0, n0 = s0, s0 = t; - t = n1, n1 = s1, s1 = t; - if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]); - } - - if (state.selection) selection = state.selection; // May be set by brush.move! - if (lockX) w1 = selection[0][0], e1 = selection[1][0]; - if (lockY) n1 = selection[0][1], s1 = selection[1][1]; - - if (selection[0][0] !== w1 - || selection[0][1] !== n1 - || selection[1][0] !== e1 - || selection[1][1] !== s1) { - state.selection = [[w1, n1], [e1, s1]]; - redraw.call(that); - emit.brush(event, mode.name); - } - } - - function ended(event) { - nopropagation$1(event); - if (event.touches) { - if (event.touches.length) return; - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! - } else { - yesdrag(event.view, moving); - view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); - } - group.attr("pointer-events", "all"); - overlay.attr("cursor", cursors.overlay); - if (state.selection) selection = state.selection; // May be set by brush.move (on start)! - if (empty(selection)) state.selection = null, redraw.call(that); - emit.end(event, mode.name); - } - - function keydowned(event) { - switch (event.keyCode) { - case 16: { // SHIFT - shifting = signX && signY; - break; - } - case 18: { // ALT - if (mode === MODE_HANDLE) { - if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; - if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; - mode = MODE_CENTER; - move(); - } - break; - } - case 32: { // SPACE; takes priority over ALT - if (mode === MODE_HANDLE || mode === MODE_CENTER) { - if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx; - if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy; - mode = MODE_SPACE; - overlay.attr("cursor", cursors.selection); - move(); - } - break; - } - default: return; - } - noevent$1(event); - } - - function keyupped(event) { - switch (event.keyCode) { - case 16: { // SHIFT - if (shifting) { - lockX = lockY = shifting = false; - move(); - } - break; - } - case 18: { // ALT - if (mode === MODE_CENTER) { - if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; - if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; - mode = MODE_HANDLE; - move(); - } - break; - } - case 32: { // SPACE - if (mode === MODE_SPACE) { - if (event.altKey) { - if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; - if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; - mode = MODE_CENTER; - } else { - if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; - if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; - mode = MODE_HANDLE; - } - overlay.attr("cursor", cursors[type]); - move(); - } - break; - } - default: return; - } - noevent$1(event); - } - } - - function touchmoved(event) { - emitter(this, arguments).moved(event); - } - - function touchended(event) { - emitter(this, arguments).ended(event); - } - - function initialize() { - var state = this.__brush || {selection: null}; - state.extent = number2(extent.apply(this, arguments)); - state.dim = dim; - return state; - } - - brush.extent = function(_) { - return arguments.length ? (extent = typeof _ === "function" ? _ : constant$7(number2(_)), brush) : extent; - }; - - brush.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant$7(!!_), brush) : filter; - }; - - brush.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$7(!!_), brush) : touchable; - }; - - brush.handleSize = function(_) { - return arguments.length ? (handleSize = +_, brush) : handleSize; - }; - - brush.keyModifiers = function(_) { - return arguments.length ? (keys = !!_, brush) : keys; - }; - - brush.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? brush : value; - }; - - return brush; -} - -var abs$2 = Math.abs; -var cos$2 = Math.cos; -var sin$2 = Math.sin; -var pi$3 = Math.PI; -var halfPi$2 = pi$3 / 2; -var tau$4 = pi$3 * 2; -var max$1 = Math.max; -var epsilon$4 = 1e-12; - -function range$1(i, j) { - return Array.from({length: j - i}, (_, k) => i + k); -} - -function compareValue(compare) { - return function(a, b) { - return compare( - a.source.value + a.target.value, - b.source.value + b.target.value - ); - }; -} - -function chord() { - return chord$1(false, false); -} - -function chordTranspose() { - return chord$1(false, true); -} - -function chordDirected() { - return chord$1(true, false); -} - -function chord$1(directed, transpose) { - var padAngle = 0, - sortGroups = null, - sortSubgroups = null, - sortChords = null; - - function chord(matrix) { - var n = matrix.length, - groupSums = new Array(n), - groupIndex = range$1(0, n), - chords = new Array(n * n), - groups = new Array(n), - k = 0, dx; - - matrix = Float64Array.from({length: n * n}, transpose - ? (_, i) => matrix[i % n][i / n | 0] - : (_, i) => matrix[i / n | 0][i % n]); - - // Compute the scaling factor from value to angle in [0, 2pi]. - for (let i = 0; i < n; ++i) { - let x = 0; - for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i]; - k += groupSums[i] = x; - } - k = max$1(0, tau$4 - padAngle * n) / k; - dx = k ? padAngle : tau$4 / n; - - // Compute the angles for each group and constituent chord. - { - let x = 0; - if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b])); - for (const i of groupIndex) { - const x0 = x; - if (directed) { - const subgroupIndex = range$1(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]); - if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b])); - for (const j of subgroupIndex) { - if (j < 0) { - const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null}); - chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]}; - } else { - const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); - chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; - } - } - groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; - } else { - const subgroupIndex = range$1(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]); - if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b])); - for (const j of subgroupIndex) { - let chord; - if (i < j) { - chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); - chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; - } else { - chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null}); - chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; - if (i === j) chord.source = chord.target; - } - if (chord.source && chord.target && chord.source.value < chord.target.value) { - const source = chord.source; - chord.source = chord.target; - chord.target = source; - } - } - groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; - } - x += dx; - } - } - - // Remove empty chords. - chords = Object.values(chords); - chords.groups = groups; - return sortChords ? chords.sort(sortChords) : chords; - } - - chord.padAngle = function(_) { - return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle; - }; - - chord.sortGroups = function(_) { - return arguments.length ? (sortGroups = _, chord) : sortGroups; - }; - - chord.sortSubgroups = function(_) { - return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups; - }; - - chord.sortChords = function(_) { - return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._; - }; - - return chord; -} - -const pi$2 = Math.PI, - tau$3 = 2 * pi$2, - epsilon$3 = 1e-6, - tauEpsilon = tau$3 - epsilon$3; - -function Path$1() { - this._x0 = this._y0 = // start of current subpath - this._x1 = this._y1 = null; // end of current subpath - this._ = ""; -} - -function path() { - return new Path$1; -} - -Path$1.prototype = path.prototype = { - constructor: Path$1, - moveTo: function(x, y) { - this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y); - }, - closePath: function() { - if (this._x1 !== null) { - this._x1 = this._x0, this._y1 = this._y0; - this._ += "Z"; - } - }, - lineTo: function(x, y) { - this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y); - }, - quadraticCurveTo: function(x1, y1, x, y) { - this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y); - }, - bezierCurveTo: function(x1, y1, x2, y2, x, y) { - this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y); - }, - arcTo: function(x1, y1, x2, y2, r) { - x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; - var x0 = this._x1, - y0 = this._y1, - x21 = x2 - x1, - y21 = y2 - y1, - x01 = x0 - x1, - y01 = y0 - y1, - l01_2 = x01 * x01 + y01 * y01; - - // Is the radius negative? Error. - if (r < 0) throw new Error("negative radius: " + r); - - // Is this path empty? Move to (x1,y1). - if (this._x1 === null) { - this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); - } - - // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. - else if (!(l01_2 > epsilon$3)); - - // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? - // Equivalently, is (x1,y1) coincident with (x2,y2)? - // Or, is the radius zero? Line to (x1,y1). - else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$3) || !r) { - this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); - } - - // Otherwise, draw an arc! - else { - var x20 = x2 - x0, - y20 = y2 - y0, - l21_2 = x21 * x21 + y21 * y21, - l20_2 = x20 * x20 + y20 * y20, - l21 = Math.sqrt(l21_2), - l01 = Math.sqrt(l01_2), - l = r * Math.tan((pi$2 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), - t01 = l / l01, - t21 = l / l21; - - // If the start tangent is not coincident with (x0,y0), line to. - if (Math.abs(t01 - 1) > epsilon$3) { - this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); - } - - this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); - } - }, - arc: function(x, y, r, a0, a1, ccw) { - x = +x, y = +y, r = +r, ccw = !!ccw; - var dx = r * Math.cos(a0), - dy = r * Math.sin(a0), - x0 = x + dx, - y0 = y + dy, - cw = 1 ^ ccw, - da = ccw ? a0 - a1 : a1 - a0; - - // Is the radius negative? Error. - if (r < 0) throw new Error("negative radius: " + r); - - // Is this path empty? Move to (x0,y0). - if (this._x1 === null) { - this._ += "M" + x0 + "," + y0; - } - - // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). - else if (Math.abs(this._x1 - x0) > epsilon$3 || Math.abs(this._y1 - y0) > epsilon$3) { - this._ += "L" + x0 + "," + y0; - } - - // Is this arc empty? We’re done. - if (!r) return; - - // Does the angle go the wrong way? Flip the direction. - if (da < 0) da = da % tau$3 + tau$3; - - // Is this a complete circle? Draw two arcs to complete the circle. - if (da > tauEpsilon) { - this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); - } - - // Is this arc non-empty? Draw an arc! - else if (da > epsilon$3) { - this._ += "A" + r + "," + r + ",0," + (+(da >= pi$2)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); - } - }, - rect: function(x, y, w, h) { - this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; - }, - toString: function() { - return this._; - } -}; - -var slice$2 = Array.prototype.slice; - -function constant$6(x) { - return function() { - return x; - }; -} - -function defaultSource$1(d) { - return d.source; -} - -function defaultTarget(d) { - return d.target; -} - -function defaultRadius$1(d) { - return d.radius; -} - -function defaultStartAngle(d) { - return d.startAngle; -} - -function defaultEndAngle(d) { - return d.endAngle; -} - -function defaultPadAngle() { - return 0; -} - -function defaultArrowheadRadius() { - return 10; -} - -function ribbon(headRadius) { - var source = defaultSource$1, - target = defaultTarget, - sourceRadius = defaultRadius$1, - targetRadius = defaultRadius$1, - startAngle = defaultStartAngle, - endAngle = defaultEndAngle, - padAngle = defaultPadAngle, - context = null; - - function ribbon() { - var buffer, - s = source.apply(this, arguments), - t = target.apply(this, arguments), - ap = padAngle.apply(this, arguments) / 2, - argv = slice$2.call(arguments), - sr = +sourceRadius.apply(this, (argv[0] = s, argv)), - sa0 = startAngle.apply(this, argv) - halfPi$2, - sa1 = endAngle.apply(this, argv) - halfPi$2, - tr = +targetRadius.apply(this, (argv[0] = t, argv)), - ta0 = startAngle.apply(this, argv) - halfPi$2, - ta1 = endAngle.apply(this, argv) - halfPi$2; - - if (!context) context = buffer = path(); - - if (ap > epsilon$4) { - if (abs$2(sa1 - sa0) > ap * 2 + epsilon$4) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap); - else sa0 = sa1 = (sa0 + sa1) / 2; - if (abs$2(ta1 - ta0) > ap * 2 + epsilon$4) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap); - else ta0 = ta1 = (ta0 + ta1) / 2; - } - - context.moveTo(sr * cos$2(sa0), sr * sin$2(sa0)); - context.arc(0, 0, sr, sa0, sa1); - if (sa0 !== ta0 || sa1 !== ta1) { - if (headRadius) { - var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2; - context.quadraticCurveTo(0, 0, tr2 * cos$2(ta0), tr2 * sin$2(ta0)); - context.lineTo(tr * cos$2(ta2), tr * sin$2(ta2)); - context.lineTo(tr2 * cos$2(ta1), tr2 * sin$2(ta1)); - } else { - context.quadraticCurveTo(0, 0, tr * cos$2(ta0), tr * sin$2(ta0)); - context.arc(0, 0, tr, ta0, ta1); - } - } - context.quadraticCurveTo(0, 0, sr * cos$2(sa0), sr * sin$2(sa0)); - context.closePath(); - - if (buffer) return context = null, buffer + "" || null; - } - - if (headRadius) ribbon.headRadius = function(_) { - return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : headRadius; - }; - - ribbon.radius = function(_) { - return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; - }; - - ribbon.sourceRadius = function(_) { - return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; - }; - - ribbon.targetRadius = function(_) { - return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : targetRadius; - }; - - ribbon.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : startAngle; - }; - - ribbon.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : endAngle; - }; - - ribbon.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : padAngle; - }; - - ribbon.source = function(_) { - return arguments.length ? (source = _, ribbon) : source; - }; - - ribbon.target = function(_) { - return arguments.length ? (target = _, ribbon) : target; - }; - - ribbon.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), ribbon) : context; - }; - - return ribbon; -} - -function ribbon$1() { - return ribbon(); -} - -function ribbonArrow() { - return ribbon(defaultArrowheadRadius); -} - -var array$2 = Array.prototype; - -var slice$1 = array$2.slice; - -function ascending$1(a, b) { - return a - b; -} - -function area$3(ring) { - var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1]; - while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1]; - return area; -} - -var constant$5 = x => () => x; - -function contains$2(ring, hole) { - var i = -1, n = hole.length, c; - while (++i < n) if (c = ringContains(ring, hole[i])) return c; - return 0; -} - -function ringContains(ring, point) { - var x = point[0], y = point[1], contains = -1; - for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) { - var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1]; - if (segmentContains(pi, pj, point)) return 0; - if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains; - } - return contains; -} - -function segmentContains(a, b, c) { - var i; return collinear$1(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]); -} - -function collinear$1(a, b, c) { - return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]); -} - -function within(p, q, r) { - return p <= q && q <= r || r <= q && q <= p; -} - -function noop$2() {} - -var cases = [ - [], - [[[1.0, 1.5], [0.5, 1.0]]], - [[[1.5, 1.0], [1.0, 1.5]]], - [[[1.5, 1.0], [0.5, 1.0]]], - [[[1.0, 0.5], [1.5, 1.0]]], - [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], - [[[1.0, 0.5], [1.0, 1.5]]], - [[[1.0, 0.5], [0.5, 1.0]]], - [[[0.5, 1.0], [1.0, 0.5]]], - [[[1.0, 1.5], [1.0, 0.5]]], - [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], - [[[1.5, 1.0], [1.0, 0.5]]], - [[[0.5, 1.0], [1.5, 1.0]]], - [[[1.0, 1.5], [1.5, 1.0]]], - [[[0.5, 1.0], [1.0, 1.5]]], - [] -]; - -function contours() { - var dx = 1, - dy = 1, - threshold = thresholdSturges, - smooth = smoothLinear; - - function contours(values) { - var tz = threshold(values); - - // Convert number of thresholds into uniform thresholds. - if (!Array.isArray(tz)) { - var domain = extent$1(values), start = domain[0], stop = domain[1]; - tz = tickStep(start, stop, tz); - tz = sequence(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz); - } else { - tz = tz.slice().sort(ascending$1); - } - - return tz.map(function(value) { - return contour(values, value); - }); - } - - // Accumulate, smooth contour rings, assign holes to exterior rings. - // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js - function contour(values, value) { - var polygons = [], - holes = []; - - isorings(values, value, function(ring) { - smooth(ring, values, value); - if (area$3(ring) > 0) polygons.push([ring]); - else holes.push(ring); - }); - - holes.forEach(function(hole) { - for (var i = 0, n = polygons.length, polygon; i < n; ++i) { - if (contains$2((polygon = polygons[i])[0], hole) !== -1) { - polygon.push(hole); - return; - } - } - }); - - return { - type: "MultiPolygon", - value: value, - coordinates: polygons - }; - } - - // Marching squares with isolines stitched into rings. - // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js - function isorings(values, value, callback) { - var fragmentByStart = new Array, - fragmentByEnd = new Array, - x, y, t0, t1, t2, t3; - - // Special case for the first row (y = -1, t2 = t3 = 0). - x = y = -1; - t1 = values[0] >= value; - cases[t1 << 1].forEach(stitch); - while (++x < dx - 1) { - t0 = t1, t1 = values[x + 1] >= value; - cases[t0 | t1 << 1].forEach(stitch); - } - cases[t1 << 0].forEach(stitch); - - // General case for the intermediate rows. - while (++y < dy - 1) { - x = -1; - t1 = values[y * dx + dx] >= value; - t2 = values[y * dx] >= value; - cases[t1 << 1 | t2 << 2].forEach(stitch); - while (++x < dx - 1) { - t0 = t1, t1 = values[y * dx + dx + x + 1] >= value; - t3 = t2, t2 = values[y * dx + x + 1] >= value; - cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch); - } - cases[t1 | t2 << 3].forEach(stitch); - } - - // Special case for the last row (y = dy - 1, t0 = t1 = 0). - x = -1; - t2 = values[y * dx] >= value; - cases[t2 << 2].forEach(stitch); - while (++x < dx - 1) { - t3 = t2, t2 = values[y * dx + x + 1] >= value; - cases[t2 << 2 | t3 << 3].forEach(stitch); - } - cases[t2 << 3].forEach(stitch); - - function stitch(line) { - var start = [line[0][0] + x, line[0][1] + y], - end = [line[1][0] + x, line[1][1] + y], - startIndex = index(start), - endIndex = index(end), - f, g; - if (f = fragmentByEnd[startIndex]) { - if (g = fragmentByStart[endIndex]) { - delete fragmentByEnd[f.end]; - delete fragmentByStart[g.start]; - if (f === g) { - f.ring.push(end); - callback(f.ring); - } else { - fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)}; - } - } else { - delete fragmentByEnd[f.end]; - f.ring.push(end); - fragmentByEnd[f.end = endIndex] = f; - } - } else if (f = fragmentByStart[endIndex]) { - if (g = fragmentByEnd[startIndex]) { - delete fragmentByStart[f.start]; - delete fragmentByEnd[g.end]; - if (f === g) { - f.ring.push(end); - callback(f.ring); - } else { - fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)}; - } - } else { - delete fragmentByStart[f.start]; - f.ring.unshift(start); - fragmentByStart[f.start = startIndex] = f; - } - } else { - fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]}; - } - } - } - - function index(point) { - return point[0] * 2 + point[1] * (dx + 1) * 4; - } - - function smoothLinear(ring, values, value) { - ring.forEach(function(point) { - var x = point[0], - y = point[1], - xt = x | 0, - yt = y | 0, - v0, - v1 = values[yt * dx + xt]; - if (x > 0 && x < dx && xt === x) { - v0 = values[yt * dx + xt - 1]; - point[0] = x + (value - v0) / (v1 - v0) - 0.5; - } - if (y > 0 && y < dy && yt === y) { - v0 = values[(yt - 1) * dx + xt]; - point[1] = y + (value - v0) / (v1 - v0) - 0.5; - } - }); - } - - contours.contour = contour; - - contours.size = function(_) { - if (!arguments.length) return [dx, dy]; - var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]); - if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); - return dx = _0, dy = _1, contours; - }; - - contours.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), contours) : threshold; - }; - - contours.smooth = function(_) { - return arguments.length ? (smooth = _ ? smoothLinear : noop$2, contours) : smooth === smoothLinear; - }; - - return contours; -} - -// TODO Optimize edge cases. -// TODO Optimize index calculation. -// TODO Optimize arguments. -function blurX(source, target, r) { - var n = source.width, - m = source.height, - w = (r << 1) + 1; - for (var j = 0; j < m; ++j) { - for (var i = 0, sr = 0; i < n + r; ++i) { - if (i < n) { - sr += source.data[i + j * n]; - } - if (i >= r) { - if (i >= w) { - sr -= source.data[i - w + j * n]; - } - target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w); - } - } - } -} - -// TODO Optimize edge cases. -// TODO Optimize index calculation. -// TODO Optimize arguments. -function blurY(source, target, r) { - var n = source.width, - m = source.height, - w = (r << 1) + 1; - for (var i = 0; i < n; ++i) { - for (var j = 0, sr = 0; j < m + r; ++j) { - if (j < m) { - sr += source.data[i + j * n]; - } - if (j >= r) { - if (j >= w) { - sr -= source.data[i + (j - w) * n]; - } - target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w); - } - } - } -} - -function defaultX$1(d) { - return d[0]; -} - -function defaultY$1(d) { - return d[1]; -} - -function defaultWeight() { - return 1; -} - -function density() { - var x = defaultX$1, - y = defaultY$1, - weight = defaultWeight, - dx = 960, - dy = 500, - r = 20, // blur radius - k = 2, // log2(grid cell size) - o = r * 3, // grid offset, to pad for blur - n = (dx + o * 2) >> k, // grid width - m = (dy + o * 2) >> k, // grid height - threshold = constant$5(20); - - function density(data) { - var values0 = new Float32Array(n * m), - values1 = new Float32Array(n * m); - - data.forEach(function(d, i, data) { - var xi = (+x(d, i, data) + o) >> k, - yi = (+y(d, i, data) + o) >> k, - wi = +weight(d, i, data); - if (xi >= 0 && xi < n && yi >= 0 && yi < m) { - values0[xi + yi * n] += wi; - } - }); - - // TODO Optimize. - blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); - blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); - blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); - blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); - blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); - blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); - - var tz = threshold(values0); - - // Convert number of thresholds into uniform thresholds. - if (!Array.isArray(tz)) { - var stop = max$3(values0); - tz = tickStep(0, stop, tz); - tz = sequence(0, Math.floor(stop / tz) * tz, tz); - tz.shift(); - } - - return contours() - .thresholds(tz) - .size([n, m]) - (values0) - .map(transform); - } - - function transform(geometry) { - geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel. - geometry.coordinates.forEach(transformPolygon); - return geometry; - } - - function transformPolygon(coordinates) { - coordinates.forEach(transformRing); - } - - function transformRing(coordinates) { - coordinates.forEach(transformPoint); - } - - // TODO Optimize. - function transformPoint(coordinates) { - coordinates[0] = coordinates[0] * Math.pow(2, k) - o; - coordinates[1] = coordinates[1] * Math.pow(2, k) - o; - } - - function resize() { - o = r * 3; - n = (dx + o * 2) >> k; - m = (dy + o * 2) >> k; - return density; - } - - density.x = function(_) { - return arguments.length ? (x = typeof _ === "function" ? _ : constant$5(+_), density) : x; - }; - - density.y = function(_) { - return arguments.length ? (y = typeof _ === "function" ? _ : constant$5(+_), density) : y; - }; - - density.weight = function(_) { - return arguments.length ? (weight = typeof _ === "function" ? _ : constant$5(+_), density) : weight; - }; - - density.size = function(_) { - if (!arguments.length) return [dx, dy]; - var _0 = +_[0], _1 = +_[1]; - if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); - return dx = _0, dy = _1, resize(); - }; - - density.cellSize = function(_) { - if (!arguments.length) return 1 << k; - if (!((_ = +_) >= 1)) throw new Error("invalid cell size"); - return k = Math.floor(Math.log(_) / Math.LN2), resize(); - }; - - density.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), density) : threshold; - }; - - density.bandwidth = function(_) { - if (!arguments.length) return Math.sqrt(r * (r + 1)); - if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth"); - return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize(); - }; - - return density; -} - -const EPSILON = Math.pow(2, -52); -const EDGE_STACK = new Uint32Array(512); - -class Delaunator { - - static from(points, getX = defaultGetX, getY = defaultGetY) { - const n = points.length; - const coords = new Float64Array(n * 2); - - for (let i = 0; i < n; i++) { - const p = points[i]; - coords[2 * i] = getX(p); - coords[2 * i + 1] = getY(p); - } - - return new Delaunator(coords); - } - - constructor(coords) { - const n = coords.length >> 1; - if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.'); - - this.coords = coords; - - // arrays that will store the triangulation graph - const maxTriangles = Math.max(2 * n - 5, 0); - this._triangles = new Uint32Array(maxTriangles * 3); - this._halfedges = new Int32Array(maxTriangles * 3); - - // temporary arrays for tracking the edges of the advancing convex hull - this._hashSize = Math.ceil(Math.sqrt(n)); - this._hullPrev = new Uint32Array(n); // edge to prev edge - this._hullNext = new Uint32Array(n); // edge to next edge - this._hullTri = new Uint32Array(n); // edge to adjacent triangle - this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash - - // temporary arrays for sorting points - this._ids = new Uint32Array(n); - this._dists = new Float64Array(n); - - this.update(); - } - - update() { - const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this; - const n = coords.length >> 1; - - // populate an array of point indices; calculate input data bbox - let minX = Infinity; - let minY = Infinity; - let maxX = -Infinity; - let maxY = -Infinity; - - for (let i = 0; i < n; i++) { - const x = coords[2 * i]; - const y = coords[2 * i + 1]; - if (x < minX) minX = x; - if (y < minY) minY = y; - if (x > maxX) maxX = x; - if (y > maxY) maxY = y; - this._ids[i] = i; - } - const cx = (minX + maxX) / 2; - const cy = (minY + maxY) / 2; - - let minDist = Infinity; - let i0, i1, i2; - - // pick a seed point close to the center - for (let i = 0; i < n; i++) { - const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]); - if (d < minDist) { - i0 = i; - minDist = d; - } - } - const i0x = coords[2 * i0]; - const i0y = coords[2 * i0 + 1]; - - minDist = Infinity; - - // find the point closest to the seed - for (let i = 0; i < n; i++) { - if (i === i0) continue; - const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]); - if (d < minDist && d > 0) { - i1 = i; - minDist = d; - } - } - let i1x = coords[2 * i1]; - let i1y = coords[2 * i1 + 1]; - - let minRadius = Infinity; - - // find the third point which forms the smallest circumcircle with the first two - for (let i = 0; i < n; i++) { - if (i === i0 || i === i1) continue; - const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]); - if (r < minRadius) { - i2 = i; - minRadius = r; - } - } - let i2x = coords[2 * i2]; - let i2y = coords[2 * i2 + 1]; - - if (minRadius === Infinity) { - // order collinear points by dx (or dy if all x are identical) - // and return the list as a hull - for (let i = 0; i < n; i++) { - this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]); - } - quicksort(this._ids, this._dists, 0, n - 1); - const hull = new Uint32Array(n); - let j = 0; - for (let i = 0, d0 = -Infinity; i < n; i++) { - const id = this._ids[i]; - if (this._dists[id] > d0) { - hull[j++] = id; - d0 = this._dists[id]; - } - } - this.hull = hull.subarray(0, j); - this.triangles = new Uint32Array(0); - this.halfedges = new Uint32Array(0); - return; - } - - // swap the order of the seed points for counter-clockwise orientation - if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { - const i = i1; - const x = i1x; - const y = i1y; - i1 = i2; - i1x = i2x; - i1y = i2y; - i2 = i; - i2x = x; - i2y = y; - } - - const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y); - this._cx = center.x; - this._cy = center.y; - - for (let i = 0; i < n; i++) { - this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y); - } - - // sort the points by distance from the seed triangle circumcenter - quicksort(this._ids, this._dists, 0, n - 1); - - // set up the seed triangle as the starting hull - this._hullStart = i0; - let hullSize = 3; - - hullNext[i0] = hullPrev[i2] = i1; - hullNext[i1] = hullPrev[i0] = i2; - hullNext[i2] = hullPrev[i1] = i0; - - hullTri[i0] = 0; - hullTri[i1] = 1; - hullTri[i2] = 2; - - hullHash.fill(-1); - hullHash[this._hashKey(i0x, i0y)] = i0; - hullHash[this._hashKey(i1x, i1y)] = i1; - hullHash[this._hashKey(i2x, i2y)] = i2; - - this.trianglesLen = 0; - this._addTriangle(i0, i1, i2, -1, -1, -1); - - for (let k = 0, xp, yp; k < this._ids.length; k++) { - const i = this._ids[k]; - const x = coords[2 * i]; - const y = coords[2 * i + 1]; - - // skip near-duplicate points - if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue; - xp = x; - yp = y; - - // skip seed triangle points - if (i === i0 || i === i1 || i === i2) continue; - - // find a visible edge on the convex hull using edge hash - let start = 0; - for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) { - start = hullHash[(key + j) % this._hashSize]; - if (start !== -1 && start !== hullNext[start]) break; - } - - start = hullPrev[start]; - let e = start, q; - while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) { - e = q; - if (e === start) { - e = -1; - break; - } - } - if (e === -1) continue; // likely a near-duplicate point; skip it - - // add the first triangle from the point - let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]); - - // recursively flip triangles from the point until they satisfy the Delaunay condition - hullTri[i] = this._legalize(t + 2); - hullTri[e] = t; // keep track of boundary triangles on the hull - hullSize++; - - // walk forward through the hull, adding more triangles and flipping recursively - let n = hullNext[e]; - while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) { - t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]); - hullTri[i] = this._legalize(t + 2); - hullNext[n] = n; // mark as removed - hullSize--; - n = q; - } - - // walk backward from the other side, adding more triangles and flipping - if (e === start) { - while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) { - t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]); - this._legalize(t + 2); - hullTri[q] = t; - hullNext[e] = e; // mark as removed - hullSize--; - e = q; - } - } - - // update the hull indices - this._hullStart = hullPrev[i] = e; - hullNext[e] = hullPrev[n] = i; - hullNext[i] = n; - - // save the two new edges in the hash table - hullHash[this._hashKey(x, y)] = i; - hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e; - } - - this.hull = new Uint32Array(hullSize); - for (let i = 0, e = this._hullStart; i < hullSize; i++) { - this.hull[i] = e; - e = hullNext[e]; - } - - // trim typed triangle mesh arrays - this.triangles = this._triangles.subarray(0, this.trianglesLen); - this.halfedges = this._halfedges.subarray(0, this.trianglesLen); - } - - _hashKey(x, y) { - return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize; - } - - _legalize(a) { - const {_triangles: triangles, _halfedges: halfedges, coords} = this; - - let i = 0; - let ar = 0; - - // recursion eliminated with a fixed-size stack - while (true) { - const b = halfedges[a]; - - /* if the pair of triangles doesn't satisfy the Delaunay condition - * (p1 is inside the circumcircle of [p0, pl, pr]), flip them, - * then do the same check/flip recursively for the new pair of triangles - * - * pl pl - * /||\ / \ - * al/ || \bl al/ \a - * / || \ / \ - * / a||b \ flip /___ar___\ - * p0\ || /p1 => p0\---bl---/p1 - * \ || / \ / - * ar\ || /br b\ /br - * \||/ \ / - * pr pr - */ - const a0 = a - a % 3; - ar = a0 + (a + 2) % 3; - - if (b === -1) { // convex hull edge - if (i === 0) break; - a = EDGE_STACK[--i]; - continue; - } - - const b0 = b - b % 3; - const al = a0 + (a + 1) % 3; - const bl = b0 + (b + 2) % 3; - - const p0 = triangles[ar]; - const pr = triangles[a]; - const pl = triangles[al]; - const p1 = triangles[bl]; - - const illegal = inCircle( - coords[2 * p0], coords[2 * p0 + 1], - coords[2 * pr], coords[2 * pr + 1], - coords[2 * pl], coords[2 * pl + 1], - coords[2 * p1], coords[2 * p1 + 1]); - - if (illegal) { - triangles[a] = p1; - triangles[b] = p0; - - const hbl = halfedges[bl]; - - // edge swapped on the other side of the hull (rare); fix the halfedge reference - if (hbl === -1) { - let e = this._hullStart; - do { - if (this._hullTri[e] === bl) { - this._hullTri[e] = a; - break; - } - e = this._hullPrev[e]; - } while (e !== this._hullStart); - } - this._link(a, hbl); - this._link(b, halfedges[ar]); - this._link(ar, bl); - - const br = b0 + (b + 1) % 3; - - // don't worry about hitting the cap: it can only happen on extremely degenerate input - if (i < EDGE_STACK.length) { - EDGE_STACK[i++] = br; - } - } else { - if (i === 0) break; - a = EDGE_STACK[--i]; - } - } - - return ar; - } - - _link(a, b) { - this._halfedges[a] = b; - if (b !== -1) this._halfedges[b] = a; - } - - // add a new triangle given vertex indices and adjacent half-edge ids - _addTriangle(i0, i1, i2, a, b, c) { - const t = this.trianglesLen; - - this._triangles[t] = i0; - this._triangles[t + 1] = i1; - this._triangles[t + 2] = i2; - - this._link(t, a); - this._link(t + 1, b); - this._link(t + 2, c); - - this.trianglesLen += 3; - - return t; - } -} - -// monotonically increases with real angle, but doesn't need expensive trigonometry -function pseudoAngle(dx, dy) { - const p = dx / (Math.abs(dx) + Math.abs(dy)); - return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1] -} - -function dist(ax, ay, bx, by) { - const dx = ax - bx; - const dy = ay - by; - return dx * dx + dy * dy; -} - -// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check -function orientIfSure(px, py, rx, ry, qx, qy) { - const l = (ry - py) * (qx - px); - const r = (rx - px) * (qy - py); - return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; -} - -// a more robust orientation test that's stable in a given triangle (to fix robustness issues) -function orient(rx, ry, qx, qy, px, py) { - const sign = orientIfSure(px, py, rx, ry, qx, qy) || - orientIfSure(rx, ry, qx, qy, px, py) || - orientIfSure(qx, qy, px, py, rx, ry); - return sign < 0; -} - -function inCircle(ax, ay, bx, by, cx, cy, px, py) { - const dx = ax - px; - const dy = ay - py; - const ex = bx - px; - const ey = by - py; - const fx = cx - px; - const fy = cy - py; - - const ap = dx * dx + dy * dy; - const bp = ex * ex + ey * ey; - const cp = fx * fx + fy * fy; - - return dx * (ey * cp - bp * fy) - - dy * (ex * cp - bp * fx) + - ap * (ex * fy - ey * fx) < 0; -} - -function circumradius(ax, ay, bx, by, cx, cy) { - const dx = bx - ax; - const dy = by - ay; - const ex = cx - ax; - const ey = cy - ay; - - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; - const d = 0.5 / (dx * ey - dy * ex); - - const x = (ey * bl - dy * cl) * d; - const y = (dx * cl - ex * bl) * d; - - return x * x + y * y; -} - -function circumcenter(ax, ay, bx, by, cx, cy) { - const dx = bx - ax; - const dy = by - ay; - const ex = cx - ax; - const ey = cy - ay; - - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; - const d = 0.5 / (dx * ey - dy * ex); - - const x = ax + (ey * bl - dy * cl) * d; - const y = ay + (dx * cl - ex * bl) * d; - - return {x, y}; -} - -function quicksort(ids, dists, left, right) { - if (right - left <= 20) { - for (let i = left + 1; i <= right; i++) { - const temp = ids[i]; - const tempDist = dists[temp]; - let j = i - 1; - while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--]; - ids[j + 1] = temp; - } - } else { - const median = (left + right) >> 1; - let i = left + 1; - let j = right; - swap(ids, median, i); - if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right); - if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right); - if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i); - - const temp = ids[i]; - const tempDist = dists[temp]; - while (true) { - do i++; while (dists[ids[i]] < tempDist); - do j--; while (dists[ids[j]] > tempDist); - if (j < i) break; - swap(ids, i, j); - } - ids[left + 1] = ids[j]; - ids[j] = temp; - - if (right - i + 1 >= j - left) { - quicksort(ids, dists, i, right); - quicksort(ids, dists, left, j - 1); - } else { - quicksort(ids, dists, left, j - 1); - quicksort(ids, dists, i, right); - } - } -} - -function swap(arr, i, j) { - const tmp = arr[i]; - arr[i] = arr[j]; - arr[j] = tmp; -} - -function defaultGetX(p) { - return p[0]; -} -function defaultGetY(p) { - return p[1]; -} - -const epsilon$2 = 1e-6; - -class Path { - constructor() { - this._x0 = this._y0 = // start of current subpath - this._x1 = this._y1 = null; // end of current subpath - this._ = ""; - } - moveTo(x, y) { - this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; - } - closePath() { - if (this._x1 !== null) { - this._x1 = this._x0, this._y1 = this._y0; - this._ += "Z"; - } - } - lineTo(x, y) { - this._ += `L${this._x1 = +x},${this._y1 = +y}`; - } - arc(x, y, r) { - x = +x, y = +y, r = +r; - const x0 = x + r; - const y0 = y; - if (r < 0) throw new Error("negative radius"); - if (this._x1 === null) this._ += `M${x0},${y0}`; - else if (Math.abs(this._x1 - x0) > epsilon$2 || Math.abs(this._y1 - y0) > epsilon$2) this._ += "L" + x0 + "," + y0; - if (!r) return; - this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`; - } - rect(x, y, w, h) { - this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`; - } - value() { - return this._ || null; - } -} - -class Polygon { - constructor() { - this._ = []; - } - moveTo(x, y) { - this._.push([x, y]); - } - closePath() { - this._.push(this._[0].slice()); - } - lineTo(x, y) { - this._.push([x, y]); - } - value() { - return this._.length ? this._ : null; - } -} - -class Voronoi { - constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) { - if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds"); - this.delaunay = delaunay; - this._circumcenters = new Float64Array(delaunay.points.length * 2); - this.vectors = new Float64Array(delaunay.points.length * 2); - this.xmax = xmax, this.xmin = xmin; - this.ymax = ymax, this.ymin = ymin; - this._init(); - } - update() { - this.delaunay.update(); - this._init(); - return this; - } - _init() { - const {delaunay: {points, hull, triangles}, vectors} = this; - - // Compute circumcenters. - const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2); - for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) { - const t1 = triangles[i] * 2; - const t2 = triangles[i + 1] * 2; - const t3 = triangles[i + 2] * 2; - const x1 = points[t1]; - const y1 = points[t1 + 1]; - const x2 = points[t2]; - const y2 = points[t2 + 1]; - const x3 = points[t3]; - const y3 = points[t3 + 1]; - - const dx = x2 - x1; - const dy = y2 - y1; - const ex = x3 - x1; - const ey = y3 - y1; - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; - const ab = (dx * ey - dy * ex) * 2; - - if (!ab) { - // degenerate case (collinear diagram) - x = (x1 + x3) / 2 - 1e8 * ey; - y = (y1 + y3) / 2 + 1e8 * ex; - } - else if (Math.abs(ab) < 1e-8) { - // almost equal points (degenerate triangle) - x = (x1 + x3) / 2; - y = (y1 + y3) / 2; - } else { - const d = 1 / ab; - x = x1 + (ey * bl - dy * cl) * d; - y = y1 + (dx * cl - ex * bl) * d; - } - circumcenters[j] = x; - circumcenters[j + 1] = y; - } - - // Compute exterior cell rays. - let h = hull[hull.length - 1]; - let p0, p1 = h * 4; - let x0, x1 = points[2 * h]; - let y0, y1 = points[2 * h + 1]; - vectors.fill(0); - for (let i = 0; i < hull.length; ++i) { - h = hull[i]; - p0 = p1, x0 = x1, y0 = y1; - p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1]; - vectors[p0 + 2] = vectors[p1] = y0 - y1; - vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0; - } - } - render(context) { - const buffer = context == null ? context = new Path : undefined; - const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this; - if (hull.length <= 1) return null; - for (let i = 0, n = halfedges.length; i < n; ++i) { - const j = halfedges[i]; - if (j < i) continue; - const ti = Math.floor(i / 3) * 2; - const tj = Math.floor(j / 3) * 2; - const xi = circumcenters[ti]; - const yi = circumcenters[ti + 1]; - const xj = circumcenters[tj]; - const yj = circumcenters[tj + 1]; - this._renderSegment(xi, yi, xj, yj, context); - } - let h0, h1 = hull[hull.length - 1]; - for (let i = 0; i < hull.length; ++i) { - h0 = h1, h1 = hull[i]; - const t = Math.floor(inedges[h1] / 3) * 2; - const x = circumcenters[t]; - const y = circumcenters[t + 1]; - const v = h0 * 4; - const p = this._project(x, y, vectors[v + 2], vectors[v + 3]); - if (p) this._renderSegment(x, y, p[0], p[1], context); - } - return buffer && buffer.value(); - } - renderBounds(context) { - const buffer = context == null ? context = new Path : undefined; - context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin); - return buffer && buffer.value(); - } - renderCell(i, context) { - const buffer = context == null ? context = new Path : undefined; - const points = this._clip(i); - if (points === null || !points.length) return; - context.moveTo(points[0], points[1]); - let n = points.length; - while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2; - for (let i = 2; i < n; i += 2) { - if (points[i] !== points[i-2] || points[i+1] !== points[i-1]) - context.lineTo(points[i], points[i + 1]); - } - context.closePath(); - return buffer && buffer.value(); - } - *cellPolygons() { - const {delaunay: {points}} = this; - for (let i = 0, n = points.length / 2; i < n; ++i) { - const cell = this.cellPolygon(i); - if (cell) cell.index = i, yield cell; - } - } - cellPolygon(i) { - const polygon = new Polygon; - this.renderCell(i, polygon); - return polygon.value(); - } - _renderSegment(x0, y0, x1, y1, context) { - let S; - const c0 = this._regioncode(x0, y0); - const c1 = this._regioncode(x1, y1); - if (c0 === 0 && c1 === 0) { - context.moveTo(x0, y0); - context.lineTo(x1, y1); - } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) { - context.moveTo(S[0], S[1]); - context.lineTo(S[2], S[3]); - } - } - contains(i, x, y) { - if ((x = +x, x !== x) || (y = +y, y !== y)) return false; - return this.delaunay._step(i, x, y) === i; - } - *neighbors(i) { - const ci = this._clip(i); - if (ci) for (const j of this.delaunay.neighbors(i)) { - const cj = this._clip(j); - // find the common edge - if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) { - for (let aj = 0, lj = cj.length; aj < lj; aj += 2) { - if (ci[ai] == cj[aj] - && ci[ai + 1] == cj[aj + 1] - && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj] - && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj] - ) { - yield j; - break loop; - } - } - } - } - } - _cell(i) { - const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this; - const e0 = inedges[i]; - if (e0 === -1) return null; // coincident point - const points = []; - let e = e0; - do { - const t = Math.floor(e / 3); - points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]); - e = e % 3 === 2 ? e - 2 : e + 1; - if (triangles[e] !== i) break; // bad triangulation - e = halfedges[e]; - } while (e !== e0 && e !== -1); - return points; - } - _clip(i) { - // degenerate case (1 valid point: return the box) - if (i === 0 && this.delaunay.hull.length === 1) { - return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; - } - const points = this._cell(i); - if (points === null) return null; - const {vectors: V} = this; - const v = i * 4; - return V[v] || V[v + 1] - ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) - : this._clipFinite(i, points); - } - _clipFinite(i, points) { - const n = points.length; - let P = null; - let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; - let c0, c1 = this._regioncode(x1, y1); - let e0, e1; - for (let j = 0; j < n; j += 2) { - x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; - c0 = c1, c1 = this._regioncode(x1, y1); - if (c0 === 0 && c1 === 0) { - e0 = e1, e1 = 0; - if (P) P.push(x1, y1); - else P = [x1, y1]; - } else { - let S, sx0, sy0, sx1, sy1; - if (c0 === 0) { - if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue; - [sx0, sy0, sx1, sy1] = S; - } else { - if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue; - [sx1, sy1, sx0, sy0] = S; - e0 = e1, e1 = this._edgecode(sx0, sy0); - if (e0 && e1) this._edge(i, e0, e1, P, P.length); - if (P) P.push(sx0, sy0); - else P = [sx0, sy0]; - } - e0 = e1, e1 = this._edgecode(sx1, sy1); - if (e0 && e1) this._edge(i, e0, e1, P, P.length); - if (P) P.push(sx1, sy1); - else P = [sx1, sy1]; - } - } - if (P) { - e0 = e1, e1 = this._edgecode(P[0], P[1]); - if (e0 && e1) this._edge(i, e0, e1, P, P.length); - } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { - return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; - } - return P; - } - _clipSegment(x0, y0, x1, y1, c0, c1) { - while (true) { - if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1]; - if (c0 & c1) return null; - let x, y, c = c0 || c1; - if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax; - else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin; - else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax; - else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin; - if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0); - else x1 = x, y1 = y, c1 = this._regioncode(x1, y1); - } - } - _clipInfinite(i, points, vx0, vy0, vxn, vyn) { - let P = Array.from(points), p; - if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]); - if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]); - if (P = this._clipFinite(i, P)) { - for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) { - c0 = c1, c1 = this._edgecode(P[j], P[j + 1]); - if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length; - } - } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { - P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]; - } - return P; - } - _edge(i, e0, e1, P, j) { - while (e0 !== e1) { - let x, y; - switch (e0) { - case 0b0101: e0 = 0b0100; continue; // top-left - case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top - case 0b0110: e0 = 0b0010; continue; // top-right - case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right - case 0b1010: e0 = 0b1000; continue; // bottom-right - case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom - case 0b1001: e0 = 0b0001; continue; // bottom-left - case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left - } - if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) { - P.splice(j, 0, x, y), j += 2; - } - } - if (P.length > 4) { - for (let i = 0; i < P.length; i+= 2) { - const j = (i + 2) % P.length, k = (i + 4) % P.length; - if (P[i] === P[j] && P[j] === P[k] - || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) - P.splice(j, 2), i -= 2; - } - } - return j; - } - _project(x0, y0, vx, vy) { - let t = Infinity, c, x, y; - if (vy < 0) { // top - if (y0 <= this.ymin) return null; - if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx; - } else if (vy > 0) { // bottom - if (y0 >= this.ymax) return null; - if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx; - } - if (vx > 0) { // right - if (x0 >= this.xmax) return null; - if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy; - } else if (vx < 0) { // left - if (x0 <= this.xmin) return null; - if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy; - } - return [x, y]; - } - _edgecode(x, y) { - return (x === this.xmin ? 0b0001 - : x === this.xmax ? 0b0010 : 0b0000) - | (y === this.ymin ? 0b0100 - : y === this.ymax ? 0b1000 : 0b0000); - } - _regioncode(x, y) { - return (x < this.xmin ? 0b0001 - : x > this.xmax ? 0b0010 : 0b0000) - | (y < this.ymin ? 0b0100 - : y > this.ymax ? 0b1000 : 0b0000); - } -} - -const tau$2 = 2 * Math.PI, pow$2 = Math.pow; - -function pointX(p) { - return p[0]; -} - -function pointY(p) { - return p[1]; -} - -// A triangulation is collinear if all its triangles have a non-null area -function collinear(d) { - const {triangles, coords} = d; - for (let i = 0; i < triangles.length; i += 3) { - const a = 2 * triangles[i], - b = 2 * triangles[i + 1], - c = 2 * triangles[i + 2], - cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) - - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); - if (cross > 1e-10) return false; - } - return true; -} - -function jitter(x, y, r) { - return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r]; -} - -class Delaunay { - static from(points, fx = pointX, fy = pointY, that) { - return new Delaunay("length" in points - ? flatArray(points, fx, fy, that) - : Float64Array.from(flatIterable(points, fx, fy, that))); - } - constructor(points) { - this._delaunator = new Delaunator(points); - this.inedges = new Int32Array(points.length / 2); - this._hullIndex = new Int32Array(points.length / 2); - this.points = this._delaunator.coords; - this._init(); - } - update() { - this._delaunator.update(); - this._init(); - return this; - } - _init() { - const d = this._delaunator, points = this.points; - - // check for collinear - if (d.hull && d.hull.length > 2 && collinear(d)) { - this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i) - .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors - const e = this.collinear[0], f = this.collinear[this.collinear.length - 1], - bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ], - r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]); - for (let i = 0, n = points.length / 2; i < n; ++i) { - const p = jitter(points[2 * i], points[2 * i + 1], r); - points[2 * i] = p[0]; - points[2 * i + 1] = p[1]; - } - this._delaunator = new Delaunator(points); - } else { - delete this.collinear; - } - - const halfedges = this.halfedges = this._delaunator.halfedges; - const hull = this.hull = this._delaunator.hull; - const triangles = this.triangles = this._delaunator.triangles; - const inedges = this.inedges.fill(-1); - const hullIndex = this._hullIndex.fill(-1); - - // Compute an index from each point to an (arbitrary) incoming halfedge - // Used to give the first neighbor of each point; for this reason, - // on the hull we give priority to exterior halfedges - for (let e = 0, n = halfedges.length; e < n; ++e) { - const p = triangles[e % 3 === 2 ? e - 2 : e + 1]; - if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e; - } - for (let i = 0, n = hull.length; i < n; ++i) { - hullIndex[hull[i]] = i; - } - - // degenerate case: 1 or 2 (distinct) points - if (hull.length <= 2 && hull.length > 0) { - this.triangles = new Int32Array(3).fill(-1); - this.halfedges = new Int32Array(3).fill(-1); - this.triangles[0] = hull[0]; - this.triangles[1] = hull[1]; - this.triangles[2] = hull[1]; - inedges[hull[0]] = 1; - if (hull.length === 2) inedges[hull[1]] = 0; - } - } - voronoi(bounds) { - return new Voronoi(this, bounds); - } - *neighbors(i) { - const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this; - - // degenerate case with several collinear points - if (collinear) { - const l = collinear.indexOf(i); - if (l > 0) yield collinear[l - 1]; - if (l < collinear.length - 1) yield collinear[l + 1]; - return; - } - - const e0 = inedges[i]; - if (e0 === -1) return; // coincident point - let e = e0, p0 = -1; - do { - yield p0 = triangles[e]; - e = e % 3 === 2 ? e - 2 : e + 1; - if (triangles[e] !== i) return; // bad triangulation - e = halfedges[e]; - if (e === -1) { - const p = hull[(_hullIndex[i] + 1) % hull.length]; - if (p !== p0) yield p; - return; - } - } while (e !== e0); - } - find(x, y, i = 0) { - if ((x = +x, x !== x) || (y = +y, y !== y)) return -1; - const i0 = i; - let c; - while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c; - return c; - } - _step(i, x, y) { - const {inedges, hull, _hullIndex, halfedges, triangles, points} = this; - if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1); - let c = i; - let dc = pow$2(x - points[i * 2], 2) + pow$2(y - points[i * 2 + 1], 2); - const e0 = inedges[i]; - let e = e0; - do { - let t = triangles[e]; - const dt = pow$2(x - points[t * 2], 2) + pow$2(y - points[t * 2 + 1], 2); - if (dt < dc) dc = dt, c = t; - e = e % 3 === 2 ? e - 2 : e + 1; - if (triangles[e] !== i) break; // bad triangulation - e = halfedges[e]; - if (e === -1) { - e = hull[(_hullIndex[i] + 1) % hull.length]; - if (e !== t) { - if (pow$2(x - points[e * 2], 2) + pow$2(y - points[e * 2 + 1], 2) < dc) return e; - } - break; - } - } while (e !== e0); - return c; - } - render(context) { - const buffer = context == null ? context = new Path : undefined; - const {points, halfedges, triangles} = this; - for (let i = 0, n = halfedges.length; i < n; ++i) { - const j = halfedges[i]; - if (j < i) continue; - const ti = triangles[i] * 2; - const tj = triangles[j] * 2; - context.moveTo(points[ti], points[ti + 1]); - context.lineTo(points[tj], points[tj + 1]); - } - this.renderHull(context); - return buffer && buffer.value(); - } - renderPoints(context, r = 2) { - const buffer = context == null ? context = new Path : undefined; - const {points} = this; - for (let i = 0, n = points.length; i < n; i += 2) { - const x = points[i], y = points[i + 1]; - context.moveTo(x + r, y); - context.arc(x, y, r, 0, tau$2); - } - return buffer && buffer.value(); - } - renderHull(context) { - const buffer = context == null ? context = new Path : undefined; - const {hull, points} = this; - const h = hull[0] * 2, n = hull.length; - context.moveTo(points[h], points[h + 1]); - for (let i = 1; i < n; ++i) { - const h = 2 * hull[i]; - context.lineTo(points[h], points[h + 1]); - } - context.closePath(); - return buffer && buffer.value(); - } - hullPolygon() { - const polygon = new Polygon; - this.renderHull(polygon); - return polygon.value(); - } - renderTriangle(i, context) { - const buffer = context == null ? context = new Path : undefined; - const {points, triangles} = this; - const t0 = triangles[i *= 3] * 2; - const t1 = triangles[i + 1] * 2; - const t2 = triangles[i + 2] * 2; - context.moveTo(points[t0], points[t0 + 1]); - context.lineTo(points[t1], points[t1 + 1]); - context.lineTo(points[t2], points[t2 + 1]); - context.closePath(); - return buffer && buffer.value(); - } - *trianglePolygons() { - const {triangles} = this; - for (let i = 0, n = triangles.length / 3; i < n; ++i) { - yield this.trianglePolygon(i); - } - } - trianglePolygon(i) { - const polygon = new Polygon; - this.renderTriangle(i, polygon); - return polygon.value(); - } -} - -function flatArray(points, fx, fy, that) { - const n = points.length; - const array = new Float64Array(n * 2); - for (let i = 0; i < n; ++i) { - const p = points[i]; - array[i * 2] = fx.call(that, p, i, points); - array[i * 2 + 1] = fy.call(that, p, i, points); - } - return array; -} - -function* flatIterable(points, fx, fy, that) { - let i = 0; - for (const p of points) { - yield fx.call(that, p, i, points); - yield fy.call(that, p, i, points); - ++i; - } -} - -var EOL = {}, - EOF = {}, - QUOTE = 34, - NEWLINE = 10, - RETURN = 13; - -function objectConverter(columns) { - return new Function("d", "return {" + columns.map(function(name, i) { - return JSON.stringify(name) + ": d[" + i + "] || \"\""; - }).join(",") + "}"); -} - -function customConverter(columns, f) { - var object = objectConverter(columns); - return function(row, i) { - return f(object(row), i, columns); - }; -} - -// Compute unique columns in order of discovery. -function inferColumns(rows) { - var columnSet = Object.create(null), - columns = []; - - rows.forEach(function(row) { - for (var column in row) { - if (!(column in columnSet)) { - columns.push(columnSet[column] = column); - } - } - }); - - return columns; -} - -function pad$1(value, width) { - var s = value + "", length = s.length; - return length < width ? new Array(width - length + 1).join(0) + s : s; -} - -function formatYear$1(year) { - return year < 0 ? "-" + pad$1(-year, 6) - : year > 9999 ? "+" + pad$1(year, 6) - : pad$1(year, 4); -} - -function formatDate(date) { - var hours = date.getUTCHours(), - minutes = date.getUTCMinutes(), - seconds = date.getUTCSeconds(), - milliseconds = date.getUTCMilliseconds(); - return isNaN(date) ? "Invalid Date" - : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2) - + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z" - : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z" - : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z" - : ""); -} - -function dsvFormat(delimiter) { - var reFormat = new RegExp("[\"" + delimiter + "\n\r]"), - DELIMITER = delimiter.charCodeAt(0); - - function parse(text, f) { - var convert, columns, rows = parseRows(text, function(row, i) { - if (convert) return convert(row, i - 1); - columns = row, convert = f ? customConverter(row, f) : objectConverter(row); - }); - rows.columns = columns || []; - return rows; - } - - function parseRows(text, f) { - var rows = [], // output rows - N = text.length, - I = 0, // current character index - n = 0, // current line number - t, // current token - eof = N <= 0, // current token followed by EOF? - eol = false; // current token followed by EOL? - - // Strip the trailing newline. - if (text.charCodeAt(N - 1) === NEWLINE) --N; - if (text.charCodeAt(N - 1) === RETURN) --N; - - function token() { - if (eof) return EOF; - if (eol) return eol = false, EOL; - - // Unescape quotes. - var i, j = I, c; - if (text.charCodeAt(j) === QUOTE) { - while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE); - if ((i = I) >= N) eof = true; - else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true; - else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } - return text.slice(j + 1, i - 1).replace(/""/g, "\""); - } - - // Find next delimiter or newline. - while (I < N) { - if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true; - else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } - else if (c !== DELIMITER) continue; - return text.slice(j, i); - } - - // Return last token before EOF. - return eof = true, text.slice(j, N); - } - - while ((t = token()) !== EOF) { - var row = []; - while (t !== EOL && t !== EOF) row.push(t), t = token(); - if (f && (row = f(row, n++)) == null) continue; - rows.push(row); - } - - return rows; - } - - function preformatBody(rows, columns) { - return rows.map(function(row) { - return columns.map(function(column) { - return formatValue(row[column]); - }).join(delimiter); - }); - } - - function format(rows, columns) { - if (columns == null) columns = inferColumns(rows); - return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n"); - } - - function formatBody(rows, columns) { - if (columns == null) columns = inferColumns(rows); - return preformatBody(rows, columns).join("\n"); - } - - function formatRows(rows) { - return rows.map(formatRow).join("\n"); - } - - function formatRow(row) { - return row.map(formatValue).join(delimiter); - } - - function formatValue(value) { - return value == null ? "" - : value instanceof Date ? formatDate(value) - : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\"" - : value; - } - - return { - parse: parse, - parseRows: parseRows, - format: format, - formatBody: formatBody, - formatRows: formatRows, - formatRow: formatRow, - formatValue: formatValue - }; -} - -var csv$1 = dsvFormat(","); - -var csvParse = csv$1.parse; -var csvParseRows = csv$1.parseRows; -var csvFormat = csv$1.format; -var csvFormatBody = csv$1.formatBody; -var csvFormatRows = csv$1.formatRows; -var csvFormatRow = csv$1.formatRow; -var csvFormatValue = csv$1.formatValue; - -var tsv$1 = dsvFormat("\t"); - -var tsvParse = tsv$1.parse; -var tsvParseRows = tsv$1.parseRows; -var tsvFormat = tsv$1.format; -var tsvFormatBody = tsv$1.formatBody; -var tsvFormatRows = tsv$1.formatRows; -var tsvFormatRow = tsv$1.formatRow; -var tsvFormatValue = tsv$1.formatValue; - -function autoType(object) { - for (var key in object) { - var value = object[key].trim(), number, m; - if (!value) value = null; - else if (value === "true") value = true; - else if (value === "false") value = false; - else if (value === "NaN") value = NaN; - else if (!isNaN(number = +value)) value = number; - else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) { - if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " "); - value = new Date(value); - } - else continue; - object[key] = value; - } - return object; -} - -// https://github.com/d3/d3-dsv/issues/45 -const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours(); - -function responseBlob(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - return response.blob(); -} - -function blob(input, init) { - return fetch(input, init).then(responseBlob); -} - -function responseArrayBuffer(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - return response.arrayBuffer(); -} - -function buffer(input, init) { - return fetch(input, init).then(responseArrayBuffer); -} - -function responseText(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - return response.text(); -} - -function text(input, init) { - return fetch(input, init).then(responseText); -} - -function dsvParse(parse) { - return function(input, init, row) { - if (arguments.length === 2 && typeof init === "function") row = init, init = undefined; - return text(input, init).then(function(response) { - return parse(response, row); - }); - }; -} - -function dsv(delimiter, input, init, row) { - if (arguments.length === 3 && typeof init === "function") row = init, init = undefined; - var format = dsvFormat(delimiter); - return text(input, init).then(function(response) { - return format.parse(response, row); - }); -} - -var csv = dsvParse(csvParse); -var tsv = dsvParse(tsvParse); - -function image(input, init) { - return new Promise(function(resolve, reject) { - var image = new Image; - for (var key in init) image[key] = init[key]; - image.onerror = reject; - image.onload = function() { resolve(image); }; - image.src = input; - }); -} - -function responseJson(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - if (response.status === 204 || response.status === 205) return; - return response.json(); -} - -function json(input, init) { - return fetch(input, init).then(responseJson); -} - -function parser(type) { - return (input, init) => text(input, init) - .then(text => (new DOMParser).parseFromString(text, type)); -} - -var xml = parser("application/xml"); - -var html = parser("text/html"); - -var svg = parser("image/svg+xml"); - -function center(x, y) { - var nodes, strength = 1; - - if (x == null) x = 0; - if (y == null) y = 0; - - function force() { - var i, - n = nodes.length, - node, - sx = 0, - sy = 0; - - for (i = 0; i < n; ++i) { - node = nodes[i], sx += node.x, sy += node.y; - } - - for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) { - node = nodes[i], node.x -= sx, node.y -= sy; - } - } - - force.initialize = function(_) { - nodes = _; - }; - - force.x = function(_) { - return arguments.length ? (x = +_, force) : x; - }; - - force.y = function(_) { - return arguments.length ? (y = +_, force) : y; - }; - - force.strength = function(_) { - return arguments.length ? (strength = +_, force) : strength; - }; - - return force; -} - -function tree_add(d) { - const x = +this._x.call(null, d), - y = +this._y.call(null, d); - return add(this.cover(x, y), x, y, d); -} - -function add(tree, x, y, d) { - if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points - - var parent, - node = tree._root, - leaf = {data: d}, - x0 = tree._x0, - y0 = tree._y0, - x1 = tree._x1, - y1 = tree._y1, - xm, - ym, - xp, - yp, - right, - bottom, - i, - j; - - // If the tree is empty, initialize the root as a leaf. - if (!node) return tree._root = leaf, tree; - - // Find the existing leaf for the new point, or add it. - while (node.length) { - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; - } - - // Is the new point is exactly coincident with the existing point? - xp = +tree._x.call(null, node.data); - yp = +tree._y.call(null, node.data); - if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; - - // Otherwise, split the leaf node until the old and new point are separated. - do { - parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); - return parent[j] = node, parent[i] = leaf, tree; -} - -function addAll(data) { - var d, i, n = data.length, - x, - y, - xz = new Array(n), - yz = new Array(n), - x0 = Infinity, - y0 = Infinity, - x1 = -Infinity, - y1 = -Infinity; - - // Compute the points and their extent. - for (i = 0; i < n; ++i) { - if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; - xz[i] = x; - yz[i] = y; - if (x < x0) x0 = x; - if (x > x1) x1 = x; - if (y < y0) y0 = y; - if (y > y1) y1 = y; - } - - // If there were no (valid) points, abort. - if (x0 > x1 || y0 > y1) return this; - - // Expand the tree to cover the new points. - this.cover(x0, y0).cover(x1, y1); - - // Add the new points. - for (i = 0; i < n; ++i) { - add(this, xz[i], yz[i], data[i]); - } - - return this; -} - -function tree_cover(x, y) { - if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points - - var x0 = this._x0, - y0 = this._y0, - x1 = this._x1, - y1 = this._y1; - - // If the quadtree has no extent, initialize them. - // Integer extent are necessary so that if we later double the extent, - // the existing quadrant boundaries don’t change due to floating point error! - if (isNaN(x0)) { - x1 = (x0 = Math.floor(x)) + 1; - y1 = (y0 = Math.floor(y)) + 1; - } - - // Otherwise, double repeatedly to cover. - else { - var z = x1 - x0 || 1, - node = this._root, - parent, - i; - - while (x0 > x || x >= x1 || y0 > y || y >= y1) { - i = (y < y0) << 1 | (x < x0); - parent = new Array(4), parent[i] = node, node = parent, z *= 2; - switch (i) { - case 0: x1 = x0 + z, y1 = y0 + z; break; - case 1: x0 = x1 - z, y1 = y0 + z; break; - case 2: x1 = x0 + z, y0 = y1 - z; break; - case 3: x0 = x1 - z, y0 = y1 - z; break; - } - } - - if (this._root && this._root.length) this._root = node; - } - - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - return this; -} - -function tree_data() { - var data = []; - this.visit(function(node) { - if (!node.length) do data.push(node.data); while (node = node.next) - }); - return data; -} - -function tree_extent(_) { - return arguments.length - ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) - : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; -} - -function Quad(node, x0, y0, x1, y1) { - this.node = node; - this.x0 = x0; - this.y0 = y0; - this.x1 = x1; - this.y1 = y1; -} - -function tree_find(x, y, radius) { - var data, - x0 = this._x0, - y0 = this._y0, - x1, - y1, - x2, - y2, - x3 = this._x1, - y3 = this._y1, - quads = [], - node = this._root, - q, - i; - - if (node) quads.push(new Quad(node, x0, y0, x3, y3)); - if (radius == null) radius = Infinity; - else { - x0 = x - radius, y0 = y - radius; - x3 = x + radius, y3 = y + radius; - radius *= radius; - } - - while (q = quads.pop()) { - - // Stop searching if this quadrant can’t contain a closer node. - if (!(node = q.node) - || (x1 = q.x0) > x3 - || (y1 = q.y0) > y3 - || (x2 = q.x1) < x0 - || (y2 = q.y1) < y0) continue; - - // Bisect the current quadrant. - if (node.length) { - var xm = (x1 + x2) / 2, - ym = (y1 + y2) / 2; - - quads.push( - new Quad(node[3], xm, ym, x2, y2), - new Quad(node[2], x1, ym, xm, y2), - new Quad(node[1], xm, y1, x2, ym), - new Quad(node[0], x1, y1, xm, ym) - ); - - // Visit the closest quadrant first. - if (i = (y >= ym) << 1 | (x >= xm)) { - q = quads[quads.length - 1]; - quads[quads.length - 1] = quads[quads.length - 1 - i]; - quads[quads.length - 1 - i] = q; - } - } - - // Visit this point. (Visiting coincident points isn’t necessary!) - else { - var dx = x - +this._x.call(null, node.data), - dy = y - +this._y.call(null, node.data), - d2 = dx * dx + dy * dy; - if (d2 < radius) { - var d = Math.sqrt(radius = d2); - x0 = x - d, y0 = y - d; - x3 = x + d, y3 = y + d; - data = node.data; - } - } - } - - return data; -} - -function tree_remove(d) { - if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points - - var parent, - node = this._root, - retainer, - previous, - next, - x0 = this._x0, - y0 = this._y0, - x1 = this._x1, - y1 = this._y1, - x, - y, - xm, - ym, - right, - bottom, - i, - j; - - // If the tree is empty, initialize the root as a leaf. - if (!node) return this; - - // Find the leaf node for the point. - // While descending, also retain the deepest parent with a non-removed sibling. - if (node.length) while (true) { - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - if (!(parent = node, node = node[i = bottom << 1 | right])) return this; - if (!node.length) break; - if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; - } - - // Find the point to remove. - while (node.data !== d) if (!(previous = node, node = node.next)) return this; - if (next = node.next) delete node.next; - - // If there are multiple coincident points, remove just the point. - if (previous) return (next ? previous.next = next : delete previous.next), this; - - // If this is the root point, remove it. - if (!parent) return this._root = next, this; - - // Remove this leaf. - next ? parent[i] = next : delete parent[i]; - - // If the parent now contains exactly one leaf, collapse superfluous parents. - if ((node = parent[0] || parent[1] || parent[2] || parent[3]) - && node === (parent[3] || parent[2] || parent[1] || parent[0]) - && !node.length) { - if (retainer) retainer[j] = node; - else this._root = node; - } - - return this; -} - -function removeAll(data) { - for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); - return this; -} - -function tree_root() { - return this._root; -} - -function tree_size() { - var size = 0; - this.visit(function(node) { - if (!node.length) do ++size; while (node = node.next) - }); - return size; -} - -function tree_visit(callback) { - var quads = [], q, node = this._root, child, x0, y0, x1, y1; - if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); - while (q = quads.pop()) { - if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { - var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); - if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); - if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); - if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); - } - } - return this; -} - -function tree_visitAfter(callback) { - var quads = [], next = [], q; - if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); - while (q = quads.pop()) { - var node = q.node; - if (node.length) { - var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); - if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); - if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); - if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); - } - next.push(q); - } - while (q = next.pop()) { - callback(q.node, q.x0, q.y0, q.x1, q.y1); - } - return this; -} - -function defaultX(d) { - return d[0]; -} - -function tree_x(_) { - return arguments.length ? (this._x = _, this) : this._x; -} - -function defaultY(d) { - return d[1]; -} - -function tree_y(_) { - return arguments.length ? (this._y = _, this) : this._y; -} - -function quadtree(nodes, x, y) { - var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); - return nodes == null ? tree : tree.addAll(nodes); -} - -function Quadtree(x, y, x0, y0, x1, y1) { - this._x = x; - this._y = y; - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - this._root = undefined; -} - -function leaf_copy(leaf) { - var copy = {data: leaf.data}, next = copy; - while (leaf = leaf.next) next = next.next = {data: leaf.data}; - return copy; -} - -var treeProto = quadtree.prototype = Quadtree.prototype; - -treeProto.copy = function() { - var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), - node = this._root, - nodes, - child; - - if (!node) return copy; - - if (!node.length) return copy._root = leaf_copy(node), copy; - - nodes = [{source: node, target: copy._root = new Array(4)}]; - while (node = nodes.pop()) { - for (var i = 0; i < 4; ++i) { - if (child = node.source[i]) { - if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); - else node.target[i] = leaf_copy(child); - } - } - } - - return copy; -}; - -treeProto.add = tree_add; -treeProto.addAll = addAll; -treeProto.cover = tree_cover; -treeProto.data = tree_data; -treeProto.extent = tree_extent; -treeProto.find = tree_find; -treeProto.remove = tree_remove; -treeProto.removeAll = removeAll; -treeProto.root = tree_root; -treeProto.size = tree_size; -treeProto.visit = tree_visit; -treeProto.visitAfter = tree_visitAfter; -treeProto.x = tree_x; -treeProto.y = tree_y; - -function constant$4(x) { - return function() { - return x; - }; -} - -function jiggle(random) { - return (random() - 0.5) * 1e-6; -} - -function x$3(d) { - return d.x + d.vx; -} - -function y$3(d) { - return d.y + d.vy; -} - -function collide(radius) { - var nodes, - radii, - random, - strength = 1, - iterations = 1; - - if (typeof radius !== "function") radius = constant$4(radius == null ? 1 : +radius); - - function force() { - var i, n = nodes.length, - tree, - node, - xi, - yi, - ri, - ri2; - - for (var k = 0; k < iterations; ++k) { - tree = quadtree(nodes, x$3, y$3).visitAfter(prepare); - for (i = 0; i < n; ++i) { - node = nodes[i]; - ri = radii[node.index], ri2 = ri * ri; - xi = node.x + node.vx; - yi = node.y + node.vy; - tree.visit(apply); - } - } - - function apply(quad, x0, y0, x1, y1) { - var data = quad.data, rj = quad.r, r = ri + rj; - if (data) { - if (data.index > node.index) { - var x = xi - data.x - data.vx, - y = yi - data.y - data.vy, - l = x * x + y * y; - if (l < r * r) { - if (x === 0) x = jiggle(random), l += x * x; - if (y === 0) y = jiggle(random), l += y * y; - l = (r - (l = Math.sqrt(l))) / l * strength; - node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); - node.vy += (y *= l) * r; - data.vx -= x * (r = 1 - r); - data.vy -= y * r; - } - } - return; - } - return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; - } - } - - function prepare(quad) { - if (quad.data) return quad.r = radii[quad.data.index]; - for (var i = quad.r = 0; i < 4; ++i) { - if (quad[i] && quad[i].r > quad.r) { - quad.r = quad[i].r; - } - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length, node; - radii = new Array(n); - for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); - } - - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random = _random; - initialize(); - }; - - force.iterations = function(_) { - return arguments.length ? (iterations = +_, force) : iterations; - }; - - force.strength = function(_) { - return arguments.length ? (strength = +_, force) : strength; - }; - - force.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; - }; - - return force; -} - -function index$3(d) { - return d.index; -} - -function find(nodeById, nodeId) { - var node = nodeById.get(nodeId); - if (!node) throw new Error("node not found: " + nodeId); - return node; -} - -function link$2(links) { - var id = index$3, - strength = defaultStrength, - strengths, - distance = constant$4(30), - distances, - nodes, - count, - bias, - random, - iterations = 1; - - if (links == null) links = []; - - function defaultStrength(link) { - return 1 / Math.min(count[link.source.index], count[link.target.index]); - } - - function force(alpha) { - for (var k = 0, n = links.length; k < iterations; ++k) { - for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { - link = links[i], source = link.source, target = link.target; - x = target.x + target.vx - source.x - source.vx || jiggle(random); - y = target.y + target.vy - source.y - source.vy || jiggle(random); - l = Math.sqrt(x * x + y * y); - l = (l - distances[i]) / l * alpha * strengths[i]; - x *= l, y *= l; - target.vx -= x * (b = bias[i]); - target.vy -= y * b; - source.vx += x * (b = 1 - b); - source.vy += y * b; - } - } - } - - function initialize() { - if (!nodes) return; - - var i, - n = nodes.length, - m = links.length, - nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])), - link; - - for (i = 0, count = new Array(n); i < m; ++i) { - link = links[i], link.index = i; - if (typeof link.source !== "object") link.source = find(nodeById, link.source); - if (typeof link.target !== "object") link.target = find(nodeById, link.target); - count[link.source.index] = (count[link.source.index] || 0) + 1; - count[link.target.index] = (count[link.target.index] || 0) + 1; - } - - for (i = 0, bias = new Array(m); i < m; ++i) { - link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); - } - - strengths = new Array(m), initializeStrength(); - distances = new Array(m), initializeDistance(); - } - - function initializeStrength() { - if (!nodes) return; - - for (var i = 0, n = links.length; i < n; ++i) { - strengths[i] = +strength(links[i], i, links); - } - } - - function initializeDistance() { - if (!nodes) return; - - for (var i = 0, n = links.length; i < n; ++i) { - distances[i] = +distance(links[i], i, links); - } - } - - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random = _random; - initialize(); - }; - - force.links = function(_) { - return arguments.length ? (links = _, initialize(), force) : links; - }; - - force.id = function(_) { - return arguments.length ? (id = _, force) : id; - }; - - force.iterations = function(_) { - return arguments.length ? (iterations = +_, force) : iterations; - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initializeStrength(), force) : strength; - }; - - force.distance = function(_) { - return arguments.length ? (distance = typeof _ === "function" ? _ : constant$4(+_), initializeDistance(), force) : distance; - }; - - return force; -} - -// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use -const a$1 = 1664525; -const c$3 = 1013904223; -const m = 4294967296; // 2^32 - -function lcg$1() { - let s = 1; - return () => (s = (a$1 * s + c$3) % m) / m; -} - -function x$2(d) { - return d.x; -} - -function y$2(d) { - return d.y; -} - -var initialRadius = 10, - initialAngle = Math.PI * (3 - Math.sqrt(5)); - -function simulation(nodes) { - var simulation, - alpha = 1, - alphaMin = 0.001, - alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), - alphaTarget = 0, - velocityDecay = 0.6, - forces = new Map(), - stepper = timer(step), - event = dispatch("tick", "end"), - random = lcg$1(); - - if (nodes == null) nodes = []; - - function step() { - tick(); - event.call("tick", simulation); - if (alpha < alphaMin) { - stepper.stop(); - event.call("end", simulation); - } - } - - function tick(iterations) { - var i, n = nodes.length, node; - - if (iterations === undefined) iterations = 1; - - for (var k = 0; k < iterations; ++k) { - alpha += (alphaTarget - alpha) * alphaDecay; - - forces.forEach(function(force) { - force(alpha); - }); - - for (i = 0; i < n; ++i) { - node = nodes[i]; - if (node.fx == null) node.x += node.vx *= velocityDecay; - else node.x = node.fx, node.vx = 0; - if (node.fy == null) node.y += node.vy *= velocityDecay; - else node.y = node.fy, node.vy = 0; - } - } - - return simulation; - } - - function initializeNodes() { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.index = i; - if (node.fx != null) node.x = node.fx; - if (node.fy != null) node.y = node.fy; - if (isNaN(node.x) || isNaN(node.y)) { - var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle; - node.x = radius * Math.cos(angle); - node.y = radius * Math.sin(angle); - } - if (isNaN(node.vx) || isNaN(node.vy)) { - node.vx = node.vy = 0; - } - } - } - - function initializeForce(force) { - if (force.initialize) force.initialize(nodes, random); - return force; - } - - initializeNodes(); - - return simulation = { - tick: tick, - - restart: function() { - return stepper.restart(step), simulation; - }, - - stop: function() { - return stepper.stop(), simulation; - }, - - nodes: function(_) { - return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes; - }, - - alpha: function(_) { - return arguments.length ? (alpha = +_, simulation) : alpha; - }, - - alphaMin: function(_) { - return arguments.length ? (alphaMin = +_, simulation) : alphaMin; - }, - - alphaDecay: function(_) { - return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; - }, - - alphaTarget: function(_) { - return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; - }, - - velocityDecay: function(_) { - return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; - }, - - randomSource: function(_) { - return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random; - }, - - force: function(name, _) { - return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); - }, - - find: function(x, y, radius) { - var i = 0, - n = nodes.length, - dx, - dy, - d2, - node, - closest; - - if (radius == null) radius = Infinity; - else radius *= radius; - - for (i = 0; i < n; ++i) { - node = nodes[i]; - dx = x - node.x; - dy = y - node.y; - d2 = dx * dx + dy * dy; - if (d2 < radius) closest = node, radius = d2; - } - - return closest; - }, - - on: function(name, _) { - return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); - } - }; -} - -function manyBody() { - var nodes, - node, - random, - alpha, - strength = constant$4(-30), - strengths, - distanceMin2 = 1, - distanceMax2 = Infinity, - theta2 = 0.81; - - function force(_) { - var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate); - for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length, node; - strengths = new Array(n); - for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); - } - - function accumulate(quad) { - var strength = 0, q, c, weight = 0, x, y, i; - - // For internal nodes, accumulate forces from child quadrants. - if (quad.length) { - for (x = y = i = 0; i < 4; ++i) { - if ((q = quad[i]) && (c = Math.abs(q.value))) { - strength += q.value, weight += c, x += c * q.x, y += c * q.y; - } - } - quad.x = x / weight; - quad.y = y / weight; - } - - // For leaf nodes, accumulate forces from coincident quadrants. - else { - q = quad; - q.x = q.data.x; - q.y = q.data.y; - do strength += strengths[q.data.index]; - while (q = q.next); - } - - quad.value = strength; - } - - function apply(quad, x1, _, x2) { - if (!quad.value) return true; - - var x = quad.x - node.x, - y = quad.y - node.y, - w = x2 - x1, - l = x * x + y * y; - - // Apply the Barnes-Hut approximation if possible. - // Limit forces for very close nodes; randomize direction if coincident. - if (w * w / theta2 < l) { - if (l < distanceMax2) { - if (x === 0) x = jiggle(random), l += x * x; - if (y === 0) y = jiggle(random), l += y * y; - if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); - node.vx += x * quad.value * alpha / l; - node.vy += y * quad.value * alpha / l; - } - return true; - } - - // Otherwise, process points directly. - else if (quad.length || l >= distanceMax2) return; - - // Limit forces for very close nodes; randomize direction if coincident. - if (quad.data !== node || quad.next) { - if (x === 0) x = jiggle(random), l += x * x; - if (y === 0) y = jiggle(random), l += y * y; - if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); - } - - do if (quad.data !== node) { - w = strengths[quad.data.index] * alpha / l; - node.vx += x * w; - node.vy += y * w; - } while (quad = quad.next); - } - - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random = _random; - initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.distanceMin = function(_) { - return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); - }; - - force.distanceMax = function(_) { - return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); - }; - - force.theta = function(_) { - return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); - }; - - return force; -} - -function radial$1(radius, x, y) { - var nodes, - strength = constant$4(0.1), - strengths, - radiuses; - - if (typeof radius !== "function") radius = constant$4(+radius); - if (x == null) x = 0; - if (y == null) y = 0; - - function force(alpha) { - for (var i = 0, n = nodes.length; i < n; ++i) { - var node = nodes[i], - dx = node.x - x || 1e-6, - dy = node.y - y || 1e-6, - r = Math.sqrt(dx * dx + dy * dy), - k = (radiuses[i] - r) * strengths[i] * alpha / r; - node.vx += dx * k; - node.vy += dy * k; - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - radiuses = new Array(n); - for (i = 0; i < n; ++i) { - radiuses[i] = +radius(nodes[i], i, nodes); - strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); - } - } - - force.initialize = function(_) { - nodes = _, initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; - }; - - force.x = function(_) { - return arguments.length ? (x = +_, force) : x; - }; - - force.y = function(_) { - return arguments.length ? (y = +_, force) : y; - }; - - return force; -} - -function x$1(x) { - var strength = constant$4(0.1), - nodes, - strengths, - xz; - - if (typeof x !== "function") x = constant$4(x == null ? 0 : +x); - - function force(alpha) { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - xz = new Array(n); - for (i = 0; i < n; ++i) { - strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); - } - } - - force.initialize = function(_) { - nodes = _; - initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.x = function(_) { - return arguments.length ? (x = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : x; - }; - - return force; -} - -function y$1(y) { - var strength = constant$4(0.1), - nodes, - strengths, - yz; - - if (typeof y !== "function") y = constant$4(y == null ? 0 : +y); - - function force(alpha) { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - yz = new Array(n); - for (i = 0; i < n; ++i) { - strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); - } - } - - force.initialize = function(_) { - nodes = _; - initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.y = function(_) { - return arguments.length ? (y = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : y; - }; - - return force; -} - -function formatDecimal(x) { - return Math.abs(x = Math.round(x)) >= 1e21 - ? x.toLocaleString("en").replace(/,/g, "") - : x.toString(10); -} - -// Computes the decimal coefficient and exponent of the specified number x with -// significant digits p, where x is positive and p is in [1, 21] or undefined. -// For example, formatDecimalParts(1.23) returns ["123", 0]. -function formatDecimalParts(x, p) { - if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity - var i, coefficient = x.slice(0, i); - - // The string returned by toExponential either has the form \d\.\d+e[-+]\d+ - // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). - return [ - coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, - +x.slice(i + 1) - ]; -} - -function exponent(x) { - return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; -} - -function formatGroup(grouping, thousands) { - return function(value, width) { - var i = value.length, - t = [], - j = 0, - g = grouping[0], - length = 0; - - while (i > 0 && g > 0) { - if (length + g + 1 > width) g = Math.max(1, width - length); - t.push(value.substring(i -= g, i + g)); - if ((length += g + 1) > width) break; - g = grouping[j = (j + 1) % grouping.length]; - } - - return t.reverse().join(thousands); - }; -} - -function formatNumerals(numerals) { - return function(value) { - return value.replace(/[0-9]/g, function(i) { - return numerals[+i]; - }); - }; -} - -// [[fill]align][sign][symbol][0][width][,][.precision][~][type] -var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; - -function formatSpecifier(specifier) { - if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier); - var match; - return new FormatSpecifier({ - fill: match[1], - align: match[2], - sign: match[3], - symbol: match[4], - zero: match[5], - width: match[6], - comma: match[7], - precision: match[8] && match[8].slice(1), - trim: match[9], - type: match[10] - }); -} - -formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof - -function FormatSpecifier(specifier) { - this.fill = specifier.fill === undefined ? " " : specifier.fill + ""; - this.align = specifier.align === undefined ? ">" : specifier.align + ""; - this.sign = specifier.sign === undefined ? "-" : specifier.sign + ""; - this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + ""; - this.zero = !!specifier.zero; - this.width = specifier.width === undefined ? undefined : +specifier.width; - this.comma = !!specifier.comma; - this.precision = specifier.precision === undefined ? undefined : +specifier.precision; - this.trim = !!specifier.trim; - this.type = specifier.type === undefined ? "" : specifier.type + ""; -} - -FormatSpecifier.prototype.toString = function() { - return this.fill - + this.align - + this.sign - + this.symbol - + (this.zero ? "0" : "") - + (this.width === undefined ? "" : Math.max(1, this.width | 0)) - + (this.comma ? "," : "") - + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) - + (this.trim ? "~" : "") - + this.type; -}; - -// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k. -function formatTrim(s) { - out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { - switch (s[i]) { - case ".": i0 = i1 = i; break; - case "0": if (i0 === 0) i0 = i; i1 = i; break; - default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break; - } - } - return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; -} - -var prefixExponent; - -function formatPrefixAuto(x, p) { - var d = formatDecimalParts(x, p); - if (!d) return x + ""; - var coefficient = d[0], - exponent = d[1], - i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, - n = coefficient.length; - return i === n ? coefficient - : i > n ? coefficient + new Array(i - n + 1).join("0") - : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) - : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y! -} - -function formatRounded(x, p) { - var d = formatDecimalParts(x, p); - if (!d) return x + ""; - var coefficient = d[0], - exponent = d[1]; - return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient - : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) - : coefficient + new Array(exponent - coefficient.length + 2).join("0"); -} - -var formatTypes = { - "%": (x, p) => (x * 100).toFixed(p), - "b": (x) => Math.round(x).toString(2), - "c": (x) => x + "", - "d": formatDecimal, - "e": (x, p) => x.toExponential(p), - "f": (x, p) => x.toFixed(p), - "g": (x, p) => x.toPrecision(p), - "o": (x) => Math.round(x).toString(8), - "p": (x, p) => formatRounded(x * 100, p), - "r": formatRounded, - "s": formatPrefixAuto, - "X": (x) => Math.round(x).toString(16).toUpperCase(), - "x": (x) => Math.round(x).toString(16) -}; - -function identity$6(x) { - return x; -} - -var map = Array.prototype.map, - prefixes = ["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"]; - -function formatLocale$1(locale) { - var group = locale.grouping === undefined || locale.thousands === undefined ? identity$6 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), - currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "", - currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "", - decimal = locale.decimal === undefined ? "." : locale.decimal + "", - numerals = locale.numerals === undefined ? identity$6 : formatNumerals(map.call(locale.numerals, String)), - percent = locale.percent === undefined ? "%" : locale.percent + "", - minus = locale.minus === undefined ? "\u2212" : locale.minus + "", - nan = locale.nan === undefined ? "NaN" : locale.nan + ""; - - function newFormat(specifier) { - specifier = formatSpecifier(specifier); - - var fill = specifier.fill, - align = specifier.align, - sign = specifier.sign, - symbol = specifier.symbol, - zero = specifier.zero, - width = specifier.width, - comma = specifier.comma, - precision = specifier.precision, - trim = specifier.trim, - type = specifier.type; - - // The "n" type is an alias for ",g". - if (type === "n") comma = true, type = "g"; - - // The "" type, and any invalid type, is an alias for ".12~g". - else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; - - // If zero fill is specified, padding goes after sign and before digits. - if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "="; - - // Compute the prefix and suffix. - // For SI-prefix, the suffix is lazily computed. - var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", - suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; - - // What format function should we use? - // Is this an integer type? - // Can this type generate exponential notation? - var formatType = formatTypes[type], - maybeSuffix = /[defgprs%]/.test(type); - - // Set the default precision if not specified, - // or clamp the specified precision to the supported range. - // For significant precision, it must be in [1, 21]. - // For fixed precision, it must be in [0, 20]. - precision = precision === undefined ? 6 - : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) - : Math.max(0, Math.min(20, precision)); - - function format(value) { - var valuePrefix = prefix, - valueSuffix = suffix, - i, n, c; - - if (type === "c") { - valueSuffix = formatType(value) + valueSuffix; - value = ""; - } else { - value = +value; - - // Determine the sign. -0 is not less than 0, but 1 / -0 is! - var valueNegative = value < 0 || 1 / value < 0; - - // Perform the initial formatting. - value = isNaN(value) ? nan : formatType(Math.abs(value), precision); - - // Trim insignificant zeros. - if (trim) value = formatTrim(value); - - // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign. - if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; - - // Compute the prefix and suffix. - valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; - valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); - - // Break the formatted value into the integer “value” part that can be - // grouped, and fractional or exponential “suffix” part that is not. - if (maybeSuffix) { - i = -1, n = value.length; - while (++i < n) { - if (c = value.charCodeAt(i), 48 > c || c > 57) { - valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; - value = value.slice(0, i); - break; - } - } - } - } - - // If the fill character is not "0", grouping is applied before padding. - if (comma && !zero) value = group(value, Infinity); - - // Compute the padding. - var length = valuePrefix.length + value.length + valueSuffix.length, - padding = length < width ? new Array(width - length + 1).join(fill) : ""; - - // If the fill character is "0", grouping is applied after padding. - if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; - - // Reconstruct the final output based on the desired alignment. - switch (align) { - case "<": value = valuePrefix + value + valueSuffix + padding; break; - case "=": value = valuePrefix + padding + value + valueSuffix; break; - case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break; - default: value = padding + valuePrefix + value + valueSuffix; break; - } - - return numerals(value); - } - - format.toString = function() { - return specifier + ""; - }; - - return format; - } - - function formatPrefix(specifier, value) { - var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), - e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, - k = Math.pow(10, -e), - prefix = prefixes[8 + e / 3]; - return function(value) { - return f(k * value) + prefix; - }; - } - - return { - format: newFormat, - formatPrefix: formatPrefix - }; -} - -var locale$1; -exports.format = void 0; -exports.formatPrefix = void 0; - -defaultLocale$1({ - thousands: ",", - grouping: [3], - currency: ["$", ""] -}); - -function defaultLocale$1(definition) { - locale$1 = formatLocale$1(definition); - exports.format = locale$1.format; - exports.formatPrefix = locale$1.formatPrefix; - return locale$1; -} - -function precisionFixed(step) { - return Math.max(0, -exponent(Math.abs(step))); -} - -function precisionPrefix(step, value) { - return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); -} - -function precisionRound(step, max) { - step = Math.abs(step), max = Math.abs(max) - step; - return Math.max(0, exponent(max) - exponent(step)) + 1; -} - -var epsilon$1 = 1e-6; -var epsilon2 = 1e-12; -var pi$1 = Math.PI; -var halfPi$1 = pi$1 / 2; -var quarterPi = pi$1 / 4; -var tau$1 = pi$1 * 2; - -var degrees = 180 / pi$1; -var radians = pi$1 / 180; - -var abs$1 = Math.abs; -var atan = Math.atan; -var atan2$1 = Math.atan2; -var cos$1 = Math.cos; -var ceil = Math.ceil; -var exp = Math.exp; -var hypot = Math.hypot; -var log$1 = Math.log; -var pow$1 = Math.pow; -var sin$1 = Math.sin; -var sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; }; -var sqrt$2 = Math.sqrt; -var tan = Math.tan; - -function acos$1(x) { - return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x); -} - -function asin$1(x) { - return x > 1 ? halfPi$1 : x < -1 ? -halfPi$1 : Math.asin(x); -} - -function haversin(x) { - return (x = sin$1(x / 2)) * x; -} - -function noop$1() {} - -function streamGeometry(geometry, stream) { - if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) { - streamGeometryType[geometry.type](geometry, stream); - } -} - -var streamObjectType = { - Feature: function(object, stream) { - streamGeometry(object.geometry, stream); - }, - FeatureCollection: function(object, stream) { - var features = object.features, i = -1, n = features.length; - while (++i < n) streamGeometry(features[i].geometry, stream); - } -}; - -var streamGeometryType = { - Sphere: function(object, stream) { - stream.sphere(); - }, - Point: function(object, stream) { - object = object.coordinates; - stream.point(object[0], object[1], object[2]); - }, - MultiPoint: function(object, stream) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]); - }, - LineString: function(object, stream) { - streamLine(object.coordinates, stream, 0); - }, - MultiLineString: function(object, stream) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) streamLine(coordinates[i], stream, 0); - }, - Polygon: function(object, stream) { - streamPolygon(object.coordinates, stream); - }, - MultiPolygon: function(object, stream) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) streamPolygon(coordinates[i], stream); - }, - GeometryCollection: function(object, stream) { - var geometries = object.geometries, i = -1, n = geometries.length; - while (++i < n) streamGeometry(geometries[i], stream); - } -}; - -function streamLine(coordinates, stream, closed) { - var i = -1, n = coordinates.length - closed, coordinate; - stream.lineStart(); - while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]); - stream.lineEnd(); -} - -function streamPolygon(coordinates, stream) { - var i = -1, n = coordinates.length; - stream.polygonStart(); - while (++i < n) streamLine(coordinates[i], stream, 1); - stream.polygonEnd(); -} - -function geoStream(object, stream) { - if (object && streamObjectType.hasOwnProperty(object.type)) { - streamObjectType[object.type](object, stream); - } else { - streamGeometry(object, stream); - } -} - -var areaRingSum$1 = new Adder(); - -// hello? - -var areaSum$1 = new Adder(), - lambda00$2, - phi00$2, - lambda0$2, - cosPhi0$1, - sinPhi0$1; - -var areaStream$1 = { - point: noop$1, - lineStart: noop$1, - lineEnd: noop$1, - polygonStart: function() { - areaRingSum$1 = new Adder(); - areaStream$1.lineStart = areaRingStart$1; - areaStream$1.lineEnd = areaRingEnd$1; - }, - polygonEnd: function() { - var areaRing = +areaRingSum$1; - areaSum$1.add(areaRing < 0 ? tau$1 + areaRing : areaRing); - this.lineStart = this.lineEnd = this.point = noop$1; - }, - sphere: function() { - areaSum$1.add(tau$1); - } -}; - -function areaRingStart$1() { - areaStream$1.point = areaPointFirst$1; -} - -function areaRingEnd$1() { - areaPoint$1(lambda00$2, phi00$2); -} - -function areaPointFirst$1(lambda, phi) { - areaStream$1.point = areaPoint$1; - lambda00$2 = lambda, phi00$2 = phi; - lambda *= radians, phi *= radians; - lambda0$2 = lambda, cosPhi0$1 = cos$1(phi = phi / 2 + quarterPi), sinPhi0$1 = sin$1(phi); -} - -function areaPoint$1(lambda, phi) { - lambda *= radians, phi *= radians; - phi = phi / 2 + quarterPi; // half the angular distance from south pole - - // Spherical excess E for a spherical triangle with vertices: south pole, - // previous point, current point. Uses a formula derived from Cagnoli’s - // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). - var dLambda = lambda - lambda0$2, - sdLambda = dLambda >= 0 ? 1 : -1, - adLambda = sdLambda * dLambda, - cosPhi = cos$1(phi), - sinPhi = sin$1(phi), - k = sinPhi0$1 * sinPhi, - u = cosPhi0$1 * cosPhi + k * cos$1(adLambda), - v = k * sdLambda * sin$1(adLambda); - areaRingSum$1.add(atan2$1(v, u)); - - // Advance the previous points. - lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi; -} - -function area$2(object) { - areaSum$1 = new Adder(); - geoStream(object, areaStream$1); - return areaSum$1 * 2; -} - -function spherical(cartesian) { - return [atan2$1(cartesian[1], cartesian[0]), asin$1(cartesian[2])]; -} - -function cartesian(spherical) { - var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi); - return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)]; -} - -function cartesianDot(a, b) { - return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; -} - -function cartesianCross(a, b) { - return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]]; -} - -// TODO return a -function cartesianAddInPlace(a, b) { - a[0] += b[0], a[1] += b[1], a[2] += b[2]; -} - -function cartesianScale(vector, k) { - return [vector[0] * k, vector[1] * k, vector[2] * k]; -} - -// TODO return d -function cartesianNormalizeInPlace(d) { - var l = sqrt$2(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); - d[0] /= l, d[1] /= l, d[2] /= l; -} - -var lambda0$1, phi0, lambda1, phi1, // bounds - lambda2, // previous lambda-coordinate - lambda00$1, phi00$1, // first point - p0, // previous 3D point - deltaSum, - ranges, - range; - -var boundsStream$1 = { - point: boundsPoint$1, - lineStart: boundsLineStart, - lineEnd: boundsLineEnd, - polygonStart: function() { - boundsStream$1.point = boundsRingPoint; - boundsStream$1.lineStart = boundsRingStart; - boundsStream$1.lineEnd = boundsRingEnd; - deltaSum = new Adder(); - areaStream$1.polygonStart(); - }, - polygonEnd: function() { - areaStream$1.polygonEnd(); - boundsStream$1.point = boundsPoint$1; - boundsStream$1.lineStart = boundsLineStart; - boundsStream$1.lineEnd = boundsLineEnd; - if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); - else if (deltaSum > epsilon$1) phi1 = 90; - else if (deltaSum < -epsilon$1) phi0 = -90; - range[0] = lambda0$1, range[1] = lambda1; - }, - sphere: function() { - lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); - } -}; - -function boundsPoint$1(lambda, phi) { - ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); - if (phi < phi0) phi0 = phi; - if (phi > phi1) phi1 = phi; -} - -function linePoint(lambda, phi) { - var p = cartesian([lambda * radians, phi * radians]); - if (p0) { - var normal = cartesianCross(p0, p), - equatorial = [normal[1], -normal[0], 0], - inflection = cartesianCross(equatorial, normal); - cartesianNormalizeInPlace(inflection); - inflection = spherical(inflection); - var delta = lambda - lambda2, - sign = delta > 0 ? 1 : -1, - lambdai = inflection[0] * degrees * sign, - phii, - antimeridian = abs$1(delta) > 180; - if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { - phii = inflection[1] * degrees; - if (phii > phi1) phi1 = phii; - } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { - phii = -inflection[1] * degrees; - if (phii < phi0) phi0 = phii; - } else { - if (phi < phi0) phi0 = phi; - if (phi > phi1) phi1 = phi; - } - if (antimeridian) { - if (lambda < lambda2) { - if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; - } else { - if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; - } - } else { - if (lambda1 >= lambda0$1) { - if (lambda < lambda0$1) lambda0$1 = lambda; - if (lambda > lambda1) lambda1 = lambda; - } else { - if (lambda > lambda2) { - if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; - } else { - if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; - } - } - } - } else { - ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); - } - if (phi < phi0) phi0 = phi; - if (phi > phi1) phi1 = phi; - p0 = p, lambda2 = lambda; -} - -function boundsLineStart() { - boundsStream$1.point = linePoint; -} - -function boundsLineEnd() { - range[0] = lambda0$1, range[1] = lambda1; - boundsStream$1.point = boundsPoint$1; - p0 = null; -} - -function boundsRingPoint(lambda, phi) { - if (p0) { - var delta = lambda - lambda2; - deltaSum.add(abs$1(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta); - } else { - lambda00$1 = lambda, phi00$1 = phi; - } - areaStream$1.point(lambda, phi); - linePoint(lambda, phi); -} - -function boundsRingStart() { - areaStream$1.lineStart(); -} - -function boundsRingEnd() { - boundsRingPoint(lambda00$1, phi00$1); - areaStream$1.lineEnd(); - if (abs$1(deltaSum) > epsilon$1) lambda0$1 = -(lambda1 = 180); - range[0] = lambda0$1, range[1] = lambda1; - p0 = null; -} - -// Finds the left-right distance between two longitudes. -// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want -// the distance between ±180° to be 360°. -function angle(lambda0, lambda1) { - return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1; -} - -function rangeCompare(a, b) { - return a[0] - b[0]; -} - -function rangeContains(range, x) { - return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; -} - -function bounds(feature) { - var i, n, a, b, merged, deltaMax, delta; - - phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity); - ranges = []; - geoStream(feature, boundsStream$1); - - // First, sort ranges by their minimum longitudes. - if (n = ranges.length) { - ranges.sort(rangeCompare); - - // Then, merge any ranges that overlap. - for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) { - b = ranges[i]; - if (rangeContains(a, b[0]) || rangeContains(a, b[1])) { - if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; - if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; - } else { - merged.push(a = b); - } - } - - // Finally, find the largest gap between the merged ranges. - // The final bounding box will be the inverse of this gap. - for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) { - b = merged[i]; - if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1]; - } - } - - ranges = range = null; - - return lambda0$1 === Infinity || phi0 === Infinity - ? [[NaN, NaN], [NaN, NaN]] - : [[lambda0$1, phi0], [lambda1, phi1]]; -} - -var W0, W1, - X0$1, Y0$1, Z0$1, - X1$1, Y1$1, Z1$1, - X2$1, Y2$1, Z2$1, - lambda00, phi00, // first point - x0$4, y0$4, z0; // previous point - -var centroidStream$1 = { - sphere: noop$1, - point: centroidPoint$1, - lineStart: centroidLineStart$1, - lineEnd: centroidLineEnd$1, - polygonStart: function() { - centroidStream$1.lineStart = centroidRingStart$1; - centroidStream$1.lineEnd = centroidRingEnd$1; - }, - polygonEnd: function() { - centroidStream$1.lineStart = centroidLineStart$1; - centroidStream$1.lineEnd = centroidLineEnd$1; - } -}; - -// Arithmetic mean of Cartesian vectors. -function centroidPoint$1(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi); - centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)); -} - -function centroidPointCartesian(x, y, z) { - ++W0; - X0$1 += (x - X0$1) / W0; - Y0$1 += (y - Y0$1) / W0; - Z0$1 += (z - Z0$1) / W0; -} - -function centroidLineStart$1() { - centroidStream$1.point = centroidLinePointFirst; -} - -function centroidLinePointFirst(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi); - x0$4 = cosPhi * cos$1(lambda); - y0$4 = cosPhi * sin$1(lambda); - z0 = sin$1(phi); - centroidStream$1.point = centroidLinePoint; - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroidLinePoint(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi), - x = cosPhi * cos$1(lambda), - y = cosPhi * sin$1(lambda), - z = sin$1(phi), - w = atan2$1(sqrt$2((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z); - W1 += w; - X1$1 += w * (x0$4 + (x0$4 = x)); - Y1$1 += w * (y0$4 + (y0$4 = y)); - Z1$1 += w * (z0 + (z0 = z)); - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroidLineEnd$1() { - centroidStream$1.point = centroidPoint$1; -} - -// See J. E. Brock, The Inertia Tensor for a Spherical Triangle, -// J. Applied Mechanics 42, 239 (1975). -function centroidRingStart$1() { - centroidStream$1.point = centroidRingPointFirst; -} - -function centroidRingEnd$1() { - centroidRingPoint(lambda00, phi00); - centroidStream$1.point = centroidPoint$1; -} - -function centroidRingPointFirst(lambda, phi) { - lambda00 = lambda, phi00 = phi; - lambda *= radians, phi *= radians; - centroidStream$1.point = centroidRingPoint; - var cosPhi = cos$1(phi); - x0$4 = cosPhi * cos$1(lambda); - y0$4 = cosPhi * sin$1(lambda); - z0 = sin$1(phi); - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroidRingPoint(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi), - x = cosPhi * cos$1(lambda), - y = cosPhi * sin$1(lambda), - z = sin$1(phi), - cx = y0$4 * z - z0 * y, - cy = z0 * x - x0$4 * z, - cz = x0$4 * y - y0$4 * x, - m = hypot(cx, cy, cz), - w = asin$1(m), // line weight = angle - v = m && -w / m; // area weight multiplier - X2$1.add(v * cx); - Y2$1.add(v * cy); - Z2$1.add(v * cz); - W1 += w; - X1$1 += w * (x0$4 + (x0$4 = x)); - Y1$1 += w * (y0$4 + (y0$4 = y)); - Z1$1 += w * (z0 + (z0 = z)); - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroid$1(object) { - W0 = W1 = - X0$1 = Y0$1 = Z0$1 = - X1$1 = Y1$1 = Z1$1 = 0; - X2$1 = new Adder(); - Y2$1 = new Adder(); - Z2$1 = new Adder(); - geoStream(object, centroidStream$1); - - var x = +X2$1, - y = +Y2$1, - z = +Z2$1, - m = hypot(x, y, z); - - // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid. - if (m < epsilon2) { - x = X1$1, y = Y1$1, z = Z1$1; - // If the feature has zero length, fall back to arithmetic mean of point vectors. - if (W1 < epsilon$1) x = X0$1, y = Y0$1, z = Z0$1; - m = hypot(x, y, z); - // If the feature still has an undefined ccentroid, then return. - if (m < epsilon2) return [NaN, NaN]; - } - - return [atan2$1(y, x) * degrees, asin$1(z / m) * degrees]; -} - -function constant$3(x) { - return function() { - return x; - }; -} - -function compose(a, b) { - - function compose(x, y) { - return x = a(x, y), b(x[0], x[1]); - } - - if (a.invert && b.invert) compose.invert = function(x, y) { - return x = b.invert(x, y), x && a.invert(x[0], x[1]); - }; - - return compose; -} - -function rotationIdentity(lambda, phi) { - return [abs$1(lambda) > pi$1 ? lambda + Math.round(-lambda / tau$1) * tau$1 : lambda, phi]; -} - -rotationIdentity.invert = rotationIdentity; - -function rotateRadians(deltaLambda, deltaPhi, deltaGamma) { - return (deltaLambda %= tau$1) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) - : rotationLambda(deltaLambda)) - : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) - : rotationIdentity); -} - -function forwardRotationLambda(deltaLambda) { - return function(lambda, phi) { - return lambda += deltaLambda, [lambda > pi$1 ? lambda - tau$1 : lambda < -pi$1 ? lambda + tau$1 : lambda, phi]; - }; -} - -function rotationLambda(deltaLambda) { - var rotation = forwardRotationLambda(deltaLambda); - rotation.invert = forwardRotationLambda(-deltaLambda); - return rotation; -} - -function rotationPhiGamma(deltaPhi, deltaGamma) { - var cosDeltaPhi = cos$1(deltaPhi), - sinDeltaPhi = sin$1(deltaPhi), - cosDeltaGamma = cos$1(deltaGamma), - sinDeltaGamma = sin$1(deltaGamma); - - function rotation(lambda, phi) { - var cosPhi = cos$1(phi), - x = cos$1(lambda) * cosPhi, - y = sin$1(lambda) * cosPhi, - z = sin$1(phi), - k = z * cosDeltaPhi + x * sinDeltaPhi; - return [ - atan2$1(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), - asin$1(k * cosDeltaGamma + y * sinDeltaGamma) - ]; - } - - rotation.invert = function(lambda, phi) { - var cosPhi = cos$1(phi), - x = cos$1(lambda) * cosPhi, - y = sin$1(lambda) * cosPhi, - z = sin$1(phi), - k = z * cosDeltaGamma - y * sinDeltaGamma; - return [ - atan2$1(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), - asin$1(k * cosDeltaPhi - x * sinDeltaPhi) - ]; - }; - - return rotation; -} - -function rotation(rotate) { - rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0); - - function forward(coordinates) { - coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians); - return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; - } - - forward.invert = function(coordinates) { - coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians); - return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; - }; - - return forward; -} - -// Generates a circle centered at [0°, 0°], with a given radius and precision. -function circleStream(stream, radius, delta, direction, t0, t1) { - if (!delta) return; - var cosRadius = cos$1(radius), - sinRadius = sin$1(radius), - step = direction * delta; - if (t0 == null) { - t0 = radius + direction * tau$1; - t1 = radius - step / 2; - } else { - t0 = circleRadius(cosRadius, t0); - t1 = circleRadius(cosRadius, t1); - if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1; - } - for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) { - point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]); - stream.point(point[0], point[1]); - } -} - -// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. -function circleRadius(cosRadius, point) { - point = cartesian(point), point[0] -= cosRadius; - cartesianNormalizeInPlace(point); - var radius = acos$1(-point[1]); - return ((-point[2] < 0 ? -radius : radius) + tau$1 - epsilon$1) % tau$1; -} - -function circle$2() { - var center = constant$3([0, 0]), - radius = constant$3(90), - precision = constant$3(6), - ring, - rotate, - stream = {point: point}; - - function point(x, y) { - ring.push(x = rotate(x, y)); - x[0] *= degrees, x[1] *= degrees; - } - - function circle() { - var c = center.apply(this, arguments), - r = radius.apply(this, arguments) * radians, - p = precision.apply(this, arguments) * radians; - ring = []; - rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert; - circleStream(stream, r, p, 1); - c = {type: "Polygon", coordinates: [ring]}; - ring = rotate = null; - return c; - } - - circle.center = function(_) { - return arguments.length ? (center = typeof _ === "function" ? _ : constant$3([+_[0], +_[1]]), circle) : center; - }; - - circle.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant$3(+_), circle) : radius; - }; - - circle.precision = function(_) { - return arguments.length ? (precision = typeof _ === "function" ? _ : constant$3(+_), circle) : precision; - }; - - return circle; -} - -function clipBuffer() { - var lines = [], - line; - return { - point: function(x, y, m) { - line.push([x, y, m]); - }, - lineStart: function() { - lines.push(line = []); - }, - lineEnd: noop$1, - rejoin: function() { - if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); - }, - result: function() { - var result = lines; - lines = []; - line = null; - return result; - } - }; -} - -function pointEqual(a, b) { - return abs$1(a[0] - b[0]) < epsilon$1 && abs$1(a[1] - b[1]) < epsilon$1; -} - -function Intersection(point, points, other, entry) { - this.x = point; - this.z = points; - this.o = other; // another intersection - this.e = entry; // is an entry? - this.v = false; // visited - this.n = this.p = null; // next & previous -} - -// A generalized polygon clipping algorithm: given a polygon that has been cut -// into its visible line segments, and rejoins the segments by interpolating -// along the clip edge. -function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) { - var subject = [], - clip = [], - i, - n; - - segments.forEach(function(segment) { - if ((n = segment.length - 1) <= 0) return; - var n, p0 = segment[0], p1 = segment[n], x; - - if (pointEqual(p0, p1)) { - if (!p0[2] && !p1[2]) { - stream.lineStart(); - for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]); - stream.lineEnd(); - return; - } - // handle degenerate cases by moving the point - p1[0] += 2 * epsilon$1; - } - - subject.push(x = new Intersection(p0, segment, null, true)); - clip.push(x.o = new Intersection(p0, null, x, false)); - subject.push(x = new Intersection(p1, segment, null, false)); - clip.push(x.o = new Intersection(p1, null, x, true)); - }); - - if (!subject.length) return; - - clip.sort(compareIntersection); - link$1(subject); - link$1(clip); - - for (i = 0, n = clip.length; i < n; ++i) { - clip[i].e = startInside = !startInside; - } - - var start = subject[0], - points, - point; - - while (1) { - // Find first unvisited intersection. - var current = start, - isSubject = true; - while (current.v) if ((current = current.n) === start) return; - points = current.z; - stream.lineStart(); - do { - current.v = current.o.v = true; - if (current.e) { - if (isSubject) { - for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]); - } else { - interpolate(current.x, current.n.x, 1, stream); - } - current = current.n; - } else { - if (isSubject) { - points = current.p.z; - for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]); - } else { - interpolate(current.x, current.p.x, -1, stream); - } - current = current.p; - } - current = current.o; - points = current.z; - isSubject = !isSubject; - } while (!current.v); - stream.lineEnd(); - } -} - -function link$1(array) { - if (!(n = array.length)) return; - var n, - i = 0, - a = array[0], - b; - while (++i < n) { - a.n = b = array[i]; - b.p = a; - a = b; - } - a.n = b = array[0]; - b.p = a; -} - -function longitude(point) { - if (abs$1(point[0]) <= pi$1) - return point[0]; - else - return sign$1(point[0]) * ((abs$1(point[0]) + pi$1) % tau$1 - pi$1); -} - -function polygonContains(polygon, point) { - var lambda = longitude(point), - phi = point[1], - sinPhi = sin$1(phi), - normal = [sin$1(lambda), -cos$1(lambda), 0], - angle = 0, - winding = 0; - - var sum = new Adder(); - - if (sinPhi === 1) phi = halfPi$1 + epsilon$1; - else if (sinPhi === -1) phi = -halfPi$1 - epsilon$1; - - for (var i = 0, n = polygon.length; i < n; ++i) { - if (!(m = (ring = polygon[i]).length)) continue; - var ring, - m, - point0 = ring[m - 1], - lambda0 = longitude(point0), - phi0 = point0[1] / 2 + quarterPi, - sinPhi0 = sin$1(phi0), - cosPhi0 = cos$1(phi0); - - for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) { - var point1 = ring[j], - lambda1 = longitude(point1), - phi1 = point1[1] / 2 + quarterPi, - sinPhi1 = sin$1(phi1), - cosPhi1 = cos$1(phi1), - delta = lambda1 - lambda0, - sign = delta >= 0 ? 1 : -1, - absDelta = sign * delta, - antimeridian = absDelta > pi$1, - k = sinPhi0 * sinPhi1; - - sum.add(atan2$1(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta))); - angle += antimeridian ? delta + sign * tau$1 : delta; - - // Are the longitudes either side of the point’s meridian (lambda), - // and are the latitudes smaller than the parallel (phi)? - if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) { - var arc = cartesianCross(cartesian(point0), cartesian(point1)); - cartesianNormalizeInPlace(arc); - var intersection = cartesianCross(normal, arc); - cartesianNormalizeInPlace(intersection); - var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]); - if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) { - winding += antimeridian ^ delta >= 0 ? 1 : -1; - } - } - } - } - - // First, determine whether the South pole is inside or outside: - // - // It is inside if: - // * the polygon winds around it in a clockwise direction. - // * the polygon does not (cumulatively) wind around it, but has a negative - // (counter-clockwise) area. - // - // Second, count the (signed) number of times a segment crosses a lambda - // from the point to the South pole. If it is zero, then the point is the - // same side as the South pole. - - return (angle < -epsilon$1 || angle < epsilon$1 && sum < -epsilon2) ^ (winding & 1); -} - -function clip(pointVisible, clipLine, interpolate, start) { - return function(sink) { - var line = clipLine(sink), - ringBuffer = clipBuffer(), - ringSink = clipLine(ringBuffer), - polygonStarted = false, - polygon, - segments, - ring; - - var clip = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { - clip.point = pointRing; - clip.lineStart = ringStart; - clip.lineEnd = ringEnd; - segments = []; - polygon = []; - }, - polygonEnd: function() { - clip.point = point; - clip.lineStart = lineStart; - clip.lineEnd = lineEnd; - segments = merge(segments); - var startInside = polygonContains(polygon, start); - if (segments.length) { - if (!polygonStarted) sink.polygonStart(), polygonStarted = true; - clipRejoin(segments, compareIntersection, startInside, interpolate, sink); - } else if (startInside) { - if (!polygonStarted) sink.polygonStart(), polygonStarted = true; - sink.lineStart(); - interpolate(null, null, 1, sink); - sink.lineEnd(); - } - if (polygonStarted) sink.polygonEnd(), polygonStarted = false; - segments = polygon = null; - }, - sphere: function() { - sink.polygonStart(); - sink.lineStart(); - interpolate(null, null, 1, sink); - sink.lineEnd(); - sink.polygonEnd(); - } - }; - - function point(lambda, phi) { - if (pointVisible(lambda, phi)) sink.point(lambda, phi); - } - - function pointLine(lambda, phi) { - line.point(lambda, phi); - } - - function lineStart() { - clip.point = pointLine; - line.lineStart(); - } - - function lineEnd() { - clip.point = point; - line.lineEnd(); - } - - function pointRing(lambda, phi) { - ring.push([lambda, phi]); - ringSink.point(lambda, phi); - } - - function ringStart() { - ringSink.lineStart(); - ring = []; - } - - function ringEnd() { - pointRing(ring[0][0], ring[0][1]); - ringSink.lineEnd(); - - var clean = ringSink.clean(), - ringSegments = ringBuffer.result(), - i, n = ringSegments.length, m, - segment, - point; - - ring.pop(); - polygon.push(ring); - ring = null; - - if (!n) return; - - // No intersections. - if (clean & 1) { - segment = ringSegments[0]; - if ((m = segment.length - 1) > 0) { - if (!polygonStarted) sink.polygonStart(), polygonStarted = true; - sink.lineStart(); - for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]); - sink.lineEnd(); - } - return; - } - - // Rejoin connected segments. - // TODO reuse ringBuffer.rejoin()? - if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); - - segments.push(ringSegments.filter(validSegment)); - } - - return clip; - }; -} - -function validSegment(segment) { - return segment.length > 1; -} - -// Intersections are sorted along the clip edge. For both antimeridian cutting -// and circle clipping, the same comparison is used. -function compareIntersection(a, b) { - return ((a = a.x)[0] < 0 ? a[1] - halfPi$1 - epsilon$1 : halfPi$1 - a[1]) - - ((b = b.x)[0] < 0 ? b[1] - halfPi$1 - epsilon$1 : halfPi$1 - b[1]); -} - -var clipAntimeridian = clip( - function() { return true; }, - clipAntimeridianLine, - clipAntimeridianInterpolate, - [-pi$1, -halfPi$1] -); - -// Takes a line and cuts into visible segments. Return values: 0 - there were -// intersections or the line was empty; 1 - no intersections; 2 - there were -// intersections, and the first and last segments should be rejoined. -function clipAntimeridianLine(stream) { - var lambda0 = NaN, - phi0 = NaN, - sign0 = NaN, - clean; // no intersections - - return { - lineStart: function() { - stream.lineStart(); - clean = 1; - }, - point: function(lambda1, phi1) { - var sign1 = lambda1 > 0 ? pi$1 : -pi$1, - delta = abs$1(lambda1 - lambda0); - if (abs$1(delta - pi$1) < epsilon$1) { // line crosses a pole - stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$1 : -halfPi$1); - stream.point(sign0, phi0); - stream.lineEnd(); - stream.lineStart(); - stream.point(sign1, phi0); - stream.point(lambda1, phi0); - clean = 0; - } else if (sign0 !== sign1 && delta >= pi$1) { // line crosses antimeridian - if (abs$1(lambda0 - sign0) < epsilon$1) lambda0 -= sign0 * epsilon$1; // handle degeneracies - if (abs$1(lambda1 - sign1) < epsilon$1) lambda1 -= sign1 * epsilon$1; - phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1); - stream.point(sign0, phi0); - stream.lineEnd(); - stream.lineStart(); - stream.point(sign1, phi0); - clean = 0; - } - stream.point(lambda0 = lambda1, phi0 = phi1); - sign0 = sign1; - }, - lineEnd: function() { - stream.lineEnd(); - lambda0 = phi0 = NaN; - }, - clean: function() { - return 2 - clean; // if intersections, rejoin first and last segments - } - }; -} - -function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) { - var cosPhi0, - cosPhi1, - sinLambda0Lambda1 = sin$1(lambda0 - lambda1); - return abs$1(sinLambda0Lambda1) > epsilon$1 - ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1) - - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0)) - / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) - : (phi0 + phi1) / 2; -} - -function clipAntimeridianInterpolate(from, to, direction, stream) { - var phi; - if (from == null) { - phi = direction * halfPi$1; - stream.point(-pi$1, phi); - stream.point(0, phi); - stream.point(pi$1, phi); - stream.point(pi$1, 0); - stream.point(pi$1, -phi); - stream.point(0, -phi); - stream.point(-pi$1, -phi); - stream.point(-pi$1, 0); - stream.point(-pi$1, phi); - } else if (abs$1(from[0] - to[0]) > epsilon$1) { - var lambda = from[0] < to[0] ? pi$1 : -pi$1; - phi = direction * lambda / 2; - stream.point(-lambda, phi); - stream.point(0, phi); - stream.point(lambda, phi); - } else { - stream.point(to[0], to[1]); - } -} - -function clipCircle(radius) { - var cr = cos$1(radius), - delta = 6 * radians, - smallRadius = cr > 0, - notHemisphere = abs$1(cr) > epsilon$1; // TODO optimise for this common case - - function interpolate(from, to, direction, stream) { - circleStream(stream, radius, delta, direction, from, to); - } - - function visible(lambda, phi) { - return cos$1(lambda) * cos$1(phi) > cr; - } - - // Takes a line and cuts into visible segments. Return values used for polygon - // clipping: 0 - there were intersections or the line was empty; 1 - no - // intersections 2 - there were intersections, and the first and last segments - // should be rejoined. - function clipLine(stream) { - var point0, // previous point - c0, // code for previous point - v0, // visibility of previous point - v00, // visibility of first point - clean; // no intersections - return { - lineStart: function() { - v00 = v0 = false; - clean = 1; - }, - point: function(lambda, phi) { - var point1 = [lambda, phi], - point2, - v = visible(lambda, phi), - c = smallRadius - ? v ? 0 : code(lambda, phi) - : v ? code(lambda + (lambda < 0 ? pi$1 : -pi$1), phi) : 0; - if (!point0 && (v00 = v0 = v)) stream.lineStart(); - if (v !== v0) { - point2 = intersect(point0, point1); - if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) - point1[2] = 1; - } - if (v !== v0) { - clean = 0; - if (v) { - // outside going in - stream.lineStart(); - point2 = intersect(point1, point0); - stream.point(point2[0], point2[1]); - } else { - // inside going out - point2 = intersect(point0, point1); - stream.point(point2[0], point2[1], 2); - stream.lineEnd(); - } - point0 = point2; - } else if (notHemisphere && point0 && smallRadius ^ v) { - var t; - // If the codes for two points are different, or are both zero, - // and there this segment intersects with the small circle. - if (!(c & c0) && (t = intersect(point1, point0, true))) { - clean = 0; - if (smallRadius) { - stream.lineStart(); - stream.point(t[0][0], t[0][1]); - stream.point(t[1][0], t[1][1]); - stream.lineEnd(); - } else { - stream.point(t[1][0], t[1][1]); - stream.lineEnd(); - stream.lineStart(); - stream.point(t[0][0], t[0][1], 3); - } - } - } - if (v && (!point0 || !pointEqual(point0, point1))) { - stream.point(point1[0], point1[1]); - } - point0 = point1, v0 = v, c0 = c; - }, - lineEnd: function() { - if (v0) stream.lineEnd(); - point0 = null; - }, - // Rejoin first and last segments if there were intersections and the first - // and last points were visible. - clean: function() { - return clean | ((v00 && v0) << 1); - } - }; - } - - // Intersects the great circle between a and b with the clip circle. - function intersect(a, b, two) { - var pa = cartesian(a), - pb = cartesian(b); - - // We have two planes, n1.p = d1 and n2.p = d2. - // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2). - var n1 = [1, 0, 0], // normal - n2 = cartesianCross(pa, pb), - n2n2 = cartesianDot(n2, n2), - n1n2 = n2[0], // cartesianDot(n1, n2), - determinant = n2n2 - n1n2 * n1n2; - - // Two polar points. - if (!determinant) return !two && a; - - var c1 = cr * n2n2 / determinant, - c2 = -cr * n1n2 / determinant, - n1xn2 = cartesianCross(n1, n2), - A = cartesianScale(n1, c1), - B = cartesianScale(n2, c2); - cartesianAddInPlace(A, B); - - // Solve |p(t)|^2 = 1. - var u = n1xn2, - w = cartesianDot(A, u), - uu = cartesianDot(u, u), - t2 = w * w - uu * (cartesianDot(A, A) - 1); - - if (t2 < 0) return; - - var t = sqrt$2(t2), - q = cartesianScale(u, (-w - t) / uu); - cartesianAddInPlace(q, A); - q = spherical(q); - - if (!two) return q; - - // Two intersection points. - var lambda0 = a[0], - lambda1 = b[0], - phi0 = a[1], - phi1 = b[1], - z; - - if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z; - - var delta = lambda1 - lambda0, - polar = abs$1(delta - pi$1) < epsilon$1, - meridian = polar || delta < epsilon$1; - - if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; - - // Check that the first point is between a and b. - if (meridian - ? polar - ? phi0 + phi1 > 0 ^ q[1] < (abs$1(q[0] - lambda0) < epsilon$1 ? phi0 : phi1) - : phi0 <= q[1] && q[1] <= phi1 - : delta > pi$1 ^ (lambda0 <= q[0] && q[0] <= lambda1)) { - var q1 = cartesianScale(u, (-w + t) / uu); - cartesianAddInPlace(q1, A); - return [q, spherical(q1)]; - } - } - - // Generates a 4-bit vector representing the location of a point relative to - // the small circle's bounding box. - function code(lambda, phi) { - var r = smallRadius ? radius : pi$1 - radius, - code = 0; - if (lambda < -r) code |= 1; // left - else if (lambda > r) code |= 2; // right - if (phi < -r) code |= 4; // below - else if (phi > r) code |= 8; // above - return code; - } - - return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$1, radius - pi$1]); -} - -function clipLine(a, b, x0, y0, x1, y1) { - var ax = a[0], - ay = a[1], - bx = b[0], - by = b[1], - t0 = 0, - t1 = 1, - dx = bx - ax, - dy = by - ay, - r; - - r = x0 - ax; - if (!dx && r > 0) return; - r /= dx; - if (dx < 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } else if (dx > 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } - - r = x1 - ax; - if (!dx && r < 0) return; - r /= dx; - if (dx < 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } else if (dx > 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } - - r = y0 - ay; - if (!dy && r > 0) return; - r /= dy; - if (dy < 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } else if (dy > 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } - - r = y1 - ay; - if (!dy && r < 0) return; - r /= dy; - if (dy < 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } else if (dy > 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } - - if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy; - if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy; - return true; -} - -var clipMax = 1e9, clipMin = -clipMax; - -// TODO Use d3-polygon’s polygonContains here for the ring check? -// TODO Eliminate duplicate buffering in clipBuffer and polygon.push? - -function clipRectangle(x0, y0, x1, y1) { - - function visible(x, y) { - return x0 <= x && x <= x1 && y0 <= y && y <= y1; - } - - function interpolate(from, to, direction, stream) { - var a = 0, a1 = 0; - if (from == null - || (a = corner(from, direction)) !== (a1 = corner(to, direction)) - || comparePoint(from, to) < 0 ^ direction > 0) { - do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); - while ((a = (a + direction + 4) % 4) !== a1); - } else { - stream.point(to[0], to[1]); - } - } - - function corner(p, direction) { - return abs$1(p[0] - x0) < epsilon$1 ? direction > 0 ? 0 : 3 - : abs$1(p[0] - x1) < epsilon$1 ? direction > 0 ? 2 : 1 - : abs$1(p[1] - y0) < epsilon$1 ? direction > 0 ? 1 : 0 - : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon - } - - function compareIntersection(a, b) { - return comparePoint(a.x, b.x); - } - - function comparePoint(a, b) { - var ca = corner(a, 1), - cb = corner(b, 1); - return ca !== cb ? ca - cb - : ca === 0 ? b[1] - a[1] - : ca === 1 ? a[0] - b[0] - : ca === 2 ? a[1] - b[1] - : b[0] - a[0]; - } - - return function(stream) { - var activeStream = stream, - bufferStream = clipBuffer(), - segments, - polygon, - ring, - x__, y__, v__, // first point - x_, y_, v_, // previous point - first, - clean; - - var clipStream = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: polygonStart, - polygonEnd: polygonEnd - }; - - function point(x, y) { - if (visible(x, y)) activeStream.point(x, y); - } - - function polygonInside() { - var winding = 0; - - for (var i = 0, n = polygon.length; i < n; ++i) { - for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) { - a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1]; - if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; } - else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; } - } - } - - return winding; - } - - // Buffer geometry within a polygon and then clip it en masse. - function polygonStart() { - activeStream = bufferStream, segments = [], polygon = [], clean = true; - } - - function polygonEnd() { - var startInside = polygonInside(), - cleanInside = clean && startInside, - visible = (segments = merge(segments)).length; - if (cleanInside || visible) { - stream.polygonStart(); - if (cleanInside) { - stream.lineStart(); - interpolate(null, null, 1, stream); - stream.lineEnd(); - } - if (visible) { - clipRejoin(segments, compareIntersection, startInside, interpolate, stream); - } - stream.polygonEnd(); - } - activeStream = stream, segments = polygon = ring = null; - } - - function lineStart() { - clipStream.point = linePoint; - if (polygon) polygon.push(ring = []); - first = true; - v_ = false; - x_ = y_ = NaN; - } - - // TODO rather than special-case polygons, simply handle them separately. - // Ideally, coincident intersection points should be jittered to avoid - // clipping issues. - function lineEnd() { - if (segments) { - linePoint(x__, y__); - if (v__ && v_) bufferStream.rejoin(); - segments.push(bufferStream.result()); - } - clipStream.point = point; - if (v_) activeStream.lineEnd(); - } - - function linePoint(x, y) { - var v = visible(x, y); - if (polygon) ring.push([x, y]); - if (first) { - x__ = x, y__ = y, v__ = v; - first = false; - if (v) { - activeStream.lineStart(); - activeStream.point(x, y); - } - } else { - if (v && v_) activeStream.point(x, y); - else { - var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], - b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))]; - if (clipLine(a, b, x0, y0, x1, y1)) { - if (!v_) { - activeStream.lineStart(); - activeStream.point(a[0], a[1]); - } - activeStream.point(b[0], b[1]); - if (!v) activeStream.lineEnd(); - clean = false; - } else if (v) { - activeStream.lineStart(); - activeStream.point(x, y); - clean = false; - } - } - } - x_ = x, y_ = y, v_ = v; - } - - return clipStream; - }; -} - -function extent() { - var x0 = 0, - y0 = 0, - x1 = 960, - y1 = 500, - cache, - cacheStream, - clip; - - return clip = { - stream: function(stream) { - return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream); - }, - extent: function(_) { - return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]]; - } - }; -} - -var lengthSum$1, - lambda0, - sinPhi0, - cosPhi0; - -var lengthStream$1 = { - sphere: noop$1, - point: noop$1, - lineStart: lengthLineStart, - lineEnd: noop$1, - polygonStart: noop$1, - polygonEnd: noop$1 -}; - -function lengthLineStart() { - lengthStream$1.point = lengthPointFirst$1; - lengthStream$1.lineEnd = lengthLineEnd; -} - -function lengthLineEnd() { - lengthStream$1.point = lengthStream$1.lineEnd = noop$1; -} - -function lengthPointFirst$1(lambda, phi) { - lambda *= radians, phi *= radians; - lambda0 = lambda, sinPhi0 = sin$1(phi), cosPhi0 = cos$1(phi); - lengthStream$1.point = lengthPoint$1; -} - -function lengthPoint$1(lambda, phi) { - lambda *= radians, phi *= radians; - var sinPhi = sin$1(phi), - cosPhi = cos$1(phi), - delta = abs$1(lambda - lambda0), - cosDelta = cos$1(delta), - sinDelta = sin$1(delta), - x = cosPhi * sinDelta, - y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta, - z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta; - lengthSum$1.add(atan2$1(sqrt$2(x * x + y * y), z)); - lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi; -} - -function length$1(object) { - lengthSum$1 = new Adder(); - geoStream(object, lengthStream$1); - return +lengthSum$1; -} - -var coordinates = [null, null], - object = {type: "LineString", coordinates: coordinates}; - -function distance(a, b) { - coordinates[0] = a; - coordinates[1] = b; - return length$1(object); -} - -var containsObjectType = { - Feature: function(object, point) { - return containsGeometry(object.geometry, point); - }, - FeatureCollection: function(object, point) { - var features = object.features, i = -1, n = features.length; - while (++i < n) if (containsGeometry(features[i].geometry, point)) return true; - return false; - } -}; - -var containsGeometryType = { - Sphere: function() { - return true; - }, - Point: function(object, point) { - return containsPoint(object.coordinates, point); - }, - MultiPoint: function(object, point) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) if (containsPoint(coordinates[i], point)) return true; - return false; - }, - LineString: function(object, point) { - return containsLine(object.coordinates, point); - }, - MultiLineString: function(object, point) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) if (containsLine(coordinates[i], point)) return true; - return false; - }, - Polygon: function(object, point) { - return containsPolygon(object.coordinates, point); - }, - MultiPolygon: function(object, point) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) if (containsPolygon(coordinates[i], point)) return true; - return false; - }, - GeometryCollection: function(object, point) { - var geometries = object.geometries, i = -1, n = geometries.length; - while (++i < n) if (containsGeometry(geometries[i], point)) return true; - return false; - } -}; - -function containsGeometry(geometry, point) { - return geometry && containsGeometryType.hasOwnProperty(geometry.type) - ? containsGeometryType[geometry.type](geometry, point) - : false; -} - -function containsPoint(coordinates, point) { - return distance(coordinates, point) === 0; -} - -function containsLine(coordinates, point) { - var ao, bo, ab; - for (var i = 0, n = coordinates.length; i < n; i++) { - bo = distance(coordinates[i], point); - if (bo === 0) return true; - if (i > 0) { - ab = distance(coordinates[i], coordinates[i - 1]); - if ( - ab > 0 && - ao <= ab && - bo <= ab && - (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab - ) - return true; - } - ao = bo; - } - return false; -} - -function containsPolygon(coordinates, point) { - return !!polygonContains(coordinates.map(ringRadians), pointRadians(point)); -} - -function ringRadians(ring) { - return ring = ring.map(pointRadians), ring.pop(), ring; -} - -function pointRadians(point) { - return [point[0] * radians, point[1] * radians]; -} - -function contains$1(object, point) { - return (object && containsObjectType.hasOwnProperty(object.type) - ? containsObjectType[object.type] - : containsGeometry)(object, point); -} - -function graticuleX(y0, y1, dy) { - var y = sequence(y0, y1 - epsilon$1, dy).concat(y1); - return function(x) { return y.map(function(y) { return [x, y]; }); }; -} - -function graticuleY(x0, x1, dx) { - var x = sequence(x0, x1 - epsilon$1, dx).concat(x1); - return function(y) { return x.map(function(x) { return [x, y]; }); }; -} - -function graticule() { - var x1, x0, X1, X0, - y1, y0, Y1, Y0, - dx = 10, dy = dx, DX = 90, DY = 360, - x, y, X, Y, - precision = 2.5; - - function graticule() { - return {type: "MultiLineString", coordinates: lines()}; - } - - function lines() { - return sequence(ceil(X0 / DX) * DX, X1, DX).map(X) - .concat(sequence(ceil(Y0 / DY) * DY, Y1, DY).map(Y)) - .concat(sequence(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs$1(x % DX) > epsilon$1; }).map(x)) - .concat(sequence(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs$1(y % DY) > epsilon$1; }).map(y)); - } - - graticule.lines = function() { - return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; }); - }; - - graticule.outline = function() { - return { - type: "Polygon", - coordinates: [ - X(X0).concat( - Y(Y1).slice(1), - X(X1).reverse().slice(1), - Y(Y0).reverse().slice(1)) - ] - }; - }; - - graticule.extent = function(_) { - if (!arguments.length) return graticule.extentMinor(); - return graticule.extentMajor(_).extentMinor(_); - }; - - graticule.extentMajor = function(_) { - if (!arguments.length) return [[X0, Y0], [X1, Y1]]; - X0 = +_[0][0], X1 = +_[1][0]; - Y0 = +_[0][1], Y1 = +_[1][1]; - if (X0 > X1) _ = X0, X0 = X1, X1 = _; - if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; - return graticule.precision(precision); - }; - - graticule.extentMinor = function(_) { - if (!arguments.length) return [[x0, y0], [x1, y1]]; - x0 = +_[0][0], x1 = +_[1][0]; - y0 = +_[0][1], y1 = +_[1][1]; - if (x0 > x1) _ = x0, x0 = x1, x1 = _; - if (y0 > y1) _ = y0, y0 = y1, y1 = _; - return graticule.precision(precision); - }; - - graticule.step = function(_) { - if (!arguments.length) return graticule.stepMinor(); - return graticule.stepMajor(_).stepMinor(_); - }; - - graticule.stepMajor = function(_) { - if (!arguments.length) return [DX, DY]; - DX = +_[0], DY = +_[1]; - return graticule; - }; - - graticule.stepMinor = function(_) { - if (!arguments.length) return [dx, dy]; - dx = +_[0], dy = +_[1]; - return graticule; - }; - - graticule.precision = function(_) { - if (!arguments.length) return precision; - precision = +_; - x = graticuleX(y0, y1, 90); - y = graticuleY(x0, x1, precision); - X = graticuleX(Y0, Y1, 90); - Y = graticuleY(X0, X1, precision); - return graticule; - }; - - return graticule - .extentMajor([[-180, -90 + epsilon$1], [180, 90 - epsilon$1]]) - .extentMinor([[-180, -80 - epsilon$1], [180, 80 + epsilon$1]]); -} - -function graticule10() { - return graticule()(); -} - -function interpolate(a, b) { - var x0 = a[0] * radians, - y0 = a[1] * radians, - x1 = b[0] * radians, - y1 = b[1] * radians, - cy0 = cos$1(y0), - sy0 = sin$1(y0), - cy1 = cos$1(y1), - sy1 = sin$1(y1), - kx0 = cy0 * cos$1(x0), - ky0 = cy0 * sin$1(x0), - kx1 = cy1 * cos$1(x1), - ky1 = cy1 * sin$1(x1), - d = 2 * asin$1(sqrt$2(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))), - k = sin$1(d); - - var interpolate = d ? function(t) { - var B = sin$1(t *= d) / k, - A = sin$1(d - t) / k, - x = A * kx0 + B * kx1, - y = A * ky0 + B * ky1, - z = A * sy0 + B * sy1; - return [ - atan2$1(y, x) * degrees, - atan2$1(z, sqrt$2(x * x + y * y)) * degrees - ]; - } : function() { - return [x0 * degrees, y0 * degrees]; - }; - - interpolate.distance = d; - - return interpolate; -} - -var identity$5 = x => x; - -var areaSum = new Adder(), - areaRingSum = new Adder(), - x00$2, - y00$2, - x0$3, - y0$3; - -var areaStream = { - point: noop$1, - lineStart: noop$1, - lineEnd: noop$1, - polygonStart: function() { - areaStream.lineStart = areaRingStart; - areaStream.lineEnd = areaRingEnd; - }, - polygonEnd: function() { - areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop$1; - areaSum.add(abs$1(areaRingSum)); - areaRingSum = new Adder(); - }, - result: function() { - var area = areaSum / 2; - areaSum = new Adder(); - return area; - } -}; - -function areaRingStart() { - areaStream.point = areaPointFirst; -} - -function areaPointFirst(x, y) { - areaStream.point = areaPoint; - x00$2 = x0$3 = x, y00$2 = y0$3 = y; -} - -function areaPoint(x, y) { - areaRingSum.add(y0$3 * x - x0$3 * y); - x0$3 = x, y0$3 = y; -} - -function areaRingEnd() { - areaPoint(x00$2, y00$2); -} - -var x0$2 = Infinity, - y0$2 = x0$2, - x1 = -x0$2, - y1 = x1; - -var boundsStream = { - point: boundsPoint, - lineStart: noop$1, - lineEnd: noop$1, - polygonStart: noop$1, - polygonEnd: noop$1, - result: function() { - var bounds = [[x0$2, y0$2], [x1, y1]]; - x1 = y1 = -(y0$2 = x0$2 = Infinity); - return bounds; - } -}; - -function boundsPoint(x, y) { - if (x < x0$2) x0$2 = x; - if (x > x1) x1 = x; - if (y < y0$2) y0$2 = y; - if (y > y1) y1 = y; -} - -// TODO Enforce positive area for exterior, negative area for interior? - -var X0 = 0, - Y0 = 0, - Z0 = 0, - X1 = 0, - Y1 = 0, - Z1 = 0, - X2 = 0, - Y2 = 0, - Z2 = 0, - x00$1, - y00$1, - x0$1, - y0$1; - -var centroidStream = { - point: centroidPoint, - lineStart: centroidLineStart, - lineEnd: centroidLineEnd, - polygonStart: function() { - centroidStream.lineStart = centroidRingStart; - centroidStream.lineEnd = centroidRingEnd; - }, - polygonEnd: function() { - centroidStream.point = centroidPoint; - centroidStream.lineStart = centroidLineStart; - centroidStream.lineEnd = centroidLineEnd; - }, - result: function() { - var centroid = Z2 ? [X2 / Z2, Y2 / Z2] - : Z1 ? [X1 / Z1, Y1 / Z1] - : Z0 ? [X0 / Z0, Y0 / Z0] - : [NaN, NaN]; - X0 = Y0 = Z0 = - X1 = Y1 = Z1 = - X2 = Y2 = Z2 = 0; - return centroid; - } -}; - -function centroidPoint(x, y) { - X0 += x; - Y0 += y; - ++Z0; -} - -function centroidLineStart() { - centroidStream.point = centroidPointFirstLine; -} - -function centroidPointFirstLine(x, y) { - centroidStream.point = centroidPointLine; - centroidPoint(x0$1 = x, y0$1 = y); -} - -function centroidPointLine(x, y) { - var dx = x - x0$1, dy = y - y0$1, z = sqrt$2(dx * dx + dy * dy); - X1 += z * (x0$1 + x) / 2; - Y1 += z * (y0$1 + y) / 2; - Z1 += z; - centroidPoint(x0$1 = x, y0$1 = y); -} - -function centroidLineEnd() { - centroidStream.point = centroidPoint; -} - -function centroidRingStart() { - centroidStream.point = centroidPointFirstRing; -} - -function centroidRingEnd() { - centroidPointRing(x00$1, y00$1); -} - -function centroidPointFirstRing(x, y) { - centroidStream.point = centroidPointRing; - centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y); -} - -function centroidPointRing(x, y) { - var dx = x - x0$1, - dy = y - y0$1, - z = sqrt$2(dx * dx + dy * dy); - - X1 += z * (x0$1 + x) / 2; - Y1 += z * (y0$1 + y) / 2; - Z1 += z; - - z = y0$1 * x - x0$1 * y; - X2 += z * (x0$1 + x); - Y2 += z * (y0$1 + y); - Z2 += z * 3; - centroidPoint(x0$1 = x, y0$1 = y); -} - -function PathContext(context) { - this._context = context; -} - -PathContext.prototype = { - _radius: 4.5, - pointRadius: function(_) { - return this._radius = _, this; - }, - polygonStart: function() { - this._line = 0; - }, - polygonEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line === 0) this._context.closePath(); - this._point = NaN; - }, - point: function(x, y) { - switch (this._point) { - case 0: { - this._context.moveTo(x, y); - this._point = 1; - break; - } - case 1: { - this._context.lineTo(x, y); - break; - } - default: { - this._context.moveTo(x + this._radius, y); - this._context.arc(x, y, this._radius, 0, tau$1); - break; - } - } - }, - result: noop$1 -}; - -var lengthSum = new Adder(), - lengthRing, - x00, - y00, - x0, - y0; - -var lengthStream = { - point: noop$1, - lineStart: function() { - lengthStream.point = lengthPointFirst; - }, - lineEnd: function() { - if (lengthRing) lengthPoint(x00, y00); - lengthStream.point = noop$1; - }, - polygonStart: function() { - lengthRing = true; - }, - polygonEnd: function() { - lengthRing = null; - }, - result: function() { - var length = +lengthSum; - lengthSum = new Adder(); - return length; - } -}; - -function lengthPointFirst(x, y) { - lengthStream.point = lengthPoint; - x00 = x0 = x, y00 = y0 = y; -} - -function lengthPoint(x, y) { - x0 -= x, y0 -= y; - lengthSum.add(sqrt$2(x0 * x0 + y0 * y0)); - x0 = x, y0 = y; -} - -function PathString() { - this._string = []; -} - -PathString.prototype = { - _radius: 4.5, - _circle: circle$1(4.5), - pointRadius: function(_) { - if ((_ = +_) !== this._radius) this._radius = _, this._circle = null; - return this; - }, - polygonStart: function() { - this._line = 0; - }, - polygonEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line === 0) this._string.push("Z"); - this._point = NaN; - }, - point: function(x, y) { - switch (this._point) { - case 0: { - this._string.push("M", x, ",", y); - this._point = 1; - break; - } - case 1: { - this._string.push("L", x, ",", y); - break; - } - default: { - if (this._circle == null) this._circle = circle$1(this._radius); - this._string.push("M", x, ",", y, this._circle); - break; - } - } - }, - result: function() { - if (this._string.length) { - var result = this._string.join(""); - this._string = []; - return result; - } else { - return null; - } - } -}; - -function circle$1(radius) { - return "m0," + radius - + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius - + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius - + "z"; -} - -function index$2(projection, context) { - var pointRadius = 4.5, - projectionStream, - contextStream; - - function path(object) { - if (object) { - if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); - geoStream(object, projectionStream(contextStream)); - } - return contextStream.result(); - } - - path.area = function(object) { - geoStream(object, projectionStream(areaStream)); - return areaStream.result(); - }; - - path.measure = function(object) { - geoStream(object, projectionStream(lengthStream)); - return lengthStream.result(); - }; - - path.bounds = function(object) { - geoStream(object, projectionStream(boundsStream)); - return boundsStream.result(); - }; - - path.centroid = function(object) { - geoStream(object, projectionStream(centroidStream)); - return centroidStream.result(); - }; - - path.projection = function(_) { - return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$5) : (projection = _).stream, path) : projection; - }; - - path.context = function(_) { - if (!arguments.length) return context; - contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _); - if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); - return path; - }; - - path.pointRadius = function(_) { - if (!arguments.length) return pointRadius; - pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); - return path; - }; - - return path.projection(projection).context(context); -} - -function transform$1(methods) { - return { - stream: transformer$3(methods) - }; -} - -function transformer$3(methods) { - return function(stream) { - var s = new TransformStream; - for (var key in methods) s[key] = methods[key]; - s.stream = stream; - return s; - }; -} - -function TransformStream() {} - -TransformStream.prototype = { - constructor: TransformStream, - point: function(x, y) { this.stream.point(x, y); }, - sphere: function() { this.stream.sphere(); }, - lineStart: function() { this.stream.lineStart(); }, - lineEnd: function() { this.stream.lineEnd(); }, - polygonStart: function() { this.stream.polygonStart(); }, - polygonEnd: function() { this.stream.polygonEnd(); } -}; - -function fit(projection, fitBounds, object) { - var clip = projection.clipExtent && projection.clipExtent(); - projection.scale(150).translate([0, 0]); - if (clip != null) projection.clipExtent(null); - geoStream(object, projection.stream(boundsStream)); - fitBounds(boundsStream.result()); - if (clip != null) projection.clipExtent(clip); - return projection; -} - -function fitExtent(projection, extent, object) { - return fit(projection, function(b) { - var w = extent[1][0] - extent[0][0], - h = extent[1][1] - extent[0][1], - k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), - x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, - y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2; - projection.scale(150 * k).translate([x, y]); - }, object); -} - -function fitSize(projection, size, object) { - return fitExtent(projection, [[0, 0], size], object); -} - -function fitWidth(projection, width, object) { - return fit(projection, function(b) { - var w = +width, - k = w / (b[1][0] - b[0][0]), - x = (w - k * (b[1][0] + b[0][0])) / 2, - y = -k * b[0][1]; - projection.scale(150 * k).translate([x, y]); - }, object); -} - -function fitHeight(projection, height, object) { - return fit(projection, function(b) { - var h = +height, - k = h / (b[1][1] - b[0][1]), - x = -k * b[0][0], - y = (h - k * (b[1][1] + b[0][1])) / 2; - projection.scale(150 * k).translate([x, y]); - }, object); -} - -var maxDepth = 16, // maximum depth of subdivision - cosMinDistance = cos$1(30 * radians); // cos(minimum angular distance) - -function resample(project, delta2) { - return +delta2 ? resample$1(project, delta2) : resampleNone(project); -} - -function resampleNone(project) { - return transformer$3({ - point: function(x, y) { - x = project(x, y); - this.stream.point(x[0], x[1]); - } - }); -} - -function resample$1(project, delta2) { - - function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) { - var dx = x1 - x0, - dy = y1 - y0, - d2 = dx * dx + dy * dy; - if (d2 > 4 * delta2 && depth--) { - var a = a0 + a1, - b = b0 + b1, - c = c0 + c1, - m = sqrt$2(a * a + b * b + c * c), - phi2 = asin$1(c /= m), - lambda2 = abs$1(abs$1(c) - 1) < epsilon$1 || abs$1(lambda0 - lambda1) < epsilon$1 ? (lambda0 + lambda1) / 2 : atan2$1(b, a), - p = project(lambda2, phi2), - x2 = p[0], - y2 = p[1], - dx2 = x2 - x0, - dy2 = y2 - y0, - dz = dy * dx2 - dx * dy2; - if (dz * dz / d2 > delta2 // perpendicular projected distance - || abs$1((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end - || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance - resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream); - stream.point(x2, y2); - resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream); - } - } - } - return function(stream) { - var lambda00, x00, y00, a00, b00, c00, // first point - lambda0, x0, y0, a0, b0, c0; // previous point - - var resampleStream = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; }, - polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; } - }; - - function point(x, y) { - x = project(x, y); - stream.point(x[0], x[1]); - } - - function lineStart() { - x0 = NaN; - resampleStream.point = linePoint; - stream.lineStart(); - } - - function linePoint(lambda, phi) { - var c = cartesian([lambda, phi]), p = project(lambda, phi); - resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); - stream.point(x0, y0); - } - - function lineEnd() { - resampleStream.point = point; - stream.lineEnd(); - } - - function ringStart() { - lineStart(); - resampleStream.point = ringPoint; - resampleStream.lineEnd = ringEnd; - } - - function ringPoint(lambda, phi) { - linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; - resampleStream.point = linePoint; - } - - function ringEnd() { - resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream); - resampleStream.lineEnd = lineEnd; - lineEnd(); - } - - return resampleStream; - }; -} - -var transformRadians = transformer$3({ - point: function(x, y) { - this.stream.point(x * radians, y * radians); - } -}); - -function transformRotate(rotate) { - return transformer$3({ - point: function(x, y) { - var r = rotate(x, y); - return this.stream.point(r[0], r[1]); - } - }); -} - -function scaleTranslate(k, dx, dy, sx, sy) { - function transform(x, y) { - x *= sx; y *= sy; - return [dx + k * x, dy - k * y]; - } - transform.invert = function(x, y) { - return [(x - dx) / k * sx, (dy - y) / k * sy]; - }; - return transform; -} - -function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) { - if (!alpha) return scaleTranslate(k, dx, dy, sx, sy); - var cosAlpha = cos$1(alpha), - sinAlpha = sin$1(alpha), - a = cosAlpha * k, - b = sinAlpha * k, - ai = cosAlpha / k, - bi = sinAlpha / k, - ci = (sinAlpha * dy - cosAlpha * dx) / k, - fi = (sinAlpha * dx + cosAlpha * dy) / k; - function transform(x, y) { - x *= sx; y *= sy; - return [a * x - b * y + dx, dy - b * x - a * y]; - } - transform.invert = function(x, y) { - return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)]; - }; - return transform; -} - -function projection(project) { - return projectionMutator(function() { return project; })(); -} - -function projectionMutator(projectAt) { - var project, - k = 150, // scale - x = 480, y = 250, // translate - lambda = 0, phi = 0, // center - deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate - alpha = 0, // post-rotate angle - sx = 1, // reflectX - sy = 1, // reflectX - theta = null, preclip = clipAntimeridian, // pre-clip angle - x0 = null, y0, x1, y1, postclip = identity$5, // post-clip extent - delta2 = 0.5, // precision - projectResample, - projectTransform, - projectRotateTransform, - cache, - cacheStream; - - function projection(point) { - return projectRotateTransform(point[0] * radians, point[1] * radians); - } - - function invert(point) { - point = projectRotateTransform.invert(point[0], point[1]); - return point && [point[0] * degrees, point[1] * degrees]; - } - - projection.stream = function(stream) { - return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream))))); - }; - - projection.preclip = function(_) { - return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip; - }; - - projection.postclip = function(_) { - return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; - }; - - projection.clipAngle = function(_) { - return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees; - }; - - projection.clipExtent = function(_) { - return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; - }; - - projection.scale = function(_) { - return arguments.length ? (k = +_, recenter()) : k; - }; - - projection.translate = function(_) { - return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y]; - }; - - projection.center = function(_) { - return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees]; - }; - - projection.rotate = function(_) { - return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees]; - }; - - projection.angle = function(_) { - return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees; - }; - - projection.reflectX = function(_) { - return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0; - }; - - projection.reflectY = function(_) { - return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0; - }; - - projection.precision = function(_) { - return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$2(delta2); - }; - - projection.fitExtent = function(extent, object) { - return fitExtent(projection, extent, object); - }; - - projection.fitSize = function(size, object) { - return fitSize(projection, size, object); - }; - - projection.fitWidth = function(width, object) { - return fitWidth(projection, width, object); - }; - - projection.fitHeight = function(height, object) { - return fitHeight(projection, height, object); - }; - - function recenter() { - var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), - transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha); - rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma); - projectTransform = compose(project, transform); - projectRotateTransform = compose(rotate, projectTransform); - projectResample = resample(projectTransform, delta2); - return reset(); - } - - function reset() { - cache = cacheStream = null; - return projection; - } - - return function() { - project = projectAt.apply(this, arguments); - projection.invert = project.invert && invert; - return recenter(); - }; -} - -function conicProjection(projectAt) { - var phi0 = 0, - phi1 = pi$1 / 3, - m = projectionMutator(projectAt), - p = m(phi0, phi1); - - p.parallels = function(_) { - return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees]; - }; - - return p; -} - -function cylindricalEqualAreaRaw(phi0) { - var cosPhi0 = cos$1(phi0); - - function forward(lambda, phi) { - return [lambda * cosPhi0, sin$1(phi) / cosPhi0]; - } - - forward.invert = function(x, y) { - return [x / cosPhi0, asin$1(y * cosPhi0)]; - }; - - return forward; -} - -function conicEqualAreaRaw(y0, y1) { - var sy0 = sin$1(y0), n = (sy0 + sin$1(y1)) / 2; - - // Are the parallels symmetrical around the Equator? - if (abs$1(n) < epsilon$1) return cylindricalEqualAreaRaw(y0); - - var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt$2(c) / n; - - function project(x, y) { - var r = sqrt$2(c - 2 * n * sin$1(y)) / n; - return [r * sin$1(x *= n), r0 - r * cos$1(x)]; - } - - project.invert = function(x, y) { - var r0y = r0 - y, - l = atan2$1(x, abs$1(r0y)) * sign$1(r0y); - if (r0y * n < 0) - l -= pi$1 * sign$1(x) * sign$1(r0y); - return [l / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))]; - }; - - return project; -} - -function conicEqualArea() { - return conicProjection(conicEqualAreaRaw) - .scale(155.424) - .center([0, 33.6442]); -} - -function albers() { - return conicEqualArea() - .parallels([29.5, 45.5]) - .scale(1070) - .translate([480, 250]) - .rotate([96, 0]) - .center([-0.6, 38.7]); -} - -// The projections must have mutually exclusive clip regions on the sphere, -// as this will avoid emitting interleaving lines and polygons. -function multiplex(streams) { - var n = streams.length; - return { - point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); }, - sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); }, - lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); }, - lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); }, - polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); }, - polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); } - }; -} - -// A composite projection for the United States, configured by default for -// 960×500. The projection also works quite well at 960×600 if you change the -// scale to 1285 and adjust the translate accordingly. The set of standard -// parallels for each region comes from USGS, which is published here: -// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers -function albersUsa() { - var cache, - cacheStream, - lower48 = albers(), lower48Point, - alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338 - hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007 - point, pointStream = {point: function(x, y) { point = [x, y]; }}; - - function albersUsa(coordinates) { - var x = coordinates[0], y = coordinates[1]; - return point = null, - (lower48Point.point(x, y), point) - || (alaskaPoint.point(x, y), point) - || (hawaiiPoint.point(x, y), point); - } - - albersUsa.invert = function(coordinates) { - var k = lower48.scale(), - t = lower48.translate(), - x = (coordinates[0] - t[0]) / k, - y = (coordinates[1] - t[1]) / k; - return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska - : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii - : lower48).invert(coordinates); - }; - - albersUsa.stream = function(stream) { - return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]); - }; - - albersUsa.precision = function(_) { - if (!arguments.length) return lower48.precision(); - lower48.precision(_), alaska.precision(_), hawaii.precision(_); - return reset(); - }; - - albersUsa.scale = function(_) { - if (!arguments.length) return lower48.scale(); - lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_); - return albersUsa.translate(lower48.translate()); - }; - - albersUsa.translate = function(_) { - if (!arguments.length) return lower48.translate(); - var k = lower48.scale(), x = +_[0], y = +_[1]; - - lower48Point = lower48 - .translate(_) - .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]) - .stream(pointStream); - - alaskaPoint = alaska - .translate([x - 0.307 * k, y + 0.201 * k]) - .clipExtent([[x - 0.425 * k + epsilon$1, y + 0.120 * k + epsilon$1], [x - 0.214 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) - .stream(pointStream); - - hawaiiPoint = hawaii - .translate([x - 0.205 * k, y + 0.212 * k]) - .clipExtent([[x - 0.214 * k + epsilon$1, y + 0.166 * k + epsilon$1], [x - 0.115 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) - .stream(pointStream); - - return reset(); - }; - - albersUsa.fitExtent = function(extent, object) { - return fitExtent(albersUsa, extent, object); - }; - - albersUsa.fitSize = function(size, object) { - return fitSize(albersUsa, size, object); - }; - - albersUsa.fitWidth = function(width, object) { - return fitWidth(albersUsa, width, object); - }; - - albersUsa.fitHeight = function(height, object) { - return fitHeight(albersUsa, height, object); - }; - - function reset() { - cache = cacheStream = null; - return albersUsa; - } - - return albersUsa.scale(1070); -} - -function azimuthalRaw(scale) { - return function(x, y) { - var cx = cos$1(x), - cy = cos$1(y), - k = scale(cx * cy); - if (k === Infinity) return [2, 0]; - return [ - k * cy * sin$1(x), - k * sin$1(y) - ]; - } -} - -function azimuthalInvert(angle) { - return function(x, y) { - var z = sqrt$2(x * x + y * y), - c = angle(z), - sc = sin$1(c), - cc = cos$1(c); - return [ - atan2$1(x * sc, z * cc), - asin$1(z && y * sc / z) - ]; - } -} - -var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) { - return sqrt$2(2 / (1 + cxcy)); -}); - -azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) { - return 2 * asin$1(z / 2); -}); - -function azimuthalEqualArea() { - return projection(azimuthalEqualAreaRaw) - .scale(124.75) - .clipAngle(180 - 1e-3); -} - -var azimuthalEquidistantRaw = azimuthalRaw(function(c) { - return (c = acos$1(c)) && c / sin$1(c); -}); - -azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) { - return z; -}); - -function azimuthalEquidistant() { - return projection(azimuthalEquidistantRaw) - .scale(79.4188) - .clipAngle(180 - 1e-3); -} - -function mercatorRaw(lambda, phi) { - return [lambda, log$1(tan((halfPi$1 + phi) / 2))]; -} - -mercatorRaw.invert = function(x, y) { - return [x, 2 * atan(exp(y)) - halfPi$1]; -}; - -function mercator() { - return mercatorProjection(mercatorRaw) - .scale(961 / tau$1); -} - -function mercatorProjection(project) { - var m = projection(project), - center = m.center, - scale = m.scale, - translate = m.translate, - clipExtent = m.clipExtent, - x0 = null, y0, x1, y1; // clip extent - - m.scale = function(_) { - return arguments.length ? (scale(_), reclip()) : scale(); - }; - - m.translate = function(_) { - return arguments.length ? (translate(_), reclip()) : translate(); - }; - - m.center = function(_) { - return arguments.length ? (center(_), reclip()) : center(); - }; - - m.clipExtent = function(_) { - return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]]; - }; - - function reclip() { - var k = pi$1 * scale(), - t = m(rotation(m.rotate()).invert([0, 0])); - return clipExtent(x0 == null - ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw - ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] - : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]); - } - - return reclip(); -} - -function tany(y) { - return tan((halfPi$1 + y) / 2); -} - -function conicConformalRaw(y0, y1) { - var cy0 = cos$1(y0), - n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)), - f = cy0 * pow$1(tany(y0), n) / n; - - if (!n) return mercatorRaw; - - function project(x, y) { - if (f > 0) { if (y < -halfPi$1 + epsilon$1) y = -halfPi$1 + epsilon$1; } - else { if (y > halfPi$1 - epsilon$1) y = halfPi$1 - epsilon$1; } - var r = f / pow$1(tany(y), n); - return [r * sin$1(n * x), f - r * cos$1(n * x)]; - } - - project.invert = function(x, y) { - var fy = f - y, r = sign$1(n) * sqrt$2(x * x + fy * fy), - l = atan2$1(x, abs$1(fy)) * sign$1(fy); - if (fy * n < 0) - l -= pi$1 * sign$1(x) * sign$1(fy); - return [l / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$1]; - }; - - return project; -} - -function conicConformal() { - return conicProjection(conicConformalRaw) - .scale(109.5) - .parallels([30, 30]); -} - -function equirectangularRaw(lambda, phi) { - return [lambda, phi]; -} - -equirectangularRaw.invert = equirectangularRaw; - -function equirectangular() { - return projection(equirectangularRaw) - .scale(152.63); -} - -function conicEquidistantRaw(y0, y1) { - var cy0 = cos$1(y0), - n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0), - g = cy0 / n + y0; - - if (abs$1(n) < epsilon$1) return equirectangularRaw; - - function project(x, y) { - var gy = g - y, nx = n * x; - return [gy * sin$1(nx), g - gy * cos$1(nx)]; - } - - project.invert = function(x, y) { - var gy = g - y, - l = atan2$1(x, abs$1(gy)) * sign$1(gy); - if (gy * n < 0) - l -= pi$1 * sign$1(x) * sign$1(gy); - return [l / n, g - sign$1(n) * sqrt$2(x * x + gy * gy)]; - }; - - return project; -} - -function conicEquidistant() { - return conicProjection(conicEquidistantRaw) - .scale(131.154) - .center([0, 13.9389]); -} - -var A1 = 1.340264, - A2 = -0.081106, - A3 = 0.000893, - A4 = 0.003796, - M = sqrt$2(3) / 2, - iterations = 12; - -function equalEarthRaw(lambda, phi) { - var l = asin$1(M * sin$1(phi)), l2 = l * l, l6 = l2 * l2 * l2; - return [ - lambda * cos$1(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), - l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - ]; -} - -equalEarthRaw.invert = function(x, y) { - var l = y, l2 = l * l, l6 = l2 * l2 * l2; - for (var i = 0, delta, fy, fpy; i < iterations; ++i) { - fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y; - fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2); - l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2; - if (abs$1(delta) < epsilon2) break; - } - return [ - M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos$1(l), - asin$1(sin$1(l) / M) - ]; -}; - -function equalEarth() { - return projection(equalEarthRaw) - .scale(177.158); -} - -function gnomonicRaw(x, y) { - var cy = cos$1(y), k = cos$1(x) * cy; - return [cy * sin$1(x) / k, sin$1(y) / k]; -} - -gnomonicRaw.invert = azimuthalInvert(atan); - -function gnomonic() { - return projection(gnomonicRaw) - .scale(144.049) - .clipAngle(60); -} - -function identity$4() { - var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect - alpha = 0, ca, sa, // angle - x0 = null, y0, x1, y1, // clip extent - kx = 1, ky = 1, - transform = transformer$3({ - point: function(x, y) { - var p = projection([x, y]); - this.stream.point(p[0], p[1]); - } - }), - postclip = identity$5, - cache, - cacheStream; - - function reset() { - kx = k * sx; - ky = k * sy; - cache = cacheStream = null; - return projection; - } - - function projection (p) { - var x = p[0] * kx, y = p[1] * ky; - if (alpha) { - var t = y * ca - x * sa; - x = x * ca + y * sa; - y = t; - } - return [x + tx, y + ty]; - } - projection.invert = function(p) { - var x = p[0] - tx, y = p[1] - ty; - if (alpha) { - var t = y * ca + x * sa; - x = x * ca - y * sa; - y = t; - } - return [x / kx, y / ky]; - }; - projection.stream = function(stream) { - return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream)); - }; - projection.postclip = function(_) { - return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; - }; - projection.clipExtent = function(_) { - return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; - }; - projection.scale = function(_) { - return arguments.length ? (k = +_, reset()) : k; - }; - projection.translate = function(_) { - return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty]; - }; - projection.angle = function(_) { - return arguments.length ? (alpha = _ % 360 * radians, sa = sin$1(alpha), ca = cos$1(alpha), reset()) : alpha * degrees; - }; - projection.reflectX = function(_) { - return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0; - }; - projection.reflectY = function(_) { - return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0; - }; - projection.fitExtent = function(extent, object) { - return fitExtent(projection, extent, object); - }; - projection.fitSize = function(size, object) { - return fitSize(projection, size, object); - }; - projection.fitWidth = function(width, object) { - return fitWidth(projection, width, object); - }; - projection.fitHeight = function(height, object) { - return fitHeight(projection, height, object); - }; - - return projection; -} - -function naturalEarth1Raw(lambda, phi) { - var phi2 = phi * phi, phi4 = phi2 * phi2; - return [ - lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), - phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - ]; -} - -naturalEarth1Raw.invert = function(x, y) { - var phi = y, i = 25, delta; - do { - var phi2 = phi * phi, phi4 = phi2 * phi2; - phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / - (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4))); - } while (abs$1(delta) > epsilon$1 && --i > 0); - return [ - x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), - phi - ]; -}; - -function naturalEarth1() { - return projection(naturalEarth1Raw) - .scale(175.295); -} - -function orthographicRaw(x, y) { - return [cos$1(y) * sin$1(x), sin$1(y)]; -} - -orthographicRaw.invert = azimuthalInvert(asin$1); - -function orthographic() { - return projection(orthographicRaw) - .scale(249.5) - .clipAngle(90 + epsilon$1); -} - -function stereographicRaw(x, y) { - var cy = cos$1(y), k = 1 + cos$1(x) * cy; - return [cy * sin$1(x) / k, sin$1(y) / k]; -} - -stereographicRaw.invert = azimuthalInvert(function(z) { - return 2 * atan(z); -}); - -function stereographic() { - return projection(stereographicRaw) - .scale(250) - .clipAngle(142); -} - -function transverseMercatorRaw(lambda, phi) { - return [log$1(tan((halfPi$1 + phi) / 2)), -lambda]; -} - -transverseMercatorRaw.invert = function(x, y) { - return [-y, 2 * atan(exp(x)) - halfPi$1]; -}; - -function transverseMercator() { - var m = mercatorProjection(transverseMercatorRaw), - center = m.center, - rotate = m.rotate; - - m.center = function(_) { - return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]); - }; - - m.rotate = function(_) { - return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]); - }; - - return rotate([0, 0, 90]) - .scale(159.155); -} - -function defaultSeparation$1(a, b) { - return a.parent === b.parent ? 1 : 2; -} - -function meanX(children) { - return children.reduce(meanXReduce, 0) / children.length; -} - -function meanXReduce(x, c) { - return x + c.x; -} - -function maxY(children) { - return 1 + children.reduce(maxYReduce, 0); -} - -function maxYReduce(y, c) { - return Math.max(y, c.y); -} - -function leafLeft(node) { - var children; - while (children = node.children) node = children[0]; - return node; -} - -function leafRight(node) { - var children; - while (children = node.children) node = children[children.length - 1]; - return node; -} - -function cluster() { - var separation = defaultSeparation$1, - dx = 1, - dy = 1, - nodeSize = false; - - function cluster(root) { - var previousNode, - x = 0; - - // First walk, computing the initial x & y values. - root.eachAfter(function(node) { - var children = node.children; - if (children) { - node.x = meanX(children); - node.y = maxY(children); - } else { - node.x = previousNode ? x += separation(node, previousNode) : 0; - node.y = 0; - previousNode = node; - } - }); - - var left = leafLeft(root), - right = leafRight(root), - x0 = left.x - separation(left, right) / 2, - x1 = right.x + separation(right, left) / 2; - - // Second walk, normalizing x & y to the desired size. - return root.eachAfter(nodeSize ? function(node) { - node.x = (node.x - root.x) * dx; - node.y = (root.y - node.y) * dy; - } : function(node) { - node.x = (node.x - x0) / (x1 - x0) * dx; - node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; - }); - } - - cluster.separation = function(x) { - return arguments.length ? (separation = x, cluster) : separation; - }; - - cluster.size = function(x) { - return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); - }; - - cluster.nodeSize = function(x) { - return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); - }; - - return cluster; -} - -function count(node) { - var sum = 0, - children = node.children, - i = children && children.length; - if (!i) sum = 1; - else while (--i >= 0) sum += children[i].value; - node.value = sum; -} - -function node_count() { - return this.eachAfter(count); -} - -function node_each(callback, that) { - let index = -1; - for (const node of this) { - callback.call(that, node, ++index, this); - } - return this; -} - -function node_eachBefore(callback, that) { - var node = this, nodes = [node], children, i, index = -1; - while (node = nodes.pop()) { - callback.call(that, node, ++index, this); - if (children = node.children) { - for (i = children.length - 1; i >= 0; --i) { - nodes.push(children[i]); - } - } - } - return this; -} - -function node_eachAfter(callback, that) { - var node = this, nodes = [node], next = [], children, i, n, index = -1; - while (node = nodes.pop()) { - next.push(node); - if (children = node.children) { - for (i = 0, n = children.length; i < n; ++i) { - nodes.push(children[i]); - } - } - } - while (node = next.pop()) { - callback.call(that, node, ++index, this); - } - return this; -} - -function node_find(callback, that) { - let index = -1; - for (const node of this) { - if (callback.call(that, node, ++index, this)) { - return node; - } - } -} - -function node_sum(value) { - return this.eachAfter(function(node) { - var sum = +value(node.data) || 0, - children = node.children, - i = children && children.length; - while (--i >= 0) sum += children[i].value; - node.value = sum; - }); -} - -function node_sort(compare) { - return this.eachBefore(function(node) { - if (node.children) { - node.children.sort(compare); - } - }); -} - -function node_path(end) { - var start = this, - ancestor = leastCommonAncestor(start, end), - nodes = [start]; - while (start !== ancestor) { - start = start.parent; - nodes.push(start); - } - var k = nodes.length; - while (end !== ancestor) { - nodes.splice(k, 0, end); - end = end.parent; - } - return nodes; -} - -function leastCommonAncestor(a, b) { - if (a === b) return a; - var aNodes = a.ancestors(), - bNodes = b.ancestors(), - c = null; - a = aNodes.pop(); - b = bNodes.pop(); - while (a === b) { - c = a; - a = aNodes.pop(); - b = bNodes.pop(); - } - return c; -} - -function node_ancestors() { - var node = this, nodes = [node]; - while (node = node.parent) { - nodes.push(node); - } - return nodes; -} - -function node_descendants() { - return Array.from(this); -} - -function node_leaves() { - var leaves = []; - this.eachBefore(function(node) { - if (!node.children) { - leaves.push(node); - } - }); - return leaves; -} - -function node_links() { - var root = this, links = []; - root.each(function(node) { - if (node !== root) { // Don’t include the root’s parent, if any. - links.push({source: node.parent, target: node}); - } - }); - return links; -} - -function* node_iterator() { - var node = this, current, next = [node], children, i, n; - do { - current = next.reverse(), next = []; - while (node = current.pop()) { - yield node; - if (children = node.children) { - for (i = 0, n = children.length; i < n; ++i) { - next.push(children[i]); - } - } - } - } while (next.length); -} - -function hierarchy(data, children) { - if (data instanceof Map) { - data = [undefined, data]; - if (children === undefined) children = mapChildren; - } else if (children === undefined) { - children = objectChildren; - } - - var root = new Node$1(data), - node, - nodes = [root], - child, - childs, - i, - n; - - while (node = nodes.pop()) { - if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { - node.children = childs; - for (i = n - 1; i >= 0; --i) { - nodes.push(child = childs[i] = new Node$1(childs[i])); - child.parent = node; - child.depth = node.depth + 1; - } - } - } - - return root.eachBefore(computeHeight); -} - -function node_copy() { - return hierarchy(this).eachBefore(copyData); -} - -function objectChildren(d) { - return d.children; -} - -function mapChildren(d) { - return Array.isArray(d) ? d[1] : null; -} - -function copyData(node) { - if (node.data.value !== undefined) node.value = node.data.value; - node.data = node.data.data; -} - -function computeHeight(node) { - var height = 0; - do node.height = height; - while ((node = node.parent) && (node.height < ++height)); -} - -function Node$1(data) { - this.data = data; - this.depth = - this.height = 0; - this.parent = null; -} - -Node$1.prototype = hierarchy.prototype = { - constructor: Node$1, - count: node_count, - each: node_each, - eachAfter: node_eachAfter, - eachBefore: node_eachBefore, - find: node_find, - sum: node_sum, - sort: node_sort, - path: node_path, - ancestors: node_ancestors, - descendants: node_descendants, - leaves: node_leaves, - links: node_links, - copy: node_copy, - [Symbol.iterator]: node_iterator -}; - -function array$1(x) { - return typeof x === "object" && "length" in x - ? x // Array, TypedArray, NodeList, array-like - : Array.from(x); // Map, Set, iterable, string, or anything else -} - -function shuffle(array) { - var m = array.length, - t, - i; - - while (m) { - i = Math.random() * m-- | 0; - t = array[m]; - array[m] = array[i]; - array[i] = t; - } - - return array; -} - -function enclose(circles) { - var i = 0, n = (circles = shuffle(Array.from(circles))).length, B = [], p, e; - - while (i < n) { - p = circles[i]; - if (e && enclosesWeak(e, p)) ++i; - else e = encloseBasis(B = extendBasis(B, p)), i = 0; - } - - return e; -} - -function extendBasis(B, p) { - var i, j; - - if (enclosesWeakAll(p, B)) return [p]; - - // If we get here then B must have at least one element. - for (i = 0; i < B.length; ++i) { - if (enclosesNot(p, B[i]) - && enclosesWeakAll(encloseBasis2(B[i], p), B)) { - return [B[i], p]; - } - } - - // If we get here then B must have at least two elements. - for (i = 0; i < B.length - 1; ++i) { - for (j = i + 1; j < B.length; ++j) { - if (enclosesNot(encloseBasis2(B[i], B[j]), p) - && enclosesNot(encloseBasis2(B[i], p), B[j]) - && enclosesNot(encloseBasis2(B[j], p), B[i]) - && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { - return [B[i], B[j], p]; - } - } - } - - // If we get here then something is very wrong. - throw new Error; -} - -function enclosesNot(a, b) { - var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; - return dr < 0 || dr * dr < dx * dx + dy * dy; -} - -function enclosesWeak(a, b) { - var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} - -function enclosesWeakAll(a, B) { - for (var i = 0; i < B.length; ++i) { - if (!enclosesWeak(a, B[i])) { - return false; - } - } - return true; -} - -function encloseBasis(B) { - switch (B.length) { - case 1: return encloseBasis1(B[0]); - case 2: return encloseBasis2(B[0], B[1]); - case 3: return encloseBasis3(B[0], B[1], B[2]); - } -} - -function encloseBasis1(a) { - return { - x: a.x, - y: a.y, - r: a.r - }; -} - -function encloseBasis2(a, b) { - var x1 = a.x, y1 = a.y, r1 = a.r, - x2 = b.x, y2 = b.y, r2 = b.r, - x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, - l = Math.sqrt(x21 * x21 + y21 * y21); - return { - x: (x1 + x2 + x21 / l * r21) / 2, - y: (y1 + y2 + y21 / l * r21) / 2, - r: (l + r1 + r2) / 2 - }; -} - -function encloseBasis3(a, b, c) { - var x1 = a.x, y1 = a.y, r1 = a.r, - x2 = b.x, y2 = b.y, r2 = b.r, - x3 = c.x, y3 = c.y, r3 = c.r, - a2 = x1 - x2, - a3 = x1 - x3, - b2 = y1 - y2, - b3 = y1 - y3, - c2 = r2 - r1, - c3 = r3 - r1, - d1 = x1 * x1 + y1 * y1 - r1 * r1, - d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, - d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, - ab = a3 * b2 - a2 * b3, - xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, - xb = (b3 * c2 - b2 * c3) / ab, - ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, - yb = (a2 * c3 - a3 * c2) / ab, - A = xb * xb + yb * yb - 1, - B = 2 * (r1 + xa * xb + ya * yb), - C = xa * xa + ya * ya - r1 * r1, - r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); - return { - x: x1 + xa + xb * r, - y: y1 + ya + yb * r, - r: r - }; -} - -function place(b, a, c) { - var dx = b.x - a.x, x, a2, - dy = b.y - a.y, y, b2, - d2 = dx * dx + dy * dy; - if (d2) { - a2 = a.r + c.r, a2 *= a2; - b2 = b.r + c.r, b2 *= b2; - if (a2 > b2) { - x = (d2 + b2 - a2) / (2 * d2); - y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); - c.x = b.x - x * dx - y * dy; - c.y = b.y - x * dy + y * dx; - } else { - x = (d2 + a2 - b2) / (2 * d2); - y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); - c.x = a.x + x * dx - y * dy; - c.y = a.y + x * dy + y * dx; - } - } else { - c.x = a.x + c.r; - c.y = a.y; - } -} - -function intersects(a, b) { - var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} - -function score(node) { - var a = node._, - b = node.next._, - ab = a.r + b.r, - dx = (a.x * b.r + b.x * a.r) / ab, - dy = (a.y * b.r + b.y * a.r) / ab; - return dx * dx + dy * dy; -} - -function Node(circle) { - this._ = circle; - this.next = null; - this.previous = null; -} - -function packEnclose(circles) { - if (!(n = (circles = array$1(circles)).length)) return 0; - - var a, b, c, n, aa, ca, i, j, k, sj, sk; - - // Place the first circle. - a = circles[0], a.x = 0, a.y = 0; - if (!(n > 1)) return a.r; - - // Place the second circle. - b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; - if (!(n > 2)) return a.r + b.r; - - // Place the third circle. - place(b, a, c = circles[2]); - - // Initialize the front-chain using the first three circles a, b and c. - a = new Node(a), b = new Node(b), c = new Node(c); - a.next = c.previous = b; - b.next = a.previous = c; - c.next = b.previous = a; - - // Attempt to place each remaining circle… - pack: for (i = 3; i < n; ++i) { - place(a._, b._, c = circles[i]), c = new Node(c); - - // Find the closest intersecting circle on the front-chain, if any. - // “Closeness” is determined by linear distance along the front-chain. - // “Ahead” or “behind” is likewise determined by linear distance. - j = b.next, k = a.previous, sj = b._.r, sk = a._.r; - do { - if (sj <= sk) { - if (intersects(j._, c._)) { - b = j, a.next = b, b.previous = a, --i; - continue pack; - } - sj += j._.r, j = j.next; - } else { - if (intersects(k._, c._)) { - a = k, a.next = b, b.previous = a, --i; - continue pack; - } - sk += k._.r, k = k.previous; - } - } while (j !== k.next); - - // Success! Insert the new circle c between a and b. - c.previous = a, c.next = b, a.next = b.previous = b = c; - - // Compute the new closest circle pair to the centroid. - aa = score(a); - while ((c = c.next) !== b) { - if ((ca = score(c)) < aa) { - a = c, aa = ca; - } - } - b = a.next; - } - - // Compute the enclosing circle of the front chain. - a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a); - - // Translate the circles to put the enclosing circle around the origin. - for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; - - return c.r; -} - -function siblings(circles) { - packEnclose(circles); - return circles; -} - -function optional(f) { - return f == null ? null : required(f); -} - -function required(f) { - if (typeof f !== "function") throw new Error; - return f; -} - -function constantZero() { - return 0; -} - -function constant$2(x) { - return function() { - return x; - }; -} - -function defaultRadius(d) { - return Math.sqrt(d.value); -} - -function index$1() { - var radius = null, - dx = 1, - dy = 1, - padding = constantZero; - - function pack(root) { - root.x = dx / 2, root.y = dy / 2; - if (radius) { - root.eachBefore(radiusLeaf(radius)) - .eachAfter(packChildren(padding, 0.5)) - .eachBefore(translateChild(1)); - } else { - root.eachBefore(radiusLeaf(defaultRadius)) - .eachAfter(packChildren(constantZero, 1)) - .eachAfter(packChildren(padding, root.r / Math.min(dx, dy))) - .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); - } - return root; - } - - pack.radius = function(x) { - return arguments.length ? (radius = optional(x), pack) : radius; - }; - - pack.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; - }; - - pack.padding = function(x) { - return arguments.length ? (padding = typeof x === "function" ? x : constant$2(+x), pack) : padding; - }; - - return pack; -} - -function radiusLeaf(radius) { - return function(node) { - if (!node.children) { - node.r = Math.max(0, +radius(node) || 0); - } - }; -} - -function packChildren(padding, k) { - return function(node) { - if (children = node.children) { - var children, - i, - n = children.length, - r = padding(node) * k || 0, - e; - - if (r) for (i = 0; i < n; ++i) children[i].r += r; - e = packEnclose(children); - if (r) for (i = 0; i < n; ++i) children[i].r -= r; - node.r = e + r; - } - }; -} - -function translateChild(k) { - return function(node) { - var parent = node.parent; - node.r *= k; - if (parent) { - node.x = parent.x + k * node.x; - node.y = parent.y + k * node.y; - } - }; -} - -function roundNode(node) { - node.x0 = Math.round(node.x0); - node.y0 = Math.round(node.y0); - node.x1 = Math.round(node.x1); - node.y1 = Math.round(node.y1); -} - -function treemapDice(parent, x0, y0, x1, y1) { - var nodes = parent.children, - node, - i = -1, - n = nodes.length, - k = parent.value && (x1 - x0) / parent.value; - - while (++i < n) { - node = nodes[i], node.y0 = y0, node.y1 = y1; - node.x0 = x0, node.x1 = x0 += node.value * k; - } -} - -function partition() { - var dx = 1, - dy = 1, - padding = 0, - round = false; - - function partition(root) { - var n = root.height + 1; - root.x0 = - root.y0 = padding; - root.x1 = dx; - root.y1 = dy / n; - root.eachBefore(positionNode(dy, n)); - if (round) root.eachBefore(roundNode); - return root; - } - - function positionNode(dy, n) { - return function(node) { - if (node.children) { - treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n); - } - var x0 = node.x0, - y0 = node.y0, - x1 = node.x1 - padding, - y1 = node.y1 - padding; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - }; - } - - partition.round = function(x) { - return arguments.length ? (round = !!x, partition) : round; - }; - - partition.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy]; - }; - - partition.padding = function(x) { - return arguments.length ? (padding = +x, partition) : padding; - }; - - return partition; -} - -var preroot = {depth: -1}, - ambiguous = {}; - -function defaultId(d) { - return d.id; -} - -function defaultParentId(d) { - return d.parentId; -} - -function stratify() { - var id = defaultId, - parentId = defaultParentId; - - function stratify(data) { - var nodes = Array.from(data), - n = nodes.length, - d, - i, - root, - parent, - node, - nodeId, - nodeKey, - nodeByKey = new Map; - - for (i = 0; i < n; ++i) { - d = nodes[i], node = nodes[i] = new Node$1(d); - if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { - nodeKey = node.id = nodeId; - nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); - } - if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) { - node.parent = nodeId; - } - } - - for (i = 0; i < n; ++i) { - node = nodes[i]; - if (nodeId = node.parent) { - parent = nodeByKey.get(nodeId); - if (!parent) throw new Error("missing: " + nodeId); - if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); - if (parent.children) parent.children.push(node); - else parent.children = [node]; - node.parent = parent; - } else { - if (root) throw new Error("multiple roots"); - root = node; - } - } - - if (!root) throw new Error("no root"); - root.parent = preroot; - root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); - root.parent = null; - if (n > 0) throw new Error("cycle"); - - return root; - } - - stratify.id = function(x) { - return arguments.length ? (id = required(x), stratify) : id; - }; - - stratify.parentId = function(x) { - return arguments.length ? (parentId = required(x), stratify) : parentId; - }; - - return stratify; -} - -function defaultSeparation(a, b) { - return a.parent === b.parent ? 1 : 2; -} - -// function radialSeparation(a, b) { -// return (a.parent === b.parent ? 1 : 2) / a.depth; -// } - -// This function is used to traverse the left contour of a subtree (or -// subforest). It returns the successor of v on this contour. This successor is -// either given by the leftmost child of v or by the thread of v. The function -// returns null if and only if v is on the highest level of its subtree. -function nextLeft(v) { - var children = v.children; - return children ? children[0] : v.t; -} - -// This function works analogously to nextLeft. -function nextRight(v) { - var children = v.children; - return children ? children[children.length - 1] : v.t; -} - -// Shifts the current subtree rooted at w+. This is done by increasing -// prelim(w+) and mod(w+) by shift. -function moveSubtree(wm, wp, shift) { - var change = shift / (wp.i - wm.i); - wp.c -= change; - wp.s += shift; - wm.c += change; - wp.z += shift; - wp.m += shift; -} - -// All other shifts, applied to the smaller subtrees between w- and w+, are -// performed by this function. To prepare the shifts, we have to adjust -// change(w+), shift(w+), and change(w-). -function executeShifts(v) { - var shift = 0, - change = 0, - children = v.children, - i = children.length, - w; - while (--i >= 0) { - w = children[i]; - w.z += shift; - w.m += shift; - shift += w.s + (change += w.c); - } -} - -// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, -// returns the specified (default) ancestor. -function nextAncestor(vim, v, ancestor) { - return vim.a.parent === v.parent ? vim.a : ancestor; -} - -function TreeNode(node, i) { - this._ = node; - this.parent = null; - this.children = null; - this.A = null; // default ancestor - this.a = this; // ancestor - this.z = 0; // prelim - this.m = 0; // mod - this.c = 0; // change - this.s = 0; // shift - this.t = null; // thread - this.i = i; // number -} - -TreeNode.prototype = Object.create(Node$1.prototype); - -function treeRoot(root) { - var tree = new TreeNode(root, 0), - node, - nodes = [tree], - child, - children, - i, - n; - - while (node = nodes.pop()) { - if (children = node._.children) { - node.children = new Array(n = children.length); - for (i = n - 1; i >= 0; --i) { - nodes.push(child = node.children[i] = new TreeNode(children[i], i)); - child.parent = node; - } - } - } - - (tree.parent = new TreeNode(null, 0)).children = [tree]; - return tree; -} - -// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm -function tree() { - var separation = defaultSeparation, - dx = 1, - dy = 1, - nodeSize = null; - - function tree(root) { - var t = treeRoot(root); - - // Compute the layout using Buchheim et al.’s algorithm. - t.eachAfter(firstWalk), t.parent.m = -t.z; - t.eachBefore(secondWalk); - - // If a fixed node size is specified, scale x and y. - if (nodeSize) root.eachBefore(sizeNode); - - // If a fixed tree size is specified, scale x and y based on the extent. - // Compute the left-most, right-most, and depth-most nodes for extents. - else { - var left = root, - right = root, - bottom = root; - root.eachBefore(function(node) { - if (node.x < left.x) left = node; - if (node.x > right.x) right = node; - if (node.depth > bottom.depth) bottom = node; - }); - var s = left === right ? 1 : separation(left, right) / 2, - tx = s - left.x, - kx = dx / (right.x + s + tx), - ky = dy / (bottom.depth || 1); - root.eachBefore(function(node) { - node.x = (node.x + tx) * kx; - node.y = node.depth * ky; - }); - } - - return root; - } - - // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is - // applied recursively to the children of v, as well as the function - // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the - // node v is placed to the midpoint of its outermost children. - function firstWalk(v) { - var children = v.children, - siblings = v.parent.children, - w = v.i ? siblings[v.i - 1] : null; - if (children) { - executeShifts(v); - var midpoint = (children[0].z + children[children.length - 1].z) / 2; - if (w) { - v.z = w.z + separation(v._, w._); - v.m = v.z - midpoint; - } else { - v.z = midpoint; - } - } else if (w) { - v.z = w.z + separation(v._, w._); - } - v.parent.A = apportion(v, w, v.parent.A || siblings[0]); - } - - // Computes all real x-coordinates by summing up the modifiers recursively. - function secondWalk(v) { - v._.x = v.z + v.parent.m; - v.m += v.parent.m; - } - - // The core of the algorithm. Here, a new subtree is combined with the - // previous subtrees. Threads are used to traverse the inside and outside - // contours of the left and right subtree up to the highest common level. The - // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the - // superscript o means outside and i means inside, the subscript - means left - // subtree and + means right subtree. For summing up the modifiers along the - // contour, we use respective variables si+, si-, so-, and so+. Whenever two - // nodes of the inside contours conflict, we compute the left one of the - // greatest uncommon ancestors using the function ANCESTOR and call MOVE - // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. - // Finally, we add a new thread (if necessary). - function apportion(v, w, ancestor) { - if (w) { - var vip = v, - vop = v, - vim = w, - vom = vip.parent.children[0], - sip = vip.m, - sop = vop.m, - sim = vim.m, - som = vom.m, - shift; - while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { - vom = nextLeft(vom); - vop = nextRight(vop); - vop.a = v; - shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); - if (shift > 0) { - moveSubtree(nextAncestor(vim, v, ancestor), v, shift); - sip += shift; - sop += shift; - } - sim += vim.m; - sip += vip.m; - som += vom.m; - sop += vop.m; - } - if (vim && !nextRight(vop)) { - vop.t = vim; - vop.m += sim - sop; - } - if (vip && !nextLeft(vom)) { - vom.t = vip; - vom.m += sip - som; - ancestor = v; - } - } - return ancestor; - } - - function sizeNode(node) { - node.x *= dx; - node.y = node.depth * dy; - } - - tree.separation = function(x) { - return arguments.length ? (separation = x, tree) : separation; - }; - - tree.size = function(x) { - return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]); - }; - - tree.nodeSize = function(x) { - return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null); - }; - - return tree; -} - -function treemapSlice(parent, x0, y0, x1, y1) { - var nodes = parent.children, - node, - i = -1, - n = nodes.length, - k = parent.value && (y1 - y0) / parent.value; - - while (++i < n) { - node = nodes[i], node.x0 = x0, node.x1 = x1; - node.y0 = y0, node.y1 = y0 += node.value * k; - } -} - -var phi = (1 + Math.sqrt(5)) / 2; - -function squarifyRatio(ratio, parent, x0, y0, x1, y1) { - var rows = [], - nodes = parent.children, - row, - nodeValue, - i0 = 0, - i1 = 0, - n = nodes.length, - dx, dy, - value = parent.value, - sumValue, - minValue, - maxValue, - newRatio, - minRatio, - alpha, - beta; - - while (i0 < n) { - dx = x1 - x0, dy = y1 - y0; - - // Find the next non-empty node. - do sumValue = nodes[i1++].value; while (!sumValue && i1 < n); - minValue = maxValue = sumValue; - alpha = Math.max(dy / dx, dx / dy) / (value * ratio); - beta = sumValue * sumValue * alpha; - minRatio = Math.max(maxValue / beta, beta / minValue); - - // Keep adding nodes while the aspect ratio maintains or improves. - for (; i1 < n; ++i1) { - sumValue += nodeValue = nodes[i1].value; - if (nodeValue < minValue) minValue = nodeValue; - if (nodeValue > maxValue) maxValue = nodeValue; - beta = sumValue * sumValue * alpha; - newRatio = Math.max(maxValue / beta, beta / minValue); - if (newRatio > minRatio) { sumValue -= nodeValue; break; } - minRatio = newRatio; - } - - // Position and record the row orientation. - rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); - if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); - else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); - value -= sumValue, i0 = i1; - } - - return rows; -} - -var squarify = (function custom(ratio) { - - function squarify(parent, x0, y0, x1, y1) { - squarifyRatio(ratio, parent, x0, y0, x1, y1); - } - - squarify.ratio = function(x) { - return custom((x = +x) > 1 ? x : 1); - }; - - return squarify; -})(phi); - -function index() { - var tile = squarify, - round = false, - dx = 1, - dy = 1, - paddingStack = [0], - paddingInner = constantZero, - paddingTop = constantZero, - paddingRight = constantZero, - paddingBottom = constantZero, - paddingLeft = constantZero; - - function treemap(root) { - root.x0 = - root.y0 = 0; - root.x1 = dx; - root.y1 = dy; - root.eachBefore(positionNode); - paddingStack = [0]; - if (round) root.eachBefore(roundNode); - return root; - } - - function positionNode(node) { - var p = paddingStack[node.depth], - x0 = node.x0 + p, - y0 = node.y0 + p, - x1 = node.x1 - p, - y1 = node.y1 - p; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - if (node.children) { - p = paddingStack[node.depth + 1] = paddingInner(node) / 2; - x0 += paddingLeft(node) - p; - y0 += paddingTop(node) - p; - x1 -= paddingRight(node) - p; - y1 -= paddingBottom(node) - p; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - tile(node, x0, y0, x1, y1); - } - } - - treemap.round = function(x) { - return arguments.length ? (round = !!x, treemap) : round; - }; - - treemap.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; - }; - - treemap.tile = function(x) { - return arguments.length ? (tile = required(x), treemap) : tile; - }; - - treemap.padding = function(x) { - return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); - }; - - treemap.paddingInner = function(x) { - return arguments.length ? (paddingInner = typeof x === "function" ? x : constant$2(+x), treemap) : paddingInner; - }; - - treemap.paddingOuter = function(x) { - return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); - }; - - treemap.paddingTop = function(x) { - return arguments.length ? (paddingTop = typeof x === "function" ? x : constant$2(+x), treemap) : paddingTop; - }; - - treemap.paddingRight = function(x) { - return arguments.length ? (paddingRight = typeof x === "function" ? x : constant$2(+x), treemap) : paddingRight; - }; - - treemap.paddingBottom = function(x) { - return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant$2(+x), treemap) : paddingBottom; - }; - - treemap.paddingLeft = function(x) { - return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant$2(+x), treemap) : paddingLeft; - }; - - return treemap; -} - -function binary(parent, x0, y0, x1, y1) { - var nodes = parent.children, - i, n = nodes.length, - sum, sums = new Array(n + 1); - - for (sums[0] = sum = i = 0; i < n; ++i) { - sums[i + 1] = sum += nodes[i].value; - } - - partition(0, n, parent.value, x0, y0, x1, y1); - - function partition(i, j, value, x0, y0, x1, y1) { - if (i >= j - 1) { - var node = nodes[i]; - node.x0 = x0, node.y0 = y0; - node.x1 = x1, node.y1 = y1; - return; - } - - var valueOffset = sums[i], - valueTarget = (value / 2) + valueOffset, - k = i + 1, - hi = j - 1; - - while (k < hi) { - var mid = k + hi >>> 1; - if (sums[mid] < valueTarget) k = mid + 1; - else hi = mid; - } - - if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; - - var valueLeft = sums[k] - valueOffset, - valueRight = value - valueLeft; - - if ((x1 - x0) > (y1 - y0)) { - var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1; - partition(i, k, valueLeft, x0, y0, xk, y1); - partition(k, j, valueRight, xk, y0, x1, y1); - } else { - var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1; - partition(i, k, valueLeft, x0, y0, x1, yk); - partition(k, j, valueRight, x0, yk, x1, y1); - } - } -} - -function sliceDice(parent, x0, y0, x1, y1) { - (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1); -} - -var resquarify = (function custom(ratio) { - - function resquarify(parent, x0, y0, x1, y1) { - if ((rows = parent._squarify) && (rows.ratio === ratio)) { - var rows, - row, - nodes, - i, - j = -1, - n, - m = rows.length, - value = parent.value; - - while (++j < m) { - row = rows[j], nodes = row.children; - for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; - if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1); - else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); - value -= row.value; - } - } else { - parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); - rows.ratio = ratio; - } - } - - resquarify.ratio = function(x) { - return custom((x = +x) > 1 ? x : 1); - }; - - return resquarify; -})(phi); - -function area$1(polygon) { - var i = -1, - n = polygon.length, - a, - b = polygon[n - 1], - area = 0; - - while (++i < n) { - a = b; - b = polygon[i]; - area += a[1] * b[0] - a[0] * b[1]; - } - - return area / 2; -} - -function centroid(polygon) { - var i = -1, - n = polygon.length, - x = 0, - y = 0, - a, - b = polygon[n - 1], - c, - k = 0; - - while (++i < n) { - a = b; - b = polygon[i]; - k += c = a[0] * b[1] - b[0] * a[1]; - x += (a[0] + b[0]) * c; - y += (a[1] + b[1]) * c; - } - - return k *= 3, [x / k, y / k]; -} - -// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of -// the 3D cross product in a quadrant I Cartesian coordinate system (+x is -// right, +y is up). Returns a positive value if ABC is counter-clockwise, -// negative if clockwise, and zero if the points are collinear. -function cross$1(a, b, c) { - return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); -} - -function lexicographicOrder(a, b) { - return a[0] - b[0] || a[1] - b[1]; -} - -// Computes the upper convex hull per the monotone chain algorithm. -// Assumes points.length >= 3, is sorted by x, unique in y. -// Returns an array of indices into points in left-to-right order. -function computeUpperHullIndexes(points) { - const n = points.length, - indexes = [0, 1]; - let size = 2, i; - - for (i = 2; i < n; ++i) { - while (size > 1 && cross$1(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size; - indexes[size++] = i; - } - - return indexes.slice(0, size); // remove popped points -} - -function hull(points) { - if ((n = points.length) < 3) return null; - - var i, - n, - sortedPoints = new Array(n), - flippedPoints = new Array(n); - - for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i]; - sortedPoints.sort(lexicographicOrder); - for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]]; - - var upperIndexes = computeUpperHullIndexes(sortedPoints), - lowerIndexes = computeUpperHullIndexes(flippedPoints); - - // Construct the hull polygon, removing possible duplicate endpoints. - var skipLeft = lowerIndexes[0] === upperIndexes[0], - skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1], - hull = []; - - // Add upper hull in right-to-l order. - // Then add lower hull in left-to-right order. - for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]); - for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]); - - return hull; -} - -function contains(polygon, point) { - var n = polygon.length, - p = polygon[n - 1], - x = point[0], y = point[1], - x0 = p[0], y0 = p[1], - x1, y1, - inside = false; - - for (var i = 0; i < n; ++i) { - p = polygon[i], x1 = p[0], y1 = p[1]; - if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside; - x0 = x1, y0 = y1; - } - - return inside; -} - -function length(polygon) { - var i = -1, - n = polygon.length, - b = polygon[n - 1], - xa, - ya, - xb = b[0], - yb = b[1], - perimeter = 0; - - while (++i < n) { - xa = xb; - ya = yb; - b = polygon[i]; - xb = b[0]; - yb = b[1]; - xa -= xb; - ya -= yb; - perimeter += Math.hypot(xa, ya); - } - - return perimeter; -} - -var defaultSource = Math.random; - -var uniform = (function sourceRandomUniform(source) { - function randomUniform(min, max) { - min = min == null ? 0 : +min; - max = max == null ? 1 : +max; - if (arguments.length === 1) max = min, min = 0; - else max -= min; - return function() { - return source() * max + min; - }; - } - - randomUniform.source = sourceRandomUniform; - - return randomUniform; -})(defaultSource); - -var int = (function sourceRandomInt(source) { - function randomInt(min, max) { - if (arguments.length < 2) max = min, min = 0; - min = Math.floor(min); - max = Math.floor(max) - min; - return function() { - return Math.floor(source() * max + min); - }; - } - - randomInt.source = sourceRandomInt; - - return randomInt; -})(defaultSource); - -var normal = (function sourceRandomNormal(source) { - function randomNormal(mu, sigma) { - var x, r; - mu = mu == null ? 0 : +mu; - sigma = sigma == null ? 1 : +sigma; - return function() { - var y; - - // If available, use the second previously-generated uniform random. - if (x != null) y = x, x = null; - - // Otherwise, generate a new x and y. - else do { - x = source() * 2 - 1; - y = source() * 2 - 1; - r = x * x + y * y; - } while (!r || r > 1); - - return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r); - }; - } - - randomNormal.source = sourceRandomNormal; - - return randomNormal; -})(defaultSource); - -var logNormal = (function sourceRandomLogNormal(source) { - var N = normal.source(source); - - function randomLogNormal() { - var randomNormal = N.apply(this, arguments); - return function() { - return Math.exp(randomNormal()); - }; - } - - randomLogNormal.source = sourceRandomLogNormal; - - return randomLogNormal; -})(defaultSource); - -var irwinHall = (function sourceRandomIrwinHall(source) { - function randomIrwinHall(n) { - if ((n = +n) <= 0) return () => 0; - return function() { - for (var sum = 0, i = n; i > 1; --i) sum += source(); - return sum + i * source(); - }; - } - - randomIrwinHall.source = sourceRandomIrwinHall; - - return randomIrwinHall; -})(defaultSource); - -var bates = (function sourceRandomBates(source) { - var I = irwinHall.source(source); - - function randomBates(n) { - // use limiting distribution at n === 0 - if ((n = +n) === 0) return source; - var randomIrwinHall = I(n); - return function() { - return randomIrwinHall() / n; - }; - } - - randomBates.source = sourceRandomBates; - - return randomBates; -})(defaultSource); - -var exponential = (function sourceRandomExponential(source) { - function randomExponential(lambda) { - return function() { - return -Math.log1p(-source()) / lambda; - }; - } - - randomExponential.source = sourceRandomExponential; - - return randomExponential; -})(defaultSource); - -var pareto = (function sourceRandomPareto(source) { - function randomPareto(alpha) { - if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha"); - alpha = 1 / -alpha; - return function() { - return Math.pow(1 - source(), alpha); - }; - } - - randomPareto.source = sourceRandomPareto; - - return randomPareto; -})(defaultSource); - -var bernoulli = (function sourceRandomBernoulli(source) { - function randomBernoulli(p) { - if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); - return function() { - return Math.floor(source() + p); - }; - } - - randomBernoulli.source = sourceRandomBernoulli; - - return randomBernoulli; -})(defaultSource); - -var geometric = (function sourceRandomGeometric(source) { - function randomGeometric(p) { - if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); - if (p === 0) return () => Infinity; - if (p === 1) return () => 1; - p = Math.log1p(-p); - return function() { - return 1 + Math.floor(Math.log1p(-source()) / p); - }; - } - - randomGeometric.source = sourceRandomGeometric; - - return randomGeometric; -})(defaultSource); - -var gamma = (function sourceRandomGamma(source) { - var randomNormal = normal.source(source)(); - - function randomGamma(k, theta) { - if ((k = +k) < 0) throw new RangeError("invalid k"); - // degenerate distribution if k === 0 - if (k === 0) return () => 0; - theta = theta == null ? 1 : +theta; - // exponential distribution if k === 1 - if (k === 1) return () => -Math.log1p(-source()) * theta; - - var d = (k < 1 ? k + 1 : k) - 1 / 3, - c = 1 / (3 * Math.sqrt(d)), - multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1; - return function() { - do { - do { - var x = randomNormal(), - v = 1 + c * x; - } while (v <= 0); - v *= v * v; - var u = 1 - source(); - } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v))); - return d * v * multiplier() * theta; - }; - } - - randomGamma.source = sourceRandomGamma; - - return randomGamma; -})(defaultSource); - -var beta = (function sourceRandomBeta(source) { - var G = gamma.source(source); - - function randomBeta(alpha, beta) { - var X = G(alpha), - Y = G(beta); - return function() { - var x = X(); - return x === 0 ? 0 : x / (x + Y()); - }; - } - - randomBeta.source = sourceRandomBeta; - - return randomBeta; -})(defaultSource); - -var binomial = (function sourceRandomBinomial(source) { - var G = geometric.source(source), - B = beta.source(source); - - function randomBinomial(n, p) { - n = +n; - if ((p = +p) >= 1) return () => n; - if (p <= 0) return () => 0; - return function() { - var acc = 0, nn = n, pp = p; - while (nn * pp > 16 && nn * (1 - pp) > 16) { - var i = Math.floor((nn + 1) * pp), - y = B(i, nn - i + 1)(); - if (y <= pp) { - acc += i; - nn -= i; - pp = (pp - y) / (1 - y); - } else { - nn = i - 1; - pp /= y; - } - } - var sign = pp < 0.5, - pFinal = sign ? pp : 1 - pp, - g = G(pFinal); - for (var s = g(), k = 0; s <= nn; ++k) s += g(); - return acc + (sign ? k : nn - k); - }; - } - - randomBinomial.source = sourceRandomBinomial; - - return randomBinomial; -})(defaultSource); - -var weibull = (function sourceRandomWeibull(source) { - function randomWeibull(k, a, b) { - var outerFunc; - if ((k = +k) === 0) { - outerFunc = x => -Math.log(x); - } else { - k = 1 / k; - outerFunc = x => Math.pow(x, k); - } - a = a == null ? 0 : +a; - b = b == null ? 1 : +b; - return function() { - return a + b * outerFunc(-Math.log1p(-source())); - }; - } - - randomWeibull.source = sourceRandomWeibull; - - return randomWeibull; -})(defaultSource); - -var cauchy = (function sourceRandomCauchy(source) { - function randomCauchy(a, b) { - a = a == null ? 0 : +a; - b = b == null ? 1 : +b; - return function() { - return a + b * Math.tan(Math.PI * source()); - }; - } - - randomCauchy.source = sourceRandomCauchy; - - return randomCauchy; -})(defaultSource); - -var logistic = (function sourceRandomLogistic(source) { - function randomLogistic(a, b) { - a = a == null ? 0 : +a; - b = b == null ? 1 : +b; - return function() { - var u = source(); - return a + b * Math.log(u / (1 - u)); - }; - } - - randomLogistic.source = sourceRandomLogistic; - - return randomLogistic; -})(defaultSource); - -var poisson = (function sourceRandomPoisson(source) { - var G = gamma.source(source), - B = binomial.source(source); - - function randomPoisson(lambda) { - return function() { - var acc = 0, l = lambda; - while (l > 16) { - var n = Math.floor(0.875 * l), - t = G(n)(); - if (t > l) return acc + B(n - 1, l / t)(); - acc += n; - l -= t; - } - for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source()); - return acc + k; - }; - } - - randomPoisson.source = sourceRandomPoisson; - - return randomPoisson; -})(defaultSource); - -// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use -const mul = 0x19660D; -const inc = 0x3C6EF35F; -const eps = 1 / 0x100000000; - -function lcg(seed = Math.random()) { - let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0; - return () => (state = mul * state + inc | 0, eps * (state >>> 0)); -} - -function initRange(domain, range) { - switch (arguments.length) { - case 0: break; - case 1: this.range(domain); break; - default: this.range(range).domain(domain); break; - } - return this; -} - -function initInterpolator(domain, interpolator) { - switch (arguments.length) { - case 0: break; - case 1: { - if (typeof domain === "function") this.interpolator(domain); - else this.range(domain); - break; - } - default: { - this.domain(domain); - if (typeof interpolator === "function") this.interpolator(interpolator); - else this.range(interpolator); - break; - } - } - return this; -} - -const implicit = Symbol("implicit"); - -function ordinal() { - var index = new Map(), - domain = [], - range = [], - unknown = implicit; - - function scale(d) { - var key = d + "", i = index.get(key); - if (!i) { - if (unknown !== implicit) return unknown; - index.set(key, i = domain.push(d)); - } - return range[(i - 1) % range.length]; - } - - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = [], index = new Map(); - for (const value of _) { - const key = value + ""; - if (index.has(key)) continue; - index.set(key, domain.push(value)); - } - return scale; - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), scale) : range.slice(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return ordinal(domain, range).unknown(unknown); - }; - - initRange.apply(scale, arguments); - - return scale; -} - -function band() { - var scale = ordinal().unknown(undefined), - domain = scale.domain, - ordinalRange = scale.range, - r0 = 0, - r1 = 1, - step, - bandwidth, - round = false, - paddingInner = 0, - paddingOuter = 0, - align = 0.5; - - delete scale.unknown; - - function rescale() { - var n = domain().length, - reverse = r1 < r0, - start = reverse ? r1 : r0, - stop = reverse ? r0 : r1; - step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); - if (round) step = Math.floor(step); - start += (stop - start - step * (n - paddingInner)) * align; - bandwidth = step * (1 - paddingInner); - if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); - var values = sequence(n).map(function(i) { return start + step * i; }); - return ordinalRange(reverse ? values.reverse() : values); - } - - scale.domain = function(_) { - return arguments.length ? (domain(_), rescale()) : domain(); - }; - - scale.range = function(_) { - return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1]; - }; - - scale.rangeRound = function(_) { - return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); - }; - - scale.bandwidth = function() { - return bandwidth; - }; - - scale.step = function() { - return step; - }; - - scale.round = function(_) { - return arguments.length ? (round = !!_, rescale()) : round; - }; - - scale.padding = function(_) { - return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; - }; - - scale.paddingInner = function(_) { - return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; - }; - - scale.paddingOuter = function(_) { - return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; - }; - - scale.align = function(_) { - return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; - }; - - scale.copy = function() { - return band(domain(), [r0, r1]) - .round(round) - .paddingInner(paddingInner) - .paddingOuter(paddingOuter) - .align(align); - }; - - return initRange.apply(rescale(), arguments); -} - -function pointish(scale) { - var copy = scale.copy; - - scale.padding = scale.paddingOuter; - delete scale.paddingInner; - delete scale.paddingOuter; - - scale.copy = function() { - return pointish(copy()); - }; - - return scale; -} - -function point$4() { - return pointish(band.apply(null, arguments).paddingInner(1)); -} - -function constants(x) { - return function() { - return x; - }; -} - -function number$1(x) { - return +x; -} - -var unit = [0, 1]; - -function identity$3(x) { - return x; -} - -function normalize(a, b) { - return (b -= (a = +a)) - ? function(x) { return (x - a) / b; } - : constants(isNaN(b) ? NaN : 0.5); -} - -function clamper(a, b) { - var t; - if (a > b) t = a, a = b, b = t; - return function(x) { return Math.max(a, Math.min(b, x)); }; -} - -// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1]. -// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b]. -function bimap(domain, range, interpolate) { - var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; - if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0); - else d0 = normalize(d0, d1), r0 = interpolate(r0, r1); - return function(x) { return r0(d0(x)); }; -} - -function polymap(domain, range, interpolate) { - var j = Math.min(domain.length, range.length) - 1, - d = new Array(j), - r = new Array(j), - i = -1; - - // Reverse descending domains. - if (domain[j] < domain[0]) { - domain = domain.slice().reverse(); - range = range.slice().reverse(); - } - - while (++i < j) { - d[i] = normalize(domain[i], domain[i + 1]); - r[i] = interpolate(range[i], range[i + 1]); - } - - return function(x) { - var i = bisectRight(domain, x, 1, j) - 1; - return r[i](d[i](x)); - }; -} - -function copy$1(source, target) { - return target - .domain(source.domain()) - .range(source.range()) - .interpolate(source.interpolate()) - .clamp(source.clamp()) - .unknown(source.unknown()); -} - -function transformer$2() { - var domain = unit, - range = unit, - interpolate = interpolate$2, - transform, - untransform, - unknown, - clamp = identity$3, - piecewise, - output, - input; - - function rescale() { - var n = Math.min(domain.length, range.length); - if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]); - piecewise = n > 2 ? polymap : bimap; - output = input = null; - return scale; - } - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); - } - - scale.invert = function(y) { - return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); - }; - - scale.domain = function(_) { - return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); - }; - - scale.rangeRound = function(_) { - return range = Array.from(_), interpolate = interpolateRound, rescale(); - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3; - }; - - scale.interpolate = function(_) { - return arguments.length ? (interpolate = _, rescale()) : interpolate; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t, u) { - transform = t, untransform = u; - return rescale(); - }; -} - -function continuous() { - return transformer$2()(identity$3, identity$3); -} - -function tickFormat(start, stop, count, specifier) { - var step = tickStep(start, stop, count), - precision; - specifier = formatSpecifier(specifier == null ? ",f" : specifier); - switch (specifier.type) { - case "s": { - var value = Math.max(Math.abs(start), Math.abs(stop)); - if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision; - return exports.formatPrefix(specifier, value); - } - case "": - case "e": - case "g": - case "p": - case "r": { - if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e"); - break; - } - case "f": - case "%": { - if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2; - break; - } - } - return exports.format(specifier); -} - -function linearish(scale) { - var domain = scale.domain; - - scale.ticks = function(count) { - var d = domain(); - return ticks(d[0], d[d.length - 1], count == null ? 10 : count); - }; - - scale.tickFormat = function(count, specifier) { - var d = domain(); - return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); - }; - - scale.nice = function(count) { - if (count == null) count = 10; - - var d = domain(); - var i0 = 0; - var i1 = d.length - 1; - var start = d[i0]; - var stop = d[i1]; - var prestep; - var step; - var maxIter = 10; - - if (stop < start) { - step = start, start = stop, stop = step; - step = i0, i0 = i1, i1 = step; - } - - while (maxIter-- > 0) { - step = tickIncrement(start, stop, count); - if (step === prestep) { - d[i0] = start; - d[i1] = stop; - return domain(d); - } else if (step > 0) { - start = Math.floor(start / step) * step; - stop = Math.ceil(stop / step) * step; - } else if (step < 0) { - start = Math.ceil(start * step) / step; - stop = Math.floor(stop * step) / step; - } else { - break; - } - prestep = step; - } - - return scale; - }; - - return scale; -} - -function linear() { - var scale = continuous(); - - scale.copy = function() { - return copy$1(scale, linear()); - }; - - initRange.apply(scale, arguments); - - return linearish(scale); -} - -function identity$2(domain) { - var unknown; - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : x; - } - - scale.invert = scale; - - scale.domain = scale.range = function(_) { - return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return identity$2(domain).unknown(unknown); - }; - - domain = arguments.length ? Array.from(domain, number$1) : [0, 1]; - - return linearish(scale); -} - -function nice(domain, interval) { - domain = domain.slice(); - - var i0 = 0, - i1 = domain.length - 1, - x0 = domain[i0], - x1 = domain[i1], - t; - - if (x1 < x0) { - t = i0, i0 = i1, i1 = t; - t = x0, x0 = x1, x1 = t; - } - - domain[i0] = interval.floor(x0); - domain[i1] = interval.ceil(x1); - return domain; -} - -function transformLog(x) { - return Math.log(x); -} - -function transformExp(x) { - return Math.exp(x); -} - -function transformLogn(x) { - return -Math.log(-x); -} - -function transformExpn(x) { - return -Math.exp(-x); -} - -function pow10(x) { - return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; -} - -function powp(base) { - return base === 10 ? pow10 - : base === Math.E ? Math.exp - : function(x) { return Math.pow(base, x); }; -} - -function logp(base) { - return base === Math.E ? Math.log - : base === 10 && Math.log10 - || base === 2 && Math.log2 - || (base = Math.log(base), function(x) { return Math.log(x) / base; }); -} - -function reflect(f) { - return function(x) { - return -f(-x); - }; -} - -function loggish(transform) { - var scale = transform(transformLog, transformExp), - domain = scale.domain, - base = 10, - logs, - pows; - - function rescale() { - logs = logp(base), pows = powp(base); - if (domain()[0] < 0) { - logs = reflect(logs), pows = reflect(pows); - transform(transformLogn, transformExpn); - } else { - transform(transformLog, transformExp); - } - return scale; - } - - scale.base = function(_) { - return arguments.length ? (base = +_, rescale()) : base; - }; - - scale.domain = function(_) { - return arguments.length ? (domain(_), rescale()) : domain(); - }; - - scale.ticks = function(count) { - var d = domain(), - u = d[0], - v = d[d.length - 1], - r; - - if (r = v < u) i = u, u = v, v = i; - - var i = logs(u), - j = logs(v), - p, - k, - t, - n = count == null ? 10 : +count, - z = []; - - if (!(base % 1) && j - i < n) { - i = Math.floor(i), j = Math.ceil(j); - if (u > 0) for (; i <= j; ++i) { - for (k = 1, p = pows(i); k < base; ++k) { - t = p * k; - if (t < u) continue; - if (t > v) break; - z.push(t); - } - } else for (; i <= j; ++i) { - for (k = base - 1, p = pows(i); k >= 1; --k) { - t = p * k; - if (t < u) continue; - if (t > v) break; - z.push(t); - } - } - if (z.length * 2 < n) z = ticks(u, v, n); - } else { - z = ticks(i, j, Math.min(j - i, n)).map(pows); - } - - return r ? z.reverse() : z; - }; - - scale.tickFormat = function(count, specifier) { - if (specifier == null) specifier = base === 10 ? ".0e" : ","; - if (typeof specifier !== "function") specifier = exports.format(specifier); - if (count === Infinity) return specifier; - if (count == null) count = 10; - var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? - return function(d) { - var i = d / pows(Math.round(logs(d))); - if (i * base < base - 0.5) i *= base; - return i <= k ? specifier(d) : ""; - }; - }; - - scale.nice = function() { - return domain(nice(domain(), { - floor: function(x) { return pows(Math.floor(logs(x))); }, - ceil: function(x) { return pows(Math.ceil(logs(x))); } - })); - }; - - return scale; -} - -function log() { - var scale = loggish(transformer$2()).domain([1, 10]); - - scale.copy = function() { - return copy$1(scale, log()).base(scale.base()); - }; - - initRange.apply(scale, arguments); - - return scale; -} - -function transformSymlog(c) { - return function(x) { - return Math.sign(x) * Math.log1p(Math.abs(x / c)); - }; -} - -function transformSymexp(c) { - return function(x) { - return Math.sign(x) * Math.expm1(Math.abs(x)) * c; - }; -} - -function symlogish(transform) { - var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); - - scale.constant = function(_) { - return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; - }; - - return linearish(scale); -} - -function symlog() { - var scale = symlogish(transformer$2()); - - scale.copy = function() { - return copy$1(scale, symlog()).constant(scale.constant()); - }; - - return initRange.apply(scale, arguments); -} - -function transformPow(exponent) { - return function(x) { - return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); - }; -} - -function transformSqrt(x) { - return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); -} - -function transformSquare(x) { - return x < 0 ? -x * x : x * x; -} - -function powish(transform) { - var scale = transform(identity$3, identity$3), - exponent = 1; - - function rescale() { - return exponent === 1 ? transform(identity$3, identity$3) - : exponent === 0.5 ? transform(transformSqrt, transformSquare) - : transform(transformPow(exponent), transformPow(1 / exponent)); - } - - scale.exponent = function(_) { - return arguments.length ? (exponent = +_, rescale()) : exponent; - }; - - return linearish(scale); -} - -function pow() { - var scale = powish(transformer$2()); - - scale.copy = function() { - return copy$1(scale, pow()).exponent(scale.exponent()); - }; - - initRange.apply(scale, arguments); - - return scale; -} - -function sqrt$1() { - return pow.apply(null, arguments).exponent(0.5); -} - -function square$1(x) { - return Math.sign(x) * x * x; -} - -function unsquare(x) { - return Math.sign(x) * Math.sqrt(Math.abs(x)); -} - -function radial() { - var squared = continuous(), - range = [0, 1], - round = false, - unknown; - - function scale(x) { - var y = unsquare(squared(x)); - return isNaN(y) ? unknown : round ? Math.round(y) : y; - } - - scale.invert = function(y) { - return squared.invert(square$1(y)); - }; - - scale.domain = function(_) { - return arguments.length ? (squared.domain(_), scale) : squared.domain(); - }; - - scale.range = function(_) { - return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square$1)), scale) : range.slice(); - }; - - scale.rangeRound = function(_) { - return scale.range(_).round(true); - }; - - scale.round = function(_) { - return arguments.length ? (round = !!_, scale) : round; - }; - - scale.clamp = function(_) { - return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return radial(squared.domain(), range) - .round(round) - .clamp(squared.clamp()) - .unknown(unknown); - }; - - initRange.apply(scale, arguments); - - return linearish(scale); -} - -function quantile() { - var domain = [], - range = [], - thresholds = [], - unknown; - - function rescale() { - var i = 0, n = Math.max(1, range.length); - thresholds = new Array(n - 1); - while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n); - return scale; - } - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : range[bisectRight(thresholds, x)]; - } - - scale.invertExtent = function(y) { - var i = range.indexOf(y); - return i < 0 ? [NaN, NaN] : [ - i > 0 ? thresholds[i - 1] : domain[0], - i < thresholds.length ? thresholds[i] : domain[domain.length - 1] - ]; - }; - - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = []; - for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); - domain.sort(ascending$3); - return rescale(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.quantiles = function() { - return thresholds.slice(); - }; - - scale.copy = function() { - return quantile() - .domain(domain) - .range(range) - .unknown(unknown); - }; - - return initRange.apply(scale, arguments); -} - -function quantize() { - var x0 = 0, - x1 = 1, - n = 1, - domain = [0.5], - range = [0, 1], - unknown; - - function scale(x) { - return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; - } - - function rescale() { - var i = -1; - domain = new Array(n); - while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1); - return scale; - } - - scale.domain = function(_) { - return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1]; - }; - - scale.range = function(_) { - return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice(); - }; - - scale.invertExtent = function(y) { - var i = range.indexOf(y); - return i < 0 ? [NaN, NaN] - : i < 1 ? [x0, domain[0]] - : i >= n ? [domain[n - 1], x1] - : [domain[i - 1], domain[i]]; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : scale; - }; - - scale.thresholds = function() { - return domain.slice(); - }; - - scale.copy = function() { - return quantize() - .domain([x0, x1]) - .range(range) - .unknown(unknown); - }; - - return initRange.apply(linearish(scale), arguments); -} - -function threshold() { - var domain = [0.5], - range = [0, 1], - unknown, - n = 1; - - function scale(x) { - return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; - } - - scale.domain = function(_) { - return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice(); - }; - - scale.invertExtent = function(y) { - var i = range.indexOf(y); - return [domain[i - 1], domain[i]]; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return threshold() - .domain(domain) - .range(range) - .unknown(unknown); - }; - - return initRange.apply(scale, arguments); -} - -var t0 = new Date, - t1 = new Date; - -function newInterval(floori, offseti, count, field) { - - function interval(date) { - return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; - } - - interval.floor = function(date) { - return floori(date = new Date(+date)), date; - }; - - interval.ceil = function(date) { - return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; - }; - - interval.round = function(date) { - var d0 = interval(date), - d1 = interval.ceil(date); - return date - d0 < d1 - date ? d0 : d1; - }; - - interval.offset = function(date, step) { - return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; - }; - - interval.range = function(start, stop, step) { - var range = [], previous; - start = interval.ceil(start); - step = step == null ? 1 : Math.floor(step); - if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date - do range.push(previous = new Date(+start)), offseti(start, step), floori(start); - while (previous < start && start < stop); - return range; - }; - - interval.filter = function(test) { - return newInterval(function(date) { - if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); - }, function(date, step) { - if (date >= date) { - if (step < 0) while (++step <= 0) { - while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty - } else while (--step >= 0) { - while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty - } - } - }); - }; - - if (count) { - interval.count = function(start, end) { - t0.setTime(+start), t1.setTime(+end); - floori(t0), floori(t1); - return Math.floor(count(t0, t1)); - }; - - interval.every = function(step) { - step = Math.floor(step); - return !isFinite(step) || !(step > 0) ? null - : !(step > 1) ? interval - : interval.filter(field - ? function(d) { return field(d) % step === 0; } - : function(d) { return interval.count(0, d) % step === 0; }); - }; - } - - return interval; -} - -var millisecond = newInterval(function() { - // noop -}, function(date, step) { - date.setTime(+date + step); -}, function(start, end) { - return end - start; -}); - -// An optimized implementation for this simple case. -millisecond.every = function(k) { - k = Math.floor(k); - if (!isFinite(k) || !(k > 0)) return null; - if (!(k > 1)) return millisecond; - return newInterval(function(date) { - date.setTime(Math.floor(date / k) * k); - }, function(date, step) { - date.setTime(+date + step * k); - }, function(start, end) { - return (end - start) / k; - }); -}; -var milliseconds = millisecond.range; - -const durationSecond = 1000; -const durationMinute = durationSecond * 60; -const durationHour = durationMinute * 60; -const durationDay = durationHour * 24; -const durationWeek = durationDay * 7; -const durationMonth = durationDay * 30; -const durationYear = durationDay * 365; - -var second = newInterval(function(date) { - date.setTime(date - date.getMilliseconds()); -}, function(date, step) { - date.setTime(+date + step * durationSecond); -}, function(start, end) { - return (end - start) / durationSecond; -}, function(date) { - return date.getUTCSeconds(); -}); -var seconds = second.range; - -var minute = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); -}, function(date, step) { - date.setTime(+date + step * durationMinute); -}, function(start, end) { - return (end - start) / durationMinute; -}, function(date) { - return date.getMinutes(); -}); -var minutes = minute.range; - -var hour = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); -}, function(date, step) { - date.setTime(+date + step * durationHour); -}, function(start, end) { - return (end - start) / durationHour; -}, function(date) { - return date.getHours(); -}); -var hours = hour.range; - -var day = newInterval( - date => date.setHours(0, 0, 0, 0), - (date, step) => date.setDate(date.getDate() + step), - (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, - date => date.getDate() - 1 -); -var days = day.range; - -function weekday(i) { - return newInterval(function(date) { - date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setDate(date.getDate() + step * 7); - }, function(start, end) { - return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; - }); -} - -var sunday = weekday(0); -var monday = weekday(1); -var tuesday = weekday(2); -var wednesday = weekday(3); -var thursday = weekday(4); -var friday = weekday(5); -var saturday = weekday(6); - -var sundays = sunday.range; -var mondays = monday.range; -var tuesdays = tuesday.range; -var wednesdays = wednesday.range; -var thursdays = thursday.range; -var fridays = friday.range; -var saturdays = saturday.range; - -var month = newInterval(function(date) { - date.setDate(1); - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setMonth(date.getMonth() + step); -}, function(start, end) { - return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; -}, function(date) { - return date.getMonth(); -}); -var months = month.range; - -var year = newInterval(function(date) { - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setFullYear(date.getFullYear() + step); -}, function(start, end) { - return end.getFullYear() - start.getFullYear(); -}, function(date) { - return date.getFullYear(); -}); - -// An optimized implementation for this simple case. -year.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setFullYear(Math.floor(date.getFullYear() / k) * k); - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setFullYear(date.getFullYear() + step * k); - }); -}; -var years = year.range; - -var utcMinute = newInterval(function(date) { - date.setUTCSeconds(0, 0); -}, function(date, step) { - date.setTime(+date + step * durationMinute); -}, function(start, end) { - return (end - start) / durationMinute; -}, function(date) { - return date.getUTCMinutes(); -}); -var utcMinutes = utcMinute.range; - -var utcHour = newInterval(function(date) { - date.setUTCMinutes(0, 0, 0); -}, function(date, step) { - date.setTime(+date + step * durationHour); -}, function(start, end) { - return (end - start) / durationHour; -}, function(date) { - return date.getUTCHours(); -}); -var utcHours = utcHour.range; - -var utcDay = newInterval(function(date) { - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCDate(date.getUTCDate() + step); -}, function(start, end) { - return (end - start) / durationDay; -}, function(date) { - return date.getUTCDate() - 1; -}); -var utcDays = utcDay.range; - -function utcWeekday(i) { - return newInterval(function(date) { - date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCDate(date.getUTCDate() + step * 7); - }, function(start, end) { - return (end - start) / durationWeek; - }); -} - -var utcSunday = utcWeekday(0); -var utcMonday = utcWeekday(1); -var utcTuesday = utcWeekday(2); -var utcWednesday = utcWeekday(3); -var utcThursday = utcWeekday(4); -var utcFriday = utcWeekday(5); -var utcSaturday = utcWeekday(6); - -var utcSundays = utcSunday.range; -var utcMondays = utcMonday.range; -var utcTuesdays = utcTuesday.range; -var utcWednesdays = utcWednesday.range; -var utcThursdays = utcThursday.range; -var utcFridays = utcFriday.range; -var utcSaturdays = utcSaturday.range; - -var utcMonth = newInterval(function(date) { - date.setUTCDate(1); - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCMonth(date.getUTCMonth() + step); -}, function(start, end) { - return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; -}, function(date) { - return date.getUTCMonth(); -}); -var utcMonths = utcMonth.range; - -var utcYear = newInterval(function(date) { - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step); -}, function(start, end) { - return end.getUTCFullYear() - start.getUTCFullYear(); -}, function(date) { - return date.getUTCFullYear(); -}); - -// An optimized implementation for this simple case. -utcYear.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step * k); - }); -}; -var utcYears = utcYear.range; - -function ticker(year, month, week, day, hour, minute) { - - const tickIntervals = [ - [second, 1, durationSecond], - [second, 5, 5 * durationSecond], - [second, 15, 15 * durationSecond], - [second, 30, 30 * durationSecond], - [minute, 1, durationMinute], - [minute, 5, 5 * durationMinute], - [minute, 15, 15 * durationMinute], - [minute, 30, 30 * durationMinute], - [ hour, 1, durationHour ], - [ hour, 3, 3 * durationHour ], - [ hour, 6, 6 * durationHour ], - [ hour, 12, 12 * durationHour ], - [ day, 1, durationDay ], - [ day, 2, 2 * durationDay ], - [ week, 1, durationWeek ], - [ month, 1, durationMonth ], - [ month, 3, 3 * durationMonth ], - [ year, 1, durationYear ] - ]; - - function ticks(start, stop, count) { - const reverse = stop < start; - if (reverse) [start, stop] = [stop, start]; - const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count); - const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop - return reverse ? ticks.reverse() : ticks; - } - - function tickInterval(start, stop, count) { - const target = Math.abs(stop - start) / count; - const i = bisector(([,, step]) => step).right(tickIntervals, target); - if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count)); - if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1)); - const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; - return t.every(step); - } - - return [ticks, tickInterval]; -} - -const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute); -const [timeTicks, timeTickInterval] = ticker(year, month, sunday, day, hour, minute); - -function localDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); - date.setFullYear(d.y); - return date; - } - return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); -} - -function utcDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); - date.setUTCFullYear(d.y); - return date; - } - return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); -} - -function newDate(y, m, d) { - return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; -} - -function formatLocale(locale) { - var locale_dateTime = locale.dateTime, - locale_date = locale.date, - locale_time = locale.time, - locale_periods = locale.periods, - locale_weekdays = locale.days, - locale_shortWeekdays = locale.shortDays, - locale_months = locale.months, - locale_shortMonths = locale.shortMonths; - - var periodRe = formatRe(locale_periods), - periodLookup = formatLookup(locale_periods), - weekdayRe = formatRe(locale_weekdays), - weekdayLookup = formatLookup(locale_weekdays), - shortWeekdayRe = formatRe(locale_shortWeekdays), - shortWeekdayLookup = formatLookup(locale_shortWeekdays), - monthRe = formatRe(locale_months), - monthLookup = formatLookup(locale_months), - shortMonthRe = formatRe(locale_shortMonths), - shortMonthLookup = formatLookup(locale_shortMonths); - - var formats = { - "a": formatShortWeekday, - "A": formatWeekday, - "b": formatShortMonth, - "B": formatMonth, - "c": null, - "d": formatDayOfMonth, - "e": formatDayOfMonth, - "f": formatMicroseconds, - "g": formatYearISO, - "G": formatFullYearISO, - "H": formatHour24, - "I": formatHour12, - "j": formatDayOfYear, - "L": formatMilliseconds, - "m": formatMonthNumber, - "M": formatMinutes, - "p": formatPeriod, - "q": formatQuarter, - "Q": formatUnixTimestamp, - "s": formatUnixTimestampSeconds, - "S": formatSeconds, - "u": formatWeekdayNumberMonday, - "U": formatWeekNumberSunday, - "V": formatWeekNumberISO, - "w": formatWeekdayNumberSunday, - "W": formatWeekNumberMonday, - "x": null, - "X": null, - "y": formatYear, - "Y": formatFullYear, - "Z": formatZone, - "%": formatLiteralPercent - }; - - var utcFormats = { - "a": formatUTCShortWeekday, - "A": formatUTCWeekday, - "b": formatUTCShortMonth, - "B": formatUTCMonth, - "c": null, - "d": formatUTCDayOfMonth, - "e": formatUTCDayOfMonth, - "f": formatUTCMicroseconds, - "g": formatUTCYearISO, - "G": formatUTCFullYearISO, - "H": formatUTCHour24, - "I": formatUTCHour12, - "j": formatUTCDayOfYear, - "L": formatUTCMilliseconds, - "m": formatUTCMonthNumber, - "M": formatUTCMinutes, - "p": formatUTCPeriod, - "q": formatUTCQuarter, - "Q": formatUnixTimestamp, - "s": formatUnixTimestampSeconds, - "S": formatUTCSeconds, - "u": formatUTCWeekdayNumberMonday, - "U": formatUTCWeekNumberSunday, - "V": formatUTCWeekNumberISO, - "w": formatUTCWeekdayNumberSunday, - "W": formatUTCWeekNumberMonday, - "x": null, - "X": null, - "y": formatUTCYear, - "Y": formatUTCFullYear, - "Z": formatUTCZone, - "%": formatLiteralPercent - }; - - var parses = { - "a": parseShortWeekday, - "A": parseWeekday, - "b": parseShortMonth, - "B": parseMonth, - "c": parseLocaleDateTime, - "d": parseDayOfMonth, - "e": parseDayOfMonth, - "f": parseMicroseconds, - "g": parseYear, - "G": parseFullYear, - "H": parseHour24, - "I": parseHour24, - "j": parseDayOfYear, - "L": parseMilliseconds, - "m": parseMonthNumber, - "M": parseMinutes, - "p": parsePeriod, - "q": parseQuarter, - "Q": parseUnixTimestamp, - "s": parseUnixTimestampSeconds, - "S": parseSeconds, - "u": parseWeekdayNumberMonday, - "U": parseWeekNumberSunday, - "V": parseWeekNumberISO, - "w": parseWeekdayNumberSunday, - "W": parseWeekNumberMonday, - "x": parseLocaleDate, - "X": parseLocaleTime, - "y": parseYear, - "Y": parseFullYear, - "Z": parseZone, - "%": parseLiteralPercent - }; - - // These recursive directive definitions must be deferred. - formats.x = newFormat(locale_date, formats); - formats.X = newFormat(locale_time, formats); - formats.c = newFormat(locale_dateTime, formats); - utcFormats.x = newFormat(locale_date, utcFormats); - utcFormats.X = newFormat(locale_time, utcFormats); - utcFormats.c = newFormat(locale_dateTime, utcFormats); - - function newFormat(specifier, formats) { - return function(date) { - var string = [], - i = -1, - j = 0, - n = specifier.length, - c, - pad, - format; - - if (!(date instanceof Date)) date = new Date(+date); - - while (++i < n) { - if (specifier.charCodeAt(i) === 37) { - string.push(specifier.slice(j, i)); - if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); - else pad = c === "e" ? " " : "0"; - if (format = formats[c]) c = format(date, pad); - string.push(c); - j = i + 1; - } - } - - string.push(specifier.slice(j, i)); - return string.join(""); - }; - } - - function newParse(specifier, Z) { - return function(string) { - var d = newDate(1900, undefined, 1), - i = parseSpecifier(d, specifier, string += "", 0), - week, day$1; - if (i != string.length) return null; - - // If a UNIX timestamp is specified, return it. - if ("Q" in d) return new Date(d.Q); - if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); - - // If this is utcParse, never use the local timezone. - if (Z && !("Z" in d)) d.Z = 0; - - // The am-pm flag is 0 for AM, and 1 for PM. - if ("p" in d) d.H = d.H % 12 + d.p * 12; - - // If the month was not specified, inherit from the quarter. - if (d.m === undefined) d.m = "q" in d ? d.q : 0; - - // Convert day-of-week and week-of-year to day-of-year. - if ("V" in d) { - if (d.V < 1 || d.V > 53) return null; - if (!("w" in d)) d.w = 1; - if ("Z" in d) { - week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay(); - week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week); - week = utcDay.offset(week, (d.V - 1) * 7); - d.y = week.getUTCFullYear(); - d.m = week.getUTCMonth(); - d.d = week.getUTCDate() + (d.w + 6) % 7; - } else { - week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay(); - week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week); - week = day.offset(week, (d.V - 1) * 7); - d.y = week.getFullYear(); - d.m = week.getMonth(); - d.d = week.getDate() + (d.w + 6) % 7; - } - } else if ("W" in d || "U" in d) { - if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; - day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); - d.m = 0; - d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7; - } - - // If a time zone is specified, all fields are interpreted as UTC and then - // offset according to the specified time zone. - if ("Z" in d) { - d.H += d.Z / 100 | 0; - d.M += d.Z % 100; - return utcDate(d); - } - - // Otherwise, all fields are in local time. - return localDate(d); - }; - } - - function parseSpecifier(d, specifier, string, j) { - var i = 0, - n = specifier.length, - m = string.length, - c, - parse; - - while (i < n) { - if (j >= m) return -1; - c = specifier.charCodeAt(i++); - if (c === 37) { - c = specifier.charAt(i++); - parse = parses[c in pads ? specifier.charAt(i++) : c]; - if (!parse || ((j = parse(d, string, j)) < 0)) return -1; - } else if (c != string.charCodeAt(j++)) { - return -1; - } - } - - return j; - } - - function parsePeriod(d, string, i) { - var n = periodRe.exec(string.slice(i)); - return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseShortWeekday(d, string, i) { - var n = shortWeekdayRe.exec(string.slice(i)); - return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseWeekday(d, string, i) { - var n = weekdayRe.exec(string.slice(i)); - return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseShortMonth(d, string, i) { - var n = shortMonthRe.exec(string.slice(i)); - return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseMonth(d, string, i) { - var n = monthRe.exec(string.slice(i)); - return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseLocaleDateTime(d, string, i) { - return parseSpecifier(d, locale_dateTime, string, i); - } - - function parseLocaleDate(d, string, i) { - return parseSpecifier(d, locale_date, string, i); - } - - function parseLocaleTime(d, string, i) { - return parseSpecifier(d, locale_time, string, i); - } - - function formatShortWeekday(d) { - return locale_shortWeekdays[d.getDay()]; - } - - function formatWeekday(d) { - return locale_weekdays[d.getDay()]; - } - - function formatShortMonth(d) { - return locale_shortMonths[d.getMonth()]; - } - - function formatMonth(d) { - return locale_months[d.getMonth()]; - } - - function formatPeriod(d) { - return locale_periods[+(d.getHours() >= 12)]; - } - - function formatQuarter(d) { - return 1 + ~~(d.getMonth() / 3); - } - - function formatUTCShortWeekday(d) { - return locale_shortWeekdays[d.getUTCDay()]; - } - - function formatUTCWeekday(d) { - return locale_weekdays[d.getUTCDay()]; - } - - function formatUTCShortMonth(d) { - return locale_shortMonths[d.getUTCMonth()]; - } - - function formatUTCMonth(d) { - return locale_months[d.getUTCMonth()]; - } - - function formatUTCPeriod(d) { - return locale_periods[+(d.getUTCHours() >= 12)]; - } - - function formatUTCQuarter(d) { - return 1 + ~~(d.getUTCMonth() / 3); - } - - return { - format: function(specifier) { - var f = newFormat(specifier += "", formats); - f.toString = function() { return specifier; }; - return f; - }, - parse: function(specifier) { - var p = newParse(specifier += "", false); - p.toString = function() { return specifier; }; - return p; - }, - utcFormat: function(specifier) { - var f = newFormat(specifier += "", utcFormats); - f.toString = function() { return specifier; }; - return f; - }, - utcParse: function(specifier) { - var p = newParse(specifier += "", true); - p.toString = function() { return specifier; }; - return p; - } - }; -} - -var pads = {"-": "", "_": " ", "0": "0"}, - numberRe = /^\s*\d+/, // note: ignores next directive - percentRe = /^%/, - requoteRe = /[\\^$*+?|[\]().{}]/g; - -function pad(value, fill, width) { - var sign = value < 0 ? "-" : "", - string = (sign ? -value : value) + "", - length = string.length; - return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); -} - -function requote(s) { - return s.replace(requoteRe, "\\$&"); -} - -function formatRe(names) { - return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); -} - -function formatLookup(names) { - return new Map(names.map((name, i) => [name.toLowerCase(), i])); -} - -function parseWeekdayNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.w = +n[0], i + n[0].length) : -1; -} - -function parseWeekdayNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.u = +n[0], i + n[0].length) : -1; -} - -function parseWeekNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.U = +n[0], i + n[0].length) : -1; -} - -function parseWeekNumberISO(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.V = +n[0], i + n[0].length) : -1; -} - -function parseWeekNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.W = +n[0], i + n[0].length) : -1; -} - -function parseFullYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 4)); - return n ? (d.y = +n[0], i + n[0].length) : -1; -} - -function parseYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; -} - -function parseZone(d, string, i) { - var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); - return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; -} - -function parseQuarter(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; -} - -function parseMonthNumber(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.m = n[0] - 1, i + n[0].length) : -1; -} - -function parseDayOfMonth(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.d = +n[0], i + n[0].length) : -1; -} - -function parseDayOfYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; -} - -function parseHour24(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.H = +n[0], i + n[0].length) : -1; -} - -function parseMinutes(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.M = +n[0], i + n[0].length) : -1; -} - -function parseSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.S = +n[0], i + n[0].length) : -1; -} - -function parseMilliseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.L = +n[0], i + n[0].length) : -1; -} - -function parseMicroseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 6)); - return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; -} - -function parseLiteralPercent(d, string, i) { - var n = percentRe.exec(string.slice(i, i + 1)); - return n ? i + n[0].length : -1; -} - -function parseUnixTimestamp(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.Q = +n[0], i + n[0].length) : -1; -} - -function parseUnixTimestampSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.s = +n[0], i + n[0].length) : -1; -} - -function formatDayOfMonth(d, p) { - return pad(d.getDate(), p, 2); -} - -function formatHour24(d, p) { - return pad(d.getHours(), p, 2); -} - -function formatHour12(d, p) { - return pad(d.getHours() % 12 || 12, p, 2); -} - -function formatDayOfYear(d, p) { - return pad(1 + day.count(year(d), d), p, 3); -} - -function formatMilliseconds(d, p) { - return pad(d.getMilliseconds(), p, 3); -} - -function formatMicroseconds(d, p) { - return formatMilliseconds(d, p) + "000"; -} - -function formatMonthNumber(d, p) { - return pad(d.getMonth() + 1, p, 2); -} - -function formatMinutes(d, p) { - return pad(d.getMinutes(), p, 2); -} - -function formatSeconds(d, p) { - return pad(d.getSeconds(), p, 2); -} - -function formatWeekdayNumberMonday(d) { - var day = d.getDay(); - return day === 0 ? 7 : day; -} - -function formatWeekNumberSunday(d, p) { - return pad(sunday.count(year(d) - 1, d), p, 2); -} - -function dISO(d) { - var day = d.getDay(); - return (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); -} - -function formatWeekNumberISO(d, p) { - d = dISO(d); - return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2); -} - -function formatWeekdayNumberSunday(d) { - return d.getDay(); -} - -function formatWeekNumberMonday(d, p) { - return pad(monday.count(year(d) - 1, d), p, 2); -} - -function formatYear(d, p) { - return pad(d.getFullYear() % 100, p, 2); -} - -function formatYearISO(d, p) { - d = dISO(d); - return pad(d.getFullYear() % 100, p, 2); -} - -function formatFullYear(d, p) { - return pad(d.getFullYear() % 10000, p, 4); -} - -function formatFullYearISO(d, p) { - var day = d.getDay(); - d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); - return pad(d.getFullYear() % 10000, p, 4); -} - -function formatZone(d) { - var z = d.getTimezoneOffset(); - return (z > 0 ? "-" : (z *= -1, "+")) - + pad(z / 60 | 0, "0", 2) - + pad(z % 60, "0", 2); -} - -function formatUTCDayOfMonth(d, p) { - return pad(d.getUTCDate(), p, 2); -} - -function formatUTCHour24(d, p) { - return pad(d.getUTCHours(), p, 2); -} - -function formatUTCHour12(d, p) { - return pad(d.getUTCHours() % 12 || 12, p, 2); -} - -function formatUTCDayOfYear(d, p) { - return pad(1 + utcDay.count(utcYear(d), d), p, 3); -} - -function formatUTCMilliseconds(d, p) { - return pad(d.getUTCMilliseconds(), p, 3); -} - -function formatUTCMicroseconds(d, p) { - return formatUTCMilliseconds(d, p) + "000"; -} - -function formatUTCMonthNumber(d, p) { - return pad(d.getUTCMonth() + 1, p, 2); -} - -function formatUTCMinutes(d, p) { - return pad(d.getUTCMinutes(), p, 2); -} - -function formatUTCSeconds(d, p) { - return pad(d.getUTCSeconds(), p, 2); -} - -function formatUTCWeekdayNumberMonday(d) { - var dow = d.getUTCDay(); - return dow === 0 ? 7 : dow; -} - -function formatUTCWeekNumberSunday(d, p) { - return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); -} - -function UTCdISO(d) { - var day = d.getUTCDay(); - return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); -} - -function formatUTCWeekNumberISO(d, p) { - d = UTCdISO(d); - return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); -} - -function formatUTCWeekdayNumberSunday(d) { - return d.getUTCDay(); -} - -function formatUTCWeekNumberMonday(d, p) { - return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); -} - -function formatUTCYear(d, p) { - return pad(d.getUTCFullYear() % 100, p, 2); -} - -function formatUTCYearISO(d, p) { - d = UTCdISO(d); - return pad(d.getUTCFullYear() % 100, p, 2); -} - -function formatUTCFullYear(d, p) { - return pad(d.getUTCFullYear() % 10000, p, 4); -} - -function formatUTCFullYearISO(d, p) { - var day = d.getUTCDay(); - d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); - return pad(d.getUTCFullYear() % 10000, p, 4); -} - -function formatUTCZone() { - return "+0000"; -} - -function formatLiteralPercent() { - return "%"; -} - -function formatUnixTimestamp(d) { - return +d; -} - -function formatUnixTimestampSeconds(d) { - return Math.floor(+d / 1000); -} - -var locale; -exports.timeFormat = void 0; -exports.timeParse = void 0; -exports.utcFormat = void 0; -exports.utcParse = void 0; - -defaultLocale({ - dateTime: "%x, %X", - date: "%-m/%-d/%Y", - time: "%-I:%M:%S %p", - periods: ["AM", "PM"], - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] -}); - -function defaultLocale(definition) { - locale = formatLocale(definition); - exports.timeFormat = locale.format; - exports.timeParse = locale.parse; - exports.utcFormat = locale.utcFormat; - exports.utcParse = locale.utcParse; - return locale; -} - -var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; - -function formatIsoNative(date) { - return date.toISOString(); -} - -var formatIso = Date.prototype.toISOString - ? formatIsoNative - : exports.utcFormat(isoSpecifier); - -function parseIsoNative(string) { - var date = new Date(string); - return isNaN(date) ? null : date; -} - -var parseIso = +new Date("2000-01-01T00:00:00.000Z") - ? parseIsoNative - : exports.utcParse(isoSpecifier); - -function date(t) { - return new Date(t); -} - -function number(t) { - return t instanceof Date ? +t : +new Date(+t); -} - -function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { - var scale = continuous(), - invert = scale.invert, - domain = scale.domain; - - var formatMillisecond = format(".%L"), - formatSecond = format(":%S"), - formatMinute = format("%I:%M"), - formatHour = format("%I %p"), - formatDay = format("%a %d"), - formatWeek = format("%b %d"), - formatMonth = format("%B"), - formatYear = format("%Y"); - - function tickFormat(date) { - return (second(date) < date ? formatMillisecond - : minute(date) < date ? formatSecond - : hour(date) < date ? formatMinute - : day(date) < date ? formatHour - : month(date) < date ? (week(date) < date ? formatDay : formatWeek) - : year(date) < date ? formatMonth - : formatYear)(date); - } - - scale.invert = function(y) { - return new Date(invert(y)); - }; - - scale.domain = function(_) { - return arguments.length ? domain(Array.from(_, number)) : domain().map(date); - }; - - scale.ticks = function(interval) { - var d = domain(); - return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); - }; - - scale.tickFormat = function(count, specifier) { - return specifier == null ? tickFormat : format(specifier); - }; - - scale.nice = function(interval) { - var d = domain(); - if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); - return interval ? domain(nice(d, interval)) : scale; - }; - - scale.copy = function() { - return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); - }; - - return scale; -} - -function time() { - return initRange.apply(calendar(timeTicks, timeTickInterval, year, month, sunday, day, hour, minute, second, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments); -} - -function utcTime() { - return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments); -} - -function transformer$1() { - var x0 = 0, - x1 = 1, - t0, - t1, - k10, - transform, - interpolator = identity$3, - clamp = false, - unknown; - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x)); - } - - scale.domain = function(_) { - return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1]; - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = !!_, scale) : clamp; - }; - - scale.interpolator = function(_) { - return arguments.length ? (interpolator = _, scale) : interpolator; - }; - - function range(interpolate) { - return function(_) { - var r0, r1; - return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)]; - }; - } - - scale.range = range(interpolate$2); - - scale.rangeRound = range(interpolateRound); - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t) { - transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0); - return scale; - }; -} - -function copy(source, target) { - return target - .domain(source.domain()) - .interpolator(source.interpolator()) - .clamp(source.clamp()) - .unknown(source.unknown()); -} - -function sequential() { - var scale = linearish(transformer$1()(identity$3)); - - scale.copy = function() { - return copy(scale, sequential()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialLog() { - var scale = loggish(transformer$1()).domain([1, 10]); - - scale.copy = function() { - return copy(scale, sequentialLog()).base(scale.base()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialSymlog() { - var scale = symlogish(transformer$1()); - - scale.copy = function() { - return copy(scale, sequentialSymlog()).constant(scale.constant()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialPow() { - var scale = powish(transformer$1()); - - scale.copy = function() { - return copy(scale, sequentialPow()).exponent(scale.exponent()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialSqrt() { - return sequentialPow.apply(null, arguments).exponent(0.5); -} - -function sequentialQuantile() { - var domain = [], - interpolator = identity$3; - - function scale(x) { - if (x != null && !isNaN(x = +x)) return interpolator((bisectRight(domain, x, 1) - 1) / (domain.length - 1)); - } - - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = []; - for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); - domain.sort(ascending$3); - return scale; - }; - - scale.interpolator = function(_) { - return arguments.length ? (interpolator = _, scale) : interpolator; - }; - - scale.range = function() { - return domain.map((d, i) => interpolator(i / (domain.length - 1))); - }; - - scale.quantiles = function(n) { - return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n)); - }; - - scale.copy = function() { - return sequentialQuantile(interpolator).domain(domain); - }; - - return initInterpolator.apply(scale, arguments); -} - -function transformer() { - var x0 = 0, - x1 = 0.5, - x2 = 1, - s = 1, - t0, - t1, - t2, - k10, - k21, - interpolator = identity$3, - transform, - clamp = false, - unknown; - - function scale(x) { - return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x)); - } - - scale.domain = function(_) { - return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2]; - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = !!_, scale) : clamp; - }; - - scale.interpolator = function(_) { - return arguments.length ? (interpolator = _, scale) : interpolator; - }; - - function range(interpolate) { - return function(_) { - var r0, r1, r2; - return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)]; - }; - } - - scale.range = range(interpolate$2); - - scale.rangeRound = range(interpolateRound); - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t) { - transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1; - return scale; - }; -} - -function diverging$1() { - var scale = linearish(transformer()(identity$3)); - - scale.copy = function() { - return copy(scale, diverging$1()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingLog() { - var scale = loggish(transformer()).domain([0.1, 1, 10]); - - scale.copy = function() { - return copy(scale, divergingLog()).base(scale.base()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingSymlog() { - var scale = symlogish(transformer()); - - scale.copy = function() { - return copy(scale, divergingSymlog()).constant(scale.constant()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingPow() { - var scale = powish(transformer()); - - scale.copy = function() { - return copy(scale, divergingPow()).exponent(scale.exponent()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingSqrt() { - return divergingPow.apply(null, arguments).exponent(0.5); -} - -function colors(specifier) { - var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; - while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); - return colors; -} - -var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"); - -var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"); - -var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"); - -var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"); - -var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"); - -var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"); - -var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"); - -var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"); - -var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"); - -var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"); - -var ramp$1 = scheme => rgbBasis(scheme[scheme.length - 1]); - -var scheme$q = new Array(3).concat( - "d8b365f5f5f55ab4ac", - "a6611adfc27d80cdc1018571", - "a6611adfc27df5f5f580cdc1018571", - "8c510ad8b365f6e8c3c7eae55ab4ac01665e", - "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", - "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", - "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", - "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", - "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30" -).map(colors); - -var BrBG = ramp$1(scheme$q); - -var scheme$p = new Array(3).concat( - "af8dc3f7f7f77fbf7b", - "7b3294c2a5cfa6dba0008837", - "7b3294c2a5cff7f7f7a6dba0008837", - "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", - "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", - "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", - "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", - "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", - "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b" -).map(colors); - -var PRGn = ramp$1(scheme$p); - -var scheme$o = new Array(3).concat( - "e9a3c9f7f7f7a1d76a", - "d01c8bf1b6dab8e1864dac26", - "d01c8bf1b6daf7f7f7b8e1864dac26", - "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", - "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", - "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", - "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", - "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", - "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419" -).map(colors); - -var PiYG = ramp$1(scheme$o); - -var scheme$n = new Array(3).concat( - "998ec3f7f7f7f1a340", - "5e3c99b2abd2fdb863e66101", - "5e3c99b2abd2f7f7f7fdb863e66101", - "542788998ec3d8daebfee0b6f1a340b35806", - "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", - "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", - "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", - "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", - "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08" -).map(colors); - -var PuOr = ramp$1(scheme$n); - -var scheme$m = new Array(3).concat( - "ef8a62f7f7f767a9cf", - "ca0020f4a58292c5de0571b0", - "ca0020f4a582f7f7f792c5de0571b0", - "b2182bef8a62fddbc7d1e5f067a9cf2166ac", - "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", - "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", - "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", - "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", - "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061" -).map(colors); - -var RdBu = ramp$1(scheme$m); - -var scheme$l = new Array(3).concat( - "ef8a62ffffff999999", - "ca0020f4a582bababa404040", - "ca0020f4a582ffffffbababa404040", - "b2182bef8a62fddbc7e0e0e09999994d4d4d", - "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", - "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", - "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", - "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", - "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a" -).map(colors); - -var RdGy = ramp$1(scheme$l); - -var scheme$k = new Array(3).concat( - "fc8d59ffffbf91bfdb", - "d7191cfdae61abd9e92c7bb6", - "d7191cfdae61ffffbfabd9e92c7bb6", - "d73027fc8d59fee090e0f3f891bfdb4575b4", - "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", - "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", - "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", - "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", - "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695" -).map(colors); - -var RdYlBu = ramp$1(scheme$k); - -var scheme$j = new Array(3).concat( - "fc8d59ffffbf91cf60", - "d7191cfdae61a6d96a1a9641", - "d7191cfdae61ffffbfa6d96a1a9641", - "d73027fc8d59fee08bd9ef8b91cf601a9850", - "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", - "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", - "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", - "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", - "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837" -).map(colors); - -var RdYlGn = ramp$1(scheme$j); - -var scheme$i = new Array(3).concat( - "fc8d59ffffbf99d594", - "d7191cfdae61abdda42b83ba", - "d7191cfdae61ffffbfabdda42b83ba", - "d53e4ffc8d59fee08be6f59899d5943288bd", - "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", - "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", - "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", - "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", - "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2" -).map(colors); - -var Spectral = ramp$1(scheme$i); - -var scheme$h = new Array(3).concat( - "e5f5f999d8c92ca25f", - "edf8fbb2e2e266c2a4238b45", - "edf8fbb2e2e266c2a42ca25f006d2c", - "edf8fbccece699d8c966c2a42ca25f006d2c", - "edf8fbccece699d8c966c2a441ae76238b45005824", - "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", - "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b" -).map(colors); - -var BuGn = ramp$1(scheme$h); - -var scheme$g = new Array(3).concat( - "e0ecf49ebcda8856a7", - "edf8fbb3cde38c96c688419d", - "edf8fbb3cde38c96c68856a7810f7c", - "edf8fbbfd3e69ebcda8c96c68856a7810f7c", - "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", - "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", - "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b" -).map(colors); - -var BuPu = ramp$1(scheme$g); - -var scheme$f = new Array(3).concat( - "e0f3dba8ddb543a2ca", - "f0f9e8bae4bc7bccc42b8cbe", - "f0f9e8bae4bc7bccc443a2ca0868ac", - "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", - "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", - "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", - "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081" -).map(colors); - -var GnBu = ramp$1(scheme$f); - -var scheme$e = new Array(3).concat( - "fee8c8fdbb84e34a33", - "fef0d9fdcc8afc8d59d7301f", - "fef0d9fdcc8afc8d59e34a33b30000", - "fef0d9fdd49efdbb84fc8d59e34a33b30000", - "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", - "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", - "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000" -).map(colors); - -var OrRd = ramp$1(scheme$e); - -var scheme$d = new Array(3).concat( - "ece2f0a6bddb1c9099", - "f6eff7bdc9e167a9cf02818a", - "f6eff7bdc9e167a9cf1c9099016c59", - "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", - "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", - "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", - "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636" -).map(colors); - -var PuBuGn = ramp$1(scheme$d); - -var scheme$c = new Array(3).concat( - "ece7f2a6bddb2b8cbe", - "f1eef6bdc9e174a9cf0570b0", - "f1eef6bdc9e174a9cf2b8cbe045a8d", - "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", - "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", - "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", - "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858" -).map(colors); - -var PuBu = ramp$1(scheme$c); - -var scheme$b = new Array(3).concat( - "e7e1efc994c7dd1c77", - "f1eef6d7b5d8df65b0ce1256", - "f1eef6d7b5d8df65b0dd1c77980043", - "f1eef6d4b9dac994c7df65b0dd1c77980043", - "f1eef6d4b9dac994c7df65b0e7298ace125691003f", - "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", - "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f" -).map(colors); - -var PuRd = ramp$1(scheme$b); - -var scheme$a = new Array(3).concat( - "fde0ddfa9fb5c51b8a", - "feebe2fbb4b9f768a1ae017e", - "feebe2fbb4b9f768a1c51b8a7a0177", - "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", - "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", - "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", - "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a" -).map(colors); - -var RdPu = ramp$1(scheme$a); - -var scheme$9 = new Array(3).concat( - "edf8b17fcdbb2c7fb8", - "ffffcca1dab441b6c4225ea8", - "ffffcca1dab441b6c42c7fb8253494", - "ffffccc7e9b47fcdbb41b6c42c7fb8253494", - "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", - "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", - "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58" -).map(colors); - -var YlGnBu = ramp$1(scheme$9); - -var scheme$8 = new Array(3).concat( - "f7fcb9addd8e31a354", - "ffffccc2e69978c679238443", - "ffffccc2e69978c67931a354006837", - "ffffccd9f0a3addd8e78c67931a354006837", - "ffffccd9f0a3addd8e78c67941ab5d238443005a32", - "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", - "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529" -).map(colors); - -var YlGn = ramp$1(scheme$8); - -var scheme$7 = new Array(3).concat( - "fff7bcfec44fd95f0e", - "ffffd4fed98efe9929cc4c02", - "ffffd4fed98efe9929d95f0e993404", - "ffffd4fee391fec44ffe9929d95f0e993404", - "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", - "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", - "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506" -).map(colors); - -var YlOrBr = ramp$1(scheme$7); - -var scheme$6 = new Array(3).concat( - "ffeda0feb24cf03b20", - "ffffb2fecc5cfd8d3ce31a1c", - "ffffb2fecc5cfd8d3cf03b20bd0026", - "ffffb2fed976feb24cfd8d3cf03b20bd0026", - "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", - "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", - "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026" -).map(colors); - -var YlOrRd = ramp$1(scheme$6); - -var scheme$5 = new Array(3).concat( - "deebf79ecae13182bd", - "eff3ffbdd7e76baed62171b5", - "eff3ffbdd7e76baed63182bd08519c", - "eff3ffc6dbef9ecae16baed63182bd08519c", - "eff3ffc6dbef9ecae16baed64292c62171b5084594", - "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", - "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b" -).map(colors); - -var Blues = ramp$1(scheme$5); - -var scheme$4 = new Array(3).concat( - "e5f5e0a1d99b31a354", - "edf8e9bae4b374c476238b45", - "edf8e9bae4b374c47631a354006d2c", - "edf8e9c7e9c0a1d99b74c47631a354006d2c", - "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", - "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", - "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b" -).map(colors); - -var Greens = ramp$1(scheme$4); - -var scheme$3 = new Array(3).concat( - "f0f0f0bdbdbd636363", - "f7f7f7cccccc969696525252", - "f7f7f7cccccc969696636363252525", - "f7f7f7d9d9d9bdbdbd969696636363252525", - "f7f7f7d9d9d9bdbdbd969696737373525252252525", - "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", - "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000" -).map(colors); - -var Greys = ramp$1(scheme$3); - -var scheme$2 = new Array(3).concat( - "efedf5bcbddc756bb1", - "f2f0f7cbc9e29e9ac86a51a3", - "f2f0f7cbc9e29e9ac8756bb154278f", - "f2f0f7dadaebbcbddc9e9ac8756bb154278f", - "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", - "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", - "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d" -).map(colors); - -var Purples = ramp$1(scheme$2); - -var scheme$1 = new Array(3).concat( - "fee0d2fc9272de2d26", - "fee5d9fcae91fb6a4acb181d", - "fee5d9fcae91fb6a4ade2d26a50f15", - "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", - "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", - "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", - "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d" -).map(colors); - -var Reds = ramp$1(scheme$1); - -var scheme = new Array(3).concat( - "fee6cefdae6be6550d", - "feeddefdbe85fd8d3cd94701", - "feeddefdbe85fd8d3ce6550da63603", - "feeddefdd0a2fdae6bfd8d3ce6550da63603", - "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", - "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", - "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704" -).map(colors); - -var Oranges = ramp$1(scheme); - -function cividis(t) { - t = Math.max(0, Math.min(1, t)); - return "rgb(" - + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", " - + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", " - + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67))))))) - + ")"; -} - -var cubehelix = cubehelixLong(cubehelix$3(300, 0.5, 0.0), cubehelix$3(-240, 0.5, 1.0)); - -var warm = cubehelixLong(cubehelix$3(-100, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); - -var cool = cubehelixLong(cubehelix$3(260, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); - -var c$2 = cubehelix$3(); - -function rainbow(t) { - if (t < 0 || t > 1) t -= Math.floor(t); - var ts = Math.abs(t - 0.5); - c$2.h = 360 * t - 100; - c$2.s = 1.5 - 1.5 * ts; - c$2.l = 0.8 - 0.9 * ts; - return c$2 + ""; -} - -var c$1 = rgb(), - pi_1_3 = Math.PI / 3, - pi_2_3 = Math.PI * 2 / 3; - -function sinebow(t) { - var x; - t = (0.5 - t) * Math.PI; - c$1.r = 255 * (x = Math.sin(t)) * x; - c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x; - c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x; - return c$1 + ""; -} - -function turbo(t) { - t = Math.max(0, Math.min(1, t)); - return "rgb(" - + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", " - + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", " - + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66))))))) - + ")"; -} - -function ramp(range) { - var n = range.length; - return function(t) { - return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; - }; -} - -var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")); - -var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")); - -var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")); - -var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")); - -function constant$1(x) { - return function constant() { - return x; - }; -} - -var abs = Math.abs; -var atan2 = Math.atan2; -var cos = Math.cos; -var max = Math.max; -var min = Math.min; -var sin = Math.sin; -var sqrt = Math.sqrt; - -var epsilon = 1e-12; -var pi = Math.PI; -var halfPi = pi / 2; -var tau = 2 * pi; - -function acos(x) { - return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); -} - -function asin(x) { - return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); -} - -function arcInnerRadius(d) { - return d.innerRadius; -} - -function arcOuterRadius(d) { - return d.outerRadius; -} - -function arcStartAngle(d) { - return d.startAngle; -} - -function arcEndAngle(d) { - return d.endAngle; -} - -function arcPadAngle(d) { - return d && d.padAngle; // Note: optional! -} - -function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { - var x10 = x1 - x0, y10 = y1 - y0, - x32 = x3 - x2, y32 = y3 - y2, - t = y32 * x10 - x32 * y10; - if (t * t < epsilon) return; - t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; - return [x0 + t * x10, y0 + t * y10]; -} - -// Compute perpendicular offset line of length rc. -// http://mathworld.wolfram.com/Circle-LineIntersection.html -function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { - var x01 = x0 - x1, - y01 = y0 - y1, - lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), - ox = lo * y01, - oy = -lo * x01, - x11 = x0 + ox, - y11 = y0 + oy, - x10 = x1 + ox, - y10 = y1 + oy, - x00 = (x11 + x10) / 2, - y00 = (y11 + y10) / 2, - dx = x10 - x11, - dy = y10 - y11, - d2 = dx * dx + dy * dy, - r = r1 - rc, - D = x11 * y10 - x10 * y11, - d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), - cx0 = (D * dy - dx * d) / d2, - cy0 = (-D * dx - dy * d) / d2, - cx1 = (D * dy + dx * d) / d2, - cy1 = (-D * dx + dy * d) / d2, - dx0 = cx0 - x00, - dy0 = cy0 - y00, - dx1 = cx1 - x00, - dy1 = cy1 - y00; - - // Pick the closer of the two intersection points. - // TODO Is there a faster way to determine which intersection to use? - if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; - - return { - cx: cx0, - cy: cy0, - x01: -ox, - y01: -oy, - x11: cx0 * (r1 / r - 1), - y11: cy0 * (r1 / r - 1) - }; -} - -function arc() { - var innerRadius = arcInnerRadius, - outerRadius = arcOuterRadius, - cornerRadius = constant$1(0), - padRadius = null, - startAngle = arcStartAngle, - endAngle = arcEndAngle, - padAngle = arcPadAngle, - context = null; - - function arc() { - var buffer, - r, - r0 = +innerRadius.apply(this, arguments), - r1 = +outerRadius.apply(this, arguments), - a0 = startAngle.apply(this, arguments) - halfPi, - a1 = endAngle.apply(this, arguments) - halfPi, - da = abs(a1 - a0), - cw = a1 > a0; - - if (!context) context = buffer = path(); - - // Ensure that the outer radius is always larger than the inner radius. - if (r1 < r0) r = r1, r1 = r0, r0 = r; - - // Is it a point? - if (!(r1 > epsilon)) context.moveTo(0, 0); - - // Or is it a circle or annulus? - else if (da > tau - epsilon) { - context.moveTo(r1 * cos(a0), r1 * sin(a0)); - context.arc(0, 0, r1, a0, a1, !cw); - if (r0 > epsilon) { - context.moveTo(r0 * cos(a1), r0 * sin(a1)); - context.arc(0, 0, r0, a1, a0, cw); - } - } - - // Or is it a circular or annular sector? - else { - var a01 = a0, - a11 = a1, - a00 = a0, - a10 = a1, - da0 = da, - da1 = da, - ap = padAngle.apply(this, arguments) / 2, - rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), - rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), - rc0 = rc, - rc1 = rc, - t0, - t1; - - // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. - if (rp > epsilon) { - var p0 = asin(rp / r0 * sin(ap)), - p1 = asin(rp / r1 * sin(ap)); - if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; - else da0 = 0, a00 = a10 = (a0 + a1) / 2; - if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; - else da1 = 0, a01 = a11 = (a0 + a1) / 2; - } - - var x01 = r1 * cos(a01), - y01 = r1 * sin(a01), - x10 = r0 * cos(a10), - y10 = r0 * sin(a10); - - // Apply rounded corners? - if (rc > epsilon) { - var x11 = r1 * cos(a11), - y11 = r1 * sin(a11), - x00 = r0 * cos(a00), - y00 = r0 * sin(a00), - oc; - - // Restrict the corner radius according to the sector angle. - if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) { - var ax = x01 - oc[0], - ay = y01 - oc[1], - bx = x11 - oc[0], - by = y11 - oc[1], - kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), - lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); - rc0 = min(rc, (r0 - lc) / (kc - 1)); - rc1 = min(rc, (r1 - lc) / (kc + 1)); - } - } - - // Is the sector collapsed to a line? - if (!(da1 > epsilon)) context.moveTo(x01, y01); - - // Does the sector’s outer ring have rounded corners? - else if (rc1 > epsilon) { - t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); - t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); - - context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); - - // Have the corners merged? - if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); - - // Otherwise, draw the two corners and the ring. - else { - context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); - context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); - context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); - } - } - - // Or is the outer ring just a circular arc? - else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); - - // Is there no inner ring, and it’s a circular sector? - // Or perhaps it’s an annular sector collapsed due to padding? - if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); - - // Does the sector’s inner ring (or point) have rounded corners? - else if (rc0 > epsilon) { - t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); - t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); - - context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); - - // Have the corners merged? - if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); - - // Otherwise, draw the two corners and the ring. - else { - context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); - context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); - context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); - } - } - - // Or is the inner ring just a circular arc? - else context.arc(0, 0, r0, a10, a00, cw); - } - - context.closePath(); - - if (buffer) return context = null, buffer + "" || null; - } - - arc.centroid = function() { - var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, - a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; - return [cos(a) * r, sin(a) * r]; - }; - - arc.innerRadius = function(_) { - return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : innerRadius; - }; - - arc.outerRadius = function(_) { - return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : outerRadius; - }; - - arc.cornerRadius = function(_) { - return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : cornerRadius; - }; - - arc.padRadius = function(_) { - return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), arc) : padRadius; - }; - - arc.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : startAngle; - }; - - arc.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : endAngle; - }; - - arc.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : padAngle; - }; - - arc.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), arc) : context; - }; - - return arc; -} - -var slice = Array.prototype.slice; - -function array(x) { - return typeof x === "object" && "length" in x - ? x // Array, TypedArray, NodeList, array-like - : Array.from(x); // Map, Set, iterable, string, or anything else -} - -function Linear(context) { - this._context = context; -} - -Linear.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; // proceed - default: this._context.lineTo(x, y); break; - } - } -}; - -function curveLinear(context) { - return new Linear(context); -} - -function x(p) { - return p[0]; -} - -function y(p) { - return p[1]; -} - -function line(x$1, y$1) { - var defined = constant$1(true), - context = null, - curve = curveLinear, - output = null; - - x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant$1(x$1); - y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant$1(y$1); - - function line(data) { - var i, - n = (data = array(data)).length, - d, - defined0 = false, - buffer; - - if (context == null) output = curve(buffer = path()); - - for (i = 0; i <= n; ++i) { - if (!(i < n && defined(d = data[i], i, data)) === defined0) { - if (defined0 = !defined0) output.lineStart(); - else output.lineEnd(); - } - if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); - } - - if (buffer) return output = null, buffer + "" || null; - } - - line.x = function(_) { - return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), line) : x$1; - }; - - line.y = function(_) { - return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), line) : y$1; - }; - - line.defined = function(_) { - return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), line) : defined; - }; - - line.curve = function(_) { - return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; - }; - - line.context = function(_) { - return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; - }; - - return line; -} - -function area(x0, y0, y1) { - var x1 = null, - defined = constant$1(true), - context = null, - curve = curveLinear, - output = null; - - x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant$1(+x0); - y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant$1(0) : constant$1(+y0); - y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant$1(+y1); - - function area(data) { - var i, - j, - k, - n = (data = array(data)).length, - d, - defined0 = false, - buffer, - x0z = new Array(n), - y0z = new Array(n); - - if (context == null) output = curve(buffer = path()); - - for (i = 0; i <= n; ++i) { - if (!(i < n && defined(d = data[i], i, data)) === defined0) { - if (defined0 = !defined0) { - j = i; - output.areaStart(); - output.lineStart(); - } else { - output.lineEnd(); - output.lineStart(); - for (k = i - 1; k >= j; --k) { - output.point(x0z[k], y0z[k]); - } - output.lineEnd(); - output.areaEnd(); - } - } - if (defined0) { - x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); - output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); - } - } - - if (buffer) return output = null, buffer + "" || null; - } - - function arealine() { - return line().defined(defined).curve(curve).context(context); - } - - area.x = function(_) { - return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), x1 = null, area) : x0; - }; - - area.x0 = function(_) { - return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), area) : x0; - }; - - area.x1 = function(_) { - return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : x1; - }; - - area.y = function(_) { - return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), y1 = null, area) : y0; - }; - - area.y0 = function(_) { - return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), area) : y0; - }; - - area.y1 = function(_) { - return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : y1; - }; - - area.lineX0 = - area.lineY0 = function() { - return arealine().x(x0).y(y0); - }; - - area.lineY1 = function() { - return arealine().x(x0).y(y1); - }; - - area.lineX1 = function() { - return arealine().x(x1).y(y0); - }; - - area.defined = function(_) { - return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), area) : defined; - }; - - area.curve = function(_) { - return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; - }; - - area.context = function(_) { - return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; - }; - - return area; -} - -function descending$1(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; -} - -function identity$1(d) { - return d; -} - -function pie() { - var value = identity$1, - sortValues = descending$1, - sort = null, - startAngle = constant$1(0), - endAngle = constant$1(tau), - padAngle = constant$1(0); - - function pie(data) { - var i, - n = (data = array(data)).length, - j, - k, - sum = 0, - index = new Array(n), - arcs = new Array(n), - a0 = +startAngle.apply(this, arguments), - da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), - a1, - p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), - pa = p * (da < 0 ? -1 : 1), - v; - - for (i = 0; i < n; ++i) { - if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { - sum += v; - } - } - - // Optionally sort the arcs by previously-computed values or by data. - if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); - else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); - - // Compute the arcs! They are stored in the original data's order. - for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { - j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { - data: data[j], - index: i, - value: v, - startAngle: a0, - endAngle: a1, - padAngle: p - }; - } - - return arcs; - } - - pie.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), pie) : value; - }; - - pie.sortValues = function(_) { - return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; - }; - - pie.sort = function(_) { - return arguments.length ? (sort = _, sortValues = null, pie) : sort; - }; - - pie.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : startAngle; - }; - - pie.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : endAngle; - }; - - pie.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : padAngle; - }; - - return pie; -} - -var curveRadialLinear = curveRadial$1(curveLinear); - -function Radial(curve) { - this._curve = curve; -} - -Radial.prototype = { - areaStart: function() { - this._curve.areaStart(); - }, - areaEnd: function() { - this._curve.areaEnd(); - }, - lineStart: function() { - this._curve.lineStart(); - }, - lineEnd: function() { - this._curve.lineEnd(); - }, - point: function(a, r) { - this._curve.point(r * Math.sin(a), r * -Math.cos(a)); - } -}; - -function curveRadial$1(curve) { - - function radial(context) { - return new Radial(curve(context)); - } - - radial._curve = curve; - - return radial; -} - -function lineRadial(l) { - var c = l.curve; - - l.angle = l.x, delete l.x; - l.radius = l.y, delete l.y; - - l.curve = function(_) { - return arguments.length ? c(curveRadial$1(_)) : c()._curve; - }; - - return l; -} - -function lineRadial$1() { - return lineRadial(line().curve(curveRadialLinear)); -} - -function areaRadial() { - var a = area().curve(curveRadialLinear), - c = a.curve, - x0 = a.lineX0, - x1 = a.lineX1, - y0 = a.lineY0, - y1 = a.lineY1; - - a.angle = a.x, delete a.x; - a.startAngle = a.x0, delete a.x0; - a.endAngle = a.x1, delete a.x1; - a.radius = a.y, delete a.y; - a.innerRadius = a.y0, delete a.y0; - a.outerRadius = a.y1, delete a.y1; - a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; - a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; - a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; - a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; - - a.curve = function(_) { - return arguments.length ? c(curveRadial$1(_)) : c()._curve; - }; - - return a; -} - -function pointRadial(x, y) { - return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; -} - -function linkSource(d) { - return d.source; -} - -function linkTarget(d) { - return d.target; -} - -function link(curve) { - var source = linkSource, - target = linkTarget, - x$1 = x, - y$1 = y, - context = null; - - function link() { - var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); - if (!context) context = buffer = path(); - curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); - if (buffer) return context = null, buffer + "" || null; - } - - link.source = function(_) { - return arguments.length ? (source = _, link) : source; - }; - - link.target = function(_) { - return arguments.length ? (target = _, link) : target; - }; - - link.x = function(_) { - return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), link) : x$1; - }; - - link.y = function(_) { - return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), link) : y$1; - }; - - link.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), link) : context; - }; - - return link; -} - -function curveHorizontal(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); -} - -function curveVertical(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1); -} - -function curveRadial(context, x0, y0, x1, y1) { - var p0 = pointRadial(x0, y0), - p1 = pointRadial(x0, y0 = (y0 + y1) / 2), - p2 = pointRadial(x1, y0), - p3 = pointRadial(x1, y1); - context.moveTo(p0[0], p0[1]); - context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]); -} - -function linkHorizontal() { - return link(curveHorizontal); -} - -function linkVertical() { - return link(curveVertical); -} - -function linkRadial() { - var l = link(curveRadial); - l.angle = l.x, delete l.x; - l.radius = l.y, delete l.y; - return l; -} - -var circle = { - draw: function(context, size) { - var r = Math.sqrt(size / pi); - context.moveTo(r, 0); - context.arc(0, 0, r, 0, tau); - } -}; - -var cross = { - draw: function(context, size) { - var r = Math.sqrt(size / 5) / 2; - context.moveTo(-3 * r, -r); - context.lineTo(-r, -r); - context.lineTo(-r, -3 * r); - context.lineTo(r, -3 * r); - context.lineTo(r, -r); - context.lineTo(3 * r, -r); - context.lineTo(3 * r, r); - context.lineTo(r, r); - context.lineTo(r, 3 * r); - context.lineTo(-r, 3 * r); - context.lineTo(-r, r); - context.lineTo(-3 * r, r); - context.closePath(); - } -}; - -var tan30 = Math.sqrt(1 / 3), - tan30_2 = tan30 * 2; - -var diamond = { - draw: function(context, size) { - var y = Math.sqrt(size / tan30_2), - x = y * tan30; - context.moveTo(0, -y); - context.lineTo(x, 0); - context.lineTo(0, y); - context.lineTo(-x, 0); - context.closePath(); - } -}; - -var ka = 0.89081309152928522810, - kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), - kx = Math.sin(tau / 10) * kr, - ky = -Math.cos(tau / 10) * kr; - -var star = { - draw: function(context, size) { - var r = Math.sqrt(size * ka), - x = kx * r, - y = ky * r; - context.moveTo(0, -r); - context.lineTo(x, y); - for (var i = 1; i < 5; ++i) { - var a = tau * i / 5, - c = Math.cos(a), - s = Math.sin(a); - context.lineTo(s * r, -c * r); - context.lineTo(c * x - s * y, s * x + c * y); - } - context.closePath(); - } -}; - -var square = { - draw: function(context, size) { - var w = Math.sqrt(size), - x = -w / 2; - context.rect(x, x, w, w); - } -}; - -var sqrt3 = Math.sqrt(3); - -var triangle = { - draw: function(context, size) { - var y = -Math.sqrt(size / (sqrt3 * 3)); - context.moveTo(0, y * 2); - context.lineTo(-sqrt3 * y, -y); - context.lineTo(sqrt3 * y, -y); - context.closePath(); - } -}; - -var c = -0.5, - s = Math.sqrt(3) / 2, - k = 1 / Math.sqrt(12), - a = (k / 2 + 1) * 3; - -var wye = { - draw: function(context, size) { - var r = Math.sqrt(size / a), - x0 = r / 2, - y0 = r * k, - x1 = x0, - y1 = r * k + r, - x2 = -x1, - y2 = y1; - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - context.lineTo(c * x0 - s * y0, s * x0 + c * y0); - context.lineTo(c * x1 - s * y1, s * x1 + c * y1); - context.lineTo(c * x2 - s * y2, s * x2 + c * y2); - context.lineTo(c * x0 + s * y0, c * y0 - s * x0); - context.lineTo(c * x1 + s * y1, c * y1 - s * x1); - context.lineTo(c * x2 + s * y2, c * y2 - s * x2); - context.closePath(); - } -}; - -var symbols = [ - circle, - cross, - diamond, - square, - star, - triangle, - wye -]; - -function symbol(type, size) { - var context = null; - type = typeof type === "function" ? type : constant$1(type || circle); - size = typeof size === "function" ? size : constant$1(size === undefined ? 64 : +size); - - function symbol() { - var buffer; - if (!context) context = buffer = path(); - type.apply(this, arguments).draw(context, +size.apply(this, arguments)); - if (buffer) return context = null, buffer + "" || null; - } - - symbol.type = function(_) { - return arguments.length ? (type = typeof _ === "function" ? _ : constant$1(_), symbol) : type; - }; - - symbol.size = function(_) { - return arguments.length ? (size = typeof _ === "function" ? _ : constant$1(+_), symbol) : size; - }; - - symbol.context = function(_) { - return arguments.length ? (context = _ == null ? null : _, symbol) : context; - }; - - return symbol; -} - -function noop() {} - -function point$3(that, x, y) { - that._context.bezierCurveTo( - (2 * that._x0 + that._x1) / 3, - (2 * that._y0 + that._y1) / 3, - (that._x0 + 2 * that._x1) / 3, - (that._y0 + 2 * that._y1) / 3, - (that._x0 + 4 * that._x1 + x) / 6, - (that._y0 + 4 * that._y1 + y) / 6 - ); -} - -function Basis(context) { - this._context = context; -} - -Basis.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 3: point$3(this, this._x1, this._y1); // proceed - case 2: this._context.lineTo(this._x1, this._y1); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed - default: point$3(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; - -function basis(context) { - return new Basis(context); -} - -function BasisClosed(context) { - this._context = context; -} - -BasisClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = - this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x2, this._y2); - this._context.closePath(); - break; - } - case 2: { - this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); - this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x2, this._y2); - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._x2 = x, this._y2 = y; break; - case 1: this._point = 2; this._x3 = x, this._y3 = y; break; - case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; - default: point$3(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; - -function basisClosed(context) { - return new BasisClosed(context); -} - -function BasisOpen(context) { - this._context = context; -} - -BasisOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = NaN; - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; - case 3: this._point = 4; // proceed - default: point$3(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; - -function basisOpen(context) { - return new BasisOpen(context); -} - -class Bump { - constructor(context, x) { - this._context = context; - this._x = x; - } - areaStart() { - this._line = 0; - } - areaEnd() { - this._line = NaN; - } - lineStart() { - this._point = 0; - } - lineEnd() { - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - } - point(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: { - this._point = 1; - if (this._line) this._context.lineTo(x, y); - else this._context.moveTo(x, y); - break; - } - case 1: this._point = 2; // proceed - default: { - if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y); - else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y); - break; - } - } - this._x0 = x, this._y0 = y; - } -} - -function bumpX(context) { - return new Bump(context, true); -} - -function bumpY(context) { - return new Bump(context, false); -} - -function Bundle(context, beta) { - this._basis = new Basis(context); - this._beta = beta; -} - -Bundle.prototype = { - lineStart: function() { - this._x = []; - this._y = []; - this._basis.lineStart(); - }, - lineEnd: function() { - var x = this._x, - y = this._y, - j = x.length - 1; - - if (j > 0) { - var x0 = x[0], - y0 = y[0], - dx = x[j] - x0, - dy = y[j] - y0, - i = -1, - t; - - while (++i <= j) { - t = i / j; - this._basis.point( - this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), - this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) - ); - } - } - - this._x = this._y = null; - this._basis.lineEnd(); - }, - point: function(x, y) { - this._x.push(+x); - this._y.push(+y); - } -}; - -var bundle = (function custom(beta) { - - function bundle(context) { - return beta === 1 ? new Basis(context) : new Bundle(context, beta); - } - - bundle.beta = function(beta) { - return custom(+beta); - }; - - return bundle; -})(0.85); - -function point$2(that, x, y) { - that._context.bezierCurveTo( - that._x1 + that._k * (that._x2 - that._x0), - that._y1 + that._k * (that._y2 - that._y0), - that._x2 + that._k * (that._x1 - x), - that._y2 + that._k * (that._y1 - y), - that._x2, - that._y2 - ); -} - -function Cardinal(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} - -Cardinal.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x2, this._y2); break; - case 3: point$2(this, this._x1, this._y1); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; this._x1 = x, this._y1 = y; break; - case 2: this._point = 3; // proceed - default: point$2(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinal = (function custom(tension) { - - function cardinal(context) { - return new Cardinal(context, tension); - } - - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function CardinalClosed(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} - -CardinalClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = - this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 2: { - this._context.lineTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - this.point(this._x5, this._y5); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._x3 = x, this._y3 = y; break; - case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; - case 2: this._point = 3; this._x5 = x, this._y5 = y; break; - default: point$2(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinalClosed = (function custom(tension) { - - function cardinal(context) { - return new CardinalClosed(context, tension); - } - - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function CardinalOpen(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} - -CardinalOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; - case 3: this._point = 4; // proceed - default: point$2(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinalOpen = (function custom(tension) { - - function cardinal(context) { - return new CardinalOpen(context, tension); - } - - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function point$1(that, x, y) { - var x1 = that._x1, - y1 = that._y1, - x2 = that._x2, - y2 = that._y2; - - if (that._l01_a > epsilon) { - var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, - n = 3 * that._l01_a * (that._l01_a + that._l12_a); - x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; - y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; - } - - if (that._l23_a > epsilon) { - var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, - m = 3 * that._l23_a * (that._l23_a + that._l12_a); - x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; - y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; - } - - that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); -} - -function CatmullRom(context, alpha) { - this._context = context; - this._alpha = alpha; -} - -CatmullRom.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._l01_a = this._l12_a = this._l23_a = - this._l01_2a = this._l12_2a = this._l23_2a = - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x2, this._y2); break; - case 3: this.point(this._x2, this._y2); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; // proceed - default: point$1(this, x, y); break; - } - - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRom = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function CatmullRomClosed(context, alpha) { - this._context = context; - this._alpha = alpha; -} - -CatmullRomClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = - this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; - this._l01_a = this._l12_a = this._l23_a = - this._l01_2a = this._l12_2a = this._l23_2a = - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 2: { - this._context.lineTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - this.point(this._x5, this._y5); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; this._x3 = x, this._y3 = y; break; - case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; - case 2: this._point = 3; this._x5 = x, this._y5 = y; break; - default: point$1(this, x, y); break; - } - - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRomClosed = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function CatmullRomOpen(context, alpha) { - this._context = context; - this._alpha = alpha; -} - -CatmullRomOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._l01_a = this._l12_a = this._l23_a = - this._l01_2a = this._l12_2a = this._l23_2a = - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; - case 3: this._point = 4; // proceed - default: point$1(this, x, y); break; - } - - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRomOpen = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function LinearClosed(context) { - this._context = context; -} - -LinearClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._point) this._context.closePath(); - }, - point: function(x, y) { - x = +x, y = +y; - if (this._point) this._context.lineTo(x, y); - else this._point = 1, this._context.moveTo(x, y); - } -}; - -function linearClosed(context) { - return new LinearClosed(context); -} - -function sign(x) { - return x < 0 ? -1 : 1; -} - -// Calculate the slopes of the tangents (Hermite-type interpolation) based on -// the following paper: Steffen, M. 1990. A Simple Method for Monotonic -// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. -// NOV(II), P. 443, 1990. -function slope3(that, x2, y2) { - var h0 = that._x1 - that._x0, - h1 = x2 - that._x1, - s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), - s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), - p = (s0 * h1 + s1 * h0) / (h0 + h1); - return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; -} - -// Calculate a one-sided slope. -function slope2(that, t) { - var h = that._x1 - that._x0; - return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; -} - -// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations -// "you can express cubic Hermite interpolation in terms of cubic Bézier curves -// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". -function point(that, t0, t1) { - var x0 = that._x0, - y0 = that._y0, - x1 = that._x1, - y1 = that._y1, - dx = (x1 - x0) / 3; - that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); -} - -function MonotoneX(context) { - this._context = context; -} - -MonotoneX.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = - this._t0 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x1, this._y1); break; - case 3: point(this, this._t0, slope2(this, this._t0)); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - var t1 = NaN; - - x = +x, y = +y; - if (x === this._x1 && y === this._y1) return; // Ignore coincident points. - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break; - default: point(this, this._t0, t1 = slope3(this, x, y)); break; - } - - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - this._t0 = t1; - } -}; - -function MonotoneY(context) { - this._context = new ReflectContext(context); -} - -(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { - MonotoneX.prototype.point.call(this, y, x); -}; - -function ReflectContext(context) { - this._context = context; -} - -ReflectContext.prototype = { - moveTo: function(x, y) { this._context.moveTo(y, x); }, - closePath: function() { this._context.closePath(); }, - lineTo: function(x, y) { this._context.lineTo(y, x); }, - bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } -}; - -function monotoneX(context) { - return new MonotoneX(context); -} - -function monotoneY(context) { - return new MonotoneY(context); -} - -function Natural(context) { - this._context = context; -} - -Natural.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = []; - this._y = []; - }, - lineEnd: function() { - var x = this._x, - y = this._y, - n = x.length; - - if (n) { - this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); - if (n === 2) { - this._context.lineTo(x[1], y[1]); - } else { - var px = controlPoints(x), - py = controlPoints(y); - for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { - this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); - } - } - } - - if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); - this._line = 1 - this._line; - this._x = this._y = null; - }, - point: function(x, y) { - this._x.push(+x); - this._y.push(+y); - } -}; - -// See https://www.particleincell.com/2012/bezier-splines/ for derivation. -function controlPoints(x) { - var i, - n = x.length - 1, - m, - a = new Array(n), - b = new Array(n), - r = new Array(n); - a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; - for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; - a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; - for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; - a[n - 1] = r[n - 1] / b[n - 1]; - for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; - b[n - 1] = (x[n] + a[n - 1]) / 2; - for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; - return [a, b]; -} - -function natural(context) { - return new Natural(context); -} - -function Step(context, t) { - this._context = context; - this._t = t; -} - -Step.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = this._y = NaN; - this._point = 0; - }, - lineEnd: function() { - if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; // proceed - default: { - if (this._t <= 0) { - this._context.lineTo(this._x, y); - this._context.lineTo(x, y); - } else { - var x1 = this._x * (1 - this._t) + x * this._t; - this._context.lineTo(x1, this._y); - this._context.lineTo(x1, y); - } - break; - } - } - this._x = x, this._y = y; - } -}; - -function step(context) { - return new Step(context, 0.5); -} - -function stepBefore(context) { - return new Step(context, 0); -} - -function stepAfter(context) { - return new Step(context, 1); -} - -function none$1(series, order) { - if (!((n = series.length) > 1)) return; - for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { - s0 = s1, s1 = series[order[i]]; - for (j = 0; j < m; ++j) { - s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; - } - } -} - -function none(series) { - var n = series.length, o = new Array(n); - while (--n >= 0) o[n] = n; - return o; -} - -function stackValue(d, key) { - return d[key]; -} - -function stackSeries(key) { - const series = []; - series.key = key; - return series; -} - -function stack() { - var keys = constant$1([]), - order = none, - offset = none$1, - value = stackValue; - - function stack(data) { - var sz = Array.from(keys.apply(this, arguments), stackSeries), - i, n = sz.length, j = -1, - oz; - - for (const d of data) { - for (i = 0, ++j; i < n; ++i) { - (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d; - } - } - - for (i = 0, oz = array(order(sz)); i < n; ++i) { - sz[oz[i]].index = i; - } - - offset(sz, oz); - return sz; - } - - stack.keys = function(_) { - return arguments.length ? (keys = typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : keys; - }; - - stack.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), stack) : value; - }; - - stack.order = function(_) { - return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : order; - }; - - stack.offset = function(_) { - return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset; - }; - - return stack; -} - -function expand(series, order) { - if (!((n = series.length) > 0)) return; - for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { - for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; - if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; - } - none$1(series, order); -} - -function diverging(series, order) { - if (!((n = series.length) > 0)) return; - for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { - for (yp = yn = 0, i = 0; i < n; ++i) { - if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { - d[0] = yp, d[1] = yp += dy; - } else if (dy < 0) { - d[1] = yn, d[0] = yn += dy; - } else { - d[0] = 0, d[1] = dy; - } - } - } -} - -function silhouette(series, order) { - if (!((n = series.length) > 0)) return; - for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { - for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; - s0[j][1] += s0[j][0] = -y / 2; - } - none$1(series, order); -} - -function wiggle(series, order) { - if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; - for (var y = 0, j = 1, s0, m, n; j < m; ++j) { - for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { - var si = series[order[i]], - sij0 = si[j][1] || 0, - sij1 = si[j - 1][1] || 0, - s3 = (sij0 - sij1) / 2; - for (var k = 0; k < i; ++k) { - var sk = series[order[k]], - skj0 = sk[j][1] || 0, - skj1 = sk[j - 1][1] || 0; - s3 += skj0 - skj1; - } - s1 += sij0, s2 += s3 * sij0; - } - s0[j - 1][1] += s0[j - 1][0] = y; - if (s1) y -= s2 / s1; - } - s0[j - 1][1] += s0[j - 1][0] = y; - none$1(series, order); -} - -function appearance(series) { - var peaks = series.map(peak); - return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); -} - -function peak(series) { - var i = -1, j = 0, n = series.length, vi, vj = -Infinity; - while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; - return j; -} - -function ascending(series) { - var sums = series.map(sum); - return none(series).sort(function(a, b) { return sums[a] - sums[b]; }); -} - -function sum(series) { - var s = 0, i = -1, n = series.length, v; - while (++i < n) if (v = +series[i][1]) s += v; - return s; -} - -function descending(series) { - return ascending(series).reverse(); -} - -function insideOut(series) { - var n = series.length, - i, - j, - sums = series.map(sum), - order = appearance(series), - top = 0, - bottom = 0, - tops = [], - bottoms = []; - - for (i = 0; i < n; ++i) { - j = order[i]; - if (top < bottom) { - top += sums[j]; - tops.push(j); - } else { - bottom += sums[j]; - bottoms.push(j); - } - } - - return bottoms.reverse().concat(tops); -} - -function reverse(series) { - return none(series).reverse(); -} - -var constant = x => () => x; - -function ZoomEvent(type, { - sourceEvent, - target, - transform, - dispatch -}) { - Object.defineProperties(this, { - type: {value: type, enumerable: true, configurable: true}, - sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, - target: {value: target, enumerable: true, configurable: true}, - transform: {value: transform, enumerable: true, configurable: true}, - _: {value: dispatch} - }); -} - -function Transform(k, x, y) { - this.k = k; - this.x = x; - this.y = y; -} - -Transform.prototype = { - constructor: Transform, - scale: function(k) { - return k === 1 ? this : new Transform(this.k * k, this.x, this.y); - }, - translate: function(x, y) { - return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); - }, - apply: function(point) { - return [point[0] * this.k + this.x, point[1] * this.k + this.y]; - }, - applyX: function(x) { - return x * this.k + this.x; - }, - applyY: function(y) { - return y * this.k + this.y; - }, - invert: function(location) { - return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; - }, - invertX: function(x) { - return (x - this.x) / this.k; - }, - invertY: function(y) { - return (y - this.y) / this.k; - }, - rescaleX: function(x) { - return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); - }, - rescaleY: function(y) { - return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); - }, - toString: function() { - return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; - } -}; - -var identity = new Transform(1, 0, 0); - -transform.prototype = Transform.prototype; - -function transform(node) { - while (!node.__zoom) if (!(node = node.parentNode)) return identity; - return node.__zoom; -} - -function nopropagation(event) { - event.stopImmediatePropagation(); -} - -function noevent(event) { - event.preventDefault(); - event.stopImmediatePropagation(); -} - -// Ignore right-click, since that should open the context menu. -// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event -function defaultFilter(event) { - return (!event.ctrlKey || event.type === 'wheel') && !event.button; -} - -function defaultExtent() { - var e = this; - if (e instanceof SVGElement) { - e = e.ownerSVGElement || e; - if (e.hasAttribute("viewBox")) { - e = e.viewBox.baseVal; - return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; - } - return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; - } - return [[0, 0], [e.clientWidth, e.clientHeight]]; -} - -function defaultTransform() { - return this.__zoom || identity; -} - -function defaultWheelDelta(event) { - return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1); -} - -function defaultTouchable() { - return navigator.maxTouchPoints || ("ontouchstart" in this); -} - -function defaultConstrain(transform, extent, translateExtent) { - var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], - dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], - dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], - dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1]; - return transform.translate( - dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), - dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) - ); -} - -function zoom() { - var filter = defaultFilter, - extent = defaultExtent, - constrain = defaultConstrain, - wheelDelta = defaultWheelDelta, - touchable = defaultTouchable, - scaleExtent = [0, Infinity], - translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], - duration = 250, - interpolate = interpolateZoom, - listeners = dispatch("start", "zoom", "end"), - touchstarting, - touchfirst, - touchending, - touchDelay = 500, - wheelDelay = 150, - clickDistance2 = 0, - tapDistance = 10; - - function zoom(selection) { - selection - .property("__zoom", defaultTransform) - .on("wheel.zoom", wheeled) - .on("mousedown.zoom", mousedowned) - .on("dblclick.zoom", dblclicked) - .filter(touchable) - .on("touchstart.zoom", touchstarted) - .on("touchmove.zoom", touchmoved) - .on("touchend.zoom touchcancel.zoom", touchended) - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - zoom.transform = function(collection, transform, point, event) { - var selection = collection.selection ? collection.selection() : collection; - selection.property("__zoom", defaultTransform); - if (collection !== selection) { - schedule(collection, transform, point, event); - } else { - selection.interrupt().each(function() { - gesture(this, arguments) - .event(event) - .start() - .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform) - .end(); - }); - } - }; - - zoom.scaleBy = function(selection, k, p, event) { - zoom.scaleTo(selection, function() { - var k0 = this.__zoom.k, - k1 = typeof k === "function" ? k.apply(this, arguments) : k; - return k0 * k1; - }, p, event); - }; - - zoom.scaleTo = function(selection, k, p, event) { - zoom.transform(selection, function() { - var e = extent.apply(this, arguments), - t0 = this.__zoom, - p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, - p1 = t0.invert(p0), - k1 = typeof k === "function" ? k.apply(this, arguments) : k; - return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); - }, p, event); - }; - - zoom.translateBy = function(selection, x, y, event) { - zoom.transform(selection, function() { - return constrain(this.__zoom.translate( - typeof x === "function" ? x.apply(this, arguments) : x, - typeof y === "function" ? y.apply(this, arguments) : y - ), extent.apply(this, arguments), translateExtent); - }, null, event); - }; - - zoom.translateTo = function(selection, x, y, p, event) { - zoom.transform(selection, function() { - var e = extent.apply(this, arguments), - t = this.__zoom, - p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; - return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate( - typeof x === "function" ? -x.apply(this, arguments) : -x, - typeof y === "function" ? -y.apply(this, arguments) : -y - ), e, translateExtent); - }, p, event); - }; - - function scale(transform, k) { - k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); - return k === transform.k ? transform : new Transform(k, transform.x, transform.y); - } - - function translate(transform, p0, p1) { - var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k; - return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y); - } - - function centroid(extent) { - return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2]; - } - - function schedule(transition, transform, point, event) { - transition - .on("start.zoom", function() { gesture(this, arguments).event(event).start(); }) - .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); }) - .tween("zoom", function() { - var that = this, - args = arguments, - g = gesture(that, args).event(event), - e = extent.apply(that, args), - p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, - w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), - a = that.__zoom, - b = typeof transform === "function" ? transform.apply(that, args) : transform, - i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); - return function(t) { - if (t === 1) t = b; // Avoid rounding error on end. - else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); } - g.zoom(null, t); - }; - }); - } - - function gesture(that, args, clean) { - return (!clean && that.__zooming) || new Gesture(that, args); - } - - function Gesture(that, args) { - this.that = that; - this.args = args; - this.active = 0; - this.sourceEvent = null; - this.extent = extent.apply(that, args); - this.taps = 0; - } - - Gesture.prototype = { - event: function(event) { - if (event) this.sourceEvent = event; - return this; - }, - start: function() { - if (++this.active === 1) { - this.that.__zooming = this; - this.emit("start"); - } - return this; - }, - zoom: function(key, transform) { - if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]); - if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]); - if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]); - this.that.__zoom = transform; - this.emit("zoom"); - return this; - }, - end: function() { - if (--this.active === 0) { - delete this.that.__zooming; - this.emit("end"); - } - return this; - }, - emit: function(type) { - var d = select(this.that).datum(); - listeners.call( - type, - this.that, - new ZoomEvent(type, { - sourceEvent: this.sourceEvent, - target: zoom, - type, - transform: this.that.__zoom, - dispatch: listeners - }), - d - ); - } - }; - - function wheeled(event, ...args) { - if (!filter.apply(this, arguments)) return; - var g = gesture(this, args).event(event), - t = this.__zoom, - k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), - p = pointer(event); - - // If the mouse is in the same location as before, reuse it. - // If there were recent wheel events, reset the wheel idle timeout. - if (g.wheel) { - if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { - g.mouse[1] = t.invert(g.mouse[0] = p); - } - clearTimeout(g.wheel); - } - - // If this wheel event won’t trigger a transform change, ignore it. - else if (t.k === k) return; - - // Otherwise, capture the mouse point and location at the start. - else { - g.mouse = [p, t.invert(p)]; - interrupt(this); - g.start(); - } - - noevent(event); - g.wheel = setTimeout(wheelidled, wheelDelay); - g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); - - function wheelidled() { - g.wheel = null; - g.end(); - } - } - - function mousedowned(event, ...args) { - if (touchending || !filter.apply(this, arguments)) return; - var g = gesture(this, args, true).event(event), - v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), - p = pointer(event, currentTarget), - currentTarget = event.currentTarget, - x0 = event.clientX, - y0 = event.clientY; - - dragDisable(event.view); - nopropagation(event); - g.mouse = [p, this.__zoom.invert(p)]; - interrupt(this); - g.start(); - - function mousemoved(event) { - noevent(event); - if (!g.moved) { - var dx = event.clientX - x0, dy = event.clientY - y0; - g.moved = dx * dx + dy * dy > clickDistance2; - } - g.event(event) - .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent)); - } - - function mouseupped(event) { - v.on("mousemove.zoom mouseup.zoom", null); - yesdrag(event.view, g.moved); - noevent(event); - g.event(event).end(); - } - } - - function dblclicked(event, ...args) { - if (!filter.apply(this, arguments)) return; - var t0 = this.__zoom, - p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), - p1 = t0.invert(p0), - k1 = t0.k * (event.shiftKey ? 0.5 : 2), - t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); - - noevent(event); - if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event); - else select(this).call(zoom.transform, t1, p0, event); - } - - function touchstarted(event, ...args) { - if (!filter.apply(this, arguments)) return; - var touches = event.touches, - n = touches.length, - g = gesture(this, args, event.changedTouches.length === n).event(event), - started, i, t, p; - - nopropagation(event); - for (i = 0; i < n; ++i) { - t = touches[i], p = pointer(t, this); - p = [p, this.__zoom.invert(p), t.identifier]; - if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; - else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0; - } - - if (touchstarting) touchstarting = clearTimeout(touchstarting); - - if (started) { - if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay); - interrupt(this); - g.start(); - } - } - - function touchmoved(event, ...args) { - if (!this.__zooming) return; - var g = gesture(this, args).event(event), - touches = event.changedTouches, - n = touches.length, i, t, p, l; - - noevent(event); - for (i = 0; i < n; ++i) { - t = touches[i], p = pointer(t, this); - if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p; - else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p; - } - t = g.that.__zoom; - if (g.touch1) { - var p0 = g.touch0[0], l0 = g.touch0[1], - p1 = g.touch1[0], l1 = g.touch1[1], - dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, - dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; - t = scale(t, Math.sqrt(dp / dl)); - p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; - l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; - } - else if (g.touch0) p = g.touch0[0], l = g.touch0[1]; - else return; - - g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); - } - - function touchended(event, ...args) { - if (!this.__zooming) return; - var g = gesture(this, args).event(event), - touches = event.changedTouches, - n = touches.length, i, t; - - nopropagation(event); - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, touchDelay); - for (i = 0; i < n; ++i) { - t = touches[i]; - if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0; - else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1; - } - if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1; - if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]); - else { - g.end(); - // If this was a dbltap, reroute to the (optional) dblclick.zoom handler. - if (g.taps === 2) { - t = pointer(t, this); - if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { - var p = select(this).on("dblclick.zoom"); - if (p) p.apply(this, arguments); - } - } - } - } - - zoom.wheelDelta = function(_) { - return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta; - }; - - zoom.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter; - }; - - zoom.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable; - }; - - zoom.extent = function(_) { - return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; - }; - - zoom.scaleExtent = function(_) { - return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; - }; - - zoom.translateExtent = function(_) { - return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; - }; - - zoom.constrain = function(_) { - return arguments.length ? (constrain = _, zoom) : constrain; - }; - - zoom.duration = function(_) { - return arguments.length ? (duration = +_, zoom) : duration; - }; - - zoom.interpolate = function(_) { - return arguments.length ? (interpolate = _, zoom) : interpolate; - }; - - zoom.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? zoom : value; - }; - - zoom.clickDistance = function(_) { - return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); - }; - - zoom.tapDistance = function(_) { - return arguments.length ? (tapDistance = +_, zoom) : tapDistance; - }; - - return zoom; -} - -exports.Adder = Adder; -exports.Delaunay = Delaunay; -exports.FormatSpecifier = FormatSpecifier; -exports.InternMap = InternMap; -exports.InternSet = InternSet; -exports.Voronoi = Voronoi; -exports.active = active; -exports.arc = arc; -exports.area = area; -exports.areaRadial = areaRadial; -exports.ascending = ascending$3; -exports.autoType = autoType; -exports.axisBottom = axisBottom; -exports.axisLeft = axisLeft; -exports.axisRight = axisRight; -exports.axisTop = axisTop; -exports.bin = bin; -exports.bisect = bisectRight; -exports.bisectCenter = bisectCenter; -exports.bisectLeft = bisectLeft; -exports.bisectRight = bisectRight; -exports.bisector = bisector; -exports.blob = blob; -exports.brush = brush; -exports.brushSelection = brushSelection; -exports.brushX = brushX; -exports.brushY = brushY; -exports.buffer = buffer; -exports.chord = chord; -exports.chordDirected = chordDirected; -exports.chordTranspose = chordTranspose; -exports.cluster = cluster; -exports.color = color; -exports.contourDensity = density; -exports.contours = contours; -exports.count = count$1; -exports.create = create$1; -exports.creator = creator; -exports.cross = cross$2; -exports.csv = csv; -exports.csvFormat = csvFormat; -exports.csvFormatBody = csvFormatBody; -exports.csvFormatRow = csvFormatRow; -exports.csvFormatRows = csvFormatRows; -exports.csvFormatValue = csvFormatValue; -exports.csvParse = csvParse; -exports.csvParseRows = csvParseRows; -exports.cubehelix = cubehelix$3; -exports.cumsum = cumsum; -exports.curveBasis = basis; -exports.curveBasisClosed = basisClosed; -exports.curveBasisOpen = basisOpen; -exports.curveBumpX = bumpX; -exports.curveBumpY = bumpY; -exports.curveBundle = bundle; -exports.curveCardinal = cardinal; -exports.curveCardinalClosed = cardinalClosed; -exports.curveCardinalOpen = cardinalOpen; -exports.curveCatmullRom = catmullRom; -exports.curveCatmullRomClosed = catmullRomClosed; -exports.curveCatmullRomOpen = catmullRomOpen; -exports.curveLinear = curveLinear; -exports.curveLinearClosed = linearClosed; -exports.curveMonotoneX = monotoneX; -exports.curveMonotoneY = monotoneY; -exports.curveNatural = natural; -exports.curveStep = step; -exports.curveStepAfter = stepAfter; -exports.curveStepBefore = stepBefore; -exports.descending = descending$2; -exports.deviation = deviation; -exports.difference = difference; -exports.disjoint = disjoint; -exports.dispatch = dispatch; -exports.drag = drag; -exports.dragDisable = dragDisable; -exports.dragEnable = yesdrag; -exports.dsv = dsv; -exports.dsvFormat = dsvFormat; -exports.easeBack = backInOut; -exports.easeBackIn = backIn; -exports.easeBackInOut = backInOut; -exports.easeBackOut = backOut; -exports.easeBounce = bounceOut; -exports.easeBounceIn = bounceIn; -exports.easeBounceInOut = bounceInOut; -exports.easeBounceOut = bounceOut; -exports.easeCircle = circleInOut; -exports.easeCircleIn = circleIn; -exports.easeCircleInOut = circleInOut; -exports.easeCircleOut = circleOut; -exports.easeCubic = cubicInOut; -exports.easeCubicIn = cubicIn; -exports.easeCubicInOut = cubicInOut; -exports.easeCubicOut = cubicOut; -exports.easeElastic = elasticOut; -exports.easeElasticIn = elasticIn; -exports.easeElasticInOut = elasticInOut; -exports.easeElasticOut = elasticOut; -exports.easeExp = expInOut; -exports.easeExpIn = expIn; -exports.easeExpInOut = expInOut; -exports.easeExpOut = expOut; -exports.easeLinear = linear$1; -exports.easePoly = polyInOut; -exports.easePolyIn = polyIn; -exports.easePolyInOut = polyInOut; -exports.easePolyOut = polyOut; -exports.easeQuad = quadInOut; -exports.easeQuadIn = quadIn; -exports.easeQuadInOut = quadInOut; -exports.easeQuadOut = quadOut; -exports.easeSin = sinInOut; -exports.easeSinIn = sinIn; -exports.easeSinInOut = sinInOut; -exports.easeSinOut = sinOut; -exports.every = every; -exports.extent = extent$1; -exports.fcumsum = fcumsum; -exports.filter = filter$1; -exports.forceCenter = center; -exports.forceCollide = collide; -exports.forceLink = link$2; -exports.forceManyBody = manyBody; -exports.forceRadial = radial$1; -exports.forceSimulation = simulation; -exports.forceX = x$1; -exports.forceY = y$1; -exports.formatDefaultLocale = defaultLocale$1; -exports.formatLocale = formatLocale$1; -exports.formatSpecifier = formatSpecifier; -exports.fsum = fsum; -exports.geoAlbers = albers; -exports.geoAlbersUsa = albersUsa; -exports.geoArea = area$2; -exports.geoAzimuthalEqualArea = azimuthalEqualArea; -exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw; -exports.geoAzimuthalEquidistant = azimuthalEquidistant; -exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw; -exports.geoBounds = bounds; -exports.geoCentroid = centroid$1; -exports.geoCircle = circle$2; -exports.geoClipAntimeridian = clipAntimeridian; -exports.geoClipCircle = clipCircle; -exports.geoClipExtent = extent; -exports.geoClipRectangle = clipRectangle; -exports.geoConicConformal = conicConformal; -exports.geoConicConformalRaw = conicConformalRaw; -exports.geoConicEqualArea = conicEqualArea; -exports.geoConicEqualAreaRaw = conicEqualAreaRaw; -exports.geoConicEquidistant = conicEquidistant; -exports.geoConicEquidistantRaw = conicEquidistantRaw; -exports.geoContains = contains$1; -exports.geoDistance = distance; -exports.geoEqualEarth = equalEarth; -exports.geoEqualEarthRaw = equalEarthRaw; -exports.geoEquirectangular = equirectangular; -exports.geoEquirectangularRaw = equirectangularRaw; -exports.geoGnomonic = gnomonic; -exports.geoGnomonicRaw = gnomonicRaw; -exports.geoGraticule = graticule; -exports.geoGraticule10 = graticule10; -exports.geoIdentity = identity$4; -exports.geoInterpolate = interpolate; -exports.geoLength = length$1; -exports.geoMercator = mercator; -exports.geoMercatorRaw = mercatorRaw; -exports.geoNaturalEarth1 = naturalEarth1; -exports.geoNaturalEarth1Raw = naturalEarth1Raw; -exports.geoOrthographic = orthographic; -exports.geoOrthographicRaw = orthographicRaw; -exports.geoPath = index$2; -exports.geoProjection = projection; -exports.geoProjectionMutator = projectionMutator; -exports.geoRotation = rotation; -exports.geoStereographic = stereographic; -exports.geoStereographicRaw = stereographicRaw; -exports.geoStream = geoStream; -exports.geoTransform = transform$1; -exports.geoTransverseMercator = transverseMercator; -exports.geoTransverseMercatorRaw = transverseMercatorRaw; -exports.gray = gray; -exports.greatest = greatest; -exports.greatestIndex = greatestIndex; -exports.group = group; -exports.groupSort = groupSort; -exports.groups = groups; -exports.hcl = hcl$2; -exports.hierarchy = hierarchy; -exports.histogram = bin; -exports.hsl = hsl$2; -exports.html = html; -exports.image = image; -exports.index = index$4; -exports.indexes = indexes; -exports.interpolate = interpolate$2; -exports.interpolateArray = array$3; -exports.interpolateBasis = basis$2; -exports.interpolateBasisClosed = basisClosed$1; -exports.interpolateBlues = Blues; -exports.interpolateBrBG = BrBG; -exports.interpolateBuGn = BuGn; -exports.interpolateBuPu = BuPu; -exports.interpolateCividis = cividis; -exports.interpolateCool = cool; -exports.interpolateCubehelix = cubehelix$2; -exports.interpolateCubehelixDefault = cubehelix; -exports.interpolateCubehelixLong = cubehelixLong; -exports.interpolateDate = date$1; -exports.interpolateDiscrete = discrete; -exports.interpolateGnBu = GnBu; -exports.interpolateGreens = Greens; -exports.interpolateGreys = Greys; -exports.interpolateHcl = hcl$1; -exports.interpolateHclLong = hclLong; -exports.interpolateHsl = hsl$1; -exports.interpolateHslLong = hslLong; -exports.interpolateHue = hue; -exports.interpolateInferno = inferno; -exports.interpolateLab = lab; -exports.interpolateMagma = magma; -exports.interpolateNumber = interpolateNumber; -exports.interpolateNumberArray = numberArray; -exports.interpolateObject = object$1; -exports.interpolateOrRd = OrRd; -exports.interpolateOranges = Oranges; -exports.interpolatePRGn = PRGn; -exports.interpolatePiYG = PiYG; -exports.interpolatePlasma = plasma; -exports.interpolatePuBu = PuBu; -exports.interpolatePuBuGn = PuBuGn; -exports.interpolatePuOr = PuOr; -exports.interpolatePuRd = PuRd; -exports.interpolatePurples = Purples; -exports.interpolateRainbow = rainbow; -exports.interpolateRdBu = RdBu; -exports.interpolateRdGy = RdGy; -exports.interpolateRdPu = RdPu; -exports.interpolateRdYlBu = RdYlBu; -exports.interpolateRdYlGn = RdYlGn; -exports.interpolateReds = Reds; -exports.interpolateRgb = interpolateRgb; -exports.interpolateRgbBasis = rgbBasis; -exports.interpolateRgbBasisClosed = rgbBasisClosed; -exports.interpolateRound = interpolateRound; -exports.interpolateSinebow = sinebow; -exports.interpolateSpectral = Spectral; -exports.interpolateString = interpolateString; -exports.interpolateTransformCss = interpolateTransformCss; -exports.interpolateTransformSvg = interpolateTransformSvg; -exports.interpolateTurbo = turbo; -exports.interpolateViridis = viridis; -exports.interpolateWarm = warm; -exports.interpolateYlGn = YlGn; -exports.interpolateYlGnBu = YlGnBu; -exports.interpolateYlOrBr = YlOrBr; -exports.interpolateYlOrRd = YlOrRd; -exports.interpolateZoom = interpolateZoom; -exports.interrupt = interrupt; -exports.intersection = intersection; -exports.interval = interval; -exports.isoFormat = formatIso; -exports.isoParse = parseIso; -exports.json = json; -exports.lab = lab$1; -exports.lch = lch; -exports.least = least; -exports.leastIndex = leastIndex; -exports.line = line; -exports.lineRadial = lineRadial$1; -exports.linkHorizontal = linkHorizontal; -exports.linkRadial = linkRadial; -exports.linkVertical = linkVertical; -exports.local = local$1; -exports.map = map$1; -exports.matcher = matcher; -exports.max = max$3; -exports.maxIndex = maxIndex; -exports.mean = mean; -exports.median = median; -exports.merge = merge; -exports.min = min$2; -exports.minIndex = minIndex; -exports.namespace = namespace; -exports.namespaces = namespaces; -exports.nice = nice$1; -exports.now = now; -exports.pack = index$1; -exports.packEnclose = enclose; -exports.packSiblings = siblings; -exports.pairs = pairs; -exports.partition = partition; -exports.path = path; -exports.permute = permute; -exports.pie = pie; -exports.piecewise = piecewise; -exports.pointRadial = pointRadial; -exports.pointer = pointer; -exports.pointers = pointers; -exports.polygonArea = area$1; -exports.polygonCentroid = centroid; -exports.polygonContains = contains; -exports.polygonHull = hull; -exports.polygonLength = length; -exports.precisionFixed = precisionFixed; -exports.precisionPrefix = precisionPrefix; -exports.precisionRound = precisionRound; -exports.quadtree = quadtree; -exports.quantile = quantile$1; -exports.quantileSorted = quantileSorted; -exports.quantize = quantize$1; -exports.quickselect = quickselect; -exports.radialArea = areaRadial; -exports.radialLine = lineRadial$1; -exports.randomBates = bates; -exports.randomBernoulli = bernoulli; -exports.randomBeta = beta; -exports.randomBinomial = binomial; -exports.randomCauchy = cauchy; -exports.randomExponential = exponential; -exports.randomGamma = gamma; -exports.randomGeometric = geometric; -exports.randomInt = int; -exports.randomIrwinHall = irwinHall; -exports.randomLcg = lcg; -exports.randomLogNormal = logNormal; -exports.randomLogistic = logistic; -exports.randomNormal = normal; -exports.randomPareto = pareto; -exports.randomPoisson = poisson; -exports.randomUniform = uniform; -exports.randomWeibull = weibull; -exports.range = sequence; -exports.reduce = reduce; -exports.reverse = reverse$1; -exports.rgb = rgb; -exports.ribbon = ribbon$1; -exports.ribbonArrow = ribbonArrow; -exports.rollup = rollup; -exports.rollups = rollups; -exports.scaleBand = band; -exports.scaleDiverging = diverging$1; -exports.scaleDivergingLog = divergingLog; -exports.scaleDivergingPow = divergingPow; -exports.scaleDivergingSqrt = divergingSqrt; -exports.scaleDivergingSymlog = divergingSymlog; -exports.scaleIdentity = identity$2; -exports.scaleImplicit = implicit; -exports.scaleLinear = linear; -exports.scaleLog = log; -exports.scaleOrdinal = ordinal; -exports.scalePoint = point$4; -exports.scalePow = pow; -exports.scaleQuantile = quantile; -exports.scaleQuantize = quantize; -exports.scaleRadial = radial; -exports.scaleSequential = sequential; -exports.scaleSequentialLog = sequentialLog; -exports.scaleSequentialPow = sequentialPow; -exports.scaleSequentialQuantile = sequentialQuantile; -exports.scaleSequentialSqrt = sequentialSqrt; -exports.scaleSequentialSymlog = sequentialSymlog; -exports.scaleSqrt = sqrt$1; -exports.scaleSymlog = symlog; -exports.scaleThreshold = threshold; -exports.scaleTime = time; -exports.scaleUtc = utcTime; -exports.scan = scan; -exports.schemeAccent = Accent; -exports.schemeBlues = scheme$5; -exports.schemeBrBG = scheme$q; -exports.schemeBuGn = scheme$h; -exports.schemeBuPu = scheme$g; -exports.schemeCategory10 = category10; -exports.schemeDark2 = Dark2; -exports.schemeGnBu = scheme$f; -exports.schemeGreens = scheme$4; -exports.schemeGreys = scheme$3; -exports.schemeOrRd = scheme$e; -exports.schemeOranges = scheme; -exports.schemePRGn = scheme$p; -exports.schemePaired = Paired; -exports.schemePastel1 = Pastel1; -exports.schemePastel2 = Pastel2; -exports.schemePiYG = scheme$o; -exports.schemePuBu = scheme$c; -exports.schemePuBuGn = scheme$d; -exports.schemePuOr = scheme$n; -exports.schemePuRd = scheme$b; -exports.schemePurples = scheme$2; -exports.schemeRdBu = scheme$m; -exports.schemeRdGy = scheme$l; -exports.schemeRdPu = scheme$a; -exports.schemeRdYlBu = scheme$k; -exports.schemeRdYlGn = scheme$j; -exports.schemeReds = scheme$1; -exports.schemeSet1 = Set1; -exports.schemeSet2 = Set2; -exports.schemeSet3 = Set3; -exports.schemeSpectral = scheme$i; -exports.schemeTableau10 = Tableau10; -exports.schemeYlGn = scheme$8; -exports.schemeYlGnBu = scheme$9; -exports.schemeYlOrBr = scheme$7; -exports.schemeYlOrRd = scheme$6; -exports.select = select; -exports.selectAll = selectAll; -exports.selection = selection; -exports.selector = selector; -exports.selectorAll = selectorAll; -exports.shuffle = shuffle$1; -exports.shuffler = shuffler; -exports.some = some; -exports.sort = sort; -exports.stack = stack; -exports.stackOffsetDiverging = diverging; -exports.stackOffsetExpand = expand; -exports.stackOffsetNone = none$1; -exports.stackOffsetSilhouette = silhouette; -exports.stackOffsetWiggle = wiggle; -exports.stackOrderAppearance = appearance; -exports.stackOrderAscending = ascending; -exports.stackOrderDescending = descending; -exports.stackOrderInsideOut = insideOut; -exports.stackOrderNone = none; -exports.stackOrderReverse = reverse; -exports.stratify = stratify; -exports.style = styleValue; -exports.subset = subset; -exports.sum = sum$1; -exports.superset = superset; -exports.svg = svg; -exports.symbol = symbol; -exports.symbolCircle = circle; -exports.symbolCross = cross; -exports.symbolDiamond = diamond; -exports.symbolSquare = square; -exports.symbolStar = star; -exports.symbolTriangle = triangle; -exports.symbolWye = wye; -exports.symbols = symbols; -exports.text = text; -exports.thresholdFreedmanDiaconis = freedmanDiaconis; -exports.thresholdScott = scott; -exports.thresholdSturges = thresholdSturges; -exports.tickFormat = tickFormat; -exports.tickIncrement = tickIncrement; -exports.tickStep = tickStep; -exports.ticks = ticks; -exports.timeDay = day; -exports.timeDays = days; -exports.timeFormatDefaultLocale = defaultLocale; -exports.timeFormatLocale = formatLocale; -exports.timeFriday = friday; -exports.timeFridays = fridays; -exports.timeHour = hour; -exports.timeHours = hours; -exports.timeInterval = newInterval; -exports.timeMillisecond = millisecond; -exports.timeMilliseconds = milliseconds; -exports.timeMinute = minute; -exports.timeMinutes = minutes; -exports.timeMonday = monday; -exports.timeMondays = mondays; -exports.timeMonth = month; -exports.timeMonths = months; -exports.timeSaturday = saturday; -exports.timeSaturdays = saturdays; -exports.timeSecond = second; -exports.timeSeconds = seconds; -exports.timeSunday = sunday; -exports.timeSundays = sundays; -exports.timeThursday = thursday; -exports.timeThursdays = thursdays; -exports.timeTickInterval = timeTickInterval; -exports.timeTicks = timeTicks; -exports.timeTuesday = tuesday; -exports.timeTuesdays = tuesdays; -exports.timeWednesday = wednesday; -exports.timeWednesdays = wednesdays; -exports.timeWeek = sunday; -exports.timeWeeks = sundays; -exports.timeYear = year; -exports.timeYears = years; -exports.timeout = timeout; -exports.timer = timer; -exports.timerFlush = timerFlush; -exports.transition = transition; -exports.transpose = transpose; -exports.tree = tree; -exports.treemap = index; -exports.treemapBinary = binary; -exports.treemapDice = treemapDice; -exports.treemapResquarify = resquarify; -exports.treemapSlice = treemapSlice; -exports.treemapSliceDice = sliceDice; -exports.treemapSquarify = squarify; -exports.tsv = tsv; -exports.tsvFormat = tsvFormat; -exports.tsvFormatBody = tsvFormatBody; -exports.tsvFormatRow = tsvFormatRow; -exports.tsvFormatRows = tsvFormatRows; -exports.tsvFormatValue = tsvFormatValue; -exports.tsvParse = tsvParse; -exports.tsvParseRows = tsvParseRows; -exports.union = union; -exports.utcDay = utcDay; -exports.utcDays = utcDays; -exports.utcFriday = utcFriday; -exports.utcFridays = utcFridays; -exports.utcHour = utcHour; -exports.utcHours = utcHours; -exports.utcMillisecond = millisecond; -exports.utcMilliseconds = milliseconds; -exports.utcMinute = utcMinute; -exports.utcMinutes = utcMinutes; -exports.utcMonday = utcMonday; -exports.utcMondays = utcMondays; -exports.utcMonth = utcMonth; -exports.utcMonths = utcMonths; -exports.utcSaturday = utcSaturday; -exports.utcSaturdays = utcSaturdays; -exports.utcSecond = second; -exports.utcSeconds = seconds; -exports.utcSunday = utcSunday; -exports.utcSundays = utcSundays; -exports.utcThursday = utcThursday; -exports.utcThursdays = utcThursdays; -exports.utcTickInterval = utcTickInterval; -exports.utcTicks = utcTicks; -exports.utcTuesday = utcTuesday; -exports.utcTuesdays = utcTuesdays; -exports.utcWednesday = utcWednesday; -exports.utcWednesdays = utcWednesdays; -exports.utcWeek = utcSunday; -exports.utcWeeks = utcSundays; -exports.utcYear = utcYear; -exports.utcYears = utcYears; -exports.variance = variance; -exports.version = version; -exports.window = defaultView; -exports.xml = xml; -exports.zip = zip; -exports.zoom = zoom; -exports.zoomIdentity = identity; -exports.zoomTransform = transform; - -Object.defineProperty(exports, '__esModule', { value: true }); - -}))); diff --git a/gen/local/d3/dist/d3.min.js b/gen/local/d3/dist/d3.min.js deleted file mode 100644 index 05cd5cae..00000000 --- a/gen/local/d3/dist/d3.min.js +++ /dev/null @@ -1,2 +0,0 @@ -// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock -!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}function e(t){let e=t,r=t;function i(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)<0?e=o+1:i=o}return e}return 1===t.length&&(e=(n,e)=>t(n)-e,r=function(t){return(e,r)=>n(t(e),r)}(t)),{left:i,center:function(t,n,r,o){null==r&&(r=0),null==o&&(o=t.length);const a=i(t,n,r,o-1);return a>r&&e(t[a-1],n)>-e(t[a],n)?a-1:a},right:function(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)>0?i=o:e=o+1}return e}}}function r(t){return null===t?NaN:+t}const i=e(n),o=i.right,a=i.left,u=e(r).center;function c(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function f(t){return 0|t.length}function s(t){return!(t>0)}function l(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function h(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function d(t,n){const e=h(t,n);return e?Math.sqrt(e):e}function p(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r=o&&(e=r=o):(e>o&&(e=o),r0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}class y extends Map{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(_(this,t))}has(t){return super.has(_(this,t))}set(t,n){return super.set(b(this,t),n)}delete(t){return super.delete(m(this,t))}}class v extends Set{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(_(this,t))}add(t){return super.add(b(this,t))}delete(t){return super.delete(m(this,t))}}function _({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function b({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function m({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(e),t.delete(r)),e}function x(t){return null!==t&&"object"==typeof t?t.valueOf():t}function w(t){return t}function M(t,...n){return S(t,w,w,n)}function A(t,n,...e){return S(t,w,n,e)}function T(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function S(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new y,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function E(t,n){return Array.from(n,(n=>t[n]))}function k(t,...e){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[r=n]=e;if(1===r.length||e.length>1){const i=Uint32Array.from(t,((t,n)=>n));return e.length>1?(e=e.map((n=>t.map(n))),i.sort(((t,r)=>{for(const i of e){const e=n(i[t],i[r]);if(e)return e}}))):(r=t.map(r),i.sort(((t,e)=>n(r[t],r[e])))),E(t,i)}return t.sort(r)}var N=Array.prototype.slice;function C(t){return function(){return t}}var P=Math.sqrt(50),z=Math.sqrt(10),D=Math.sqrt(2);function q(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n0){let e=Math.round(t/a),r=Math.round(n/a);for(e*an&&--r,o=new Array(i=r-e+1);++un&&--r,o=new Array(i=r-e+1);++u=0?(o>=P?10:o>=z?5:o>=D?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=P?10:o>=z?5:o>=D?2:1)}function F(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=P?i*=10:o>=z?i*=5:o>=D&&(i*=2),n0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function I(t){return Math.ceil(Math.log(c(t))/Math.LN2)+1}function U(){var t=w,n=p,e=I;function r(r){Array.isArray(r)||(r=Array.from(r));var i,a,u=r.length,c=new Array(u);for(i=0;i=l)if(t>=l&&n===p){const t=R(s,l,e);isFinite(t)&&(t>0?l=(Math.floor(l/t)+1)*t:t<0&&(l=(Math.ceil(l*-t)+1)/-t))}else h.pop()}for(var d=h.length;h[0]<=s;)h.shift(),--d;for(;h[d-1]>l;)h.pop(),--d;var g,y=new Array(d+1);for(i=0;i<=d;++i)(g=y[i]=[]).x0=i>0?h[i-1]:s,g.x1=i=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e=i)&&(e=i)}return e}function Y(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function L(t,e,r=0,i=t.length-1,o=n){for(;i>r;){if(i-r>600){const n=i-r+1,a=e-r+1,u=Math.log(n),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(n-c)/n)*(a-n/2<0?-1:1);L(t,e,Math.max(r,Math.floor(e-a*c/n+f)),Math.min(i,Math.floor(e+(n-a)*c/n+f)),o)}const n=t[e];let a=r,u=i;for(j(t,r,e),o(t[i],n)>0&&j(t,r,i);a0;)--u}0===o(t[r],n)?j(t,r,u):(++u,j(t,u,i)),u<=e&&(r=u+1),e<=u&&(i=u-1)}return t}function j(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function H(t,n,e){if(r=(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,e))).length){if((n=+n)<=0||r<2)return Y(t);if(n>=1)return B(t);var r,i=(r-1)*n,o=Math.floor(i),a=B(L(t,o).subarray(0,o+1));return a+(Y(t.subarray(o+1))-a)*(i-o)}}function X(t,n,e=r){if(i=t.length){if((n=+n)<=0||i<2)return+e(t[0],0,t);if(n>=1)return+e(t[i-1],i-1,t);var i,o=(i-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function G(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e=o)&&(e=o,r=i);return r}function V(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function $(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function W(t,n){return[t,n]}function Z(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r+t(n)}function st(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function lt(){return!this.__axis}function ht(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=1===t||4===t?-1:1,s=4===t||2===t?"x":"y",l=1===t||3===t?ut:ct;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):ot:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?st:ft)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),A=w.enter().append("g").attr("class","tick"),T=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(A),T=T.merge(A.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(A.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),T=T.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",at).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),A.attr("opacity",at).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",4===t||2===t?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),T.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(lt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=it.call(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:it.call(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:it.call(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}var dt={value:()=>{}};function pt(){for(var t,n=0,e=arguments.length,r={};n=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function vt(t,n){for(var e,r=0,i=t.length;r0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),mt.hasOwnProperty(n)?{space:mt[n],local:t}:t}function wt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===bt&&n.documentElement.namespaceURI===bt?n.createElement(t):n.createElementNS(e,t)}}function Mt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function At(t){var n=xt(t);return(n.local?Mt:wt)(n)}function Tt(){}function St(t){return null==t?Tt:function(){return this.querySelector(t)}}function Et(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function kt(){return[]}function Nt(t){return null==t?kt:function(){return this.querySelectorAll(t)}}function Ct(t){return function(){return this.matches(t)}}function Pt(t){return function(n){return n.matches(t)}}var zt=Array.prototype.find;function Dt(){return this.firstElementChild}var qt=Array.prototype.filter;function Rt(){return this.children}function Ft(t){return new Array(t.length)}function Ot(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function It(t){return function(){return t}}function Ut(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;un?1:t>=n?0:NaN}function jt(t){return function(){this.removeAttribute(t)}}function Ht(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xt(t,n){return function(){this.setAttribute(t,n)}}function Gt(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Vt(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function $t(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Wt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zt(t){return function(){this.style.removeProperty(t)}}function Kt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Qt(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function Jt(t,n){return t.style.getPropertyValue(n)||Wt(t).getComputedStyle(t,null).getPropertyValue(n)}function tn(t){return function(){delete this[t]}}function nn(t,n){return function(){this[t]=n}}function en(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function rn(t){return t.trim().split(/^|\s+/)}function on(t){return t.classList||new an(t)}function an(t){this._node=t,this._names=rn(t.getAttribute("class")||"")}function un(t,n){for(var e=on(t),r=-1,i=n.length;++r=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function Tn(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Cn=[null];function Pn(t,n){this._groups=t,this._parents=n}function zn(){return new Pn([[document.documentElement]],Cn)}function Dn(t){return"string"==typeof t?new Pn([[document.querySelector(t)]],[document.documentElement]):new Pn([[t]],Cn)}Pn.prototype=zn.prototype={constructor:Pn,select:function(t){"function"!=typeof t&&(t=St(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i=x&&(x=m+1);!(b=y[x])&&++x=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Lt);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?Zt:"function"==typeof n?Qt:Kt)(t,n,null==e?"":e)):Jt(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?tn:"function"==typeof n?en:nn)(t,n)):this.node()[t]},classed:function(t,n){var e=rn(t+"");if(arguments.length<2){for(var r=on(this.node()),i=-1,o=e.length;++i()=>t;function Hn(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:s}})}function Xn(t){return!t.ctrlKey&&!t.button}function Gn(){return this.parentNode}function Vn(t,n){return null==n?{x:t.x,y:t.y}:n}function $n(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Zn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Kn(){}Hn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Qn=.7,Jn=1/Qn,te="\\s*([+-]?\\d+)\\s*",ne="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",ee="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",re=/^#([0-9a-f]{3,8})$/,ie=new RegExp("^rgb\\("+[te,te,te]+"\\)$"),oe=new RegExp("^rgb\\("+[ee,ee,ee]+"\\)$"),ae=new RegExp("^rgba\\("+[te,te,te,ne]+"\\)$"),ue=new RegExp("^rgba\\("+[ee,ee,ee,ne]+"\\)$"),ce=new RegExp("^hsl\\("+[ne,ee,ee]+"\\)$"),fe=new RegExp("^hsla\\("+[ne,ee,ee,ne]+"\\)$"),se={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function le(){return this.rgb().formatHex()}function he(){return this.rgb().formatRgb()}function de(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=re.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?pe(n):3===e?new _e(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?ge(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?ge(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=ie.exec(t))?new _e(n[1],n[2],n[3],1):(n=oe.exec(t))?new _e(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=ae.exec(t))?ge(n[1],n[2],n[3],n[4]):(n=ue.exec(t))?ge(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=ce.exec(t))?we(n[1],n[2]/100,n[3]/100,1):(n=fe.exec(t))?we(n[1],n[2]/100,n[3]/100,n[4]):se.hasOwnProperty(t)?pe(se[t]):"transparent"===t?new _e(NaN,NaN,NaN,0):null}function pe(t){return new _e(t>>16&255,t>>8&255,255&t,1)}function ge(t,n,e,r){return r<=0&&(t=n=e=NaN),new _e(t,n,e,r)}function ye(t){return t instanceof Kn||(t=de(t)),t?new _e((t=t.rgb()).r,t.g,t.b,t.opacity):new _e}function ve(t,n,e,r){return 1===arguments.length?ye(t):new _e(t,n,e,null==r?1:r)}function _e(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function be(){return"#"+xe(this.r)+xe(this.g)+xe(this.b)}function me(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function xe(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function we(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Te(t,n,e,r)}function Me(t){if(t instanceof Te)return new Te(t.h,t.s,t.l,t.opacity);if(t instanceof Kn||(t=de(t)),!t)return new Te;if(t instanceof Te)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&c<1?0:a,new Te(a,u,c,t.opacity)}function Ae(t,n,e,r){return 1===arguments.length?Me(t):new Te(t,n,e,null==r?1:r)}function Te(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Se(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Wn(Kn,de,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:le,formatHex:le,formatHsl:function(){return Me(this).formatHsl()},formatRgb:he,toString:he}),Wn(_e,ve,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:be,formatHex:be,formatRgb:me,toString:me})),Wn(Te,Ae,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new Te(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new Te(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new _e(Se(t>=240?t-240:t+120,i,r),Se(t,i,r),Se(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const Ee=Math.PI/180,ke=180/Math.PI,Ne=.96422,Ce=.82521,Pe=4/29,ze=6/29,De=3*ze*ze;function qe(t){if(t instanceof Fe)return new Fe(t.l,t.a,t.b,t.opacity);if(t instanceof je)return He(t);t instanceof _e||(t=ye(t));var n,e,r=Be(t.r),i=Be(t.g),o=Be(t.b),a=Oe((.2225045*r+.7168786*i+.0606169*o)/1);return r===i&&i===o?n=e=a:(n=Oe((.4360747*r+.3850649*i+.1430804*o)/Ne),e=Oe((.0139322*r+.0971045*i+.7141733*o)/Ce)),new Fe(116*a-16,500*(n-a),200*(a-e),t.opacity)}function Re(t,n,e,r){return 1===arguments.length?qe(t):new Fe(t,n,e,null==r?1:r)}function Fe(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Oe(t){return t>.008856451679035631?Math.pow(t,1/3):t/De+Pe}function Ie(t){return t>ze?t*t*t:De*(t-Pe)}function Ue(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Be(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ye(t){if(t instanceof je)return new je(t.h,t.c,t.l,t.opacity);if(t instanceof Fe||(t=qe(t)),0===t.a&&0===t.b)return new je(NaN,0=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r()=>t;function ar(t,n){return function(e){return t+e*n}}function ur(t,n){var e=n-t;return e?ar(t,e>180||e<-180?e-360*Math.round(e/360):e):or(isNaN(t)?n:t)}function cr(t){return 1==(t=+t)?fr:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):or(isNaN(n)?e:n)}}function fr(t,n){var e=n-t;return e?ar(t,e):or(isNaN(t)?n:t)}var sr=function t(n){var e=cr(n);function r(t,n){var r=e((t=ve(t)).r,(n=ve(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=fr(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function lr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;eo&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:_r(e,r)})),o=xr.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:_r(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:_r(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:_r(t,e)},{i:u-2,x:_r(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e=0&&n._call.call(null,t),n=n._next;--Gr}function oi(){Zr=(Wr=Qr.now())+Kr,Gr=Vr=0;try{ii()}finally{Gr=0,function(){var t,n,e=Hr,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Hr=n);Xr=t,ui(r)}(),Zr=0}}function ai(){var t=Qr.now(),n=t-Wr;n>1e3&&(Kr-=n,Wr=t)}function ui(t){Gr||(Vr&&(Vr=clearTimeout(Vr)),t-Zr>24?(t<1/0&&(Vr=setTimeout(oi,t-Qr.now()-Kr)),$r&&($r=clearInterval($r))):($r||(Wr=Qr.now(),$r=setInterval(ai,1e3)),Gr=1,Jr(oi)))}function ci(t,n,e){var r=new ei;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}ei.prototype=ri.prototype={constructor:ei,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ti():+e)+(null==n?0:+n),this._next||Xr===this||(Xr?Xr._next=this:Hr=this,Xr=this),this._call=t,this._time=e,ui()},stop:function(){this._call&&(this._call=null,this._time=1/0,ui())}};var fi=pt("start","end","cancel","interrupt"),si=[];function li(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=1,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var f,s,l,h;if(1!==e.state)return c();for(f in i)if((h=i[f]).name===e.name){if(3===h.state)return ci(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+f0)throw new Error("too late; already scheduled");return e}function di(t,n){var e=pi(t,n);if(e.state>3)throw new Error("too late; already running");return e}function pi(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function gi(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function yi(t,n){var e,r;return function(){var i=di(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?hi:di;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}var Fi=zn.prototype.constructor;function Oi(t){return function(){this.style.removeProperty(t)}}function Ii(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Ui(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&Ii(t,o,e)),r}return o._value=n,o}function Bi(t){return function(n){this.textContent=t.call(this,n)}}function Yi(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&Bi(r)),n}return r._value=t,r}var Li=0;function ji(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Hi(t){return zn().transition(t)}function Xi(){return++Li}var Gi=zn.prototype;ji.prototype=Hi.prototype={constructor:ji,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=St(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a()=>t;function mo(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function xo(t){t.stopImmediatePropagation()}function wo(t){t.preventDefault(),t.stopImmediatePropagation()}var Mo={name:"drag"},Ao={name:"space"},To={name:"handle"},So={name:"center"};const{abs:Eo,max:ko,min:No}=Math;function Co(t){return[+t[0],+t[1]]}function Po(t){return[Co(t[0]),Co(t[1])]}var zo={name:"x",handles:["w","e"].map(Bo),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Do={name:"y",handles:["n","s"].map(Bo),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},qo={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Bo),input:function(t){return null==t?null:Po(t)},output:function(t){return t}},Ro={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Fo={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Oo={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Io={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Uo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Bo(t){return{type:t}}function Yo(t){return!t.ctrlKey&&!t.button}function Lo(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function jo(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ho(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Xo(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Go(t){var n,e=Lo,r=Yo,i=jo,o=!0,a=pt("start","brush","end"),u=6;function c(n){var e=n.property("__brush",g).selectAll(".overlay").data([Bo("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Ro.overlay).merge(e).each((function(){var t=Ho(this).extent;Dn(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),n.selectAll(".selection").data([Bo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Ro.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return Ro[t.type]})),n.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(){var t=Dn(this),n=Ho(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?n[1][0]-u/2:n[0][0]-u/2})).attr("y",(function(t){return"s"===t.type[0]?n[1][1]-u/2:n[0][1]-u/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+u:u})).attr("height",(function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+u:u}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new l(t,n,e):r}function l(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function h(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,a,u,c,l,h,d,p,g,y,v,_=this,b=e.target.__data__.type,m="selection"===(o&&e.metaKey?b="overlay":b)?Mo:o&&e.altKey?So:To,x=t===Do?null:Io[b],w=t===zo?null:Uo[b],M=Ho(_),A=M.extent,T=M.selection,S=A[0][0],E=A[0][1],k=A[1][0],N=A[1][1],C=0,P=0,z=x&&w&&o&&e.shiftKey,D=Array.from(e.touches||[e],(t=>{const n=t.identifier;return(t=In(t,_)).point0=t.slice(),t.identifier=n,t}));if("overlay"===b){T&&(g=!0);const n=[D[0],D[1]||D[0]];M.selection=T=[[i=t===Do?S:No(n[0][0],n[1][0]),u=t===zo?E:No(n[0][1],n[1][1])],[l=t===Do?k:ko(n[0][0],n[1][0]),d=t===zo?N:ko(n[0][1],n[1][1])]],D.length>1&&U()}else i=T[0][0],u=T[0][1],l=T[1][0],d=T[1][1];a=i,c=u,h=l,p=d;var q=Dn(_).attr("pointer-events","none"),R=q.selectAll(".overlay").attr("cursor",Ro[b]);gi(_);var F=s(_,arguments,!0).beforestart();if(e.touches)F.moved=I,F.ended=B;else{var O=Dn(e.view).on("mousemove.brush",I,!0).on("mouseup.brush",B,!0);o&&O.on("keydown.brush",Y,!0).on("keyup.brush",L,!0),Yn(e.view)}f.call(_),F.start(e,m.name)}function I(t){for(const n of t.changedTouches||[t])for(const t of D)t.identifier===n.identifier&&(t.cur=In(n,_));if(z&&!y&&!v&&1===D.length){const t=D[0];Eo(t.cur[0]-t[0])>Eo(t.cur[1]-t[1])?v=!0:y=!0}for(const t of D)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,wo(t),U(t)}function U(t){const n=D[0],e=n.point0;var r;switch(C=n[0]-e[0],P=n[1]-e[1],m){case Ao:case Mo:x&&(C=ko(S-i,No(k-l,C)),a=i+C,h=l+C),w&&(P=ko(E-u,No(N-d,P)),c=u+P,p=d+P);break;case To:D[1]?(x&&(a=ko(S,No(k,D[0][0])),h=ko(S,No(k,D[1][0])),x=1),w&&(c=ko(E,No(N,D[0][1])),p=ko(E,No(N,D[1][1])),w=1)):(x<0?(C=ko(S-i,No(k-i,C)),a=i+C,h=l):x>0&&(C=ko(S-l,No(k-l,C)),a=i,h=l+C),w<0?(P=ko(E-u,No(N-u,P)),c=u+P,p=d):w>0&&(P=ko(E-d,No(N-d,P)),c=u,p=d+P));break;case So:x&&(a=ko(S,No(k,i-C*x)),h=ko(S,No(k,l+C*x))),w&&(c=ko(E,No(N,u-P*w)),p=ko(E,No(N,d+P*w)))}h0&&(i=a-C),w<0?d=p-P:w>0&&(u=c-P),m=Ao,R.attr("cursor",Ro.selection),U());break;default:return}wo(t)}function L(t){switch(t.keyCode){case 16:z&&(y=v=z=!1,U());break;case 18:m===So&&(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To,U());break;case 32:m===Ao&&(t.altKey?(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=So):(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To),R.attr("cursor",Ro[b]),U());break;default:return}wo(t)}}function d(t){s(this,arguments).moved(t)}function p(t){s(this,arguments).ended(t)}function g(){var n=this.__brush||{selection:null};return n.extent=Po(e.apply(this,arguments)),n.dim=t,n}return c.move=function(n,e){n.tween?n.on("start.brush",(function(t){s(this,arguments).beforestart().start(t)})).on("interrupt.brush end.brush",(function(t){s(this,arguments).end(t)})).tween("brush",(function(){var n=this,r=n.__brush,i=s(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=Mr(o,a);function c(t){r.selection=1===t&&null===a?null:u(t),f.call(n),i.brush()}return null!==o&&null!==a?c:c(1)})):n.each((function(){var n=this,r=arguments,i=n.__brush,o=t.input("function"==typeof e?e.apply(n,r):e,i.extent),a=s(n,r).beforestart();gi(n),i.selection=null===o?null:o,f.call(n),a.start().brush().end()}))},c.clear=function(t){c.move(t,null)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=Dn(this.that).datum();a.call(n,this.that,new mo(n,{sourceEvent:e,target:c,selection:t.output(this.state.selection),mode:r,dispatch:a}),i)}},c.extent=function(t){return arguments.length?(e="function"==typeof t?t:bo(Po(t)),c):e},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:bo(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:bo(!!t),c):i},c.handleSize=function(t){return arguments.length?(u=+t,c):u},c.keyModifiers=function(t){return arguments.length?(o=!!t,c):o},c.on=function(){var t=a.on.apply(a,arguments);return t===a?c:t},c}var Vo=Math.abs,$o=Math.cos,Wo=Math.sin,Zo=Math.PI,Ko=Zo/2,Qo=2*Zo,Jo=Math.max,ta=1e-12;function na(t,n){return Array.from({length:n-t},((n,e)=>t+e))}function ea(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function ra(t,n){var e=0,r=null,i=null,o=null;function a(a){var u,c=a.length,f=new Array(c),s=na(0,c),l=new Array(c*c),h=new Array(c),d=0;a=Float64Array.from({length:c*c},n?(t,n)=>a[n%c][n/c|0]:(t,n)=>a[n/c|0][n%c]);for(let n=0;nr(f[t],f[n])));for(const e of s){const r=n;if(t){const t=na(1+~c,c).filter((t=>t<0?a[~t*c+e]:a[e*c+t]));i&&t.sort(((t,n)=>i(t<0?-a[~t*c+e]:a[e*c+t],n<0?-a[~n*c+e]:a[e*c+n])));for(const r of t)if(r<0){(l[~r*c+e]||(l[~r*c+e]={source:null,target:null})).target={index:e,startAngle:n,endAngle:n+=a[~r*c+e]*d,value:a[~r*c+e]}}else{(l[e*c+r]||(l[e*c+r]={source:null,target:null})).source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}else{const t=na(0,c).filter((t=>a[e*c+t]||a[t*c+e]));i&&t.sort(((t,n)=>i(a[e*c+t],a[e*c+n])));for(const r of t){let t;if(eaa)if(Math.abs(s*u-c*f)>aa&&i){var h=e-o,d=r-a,p=u*u+c*c,g=h*h+d*d,y=Math.sqrt(p),v=Math.sqrt(l),_=i*Math.tan((ia-Math.acos((p+l-g)/(2*y*v)))/2),b=_/v,m=_/y;Math.abs(b-1)>aa&&(this._+="L"+(t+b*f)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>f*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,o=!!o;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>aa||Math.abs(this._y1-f)>aa)&&(this._+="L"+c+","+f),e&&(l<0&&(l=l%oa+oa),l>ua?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=c)+","+(this._y1=f):l>aa&&(this._+="A"+e+","+e+",0,"+ +(l>=ia)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var sa=Array.prototype.slice;function la(t){return function(){return t}}function ha(t){return t.source}function da(t){return t.target}function pa(t){return t.radius}function ga(t){return t.startAngle}function ya(t){return t.endAngle}function va(){return 0}function _a(){return 10}function ba(t){var n=ha,e=da,r=pa,i=pa,o=ga,a=ya,u=va,c=null;function f(){var f,s=n.apply(this,arguments),l=e.apply(this,arguments),h=u.apply(this,arguments)/2,d=sa.call(arguments),p=+r.apply(this,(d[0]=s,d)),g=o.apply(this,d)-Ko,y=a.apply(this,d)-Ko,v=+i.apply(this,(d[0]=l,d)),_=o.apply(this,d)-Ko,b=a.apply(this,d)-Ko;if(c||(c=f=fa()),h>ta&&(Vo(y-g)>2*h+ta?y>g?(g+=h,y-=h):(g-=h,y+=h):g=y=(g+y)/2,Vo(b-_)>2*h+ta?b>_?(_+=h,b-=h):(_-=h,b+=h):_=b=(_+b)/2),c.moveTo(p*$o(g),p*Wo(g)),c.arc(0,0,p,g,y),g!==_||y!==b)if(t){var m=+t.apply(this,arguments),x=v-m,w=(_+b)/2;c.quadraticCurveTo(0,0,x*$o(_),x*Wo(_)),c.lineTo(v*$o(w),v*Wo(w)),c.lineTo(x*$o(b),x*Wo(b))}else c.quadraticCurveTo(0,0,v*$o(_),v*Wo(_)),c.arc(0,0,v,_,b);if(c.quadraticCurveTo(0,0,p*$o(g),p*Wo(g)),c.closePath(),f)return c=null,f+""||null}return t&&(f.headRadius=function(n){return arguments.length?(t="function"==typeof n?n:la(+n),f):t}),f.radius=function(t){return arguments.length?(r=i="function"==typeof t?t:la(+t),f):r},f.sourceRadius=function(t){return arguments.length?(r="function"==typeof t?t:la(+t),f):r},f.targetRadius=function(t){return arguments.length?(i="function"==typeof t?t:la(+t),f):i},f.startAngle=function(t){return arguments.length?(o="function"==typeof t?t:la(+t),f):o},f.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:la(+t),f):a},f.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:la(+t),f):u},f.source=function(t){return arguments.length?(n=t,f):n},f.target=function(t){return arguments.length?(e=t,f):e},f.context=function(t){return arguments.length?(c=null==t?null:t,f):c},f}var ma=Array.prototype.slice;function xa(t,n){return t-n}var wa=t=>()=>t;function Ma(t,n){for(var e,r=-1,i=n.length;++rr!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function Ta(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function Sa(){}var Ea=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ka(){var t=1,n=1,e=I,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(xa);else{var r=p(t),i=r[0],a=r[1];n=F(i,a,n),n=Z(Math.floor(i/n)*n,Math.floor(a/n)*n,n)}return n.map((function(n){return o(t,n)}))}function o(e,i){var o=[],u=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=e[0]>=r,Ea[f<<1].forEach(p);for(;++o=r,Ea[c|f<<1].forEach(p);Ea[f<<0].forEach(p);for(;++u=r,s=e[u*t]>=r,Ea[f<<1|s<<2].forEach(p);++o=r,l=s,s=e[u*t+o+1]>=r,Ea[c|f<<1|s<<2|l<<3].forEach(p);Ea[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,Ea[s<<2].forEach(p);for(;++o=r,Ea[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}Ea[s<<3].forEach(p)}(e,i,(function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n0?o.push([t]):u.push(t)})),u.forEach((function(t){for(var n,e=0,r=o.length;e0&&a0&&u=0&&o>=0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:Sa,i):r===u},i}function Na(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[u-o+a*r]),n.data[u-e+a*r]=c/Math.min(u+1,r-1+o-u,o))}function Ca(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=c/Math.min(u+1,i-1+o-u,o))}function Pa(t){return t[0]}function za(t){return t[1]}function Da(){return 1}const qa=Math.pow(2,-52),Ra=new Uint32Array(512);class Fa{static from(t,n=Ha,e=Xa){const r=t.length,i=new Float64Array(2*r);for(let o=0;o>1;if(n>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*n-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:e,_hullTri:r,_hullHash:i}=this,o=t.length>>1;let a=1/0,u=1/0,c=-1/0,f=-1/0;for(let n=0;nc&&(c=e),r>f&&(f=r),this._ids[n]=n}const s=(a+c)/2,l=(u+f)/2;let h,d,p,g=1/0;for(let n=0;n0&&(d=n,g=e)}let _=t[2*d],b=t[2*d+1],m=1/0;for(let n=0;nr&&(n[e++]=i,r=this._dists[i])}return this.hull=n.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Ua(y,v,_,b,x,w)){const t=d,n=_,e=b;d=p,_=x,b=w,p=t,x=n,w=e}const M=function(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c);return{x:t+(f*s-u*l)*h,y:n+(a*l-c*s)*h}}(y,v,_,b,x,w);this._cx=M.x,this._cy=M.y;for(let n=0;n0&&Math.abs(f-o)<=qa&&Math.abs(s-a)<=qa)continue;if(o=f,a=s,c===h||c===d||c===p)continue;let l=0;for(let t=0,n=this._hashKey(f,s);t0?3-e:1+e)/4}(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:e,coords:r}=this;let i=0,o=0;for(;;){const a=e[t],u=t-t%3;if(o=u+(t+2)%3,-1===a){if(0===i)break;t=Ra[--i];continue}const c=a-a%3,f=u+(t+1)%3,s=c+(a+2)%3,l=n[o],h=n[t],d=n[f],p=n[s];if(Ba(r[2*l],r[2*l+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){n[t]=p,n[a]=l;const r=e[s];if(-1===r){let n=this._hullStart;do{if(this._hullTri[n]===s){this._hullTri[n]=t;break}n=this._hullPrev[n]}while(n!==this._hullStart)}this._link(t,r),this._link(a,e[o]),this._link(o,s);const u=c+(a+1)%3;i=33306690738754716e-32*Math.abs(a+u)?a-u:0}function Ua(t,n,e,r,i,o){return(Ia(i,o,t,n,e,r)||Ia(t,n,e,r,i,o)||Ia(e,r,i,o,t,n))<0}function Ba(t,n,e,r,i,o,a,u){const c=t-a,f=n-u,s=e-a,l=r-u,h=i-a,d=o-u,p=s*s+l*l,g=h*h+d*d;return c*(l*g-p*d)-f*(s*g-p*h)+(c*c+f*f)*(s*d-l*h)<0}function Ya(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=(f*s-u*l)*h,p=(a*l-c*s)*h;return d*d+p*p}function La(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const r=t[i],o=n[r];let a=i-1;for(;a>=e&&n[t[a]]>o;)t[a+1]=t[a--];t[a+1]=r}else{let i=e+1,o=r;ja(t,e+r>>1,i),n[t[e]]>n[t[r]]&&ja(t,e,r),n[t[i]]>n[t[r]]&&ja(t,i,r),n[t[e]]>n[t[i]]&&ja(t,e,i);const a=t[i],u=n[a];for(;;){do{i++}while(n[t[i]]u);if(o=o-e?(La(t,n,i,r),La(t,n,e,o-1)):(La(t,n,e,o-1),La(t,n,i,r))}}function ja(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function Ha(t){return t[0]}function Xa(t){return t[1]}const Ga=1e-6;class Va{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,e){const r=(t=+t)+(e=+e),i=n=+n;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>Ga||Math.abs(this._y1-i)>Ga)&&(this._+="L"+r+","+i),e&&(this._+=`A${e},${e},0,1,1,${t-e},${n}A${e},${e},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,n,e,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+e}v${+r}h${-e}Z`}value(){return this._||null}}class $a{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class Wa{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this,i=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,r,o=0,a=0,u=e.length;o1;)i-=2;for(let t=2;t4)for(let t=0;t0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)this.xmax?2:0)|(nthis.ymax?8:0)}}const Za=2*Math.PI,Ka=Math.pow;function Qa(t){return t[0]}function Ja(t){return t[1]}function tu(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class nu{static from(t,n=Qa,e=Ja,r){return new nu("length"in t?function(t,n,e,r){const i=t.length,o=new Float64Array(2*i);for(let a=0;a2&&function(t){const{triangles:n,coords:e}=t;for(let t=0;t1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:n.length/2},((t,n)=>n)).sort(((t,e)=>n[2*t]-n[2*e]||n[2*t+1]-n[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],r=[n[2*t],n[2*t+1],n[2*e],n[2*e+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let t=0,e=n.length/2;t0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],this.triangles[1]=r[1],this.triangles[2]=r[1],o[r[0]]=1,2===r.length&&(o[r[1]]=0))}voronoi(t){return new Wa(this,t)}*neighbors(t){const{inedges:n,hull:e,_hullIndex:r,halfedges:i,triangles:o,collinear:a}=this;if(a){const n=a.indexOf(t);return n>0&&(yield a[n-1]),void(n=0&&i!==e&&i!==r;)e=i;return i}_step(t,n,e){const{inedges:r,hull:i,_hullIndex:o,halfedges:a,triangles:u,points:c}=this;if(-1===r[t]||!c.length)return(t+1)%(c.length>>1);let f=t,s=Ka(n-c[2*t],2)+Ka(e-c[2*t+1],2);const l=r[t];let h=l;do{let r=u[h];const l=Ka(n-c[2*r],2)+Ka(e-c[2*r+1],2);if(l9999?"+"+au(t,6):au(t,4)}(t.getUTCFullYear())+"-"+au(t.getUTCMonth()+1,2)+"-"+au(t.getUTCDate(),2)+(i?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"."+au(i,3)+"Z":r?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"Z":e||n?"T"+au(n,2)+":"+au(e,2)+"Z":"")}function cu(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return ru;if(f)return f=!1,eu;var n,r,i=a;if(34===t.charCodeAt(i)){for(;a++=o?c=!0:10===(r=t.charCodeAt(a++))?f=!0:13===r&&(f=!0,10===t.charCodeAt(a)&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;aNu(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var Ru=qu("application/xml"),Fu=qu("text/html"),Ou=qu("image/svg+xml");function Iu(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,c,f,s,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,v=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Uu(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Bu(t){return t[0]}function Yu(t){return t[1]}function Lu(t,n,e){var r=new ju(null==n?Bu:n,null==e?Yu:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ju(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Hu(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var Xu=Lu.prototype=ju.prototype;function Gu(t){return function(){return t}}function Vu(t){return 1e-6*(t()-.5)}function $u(t){return t.x+t.vx}function Wu(t){return t.y+t.vy}function Zu(t){return t.index}function Ku(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}Xu.copy=function(){var t,n,e=new ju(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Hu(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Hu(n));return e},Xu.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Iu(this.cover(n,e),n,e,t)},Xu.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;es&&(s=r),il&&(l=i));if(c>s||f>l)return this;for(this.cover(c,f).cover(s,l),e=0;et||t>=i||r>n||n>=o;)switch(u=(nh||(o=c.y0)>d||(a=c.x1)=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,g.data),b=n-+this._y.call(null,g.data),m=_*_+b*b;if(m=(u=(p+y)/2))?p=u:y=u,(s=a>=(c=(g+v)/2))?g=c:v=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},Xu.removeAll=function(t){for(var n=0,e=t.length;n1?r[0]+r.slice(2):r,+t.slice(e+1)]}function rc(t){return(t=ec(Math.abs(t)))?t[1]:NaN}var ic,oc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ac(t){if(!(n=oc.exec(t)))throw new Error("invalid format: "+t);var n;return new uc({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function uc(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function cc(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}ac.prototype=uc.prototype,uc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fc={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>cc(100*t,n),r:cc,s:function(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(ic=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ec(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sc(t){return t}var lc,hc=Array.prototype.map,dc=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function pc(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?sc:(n=hc.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?sc:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(hc.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function l(t){var n=(t=ac(t)).fill,e=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,_=t.type;"n"===_?(g=!0,_="g"):fc[_]||(void 0===y&&(y=12),v=!0,_="g"),(d||"0"===n&&"="===e)&&(d=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",m="$"===h?o:/[%p]/.test(_)?c:"",x=fc[_],w=/[defgprs%]/.test(_);function M(t){var i,o,c,h=b,M=m;if("c"===_)M=x(t)+M,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:x(Math.abs(t),y),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&"+"!==l&&(A=!1),h=(A?"("===l?l:f:"-"===l||"("===l?"":l)+h,M=("s"===_?dc[8+ic/3]:"")+M+(A&&"("===l?")":""),w)for(i=-1,o=t.length;++i(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var T=h.length+t.length+M.length,S=T>1)+h+t+M+S.slice(T);break;default:t=S+h+t+M}return u(t)}return y=void 0===y?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),M.toString=function(){return t+""},M}return{format:l,formatPrefix:function(t,n){var e=l(((t=ac(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3))),i=Math.pow(10,-r),o=dc[8+r/3];return function(t){return e(i*t)+o}}}}function gc(n){return lc=pc(n),t.format=lc.format,t.formatPrefix=lc.formatPrefix,lc}function yc(t){return Math.max(0,-rc(Math.abs(t)))}function vc(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3)))-rc(Math.abs(t)))}function _c(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,rc(n)-rc(t))+1}t.format=void 0,t.formatPrefix=void 0,gc({thousands:",",grouping:[3],currency:["$",""]});var bc=1e-6,mc=1e-12,xc=Math.PI,wc=xc/2,Mc=xc/4,Ac=2*xc,Tc=180/xc,Sc=xc/180,Ec=Math.abs,kc=Math.atan,Nc=Math.atan2,Cc=Math.cos,Pc=Math.ceil,zc=Math.exp,Dc=Math.hypot,qc=Math.log,Rc=Math.pow,Fc=Math.sin,Oc=Math.sign||function(t){return t>0?1:t<0?-1:0},Ic=Math.sqrt,Uc=Math.tan;function Bc(t){return t>1?0:t<-1?xc:Math.acos(t)}function Yc(t){return t>1?wc:t<-1?-wc:Math.asin(t)}function Lc(t){return(t=Fc(t/2))*t}function jc(){}function Hc(t,n){t&&Gc.hasOwnProperty(t.type)&&Gc[t.type](t,n)}var Xc={Feature:function(t,n){Hc(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r=0?1:-1,i=r*e,o=Cc(n=(n*=Sc)/2+Mc),a=Fc(n),u=tf*a,c=Jc*o+u*Cc(i),f=u*r*Fc(i);df.add(Nc(f,c)),Qc=t,Jc=o,tf=a}function mf(t){return[Nc(t[1],t[0]),Yc(t[2])]}function xf(t){var n=t[0],e=t[1],r=Cc(e);return[r*Cc(n),r*Fc(n),Fc(e)]}function wf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Mf(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Af(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Tf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Sf(t){var n=Ic(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Ef,kf,Nf,Cf,Pf,zf,Df,qf,Rf,Ff,Of,If,Uf,Bf,Yf,Lf,jf={point:Hf,lineStart:Gf,lineEnd:Vf,polygonStart:function(){jf.point=$f,jf.lineStart=Wf,jf.lineEnd=Zf,sf=new g,gf.polygonStart()},polygonEnd:function(){gf.polygonEnd(),jf.point=Hf,jf.lineStart=Gf,jf.lineEnd=Vf,df<0?(nf=-(rf=180),ef=-(of=90)):sf>bc?of=90:sf<-1e-6&&(ef=-90),hf[0]=nf,hf[1]=rf},sphere:function(){nf=-(rf=180),ef=-(of=90)}};function Hf(t,n){lf.push(hf=[nf=t,rf=t]),nof&&(of=n)}function Xf(t,n){var e=xf([t*Sc,n*Sc]);if(ff){var r=Mf(ff,e),i=Mf([r[1],-r[0],0],r);Sf(i),i=mf(i);var o,a=t-af,u=a>0?1:-1,c=i[0]*Tc*u,f=Ec(a)>180;f^(u*afof&&(of=o):f^(u*af<(c=(c+360)%360-180)&&cof&&(of=n)),f?tKf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t):rf>=nf?(trf&&(rf=t)):t>af?Kf(nf,t)>Kf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t)}else lf.push(hf=[nf=t,rf=t]);nof&&(of=n),ff=e,af=t}function Gf(){jf.point=Xf}function Vf(){hf[0]=nf,hf[1]=rf,jf.point=Hf,ff=null}function $f(t,n){if(ff){var e=t-af;sf.add(Ec(e)>180?e+(e>0?360:-360):e)}else uf=t,cf=n;gf.point(t,n),Xf(t,n)}function Wf(){gf.lineStart()}function Zf(){$f(uf,cf),gf.lineEnd(),Ec(sf)>bc&&(nf=-(rf=180)),hf[0]=nf,hf[1]=rf,ff=null}function Kf(t,n){return(n-=t)<0?n+360:n}function Qf(t,n){return t[0]-n[0]}function Jf(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nxc?t+Math.round(-t/Ac)*Ac:t,n]}function ps(t,n,e){return(t%=Ac)?n||e?hs(ys(t),vs(n,e)):ys(t):n||e?vs(n,e):ds}function gs(t){return function(n,e){return[(n+=t)>xc?n-Ac:n<-xc?n+Ac:n,e]}}function ys(t){var n=gs(t);return n.invert=gs(-t),n}function vs(t,n){var e=Cc(t),r=Fc(t),i=Cc(n),o=Fc(n);function a(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*e+u*r;return[Nc(c*i-s*o,u*e-f*r),Yc(s*i+c*o)]}return a.invert=function(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*i-c*o;return[Nc(c*i+f*o,u*e+s*r),Yc(s*e-u*r)]},a}function _s(t){function n(n){return(n=t(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n}return t=ps(t[0]*Sc,t[1]*Sc,t.length>2?t[2]*Sc:0),n.invert=function(n){return(n=t.invert(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n},n}function bs(t,n,e,r,i,o){if(e){var a=Cc(n),u=Fc(n),c=r*e;null==i?(i=n+r*Ac,o=n-c/2):(i=ms(a,i),o=ms(a,o),(r>0?io)&&(i+=r*Ac));for(var f,s=i;r>0?s>o:s1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function ws(t,n){return Ec(t[0]-n[0])=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Ts(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r=0?1:-1,E=S*T,k=E>xc,N=v*M;if(c.add(Nc(N*S*Fc(E),_*A+N*Cc(E))),a+=k?T+S*Ac:T,k^p>=e^x>=e){var C=Mf(xf(d),xf(m));Sf(C);var P=Mf(o,C);Sf(P);var z=(k^T>=0?-1:1)*Yc(P[2]);(r>z||r===z&&(C[0]||C[1]))&&(u+=k^T>=0?1:-1)}}return(a<-1e-6||a0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(Ns))}return h}}function Ns(t){return t.length>1}function Cs(t,n){return((t=t.x)[0]<0?t[1]-wc-bc:wc-t[1])-((n=n.x)[0]<0?n[1]-wc-bc:wc-n[1])}ds.invert=ds;var Ps=ks((function(){return!0}),(function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?xc:-xc,c=Ec(o-e);Ec(c-xc)0?wc:-wc),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=xc&&(Ec(e-i)bc?kc((Fc(n)*(o=Cc(r))*Fc(e)-Fc(r)*(i=Cc(n))*Fc(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}),(function(t,n,e,r){var i;if(null==t)i=e*wc,r.point(-xc,i),r.point(0,i),r.point(xc,i),r.point(xc,0),r.point(xc,-i),r.point(0,-i),r.point(-xc,-i),r.point(-xc,0),r.point(-xc,i);else if(Ec(t[0]-n[0])>bc){var o=t[0]0,i=Ec(n)>bc;function o(t,e){return Cc(t)*Cc(e)>n}function a(t,e,r){var i=[1,0,0],o=Mf(xf(t),xf(e)),a=wf(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=Mf(i,o),h=Tf(i,f);Af(h,Tf(o,s));var d=l,p=wf(h,d),g=wf(d,d),y=p*p-g*(wf(h,h)-1);if(!(y<0)){var v=Ic(y),_=Tf(d,(-p-v)/g);if(Af(_,h),_=mf(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x0^_[1]<(Ec(_[0]-m)xc^(m<=_[0]&&_[0]<=x)){var S=Tf(d,(-p+v)/g);return Af(S,h),[_,mf(S)]}}}function u(n,e){var i=r?t:xc-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return ks(o,(function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],g=o(l,h),y=r?g?0:u(l,h):g?u(l+(l<0?xc:-xc),h):0;if(!n&&(f=c=g)&&t.lineStart(),g!==c&&(!(d=a(n,p))||ws(n,d)||ws(p,d))&&(p[2]=1),g!==c)s=0,g?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1],2),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;y&e||!(v=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1],3)))}!g||n&&ws(n,p)||t.point(p[0],p[1]),n=p,c=g,e=y},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}}),(function(n,r,i,o){bs(o,t,e,i,n,r)}),r?[0,-t]:[-xc,t-xc])}var Ds,qs,Rs,Fs,Os=1e9,Is=-Os;function Us(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return Ec(r[0]-t)0?0:3:Ec(r[0]-e)0?2:1:Ec(r[1]-n)0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,g,y,v,_,b=a,m=xs(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(M(l,h),d&&y&&m.rejoin(),c.push(m.result()));x.point=w,y&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;er&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=V(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&As(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),v)l=o,h=a,d=u,v=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&y)b.point(o,a);else{var c=[p=Math.max(Is,Math.min(Os,p)),g=Math.max(Is,Math.min(Os,g))],m=[o=Math.max(Is,Math.min(Os,o)),a=Math.max(Is,Math.min(Os,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a0)){if(a/=h,h<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,g=a,y=u}return x}}var Bs={sphere:jc,point:jc,lineStart:function(){Bs.point=Ls,Bs.lineEnd=Ys},lineEnd:jc,polygonStart:jc,polygonEnd:jc};function Ys(){Bs.point=Bs.lineEnd=jc}function Ls(t,n){qs=t*=Sc,Rs=Fc(n*=Sc),Fs=Cc(n),Bs.point=js}function js(t,n){t*=Sc;var e=Fc(n*=Sc),r=Cc(n),i=Ec(t-qs),o=Cc(i),a=r*Fc(i),u=Fs*e-Rs*r*o,c=Rs*e+Fs*r*o;Ds.add(Nc(Ic(a*a+u*u),c)),qs=t,Rs=e,Fs=r}function Hs(t){return Ds=new g,Wc(t,Bs),+Ds}var Xs=[null,null],Gs={type:"LineString",coordinates:Xs};function Vs(t,n){return Xs[0]=t,Xs[1]=n,Hs(Gs)}var $s={Feature:function(t,n){return Zs(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r0&&(i=Vs(t[o],t[o-1]))>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))bc})).map(c)).concat(Z(Pc(o/d)*d,i,d).filter((function(t){return Ec(t%g)>bc})).map(f))}return v.lines=function(){return _().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),v.precision(y)):[[r,u],[e,a]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),v.precision(y)):[[n,o],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(y=+h,c=el(o,i,90),f=rl(n,t,y),s=el(u,a,90),l=rl(r,e,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}var ol,al,ul,cl,fl=t=>t,sl=new g,ll=new g,hl={point:jc,lineStart:jc,lineEnd:jc,polygonStart:function(){hl.lineStart=dl,hl.lineEnd=yl},polygonEnd:function(){hl.lineStart=hl.lineEnd=hl.point=jc,sl.add(Ec(ll)),ll=new g},result:function(){var t=sl/2;return sl=new g,t}};function dl(){hl.point=pl}function pl(t,n){hl.point=gl,ol=ul=t,al=cl=n}function gl(t,n){ll.add(cl*t-ul*n),ul=t,cl=n}function yl(){gl(ol,al)}var vl=1/0,_l=vl,bl=-vl,ml=bl,xl={point:function(t,n){tbl&&(bl=t);n<_l&&(_l=n);n>ml&&(ml=n)},lineStart:jc,lineEnd:jc,polygonStart:jc,polygonEnd:jc,result:function(){var t=[[vl,_l],[bl,ml]];return bl=ml=-(_l=vl=1/0),t}};var wl,Ml,Al,Tl,Sl=0,El=0,kl=0,Nl=0,Cl=0,Pl=0,zl=0,Dl=0,ql=0,Rl={point:Fl,lineStart:Ol,lineEnd:Bl,polygonStart:function(){Rl.lineStart=Yl,Rl.lineEnd=Ll},polygonEnd:function(){Rl.point=Fl,Rl.lineStart=Ol,Rl.lineEnd=Bl},result:function(){var t=ql?[zl/ql,Dl/ql]:Pl?[Nl/Pl,Cl/Pl]:kl?[Sl/kl,El/kl]:[NaN,NaN];return Sl=El=kl=Nl=Cl=Pl=zl=Dl=ql=0,t}};function Fl(t,n){Sl+=t,El+=n,++kl}function Ol(){Rl.point=Il}function Il(t,n){Rl.point=Ul,Fl(Al=t,Tl=n)}function Ul(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,Fl(Al=t,Tl=n)}function Bl(){Rl.point=Fl}function Yl(){Rl.point=jl}function Ll(){Hl(wl,Ml)}function jl(t,n){Rl.point=Hl,Fl(wl=Al=t,Ml=Tl=n)}function Hl(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,zl+=(i=Tl*t-Al*n)*(Al+t),Dl+=i*(Tl+n),ql+=3*i,Fl(Al=t,Tl=n)}function Xl(t){this._context=t}Xl.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Ac)}},result:jc};var Gl,Vl,$l,Wl,Zl,Kl=new g,Ql={point:jc,lineStart:function(){Ql.point=Jl},lineEnd:function(){Gl&&th(Vl,$l),Ql.point=jc},polygonStart:function(){Gl=!0},polygonEnd:function(){Gl=null},result:function(){var t=+Kl;return Kl=new g,t}};function Jl(t,n){Ql.point=th,Vl=Wl=t,$l=Zl=n}function th(t,n){Wl-=t,Zl-=n,Kl.add(Ic(Wl*Wl+Zl*Zl)),Wl=t,Zl=n}function nh(){this._string=[]}function eh(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function rh(t){return function(n){var e=new ih;for(var r in t)e[r]=t[r];return e.stream=n,e}}function ih(){}function oh(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Wc(e,t.stream(xl)),n(xl.result()),null!=r&&t.clipExtent(r),t}function ah(t,n,e){return oh(t,(function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])}),e)}function uh(t,n,e){return ah(t,[[0,0],n],e)}function ch(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])}),e)}function fh(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])}),e)}nh.prototype={_radius:4.5,_circle:eh(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=eh(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},ih.prototype={constructor:ih,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sh=Cc(30*Sc);function lh(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,g,y){var v=f-r,_=s-i,b=v*v+_*_;if(b>4*n&&g--){var m=a+h,x=u+d,w=c+p,M=Ic(m*m+x*x+w*w),A=Yc(w/=M),T=Ec(Ec(w)-1)n||Ec((v*N+_*C)/b-.5)>.3||a*h+u*d+c*p2?t[2]%360*Sc:0,N()):[y*Tc,v*Tc,_*Tc]},E.angle=function(t){return arguments.length?(b=t%360*Sc,N()):b*Tc},E.reflectX=function(t){return arguments.length?(m=t?-1:1,N()):m<0},E.reflectY=function(t){return arguments.length?(x=t?-1:1,N()):x<0},E.precision=function(t){return arguments.length?(a=lh(u,S=t*t),C()):Ic(S)},E.fitExtent=function(t,n){return ah(E,t,n)},E.fitSize=function(t,n){return uh(E,t,n)},E.fitWidth=function(t,n){return ch(E,t,n)},E.fitHeight=function(t,n){return fh(E,t,n)},function(){return n=t.apply(this,arguments),E.invert=n.invert&&k,N()}}function yh(t){var n=0,e=xc/3,r=gh(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Sc,e=t[1]*Sc):[n*Tc,e*Tc]},i}function vh(t,n){var e=Fc(t),r=(e+Fc(n))/2;if(Ec(r)0?n<-wc+bc&&(n=-wc+bc):n>wc-bc&&(n=wc-bc);var e=i/Rc(Sh(n),r);return[e*Fc(r*t),i-e*Cc(r*t)]}return o.invert=function(t,n){var e=i-n,o=Oc(r)*Ic(t*t+e*e),a=Nc(t,Ec(e))*Oc(e);return e*r<0&&(a-=xc*Oc(t)*Oc(e)),[a/r,2*kc(Rc(i/o,1/r))-wc]},o}function kh(t,n){return[t,n]}function Nh(t,n){var e=Cc(t),r=t===n?Fc(t):(e-Cc(n))/(n-t),i=e/r+t;if(Ec(r)=0;)n+=e[r].value;else n=1;t.value=n}function Xh(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=Vh)):void 0===n&&(n=Gh);for(var e,r,i,o,a,u=new Zh(t),c=[u];e=c.pop();)if((i=n(e.data))&&(a=(i=Array.from(i)).length))for(e.children=i,o=a-1;o>=0;--o)c.push(r=i[o]=new Zh(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Wh)}function Gh(t){return t.children}function Vh(t){return Array.isArray(t)?t[1]:null}function $h(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function Wh(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Zh(t){this.data=t,this.depth=this.height=0,this.parent=null}function Kh(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(Array.from(t))).length,o=[];r0&&e*e>r*r+i*i}function nd(t,n){for(var e=0;e(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function ad(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function ud(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function cd(t){this._=t,this.next=null,this.previous=null}function fd(t){if(!(i=(t=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(t)).length))return 0;var n,e,r,i,o,a,u,c,f,s,l;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;od(e,n,r=t[2]),n=new cd(n),e=new cd(e),r=new cd(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;ubc&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ih.invert=xh(Yc),Uh.invert=xh((function(t){return 2*kc(t)})),Bh.invert=function(t,n){return[-n,2*kc(zc(t))-wc]},Zh.prototype=Xh.prototype={constructor:Zh,count:function(){return this.eachAfter(Hh)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,o=this,a=[o],u=[],c=-1;o=a.pop();)if(u.push(o),e=o.children)for(r=0,i=e.length;r=0;--r)o.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Xh(this).eachBefore($h)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;eh&&(h=u),y=s*s*g,(d=Math.max(h/y,y/l))>p){s-=u;break}p=d}v.push(a={value:s,dice:c1?n:1)},e}(Pd);var qd=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l1?n:1)},e}(Pd);function Rd(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function Fd(t,n){return t[0]-n[0]||t[1]-n[1]}function Od(t){const n=t.length,e=[0,1];let r,i=2;for(r=2;r1&&Rd(t[e[i-2]],t[e[i-1]],t[r])<=0;)--i;e[i++]=r}return e.slice(0,i)}var Id=Math.random,Ud=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Id),Bd=function t(n){function e(t,e){return arguments.length<2&&(e=t,t=0),t=Math.floor(t),e=Math.floor(e)-t,function(){return Math.floor(n()*e+t)}}return e.source=t,e}(Id),Yd=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Id),Ld=function t(n){var e=Yd.source(n);function r(){var t=e.apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(Id),jd=function t(n){function e(t){return(t=+t)<=0?()=>0:function(){for(var e=0,r=t;r>1;--r)e+=n();return e+r*n()}}return e.source=t,e}(Id),Hd=function t(n){var e=jd.source(n);function r(t){if(0==(t=+t))return n;var r=e(t);return function(){return r()/t}}return r.source=t,r}(Id),Xd=function t(n){function e(t){return function(){return-Math.log1p(-n())/t}}return e.source=t,e}(Id),Gd=function t(n){function e(t){if((t=+t)<0)throw new RangeError("invalid alpha");return t=1/-t,function(){return Math.pow(1-n(),t)}}return e.source=t,e}(Id),Vd=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return function(){return Math.floor(n()+t)}}return e.source=t,e}(Id),$d=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return 0===t?()=>1/0:1===t?()=>1:(t=Math.log1p(-t),function(){return 1+Math.floor(Math.log1p(-n())/t)})}return e.source=t,e}(Id),Wd=function t(n){var e=Yd.source(n)();function r(t,r){if((t=+t)<0)throw new RangeError("invalid k");if(0===t)return()=>0;if(r=null==r?1:+r,1===t)return()=>-Math.log1p(-n())*r;var i=(t<1?t+1:t)-1/3,o=1/(3*Math.sqrt(i)),a=t<1?()=>Math.pow(n(),1/t):()=>1;return function(){do{do{var t=e(),u=1+o*t}while(u<=0);u*=u*u;var c=1-n()}while(c>=1-.0331*t*t*t*t&&Math.log(c)>=.5*t*t+i*(1-u+Math.log(u)));return i*u*a()*r}}return r.source=t,r}(Id),Zd=function t(n){var e=Wd.source(n);function r(t,n){var r=e(t),i=e(n);return function(){var t=r();return 0===t?0:t/(t+i())}}return r.source=t,r}(Id),Kd=function t(n){var e=$d.source(n),r=Zd.source(n);function i(t,n){return t=+t,(n=+n)>=1?()=>t:n<=0?()=>0:function(){for(var i=0,o=t,a=n;o*a>16&&o*(1-a)>16;){var u=Math.floor((o+1)*a),c=r(u,o-u+1)();c<=a?(i+=u,o-=u,a=(a-c)/(1-c)):(o=u-1,a/=c)}for(var f=a<.5,s=e(f?a:1-a),l=s(),h=0;l<=o;++h)l+=s();return i+(f?h:o-h)}}return i.source=t,i}(Id),Qd=function t(n){function e(t,e,r){var i;return 0==(t=+t)?i=t=>-Math.log(t):(t=1/t,i=n=>Math.pow(n,t)),e=null==e?0:+e,r=null==r?1:+r,function(){return e+r*i(-Math.log1p(-n()))}}return e.source=t,e}(Id),Jd=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){return t+e*Math.tan(Math.PI*n())}}return e.source=t,e}(Id),tp=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){var r=n();return t+e*Math.log(r/(1-r))}}return e.source=t,e}(Id),np=function t(n){var e=Wd.source(n),r=Kd.source(n);function i(t){return function(){for(var i=0,o=t;o>16;){var a=Math.floor(.875*o),u=e(a)();if(u>o)return i+r(a-1,o/u)();i+=a,o-=u}for(var c=-Math.log1p(-n()),f=0;c<=o;++f)c-=Math.log1p(-n());return i+f}}return i.source=t,i}(Id);const ep=1/4294967296;function rp(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function ip(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const op=Symbol("implicit");function ap(){var t=new Map,n=[],e=[],r=op;function i(i){var o=i+"",a=t.get(o);if(!a){if(r!==op)return r;t.set(o,a=n.push(i))}return e[(a-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Map;for(const r of e){const e=r+"";t.has(e)||t.set(e,n.push(r))}return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return ap(n,e).unknown(r)},rp.apply(i,arguments),i}function up(){var t,n,e=ap().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,u=!1,c=0,f=0,s=.5;function l(){var e=r().length,l=an&&(e=t,t=n,n=e),function(e){return Math.max(t,Math.min(n,e))}}(a[0],a[t-1])),r=t>2?pp:dp,i=o=null,l}function l(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),_r)))(e)))},l.domain=function(t){return arguments.length?(a=Array.from(t,fp),s()):a.slice()},l.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},l.rangeRound=function(t){return u=Array.from(t),c=Ar,s()},l.clamp=function(t){return arguments.length?(f=!!t||lp,s()):f!==lp},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function vp(){return yp()(lp,lp)}function _p(n,e,r,i){var o,a=F(n,e,r);switch((i=ac(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=vc(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=_c(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=yc(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function bp(t){var n=t.domain;return t.ticks=function(t){var e=n();return q(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return _p(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,u=o.length-1,c=o[a],f=o[u],s=10;for(f0;){if((i=R(c,f,e))===r)return o[a]=c,o[u]=f,n(o);if(i>0)c=Math.floor(c/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,f=Math.floor(f*i)/i}r=i}return t},t}function mp(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a0){for(;h<=d;++h)for(s=1,f=r(h);sc)break;g.push(l)}}else for(;h<=d;++h)for(s=a-1,f=r(h);s>=1;--s)if(!((l=f*s)c)break;g.push(l)}2*g.length0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a=n)for(;t(n),!e(n);)n.setTime(n-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););}))},e&&(i.count=function(n,r){return Ip.setTime(+n),Up.setTime(+r),t(Ip),t(Up),Math.floor(e(Ip,Up))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var Yp=Bp((function(){}),(function(t,n){t.setTime(+t+n)}),(function(t,n){return n-t}));Yp.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Bp((function(n){n.setTime(Math.floor(n/t)*t)}),(function(n,e){n.setTime(+n+e*t)}),(function(n,e){return(e-n)/t})):Yp:null};var Lp=Yp.range;const jp=1e3,Hp=6e4,Xp=36e5,Gp=864e5,Vp=6048e5,$p=2592e6,Wp=31536e6;var Zp=Bp((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,n){t.setTime(+t+n*jp)}),(function(t,n){return(n-t)/jp}),(function(t){return t.getUTCSeconds()})),Kp=Zp.range,Qp=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getMinutes()})),Jp=Qp.range,tg=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp-t.getMinutes()*Hp)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getHours()})),ng=tg.range,eg=Bp((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Gp),(t=>t.getDate()-1)),rg=eg.range;function ig(t){return Bp((function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),(function(t,n){t.setDate(t.getDate()+7*n)}),(function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Vp}))}var og=ig(0),ag=ig(1),ug=ig(2),cg=ig(3),fg=ig(4),sg=ig(5),lg=ig(6),hg=og.range,dg=ag.range,pg=ug.range,gg=cg.range,yg=fg.range,vg=sg.range,_g=lg.range,bg=Bp((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,n){t.setMonth(t.getMonth()+n)}),(function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),mg=bg.range,xg=Bp((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n)}),(function(t,n){return n.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));xg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,e){n.setFullYear(n.getFullYear()+e*t)})):null};var wg=xg.range,Mg=Bp((function(t){t.setUTCSeconds(0,0)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getUTCMinutes()})),Ag=Mg.range,Tg=Bp((function(t){t.setUTCMinutes(0,0,0)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getUTCHours()})),Sg=Tg.range,Eg=Bp((function(t){t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+n)}),(function(t,n){return(n-t)/Gp}),(function(t){return t.getUTCDate()-1})),kg=Eg.range;function Ng(t){return Bp((function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+7*n)}),(function(t,n){return(n-t)/Vp}))}var Cg=Ng(0),Pg=Ng(1),zg=Ng(2),Dg=Ng(3),qg=Ng(4),Rg=Ng(5),Fg=Ng(6),Og=Cg.range,Ig=Pg.range,Ug=zg.range,Bg=Dg.range,Yg=qg.range,Lg=Rg.range,jg=Fg.range,Hg=Bp((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCMonth(t.getUTCMonth()+n)}),(function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),Xg=Hg.range,Gg=Bp((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)}),(function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Gg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null};var Vg=Gg.range;function $g(t,n,r,i,o,a){const u=[[Zp,1,jp],[Zp,5,5e3],[Zp,15,15e3],[Zp,30,3e4],[a,1,Hp],[a,5,3e5],[a,15,9e5],[a,30,18e5],[o,1,Xp],[o,3,108e5],[o,6,216e5],[o,12,432e5],[i,1,Gp],[i,2,1728e5],[r,1,Vp],[n,1,$p],[n,3,7776e6],[t,1,Wp]];function c(n,r,i){const o=Math.abs(r-n)/i,a=e((([,,t])=>t)).right(u,o);if(a===u.length)return t.every(F(n/Wp,r/Wp,i));if(0===a)return Yp.every(Math.max(F(n,r,i),1));const[c,f]=u[o/u[a-1][2]=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:bv,s:mv,S:By,u:Yy,U:Ly,V:Hy,w:Xy,W:Gy,x:null,X:null,y:Vy,Y:Wy,Z:Ky,"%":_v},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Qy,e:Qy,f:rv,g:pv,G:yv,H:Jy,I:tv,j:nv,L:ev,m:iv,M:ov,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:bv,s:mv,S:av,u:uv,U:cv,V:sv,w:lv,W:hv,x:null,X:null,y:dv,Y:gv,Z:vv,"%":_v},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=_.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return A(t,n,e,r)},d:wy,e:wy,f:ky,g:_y,G:vy,H:Ay,I:Ay,j:My,L:Ey,m:xy,M:Ty,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s.get(r[0].toLowerCase()),e+r[0].length):-1},q:my,Q:Cy,s:Py,S:Sy,u:dy,U:py,V:gy,w:hy,W:yy,x:function(t,n,r){return A(t,e,n,r)},X:function(t,n,e){return A(t,r,n,e)},y:_y,Y:vy,Z:by,"%":Ny};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=ty(ny(o.y,0,1))).getUTCDay(),r=i>4||0===i?Pg.ceil(r):Pg(r),r=Eg.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=Jg(ny(o.y,0,1))).getDay(),r=i>4||0===i?ag.ceil(r):ag(r),r=eg.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?ty(ny(o.y,0,1)).getUTCDay():Jg(ny(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,ty(o)):Jg(o)}}function A(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in iy?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}var ry,iy={"-":"",_:" ",0:"0"},oy=/^\s*\d+/,ay=/^%/,uy=/[\\^$*+?|[\]().{}]/g;function cy(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o[t.toLowerCase(),n])))}function hy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function dy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function py(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function gy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function yy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function vy(t,n,e){var r=oy.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function _y(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function by(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function my(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function xy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function wy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function My(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Ay(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Ty(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Sy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Ey(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ky(t,n,e){var r=oy.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Ny(t,n,e){var r=ay.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Cy(t,n,e){var r=oy.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Py(t,n,e){var r=oy.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function zy(t,n){return cy(t.getDate(),n,2)}function Dy(t,n){return cy(t.getHours(),n,2)}function qy(t,n){return cy(t.getHours()%12||12,n,2)}function Ry(t,n){return cy(1+eg.count(xg(t),t),n,3)}function Fy(t,n){return cy(t.getMilliseconds(),n,3)}function Oy(t,n){return Fy(t,n)+"000"}function Iy(t,n){return cy(t.getMonth()+1,n,2)}function Uy(t,n){return cy(t.getMinutes(),n,2)}function By(t,n){return cy(t.getSeconds(),n,2)}function Yy(t){var n=t.getDay();return 0===n?7:n}function Ly(t,n){return cy(og.count(xg(t)-1,t),n,2)}function jy(t){var n=t.getDay();return n>=4||0===n?fg(t):fg.ceil(t)}function Hy(t,n){return t=jy(t),cy(fg.count(xg(t),t)+(4===xg(t).getDay()),n,2)}function Xy(t){return t.getDay()}function Gy(t,n){return cy(ag.count(xg(t)-1,t),n,2)}function Vy(t,n){return cy(t.getFullYear()%100,n,2)}function $y(t,n){return cy((t=jy(t)).getFullYear()%100,n,2)}function Wy(t,n){return cy(t.getFullYear()%1e4,n,4)}function Zy(t,n){var e=t.getDay();return cy((t=e>=4||0===e?fg(t):fg.ceil(t)).getFullYear()%1e4,n,4)}function Ky(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+cy(n/60|0,"0",2)+cy(n%60,"0",2)}function Qy(t,n){return cy(t.getUTCDate(),n,2)}function Jy(t,n){return cy(t.getUTCHours(),n,2)}function tv(t,n){return cy(t.getUTCHours()%12||12,n,2)}function nv(t,n){return cy(1+Eg.count(Gg(t),t),n,3)}function ev(t,n){return cy(t.getUTCMilliseconds(),n,3)}function rv(t,n){return ev(t,n)+"000"}function iv(t,n){return cy(t.getUTCMonth()+1,n,2)}function ov(t,n){return cy(t.getUTCMinutes(),n,2)}function av(t,n){return cy(t.getUTCSeconds(),n,2)}function uv(t){var n=t.getUTCDay();return 0===n?7:n}function cv(t,n){return cy(Cg.count(Gg(t)-1,t),n,2)}function fv(t){var n=t.getUTCDay();return n>=4||0===n?qg(t):qg.ceil(t)}function sv(t,n){return t=fv(t),cy(qg.count(Gg(t),t)+(4===Gg(t).getUTCDay()),n,2)}function lv(t){return t.getUTCDay()}function hv(t,n){return cy(Pg.count(Gg(t)-1,t),n,2)}function dv(t,n){return cy(t.getUTCFullYear()%100,n,2)}function pv(t,n){return cy((t=fv(t)).getUTCFullYear()%100,n,2)}function gv(t,n){return cy(t.getUTCFullYear()%1e4,n,4)}function yv(t,n){var e=t.getUTCDay();return cy((t=e>=4||0===e?qg(t):qg.ceil(t)).getUTCFullYear()%1e4,n,4)}function vv(){return"+0000"}function _v(){return"%"}function bv(t){return+t}function mv(t){return Math.floor(+t/1e3)}function xv(n){return ry=ey(n),t.timeFormat=ry.format,t.timeParse=ry.parse,t.utcFormat=ry.utcFormat,t.utcParse=ry.utcParse,ry}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,xv({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var wv="%Y-%m-%dT%H:%M:%S.%LZ";var Mv=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(wv);var Av=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(wv);function Tv(t){return new Date(t)}function Sv(t){return t instanceof Date?+t:+new Date(+t)}function Ev(t,n,e,r,i,o,a,u,c,f){var s=vp(),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),g=f("%I:%M"),y=f("%I %p"),v=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y");function x(t){return(c(t)hr(t[t.length-1]),Xv=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Dv),Gv=Hv(Xv),Vv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Dv),$v=Hv(Vv),Wv=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Dv),Zv=Hv(Wv),Kv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Dv),Qv=Hv(Kv),Jv=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Dv),t_=Hv(Jv),n_=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Dv),e_=Hv(n_),r_=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Dv),i_=Hv(r_),o_=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Dv),a_=Hv(o_),u_=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Dv),c_=Hv(u_),f_=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Dv),s_=Hv(f_),l_=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Dv),h_=Hv(l_),d_=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Dv),p_=Hv(d_),g_=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Dv),y_=Hv(g_),v_=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Dv),__=Hv(v_),b_=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Dv),m_=Hv(b_),x_=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Dv),w_=Hv(x_),M_=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Dv),A_=Hv(M_),T_=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Dv),S_=Hv(T_),E_=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Dv),k_=Hv(E_),N_=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Dv),C_=Hv(N_),P_=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Dv),z_=Hv(P_),D_=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Dv),q_=Hv(D_),R_=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Dv),F_=Hv(R_),O_=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Dv),I_=Hv(O_),U_=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Dv),B_=Hv(U_),Y_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Dv),L_=Hv(Y_),j_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Dv),H_=Hv(j_);var X_=Lr(tr(300,.5,0),tr(-240,.5,1)),G_=Lr(tr(-100,.75,.35),tr(80,1.5,.8)),V_=Lr(tr(260,.75,.35),tr(80,1.5,.8)),$_=tr();var W_=ve(),Z_=Math.PI/3,K_=2*Math.PI/3;function Q_(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var J_=Q_(Dv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),tb=Q_(Dv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),nb=Q_(Dv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),eb=Q_(Dv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function rb(t){return function(){return t}}var ib=Math.abs,ob=Math.atan2,ab=Math.cos,ub=Math.max,cb=Math.min,fb=Math.sin,sb=Math.sqrt,lb=1e-12,hb=Math.PI,db=hb/2,pb=2*hb;function gb(t){return t>1?0:t<-1?hb:Math.acos(t)}function yb(t){return t>=1?db:t<=-1?-db:Math.asin(t)}function vb(t){return t.innerRadius}function _b(t){return t.outerRadius}function bb(t){return t.startAngle}function mb(t){return t.endAngle}function xb(t){return t&&t.padAngle}function wb(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*hC*C+P*P&&(A=S,T=E),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}var Ab=Array.prototype.slice;function Tb(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Sb(t){this._context=t}function Eb(t){return new Sb(t)}function kb(t){return t[0]}function Nb(t){return t[1]}function Cb(t,n){var e=rb(!0),r=null,i=Eb,o=null;function a(a){var u,c,f,s=(a=Tb(a)).length,l=!1;for(null==r&&(o=i(f=fa())),u=0;u<=s;++u)!(u=s;--l)u.point(y[l],v[l]);u.lineEnd(),u.areaEnd()}g&&(y[f]=+t(h,f,c),v[f]=+n(h,f,c),u.point(r?+r(h,f,c):y[f],e?+e(h,f,c):v[f]))}if(d)return u=null,d+""||null}function f(){return Cb().defined(i).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?kb:rb(+t),n="function"==typeof n?n:rb(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?Nb:rb(+e),c.x=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),r=null,c):t},c.x0=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),c):t},c.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:rb(+t),c):r},c.y=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),e=null,c):n},c.y0=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),c):n},c.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:rb(+t),c):e},c.lineX0=c.lineY0=function(){return f().x(t).y(n)},c.lineY1=function(){return f().x(t).y(e)},c.lineX1=function(){return f().x(r).y(n)},c.defined=function(t){return arguments.length?(i="function"==typeof t?t:rb(!!t),c):i},c.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),c):a},c.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),c):o},c}function zb(t,n){return nt?1:n>=t?0:NaN}function Db(t){return t}Sb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var qb=Fb(Eb);function Rb(t){this._curve=t}function Fb(t){function n(n){return new Rb(t(n))}return n._curve=t,n}function Ob(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Ib(){return Ob(Cb().curve(qb))}function Ub(){var t=Pb().curve(qb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Ob(e())},delete t.lineX0,t.lineEndAngle=function(){return Ob(r())},delete t.lineX1,t.lineInnerRadius=function(){return Ob(i())},delete t.lineY0,t.lineOuterRadius=function(){return Ob(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Bb(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Yb(t){return t.source}function Lb(t){return t.target}function jb(t){var n=Yb,e=Lb,r=kb,i=Nb,o=null;function a(){var a,u=Ab.call(arguments),c=n.apply(this,u),f=e.apply(this,u);if(o||(o=a=fa()),t(o,+r.apply(this,(u[0]=c,u)),+i.apply(this,u),+r.apply(this,(u[0]=f,u)),+i.apply(this,u)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.y=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function Hb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Xb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Gb(t,n,e,r,i){var o=Bb(n,e),a=Bb(n,e=(e+i)/2),u=Bb(r,e),c=Bb(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],c[0],c[1])}Rb.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Vb={draw:function(t,n){var e=Math.sqrt(n/hb);t.moveTo(e,0),t.arc(0,0,e,0,pb)}},$b={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Wb=Math.sqrt(1/3),Zb=2*Wb,Kb={draw:function(t,n){var e=Math.sqrt(n/Zb),r=e*Wb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Qb=Math.sin(hb/10)/Math.sin(7*hb/10),Jb=Math.sin(pb/10)*Qb,tm=-Math.cos(pb/10)*Qb,nm={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Jb*e,i=tm*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=pb*o/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*e,-u*e),t.lineTo(u*r-c*i,c*r+u*i)}t.closePath()}},em={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},rm=Math.sqrt(3),im={draw:function(t,n){var e=-Math.sqrt(n/(3*rm));t.moveTo(0,2*e),t.lineTo(-rm*e,-e),t.lineTo(rm*e,-e),t.closePath()}},om=-.5,am=Math.sqrt(3)/2,um=1/Math.sqrt(12),cm=3*(um/2+1),fm={draw:function(t,n){var e=Math.sqrt(n/cm),r=e/2,i=e*um,o=r,a=e*um+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(om*r-am*i,am*r+om*i),t.lineTo(om*o-am*a,am*o+om*a),t.lineTo(om*u-am*c,am*u+om*c),t.lineTo(om*r+am*i,om*i-am*r),t.lineTo(om*o+am*a,om*a-am*o),t.lineTo(om*u+am*c,om*c-am*u),t.closePath()}},sm=[Vb,$b,Kb,em,nm,im,fm];function lm(){}function hm(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function dm(t){this._context=t}function pm(t){this._context=t}function gm(t){this._context=t}dm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:hm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},pm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},gm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};class ym{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}function vm(t,n){this._basis=new dm(t),this._beta=n}vm.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var _m=function t(n){function e(t){return 1===n?new dm(t):new vm(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function bm(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function mm(t,n){this._context=t,this._k=(1-n)/6}mm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:bm(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var xm=function t(n){function e(t){return new mm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function wm(t,n){this._context=t,this._k=(1-n)/6}wm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Mm=function t(n){function e(t){return new wm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Am(t,n){this._context=t,this._k=(1-n)/6}Am.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Tm=function t(n){function e(t){return new Am(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Sm(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>lb){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>lb){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Em(t,n){this._context=t,this._alpha=n}Em.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var km=function t(n){function e(t){return n?new Em(t,n):new mm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Nm(t,n){this._context=t,this._alpha=n}Nm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Cm=function t(n){function e(t){return n?new Nm(t,n):new wm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Pm(t,n){this._context=t,this._alpha=n}Pm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var zm=function t(n){function e(t){return n?new Pm(t,n):new Am(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Dm(t){this._context=t}function qm(t){return t<0?-1:1}function Rm(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(qm(o)+qm(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function Fm(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Om(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function Im(t){this._context=t}function Um(t){this._context=new Bm(t)}function Bm(t){this._context=t}function Ym(t){this._context=t}function Lm(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o=0;)e[n]=n;return e}function Gm(t,n){return t[n]}function Vm(t){const n=[];return n.key=t,n}function $m(t){var n=t.map(Wm);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Wm(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++eo&&(o=n,r=e);return r}function Zm(t){var n=t.map(Km);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Km(t){for(var n,e=0,r=-1,i=t.length;++r=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var Qm=t=>()=>t;function Jm(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function tx(t,n,e){this.k=t,this.x=n,this.y=e}tx.prototype={constructor:tx,scale:function(t){return 1===t?this:new tx(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new tx(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var nx=new tx(1,0,0);function ex(t){for(;!t.__zoom;)if(!(t=t.parentNode))return nx;return t.__zoom}function rx(t){t.stopImmediatePropagation()}function ix(t){t.preventDefault(),t.stopImmediatePropagation()}function ox(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function ax(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function ux(){return this.__zoom||nx}function cx(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function fx(){return navigator.maxTouchPoints||"ontouchstart"in this}function sx(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}ex.prototype=tx.prototype,t.Adder=g,t.Delaunay=nu,t.FormatSpecifier=uc,t.InternMap=y,t.InternSet=v,t.Voronoi=Wa,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>1&&e.name===n)return new ji([[t]],_o,n,+r);return null},t.arc=function(){var t=vb,n=_b,e=rb(0),r=null,i=bb,o=mb,a=xb,u=null;function c(){var c,f,s=+t.apply(this,arguments),l=+n.apply(this,arguments),h=i.apply(this,arguments)-db,d=o.apply(this,arguments)-db,p=ib(d-h),g=d>h;if(u||(u=c=fa()),llb)if(p>pb-lb)u.moveTo(l*ab(h),l*fb(h)),u.arc(0,0,l,h,d,!g),s>lb&&(u.moveTo(s*ab(d),s*fb(d)),u.arc(0,0,s,d,h,g));else{var y,v,_=h,b=d,m=h,x=d,w=p,M=p,A=a.apply(this,arguments)/2,T=A>lb&&(r?+r.apply(this,arguments):sb(s*s+l*l)),S=cb(ib(l-s)/2,+e.apply(this,arguments)),E=S,k=S;if(T>lb){var N=yb(T/s*fb(A)),C=yb(T/l*fb(A));(w-=2*N)>lb?(m+=N*=g?1:-1,x-=N):(w=0,m=x=(h+d)/2),(M-=2*C)>lb?(_+=C*=g?1:-1,b-=C):(M=0,_=b=(h+d)/2)}var P=l*ab(_),z=l*fb(_),D=s*ab(x),q=s*fb(x);if(S>lb){var R,F=l*ab(b),O=l*fb(b),I=s*ab(m),U=s*fb(m);if(plb?k>lb?(y=Mb(I,U,P,z,l,k,g),v=Mb(F,O,D,q,l,k,g),u.moveTo(y.cx+y.x01,y.cy+y.y01),klb&&w>lb?E>lb?(y=Mb(D,q,F,O,s,-E,g),v=Mb(P,z,I,U,s,-E,g),u.lineTo(y.cx+y.x01,y.cy+y.y01),E>a,f=i+2*u>>a,s=wa(20);function l(r){var i=new Float32Array(c*f),l=new Float32Array(c*f);r.forEach((function(r,o,s){var l=+t(r,o,s)+u>>a,h=+n(r,o,s)+u>>a,d=+e(r,o,s);l>=0&&l=0&&h>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a);var d=s(i);if(!Array.isArray(d)){var p=B(i);d=F(0,p,d),(d=Z(0,Math.floor(p/d)*d,d)).shift()}return ka().thresholds(d).size([c,f])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function y(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,l}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:wa(+n),l):t},l.y=function(t){return arguments.length?(n="function"==typeof t?t:wa(+t),l):n},l.weight=function(t){return arguments.length?(e="function"==typeof t?t:wa(+t),l):e},l.size=function(t){if(!arguments.length)return[r,i];var n=+t[0],e=+t[1];if(!(n>=0&&e>=0))throw new Error("invalid size");return r=n,i=e,y()},l.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),l):s},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},t.contours=ka,t.count=c,t.create=function(t){return Dn(At(t).call(document.documentElement))},t.creator=At,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(l)).map(f),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(s))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}},t.csv=Pu,t.csvFormat=hu,t.csvFormatBody=du,t.csvFormatRow=gu,t.csvFormatRows=pu,t.csvFormatValue=yu,t.csvParse=su,t.csvParseRows=lu,t.cubehelix=tr,t.cumsum=function(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)},t.curveBasis=function(t){return new dm(t)},t.curveBasisClosed=function(t){return new pm(t)},t.curveBasisOpen=function(t){return new gm(t)},t.curveBumpX=function(t){return new ym(t,!0)},t.curveBumpY=function(t){return new ym(t,!1)},t.curveBundle=_m,t.curveCardinal=xm,t.curveCardinalClosed=Mm,t.curveCardinalOpen=Tm,t.curveCatmullRom=km,t.curveCatmullRomClosed=Cm,t.curveCatmullRomOpen=zm,t.curveLinear=Eb,t.curveLinearClosed=function(t){return new Dm(t)},t.curveMonotoneX=function(t){return new Im(t)},t.curveMonotoneY=function(t){return new Um(t)},t.curveNatural=function(t){return new Ym(t)},t.curveStep=function(t){return new jm(t,.5)},t.curveStepAfter=function(t){return new jm(t,1)},t.curveStepBefore=function(t){return new jm(t,0)},t.descending=function(t,n){return nt?1:n>=t?0:NaN},t.deviation=d,t.difference=function(t,...n){t=new Set(t);for(const e of n)for(const n of e)t.delete(n);return t},t.disjoint=function(t,n){const e=n[Symbol.iterator](),r=new Set;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0},t.dispatch=pt,t.drag=function(){var t,n,e,r,i=Xn,o=Gn,a=Vn,u=$n,c={},f=pt("start","drag","end"),s=0,l=0;function h(t){t.on("mousedown.drag",d).filter(u).on("touchstart.drag",y).on("touchmove.drag",v).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(a,u){if(!r&&i.call(this,a,u)){var c=b(this,o.call(this,a,u),a,u,"mouse");c&&(Dn(a.view).on("mousemove.drag",p,!0).on("mouseup.drag",g,!0),Yn(a.view),Un(a),e=!1,t=a.clientX,n=a.clientY,c("start",a))}}function p(r){if(Bn(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>l}c.mouse("drag",r)}function g(t){Dn(t.view).on("mousemove.drag mouseup.drag",null),Ln(t.view,e),Bn(t),c.mouse("end",t)}function y(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),c=a.length;for(e=0;e+t,t.easePoly=Ki,t.easePolyIn=Wi,t.easePolyInOut=Ki,t.easePolyOut=Zi,t.easeQuad=Vi,t.easeQuadIn=function(t){return t*t},t.easeQuadInOut=Vi,t.easeQuadOut=function(t){return t*(2-t)},t.easeSin=to,t.easeSinIn=function(t){return 1==+t?1:1-Math.cos(t*Ji)},t.easeSinInOut=to,t.easeSinOut=function(t){return Math.sin(t*Ji)},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0},t.extent=p,t.fcumsum=function(t,n){const e=new g;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e},t.forceCenter=function(t,n){var e,r=1;function i(){var i,o,a=e.length,u=0,c=0;for(i=0;if+p||os+p||ac.index){var g=f-u.x-u.vx,y=s-u.y-u.vy,v=g*g+y*y;vt.r&&(t.r=t[n].r)}function c(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r[u(t,n,r),t])));for(a=0,i=new Array(f);a=u)){(t.data!==n||t.next)&&(0===l&&(p+=(l=Vu(e))*l),0===h&&(p+=(h=Vu(e))*h),p(t=(1664525*t+1013904223)%Qu)/Qu}();function l(){h(),f.call("tick",n),e1?(null==e?u.delete(t):u.set(t,p(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=Gu(.1);function o(t){for(var i,o=0,a=n.length;o=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++eKf(r[0],r[1])&&(r[1]=i[1]),Kf(i[0],r[1])>Kf(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Kf(r[1],i[0]))>a&&(a=u,nf=i[0],rf=r[1])}return lf=hf=null,nf===1/0||ef===1/0?[[NaN,NaN],[NaN,NaN]]:[[nf,ef],[rf,of]]},t.geoCentroid=function(t){Ef=kf=Nf=Cf=Pf=zf=Df=qf=0,Rf=new g,Ff=new g,Of=new g,Wc(t,ts);var n=+Rf,e=+Ff,r=+Of,i=Dc(n,e,r);return i2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Bh,t.gray=function(t,n){return new Fe(t,0,0,null==n?1:n)},t.greatest=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)>0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)>0:0===e(n,n))&&(r=n,i=!0);return r},t.greatestIndex=function(t,e=n){if(1===e.length)return G(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)>0)&&(r=n,i=o);return i},t.group=M,t.groupSort=function(t,e,r){return(1===e.length?k(A(t,e,r),(([t,e],[r,i])=>n(e,i)||n(t,r))):k(M(t,r),(([t,r],[i,o])=>e(r,o)||n(t,i)))).map((([t])=>t))},t.groups=function(t,...n){return S(t,Array.from,w,n)},t.hcl=Le,t.hierarchy=Xh,t.histogram=U,t.hsl=Ae,t.html=Fu,t.image=function(t,n){return new Promise((function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t}))},t.index=function(t,...n){return S(t,w,T,n)},t.indexes=function(t,...n){return S(t,Array.from,T,n)},t.interpolate=Mr,t.interpolateArray=function(t,n){return(gr(n)?pr:yr)(t,n)},t.interpolateBasis=rr,t.interpolateBasisClosed=ir,t.interpolateBlues=q_,t.interpolateBrBG=Gv,t.interpolateBuGn=s_,t.interpolateBuPu=h_,t.interpolateCividis=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},t.interpolateCool=V_,t.interpolateCubehelix=Yr,t.interpolateCubehelixDefault=X_,t.interpolateCubehelixLong=Lr,t.interpolateDate=vr,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateGnBu=p_,t.interpolateGreens=F_,t.interpolateGreys=I_,t.interpolateHcl=Ir,t.interpolateHclLong=Ur,t.interpolateHsl=Rr,t.interpolateHslLong=Fr,t.interpolateHue=function(t,n){var e=ur(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateInferno=nb,t.interpolateLab=function(t,n){var e=fr((t=Re(t)).l,(n=Re(n)).l),r=fr(t.a,n.a),i=fr(t.b,n.b),o=fr(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateMagma=tb,t.interpolateNumber=_r,t.interpolateNumberArray=pr,t.interpolateObject=br,t.interpolateOrRd=y_,t.interpolateOranges=H_,t.interpolatePRGn=$v,t.interpolatePiYG=Zv,t.interpolatePlasma=eb,t.interpolatePuBu=m_,t.interpolatePuBuGn=__,t.interpolatePuOr=Qv,t.interpolatePuRd=w_,t.interpolatePurples=B_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return $_.h=360*t-100,$_.s=1.5-1.5*n,$_.l=.8-.9*n,$_+""},t.interpolateRdBu=t_,t.interpolateRdGy=e_,t.interpolateRdPu=A_,t.interpolateRdYlBu=i_,t.interpolateRdYlGn=a_,t.interpolateReds=L_,t.interpolateRgb=sr,t.interpolateRgbBasis=hr,t.interpolateRgbBasisClosed=dr,t.interpolateRound=Ar,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,W_.r=255*(n=Math.sin(t))*n,W_.g=255*(n=Math.sin(t+Z_))*n,W_.b=255*(n=Math.sin(t+K_))*n,W_+""},t.interpolateSpectral=c_,t.interpolateString=wr,t.interpolateTransformCss=Cr,t.interpolateTransformSvg=Pr,t.interpolateTurbo=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},t.interpolateViridis=J_,t.interpolateWarm=G_,t.interpolateYlGn=k_,t.interpolateYlGnBu=S_,t.interpolateYlOrBr=C_,t.interpolateYlOrRd=z_,t.interpolateZoom=Dr,t.interrupt=gi,t.intersection=function(t,...n){t=new Set(t),n=n.map(et);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},t.interval=function(t,n,e){var r=new ei,i=n;return null==n?(r.restart(t,n,e),r):(r._restart=r.restart,r.restart=function(t,n,e){n=+n,e=null==e?ti():+e,r._restart((function o(a){a+=i,r._restart(o,i+=n,e),t(a)}),n,e)},r.restart(t,n,e),r)},t.isoFormat=Mv,t.isoParse=Av,t.json=function(t,n){return fetch(t,n).then(Du)},t.lab=Re,t.lch=function(t,n,e,r){return 1===arguments.length?Ye(t):new je(e,n,t,null==r?1:r)},t.least=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)<0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)<0:0===e(n,n))&&(r=n,i=!0);return r},t.leastIndex=K,t.line=Cb,t.lineRadial=Ib,t.linkHorizontal=function(){return jb(Hb)},t.linkRadial=function(){var t=jb(Gb);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return jb(Xb)},t.local=Rn,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))},t.matcher=Ct,t.max=B,t.maxIndex=G,t.mean=function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e},t.median=function(t,n){return H(t,.5,n)},t.merge=V,t.min=Y,t.minIndex=$,t.namespace=xt,t.namespaces=mt,t.nice=O,t.now=ti,t.pack=function(){var t=null,n=1,e=1,r=hd;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(gd(t)).eachAfter(yd(r,.5)).eachBefore(vd(1)):i.eachBefore(gd(pd)).eachAfter(yd(hd,1)).eachAfter(yd(r,i.r/Math.min(n,e))).eachBefore(vd(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=sd(n),i):t},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:dd(+t),i):r},i},t.packEnclose=Kh,t.packSiblings=function(t){return fd(t),t},t.pairs=function(t,n=W){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e},t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&bd(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a0&&(d+=l);for(null!=n?p.sort((function(t,e){return n(g[t],g[e])})):null!=e&&p.sort((function(t,n){return e(a[t],a[n])})),u=0,f=d?(v-h*b)/d:0;u0?l*f:0)+b,g[c]={data:a[c],index:u,value:l,startAngle:y,endAngle:s,padAngle:_};return g}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:rb(+t),a):o},a},t.piecewise=jr,t.pointRadial=Bb,t.pointer=In,t.pointers=function(t,n){return t.target&&(t=On(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>In(t,n)))},t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++eu!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;n(n=1664525*n+1013904223|0,ep*(n>>>0))},t.randomLogNormal=Ld,t.randomLogistic=tp,t.randomNormal=Yd,t.randomPareto=Gd,t.randomPoisson=np,t.randomUniform=Ud,t.randomWeibull=Qd,t.range=Z,t.reduce=function(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rgb=ve,t.ribbon=function(){return ba()},t.ribbonArrow=function(){return ba(_a)},t.rollup=A,t.rollups=function(t,n,...e){return S(t,Array.from,n,e)},t.scaleBand=up,t.scaleDiverging=function t(){var n=bp(Pv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleDivergingLog=function t(){var n=Ep(Pv()).domain([.1,1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleDivergingPow=zv,t.scaleDivergingSqrt=function(){return zv.apply(null,arguments).exponent(.5)},t.scaleDivergingSymlog=function t(){var n=Cp(Pv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleIdentity=function t(n){var e;function r(t){return null==t||isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,fp),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,fp):[0,1],bp(r)},t.scaleImplicit=op,t.scaleLinear=function t(){var n=vp();return n.copy=function(){return gp(n,t())},rp.apply(n,arguments),bp(n)},t.scaleLog=function t(){var n=Ep(yp()).domain([1,10]);return n.copy=function(){return gp(n,t()).base(n.base())},rp.apply(n,arguments),n},t.scaleOrdinal=ap,t.scalePoint=function(){return cp(up.apply(null,arguments).paddingInner(1))},t.scalePow=Rp,t.scaleQuantile=function t(){var e,r=[],i=[],a=[];function u(){var t=0,n=Math.max(1,i.length);for(a=new Array(n-1);++t0?a[n-1]:r[0],n=i?[a[i-1],r]:[a[n-1],a[n]]},c.unknown=function(t){return arguments.length?(n=t,c):c},c.thresholds=function(){return a.slice()},c.copy=function(){return t().domain([e,r]).range(u).unknown(n)},rp.apply(bp(c),arguments)},t.scaleRadial=function t(){var n,e=vp(),r=[0,1],i=!1;function o(t){var r=Op(e(t));return isNaN(r)?n:i?Math.round(r):r}return o.invert=function(t){return e.invert(Fp(t))},o.domain=function(t){return arguments.length?(e.domain(t),o):e.domain()},o.range=function(t){return arguments.length?(e.range((r=Array.from(t,fp)).map(Fp)),o):r.slice()},o.rangeRound=function(t){return o.range(t).round(!0)},o.round=function(t){return arguments.length?(i=!!t,o):i},o.clamp=function(t){return arguments.length?(e.clamp(t),o):e.clamp()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(e.domain(),r).round(i).clamp(e.clamp()).unknown(n)},rp.apply(o,arguments),bp(o)},t.scaleSequential=function t(){var n=bp(kv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=Ep(kv()).domain([1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleSequentialPow=Cv,t.scaleSequentialQuantile=function t(){var e=[],r=lp;function i(t){if(null!=t&&!isNaN(t=+t))return r((o(e,t,1)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(n),i},i.interpolator=function(t){return arguments.length?(r=t,i):r},i.range=function(){return e.map(((t,n)=>r(n/(e.length-1))))},i.quantiles=function(t){return Array.from({length:t+1},((n,r)=>H(e,r/t)))},i.copy=function(){return t(r).domain(e)},ip.apply(i,arguments)},t.scaleSequentialSqrt=function(){return Cv.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Cp(kv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleSqrt=function(){return Rp.apply(null,arguments).exponent(.5)},t.scaleSymlog=function t(){var n=Cp(yp());return n.copy=function(){return gp(n,t()).constant(n.constant())},rp.apply(n,arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],i=1;function a(t){return null!=t&&t<=t?r[o(e,t,0,i)]:n}return a.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},a.unknown=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},rp.apply(a,arguments)},t.scaleTime=function(){return rp.apply(Ev(Kg,Qg,xg,bg,og,eg,tg,Qp,Zp,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return rp.apply(Ev(Wg,Zg,Gg,Hg,Cg,Eg,Tg,Mg,Zp,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scan=function(t,n){const e=K(t,n);return e<0?void 0:e},t.schemeAccent=Rv,t.schemeBlues=D_,t.schemeBrBG=Xv,t.schemeBuGn=f_,t.schemeBuPu=l_,t.schemeCategory10=qv,t.schemeDark2=Fv,t.schemeGnBu=d_,t.schemeGreens=R_,t.schemeGreys=O_,t.schemeOrRd=g_,t.schemeOranges=j_,t.schemePRGn=Vv,t.schemePaired=Ov,t.schemePastel1=Iv,t.schemePastel2=Uv,t.schemePiYG=Wv,t.schemePuBu=b_,t.schemePuBuGn=v_,t.schemePuOr=Kv,t.schemePuRd=x_,t.schemePurples=U_,t.schemeRdBu=Jv,t.schemeRdGy=n_,t.schemeRdPu=M_,t.schemeRdYlBu=r_,t.schemeRdYlGn=o_,t.schemeReds=Y_,t.schemeSet1=Bv,t.schemeSet2=Yv,t.schemeSet3=Lv,t.schemeSpectral=u_,t.schemeTableau10=jv,t.schemeYlGn=E_,t.schemeYlGnBu=T_,t.schemeYlOrBr=N_,t.schemeYlOrRd=P_,t.select=Dn,t.selectAll=function(t){return"string"==typeof t?new Pn([document.querySelectorAll(t)],[document.documentElement]):new Pn([null==t?[]:Et(t)],Cn)},t.selection=zn,t.selector=St,t.selectorAll=Nt,t.shuffle=Q,t.shuffler=J,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1},t.sort=k,t.stack=function(){var t=rb([]),n=Xm,e=Hm,r=Gm;function i(i){var o,a,u=Array.from(t.apply(this,arguments),Vm),c=u.length,f=-1;for(const t of i)for(o=0,++f;o0)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):(r[0]=0,r[1]=i)},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a0)throw new Error("cycle");return o}return e.id=function(n){return arguments.length?(t=ld(n),e):t},e.parentId=function(t){return arguments.length?(n=ld(t),e):n},e},t.style=Jt,t.subset=function(t,n){return rt(n,t)},t.sum=function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e},t.superset=rt,t.svg=Ou,t.symbol=function(t,n){var e=null;function r(){var r;if(e||(e=r=fa()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return t="function"==typeof t?t:rb(t||Vb),n="function"==typeof n?n:rb(void 0===n?64:+n),r.type=function(n){return arguments.length?(t="function"==typeof n?n:rb(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r},t.symbolCircle=Vb,t.symbolCross=$b,t.symbolDiamond=Kb,t.symbolSquare=em,t.symbolStar=nm,t.symbolTriangle=im,t.symbolWye=fm,t.symbols=sm,t.text=Nu,t.thresholdFreedmanDiaconis=function(t,n,e){return Math.ceil((e-n)/(2*(H(t,.75)-H(t,.25))*Math.pow(c(t),-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*d(t)*Math.pow(c(t),-1/3)))},t.thresholdSturges=I,t.tickFormat=_p,t.tickIncrement=R,t.tickStep=F,t.ticks=q,t.timeDay=eg,t.timeDays=rg,t.timeFormatDefaultLocale=xv,t.timeFormatLocale=ey,t.timeFriday=sg,t.timeFridays=vg,t.timeHour=tg,t.timeHours=ng,t.timeInterval=Bp,t.timeMillisecond=Yp,t.timeMilliseconds=Lp,t.timeMinute=Qp,t.timeMinutes=Jp,t.timeMonday=ag,t.timeMondays=dg,t.timeMonth=bg,t.timeMonths=mg,t.timeSaturday=lg,t.timeSaturdays=_g,t.timeSecond=Zp,t.timeSeconds=Kp,t.timeSunday=og,t.timeSundays=hg,t.timeThursday=fg,t.timeThursdays=yg,t.timeTickInterval=Qg,t.timeTicks=Kg,t.timeTuesday=ug,t.timeTuesdays=pg,t.timeWednesday=cg,t.timeWednesdays=gg,t.timeWeek=og,t.timeWeeks=hg,t.timeYear=xg,t.timeYears=wg,t.timeout=ci,t.timer=ri,t.timerFlush=ii,t.transition=Hi,t.transpose=tt,t.tree=function(){var t=Ad,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new Nd(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Nd(r[i],i)),e.parent=n;return(a.parent=new Nd(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore((function(t){t.xs.x&&(s=t),t.depth>l.depth&&(l=t)}));var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),g=e/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Sd(u),o=Td(o),u&&o;)c=Td(c),(a=Sd(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(Ed(kd(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Sd(a)&&(a.t=u,a.m+=l-s),o&&!Td(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Dd,n=!1,e=1,r=1,i=[0],o=hd,a=hd,u=hd,c=hd,f=hd;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(_d),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}var l=f[n],h=r/2+l,d=n+1,p=e-1;for(;d>>1;f[g]c-o){var _=r?(i*v+a*y)/r:a;t(n,d,y,i,o,_,c),t(d,e,v,_,o,a,c)}else{var b=r?(o*v+c*y)/r:c;t(n,d,y,i,o,a,b),t(d,e,v,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=bd,t.treemapResquarify=qd,t.treemapSlice=Cd,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Cd:bd)(t,n,e,r,i)},t.treemapSquarify=Dd,t.tsv=zu,t.tsvFormat=mu,t.tsvFormatBody=xu,t.tsvFormatRow=Mu,t.tsvFormatRows=wu,t.tsvFormatValue=Au,t.tsvParse=_u,t.tsvParseRows=bu,t.union=function(...t){const n=new Set;for(const e of t)for(const t of e)n.add(t);return n},t.utcDay=Eg,t.utcDays=kg,t.utcFriday=Rg,t.utcFridays=Lg,t.utcHour=Tg,t.utcHours=Sg,t.utcMillisecond=Yp,t.utcMilliseconds=Lp,t.utcMinute=Mg,t.utcMinutes=Ag,t.utcMonday=Pg,t.utcMondays=Ig,t.utcMonth=Hg,t.utcMonths=Xg,t.utcSaturday=Fg,t.utcSaturdays=jg,t.utcSecond=Zp,t.utcSeconds=Kp,t.utcSunday=Cg,t.utcSundays=Og,t.utcThursday=qg,t.utcThursdays=Yg,t.utcTickInterval=Zg,t.utcTicks=Wg,t.utcTuesday=zg,t.utcTuesdays=Ug,t.utcWednesday=Dg,t.utcWednesdays=Bg,t.utcWeek=Cg,t.utcWeeks=Og,t.utcYear=Gg,t.utcYears=Vg,t.variance=h,t.version="6.7.0",t.window=Wt,t.xml=Ru,t.zip=function(){return tt(arguments)},t.zoom=function(){var t,n,e,r=ox,i=ax,o=sx,a=cx,u=fx,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=Dr,h=pt("start","zoom","end"),d=500,p=0,g=10;function y(t){t.property("__zoom",ux).on("wheel.zoom",M).on("mousedown.zoom",A).on("dblclick.zoom",T).filter(u).on("touchstart.zoom",S).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new tx(n,t.x,t.y)}function _(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new tx(t.k,r,i)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function m(t,n,e,r){t.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=x(t,o).event(r),u=i.apply(t,o),c=null==e?b(u):"function"==typeof e?e.apply(t,o):e,f=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),s=t.__zoom,h="function"==typeof n?n.apply(t,o):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new tx(e,c[0]-n[0]*e,c[1]-n[1]*e)}a.zoom(null,t)}}))}function x(t,n,e){return!e&&t.__zooming||new w(t,n)}function w(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function M(t,...n){if(r.apply(this,arguments)){var e=x(this,n).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),s=In(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=i.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[s,i.invert(s)],gi(this),e.start()}ix(t),e.wheel=setTimeout(l,150),e.zoom("mouse",o(_(v(i,u),e.mouse[0],e.mouse[1]),e.extent,f))}function l(){e.wheel=null,e.end()}}function A(t,...n){if(!e&&r.apply(this,arguments)){var i=x(this,n,!0).event(t),a=Dn(t.view).on("mousemove.zoom",h,!0).on("mouseup.zoom",d,!0),u=In(t,c),c=t.currentTarget,s=t.clientX,l=t.clientY;Yn(t.view),rx(t),i.mouse=[u,this.__zoom.invert(u)],gi(this),i.start()}function h(t){if(ix(t),!i.moved){var n=t.clientX-s,e=t.clientY-l;i.moved=n*n+e*e>p}i.event(t).zoom("mouse",o(_(i.that.__zoom,i.mouse[0]=In(t,c),i.mouse[1]),i.extent,f))}function d(t){a.on("mousemove.zoom mouseup.zoom",null),Ln(t.view,i.moved),ix(t),i.event(t).end()}}function T(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=In(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),c=e.k*(t.shiftKey?.5:2),l=o(_(v(e,c),a,u),i.apply(this,n),f);ix(t),s>0?Dn(this).transition().duration(s).call(m,l,a,t):Dn(this).call(y.transform,l,a,t)}}function S(e,...i){if(r.apply(this,arguments)){var o,a,u,c,f=e.touches,s=f.length,l=x(this,i,e.changedTouches.length===s).event(e);for(rx(e),a=0;a dist/package.js && rollup -c","test":"tape 'test/**/*-test.js'","prepublishOnly":"yarn test","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js"}; -export var devDependencies = {"json2module":"0.0","rimraf":"3","rollup":"2","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"5","rollup-plugin-terser":"7","tape":"4","tape-await":"0.1"}; -export var dependencies = {"d3-array":"2","d3-axis":"2","d3-brush":"2","d3-chord":"2","d3-color":"2","d3-contour":"2","d3-delaunay":"5","d3-dispatch":"2","d3-drag":"2","d3-dsv":"2","d3-ease":"2","d3-fetch":"2","d3-force":"2","d3-format":"2","d3-geo":"2","d3-hierarchy":"2","d3-interpolate":"2","d3-path":"2","d3-polygon":"2","d3-quadtree":"2","d3-random":"2","d3-scale":"3","d3-scale-chromatic":"2","d3-selection":"2","d3-shape":"2","d3-time":"2","d3-time-format":"3","d3-timer":"2","d3-transition":"2","d3-zoom":"2"}; diff --git a/gen/local/dist/d3-hwschematic-dark.css b/gen/local/dist/d3-hwschematic-dark.css deleted file mode 100644 index de7803b7..00000000 --- a/gen/local/dist/d3-hwschematic-dark.css +++ /dev/null @@ -1,96 +0,0 @@ -.d3-hwschematic text { - font-family: monospace; -} - -.d3-hwschematic .node { - stroke: #BDBDBD; - stroke-width: 1px; - fill: #e6ffff; - border: 2px; -} - - -.d3-hwschematic .node-0 { - fill: white; -} - -.d3-hwschematic .node-1 { -} - -.d3-hwschematic .node text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic.node-operator { - stroke: lime; - stroke-width: 1px; - fill: aquamarine; - border: 2px; -} - -.d3-hwschematic.node-operator text { - font-style: normal; - font-family: monospace; - fill: lime; - stroke-width: 0; -} - -.d3-hwschematic .node-external-port { - stroke: lime; - stroke-width: 0; - fill: #BDBDBD; - border: 1px; -} - -.d3-hwschematic .node-external-port text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic .link { - stroke: lime; - fill: none; -} - -.d3-hwschematic .junction-point { - stroke: lime; - fill: lime; -} - -.d3-hwschematic .link-selected { - stroke: orange; - fill: none; -} - -.d3-hwschematic .link-wrap { - stroke-width: 8; - fill: none; - stroke: transparent; - stroke-opacity: .6; -} -.d3-hwschematic .link-wrap.link-wrap-activated { - stroke: deepskyblue; -} - -.d3-hwschematic .port { - stroke: lime; - opacity: .6; -} - -.d3-hwschematic tspan { - white-space: pre; -} - -.d3-hwschematic-tooltip { - z-index: 2; - background: cornsilk; - border: 1px solid black; - border-radius: 5px; - padding: 5px; - position: fixed; -} \ No newline at end of file diff --git a/gen/local/dist/d3-hwschematic.css b/gen/local/dist/d3-hwschematic.css deleted file mode 100644 index 37ad3ba2..00000000 --- a/gen/local/dist/d3-hwschematic.css +++ /dev/null @@ -1,91 +0,0 @@ -.d3-hwschematic text { - font-family: monospace; -} - -.d3-hwschematic .node { - stroke: #BDBDBD; - stroke-width: 1px; - fill: #e6ffff; - border: 2px; -} - - -.d3-hwschematic .node-0 { - fill: white; -} - -.d3-hwschematic .node-1 { -} - -.d3-hwschematic .node text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic.node-operator { - stroke: BLACK; - stroke-width: 1px; - fill: aquamarine; - border: 2px; -} - -.d3-hwschematic.node-operator text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic .node-external-port { - stroke: #000; - stroke-width: 0; - fill: #BDBDBD; - border: 1px; -} - -.d3-hwschematic .node-external-port text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic .link { - stroke: #000; - fill: none; -} - -.d3-hwschematic .link-selected { - stroke: orange; - fill: none; -} - -.d3-hwschematic .link-wrap { - stroke-width: 8; - fill: none; - stroke: transparent; - stroke-opacity: .6; -} -.d3-hwschematic .link-wrap.link-wrap-activated { - stroke: deepskyblue; -} - -.d3-hwschematic .port { - stroke: #000; - opacity: .6; -} - -.d3-hwschematic tspan { - white-space: pre; -} - -.d3-hwschematic-tooltip { - z-index: 2; - background: cornsilk; - border: 1px solid black; - border-radius: 5px; - padding: 5px; - position: fixed; -} \ No newline at end of file diff --git a/gen/local/dist/d3-hwschematic.js b/gen/local/dist/d3-hwschematic.js deleted file mode 100644 index 7d12d9fd..00000000 --- a/gen/local/dist/d3-hwschematic.js +++ /dev/null @@ -1,2887 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3'), require('elkjs')) : - typeof define === 'function' && define.amd ? define(['exports', 'd3', 'elkjs'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.ELK)); -})(this, (function (exports, d3, ELK) { 'use strict'; - - function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - - function _interopNamespace(e) { - if (e && e.__esModule) return e; - var n = Object.create(null); - if (e) { - Object.keys(e).forEach(function (k) { - if (k !== 'default') { - var d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: function () { return e[k]; } - }); - } - }); - } - n["default"] = e; - return Object.freeze(n); - } - - var d3__namespace = /*#__PURE__*/_interopNamespace(d3); - var ELK__default = /*#__PURE__*/_interopDefaultLegacy(ELK); - - var PORT_MARKERS = { - "WEST": { - "INPUT": "#westInPortMarker", - "OUTPUT": "#westOutPortMarker"}, - "EAST": { - "INPUT": "#eastInPortMarker", - "OUTPUT": "#eastOutPortMarker"}, - "NORTH": { - "INPUT": "#northInPortMarker", - "OUTPUT": "#northOutPortMarker"}, - "SOUTH": { - "INPUT": "#southInPortMarker" , - "OUTPUT": "#southOutPortMarker"}, - }; - - function addMarkers(defs, PORT_PIN_SIZE) { - // real size of marker - var w = 7; - var h = 10; - - function addMarker(id, arrowTranslate, arrowRotate=0) { - var rightArrow = "M 0 4 2 4 2 0 7 5 2 10 2 6 0 6 Z"; - var trans = ""; - - if (arrowTranslate[0] !== 0 || arrowTranslate[1] !== 0) - trans += "translate(" + arrowTranslate[0] + ", " + arrowTranslate[1] + ")"; - - if (arrowRotate !== 0) - trans += "rotate(" + arrowRotate + ")"; - - var cont = defs.append("g"); - - cont - .attr("id", id) - .attr("class", "port") - .append("path") - .attr("d", rightArrow); - - if (trans) - cont - .attr("transform", trans); - } - - var horizYOffset = (PORT_PIN_SIZE[1] - h) * 0.5; - var horizYOffset2 = (PORT_PIN_SIZE[1] + h) * 0.5; - - var vertXOffset = -(PORT_PIN_SIZE[1] - w) * 0.5; - addMarker("westInPortMarker", [0, horizYOffset]); - addMarker("westOutPortMarker",[w, horizYOffset2], 180); - - addMarker("eastInPortMarker", [w, horizYOffset2], 180); - addMarker("eastOutPortMarker",[0, horizYOffset]); - - addMarker("northInPortMarker", [vertXOffset, -w], 90); - addMarker("northOutPortMarker",[vertXOffset, 0], 270); - - addMarker("southInPortMarker", [vertXOffset, w], 270); - addMarker("southOutPortMarker",[vertXOffset, 0], 90); - } - - function getIOMarker(d) { - var side = d.properties.side; - var portType = d.direction; - var marker = PORT_MARKERS[side][portType]; - if (marker === undefined) { - throw new Error("Wrong side, portType", side, portType) - } - return marker; - } - - function portLevel(port){ - if(!port.parent) return 0; - else { - return portLevel(port.parent)+1; - } - - } - - /* - * Basic renderer which renders node as a box with ports, optionally with the body text - */ - class GenericNodeRenderer { - /** - * @param schematic instance of HwSchematic - **/ - constructor(schematic) { - this.schematic = schematic; - } - /** - * check if this selector should be used for this node - **/ - selector(node) { - // always return true, because this is a default renderer which just renders a box with ports - return true; - } - - getNodeLabelWidth(d) { - var schematic = this.schematic; - var widthOfText = schematic.widthOfText.bind(schematic); - return widthOfText(d.hwMeta.name); - } - - /** - * Init bodyText and resolve size of node from body text and ports - * - * @param d component node - * - */ - initNodeSizes(d) { - var schematic = this.schematic; - if (d.properties["org.eclipse.elk.noLayout"]) - return; - var widthOfText = schematic.widthOfText.bind(schematic); - - var labelW = this.getNodeLabelWidth(d); - var max = Math.max; - var bodyTextSize = this.initBodyTextLines(d); - const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; - bodyTextSize[0] = Math.min(bodyTextSize[0], MBT[0]); - bodyTextSize[1] = Math.min(bodyTextSize[1], MBT[1]); - - // {PortSide: (portCnt, portWidth)} - var portDim = { - "WEST": [0, 0], - "EAST": [0, 0], - "SOUTH": [0, 0], - "NORTH": [0, 0] - }; - var PORT_PIN_SIZE_x = schematic.PORT_PIN_SIZE[0], - PORT_PIN_SIZE_y = schematic.PORT_PIN_SIZE[1]; - var CHAR_WIDTH = schematic.CHAR_WIDTH; - if (d.ports != null) - d.ports.forEach(function(p) { - var t = p.properties.side; - var indent = 0; - if (portLevel(p) > 0) - indent = (portLevel(p)+1) * CHAR_WIDTH; - var portW = widthOfText(p.hwMeta.name) + indent; - var pDim = portDim[t]; - if (pDim === undefined) - throw new Error(t); - pDim[0]++; - pDim[1] = max(pDim[1], portW); - - // dimension of connection pin - p.width = PORT_PIN_SIZE_x; - p.height = PORT_PIN_SIZE_y; - }); - - var west = portDim["WEST"], - east = portDim["EAST"], - south = portDim["SOUTH"], - north = portDim["NORTH"]; - - var portColums = 0; - if (west[0] && west[1] > 0) - portColums += 1; - if (east[0] && east[1] > 0) - portColums += 1; - - var middleSpacing = 0; - if (portColums == 2) - middleSpacing = schematic.NODE_MIDDLE_PORT_SPACING; - var portW = max(west[1], east[1]); - - d.portLabelWidth = portW; - d.width = max(portW * portColums + middleSpacing, labelW, - max(south[0], north[0]) * schematic.PORT_HEIGHT) - + bodyTextSize[0] + CHAR_WIDTH; - d.height = max(max(west[0], east[0]) * schematic.PORT_HEIGHT, - bodyTextSize[1], - max(south[1], north[1]) * CHAR_WIDTH); - } - - /** - * Split bodyText of one to lines and resolve dimensions of body text - * - * @param d component node - */ - initBodyTextLines(d) { - var schematic = this.schematic; - var max = Math.max; - var bt = d.hwMeta.bodyText; - if (bt) { - if (typeof bt === "string") { - bt = d.hwMeta.bodyText = bt.split("\n"); - } - var bodyTextW = 0; - bt.forEach(function(line) { - bodyTextW = max(bodyTextW, line.length); - }); - bodyTextW *= schematic.CHAR_WIDTH; - var bodyTextH = bt.length * schematic.CHAR_HEIGHT; - } else { - var bodyTextW = 0; - var bodyTextH = 0; - } - var pad = schematic.BODY_TEXT_PADDING; - if (bodyTextW > 0) - bodyTextW += pad[1] + pad[3]; - if (bodyTextH > 0) - bodyTextH += pad[0] + pad[2]; - return [bodyTextW, bodyTextH]; - } - - /** - * @param bodyTexts list of strings - */ - renderTextLines(bodyTexts) { - var schematic = this.schematic; - const padTop = schematic.BODY_TEXT_PADDING[0]; - const padLeft = schematic.BODY_TEXT_PADDING[3]; - const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; - const CHAR_WIDTH = schematic.CHAR_WIDTH; - const CHAR_HEIGHT = schematic.CHAR_HEIGHT; - - bodyTexts.each(function() { - var bodyText = d3__namespace.select(this); - var d = bodyText.data()[0]; - var bodyTextLines = d.hwMeta.bodyText; - var _MBT = [MBT[0] / CHAR_WIDTH, MBT[1] / CHAR_HEIGHT]; - - if (bodyTextLines && (!d.children - || d.children.length == 0)) { - bodyTextLines.forEach(function(line, dy) { - if (line.length > _MBT[0]) - line = line.slice(0, _MBT[0] - 3) + "..."; - if (dy > _MBT[1]) - return; - bodyText - .append("tspan") - .attr("x", d.portLabelWidth + padLeft) - .attr("y", padTop) - .attr("dy", dy + "em") - .text(line); - }); - } - }); - } - - /** - * Prepare node before ELK processing - * */ - prepare(node) { - this.initNodeSizes(node); - } - - /** - * Render svg of node - * - * @param root root svg element where nodes should be rendered - * @param nodeG svg g for each node with data binded - * */ - render(root, nodeG) { - var node = nodeG - .attr("class", function(d) { - var cssClass; - if (d.hwMeta && d.hwMeta.isExternalPort) { - cssClass = "node-external-port"; - } else { - let depth = 0; - let parent = d.hwMeta.parent; - while (parent) { - ++depth; - parent = parent.hwMeta.parent; - } - if (depth % 2 === 0) { - cssClass = "node node-0"; - } else { - cssClass = "node node-1"; - } - } - if (d.hwMeta.cssClass) { - cssClass += " " + d.hwMeta.cssClass; - } - return cssClass; - }) - .attr("style", function(d) { return d.hwMeta.cssStyle; }); - var nodeBody = node.append("rect"); - // set dimensions and style of node - nodeBody - .attr("width", function(d) { return d.width }) - .attr("height", function(d) { return d.height }) - .attr("rx", 5) // rounded corners - .attr("ry", 5); - - // apply node positions - node - .attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }); - - // spot node label - node.append("text") - .text(function(d) { - if (d.hwMeta && !d.hwMeta.isExternalPort) { - return d.hwMeta.name; - } else { - return ""; - } - }); - - // spot node body text - node.append("text") - .call(this.renderTextLines.bind(this)); - - this.renderPorts(node); - } - - renderPorts(node) { - var schematic = this.schematic; - var PORT_HEIGHT = schematic.PORT_HEIGHT; - var CHAR_WIDTH = schematic.CHAR_WIDTH; - var portG = node.selectAll(".port") - .data(function(d) { - return d.ports || []; - }) - .enter() - .append("g") - .attr("style", (d) => d.hwMeta.cssStyle) - .attr("class", (d) => { - if (d.hwMeta.cssStyle) { - return "port " + d.hwMeta.cssClass; - } else { - return "port"; - } - }); - - // apply port positions - portG - .attr("transform", function(d) { - return "translate(" + d.x + "," + d.y + ")" - }); - - node.each(function(d) { - var ignorePortLabel = typeof d.children !== "undefined"; - if (d.ports != null) { - d.ports.forEach(function(p) { - p.ignoreLabel = ignorePortLabel; - }); - } - }); - - // spot port name - portG.append("text") - .text(function(d, i) { - /*var next_d = port_data[i+1]; - if (next_d && next_d.hwMeta.level > d.hwMeta.level) { - console.log(d.hwMeta.name); - //d.hwMeta.name=toString("+"); - } - */ - if (d.ignoreLabel) - return ""; - else if (d.parent) { - var indent = '-'.repeat(portLevel(d)); - var side = d.properties.side; - if (side == "WEST") { - return indent + d.hwMeta.name; } else if (side == "EAST") { - return d.hwMeta.name + indent; - } else { - throw new Error(side); - } - } else - return d.hwMeta.name; - }) - .attr("x", function(d) { - var side = d.properties.side; - if (side == "WEST") { - return 7; - } else if (side == "EAST") { - if (typeof this.getBBox == "undefined") { - // JSDOM under nodejs - return -this.textContent.length * CHAR_WIDTH - CHAR_WIDTH / 2 - } - return -this.getBBox().width - CHAR_WIDTH / 2; - } else if (side == "NORTH") { - return 0; - } else if (side == "SOUTH") { - return 0; - } else { - throw new Error(side); - } - }) - .attr("y", PORT_HEIGHT * 0.75); - - // spot input/output marker - portG.append("use") - .attr("href", getIOMarker); - } - } - - /** - * Container for node renderer instances. - * This object initiates the node to renderer binding process in prepare() - * and executes node rendering in render() - */ - class NodeRendererContainer { - constructor() { - this.renderers = []; - } - - // add new renderer - registerRenderer(renderer) { - var rs = this.renderers; - for (var i = 0; i < rs.length; i++) { - var r = rs[i]; - if (r.constructor === GenericNodeRenderer) { - // insert custom renderer before GenericNodeRenderer - // to prevent GenericNodeRenderer.selector from prematurely halting renderers.some - rs.splice(i, 0, renderer); - return; - } - } - rs.push(renderer); - } - - // Bind node to renderer recursively - prepare(node) { - var r = null; - this.renderers.some(function(ren) { - if (ren.selector(node)) - r = ren; - return r != null; - }); - if (r == null) { - throw new Error("Can not resolve renderer for node " + node); - } - node.hwMeta.renderer = r; - r.prepare(node); - var prep = this.prepare.bind(this); - if (node.children) { - node.children.forEach(prep); - } - if (node._children) { - node._children.forEach(prep); - } - } - - // Render all nodes using selected renderer - render(root, nodeG) { - var renderers = this.renderers; - var nodesForRenderer = renderers.map(() => []); - nodeG.each(function(d) { - var n = this; - renderers.forEach(function(r, i) { - if (d.hwMeta.renderer === r) { - nodesForRenderer[i].push(n); - } - }); - }); - nodesForRenderer.forEach(function(nodes, i) { - if (nodes.length) { - nodes = d3__namespace.selectAll(nodes); - renderers[i].render(root, nodes); - } - }); - } - } - - /** - * Library of functions which creates shapes of operator nodes (gate symbols) - **/ - - - /** - * Draw a circle for arithmetic nodes - */ - function nodeCircle(root) { - root.append("circle") - .attr("r", "12.5") - .attr("cx", "12.5") - .attr("cy", "12.5"); - } - - /** - * Draw a negation circle for nodes like NOT, NAND, NOR, etc... - */ - function negationCircle(root, x, y) { - root.append("circle") - .attr("cx", x) - .attr("cy", y) - .attr("r", "3"); - } - - function nodeCircleWithText(root, text) { - // width="25" height="25" - var tl = text.length; - if (tl > 2) { - throw new Error("Text too big for small node circle"); - } - var x = 8; - if (tl === 2) - x = 4; - - nodeCircle(root); - root.append("text") - .attr("x", x) - .attr("y", 16) - .text(text); - } - - function nodeBiggerCircleWithText(root, text) { - // width="25" height="25" - var tl = text.length; - if (tl > 6) { - throw new Error("Text too big for small node circle"); - } - var x = 6; - - root.append("circle") - .attr("r", "25") - .attr("cx", "25") - .attr("cy", "25"); - root.append("text") - .attr("x", x) - .attr("y", 28.5) - .text(text); - } - function operatorBox(root) { - root.append("rect") - .attr("width", "25") - .attr("height", "25") - .attr("x", "0") - .attr("y", "0"); - } - - - /** - * Draw a AND gate symbol - */ - function AND(root, addName = true) { - // width="30" height="25" - var g = root.append("g"); - g.append("path") - .attr("d", "M0,0 L0,25 L15,25 A15 12.5 0 0 0 15,0 Z"); - g.attr("transform", "scale(0.8) translate(0, 3)"); - if (addName) - root.append("text") - .attr("x", 8) - .attr("y", 16) - .text("&"); - return g; - } - - /** - * Draw a NAND gate symbol - */ - function NAND(root) { - // width="30" height="25" - AND(root, false); - negationCircle(root, 34, 12.5); - } - - - var OR_SHAPE_PATH = "M3,0 A30 25 0 0 1 3,25 A30 25 0 0 0 33,12.5 A30 25 0 0 0 3,0 z"; - /** - * Draw a OR gate symbol - */ - function OR(root, addName = true) { - // width="30" height="25" - var g = root.append("g"); - g.append("path") - .attr("d", OR_SHAPE_PATH); - g.attr("transform", "scale(0.8) translate(0, 3)"); - if (addName) - root.append("text") - .attr("x", 5) - .attr("y", 16) - .text("or"); - return g; - } - - /** - * Draw a NOR gate symbol - */ - function NOR(root) { - // width="33" height="25" - var g = OR(root, false); - g.append("circle") - .attr("cx", "34") - .attr("cy", "12.5") - .attr("r", "3"); - root.append("text") - .attr("x", 5) - .attr("y", 16) - .text("!|"); - } - - - /** - * Draw a XOR gate symbol - */ - function XOR(root) { - var g = OR(root, false); - g.append("path") - .attr("d", "M0,0 A30 25 0 0 1 0,25"); - root.append("text") - .attr("x", 8) - .attr("y", 16) - .text("^"); - - return g; - } - - - /** - * Draw a NXOR gate symbol - */ - function NXOR(root) { - // width="33" height="25" - var g = XOR(root); - negationCircle(g, 35, 12.5); - root.append("text") - .attr("x", 4) - .attr("y", 16) - .text("!^"); - } - - /** - * Draw a NOT gate symbol - */ - function NOT(root) { - // width="30" height="20" - root.append("path") - .attr("d", "M0,2.5 L0,22.5 L20,12.5 Z"); - negationCircle(root, 23, 12.5); - root.append("text") - .attr("x", 2) - .attr("y", 16) - .text("!"); - } - - /** - * Draw a FF register symbol - */ - function FF(root) { - // width="25" height="25" - operatorBox(root); - - root.append("path") - .attr("d", "M0,2 L5,7 L0,12"); - - root.append("text") - .attr("x", 5) - .attr("y", 16) - .text("FF"); - } - - function FF_ARST(root, arstPolarity, clkPolarity) { - root.append("rect") - .attr("width", "40") - .attr("height", "50") - .attr("x", "0") - .attr("y", "0"); - - //component name - root.append("text") - .attr("x", 7) - .attr("y", 16) - .text("ADFF"); - - //triangle - root.append("path") - .attr("d", "M0,7.5 L6,12.5 L0,17.5 z"); - - if (!clkPolarity) { - root.append("circle") - .attr("cx", 1) - .attr("cy", 12.5) - .attr("r", "1.5") - .style("fill", "white"); - } - - if (!arstPolarity) { - root.append("circle") - .attr("cx", 1) - .attr("cy", 25) - .attr("r", "1.5") - .style("fill", "white"); - } - - root.append("text") - .attr("x", 4) - .attr("y", 27.5) - .style("font-size", "8px") - .text("ARST"); - } - function DLATCH(root, enPolarity) { - root.append("rect") - .attr("width", "50") - .attr("height", "25") - .attr("x", "0") - .attr("y", "0"); - - root.append("text") - .attr("x", 3) - .attr("y", 12) - .text("DLATCH"); - - if (!enPolarity) { - root.append("circle") - .attr("cx", 1) - .attr("cy", 16.5) - .attr("r", "1.5") - .style("fill", "white"); - } - - root.append("text") - .attr("x", 4) - .attr("y", 19) - .style("font-size", "8px") - .text("en"); - } - function RISING_EDGE(root) { - // width="25" height="25" - operatorBox(root); - - root.append("path") - .attr("d", "M5,20 L12.5,20 L12.5,5 L20,5"); - } - - function FALLING_EDGE(root) { - // width="25" height="25" - operatorBox(root); - - root.append("path") - .attr("d", "M5,5 L12.5,5 L12.5,20 L20,20"); - } - - - const DEFAULT_NODE_SIZE = [25, 25]; - const SHAPES = { - "NOT": [NOT, DEFAULT_NODE_SIZE], - - "AND": [AND, DEFAULT_NODE_SIZE], - "NAND": [NAND, DEFAULT_NODE_SIZE], - "OR": [OR, DEFAULT_NODE_SIZE], - "NOR": [NOR, DEFAULT_NODE_SIZE], - "XOR": [XOR, DEFAULT_NODE_SIZE], - "NXOR": [NXOR, DEFAULT_NODE_SIZE], - - "RISING_EDGE": [RISING_EDGE, DEFAULT_NODE_SIZE], - "FALLING_EDGE": [FALLING_EDGE, DEFAULT_NODE_SIZE], - - "ADD": [function ADD(root) { - nodeCircleWithText(root, "+"); - }, DEFAULT_NODE_SIZE], - "SUB": [function SUB(root) { - nodeCircleWithText(root, "-"); - }, DEFAULT_NODE_SIZE], - - "EQ": [function EQ(root) { - nodeCircleWithText(root, "="); - }, DEFAULT_NODE_SIZE], - "NE": [function NE(root) { - nodeCircleWithText(root, "!="); - }, DEFAULT_NODE_SIZE], - "LT": [function LT(root) { - nodeCircleWithText(root, "<"); - }, DEFAULT_NODE_SIZE], - "LE": [function LE(root) { - nodeCircleWithText(root, "<="); - }, DEFAULT_NODE_SIZE], - "GE": [function GE(root) { - nodeCircleWithText(root, ">="); - }, DEFAULT_NODE_SIZE], - "GT": [function GT(root) { - nodeCircleWithText(root, ">"); - }, DEFAULT_NODE_SIZE], - "SHL": [function GT(root) { - nodeCircleWithText(root, "<<"); - }, DEFAULT_NODE_SIZE], - "SHR": [function GT(root) { - nodeCircleWithText(root, ">>"); - }, DEFAULT_NODE_SIZE], - "SHIFT": [function GT(root) { - nodeBiggerCircleWithText(root, "<<,>>"); - }, [50, 50]], - "MUL": [function GT(root) { - nodeCircleWithText(root, "*"); - }, DEFAULT_NODE_SIZE], - "DIV": [function GT(root) { - nodeCircleWithText(root, "/"); - }, DEFAULT_NODE_SIZE], - - "FF": [FF, DEFAULT_NODE_SIZE], - "FF_ARST_clk0_rst0": [(root) => { return FF_ARST(root, false, false)}, [40, 50]], - "FF_ARST_clk1_rst1": [(root) => { return FF_ARST(root, true, true)}, [40, 50]], - "FF_ARST_clk0_rst1": [(root) => { return FF_ARST(root, true, false)}, [40, 50]], - "FF_ARST_clk1_rst0": [(root) => { return FF_ARST(root, false, true)}, [40, 50]], - "DLATCH_en0": [(root) => {return DLATCH(root,false)}, [50, 25]], - "DLATCH_en1": [(root) => {return DLATCH(root,true)}, [50, 25]], - - - }; - - /* - * Render a operator node using predefined shape - * */ - class OperatorNodeRenderer extends GenericNodeRenderer { - constructor(schematic) { - super(schematic); - this.SHAPES = SHAPES; - this._defsAdded = false; - } - - prepare(node) { - if (!this._defsAdded) { - var defs = this.schematic.defs; - var SHAPES = this.SHAPES; - for (const [name, [constructorFn, _]] of Object.entries(SHAPES)) { - this.addShapeToDefs(defs, name, constructorFn); - } - this._defsAdded = true; - } - [node.width, node.height] = this.SHAPES[node.hwMeta.name][1]; - } - - selector(node) { - return node.hwMeta.cls === "Operator" && typeof this.SHAPES[node.hwMeta.name] !== "undefined"; - } - - addShapeToDefs(defs, id, shape) { - var cont = defs.append("g") - .attr("id", id) - .attr("class", "d3-hwschematic node-operator"); - // [note] we need to add d3-hwschematic as well because object in refs are recognized as outside objects when useds - shape(cont); - } - - /** - * Render svg of node - * - * @param root root svg element where nodes should be rendered - * @param nodeG svg g for each node with data binded - * */ - render(root, nodeG) { - // apply node positions - nodeG.attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }) - .attr("class", (d) => d.hwMeta.cssClass) - .attr("style", (d) => d.hwMeta.cssStyle) - .append("use") - .attr("href", function(d) { - return "#" + d.hwMeta.name - }); - } - } - - /** - * Draw a multiplexer operator symbol - */ - function MUX_SHAPE(root) { - // width="20" height="40" - root.append("path") - .attr("d","M0,0 L20,10 L20,30 L0,40 Z"); - } - - class MuxNodeRenderer extends GenericNodeRenderer { - constructor(schematic) { - super(schematic); - this.DEFULT_NODE_SIZE = [20, 40]; - this._defsAdded = false; - } - - prepare(node) { - if (!this._defsAdded) { - var defs = this.schematic.defs; - this.addShapeToDefs(defs); - this._defsAdded = true; - } - node.width = this.DEFULT_NODE_SIZE[0]; - node.height = this.DEFULT_NODE_SIZE[1]; - } - - selector(node) { - return node.hwMeta.cls == "Operator" && ( - node.hwMeta.name === "MUX" || - node.hwMeta.name === "LATCHED_MUX" - ); - } - - addShapeToDefs(defs) { - var cont = defs.append("g"); - cont.attr("id", "MUX"); - cont.attr("class", "d3-hwschematic node-operator"); - MUX_SHAPE(cont); - - var cont = defs.append("g"); - cont.attr("id", "LATCHED_MUX"); - cont.attr("class", "d3-hwschematic node-operator"); - MUX_SHAPE(cont); - cont.append("text") - .text("LA") - .attr("y", "10") - .attr("x", "10") - .attr("style", "writing-mode: tb;"); - } - - /** - * Render svg of node - * - * @param root root svg element where nodes should be rendered - * @param nodeG svg g for each node with data binded - * */ - render(root, nodeG) { - // apply node positions - nodeG.attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }) - .attr("class", (d) => d.hwMeta.cssClass) - .attr("style", (d) => d.hwMeta.cssStyle) - .append("use") - .attr("href", function (d) { - return "#" + d.hwMeta.name; - }); - - - } - } - - class SliceNodeRenderer extends GenericNodeRenderer { - selector(node) { - return node.hwMeta.name === "SLICE" || node.hwMeta.name === "CONCAT"; - } - - getNodeLabelWidth(node) { - return 0; - } - - render(root, nodeG) { - nodeG - .attr("class", (d) => d.hwMeta.cssClass) - .attr("style", (d) => d.hwMeta.cssStyle); - - // spot node main body and set dimensions and style of node - nodeG.append("rect") - .attr("width", function(d) { return d.width }) - .attr("height", function(d) { return d.height }) - .attr("class", "node") - .attr("rx", 5) // rounded corners - .attr("ry", 5); - - // black thick line - nodeG.append("rect") - .attr("x", function (d) { - if (d.hwMeta.name == "SLICE") { - return 0; - } else { - return d.width - 3; - } - }) - .attr("width", "3") - .attr("height", function(d) { return d.height }) - .attr("style", "fill:black;"); - - // apply node positions - nodeG.attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }); - - this.renderPorts(nodeG); - } - } - - const RUNNING_IN_NODE = (typeof require !== "undefined"); - const NO_LAYOUT = "org.eclipse.elk.noLayout"; - // kgraph properties that shall be copied - const KGRAPH_KEYS = [ - 'x', 'y', - 'width', 'height', - "sections", - 'sourcePoint', - 'targetPoint', - 'junctionPoints', - 'properties' - ].reduce(function(p, c) { p[c] = 1; return p; }, {}); - - /** - * Webworker creates new graph object and layout props has to be copied back - * to original graph - * - * @param srcGraph: - * new graph from ELK worker - * @param dstGraph: - * original graph provided by user - * @param d3Objs: - * {str(dst obj id): dst obj} - */ - function copyElkProps(srcGraph, dstGraph, d3Objs) { - // init d3Objs - d3Objs[dstGraph.id] = dstGraph; - (dstGraph.edges || []).forEach(function(e) { - if (e.id in d3Objs && d3Objs[e.id] !== e) - throw new Error("Duplicit edge" + e.id); - d3Objs[e.id] = e; - }); - (dstGraph.children || []).forEach(function(n) { - d3Objs[n.id] = n; - }); - (dstGraph.ports || []).forEach(function(p) { - d3Objs[p.id] = p; - }); - - // copy props from this node - copyProps(srcGraph, dstGraph); - (srcGraph.ports || []).forEach(function(p) { - copyProps(p, d3Objs[p.id]); - }); - (srcGraph.labels || []).forEach(function(l, i) { - copyProps(l, dstGraph.labels[i]); - }); - // copy props from edges in this node - (srcGraph.edges || []).forEach(function(e) { - var l = d3Objs[e.id]; - copyProps(e, l); - copyProps(e.source, l.source); - copyProps(e.target, l.target); - // make sure the bendpoint array is valid - l.bendPoints = e.bendPoints || []; - }); - // copy props of children - (srcGraph.children || []).forEach(function(n) { - copyElkProps(n, d3Objs[n.id], d3Objs); - }); - } - function copyProps(src, dst) { - var keys = KGRAPH_KEYS; - for (var k in src) { - if (keys[k]) { - dst[k] = src[k]; - } - } - } - - /** - * Convert section from ELK json to svg path string - */ - function section2svgPath(section) { - var pathBuff = ["M", section.startPoint.x, section.startPoint.y]; - if (section.bendPoints) - section.bendPoints.forEach(function(bp, i) { - pathBuff.push("L"); - pathBuff.push(bp.x); - pathBuff.push(bp.y); - }); - - pathBuff.push("L"); - pathBuff.push(section.endPoint.x); - pathBuff.push(section.endPoint.y); - return pathBuff.join(" ") - } - - /** - * Set the scale to value so - * the available space is used to it's maximum. - */ - function zoomToFit(node, width, height, g) { - var xOffset = -node.x; - var yOffset = -node.y; - var w = node.width || 1; - var h = node.height || 1; - // scale everything so that it fits the specified size - var scale = Math.min(width / w, height / h); - // centering - xOffset += ((width / scale - node.width) / 2); - yOffset += ((height / scale - node.height) / 2); - - // if a transformation group was specified we - // perform a 'zoomToFit' - var t = d3__namespace.zoomTransform(g.node()); - t.k = scale; - t.x = xOffset * scale; - t.y = yOffset * scale; - if (!RUNNING_IN_NODE) { - g = g.transition() - .duration(200); - } - g.attr("transform", t); - } - - function isDescendant(node, child) { - var parent = child.parent; - while (parent) { - if (parent == node) { - return true; - } - parent = parent.parent; - } - return false; - } - function toAbsolutePositionsEdges(n, nodeMap) { - // edges - (n.edges || []).forEach(function(e) { - // transform edge coordinates to absolute coordinates. Note that - // node coordinates are already absolute and that - // edge coordinates are relative to the source node's parent node - // (unless the target node is a descendant of the source node) - var srcNode = nodeMap[e.source]; - var tgtNode = nodeMap[e.target]; - var relative = isDescendant(srcNode, tgtNode) ? - srcNode : srcNode.parent; - - var offset = { x: 0, y: 0 }; - if (relative) { - offset.x = relative.x || 0; - offset.y = relative.y || 0; - } - if (relative.padding) { - offset.x += relative.padding.left || 0; - offset.y += relative.padding.top || 0; - } - if (e.sections) - e.sections.forEach(function(s) { - // ... and apply it to the edge - if (s.startPoint) { - s.startPoint.x += offset.x; - s.startPoint.y += offset.y; - } - if (s.endPoint) { - s.endPoint.x += offset.x; - s.endPoint.y += offset.y; - } - (s.bendPoints || []).forEach(function(bp) { - bp.x += offset.x; - bp.y += offset.y; - }); - }); - if (e.junctionPoints) - e.junctionPoints.forEach(function(jp) { - jp.x += offset.x; - jp.y += offset.y; - }); - }); - // children - (n.children || []).forEach(function(c) { - toAbsolutePositionsEdges(c, nodeMap); - }); - } - function toAbsolutePositions(n, offset, nodeMap) { - n.x = (n.x || 0) + offset.x; - n.y = (n.y || 0) + offset.y; - nodeMap[n.id] = n; - // the offset for the children has to include padding - var childOffset = { x: n.x, y: n.y }; - if (n.padding) { - childOffset.x += n.padding.left || 0; - childOffset.y += n.padding.top || 0; - } - // children - (n.children || []).forEach(function(c) { - c.parent = n; - toAbsolutePositions(c, childOffset, nodeMap); - }); - } - - - /** - * Clean all layout possitions from nodes, nets and ports - */ - function cleanLayout(n) { - delete n.x; - delete n.y; - (n.ports || []).forEach(function(p) { - delete p.x; - delete p.y; - }); - (n.edges || []).forEach(function(e) { - delete e.sections; - delete e.junctionPoints; - }); - (n.children || []).forEach(function(c) { - cleanLayout(c); - }); - } - - function renderLinks(root, edges) { - let junctionPoints = []; - - let link = root.selectAll(".link") - .data(edges) - .enter() - .append("path") - .attr("class", "link") - .attr("d", function(d) { - if (!d.sections) { - d._svgPath = ""; - return ""; - } - if (d.bendpoints || d.sections.length > 1) { - throw new Error("NotImplemented"); - } - if(d.junctionPoints) - d.junctionPoints.forEach(function (jp) { - junctionPoints.push(jp); - }); - d._svgPath = section2svgPath(d.sections[0]); - return d._svgPath; - }); - - let linkWrap = root.selectAll(".link-wrap") - .data(edges) - .enter() - .append("path") - .attr("class", function (d) { - let cssClass; - if (d.hwMeta.parent) { - cssClass = d.hwMeta.parent.hwMeta.cssClass; - } else { - cssClass = d.hwMeta.cssClass; - } - if (typeof cssClass !== 'undefined') { - return "link-wrap " + cssClass; - } else { - return "link-wrap"; - } - }) - .attr("style", function (d) { - if (d.hwMeta.parent) { - return d.hwMeta.parent.hwMeta.cssStyle; - } else { - return d.hwMeta.cssStyle - } - }) - .attr("d", function(d) { - return d._svgPath; - }); - - let junctionPoint = root.selectAll(".junction-point") - .data(junctionPoints) - .enter() - .append("circle") - .attr("r", "3") - .attr("cx", function(d) { - return d.x; - }) - .attr("cy", function(d) { - return d.y; - }) - .attr("class", "junction-point"); - - return [link, linkWrap, junctionPoint]; - } - - class Tooltip { - constructor(root) { - let t = this.tooltip = document.createElement("div"); - t.className = "d3-hwschematic-tooltip"; - t.style.display = "none"; - t.style.possition = "absolute"; - root.appendChild(t); - } - - show(evt, text) { - let t = this.tooltip; - t.style.display = "block"; - t.innerHTML = text; - t.style.left = evt.pageX + 10 + 'px'; - t.style.top = evt.pageY + 10 + 'px'; - } - - hide() { - this.tooltip.style.display = "none"; - } - } - - function yosysTranslateIcons(node, cell) { - let meta = node.hwMeta; - const t = cell.type; - - if (t === "$mux" || t === "$pmux") { - meta.cls = "Operator"; - meta.name = "MUX"; - } else if (t === "$gt") { - meta.cls = "Operator"; - meta.name = "GT"; - } else if (t === "$lt") { - meta.cls = "Operator"; - meta.name = "LT"; - } else if (t === "$ge") { - meta.cls = "Operator"; - meta.name = "GE"; - } else if (t === "$le") { - meta.cls = "Operator"; - meta.name = "LE"; - } else if (t === "$not" || t === "$logic_not") { - meta.cls = "Operator"; - meta.name = "NOT"; - } else if (t === "$logic_and" || t === "$and") { - meta.cls = "Operator"; - meta.name = "AND"; - } else if (t === "$logic_or" || t === "$or") { - meta.cls = "Operator"; - meta.name = "OR"; - } else if (t === "$xor") { - meta.cls = "Operator"; - meta.name = "XOR"; - } else if (t === "$eq") { - meta.cls = "Operator"; - meta.name = "EQ"; - } else if (t === "$ne") { - meta.cls = "Operator"; - meta.name = "NE"; - } else if (t === "$add") { - meta.cls = "Operator"; - meta.name = "ADD"; - } else if (t === "$sub") { - meta.cls = "Operator"; - meta.name = "SUB"; - } else if (t === "$mul") { - meta.cls = "Operator"; - meta.name = "MUL"; - } else if (t === "$div") { - meta.cls = "Operator"; - meta.name = "DIV"; - } else if (t === "$slice") { - meta.cls = "Operator"; - meta.name = "SLICE"; - } else if (t === "$concat") { - meta.cls = "Operator"; - meta.name = "CONCAT"; - } else if (t === "$adff") { - meta.cls = "Operator"; - let arstPolarity = cell.parameters["ARST_POLARITY"]; - let clkPolarity = cell.parameters["CLK_POLARITY"]; - if (clkPolarity && arstPolarity) { - meta.name = "FF_ARST_clk1_rst1"; - } else if (clkPolarity) { - meta.name = "FF_ARST_clk1_rst0"; - } else if (arstPolarity) { - meta.name = "FF_ARST_clk0_rst1"; - } else { - meta.name = "FF_ARST_clk0_rst0"; - } - } else if (t === "$dff") { - meta.cls = "Operator"; - meta.name = "FF"; - } else if (t === "$shift" || t === "$shiftx") { - meta.cls = "Operator"; - meta.name = "SHIFT"; - } else if (t === "$dlatch") { - meta.cls = "Operator"; - let enPolarity = cell.parameters["EN_POLARITY"]; - if (enPolarity) { - meta.name = "DLATCH_en1"; - } else { - meta.name = "DLATCH_en0"; - - } - } - } - - function getPortSide(portName, direction, nodeName) { - if (direction === "input" && nodeName === "MUX" && portName === "S") { - return "SOUTH"; - } - if (direction === "output") { - return "EAST"; - } - if (direction === "input") { - return "WEST"; - } - throw new Error("Unknown direction " + direction); - } - - function orderClkAndRstPorts(node) { - let index = 0; - for (let port of node.ports) { - let dstIndex = index; - if (port.hwMeta.name === "CLK") { - dstIndex = node.ports.length - 1; - } else if (port.hwMeta.name === "ARST") { - dstIndex = node.ports.length - 2; - } - if (index !== dstIndex) { - let otherPort = node.ports[dstIndex]; - node.ports[dstIndex] = port; - node.ports[index] = otherPort; - otherPort.properties.index = port.properties.index; - port.properties.index = dstIndex; - } - ++index; - } - } - - function iterNetnameBits(netnames, fn) { - for (const [netname, netObj] of Object.entries(netnames)) { - for (const bit of netObj.bits) { - fn(netname, bit, Number.isInteger(bit), isConst(bit)); - } - } - } - - function getNetNamesDict(yosysModule) { - let netnamesDict = {}; // yosys bits (netId): netname - - iterNetnameBits(yosysModule.netnames, (netname, bit, isInt, isStr) => { - if (isInt) { - netnamesDict[bit] = netname; - } else if (!isStr) { - throw new Error("Invalid type in bits: " + typeof bit); - } - }); - return netnamesDict; - } - - function isConst(val) { - return (typeof val === "string"); - } - - function getConstNodeName(nameArray) { - let nodeName = nameArray.reverse().join(""); - nodeName = ["0b", nodeName].join(""); - if (nodeName.match(/^0b[01]+$/g)) { - let res = BigInt(nodeName).toString(16); - return ["0x", res].join(""); - } - return nodeName; - } - - function addEdge(edge, portId, edgeDict, startIndex, width) { - let edgeArr = edgeDict[portId]; - if (edgeArr === undefined) { - edgeArr = edgeDict[portId] = []; - } - edgeArr[startIndex] = [edge, width]; - } - - function getSourceAndTarget2(edge) { - return [edge.sources, edge.targets, false, true]; - } - - function getSourceAndTargetForCell(edge) { - return [edge.targets, edge.sources, true, false]; - } - - function getPortNameSplice(startIndex, width) { - if (width === 1) { - return `[${startIndex}]`; - } else if (width > 1) { - let endIndex = startIndex + width; - return `[${endIndex}:${startIndex}]`; - } - - throw new Error("Incorrect width" + width); - - } - - - function hideChildrenAndNodes(node, yosysModule) { - if (yosysModule !== null) { - if (node.children.length === 0 && node.edges.length === 0) { - delete node.children; - delete node.edges; - - } else { - node._children = node.children; - delete node.children; - node._edges = node.edges; - delete node.edges; - } - } - } - - - function updatePortIndices(ports) { - let index = 0; - for (let port of ports) { - port.properties.index = index; - ++index; - } - } - - function dividePorts(ports) { - let north = []; - let east = []; - let south = []; - let west = []; - - for (let port of ports) { - let side = port.properties.side; - if (side === "NORTH") { - north.push(port); - } else if (side === "EAST") { - east.push(port); - } else if (side === "SOUTH") { - south.push(port); - } else if (side === "WEST") { - west.push(port); - } else { - throw new Error("Invalid port side: " + side); - } - } - - return [north, east, south, west]; - } - - function convertPortOrderingFromYosysToElk(node) { - let [north, east, south, west] = dividePorts(node.ports); - node.ports = north.concat(east, south.reverse(), west.reverse()); - updatePortIndices(node.ports); - - } - - function getTopModuleName(yosysJson) { - let topModuleName = undefined; - for (const [moduleName, moduleObj] of Object.entries(yosysJson.modules)) { - if (moduleObj.attributes.top) { - topModuleName = moduleName; - break; - } - } - - if (topModuleName === undefined) { - throw new Error("Cannot find top"); - } - - return topModuleName; - } - - function getNodePorts(node, dict){ - for (let port of node.ports) { - dict[port.id] = port; - } - - } - function getPortIdToPortDict(node) { - let PortIdToPortDict = {}; - - getNodePorts(node, PortIdToPortDict); - for (let child of node.children) { - getNodePorts(child, PortIdToPortDict); - } - - return PortIdToPortDict; - } - function getNodeIdToNodeDict(node,) { - let nodeIdToNodeDict = {}; - nodeIdToNodeDict[node.id] = node; - for (let child of node.children) { - nodeIdToNodeDict[child.id] = child; - } - return nodeIdToNodeDict; - } - - function getPortToEdgeDict(edges) { - let portToEdgeDict = {}; - for (let edge of edges) { - let targets = edge.targets; - let sources = edge.sources; - for (let [_, portId] of sources) { - portToEdgeDict[portId] = edge; - } - - for (let [_, portId] of targets) { - portToEdgeDict[portId] = edge; - } - } - return portToEdgeDict; - } - - function getChildSourcePorts(ports) { - let sourcePorts = []; - for(let port of ports) { - if (port !== undefined && port.direction === "INPUT") { - sourcePorts.push(port); - } - } - - return sourcePorts; - } - - function getEdgeTargetsIndex(targets, portId) { - for(let i = 0; i < targets.length; ++i) { - let target = targets[i]; - let [_, targetPortId] = target; - - if (portId === targetPortId) { - return i; - } - } - throw new Error("PortId was not found"); - - } - function aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict) { - let i = 0; - if (targetPort.properties.index !== 0) { - throw new Error("Port index is not zero, need to regenerate indices in port labels"); - } - for (let oldTargetPort of childSourcePorts) { - let oldTargetPortId = oldTargetPort.id; - let edge = portIdToEdgeDict[oldTargetPortId]; - let edgeTargetsIndex = getEdgeTargetsIndex(edge.targets, oldTargetPortId); - edge.targets[edgeTargetsIndex][0] = targetNode.id; - let newTargetPortIndex = targetPort.properties.index + i; - if (i === 0) { - targetNode.ports[newTargetPortIndex] = oldTargetPort; - } - else { - targetNode.ports.splice(newTargetPortIndex, 0, oldTargetPort); - } - oldTargetPort.properties.index = newTargetPortIndex; - ++i; - } - - - } - - function getChildTargetPortId(child) { - for (let port of child.ports) { - if (port !== undefined && port.direction === "OUTPUT") - { - return port.id; - } - } - - throw new Error("Concat child has no target"); - } - - function aggregate(node, childrenConcats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict) { - let edgesToDelete = new Set(); - let childrenToDelete = new Set(); - - for (let child of childrenConcats) { - let childTargetPortId = getChildTargetPortId(child); - let edge = portIdToEdgeDict[childTargetPortId]; - if (edge === undefined) { - continue; - } - let targets = edge.targets; - - if (targets !== undefined && targets.length === 1) { - let [nodeId, portId] = targets[0]; - let targetNode = nodeIdToNodeDict[nodeId]; - let targetPort = portIdToPortDict[portId]; - let childSourcePorts = getChildSourcePorts(child.ports); - if (targetNode === undefined) { - throw new Error("Target node of target port is undefined"); - } - if (targetNode.hwMeta.cls === "Operator" && targetNode.hwMeta.name === "CONCAT") { - aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict); - edgesToDelete.add(edge.id); - childrenToDelete.add(child.id); - } - } - } - node.children = node.children.filter((c) => { - return !childrenToDelete.has(c.id); - }); - node.edges = node.edges.filter((e) => { - return !edgesToDelete.has(e.id); - }); - } - - function fillConcats(children) { - let concats = []; - for (let child of children) { - if (child.hwMeta.cls === "Operator" && child.hwMeta.name === "CONCAT") { - concats.push(child); - } - } - return concats; - - } - - function aggregateConcants(node) { - let concats = fillConcats(node.children); - let portIdToEdgeDict = getPortToEdgeDict(node.edges); - let portIdToPortDict = getPortIdToPortDict(node); - let nodeIdToNodeDict = getNodeIdToNodeDict(node); - aggregate(node, concats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict); - } - - class LNodeMaker { - constructor(name, yosysModule, idCounter, yosysModules, hierarchyLevel, nodePortNames) { - this.name = name; - this.yosysModule = yosysModule; - this.idCounter = idCounter; - this.yosysModules = yosysModules; - this.hierarchyLevel = hierarchyLevel; - this.nodePortNames = nodePortNames; - this.childrenWithoutPortArray = []; - this.nodeIdToCell = {}; - } - - make() { - if (this.name === undefined) { - throw new Error("Name is undefined"); - } - - let node = this.makeNode(this.name); - - if (this.yosysModule) { - // cell with module definition, load ports, edges and children from module def. recursively - this.fillPorts(node, this.yosysModule.ports, (p) => { - return p.direction - }, undefined); - this.fillChildren(node); - this.fillEdges(node); - - if (node.children !== undefined && node.children.length > 0) { - aggregateConcants(node); - } - - } - - if (node.children !== undefined) { - for (let child of node.children) { - convertPortOrderingFromYosysToElk(child); - if (child.hwMeta.cls === "Operator" && child.hwMeta.name.startsWith("FF")) { - orderClkAndRstPorts(child); - } - } - } - - if (this.hierarchyLevel > 1) { - hideChildrenAndNodes(node, this.yosysModule); - } - - node.hwMeta.maxId = this.idCounter - 1; - return node; - } - makeNode(name) { - let node = { - "id": this.idCounter.toString(), //generate, each component has unique id - "hwMeta": { // [d3-hwschematic specific] - "name": name, // optional str - "cls": "", // optional str - "maxId": 2, // max id of any object in this node used to avoid re-counting object if new object is generated - }, - "properties": { // recommended renderer settings - "org.eclipse.elk.portConstraints": "FIXED_ORDER", // can be also "FREE" or other value accepted by ELK - "org.eclipse.elk.layered.mergeEdges": 1 - }, - "ports": [], // list of LPort - "edges": [], // list of LEdge - "children": [], // list of LNode - }; - ++this.idCounter; - return node; - } - - fillPorts(node, ports, getPortDirectionFn, cellObj) { - const isSplit = cellObj !== undefined && cellObj.type === "$slice"; - const isConcat = cellObj !== undefined && cellObj.type === "$concat"; - let portByName = this.nodePortNames[node.id]; - if (portByName === undefined) { - portByName = {}; - this.nodePortNames[node.id] = portByName; - } - for (let [portName, portObj] of Object.entries(ports)) { - let originalPortName = portName; - if (isSplit || isConcat) { - if (portName === "Y") { - portName = ""; - } - if (isSplit) { - if (portName === "A") { - portName = getPortNameSplice(cellObj.parameters.OFFSET, cellObj.parameters.Y_WIDTH); - } - } else if (isConcat) { - let par = cellObj.parameters; - if (portName === "A") { - portName = getPortNameSplice(0, par.A_WIDTH); - } else if (portName === "B") { - portName = getPortNameSplice(par.A_WIDTH, par.B_WIDTH); - } - } - } - let direction = getPortDirectionFn(portObj); - this.makeLPort(node.ports, portByName, originalPortName, portName, direction, node.hwMeta.name); - } - } - - makeLPort(portList, portByName, originalName, name, direction, nodeName) { - if (name === undefined) { - throw new Error("Name is undefined"); - } - - let portSide = getPortSide(name, direction, nodeName); - let port = { - "id": this.idCounter.toString(), - "hwMeta": { // [d3-hwschematic specific] - "name": name, - }, - "direction": direction.toUpperCase(), // [d3-hwschematic specific] controls direction marker - "properties": { - "side": portSide, - "index": 0 // The order is assumed as clockwise, starting with the leftmost port on the top side. - // Required only for components with "org.eclipse.elk.portConstraints": "FIXED_ORDER" - }, - "children": [], // list of LPort, if the port should be collapsed rename this property to "_children" - }; - port.properties.index = portList.length; - portList.push(port); - portByName[originalName] = port; - ++this.idCounter; - return port; - } - - fillChildren(node) { - // iterate all cells and lookup for modules and construct them recursively - for (const [cellName, cellObj] of Object.entries(this.yosysModule.cells)) { - let moduleName = cellObj.type; //module name - let cellModuleObj = this.yosysModules[moduleName]; - let nodeBuilder = new LNodeMaker(cellName, cellModuleObj, this.idCounter, this.yosysModules, - this.hierarchyLevel + 1, this.nodePortNames); - let subNode = nodeBuilder.make(); - this.idCounter = nodeBuilder.idCounter; - node.children.push(subNode); - yosysTranslateIcons(subNode, cellObj); - this.nodeIdToCell[subNode.id] = cellObj; - if (cellModuleObj === undefined) { - if (cellObj.port_directions === undefined) { - // throw new Error("[Todo] if modules does not have definition in modules and its name does not \ - // start with $, then it does not have port_directions. Must add port to sources and targets of an edge") - - this.childrenWithoutPortArray.push([cellObj, subNode]); - continue; - } - this.fillPorts(subNode, cellObj.port_directions, (p) => { - return p; - }, cellObj); - } - } - } - - fillEdges(node) { - - let edgeTargetsDict = {}; - let edgeSourcesDict = {}; - let constNodeDict = {}; - let [edgeDict, edgeArray] = this.getEdgeDictFromPorts( - node, constNodeDict, edgeTargetsDict, edgeSourcesDict); - let netnamesDict = getNetNamesDict(this.yosysModule); - - function getPortName(bit) { - return netnamesDict[bit]; - } - - for (let i = 0; i < node.children.length; i++) { - const subNode = node.children[i]; - if (constNodeDict[subNode.id] === 1) { - //skip constants to iterate original cells - continue; - } - - let cell = this.nodeIdToCell[subNode.id]; - if (cell.port_directions === undefined) { - continue; - } - let connections = cell.connections; - let portDirections = cell.port_directions; - - - if (connections === undefined) { - throw new Error("Cannot find cell for subNode" + subNode.hwMeta.name); - } - - let portI = 0; - let portByName = this.nodePortNames[subNode.id]; - for (const [portName, bits] of Object.entries(connections)) { - let portObj; - let direction; - if (portName.startsWith("$")) { - portObj = subNode.ports[portI++]; - direction = portObj.direction.toLowerCase(); //use direction from module port definition - } else { - portObj = portByName[portName]; - direction = portDirections[portName]; - } - - this.loadNets(node, subNode.id, portObj.id, bits, direction, edgeDict, constNodeDict, - edgeArray, getPortName, getSourceAndTargetForCell, edgeTargetsDict, edgeSourcesDict); - - } - } - // source null target null == direction is output - - for (const [cellObj, subNode] of this.childrenWithoutPortArray) { - for (const [portName, bits] of Object.entries(cellObj.connections)) { - let port = null; - for (const bit of bits) { - let edge = edgeDict[bit]; - if (edge === undefined) { - throw new Error("[Todo] create edge"); - } - let edgePoints; - let direction; - if (edge.sources.length === 0 && edge.targets.length === 0) { - direction = "output"; - edgePoints = edge.sources; - } else if (edge.sources.length === 0) { - // no sources -> add as source - direction = "output"; - edgePoints = edge.sources; - } else { - direction = "input"; - edgePoints = edge.targets; - } - - if (port === null) { - let portByName = this.nodePortNames[subNode.id]; - if (portByName === undefined) { - portByName = {}; - this.nodePortNames[subNode.id] = portByName; - } - port = this.makeLPort(subNode.ports, portByName, portName, portName, direction, subNode.hwMeta.name); - } - - edgePoints.push([subNode.id, port.id]); - } - } - - } - - let edgeSet = {}; // [sources, targets]: true - for (const edge of edgeArray) { - let key = [edge.sources, null, edge.targets]; - if (!edgeSet[key]) // filter duplicities - { - edgeSet[key] = true; - node.edges.push(edge); - } - } - - } - - getEdgeDictFromPorts(node, constNodeDict, edgeTargetsDict, edgeSourcesDict) { - let edgeDict = {}; // yosys bits (netId): LEdge - let edgeArray = []; - let portsIndex = 0; - for (const [portName, portObj] of Object.entries(this.yosysModule.ports)) { - let port = node.ports[portsIndex]; - portsIndex++; - - function getPortName2() { - return portName; - } - - this.loadNets(node, node.id, port.id, portObj.bits, portObj.direction, - edgeDict, constNodeDict, edgeArray, getPortName2, getSourceAndTarget2, - edgeTargetsDict, edgeSourcesDict); - - } - return [edgeDict, edgeArray]; - } - - /* - * Iterate bits representing yosys net names, which are used to get edges from the edgeDict. - * If edges are not present in the dictionary, they are created and inserted into it. Eventually, - * nodes are completed by filling sources and targets properties of LEdge. - */ - loadNets(node, nodeId, portId, bits, direction, edgeDict, constNodeDict, edgeArray, - getPortName, getSourceAndTarget, edgeTargetsDict, edgeSourcesDict) { - for (let i = 0; i < bits.length; ++i) { - let startIndex = i; - let width = 1; - let bit = bits[i]; - let portName = getPortName(bit); - let edge = edgeDict[bit]; - let netIsConst = isConst(bit); - if (netIsConst || edge === undefined) { - // create edge if it is not in edgeDict - if (portName === undefined) { - if (!netIsConst) { - throw new Error("Netname is undefined"); - } - portName = bit; - } - edge = this.makeLEdge(portName); - edgeDict[bit] = edge; - edgeArray.push(edge); - if (netIsConst) { - i = this.addConstNodeToSources(node, bits, edge.sources, i, constNodeDict); - width = i - startIndex + 1; - } - } - - let [a, b, targetA, targetB] = getSourceAndTarget(edge); - if (direction === "input") { - a.push([nodeId, portId]); - if (targetA) { - addEdge(edge, portId, edgeTargetsDict, startIndex, width); - } else { - addEdge(edge, portId, edgeSourcesDict, startIndex, width); - } - } else if (direction === "output") { - b.push([nodeId, portId]); - if (targetB) { - addEdge(edge, portId, edgeTargetsDict, startIndex, width); - } else { - addEdge(edge, portId, edgeSourcesDict, startIndex, width); - } - } else { - throw new Error("Unknown direction " + direction); - } - } - } - - makeLEdge(name) { - if (name === undefined) { - throw new Error("Name is undefined"); - } - let edge = { - "id": this.idCounter.toString(), - "sources": [], - "targets": [], // [id of LNode, id of LPort] - "hwMeta": { // [d3-hwschematic specific] - "name": name, // optional string, displayed on mouse over - } - }; - ++this.idCounter; - return edge; - } - - addConstNodeToSources(node, bits, sources, i, constNodeDict) { - let nameArray = []; - for (i; i < bits.length; ++i) { - let bit = bits[i]; - if (isConst(bit)) { - nameArray.push(bit); - } else { - break; - } - } - --i; - // If bit is a constant, create a node with constant - let nodeName = getConstNodeName(nameArray); - let constSubNode; - let port; - [constSubNode, port] = this.addConstNode(node, nodeName, constNodeDict); - sources.push([constSubNode.id, port.id]); - return i; - } - - addConstNode(node, nodeName, constNodeDict) { - let port; - - let nodeBuilder = new LNodeMaker(nodeName, undefined, this.idCounter, null, - this.hierarchyLevel + 1, this.nodePortNames); - let subNode = nodeBuilder.make(); - this.idCounter = nodeBuilder.idCounter; - - let portByName = this.nodePortNames[subNode.id] = {}; - port = this.makeLPort(subNode.ports, portByName, "O0", "O0", "output", subNode.hwMeta.name); - node.children.push(subNode); - constNodeDict[subNode.id] = 1; - - return [subNode, port]; - } - - - } - - function yosys(yosysJson) { - let nodePortNames = {}; - let rootNodeBuilder = new LNodeMaker("root", null, 0, null, 0, nodePortNames); - let output = rootNodeBuilder.make(); - let topModuleName = getTopModuleName(yosysJson); - - let nodeBuilder = new LNodeMaker(topModuleName, yosysJson.modules[topModuleName], rootNodeBuilder.idCounter, - yosysJson.modules, 1, nodePortNames); - let node = nodeBuilder.make(); - output.children.push(node); - output.hwMeta.maxId = nodeBuilder.idCounter - 1; - //yosysTranslateIcons(output); - //print output to console - //console.log(JSON.stringify(output, null, 2)); - - return output; - } - - function hyperEdgeListToEdges(eList, newEdges, idOffset) { - for (let ei = 0; ei < eList.length; ei++) { - let e = eList[ei]; - let isHyperEdge = typeof e.sources !== "undefined"; - if (isHyperEdge) { - let src; - let dst; - if (e.sources.length === 1 && e.targets.length === 1) { - src = e.sources[0]; - dst = e.targets[0]; - e.source = src[0]; - e.sourcePort = src[1]; - e.target = dst[0]; - e.targetPort = dst[1]; - delete e.sources; - delete e.targets; - newEdges.push(e); - } else { - for (let s = 0; s < e.sources.length; s++) { - src = e.sources[s]; - for (let t = 0; t < e.targets.length; t++) { - dst = e.targets[t]; - idOffset += 1; - newEdges.push({ - "hwMeta": { "parent": e }, - "id": "" + idOffset, - "source": src[0], - "sourcePort": src[1], - "target": dst[0], - "targetPort": dst[1], - }); - } - } - } - } else { - newEdges.push(e); - } - } - return idOffset; - } - - /** - * Convert hyperEdges to edges in whole graph - * - * @param n root node - * @param idOffset int, max id in graph, used for generating - * of new edges from hyperEdges - **/ - function hyperEdgesToEdges(n, idOffset) { - let newEdges; - if (n.edges) { - newEdges = []; - idOffset = hyperEdgeListToEdges(n.edges, newEdges, idOffset); - n.edges = newEdges; - } - if (n._edges) { - newEdges = []; - idOffset = hyperEdgeListToEdges(n._edges, newEdges, idOffset); - n._edges = newEdges; - } - if (n.children) { - for (let i = 0; i < n.children.length; i++) { - idOffset = hyperEdgesToEdges(n.children[i], idOffset); - } - } - if (n._children) { - for (let i = 0; i < n._children.length; i++) { - idOffset = hyperEdgesToEdges(n._children[i], idOffset); - } - } - return idOffset - } - - /** - * Get parent of net for net - **/ - function getNet(e) { - if (typeof e.hwMeta.parent !== "undefined") { - return e.hwMeta.parent; - } else { - return e; - } - } - - function initNodeParents(node, parent) { - node.hwMeta.parent = parent; - (node.children || []).forEach(function(n) { - initNodeParents(n, node); - }); - (node._children || []).forEach(function(n) { - initNodeParents(n, node); - }); - - } - function expandPorts(node) { - let portList = []; - if (node.ports) - node.ports.forEach(function (port) {expandPorts4port(port, portList);}); - //node.hwMeta.parent = parent; - node.ports = portList; - (node.children || node._children || []).forEach(function(n) { - expandPorts(n); - }); - } - - function expandPorts4port(port, portList){ - if (port.hwMeta.connectedAsParent) { - return; - } - portList.push(port); - (port.children || []).forEach(function(p) { - p.parent = port; - expandPorts4port(p, portList); - }); - - } - - /* - * Collect list of expanded nodes - */ - function computeLayoutCacheKey(n, res) { - res.push(n.id); - if (n.children) { - n.children.forEach((d) => { computeLayoutCacheKey(d, res); }); - } - } - - /* - * Store current state of layout - */ - function serializeLayout(n) { - var res = { - "id": n.id, - "x": n.x, - "y": n.y, - "width": n.width, - "height": n.height, - }; - if (n.ports) { - res["ports"] = n.ports.map(function(p) { - return { - "id": p.id, - "x": p.x, - "y": p.y, - "width": p.width, - "height": p.height, - }; - }); - } - if (n.edges) { - res["edges"] = n.edges.map(function(e) { - return { - "id": e.id, - "sections": e.sections, - "junctionPoints": e.junctionPoints - }; - }); - } - if (n.children) { - res["children"] = n.children.map(function(c) { - return serializeLayout(c) - }); - } - return res; - } - - // apply cached element positions and size - function applyCachedState(n, state) { - if (n.id != state.id) { - throw new Error("Cached state not matching current data"); - } - n.x = state.x; - n.y = state.y; - n.width = state.width; - n.height = state.height; - if (n.ports) { - state.ports.forEach(function(s, i) { - var p = n.ports[i]; - if (p.id != s.id) { - throw new Error("Cached state not matching current data"); - } - p.x = s.x; - p.y = s.y; - p.width = s.width; - p.height = s.height; - }); - } - if (n.edges) { - state.edges.forEach(function(s, i) { - var p = n.edges[i]; - if (p.id != s.id) { - throw new Error("Cached state not matching current data"); - } - p.sections = s.sections; - p.junctionPoints = s.junctionPoints; - }); - } - if (n.children) { - state.children.forEach(function(s, i) { - var c = n.children[i]; - return applyCachedState(c, s); - }); - } - } - - class d3elk { - constructor() { - // containers - this.graph = {}; // internal (hierarchical graph) - this._options = {}; - // dimensions - this.width = 0; - this.height = 0; - this._transformGroup = undefined; - - // the layouter instance - this.layouter = new ELK__default["default"]({ - algorithms: ['layered'], - }); - this._invalidateCaches(); - } - - /** - * Set or get the available area, the positions of the layouted graph are - * currently scaled down. - */ - size(size) { - if (!arguments.length) - return [this.width, this.height]; - var old_w = this.width; - var old_h = this.height; - this.width = size[0]; - this.height = size[1]; - - if (this.graph != null) { - if (old_w !== this.width || old_h !== this.height) { - this._layoutCache = {}; - } - this.graph.width = this.width; - this.graph.height = this.height; - } - return this; - }; - - /** - * Sets the group used to perform 'zoomToFit'. - */ - transformGroup(g) { - if (!arguments.length) - return this._transformGroup; - this._transformGroup = g; - return this; - } - - options(opts) { - if (!arguments.length) - return this._options; - this._options = opts; - return this; - } - - /** - * Start the layout process. - */ - start() { - var cacheKey = []; - computeLayoutCacheKey(this.graph, cacheKey); - var state = this._layoutCache[cacheKey]; - var _this = this; - if (typeof state !== 'undefined') { - // load layout from cache - return new Promise((resolve, reject) => { - resolve(); - }).then( - function() { - applyCachedState(_this.graph, state); - } - ) - } else { - // run layouter - this._cleanLayout(); - this._currentLayoutCacheKey = cacheKey; - return this.layouter.layout( - this.graph, - { layoutOptions: this._options } - ).then( - this._applyLayout.bind(this), - function(e) { - // Error while running elkjs layouter - _this._currentLayoutCacheKey = null; - throw e; - } - ); - } - } - - // get currently visible nodes - getNodes() { - if (this.__nodeCache != null) - return this.__nodeCache; - - var queue = [this.graph], - nodes = [], - parent; - - // note that svg z-index is document order, literally - while ((parent = queue.pop()) != null) { - if (!parent.properties[NO_LAYOUT]) { - nodes.push(parent); - (parent.children || []).forEach(function(c) { - queue.push(c); - }); - } - } - this.__nodeCache = nodes; - return nodes; - } - - - // get currently visible ports - getPorts() { - if (this.__portsCache != null) - return this.__portsCache; - - var ports = d3__namespace.merge(this.getNodes().map(function(n) { - return n.ports || []; - })); - this.__portsCache = ports; - } - - - // get currently visible edges - getEdges() { - if (this.__edgesCache != null) - return this.__edgesCache; - - var edgesOfChildren = d3__namespace.merge( - this.getNodes() - .filter(function(n) { - return n.children; - }) - .map(function(n) { - return n.edges || []; - }) - ); - - this.__edgesCache = edgesOfChildren; - return this.__edgesCache; - } - - // bind graph data - kgraph(root) { - if (!arguments.length) - return this.graph; - - var g = this.graph = root; - this._invalidateCaches(); - - if (!g.id) - g.id = "root"; - if (!g.properties) - g.properties = { 'algorithm': 'layered' }; - if (!g.properties.algorithm) - g.properties.algorithm = 'layered'; - if (!g.width) - g.width = this.width; - if (!g.height) - g.height = this.height; - - return this; - }; - /** - * If a top level transform group is specified, we set the scale to value so - * the available space is used to it's maximum. - */ - zoomToFit(node) { - if (!this._transformGroup) { - return; - } - if (node === null) { - node = this.graph; - } - zoomToFit(node, this.width, this.height, this._transformGroup); - } - - terminate() { - if (this.layouter) - this.layouter.terminateWorker(); - } - - /** - * Clean all layout possitions from nodes, nets and ports - */ - _cleanLayout(n) { - if (!arguments.length) - var n = this.graph; - cleanLayout(n); - return this; - } - _invalidateCaches() { - // cached used to avoid execuiton of elkjs to resolve the layout of - // graph if executed previously with same input - // {sorted list of expanded node ids: {nodeId: {"x": ..., "y": ..., - // "ports": {portId: [x, y]}}, - // edgeId: [points] }} - this._layoutCache = {}; - this._currentLayoutCacheKey = null; - - // {id(str): object from input graph} used to access graph objects by it's id - this._d3ObjMap = {}; - this.markLayoutDirty(); - }; - markLayoutDirty() { - this.__nodeCache = null; - this.__portsCache = null; - this.__edgesCache = null; - } - /** - * Apply layout for the kgraph style. Converts relative positions to - * absolute positions. - */ - _applyLayout(kgraph) { - this.zoomToFit(kgraph); - var nodeMap = {}; - // convert to absolute positions - toAbsolutePositions(kgraph, { x: 0, y: 0 }, nodeMap); - toAbsolutePositionsEdges(kgraph, nodeMap); - copyElkProps(kgraph, this.graph, this._d3ObjMap); - this._layoutCache[this._currentLayoutCacheKey] = serializeLayout(this.graph); - - return this.graph; - } - } - - function findGraph(nodeArray, nodeName) { - for (let node of nodeArray) { - if (node.hwMeta.name === nodeName) { - return node - } - } - throw new Error("Node is not found: " + nodeName); - } - - function selectGraphRootByPath(graph, path) { - let pathArray = path.split("/"); - let first = true; - let newGraph = graph; - for (let nodeName of pathArray) { - if (first && nodeName === "") { - first = false; - continue; - } - newGraph = findGraph((newGraph.children || newGraph._children), nodeName); - } - if (graph !== newGraph) { - //case if path has nonzero length - //copy because we need to make graph immutable because we will need it later - graph = Object.assign({}, graph); - graph.children = [newGraph]; - } - return graph; - - } - - function getNameOfEdge(e) { - let name = "unnamed"; - if (e.hwMeta) { - if (typeof e.hwMeta.name === "undefined") { - let p = e.hwMeta.parent; - let pIsHyperEdge = typeof p.sources !== "undefined"; - if (pIsHyperEdge && p.hwMeta) { - name = p.hwMeta.name; - } - } else { - name = e.hwMeta.name; - } - } - return name; - } - - function toggleHideChildren(node) { - let children; - let nextFocusTarget; - if (node.children) { - // children are visible, will collapse - children = node.children; - nextFocusTarget = node.hwMeta.parent; - } else { - // children are hidden, will expand - children = node._children; - nextFocusTarget = node; - } - - let tmpChildren = node.children; - node.children = node._children; - node._children = tmpChildren; - let tmpEdges = node.edges; - node.edges = node._edges; - node._edges = tmpEdges; - node.hwMeta.renderer.prepare(node); - return [children, nextFocusTarget]; - } - - /** - * HwScheme builds scheme diagrams after bindData(data) is called - * - * @param svg: root svg element where scheme will be rendered - * @attention zoom is not applied it is only used for focusing on objects - * @note do specify size of svg to have optimal result - */ - class HwSchematic { - constructor(svg) { - // flag for performance debug - this._PERF = false; - // main svg element - this.svg = svg; - // default sizes of elements - this.PORT_PIN_SIZE = [7, 13]; - this.PORT_HEIGHT = this.PORT_PIN_SIZE[1]; - this.CHAR_WIDTH = 7.55; - this.CHAR_HEIGHT = 13; - this.NODE_MIDDLE_PORT_SPACING = 20; - this.MAX_NODE_BODY_TEXT_SIZE = [400, 400]; - // top, right, bottom, left - this.BODY_TEXT_PADDING = [15, 10, 0, 10]; - svg.classed("d3-hwschematic", true); - this.defs = svg.append("defs"); - this.root = svg.append("g"); - this.errorText = null; - this._nodes = null; - this._edges = null; - - // graph layouter to resolve positions of elements - this.layouter = new d3elk(); - this.layouter - .options({ - edgeRouting: "ORTHOGONAL", - }) - .transformGroup(this.root); - - // shared tooltip object - this.tooltip = new Tooltip(document.getElementsByTagName('body')[0]); - - // renderer instances responsible for rendering of component nodes - this.nodeRenderers = new NodeRendererContainer(); - addMarkers(this.defs, this.PORT_PIN_SIZE); - let rs = this.nodeRenderers; - rs.registerRenderer(new OperatorNodeRenderer(this)); - rs.registerRenderer(new MuxNodeRenderer(this)); - rs.registerRenderer(new SliceNodeRenderer(this)); - rs.registerRenderer(new GenericNodeRenderer(this)); - } - - widthOfText(text) { - if (text) { - return text.length * this.CHAR_WIDTH; - } else { - return 0; - } - } - - removeGraph() { - this.root.selectAll("*").remove(); - } - - updateGlobalSize() { - let width = parseInt(this.svg.style("width") || this.svg.attr("width"), 10); - let height = parseInt(this.svg.style("height") || this.svg.attr("height"), 10); - - this.layouter - .size([width, height]); - } - - /** - * Set bind graph data to graph rendering engine - * - * @return promise for this job - */ - bindData(graph) { - this.removeGraph(); - let postCompaction = "layered.compaction.postCompaction.strategy"; - if (!graph.properties[postCompaction]) { - graph.properties[postCompaction] = "EDGE_LENGTH"; - } - hyperEdgesToEdges(graph, graph.hwMeta.maxId); - initNodeParents(graph, null); - expandPorts(graph); - - if (this._PERF) { - let t0 = new Date().getTime(); - this.nodeRenderers.prepare(graph); - let t1 = new Date().getTime(); - console.log("> nodeRenderers.prepare() : " + (t1 - t0) + " ms"); - } else { - // nodes are ordered, children at the end - this.nodeRenderers.prepare(graph); - } - this.layouter - .kgraph(graph); - return this._draw(); - } - /* - * @returns subnode selected by path wrapped in a new root - * */ - static selectGraphRootByPath(graph, path) { - return selectGraphRootByPath(graph, path); - } - /* - * Resolve layout and draw a component graph from layout data - */ - _draw() { - this.updateGlobalSize(); - - let layouter = this.layouter; - this._nodes = layouter.getNodes().slice(1); // skip root node - this._edges = layouter.getEdges(); - let t0; - if (this._PERF) { - t0 = new Date().getTime(); - } - let _this = this; - return layouter.start() - .then( - function (g) { - if (_this._PERF) { - let t1 = new Date().getTime(); - console.log("> layouter.start() : " + (t1 - t0) + " ms"); - t0 = t1; - } - _this._applyLayout(g); - if (_this._PERF) { - let t1 = new Date().getTime(); - console.log("> HwSchematic._applyLayout() : " + (t1 - t0) + " ms"); - } - }, - function (e) { - // Error while running d3-elkjs layouter - throw e; - } - ); - } - - /** - * Draw a component graph from layout data - */ - _applyLayout() { - let root = this.root; - - let node = root.selectAll(".node") - .data(this._nodes) - .enter() - .append("g"); - this.nodeRenderers.render(root, node); - - let _this = this; - node.on("click", function (ev, d) { - let [children, nextFocusTarget] = toggleHideChildren(d); - if (!children || children.length === 0) { - return; // does not have anything to expand - } - _this.layouter.markLayoutDirty(); - _this.removeGraph(); - _this._draw().then( - function () { - _this.layouter.zoomToFit(nextFocusTarget); - }, - function (e) { - // Error while applying of layout - throw e; - } - ); - }); - - this._applyLayoutLinks(); - } - - _applyLayoutLinks() { - let _this = this; - let edges = this._edges; - - let [link, linkWrap, _] = renderLinks(this.root, edges); - // build netToLink - let netToLink = {}; - edges.forEach(function (e) { - netToLink[getNet(e).id] = { - "core": [], - "wrap": [] - }; - }); - linkWrap._groups.forEach(function (lg) { - lg.forEach(function (l) { - let e = d3__namespace.select(l).data()[0]; - netToLink[getNet(e).id]["wrap"].push(l); - }); - }); - link._groups.forEach(function (lg) { - lg.forEach(function (l) { - let e = d3__namespace.select(l).data()[0]; - netToLink[getNet(e).id]["core"].push(l); - }); - }); - - // set highlingt and tooltip on mouser over over the net - linkWrap.on("mouseover", function (ev, d) { - let netWrap = netToLink[getNet(d).id]["wrap"]; - d3__namespace.selectAll(netWrap) - .classed("link-wrap-activated", true); - - _this.tooltip.show(ev, getNameOfEdge(d)); - }); - linkWrap.on("mouseout", function (ev, d) { - let netWrap = netToLink[getNet(d).id]["wrap"]; - d3__namespace.selectAll(netWrap) - .classed("link-wrap-activated", false); - - _this.tooltip.hide(); - }); - - // set link highlight on net click - function onLinkClick(ev, d) { - let net = getNet(d); - let doSelect = net.selected = !net.selected; - // propagate click on all nets with same source - - let netCore = netToLink[net.id]["core"]; - d3__namespace.selectAll(netCore) - .classed("link-selected", doSelect); - ev.stopPropagation(); - } - - // Select net on click - link.on("click", onLinkClick); - linkWrap.on("click", onLinkClick); - } - - static fromYosys(yosysJson) { - return yosys(yosysJson); - } - - terminate() { - if (this.layouter) { - this.layouter.terminate(); - } - } - - setErrorText(msg) { - this.root.selectAll("*").remove(); - let errText = this.errorText; - if (!errText) { - errText = this.errorText = this.root.append("text") - .attr("x", "50%") - .attr("y", "50%") - .attr("dominant-baseline", "middle") - .attr("text-anchor", "middle") - .style("font-size", "34px"); - } - errText.text(msg); - let t = d3__namespace.zoomTransform(this.root.node()); - t.k = 1; - t.x = 0; - t.y = 0; - this.root.attr("transform", t); - - } - } - - exports.HwSchematic = HwSchematic; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/gen/local/elkjs/LICENSE.md b/gen/local/elkjs/LICENSE.md deleted file mode 100644 index 2849d27f..00000000 --- a/gen/local/elkjs/LICENSE.md +++ /dev/null @@ -1,264 +0,0 @@ -# Eclipse Public License - v 2.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE -PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF -THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -## 1. DEFINITIONS - -“Contribution” means: - -- a\) in the case of the initial Contributor, the initial content - Distributed under this Agreement, and -- b\) in the case of each subsequent Contributor: - - i\) changes to the Program, and - - ii\) additions to the Program; - - where such changes and/or additions to the Program originate from - and are Distributed by that particular Contributor. A Contribution - “originates” from a Contributor if it was added to the Program by - such Contributor itself or anyone acting on such Contributor's - behalf. Contributions do not include changes or additions to the - Program that are not Modified Works. - -“Contributor” means any person or entity that Distributes the Program. - -“Licensed Patents” mean patent claims licensable by a Contributor which -are necessarily infringed by the use or sale of its Contribution alone -or when combined with the Program. - -“Program” means the Contributions Distributed in accordance with this -Agreement. - -“Recipient” means anyone who receives the Program under this Agreement -or any Secondary License (as applicable), including Contributors. - -“Derivative Works” shall mean any work, whether in Source Code or other -form, that is based on (or derived from) the Program and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. - -“Modified Works” shall mean any work in Source Code or other form that -results from an addition to, deletion from, or modification of the -contents of the Program, including, for purposes of clarity any new file -in Source Code form that contains any contents of the Program. Modified -Works shall not include works that contain only declarations, -interfaces, types, classes, structures, or files of the Program solely -in each case in order to link to, bind by name, or subclass the Program -or Modified Works thereof. - -“Distribute” means the acts of a) distributing or b) making available in -any manner that enables the transfer of a copy. - -“Source Code” means the form of a Program preferred for making -modifications, including but not limited to software source code, -documentation source, and configuration files. - -“Secondary License” means either the GNU General Public License, Version -2.0, or any later versions of that license, including any exceptions or -additional permissions as identified by the initial Contributor. - -## 2. GRANT OF RIGHTS - -- a\) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free copyright - license to reproduce, prepare Derivative Works of, publicly display, - publicly perform, Distribute and sublicense the Contribution of such - Contributor, if any, and such Derivative Works. -- b\) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free patent license - under Licensed Patents to make, use, sell, offer to sell, import and - otherwise transfer the Contribution of such Contributor, if any, in - Source Code or other form. This patent license shall apply to the - combination of the Contribution and the Program if, at the time the - Contribution is added by the Contributor, such addition of the - Contribution causes such combination to be covered by the - Licensed Patents. The patent license shall not apply to any other - combinations which include the Contribution. No hardware per se is - licensed hereunder. -- c\) Recipient understands that although each Contributor grants the - licenses to its Contributions set forth herein, no assurances are - provided by any Contributor that the Program does not infringe the - patent or other intellectual property rights of any other entity. Each - Contributor disclaims any liability to Recipient for claims brought by - any other entity based on infringement of intellectual property rights - or otherwise. As a condition to exercising the rights and licenses - granted hereunder, each Recipient hereby assumes sole responsibility to - secure any other intellectual property rights needed, if any. For - example, if a third party patent license is required to allow Recipient - to Distribute the Program, it is Recipient's responsibility to acquire - that license before distributing the Program. -- d\) Each Contributor represents that to its knowledge it has sufficient - copyright rights in its Contribution, if any, to grant the copyright - license set forth in this Agreement. -- e\) Notwithstanding the terms of any Secondary License, no Contributor - makes additional grants to any Recipient (other than those set forth in - this Agreement) as a result of such Recipient's receipt of the Program - under the terms of a Secondary License (if permitted under the terms of - Section 3). - -## 3. REQUIREMENTS - -3.1 If a Contributor Distributes the Program in any form, then: - -- a\) the Program must also be made available as Source Code, in accordance - with section 3.2, and the Contributor must accompany the Program with a - statement that the Source Code for the Program is available under this - Agreement, and informs Recipients how to obtain it in a reasonable - manner on or through a medium customarily used for software exchange; - and -- b\) the Contributor may Distribute the Program under a license different - than this Agreement, provided that such license: - - i\) effectively disclaims on behalf of all other Contributors all - warranties and conditions, express and implied, including warranties or - conditions of title and non-infringement, and implied warranties or - conditions of merchantability and fitness for a particular purpose; - - ii\) effectively excludes on behalf of all other Contributors all - liability for damages, including direct, indirect, special, incidental - and consequential damages, such as lost profits; - - iii\) does not attempt to limit or alter the recipients' rights in the - Source Code under section 3.2; and - - iv\) requires any subsequent distribution of the Program by any party to - be under a license that satisfies the requirements of this section 3. - -3.2 When the Program is Distributed as Source Code: - -- a\) it must be made available under this Agreement, or if the Program (i) - is combined with other material in a separate file or files made - available under a Secondary License, and (ii) the initial Contributor - attached to the Source Code the notice described in Exhibit A of this - Agreement, then the Program may be made available under the terms of - such Secondary Licenses, and -- b\) a copy of this Agreement must be included with each copy of - the Program. - -3.3 Contributors may not remove or alter any copyright, patent, -trademark, attribution notices, disclaimers of warranty, or limitations -of liability (‘notices’) contained within the Program from any copy of -the Program which they Distribute, provided that Contributors may add -their own appropriate notices. - -## 4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities -with respect to end users, business partners and the like. While this -license is intended to facilitate the commercial use of the Program, the -Contributor who includes the Program in a commercial product offering -should do so in a manner which does not create potential liability for -other Contributors. Therefore, if a Contributor includes the Program in -a commercial product offering, such Contributor (“Commercial -Contributor”) hereby agrees to defend and indemnify every other -Contributor (“Indemnified Contributor”) against any losses, damages and -costs (collectively “Losses”) arising from claims, lawsuits and other -legal actions brought by a third party against the Indemnified -Contributor to the extent caused by the acts or omissions of such -Commercial Contributor in connection with its distribution of the -Program in a commercial product offering. The obligations in this -section do not apply to any claims or Losses relating to any actual or -alleged intellectual property infringement. In order to qualify, an -Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial -Contributor to control, and cooperate with the Commercial Contributor -in, the defense and any related settlement negotiations. The Indemnified -Contributor may participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial -product offering, Product X. That Contributor is then a Commercial -Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance -claims and warranties are such Commercial Contributor's responsibility -alone. Under this section, the Commercial Contributor would have to -defend claims against the other Contributors related to those -performance claims and warranties, and if a court requires any other -Contributor to pay any damages as a result, the Commercial Contributor -must pay those damages. - -## 5. NO WARRANTY {#warranty} - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” -BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF -TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the Program and assumes all -risks associated with its exercise of rights under this Agreement, -including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs or -equipment, and unavailability or interruption of operations. - -## 6. DISCLAIMER OF LIABILITY {#disclaimer} - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS -SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE -EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -## 7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of -the remainder of the terms of this Agreement, and without further action -by the parties hereto, such provision shall be reformed to the minimum -extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity (including -a cross-claim or counterclaim in a lawsuit) alleging that the Program -itself (excluding combinations of the Program with other software or -hardware) infringes such Recipient's patent(s), then such Recipient's -rights granted under Section 2(b) shall terminate as of the date such -litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails -to comply with any of the material terms or conditions of this Agreement -and does not cure such failure in a reasonable period of time after -becoming aware of such noncompliance. If all Recipient's rights under -this Agreement terminate, Recipient agrees to cease use and distribution -of the Program as soon as reasonably practicable. However, Recipient's -obligations under this Agreement and any licenses granted by Recipient -relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, -but in order to avoid inconsistency the Agreement is copyrighted and may -only be modified in the following manner. The Agreement Steward reserves -the right to publish new versions (including revisions) of this -Agreement from time to time. No one other than the Agreement Steward has -the right to modify this Agreement. The Eclipse Foundation is the -initial Agreement Steward. The Eclipse Foundation may assign the -responsibility to serve as the Agreement Steward to a suitable separate -entity. Each new version of the Agreement will be given a distinguishing -version number. The Program (including Contributions) may always be -Distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is -published, Contributor may elect to Distribute the Program (including -its Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient -receives no rights or licenses to the intellectual property of any -Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted -under this Agreement are reserved. Nothing in this Agreement is intended -to be enforceable by any entity that is not a Contributor or Recipient. -No third-party beneficiary rights are created under this Agreement. - -## Exhibit A – Form of Secondary Licenses Notice {#exhibit-a} - -“This Source Code may also be made available under the following -Secondary Licenses when the conditions for such availability set forth -in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), -version(s), and exceptions or additional permissions here}.” - -> Simply including a copy of this Agreement, including this Exhibit A is -> not sufficient to license the Source Code under Secondary Licenses. -> -> If it is not possible or desirable to put the notice in a particular -> file, then You may include the notice in a location (such as a LICENSE -> file in a relevant directory) where a recipient would be likely to -> look for such a notice. -> -> You may add additional accurate notices of copyright ownership. diff --git a/gen/local/elkjs/README.md b/gen/local/elkjs/README.md deleted file mode 100644 index 03af287a..00000000 --- a/gen/local/elkjs/README.md +++ /dev/null @@ -1,378 +0,0 @@ -

- -

- -The [Eclipse Layout Kernel (ELK)](https://www.eclipse.org/elk/) implements an infrastructure to connect diagram editors or viewers to automatic layout algorithms. This library takes the layout-relevant part of ELK and makes it available to the JavaScript world. -ELK's flagship is a layer-based layout algorithm that is particularly suited for node-link diagrams with an inherent direction and ports (explicit attachment points on a node's border). It is based on the ideas originally introduced by Sugiyama et al. An example can be seen in the screenshot below. - -Note that elkjs is not a diagramming framework itself - it computes positions for the elements of a diagram. - -elkjs is the successor of [klayjs](https://github.com/kieler/klayjs). - -#### Demonstrator -You can see elkjs [live in action](https://rtsys.informatik.uni-kiel.de/elklive/) in conjunction with TypeFox's [sprotty](https://github.com/eclipse/sprotty) diagramming framework. - -![](https://raw.githubusercontent.com/kieler/elkjs/master/doc/example_complexRouter.svg) - - -# FAQs and Recurring Issues -The following list includes some recurring topics that may have been addressed in issues already: - -* [#100][ejs100], [elk#355][e355], [elk#627][e627] - How to consider previous layout results, including - * dynamic layout, and - * incrementally adding nodes and edges to an existing layout. - -* [elk#315][e315]: Standalone edge routing. - -* [#85][ejs85] elkjs itself is a graph layout engine _only_. In other words, no rendering, styling, etc. is provided. - -* [#127][ejs127], [#141][ejs141], [#142][ejs142] - Issues due to the underlying code transpilation by GWT and/or due to the outdated usage of js modules: - * `g is not defined`, - * `Can't resolve web-worker`, and - * general usage as part of react, webpack, etc. - * [#6][ejs6] Poor modularization - * Contributions here are welcome! - -[ejs6]: https://github.com/kieler/elkjs/issues/6 -[ejs85]: https://github.com/kieler/elkjs/issues/85 -[ejs100]: https://github.com/kieler/elkjs/issues/100 -[ejs127]: https://github.com/kieler/elkjs/issues/127 -[ejs141]: https://github.com/kieler/elkjs/issues/141 -[ejs142]: https://github.com/kieler/elkjs/issues/142 -[e315]: https://github.com/eclipse/elk/issues/315 -[e355]: https://github.com/eclipse/elk/issues/355 -[e627]: https://github.com/eclipse/elk/issues/627 - -# Installation -The latest released version: -```bash -npm install elkjs -``` -Development version based on ELK's `master` branch. -```bash -npm install elkjs@next -``` - -# Releases and Versioning - -Releases are partly synchronized with ELK's versions: the minor version number is always the same but the revision number may diverge. For instance, elkjs 0.3.0 equals the functionality of ELK 0.3.0 but elkjs 0.3.2 may be different from ELK 0.3.2. This is necessary as there may be fixes that solely concern elkjs and should be released independently of ELK. - -# Files -The library consists of two main files: -* `elk-api.js`: Provides the API and only the API. -* `elk-worker.js`: Provides the code that actually knows how to lay out a graph. This is the file that is generated from ELK's Java code base using GWT. - -Two further files are provided: -* `elk.bundled.js`: A bundled version of the two previous files, ready to be dropped into a browser's ` - - -``` - -```html - - - - -``` - -## Typescript -```ts -import ELK from 'elkjs/lib/elk.bundled.js' -const elk = new ELK() - - -import ELK from 'elkjs/lib/elk-api' -const elk = new ELK({ - workerUrl: './elk-worker.min.js' -}) -``` - -## Debugging -For debugging purposes you may want to use the non-minified versions that are available as well. -In this case the non-minified webworker version can be configured like so: -```js -const ELK = require('elkjs/lib/elk-api.js') -const elk = new ELK({ - workerFactory: function(url) { // the value of 'url' is irrelevant here - const { Worker } = require('elkjs/lib/elk-worker.js') // non-minified - return new Worker(url) - } -}) -``` - -# API - -The elkjs library provides a single object: the `ELK`. The `ELK` has a constructor that can be used -to construct it: -* `new ELK(options)` - the `ELK` can be fed with options, all of which are optional: - * `defaultLayoutOptions` - an object with default layout options specified as key/value pairs - that are used if no further layout options are passed to the `layout(graph, options)` method (see below). Default: `{}`. - * `algorithms` - an array of algorithm ids (only the suffix). Default: `[ 'layered', 'stress', 'mrtree', 'radial', 'force', 'disco' ]`. Note that the `box`, `fixed`, and `random` layouters are always included. - * `workerUrl` - a path to the `elk-worker.js` script. As a consequence the `ELK` will use a Web Worker to execute the layout. Default: `undefined`. - -Apart from that the `ELK` offers the following methods: -* `layout(graph, options)` - * `graph` - the graph to be laid out in [ELK JSON](http://www.eclipse.org/elk/documentation/tooldevelopers/graphdatastructure/jsonformat.html). Mandatory! - * `options` - a configuration object. Optional. - * `layoutOptions`: its most important purpose is to pass _global_ layout options. - That is, layout options that are applied to every graph element unless the element specifies the option itself. - * `logging`: boolean (_since 0.6.0_). Whether logging information shall be passed back as part of the laid out graph. `false` by default. - * `measureExecutionTime`: boolean (_since 0.6.0_). Whether execution time (in seconds) information shall be passed back as part of the laid out graph. `false` by default. - * returns a `Promise`, which passes either the laid out graph on success or a (hopefully helpful) error on failure. -* `knownLayoutOptions()` - * returns an array of of known layout options. For each option additional information - such as its `id` and `group` is given. -* `knownLayoutAlgorithms()` - * returns an array of registered layout algorithms (see above) - alongside further information about each algorithm. -* `knownLayoutCategories()` - * returns an array of registered layout categories. -* `terminateWorker()` - in case a Web Worker is used, the worker's `terminate()` method is called. - -The three methods starting with `known` basically return information -that, in the Java world, would be retrieved from the [`LayoutMetaDataService`](http://www.eclipse.org/elk/documentation/algorithmdevelopers/metadatalanguage.html). - - -# Logging and Execution Times -(_Since 0.6.0_) - -ELK provides some means to log debug information during layout algorithm execution. -The details can be found in the [_Algorithm Debugging_](https://www.eclipse.org/elk/documentation/algorithmdevelopers/algorithmdebugging.html) section of ELK's documentation. -Not all of it is available in elkjs though, for instance, it is not possible to save intermediate results of the laid out graphs. -Furthermore, while internally execution time is measured in _nanoseconds_ on the Java side, -in elkjs we have to resort to _milliseconds_. -Note that the returned execution times are in seconds. -For small graphs this may often result in execution times being reported as `0`. - -See below an example call and the example output. -```js -elk.layout(simpleGraph, { - layoutOptions: { - 'algorithm': 'layered' - }, - logging: true, - measureExecutionTime: true -}) -``` -```js -{ - "id": "root", - "children": [ ... ], - "edges": [ ... ], - "logging": { - "name": "Recursive Graph Layout", - "executionTime": 0.000096, - "children": [ { - "name": "Layered layout", - "logs": [ - "ELK Layered uses the following 17 modules:", - " Slot 01: org.eclipse.elk.alg.layered.p1cycles.GreedyCycleBreaker", - [ ... ] - " Slot 16: org.eclipse.elk.alg.layered.intermediate.ReversedEdgeRestorer" - ], - "executionTime": 0.000072, - "children": [ { "name": "Greedy cycle removal", "executionTime": 0.000002 }, - [ ... ] - { "name": "Restoring reversed edges", "executionTime": 0 } ] - } ] - } -} -``` - -# Building - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kieler/elkjs) - -For building, a checkout of the [ELK](https://github.com/eclipse/elk) repository is required -and should be located in the same directory as the checkout of this repository. Like so: - -``` -some_dir/ - ├── elkjs - └── elk -``` - -```bash -npm install -npm run build -``` - -For a new release, the following version numbers have to be changed: -* `version` in `package.json`, -* `melk` in `build.gradle`, and -* don't forget to checkout the correct release tag of ELK's repository. - -Afterwards you can find the created files in the `lib` folder. - -Current procedure -```bash -git checkout -b releases/0.x.x -# Update versions and commit the changes -npm install -npm run build -npm run test -# Add ./lib/ directory and commit -git tag 0.x.x -# Push release branch an tags to remote -npm publish -``` - -# Links -In the following a list of asorted links to other projects and sites that may prove helpful: -* [Execution time comparison to Java ELK](https://github.com/kieler/elk-speed) -* How to specify [node label placement](http://kieler.github.io/klayjs-d3/examples/node_labels/) -* How to enforce certain [node positioning](http://kieler.github.io/klayjs-d3/examples/interactive/) (topological) - -# Example Users of elkjs - -- Schematics - - [netlistsvg](https://github.com/nturley/netlistsvg) - electronic and gate level schematics as SVG - - [d3-hwschematic](https://github.com/Nic30/d3-hwschematic) - interactive digital circuit analysis and documentation, particularly for FPGA-based designs -- Cytoscape [adapter](https://github.com/cytoscape/cytoscape.js-elk) -- [reaflow](https://reaflow.dev) - Node-based editor built on elkjs in React -- Wrapping elkjs into a [docker-based microservice](https://github.com/elbosso/elkjsmicroservice) -- [sprotty](https://github.com/eclipse/sprotty) - A diagramming framework -- [Eclipse 4diac](https://www.fordiac.org) -- [capellambse-context-diagrams](https://github.com/DSD-DBS/capellambse-context-diagrams) - Generating systems engineering context diagrams for [Capella](https://www.eclipse.org/capella/) in Python - -Note: We are happy to extend this list further, so please contact us if you have a project to add - -# Thanks - -* [@automata](https://github.com/automata) for the very first `klayjs` version -* [@aranega](https://github.com/aranega) for making emfgwt work for us -* [@EyMaddis](https://github.com/EyMaddis) for valuable API discussions -* The team working on the layout algorithms - * [@spoenemann](https://github.com/spoenemann) - * [@le-cds](https://github.com/le-cds) - * [@uruuru](https://github.com/uruuru) - * [@eNBeWe](https://github.com/eNBeWe) - * the vast number of students that contributed to ELK diff --git a/gen/local/elkjs/lib/elk-api.d.ts b/gen/local/elkjs/lib/elk-api.d.ts deleted file mode 100644 index 139ffbda..00000000 --- a/gen/local/elkjs/lib/elk-api.d.ts +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019 TypeFox and others. - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ - -export interface LayoutOptions { - [key: string]: string -} - -export interface ElkPoint { - x: number - y: number -} - -export interface ElkGraphElement { - id?: string - labels?: ElkLabel[] - layoutOptions?: LayoutOptions -} - -export interface ElkShape extends ElkGraphElement { - x?: number - y?: number - width?: number - height?: number -} - -export interface ElkNode extends ElkShape { - id: string - children?: ElkNode[] - ports?: ElkPort[] - edges?: ElkExtendedEdge[] -} - -export interface ElkPort extends ElkShape { - id: string -} - -export interface ElkLabel extends ElkShape { - text?: string -} - -/** - * @deprecated use ElkExtendedEdge directly - */ -export interface ElkEdge extends ElkGraphElement { - id: string - junctionPoints?: ElkPoint[] -} - -/** - * @deprecated use ElkExtendedEdge instead - */ -export interface ElkPrimitiveEdge extends ElkEdge { - source: string - sourcePort?: string - target: string - targetPort?: string - sourcePoint?: ElkPoint - targetPoint?: ElkPoint - bendPoints?: ElkPoint[] -} - -export interface ElkExtendedEdge extends ElkEdge { - sources: string[] - targets: string[] - sections?: ElkEdgeSection[] -} - -export interface ElkEdgeSection extends ElkGraphElement { - id: string - startPoint: ElkPoint - endPoint: ElkPoint - bendPoints?: ElkPoint[] - incomingShape?: string - outgoingShape?: string - incomingSections?: string[] - outgoingSections?: string[] -} - -export interface ElkLayoutArguments { - layoutOptions?: LayoutOptions - logging?: boolean - measureExecutionTime?: boolean -} - -export interface ElkCommonDescription { - id?: string - name?: string - description?: string -} - -export interface ElkLayoutAlgorithmDescription extends ElkCommonDescription { - category?: string - knownOptions?: string[] - supportedFeatures?: string[] -} - -export interface ElkLayoutOptionDescription extends ElkCommonDescription { - group?: string - type?: string - targets?: string[] -} - -export interface ElkLayoutCategoryDescription extends ElkCommonDescription { - knownLayouters?: string[] -} - -export interface ELK { - layout(graph: ElkNode, args?: ElkLayoutArguments): Promise; - knownLayoutAlgorithms(): Promise - knownLayoutOptions(): Promise - knownLayoutCategories(): Promise -} - -export interface ELKConstructorArguments { - defaultLayoutOptions?: LayoutOptions - algorithms?: string[] - workerUrl?: string - workerFactory?: (url?: string) => Worker -} - -declare const ElkConstructor: { - new(args?: ELKConstructorArguments): ELK; -}; -export default ElkConstructor; diff --git a/gen/local/elkjs/lib/elk-api.js b/gen/local/elkjs/lib/elk-api.js deleted file mode 100644 index b60e8bdc..00000000 --- a/gen/local/elkjs/lib/elk-api.js +++ /dev/null @@ -1,224 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, - defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, - _ref$algorithms = _ref.algorithms, - algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, - workerFactory = _ref.workerFactory, - workerUrl = _ref.workerUrl; - - _classCallCheck(this, ELK); - - this.defaultLayoutOptions = defaultLayoutOptions; - this.initialized = false; - - // check valid worker construction possible - if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { - throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); - } - var factory = workerFactory; - if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { - // use default Web Worker - factory = function factory(url) { - return new Worker(url); - }; - } - - // create the worker - var worker = factory(workerUrl); - if (typeof worker.postMessage !== 'function') { - throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); - } - - // wrap the worker to return promises - this.worker = new PromisedWorker(worker); - - // initially register algorithms - this.worker.postMessage({ - cmd: 'register', - algorithms: algorithms - }).then(function (r) { - return _this.initialized = true; - }).catch(console.err); - } - - _createClass(ELK, [{ - key: 'layout', - value: function layout(graph) { - var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref2$layoutOptions = _ref2.layoutOptions, - layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, - _ref2$logging = _ref2.logging, - logging = _ref2$logging === undefined ? false : _ref2$logging, - _ref2$measureExecutio = _ref2.measureExecutionTime, - measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; - - if (!graph) { - return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); - } - return this.worker.postMessage({ - cmd: 'layout', - graph: graph, - layoutOptions: layoutOptions, - options: { - logging: logging, - measureExecutionTime: measureExecutionTime - } - }); - } - }, { - key: 'knownLayoutAlgorithms', - value: function knownLayoutAlgorithms() { - return this.worker.postMessage({ cmd: 'algorithms' }); - } - }, { - key: 'knownLayoutOptions', - value: function knownLayoutOptions() { - return this.worker.postMessage({ cmd: 'options' }); - } - }, { - key: 'knownLayoutCategories', - value: function knownLayoutCategories() { - return this.worker.postMessage({ cmd: 'categories' }); - } - }, { - key: 'terminateWorker', - value: function terminateWorker() { - this.worker.terminate(); - } - }]); - - return ELK; -}(); - -exports.default = ELK; - -var PromisedWorker = function () { - function PromisedWorker(worker) { - var _this2 = this; - - _classCallCheck(this, PromisedWorker); - - if (worker === undefined) { - throw new Error("Missing mandatory parameter 'worker'."); - } - this.resolvers = {}; - this.worker = worker; - this.worker.onmessage = function (answer) { - // why is this necessary? - setTimeout(function () { - _this2.receive(_this2, answer); - }, 0); - }; - } - - _createClass(PromisedWorker, [{ - key: 'postMessage', - value: function postMessage(msg) { - var id = this.id || 0; - this.id = id + 1; - msg.id = id; - var self = this; - return new Promise(function (resolve, reject) { - // prepare the resolver - self.resolvers[id] = function (err, res) { - if (err) { - self.convertGwtStyleError(err); - reject(err); - } else { - resolve(res); - } - }; - // post the message - self.worker.postMessage(msg); - }); - } - }, { - key: 'receive', - value: function receive(self, answer) { - var json = answer.data; - var resolver = self.resolvers[json.id]; - if (resolver) { - delete self.resolvers[json.id]; - if (json.error) { - resolver(json.error); - } else { - resolver(null, json.data); - } - } - } - }, { - key: 'terminate', - value: function terminate() { - if (this.worker.terminate) { - this.worker.terminate(); - } - } - }, { - key: 'convertGwtStyleError', - value: function convertGwtStyleError(err) { - if (!err) { - return; - } - // Somewhat flatten the way GWT stores nested exception(s) - var javaException = err['__java$exception']; - if (javaException) { - // Note that the property name of the nested exception is different - // in the non-minified ('cause') and the minified (not deterministic) version. - // Hence, the version below only works for the non-minified version. - // However, as the minified stack trace is not of much use anyway, one - // should switch the used version for debugging in such a case. - if (javaException.cause && javaException.cause.backingJsObject) { - err.cause = javaException.cause.backingJsObject; - this.convertGwtStyleError(err.cause); - } - delete err['__java$exception']; - } - } - }]); - - return PromisedWorker; -}(); -},{}],2:[function(require,module,exports){ -"use strict"; - -/******************************************************************************* - * Copyright (c) 2021 Kiel University and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -var ELK = require('./elk-api.js').default; - -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports = ELK; -ELK.default = ELK; -},{"./elk-api.js":1}]},{},[2])(2) -}); diff --git a/gen/local/elkjs/lib/elk-worker.d.ts b/gen/local/elkjs/lib/elk-worker.d.ts deleted file mode 100644 index 77606b21..00000000 --- a/gen/local/elkjs/lib/elk-worker.d.ts +++ /dev/null @@ -1 +0,0 @@ -export type Worker = Worker diff --git a/gen/local/elkjs/lib/elk-worker.js b/gen/local/elkjs/lib/elk-worker.js deleted file mode 100644 index 56c55756..00000000 --- a/gen/local/elkjs/lib/elk-worker.js +++ /dev/null @@ -1,100643 +0,0 @@ -'use strict'; - -// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- -var $wnd; -if (typeof window !== 'undefined') - $wnd = window -else if (typeof global !== 'undefined') - $wnd = global // nodejs -else if (typeof self !== 'undefined') - $wnd = self // web worker - -var $moduleName, - $moduleBase; - -// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- -var _xblockexpression; - -// -------------- GENERATED CODE -------------- -var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {198:1, 47:1}, $intern_4 = {198:1, 47:1, 125:1}, $intern_5 = {224:1, 3:1}, $intern_6 = {47:1}, $intern_7 = {83:1}, $intern_8 = {20:1, 28:1, 14:1}, $intern_9 = 1965, $intern_10 = {20:1, 28:1, 14:1, 21:1}, $intern_11 = {83:1, 171:1, 161:1}, $intern_12 = {20:1, 28:1, 14:1, 21:1, 84:1}, $intern_13 = {20:1, 28:1, 14:1, 271:1, 21:1, 84:1}, $intern_14 = {47:1, 125:1}, $intern_15 = {345:1, 42:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {164:1}, $intern_19 = {38:1}, $intern_20 = {l:4194303, m:4194303, h:524287}, $intern_21 = {196:1}, $intern_22 = {245:1, 3:1, 35:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 14:1}, $intern_25 = {3:1, 20:1, 28:1, 14:1}, $intern_26 = {152:1, 3:1, 20:1, 28:1, 14:1, 15:1, 54:1}, $intern_27 = {3:1, 4:1, 5:1, 165:1}, $intern_28 = {3:1, 83:1}, $intern_29 = {20:1, 14:1, 21:1}, $intern_30 = {3:1, 20:1, 28:1, 14:1, 21:1}, $intern_31 = {20:1, 14:1, 21:1, 84:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 165:1}, $intern_35 = 1073741824, $intern_36 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_37 = {20:1, 28:1, 52:1, 14:1, 15:1}, $intern_38 = {20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_39 = {45:1}, $intern_40 = {365:1}, $intern_41 = 1.0E-4, $intern_42 = -2147483648, $intern_43 = {3:1, 102:1, 60:1, 78:1}, $intern_44 = {195:1, 3:1, 4:1}, $intern_45 = 1000, $intern_46 = 65535, $intern_47 = 1900, $intern_48 = {48:1, 3:1, 4:1}, $intern_49 = {3:1, 4:1, 35:1, 199:1}, $intern_50 = 4194303, $intern_51 = 1048575, $intern_52 = 524288, $intern_53 = 4194304, $intern_54 = 17592186044416, $intern_55 = 1000000000, $intern_56 = -17592186044416, $intern_57 = {3:1, 102:1, 73:1, 60:1, 78:1}, $intern_58 = {3:1, 289:1, 78:1}, $intern_59 = Infinity, $intern_60 = -Infinity, $intern_61 = 4096, $intern_62 = {3:1, 4:1, 364:1}, $intern_63 = 65536, $intern_64 = 55296, $intern_65 = {104:1, 3:1, 4:1}, $intern_66 = 100000, $intern_67 = 0.3010299956639812, $intern_68 = 4294967295, $intern_69 = 4294967296, $intern_70 = {42:1}, $intern_71 = {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1}, $intern_72 = {3:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_73 = {20:1, 14:1, 15:1}, $intern_74 = {3:1, 62:1}, $intern_75 = {182:1}, $intern_76 = {3:1, 4:1, 83:1}, $intern_77 = {3:1, 4:1, 20:1, 28:1, 14:1, 53:1, 21:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_85 = {3:1, 35:1, 22:1, 297:1}, $intern_86 = {3:1, 4:1, 5:1, 842:1}, $intern_87 = {525:1, 670:1}, $intern_88 = {62:1}, $intern_89 = {169:1, 45:1}, $intern_90 = {130:1}, $intern_91 = {177:1, 3:1, 4:1}, $intern_92 = {212:1, 326:1}, $intern_93 = {3:1, 4:1, 5:1, 595:1}, $intern_94 = 0.01, $intern_95 = {3:1, 94:1, 134:1}, $intern_96 = {209:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 192:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 106:1, 120:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 122:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 141:1, 106:1, 120:1}, $intern_105 = {51:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 474:1, 141:1, 106:1, 120:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 141:1, 193:1, 203:1, 106:1, 120:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 141:1, 1943:1, 203:1, 106:1, 120:1}, $intern_109 = {3:1, 4:1, 142:1, 207:1, 414:1}, $intern_110 = {3:1, 4:1, 116:1, 207:1, 414:1}, $intern_111 = {225:1}, $intern_112 = {3:1, 4:1, 5:1, 593:1}, $intern_113 = {123:1, 51:1}, $intern_114 = {402:1, 225:1}, $intern_115 = {832:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 840:1}, $intern_117 = 1.0E-5, $intern_118 = 1.0E-6, $intern_119 = 0.09999999999999998, $intern_120 = 1.0E-8, $intern_121 = 4.71238898038469, $intern_122 = 3.141592653589793, $intern_123 = 6.283185307179586, $intern_124 = 4.9E-324, $intern_125 = {3:1, 4:1, 5:1, 106:1}, $intern_126 = 5.497787143782138, $intern_127 = 3.9269908169872414, $intern_128 = 2.356194490192345, $intern_129 = {331:1}, $intern_130 = {288:1}, $intern_131 = 0.05, $intern_132 = 1.2999999523162842, $intern_133 = {92:1, 90:1}, $intern_134 = 32768, $intern_135 = {105:1, 92:1, 90:1, 56:1, 49:1, 97:1}, $intern_136 = {190:1, 3:1, 4:1}, $intern_137 = 1024, $intern_138 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1}, $intern_139 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 47:1, 15:1, 54:1, 67:1, 63:1, 58:1, 588:1}, $intern_140 = {415:1, 672:1}, $intern_141 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}, $intern_142 = {366:1, 143:1}, $intern_143 = {3:1, 4:1, 5:1, 126:1}, $intern_144 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 58:1}, $intern_145 = {3:1, 6:1, 4:1, 5:1, 192:1}, $intern_146 = {3:1, 4:1, 5:1, 165:1, 367:1}, $intern_147 = {76:1}, $intern_148 = {3:1, 20:1, 14:1, 15:1, 58:1, 589:1, 76:1, 69:1, 95:1}, $intern_149 = 8192, $intern_150 = 2048, $intern_151 = {3:1, 4:1, 5:1, 247:1}, $intern_152 = {3:1, 4:1, 5:1, 673:1}, $intern_153 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 69:1}, $intern_154 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 69:1, 95:1}, $intern_155 = {3:1, 4:1, 5:1, 674:1}, $intern_156 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 76:1, 69:1, 95:1}, $intern_157 = {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 69:1}, $intern_158 = {47:1, 125:1, 279:1}, $intern_159 = {72:1, 332:1}, $intern_160 = 1316, $intern_161 = -32768, $intern_162 = {55:1}, $intern_163 = {3:1, 4:1, 5:1, 119:1}, $intern_164 = {92:1, 90:1, 591:1, 1935:1}, $intern_165 = 1114111, $intern_166 = {3:1, 117:1}, $intern_167 = {3:1, 4:1, 5:1, 368:1}; -var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; -function setGwtProperty(propertyName, propertyValue){ - typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); -} - -function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ - ensureModuleInit(); - var initFnList = initFnList_0; - $moduleName = modName; - $moduleBase = modBase; - permutationId = softPermutationId; - function initializeModules(){ - for (var i = 0; i < initFnList.length; i++) { - initFnList[i](); - } - } - - if (errFn) { - try { - $entry(initializeModules)(); - } - catch (e) { - errFn(modName, e); - } - } - else { - $entry(initializeModules)(); - } -} - -function ensureModuleInit(){ - initFnList_0 == null && (initFnList_0 = []); -} - -function addInitFunctions(){ - ensureModuleInit(); - var initFnList = initFnList_0; - for (var i = 0; i < arguments.length; i++) { - initFnList.push(arguments[i]); - } -} - -function typeMarkerFn(){ -} - -function toString_40(object){ - var number; - if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { - return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); - } - return object.toString(); -} - -function portableObjCreate(obj){ - function F(){ - } - - ; - F.prototype = obj || {}; - return new F; -} - -function makeLambdaFunction(samMethod, ctor, ctorArguments){ - var lambda = function(){ - return samMethod.apply(lambda, arguments); - } - ; - ctor.apply(lambda, ctorArguments); - return lambda; -} - -function emptyMethod(){ -} - -function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ - var prototypesByTypeId = prototypesByTypeId_0, superPrototype; - var prototype_0 = prototypesByTypeId[typeId]; - var clazz = prototype_0 instanceof Array?prototype_0[0]:null; - if (prototype_0 && !clazz) { - _ = prototype_0; - } - else { - _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); - _.castableTypeMap = castableTypeMap; - !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); - prototypesByTypeId[typeId] = _; - } - for (var i = 3; i < arguments.length; ++i) { - arguments[i].prototype = _; - } - clazz && (_.___clazz = clazz); -} - -function bootstrap(){ - prototypesByTypeId_0 = {}; - !Array.isArray && (Array.isArray = function(vArg){ - return Object.prototype.toString.call(vArg) === '[object Array]'; - } - ); - function now_0(){ - return (new Date).getTime(); - } - - !Date.now && (Date.now = now_0); -} - -$wnd.goog = $wnd.goog || {}; -$wnd.goog.global = $wnd.goog.global || $wnd; -bootstrap(); -function $equals(this$static, other){ - return maskUndefined(this$static) === maskUndefined(other); -} - -function Object_0(){ -} - -function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ - return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other); -} - -function getClass__Ljava_lang_Class___devirtual$(this$static){ - return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; -} - -function hashCode__I__devirtual$(this$static){ - return instanceOfString(this$static)?getHashCode_1(this$static):instanceOfDouble(this$static)?$hashCode_0(this$static):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static)?1231:1237:hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getHashCode_0(this$static):$hashCode(this$static); -} - -defineClass(1, null, {}, Object_0); -_.equals_0 = function equals(other){ - return $equals(this, other); -} -; -_.getClass_0 = function getClass_0(){ - return this.___clazz; -} -; -_.hashCode_1 = function hashCode_0(){ - return getHashCode_0(this); -} -; -_.toString_0 = function toString_1(){ - var number; - return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); -} -; -_.equals = function(other){ - return this.equals_0(other); -} -; -_.hashCode = function(){ - return this.hashCode_1(); -} -; -_.toString = function(){ - return this.toString_0(); -} -; -function canCast(src_0, dstId){ - if (instanceOfString(src_0)) { - return !!stringCastMap[dstId]; - } - else if (src_0.castableTypeMap) { - return !!src_0.castableTypeMap[dstId]; - } - else if (instanceOfDouble(src_0)) { - return !!doubleCastMap[dstId]; - } - else if (instanceOfBoolean(src_0)) { - return !!booleanCastMap[dstId]; - } - return false; -} - -function castTo(src_0, dstId){ - checkCriticalType(src_0 == null || canCast(src_0, dstId)); - return src_0; -} - -function castToArray(src_0){ - var elementTypeCategory; - checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))); - return src_0; -} - -function castToBoolean(src_0){ - checkCriticalType(src_0 == null || instanceOfBoolean(src_0)); - return src_0; -} - -function castToDouble(src_0){ - checkCriticalType(src_0 == null || instanceOfDouble(src_0)); - return src_0; -} - -function castToJso(src_0){ - checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn)); - return src_0; -} - -function castToString(src_0){ - checkCriticalType(src_0 == null || instanceOfString(src_0)); - return src_0; -} - -function charToString(x_0){ - return String.fromCharCode(x_0); -} - -function hasJavaObjectVirtualDispatch(src_0){ - return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; -} - -function instanceOf(src_0, dstId){ - return src_0 != null && canCast(src_0, dstId); -} - -function instanceOfBoolean(src_0){ - return typeof src_0 === 'boolean'; -} - -function instanceOfDouble(src_0){ - return typeof src_0 === 'number'; -} - -function instanceOfJso(src_0){ - return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn); -} - -function instanceOfString(src_0){ - return typeof src_0 === 'string'; -} - -function isJsObjectOrFunction(src_0){ - return typeof src_0 === 'object' || typeof src_0 === 'function'; -} - -function maskUndefined(src_0){ - return src_0 == null?null:src_0; -} - -function round_int(x_0){ - return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; -} - -function throwClassCastExceptionUnlessNull(o){ - checkCriticalType(o == null); - return o; -} - -var booleanCastMap, doubleCastMap, stringCastMap; -function $ensureNamesAreInitialized(this$static){ - if (this$static.typeName != null) { - return; - } - initializeNames(this$static); -} - -function $getEnumConstants(this$static){ - return this$static.enumConstantsFunc && this$static.enumConstantsFunc(); -} - -function $getName(this$static){ - $ensureNamesAreInitialized(this$static); - return this$static.typeName; -} - -function $toString_5(this$static){ - return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName); -} - -function Class(){ - ++nextSequentialId; - this.typeName = null; - this.simpleName = null; - this.packageName = null; - this.compoundName = null; - this.canonicalName = null; - this.typeId = null; - this.arrayLiterals = null; -} - -function createClassObject(packageName, compoundClassName){ - var clazz; - clazz = new Class; - clazz.packageName = packageName; - clazz.compoundName = compoundClassName; - return clazz; -} - -function createForClass(packageName, compoundClassName, typeId){ - var clazz; - clazz = createClassObject(packageName, compoundClassName); - maybeSetClassLiteral(typeId, clazz); - return clazz; -} - -function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){ - var clazz; - clazz = createClassObject(packageName, compoundClassName); - maybeSetClassLiteral(typeId, clazz); - clazz.modifiers = enumConstantsFunc?8:0; - clazz.enumSuperclass = superclass; - clazz.enumConstantsFunc = enumConstantsFunc; - clazz.enumValueOfFunc = enumValueOfFunc; - return clazz; -} - -function createForInterface(packageName, compoundClassName){ - var clazz; - clazz = createClassObject(packageName, compoundClassName); - clazz.modifiers = 2; - return clazz; -} - -function createForPrimitive(className, primitiveTypeId){ - var clazz; - clazz = createClassObject('', className); - clazz.typeId = primitiveTypeId; - clazz.modifiers = 1; - return clazz; -} - -function getClassLiteralForArray_0(leafClass, dimensions){ - var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; - return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); -} - -function getPrototypeForClass(clazz){ - if (clazz.isPrimitive()) { - return null; - } - var typeId = clazz.typeId; - return prototypesByTypeId_0[typeId]; -} - -function initializeNames(clazz){ - if (clazz.isArray_1()) { - var componentType = clazz.componentType; - componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName()); - clazz.canonicalName = componentType.getCanonicalName() + '[]'; - clazz.simpleName = componentType.getSimpleName() + '[]'; - return; - } - var packageName = clazz.packageName; - var compoundName = clazz.compoundName; - compoundName = compoundName.split('/'); - clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); - clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); - clazz.simpleName = compoundName[compoundName.length - 1]; -} - -function join_0(separator, strings){ - var i = 0; - while (!strings[i] || strings[i] == '') { - i++; - } - var result = strings[i++]; - for (; i < strings.length; i++) { - if (!strings[i] || strings[i] == '') { - continue; - } - result += separator + strings[i]; - } - return result; -} - -function maybeSetClassLiteral(typeId, clazz){ - var proto; - if (!typeId) { - return; - } - clazz.typeId = typeId; - var prototype_0 = getPrototypeForClass(clazz); - if (!prototype_0) { - prototypesByTypeId_0[typeId] = [clazz]; - return; - } - prototype_0.___clazz = clazz; -} - -defineClass(290, 1, {290:1, 2026:1}, Class); -_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ - var clazz; - clazz = new Class; - clazz.modifiers = 4; - dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); - return clazz; -} -; -_.getCanonicalName = function getCanonicalName(){ - $ensureNamesAreInitialized(this); - return this.canonicalName; -} -; -_.getName = function getName(){ - return $getName(this); -} -; -_.getSimpleName = function getSimpleName(){ - return $ensureNamesAreInitialized(this) , this.simpleName; -} -; -_.isArray_1 = function isArray_1(){ - return (this.modifiers & 4) != 0; -} -; -_.isPrimitive = function isPrimitive(){ - return (this.modifiers & 1) != 0; -} -; -_.toString_0 = function toString_44(){ - return $toString_5(this); -} -; -_.modifiers = 0; -var nextSequentialId = 1; -var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); -var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 290); -defineClass(1998, 1, $intern_1); -var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 1998); -function $clinit_Absent(){ - $clinit_Absent = emptyMethod; - INSTANCE = new Absent; -} - -function Absent(){ -} - -defineClass(1170, 1998, $intern_1, Absent); -_.equals_0 = function equals_0(object){ - return object === this; -} -; -_.hashCode_1 = function hashCode_1(){ - return 2040732332; -} -; -_.toString_0 = function toString_2(){ - return 'Optional.absent()'; -} -; -_.transform = function transform(function_0){ - checkNotNull(function_0); - return $clinit_Absent() , INSTANCE; -} -; -var INSTANCE; -var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1170); -function $appendTo(this$static, appendable, parts){ - checkNotNull(appendable); - if (parts.hasNext_0()) { - $append_7(appendable, $toString(parts.next_1())); - while (parts.hasNext_0()) { - $append_7(appendable, this$static.separator); - $append_7(appendable, $toString(parts.next_1())); - } - } - return appendable; -} - -function $appendTo_0(this$static, builder, parts){ - var impossible; - try { - $appendTo(this$static, builder, parts); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 597)) { - impossible = $e0; - throw toJs(new AssertionError_0(impossible)); - } - else - throw toJs($e0); - } - return builder; -} - -function $join(this$static, parts){ - return $appendTo_0(this$static, new StringBuilder, parts).string; -} - -function $toString(part){ - checkNotNull(part); - return instanceOf(part, 475)?castTo(part, 475):toString_40(part); -} - -function Joiner(){ - this.separator = castToString(checkNotNull(', ')); -} - -defineClass(628, 1, {}, Joiner); -var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 628); -function equal(a, b){ - return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); -} - -function badElementIndex(index_0, size_0){ - if (index_0 < 0) { - return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0)])); - } - else if (size_0 < 0) { - throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); - } - else { - return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0), valueOf_4(size_0)])); - } -} - -function badPositionIndex(index_0, size_0, desc){ - if (index_0 < 0) { - return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0)])); - } - else if (size_0 < 0) { - throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); - } - else { - return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0), valueOf_4(size_0)])); - } -} - -function badPositionIndexes(start_0, end, size_0){ - if (start_0 < 0 || start_0 > size_0) { - return badPositionIndex(start_0, size_0, 'start index'); - } - if (end < 0 || end > size_0) { - return badPositionIndex(end, size_0, 'end index'); - } - return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(end), valueOf_4(start_0)])); -} - -function checkArgument(expression){ - if (!expression) { - throw toJs(new IllegalArgumentException); - } -} - -function checkArgument_0(expression, errorMessage){ - if (!expression) { - throw toJs(new IllegalArgumentException_0(errorMessage)); - } -} - -function checkArgument_1(b, p1){ - if (!b) { - throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1])))); - } -} - -function checkArgument_2(b, errorMessageTemplate, p1, p2){ - if (!b) { - throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2])))); - } -} - -function checkElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0))); - } - return index_0; -} - -function checkNotNull(reference){ - if (reference == null) { - throw toJs(new NullPointerException); - } - return reference; -} - -function checkNotNull_0(reference, errorMessage){ - if (reference == null) { - throw toJs(new NullPointerException_0(errorMessage)); - } - return reference; -} - -function checkPositionIndex(index_0, size_0){ - if (index_0 < 0 || index_0 > size_0) { - throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index'))); - } - return index_0; -} - -function checkPositionIndexes(start_0, end, size_0){ - if (start_0 < 0 || end < start_0 || end > size_0) { - throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0))); - } -} - -function checkState(expression){ - if (!expression) { - throw toJs(new IllegalStateException); - } -} - -function checkState_0(expression){ - if (!expression) { - throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); - } -} - -var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate'); -function toStringHelper(components){ - var builder, first, o, o$iterator; - builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40); - first = true; - for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) { - o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++)); - first || (builder.string += ',' , builder); - builder.string += '' + o; - first = false; - } - return (builder.string += ')' , builder).string; -} - -function $apply(this$static, t){ - var i; - for (i = 0; i < this$static.components.array.length; i++) { - if (!castTo($get_12(this$static.components, i), 169).apply_1(t)) { - return false; - } - } - return true; -} - -function Predicates$AndPredicate(components){ - this.components = components; -} - -defineClass(582, 1, {169:1, 582:1, 3:1, 45:1}, Predicates$AndPredicate); -_.test_0 = function test_0(input_0){ - return $apply(this, input_0); -} -; -_.apply_1 = function apply_1(t){ - return $apply(this, t); -} -; -_.equals_0 = function equals_1(obj){ - var that; - if (instanceOf(obj, 582)) { - that = castTo(obj, 582); - return $equals_2(this.components, that.components); - } - return false; -} -; -_.hashCode_1 = function hashCode_2(){ - return hashCode_48(this.components) + 306654252; -} -; -_.toString_0 = function toString_3(){ - return toStringHelper(this.components); -} -; -var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 582); -function Present(reference){ - this.reference = reference; -} - -defineClass(408, 1998, {408:1, 3:1}, Present); -_.equals_0 = function equals_2(object){ - var other; - if (instanceOf(object, 408)) { - other = castTo(object, 408); - return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference); - } - return false; -} -; -_.hashCode_1 = function hashCode_3(){ - return 1502476572 + hashCode__I__devirtual$(this.reference); -} -; -_.toString_0 = function toString_4(){ - return 'Optional.of(' + this.reference + ')'; -} -; -_.transform = function transform_0(function_0){ - return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.')); -} -; -var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 408); -function lenientFormat(template, args){ - var builder, i, i0, placeholderStart, templateStart; - template = template == null?'null':(checkCriticalNotNull(template) , template); - for (i0 = 0; i0 < args.length; i0++) { - args[i0] = lenientToString(args[i0]); - } - builder = new StringBuilder_0; - templateStart = 0; - i = 0; - while (i < args.length) { - placeholderStart = template.indexOf('%s', templateStart); - if (placeholderStart == -1) { - break; - } - builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart); - $append_10(builder, args[i++]); - templateStart = placeholderStart + 2; - } - $append_9(builder, template, templateStart, template.length); - if (i < args.length) { - builder.string += ' ['; - $append_10(builder, args[i++]); - while (i < args.length) { - builder.string += ', '; - $append_10(builder, args[i++]); - } - builder.string += ']'; - } - return builder.string; -} - -function lenientToString(o){ - var e, number, objectToString; - try { - return o == null?'null':toString_40(o); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - e = $e0; - objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16)); - $log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e); - return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>'; - } - else - throw toJs($e0); - } -} - -function $forEachRemaining(this$static, consumer){ - checkCriticalNotNull(consumer); - while (this$static.hasNext_0()) { - consumer.accept(this$static.next_1()); - } -} - -function $remove_21(){ - throw toJs(new UnsupportedOperationException); -} - -function $remove(){ - throw toJs(new UnsupportedOperationException); -} - -defineClass(198, 1, $intern_3); -_.forEachRemaining = function forEachRemaining(consumer){ - $forEachRemaining(this, consumer); -} -; -_.remove = function remove_0(){ - $remove(); -} -; -var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 198); -defineClass(1978, 198, $intern_4); -_.remove = function remove_1(){ - $remove(); -} -; -_.add_1 = function add_1(e){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_1 = function set_1(e){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 1978); -function AbstractIndexedListIterator(size_0){ - AbstractIndexedListIterator_0.call(this, size_0, 0); -} - -function AbstractIndexedListIterator_0(size_0, position){ - checkPositionIndex(position, size_0); - this.size_0 = size_0; - this.position = position; -} - -defineClass(386, 1978, $intern_4); -_.hasNext_0 = function hasNext(){ - return this.position < this.size_0; -} -; -_.hasPrevious = function hasPrevious(){ - return this.position > 0; -} -; -_.next_1 = function next_0(){ - if (this.position >= this.size_0) { - throw toJs(new NoSuchElementException); - } - return this.get_0(this.position++); -} -; -_.nextIndex_0 = function nextIndex_0(){ - return this.position; -} -; -_.previous_0 = function previous_0(){ - if (this.position <= 0) { - throw toJs(new NoSuchElementException); - } - return this.get_0(--this.position); -} -; -_.previousIndex = function previousIndex(){ - return this.position - 1; -} -; -_.position = 0; -_.size_0 = 0; -var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 386); -function $hasNext(this$static){ - checkState(this$static.state != 3); - switch (this$static.state) { - case 2: - return false; - case 0: - return true; - } - return $tryToComputeNext(this$static); -} - -function $next(this$static){ - var result; - if (!$hasNext(this$static)) { - throw toJs(new NoSuchElementException); - } - this$static.state = 1; - result = this$static.next_0; - this$static.next_0 = null; - return result; -} - -function $tryToComputeNext(this$static){ - this$static.state = 3; - this$static.next_0 = this$static.computeNext(); - if (this$static.state != 2) { - this$static.state = 0; - return true; - } - return false; -} - -defineClass(699, 198, $intern_3); -_.hasNext_0 = function hasNext_0(){ - return $hasNext(this); -} -; -_.next_1 = function next_1(){ - return $next(this); -} -; -_.state = 1; -var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 699); -function $containsEntry(this$static, key, value_0){ - var collection; - collection = castTo(this$static.asMap_0().get_3(key), 14); - return !!collection && collection.contains(value_0); -} - -function $containsValue(this$static, value_0){ - var collection, collection$iterator; - for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) { - collection = castTo(collection$iterator.next_1(), 14); - if (collection.contains(value_0)) { - return true; - } - } - return false; -} - -function $keySet(this$static){ - var result; - result = this$static.keySet; - return !result?(this$static.keySet = this$static.createKeySet()):result; -} - -function $keys(this$static){ - var result; - result = this$static.keys_0; - return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result; -} - -function $remove_0(this$static, key, value_0){ - var collection; - collection = castTo(this$static.asMap_0().get_3(key), 14); - return !!collection && collection.remove_1(value_0); -} - -defineClass(1986, 1, {224:1}); -_.asMap_0 = function asMap(){ - var result; - return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; -} -; -_.equals_0 = function equals_3(object){ - return equalsImpl_1(this, object); -} -; -_.hashCode_1 = function hashCode_4(){ - return hashCode__I__devirtual$(this.asMap_0()); -} -; -_.isEmpty = function isEmpty(){ - return this.size_1() == 0; -} -; -_.keySet_0 = function keySet(){ - return $keySet(this); -} -; -_.toString_0 = function toString_5(){ - return toString_40(this.asMap_0()); -} -; -var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 1986); -function $clear(this$static){ - var collection, collection$iterator; - for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) { - collection = castTo(collection$iterator.next_1(), 14); - collection.clear_0(); - } - this$static.map_0.clear_0(); - this$static.totalSize = 0; -} - -function $containsKey(this$static, key){ - return this$static.map_0.containsKey(key); -} - -function $entries(this$static){ - var result; - return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result; -} - -function $get(this$static, key){ - var collection; - collection = castTo(this$static.map_0.get_3(key), 14); - !collection && (collection = this$static.createCollection_0(key)); - return this$static.wrapCollection(key, collection); -} - -function $put(this$static, key, value_0){ - var collection; - collection = castTo(this$static.map_0.get_3(key), 14); - if (!collection) { - collection = this$static.createCollection_0(key); - if (collection.add_2(value_0)) { - ++this$static.totalSize; - this$static.map_0.put(key, collection); - return true; - } - else { - throw toJs(new AssertionError_0('New Collection violated the Collection spec')); - } - } - else if (collection.add_2(value_0)) { - ++this$static.totalSize; - return true; - } - else { - return false; - } -} - -function $removeAll(this$static, key){ - var collection, output; - collection = castTo(this$static.map_0.remove_0(key), 14); - if (!collection) { - return this$static.createUnmodifiableEmptyCollection(); - } - output = this$static.createCollection(); - output.addAll(collection); - this$static.totalSize -= collection.size_1(); - collection.clear_0(); - return this$static.unmodifiableCollectionSubclass(output); -} - -function $removeValuesForKey(this$static, key){ - var collection, count; - collection = castTo(safeRemove_0(this$static.map_0, key), 14); - if (collection) { - count = collection.size_1(); - collection.clear_0(); - this$static.totalSize -= count; - } -} - -function $values(this$static){ - var result; - return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; -} - -function $wrapList(this$static, key, list, ancestor){ - return instanceOf(list, 54)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor); -} - -function AbstractMapBasedMultimap(map_0){ - checkArgument(map_0.isEmpty()); - this.map_0 = map_0; -} - -function iteratorOrListIterator(collection){ - return instanceOf(collection, 15)?castTo(collection, 15).listIterator_0():collection.iterator_0(); -} - -function lambda$1(keyToValueCollectionEntry_0){ - var key, valueCollection; - key = keyToValueCollectionEntry_0.getKey(); - valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 14); - return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); -} - -defineClass(726, 1986, $intern_5); -_.clear_0 = function clear_0(){ - $clear(this); -} -; -_.containsKey = function containsKey(key){ - return $containsKey(this, key); -} -; -_.createAsMap = function createAsMap(){ - return new AbstractMapBasedMultimap$AsMap(this, this.map_0); -} -; -_.createCollection_0 = function createCollection(key){ - return this.createCollection(); -} -; -_.createKeySet = function createKeySet(){ - return new AbstractMapBasedMultimap$KeySet(this, this.map_0); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){ - return this.unmodifiableCollectionSubclass(this.createCollection()); -} -; -_.entryIterator = function entryIterator_0(){ - return new AbstractMapBasedMultimap$2(this); -} -; -_.entrySpliterator = function entrySpliterator_0(){ - return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize); -} -; -_.get_1 = function get_0(key){ - return $get(this, key); -} -; -_.removeAll = function removeAll(key){ - return $removeAll(this, key); -} -; -_.size_1 = function size_1(){ - return this.totalSize; -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){ - return $clinit_Collections() , new Collections$UnmodifiableCollection(collection); -} -; -_.valueIterator_0 = function valueIterator(){ - return new AbstractMapBasedMultimap$1(this); -} -; -_.valueSpliterator = function valueSpliterator(){ - return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize); -} -; -_.wrapCollection = function wrapCollection(key, collection){ - return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null); -} -; -_.totalSize = 0; -var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 726); -function $asMap(this$static){ - var result; - return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result; -} - -defineClass(1631, 726, $intern_5); -_.createCollection = function createCollection_0(){ - return new ArrayList_0(this.expectedValuesPerKey); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.get_1 = function get_1(key){ - return castTo($get(this, key), 15); -} -; -_.removeAll = function removeAll_0(key){ - return castTo($removeAll(this, key), 15); -} -; -_.asMap_0 = function asMap_0(){ - return $asMap(this); -} -; -_.equals_0 = function equals_4(object){ - return equalsImpl_1(this, object); -} -; -_.get_2 = function get_2(key){ - return castTo($get(this, key), 15); -} -; -_.removeAll_0 = function removeAll_1(key){ - return castTo($removeAll(this, key), 15); -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){ - return unmodifiableList(castTo(collection, 15)); -} -; -_.wrapCollection = function wrapCollection_0(key, collection){ - return $wrapList(this, key, castTo(collection, 15), null); -} -; -var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1631); -function AbstractMapBasedMultimap$Itr(this$0){ - this.this$01 = this$0; - this.keyIterator = this$0.map_0.entrySet_0().iterator_0(); - this.key = null; - this.collection = null; - this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2); -} - -defineClass(732, 1, $intern_6); -_.forEachRemaining = function forEachRemaining_0(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_1(){ - return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0(); -} -; -_.next_1 = function next_2(){ - var mapEntry; - if (!this.valueIterator.hasNext_0()) { - mapEntry = castTo(this.keyIterator.next_1(), 42); - this.key = mapEntry.getKey(); - this.collection = castTo(mapEntry.getValue(), 14); - this.valueIterator = this.collection.iterator_0(); - } - return this.output(this.key, this.valueIterator.next_1()); -} -; -_.remove = function remove_2(){ - this.valueIterator.remove(); - this.collection.isEmpty() && this.keyIterator.remove(); - --this.this$01.totalSize; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 732); -function AbstractMapBasedMultimap$1(this$0){ - AbstractMapBasedMultimap$Itr.call(this, this$0); -} - -defineClass(1099, 732, $intern_6, AbstractMapBasedMultimap$1); -_.output = function output_0(key, value_0){ - return value_0; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1099); -function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ -} - -defineClass(1100, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); -_.apply_0 = function apply_2(arg0){ - return castTo(arg0, 14).spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1100); -function AbstractMapBasedMultimap$2(this$0){ - AbstractMapBasedMultimap$Itr.call(this, this$0); -} - -defineClass(1101, 732, $intern_6, AbstractMapBasedMultimap$2); -_.output = function output_1(key, value_0){ - return new ImmutableEntry(key, value_0); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1101); -function $forEach_2(this$static, consumer){ - var entry, entry$iterator; - checkCriticalNotNull(consumer); - for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - consumer.accept_1(entry.getKey(), entry.getValue()); - } -} - -function $merge(this$static, key, value_0, remappingFunction){ - var currentValue, newValue; - checkCriticalNotNull(remappingFunction); - checkCriticalNotNull(value_0); - currentValue = this$static.get_3(key); - newValue = currentValue == null?value_0:addAll_21(castTo(currentValue, 15), castTo(value_0, 14)); - newValue == null?this$static.remove_0(key):this$static.put(key, newValue); - return newValue; -} - -var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map'); -function $containsEntry_0(this$static, entry){ - var key, ourValue, value_0; - key = entry.getKey(); - value_0 = entry.getValue(); - ourValue = this$static.get_3(key); - if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) { - return false; - } - if (ourValue == null && !this$static.containsKey(key)) { - return false; - } - return true; -} - -function $implFindEntry(this$static, key, remove){ - var entry, iter, k; - for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) { - entry = castTo(iter.next_1(), 42); - k = entry.getKey(); - if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) { - if (remove) { - entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue()); - iter.remove(); - } - return entry; - } - } - return null; -} - -function $putAll(this$static, map_0){ - var e, e$iterator; - checkCriticalNotNull(map_0); - for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 42); - this$static.put(e.getKey(), e.getValue()); - } -} - -function $toString_0(this$static){ - var entry, entry$iterator, joiner; - joiner = new StringJoiner(', ', '{', '}'); - for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - $add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue())); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function $toString_1(this$static, o){ - return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o); -} - -function getEntryKeyOrNull(entry){ - return !entry?null:entry.key; -} - -function getEntryValueOrNull(entry){ - return !entry?null:entry.getValue(); -} - -defineClass(1967, 1, $intern_7); -_.forEach = function forEach(consumer){ - $forEach_2(this, consumer); -} -; -_.merge = function merge(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.clear_0 = function clear_1(){ - this.entrySet_0().clear_0(); -} -; -_.containsEntry = function containsEntry(entry){ - return $containsEntry_0(this, entry); -} -; -_.containsKey = function containsKey_0(key){ - return !!$implFindEntry(this, key, false); -} -; -_.containsValue = function containsValue(value_0){ - var entry, entry$iterator, v; - for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - v = entry.getValue(); - if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) { - return true; - } - } - return false; -} -; -_.equals_0 = function equals_5(obj){ - var entry, entry$iterator, otherMap; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 83)) { - return false; - } - otherMap = castTo(obj, 83); - if (this.size_1() != otherMap.size_1()) { - return false; - } - for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if (!this.containsEntry(entry)) { - return false; - } - } - return true; -} -; -_.get_3 = function get_3(key){ - return getEntryValueOrNull($implFindEntry(this, key, false)); -} -; -_.hashCode_1 = function hashCode_5(){ - return hashCode_47(this.entrySet_0()); -} -; -_.isEmpty = function isEmpty_0(){ - return this.size_1() == 0; -} -; -_.keySet_0 = function keySet_0(){ - return new AbstractMap$1(this); -} -; -_.put = function put(key, value_0){ - throw toJs(new UnsupportedOperationException_0('Put not supported on this map')); -} -; -_.putAll = function putAll(map_0){ - $putAll(this, map_0); -} -; -_.remove_0 = function remove_3(key){ - return getEntryValueOrNull($implFindEntry(this, key, true)); -} -; -_.size_1 = function size_2(){ - return this.entrySet_0().size_1(); -} -; -_.toString_0 = function toString_6(){ - return $toString_0(this); -} -; -_.values_0 = function values_1(){ - return new AbstractMap$2(this); -} -; -var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 1967); -function $entrySet(this$static){ - var result; - result = this$static.entrySet; - return !result?(this$static.entrySet = this$static.createEntrySet()):result; -} - -defineClass(1987, 1967, $intern_7); -_.createKeySet = function createKeySet_0(){ - return new Maps$KeySet(this); -} -; -_.entrySet_0 = function entrySet(){ - return $entrySet(this); -} -; -_.keySet_0 = function keySet_1(){ - var result; - result = this.keySet; - return !result?(this.keySet = this.createKeySet()):result; -} -; -_.values_0 = function values_2(){ - var result; - result = this.values; - return !result?(this.values = new Maps$Values(this)):result; -} -; -var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 1987); -function $get_0(this$static, key){ - var collection, k; - collection = castTo(safeGet(this$static.submap, key), 14); - if (!collection) { - return null; - } - k = key; - return this$static.this$01_1.wrapCollection(k, collection); -} - -function $remove_1(this$static, key){ - var collection, output; - collection = castTo(this$static.submap.remove_0(key), 14); - if (!collection) { - return null; - } - output = this$static.this$01_1.createCollection(); - output.addAll(collection); - this$static.this$01_1.totalSize -= collection.size_1(); - collection.clear_0(); - return output; -} - -function $wrapEntry(this$static, entry){ - var key; - key = entry.getKey(); - return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 14))); -} - -function AbstractMapBasedMultimap$AsMap(this$0, submap){ - this.this$01_1 = this$0; - this.submap = submap; -} - -defineClass(389, 1987, $intern_7, AbstractMapBasedMultimap$AsMap); -_.get_3 = function get_4(key){ - return $get_0(this, key); -} -; -_.remove_0 = function remove_4(key){ - return $remove_1(this, key); -} -; -_.clear_0 = function clear_2(){ - this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this)); -} -; -_.containsKey = function containsKey_1(key){ - return safeContainsKey(this.submap, key); -} -; -_.createEntrySet_0 = function createEntrySet(){ - return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this); -} -; -_.createEntrySet = function(){ - return this.createEntrySet_0(); -} -; -_.equals_0 = function equals_6(object){ - return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object); -} -; -_.hashCode_1 = function hashCode_6(){ - return hashCode__I__devirtual$(this.submap); -} -; -_.keySet_0 = function keySet_2(){ - return this.this$01_1.keySet_0(); -} -; -_.size_1 = function size_3(){ - return this.submap.size_1(); -} -; -_.toString_0 = function toString_7(){ - return toString_40(this.submap); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 389); -function $forEach_0(this$static, action){ - var t, t$iterator; - checkCriticalNotNull(action); - for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) { - t = t$iterator.next_1(); - action.accept(t); - } -} - -var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable'); -function $addAll(this$static, c){ - var changed, e, e$iterator; - checkCriticalNotNull(c); - changed = false; - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - changed = changed | this$static.add_2(e); - } - return changed; -} - -function $advanceToFind(this$static, o, remove){ - var e, iter; - for (iter = this$static.iterator_0(); iter.hasNext_0();) { - e = iter.next_1(); - if (maskUndefined(o) === maskUndefined(e) || o != null && equals_Ljava_lang_Object__Z__devirtual$(o, e)) { - remove && iter.remove(); - return true; - } - } - return false; -} - -function $clear_0(this$static){ - var iter; - for (iter = this$static.iterator_0(); iter.hasNext_0();) { - iter.next_1(); - iter.remove(); - } -} - -function $containsAll(this$static, c){ - var e, e$iterator; - checkCriticalNotNull(c); - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - if (!this$static.contains(e)) { - return false; - } - } - return true; -} - -function $removeAll_0(this$static, c){ - var changed, iter, o; - checkCriticalNotNull(c); - changed = false; - for (iter = new ArrayList$1(this$static); iter.i < iter.this$01.array.length;) { - o = $next_7(iter); - if ($advanceToFind(c, o, false)) { - $remove_13(iter); - changed = true; - } - } - return changed; -} - -function $toArray(this$static){ - return this$static.toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.size_1(), 5, 1)); -} - -function $toArray_0(this$static, a){ - var i, it, result, size_0; - size_0 = this$static.size_1(); - a.length < size_0 && (a = stampJavaTypeInfo_1(new Array(size_0), a)); - result = a; - it = this$static.iterator_0(); - for (i = 0; i < size_0; ++i) { - setCheck(result, i, it.next_1()); - } - a.length > size_0 && setCheck(a, size_0, null); - return a; -} - -function $toString_2(this$static){ - var e, e$iterator, joiner; - joiner = new StringJoiner(', ', '[', ']'); - for (e$iterator = this$static.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - $add_9(joiner, maskUndefined(e) === maskUndefined(this$static)?'(this Collection)':e == null?'null':toString_40(e)); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -defineClass(28, 1, $intern_8); -_.forEach_0 = function forEach_0(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream(){ - return this.stream(); -} -; -_.spliterator_0 = function spliterator_0(){ - return new Spliterators$IteratorSpliterator(this, 0); -} -; -_.stream = function stream_0(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.add_2 = function add_2(o){ - throw toJs(new UnsupportedOperationException_0('Add not supported on this collection')); -} -; -_.addAll = function addAll(c){ - return $addAll(this, c); -} -; -_.clear_0 = function clear_3(){ - $clear_0(this); -} -; -_.contains = function contains(o){ - return $advanceToFind(this, o, false); -} -; -_.containsAll = function containsAll(c){ - return $containsAll(this, c); -} -; -_.isEmpty = function isEmpty_1(){ - return this.size_1() == 0; -} -; -_.remove_1 = function remove_5(o){ - return $advanceToFind(this, o, true); -} -; -_.toArray = function toArray(){ - return $toArray(this); -} -; -_.toArray_0 = function toArray_0(a){ - return $toArray_0(this, a); -} -; -_.toString_0 = function toString_8(){ - return $toString_2(this); -} -; -var Ljava_util_AbstractCollection_2_classLit = createForClass('java.util', 'AbstractCollection', 28); -var Ljava_util_Set_2_classLit = createForInterface('java.util', 'Set'); -function $equals_0(this$static, o){ - var other; - if (maskUndefined(o) === maskUndefined(this$static)) { - return true; - } - if (!instanceOf(o, 21)) { - return false; - } - other = castTo(o, 21); - if (other.size_1() != this$static.size_1()) { - return false; - } - return this$static.containsAll(other); -} - -function $removeAll_1(this$static, c){ - var iter, o, o$iterator, size_0; - checkCriticalNotNull(c); - size_0 = this$static.map_0.size_1(); - if (size_0 < c.size_1()) { - for (iter = this$static.map_0.keySet_0().iterator_0(); iter.hasNext_0();) { - o = iter.next_1(); - c.contains(o) && iter.remove(); - } - } - else { - for (o$iterator = c.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - this$static.map_0.remove_0(o) != null; - } - } - return size_0 != this$static.map_0.size_1(); -} - -defineClass($intern_9, 28, $intern_10); -_.spliterator_0 = function spliterator_1(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_7(o){ - return $equals_0(this, o); -} -; -_.hashCode_1 = function hashCode_7(){ - return hashCode_47(this); -} -; -var Ljava_util_AbstractSet_2_classLit = createForClass('java.util', 'AbstractSet', $intern_9); -defineClass(1970, $intern_9, $intern_10); -var Lcom_google_common_collect_Sets$ImprovedAbstractSet_2_classLit = createForClass('com.google.common.collect', 'Sets/ImprovedAbstractSet', 1970); -function $contains(this$static, o){ - var entry, key, value_0; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - key = entry.getKey(); - value_0 = safeGet(this$static.map_1(), key); - return equal(value_0, entry.getValue()) && (value_0 != null || this$static.map_1().containsKey(key)); - } - return false; -} - -defineClass(1971, 1970, $intern_10); -_.clear_0 = function clear_4(){ - this.map_1().clear_0(); -} -; -_.contains = function contains_0(o){ - return $contains(this, o); -} -; -_.isEmpty = function isEmpty_2(){ - return this.map_1().isEmpty(); -} -; -_.remove_1 = function remove_6(o){ - var entry; - if (this.contains(o)) { - entry = castTo(o, 42); - return this.map_1().keySet_0().remove_1(entry.getKey()); - } - return false; -} -; -_.size_1 = function size_4(){ - return this.map_1().size_1(); -} -; -var Lcom_google_common_collect_Maps$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Maps/EntrySet', 1971); -function AbstractMapBasedMultimap$AsMap$AsMapEntries(this$1){ - this.this$11 = this$1; -} - -defineClass(1097, 1971, $intern_10, AbstractMapBasedMultimap$AsMap$AsMapEntries); -_.contains = function contains_1(o){ - return safeContains(this.this$11.submap.entrySet_0(), o); -} -; -_.iterator_0 = function iterator_0(){ - return new AbstractMapBasedMultimap$AsMap$AsMapIterator(this.this$11); -} -; -_.map_1 = function map_1(){ - return this.this$11; -} -; -_.remove_1 = function remove_7(o){ - var entry; - if (!safeContains(this.this$11.submap.entrySet_0(), o)) { - return false; - } - entry = castTo(o, 42); - $removeValuesForKey(this.this$11.this$01_1, entry.getKey()); - return true; -} -; -_.spliterator_0 = function spliterator_2(){ - return map_2(this.this$11.submap.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type(this.this$11)); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries', 1097); -function AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1098, 1, {}, AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type); -_.apply_0 = function apply_3(arg0){ - return $wrapEntry(this.$$outer_0, castTo(arg0, 42)); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type', 1098); -function AbstractMapBasedMultimap$AsMap$AsMapIterator(this$1){ - this.this$11 = this$1; - this.delegateIterator = this.this$11.submap.entrySet_0().iterator_0(); -} - -defineClass(730, 1, $intern_6, AbstractMapBasedMultimap$AsMap$AsMapIterator); -_.forEachRemaining = function forEachRemaining_1(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_3(){ - var entry; - return entry = castTo(this.delegateIterator.next_1(), 42) , this.collection = castTo(entry.getValue(), 14) , $wrapEntry(this.this$11, entry); -} -; -_.hasNext_0 = function hasNext_2(){ - return this.delegateIterator.hasNext_0(); -} -; -_.remove = function remove_8(){ - checkState_0(!!this.collection); - this.delegateIterator.remove(); - this.this$11.this$01_1.totalSize -= this.collection.size_1(); - this.collection.clear_0(); - this.collection = null; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapIterator', 730); -function Maps$KeySet(map_0){ - this.map_0 = castTo(checkNotNull(map_0), 83); -} - -defineClass(532, 1970, $intern_10, Maps$KeySet); -_.clear_0 = function clear_5(){ - this.map_0.clear_0(); -} -; -_.contains = function contains_2(o){ - return this.map_0.containsKey(o); -} -; -_.forEach_0 = function forEach_1(action){ - checkNotNull(action); - this.map_0.forEach(new Maps$KeySet$lambda$0$Type(action)); -} -; -_.isEmpty = function isEmpty_3(){ - return this.map_0.isEmpty(); -} -; -_.iterator_0 = function iterator_1(){ - return new Maps$1(this.map_0.entrySet_0().iterator_0()); -} -; -_.remove_1 = function remove_9(o){ - if (this.map_0.containsKey(o)) { - this.map_0.remove_0(o); - return true; - } - return false; -} -; -_.size_1 = function size_5(){ - return this.map_0.size_1(); -} -; -var Lcom_google_common_collect_Maps$KeySet_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet', 532); -function AbstractMapBasedMultimap$KeySet(this$0, subMap){ - this.this$01 = this$0; - Maps$KeySet.call(this, subMap); -} - -defineClass(318, 532, $intern_10, AbstractMapBasedMultimap$KeySet); -_.clear_0 = function clear_6(){ - var entryIterator; - clear_20((entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator))); -} -; -_.containsAll = function containsAll_0(c){ - return this.map_0.keySet_0().containsAll(c); -} -; -_.equals_0 = function equals_8(object){ - return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.map_0.keySet_0(), object); -} -; -_.hashCode_1 = function hashCode_8(){ - return hashCode__I__devirtual$(this.map_0.keySet_0()); -} -; -_.iterator_0 = function iterator_2(){ - var entryIterator; - return entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator); -} -; -_.remove_1 = function remove_10(key){ - var collection, count; - count = 0; - collection = castTo(this.map_0.remove_0(key), 14); - if (collection) { - count = collection.size_1(); - collection.clear_0(); - this.this$01.totalSize -= count; - } - return count > 0; -} -; -_.spliterator_0 = function spliterator_3(){ - return this.map_0.keySet_0().spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet', 318); -function AbstractMapBasedMultimap$KeySet$1(this$1, val$entryIterator){ - this.this$11 = this$1; - this.val$entryIterator2 = val$entryIterator; -} - -defineClass(731, 1, $intern_6, AbstractMapBasedMultimap$KeySet$1); -_.forEachRemaining = function forEachRemaining_2(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_3(){ - return this.val$entryIterator2.hasNext_0(); -} -; -_.next_1 = function next_4(){ - this.entry = castTo(this.val$entryIterator2.next_1(), 42); - return this.entry.getKey(); -} -; -_.remove = function remove_11(){ - var collection; - checkState_0(!!this.entry); - collection = castTo(this.entry.getValue(), 14); - this.val$entryIterator2.remove(); - this.this$11.this$01.totalSize -= collection.size_1(); - collection.clear_0(); - this.entry = null; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet/1', 731); -function AbstractMapBasedMultimap$SortedAsMap(this$0, submap){ - this.this$01_0 = this$0; - AbstractMapBasedMultimap$AsMap.call(this, this$0, submap); -} - -defineClass(491, 389, {83:1, 161:1}, AbstractMapBasedMultimap$SortedAsMap); -_.createKeySet = function createKeySet_1(){ - return this.createKeySet_0(); -} -; -_.keySet_0 = function keySet_3(){ - return this.keySet_1(); -} -; -_.createKeySet_0 = function createKeySet_2(){ - return new AbstractMapBasedMultimap$SortedKeySet(this.this$01_0, this.sortedMap()); -} -; -_.keySet_1 = function keySet_4(){ - var result; - return result = this.sortedKeySet , !result?(this.sortedKeySet = this.createKeySet_0()):result; -} -; -_.sortedMap = function sortedMap(){ - return castTo(this.submap, 161); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedAsMap', 491); -function AbstractMapBasedMultimap$NavigableAsMap(this$0, submap){ - this.this$01 = this$0; - AbstractMapBasedMultimap$SortedAsMap.call(this, this$0, submap); -} - -defineClass(542, 491, $intern_11, AbstractMapBasedMultimap$NavigableAsMap); -_.createKeySet = function createKeySet_3(){ - return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); -} -; -_.createKeySet_0 = function createKeySet_4(){ - return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); -} -; -_.keySet_0 = function keySet_5(){ - var result; - return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); -} -; -_.keySet_1 = function keySet_6(){ - var result; - return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); -} -; -_.sortedMap = function sortedMap_0(){ - return castTo(castTo(this.submap, 161), 171); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableAsMap', 542); -function AbstractMapBasedMultimap$SortedKeySet(this$0, subMap){ - AbstractMapBasedMultimap$KeySet.call(this, this$0, subMap); -} - -defineClass(490, 318, $intern_12, AbstractMapBasedMultimap$SortedKeySet); -_.spliterator_0 = function spliterator_4(){ - return this.map_0.keySet_0().spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedKeySet', 490); -function AbstractMapBasedMultimap$NavigableKeySet(this$0, subMap){ - AbstractMapBasedMultimap$SortedKeySet.call(this, this$0, subMap); -} - -defineClass(388, 490, $intern_13, AbstractMapBasedMultimap$NavigableKeySet); -var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableKeySet', 388); -function $addToMap(this$static){ - this$static.ancestor?$addToMap(this$static.ancestor):this$static.this$01_0.map_0.put(this$static.key, this$static.delegate); -} - -function $refreshIfEmpty(this$static){ - var newDelegate; - if (this$static.ancestor) { - $refreshIfEmpty(this$static.ancestor); - if (this$static.ancestor.delegate != this$static.ancestorDelegate) { - throw toJs(new ConcurrentModificationException); - } - } - else if (this$static.delegate.isEmpty()) { - newDelegate = castTo(this$static.this$01_0.map_0.get_3(this$static.key), 14); - !!newDelegate && (this$static.delegate = newDelegate); - } -} - -function $removeIfEmpty(this$static){ - this$static.ancestor?$removeIfEmpty(this$static.ancestor):this$static.delegate.isEmpty() && this$static.this$01_0.map_0.remove_0(this$static.key); -} - -function $size(this$static){ - $refreshIfEmpty(this$static); - return this$static.delegate.size_1(); -} - -function AbstractMapBasedMultimap$WrappedCollection(this$0, key, delegate, ancestor){ - this.this$01_0 = this$0; - this.key = key; - this.delegate = delegate; - this.ancestor = ancestor; - this.ancestorDelegate = !ancestor?null:ancestor.delegate; -} - -defineClass(541, 28, $intern_8, AbstractMapBasedMultimap$WrappedCollection); -_.add_2 = function add_3(value_0){ - var changed, wasEmpty; - $refreshIfEmpty(this); - wasEmpty = this.delegate.isEmpty(); - changed = this.delegate.add_2(value_0); - if (changed) { - ++this.this$01_0.totalSize; - wasEmpty && $addToMap(this); - } - return changed; -} -; -_.addAll = function addAll_0(collection){ - var changed, newSize, oldSize; - if (collection.isEmpty()) { - return false; - } - oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); - changed = this.delegate.addAll(collection); - if (changed) { - newSize = this.delegate.size_1(); - this.this$01_0.totalSize += newSize - oldSize; - oldSize == 0 && $addToMap(this); - } - return changed; -} -; -_.clear_0 = function clear_7(){ - var oldSize; - oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); - if (oldSize == 0) { - return; - } - this.delegate.clear_0(); - this.this$01_0.totalSize -= oldSize; - $removeIfEmpty(this); -} -; -_.contains = function contains_3(o){ - $refreshIfEmpty(this); - return this.delegate.contains(o); -} -; -_.containsAll = function containsAll_1(c){ - $refreshIfEmpty(this); - return this.delegate.containsAll(c); -} -; -_.equals_0 = function equals_9(object){ - if (object === this) { - return true; - } - $refreshIfEmpty(this); - return equals_Ljava_lang_Object__Z__devirtual$(this.delegate, object); -} -; -_.hashCode_1 = function hashCode_9(){ - $refreshIfEmpty(this); - return hashCode__I__devirtual$(this.delegate); -} -; -_.iterator_0 = function iterator_3(){ - $refreshIfEmpty(this); - return new AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this); -} -; -_.remove_1 = function remove_12(o){ - var changed; - $refreshIfEmpty(this); - changed = this.delegate.remove_1(o); - if (changed) { - --this.this$01_0.totalSize; - $removeIfEmpty(this); - } - return changed; -} -; -_.size_1 = function size_6(){ - return $size(this); -} -; -_.spliterator_0 = function spliterator_5(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -_.toString_0 = function toString_9(){ - $refreshIfEmpty(this); - return toString_40(this.delegate); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection', 541); -function $sort_0(this$static, c){ - var a, i; - a = this$static.toArray(); - mergeSort(a, 0, a.length, c); - for (i = 0; i < a.length; i++) { - this$static.set_2(i, a[i]); - } -} - -var Ljava_util_List_2_classLit = createForInterface('java.util', 'List'); -function AbstractMapBasedMultimap$WrappedList(this$0, key, delegate, ancestor){ - this.this$01 = this$0; - AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, ancestor); -} - -defineClass(728, 541, {20:1, 28:1, 14:1, 15:1}, AbstractMapBasedMultimap$WrappedList); -_.sort_0 = function sort_0(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_6(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -_.add_3 = function add_4(index_0, element){ - var wasEmpty; - $refreshIfEmpty(this); - wasEmpty = this.delegate.isEmpty(); - castTo(this.delegate, 15).add_3(index_0, element); - ++this.this$01.totalSize; - wasEmpty && $addToMap(this); -} -; -_.addAll_0 = function addAll_1(index_0, c){ - var changed, newSize, oldSize; - if (c.isEmpty()) { - return false; - } - oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); - changed = castTo(this.delegate, 15).addAll_0(index_0, c); - if (changed) { - newSize = this.delegate.size_1(); - this.this$01.totalSize += newSize - oldSize; - oldSize == 0 && $addToMap(this); - } - return changed; -} -; -_.get_0 = function get_5(index_0){ - $refreshIfEmpty(this); - return castTo(this.delegate, 15).get_0(index_0); -} -; -_.indexOf_0 = function indexOf(o){ - $refreshIfEmpty(this); - return castTo(this.delegate, 15).indexOf_0(o); -} -; -_.listIterator_0 = function listIterator(){ - $refreshIfEmpty(this); - return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this); -} -; -_.listIterator_1 = function listIterator_0(index_0){ - $refreshIfEmpty(this); - return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this, index_0); -} -; -_.remove_2 = function remove_13(index_0){ - var value_0; - $refreshIfEmpty(this); - value_0 = castTo(this.delegate, 15).remove_2(index_0); - --this.this$01.totalSize; - $removeIfEmpty(this); - return value_0; -} -; -_.set_2 = function set_2(index_0, element){ - $refreshIfEmpty(this); - return castTo(this.delegate, 15).set_2(index_0, element); -} -; -_.subList = function subList_0(fromIndex, toIndex){ - $refreshIfEmpty(this); - return $wrapList(this.this$01, this.key, castTo(this.delegate, 15).subList(fromIndex, toIndex), !this.ancestor?this:this.ancestor); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList', 728); -function AbstractMapBasedMultimap$RandomAccessWrappedList(this$0, key, delegate, ancestor){ - AbstractMapBasedMultimap$WrappedList.call(this, this$0, key, delegate, ancestor); -} - -defineClass(1096, 728, {20:1, 28:1, 14:1, 15:1, 54:1}, AbstractMapBasedMultimap$RandomAccessWrappedList); -var Lcom_google_common_collect_AbstractMapBasedMultimap$RandomAccessWrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/RandomAccessWrappedList', 1096); -function $$init(this$static){ - this$static.originalDelegate = this$static.this$11_0.delegate; -} - -function $remove_2(this$static){ - this$static.delegateIterator.remove(); - --this$static.this$11_0.this$01_0.totalSize; - $removeIfEmpty(this$static.this$11_0); -} - -function $validateIterator(this$static){ - $refreshIfEmpty(this$static.this$11_0); - if (this$static.this$11_0.delegate != this$static.originalDelegate) { - throw toJs(new ConcurrentModificationException); - } -} - -function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this$1){ - this.this$11_0 = this$1; - $$init(this); - this.delegateIterator = iteratorOrListIterator(this$1.delegate); -} - -function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0(this$1, delegateIterator){ - this.this$11_0 = this$1; - $$init(this); - this.delegateIterator = delegateIterator; -} - -defineClass(620, 1, $intern_6, AbstractMapBasedMultimap$WrappedCollection$WrappedIterator); -_.forEachRemaining = function forEachRemaining_3(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_4(){ - $validateIterator(this); - return this.delegateIterator.hasNext_0(); -} -; -_.next_1 = function next_5(){ - $validateIterator(this); - return this.delegateIterator.next_1(); -} -; -_.remove = function remove_14(){ - $remove_2(this); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator', 620); -function AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this$1){ - this.this$11 = this$1; - AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.call(this, this$1); -} - -function AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this$1, index_0){ - this.this$11 = this$1; - AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0.call(this, this$1, castTo(this$1.delegate, 15).listIterator_1(index_0)); -} - -defineClass(729, 620, $intern_14, AbstractMapBasedMultimap$WrappedList$WrappedListIterator, AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0); -_.remove = function remove_15(){ - $remove_2(this); -} -; -_.add_1 = function add_5(value_0){ - var wasEmpty; - wasEmpty = $size(this.this$11) == 0; - ($validateIterator(this) , castTo(this.delegateIterator, 125)).add_1(value_0); - ++this.this$11.this$01.totalSize; - wasEmpty && $addToMap(this.this$11); -} -; -_.hasPrevious = function hasPrevious_0(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).hasPrevious(); -} -; -_.nextIndex_0 = function nextIndex_1(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).nextIndex_0(); -} -; -_.previous_0 = function previous_1(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previous_0(); -} -; -_.previousIndex = function previousIndex_0(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previousIndex(); -} -; -_.set_1 = function set_3(value_0){ - ($validateIterator(this) , castTo(this.delegateIterator, 125)).set_1(value_0); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList$WrappedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList/WrappedListIterator', 729); -function AbstractMapBasedMultimap$WrappedSortedSet(this$0, key, delegate){ - AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); -} - -defineClass(727, 541, $intern_12, AbstractMapBasedMultimap$WrappedSortedSet); -_.spliterator_0 = function spliterator_7(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSortedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSortedSet', 727); -function AbstractMapBasedMultimap$WrappedNavigableSet(this$0, key, delegate){ - AbstractMapBasedMultimap$WrappedSortedSet.call(this, this$0, key, delegate); -} - -defineClass(1095, 727, $intern_13, AbstractMapBasedMultimap$WrappedNavigableSet); -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedNavigableSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedNavigableSet', 1095); -function AbstractMapBasedMultimap$WrappedSet(this$0, key, delegate){ - AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); -} - -defineClass(1094, 541, $intern_10, AbstractMapBasedMultimap$WrappedSet); -_.spliterator_0 = function spliterator_8(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSet', 1094); -function AbstractMapBasedMultimap$lambda$1$Type(){ -} - -defineClass(1103, 1, {}, AbstractMapBasedMultimap$lambda$1$Type); -_.apply_0 = function apply_4(arg0){ - return lambda$1(castTo(arg0, 42)); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$1$Type', 1103); -function AbstractMapBasedMultimap$lambda$2$Type(key_0){ - this.key_0 = key_0; -} - -defineClass(1102, 1, {}, AbstractMapBasedMultimap$lambda$2$Type); -_.apply_0 = function apply_5(arg0){ - return new ImmutableEntry(this.key_0, arg0); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$2$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$2$Type', 1102); -var Ljava_util_Map$Entry_2_classLit = createForInterface('java.util', 'Map/Entry'); -defineClass(345, 1, $intern_15); -_.equals_0 = function equals_10(object){ - var that; - if (instanceOf(object, 42)) { - that = castTo(object, 42); - return equal(this.getKey(), that.getKey()) && equal(this.getValue(), that.getValue()); - } - return false; -} -; -_.hashCode_1 = function hashCode_10(){ - var k, v; - k = this.getKey(); - v = this.getValue(); - return (k == null?0:hashCode__I__devirtual$(k)) ^ (v == null?0:hashCode__I__devirtual$(v)); -} -; -_.setValue = function setValue(value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.toString_0 = function toString_10(){ - return this.getKey() + '=' + this.getValue(); -} -; -var Lcom_google_common_collect_AbstractMapEntry_2_classLit = createForClass('com.google.common.collect', 'AbstractMapEntry', 345); -defineClass(1988, 28, $intern_8); -_.clear_0 = function clear_8(){ - this.multimap_0().clear_0(); -} -; -_.contains = function contains_4(o){ - var entry; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - return $containsEntry(this.multimap_0(), entry.getKey(), entry.getValue()); - } - return false; -} -; -_.remove_1 = function remove_16(o){ - var entry; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - return $remove_0(this.multimap_0(), entry.getKey(), entry.getValue()); - } - return false; -} -; -_.size_1 = function size_7(){ - return this.multimap_0().totalSize; -} -; -var Lcom_google_common_collect_Multimaps$Entries_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Entries', 1988); -function AbstractMultimap$Entries(this$0){ - this.this$01 = this$0; -} - -defineClass(733, 1988, $intern_8, AbstractMultimap$Entries); -_.iterator_0 = function iterator_4(){ - return this.this$01.entryIterator(); -} -; -_.multimap_0 = function multimap_0(){ - return this.this$01; -} -; -_.spliterator_0 = function spliterator_9(){ - return this.this$01.entrySpliterator(); -} -; -var Lcom_google_common_collect_AbstractMultimap$Entries_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Entries', 733); -function AbstractMultimap$EntrySet(this$0){ - AbstractMultimap$Entries.call(this, this$0); -} - -defineClass(734, 733, $intern_10, AbstractMultimap$EntrySet); -_.spliterator_0 = function spliterator_10(){ - return this.this$01.entrySpliterator(); -} -; -_.equals_0 = function equals_11(obj){ - return equalsImpl_3(this, obj); -} -; -_.hashCode_1 = function hashCode_11(){ - return hashCodeImpl_0(this); -} -; -var Lcom_google_common_collect_AbstractMultimap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/EntrySet', 734); -function AbstractMultimap$Values(this$0){ - this.this$01 = this$0; -} - -defineClass(735, 28, $intern_8, AbstractMultimap$Values); -_.clear_0 = function clear_9(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_5(o){ - return $containsValue(this.this$01, o); -} -; -_.iterator_0 = function iterator_5(){ - return this.this$01.valueIterator_0(); -} -; -_.size_1 = function size_8(){ - return this.this$01.totalSize; -} -; -_.spliterator_0 = function spliterator_11(){ - return this.this$01.valueSpliterator(); -} -; -var Lcom_google_common_collect_AbstractMultimap$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Values', 735); -function lambda$0_1(entry_1){ - entry_1.val$backingEntry2.getKey(); - castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); - $add(); -} - -function lambda$1_1(action_0, entry_1){ - var count, elem, i; - elem = entry_1.val$backingEntry2.getKey(); - count = castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); - for (i = 0; i < count; i++) { - action_0.accept(elem); - } -} - -function $add(){ - throw toJs(new UnsupportedOperationException); -} - -function $entrySet_0(this$static){ - var result; - result = this$static.entrySet; - !result && (this$static.entrySet = result = new AbstractMultiset$EntrySet(this$static)); - return result; -} - -function $forEachEntry(this$static, action){ - checkNotNull(action); - $entrySet_0(this$static).forEach_0(new Multiset$lambda$0$Type); -} - -defineClass(1989, 28, {835:1, 20:1, 28:1, 14:1}); -_.forEach_0 = function forEach_2(action){ - checkNotNull(action); - $entrySet_0(this).forEach_0(new Multiset$lambda$1$Type(action)); -} -; -_.spliterator_0 = function spliterator_12(){ - var entrySpliterator; - return entrySpliterator = $entrySet_0(this).spliterator_0() , flatMap(entrySpliterator, new Multisets$lambda$3$Type, 64 | entrySpliterator.characteristics_0() & 1296, this.multimap.totalSize); -} -; -_.add_2 = function add_6(element){ - $add(); - return true; -} -; -_.addAll = function addAll_2(elementsToAdd){ - return checkNotNull(this) , checkNotNull(elementsToAdd) , instanceOf(elementsToAdd, 543)?addAllImpl(castTo(elementsToAdd, 835)):!elementsToAdd.isEmpty() && addAll_7(this, elementsToAdd.iterator_0()); -} -; -_.contains = function contains_6(element){ - var values; - return values = castTo(safeGet($asMap(this.multimap), element), 14) , (!values?0:values.size_1()) > 0; -} -; -_.equals_0 = function equals_12(object){ - return equalsImpl_2(this, object); -} -; -_.hashCode_1 = function hashCode_12(){ - return hashCode__I__devirtual$($entrySet_0(this)); -} -; -_.isEmpty = function isEmpty_4(){ - return $entrySet_0(this).isEmpty(); -} -; -_.remove_1 = function remove_17(element){ - return $remove_5(this, element, 1) > 0; -} -; -_.toString_0 = function toString_11(){ - return toString_40($entrySet_0(this)); -} -; -var Lcom_google_common_collect_AbstractMultiset_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset', 1989); -defineClass(1991, 1970, $intern_10); -_.clear_0 = function clear_10(){ - $clear(this.this$01.multimap); -} -; -_.contains = function contains_7(o){ - var count, entry; - if (instanceOf(o, 492)) { - entry = castTo(o, 416); - if (castTo(entry.val$backingEntry2.getValue(), 14).size_1() <= 0) { - return false; - } - count = $count(this.this$01, entry.val$backingEntry2.getKey()); - return count == castTo(entry.val$backingEntry2.getValue(), 14).size_1(); - } - return false; -} -; -_.remove_1 = function remove_18(object){ - var element, entry, entryCount, multiset; - if (instanceOf(object, 492)) { - entry = castTo(object, 416); - element = entry.val$backingEntry2.getKey(); - entryCount = castTo(entry.val$backingEntry2.getValue(), 14).size_1(); - if (entryCount != 0) { - multiset = this.this$01; - return setCountImpl(multiset, element, entryCount); - } - } - return false; -} -; -var Lcom_google_common_collect_Multisets$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multisets/EntrySet', 1991); -function AbstractMultiset$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(1109, 1991, $intern_10, AbstractMultiset$EntrySet); -_.iterator_0 = function iterator_6(){ - return new Multimaps$Keys$1($entrySet($asMap(this.this$01.multimap)).iterator_0()); -} -; -_.size_1 = function size_9(){ - return $asMap(this.this$01.multimap).size_1(); -} -; -var Lcom_google_common_collect_AbstractMultiset$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset/EntrySet', 1109); -function AbstractSetMultimap(map_0){ - AbstractMapBasedMultimap.call(this, map_0); -} - -defineClass(619, 726, $intern_5); -_.createCollection = function createCollection_1(){ - return this.createCollection_1(); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_1(){ - return this.createUnmodifiableEmptyCollection_0(); -} -; -_.get_1 = function get_6(key){ - return this.get_4(key); -} -; -_.removeAll = function removeAll_2(key){ - return this.removeAll_1(key); -} -; -_.asMap_0 = function asMap_1(){ - var result; - return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; -} -; -_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_2(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_SET; -} -; -_.equals_0 = function equals_13(object){ - return equalsImpl_1(this, object); -} -; -_.get_4 = function get_7(key){ - return castTo($get(this, key), 21); -} -; -_.removeAll_1 = function removeAll_3(key){ - return castTo($removeAll(this, key), 21); -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_1(collection){ - return $clinit_Collections() , new Collections$UnmodifiableSet(castTo(collection, 21)); -} -; -_.wrapCollection = function wrapCollection_1(key, collection){ - return new AbstractMapBasedMultimap$WrappedSet(this, key, castTo(collection, 21)); -} -; -var Lcom_google_common_collect_AbstractSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSetMultimap', 619); -function $values_0(this$static){ - var result; - return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; -} - -defineClass(1657, 619, $intern_5); -_.createCollection = function createCollection_2(){ - return new TreeSet_0(this.valueComparator); -} -; -_.createCollection_1 = function createCollection_3(){ - return new TreeSet_0(this.valueComparator); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_3(){ - return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); -} -; -_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_4(){ - return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); -} -; -_.get_1 = function get_8(key){ - return castTo(castTo($get(this, key), 21), 84); -} -; -_.get_4 = function get_9(key){ - return castTo(castTo($get(this, key), 21), 84); -} -; -_.removeAll = function removeAll_4(key){ - return castTo(castTo($removeAll(this, key), 21), 84); -} -; -_.removeAll_1 = function removeAll_5(key){ - return castTo(castTo($removeAll(this, key), 21), 84); -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_2(collection){ - return instanceOf(collection, 271)?unmodifiableNavigableSet(castTo(collection, 271)):($clinit_Collections() , new Collections$UnmodifiableSortedSet(castTo(collection, 84))); -} -; -_.asMap_0 = function asMap_2(){ - var result; - return result = this.asMap , !result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result; -} -; -_.wrapCollection = function wrapCollection_2(key, collection){ - return instanceOf(collection, 271)?new AbstractMapBasedMultimap$WrappedNavigableSet(this, key, castTo(collection, 271)):new AbstractMapBasedMultimap$WrappedSortedSet(this, key, castTo(collection, 84)); -} -; -var Lcom_google_common_collect_AbstractSortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedSetMultimap', 1657); -function AbstractSortedKeySortedSetMultimap(map_0){ - AbstractSetMultimap.call(this, map_0); -} - -defineClass(1658, 1657, $intern_5); -_.asMap_0 = function asMap_3(){ - var result; - return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); -} -; -_.keySet_0 = function keySet_7(){ - var result; - return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); -} -; -_.createKeySet = function createKeySet_5(){ - return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0); -} -; -var Lcom_google_common_collect_AbstractSortedKeySortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedKeySortedSetMultimap', 1658); -defineClass(2010, 1, {1947:1}); -_.equals_0 = function equals_14(obj){ - return equalsImpl_4(this, obj); -} -; -_.hashCode_1 = function hashCode_13(){ - var result; - return hashCode_47((result = this.cellSet , !result?(this.cellSet = new AbstractTable$CellSet(this)):result)); -} -; -_.toString_0 = function toString_12(){ - var map_0; - return $toString_0((map_0 = this.rowMap , !map_0?(this.rowMap = new ArrayTable$RowMap(this)):map_0)); -} -; -var Lcom_google_common_collect_AbstractTable_2_classLit = createForClass('com.google.common.collect', 'AbstractTable', 2010); -function AbstractTable$CellSet(this$0){ - this.this$01 = this$0; -} - -defineClass(665, $intern_9, $intern_10, AbstractTable$CellSet); -_.clear_0 = function clear_11(){ - $clear_1(); -} -; -_.contains = function contains_8(o){ - var cell, row; - if (instanceOf(o, 468)) { - cell = castTo(o, 682); - row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); - return !!row && safeContains(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); - } - return false; -} -; -_.iterator_0 = function iterator_7(){ - return $cellIterator(this.this$01); -} -; -_.remove_1 = function remove_19(o){ - var cell, row; - if (instanceOf(o, 468)) { - cell = castTo(o, 682); - row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); - return !!row && safeRemove(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); - } - return false; -} -; -_.size_1 = function size_10(){ - return $size_0(this.this$01); -} -; -_.spliterator_0 = function spliterator_13(){ - return $cellSpliterator(this.this$01); -} -; -var Lcom_google_common_collect_AbstractTable$CellSet_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/CellSet', 665); -function AbstractTable$Values(this$0){ - this.this$01 = this$0; -} - -defineClass(1928, 28, $intern_8, AbstractTable$Values); -_.clear_0 = function clear_12(){ - $clear_1(); -} -; -_.contains = function contains_9(o){ - return $containsValue_0(this.this$01, o); -} -; -_.iterator_0 = function iterator_8(){ - return $valuesIterator(this.this$01); -} -; -_.size_1 = function size_11(){ - return $size_0(this.this$01); -} -; -_.spliterator_0 = function spliterator_14(){ - return $valuesSpliterator(this.this$01); -} -; -var Lcom_google_common_collect_AbstractTable$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/Values', 1928); -function ArrayListMultimapGwtSerializationDependencies(map_0){ - AbstractMapBasedMultimap.call(this, map_0); -} - -defineClass(1632, 1631, $intern_5); -var Lcom_google_common_collect_ArrayListMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimapGwtSerializationDependencies', 1632); -function ArrayListMultimap(){ - ArrayListMultimap_0.call(this, 12, 3); -} - -function ArrayListMultimap_0(expectedKeys, expectedValuesPerKey){ - ArrayListMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(expectedKeys))); - checkNonnegative(expectedValuesPerKey, 'expectedValuesPerKey'); - this.expectedValuesPerKey = expectedValuesPerKey; -} - -defineClass(513, 1632, $intern_5, ArrayListMultimap, ArrayListMultimap_0); -_.createCollection = function createCollection_4(){ - return new ArrayList_0(this.expectedValuesPerKey); -} -; -_.expectedValuesPerKey = 0; -var Lcom_google_common_collect_ArrayListMultimap_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimap', 513); -function $at(this$static, rowIndex, columnIndex){ - checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); - checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); - return this$static.array[rowIndex][columnIndex]; -} - -function $cellIterator(this$static){ - return new ArrayTable$1(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); -} - -function $cellSpliterator(this$static){ - return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 273, new ArrayTable$1methodref$getCell$Type(this$static)); -} - -function $clear_1(){ - throw toJs(new UnsupportedOperationException); -} - -function $containsValue_0(this$static, value_0){ - var element, element$array, element$index, element$max, row, row$array, row$index, row$max; - for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - for (element$array = row , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - if (maskUndefined(value_0) === maskUndefined(element) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, element)) { - return true; - } - } - } - return false; -} - -function $eraseAll(this$static){ - var row, row$array, row$index, row$max; - for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - fill0_2(row, row.length, null); - } -} - -function $get_1(this$static, rowKey, columnKey){ - var columnIndex, rowIndex; - rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); - columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); - return !rowIndex || !columnIndex?null:$at(this$static, rowIndex.value_0, columnIndex.value_0); -} - -function $getValue(this$static, index_0){ - var columnIndex, rowIndex; - rowIndex = index_0 / this$static.columnList.delegateList_0().size_1() | 0; - columnIndex = index_0 % this$static.columnList.delegateList_0().size_1(); - return $at(this$static, rowIndex, columnIndex); -} - -function $put_0(this$static, rowKey, columnKey, value_0){ - var columnIndex, rowIndex; - checkNotNull(rowKey); - checkNotNull(columnKey); - rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); - checkArgument_2(!!rowIndex, 'Row %s not in %s', rowKey, this$static.rowList); - columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); - checkArgument_2(!!columnIndex, 'Column %s not in %s', columnKey, this$static.columnList); - return $set(this$static, rowIndex.value_0, columnIndex.value_0, value_0); -} - -function $rowMap(this$static){ - var map_0; - map_0 = this$static.rowMap; - return !map_0?(this$static.rowMap = new ArrayTable$RowMap(this$static)):map_0; -} - -function $set(this$static, rowIndex, columnIndex, value_0){ - var oldValue; - checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); - checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); - oldValue = this$static.array[rowIndex][columnIndex]; - setCheck(this$static.array[rowIndex], columnIndex, value_0); - return oldValue; -} - -function $size_0(this$static){ - return this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(); -} - -function $values_1(this$static){ - var result; - return result = this$static.values , !result?(this$static.values = new AbstractTable$Values(this$static)):result; -} - -function $valuesIterator(this$static){ - return new ArrayTable$3(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); -} - -function $valuesSpliterator(this$static){ - return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 16, new ArrayTable$2methodref$getValue$Type(this$static)); -} - -function ArrayTable(rowKeys, columnKeys){ - var tmpArray; - this.rowList = ($clinit_ImmutableList() , checkNotNull(rowKeys) , $clinit_ImmutableList() , copyFromCollection(rowKeys)); - this.columnList = (checkNotNull(columnKeys) , copyFromCollection(columnKeys)); - checkArgument(this.rowList.delegateList_0().isEmpty() == this.columnList.delegateList_0().isEmpty()); - this.rowKeyToIndex = indexMap(this.rowList); - this.columnKeyToIndex = indexMap(this.columnList); - tmpArray = initMultidimensionalArray(Ljava_lang_Object_2_classLit, [$intern_16, $intern_2], [5, 1], 5, [this.rowList.delegateList_0().size_1(), this.columnList.delegateList_0().size_1()], 2); - this.array = tmpArray; - $eraseAll(this); -} - -defineClass(664, 2010, {664:1, 1947:1, 3:1}, ArrayTable); -var Lcom_google_common_collect_ArrayTable_2_classLit = createForClass('com.google.common.collect', 'ArrayTable', 664); -function ArrayTable$1(this$0, $anonymous0){ - this.this$01 = this$0; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(1924, 386, $intern_4, ArrayTable$1); -_.get_0 = function get_10(index_0){ - return new ArrayTable$2(this.this$01, index_0); -} -; -var Lcom_google_common_collect_ArrayTable$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1', 1924); -function ArrayTable$1methodref$getCell$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1925, 1, {}, ArrayTable$1methodref$getCell$Type); -_.apply_2 = function apply_6(arg0){ - return new ArrayTable$2(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_ArrayTable$1methodref$getCell$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1methodref$getCell$Type', 1925); -defineClass(2011, 1, {682:1}); -_.equals_0 = function equals_15(obj){ - var other; - if (obj === this) { - return true; - } - if (instanceOf(obj, 468)) { - other = castTo(obj, 682); - return equal($get_2(this.this$01.rowList, this.rowIndex), $get_2(other.this$01.rowList, other.rowIndex)) && equal($get_2(this.this$01.columnList, this.columnIndex), $get_2(other.this$01.columnList, other.columnIndex)) && equal($at(this.this$01, this.rowIndex, this.columnIndex), $at(other.this$01, other.rowIndex, other.columnIndex)); - } - return false; -} -; -_.hashCode_1 = function hashCode_14(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [$get_2(this.this$01.rowList, this.rowIndex), $get_2(this.this$01.columnList, this.columnIndex), $at(this.this$01, this.rowIndex, this.columnIndex)])); -} -; -_.toString_0 = function toString_13(){ - return '(' + $get_2(this.this$01.rowList, this.rowIndex) + ',' + $get_2(this.this$01.columnList, this.columnIndex) + ')=' + $at(this.this$01, this.rowIndex, this.columnIndex); -} -; -var Lcom_google_common_collect_Tables$AbstractCell_2_classLit = createForClass('com.google.common.collect', 'Tables/AbstractCell', 2011); -function ArrayTable$2(this$0, val$index){ - this.this$01 = this$0; - this.val$index2 = val$index; - this.rowIndex = this.val$index2 / this.this$01.columnList.delegateList_0().size_1() | 0; - this.columnIndex = this.val$index2 % this.this$01.columnList.delegateList_0().size_1(); -} - -defineClass(468, 2011, {468:1, 682:1}, ArrayTable$2); -_.columnIndex = 0; -_.rowIndex = 0; -_.val$index2 = 0; -var Lcom_google_common_collect_ArrayTable$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2', 468); -function ArrayTable$2methodref$getValue$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1927, 1, {}, ArrayTable$2methodref$getValue$Type); -_.apply_2 = function apply_7(arg0){ - return $getValue(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_ArrayTable$2methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2methodref$getValue$Type', 1927); -function ArrayTable$3(this$0, $anonymous0){ - this.this$01 = this$0; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(1926, 386, $intern_4, ArrayTable$3); -_.get_0 = function get_11(index_0){ - return $getValue(this.this$01, index_0); -} -; -var Lcom_google_common_collect_ArrayTable$3_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/3', 1926); -function $forEachEntry_0(this$static, action){ - this$static.entryIterator().forEachRemaining(action); -} - -defineClass(1979, 1967, $intern_7); -_.clear_0 = function clear_13(){ - clear_20(this.entryIterator()); -} -; -_.entrySet_0 = function entrySet_0(){ - return new Maps$IteratorBasedAbstractMap$1(this); -} -; -_.entrySpliterator = function entrySpliterator_1(){ - return new Spliterators$IteratorSpliterator_1(this.entryIterator(), this.size_1()); -} -; -var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap', 1979); -function $getEntry(this$static, index_0){ - checkElementIndex(index_0, this$static.keyIndex.delegate.map_0.size_1()); - return new ArrayTable$ArrayMap$1(this$static, index_0); -} - -function $getKey(this$static, index_0){ - return $asList($keySet_0(this$static.keyIndex)).get_0(index_0); -} - -function ArrayTable$ArrayMap(keyIndex){ - this.keyIndex = keyIndex; -} - -defineClass(828, 1979, $intern_7); -_.clear_0 = function clear_14(){ - throw toJs(new UnsupportedOperationException); -} -; -_.containsKey = function containsKey_2(key){ - return $containsKey_0(this.keyIndex, key); -} -; -_.entryIterator = function entryIterator_1(){ - return new ArrayTable$ArrayMap$2(this, this.keyIndex.delegate.map_0.size_1()); -} -; -_.entrySpliterator = function entrySpliterator_2(){ - return indexed(this.keyIndex.delegate.map_0.size_1(), 16, new ArrayTable$ArrayMap$0methodref$getEntry$Type(this)); -} -; -_.get_3 = function get_12(key){ - var index_0; - index_0 = castTo($get_3(this.keyIndex, key), 19); - return !index_0?null:this.getValue_0(index_0.value_0); -} -; -_.isEmpty = function isEmpty_5(){ - return this.keyIndex.delegate.map_0.isEmpty(); -} -; -_.keySet_0 = function keySet_8(){ - return $keySet_0(this.keyIndex); -} -; -_.put = function put_0(key, value_0){ - var index_0; - index_0 = castTo($get_3(this.keyIndex, key), 19); - if (!index_0) { - throw toJs(new IllegalArgumentException_0(this.getKeyRole() + ' ' + key + ' not in ' + $keySet_0(this.keyIndex))); - } - return this.setValue_0(index_0.value_0, value_0); -} -; -_.remove_0 = function remove_20(key){ - throw toJs(new UnsupportedOperationException); -} -; -_.size_1 = function size_12(){ - return this.keyIndex.delegate.map_0.size_1(); -} -; -var Lcom_google_common_collect_ArrayTable$ArrayMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap', 828); -function ArrayTable$ArrayMap$0methodref$getEntry$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1923, 1, {}, ArrayTable$ArrayMap$0methodref$getEntry$Type); -_.apply_2 = function apply_8(arg0){ - return $getEntry(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_ArrayTable$ArrayMap$0methodref$getEntry$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/0methodref$getEntry$Type', 1923); -function ArrayTable$ArrayMap$1(this$1, val$index){ - this.this$11 = this$1; - this.val$index2 = val$index; -} - -defineClass(1921, 345, $intern_15, ArrayTable$ArrayMap$1); -_.getKey = function getKey(){ - return $getKey(this.this$11, this.val$index2); -} -; -_.getValue = function getValue(){ - return this.this$11.getValue_0(this.val$index2); -} -; -_.setValue = function setValue_0(value_0){ - return this.this$11.setValue_0(this.val$index2, value_0); -} -; -_.val$index2 = 0; -var Lcom_google_common_collect_ArrayTable$ArrayMap$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/1', 1921); -function ArrayTable$ArrayMap$2(this$1, $anonymous0){ - this.this$11 = this$1; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(1922, 386, $intern_4, ArrayTable$ArrayMap$2); -_.get_0 = function get_13(index_0){ - return $getEntry(this.this$11, index_0); -} -; -var Lcom_google_common_collect_ArrayTable$ArrayMap$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/2', 1922); -function ArrayTable$Row(this$0, rowIndex){ - this.this$01 = this$0; - ArrayTable$ArrayMap.call(this, this$0.columnKeyToIndex); - this.rowIndex = rowIndex; -} - -defineClass(1920, 828, $intern_7, ArrayTable$Row); -_.getKeyRole = function getKeyRole(){ - return 'Column'; -} -; -_.getValue_0 = function getValue_0(index_0){ - return $at(this.this$01, this.rowIndex, index_0); -} -; -_.setValue_0 = function setValue_1(index_0, newValue){ - return $set(this.this$01, this.rowIndex, index_0, newValue); -} -; -_.rowIndex = 0; -var Lcom_google_common_collect_ArrayTable$Row_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/Row', 1920); -function $put_1(){ - throw toJs(new UnsupportedOperationException); -} - -function $setValue(){ - throw toJs(new UnsupportedOperationException); -} - -function ArrayTable$RowMap(this$0){ - this.this$01 = this$0; - ArrayTable$ArrayMap.call(this, this$0.rowKeyToIndex); -} - -defineClass(829, 828, $intern_7, ArrayTable$RowMap); -_.getValue_0 = function getValue_1(index_0){ - return new ArrayTable$Row(this.this$01, index_0); -} -; -_.put = function put_1(key, value_0){ - return castTo(value_0, 83) , $put_1(); -} -; -_.setValue_0 = function setValue_2(index_0, newValue){ - return castTo(newValue, 83) , $setValue(); -} -; -_.getKeyRole = function getKeyRole_0(){ - return 'Row'; -} -; -var Lcom_google_common_collect_ArrayTable$RowMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/RowMap', 829); -function checkEntryNotNull(key, value_0){ - if (key == null) { - throw toJs(new NullPointerException_0('null key in entry: null=' + value_0)); - } - else if (value_0 == null) { - throw toJs(new NullPointerException_0('null value in entry: ' + key + '=null')); - } -} - -function checkNonnegative(value_0, name_0){ - if (value_0 < 0) { - throw toJs(new IllegalArgumentException_0(name_0 + ' cannot be negative but was: ' + value_0)); - } - return value_0; -} - -function flatMap(fromSpliterator, function_0, topCharacteristics, topSize){ - checkArgument_0((topCharacteristics & $intern_17) == 0, 'flatMap does not support SUBSIZED characteristic'); - checkArgument_0((topCharacteristics & 4) == 0, 'flatMap does not support SORTED characteristic'); - checkNotNull(fromSpliterator); - checkNotNull(function_0); - return new CollectSpliterators$1FlatMapSpliterator(fromSpliterator, topCharacteristics, topSize, function_0); -} - -function indexed(size_0, extraCharacteristics, function_0){ - return new CollectSpliterators$1WithCharacteristics(range_0(size_0).spliterator_1(), function_0, extraCharacteristics); -} - -function map_2(fromSpliterator, function_0){ - checkNotNull(fromSpliterator); - checkNotNull(function_0); - return new CollectSpliterators$1(fromSpliterator, function_0); -} - -function $forEachRemaining_0(this$static, consumer){ - while (this$static.tryAdvance(consumer)) - ; -} - -function CollectSpliterators$1(val$fromSpliterator, val$function){ - this.val$fromSpliterator1 = val$fromSpliterator; - this.val$function2 = val$function; -} - -defineClass(1120, 1, $intern_18, CollectSpliterators$1); -_.characteristics_0 = function characteristics_0(){ - return this.val$fromSpliterator1.characteristics_0() & -262; -} -; -_.estimateSize_0 = function estimateSize(){ - return this.val$fromSpliterator1.estimateSize_0(); -} -; -_.forEachRemaining = function forEachRemaining_4(action){ - this.val$fromSpliterator1.forEachRemaining(new CollectSpliterators$1$lambda$1$Type(action, this.val$function2)); -} -; -_.tryAdvance = function tryAdvance(action){ - return this.val$fromSpliterator1.tryAdvance(new CollectSpliterators$1$lambda$0$Type(action, this.val$function2)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1', 1120); -function CollectSpliterators$1$lambda$0$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1121, 1, $intern_19, CollectSpliterators$1$lambda$0$Type); -_.accept = function accept_0(arg0){ - this.action_0.accept(this.function_1.apply_0(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$0$Type', 1121); -function CollectSpliterators$1$lambda$1$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1122, 1, $intern_19, CollectSpliterators$1$lambda$1$Type); -_.accept = function accept_1(arg0){ - this.action_0.accept(this.function_1.apply_0(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$1$Type', 1122); -function $lambda$0(this$static, function_1, fromElement_1){ - return this$static.prefix = castTo(function_1.apply_0(fromElement_1), 164); -} - -function CollectSpliterators$1FlatMapSpliterator(from, characteristics, estimatedSize, val$function){ - this.val$function6 = val$function; - this.prefix = null; - this.from = from; - this.characteristics = characteristics; - this.estimatedSize = estimatedSize; -} - -function lambda$1_0(function_0, action_1, fromElement_2){ - castTo(function_0.apply_0(fromElement_2), 164).forEachRemaining(action_1); -} - -defineClass(1123, 1, $intern_18, CollectSpliterators$1FlatMapSpliterator); -_.characteristics_0 = function characteristics_1(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_0(){ - !!this.prefix && (this.estimatedSize = max_1(this.estimatedSize, this.prefix.estimateSize_0())); - return max_1(this.estimatedSize, 0); -} -; -_.forEachRemaining = function forEachRemaining_5(action){ - if (this.prefix) { - this.prefix.forEachRemaining(action); - this.prefix = null; - } - this.from.forEachRemaining(new CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(this.val$function6, action)); - this.estimatedSize = 0; -} -; -_.tryAdvance = function tryAdvance_0(action){ - while (true) { - if (!!this.prefix && this.prefix.tryAdvance(action)) { - neq(this.estimatedSize, $intern_20) && (this.estimatedSize = sub_2(this.estimatedSize, 1)); - return true; - } - else { - this.prefix = null; - } - if (!this.from.tryAdvance(new CollectSpliterators$1FlatMapSpliterator$lambda$0$Type(this, this.val$function6))) { - return false; - } - } -} -; -_.characteristics = 0; -_.estimatedSize = 0; -var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator', 1123); -function CollectSpliterators$1FlatMapSpliterator$lambda$0$Type($$outer_0, function_1){ - this.$$outer_0 = $$outer_0; - this.function_1 = function_1; -} - -defineClass(1124, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$0$Type); -_.accept = function accept_2(arg0){ - $lambda$0(this.$$outer_0, this.function_1, arg0); -} -; -var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type', 1124); -function CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(function_0, action_1){ - this.function_0 = function_0; - this.action_1 = action_1; -} - -defineClass(1125, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$1$Type); -_.accept = function accept_3(arg0){ - lambda$1_0(this.function_0, this.action_1, arg0); -} -; -var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type', 1125); -function CollectSpliterators$1WithCharacteristics(delegate, val$function, val$extraCharacteristics){ - this.val$function2 = val$function; - this.val$extraCharacteristics3 = val$extraCharacteristics; - this.delegate = delegate; -} - -defineClass(1117, 1, $intern_18, CollectSpliterators$1WithCharacteristics); -_.characteristics_0 = function characteristics_2(){ - return 16464 | this.val$extraCharacteristics3; -} -; -_.estimateSize_0 = function estimateSize_1(){ - return this.delegate.estimateSize_0(); -} -; -_.forEachRemaining = function forEachRemaining_6(action){ - this.delegate.forEachRemaining_0(new CollectSpliterators$1WithCharacteristics$lambda$1$Type(action, this.val$function2)); -} -; -_.tryAdvance = function tryAdvance_1(action){ - return this.delegate.tryAdvance_0(new CollectSpliterators$1WithCharacteristics$lambda$0$Type(action, this.val$function2)); -} -; -_.val$extraCharacteristics3 = 0; -var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics', 1117); -function CollectSpliterators$1WithCharacteristics$lambda$0$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1118, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$0$Type); -_.accept_0 = function accept_4(arg0){ - this.action_0.accept(this.function_1.apply_2(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$0$Type', 1118); -function CollectSpliterators$1WithCharacteristics$lambda$1$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1119, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$1$Type); -_.accept_0 = function accept_5(arg0){ - this.action_0.accept(this.function_1.apply_2(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$1$Type', 1119); -function safeContains(collection, object){ - checkNotNull(collection); - try { - return collection.contains(object); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return false; - } - else - throw toJs($e0); - } -} - -function safeRemove(collection, object){ - checkNotNull(collection); - try { - return collection.remove_1(object); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return false; - } - else - throw toJs($e0); - } -} - -function $equals_1(this$static, obj){ - var compareResult, that; - if (instanceOf(obj, 245)) { - that = castTo(obj, 245); - try { - compareResult = this$static.compareTo(that); - return compareResult == 0; - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 205)) - throw toJs($e0); - } - } - return false; -} - -function Cut(endpoint){ - this.endpoint = endpoint; -} - -defineClass(245, 1, $intern_22); -_.compareTo_0 = function compareTo_0(that){ - return this.compareTo(castTo(that, 245)); -} -; -_.compareTo = function compareTo(that){ - var result; - if (that == ($clinit_Cut$BelowAll() , INSTANCE_1)) { - return 1; - } - if (that == ($clinit_Cut$AboveAll() , INSTANCE_0)) { - return -1; - } - result = ($clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, that.endpoint)); - if (result != 0) { - return result; - } - return instanceOf(this, 519) == instanceOf(that, 519)?0:instanceOf(this, 519)?1:-1; -} -; -_.endpoint_0 = function endpoint_0(){ - return this.endpoint; -} -; -_.equals_0 = function equals_16(obj){ - return $equals_1(this, obj); -} -; -var Lcom_google_common_collect_Cut_2_classLit = createForClass('com.google.common.collect', 'Cut', 245); -function $clinit_Cut$AboveAll(){ - $clinit_Cut$AboveAll = emptyMethod; - INSTANCE_0 = new Cut$AboveAll; -} - -function Cut$AboveAll(){ - Cut.call(this, null); -} - -defineClass(1761, 245, $intern_22, Cut$AboveAll); -_.compareTo = function compareTo_1(o){ - return o == this?0:1; -} -; -_.describeAsLowerBound = function describeAsLowerBound(sb){ - throw toJs(new AssertionError); -} -; -_.describeAsUpperBound = function describeAsUpperBound(sb){ - sb.string += '+\u221E)'; -} -; -_.endpoint_0 = function endpoint_1(){ - throw toJs(new IllegalStateException_0('range unbounded on this side')); -} -; -_.hashCode_1 = function hashCode_15(){ - return $clinit_System() , getIdentityHashCode(this); -} -; -_.isLessThan = function isLessThan(value_0){ - return false; -} -; -_.toString_0 = function toString_14(){ - return '+\u221E'; -} -; -var INSTANCE_0; -var Lcom_google_common_collect_Cut$AboveAll_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveAll', 1761); -function Cut$AboveValue(endpoint){ - Cut.call(this, castTo(checkNotNull(endpoint), 35)); -} - -defineClass(519, 245, {245:1, 519:1, 3:1, 35:1}, Cut$AboveValue); -_.describeAsLowerBound = function describeAsLowerBound_0(sb){ - $append_10((sb.string += '(' , sb), this.endpoint); -} -; -_.describeAsUpperBound = function describeAsUpperBound_0(sb){ - $append_5($append_10(sb, this.endpoint), 93); -} -; -_.hashCode_1 = function hashCode_16(){ - return ~hashCode__I__devirtual$(this.endpoint); -} -; -_.isLessThan = function isLessThan_0(value_0){ - return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) < 0; -} -; -_.toString_0 = function toString_15(){ - return '/' + this.endpoint + '\\'; -} -; -var Lcom_google_common_collect_Cut$AboveValue_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveValue', 519); -function $clinit_Cut$BelowAll(){ - $clinit_Cut$BelowAll = emptyMethod; - INSTANCE_1 = new Cut$BelowAll; -} - -function Cut$BelowAll(){ - Cut.call(this, null); -} - -defineClass(1760, 245, $intern_22, Cut$BelowAll); -_.compareTo = function compareTo_2(o){ - return o == this?0:-1; -} -; -_.describeAsLowerBound = function describeAsLowerBound_1(sb){ - sb.string += '(-\u221E'; -} -; -_.describeAsUpperBound = function describeAsUpperBound_1(sb){ - throw toJs(new AssertionError); -} -; -_.endpoint_0 = function endpoint_2(){ - throw toJs(new IllegalStateException_0('range unbounded on this side')); -} -; -_.hashCode_1 = function hashCode_17(){ - return $clinit_System() , getIdentityHashCode(this); -} -; -_.isLessThan = function isLessThan_1(value_0){ - return true; -} -; -_.toString_0 = function toString_16(){ - return '-\u221E'; -} -; -var INSTANCE_1; -var Lcom_google_common_collect_Cut$BelowAll_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowAll', 1760); -function Cut$BelowValue(endpoint){ - Cut.call(this, castTo(checkNotNull(endpoint), 35)); -} - -defineClass(1762, 245, $intern_22, Cut$BelowValue); -_.describeAsLowerBound = function describeAsLowerBound_2(sb){ - $append_10((sb.string += '[' , sb), this.endpoint); -} -; -_.describeAsUpperBound = function describeAsUpperBound_2(sb){ - $append_5($append_10(sb, this.endpoint), 41); -} -; -_.hashCode_1 = function hashCode_18(){ - return hashCode__I__devirtual$(this.endpoint); -} -; -_.isLessThan = function isLessThan_2(value_0){ - return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) <= 0; -} -; -_.toString_0 = function toString_17(){ - return '\\' + this.endpoint + '/'; -} -; -var Lcom_google_common_collect_Cut$BelowValue_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowValue', 1762); -function FluentIterable(){ - $clinit_Absent(); -} - -function concatNoDefensiveCopy(inputs){ - var input_0, input$array, input$index, input$max; - for (input$array = inputs , input$index = 0 , input$max = input$array.length; input$index < input$max; ++input$index) { - input_0 = input$array[input$index]; - checkNotNull(input_0); - } - return new FluentIterable$3(inputs); -} - -defineClass(537, 1, $intern_23); -_.forEach_0 = function forEach_3(action){ - $forEach_0(this, action); -} -; -_.toString_0 = function toString_18(){ - return toString_25(castTo(checkNotNull_0(this, 'use Optional.orNull() instead of Optional.or(null)'), 20).iterator_0()); -} -; -var Lcom_google_common_collect_FluentIterable_2_classLit = createForClass('com.google.common.collect', 'FluentIterable', 537); -function FluentIterable$2(val$inputs){ - this.val$inputs1 = val$inputs; - FluentIterable.call(this); -} - -defineClass(433, 537, $intern_23, FluentIterable$2); -_.iterator_0 = function iterator_9(){ - return new Iterators$ConcatenatedIterator(transform_2(this.val$inputs1.iterator_0(), new Iterables$10)); -} -; -var Lcom_google_common_collect_FluentIterable$2_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/2', 433); -function $iterator(this$static){ - return new Iterators$ConcatenatedIterator(new FluentIterable$3$1(this$static.val$inputs1.length, this$static.val$inputs1)); -} - -function FluentIterable$3(val$inputs){ - this.val$inputs1 = val$inputs; - FluentIterable.call(this); -} - -defineClass(1046, 537, $intern_23, FluentIterable$3); -_.iterator_0 = function iterator_10(){ - return $iterator(this); -} -; -var Lcom_google_common_collect_FluentIterable$3_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3', 1046); -function FluentIterable$3$1($anonymous0, val$inputs){ - this.val$inputs3 = val$inputs; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(708, 386, $intern_4, FluentIterable$3$1); -_.get_0 = function get_14(i){ - return this.val$inputs3[i].iterator_0(); -} -; -var Lcom_google_common_collect_FluentIterable$3$1_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3/1', 708); -defineClass(1972, 1, {}); -_.toString_0 = function toString_19(){ - return toString_40(this.delegate_0().coll); -} -; -var Lcom_google_common_collect_ForwardingObject_2_classLit = createForClass('com.google.common.collect', 'ForwardingObject', 1972); -defineClass(1973, 1972, $intern_24); -_.delegate_0 = function delegate_0(){ - return this.delegate_1(); -} -; -_.forEach_0 = function forEach_4(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream_0(){ - return this.stream(); -} -; -_.spliterator_0 = function spliterator_15(){ - return new Spliterators$IteratorSpliterator(this, 0); -} -; -_.stream = function stream_1(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.add_2 = function add_7(element){ - return this.delegate_1() , $add_4(); -} -; -_.addAll = function addAll_3(collection){ - return this.delegate_1() , $addAll_3(); -} -; -_.clear_0 = function clear_15(){ - this.delegate_1() , $clear_5(); -} -; -_.contains = function contains_10(object){ - return this.delegate_1().contains(object); -} -; -_.containsAll = function containsAll_2(collection){ - return this.delegate_1().containsAll(collection); -} -; -_.isEmpty = function isEmpty_6(){ - return this.delegate_1().coll.isEmpty(); -} -; -_.iterator_0 = function iterator_11(){ - return this.delegate_1().iterator_0(); -} -; -_.remove_1 = function remove_21(object){ - return this.delegate_1() , $remove_14(); -} -; -_.size_1 = function size_13(){ - return this.delegate_1().coll.size_1(); -} -; -_.toArray = function toArray_1(){ - return this.delegate_1().toArray(); -} -; -_.toArray_0 = function toArray_2(array){ - return this.delegate_1().toArray_0(array); -} -; -var Lcom_google_common_collect_ForwardingCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingCollection', 1973); -function $clinit_ImmutableCollection(){ - $clinit_ImmutableCollection = emptyMethod; - new ForwardingImmutableCollection(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); -} - -function $asList(this$static){ - var list; - list = this$static.asList; - return !list?(this$static.asList = this$static.createAsList()):list; -} - -defineClass(1980, 28, $intern_25); -_.iterator_0 = function iterator_12(){ - return this.iterator_1(); -} -; -_.add_2 = function add_8(e){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll = function addAll_4(newElements){ - throw toJs(new UnsupportedOperationException); -} -; -_.clear_0 = function clear_16(){ - throw toJs(new UnsupportedOperationException); -} -; -_.contains = function contains_11(object){ - return object != null && $advanceToFind(this, object, false); -} -; -_.createAsList = function createAsList(){ - switch (this.size_1()) { - case 0: - return $clinit_ImmutableList() , $clinit_ImmutableList() , EMPTY; - case 1: - return $clinit_ImmutableList() , new SingletonImmutableList(checkNotNull(this.iterator_1().next_1())); - default:return new RegularImmutableAsList_0(this, this.toArray()); - } -} -; -_.remove_1 = function remove_22(object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_ImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection', 1980); -function ForwardingImmutableCollection(delegate){ - $clinit_ImmutableCollection(); - this.delegate = delegate; -} - -defineClass(712, 1980, $intern_25, ForwardingImmutableCollection); -_.iterator_0 = function iterator_14(){ - return unmodifiableIterator(this.delegate.iterator_0()); -} -; -_.contains = function contains_12(object){ - return object != null && this.delegate.contains(object); -} -; -_.containsAll = function containsAll_3(targets){ - return this.delegate.containsAll(targets); -} -; -_.isEmpty = function isEmpty_7(){ - return this.delegate.isEmpty(); -} -; -_.iterator_1 = function iterator_13(){ - return unmodifiableIterator(this.delegate.iterator_0()); -} -; -_.size_1 = function size_14(){ - return this.delegate.size_1(); -} -; -_.toArray = function toArray_3(){ - return this.delegate.toArray(); -} -; -_.toArray_0 = function toArray_4(other){ - return this.delegate.toArray_0(other); -} -; -_.toString_0 = function toString_20(){ - return toString_40(this.delegate); -} -; -var Lcom_google_common_collect_ForwardingImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableCollection', 712); -function $clinit_ImmutableList(){ - $clinit_ImmutableList = emptyMethod; - $clinit_ImmutableCollection(); - EMPTY = new RegularImmutableList(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); -} - -function $listIterator(this$static, index_0){ - return new ImmutableList$1(this$static, this$static.size_1(), index_0); -} - -function $reverse(this$static){ - var list; - list = (checkNotNull(this$static) , this$static?new ArrayList_1(this$static):newArrayList_0(this$static.iterator_0())); - reverse_2(list); - return unsafeDelegateList(list); -} - -function copyFromCollection(collection){ - $clinit_ImmutableList(); - var elements; - elements = collection.toArray(); - switch (elements.length) { - case 0: - return EMPTY; - case 1: - return new SingletonImmutableList(checkNotNull(elements[0])); - default:return new RegularImmutableList(nullCheckedList(elements)); - } -} - -function nullCheckedList(array){ - var castedArray, i, len; - for (i = 0 , len = array.length; i < len; i++) { - if (array[i] == null) { - throw toJs(new NullPointerException_0('at index ' + i)); - } - } - castedArray = array; - return new Arrays$ArrayList(castedArray); -} - -function unsafeDelegateList(list){ - var castedList; - switch (list.size_1()) { - case 0: - return EMPTY; - case 1: - return new SingletonImmutableList(checkNotNull(list.get_0(0))); - default:castedList = list; - return new RegularImmutableList(castedList); - } -} - -defineClass(152, 1980, $intern_26); -_.iterator_0 = function iterator_16(){ - return this.iterator_1(); -} -; -_.listIterator_0 = function listIterator_1(){ - return this.listIterator_2(0); -} -; -_.listIterator_1 = function listIterator_3(index_0){ - return this.listIterator_2(index_0); -} -; -_.sort_0 = function sort_1(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_16(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.subList = function subList_2(fromIndex, toIndex){ - return this.subList_0(fromIndex, toIndex); -} -; -_.add_3 = function add_9(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll_0 = function addAll_5(index_0, newElements){ - throw toJs(new UnsupportedOperationException); -} -; -_.equals_0 = function equals_17(obj){ - return equalsImpl(this, obj); -} -; -_.hashCode_1 = function hashCode_19(){ - return hashCodeImpl(this); -} -; -_.indexOf_0 = function indexOf_0(object){ - return object == null?-1:indexOfRandomAccess(this, object); -} -; -_.iterator_1 = function iterator_15(){ - return this.listIterator_2(0); -} -; -_.listIterator_2 = function listIterator_2(index_0){ - return $listIterator(this, index_0); -} -; -_.remove_2 = function remove_23(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_2 = function set_4(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.subList_0 = function subList_1(fromIndex, toIndex){ - var wrapper; - return unsafeDelegateList((wrapper = new Lists$1(this) , new AbstractList$SubList(wrapper, fromIndex, toIndex))); -} -; -var EMPTY; -var Lcom_google_common_collect_ImmutableList_2_classLit = createForClass('com.google.common.collect', 'ImmutableList', 152); -function $get_2(this$static, index_0){ - return this$static.delegateList_0().get_0(index_0); -} - -defineClass(2006, 152, $intern_26); -_.iterator_0 = function iterator_18(){ - return unmodifiableIterator(this.delegateList_0().iterator_0()); -} -; -_.subList = function subList_4(fromIndex, toIndex){ - return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); -} -; -_.contains = function contains_13(object){ - return object != null && this.delegateList_0().contains(object); -} -; -_.containsAll = function containsAll_4(targets){ - return this.delegateList_0().containsAll(targets); -} -; -_.equals_0 = function equals_18(obj){ - return equals_Ljava_lang_Object__Z__devirtual$(this.delegateList_0(), obj); -} -; -_.get_0 = function get_15(index_0){ - return $get_2(this, index_0); -} -; -_.hashCode_1 = function hashCode_20(){ - return hashCode__I__devirtual$(this.delegateList_0()); -} -; -_.indexOf_0 = function indexOf_1(object){ - return this.delegateList_0().indexOf_0(object); -} -; -_.isEmpty = function isEmpty_8(){ - return this.delegateList_0().isEmpty(); -} -; -_.iterator_1 = function iterator_17(){ - return unmodifiableIterator(this.delegateList_0().iterator_0()); -} -; -_.size_1 = function size_15(){ - return this.delegateList_0().size_1(); -} -; -_.subList_0 = function subList_3(fromIndex, toIndex){ - return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); -} -; -_.toArray = function toArray_5(){ - return this.delegateList_0().toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.delegateList_0().size_1(), 5, 1)); -} -; -_.toArray_0 = function toArray_6(other){ - return this.delegateList_0().toArray_0(other); -} -; -_.toString_0 = function toString_21(){ - return toString_40(this.delegateList_0()); -} -; -var Lcom_google_common_collect_ForwardingImmutableList_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableList', 2006); -function $clinit_ImmutableMap(){ - $clinit_ImmutableMap = emptyMethod; - EMPTY_0 = new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [])); -} - -function $entrySet_1(this$static){ - if (this$static.cachedEntrySet) { - return this$static.cachedEntrySet; - } - return this$static.cachedEntrySet = this$static.createEntrySet_1(); -} - -function $keySet_0(this$static){ - if (this$static.cachedKeySet) { - return this$static.cachedKeySet; - } - return this$static.cachedKeySet = this$static.createKeySet_1(); -} - -function $put_2(){ - throw toJs(new UnsupportedOperationException); -} - -function fromEntryList(entries){ - $clinit_ImmutableMap(); - var entry, entryArray, size_0; - size_0 = entries.array.length; - switch (size_0) { - case 0: - return EMPTY_0; - case 1: - entry = castTo(getOnlyElement(new ArrayList$1(entries)), 42); - return of(entry.getKey(), entry.getValue()); - default:entryArray = castTo($toArray_2(entries, initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, entries.array.length, 0, 1)), 165); - return new RegularImmutableMap(entryArray); - } -} - -function of(k1, v1){ - return $clinit_ImmutableMap() , checkEntryNotNull(k1, v1) , new SingletonImmutableBiMap(k1, v1); -} - -function of_0(k1, v1, k2, v2){ - $clinit_ImmutableMap(); - return new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [(checkEntryNotNull(k1, v1) , new ImmutableEntry(k1, v1)), (checkEntryNotNull(k2, v2) , new ImmutableEntry(k2, v2))])); -} - -defineClass(714, 1, $intern_28); -_.entrySet_0 = function entrySet_1(){ - return $entrySet_1(this); -} -; -_.forEach = function forEach_5(consumer){ - $forEach_2(this, consumer); -} -; -_.keySet_0 = function keySet_9(){ - return $keySet_0(this); -} -; -_.merge = function merge_0(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.values_0 = function values_4(){ - return this.values_2(); -} -; -_.clear_0 = function clear_17(){ - throw toJs(new UnsupportedOperationException); -} -; -_.containsKey = function containsKey_3(key){ - return this.get_3(key) != null; -} -; -_.containsValue = function containsValue_0(value_0){ - return this.values_2().contains(value_0); -} -; -_.createKeySet_1 = function createKeySet_6(){ - return new ImmutableMapKeySet(this); -} -; -_.createValues = function createValues(){ - return new ImmutableMapValues(this); -} -; -_.equals_0 = function equals_19(object){ - return equalsImpl_0(this, object); -} -; -_.hashCode_1 = function hashCode_21(){ - return $entrySet_1(this).hashCode_1(); -} -; -_.isEmpty = function isEmpty_9(){ - return this.size_1() == 0; -} -; -_.put = function put_2(k, v){ - return $put_2(); -} -; -_.remove_0 = function remove_24(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.toString_0 = function toString_22(){ - return toStringImpl(this); -} -; -_.values_2 = function values_3(){ - if (this.cachedValues) { - return this.cachedValues; - } - return this.cachedValues = this.createValues(); -} -; -_.cachedEntrySet = null; -_.cachedKeySet = null; -_.cachedValues = null; -var EMPTY_0; -var Lcom_google_common_collect_ImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap', 714); -function $containsKey_0(this$static, key){ - return safeContainsKey(this$static.delegate, key); -} - -function $get_3(this$static, key){ - return key == null?null:safeGet(this$static.delegate, key); -} - -function ForwardingImmutableMap(entries){ - var delegate, entry, entry$array, entry$index, entry$max, key, previous; - delegate = new LinkedHashMap; - for (entry$array = entries , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { - entry = entry$array[entry$index]; - key = checkNotNull(entry.getKey()); - previous = $put_11(delegate, key, checkNotNull(entry.getValue())); - if (previous != null) { - throw toJs(new IllegalArgumentException_0('duplicate key: ' + key)); - } - } - this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); -} - -defineClass(715, 714, $intern_28); -_.containsKey = function containsKey_4(key){ - return $containsKey_0(this, key); -} -; -_.containsValue = function containsValue_1(value_0){ - return $containsValue_3(this.delegate, value_0); -} -; -_.createEntrySet_1 = function createEntrySet_0(){ - return unsafeDelegate(new ForwardingImmutableMap$1(this)); -} -; -_.createKeySet_1 = function createKeySet_7(){ - return unsafeDelegate($keySet_1(this.delegate)); -} -; -_.createValues = function createValues_0(){ - return $clinit_ImmutableCollection() , new ForwardingImmutableCollection($values_2(this.delegate)); -} -; -_.equals_0 = function equals_20(object){ - return $equals_7(this.delegate, object); -} -; -_.get_3 = function get_16(key){ - return $get_3(this, key); -} -; -_.hashCode_1 = function hashCode_22(){ - return hashCode__I__devirtual$(this.delegate.map_0); -} -; -_.isEmpty = function isEmpty_10(){ - return this.delegate.map_0.isEmpty(); -} -; -_.size_1 = function size_16(){ - return this.delegate.map_0.size_1(); -} -; -_.toString_0 = function toString_23(){ - return toString_40(this.delegate.map_0); -} -; -var Lcom_google_common_collect_ForwardingImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap', 715); -defineClass(1974, 1973, $intern_29); -_.delegate_0 = function delegate_1(){ - return this.delegate_2(); -} -; -_.delegate_1 = function delegate_2(){ - return this.delegate_2(); -} -; -_.spliterator_0 = function spliterator_17(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_21(object){ - return object === this || this.delegate_2().equals_0(object); -} -; -_.hashCode_1 = function hashCode_23(){ - return this.delegate_2().hashCode_1(); -} -; -var Lcom_google_common_collect_ForwardingSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSet', 1974); -function ForwardingImmutableMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1069, 1974, $intern_29, ForwardingImmutableMap$1); -_.delegate_0 = function delegate_3(){ - return $entrySet_2(this.this$01.delegate); -} -; -_.delegate_1 = function delegate_4(){ - return $entrySet_2(this.this$01.delegate); -} -; -_.contains = function contains_14(object){ - if (instanceOf(object, 42) && castTo(object, 42).getKey() == null) { - return false; - } - try { - return $contains_3($entrySet_2(this.this$01.delegate), object); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205)) { - return false; - } - else - throw toJs($e0); - } -} -; -_.delegate_2 = function delegate_5(){ - return $entrySet_2(this.this$01.delegate); -} -; -_.toArray_0 = function toArray_7(array){ - var result; - result = $toArray_5($entrySet_2(this.this$01.delegate), array); - $entrySet_2(this.this$01.delegate).coll.size_1() < result.length && setCheck(result, $entrySet_2(this.this$01.delegate).coll.size_1(), null); - return result; -} -; -var Lcom_google_common_collect_ForwardingImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap/1', 1069); -function unsafeDelegate(delegate){ - $clinit_ImmutableCollection(); - switch (delegate.size_1()) { - case 0: - return $clinit_RegularImmutableSet() , EMPTY_2; - case 1: - return new SingletonImmutableSet(delegate.iterator_0().next_1()); - default:return new RegularImmutableSet(delegate); - } -} - -defineClass(1981, 1980, $intern_30); -_.iterator_0 = function iterator_19(){ - return this.iterator_1(); -} -; -_.spliterator_0 = function spliterator_18(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_22(obj){ - return equalsImpl_3(this, obj); -} -; -_.hashCode_1 = function hashCode_24(){ - return hashCodeImpl_0(this); -} -; -var Lcom_google_common_collect_ImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableSet', 1981); -function ForwardingImmutableSet(delegate){ - $clinit_ImmutableCollection(); - this.delegate = ($clinit_Collections() , new Collections$UnmodifiableSet(delegate)); -} - -defineClass(703, 1981, $intern_30); -_.iterator_0 = function iterator_21(){ - return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); -} -; -_.contains = function contains_15(object){ - return object != null && $contains_2(this.delegate, object); -} -; -_.containsAll = function containsAll_5(targets){ - return $containsAll_0(this.delegate, targets); -} -; -_.hashCode_1 = function hashCode_25(){ - return hashCode__I__devirtual$(this.delegate.coll); -} -; -_.isEmpty = function isEmpty_11(){ - return this.delegate.coll.isEmpty(); -} -; -_.iterator_1 = function iterator_20(){ - return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); -} -; -_.size_1 = function size_17(){ - return this.delegate.coll.size_1(); -} -; -_.toArray = function toArray_8(){ - return this.delegate.coll.toArray(); -} -; -_.toArray_0 = function toArray_9(other){ - return $toArray_4(this.delegate, other); -} -; -_.toString_0 = function toString_24(){ - return toString_40(this.delegate.coll); -} -; -var Lcom_google_common_collect_ForwardingImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableSet', 703); -defineClass(1975, 1974, $intern_31); -_.delegate_0 = function delegate_6(){ - return this.unmodifiableDelegate; -} -; -_.delegate_1 = function delegate_7(){ - return this.unmodifiableDelegate; -} -; -_.delegate_2 = function delegate_8(){ - return this.unmodifiableDelegate; -} -; -_.spliterator_0 = function spliterator_19(){ - return new SortedSet$1(this); -} -; -var Lcom_google_common_collect_ForwardingSortedSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSortedSet', 1975); -function $clear_2(this$static){ - this$static.size_0 = 0; - fill_2(this$static.hashTableKToV, null); - fill_2(this$static.hashTableVToK, null); - this$static.firstInKeyInsertionOrder = null; - this$static.lastInKeyInsertionOrder = null; - ++this$static.modCount; -} - -function $containsValue_1(this$static, value_0){ - return !!$seekByValue(this$static, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); -} - -function $delete(this$static, entry){ - var bucketEntry, bucketEntry0, keyBucket, prevBucketEntry, valueBucket; - keyBucket = entry.keyHash & this$static.mask; - prevBucketEntry = null; - for (bucketEntry0 = this$static.hashTableKToV[keyBucket]; true; bucketEntry0 = bucketEntry0.nextInKToVBucket) { - if (bucketEntry0 == entry) { - !prevBucketEntry?(this$static.hashTableKToV[keyBucket] = entry.nextInKToVBucket):(prevBucketEntry.nextInKToVBucket = entry.nextInKToVBucket); - break; - } - prevBucketEntry = bucketEntry0; - } - valueBucket = entry.valueHash & this$static.mask; - prevBucketEntry = null; - for (bucketEntry = this$static.hashTableVToK[valueBucket]; true; bucketEntry = bucketEntry.nextInVToKBucket) { - if (bucketEntry == entry) { - !prevBucketEntry?(this$static.hashTableVToK[valueBucket] = entry.nextInVToKBucket):(prevBucketEntry.nextInVToKBucket = entry.nextInVToKBucket); - break; - } - prevBucketEntry = bucketEntry; - } - !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry.nextInKeyInsertionOrder):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry.nextInKeyInsertionOrder); - !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry.prevInKeyInsertionOrder):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry.prevInKeyInsertionOrder); - --this$static.size_0; - ++this$static.modCount; -} - -function $forEach(this$static, action){ - var entry; - checkNotNull(action); - for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { - action.accept_1(entry.key, entry.value_0); - } -} - -function $get_4(this$static, key){ - return valueOrNull($seekByKey(this$static, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))))); -} - -function $insert(this$static, entry, oldEntryForKey){ - var keyBucket, valueBucket; - keyBucket = entry.keyHash & this$static.mask; - entry.nextInKToVBucket = this$static.hashTableKToV[keyBucket]; - this$static.hashTableKToV[keyBucket] = entry; - valueBucket = entry.valueHash & this$static.mask; - entry.nextInVToKBucket = this$static.hashTableVToK[valueBucket]; - this$static.hashTableVToK[valueBucket] = entry; - if (!oldEntryForKey) { - entry.prevInKeyInsertionOrder = this$static.lastInKeyInsertionOrder; - entry.nextInKeyInsertionOrder = null; - !this$static.lastInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(this$static.lastInKeyInsertionOrder.nextInKeyInsertionOrder = entry); - this$static.lastInKeyInsertionOrder = entry; - } - else { - entry.prevInKeyInsertionOrder = oldEntryForKey.prevInKeyInsertionOrder; - !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry); - entry.nextInKeyInsertionOrder = oldEntryForKey.nextInKeyInsertionOrder; - !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry); - } - ++this$static.size_0; - ++this$static.modCount; -} - -function $inverse(this$static){ - var result; - result = this$static.inverse; - return !result?(this$static.inverse = new HashBiMap$Inverse(this$static)):result; -} - -function $put_3(this$static, key, value_0){ - var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; - keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); - valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - oldEntryForKey = $seekByKey(this$static, key, keyHash); - if (!!oldEntryForKey && valueHash == oldEntryForKey.valueHash && equal(value_0, oldEntryForKey.value_0)) { - return value_0; - } - oldEntryForValue = $seekByValue(this$static, value_0, valueHash); - if (oldEntryForValue) { - throw toJs(new IllegalArgumentException_0('value already present: ' + value_0)); - } - newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); - if (oldEntryForKey) { - $delete(this$static, oldEntryForKey); - $insert(this$static, newEntry, oldEntryForKey); - oldEntryForKey.prevInKeyInsertionOrder = null; - oldEntryForKey.nextInKeyInsertionOrder = null; - return oldEntryForKey.value_0; - } - else { - $insert(this$static, newEntry, null); - $rehashIfNecessary(this$static); - return null; - } -} - -function $putInverse(this$static, value_0, key, force){ - var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; - valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); - oldEntryForValue = $seekByValue(this$static, value_0, valueHash); - oldEntryForKey = $seekByKey(this$static, key, keyHash); - if (!!oldEntryForValue && keyHash == oldEntryForValue.keyHash && equal(key, oldEntryForValue.key)) { - return key; - } - else if (!!oldEntryForKey && !force) { - throw toJs(new IllegalArgumentException_0('key already present: ' + key)); - } - !!oldEntryForValue && $delete(this$static, oldEntryForValue); - !!oldEntryForKey && $delete(this$static, oldEntryForKey); - newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); - $insert(this$static, newEntry, oldEntryForKey); - if (oldEntryForKey) { - oldEntryForKey.prevInKeyInsertionOrder = null; - oldEntryForKey.nextInKeyInsertionOrder = null; - } - if (oldEntryForValue) { - oldEntryForValue.prevInKeyInsertionOrder = null; - oldEntryForValue.nextInKeyInsertionOrder = null; - } - $rehashIfNecessary(this$static); - return !oldEntryForValue?null:oldEntryForValue.key; -} - -function $rehashIfNecessary(this$static){ - var entry, newTableSize, oldKToV; - oldKToV = this$static.hashTableKToV; - if (needsResizing(this$static.size_0, oldKToV.length)) { - newTableSize = oldKToV.length * 2; - this$static.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); - this$static.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); - this$static.mask = newTableSize - 1; - this$static.size_0 = 0; - for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { - $insert(this$static, entry, entry); - } - ++this$static.modCount; - } -} - -function $seekByKey(this$static, key, keyHash){ - var entry; - for (entry = this$static.hashTableKToV[keyHash & this$static.mask]; entry; entry = entry.nextInKToVBucket) { - if (keyHash == entry.keyHash && equal(key, entry.key)) { - return entry; - } - } - return null; -} - -function $seekByValue(this$static, value_0, valueHash){ - var entry; - for (entry = this$static.hashTableVToK[valueHash & this$static.mask]; entry; entry = entry.nextInVToKBucket) { - if (valueHash == entry.valueHash && equal(value_0, entry.value_0)) { - return entry; - } - } - return null; -} - -function HashBiMap(){ - var tableSize; - checkNonnegative(16, 'expectedSize'); - tableSize = closedTableSize(16); - this.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); - this.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); - this.firstInKeyInsertionOrder = null; - this.lastInKeyInsertionOrder = null; - this.size_0 = 0; - this.mask = tableSize - 1; - this.modCount = 0; -} - -defineClass(533, 1979, $intern_28, HashBiMap); -_.putAll = function putAll_0(map_0){ - $putAll(this, map_0); -} -; -_.values_0 = function values_5(){ - var result; - return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); -} -; -_.clear_0 = function clear_18(){ - $clear_2(this); -} -; -_.containsKey = function containsKey_5(key){ - return !!$seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); -} -; -_.containsValue = function containsValue_2(value_0){ - return $containsValue_1(this, value_0); -} -; -_.entryIterator = function entryIterator_2(){ - return new HashBiMap$1(this, this); -} -; -_.forEach = function forEach_6(action){ - $forEach(this, action); -} -; -_.get_3 = function get_17(key){ - return $get_4(this, key); -} -; -_.keySet_0 = function keySet_10(){ - return new HashBiMap$KeySet(this); -} -; -_.put = function put_3(key, value_0){ - return $put_3(this, key, value_0); -} -; -_.remove_0 = function remove_25(key){ - var entry; - entry = $seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); - if (!entry) { - return null; - } - else { - $delete(this, entry); - entry.prevInKeyInsertionOrder = null; - entry.nextInKeyInsertionOrder = null; - return entry.value_0; - } -} -; -_.size_1 = function size_18(){ - return this.size_0; -} -; -_.values_1 = function values_6(){ - var result; - return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); -} -; -_.mask = 0; -_.modCount = 0; -_.size_0 = 0; -var Lcom_google_common_collect_HashBiMap_2_classLit = createForClass('com.google.common.collect', 'HashBiMap', 533); -function $hasNext_0(this$static){ - if (this$static.this$01.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - return !!this$static.next_0 && this$static.remaining > 0; -} - -function HashBiMap$Itr(this$0){ - this.this$01 = this$0; - this.next_0 = this.this$01.firstInKeyInsertionOrder; - this.expectedModCount = this.this$01.modCount; - this.remaining = this.this$01.size_0; -} - -defineClass(534, 1, $intern_6); -_.forEachRemaining = function forEachRemaining_7(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_5(){ - return $hasNext_0(this); -} -; -_.next_1 = function next_6(){ - var entry; - if (!$hasNext_0(this)) { - throw toJs(new NoSuchElementException); - } - entry = this.next_0; - this.next_0 = entry.nextInKeyInsertionOrder; - this.toRemove = entry; - --this.remaining; - return this.output_0(entry); -} -; -_.remove = function remove_26(){ - if (this.this$01.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - checkState_0(!!this.toRemove); - $delete(this.this$01, this.toRemove); - this.expectedModCount = this.this$01.modCount; - this.toRemove = null; -} -; -_.expectedModCount = 0; -_.remaining = 0; -_.toRemove = null; -var Lcom_google_common_collect_HashBiMap$Itr_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Itr', 534); -function HashBiMap$1(this$0, this$0_1){ - this.this$02 = this$0_1; - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1011, 534, $intern_6, HashBiMap$1); -_.output_0 = function output_2(entry){ - return new HashBiMap$1$MapEntry(this, entry); -} -; -var Lcom_google_common_collect_HashBiMap$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1', 1011); -function HashBiMap$1$MapEntry(this$1, entry){ - this.this$11 = this$1; - this.delegate = entry; -} - -defineClass(1012, 345, $intern_15, HashBiMap$1$MapEntry); -_.getKey = function getKey_0(){ - return this.delegate.key; -} -; -_.getValue = function getValue_2(){ - return this.delegate.value_0; -} -; -_.setValue = function setValue_3(value_0){ - var newEntry, oldValue, valueHash; - oldValue = this.delegate.value_0; - valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - if (valueHash == this.delegate.valueHash && (maskUndefined(value_0) === maskUndefined(oldValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, oldValue))) { - return value_0; - } - checkArgument_1(!$seekByValue(this.this$11.this$02, value_0, valueHash), value_0); - $delete(this.this$11.this$02, this.delegate); - newEntry = new HashBiMap$BiEntry(this.delegate.key, this.delegate.keyHash, value_0, valueHash); - $insert(this.this$11.this$02, newEntry, this.delegate); - this.delegate.prevInKeyInsertionOrder = null; - this.delegate.nextInKeyInsertionOrder = null; - this.this$11.expectedModCount = this.this$11.this$02.modCount; - this.this$11.toRemove == this.delegate && (this.this$11.toRemove = newEntry); - this.delegate = newEntry; - return oldValue; -} -; -var Lcom_google_common_collect_HashBiMap$1$MapEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1/MapEntry', 1012); -function ImmutableEntry(key, value_0){ - this.key = key; - this.value_0 = value_0; -} - -defineClass(238, 345, {345:1, 238:1, 3:1, 42:1}, ImmutableEntry); -_.getKey = function getKey_1(){ - return this.key; -} -; -_.getValue = function getValue_3(){ - return this.value_0; -} -; -_.setValue = function setValue_4(value_0){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_ImmutableEntry_2_classLit = createForClass('com.google.common.collect', 'ImmutableEntry', 238); -function HashBiMap$BiEntry(key, keyHash, value_0, valueHash){ - ImmutableEntry.call(this, key, value_0); - this.keyHash = keyHash; - this.valueHash = valueHash; -} - -defineClass(317, 238, {345:1, 317:1, 238:1, 3:1, 42:1}, HashBiMap$BiEntry); -_.keyHash = 0; -_.valueHash = 0; -var Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/BiEntry', 317); -function $get_5(this$static, value_0){ - return keyOrNull($seekByValue(this$static.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))))); -} - -function HashBiMap$Inverse(this$0){ - this.this$01 = this$0; -} - -function lambda$0(action_0, k_1, v_2){ - action_0.accept_1(v_2, k_1); -} - -defineClass(610, 1979, $intern_28, HashBiMap$Inverse); -_.putAll = function putAll_1(map_0){ - $putAll(this, map_0); -} -; -_.values_0 = function values_7(){ - return new HashBiMap$KeySet(this.this$01); -} -; -_.clear_0 = function clear_19(){ - $clear_2(this.this$01); -} -; -_.containsKey = function containsKey_6(value_0){ - return $containsValue_1(this.this$01, value_0); -} -; -_.entryIterator = function entryIterator_3(){ - return new HashBiMap$Inverse$1(this, this.this$01); -} -; -_.forEach = function forEach_7(action){ - checkNotNull(action); - $forEach(this.this$01, new HashBiMap$Inverse$lambda$0$Type(action)); -} -; -_.get_3 = function get_18(value_0){ - return $get_5(this, value_0); -} -; -_.keySet_0 = function keySet_11(){ - return new HashBiMap$Inverse$InverseKeySet(this); -} -; -_.put = function put_4(value_0, key){ - return $putInverse(this.this$01, value_0, key, false); -} -; -_.remove_0 = function remove_27(value_0){ - var entry; - entry = $seekByValue(this.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); - if (!entry) { - return null; - } - else { - $delete(this.this$01, entry); - entry.prevInKeyInsertionOrder = null; - entry.nextInKeyInsertionOrder = null; - return entry.key; - } -} -; -_.size_1 = function size_19(){ - return this.this$01.size_0; -} -; -_.values_1 = function values_8(){ - return new HashBiMap$KeySet(this.this$01); -} -; -var Lcom_google_common_collect_HashBiMap$Inverse_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse', 610); -function HashBiMap$Inverse$1(this$1, this$0){ - this.this$11 = this$1; - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1008, 534, $intern_6, HashBiMap$Inverse$1); -_.output_0 = function output_3(entry){ - return new HashBiMap$Inverse$1$InverseEntry(this, entry); -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1', 1008); -function HashBiMap$Inverse$1$InverseEntry(this$2, entry){ - this.this$21 = this$2; - this.delegate = entry; -} - -defineClass(1009, 345, $intern_15, HashBiMap$Inverse$1$InverseEntry); -_.getKey = function getKey_2(){ - return this.delegate.value_0; -} -; -_.getValue = function getValue_4(){ - return this.delegate.key; -} -; -_.setValue = function setValue_5(key){ - var keyHash, newEntry, oldKey; - oldKey = this.delegate.key; - keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); - if (keyHash == this.delegate.keyHash && (maskUndefined(key) === maskUndefined(oldKey) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, oldKey))) { - return key; - } - checkArgument_1(!$seekByKey(this.this$21.this$11.this$01, key, keyHash), key); - $delete(this.this$21.this$11.this$01, this.delegate); - newEntry = new HashBiMap$BiEntry(key, keyHash, this.delegate.value_0, this.delegate.valueHash); - this.delegate = newEntry; - $insert(this.this$21.this$11.this$01, newEntry, null); - this.this$21.expectedModCount = this.this$21.this$11.this$01.modCount; - return oldKey; -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$1$InverseEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1/InverseEntry', 1009); -function HashBiMap$Inverse$InverseKeySet(this$1){ - this.this$11 = this$1; - Maps$KeySet.call(this, this$1); -} - -defineClass(611, 532, $intern_10, HashBiMap$Inverse$InverseKeySet); -_.iterator_0 = function iterator_22(){ - return new HashBiMap$Inverse$InverseKeySet$1(this.this$11.this$01); -} -; -_.remove_1 = function remove_28(o){ - var entry; - entry = $seekByValue(this.this$11.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); - if (!entry) { - return false; - } - else { - $delete(this.this$11.this$01, entry); - return true; - } -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet', 611); -function HashBiMap$Inverse$InverseKeySet$1(this$0){ - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1007, 534, $intern_6, HashBiMap$Inverse$InverseKeySet$1); -_.output_0 = function output_4(entry){ - return entry.value_0; -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet/1', 1007); -function HashBiMap$Inverse$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(1010, 1, {}, HashBiMap$Inverse$lambda$0$Type); -_.accept_1 = function accept_6(arg0, arg1){ - lambda$0(this.action_0, arg0, arg1); -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/lambda$0$Type', 1010); -function HashBiMap$KeySet(this$0){ - this.this$01 = this$0; - Maps$KeySet.call(this, this$0); -} - -defineClass(609, 532, $intern_10, HashBiMap$KeySet); -_.iterator_0 = function iterator_23(){ - return new HashBiMap$KeySet$1(this.this$01); -} -; -_.remove_1 = function remove_29(o){ - var entry; - entry = $seekByKey(this.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); - if (!entry) { - return false; - } - else { - $delete(this.this$01, entry); - entry.prevInKeyInsertionOrder = null; - entry.nextInKeyInsertionOrder = null; - return true; - } -} -; -var Lcom_google_common_collect_HashBiMap$KeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet', 609); -function HashBiMap$KeySet$1(this$0){ - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1006, 534, $intern_6, HashBiMap$KeySet$1); -_.output_0 = function output_5(entry){ - return entry.key; -} -; -var Lcom_google_common_collect_HashBiMap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet/1', 1006); -function HashMultimapGwtSerializationDependencies(map_0){ - AbstractSetMultimap.call(this, map_0); -} - -defineClass(1093, 619, $intern_5); -var Lcom_google_common_collect_HashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'HashMultimapGwtSerializationDependencies', 1093); -function HashMultimap(){ - HashMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(12))); - checkArgument(true); - this.expectedValuesPerKey = 2; -} - -defineClass(265, 1093, $intern_5, HashMultimap); -_.createCollection = function createCollection_5(){ - return new HashSet_0(capacity_0(this.expectedValuesPerKey)); -} -; -_.createCollection_1 = function createCollection_6(){ - return new HashSet_0(capacity_0(this.expectedValuesPerKey)); -} -; -_.expectedValuesPerKey = 2; -var Lcom_google_common_collect_HashMultimap_2_classLit = createForClass('com.google.common.collect', 'HashMultimap', 265); -function closedTableSize(expectedEntries){ - var tableSize; - expectedEntries = $wnd.Math.max(expectedEntries, 2); - tableSize = highestOneBit(expectedEntries); - if (expectedEntries > tableSize) { - tableSize <<= 1; - return tableSize > 0?tableSize:$intern_35; - } - return tableSize; -} - -function needsResizing(size_0, tableSize){ - return size_0 > tableSize && tableSize < $intern_35; -} - -defineClass(1999, 152, $intern_26); -_.contains = function contains_16(target){ - return this.delegateCollection().contains(target); -} -; -_.isEmpty = function isEmpty_12(){ - return this.delegateCollection().isEmpty(); -} -; -_.size_1 = function size_20(){ - return this.delegateCollection().size_1(); -} -; -var Lcom_google_common_collect_ImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'ImmutableAsList', 1999); -function ImmutableBiMap(delegate){ - this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); -} - -defineClass(1931, 715, $intern_28); -_.values_2 = function values_9(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_0 = function values_10(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_1 = function values_11(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -var Lcom_google_common_collect_ImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableBiMap', 1931); -defineClass(1977, 1, {}); -var Lcom_google_common_collect_ImmutableCollection$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection/Builder', 1977); -function ImmutableEnumSet(delegate){ - ForwardingImmutableSet.call(this, delegate); -} - -function asImmutable(delegate){ - $clinit_ImmutableCollection(); - switch (delegate.size_0) { - case 0: - return $clinit_RegularImmutableSet() , EMPTY_2; - case 1: - return new SingletonImmutableSet(getOnlyElement(new EnumSet$EnumSetImpl$IteratorImpl(delegate))); - default:return new ImmutableEnumSet(delegate); - } -} - -defineClass(1022, 703, $intern_30, ImmutableEnumSet); -var Lcom_google_common_collect_ImmutableEnumSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableEnumSet', 1022); -function ImmutableList$1(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - AbstractIndexedListIterator_0.call(this, $anonymous0, $anonymous1); -} - -defineClass(969, 386, $intern_4, ImmutableList$1); -_.get_0 = function get_19(index_0){ - return this.this$01.get_0(index_0); -} -; -var Lcom_google_common_collect_ImmutableList$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/1', 969); -function ImmutableList$Builder(capacity){ - this.contents = (checkNonnegative(capacity, 'initialArraySize') , new ArrayList_0(capacity)); -} - -defineClass(968, 1977, {}, ImmutableList$Builder); -var Lcom_google_common_collect_ImmutableList$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/Builder', 968); -function ImmutableMap$1(val$entryIterator){ - this.val$entryIterator2 = val$entryIterator; -} - -defineClass(614, 198, $intern_3, ImmutableMap$1); -_.hasNext_0 = function hasNext_6(){ - return this.val$entryIterator2.hasNext_0(); -} -; -_.next_1 = function next_7(){ - return castTo(this.val$entryIterator2.next_1(), 42).getKey(); -} -; -var Lcom_google_common_collect_ImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/1', 614); -function ImmutableMap$2methodref$getKey$Type(){ -} - -defineClass(1041, 1, {}, ImmutableMap$2methodref$getKey$Type); -_.apply_0 = function apply_9(arg0){ - return castTo(arg0, 42).getKey(); -} -; -var Lcom_google_common_collect_ImmutableMap$2methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/2methodref$getKey$Type', 1041); -function $put_4(this$static, key, value_0){ - $add_3(this$static.entries_0, ($clinit_ImmutableMap() , checkEntryNotNull(key, value_0) , new ImmutableEntry(key, value_0))); - return this$static; -} - -function ImmutableMap$Builder(initCapacity){ - this.entries_0 = (checkNonnegative(initCapacity, 'initialArraySize') , new ArrayList_0(initCapacity)); -} - -defineClass(1040, 1, {}, ImmutableMap$Builder); -var Lcom_google_common_collect_ImmutableMap$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/Builder', 1040); -defineClass(2000, 1981, $intern_30); -_.iterator_0 = function iterator_25(){ - var entryIterator; - return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); -} -; -_.createAsList = function createAsList_0(){ - return new IndexedImmutableSet$1(this); -} -; -_.forEach_0 = function forEach_8(consumer){ - var i, n; - checkNotNull(consumer); - n = this.size_1(); - for (i = 0; i < n; i++) { - consumer.accept(castTo($asList($entrySet_1(this.map_0)).get_0(i), 42).getKey()); - } -} -; -_.iterator_1 = function iterator_24(){ - var list; - return (list = this.asList , !list?(this.asList = new IndexedImmutableSet$1(this)):list).iterator_1(); -} -; -_.spliterator_0 = function spliterator_20(){ - return indexed(this.size_1(), 1296, new IndexedImmutableSet$0methodref$get$Type(this)); -} -; -var Lcom_google_common_collect_IndexedImmutableSet_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet', 2000); -function $get_6(this$static, index_0){ - return castTo($asList($entrySet_1(this$static.map_0)).get_0(index_0), 42).getKey(); -} - -function ImmutableMapKeySet(map_0){ - $clinit_ImmutableCollection(); - this.map_0 = map_0; -} - -defineClass(1180, 2000, $intern_30, ImmutableMapKeySet); -_.iterator_0 = function iterator_27(){ - var entryIterator; - return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); -} -; -_.contains = function contains_17(object){ - return this.map_0.containsKey(object); -} -; -_.forEach_0 = function forEach_9(action){ - checkNotNull(action); - $forEach_2(this.map_0, new ImmutableMapKeySet$lambda$0$Type(action)); -} -; -_.iterator_1 = function iterator_26(){ - var entryIterator; - return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); -} -; -_.size_1 = function size_21(){ - return this.map_0.size_1(); -} -; -_.spliterator_0 = function spliterator_21(){ - return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMap$2methodref$getKey$Type); -} -; -var Lcom_google_common_collect_ImmutableMapKeySet_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet', 1180); -function ImmutableMapKeySet$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(1181, 1, {}, ImmutableMapKeySet$lambda$0$Type); -_.accept_1 = function accept_7(arg0, arg1){ - $clinit_ImmutableCollection(); - this.action_0.accept(arg0); -} -; -var Lcom_google_common_collect_ImmutableMapKeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet/lambda$0$Type', 1181); -function ImmutableMapValues(map_0){ - $clinit_ImmutableCollection(); - this.map_0 = map_0; -} - -defineClass(1178, 1980, $intern_25, ImmutableMapValues); -_.iterator_0 = function iterator_29(){ - return new ImmutableMapValues$1(this); -} -; -_.contains = function contains_18(object){ - return object != null && contains_19(new ImmutableMapValues$1(this), object); -} -; -_.iterator_1 = function iterator_28(){ - return new ImmutableMapValues$1(this); -} -; -_.size_1 = function size_22(){ - return this.map_0.size_1(); -} -; -_.spliterator_0 = function spliterator_22(){ - return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMapValues$0methodref$getValue$Type); -} -; -var Lcom_google_common_collect_ImmutableMapValues_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues', 1178); -function ImmutableMapValues$0methodref$getValue$Type(){ -} - -defineClass(1179, 1, {}, ImmutableMapValues$0methodref$getValue$Type); -_.apply_0 = function apply_10(arg0){ - return castTo(arg0, 42).getValue(); -} -; -var Lcom_google_common_collect_ImmutableMapValues$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/0methodref$getValue$Type', 1179); -function ImmutableMapValues$1(this$0){ - this.this$01 = this$0; - this.entryItr = $entrySet_1(this.this$01.map_0).iterator_1(); -} - -defineClass(626, 198, $intern_3, ImmutableMapValues$1); -_.hasNext_0 = function hasNext_7(){ - return this.entryItr.hasNext_0(); -} -; -_.next_1 = function next_8(){ - return castTo(this.entryItr.next_1(), 42).getValue(); -} -; -var Lcom_google_common_collect_ImmutableMapValues$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/1', 626); -function IndexedImmutableSet$0methodref$get$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1182, 1, {}, IndexedImmutableSet$0methodref$get$Type); -_.apply_2 = function apply_11(arg0){ - return $get_6(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_IndexedImmutableSet$0methodref$get$Type_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/0methodref$get$Type', 1182); -function IndexedImmutableSet$1(this$0){ - $clinit_ImmutableList(); - this.this$01 = this$0; -} - -defineClass(752, 1999, $intern_26, IndexedImmutableSet$1); -_.delegateCollection = function delegateCollection(){ - return this.this$01; -} -; -_.get_0 = function get_20(index_0){ - return $get_6(this.this$01, index_0); -} -; -_.size_1 = function size_23(){ - return this.this$01.map_0.size_1(); -} -; -var Lcom_google_common_collect_IndexedImmutableSet$1_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/1', 752); -function addAll_6(addTo, elementsToAdd){ - var c; - if (instanceOf(elementsToAdd, 14)) { - c = castTo(elementsToAdd, 14); - return addTo.addAll(c); - } - return addAll_7(addTo, castTo(checkNotNull(elementsToAdd), 20).iterator_0()); -} - -function all_0(iterable, predicate){ - return all_1(iterable.iterator_0(), predicate); -} - -function any_0(iterable, predicate){ - return indexOf_2(iterable.iterator_0(), predicate) != -1; -} - -function concat_0(inputs){ - return checkNotNull(inputs) , new FluentIterable$2(inputs); -} - -function filter_0(unfiltered, retainIfTrue){ - checkNotNull(unfiltered); - checkNotNull(retainIfTrue); - return new Iterables$4(unfiltered, retainIfTrue); -} - -function get_21(iterable){ - checkNotNull(iterable); - return get_22(new Iterators$ConcatenatedIterator(transform_2(iterable.val$inputs1.iterator_0(), new Iterables$10))); -} - -function getLast(iterable){ - var list; - if (iterable) { - list = iterable; - if (list.isEmpty()) { - throw toJs(new NoSuchElementException); - } - return list.get_0(list.size_1() - 1); - } - return getLast_0(iterable.iterator_0()); -} - -function isEmpty_13(iterable){ - if (instanceOf(iterable, 14)) { - return castTo(iterable, 14).isEmpty(); - } - return !iterable.iterator_0().hasNext_0(); -} - -function transform_1(fromIterable, function_0){ - checkNotNull(fromIterable); - checkNotNull(function_0); - return new Iterables$5(fromIterable, function_0); -} - -function Iterables$10(){ -} - -defineClass(44, 1, {}, Iterables$10); -_.apply_0 = function apply_12(iterable){ - return castTo(iterable, 20).iterator_0(); -} -; -_.equals_0 = function equals_23(other){ - return this === other; -} -; -var Lcom_google_common_collect_Iterables$10_2_classLit = createForClass('com.google.common.collect', 'Iterables/10', 44); -function $iterator_0(this$static){ - return filter_1(this$static.val$unfiltered1.iterator_0(), this$static.val$retainIfTrue2); -} - -function Iterables$4(val$unfiltered, val$retainIfTrue){ - this.val$unfiltered1 = val$unfiltered; - this.val$retainIfTrue2 = val$retainIfTrue; - FluentIterable.call(this); -} - -function lambda$0_0(retainIfTrue_0, action_1, a_2){ - retainIfTrue_0.test_0(a_2) && action_1.accept(a_2); -} - -defineClass(1042, 537, $intern_23, Iterables$4); -_.forEach_0 = function forEach_10(action){ - checkNotNull(action); - this.val$unfiltered1.forEach_0(new Iterables$4$lambda$0$Type(this.val$retainIfTrue2, action)); -} -; -_.iterator_0 = function iterator_30(){ - return $iterator_0(this); -} -; -var Lcom_google_common_collect_Iterables$4_2_classLit = createForClass('com.google.common.collect', 'Iterables/4', 1042); -function Iterables$4$lambda$0$Type(retainIfTrue_0, action_1){ - this.retainIfTrue_0 = retainIfTrue_0; - this.action_1 = action_1; -} - -defineClass(1043, 1, $intern_19, Iterables$4$lambda$0$Type); -_.accept = function accept_8(arg0){ - lambda$0_0(this.retainIfTrue_0, this.action_1, arg0); -} -; -var Lcom_google_common_collect_Iterables$4$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/4/lambda$0$Type', 1043); -function Iterables$5(val$fromIterable, val$function){ - this.val$fromIterable1 = val$fromIterable; - this.val$function2 = val$function; - FluentIterable.call(this); -} - -defineClass(1044, 537, $intern_23, Iterables$5); -_.forEach_0 = function forEach_11(action){ - checkNotNull(action); - $forEach_0(this.val$fromIterable1, new Iterables$5$lambda$0$Type(action, this.val$function2)); -} -; -_.iterator_0 = function iterator_31(){ - return transform_2(new AbstractEList$EIterator(this.val$fromIterable1), this.val$function2); -} -; -var Lcom_google_common_collect_Iterables$5_2_classLit = createForClass('com.google.common.collect', 'Iterables/5', 1044); -function Iterables$5$lambda$0$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1045, 1, $intern_19, Iterables$5$lambda$0$Type); -_.accept = function accept_9(arg0){ - this.action_0.accept($apply_27(arg0)); -} -; -var Lcom_google_common_collect_Iterables$5$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/5/lambda$0$Type', 1045); -function addAll_7(addTo, iterator){ - var wasModified; - checkNotNull(addTo); - checkNotNull(iterator); - wasModified = false; - while (iterator.hasNext_0()) { - wasModified = wasModified | addTo.add_2(iterator.next_1()); - } - return wasModified; -} - -function advance(iterator){ - var i; - checkNotNull(iterator); - checkArgument_0(true, 'numberToAdvance must be nonnegative'); - for (i = 0; i < 0 && $hasNext_1(iterator); i++) { - $next_0(iterator); - } - return i; -} - -function all_1(iterator, predicate){ - var element; - checkNotNull(predicate); - while (iterator.hasNext_0()) { - element = iterator.next_1(); - if (!$apply_18(castTo(element, 10))) { - return false; - } - } - return true; -} - -function clear_20(iterator){ - checkNotNull(iterator); - while (iterator.hasNext_0()) { - iterator.next_1(); - iterator.remove(); - } -} - -function contains_19(iterator, element){ - if (element == null) { - while (iterator.entryItr.hasNext_0()) { - if (castTo(iterator.entryItr.next_1(), 42).getValue() == null) { - return true; - } - } - } - else { - while (iterator.entryItr.hasNext_0()) { - if (equals_Ljava_lang_Object__Z__devirtual$(element, castTo(iterator.entryItr.next_1(), 42).getValue())) { - return true; - } - } - } - return false; -} - -function elementsEqual(iterator1, iterator2){ - var o1, o2; - while (iterator1.hasNext_0()) { - if (!iterator2.hasNext_0()) { - return false; - } - o1 = iterator1.next_1(); - o2 = iterator2.next_1(); - if (!(maskUndefined(o1) === maskUndefined(o2) || o1 != null && equals_Ljava_lang_Object__Z__devirtual$(o1, o2))) { - return false; - } - } - return !iterator2.hasNext_0(); -} - -function filter_1(unfiltered, retainIfTrue){ - checkNotNull(unfiltered); - checkNotNull(retainIfTrue); - return new Iterators$5(unfiltered, retainIfTrue); -} - -function get_22(iterator){ - var skipped; - skipped = advance(iterator); - if (!$hasNext_1(iterator)) { - throw toJs(new IndexOutOfBoundsException_0('position (0) must be less than the number of elements that remained (' + skipped + ')')); - } - return $next_0(iterator); -} - -function getLast_0(iterator){ - var current; - while (true) { - current = iterator.next_1(); - if (!iterator.hasNext_0()) { - return current; - } - } -} - -function getLast_1(iterator){ - return $hasNext_5(iterator.val$edgesIter2)?getLast_0(iterator):null; -} - -function getNext(iterator){ - return iterator.hasNext_0()?iterator.next_1():null; -} - -function getOnlyElement(iterator){ - var first, i, sb; - first = iterator.next_1(); - if (!iterator.hasNext_0()) { - return first; - } - sb = $append_10($append_11(new StringBuilder, 'expected one element but was: <'), first); - for (i = 0; i < 4 && iterator.hasNext_0(); i++) { - $append_10((sb.string += ', ' , sb), iterator.next_1()); - } - iterator.hasNext_0() && (sb.string += ', ...' , sb); - sb.string += '>'; - throw toJs(new IllegalArgumentException_0(sb.string)); -} - -function indexOf_2(iterator, predicate){ - var current, i; - checkNotNull_0(predicate, 'predicate'); - for (i = 0; iterator.hasNext_0(); i++) { - current = iterator.next_1(); - if (predicate.apply_1(current)) { - return i; - } - } - return -1; -} - -function size_24(iterator){ - var count; - count = 0; - while (iterator.hasNext_0()) { - iterator.next_1(); - count = add_20(count, 1); - } - return saturatedCast(count); -} - -function toString_25(iterator){ - var first, sb; - sb = $append_5(new StringBuilder, 91); - first = true; - while (iterator.hasNext_0()) { - first || (sb.string += ', ' , sb); - first = false; - $append_10(sb, iterator.next_1()); - } - return (sb.string += ']' , sb).string; -} - -function transform_2(fromIterator, function_0){ - checkNotNull(function_0); - return new Iterators$6(fromIterator, function_0); -} - -function unmodifiableIterator(iterator){ - var result; - checkNotNull(iterator); - if (instanceOf(iterator, 198)) { - result = castTo(iterator, 198); - return result; - } - return new Iterators$1(iterator); -} - -function Iterators$1(val$iterator){ - this.val$iterator1 = val$iterator; -} - -defineClass(1071, 198, $intern_3, Iterators$1); -_.hasNext_0 = function hasNext_8(){ - return this.val$iterator1.hasNext_0(); -} -; -_.next_1 = function next_9(){ - return this.val$iterator1.next_1(); -} -; -var Lcom_google_common_collect_Iterators$1_2_classLit = createForClass('com.google.common.collect', 'Iterators/1', 1071); -function Iterators$5(val$unfiltered, val$retainIfTrue){ - this.val$unfiltered1 = val$unfiltered; - this.val$retainIfTrue2 = val$retainIfTrue; -} - -defineClass(1072, 699, $intern_3, Iterators$5); -_.computeNext = function computeNext(){ - var element; - while (this.val$unfiltered1.hasNext_0()) { - element = this.val$unfiltered1.next_1(); - if (this.val$retainIfTrue2.apply_1(element)) { - return element; - } - } - return this.state = 2 , null; -} -; -var Lcom_google_common_collect_Iterators$5_2_classLit = createForClass('com.google.common.collect', 'Iterators/5', 1072); -function TransformedIterator(backingIterator){ - this.backingIterator = castTo(checkNotNull(backingIterator), 47); -} - -defineClass(487, 1, $intern_6); -_.forEachRemaining = function forEachRemaining_8(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_9(){ - return this.backingIterator.hasNext_0(); -} -; -_.next_1 = function next_10(){ - return this.transform_0(this.backingIterator.next_1()); -} -; -_.remove = function remove_30(){ - this.backingIterator.remove(); -} -; -var Lcom_google_common_collect_TransformedIterator_2_classLit = createForClass('com.google.common.collect', 'TransformedIterator', 487); -function Iterators$6($anonymous0, val$function){ - this.val$function2 = val$function; - TransformedIterator.call(this, $anonymous0); -} - -defineClass(1073, 487, $intern_6, Iterators$6); -_.transform_0 = function transform_3(from){ - return this.val$function2.apply_0(from); -} -; -var Lcom_google_common_collect_Iterators$6_2_classLit = createForClass('com.google.common.collect', 'Iterators/6', 1073); -function Iterators$9(val$value){ - this.val$value1 = val$value; -} - -defineClass(717, 198, $intern_3, Iterators$9); -_.hasNext_0 = function hasNext_10(){ - return !this.done_0; -} -; -_.next_1 = function next_11(){ - if (this.done_0) { - throw toJs(new NoSuchElementException); - } - this.done_0 = true; - return this.val$value1; -} -; -_.done_0 = false; -var Lcom_google_common_collect_Iterators$9_2_classLit = createForClass('com.google.common.collect', 'Iterators/9', 717); -function $clinit_Iterators$ArrayItr(){ - $clinit_Iterators$ArrayItr = emptyMethod; - EMPTY_1 = new Iterators$ArrayItr(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1)); -} - -function Iterators$ArrayItr(array){ - AbstractIndexedListIterator_0.call(this, 0, 0); - this.array = array; - this.offset = 0; -} - -defineClass(1070, 386, $intern_4, Iterators$ArrayItr); -_.get_0 = function get_23(index_0){ - return this.array[this.offset + index_0]; -} -; -_.offset = 0; -var EMPTY_1; -var Lcom_google_common_collect_Iterators$ArrayItr_2_classLit = createForClass('com.google.common.collect', 'Iterators/ArrayItr', 1070); -function $getTopMetaIterator(this$static){ - while (!this$static.topMetaIterator || !this$static.topMetaIterator.hasNext_0()) { - if (!!this$static.metaIterators && !$isEmpty(this$static.metaIterators)) { - this$static.topMetaIterator = castTo($removeFirst(this$static.metaIterators), 47); - } - else { - return null; - } - } - return this$static.topMetaIterator; -} - -function $hasNext_1(this$static){ - var topConcat; - while (!castTo(checkNotNull(this$static.iterator), 47).hasNext_0()) { - this$static.topMetaIterator = $getTopMetaIterator(this$static); - if (!this$static.topMetaIterator) { - return false; - } - this$static.iterator = castTo(this$static.topMetaIterator.next_1(), 47); - if (instanceOf(this$static.iterator, 39)) { - topConcat = castTo(this$static.iterator, 39); - this$static.iterator = topConcat.iterator; - !this$static.metaIterators && (this$static.metaIterators = new ArrayDeque); - $addFirst(this$static.metaIterators, this$static.topMetaIterator); - if (topConcat.metaIterators) { - while (!$isEmpty(topConcat.metaIterators)) { - $addFirst(this$static.metaIterators, castTo($removeLast(topConcat.metaIterators), 47)); - } - } - this$static.topMetaIterator = topConcat.topMetaIterator; - } - } - return true; -} - -function $next_0(this$static){ - if ($hasNext_1(this$static)) { - this$static.toRemove = this$static.iterator; - return this$static.iterator.next_1(); - } - else { - throw toJs(new NoSuchElementException); - } -} - -function Iterators$ConcatenatedIterator(metaIterator){ - this.iterator = ($clinit_Iterators$ArrayItr() , EMPTY_1); - this.topMetaIterator = castTo(checkNotNull(metaIterator), 47); -} - -defineClass(39, 1, {39:1, 47:1}, Iterators$ConcatenatedIterator); -_.forEachRemaining = function forEachRemaining_9(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_11(){ - return $hasNext_1(this); -} -; -_.next_1 = function next_12(){ - return $next_0(this); -} -; -_.remove = function remove_31(){ - checkState_0(!!this.toRemove); - this.toRemove.remove(); - this.toRemove = null; -} -; -var Lcom_google_common_collect_Iterators$ConcatenatedIterator_2_classLit = createForClass('com.google.common.collect', 'Iterators/ConcatenatedIterator', 39); -function $compareTo(this$static, other){ - return this$static.ordinal - other.ordinal; -} - -function $name(this$static){ - return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; -} - -function $toString_3(this$static){ - return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; -} - -function Enum(name_0, ordinal){ - this.name_0 = name_0; - this.ordinal = ordinal; -} - -function createValueOfMap(enumConstants){ - var result, value_0, value$array, value$index, value$max; - result = {}; - for (value$array = enumConstants , value$index = 0 , value$max = value$array.length; value$index < value$max; ++value$index) { - value_0 = value$array[value$index]; - result[':' + (value_0.name_0 != null?value_0.name_0:'' + value_0.ordinal)] = value_0; - } - return result; -} - -function valueOf(map_0, name_0){ - var result; - checkCriticalNotNull(name_0); - result = map_0[':' + name_0]; - checkCriticalArgument_1(!!result, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [name_0])); - return result; -} - -function valueOf_0(enumType, name_0){ - var enumValueOfFunc; - enumValueOfFunc = (checkCriticalNotNull(enumType) , enumType).enumValueOfFunc; - checkCriticalArgument(!!enumValueOfFunc); - checkCriticalNotNull(name_0); - return enumValueOfFunc(name_0); -} - -defineClass(22, 1, {3:1, 35:1, 22:1}); -_.compareTo_0 = function compareTo_3(other){ - return $compareTo(this, castTo(other, 22)); -} -; -_.equals_0 = function equals_24(other){ - return this === other; -} -; -_.hashCode_1 = function hashCode_26(){ - return getHashCode_0(this); -} -; -_.toString_0 = function toString_26(){ - return $toString_3(this); -} -; -_.ordinal = 0; -var Ljava_lang_Enum_2_classLit = createForClass('java.lang', 'Enum', 22); -function $clinit_Iterators$EmptyModifiableIterator(){ - $clinit_Iterators$EmptyModifiableIterator = emptyMethod; - INSTANCE_2 = new Iterators$EmptyModifiableIterator; -} - -function Iterators$EmptyModifiableIterator(){ - Enum.call(this, 'INSTANCE', 0); -} - -function valueOf_1(name_0){ - $clinit_Iterators$EmptyModifiableIterator(); - return valueOf(($clinit_Iterators$EmptyModifiableIterator$Map() , $MAP), name_0); -} - -function values_12(){ - $clinit_Iterators$EmptyModifiableIterator(); - return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]); -} - -defineClass(538, 22, {538:1, 3:1, 35:1, 22:1, 47:1}, Iterators$EmptyModifiableIterator); -_.forEachRemaining = function forEachRemaining_10(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_12(){ - return false; -} -; -_.next_1 = function next_13(){ - throw toJs(new NoSuchElementException); -} -; -_.remove = function remove_32(){ - checkState_0(false); -} -; -var INSTANCE_2; -var Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit = createForEnum('com.google.common.collect', 'Iterators/EmptyModifiableIterator', 538, Ljava_lang_Enum_2_classLit, values_12, valueOf_1); -function $clinit_Iterators$EmptyModifiableIterator$Map(){ - $clinit_Iterators$EmptyModifiableIterator$Map = emptyMethod; - $MAP = createValueOfMap(($clinit_Iterators$EmptyModifiableIterator() , stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]))); -} - -var $MAP; -function LinkedHashMultimapGwtSerializationDependencies(map_0){ - AbstractSetMultimap.call(this, map_0); -} - -defineClass(1834, 619, $intern_5); -var Lcom_google_common_collect_LinkedHashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimapGwtSerializationDependencies', 1834); -function LinkedHashMultimap(){ - LinkedHashMultimapGwtSerializationDependencies.call(this, new LinkedHashMap_0(capacity_0(16))); - checkNonnegative(2, 'expectedValuesPerKey'); - this.valueSetCapacity = 2; - this.multimapHeaderEntry = new LinkedHashMultimap$ValueEntry(null, null, 0, null); - succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); -} - -function succeedsInMultimap(pred, succ){ - pred.successorInMultimap = succ; - succ.predecessorInMultimap = pred; -} - -function succeedsInValueSet(pred, succ){ - pred.setSuccessorInValueSet(succ); - succ.setPredecessorInValueSet(pred); -} - -defineClass(1835, 1834, $intern_5, LinkedHashMultimap); -_.createCollection = function createCollection_7(){ - return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); -} -; -_.clear_0 = function clear_21(){ - $clear(this); - succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); -} -; -_.createCollection_1 = function createCollection_8(){ - return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); -} -; -_.createCollection_0 = function createCollection_9(key){ - return new LinkedHashMultimap$ValueSet(this, key, this.valueSetCapacity); -} -; -_.entryIterator = function entryIterator_4(){ - return new LinkedHashMultimap$1(this); -} -; -_.entrySpliterator = function entrySpliterator_3(){ - var result; - return new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17); -} -; -_.keySet_0 = function keySet_12(){ - var result; - return result = this.keySet , !result?(this.keySet = new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result; -} -; -_.valueIterator_0 = function valueIterator_0(){ - return new Maps$2(new LinkedHashMultimap$1(this)); -} -; -_.valueSpliterator = function valueSpliterator_0(){ - var result; - return map_2(new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17), new LinkedHashMultimap$0methodref$getValue$Type); -} -; -_.valueSetCapacity = 2; -var Lcom_google_common_collect_LinkedHashMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap', 1835); -function LinkedHashMultimap$0methodref$getValue$Type(){ -} - -defineClass(1838, 1, {}, LinkedHashMultimap$0methodref$getValue$Type); -_.apply_0 = function apply_13(arg0){ - return castTo(arg0, 42).getValue(); -} -; -var Lcom_google_common_collect_LinkedHashMultimap$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/0methodref$getValue$Type', 1838); -function $next_1(this$static){ - var result; - if (this$static.nextEntry == this$static.this$01.multimapHeaderEntry) { - throw toJs(new NoSuchElementException); - } - result = this$static.nextEntry; - this$static.toRemove = result; - this$static.nextEntry = this$static.nextEntry.successorInMultimap; - return result; -} - -function LinkedHashMultimap$1(this$0){ - this.this$01 = this$0; - this.nextEntry = this.this$01.multimapHeaderEntry.successorInMultimap; -} - -defineClass(824, 1, $intern_6, LinkedHashMultimap$1); -_.forEachRemaining = function forEachRemaining_11(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_14(){ - return $next_1(this); -} -; -_.hasNext_0 = function hasNext_13(){ - return this.nextEntry != this.this$01.multimapHeaderEntry; -} -; -_.remove = function remove_33(){ - checkState_0(!!this.toRemove); - $remove_0(this.this$01, this.toRemove.key, this.toRemove.value_0); - this.toRemove = null; -} -; -var Lcom_google_common_collect_LinkedHashMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/1', 824); -function LinkedHashMultimap$ValueEntry(key, value_0, smearedValueHash, nextInValueBucket){ - ImmutableEntry.call(this, key, value_0); - this.smearedValueHash = smearedValueHash; - this.nextInValueBucket = nextInValueBucket; -} - -defineClass(330, 238, {345:1, 238:1, 330:1, 2020:1, 3:1, 42:1}, LinkedHashMultimap$ValueEntry); -_.getSuccessorInValueSet = function getSuccessorInValueSet(){ - return this.successorInValueSet; -} -; -_.setPredecessorInValueSet = function setPredecessorInValueSet(entry){ - this.predecessorInValueSet = entry; -} -; -_.setSuccessorInValueSet = function setSuccessorInValueSet(entry){ - this.successorInValueSet = entry; -} -; -_.smearedValueHash = 0; -var Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueEntry', 330); -function $rehashIfNecessary_0(this$static){ - var bucket, entry, hashTable, mask, valueEntry; - if (needsResizing(this$static.size_0, this$static.hashTable.length)) { - hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, this$static.hashTable.length * 2, 0, 1); - this$static.hashTable = hashTable; - mask = hashTable.length - 1; - for (entry = this$static.firstEntry; entry != this$static; entry = entry.getSuccessorInValueSet()) { - valueEntry = castTo(entry, 330); - bucket = valueEntry.smearedValueHash & mask; - valueEntry.nextInValueBucket = hashTable[bucket]; - hashTable[bucket] = valueEntry; - } - } -} - -function $remove_3(this$static, o){ - var bucket, entry, prev, smearedHash; - smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); - bucket = smearedHash & this$static.hashTable.length - 1; - prev = null; - for (entry = this$static.hashTable[bucket]; entry; prev = entry , entry = entry.nextInValueBucket) { - if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { - !prev?(this$static.hashTable[bucket] = entry.nextInValueBucket):(prev.nextInValueBucket = entry.nextInValueBucket); - succeedsInValueSet(entry.predecessorInValueSet, entry.successorInValueSet); - succeedsInMultimap(entry.predecessorInMultimap, entry.successorInMultimap); - --this$static.size_0; - ++this$static.modCount; - return true; - } - } - return false; -} - -function LinkedHashMultimap$ValueSet(this$0, key, expectedValues){ - var hashTable, tableSize; - this.this$01 = this$0; - this.key = key; - this.firstEntry = this; - this.lastEntry = this; - tableSize = closedTableSize(expectedValues); - hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, tableSize, 0, 1); - this.hashTable = hashTable; -} - -defineClass(1836, 1970, {2020:1, 20:1, 28:1, 14:1, 21:1}, LinkedHashMultimap$ValueSet); -_.add_2 = function add_10(value_0){ - var bucket, entry, newEntry, rowHead, smearedHash; - smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - bucket = smearedHash & this.hashTable.length - 1; - rowHead = this.hashTable[bucket]; - for (entry = rowHead; entry; entry = entry.nextInValueBucket) { - if (entry.smearedValueHash == smearedHash && equal(entry.value_0, value_0)) { - return false; - } - } - newEntry = new LinkedHashMultimap$ValueEntry(this.key, value_0, smearedHash, rowHead); - succeedsInValueSet(this.lastEntry, newEntry); - newEntry.successorInValueSet = this; - this.lastEntry = newEntry; - succeedsInMultimap(this.this$01.multimapHeaderEntry.predecessorInMultimap, newEntry); - succeedsInMultimap(newEntry, this.this$01.multimapHeaderEntry); - this.hashTable[bucket] = newEntry; - ++this.size_0; - ++this.modCount; - $rehashIfNecessary_0(this); - return true; -} -; -_.clear_0 = function clear_22(){ - var entry, valueEntry; - fill_2(this.hashTable, null); - this.size_0 = 0; - for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { - valueEntry = castTo(entry, 330); - succeedsInMultimap(valueEntry.predecessorInMultimap, valueEntry.successorInMultimap); - } - this.firstEntry = this; - this.lastEntry = this; - ++this.modCount; -} -; -_.contains = function contains_20(o){ - var entry, smearedHash; - smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); - for (entry = this.hashTable[smearedHash & this.hashTable.length - 1]; entry; entry = entry.nextInValueBucket) { - if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { - return true; - } - } - return false; -} -; -_.forEach_0 = function forEach_12(action){ - var entry; - checkNotNull(action); - for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { - action.accept(castTo(entry, 330).value_0); - } -} -; -_.getSuccessorInValueSet = function getSuccessorInValueSet_0(){ - return this.firstEntry; -} -; -_.iterator_0 = function iterator_32(){ - return new LinkedHashMultimap$ValueSet$1(this); -} -; -_.remove_1 = function remove_34(o){ - return $remove_3(this, o); -} -; -_.setPredecessorInValueSet = function setPredecessorInValueSet_0(entry){ - this.lastEntry = entry; -} -; -_.setSuccessorInValueSet = function setSuccessorInValueSet_0(entry){ - this.firstEntry = entry; -} -; -_.size_1 = function size_25(){ - return this.size_0; -} -; -_.modCount = 0; -_.size_0 = 0; -var Lcom_google_common_collect_LinkedHashMultimap$ValueSet_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet', 1836); -function $checkForComodification(this$static){ - if (this$static.this$11.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function LinkedHashMultimap$ValueSet$1(this$1){ - this.this$11 = this$1; - this.nextEntry = this.this$11.firstEntry; - this.expectedModCount = this.this$11.modCount; -} - -defineClass(1837, 1, $intern_6, LinkedHashMultimap$ValueSet$1); -_.forEachRemaining = function forEachRemaining_12(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_14(){ - return $checkForComodification(this) , this.nextEntry != this.this$11; -} -; -_.next_1 = function next_15(){ - var entry, result; - $checkForComodification(this); - if (this.nextEntry == this.this$11) { - throw toJs(new NoSuchElementException); - } - entry = castTo(this.nextEntry, 330); - result = entry.value_0; - this.toRemove = entry; - this.nextEntry = entry.successorInValueSet; - return result; -} -; -_.remove = function remove_35(){ - $checkForComodification(this); - checkState_0(!!this.toRemove); - $remove_3(this.this$11, this.toRemove.value_0); - this.expectedModCount = this.this$11.modCount; - this.toRemove = null; -} -; -_.expectedModCount = 0; -var Lcom_google_common_collect_LinkedHashMultimap$ValueSet$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet/1', 1837); -function $addNode(this$static, key, value_0, nextSibling){ - var keyList, keyTail, node; - node = new LinkedListMultimap$Node(key, value_0); - if (!this$static.head) { - this$static.head = this$static.tail = node; - $put_6(this$static.keyToKeyList, key, new LinkedListMultimap$KeyList(node)); - ++this$static.modCount; - } - else if (!nextSibling) { - this$static.tail.next_0 = node; - node.previous = this$static.tail; - this$static.tail = node; - keyList = castTo($get_10(this$static.keyToKeyList, key), 283); - if (!keyList) { - $put_6(this$static.keyToKeyList, key, keyList = new LinkedListMultimap$KeyList(node)); - ++this$static.modCount; - } - else { - ++keyList.count; - keyTail = keyList.tail; - keyTail.nextSibling = node; - node.previousSibling = keyTail; - keyList.tail = node; - } - } - else { - keyList = castTo($get_10(this$static.keyToKeyList, key), 283); - ++keyList.count; - node.previous = nextSibling.previous; - node.previousSibling = nextSibling.previousSibling; - node.next_0 = nextSibling; - node.nextSibling = nextSibling; - !nextSibling.previousSibling?(castTo($get_10(this$static.keyToKeyList, key), 283).head = node):(nextSibling.previousSibling.nextSibling = node); - !nextSibling.previous?(this$static.head = node):(nextSibling.previous.next_0 = node); - nextSibling.previous = node; - nextSibling.previousSibling = node; - } - ++this$static.size_0; - return node; -} - -function $clear_3(this$static){ - this$static.head = null; - this$static.tail = null; - $reset(this$static.keyToKeyList); - this$static.size_0 = 0; - ++this$static.modCount; -} - -function $containsKey_1(this$static, key){ - return $containsKey_3(this$static.keyToKeyList, key); -} - -function $removeAll_2(this$static, key){ - var oldValues; - oldValues = unmodifiableList(newArrayList_0(new LinkedListMultimap$ValueForKeyIterator(this$static, key))); - clear_20(new LinkedListMultimap$ValueForKeyIterator(this$static, key)); - return oldValues; -} - -function $removeNode(this$static, node){ - var keyList; - node.previous?(node.previous.next_0 = node.next_0):(this$static.head = node.next_0); - node.next_0?(node.next_0.previous = node.previous):(this$static.tail = node.previous); - if (!node.previousSibling && !node.nextSibling) { - keyList = castTo($remove_6(this$static.keyToKeyList, node.key), 283); - keyList.count = 0; - ++this$static.modCount; - } - else { - keyList = castTo($get_10(this$static.keyToKeyList, node.key), 283); - --keyList.count; - !node.previousSibling?(keyList.head = node.nextSibling):(node.previousSibling.nextSibling = node.nextSibling); - !node.nextSibling?(keyList.tail = node.previousSibling):(node.nextSibling.previousSibling = node.previousSibling); - } - --this$static.size_0; -} - -function LinkedListMultimap(){ - this.keyToKeyList = new HashMap_0(capacity_0(12)); -} - -function checkElement(node){ - if (!node) { - throw toJs(new NoSuchElementException); - } -} - -defineClass(766, 1986, $intern_5, LinkedListMultimap); -_.asMap_0 = function asMap_4(){ - var result; - return result = this.asMap , !result?(this.asMap = new Multimaps$AsMap(this)):result; -} -; -_.equals_0 = function equals_25(object){ - return equalsImpl_1(this, object); -} -; -_.get_1 = function get_24(key){ - return new LinkedListMultimap$1(this, key); -} -; -_.removeAll = function removeAll_6(key){ - return $removeAll_2(this, key); -} -; -_.clear_0 = function clear_23(){ - $clear_3(this); -} -; -_.containsKey = function containsKey_7(key){ - return $containsKey_1(this, key); -} -; -_.createAsMap = function createAsMap_0(){ - return new Multimaps$AsMap(this); -} -; -_.createKeySet = function createKeySet_8(){ - return new LinkedListMultimap$1KeySetImpl(this); -} -; -_.get_2 = function get_25(key){ - return new LinkedListMultimap$1(this, key); -} -; -_.isEmpty = function isEmpty_14(){ - return !this.head; -} -; -_.removeAll_0 = function removeAll_7(key){ - return $removeAll_2(this, key); -} -; -_.size_1 = function size_26(){ - return this.size_0; -} -; -_.modCount = 0; -_.size_0 = 0; -var Lcom_google_common_collect_LinkedListMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap', 766); -function $equals_2(this$static, o){ - var elem, elem$iterator, elemOther, iterOther, other; - if (maskUndefined(o) === maskUndefined(this$static)) { - return true; - } - if (!instanceOf(o, 15)) { - return false; - } - other = castTo(o, 15); - if (this$static.size_1() != other.size_1()) { - return false; - } - iterOther = other.iterator_0(); - for (elem$iterator = this$static.iterator_0(); elem$iterator.hasNext_0();) { - elem = elem$iterator.next_1(); - elemOther = iterOther.next_1(); - if (!(maskUndefined(elem) === maskUndefined(elemOther) || elem != null && equals_Ljava_lang_Object__Z__devirtual$(elem, elemOther))) { - return false; - } - } - return true; -} - -function $indexOf(this$static, toFind){ - var i, n; - for (i = 0 , n = this$static.size_1(); i < n; ++i) { - if (equals_57(toFind, this$static.get_0(i))) { - return i; - } - } - return -1; -} - -defineClass(52, 28, $intern_37); -_.sort_0 = function sort_2(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_23(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.add_3 = function add_11(index_0, element){ - throw toJs(new UnsupportedOperationException_0('Add not supported on this list')); -} -; -_.add_2 = function add_12(obj){ - this.add_3(this.size_1(), obj); - return true; -} -; -_.addAll_0 = function addAll_8(index_0, c){ - var changed, e, e$iterator; - checkCriticalNotNull(c); - changed = false; - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - this.add_3(index_0++, e); - changed = true; - } - return changed; -} -; -_.clear_0 = function clear_24(){ - this.removeRange(0, this.size_1()); -} -; -_.equals_0 = function equals_26(o){ - return $equals_2(this, o); -} -; -_.hashCode_1 = function hashCode_27(){ - return hashCode_48(this); -} -; -_.indexOf_0 = function indexOf_3(toFind){ - return $indexOf(this, toFind); -} -; -_.iterator_0 = function iterator_33(){ - return new AbstractList$IteratorImpl(this); -} -; -_.listIterator_0 = function listIterator_4(){ - return this.listIterator_1(0); -} -; -_.listIterator_1 = function listIterator_5(from){ - return new AbstractList$ListIteratorImpl(this, from); -} -; -_.remove_2 = function remove_36(index_0){ - throw toJs(new UnsupportedOperationException_0('Remove not supported on this list')); -} -; -_.removeRange = function removeRange(fromIndex, endIndex){ - var i, iter; - iter = this.listIterator_1(fromIndex); - for (i = fromIndex; i < endIndex; ++i) { - iter.next_1(); - iter.remove(); - } -} -; -_.set_2 = function set_5(index_0, o){ - throw toJs(new UnsupportedOperationException_0('Set not supported on this list')); -} -; -_.subList = function subList_5(fromIndex, toIndex){ - return new AbstractList$SubList(this, fromIndex, toIndex); -} -; -_.modCount = 0; -var Ljava_util_AbstractList_2_classLit = createForClass('java.util', 'AbstractList', 52); -function $add_0(this$static, index_0, element){ - var iter; - iter = this$static.listIterator_1(index_0); - iter.add_1(element); -} - -function $addAll_0(this$static, index_0, c){ - var e, e$iterator, iter, modified; - checkCriticalNotNull(c); - modified = false; - iter = this$static.listIterator_1(index_0); - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - iter.add_1(e); - modified = true; - } - return modified; -} - -function $get_7(this$static, index_0){ - var iter; - iter = this$static.listIterator_1(index_0); - try { - return iter.next_1(); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 109)) { - throw toJs(new IndexOutOfBoundsException_0("Can't get element " + index_0)); - } - else - throw toJs($e0); - } -} - -function $remove_4(this$static, index_0){ - var iter, old; - iter = this$static.listIterator_1(index_0); - try { - old = iter.next_1(); - iter.remove(); - return old; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 109)) { - throw toJs(new IndexOutOfBoundsException_0("Can't remove element " + index_0)); - } - else - throw toJs($e0); - } -} - -defineClass(1964, 52, $intern_37); -_.add_3 = function add_13(index_0, element){ - $add_0(this, index_0, element); -} -; -_.addAll_0 = function addAll_9(index_0, c){ - return $addAll_0(this, index_0, c); -} -; -_.get_0 = function get_26(index_0){ - return $get_7(this, index_0); -} -; -_.iterator_0 = function iterator_34(){ - return this.listIterator_1(0); -} -; -_.remove_2 = function remove_37(index_0){ - return $remove_4(this, index_0); -} -; -_.set_2 = function set_6(index_0, element){ - var iter, old; - iter = this.listIterator_1(index_0); - try { - old = iter.next_1(); - iter.set_1(element); - return old; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 109)) { - throw toJs(new IndexOutOfBoundsException_0("Can't set element " + index_0)); - } - else - throw toJs($e0); - } -} -; -var Ljava_util_AbstractSequentialList_2_classLit = createForClass('java.util', 'AbstractSequentialList', 1964); -function $listIterator_0(this$static, index_0){ - return new LinkedListMultimap$ValueForKeyIterator_0(this$static.this$01, this$static.val$key2, index_0); -} - -function LinkedListMultimap$1(this$0, val$key){ - this.this$01 = this$0; - this.val$key2 = val$key; -} - -defineClass(636, 1964, $intern_37, LinkedListMultimap$1); -_.listIterator_1 = function listIterator_6(index_0){ - return $listIterator_0(this, index_0); -} -; -_.size_1 = function size_27(){ - var keyList; - keyList = castTo($get_10(this.this$01.keyToKeyList, this.val$key2), 283); - return !keyList?0:keyList.count; -} -; -var Lcom_google_common_collect_LinkedListMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1', 636); -function LinkedListMultimap$1KeySetImpl(this$0){ - this.this$01 = this$0; -} - -defineClass(1297, 1970, $intern_10, LinkedListMultimap$1KeySetImpl); -_.contains = function contains_21(key){ - return $containsKey_1(this.this$01, key); -} -; -_.iterator_0 = function iterator_35(){ - return new LinkedListMultimap$DistinctKeyIterator(this.this$01); -} -; -_.remove_1 = function remove_38(o){ - return !$removeAll_2(this.this$01, o).list.isEmpty(); -} -; -_.size_1 = function size_28(){ - return $size_2(this.this$01.keyToKeyList); -} -; -var Lcom_google_common_collect_LinkedListMultimap$1KeySetImpl_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1KeySetImpl', 1297); -function $checkForConcurrentModification(this$static){ - if (this$static.this$01.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function LinkedListMultimap$DistinctKeyIterator(this$0){ - this.this$01 = this$0; - this.seenKeys = new HashSet_0(capacity_0($keySet(this.this$01).size_1())); - this.next_0 = this.this$01.head; - this.expectedModCount = this.this$01.modCount; -} - -defineClass(1296, 1, $intern_6, LinkedListMultimap$DistinctKeyIterator); -_.forEachRemaining = function forEachRemaining_13(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_15(){ - $checkForConcurrentModification(this); - return !!this.next_0; -} -; -_.next_1 = function next_16(){ - $checkForConcurrentModification(this); - checkElement(this.next_0); - this.current = this.next_0; - $add_6(this.seenKeys, this.current.key); - do { - this.next_0 = this.next_0.next_0; - } - while (!!this.next_0 && !$add_6(this.seenKeys, this.next_0.key)); - return this.current.key; -} -; -_.remove = function remove_39(){ - $checkForConcurrentModification(this); - checkState_0(!!this.current); - clear_20(new LinkedListMultimap$ValueForKeyIterator(this.this$01, this.current.key)); - this.current = null; - this.expectedModCount = this.this$01.modCount; -} -; -_.expectedModCount = 0; -var Lcom_google_common_collect_LinkedListMultimap$DistinctKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/DistinctKeyIterator', 1296); -function LinkedListMultimap$KeyList(firstNode){ - this.head = firstNode; - this.tail = firstNode; - firstNode.previousSibling = null; - firstNode.nextSibling = null; - this.count = 1; -} - -defineClass(283, 1, {283:1}, LinkedListMultimap$KeyList); -_.count = 0; -var Lcom_google_common_collect_LinkedListMultimap$KeyList_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/KeyList', 283); -function LinkedListMultimap$Node(key, value_0){ - this.key = key; - this.value_0 = value_0; -} - -defineClass(1295, 345, $intern_15, LinkedListMultimap$Node); -_.getKey = function getKey_3(){ - return this.key; -} -; -_.getValue = function getValue_5(){ - return this.value_0; -} -; -_.setValue = function setValue_6(newValue){ - var result; - result = this.value_0; - this.value_0 = newValue; - return result; -} -; -var Lcom_google_common_collect_LinkedListMultimap$Node_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/Node', 1295); -function $next_2(this$static){ - checkElement(this$static.next_0); - this$static.previous = this$static.current = this$static.next_0; - this$static.next_0 = this$static.next_0.nextSibling; - ++this$static.nextIndex; - return this$static.current.value_0; -} - -function $previous(this$static){ - checkElement(this$static.previous); - this$static.next_0 = this$static.current = this$static.previous; - this$static.previous = this$static.previous.previousSibling; - --this$static.nextIndex; - return this$static.current.value_0; -} - -function LinkedListMultimap$ValueForKeyIterator(this$0, key){ - var keyList; - this.this$01 = this$0; - this.key = key; - keyList = castTo($get_10(this$0.keyToKeyList, key), 283); - this.next_0 = !keyList?null:keyList.head; -} - -function LinkedListMultimap$ValueForKeyIterator_0(this$0, key, index_0){ - var keyList, size_0; - this.this$01 = this$0; - keyList = castTo($get_10(this$0.keyToKeyList, key), 283); - size_0 = !keyList?0:keyList.count; - checkPositionIndex(index_0, size_0); - if (index_0 >= (size_0 / 2 | 0)) { - this.previous = !keyList?null:keyList.tail; - this.nextIndex = size_0; - while (index_0++ < size_0) { - $previous(this); - } - } - else { - this.next_0 = !keyList?null:keyList.head; - while (index_0-- > 0) { - $next_2(this); - } - } - this.key = key; - this.current = null; -} - -defineClass(560, 1, $intern_14, LinkedListMultimap$ValueForKeyIterator, LinkedListMultimap$ValueForKeyIterator_0); -_.forEachRemaining = function forEachRemaining_14(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_14(value_0){ - this.previous = $addNode(this.this$01, this.key, value_0, this.next_0); - ++this.nextIndex; - this.current = null; -} -; -_.hasNext_0 = function hasNext_16(){ - return !!this.next_0; -} -; -_.hasPrevious = function hasPrevious_1(){ - return !!this.previous; -} -; -_.next_1 = function next_17(){ - return $next_2(this); -} -; -_.nextIndex_0 = function nextIndex_2(){ - return this.nextIndex; -} -; -_.previous_0 = function previous_2(){ - return $previous(this); -} -; -_.previousIndex = function previousIndex_1(){ - return this.nextIndex - 1; -} -; -_.remove = function remove_40(){ - checkState_0(!!this.current); - if (this.current != this.next_0) { - this.previous = this.current.previousSibling; - --this.nextIndex; - } - else { - this.next_0 = this.current.nextSibling; - } - $removeNode(this.this$01, this.current); - this.current = null; -} -; -_.set_1 = function set_7(value_0){ - checkState(!!this.current); - this.current.value_0 = value_0; -} -; -_.nextIndex = 0; -var Lcom_google_common_collect_LinkedListMultimap$ValueForKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/ValueForKeyIterator', 560); -function computeArrayListCapacity(arraySize){ - checkNonnegative(arraySize, 'arraySize'); - return saturatedCast(add_20(add_20(5, arraySize), arraySize / 10 | 0)); -} - -function equalsImpl(thisList, other){ - var i, otherList, size_0; - if (maskUndefined(other) === maskUndefined(checkNotNull(thisList))) { - return true; - } - if (!instanceOf(other, 15)) { - return false; - } - otherList = castTo(other, 15); - size_0 = thisList.size_1(); - if (size_0 != otherList.size_1()) { - return false; - } - if (instanceOf(otherList, 54)) { - for (i = 0; i < size_0; i++) { - if (!equal(thisList.get_0(i), otherList.get_0(i))) { - return false; - } - } - return true; - } - else { - return elementsEqual(thisList.iterator_0(), otherList.iterator_0()); - } -} - -function hashCodeImpl(list){ - var hashCode, o, o$iterator; - hashCode = 1; - for (o$iterator = list.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - hashCode = 31 * hashCode + (o == null?0:hashCode__I__devirtual$(o)); - hashCode = ~~hashCode; - } - return hashCode; -} - -function indexOfRandomAccess(list, element){ - var i, size_0; - size_0 = list.size_1(); - if (element == null) { - for (i = 0; i < size_0; i++) { - if (list.get_0(i) == null) { - return i; - } - } - } - else { - for (i = 0; i < size_0; i++) { - if (equals_Ljava_lang_Object__Z__devirtual$(element, list.get_0(i))) { - return i; - } - } - } - return -1; -} - -function newArrayList(elements){ - checkNotNull(elements); - return instanceOf(elements, 14)?new ArrayList_1(castTo(elements, 14)):newArrayList_0(elements.iterator_0()); -} - -function newArrayList_0(elements){ - var list; - list = new ArrayList; - addAll_7(list, elements); - return list; -} - -function newArrayList_1(elements){ - var capacity, list; - checkNotNull(elements); - capacity = computeArrayListCapacity(elements.length); - list = new ArrayList_0(capacity); - addAll_15(list, elements); - return list; -} - -function newArrayListWithCapacity(initialArraySize){ - checkNonnegative(initialArraySize, 'initialArraySize'); - return new ArrayList_0(initialArraySize); -} - -function newArrayListWithExpectedSize(estimatedSize){ - return new ArrayList_0((checkNonnegative(estimatedSize, 'arraySize') , saturatedCast(add_20(add_20(5, estimatedSize), estimatedSize / 10 | 0)))); -} - -function newLinkedList(elements){ - var list; - list = new LinkedList; - addAll_6(list, elements); - return list; -} - -function reverse_0(list){ - return instanceOf(list, 152)?$reverse(castTo(list, 152)):instanceOf(list, 131)?castTo(list, 131).forwardList:instanceOf(list, 54)?new Lists$RandomAccessReverseList(list):new Lists$ReverseList(list); -} - -defineClass(1018, 52, $intern_37); -_.add_3 = function add_15(index_0, element){ - this.backingList.add_3(index_0, element); -} -; -_.addAll_0 = function addAll_10(index_0, c){ - return this.backingList.addAll_0(index_0, c); -} -; -_.contains = function contains_22(o){ - return this.backingList.contains(o); -} -; -_.get_0 = function get_27(index_0){ - return this.backingList.get_0(index_0); -} -; -_.remove_2 = function remove_41(index_0){ - return this.backingList.remove_2(index_0); -} -; -_.set_2 = function set_8(index_0, element){ - return this.backingList.set_2(index_0, element); -} -; -_.size_1 = function size_29(){ - return this.backingList.size_1(); -} -; -var Lcom_google_common_collect_Lists$AbstractListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/AbstractListWrapper', 1018); -defineClass(1019, 1018, $intern_38); -var Lcom_google_common_collect_Lists$RandomAccessListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessListWrapper', 1019); -function Lists$1($anonymous0){ - this.backingList = castTo(checkNotNull($anonymous0), 15); -} - -defineClass(1021, 1019, $intern_38, Lists$1); -_.listIterator_1 = function listIterator_7(index_0){ - return this.backingList.listIterator_1(index_0); -} -; -var Lcom_google_common_collect_Lists$1_2_classLit = createForClass('com.google.common.collect', 'Lists/1', 1021); -function $listIterator_1(this$static, index_0){ - var forwardIterator, start_0; - start_0 = $reversePosition(this$static, index_0); - forwardIterator = this$static.forwardList.listIterator_1(start_0); - return new Lists$ReverseList$1(this$static, forwardIterator); -} - -function $reverseIndex(this$static, index_0){ - var size_0; - size_0 = this$static.forwardList.size_1(); - checkElementIndex(index_0, size_0); - return size_0 - 1 - index_0; -} - -function $reversePosition(this$static, index_0){ - var size_0; - size_0 = this$static.forwardList.size_1(); - checkPositionIndex(index_0, size_0); - return size_0 - index_0; -} - -function Lists$ReverseList(forwardList){ - this.forwardList = castTo(checkNotNull(forwardList), 15); -} - -defineClass(131, 52, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Lists$ReverseList); -_.add_3 = function add_16(index_0, element){ - this.forwardList.add_3($reversePosition(this, index_0), element); -} -; -_.clear_0 = function clear_25(){ - this.forwardList.clear_0(); -} -; -_.get_0 = function get_28(index_0){ - return this.forwardList.get_0($reverseIndex(this, index_0)); -} -; -_.iterator_0 = function iterator_36(){ - return $listIterator_1(this, 0); -} -; -_.listIterator_1 = function listIterator_8(index_0){ - return $listIterator_1(this, index_0); -} -; -_.remove_2 = function remove_42(index_0){ - return this.forwardList.remove_2($reverseIndex(this, index_0)); -} -; -_.removeRange = function removeRange_0(fromIndex, toIndex){ - (checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex)))).clear_0(); -} -; -_.set_2 = function set_9(index_0, element){ - return this.forwardList.set_2($reverseIndex(this, index_0), element); -} -; -_.size_1 = function size_30(){ - return this.forwardList.size_1(); -} -; -_.subList = function subList_6(fromIndex, toIndex){ - return checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex))); -} -; -var Lcom_google_common_collect_Lists$ReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList', 131); -function Lists$RandomAccessReverseList(forwardList){ - Lists$ReverseList.call(this, forwardList); -} - -defineClass(280, 131, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, Lists$RandomAccessReverseList); -var Lcom_google_common_collect_Lists$RandomAccessReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessReverseList', 280); -function $next_3(this$static){ - if (!this$static.val$forwardIterator2.hasPrevious()) { - throw toJs(new NoSuchElementException); - } - this$static.canRemoveOrSet = true; - return this$static.val$forwardIterator2.previous_0(); -} - -function Lists$ReverseList$1(this$1, val$forwardIterator){ - this.this$11 = this$1; - this.val$forwardIterator2 = val$forwardIterator; -} - -defineClass(1020, 1, $intern_14, Lists$ReverseList$1); -_.forEachRemaining = function forEachRemaining_15(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_17(e){ - this.val$forwardIterator2.add_1(e); - this.val$forwardIterator2.previous_0(); - this.canRemoveOrSet = false; -} -; -_.hasNext_0 = function hasNext_17(){ - return this.val$forwardIterator2.hasPrevious(); -} -; -_.hasPrevious = function hasPrevious_2(){ - return this.val$forwardIterator2.hasNext_0(); -} -; -_.next_1 = function next_18(){ - return $next_3(this); -} -; -_.nextIndex_0 = function nextIndex_3(){ - return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()); -} -; -_.previous_0 = function previous_3(){ - if (!this.val$forwardIterator2.hasNext_0()) { - throw toJs(new NoSuchElementException); - } - this.canRemoveOrSet = true; - return this.val$forwardIterator2.next_1(); -} -; -_.previousIndex = function previousIndex_2(){ - return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()) - 1; -} -; -_.remove = function remove_43(){ - checkState_0(this.canRemoveOrSet); - this.val$forwardIterator2.remove(); - this.canRemoveOrSet = false; -} -; -_.set_1 = function set_10(e){ - checkState(this.canRemoveOrSet); - this.val$forwardIterator2.set_1(e); -} -; -_.canRemoveOrSet = false; -var Lcom_google_common_collect_Lists$ReverseList$1_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList/1', 1020); -function asMapEntryIterator(set_0, function_0){ - return new Maps$3(set_0.iterator_0(), function_0); -} - -function capacity_0(expectedSize){ - if (expectedSize < 3) { - checkNonnegative(expectedSize, 'expectedSize'); - return expectedSize + 1; - } - if (expectedSize < $intern_35) { - return round_int(expectedSize / 0.75 + 1); - } - return $intern_0; -} - -function equalsImpl_0(map_0, object){ - var o; - if (map_0 === object) { - return true; - } - else if (instanceOf(object, 83)) { - o = castTo(object, 83); - return equalsImpl_3($entrySet_1(map_0), o.entrySet_0()); - } - return false; -} - -function indexMap(list){ - var builder, e, e$iterator, i; - builder = new ImmutableMap$Builder(list.delegateList_0().size_1()); - i = 0; - for (e$iterator = unmodifiableIterator(list.delegateList_0().iterator_0()); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - $put_4(builder, e, valueOf_4(i++)); - } - return fromEntryList(builder.entries_0); -} - -function keyOrNull(entry){ - return !entry?null:entry.key; -} - -function safeContainsKey(map_0, key){ - checkNotNull(map_0); - try { - return map_0.containsKey(key); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return false; - } - else - throw toJs($e0); - } -} - -function safeGet(map_0, key){ - checkNotNull(map_0); - try { - return map_0.get_3(key); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return null; - } - else - throw toJs($e0); - } -} - -function safeRemove_0(map_0, key){ - checkNotNull(map_0); - try { - return map_0.remove_0(key); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return null; - } - else - throw toJs($e0); - } -} - -function toStringImpl(map_0){ - var entry, entry$iterator, first, sb; - sb = $append_5((checkNonnegative(map_0.size_1(), 'size') , new StringBuilder_0), 123); - first = true; - for (entry$iterator = $entrySet_1(map_0).iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - first || (sb.string += ', ' , sb); - first = false; - $append_10($append_5($append_10(sb, entry.getKey()), 61), entry.getValue()); - } - return (sb.string += '}' , sb).string; -} - -function valueOrNull(entry){ - return !entry?null:entry.value_0; -} - -function $transform(entry){ - return castTo(entry, 42).getKey(); -} - -function Maps$1($anonymous0){ - TransformedIterator.call(this, $anonymous0); -} - -defineClass(432, 487, $intern_6, Maps$1); -_.transform_0 = function transform_4(entry){ - return $transform(entry); -} -; -var Lcom_google_common_collect_Maps$1_2_classLit = createForClass('com.google.common.collect', 'Maps/1', 432); -function Maps$2($anonymous0){ - TransformedIterator.call(this, $anonymous0); -} - -defineClass(698, 487, $intern_6, Maps$2); -_.transform_0 = function transform_5(entry){ - return castTo(entry, 42).getValue(); -} -; -var Lcom_google_common_collect_Maps$2_2_classLit = createForClass('com.google.common.collect', 'Maps/2', 698); -function Maps$3($anonymous0, val$function){ - this.val$function2 = val$function; - TransformedIterator.call(this, $anonymous0); -} - -defineClass(962, 487, $intern_6, Maps$3); -_.transform_0 = function transform_6(key){ - return new ImmutableEntry(key, $apply_0(this.val$function2, key)); -} -; -var Lcom_google_common_collect_Maps$3_2_classLit = createForClass('com.google.common.collect', 'Maps/3', 962); -function Maps$IteratorBasedAbstractMap$1(this$1){ - this.this$11 = this$1; -} - -defineClass(959, 1971, $intern_10, Maps$IteratorBasedAbstractMap$1); -_.forEach_0 = function forEach_13(action){ - $forEachEntry_0(this.this$11, action); -} -; -_.iterator_0 = function iterator_37(){ - return this.this$11.entryIterator(); -} -; -_.map_1 = function map_3(){ - return this.this$11; -} -; -_.spliterator_0 = function spliterator_24(){ - return this.this$11.entrySpliterator(); -} -; -var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap$1_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap/1', 959); -function Maps$KeySet$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(960, 1, {}, Maps$KeySet$lambda$0$Type); -_.accept_1 = function accept_10(arg0, arg1){ - this.action_0.accept(arg0); -} -; -var Lcom_google_common_collect_Maps$KeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet/lambda$0$Type', 960); -function Maps$Values(map_0){ - this.map_0 = castTo(checkNotNull(map_0), 83); -} - -defineClass(958, 28, $intern_8, Maps$Values); -_.clear_0 = function clear_26(){ - this.map_0.clear_0(); -} -; -_.contains = function contains_23(o){ - return this.map_0.containsValue(o); -} -; -_.forEach_0 = function forEach_14(action){ - checkNotNull(action); - this.map_0.forEach(new Maps$Values$lambda$0$Type(action)); -} -; -_.isEmpty = function isEmpty_15(){ - return this.map_0.isEmpty(); -} -; -_.iterator_0 = function iterator_38(){ - return new Maps$2(this.map_0.entrySet_0().iterator_0()); -} -; -_.remove_1 = function remove_44(o){ - var entry, entry$iterator; - try { - return $advanceToFind(this, o, true); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 41)) { - for (entry$iterator = this.map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if (equal(o, entry.getValue())) { - this.map_0.remove_0(entry.getKey()); - return true; - } - } - return false; - } - else - throw toJs($e0); - } -} -; -_.size_1 = function size_31(){ - return this.map_0.size_1(); -} -; -var Lcom_google_common_collect_Maps$Values_2_classLit = createForClass('com.google.common.collect', 'Maps/Values', 958); -function Maps$Values$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(961, 1, {}, Maps$Values$lambda$0$Type); -_.accept_1 = function accept_11(arg0, arg1){ - this.action_0.accept(arg1); -} -; -var Lcom_google_common_collect_Maps$Values$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/Values/lambda$0$Type', 961); -function equalsImpl_1(multimap, object){ - var that; - if (object === multimap) { - return true; - } - if (instanceOf(object, 224)) { - that = castTo(object, 224); - return equals_Ljava_lang_Object__Z__devirtual$(multimap.asMap_0(), that.asMap_0()); - } - return false; -} - -function $removeValuesForKey_0(this$static, key){ - this$static.multimap.keySet_0().remove_1(key); -} - -function Multimaps$AsMap(multimap){ - this.multimap = castTo(checkNotNull(multimap), 224); -} - -defineClass(736, 1987, $intern_7, Multimaps$AsMap); -_.get_3 = function get_29(key){ - return this.multimap.containsKey(key)?this.multimap.get_1(key):null; -} -; -_.remove_0 = function remove_45(key){ - return this.multimap.containsKey(key)?this.multimap.removeAll(key):null; -} -; -_.clear_0 = function clear_27(){ - this.multimap.clear_0(); -} -; -_.containsKey = function containsKey_8(key){ - return this.multimap.containsKey(key); -} -; -_.createEntrySet_0 = function createEntrySet_1(){ - return new Multimaps$AsMap$EntrySet(this); -} -; -_.createEntrySet = function(){ - return this.createEntrySet_0(); -} -; -_.isEmpty = function isEmpty_16(){ - return this.multimap.isEmpty(); -} -; -_.keySet_0 = function keySet_13(){ - return this.multimap.keySet_0(); -} -; -_.size_1 = function size_32(){ - return this.multimap.keySet_0().size_1(); -} -; -var Lcom_google_common_collect_Multimaps$AsMap_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap', 736); -function Multimaps$AsMap$EntrySet(this$1){ - this.this$11 = this$1; -} - -defineClass(1104, 1971, $intern_10, Multimaps$AsMap$EntrySet); -_.iterator_0 = function iterator_39(){ - return asMapEntryIterator(this.this$11.multimap.keySet_0(), new Multimaps$AsMap$EntrySet$1(this)); -} -; -_.map_1 = function map_4(){ - return this.this$11; -} -; -_.remove_1 = function remove_46(o){ - var entry; - if (!$contains(this, o)) { - return false; - } - entry = castTo(o, 42); - $removeValuesForKey_0(this.this$11, entry.getKey()); - return true; -} -; -var Lcom_google_common_collect_Multimaps$AsMap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet', 1104); -function $apply_0(this$static, key){ - return this$static.this$21.this$11.multimap.get_1(key); -} - -function Multimaps$AsMap$EntrySet$1(this$2){ - this.this$21 = this$2; -} - -defineClass(1108, 1, {}, Multimaps$AsMap$EntrySet$1); -_.apply_0 = function apply_14(key){ - return $apply_0(this, key); -} -; -_.equals_0 = function equals_27(other){ - return this === other; -} -; -var Lcom_google_common_collect_Multimaps$AsMap$EntrySet$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet/1', 1108); -function $count(this$static, element){ - var values; - values = castTo(safeGet($asMap(this$static.multimap), element), 14); - return !values?0:values.size_1(); -} - -function $remove_5(this$static, element, occurrences){ - var i, iterator, oldCount, values, values0; - checkNonnegative(occurrences, 'occurrences'); - if (occurrences == 0) { - return values0 = castTo(safeGet($asMap(this$static.multimap), element), 14) , !values0?0:values0.size_1(); - } - values = castTo(safeGet($asMap(this$static.multimap), element), 14); - if (!values) { - return 0; - } - oldCount = values.size_1(); - if (occurrences >= oldCount) { - values.clear_0(); - } - else { - iterator = values.iterator_0(); - for (i = 0; i < occurrences; i++) { - iterator.next_1(); - iterator.remove(); - } - } - return oldCount; -} - -function Multimaps$Keys(multimap){ - this.multimap = multimap; -} - -defineClass(543, 1989, {543:1, 835:1, 20:1, 28:1, 14:1}, Multimaps$Keys); -_.clear_0 = function clear_28(){ - $clear(this.multimap); -} -; -_.contains = function contains_24(element){ - return $containsKey(this.multimap, element); -} -; -_.forEach_0 = function forEach_15(consumer){ - checkNotNull(consumer); - $forEach_0($entries(this.multimap), new Multimaps$Keys$lambda$1$Type(consumer)); -} -; -_.iterator_0 = function iterator_40(){ - return new Maps$1($entries(this.multimap).this$01.entryIterator()); -} -; -_.size_1 = function size_33(){ - return this.multimap.totalSize; -} -; -_.spliterator_0 = function spliterator_25(){ - return map_2($entries(this.multimap).spliterator_0(), new Multimaps$Keys$0methodref$getKey$Type); -} -; -var Lcom_google_common_collect_Multimaps$Keys_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys', 543); -function Multimaps$Keys$0methodref$getKey$Type(){ -} - -defineClass(1106, 1, {}, Multimaps$Keys$0methodref$getKey$Type); -_.apply_0 = function apply_15(arg0){ - return castTo(arg0, 42).getKey(); -} -; -var Lcom_google_common_collect_Multimaps$Keys$0methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/0methodref$getKey$Type', 1106); -function Multimaps$Keys$1($anonymous0){ - TransformedIterator.call(this, $anonymous0); -} - -defineClass(1105, 487, $intern_6, Multimaps$Keys$1); -_.transform_0 = function transform_7(backingEntry){ - return new Multimaps$Keys$1$1(castTo(backingEntry, 42)); -} -; -var Lcom_google_common_collect_Multimaps$Keys$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1', 1105); -defineClass(1990, 1, {416:1}); -_.equals_0 = function equals_28(object){ - var that; - if (instanceOf(object, 492)) { - that = castTo(object, 416); - return castTo(this.val$backingEntry2.getValue(), 14).size_1() == castTo(that.val$backingEntry2.getValue(), 14).size_1() && equal(this.val$backingEntry2.getKey(), that.val$backingEntry2.getKey()); - } - return false; -} -; -_.hashCode_1 = function hashCode_28(){ - var e; - e = this.val$backingEntry2.getKey(); - return (e == null?0:hashCode__I__devirtual$(e)) ^ castTo(this.val$backingEntry2.getValue(), 14).size_1(); -} -; -_.toString_0 = function toString_27(){ - var n, text_0; - text_0 = valueOf_7(this.val$backingEntry2.getKey()); - n = castTo(this.val$backingEntry2.getValue(), 14).size_1(); - return n == 1?text_0:text_0 + ' x ' + n; -} -; -var Lcom_google_common_collect_Multisets$AbstractEntry_2_classLit = createForClass('com.google.common.collect', 'Multisets/AbstractEntry', 1990); -function Multimaps$Keys$1$1(val$backingEntry){ - this.val$backingEntry2 = val$backingEntry; -} - -defineClass(492, 1990, {492:1, 416:1}, Multimaps$Keys$1$1); -var Lcom_google_common_collect_Multimaps$Keys$1$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1/1', 492); -function Multimaps$Keys$lambda$1$Type(consumer_0){ - this.consumer_0 = consumer_0; -} - -defineClass(1107, 1, $intern_19, Multimaps$Keys$lambda$1$Type); -_.accept = function accept_12(arg0){ - this.consumer_0.accept(castTo(arg0, 42).getKey()); -} -; -var Lcom_google_common_collect_Multimaps$Keys$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/lambda$1$Type', 1107); -function Multiset$lambda$0$Type(){ -} - -defineClass(1110, 1, $intern_19, Multiset$lambda$0$Type); -_.accept = function accept_13(arg0){ - lambda$0_1(castTo(arg0, 416)); -} -; -var Lcom_google_common_collect_Multiset$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$0$Type', 1110); -function Multiset$lambda$1$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(737, 1, $intern_19, Multiset$lambda$1$Type); -_.accept = function accept_14(arg0){ - lambda$1_1(this.action_0, castTo(arg0, 416)); -} -; -var Lcom_google_common_collect_Multiset$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$1$Type', 737); -function addAllImpl(elements){ - if ($entrySet_0(elements).isEmpty()) { - return false; - } - $forEachEntry(elements, new Multisets$0methodref$add$Type); - return true; -} - -function equalsImpl_2(multiset, object){ - var entry, entry$iterator, that; - if (object === multiset) { - return true; - } - if (instanceOf(object, 543)) { - that = castTo(object, 835); - if (multiset.multimap.totalSize != that.multimap.totalSize || $entrySet_0(multiset).size_1() != $entrySet_0(that).size_1()) { - return false; - } - for (entry$iterator = $entrySet_0(that).iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 416); - if ($count(multiset, entry.val$backingEntry2.getKey()) != castTo(entry.val$backingEntry2.getValue(), 14).size_1()) { - return false; - } - } - return true; - } - return false; -} - -function lambda$3(entry_0){ - return new Spliterators$IteratorSpliterator(nCopies(castTo(entry_0.val$backingEntry2.getValue(), 14).size_1(), entry_0.val$backingEntry2.getKey()), 16); -} - -function setCountImpl(self_0, element, oldCount){ - var values, oldCount_0, values_0, delta; - checkNonnegative(oldCount, 'oldCount'); - checkNonnegative(0, 'newCount'); - values = castTo(safeGet($asMap(self_0.multimap), element), 14); - if ((!values?0:values.size_1()) == oldCount) { - checkNonnegative(0, 'count'); - oldCount_0 = (values_0 = castTo(safeGet($asMap(self_0.multimap), element), 14) , !values_0?0:values_0.size_1()); - delta = -oldCount_0; - delta > 0?$add():delta < 0 && $remove_5(self_0, element, -delta); - return true; - } - else { - return false; - } -} - -function Multisets$0methodref$add$Type(){ -} - -defineClass(1111, 1, {}, Multisets$0methodref$add$Type); -var Lcom_google_common_collect_Multisets$0methodref$add$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/0methodref$add$Type', 1111); -function Multisets$lambda$3$Type(){ -} - -defineClass(738, 1, {}, Multisets$lambda$3$Type); -_.apply_0 = function apply_16(arg0){ - return lambda$3(castTo(arg0, 416)); -} -; -var Lcom_google_common_collect_Multisets$lambda$3$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/lambda$3$Type', 738); -defineClass(2008, 1, $intern_1); -var Lcom_google_common_collect_RangeGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'RangeGwtSerializationDependencies', 2008); -function $clinit_Range(){ - $clinit_Range = emptyMethod; - new Range_0(($clinit_Cut$BelowAll() , INSTANCE_1), ($clinit_Cut$AboveAll() , INSTANCE_0)); -} - -function $apply_1(this$static, input_0){ - return checkNotNull(input_0) , this$static.lowerBound.isLessThan(input_0) && !this$static.upperBound.isLessThan(input_0); -} - -function Range_0(lowerBound, upperBound){ - this.lowerBound = castTo(checkNotNull(lowerBound), 245); - this.upperBound = castTo(checkNotNull(upperBound), 245); - if (lowerBound.compareTo(upperBound) > 0 || lowerBound == ($clinit_Cut$AboveAll() , INSTANCE_0) || upperBound == ($clinit_Cut$BelowAll() , INSTANCE_1)) { - throw toJs(new IllegalArgumentException_0('Invalid range: ' + toString_29(lowerBound, upperBound))); - } -} - -function closed_0(lower, upper){ - $clinit_Range(); - return new Range_0(new Cut$BelowValue(lower), new Cut$AboveValue(upper)); -} - -function toString_29(lowerBound, upperBound){ - var sb; - sb = new StringBuilder_0; - lowerBound.describeAsLowerBound(sb); - sb.string += '..'; - upperBound.describeAsUpperBound(sb); - return sb.string; -} - -defineClass(514, 2008, {169:1, 514:1, 3:1, 45:1}, Range_0); -_.apply_1 = function apply_17(input_0){ - return $apply_1(this, castTo(input_0, 35)); -} -; -_.test_0 = function test_1(input_0){ - return $apply_1(this, castTo(input_0, 35)); -} -; -_.equals_0 = function equals_29(object){ - var other; - if (instanceOf(object, 514)) { - other = castTo(object, 514); - return $equals_1(this.lowerBound, other.lowerBound) && $equals_1(this.upperBound, other.upperBound); - } - return false; -} -; -_.hashCode_1 = function hashCode_29(){ - return this.lowerBound.hashCode_1() * 31 + this.upperBound.hashCode_1(); -} -; -_.toString_0 = function toString_28(){ - return toString_29(this.lowerBound, this.upperBound); -} -; -var Lcom_google_common_collect_Range_2_classLit = createForClass('com.google.common.collect', 'Range', 514); -function RegularImmutableAsList(delegate, delegateList){ - this.delegate = delegate; - this.delegateList = delegateList; -} - -function RegularImmutableAsList_0(delegate, array){ - $clinit_ImmutableList(); - RegularImmutableAsList.call(this, delegate, unsafeDelegateList(new Arrays$ArrayList(array))); -} - -defineClass(778, 1999, $intern_26, RegularImmutableAsList_0); -_.listIterator_1 = function listIterator_10(index_0){ - return $listIterator(this.delegateList, index_0); -} -; -_.delegateCollection = function delegateCollection_0(){ - return this.delegate; -} -; -_.get_0 = function get_30(index_0){ - return $get_2(this.delegateList, index_0); -} -; -_.listIterator_2 = function listIterator_9(index_0){ - return $listIterator(this.delegateList, index_0); -} -; -var Lcom_google_common_collect_RegularImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableAsList', 778); -function RegularImmutableList(delegate){ - this.delegate = ($clinit_Collections() , instanceOf(delegate, 54)?new Collections$UnmodifiableRandomAccessList(delegate):new Collections$UnmodifiableList(delegate)); -} - -defineClass(646, 2006, $intern_26, RegularImmutableList); -_.delegateList_0 = function delegateList_0(){ - return this.delegate; -} -; -var Lcom_google_common_collect_RegularImmutableList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableList', 646); -function RegularImmutableMap(entries){ - ForwardingImmutableMap.call(this, entries); -} - -defineClass(616, 715, $intern_28, RegularImmutableMap); -var Lcom_google_common_collect_RegularImmutableMap_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableMap', 616); -function $clinit_RegularImmutableSet(){ - $clinit_RegularImmutableSet = emptyMethod; - $clinit_ImmutableCollection(); - EMPTY_2 = new RegularImmutableSet(($clinit_Collections() , $clinit_Collections() , EMPTY_SET)); -} - -function RegularImmutableSet(delegate){ - $clinit_RegularImmutableSet(); - ForwardingImmutableSet.call(this, delegate); -} - -defineClass(716, 703, $intern_30, RegularImmutableSet); -var EMPTY_2; -var Lcom_google_common_collect_RegularImmutableSet_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableSet', 716); -function equalsImpl_3(s, object){ - var o; - if (maskUndefined(s) === maskUndefined(object)) { - return true; - } - if (instanceOf(object, 21)) { - o = castTo(object, 21); - try { - return s.size_1() == o.size_1() && s.containsAll(o); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 173) || instanceOf($e0, 205)) { - return false; - } - else - throw toJs($e0); - } - } - return false; -} - -function hashCodeImpl_0(s){ - var hashCode, o, o$iterator; - hashCode = 0; - for (o$iterator = s.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - hashCode += o != null?hashCode__I__devirtual$(o):0; - hashCode = ~~hashCode; - } - return hashCode; -} - -function intersection_0(set1, set2){ - checkNotNull_0(set1, 'set1'); - checkNotNull_0(set2, 'set2'); - return new Sets$2(set1, set2); -} - -function newHashSet(elements){ - return instanceOf(elements, 14)?new HashSet_1(castTo(elements, 14)):newHashSet_0(elements.iterator_0()); -} - -function newHashSet_0(elements){ - var set_0; - set_0 = new HashSet; - addAll_7(set_0, elements); - return set_0; -} - -function newHashSet_1(elements){ - var set_0; - set_0 = new HashSet_0(capacity_0(elements.length)); - addAll_15(set_0, elements); - return set_0; -} - -function newLinkedHashSet(elements){ - var set_0; - if (elements) { - return new LinkedHashSet_1(elements); - } - set_0 = new LinkedHashSet; - addAll_6(set_0, elements); - return set_0; -} - -function newTreeSet(elements){ - var set_0; - set_0 = new TreeSet; - addAll_6(set_0, elements); - return set_0; -} - -function unmodifiableNavigableSet(set_0){ - if (instanceOf(set_0, 607)) { - return set_0; - } - return new Sets$UnmodifiableNavigableSet(set_0); -} - -defineClass(1976, $intern_9, $intern_10); -_.iterator_0 = function iterator_41(){ - return new Sets$2$1(this.val$set11, this.val$set22); -} -; -_.add_2 = function add_18(e){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll = function addAll_11(newElements){ - throw toJs(new UnsupportedOperationException); -} -; -_.clear_0 = function clear_29(){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_1 = function remove_47(object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_Sets$SetView_2_classLit = createForClass('com.google.common.collect', 'Sets/SetView', 1976); -function $size_1(this$static){ - var e, e$iterator, size_0; - size_0 = 0; - for (e$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this$static.val$set11); e$iterator.i < e$iterator.this$11.all.length;) { - e = $next_8(e$iterator); - this$static.val$set22.contains(e) && ++size_0; - } - return size_0; -} - -function Sets$2(val$set1, val$set2){ - this.val$set11 = val$set1; - this.val$set22 = val$set2; -} - -defineClass(963, 1976, $intern_10, Sets$2); -_.iterator_0 = function iterator_42(){ - return new Sets$2$1(this.val$set11, this.val$set22); -} -; -_.contains = function contains_25(object){ - return $contains_5(this.val$set11, object) && this.val$set22.contains(object); -} -; -_.containsAll = function containsAll_6(collection){ - return $containsAll(this.val$set11, collection) && this.val$set22.containsAll(collection); -} -; -_.isEmpty = function isEmpty_17(){ - return disjoint(this.val$set22, this.val$set11); -} -; -_.parallelStream = function parallelStream_1(){ - return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$5methodref$contains$Type(this.val$set22)); -} -; -_.size_1 = function size_34(){ - return $size_1(this); -} -; -_.stream = function stream_2(){ - return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$4methodref$contains$Type(this.val$set22)); -} -; -var Lcom_google_common_collect_Sets$2_2_classLit = createForClass('com.google.common.collect', 'Sets/2', 963); -function Sets$2$1(val$set1, val$set2){ - this.val$set12 = val$set1; - this.val$set23 = val$set2; - this.itr = new EnumSet$EnumSetImpl$IteratorImpl(this.val$set12); -} - -defineClass(700, 699, $intern_3, Sets$2$1); -_.computeNext = function computeNext_0(){ - var e; - while ($hasNext_4(this.itr)) { - e = $next_8(this.itr); - if (this.val$set23.contains(e)) { - return e; - } - } - return this.state = 2 , null; -} -; -var Lcom_google_common_collect_Sets$2$1_2_classLit = createForClass('com.google.common.collect', 'Sets/2/1', 700); -function Sets$2$4methodref$contains$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(964, 1, $intern_39, Sets$2$4methodref$contains$Type); -_.test_0 = function test_2(arg0){ - return this.$$outer_0.contains(arg0); -} -; -var Lcom_google_common_collect_Sets$2$4methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/4methodref$contains$Type', 964); -function Sets$2$5methodref$contains$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(965, 1, $intern_39, Sets$2$5methodref$contains$Type); -_.test_0 = function test_3(arg0){ - return this.$$outer_0.contains(arg0); -} -; -var Lcom_google_common_collect_Sets$2$5methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/5methodref$contains$Type', 965); -function Sets$UnmodifiableNavigableSet(delegate){ - this.delegate = castTo(checkNotNull(delegate), 271); - this.unmodifiableDelegate = ($clinit_Collections() , new Collections$UnmodifiableSortedSet(delegate)); -} - -defineClass(607, 1975, {607:1, 3:1, 20:1, 14:1, 271:1, 21:1, 84:1}, Sets$UnmodifiableNavigableSet); -_.delegate_0 = function delegate_9(){ - return this.unmodifiableDelegate; -} -; -_.delegate_1 = function delegate_10(){ - return this.unmodifiableDelegate; -} -; -_.delegate_2 = function delegate_11(){ - return this.unmodifiableDelegate; -} -; -_.forEach_0 = function forEach_16(action){ - this.delegate.forEach_0(action); -} -; -_.parallelStream = function parallelStream_2(){ - return this.delegate.parallelStream(); -} -; -_.stream = function stream_3(){ - return this.delegate.stream(); -} -; -var Lcom_google_common_collect_Sets$UnmodifiableNavigableSet_2_classLit = createForClass('com.google.common.collect', 'Sets/UnmodifiableNavigableSet', 607); -function SingletonImmutableBiMap(key, value_0){ - ImmutableBiMap.call(this, singletonMap(checkNotNull(key), checkNotNull(value_0))); - this.singleValue = value_0; -} - -defineClass(1932, 1931, $intern_28, SingletonImmutableBiMap); -_.values_2 = function values_13(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_0 = function values_14(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_1 = function values_15(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -var Lcom_google_common_collect_SingletonImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableBiMap', 1932); -function SingletonImmutableList(element){ - $clinit_ImmutableList(); - this.delegate = ($clinit_Collections() , new Collections$SingletonList(checkNotNull(element))); -} - -defineClass(647, 2006, $intern_26, SingletonImmutableList); -_.delegateList_0 = function delegateList_1(){ - return this.delegate; -} -; -var Lcom_google_common_collect_SingletonImmutableList_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableList', 647); -function SingletonImmutableSet(element){ - $clinit_ImmutableCollection(); - this.element = checkNotNull(element); -} - -defineClass(350, 1981, $intern_30, SingletonImmutableSet); -_.iterator_0 = function iterator_44(){ - return new Iterators$9(this.element); -} -; -_.contains = function contains_26(object){ - return equals_Ljava_lang_Object__Z__devirtual$(this.element, object); -} -; -_.iterator_1 = function iterator_43(){ - return new Iterators$9(this.element); -} -; -_.size_1 = function size_35(){ - return 1; -} -; -var Lcom_google_common_collect_SingletonImmutableSet_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableSet', 350); -function concat_1(streams){ - var characteristics, estimatedSize, isParallel, splitr, splitrsBuilder, stream, stream$array, stream$index, stream$max; - isParallel = false; - characteristics = 336; - estimatedSize = 0; - splitrsBuilder = new ImmutableList$Builder(streams.length); - for (stream$array = streams , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { - stream = stream$array[stream$index]; - isParallel = isParallel | ($throwIfTerminated(stream) , false); - splitr = ($terminate(stream) , stream.spliterator); - $add_3(splitrsBuilder.contents, checkNotNull(splitr)); - characteristics &= splitr.characteristics_0(); - estimatedSize = saturatedAdd(estimatedSize, splitr.estimateSize_0()); - } - return castTo(castTo($onClose(new StreamImpl(null, flatMap(new Spliterators$IteratorSpliterator(($clinit_ImmutableList() , copyFromCollection(splitrsBuilder.contents)), 16), new Streams$lambda$0$Type, characteristics, estimatedSize)), new Streams$lambda$1$Type(streams)), 670), 833); -} - -function lambda$1_2(streams_0){ - var stream, stream$array, stream$index, stream$max; - for (stream$array = streams_0 , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { - stream = stream$array[stream$index]; - $close(stream); - } -} - -function Streams$lambda$0$Type(){ -} - -defineClass(1115, 1, {}, Streams$lambda$0$Type); -_.apply_0 = function apply_18(arg0){ - return castTo(arg0, 164); -} -; -var Lcom_google_common_collect_Streams$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$0$Type', 1115); -function Streams$lambda$1$Type(streams_0){ - this.streams_0 = streams_0; -} - -defineClass(1116, 1, $intern_40, Streams$lambda$1$Type); -_.run = function run_0(){ - lambda$1_2(this.streams_0); -} -; -var Lcom_google_common_collect_Streams$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$1$Type', 1116); -function equalsImpl_4(table, obj){ - var result, result0, that; - if (obj === table) { - return true; - } - else if (instanceOf(obj, 664)) { - that = castTo(obj, 1947); - return $equals_0((result0 = table.cellSet , !result0?(table.cellSet = new AbstractTable$CellSet(table)):result0), (result = that.cellSet , !result?(that.cellSet = new AbstractTable$CellSet(that)):result)); - } - else { - return false; - } -} - -function TreeMultimap(keyComparator, valueComparator){ - AbstractSortedKeySortedSetMultimap.call(this, new TreeMap_0(keyComparator)); - this.keyComparator = keyComparator; - this.valueComparator = valueComparator; -} - -function create(keyComparator, valueComparator){ - return new TreeMultimap(castTo(checkNotNull(keyComparator), 62), castTo(checkNotNull(valueComparator), 62)); -} - -defineClass(1659, 1658, $intern_5, TreeMultimap); -_.asMap_0 = function asMap_5(){ - var result; - return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); -} -; -_.createCollection = function createCollection_10(){ - return new TreeSet_0(this.valueComparator); -} -; -_.createCollection_1 = function createCollection_11(){ - return new TreeSet_0(this.valueComparator); -} -; -_.keySet_0 = function keySet_14(){ - var result; - return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); -} -; -_.createAsMap = function createAsMap_1(){ - return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0); -} -; -_.createCollection_0 = function createCollection_12(key){ - key == null && this.keyComparator.compare_1(key, key); - return new TreeSet_0(this.valueComparator); -} -; -var Lcom_google_common_collect_TreeMultimap_2_classLit = createForClass('com.google.common.collect', 'TreeMultimap', 1659); -function $clinit_DoubleMath(){ - $clinit_DoubleMath = emptyMethod; - $wnd.Math.log(2); -} - -function fuzzyCompare(a, b){ - $clinit_DoubleMath(); - return checkNonNegative($intern_41) , $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b)?0:a < b?-1:a > b?1:compare_0(isNaN(a), isNaN(b)); -} - -function fuzzyEquals(a, b){ - $clinit_DoubleMath(); - checkNonNegative($intern_41); - return $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b); -} - -function saturatedAdd(a, b){ - var naiveSum; - naiveSum = add_20(a, b); - if (lt(xor_0(a, b), 0) | gte_0(xor_0(a, naiveSum), 0)) { - return naiveSum; - } - return add_20($intern_20, xor_0(shru_0(naiveSum, 63), 1)); -} - -function checkNonNegative(x_0){ - if (!(x_0 >= 0)) { - throw toJs(new IllegalArgumentException_0('tolerance (' + x_0 + ') must be >= 0')); - } - return x_0; -} - -function compare_0(a, b){ - return a == b?0:a?1:-1; -} - -function saturatedCast(value_0){ - if (compare_2(value_0, $intern_0) > 0) { - return $intern_0; - } - if (compare_2(value_0, $intern_42) < 0) { - return $intern_42; - } - return toInt_0(value_0); -} - -function $$init_0(this$static){ - this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); -} - -function $addSuppressed(this$static, exception){ - checkCriticalNotNull_0(exception, 'Cannot suppress a null exception.'); - checkCriticalArgument_0(exception != this$static, 'Exception can not suppress itself.'); - if (this$static.disableSuppression) { - return; - } - this$static.suppressedExceptions == null?(this$static.suppressedExceptions = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Throwable_2_classLit, 1), $intern_16, 78, 0, [exception])):(this$static.suppressedExceptions[this$static.suppressedExceptions.length] = exception); -} - -function $fillInStackTrace(this$static){ - if (this$static.writableStackTrace) { - this$static.backingJsObject !== '__noinit__' && this$static.initializeBackingError(); - this$static.stackTrace = null; - } - return this$static; -} - -function $linkBack(this$static, error){ - if (error instanceof Object) { - try { - error.__java$exception = this$static; - if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && $doc.documentMode < 9) { - return; - } - var throwable = this$static; - Object.defineProperties(error, {cause:{get:function(){ - var cause = throwable.getCause(); - return cause && cause.getBackingJsObject(); - } - }, suppressed:{get:function(){ - return throwable.getBackingSuppressed(); - } - }}); - } - catch (ignored) { - } - } -} - -function $printStackTraceImpl(this$static, out, ident){ - var t, t$array, t$index, t$max, theCause; - $printStackTraceItems(this$static); - for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this$static.suppressedExceptions) , t$index = 0 , t$max = t$array.length; t$index < t$max; ++t$index) { - t = t$array[t$index]; - $printStackTraceImpl(t, out, '\t' + ident); - } - theCause = this$static.cause_0; - !!theCause && $printStackTraceImpl(theCause, out, ident); -} - -function $printStackTraceItems(this$static){ - var element$array, element$index, element$max, stackTrace; - for (element$array = (this$static.stackTrace == null && (this$static.stackTrace = ($clinit_StackTraceCreator() , stackTrace = collector_1.getStackTrace(this$static) , dropInternalFrames(stackTrace))) , this$static.stackTrace) , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) - ; -} - -function $setBackingJsObject(this$static, backingJsObject){ - this$static.backingJsObject = backingJsObject; - $linkBack(this$static, backingJsObject); -} - -function $toString_4(this$static, message){ - var className; - className = $getName(this$static.___clazz); - return message == null?className:className + ': ' + message; -} - -function Throwable(){ - $$init_0(this); - $fillInStackTrace(this); - this.initializeBackingError(); -} - -function Throwable_0(message){ - $$init_0(this); - this.detailMessage = message; - $fillInStackTrace(this); - this.initializeBackingError(); -} - -function Throwable_1(message, cause){ - $$init_0(this); - this.cause_0 = cause; - this.detailMessage = message; - $fillInStackTrace(this); - this.initializeBackingError(); -} - -function fixIE(e){ - if (!('stack' in e)) { - try { - throw e; - } - catch (ignored) { - } - } - return e; -} - -defineClass(78, 1, {3:1, 78:1}); -_.createError = function createError(msg){ - return new Error(msg); -} -; -_.getBackingJsObject = function getBackingJsObject(){ - return this.backingJsObject; -} -; -_.getBackingSuppressed = function getBackingSuppressed(){ - return $toArray_7($map_0(stream_4((this.suppressedExceptions == null && (this.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this.suppressedExceptions)), new Throwable$lambda$0$Type), new StreamImpl$0methodref$lambda$2$Type); -} -; -_.getCause = function getCause(){ - return this.cause_0; -} -; -_.getMessage = function getMessage(){ - return this.detailMessage; -} -; -_.initializeBackingError = function initializeBackingError(){ - $setBackingJsObject(this, fixIE(this.createError($toString_4(this, this.detailMessage)))); - captureStackTrace(this); -} -; -_.toString_0 = function toString_30(){ - return $toString_4(this, this.getMessage()); -} -; -_.backingJsObject = '__noinit__'; -_.disableSuppression = false; -_.writableStackTrace = true; -var Ljava_lang_Throwable_2_classLit = createForClass('java.lang', 'Throwable', 78); -defineClass(102, 78, {3:1, 102:1, 78:1}); -var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 102); -function RuntimeException(){ - Throwable.call(this); -} - -function RuntimeException_0(message){ - Throwable_0.call(this, message); -} - -defineClass(60, 102, $intern_43, RuntimeException, RuntimeException_0); -var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 60); -defineClass(598, 60, $intern_43); -var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 598); -defineClass(863, 598, $intern_43); -var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 863); -function $clinit_JavaScriptException(){ - $clinit_JavaScriptException = emptyMethod; - NOT_SET = new Object_0; -} - -function $ensureInit(this$static){ - var exception; - if (this$static.message_0 == null) { - exception = maskUndefined(this$static.e) === maskUndefined(NOT_SET)?null:this$static.e; - this$static.name_0 = exception == null?'null':instanceOfJso(exception)?getExceptionName0(castToJso(exception)):instanceOfString(exception)?'String':$getName(getClass__Ljava_lang_Class___devirtual$(exception)); - this$static.description = this$static.description + ': ' + (instanceOfJso(exception)?getExceptionDescription0(castToJso(exception)):exception + ''); - this$static.message_0 = '(' + this$static.name_0 + ') ' + this$static.description; - } -} - -function JavaScriptException(e){ - $clinit_JavaScriptException(); - $$init_0(this); - $fillInStackTrace(this); - this.backingJsObject = e; - $linkBack(this, e); - this.detailMessage = e == null?'null':toString_40(e); - this.description = ''; - this.e = e; - this.description = ''; -} - -function getExceptionDescription0(e){ - return e == null?null:e.message; -} - -function getExceptionName0(e){ - return e == null?null:e.name; -} - -defineClass(477, 863, {477:1, 3:1, 102:1, 60:1, 78:1}, JavaScriptException); -_.getMessage = function getMessage_0(){ - $ensureInit(this); - return this.message_0; -} -; -_.getThrown = function getThrown(){ - return maskUndefined(this.e) === maskUndefined(NOT_SET)?null:this.e; -} -; -var NOT_SET; -var Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptException', 477); -function $equals_3(this$static, other){ - return !!this$static && !!this$static.equals?this$static.equals(other):maskUndefined(this$static) === maskUndefined(other); -} - -function $hashCode(this$static){ - return !!this$static && !!this$static.hashCode?this$static.hashCode():getHashCode_0(this$static); -} - -var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); -function now_1(){ - if (Date.now) { - return Date.now(); - } - return (new Date).getTime(); -} - -function escapeChar(c, escapeTable){ - var lookedUp = escapeTable_0[c.charCodeAt(0)]; - return lookedUp == null?c:lookedUp; -} - -function escapeValue(toEscape){ - var escapeTable = (!escapeTable_0 && (escapeTable_0 = initEscapeTable()) , escapeTable_0); - var s = toEscape.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(x_0){ - return escapeChar(x_0, escapeTable); - } - ); - return '"' + s + '"'; -} - -function initEscapeTable(){ - var out = ['\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', '\\n', '\\u000B', '\\f', '\\r', '\\u000E', '\\u000F', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001A', '\\u001B', '\\u001C', '\\u001D', '\\u001E', '\\u001F']; - out[34] = '\\"'; - out[92] = '\\\\'; - out[173] = '\\u00ad'; - out[1536] = '\\u0600'; - out[1537] = '\\u0601'; - out[1538] = '\\u0602'; - out[1539] = '\\u0603'; - out[1757] = '\\u06dd'; - out[1807] = '\\u070f'; - out[6068] = '\\u17b4'; - out[6069] = '\\u17b5'; - out[8203] = '\\u200b'; - out[8204] = '\\u200c'; - out[8205] = '\\u200d'; - out[8206] = '\\u200e'; - out[8207] = '\\u200f'; - out[8232] = '\\u2028'; - out[8233] = '\\u2029'; - out[8234] = '\\u202a'; - out[8235] = '\\u202b'; - out[8236] = '\\u202c'; - out[8237] = '\\u202d'; - out[8238] = '\\u202e'; - out[8288] = '\\u2060'; - out[8289] = '\\u2061'; - out[8290] = '\\u2062'; - out[8291] = '\\u2063'; - out[8292] = '\\u2064'; - out[8298] = '\\u206a'; - out[8299] = '\\u206b'; - out[8300] = '\\u206c'; - out[8301] = '\\u206d'; - out[8302] = '\\u206e'; - out[8303] = '\\u206f'; - out[65279] = '\\ufeff'; - out[65529] = '\\ufff9'; - out[65530] = '\\ufffa'; - out[65531] = '\\ufffb'; - return out; -} - -var escapeTable_0; -defineClass(1948, 1, {}); -var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 1948); -function $clinit_Impl(){ - $clinit_Impl = emptyMethod; - !!($clinit_StackTraceCreator() , collector_1); -} - -function apply_19(jsFunction, thisObj, args){ - return jsFunction.apply(thisObj, args); - var __0; -} - -function enter_0(){ - var now_0; - if (entryDepth != 0) { - now_0 = now_1(); - if (now_0 - watchdogEntryDepthLastScheduled > 2000) { - watchdogEntryDepthLastScheduled = now_0; - watchdogEntryDepthTimerId = $wnd.setTimeout(watchdogEntryDepthRun, 10); - } - } - if (entryDepth++ == 0) { - $flushEntryCommands(($clinit_SchedulerImpl() , INSTANCE_3)); - return true; - } - return false; -} - -function entry_2(jsFunction){ - $clinit_Impl(); - return function(){ - return entry0_0(jsFunction, this, arguments); - var __0; - } - ; -} - -function entry0_0(jsFunction, thisObj, args){ - var initialEntry; - initialEntry = enter_0(); - try { - return apply_19(jsFunction, thisObj, args); - } - finally { - exit(initialEntry); - } -} - -function exit(initialEntry){ - initialEntry && $flushFinallyCommands(($clinit_SchedulerImpl() , INSTANCE_3)); - --entryDepth; - if (initialEntry) { - if (watchdogEntryDepthTimerId != -1) { - watchdogEntryDepthCancel(watchdogEntryDepthTimerId); - watchdogEntryDepthTimerId = -1; - } - } -} - -function reportToBrowser(e){ - $clinit_Impl(); - $wnd.setTimeout(function(){ - throw e; - } - , 0); -} - -function watchdogEntryDepthCancel(timerId){ - $wnd.clearTimeout(timerId); -} - -function watchdogEntryDepthRun(){ - entryDepth != 0 && (entryDepth = 0); - watchdogEntryDepthTimerId = -1; -} - -var entryDepth = 0, watchdogEntryDepthLastScheduled = 0, watchdogEntryDepthTimerId = -1; -function $clinit_SchedulerImpl(){ - $clinit_SchedulerImpl = emptyMethod; - INSTANCE_3 = new SchedulerImpl; -} - -function $flushEntryCommands(this$static){ - var oldQueue, rescheduled; - if (this$static.entryCommands) { - rescheduled = null; - do { - oldQueue = this$static.entryCommands; - this$static.entryCommands = null; - rescheduled = runScheduledTasks(oldQueue, rescheduled); - } - while (this$static.entryCommands); - this$static.entryCommands = rescheduled; - } -} - -function $flushFinallyCommands(this$static){ - var oldQueue, rescheduled; - if (this$static.finallyCommands) { - rescheduled = null; - do { - oldQueue = this$static.finallyCommands; - this$static.finallyCommands = null; - rescheduled = runScheduledTasks(oldQueue, rescheduled); - } - while (this$static.finallyCommands); - this$static.finallyCommands = rescheduled; - } -} - -function SchedulerImpl(){ -} - -function push_0(queue, task){ - !queue && (queue = []); - queue[queue.length] = task; - return queue; -} - -function runScheduledTasks(tasks, rescheduled){ - var e, i, j, t; - for (i = 0 , j = tasks.length; i < j; i++) { - t = tasks[i]; - try { - t[1]?t[0].$_nullMethod() && (rescheduled = push_0(rescheduled, t)):t[0].$_nullMethod(); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 78)) { - e = $e0; - $clinit_Impl(); - reportToBrowser(instanceOf(e, 477)?castTo(e, 477).getThrown():e); - } - else - throw toJs($e0); - } - } - return rescheduled; -} - -defineClass(890, 1948, {}, SchedulerImpl); -var INSTANCE_3; -var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 890); -function $clinit_StackTraceCreator(){ - $clinit_StackTraceCreator = emptyMethod; - var c, enforceLegacy; - enforceLegacy = !supportsErrorStack(); - c = new StackTraceCreator$CollectorModernNoSourceMap; - collector_1 = enforceLegacy?new StackTraceCreator$CollectorLegacy:c; -} - -function captureStackTrace(error){ - $clinit_StackTraceCreator(); - collector_1.collect(error); -} - -function dropInternalFrames(stackTrace){ - var dropFrameUntilFnName, dropFrameUntilFnName2, i, numberOfFramesToSearch; - dropFrameUntilFnName = 'captureStackTrace'; - dropFrameUntilFnName2 = 'initializeBackingError'; - numberOfFramesToSearch = $wnd.Math.min(stackTrace.length, 5); - for (i = numberOfFramesToSearch - 1; i >= 0; i--) { - if ($equals_5(stackTrace[i].methodName, dropFrameUntilFnName) || $equals_5(stackTrace[i].methodName, dropFrameUntilFnName2)) { - stackTrace.length >= i + 1 && stackTrace.splice(0, i + 1); - break; - } - } - return stackTrace; -} - -function extractFunctionName(fnName){ - var fnRE = /function(?:\s+([\w$]+))?\s*\(/; - var match_0 = fnRE.exec(fnName); - return match_0 && match_0[1] || 'anonymous'; -} - -function parseInt_0(number){ - $clinit_StackTraceCreator(); - return parseInt(number) || -1; -} - -function split_1(t){ - $clinit_StackTraceCreator(); - var e = t.backingJsObject; - if (e && e.stack) { - var stack_0 = e.stack; - var toString_0 = e + '\n'; - stack_0.substring(0, toString_0.length) == toString_0 && (stack_0 = stack_0.substring(toString_0.length)); - return stack_0.split('\n'); - } - return []; -} - -function supportsErrorStack(){ - if (Error.stackTraceLimit > 0) { - $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; - return true; - } - return 'stack' in new Error; -} - -var collector_1; -defineClass(1960, 1, {}); -var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 1960); -function StackTraceCreator$CollectorLegacy(){ -} - -defineClass(864, 1960, {}, StackTraceCreator$CollectorLegacy); -_.collect = function collect(error){ - var seen = {}, name_1; - var fnStack = []; - error['fnStack'] = fnStack; - var callee = arguments.callee.caller; - while (callee) { - var name_0 = ($clinit_StackTraceCreator() , callee.name || (callee.name = extractFunctionName(callee.toString()))); - fnStack.push(name_0); - var keyName = ':' + name_0; - var withThisName = seen[keyName]; - if (withThisName) { - var i, j; - for (i = 0 , j = withThisName.length; i < j; i++) { - if (withThisName[i] === callee) { - return; - } - } - } - (withThisName || (seen[keyName] = [])).push(callee); - callee = callee.caller; - } -} -; -_.getStackTrace = function getStackTrace(t){ - var i, length_0, stack_0, stackTrace; - stack_0 = ($clinit_StackTraceCreator() , t && t['fnStack']?t['fnStack']:[]); - length_0 = stack_0.length; - stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, length_0, 0, 1); - for (i = 0; i < length_0; i++) { - stackTrace[i] = new StackTraceElement(stack_0[i], null, -1); - } - return stackTrace; -} -; -var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorLegacy_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorLegacy', 864); -function $parse(this$static, stString){ - var closeParen, col, endFileUrlIndex, fileName, index_0, lastColonIndex, line, location_0, toReturn; - location_0 = ''; - if (stString.length == 0) { - return this$static.createSte('Unknown', 'anonymous', -1, -1); - } - toReturn = $trim(stString); - $equals_5(toReturn.substr(0, 3), 'at ') && (toReturn = toReturn.substr(3)); - toReturn = toReturn.replace(/\[.*?\]/g, ''); - index_0 = toReturn.indexOf('('); - if (index_0 == -1) { - index_0 = toReturn.indexOf('@'); - if (index_0 == -1) { - location_0 = toReturn; - toReturn = ''; - } - else { - location_0 = $trim(toReturn.substr(index_0 + 1)); - toReturn = $trim(toReturn.substr(0, index_0)); - } - } - else { - closeParen = toReturn.indexOf(')', index_0); - location_0 = toReturn.substr(index_0 + 1, closeParen - (index_0 + 1)); - toReturn = $trim(toReturn.substr(0, index_0)); - } - index_0 = $indexOf_1(toReturn, fromCodePoint(46)); - index_0 != -1 && (toReturn = toReturn.substr(index_0 + 1)); - (toReturn.length == 0 || $equals_5(toReturn, 'Anonymous function')) && (toReturn = 'anonymous'); - lastColonIndex = $lastIndexOf(location_0, fromCodePoint(58)); - endFileUrlIndex = $lastIndexOf_0(location_0, fromCodePoint(58), lastColonIndex - 1); - line = -1; - col = -1; - fileName = 'Unknown'; - if (lastColonIndex != -1 && endFileUrlIndex != -1) { - fileName = location_0.substr(0, endFileUrlIndex); - line = parseInt_0(location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1))); - col = parseInt_0(location_0.substr(lastColonIndex + 1)); - } - return this$static.createSte(fileName, toReturn, line, col); -} - -defineClass(1961, 1960, {}); -_.collect = function collect_0(error){ -} -; -_.createSte = function createSte(fileName, method, line, col){ - return new StackTraceElement(method, fileName + '@' + col, line < 0?-1:line); -} -; -_.getStackTrace = function getStackTrace_0(t){ - var addIndex, i, length_0, stack_0, stackTrace, ste; - stack_0 = split_1(t); - stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); - addIndex = 0; - length_0 = stack_0.length; - if (length_0 == 0) { - return stackTrace; - } - ste = $parse(this, stack_0[0]); - $equals_5(ste.methodName, 'anonymous') || (stackTrace[addIndex++] = ste); - for (i = 1; i < length_0; i++) { - stackTrace[addIndex++] = $parse(this, stack_0[i]); - } - return stackTrace; -} -; -var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModern_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModern', 1961); -function StackTraceCreator$CollectorModernNoSourceMap(){ -} - -defineClass(865, 1961, {}, StackTraceCreator$CollectorModernNoSourceMap); -_.createSte = function createSte_0(fileName, method, line, col){ - return new StackTraceElement(method, fileName, -1); -} -; -var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModernNoSourceMap_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModernNoSourceMap', 865); -function $clinit_DateTimeFormat(){ - $clinit_DateTimeFormat = emptyMethod; - new HashMap; -} - -function $addPart(this$static, buf, count){ - var oldLength; - if (buf.string.length > 0) { - $add_3(this$static.patternParts, new DateTimeFormat$PatternPart(buf.string, count)); - oldLength = buf.string.length; - 0 < oldLength?(buf.string = buf.string.substr(0, 0)):0 > oldLength && (buf.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); - } -} - -function $format(this$static, date, timeZone){ - var ch_0, diff, i, j, keepDate, keepTime, n, toAppendTo, trailQuote; - !timeZone && (timeZone = createTimeZone(date.jsdate.getTimezoneOffset())); - diff = (date.jsdate.getTimezoneOffset() - timeZone.standardOffset) * 60000; - keepDate = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); - keepTime = keepDate; - if (keepDate.jsdate.getTimezoneOffset() != date.jsdate.getTimezoneOffset()) { - diff > 0?(diff -= 86400000):(diff += 86400000); - keepTime = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); - } - toAppendTo = new StringBuilder_0; - n = this$static.pattern.length; - for (i = 0; i < n;) { - ch_0 = $charAt(this$static.pattern, i); - if (ch_0 >= 97 && ch_0 <= 122 || ch_0 >= 65 && ch_0 <= 90) { - for (j = i + 1; j < n && $charAt(this$static.pattern, j) == ch_0; ++j) - ; - $subFormat(toAppendTo, ch_0, j - i, keepDate, keepTime, timeZone); - i = j; - } - else if (ch_0 == 39) { - ++i; - if (i < n && $charAt(this$static.pattern, i) == 39) { - toAppendTo.string += "'"; - ++i; - continue; - } - trailQuote = false; - while (!trailQuote) { - j = i; - while (j < n && $charAt(this$static.pattern, j) != 39) { - ++j; - } - if (j >= n) { - throw toJs(new IllegalArgumentException_0("Missing trailing '")); - } - j + 1 < n && $charAt(this$static.pattern, j + 1) == 39?++j:(trailQuote = true); - $append_11(toAppendTo, $substring_1(this$static.pattern, i, j)); - i = j + 1; - } - } - else { - toAppendTo.string += String.fromCharCode(ch_0); - ++i; - } - } - return toAppendTo.string; -} - -function $formatFractionalSeconds(buf, count, date){ - var time, value_0; - time = fromDouble_0(date.jsdate.getTime()); - if (compare_2(time, 0) < 0) { - value_0 = $intern_45 - toInt_0(mod(neg_0(time), $intern_45)); - value_0 == $intern_45 && (value_0 = 0); - } - else { - value_0 = toInt_0(mod(time, $intern_45)); - } - if (count == 1) { - value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); - $append_5(buf, 48 + value_0 & $intern_46); - } - else if (count == 2) { - value_0 = $wnd.Math.min((value_0 + 5) / 10 | 0, 99); - $zeroPaddingNumber(buf, value_0, 2); - } - else { - $zeroPaddingNumber(buf, value_0, 3); - count > 3 && $zeroPaddingNumber(buf, 0, count - 3); - } -} - -function $formatMonth(buf, count, date){ - var value_0; - value_0 = date.jsdate.getMonth(); - switch (count) { - case 5: - $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value_0]); - break; - case 4: - $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value_0]); - break; - case 3: - $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value_0]); - break; - default:$zeroPaddingNumber(buf, value_0 + 1, count); - } -} - -function $formatYear(buf, count, date){ - var value_0; - value_0 = date.jsdate.getFullYear() - $intern_47 + $intern_47; - value_0 < 0 && (value_0 = -value_0); - switch (count) { - case 1: - buf.string += value_0; - break; - case 2: - $zeroPaddingNumber(buf, value_0 % 100, 2); - break; - default:$zeroPaddingNumber(buf, value_0, count); - } -} - -function $getNextCharCountInPattern(pattern, start_0){ - var ch_0, next; - ch_0 = (checkCriticalStringElementIndex(start_0, pattern.length) , pattern.charCodeAt(start_0)); - next = start_0 + 1; - while (next < pattern.length && (checkCriticalStringElementIndex(next, pattern.length) , pattern.charCodeAt(next) == ch_0)) { - ++next; - } - return next - start_0; -} - -function $identifyAbutStart(this$static){ - var abut, i, len; - abut = false; - len = this$static.patternParts.array.length; - for (i = 0; i < len; i++) { - if ($isNumeric(castTo($get_11(this$static.patternParts, i), 434))) { - if (!abut && i + 1 < len && $isNumeric(castTo($get_11(this$static.patternParts, i + 1), 434))) { - abut = true; - castTo($get_11(this$static.patternParts, i), 434).abutStart = true; - } - } - else { - abut = false; - } - } -} - -function $isNumeric(part){ - var i; - if (part.count <= 0) { - return false; - } - i = $indexOf_1('MLydhHmsSDkK', fromCodePoint($charAt(part.text_0, 0))); - return i > 1 || i >= 0 && part.count < 3; -} - -function $matchString(text_0, start_0, data_0, pos){ - var bestMatch, bestMatchLength, count, i, length_0, textInLowerCase; - count = data_0.length; - bestMatchLength = 0; - bestMatch = -1; - textInLowerCase = $toLowerCase(text_0.substr(start_0), ($clinit_Locale() , ROOT)); - for (i = 0; i < count; ++i) { - length_0 = data_0[i].length; - if (length_0 > bestMatchLength && $startsWith(textInLowerCase, $toLowerCase(data_0[i], ROOT))) { - bestMatch = i; - bestMatchLength = length_0; - } - } - bestMatch >= 0 && (pos[0] = start_0 + bestMatchLength); - return bestMatch; -} - -function $parse_0(this$static, text_0, date){ - var abutPass, abutPat, abutStart, cal, count, i, parsePos, part, s; - cal = new DateRecord; - parsePos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); - abutPat = -1; - abutStart = 0; - abutPass = 0; - for (i = 0; i < this$static.patternParts.array.length; ++i) { - part = castTo($get_11(this$static.patternParts, i), 434); - if (part.count > 0) { - if (abutPat < 0 && part.abutStart) { - abutPat = i; - abutStart = parsePos[0]; - abutPass = 0; - } - if (abutPat >= 0) { - count = part.count; - if (i == abutPat) { - count -= abutPass++; - if (count == 0) { - return 0; - } - } - if (!$subParse(text_0, parsePos, part, count, cal)) { - i = abutPat - 1; - parsePos[0] = abutStart; - continue; - } - } - else { - abutPat = -1; - if (!$subParse(text_0, parsePos, part, 0, cal)) { - return 0; - } - } - } - else { - abutPat = -1; - if ($charAt(part.text_0, 0) == 32) { - s = parsePos[0]; - $skipSpace(text_0, parsePos); - if (parsePos[0] > s) { - continue; - } - } - else if ($startsWith_0(text_0, part.text_0, parsePos[0])) { - parsePos[0] += part.text_0.length; - continue; - } - return 0; - } - } - if (!$calcDate(cal, date)) { - return 0; - } - return parsePos[0]; -} - -function $parse_1(this$static, text_0){ - var charsConsumed, curDate, date; - curDate = new Date_0; - date = new Date_1(curDate.jsdate.getFullYear() - $intern_47, curDate.jsdate.getMonth(), curDate.jsdate.getDate()); - charsConsumed = $parse_0(this$static, text_0, date); - if (charsConsumed == 0 || charsConsumed < text_0.length) { - throw toJs(new IllegalArgumentException_0(text_0)); - } - return date; -} - -function $parseInt(text_0, pos){ - var ch_0, ind, ret; - ret = 0; - ind = pos[0]; - if (ind >= text_0.length) { - return -1; - } - ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); - while (ch_0 >= 48 && ch_0 <= 57) { - ret = ret * 10 + (ch_0 - 48); - ++ind; - if (ind >= text_0.length) { - break; - } - ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); - } - ind > pos[0]?(pos[0] = ind):(ret = -1); - return ret; -} - -function $parsePattern(this$static, pattern){ - var buf, ch_0, count, i, inQuote; - buf = new StringBuilder_0; - inQuote = false; - for (i = 0; i < pattern.length; i++) { - ch_0 = (checkCriticalStringElementIndex(i, pattern.length) , pattern.charCodeAt(i)); - if (ch_0 == 32) { - $addPart(this$static, buf, 0); - buf.string += ' '; - $addPart(this$static, buf, 0); - while (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 32)) { - ++i; - } - continue; - } - if (inQuote) { - if (ch_0 == 39) { - if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { - buf.string += String.fromCharCode(ch_0); - ++i; - } - else { - inQuote = false; - } - } - else { - buf.string += String.fromCharCode(ch_0); - } - continue; - } - if ($indexOf_1('GyMLdkHmsSEcDahKzZv', fromCodePoint(ch_0)) > 0) { - $addPart(this$static, buf, 0); - buf.string += String.fromCharCode(ch_0); - count = $getNextCharCountInPattern(pattern, i); - $addPart(this$static, buf, count); - i += count - 1; - continue; - } - if (ch_0 == 39) { - if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { - buf.string += "'"; - ++i; - } - else { - inQuote = true; - } - } - else { - buf.string += String.fromCharCode(ch_0); - } - } - $addPart(this$static, buf, 0); - $identifyAbutStart(this$static); -} - -function $parseTimeZoneOffset(text_0, pos, cal){ - var offset, sign, st, value_0; - if (pos[0] >= text_0.length) { - cal.tzOffset = 0; - return true; - } - switch ($charAt(text_0, pos[0])) { - case 43: - sign = 1; - break; - case 45: - sign = -1; - break; - default:cal.tzOffset = 0; - return true; - } - ++pos[0]; - st = pos[0]; - value_0 = $parseInt(text_0, pos); - if (value_0 == 0 && pos[0] == st) { - return false; - } - if (pos[0] < text_0.length && $charAt(text_0, pos[0]) == 58) { - offset = value_0 * 60; - ++pos[0]; - st = pos[0]; - value_0 = $parseInt(text_0, pos); - if (value_0 == 0 && pos[0] == st) { - return false; - } - offset += value_0; - } - else { - offset = value_0; - offset < 24 && pos[0] - st <= 2?(offset *= 60):(offset = offset % 100 + (offset / 100 | 0) * 60); - } - offset *= sign; - cal.tzOffset = -offset; - return true; -} - -function $skipSpace(text_0, pos){ - while (pos[0] < text_0.length && $indexOf_1(' \t\r\n', fromCodePoint($charAt(text_0, pos[0]))) >= 0) { - ++pos[0]; - } -} - -function $subFormat(buf, ch_0, count, adjustedDate, adjustedTime, timezone){ - var value_0, value0, value1, value10, value2, value3, value4, value5, value6, value7, value8, value9; - switch (ch_0) { - case 71: - value0 = adjustedDate.jsdate.getFullYear() - $intern_47 >= -1900?1:0; - count >= 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini'])[value0]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['BC', 'AD'])[value0]); - break; - case 121: - $formatYear(buf, count, adjustedDate); - break; - case 77: - $formatMonth(buf, count, adjustedDate); - break; - case 107: - value1 = adjustedTime.jsdate.getHours(); - value1 == 0?$zeroPaddingNumber(buf, 24, count):$zeroPaddingNumber(buf, value1, count); - break; - case 83: - $formatFractionalSeconds(buf, count, adjustedTime); - break; - case 69: - value2 = adjustedDate.jsdate.getDay(); - count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value2]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value2]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value2]); - break; - case 97: - adjustedTime.jsdate.getHours() >= 12 && adjustedTime.jsdate.getHours() < 24?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[1]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[0]); - break; - case 104: - value3 = adjustedTime.jsdate.getHours() % 12; - value3 == 0?$zeroPaddingNumber(buf, 12, count):$zeroPaddingNumber(buf, value3, count); - break; - case 75: - value4 = adjustedTime.jsdate.getHours() % 12; - $zeroPaddingNumber(buf, value4, count); - break; - case 72: - value5 = adjustedTime.jsdate.getHours(); - $zeroPaddingNumber(buf, value5, count); - break; - case 99: - value6 = adjustedDate.jsdate.getDay(); - count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value6]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value6]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value6]):$zeroPaddingNumber(buf, value6, 1); - break; - case 76: - value7 = adjustedDate.jsdate.getMonth(); - count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value7]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value7]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value7]):$zeroPaddingNumber(buf, value7 + 1, count); - break; - case 81: - value8 = adjustedDate.jsdate.getMonth() / 3 | 0; - count < 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Q1', 'Q2', 'Q3', 'Q4'])[value8]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'])[value8]); - break; - case 100: - value9 = adjustedDate.jsdate.getDate(); - $zeroPaddingNumber(buf, value9, count); - break; - case 109: - value10 = adjustedTime.jsdate.getMinutes(); - $zeroPaddingNumber(buf, value10, count); - break; - case 115: - value_0 = adjustedTime.jsdate.getSeconds(); - $zeroPaddingNumber(buf, value_0, count); - break; - case 122: - count < 4?$append_11(buf, timezone.tzNames[0]):$append_11(buf, timezone.tzNames[1]); - break; - case 118: - $append_11(buf, timezone.timezoneID); - break; - case 90: - count < 3?$append_11(buf, $getRFCTimeZoneString(timezone)):count == 3?$append_11(buf, $getISOTimeZoneString(timezone)):$append_11(buf, composeGMTString(timezone.standardOffset)); - break; - default:return false; - } - return true; -} - -function $subParse(text_0, pos, part, digitCount, cal){ - var ch_0, start_0, value_0; - $skipSpace(text_0, pos); - start_0 = pos[0]; - ch_0 = $charAt(part.text_0, 0); - value_0 = -1; - if ($isNumeric(part)) { - if (digitCount > 0) { - if (start_0 + digitCount > text_0.length) { - return false; - } - value_0 = $parseInt(text_0.substr(0, start_0 + digitCount), pos); - } - else { - value_0 = $parseInt(text_0, pos); - } - } - switch (ch_0) { - case 71: - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini']), pos); - cal.era = value_0; - return true; - case 77: - return $subParseMonth(text_0, pos, cal, value_0, start_0); - case 76: - return $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0); - case 69: - return $subParseDayOfWeek(text_0, pos, start_0, cal); - case 99: - return $subParseStandaloneDay(text_0, pos, start_0, cal); - case 97: - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM']), pos); - cal.ampm = value_0; - return true; - case 121: - return $subParseYear(text_0, pos, start_0, value_0, part, cal); - case 100: - if (value_0 <= 0) { - return false; - } - - cal.dayOfMonth = value_0; - return true; - case 83: - if (value_0 < 0) { - return false; - } - - return $subParseFractionalSeconds(value_0, start_0, pos[0], cal); - case 104: - value_0 == 12 && (value_0 = 0); - case 75: - case 72: - if (value_0 < 0) { - return false; - } - - cal.hours = value_0; - cal.midnightIs24 = false; - return true; - case 107: - if (value_0 < 0) { - return false; - } - - cal.hours = value_0; - cal.midnightIs24 = true; - return true; - case 109: - if (value_0 < 0) { - return false; - } - - cal.minutes = value_0; - return true; - case 115: - if (value_0 < 0) { - return false; - } - - cal.seconds = value_0; - return true; - case 90: - if (start_0 < text_0.length && (checkCriticalStringElementIndex(start_0, text_0.length) , text_0.charCodeAt(start_0) == 90)) { - ++pos[0]; - cal.tzOffset = 0; - return true; - } - - case 122: - case 118: - return $subParseTimeZoneInGMT(text_0, start_0, pos, cal); - default:return false; - } -} - -function $subParseDayOfWeek(text_0, pos, start_0, cal){ - var value_0; - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); - if (value_0 < 0) { - return false; - } - cal.dayOfWeek = value_0; - return true; -} - -function $subParseFractionalSeconds(value_0, start_0, end, cal){ - var a, i; - i = end - start_0; - if (i < 3) { - while (i < 3) { - value_0 *= 10; - ++i; - } - } - else { - a = 1; - while (i > 3) { - a *= 10; - --i; - } - value_0 = (value_0 + (a >> 1)) / a | 0; - } - cal.milliseconds = value_0; - return true; -} - -function $subParseMonth(text_0, pos, cal, value_0, start_0){ - if (value_0 < 0) { - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); - if (value_0 < 0) { - return false; - } - cal.month = value_0; - return true; - } - else if (value_0 > 0) { - cal.month = value_0 - 1; - return true; - } - return false; -} - -function $subParseStandaloneDay(text_0, pos, start_0, cal){ - var value_0; - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); - if (value_0 < 0) { - return false; - } - cal.dayOfWeek = value_0; - return true; -} - -function $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0){ - if (value_0 < 0) { - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); - if (value_0 < 0) { - return false; - } - cal.month = value_0; - return true; - } - else if (value_0 > 0) { - cal.month = value_0 - 1; - return true; - } - return false; -} - -function $subParseTimeZoneInGMT(text_0, start_0, pos, cal){ - if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'GMT'.length), 'GMT')) { - pos[0] = start_0 + 3; - return $parseTimeZoneOffset(text_0, pos, cal); - } - if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'UTC'.length), 'UTC')) { - pos[0] = start_0 + 3; - return $parseTimeZoneOffset(text_0, pos, cal); - } - return $parseTimeZoneOffset(text_0, pos, cal); -} - -function $subParseYear(text_0, pos, start_0, value_0, part, cal){ - var ambiguousTwoDigitYear, ch_0, date, defaultCenturyStartYear; - ch_0 = 32; - if (value_0 < 0) { - if (pos[0] >= text_0.length) { - return false; - } - ch_0 = $charAt(text_0, pos[0]); - if (ch_0 != 43 && ch_0 != 45) { - return false; - } - ++pos[0]; - value_0 = $parseInt(text_0, pos); - if (value_0 < 0) { - return false; - } - ch_0 == 45 && (value_0 = -value_0); - } - if (ch_0 == 32 && pos[0] - start_0 == 2 && part.count == 2) { - date = new Date_0; - defaultCenturyStartYear = date.jsdate.getFullYear() - $intern_47 + $intern_47 - 80; - ambiguousTwoDigitYear = defaultCenturyStartYear % 100; - cal.ambiguousYear = value_0 == ambiguousTwoDigitYear; - value_0 += (defaultCenturyStartYear / 100 | 0) * 100 + (value_0 < ambiguousTwoDigitYear?100:0); - } - cal.year = value_0; - return true; -} - -function $zeroPaddingNumber(buf, value_0, minWidth){ - var b, i; - b = 10; - for (i = 0; i < minWidth - 1; i++) { - value_0 < b && (buf.string += '0' , buf); - b *= 10; - } - buf.string += value_0; -} - -defineClass(1050, 1, {}); -var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 1050); -function $clinit_DateTimeFormat_0(){ - $clinit_DateTimeFormat_0 = emptyMethod; - $clinit_DateTimeFormat(); - cache = new HashMap; -} - -function DateTimeFormat(pattern){ - $clinit_DateTimeFormat(); - this.patternParts = new ArrayList; - this.pattern = pattern; - $parsePattern(this, pattern); -} - -function getFormat(pattern, dtfi){ - $clinit_DateTimeFormat_0(); - var defaultDtfi, dtf; - defaultDtfi = $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); - dtf = null; - dtfi == defaultDtfi && (dtf = castTo($getStringValue(cache, pattern), 615)); - if (!dtf) { - dtf = new DateTimeFormat(pattern); - dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); - } - return dtf; -} - -defineClass(615, 1050, {615:1}, DateTimeFormat); -var cache; -var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 615); -defineClass(2001, 1, {}); -var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 2001); -defineClass(2002, 2001, {}); -var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 2002); -function $clinit_LocaleInfo(){ - $clinit_LocaleInfo = emptyMethod; - instance_0 = new LocaleInfo; -} - -function $getDateTimeFormatInfo(this$static){ - !this$static.dateTimeFormatInfo && (this$static.dateTimeFormatInfo = new DateTimeFormatInfoImpl); - return this$static.dateTimeFormatInfo; -} - -function LocaleInfo(){ -} - -defineClass(1090, 1, {}, LocaleInfo); -var instance_0; -var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 1090); -function $getISOTimeZoneString(this$static){ - var data_0, offset; - offset = -this$static.standardOffset; - data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 58, 48, 48]); - if (offset < 0) { - data_0[0] = 45; - offset = -offset; - } - data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; - data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; - data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_46; - data_0[5] = data_0[5] + offset % 10 & $intern_46; - return valueOf_9(data_0, 0, data_0.length); -} - -function $getRFCTimeZoneString(this$static){ - var data_0, offset; - offset = -this$static.standardOffset; - data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 48, 48]); - if (offset < 0) { - data_0[0] = 45; - offset = -offset; - } - data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; - data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; - data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_46; - data_0[4] = data_0[4] + offset % 10 & $intern_46; - return valueOf_9(data_0, 0, data_0.length); -} - -function TimeZone(){ -} - -function composeGMTString(offset){ - var data_0; - data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); - if (offset <= 0) { - data_0[3] = 43; - offset = -offset; - } - data_0[4] = data_0[4] + ((offset / 60 | 0) / 10 | 0) & $intern_46; - data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_46; - data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_46; - data_0[8] = data_0[8] + offset % 10 & $intern_46; - return valueOf_9(data_0, 0, data_0.length); -} - -function composePOSIXTimeZoneID(offset){ - var str; - if (offset == 0) { - return 'Etc/GMT'; - } - if (offset < 0) { - offset = -offset; - str = 'Etc/GMT-'; - } - else { - str = 'Etc/GMT+'; - } - return str + offsetDisplay(offset); -} - -function composeUTCString(offset){ - var str; - if (offset == 0) { - return 'UTC'; - } - if (offset < 0) { - offset = -offset; - str = 'UTC+'; - } - else { - str = 'UTC-'; - } - return str + offsetDisplay(offset); -} - -function createTimeZone(timeZoneOffsetInMinutes){ - var tz; - tz = new TimeZone; - tz.standardOffset = timeZoneOffsetInMinutes; - tz.timezoneID = composePOSIXTimeZoneID(timeZoneOffsetInMinutes); - tz.tzNames = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 2, 6, 1); - tz.tzNames[0] = composeUTCString(timeZoneOffsetInMinutes); - tz.tzNames[1] = composeUTCString(timeZoneOffsetInMinutes); - return tz; -} - -function offsetDisplay(offset){ - var hour, mins; - hour = offset / 60 | 0; - mins = offset % 60; - if (mins == 0) { - return '' + hour; - } - return '' + hour + ':' + ('' + mins); -} - -defineClass(1918, 1, {}, TimeZone); -_.standardOffset = 0; -var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 1918); -function DateTimeFormatInfoImpl(){ -} - -defineClass(1258, 2002, {}, DateTimeFormatInfoImpl); -var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 1258); -function DateTimeFormat$PatternPart(txt, cnt){ - this.text_0 = txt; - this.count = cnt; - this.abutStart = false; -} - -defineClass(434, 1, {434:1}, DateTimeFormat$PatternPart); -_.abutStart = false; -_.count = 0; -var Lcom_google_gwt_i18n_shared_DateTimeFormat$PatternPart_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat/PatternPart', 434); -function $compareTo_0(this$static, other){ - return compare_6(fromDouble_0(this$static.jsdate.getTime()), fromDouble_0(other.jsdate.getTime())); -} - -function $fixDaylightSavings(this$static, requestedHours){ - var badHours, copy, day, newTime, originalTimeInMillis, timeDiff, timeDiffHours, timeDiffMinutes; - requestedHours %= 24; - if (this$static.jsdate.getHours() != requestedHours) { - copy = new $wnd.Date(this$static.jsdate.getTime()); - copy.setDate(copy.getDate() + 1); - timeDiff = this$static.jsdate.getTimezoneOffset() - copy.getTimezoneOffset(); - if (timeDiff > 0) { - timeDiffHours = timeDiff / 60 | 0; - timeDiffMinutes = timeDiff % 60; - day = this$static.jsdate.getDate(); - badHours = this$static.jsdate.getHours(); - badHours + timeDiffHours >= 24 && ++day; - newTime = new $wnd.Date(this$static.jsdate.getFullYear(), this$static.jsdate.getMonth(), day, requestedHours + timeDiffHours, this$static.jsdate.getMinutes() + timeDiffMinutes, this$static.jsdate.getSeconds(), this$static.jsdate.getMilliseconds()); - this$static.jsdate.setTime(newTime.getTime()); - } - } - originalTimeInMillis = this$static.jsdate.getTime(); - this$static.jsdate.setTime(originalTimeInMillis + 3600000); - this$static.jsdate.getHours() != requestedHours && this$static.jsdate.setTime(originalTimeInMillis); -} - -function $setDate(this$static, date){ - var hours; - hours = this$static.jsdate.getHours(); - this$static.jsdate.setDate(date); - $fixDaylightSavings(this$static, hours); -} - -function $setHours(this$static, hours){ - this$static.jsdate.setHours(hours); - $fixDaylightSavings(this$static, hours); -} - -function $setMinutes(this$static, minutes){ - var hours; - hours = this$static.jsdate.getHours() + (minutes / 60 | 0); - this$static.jsdate.setMinutes(minutes); - $fixDaylightSavings(this$static, hours); -} - -function $setMonth(this$static, month){ - var hours; - hours = this$static.jsdate.getHours(); - this$static.jsdate.setMonth(month); - $fixDaylightSavings(this$static, hours); -} - -function $setSeconds(this$static, seconds){ - var hours; - hours = this$static.jsdate.getHours() + (seconds / 3600 | 0); - this$static.jsdate.setSeconds(seconds); - $fixDaylightSavings(this$static, hours); -} - -function $setTime(this$static, time){ - this$static.jsdate.setTime(toDouble_0(time)); -} - -function $setYear(this$static, year){ - var hours; - hours = this$static.jsdate.getHours(); - this$static.jsdate.setFullYear(year + $intern_47); - $fixDaylightSavings(this$static, hours); -} - -function Date_0(){ - this.jsdate = new $wnd.Date; -} - -function Date_1(year, month, date){ - this.jsdate = new $wnd.Date; - this.jsdate.setFullYear(year + $intern_47, month, date); - this.jsdate.setHours(0, 0, 0, 0); - $fixDaylightSavings(this, 0); -} - -function Date_2(date){ - this.jsdate = new $wnd.Date(toDouble_0(date)); -} - -function padTwo(number){ - return number < 10?'0' + number:'' + number; -} - -defineClass(199, 1, $intern_49, Date_0, Date_1, Date_2); -_.compareTo_0 = function compareTo_4(other){ - return $compareTo_0(this, castTo(other, 199)); -} -; -_.equals_0 = function equals_30(obj){ - return instanceOf(obj, 199) && eq(fromDouble_0(this.jsdate.getTime()), fromDouble_0(castTo(obj, 199).jsdate.getTime())); -} -; -_.hashCode_1 = function hashCode_30(){ - var time; - time = fromDouble_0(this.jsdate.getTime()); - return toInt_0(xor_0(time, shru_0(time, 32))); -} -; -_.toString_0 = function toString_31(){ - var hourOffset, minuteOffset, offset; - offset = -this.jsdate.getTimezoneOffset(); - hourOffset = (offset >= 0?'+':'') + (offset / 60 | 0); - minuteOffset = padTwo($wnd.Math.abs(offset) % 60); - return ($clinit_Date$StringData() , DAYS)[this.jsdate.getDay()] + ' ' + MONTHS[this.jsdate.getMonth()] + ' ' + padTwo(this.jsdate.getDate()) + ' ' + padTwo(this.jsdate.getHours()) + ':' + padTwo(this.jsdate.getMinutes()) + ':' + padTwo(this.jsdate.getSeconds()) + ' GMT' + hourOffset + minuteOffset + ' ' + this.jsdate.getFullYear(); -} -; -var Ljava_util_Date_2_classLit = createForClass('java.util', 'Date', 199); -function $calcDate(this$static, date){ - var adjustment, daysInCurrentMonth, defaultCenturyStart, offset, orgDayOfMonth, orgMonth, tmp; - this$static.era == 0 && this$static.year > 0 && (this$static.year = -(this$static.year - 1)); - this$static.year > $intern_42 && $setYear(date, this$static.year - $intern_47); - orgDayOfMonth = date.jsdate.getDate(); - $setDate(date, 1); - this$static.month >= 0 && $setMonth(date, this$static.month); - if (this$static.dayOfMonth >= 0) { - $setDate(date, this$static.dayOfMonth); - } - else if (this$static.month >= 0) { - tmp = new Date_1(date.jsdate.getFullYear() - $intern_47, date.jsdate.getMonth(), 35); - daysInCurrentMonth = 35 - tmp.jsdate.getDate(); - $setDate(date, $wnd.Math.min(daysInCurrentMonth, orgDayOfMonth)); - } - else { - $setDate(date, orgDayOfMonth); - } - this$static.hours < 0 && (this$static.hours = date.jsdate.getHours()); - this$static.ampm > 0 && this$static.hours < 12 && (this$static.hours += 12); - $setHours(date, this$static.hours == 24 && this$static.midnightIs24?0:this$static.hours); - this$static.minutes >= 0 && $setMinutes(date, this$static.minutes); - this$static.seconds >= 0 && $setSeconds(date, this$static.seconds); - this$static.milliseconds >= 0 && $setTime(date, add_20(mul_0(div(fromDouble_0(date.jsdate.getTime()), $intern_45), $intern_45), this$static.milliseconds)); - if (this$static.ambiguousYear) { - defaultCenturyStart = new Date_0; - $setYear(defaultCenturyStart, defaultCenturyStart.jsdate.getFullYear() - $intern_47 - 80); - lt(fromDouble_0(date.jsdate.getTime()), fromDouble_0(defaultCenturyStart.jsdate.getTime())) && $setYear(date, defaultCenturyStart.jsdate.getFullYear() - $intern_47 + 100); - } - if (this$static.dayOfWeek >= 0) { - if (this$static.dayOfMonth == -1) { - adjustment = (7 + this$static.dayOfWeek - date.jsdate.getDay()) % 7; - adjustment > 3 && (adjustment -= 7); - orgMonth = date.jsdate.getMonth(); - $setDate(date, date.jsdate.getDate() + adjustment); - date.jsdate.getMonth() != orgMonth && $setDate(date, date.jsdate.getDate() + (adjustment > 0?-7:7)); - } - else { - if (date.jsdate.getDay() != this$static.dayOfWeek) { - return false; - } - } - } - if (this$static.tzOffset > $intern_42) { - offset = date.jsdate.getTimezoneOffset(); - $setTime(date, add_20(fromDouble_0(date.jsdate.getTime()), (this$static.tzOffset - offset) * 60 * $intern_45)); - } - return true; -} - -function DateRecord(){ - Date_0.call(this); - this.era = -1; - this.ambiguousYear = false; - this.year = $intern_42; - this.month = -1; - this.dayOfMonth = -1; - this.ampm = -1; - this.midnightIs24 = false; - this.hours = -1; - this.minutes = -1; - this.seconds = -1; - this.milliseconds = -1; - this.dayOfWeek = -1; - this.tzOffset = $intern_42; -} - -defineClass(1915, 199, $intern_49, DateRecord); -_.ambiguousYear = false; -_.ampm = 0; -_.dayOfMonth = 0; -_.dayOfWeek = 0; -_.era = 0; -_.hours = 0; -_.midnightIs24 = false; -_.milliseconds = 0; -_.minutes = 0; -_.month = 0; -_.seconds = 0; -_.tzOffset = 0; -_.year = 0; -var Lcom_google_gwt_i18n_shared_impl_DateRecord_2_classLit = createForClass('com.google.gwt.i18n.shared.impl', 'DateRecord', 1915); -defineClass(1966, 1, {}); -_.isArray_0 = function isArray(){ - return null; -} -; -_.isBoolean = function isBoolean(){ - return null; -} -; -_.isNumber = function isNumber(){ - return null; -} -; -_.isObject = function isObject(){ - return null; -} -; -_.isString = function isString(){ - return null; -} -; -var Lcom_google_gwt_json_client_JSONValue_2_classLit = createForClass('com.google.gwt.json.client', 'JSONValue', 1966); -function $get_8(this$static, index_0){ - var v = this$static.jsArray[index_0]; - var func = ($clinit_JSONParser() , typeMap)[typeof v]; - return func?func(v):throwUnknownTypeException(typeof v); -} - -function $set_0(this$static, index_0, value_0){ - var previous; - previous = $get_8(this$static, index_0); - $set0(this$static, index_0, value_0); - return previous; -} - -function $set0(this$static, index_0, value_0){ - if (value_0) { - var func = value_0.getUnwrapper(); - value_0 = func(value_0); - } - else { - value_0 = undefined; - } - this$static.jsArray[index_0] = value_0; -} - -function JSONArray(){ - this.jsArray = []; -} - -function JSONArray_0(arr){ - this.jsArray = arr; -} - -function unwrap(value_0){ - return value_0.jsArray; -} - -defineClass(216, 1966, {216:1}, JSONArray, JSONArray_0); -_.equals_0 = function equals_31(other){ - if (!instanceOf(other, 216)) { - return false; - } - return $equals_3(this.jsArray, castTo(other, 216).jsArray); -} -; -_.getUnwrapper = function getUnwrapper(){ - return unwrap; -} -; -_.hashCode_1 = function hashCode_31(){ - return $hashCode(this.jsArray); -} -; -_.isArray_0 = function isArray_0(){ - return this; -} -; -_.toString_0 = function toString_32(){ - var c, i, sb; - sb = new StringBuilder_1('['); - for (i = 0 , c = this.jsArray.length; i < c; i++) { - i > 0 && (sb.string += ',' , sb); - $append_10(sb, $get_8(this, i)); - } - sb.string += ']'; - return sb.string; -} -; -var Lcom_google_gwt_json_client_JSONArray_2_classLit = createForClass('com.google.gwt.json.client', 'JSONArray', 216); -function $clinit_JSONBoolean(){ - $clinit_JSONBoolean = emptyMethod; - FALSE = new JSONBoolean(false); - TRUE = new JSONBoolean(true); -} - -function JSONBoolean(value_0){ - this.value_0 = value_0; -} - -function unwrap_0(value_0){ - return value_0.value_0; -} - -defineClass(483, 1966, {483:1}, JSONBoolean); -_.getUnwrapper = function getUnwrapper_0(){ - return unwrap_0; -} -; -_.isBoolean = function isBoolean_0(){ - return this; -} -; -_.toString_0 = function toString_33(){ - return $clinit_Boolean() , '' + this.value_0; -} -; -_.value_0 = false; -var FALSE, TRUE; -var Lcom_google_gwt_json_client_JSONBoolean_2_classLit = createForClass('com.google.gwt.json.client', 'JSONBoolean', 483); -function JSONException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(985, 60, $intern_43, JSONException); -var Lcom_google_gwt_json_client_JSONException_2_classLit = createForClass('com.google.gwt.json.client', 'JSONException', 985); -function $clinit_JSONNull(){ - $clinit_JSONNull = emptyMethod; - instance_1 = new JSONNull; -} - -function JSONNull(){ -} - -function unwrap_1(){ - return null; -} - -defineClass(1023, 1966, {}, JSONNull); -_.getUnwrapper = function getUnwrapper_1(){ - return unwrap_1; -} -; -_.toString_0 = function toString_34(){ - return 'null'; -} -; -var instance_1; -var Lcom_google_gwt_json_client_JSONNull_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNull', 1023); -function JSONNumber(value_0){ - this.value_0 = value_0; -} - -function unwrap_2(value_0){ - return value_0.value_0; -} - -defineClass(258, 1966, {258:1}, JSONNumber); -_.equals_0 = function equals_32(other){ - if (!instanceOf(other, 258)) { - return false; - } - return this.value_0 == castTo(other, 258).value_0; -} -; -_.getUnwrapper = function getUnwrapper_2(){ - return unwrap_2; -} -; -_.hashCode_1 = function hashCode_32(){ - return $hashCode_0(this.value_0); -} -; -_.isNumber = function isNumber_0(){ - return this; -} -; -_.toString_0 = function toString_35(){ - return this.value_0 + ''; -} -; -_.value_0 = 0; -var Lcom_google_gwt_json_client_JSONNumber_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNumber', 258); -function $computeKeys0(this$static, result){ - var jsObject = this$static.jsObject; - var i = 0; - for (var key in jsObject) { - jsObject.hasOwnProperty(key) && (result[i++] = key); - } - return result; -} - -function $containsKey_2(this$static, key){ - return key in this$static.jsObject; -} - -function $get_9(this$static, key){ - if (key == null) { - throw toJs(new NullPointerException); - } - return $get0(this$static, key); -} - -function $get0(this$static, key){ - var jsObject = this$static.jsObject; - var v; - key = String(key); - jsObject.hasOwnProperty(key) && (v = jsObject[key]); - var func = ($clinit_JSONParser() , typeMap)[typeof v]; - var ret = func?func(v):throwUnknownTypeException(typeof v); - return ret; -} - -function $put_5(this$static, key, jsonValue){ - var previous; - if (key == null) { - throw toJs(new NullPointerException); - } - previous = $get_9(this$static, key); - $put0(this$static, key, jsonValue); - return previous; -} - -function $put0(this$static, key, value_0){ - if (value_0) { - var func = value_0.getUnwrapper(); - this$static.jsObject[key] = func(value_0); - } - else { - delete this$static.jsObject[key]; - } -} - -function JSONObject(){ - JSONObject_0.call(this, {}); -} - -function JSONObject_0(jsValue){ - this.jsObject = jsValue; -} - -function unwrap_3(value_0){ - return value_0.jsObject; -} - -defineClass(183, 1966, {183:1}, JSONObject, JSONObject_0); -_.equals_0 = function equals_33(other){ - if (!instanceOf(other, 183)) { - return false; - } - return $equals_3(this.jsObject, castTo(other, 183).jsObject); -} -; -_.getUnwrapper = function getUnwrapper_3(){ - return unwrap_3; -} -; -_.hashCode_1 = function hashCode_33(){ - return $hashCode(this.jsObject); -} -; -_.isObject = function isObject_0(){ - return this; -} -; -_.toString_0 = function toString_36(){ - var first, key, key$array, key$index, key$max, keys_0, sb; - sb = new StringBuilder_1('{'); - first = true; - keys_0 = $computeKeys0(this, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)); - for (key$array = keys_0 , key$index = 0 , key$max = key$array.length; key$index < key$max; ++key$index) { - key = key$array[key$index]; - first?(first = false):(sb.string += ', ' , sb); - $append_11(sb, escapeValue(key)); - sb.string += ':'; - $append_10(sb, $get_9(this, key)); - } - sb.string += '}'; - return sb.string; -} -; -var Lcom_google_gwt_json_client_JSONObject_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject', 183); -function JSONObject$1(this$0, val$keys){ - this.this$01 = this$0; - this.val$keys2 = val$keys; -} - -defineClass(596, $intern_9, $intern_10, JSONObject$1); -_.contains = function contains_27(o){ - return instanceOfString(o) && $containsKey_2(this.this$01, castToString(o)); -} -; -_.iterator_0 = function iterator_45(){ - return new AbstractList$IteratorImpl(new Arrays$ArrayList(this.val$keys2)); -} -; -_.size_1 = function size_36(){ - return this.val$keys2.length; -} -; -var Lcom_google_gwt_json_client_JSONObject$1_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject/1', 596); -function $clinit_JSONParser(){ - $clinit_JSONParser = emptyMethod; - typeMap = {'boolean':createBoolean, 'number':createNumber, 'string':createString, 'object':createObject, 'function':createObject, 'undefined':createUndefined}; -} - -function createBoolean(v){ - return $clinit_JSONBoolean() , v?TRUE:FALSE; -} - -function createNumber(v){ - return new JSONNumber(v); -} - -function createObject(o){ - if (!o) { - return $clinit_JSONNull() , instance_1; - } - var v = o.valueOf?o.valueOf():o; - if (v !== o) { - var func = typeMap[typeof v]; - return func?func(v):throwUnknownTypeException(typeof v); - } - else if (o instanceof Array || o instanceof $wnd.Array) { - return new JSONArray_0(o); - } - else { - return new JSONObject_0(o); - } -} - -function createString(v){ - return new JSONString(v); -} - -function createUndefined(){ - return null; -} - -function throwUnknownTypeException(typeString){ - $clinit_JSONParser(); - throw toJs(new JSONException("Unexpected typeof result '" + typeString + "'; please report this bug to the GWT team")); -} - -var typeMap; -function JSONString(value_0){ - if (value_0 == null) { - throw toJs(new NullPointerException); - } - this.value_0 = value_0; -} - -function unwrap_4(value_0){ - return value_0.value_0; -} - -defineClass(204, 1966, {204:1}, JSONString); -_.equals_0 = function equals_34(other){ - if (!instanceOf(other, 204)) { - return false; - } - return $equals_5(this.value_0, castTo(other, 204).value_0); -} -; -_.getUnwrapper = function getUnwrapper_4(){ - return unwrap_4; -} -; -_.hashCode_1 = function hashCode_34(){ - return getHashCode_1(this.value_0); -} -; -_.isString = function isString_0(){ - return this; -} -; -_.toString_0 = function toString_37(){ - return escapeValue(this.value_0); -} -; -var Lcom_google_gwt_json_client_JSONString_2_classLit = createForClass('com.google.gwt.json.client', 'JSONString', 204); -function canSet(array, value_0){ - var elementTypeCategory; - switch (getElementTypeCategory(array)) { - case 6: - return instanceOfString(value_0); - case 7: - return instanceOfDouble(value_0); - case 8: - return instanceOfBoolean(value_0); - case 3: - return Array.isArray(value_0) && (elementTypeCategory = getElementTypeCategory(value_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16)); - case 11: - return value_0 != null && typeof value_0 === 'function'; - case 12: - return value_0 != null && (typeof value_0 === 'object' || typeof value_0 == 'function'); - case 0: - return canCast(value_0, array.__elementTypeId$); - case 2: - return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn); - case 1: - return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn) || canCast(value_0, array.__elementTypeId$); - default:return true; - } -} - -function getClassLiteralForArray(clazz, dimensions){ - return getClassLiteralForArray_0(clazz, dimensions); -} - -function getElementTypeCategory(array){ - return array.__elementTypeCategory$ == null?10:array.__elementTypeCategory$; -} - -function initMultidimensionalArray(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, count){ - return initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, 0, count); -} - -function initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count){ - var elementTypeCategory, i, isLastDimension, length_0, result; - length_0 = dimExprs[index_0]; - isLastDimension = index_0 == count - 1; - elementTypeCategory = isLastDimension?leafElementTypeCategory:0; - result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); - leafElementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, count - index_0), castableTypeMapExprs[index_0], elementTypeIds[index_0], elementTypeCategory, result); - if (!isLastDimension) { - ++index_0; - for (i = 0; i < length_0; ++i) { - result[i] = initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count); - } - } - return result; -} - -function initUnidimensionalArray(leafClassLiteral, castableTypeMap, elementTypeId, length_0, elementTypeCategory, dimensions){ - var result; - result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); - elementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, dimensions), castableTypeMap, elementTypeId, elementTypeCategory, result); - return result; -} - -function initializeArrayElementsWithDefaults(elementTypeCategory, length_0){ - var array = new Array(length_0); - var initValue; - switch (elementTypeCategory) { - case 14: - case 15: - initValue = 0; - break; - case 16: - initValue = false; - break; - default:return array; - } - for (var i = 0; i < length_0; ++i) { - array[i] = initValue; - } - return array; -} - -function isJavaArray(src_0){ - return Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; -} - -function setCheck(array, index_0, value_0){ - checkCriticalArrayType(value_0 == null || canSet(array, value_0)); - return array[index_0] = value_0; -} - -function stampJavaTypeInfo(arrayClass, castableTypeMap, elementTypeId, elementTypeCategory, array){ - array.___clazz = arrayClass; - array.castableTypeMap = castableTypeMap; - array.typeMarker = typeMarkerFn; - array.__elementTypeId$ = elementTypeId; - array.__elementTypeCategory$ = elementTypeCategory; - return array; -} - -function stampJavaTypeInfo_0(array, referenceType){ - getElementTypeCategory(referenceType) != 10 && stampJavaTypeInfo(getClass__Ljava_lang_Class___devirtual$(referenceType), referenceType.castableTypeMap, referenceType.__elementTypeId$, getElementTypeCategory(referenceType), array); - return array; -} - -function create_0(value_0){ - var a0, a1, a2; - a0 = value_0 & $intern_50; - a1 = value_0 >> 22 & $intern_50; - a2 = value_0 < 0?$intern_51:0; - return create0(a0, a1, a2); -} - -function create_1(a){ - return create0(a.l, a.m, a.h); -} - -function create0(l, m, h){ - return {l:l, m:m, h:h}; -} - -function divMod(a, b, computeRemainder){ - var aIsCopy, aIsMinValue, aIsNegative, bpower, c, negative; - if (b.l == 0 && b.m == 0 && b.h == 0) { - throw toJs(new ArithmeticException('divide by zero')); - } - if (a.l == 0 && a.m == 0 && a.h == 0) { - computeRemainder && (remainder = create0(0, 0, 0)); - return create0(0, 0, 0); - } - if (b.h == $intern_52 && b.m == 0 && b.l == 0) { - return divModByMinValue(a, computeRemainder); - } - negative = false; - if (b.h >> 19 != 0) { - b = neg(b); - negative = !negative; - } - bpower = powerOfTwo(b); - aIsNegative = false; - aIsMinValue = false; - aIsCopy = false; - if (a.h == $intern_52 && a.m == 0 && a.l == 0) { - aIsMinValue = true; - aIsNegative = true; - if (bpower == -1) { - a = create_1(($clinit_BigLongLib$Const() , MAX_VALUE)); - aIsCopy = true; - negative = !negative; - } - else { - c = shr(a, bpower); - negative && negate(c); - computeRemainder && (remainder = create0(0, 0, 0)); - return c; - } - } - else if (a.h >> 19 != 0) { - aIsNegative = true; - a = neg(a); - aIsCopy = true; - negative = !negative; - } - if (bpower != -1) { - return divModByShift(a, bpower, negative, aIsNegative, computeRemainder); - } - if (compare_1(a, b) < 0) { - computeRemainder && (aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h))); - return create0(0, 0, 0); - } - return divModHelper(aIsCopy?a:create0(a.l, a.m, a.h), b, negative, aIsNegative, aIsMinValue, computeRemainder); -} - -function divModByMinValue(a, computeRemainder){ - if (a.h == $intern_52 && a.m == 0 && a.l == 0) { - computeRemainder && (remainder = create0(0, 0, 0)); - return create_1(($clinit_BigLongLib$Const() , ONE)); - } - computeRemainder && (remainder = create0(a.l, a.m, a.h)); - return create0(0, 0, 0); -} - -function divModByShift(a, bpower, negative, aIsNegative, computeRemainder){ - var c; - c = shr(a, bpower); - negative && negate(c); - if (computeRemainder) { - a = maskRight(a, bpower); - aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h)); - } - return c; -} - -function divModHelper(a, b, negative, aIsNegative, aIsMinValue, computeRemainder){ - var bshift, gte, quotient, shift_0, a1, a2, a0; - shift_0 = numberOfLeadingZeros(b) - numberOfLeadingZeros(a); - bshift = shl(b, shift_0); - quotient = create0(0, 0, 0); - while (shift_0 >= 0) { - gte = trialSubtract(a, bshift); - if (gte) { - shift_0 < 22?(quotient.l |= 1 << shift_0 , undefined):shift_0 < 44?(quotient.m |= 1 << shift_0 - 22 , undefined):(quotient.h |= 1 << shift_0 - 44 , undefined); - if (a.l == 0 && a.m == 0 && a.h == 0) { - break; - } - } - a1 = bshift.m; - a2 = bshift.h; - a0 = bshift.l; - bshift.h = a2 >>> 1; - bshift.m = a1 >>> 1 | (a2 & 1) << 21; - bshift.l = a0 >>> 1 | (a1 & 1) << 21; - --shift_0; - } - negative && negate(quotient); - if (computeRemainder) { - if (aIsNegative) { - remainder = neg(a); - aIsMinValue && (remainder = sub_1(remainder, ($clinit_BigLongLib$Const() , ONE))); - } - else { - remainder = create0(a.l, a.m, a.h); - } - } - return quotient; -} - -function maskRight(a, bits){ - var b0, b1, b2; - if (bits <= 22) { - b0 = a.l & (1 << bits) - 1; - b1 = b2 = 0; - } - else if (bits <= 44) { - b0 = a.l; - b1 = a.m & (1 << bits - 22) - 1; - b2 = 0; - } - else { - b0 = a.l; - b1 = a.m; - b2 = a.h & (1 << bits - 44) - 1; - } - return create0(b0, b1, b2); -} - -function negate(a){ - var neg0, neg1, neg2; - neg0 = ~a.l + 1 & $intern_50; - neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; - neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; - a.l = neg0; - a.m = neg1; - a.h = neg2; -} - -function numberOfLeadingZeros(a){ - var b1, b2; - b2 = numberOfLeadingZeros_0(a.h); - if (b2 == 32) { - b1 = numberOfLeadingZeros_0(a.m); - return b1 == 32?numberOfLeadingZeros_0(a.l) + 32:b1 + 20 - 10; - } - else { - return b2 - 12; - } -} - -function powerOfTwo(a){ - var h, l, m; - l = a.l; - if ((l & l - 1) != 0) { - return -1; - } - m = a.m; - if ((m & m - 1) != 0) { - return -1; - } - h = a.h; - if ((h & h - 1) != 0) { - return -1; - } - if (h == 0 && m == 0 && l == 0) { - return -1; - } - if (h == 0 && m == 0 && l != 0) { - return numberOfTrailingZeros(l); - } - if (h == 0 && m != 0 && l == 0) { - return numberOfTrailingZeros(m) + 22; - } - if (h != 0 && m == 0 && l == 0) { - return numberOfTrailingZeros(h) + 44; - } - return -1; -} - -function toDoubleHelper(a){ - return a.l + a.m * $intern_53 + a.h * $intern_54; -} - -function trialSubtract(a, b){ - var sum0, sum1, sum2; - sum2 = a.h - b.h; - if (sum2 < 0) { - return false; - } - sum0 = a.l - b.l; - sum1 = a.m - b.m + (sum0 >> 22); - sum2 += sum1 >> 22; - if (sum2 < 0) { - return false; - } - a.l = sum0 & $intern_50; - a.m = sum1 & $intern_50; - a.h = sum2 & $intern_51; - return true; -} - -var remainder; -function add_19(a, b){ - var sum0, sum1, sum2; - sum0 = a.l + b.l; - sum1 = a.m + b.m + (sum0 >> 22); - sum2 = a.h + b.h + (sum1 >> 22); - return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); -} - -function and(a, b){ - return create0(a.l & b.l, a.m & b.m, a.h & b.h); -} - -function compare_1(a, b){ - var a0, a1, a2, b0, b1, b2, signA, signB; - signA = a.h >> 19; - signB = b.h >> 19; - if (signA != signB) { - return signB - signA; - } - a2 = a.h; - b2 = b.h; - if (a2 != b2) { - return a2 - b2; - } - a1 = a.m; - b1 = b.m; - if (a1 != b1) { - return a1 - b1; - } - a0 = a.l; - b0 = b.l; - return a0 - b0; -} - -function fromDouble(value_0){ - var a0, a1, a2, negative, result; - if (isNaN(value_0)) { - return $clinit_BigLongLib$Const() , ZERO; - } - if (value_0 < -9223372036854775808) { - return $clinit_BigLongLib$Const() , MIN_VALUE; - } - if (value_0 >= 9223372036854775807) { - return $clinit_BigLongLib$Const() , MAX_VALUE; - } - negative = false; - if (value_0 < 0) { - negative = true; - value_0 = -value_0; - } - a2 = 0; - if (value_0 >= $intern_54) { - a2 = round_int(value_0 / $intern_54); - value_0 -= a2 * $intern_54; - } - a1 = 0; - if (value_0 >= $intern_53) { - a1 = round_int(value_0 / $intern_53); - value_0 -= a1 * $intern_53; - } - a0 = round_int(value_0); - result = create0(a0, a1, a2); - negative && negate(result); - return result; -} - -function mul(a, b){ - var a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c0, c00, c01, c1, c10, c11, c12, c13, c2, c22, c23, c24, p0, p1, p2, p3, p4; - a0 = a.l & 8191; - a1 = a.l >> 13 | (a.m & 15) << 9; - a2 = a.m >> 4 & 8191; - a3 = a.m >> 17 | (a.h & 255) << 5; - a4 = (a.h & 1048320) >> 8; - b0 = b.l & 8191; - b1 = b.l >> 13 | (b.m & 15) << 9; - b2 = b.m >> 4 & 8191; - b3 = b.m >> 17 | (b.h & 255) << 5; - b4 = (b.h & 1048320) >> 8; - p0 = a0 * b0; - p1 = a1 * b0; - p2 = a2 * b0; - p3 = a3 * b0; - p4 = a4 * b0; - if (b1 != 0) { - p1 += a0 * b1; - p2 += a1 * b1; - p3 += a2 * b1; - p4 += a3 * b1; - } - if (b2 != 0) { - p2 += a0 * b2; - p3 += a1 * b2; - p4 += a2 * b2; - } - if (b3 != 0) { - p3 += a0 * b3; - p4 += a1 * b3; - } - b4 != 0 && (p4 += a0 * b4); - c00 = p0 & $intern_50; - c01 = (p1 & 511) << 13; - c0 = c00 + c01; - c10 = p0 >> 22; - c11 = p1 >> 9; - c12 = (p2 & 262143) << 4; - c13 = (p3 & 31) << 17; - c1 = c10 + c11 + c12 + c13; - c22 = p2 >> 18; - c23 = p3 >> 5; - c24 = (p4 & 4095) << 8; - c2 = c22 + c23 + c24; - c1 += c0 >> 22; - c0 &= $intern_50; - c2 += c1 >> 22; - c1 &= $intern_50; - c2 &= $intern_51; - return create0(c0, c1, c2); -} - -function neg(a){ - var neg0, neg1, neg2; - neg0 = ~a.l + 1 & $intern_50; - neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; - neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; - return create0(neg0, neg1, neg2); -} - -function not(a){ - return create0(~a.l & $intern_50, ~a.m & $intern_50, ~a.h & $intern_51); -} - -function or(a, b){ - return create0(a.l | b.l, a.m | b.m, a.h | b.h); -} - -function shl(a, n){ - var res0, res1, res2; - n &= 63; - if (n < 22) { - res0 = a.l << n; - res1 = a.m << n | a.l >> 22 - n; - res2 = a.h << n | a.m >> 22 - n; - } - else if (n < 44) { - res0 = 0; - res1 = a.l << n - 22; - res2 = a.m << n - 22 | a.l >> 44 - n; - } - else { - res0 = 0; - res1 = 0; - res2 = a.l << n - 44; - } - return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); -} - -function shr(a, n){ - var a2, negative, res0, res1, res2; - n &= 63; - a2 = a.h; - negative = (a2 & $intern_52) != 0; - negative && (a2 |= -1048576); - if (n < 22) { - res2 = a2 >> n; - res1 = a.m >> n | a2 << 22 - n; - res0 = a.l >> n | a.m << 22 - n; - } - else if (n < 44) { - res2 = negative?$intern_51:0; - res1 = a2 >> n - 22; - res0 = a.m >> n - 22 | a2 << 44 - n; - } - else { - res2 = negative?$intern_51:0; - res1 = negative?$intern_50:0; - res0 = a2 >> n - 44; - } - return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); -} - -function shru(a, n){ - var a2, res0, res1, res2; - n &= 63; - a2 = a.h & $intern_51; - if (n < 22) { - res2 = a2 >>> n; - res1 = a.m >> n | a2 << 22 - n; - res0 = a.l >> n | a.m << 22 - n; - } - else if (n < 44) { - res2 = 0; - res1 = a2 >>> n - 22; - res0 = a.m >> n - 22 | a.h << 44 - n; - } - else { - res2 = 0; - res1 = 0; - res0 = a2 >>> n - 44; - } - return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); -} - -function sub_1(a, b){ - var sum0, sum1, sum2; - sum0 = a.l - b.l; - sum1 = a.m - b.m + (sum0 >> 22); - sum2 = a.h - b.h + (sum1 >> 22); - return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); -} - -function toDouble(a){ - if (compare_1(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { - return -toDoubleHelper(neg(a)); - } - return a.l + a.m * $intern_53 + a.h * $intern_54; -} - -function toInt(a){ - return a.l | a.m << 22; -} - -function toString_38(a){ - var digits, rem, res, tenPowerLong, zeroesNeeded; - if (a.l == 0 && a.m == 0 && a.h == 0) { - return '0'; - } - if (a.h == $intern_52 && a.m == 0 && a.l == 0) { - return '-9223372036854775808'; - } - if (a.h >> 19 != 0) { - return '-' + toString_38(neg(a)); - } - rem = a; - res = ''; - while (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { - tenPowerLong = create_0($intern_55); - rem = divMod(rem, tenPowerLong, true); - digits = '' + toInt(remainder); - if (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { - zeroesNeeded = 9 - digits.length; - for (; zeroesNeeded > 0; zeroesNeeded--) { - digits = '0' + digits; - } - } - res = digits + res; - } - return res; -} - -function xor(a, b){ - return create0(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); -} - -function $clinit_BigLongLib$Const(){ - $clinit_BigLongLib$Const = emptyMethod; - MAX_VALUE = create0($intern_50, $intern_50, 524287); - MIN_VALUE = create0(0, 0, $intern_52); - ONE = create_0(1); - create_0(2); - ZERO = create_0(0); -} - -var MAX_VALUE, MIN_VALUE, ONE, ZERO; -function toJava(e){ - var javaException; - if (instanceOf(e, 78)) { - return e; - } - javaException = e && e.__java$exception; - if (!javaException) { - javaException = new JavaScriptException(e); - captureStackTrace(javaException); - } - return javaException; -} - -function toJs(t){ - return t.backingJsObject; -} - -function add_20(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a + b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul(add_19(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function and_0(a, b){ - return createLongEmul(and(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function compare_2(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a - b; - if (!isNaN(result)) { - return result; - } - } - return compare_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b); -} - -function createLongEmul(big_0){ - var a2; - a2 = big_0.h; - if (a2 == 0) { - return big_0.l + big_0.m * $intern_53; - } - if (a2 == $intern_51) { - return big_0.l + big_0.m * $intern_53 - $intern_54; - } - return big_0; -} - -function div(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a / b; - if ($intern_56 < result && result < $intern_54) { - return result < 0?$wnd.Math.ceil(result):$wnd.Math.floor(result); - } - } - return createLongEmul(divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, false)); -} - -function eq(a, b){ - return compare_2(a, b) == 0; -} - -function fromDouble_0(value_0){ - if ($intern_56 < value_0 && value_0 < $intern_54) { - return value_0 < 0?$wnd.Math.ceil(value_0):$wnd.Math.floor(value_0); - } - return createLongEmul(fromDouble(value_0)); -} - -function gt(a, b){ - return compare_2(a, b) > 0; -} - -function gte_0(a, b){ - return compare_2(a, b) >= 0; -} - -function isSmallLong0(value_0){ - return typeof value_0 === 'number'; -} - -function lt(a, b){ - return compare_2(a, b) < 0; -} - -function mod(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a % b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul((divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, true) , remainder)); -} - -function mul_0(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a * b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul(mul(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function neg_0(a){ - var result; - if (isSmallLong0(a)) { - result = 0 - a; - if (!isNaN(result)) { - return result; - } - } - return createLongEmul(neg(a)); -} - -function neq(a, b){ - return compare_2(a, b) != 0; -} - -function not_0(a){ - return createLongEmul(not(isSmallLong0(a)?toBigLong(a):a)); -} - -function or_0(a, b){ - return createLongEmul(or(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function shl_0(a, n){ - return createLongEmul(shl(isSmallLong0(a)?toBigLong(a):a, n)); -} - -function shr_0(a, n){ - return createLongEmul(shr(isSmallLong0(a)?toBigLong(a):a, n)); -} - -function shru_0(a, n){ - return createLongEmul(shru(isSmallLong0(a)?toBigLong(a):a, n)); -} - -function sub_2(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a - b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul(sub_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function toBigLong(longValue){ - var a0, a1, a3, value_0; - value_0 = longValue; - a3 = 0; - if (value_0 < 0) { - value_0 += $intern_54; - a3 = $intern_51; - } - a1 = round_int(value_0 / $intern_53); - a0 = round_int(value_0 - a1 * $intern_53); - return create0(a0, a1, a3); -} - -function toDouble_0(a){ - var d; - if (isSmallLong0(a)) { - d = a; - return d == -0.?0:d; - } - return toDouble(a); -} - -function toInt_0(a){ - if (isSmallLong0(a)) { - return a | 0; - } - return toInt(a); -} - -function toString_39(a){ - if (isSmallLong0(a)) { - return '' + a; - } - return toString_38(a); -} - -function xor_0(a, b){ - return createLongEmul(xor(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function init(){ - $clinit_ElkJs(); - exportLayout(); -} - -function $split(this$static, input_0){ - return input_0.split(this$static); -} - -defineClass(1962, 1, {525:1}); -var Ljava_io_OutputStream_2_classLit = createForClass('java.io', 'OutputStream', 1962); -defineClass(1963, 1962, {525:1}); -var Ljava_io_FilterOutputStream_2_classLit = createForClass('java.io', 'FilterOutputStream', 1963); -function PrintStream(){ -} - -defineClass(866, 1963, {525:1}, PrintStream); -var Ljava_io_PrintStream_2_classLit = createForClass('java.io', 'PrintStream', 866); -function $replace0(this$static, start_0, end, toInsert){ - this$static.string = $substring_1(this$static.string, 0, start_0) + ('' + toInsert) + $substring_0(this$static.string, end); -} - -function $substring(this$static, end){ - return $substring_1(this$static.string, 0, end); -} - -function AbstractStringBuilder(string){ - this.string = string; -} - -defineClass(418, 1, {475:1}); -_.toString_0 = function toString_41(){ - return this.string; -} -; -var Ljava_lang_AbstractStringBuilder_2_classLit = createForClass('java.lang', 'AbstractStringBuilder', 418); -function ArithmeticException(explanation){ - RuntimeException_0.call(this, explanation); -} - -defineClass(529, 60, $intern_43, ArithmeticException); -var Ljava_lang_ArithmeticException_2_classLit = createForClass('java.lang', 'ArithmeticException', 529); -function IndexOutOfBoundsException(){ - RuntimeException.call(this); -} - -function IndexOutOfBoundsException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(73, 60, $intern_57, IndexOutOfBoundsException, IndexOutOfBoundsException_0); -var Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'IndexOutOfBoundsException', 73); -function ArrayIndexOutOfBoundsException(){ - IndexOutOfBoundsException.call(this); -} - -function ArrayIndexOutOfBoundsException_0(msg){ - IndexOutOfBoundsException_0.call(this, msg); -} - -defineClass(320, 73, {3:1, 320:1, 102:1, 73:1, 60:1, 78:1}, ArrayIndexOutOfBoundsException, ArrayIndexOutOfBoundsException_0); -var Ljava_lang_ArrayIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'ArrayIndexOutOfBoundsException', 320); -function ArrayStoreException(){ - RuntimeException.call(this); -} - -function ArrayStoreException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(528, 60, $intern_43, ArrayStoreException, ArrayStoreException_0); -var Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang', 'ArrayStoreException', 528); -function Error_0(message){ - Throwable_0.call(this, message); -} - -function Error_1(message, cause){ - Throwable_1.call(this, message, cause); -} - -defineClass(289, 78, $intern_58, Error_0); -var Ljava_lang_Error_2_classLit = createForClass('java.lang', 'Error', 289); -function AssertionError(){ - Throwable.call(this); -} - -function AssertionError_0(message){ - Error_1.call(this, message == null?'null':toString_40(message), instanceOf(message, 78)?castTo(message, 78):null); -} - -defineClass(194, 289, $intern_58, AssertionError, AssertionError_0); -var Ljava_lang_AssertionError_2_classLit = createForClass('java.lang', 'AssertionError', 194); -function $clinit_Boolean(){ - $clinit_Boolean = emptyMethod; - FALSE_0 = false; - TRUE_0 = true; -} - -function $booleanValue(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $compareTo_1(this$static, b){ - return compare_3((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); -} - -function compare_3(x_0, y_0){ - $clinit_Boolean(); - return x_0 == y_0?0:x_0?1:-1; -} - -function compareTo_Ljava_lang_Object__I__devirtual$(this$static, other){ - $clinit_Boolean(); - return instanceOfString(this$static)?$compareTo_9(this$static, castToString(other)):instanceOfDouble(this$static)?$compareTo_4(this$static, castToDouble(other)):instanceOfBoolean(this$static)?$compareTo_1(this$static, castToBoolean(other)):this$static.compareTo_0(other); -} - -booleanCastMap = {3:1, 476:1, 35:1}; -var FALSE_0, TRUE_0; -var Ljava_lang_Boolean_2_classLit = createForClass('java.lang', 'Boolean', 476); -function __parseAndValidateDouble(s){ - floatRegex == null && (floatRegex = new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$')); - if (!floatRegex.test(s)) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - return parseFloat(s); -} - -function __parseAndValidateInt(s, lowerBound, upperBound){ - var i, isTooLow, length_0, startIndex, toReturn; - if (s == null) { - throw toJs(new NumberFormatException('null')); - } - length_0 = s.length; - startIndex = length_0 > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 45 || (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 43))?1:0; - for (i = startIndex; i < length_0; i++) { - if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - } - toReturn = parseInt(s, 10); - isTooLow = toReturn < lowerBound; - if (isNaN(toReturn)) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - else if (isTooLow || toReturn > upperBound) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - return toReturn; -} - -function __parseAndValidateLong(s){ - var c, firstTime, head, i, length_0, maxDigits, minValue, negative, orig, radixPower, toReturn; - if (s == null) { - throw toJs(new NumberFormatException('null')); - } - orig = s; - length_0 = s.length; - negative = false; - if (length_0 > 0) { - c = (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0)); - if (c == 45 || c == 43) { - s = s.substr(1); - --length_0; - negative = c == 45; - } - } - if (length_0 == 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - while (s.length > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 48)) { - s = s.substr(1); - --length_0; - } - if (length_0 > ($clinit_Number$__ParseLong() , maxLengthForRadix)[10]) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - for (i = 0; i < length_0; i++) { - if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - } - toReturn = 0; - maxDigits = maxDigitsForRadix[10]; - radixPower = maxDigitsRadixPower[10]; - minValue = neg_0(maxValueForRadix[10]); - firstTime = true; - head = length_0 % maxDigits; - if (head > 0) { - toReturn = -parseInt(s.substr(0, head), 10); - s = s.substr(head); - length_0 -= head; - firstTime = false; - } - while (length_0 >= maxDigits) { - head = parseInt(s.substr(0, maxDigits), 10); - s = s.substr(maxDigits); - length_0 -= maxDigits; - if (firstTime) { - firstTime = false; - } - else { - if (compare_2(toReturn, minValue) < 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - toReturn = mul_0(toReturn, radixPower); - } - toReturn = sub_2(toReturn, head); - } - if (compare_2(toReturn, 0) > 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - if (!negative) { - toReturn = neg_0(toReturn); - if (compare_2(toReturn, 0) < 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - } - return toReturn; -} - -function doubleValue__D__devirtual$(this$static){ - return instanceOfDouble(this$static)?(checkCriticalNotNull(this$static) , this$static):this$static.doubleValue(); -} - -defineClass(236, 1, {3:1, 236:1}); -var floatRegex; -var Ljava_lang_Number_2_classLit = createForClass('java.lang', 'Number', 236); -function $compareTo_2(this$static, b){ - return this$static.value_0 - b.value_0; -} - -function Byte(value_0){ - this.value_0 = value_0; -} - -function valueOf_2(b){ - var rebase, result; - rebase = b + 128; - result = ($clinit_Byte$BoxedValues() , boxedValues)[rebase]; - !result && (result = boxedValues[rebase] = new Byte(b)); - return result; -} - -defineClass(217, 236, {3:1, 217:1, 35:1, 236:1}, Byte); -_.compareTo_0 = function compareTo_5(b){ - return $compareTo_2(this, castTo(b, 217)); -} -; -_.doubleValue = function doubleValue_0(){ - return this.value_0; -} -; -_.equals_0 = function equals_35(o){ - return instanceOf(o, 217) && castTo(o, 217).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_35(){ - return this.value_0; -} -; -_.toString_0 = function toString_42(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Byte_2_classLit = createForClass('java.lang', 'Byte', 217); -function $clinit_Byte$BoxedValues(){ - $clinit_Byte$BoxedValues = emptyMethod; - boxedValues = initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, 256, 0, 1); -} - -var boxedValues; -function $compareTo_3(this$static, c){ - return this$static.value_0 - c.value_0; -} - -function Character(value_0){ - this.value_0 = value_0; -} - -function digit_0(c){ - if (c >= 48 && c < 48 + $wnd.Math.min(10, 10)) { - return c - 48; - } - if (c >= 97 && c < 97) { - return c - 97 + 10; - } - if (c >= 65 && c < 65) { - return c - 65 + 10; - } - return -1; -} - -function valueOf_3(c){ - var result; - if (c < 128) { - result = ($clinit_Character$BoxedValues() , boxedValues_0)[c]; - !result && (result = boxedValues_0[c] = new Character(c)); - return result; - } - return new Character(c); -} - -defineClass(172, 1, {3:1, 172:1, 35:1}, Character); -_.compareTo_0 = function compareTo_6(c){ - return $compareTo_3(this, castTo(c, 172)); -} -; -_.equals_0 = function equals_36(o){ - return instanceOf(o, 172) && castTo(o, 172).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_36(){ - return this.value_0; -} -; -_.toString_0 = function toString_43(){ - return String.fromCharCode(this.value_0); -} -; -_.value_0 = 0; -var digitRegex; -var Ljava_lang_Character_2_classLit = createForClass('java.lang', 'Character', 172); -function $clinit_Character$BoxedValues(){ - $clinit_Character$BoxedValues = emptyMethod; - boxedValues_0 = initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, 128, 0, 1); -} - -var boxedValues_0; -function ClassCastException(){ - RuntimeException.call(this); -} - -function ClassCastException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(205, 60, {3:1, 205:1, 102:1, 60:1, 78:1}, ClassCastException, ClassCastException_0); -var Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang', 'ClassCastException', 205); -function $compareTo_4(this$static, b){ - return compare_4((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); -} - -function $doubleValue(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $equals_4(this$static, o){ - return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(o); -} - -function $floatValue(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $hashCode_0(this$static){ - return round_int((checkCriticalNotNull(this$static) , this$static)); -} - -function $intValue(this$static){ - return round_int((checkCriticalNotNull(this$static) , this$static)); -} - -function $toString_6(this$static){ - return '' + (checkCriticalNotNull(this$static) , this$static); -} - -function compare_4(x_0, y_0){ - if (x_0 < y_0) { - return -1; - } - if (x_0 > y_0) { - return 1; - } - if (x_0 == y_0) { - return x_0 == 0?compare_4(1 / x_0, 1 / y_0):0; - } - return isNaN(x_0)?isNaN(y_0)?0:1:-1; -} - -function isInfinite(x_0){ - return !isNaN(x_0) && !isFinite(x_0); -} - -doubleCastMap = {3:1, 35:1, 333:1, 236:1}; -var Ljava_lang_Double_2_classLit = createForClass('java.lang', 'Double', 333); -function $compareTo_5(this$static, b){ - return compare_4(this$static.value_0, b.value_0); -} - -function Float(value_0){ - this.value_0 = value_0; -} - -function Float_0(s){ - this.value_0 = parseFloat_0(s); -} - -function parseFloat_0(s){ - var doubleValue; - doubleValue = __parseAndValidateDouble(s); - if (doubleValue > 3.4028234663852886E38) { - return $intern_59; - } - else if (doubleValue < -3.4028234663852886E38) { - return $intern_60; - } - return doubleValue; -} - -defineClass(155, 236, {3:1, 35:1, 155:1, 236:1}, Float, Float_0); -_.compareTo_0 = function compareTo_7(b){ - return $compareTo_5(this, castTo(b, 155)); -} -; -_.doubleValue = function doubleValue_1(){ - return this.value_0; -} -; -_.equals_0 = function equals_37(o){ - return instanceOf(o, 155) && $equals_4(this.value_0, castTo(o, 155).value_0); -} -; -_.hashCode_1 = function hashCode_37(){ - return round_int(this.value_0); -} -; -_.toString_0 = function toString_45(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Float_2_classLit = createForClass('java.lang', 'Float', 155); -function IllegalArgumentException(){ - RuntimeException.call(this); -} - -function IllegalArgumentException_0(message){ - RuntimeException_0.call(this, message); -} - -function IllegalArgumentException_1(cause){ - Throwable_1.call(this, 'The given string does not match the expected format for individual spacings.', cause); -} - -defineClass(32, 60, {3:1, 102:1, 32:1, 60:1, 78:1}, IllegalArgumentException, IllegalArgumentException_0, IllegalArgumentException_1); -var Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang', 'IllegalArgumentException', 32); -function IllegalStateException(){ - RuntimeException.call(this); -} - -function IllegalStateException_0(s){ - RuntimeException_0.call(this, s); -} - -defineClass(71, 60, $intern_43, IllegalStateException, IllegalStateException_0); -var Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang', 'IllegalStateException', 71); -function $compareTo_6(this$static, b){ - return compare_5(this$static.value_0, b.value_0); -} - -function Integer(value_0){ - this.value_0 = value_0; -} - -function bitCount(x_0){ - x_0 -= x_0 >> 1 & 1431655765; - x_0 = (x_0 >> 2 & 858993459) + (x_0 & 858993459); - x_0 = (x_0 >> 4) + x_0 & 252645135; - x_0 += x_0 >> 8; - x_0 += x_0 >> 16; - return x_0 & 63; -} - -function compare_5(x_0, y_0){ - return x_0 < y_0?-1:x_0 > y_0?1:0; -} - -function highestOneBit(i){ - var rtn; - if (i < 0) { - return $intern_42; - } - else if (i == 0) { - return 0; - } - else { - for (rtn = $intern_35; (rtn & i) == 0; rtn >>= 1) - ; - return rtn; - } -} - -function numberOfLeadingZeros_0(i){ - var m, n, y_0; - if (i < 0) { - return 0; - } - else if (i == 0) { - return 32; - } - else { - y_0 = -(i >> 16); - m = y_0 >> 16 & 16; - n = 16 - m; - i = i >> m; - y_0 = i - 256; - m = y_0 >> 16 & 8; - n += m; - i <<= m; - y_0 = i - $intern_61; - m = y_0 >> 16 & 4; - n += m; - i <<= m; - y_0 = i - $intern_17; - m = y_0 >> 16 & 2; - n += m; - i <<= m; - y_0 = i >> 14; - m = y_0 & ~(y_0 >> 1); - return n + 2 - m; - } -} - -function numberOfTrailingZeros(i){ - var r, rtn; - if (i == 0) { - return 32; - } - else { - rtn = 0; - for (r = 1; (r & i) == 0; r <<= 1) { - ++rtn; - } - return rtn; - } -} - -function reverse_1(i){ - var nibbles; - nibbles = ($clinit_Integer$ReverseNibbles() , reverseNibbles); - return nibbles[i >>> 28] | nibbles[i >> 24 & 15] << 4 | nibbles[i >> 20 & 15] << 8 | nibbles[i >> 16 & 15] << 12 | nibbles[i >> 12 & 15] << 16 | nibbles[i >> 8 & 15] << 20 | nibbles[i >> 4 & 15] << 24 | nibbles[i & 15] << 28; -} - -function rotateLeft(i, distance){ - while (distance-- > 0) { - i = i << 1 | (i < 0?1:0); - } - return i; -} - -function valueOf_4(i){ - var rebase, result; - if (i > -129 && i < 128) { - rebase = i + 128; - result = ($clinit_Integer$BoxedValues() , boxedValues_1)[rebase]; - !result && (result = boxedValues_1[rebase] = new Integer(i)); - return result; - } - return new Integer(i); -} - -defineClass(19, 236, {3:1, 35:1, 19:1, 236:1}, Integer); -_.compareTo_0 = function compareTo_8(b){ - return $compareTo_6(this, castTo(b, 19)); -} -; -_.doubleValue = function doubleValue_2(){ - return this.value_0; -} -; -_.equals_0 = function equals_38(o){ - return instanceOf(o, 19) && castTo(o, 19).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_38(){ - return this.value_0; -} -; -_.toString_0 = function toString_46(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Integer_2_classLit = createForClass('java.lang', 'Integer', 19); -function $clinit_Integer$BoxedValues(){ - $clinit_Integer$BoxedValues = emptyMethod; - boxedValues_1 = initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 256, 0, 1); -} - -var boxedValues_1; -function $clinit_Integer$ReverseNibbles(){ - $clinit_Integer$ReverseNibbles = emptyMethod; - reverseNibbles = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); -} - -var reverseNibbles; -function $compareTo_7(this$static, b){ - return compare_6(this$static.value_0, b.value_0); -} - -function Long(value_0){ - this.value_0 = value_0; -} - -function compare_6(x_0, y_0){ - return compare_2(x_0, y_0) < 0?-1:compare_2(x_0, y_0) > 0?1:0; -} - -function valueOf_5(i){ - var rebase, result; - if (compare_2(i, -129) > 0 && compare_2(i, 128) < 0) { - rebase = toInt_0(i) + 128; - result = ($clinit_Long$BoxedValues() , boxedValues_2)[rebase]; - !result && (result = boxedValues_2[rebase] = new Long(i)); - return result; - } - return new Long(i); -} - -defineClass(162, 236, {3:1, 35:1, 162:1, 236:1}, Long); -_.compareTo_0 = function compareTo_9(b){ - return $compareTo_7(this, castTo(b, 162)); -} -; -_.doubleValue = function doubleValue_3(){ - return toDouble_0(this.value_0); -} -; -_.equals_0 = function equals_39(o){ - return instanceOf(o, 162) && eq(castTo(o, 162).value_0, this.value_0); -} -; -_.hashCode_1 = function hashCode_39(){ - return toInt_0(this.value_0); -} -; -_.toString_0 = function toString_47(){ - return '' + toString_39(this.value_0); -} -; -_.value_0 = 0; -var Ljava_lang_Long_2_classLit = createForClass('java.lang', 'Long', 162); -function $clinit_Long$BoxedValues(){ - $clinit_Long$BoxedValues = emptyMethod; - boxedValues_2 = initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 256, 0, 1); -} - -var boxedValues_2; -function max_1(x_0, y_0){ - return compare_2(x_0, y_0) > 0?x_0:y_0; -} - -function signum(d){ - return d == 0 || isNaN(d)?d:d < 0?-1:1; -} - -defineClass(2039, 1, {}); -function NegativeArraySizeException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(1831, 60, $intern_43, NegativeArraySizeException); -var Ljava_lang_NegativeArraySizeException_2_classLit = createForClass('java.lang', 'NegativeArraySizeException', 1831); -function NullPointerException(){ - RuntimeException.call(this); -} - -function NullPointerException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(173, 598, {3:1, 102:1, 173:1, 60:1, 78:1}, NullPointerException, NullPointerException_0); -_.createError = function createError_0(msg){ - return new TypeError(msg); -} -; -var Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang', 'NullPointerException', 173); -function $clinit_Number$__ParseLong(){ - $clinit_Number$__ParseLong = emptyMethod; - var i; - maxDigitsForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); - maxDigitsRadixPower = initUnidimensionalArray(I_classLit, $intern_48, 25, 37, 15, 1); - maxLengthForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); - maxValueForRadix = initUnidimensionalArray(J_classLit, $intern_62, 25, 37, 14, 1); - for (i = 2; i <= 36; i++) { - maxDigitsRadixPower[i] = round_int($wnd.Math.pow(i, maxDigitsForRadix[i])); - maxValueForRadix[i] = div($intern_20, maxDigitsRadixPower[i]); - } -} - -var maxDigitsForRadix, maxDigitsRadixPower, maxLengthForRadix, maxValueForRadix; -function NumberFormatException(message){ - IllegalArgumentException_0.call(this, message); -} - -defineClass(127, 32, {3:1, 102:1, 32:1, 127:1, 60:1, 78:1}, NumberFormatException); -var Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang', 'NumberFormatException', 127); -function $compareTo_8(this$static, b){ - return this$static.value_0 - b.value_0; -} - -function Short(value_0){ - this.value_0 = value_0; -} - -function valueOf_6(s){ - var rebase, result; - if (s > -129 && s < 128) { - rebase = s + 128; - result = ($clinit_Short$BoxedValues() , boxedValues_3)[rebase]; - !result && (result = boxedValues_3[rebase] = new Short(s)); - return result; - } - return new Short(s); -} - -defineClass(184, 236, {3:1, 35:1, 236:1, 184:1}, Short); -_.compareTo_0 = function compareTo_10(b){ - return $compareTo_8(this, castTo(b, 184)); -} -; -_.doubleValue = function doubleValue_4(){ - return this.value_0; -} -; -_.equals_0 = function equals_40(o){ - return instanceOf(o, 184) && castTo(o, 184).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_40(){ - return this.value_0; -} -; -_.toString_0 = function toString_48(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Short_2_classLit = createForClass('java.lang', 'Short', 184); -function $clinit_Short$BoxedValues(){ - $clinit_Short$BoxedValues = emptyMethod; - boxedValues_3 = initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 256, 0, 1); -} - -var boxedValues_3; -function StackTraceElement(methodName, fileName, lineNumber){ - this.className = 'Unknown'; - this.methodName = methodName; - this.fileName = fileName; - this.lineNumber = lineNumber; -} - -defineClass(310, 1, {3:1, 310:1}, StackTraceElement); -_.equals_0 = function equals_41(other){ - var st; - if (instanceOf(other, 310)) { - st = castTo(other, 310); - return this.lineNumber == st.lineNumber && this.methodName == st.methodName && this.className == st.className && this.fileName == st.fileName; - } - return false; -} -; -_.hashCode_1 = function hashCode_41(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(this.lineNumber), this.className, this.methodName, this.fileName])); -} -; -_.toString_0 = function toString_49(){ - return this.className + '.' + this.methodName + '(' + (this.fileName != null?this.fileName:'Unknown Source') + (this.lineNumber >= 0?':' + this.lineNumber:'') + ')'; -} -; -_.lineNumber = 0; -var Ljava_lang_StackTraceElement_2_classLit = createForClass('java.lang', 'StackTraceElement', 310); -function $charAt(this$static, index_0){ - checkCriticalStringElementIndex(index_0, this$static.length); - return this$static.charCodeAt(index_0); -} - -function $compareTo_9(this$static, other){ - var a, b; - a = (checkCriticalNotNull(this$static) , this$static); - b = (checkCriticalNotNull(other) , other); - return a == b?0:a < b?-1:1; -} - -function $equals_5(this$static, other){ - return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other); -} - -function $equalsIgnoreCase(this$static, other){ - checkCriticalNotNull(this$static); - if (other == null) { - return false; - } - if ($equals_5(this$static, other)) { - return true; - } - return this$static.length == other.length && $equals_5(this$static.toLowerCase(), other.toLowerCase()); -} - -function $getChars0(this$static, srcBegin, srcEnd, dst, dstBegin){ - while (srcBegin < srcEnd) { - dst[dstBegin++] = $charAt(this$static, srcBegin++); - } -} - -function $indexOf_0(this$static, codePoint, startIndex){ - return $indexOf_2(this$static, fromCodePoint(codePoint), startIndex); -} - -function $indexOf_1(this$static, str){ - return this$static.indexOf(str); -} - -function $indexOf_2(this$static, str, startIndex){ - return this$static.indexOf(str, startIndex); -} - -function $intern(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $lastIndexOf(this$static, str){ - return this$static.lastIndexOf(str); -} - -function $lastIndexOf_0(this$static, str, start_0){ - return this$static.lastIndexOf(str, start_0); -} - -function $split_0(this$static, regex){ - var compiled, count, lastNonEmpty, lastTrail, matchIndex, matchObj, out, trail; - compiled = new RegExp(regex, 'g'); - out = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); - count = 0; - trail = this$static; - lastTrail = null; - while (true) { - matchObj = compiled.exec(trail); - if (matchObj == null || trail == '') { - out[count] = trail; - break; - } - else { - matchIndex = matchObj.index; - out[count] = trail.substr(0, matchIndex); - trail = $substring_1(trail, matchIndex + matchObj[0].length, trail.length); - compiled.lastIndex = 0; - if (lastTrail == trail) { - out[count] = trail.substr(0, 1); - trail = trail.substr(1); - } - lastTrail = trail; - ++count; - } - } - if (this$static.length > 0) { - lastNonEmpty = out.length; - while (lastNonEmpty > 0 && out[lastNonEmpty - 1] == '') { - --lastNonEmpty; - } - lastNonEmpty < out.length && (out.length = lastNonEmpty); - } - return out; -} - -function $startsWith(this$static, prefix){ - return $equals_5(this$static.substr(0, prefix.length), prefix); -} - -function $startsWith_0(this$static, prefix, toffset){ - return toffset >= 0 && $equals_5(this$static.substr(toffset, prefix.length), prefix); -} - -function $substring_0(this$static, beginIndex){ - return this$static.substr(beginIndex); -} - -function $substring_1(this$static, beginIndex, endIndex){ - return this$static.substr(beginIndex, endIndex - beginIndex); -} - -function $toCharArray(this$static){ - var charArr, n; - n = this$static.length; - charArr = initUnidimensionalArray(C_classLit, $intern_44, 25, n, 15, 1); - $getChars0(this$static, 0, n, charArr, 0); - return charArr; -} - -function $toLowerCase(this$static, locale){ - return locale == ($clinit_Locale() , $clinit_Locale() , defaultLocale)?this$static.toLocaleLowerCase():this$static.toLowerCase(); -} - -function $toString_7(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $trim(this$static){ - var end, length_0, start_0; - length_0 = this$static.length; - start_0 = 0; - while (start_0 < length_0 && (checkCriticalStringElementIndex(start_0, this$static.length) , this$static.charCodeAt(start_0) <= 32)) { - ++start_0; - } - end = length_0; - while (end > start_0 && (checkCriticalStringElementIndex(end - 1, this$static.length) , this$static.charCodeAt(end - 1) <= 32)) { - --end; - } - return start_0 > 0 || end < length_0?this$static.substr(start_0, end - start_0):this$static; -} - -function fromCharCode(array){ - return String.fromCharCode.apply(null, array); -} - -function fromCodePoint(codePoint){ - var hiSurrogate, loSurrogate; - if (codePoint >= $intern_63) { - hiSurrogate = $intern_64 + (codePoint - $intern_63 >> 10 & 1023) & $intern_46; - loSurrogate = 56320 + (codePoint - $intern_63 & 1023) & $intern_46; - return String.fromCharCode(hiSurrogate) + ('' + String.fromCharCode(loSurrogate)); - } - else { - return String.fromCharCode(codePoint & $intern_46); - } -} - -function valueOf_7(x_0){ - return x_0 == null?'null':toString_40(x_0); -} - -function valueOf_8(x_0){ - return valueOf_9(x_0, 0, x_0.length); -} - -function valueOf_9(x_0, offset, count){ - var batchEnd, batchStart, end, s; - end = offset + count; - checkCriticalStringBounds(offset, end, x_0.length); - s = ''; - for (batchStart = offset; batchStart < end;) { - batchEnd = $wnd.Math.min(batchStart + 10000, end); - s += fromCharCode(x_0.slice(batchStart, batchEnd)); - batchStart = batchEnd; - } - return s; -} - -stringCastMap = {3:1, 475:1, 35:1, 2:1}; -var Ljava_lang_String_2_classLit = createForClass('java.lang', 'String', 2); -function $append(this$static, x_0){ - this$static.string += String.fromCharCode(x_0); - return this$static; -} - -function $append_0(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $append_1(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $append_2(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_3(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_4(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $deleteCharAt(this$static, start_0){ - this$static.string = $substring_1(this$static.string, 0, start_0) + '' + $substring_0(this$static.string, start_0 + 1); - return this$static; -} - -function StringBuffer(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuffer_0(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuffer_1(s){ - AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); -} - -defineClass(107, 418, {475:1}, StringBuffer, StringBuffer_0, StringBuffer_1); -var Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang', 'StringBuffer', 107); -function $append_5(this$static, x_0){ - this$static.string += String.fromCharCode(x_0); - return this$static; -} - -function $append_6(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $append_7(this$static, x_0){ - return this$static.string += '' + x_0 , this$static; -} - -function $append_8(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_9(this$static, x_0, start_0, end){ - this$static.string += '' + $substring_1(x_0 == null?'null':toString_40(x_0), start_0, end); - return this$static; -} - -function $append_10(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_11(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_12(this$static, x_0){ - this$static.string += valueOf_9(x_0, 0, x_0.length); - return this$static; -} - -function $append_13(this$static, x_0, len){ - this$static.string += valueOf_9(x_0, 0, len); - return this$static; -} - -function $insert_0(this$static, index_0, x_0){ - this$static.string = $substring_1(this$static.string, 0, index_0) + ('' + x_0) + $substring_0(this$static.string, index_0); - return this$static; -} - -function StringBuilder(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuilder_0(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuilder_1(s){ - AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); -} - -defineClass(100, 418, {475:1}, StringBuilder, StringBuilder_0, StringBuilder_1); -var Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang', 'StringBuilder', 100); -function StringIndexOutOfBoundsException(message){ - IndexOutOfBoundsException_0.call(this, message); -} - -defineClass(687, 73, $intern_57, StringIndexOutOfBoundsException); -var Ljava_lang_StringIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'StringIndexOutOfBoundsException', 687); -function $clinit_System(){ - $clinit_System = emptyMethod; - err_0 = new PrintStream; -} - -function arraycopy(src_0, srcOfs, dest, destOfs, len){ - $clinit_System(); - var destArray, destComp, destEnd, destType, destlen, srcArray, srcComp, srcType, srclen; - checkCriticalNotNull_0(src_0, 'src'); - checkCriticalNotNull_0(dest, 'dest'); - srcType = getClass__Ljava_lang_Class___devirtual$(src_0); - destType = getClass__Ljava_lang_Class___devirtual$(dest); - checkCriticalArrayType_0((srcType.modifiers & 4) != 0, 'srcType is not an array'); - checkCriticalArrayType_0((destType.modifiers & 4) != 0, 'destType is not an array'); - srcComp = srcType.componentType; - destComp = destType.componentType; - checkCriticalArrayType_0((srcComp.modifiers & 1) != 0?srcComp == destComp:(destComp.modifiers & 1) == 0, "Array types don't match"); - srclen = src_0.length; - destlen = dest.length; - if (srcOfs < 0 || destOfs < 0 || len < 0 || srcOfs + len > srclen || destOfs + len > destlen) { - throw toJs(new IndexOutOfBoundsException); - } - if ((srcComp.modifiers & 1) == 0 && srcType != destType) { - srcArray = castToArray(src_0); - destArray = castToArray(dest); - if (maskUndefined(src_0) === maskUndefined(dest) && srcOfs < destOfs) { - srcOfs += len; - for (destEnd = destOfs + len; destEnd-- > destOfs;) { - setCheck(destArray, destEnd, srcArray[--srcOfs]); - } - } - else { - for (destEnd = destOfs + len; destOfs < destEnd;) { - setCheck(destArray, destOfs++, srcArray[srcOfs++]); - } - } - } - else - len > 0 && copy_0(src_0, srcOfs, dest, destOfs, len, true); -} - -defineClass(2043, 1, {}); -var err_0; -function Throwable$lambda$0$Type(){ -} - -defineClass(844, 1, {}, Throwable$lambda$0$Type); -_.apply_0 = function apply_20(arg0){ - return castTo(arg0, 78).backingJsObject; -} -; -var Ljava_lang_Throwable$lambda$0$Type_2_classLit = createForClass('java.lang', 'Throwable/lambda$0$Type', 844); -function UnsupportedOperationException(){ - RuntimeException.call(this); -} - -function UnsupportedOperationException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(41, 60, {3:1, 102:1, 60:1, 78:1, 41:1}, UnsupportedOperationException, UnsupportedOperationException_0); -var Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang', 'UnsupportedOperationException', 41); -function $clinit_BigDecimal(){ - $clinit_BigDecimal = emptyMethod; - var i, j, j0; - new BigDecimal(1, 0); - new BigDecimal(10, 0); - new BigDecimal(0, 0); - BI_SCALED_BY_ZERO = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); - CH_ZEROS = initUnidimensionalArray(C_classLit, $intern_44, 25, 100, 15, 1); - DOUBLE_FIVE_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); - DOUBLE_FIVE_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_FIVE_POW.length, 15, 1); - DOUBLE_TEN_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 10, 100, $intern_45, 10000, $intern_66, 1000000, 10000000, 100000000, $intern_55, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000]); - DOUBLE_TEN_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_TEN_POW.length, 15, 1); - ZERO_SCALED_BY = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); - i = 0; - for (; i < ZERO_SCALED_BY.length; i++) { - BI_SCALED_BY_ZERO[i] = new BigDecimal(i, 0); - ZERO_SCALED_BY[i] = new BigDecimal(0, i); - CH_ZEROS[i] = 48; - } - for (; i < CH_ZEROS.length; i++) { - CH_ZEROS[i] = 48; - } - for (j0 = 0; j0 < DOUBLE_FIVE_POW_BIT_LENGTH.length; j0++) { - DOUBLE_FIVE_POW_BIT_LENGTH[j0] = bitLength(DOUBLE_FIVE_POW[j0]); - } - for (j = 0; j < DOUBLE_TEN_POW_BIT_LENGTH.length; j++) { - DOUBLE_TEN_POW_BIT_LENGTH[j] = bitLength(DOUBLE_TEN_POW[j]); - } - $clinit_Multiplication(); -} - -function $compareTo_10(this$static, val){ - var diffPrecision, diffScale, thisSign, thisUnscaled, valUnscaled, valueSign; - thisSign = $signum(this$static); - valueSign = $signum(val); - if (thisSign == valueSign) { - if (this$static.scale == val.scale && this$static.bitLength < 54 && val.bitLength < 54) { - return this$static.smallValue < val.smallValue?-1:this$static.smallValue > val.smallValue?1:0; - } - diffScale = this$static.scale - val.scale; - diffPrecision = (this$static.precision > 0?this$static.precision:$wnd.Math.floor((this$static.bitLength - 1) * $intern_67) + 1) - (val.precision > 0?val.precision:$wnd.Math.floor((val.bitLength - 1) * $intern_67) + 1); - if (diffPrecision > diffScale + 1) { - return thisSign; - } - else if (diffPrecision < diffScale - 1) { - return -thisSign; - } - else { - thisUnscaled = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal); - valUnscaled = (!val.intVal && (val.intVal = valueOf_10(val.smallValue)) , val.intVal); - diffScale < 0?(thisUnscaled = $multiply(thisUnscaled, powerOf10(-diffScale))):diffScale > 0 && (valUnscaled = $multiply(valUnscaled, powerOf10(diffScale))); - return $compareTo_11(thisUnscaled, valUnscaled); - } - } - else - return thisSign < valueSign?-1:1; -} - -function $initFrom(this$static, val){ - var begin, ch_0, i, last, offset, scaleString, unscaled, unscaledBuffer; - begin = 0; - offset = 0; - last = val.length; - scaleString = null; - unscaledBuffer = new StringBuilder_0; - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { - ++offset; - ++begin; - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 45))) { - throw toJs(new NumberFormatException('For input string: "' + val + '"')); - } - } - while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 46) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { - ++offset; - } - unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 46)) { - ++offset; - begin = offset; - while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { - ++offset; - } - this$static.scale = offset - begin; - unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); - } - else { - this$static.scale = 0; - } - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 101 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 69))) { - ++offset; - begin = offset; - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { - ++offset; - offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 45) && ++begin; - } - scaleString = val.substr(begin, last - begin); - this$static.scale = this$static.scale - __parseAndValidateInt(scaleString, $intern_42, $intern_0); - if (this$static.scale != round_int(this$static.scale)) { - throw toJs(new NumberFormatException('Scale out of range.')); - } - } - unscaled = unscaledBuffer.string; - if (unscaled.length < 16) { - this$static.smallValue = (unscaledRegex == null && (unscaledRegex = new RegExp('^[+-]?\\d*$', 'i')) , unscaledRegex.test(unscaled)?parseInt(unscaled, 10):NaN); - if (isNaN(this$static.smallValue)) { - throw toJs(new NumberFormatException('For input string: "' + val + '"')); - } - this$static.bitLength = bitLength(this$static.smallValue); - } - else { - $setUnscaledValue(this$static, new BigInteger_4(unscaled)); - } - this$static.precision = unscaledBuffer.string.length; - for (i = 0; i < unscaledBuffer.string.length; ++i) { - ch_0 = $charAt(unscaledBuffer.string, i); - if (ch_0 != 45 && ch_0 != 48) { - break; - } - --this$static.precision; - } - this$static.precision == 0 && (this$static.precision = 1); -} - -function $setUnscaledValue(this$static, unscaledValue){ - var value_0; - this$static.intVal = unscaledValue; - this$static.bitLength = bitLength_1(unscaledValue); - this$static.bitLength < 54 && (this$static.smallValue = (value_0 = unscaledValue.numberLength > 1?or_0(shl_0(unscaledValue.digits[1], 32), and_0(unscaledValue.digits[0], $intern_68)):and_0(unscaledValue.digits[0], $intern_68) , toDouble_0(mul_0(unscaledValue.sign, value_0)))); -} - -function $signum(this$static){ - if (this$static.bitLength < 54) { - return this$static.smallValue < 0?-1:this$static.smallValue > 0?1:0; - } - return (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign; -} - -function $toPlainString(this$static){ - var begin, delta, intStr, result; - intStr = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); - if (this$static.scale == 0 || this$static.bitLength == 0 && this$static.smallValue != -1 && this$static.scale < 0) { - return intStr; - } - begin = $signum(this$static) < 0?1:0; - delta = this$static.scale; - result = (intStr.length + 1 + $wnd.Math.abs(round_int(this$static.scale)) , new StringBuilder_0); - begin == 1 && (result.string += '-' , result); - if (this$static.scale > 0) { - delta -= intStr.length - begin; - if (delta >= 0) { - result.string += '0.'; - for (; delta > CH_ZEROS.length; delta -= CH_ZEROS.length) { - $append_12(result, CH_ZEROS); - } - $append_13(result, CH_ZEROS, round_int(delta)); - $append_11(result, intStr.substr(begin)); - } - else { - delta = begin - delta; - $append_11(result, $substring_1(intStr, begin, round_int(delta))); - result.string += '.'; - $append_11(result, $substring_0(intStr, round_int(delta))); - } - } - else { - $append_11(result, intStr.substr(begin)); - for (; delta < -CH_ZEROS.length; delta += CH_ZEROS.length) { - $append_12(result, CH_ZEROS); - } - $append_13(result, CH_ZEROS, round_int(-delta)); - } - return result.string; -} - -function $toString_8(this$static){ - var begin, end, exponent, intString, result; - if (this$static.toStringImage != null) { - return this$static.toStringImage; - } - if (this$static.bitLength < 32) { - this$static.toStringImage = toDecimalScaledString(fromDouble_0(this$static.smallValue), round_int(this$static.scale)); - return this$static.toStringImage; - } - intString = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); - if (this$static.scale == 0) { - return intString; - } - begin = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign < 0?2:1; - end = intString.length; - exponent = -this$static.scale + end - begin; - result = new StringBuilder; - result.string += '' + intString; - if (this$static.scale > 0 && exponent >= -6) { - if (exponent >= 0) { - $insert_0(result, end - round_int(this$static.scale), String.fromCharCode(46)); - } - else { - result.string = $substring_1(result.string, 0, begin - 1) + '0.' + $substring_0(result.string, begin - 1); - $insert_0(result, begin + 1, valueOf_9(CH_ZEROS, 0, -round_int(exponent) - 1)); - } - } - else { - if (end - begin >= 1) { - $insert_0(result, begin, String.fromCharCode(46)); - ++end; - } - $insert_0(result, end, String.fromCharCode(69)); - exponent > 0 && $insert_0(result, ++end, String.fromCharCode(43)); - $insert_0(result, ++end, '' + toString_39(fromDouble_0(exponent))); - } - this$static.toStringImage = result.string; - return this$static.toStringImage; -} - -function BigDecimal(smallValue, scale){ - this.scale = scale; - this.bitLength = bitLength_0(smallValue); - this.bitLength < 54?(this.smallValue = toDouble_0(smallValue)):(this.intVal = valueOf_11(smallValue)); -} - -function BigDecimal_0(val){ - $clinit_BigDecimal(); - $initFrom(this, val); -} - -function bitLength(value_0){ - var negative, result; - if (value_0 > -140737488355328 && value_0 < 140737488355328) { - if (value_0 == 0) { - return 0; - } - negative = value_0 < 0; - negative && (value_0 = -value_0); - result = round_int($wnd.Math.floor($wnd.Math.log(value_0) / 0.6931471805599453)); - (!negative || value_0 != $wnd.Math.pow(2, result)) && ++result; - return result; - } - return bitLength_0(fromDouble_0(value_0)); -} - -function bitLength_0(value_0){ - var high; - compare_2(value_0, 0) < 0 && (value_0 = not_0(value_0)); - return high = toInt_0(shr_0(value_0, 32)) , 64 - (high != 0?numberOfLeadingZeros_0(high):numberOfLeadingZeros_0(toInt_0(value_0)) + 32); -} - -defineClass(240, 236, {3:1, 35:1, 236:1, 240:1}, BigDecimal, BigDecimal_0); -_.compareTo_0 = function compareTo_11(val){ - return $compareTo_10(this, castTo(val, 240)); -} -; -_.doubleValue = function doubleValue_5(){ - return __parseAndValidateDouble($toString_8(this)); -} -; -_.equals_0 = function equals_42(x_0){ - var x1; - if (this === x_0) { - return true; - } - if (instanceOf(x_0, 240)) { - x1 = castTo(x_0, 240); - return this.scale == x1.scale && $compareTo_10(this, x1) == 0; - } - return false; -} -; -_.hashCode_1 = function hashCode_42(){ - var longValue; - if (this.hashCode_0 != 0) { - return this.hashCode_0; - } - if (this.bitLength < 54) { - longValue = fromDouble_0(this.smallValue); - this.hashCode_0 = toInt_0(and_0(longValue, -1)); - this.hashCode_0 = 33 * this.hashCode_0 + toInt_0(and_0(shr_0(longValue, 32), -1)); - this.hashCode_0 = 17 * this.hashCode_0 + round_int(this.scale); - return this.hashCode_0; - } - this.hashCode_0 = 17 * $hashCode_1(this.intVal) + round_int(this.scale); - return this.hashCode_0; -} -; -_.toString_0 = function toString_50(){ - return $toString_8(this); -} -; -_.bitLength = 0; -_.hashCode_0 = 0; -_.precision = 0; -_.scale = 0; -_.smallValue = 0; -var BI_SCALED_BY_ZERO, CH_ZEROS, DOUBLE_FIVE_POW, DOUBLE_FIVE_POW_BIT_LENGTH, DOUBLE_TEN_POW, DOUBLE_TEN_POW_BIT_LENGTH, ZERO_SCALED_BY, unscaledRegex; -var Ljava_math_BigDecimal_2_classLit = createForClass('java.math', 'BigDecimal', 240); -function $clinit_BigInteger(){ - $clinit_BigInteger = emptyMethod; - var i; - ONE_0 = new BigInteger_0(1, 1); - TEN = new BigInteger_0(1, 10); - ZERO_0 = new BigInteger_0(0, 0); - MINUS_ONE = new BigInteger_0(-1, 1); - SMALL_VALUES = stampJavaTypeInfo(getClassLiteralForArray(Ljava_math_BigInteger_2_classLit, 1), $intern_16, 91, 0, [ZERO_0, ONE_0, new BigInteger_0(1, 2), new BigInteger_0(1, 3), new BigInteger_0(1, 4), new BigInteger_0(1, 5), new BigInteger_0(1, 6), new BigInteger_0(1, 7), new BigInteger_0(1, 8), new BigInteger_0(1, 9), TEN]); - TWO_POWS = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); - for (i = 0; i < TWO_POWS.length; i++) { - TWO_POWS[i] = valueOf_11(shl_0(1, i)); - } -} - -function $compareTo_11(this$static, val){ - if (this$static.sign > val.sign) { - return 1; - } - if (this$static.sign < val.sign) { - return -1; - } - if (this$static.numberLength > val.numberLength) { - return this$static.sign; - } - if (this$static.numberLength < val.numberLength) { - return -val.sign; - } - return this$static.sign * compareArrays(this$static.digits, val.digits, this$static.numberLength); -} - -function $cutOffLeadingZeroes(this$static){ - while (this$static.numberLength > 0 && this$static.digits[--this$static.numberLength] == 0) - ; - this$static.digits[this$static.numberLength++] == 0 && (this$static.sign = 0); -} - -function $equals_6(this$static, x_0){ - var x1; - if (maskUndefined(this$static) === maskUndefined(x_0)) { - return true; - } - if (instanceOf(x_0, 91)) { - x1 = castTo(x_0, 91); - return this$static.sign == x1.sign && this$static.numberLength == x1.numberLength && $equalsArrays(this$static, x1.digits); - } - return false; -} - -function $equalsArrays(this$static, b){ - var i; - for (i = this$static.numberLength - 1; i >= 0 && this$static.digits[i] === b[i]; i--) - ; - return i < 0; -} - -function $getFirstNonzeroDigit(this$static){ - var i; - if (this$static.firstNonzeroDigit == -2) { - if (this$static.sign == 0) { - i = -1; - } - else { - for (i = 0; this$static.digits[i] == 0; i++) - ; - } - this$static.firstNonzeroDigit = i; - } - return this$static.firstNonzeroDigit; -} - -function $hashCode_1(this$static){ - var i; - if (this$static.hashCode_0 != 0) { - return this$static.hashCode_0; - } - for (i = 0; i < this$static.digits.length; i++) { - this$static.hashCode_0 = this$static.hashCode_0 * 33 + (this$static.digits[i] & -1); - } - this$static.hashCode_0 = this$static.hashCode_0 * this$static.sign; - return this$static.hashCode_0; -} - -function $multiply(this$static, val){ - if (val.sign == 0) { - return ZERO_0; - } - if (this$static.sign == 0) { - return ZERO_0; - } - return $clinit_Multiplication() , karatsuba(this$static, val); -} - -function $pow(this$static, exp_0){ - var x_0; - if (exp_0 < 0) { - throw toJs(new ArithmeticException('Negative exponent')); - } - if (exp_0 == 0) { - return ONE_0; - } - else if (exp_0 == 1 || $equals_6(this$static, ONE_0) || $equals_6(this$static, ZERO_0)) { - return this$static; - } - if (!$testBit(this$static, 0)) { - x_0 = 1; - while (!$testBit(this$static, x_0)) { - ++x_0; - } - return $multiply(getPowerOfTwo(x_0 * exp_0), $pow($shiftRight(this$static, x_0), exp_0)); - } - return pow_0(this$static, exp_0); -} - -function $shiftLeft(this$static, n){ - if (n == 0 || this$static.sign == 0) { - return this$static; - } - return n > 0?shiftLeft(this$static, n):shiftRight(this$static, -n); -} - -function $shiftRight(this$static, n){ - if (n == 0 || this$static.sign == 0) { - return this$static; - } - return n > 0?shiftRight(this$static, n):shiftLeft(this$static, -n); -} - -function $testBit(this$static, n){ - var digit, firstNonZeroDigit, intCount; - if (n == 0) { - return (this$static.digits[0] & 1) != 0; - } - if (n < 0) { - throw toJs(new ArithmeticException('Negative bit address')); - } - intCount = n >> 5; - if (intCount >= this$static.numberLength) { - return this$static.sign < 0; - } - digit = this$static.digits[intCount]; - n = 1 << (n & 31); - if (this$static.sign < 0) { - firstNonZeroDigit = $getFirstNonzeroDigit(this$static); - if (intCount < firstNonZeroDigit) { - return false; - } - else - firstNonZeroDigit == intCount?(digit = -digit):(digit = ~digit); - } - return (digit & n) != 0; -} - -function BigInteger(sign, val){ - this.sign = sign; - if (val < $intern_69) { - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val | 0]); - } - else { - this.numberLength = 2; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val % $intern_69 | 0, val / $intern_69 | 0]); - } -} - -function BigInteger_0(sign, value_0){ - $clinit_BigInteger(); - this.sign = sign; - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [value_0]); -} - -function BigInteger_1(sign, numberLength, digits){ - $clinit_BigInteger(); - this.sign = sign; - this.numberLength = numberLength; - this.digits = digits; -} - -function BigInteger_2(sign, val){ - this.sign = sign; - if (eq(and_0(val, -4294967296), 0)) { - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val)]); - } - else { - this.numberLength = 2; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val), toInt_0(shr_0(val, 32))]); - } -} - -function BigInteger_3(digits){ - $clinit_BigInteger(); - if (digits.length == 0) { - this.sign = 0; - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); - } - else { - this.sign = 1; - this.numberLength = digits.length; - this.digits = digits; - $cutOffLeadingZeroes(this); - } -} - -function BigInteger_4(val){ - $clinit_BigInteger(); - BigInteger_5.call(this, val); -} - -function BigInteger_5(val){ - checkCriticalNotNull(val); - if (val.length == 0) { - throw toJs(new NumberFormatException('Zero length BigInteger')); - } - setFromString(this, val); -} - -function getPowerOfTwo(exp_0){ - var bitN, intCount, resDigits; - if (exp_0 < TWO_POWS.length) { - return TWO_POWS[exp_0]; - } - intCount = exp_0 >> 5; - bitN = exp_0 & 31; - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, intCount + 1, 15, 1); - resDigits[intCount] = 1 << bitN; - return new BigInteger_1(1, intCount + 1, resDigits); -} - -function setFromString(bi, val){ - var bigRadix, bigRadixDigit, bigRadixDigitsLength, charsPerInt, digitIndex, digits, endChar, newDigit, numberLength, sign, startChar, stringLength, substrEnd, substrStart, topChars; - stringLength = val.length; - endChar = stringLength; - checkCriticalStringElementIndex(0, val.length); - if (val.charCodeAt(0) == 45) { - sign = -1; - startChar = 1; - --stringLength; - } - else { - sign = 1; - startChar = 0; - } - charsPerInt = ($clinit_Conversion() , digitFitInInt)[10]; - bigRadixDigitsLength = stringLength / charsPerInt | 0; - topChars = stringLength % charsPerInt; - topChars != 0 && ++bigRadixDigitsLength; - digits = initUnidimensionalArray(I_classLit, $intern_48, 25, bigRadixDigitsLength, 15, 1); - bigRadix = bigRadices[8]; - digitIndex = 0; - substrEnd = startChar + (topChars == 0?charsPerInt:topChars); - for (substrStart = startChar; substrStart < endChar; substrStart = substrEnd , substrEnd = substrStart + charsPerInt) { - bigRadixDigit = __parseAndValidateInt(val.substr(substrStart, substrEnd - substrStart), $intern_42, $intern_0); - newDigit = ($clinit_Multiplication() , multiplyByInt(digits, digits, digitIndex, bigRadix)); - newDigit += inplaceAdd(digits, digitIndex, bigRadixDigit); - digits[digitIndex++] = newDigit; - } - numberLength = digitIndex; - bi.sign = sign; - bi.numberLength = numberLength; - bi.digits = digits; - $cutOffLeadingZeroes(bi); -} - -function valueOf_10(val){ - $clinit_BigInteger(); - if (val < 0) { - if (val != -1) { - return new BigInteger(-1, -val); - } - return MINUS_ONE; - } - else - return val <= 10?SMALL_VALUES[round_int(val)]:new BigInteger(1, val); -} - -function valueOf_11(val){ - $clinit_BigInteger(); - if (compare_2(val, 0) < 0) { - if (compare_2(val, -1) != 0) { - return new BigInteger_2(-1, neg_0(val)); - } - return MINUS_ONE; - } - else - return compare_2(val, 10) <= 0?SMALL_VALUES[toInt_0(val)]:new BigInteger_2(1, val); -} - -defineClass(91, 236, {3:1, 35:1, 236:1, 91:1}, BigInteger, BigInteger_0, BigInteger_1, BigInteger_2, BigInteger_3, BigInteger_4); -_.compareTo_0 = function compareTo_12(val){ - return $compareTo_11(this, castTo(val, 91)); -} -; -_.doubleValue = function doubleValue_6(){ - return __parseAndValidateDouble(toDecimalScaledString_0(this, 0)); -} -; -_.equals_0 = function equals_43(x_0){ - return $equals_6(this, x_0); -} -; -_.hashCode_1 = function hashCode_43(){ - return $hashCode_1(this); -} -; -_.toString_0 = function toString_51(){ - return toDecimalScaledString_0(this, 0); -} -; -_.firstNonzeroDigit = -2; -_.hashCode_0 = 0; -_.numberLength = 0; -_.sign = 0; -var MINUS_ONE, ONE_0, SMALL_VALUES, TEN, TWO_POWS, ZERO_0; -var Ljava_math_BigInteger_2_classLit = createForClass('java.math', 'BigInteger', 91); -function bitLength_1(val){ - var bLength, highDigit, i; - if (val.sign == 0) { - return 0; - } - bLength = val.numberLength << 5; - highDigit = val.digits[val.numberLength - 1]; - if (val.sign < 0) { - i = $getFirstNonzeroDigit(val); - if (i == val.numberLength - 1) { - --highDigit; - highDigit = highDigit | 0; - } - } - bLength -= numberOfLeadingZeros_0(highDigit); - return bLength; -} - -function shiftLeft(source, count){ - var intCount, resDigits, resLength, result; - intCount = count >> 5; - count &= 31; - resLength = source.numberLength + intCount + (count == 0?0:1); - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); - shiftLeft_0(resDigits, source.digits, intCount, count); - result = new BigInteger_1(source.sign, resLength, resDigits); - $cutOffLeadingZeroes(result); - return result; -} - -function shiftLeft_0(result, source, intCount, count){ - var i, i0, rightShiftCount; - if (count == 0) { - arraycopy(source, 0, result, intCount, result.length - intCount); - } - else { - rightShiftCount = 32 - count; - result[result.length - 1] = 0; - for (i0 = result.length - 1; i0 > intCount; i0--) { - result[i0] |= source[i0 - intCount - 1] >>> rightShiftCount; - result[i0 - 1] = source[i0 - intCount - 1] << count; - } - } - for (i = 0; i < intCount; i++) { - result[i] = 0; - } -} - -function shiftLeftOneBit(result, source, srcLen){ - var carry, i, val; - carry = 0; - for (i = 0; i < srcLen; i++) { - val = source[i]; - result[i] = val << 1 | carry; - carry = val >>> 31; - } - carry != 0 && (result[srcLen] = carry); -} - -function shiftRight(source, count){ - var i, intCount, resDigits, resLength, result; - intCount = count >> 5; - count &= 31; - if (intCount >= source.numberLength) { - return source.sign < 0?($clinit_BigInteger() , MINUS_ONE):($clinit_BigInteger() , ZERO_0); - } - resLength = source.numberLength - intCount; - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength + 1, 15, 1); - shiftRight_0(resDigits, resLength, source.digits, intCount, count); - if (source.sign < 0) { - for (i = 0; i < intCount && source.digits[i] == 0; i++) - ; - if (i < intCount || count > 0 && source.digits[i] << 32 - count != 0) { - for (i = 0; i < resLength && resDigits[i] == -1; i++) { - resDigits[i] = 0; - } - i == resLength && ++resLength; - ++resDigits[i]; - } - } - result = new BigInteger_1(source.sign, resLength, resDigits); - $cutOffLeadingZeroes(result); - return result; -} - -function shiftRight_0(result, resultLen, source, intCount, count){ - var allZero, i, leftShiftCount; - allZero = true; - for (i = 0; i < intCount; i++) { - allZero = allZero & source[i] == 0; - } - if (count == 0) { - arraycopy(source, intCount, result, 0, resultLen); - i = resultLen; - } - else { - leftShiftCount = 32 - count; - allZero = allZero & source[i] << leftShiftCount == 0; - for (i = 0; i < resultLen - 1; i++) { - result[i] = source[i + intCount] >>> count | source[i + intCount + 1] << leftShiftCount; - } - result[i] = source[i + intCount] >>> count; - ++i; - } - return allZero; -} - -function $clinit_Conversion(){ - $clinit_Conversion = emptyMethod; - bigRadices = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [$intern_42, 1162261467, $intern_35, 1220703125, 362797056, 1977326743, $intern_35, 387420489, $intern_55, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, $intern_35, 1291467969, 1544804416, 1838265625, 60466176]); - digitFitInInt = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); -} - -function divideLongByBillion(a){ - var aPos, quot, rem; - if (compare_2(a, 0) >= 0) { - quot = div(a, $intern_55); - rem = mod(a, $intern_55); - } - else { - aPos = shru_0(a, 1); - quot = div(aPos, 500000000); - rem = mod(aPos, 500000000); - rem = add_20(shl_0(rem, 1), and_0(a, 1)); - } - return or_0(shl_0(rem, 32), and_0(quot, $intern_68)); -} - -function toDecimalScaledString(value_0, scale){ - $clinit_Conversion(); - var currentChar, endPoint, exponent, insertPoint, j, j0, negNumber, prev, resLengthInChars, result, result1, result10, startPoint, v; - negNumber = compare_2(value_0, 0) < 0; - negNumber && (value_0 = neg_0(value_0)); - if (compare_2(value_0, 0) == 0) { - switch (scale) { - case 0: - return '0'; - case 1: - return '0.0'; - case 2: - return '0.00'; - case 3: - return '0.000'; - case 4: - return '0.0000'; - case 5: - return '0.00000'; - case 6: - return '0.000000'; - default:result10 = new StringBuilder; - scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); - result10.string += scale == $intern_42?'2147483648':'' + -scale; - return result10.string; - } - } - resLengthInChars = 18; - result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); - currentChar = resLengthInChars; - v = value_0; - do { - prev = v; - v = div(v, 10); - result[--currentChar] = toInt_0(add_20(48, sub_2(prev, mul_0(v, 10)))) & $intern_46; - } - while (compare_2(v, 0) != 0); - exponent = sub_2(sub_2(sub_2(resLengthInChars, currentChar), scale), 1); - if (scale == 0) { - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - if (scale > 0 && compare_2(exponent, -6) >= 0) { - if (compare_2(exponent, 0) >= 0) { - insertPoint = currentChar + toInt_0(exponent); - for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { - result[j0 + 1] = result[j0]; - } - result[++insertPoint] = 46; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); - } - for (j = 2; lt(j, add_20(neg_0(exponent), 1)); j++) { - result[--currentChar] = 48; - } - result[--currentChar] = 46; - result[--currentChar] = 48; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - startPoint = currentChar + 1; - endPoint = resLengthInChars; - result1 = new StringBuilder_0; - negNumber && (result1.string += '-' , result1); - if (endPoint - startPoint >= 1) { - $append_5(result1, result[currentChar]); - result1.string += '.'; - result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); - } - else { - result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - result1.string += 'E'; - compare_2(exponent, 0) > 0 && (result1.string += '+' , result1); - result1.string += '' + toString_39(exponent); - return result1.string; -} - -function toDecimalScaledString_0(val, scale){ - $clinit_Conversion(); - var currentChar, delta, digits, endPoint, exponent, highDigit, i, i1, insertPoint, j, j0, negNumber, numberLength, prev, previous, res, resDigit, resLengthInChars, result, result1, result10, result11, sign, startPoint, temp, temp1, tempLen, v; - sign = val.sign; - numberLength = val.numberLength; - digits = val.digits; - if (sign == 0) { - switch (scale) { - case 0: - return '0'; - case 1: - return '0.0'; - case 2: - return '0.00'; - case 3: - return '0.000'; - case 4: - return '0.0000'; - case 5: - return '0.00000'; - case 6: - return '0.000000'; - default:result10 = new StringBuilder; - scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); - result10.string += -scale; - return result10.string; - } - } - resLengthInChars = numberLength * 10 + 1 + 7; - result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); - currentChar = resLengthInChars; - if (numberLength == 1) { - highDigit = digits[0]; - if (highDigit < 0) { - v = and_0(highDigit, $intern_68); - do { - prev = v; - v = div(v, 10); - result[--currentChar] = 48 + toInt_0(sub_2(prev, mul_0(v, 10))) & $intern_46; - } - while (compare_2(v, 0) != 0); - } - else { - v = highDigit; - do { - prev = v; - v = v / 10 | 0; - result[--currentChar] = 48 + (prev - v * 10) & $intern_46; - } - while (v != 0); - } - } - else { - temp = initUnidimensionalArray(I_classLit, $intern_48, 25, numberLength, 15, 1); - tempLen = numberLength; - arraycopy(digits, 0, temp, 0, tempLen); - BIG_LOOP: while (true) { - result11 = 0; - for (i1 = tempLen - 1; i1 >= 0; i1--) { - temp1 = add_20(shl_0(result11, 32), and_0(temp[i1], $intern_68)); - res = divideLongByBillion(temp1); - temp[i1] = toInt_0(res); - result11 = toInt_0(shr_0(res, 32)); - } - resDigit = toInt_0(result11); - previous = currentChar; - do { - result[--currentChar] = 48 + resDigit % 10 & $intern_46; - } - while ((resDigit = resDigit / 10 | 0) != 0 && currentChar != 0); - delta = 9 - previous + currentChar; - for (i = 0; i < delta && currentChar > 0; i++) { - result[--currentChar] = 48; - } - j = tempLen - 1; - for (; temp[j] == 0; j--) { - if (j == 0) { - break BIG_LOOP; - } - } - tempLen = j + 1; - } - while (result[currentChar] == 48) { - ++currentChar; - } - } - negNumber = sign < 0; - exponent = resLengthInChars - currentChar - scale - 1; - if (scale == 0) { - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - if (scale > 0 && exponent >= -6) { - if (exponent >= 0) { - insertPoint = currentChar + exponent; - for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { - result[j0 + 1] = result[j0]; - } - result[++insertPoint] = 46; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); - } - for (j = 2; j < -exponent + 1; j++) { - result[--currentChar] = 48; - } - result[--currentChar] = 46; - result[--currentChar] = 48; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - startPoint = currentChar + 1; - endPoint = resLengthInChars; - result1 = new StringBuilder_0; - negNumber && (result1.string += '-' , result1); - if (endPoint - startPoint >= 1) { - $append_5(result1, result[currentChar]); - result1.string += '.'; - result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); - } - else { - result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - result1.string += 'E'; - exponent > 0 && (result1.string += '+' , result1); - result1.string += '' + exponent; - return result1.string; -} - -var bigRadices, digitFitInInt; -function add_21(op1, op2){ - var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, res0, resDigits, resSign, valueHi, valueLo; - op1Sign = op1.sign; - op2Sign = op2.sign; - if (op1Sign == 0) { - return op2; - } - if (op2Sign == 0) { - return op1; - } - op1Len = op1.numberLength; - op2Len = op2.numberLength; - if (op1Len + op2Len == 2) { - a = and_0(op1.digits[0], $intern_68); - b = and_0(op2.digits[0], $intern_68); - if (op1Sign == op2Sign) { - res0 = add_20(a, b); - valueLo = toInt_0(res0); - valueHi = toInt_0(shru_0(res0, 32)); - return valueHi == 0?new BigInteger_0(op1Sign, valueLo):new BigInteger_1(op1Sign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); - } - return valueOf_11(op1Sign < 0?sub_2(b, a):sub_2(a, b)); - } - else if (op1Sign == op2Sign) { - resSign = op1Sign; - resDigits = op1Len >= op2Len?add_22(op1.digits, op1Len, op2.digits, op2Len):add_22(op2.digits, op2Len, op1.digits, op1Len); - } - else { - cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); - if (cmp == 0) { - return $clinit_BigInteger() , ZERO_0; - } - if (cmp == 1) { - resSign = op1Sign; - resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); - } - else { - resSign = op2Sign; - resDigits = subtract_0(op2.digits, op2Len, op1.digits, op1Len); - } - } - res = new BigInteger_1(resSign, resDigits.length, resDigits); - $cutOffLeadingZeroes(res); - return res; -} - -function add_22(a, aSize, b, bSize){ - var res; - res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize + 1, 15, 1); - add_23(res, a, aSize, b, bSize); - return res; -} - -function add_23(res, a, aSize, b, bSize){ - var carry, i; - carry = add_20(and_0(a[0], $intern_68), and_0(b[0], $intern_68)); - res[0] = toInt_0(carry); - carry = shr_0(carry, 32); - if (aSize >= bSize) { - for (i = 1; i < bSize; i++) { - carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - for (; i < aSize; i++) { - carry = add_20(carry, and_0(a[i], $intern_68)); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - } - else { - for (i = 1; i < aSize; i++) { - carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - for (; i < bSize; i++) { - carry = add_20(carry, and_0(b[i], $intern_68)); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - } - compare_2(carry, 0) != 0 && (res[i] = toInt_0(carry)); -} - -function compareArrays(a, b, size_0){ - var i; - for (i = size_0 - 1; i >= 0 && a[i] === b[i]; i--) - ; - return i < 0?0:lt(and_0(a[i], $intern_68), and_0(b[i], $intern_68))?-1:1; -} - -function inplaceAdd(a, aSize, addend){ - var carry, i; - carry = and_0(addend, $intern_68); - for (i = 0; compare_2(carry, 0) != 0 && i < aSize; i++) { - carry = add_20(carry, and_0(a[i], $intern_68)); - a[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - return toInt_0(carry); -} - -function subtract(op1, op2){ - var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, resDigits, resSign; - op1Sign = op1.sign; - op2Sign = op2.sign; - if (op2Sign == 0) { - return op1; - } - if (op1Sign == 0) { - return op2.sign == 0?op2:new BigInteger_1(-op2.sign, op2.numberLength, op2.digits); - } - op1Len = op1.numberLength; - op2Len = op2.numberLength; - if (op1Len + op2Len == 2) { - a = and_0(op1.digits[0], $intern_68); - b = and_0(op2.digits[0], $intern_68); - op1Sign < 0 && (a = neg_0(a)); - op2Sign < 0 && (b = neg_0(b)); - return valueOf_11(sub_2(a, b)); - } - cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); - if (cmp == -1) { - resSign = -op2Sign; - resDigits = op1Sign == op2Sign?subtract_0(op2.digits, op2Len, op1.digits, op1Len):add_22(op2.digits, op2Len, op1.digits, op1Len); - } - else { - resSign = op1Sign; - if (op1Sign == op2Sign) { - if (cmp == 0) { - return $clinit_BigInteger() , ZERO_0; - } - resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); - } - else { - resDigits = add_22(op1.digits, op1Len, op2.digits, op2Len); - } - } - res = new BigInteger_1(resSign, resDigits.length, resDigits); - $cutOffLeadingZeroes(res); - return res; -} - -function subtract_0(a, aSize, b, bSize){ - var res; - res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize, 15, 1); - subtract_1(res, a, aSize, b, bSize); - return res; -} - -function subtract_1(res, a, aSize, b, bSize){ - var borrow, i; - borrow = 0; - for (i = 0; i < bSize; i++) { - borrow = add_20(borrow, sub_2(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); - res[i] = toInt_0(borrow); - borrow = shr_0(borrow, 32); - } - for (; i < aSize; i++) { - borrow = add_20(borrow, and_0(a[i], $intern_68)); - res[i] = toInt_0(borrow); - borrow = shr_0(borrow, 32); - } -} - -function $clinit_Multiplication(){ - $clinit_Multiplication = emptyMethod; - var fivePow, i; - bigFivePows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); - bigTenPows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); - fivePow = 1; - for (i = 0; i <= 18; i++) { - bigFivePows[i] = valueOf_11(fivePow); - bigTenPows[i] = valueOf_11(shl_0(fivePow, i)); - fivePow = mul_0(fivePow, 5); - } - for (; i < bigTenPows.length; i++) { - bigFivePows[i] = $multiply(bigFivePows[i - 1], bigFivePows[1]); - bigTenPows[i] = $multiply(bigTenPows[i - 1], ($clinit_BigInteger() , TEN)); - } -} - -function karatsuba(op1, op2){ - $clinit_Multiplication(); - var lower, lowerOp1, lowerOp2, middle, ndiv2, temp, upper, upperOp1, upperOp2; - if (op2.numberLength > op1.numberLength) { - temp = op1; - op1 = op2; - op2 = temp; - } - if (op2.numberLength < 63) { - return multiplyPAP(op1, op2); - } - ndiv2 = (op1.numberLength & -2) << 4; - upperOp1 = $shiftRight(op1, ndiv2); - upperOp2 = $shiftRight(op2, ndiv2); - lowerOp1 = subtract(op1, $shiftLeft(upperOp1, ndiv2)); - lowerOp2 = subtract(op2, $shiftLeft(upperOp2, ndiv2)); - upper = karatsuba(upperOp1, upperOp2); - lower = karatsuba(lowerOp1, lowerOp2); - middle = karatsuba(subtract(upperOp1, lowerOp1), subtract(lowerOp2, upperOp2)); - middle = add_21(add_21(middle, upper), lower); - middle = $shiftLeft(middle, ndiv2); - upper = $shiftLeft(upper, ndiv2 << 1); - return add_21(add_21(upper, middle), lower); -} - -function multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits){ - if (aLen == 0 || bLen == 0) { - return; - } - aLen == 1?(resDigits[bLen] = multiplyByInt(resDigits, bDigits, bLen, aDigits[0])):bLen == 1?(resDigits[aLen] = multiplyByInt(resDigits, aDigits, aLen, bDigits[0])):multPAP(aDigits, bDigits, resDigits, aLen, bLen); -} - -function multPAP(a, b, t, aLen, bLen){ - var aI, carry, i, j; - if (maskUndefined(a) === maskUndefined(b) && aLen == bLen) { - square(a, aLen, t); - return; - } - for (i = 0; i < aLen; i++) { - carry = 0; - aI = a[i]; - for (j = 0; j < bLen; j++) { - carry = add_20(add_20(mul_0(and_0(aI, $intern_68), and_0(b[j], $intern_68)), and_0(t[i + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); - t[i + j] = toInt_0(carry); - carry = shru_0(carry, 32); - } - t[i + bLen] = toInt_0(carry); - } -} - -function multiplyByInt(res, a, aSize, factor){ - $clinit_Multiplication(); - var carry, i; - carry = 0; - for (i = 0; i < aSize; i++) { - carry = add_20(mul_0(and_0(a[i], $intern_68), and_0(factor, $intern_68)), and_0(toInt_0(carry), $intern_68)); - res[i] = toInt_0(carry); - carry = shru_0(carry, 32); - } - return toInt_0(carry); -} - -function multiplyPAP(a, b){ - var aDigits, aLen, bDigits, bLen, resDigits, resLength, resSign, result, val, valueHi, valueLo; - aLen = a.numberLength; - bLen = b.numberLength; - resLength = aLen + bLen; - resSign = a.sign != b.sign?-1:1; - if (resLength == 2) { - val = mul_0(and_0(a.digits[0], $intern_68), and_0(b.digits[0], $intern_68)); - valueLo = toInt_0(val); - valueHi = toInt_0(shru_0(val, 32)); - return valueHi == 0?new BigInteger_0(resSign, valueLo):new BigInteger_1(resSign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); - } - aDigits = a.digits; - bDigits = b.digits; - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); - multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits); - result = new BigInteger_1(resSign, resLength, resDigits); - $cutOffLeadingZeroes(result); - return result; -} - -function pow_0(base, exponent){ - $clinit_Multiplication(); - var acc, res; - res = ($clinit_BigInteger() , ONE_0); - acc = base; - for (; exponent > 1; exponent >>= 1) { - (exponent & 1) != 0 && (res = $multiply(res, acc)); - acc.numberLength == 1?(acc = $multiply(acc, acc)):(acc = new BigInteger_3(square(acc.digits, acc.numberLength, initUnidimensionalArray(I_classLit, $intern_48, 25, acc.numberLength << 1, 15, 1)))); - } - res = $multiply(res, acc); - return res; -} - -function powerOf10(exp_0){ - $clinit_Multiplication(); - var intExp, longExp, powerOfFive, res; - intExp = round_int(exp_0); - if (exp_0 < bigTenPows.length) { - return bigTenPows[intExp]; - } - else if (exp_0 <= 50) { - return $pow(($clinit_BigInteger() , TEN), intExp); - } - else if (exp_0 <= $intern_45) { - return $shiftLeft($pow(bigFivePows[1], intExp), intExp); - } - if (exp_0 > 1000000) { - throw toJs(new ArithmeticException('power of ten too big')); - } - if (exp_0 <= $intern_0) { - return $shiftLeft($pow(bigFivePows[1], intExp), intExp); - } - powerOfFive = $pow(bigFivePows[1], $intern_0); - res = powerOfFive; - longExp = fromDouble_0(exp_0 - $intern_0); - intExp = round_int(exp_0 % $intern_0); - while (compare_2(longExp, $intern_0) > 0) { - res = $multiply(res, powerOfFive); - longExp = sub_2(longExp, $intern_0); - } - res = $multiply(res, $pow(bigFivePows[1], intExp)); - res = $shiftLeft(res, $intern_0); - longExp = fromDouble_0(exp_0 - $intern_0); - while (compare_2(longExp, $intern_0) > 0) { - res = $shiftLeft(res, $intern_0); - longExp = sub_2(longExp, $intern_0); - } - res = $shiftLeft(res, intExp); - return res; -} - -function square(a, aLen, res){ - var carry, i, i0, index_0, j; - for (i0 = 0; i0 < aLen; i0++) { - carry = 0; - for (j = i0 + 1; j < aLen; j++) { - carry = add_20(add_20(mul_0(and_0(a[i0], $intern_68), and_0(a[j], $intern_68)), and_0(res[i0 + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); - res[i0 + j] = toInt_0(carry); - carry = shru_0(carry, 32); - } - res[i0 + aLen] = toInt_0(carry); - } - shiftLeftOneBit(res, res, aLen << 1); - carry = 0; - for (i = 0 , index_0 = 0; i < aLen; ++i , index_0++) { - carry = add_20(add_20(mul_0(and_0(a[i], $intern_68), and_0(a[i], $intern_68)), and_0(res[index_0], $intern_68)), and_0(toInt_0(carry), $intern_68)); - res[index_0] = toInt_0(carry); - carry = shru_0(carry, 32); - ++index_0; - carry = add_20(carry, and_0(res[index_0], $intern_68)); - res[index_0] = toInt_0(carry); - carry = shru_0(carry, 32); - } - return res; -} - -var bigFivePows, bigTenPows; -function $containsKey_3(this$static, key){ - return instanceOfString(key)?$hasStringValue(this$static, key):!!$getEntry_0(this$static.hashCodeMap, key); -} - -function $containsValue_2(this$static, value_0, entries){ - var entry, entry$iterator; - for (entry$iterator = entries.iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if (this$static.equals_1(value_0, entry.getValue())) { - return true; - } - } - return false; -} - -function $get_10(this$static, key){ - return instanceOfString(key)?$getStringValue(this$static, key):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, key)); -} - -function $getStringValue(this$static, key){ - return key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key); -} - -function $hasStringValue(this$static, key){ - return key == null?!!$getEntry_0(this$static.hashCodeMap, null):$contains_7(this$static.stringMap, key); -} - -function $put_6(this$static, key, value_0){ - return instanceOfString(key)?$putStringValue(this$static, key, value_0):$put_9(this$static.hashCodeMap, key, value_0); -} - -function $putStringValue(this$static, key, value_0){ - return key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0); -} - -function $remove_6(this$static, key){ - return instanceOfString(key)?key == null?$remove_19(this$static.hashCodeMap, null):$remove_20(this$static.stringMap, key):$remove_19(this$static.hashCodeMap, key); -} - -function $reset(this$static){ - this$static.hashCodeMap = new InternalHashCodeMap(this$static); - this$static.stringMap = new InternalStringMap(this$static); - structureChanged(this$static); -} - -function $size_2(this$static){ - return this$static.hashCodeMap.size_0 + this$static.stringMap.size_0; -} - -function AbstractHashMap(ignored, alsoIgnored){ - checkCriticalArgument_0(ignored >= 0, 'Negative initial capacity'); - checkCriticalArgument_0(alsoIgnored >= 0, 'Non-positive load factor'); - $reset(this); -} - -defineClass(488, 1967, $intern_7); -_.clear_0 = function clear_30(){ - $reset(this); -} -; -_.containsKey = function containsKey_9(key){ - return $containsKey_3(this, key); -} -; -_.containsValue = function containsValue_3(value_0){ - return $containsValue_2(this, value_0, this.stringMap) || $containsValue_2(this, value_0, this.hashCodeMap); -} -; -_.entrySet_0 = function entrySet_2(){ - return new AbstractHashMap$EntrySet(this); -} -; -_.get_3 = function get_31(key){ - return $get_10(this, key); -} -; -_.put = function put_5(key, value_0){ - return $put_6(this, key, value_0); -} -; -_.remove_0 = function remove_48(key){ - return $remove_6(this, key); -} -; -_.size_1 = function size_37(){ - return $size_2(this); -} -; -var Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util', 'AbstractHashMap', 488); -function $contains_0(this$static, o){ - if (instanceOf(o, 42)) { - return $containsEntry_0(this$static.this$01, castTo(o, 42)); - } - return false; -} - -function AbstractHashMap$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(261, $intern_9, $intern_10, AbstractHashMap$EntrySet); -_.clear_0 = function clear_31(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_28(o){ - return $contains_0(this, o); -} -; -_.iterator_0 = function iterator_46(){ - return new AbstractHashMap$EntrySetIterator(this.this$01); -} -; -_.remove_1 = function remove_49(entry){ - var key; - if ($contains_0(this, entry)) { - key = castTo(entry, 42).getKey(); - this.this$01.remove_0(key); - return true; - } - return false; -} -; -_.size_1 = function size_38(){ - return this.this$01.size_1(); -} -; -var Ljava_util_AbstractHashMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySet', 261); -function $computeHasNext(this$static){ - if (this$static.current.hasNext_0()) { - return true; - } - if (this$static.current != this$static.stringMapEntries) { - return false; - } - this$static.current = new InternalHashCodeMap$1(this$static.this$01.hashCodeMap); - return this$static.current.hasNext_0(); -} - -function $next_4(this$static){ - var rv; - checkStructuralChange(this$static.this$01, this$static); - checkCriticalElement(this$static.hasNext); - this$static.last = this$static.current; - rv = castTo(this$static.current.next_1(), 42); - this$static.hasNext = $computeHasNext(this$static); - return rv; -} - -function $remove_7(this$static){ - checkCriticalState(!!this$static.last); - checkStructuralChange(this$static.this$01, this$static); - this$static.last.remove(); - this$static.last = null; - this$static.hasNext = $computeHasNext(this$static); - recordLastKnownStructure(this$static.this$01, this$static); -} - -function AbstractHashMap$EntrySetIterator(this$0){ - this.this$01 = this$0; - this.stringMapEntries = new InternalStringMap$1(this.this$01.stringMap); - this.current = this.stringMapEntries; - this.hasNext = $computeHasNext(this); - this.$modCount = this$0.$modCount; -} - -defineClass(262, 1, $intern_6, AbstractHashMap$EntrySetIterator); -_.forEachRemaining = function forEachRemaining_16(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_19(){ - return $next_4(this); -} -; -_.hasNext_0 = function hasNext_18(){ - return this.hasNext; -} -; -_.remove = function remove_50(){ - $remove_7(this); -} -; -_.hasNext = false; -var Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySetIterator', 262); -function $hasNext_2(this$static){ - return this$static.i < this$static.this$01_0.size_1(); -} - -function $next_5(this$static){ - checkCriticalElement(this$static.i < this$static.this$01_0.size_1()); - return this$static.this$01_0.get_0(this$static.last = this$static.i++); -} - -function $remove_8(this$static){ - checkCriticalState(this$static.last != -1); - this$static.this$01_0.remove_2(this$static.last); - this$static.i = this$static.last; - this$static.last = -1; -} - -function AbstractList$IteratorImpl(this$0){ - this.this$01_0 = this$0; -} - -defineClass(417, 1, $intern_6, AbstractList$IteratorImpl); -_.forEachRemaining = function forEachRemaining_17(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_19(){ - return $hasNext_2(this); -} -; -_.next_1 = function next_20(){ - return $next_5(this); -} -; -_.remove = function remove_51(){ - $remove_8(this); -} -; -_.i = 0; -_.last = -1; -var Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/IteratorImpl', 417); -function $add_1(this$static, o){ - this$static.this$01.add_3(this$static.i, o); - ++this$static.i; - this$static.last = -1; -} - -function AbstractList$ListIteratorImpl(this$0, start_0){ - this.this$01 = this$0; - AbstractList$IteratorImpl.call(this, this$0); - checkCriticalPositionIndex(start_0, this$0.size_1()); - this.i = start_0; -} - -defineClass(96, 417, $intern_14, AbstractList$ListIteratorImpl); -_.remove = function remove_52(){ - $remove_8(this); -} -; -_.add_1 = function add_24(o){ - $add_1(this, o); -} -; -_.hasPrevious = function hasPrevious_3(){ - return this.i > 0; -} -; -_.nextIndex_0 = function nextIndex_4(){ - return this.i; -} -; -_.previous_0 = function previous_4(){ - return checkCriticalElement(this.i > 0) , this.this$01.get_0(this.last = --this.i); -} -; -_.previousIndex = function previousIndex_3(){ - return this.i - 1; -} -; -_.set_1 = function set_11(o){ - checkCriticalState(this.last != -1); - this.this$01.set_2(this.last, o); -} -; -var Ljava_util_AbstractList$ListIteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/ListIteratorImpl', 96); -function AbstractList$SubList(wrapped, fromIndex, toIndex){ - checkCriticalPositionIndexes(fromIndex, toIndex, wrapped.size_1()); - this.wrapped = wrapped; - this.fromIndex = fromIndex; - this.size_0 = toIndex - fromIndex; -} - -defineClass(219, 52, $intern_37, AbstractList$SubList); -_.add_3 = function add_25(index_0, element){ - checkCriticalPositionIndex(index_0, this.size_0); - this.wrapped.add_3(this.fromIndex + index_0, element); - ++this.size_0; -} -; -_.get_0 = function get_32(index_0){ - checkCriticalElementIndex(index_0, this.size_0); - return this.wrapped.get_0(this.fromIndex + index_0); -} -; -_.remove_2 = function remove_53(index_0){ - var result; - checkCriticalElementIndex(index_0, this.size_0); - result = this.wrapped.remove_2(this.fromIndex + index_0); - --this.size_0; - return result; -} -; -_.set_2 = function set_12(index_0, element){ - checkCriticalElementIndex(index_0, this.size_0); - return this.wrapped.set_2(this.fromIndex + index_0, element); -} -; -_.size_1 = function size_39(){ - return this.size_0; -} -; -_.fromIndex = 0; -_.size_0 = 0; -var Ljava_util_AbstractList$SubList_2_classLit = createForClass('java.util', 'AbstractList/SubList', 219); -function AbstractMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(384, $intern_9, $intern_10, AbstractMap$1); -_.clear_0 = function clear_32(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_29(key){ - return this.this$01.containsKey(key); -} -; -_.iterator_0 = function iterator_47(){ - var outerIter; - return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter); -} -; -_.remove_1 = function remove_54(key){ - if (this.this$01.containsKey(key)) { - this.this$01.remove_0(key); - return true; - } - return false; -} -; -_.size_1 = function size_40(){ - return this.this$01.size_1(); -} -; -var Ljava_util_AbstractMap$1_2_classLit = createForClass('java.util', 'AbstractMap/1', 384); -function AbstractMap$1$1(val$outerIter){ - this.val$outerIter2 = val$outerIter; -} - -defineClass(691, 1, $intern_6, AbstractMap$1$1); -_.forEachRemaining = function forEachRemaining_18(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_20(){ - return this.val$outerIter2.hasNext_0(); -} -; -_.next_1 = function next_21(){ - var entry; - return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getKey(); -} -; -_.remove = function remove_55(){ - this.val$outerIter2.remove(); -} -; -var Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util', 'AbstractMap/1/1', 691); -function AbstractMap$2(this$0){ - this.this$01 = this$0; -} - -defineClass(226, 28, $intern_8, AbstractMap$2); -_.clear_0 = function clear_33(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_30(value_0){ - return this.this$01.containsValue(value_0); -} -; -_.iterator_0 = function iterator_48(){ - var outerIter; - return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter); -} -; -_.size_1 = function size_41(){ - return this.this$01.size_1(); -} -; -var Ljava_util_AbstractMap$2_2_classLit = createForClass('java.util', 'AbstractMap/2', 226); -function AbstractMap$2$1(val$outerIter){ - this.val$outerIter2 = val$outerIter; -} - -defineClass(294, 1, $intern_6, AbstractMap$2$1); -_.forEachRemaining = function forEachRemaining_19(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_21(){ - return this.val$outerIter2.hasNext_0(); -} -; -_.next_1 = function next_22(){ - var entry; - return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getValue(); -} -; -_.remove = function remove_56(){ - this.val$outerIter2.remove(); -} -; -var Ljava_util_AbstractMap$2$1_2_classLit = createForClass('java.util', 'AbstractMap/2/1', 294); -function $setValue_0(this$static, value_0){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = value_0; - return oldValue; -} - -defineClass(484, 1, {484:1, 42:1}); -_.equals_0 = function equals_44(other){ - var entry; - if (!instanceOf(other, 42)) { - return false; - } - entry = castTo(other, 42); - return equals_57(this.key, entry.getKey()) && equals_57(this.value_0, entry.getValue()); -} -; -_.getKey = function getKey_4(){ - return this.key; -} -; -_.getValue = function getValue_6(){ - return this.value_0; -} -; -_.hashCode_1 = function hashCode_44(){ - return hashCode_54(this.key) ^ hashCode_54(this.value_0); -} -; -_.setValue = function setValue_7(value_0){ - return $setValue_0(this, value_0); -} -; -_.toString_0 = function toString_52(){ - return this.key + '=' + this.value_0; -} -; -var Ljava_util_AbstractMap$AbstractEntry_2_classLit = createForClass('java.util', 'AbstractMap/AbstractEntry', 484); -function AbstractMap$SimpleEntry(key, value_0){ - this.key = key; - this.value_0 = value_0; -} - -defineClass(383, 484, {484:1, 383:1, 42:1}, AbstractMap$SimpleEntry); -var Ljava_util_AbstractMap$SimpleEntry_2_classLit = createForClass('java.util', 'AbstractMap/SimpleEntry', 383); -defineClass(1984, 1, $intern_70); -_.equals_0 = function equals_45(other){ - var entry; - if (!instanceOf(other, 42)) { - return false; - } - entry = castTo(other, 42); - return equals_57(this.getKey(), entry.getKey()) && equals_57(this.getValue(), entry.getValue()); -} -; -_.hashCode_1 = function hashCode_45(){ - return hashCode_54(this.getKey()) ^ hashCode_54(this.getValue()); -} -; -_.toString_0 = function toString_53(){ - return this.getKey() + '=' + this.getValue(); -} -; -var Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util', 'AbstractMapEntry', 1984); -function $containsEntry_1(this$static, entry){ - var key, lookupEntry; - key = entry.getKey(); - lookupEntry = $getEntry_1(this$static, key); - return !!lookupEntry && equals_57(lookupEntry.value_0, entry.getValue()); -} - -function $containsKey_4(this$static, k){ - var key; - key = k; - return !!$getEntry_1(this$static, key); -} - -function getKeyOrNSE(entry){ - if (!entry) { - throw toJs(new NoSuchElementException); - } - return entry.key; -} - -defineClass(1992, 1967, $intern_11); -_.containsEntry = function containsEntry_0(entry){ - return $containsEntry_1(this, entry); -} -; -_.containsKey = function containsKey_10(k){ - return $containsKey_4(this, k); -} -; -_.entrySet_0 = function entrySet_3(){ - return new AbstractNavigableMap$EntrySet(this); -} -; -_.get_3 = function get_33(k){ - var key; - key = k; - return getEntryValueOrNull($getEntry_1(this, key)); -} -; -_.keySet_0 = function keySet_15(){ - return new AbstractNavigableMap$NavigableKeySet(this); -} -; -var Ljava_util_AbstractNavigableMap_2_classLit = createForClass('java.util', 'AbstractNavigableMap', 1992); -function AbstractNavigableMap$EntrySet(this$0){ - this.this$01_0 = this$0; -} - -defineClass(739, $intern_9, $intern_10, AbstractNavigableMap$EntrySet); -_.contains = function contains_31(o){ - return instanceOf(o, 42) && $containsEntry_1(this.this$01_0, castTo(o, 42)); -} -; -_.iterator_0 = function iterator_49(){ - return new TreeMap$EntryIterator(this.this$01_0); -} -; -_.remove_1 = function remove_57(o){ - var entry; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - return $removeEntry(this.this$01_0, entry); - } - return false; -} -; -_.size_1 = function size_42(){ - return this.this$01_0.size_0; -} -; -var Ljava_util_AbstractNavigableMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/EntrySet', 739); -function AbstractNavigableMap$NavigableKeySet(map_0){ - this.map_0 = map_0; -} - -defineClass(493, $intern_9, $intern_13, AbstractNavigableMap$NavigableKeySet); -_.spliterator_0 = function spliterator_26(){ - return new SortedSet$1(this); -} -; -_.clear_0 = function clear_34(){ - $clear_8(this.map_0); -} -; -_.contains = function contains_32(o){ - return $containsKey_4(this.map_0, o); -} -; -_.iterator_0 = function iterator_50(){ - var entryIterator; - return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet(this.map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); -} -; -_.remove_1 = function remove_58(o){ - if ($containsKey_4(this.map_0, o)) { - $remove_26(this.map_0, o); - return true; - } - return false; -} -; -_.size_1 = function size_43(){ - return this.map_0.size_0; -} -; -var Ljava_util_AbstractNavigableMap$NavigableKeySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet', 493); -function AbstractNavigableMap$NavigableKeySet$1(val$entryIterator){ - this.val$entryIterator2 = val$entryIterator; -} - -defineClass(494, 1, $intern_6, AbstractNavigableMap$NavigableKeySet$1); -_.forEachRemaining = function forEachRemaining_20(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_22(){ - return $hasNext_2(this.val$entryIterator2.iter); -} -; -_.next_1 = function next_23(){ - var entry; - return entry = $next_11(this.val$entryIterator2) , entry.getKey(); -} -; -_.remove = function remove_59(){ - $remove_27(this.val$entryIterator2); -} -; -var Ljava_util_AbstractNavigableMap$NavigableKeySet$1_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet/1', 494); -defineClass(2004, 28, $intern_8); -_.add_2 = function add_26(o){ - return checkCriticalState_0($offer(this, o)) , true; -} -; -_.addAll = function addAll_12(c){ - checkCriticalNotNull(c); - checkCriticalArgument_0(c != this, "Can't add a queue to itself"); - return $addAll(this, c); -} -; -_.clear_0 = function clear_35(){ - while ($poll_0(this) != null) - ; -} -; -var Ljava_util_AbstractQueue_2_classLit = createForClass('java.util', 'AbstractQueue', 2004); -function $$init_1(this$static){ - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); -} - -function $addFirst(this$static, e){ - checkCriticalNotNull(e); - this$static.head = this$static.head - 1 & this$static.array.length - 1; - setCheck(this$static.array, this$static.head, e); - $ensureCapacity(this$static); -} - -function $addLast(this$static, e){ - checkCriticalNotNull(e); - setCheck(this$static.array, this$static.tail, e); - this$static.tail = this$static.tail + 1 & this$static.array.length - 1; - $ensureCapacity(this$static); -} - -function $clear_4(this$static){ - if (this$static.head == this$static.tail) { - return; - } - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); - this$static.head = 0; - this$static.tail = 0; -} - -function $contains_1(it, o){ - if (o == null) { - return false; - } - while (it.currentIndex != it.fence) { - if (equals_Ljava_lang_Object__Z__devirtual$(o, $next_6(it))) { - return true; - } - } - return false; -} - -function $copyElements(this$static, dest, count){ - var dstIdx, i, mask; - mask = this$static.array.length - 1; - for (i = this$static.head , dstIdx = 0; dstIdx < count; i = i + 1 & mask , ++dstIdx) { - setCheck(dest, dstIdx, this$static.array[i]); - } -} - -function $ensureCapacity(this$static){ - var newArray, newLength, numElements; - if (this$static.head != this$static.tail) { - return; - } - numElements = this$static.array.length; - newLength = highestOneBit($wnd.Math.max(8, numElements)) << 1; - if (this$static.head != 0) { - newArray = createFrom(this$static.array, newLength); - $copyElements(this$static, newArray, numElements); - this$static.array = newArray; - this$static.head = 0; - } - else { - setLength(this$static.array, newLength); - } - this$static.tail = numElements; -} - -function $isEmpty(this$static){ - return this$static.head == this$static.tail; -} - -function $pollFirst(this$static){ - var e; - e = this$static.array[this$static.head]; - if (e == null) { - return null; - } - setCheck(this$static.array, this$static.head, null); - this$static.head = this$static.head + 1 & this$static.array.length - 1; - return e; -} - -function $pollLast(this$static){ - var e; - e = this$static.array[this$static.tail - 1 & this$static.array.length - 1]; - if (e == null) { - return null; - } - this$static.tail = this$static.tail - 1 & this$static.array.length - 1; - setCheck(this$static.array, this$static.tail, null); - return e; -} - -function $remove_9(it, o){ - if ($contains_1(it, o)) { - $remove_10(it); - return true; - } - return false; -} - -function $removeAtIndex(this$static, i){ - var headDistance, mask, size_0, tailDistance; - mask = this$static.array.length - 1; - headDistance = i - this$static.head & mask; - tailDistance = this$static.tail - i & mask; - size_0 = this$static.tail - this$static.head & mask; - checkConcurrentModification(headDistance < size_0); - if (headDistance >= tailDistance) { - $shiftLeftAtIndex(this$static, i); - return -1; - } - else { - $shiftRightAtIndex(this$static, i); - return 1; - } -} - -function $removeFirst(this$static){ - var e; - e = $pollFirst(this$static); - checkCriticalElement(e != null); - return e; -} - -function $removeLast(this$static){ - var e; - e = $pollLast(this$static); - checkCriticalElement(e != null); - return e; -} - -function $shiftLeftAtIndex(this$static, i){ - var mask, nextOffset; - mask = this$static.array.length - 1; - this$static.tail = this$static.tail - 1 & mask; - while (i != this$static.tail) { - nextOffset = i + 1 & mask; - setCheck(this$static.array, i, this$static.array[nextOffset]); - i = nextOffset; - } - setCheck(this$static.array, this$static.tail, null); -} - -function $shiftRightAtIndex(this$static, i){ - var mask, prevOffset; - mask = this$static.array.length - 1; - while (i != this$static.head) { - prevOffset = i - 1 & mask; - setCheck(this$static.array, i, this$static.array[prevOffset]); - i = prevOffset; - } - setCheck(this$static.array, this$static.head, null); - this$static.head = this$static.head + 1 & mask; -} - -function ArrayDeque(){ - $$init_1(this); -} - -function ArrayDeque_0(numElements){ - $$init_1(this); - setLength(this.array, highestOneBit($wnd.Math.max(8, numElements)) << 1); -} - -function checkConcurrentModification(expression){ - if (!expression) { - throw toJs(new ConcurrentModificationException); - } -} - -defineClass(302, 28, {4:1, 20:1, 28:1, 14:1}, ArrayDeque, ArrayDeque_0); -_.add_2 = function add_27(e){ - return $addLast(this, e) , true; -} -; -_.clear_0 = function clear_36(){ - $clear_4(this); -} -; -_.contains = function contains_33(o){ - return $contains_1(new ArrayDeque$IteratorImpl(this), o); -} -; -_.isEmpty = function isEmpty_18(){ - return $isEmpty(this); -} -; -_.iterator_0 = function iterator_51(){ - return new ArrayDeque$IteratorImpl(this); -} -; -_.remove_1 = function remove_60(o){ - return $remove_9(new ArrayDeque$IteratorImpl(this), o); -} -; -_.size_1 = function size_44(){ - return this.tail - this.head & this.array.length - 1; -} -; -_.spliterator_0 = function spliterator_27(){ - return new Spliterators$IteratorSpliterator(this, 272); -} -; -_.toArray_0 = function toArray_10(out){ - var size_0; - size_0 = this.tail - this.head & this.array.length - 1; - out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); - $copyElements(this, out, size_0); - out.length > size_0 && setCheck(out, size_0, null); - return out; -} -; -_.head = 0; -_.tail = 0; -var Ljava_util_ArrayDeque_2_classLit = createForClass('java.util', 'ArrayDeque', 302); -function $next_6(this$static){ - var e; - checkCriticalElement(this$static.currentIndex != this$static.fence); - e = this$static.this$01.array[this$static.currentIndex]; - checkConcurrentModification(this$static.fence == this$static.this$01.tail && e != null); - this$static.lastIndex = this$static.currentIndex; - this$static.currentIndex = this$static.currentIndex + 1 & this$static.this$01.array.length - 1; - return e; -} - -function $remove_10(this$static){ - checkCriticalState(this$static.lastIndex >= 0); - if ($removeAtIndex(this$static.this$01, this$static.lastIndex) < 0) { - this$static.currentIndex = this$static.currentIndex - 1 & this$static.this$01.array.length - 1; - this$static.fence = this$static.this$01.tail; - } - this$static.lastIndex = -1; -} - -function ArrayDeque$IteratorImpl(this$0){ - this.this$01 = this$0; - this.currentIndex = this.this$01.head; - this.fence = this.this$01.tail; -} - -defineClass(446, 1, $intern_6, ArrayDeque$IteratorImpl); -_.forEachRemaining = function forEachRemaining_21(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_23(){ - return this.currentIndex != this.fence; -} -; -_.next_1 = function next_24(){ - return $next_6(this); -} -; -_.remove = function remove_61(){ - $remove_10(this); -} -; -_.currentIndex = 0; -_.fence = 0; -_.lastIndex = -1; -var Ljava_util_ArrayDeque$IteratorImpl_2_classLit = createForClass('java.util', 'ArrayDeque/IteratorImpl', 446); -function $$init_2(this$static){ - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function $add_2(this$static, index_0, o){ - checkCriticalPositionIndex(index_0, this$static.array.length); - insertTo(this$static.array, index_0, o); -} - -function $add_3(this$static, o){ - this$static.array[this$static.array.length] = o; - return true; -} - -function $addAll_1(this$static, index_0, c){ - var cArray, len; - checkCriticalPositionIndex(index_0, this$static.array.length); - cArray = c.toArray(); - len = cArray.length; - if (len == 0) { - return false; - } - insertTo_0(this$static.array, index_0, cArray); - return true; -} - -function $addAll_2(this$static, c){ - var cArray, len; - cArray = c.toArray(); - len = cArray.length; - if (len == 0) { - return false; - } - insertTo_0(this$static.array, this$static.array.length, cArray); - return true; -} - -function $forEach_1(this$static, consumer){ - var e, e$array, e$index, e$max; - checkCriticalNotNull(consumer); - for (e$array = this$static.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - consumer.accept(e); - } -} - -function $get_11(this$static, index_0){ - checkCriticalElementIndex(index_0, this$static.array.length); - return this$static.array[index_0]; -} - -function $indexOf_3(this$static, o, index_0){ - for (; index_0 < this$static.array.length; ++index_0) { - if (equals_57(o, this$static.array[index_0])) { - return index_0; - } - } - return -1; -} - -function $remove_11(this$static, index_0){ - var previous; - previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); - removeFrom(this$static.array, index_0, 1); - return previous; -} - -function $remove_12(this$static, o){ - var i; - i = $indexOf_3(this$static, o, 0); - if (i == -1) { - return false; - } - $remove_11(this$static, i); - return true; -} - -function $removeRange(this$static, fromIndex, endIndex){ - var count; - checkCriticalPositionIndexes(fromIndex, endIndex, this$static.array.length); - count = endIndex - fromIndex; - removeFrom(this$static.array, fromIndex, count); -} - -function $set_1(this$static, index_0, o){ - var previous; - previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); - this$static.array[index_0] = o; - return previous; -} - -function $sort(this$static, c){ - sort_4(this$static.array, this$static.array.length, c); -} - -function $toArray_1(this$static){ - return clone_0(this$static.array, this$static.array.length); -} - -function $toArray_2(this$static, out){ - var i, size_0; - size_0 = this$static.array.length; - out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); - for (i = 0; i < size_0; ++i) { - setCheck(out, i, this$static.array[i]); - } - out.length > size_0 && setCheck(out, size_0, null); - return out; -} - -function ArrayList(){ - $$init_2(this); -} - -function ArrayList_0(initialCapacity){ - $$init_2(this); - checkCriticalArgument_0(initialCapacity >= 0, 'Initial capacity must not be negative'); -} - -function ArrayList_1(c){ - $$init_2(this); - insertTo_0(this.array, 0, c.toArray()); -} - -defineClass(12, 52, $intern_71, ArrayList, ArrayList_0, ArrayList_1); -_.add_3 = function add_28(index_0, o){ - $add_2(this, index_0, o); -} -; -_.add_2 = function add_29(o){ - return $add_3(this, o); -} -; -_.addAll_0 = function addAll_13(index_0, c){ - return $addAll_1(this, index_0, c); -} -; -_.addAll = function addAll_14(c){ - return $addAll_2(this, c); -} -; -_.clear_0 = function clear_37(){ - this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_34(o){ - return $indexOf_3(this, o, 0) != -1; -} -; -_.forEach_0 = function forEach_17(consumer){ - $forEach_1(this, consumer); -} -; -_.get_0 = function get_34(index_0){ - return $get_11(this, index_0); -} -; -_.indexOf_0 = function indexOf_4(o){ - return $indexOf_3(this, o, 0); -} -; -_.isEmpty = function isEmpty_19(){ - return this.array.length == 0; -} -; -_.iterator_0 = function iterator_52(){ - return new ArrayList$1(this); -} -; -_.remove_2 = function remove_62(index_0){ - return $remove_11(this, index_0); -} -; -_.remove_1 = function remove_63(o){ - return $remove_12(this, o); -} -; -_.removeRange = function removeRange_1(fromIndex, endIndex){ - $removeRange(this, fromIndex, endIndex); -} -; -_.set_2 = function set_13(index_0, o){ - return $set_1(this, index_0, o); -} -; -_.size_1 = function size_45(){ - return this.array.length; -} -; -_.sort_0 = function sort_3(c){ - $sort(this, c); -} -; -_.toArray = function toArray_11(){ - return $toArray_1(this); -} -; -_.toArray_0 = function toArray_12(out){ - return $toArray_2(this, out); -} -; -var Ljava_util_ArrayList_2_classLit = createForClass('java.util', 'ArrayList', 12); -function $hasNext_3(this$static){ - return this$static.i < this$static.this$01.array.length; -} - -function $next_7(this$static){ - checkCriticalElement(this$static.i < this$static.this$01.array.length); - this$static.last = this$static.i++; - return this$static.this$01.array[this$static.last]; -} - -function $remove_13(this$static){ - checkCriticalState(this$static.last != -1); - $remove_11(this$static.this$01, this$static.i = this$static.last); - this$static.last = -1; -} - -function ArrayList$1(this$0){ - this.this$01 = this$0; -} - -defineClass(7, 1, $intern_6, ArrayList$1); -_.forEachRemaining = function forEachRemaining_22(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_24(){ - return $hasNext_3(this); -} -; -_.next_1 = function next_25(){ - return $next_7(this); -} -; -_.remove = function remove_64(){ - $remove_13(this); -} -; -_.i = 0; -_.last = -1; -var Ljava_util_ArrayList$1_2_classLit = createForClass('java.util', 'ArrayList/1', 7); -function copyOf(original, newLength){ - checkCriticalArraySize(newLength); - return copyPrimitiveArray(original, initUnidimensionalArray(I_classLit, $intern_48, 25, newLength, 15, 1), newLength); -} - -function copyOf_0(original, newLength){ - var copy, result; - checkCriticalArraySize(newLength); - return copy = (result = original.slice(0, newLength) , stampJavaTypeInfo_0(result, original)) , copy.length = newLength , copy; -} - -function copyPrimitiveArray(original, copy, to){ - var copyLen, len; - len = original.length; - copyLen = $wnd.Math.min(to, len); - copy_0(original, 0, copy, 0, copyLen, true); - return copy; -} - -function deepToString(a, arraysIveSeen){ - var joiner, obj, obj$array, obj$index, obj$max, objArray, old, tempSet, elementTypeCategory; - if (a == null) { - return 'null'; - } - old = arraysIveSeen.map_0.put(a, arraysIveSeen); - if (old != null) { - return '[...]'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (obj$array = a , obj$index = 0 , obj$max = obj$array.length; obj$index < obj$max; ++obj$index) { - obj = obj$array[obj$index]; - if (obj != null && (getClass__Ljava_lang_Class___devirtual$(obj).modifiers & 4) != 0) { - if (Array.isArray(obj) && (elementTypeCategory = getElementTypeCategory(obj) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))) { - if (arraysIveSeen.map_0.containsKey(obj)) { - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '[...]'); - } - else { - objArray = castToArray(obj); - tempSet = new HashSet_1(arraysIveSeen); - $add_9(joiner, deepToString(objArray, tempSet)); - } - } - else - instanceOf(obj, 177)?$add_9(joiner, toString_61(castTo(obj, 177))):instanceOf(obj, 190)?$add_9(joiner, toString_54(castTo(obj, 190))):instanceOf(obj, 195)?$add_9(joiner, toString_55(castTo(obj, 195))):instanceOf(obj, 2012)?$add_9(joiner, toString_60(castTo(obj, 2012))):instanceOf(obj, 48)?$add_9(joiner, toString_58(castTo(obj, 48))):instanceOf(obj, 364)?$add_9(joiner, toString_59(castTo(obj, 364))):instanceOf(obj, 832)?$add_9(joiner, toString_57(castTo(obj, 832))):instanceOf(obj, 104) && $add_9(joiner, toString_56(castTo(obj, 104))); - } - else { - $add_9(joiner, obj == null?'null':toString_40(obj)); - } - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function equals_46(array1, array2){ - var i, val1, val2; - if (maskUndefined(array1) === maskUndefined(array2)) { - return true; - } - if (array1 == null || array2 == null) { - return false; - } - if (array1.length != array2.length) { - return false; - } - for (i = 0; i < array1.length; ++i) { - val1 = array1[i]; - val2 = array2[i]; - if (!(maskUndefined(val1) === maskUndefined(val2) || val1 != null && equals_Ljava_lang_Object__Z__devirtual$(val1, val2))) { - return false; - } - } - return true; -} - -function fill_0(a, fromIndex, toIndex, val){ - checkCriticalArrayBounds_0(fromIndex, toIndex, a.length); - fill0(a, fromIndex, toIndex, val); -} - -function fill_1(a, val){ - fill0_0(a, a.length, val); -} - -function fill_2(a, val){ - fill0_2(a, a.length, val); -} - -function fill_3(a){ - fill0_3(a, a.length); -} - -function fill0(a, fromIndex, toIndex, val){ - var i; - for (i = fromIndex; i < toIndex; ++i) { - a[i] = val; - } -} - -function fill0_0(a, toIndex, val){ - var i; - for (i = 0; i < toIndex; ++i) { - a[i] = val; - } -} - -function fill0_1(a, toIndex){ - var i; - for (i = 0; i < toIndex; ++i) { - a[i] = -1; - } -} - -function fill0_2(a, toIndex, val){ - var i; - for (i = 0; i < toIndex; ++i) { - setCheck(a, i, val); - } -} - -function fill0_3(a, toIndex){ - var i; - for (i = 0; i < toIndex; ++i) { - a[i] = false; - } -} - -function hashCode_46(a){ - var e, e$array, e$index, e$max, hashCode; - hashCode = 1; - for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); - hashCode = hashCode | 0; - } - return hashCode; -} - -function insertionSort(array, low, high, comp){ - var i, j, t; - for (i = low + 1; i < high; ++i) { - for (j = i; j > low && comp.compare_1(array[j - 1], array[j]) > 0; --j) { - t = array[j]; - setCheck(array, j, array[j - 1]); - setCheck(array, j - 1, t); - } - } -} - -function merge_1(src_0, srcLow, srcMid, srcHigh, dest, destLow, destHigh, comp){ - var topIdx; - topIdx = srcMid; - while (destLow < destHigh) { - topIdx >= srcHigh || srcLow < srcMid && comp.compare_1(src_0[srcLow], src_0[topIdx]) <= 0?setCheck(dest, destLow++, src_0[srcLow++]):setCheck(dest, destLow++, src_0[topIdx++]); - } -} - -function mergeSort(x_0, fromIndex, toIndex, comp){ - var temp; - comp = ($clinit_Comparators() , !comp?INTERNAL_NATURAL_ORDER:comp); - temp = x_0.slice(fromIndex, toIndex); - mergeSort_0(temp, x_0, fromIndex, toIndex, -fromIndex, comp); -} - -function mergeSort_0(temp, array, low, high, ofs, comp){ - var length_0, tempHigh, tempLow, tempMid; - length_0 = high - low; - if (length_0 < 7) { - insertionSort(array, low, high, comp); - return; - } - tempLow = low + ofs; - tempHigh = high + ofs; - tempMid = tempLow + (tempHigh - tempLow >> 1); - mergeSort_0(array, temp, tempLow, tempMid, -ofs, comp); - mergeSort_0(array, temp, tempMid, tempHigh, -ofs, comp); - if (comp.compare_1(temp[tempMid - 1], temp[tempMid]) <= 0) { - while (low < high) { - setCheck(array, low++, temp[tempLow++]); - } - return; - } - merge_1(temp, tempLow, tempMid, tempHigh, array, low, high, comp); -} - -function sort_4(x_0, toIndex, c){ - checkCriticalArrayBounds_0(0, toIndex, x_0.length); - mergeSort(x_0, 0, toIndex, c); -} - -function sort_5(x_0, c){ - mergeSort(x_0, 0, x_0.length, c); -} - -function spliterator_28(array, endExclusive){ - return checkCriticalArrayBounds(endExclusive, array.length) , new Spliterators$ArraySpliterator(array, endExclusive); -} - -function stream_4(array){ - return new StreamImpl(null, spliterator_28(array, array.length)); -} - -function toString_54(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - $add_9(joiner, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_55(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - $add_9(joiner, String.fromCharCode(element)); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_56(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_57(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_58(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_59(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + toString_39(element)); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_60(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - $add_9(joiner, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_61(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function Arrays$0methodref$compare$Type(){ -} - -defineClass(2013, $wnd.Function, {}, Arrays$0methodref$compare$Type); -_.compare_0 = function compare_7(d1, d2){ - return compare_4(d1, d2); -} -; -function $get_12(this$static, index_0){ - checkCriticalElementIndex(index_0, this$static.array.length); - return this$static.array[index_0]; -} - -function $toArray_3(this$static, out){ - var i, size_0; - size_0 = this$static.array.length; - out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); - for (i = 0; i < size_0; ++i) { - setCheck(out, i, this$static.array[i]); - } - out.length > size_0 && setCheck(out, size_0, null); - return out; -} - -function Arrays$ArrayList(array){ - checkCriticalNotNull(array); - this.array = array; -} - -defineClass(154, 52, $intern_72, Arrays$ArrayList); -_.contains = function contains_35(o){ - return $indexOf(this, o) != -1; -} -; -_.forEach_0 = function forEach_18(consumer){ - var e, e$array, e$index, e$max; - checkCriticalNotNull(consumer); - for (e$array = this.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - consumer.accept(e); - } -} -; -_.get_0 = function get_35(index_0){ - return $get_12(this, index_0); -} -; -_.set_2 = function set_14(index_0, value_0){ - var was; - was = (checkCriticalElementIndex(index_0, this.array.length) , this.array[index_0]); - setCheck(this.array, index_0, value_0); - return was; -} -; -_.size_1 = function size_46(){ - return this.array.length; -} -; -_.sort_0 = function sort_6(c){ - sort_4(this.array, this.array.length, c); -} -; -_.toArray = function toArray_13(){ - return $toArray_3(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.array.length, 5, 1)); -} -; -_.toArray_0 = function toArray_14(out){ - return $toArray_3(this, out); -} -; -var Ljava_util_Arrays$ArrayList_2_classLit = createForClass('java.util', 'Arrays/ArrayList', 154); -function $clinit_Collections(){ - $clinit_Collections = emptyMethod; - EMPTY_LIST = new Collections$EmptyList; - EMPTY_MAP = new Collections$EmptyMap; - EMPTY_SET = new Collections$EmptySet; -} - -function addAll_15(c, a){ - $clinit_Collections(); - var e, e$array, e$index, e$max, result; - result = false; - for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - result = result | c.add_2(e); - } - return result; -} - -function disjoint(c1, c2){ - $clinit_Collections(); - var iterating, o, o$iterator, testing; - iterating = c1; - testing = c2; - if (instanceOf(c1, 21) && !instanceOf(c2, 21)) { - iterating = c2; - testing = c1; - } - for (o$iterator = iterating.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - if (testing.contains(o)) { - return false; - } - } - return true; -} - -function hashCode_47(collection){ - $clinit_Collections(); - var e, e$iterator, hashCode; - hashCode = 0; - for (e$iterator = collection.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - hashCode = hashCode + (e != null?hashCode__I__devirtual$(e):0); - hashCode = hashCode | 0; - } - return hashCode; -} - -function hashCode_48(list){ - $clinit_Collections(); - var e, e$iterator, hashCode; - hashCode = 1; - for (e$iterator = list.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); - hashCode = hashCode | 0; - } - return hashCode; -} - -function nCopies(n, o){ - $clinit_Collections(); - var i, list; - list = new ArrayList; - for (i = 0; i < n; ++i) { - list.array[list.array.length] = o; - } - return new Collections$UnmodifiableRandomAccessList(list); -} - -function reverse_2(l){ - var t; - $clinit_Collections(); - var head, headElem, iBack, iFront, tail, tailElem; - if (instanceOf(l, 54)) { - for (iFront = 0 , iBack = l.size_1() - 1; iFront < iBack; ++iFront , --iBack) { - t = l.get_0(iFront); - l.set_2(iFront, l.get_0(iBack)); - l.set_2(iBack, t); - } - } - else { - head = l.listIterator_0(); - tail = l.listIterator_1(l.size_1()); - while (head.nextIndex_0() < tail.previousIndex()) { - headElem = head.next_1(); - tailElem = tail.previous_0(); - head.set_1(tailElem); - tail.set_1(headElem); - } - } -} - -function reverseOrder(cmp){ - $clinit_Collections(); - return !cmp?($clinit_Comparators() , $clinit_Comparators() , REVERSE_NATURAL_ORDER):cmp.reversed(); -} - -function singletonMap(key, value_0){ - $clinit_Collections(); - var map_0; - map_0 = new HashMap_0(1); - instanceOfString(key)?$putStringValue(map_0, key, value_0):$put_9(map_0.hashCodeMap, key, value_0); - return new Collections$UnmodifiableMap(map_0); -} - -function unmodifiableList(list){ - $clinit_Collections(); - return instanceOf(list, 54)?new Collections$UnmodifiableRandomAccessList(list):new Collections$UnmodifiableList(list); -} - -var EMPTY_LIST, EMPTY_MAP, EMPTY_SET; -function $get_13(location_0){ - checkCriticalElementIndex(location_0, 0); - return null; -} - -function Collections$EmptyList(){ -} - -defineClass(940, 52, $intern_72, Collections$EmptyList); -_.contains = function contains_36(object){ - return false; -} -; -_.get_0 = function get_36(location_0){ - return $get_13(location_0); -} -; -_.iterator_0 = function iterator_53(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -_.listIterator_0 = function listIterator_11(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -_.size_1 = function size_47(){ - return 0; -} -; -var Ljava_util_Collections$EmptyList_2_classLit = createForClass('java.util', 'Collections/EmptyList', 940); -function $clinit_Collections$EmptyListIterator(){ - $clinit_Collections$EmptyListIterator = emptyMethod; - INSTANCE_4 = new Collections$EmptyListIterator; -} - -function Collections$EmptyListIterator(){ -} - -defineClass(941, 1, $intern_14, Collections$EmptyListIterator); -_.forEachRemaining = function forEachRemaining_23(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_30(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.hasNext_0 = function hasNext_25(){ - return false; -} -; -_.hasPrevious = function hasPrevious_4(){ - return false; -} -; -_.next_1 = function next_26(){ - throw toJs(new NoSuchElementException); -} -; -_.nextIndex_0 = function nextIndex_5(){ - return 0; -} -; -_.previous_0 = function previous_5(){ - throw toJs(new NoSuchElementException); -} -; -_.previousIndex = function previousIndex_4(){ - return -1; -} -; -_.remove = function remove_65(){ - throw toJs(new IllegalStateException); -} -; -_.set_1 = function set_15(o){ - throw toJs(new IllegalStateException); -} -; -var INSTANCE_4; -var Ljava_util_Collections$EmptyListIterator_2_classLit = createForClass('java.util', 'Collections/EmptyListIterator', 941); -function Collections$EmptyMap(){ -} - -defineClass(943, 1967, $intern_28, Collections$EmptyMap); -_.containsKey = function containsKey_11(key){ - return false; -} -; -_.containsValue = function containsValue_4(value_0){ - return false; -} -; -_.entrySet_0 = function entrySet_4(){ - return $clinit_Collections() , EMPTY_SET; -} -; -_.get_3 = function get_37(key){ - return null; -} -; -_.keySet_0 = function keySet_16(){ - return $clinit_Collections() , EMPTY_SET; -} -; -_.size_1 = function size_48(){ - return 0; -} -; -_.values_0 = function values_16(){ - return $clinit_Collections() , EMPTY_LIST; -} -; -var Ljava_util_Collections$EmptyMap_2_classLit = createForClass('java.util', 'Collections/EmptyMap', 943); -function Collections$EmptySet(){ -} - -defineClass(942, $intern_9, $intern_30, Collections$EmptySet); -_.contains = function contains_37(object){ - return false; -} -; -_.iterator_0 = function iterator_54(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -_.size_1 = function size_49(){ - return 0; -} -; -var Ljava_util_Collections$EmptySet_2_classLit = createForClass('java.util', 'Collections/EmptySet', 942); -function Collections$SingletonList(element){ - this.element = element; -} - -defineClass(599, 52, {3:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Collections$SingletonList); -_.contains = function contains_38(item_0){ - return equals_57(this.element, item_0); -} -; -_.get_0 = function get_38(index_0){ - checkCriticalElementIndex(index_0, 1); - return this.element; -} -; -_.size_1 = function size_50(){ - return 1; -} -; -var Ljava_util_Collections$SingletonList_2_classLit = createForClass('java.util', 'Collections/SingletonList', 599); -function $add_4(){ - throw toJs(new UnsupportedOperationException); -} - -function $addAll_3(){ - throw toJs(new UnsupportedOperationException); -} - -function $clear_5(){ - throw toJs(new UnsupportedOperationException); -} - -function $contains_2(this$static, o){ - return this$static.coll.contains(o); -} - -function $containsAll_0(this$static, c){ - return this$static.coll.containsAll(c); -} - -function $remove_14(){ - throw toJs(new UnsupportedOperationException); -} - -function $toArray_4(this$static, a){ - return this$static.coll.toArray_0(a); -} - -function Collections$UnmodifiableCollection(coll){ - this.coll = coll; -} - -defineClass(372, 1, $intern_24, Collections$UnmodifiableCollection); -_.forEach_0 = function forEach_19(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream_3(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.spliterator_0 = function spliterator_29(){ - return new Spliterators$IteratorSpliterator(this, 0); -} -; -_.stream = function stream_5(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.add_2 = function add_31(o){ - return $add_4(); -} -; -_.addAll = function addAll_16(c){ - return $addAll_3(); -} -; -_.clear_0 = function clear_38(){ - $clear_5(); -} -; -_.contains = function contains_39(o){ - return $contains_2(this, o); -} -; -_.containsAll = function containsAll_7(c){ - return $containsAll_0(this, c); -} -; -_.isEmpty = function isEmpty_20(){ - return this.coll.isEmpty(); -} -; -_.iterator_0 = function iterator_55(){ - return new Collections$UnmodifiableCollectionIterator(this.coll.iterator_0()); -} -; -_.remove_1 = function remove_66(o){ - return $remove_14(); -} -; -_.size_1 = function size_51(){ - return this.coll.size_1(); -} -; -_.toArray = function toArray_15(){ - return this.coll.toArray(); -} -; -_.toArray_0 = function toArray_16(a){ - return $toArray_4(this, a); -} -; -_.toString_0 = function toString_62(){ - return toString_40(this.coll); -} -; -var Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollection', 372); -function $remove_15(){ - throw toJs(new UnsupportedOperationException); -} - -function Collections$UnmodifiableCollectionIterator(it){ - this.it = it; -} - -defineClass(371, 1, $intern_6, Collections$UnmodifiableCollectionIterator); -_.forEachRemaining = function forEachRemaining_24(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_26(){ - return this.it.hasNext_0(); -} -; -_.next_1 = function next_27(){ - return this.it.next_1(); -} -; -_.remove = function remove_67(){ - $remove_15(); -} -; -var Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollectionIterator', 371); -function Collections$UnmodifiableList(list){ - Collections$UnmodifiableCollection.call(this, list); - this.list = list; -} - -defineClass(531, 372, $intern_73, Collections$UnmodifiableList); -_.spliterator_0 = function spliterator_30(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.add_3 = function add_32(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll_0 = function addAll_17(index_0, c){ - throw toJs(new UnsupportedOperationException); -} -; -_.equals_0 = function equals_47(o){ - return equals_Ljava_lang_Object__Z__devirtual$(this.list, o); -} -; -_.get_0 = function get_39(index_0){ - return this.list.get_0(index_0); -} -; -_.hashCode_1 = function hashCode_49(){ - return hashCode__I__devirtual$(this.list); -} -; -_.indexOf_0 = function indexOf_5(o){ - return this.list.indexOf_0(o); -} -; -_.isEmpty = function isEmpty_21(){ - return this.list.isEmpty(); -} -; -_.listIterator_0 = function listIterator_12(){ - return new Collections$UnmodifiableListIterator(this.list.listIterator_1(0)); -} -; -_.listIterator_1 = function listIterator_13(from){ - return new Collections$UnmodifiableListIterator(this.list.listIterator_1(from)); -} -; -_.remove_2 = function remove_68(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_2 = function set_16(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.sort_0 = function sort_7(c){ - throw toJs(new UnsupportedOperationException); -} -; -_.subList = function subList_7(fromIndex, toIndex){ - return new Collections$UnmodifiableList(this.list.subList(fromIndex, toIndex)); -} -; -var Ljava_util_Collections$UnmodifiableList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableList', 531); -function Collections$UnmodifiableListIterator(lit){ - Collections$UnmodifiableCollectionIterator.call(this, lit); - this.lit = lit; -} - -defineClass(690, 371, $intern_14, Collections$UnmodifiableListIterator); -_.remove = function remove_69(){ - $remove_15(); -} -; -_.add_1 = function add_33(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.hasPrevious = function hasPrevious_5(){ - return this.lit.hasPrevious(); -} -; -_.nextIndex_0 = function nextIndex_6(){ - return this.lit.nextIndex_0(); -} -; -_.previous_0 = function previous_6(){ - return this.lit.previous_0(); -} -; -_.previousIndex = function previousIndex_5(){ - return this.lit.previousIndex(); -} -; -_.set_1 = function set_17(o){ - throw toJs(new UnsupportedOperationException); -} -; -var Ljava_util_Collections$UnmodifiableListIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableListIterator', 690); -function $containsValue_3(this$static, val){ - return this$static.map_0.containsValue(val); -} - -function $entrySet_2(this$static){ - !this$static.entrySet && (this$static.entrySet = new Collections$UnmodifiableMap$UnmodifiableEntrySet(this$static.map_0.entrySet_0())); - return this$static.entrySet; -} - -function $equals_7(this$static, o){ - return equals_Ljava_lang_Object__Z__devirtual$(this$static.map_0, o); -} - -function $keySet_1(this$static){ - !this$static.keySet && (this$static.keySet = new Collections$UnmodifiableSet(this$static.map_0.keySet_0())); - return this$static.keySet; -} - -function $values_2(this$static){ - !this$static.values && (this$static.values = new Collections$UnmodifiableCollection(this$static.map_0.values_0())); - return this$static.values; -} - -function Collections$UnmodifiableMap(map_0){ - this.map_0 = map_0; -} - -defineClass(600, 1, $intern_7, Collections$UnmodifiableMap); -_.forEach = function forEach_20(consumer){ - $forEach_2(this, consumer); -} -; -_.merge = function merge_2(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.clear_0 = function clear_39(){ - throw toJs(new UnsupportedOperationException); -} -; -_.containsKey = function containsKey_12(key){ - return this.map_0.containsKey(key); -} -; -_.containsValue = function containsValue_5(val){ - return $containsValue_3(this, val); -} -; -_.entrySet_0 = function entrySet_5(){ - return $entrySet_2(this); -} -; -_.equals_0 = function equals_48(o){ - return $equals_7(this, o); -} -; -_.get_3 = function get_40(key){ - return this.map_0.get_3(key); -} -; -_.hashCode_1 = function hashCode_50(){ - return hashCode__I__devirtual$(this.map_0); -} -; -_.isEmpty = function isEmpty_22(){ - return this.map_0.isEmpty(); -} -; -_.keySet_0 = function keySet_17(){ - return $keySet_1(this); -} -; -_.put = function put_6(key, value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_0 = function remove_70(key){ - throw toJs(new UnsupportedOperationException); -} -; -_.size_1 = function size_52(){ - return this.map_0.size_1(); -} -; -_.toString_0 = function toString_63(){ - return toString_40(this.map_0); -} -; -_.values_0 = function values_17(){ - return $values_2(this); -} -; -var Ljava_util_Collections$UnmodifiableMap_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap', 600); -function Collections$UnmodifiableSet(set_0){ - Collections$UnmodifiableCollection.call(this, set_0); -} - -defineClass(382, 372, $intern_29, Collections$UnmodifiableSet); -_.spliterator_0 = function spliterator_31(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_49(o){ - return equals_Ljava_lang_Object__Z__devirtual$(this.coll, o); -} -; -_.hashCode_1 = function hashCode_51(){ - return hashCode__I__devirtual$(this.coll); -} -; -var Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSet', 382); -function $contains_3(this$static, o){ - return this$static.coll.contains(o); -} - -function $toArray_5(this$static, a){ - var result; - result = this$static.coll.toArray_0(a); - $wrap(result, this$static.coll.size_1()); - return result; -} - -function $wrap(array, size_0){ - var i; - for (i = 0; i < size_0; ++i) { - setCheck(array, i, new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(array[i], 42))); - } -} - -function Collections$UnmodifiableMap$UnmodifiableEntrySet(s){ - Collections$UnmodifiableSet.call(this, s); -} - -defineClass(944, 382, $intern_29, Collections$UnmodifiableMap$UnmodifiableEntrySet); -_.contains = function contains_40(o){ - return $contains_3(this, o); -} -; -_.containsAll = function containsAll_8(o){ - return this.coll.containsAll(o); -} -; -_.iterator_0 = function iterator_56(){ - var it; - it = this.coll.iterator_0(); - return new Collections$UnmodifiableMap$UnmodifiableEntrySet$1(it); -} -; -_.toArray = function toArray_17(){ - var array; - array = this.coll.toArray(); - $wrap(array, array.length); - return array; -} -; -_.toArray_0 = function toArray_18(a){ - return $toArray_5(this, a); -} -; -var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet', 944); -function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(val$it){ - this.val$it2 = val$it; -} - -defineClass(945, 1, $intern_6, Collections$UnmodifiableMap$UnmodifiableEntrySet$1); -_.forEachRemaining = function forEachRemaining_25(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_28(){ - return new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(this.val$it2.next_1(), 42)); -} -; -_.hasNext_0 = function hasNext_27(){ - return this.val$it2.hasNext_0(); -} -; -_.remove = function remove_71(){ - throw toJs(new UnsupportedOperationException); -} -; -var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/1', 945); -function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(entry){ - this.entry = entry; -} - -defineClass(688, 1, $intern_70, Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry); -_.equals_0 = function equals_50(o){ - return this.entry.equals_0(o); -} -; -_.getKey = function getKey_5(){ - return this.entry.getKey(); -} -; -_.getValue = function getValue_7(){ - return this.entry.getValue(); -} -; -_.hashCode_1 = function hashCode_52(){ - return this.entry.hashCode_1(); -} -; -_.setValue = function setValue_8(value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.toString_0 = function toString_64(){ - return toString_40(this.entry); -} -; -var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry', 688); -function Collections$UnmodifiableRandomAccessList(list){ - Collections$UnmodifiableList.call(this, list); -} - -defineClass(601, 531, {20:1, 14:1, 15:1, 54:1}, Collections$UnmodifiableRandomAccessList); -var Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableRandomAccessList', 601); -function Collections$UnmodifiableSortedSet(sortedSet){ - Collections$UnmodifiableSet.call(this, sortedSet); - this.sortedSet = sortedSet; -} - -defineClass(689, 382, $intern_31, Collections$UnmodifiableSortedSet); -_.spliterator_0 = function spliterator_32(){ - return new SortedSet$1(this); -} -; -_.equals_0 = function equals_51(o){ - return equals_Ljava_lang_Object__Z__devirtual$(this.sortedSet, o); -} -; -_.hashCode_1 = function hashCode_53(){ - return hashCode__I__devirtual$(this.sortedSet); -} -; -var Ljava_util_Collections$UnmodifiableSortedSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSortedSet', 689); -function Comparator$lambda$0$Type(){ -} - -defineClass(847, 1, $intern_74, Comparator$lambda$0$Type); -_.compare_1 = function compare_8(a, b){ - var c; - return c = lambda$2_6(castTo(a, 11), castTo(b, 11)) , c != 0?c:lambda$4_6(castTo(a, 11), castTo(b, 11)); -} -; -_.equals_0 = function equals_52(other){ - return this === other; -} -; -_.reversed = function reversed_0(){ - return new Comparators$ReversedComparator(this); -} -; -var Ljava_util_Comparator$lambda$0$Type_2_classLit = createForClass('java.util', 'Comparator/lambda$0$Type', 847); -function $clinit_Comparators(){ - $clinit_Comparators = emptyMethod; - INTERNAL_NATURAL_ORDER = new Comparators$NaturalOrderComparator; - NATURAL_ORDER = new Comparators$NaturalOrderComparator; - REVERSE_NATURAL_ORDER = new Comparators$ReverseNaturalOrderComparator; -} - -var INTERNAL_NATURAL_ORDER, NATURAL_ORDER, REVERSE_NATURAL_ORDER; -function $compare(a, b){ - return checkCriticalNotNull(a) , compareTo_Ljava_lang_Object__I__devirtual$(a, (checkCriticalNotNull(b) , b)); -} - -function Comparators$NaturalOrderComparator(){ -} - -defineClass(751, 1, $intern_74, Comparators$NaturalOrderComparator); -_.compare_1 = function compare_9(a, b){ - return $compare(castTo(a, 35), castTo(b, 35)); -} -; -_.equals_0 = function equals_53(other){ - return this === other; -} -; -_.reversed = function reversed_1(){ - return $clinit_Comparators() , REVERSE_NATURAL_ORDER; -} -; -var Ljava_util_Comparators$NaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/NaturalOrderComparator', 751); -function $compare_0(a, b){ - return checkCriticalNotNull(b) , compareTo_Ljava_lang_Object__I__devirtual$(b, (checkCriticalNotNull(a) , a)); -} - -function Comparators$ReverseNaturalOrderComparator(){ -} - -defineClass(1177, 1, $intern_74, Comparators$ReverseNaturalOrderComparator); -_.compare_1 = function compare_10(a, b){ - return $compare_0(castTo(a, 35), castTo(b, 35)); -} -; -_.equals_0 = function equals_54(other){ - return this === other; -} -; -_.reversed = function reversed_2(){ - return $clinit_Comparators() , NATURAL_ORDER; -} -; -var Ljava_util_Comparators$ReverseNaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/ReverseNaturalOrderComparator', 1177); -function Comparators$ReversedComparator(comparator){ - this.comparator = comparator; -} - -defineClass(64, 1, $intern_74, Comparators$ReversedComparator); -_.equals_0 = function equals_55(other){ - return this === other; -} -; -_.compare_1 = function compare_11(a, b){ - return this.comparator.compare_1(b, a); -} -; -_.reversed = function reversed_3(){ - return this.comparator; -} -; -var Ljava_util_Comparators$ReversedComparator_2_classLit = createForClass('java.util', 'Comparators/ReversedComparator', 64); -function checkStructuralChange(host, iterator){ - if (iterator.$modCount != host.$modCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function recordLastKnownStructure(host, iterator){ - iterator.$modCount = host.$modCount; -} - -function structureChanged(host){ - var modCount, modCountable; - modCountable = host; - modCount = modCountable.$modCount | 0; - modCountable.$modCount = modCount + 1; -} - -function ConcurrentModificationException(){ - RuntimeException.call(this); -} - -defineClass(166, 60, $intern_43, ConcurrentModificationException); -var Ljava_util_ConcurrentModificationException_2_classLit = createForClass('java.util', 'ConcurrentModificationException', 166); -function $clinit_Date$StringData(){ - $clinit_Date$StringData = emptyMethod; - DAYS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']); - MONTHS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); -} - -var DAYS, MONTHS; -function $accept(this$static, value_0){ - var compensatedValue, newSum; - this$static.count = add_20(this$static.count, 1); - this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); - this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); - this$static.naiveSum += value_0; - compensatedValue = value_0 - this$static.sumError; - newSum = this$static.sum + compensatedValue; - this$static.sumError = newSum - this$static.sum - compensatedValue; - this$static.sum = newSum; -} - -function $getSum(this$static){ - var compensatedSum; - compensatedSum = this$static.sum + this$static.sumError; - if (isNaN(compensatedSum) && isInfinite(this$static.naiveSum)) { - return this$static.naiveSum; - } - return compensatedSum; -} - -function DoubleSummaryStatistics(){ -} - -defineClass(1904, 1, $intern_75, DoubleSummaryStatistics); -_.accept_2 = function accept_15(value_0){ - $accept(this, value_0); -} -; -_.toString_0 = function toString_65(){ - return 'DoubleSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?$getSum(this) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + $getSum(this) + ']'; -} -; -_.count = 0; -_.max_0 = $intern_60; -_.min_0 = $intern_59; -_.naiveSum = 0; -_.sum = 0; -_.sumError = 0; -var Ljava_util_DoubleSummaryStatistics_2_classLit = createForClass('java.util', 'DoubleSummaryStatistics', 1904); -function EmptyStackException(){ - RuntimeException.call(this); -} - -defineClass(1805, 60, $intern_43, EmptyStackException); -var Ljava_util_EmptyStackException_2_classLit = createForClass('java.util', 'EmptyStackException', 1805); -function $clear_6(this$static){ - $clear_0(this$static.keySet); - this$static.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.values.length, 5, 1); -} - -function $containsKey_5(this$static, key){ - return $contains_5(this$static.keySet, key); -} - -function $get_14(this$static, k){ - return $contains_5(this$static.keySet, k)?this$static.values[castTo(k, 22).ordinal]:null; -} - -function $put_7(this$static, key, value_0){ - $add_5(this$static.keySet, key); - return $set_2(this$static, key.ordinal, value_0); -} - -function $put_8(this$static, key, value_0){ - return $put_7(this$static, castTo(key, 22), value_0); -} - -function $remove_16(this$static, key){ - return $remove_17(this$static.keySet, key)?$set_2(this$static, castTo(key, 22).ordinal, null):null; -} - -function $set_2(this$static, ordinal, value_0){ - var was; - was = this$static.values[ordinal]; - this$static.values[ordinal] = value_0; - return was; -} - -function EnumMap(type_0){ - var all; - this.keySet = (all = castTo(type_0.enumConstantsFunc && type_0.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - this.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.keySet.all.length, 5, 1); -} - -defineClass(451, 1967, $intern_7, EnumMap); -_.put = function put_7(key, value_0){ - return $put_8(this, key, value_0); -} -; -_.clear_0 = function clear_40(){ - $clear_6(this); -} -; -_.containsKey = function containsKey_13(key){ - return $containsKey_5(this, key); -} -; -_.containsValue = function containsValue_6(value_0){ - var key, key$iterator; - for (key$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this.keySet); key$iterator.i < key$iterator.this$11.all.length;) { - key = $next_8(key$iterator); - if (equals_57(value_0, this.values[key.ordinal])) { - return true; - } - } - return false; -} -; -_.entrySet_0 = function entrySet_6(){ - return new EnumMap$EntrySet(this); -} -; -_.get_3 = function get_41(k){ - return $get_14(this, k); -} -; -_.remove_0 = function remove_72(key){ - return $remove_16(this, key); -} -; -_.size_1 = function size_53(){ - return this.keySet.size_0; -} -; -var Ljava_util_EnumMap_2_classLit = createForClass('java.util', 'EnumMap', 451); -function $contains_4(this$static, o){ - if (instanceOf(o, 42)) { - return $containsEntry_0(this$static.this$01, castTo(o, 42)); - } - return false; -} - -function EnumMap$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(1352, $intern_9, $intern_10, EnumMap$EntrySet); -_.clear_0 = function clear_41(){ - $clear_6(this.this$01); -} -; -_.contains = function contains_41(o){ - return $contains_4(this, o); -} -; -_.iterator_0 = function iterator_57(){ - return new EnumMap$EntrySetIterator(this.this$01); -} -; -_.remove_1 = function remove_73(entry){ - var key; - if ($contains_4(this, entry)) { - key = castTo(entry, 42).getKey(); - $remove_16(this.this$01, key); - return true; - } - return false; -} -; -_.size_1 = function size_54(){ - return this.this$01.keySet.size_0; -} -; -var Ljava_util_EnumMap$EntrySet_2_classLit = createForClass('java.util', 'EnumMap/EntrySet', 1352); -function EnumMap$EntrySetIterator(this$0){ - this.this$01 = this$0; - this.it = new EnumSet$EnumSetImpl$IteratorImpl(this.this$01.keySet); -} - -defineClass(1353, 1, $intern_6, EnumMap$EntrySetIterator); -_.forEachRemaining = function forEachRemaining_26(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_29(){ - return this.key = $next_8(this.it) , new EnumMap$MapEntry(this.this$01, this.key); -} -; -_.hasNext_0 = function hasNext_28(){ - return $hasNext_4(this.it); -} -; -_.remove = function remove_74(){ - checkCriticalState(!!this.key); - $remove_16(this.this$01, this.key); - this.key = null; -} -; -var Ljava_util_EnumMap$EntrySetIterator_2_classLit = createForClass('java.util', 'EnumMap/EntrySetIterator', 1353); -function EnumMap$MapEntry(this$0, key){ - this.this$01 = this$0; - this.key = key; -} - -defineClass(1354, 1984, $intern_70, EnumMap$MapEntry); -_.getKey = function getKey_6(){ - return this.key; -} -; -_.getValue = function getValue_8(){ - return this.this$01.values[this.key.ordinal]; -} -; -_.setValue = function setValue_9(value_0){ - return $set_2(this.this$01, this.key.ordinal, value_0); -} -; -var Ljava_util_EnumMap$MapEntry_2_classLit = createForClass('java.util', 'EnumMap/MapEntry', 1354); -function allOf(elementType){ - var all, set_0; - all = castTo(elementType.enumConstantsFunc && elementType.enumConstantsFunc(), 9); - set_0 = castTo(clone_0(all, all.length), 9); - return new EnumSet$EnumSetImpl(all, set_0, all.length); -} - -function of_1(first){ - var all, set_0, clazz, superclass; - set_0 = (all = castTo($getEnumConstants((clazz = first.___clazz , superclass = clazz.enumSuperclass , superclass == Ljava_lang_Enum_2_classLit?clazz:superclass)), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - $add_5(set_0, first); - return set_0; -} - -function of_2(first, rest){ - var set_0; - set_0 = of_1(first); - addAll_15(set_0, rest); - return set_0; -} - -defineClass(174, $intern_9, {20:1, 28:1, 14:1, 174:1, 21:1}); -var Ljava_util_EnumSet_2_classLit = createForClass('java.util', 'EnumSet', 174); -function $add_5(this$static, e){ - var ordinal; - checkCriticalNotNull(e); - ordinal = e.ordinal; - if (!this$static.set_0[ordinal]) { - setCheck(this$static.set_0, ordinal, e); - ++this$static.size_0; - return true; - } - return false; -} - -function $clone(this$static){ - var clonedSet; - clonedSet = castTo(clone_0(this$static.set_0, this$static.set_0.length), 9); - return new EnumSet$EnumSetImpl(this$static.all, clonedSet, this$static.size_0); -} - -function $contains_5(this$static, o){ - return instanceOf(o, 22) && $containsEnum(this$static, castTo(o, 22)); -} - -function $containsEnum(this$static, e){ - return !!e && this$static.set_0[e.ordinal] == e; -} - -function $remove_17(this$static, o){ - return instanceOf(o, 22) && $removeEnum(this$static, castTo(o, 22)); -} - -function $removeEnum(this$static, e){ - if (!!e && this$static.set_0[e.ordinal] == e) { - setCheck(this$static.set_0, e.ordinal, null); - --this$static.size_0; - return true; - } - return false; -} - -function EnumSet$EnumSetImpl(all, set_0, size_0){ - this.all = all; - this.set_0 = set_0; - this.size_0 = size_0; -} - -defineClass(156, 174, {20:1, 28:1, 14:1, 174:1, 156:1, 21:1}, EnumSet$EnumSetImpl); -_.add_2 = function add_34(e){ - return $add_5(this, castTo(e, 22)); -} -; -_.contains = function contains_42(o){ - return $contains_5(this, o); -} -; -_.iterator_0 = function iterator_58(){ - return new EnumSet$EnumSetImpl$IteratorImpl(this); -} -; -_.remove_1 = function remove_75(o){ - return $remove_17(this, o); -} -; -_.size_1 = function size_55(){ - return this.size_0; -} -; -_.size_0 = 0; -var Ljava_util_EnumSet$EnumSetImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl', 156); -function $findNext(this$static){ - var c; - ++this$static.i; - for (c = this$static.this$11.all.length; this$static.i < c; ++this$static.i) { - if (this$static.this$11.set_0[this$static.i]) { - return; - } - } -} - -function $hasNext_4(this$static){ - return this$static.i < this$static.this$11.all.length; -} - -function $next_8(this$static){ - checkCriticalElement(this$static.i < this$static.this$11.all.length); - this$static.last = this$static.i; - $findNext(this$static); - return this$static.this$11.set_0[this$static.last]; -} - -function EnumSet$EnumSetImpl$IteratorImpl(this$1){ - this.this$11 = this$1; - $findNext(this); -} - -defineClass(343, 1, $intern_6, EnumSet$EnumSetImpl$IteratorImpl); -_.forEachRemaining = function forEachRemaining_27(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_30(){ - return $next_8(this); -} -; -_.hasNext_0 = function hasNext_29(){ - return $hasNext_4(this); -} -; -_.remove = function remove_76(){ - checkCriticalState(this.last != -1); - setCheck(this.this$11.set_0, this.last, null); - --this.this$11.size_0; - this.last = -1; -} -; -_.i = -1; -_.last = -1; -var Ljava_util_EnumSet$EnumSetImpl$IteratorImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl/IteratorImpl', 343); -function HashMap(){ - $reset(this); -} - -function HashMap_0(ignored){ - AbstractHashMap.call(this, ignored, 0); -} - -function HashMap_1(toBeCopied){ - $reset(this); - $putAll(this, toBeCopied); -} - -defineClass(43, 488, $intern_76, HashMap, HashMap_0, HashMap_1); -_.equals_1 = function equals_56(value1, value2){ - return maskUndefined(value1) === maskUndefined(value2) || value1 != null && equals_Ljava_lang_Object__Z__devirtual$(value1, value2); -} -; -_.getHashCode = function getHashCode(key){ - var hashCode; - hashCode = hashCode__I__devirtual$(key); - return hashCode | 0; -} -; -var Ljava_util_HashMap_2_classLit = createForClass('java.util', 'HashMap', 43); -function $add_6(this$static, o){ - var old; - old = this$static.map_0.put(o, this$static); - return old == null; -} - -function $contains_6(this$static, o){ - return this$static.map_0.containsKey(o); -} - -function $remove_18(this$static, o){ - return this$static.map_0.remove_0(o) != null; -} - -function HashSet(){ - this.map_0 = new HashMap; -} - -function HashSet_0(initialCapacity){ - this.map_0 = new HashMap_0(initialCapacity); -} - -function HashSet_1(c){ - this.map_0 = new HashMap_0(c.size_1()); - $addAll(this, c); -} - -function HashSet_2(map_0){ - this.map_0 = map_0; -} - -defineClass(53, $intern_9, $intern_77, HashSet, HashSet_0, HashSet_1); -_.add_2 = function add_35(o){ - return $add_6(this, o); -} -; -_.clear_0 = function clear_42(){ - this.map_0.clear_0(); -} -; -_.contains = function contains_43(o){ - return $contains_6(this, o); -} -; -_.isEmpty = function isEmpty_23(){ - return this.map_0.size_1() == 0; -} -; -_.iterator_0 = function iterator_59(){ - return this.map_0.keySet_0().iterator_0(); -} -; -_.remove_1 = function remove_77(o){ - return $remove_18(this, o); -} -; -_.size_1 = function size_56(){ - return this.map_0.size_1(); -} -; -var Ljava_util_HashSet_2_classLit = createForClass('java.util', 'HashSet', 53); -function $accept_0(this$static, value_0){ - this$static.count = add_20(this$static.count, 1); - this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); - this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); - this$static.sum = add_20(this$static.sum, value_0); -} - -function IntSummaryStatistics(){ -} - -defineClass(1781, 1, $intern_21, IntSummaryStatistics); -_.accept_0 = function accept_16(value_0){ - $accept_0(this, value_0); -} -; -_.toString_0 = function toString_66(){ - return 'IntSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?toDouble_0(this.sum) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + toString_39(this.sum) + ']'; -} -; -_.count = 0; -_.max_0 = $intern_42; -_.min_0 = $intern_0; -_.sum = 0; -var Ljava_util_IntSummaryStatistics_2_classLit = createForClass('java.util', 'IntSummaryStatistics', 1781); -function $findEntryInChain(this$static, key, chain){ - var entry, entry$array, entry$index, entry$max; - for (entry$array = chain , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { - entry = entry$array[entry$index]; - if (this$static.host.equals_1(key, entry.getKey())) { - return entry; - } - } - return null; -} - -function $getChainOrEmpty(this$static, hashCode){ - var chain; - chain = this$static.backingMap.get(hashCode); - return chain == null?new Array:chain; -} - -function $getEntry_0(this$static, key){ - return $findEntryInChain(this$static, key, $getChainOrEmpty(this$static, key == null?0:this$static.host.getHashCode(key))); -} - -function $put_9(this$static, key, value_0){ - var chain, chain0, entry, hashCode; - hashCode = key == null?0:this$static.host.getHashCode(key); - chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); - if (chain0.length == 0) { - this$static.backingMap.set(hashCode, chain0); - } - else { - entry = $findEntryInChain(this$static, key, chain0); - if (entry) { - return entry.setValue(value_0); - } - } - setCheck(chain0, chain0.length, new AbstractMap$SimpleEntry(key, value_0)); - ++this$static.size_0; - structureChanged(this$static.host); - return null; -} - -function $remove_19(this$static, key){ - var chain, chain0, entry, hashCode, i; - hashCode = key == null?0:this$static.host.getHashCode(key); - chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); - for (i = 0; i < chain0.length; i++) { - entry = chain0[i]; - if (this$static.host.equals_1(key, entry.getKey())) { - if (chain0.length == 1) { - chain0.length = 0; - $delete_0(this$static.backingMap, hashCode); - } - else { - chain0.splice(i, 1); - } - --this$static.size_0; - structureChanged(this$static.host); - return entry.getValue(); - } - } - return null; -} - -function InternalHashCodeMap(host){ - this.backingMap = newJsMap(); - this.host = host; -} - -defineClass(1049, 1, $intern_23, InternalHashCodeMap); -_.forEach_0 = function forEach_21(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_60(){ - return new InternalHashCodeMap$1(this); -} -; -_.size_0 = 0; -var Ljava_util_InternalHashCodeMap_2_classLit = createForClass('java.util', 'InternalHashCodeMap', 1049); -function InternalHashCodeMap$1(this$0){ - this.this$01 = this$0; - this.chains = this.this$01.backingMap.entries(); - this.chain = new Array; -} - -defineClass(711, 1, $intern_6, InternalHashCodeMap$1); -_.forEachRemaining = function forEachRemaining_28(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_31(){ - return this.lastEntry = this.chain[this.itemIndex++] , this.lastEntry; -} -; -_.hasNext_0 = function hasNext_30(){ - var current; - if (this.itemIndex < this.chain.length) { - return true; - } - current = this.chains.next(); - if (!current.done) { - this.chain = current.value[1]; - this.itemIndex = 0; - return true; - } - return false; -} -; -_.remove = function remove_78(){ - $remove_19(this.this$01, this.lastEntry.getKey()); - this.itemIndex != 0 && --this.itemIndex; -} -; -_.itemIndex = 0; -_.lastEntry = null; -var Ljava_util_InternalHashCodeMap$1_2_classLit = createForClass('java.util', 'InternalHashCodeMap/1', 711); -function $delete_0(this$static, key){ - var fn; - fn = this$static['delete']; - fn.call(this$static, key); -} - -function $delete_1(this$static, key){ - var fn; - fn = this$static['delete']; - fn.call(this$static, key); -} - -function $clinit_InternalJsMapFactory(){ - $clinit_InternalJsMapFactory = emptyMethod; - jsMapCtor = getJsMapConstructor(); -} - -function canHandleObjectCreateAndProto(){ - if (!Object.create || !Object.getOwnPropertyNames) { - return false; - } - var protoField = '__proto__'; - var map_0 = Object.create(null); - if (map_0[protoField] !== undefined) { - return false; - } - var keys_0 = Object.getOwnPropertyNames(map_0); - if (keys_0.length != 0) { - return false; - } - map_0[protoField] = 42; - if (map_0[protoField] !== 42) { - return false; - } - if (Object.getOwnPropertyNames(map_0).length == 0) { - return false; - } - return true; -} - -function getJsMapConstructor(){ - function isCorrectIterationProtocol(){ - try { - return (new Map).entries().next().done; - } - catch (e) { - return false; - } - } - - if (typeof Map === 'function' && Map.prototype.entries && isCorrectIterationProtocol()) { - return Map; - } - else { - return getJsMapPolyFill(); - } -} - -function getJsMapPolyFill(){ - function Stringmap(){ - this.obj = this.createObject(); - } - - ; - Stringmap.prototype.createObject = function(key){ - return Object.create(null); - } - ; - Stringmap.prototype.get = function(key){ - return this.obj[key]; - } - ; - Stringmap.prototype.set = function(key, value_0){ - this.obj[key] = value_0; - } - ; - Stringmap.prototype['delete'] = function(key){ - delete this.obj[key]; - } - ; - Stringmap.prototype.keys = function(){ - return Object.getOwnPropertyNames(this.obj); - } - ; - Stringmap.prototype.entries = function(){ - var keys_0 = this.keys(); - var map_0 = this; - var nextIndex = 0; - return {next:function(){ - if (nextIndex >= keys_0.length) - return {done:true}; - var key = keys_0[nextIndex++]; - return {value:[key, map_0.get(key)], done:false}; - } - }; - } - ; - if (!canHandleObjectCreateAndProto()) { - Stringmap.prototype.createObject = function(){ - return {}; - } - ; - Stringmap.prototype.get = function(key){ - return this.obj[':' + key]; - } - ; - Stringmap.prototype.set = function(key, value_0){ - this.obj[':' + key] = value_0; - } - ; - Stringmap.prototype['delete'] = function(key){ - delete this.obj[':' + key]; - } - ; - Stringmap.prototype.keys = function(){ - var result = []; - for (var key in this.obj) { - key.charCodeAt(0) == 58 && result.push(key.substring(1)); - } - return result; - } - ; - } - return Stringmap; -} - -function newJsMap(){ - $clinit_InternalJsMapFactory(); - return new jsMapCtor; -} - -var jsMapCtor; -function $contains_7(this$static, key){ - return !(this$static.backingMap.get(key) === undefined); -} - -function $get_15(this$static, key){ - return this$static.backingMap.get(key); -} - -function $put_10(this$static, key, value_0){ - var oldValue; - oldValue = this$static.backingMap.get(key); - this$static.backingMap.set(key, value_0 === undefined?null:value_0); - if (oldValue === undefined) { - ++this$static.size_0; - structureChanged(this$static.host); - } - else { - ++this$static.valueMod; - } - return oldValue; -} - -function $remove_20(this$static, key){ - var value_0; - value_0 = this$static.backingMap.get(key); - if (value_0 === undefined) { - ++this$static.valueMod; - } - else { - $delete_1(this$static.backingMap, key); - --this$static.size_0; - structureChanged(this$static.host); - } - return value_0; -} - -function InternalStringMap(host){ - this.backingMap = newJsMap(); - this.host = host; -} - -defineClass(1047, 1, $intern_23, InternalStringMap); -_.forEach_0 = function forEach_22(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_61(){ - return new InternalStringMap$1(this); -} -; -_.size_0 = 0; -_.valueMod = 0; -var Ljava_util_InternalStringMap_2_classLit = createForClass('java.util', 'InternalStringMap', 1047); -function InternalStringMap$1(this$0){ - this.this$01 = this$0; - this.entries_0 = this.this$01.backingMap.entries(); - this.current = this.entries_0.next(); -} - -defineClass(710, 1, $intern_6, InternalStringMap$1); -_.forEachRemaining = function forEachRemaining_29(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_32(){ - return this.last = this.current , this.current = this.entries_0.next() , new InternalStringMap$2(this.this$01, this.last, this.this$01.valueMod); -} -; -_.hasNext_0 = function hasNext_31(){ - return !this.current.done; -} -; -_.remove = function remove_79(){ - $remove_20(this.this$01, this.last.value[0]); -} -; -var Ljava_util_InternalStringMap$1_2_classLit = createForClass('java.util', 'InternalStringMap/1', 710); -function InternalStringMap$2(this$0, val$entry, val$lastValueMod){ - this.this$01 = this$0; - this.val$entry2 = val$entry; - this.val$lastValueMod3 = val$lastValueMod; -} - -defineClass(1048, 1984, $intern_70, InternalStringMap$2); -_.getKey = function getKey_7(){ - return this.val$entry2.value[0]; -} -; -_.getValue = function getValue_9(){ - if (this.this$01.valueMod != this.val$lastValueMod3) { - return $get_15(this.this$01, this.val$entry2.value[0]); - } - return this.val$entry2.value[1]; -} -; -_.setValue = function setValue_10(object){ - return $put_10(this.this$01, this.val$entry2.value[0], object); -} -; -_.val$lastValueMod3 = 0; -var Ljava_util_InternalStringMap$2_2_classLit = createForClass('java.util', 'InternalStringMap/2', 1048); -function $$init_3(this$static){ - this$static.head = new LinkedHashMap$ChainEntry(this$static); - this$static.map_0 = new HashMap; -} - -function $clear_7(this$static){ - $reset(this$static.map_0); - this$static.head.prev = this$static.head; - this$static.head.next_0 = this$static.head; -} - -function $containsKey_6(this$static, key){ - return $containsKey_3(this$static.map_0, key); -} - -function $get_16(this$static, key){ - var entry; - entry = castTo($get_10(this$static.map_0, key), 387); - if (entry) { - $recordAccess(this$static, entry); - return entry.value_0; - } - return null; -} - -function $put_11(this$static, key, value_0){ - var newEntry, old, oldValue; - old = castTo($get_10(this$static.map_0, key), 387); - if (!old) { - newEntry = new LinkedHashMap$ChainEntry_0(this$static, key, value_0); - $put_6(this$static.map_0, key, newEntry); - $addToEnd(newEntry); - return null; - } - else { - oldValue = $setValue_0(old, value_0); - $recordAccess(this$static, old); - return oldValue; - } -} - -function $recordAccess(this$static, entry){ - if (this$static.accessOrder) { - $remove_23(entry); - $addToEnd(entry); - } -} - -function $remove_22(this$static, key){ - var entry; - entry = castTo($remove_6(this$static.map_0, key), 387); - if (entry) { - $remove_23(entry); - return entry.value_0; - } - return null; -} - -function LinkedHashMap(){ - HashMap.call(this); - $$init_3(this); - this.head.prev = this.head; - this.head.next_0 = this.head; -} - -function LinkedHashMap_0(ignored){ - AbstractHashMap.call(this, ignored, 0); - $$init_3(this); - this.head.prev = this.head; - this.head.next_0 = this.head; -} - -defineClass(228, 43, $intern_76, LinkedHashMap, LinkedHashMap_0); -_.clear_0 = function clear_43(){ - $clear_7(this); -} -; -_.containsKey = function containsKey_14(key){ - return $containsKey_6(this, key); -} -; -_.containsValue = function containsValue_7(value_0){ - var node; - node = this.head.next_0; - while (node != this.head) { - if (equals_57(node.value_0, value_0)) { - return true; - } - node = node.next_0; - } - return false; -} -; -_.entrySet_0 = function entrySet_7(){ - return new LinkedHashMap$EntrySet(this); -} -; -_.get_3 = function get_42(key){ - return $get_16(this, key); -} -; -_.put = function put_8(key, value_0){ - return $put_11(this, key, value_0); -} -; -_.remove_0 = function remove_80(key){ - return $remove_22(this, key); -} -; -_.size_1 = function size_57(){ - return $size_2(this.map_0); -} -; -_.accessOrder = false; -var Ljava_util_LinkedHashMap_2_classLit = createForClass('java.util', 'LinkedHashMap', 228); -function $addToEnd(this$static){ - var tail; - tail = this$static.this$01.head.prev; - this$static.prev = tail; - this$static.next_0 = this$static.this$01.head; - tail.next_0 = this$static.this$01.head.prev = this$static; -} - -function $remove_23(this$static){ - this$static.next_0.prev = this$static.prev; - this$static.prev.next_0 = this$static.next_0; - this$static.next_0 = this$static.prev = null; -} - -function LinkedHashMap$ChainEntry(this$0){ - LinkedHashMap$ChainEntry_0.call(this, this$0, null, null); -} - -function LinkedHashMap$ChainEntry_0(this$0, key, value_0){ - this.this$01 = this$0; - AbstractMap$SimpleEntry.call(this, key, value_0); -} - -defineClass(387, 383, {484:1, 383:1, 387:1, 42:1}, LinkedHashMap$ChainEntry, LinkedHashMap$ChainEntry_0); -var Ljava_util_LinkedHashMap$ChainEntry_2_classLit = createForClass('java.util', 'LinkedHashMap/ChainEntry', 387); -function $contains_8(this$static, o){ - if (instanceOf(o, 42)) { - return $containsEntry_0(this$static.this$01, castTo(o, 42)); - } - return false; -} - -function LinkedHashMap$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(701, $intern_9, $intern_10, LinkedHashMap$EntrySet); -_.clear_0 = function clear_44(){ - $clear_7(this.this$01); -} -; -_.contains = function contains_44(o){ - return $contains_8(this, o); -} -; -_.iterator_0 = function iterator_62(){ - return new LinkedHashMap$EntrySet$EntryIterator(this); -} -; -_.remove_1 = function remove_81(entry){ - var key; - if ($contains_8(this, entry)) { - key = castTo(entry, 42).getKey(); - $remove_22(this.this$01, key); - return true; - } - return false; -} -; -_.size_1 = function size_58(){ - return $size_2(this.this$01.map_0); -} -; -var Ljava_util_LinkedHashMap$EntrySet_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet', 701); -function $next_9(this$static){ - checkStructuralChange(this$static.this$11.this$01.map_0, this$static); - checkCriticalElement(this$static.next_0 != this$static.this$11.this$01.head); - this$static.last = this$static.next_0; - this$static.next_0 = this$static.next_0.next_0; - return this$static.last; -} - -function LinkedHashMap$EntrySet$EntryIterator(this$1){ - this.this$11 = this$1; - this.next_0 = this$1.this$01.head.next_0; - recordLastKnownStructure(this$1.this$01.map_0, this); -} - -defineClass(702, 1, $intern_6, LinkedHashMap$EntrySet$EntryIterator); -_.forEachRemaining = function forEachRemaining_30(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_33(){ - return $next_9(this); -} -; -_.hasNext_0 = function hasNext_32(){ - return this.next_0 != this.this$11.this$01.head; -} -; -_.remove = function remove_82(){ - checkCriticalState(!!this.last); - checkStructuralChange(this.this$11.this$01.map_0, this); - $remove_23(this.last); - $remove_6(this.this$11.this$01.map_0, this.last.key); - recordLastKnownStructure(this.this$11.this$01.map_0, this); - this.last = null; -} -; -var Ljava_util_LinkedHashMap$EntrySet$EntryIterator_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet/EntryIterator', 702); -function LinkedHashSet(){ - HashSet_2.call(this, new LinkedHashMap); -} - -function LinkedHashSet_0(ignored){ - HashSet_2.call(this, new LinkedHashMap_0(ignored)); -} - -function LinkedHashSet_1(c){ - HashSet_2.call(this, new LinkedHashMap); - $addAll(this, c); -} - -defineClass(178, 53, $intern_77, LinkedHashSet, LinkedHashSet_0, LinkedHashSet_1); -var Ljava_util_LinkedHashSet_2_classLit = createForClass('java.util', 'LinkedHashSet', 178); -function $$init_4(this$static){ - this$static.header = new LinkedList$Node; - this$static.tail = new LinkedList$Node; -} - -function $add_7(this$static, o){ - $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); - return true; -} - -function $addFirst_0(this$static, o){ - $addNode_0(this$static, o, this$static.header, this$static.header.next_0); -} - -function $addLast_0(this$static, o){ - $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); -} - -function $addNode_0(this$static, o, prev, next){ - var node; - node = new LinkedList$Node; - node.value_0 = o; - node.prev = prev; - node.next_0 = next; - next.prev = prev.next_0 = node; - ++this$static.size_0; -} - -function $getFirst(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return this$static.header.next_0.value_0; -} - -function $getLast(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return this$static.tail.prev.value_0; -} - -function $listIterator_2(this$static, index_0){ - var i, node; - checkCriticalPositionIndex(index_0, this$static.size_0); - if (index_0 >= this$static.size_0 >> 1) { - node = this$static.tail; - for (i = this$static.size_0; i > index_0; --i) { - node = node.prev; - } - } - else { - node = this$static.header.next_0; - for (i = 0; i < index_0; ++i) { - node = node.next_0; - } - } - return new LinkedList$ListIteratorImpl(this$static, index_0, node); -} - -function $poll(this$static){ - return this$static.size_0 == 0?null:(checkCriticalElement(this$static.size_0 != 0) , $removeNode_0(this$static, this$static.header.next_0)); -} - -function $removeFirst_0(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return $removeNode_0(this$static, this$static.header.next_0); -} - -function $removeLast_0(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return $removeNode_0(this$static, this$static.tail.prev); -} - -function $removeNode_0(this$static, node){ - var oldValue; - oldValue = node.value_0; - node.next_0.prev = node.prev; - node.prev.next_0 = node.next_0; - node.next_0 = node.prev = null; - node.value_0 = null; - --this$static.size_0; - return oldValue; -} - -function $reset_0(this$static){ - this$static.header.next_0 = this$static.tail; - this$static.tail.prev = this$static.header; - this$static.header.prev = this$static.tail.next_0 = null; - this$static.size_0 = 0; -} - -function LinkedList(){ - $$init_4(this); - $reset_0(this); -} - -function LinkedList_0(c){ - $$init_4(this); - $reset_0(this); - $addAll(this, c); -} - -defineClass(68, 1964, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1}, LinkedList, LinkedList_0); -_.add_2 = function add_36(o){ - return $add_7(this, o); -} -; -_.clear_0 = function clear_45(){ - $reset_0(this); -} -; -_.listIterator_1 = function listIterator_14(index_0){ - return $listIterator_2(this, index_0); -} -; -_.size_1 = function size_59(){ - return this.size_0; -} -; -_.size_0 = 0; -var Ljava_util_LinkedList_2_classLit = createForClass('java.util', 'LinkedList', 68); -function $add_8(this$static, o){ - $addNode_0(this$static.this$01, o, this$static.currentNode.prev, this$static.currentNode); - ++this$static.currentIndex; - this$static.lastNode = null; -} - -function $hasNext_5(this$static){ - return this$static.currentNode != this$static.this$01.tail; -} - -function $next_10(this$static){ - checkCriticalElement(this$static.currentNode != this$static.this$01.tail); - this$static.lastNode = this$static.currentNode; - this$static.currentNode = this$static.currentNode.next_0; - ++this$static.currentIndex; - return this$static.lastNode.value_0; -} - -function $previous_0(this$static){ - checkCriticalElement(this$static.currentNode.prev != this$static.this$01.header); - this$static.lastNode = this$static.currentNode = this$static.currentNode.prev; - --this$static.currentIndex; - return this$static.lastNode.value_0; -} - -function $remove_24(this$static){ - var nextNode; - checkCriticalState(!!this$static.lastNode); - nextNode = this$static.lastNode.next_0; - $removeNode_0(this$static.this$01, this$static.lastNode); - this$static.currentNode == this$static.lastNode?(this$static.currentNode = nextNode):--this$static.currentIndex; - this$static.lastNode = null; -} - -function LinkedList$ListIteratorImpl(this$0, index_0, startNode){ - this.this$01 = this$0; - this.currentNode = startNode; - this.currentIndex = index_0; -} - -defineClass(970, 1, $intern_14, LinkedList$ListIteratorImpl); -_.forEachRemaining = function forEachRemaining_31(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_37(o){ - $add_8(this, o); -} -; -_.hasNext_0 = function hasNext_33(){ - return $hasNext_5(this); -} -; -_.hasPrevious = function hasPrevious_6(){ - return this.currentNode.prev != this.this$01.header; -} -; -_.next_1 = function next_34(){ - return $next_10(this); -} -; -_.nextIndex_0 = function nextIndex_7(){ - return this.currentIndex; -} -; -_.previous_0 = function previous_7(){ - return $previous_0(this); -} -; -_.previousIndex = function previousIndex_6(){ - return this.currentIndex - 1; -} -; -_.remove = function remove_83(){ - $remove_24(this); -} -; -_.set_1 = function set_18(o){ - checkCriticalState(!!this.lastNode); - this.lastNode.value_0 = o; -} -; -_.currentIndex = 0; -_.lastNode = null; -var Ljava_util_LinkedList$ListIteratorImpl_2_classLit = createForClass('java.util', 'LinkedList/ListIteratorImpl', 970); -function LinkedList$Node(){ -} - -defineClass(608, 1, {}, LinkedList$Node); -var Ljava_util_LinkedList$Node_2_classLit = createForClass('java.util', 'LinkedList/Node', 608); -function $clinit_Locale(){ - $clinit_Locale = emptyMethod; - ROOT = new Locale$1; - defaultLocale = new Locale$4; -} - -defineClass(1959, 1, {}); -var ROOT, defaultLocale; -var Ljava_util_Locale_2_classLit = createForClass('java.util', 'Locale', 1959); -function Locale$1(){ -} - -defineClass(861, 1959, {}, Locale$1); -_.toString_0 = function toString_67(){ - return ''; -} -; -var Ljava_util_Locale$1_2_classLit = createForClass('java.util', 'Locale/1', 861); -function Locale$4(){ -} - -defineClass(862, 1959, {}, Locale$4); -_.toString_0 = function toString_68(){ - return 'unknown'; -} -; -var Ljava_util_Locale$4_2_classLit = createForClass('java.util', 'Locale/4', 862); -function NoSuchElementException(){ - RuntimeException.call(this); -} - -function NoSuchElementException_0(){ - RuntimeException_0.call(this, 'There is no more element.'); -} - -defineClass(109, 60, {3:1, 102:1, 60:1, 78:1, 109:1}, NoSuchElementException, NoSuchElementException_0); -var Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util', 'NoSuchElementException', 109); -function equals_57(a, b){ - return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); -} - -function hashCode_54(o){ - return o != null?hashCode__I__devirtual$(o):0; -} - -function requireNonNull(obj, message){ - if (obj == null) { - throw toJs(new NullPointerException_0(message)); - } - return obj; -} - -function $clinit_Optional(){ - $clinit_Optional = emptyMethod; - EMPTY_3 = new Optional(null); -} - -function $get_17(this$static){ - checkCriticalElement(this$static.ref != null); - return this$static.ref; -} - -function $ifPresent(this$static, consumer){ - this$static.ref != null && $accept_4(consumer, this$static.ref); -} - -function $map(this$static, mapper){ - checkCriticalNotNull(mapper); - if (this$static.ref != null) { - return ofNullable(mapper.apply_0(this$static.ref)); - } - return EMPTY_3; -} - -function $orElse(this$static){ - return this$static.ref != null?this$static.ref:null; -} - -function Optional(ref){ - $clinit_Optional(); - this.ref = ref; -} - -function ofNullable(value_0){ - return value_0 == null?EMPTY_3:new Optional(checkCriticalNotNull(value_0)); -} - -defineClass(404, 1, {404:1}, Optional); -_.equals_0 = function equals_58(obj){ - var other; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 404)) { - return false; - } - other = castTo(obj, 404); - return equals_57(this.ref, other.ref); -} -; -_.hashCode_1 = function hashCode_55(){ - return hashCode_54(this.ref); -} -; -_.toString_0 = function toString_69(){ - return this.ref != null?'Optional.of(' + valueOf_7(this.ref) + ')':'Optional.empty()'; -} -; -var EMPTY_3; -var Ljava_util_Optional_2_classLit = createForClass('java.util', 'Optional', 404); -function $clinit_OptionalDouble(){ - $clinit_OptionalDouble = emptyMethod; - EMPTY_4 = new OptionalDouble; -} - -function $orElse_0(this$static){ - return this$static.present?this$static.ref:0; -} - -function $orElseGet(this$static, other){ - return this$static.present?this$static.ref:other.getAsDouble(); -} - -function OptionalDouble(){ - this.ref = 0; - this.present = false; -} - -function OptionalDouble_0(value_0){ - $clinit_OptionalDouble(); - this.ref = value_0; - this.present = true; -} - -defineClass(463, 1, {463:1}, OptionalDouble, OptionalDouble_0); -_.equals_0 = function equals_59(obj){ - var other; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 463)) { - return false; - } - other = castTo(obj, 463); - return this.present == other.present && compare_4(this.ref, other.ref) == 0; -} -; -_.hashCode_1 = function hashCode_56(){ - return this.present?round_int(this.ref):0; -} -; -_.toString_0 = function toString_70(){ - return this.present?'OptionalDouble.of(' + ('' + this.ref) + ')':'OptionalDouble.empty()'; -} -; -_.present = false; -_.ref = 0; -var EMPTY_4; -var Ljava_util_OptionalDouble_2_classLit = createForClass('java.util', 'OptionalDouble', 463); -function $clinit_OptionalInt(){ - $clinit_OptionalInt = emptyMethod; - EMPTY_5 = new OptionalInt; -} - -function $orElse_1(this$static){ - return this$static.present?this$static.ref:0; -} - -function OptionalInt(){ - this.ref = 0; - this.present = false; -} - -function OptionalInt_0(value_0){ - $clinit_OptionalInt(); - this.ref = value_0; - this.present = true; -} - -defineClass(517, 1, {517:1}, OptionalInt, OptionalInt_0); -_.equals_0 = function equals_60(obj){ - var other; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 517)) { - return false; - } - other = castTo(obj, 517); - return this.present == other.present && compare_5(this.ref, other.ref) == 0; -} -; -_.hashCode_1 = function hashCode_57(){ - return this.present?this.ref:0; -} -; -_.toString_0 = function toString_71(){ - return this.present?'OptionalInt.of(' + ('' + this.ref) + ')':'OptionalInt.empty()'; -} -; -_.present = false; -_.ref = 0; -var EMPTY_5; -var Ljava_util_OptionalInt_2_classLit = createForClass('java.util', 'OptionalInt', 517); -function $addAll_4(this$static, c){ - var e, e$iterator, oldSize; - checkCriticalNotNull(c); - checkCriticalArgument(c != this$static); - oldSize = this$static.heap.array.length; - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - $add_3(this$static.heap, checkCriticalNotNull(e)); - } - if (oldSize != this$static.heap.array.length) { - $makeHeap(this$static, 0); - return true; - } - return false; -} - -function $makeHeap(this$static, node){ - var rightChild; - if (node * 2 + 1 >= this$static.heap.array.length) { - return; - } - $makeHeap(this$static, 2 * node + 1); - rightChild = 2 * node + 2; - rightChild < this$static.heap.array.length && $makeHeap(this$static, rightChild); - $mergeHeaps(this$static, node); -} - -function $mergeHeaps(this$static, node){ - var heapSize, smallestChild, value_0, leftChild, rightChild, smallestChild_0; - heapSize = this$static.heap.array.length; - value_0 = $get_11(this$static.heap, node); - while (node * 2 + 1 < heapSize) { - smallestChild = (leftChild = 2 * node + 1 , rightChild = leftChild + 1 , smallestChild_0 = leftChild , rightChild < heapSize && this$static.cmp.compare_1($get_11(this$static.heap, rightChild), $get_11(this$static.heap, leftChild)) < 0 && (smallestChild_0 = rightChild) , smallestChild_0); - if (this$static.cmp.compare_1(value_0, $get_11(this$static.heap, smallestChild)) < 0) { - break; - } - $set_1(this$static.heap, node, $get_11(this$static.heap, smallestChild)); - node = smallestChild; - } - $set_1(this$static.heap, node, value_0); -} - -function $offer(this$static, e){ - var childNode, node; - checkCriticalNotNull(e); - node = this$static.heap.array.length; - $add_3(this$static.heap, e); - while (node > 0) { - childNode = node; - node = (node - 1) / 2 | 0; - if (this$static.cmp.compare_1($get_11(this$static.heap, node), e) <= 0) { - $set_1(this$static.heap, childNode, e); - return true; - } - $set_1(this$static.heap, childNode, $get_11(this$static.heap, node)); - } - $set_1(this$static.heap, node, e); - return true; -} - -function $poll_0(this$static){ - var value_0; - value_0 = this$static.heap.array.length == 0?null:$get_11(this$static.heap, 0); - value_0 != null && $removeAtIndex_0(this$static, 0); - return value_0; -} - -function $remove_25(this$static, o){ - var index_0; - index_0 = o == null?-1:$indexOf_3(this$static.heap, o, 0); - if (index_0 < 0) { - return false; - } - $removeAtIndex_0(this$static, index_0); - return true; -} - -function $removeAtIndex_0(this$static, index_0){ - var lastValue; - lastValue = $remove_11(this$static.heap, this$static.heap.array.length - 1); - if (index_0 < this$static.heap.array.length) { - $set_1(this$static.heap, index_0, lastValue); - $mergeHeaps(this$static, index_0); - } -} - -function PriorityQueue(comparator){ - this.heap = new ArrayList_0(11); - this.cmp = ($clinit_Comparators() , comparator); -} - -defineClass(503, 2004, $intern_8, PriorityQueue); -_.addAll = function addAll_18(c){ - return $addAll_4(this, c); -} -; -_.clear_0 = function clear_46(){ - this.heap.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_45(o){ - return (o == null?-1:$indexOf_3(this.heap, o, 0)) != -1; -} -; -_.iterator_0 = function iterator_63(){ - return new PriorityQueue$1(this); -} -; -_.remove_1 = function remove_84(o){ - return $remove_25(this, o); -} -; -_.size_1 = function size_60(){ - return this.heap.array.length; -} -; -_.spliterator_0 = function spliterator_33(){ - return new Spliterators$IteratorSpliterator(this, 256); -} -; -_.toArray = function toArray_19(){ - return $toArray_1(this.heap); -} -; -_.toArray_0 = function toArray_20(a){ - return $toArray_2(this.heap, a); -} -; -var Ljava_util_PriorityQueue_2_classLit = createForClass('java.util', 'PriorityQueue', 503); -function PriorityQueue$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1277, 1, $intern_6, PriorityQueue$1); -_.forEachRemaining = function forEachRemaining_32(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_34(){ - return this.i < this.this$01.heap.array.length; -} -; -_.next_1 = function next_35(){ - checkCriticalElement(this.i < this.this$01.heap.array.length); - this.last = this.i++; - return $get_11(this.this$01.heap, this.last); -} -; -_.remove = function remove_85(){ - checkCriticalState(this.last != -1); - $removeAtIndex_0(this.this$01, this.i = this.last); - this.last = -1; -} -; -_.i = 0; -_.last = -1; -var Ljava_util_PriorityQueue$1_2_classLit = createForClass('java.util', 'PriorityQueue/1', 1277); -function $clinit_Random(){ - $clinit_Random = emptyMethod; - var i, i0, twoToTheXMinus24Tmp, twoToTheXMinus48Tmp; - twoToTheXMinus24 = initUnidimensionalArray(D_classLit, $intern_65, 25, 25, 15, 1); - twoToTheXMinus48 = initUnidimensionalArray(D_classLit, $intern_65, 25, 33, 15, 1); - twoToTheXMinus48Tmp = 1.52587890625E-5; - for (i0 = 32; i0 >= 0; i0--) { - twoToTheXMinus48[i0] = twoToTheXMinus48Tmp; - twoToTheXMinus48Tmp *= 0.5; - } - twoToTheXMinus24Tmp = 1; - for (i = 24; i >= 0; i--) { - twoToTheXMinus24[i] = twoToTheXMinus24Tmp; - twoToTheXMinus24Tmp *= 0.5; - } -} - -function $nextDouble(this$static){ - return $nextInternal(this$static, 26) * $intern_78 + $nextInternal(this$static, 27) * $intern_79; -} - -function $nextInt(this$static, n){ - var bits, val; - checkCriticalArgument(n > 0); - if ((n & -n) == n) { - return round_int(n * $nextInternal(this$static, 31) * 4.6566128730773926E-10); - } - do { - bits = $nextInternal(this$static, 31); - val = bits % n; - } - while (bits - val + (n - 1) < 0); - return round_int(val); -} - -function $nextInternal(this$static, bits){ - var carry, dval, h, hi, l, lo; - hi = this$static.seedhi * $intern_80 + this$static.seedlo * 1502; - lo = this$static.seedlo * $intern_80 + 11; - carry = $wnd.Math.floor(lo * $intern_81); - hi += carry; - lo -= carry * $intern_82; - hi %= $intern_82; - this$static.seedhi = hi; - this$static.seedlo = lo; - if (bits <= 24) { - return $wnd.Math.floor(this$static.seedhi * twoToTheXMinus24[bits]); - } - else { - h = this$static.seedhi * (1 << bits - 24); - l = $wnd.Math.floor(this$static.seedlo * twoToTheXMinus48[bits]); - dval = h + l; - dval >= 2147483648 && (dval -= $intern_69); - return dval; - } -} - -function $nextLong(this$static){ - return add_20(shl_0(fromDouble_0($nextInternal(this$static, 32)), 32), fromDouble_0($nextInternal(this$static, 32))); -} - -function $setSeed(this$static, seedhi, seedlo){ - this$static.seedhi = seedhi ^ 1502; - this$static.seedlo = seedlo ^ $intern_80; -} - -function $setSeed_0(this$static, seed){ - $setSeed(this$static, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); -} - -function Random(){ - $clinit_Random(); - var hi, lo, seed; - seed = uniqueSeed++ + Date.now(); - hi = round_int($wnd.Math.floor(seed * $intern_81)) & $intern_83; - lo = round_int(seed - hi * $intern_82); - this.seedhi = hi ^ 1502; - this.seedlo = lo ^ $intern_80; -} - -function Random_0(seed){ - $clinit_Random(); - $setSeed(this, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); -} - -defineClass(230, 1, {230:1}, Random, Random_0); -_.seedhi = 0; -_.seedlo = 0; -var twoToTheXMinus24, twoToTheXMinus48, uniqueSeed = 0; -var Ljava_util_Random_2_classLit = createForClass('java.util', 'Random', 230); -function $initIterator(this$static){ - if (!this$static.it) { - this$static.it = this$static.collection.iterator_0(); - this$static.estimateSize = this$static.collection.size_1(); - } -} - -function $tryAdvance(this$static, consumer){ - checkCriticalNotNull(consumer); - $initIterator(this$static); - if (this$static.it.hasNext_0()) { - consumer.accept(this$static.it.next_1()); - return true; - } - return false; -} - -function Spliterators$IteratorSpliterator(collection, characteristics){ - this.collection = (checkCriticalNotNull(collection) , collection); - this.characteristics = (characteristics & $intern_61) == 0?characteristics | 64 | $intern_17:characteristics; -} - -function Spliterators$IteratorSpliterator_0(it){ - this.it = (checkCriticalNotNull(it) , it); - this.characteristics = 0; - this.estimateSize = $intern_20; -} - -function Spliterators$IteratorSpliterator_1(it, size_0){ - this.it = (checkCriticalNotNull(it) , it); - this.characteristics = 16449; - this.estimateSize = size_0; -} - -defineClass(27, 1, $intern_18, Spliterators$IteratorSpliterator, Spliterators$IteratorSpliterator_0, Spliterators$IteratorSpliterator_1); -_.characteristics_0 = function characteristics_3(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_2(){ - $initIterator(this); - return this.estimateSize; -} -; -_.forEachRemaining = function forEachRemaining_33(consumer){ - $initIterator(this); - this.it.forEachRemaining(consumer); -} -; -_.tryAdvance = function tryAdvance_2(consumer){ - return $tryAdvance(this, consumer); -} -; -_.characteristics = 0; -_.estimateSize = 0; -var Ljava_util_Spliterators$IteratorSpliterator_2_classLit = createForClass('java.util', 'Spliterators/IteratorSpliterator', 27); -function SortedSet$1($anonymous0){ - Spliterators$IteratorSpliterator.call(this, $anonymous0, 21); -} - -defineClass(485, 27, $intern_18, SortedSet$1); -var Ljava_util_SortedSet$1_2_classLit = createForClass('java.util', 'SortedSet/1', 485); -function $forEachRemaining_1(this$static, consumer){ - while (this$static.tryAdvance_0(consumer)) - ; -} - -function Spliterator$OfDouble$0methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(602, 1, $intern_75, Spliterator$OfDouble$0methodref$accept$Type); -_.accept_2 = function accept_17(arg0){ - this.$$outer_0.accept(arg0); -} -; -var Ljava_util_Spliterator$OfDouble$0methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/0methodref$accept$Type', 602); -function Spliterator$OfDouble$1methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(603, 1, $intern_75, Spliterator$OfDouble$1methodref$accept$Type); -_.accept_2 = function accept_18(arg0){ - this.$$outer_0.accept(arg0); -} -; -var Ljava_util_Spliterator$OfDouble$1methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/1methodref$accept$Type', 603); -function Spliterator$OfInt$2methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(604, 1, $intern_21, Spliterator$OfInt$2methodref$accept$Type); -_.accept_0 = function accept_19(arg0){ - this.$$outer_0.accept(valueOf_4(arg0)); -} -; -var Ljava_util_Spliterator$OfInt$2methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/2methodref$accept$Type', 604); -function Spliterator$OfInt$3methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(605, 1, $intern_21, Spliterator$OfInt$3methodref$accept$Type); -_.accept_0 = function accept_20(arg0){ - this.$$outer_0.accept(valueOf_4(arg0)); -} -; -var Ljava_util_Spliterator$OfInt$3methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/3methodref$accept$Type', 605); -function checkCriticalArrayBounds(end, length_0){ - if (0 > end || end > length_0) { - throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: 0, toIndex: ' + end + ', length: ' + length_0)); - } -} - -function Spliterators$BaseSpliterator(size_0, characteristics){ - this.sizeEstimate = size_0; - this.characteristics = (characteristics & 64) != 0?characteristics | $intern_17:characteristics; -} - -defineClass(617, 1, $intern_18); -_.forEachRemaining = function forEachRemaining_34(consumer){ - $forEachRemaining_0(this, consumer); -} -; -_.characteristics_0 = function characteristics_4(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_3(){ - return this.sizeEstimate; -} -; -_.characteristics = 0; -_.sizeEstimate = 0; -var Ljava_util_Spliterators$BaseSpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseSpliterator', 617); -function Spliterators$AbstractDoubleSpliterator(size_0, characteristics){ - Spliterators$BaseSpliterator.call(this, size_0, characteristics); -} - -defineClass(721, 617, $intern_18); -_.forEachRemaining_0 = function forEachRemaining_35(consumer){ - $forEachRemaining_1(this, consumer); -} -; -_.forEachRemaining = function forEachRemaining_36(consumer){ - instanceOf(consumer, 182)?$forEachRemaining_1(this, castTo(consumer, 182)):$forEachRemaining_1(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); -} -; -_.tryAdvance = function tryAdvance_3(consumer){ - return instanceOf(consumer, 182)?this.tryAdvance_0(castTo(consumer, 182)):this.tryAdvance_0(new Spliterator$OfDouble$0methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$AbstractDoubleSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractDoubleSpliterator', 721); -function Spliterators$AbstractIntSpliterator(size_0, characteristics){ - Spliterators$BaseSpliterator.call(this, size_0, characteristics); -} - -defineClass(720, 617, $intern_18); -_.forEachRemaining_0 = function forEachRemaining_37(consumer){ - $forEachRemaining_1(this, consumer); -} -; -_.forEachRemaining = function forEachRemaining_38(consumer){ - instanceOf(consumer, 196)?$forEachRemaining_1(this, castTo(consumer, 196)):$forEachRemaining_1(this, new Spliterator$OfInt$3methodref$accept$Type(consumer)); -} -; -_.tryAdvance = function tryAdvance_4(consumer){ - return instanceOf(consumer, 196)?this.tryAdvance_0(castTo(consumer, 196)):this.tryAdvance_0(new Spliterator$OfInt$2methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$AbstractIntSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractIntSpliterator', 720); -function Spliterators$AbstractSpliterator(size_0, characteristics){ - Spliterators$BaseSpliterator.call(this, size_0, characteristics); -} - -defineClass(540, 617, $intern_18); -var Ljava_util_Spliterators$AbstractSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractSpliterator', 540); -function $forEachRemaining_2(this$static, consumer){ - checkCriticalNotNull(consumer); - while (this$static.index_0 < this$static.limit) { - this$static.consume(consumer, this$static.index_0++); - } -} - -function $tryAdvance_0(this$static, consumer){ - checkCriticalNotNull(consumer); - if (this$static.index_0 < this$static.limit) { - this$static.consume(consumer, this$static.index_0++); - return true; - } - return false; -} - -function Spliterators$BaseArraySpliterator(limit, characteristics){ - this.index_0 = 0; - this.limit = limit; - this.characteristics = characteristics | 64 | $intern_17; -} - -defineClass(692, 1, $intern_18); -_.forEachRemaining = function forEachRemaining_39(consumer){ - $forEachRemaining_0(this, consumer); -} -; -_.characteristics_0 = function characteristics_5(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_4(){ - return this.limit - this.index_0; -} -; -_.characteristics = 0; -_.index_0 = 0; -_.limit = 0; -var Ljava_util_Spliterators$BaseArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseArraySpliterator', 692); -function $consume(this$static, consumer, index_0){ - consumer.accept(this$static.array[index_0]); -} - -function Spliterators$ArraySpliterator(array, limit){ - Spliterators$BaseArraySpliterator.call(this, limit, 1040); - this.array = array; -} - -defineClass(947, 692, $intern_18, Spliterators$ArraySpliterator); -_.consume = function consume(consumer, index_0){ - $consume(this, castTo(consumer, 38), index_0); -} -; -_.forEachRemaining = function forEachRemaining_40(consumer){ - $forEachRemaining_2(this, consumer); -} -; -_.tryAdvance = function tryAdvance_5(consumer){ - return $tryAdvance_0(this, consumer); -} -; -var Ljava_util_Spliterators$ArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/ArraySpliterator', 947); -function $consume_0(this$static, consumer, index_0){ - consumer.accept_2(this$static.array[index_0]); -} - -function Spliterators$DoubleArraySpliterator(array, characteristics){ - Spliterators$DoubleArraySpliterator_0.call(this, array, array.length, characteristics); -} - -function Spliterators$DoubleArraySpliterator_0(array, limit, characteristics){ - Spliterators$BaseArraySpliterator.call(this, limit, characteristics); - this.array = array; -} - -defineClass(693, 692, $intern_18, Spliterators$DoubleArraySpliterator); -_.consume = function consume_0(consumer, index_0){ - $consume_0(this, castTo(consumer, 182), index_0); -} -; -_.forEachRemaining_0 = function forEachRemaining_41(consumer){ - $forEachRemaining_2(this, consumer); -} -; -_.forEachRemaining = function forEachRemaining_42(consumer){ - instanceOf(consumer, 182)?$forEachRemaining_2(this, castTo(consumer, 182)):$forEachRemaining_2(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); -} -; -_.tryAdvance_0 = function tryAdvance_6(consumer){ - return $tryAdvance_0(this, consumer); -} -; -_.tryAdvance = function tryAdvance_7(consumer){ - return instanceOf(consumer, 182)?$tryAdvance_0(this, castTo(consumer, 182)):$tryAdvance_0(this, new Spliterator$OfDouble$0methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$DoubleArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/DoubleArraySpliterator', 693); -function $clinit_Spliterators$EmptySpliterator(){ - $clinit_Spliterators$EmptySpliterator = emptyMethod; - $clinit_Spliterators$EmptySpliterator(); - OF_INT = new Spliterators$EmptySpliterator$OfInt; -} - -defineClass(1968, 1, $intern_18); -_.forEachRemaining = function forEachRemaining_43(consumer){ - $forEachRemaining_0(this, consumer); -} -; -_.characteristics_0 = function characteristics_6(){ - return 16448; -} -; -_.estimateSize_0 = function estimateSize_5(){ - return 0; -} -; -var OF_INT; -var Ljava_util_Spliterators$EmptySpliterator_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator', 1968); -function $forEachRemaining_3(consumer){ - checkCriticalNotNull(consumer); -} - -function $tryAdvance_1(consumer){ - return checkCriticalNotNull(consumer) , false; -} - -function Spliterators$EmptySpliterator$OfInt(){ -} - -defineClass(946, 1968, $intern_18, Spliterators$EmptySpliterator$OfInt); -_.forEachRemaining_0 = function forEachRemaining_44(consumer){ - $forEachRemaining_3(consumer); -} -; -_.forEachRemaining = function forEachRemaining_45(consumer){ - instanceOf(consumer, 196)?$forEachRemaining_3(castTo(consumer, 196)):$forEachRemaining_3(new Spliterator$OfInt$3methodref$accept$Type(consumer)); -} -; -_.tryAdvance_0 = function tryAdvance_8(consumer){ - return $tryAdvance_1(consumer); -} -; -_.tryAdvance = function tryAdvance_9(consumer){ - return instanceOf(consumer, 196)?$tryAdvance_1(castTo(consumer, 196)):$tryAdvance_1(new Spliterator$OfInt$2methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$EmptySpliterator$OfInt_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator/OfInt', 946); -function $addElement(this$static, o){ - $add_3(this$static.arrayList, o); -} - -function $elementAt(this$static, index_0){ - return checkArrayElementIndex(index_0, this$static.arrayList.array.length) , $get_11(this$static.arrayList, index_0); -} - -function $setElementAt(this$static, o, index_0){ - checkArrayElementIndex(index_0, this$static.arrayList.array.length); - $set_1(this$static.arrayList, index_0, o); -} - -function Vector(){ - this.arrayList = new ArrayList; -} - -function checkArrayElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new ArrayIndexOutOfBoundsException); - } -} - -defineClass(580, 52, $intern_84, Vector); -_.add_3 = function add_38(index_0, o){ - checkArrayElementIndex(index_0, this.arrayList.array.length + 1); - $add_2(this.arrayList, index_0, o); -} -; -_.add_2 = function add_39(o){ - return $add_3(this.arrayList, o); -} -; -_.addAll_0 = function addAll_19(index_0, c){ - checkArrayElementIndex(index_0, this.arrayList.array.length + 1); - return $addAll_1(this.arrayList, index_0, c); -} -; -_.addAll = function addAll_20(c){ - return $addAll_2(this.arrayList, c); -} -; -_.clear_0 = function clear_47(){ - this.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_46(elem){ - return $indexOf_3(this.arrayList, elem, 0) != -1; -} -; -_.containsAll = function containsAll_9(c){ - return $containsAll(this.arrayList, c); -} -; -_.forEach_0 = function forEach_23(consumer){ - $forEach_1(this.arrayList, consumer); -} -; -_.get_0 = function get_43(index_0){ - return checkArrayElementIndex(index_0, this.arrayList.array.length) , $get_11(this.arrayList, index_0); -} -; -_.indexOf_0 = function indexOf_6(elem){ - return $indexOf_3(this.arrayList, elem, 0); -} -; -_.isEmpty = function isEmpty_24(){ - return this.arrayList.array.length == 0; -} -; -_.iterator_0 = function iterator_64(){ - return new ArrayList$1(this.arrayList); -} -; -_.remove_2 = function remove_86(index_0){ - return checkArrayElementIndex(index_0, this.arrayList.array.length) , $remove_11(this.arrayList, index_0); -} -; -_.removeRange = function removeRange_2(fromIndex, endIndex){ - $removeRange(this.arrayList, fromIndex, endIndex); -} -; -_.set_2 = function set_19(index_0, elem){ - return checkArrayElementIndex(index_0, this.arrayList.array.length) , $set_1(this.arrayList, index_0, elem); -} -; -_.size_1 = function size_61(){ - return this.arrayList.array.length; -} -; -_.sort_0 = function sort_8(c){ - $sort(this.arrayList, c); -} -; -_.subList = function subList_8(fromIndex, toIndex){ - return new AbstractList$SubList(this.arrayList, fromIndex, toIndex); -} -; -_.toArray = function toArray_21(){ - return $toArray_1(this.arrayList); -} -; -_.toArray_0 = function toArray_22(a){ - return $toArray_2(this.arrayList, a); -} -; -_.toString_0 = function toString_72(){ - return $toString_2(this.arrayList); -} -; -var Ljava_util_Vector_2_classLit = createForClass('java.util', 'Vector', 580); -function $pop(this$static){ - var sz; - sz = this$static.arrayList.array.length; - if (sz > 0) { - return checkArrayElementIndex(sz - 1, this$static.arrayList.array.length) , $remove_11(this$static.arrayList, sz - 1); - } - else { - throw toJs(new EmptyStackException); - } -} - -function $push(this$static, o){ - $add_3(this$static.arrayList, o); - return o; -} - -function Stack(){ - Vector.call(this); -} - -defineClass(809, 580, $intern_84, Stack); -var Ljava_util_Stack_2_classLit = createForClass('java.util', 'Stack', 809); -function $add_9(this$static, newElement){ - !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); - $append_8(this$static.builder, newElement); - return this$static; -} - -function $merge_0(this$static, other){ - var otherLength; - if (other.builder) { - otherLength = other.builder.string.length; - !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); - $append_9(this$static.builder, other.builder, other.prefix.length, otherLength); - } - return this$static; -} - -function $toString_9(this$static){ - return !this$static.builder?this$static.emptyValue:this$static.suffix.length == 0?this$static.builder.string:this$static.builder.string + ('' + this$static.suffix); -} - -function StringJoiner(delimiter, prefix, suffix){ - this.delimiter = (checkCriticalNotNull(delimiter) , delimiter); - this.prefix = (checkCriticalNotNull(prefix) , prefix); - this.suffix = (checkCriticalNotNull(suffix) , suffix); - this.emptyValue = this.prefix + ('' + this.suffix); -} - -defineClass(206, 1, {206:1}, StringJoiner); -_.toString_0 = function toString_73(){ - return $toString_9(this); -} -; -var Ljava_util_StringJoiner_2_classLit = createForClass('java.util', 'StringJoiner', 206); -function $clear_8(this$static){ - this$static.root = null; - this$static.size_0 = 0; -} - -function $getEntry_1(this$static, key){ - var c, childNum, tree; - tree = this$static.root; - while (tree) { - c = this$static.cmp.compare_1(key, tree.key); - if (c == 0) { - return tree; - } - childNum = c < 0?0:1; - tree = tree.child[childNum]; - } - return null; -} - -function $getFirstEntry(this$static){ - var nextNode, node; - if (!this$static.root) { - return null; - } - node = this$static.root; - while (nextNode = node.child[0]) { - node = nextNode; - } - return node; -} - -function $getNodeAfter(this$static, key, inclusive){ - var c, foundNode, node; - foundNode = null; - node = this$static.root; - while (node) { - c = this$static.cmp.compare_1(key, node.key); - if (inclusive && c == 0) { - return node; - } - if (c >= 0) { - node = node.child[1]; - } - else { - foundNode = node; - node = node.child[0]; - } - } - return foundNode; -} - -function $getNodeBefore(this$static, key, inclusive){ - var c, foundNode, node; - foundNode = null; - node = this$static.root; - while (node) { - c = this$static.cmp.compare_1(key, node.key); - if (inclusive && c == 0) { - return node; - } - if (c <= 0) { - node = node.child[0]; - } - else { - foundNode = node; - node = node.child[1]; - } - } - return foundNode; -} - -function $inOrderAdd(this$static, list, type_0, current, fromKey, fromInclusive, toKey, toInclusive){ - var leftNode, rightNode; - if (!current) { - return; - } - leftNode = current.child[0]; - !!leftNode && $inOrderAdd(this$static, list, type_0, leftNode, fromKey, fromInclusive, toKey, toInclusive); - $inRange(this$static, type_0, current.key, fromKey, fromInclusive, toKey, toInclusive) && list.add_2(current); - rightNode = current.child[1]; - !!rightNode && $inOrderAdd(this$static, list, type_0, rightNode, fromKey, fromInclusive, toKey, toInclusive); -} - -function $inRange(this$static, type_0, key, fromKey, fromInclusive, toKey, toInclusive){ - var compare, compare0; - if (type_0.fromKeyValid() && (compare0 = this$static.cmp.compare_1(key, fromKey) , compare0 < 0 || !fromInclusive && compare0 == 0)) { - return false; - } - if (type_0.toKeyValid() && (compare = this$static.cmp.compare_1(key, toKey) , compare > 0 || !toInclusive && compare == 0)) { - return false; - } - return true; -} - -function $insert_1(this$static, tree, newNode, state){ - var c, childNum; - if (!tree) { - return newNode; - } - else { - c = this$static.cmp.compare_1(newNode.key, tree.key); - if (c == 0) { - state.value_0 = $setValue_0(tree, newNode.value_0); - state.found = true; - return tree; - } - childNum = c < 0?0:1; - tree.child[childNum] = $insert_1(this$static, tree.child[childNum], newNode, state); - if ($isRed(tree.child[childNum])) { - if ($isRed(tree.child[1 - childNum])) { - tree.isRed = true; - tree.child[0].isRed = false; - tree.child[1].isRed = false; - } - else { - $isRed(tree.child[childNum].child[childNum])?(tree = $rotateSingle(tree, 1 - childNum)):$isRed(tree.child[childNum].child[1 - childNum]) && (tree = $rotateDouble(tree, 1 - childNum)); - } - } - } - return tree; -} - -function $isRed(node){ - return !!node && node.isRed; -} - -function $put_12(this$static, key, value_0){ - var node, state; - node = new TreeMap$Node(key, value_0); - state = new TreeMap$State; - this$static.root = $insert_1(this$static, this$static.root, node, state); - state.found || ++this$static.size_0; - this$static.root.isRed = false; - return state.value_0; -} - -function $remove_26(this$static, k){ - var key, state; - key = k; - state = new TreeMap$State; - $removeWithState(this$static, key, state); - return state.value_0; -} - -function $removeEntry(this$static, entry){ - var state; - state = new TreeMap$State; - state.matchValue = true; - state.value_0 = entry.getValue(); - return $removeWithState(this$static, entry.getKey(), state); -} - -function $removeWithState(this$static, key, state){ - var c, dir_0, dir2, found, grandparent, head, last, newNode, node, parent_0, sibling; - if (!this$static.root) { - return false; - } - found = null; - parent_0 = null; - head = new TreeMap$Node(null, null); - dir_0 = 1; - head.child[1] = this$static.root; - node = head; - while (node.child[dir_0]) { - last = dir_0; - grandparent = parent_0; - parent_0 = node; - node = node.child[dir_0]; - c = this$static.cmp.compare_1(key, node.key); - dir_0 = c < 0?0:1; - c == 0 && (!state.matchValue || equals_57(node.value_0, state.value_0)) && (found = node); - if (!(!!node && node.isRed) && !$isRed(node.child[dir_0])) { - if ($isRed(node.child[1 - dir_0])) { - parent_0 = parent_0.child[last] = $rotateSingle(node, dir_0); - } - else if (!$isRed(node.child[1 - dir_0])) { - sibling = parent_0.child[1 - last]; - if (sibling) { - if (!$isRed(sibling.child[1 - last]) && !$isRed(sibling.child[last])) { - parent_0.isRed = false; - sibling.isRed = true; - node.isRed = true; - } - else { - dir2 = grandparent.child[1] == parent_0?1:0; - $isRed(sibling.child[last])?(grandparent.child[dir2] = $rotateDouble(parent_0, last)):$isRed(sibling.child[1 - last]) && (grandparent.child[dir2] = $rotateSingle(parent_0, last)); - node.isRed = grandparent.child[dir2].isRed = true; - grandparent.child[dir2].child[0].isRed = false; - grandparent.child[dir2].child[1].isRed = false; - } - } - } - } - } - if (found) { - state.found = true; - state.value_0 = found.value_0; - if (node != found) { - newNode = new TreeMap$Node(node.key, node.value_0); - $replaceNode(this$static, head, found, newNode); - parent_0 == found && (parent_0 = newNode); - } - parent_0.child[parent_0.child[1] == node?1:0] = node.child[!node.child[0]?1:0]; - --this$static.size_0; - } - this$static.root = head.child[1]; - !!this$static.root && (this$static.root.isRed = false); - return state.found; -} - -function $replaceNode(this$static, head, node, newNode){ - var direction, parent_0; - parent_0 = head; - direction = parent_0.key == null || this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; - while (parent_0.child[direction] != node) { - parent_0 = parent_0.child[direction]; - direction = this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; - } - parent_0.child[direction] = newNode; - newNode.isRed = node.isRed; - newNode.child[0] = node.child[0]; - newNode.child[1] = node.child[1]; - node.child[0] = null; - node.child[1] = null; -} - -function $rotateDouble(tree, rotateDirection){ - var otherChildDir; - otherChildDir = 1 - rotateDirection; - tree.child[otherChildDir] = $rotateSingle(tree.child[otherChildDir], otherChildDir); - return $rotateSingle(tree, rotateDirection); -} - -function $rotateSingle(tree, rotateDirection){ - var otherChildDir, save; - otherChildDir = 1 - rotateDirection; - save = tree.child[otherChildDir]; - tree.child[otherChildDir] = save.child[rotateDirection]; - save.child[rotateDirection] = tree; - tree.isRed = true; - save.isRed = false; - return save; -} - -function TreeMap(){ - TreeMap_0.call(this, null); -} - -function TreeMap_0(c){ - this.root = null; - this.cmp = ($clinit_Comparators() , !c?INTERNAL_NATURAL_ORDER:c); -} - -defineClass(544, 1992, {3:1, 83:1, 171:1, 161:1}, TreeMap, TreeMap_0); -_.clear_0 = function clear_48(){ - $clear_8(this); -} -; -_.entrySet_0 = function entrySet_8(){ - return new TreeMap$EntrySet(this); -} -; -_.put = function put_9(key, value_0){ - return $put_12(this, key, value_0); -} -; -_.remove_0 = function remove_87(k){ - return $remove_26(this, k); -} -; -_.size_1 = function size_62(){ - return this.size_0; -} -; -_.size_0 = 0; -var Ljava_util_TreeMap_2_classLit = createForClass('java.util', 'TreeMap', 544); -function $next_11(this$static){ - return this$static.last = castTo($next_5(this$static.iter), 42); -} - -function $remove_27(this$static){ - $remove_8(this$static.iter); - $removeEntry(this$static.this$01, this$static.last); - this$static.last = null; -} - -function TreeMap$EntryIterator(this$0){ - TreeMap$EntryIterator_0.call(this, this$0, ($clinit_TreeMap$SubMapType() , All)); -} - -function TreeMap$EntryIterator_0(this$0, type_0){ - var list; - this.this$01 = this$0; - list = new ArrayList; - $inOrderAdd(this$0, list, type_0, this$0.root, null, false, null, false); - this.iter = new AbstractList$ListIteratorImpl(list, 0); -} - -defineClass(390, 1, $intern_6, TreeMap$EntryIterator); -_.forEachRemaining = function forEachRemaining_46(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_36(){ - return $next_11(this); -} -; -_.hasNext_0 = function hasNext_35(){ - return $hasNext_2(this.iter); -} -; -_.remove = function remove_88(){ - $remove_27(this); -} -; -var Ljava_util_TreeMap$EntryIterator_2_classLit = createForClass('java.util', 'TreeMap/EntryIterator', 390); -function TreeMap$EntrySet(this$0){ - this.this$01 = this$0; - AbstractNavigableMap$EntrySet.call(this, this$0); -} - -defineClass(435, 739, $intern_10, TreeMap$EntrySet); -_.clear_0 = function clear_49(){ - $clear_8(this.this$01); -} -; -var Ljava_util_TreeMap$EntrySet_2_classLit = createForClass('java.util', 'TreeMap/EntrySet', 435); -function TreeMap$Node(key, value_0){ - AbstractMap$SimpleEntry.call(this, key, value_0); - this.child = initUnidimensionalArray(Ljava_util_TreeMap$Node_2_classLit, $intern_27, 436, 2, 0, 1); - this.isRed = true; -} - -defineClass(436, 383, {484:1, 383:1, 42:1, 436:1}, TreeMap$Node); -_.isRed = false; -var Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util', 'TreeMap/Node', 436); -function TreeMap$State(){ -} - -defineClass(621, 1, {}, TreeMap$State); -_.toString_0 = function toString_74(){ - return 'State: mv=' + this.matchValue + ' value=' + this.value_0 + ' done=' + this.done_0 + ' found=' + this.found; -} -; -_.done_0 = false; -_.found = false; -_.matchValue = false; -var Ljava_util_TreeMap$State_2_classLit = createForClass('java.util', 'TreeMap/State', 621); -function $clinit_TreeMap$SubMapType(){ - $clinit_TreeMap$SubMapType = emptyMethod; - All = new TreeMap$SubMapType('All', 0); - Head = new TreeMap$SubMapType$1; - Range_1 = new TreeMap$SubMapType$2; - Tail = new TreeMap$SubMapType$3; -} - -function TreeMap$SubMapType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_12(name_0){ - $clinit_TreeMap$SubMapType(); - return valueOf(($clinit_TreeMap$SubMapType$Map() , $MAP_0), name_0); -} - -function values_18(){ - $clinit_TreeMap$SubMapType(); - return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]); -} - -defineClass(297, 22, $intern_85, TreeMap$SubMapType); -_.fromKeyValid = function fromKeyValid(){ - return false; -} -; -_.toKeyValid = function toKeyValid(){ - return false; -} -; -var All, Head, Range_1, Tail; -var Ljava_util_TreeMap$SubMapType_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType', 297, Ljava_lang_Enum_2_classLit, values_18, valueOf_12); -function TreeMap$SubMapType$1(){ - TreeMap$SubMapType.call(this, 'Head', 1); -} - -defineClass(1112, 297, $intern_85, TreeMap$SubMapType$1); -_.toKeyValid = function toKeyValid_0(){ - return true; -} -; -var Ljava_util_TreeMap$SubMapType$1_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/1', 1112, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); -function TreeMap$SubMapType$2(){ - TreeMap$SubMapType.call(this, 'Range', 2); -} - -defineClass(1113, 297, $intern_85, TreeMap$SubMapType$2); -_.fromKeyValid = function fromKeyValid_0(){ - return true; -} -; -_.toKeyValid = function toKeyValid_1(){ - return true; -} -; -var Ljava_util_TreeMap$SubMapType$2_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/2', 1113, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); -function TreeMap$SubMapType$3(){ - TreeMap$SubMapType.call(this, 'Tail', 3); -} - -defineClass(1114, 297, $intern_85, TreeMap$SubMapType$3); -_.fromKeyValid = function fromKeyValid_1(){ - return true; -} -; -var Ljava_util_TreeMap$SubMapType$3_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/3', 1114, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); -function $clinit_TreeMap$SubMapType$Map(){ - $clinit_TreeMap$SubMapType$Map = emptyMethod; - $MAP_0 = createValueOfMap(($clinit_TreeMap$SubMapType() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]))); -} - -var $MAP_0; -function $add_10(this$static, o){ - return $put_12(this$static.map_0, o, ($clinit_Boolean() , FALSE_0)) == null; -} - -function $ceiling(this$static, e){ - return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, true)); -} - -function $floor(this$static, e){ - return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, true)); -} - -function $higher(this$static, e){ - return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, false)); -} - -function $lower(this$static, e){ - return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, false)); -} - -function $remove_28(this$static, o){ - return $remove_26(this$static.map_0, o) != null; -} - -function TreeSet(){ - this.map_0 = new TreeMap; -} - -function TreeSet_0(c){ - this.map_0 = new TreeMap_0(c); -} - -defineClass(208, $intern_9, {3:1, 20:1, 28:1, 14:1, 271:1, 21:1, 84:1, 208:1}, TreeSet, TreeSet_0); -_.spliterator_0 = function spliterator_34(){ - return new SortedSet$1(this); -} -; -_.add_2 = function add_40(o){ - return $add_10(this, o); -} -; -_.clear_0 = function clear_50(){ - $clear_8(this.map_0); -} -; -_.contains = function contains_47(o){ - return $containsKey_4(this.map_0, o); -} -; -_.iterator_0 = function iterator_65(){ - var entryIterator; - return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); -} -; -_.remove_1 = function remove_89(o){ - return $remove_28(this, o); -} -; -_.size_1 = function size_63(){ - return this.map_0.size_0; -} -; -var Ljava_util_TreeSet_2_classLit = createForClass('java.util', 'TreeSet', 208); -function lambda$0_2(comparator_0, t_1, u_2){ - return comparator_0.compare_1(t_1, u_2) <= 0?u_2:t_1; -} - -function lambda$1_3(comparator_0, t_1, u_2){ - return comparator_0.compare_1(t_1, u_2) <= 0?t_1:u_2; -} - -function BinaryOperator$lambda$0$Type(comparator_0){ - this.comparator_0 = comparator_0; -} - -defineClass(966, 1, {}, BinaryOperator$lambda$0$Type); -_.apply_3 = function apply_21(arg0, arg1){ - return lambda$0_2(this.comparator_0, arg0, arg1); -} -; -var Ljava_util_function_BinaryOperator$lambda$0$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$0$Type', 966); -function BinaryOperator$lambda$1$Type(comparator_0){ - this.comparator_0 = comparator_0; -} - -defineClass(967, 1, {}, BinaryOperator$lambda$1$Type); -_.apply_3 = function apply_22(arg0, arg1){ - return lambda$1_3(this.comparator_0, arg0, arg1); -} -; -var Ljava_util_function_BinaryOperator$lambda$1$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$1$Type', 967); -function Function$lambda$0$Type(){ -} - -defineClass(846, 1, {}, Function$lambda$0$Type); -_.apply_0 = function apply_23(t){ - return t; -} -; -var Ljava_util_function_Function$lambda$0$Type_2_classLit = createForClass('java.util.function', 'Function/lambda$0$Type', 846); -function Predicate$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(431, 1, $intern_39, Predicate$lambda$2$Type); -_.test_0 = function test_4(t){ - return !this.$$outer_0.test_0(t); -} -; -var Ljava_util_function_Predicate$lambda$2$Type_2_classLit = createForClass('java.util.function', 'Predicate/lambda$2$Type', 431); -defineClass(572, 1, {572:1}); -var Ljava_util_logging_Handler_2_classLit = createForClass('java.util.logging', 'Handler', 572); -function $clinit_Level(){ - $clinit_Level = emptyMethod; - INFO = new Level$LevelInfo; -} - -defineClass(2007, 1, $intern_1); -_.getName = function getName_0(){ - return 'DUMMY'; -} -; -_.toString_0 = function toString_75(){ - return this.getName(); -} -; -var INFO; -var Ljava_util_logging_Level_2_classLit = createForClass('java.util.logging', 'Level', 2007); -function Level$LevelInfo(){ -} - -defineClass(1621, 2007, $intern_1, Level$LevelInfo); -_.getName = function getName_1(){ - return 'INFO'; -} -; -var Ljava_util_logging_Level$LevelInfo_2_classLit = createForClass('java.util.logging', 'Level/LevelInfo', 1621); -function $addLoggerImpl(this$static, logger){ - (($clinit_Logger() , LOGGING_OFF)?null:logger.name_0).length == 0 && $addHandler(logger, new SimpleConsoleLogHandler); - $putStringValue(this$static.loggerMap, LOGGING_OFF?null:logger.name_0, logger); -} - -function $ensureLogger(this$static, name_0){ - var logger, newLogger, name_1, parentName; - logger = castTo($getStringValue(this$static.loggerMap, name_0), 512); - if (!logger) { - newLogger = new Logger(name_0); - name_1 = ($clinit_Logger() , LOGGING_OFF)?null:newLogger.name_0; - parentName = $substring_1(name_1, 0, $wnd.Math.max(0, $lastIndexOf(name_1, fromCodePoint(46)))); - $setParent(newLogger, $ensureLogger(this$static, parentName)); - (LOGGING_OFF?null:newLogger.name_0).length == 0 && $addHandler(newLogger, new SimpleConsoleLogHandler); - $putStringValue(this$static.loggerMap, LOGGING_OFF?null:newLogger.name_0, newLogger); - return newLogger; - } - return logger; -} - -function LogManager(){ - this.loggerMap = new HashMap; -} - -function getLogManager(){ - var rootLogger; - if (!singleton) { - singleton = new LogManager; - rootLogger = new Logger(''); - $setLevel(rootLogger, ($clinit_Level() , INFO)); - $addLoggerImpl(singleton, rootLogger); - } - return singleton; -} - -defineClass(1640, 1, {}, LogManager); -var singleton; -var Ljava_util_logging_LogManager_2_classLit = createForClass('java.util.logging', 'LogManager', 1640); -function LogRecord(msg){ - this.msg = msg; - $clinit_System(); - fromDouble_0(Date.now()); -} - -defineClass(1780, 1, $intern_1, LogRecord); -_.thrown = null; -var Ljava_util_logging_LogRecord_2_classLit = createForClass('java.util.logging', 'LogRecord', 1780); -function $clinit_Logger(){ - $clinit_Logger = emptyMethod; - LOGGING_OFF = true; - ALL_ENABLED = false; - INFO_ENABLED = false; - WARNING_ENABLED = false; - SEVERE_ENABLED = false; -} - -function $actuallyLog(this$static, record){ - var handler$array, handler$array0, handler$index, handler$index0, handler$max, handler$max0, logger; - for (handler$array0 = $getHandlers(this$static) , handler$index0 = 0 , handler$max0 = handler$array0.length; handler$index0 < handler$max0; ++handler$index0) { - $publish(record); - } - logger = !LOGGING_OFF && this$static.useParentHandlers?LOGGING_OFF?null:this$static.parent_0:null; - while (logger) { - for (handler$array = $getHandlers(logger) , handler$index = 0 , handler$max = handler$array.length; handler$index < handler$max; ++handler$index) { - $publish(record); - } - logger = !LOGGING_OFF && logger.useParentHandlers?LOGGING_OFF?null:logger.parent_0:null; - } -} - -function $addHandler(this$static, handler){ - if (LOGGING_OFF) { - return; - } - $add_3(this$static.handlers, handler); -} - -function $getEffectiveLevel(this$static){ - var effectiveLevel, logger; - if (this$static.level) { - return this$static.level; - } - logger = LOGGING_OFF?null:this$static.parent_0; - while (logger) { - effectiveLevel = LOGGING_OFF?null:logger.level; - if (effectiveLevel) { - return effectiveLevel; - } - logger = LOGGING_OFF?null:logger.parent_0; - } - return $clinit_Level() , INFO; -} - -function $getHandlers(this$static){ - if (LOGGING_OFF) { - return initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, 0, 0, 1); - } - return castTo($toArray_2(this$static.handlers, initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, this$static.handlers.array.length, 0, 1)), 842); -} - -function $log(this$static, msg, thrown){ - var record; - (ALL_ENABLED?($getEffectiveLevel(this$static) , true):INFO_ENABLED?($clinit_Level() , true):WARNING_ENABLED?($clinit_Level() , true):SEVERE_ENABLED && ($clinit_Level() , false)) && (record = new LogRecord(msg) , record.thrown = thrown , $actuallyLog(this$static, record) , undefined); -} - -function $setLevel(this$static, newLevel){ - if (LOGGING_OFF) { - return; - } - this$static.level = newLevel; -} - -function $setParent(this$static, newParent){ - if (LOGGING_OFF) { - return; - } - !!newParent && (this$static.parent_0 = newParent); -} - -function Logger(name_0){ - $clinit_Logger(); - if (LOGGING_OFF) { - return; - } - this.name_0 = name_0; - this.useParentHandlers = true; - this.handlers = new ArrayList; -} - -function getLogger(){ - $clinit_Logger(); - if (LOGGING_OFF) { - return new Logger(null); - } - return $ensureLogger(getLogManager(), 'com.google.common.base.Strings'); -} - -defineClass(512, 1, {512:1}, Logger); -_.useParentHandlers = false; -var ALL_ENABLED = false, INFO_ENABLED = false, LOGGING_OFF = false, SEVERE_ENABLED = false, WARNING_ENABLED = false; -var Ljava_util_logging_Logger_2_classLit = createForClass('java.util.logging', 'Logger', 512); -function $publish(record){ - var console_0, level, val; - console_0 = $equals_5(typeof(console_0), 'undefined')?null:new ConsoleLogger; - if (!console_0) { - return; - } - $clinit_Level(); - level = (val = 900 , val >= $intern_45?'error':val >= 900?'warn':val >= 800?'info':'log'); - $log_0(level, record.msg); - !!record.thrown && $log_1(console_0, level, record.thrown, 'Exception: ', true); -} - -function SimpleConsoleLogHandler(){ -} - -defineClass(819, 572, {572:1}, SimpleConsoleLogHandler); -var Ljava_util_logging_SimpleConsoleLogHandler_2_classLit = createForClass('java.util.logging', 'SimpleConsoleLogHandler', 819); -function of_3(supplier, accumulator, combiner, finisher, characteristics){ - checkCriticalNotNull(supplier); - checkCriticalNotNull(accumulator); - checkCriticalNotNull(combiner); - checkCriticalNotNull(finisher); - checkCriticalNotNull(characteristics); - return new CollectorImpl(supplier, accumulator, finisher); -} - -function of_4(supplier, accumulator, combiner, characteristics){ - checkCriticalNotNull(supplier); - checkCriticalNotNull(accumulator); - checkCriticalNotNull(combiner); - checkCriticalNotNull(characteristics); - return new CollectorImpl(supplier, accumulator, new Function$lambda$0$Type); -} - -function $clinit_Collector$Characteristics(){ - $clinit_Collector$Characteristics = emptyMethod; - CONCURRENT = new Collector$Characteristics('CONCURRENT', 0); - IDENTITY_FINISH = new Collector$Characteristics('IDENTITY_FINISH', 1); - UNORDERED = new Collector$Characteristics('UNORDERED', 2); -} - -function Collector$Characteristics(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_13(name_0){ - $clinit_Collector$Characteristics(); - return valueOf(($clinit_Collector$Characteristics$Map() , $MAP_1), name_0); -} - -function values_19(){ - $clinit_Collector$Characteristics(); - return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]); -} - -defineClass(132, 22, {3:1, 35:1, 22:1, 132:1}, Collector$Characteristics); -var CONCURRENT, IDENTITY_FINISH, UNORDERED; -var Ljava_util_stream_Collector$Characteristics_2_classLit = createForEnum('java.util.stream', 'Collector/Characteristics', 132, Ljava_lang_Enum_2_classLit, values_19, valueOf_13); -function $clinit_Collector$Characteristics$Map(){ - $clinit_Collector$Characteristics$Map = emptyMethod; - $MAP_1 = createValueOfMap(($clinit_Collector$Characteristics() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]))); -} - -var $MAP_1; -function CollectorImpl(supplier, accumulator, finisher){ - this.supplier = supplier; - this.accumulator = accumulator; - $clinit_Collections(); - this.finisher = finisher; -} - -defineClass(744, 1, {}, CollectorImpl); -var Ljava_util_stream_CollectorImpl_2_classLit = createForClass('java.util.stream', 'CollectorImpl', 744); -function addAll_21(collection, items){ - collection.addAll(items); - return collection; -} - -function groupingBy0(supplier, classifier, downstream){ - return of_3(supplier, new Collectors$lambda$7$Type(classifier), new Collectors$lambda$8$Type, new Collectors$lambda$9$Type(downstream), stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); -} - -function lambda$26(op_0, u_2){ - return setCheck(u_2, 0, $apply_2(u_2[0], valueOf_5(1))); -} - -function lambda$27(op_0, u1_1, u2_2){ - setCheck(u1_1, 0, $apply_2(u1_1[0], u2_2[0])); - return u1_1; -} - -function lambda$4(a_0, b_1){ - return valueOf_5(add_20(valueOf_5(a_0.value_0).value_0, b_1.value_0)); -} - -function lambda$42(c1_0, c2_1){ - return c1_0.addAll(c2_1) , c1_0; -} - -function lambda$50(c1_0, c2_1){ - return $addAll(c1_0, c2_1) , c1_0; -} - -function lambda$7(classifier_0, m_1, o_2){ - var k, l; - k = ($clinit_Boolean() , $test(o_2)?true:false); - l = castTo(m_1.get_3(k), 15); - if (!l) { - l = new ArrayList; - m_1.put(k, l); - } - l.add_2(o_2); -} - -function lambda$9(downstream_1, m_2){ - var entry, entry$iterator, result; - result = new HashMap; - for (entry$iterator = m_2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - $put_6(result, entry.getKey(), streamAndCollect(downstream_1, castTo(entry.getValue(), 15))); - } - return result; -} - -function mergeAll(m1, m2, mergeFunction){ - var entry, entry$iterator; - for (entry$iterator = m2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - m1.merge(entry.getKey(), entry.getValue(), mergeFunction); - } - return m1; -} - -function partitioningBy(predicate, downstream){ - return groupingBy0(new Collectors$lambda$22$Type, new Collectors$12methodref$test$Type(predicate), downstream); -} - -function reducing(identity, op){ - return of_3(new Collectors$lambda$25$Type(identity), new Collectors$lambda$26$Type(op), new Collectors$lambda$27$Type(op), new Collectors$lambda$28$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); -} - -function streamAndCollect(downstream, list){ - var a, t, t$iterator; - a = downstream.supplier.get_5(); - for (t$iterator = list.iterator_0(); t$iterator.hasNext_0();) { - t = t$iterator.next_1(); - downstream.accumulator.accept_1(a, t); - } - return downstream.finisher.apply_0(a); -} - -function Collectors$10methodref$merge$Type(){ -} - -defineClass(1060, 1, {}, Collectors$10methodref$merge$Type); -_.apply_3 = function apply_24(arg0, arg1){ - return $merge_0(castTo(arg0, 206), castTo(arg1, 206)); -} -; -var Ljava_util_stream_Collectors$10methodref$merge$Type_2_classLit = createForClass('java.util.stream', 'Collectors/10methodref$merge$Type', 1060); -function Collectors$11methodref$toString$Type(){ -} - -defineClass(1061, 1, {}, Collectors$11methodref$toString$Type); -_.apply_0 = function apply_25(arg0){ - return $toString_9(castTo(arg0, 206)); -} -; -var Ljava_util_stream_Collectors$11methodref$toString$Type_2_classLit = createForClass('java.util.stream', 'Collectors/11methodref$toString$Type', 1061); -function Collectors$12methodref$test$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1062, 1, {}, Collectors$12methodref$test$Type); -_.apply_0 = function apply_26(arg0){ - return $clinit_Boolean() , $test(arg0)?true:false; -} -; -var Ljava_util_stream_Collectors$12methodref$test$Type_2_classLit = createForClass('java.util.stream', 'Collectors/12methodref$test$Type', 1062); -function Collectors$20methodref$add$Type(){ -} - -defineClass(251, 1, {}, Collectors$20methodref$add$Type); -_.accept_1 = function accept_21(arg0, arg1){ - castTo(arg0, 14).add_2(arg1); -} -; -var Ljava_util_stream_Collectors$20methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/20methodref$add$Type', 251); -function Collectors$21methodref$ctor$Type(){ -} - -defineClass(253, 1, {}, Collectors$21methodref$ctor$Type); -_.get_5 = function get_44(){ - return new ArrayList; -} -; -var Ljava_util_stream_Collectors$21methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/21methodref$ctor$Type', 253); -function Collectors$23methodref$ctor$Type(){ -} - -defineClass(346, 1, {}, Collectors$23methodref$ctor$Type); -_.get_5 = function get_45(){ - return new HashSet; -} -; -var Ljava_util_stream_Collectors$23methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/23methodref$ctor$Type', 346); -function Collectors$24methodref$add$Type(){ -} - -defineClass(347, 1, {}, Collectors$24methodref$add$Type); -_.accept_1 = function accept_22(arg0, arg1){ - $add_6(castTo(arg0, 53), arg1); -} -; -var Ljava_util_stream_Collectors$24methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/24methodref$add$Type', 347); -function Collectors$4methodref$addAll$Type(){ -} - -defineClass(1055, 1, {}, Collectors$4methodref$addAll$Type); -_.apply_3 = function apply_27(arg0, arg1){ - return addAll_21(castTo(arg0, 15), castTo(arg1, 14)); -} -; -var Ljava_util_stream_Collectors$4methodref$addAll$Type_2_classLit = createForClass('java.util.stream', 'Collectors/4methodref$addAll$Type', 1055); -function Collectors$9methodref$add$Type(){ -} - -defineClass(1059, 1, {}, Collectors$9methodref$add$Type); -_.accept_1 = function accept_23(arg0, arg1){ - $add_9(castTo(arg0, 206), castTo(arg1, 475)); -} -; -var Ljava_util_stream_Collectors$9methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/9methodref$add$Type', 1059); -function Collectors$lambda$15$Type(){ - this.delimiter_0 = ';,;'; - this.prefix_1 = ''; - this.suffix_2 = ''; -} - -defineClass(1058, 1, {}, Collectors$lambda$15$Type); -_.get_5 = function get_46(){ - return new StringJoiner(this.delimiter_0, this.prefix_1, this.suffix_2); -} -; -var Ljava_util_stream_Collectors$lambda$15$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$15$Type', 1058); -function Collectors$lambda$22$Type(){ -} - -defineClass(1063, 1, {}, Collectors$lambda$22$Type); -_.get_5 = function get_47(){ - var partition; - return partition = new LinkedHashMap , $put_11(partition, ($clinit_Boolean() , false), new ArrayList) , $put_11(partition, true, new ArrayList) , partition; -} -; -var Ljava_util_stream_Collectors$lambda$22$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$22$Type', 1063); -function Collectors$lambda$25$Type(identity_0){ - this.identity_0 = identity_0; -} - -defineClass(1064, 1, {}, Collectors$lambda$25$Type); -_.get_5 = function get_48(){ - return stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.identity_0]); -} -; -var Ljava_util_stream_Collectors$lambda$25$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$25$Type', 1064); -function Collectors$lambda$26$Type(op_0){ - this.op_0 = op_0; -} - -defineClass(1065, 1, {}, Collectors$lambda$26$Type); -_.accept_1 = function accept_24(arg0, arg1){ - lambda$26(this.op_0, castToArray(arg0)); -} -; -var Ljava_util_stream_Collectors$lambda$26$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$26$Type', 1065); -function Collectors$lambda$27$Type(op_0){ - this.op_0 = op_0; -} - -defineClass(1066, 1, {}, Collectors$lambda$27$Type); -_.apply_3 = function apply_28(arg0, arg1){ - return lambda$27(this.op_0, castToArray(arg0), castToArray(arg1)); -} -; -var Ljava_util_stream_Collectors$lambda$27$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$27$Type', 1066); -function Collectors$lambda$28$Type(){ -} - -defineClass(1067, 1, {}, Collectors$lambda$28$Type); -_.apply_0 = function apply_29(arg0){ - return castToArray(arg0)[0]; -} -; -var Ljava_util_stream_Collectors$lambda$28$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$28$Type', 1067); -function $apply_2(arg0, arg1){ - return lambda$4(castTo(arg0, 162), castTo(arg1, 162)); -} - -function Collectors$lambda$4$Type(){ -} - -defineClass(713, 1, {}, Collectors$lambda$4$Type); -_.apply_3 = function apply_30(arg0, arg1){ - return $apply_2(arg0, arg1); -} -; -var Ljava_util_stream_Collectors$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$4$Type', 713); -function Collectors$lambda$42$Type(){ -} - -defineClass(252, 1, {}, Collectors$lambda$42$Type); -_.apply_3 = function apply_31(arg0, arg1){ - return lambda$42(castTo(arg0, 14), castTo(arg1, 14)); -} -; -var Ljava_util_stream_Collectors$lambda$42$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$42$Type', 252); -function Collectors$lambda$50$Type(){ -} - -defineClass(348, 1, {}, Collectors$lambda$50$Type); -_.apply_3 = function apply_32(arg0, arg1){ - return lambda$50(castTo(arg0, 53), castTo(arg1, 53)); -} -; -var Ljava_util_stream_Collectors$lambda$50$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$50$Type', 348); -function Collectors$lambda$51$Type(){ -} - -defineClass(349, 1, {}, Collectors$lambda$51$Type); -_.apply_0 = function apply_33(arg0){ - return castTo(arg0, 53); -} -; -var Ljava_util_stream_Collectors$lambda$51$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$51$Type', 349); -function Collectors$lambda$7$Type(classifier_0){ - this.classifier_0 = classifier_0; -} - -defineClass(1054, 1, {}, Collectors$lambda$7$Type); -_.accept_1 = function accept_25(arg0, arg1){ - lambda$7(this.classifier_0, castTo(arg0, 83), arg1); -} -; -var Ljava_util_stream_Collectors$lambda$7$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$7$Type', 1054); -function Collectors$lambda$8$Type(){ -} - -defineClass(1056, 1, {}, Collectors$lambda$8$Type); -_.apply_3 = function apply_34(arg0, arg1){ - return mergeAll(castTo(arg0, 83), castTo(arg1, 83), new Collectors$4methodref$addAll$Type); -} -; -var Ljava_util_stream_Collectors$lambda$8$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$8$Type', 1056); -function Collectors$lambda$9$Type(downstream_1){ - this.downstream_1 = downstream_1; -} - -defineClass(1057, 1, {}, Collectors$lambda$9$Type); -_.apply_0 = function apply_35(arg0){ - return lambda$9(this.downstream_1, castTo(arg0, 83)); -} -; -var Ljava_util_stream_Collectors$lambda$9$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$9$Type', 1057); -function $close(this$static){ - if (!this$static.root) { - this$static.terminated = true; - $runClosers(this$static); - } - else { - this$static.root.close_0(); - } -} - -function $onClose(this$static, closeHandler){ - !this$static.root?$add_3(this$static.onClose, closeHandler):$onClose(this$static.root, closeHandler); - return this$static; -} - -function $runClosers(this$static){ - var e, i, size_0, suppressed, throwables; - throwables = new ArrayList; - $forEach_1(this$static.onClose, new TerminatableStream$lambda$0$Type(throwables)); - this$static.onClose.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - if (throwables.array.length != 0) { - e = (checkCriticalElementIndex(0, throwables.array.length) , castTo(throwables.array[0], 78)); - for (i = 1 , size_0 = throwables.array.length; i < size_0; ++i) { - suppressed = (checkCriticalElementIndex(i, throwables.array.length) , castTo(throwables.array[i], 78)); - suppressed != e && $addSuppressed(e, suppressed); - } - if (instanceOf(e, 60)) { - throw toJs(castTo(e, 60)); - } - if (instanceOf(e, 289)) { - throw toJs(castTo(e, 289)); - } - } -} - -function $terminate(this$static){ - if (!this$static.root) { - $throwIfTerminated(this$static); - this$static.terminated = true; - } - else { - $terminate(this$static.root); - } -} - -function $throwIfTerminated(this$static){ - if (this$static.root) { - $throwIfTerminated(this$static.root); - } - else if (this$static.terminated) { - throw toJs(new IllegalStateException_0("Stream already terminated, can't be modified or used")); - } -} - -function TerminatableStream(previous){ - if (!previous) { - this.root = null; - this.onClose = new ArrayList; - } - else { - this.root = previous; - this.onClose = null; - } -} - -function lambda$0_3(throwables_0, runnable_1){ - var e; - try { - runnable_1.run(); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 78)) { - e = $e0; - throwables_0.array[throwables_0.array.length] = e; - } - else - throw toJs($e0); - } -} - -defineClass(539, 1, {}); -_.close_0 = function close_0(){ - $close(this); -} -; -_.terminated = false; -var Ljava_util_stream_TerminatableStream_2_classLit = createForClass('java.util.stream', 'TerminatableStream', 539); -function $collect(this$static){ - var acc; - $terminate(this$static); - acc = new DoubleSummaryStatistics; - $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$2$Type(acc)); - return acc; -} - -function $max(this$static){ - var stats; - stats = $collect(this$static); - if (eq(stats.count, 0)) { - return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; - } - return $clinit_OptionalDouble() , new OptionalDouble_0(stats.max_0); -} - -function $min(this$static){ - var stats; - stats = $collect(this$static); - if (eq(stats.count, 0)) { - return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; - } - return $clinit_OptionalDouble() , new OptionalDouble_0(stats.min_0); -} - -function $sorted(this$static){ - var sortingSpliterator; - $throwIfTerminated(this$static); - sortingSpliterator = new DoubleStreamImpl$2(this$static, this$static.spliterator.sizeEstimate, this$static.spliterator.characteristics | 4); - return new DoubleStreamImpl(this$static, sortingSpliterator); -} - -function $toArray_6(this$static){ - var entries; - $terminate(this$static); - entries = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); - $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$0$Type(entries)); - return entries; -} - -function DoubleStreamImpl(previous, spliterator){ - TerminatableStream.call(this, previous); - this.spliterator = spliterator; -} - -function lambda$0_4(entries_0, value_1){ - return entries_0[entries_0.length] = value_1; -} - -defineClass(812, 539, $intern_87, DoubleStreamImpl); -_.close_0 = function close_1(){ - $close(this); -} -; -var Ljava_util_stream_DoubleStreamImpl_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl', 812); -function $tryAdvance_2(this$static, action){ - var list; - if (!this$static.ordered) { - list = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); - $forEachRemaining_1(this$static.this$01.spliterator, new DoubleStreamImpl$2$lambda$0$Type(list)); - list.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); - this$static.ordered = new Spliterators$DoubleArraySpliterator(list, this$static.characteristics); - } - return $tryAdvance_0(this$static.ordered, action); -} - -function DoubleStreamImpl$2(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - Spliterators$AbstractDoubleSpliterator.call(this, $anonymous0, $anonymous1); -} - -function lambda$0_5(list_0, item_1){ - return list_0[list_0.length] = item_1; -} - -defineClass(1784, 721, $intern_18, DoubleStreamImpl$2); -_.tryAdvance_0 = function tryAdvance_10(action){ - return $tryAdvance_2(this, castTo(action, 182)); -} -; -_.ordered = null; -var Ljava_util_stream_DoubleStreamImpl$2_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2', 1784); -function DoubleStreamImpl$2$lambda$0$Type(list_0){ - this.list_0 = list_0; -} - -defineClass(1785, 1, $intern_75, DoubleStreamImpl$2$lambda$0$Type); -_.accept_2 = function accept_26(arg0){ - lambda$0_5(this.list_0, arg0); -} -; -var Ljava_util_stream_DoubleStreamImpl$2$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2/lambda$0$Type', 1785); -function DoubleStreamImpl$lambda$0$Type(entries_0){ - this.entries_0 = entries_0; -} - -defineClass(1782, 1, $intern_75, DoubleStreamImpl$lambda$0$Type); -_.accept_2 = function accept_27(arg0){ - lambda$0_4(this.entries_0, arg0); -} -; -var Ljava_util_stream_DoubleStreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$0$Type', 1782); -function DoubleStreamImpl$lambda$2$Type(acc_1){ - this.acc_1 = acc_1; -} - -defineClass(1783, 1, $intern_75, DoubleStreamImpl$lambda$2$Type); -_.accept_2 = function accept_28(arg0){ - $accept(this.acc_1, arg0); -} -; -var Ljava_util_stream_DoubleStreamImpl$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$2$Type', 1783); -function range_0(endExclusive){ - if (0 >= endExclusive) { - return new IntStreamImpl$Empty; - } - return rangeClosed(endExclusive - 1); -} - -function rangeClosed(endInclusive){ - var count, spliterator; - if (0 > endInclusive) { - return new IntStreamImpl$Empty; - } - count = endInclusive + 1; - spliterator = new IntStream$5(count, endInclusive); - return new IntStreamImpl(null, spliterator); -} - -function $tryAdvance_3(this$static, action){ - if (this$static.next_0 <= this$static.val$endInclusive5) { - action.accept_0(this$static.next_0++); - return true; - } - return false; -} - -function IntStream$5($anonymous0, val$endInclusive){ - this.val$startInclusive4 = 0; - this.val$endInclusive5 = val$endInclusive; - Spliterators$AbstractIntSpliterator.call(this, $anonymous0, 17493); - this.next_0 = this.val$startInclusive4; -} - -defineClass(1358, 720, $intern_18, IntStream$5); -_.tryAdvance_0 = function tryAdvance_11(action){ - return $tryAdvance_3(this, castTo(action, 196)); -} -; -_.next_0 = 0; -_.val$endInclusive5 = 0; -_.val$startInclusive4 = 0; -var Ljava_util_stream_IntStream$5_2_classLit = createForClass('java.util.stream', 'IntStream/5', 1358); -function $collect_0(this$static){ - var acc; - $terminate(this$static); - acc = new IntSummaryStatistics; - $forEachRemaining_1(this$static.spliterator, new IntStreamImpl$lambda$4$Type(acc)); - return acc; -} - -function $max_0(this$static){ - var stats; - stats = $collect_0(this$static); - if (eq(stats.count, 0)) { - return $clinit_OptionalInt() , $clinit_OptionalInt() , EMPTY_5; - } - return $clinit_OptionalInt() , new OptionalInt_0(stats.max_0); -} - -function IntStreamImpl(previous, spliterator){ - TerminatableStream.call(this, previous); - this.spliterator = spliterator; -} - -defineClass(787, 539, $intern_87, IntStreamImpl); -_.close_0 = function close_2(){ - $close(this); -} -; -_.spliterator_1 = function spliterator_35(){ - return $terminate(this) , this.spliterator; -} -; -var Ljava_util_stream_IntStreamImpl_2_classLit = createForClass('java.util.stream', 'IntStreamImpl', 787); -function IntStreamImpl$Empty(){ - TerminatableStream.call(this, null); -} - -defineClass(788, 539, $intern_87, IntStreamImpl$Empty); -_.close_0 = function close_3(){ - $close(this); -} -; -_.spliterator_1 = function spliterator_36(){ - return $terminate(this) , $clinit_Spliterators$EmptySpliterator() , OF_INT; -} -; -var Ljava_util_stream_IntStreamImpl$Empty_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/Empty', 788); -function IntStreamImpl$lambda$4$Type(acc_1){ - this.acc_1 = acc_1; -} - -defineClass(1463, 1, $intern_21, IntStreamImpl$lambda$4$Type); -_.accept_0 = function accept_29(arg0){ - $accept_0(this.acc_1, arg0); -} -; -var Ljava_util_stream_IntStreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/lambda$4$Type', 1463); -var Ljava_util_stream_Stream_2_classLit = createForInterface('java.util.stream', 'Stream'); -function $clinit_StreamImpl(){ - $clinit_StreamImpl = emptyMethod; - NULL_CONSUMER = new StreamImpl$lambda$0$Type; -} - -function $anyMatch(this$static, predicate){ - return ($throwIfTerminated(this$static) , $spliterator(new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)))).tryAdvance(NULL_CONSUMER); -} - -function $collect_1(this$static, collector){ - var lastArg; - return collector.finisher.apply_0($reduce(this$static, collector.supplier.get_5(), (lastArg = new StreamImpl$lambda$4$Type(collector) , lastArg))); -} - -function $count_0(this$static){ - var count; - $terminate(this$static); - count = 0; - while (this$static.spliterator.tryAdvance(new StreamImpl$lambda$1$Type)) { - count = add_20(count, 1); - } - return count; -} - -function $distinct(this$static){ - var seen; - $throwIfTerminated(this$static); - seen = new HashSet; - return $filter(this$static, new StreamImpl$1methodref$add$Type(seen)); -} - -function $filter(this$static, predicate){ - $throwIfTerminated(this$static); - return new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)); -} - -function $findFirst(this$static){ - var holder; - $terminate(this$static); - holder = new StreamImpl$ValueConsumer; - if (this$static.spliterator.tryAdvance(holder)) { - return $clinit_Optional() , new Optional(checkCriticalNotNull(holder.value_0)); - } - return $clinit_Optional() , $clinit_Optional() , EMPTY_3; -} - -function $flatMap(this$static, mapper){ - var flatMapSpliterator, spliteratorOfStreams; - $throwIfTerminated(this$static); - spliteratorOfStreams = new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator); - flatMapSpliterator = new StreamImpl$1(spliteratorOfStreams); - return new StreamImpl(this$static, flatMapSpliterator); -} - -function $forEach_3(this$static, action){ - $terminate(this$static); - this$static.spliterator.forEachRemaining(action); -} - -function $map_0(this$static, mapper){ - $throwIfTerminated(this$static); - return new StreamImpl(this$static, new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator)); -} - -function $mapToDouble(this$static, mapper){ - $throwIfTerminated(this$static); - return new DoubleStreamImpl(this$static, new StreamImpl$MapToDoubleSpliterator(mapper, this$static.spliterator)); -} - -function $mapToInt(this$static, mapper){ - $throwIfTerminated(this$static); - return new IntStreamImpl(this$static, new StreamImpl$MapToIntSpliterator(mapper, this$static.spliterator)); -} - -function $max_1(this$static, comparator){ - return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$0$Type(comparator))); -} - -function $min_0(this$static, comparator){ - return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$1$Type(comparator))); -} - -function $reduce(this$static, identity, accumulator){ - var consumer; - $terminate(this$static); - consumer = new StreamImpl$ValueConsumer; - consumer.value_0 = identity; - this$static.spliterator.forEachRemaining(new StreamImpl$lambda$5$Type(consumer, accumulator)); - return consumer.value_0; -} - -function $reduce_0(this$static, accumulator){ - var consumer; - consumer = new StreamImpl$ValueConsumer; - if (!this$static.spliterator.tryAdvance(consumer)) { - $terminate(this$static); - return $clinit_Optional() , $clinit_Optional() , EMPTY_3; - } - return $clinit_Optional() , new Optional(checkCriticalNotNull($reduce(this$static, consumer.value_0, accumulator))); -} - -function $sorted_0(this$static){ - var c; - $throwIfTerminated(this$static); - c = ($clinit_Comparators() , $clinit_Comparators() , NATURAL_ORDER); - return $sorted_1(this$static, c); -} - -function $sorted_1(this$static, comparator){ - var sortedSpliterator; - $throwIfTerminated(this$static); - sortedSpliterator = new StreamImpl$5(this$static, this$static.spliterator.estimateSize_0(), this$static.spliterator.characteristics_0() | 4, comparator); - return new StreamImpl(this$static, sortedSpliterator); -} - -function $spliterator(this$static){ - $terminate(this$static); - return this$static.spliterator; -} - -function $toArray_7(this$static, generator){ - var collected; - collected = castTo($collect_1(this$static, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - return collected.toArray_0($apply_3(collected.size_1())); -} - -function StreamImpl(prev, spliterator){ - $clinit_StreamImpl(); - TerminatableStream.call(this, prev); - this.spliterator = spliterator; -} - -function lambda$4_0(collector_0, a_1, t_2){ - $clinit_StreamImpl(); - collector_0.accumulator.accept_1(a_1, t_2); - return a_1; -} - -function lambda$5(consumer_0, accumulator_1, item_2){ - $clinit_StreamImpl(); - $accept_1(consumer_0, accumulator_1.apply_3(consumer_0.value_0, item_2)); -} - -defineClass(30, 539, {525:1, 670:1, 833:1}, StreamImpl); -_.close_0 = function close_4(){ - $close(this); -} -; -var NULL_CONSUMER; -var Ljava_util_stream_StreamImpl_2_classLit = createForClass('java.util.stream', 'StreamImpl', 30); -function $apply_3(arg0){ - return $clinit_StreamImpl() , initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, arg0, 5, 1); -} - -function StreamImpl$0methodref$lambda$2$Type(){ -} - -defineClass(845, 1, {}, StreamImpl$0methodref$lambda$2$Type); -_.apply_2 = function apply_36(arg0){ - return $apply_3(arg0); -} -; -var Ljava_util_stream_StreamImpl$0methodref$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/0methodref$lambda$2$Type', 845); -function $advanceToNextSpliterator(this$static){ - while (!this$static.next_0) { - if (!$tryAdvance_6(this$static.val$spliteratorOfStreams5, new StreamImpl$1$lambda$0$Type(this$static))) { - return false; - } - } - return true; -} - -function $lambda$0_0(this$static, n_0){ - if (n_0) { - this$static.nextStream = n_0; - this$static.next_0 = ($terminate(n_0) , n_0.spliterator); - } -} - -function StreamImpl$1(val$spliteratorOfStreams){ - this.val$spliteratorOfStreams5 = val$spliteratorOfStreams; - Spliterators$AbstractSpliterator.call(this, $intern_20, 0); -} - -defineClass(1084, 540, $intern_18, StreamImpl$1); -_.tryAdvance = function tryAdvance_12(action){ - while ($advanceToNextSpliterator(this)) { - if (this.next_0.tryAdvance(action)) { - return true; - } - else { - $close(this.nextStream); - this.nextStream = null; - this.next_0 = null; - } - } - return false; -} -; -var Ljava_util_stream_StreamImpl$1_2_classLit = createForClass('java.util.stream', 'StreamImpl/1', 1084); -function StreamImpl$1$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1085, 1, $intern_19, StreamImpl$1$lambda$0$Type); -_.accept = function accept_30(arg0){ - $lambda$0_0(this.$$outer_0, castTo(arg0, 833)); -} -; -var Ljava_util_stream_StreamImpl$1$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1/lambda$0$Type', 1085); -function StreamImpl$1methodref$add$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1086, 1, $intern_39, StreamImpl$1methodref$add$Type); -_.test_0 = function test_5(arg0){ - return $add_6(this.$$outer_0, arg0); -} -; -var Ljava_util_stream_StreamImpl$1methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1methodref$add$Type', 1086); -function StreamImpl$5(this$0, $anonymous0, $anonymous1, val$comparator){ - this.this$01 = this$0; - this.val$comparator5 = val$comparator; - Spliterators$AbstractSpliterator.call(this, $anonymous0, $anonymous1); -} - -defineClass(1087, 540, $intern_18, StreamImpl$5); -_.tryAdvance = function tryAdvance_13(action){ - var list; - if (!this.ordered) { - list = new ArrayList; - this.this$01.spliterator.forEachRemaining(new StreamImpl$5$2methodref$add$Type(list)); - $clinit_Collections(); - $sort(list, this.val$comparator5); - this.ordered = new Spliterators$IteratorSpliterator(list, 16); - } - return $tryAdvance(this.ordered, action); -} -; -_.ordered = null; -var Ljava_util_stream_StreamImpl$5_2_classLit = createForClass('java.util.stream', 'StreamImpl/5', 1087); -function StreamImpl$5$2methodref$add$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1088, 1, $intern_19, StreamImpl$5$2methodref$add$Type); -_.accept = function accept_31(arg0){ - $add_3(this.$$outer_0, arg0); -} -; -var Ljava_util_stream_StreamImpl$5$2methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/5/2methodref$add$Type', 1088); -function $lambda$0_1(this$static, action_1, item_1){ - if (this$static.filter.test_0(item_1)) { - this$static.found = true; - action_1.accept(item_1); - } -} - -function StreamImpl$FilterSpliterator(filter, original){ - Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -16449); - checkCriticalNotNull(filter); - this.filter = filter; - this.original = original; -} - -defineClass(722, 540, $intern_18, StreamImpl$FilterSpliterator); -_.tryAdvance = function tryAdvance_14(action){ - this.found = false; - while (!this.found && this.original.tryAdvance(new StreamImpl$FilterSpliterator$lambda$0$Type(this, action))) - ; - return this.found; -} -; -_.found = false; -var Ljava_util_stream_StreamImpl$FilterSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator', 722); -function StreamImpl$FilterSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1079, 1, $intern_19, StreamImpl$FilterSpliterator$lambda$0$Type); -_.accept = function accept_32(arg0){ - $lambda$0_1(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$FilterSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator/lambda$0$Type', 1079); -function $lambda$0_2(this$static, action_1, u_1){ - action_1.accept_2(this$static.map_0.applyAsDouble(u_1)); -} - -function $tryAdvance_4(this$static, action){ - return this$static.original.tryAdvance(new StreamImpl$MapToDoubleSpliterator$lambda$0$Type(this$static, action)); -} - -function StreamImpl$MapToDoubleSpliterator(map_0, original){ - Spliterators$AbstractDoubleSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); - checkCriticalNotNull(map_0); - this.map_0 = map_0; - this.original = original; -} - -defineClass(1075, 721, $intern_18, StreamImpl$MapToDoubleSpliterator); -_.tryAdvance_0 = function tryAdvance_15(action){ - return $tryAdvance_4(this, castTo(action, 182)); -} -; -var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator', 1075); -function StreamImpl$MapToDoubleSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1078, 1, $intern_19, StreamImpl$MapToDoubleSpliterator$lambda$0$Type); -_.accept = function accept_33(arg0){ - $lambda$0_2(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator/lambda$0$Type', 1078); -function $lambda$0_3(this$static, action_1, u_1){ - action_1.accept_0(this$static.map_0.applyAsInt(u_1)); -} - -function $tryAdvance_5(this$static, action){ - return this$static.original.tryAdvance(new StreamImpl$MapToIntSpliterator$lambda$0$Type(this$static, action)); -} - -function StreamImpl$MapToIntSpliterator(map_0, original){ - Spliterators$AbstractIntSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); - checkCriticalNotNull(map_0); - this.map_0 = map_0; - this.original = original; -} - -defineClass(1074, 720, $intern_18, StreamImpl$MapToIntSpliterator); -_.tryAdvance_0 = function tryAdvance_16(action){ - return $tryAdvance_5(this, castTo(action, 196)); -} -; -var Ljava_util_stream_StreamImpl$MapToIntSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator', 1074); -function StreamImpl$MapToIntSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1077, 1, $intern_19, StreamImpl$MapToIntSpliterator$lambda$0$Type); -_.accept = function accept_34(arg0){ - $lambda$0_3(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$MapToIntSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator/lambda$0$Type', 1077); -function $lambda$0_4(this$static, action_1, u_1){ - action_1.accept(this$static.map_0.apply_0(u_1)); -} - -function $tryAdvance_6(this$static, action){ - return this$static.original.tryAdvance(new StreamImpl$MapToObjSpliterator$lambda$0$Type(this$static, action)); -} - -function StreamImpl$MapToObjSpliterator(map_0, original){ - Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); - checkCriticalNotNull(map_0); - this.map_0 = map_0; - this.original = original; -} - -defineClass(719, 540, $intern_18, StreamImpl$MapToObjSpliterator); -_.tryAdvance = function tryAdvance_17(action){ - return $tryAdvance_6(this, action); -} -; -var Ljava_util_stream_StreamImpl$MapToObjSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator', 719); -function StreamImpl$MapToObjSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1076, 1, $intern_19, StreamImpl$MapToObjSpliterator$lambda$0$Type); -_.accept = function accept_35(arg0){ - $lambda$0_4(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$MapToObjSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator/lambda$0$Type', 1076); -function $accept_1(this$static, value_0){ - this$static.value_0 = value_0; -} - -function StreamImpl$ValueConsumer(){ -} - -defineClass(618, 1, $intern_19, StreamImpl$ValueConsumer); -_.accept = function accept_36(value_0){ - $accept_1(this, value_0); -} -; -var Ljava_util_stream_StreamImpl$ValueConsumer_2_classLit = createForClass('java.util.stream', 'StreamImpl/ValueConsumer', 618); -function StreamImpl$lambda$0$Type(){ -} - -defineClass(1080, 1, $intern_19, StreamImpl$lambda$0$Type); -_.accept = function accept_37(arg0){ - $clinit_StreamImpl(); -} -; -var Ljava_util_stream_StreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$0$Type', 1080); -function StreamImpl$lambda$1$Type(){ -} - -defineClass(1081, 1, $intern_19, StreamImpl$lambda$1$Type); -_.accept = function accept_38(arg0){ - $clinit_StreamImpl(); -} -; -var Ljava_util_stream_StreamImpl$lambda$1$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$1$Type', 1081); -function StreamImpl$lambda$4$Type(collector_0){ - this.collector_0 = collector_0; -} - -defineClass(1082, 1, {}, StreamImpl$lambda$4$Type); -_.apply_3 = function apply_37(arg0, arg1){ - return lambda$4_0(this.collector_0, arg0, arg1); -} -; -var Ljava_util_stream_StreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$4$Type', 1082); -function StreamImpl$lambda$5$Type(consumer_0, accumulator_1){ - this.consumer_0 = consumer_0; - this.accumulator_1 = accumulator_1; -} - -defineClass(1083, 1, $intern_19, StreamImpl$lambda$5$Type); -_.accept = function accept_39(arg0){ - lambda$5(this.consumer_0, this.accumulator_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$lambda$5$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$5$Type', 1083); -function TerminatableStream$lambda$0$Type(throwables_0){ - this.throwables_0 = throwables_0; -} - -defineClass(1089, 1, $intern_19, TerminatableStream$lambda$0$Type); -_.accept = function accept_40(arg0){ - lambda$0_3(this.throwables_0, castTo(arg0, 365)); -} -; -var Ljava_util_stream_TerminatableStream$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'TerminatableStream/lambda$0$Type', 1089); -function clone_0(array, toIndex){ - var result; - result = array.slice(0, toIndex); - return stampJavaTypeInfo_0(result, array); -} - -function copy_0(src_0, srcOfs, dest, destOfs, len, overwrite){ - var batchEnd, batchStart, destArray, end, spliceArgs; - if (maskUndefined(src_0) === maskUndefined(dest)) { - src_0 = src_0.slice(srcOfs, srcOfs + len); - srcOfs = 0; - } - destArray = dest; - for (batchStart = srcOfs , end = srcOfs + len; batchStart < end;) { - batchEnd = $wnd.Math.min(batchStart + 10000, end); - len = batchEnd - batchStart; - spliceArgs = src_0.slice(batchStart, batchEnd); - spliceArgs.splice(0, 0, destOfs, overwrite?len:0); - Array.prototype.splice.apply(destArray, spliceArgs); - batchStart = batchEnd; - destOfs += len; - } -} - -function createFrom(array, length_0){ - return stampJavaTypeInfo_1(new Array(length_0), array); -} - -function insertTo(array, index_0, value_0){ - array.splice(index_0, 0, value_0); -} - -function insertTo_0(array, index_0, values){ - copy_0(values, 0, array, index_0, values.length, false); -} - -function removeFrom(array, index_0, deleteCount){ - array.splice(index_0, deleteCount); -} - -function setLength(array, length_0){ - array.length = length_0; -} - -defineClass(2041, 1, {}); -function stampJavaTypeInfo_1(array, referenceType){ - return stampJavaTypeInfo_0(array, referenceType); -} - -function $groupStart(msg, expanded){ - (!expanded && console.groupCollapsed != null?console.groupCollapsed:console.group != null?console.group:console.log).call(console, msg); -} - -function $log_0(level, message){ - var logFn; - logFn = console[level]; - logFn.call(console, message); -} - -function $log_1(this$static, level, t, label_0, expanded){ - var cause, suppressed, suppressed$array, suppressed$index, suppressed$max; - $groupStart(label_0 + $toString_4(t, t.getMessage()), expanded); - $log_0(level, getBackingErrorStack(t)); - cause = t.cause_0; - !!cause && $log_1(this$static, level, cause, 'Caused by: ', false); - for (suppressed$array = (t.suppressedExceptions == null && (t.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , t.suppressedExceptions) , suppressed$index = 0 , suppressed$max = suppressed$array.length; suppressed$index < suppressed$max; ++suppressed$index) { - suppressed = suppressed$array[suppressed$index]; - $log_1(this$static, level, suppressed, 'Suppressed: ', false); - } - console.groupEnd != null && console.groupEnd.call(console); -} - -function ConsoleLogger(){ -} - -function getBackingErrorStack(t){ - var backingError = t.backingJsObject; - function stringify(fnStack){ - if (!fnStack || fnStack.length == 0) { - return ''; - } - return '\t' + fnStack.join('\n\t'); - } - - return backingError && (backingError.stack || stringify(t['fnStack'])); -} - -defineClass(1914, 1, {}, ConsoleLogger); -var Ljavaemul_internal_ConsoleLogger_2_classLit = createForClass('javaemul.internal', 'ConsoleLogger', 1914); -function getIdentityHashCode(o){ - switch (typeof(o)) { - case 'string': - return getHashCode_1(o); - case 'number': - return round_int(o); - case 'boolean': - return $clinit_Boolean() , o?1231:1237; - default:return o == null?0:getHashCode_0(o); - } -} - -function checkCriticalArgument(expression){ - if (!expression) { - throw toJs(new IllegalArgumentException); - } -} - -function checkCriticalArgument_0(expression, errorMessage){ - if (!expression) { - throw toJs(new IllegalArgumentException_0(errorMessage)); - } -} - -function checkCriticalArgument_1(expression, errorMessageArgs){ - if (!expression) { - throw toJs(new IllegalArgumentException_0(format('Enum constant undefined: %s', errorMessageArgs))); - } -} - -function checkCriticalArrayBounds_0(start_0, end, length_0){ - if (start_0 > end) { - throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); - } - if (start_0 < 0 || end > length_0) { - throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); - } -} - -function checkCriticalArraySize(size_0){ - if (size_0 < 0) { - throw toJs(new NegativeArraySizeException('Negative array size: ' + size_0)); - } -} - -function checkCriticalArrayType(expression){ - if (!expression) { - throw toJs(new ArrayStoreException); - } -} - -function checkCriticalArrayType_0(expression, errorMessage){ - if (!expression) { - throw toJs(new ArrayStoreException_0(errorMessage)); - } -} - -function checkCriticalElement(expression){ - if (!expression) { - throw toJs(new NoSuchElementException); - } -} - -function checkCriticalElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); - } -} - -function checkCriticalNotNull(reference){ - if (reference == null) { - throw toJs(new NullPointerException); - } - return reference; -} - -function checkCriticalNotNull_0(reference, errorMessage){ - if (reference == null) { - throw toJs(new NullPointerException_0(errorMessage)); - } -} - -function checkCriticalPositionIndex(index_0, size_0){ - if (index_0 < 0 || index_0 > size_0) { - throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); - } -} - -function checkCriticalPositionIndexes(start_0, end, size_0){ - if (start_0 < 0 || end > size_0) { - throw toJs(new IndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', size: ' + size_0)); - } - if (start_0 > end) { - throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); - } -} - -function checkCriticalState(expression){ - if (!expression) { - throw toJs(new IllegalStateException); - } -} - -function checkCriticalState_0(expression){ - if (!expression) { - throw toJs(new IllegalStateException_0('Unable to add element to queue')); - } -} - -function checkCriticalStringBounds(start_0, end, length_0){ - if (start_0 < 0 || end > length_0 || end < start_0) { - throw toJs(new StringIndexOutOfBoundsException('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); - } -} - -function checkCriticalStringElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new StringIndexOutOfBoundsException('Index: ' + index_0 + ', Size: ' + size_0)); - } -} - -function checkCriticalType(expression){ - if (!expression) { - throw toJs(new ClassCastException_0(null)); - } -} - -function format(template, args){ - var builder, i, placeholderStart, templateStart; - template = template == null?'null':(checkCriticalNotNull(template) , template); - builder = new StringBuilder_0; - templateStart = 0; - i = 0; - while (i < args.length) { - placeholderStart = template.indexOf('%s', templateStart); - if (placeholderStart == -1) { - break; - } - $append_11(builder, template.substr(templateStart, placeholderStart - templateStart)); - $append_10(builder, args[i++]); - templateStart = placeholderStart + 2; - } - $append_11(builder, template.substr(templateStart)); - if (i < args.length) { - builder.string += ' ['; - $append_10(builder, args[i++]); - while (i < args.length) { - builder.string += ', '; - $append_10(builder, args[i++]); - } - builder.string += ']'; - } - return builder.string; -} - -defineClass(2038, 1, {}); -function getHashCode_0(o){ - return o.$H || (o.$H = ++nextHashId); -} - -var nextHashId = 0; -function $clinit_StringHashCache(){ - $clinit_StringHashCache = emptyMethod; - back_0 = new Object_0; - front = new Object_0; -} - -function compute(str){ - var hashCode, i, n, nBatch; - hashCode = 0; - n = str.length; - nBatch = n - 4; - i = 0; - while (i < nBatch) { - hashCode = (checkCriticalStringElementIndex(i + 3, str.length) , str.charCodeAt(i + 3) + (checkCriticalStringElementIndex(i + 2, str.length) , 31 * (str.charCodeAt(i + 2) + (checkCriticalStringElementIndex(i + 1, str.length) , 31 * (str.charCodeAt(i + 1) + (checkCriticalStringElementIndex(i, str.length) , 31 * (str.charCodeAt(i) + 31 * hashCode))))))); - hashCode = hashCode | 0; - i += 4; - } - while (i < n) { - hashCode = hashCode * 31 + $charAt(str, i++); - } - hashCode = hashCode | 0; - return hashCode; -} - -function getHashCode_1(str){ - $clinit_StringHashCache(); - var hashCode, key, result; - key = ':' + str; - result = front[key]; - if (result != null) { - return round_int((checkCriticalNotNull(result) , result)); - } - result = back_0[key]; - hashCode = result == null?compute(str):round_int((checkCriticalNotNull(result) , result)); - increment_0(); - front[key] = hashCode; - return hashCode; -} - -function increment_0(){ - if (count_0 == 256) { - back_0 = front; - front = new Object_0; - count_0 = 0; - } - ++count_0; -} - -var back_0, count_0 = 0, front; -function triangulate(vertices){ - var bottomright, boundary, c, i, invalidTriangles, onBoundary, other, other$iterator, sa, sb, sc, size_0, superTriangle, tEdge, tEdge$iterator, tEdge$iterator0, tEdges, topleft, triangle, triangle$iterator, triangle$iterator0, triangulation, v, v$iterator, vertex, vertex$iterator; - topleft = new KVector_1($intern_59, $intern_59); - bottomright = new KVector_1($intern_60, $intern_60); - for (v$iterator = new ArrayList$1(vertices); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 8); - topleft.x_0 = $wnd.Math.min(topleft.x_0, v.x_0); - topleft.y_0 = $wnd.Math.min(topleft.y_0, v.y_0); - bottomright.x_0 = $wnd.Math.max(bottomright.x_0, v.x_0); - bottomright.y_0 = $wnd.Math.max(bottomright.y_0, v.y_0); - } - size_0 = new KVector_1(bottomright.x_0 - topleft.x_0, bottomright.y_0 - topleft.y_0); - sa = new KVector_1(topleft.x_0 - 50, topleft.y_0 - size_0.x_0 - 50); - sb = new KVector_1(topleft.x_0 - 50, bottomright.y_0 + size_0.x_0 + 50); - sc = new KVector_1(bottomright.x_0 + size_0.y_0 / 2 + 50, topleft.y_0 + size_0.y_0 / 2); - superTriangle = new TTriangle(sa, sb, sc); - triangulation = new HashSet; - invalidTriangles = new ArrayList; - boundary = new ArrayList; - triangulation.map_0.put(superTriangle, triangulation); - for (vertex$iterator = new ArrayList$1(vertices); vertex$iterator.i < vertex$iterator.this$01.array.length;) { - vertex = castTo($next_7(vertex$iterator), 8); - invalidTriangles.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (triangle$iterator0 = triangulation.map_0.keySet_0().iterator_0(); triangle$iterator0.hasNext_0();) { - triangle = castTo(triangle$iterator0.next_1(), 308); - c = triangle.circumcenter; - $distance_0(c, triangle.a); - fuzzyCompare($distance_0(triangle.circumcenter, vertex), $distance_0(triangle.circumcenter, triangle.a)) < 0 && (invalidTriangles.array[invalidTriangles.array.length] = triangle , true); - } - boundary.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (triangle$iterator = new ArrayList$1(invalidTriangles); triangle$iterator.i < triangle$iterator.this$01.array.length;) { - triangle = castTo($next_7(triangle$iterator), 308); - for (tEdge$iterator0 = new ArrayList$1(triangle.tEdges); tEdge$iterator0.i < tEdge$iterator0.this$01.array.length;) { - tEdge = castTo($next_7(tEdge$iterator0), 168); - onBoundary = true; - for (other$iterator = new ArrayList$1(invalidTriangles); other$iterator.i < other$iterator.this$01.array.length;) { - other = castTo($next_7(other$iterator), 308); - other != triangle && (equals_57(tEdge, $get_11(other.tEdges, 0)) || equals_57(tEdge, $get_11(other.tEdges, 1)) || equals_57(tEdge, $get_11(other.tEdges, 2))) && (onBoundary = false); - } - onBoundary && (boundary.array[boundary.array.length] = tEdge , true); - } - } - $removeAll_1(triangulation, invalidTriangles); - $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$0$Type); - for (tEdge$iterator = new ArrayList$1(boundary); tEdge$iterator.i < tEdge$iterator.this$01.array.length;) { - tEdge = castTo($next_7(tEdge$iterator), 168); - $add_6(triangulation, new TTriangle(vertex, tEdge.u, tEdge.v)); - } - } - tEdges = new HashSet; - $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$1$Type(tEdges)); - i = tEdges.map_0.keySet_0().iterator_0(); - while (i.hasNext_0()) { - tEdge = castTo(i.next_1(), 168); - ($contains_9(superTriangle, tEdge.u) || $contains_9(superTriangle, tEdge.v)) && i.remove(); - } - $forEach_0(tEdges, new BowyerWatsonTriangulation$lambda$2$Type); - return tEdges; -} - -function BowyerWatsonTriangulation$lambda$0$Type(){ -} - -defineClass(1768, 1, $intern_19, BowyerWatsonTriangulation$lambda$0$Type); -_.accept = function accept_41(arg0){ - castTo(arg0, 308); -} -; -var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$0$Type', 1768); -function BowyerWatsonTriangulation$lambda$1$Type(tEdges_0){ - this.tEdges_0 = tEdges_0; -} - -defineClass(1769, 1, $intern_19, BowyerWatsonTriangulation$lambda$1$Type); -_.accept = function accept_42(arg0){ - $addAll(this.tEdges_0, castTo(arg0, 308).tEdges); -} -; -var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$1$Type', 1769); -function BowyerWatsonTriangulation$lambda$2$Type(){ -} - -defineClass(1770, 1, $intern_19, BowyerWatsonTriangulation$lambda$2$Type); -_.accept = function accept_43(arg0){ - castTo(arg0, 168); -} -; -var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$2$Type', 1770); -function createSpanningTree(tEdges, root, costFunction){ - var edge, edge$iterator, edge$iterator0, edgeList, edges, minST, nextEdge, nextNode, nodeInTree, subTree, treeNodes, weight; - weight = new HashMap; - for (edge$iterator0 = tEdges.map_0.keySet_0().iterator_0(); edge$iterator0.hasNext_0();) { - edge = castTo(edge$iterator0.next_1(), 168); - $put_6(weight, edge, costFunction.cost(edge)); - } - edgeList = (checkNotNull(tEdges) , tEdges?new ArrayList_1(tEdges):newArrayList_0(tEdges.map_0.keySet_0().iterator_0())); - $sort(edgeList, new NaiveMinST$lambda$0$Type(weight)); - edges = newLinkedHashSet(edgeList); - minST = new Tree(root); - treeNodes = new HashMap; - $put_9(treeNodes.hashCodeMap, root, minST); - while (edges.map_0.size_1() != 0) { - nextEdge = null; - nextNode = null; - nodeInTree = null; - for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 168); - if ($doubleValue(castToDouble(getEntryValueOrNull($getEntry_0(weight.hashCodeMap, edge)))) <= $intern_59) { - if ($containsKey_3(treeNodes, edge.u) && !$containsKey_3(treeNodes, edge.v)) { - nextNode = edge.v; - nodeInTree = edge.u; - nextEdge = edge; - break; - } - if ($containsKey_3(treeNodes, edge.v)) { - if (!$containsKey_3(treeNodes, edge.u)) { - nextNode = edge.u; - nodeInTree = edge.v; - nextEdge = edge; - break; - } - } - } - } - if (!nextEdge) { - break; - } - subTree = new Tree(nextNode); - $add_3(castTo(getEntryValueOrNull($getEntry_0(treeNodes.hashCodeMap, nodeInTree)), 221).children, subTree); - $put_9(treeNodes.hashCodeMap, nextNode, subTree); - edges.map_0.remove_0(nextEdge) != null; - } - return minST; -} - -function lambda$0_6(weight_0, e1_1, e2_2){ - return $compareTo_4(castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e1_1))), castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e2_2)))); -} - -function NaiveMinST$lambda$0$Type(weight_0){ - this.weight_0 = weight_0; -} - -defineClass(1765, 1, $intern_88, NaiveMinST$lambda$0$Type); -_.compare_1 = function compare_12(arg0, arg1){ - return lambda$0_6(this.weight_0, castTo(arg0, 168), castTo(arg1, 168)); -} -; -_.equals_0 = function equals_61(other){ - return this === other; -} -; -_.reversed = function reversed_4(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_NaiveMinST$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NaiveMinST/lambda$0$Type', 1765); -function $execute(this$static){ - var calcu; - sortPortLists(this$static.adapter); - calculateLabelAndNodeSizes(this$static.adapter); - calcu = new NodeMarginCalculator(this$static.adapter); - $process(calcu); -} - -function NodeMicroLayout(adapter){ - this.adapter = adapter; -} - -defineClass(499, 1, {}, NodeMicroLayout); -var Lorg_eclipse_elk_alg_common_NodeMicroLayout_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NodeMicroLayout', 499); -function TEdge(u, v){ - this.u = u; - this.v = v; -} - -defineClass(168, 1, {168:1}, TEdge); -_.equals_0 = function equals_62(obj){ - var other; - if (instanceOf(obj, 168)) { - other = castTo(obj, 168); - return equals_57(this.u, other.u) && equals_57(this.v, other.v) || equals_57(this.u, other.v) && equals_57(this.v, other.u); - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_58(){ - return hashCode_54(this.u) + hashCode_54(this.v); -} -; -var Lorg_eclipse_elk_alg_common_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TEdge', 168); -function $contains_9(this$static, vertex){ - return equals_57(vertex, $get_11(this$static.vertices, 0)) || equals_57(vertex, $get_11(this$static.vertices, 1)) || equals_57(vertex, $get_11(this$static.vertices, 2)); -} - -function TTriangle(a, b, c){ - var ab, ac, bc, e, f, g, px, py; - this.a = a; - this.b = b; - this.c = c; - this.tEdges = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_TEdge_2_classLit, 1), $intern_2, 168, 0, [new TEdge(a, b), new TEdge(b, c), new TEdge(c, a)])); - this.vertices = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [a, b, c])); - this.circumcenter = (ab = $sub_0($clone_0(this.b), this.a) , ac = $sub_0($clone_0(this.c), this.a) , bc = $sub_0($clone_0(this.c), this.b) , e = ab.x_0 * (this.a.x_0 + this.b.x_0) + ab.y_0 * (this.a.y_0 + this.b.y_0) , f = ac.x_0 * (this.a.x_0 + this.c.x_0) + ac.y_0 * (this.a.y_0 + this.c.y_0) , g = 2 * (ab.x_0 * bc.y_0 - ab.y_0 * bc.x_0) , px = (ac.y_0 * e - ab.y_0 * f) / g , py = (ab.x_0 * f - ac.x_0 * e) / g , new KVector_1(px, py)); -} - -defineClass(308, 1, {308:1}, TTriangle); -_.equals_0 = function equals_63(obj){ - var other; - if (instanceOf(obj, 308)) { - other = castTo(obj, 308); - return $contains_9(this, other.a) && $contains_9(this, other.b) && $contains_9(this, other.c); - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_59(){ - return hashCode_54(this.a) + hashCode_54(this.b) + hashCode_54(this.c); -} -; -var Lorg_eclipse_elk_alg_common_TTriangle_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TTriangle', 308); -function Tree(n){ - this.node = n; - this.children = new ArrayList; -} - -defineClass(221, 1, {221:1}, Tree); -var Lorg_eclipse_elk_alg_common_Tree_2_classLit = createForClass('org.eclipse.elk.alg.common', 'Tree', 221); -function $go(this$static){ - var h, h$iterator, p, p$iterator; - $clinit_Collections(); - $sort(this$static.points, this$static.comparator); - for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { - p = $next_7(p$iterator); - for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { - h = castTo($next_7(h$iterator), 679); - h.handle(p); - } - } -} - -function Scanline(points, comparator, eventHandlers){ - this.comparator = comparator; - this.points = points; - this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); -} - -function execute(points, comparator, eventHandlers){ - var copy; - copy = (checkNotNull(points) , new ArrayList_1(points)); - $go(new Scanline(copy, comparator, eventHandlers)); -} - -defineClass(1254, 1, {}, Scanline); -var Lorg_eclipse_elk_alg_common_compaction_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction', 'Scanline', 1254); -var Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.common.compaction', 'Scanline/EventHandler'); -function $supports(this$static, direction){ - return $containsEnum(this$static.supportedDirections, direction); -} - -function CGraph(supportedDirections){ - this.cNodes = new ArrayList; - this.cGroups = new ArrayList; - this.predefinedHorizontalConstraints = new ArrayList; - this.predefinedVerticalConstraints = new ArrayList; - this.supportedDirections = supportedDirections; -} - -defineClass(1692, 1, {}, CGraph); -var Lorg_eclipse_elk_alg_common_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGraph', 1692); -function $addCNode(this$static, cNode){ - if (cNode.cGroup) { - throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); - } - $add_6(this$static.cNodes, cNode); - cNode.cGroup = this$static; - !this$static.reference && (this$static.reference = cNode); -} - -function CGroup(){ - this.cNodes = new LinkedHashSet; - this.incomingConstraints = new HashSet; - this.outDegree = 0; - this.outDegreeReal = 0; -} - -defineClass(307, 1, {307:1}, CGroup); -_.delta = 0; -_.deltaNormalized = 0; -_.id_0 = 0; -_.outDegree = 0; -_.outDegreeReal = 0; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup', 307); -function $create(this$static, graph){ - $add_3(graph.cGroups, this$static.group_0); - return this$static.group_0; -} - -function $master(this$static, master){ - this$static.group_0.master = master; - return this$static; -} - -function $nodes(this$static, nodes){ - var n, n$array, n$index, n$max; - for (n$array = nodes , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { - n = n$array[n$index]; - $addCNode(this$static.group_0, n); - } - return this$static; -} - -function CGroup$CGroupBuilder(){ - this.group_0 = new CGroup; -} - -defineClass(815, 1, {}, CGroup$CGroupBuilder); -var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup$CGroupBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup/CGroupBuilder', 815); -function CNode(){ - this.cGroupOffset = new KVector; - this.constraints = new ArrayList; -} - -defineClass(57, 1, {57:1}, CNode); -_.toString_0 = function toString_76(){ - var number; - if (this.toStringDelegate) { - return castToString(this.toStringDelegate.apply_0(this)); - } - return $ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit) , Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit.typeName + '@' + (number = getHashCode_0(this) >>> 0 , number.toString(16)); -} -; -_.id_0 = 0; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode', 57); -function $create_0(this$static, graph){ - $add_3(graph.cNodes, this$static.node); - return this$static.node; -} - -function $hitbox(this$static, hitbox){ - this$static.node.hitbox = hitbox; - return this$static; -} - -function $origin(this$static, origin_0){ - this$static.node.origin_0 = origin_0; - return this$static; -} - -function $toStringDelegate(this$static, delegate){ - this$static.node.toStringDelegate = delegate; - return this$static; -} - -function CNode$CNodeBuilder(){ - this.node = new CNode; -} - -defineClass(814, 1, {}, CNode$CNodeBuilder); -var Lorg_eclipse_elk_alg_common_compaction_oned_CNode$CNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode/CNodeBuilder', 814); -function eq_0(d1, d2){ - return $clinit_DoubleMath() , checkNonNegative($intern_41) , $wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2); -} - -function gt_0(d1, d2){ - return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) > 0; -} - -function le(d1, d2){ - return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) <= 0; -} - -function lt_0(d1, d2){ - return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) < 0; -} - -function $clinit_ISpacingsHandler(){ - $clinit_ISpacingsHandler = emptyMethod; - DEFAULT_SPACING_HANDLER = new ISpacingsHandler$1; -} - -var DEFAULT_SPACING_HANDLER; -function ISpacingsHandler$1(){ -} - -defineClass(1525, 1, {}, ISpacingsHandler$1); -_.getHorizontalSpacing = function getHorizontalSpacing(cNode1, cNode2){ - return 0; -} -; -_.getVerticalSpacing = function getVerticalSpacing(cNode1, cNode2){ - return 0; -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ISpacingsHandler/1', 1525); -function LongestPathCompaction(){ -} - -defineClass(1790, 1, {}, LongestPathCompaction); -_.compact = function compact(compactor){ - var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; - minStartPos = $intern_59; - for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 57); - minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); - } - sinks = new LinkedList; - for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 307); - group.startPos = minStartPos; - group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); - } - while (sinks.size_0 != 0) { - group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 307); - diff = group.reference.hitbox.x_0; - for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { - node = castTo(node$iterator0.next_1(), 57); - suggestedX = group.startPos + node.cGroupOffset.x_0; - !$isLocked(compactor, group, compactor.direction) || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); - } - diff -= group.reference.startPos; - group.delta += diff; - compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); - for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 57); - for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { - incNode = castTo(incNode$iterator.next_1(), 57); - $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing(node, incNode)); - incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); - $isLocked_0(compactor, incNode, compactor.direction) && (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); - --incNode.cGroup.outDegree; - incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); - } - } - } - for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.hitbox.x_0 = cNode.startPos; - } -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_LongestPathCompaction_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'LongestPathCompaction', 1790); -function $clinit_OneDimensionalCompactor(){ - $clinit_OneDimensionalCompactor = emptyMethod; - LONGEST_PATH_COMPACTION = new LongestPathCompaction; - SCANLINE_CONSTRAINTS = new ScanlineConstraintCalculator; - QUADRATIC_CONSTRAINTS = new QuadraticConstraintCalculation; -} - -function $calculateConstraints(this$static){ - var cNode, cNode$iterator, cstrs; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.constraints.clear_0(); - } - $isHorizontal(this$static.direction)?(cstrs = this$static.cGraph.predefinedHorizontalConstraints):(cstrs = this$static.cGraph.predefinedVerticalConstraints); - $forEach_1(cstrs, new OneDimensionalCompactor$lambda$0$Type(this$static)); - this$static.constraintAlgorithm.calculateConstraints(this$static); - $calculateConstraintsForCGroups(this$static); -} - -function $calculateConstraintsForCGroups(this$static){ - var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; - for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 307); - group.outDegree = 0; - group.outDegreeReal = 0; - group.incomingConstraints.map_0.clear_0(); - } - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 307); - for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { - cNode = castTo(cNode$iterator.next_1(), 57); - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 57); - if (inc.cGroup != group) { - $add_6(group.incomingConstraints, inc); - ++inc.cGroup.outDegree; - ++inc.cGroup.outDegreeReal; - } - } - } - } -} - -function $calculateGroupOffsets(this$static){ - var group, group$iterator, n, n$iterator, n$iterator0; - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 307); - group.reference = null; - for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { - n = castTo(n$iterator0.next_1(), 57); - $reset_5(n.cGroupOffset); - (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); - } - for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; - n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; - } - } - return this$static; -} - -function $changeDirection(this$static, dir_0){ - var oldDirection; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - if (!$supports(this$static.cGraph, dir_0)) { - throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); - } - if (dir_0 == this$static.direction) { - return this$static; - } - oldDirection = this$static.direction; - this$static.direction = dir_0; - switch (oldDirection.ordinal) { - case 0: - switch (dir_0.ordinal) { - case 2: - $calculateConstraints(this$static); - break; - case 1: - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 4: - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - } - - break; - case 2: - switch (dir_0.ordinal) { - case 1: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - break; - case 4: - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - } - - break; - case 1: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - break; - case 4: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - } - - break; - case 4: - switch (dir_0.ordinal) { - case 2: - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 1: - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - } - - break; - case 3: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 1: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 4: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - } - - } - return this$static; -} - -function $compact(this$static){ - var g, g$iterator, n, n$iterator; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection(this$static, LEFT_6); - for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 307); - g.outDegree = g.outDegreeReal; - } - for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - n.startPos = $intern_60; - } - this$static.compactionAlgorithm.compact(this$static); - return this$static; -} - -function $isLocked(this$static, group, dir_0){ - var n, n$iterator; - for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if ($isLocked_0(this$static, n, dir_0)) { - return true; - } - } - return false; -} - -function $isLocked_0(this$static, node, dir_0){ - if (this$static.lockFun) { - return this$static.lockFun.isLocked(node, dir_0); - } - return false; -} - -function $lambda$0_5(this$static, p_0){ - this$static.direction == ($clinit_Direction_0() , LEFT_6) || this$static.direction == UP_1?castTo(p_0.first, 57).constraints.add_2(castTo(p_0.second, 57)):castTo(p_0.second, 57).constraints.add_2(castTo(p_0.first, 57)); -} - -function $mirrorHitboxes(this$static){ - var cNode, cNode$iterator; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; - } - $calculateGroupOffsets(this$static); -} - -function $reverseConstraints(this$static){ - var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; - incMap = new HashMap; - for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 57); - $put_6(incMap, cNode, new ArrayList); - } - for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator1), 57); - cNode.startPos = $intern_60; - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 57); - castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); - } - } - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.constraints.clear_0(); - cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); - } - $calculateConstraintsForCGroups(this$static); -} - -function $setCompactionAlgorithm(this$static, compactor){ - this$static.compactionAlgorithm = compactor; - return this$static; -} - -function $setConstraintAlgorithm(this$static, theConstraintAlgorithm){ - this$static.constraintAlgorithm = theConstraintAlgorithm; - return this$static; -} - -function $setLockFunction(this$static, fun){ - this$static.lockFun = fun; - return this$static; -} - -function $setSpacingsHandler(this$static, handler){ - this$static.spacingsHandler = handler; - return this$static; -} - -function $transposeHitboxes(this$static){ - var cNode, cNode$iterator, tmp; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - tmp = cNode.hitbox.x_0; - cNode.hitbox.x_0 = cNode.hitbox.y_0; - cNode.hitbox.y_0 = tmp; - tmp = cNode.hitbox.width_0; - cNode.hitbox.width_0 = cNode.hitbox.height; - cNode.hitbox.height = tmp; - tmp = cNode.cGroupOffset.x_0; - cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; - cNode.cGroupOffset.y_0 = tmp; - } - $calculateGroupOffsets(this$static); -} - -function OneDimensionalCompactor(cGraph){ - $clinit_OneDimensionalCompactor(); - var n, n$iterator; - this.compactionAlgorithm = LONGEST_PATH_COMPACTION; - this.constraintAlgorithm = SCANLINE_CONSTRAINTS; - this.spacingsHandler = ($clinit_ISpacingsHandler() , DEFAULT_SPACING_HANDLER); - this.direction = ($clinit_Direction_0() , UNDEFINED_2); - this.cGraph = cGraph; - $calculateGroupOffsets(this); - for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - !n.cGroup && $create($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [n])), cGraph); - n.hitboxPreCompaction = new ElkRectangle_1(n.hitbox); - } -} - -defineClass(1690, 1, {}, OneDimensionalCompactor); -_.finished = false; -var LONGEST_PATH_COMPACTION, QUADRATIC_CONSTRAINTS, SCANLINE_CONSTRAINTS; -var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor', 1690); -function OneDimensionalCompactor$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1691, 1, $intern_19, OneDimensionalCompactor$lambda$0$Type); -_.accept = function accept_44(arg0){ - $lambda$0_5(this.$$outer_0, castTo(arg0, 46)); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1691); -function QuadraticConstraintCalculation(){ -} - -defineClass(1791, 1, {}, QuadraticConstraintCalculation); -_.calculateConstraints = function calculateConstraints(compactor){ - var cNode, cNode$iterator, cNode1, cNode1$iterator, cNode2, cNode2$iterator, spacing; - for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.constraints.clear_0(); - } - for (cNode1$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode1$iterator.i < cNode1$iterator.this$01.array.length;) { - cNode1 = castTo($next_7(cNode1$iterator), 57); - for (cNode2$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode2$iterator.i < cNode2$iterator.this$01.array.length;) { - cNode2 = castTo($next_7(cNode2$iterator), 57); - if (cNode1 == cNode2) { - continue; - } - if (!!cNode1.cGroup && cNode1.cGroup == cNode2.cGroup) { - continue; - } - $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getVerticalSpacing(cNode1, cNode2)):(spacing = compactor.spacingsHandler.getHorizontalSpacing(cNode1, cNode2)); - (cNode2.hitbox.x_0 > cNode1.hitbox.x_0 || cNode1.hitbox.x_0 == cNode2.hitbox.x_0 && cNode1.hitbox.width_0 < cNode2.hitbox.width_0) && gt_0(cNode2.hitbox.y_0 + cNode2.hitbox.height + spacing, cNode1.hitbox.y_0) && lt_0(cNode2.hitbox.y_0, cNode1.hitbox.y_0 + cNode1.hitbox.height + spacing) && cNode1.constraints.add_2(cNode2); - } - } -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_QuadraticConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'QuadraticConstraintCalculation', 1791); -function $applyOr(this$static, other){ - this$static.left = this$static.left | other.left; - this$static.right = this$static.right | other.right; - this$static.up = this$static.up | other.up; - this$static.down = this$static.down | other.down; -} - -function $get_18(this$static, direction){ - switch (direction.ordinal) { - case 2: - return this$static.left; - case 1: - return this$static.right; - case 4: - return this$static.up; - case 3: - return this$static.down; - default:return false; - } -} - -function $set_3(this$static, value_0, direction){ - switch (direction.ordinal) { - case 2: - this$static.left = value_0; - break; - case 1: - this$static.right = value_0; - break; - case 4: - this$static.up = value_0; - break; - case 3: - this$static.down = value_0; - } -} - -function $set_4(this$static){ - this$static.left = false; - this$static.right = false; - this$static.up = false; - this$static.down = false; -} - -function Quadruplet(){ - $set_4(this); -} - -defineClass(522, 1, {522:1}, Quadruplet); -_.down = false; -_.left = false; -_.right = false; -_.up = false; -var Lorg_eclipse_elk_alg_common_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'Quadruplet', 522); -function $overlap(n1, n2){ - if (!n1 || !n2 || n1 == n2) { - return false; - } - return le(n1.hitbox.x_0, n2.hitbox.x_0 + n2.hitbox.width_0) && le(n2.hitbox.x_0, n1.hitbox.x_0 + n1.hitbox.width_0); -} - -function $sweep(this$static, filterFun){ - var n, n$iterator, points; - points = new ArrayList; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - if (filterFun.apply_1(n)) { - $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, true)); - $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, false)); - } - } - $reset_1(this$static.constraintsScanlineHandler); - execute(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [this$static.constraintsScanlineHandler]))); -} - -function ScanlineConstraintCalculator(){ - this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type; - this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler(this); -} - -function lambda$0_7(p1_0, p2_1){ - var cmp, y1, y2; - y1 = p1_0.node.hitbox.y_0; - p1_0.low || (y1 += p1_0.node.hitbox.height); - y2 = p2_1.node.hitbox.y_0; - p2_1.low || (y2 += p2_1.node.hitbox.height); - cmp = compare_4(y1, y2); - if (cmp == 0) { - if (!p1_0.low && p2_1.low) { - return -1; - } - else if (!p2_1.low && p1_0.low) { - return 1; - } - } - return cmp; -} - -defineClass(803, 1, {}, ScanlineConstraintCalculator); -_.calculateConstraints = function calculateConstraints_0(theCompactor){ - this.compactor = theCompactor; - $sweep(this, new ScanlineConstraintCalculator$lambda$1$Type); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator', 803); -function $handle(this$static, p){ - var left, right; - p.low?$insert_2(this$static, p):(left = castTo($lower(this$static.intervals, p.node), 57) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right = castTo($higher(this$static.intervals, p.node), 57) , !!right && this$static.cand[right.id_0] == p.node && !!right.cGroup && right.cGroup != p.node.cGroup && p.node.constraints.add_2(right) , $remove_28(this$static.intervals, p.node) , undefined); -} - -function $insert_2(this$static, p){ - var right, success; - success = $add_10(this$static.intervals, p.node); - if (!success) { - throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline constraint calculation.')); - } - ($overlap(p.node, castTo($floor(this$static.intervals, p.node), 57)) || $overlap(p.node, castTo($ceiling(this$static.intervals, p.node), 57))) && ($clinit_System() , p.node + ' has overlap.'); - this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 57); - right = castTo($higher(this$static.intervals, p.node), 57); - !!right && (this$static.cand[right.id_0] = p.node); -} - -function $reset_1(this$static){ - var index_0, n, n$iterator; - $clear_8(this$static.intervals.map_0); - this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, $intern_2, 57, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); - index_0 = 0; - for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - n.id_0 = index_0++; - } -} - -function ScanlineConstraintCalculator$ConstraintsScanlineHandler(this$0){ - this.this$01 = this$0; - this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type), 62)); -} - -function lambda$0_8(c1_0, c2_1){ - return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); -} - -defineClass(1718, 1, {679:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler); -_.handle = function handle(p){ - $handle(this, castTo(p, 464)); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1718); -function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type(){ -} - -defineClass(1719, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type); -_.compare_1 = function compare_13(arg0, arg1){ - return lambda$0_8(castTo(arg0, 57), castTo(arg1, 57)); -} -; -_.equals_0 = function equals_64(other){ - return this === other; -} -; -_.reversed = function reversed_5(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1719); -function ScanlineConstraintCalculator$Timestamp(node, low){ - this.node = node; - this.low = low; -} - -defineClass(464, 1, {464:1}, ScanlineConstraintCalculator$Timestamp); -_.low = false; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/Timestamp', 464); -function ScanlineConstraintCalculator$lambda$0$Type(){ -} - -defineClass(1720, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type); -_.compare_1 = function compare_14(arg0, arg1){ - return lambda$0_7(castTo(arg0, 464), castTo(arg1, 464)); -} -; -_.equals_0 = function equals_65(other){ - return this === other; -} -; -_.reversed = function reversed_6(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$0$Type', 1720); -function ScanlineConstraintCalculator$lambda$1$Type(){ -} - -defineClass(1721, 1, $intern_89, ScanlineConstraintCalculator$lambda$1$Type); -_.apply_1 = function apply_38(arg0){ - return castTo(arg0, 57) , true; -} -; -_.equals_0 = function equals_66(other){ - return this === other; -} -; -_.test_0 = function test_6(input_0){ - return castTo(input_0, 57) , true; -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$1$Type', 1721); -function $clinit_HighLevelSortingCriterion(){ - $clinit_HighLevelSortingCriterion = emptyMethod; - NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST = new HighLevelSortingCriterion('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST', 0); - CORNER_CASES_THAN_SINGLE_SIDE_LAST = new HighLevelSortingCriterion('CORNER_CASES_THAN_SINGLE_SIDE_LAST', 1); -} - -function HighLevelSortingCriterion(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_14(name_0){ - $clinit_HighLevelSortingCriterion(); - return valueOf(($clinit_HighLevelSortingCriterion$Map() , $MAP_2), name_0); -} - -function values_20(){ - $clinit_HighLevelSortingCriterion(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]); -} - -defineClass(428, 22, {3:1, 35:1, 22:1, 428:1}, HighLevelSortingCriterion); -var CORNER_CASES_THAN_SINGLE_SIDE_LAST, NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST; -var Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'HighLevelSortingCriterion', 428, Ljava_lang_Enum_2_classLit, values_20, valueOf_14); -function $clinit_HighLevelSortingCriterion$Map(){ - $clinit_HighLevelSortingCriterion$Map = emptyMethod; - $MAP_2 = createValueOfMap(($clinit_HighLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]))); -} - -var $MAP_2; -function $clinit_LowLevelSortingCriterion(){ - $clinit_LowLevelSortingCriterion = emptyMethod; - BY_SIZE = new LowLevelSortingCriterion('BY_SIZE', 0); - BY_SIZE_AND_SHAPE = new LowLevelSortingCriterion('BY_SIZE_AND_SHAPE', 1); -} - -function LowLevelSortingCriterion(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_15(name_0){ - $clinit_LowLevelSortingCriterion(); - return valueOf(($clinit_LowLevelSortingCriterion$Map() , $MAP_3), name_0); -} - -function values_21(){ - $clinit_LowLevelSortingCriterion(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]); -} - -defineClass(427, 22, {3:1, 35:1, 22:1, 427:1}, LowLevelSortingCriterion); -var BY_SIZE, BY_SIZE_AND_SHAPE; -var Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'LowLevelSortingCriterion', 427, Ljava_lang_Enum_2_classLit, values_21, valueOf_15); -function $clinit_LowLevelSortingCriterion$Map(){ - $clinit_LowLevelSortingCriterion$Map = emptyMethod; - $MAP_3 = createValueOfMap(($clinit_LowLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]))); -} - -var $MAP_3; -var Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit = createForInterface('org.eclipse.elk.core.data', 'ILayoutMetaDataProvider'); -function $clinit_PolyominoOptions(){ - $clinit_PolyominoOptions = emptyMethod; - POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT = ($clinit_TraversalStrategy() , QUADRANTS_LINE_BY_LINE); - POLYOMINO_TRAVERSAL_STRATEGY = new Property_1('org.eclipse.elk.polyomino.traversalStrategy', POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT); - POLYOMINO_LOW_LEVEL_SORT_DEFAULT = ($clinit_LowLevelSortingCriterion() , BY_SIZE_AND_SHAPE); - POLYOMINO_LOW_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.lowLevelSort', POLYOMINO_LOW_LEVEL_SORT_DEFAULT); - POLYOMINO_HIGH_LEVEL_SORT_DEFAULT = ($clinit_HighLevelSortingCriterion() , NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST); - POLYOMINO_HIGH_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.highLevelSort', POLYOMINO_HIGH_LEVEL_SORT_DEFAULT); - POLYOMINO_FILL = new Property_1('org.eclipse.elk.polyomino.fill', ($clinit_Boolean() , true)); -} - -function PolyominoOptions(){ - $clinit_PolyominoOptions(); -} - -defineClass(853, 1, $intern_90, PolyominoOptions); -_.apply_4 = function apply_39(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.traversalStrategy'), 'polyomino'), 'Polyomino Traversal Strategy'), 'Traversal strategy for trying different candidate positions for polyominoes.'), POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.lowLevelSort'), 'polyomino'), 'Polyomino Secondary Sorting Criterion'), 'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'), POLYOMINO_LOW_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.highLevelSort'), 'polyomino'), 'Polyomino Primary Sorting Criterion'), 'Possible primary sorting criteria for the processing order of polyominoes.'), POLYOMINO_HIGH_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.fill'), 'polyomino'), 'Fill Polyominoes'), 'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); -} -; -var POLYOMINO_FILL, POLYOMINO_HIGH_LEVEL_SORT, POLYOMINO_HIGH_LEVEL_SORT_DEFAULT, POLYOMINO_LOW_LEVEL_SORT, POLYOMINO_LOW_LEVEL_SORT_DEFAULT, POLYOMINO_TRAVERSAL_STRATEGY, POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT; -var Lorg_eclipse_elk_alg_common_compaction_options_PolyominoOptions_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.options', 'PolyominoOptions', 853); -function $clinit_TraversalStrategy(){ - $clinit_TraversalStrategy = emptyMethod; - SPIRAL = new TraversalStrategy('SPIRAL', 0); - LINE_BY_LINE = new TraversalStrategy('LINE_BY_LINE', 1); - MANHATTAN = new TraversalStrategy('MANHATTAN', 2); - JITTER = new TraversalStrategy('JITTER', 3); - QUADRANTS_LINE_BY_LINE = new TraversalStrategy('QUADRANTS_LINE_BY_LINE', 4); - QUADRANTS_MANHATTAN = new TraversalStrategy('QUADRANTS_MANHATTAN', 5); - QUADRANTS_JITTER = new TraversalStrategy('QUADRANTS_JITTER', 6); - COMBINE_LINE_BY_LINE_MANHATTAN = new TraversalStrategy('COMBINE_LINE_BY_LINE_MANHATTAN', 7); - COMBINE_JITTER_MANHATTAN = new TraversalStrategy('COMBINE_JITTER_MANHATTAN', 8); -} - -function TraversalStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_16(name_0){ - $clinit_TraversalStrategy(); - return valueOf(($clinit_TraversalStrategy$Map() , $MAP_4), name_0); -} - -function values_22(){ - $clinit_TraversalStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]); -} - -defineClass(250, 22, {3:1, 35:1, 22:1, 250:1}, TraversalStrategy); -var COMBINE_JITTER_MANHATTAN, COMBINE_LINE_BY_LINE_MANHATTAN, JITTER, LINE_BY_LINE, MANHATTAN, QUADRANTS_JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, SPIRAL; -var Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'TraversalStrategy', 250, Ljava_lang_Enum_2_classLit, values_22, valueOf_16); -function $clinit_TraversalStrategy$Map(){ - $clinit_TraversalStrategy$Map = emptyMethod; - $MAP_4 = createValueOfMap(($clinit_TraversalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]))); -} - -var $MAP_4; -function $getOther(this$static, some_0){ - if (some_0 == this$static.source) { - return this$static.target; - } - else if (some_0 == this$static.target) { - return this$static.source; - } - else { - throw toJs(new IllegalArgumentException_0('Node ' + some_0 + ' not part of edge ' + this$static)); - } -} - -function NEdge(){ -} - -defineClass(213, 1, {213:1}, NEdge); -_.toString_0 = function toString_77(){ - return 'NEdge[id=' + this.id_0 + ' w=' + this.weight + ' d=' + this.delta + ']'; -} -; -_.delta = 1; -_.id_0 = 0; -_.internalId = 0; -_.treeEdge = false; -_.weight = 0; -var Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge', 213); -function $create_1(this$static){ - if (!this$static.edge.source || !this$static.edge.target) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit.simpleName + ' must have a source and target ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit.simpleName) + ' specified.'))); - } - if (this$static.edge.source == this$static.edge.target) { - throw toJs(new IllegalStateException_0('Network simplex does not support self-loops: ' + this$static.edge + ' ' + this$static.edge.source + ' ' + this$static.edge.target)); - } - $add_11(this$static.edge.source.outgoingEdges, this$static.edge); - $add_11(this$static.edge.target.incomingEdges, this$static.edge); - return this$static.edge; -} - -function $delta(this$static, delta){ - this$static.edge.delta = delta; - return this$static; -} - -function $source(this$static, source){ - this$static.edge.source = source; - return this$static; -} - -function $target(this$static, target){ - this$static.edge.target = target; - return this$static; -} - -function $weight(this$static, weight){ - this$static.edge.weight = weight; - return this$static; -} - -function NEdge$NEdgeBuilder(){ - this.edge = new NEdge; -} - -defineClass(176, 1, {}, NEdge$NEdgeBuilder); -var Lorg_eclipse_elk_alg_common_networksimplex_NEdge$NEdgeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge/NEdgeBuilder', 176); -function $createArtificialRootAndConnect(this$static, nodesToConnect){ - var root, src_0, src$iterator; - root = $create_2(new NNode$NNodeBuilder, this$static); - for (src$iterator = new ArrayList$1(nodesToConnect); src$iterator.i < src$iterator.this$01.array.length;) { - src_0 = castTo($next_7(src$iterator), 121); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0), root), src_0)); - } - return root; -} - -function $dfs(this$static, node, mark){ - var edge, edge$iterator, other; - if (mark[node.internalId]) { - return; - } - mark[node.internalId] = true; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - other = $getOther(edge, node); - $dfs(this$static, other, mark); - } -} - -function $findConCompRepresentatives(this$static){ - var ccRep, mark, node, node$iterator; - ccRep = new ArrayList; - mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.nodes.array.length, 16, 1); - fill0_3(mark, mark.length); - for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - if (!mark[node.internalId]) { - ccRep.array[ccRep.array.length] = node; - $dfs(this$static, node, mark); - } - } - return ccRep; -} - -function $makeConnected(this$static){ - var ccRep, id_0, n, n$iterator, root; - id_0 = 0; - for (n$iterator = new ArrayList$1(this$static.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 121); - n.internalId = id_0++; - } - ccRep = $findConCompRepresentatives(this$static); - root = null; - ccRep.array.length > 1 && (root = $createArtificialRootAndConnect(this$static, ccRep)); - return root; -} - -function NGraph(){ - this.nodes = new ArrayList; -} - -defineClass(653, 1, {}, NGraph); -var Lorg_eclipse_elk_alg_common_networksimplex_NGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NGraph', 653); -function $getConnectedEdges(this$static){ - if (this$static.incomingEdgesModCnt != this$static.incomingEdges.modCount || this$static.outgoingEdgesModCnt != this$static.outgoingEdges.modCount) { - this$static.allEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(this$static.allEdges, this$static.incomingEdges); - $addAll_2(this$static.allEdges, this$static.outgoingEdges); - this$static.incomingEdgesModCnt = this$static.incomingEdges.modCount; - this$static.outgoingEdgesModCnt = this$static.outgoingEdges.modCount; - } - return this$static.allEdges; -} - -function NNode(){ - this.outgoingEdges = new NNode$ChangeAwareArrayList; - this.incomingEdges = new NNode$ChangeAwareArrayList; - this.allEdges = new ArrayList; - this.unknownCutvalues = new ArrayList; -} - -defineClass(121, 1, {121:1}, NNode); -_.incomingEdgesModCnt = -1; -_.internalId = 0; -_.layer = 0; -_.outgoingEdgesModCnt = -1; -_.treeNode = false; -var Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode', 121); -function $add_11(this$static, e){ - ++this$static.modCount; - return $add_3(this$static.list, e); -} - -function $remove_29(this$static, o){ - ++this$static.modCount; - return $remove_12(this$static.list, o); -} - -function NNode$ChangeAwareArrayList(){ - this.list = new ArrayList; -} - -defineClass(795, 1, $intern_73, NNode$ChangeAwareArrayList); -_.forEach_0 = function forEach_24(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream_4(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.sort_0 = function sort_9(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_37(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_6(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.add_3 = function add_41(index_0, element){ - ++this.modCount; - $add_2(this.list, index_0, element); -} -; -_.add_2 = function add_42(e){ - return $add_11(this, e); -} -; -_.addAll_0 = function addAll_22(index_0, c){ - ++this.modCount; - return $addAll_1(this.list, index_0, c); -} -; -_.addAll = function addAll_23(c){ - ++this.modCount; - return $addAll_2(this.list, c); -} -; -_.clear_0 = function clear_51(){ - ++this.modCount; - this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_48(o){ - return $indexOf_3(this.list, o, 0) != -1; -} -; -_.containsAll = function containsAll_10(c){ - return $containsAll(this.list, c); -} -; -_.get_0 = function get_49(index_0){ - return $get_11(this.list, index_0); -} -; -_.indexOf_0 = function indexOf_7(o){ - return $indexOf_3(this.list, o, 0); -} -; -_.isEmpty = function isEmpty_25(){ - return this.list.array.length == 0; -} -; -_.iterator_0 = function iterator_66(){ - return unmodifiableIterator(new ArrayList$1(this.list)); -} -; -_.listIterator_0 = function listIterator_15(){ - throw toJs(new UnsupportedOperationException); -} -; -_.listIterator_1 = function listIterator_16(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_2 = function remove_90(index_0){ - ++this.modCount; - return $remove_11(this.list, index_0); -} -; -_.remove_1 = function remove_91(o){ - return $remove_29(this, o); -} -; -_.set_2 = function set_20(index_0, element){ - ++this.modCount; - return $set_1(this.list, index_0, element); -} -; -_.size_1 = function size_64(){ - return this.list.array.length; -} -; -_.subList = function subList_9(fromIndex, toIndex){ - return new AbstractList$SubList(this.list, fromIndex, toIndex); -} -; -_.toArray = function toArray_23(){ - return $toArray_1(this.list); -} -; -_.toArray_0 = function toArray_24(a){ - return $toArray_2(this.list, a); -} -; -_.modCount = 0; -var Lorg_eclipse_elk_alg_common_networksimplex_NNode$ChangeAwareArrayList_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/ChangeAwareArrayList', 795); -function $create_2(this$static, graph){ - $add_3(graph.nodes, this$static.node); - return this$static.node; -} - -function $origin_0(this$static, origin_0){ - this$static.node.origin_0 = origin_0; - return this$static; -} - -function NNode$NNodeBuilder(){ - this.node = new NNode; -} - -defineClass(269, 1, {}, NNode$NNodeBuilder); -var Lorg_eclipse_elk_alg_common_networksimplex_NNode$NNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/NNodeBuilder', 269); -function $balance(this$static, filling){ - var i, newLayer, node, node$iterator, range; - range = null; - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - if (node.incomingEdges.list.array.length == node.outgoingEdges.list.array.length) { - newLayer = node.layer; - range = $minimalSpan(node); - for (i = node.layer - castTo(range.first, 19).value_0 + 1; i < node.layer + castTo(range.second, 19).value_0; i++) { - filling[i] < filling[newLayer] && (newLayer = i); - } - if (filling[newLayer] < filling[node.layer]) { - --filling[node.layer]; - ++filling[newLayer]; - node.layer = newLayer; - } - } - } -} - -function $cutvalues(this$static){ - var edge, edge$iterator, leafs, node, node$iterator, node$iterator0, source, target, toDetermine, treeEdgeCount; - leafs = new ArrayList; - for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 121); - treeEdgeCount = 0; - node.unknownCutvalues.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (edge.treeEdge) { - $add_3(node.unknownCutvalues, edge); - ++treeEdgeCount; - } - } - treeEdgeCount == 1 && (leafs.array[leafs.array.length] = node , true); - } - for (node$iterator = new ArrayList$1(leafs); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - while (node.unknownCutvalues.array.length == 1) { - toDetermine = castTo($next_7(new ArrayList$1(node.unknownCutvalues)), 213); - this$static.cutvalue[toDetermine.internalId] = toDetermine.weight; - source = toDetermine.source; - target = toDetermine.target; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - equals_Ljava_lang_Object__Z__devirtual$(edge, toDetermine) || (edge.treeEdge?source == edge.source || target == edge.target?(this$static.cutvalue[toDetermine.internalId] -= this$static.cutvalue[edge.internalId] - edge.weight):(this$static.cutvalue[toDetermine.internalId] += this$static.cutvalue[edge.internalId] - edge.weight):node == source?edge.source == node?(this$static.cutvalue[toDetermine.internalId] += edge.weight):(this$static.cutvalue[toDetermine.internalId] -= edge.weight):edge.source == node?(this$static.cutvalue[toDetermine.internalId] -= edge.weight):(this$static.cutvalue[toDetermine.internalId] += edge.weight)); - } - $remove_12(source.unknownCutvalues, toDetermine); - $remove_12(target.unknownCutvalues, toDetermine); - source == node?(node = toDetermine.target):(node = toDetermine.source); - } - } -} - -function $enterEdge(this$static, leave){ - var edge, edge$iterator, repSlack, replace, slack, source, target; - if (!leave.treeEdge) { - throw toJs(new IllegalArgumentException_0('The input edge is not a tree edge.')); - } - replace = null; - repSlack = $intern_0; - for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - source = edge.source; - target = edge.target; - if ($isInHead(this$static, source, leave) && !$isInHead(this$static, target, leave)) { - slack = target.layer - source.layer - edge.delta; - if (slack < repSlack) { - repSlack = slack; - replace = edge; - } - } - } - return replace; -} - -function $exchange(this$static, leave, enter){ - var delta, node, node$iterator; - if (!leave.treeEdge) { - throw toJs(new IllegalArgumentException_0('Given leave edge is no tree edge.')); - } - if (enter.treeEdge) { - throw toJs(new IllegalArgumentException_0('Given enter edge is a tree edge already.')); - } - leave.treeEdge = false; - $remove_18(this$static.treeEdges, leave); - enter.treeEdge = true; - $add_6(this$static.treeEdges, enter); - delta = enter.target.layer - enter.source.layer - enter.delta; - $isInHead(this$static, enter.target, leave) || (delta = -delta); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - $isInHead(this$static, node, leave) || (node.layer += delta); - } - this$static.postOrder = 1; - fill_3(this$static.edgeVisited); - $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); - $cutvalues(this$static); -} - -function $execute_0(this$static, monitor){ - var e, iter, node, node$iterator, removeSubtrees; - $begin(monitor, 'Network simplex', 1); - if (this$static.graph_0.nodes.array.length < 1) { - $done_0(monitor); - return; - } - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.layer = 0; - } - removeSubtrees = this$static.graph_0.nodes.array.length >= 40; - removeSubtrees && $removeSubtrees(this$static); - $initialize(this$static); - $feasibleTree(this$static); - e = $leaveEdge(this$static); - iter = 0; - while (!!e && iter < this$static.iterationLimit) { - $exchange(this$static, e, $enterEdge(this$static, e)); - e = $leaveEdge(this$static); - ++iter; - } - removeSubtrees && $reattachSubtrees(this$static); - this$static.balance?$balance(this$static, $normalize(this$static)):$normalize(this$static); - this$static.cutvalue = null; - this$static.edges = null; - this$static.treeEdges = null; - this$static.edgeVisited = null; - this$static.lowestPoID = null; - this$static.poID = null; - this$static.sources = null; - this$static.subtreeNodesStack = null; - $done_0(monitor); -} - -function $feasibleTree(this$static){ - var e, node, node$iterator, slack; - $layeringTopologicalNumbering(this$static, this$static.sources); - if (this$static.edges.array.length > 0) { - fill_3(this$static.edgeVisited); - while ($tightTreeDFS(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)) < this$static.graph_0.nodes.array.length) { - e = $minimalSlack(this$static); - slack = e.target.layer - e.source.layer - e.delta; - e.target.treeNode && (slack = -slack); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.treeNode && (node.layer += slack); - } - fill_3(this$static.edgeVisited); - } - fill_3(this$static.edgeVisited); - $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); - $cutvalues(this$static); - } -} - -function $initialize(this$static){ - var counter, edge, edge$iterator, index_0, n, n$iterator, node, node$iterator, numEdges, numNodes, theEdges; - numNodes = this$static.graph_0.nodes.array.length; - for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 121); - n.treeNode = false; - } - this$static.poID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); - this$static.lowestPoID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); - this$static.sources = new ArrayList; - index_0 = 0; - theEdges = new ArrayList; - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.internalId = index_0++; - node.incomingEdges.list.array.length == 0 && $add_3(this$static.sources, node); - $addAll_2(theEdges, node.outgoingEdges); - } - counter = 0; - for (edge$iterator = new ArrayList$1(theEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - edge.internalId = counter++; - edge.treeEdge = false; - } - numEdges = theEdges.array.length; - if (this$static.cutvalue == null || this$static.cutvalue.length < numEdges) { - this$static.cutvalue = initUnidimensionalArray(D_classLit, $intern_65, 25, numEdges, 15, 1); - this$static.edgeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, numEdges, 16, 1); - } - else { - fill_3(this$static.edgeVisited); - } - this$static.edges = theEdges; - this$static.treeEdges = new LinkedHashSet_0(capacity_0(this$static.edges.array.length)); - this$static.postOrder = 1; -} - -function $isInHead(this$static, node, edge){ - var source, target; - source = edge.source; - target = edge.target; - if (this$static.lowestPoID[source.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[source.internalId] && this$static.lowestPoID[target.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[target.internalId]) { - if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { - return false; - } - return true; - } - if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { - return true; - } - return false; -} - -function $layeringTopologicalNumbering(this$static, initialRootNodes){ - var edge, edge$iterator, incident, node, node$iterator, roots, target; - incident = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.graph_0.nodes.array.length, 15, 1); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - incident[node.internalId] += node.incomingEdges.list.array.length; - } - roots = newLinkedList(initialRootNodes); - while (roots.size_0 != 0) { - node = castTo(roots.size_0 == 0?null:(checkCriticalElement(roots.size_0 != 0) , $removeNode_0(roots, roots.header.next_0)), 121); - for (edge$iterator = unmodifiableIterator(new ArrayList$1(node.outgoingEdges.list)); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 213); - target = edge.target; - target.layer = $wnd.Math.max(target.layer, node.layer + edge.delta); - --incident[target.internalId]; - incident[target.internalId] == 0 && ($addNode_0(roots, target, roots.tail.prev, roots.tail) , true); - } - } -} - -function $leaveEdge(this$static){ - var edge, edge$iterator; - for (edge$iterator = this$static.treeEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 213); - if (edge.treeEdge && this$static.cutvalue[edge.internalId] < -1.0E-10) { - return edge; - } - } - return null; -} - -function $minimalSlack(this$static){ - var curSlack, edge, edge$iterator, minSlack, minSlackEdge; - minSlack = $intern_0; - minSlackEdge = null; - for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (edge.source.treeNode ^ edge.target.treeNode) { - curSlack = edge.target.layer - edge.source.layer - edge.delta; - if (curSlack < minSlack) { - minSlack = curSlack; - minSlackEdge = edge; - } - } - } - return minSlackEdge; -} - -function $minimalSpan(node){ - var currentSpan, edge, edge$iterator, minSpanIn, minSpanOut; - minSpanOut = $intern_0; - minSpanIn = $intern_0; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - currentSpan = edge.target.layer - edge.source.layer; - edge.target == node && currentSpan < minSpanIn?(minSpanIn = currentSpan):currentSpan < minSpanOut && (minSpanOut = currentSpan); - } - minSpanIn == $intern_0 && (minSpanIn = -1); - minSpanOut == $intern_0 && (minSpanOut = -1); - return new Pair(valueOf_4(minSpanIn), valueOf_4(minSpanOut)); -} - -function $normalize(this$static){ - var filling, highest, layerID, lowest, node, node$iterator, node$iterator0, nodeCntInLayer, nodeCntInLayer$array, nodeCntInLayer$index, nodeCntInLayer$max; - highest = $intern_42; - lowest = $intern_0; - for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 121); - lowest = $wnd.Math.min(lowest, node.layer); - highest = $wnd.Math.max(highest, node.layer); - } - filling = initUnidimensionalArray(I_classLit, $intern_48, 25, highest - lowest + 1, 15, 1); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.layer -= lowest; - ++filling[node.layer]; - } - layerID = 0; - if (this$static.previousLayeringNodeCounts != null) { - for (nodeCntInLayer$array = this$static.previousLayeringNodeCounts , nodeCntInLayer$index = 0 , nodeCntInLayer$max = nodeCntInLayer$array.length; nodeCntInLayer$index < nodeCntInLayer$max; ++nodeCntInLayer$index) { - nodeCntInLayer = nodeCntInLayer$array[nodeCntInLayer$index]; - filling[layerID++] += nodeCntInLayer; - if (filling.length == layerID) { - break; - } - } - } - return filling; -} - -function $postorderTraversal(this$static, node){ - var edge, edge$iterator, lowest; - lowest = $intern_0; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (edge.treeEdge && !this$static.edgeVisited[edge.internalId]) { - this$static.edgeVisited[edge.internalId] = true; - lowest = $wnd.Math.min(lowest, $postorderTraversal(this$static, $getOther(edge, node))); - } - } - this$static.poID[node.internalId] = this$static.postOrder; - this$static.lowestPoID[node.internalId] = $wnd.Math.min(lowest, this$static.postOrder++); - return this$static.lowestPoID[node.internalId]; -} - -function $reattachSubtrees(this$static){ - var edge, leafy, node, placed; - while (!$isEmpty(this$static.subtreeNodesStack)) { - leafy = castTo($removeFirst(this$static.subtreeNodesStack), 46); - node = castTo(leafy.first, 121); - edge = castTo(leafy.second, 213); - placed = $getOther(edge, node); - if (edge.target == node) { - $add_11(placed.outgoingEdges, edge); - node.layer = placed.layer + edge.delta; - } - else { - $add_11(placed.incomingEdges, edge); - node.layer = placed.layer - edge.delta; - } - $add_3(this$static.graph_0.nodes, node); - } -} - -function $removeSubtrees(this$static){ - var edge, isOutEdge, leafs, leafy, node, node$iterator, other; - this$static.subtreeNodesStack = new ArrayDeque; - leafs = new LinkedList; - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - $getConnectedEdges(node).array.length == 1 && ($addNode_0(leafs, node, leafs.tail.prev, leafs.tail) , true); - } - while (leafs.size_0 != 0) { - node = castTo(leafs.size_0 == 0?null:(checkCriticalElement(leafs.size_0 != 0) , $removeNode_0(leafs, leafs.header.next_0)), 121); - if ($getConnectedEdges(node).array.length == 0) { - continue; - } - edge = castTo($get_11($getConnectedEdges(node), 0), 213); - isOutEdge = node.outgoingEdges.list.array.length > 0; - other = $getOther(edge, node); - isOutEdge?$remove_29(other.incomingEdges, edge):$remove_29(other.outgoingEdges, edge); - $getConnectedEdges(other).array.length == 1 && ($addNode_0(leafs, other, leafs.tail.prev, leafs.tail) , true); - leafy = new Pair(node, edge); - $addFirst(this$static.subtreeNodesStack, leafy); - $remove_12(this$static.graph_0.nodes, node); - } -} - -function $tightTreeDFS(this$static, node){ - var edge, edge$iterator, nodeCount, opposite; - nodeCount = 1; - node.treeNode = true; - opposite = null; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (!this$static.edgeVisited[edge.internalId]) { - this$static.edgeVisited[edge.internalId] = true; - opposite = $getOther(edge, node); - if (edge.treeEdge) { - nodeCount += $tightTreeDFS(this$static, opposite); - } - else if (!opposite.treeNode && edge.delta == edge.target.layer - edge.source.layer) { - edge.treeEdge = true; - $add_6(this$static.treeEdges, edge); - nodeCount += $tightTreeDFS(this$static, opposite); - } - } - } - return nodeCount; -} - -function $withBalancing(this$static, doBalance){ - this$static.balance = doBalance; - return this$static; -} - -function $withIterationLimit(this$static, limit){ - this$static.iterationLimit = limit; - return this$static; -} - -function $withPreviousLayering(this$static, considerPreviousLayering){ - this$static.previousLayeringNodeCounts = considerPreviousLayering; - return this$static; -} - -function NetworkSimplex(){ -} - -function forGraph(graph){ - var ns; - ns = new NetworkSimplex; - ns.graph_0 = graph; - return ns; -} - -defineClass(1630, 1, {}, NetworkSimplex); -_.balance = false; -_.iterationLimit = $intern_0; -_.postOrder = 0; -var Lorg_eclipse_elk_alg_common_networksimplex_NetworkSimplex_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NetworkSimplex', 1630); -function calculateLabelAndNodeSizes(adapter){ - $forEach_1(adapter.getNodes(), new NodeLabelAndSizeCalculator$lambda$0$Type(adapter)); -} - -function sortPortLists(adapter){ - var node, node$iterator; - for (node$iterator = new ArrayList$1($getNodes(adapter)); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 680); - node.sortPortList(); - } -} - -function computeInsideNodeLabelPadding(node, layoutDirection){ - var col, col$array, col$array0, col$index, col$index0, col$max, col$max0, labelCell, labelCellContainer, nodeContext, padding, row, row$array, row$array0, row$index, row$index0, row$max, row$max0; - nodeContext = new NodeContext(node); - createNodeLabelCells(nodeContext, !(layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1)); - labelCellContainer = nodeContext.insideNodeLabelContainer; - padding = new ElkPadding; - for (col$array0 = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , col$index0 = 0 , col$max0 = col$array0.length; col$index0 < col$max0; ++col$index0) { - col = col$array0[col$index0]; - labelCell = $getCell(labelCellContainer, BEGIN, col); - !!labelCell && (padding.top_0 = $wnd.Math.max(padding.top_0, labelCell.getMinimumHeight())); - } - for (col$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , col$index = 0 , col$max = col$array.length; col$index < col$max; ++col$index) { - col = col$array[col$index]; - labelCell = $getCell(labelCellContainer, END, col); - !!labelCell && (padding.bottom = $wnd.Math.max(padding.bottom, labelCell.getMinimumHeight())); - } - for (row$array0 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index0 = 0 , row$max0 = row$array0.length; row$index0 < row$max0; ++row$index0) { - row = row$array0[row$index0]; - labelCell = $getCell(labelCellContainer, row, BEGIN); - !!labelCell && (padding.left = $wnd.Math.max(padding.left, labelCell.getMinimumWidth())); - } - for (row$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - labelCell = $getCell(labelCellContainer, row, END); - !!labelCell && (padding.right = $wnd.Math.max(padding.right, labelCell.getMinimumWidth())); - } - if (padding.top_0 > 0) { - padding.top_0 += labelCellContainer.padding.top_0; - padding.top_0 += labelCellContainer.gap; - } - if (padding.bottom > 0) { - padding.bottom += labelCellContainer.padding.bottom; - padding.bottom += labelCellContainer.gap; - } - if (padding.left > 0) { - padding.left += labelCellContainer.padding.left; - padding.left += labelCellContainer.gap; - } - if (padding.right > 0) { - padding.right += labelCellContainer.padding.right; - padding.right += labelCellContainer.gap; - } - return padding; -} - -function process(graph, node, applyStuff, ignoreInsidePortLabels){ - var horizontalLayoutMode, layoutDirection, minSize, nodeContext, outerNodeLabelsOverhang; - nodeContext = new NodeContext(node); - createPortContexts(nodeContext, ignoreInsidePortLabels); - horizontalLayoutMode = true; - if (!!graph && graph.hasProperty(($clinit_CoreOptions() , DIRECTION_0))) { - layoutDirection = castTo(graph.getProperty(($clinit_CoreOptions() , DIRECTION_0)), 103); - horizontalLayoutMode = layoutDirection == ($clinit_Direction_0() , UNDEFINED_2) || layoutDirection == LEFT_6 || layoutDirection == RIGHT_6; - } - createNodeLabelCellContainers(nodeContext, false); - $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, false, horizontalLayoutMode)); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, ($clinit_ContainerArea() , BEGIN), ($clinit_PortSide() , NORTH_3)); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, END, SOUTH_2); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, BEGIN, WEST_2); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, END, EAST_2); - setupNorthOrSouthPortLabelCell(nodeContext, NORTH_3); - setupNorthOrSouthPortLabelCell(nodeContext, SOUTH_2); - setupEastOrWestPortLabelCell(nodeContext, EAST_2); - setupEastOrWestPortLabelCell(nodeContext, WEST_2); - $clinit_NodeLabelAndSizeUtilities(); - minSize = nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE)) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))?getMinimumNodeOrClientAreaSize(nodeContext):null; - !!minSize && $setCenterCellMinimumSize(nodeContext.insideNodeLabelContainer, minSize); - setupNodePaddingForPortsWithOffset(nodeContext); - calculateHorizontalPortPlacementSize(nodeContext); - calculateVerticalPortPlacementSize(nodeContext); - configureCellSystemSizeContributions(nodeContext); - setNodeWidth(nodeContext); - placeHorizontalPorts(nodeContext); - placePortLabels(nodeContext, NORTH_3); - placePortLabels(nodeContext, SOUTH_2); - updateVerticalInsidePortLabelCellPadding(nodeContext); - setNodeHeight(nodeContext); - if (!applyStuff) { - return nodeContext.nodeSize; - } - offsetSouthernPortsByNodeSize(nodeContext); - placeVerticalPorts(nodeContext); - placePortLabels(nodeContext, EAST_2); - placePortLabels(nodeContext, WEST_2); - outerNodeLabelsOverhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); - placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, NORTH_3); - placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, SOUTH_2); - placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, EAST_2); - placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, WEST_2); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$2(nodeContext.nodeLabelCells), 0)), new LabelPlacer$lambda$0$Type); - $forEach_3($filter(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new LabelPlacer$lambda$1$Type), new LabelPlacer$lambda$2$Type); - setNodePadding(nodeContext); - nodeContext.node.setSize(nodeContext.nodeSize); - $forEach_3(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new NodeLabelAndSizeUtilities$lambda$0$Type); - return nodeContext.nodeSize; -} - -function NodeLabelAndSizeCalculator$lambda$0$Type(graph_0){ - this.graph_0 = graph_0; -} - -defineClass(1294, 1, $intern_19, NodeLabelAndSizeCalculator$lambda$0$Type); -_.accept = function accept_45(arg0){ - process(this.graph_0, castTo(arg0, 680), true, false); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_NodeLabelAndSizeCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeLabelAndSizeCalculator/lambda$0$Type', 1294); -function $computeLabelBox(labelBox, label_0, incomingEdge, node, port, portLabelSpace, labelSpacing){ - labelBox.x_0 = node.getPosition().x_0; - labelBox.y_0 = node.getPosition().y_0; - if (port) { - labelBox.x_0 += port.getPosition().x_0; - labelBox.y_0 += port.getPosition().y_0; - } - labelBox.width_0 = label_0.getSize().x_0; - labelBox.height = label_0.getSize().y_0; - if (!port) { - incomingEdge?(labelBox.x_0 -= labelSpacing + label_0.getSize().x_0):(labelBox.x_0 += node.getSize().x_0 + labelSpacing); - } - else { - switch (port.getSide().ordinal) { - case 0: - case 2: - labelBox.x_0 += port.getSize().x_0 + labelSpacing + portLabelSpace.x_0 + labelSpacing; - break; - case 4: - labelBox.x_0 -= labelSpacing + portLabelSpace.x_0 + labelSpacing + label_0.getSize().x_0; - break; - case 1: - labelBox.x_0 += port.getSize().x_0 + labelSpacing; - labelBox.y_0 -= labelSpacing + portLabelSpace.y_0 + labelSpacing + label_0.getSize().y_0; - break; - case 3: - labelBox.x_0 += port.getSize().x_0 + labelSpacing; - labelBox.y_0 += port.getSize().y_0 + labelSpacing + portLabelSpace.y_0 + labelSpacing; - } - } -} - -function $excludeEdgeHeadTailLabels(this$static){ - this$static.includeEdgeHeadTailLabels = false; - return this$static; -} - -function $process(this$static){ - var node, node$iterator, spacing; - spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); - for (node$iterator = new ArrayList$1(this$static.adapter.getNodes()); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 680); - $processNode_0(this$static, node, spacing); - } -} - -function $processEdgeHeadTailLabels(boundingBox, outgoingEdges, incomingEdges, node, port, portLabelSpace, labelSpacing){ - var edge, edge$iterator, edge$iterator0, label_0, label$iterator, labelBox; - labelBox = new ElkRectangle; - for (edge$iterator0 = outgoingEdges.iterator_0(); edge$iterator0.hasNext_0();) { - edge = castTo(edge$iterator0.next_1(), 839); - for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL))) { - $computeLabelBox(labelBox, label_0, false, node, port, portLabelSpace, labelSpacing); - $union(boundingBox, labelBox); - } - } - } - for (edge$iterator = incomingEdges.iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 839); - for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { - $computeLabelBox(labelBox, label_0, true, node, port, portLabelSpace, labelSpacing); - $union(boundingBox, labelBox); - } - } - } -} - -function $processNode(this$static, node){ - var spacing; - spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); - $processNode_0(this$static, node, spacing); -} - -function $processNode_0(this$static, node, labelSpacing){ - var boundingBox, elementBox, label_0, label$iterator, margin, port, port$iterator, portX, portY, requiredPortLabelSpace; - boundingBox = new ElkRectangle_0(node.getPosition().x_0, node.getPosition().y_0, node.getSize().x_0, node.getSize().y_0); - elementBox = new ElkRectangle; - if (this$static.includeLabels) { - for (label$iterator = new ArrayList$1(node.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - elementBox.x_0 = label_0.getPosition().x_0 + node.getPosition().x_0; - elementBox.y_0 = label_0.getPosition().y_0 + node.getPosition().y_0; - elementBox.width_0 = label_0.getSize().x_0; - elementBox.height = label_0.getSize().y_0; - $union(boundingBox, elementBox); - } - } - for (port$iterator = new ArrayList$1(node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 838); - portX = port.getPosition().x_0 + node.getPosition().x_0; - portY = port.getPosition().y_0 + node.getPosition().y_0; - if (this$static.includePorts) { - elementBox.x_0 = portX; - elementBox.y_0 = portY; - elementBox.width_0 = port.getSize().x_0; - elementBox.height = port.getSize().y_0; - $union(boundingBox, elementBox); - } - if (this$static.includePortLabels) { - for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - elementBox.x_0 = label_0.getPosition().x_0 + portX; - elementBox.y_0 = label_0.getPosition().y_0 + portY; - elementBox.width_0 = label_0.getSize().x_0; - elementBox.height = label_0.getSize().y_0; - $union(boundingBox, elementBox); - } - } - if (this$static.includeEdgeHeadTailLabels) { - requiredPortLabelSpace = new KVector_1(-labelSpacing, -labelSpacing); - if (castTo(node.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).contains(($clinit_PortLabelPlacement() , OUTSIDE_0))) { - for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - requiredPortLabelSpace.x_0 += label_0.getSize().x_0 + labelSpacing; - requiredPortLabelSpace.y_0 += label_0.getSize().y_0 + labelSpacing; - } - } - requiredPortLabelSpace.x_0 = $wnd.Math.max(requiredPortLabelSpace.x_0, 0); - requiredPortLabelSpace.y_0 = $wnd.Math.max(requiredPortLabelSpace.y_0, 0); - $processEdgeHeadTailLabels(boundingBox, port.getOutgoingEdges(), port.getIncomingEdges(), node, port, requiredPortLabelSpace, labelSpacing); - } - } - this$static.includeEdgeHeadTailLabels && $processEdgeHeadTailLabels(boundingBox, node.getOutgoingEdges(), node.getIncomingEdges(), node, null, null, labelSpacing); - margin = new ElkMargin_2(node.getMargin()); - margin.top_0 = $wnd.Math.max(0, node.getPosition().y_0 - boundingBox.y_0); - margin.bottom = $wnd.Math.max(0, boundingBox.y_0 + boundingBox.height - (node.getPosition().y_0 + node.getSize().y_0)); - margin.left = $wnd.Math.max(0, node.getPosition().x_0 - boundingBox.x_0); - margin.right = $wnd.Math.max(0, boundingBox.x_0 + boundingBox.width_0 - (node.getPosition().x_0 + node.getSize().x_0)); - node.setMargin(margin); -} - -function NodeMarginCalculator(adapter){ - this.adapter = adapter; -} - -defineClass(558, 1, {}, NodeMarginCalculator); -_.includeEdgeHeadTailLabels = true; -_.includeLabels = true; -_.includePortLabels = true; -_.includePorts = true; -var Lorg_eclipse_elk_alg_common_nodespacing_NodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeMarginCalculator', 558); -function $setContributesToMinimumHeight(this$static, contributesToMinimumHeight){ - this$static.contributesToMinimumHeight = contributesToMinimumHeight; -} - -function Cell(){ - this.padding = new ElkPadding; - this.cellRectangle = new ElkRectangle; -} - -defineClass(212, 1, {212:1}); -_.contributesToMinimumHeight = false; -_.contributesToMinimumWidth = false; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'Cell', 212); -function $getMinimumHeight(this$static){ - var padding; - padding = this$static.padding; - return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; -} - -function AtomicCell(){ - Cell.call(this); - this.minimumContentAreaSize = new KVector; -} - -defineClass(124, 212, {124:1, 212:1}, AtomicCell); -_.getMinimumHeight = function getMinimumHeight(){ - return $getMinimumHeight(this); -} -; -_.getMinimumWidth = function getMinimumWidth(){ - var padding; - padding = this.padding; - return this.minimumContentAreaSize.x_0 + padding.left + padding.right; -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_AtomicCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'AtomicCell', 124); -function $clinit_ContainerArea(){ - $clinit_ContainerArea = emptyMethod; - BEGIN = new ContainerArea('BEGIN', 0); - CENTER = new ContainerArea('CENTER', 1); - END = new ContainerArea('END', 2); -} - -function ContainerArea(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_17(name_0){ - $clinit_ContainerArea(); - return valueOf(($clinit_ContainerArea$Map() , $MAP_5), name_0); -} - -function values_23(){ - $clinit_ContainerArea(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]); -} - -defineClass(232, 22, {3:1, 35:1, 22:1, 232:1}, ContainerArea); -var BEGIN, CENTER, END; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerArea', 232, Ljava_lang_Enum_2_classLit, values_23, valueOf_17); -function $clinit_ContainerArea$Map(){ - $clinit_ContainerArea$Map = emptyMethod; - $MAP_5 = createValueOfMap(($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]))); -} - -var $MAP_5; -function $applyHorizontalLayout(cell, x_0, width_0){ - var cellRect; - if (cell) { - cellRect = cell.cellRectangle; - cellRect.x_0 = x_0; - cellRect.width_0 = width_0; - } -} - -function $applyVerticalLayout(cell, y_0, height){ - var cellRect; - if (cell) { - cellRect = cell.cellRectangle; - cellRect.y_0 = y_0; - cellRect.height = height; - } -} - -function ContainerCell(){ - Cell.call(this); -} - -function minHeightOfCell(cell, respectContributionFlag){ - if (!cell) { - return 0; - } - if (respectContributionFlag && !cell.contributesToMinimumHeight) { - return 0; - } - if (instanceOf(cell, 124)) { - if (castTo(cell, 124).minimumContentAreaSize.y_0 == 0) { - return 0; - } - } - return cell.getMinimumHeight(); -} - -function minWidthOfCell(cell, respectContributionFlag){ - if (!cell) { - return 0; - } - if (respectContributionFlag && !cell.contributesToMinimumWidth) { - return 0; - } - if (instanceOf(cell, 124)) { - if (castTo(cell, 124).minimumContentAreaSize.x_0 == 0) { - return 0; - } - } - return cell.getMinimumWidth(); -} - -defineClass(326, 212, $intern_92); -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerCell', 326); -function $clinit_GridContainerCell(){ - $clinit_GridContainerCell = emptyMethod; - ROWS = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length; - COLUMNS = ROWS; -} - -function $applyHeightToRow(this$static, row, y_0, rowHeights){ - var column; - for (column = 0; column < COLUMNS; column++) { - $applyVerticalLayout(this$static.cells_0[row.ordinal][column], y_0, rowHeights[row.ordinal]); - } -} - -function $applyWidthToColumn(this$static, column, x_0, colWidths){ - var row; - for (row = 0; row < ROWS; row++) { - $applyHorizontalLayout(this$static.cells_0[row][column.ordinal], x_0, colWidths[column.ordinal]); - } -} - -function $applyWidthsToRow(this$static, row, colWidths){ - var cellPadding, cellRectangle, centerWidth, freeContentAreaWidth; - cellRectangle = this$static.cellRectangle; - cellPadding = this$static.padding; - $applyWidthToColumn(this$static, ($clinit_ContainerArea() , BEGIN), cellRectangle.x_0 + cellPadding.left, colWidths); - $applyWidthToColumn(this$static, END, cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - colWidths[2], colWidths); - freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; - if (colWidths[0] > 0) { - colWidths[0] += this$static.gap; - freeContentAreaWidth -= colWidths[0]; - } - if (colWidths[2] > 0) { - colWidths[2] += this$static.gap; - freeContentAreaWidth -= colWidths[2]; - } - centerWidth = $wnd.Math.max(0, freeContentAreaWidth); - colWidths[1] = $wnd.Math.max(colWidths[1], freeContentAreaWidth); - $applyWidthToColumn(this$static, CENTER, cellRectangle.x_0 + cellPadding.left + colWidths[0] - (colWidths[1] - freeContentAreaWidth) / 2, colWidths); - if (row == CENTER) { - this$static.centerCellRect.width_0 = centerWidth; - this$static.centerCellRect.x_0 = cellRectangle.x_0 + cellPadding.left + (centerWidth - freeContentAreaWidth) / 2; - } -} - -function $getCell(this$static, row, col){ - return this$static.cells_0[row.ordinal][col.ordinal]; -} - -function $minColumnWidths(this$static, row, respectContributionFlag){ - var colWidths; - colWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minWidthOfColumn(this$static, ($clinit_ContainerArea() , BEGIN), row, respectContributionFlag), $minWidthOfColumn(this$static, CENTER, row, respectContributionFlag), $minWidthOfColumn(this$static, END, row, respectContributionFlag)]); - if (this$static.symmetrical) { - colWidths[0] = $wnd.Math.max(colWidths[0], colWidths[2]); - colWidths[2] = colWidths[0]; - } - return colWidths; -} - -function $minHeightOfRow(this$static, row, respectContributionFlag){ - var column, maxMinHeight; - maxMinHeight = 0; - for (column = 0; column < COLUMNS; column++) { - maxMinHeight = $wnd.Math.max(maxMinHeight, minHeightOfCell(this$static.cells_0[row.ordinal][column], respectContributionFlag)); - } - row == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinHeight = $wnd.Math.max(maxMinHeight, this$static.centerCellMinimumSize.y_0)); - return maxMinHeight; -} - -function $minRowHeights(this$static, respectContributionFlag){ - var rowHeights; - rowHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minHeightOfRow(this$static, ($clinit_ContainerArea() , BEGIN), respectContributionFlag), $minHeightOfRow(this$static, CENTER, respectContributionFlag), $minHeightOfRow(this$static, END, respectContributionFlag)]); - if (this$static.symmetrical) { - rowHeights[0] = $wnd.Math.max(rowHeights[0], rowHeights[2]); - rowHeights[2] = rowHeights[0]; - } - return rowHeights; -} - -function $minWidthOfColumn(this$static, column, row, respectContributionFlag){ - var maxMinWidth, rowIndex; - maxMinWidth = 0; - if (!row) { - for (rowIndex = 0; rowIndex < ROWS; rowIndex++) { - maxMinWidth = $wnd.Math.max(maxMinWidth, minWidthOfCell(this$static.cells_0[rowIndex][column.ordinal], respectContributionFlag)); - } - } - else { - maxMinWidth = minWidthOfCell(this$static.cells_0[row.ordinal][column.ordinal], respectContributionFlag); - } - column == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinWidth = $wnd.Math.max(maxMinWidth, this$static.centerCellMinimumSize.x_0)); - return maxMinWidth; -} - -function $setCell(this$static, row, col, cell){ - setCheck(this$static.cells_0[row.ordinal], col.ordinal, cell); -} - -function $setCenterCellMinimumSize(this$static, minimumSize){ - this$static.centerCellMinimumSize = new KVector_2(minimumSize); -} - -function $sumWithGaps(this$static, values){ - var activeComponents, sum, val, val$array, val$index, val$max; - sum = 0; - activeComponents = 0; - for (val$array = values , val$index = 0 , val$max = val$array.length; val$index < val$max; ++val$index) { - val = val$array[val$index]; - if (val > 0) { - sum += val; - ++activeComponents; - } - } - activeComponents > 1 && (sum += this$static.gap * (activeComponents - 1)); - return sum; -} - -function GridContainerCell(tabular, symmetrical, gap){ - $clinit_GridContainerCell(); - ContainerCell.call(this); - this.cells_0 = initMultidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, [$intern_16, $intern_93], [595, 212], 0, [ROWS, COLUMNS], 2); - this.centerCellRect = new ElkRectangle; - this.tabular = tabular; - this.symmetrical = symmetrical; - this.gap = gap; -} - -defineClass(1473, 326, $intern_92, GridContainerCell); -_.getMinimumHeight = function getMinimumHeight_0(){ - var height; - height = 0; - this.onlyCenterCellContributesToMinimumSize?this.centerCellMinimumSize?(height = this.centerCellMinimumSize.y_0):!!this.cells_0[1][1] && (height = this.cells_0[1][1].getMinimumHeight()):(height = $sumWithGaps(this, $minRowHeights(this, true))); - return height > 0?height + this.padding.top_0 + this.padding.bottom:0; -} -; -_.getMinimumWidth = function getMinimumWidth_0(){ - var area, area$array, area$index, area$max, width_0; - width_0 = 0; - if (this.onlyCenterCellContributesToMinimumSize) { - this.centerCellMinimumSize?(width_0 = this.centerCellMinimumSize.x_0):!!this.cells_0[1][1] && (width_0 = this.cells_0[1][1].getMinimumWidth()); - } - else if (this.tabular) { - width_0 = $sumWithGaps(this, $minColumnWidths(this, null, true)); - } - else { - for (area$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { - area = area$array[area$index]; - width_0 = $wnd.Math.max(width_0, $sumWithGaps(this, $minColumnWidths(this, area, true))); - } - } - return width_0 > 0?width_0 + this.padding.left + this.padding.right:0; -} -; -_.layoutChildrenHorizontally = function layoutChildrenHorizontally(){ - var colWidths, row, row$array, row$index, row$max; - if (this.tabular) { - colWidths = $minColumnWidths(this, null, false); - for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - $applyWidthsToRow(this, row, colWidths); - } - } - else { - for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - colWidths = $minColumnWidths(this, row, false); - $applyWidthsToRow(this, row, colWidths); - } - } -} -; -_.layoutChildrenVertically = function layoutChildrenVertically(){ - var cellPadding, cellRectangle, freeContentAreaHeight, rowHeights; - cellRectangle = this.cellRectangle; - cellPadding = this.padding; - rowHeights = $minRowHeights(this, false); - $applyHeightToRow(this, ($clinit_ContainerArea() , BEGIN), cellRectangle.y_0 + cellPadding.top_0, rowHeights); - $applyHeightToRow(this, END, cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - rowHeights[2], rowHeights); - freeContentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; - if (rowHeights[0] > 0) { - rowHeights[0] += this.gap; - freeContentAreaHeight -= rowHeights[0]; - } - if (rowHeights[2] > 0) { - rowHeights[2] += this.gap; - freeContentAreaHeight -= rowHeights[2]; - } - this.centerCellRect.height = $wnd.Math.max(0, freeContentAreaHeight); - this.centerCellRect.y_0 = cellRectangle.y_0 + cellPadding.top_0 + (this.centerCellRect.height - freeContentAreaHeight) / 2; - rowHeights[1] = $wnd.Math.max(rowHeights[1], freeContentAreaHeight); - $applyHeightToRow(this, CENTER, cellRectangle.y_0 + cellPadding.top_0 + rowHeights[0] - (rowHeights[1] - freeContentAreaHeight) / 2, rowHeights); -} -; -_.centerCellMinimumSize = null; -_.gap = 0; -_.onlyCenterCellContributesToMinimumSize = false; -_.symmetrical = false; -_.tabular = false; -var COLUMNS = 0, ROWS = 0; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_GridContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'GridContainerCell', 1473); -function $clinit_HorizontalLabelAlignment(){ - $clinit_HorizontalLabelAlignment = emptyMethod; - LEFT = new HorizontalLabelAlignment('LEFT', 0); - CENTER_0 = new HorizontalLabelAlignment('CENTER', 1); - RIGHT = new HorizontalLabelAlignment('RIGHT', 2); -} - -function HorizontalLabelAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_18(name_0){ - $clinit_HorizontalLabelAlignment(); - return valueOf(($clinit_HorizontalLabelAlignment$Map() , $MAP_6), name_0); -} - -function values_24(){ - $clinit_HorizontalLabelAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]); -} - -defineClass(461, 22, {3:1, 35:1, 22:1, 461:1}, HorizontalLabelAlignment); -var CENTER_0, LEFT, RIGHT; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'HorizontalLabelAlignment', 461, Ljava_lang_Enum_2_classLit, values_24, valueOf_18); -function $clinit_HorizontalLabelAlignment$Map(){ - $clinit_HorizontalLabelAlignment$Map = emptyMethod; - $MAP_6 = createValueOfMap(($clinit_HorizontalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]))); -} - -var $MAP_6; -function $$init_5(this$static){ - this$static.horizontalAlignment = ($clinit_HorizontalLabelAlignment() , CENTER_0); - this$static.verticalAlignment = ($clinit_VerticalLabelAlignment() , CENTER_1); - this$static.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); - this$static.minimumContentAreaSize = new KVector; -} - -function $addLabel(this$static, label_0){ - var labelSize; - $add_3(this$static.labels, label_0); - labelSize = label_0.getSize(); - if (this$static.horizontalLayoutMode) { - this$static.minimumContentAreaSize.x_0 = $wnd.Math.max(this$static.minimumContentAreaSize.x_0, labelSize.x_0); - this$static.minimumContentAreaSize.y_0 += labelSize.y_0; - this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.y_0 += this$static.gap); - } - else { - this$static.minimumContentAreaSize.x_0 += labelSize.x_0; - this$static.minimumContentAreaSize.y_0 = $wnd.Math.max(this$static.minimumContentAreaSize.y_0, labelSize.y_0); - this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.x_0 += this$static.gap); - } -} - -function $applyHorizontalModeLabelLayout(this$static){ - var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, yPos; - cellRect = this$static.cellRectangle; - cellPadding = this$static.padding; - yPos = cellRect.y_0; - this$static.verticalAlignment == ($clinit_VerticalLabelAlignment() , CENTER_1)?(yPos += (cellRect.height - this$static.minimumContentAreaSize.y_0) / 2):this$static.verticalAlignment == BOTTOM && (yPos += cellRect.height - this$static.minimumContentAreaSize.y_0); - for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - labelSize = label_0.getSize(); - labelPos = new KVector; - labelPos.y_0 = yPos; - yPos += labelSize.y_0 + this$static.gap; - switch (this$static.horizontalAlignment.ordinal) { - case 0: - labelPos.x_0 = cellRect.x_0 + cellPadding.left; - break; - case 1: - labelPos.x_0 = cellRect.x_0 + cellPadding.left + (cellRect.width_0 - labelSize.x_0) / 2; - break; - case 2: - labelPos.x_0 = cellRect.x_0 + cellRect.width_0 - cellPadding.right - labelSize.x_0; - } - label_0.setPosition(labelPos); - } -} - -function $applyLabelLayout(this$static){ - this$static.horizontalLayoutMode?$applyHorizontalModeLabelLayout(this$static):$applyVerticalModeLabelLayout(this$static); -} - -function $applyVerticalModeLabelLayout(this$static){ - var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, xPos; - cellRect = this$static.cellRectangle; - cellPadding = this$static.padding; - xPos = cellRect.x_0; - this$static.horizontalAlignment == ($clinit_HorizontalLabelAlignment() , CENTER_0)?(xPos += (cellRect.width_0 - this$static.minimumContentAreaSize.x_0) / 2):this$static.horizontalAlignment == RIGHT && (xPos += cellRect.width_0 - this$static.minimumContentAreaSize.x_0); - for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - labelSize = label_0.getSize(); - labelPos = new KVector; - labelPos.x_0 = xPos; - xPos += labelSize.x_0 + this$static.gap; - switch (this$static.verticalAlignment.ordinal) { - case 0: - labelPos.y_0 = cellRect.y_0 + cellPadding.top_0; - break; - case 1: - labelPos.y_0 = cellRect.y_0 + cellPadding.top_0 + (cellRect.height - labelSize.y_0) / 2; - break; - case 2: - labelPos.y_0 = cellRect.y_0 + cellRect.height - cellPadding.bottom - labelSize.y_0; - } - label_0.setPosition(labelPos); - } -} - -function $getMinimumHeight_0(this$static){ - var padding; - padding = this$static.padding; - return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; -} - -function $getMinimumWidth(this$static){ - var padding; - padding = this$static.padding; - return this$static.minimumContentAreaSize.x_0 + padding.left + padding.right; -} - -function $setHorizontalAlignment(this$static, newHorizontalAlignment){ - requireNonNull(newHorizontalAlignment, 'Horizontal alignment cannot be null'); - this$static.horizontalAlignment = newHorizontalAlignment; - return this$static; -} - -function $setVerticalAlignment(this$static, newVerticalAlignment){ - requireNonNull(newVerticalAlignment, 'Vertical alignment cannot be null'); - this$static.verticalAlignment = newVerticalAlignment; - return this$static; -} - -function LabelCell(gap){ - Cell.call(this); - $$init_5(this); - this.gap = gap; - this.horizontalLayoutMode = true; -} - -function LabelCell_0(gap, nodeLabelLocation, horizontalLayoutMode){ - Cell.call(this); - $$init_5(this); - this.gap = gap; - this.horizontalLayoutMode = horizontalLayoutMode; - this.horizontalAlignment = nodeLabelLocation.horizontalAlignment; - this.verticalAlignment = nodeLabelLocation.verticalAlignment; -} - -function LabelCell_1(gap, horizontalLayoutMode){ - Cell.call(this); - $$init_5(this); - this.gap = gap; - this.horizontalLayoutMode = horizontalLayoutMode; -} - -defineClass(306, 212, {212:1, 306:1}, LabelCell, LabelCell_0, LabelCell_1); -_.getMinimumHeight = function getMinimumHeight_1(){ - return $getMinimumHeight_0(this); -} -; -_.getMinimumWidth = function getMinimumWidth_1(){ - return $getMinimumWidth(this); -} -; -_.gap = 0; -_.horizontalLayoutMode = false; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'LabelCell', 306); -function $getMinimumHeight_1(this$static){ - var activeCells, cellHeight, cellHeight$array, cellHeight$index, cellHeight$max, cellHeights, height; - height = 0; - if (this$static.containerMode == 0) { - cellHeights = $minCellHeights(this$static, true); - activeCells = 0; - for (cellHeight$array = cellHeights , cellHeight$index = 0 , cellHeight$max = cellHeight$array.length; cellHeight$index < cellHeight$max; ++cellHeight$index) { - cellHeight = cellHeight$array[cellHeight$index]; - if (cellHeight > 0) { - height += cellHeight; - ++activeCells; - } - } - activeCells > 1 && (height += this$static.gap * (activeCells - 1)); - } - else { - height = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$2$Type), new StripContainerCell$lambda$3$Type))); - } - return height > 0?height + this$static.padding.top_0 + this$static.padding.bottom:0; -} - -function $getMinimumWidth_0(this$static){ - var activeCells, cellWidth, cellWidth$array, cellWidth$index, cellWidth$max, cellWidths, width_0; - width_0 = 0; - if (this$static.containerMode == 0) { - width_0 = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$0$Type), new StripContainerCell$lambda$1$Type))); - } - else { - cellWidths = $minCellWidths(this$static, true); - activeCells = 0; - for (cellWidth$array = cellWidths , cellWidth$index = 0 , cellWidth$max = cellWidth$array.length; cellWidth$index < cellWidth$max; ++cellWidth$index) { - cellWidth = cellWidth$array[cellWidth$index]; - if (cellWidth > 0) { - width_0 += cellWidth; - ++activeCells; - } - } - activeCells > 1 && (width_0 += this$static.gap * (activeCells - 1)); - } - return width_0 > 0?width_0 + this$static.padding.left + this$static.padding.right:0; -} - -function $layoutChildrenHorizontally(this$static){ - var cellPadding, cellRectangle, cellWidths, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, freeContentAreaWidth, width_0, xPos; - cellRectangle = this$static.cellRectangle; - cellPadding = this$static.padding; - if (this$static.containerMode == 0) { - xPos = cellRectangle.x_0 + cellPadding.left; - width_0 = cellRectangle.width_0 - cellPadding.left - cellPadding.right; - for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { - childCell = childCell$array0[childCell$index0]; - $applyHorizontalLayout(childCell, xPos, width_0); - } - } - else { - cellWidths = $minCellWidths(this$static, false); - $applyHorizontalLayout(this$static.cells_0[0], cellRectangle.x_0 + cellPadding.left, cellWidths[0]); - $applyHorizontalLayout(this$static.cells_0[2], cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - cellWidths[2], cellWidths[2]); - freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; - if (cellWidths[0] > 0) { - freeContentAreaWidth -= cellWidths[0] + this$static.gap; - cellWidths[0] += this$static.gap; - } - cellWidths[2] > 0 && (freeContentAreaWidth -= cellWidths[2] + this$static.gap); - cellWidths[1] = $wnd.Math.max(cellWidths[1], freeContentAreaWidth); - $applyHorizontalLayout(this$static.cells_0[1], cellRectangle.x_0 + cellPadding.left + cellWidths[0] - (cellWidths[1] - freeContentAreaWidth) / 2, cellWidths[1]); - } - for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { - childCell = childCell$array[childCell$index]; - instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenHorizontally(); - } -} - -function $layoutChildrenVertically(this$static){ - var cellHeights, cellPadding, cellRectangle, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, contentAreaFreeHeight, contentAreaHeight, height, yPos; - cellRectangle = this$static.cellRectangle; - cellPadding = this$static.padding; - if (this$static.containerMode == 0) { - cellHeights = $minCellHeights(this$static, false); - $applyVerticalLayout(this$static.cells_0[0], cellRectangle.y_0 + cellPadding.top_0, cellHeights[0]); - $applyVerticalLayout(this$static.cells_0[2], cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - cellHeights[2], cellHeights[2]); - contentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; - contentAreaFreeHeight = contentAreaHeight; - if (cellHeights[0] > 0) { - cellHeights[0] += this$static.gap; - contentAreaFreeHeight -= cellHeights[0]; - } - cellHeights[2] > 0 && (contentAreaFreeHeight -= cellHeights[2] + this$static.gap); - cellHeights[1] = $wnd.Math.max(cellHeights[1], contentAreaFreeHeight); - $applyVerticalLayout(this$static.cells_0[1], cellRectangle.y_0 + cellPadding.top_0 + cellHeights[0] - (cellHeights[1] - contentAreaFreeHeight) / 2, cellHeights[1]); - } - else { - yPos = cellRectangle.y_0 + cellPadding.top_0; - height = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; - for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { - childCell = childCell$array0[childCell$index0]; - $applyVerticalLayout(childCell, yPos, height); - } - } - for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { - childCell = childCell$array[childCell$index]; - instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenVertically(); - } -} - -function $minCellHeights(this$static, respectContributionFlag){ - var cellHeights; - cellHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minHeightOfCell(this$static.cells_0[0], respectContributionFlag), minHeightOfCell(this$static.cells_0[1], respectContributionFlag), minHeightOfCell(this$static.cells_0[2], respectContributionFlag)]); - if (this$static.symmetrical) { - cellHeights[0] = $wnd.Math.max(cellHeights[0], cellHeights[2]); - cellHeights[2] = cellHeights[0]; - } - return cellHeights; -} - -function $minCellWidths(this$static, respectContributionFlag){ - var cellWidths; - cellWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minWidthOfCell(this$static.cells_0[0], respectContributionFlag), minWidthOfCell(this$static.cells_0[1], respectContributionFlag), minWidthOfCell(this$static.cells_0[2], respectContributionFlag)]); - if (this$static.symmetrical) { - cellWidths[0] = $wnd.Math.max(cellWidths[0], cellWidths[2]); - cellWidths[2] = cellWidths[0]; - } - return cellWidths; -} - -function $setCell_0(this$static, area, cell){ - this$static.cells_0[area.ordinal] = cell; -} - -function StripContainerCell(mode, symmetrical, gap){ - ContainerCell.call(this); - this.cells_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, $intern_93, 212, ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length, 0, 1); - this.containerMode = mode; - this.symmetrical = symmetrical; - this.gap = gap; -} - -function lambda$0_9(cell_0){ - return !!cell_0 && cell_0.contributesToMinimumWidth; -} - -function lambda$2(cell_0){ - return !!cell_0 && cell_0.contributesToMinimumHeight; -} - -defineClass(244, 326, {212:1, 326:1, 244:1}, StripContainerCell); -_.getMinimumHeight = function getMinimumHeight_2(){ - return $getMinimumHeight_1(this); -} -; -_.getMinimumWidth = function getMinimumWidth_2(){ - return $getMinimumWidth_0(this); -} -; -_.layoutChildrenHorizontally = function layoutChildrenHorizontally_0(){ - $layoutChildrenHorizontally(this); -} -; -_.layoutChildrenVertically = function layoutChildrenVertically_0(){ - $layoutChildrenVertically(this); -} -; -_.containerMode = 0; -_.gap = 0; -_.symmetrical = false; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell', 244); -function StripContainerCell$lambda$0$Type(){ -} - -defineClass(1626, 1, $intern_39, StripContainerCell$lambda$0$Type); -_.test_0 = function test_7(arg0){ - return lambda$0_9(castTo(arg0, 212)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$0$Type', 1626); -function StripContainerCell$lambda$1$Type(){ -} - -defineClass(1627, 1, {}, StripContainerCell$lambda$1$Type); -_.applyAsDouble = function applyAsDouble(arg0){ - return castTo(arg0, 212).getMinimumWidth(); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$1$Type', 1627); -function StripContainerCell$lambda$2$Type(){ -} - -defineClass(1628, 1, $intern_39, StripContainerCell$lambda$2$Type); -_.test_0 = function test_8(arg0){ - return lambda$2(castTo(arg0, 212)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$2$Type', 1628); -function StripContainerCell$lambda$3$Type(){ -} - -defineClass(1629, 1, {}, StripContainerCell$lambda$3$Type); -_.applyAsDouble = function applyAsDouble_0(arg0){ - return castTo(arg0, 212).getMinimumHeight(); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$3$Type', 1629); -function $clinit_VerticalLabelAlignment(){ - $clinit_VerticalLabelAlignment = emptyMethod; - TOP = new VerticalLabelAlignment('TOP', 0); - CENTER_1 = new VerticalLabelAlignment('CENTER', 1); - BOTTOM = new VerticalLabelAlignment('BOTTOM', 2); -} - -function VerticalLabelAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_19(name_0){ - $clinit_VerticalLabelAlignment(); - return valueOf(($clinit_VerticalLabelAlignment$Map() , $MAP_7), name_0); -} - -function values_25(){ - $clinit_VerticalLabelAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]); -} - -defineClass(462, 22, {3:1, 35:1, 22:1, 462:1}, VerticalLabelAlignment); -var BOTTOM, CENTER_1, TOP; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'VerticalLabelAlignment', 462, Ljava_lang_Enum_2_classLit, values_25, valueOf_19); -function $clinit_VerticalLabelAlignment$Map(){ - $clinit_VerticalLabelAlignment$Map = emptyMethod; - $MAP_7 = createValueOfMap(($clinit_VerticalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]))); -} - -var $MAP_7; -function $getPortAlignment(this$static, portSide){ - var alignment; - alignment = null; - switch (portSide.ordinal) { - case 1: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_NORTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_NORTH_0), 249)); - break; - case 3: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_SOUTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_SOUTH_0), 249)); - break; - case 2: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_EAST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_EAST_0), 249)); - break; - case 4: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_WEST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_WEST_0), 249)); - } - !alignment && (alignment = castTo(this$static.node.getProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_DEFAULT)), 249)); - return alignment; -} - -function NodeContext(node){ - var symmetry; - this.portContexts = create(new NodeContext$0methodref$comparePortSides$Type, new NodeContext$1methodref$comparePortContexts$Type); - this.insidePortLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); - this.outsideNodeLabelContainers = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); - this.nodeLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit), 290)); - this.node = node; - this.nodeSize = new KVector_2(node.getSize()); - this.treatAsCompoundNode = node.isCompoundNode() || $booleanValue(castToBoolean(node.getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); - this.sizeConstraints = castTo(node.getProperty(($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); - this.sizeOptions = castTo(node.getProperty(NODE_SIZE_OPTIONS_6), 21); - this.portConstraints = castTo(node.getProperty(PORT_CONSTRAINTS_1), 98); - this.portLabelsPlacement = castTo(node.getProperty(PORT_LABELS_PLACEMENT_5), 21); - if (!isValid_1(this.portLabelsPlacement)) { - throw toJs(new UnsupportedConfigurationException_0('Invalid port label placement: ' + this.portLabelsPlacement)); - } - this.portLabelsTreatAsGroup = $booleanValue(castToBoolean(node.getProperty(PORT_LABELS_TREAT_AS_GROUP_0))); - this.nodeLabelPlacement = castTo(node.getProperty(NODE_LABELS_PLACEMENT_5), 21); - if (!isValid_0(this.nodeLabelPlacement)) { - throw toJs(new UnsupportedConfigurationException_0('Invalid node label placement: ' + this.nodeLabelPlacement)); - } - this.nodeLabelsPadding = castTo(getIndividualOrInherited_0(node, NODE_LABELS_PADDING_0), 116); - this.nodeLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_NODE_0))); - this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_LABEL_0))); - this.portPortSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_PORT_PORT_0))); - this.portLabelSpacingHorizontal = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_HORIZONTAL_0))); - this.portLabelSpacingVertical = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_VERTICAL_0))); - this.surroundingPortMargins = castTo(getIndividualOrInherited_0(node, SPACING_PORTS_SURROUNDING_0), 142); - this.labelCellSpacing = 2 * this.labelLabelSpacing; - symmetry = !this.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); - this.nodeContainer = new StripContainerCell(0, symmetry, 0); - this.nodeContainerMiddleRow = new StripContainerCell(1, symmetry, 0); - $setCell_0(this.nodeContainer, ($clinit_ContainerArea() , CENTER), this.nodeContainerMiddleRow); -} - -function comparePortContexts(portContext1, portContext2){ - var portSideComparison; - portSideComparison = comparePortSides(portContext1.port.getSide(), portContext2.port.getSide()); - if (portSideComparison != 0) { - return portSideComparison; - } - switch (portContext1.port.getSide().ordinal) { - case 1: - case 2: - return compare_5(portContext1.port.getVolatileId(), portContext2.port.getVolatileId()); - case 3: - case 4: - return compare_5(portContext2.port.getVolatileId(), portContext1.port.getVolatileId()); - } - return 0; -} - -function comparePortSides(portSide1, portSide2){ - return compare_5(portSide1.ordinal, portSide2.ordinal); -} - -defineClass(789, 1, {}, NodeContext); -_.labelCellSpacing = 0; -_.labelLabelSpacing = 0; -_.nodeLabelSpacing = 0; -_.portLabelSpacingHorizontal = 0; -_.portLabelSpacingVertical = 0; -_.portLabelsTreatAsGroup = false; -_.portPortSpacing = 0; -_.treatAsCompoundNode = false; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext', 789); -function NodeContext$0methodref$comparePortSides$Type(){ -} - -defineClass(1471, 1, $intern_88, NodeContext$0methodref$comparePortSides$Type); -_.compare_1 = function compare_15(arg0, arg1){ - return comparePortSides(castTo(arg0, 61), castTo(arg1, 61)); -} -; -_.equals_0 = function equals_67(other){ - return this === other; -} -; -_.reversed = function reversed_7(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$0methodref$comparePortSides$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/0methodref$comparePortSides$Type', 1471); -function NodeContext$1methodref$comparePortContexts$Type(){ -} - -defineClass(1472, 1, $intern_88, NodeContext$1methodref$comparePortContexts$Type); -_.compare_1 = function compare_16(arg0, arg1){ - return comparePortContexts(castTo(arg0, 111), castTo(arg1, 111)); -} -; -_.equals_0 = function equals_68(other){ - return this === other; -} -; -_.reversed = function reversed_8(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$1methodref$comparePortContexts$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/1methodref$comparePortContexts$Type', 1472); -function $clinit_NodeLabelLocation(){ - $clinit_NodeLabelLocation = emptyMethod; - OUT_T_L = new NodeLabelLocation('OUT_T_L', 0, ($clinit_HorizontalLabelAlignment() , LEFT), ($clinit_VerticalLabelAlignment() , BOTTOM), ($clinit_ContainerArea() , BEGIN), BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(($clinit_NodeLabelPlacement() , OUTSIDE), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0]))])); - OUT_T_C = new NodeLabelLocation('OUT_T_C', 1, CENTER_0, BOTTOM, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); - OUT_T_R = new NodeLabelLocation('OUT_T_R', 2, RIGHT, BOTTOM, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0]))])); - OUT_B_L = new NodeLabelLocation('OUT_B_L', 3, LEFT, TOP, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0]))])); - OUT_B_C = new NodeLabelLocation('OUT_B_C', 4, CENTER_0, TOP, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); - OUT_B_R = new NodeLabelLocation('OUT_B_R', 5, RIGHT, TOP, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0]))])); - OUT_L_T = new NodeLabelLocation('OUT_L_T', 6, RIGHT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_TOP_0, H_PRIORITY]))])); - OUT_L_C = new NodeLabelLocation('OUT_L_C', 7, RIGHT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0, H_PRIORITY]))])); - OUT_L_B = new NodeLabelLocation('OUT_L_B', 8, RIGHT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_BOTTOM_0, H_PRIORITY]))])); - OUT_R_T = new NodeLabelLocation('OUT_R_T', 9, LEFT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_TOP_0, H_PRIORITY]))])); - OUT_R_C = new NodeLabelLocation('OUT_R_C', 10, LEFT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0, H_PRIORITY]))])); - OUT_R_B = new NodeLabelLocation('OUT_R_B', 11, LEFT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_BOTTOM_0, H_PRIORITY]))])); - IN_T_L = new NodeLabelLocation('IN_T_L', 12, LEFT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0, H_PRIORITY]))])); - IN_T_C = new NodeLabelLocation('IN_T_C', 13, CENTER_0, TOP, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); - IN_T_R = new NodeLabelLocation('IN_T_R', 14, RIGHT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0, H_PRIORITY]))])); - IN_C_L = new NodeLabelLocation('IN_C_L', 15, LEFT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0, H_PRIORITY]))])); - IN_C_C = new NodeLabelLocation('IN_C_C', 16, CENTER_0, CENTER_1, CENTER, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0, H_PRIORITY]))])); - IN_C_R = new NodeLabelLocation('IN_C_R', 17, RIGHT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0, H_PRIORITY]))])); - IN_B_L = new NodeLabelLocation('IN_B_L', 18, LEFT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0, H_PRIORITY]))])); - IN_B_C = new NodeLabelLocation('IN_B_C', 19, CENTER_0, BOTTOM, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); - IN_B_R = new NodeLabelLocation('IN_B_R', 20, RIGHT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0, H_PRIORITY]))])); - UNDEFINED = new NodeLabelLocation('UNDEFINED', 21, null, null, null, null, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [])); -} - -function $getOutsideSide(this$static){ - switch (this$static.ordinal) { - case 0: - case 1: - case 2: - return $clinit_PortSide() , NORTH_3; - case 3: - case 4: - case 5: - return $clinit_PortSide() , SOUTH_2; - case 6: - case 7: - case 8: - return $clinit_PortSide() , WEST_2; - case 9: - case 10: - case 11: - return $clinit_PortSide() , EAST_2; - default:return $clinit_PortSide() , UNDEFINED_5; - } -} - -function $isInsideLocation(this$static){ - switch (this$static.ordinal) { - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - return true; - default:return false; - } -} - -function NodeLabelLocation(enum$name, enum$ordinal, horizontalAlignment, verticalAlignment, row, column, assignedPlacements){ - Enum.call(this, enum$name, enum$ordinal); - this.horizontalAlignment = horizontalAlignment; - this.verticalAlignment = verticalAlignment; - this.containerRow = row; - this.containerColumn = column; - this.assignedPlacements = newArrayList_1(assignedPlacements); -} - -function fromNodeLabelPlacement(labelPlacement){ - $clinit_NodeLabelLocation(); - var location_0, location$array, location$index, location$max; - for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { - location_0 = location$array[location$index]; - if ($indexOf_3(location_0.assignedPlacements, labelPlacement, 0) != -1) { - return location_0; - } - } - return UNDEFINED; -} - -function valueOf_20(name_0){ - $clinit_NodeLabelLocation(); - return valueOf(($clinit_NodeLabelLocation$Map() , $MAP_8), name_0); -} - -function values_26(){ - $clinit_NodeLabelLocation(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit, 1), $intern_36, 159, 0, [OUT_T_L, OUT_T_C, OUT_T_R, OUT_B_L, OUT_B_C, OUT_B_R, OUT_L_T, OUT_L_C, OUT_L_B, OUT_R_T, OUT_R_C, OUT_R_B, IN_T_L, IN_T_C, IN_T_R, IN_C_L, IN_C_C, IN_C_R, IN_B_L, IN_B_C, IN_B_R, UNDEFINED]); -} - -defineClass(159, 22, {3:1, 35:1, 22:1, 159:1}, NodeLabelLocation); -var IN_B_C, IN_B_L, IN_B_R, IN_C_C, IN_C_L, IN_C_R, IN_T_C, IN_T_L, IN_T_R, OUT_B_C, OUT_B_L, OUT_B_R, OUT_L_B, OUT_L_C, OUT_L_T, OUT_R_B, OUT_R_C, OUT_R_T, OUT_T_C, OUT_T_L, OUT_T_R, UNDEFINED; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeLabelLocation', 159, Ljava_lang_Enum_2_classLit, values_26, valueOf_20); -function $clinit_NodeLabelLocation$Map(){ - $clinit_NodeLabelLocation$Map = emptyMethod; - $MAP_8 = createValueOfMap(values_26()); -} - -var $MAP_8; -function $applyPortPosition(this$static){ - this$static.port.setPosition(this$static.portPosition); -} - -function PortContext(parentNodeContext, port){ - var portLabelsNextToPort; - this.portMargin = new ElkMargin; - this.port = port; - this.portPosition = new KVector_2(port.getPosition()); - portLabelsNextToPort = parentNodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); - parentNodeContext.portLabelsPlacement.contains(INSIDE_0)?parentNodeContext.treatAsCompoundNode?(this.labelsNextToPort = portLabelsNextToPort && !port.hasCompoundConnections()):(this.labelsNextToPort = true):parentNodeContext.portLabelsPlacement.contains(OUTSIDE_0)?portLabelsNextToPort?(this.labelsNextToPort = !(port.getIncomingEdges().iterator_0().hasNext_0() || port.getOutgoingEdges().iterator_0().hasNext_0())):(this.labelsNextToPort = false):(this.labelsNextToPort = false); -} - -defineClass(111, 1, {111:1}, PortContext); -_.labelsNextToPort = false; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_PortContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'PortContext', 111); -function configureCellSystemSizeContributions(nodeContext){ - var freePortPlacement, labelCell, location_0, location$array, location$index, location$max, overhang; - if (nodeContext.sizeConstraints.isEmpty()) { - return; - } - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORTS_0))) { - castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124).contributesToMinimumWidth = true; - castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumWidth = true; - freePortPlacement = nodeContext.portConstraints != ($clinit_PortConstraints() , FIXED_RATIO) && nodeContext.portConstraints != FIXED_POS; - $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124), freePortPlacement); - $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124), freePortPlacement); - $setContributesToMinimumHeight(nodeContext.nodeContainerMiddleRow, freePortPlacement); - if (nodeContext.sizeConstraints.contains(PORT_LABELS)) { - castTo($get_14(nodeContext.insidePortLabelCells, NORTH_3), 124).contributesToMinimumHeight = true; - castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumHeight = true; - castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124).contributesToMinimumWidth = true; - castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124).contributesToMinimumWidth = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; - } - } - if (nodeContext.sizeConstraints.contains(NODE_LABELS)) { - nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; - nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; - overhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); - for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { - location_0 = location$array[location$index]; - labelCell = castTo($get_14(nodeContext.nodeLabelCells, location_0), 306); - if (labelCell) { - if ($isInsideLocation(location_0)) { - labelCell.contributesToMinimumHeight = true; - labelCell.contributesToMinimumWidth = true; - } - else { - labelCell.contributesToMinimumHeight = !overhang; - labelCell.contributesToMinimumWidth = !overhang; - } - } - } - } - if (nodeContext.sizeConstraints.contains(MINIMUM_SIZE) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { - nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; - if (!nodeContext.insideNodeLabelContainer.contributesToMinimumHeight) { - nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; - nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; - nodeContext.insideNodeLabelContainer.onlyCenterCellContributesToMinimumSize = true; - } - } -} - -function updateVerticalInsidePortLabelCellPadding(nodeContext){ - var bottomBorderOffset, bottomPadding, eastCell, topBorderOffset, topPadding, westCell; - if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { - return; - } - topBorderOffset = nodeContext.nodeContainer.padding.top_0 + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124)) + nodeContext.labelCellSpacing; - bottomBorderOffset = nodeContext.nodeContainer.padding.bottom + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124)) + nodeContext.labelCellSpacing; - eastCell = castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124); - westCell = castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124); - topPadding = $wnd.Math.max(0, eastCell.padding.top_0 - topBorderOffset); - topPadding = $wnd.Math.max(topPadding, westCell.padding.top_0 - topBorderOffset); - bottomPadding = $wnd.Math.max(0, eastCell.padding.bottom - bottomBorderOffset); - bottomPadding = $wnd.Math.max(bottomPadding, westCell.padding.bottom - bottomBorderOffset); - eastCell.padding.top_0 = topPadding; - westCell.padding.top_0 = topPadding; - eastCell.padding.bottom = bottomPadding; - westCell.padding.bottom = bottomPadding; -} - -function calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ - var cell, portContext, portContext$iterator, rightmostPortBorder; - rightmostPortBorder = 0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - rightmostPortBorder = $wnd.Math.max(rightmostPortBorder, portContext.portPosition.x_0 + portContext.port.getSize().x_0); - } - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - cell.padding.left = 0; - cell.minimumContentAreaSize.x_0 = rightmostPortBorder; -} - -function calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ - var cell, currentPortContext, currentPortRatio, currentPortWidth, minWidth, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortRatio, previousPortWidth, requiredSpace; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.isEmpty()) { - cell.padding.left = 0; - cell.padding.right = 0; - return; - } - portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); - minWidth = 0; - portContextIterator = portContexts.iterator_0(); - previousPortContext = null; - previousPortRatio = 0; - previousPortWidth = 0; - while (portContextIterator.hasNext_0()) { - currentPortContext = castTo(portContextIterator.next_1(), 111); - currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); - currentPortWidth = currentPortContext.port.getSize().x_0; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); - if (!previousPortContext) { - !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.left > 0 && (minWidth = $wnd.Math.max(minWidth, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.left + currentPortContext.portMargin.left, currentPortRatio))); - } - else { - requiredSpace = previousPortWidth + previousPortContext.portMargin.right + nodeContext.portPortSpacing + currentPortContext.portMargin.left; - minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); - } - previousPortContext = currentPortContext; - previousPortRatio = currentPortRatio; - previousPortWidth = currentPortWidth; - } - if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.right > 0) { - requiredSpace = previousPortWidth + nodeContext.surroundingPortMargins.right; - portLabelsInside && (requiredSpace += previousPortContext.portMargin.right); - minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); - } - cell.padding.left = 0; - cell.minimumContentAreaSize.x_0 = minWidth; -} - -function calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, portSide){ - var cell, width_0; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - cell.padding.left = 0; - cell.padding.right = 0; - return; - } - cell.padding.left = nodeContext.surroundingPortMargins.left; - cell.padding.right = nodeContext.surroundingPortMargins.right; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); - width_0 = portWidthPlusPortPortSpacing(nodeContext, portSide); - $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (width_0 += 2 * nodeContext.portPortSpacing); - cell.minimumContentAreaSize.x_0 = width_0; -} - -function calculateHorizontalPortPlacementSize(nodeContext){ - switch (nodeContext.portConstraints.ordinal) { - case 5: - calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, SOUTH_2); - break; - case 4: - calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, SOUTH_2); - break; - default:calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, SOUTH_2); - } -} - -function computeHorizontalPortMargins(nodeContext, portSide){ - var labelWidth, labelsBounds, overhang, portContext, portContext$iterator, portWidth; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - labelWidth = portContext.portLabelCell?$getMinimumWidth(portContext.portLabelCell):0; - if (labelWidth > 0) { - if (portContext.labelsNextToPort) { - portWidth = portContext.port.getSize().x_0; - if (labelWidth > portWidth) { - overhang = (labelWidth - portWidth) / 2; - portContext.portMargin.left = overhang; - portContext.portMargin.right = overhang; - } - } - else { - portContext.portMargin.right = nodeContext.portLabelSpacingHorizontal + labelWidth; - } - } - else if (isFixed(nodeContext.portLabelsPlacement)) { - labelsBounds = getLabelsBounds(portContext.port); - labelsBounds.x_0 < 0 && (portContext.portMargin.left = -labelsBounds.x_0); - labelsBounds.x_0 + labelsBounds.width_0 > portContext.port.getSize().x_0 && (portContext.portMargin.right = labelsBounds.x_0 + labelsBounds.width_0 - portContext.port.getSize().x_0); - } - } -} - -function minSizeRequiredToRespectSpacing(spacing, secondRatio){ - return $clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(0 - secondRatio) <= $intern_94 || 0 == secondRatio || isNaN(0) && isNaN(secondRatio)?0:spacing / secondRatio; -} - -function portWidthPlusPortPortSpacing(nodeContext, portSide){ - var portContext, portContextIterator, result; - result = 0; - portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); - while (portContextIterator.hasNext_0()) { - portContext = castTo(portContextIterator.next_1(), 111); - result += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right; - portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); - } - return result; -} - -function setupPortMargins(nodeContext, portSide){ - var alwaysSameSide, alwaysSameSideAbove, leftmostPortContext, portContextIterator, portContexts, portLabelsOutside, rightmostPortContext, spaceEfficient, spaceEfficientPortLabels, uniformPortSpacing; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); - alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); - alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); - spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); - uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); - spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); - computeHorizontalPortMargins(nodeContext, portSide); - leftmostPortContext = null; - rightmostPortContext = null; - if (portLabelsOutside) { - portContextIterator = portContexts.iterator_0(); - leftmostPortContext = castTo(portContextIterator.next_1(), 111); - rightmostPortContext = leftmostPortContext; - while (portContextIterator.hasNext_0()) { - rightmostPortContext = castTo(portContextIterator.next_1(), 111); - } - leftmostPortContext.portMargin.left = 0; - rightmostPortContext.portMargin.right = 0; - spaceEfficientPortLabels && !leftmostPortContext.labelsNextToPort && (leftmostPortContext.portMargin.right = 0); - } - if (uniformPortSpacing) { - unifyPortMargins(portContexts); - if (portLabelsOutside) { - leftmostPortContext.portMargin.left = 0; - rightmostPortContext.portMargin.right = 0; - } - } -} - -function unifyPortMargins(portContexts){ - var maxLeft, maxRight, portContext, portContext$iterator, portContext$iterator0; - maxLeft = 0; - maxRight = 0; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - maxLeft = $wnd.Math.max(maxLeft, portContext.portMargin.left); - maxRight = $wnd.Math.max(maxRight, portContext.portMargin.right); - } - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portMargin.left = maxLeft; - portContext.portMargin.right = maxRight; - } -} - -function calculateWidthDueToLabels(nodeContext, portSide){ - var minCellSize, portContext, portContext$iterator, theAppropriateCell; - theAppropriateCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - minCellSize = theAppropriateCell.minimumContentAreaSize; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - !!portContext.portLabelCell && (minCellSize.x_0 = $wnd.Math.max(minCellSize.x_0, $getMinimumWidth(portContext.portLabelCell))); - } - if (minCellSize.x_0 > 0) { - switch (portSide.ordinal) { - case 2: - theAppropriateCell.padding.right = nodeContext.portLabelSpacingHorizontal; - break; - case 4: - theAppropriateCell.padding.left = nodeContext.portLabelSpacingHorizontal; - } - } -} - -function createInsidePortLabelCell(nodeContext, container, containerArea, portSide){ - var portLabelCell; - portLabelCell = new AtomicCell; - container.cells_0[containerArea.ordinal] = portLabelCell; - $put_7(nodeContext.insidePortLabelCells, portSide, portLabelCell); -} - -function setupEastOrWestPortLabelCell(nodeContext, portSide){ - nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && calculateWidthDueToLabels(nodeContext, portSide); - setupTopAndBottomPadding(nodeContext, portSide); -} - -function setupNorthOrSouthPortLabelCell(nodeContext, portSide){ - var padding; - padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; - switch (portSide.ordinal) { - case 1: - nodeContext.portLabelSpacingVertical >= 0 && (padding.top_0 = nodeContext.portLabelSpacingVertical); - break; - case 3: - nodeContext.portLabelSpacingVertical >= 0 && (padding.bottom = nodeContext.portLabelSpacingVertical); - } - if (nodeContext.surroundingPortMargins) { - padding.left = nodeContext.surroundingPortMargins.left; - padding.right = nodeContext.surroundingPortMargins.right; - } -} - -function setupTopAndBottomPadding(nodeContext, portSide){ - var padding; - if (nodeContext.surroundingPortMargins) { - padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; - padding.top_0 = nodeContext.surroundingPortMargins.top_0; - padding.bottom = nodeContext.surroundingPortMargins.bottom; - } -} - -function placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ - var nodeLabelContainer, nodeLabelContainerRect, nodeSize; - nodeSize = nodeContext.nodeSize; - nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); - nodeLabelContainerRect = nodeLabelContainer.cellRectangle; - nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); - nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); - nodeLabelContainerRect.width_0 = $wnd.Math.max(nodeLabelContainerRect.width_0, nodeSize.x_0); - nodeLabelContainerRect.width_0 > nodeSize.x_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.width_0 = nodeSize.x_0); - nodeLabelContainerRect.x_0 = -(nodeLabelContainerRect.width_0 - nodeSize.x_0) / 2; - switch (portSide.ordinal) { - case 1: - nodeLabelContainerRect.y_0 = -nodeLabelContainerRect.height; - break; - case 3: - nodeLabelContainerRect.y_0 = nodeSize.y_0; - } - $layoutChildrenHorizontally(nodeLabelContainer); - $layoutChildrenVertically(nodeLabelContainer); -} - -function placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ - var nodeLabelContainer, nodeLabelContainerRect, nodeSize; - nodeSize = nodeContext.nodeSize; - nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); - nodeLabelContainerRect = nodeLabelContainer.cellRectangle; - nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); - nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); - nodeLabelContainerRect.height = $wnd.Math.max(nodeLabelContainerRect.height, nodeSize.y_0); - nodeLabelContainerRect.height > nodeSize.y_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.height = nodeSize.y_0); - nodeLabelContainerRect.y_0 = -(nodeLabelContainerRect.height - nodeSize.y_0) / 2; - switch (portSide.ordinal) { - case 4: - nodeLabelContainerRect.x_0 = -nodeLabelContainerRect.width_0; - break; - case 2: - nodeLabelContainerRect.x_0 = nodeSize.x_0; - } - $layoutChildrenHorizontally(nodeLabelContainer); - $layoutChildrenVertically(nodeLabelContainer); -} - -function LabelPlacer$lambda$0$Type(){ -} - -defineClass(1476, 1, $intern_19, LabelPlacer$lambda$0$Type); -_.accept = function accept_46(arg0){ - $applyLabelLayout(castTo(arg0, 306)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$0$Type', 1476); -function LabelPlacer$lambda$1$Type(){ -} - -defineClass(1477, 1, $intern_39, LabelPlacer$lambda$1$Type); -_.test_0 = function test_9(arg0){ - return !!castTo(arg0, 111).portLabelCell; -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$1$Type', 1477); -function LabelPlacer$lambda$2$Type(){ -} - -defineClass(1478, 1, $intern_19, LabelPlacer$lambda$2$Type); -_.accept = function accept_47(arg0){ - $applyLabelLayout(castTo(arg0, 111).portLabelCell); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$2$Type', 1478); -function $clinit_NodeLabelAndSizeUtilities(){ - $clinit_NodeLabelAndSizeUtilities = emptyMethod; - EFFECTIVELY_FIXED_SIZE_CONSTRAINTS = of_1(($clinit_SizeConstraint() , PORT_LABELS)); -} - -function getMinimumNodeOrClientAreaSize(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var minSize; - minSize = new KVector_2(castTo(nodeContext.node.getProperty(($clinit_CoreOptions() , NODE_SIZE_MINIMUM_5)), 8)); - if (nodeContext.sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - return minSize; -} - -function getMinimumNodeSize(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { - return getMinimumNodeOrClientAreaSize(nodeContext); - } - } - return null; -} - -function isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide){ - $clinit_NodeLabelAndSizeUtilities(); - var alwaysSameSide, firstPort, portContexts, spaceEfficient; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.size_1() >= 2) { - firstPort = castTo(portContexts.iterator_0().next_1(), 111); - alwaysSameSide = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_SAME_SIDE)); - spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); - return !firstPort.labelsNextToPort && !alwaysSameSide && (portContexts.size_1() == 2 || spaceEfficient); - } - else { - return false; - } -} - -function offsetSouthernPortsByNodeSize(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var nodeHeight, portContext, portContext$iterator, portPosition; - nodeHeight = nodeContext.nodeSize.y_0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, ($clinit_PortSide() , SOUTH_2)), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portPosition = portContext.portPosition; - portPosition.y_0 += nodeHeight; - } -} - -function setNodePadding(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var clientArea, nodePadding, nodeRect; - if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , COMPUTE_PADDING))) { - return; - } - nodeRect = nodeContext.nodeContainer.cellRectangle; - clientArea = new ElkRectangle_1(nodeContext.insideNodeLabelContainer.centerCellRect); - nodePadding = new ElkPadding; - nodePadding.left = clientArea.x_0 - nodeRect.x_0; - nodePadding.top_0 = clientArea.y_0 - nodeRect.y_0; - nodePadding.right = nodeRect.x_0 + nodeRect.width_0 - (clientArea.x_0 + clientArea.width_0); - nodePadding.bottom = nodeRect.y_0 + nodeRect.height - (clientArea.y_0 + clientArea.height); - nodeContext.node.setPadding(nodePadding); -} - -function setupNodePaddingForPortsWithOffset(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var insidePart, insidePartIsBigger, nodeCellPadding, portBorderOffset, portContext, portContext$iterator, symmetry; - nodeCellPadding = nodeContext.nodeContainer.padding; - for (portContext$iterator = $values_0(nodeContext.portContexts).this$01.valueIterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portBorderOffset = 0; - if (portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { - portBorderOffset = $doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))); - if (portBorderOffset < 0) { - switch (portContext.port.getSide().ordinal) { - case 1: - nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, -portBorderOffset); - break; - case 3: - nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, -portBorderOffset); - break; - case 2: - nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, -portBorderOffset); - break; - case 4: - nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, -portBorderOffset); - } - } - } - if (isFixed(nodeContext.portLabelsPlacement)) { - insidePart = computeInsidePart_0(portContext.port, portBorderOffset); - symmetry = !castTo(nodeContext.node.getProperty(NODE_SIZE_OPTIONS_6), 174).contains(($clinit_SizeOptions() , ASYMMETRICAL)); - insidePartIsBigger = false; - switch (portContext.port.getSide().ordinal) { - case 1: - insidePartIsBigger = insidePart > nodeCellPadding.top_0; - nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, nodeCellPadding.bottom); - nodeCellPadding.bottom = nodeCellPadding.top_0 + portBorderOffset; - } - - break; - case 3: - insidePartIsBigger = insidePart > nodeCellPadding.bottom; - nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, nodeCellPadding.top_0); - nodeCellPadding.top_0 = nodeCellPadding.bottom + portBorderOffset; - } - - break; - case 2: - insidePartIsBigger = insidePart > nodeCellPadding.right; - nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); - nodeCellPadding.left = nodeCellPadding.right + portBorderOffset; - } - - break; - case 4: - insidePartIsBigger = insidePart > nodeCellPadding.left; - nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); - nodeCellPadding.right = nodeCellPadding.left + portBorderOffset; - } - - } - } - } -} - -var EFFECTIVELY_FIXED_SIZE_CONSTRAINTS; -function NodeLabelAndSizeUtilities$lambda$0$Type(){ -} - -defineClass(1475, 1, $intern_19, NodeLabelAndSizeUtilities$lambda$0$Type); -_.accept = function accept_48(arg0){ - $clinit_NodeLabelAndSizeUtilities(); - $applyPortPosition(castTo(arg0, 111)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelAndSizeUtilities$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelAndSizeUtilities/lambda$0$Type', 1475); -function createNodeLabelCellContainers(nodeContext, onlyInside){ - var eastContainer, northContainer, southContainer, symmetry, tabularNodeLabels, westContainer; - symmetry = !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); - tabularNodeLabels = nodeContext.sizeOptions.contains(FORCE_TABULAR_NODE_LABELS); - nodeContext.insideNodeLabelContainer = new GridContainerCell(tabularNodeLabels, symmetry, nodeContext.labelCellSpacing); - !!nodeContext.nodeLabelsPadding && $copy(nodeContext.insideNodeLabelContainer.padding, nodeContext.nodeLabelsPadding); - $setCell_0(nodeContext.nodeContainerMiddleRow, ($clinit_ContainerArea() , CENTER), nodeContext.insideNodeLabelContainer); - if (!onlyInside) { - northContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); - northContainer.padding.bottom = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3), northContainer); - southContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); - southContainer.padding.top_0 = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, SOUTH_2, southContainer); - westContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); - westContainer.padding.right = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, WEST_2, westContainer); - eastContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); - eastContainer.padding.left = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, EAST_2, eastContainer); - } -} - -function createNodeLabelCells(nodeContext, horizontalLayoutMode){ - createNodeLabelCellContainers(nodeContext, true); - $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, true, horizontalLayoutMode)); -} - -function handleNodeLabel(nodeContext, label_0, onlyInside, horizontalLayoutMode){ - var labelLocation, labelPlacement; - labelPlacement = label_0.hasProperty(($clinit_CoreOptions() , NODE_LABELS_PLACEMENT_5))?castTo(label_0.getProperty(NODE_LABELS_PLACEMENT_5), 21):nodeContext.nodeLabelPlacement; - labelLocation = fromNodeLabelPlacement(labelPlacement); - if (labelLocation == ($clinit_NodeLabelLocation() , UNDEFINED)) { - return; - } - if (onlyInside && !$isInsideLocation(labelLocation)) { - return; - } - $addLabel(retrieveNodeLabelCell(nodeContext, labelLocation, horizontalLayoutMode), label_0); -} - -function lambda$0_10(nodeContext_0, onlyInside_1, horizontalLayoutMode_2, label_3){ - handleNodeLabel(nodeContext_0, label_3, onlyInside_1, horizontalLayoutMode_2); -} - -function retrieveNodeLabelCell(nodeContext, nodeLabelLocation, horizontalLayoutMode){ - var containerCell, nodeLabelCell, outsideSide; - nodeLabelCell = castTo($get_14(nodeContext.nodeLabelCells, nodeLabelLocation), 306); - if (!nodeLabelCell) { - nodeLabelCell = new LabelCell_0(nodeContext.labelLabelSpacing, nodeLabelLocation, horizontalLayoutMode); - $put_7(nodeContext.nodeLabelCells, nodeLabelLocation, nodeLabelCell); - if ($isInsideLocation(nodeLabelLocation)) { - $setCell(nodeContext.insideNodeLabelContainer, nodeLabelLocation.containerRow, nodeLabelLocation.containerColumn, nodeLabelCell); - } - else { - outsideSide = $getOutsideSide(nodeLabelLocation); - containerCell = castTo($get_14(nodeContext.outsideNodeLabelContainers, outsideSide), 244); - switch (outsideSide.ordinal) { - case 1: - case 3: - nodeLabelCell.contributesToMinimumHeight = true; - $setCell_0(containerCell, nodeLabelLocation.containerColumn, nodeLabelCell); - break; - case 4: - case 2: - nodeLabelCell.contributesToMinimumWidth = true; - $setCell_0(containerCell, nodeLabelLocation.containerRow, nodeLabelCell); - } - } - } - return nodeLabelCell; -} - -function NodeLabelCellCreator$lambda$0$Type(nodeContext_0, onlyInside_1, horizontalLayoutMode_2){ - this.nodeContext_0 = nodeContext_0; - this.onlyInside_1 = onlyInside_1; - this.horizontalLayoutMode_2 = horizontalLayoutMode_2; -} - -defineClass(790, 1, $intern_19, NodeLabelCellCreator$lambda$0$Type); -_.accept = function accept_49(arg0){ - lambda$0_10(this.nodeContext_0, this.onlyInside_1, this.horizontalLayoutMode_2, castTo(arg0, 181)); -} -; -_.horizontalLayoutMode_2 = false; -_.onlyInside_1 = false; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelCellCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelCellCreator/lambda$0$Type', 790); -function setNodeHeight(nodeContext){ - var height, minNodeSize, nodeCellRectangle, nodeSize; - nodeSize = nodeContext.nodeSize; - $clinit_NodeLabelAndSizeUtilities(); - if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { - height = nodeSize.y_0; - } - else { - height = $getMinimumHeight_1(nodeContext.nodeContainer); - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { - height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , EAST_2)), 244))); - height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, WEST_2), 244))); - } - minNodeSize = getMinimumNodeSize(nodeContext); - !!minNodeSize && (height = $wnd.Math.max(height, minNodeSize.y_0)); - if (nodeContext.sizeConstraints.contains(PORTS_0)) { - if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { - height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , EAST_2)), 124))); - height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124))); - } - } - } - $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.y_0 = $wnd.Math.max(nodeSize.y_0, height)):(nodeSize.y_0 = height); - nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; - nodeCellRectangle.y_0 = 0; - nodeCellRectangle.height = height; - $layoutChildrenVertically(nodeContext.nodeContainer); -} - -function setNodeWidth(nodeContext){ - var minNodeSize, nodeCellRectangle, nodeSize, width_0; - nodeSize = nodeContext.nodeSize; - $clinit_NodeLabelAndSizeUtilities(); - if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { - width_0 = nodeSize.x_0; - } - else { - width_0 = $getMinimumWidth_0(nodeContext.nodeContainer); - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { - width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3)), 244))); - width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, SOUTH_2), 244))); - } - minNodeSize = getMinimumNodeSize(nodeContext); - !!minNodeSize && (width_0 = $wnd.Math.max(width_0, minNodeSize.x_0)); - } - $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.x_0 = $wnd.Math.max(nodeSize.x_0, width_0)):(nodeSize.x_0 = width_0); - nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; - nodeCellRectangle.x_0 = 0; - nodeCellRectangle.width_0 = width_0; - $layoutChildrenHorizontally(nodeContext.nodeContainer); -} - -function createPortContext(nodeContext, port, imPortLabels){ - var portContext; - portContext = new PortContext(nodeContext, port); - $put(nodeContext.portContexts, port.getSide(), portContext); - if (imPortLabels && !isFixed(nodeContext.portLabelsPlacement)) { - portContext.portLabelCell = new LabelCell(nodeContext.labelLabelSpacing); - $forEach_1(port.getLabels(), new PortContextCreator$lambda$0$Type(portContext)); - } -} - -function createPortContexts(nodeContext, ignoreInsidePortLabels){ - var imPortLabels, port, port$iterator, volatileId; - imPortLabels = !ignoreInsidePortLabels || !nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); - volatileId = 0; - for (port$iterator = new ArrayList$1(nodeContext.node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 838); - if (port.getSide() == ($clinit_PortSide() , UNDEFINED_5)) { - throw toJs(new IllegalArgumentException_0('Label and node size calculator can only be used with ports that have port sides assigned.')); - } - port.setVolatileId(volatileId++); - createPortContext(nodeContext, port, imPortLabels); - } -} - -function lambda$0_11(portContext_0, label_1){ - $addLabel(portContext_0.portLabelCell, label_1); -} - -function PortContextCreator$lambda$0$Type(portContext_0){ - this.portContext_0 = portContext_0; -} - -defineClass(1474, 1, $intern_19, PortContextCreator$lambda$0$Type); -_.accept = function accept_50(arg0){ - lambda$0_11(this.portContext_0, castTo(arg0, 181)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_PortContextCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'PortContextCreator/lambda$0$Type', 1474); -function constrainedInsidePortLabelPlacement(nodeContext, portSide){ - var insidePortLabelContainer, labelContainerRect, leftBorder, overlapRemovalDirection, overlapRemover, padding, padding0, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, rightBorder, startCoordinate, stripHeight, verticalLabelAlignment, actualMinX, actualMaxX; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) { - simpleInsidePortLabelPlacement(nodeContext, portSide); - return; - } - overlapRemovalDirection = portSide == NORTH_3?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP); - verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , TOP):($clinit_VerticalLabelAlignment() , BOTTOM); - insidePortLabelContainer = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - labelContainerRect = insidePortLabelContainer.cellRectangle; - leftBorder = labelContainerRect.x_0 + maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.left, nodeContext.surroundingPortMargins.left, nodeContext.nodeLabelSpacing])); - rightBorder = labelContainerRect.x_0 + labelContainerRect.width_0 - maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.right, nodeContext.surroundingPortMargins.right, nodeContext.nodeLabelSpacing])); - overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingVertical); - startCoordinate = portSide == NORTH_3?$intern_60:$intern_59; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portPosition = portContext.portPosition; - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); - requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); - portLabelCell.verticalAlignment = verticalLabelAlignment; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - portLabelCellRect.x_0 = portPosition.x_0 - (portLabelCellRect.width_0 - portSize.x_0) / 2; - actualMinX = $wnd.Math.min(leftBorder, portPosition.x_0); - actualMaxX = $wnd.Math.max(rightBorder, portPosition.x_0 + portSize.x_0); - portLabelCellRect.x_0 < actualMinX?(portLabelCellRect.x_0 = actualMinX):portLabelCellRect.x_0 + portLabelCellRect.width_0 > actualMaxX && (portLabelCellRect.x_0 = actualMaxX - portLabelCellRect.width_0); - $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); - startCoordinate = portSide == NORTH_3?$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0):$wnd.Math.min(startCoordinate, portPosition.y_0); - } - startCoordinate += portSide == NORTH_3?nodeContext.portLabelSpacingVertical:-nodeContext.portLabelSpacingVertical; - stripHeight = $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); - stripHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = stripHeight); - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portLabelCellRect = portContext.portLabelCell.cellRectangle; - portLabelCellRect.x_0 -= portContext.portPosition.x_0; - portLabelCellRect.y_0 -= portContext.portPosition.y_0; - } -} - -function constrainedOutsidePortLabelPlacement(nodeContext, portSide){ - var overlapRemovalDirection, overlapRemover, padding, padding0, padding1, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, portWithSpecialNeeds, startCoordinate, verticalLabelAlignment; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.size_1() <= 2 || portSide == ($clinit_PortSide() , EAST_2) || portSide == ($clinit_PortSide() , WEST_2)) { - simpleOutsidePortLabelPlacement(nodeContext, portSide); - return; - } - portWithSpecialNeeds = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); - overlapRemovalDirection = portSide == ($clinit_PortSide() , NORTH_3)?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN); - verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , BOTTOM):($clinit_VerticalLabelAlignment() , TOP); - overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingHorizontal); - startCoordinate = portSide == NORTH_3?$intern_59:$intern_60; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portPosition = portContext.portPosition; - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding1 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding1.top_0 + padding1.bottom); - if (portWithSpecialNeeds) { - portLabelCellRect.x_0 = portPosition.x_0 - (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding.left + padding.right) - nodeContext.portLabelSpacingHorizontal; - portWithSpecialNeeds = false; - } - else { - portLabelCellRect.x_0 = portPosition.x_0 + portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - } - requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); - portLabelCell.verticalAlignment = verticalLabelAlignment; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); - startCoordinate = portSide == NORTH_3?$wnd.Math.min(startCoordinate, portPosition.y_0):$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0); - } - startCoordinate += portSide == NORTH_3?-nodeContext.portLabelSpacingVertical:nodeContext.portLabelSpacingVertical; - $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portLabelCellRect = portContext.portLabelCell.cellRectangle; - portLabelCellRect.x_0 -= portContext.portPosition.x_0; - portLabelCellRect.y_0 -= portContext.portPosition.y_0; - } -} - -function placePortLabels(nodeContext, portSide){ - var constrainedPlacement; - constrainedPlacement = !nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) || nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_POS); - nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))?constrainedPlacement?constrainedInsidePortLabelPlacement(nodeContext, portSide):simpleInsidePortLabelPlacement(nodeContext, portSide):nodeContext.portLabelsPlacement.contains(OUTSIDE_0) && (constrainedPlacement?constrainedOutsidePortLabelPlacement(nodeContext, portSide):simpleOutsidePortLabelPlacement(nodeContext, portSide)); -} - -function portLabelBorderOffsetForPortSide(nodeContext, portSide){ - switch (portSide.ordinal) { - case 1: - return nodeContext.nodeContainer.padding.top_0 + nodeContext.portLabelSpacingVertical; - case 3: - return nodeContext.nodeContainer.padding.bottom + nodeContext.portLabelSpacingVertical; - case 2: - return nodeContext.nodeContainer.padding.right + nodeContext.portLabelSpacingHorizontal; - case 4: - return nodeContext.nodeContainer.padding.left + nodeContext.portLabelSpacingHorizontal; - default:return 0; - } -} - -function simpleInsidePortLabelPlacement(nodeContext, portSide){ - var insideNorthOrSouthPortLabelAreaHeight, labelBorderOffset, labelHeight, padding, padding0, portBorderOffset, portContext, portContext$iterator, portLabelCell, portLabelCellRect, portLabelSpacingHorizontal, portLabelSpacingVertical, portSize; - insideNorthOrSouthPortLabelAreaHeight = 0; - labelBorderOffset = portLabelBorderOffsetForPortSide(nodeContext, portSide); - portLabelSpacingHorizontal = nodeContext.portLabelSpacingHorizontal; - portLabelSpacingVertical = nodeContext.portLabelSpacingVertical; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portBorderOffset = portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?$doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))):0; - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); - switch (portSide.ordinal) { - case 1: - portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; - portLabelCellRect.y_0 = portSize.y_0 + portBorderOffset + labelBorderOffset; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - break; - case 3: - portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; - portLabelCellRect.y_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.height; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - break; - case 2: - portLabelCellRect.x_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.width_0; - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - } - else { - portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; - } - - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - break; - case 4: - portLabelCellRect.x_0 = portSize.x_0 + portBorderOffset + labelBorderOffset; - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - } - else { - portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; - } - - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - } - (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && (insideNorthOrSouthPortLabelAreaHeight = $wnd.Math.max(insideNorthOrSouthPortLabelAreaHeight, portLabelCellRect.height)); - } - insideNorthOrSouthPortLabelAreaHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = insideNorthOrSouthPortLabelAreaHeight); -} - -function simpleOutsidePortLabelPlacement(nodeContext, portSide){ - var alwaysAbove, labelHeight, padding, padding0, placeFirstPortDifferently, portContext, portContext$iterator, portContexts, portLabelCell, portLabelCellRect, portSize; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - placeFirstPortDifferently = isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide); - alwaysAbove = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_OTHER_SAME_SIDE)); - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); - switch (portSide.ordinal) { - case 1: - if (portContext.labelsNextToPort) { - portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - } - else { - portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - } - - portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - break; - case 3: - if (portContext.labelsNextToPort) { - portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - } - else { - portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - } - - portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - break; - case 2: - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - } - else { - portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - } - - portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - break; - case 4: - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - } - else { - portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - } - - portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - } - placeFirstPortDifferently = false; - } -} - -function $clinit_PortPlacementCalculator(){ - $clinit_PortPlacementCalculator = emptyMethod; - PORT_RATIO_OR_POSITION = new Property_0('portRatioOrPosition', 0); -} - -function calculateVerticalPortXCoordinate(portContext, nodeWidth){ - var port; - port = portContext.port; - return port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth; -} - -function placeHorizontalFixedPosPorts(nodeContext, portSide){ - var port, portContext, portContext$iterator; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); - } -} - -function placeHorizontalFixedRatioPorts(nodeContext, portSide){ - var nodeWidth, port, portContext, portContext$iterator; - nodeWidth = nodeContext.nodeSize.x_0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = nodeWidth * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); - portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); - } -} - -function placeHorizontalFreePorts(nodeContext, portSide){ - var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementWidth, currentXPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - return; - } - insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; - insidePortLabelCellPadding = insidePortLabelCell.padding; - portAlignment = $getPortAlignment(nodeContext, portSide); - availableSpace = insidePortLabelCellRectangle.width_0 - insidePortLabelCellPadding.left - insidePortLabelCellPadding.right; - calculatedPortPlacementWidth = insidePortLabelCell.minimumContentAreaSize.x_0; - currentXPos = insidePortLabelCellRectangle.x_0 + insidePortLabelCellPadding.left; - spaceBetweenPorts = nodeContext.portPortSpacing; - if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { - calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; - portAlignment = CENTER_6; - } - if (availableSpace < calculatedPortPlacementWidth && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { - if (portAlignment == DISTRIBUTED) { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - currentXPos += spaceBetweenPorts; - } - else { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - } - } - else { - if (availableSpace < calculatedPortPlacementWidth) { - calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; - portAlignment = CENTER_6; - } - switch (portAlignment.ordinal) { - case 3: - currentXPos += (availableSpace - calculatedPortPlacementWidth) / 2; - break; - case 4: - currentXPos += availableSpace - calculatedPortPlacementWidth; - break; - case 0: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - currentXPos += spaceBetweenPorts; - break; - case 1: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - } - } - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = currentXPos + portContext.portMargin.left; - portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); - currentXPos += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right + spaceBetweenPorts; - } -} - -function placeHorizontalPorts(nodeContext){ - $clinit_PortPlacementCalculator(); - switch (nodeContext.portConstraints.ordinal) { - case 5: - placeHorizontalFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - placeHorizontalFixedPosPorts(nodeContext, SOUTH_2); - break; - case 4: - placeHorizontalFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - placeHorizontalFixedRatioPorts(nodeContext, SOUTH_2); - break; - default:placeHorizontalFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - placeHorizontalFreePorts(nodeContext, SOUTH_2); - } -} - -function placeVerticalFixedPosPorts(nodeContext, portSide){ - var nodeWidth, port, portContext, portContext$iterator; - nodeWidth = nodeContext.nodeSize.x_0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); - } -} - -function placeVerticalFixedRatioPorts(nodeContext, portSide){ - var nodeSize, portContext, portContext$iterator; - nodeSize = nodeContext.nodeSize; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = calculateVerticalPortXCoordinate(portContext, nodeSize.x_0); - portContext.portPosition.y_0 = nodeSize.y_0 * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); - } -} - -function placeVerticalFreePorts(nodeContext, portSide){ - var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementHeight, currentYPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, nodeWidth, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - return; - } - insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; - insidePortLabelCellPadding = insidePortLabelCell.padding; - portAlignment = $getPortAlignment(nodeContext, portSide); - availableSpace = insidePortLabelCellRectangle.height - insidePortLabelCellPadding.top_0 - insidePortLabelCellPadding.bottom; - calculatedPortPlacementHeight = insidePortLabelCell.minimumContentAreaSize.y_0; - currentYPos = insidePortLabelCellRectangle.y_0 + insidePortLabelCellPadding.top_0; - spaceBetweenPorts = nodeContext.portPortSpacing; - nodeWidth = nodeContext.nodeSize.x_0; - if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { - calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; - portAlignment = CENTER_6; - } - if (availableSpace < calculatedPortPlacementHeight && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { - if (portAlignment == DISTRIBUTED) { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - currentYPos += spaceBetweenPorts; - } - else { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - } - } - else { - if (availableSpace < calculatedPortPlacementHeight) { - calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; - portAlignment = CENTER_6; - } - switch (portAlignment.ordinal) { - case 3: - currentYPos += (availableSpace - calculatedPortPlacementHeight) / 2; - break; - case 4: - currentYPos += availableSpace - calculatedPortPlacementHeight; - break; - case 0: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - currentYPos += spaceBetweenPorts; - break; - case 1: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - } - } - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); - portContext.portPosition.y_0 = currentYPos + portContext.portMargin.top_0; - currentYPos += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom + spaceBetweenPorts; - } -} - -function placeVerticalPorts(nodeContext){ - $clinit_PortPlacementCalculator(); - switch (nodeContext.portConstraints.ordinal) { - case 5: - placeVerticalFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - placeVerticalFixedPosPorts(nodeContext, WEST_2); - break; - case 4: - placeVerticalFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - placeVerticalFixedRatioPorts(nodeContext, WEST_2); - break; - default:placeVerticalFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); - placeVerticalFreePorts(nodeContext, WEST_2); - } -} - -var PORT_RATIO_OR_POSITION; -function calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ - var bottommostPortBorder, cell, portContext, portContext$iterator; - bottommostPortBorder = 0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - bottommostPortBorder = $wnd.Math.max(bottommostPortBorder, portContext.portPosition.y_0 + portContext.port.getSize().y_0); - } - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - cell.padding.top_0 = 0; - cell.minimumContentAreaSize.y_0 = bottommostPortBorder; -} - -function calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ - var cell, currentPortContext, currentPortHeight, currentPortRatio, minHeight, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortHeight, previousPortRatio, requiredSpace; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.isEmpty()) { - cell.padding.top_0 = 0; - cell.padding.bottom = 0; - return; - } - portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); - minHeight = 0; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); - portContextIterator = portContexts.iterator_0(); - previousPortContext = null; - previousPortRatio = 0; - previousPortHeight = 0; - while (portContextIterator.hasNext_0()) { - currentPortContext = castTo(portContextIterator.next_1(), 111); - currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); - currentPortHeight = currentPortContext.port.getSize().y_0; - if (!previousPortContext) { - !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.top_0 > 0 && (minHeight = $wnd.Math.max(minHeight, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.top_0 + currentPortContext.portMargin.top_0, currentPortRatio))); - } - else { - requiredSpace = previousPortHeight + previousPortContext.portMargin.bottom + nodeContext.portPortSpacing + currentPortContext.portMargin.top_0; - minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); - } - previousPortContext = currentPortContext; - previousPortRatio = currentPortRatio; - previousPortHeight = currentPortHeight; - } - if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.bottom > 0) { - requiredSpace = previousPortHeight + nodeContext.surroundingPortMargins.bottom; - portLabelsInside && (requiredSpace += previousPortContext.portMargin.bottom); - minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); - } - cell.padding.top_0 = 0; - cell.minimumContentAreaSize.y_0 = minHeight; -} - -function calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, portSide){ - var cell, height; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - cell.padding.top_0 = 0; - cell.padding.bottom = 0; - return; - } - cell.padding.top_0 = nodeContext.surroundingPortMargins.top_0; - cell.padding.bottom = nodeContext.surroundingPortMargins.bottom; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); - height = portHeightPlusPortPortSpacing(nodeContext, portSide); - $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (height += 2 * nodeContext.portPortSpacing); - cell.minimumContentAreaSize.y_0 = height; -} - -function calculateVerticalPortPlacementSize(nodeContext){ - switch (nodeContext.portConstraints.ordinal) { - case 5: - calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, WEST_2); - break; - case 4: - calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, WEST_2); - break; - default:calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); - calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, WEST_2); - } -} - -function computeVerticalPortMargins(nodeContext, portSide){ - var firstLabelHeight, firstLabelOverhang, labelHeight, labelsBounds, overhang, portContext, portContext$iterator, portHeight; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - labelHeight = portContext.portLabelCell?$getMinimumHeight_0(portContext.portLabelCell):0; - if (labelHeight > 0) { - if (portContext.labelsNextToPort) { - portHeight = portContext.port.getSize().y_0; - if (labelHeight > portHeight) { - if (nodeContext.portLabelsTreatAsGroup || portContext.portLabelCell.labels.array.length == 1) { - overhang = (labelHeight - portHeight) / 2; - portContext.portMargin.top_0 = overhang; - portContext.portMargin.bottom = overhang; - } - else { - firstLabelHeight = castTo($get_11(portContext.portLabelCell.labels, 0), 181).getSize().y_0; - firstLabelOverhang = (firstLabelHeight - portHeight) / 2; - portContext.portMargin.top_0 = $wnd.Math.max(0, firstLabelOverhang); - portContext.portMargin.bottom = labelHeight - firstLabelOverhang - portHeight; - } - } - } - else { - portContext.portMargin.bottom = nodeContext.portLabelSpacingVertical + labelHeight; - } - } - else if (isFixed(nodeContext.portLabelsPlacement)) { - labelsBounds = getLabelsBounds(portContext.port); - labelsBounds.y_0 < 0 && (portContext.portMargin.top_0 = -labelsBounds.y_0); - labelsBounds.y_0 + labelsBounds.height > portContext.port.getSize().y_0 && (portContext.portMargin.bottom = labelsBounds.y_0 + labelsBounds.height - portContext.port.getSize().y_0); - } - } -} - -function portHeightPlusPortPortSpacing(nodeContext, portSide){ - var portContext, portContextIterator, result; - result = 0; - portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); - while (portContextIterator.hasNext_0()) { - portContext = castTo(portContextIterator.next_1(), 111); - result += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom; - portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); - } - return result; -} - -function setupPortMargins_0(nodeContext, portSide){ - var alwaysSameSide, alwaysSameSideAbove, bottommostPortContext, portContextIterator, portContexts, portLabelsOutside, spaceEfficient, spaceEfficientPortLabels, topmostPortContext, uniformPortSpacing; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); - alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); - alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); - spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); - uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); - spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); - computeVerticalPortMargins(nodeContext, portSide); - topmostPortContext = null; - bottommostPortContext = null; - if (portLabelsOutside) { - portContextIterator = portContexts.iterator_0(); - topmostPortContext = castTo(portContextIterator.next_1(), 111); - bottommostPortContext = topmostPortContext; - while (portContextIterator.hasNext_0()) { - bottommostPortContext = castTo(portContextIterator.next_1(), 111); - } - topmostPortContext.portMargin.top_0 = 0; - bottommostPortContext.portMargin.bottom = 0; - spaceEfficientPortLabels && !topmostPortContext.labelsNextToPort && (topmostPortContext.portMargin.bottom = 0); - } - if (uniformPortSpacing) { - unifyPortMargins_0(portContexts); - if (portLabelsOutside) { - topmostPortContext.portMargin.top_0 = 0; - bottommostPortContext.portMargin.bottom = 0; - } - } -} - -function unifyPortMargins_0(portContexts){ - var maxBottom, maxTop, portContext, portContext$iterator, portContext$iterator0; - maxTop = 0; - maxBottom = 0; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - maxTop = $wnd.Math.max(maxTop, portContext.portMargin.top_0); - maxBottom = $wnd.Math.max(maxBottom, portContext.portMargin.bottom); - } - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portMargin.top_0 = maxTop; - portContext.portMargin.bottom = maxBottom; - } -} - -function $removeOverlaps(overlapRemover){ - var alreadyPlacedNodes, currNode, currNode$iterator, currRect, overlapNode, overlapNode$iterator, overlapRect, stripSize, verticalGap, yPos; - verticalGap = overlapRemover.gapVertical; - alreadyPlacedNodes = new HashSet; - stripSize = 0; - for (currNode$iterator = new ArrayList$1(overlapRemover.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { - currNode = castTo($next_7(currNode$iterator), 222); - yPos = 0; - $sort_0(currNode.overlappingNodes, new GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); - for (overlapNode$iterator = $listIterator_2(currNode.overlappingNodes, 0); overlapNode$iterator.currentNode != overlapNode$iterator.this$01.tail;) { - overlapNode = castTo($next_10(overlapNode$iterator), 222); - if (alreadyPlacedNodes.map_0.containsKey(overlapNode)) { - currRect = currNode.rectangle; - overlapRect = overlapNode.rectangle; - yPos < overlapRect.y_0 + overlapRect.height + verticalGap && yPos + currRect.height + verticalGap > overlapRect.y_0 && (yPos = overlapRect.y_0 + overlapRect.height + verticalGap); - } - } - currNode.rectangle.y_0 = yPos; - alreadyPlacedNodes.map_0.put(currNode, alreadyPlacedNodes); - stripSize = $wnd.Math.max(stripSize, currNode.rectangle.y_0 + currNode.rectangle.height); - } - return stripSize; -} - -function GreedyRectangleStripOverlapRemover(){ -} - -function compareByYCoordinate(node1, node2){ - return compare_4(node1.rectangle.y_0, node2.rectangle.y_0); -} - -defineClass(1829, 1, {}, GreedyRectangleStripOverlapRemover); -var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover', 1829); -function GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type(){ -} - -defineClass(1830, 1, $intern_88, GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); -_.compare_1 = function compare_17(arg0, arg1){ - return compareByYCoordinate(castTo(arg0, 222), castTo(arg1, 222)); -} -; -_.equals_0 = function equals_69(other){ - return this === other; -} -; -_.reversed = function reversed_9(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type', 1830); -function $computeOverlaps(this$static){ - var currNode, currNode$iterator, entry, entryIterator, intersectingNode, intersectingNode$iterator, intersectingNodes, intersectingRectangle, scanlinePos; - intersectingNodes = new TreeSet_0(castTo(checkNotNull(new RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type), 62)); - scanlinePos = $intern_60; - for (currNode$iterator = new ArrayList$1(this$static.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { - currNode = castTo($next_7(currNode$iterator), 222); - scanlinePos = currNode.rectangle.x_0; - while (intersectingNodes.map_0.size_0 != 0) { - intersectingRectangle = castTo(getKeyOrNSE($getFirstEntry(intersectingNodes.map_0)), 222); - if (intersectingRectangle.rectangle.x_0 + intersectingRectangle.rectangle.width_0 < scanlinePos) { - $remove_26(intersectingNodes.map_0, intersectingRectangle) != null; - } - else { - break; - } - } - for (intersectingNode$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(intersectingNodes.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(intersectingNode$iterator.val$entryIterator2.iter);) { - intersectingNode = (entry = $next_11(intersectingNode$iterator.val$entryIterator2) , castTo(entry.getKey(), 222)); - $add_7(intersectingNode.overlappingNodes, currNode); - $add_7(currNode.overlappingNodes, intersectingNode); - } - $put_12(intersectingNodes.map_0, currNode, ($clinit_Boolean() , FALSE_0)) == null; - } -} - -function $exportRectangle(this$static, rectangleNode){ - var originalRectangle, rectangle; - rectangle = rectangleNode.rectangle; - originalRectangle = rectangleNode.originalRectangle; - switch (this$static.overlapRemovalDirection.ordinal) { - case 0: - originalRectangle.y_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; - break; - case 1: - originalRectangle.y_0 += this$static.startCoordinate; - break; - case 2: - originalRectangle.x_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; - break; - case 3: - originalRectangle.x_0 = this$static.startCoordinate + rectangle.y_0; - } -} - -function $importRectangle(this$static, rectangle){ - switch (this$static.overlapRemovalDirection.ordinal) { - case 0: - case 1: - return rectangle; - case 2: - case 3: - return new ElkRectangle_0(rectangle.y_0, 0, rectangle.height, rectangle.width_0); - default:return null; - } -} - -function $removeOverlaps_0(this$static){ - var stripSize; - !this$static.overlapRemovalStrategy && (this$static.overlapRemovalStrategy = new GreedyRectangleStripOverlapRemover); - $sort(this$static.rectangleNodes, new RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); - $computeOverlaps(this$static); - stripSize = $removeOverlaps(this$static); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.rectangleNodes, 16)), new RectangleStripOverlapRemover$lambda$1$Type(this$static)); - return stripSize; -} - -function $withGap(this$static, theVerticalGap){ - this$static.gapVertical = theVerticalGap; - return this$static; -} - -function $withStartCoordinate(this$static, coordinate){ - this$static.startCoordinate = coordinate; - return this$static; -} - -function RectangleStripOverlapRemover(){ - this.rectangleNodes = new ArrayList; -} - -function compareLeftRectangleBorders(rn1, rn2){ - return compare_4(rn1.rectangle.x_0, rn2.rectangle.x_0); -} - -function compareRightRectangleBorders(rn1, rn2){ - return compare_4(rn1.rectangle.x_0 + rn1.rectangle.width_0, rn2.rectangle.x_0 + rn2.rectangle.width_0); -} - -function createForDirection(direction){ - var remover; - remover = new RectangleStripOverlapRemover; - remover.overlapRemovalDirection = direction; - return remover; -} - -defineClass(1786, 1, {}, RectangleStripOverlapRemover); -_.gapVertical = 5; -_.startCoordinate = 0; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover', 1786); -function RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type(){ -} - -defineClass(1787, 1, $intern_88, RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); -_.compare_1 = function compare_18(arg0, arg1){ - return compareLeftRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); -} -; -_.equals_0 = function equals_70(other){ - return this === other; -} -; -_.reversed = function reversed_10(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type', 1787); -function RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type(){ -} - -defineClass(1789, 1, $intern_88, RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type); -_.compare_1 = function compare_19(arg0, arg1){ - return compareRightRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); -} -; -_.equals_0 = function equals_71(other){ - return this === other; -} -; -_.reversed = function reversed_11(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type', 1789); -function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection = emptyMethod; - UP = new RectangleStripOverlapRemover$OverlapRemovalDirection('UP', 0); - DOWN = new RectangleStripOverlapRemover$OverlapRemovalDirection('DOWN', 1); - LEFT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('LEFT', 2); - RIGHT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('RIGHT', 3); -} - -function RectangleStripOverlapRemover$OverlapRemovalDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_21(name_0){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); - return valueOf(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map() , $MAP_9), name_0); -} - -function values_27(){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]); -} - -defineClass(406, 22, {3:1, 35:1, 22:1, 406:1}, RectangleStripOverlapRemover$OverlapRemovalDirection); -var DOWN, LEFT_0, RIGHT_0, UP; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit = createForEnum('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/OverlapRemovalDirection', 406, Ljava_lang_Enum_2_classLit, values_27, valueOf_21); -function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map(){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map = emptyMethod; - $MAP_9 = createValueOfMap(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]))); -} - -var $MAP_9; -function RectangleStripOverlapRemover$RectangleNode(originalRectangle, rectangle){ - this.overlappingNodes = new LinkedList; - this.originalRectangle = originalRectangle; - this.rectangle = rectangle; -} - -defineClass(222, 1, {222:1}, RectangleStripOverlapRemover$RectangleNode); -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$RectangleNode_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/RectangleNode', 222); -function RectangleStripOverlapRemover$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1788, 1, $intern_19, RectangleStripOverlapRemover$lambda$1$Type); -_.accept = function accept_51(arg0){ - $exportRectangle(this.$$outer_0, castTo(arg0, 222)); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/lambda$1$Type', 1788); -function $packPolyominoes(polyHolder){ - var grid, next, offX, offY, poly, poly$iterator, polys, successorBasedOnCost; - polys = polyHolder.polys; - grid = polyHolder.grid; - switch (castTo($getProperty(polyHolder, ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT)), 427).ordinal) { - case 0: - $sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparator)); - break; - case 1: - default:$sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparatorWithShape)); - } - switch (castTo($getProperty(polyHolder, POLYOMINO_HIGH_LEVEL_SORT), 428).ordinal) { - case 1: - $sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); - $sort(polys, new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); - $sort(polys, new PolyominoCompactor$CornerCasesGreaterThanRestComparator); - break; - case 0: - default:$sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); - $sort(polys, new PolyominoCompactor$MinNumOfExtensionDirectionsComparator); - } - switch (castTo($getProperty(polyHolder, POLYOMINO_TRAVERSAL_STRATEGY), 250).ordinal) { - case 0: - successorBasedOnCost = new SuccessorMaxNormWindingInMathPosSense; - break; - case 1: - successorBasedOnCost = new SuccessorLineByLine; - break; - case 2: - successorBasedOnCost = new SuccessorManhattan; - break; - case 3: - successorBasedOnCost = new SuccessorJitter; - break; - case 5: - successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorManhattan); - break; - case 4: - successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorLineByLine); - break; - case 7: - successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorLineByLine), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); - break; - case 8: - successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorJitter), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); - break; - case 6: - default:successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorJitter); - } - for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - poly = castTo($next_7(poly$iterator), 167); - offX = 0; - offY = 0; - next = new Pair(valueOf_4(offX), valueOf_4(offY)); - while ($intersectsWithCenterBased_0(grid, poly, offX, offY)) { - next = castTo(successorBasedOnCost.apply_3(next, poly), 46); - offX = castTo(next.first, 19).value_0; - offY = castTo(next.second, 19).value_0; - } - $addFilledCellsFrom_0(grid, poly, offX, offY); - } -} - -function $compare_1(o1, o2){ - var detectDirections, dirSet, numDir1, numDir2; - detectDirections = new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - numDir1 = dirSet.size_1(); - numDir1 = numDir1 == 2?1:0; - numDir1 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir1 = 0); - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); - numDir2 = dirSet.size_1(); - numDir2 = numDir2 == 2?1:0; - numDir2 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir2 = 0); - if (numDir1 < numDir2) { - return -1; - } - if (numDir1 == numDir2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$CornerCasesGreaterThanRestComparator(){ -} - -defineClass(1304, 1, $intern_88, PolyominoCompactor$CornerCasesGreaterThanRestComparator); -_.compare_1 = function compare_20(o1, o2){ - return $compare_1(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_72(other){ - return this === other; -} -; -_.reversed = function reversed_12(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator', 1304); -function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type(){ -} - -defineClass(1307, 1, {}, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type); -_.apply_0 = function apply_40(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type', 1307); -function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type(){ -} - -defineClass(1308, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type); -_.test_0 = function test_10(arg0){ - return castTo(arg0, 323).horizontal; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type', 1308); -function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type(){ -} - -defineClass(1309, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type); -_.test_0 = function test_11(arg0){ - return castTo(arg0, 323).horizontal; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type', 1309); -function $compare_2(o1, o2){ - var detectDirections, dirSet, numDir1, numDir2; - detectDirections = new PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - numDir1 = dirSet.size_1(); - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); - numDir2 = dirSet.size_1(); - if (numDir1 < numDir2) { - return -1; - } - if (numDir1 == numDir2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinNumOfExtensionDirectionsComparator(){ -} - -defineClass(1302, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionDirectionsComparator); -_.compare_1 = function compare_21(o1, o2){ - return $compare_2(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_73(other){ - return this === other; -} -; -_.reversed = function reversed_13(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator', 1302); -function PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type(){ -} - -defineClass(1305, 1, {}, PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type); -_.apply_0 = function apply_41(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type', 1305); -function $compare_3(o1, o2){ - var numExt1, numExt2; - numExt1 = o1.polyominoExtensions.array.length; - numExt2 = o2.polyominoExtensions.array.length; - if (numExt1 < numExt2) { - return -1; - } - if (numExt1 == numExt2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinNumOfExtensionsComparator(){ -} - -defineClass(767, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionsComparator); -_.compare_1 = function compare_22(o1, o2){ - return $compare_3(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_74(other){ - return this === other; -} -; -_.reversed = function reversed_14(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionsComparator', 767); -function $compare_4(o1, o2){ - var halfPeri1, halfPeri2; - halfPeri1 = o1.xSize + o1.ySize; - halfPeri2 = o2.xSize + o2.ySize; - if (halfPeri1 < halfPeri2) { - return -1; - } - if (halfPeri1 == halfPeri2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinPerimeterComparator(){ -} - -defineClass(1300, 1, $intern_88, PolyominoCompactor$MinPerimeterComparator); -_.compare_1 = function compare_23(o1, o2){ - return $compare_4(castTo(o1, 321), castTo(o2, 321)); -} -; -_.equals_0 = function equals_75(other){ - return this === other; -} -; -_.reversed = function reversed_15(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparator', 1300); -function $compare_5(o1, o2){ - var height, val1, val2, width_0; - width_0 = o1.xSize; - height = o1.ySize; - width_0 < height?(width_0 *= width_0):(height *= height); - val1 = width_0 + height; - width_0 = o2.xSize; - height = o2.ySize; - width_0 < height?(width_0 *= width_0):(height *= height); - val2 = width_0 + height; - if (val1 < val2) { - return -1; - } - if (val1 == val2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinPerimeterComparatorWithShape(){ -} - -defineClass(1301, 1, $intern_88, PolyominoCompactor$MinPerimeterComparatorWithShape); -_.compare_1 = function compare_24(o1, o2){ - return $compare_5(castTo(o1, 321), castTo(o2, 321)); -} -; -_.equals_0 = function equals_76(other){ - return this === other; -} -; -_.reversed = function reversed_16(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparatorWithShape_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparatorWithShape', 1301); -function $compare_6(o1, o2){ - var detectDirections, dirSet, numDir1, numDir2; - detectDirections = new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - numDir1 = dirSet.size_1(); - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); - numDir2 = dirSet.size_1(); - numDir1 = numDir1 == 1?1:0; - numDir2 = numDir2 == 1?1:0; - if (numDir1 < numDir2) { - return -1; - } - if (numDir1 == numDir2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator(){ -} - -defineClass(1303, 1, $intern_88, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); -_.compare_1 = function compare_25(o1, o2){ - return $compare_6(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_77(other){ - return this === other; -} -; -_.reversed = function reversed_17(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator', 1303); -function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type(){ -} - -defineClass(1306, 1, {}, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type); -_.apply_0 = function apply_42(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type', 1306); -function fillPolyomino(poly){ - var eastProfile, height, northProfile, southProfile, westProfile, width_0, x_0, xi, xi0, xi1, y_0, yi, yi0, yi1; - width_0 = poly.xSize; - northProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); - southProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); - height = poly.ySize; - eastProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); - westProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); - for (xi0 = 0; xi0 < width_0; xi0++) { - y_0 = 0; - while (y_0 < height && !$isBlocked(poly, xi0, y_0)) { - ++y_0; - } - northProfile[xi0] = y_0; - } - for (xi1 = 0; xi1 < width_0; xi1++) { - y_0 = height - 1; - while (y_0 >= 0 && !$isBlocked(poly, xi1, y_0)) { - --y_0; - } - southProfile[xi1] = y_0; - } - for (yi0 = 0; yi0 < height; yi0++) { - x_0 = 0; - while (x_0 < width_0 && !$isBlocked(poly, x_0, yi0)) { - ++x_0; - } - eastProfile[yi0] = x_0; - } - for (yi1 = 0; yi1 < height; yi1++) { - x_0 = width_0 - 1; - while (x_0 >= 0 && !$isBlocked(poly, x_0, yi1)) { - --x_0; - } - westProfile[yi1] = x_0; - } - for (xi = 0; xi < width_0; xi++) { - for (yi = 0; yi < height; yi++) { - xi < westProfile[yi] && xi > eastProfile[yi] && yi < southProfile[xi] && yi > northProfile[xi] && $set_5(poly, xi, yi, false, true); - } - } -} - -function $apply_4(this$static, coords, poly){ - return poly.polyominoExtensions.array.length > 0?$apply_9(this$static.externalFun, coords, poly):$apply_9(this$static.normalFun, coords, poly); -} - -function SuccessorCombination(normalFun, externalFun){ - this.normalFun = normalFun; - this.externalFun = externalFun; -} - -defineClass(777, 1, {}, SuccessorCombination); -_.apply_3 = function apply_43(coords, poly){ - return $apply_4(this, castTo(coords, 46), castTo(poly, 167)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorCombination_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorCombination', 777); -function $apply_5(coords){ - var cost, newX, newY, x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - newX = x_0; - newY = y_0; - cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); - if (x_0 <= 0 && x_0 == y_0) { - newX = 0; - newY = y_0 - 1; - } - else { - if (x_0 == -cost && y_0 != cost) { - newX = y_0; - newY = x_0; - y_0 >= 0 && ++newX; - } - else { - newX = -y_0; - newY = x_0; - } - } - return new Pair(valueOf_4(newX), valueOf_4(newY)); -} - -function SuccessorJitter(){ -} - -defineClass(644, 1, {}, SuccessorJitter); -_.apply_3 = function apply_44(coords, poly){ - var lastArg; - return $apply_5((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorJitter_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorJitter', 644); -function $apply_6(coords){ - var x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - if (x_0 >= 0) { - if (x_0 == y_0) { - return new Pair(valueOf_4(-x_0 - 1), valueOf_4(-x_0 - 1)); - } - if (x_0 == -y_0) { - return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); - } - } - if ($wnd.Math.abs(x_0) > $wnd.Math.abs(y_0)) { - if (x_0 < 0) { - return new Pair(valueOf_4(-x_0), valueOf_4(y_0)); - } - return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); - } - return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); -} - -function SuccessorLineByLine(){ -} - -defineClass(643, 1, {}, SuccessorLineByLine); -_.apply_3 = function apply_45(coords, poly){ - var lastArg; - return $apply_6((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorLineByLine_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorLineByLine', 643); -function $apply_7(coords){ - var newX, newY, x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - newX = x_0; - newY = y_0; - if (x_0 == 0 && y_0 == 0) { - newY -= 1; - } - else { - if (x_0 == -1 && y_0 <= 0) { - newX = 0; - newY -= 2; - } - else { - if (x_0 <= 0 && y_0 > 0) { - newX -= 1; - newY -= 1; - } - else { - if (x_0 >= 0 && y_0 < 0) { - newX += 1; - newY += 1; - } - else { - if (x_0 > 0 && y_0 >= 0) { - newX -= 1; - newY += 1; - } - else { - newX += 1; - newY -= 1; - } - } - } - } - } - return new Pair(valueOf_4(newX), valueOf_4(newY)); -} - -function SuccessorManhattan(){ -} - -defineClass(568, 1, {}, SuccessorManhattan); -_.apply_3 = function apply_46(coords, poly){ - var lastArg; - return $apply_7((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorManhattan_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorManhattan', 568); -function $apply_8(coords){ - var cost, x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); - if (x_0 < cost && y_0 == -cost) { - return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); - } - if (x_0 == cost && y_0 < cost) { - return new Pair(valueOf_4(x_0), valueOf_4(y_0 + 1)); - } - if (x_0 >= -cost && y_0 == cost) { - return new Pair(valueOf_4(x_0 - 1), valueOf_4(y_0)); - } - return new Pair(valueOf_4(x_0), valueOf_4(y_0 - 1)); -} - -function SuccessorMaxNormWindingInMathPosSense(){ -} - -defineClass(1356, 1, {}, SuccessorMaxNormWindingInMathPosSense); -_.apply_3 = function apply_47(coords, poly){ - var lastArg; - return $apply_8((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorMaxNormWindingInMathPosSense_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorMaxNormWindingInMathPosSense', 1356); -function $apply_9(this$static, coords, poly){ - return $apply_10(this$static, castTo(coords, 46), castTo(poly, 167)); -} - -function $apply_10(this$static, coords, poly){ - var containsNeg, containsPos, detectDirections, dirSet, invalid, newX, newY, nextCoords; - if (!equals_Ljava_lang_Object__Z__devirtual$(poly, this$static.lastPoly)) { - this$static.lastPoly = poly; - detectDirections = new SuccessorQuadrantsGeneric$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(poly.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - this$static.posX = true; - this$static.posY = true; - this$static.negX = true; - this$static.negY = true; - containsPos = dirSet.contains(($clinit_Direction() , NORTH)); - containsNeg = dirSet.contains(SOUTH); - containsPos && !containsNeg && (this$static.posY = false); - !containsPos && containsNeg && (this$static.negY = false); - containsPos = dirSet.contains(EAST); - containsNeg = dirSet.contains(WEST); - containsPos && !containsNeg && (this$static.negX = false); - !containsPos && containsNeg && (this$static.posX = false); - } - nextCoords = castTo(this$static.costFun.apply_3(coords, poly), 46); - newX = castTo(nextCoords.first, 19).value_0; - newY = castTo(nextCoords.second, 19).value_0; - invalid = false; - newX < 0?this$static.negX || (invalid = true):this$static.posX || (invalid = true); - newY < 0?this$static.negY || (invalid = true):this$static.posY || (invalid = true); - return invalid?$apply_10(this$static, nextCoords, poly):nextCoords; -} - -function SuccessorQuadrantsGeneric(costFun){ - this.costFun = costFun; -} - -defineClass(400, 1, {}, SuccessorQuadrantsGeneric); -_.apply_3 = function apply_48(coords, poly){ - return $apply_9(this, coords, poly); -} -; -_.negX = false; -_.negY = false; -_.posX = false; -_.posY = false; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric', 400); -function SuccessorQuadrantsGeneric$lambda$0$Type(){ -} - -defineClass(1357, 1, {}, SuccessorQuadrantsGeneric$lambda$0$Type); -_.apply_0 = function apply_49(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric/lambda$0$Type', 1357); -function $clinit_Direction(){ - $clinit_Direction = emptyMethod; - NORTH = new Direction('NORTH', 0); - EAST = new Direction('EAST', 1); - SOUTH = new Direction('SOUTH', 2); - WEST = new Direction('WEST', 3); - NORTH.horizontal = false; - EAST.horizontal = true; - SOUTH.horizontal = false; - WEST.horizontal = true; -} - -function Direction(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_22(name_0){ - $clinit_Direction(); - return valueOf(($clinit_Direction$Map() , $MAP_10), name_0); -} - -function values_28(){ - $clinit_Direction(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]); -} - -defineClass(323, 22, {3:1, 35:1, 22:1, 323:1}, Direction); -_.horizontal = false; -var EAST, NORTH, SOUTH, WEST; -var Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit = createForEnum('org.eclipse.elk.alg.common.polyomino.structures', 'Direction', 323, Ljava_lang_Enum_2_classLit, values_28, valueOf_22); -function $clinit_Direction$Map(){ - $clinit_Direction$Map = emptyMethod; - $MAP_10 = createValueOfMap(($clinit_Direction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]))); -} - -var $MAP_10; -function $incModTen(num){ - if (num > 8) { - return 0; - } - return num + 1; -} - -function $isBlocked(this$static, x_0, y_0){ - try { - return eq($retrieve(this$static, x_0, y_0), 1); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -function $isEmpty_0(this$static, x_0, y_0){ - try { - return eq($retrieve(this$static, x_0, y_0), 0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -function $isWeaklyBlocked(this$static, x_0, y_0){ - try { - return eq($retrieve(this$static, x_0, y_0), 2); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -function $retrieve(this$static, x_0, y_0){ - var value_0, xRest, xWord; - xWord = x_0 >> 5; - xRest = x_0 & 31; - value_0 = and_0(shru_0(this$static.grid[y_0][xWord], toInt_0(shl_0(xRest, 1))), 3); - return value_0; -} - -function $set_5(this$static, x_0, y_0, msb, lsb){ - var mask, xRest, xWord; - try { - if (x_0 >= this$static.xSize) { - throw toJs(new ArrayIndexOutOfBoundsException); - } - xWord = x_0 >> 5; - xRest = x_0 & 31; - mask = shl_0(1, toInt_0(shl_0(xRest, 1))); - lsb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); - mask = shl_0(mask, 1); - msb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -defineClass(1298, 1, {}); -_.toString_0 = function toString_78(){ - var count, item_0, output, x_0, x0, y_0; - output = ' '; - count = valueOf_4(0); - for (x0 = 0; x0 < this.xSize; x0++) { - output += '' + count.value_0; - count = valueOf_4($incModTen(count.value_0)); - } - output += '\n'; - count = valueOf_4(0); - for (y_0 = 0; y_0 < this.ySize; y_0++) { - output += '' + count.value_0; - count = valueOf_4($incModTen(count.value_0)); - for (x_0 = 0; x_0 < this.xSize; x_0++) { - item_0 = $retrieve(this, x_0, y_0); - compare_2(item_0, 0) == 0?(output += '_'):compare_2(item_0, 1) == 0?(output += 'X'):(output += '0'); - } - output += '\n'; - } - return $substring_1(output, 0, output.length - 1); -} -; -_.xSize = 0; -_.ySize = 0; -var Lorg_eclipse_elk_alg_common_polyomino_structures_TwoBitGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'TwoBitGrid', 1298); -function $addFilledCellsFrom(this$static, other, xOffset, yOffset){ - var x_0, xTranslated, y_0, yTranslated; - for (x_0 = 0; x_0 < other.xSize; x_0++) { - xTranslated = x_0 - other.xCenter + xOffset; - for (y_0 = 0; y_0 < other.ySize; y_0++) { - yTranslated = y_0 - other.yCenter + yOffset; - $isBlocked(other, x_0, y_0)?$isWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated) || $setBlockedCenterBased(this$static, xTranslated, yTranslated):$isWeaklyBlocked(other, x_0, y_0) && ($isBlockedCenterBased(this$static, xTranslated, yTranslated) || $setWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated)); - } - } -} - -function $addFilledCellsFrom_0(this$static, other, xOffset, yOffset){ - var ext, ext$iterator; - $addFilledCellsFrom(this$static, other, xOffset, yOffset); - $setX(other, this$static.xCenter - other.xCenter + xOffset); - $setY(other, this$static.yCenter - other.yCenter + yOffset); - for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { - ext = castTo($next_7(ext$iterator), 324); - switch (ext.first.ordinal) { - case 0: - $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, 0, other.x_0 + ext.third.value_0, other.y_0 - 1); - break; - case 1: - $weaklyBlockArea(this$static, other.x_0 + other.xSize, other.y_0 + ext.second.value_0, this$static.xSize - 1, other.y_0 + ext.third.value_0); - break; - case 2: - $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, other.y_0 + other.ySize, other.x_0 + ext.third.value_0, this$static.ySize - 1); - break; - default:$weaklyBlockArea(this$static, 0, other.y_0 + ext.second.value_0, other.x_0 - 1, other.y_0 + ext.third.value_0); - } - } -} - -function $getFilledBounds(this$static){ - var gridHeight, gridWidth, height, maxX, maxY, minX, minY, width_0, xi, yi; - gridWidth = this$static.xSize; - gridHeight = this$static.ySize; - minX = $intern_0; - maxX = $intern_42; - minY = $intern_0; - maxY = $intern_42; - for (xi = 0; xi < gridWidth; ++xi) { - for (yi = 0; yi < gridHeight; ++yi) { - if ($isBlocked(this$static, xi, yi)) { - minX = $wnd.Math.min(minX, xi); - maxX = $wnd.Math.max(maxX, xi); - minY = $wnd.Math.min(minY, yi); - maxY = $wnd.Math.max(maxY, yi); - } - } - } - width_0 = maxX - minX + 1; - height = maxY - minY + 1; - return new Quadruple(valueOf_4(minX), valueOf_4(minY), valueOf_4(width_0), valueOf_4(height)); -} - -function $intersectsWithCenterBased(this$static, other, xOffset, yOffset){ - var x_0, xTranslated, y_0, yTranslated, xt, yt; - for (x_0 = 0; x_0 < other.xSize; x_0++) { - xTranslated = x_0 - other.xCenter + xOffset; - for (y_0 = 0; y_0 < other.ySize; y_0++) { - yTranslated = y_0 - other.yCenter + yOffset; - if ((xt = xTranslated , yt = yTranslated , xt += this$static.xCenter , yt += this$static.yCenter , xt >= 0 && yt >= 0 && xt < this$static.xSize && yt < this$static.ySize) && (!$isEmpty_0(other, x_0, y_0) && $isBlockedCenterBased(this$static, xTranslated, yTranslated) || $isBlocked(other, x_0, y_0) && !$isEmptyCenterBased(this$static, xTranslated, yTranslated))) { - return true; - } - } - } - return false; -} - -function $intersectsWithCenterBased_0(this$static, other, xOffset, yOffset){ - var bottomY, ext, ext$iterator, intersects, leftX, rightX, topY; - if ($intersectsWithCenterBased(this$static, other, xOffset, yOffset)) { - return true; - } - else { - for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { - ext = castTo($next_7(ext$iterator), 324); - intersects = false; - leftX = this$static.xCenter - other.xCenter + xOffset; - rightX = leftX + other.xSize; - topY = this$static.yCenter - other.yCenter + yOffset; - bottomY = topY + other.ySize; - switch (ext.first.ordinal) { - case 0: - intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, 0, leftX + ext.third.value_0, topY - 1); - break; - case 1: - intersects = $weaklyIntersectsArea(this$static, rightX, topY + ext.second.value_0, this$static.xSize - 1, topY + ext.third.value_0); - break; - case 2: - intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, bottomY, leftX + ext.third.value_0, this$static.ySize - 1); - break; - default:intersects = $weaklyIntersectsArea(this$static, 0, topY + ext.second.value_0, leftX - 1, topY + ext.third.value_0); - } - if (intersects) { - return true; - } - } - } - return false; -} - -function $isBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - return $isBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $isEmptyCenterBased(this$static, x_0, y_0){ - var e; - try { - return $isEmpty_0(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $isWeaklyBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - return $isWeaklyBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $reinitialize(this$static, width_0, height){ - this$static.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); - this$static.xSize = width_0; - this$static.ySize = height; - this$static.xCenter = width_0 - 1 >> 1; - this$static.yCenter = height - 1 >> 1; -} - -function $setBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, false, true); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $setWeaklyBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, true, false); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $weaklyBlockArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ - var xi, yi; - for (yi = yUpperleft; yi <= yBottomRight; yi++) { - for (xi = xUpperLeft; xi <= xBottomRight; xi++) { - $isBlocked(this$static, xi, yi) || $set_5(this$static, xi, yi, true, false); - } - } -} - -function $weaklyIntersectsArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ - var xi, yi; - for (yi = yUpperleft; yi <= yBottomRight; yi++) { - for (xi = xUpperLeft; xi <= xBottomRight; xi++) { - if ($isBlocked(this$static, xi, yi)) { - return true; - } - } - } - return false; -} - -function PlanarGrid(width_0, height){ - this.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); - this.xSize = width_0; - this.ySize = height; - this.xCenter = width_0 - 1 >> 1; - this.yCenter = height - 1 >> 1; -} - -defineClass(321, 1298, {321:1}, PlanarGrid); -_.xCenter = 0; -_.yCenter = 0; -var Lorg_eclipse_elk_alg_common_polyomino_structures_PlanarGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'PlanarGrid', 321); -function $setX(this$static, val){ - this$static.x_0 = val; -} - -function $setY(this$static, val){ - this$static.y_0 = val; -} - -function Polyomino(extensions){ - PlanarGrid.call(this, 0, 0); - this.polyominoExtensions = extensions; -} - -defineClass(167, 321, {321:1, 167:1}); -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyomino_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyomino', 167); -var Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IPropertyHolder'); -function $copyProperties(this$static, other){ - var otherMap; - if (!other) { - return this$static; - } - otherMap = other.getAllProperties(); - otherMap.isEmpty() || (!this$static.propertyMap?(this$static.propertyMap = new HashMap_1(otherMap)):$putAll(this$static.propertyMap, otherMap)); - return this$static; -} - -function $getAllProperties(this$static){ - return !this$static.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this$static.propertyMap; -} - -function $getProperty(this$static, property){ - var defaultValue, value_0; - value_0 = (!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $get_10(this$static.propertyMap, property)); - if (value_0 != null) { - return value_0; - } - defaultValue = property.getDefault(); - instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, defaultValue)) , this$static); - return defaultValue; -} - -function $hasProperty(this$static, property){ - return !!this$static.propertyMap && $containsKey_3(this$static.propertyMap, property); -} - -function $setProperty(this$static, property, value_0){ - return value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)) , this$static; -} - -function $setProperty_0(this$static, property, value_0){ - value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)); - return this$static; -} - -function MapPropertyHolder(){ -} - -defineClass(134, 1, $intern_95, MapPropertyHolder); -_.setProperty = function setProperty(property, value_0){ - return $setProperty(this, property, value_0); -} -; -_.getAllProperties = function getAllProperties(){ - return $getAllProperties(this); -} -; -_.getProperty = function getProperty(property){ - return $getProperty(this, property); -} -; -_.hasProperty = function hasProperty(property){ - return $hasProperty(this, property); -} -; -var Lorg_eclipse_elk_graph_properties_MapPropertyHolder_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'MapPropertyHolder', 134); -function Polyominoes(polys, aspectRatio, fill){ - var gridHeight, gridWidth, poly, poly$iterator; - this.polys = new ArrayList; - gridWidth = 0; - gridHeight = 0; - for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - poly = castTo($next_7(poly$iterator), 167); - fill && fillPolyomino(poly); - $add_3(this.polys, poly); - gridWidth += poly.xSize; - gridHeight += poly.ySize; - } - if (this.polys.array.length > 0) { - poly = castTo($get_11(this.polys, 0), 167); - gridWidth += poly.xSize; - gridHeight += poly.ySize; - } - gridWidth *= 2; - gridHeight *= 2; - aspectRatio > 1?(gridWidth = round_int($wnd.Math.ceil(gridWidth * aspectRatio))):(gridHeight = round_int($wnd.Math.ceil(gridHeight / aspectRatio))); - this.grid = new PlanarGrid(gridWidth, gridHeight); -} - -defineClass(1299, 134, $intern_95, Polyominoes); -var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyominoes_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyominoes', 1299); -function compact_0(tree, orthogonal){ - svg_0 = new SVGImage; - orthogonalCompaction = orthogonal; - root_0 = tree; - castTo(root_0.node, 65); - drawTree(root_0, svg_0, null); - compactTree(root_0); -} - -function compactTree(tree){ - var child, child$iterator, compactionVector, minUnderlap, rc, rt; - $forEach_1(tree.children, new DepthFirstCompaction$0methodref$compactTree$Type); - for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 221); - compactionVector = $sub_0($clone_0(castTo(tree.node, 65).vertex), castTo(child.node, 65).vertex); - if (orthogonalCompaction) { - rt = castTo(tree.node, 65).rect; - rc = castTo(child.node, 65).rect; - if ($wnd.Math.abs(compactionVector.x_0) >= $wnd.Math.abs(compactionVector.y_0)) { - compactionVector.y_0 = 0; - rc.y_0 + rc.height > rt.y_0 && rc.y_0 < rt.y_0 + rt.height && $scaleToLength(compactionVector, $wnd.Math.max(rt.x_0 - (rc.x_0 + rc.width_0), rc.x_0 - (rt.x_0 + rt.width_0))); - } - else { - compactionVector.x_0 = 0; - rc.x_0 + rc.width_0 > rt.x_0 && rc.x_0 < rt.x_0 + rt.width_0 && $scaleToLength(compactionVector, $wnd.Math.max(rt.y_0 - (rc.y_0 + rc.height), rc.y_0 - (rt.y_0 + rt.height))); - } - } - else { - $scaleToLength(compactionVector, $underlap(castTo(tree.node, 65), castTo(child.node, 65))); - } - minUnderlap = $wnd.Math.sqrt(compactionVector.x_0 * compactionVector.x_0 + compactionVector.y_0 * compactionVector.y_0); - minUnderlap = getMinUnderlap(root_0, child, minUnderlap, compactionVector); - $scaleToLength(compactionVector, minUnderlap); - $translate(castTo(child.node, 65), compactionVector); - $forEach_1(child.children, new DepthFirstCompaction$lambda$1$Type(compactionVector)); - castTo(root_0.node, 65); - drawTree(root_0, svg_0, child); - } -} - -function drawTree(t, svgImage, mark){ - castTo(t.node, 65); - castTo(t.node, 65); - castTo(t.node, 65); - $forEach_1(t.children, new DepthFirstCompaction$lambda$2$Type(mark, svgImage, t)); -} - -function getMinUnderlap(tree, child, currentMinUnderlap, compactionVector){ - var c, c$iterator, minUnderlap; - minUnderlap = $wnd.Math.min(currentMinUnderlap, minUnderlapWithSubtree(castTo(tree.node, 65), child, currentMinUnderlap, compactionVector)); - for (c$iterator = new ArrayList$1(tree.children); c$iterator.i < c$iterator.this$01.array.length;) { - c = castTo($next_7(c$iterator), 221); - c != child && (minUnderlap = $wnd.Math.min(minUnderlap, getMinUnderlap(c, child, minUnderlap, compactionVector))); - } - return minUnderlap; -} - -function lambda$1_4(compactionVector_0, c_1){ - $translate(castTo(c_1.node, 65), compactionVector_0); - $forEach_1(c_1.children, new DepthFirstCompaction$lambda$1$Type(compactionVector_0)); -} - -function lambda$2_0(mark_0, svgImage_1, t_2, c_3){ - c_3 == mark_0?(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0):(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0); - drawTree(c_3, svgImage_1, mark_0); -} - -function minUnderlapWithSubtree(r, tree, currentMinUnderlap, compactionVector){ - var c, child, child$iterator, minUnderlap; - minUnderlap = currentMinUnderlap; - for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 221); - c = castTo(child.node, 65); - if (fuzzyCompare(r.rect.x_0, c.rect.x_0 + c.rect.width_0) <= 0 && fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) <= 0 && fuzzyCompare(r.rect.y_0, c.rect.y_0 + c.rect.height) <= 0 && fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) <= 0) { - if (fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) == 0 && compactionVector.x_0 < 0 || fuzzyCompare(c.rect.x_0 + c.rect.width_0, r.rect.x_0) == 0 && compactionVector.x_0 > 0 || fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) == 0 && compactionVector.y_0 < 0 || fuzzyCompare(c.rect.y_0 + c.rect.height, r.rect.y_0) == 0 && compactionVector.y_0 > 0) { - minUnderlap = 0; - break; - } - } - else { - minUnderlap = $wnd.Math.min(minUnderlap, $distance(r, c, compactionVector)); - } - minUnderlap = $wnd.Math.min(minUnderlap, minUnderlapWithSubtree(r, child, minUnderlap, compactionVector)); - } - return minUnderlap; -} - -var orthogonalCompaction = false, root_0, svg_0; -function DepthFirstCompaction$0methodref$compactTree$Type(){ -} - -defineClass(1766, 1, $intern_19, DepthFirstCompaction$0methodref$compactTree$Type); -_.accept = function accept_52(arg0){ - compactTree(castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$0methodref$compactTree$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/0methodref$compactTree$Type', 1766); -function DepthFirstCompaction$lambda$1$Type(compactionVector_0){ - this.compactionVector_0 = compactionVector_0; -} - -defineClass(810, 1, $intern_19, DepthFirstCompaction$lambda$1$Type); -_.accept = function accept_53(arg0){ - lambda$1_4(this.compactionVector_0, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$1$Type', 810); -function DepthFirstCompaction$lambda$2$Type(mark_0, svgImage_1, t_2){ - this.mark_0 = mark_0; - this.svgImage_1 = svgImage_1; - this.t_2 = t_2; -} - -defineClass(1767, 1, $intern_19, DepthFirstCompaction$lambda$2$Type); -_.accept = function accept_54(arg0){ - lambda$2_0(this.mark_0, this.svgImage_1, this.t_2, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$2$Type', 1767); -function $clinit_InternalProperties(){ - $clinit_InternalProperties = emptyMethod; - DEBUG_SVG = new Property_0('debugSVG', ($clinit_Boolean() , false)); - OVERLAPS_EXISTED = new Property_0('overlapsExisted', true); -} - -var DEBUG_SVG, OVERLAPS_EXISTED; -function $distance(this$static, other, v){ - var distance, e1, e1$iterator, e2, e2$iterator, result; - result = $intern_59; - for (e1$iterator = new ArrayList$1(getRectEdges(this$static.rect)); e1$iterator.i < e1$iterator.this$01.array.length;) { - e1 = castTo($next_7(e1$iterator), 168); - for (e2$iterator = new ArrayList$1(getRectEdges(other.rect)); e2$iterator.i < e2$iterator.this$01.array.length;) { - e2 = castTo($next_7(e2$iterator), 168); - distance = distance_0(e1.u, e1.v, e2.u, e2.v, v); - result = $wnd.Math.min(result, distance); - } - } - return result; -} - -function $setCenterPosition(this$static, p){ - $translate(this$static, $sub_0(new KVector_1(p.x_0, p.y_0), this$static.vertex)); -} - -function $translate(this$static, v){ - $add_19(this$static.vertex, v); - this$static.rect.x_0 += v.x_0; - this$static.rect.y_0 += v.y_0; -} - -function $underlap(this$static, other){ - var hScale, horizontalCenterDistance, horizontalUnderlap, scale, vScale, verticalCenterDistance, verticalUnderlap; - horizontalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).x_0 - $getCenter(other.rect).x_0); - verticalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).y_0 - $getCenter(other.rect).y_0); - horizontalUnderlap = 0; - verticalUnderlap = 0; - hScale = 1; - vScale = 1; - if (horizontalCenterDistance > this$static.rect.width_0 / 2 + other.rect.width_0 / 2) { - horizontalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.x_0 - (other.rect.x_0 + other.rect.width_0)), $wnd.Math.abs(this$static.rect.x_0 + this$static.rect.width_0 - other.rect.x_0)); - hScale = 1 - horizontalUnderlap / horizontalCenterDistance; - } - if (verticalCenterDistance > this$static.rect.height / 2 + other.rect.height / 2) { - verticalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.y_0 - (other.rect.y_0 + other.rect.height)), $wnd.Math.abs(this$static.rect.y_0 + this$static.rect.height - other.rect.y_0)); - vScale = 1 - verticalUnderlap / verticalCenterDistance; - } - scale = $wnd.Math.min(hScale, vScale); - return (1 - scale) * $wnd.Math.sqrt(horizontalCenterDistance * horizontalCenterDistance + verticalCenterDistance * verticalCenterDistance); -} - -function Node_0(v, r){ - this.originalVertex = v; - this.vertex = $clone_0(this.originalVertex); - this.rect = new ElkRectangle_1(r); -} - -defineClass(65, 1, {65:1}, Node_0); -var Lorg_eclipse_elk_alg_common_spore_Node_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'Node', 65); -function $overlap_0(n1, n2){ - if (!n1 || !n2 || n1 == n2) { - return false; - } - return fuzzyCompare(n1.rect.x_0, n2.rect.x_0 + n2.rect.width_0) < 0 && fuzzyCompare(n2.rect.x_0, n1.rect.x_0 + n1.rect.width_0) < 0; -} - -function $sweep_0(this$static, nodes){ - var n, n$iterator, overlapsScanlineHandler, points; - points = new ArrayList; - for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 65); - $add_3(points, new ScanlineOverlapCheck$Timestamp(n, true)); - $add_3(points, new ScanlineOverlapCheck$Timestamp(n, false)); - } - overlapsScanlineHandler = new ScanlineOverlapCheck$OverlapsScanlineHandler(this$static); - $clear_8(overlapsScanlineHandler.intervalsSortLeft.map_0); - execute(points, this$static.overlapsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [overlapsScanlineHandler]))); -} - -function ScanlineOverlapCheck(oh){ - this.overlapsScanlineComparator = new ScanlineOverlapCheck$lambda$0$Type; - this.overlapHandler = oh; -} - -function lambda$0_12(p1_0, p2_1){ - var cmp, y1, y2; - y1 = p1_0.node.rect.y_0; - p1_0.low || (y1 += p1_0.node.rect.height); - y2 = p2_1.node.rect.y_0; - p2_1.low || (y2 += p2_1.node.rect.height); - cmp = compare_4(y1, y2); - if (cmp == 0) { - if (!p1_0.low && p2_1.low) { - return -1; - } - else if (!p2_1.low && p1_0.low) { - return 1; - } - } - return cmp; -} - -defineClass(1250, 1, {}, ScanlineOverlapCheck); -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck', 1250); -function $handle_0(this$static, p){ - p.low?$insert_3(this$static, p):$remove_28(this$static.intervalsSortLeft, p.node); -} - -function $insert_3(this$static, p){ - var entry, entryIterator, other, other$iterator, overlapsFound, success; - success = $add_10(this$static.intervalsSortLeft, p.node); - if (!success) { - throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline overlap calculation.')); - } - overlapsFound = false; - for (other$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this$static.intervalsSortLeft.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(other$iterator.val$entryIterator2.iter);) { - other = (entry = $next_11(other$iterator.val$entryIterator2) , castTo(entry.getKey(), 65)); - if ($overlap_0(p.node, other)) { - $handle_4(this$static.this$01.overlapHandler, p.node, other); - overlapsFound = true; - } - else { - if (overlapsFound) { - break; - } - } - } -} - -function ScanlineOverlapCheck$OverlapsScanlineHandler(this$0){ - this.this$01 = this$0; - this.intervalsSortLeft = new TreeSet_0(castTo(checkNotNull(new ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type), 62)); -} - -function lambda$0_13(n1_0, n2_1){ - var cmp; - cmp = compare_4(n1_0.rect.x_0, n2_1.rect.x_0); - if (cmp != 0) { - return cmp; - } - cmp = compare_4(n1_0.originalVertex.x_0, n2_1.originalVertex.x_0); - if (cmp != 0) { - return cmp; - } - return compare_4(n1_0.originalVertex.y_0, n2_1.originalVertex.y_0); -} - -defineClass(1251, 1, {679:1}, ScanlineOverlapCheck$OverlapsScanlineHandler); -_.handle = function handle_0(p){ - $handle_0(this, castTo(p, 440)); -} -; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler', 1251); -function ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type(){ -} - -defineClass(1252, 1, $intern_88, ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type); -_.compare_1 = function compare_26(arg0, arg1){ - return lambda$0_13(castTo(arg0, 65), castTo(arg1, 65)); -} -; -_.equals_0 = function equals_78(other){ - return this === other; -} -; -_.reversed = function reversed_18(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type', 1252); -function ScanlineOverlapCheck$Timestamp(node, low){ - this.node = node; - this.low = low; -} - -defineClass(440, 1, {440:1}, ScanlineOverlapCheck$Timestamp); -_.low = false; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/Timestamp', 440); -function ScanlineOverlapCheck$lambda$0$Type(){ -} - -defineClass(1253, 1, $intern_88, ScanlineOverlapCheck$lambda$0$Type); -_.compare_1 = function compare_27(arg0, arg1){ - return lambda$0_12(castTo(arg0, 440), castTo(arg1, 440)); -} -; -_.equals_0 = function equals_79(other){ - return this === other; -} -; -_.reversed = function reversed_19(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/lambda$0$Type', 1253); -function SVGImage(){ -} - -defineClass(550, 1, {}, SVGImage); -var Lorg_eclipse_elk_alg_common_utils_SVGImage_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'SVGImage', 550); -function UniqueTriple(f, s, t){ - this.first = f; - this.second = s; - this.third = t; -} - -defineClass(324, 1, {324:1}, UniqueTriple); -_.toString_0 = function toString_79(){ - return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; -} -; -var Lorg_eclipse_elk_alg_common_utils_UniqueTriple_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'UniqueTriple', 324); -function getRectEdges(r){ - var rectEdegs; - rectEdegs = new ArrayList; - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0 + r.width_0, r.y_0))); - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0, r.y_0 + r.height))); - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0 + r.width_0, r.y_0))); - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0, r.y_0 + r.height))); - return rectEdegs; -} - -function overlap_0(r1, r2){ - var horizontalCenterDistance, horizontalOverlap, verticalCenterDistance, verticalOverlap; - horizontalOverlap = $wnd.Math.min($wnd.Math.abs(r1.x_0 - (r2.x_0 + r2.width_0)), $wnd.Math.abs(r1.x_0 + r1.width_0 - r2.x_0)); - verticalOverlap = $wnd.Math.min($wnd.Math.abs(r1.y_0 - (r2.y_0 + r2.height)), $wnd.Math.abs(r1.y_0 + r1.height - r2.y_0)); - horizontalCenterDistance = $wnd.Math.abs(r1.x_0 + r1.width_0 / 2 - (r2.x_0 + r2.width_0 / 2)); - if (horizontalCenterDistance > r1.width_0 / 2 + r2.width_0 / 2) { - return 1; - } - verticalCenterDistance = $wnd.Math.abs(r1.y_0 + r1.height / 2 - (r2.y_0 + r2.height / 2)); - if (verticalCenterDistance > r1.height / 2 + r2.height / 2) { - return 1; - } - if (horizontalCenterDistance == 0 && verticalCenterDistance == 0) { - return 0; - } - if (horizontalCenterDistance == 0) { - return verticalOverlap / verticalCenterDistance + 1; - } - if (verticalCenterDistance == 0) { - return horizontalOverlap / horizontalCenterDistance + 1; - } - return $wnd.Math.min(horizontalOverlap / horizontalCenterDistance, verticalOverlap / verticalCenterDistance) + 1; -} - -defineClass(209, 1, $intern_96); -var Lorg_eclipse_elk_core_AbstractLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core', 'AbstractLayoutProvider', 209); -function DisCoLayoutProvider(){ -} - -defineClass(1132, 209, $intern_96, DisCoLayoutProvider); -_.layout = function layout(layoutGraph, progressMonitor){ - var lad, layoutProvider, requestedAlgorithm, transformer; - $begin(progressMonitor, 'Connected Components Compaction', 1); - this.componentSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_DisCoOptions() , SPACING_COMPONENT_COMPONENT)))); - if ($hasProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)) { - requestedAlgorithm = castToString($getProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); - lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); - if (lad) { - layoutProvider = castTo($fetch(lad.providerPool), 209); - layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); - } - } - transformer = new ElkGraphTransformer(this.componentSpacing); - this.result = $importGraph(transformer, layoutGraph); - switch (castTo($getProperty_0(layoutGraph, ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY)), 481).ordinal) { - case 0: - $compact_0(new DisCoPolyominoCompactor, this.result); - $setProperty_1(layoutGraph, DEBUG_DISCO_POLYS_0, $getProperty(this.result, DEBUG_DISCO_POLYS_0)); - break; - default:$clinit_System(); - } - $applyLayout(transformer); - $setProperty_1(layoutGraph, DEBUG_DISCO_GRAPH_0, this.result); - $done_0(progressMonitor); -} -; -_.componentSpacing = 0; -var Lorg_eclipse_elk_alg_disco_DisCoLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoLayoutProvider', 1132); -function $applyToDCGraph(this$static){ - var absoluteIntPositionX, absoluteIntPositionY, absolutePositionOnCanvas, gridCrop, originalCoordinates, padding, paddingHori, paddingVert, parentHeight, parentWidth, poly, poly$iterator; - gridCrop = $getFilledBounds(this$static.grid); - padding = castTo($getProperty(this$static.cmpGraph, ($clinit_DisCoOptions() , PADDING)), 116); - paddingHori = padding.left + padding.right; - paddingVert = padding.top_0 + padding.bottom; - parentWidth = gridCrop.third.value_0 * this$static.gridCellSizeX + paddingHori; - parentHeight = gridCrop.fourth.value_0 * this$static.gridCellSizeY + paddingVert; - $setDimensions(this$static.cmpGraph, new KVector_1(parentWidth, parentHeight)); - for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - poly = castTo($next_7(poly$iterator), 562); - absoluteIntPositionX = poly.x_0 - gridCrop.first.value_0; - absoluteIntPositionY = poly.y_0 - gridCrop.second.value_0; - absolutePositionOnCanvas = $add_19($scale_0(new KVector_1(absoluteIntPositionX, absoluteIntPositionY), poly.cellSizeX, poly.cellSizeY), $scale($sub($clone_0($getDimensionsOfBoundingRectangle(poly.representee)), poly.pWidth * poly.cellSizeX, poly.pHeight * poly.cellSizeY), -0.5)); - originalCoordinates = $getMinCorner(poly.representee); - $setOffset(poly.representee, $sub_0(absolutePositionOnCanvas, originalCoordinates)); - } -} - -function $compact_0(this$static, graph){ - var gridCellRecommendation; - this$static.cmpGraph = graph; - this$static.polys = new ArrayList; - gridCellRecommendation = $computeCellSize(this$static.cmpGraph); - this$static.gridCellSizeX = gridCellRecommendation; - this$static.gridCellSizeY = gridCellRecommendation; - this$static.fill = $booleanValue(castToBoolean($getProperty(this$static.cmpGraph, ($clinit_PolyominoOptions() , POLYOMINO_FILL)))); - this$static.aspectRatio = castToDouble($getProperty(this$static.cmpGraph, ($clinit_CoreOptions() , ASPECT_RATIO_5))); - this$static.aspectRatio == null && (this$static.aspectRatio = 1); - $doubleValue(this$static.aspectRatio) > 1?(this$static.gridCellSizeX *= $doubleValue(this$static.aspectRatio)):(this$static.gridCellSizeY /= $doubleValue(this$static.aspectRatio)); - $createPolyominoes(this$static); - $packPolyominoes_0(this$static); - $applyToDCGraph(this$static); - $setProperty_0(this$static.cmpGraph, ($clinit_DisCoOptions() , DEBUG_DISCO_POLYS_0), this$static.polys); -} - -function $computeCellSize(graph){ - var bounds, comp, comp$iterator, comps, denominator, height, numOfComps, numerator, prodTerm, sumTerm, width_0; - sumTerm = 0; - prodTerm = 0; - comps = graph.components; - numOfComps = comps.map_0.size_1(); - for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 561); - bounds = (comp.changed && $update(comp) , comp.bounds); - width_0 = bounds.x_0; - height = bounds.y_0; - sumTerm += width_0 + height; - prodTerm += width_0 * height; - } - numerator = $wnd.Math.sqrt(400 * numOfComps * prodTerm - 4 * prodTerm + sumTerm * sumTerm) + sumTerm; - denominator = 2 * (100 * numOfComps - 1); - if (denominator == 0) { - return numerator; - } - return numerator / denominator; -} - -function $createPolyominoes(this$static){ - var comp, comp$iterator, comps, poly; - comps = this$static.cmpGraph.components; - for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 561); - poly = new DCPolyomino(comp, this$static.gridCellSizeX, this$static.gridCellSizeY); - $add_3(this$static.polys, poly); - } -} - -function $packPolyominoes_0(this$static){ - var id_0, poly$iterator, polyHolder; - id_0 = 0; - for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - castTo($next_7(poly$iterator), 562); - ++id_0; - } - polyHolder = new Polyominoes(this$static.polys, $doubleValue(this$static.aspectRatio), this$static.fill); - $packPolyominoes(polyHolder); - this$static.polys = polyHolder.polys; - this$static.grid = polyHolder.grid; -} - -function DisCoPolyominoCompactor(){ -} - -defineClass(1244, 1, {}, DisCoPolyominoCompactor); -_.fill = false; -_.gridCellSizeX = 0; -_.gridCellSizeY = 0; -var Lorg_eclipse_elk_alg_disco_DisCoPolyominoCompactor_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoPolyominoCompactor', 1244); -function $addElements(this$static, elements){ - var elem, elem$iterator; - for (elem$iterator = elements.iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - this$static.changed = true; - $add_6(this$static.shapes, elem); - elem.cp = this$static; - } -} - -function $getDimensionsOfBoundingRectangle(this$static){ - this$static.changed && $update(this$static); - return this$static.bounds; -} - -function $getMinCorner(this$static){ - this$static.changed && $update(this$static); - return this$static.minCornerOfBoundingRectangle; -} - -function $intersects(this$static, rect){ - var elem, elem$iterator; - for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - if (intersects_1(rect, elem.shape_0) || contains_51(rect, elem.shape_0)) { - return true; - } - } - return false; -} - -function $setOffset(this$static, offset){ - this$static.changed = true; - this$static.offset = offset; -} - -function $update(this$static){ - var dir_0, elem, elem$iterator, elemBounds, ext, ext$iterator, maxPos, maxX, maxY, minPos, minX, minY; - this$static.changed = false; - minX = $intern_59; - maxX = $intern_60; - minY = $intern_59; - maxY = $intern_60; - for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - elemBounds = elem.bounds; - minX = $wnd.Math.min(minX, elemBounds.x_0); - maxX = $wnd.Math.max(maxX, elemBounds.x_0 + elemBounds.width_0); - minY = $wnd.Math.min(minY, elemBounds.y_0); - maxY = $wnd.Math.max(maxY, elemBounds.y_0 + elemBounds.height); - for (ext$iterator = new ArrayList$1(elem.extensions); ext$iterator.i < ext$iterator.this$01.array.length;) { - ext = castTo($next_7(ext$iterator), 395); - dir_0 = ext.direction; - if (dir_0.horizontal) { - minPos = elemBounds.y_0 + ext.offset.y_0; - maxPos = minPos + ext.width_0; - minY = $wnd.Math.min(minY, minPos); - maxY = $wnd.Math.max(maxY, maxPos); - } - else { - minPos = elemBounds.x_0 + ext.offset.x_0; - maxPos = minPos + ext.width_0; - minX = $wnd.Math.min(minX, minPos); - maxX = $wnd.Math.max(maxX, maxPos); - } - } - } - this$static.bounds = new KVector_1(maxX - minX, maxY - minY); - this$static.minCornerOfBoundingRectangle = new KVector_1(minX + this$static.offset.x_0, minY + this$static.offset.y_0); -} - -function DCComponent(){ - this.offset = new KVector_1(0, 0); - this.shapes = new HashSet; -} - -defineClass(561, 1, {561:1}, DCComponent); -_.changed = true; -var Lorg_eclipse_elk_alg_disco_graph_DCComponent_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCComponent', 561); -function $clinit_DCDirection(){ - $clinit_DCDirection = emptyMethod; - NORTH_0 = new DCDirection('NORTH', 0); - EAST_0 = new DCDirection('EAST', 1); - SOUTH_0 = new DCDirection('SOUTH', 2); - WEST_0 = new DCDirection('WEST', 3); - NORTH_0.horizontal = false; - EAST_0.horizontal = true; - SOUTH_0.horizontal = false; - WEST_0.horizontal = true; -} - -function DCDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_23(name_0){ - $clinit_DCDirection(); - return valueOf(($clinit_DCDirection$Map() , $MAP_11), name_0); -} - -function values_29(){ - $clinit_DCDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]); -} - -defineClass(394, 22, {3:1, 35:1, 22:1, 394:1}, DCDirection); -_.horizontal = false; -var EAST_0, NORTH_0, SOUTH_0, WEST_0; -var Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit = createForEnum('org.eclipse.elk.alg.disco.graph', 'DCDirection', 394, Ljava_lang_Enum_2_classLit, values_29, valueOf_23); -function $clinit_DCDirection$Map(){ - $clinit_DCDirection$Map = emptyMethod; - $MAP_11 = createValueOfMap(($clinit_DCDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]))); -} - -var $MAP_11; -function DCElement(polyPath){ - var maxX, maxY, minX, minY, v, v$iterator; - this.extensions = new ArrayList; - this.shape_0 = polyPath; - minX = $intern_59; - minY = $intern_59; - maxX = $intern_60; - maxY = $intern_60; - for (v$iterator = $listIterator_2(polyPath, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { - v = castTo($next_10(v$iterator), 8); - minX = $wnd.Math.min(minX, v.x_0); - minY = $wnd.Math.min(minY, v.y_0); - maxX = $wnd.Math.max(maxX, v.x_0); - maxY = $wnd.Math.max(maxY, v.y_0); - } - this.bounds = new ElkRectangle_0(minX, minY, maxX - minX, maxY - minY); -} - -defineClass(266, 134, {3:1, 266:1, 94:1, 134:1}, DCElement); -var Lorg_eclipse_elk_alg_disco_graph_DCElement_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCElement', 266); -function $setOffset_0(this$static, offset){ - this$static.offset = offset; -} - -function DCExtension(parent_0, direction, middlePos, width_0){ - var bounds, halfWidth; - this.direction = direction; - this.width_0 = width_0; - bounds = parent_0.bounds; - $setOffset_0(this, new KVector_1(-bounds.x_0, -bounds.y_0)); - $add_19(this.offset, middlePos); - halfWidth = width_0 / 2; - direction.horizontal?$sub(this.offset, 0, halfWidth):$sub(this.offset, halfWidth, 0); - $add_3(parent_0.extensions, this); -} - -defineClass(395, 1, {395:1}, DCExtension); -_.width_0 = 0; -var Lorg_eclipse_elk_alg_disco_graph_DCExtension_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCExtension', 395); -function $setDimensions(this$static, dimensions){ - this$static.dimensions = dimensions; -} - -function DCGraph(components){ - var component, elements, elements$iterator; - this.components = new LinkedHashSet; - for (elements$iterator = new ArrayList$1(components); elements$iterator.i < elements$iterator.this$01.array.length;) { - elements = castTo($next_7(elements$iterator), 14); - component = new DCComponent; - $addElements(component, elements); - $add_6(this.components, component); - } -} - -function DCGraph_0(components){ - DCGraph.call(this, components); -} - -defineClass(755, 134, $intern_95, DCGraph_0); -var Lorg_eclipse_elk_alg_disco_graph_DCGraph_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCGraph', 755); -function $clinit_CompactionStrategy(){ - $clinit_CompactionStrategy = emptyMethod; - POLYOMINO = new CompactionStrategy; -} - -function CompactionStrategy(){ - Enum.call(this, 'POLYOMINO', 0); -} - -function valueOf_24(name_0){ - $clinit_CompactionStrategy(); - return valueOf(($clinit_CompactionStrategy$Map() , $MAP_12), name_0); -} - -function values_30(){ - $clinit_CompactionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]); -} - -defineClass(481, 22, {3:1, 35:1, 22:1, 481:1}, CompactionStrategy); -var POLYOMINO; -var Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.disco.options', 'CompactionStrategy', 481, Ljava_lang_Enum_2_classLit, values_30, valueOf_24); -function $clinit_CompactionStrategy$Map(){ - $clinit_CompactionStrategy$Map = emptyMethod; - $MAP_12 = createValueOfMap(($clinit_CompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]))); -} - -var $MAP_12; -function $clinit_DisCoMetaDataProvider(){ - $clinit_DisCoMetaDataProvider = emptyMethod; - COMPONENT_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy() , POLYOMINO); - COMPONENT_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.disco.componentCompaction.strategy', COMPONENT_COMPACTION_STRATEGY_DEFAULT); - COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM = new Property('org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'); - DEBUG_DISCO_GRAPH = new Property('org.eclipse.elk.disco.debug.discoGraph'); - DEBUG_DISCO_POLYS = new Property('org.eclipse.elk.disco.debug.discoPolys'); -} - -function DisCoMetaDataProvider(){ - $clinit_DisCoMetaDataProvider(); -} - -defineClass(854, 1, $intern_90, DisCoMetaDataProvider); -_.apply_4 = function apply_50(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.strategy'), 'componentCompaction'), 'Connected Components Compaction Strategy'), 'Strategy for packing different connected components in order to save space and enhance readability of a graph.'), COMPONENT_COMPACTION_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'), 'componentCompaction'), 'Connected Components Layout Algorithm'), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoGraph'), 'debug'), 'DCGraph'), 'Access to the DCGraph is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoPolys'), 'debug'), 'List of Polyominoes'), 'Access to the polyominoes is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); - $apply_11((new DisCoOptions , registry)); -} -; -var COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM, COMPONENT_COMPACTION_STRATEGY, COMPONENT_COMPACTION_STRATEGY_DEFAULT, DEBUG_DISCO_GRAPH, DEBUG_DISCO_POLYS; -var Lorg_eclipse_elk_alg_disco_options_DisCoMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoMetaDataProvider', 854); -function $clinit_DisCoOptions(){ - $clinit_DisCoOptions = emptyMethod; - SPACING_COMPONENT_COMPONENT = ($clinit_CoreOptions() , SPACING_COMPONENT_COMPONENT_1); - EDGE_THICKNESS = EDGE_THICKNESS_1; - ASPECT_RATIO = ASPECT_RATIO_5; - PADDING = PADDING_6; - POLYOMINO_LOW_LEVEL_SORT_0 = ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT); - POLYOMINO_HIGH_LEVEL_SORT_0 = POLYOMINO_HIGH_LEVEL_SORT; - POLYOMINO_TRAVERSAL_STRATEGY_0 = POLYOMINO_TRAVERSAL_STRATEGY; - POLYOMINO_FILL_0 = POLYOMINO_FILL; - COMPONENT_COMPACTION_STRATEGY_0 = ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY); - COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0 = COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM; - DEBUG_DISCO_GRAPH_0 = DEBUG_DISCO_GRAPH; - DEBUG_DISCO_POLYS_0 = DEBUG_DISCO_POLYS; -} - -function $apply_11(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.disco'), 'ELK DisCo'), 'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'), new DisCoOptions$DiscoFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.aspectRatio', $getDefault(ASPECT_RATIO)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.padding', $getDefault(PADDING)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.lowLevelSort', $getDefault(POLYOMINO_LOW_LEVEL_SORT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.highLevelSort', $getDefault(POLYOMINO_HIGH_LEVEL_SORT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.traversalStrategy', $getDefault(POLYOMINO_TRAVERSAL_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.fill', $getDefault(POLYOMINO_FILL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.strategy', $getDefault(COMPONENT_COMPACTION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm', $getDefault(COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoGraph', $getDefault(DEBUG_DISCO_GRAPH_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoPolys', $getDefault(DEBUG_DISCO_POLYS_0)); -} - -function DisCoOptions(){ - $clinit_DisCoOptions(); -} - -defineClass(998, 1, $intern_90, DisCoOptions); -_.apply_4 = function apply_51(registry){ - $apply_11(registry); -} -; -var ASPECT_RATIO, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0, COMPONENT_COMPACTION_STRATEGY_0, DEBUG_DISCO_GRAPH_0, DEBUG_DISCO_POLYS_0, EDGE_THICKNESS, PADDING, POLYOMINO_FILL_0, POLYOMINO_HIGH_LEVEL_SORT_0, POLYOMINO_LOW_LEVEL_SORT_0, POLYOMINO_TRAVERSAL_STRATEGY_0, SPACING_COMPONENT_COMPONENT; -var Lorg_eclipse_elk_alg_disco_options_DisCoOptions_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions', 998); -function DisCoOptions$DiscoFactory(){ -} - -defineClass(999, 1, {}, DisCoOptions$DiscoFactory); -_.create_0 = function create_2(){ - var provider; - return provider = new DisCoLayoutProvider , provider; -} -; -_.destroy = function destroy(obj){ -} -; -var Lorg_eclipse_elk_alg_disco_options_DisCoOptions$DiscoFactory_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions/DiscoFactory', 999); -function $addExtensionsToPoly(this$static, elem){ - var baseX, baseY, compCorner, dir_0, elemPos, extension, extension$iterator, extensions, polyDir, polyoOffset, pos, xe, xp, xpPlusWidth, ye, yp, ypPlusWidth; - extensions = elem.extensions; - compCorner = $getMinCorner(this$static.representee); - polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); - baseX = compCorner.x_0 - polyoOffset.x_0; - baseY = compCorner.y_0 - polyoOffset.y_0; - elemPos = elem.bounds; - baseX = elemPos.x_0 - baseX; - baseY = elemPos.y_0 - baseY; - for (extension$iterator = new ArrayList$1(extensions); extension$iterator.i < extension$iterator.this$01.array.length;) { - extension = castTo($next_7(extension$iterator), 395); - pos = extension.offset; - xe = baseX + pos.x_0; - ye = baseY + pos.y_0; - xp = round_int(xe / this$static.cellSizeX); - yp = round_int(ye / this$static.cellSizeY); - dir_0 = extension.direction; - switch (dir_0.ordinal) { - case 0: - polyDir = ($clinit_Direction() , NORTH); - break; - case 1: - polyDir = ($clinit_Direction() , EAST); - break; - case 2: - polyDir = ($clinit_Direction() , SOUTH); - break; - default:polyDir = ($clinit_Direction() , WEST); - } - if (dir_0.horizontal) { - ypPlusWidth = round_int((ye + extension.width_0) / this$static.cellSizeY); - $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(yp), valueOf_4(ypPlusWidth))); - dir_0 == ($clinit_DCDirection() , WEST_0)?$weaklyBlockArea(this$static, 0, yp, xp, ypPlusWidth):$weaklyBlockArea(this$static, xp, yp, this$static.pWidth - 1, ypPlusWidth); - } - else { - xpPlusWidth = round_int((xe + extension.width_0) / this$static.cellSizeX); - $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(xp), valueOf_4(xpPlusWidth))); - dir_0 == ($clinit_DCDirection() , NORTH_0)?$weaklyBlockArea(this$static, xp, 0, xpPlusWidth, yp):$weaklyBlockArea(this$static, xp, yp, xpPlusWidth, this$static.pHeight - 1); - } - } -} - -function $computeLowResDimension(dim, cellSize){ - var cellFit, fitTruncated; - cellFit = dim / cellSize; - fitTruncated = round_int(cellFit); - cellFit > fitTruncated && ++fitTruncated; - return fitTruncated; -} - -function $fillCells(this$static){ - var baseX, compCorner, curX, curY, polyoOffset, x_0, y_0; - compCorner = $getMinCorner(this$static.representee); - polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); - baseX = compCorner.x_0 - polyoOffset.x_0; - curY = compCorner.y_0 - polyoOffset.y_0; - for (y_0 = 0; y_0 < this$static.pHeight; y_0++) { - curX = baseX; - for (x_0 = 0; x_0 < this$static.pWidth; x_0++) { - $intersects(this$static.representee, new ElkRectangle_0(curX, curY, this$static.cellSizeX, this$static.cellSizeY)) && $set_5(this$static, x_0, y_0, false, true); - curX += this$static.cellSizeX; - } - curY += this$static.cellSizeY; - } -} - -function DCPolyomino(comp, csX, csY){ - var compDims, elem, elem$iterator; - Polyomino.call(this, new ArrayList); - this.cellSizeX = csX; - this.cellSizeY = csY; - this.representee = comp; - compDims = (comp.changed && $update(comp) , comp.bounds); - this.pWidth = $computeLowResDimension(compDims.x_0, this.cellSizeX); - this.pHeight = $computeLowResDimension(compDims.y_0, this.cellSizeY); - $reinitialize(this, this.pWidth, this.pHeight); - $fillCells(this); - for (elem$iterator = this.representee.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - elem.extensions.array.length > 0 && $addExtensionsToPoly(this, elem); - } -} - -defineClass(562, 167, {321:1, 167:1, 562:1}, DCPolyomino); -_.cellSizeX = 0; -_.cellSizeY = 0; -_.pHeight = 0; -_.pWidth = 0; -var Lorg_eclipse_elk_alg_disco_structures_DCPolyomino_2_classLit = createForClass('org.eclipse.elk.alg.disco.structures', 'DCPolyomino', 562); -function $clinit_ElkGraphComponentsProcessor(){ - $clinit_ElkGraphComponentsProcessor = emptyMethod; - visited_0 = new ArrayList; - incidenceMap = new HashMap; - components_0 = new ArrayList; -} - -function addNodesToIncidenceSet(incidentNodes, edges, chooseNode){ - var edge, edge$iterator; - for (edge$iterator = edges.iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 79); - $add_6(incidentNodes, castTo(chooseNode.apply_0(edge), 33)); - } -} - -function computeIncidences(nodes){ - var adjacentAndInsideParent, adjacentNodes, connectedToParentPort, edges, incomingEdge, incomingEdge$iterator, node, node$iterator, nodesAtPort, outgoingEdge, outgoingEdge$iterator, port, sameHierarchyLevel; - adjacentAndInsideParent = new HashMap; - for (node$iterator = new AbstractEList$EIterator(nodes); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - adjacentNodes = new HashSet; - $put_6(incidenceMap, node, adjacentNodes); - sameHierarchyLevel = new ElkGraphComponentsProcessor$lambda$0$Type; - edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)])))), 83); - addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(($clinit_Boolean() , true)), 14), new ElkGraphComponentsProcessor$lambda$1$Type); - connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); - for (incomingEdge$iterator = connectedToParentPort.iterator_0(); incomingEdge$iterator.hasNext_0();) { - incomingEdge = castTo(incomingEdge$iterator.next_1(), 79); - port = getSourcePort(incomingEdge); - if (port) { - nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); - if (!nodesAtPort) { - nodesAtPort = getInnerNeighborsOfPort(port); - $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); - } - $addAll(adjacentNodes, nodesAtPort); - } - } - edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH])))), 83); - addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(true), 14), new ElkGraphComponentsProcessor$lambda$3$Type); - connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); - for (outgoingEdge$iterator = connectedToParentPort.iterator_0(); outgoingEdge$iterator.hasNext_0();) { - outgoingEdge = castTo(outgoingEdge$iterator.next_1(), 79); - port = getTargetPort(outgoingEdge); - if (port) { - nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); - if (!nodesAtPort) { - nodesAtPort = getInnerNeighborsOfPort(port); - $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); - } - $addAll(adjacentNodes, nodesAtPort); - } - } - } -} - -function dfs(start_0, component){ - var adjacentNodes, node, node$iterator; - $add_3(visited_0, start_0); - component.add_2(start_0); - adjacentNodes = castTo($get_10(incidenceMap, start_0), 21); - if (adjacentNodes) { - for (node$iterator = adjacentNodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - $indexOf_3(visited_0, node, 0) != -1 || dfs(node, component); - } - } -} - -function getInnerNeighborsOfPort(port){ - var allEdges, inwardsPredicate, nodeMapper, portParent; - portParent = $getParent_3(port); - inwardsPredicate = new ElkGraphComponentsProcessor$lambda$5$Type(portParent); - nodeMapper = new ElkGraphComponentsProcessor$lambda$6$Type(portParent); - allEdges = new ArrayList; - $addAll_2(allEdges, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); - $addAll_2(allEdges, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); - return castTo($collect_1($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(allEdges, 16)), inwardsPredicate), nodeMapper), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); -} - -function lambda$0_14(edge_0){ - $clinit_ElkGraphComponentsProcessor(); - return $getParent_2(getSourceNode(edge_0)) == $getParent_2(getTargetNode_0(edge_0)); -} - -function lambda$2_1(edge_0){ - $clinit_ElkGraphComponentsProcessor(); - return getSourceNode(edge_0) == $getParent_2(getTargetNode_0(edge_0)); -} - -function lambda$4_1(edge_0){ - $clinit_ElkGraphComponentsProcessor(); - return getTargetNode_0(edge_0) == $getParent_2(getSourceNode(edge_0)); -} - -function lambda$5_0(portParent_0, edge_1){ - $clinit_ElkGraphComponentsProcessor(); - return portParent_0 == $getParent_2(getSourceNode(edge_1)) || portParent_0 == $getParent_2(getTargetNode_0(edge_1)); -} - -function lambda$6(portParent_0, edge_1){ - $clinit_ElkGraphComponentsProcessor(); - return portParent_0 == getSourceNode(edge_1)?getTargetNode_0(edge_1):getSourceNode(edge_1); -} - -function split_2(graph){ - $clinit_ElkGraphComponentsProcessor(); - var children, component, node, node$iterator; - visited_0 = new ArrayList; - incidenceMap = new HashMap; - components_0 = new ArrayList; - children = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); - computeIncidences(children); - for (node$iterator = new AbstractEList$EIterator(children); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - if ($indexOf_3(visited_0, node, 0) == -1) { - component = new ArrayList; - $add_3(components_0, component); - dfs(node, component); - } - } - return components_0; -} - -var components_0, incidenceMap, visited_0; -function $test(arg0){ - return lambda$0_14(castTo(arg0, 79)); -} - -function ElkGraphComponentsProcessor$lambda$0$Type(){ -} - -defineClass(1268, 1, $intern_39, ElkGraphComponentsProcessor$lambda$0$Type); -_.test_0 = function test_12(arg0){ - return $test(arg0); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$0$Type', 1268); -function ElkGraphComponentsProcessor$lambda$1$Type(){ -} - -defineClass(1269, 1, {}, ElkGraphComponentsProcessor$lambda$1$Type); -_.apply_0 = function apply_52(arg0){ - return $clinit_ElkGraphComponentsProcessor() , getSourceNode(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$1$Type', 1269); -function ElkGraphComponentsProcessor$lambda$2$Type(){ -} - -defineClass(1270, 1, $intern_39, ElkGraphComponentsProcessor$lambda$2$Type); -_.test_0 = function test_13(arg0){ - return lambda$2_1(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$2$Type', 1270); -function ElkGraphComponentsProcessor$lambda$3$Type(){ -} - -defineClass(1271, 1, {}, ElkGraphComponentsProcessor$lambda$3$Type); -_.apply_0 = function apply_53(arg0){ - return $clinit_ElkGraphComponentsProcessor() , getTargetNode_0(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$3$Type', 1271); -function ElkGraphComponentsProcessor$lambda$4$Type(){ -} - -defineClass(1272, 1, $intern_39, ElkGraphComponentsProcessor$lambda$4$Type); -_.test_0 = function test_14(arg0){ - return lambda$4_1(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$4$Type', 1272); -function ElkGraphComponentsProcessor$lambda$5$Type(portParent_0){ - this.portParent_0 = portParent_0; -} - -defineClass(1273, 1, $intern_39, ElkGraphComponentsProcessor$lambda$5$Type); -_.test_0 = function test_15(arg0){ - return lambda$5_0(this.portParent_0, castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$5$Type', 1273); -function ElkGraphComponentsProcessor$lambda$6$Type(portParent_0){ - this.portParent_0 = portParent_0; -} - -defineClass(1274, 1, {}, ElkGraphComponentsProcessor$lambda$6$Type); -_.apply_0 = function apply_54(arg0){ - return lambda$6(this.portParent_0, castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$6$Type', 1274); -function $adjustFirstSegment(source, chain, dir_0){ - var firstPoint, iter; - firstPoint = (checkCriticalElement(chain.size_0 != 0) , castTo($removeNode_0(chain, chain.header.next_0), 8)); - switch (dir_0.ordinal) { - case 0: - firstPoint.y_0 = 0; - break; - case 2: - firstPoint.y_0 = source.height; - break; - case 3: - firstPoint.x_0 = 0; - break; - default:firstPoint.x_0 = source.width_0; - } - iter = $listIterator_2(chain, 0); - $add_8(iter, firstPoint); - return chain; -} - -function $adjustRelatedPort(port, edgePoint, dir_0){ - dir_0.horizontal?$setY_3(port, edgePoint.y_0 - port.height / 2):$setX_2(port, edgePoint.x_0 - port.width_0 / 2); -} - -function $applyLayout(this$static){ - var adjustedPorts, dir_0, edge, edgeSection, graphDimensions, inEntry, inEntry$iterator, label_0, label$iterator, newHeight, newPoints, newWidth, oldHeight, oldWidth, outEntry, outEntry$iterator, port, port$iterator, portToAdjust, px, py, xFactor, yFactor; - graphDimensions = this$static.transformedGraph.dimensions; - newWidth = graphDimensions.x_0; - newHeight = graphDimensions.y_0; - oldWidth = this$static.parent_0.width_0; - oldHeight = this$static.parent_0.height; - $setDimensions_0(this$static.parent_0, graphDimensions.x_0, graphDimensions.y_0); - xFactor = newWidth / oldWidth; - yFactor = newHeight / oldHeight; - for (label$iterator = new AbstractEList$EIterator($getLabels_1(this$static.parent_0)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - $setX_2(label_0, label_0.x_0 * xFactor); - $setY_3(label_0, label_0.y_0 * yFactor); - } - for (port$iterator = new AbstractEList$EIterator($getPorts_3(this$static.parent_0)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - px = port.x_0; - py = port.y_0; - px > 0 && $setX_2(port, px * xFactor); - py > 0 && $setY_3(port, py * yFactor); - } - $forEach_2(this$static.elementMapping, new ElkGraphTransformer$OffsetApplier); - adjustedPorts = new ArrayList; - for (inEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.incomingExtensionsMapping)).this$01); inEntry$iterator.hasNext;) { - inEntry = $next_4(inEntry$iterator); - edge = castTo(inEntry.getKey(), 79); - dir_0 = castTo(inEntry.getValue(), 395).direction; - edgeSection = firstEdgeSection(edge, false, false); - newPoints = $adjustFirstSegment(getSourceNode(edge), createVectorChain(edgeSection), dir_0); - applyVectorChain(newPoints, edgeSection); - portToAdjust = getSourcePort(edge); - if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { - adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; - $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.header.next_0.value_0, 8)), dir_0); - } - } - for (outEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.outgoingExtensionsMapping)).this$01); outEntry$iterator.hasNext;) { - outEntry = $next_4(outEntry$iterator); - edge = castTo(outEntry.getKey(), 79); - dir_0 = castTo(outEntry.getValue(), 395).direction; - edgeSection = firstEdgeSection(edge, false, false); - newPoints = $adjustFirstSegment(getTargetNode_0(edge), reverse_3(createVectorChain(edgeSection)), dir_0); - newPoints = reverse_3(newPoints); - applyVectorChain(newPoints, edgeSection); - portToAdjust = getTargetPort(edge); - if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { - adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; - $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.tail.prev.value_0, 8)), dir_0); - } - } -} - -function $computeIntersection(p1, p2, p3, p4){ - var denominator, factor1, factor2, x_0, x1, x2, x3, x4, y_0, y1, y2, y3, y4; - x1 = p1.x_0; - y1 = p1.y_0; - x2 = p2.x_0; - y2 = p2.y_0; - x3 = p3.x_0; - y3 = p3.y_0; - x4 = p4.x_0; - y4 = p4.y_0; - factor1 = x1 * y2 - y1 * x2; - factor2 = x3 * y4 - y3 * x4; - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - x_0 = (factor1 * (x3 - x4) - factor2 * (x1 - x2)) / denominator; - y_0 = (factor1 * (y3 - y4) - factor2 * (y1 - y2)) / denominator; - return new KVector_1(x_0, y_0); -} - -function $getContour(edgePoints, thickness){ - var ccwMerged, ccwPoints, current, currentPoint, cwMerged, cwPoints, i, i0, i1, i2, intersectionPoint, numberOfPoints, orthPoints, predecessor, radius, successor; - ccwPoints = new ArrayList; - cwPoints = new ArrayList; - radius = thickness / 2; - numberOfPoints = edgePoints.size_1(); - current = castTo(edgePoints.get_0(0), 8); - successor = castTo(edgePoints.get_0(1), 8); - orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - for (i0 = 2; i0 < numberOfPoints; i0++) { - predecessor = current; - current = successor; - successor = castTo(edgePoints.get_0(i0), 8); - orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, predecessor.x_0, predecessor.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - } - orthPoints = $getOrthogonalPoints(successor.x_0, successor.y_0, current.x_0, current.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - ccwMerged = new KVectorChain; - cwMerged = new ArrayList; - $add_7(ccwMerged, (checkCriticalElementIndex(0, ccwPoints.array.length) , castTo(ccwPoints.array[0], 8))); - for (i1 = 1; i1 < ccwPoints.array.length - 2; i1 += 2) { - currentPoint = (checkCriticalElementIndex(i1, ccwPoints.array.length) , castTo(ccwPoints.array[i1], 8)); - intersectionPoint = $computeIntersection((checkCriticalElementIndex(i1 - 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 - 1], 8)), currentPoint, (checkCriticalElementIndex(i1 + 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 1], 8)), (checkCriticalElementIndex(i1 + 2, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 2], 8))); - !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?($addNode_0(ccwMerged, currentPoint, ccwMerged.tail.prev, ccwMerged.tail) , true):($addNode_0(ccwMerged, intersectionPoint, ccwMerged.tail.prev, ccwMerged.tail) , true); - } - $add_7(ccwMerged, castTo($get_11(ccwPoints, ccwPoints.array.length - 1), 8)); - $add_3(cwMerged, (checkCriticalElementIndex(0, cwPoints.array.length) , castTo(cwPoints.array[0], 8))); - for (i2 = 1; i2 < cwPoints.array.length - 2; i2 += 2) { - currentPoint = (checkCriticalElementIndex(i2, cwPoints.array.length) , castTo(cwPoints.array[i2], 8)); - intersectionPoint = $computeIntersection((checkCriticalElementIndex(i2 - 1, cwPoints.array.length) , castTo(cwPoints.array[i2 - 1], 8)), currentPoint, (checkCriticalElementIndex(i2 + 1, cwPoints.array.length) , castTo(cwPoints.array[i2 + 1], 8)), (checkCriticalElementIndex(i2 + 2, cwPoints.array.length) , castTo(cwPoints.array[i2 + 2], 8))); - !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?(cwMerged.array[cwMerged.array.length] = currentPoint , true):(cwMerged.array[cwMerged.array.length] = intersectionPoint , true); - } - $add_3(cwMerged, castTo($get_11(cwPoints, cwPoints.array.length - 1), 8)); - for (i = cwMerged.array.length - 1; i >= 0; i--) { - $add_7(ccwMerged, (checkCriticalElementIndex(i, cwMerged.array.length) , castTo(cwMerged.array[i], 8))); - } - return ccwMerged; -} - -function $getOrthogonalPoints(curX, curY, nxtX, nxtY, radius){ - var angleRadians, difX, difY, orthAngleCCW, orthAngleCW, xCCW, xCW, yCCW, yCW; - difX = nxtX - curX; - difY = nxtY - curY; - angleRadians = $wnd.Math.atan2(difX, difY); - orthAngleCCW = angleRadians + $intern_97; - orthAngleCW = angleRadians - $intern_97; - xCCW = radius * $wnd.Math.sin(orthAngleCCW) + curX; - yCCW = radius * $wnd.Math.cos(orthAngleCCW) + curY; - xCW = radius * $wnd.Math.sin(orthAngleCW) + curX; - yCW = radius * $wnd.Math.cos(orthAngleCW) + curY; - return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [new KVector_1(xCCW, yCCW), new KVector_1(xCW, yCW)])); -} - -function $importElkEdge(this$static, edge, newComponent){ - var componentLabel, contour, edgeSection, label_0, label$iterator, labels, points, shape_0, thickness; - edgeSection = firstEdgeSection(edge, false, false); - points = createVectorChain(edgeSection); - thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); - contour = $getContour(points, thickness + this$static.componentSpacing); - shape_0 = new DCElement(contour); - $copyProperties(shape_0, edge); - $put_6(this$static.elementMapping, edge, shape_0); - newComponent.array[newComponent.array.length] = shape_0; - labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); - for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - componentLabel = $importElkShape(this$static, label_0, true, 0, 0); - newComponent.array[newComponent.array.length] = componentLabel; - } - return shape_0; -} - -function $importElkEdges(this$static, edges, newComponent){ - var componentEdge, edge, edge$iterator; - for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 79); - componentEdge = castTo($get_10(this$static.elementMapping, edge), 266); - !componentEdge && ($getParent_2(getSourceNode(edge)) == $getParent_2(getTargetNode_0(edge))?$importElkEdge(this$static, edge, newComponent):getSourceNode(edge) == $getParent_2(getTargetNode_0(edge))?$get_10(this$static.incomingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getTargetNode_0(edge)) != null && $importExtension(this$static, edge, newComponent, false):$get_10(this$static.outgoingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getSourceNode(edge)) != null && $importExtension(this$static, edge, newComponent, true)); - } -} - -function $importElkShape(this$static, element, considerWhenApplyingOffset, offsetX, offsetY){ - var coords, halfComponentSpacing, shape_0, x0, x1, y0, y1; - if (!(instanceOf(element, 239) || instanceOf(element, 354) || instanceOf(element, 186))) { - throw toJs(new IllegalArgumentException_0('Method only works for ElkNode-, ElkLabel and ElkPort-objects.')); - } - halfComponentSpacing = this$static.componentSpacing / 2; - x0 = element.x_0 + offsetX - halfComponentSpacing; - y0 = element.y_0 + offsetY - halfComponentSpacing; - x1 = x0 + element.width_0 + this$static.componentSpacing; - y1 = y0 + element.height + this$static.componentSpacing; - coords = new KVectorChain; - $add_7(coords, new KVector_1(x0, y0)); - $add_7(coords, new KVector_1(x0, y1)); - $add_7(coords, new KVector_1(x1, y1)); - $add_7(coords, new KVector_1(x1, y0)); - shape_0 = new DCElement(coords); - $copyProperties(shape_0, element); - considerWhenApplyingOffset && $put_6(this$static.elementMapping, element, shape_0); - return shape_0; -} - -function $importExtension(this$static, edge, newComponent, outgoingExtension){ - var componentLabel, contour, dir_0, edgeSection, extParent, extensionWidth, fixedEdgePoints, innerPoint, label_0, label$iterator, labels, middlePos, outerPoint, points, shape_0, thickness; - edgeSection = firstEdgeSection(edge, false, false); - points = createVectorChain(edgeSection); - outgoingExtension && (points = reverse_3(points)); - thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); - outerPoint = (checkCriticalElement(points.size_0 != 0) , castTo(points.header.next_0.value_0, 8)); - innerPoint = castTo($get_7(points, 1), 8); - if (points.size_0 > 2) { - fixedEdgePoints = new ArrayList; - $addAll_2(fixedEdgePoints, new AbstractList$SubList(points, 1, points.size_0)); - contour = $getContour(fixedEdgePoints, thickness + this$static.componentSpacing); - shape_0 = new DCElement(contour); - $copyProperties(shape_0, edge); - newComponent.array[newComponent.array.length] = shape_0; - } - else { - outgoingExtension?(shape_0 = castTo($get_10(this$static.elementMapping, getSourceNode(edge)), 266)):(shape_0 = castTo($get_10(this$static.elementMapping, getTargetNode_0(edge)), 266)); - } - extParent = getSourceNode(edge); - outgoingExtension && (extParent = getTargetNode_0(edge)); - dir_0 = $nearestSide(outerPoint, extParent); - extensionWidth = thickness + this$static.componentSpacing; - if (dir_0.horizontal) { - extensionWidth += $wnd.Math.abs(outerPoint.y_0 - innerPoint.y_0); - middlePos = new KVector_1(innerPoint.x_0, (innerPoint.y_0 + outerPoint.y_0) / 2); - } - else { - extensionWidth += $wnd.Math.abs(outerPoint.x_0 - innerPoint.x_0); - middlePos = new KVector_1((innerPoint.x_0 + outerPoint.x_0) / 2, innerPoint.y_0); - } - outgoingExtension?$put_6(this$static.outgoingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)):$put_6(this$static.incomingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)); - $put_6(this$static.elementMapping, edge, shape_0); - labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); - for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - componentLabel = $importElkShape(this$static, label_0, true, 0, 0); - newComponent.array[newComponent.array.length] = componentLabel; - } -} - -function $importGraph(this$static, graph){ - var component, component$iterator, componentLabel, componentNode, componentPort, components, edgeSet, label_0, label$iterator, label$iterator0, labels, node, node$iterator, nodeX, nodeY, port, port$iterator, portX, portY, ports, result, subResult; - this$static.parent_0 = graph; - components = split_2(graph); - result = new ArrayList; - for (component$iterator = new ArrayList$1(components); component$iterator.i < component$iterator.this$01.array.length;) { - component = castTo($next_7(component$iterator), 15); - subResult = new ArrayList; - result.array[result.array.length] = subResult; - edgeSet = new HashSet; - for (node$iterator = component.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - componentNode = $importElkShape(this$static, node, true, 0, 0); - subResult.array[subResult.array.length] = componentNode; - nodeX = node.x_0; - nodeY = node.y_0; - new KVector_1(nodeX, nodeY); - labels = (!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels); - for (label$iterator0 = new AbstractEList$EIterator(labels); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator0), 137); - componentLabel = $importElkShape(this$static, label_0, false, nodeX, nodeY); - subResult.array[subResult.array.length] = componentLabel; - } - ports = (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports); - for (port$iterator = new AbstractEList$EIterator(ports); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - componentPort = $importElkShape(this$static, port, false, nodeX, nodeY); - subResult.array[subResult.array.length] = componentPort; - portX = port.x_0 + nodeX; - portY = port.y_0 + nodeY; - labels = (!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels); - for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - componentLabel = $importElkShape(this$static, label_0, false, portX, portY); - subResult.array[subResult.array.length] = componentLabel; - } - } - $addAll(edgeSet, newHashSet(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [allOutgoingEdges(node), allIncomingEdges(node)])))); - } - $importElkEdges(this$static, edgeSet, subResult); - } - this$static.transformedGraph = new DCGraph_0(result); - $copyProperties(this$static.transformedGraph, graph); - return this$static.transformedGraph; -} - -function $nearestSide(point, node){ - var distance, result, shortestDistance; - shortestDistance = $intern_98; - result = ($clinit_DCDirection() , NORTH_0); - shortestDistance = $wnd.Math.abs(point.y_0); - distance = $wnd.Math.abs(node.height - point.y_0); - if (distance < shortestDistance) { - shortestDistance = distance; - result = SOUTH_0; - } - distance = $wnd.Math.abs(point.x_0); - if (distance < shortestDistance) { - shortestDistance = distance; - result = WEST_0; - } - distance = $wnd.Math.abs(node.width_0 - point.x_0); - if (distance < shortestDistance) { - shortestDistance = distance; - result = EAST_0; - } - return result; -} - -function ElkGraphTransformer(componentSpacing){ - this.elementMapping = new HashMap; - this.incomingExtensionsMapping = new HashMap; - this.outgoingExtensionsMapping = new HashMap; - this.componentSpacing = componentSpacing; -} - -defineClass(1241, 1, {}, ElkGraphTransformer); -_.componentSpacing = 0; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer', 1241); -function $accept_2(this$static, elem, poly){ - var applier, edgeSection, points, shape_0; - this$static.offset = poly.cp.offset; - if (instanceOf(elem, 352)) { - edgeSection = firstEdgeSection(castTo(elem, 79), false, false); - points = createVectorChain(edgeSection); - applier = new ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$static); - $forEach_0(points, applier); - applyVectorChain(points, edgeSection); - elem.getProperty(($clinit_CoreOptions() , JUNCTION_POINTS_0)) != null && $forEach_0(castTo(elem.getProperty(JUNCTION_POINTS_0), 74), applier); - } - else { - shape_0 = castTo(elem, 470); - shape_0.setX(shape_0.getX() + this$static.offset.x_0); - shape_0.setY(shape_0.getY() + this$static.offset.y_0); - } -} - -function ElkGraphTransformer$OffsetApplier(){ -} - -defineClass(1242, 1, {}, ElkGraphTransformer$OffsetApplier); -_.accept_1 = function accept_55(elem, poly){ - $accept_2(this, castTo(elem, 160), castTo(poly, 266)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier', 1242); -function $accept_3(this$static, point){ - $add_18(point, this$static.this$11.offset.x_0, this$static.this$11.offset.y_0); -} - -function ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$1){ - this.this$11 = this$1; -} - -defineClass(1243, 1, $intern_19, ElkGraphTransformer$OffsetApplier$OffSetToChainApplier); -_.accept = function accept_56(point){ - $accept_3(this, castTo(point, 8)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier$OffSetToChainApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier', 1243); -function $buildIncidenceLists(graph){ - var edge, edge$iterator, incidence, n, node, node$iterator; - n = graph.nodes.array.length; - incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); - for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - incidence[node.id_0] = new LinkedList; - } - for (edge$iterator = new ArrayList$1(graph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - incidence[edge.source.id_0].add_2(edge); - incidence[edge.target.id_0].add_2(edge); - } - return incidence; -} - -function $dfs_0(this$static, node, last, graph, visited, incidence){ - var component, edge, edge$iterator; - if (!visited[node.id_0]) { - visited[node.id_0] = true; - component = graph; - !component && (component = new FGraph); - $add_3(component.nodes, node); - for (edge$iterator = incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 282); - if (edge.target == last || edge.source == last) { - continue; - } - edge.source != node && $dfs_0(this$static, edge.source, node, component, visited, incidence); - edge.target != node && $dfs_0(this$static, edge.target, node, component, visited, incidence); - $add_3(component.edges, edge); - $addAll_2(component.labels, edge.labels); - } - return component; - } - return null; -} - -function $moveGraph(destGraph, sourceGraph, offsetx, offsety){ - var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, label_0, label$iterator, node, node$iterator; - graphOffset = new KVector_1(offsetx, offsety); - $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_0() , BB_UPLEFT)), 8)); - for (node$iterator = new ArrayList$1(sourceGraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - $add_19(node.position, graphOffset); - $add_3(destGraph.nodes, node); - } - for (edge$iterator = new ArrayList$1(sourceGraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - for (bendpoint$iterator = new ArrayList$1(edge.bendpoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { - bendpoint = castTo($next_7(bendpoint$iterator), 559); - $add_19(bendpoint.position, graphOffset); - } - $add_3(destGraph.edges, edge); - } - for (label$iterator = new ArrayList$1(sourceGraph.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 447); - $add_19(label_0.position, graphOffset); - $add_3(destGraph.labels, label_0); - } -} - -function $recombine(components){ - var broadestRow, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, result, size_0, spacing, totalArea, xpos, ypos; - if (components.size_1() == 1) { - return castTo(components.get_0(0), 231); - } - else if (components.size_1() <= 0) { - return new FGraph; - } - for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { - graph = castTo(graph$iterator0.next_1(), 231); - priority = 0; - minx = $intern_0; - miny = $intern_0; - maxx = $intern_42; - maxy = $intern_42; - for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - priority += castTo($getProperty(node, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; - minx = $wnd.Math.min(minx, node.position.x_0 - node.size_0.x_0 / 2); - miny = $wnd.Math.min(miny, node.position.y_0 - node.size_0.y_0 / 2); - maxx = $wnd.Math.max(maxx, node.position.x_0 + node.size_0.x_0 / 2); - maxy = $wnd.Math.max(maxy, node.position.y_0 + node.size_0.y_0 / 2); - } - $setProperty_0(graph, ($clinit_ForceOptions() , PRIORITY), valueOf_4(priority)); - $setProperty_0(graph, ($clinit_InternalProperties_0() , BB_UPLEFT), new KVector_1(minx, miny)); - $setProperty_0(graph, BB_LOWRIGHT, new KVector_1(maxx, maxy)); - } - $clinit_Collections(); - components.sort_0(new ComponentsProcessor$1); - result = new FGraph; - $copyProperties(result, castTo(components.get_0(0), 94)); - maxRowWidth = 0; - totalArea = 0; - for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { - graph = castTo(graph$iterator1.next_1(), 231); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); - maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); - totalArea += size_0.x_0 * size_0.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_ForceOptions() , ASPECT_RATIO_0))))); - spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = spacing; - for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 231); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + spacing; - highestBox = 0; - } - $moveGraph(result, graph, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + spacing; - } - return result; -} - -function $split_1(this$static, graph){ - var comp, comp$iterator, components, id_0, incidence, node, node$iterator, node$iterator0, separate, visited; - separate = castToBoolean($getProperty(graph, ($clinit_ForceOptions() , SEPARATE_CONNECTED_COMPONENTS))); - if (separate == null || (checkCriticalNotNull(separate) , separate)) { - visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.nodes.array.length, 16, 1); - incidence = $buildIncidenceLists(graph); - components = new LinkedList; - for (node$iterator0 = new ArrayList$1(graph.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 144); - comp = $dfs_0(this$static, node, null, null, visited, incidence); - if (comp) { - $copyProperties(comp, graph); - $addNode_0(components, comp, components.tail.prev, components.tail); - } - } - if (components.size_0 > 1) { - for (comp$iterator = $listIterator_2(components, 0); comp$iterator.currentNode != comp$iterator.this$01.tail;) { - comp = castTo($next_10(comp$iterator), 231); - id_0 = 0; - for (node$iterator = new ArrayList$1(comp.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - node.id_0 = id_0++; - } - } - } - return components; - } - return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit, 1), $intern_100, 231, 0, [graph])); -} - -function ComponentsProcessor(){ -} - -defineClass(753, 1, {}, ComponentsProcessor); -var Lorg_eclipse_elk_alg_force_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor', 753); -function $compare_7(graph1, graph2){ - var prio, size1, size2; - prio = castTo($getProperty(graph2, ($clinit_ForceOptions() , PRIORITY)), 19).value_0 - castTo($getProperty(graph1, PRIORITY), 19).value_0; - if (prio == 0) { - size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph1, BB_UPLEFT), 8)); - size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT), 8)), castTo($getProperty(graph2, BB_UPLEFT), 8)); - return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); - } - return prio; -} - -function ComponentsProcessor$1(){ -} - -defineClass(1232, 1, $intern_88, ComponentsProcessor$1); -_.compare_1 = function compare_28(graph1, graph2){ - return $compare_7(castTo(graph1, 231), castTo(graph2, 231)); -} -; -_.equals_0 = function equals_80(other){ - return this === other; -} -; -_.reversed = function reversed_20(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_force_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor/1', 1232); -function $applyLayout_0(fgraph){ - var endLocation, fedge, fedge$iterator, flabel, flabel$iterator, fnode, fnode$iterator, height, kedge, kedgeSection, kgraph, klabel, knode, labelPos, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, nodePos, object, offset, padding, pos, size_0, startLocation, width_0, v, v_0; - kgraph = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , ORIGIN)), 33); - minXPos = $intern_0; - minYPos = $intern_0; - maxXPos = $intern_42; - maxYPos = $intern_42; - for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - pos = node.position; - size_0 = node.size_0; - minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); - minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); - maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); - maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); - } - padding = castTo($getProperty_0(kgraph, ($clinit_ForceOptions() , PADDING_0)), 116); - offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); - for (fnode$iterator = new ArrayList$1(fgraph.nodes); fnode$iterator.i < fnode$iterator.this$01.array.length;) { - fnode = castTo($next_7(fnode$iterator), 144); - object = $getProperty(fnode, ORIGIN); - if (instanceOf(object, 239)) { - knode = castTo(object, 33); - nodePos = $add_19(fnode.position, offset); - $setLocation_1(knode, nodePos.x_0 - knode.width_0 / 2, nodePos.y_0 - knode.height / 2); - } - } - for (fedge$iterator = new ArrayList$1(fgraph.edges); fedge$iterator.i < fedge$iterator.this$01.array.length;) { - fedge = castTo($next_7(fedge$iterator), 282); - kedge = castTo($getProperty(fedge, ORIGIN), 79); - kedgeSection = firstEdgeSection(kedge, true, true); - startLocation = (v = $sub_0($clone_0(fedge.target.position), fedge.source.position) , clipVector(v, fedge.source.size_0.x_0, fedge.source.size_0.y_0) , $add_19(v, fedge.source.position)); - $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); - endLocation = (v_0 = $sub_0($clone_0(fedge.source.position), fedge.target.position) , clipVector(v_0, fedge.target.size_0.x_0, fedge.target.size_0.y_0) , $add_19(v_0, fedge.target.position)); - $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); - } - for (flabel$iterator = new ArrayList$1(fgraph.labels); flabel$iterator.i < flabel$iterator.this$01.array.length;) { - flabel = castTo($next_7(flabel$iterator), 447); - klabel = castTo($getProperty(flabel, ORIGIN), 137); - labelPos = $add_19(flabel.position, offset); - $setLocation_1(klabel, labelPos.x_0, labelPos.y_0); - } - width_0 = maxXPos - minXPos + (padding.left + padding.right); - height = maxYPos - minYPos + (padding.top_0 + padding.bottom); - resizeNode_1(kgraph, width_0, height, false, true); -} - -function $importGraph_0(kgraph){ - var elemMap, fgraph; - fgraph = new FGraph; - $copyProperties(fgraph, kgraph); - $setProperty_0(fgraph, ($clinit_InternalProperties_0() , ORIGIN), kgraph); - elemMap = new HashMap; - $transformNodes(kgraph, fgraph, elemMap); - $transformEdges(kgraph, fgraph, elemMap); - return fgraph; -} - -function $transformEdges(parentNode, fgraph, elemMap){ - var kedge, kedge$iterator, klabel, klabel$iterator, knode, knode$iterator, newEdge, newLabel; - for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { - knode = castTo($doNext(knode$iterator), 33); - for (kedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(knode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(kedge$iterator);) { - kedge = castTo($next_0(kedge$iterator), 79); - !kedge.sources && (kedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 4, 7)); - if (!(kedge.sources.size_0 <= 1 && (!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets.size_0 <= 1))) { - throw toJs(new UnsupportedGraphException('Graph must not contain hyperedges.')); - } - if (!$isHierarchical(kedge) && knode != connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))) { - newEdge = new FEdge; - $copyProperties(newEdge, kedge); - $setProperty_0(newEdge, ($clinit_InternalProperties_0() , ORIGIN), kedge); - $setSource(newEdge, castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, knode)), 144)); - $setTarget(newEdge, castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))), 144)); - $add_3(fgraph.edges, newEdge); - for (klabel$iterator = new AbstractEList$EIterator((!kedge.labels && (kedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, kedge, 1, 7)) , kedge.labels)); klabel$iterator.cursor != klabel$iterator.this$01_2.size_1();) { - klabel = castTo($doNext(klabel$iterator), 137); - newLabel = new FLabel(newEdge, klabel.text_0); - $copyProperties(newLabel, klabel); - $setProperty_0(newLabel, ORIGIN, klabel); - newLabel.size_0.x_0 = $wnd.Math.max(klabel.width_0, 1); - newLabel.size_0.y_0 = $wnd.Math.max(klabel.height, 1); - $refreshPosition(newLabel); - $add_3(fgraph.labels, newLabel); - } - } - } - } -} - -function $transformNodes(parentNode, fgraph, elemMap){ - var index_0, knode, knode$iterator, label_0, newNode, portConstraints; - index_0 = 0; - for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { - knode = castTo($doNext(knode$iterator), 33); - label_0 = ''; - (!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels).size_0 == 0 || (label_0 = castTo($get_20((!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels), 0), 137).text_0); - newNode = new FNode(label_0); - $copyProperties(newNode, knode); - $setProperty_0(newNode, ($clinit_InternalProperties_0() , ORIGIN), knode); - newNode.id_0 = index_0++; - newNode.position.x_0 = knode.x_0 + knode.width_0 / 2; - newNode.position.y_0 = knode.y_0 + knode.height / 2; - newNode.size_0.x_0 = $wnd.Math.max(knode.width_0, 1); - newNode.size_0.y_0 = $wnd.Math.max(knode.height, 1); - $add_3(fgraph.nodes, newNode); - $put_9(elemMap.hashCodeMap, knode, newNode); - portConstraints = castTo($getProperty_0(knode, ($clinit_ForceOptions() , PORT_CONSTRAINTS)), 98); - portConstraints == ($clinit_PortConstraints() , UNDEFINED_4) && (portConstraints = FREE); - } -} - -function $layout(this$static, elkGraph, progressMonitor){ - var builder, comp, comp$iterator, components, fgraph; - $begin(progressMonitor, 'ELK Force', 1); - $booleanValue(castToBoolean($getProperty_0(elkGraph, ($clinit_ForceOptions() , OMIT_NODE_MICRO_LAYOUT)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(elkGraph))) , builder)); - fgraph = $importGraph_0(elkGraph); - $setOptions(fgraph); - $updateModel(this$static, castTo($getProperty(fgraph, MODEL_0), 424)); - components = $split_1(this$static.componentsProcessor, fgraph); - for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 231); - $layout_0(this$static.forceModel, comp, $subTask(progressMonitor, 1 / components.size_1())); - } - fgraph = $recombine(components); - $applyLayout_0(fgraph); - $done_0(progressMonitor); -} - -function $setOptions(fgraph){ - var randomSeed, val; - randomSeed = castTo($getProperty(fgraph, ($clinit_ForceOptions() , RANDOM_SEED)), 19); - if (randomSeed) { - val = randomSeed.value_0; - val == 0?$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random):$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(val)); - } - else { - $setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(1)); - } -} - -function $updateModel(this$static, strategy){ - switch (strategy.ordinal) { - case 0: - instanceOf(this$static.forceModel, 631) || (this$static.forceModel = new EadesModel); - break; - case 1: - instanceOf(this$static.forceModel, 632) || (this$static.forceModel = new FruchtermanReingoldModel); - } -} - -function ForceLayoutProvider(){ - this.componentsProcessor = new ComponentsProcessor; -} - -defineClass(740, 209, $intern_96, ForceLayoutProvider); -_.layout = function layout_0(elkGraph, progressMonitor){ - $layout(this, elkGraph, progressMonitor); -} -; -var Lorg_eclipse_elk_alg_force_ForceLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ForceLayoutProvider', 740); -function FParticle(){ - this.position = new KVector; - this.size_0 = new KVector; -} - -defineClass(357, 134, {3:1, 357:1, 94:1, 134:1}); -var Lorg_eclipse_elk_alg_force_graph_FParticle_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FParticle', 357); -function FBendpoint(edge){ - FParticle.call(this); - this.edge = edge; - $add_3(edge.bendpoints, this); -} - -defineClass(559, 357, {3:1, 559:1, 357:1, 94:1, 134:1}, FBendpoint); -_.toString_0 = function toString_80(){ - var index_0; - if (this.edge) { - index_0 = $indexOf_3(this.edge.bendpoints, this, 0); - return index_0 >= 0?'b' + index_0 + '[' + $toString_10(this.edge) + ']':'b[' + $toString_10(this.edge) + ']'; - } - return 'b_' + getHashCode_0(this); -} -; -var Lorg_eclipse_elk_alg_force_graph_FBendpoint_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FBendpoint', 559); -function $distributeBendpoints(this$static){ - var bendPoint, bendPoint$iterator, count, incr, pos, sourcePos, targetPos; - count = this$static.bendpoints.array.length; - if (count > 0) { - sourcePos = this$static.source.position; - targetPos = this$static.target.position; - incr = $scale($sub_0(new KVector_1(targetPos.x_0, targetPos.y_0), sourcePos), 1 / (count + 1)); - pos = new KVector_1(sourcePos.x_0, sourcePos.y_0); - for (bendPoint$iterator = new ArrayList$1(this$static.bendpoints); bendPoint$iterator.i < bendPoint$iterator.this$01.array.length;) { - bendPoint = castTo($next_7(bendPoint$iterator), 559); - bendPoint.position.x_0 = pos.x_0; - bendPoint.position.y_0 = pos.y_0; - $add_19(pos, incr); - } - } -} - -function $setSource(this$static, theSource){ - this$static.source = theSource; -} - -function $setTarget(this$static, theTarget){ - this$static.target = theTarget; -} - -function $toString_10(this$static){ - return !!this$static.source && !!this$static.target?$toString_11(this$static.source) + '->' + $toString_11(this$static.target):'e_' + getHashCode_0(this$static); -} - -function FEdge(){ - this.bendpoints = new ArrayList; - this.labels = new ArrayList; -} - -defineClass(282, 134, {3:1, 282:1, 94:1, 134:1}, FEdge); -_.toString_0 = function toString_81(){ - return $toString_10(this); -} -; -var Lorg_eclipse_elk_alg_force_graph_FEdge_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FEdge', 282); -function $calcAdjacency(this$static){ - var edge, edge$iterator, n; - n = this$static.nodes.array.length; - this$static.adjacency = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [n, n], 2); - for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - this$static.adjacency[edge.source.id_0][edge.target.id_0] += castTo($getProperty(edge, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; - } -} - -function $getConnection(this$static, particle1, particle2){ - var node1, node2; - if (instanceOf(particle1, 144) && !!particle2) { - node1 = castTo(particle1, 144); - node2 = particle2; - return this$static.adjacency[node1.id_0][node2.id_0] + this$static.adjacency[node2.id_0][node1.id_0]; - } - return 0; -} - -function FGraph(){ - this.nodes = new ArrayList; - this.edges = new ArrayList; - this.labels = new ArrayList; - this.bendPoints = new ArrayList; -} - -defineClass(231, 134, {3:1, 231:1, 94:1, 134:1}, FGraph); -var Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FGraph', 231); -function $refreshPosition(this$static){ - var newLabelPosition, placeInline, pos, spacing, src_0, srcToTgt, tgt, toLabelCenter; - placeInline = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_ForceOptions() , EDGE_LABELS_INLINE)))); - src_0 = this$static.edge.source.position; - tgt = this$static.edge.target.position; - if (placeInline) { - srcToTgt = $scale($sub_0(new KVector_1(tgt.x_0, tgt.y_0), src_0), 0.5); - toLabelCenter = $scale($clone_0(this$static.size_0), 0.5); - newLabelPosition = $sub_0($add_19(new KVector_1(src_0.x_0, src_0.y_0), srcToTgt), toLabelCenter); - $set_9(this$static.position, newLabelPosition); - } - else { - spacing = $doubleValue(castToDouble($getProperty(this$static.edge, SPACING_EDGE_LABEL))); - pos = this$static.position; - if (src_0.x_0 >= tgt.x_0) { - if (src_0.y_0 >= tgt.y_0) { - pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; - pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 - spacing - this$static.size_0.y_0; - } - else { - pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; - pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 + spacing; - } - } - else { - if (src_0.y_0 >= tgt.y_0) { - pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; - pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 + spacing; - } - else { - pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; - pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 - spacing - this$static.size_0.y_0; - } - } - } -} - -function FLabel(fedge, text_0){ - FParticle.call(this); - this.edge = fedge; - this.text_0 = text_0; - $add_3(this.edge.labels, this); -} - -defineClass(447, 357, {3:1, 447:1, 357:1, 94:1, 134:1}, FLabel); -_.toString_0 = function toString_82(){ - return this.text_0 == null || this.text_0.length == 0?'l[' + $toString_10(this.edge) + ']':'l_' + this.text_0; -} -; -var Lorg_eclipse_elk_alg_force_graph_FLabel_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FLabel', 447); -function $toString_11(this$static){ - return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; -} - -function FNode(label_0){ - FParticle.call(this); - this.displacement = new KVector; - this.label_0 = label_0; -} - -defineClass(144, 357, {3:1, 144:1, 357:1, 94:1, 134:1}, FNode); -_.toString_0 = function toString_83(){ - return $toString_11(this); -} -; -_.id_0 = 0; -var Lorg_eclipse_elk_alg_force_graph_FNode_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FNode', 144); -function $initialize_0(this$static, fgraph){ - var bends, count, edge, edge$iterator, i, node, node$iterator, pos, posScale; - this$static.graph_0 = fgraph; - this$static.random_0 = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , RANDOM)), 230); - $calcAdjacency(fgraph); - this$static.dispBound = $wnd.Math.max(fgraph.nodes.array.length * 16 + fgraph.edges.array.length, 256); - if (!$booleanValue(castToBoolean($getProperty(fgraph, ($clinit_ForceOptions() , INTERACTIVE))))) { - posScale = this$static.graph_0.nodes.array.length; - for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - pos = node.position; - pos.x_0 = $nextDouble(this$static.random_0) * posScale; - pos.y_0 = $nextDouble(this$static.random_0) * posScale; - } - } - bends = fgraph.bendPoints; - for (edge$iterator = new ArrayList$1(fgraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - count = castTo($getProperty(edge, REPULSIVE_POWER_0), 19).value_0; - if (count > 0) { - for (i = 0; i < count; i++) { - $add_3(bends, new FBendpoint(edge)); - } - $distributeBendpoints(edge); - } - } -} - -function $iterationDone(this$static){ - var edge, edge$iterator, label_0, label$iterator; - for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 447); - $refreshPosition(label_0); - } - $distributeBendpoints(edge); - } -} - -function $layout_0(this$static, fgraph, monitor){ - var d, displacement, iterations, u, u$iterator, v, v$iterator, v$iterator0; - $begin(monitor, 'Component Layout', 1); - this$static.initialize(fgraph); - iterations = 0; - while (this$static.moreIterations(iterations)) { - for (v$iterator0 = new ArrayList$1(fgraph.nodes); v$iterator0.i < v$iterator0.this$01.array.length;) { - v = castTo($next_7(v$iterator0), 144); - for (u$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(u$iterator);) { - u = castTo($next_0(u$iterator), 357); - if (u != v) { - displacement = this$static.calcDisplacement(u, v); - !!displacement && $add_19(v.displacement, displacement); - } - } - } - for (v$iterator = new ArrayList$1(fgraph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 144); - d = v.displacement; - $bound(d, -this$static.dispBound, -this$static.dispBound, this$static.dispBound, this$static.dispBound); - $add_19(v.position, d); - $reset_5(d); - } - this$static.iterationDone(); - ++iterations; - } - $done_0(monitor); -} - -function avoidSamePosition(random, u, v){ - var pu, pv; - pu = u.position; - pv = v.position; - while (pu.x_0 - pv.x_0 == 0 && pu.y_0 - pv.y_0 == 0) { - pu.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - pu.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - pv.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - pv.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - } -} - -defineClass(2003, 1, {}); -_.initialize = function initialize(fgraph){ - $initialize_0(this, fgraph); -} -; -_.iterationDone = function iterationDone(){ - $iterationDone(this); -} -; -_.dispBound = 0; -var Lorg_eclipse_elk_alg_force_model_AbstractForceModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'AbstractForceModel', 2003); -function EadesModel(){ - this.maxIterations = castTo($getDefault(($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; - this.springLength = $doubleValue(castToDouble($getDefault(SPACING_NODE_NODE))); - this.repulsionFactor = $doubleValue(castToDouble($getDefault(REPULSION_0))); -} - -function attractive(d, s){ - return d > 0?$wnd.Math.log(d / s):-100; -} - -function repulsive(d, r){ - return d > 0?r / (d * d):r * 100; -} - -defineClass(631, 2003, {631:1}, EadesModel); -_.calcDisplacement = function calcDisplacement(forcer, forcee){ - var connection, d, displacement, force, length_0; - avoidSamePosition(this.random_0, forcer, forcee); - displacement = $sub_0($clone_0(forcee.position), forcer.position); - length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); - d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); - connection = $getConnection(this.graph_0, forcer, forcee); - connection > 0?(force = -attractive(d, this.springLength) * connection):(force = repulsive(d, this.repulsionFactor) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0); - $scale(displacement, force / length_0); - return displacement; -} -; -_.initialize = function initialize_0(graph){ - $initialize_0(this, graph); - this.maxIterations = castTo($getProperty(graph, ($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; - this.springLength = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))); - this.repulsionFactor = $doubleValue(castToDouble($getProperty(graph, REPULSION_0))); -} -; -_.moreIterations = function moreIterations(count){ - return count < this.maxIterations; -} -; -_.maxIterations = 0; -_.repulsionFactor = 0; -_.springLength = 0; -var Lorg_eclipse_elk_alg_force_model_EadesModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'EadesModel', 631); -function FruchtermanReingoldModel(){ - this.temperature = $doubleValue(castToDouble($getDefault(($clinit_ForceOptions() , TEMPERATURE_0)))); -} - -function attractive_0(d, k){ - return d * d / k; -} - -function repulsive_0(d, k){ - return d > 0?k * k / d:k * k * 100; -} - -defineClass(632, 2003, {632:1}, FruchtermanReingoldModel); -_.calcDisplacement = function calcDisplacement_0(forcer, forcee){ - var connection, d, displacement, force, length_0; - avoidSamePosition(this.random_0, forcer, forcee); - displacement = $sub_0($clone_0(forcee.position), forcer.position); - length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); - d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); - force = repulsive_0(d, this.k) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; - connection = $getConnection(this.graph_0, forcer, forcee); - connection > 0 && (force -= attractive_0(d, this.k) * connection); - $scale(displacement, force * this.temperature / length_0); - return displacement; -} -; -_.initialize = function initialize_1(graph){ - var area, c, n, totalHeight, totalWidth, v, v$iterator; - $initialize_0(this, graph); - this.temperature = $doubleValue(castToDouble($getProperty(graph, ($clinit_ForceOptions() , TEMPERATURE_0)))); - this.threshold = this.temperature / castTo($getProperty(graph, ITERATIONS_0), 19).value_0; - n = graph.nodes.array.length; - totalWidth = 0; - totalHeight = 0; - for (v$iterator = new ArrayList$1(graph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 144); - totalWidth += v.size_0.x_0; - totalHeight += v.size_0.y_0; - } - area = totalWidth * totalHeight; - c = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))) * $intern_94; - this.k = $wnd.Math.sqrt(area / (2 * n)) * c; -} -; -_.iterationDone = function iterationDone_0(){ - $iterationDone(this); - this.temperature -= this.threshold; -} -; -_.moreIterations = function moreIterations_0(count){ - return this.temperature > 0; -} -; -_.k = 0; -_.temperature = 0; -_.threshold = 0; -var Lorg_eclipse_elk_alg_force_model_FruchtermanReingoldModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'FruchtermanReingoldModel', 632); -function $clinit_ForceMetaDataProvider(){ - $clinit_ForceMetaDataProvider = emptyMethod; - MODEL_DEFAULT = ($clinit_ForceModelStrategy() , FRUCHTERMAN_REINGOLD); - MODEL = new Property_1('org.eclipse.elk.force.model', MODEL_DEFAULT); - valueOf_4(1); - ITERATIONS = new Property_1('org.eclipse.elk.force.iterations', valueOf_4(300)); - valueOf_4(0); - REPULSIVE_POWER = new Property_1('org.eclipse.elk.force.repulsivePower', valueOf_4(0)); - new ExclusiveBounds$ExclusiveLowerBound; - TEMPERATURE = new Property_1('org.eclipse.elk.force.temperature', $intern_101); - new ExclusiveBounds$ExclusiveLowerBound; - REPULSION = new Property_1('org.eclipse.elk.force.repulsion', 5); - TEMPERATURE_DEP_MODEL_0 = FRUCHTERMAN_REINGOLD; - REPULSION_DEP_MODEL_0 = EADES; -} - -function ForceMetaDataProvider(){ - $clinit_ForceMetaDataProvider(); -} - -defineClass(849, 1, $intern_90, ForceMetaDataProvider); -_.apply_4 = function apply_55(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.model'), ''), 'Force Model'), 'Determines the model for force calculation.'), MODEL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.iterations'), ''), 'Iterations'), 'The number of iterations on the force model.'), valueOf_4(300)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsivePower'), ''), 'Repulsive Power'), 'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.temperature'), ''), 'FR Temperature'), 'The temperature is used as a scaling factor for particle displacements.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.force.temperature', 'org.eclipse.elk.force.model', TEMPERATURE_DEP_MODEL_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsion'), ''), 'Eades Repulsion'), "Factor for repulsive forces in Eades' model."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.force.repulsion', 'org.eclipse.elk.force.model', REPULSION_DEP_MODEL_0); - $apply_12((new ForceOptions , registry)); -} -; -var ITERATIONS, MODEL, MODEL_DEFAULT, REPULSION, REPULSION_DEP_MODEL_0, REPULSIVE_POWER, TEMPERATURE, TEMPERATURE_DEP_MODEL_0; -var Lorg_eclipse_elk_alg_force_options_ForceMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceMetaDataProvider', 849); -function $clinit_ForceModelStrategy(){ - $clinit_ForceModelStrategy = emptyMethod; - EADES = new ForceModelStrategy('EADES', 0); - FRUCHTERMAN_REINGOLD = new ForceModelStrategy('FRUCHTERMAN_REINGOLD', 1); -} - -function ForceModelStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_25(name_0){ - $clinit_ForceModelStrategy(); - return valueOf(($clinit_ForceModelStrategy$Map() , $MAP_13), name_0); -} - -function values_31(){ - $clinit_ForceModelStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]); -} - -defineClass(424, 22, {3:1, 35:1, 22:1, 424:1}, ForceModelStrategy); -var EADES, FRUCHTERMAN_REINGOLD; -var Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.force.options', 'ForceModelStrategy', 424, Ljava_lang_Enum_2_classLit, values_31, valueOf_25); -function $clinit_ForceModelStrategy$Map(){ - $clinit_ForceModelStrategy$Map = emptyMethod; - $MAP_13 = createValueOfMap(($clinit_ForceModelStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]))); -} - -var $MAP_13; -function $clinit_ForceOptions(){ - $clinit_ForceOptions = emptyMethod; - PRIORITY = new Property_2(($clinit_CoreOptions() , PRIORITY_3), valueOf_4(1)); - SPACING_NODE_NODE = new Property_2(SPACING_NODE_NODE_6, 80); - SPACING_EDGE_LABEL = new Property_2(SPACING_EDGE_LABEL_1, 5); - ASPECT_RATIO_0 = new Property_2(ASPECT_RATIO_5, $intern_102); - RANDOM_SEED = new Property_2(RANDOM_SEED_1, valueOf_4(1)); - SEPARATE_CONNECTED_COMPONENTS = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); - PADDING_DEFAULT = new ElkPadding_0(50); - PADDING_0 = new Property_2(PADDING_6, PADDING_DEFAULT); - INTERACTIVE = INTERACTIVE_7; - PORT_CONSTRAINTS = PORT_CONSTRAINTS_1; - EDGE_LABELS_INLINE = new Property_2(EDGE_LABELS_INLINE_1, false); - OMIT_NODE_MICRO_LAYOUT = OMIT_NODE_MICRO_LAYOUT_4; - NODE_SIZE_OPTIONS = NODE_SIZE_OPTIONS_6; - NODE_SIZE_CONSTRAINTS = NODE_SIZE_CONSTRAINTS_6; - NODE_LABELS_PLACEMENT = NODE_LABELS_PLACEMENT_5; - PORT_LABELS_PLACEMENT = PORT_LABELS_PLACEMENT_5; - MODEL_0 = ($clinit_ForceMetaDataProvider() , MODEL); - TEMPERATURE_0 = TEMPERATURE; - ITERATIONS_0 = ITERATIONS; - REPULSION_0 = REPULSION; - REPULSIVE_POWER_0 = REPULSIVE_POWER; -} - -function $apply_12(registry){ - $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.force'), 'ELK Force'), 'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'), new ForceOptions$ForceFactory), 'org.eclipse.elk.force'), of_2(($clinit_GraphFeature() , MULTI_EDGES), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [EDGE_LABELS]))))); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.priority', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.nodeNode', 80); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.edgeLabel', 5); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.aspectRatio', $intern_102); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.randomSeed', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.padding', PADDING_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.edgeLabels.inline', false); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.model', $getDefault(MODEL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.temperature', $getDefault(TEMPERATURE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.iterations', $getDefault(ITERATIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsion', $getDefault(REPULSION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsivePower', $getDefault(REPULSIVE_POWER_0)); -} - -function ForceOptions(){ - $clinit_ForceOptions(); -} - -defineClass(988, 1, $intern_90, ForceOptions); -_.apply_4 = function apply_56(registry){ - $apply_12(registry); -} -; -var ASPECT_RATIO_0, EDGE_LABELS_INLINE, INTERACTIVE, ITERATIONS_0, MODEL_0, NODE_LABELS_PLACEMENT, NODE_SIZE_CONSTRAINTS, NODE_SIZE_OPTIONS, OMIT_NODE_MICRO_LAYOUT, PADDING_0, PADDING_DEFAULT, PORT_CONSTRAINTS, PORT_LABELS_PLACEMENT, PRIORITY, RANDOM_SEED, REPULSION_0, REPULSIVE_POWER_0, SEPARATE_CONNECTED_COMPONENTS, SPACING_EDGE_LABEL, SPACING_NODE_NODE, TEMPERATURE_0; -var Lorg_eclipse_elk_alg_force_options_ForceOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions', 988); -function ForceOptions$ForceFactory(){ -} - -defineClass(989, 1, {}, ForceOptions$ForceFactory); -_.create_0 = function create_3(){ - var provider; - return provider = new ForceLayoutProvider , provider; -} -; -_.destroy = function destroy_0(obj){ -} -; -var Lorg_eclipse_elk_alg_force_options_ForceOptions$ForceFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions/ForceFactory', 989); -function $clinit_InternalProperties_0(){ - $clinit_InternalProperties_0 = emptyMethod; - ORIGIN = new Property('origin'); - RANDOM = new Property('random'); - BB_UPLEFT = new Property('boundingBox.upLeft'); - BB_LOWRIGHT = new Property('boundingBox.lowRight'); -} - -var BB_LOWRIGHT, BB_UPLEFT, ORIGIN, RANDOM; -function $clinit_StressMetaDataProvider(){ - $clinit_StressMetaDataProvider = emptyMethod; - FIXED = new Property_1('org.eclipse.elk.stress.fixed', ($clinit_Boolean() , false)); - DESIRED_EDGE_LENGTH = new Property_1('org.eclipse.elk.stress.desiredEdgeLength', 100); - DIMENSION_DEFAULT = ($clinit_StressMajorization$Dimension() , XY); - DIMENSION = new Property_1('org.eclipse.elk.stress.dimension', DIMENSION_DEFAULT); - EPSILON = new Property_1('org.eclipse.elk.stress.epsilon', $intern_101); - ITERATION_LIMIT = new Property_1('org.eclipse.elk.stress.iterationLimit', valueOf_4($intern_0)); -} - -function StressMetaDataProvider(){ - $clinit_StressMetaDataProvider(); -} - -defineClass(850, 1, $intern_90, StressMetaDataProvider); -_.apply_4 = function apply_57(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.fixed'), ''), 'Fixed Position'), 'Prevent that the node is moved by the layout algorithm.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.desiredEdgeLength'), ''), 'Desired Edge Length'), 'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'), 100), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.dimension'), ''), 'Layout Dimension'), 'Dimensions that are permitted to be altered during layout.'), DIMENSION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.epsilon'), ''), 'Stress Epsilon'), 'Termination criterion for the iterative process.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.iterationLimit'), ''), 'Iteration Limit'), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $apply_13((new StressOptions , registry)); -} -; -var DESIRED_EDGE_LENGTH, DIMENSION, DIMENSION_DEFAULT, EPSILON, FIXED, ITERATION_LIMIT; -var Lorg_eclipse_elk_alg_force_options_StressMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressMetaDataProvider', 850); -function $clinit_StressOptions(){ - $clinit_StressOptions = emptyMethod; - INTERACTIVE_0 = ($clinit_CoreOptions() , INTERACTIVE_7); - new Property_2(EDGE_LABELS_INLINE_1, ($clinit_Boolean() , true)); - NODE_SIZE_CONSTRAINTS_0 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_0 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_0 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_0 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_0 = PORT_LABELS_PLACEMENT_5; - FIXED_0 = ($clinit_StressMetaDataProvider() , FIXED); - DIMENSION_0 = DIMENSION; - EPSILON_0 = EPSILON; - ITERATION_LIMIT_0 = ITERATION_LIMIT; - DESIRED_EDGE_LENGTH_0 = DESIRED_EDGE_LENGTH; -} - -function $apply_13(registry){ - $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.stress'), 'ELK Stress'), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new StressOptions$StressFactory), 'org.eclipse.elk.force'))); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.edgeLabels.inline', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.fixed', $getDefault(FIXED_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.dimension', $getDefault(DIMENSION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.epsilon', $getDefault(EPSILON_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.iterationLimit', $getDefault(ITERATION_LIMIT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.desiredEdgeLength', $getDefault(DESIRED_EDGE_LENGTH_0)); -} - -function StressOptions(){ - $clinit_StressOptions(); -} - -defineClass(992, 1, $intern_90, StressOptions); -_.apply_4 = function apply_58(registry){ - $apply_13(registry); -} -; -var DESIRED_EDGE_LENGTH_0, DIMENSION_0, EPSILON_0, FIXED_0, INTERACTIVE_0, ITERATION_LIMIT_0, NODE_LABELS_PLACEMENT_0, NODE_SIZE_CONSTRAINTS_0, NODE_SIZE_MINIMUM, NODE_SIZE_OPTIONS_0, OMIT_NODE_MICRO_LAYOUT_0, PORT_LABELS_PLACEMENT_0; -var Lorg_eclipse_elk_alg_force_options_StressOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions', 992); -function StressOptions$StressFactory(){ -} - -defineClass(993, 1, {}, StressOptions$StressFactory); -_.create_0 = function create_4(){ - var provider; - return provider = new StressLayoutProvider , provider; -} -; -_.destroy = function destroy_1(obj){ -} -; -var Lorg_eclipse_elk_alg_force_options_StressOptions$StressFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions/StressFactory', 993); -function StressLayoutProvider(){ - this.componentsProcessor = new ComponentsProcessor; - this.stressMajorization = new StressMajorization; -} - -defineClass(1128, 209, $intern_96, StressLayoutProvider); -_.layout = function layout_1(layoutGraph, progressMonitor){ - var builder, components, fgraph, subGraph, subGraph$iterator; - $begin(progressMonitor, 'ELK Stress', 1); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_StressOptions() , INTERACTIVE_0))))?$booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_0))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)):$layout(new ForceLayoutProvider, layoutGraph, $subTask(progressMonitor, 1)); - fgraph = $importGraph_0(layoutGraph); - components = $split_1(this.componentsProcessor, fgraph); - for (subGraph$iterator = components.iterator_0(); subGraph$iterator.hasNext_0();) { - subGraph = castTo(subGraph$iterator.next_1(), 231); - if (subGraph.nodes.array.length <= 1) { - continue; - } - $initialize_1(this.stressMajorization, subGraph); - $execute_1(this.stressMajorization); - $forEach_1(subGraph.labels, new StressLayoutProvider$lambda$0$Type); - } - fgraph = $recombine(components); - $applyLayout_0(fgraph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider', 1128); -function StressLayoutProvider$lambda$0$Type(){ -} - -defineClass(1129, 1, $intern_19, StressLayoutProvider$lambda$0$Type); -_.accept = function accept_57(arg0){ - $refreshPosition(castTo(arg0, 447)); -} -; -var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider/lambda$0$Type', 1129); -function $computeNewPosition(this$static, u){ - var eucDist, v, v$iterator, weightSum, wij, xDisp, yDisp; - weightSum = 0; - xDisp = 0; - yDisp = 0; - for (v$iterator = new ArrayList$1(this$static.graph_0.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 144); - if (u == v) { - continue; - } - wij = this$static.w[u.id_0][v.id_0]; - weightSum += wij; - eucDist = $distance_0(u.position, v.position); - eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , Y) && (xDisp += wij * (v.position.x_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.x_0 - v.position.x_0) / eucDist)); - eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , X) && (yDisp += wij * (v.position.y_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.y_0 - v.position.y_0) / eucDist)); - } - switch (this$static.dim.ordinal) { - case 1: - return new KVector_1(xDisp / weightSum, u.position.y_0); - case 2: - return new KVector_1(u.position.x_0, yDisp / weightSum); - default:return new KVector_1(xDisp / weightSum, yDisp / weightSum); - } -} - -function $computeStress(this$static){ - var eucDisplacement, eucDist, i, j, nodes, stress, u, v; - stress = 0; - nodes = this$static.graph_0.nodes; - for (i = 0; i < nodes.array.length; ++i) { - u = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 144)); - for (j = i + 1; j < nodes.array.length; ++j) { - v = (checkCriticalElementIndex(j, nodes.array.length) , castTo(nodes.array[j], 144)); - eucDist = $distance_0(u.position, v.position); - eucDisplacement = eucDist - this$static.apsp[u.id_0][v.id_0]; - stress += this$static.w[u.id_0][v.id_0] * eucDisplacement * eucDisplacement; - } - } - return stress; -} - -function $dijkstra(this$static, source, dist){ - var d, e, e$iterator, el, mark, n, n$iterator, nodes, u, v; - nodes = new PriorityQueue(new StressMajorization$lambda$0$Type(dist)); - mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.nodes.array.length, 16, 1); - fill0_3(mark, mark.length); - dist[source.id_0] = 0; - for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 144); - n.id_0 != source.id_0 && (dist[n.id_0] = $intern_0); - checkCriticalState_0($offer(nodes, n)); - } - while (nodes.heap.array.length != 0) { - u = castTo($poll_0(nodes), 144); - mark[u.id_0] = true; - for (e$iterator = $listIterator_0(new LinkedListMultimap$1(this$static.connectedEdges, u), 0); e$iterator.next_0;) { - e = castTo($next_2(e$iterator), 282); - v = $getOther_0(e, u); - if (mark[v.id_0]) { - continue; - } - $hasProperty(e, ($clinit_StressOptions() , DESIRED_EDGE_LENGTH_0))?(el = $doubleValue(castToDouble($getProperty(e, DESIRED_EDGE_LENGTH_0)))):(el = this$static.desiredEdgeLength); - d = dist[u.id_0] + el; - if (d < dist[v.id_0]) { - dist[v.id_0] = d; - $remove_25(nodes, v); - checkCriticalState_0($offer(nodes, v)); - } - } - } -} - -function $done(this$static, count, prevStress, curStress){ - return prevStress == 0 || (prevStress - curStress) / prevStress < this$static.epsilon || count >= this$static.iterationLimit; -} - -function $execute_1(this$static){ - var count, curStress, newPos, prevStress, u, u$iterator; - if (this$static.graph_0.nodes.array.length <= 1) { - return; - } - count = 0; - prevStress = $computeStress(this$static); - curStress = $intern_59; - do { - count > 0 && (prevStress = curStress); - for (u$iterator = new ArrayList$1(this$static.graph_0.nodes); u$iterator.i < u$iterator.this$01.array.length;) { - u = castTo($next_7(u$iterator), 144); - if ($booleanValue(castToBoolean($getProperty(u, ($clinit_StressOptions() , FIXED_0))))) { - continue; - } - newPos = $computeNewPosition(this$static, u); - $add_19($reset_5(u.position), newPos); - } - curStress = $computeStress(this$static); - } - while (!$done(this$static, count++, prevStress, curStress)); -} - -function $getOther_0(edge, one){ - if (edge.source == one) { - return edge.target; - } - else if (edge.target == one) { - return edge.source; - } - else { - throw toJs(new IllegalArgumentException_0("Node 'one' must be either source or target of edge 'edge'.")); - } -} - -function $initialize_1(this$static, fgraph){ - var dij, edge, edge$iterator, i, j, n, source, source$iterator, wij; - if (fgraph.nodes.array.length <= 1) { - return; - } - this$static.graph_0 = fgraph; - this$static.dim = castTo($getProperty(this$static.graph_0, ($clinit_StressOptions() , DIMENSION_0)), 379); - this$static.iterationLimit = castTo($getProperty(this$static.graph_0, ITERATION_LIMIT_0), 19).value_0; - this$static.epsilon = $doubleValue(castToDouble($getProperty(this$static.graph_0, EPSILON_0))); - this$static.desiredEdgeLength = $doubleValue(castToDouble($getProperty(this$static.graph_0, DESIRED_EDGE_LENGTH_0))); - $clear_3(this$static.connectedEdges); - for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - $addNode(this$static.connectedEdges, edge.source, edge, null); - $addNode(this$static.connectedEdges, edge.target, edge, null); - } - n = this$static.graph_0.nodes.array.length; - this$static.apsp = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); - for (source$iterator = new ArrayList$1(this$static.graph_0.nodes); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 144); - $dijkstra(this$static, source, this$static.apsp[source.id_0]); - } - this$static.w = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); - for (i = 0; i < n; ++i) { - for (j = 0; j < n; ++j) { - dij = this$static.apsp[i][j]; - wij = 1 / (dij * dij); - this$static.w[i][j] = wij; - } - } -} - -function StressMajorization(){ - this.connectedEdges = new LinkedListMultimap; -} - -function lambda$0_15(dist_0, n1_1, n2_2){ - return compare_4(dist_0[n1_1.id_0], dist_0[n2_2.id_0]); -} - -defineClass(990, 1, {}, StressMajorization); -_.desiredEdgeLength = 0; -_.epsilon = 0; -_.iterationLimit = 0; -var Lorg_eclipse_elk_alg_force_stress_StressMajorization_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization', 990); -function $clinit_StressMajorization$Dimension(){ - $clinit_StressMajorization$Dimension = emptyMethod; - XY = new StressMajorization$Dimension('XY', 0); - X = new StressMajorization$Dimension('X', 1); - Y = new StressMajorization$Dimension('Y', 2); -} - -function StressMajorization$Dimension(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_26(name_0){ - $clinit_StressMajorization$Dimension(); - return valueOf(($clinit_StressMajorization$Dimension$Map() , $MAP_14), name_0); -} - -function values_32(){ - $clinit_StressMajorization$Dimension(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]); -} - -defineClass(379, 22, {3:1, 35:1, 22:1, 379:1}, StressMajorization$Dimension); -var X, XY, Y; -var Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit = createForEnum('org.eclipse.elk.alg.force.stress', 'StressMajorization/Dimension', 379, Ljava_lang_Enum_2_classLit, values_32, valueOf_26); -function $clinit_StressMajorization$Dimension$Map(){ - $clinit_StressMajorization$Dimension$Map = emptyMethod; - $MAP_14 = createValueOfMap(($clinit_StressMajorization$Dimension() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]))); -} - -var $MAP_14; -function StressMajorization$lambda$0$Type(dist_0){ - this.dist_0 = dist_0; -} - -defineClass(991, 1, $intern_88, StressMajorization$lambda$0$Type); -_.compare_1 = function compare_29(arg0, arg1){ - return lambda$0_15(this.dist_0, castTo(arg0, 144), castTo(arg1, 144)); -} -; -_.equals_0 = function equals_81(other){ - return this === other; -} -; -_.reversed = function reversed_21(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_force_stress_StressMajorization$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization/lambda$0$Type', 991); -function $collectAllGraphsBottomUp(root){ - var collectedGraphs, continueSearchingTheseGraphs, nestedGraph, nextGraph, node, node$iterator; - collectedGraphs = new ArrayDeque; - continueSearchingTheseGraphs = new ArrayDeque; - $addFirst(collectedGraphs, root); - $addFirst(continueSearchingTheseGraphs, root); - while (continueSearchingTheseGraphs.head != continueSearchingTheseGraphs.tail) { - nextGraph = castTo($removeFirst(continueSearchingTheseGraphs), 37); - for (node$iterator = new ArrayList$1(nextGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.nestedGraph) { - nestedGraph = node.nestedGraph; - $addFirst(collectedGraphs, nestedGraph); - $addFirst(continueSearchingTheseGraphs, nestedGraph); - } - } - } - return collectedGraphs; -} - -function $doCompoundLayout(this$static, lgraph, monitor){ - var theMonitor; - theMonitor = monitor; - !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); - $begin(theMonitor, 'Layered layout', 2); - $process_1(this$static.compoundGraphPreprocessor, lgraph, $subTask(theMonitor, 1)); - $hierarchicalLayout(this$static, lgraph, $subTask(theMonitor, 1)); - $process_0(lgraph, $subTask(theMonitor, 1)); - $done_0(theMonitor); -} - -function $doLayout(this$static, lgraph, monitor){ - var comp, comp$iterator, compWork, components, theMonitor; - theMonitor = monitor; - !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); - $begin(theMonitor, 'Layered layout', 1); - $prepareGraphForLayout(this$static.graphConfigurator, lgraph); - components = $split_2(this$static.componentsProcessor, lgraph); - if (components.size_1() == 1) { - $layout_1(castTo(components.get_0(0), 37), theMonitor); - } - else { - compWork = 1 / components.size_1(); - for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 37); - $layout_1(comp, $subTask(theMonitor, compWork)); - } - } - $combine(this$static.componentsProcessor, components, lgraph); - $resizeGraph(lgraph); - $done_0(theMonitor); -} - -function $hierarchicalLayout(this$static, lgraph, monitor){ - var algorithm, g, g$iterator, graph, graphAndAlgorithm, graphAndAlgorithm$iterator, graphs, graphsAndAlgorithms, processor, processors, rootProcessors, slotIndex, work, parentCms, rootType; - graphs = $collectAllGraphsBottomUp(lgraph); - parentCms = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); - parentCms != ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP) && $forEach_0(graphs, new ElkLayered$lambda$0$Type); - rootType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292); - $forEach_0(graphs, new ElkLayered$lambda$1$Type(rootType)); - work = 0; - graphsAndAlgorithms = new ArrayList; - for (g$iterator = new ArrayDeque$IteratorImpl(graphs); g$iterator.currentIndex != g$iterator.fence;) { - g = castTo($next_6(g$iterator), 37); - $prepareGraphForLayout(this$static.graphConfigurator, g); - processors = castTo($getProperty(g, ($clinit_InternalProperties_1() , PROCESSORS)), 15); - work += processors.size_1(); - algorithm = processors.iterator_0(); - $add_3(graphsAndAlgorithms, new Pair(g, algorithm)); - } - $begin(monitor, 'Recursive hierarchical layout', work); - slotIndex = 0; - rootProcessors = castTo(castTo($get_11(graphsAndAlgorithms, graphsAndAlgorithms.array.length - 1), 46).second, 47); - while (rootProcessors.hasNext_0()) { - for (graphAndAlgorithm$iterator = new ArrayList$1(graphsAndAlgorithms); graphAndAlgorithm$iterator.i < graphAndAlgorithm$iterator.this$01.array.length;) { - graphAndAlgorithm = castTo($next_7(graphAndAlgorithm$iterator), 46); - processors = castTo(graphAndAlgorithm.second, 47); - graph = castTo(graphAndAlgorithm.first, 37); - while (processors.hasNext_0()) { - processor = castTo(processors.next_1(), 51); - if (instanceOf(processor, 507)) { - if (!graph.parentNode) { - processor.process(graph, $subTask(monitor, 1)); - ++slotIndex; - break; - } - else { - break; - } - } - else { - processor.process(graph, $subTask(monitor, 1)); - ++slotIndex; - } - } - } - } - $done_0(monitor); -} - -function $layout_1(lgraph, monitor){ - var algorithm, gwtDoesntSupportPrintf, layer, layer$iterator, monitorProgress, monitorWasAlreadyRunning, node, node$iterator, processor, processor$iterator, processor$iterator0, slot, slotIndex; - monitorWasAlreadyRunning = monitor.taskName != null && !monitor.closed_0; - monitorWasAlreadyRunning || $begin(monitor, 'Component Layout', 1); - algorithm = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , PROCESSORS)), 15); - monitorProgress = 1 / algorithm.size_1(); - if (monitor.recordLogs) { - $log_2(monitor, 'ELK Layered uses the following ' + algorithm.size_1() + ' modules:'); - slot = 0; - for (processor$iterator0 = algorithm.iterator_0(); processor$iterator0.hasNext_0();) { - processor = castTo(processor$iterator0.next_1(), 51); - gwtDoesntSupportPrintf = (slot < 10?'0':'') + slot++; - $log_2(monitor, ' Slot ' + gwtDoesntSupportPrintf + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(processor))); - } - } - slotIndex = 0; - for (processor$iterator = algorithm.iterator_0(); processor$iterator.hasNext_0();) { - processor = castTo(processor$iterator.next_1(), 51); - processor.process(lgraph, $subTask(monitor, monitorProgress)); - ++slotIndex; - } - for (layer$iterator = new ArrayList$1(lgraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $addAll_2(lgraph.layerlessNodes, layer.nodes); - layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - } - lgraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - monitorWasAlreadyRunning || $done_0(monitor); -} - -function $resizeGraph(lgraph){ - var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; - sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); - sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); - calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - adjustedSize = new KVector_2(calculatedSize); - if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); - if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); - adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); - } - $booleanValue(castToBoolean($getProperty(lgraph, NODE_SIZE_FIXED_GRAPH_SIZE))) || $resizeGraphNoReallyIMeanIt(lgraph, calculatedSize, adjustedSize); -} - -function $resizeGraphNoReallyIMeanIt(lgraph, oldSize, newSize){ - var contentAlignment, extPortSide, lPadding, node, node$iterator; - contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); - newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); - newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); - if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { - for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); - extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); - } - } - } - lPadding = lgraph.padding; - lgraph.size_0.x_0 = newSize.x_0 - lPadding.left - lPadding.right; - lgraph.size_0.y_0 = newSize.y_0 - lPadding.top_0 - lPadding.bottom; -} - -function ElkLayered(){ - this.graphConfigurator = new GraphConfigurator; - this.componentsProcessor = new ComponentsProcessor_0; - this.compoundGraphPreprocessor = new CompoundGraphPreprocessor; - $clinit_CompoundGraphPostprocessor(); -} - -function lambda$0_16(child_0){ - var childCms; - childCms = castTo($getProperty(child_0, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); - if (childCms == ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP)) { - throw toJs(new UnsupportedGraphException('The hierarchy aware processor ' + childCms + ' in child node ' + child_0 + ' is only allowed if the root node specifies the same hierarchical processor.')); - } -} - -function lambda$1_5(rootType_0, g_1){ - return $setProperty_0(g_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), rootType_0); -} - -defineClass(1229, 1, {}, ElkLayered); -var Lorg_eclipse_elk_alg_layered_ElkLayered_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered', 1229); -function ElkLayered$lambda$0$Type(){ -} - -defineClass(1230, 1, $intern_19, ElkLayered$lambda$0$Type); -_.accept = function accept_58(arg0){ - lambda$0_16(castTo(arg0, 37)); -} -; -var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$0$Type', 1230); -function ElkLayered$lambda$1$Type(rootType_0){ - this.rootType_0 = rootType_0; -} - -defineClass(1231, 1, $intern_19, ElkLayered$lambda$1$Type); -_.accept = function accept_59(arg0){ - lambda$1_5(this.rootType_0, castTo(arg0, 37)); -} -; -var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$1$Type', 1231); -function $clinit_GraphConfigurator(){ - $clinit_GraphConfigurator = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , INNERMOST_NODE_MARGIN_CALCULATOR)), P4_NODE_PLACEMENT, LABEL_AND_NODE_SIZE_PROCESSOR), P5_EDGE_ROUTING, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR), P5_EDGE_ROUTING, END_LABEL_SORTER); - LABEL_MANAGEMENT_ADDITIONS = $addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, CENTER_LABEL_MANAGEMENT_PROCESSOR), P4_NODE_PLACEMENT, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR); - HIERARCHICAL_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HIERARCHICAL_NODE_RESIZER); -} - -function $copyPortConstraints(this$static, node){ - var nestedGraph, originalPortconstraints; - originalPortconstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS), originalPortconstraints); - nestedGraph = node.nestedGraph; - !!nestedGraph && ($forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)) , $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static))); -} - -function $getPhaseIndependentLayoutProcessorConfiguration(lgraph){ - var configuration, graphProperties, greedySwitchType, hierarchyHandling, internalGreedyType; - graphProperties = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - configuration = createFrom_0(BASELINE_PROCESSING_CONFIGURATION); - hierarchyHandling = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING)), 334); - hierarchyHandling == ($clinit_HierarchyHandling() , INCLUDE_CHILDREN) && $addAll_6(configuration, HIERARCHICAL_ADDITIONS); - $booleanValue(castToBoolean($getProperty(lgraph, FEEDBACK_EDGES_0)))?$addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)):$addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)); - $getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) != null && $addAll_6(configuration, LABEL_MANAGEMENT_ADDITIONS); - ($booleanValue(castToBoolean($getProperty(lgraph, INTERACTIVE_LAYOUT))) || $booleanValue(castToBoolean($getProperty(lgraph, GENERATE_POSITION_AND_LAYER_IDS_0)))) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , CONSTRAINTS_POSTPROCESSOR)); - switch (castTo($getProperty(lgraph, DIRECTION), 103).ordinal) { - case 2: - case 3: - case 4: - $addAfter($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , DIRECTION_PREPROCESSOR)), P5_EDGE_ROUTING, DIRECTION_POSTPROCESSOR); - } - graphProperties.contains(($clinit_GraphProperties() , COMMENTS)) && $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , COMMENT_PREPROCESSOR)), P4_NODE_PLACEMENT, COMMENT_NODE_MARGIN_CALCULATOR), P5_EDGE_ROUTING, COMMENT_POSTPROCESSOR); - maskUndefined($getProperty(lgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) !== maskUndefined(($clinit_NodePromotionStrategy() , NONE_9)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , NODE_PROMOTION)); - if (graphProperties.contains(PARTITIONS)) { - $addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PARTITION_PREPROCESSOR)); - $addBefore(configuration, P2_LAYERING, PARTITION_MIDPROCESSOR); - $addBefore(configuration, P3_NODE_ORDERING, PARTITION_POSTPROCESSOR); - } - maskUndefined($getProperty(lgraph, COMPACTION_POST_COMPACTION_STRATEGY_0)) !== maskUndefined(($clinit_GraphCompactionStrategy() , NONE_5)) && maskUndefined($getProperty(lgraph, EDGE_ROUTING)) !== maskUndefined(($clinit_EdgeRouting() , POLYLINE)) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HORIZONTAL_COMPACTOR)); - $booleanValue(castToBoolean($getProperty(lgraph, HIGH_DEGREE_NODES_TREATMENT_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , HIGH_DEGREE_NODE_LAYER_PROCESSOR)); - $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SEMI_INTERACTIVE_CROSSMIN_PROCESSOR)); - if (activateGreedySwitchFor(lgraph)) { - maskUndefined($getProperty(lgraph, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN)?(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292)):(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292)); - internalGreedyType = greedySwitchType == ($clinit_GreedySwitchType() , ONE_SIDED)?($clinit_IntermediateProcessorStrategy() , ONE_SIDED_GREEDY_SWITCH):($clinit_IntermediateProcessorStrategy() , TWO_SIDED_GREEDY_SWITCH); - $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), internalGreedyType); - } - switch (castTo($getProperty(lgraph, WRAPPING_STRATEGY_0), 377).ordinal) { - case 1: - $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , SINGLE_EDGE_GRAPH_WRAPPER)); - break; - case 2: - $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , BREAKING_POINT_INSERTER)), P4_NODE_PLACEMENT, BREAKING_POINT_PROCESSOR), P5_EDGE_ROUTING, BREAKING_POINT_REMOVER); - } - maskUndefined($getProperty(lgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SORT_BY_INPUT_ORDER_OF_MODEL)); - return configuration; -} - -function $prepareGraphForLayout(this$static, lgraph){ - var edgeSpacing, direction, randomSeed, favorStraightness, spacings; - edgeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - edgeSpacing < 2 && $setProperty_0(lgraph, SPACING_EDGE_EDGE, 2); - direction = castTo($getProperty(lgraph, DIRECTION), 103); - direction == ($clinit_Direction_0() , UNDEFINED_2) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); - randomSeed = castTo($getProperty(lgraph, RANDOM_SEED_0), 19); - randomSeed.value_0 == 0?$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random):$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random_0(randomSeed.value_0)); - favorStraightness = castToBoolean($getProperty(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); - favorStraightness == null && $setProperty_0(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, ($clinit_Boolean() , maskUndefined($getProperty(lgraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))?true:false)); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static)); - spacings = new Spacings(lgraph); - $setProperty_0(lgraph, ($clinit_InternalProperties_1() , SPACINGS), spacings); - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), castTo($getProperty(lgraph, CYCLE_BREAKING_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P2_LAYERING, castTo($getProperty(lgraph, LAYERING_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P3_NODE_ORDERING, castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P4_NODE_PLACEMENT, castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P5_EDGE_ROUTING, factoryFor(castTo($getProperty(lgraph, EDGE_ROUTING), 218))); - $addProcessorConfiguration(this$static.algorithmAssembler, $getPhaseIndependentLayoutProcessorConfiguration(lgraph)); - $setProperty_0(lgraph, PROCESSORS, $build_0(this$static.algorithmAssembler, lgraph)); -} - -function GraphConfigurator(){ - $clinit_GraphConfigurator(); - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit); -} - -function activateGreedySwitchFor(lgraph){ - var activationThreshold, graphSize, greedySwitchType, interactiveCrossMin; - if (maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))) { - return !lgraph.parentNode && maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)) !== maskUndefined(($clinit_GreedySwitchType() , OFF)); - } - greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292); - interactiveCrossMin = $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) || maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0)) === maskUndefined(($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1)); - activationThreshold = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0), 19).value_0; - graphSize = lgraph.layerlessNodes.array.length; - return !interactiveCrossMin && greedySwitchType != ($clinit_GreedySwitchType() , OFF) && (activationThreshold == 0 || activationThreshold > graphSize); -} - -defineClass(1263, 1, {}, GraphConfigurator); -var BASELINE_PROCESSING_CONFIGURATION, HIERARCHICAL_ADDITIONS, LABEL_MANAGEMENT_ADDITIONS; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator', 1263); -function GraphConfigurator$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(759, 1, $intern_19, GraphConfigurator$lambda$0$Type); -_.accept = function accept_60(arg0){ - $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$0$Type', 759); -function GraphConfigurator$lambda$1$Type(){ -} - -defineClass(760, 1, {}, GraphConfigurator$lambda$1$Type); -_.apply_0 = function apply_59(arg0){ - return $clinit_GraphConfigurator() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$1$Type', 760); -function GraphConfigurator$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(761, 1, $intern_19, GraphConfigurator$lambda$2$Type); -_.accept = function accept_61(arg0){ - $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$2$Type', 761); -function LayeredLayoutProvider(){ - this.elkLayered = new ElkLayered; -} - -defineClass(1127, 209, $intern_96, LayeredLayoutProvider); -_.layout = function layout_2(elkgraph, progressMonitor){ - var layeredGraph; - layeredGraph = $importGraph_1(new ElkGraphImporter, elkgraph); - maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$doCompoundLayout(this.elkLayered, layeredGraph, progressMonitor):$doLayout(this.elkLayered, layeredGraph, progressMonitor); - $applyLayout_2(new ElkGraphLayoutTransferrer, layeredGraph); -} -; -var Lorg_eclipse_elk_alg_layered_LayeredLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'LayeredLayoutProvider', 1127); -function $clinit_LayeredPhases(){ - $clinit_LayeredPhases = emptyMethod; - P1_CYCLE_BREAKING = new LayeredPhases('P1_CYCLE_BREAKING', 0); - P2_LAYERING = new LayeredPhases('P2_LAYERING', 1); - P3_NODE_ORDERING = new LayeredPhases('P3_NODE_ORDERING', 2); - P4_NODE_PLACEMENT = new LayeredPhases('P4_NODE_PLACEMENT', 3); - P5_EDGE_ROUTING = new LayeredPhases('P5_EDGE_ROUTING', 4); -} - -function LayeredPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_27(name_0){ - $clinit_LayeredPhases(); - return valueOf(($clinit_LayeredPhases$Map() , $MAP_15), name_0); -} - -function values_33(){ - $clinit_LayeredPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]); -} - -defineClass(356, 22, {3:1, 35:1, 22:1, 356:1}, LayeredPhases); -var P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING; -var Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit = createForEnum('org.eclipse.elk.alg.layered', 'LayeredPhases', 356, Ljava_lang_Enum_2_classLit, values_33, valueOf_27); -function $clinit_LayeredPhases$Map(){ - $clinit_LayeredPhases$Map = emptyMethod; - $MAP_15 = createValueOfMap(($clinit_LayeredPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]))); -} - -var $MAP_15; -function $clinit_ComponentsToCGraphTransformer(){ - $clinit_ComponentsToCGraphTransformer = emptyMethod; - SPACING_HANDLER = new ComponentsToCGraphTransformer$1; -} - -function $applyLayout_1(this$static){ - var bottomRight, cNode, cNode$iterator, n, n$iterator, placeholder, placeholder$iterator, topLeft; - for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - n.rect.x_0 = n.hitbox.x_0; - n.rect.y_0 = n.hitbox.y_0; - } - topLeft = new KVector_1($intern_59, $intern_59); - bottomRight = new KVector_1($intern_60, $intern_60); - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); - topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); - bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - for (placeholder$iterator = $values(this$static.externalPlaceholder).this$01.valueIterator_0(); placeholder$iterator.hasNext_0();) { - placeholder = castTo(placeholder$iterator.next_1(), 46); - cNode = castTo(placeholder.second, 81); - topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); - topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); - bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - this$static.globalOffset = $negate(new KVector_1(topLeft.x_0, topLeft.y_0)); - this$static.graphSize = $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft); - this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function $getOffset(this$static, c){ - var cOffset; - cOffset = $sub_0($clone_0(castTo($get_10(this$static.oldPosition, c), 8)), $getPosition(castTo($get_10(this$static.offsets, c), 460).rect)); - return cOffset; -} - -function $setLock(cNode, portSides){ - portSides.isEmpty() && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, ($clinit_PortSide() , SIDES_NORTH)) && $set_6(cNode.lock, true, true, true, false); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST) && $set_6(cNode.lock, false, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH) && $set_6(cNode.lock, true, true, false, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_WEST) && $set_6(cNode.lock, true, false, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST) && $set_6(cNode.lock, false, true, true, false); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH) && $set_6(cNode.lock, false, true, false, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH_WEST) && $set_6(cNode.lock, true, false, false, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_WEST) && $set_6(cNode.lock, true, false, true, false); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); -} - -function $transform_0(this$static, ccs){ - var comp, comp$iterator, dummyGroup, ee, ee$iterator, group, rect, rect$iterator, rectNode, rectPlaceholder; - this$static.cGraph = new CGraph_0(allOf(Lorg_eclipse_elk_core_options_Direction_2_classLit)); - for (comp$iterator = new ArrayList$1(ccs.components); comp$iterator.i < comp$iterator.this$01.array.length;) { - comp = castTo($next_7(comp$iterator), 841); - group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); - $add_3(this$static.cGraph.cGroups, group); - for (rect$iterator = new ArrayList$1(comp.rectilinearConvexHull); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 110); - rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, rect); - $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); - if (!$containsKey_3(this$static.oldPosition, comp)) { - $put_6(this$static.oldPosition, comp, new KVector_1(rect.x_0, rect.y_0)); - $put_6(this$static.offsets, comp, rectNode); - } - $add_3(this$static.cGraph.cNodes, rectNode); - $addCNode_0(group, rectNode); - } - for (ee$iterator = new ArrayList$1(comp.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { - ee = castTo($next_7(ee$iterator), 594); - rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, ee.getRepresentor()); - $put_6(this$static.externalExtensions, ee, new Pair(group, rectNode)); - $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); - if (ee.getPlaceholder()) { - rectPlaceholder = new ComponentsToCGraphTransformer$CRectNode_0(this$static, ee.getPlaceholder(), 1); - $setLock(rectPlaceholder, castTo($getProperty(comp.graph_0, EXT_PORT_CONNECTIONS), 21)); - dummyGroup = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); - $addCNode_0(dummyGroup, rectPlaceholder); - $put(this$static.externalPlaceholder, ee.getDirection(), new Pair(group, rectPlaceholder)); - } - } - } - return this$static.cGraph; -} - -function ComponentsToCGraphTransformer(spacing){ - $clinit_ComponentsToCGraphTransformer(); - this.oldPosition = new HashMap; - this.offsets = new HashMap; - this.externalExtensions = new HashMap; - this.externalPlaceholder = new HashMultimap; - this.spacing = spacing; -} - -defineClass(1651, 1, {}, ComponentsToCGraphTransformer); -_.spacing = 0; -var SPACING_HANDLER; -var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer', 1651); -function $clinit_ISpacingsHandler_0(){ - $clinit_ISpacingsHandler_0 = emptyMethod; - DEFAULT_SPACING_HANDLER_0 = new ISpacingsHandler$1_0; -} - -var DEFAULT_SPACING_HANDLER_0; -function ComponentsToCGraphTransformer$1(){ -} - -defineClass(1652, 1, {}, ComponentsToCGraphTransformer$1); -_.getHorizontalSpacing_0 = function getHorizontalSpacing_0(cNode1, cNode2){ - return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -_.getVerticalSpacing_0 = function getVerticalSpacing_0(cNode1, cNode2){ - return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/1', 1652); -defineClass(81, 1, {81:1}); -_.id_0 = 0; -_.reposition = true; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CNode', 81); -function ComponentsToCGraphTransformer$CRectNode(this$0, rect){ - ComponentsToCGraphTransformer$CRectNode_0.call(this, this$0, rect, null); -} - -function ComponentsToCGraphTransformer$CRectNode_0(this$0, rect, spacing){ - this.this$01 = this$0; - this.constraints = new ArrayList; - this.cGroupOffset = new KVector; - this.lock = new Quadruplet_0; - this.spacingIgnore = new Quadruplet_0; - this.rect = rect; - this.hitbox = new ElkRectangle_0(rect.x_0, rect.y_0, rect.width_0, rect.height); - this.individualSpacing = spacing; -} - -defineClass(460, 81, {460:1, 81:1}, ComponentsToCGraphTransformer$CRectNode, ComponentsToCGraphTransformer$CRectNode_0); -_.toString_0 = function toString_84(){ - return ''; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$CRectNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/CRectNode', 460); -function $clinit_OneDimensionalComponentsCompaction(){ - $clinit_OneDimensionalComponentsCompaction = emptyMethod; - LEFT_RIGHT = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [($clinit_Direction_0() , LEFT_6), RIGHT_6])); - UP_DOWN = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UP_1, DOWN_1])); -} - -function $addExternalEdgeRepresentations(this$static, ees){ - var p, p$iterator; - for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 46); - $add_3(this$static.compactionGraph.cNodes, castTo(p.second, 81)); - $addCNode_0(castTo(p.first, 189), castTo(p.second, 81)); - } -} - -function $addPlaceholders(this$static, dir_0){ - var d, d$iterator, dirs, pair, pair$iterator; - dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; - for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { - d = castTo(d$iterator.next_1(), 103); - for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $add_3(this$static.compactionGraph.cNodes, castTo(pair.second, 81)); - $add_3(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); - } - } -} - -function $compact_1(this$static){ - var delta, direction, g, g$iterator, g$iterator0, g$iterator1, g$iterator2; - delta = 0; - for (g$iterator0 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator0.i < g$iterator0.this$01.array.length;) { - g = castTo($next_7(g$iterator0), 189); - g.delta = 0; - g.deltaNormalized = 0; - } - $addPlaceholders(this$static, 0); - $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - $calculateGroupOffsets_0(this$static.compactor); - $forceConstraintsRecalculation(this$static.compactor); - direction = ($clinit_Direction_0() , LEFT_6); - $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($changeDirection_0(this$static.compactor, direction)), $opposite(direction)))), direction))); - $changeDirection_0(this$static.compactor, LEFT_6); - $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - $removePlaceholders(this$static, 0); - $updateExternalExtensionDimensions(this$static, 0); - $updatePlaceholders(this$static, 1); - $addPlaceholders(this$static, 1); - $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $calculateGroupOffsets_0(this$static.compactor); - for (g$iterator1 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator1.i < g$iterator1.this$01.array.length;) { - g = castTo($next_7(g$iterator1), 189); - delta += $wnd.Math.abs(g.deltaNormalized); - } - for (g$iterator2 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator2.i < g$iterator2.this$01.array.length;) { - g = castTo($next_7(g$iterator2), 189); - g.delta = 0; - g.deltaNormalized = 0; - } - direction = UP_1; - $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($forceConstraintsRecalculation($changeDirection_0(this$static.compactor, direction))), $opposite(direction)))), direction))); - $changeDirection_0(this$static.compactor, LEFT_6); - $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $removePlaceholders(this$static, 1); - $updateExternalExtensionDimensions(this$static, 1); - $updatePlaceholders(this$static, 0); - $forceConstraintsRecalculation(this$static.compactor); - for (g$iterator = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 189); - delta += $wnd.Math.abs(g.deltaNormalized); - } - return delta; -} - -function $compact_2(this$static){ - var allNodes, cNode, cNode$iterator, delta, entry, entry$iterator, run; - allNodes = new ArrayList; - this$static.verticalExternalExtensions = new ArrayList; - this$static.horizontalExternalExtensions = new ArrayList; - for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { - entry = $next_4(entry$iterator); - $add_3(allNodes, castTo(castTo(entry.getValue(), 46).second, 81)); - $isHorizontal(castTo(entry.getKey(), 594).getDirection())?$add_3(this$static.horizontalExternalExtensions, castTo(entry.getValue(), 46)):$add_3(this$static.verticalExternalExtensions, castTo(entry.getValue(), 46)); - } - $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - this$static.compactor = new OneDimensionalCompactor_0(this$static.compactionGraph); - $setSpacingsHandler_0(this$static.compactor, ($clinit_ComponentsToCGraphTransformer() , SPACING_HANDLER)); - $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - $addAll_2(allNodes, this$static.compactor.cGraph.cNodes); - this$static.topLeft = new KVector_1($intern_59, $intern_59); - this$static.bottomRight = new KVector_1($intern_60, $intern_60); - for (cNode$iterator = new ArrayList$1(allNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, cNode.hitbox.x_0); - this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, cNode.hitbox.y_0); - this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$0$Type); - run = 0; - do { - delta = $compact_1(this$static); - ++run; - } - while ((run < 2 || delta > $intern_41) && run < 10); - $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$1$Type); - $compact_1(this$static); - $finish(this$static.compactor); - $applyLayout_1(this$static.transformer); -} - -function $getOffset_0(this$static, c){ - var individual; - individual = $getOffset(this$static.transformer, c); - return $add_19($negate(individual), this$static.transformer.globalOffset); -} - -function $removeExternalEdgeRepresentations(this$static, ees){ - var p, p$iterator; - for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 46); - $remove_12(this$static.compactionGraph.cNodes, p.second); - $removeCNode(castTo(p.first, 189), castTo(p.second, 81)); - } -} - -function $removePlaceholders(this$static, dir_0){ - var d, d$iterator, dirs, pair, pair$iterator; - dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; - for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { - d = castTo(d$iterator.next_1(), 103); - for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $remove_12(this$static.compactionGraph.cNodes, pair.second); - $remove_12(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); - } - } -} - -function $updateExternalExtensionDimensions(this$static, dir_0){ - var adelta, cNode, ee, entry, entry$iterator, group; - for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { - entry = $next_4(entry$iterator); - ee = castTo(entry.getKey(), 594); - if (dir_0 == 1) { - if (ee.getDirection() != ($clinit_Direction_0() , UP_1) && ee.getDirection() != DOWN_1) { - continue; - } - } - else { - if (ee.getDirection() != ($clinit_Direction_0() , LEFT_6) && ee.getDirection() != RIGHT_6) { - continue; - } - } - cNode = castTo(castTo(entry.getValue(), 46).second, 81); - group = castTo(castTo(entry.getValue(), 46).first, 189); - adelta = group.deltaNormalized; - switch (ee.getDirection().ordinal) { - case 2: - cNode.hitbox.x_0 = this$static.topLeft.x_0; - cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 + adelta); - break; - case 1: - cNode.hitbox.x_0 = cNode.hitbox.x_0 + adelta; - cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 - adelta); - break; - case 4: - cNode.hitbox.y_0 = this$static.topLeft.y_0; - cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height + adelta); - break; - case 3: - cNode.hitbox.y_0 = cNode.hitbox.y_0 + adelta; - cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height - adelta); - } - } -} - -function $updatePlaceholders(this$static, dir_0){ - var adelta, cNode, d, d$iterator, dirs, pair, pair$iterator, parentComponentGroup; - dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; - for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { - d = castTo(d$iterator.next_1(), 103); - for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - cNode = castTo(pair.second, 81); - parentComponentGroup = castTo(pair.first, 189); - adelta = parentComponentGroup.deltaNormalized; - switch (d.ordinal) { - case 2: - case 1: - cNode.hitbox.y_0 += adelta; - break; - case 4: - case 3: - cNode.hitbox.x_0 += adelta; - } - } - } -} - -function OneDimensionalComponentsCompaction(){ -} - -function lambda$0_17(pair_0){ - $clinit_OneDimensionalComponentsCompaction(); - return $clinit_Boolean() , castTo(pair_0.first, 81).cGroup.outDegree != 0?true:false; -} - -function lambda$1_6(pair_0){ - $clinit_OneDimensionalComponentsCompaction(); - return $clinit_Boolean() , $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103)) || castTo(pair_0.first, 81).cGroup.outDegree != 0 && $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103))?true:false; -} - -defineClass(1623, 1, {}, OneDimensionalComponentsCompaction); -var LEFT_RIGHT, UP_DOWN; -var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction', 1623); -function OneDimensionalComponentsCompaction$lambda$0$Type(){ -} - -defineClass(1624, 1, {}, OneDimensionalComponentsCompaction$lambda$0$Type); -_.apply_0 = function apply_60(arg0){ - return lambda$0_17(castTo(arg0, 46)); -} -; -_.equals_0 = function equals_82(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$0$Type', 1624); -function OneDimensionalComponentsCompaction$lambda$1$Type(){ -} - -defineClass(1625, 1, {}, OneDimensionalComponentsCompaction$lambda$1$Type); -_.apply_0 = function apply_61(arg0){ - return lambda$1_6(castTo(arg0, 46)); -} -; -_.equals_0 = function equals_83(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$1$Type', 1625); -function $supports_0(this$static, direction){ - return $containsEnum(this$static.supportedDirections, direction); -} - -function CGraph_0(supportedDirections){ - this.cNodes = new ArrayList; - this.cGroups = new ArrayList; - this.supportedDirections = supportedDirections; -} - -defineClass(1654, 1, {}, CGraph_0); -var Lorg_eclipse_elk_alg_layered_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGraph', 1654); -function $addCNode_0(this$static, cNode){ - $add_6(this$static.cNodes, cNode); - if (cNode.cGroup) { - throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); - } - cNode.cGroup = this$static; -} - -function $removeCNode(this$static, cNode){ - var removed; - removed = $remove_18(this$static.cNodes, cNode); - removed && (cNode.cGroup = null); - return removed; -} - -function CGroup_0(inputCNodes){ - var cNode, cNode$array, cNode$index, cNode$max; - this.cNodes = new LinkedHashSet; - this.incomingConstraints = new HashSet; - this.outDegree = 0; - for (cNode$array = inputCNodes , cNode$index = 0 , cNode$max = cNode$array.length; cNode$index < cNode$max; ++cNode$index) { - cNode = cNode$array[cNode$index]; - !this.reference && (this.reference = cNode); - $addCNode_0(this, cNode); - } -} - -defineClass(189, 1, {189:1}, CGroup_0); -_.delta = 0; -_.deltaNormalized = 0; -_.outDegree = 0; -_.reposition = true; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_layered_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGroup', 189); -function ISpacingsHandler$1_0(){ -} - -defineClass(1653, 1, {}, ISpacingsHandler$1_0); -_.getHorizontalSpacing_0 = function getHorizontalSpacing_1(cNode1, cNode2){ - return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -_.getVerticalSpacing_0 = function getVerticalSpacing_1(cNode1, cNode2){ - return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'ISpacingsHandler/1', 1653); -function $clinit_OneDimensionalCompactor_0(){ - $clinit_OneDimensionalCompactor_0 = emptyMethod; - SCANLINE_CONSTRAINTS_0 = new ScanlineConstraintCalculator_0; -} - -function $applyLockingStrategy(this$static){ - $applyLockingStrategy_0(this$static, this$static.direction); - return this$static; -} - -function $applyLockingStrategy_0(this$static, dir_0){ - var cGroup, cGroup$iterator, cNode, cNode$iterator; - for (cGroup$iterator = new ArrayList$1(this$static.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { - cGroup = castTo($next_7(cGroup$iterator), 189); - cGroup.reposition = true; - } - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.reposition = $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); - cNode.cGroup.reposition = cNode.cGroup.reposition & $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); - } - return this$static; -} - -function $calculateConstraints_0(this$static){ - var cNode, cNode$iterator; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.constraints.clear_0(); - } - $calculateConstraints_1(this$static.constraintAlgorithm, this$static); - $calculateConstraintsForCGroups_0(this$static); -} - -function $calculateConstraintsForCGroups_0(this$static){ - var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; - for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 189); - group.outDegree = 0; - group.incomingConstraints.map_0.clear_0(); - } - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 189); - for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { - cNode = castTo(cNode$iterator.next_1(), 81); - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 81); - if (inc.cGroup != group) { - $add_6(group.incomingConstraints, inc); - ++inc.cGroup.outDegree; - } - } - } - } -} - -function $calculateGroupOffsets_0(this$static){ - var group, group$iterator, n, n$iterator, n$iterator0; - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 189); - group.reference = null; - for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { - n = castTo(n$iterator0.next_1(), 81); - $reset_5(n.cGroupOffset); - (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); - } - for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 81); - n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; - n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; - } - } - return this$static; -} - -function $changeDirection_0(this$static, dir_0){ - var oldDirection; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - if (!$supports_0(this$static.cGraph, dir_0)) { - throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); - } - if (dir_0 == this$static.direction) { - return this$static; - } - oldDirection = this$static.direction; - this$static.direction = dir_0; - switch (oldDirection.ordinal) { - case 0: - switch (dir_0.ordinal) { - case 2: - $calculateConstraints_0(this$static); - break; - case 1: - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 4: - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - } - - break; - case 2: - switch (dir_0.ordinal) { - case 1: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - break; - case 4: - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - } - - break; - case 1: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - break; - case 4: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - } - - break; - case 4: - switch (dir_0.ordinal) { - case 2: - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 1: - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - } - - break; - case 3: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 1: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 4: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - } - - } - return this$static; -} - -function $compact_3(this$static){ - var g, g$iterator, incN, incN$iterator, n, n$iterator, node, node$iterator; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection_0(this$static, LEFT_6); - for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 189); - g.outDegree = 0; - } - for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - n.startPos = $intern_60; - for (incN$iterator = n.constraints.iterator_0(); incN$iterator.hasNext_0();) { - incN = castTo(incN$iterator.next_1(), 81); - ++incN.cGroup.outDegree; - } - } - $compact_4(this$static); - for (node$iterator = new ArrayList$1(this$static.cGraph.cNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 81); - node.reposition = true; - } - return this$static; -} - -function $finish(this$static){ - $changeDirection_0(this$static, ($clinit_Direction_0() , LEFT_6)); - this$static.finished = true; - return this$static; -} - -function $forceConstraintsRecalculation(this$static){ - $calculateConstraints_0(this$static); - return this$static; -} - -function $mirrorHitboxes_0(this$static){ - var cNode, cNode$iterator; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; - } - $calculateGroupOffsets_0(this$static); -} - -function $reverseConstraints_0(this$static){ - var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; - incMap = new HashMap; - for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 81); - $put_6(incMap, cNode, new ArrayList); - } - for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator1), 81); - cNode.startPos = $intern_60; - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 81); - castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); - } - } - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.constraints.clear_0(); - cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); - } - $calculateConstraintsForCGroups_0(this$static); -} - -function $setLockingStrategy(this$static, strategy){ - this$static.lockingStrategy = strategy; - return this$static; -} - -function $setSpacingsHandler_0(this$static, handler){ - this$static.spacingsHandler = handler; - return this$static; -} - -function $transposeHitboxes_0(this$static){ - var cNode, cNode$iterator, tmp; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - tmp = cNode.hitbox.x_0; - cNode.hitbox.x_0 = cNode.hitbox.y_0; - cNode.hitbox.y_0 = tmp; - tmp = cNode.hitbox.width_0; - cNode.hitbox.width_0 = cNode.hitbox.height; - cNode.hitbox.height = tmp; - tmp = cNode.cGroupOffset.x_0; - cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; - cNode.cGroupOffset.y_0 = tmp; - } - $calculateGroupOffsets_0(this$static); -} - -function OneDimensionalCompactor_0(cGraph){ - $clinit_OneDimensionalCompactor_0(); - var group, n, n$iterator; - this.constraintAlgorithm = SCANLINE_CONSTRAINTS_0; - this.direction = ($clinit_Direction_0() , UNDEFINED_2); - this.spacingsHandler = ($clinit_ISpacingsHandler_0() , DEFAULT_SPACING_HANDLER_0); - this.cGraph = cGraph; - $setLockingStrategy(this, new OneDimensionalCompactor$lambda$0$Type_0); - $calculateGroupOffsets_0(this); - for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - if (!n.cGroup) { - group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [n])); - $add_3(cGraph.cGroups, group); - } - } -} - -defineClass(1655, 1, {}, OneDimensionalCompactor_0); -_.finished = false; -var SCANLINE_CONSTRAINTS_0; -var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor', 1655); -function OneDimensionalCompactor$lambda$0$Type_0(){ -} - -defineClass(1656, 1, {}, OneDimensionalCompactor$lambda$0$Type_0); -_.apply_0 = function apply_62(arg0){ - return $clinit_OneDimensionalCompactor_0() , $clinit_Boolean() , castTo(castTo(arg0, 46).first, 81).cGroup.outDegree != 0?true:false; -} -; -_.equals_0 = function equals_84(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1656); -function $get_19(this$static, direction){ - switch (direction.ordinal) { - case 2: - return this$static.left; - case 1: - return this$static.right; - case 4: - return this$static.up; - case 3: - return this$static.down; - default:return false; - } -} - -function $set_6(this$static, l, r, u, d){ - this$static.left = l; - this$static.right = r; - this$static.up = u; - this$static.down = d; -} - -function Quadruplet_0(){ - $set_6(this, false, false, false, false); -} - -defineClass(823, 1, {}, Quadruplet_0); -_.down = false; -_.left = false; -_.right = false; -_.up = false; -var Lorg_eclipse_elk_alg_layered_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'Quadruplet', 823); -function $compact_4(compactor){ - var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; - minStartPos = $intern_59; - for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 81); - minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); - } - sinks = new LinkedList; - for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 189); - group.startPos = minStartPos; - group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); - } - while (sinks.size_0 != 0) { - group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 189); - diff = group.reference.hitbox.x_0; - for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { - node = castTo(node$iterator0.next_1(), 81); - suggestedX = group.startPos + node.cGroupOffset.x_0; - node.cGroup.reposition || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); - } - diff -= group.reference.startPos; - group.delta += diff; - compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); - for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 81); - for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { - incNode = castTo(incNode$iterator.next_1(), 81); - $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing_0(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing_0(node, incNode)); - incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); - incNode.reposition || (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); - --incNode.cGroup.outDegree; - incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); - } - } - } - for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.hitbox.x_0 = cNode.startPos; - } -} - -function $blowUpHitboxes(this$static){ - var n, n$iterator, spacing; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - spacing = (checkCriticalNotNull(0) , 0); - if (spacing > 0) { - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 -= $wnd.Math.max(0, spacing / 2 - 0.5)); - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height += $wnd.Math.max(0, spacing - 1)); - } - } -} - -function $calculateConstraints_1(this$static, theCompactor){ - this$static.compactor = theCompactor; - $sweep_1(this$static); -} - -function $normalizeHitboxes(this$static){ - var n, n$iterator, spacing; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - spacing = (checkCriticalNotNull(0) , 0); - if (spacing > 0) { - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 += $wnd.Math.max(0, spacing / 2 - 0.5)); - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height -= spacing - 1); - } - } -} - -function $sweep_1(this$static){ - var n, n$iterator, points; - $blowUpHitboxes(this$static); - points = new ArrayList; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, true)); - $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, false)); - } - $reset_2(this$static.constraintsScanlineHandler); - execute_0(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [this$static.constraintsScanlineHandler]))); - $normalizeHitboxes(this$static); -} - -function ScanlineConstraintCalculator_0(){ - this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type_0; - this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this); -} - -function lambda$0_18(p1_0, p2_1){ - var cmp, y1, y2; - y1 = p1_0.node.hitbox.y_0; - p1_0.low || (y1 += p1_0.node.hitbox.height); - y2 = p2_1.node.hitbox.y_0; - p2_1.low || (y2 += p2_1.node.hitbox.height); - cmp = compare_4(y1, y2); - if (cmp == 0) { - if (!p1_0.low && p2_1.low) { - return -1; - } - else if (!p2_1.low && p1_0.low) { - return 1; - } - } - return cmp; -} - -defineClass(1825, 1, {}, ScanlineConstraintCalculator_0); -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator', 1825); -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline/EventHandler'); -function $handle_1(this$static, p){ - var right, left, right_0; - p.low?($add_10(this$static.intervals, p.node) , this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 81) , right = castTo($higher(this$static.intervals, p.node), 81) , !!right && (this$static.cand[right.id_0] = p.node) , undefined):(left = castTo($lower(this$static.intervals, p.node), 81) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right_0 = castTo($higher(this$static.intervals, p.node), 81) , !!right_0 && this$static.cand[right_0.id_0] == p.node && !!right_0.cGroup && right_0.cGroup != p.node.cGroup && p.node.constraints.add_2(right_0) , $remove_28(this$static.intervals, p.node) , undefined); -} - -function $reset_2(this$static){ - var index_0, n, n$iterator; - $clear_8(this$static.intervals.map_0); - this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, $intern_2, 81, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); - index_0 = 0; - for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - n.id_0 = index_0++; - } -} - -function ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this$0){ - this.this$01 = this$0; - this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0), 62)); -} - -function lambda$0_19(c1_0, c2_1){ - return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); -} - -defineClass(1826, 1, {369:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler_0); -_.handle = function handle_1(p){ - $handle_1(this, castTo(p, 466)); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1826); -function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0(){ -} - -defineClass(1827, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0); -_.compare_1 = function compare_30(arg0, arg1){ - return lambda$0_19(castTo(arg0, 81), castTo(arg1, 81)); -} -; -_.equals_0 = function equals_85(other){ - return this === other; -} -; -_.reversed = function reversed_22(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1827); -function ScanlineConstraintCalculator$Timestamp_0(node, low){ - this.node = node; - this.low = low; -} - -defineClass(466, 1, {466:1}, ScanlineConstraintCalculator$Timestamp_0); -_.low = false; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/Timestamp', 466); -function ScanlineConstraintCalculator$lambda$0$Type_0(){ -} - -defineClass(1828, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type_0); -_.compare_1 = function compare_31(arg0, arg1){ - return lambda$0_18(castTo(arg0, 466), castTo(arg1, 466)); -} -; -_.equals_0 = function equals_86(other){ - return this === other; -} -; -_.reversed = function reversed_23(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/lambda$0$Type', 1828); -function Point(x_0, y_0){ - this.x_0 = x_0; - this.y_0 = y_0; -} - -function Point_0(x_0, y_0, quadrant){ - Point.call(this, x_0, y_0); - this.quadrant = quadrant; -} - -defineClass(140, 1, {140:1}, Point, Point_0); -_.equals_0 = function equals_87(obj){ - var p2; - if (obj == null) { - return false; - } - if (Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit != getClass__Ljava_lang_Class___devirtual$(obj)) { - return false; - } - p2 = castTo(obj, 140); - return equals_57(this.x_0, p2.x_0) && equals_57(this.y_0, p2.y_0); -} -; -_.hashCode_1 = function hashCode_60(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0])); -} -; -_.toString_0 = function toString_85(){ - return '(' + this.x_0 + ', ' + this.y_0 + (this.convex?'cx':'') + this.quadrant + ')'; -} -; -_.convex = true; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Point', 140); -function $clinit_Point$Quadrant(){ - $clinit_Point$Quadrant = emptyMethod; - Q1 = new Point$Quadrant('Q1', 0); - Q4 = new Point$Quadrant('Q4', 1); - Q2 = new Point$Quadrant('Q2', 2); - Q3 = new Point$Quadrant('Q3', 3); -} - -function $isLeft(this$static){ - return this$static == Q1 || this$static == Q4; -} - -function $isUpper(this$static){ - return this$static == Q1 || this$static == Q2; -} - -function Point$Quadrant(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function isBothLeftOrBothRight(q1, q2){ - $clinit_Point$Quadrant(); - return q1 == Q1 && q2 == Q4 || q1 == Q4 && q2 == Q1 || q1 == Q3 && q2 == Q2 || q1 == Q2 && q2 == Q3; -} - -function isOneLeftOneRight(q1, q2){ - $clinit_Point$Quadrant(); - return q1 == Q1 && q2 == Q2 || q1 == Q1 && q2 == Q3 || q1 == Q4 && q2 == Q3 || q1 == Q4 && q2 == Q2; -} - -function valueOf_28(name_0){ - $clinit_Point$Quadrant(); - return valueOf(($clinit_Point$Quadrant$Map() , $MAP_16), name_0); -} - -function values_34(){ - $clinit_Point$Quadrant(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]); -} - -defineClass(405, 22, {3:1, 35:1, 22:1, 405:1}, Point$Quadrant); -var Q1, Q2, Q3, Q4; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit = createForEnum('org.eclipse.elk.alg.layered.compaction.recthull', 'Point/Quadrant', 405, Ljava_lang_Enum_2_classLit, values_34, valueOf_28); -function $clinit_Point$Quadrant$Map(){ - $clinit_Point$Quadrant$Map = emptyMethod; - $MAP_16 = createValueOfMap(($clinit_Point$Quadrant() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]))); -} - -var $MAP_16; -function $clinit_RectilinearConvexHull(){ - $clinit_RectilinearConvexHull = emptyMethod; - RIGHT_HIGH_FIRST = new RectilinearConvexHull$lambda$0$Type; - RIGHT_LOW_FIRST = new RectilinearConvexHull$lambda$1$Type; - LEFT_HIGH_FIRST = new RectilinearConvexHull$lambda$2$Type; - LEFT_LOW_FIRST = new RectilinearConvexHull$lambda$3$Type; - RIGHT_SPECIAL_ORDER = new RectilinearConvexHull$lambda$4$Type; -} - -function $splitIntoRectangles(this$static){ - var handler; - handler = new RectilinearConvexHull$RectangleEventHandler(this$static); - execute_0(this$static.hull, RIGHT_SPECIAL_ORDER, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [handler]))); - !!handler.queued && $add_3(handler.rects, handler.queued); - return handler.rects; -} - -function RectilinearConvexHull(){ - this.hull = new ArrayList; -} - -function addConcaveCorners(pts, q){ - var last, next, p, pIt; - pIt = new AbstractList$ListIteratorImpl(pts, 0); - last = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); - while (pIt.i < pIt.this$01_0.size_1()) { - next = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); - p = new Point_0(next.x_0, last.y_0, q); - checkCriticalElement(pIt.i > 0); - pIt.this$01.get_0(pIt.last = --pIt.i); - $add_1(pIt, p); - checkCriticalElement(pIt.i < pIt.this$01_0.size_1()); - pIt.this$01_0.get_0(pIt.last = pIt.i++); - p.convex = false; - last = next; - } -} - -function lambda$0_20(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p1_0.x_0, p2_1.x_0); -} - -function lambda$1_7(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p1_0.x_0, p2_1.x_0); -} - -function lambda$2_2(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p2_1.x_0, p1_0.x_0); -} - -function lambda$3_0(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p2_1.x_0, p1_0.x_0); -} - -function lambda$4_2(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - var val; - if (p1_0.x_0 == p2_1.x_0) { - if (p1_0.quadrant == p2_1.quadrant || isBothLeftOrBothRight(p1_0.quadrant, p2_1.quadrant)) { - val = $isLeft(p1_0.quadrant)?1:-1; - if (p1_0.convex && !p2_1.convex) { - return val; - } - else if (!p1_0.convex && p2_1.convex) { - return -val; - } - } - return compare_5(p1_0.quadrant.ordinal, p2_1.quadrant.ordinal); - } - else { - return compare_4(p1_0.x_0, p2_1.x_0); - } -} - -function of_5(points){ - $clinit_RectilinearConvexHull(); - var p, p$iterator, q1, q2, q3, q4, rch; - rch = new RectilinearConvexHull; - for (p$iterator = new ArrayList$1(points); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 140); - (!rch.xMax1 || p.x_0 >= rch.xMax1.x_0) && (rch.xMax1 = p); - if (!rch.xMin1 || p.x_0 <= rch.xMin1.x_0) { - rch.xMin2 = rch.xMin1; - rch.xMin1 = p; - } - (!rch.yMax1 || p.y_0 >= rch.yMax1.y_0) && (rch.yMax1 = p); - (!rch.yMin1 || p.y_0 <= rch.yMin1.y_0) && (rch.yMin1 = p); - } - q1 = new RectilinearConvexHull$MaximalElementsEventHandler(($clinit_Point$Quadrant() , Q1)); - execute_0(points, RIGHT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q1]))); - q4 = new RectilinearConvexHull$MaximalElementsEventHandler(Q4); - execute_0(points, RIGHT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q4]))); - q2 = new RectilinearConvexHull$MaximalElementsEventHandler(Q2); - execute_0(points, LEFT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q2]))); - q3 = new RectilinearConvexHull$MaximalElementsEventHandler(Q3); - execute_0(points, LEFT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q3]))); - addConcaveCorners(q1.points, Q1); - addConcaveCorners(q2.points, Q2); - addConcaveCorners(q3.points, Q3); - addConcaveCorners(q4.points, Q4); - rch.hull.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(rch.hull, q1.points); - $addAll_2(rch.hull, reverse_0(q2.points)); - $addAll_2(rch.hull, q3.points); - $addAll_2(rch.hull, reverse_0(q4.points)); - return rch; -} - -defineClass(1642, 1, {}, RectilinearConvexHull); -_.xMax1 = null; -_.xMin1 = null; -_.xMin2 = null; -_.yMax1 = null; -_.yMin1 = null; -var LEFT_HIGH_FIRST, LEFT_LOW_FIRST, RIGHT_HIGH_FIRST, RIGHT_LOW_FIRST, RIGHT_SPECIAL_ORDER; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull', 1642); -function $clinit_RectilinearConvexHull$MaximalElementsEventHandler(){ - $clinit_RectilinearConvexHull$MaximalElementsEventHandler = emptyMethod; - DBL_CMP = new RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type; -} - -function $handle_2(this$static, p){ - if (this$static.compare.compare_1(p.y_0, this$static.maximalY) > 0) { - $add_3(this$static.points, new Point_0(p.x_0, p.y_0, this$static.quadrant)); - this$static.maximalY = p.y_0; - } -} - -function RectilinearConvexHull$MaximalElementsEventHandler(quadrant){ - $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); - this.points = new ArrayList; - this.quadrant = quadrant; - switch (quadrant.ordinal) { - case 0: - case 2: - this.compare = reverseOrder(DBL_CMP); - this.maximalY = $intern_59; - break; - case 3: - case 1: - this.compare = DBL_CMP; - this.maximalY = $intern_60; - } -} - -function lambda$0_21(d1_0, d2_1){ - $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); - return compare_4((checkCriticalNotNull(d1_0) , d1_0), (checkCriticalNotNull(d2_1) , d2_1)); -} - -defineClass(574, 1, {369:1}, RectilinearConvexHull$MaximalElementsEventHandler); -_.handle = function handle_2(p){ - $handle_2(this, castTo(p, 140)); -} -; -_.maximalY = 0; -var DBL_CMP; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler', 574); -function RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type(){ -} - -defineClass(1644, 1, $intern_88, RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type); -_.compare_1 = function compare_32(arg0, arg1){ - return lambda$0_21(castToDouble(arg0), castToDouble(arg1)); -} -; -_.equals_0 = function equals_88(other){ - return this === other; -} -; -_.reversed = function reversed_24(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type', 1644); -function $handle_3(this$static, p){ - var r; - if (!!this$static.queued && (p.x_0 != this$static.queuedPnt.x_0 || isOneLeftOneRight(this$static.queuedPnt.quadrant, p.quadrant))) { - $add_3(this$static.rects, this$static.queued); - this$static.lastX = this$static.queued.x_0 + this$static.queued.width_0; - this$static.queued = null; - this$static.queuedPnt = null; - } - $isUpper(p.quadrant)?(this$static.minY = p):(this$static.maxY = p); - if (p.quadrant == ($clinit_Point$Quadrant() , Q1) && !p.convex || p.quadrant == Q2 && p.convex || p.quadrant == Q3 && p.convex || p.quadrant == Q4 && !p.convex) { - if (!!this$static.minY && !!this$static.maxY) { - r = new ElkRectangle_0(this$static.lastX, this$static.minY.y_0, p.x_0 - this$static.lastX, this$static.maxY.y_0 - this$static.minY.y_0); - this$static.queued = r; - this$static.queuedPnt = p; - } - } -} - -function RectilinearConvexHull$RectangleEventHandler(this$0){ - this.this$01 = this$0; - this.rects = new ArrayList; - this.lastX = $wnd.Math.min(this.this$01.xMin1.x_0, this.this$01.xMin2.x_0); -} - -defineClass(1643, 1, {369:1}, RectilinearConvexHull$RectangleEventHandler); -_.handle = function handle_3(p){ - $handle_3(this, castTo(p, 140)); -} -; -_.lastX = 0; -_.maxY = null; -_.minY = null; -_.queued = null; -_.queuedPnt = null; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$RectangleEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/RectangleEventHandler', 1643); -function RectilinearConvexHull$lambda$0$Type(){ -} - -defineClass(1645, 1, $intern_88, RectilinearConvexHull$lambda$0$Type); -_.compare_1 = function compare_33(arg0, arg1){ - return lambda$0_20(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_89(other){ - return this === other; -} -; -_.reversed = function reversed_25(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$0$Type', 1645); -function RectilinearConvexHull$lambda$1$Type(){ -} - -defineClass(1646, 1, $intern_88, RectilinearConvexHull$lambda$1$Type); -_.compare_1 = function compare_34(arg0, arg1){ - return lambda$1_7(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_90(other){ - return this === other; -} -; -_.reversed = function reversed_26(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$1$Type', 1646); -function RectilinearConvexHull$lambda$2$Type(){ -} - -defineClass(1647, 1, $intern_88, RectilinearConvexHull$lambda$2$Type); -_.compare_1 = function compare_35(arg0, arg1){ - return lambda$2_2(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_91(other){ - return this === other; -} -; -_.reversed = function reversed_27(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$2$Type', 1647); -function RectilinearConvexHull$lambda$3$Type(){ -} - -defineClass(1648, 1, $intern_88, RectilinearConvexHull$lambda$3$Type); -_.compare_1 = function compare_36(arg0, arg1){ - return lambda$3_0(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_92(other){ - return this === other; -} -; -_.reversed = function reversed_28(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$3$Type', 1648); -function RectilinearConvexHull$lambda$4$Type(){ -} - -defineClass(1649, 1, $intern_88, RectilinearConvexHull$lambda$4$Type); -_.compare_1 = function compare_37(arg0, arg1){ - return lambda$4_2(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_93(other){ - return this === other; -} -; -_.reversed = function reversed_29(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$4$Type', 1649); -function $go_0(this$static){ - var h, h$iterator, p, p$iterator; - $clinit_Collections(); - $sort(this$static.points, this$static.comparator); - for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { - p = $next_7(p$iterator); - for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { - h = castTo($next_7(h$iterator), 369); - h.handle(p); - } - } -} - -function Scanline_0(points, comparator, eventHandlers){ - this.comparator = comparator; - this.points = points; - this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); -} - -function execute_0(points, comparator, eventHandlers){ - var copy; - copy = (checkNotNull(points) , new ArrayList_1(points)); - $go_0(new Scanline_0(copy, comparator, eventHandlers)); -} - -defineClass(1650, 1, {}, Scanline_0); -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline', 1650); -function $moveGraph_0(destGraph, sourceGraph, offsetx, offsety){ - var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; - graphOffset = $add_18(sourceGraph.offset, offsetx, offsety); - for (node$iterator = new ArrayList$1(sourceGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_19(node.pos, graphOffset); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $offset_2(edge.bendPoints, graphOffset); - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $offset_2(junctionPoints, graphOffset); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $add_19(label_0.pos, graphOffset); - } - } - } - $add_3(destGraph.layerlessNodes, node); - node.graph_0 = destGraph; - } -} - -function $moveGraphs(destGraph, sourceGraphs){ - var sourceGraph, sourceGraph$iterator; - for (sourceGraph$iterator = sourceGraphs.iterator_0(); sourceGraph$iterator.hasNext_0();) { - sourceGraph = castTo(sourceGraph$iterator.next_1(), 37); - $moveGraph_0(destGraph, sourceGraph, 0, 0); - } -} - -function $offsetGraph(graph, offsetx, offsety){ - var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; - graphOffset = new KVector_1(offsetx, offsety); - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_19(node.pos, graphOffset); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $offset_2(edge.bendPoints, graphOffset); - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $offset_2(junctionPoints, graphOffset); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $add_19(label_0.pos, graphOffset); - } - } - } - } -} - -function $offsetGraphs(graphs, offsetx, offsety){ - var graph, graph$iterator; - for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - $offsetGraph(graph, offsetx, offsety); - } -} - -defineClass(2005, 1, {}); -var Lorg_eclipse_elk_alg_layered_components_AbstractGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'AbstractGraphPlacer', 2005); -function $clinit_ComponentGroup(){ - $clinit_ComponentGroup = emptyMethod; - CONSTRAINTS = new HashMultimap; - $put(CONSTRAINTS, ($clinit_PortSide() , SIDES_NONE), SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NONE); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); -} - -function $$init_6(this$static){ - this$static.components = new ArrayListMultimap; -} - -function $getComponents(this$static, connections){ - return castTo($get(this$static.components, connections), 15); -} - -function ComponentGroup(component){ - $clinit_ComponentGroup(); - $$init_6(this); - this.add_4(component); -} - -defineClass(325, 1, {325:1}, ComponentGroup); -_.add_4 = function add_43(component){ - if (this.canAdd(component)) { - $put(this.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); - return true; - } - else { - return false; - } -} -; -_.canAdd = function canAdd(component){ - var candidateSides, constraint, constraint$iterator, constraints; - candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); - constraints = castTo($get(CONSTRAINTS, candidateSides), 21); - for (constraint$iterator = constraints.iterator_0(); constraint$iterator.hasNext_0();) { - constraint = castTo(constraint$iterator.next_1(), 21); - if (!castTo($get(this.components, constraint), 15).isEmpty()) { - return false; - } - } - return true; -} -; -var CONSTRAINTS; -var Lorg_eclipse_elk_alg_layered_components_ComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroup', 325); -function $placeComponents(group, spacing){ - var colLeftWidth, colMidWidth, colNsWidth, colRightWidth, componentSize, rowBottomHeight, rowMidHeight, rowTopHeight, rowWeHeight, sizeC, sizeE, sizeENS, sizeN, sizeNE, sizeNESW, sizeNS, sizeNW, sizeNWE, sizeS, sizeSE, sizeSW, sizeSWE, sizeW, sizeWE, sizeWNS; - sizeC = $placeComponentsInRows($getComponents(group, ($clinit_PortSide() , SIDES_NONE)), spacing); - sizeN = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH), spacing); - sizeS = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH), spacing); - sizeW = $placeComponentsVertically($getComponents(group, SIDES_WEST), spacing); - sizeE = $placeComponentsVertically($getComponents(group, SIDES_EAST), spacing); - sizeNW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_WEST), spacing); - sizeNE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST), spacing); - sizeSW = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH_WEST), spacing); - sizeSE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH), spacing); - sizeWE = $placeComponentsVertically($getComponents(group, SIDES_EAST_WEST), spacing); - sizeNS = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_SOUTH), spacing); - sizeNWE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_WEST), spacing); - sizeSWE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH_WEST), spacing); - sizeWNS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_SOUTH_WEST), spacing); - sizeENS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_EAST_SOUTH), spacing); - sizeNESW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), spacing); - colLeftWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.x_0, sizeW.x_0, sizeSW.x_0, sizeWNS.x_0])); - colMidWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeN.x_0, sizeC.x_0, sizeS.x_0, sizeNESW.x_0])); - colNsWidth = sizeNS.x_0; - colRightWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNE.x_0, sizeE.x_0, sizeSE.x_0, sizeENS.x_0])); - rowTopHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.y_0, sizeN.y_0, sizeNE.y_0, sizeNWE.y_0])); - rowMidHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeW.y_0, sizeC.y_0, sizeE.y_0, sizeNESW.y_0])); - rowWeHeight = sizeWE.y_0; - rowBottomHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeSW.y_0, sizeS.y_0, sizeSE.y_0, sizeSWE.y_0])); - $offsetGraphs($getComponents(group, SIDES_NONE), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH), colLeftWidth + colNsWidth, 0); - $offsetGraphs($getComponents(group, SIDES_SOUTH), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_WEST), 0, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_EAST), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_EAST), colLeftWidth + colNsWidth + colMidWidth, 0); - $offsetGraphs($getComponents(group, SIDES_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_EAST_WEST), 0, rowTopHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_SOUTH), colLeftWidth, 0); - $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, 0); - componentSize = new KVector; - componentSize.x_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [colLeftWidth + colMidWidth + colNsWidth + colRightWidth, sizeWE.x_0, sizeNWE.x_0, sizeSWE.x_0])); - componentSize.y_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [rowTopHeight + rowMidHeight + rowWeHeight + rowBottomHeight, sizeNS.y_0, sizeWNS.y_0, sizeENS.y_0])); - return componentSize; -} - -function $placeComponentsHorizontally(components, spacing){ - var component, component$iterator, size_0; - size_0 = new KVector; - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - $offsetGraph(component, size_0.x_0, 0); - size_0.x_0 += component.size_0.x_0 + spacing; - size_0.y_0 = $wnd.Math.max(size_0.y_0, component.size_0.y_0); - } - size_0.y_0 > 0 && (size_0.y_0 += spacing); - return size_0; -} - -function $placeComponentsInRows(components, spacing){ - var broadestRow, component, component$iterator, componentSize, graph, graph$iterator, highestBox, maxRowWidth, size_0, totalArea, xpos, ypos; - if (components.isEmpty()) { - return new KVector; - } - maxRowWidth = 0; - totalArea = 0; - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - componentSize = component.size_0; - maxRowWidth = $wnd.Math.max(maxRowWidth, componentSize.x_0); - totalArea += componentSize.x_0 * componentSize.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(castTo(components.iterator_0().next_1(), 37), ($clinit_LayeredOptions() , ASPECT_RATIO_1))))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = spacing; - for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - size_0 = graph.size_0; - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + spacing; - highestBox = 0; - } - $offsetGraph(graph, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + spacing; - } - return new KVector_1(broadestRow + spacing, ypos + highestBox + spacing); -} - -function $placeComponentsVertically(components, spacing){ - var component, component$iterator, size_0; - size_0 = new KVector; - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - $offsetGraph(component, 0, size_0.y_0); - size_0.y_0 += component.size_0.y_0 + spacing; - size_0.x_0 = $wnd.Math.max(size_0.x_0, component.size_0.x_0); - } - size_0.x_0 > 0 && (size_0.x_0 += spacing); - return size_0; -} - -function ComponentGroupGraphPlacer(){ - this.componentGroups = new ArrayList; -} - -defineClass(765, 2005, {}, ComponentGroupGraphPlacer); -_.addComponent = function addComponent(component){ - var group, group$iterator; - for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 325); - if (group.add_4(component)) { - return; - } - } - $add_3(this.componentGroups, new ComponentGroup(component)); -} -; -_.combine = function combine(components, target){ - var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, offset; - this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - if (components.isEmpty()) { - target.size_0.x_0 = 0; - target.size_0.y_0 = 0; - return; - } - firstComponent = castTo(components.get_0(0), 37); - $copyProperties(target, firstComponent); - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - this.addComponent(component); - } - offset = new KVector; - componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); - for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 325); - groupSize = $placeComponents(group, componentSpacing); - $offsetGraphs($values(group.components), offset.x_0, offset.y_0); - offset.x_0 += groupSize.x_0; - offset.y_0 += groupSize.y_0; - } - target.size_0.x_0 = offset.x_0 - componentSpacing; - target.size_0.y_0 = offset.y_0 - componentSpacing; - if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { - for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { - h = castTo(h$iterator0.next_1(), 37); - $offsetGraph(h, h.offset.x_0, h.offset.y_0); - } - compactor = new ComponentsCompactor; - $compact_5(compactor, components, componentSpacing); - for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { - h = castTo(h$iterator.next_1(), 37); - $add_19($reset_5(h.offset), compactor.yetAnotherOffset); - } - $add_19($reset_5(target.size_0), compactor.compactedGraphSize); - } - for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 325); - $moveGraphs(target, $values(group.components)); - } -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentGroupGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupGraphPlacer', 765); -function $addComponent(this$static, component){ - var group; - if (this$static.componentGroups.array.length > 0) { - group = castTo($get_11(this$static.componentGroups, this$static.componentGroups.array.length - 1), 570); - if ($add_14(group, component)) { - return; - } - } - $add_3(this$static.componentGroups, new ModelOrderComponentGroup(component)); -} - -function ComponentGroupModelOrderGraphPlacer(){ - ComponentGroupGraphPlacer.call(this); -} - -defineClass(1293, 765, {}, ComponentGroupModelOrderGraphPlacer); -_.addComponent = function addComponent_0(component){ - $addComponent(this, component); -} -; -_.combine = function combine_0(components, target){ - var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, maxSize, offset, side, side$iterator, spaceBlockedByComponents, spaceBlockedBySouthEdges; - this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - if (components.isEmpty()) { - target.size_0.x_0 = 0; - target.size_0.y_0 = 0; - return; - } - firstComponent = castTo(components.get_0(0), 37); - $copyProperties(target, firstComponent); - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - $addComponent(this, component); - } - spaceBlockedBySouthEdges = new KVector; - spaceBlockedByComponents = new KVector; - offset = new KVector; - maxSize = new KVector; - componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); - for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 325); - if ($isHorizontal(castTo($getProperty(target, ($clinit_CoreOptions() , DIRECTION_0)), 103))) { - offset.x_0 = spaceBlockedBySouthEdges.x_0; - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , NORTH_3))) { - offset.x_0 = spaceBlockedByComponents.x_0; - break; - } - } - } - else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { - offset.y_0 = spaceBlockedBySouthEdges.y_0; - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , WEST_2))) { - offset.y_0 = spaceBlockedByComponents.y_0; - break; - } - } - } - groupSize = $placeComponents(castTo(group, 570), componentSpacing); - $offsetGraphs($values(group.components), offset.x_0, offset.y_0); - if ($isHorizontal(castTo($getProperty(target, DIRECTION_0), 103))) { - spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; - maxSize.x_0 = $wnd.Math.max(maxSize.x_0, spaceBlockedByComponents.x_0); - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , SOUTH_2))) { - spaceBlockedBySouthEdges.x_0 = offset.x_0 + groupSize.x_0; - break; - } - } - spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; - offset.y_0 = spaceBlockedByComponents.y_0; - maxSize.y_0 = $wnd.Math.max(maxSize.y_0, offset.y_0); - } - else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { - spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; - maxSize.y_0 = $wnd.Math.max(maxSize.y_0, spaceBlockedByComponents.y_0); - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , EAST_2))) { - spaceBlockedBySouthEdges.y_0 = offset.y_0 + groupSize.y_0; - break; - } - } - spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; - offset.x_0 = spaceBlockedByComponents.x_0; - maxSize.x_0 = $wnd.Math.max(maxSize.x_0, offset.x_0); - } - } - target.size_0.x_0 = maxSize.x_0 - componentSpacing; - target.size_0.y_0 = maxSize.y_0 - componentSpacing; - if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { - for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { - h = castTo(h$iterator0.next_1(), 37); - $offsetGraph(h, h.offset.x_0, h.offset.y_0); - } - compactor = new ComponentsCompactor; - $compact_5(compactor, components, componentSpacing); - for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { - h = castTo(h$iterator.next_1(), 37); - $add_19($reset_5(h.offset), compactor.yetAnotherOffset); - } - $add_19($reset_5(target.size_0), compactor.compactedGraphSize); - } - for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 325); - $moveGraphs(target, $values(group.components)); - } -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentGroupModelOrderGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupModelOrderGraphPlacer', 1293); -function $clinit_ComponentOrderingStrategy(){ - $clinit_ComponentOrderingStrategy = emptyMethod; - NONE = new ComponentOrderingStrategy('NONE', 0); - INSIDE_PORT_SIDE_GROUPS = new ComponentOrderingStrategy('INSIDE_PORT_SIDE_GROUPS', 1); - FORCE_MODEL_ORDER = new ComponentOrderingStrategy('FORCE_MODEL_ORDER', 2); -} - -function ComponentOrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_29(name_0){ - $clinit_ComponentOrderingStrategy(); - return valueOf(($clinit_ComponentOrderingStrategy$Map() , $MAP_17), name_0); -} - -function values_35(){ - $clinit_ComponentOrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]); -} - -defineClass(423, 22, {3:1, 35:1, 22:1, 423:1}, ComponentOrderingStrategy); -var FORCE_MODEL_ORDER, INSIDE_PORT_SIDE_GROUPS, NONE; -var Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.components', 'ComponentOrderingStrategy', 423, Ljava_lang_Enum_2_classLit, values_35, valueOf_29); -function $clinit_ComponentOrderingStrategy$Map(){ - $clinit_ComponentOrderingStrategy$Map = emptyMethod; - $MAP_17 = createValueOfMap(($clinit_ComponentOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]))); -} - -var $MAP_17; -function $addLGraphElementBounds(pts, element, offset){ - var margins; - margins = null; - !!element && (margins = element.margin); - $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); - $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); - $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); - $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); -} - -function $compact_5(this$static, graphs, spacing){ - var c, cc, cc$iterator, cc$iterator0, ccs, e, e$iterator, graph, graph$iterator, graph$iterator0, last, lastArg, n, n$iterator, newPos, node, node$iterator, offset, v, v$iterator, vc, compaction; - this$static.graphTopLeft = new KVector_1($intern_59, $intern_59); - this$static.graphBottomRight = new KVector_1($intern_60, $intern_60); - for (graph$iterator0 = graphs.iterator_0(); graph$iterator0.hasNext_0();) { - graph = castTo(graph$iterator0.next_1(), 37); - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.graphTopLeft.x_0 = $wnd.Math.min(this$static.graphTopLeft.x_0, node.pos.x_0 - node.margin.left); - this$static.graphTopLeft.y_0 = $wnd.Math.min(this$static.graphTopLeft.y_0, node.pos.y_0 - node.margin.top_0); - this$static.graphBottomRight.x_0 = $wnd.Math.max(this$static.graphBottomRight.x_0, node.pos.x_0 + node.size_0.x_0 + node.margin.right); - this$static.graphBottomRight.y_0 = $wnd.Math.max(this$static.graphBottomRight.y_0, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); - } - } - ccs = new ComponentsCompactor$InternalConnectedComponents; - for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - c = $transformLGraph(this$static, graph); - $add_3(ccs.components, c); - c.containsRegularNodes = c.containsRegularNodes | !castTo($getProperty(c.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).isEmpty(); - } - this$static.compactor = ($clinit_OneDimensionalComponentsCompaction() , compaction = new OneDimensionalComponentsCompaction , compaction.transformer = new ComponentsToCGraphTransformer(spacing) , compaction.compactionGraph = $transform_0(compaction.transformer, ccs) , compaction); - $compact_2((lastArg = this$static.compactor , new BasicProgressMonitor , lastArg)); - this$static.yetAnotherOffset = new KVector; - this$static.compactedGraphSize = this$static.compactor.transformer.graphSize; - for (cc$iterator0 = new ArrayList$1(ccs.components); cc$iterator0.i < cc$iterator0.this$01.array.length;) { - cc = castTo($next_7(cc$iterator0), 841); - offset = $getOffset_0(this$static.compactor, cc); - offsetGraph(cc.graph_0, offset.x_0, offset.y_0); - for (n$iterator = new ArrayList$1(cc.graph_0.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - newPos = $getExternalPortPosition(this$static, n.pos, castTo($getProperty(n, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); - $add_19($reset_5(n.pos), newPos); - } - } - } - for (cc$iterator = new ArrayList$1(ccs.components); cc$iterator.i < cc$iterator.this$01.array.length;) { - cc = castTo($next_7(cc$iterator), 841); - for (e$iterator = new ArrayList$1($getExternalEdges(cc)); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - vc = new KVectorChain_0(e.bendPoints); - $add_0(vc, 0, $getAbsoluteAnchor(e.source)); - $add_7(vc, $getAbsoluteAnchor(e.target)); - last = null; - for (v$iterator = $listIterator_2(vc, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { - v = castTo($next_10(v$iterator), 8); - if (!last) { - last = v; - continue; - } - if (fuzzyEquals(last.x_0, v.x_0)) { - this$static.yetAnotherOffset.x_0 = $wnd.Math.min(this$static.yetAnotherOffset.x_0, last.x_0); - this$static.compactedGraphSize.x_0 = $wnd.Math.max(this$static.compactedGraphSize.x_0, last.x_0); - } - else if (fuzzyEquals(last.y_0, v.y_0)) { - this$static.yetAnotherOffset.y_0 = $wnd.Math.min(this$static.yetAnotherOffset.y_0, last.y_0); - this$static.compactedGraphSize.y_0 = $wnd.Math.max(this$static.compactedGraphSize.y_0, last.y_0); - } - last = v; - } - } - } - $negate(this$static.yetAnotherOffset); - $add_19(this$static.compactedGraphSize, this$static.yetAnotherOffset); -} - -function $componentHullPoints(graph){ - var absolute, bp, bp$iterator, edge, edge$iterator, n, n$iterator, pts; - pts = new ComponentsCompactor$Hullpoints; - for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - $addLGraphElementBounds(pts, n, new KVector); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.source.owner.type_0 == EXTERNAL_PORT || edge.target.owner.type_0 == EXTERNAL_PORT) { - continue; - } - for (bp$iterator = $listIterator_2(edge.bendPoints, 0); bp$iterator.currentNode != bp$iterator.this$01.tail;) { - bp = castTo($next_10(bp$iterator), 8); - absolute = bp; - $add_12(pts, new Point(absolute.x_0, absolute.y_0)); - } - } - } - return pts; -} - -function $createDummyNode(graph){ - var dummy, dummyEdge, dummyPort, extPortDummy, extPortDummyPort; - extPortDummy = castTo($get_11(graph.layerlessNodes, 0), 10); - dummy = new LNode(graph); - $add_3(graph.layerlessNodes, dummy); - dummy.size_0.x_0 = $wnd.Math.max(1, extPortDummy.size_0.x_0); - dummy.size_0.y_0 = $wnd.Math.max(1, extPortDummy.size_0.y_0); - dummy.pos.x_0 = extPortDummy.pos.x_0; - dummy.pos.y_0 = extPortDummy.pos.y_0; - switch (castTo($getProperty(extPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 4: - dummy.pos.x_0 += 2; - break; - case 1: - dummy.pos.y_0 += 2; - break; - case 2: - dummy.pos.x_0 -= 2; - break; - case 3: - dummy.pos.y_0 -= 2; - } - dummyPort = new LPort; - $setNode(dummyPort, dummy); - dummyEdge = new LEdge; - extPortDummyPort = castTo($get_11(extPortDummy.ports, 0), 11); - $setSource_0(dummyEdge, extPortDummyPort); - $setTarget_0(dummyEdge, dummyPort); - $add_19($reset_5(dummyPort.pos), extPortDummyPort.pos); - $add_19($reset_5(dummyPort.anchor), extPortDummyPort.anchor); - return dummy; -} - -function $edgeToSegments(this$static, edge, externalExtension){ - var externalPort, externalPortSide, i, outerSegmentIsFirst, p1, p2, points, segment, segments; - externalPort = externalExtension.externalPort; - externalPortSide = externalExtension.externalPortSide; - p1 = $getAbsoluteAnchor(edge.source); - p2 = $getAbsoluteAnchor(edge.target); - if (externalPort == edge.source) { - p1 = $getExternalPortPosition(this$static, p1, externalPortSide); - p2 = $getPortPositionOnMargin(edge.target); - } - else { - p1 = $getPortPositionOnMargin(edge.source); - p2 = $getExternalPortPosition(this$static, p2, externalPortSide); - } - points = new KVectorChain_0(edge.bendPoints); - $addNode_0(points, p1, points.header, points.header.next_0); - $addNode_0(points, p2, points.tail.prev, points.tail); - outerSegmentIsFirst = edge.source == externalPort; - segments = new ComponentsCompactor$Segments; - for (i = 0; i < points.size_0 - 1; ++i) { - segment = new Pair(castTo($get_7(points, i), 8), castTo($get_7(points, i + 1), 8)); - outerSegmentIsFirst && i == 0 || !outerSegmentIsFirst && i == points.size_0 - 2?(segments.outerSegment = segment):$add_3(segments.innerSegments, segment); - } - return segments; -} - -function $getExternalPortPosition(this$static, pos, ps){ - switch (ps.ordinal) { - case 1: - return new KVector_1(pos.x_0, $wnd.Math.min(this$static.graphTopLeft.y_0, pos.y_0)); - case 2: - return new KVector_1($wnd.Math.max(this$static.graphBottomRight.x_0, pos.x_0), pos.y_0); - case 3: - return new KVector_1(pos.x_0, $wnd.Math.max(this$static.graphBottomRight.y_0, pos.y_0)); - case 4: - return new KVector_1($wnd.Math.min(pos.x_0, this$static.graphTopLeft.x_0), pos.y_0); - } - return new KVector_1(pos.x_0, pos.y_0); -} - -function $getPortPositionOnMargin(port){ - var margins, pos; - pos = $clone_0(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor]))); - margins = port.owner.margin; - switch (port.side.ordinal) { - case 1: - pos.y_0 -= margins.top_0; - break; - case 2: - pos.x_0 += margins.right; - break; - case 3: - pos.y_0 += margins.bottom; - break; - case 4: - pos.x_0 -= margins.left; - } - return pos; -} - -function $portSideToDirection(side){ - switch (side.ordinal) { - case 1: - return $clinit_Direction_0() , UP_1; - case 4: - return $clinit_Direction_0() , LEFT_6; - case 2: - return $clinit_Direction_0() , RIGHT_6; - case 3: - return $clinit_Direction_0() , DOWN_1; - } - return $clinit_Direction_0() , UNDEFINED_2; -} - -function $segmentToRectangle(p1, p2, extent){ - return new ElkRectangle_0($wnd.Math.min(p1.x_0, p2.x_0) - extent / 2, $wnd.Math.min(p1.y_0, p2.y_0) - extent / 2, $wnd.Math.abs(p1.x_0 - p2.x_0) + extent, $wnd.Math.abs(p1.y_0 - p2.y_0) + extent); -} - -function $transformLEdge(this$static, externalEdge, hullPoints, outerSegments){ - var extent, externalExtension, margins, outerSegmentRect, rect, segment, segment$iterator, segments, side, thickness; - externalExtension = new ComponentsCompactor$InternalExternalExtension(externalEdge); - segments = $edgeToSegments(this$static, externalEdge, externalExtension); - thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))), 1); - for (segment$iterator = new ArrayList$1(segments.innerSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 46); - rect = $segmentToRectangle(castTo(segment.first, 8), castTo(segment.second, 8), thickness); - returnVal = true; - returnVal = returnVal & $add_13(hullPoints, new KVector_1(rect.x_0, rect.y_0)); - returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, 0)); - returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), 0, rect.height)); - returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, rect.height)); - } - side = externalExtension.externalPortSide; - outerSegmentRect = $segmentToRectangle(castTo(segments.outerSegment.first, 8), castTo(segments.outerSegment.second, 8), thickness); - if (side == ($clinit_PortSide() , WEST_2) || side == EAST_2) { - outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.y_0); - outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.y_0 + outerSegmentRect.height); - } - else { - outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.x_0); - outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.x_0 + outerSegmentRect.width_0); - } - extent = $intern_60; - margins = externalExtension.externalPort.owner.margin; - switch (side.ordinal) { - case 4: - extent = margins.right; - break; - case 2: - extent = margins.left; - break; - case 1: - extent = margins.bottom; - break; - case 3: - extent = margins.top_0; - } - outerSegments.extent[side.ordinal] = $wnd.Math.max(outerSegments.extent[side.ordinal], extent); - return externalExtension; -} - -function $transformLGraph(this$static, graph){ - var component, edge, edge$iterator, extension, extensions, extent, externalExtensions, hullPoints, iee, iuee, max_0, min_0, node, node$iterator, outerSegments, placeholder, ps, ps$iterator; - component = new ComponentsCompactor$InternalComponent(graph); - component.containsRegularNodes || $createDummyNode(graph); - hullPoints = $componentHullPoints(graph); - externalExtensions = new HashMultimap; - outerSegments = new ComponentsCompactor$OuterSegments; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || edge.target.owner.type_0 == EXTERNAL_PORT) { - iee = $transformLEdge(this$static, edge, hullPoints, outerSegments); - $put(externalExtensions, $portSideToDirection(iee.externalPortSide), iee.edge); - } - } - } - extensions = new ArrayList; - for (ps$iterator = castTo($getProperty(component.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).iterator_0(); ps$iterator.hasNext_0();) { - ps = castTo(ps$iterator.next_1(), 61); - min_0 = outerSegments.min_0[ps.ordinal]; - max_0 = outerSegments.max_0[ps.ordinal]; - extent = outerSegments.extent[ps.ordinal]; - extension = null; - placeholder = null; - switch (ps.ordinal) { - case 4: - extension = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, hullPoints.topLeft.x_0 - this$static.graphTopLeft.x_0, max_0 - min_0); - placeholder = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, extent, max_0 - min_0); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); - break; - case 2: - extension = new ElkRectangle_0(hullPoints.bottomRight.x_0, min_0, this$static.graphBottomRight.x_0 - hullPoints.bottomRight.x_0, max_0 - min_0); - placeholder = new ElkRectangle_0(this$static.graphBottomRight.x_0 - extent, min_0, extent, max_0 - min_0); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); - break; - case 1: - extension = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, hullPoints.topLeft.y_0 - this$static.graphTopLeft.y_0); - placeholder = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, extent); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); - break; - case 3: - extension = new ElkRectangle_0(min_0, hullPoints.bottomRight.y_0, max_0 - min_0, this$static.graphBottomRight.y_0 - hullPoints.bottomRight.y_0); - placeholder = new ElkRectangle_0(min_0, this$static.graphBottomRight.y_0 - extent, max_0 - min_0, extent); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); - } - if (extension) { - iuee = new ComponentsCompactor$InternalUnionExternalExtension; - iuee.side = ps; - iuee.extension = extension; - iuee.placeholder = placeholder; - iuee.edges = newHashSet(castTo($get(externalExtensions, $portSideToDirection(ps)), 21)); - extensions.array[extensions.array.length] = iuee; - } - } - $addAll_2(component.externalExtensions, extensions); - component.rectilinearConvexHull = $splitIntoRectangles(of_5(hullPoints)); - return component; -} - -function ComponentsCompactor(){ -} - -defineClass(650, 1, {}, ComponentsCompactor); -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor', 650); -function $add_12(this$static, e){ - this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, e.x_0); - this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, e.y_0); - this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, e.x_0); - this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, e.y_0); - return this$static.array[this$static.array.length] = e , true; -} - -function $add_13(this$static, e){ - return $add_12(this$static, new Point(e.x_0, e.y_0)); -} - -function ComponentsCompactor$Hullpoints(){ - $$init_2(this); - this.topLeft = new KVector_1($intern_59, $intern_59); - this.bottomRight = new KVector_1($intern_60, $intern_60); -} - -defineClass(1468, 12, $intern_71, ComponentsCompactor$Hullpoints); -_.add_2 = function add_44(e){ - return $add_12(this, castTo(e, 140)); -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Hullpoints_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Hullpoints', 1468); -function $getExternalEdges(this$static){ - var edges, ee, ee$iterator; - edges = new ArrayList; - for (ee$iterator = new ArrayList$1(this$static.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { - ee = castTo($next_7(ee$iterator), 594); - $addAll_2(edges, castTo(ee.getRepresentative(), 14)); - } - return edges; -} - -function ComponentsCompactor$InternalComponent(graph){ - var n, n$iterator; - this.externalExtensions = new ArrayList; - this.graph_0 = graph; - this.containsRegularNodes = false; - for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - this.containsRegularNodes = this.containsRegularNodes | n.type_0 == ($clinit_LNode$NodeType() , NORMAL); - } -} - -defineClass(1465, 1, {841:1}, ComponentsCompactor$InternalComponent); -_.containsRegularNodes = false; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalComponent_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalComponent', 1465); -function ComponentsCompactor$InternalConnectedComponents(){ - this.components = new ArrayList; -} - -defineClass(1464, 1, $intern_23, ComponentsCompactor$InternalConnectedComponents); -_.forEach_0 = function forEach_25(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_67(){ - return new ArrayList$1(this.components); -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalConnectedComponents_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalConnectedComponents', 1464); -function ComponentsCompactor$InternalExternalExtension(edge){ - this.edge = edge; - if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - this.externalPort = edge.source; - this.externalPortSide = castTo($getProperty(edge.source.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - } - else if (edge.target.owner.type_0 == EXTERNAL_PORT) { - this.externalPort = edge.target; - this.externalPortSide = castTo($getProperty(edge.target.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - } - else { - throw toJs(new IllegalArgumentException_0('Edge ' + edge + ' is not an external edge.')); - } -} - -defineClass(1467, 1, {594:1}, ComponentsCompactor$InternalExternalExtension); -_.getPlaceholder = function getPlaceholder(){ - return null; -} -; -_.getRepresentative = function getRepresentative(){ - return this.edge; -} -; -_.getDirection = function getDirection(){ - return $portSideToDirection(this.externalPortSide); -} -; -_.getRepresentor = function getRepresentor(){ - return this.externalExtension; -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalExternalExtension', 1467); -function ComponentsCompactor$InternalUnionExternalExtension(){ - this.edges = new HashSet; -} - -defineClass(1466, 1, {594:1}, ComponentsCompactor$InternalUnionExternalExtension); -_.getRepresentative = function getRepresentative_0(){ - return this.edges; -} -; -_.getDirection = function getDirection_0(){ - return $portSideToDirection(this.side); -} -; -_.getPlaceholder = function getPlaceholder_0(){ - return this.placeholder; -} -; -_.getRepresentor = function getRepresentor_0(){ - return this.extension; -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalUnionExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalUnionExternalExtension', 1466); -function ComponentsCompactor$OuterSegments(){ - this.min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); - this.max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); - this.extent = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); - fill_1(this.min_0, $intern_59); - fill_1(this.max_0, $intern_60); - fill_1(this.extent, $intern_60); -} - -defineClass(1470, 1, {}, ComponentsCompactor$OuterSegments); -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$OuterSegments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/OuterSegments', 1470); -function ComponentsCompactor$Segments(){ - this.innerSegments = new ArrayList; -} - -defineClass(1469, 1, {}, ComponentsCompactor$Segments); -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Segments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Segments', 1469); -function $combine(this$static, components, target){ - this$static.graphPlacer.combine(components, target); -} - -function $dfs_1(this$static, node, data_0){ - var all, component, extPortSides, mutableData, port1, port1$iterator, port2, port2$iterator; - if (node.id_0 == 0) { - node.id_0 = 1; - mutableData = data_0; - if (!mutableData) { - component = new ArrayList; - extPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - mutableData = new Pair(component, extPortSides); - } - castTo(mutableData.first, 15).add_2(node); - node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && castTo(mutableData.second, 21).add_2(castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); - for (port1$iterator = new ArrayList$1(node.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { - port1 = castTo($next_7(port1$iterator), 11); - for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { - port2 = castTo($next_0(port2$iterator), 11); - $dfs_1(this$static, port2.owner, mutableData); - } - } - return mutableData; - } - return null; -} - -function $split_2(this$static, graph){ - var compatiblePortConstraints, componentData, extPortConstraints, extPorts, n, n$iterator, newGraph, node, node$iterator, node$iterator0, result, separate, separateProperty; - this$static.graphPlacer = this$static.simpleRowGraphPlacer; - separateProperty = castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , SEPARATE_CONNECTED_COMPONENTS_0))); - separate = separateProperty == null || (checkCriticalNotNull(separateProperty) , separateProperty); - extPorts = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); - extPortConstraints = castTo($getProperty(graph, PORT_CONSTRAINTS_0), 98); - compatiblePortConstraints = !(extPortConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || extPortConstraints == FIXED_RATIO || extPortConstraints == FIXED_POS); - if (separate && (compatiblePortConstraints || !extPorts)) { - for (node$iterator0 = new ArrayList$1(graph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = 0; - } - result = new ArrayList; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - componentData = $dfs_1(this$static, node, null); - if (componentData) { - newGraph = new LGraph; - $copyProperties(newGraph, graph); - $setProperty_0(newGraph, EXT_PORT_CONNECTIONS, castTo(componentData.second, 21)); - $copy(newGraph.padding, graph.padding); - $setProperty_0(newGraph, NODE_SIZE_MINIMUM_0, null); - for (n$iterator = castTo(componentData.first, 15).iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 10); - $add_3(newGraph.layerlessNodes, n); - n.graph_0 = newGraph; - } - result.add_2(newGraph); - } - } - extPorts && (maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) === maskUndefined(($clinit_ComponentOrderingStrategy() , FORCE_MODEL_ORDER))?(this$static.graphPlacer = this$static.componentGroupModelOrderGraphPlacer):(this$static.graphPlacer = this$static.componentGroupGraphPlacer)); - } - else { - result = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [graph])); - } - maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) && ($clinit_Collections() , result.sort_0(new ComponentsProcessor$lambda$0$Type)); - return result; -} - -function ComponentsProcessor_0(){ - this.componentGroupGraphPlacer = new ComponentGroupGraphPlacer; - this.componentGroupModelOrderGraphPlacer = new ComponentGroupModelOrderGraphPlacer; - this.simpleRowGraphPlacer = new SimpleRowGraphPlacer; -} - -function lambda$0_22(g1_0, g2_1){ - var g1Order, g2Order; - g1Order = getMinimalModelOrder(g1_0); - g2Order = getMinimalModelOrder(g2_1); - return g1Order < g2Order?-1:g1Order > g2Order?1:0; -} - -defineClass(1264, 1, {}, ComponentsProcessor_0); -var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor', 1264); -function ComponentsProcessor$lambda$0$Type(){ -} - -defineClass(1265, 1, $intern_88, ComponentsProcessor$lambda$0$Type); -_.compare_1 = function compare_38(arg0, arg1){ - return lambda$0_22(castTo(arg0, 37), castTo(arg1, 37)); -} -; -_.equals_0 = function equals_94(other){ - return this === other; -} -; -_.reversed = function reversed_30(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor/lambda$0$Type', 1265); -function $clinit_ModelOrderComponentGroup(){ - $clinit_ModelOrderComponentGroup = emptyMethod; - $clinit_ComponentGroup(); - MODEL_ORDER_CONSTRAINTS = new HashMultimap; - $put(MODEL_ORDER_CONSTRAINTS, ($clinit_PortSide() , SIDES_NORTH), SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); -} - -function $add_14(this$static, component){ - if ($canAdd(this$static, component)) { - $put(this$static.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); - $add_7(this$static.componentOrder, component); - return true; - } - else { - return false; - } -} - -function $canAdd(this$static, component){ - var candidateSides, constraint, constraint$iterator, constraint$iterator0, constraints, modelOrderConstraints; - candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); - constraints = castTo($get(($clinit_ComponentGroup() , CONSTRAINTS), candidateSides), 21); - modelOrderConstraints = castTo($get(MODEL_ORDER_CONSTRAINTS, candidateSides), 21); - for (constraint$iterator0 = constraints.iterator_0(); constraint$iterator0.hasNext_0();) { - constraint = castTo(constraint$iterator0.next_1(), 21); - if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { - return false; - } - } - for (constraint$iterator = modelOrderConstraints.iterator_0(); constraint$iterator.hasNext_0();) { - constraint = castTo(constraint$iterator.next_1(), 21); - if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { - return false; - } - } - return true; -} - -function ModelOrderComponentGroup(component){ - $clinit_ModelOrderComponentGroup(); - $$init_6(this); - this.componentOrder = new LinkedList; - $add_14(this, component); - $add_7(this.componentOrder, component); -} - -defineClass(570, 325, {325:1, 570:1}, ModelOrderComponentGroup); -_.add_4 = function add_45(component){ - return $add_14(this, component); -} -; -_.canAdd = function canAdd_0(component){ - return $canAdd(this, component); -} -; -var MODEL_ORDER_CONSTRAINTS; -var Lorg_eclipse_elk_alg_layered_components_ModelOrderComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ModelOrderComponentGroup', 570); -function SimpleRowGraphPlacer(){ -} - -defineClass(1291, 2005, {}, SimpleRowGraphPlacer); -_.combine = function combine_1(components, target){ - var broadestRow, compactor, componentSpacing, firstComponent, graph, graph$iterator, graph$iterator0, graph$iterator1, h, h$iterator, highestBox, maxRowWidth, node, node$iterator, offset, priority, size_0, source, totalArea, xpos, ypos; - if (components.size_1() == 1) { - source = castTo(components.get_0(0), 37); - if (source != target) { - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $moveGraph_0(target, source, 0, 0); - $copyProperties(target, source); - $copy(target.padding, source.padding); - target.size_0.x_0 = source.size_0.x_0; - target.size_0.y_0 = source.size_0.y_0; - } - return; - } - else if (components.isEmpty()) { - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - target.size_0.x_0 = 0; - target.size_0.y_0 = 0; - return; - } - if (maskUndefined($getProperty(target, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_COMPONENTS_0))) === maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { - for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { - graph = castTo(graph$iterator0.next_1(), 37); - priority = 0; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - priority += castTo($getProperty(node, PRIORITY_0), 19).value_0; - } - graph.id_0 = priority; - } - $clinit_Collections(); - components.sort_0(new SimpleRowGraphPlacer$1); - } - firstComponent = castTo(components.get_0(0), 37); - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $copyProperties(target, firstComponent); - maxRowWidth = 0; - totalArea = 0; - for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { - graph = castTo(graph$iterator1.next_1(), 37); - size_0 = graph.size_0; - maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); - totalArea += size_0.x_0 * size_0.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(target, ASPECT_RATIO_1)))); - componentSpacing = $doubleValue(castToDouble($getProperty(target, SPACING_COMPONENT_COMPONENT_0))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = componentSpacing; - for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - size_0 = graph.size_0; - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + componentSpacing; - highestBox = 0; - } - offset = graph.offset; - $offsetGraph(graph, xpos + offset.x_0, ypos + offset.y_0); - $reset_5(offset); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + componentSpacing; - } - target.size_0.x_0 = broadestRow; - target.size_0.y_0 = ypos + highestBox; - if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0)))) { - compactor = new ComponentsCompactor; - $compact_5(compactor, components, componentSpacing); - for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { - h = castTo(h$iterator.next_1(), 37); - $add_19($reset_5(h.offset), compactor.yetAnotherOffset); - } - $add_19($reset_5(target.size_0), compactor.compactedGraphSize); - } - $moveGraphs(target, components); -} -; -var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer', 1291); -function $compare_8(graph1, graph2){ - var prio, size1, size2; - prio = graph2.id_0 - graph1.id_0; - if (prio == 0) { - size1 = graph1.size_0.x_0 * graph1.size_0.y_0; - size2 = graph2.size_0.x_0 * graph2.size_0.y_0; - return compare_4(size1, size2); - } - return prio; -} - -function SimpleRowGraphPlacer$1(){ -} - -defineClass(1292, 1, $intern_88, SimpleRowGraphPlacer$1); -_.compare_1 = function compare_39(graph1, graph2){ - return $compare_8(castTo(graph1, 37), castTo(graph2, 37)); -} -; -_.equals_0 = function equals_95(other){ - return this === other; -} -; -_.reversed = function reversed_31(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer/1', 1292); -function $clinit_CompoundGraphPostprocessor(){ - $clinit_CompoundGraphPostprocessor = emptyMethod; - HAS_JUNCTION_POINTS_PREDICATE = new CompoundGraphPostprocessor$1; -} - -function $process_0(graph, monitor){ - var addUnnecessaryBendpoints, bendPoints, chEdge, chEdge$iterator, crossHierarchyEdges, crossHierarchyMap, dummyEdge, dummyEdge$iterator, dummyEdges, junctionPoints, lastPoint, ledge, nextPoint, offset, origEdge, origEdge$iterator, referenceGraph, referenceNode, sourcePoint, sourcePort, targetPoint, targetPort, xDiffEnough, yDiffEnough; - $begin(monitor, 'Compound graph postprocessor', 1); - addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); - crossHierarchyMap = castTo($getProperty(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP)), 224); - dummyEdges = new HashSet; - for (origEdge$iterator = crossHierarchyMap.keySet_0().iterator_0(); origEdge$iterator.hasNext_0();) { - origEdge = castTo(origEdge$iterator.next_1(), 17); - crossHierarchyEdges = new ArrayList_1(crossHierarchyMap.get_1(origEdge)); - $clinit_Collections(); - $sort(crossHierarchyEdges, new CrossHierarchyEdgeComparator(graph)); - sourcePort = $getActualSource((checkCriticalElementIndex(0, crossHierarchyEdges.array.length) , castTo(crossHierarchyEdges.array[0], 243))); - targetPort = $getActualTarget(castTo($get_11(crossHierarchyEdges, crossHierarchyEdges.array.length - 1), 243)); - referenceNode = sourcePort.owner; - isDescendant(targetPort.owner, referenceNode)?(referenceGraph = referenceNode.nestedGraph):(referenceGraph = $getGraph(referenceNode)); - junctionPoints = clearJunctionPoints(origEdge, crossHierarchyEdges); - $reset_0(origEdge.bendPoints); - lastPoint = null; - for (chEdge$iterator = new ArrayList$1(crossHierarchyEdges); chEdge$iterator.i < chEdge$iterator.this$01.array.length;) { - chEdge = castTo($next_7(chEdge$iterator), 243); - offset = new KVector; - changeCoordSystem(offset, chEdge.graph_0, referenceGraph); - ledge = chEdge.newEdge; - bendPoints = new KVectorChain; - $addAllAsCopies(bendPoints, 0, ledge.bendPoints); - $offset_2(bendPoints, offset); - sourcePoint = new KVector_2($getAbsoluteAnchor(ledge.source)); - targetPoint = new KVector_2($getAbsoluteAnchor(ledge.target)); - $add_19(sourcePoint, offset); - $add_19(targetPoint, offset); - if (lastPoint) { - bendPoints.size_0 == 0?(nextPoint = targetPoint):(nextPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8))); - xDiffEnough = $wnd.Math.abs(lastPoint.x_0 - nextPoint.x_0) > $intern_101; - yDiffEnough = $wnd.Math.abs(lastPoint.y_0 - nextPoint.y_0) > $intern_101; - (!addUnnecessaryBendpoints && xDiffEnough && yDiffEnough || addUnnecessaryBendpoints && (xDiffEnough || yDiffEnough)) && $add_7(origEdge.bendPoints, sourcePoint); - } - $addAll(origEdge.bendPoints, bendPoints); - bendPoints.size_0 == 0?(lastPoint = sourcePoint):(lastPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8))); - copyJunctionPoints(ledge, junctionPoints, offset); - if ($getActualTarget(chEdge) == targetPort) { - if ($getGraph(targetPort.owner) != chEdge.graph_0) { - offset = new KVector; - changeCoordSystem(offset, $getGraph(targetPort.owner), referenceGraph); - } - $setProperty_0(origEdge, TARGET_OFFSET, offset); - } - copyLabelsBack(ledge, origEdge, referenceGraph); - dummyEdges.map_0.put(ledge, dummyEdges); - } - $setSource_0(origEdge, sourcePort); - $setTarget_0(origEdge, targetPort); - } - for (dummyEdge$iterator = dummyEdges.map_0.keySet_0().iterator_0(); dummyEdge$iterator.hasNext_0();) { - dummyEdge = castTo(dummyEdge$iterator.next_1(), 17); - $setSource_0(dummyEdge, null); - $setTarget_0(dummyEdge, null); - } - $done_0(monitor); -} - -function clearJunctionPoints(origEdge, crossHierarchyEdges){ - var junctionPoints; - junctionPoints = castTo($getProperty(origEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (any_0(crossHierarchyEdges, HAS_JUNCTION_POINTS_PREDICATE)) { - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(origEdge, JUNCTION_POINTS, junctionPoints); - } - else { - $reset_0(junctionPoints); - } - } - else - !!junctionPoints && $setProperty_0(origEdge, JUNCTION_POINTS, null); - return junctionPoints; -} - -function copyJunctionPoints(source, target, offset){ - var jpCopies, ledgeJPs; - ledgeJPs = castTo($getProperty(source, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (ledgeJPs) { - jpCopies = new KVectorChain; - $addAllAsCopies(jpCopies, 0, ledgeJPs); - $offset_2(jpCopies, offset); - $addAll(target, jpCopies); - } -} - -function copyLabelsBack(hierarchySegment, origEdge, referenceGraph){ - var currLabel, labelIterator; - labelIterator = new AbstractList$ListIteratorImpl(hierarchySegment.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - if (maskUndefined($getProperty(currLabel, ($clinit_InternalProperties_1() , ORIGINAL_LABEL_EDGE))) !== maskUndefined(origEdge)) { - continue; - } - changeCoordSystem(currLabel.pos, $getGraph(hierarchySegment.source.owner), referenceGraph); - $remove_8(labelIterator); - $add_3(origEdge.labels, currLabel); - } -} - -var HAS_JUNCTION_POINTS_PREDICATE; -function CompoundGraphPostprocessor$1(){ -} - -defineClass(1262, 1, $intern_89, CompoundGraphPostprocessor$1); -_.apply_1 = function apply_63(chEdge){ - var jps; - return jps = castTo($getProperty(castTo(chEdge, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; -} -; -_.equals_0 = function equals_96(other){ - return this === other; -} -; -_.test_0 = function test_16(input_0){ - var jps; - return jps = castTo($getProperty(castTo(input_0, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; -} -; -var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPostprocessor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPostprocessor/1', 1262); -function $calculateNetFlow(port){ - var incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, node, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; - node = port.owner; - insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); - outputPortVote = 0; - inputPortVote = 0; - for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { - outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); - isSelfLoop = $isSelfLoop(outgoingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(outgoingEdge, INSIDE_SELF_LOOPS_YO))); - targetNode = outgoingEdge.target.owner; - isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getGraph(targetNode).parentNode == node?++inputPortVote:++outputPortVote; - } - for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { - incomingEdge = castTo($next_7(incomingEdge$iterator), 17); - isSelfLoop = $isSelfLoop(incomingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(incomingEdge, INSIDE_SELF_LOOPS_YO))); - sourceNode = incomingEdge.source.owner; - isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getGraph(sourceNode).parentNode == node?++outputPortVote:++inputPortVote; - } - return outputPortVote - inputPortVote; -} - -function $connectChild(this$static, graph, externalPort, origEdge, sourcePort, targetPort){ - var dummyEdge; - dummyEdge = $createDummyEdge(origEdge); - $setSource_0(dummyEdge, sourcePort); - $setTarget_0(dummyEdge, targetPort); - $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalPort.type_0)); -} - -function $connectSiblings(this$static, graph, externalOutputPort, containedExternalPorts, origEdge){ - var dummyEdge, externalPort2, externalPort2$iterator, targetExternalPort; - targetExternalPort = null; - for (externalPort2$iterator = new ArrayList$1(containedExternalPorts); externalPort2$iterator.i < externalPort2$iterator.this$01.array.length;) { - externalPort2 = castTo($next_7(externalPort2$iterator), 441); - if (externalPort2 != externalOutputPort && $indexOf_3(externalPort2.origEdges, origEdge, 0) != -1) { - targetExternalPort = externalPort2; - break; - } - } - dummyEdge = $createDummyEdge(origEdge); - $setSource_0(dummyEdge, externalOutputPort.dummyPort); - $setTarget_0(dummyEdge, targetExternalPort.dummyPort); - $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalOutputPort.type_0)); -} - -function $createDummyEdge(origEdge){ - var dummyEdge; - dummyEdge = new LEdge; - $copyProperties(dummyEdge, origEdge); - $setProperty_0(dummyEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); - return dummyEdge; -} - -function $createExternalPortDummy(this$static, graph, parentNode, portType, portSide, edge){ - var dummyNode, dummyPort, layoutDirection, outsidePort, propertyHolder, offset; - dummyNode = null; - outsidePort = portType == ($clinit_PortType() , INPUT)?edge.source:edge.target; - layoutDirection = getDirection_1(graph); - if (outsidePort.owner == parentNode) { - dummyNode = castTo($get_10(this$static.dummyNodeMap, outsidePort), 10); - if (!dummyNode) { - dummyNode = createExternalPortDummy(outsidePort, castTo($getProperty(parentNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98), portSide, $calculateNetFlow(outsidePort), null, outsidePort.pos, outsidePort.size_0, layoutDirection, graph); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), outsidePort); - $put_6(this$static.dummyNodeMap, outsidePort, dummyNode); - } - } - else { - dummyNode = createExternalPortDummy((propertyHolder = new MapPropertyHolder , offset = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))) / 2 , $setProperty(propertyHolder, PORT_BORDER_OFFSET, offset) , propertyHolder), castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98), portSide, portType == INPUT?-1:1, null, new KVector, new KVector_1(0, 0), layoutDirection, graph); - dummyPort = $createPortForDummy(dummyNode, parentNode, portType); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), dummyPort); - $put_6(this$static.dummyNodeMap, dummyPort, dummyNode); - } - castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); - $isSideFixed(castTo($getProperty(graph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))?$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)):$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FREE)); - return dummyNode; -} - -function $createPortForDummy(dummyNode, parentNode, type_0){ - var graph, layoutDirection, port; - graph = $getGraph(parentNode); - layoutDirection = getDirection_1(graph); - port = new LPort; - $setNode(port, parentNode); - switch (type_0.ordinal) { - case 1: - $setSide(port, $opposed(fromDirection(layoutDirection))); - break; - case 2: - $setSide(port, fromDirection(layoutDirection)); - } - $setProperty_0(port, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET), castToDouble($getProperty(dummyNode, PORT_BORDER_OFFSET))); - return port; -} - -function $getShallowestEdgeSegment(edgeSegments){ - var crossHierarchyEdge, crossHierarchyEdge$iterator, index_0, result; - result = -1; - index_0 = 0; - for (crossHierarchyEdge$iterator = new ArrayList$1(edgeSegments); crossHierarchyEdge$iterator.i < crossHierarchyEdge$iterator.this$01.array.length;) { - crossHierarchyEdge = castTo($next_7(crossHierarchyEdge$iterator), 243); - if (crossHierarchyEdge.type_0 == ($clinit_PortType() , INPUT)) { - result = index_0 == 0?0:index_0 - 1; - break; - } - else - index_0 == edgeSegments.array.length - 1 && (result = index_0); - index_0 += 1; - } - return result; -} - -function $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, origEdge, oppositePort, portType, defaultExternalPort){ - var dummyEdge, dummyNode, externalPort, externalPortSide, mergeExternalPorts, parentEndPort, thickness; - mergeExternalPorts = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , MERGE_HIERARCHY_EDGES_0)))); - parentEndPort = null; - portType == ($clinit_PortType() , INPUT) && origEdge.source.owner == parentNode?(parentEndPort = origEdge.source):portType == OUTPUT && origEdge.target.owner == parentNode && (parentEndPort = origEdge.target); - externalPort = defaultExternalPort; - if (!externalPort || !mergeExternalPorts || !!parentEndPort) { - externalPortSide = ($clinit_PortSide() , UNDEFINED_5); - parentEndPort?(externalPortSide = parentEndPort.side):$isSideFixed(castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98)) && (externalPortSide = portType == INPUT?WEST_2:EAST_2); - dummyNode = $createExternalPortDummy(this$static, graph, parentNode, portType, externalPortSide, origEdge); - dummyEdge = $createDummyEdge(($getGraph(parentNode) , origEdge)); - if (portType == INPUT) { - $setSource_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); - $setTarget_0(dummyEdge, oppositePort); - } - else { - $setSource_0(dummyEdge, oppositePort); - $setTarget_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); - } - externalPort = new CompoundGraphPreprocessor$ExternalPort(origEdge, dummyEdge, dummyNode, castTo($getProperty(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11), portType, !parentEndPort); - } - else { - $add_3(externalPort.origEdges, origEdge); - thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalPort.newEdge, EDGE_THICKNESS_0))), $doubleValue(castToDouble($getProperty(origEdge, EDGE_THICKNESS_0)))); - $setProperty_0(externalPort.newEdge, EDGE_THICKNESS_0, thickness); - } - $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(externalPort.newEdge, graph, portType)); - return externalPort; -} - -function $moveLabelsAndRemoveOriginalEdges(this$static, graph){ - var currLabel, edgeSegments, labelIterator, origEdge, origEdge$iterator, targetDummyEdgeIndex, targetSegment; - for (origEdge$iterator = $keySet(this$static.crossHierarchyMap).iterator_0(); origEdge$iterator.hasNext_0();) { - origEdge = castTo(origEdge$iterator.next_1(), 17); - if (origEdge.labels.array.length > 0) { - edgeSegments = new ArrayList_1(castTo($get(this$static.crossHierarchyMap, origEdge), 21)); - $clinit_Collections(); - $sort(edgeSegments, new CrossHierarchyEdgeComparator(graph)); - labelIterator = new AbstractList$ListIteratorImpl(origEdge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - targetDummyEdgeIndex = -1; - switch (castTo($getProperty(currLabel, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272).ordinal) { - case 1: - targetDummyEdgeIndex = edgeSegments.array.length - 1; - break; - case 0: - targetDummyEdgeIndex = $getShallowestEdgeSegment(edgeSegments); - break; - case 2: - targetDummyEdgeIndex = 0; - } - if (targetDummyEdgeIndex != -1) { - targetSegment = (checkCriticalElementIndex(targetDummyEdgeIndex, edgeSegments.array.length) , castTo(edgeSegments.array[targetDummyEdgeIndex], 243)); - $add_3(targetSegment.newEdge.labels, currLabel); - castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , END_LABELS)); - castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), GRAPH_PROPERTIES), 21).add_2(CENTER_LABELS); - $remove_8(labelIterator); - $setProperty_0(currLabel, ORIGINAL_LABEL_EDGE, origEdge); - } - } - } - $setSource_0(origEdge, null); - $setTarget_0(origEdge, null); - } -} - -function $process_1(this$static, graph, monitor){ - $begin(monitor, 'Compound graph preprocessor', 1); - this$static.crossHierarchyMap = new HashMultimap; - $transformHierarchyEdges(this$static, graph, null); - $moveLabelsAndRemoveOriginalEdges(this$static, graph); - $setSidesOfPortsToSidesOfDummyNodes(this$static); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP), this$static.crossHierarchyMap); - this$static.crossHierarchyMap = null; - $reset(this$static.dummyNodeMap); - $done_0(monitor); -} - -function $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts){ - var createdExternalPorts, currentExternalPort, externalPort, externalPort$iterator, externalPort$iterator0, inEdge, inEdge$iterator, newExternalPort, outEdge, outEdge$iterator, sourceNode, targetNode; - createdExternalPorts = new ArrayList; - for (externalPort$iterator0 = new ArrayList$1(containedExternalPorts); externalPort$iterator0.i < externalPort$iterator0.this$01.array.length;) { - externalPort = castTo($next_7(externalPort$iterator0), 441); - currentExternalPort = null; - if (externalPort.type_0 == ($clinit_PortType() , OUTPUT)) { - for (outEdge$iterator = new ArrayList$1(externalPort.origEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { - outEdge = castTo($next_7(outEdge$iterator), 17); - targetNode = outEdge.target.owner; - if ($getGraph(targetNode) == graph) { - $connectChild(this$static, graph, externalPort, outEdge, externalPort.dummyPort, outEdge.target); - } - else if (!parentNode || isDescendant(targetNode, parentNode)) { - $connectSiblings(this$static, graph, externalPort, containedExternalPorts, outEdge); - } - else { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, externalPort.dummyPort, OUTPUT, currentExternalPort); - newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalPort = newExternalPort); - } - } - } - else { - for (inEdge$iterator = new ArrayList$1(externalPort.origEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { - inEdge = castTo($next_7(inEdge$iterator), 17); - sourceNode = inEdge.source.owner; - if ($getGraph(sourceNode) == graph) { - $connectChild(this$static, graph, externalPort, inEdge, inEdge.source, externalPort.dummyPort); - } - else if (!parentNode || isDescendant(sourceNode, parentNode)) { - continue; - } - else { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, externalPort.dummyPort, INPUT, currentExternalPort); - newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalPort = newExternalPort); - } - } - } - } - for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { - externalPort = castTo($next_7(externalPort$iterator), 441); - $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); - externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); - } -} - -function $processInsideSelfLoops(this$static, nestedGraph, node){ - var dummyEdge, isInsideSelfLoop, isSelfLoop, lport, lport$iterator, outEdge, outEdge$array, outEdge$index, outEdge$max, outEdges, sourceExtPortDummy, sourcePort, targetExtPortDummy, targetPort; - if (!$booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { - return; - } - for (lport$iterator = new ArrayList$1(node.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { - lport = castTo($next_7(lport$iterator), 11); - outEdges = toEdgeArray(lport.outgoingEdges); - for (outEdge$array = outEdges , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - isSelfLoop = outEdge.target.owner == node; - isInsideSelfLoop = isSelfLoop && $booleanValue(castToBoolean($getProperty(outEdge, INSIDE_SELF_LOOPS_YO))); - if (isInsideSelfLoop) { - sourcePort = outEdge.source; - sourceExtPortDummy = castTo($get_10(this$static.dummyNodeMap, sourcePort), 10); - if (!sourceExtPortDummy) { - sourceExtPortDummy = createExternalPortDummy(sourcePort, ($clinit_PortConstraints() , FREE), sourcePort.side, -1, null, null, sourcePort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); - $setProperty_0(sourceExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), sourcePort); - $put_6(this$static.dummyNodeMap, sourcePort, sourceExtPortDummy); - $add_3(nestedGraph.layerlessNodes, sourceExtPortDummy); - } - targetPort = outEdge.target; - targetExtPortDummy = castTo($get_10(this$static.dummyNodeMap, targetPort), 10); - if (!targetExtPortDummy) { - targetExtPortDummy = createExternalPortDummy(targetPort, ($clinit_PortConstraints() , FREE), targetPort.side, 1, null, null, targetPort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); - $setProperty_0(targetExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), targetPort); - $put_6(this$static.dummyNodeMap, targetPort, targetExtPortDummy); - $add_3(nestedGraph.layerlessNodes, targetExtPortDummy); - } - dummyEdge = $createDummyEdge(outEdge); - $setSource_0(dummyEdge, castTo($get_11(sourceExtPortDummy.ports, 0), 11)); - $setTarget_0(dummyEdge, castTo($get_11(targetExtPortDummy.ports, 0), 11)); - $put(this$static.crossHierarchyMap, outEdge, new CrossHierarchyEdge(dummyEdge, nestedGraph, ($clinit_PortType() , OUTPUT))); - castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); - } - } - } -} - -function $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts){ - var childNode, childNode$iterator, childPort, childPort$iterator, createdExternalPorts, currentExternalInputPort, currentExternalOutputPort, externalPort, externalPort$iterator, inEdge, inEdge$array, inEdge$index, inEdge$max, newExternalPort, outEdge, outEdge$array, outEdge$index, outEdge$max; - createdExternalPorts = new ArrayList; - for (childNode$iterator = new ArrayList$1(graph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { - childNode = castTo($next_7(childNode$iterator), 10); - for (childPort$iterator = new ArrayList$1(childNode.ports); childPort$iterator.i < childPort$iterator.this$01.array.length;) { - childPort = castTo($next_7(childPort$iterator), 11); - currentExternalOutputPort = null; - for (outEdge$array = toEdgeArray(childPort.outgoingEdges) , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - if (!isDescendant(outEdge.target.owner, parentNode)) { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, outEdge.source, ($clinit_PortType() , OUTPUT), currentExternalOutputPort); - newExternalPort != currentExternalOutputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalOutputPort = newExternalPort); - } - } - currentExternalInputPort = null; - for (inEdge$array = toEdgeArray(childPort.incomingEdges) , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { - inEdge = inEdge$array[inEdge$index]; - if (!isDescendant(inEdge.source.owner, parentNode)) { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, inEdge.target, ($clinit_PortType() , INPUT), currentExternalInputPort); - newExternalPort != currentExternalInputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalInputPort = newExternalPort); - } - } - } - } - for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { - externalPort = castTo($next_7(externalPort$iterator), 441); - $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); - externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); - } -} - -function $setSidesOfPortsToSidesOfDummyNodes(this$static){ - var dummyNode, e, e$iterator, externalPort; - for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.dummyNodeMap)).this$01); e$iterator.hasNext;) { - e = $next_4(e$iterator); - externalPort = castTo(e.getKey(), 11); - dummyNode = castTo(e.getValue(), 10); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), externalPort); - $setProperty_0(externalPort, PORT_DUMMY, dummyNode); - $setProperty_0(externalPort, INSIDE_CONNECTIONS, ($clinit_Boolean() , true)); - $setSide(externalPort, castTo($getProperty(dummyNode, EXT_PORT_SIDE), 61)); - $getProperty(dummyNode, EXT_PORT_SIDE); - $setProperty_0(externalPort.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); - castTo($getProperty($getGraph(externalPort.owner), GRAPH_PROPERTIES), 21).add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); - } -} - -function $transformHierarchyEdges(this$static, graph, parentNode){ - var childPorts, containedExternalPorts, dummyNode, dummyNodePort, dummyPortLabel, exportedExternalPorts, extPortLabel, extPortLabel$iterator, insidePart, insidePortLabels, nestedGraph, node, node$iterator, port, port$iterator, portConstraints, side; - containedExternalPorts = new ArrayList; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nestedGraph = node.nestedGraph; - if (nestedGraph) { - childPorts = $transformHierarchyEdges(this$static, nestedGraph, node); - $addAll_2(containedExternalPorts, childPorts); - $processInsideSelfLoops(this$static, nestedGraph, node); - if (castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - portConstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - insidePortLabels = castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 174).contains(($clinit_PortLabelPlacement() , INSIDE_0)); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - dummyNode = castTo($get_10(this$static.dummyNodeMap, port), 10); - if (!dummyNode) { - dummyNode = createExternalPortDummy(port, portConstraints, port.side, -(port.incomingEdges.array.length - port.outgoingEdges.array.length), null, new KVector, port.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); - $setProperty_0(dummyNode, ORIGIN_0, port); - $put_6(this$static.dummyNodeMap, port, dummyNode); - $add_3(nestedGraph.layerlessNodes, dummyNode); - } - dummyNodePort = castTo($get_11(dummyNode.ports, 0), 11); - for (extPortLabel$iterator = new ArrayList$1(port.labels); extPortLabel$iterator.i < extPortLabel$iterator.this$01.array.length;) { - extPortLabel = castTo($next_7(extPortLabel$iterator), 70); - dummyPortLabel = new LLabel; - dummyPortLabel.size_0.x_0 = extPortLabel.size_0.x_0; - dummyPortLabel.size_0.y_0 = extPortLabel.size_0.y_0; - $add_3(dummyNodePort.labels, dummyPortLabel); - if (!insidePortLabels) { - side = port.side; - insidePart = 0; - isFixed(castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(extPortLabel.pos, extPortLabel.size_0, port.size_0, 0, side)); - portConstraints == ($clinit_PortConstraints() , FREE) || ($clinit_PortSide() , SIDES_EAST_WEST).contains(side)?(dummyPortLabel.size_0.x_0 = insidePart):(dummyPortLabel.size_0.y_0 = insidePart); - } - } - } - } - } - } - exportedExternalPorts = new ArrayList; - $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts); - !!parentNode && $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts); - return exportedExternalPorts; -} - -function CompoundGraphPreprocessor(){ - this.dummyNodeMap = new HashMap; -} - -defineClass(1261, 1, $intern_105, CompoundGraphPreprocessor); -_.process = function process_0(graph, monitor){ - $process_1(this, castTo(graph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor', 1261); -function CompoundGraphPreprocessor$ExternalPort(origEdge, newEdge, dummyNode, dummyPort, portType, exported){ - this.origEdges = new ArrayList; - this.type_0 = ($clinit_PortType() , UNDEFINED_0); - $add_3(this.origEdges, origEdge); - this.newEdge = newEdge; - this.dummyNode = dummyNode; - this.dummyPort = dummyPort; - this.type_0 = portType; - this.exported = exported; -} - -defineClass(441, 1, {441:1}, CompoundGraphPreprocessor$ExternalPort); -_.exported = false; -var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor$ExternalPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor/ExternalPort', 441); -function $getActualSource(this$static){ - if (this$static.newEdge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return castTo($getProperty(this$static.newEdge.source.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - } - return this$static.newEdge.source; -} - -function $getActualTarget(this$static){ - if (this$static.newEdge.target.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return castTo($getProperty(this$static.newEdge.target.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - } - return this$static.newEdge.target; -} - -function CrossHierarchyEdge(newEdge, graph, type_0){ - this.newEdge = newEdge; - this.graph_0 = graph; - this.type_0 = type_0; -} - -defineClass(243, 1, {243:1}, CrossHierarchyEdge); -_.toString_0 = function toString_86(){ - return $toString_3(this.type_0) + ':' + $toString_12(this.newEdge); -} -; -var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdge', 243); -function $compare_9(this$static, edge1, edge2){ - var level1, level2; - if (edge1.type_0 == ($clinit_PortType() , OUTPUT) && edge2.type_0 == INPUT) { - return -1; - } - else if (edge1.type_0 == INPUT && edge2.type_0 == OUTPUT) { - return 1; - } - level1 = hierarchyLevel(edge1.graph_0, this$static.graph_0); - level2 = hierarchyLevel(edge2.graph_0, this$static.graph_0); - return edge1.type_0 == OUTPUT?level2 - level1:level1 - level2; -} - -function CrossHierarchyEdgeComparator(graph){ - this.graph_0 = graph; -} - -function hierarchyLevel(nestedGraph, topLevelGraph){ - var currentGraph, currentNode, level; - currentGraph = nestedGraph; - level = 0; - do { - if (currentGraph == topLevelGraph) { - return level; - } - currentNode = currentGraph.parentNode; - if (!currentNode) { - throw toJs(new IllegalArgumentException); - } - currentGraph = $getGraph(currentNode); - ++level; - } - while (true); -} - -defineClass(763, 1, $intern_88, CrossHierarchyEdgeComparator); -_.compare_1 = function compare_40(edge1, edge2){ - return $compare_9(this, castTo(edge1, 243), castTo(edge2, 243)); -} -; -_.equals_0 = function equals_97(other){ - return this === other; -} -; -_.reversed = function reversed_32(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdgeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdgeComparator', 763); -function $getDesignation(this$static){ - var identifier; - identifier = getOriginIdentifier(this$static); - if (identifier) { - return identifier; - } - return null; -} - -defineClass(299, 134, {3:1, 299:1, 94:1, 134:1}); -_.id_0 = 0; -var Lorg_eclipse_elk_alg_layered_graph_LGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphElement', 299); -function $getDesignation_0(this$static){ - if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { - return castTo($get_11(this$static.labels, 0), 70).text_0; - } - return $getDesignation(this$static); -} - -function $getOther_1(this$static, node){ - if (node == this$static.source.owner) { - return this$static.target.owner; - } - else if (node == this$static.target.owner) { - return this$static.source.owner; - } - else { - throw toJs(new IllegalArgumentException_0("'node' must either be the source node or target node of the edge.")); - } -} - -function $getOther_2(this$static, port){ - if (port == this$static.source) { - return this$static.target; - } - else if (port == this$static.target) { - return this$static.source; - } - else { - throw toJs(new IllegalArgumentException_0("'port' must be either the source port or target port of the edge.")); - } -} - -function $isInLayerEdge(this$static){ - return !$isSelfLoop(this$static) && this$static.source.owner.layer == this$static.target.owner.layer; -} - -function $isSelfLoop(this$static){ - if (!this$static.source || !this$static.target) { - return false; - } - return !!this$static.source.owner && this$static.source.owner == this$static.target.owner; -} - -function $reverse_0(this$static, adaptPorts){ - var label_0, label$iterator, labelPlacement, oldSource, oldTarget, reversed; - oldSource = this$static.source; - oldTarget = this$static.target; - $setSource_0(this$static, null); - $setTarget_0(this$static, null); - adaptPorts && $booleanValue(castToBoolean($getProperty(oldTarget, ($clinit_InternalProperties_1() , INPUT_COLLECT))))?$setSource_0(this$static, provideCollectorPort(oldTarget.owner, ($clinit_PortType() , OUTPUT), ($clinit_PortSide() , EAST_2))):$setSource_0(this$static, oldTarget); - adaptPorts && $booleanValue(castToBoolean($getProperty(oldSource, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))?$setTarget_0(this$static, provideCollectorPort(oldSource.owner, ($clinit_PortType() , INPUT), ($clinit_PortSide() , WEST_2))):$setTarget_0(this$static, oldSource); - for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); - labelPlacement == ($clinit_EdgeLabelPlacement() , TAIL)?$setProperty_0(label_0, EDGE_LABELS_PLACEMENT, HEAD):labelPlacement == HEAD && $setProperty_0(label_0, EDGE_LABELS_PLACEMENT, TAIL); - } - reversed = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_InternalProperties_1() , REVERSED)))); - $setProperty_0(this$static, REVERSED, ($clinit_Boolean() , reversed?false:true)); - this$static.bendPoints = reverse_3(this$static.bendPoints); -} - -function $setSource_0(this$static, source){ - !!this$static.source && $remove_12(this$static.source.outgoingEdges, this$static); - this$static.source = source; - !!this$static.source && $add_3(this$static.source.outgoingEdges, this$static); -} - -function $setTarget_0(this$static, target){ - !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); - this$static.target = target; - !!this$static.target && $add_3(this$static.target.incomingEdges, this$static); -} - -function $setTargetAndInsertAtIndex(this$static, targetPort, index_0){ - !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); - this$static.target = targetPort; - !!this$static.target && $add_2(this$static.target.incomingEdges, index_0, this$static); -} - -function $toString_12(this$static){ - var designation, result; - result = new StringBuilder; - result.string += 'e_'; - designation = $getDesignation_0(this$static); - designation != null && (result.string += '' + designation , result); - if (!!this$static.source && !!this$static.target) { - $append_11((result.string += ' ' , result), $getDesignation_3(this$static.source)); - $append_11($append_10((result.string += '[' , result), this$static.source.owner), ']'); - $append_11((result.string += ' -> ' , result), $getDesignation_3(this$static.target)); - $append_11($append_10((result.string += '[' , result), this$static.target.owner), ']'); - } - return result.string; -} - -function LEdge(){ - this.bendPoints = new KVectorChain; - this.labels = (checkNonnegative(3, 'initialArraySize') , new ArrayList_0(3)); -} - -defineClass(17, 299, {3:1, 17:1, 299:1, 94:1, 134:1}, LEdge); -_.toString_0 = function toString_87(){ - return $toString_12(this); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LEdge', 17); -function $toNodeArray(this$static){ - var layer, layerIndex, layerIter, lgraphArray; - lgraphArray = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, this$static.layers.array.length, 0, 2); - layerIter = new AbstractList$ListIteratorImpl(this$static.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - layerIndex = layerIter.i - 1; - lgraphArray[layerIndex] = toNodeArray(layer.nodes); - } - return lgraphArray; -} - -function LGraph(){ - this.size_0 = new KVector; - this.padding = new LPadding; - this.offset = new KVector; - this.layerlessNodes = new ArrayList; - this.layers = new ArrayList; -} - -defineClass(37, 299, {3:1, 20:1, 37:1, 299:1, 94:1, 134:1}, LGraph); -_.forEach_0 = function forEach_26(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_68(){ - return new ArrayList$1(this.layers); -} -; -_.toString_0 = function toString_88(){ - if (this.layers.array.length == 0) { - return 'G-unlayered' + $toString_2(this.layerlessNodes); - } - else if (this.layerlessNodes.array.length == 0) { - return 'G-layered' + $toString_2(this.layers); - } - return 'G[layerless' + $toString_2(this.layerlessNodes) + ', layers' + $toString_2(this.layers) + ']'; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraph', 37); -function $clinit_LGraphAdapters(){ - $clinit_LGraphAdapters = emptyMethod; - DEFAULT_PORTLIST_SORTER = new LGraphAdapters$PortComparator; -} - -var DEFAULT_PORTLIST_SORTER; -defineClass(657, 1, {}); -_.getPosition = function getPosition(){ - return this.element.pos; -} -; -_.getProperty = function getProperty_0(prop){ - return $getProperty(this.element, prop); -} -; -_.getSize = function getSize(){ - return this.element.size_0; -} -; -_.getVolatileId = function getVolatileId(){ - return this.element.id_0; -} -; -_.hasProperty = function hasProperty_0(prop){ - return $hasProperty(this.element, prop); -} -; -_.setPosition = function setPosition(pos){ - this.element.pos.x_0 = pos.x_0; - this.element.pos.y_0 = pos.y_0; -} -; -_.setSize = function setSize(size_0){ - this.element.size_0.x_0 = size_0.x_0; - this.element.size_0.y_0 = size_0.y_0; -} -; -_.setVolatileId = function setVolatileId(volatileId){ - this.element.id_0 = volatileId; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$AbstractLShapeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/AbstractLShapeAdapter', 657); -function LGraphAdapters$LEdgeAdapter(edge){ - this.element = edge; -} - -defineClass(577, 1, {839:1}, LGraphAdapters$LEdgeAdapter); -_.getLabels = function getLabels(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithCapacity(this.element.labels.array.length); - for (l$iterator = new ArrayList$1(this.element.labels); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 70); - $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.labelAdapters = null; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LEdgeAdapter', 577); -function LGraphAdapters$LGraphAdapter(element, transparentNorthSouthEdges, transparentCommentNodes, nodeFilter){ - this.element = element; - this.transparentNorthSouthEdges = transparentNorthSouthEdges; - this.transparentCommentNodes = transparentCommentNodes; - this.nodeFilter = nodeFilter; -} - -defineClass(656, 1, {}, LGraphAdapters$LGraphAdapter); -_.getNodes = function getNodes(){ - var comment, comment$iterator, l, l$iterator, n, n$iterator; - if (!this.nodeAdapters) { - this.nodeAdapters = new ArrayList; - for (l$iterator = new ArrayList$1(this.element.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (this.nodeFilter.test_0(n)) { - $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, n, this.transparentNorthSouthEdges)); - if (this.transparentCommentNodes) { - if ($hasProperty(n, ($clinit_InternalProperties_1() , TOP_COMMENTS))) { - for (comment$iterator = castTo($getProperty(n, TOP_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { - comment = castTo(comment$iterator.next_1(), 10); - $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); - } - } - if ($hasProperty(n, BOTTOM_COMMENTS)) { - for (comment$iterator = castTo($getProperty(n, BOTTOM_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { - comment = castTo(comment$iterator.next_1(), 10); - $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); - } - } - } - } - } - } - } - return this.nodeAdapters; -} -; -_.getPosition = function getPosition_0(){ - throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); -} -; -_.getProperty = function getProperty_1(prop){ - return $getProperty(this.element, prop); -} -; -_.getSize = function getSize_0(){ - return this.element.size_0; -} -; -_.getVolatileId = function getVolatileId_0(){ - return this.element.id_0; -} -; -_.hasProperty = function hasProperty_1(prop){ - return $hasProperty(this.element, prop); -} -; -_.setPosition = function setPosition_0(pos){ - throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); -} -; -_.setSize = function setSize_0(size_0){ - this.element.size_0.x_0 = size_0.x_0; - this.element.size_0.y_0 = size_0.y_0; -} -; -_.setVolatileId = function setVolatileId_0(volatileId){ - this.element.id_0 = volatileId; -} -; -_.nodeAdapters = null; -_.transparentCommentNodes = false; -_.transparentNorthSouthEdges = false; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LGraphAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LGraphAdapter', 656); -function LGraphAdapters$LLabelAdapter(element){ - this.element = element; -} - -defineClass(576, 657, {181:1}, LGraphAdapters$LLabelAdapter); -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LLabelAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LLabelAdapter', 576); -function $sortPortList(this$static, comparator){ - $isOrderFixed(castTo($getProperty(castTo(this$static.element, 10), ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) && ($clinit_Collections() , $sort(castTo(this$static.element, 10).ports, comparator)); -} - -function LGraphAdapters$LNodeAdapter(parent_0, element, transparentNorthSouthEdges){ - this.element = element; - this.parentGraphAdapter = parent_0; - this.transparentNorthSouthEdges = transparentNorthSouthEdges; -} - -defineClass(575, 657, {680:1}, LGraphAdapters$LNodeAdapter); -_.getGraph = function getGraph(){ - return this.parentGraphAdapter; -} -; -_.getIncomingEdges = function getIncomingEdges(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.getLabels = function getLabels_0(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 10).labels.array.length); - for (l$iterator = new ArrayList$1(castTo(this.element, 10).labels); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 70); - $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.getMargin = function getMargin(){ - var lmargins; - lmargins = castTo(this.element, 10).margin; - return new ElkMargin_1(lmargins.top_0, lmargins.right, lmargins.bottom, lmargins.left); -} -; -_.getOutgoingEdges = function getOutgoingEdges(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.getPorts = function getPorts(){ - var p, p$iterator; - if (!this.portAdapters) { - this.portAdapters = newArrayListWithCapacity(castTo(this.element, 10).ports.array.length); - for (p$iterator = new ArrayList$1(castTo(this.element, 10).ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - $add_3(this.portAdapters, new LGraphAdapters$LPortAdapter(p, this.transparentNorthSouthEdges)); - } - } - return this.portAdapters; -} -; -_.isCompoundNode = function isCompoundNode(){ - return $booleanValue(castToBoolean($getProperty(castTo(this.element, 10), ($clinit_InternalProperties_1() , COMPOUND_NODE)))); -} -; -_.setMargin = function setMargin(margin){ - castTo(this.element, 10).margin.left = margin.left; - castTo(this.element, 10).margin.top_0 = margin.top_0; - castTo(this.element, 10).margin.right = margin.right; - castTo(this.element, 10).margin.bottom = margin.bottom; -} -; -_.setPadding = function setPadding(padding){ - castTo(this.element, 10).padding.left = padding.left; - castTo(this.element, 10).padding.top_0 = padding.top_0; - castTo(this.element, 10).padding.right = padding.right; - castTo(this.element, 10).padding.bottom = padding.bottom; -} -; -_.sortPortList = function sortPortList(){ - $sortPortList(this, ($clinit_LGraphAdapters() , DEFAULT_PORTLIST_SORTER)); -} -; -_.labelAdapters = null; -_.parentGraphAdapter = null; -_.portAdapters = null; -_.transparentNorthSouthEdges = false; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LNodeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LNodeAdapter', 575); -function LGraphAdapters$LPortAdapter(element, transparentNorthSouthEdges){ - this.element = element; - this.transparentNorthSouthEdges = transparentNorthSouthEdges; -} - -defineClass(1722, 657, {838:1}, LGraphAdapters$LPortAdapter); -_.getIncomingEdges = function getIncomingEdges_0(){ - var e, e$iterator, e$iterator0, portDummy; - if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - else if (!this.incomingEdgeAdapters) { - this.incomingEdgeAdapters = new ArrayList; - for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).incomingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { - e = castTo($next_7(e$iterator0), 17); - $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - if (this.transparentNorthSouthEdges) { - portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (portDummy) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - } - } - } - return this.incomingEdgeAdapters; -} -; -_.getLabels = function getLabels_1(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 11).labels.array.length); - for (l$iterator = new ArrayList$1(castTo(this.element, 11).labels); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 70); - $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.getOutgoingEdges = function getOutgoingEdges_0(){ - var e, e$iterator, e$iterator0, portDummy; - if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - else if (!this.outgoingEdgeAdapters) { - this.outgoingEdgeAdapters = new ArrayList; - for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { - e = castTo($next_7(e$iterator0), 17); - $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - if (this.transparentNorthSouthEdges) { - portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (portDummy) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - } - } - } - return this.outgoingEdgeAdapters; -} -; -_.getSide = function getSide(){ - return castTo(this.element, 11).side; -} -; -_.hasCompoundConnections = function hasCompoundConnections(){ - return $booleanValue(castToBoolean($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))); -} -; -_.incomingEdgeAdapters = null; -_.labelAdapters = null; -_.outgoingEdgeAdapters = null; -_.transparentNorthSouthEdges = false; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LPortAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LPortAdapter', 1722); -function $compare_10(port1, port2){ - var index1, index2, indexDifference, ordinalDifference; - ordinalDifference = port1.side.ordinal - port2.side.ordinal; - if (ordinalDifference != 0) { - return ordinalDifference; - } - index1 = castTo($getProperty(port1, ($clinit_LayeredOptions() , PORT_INDEX)), 19); - index2 = castTo($getProperty(port2, PORT_INDEX), 19); - if (!!index1 && !!index2) { - indexDifference = index1.value_0 - index2.value_0; - if (indexDifference != 0) { - return indexDifference; - } - } - switch (port1.side.ordinal) { - case 1: - return compare_4(port1.pos.x_0, port2.pos.x_0); - case 2: - return compare_4(port1.pos.y_0, port2.pos.y_0); - case 3: - return compare_4(port2.pos.x_0, port1.pos.x_0); - case 4: - return compare_4(port2.pos.y_0, port1.pos.y_0); - default:throw toJs(new IllegalStateException_0('Port side is undefined')); - } -} - -function LGraphAdapters$PortComparator(){ -} - -defineClass(1723, 1, $intern_88, LGraphAdapters$PortComparator); -_.compare_1 = function compare_41(port1, port2){ - return $compare_10(castTo(port1, 11), castTo(port2, 11)); -} -; -_.equals_0 = function equals_98(other){ - return this === other; -} -; -_.reversed = function reversed_33(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/PortComparator', 1723); -function LGraphAdapters$lambda$0$Type(){ -} - -defineClass(804, 1, $intern_39, LGraphAdapters$lambda$0$Type); -_.test_0 = function test_17(arg0){ - return castTo(arg0, 10) , $clinit_LGraphAdapters() , true; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/lambda$0$Type', 804); -function calcPortOffset(port, side){ - var node; - node = port.owner; - switch (side.ordinal) { - case 1: - return -(port.pos.y_0 + port.size_0.y_0); - case 2: - return port.pos.x_0 - node.size_0.x_0; - case 3: - return port.pos.y_0 - node.size_0.y_0; - case 4: - return -(port.pos.x_0 + port.size_0.x_0); - } - return 0; -} - -function calcPortSide(port, direction){ - var height, heightPercent, node, nodeHeight, nodeWidth, width_0, widthPercent, xpos, ypos; - node = port.owner; - nodeWidth = node.size_0.x_0; - nodeHeight = node.size_0.y_0; - if (nodeWidth <= 0 && nodeHeight <= 0) { - return $clinit_PortSide() , UNDEFINED_5; - } - xpos = port.pos.x_0; - ypos = port.pos.y_0; - width_0 = port.size_0.x_0; - height = port.size_0.y_0; - switch (direction.ordinal) { - case 2: - case 1: - if (xpos < 0) { - return $clinit_PortSide() , WEST_2; - } - else if (xpos + width_0 > nodeWidth) { - return $clinit_PortSide() , EAST_2; - } - - break; - case 4: - case 3: - if (ypos < 0) { - return $clinit_PortSide() , NORTH_3; - } - else if (ypos + height > nodeHeight) { - return $clinit_PortSide() , SOUTH_2; - } - - } - widthPercent = (xpos + width_0 / 2) / nodeWidth; - heightPercent = (ypos + height / 2) / nodeHeight; - return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); -} - -function centerPoint(point, boundary, side){ - switch (side.ordinal) { - case 1: - point.x_0 = boundary.x_0 / 2; - point.y_0 = 0; - break; - case 2: - point.x_0 = boundary.x_0; - point.y_0 = boundary.y_0 / 2; - break; - case 3: - point.x_0 = boundary.x_0 / 2; - point.y_0 = boundary.y_0; - break; - case 4: - point.x_0 = 0; - point.y_0 = boundary.y_0 / 2; - } -} - -function changeCoordSystem(point, oldGraph, newGraph){ - var graph, node, padding; - if (oldGraph == newGraph) { - return; - } - graph = oldGraph; - do { - $add_19(point, graph.offset); - node = graph.parentNode; - if (node) { - padding = graph.padding; - $add_18(point, padding.left, padding.top_0); - $add_19(point, node.pos); - graph = $getGraph(node); - } - } - while (node); - graph = newGraph; - do { - $sub_0(point, graph.offset); - node = graph.parentNode; - if (node) { - padding = graph.padding; - $sub(point, padding.left, padding.top_0); - $sub_0(point, node.pos); - graph = $getGraph(node); - } - } - while (node); -} - -function createExternalPortDummy(propertyHolder, portConstraints, portSide, netFlow, portNodeSize, portPosition, portSize, layoutDirection, layeredGraph){ - var anchor, dummy, dummyPort, explicitAnchor, finalExternalPortSide, informationAboutIt, portBorderOffset; - finalExternalPortSide = portSide; - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIZE), portSize); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - portBorderOffset = $doubleValue(castToDouble(propertyHolder.getProperty(PORT_BORDER_OFFSET))); - $setProperty_0(dummy, PORT_BORDER_OFFSET, portBorderOffset); - dummyPort = new LPort; - $setNode(dummyPort, dummy); - if (!(portConstraints != FREE && portConstraints != UNDEFINED_4)) { - netFlow >= 0?(finalExternalPortSide = fromDirection(layoutDirection)):(finalExternalPortSide = $opposed(fromDirection(layoutDirection))); - propertyHolder.setProperty(PORT_SIDE, finalExternalPortSide); - } - anchor = new KVector; - explicitAnchor = false; - if (propertyHolder.hasProperty(PORT_ANCHOR)) { - $set_9(anchor, castTo(propertyHolder.getProperty(PORT_ANCHOR), 8)); - explicitAnchor = true; - } - else { - $set_8(anchor, portSize.x_0 / 2, portSize.y_0 / 2); - } - switch (finalExternalPortSide.ordinal) { - case 4: - $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); - $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , OUTGOING_ONLY)); - dummy.size_0.y_0 = portSize.y_0; - portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , EAST_2)); - explicitAnchor || (anchor.x_0 = portSize.x_0); - anchor.x_0 -= portSize.x_0; - break; - case 2: - $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); - $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , INCOMING_ONLY)); - dummy.size_0.y_0 = portSize.y_0; - portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , WEST_2)); - explicitAnchor || (anchor.x_0 = 0); - break; - case 1: - $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); - dummy.size_0.x_0 = portSize.x_0; - portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , SOUTH_2)); - explicitAnchor || (anchor.y_0 = portSize.y_0); - anchor.y_0 -= portSize.y_0; - break; - case 3: - $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); - dummy.size_0.x_0 = portSize.x_0; - portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , NORTH_3)); - explicitAnchor || (anchor.y_0 = 0); - } - $set_9(dummyPort.pos, anchor); - $setProperty_0(dummy, PORT_ANCHOR, anchor); - if (portConstraints == FIXED_ORDER || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { - informationAboutIt = 0; - if (portConstraints == FIXED_ORDER && propertyHolder.hasProperty(PORT_INDEX)) { - switch (finalExternalPortSide.ordinal) { - case 1: - case 2: - informationAboutIt = castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; - break; - case 3: - case 4: - informationAboutIt = -castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; - } - } - else { - switch (finalExternalPortSide.ordinal) { - case 4: - case 2: - informationAboutIt = portPosition.y_0; - portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.y_0); - break; - case 1: - case 3: - informationAboutIt = portPosition.x_0; - portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.x_0); - } - } - $setProperty_0(dummy, PORT_RATIO_OR_POSITION_0, informationAboutIt); - } - $setProperty_0(dummy, EXT_PORT_SIDE, finalExternalPortSide); - return dummy; -} - -function createPort(node, endPoint, type_0, layeredGraph){ - var defaultSide, direction, graphProperties, mergePorts, port, portSide, pos; - direction = getDirection_1(layeredGraph); - mergePorts = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , MERGE_EDGES_0)))); - if ((mergePorts || $booleanValue(castToBoolean($getProperty(node, HYPERNODE)))) && !$isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98))) { - defaultSide = fromDirection(direction); - port = provideCollectorPort(node, type_0, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); - } - else { - port = new LPort; - $setNode(port, node); - if (endPoint) { - pos = port.pos; - pos.x_0 = endPoint.x_0 - node.pos.x_0; - pos.y_0 = endPoint.y_0 - node.pos.y_0; - $bound(pos, 0, 0, node.size_0.x_0, node.size_0.y_0); - $setSide(port, calcPortSide(port, direction)); - } - else { - defaultSide = fromDirection(direction); - $setSide(port, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); - } - graphProperties = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - portSide = port.side; - switch (direction.ordinal) { - case 2: - case 1: - (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - break; - case 4: - case 3: - (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - } - } - return port; -} - -function findMaxNonDummyNodeWidth(layer){ - var maxWidth, node, node$iterator, width_0; - if ($isVertical(castTo($getProperty(layer.owner, ($clinit_LayeredOptions() , DIRECTION)), 103))) { - return 0; - } - maxWidth = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - width_0 = node.size_0.x_0; - maxWidth = $wnd.Math.max(maxWidth, width_0); - } - } - return maxWidth; -} - -function getDirection_1(graph){ - var aspectRatio, direction; - direction = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); - if (direction == ($clinit_Direction_0() , UNDEFINED_2)) { - aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); - return aspectRatio >= 1?RIGHT_6:DOWN_1; - } - return direction; -} - -function getExternalPortPosition(graph, portDummy, portWidth, portHeight){ - var graphOffset, graphSize, padding, portOffset, portPosition; - portPosition = new KVector_2(portDummy.pos); - portPosition.x_0 += portDummy.size_0.x_0 / 2; - portPosition.y_0 += portDummy.size_0.y_0 / 2; - portOffset = $doubleValue(castToDouble($getProperty(portDummy, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET)))); - graphSize = graph.size_0; - padding = graph.padding; - graphOffset = graph.offset; - switch (castTo($getProperty(portDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; - portPosition.y_0 = -portHeight - portOffset; - portDummy.pos.y_0 = -(padding.top_0 + portOffset + graphOffset.y_0); - break; - case 2: - portPosition.x_0 = graphSize.x_0 + padding.left + padding.right + portOffset; - portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; - portDummy.pos.x_0 = graphSize.x_0 + padding.right + portOffset - graphOffset.x_0; - break; - case 3: - portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; - portPosition.y_0 = graphSize.y_0 + padding.top_0 + padding.bottom + portOffset; - portDummy.pos.y_0 = graphSize.y_0 + padding.bottom + portOffset - graphOffset.y_0; - break; - case 4: - portPosition.x_0 = -portWidth - portOffset; - portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; - portDummy.pos.x_0 = -(padding.left + portOffset + graphOffset.x_0); - } - return portPosition; -} - -function getIndividualOrInherited(node, property){ - var individualSpacings, result; - result = null; - if ($hasProperty(node, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { - individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL_0), 94); - individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); - } - result == null && !!$getGraph(node) && (result = $getProperty($getGraph(node), property)); - return result; -} - -function getMinimalModelOrder(graph){ - var node, node$iterator, order; - order = $intern_0; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (order = $wnd.Math.min(order, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0)); - } - return order; -} - -function initializePort(port, portConstraints, direction, anchorPos){ - var nodeHeight, nodeWidth, portAnchor, portSide, portSize, ratio; - portSide = port.side; - if (portSide == ($clinit_PortSide() , UNDEFINED_5) && portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != ($clinit_PortConstraints() , UNDEFINED_4)) { - portSide = calcPortSide(port, direction); - $setSide(port, portSide); - !(!port.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):port.propertyMap).containsKey(($clinit_LayeredOptions() , PORT_BORDER_OFFSET)) && portSide != UNDEFINED_5 && (port.pos.x_0 != 0 || port.pos.y_0 != 0) && $setProperty_0(port, PORT_BORDER_OFFSET, calcPortOffset(port, portSide)); - } - if (portConstraints == ($clinit_PortConstraints() , FIXED_RATIO)) { - ratio = 0; - switch (portSide.ordinal) { - case 1: - case 3: - nodeWidth = port.owner.size_0.x_0; - nodeWidth > 0 && (ratio = port.pos.x_0 / nodeWidth); - break; - case 2: - case 4: - nodeHeight = port.owner.size_0.y_0; - nodeHeight > 0 && (ratio = port.pos.y_0 / nodeHeight); - } - $setProperty_0(port, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0), ratio); - } - portSize = port.size_0; - portAnchor = port.anchor; - if (anchorPos) { - portAnchor.x_0 = anchorPos.x_0; - portAnchor.y_0 = anchorPos.y_0; - port.explicitlySuppliedPortAnchor = true; - } - else if (portConstraints != FREE && portConstraints != UNDEFINED_4 && portSide != UNDEFINED_5) { - switch (portSide.ordinal) { - case 1: - portAnchor.x_0 = portSize.x_0 / 2; - break; - case 2: - portAnchor.x_0 = portSize.x_0; - portAnchor.y_0 = portSize.y_0 / 2; - break; - case 3: - portAnchor.x_0 = portSize.x_0 / 2; - portAnchor.y_0 = portSize.y_0; - break; - case 4: - portAnchor.y_0 = portSize.y_0 / 2; - } - } - else { - portAnchor.x_0 = portSize.x_0 / 2; - portAnchor.y_0 = portSize.y_0 / 2; - } -} - -function isDescendant(child, parent_0){ - var current, next; - current = child; - next = $getGraph(current).parentNode; - while (next) { - current = next; - if (current == parent_0) { - return true; - } - next = $getGraph(current).parentNode; - } - return false; -} - -function offsetGraph(graph, offsetx, offsety){ - var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; - graphOffset = new KVector_1(offsetx, offsety); - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_19(node.pos, graphOffset); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $offset_2(edge.bendPoints, graphOffset); - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $offset_2(junctionPoints, graphOffset); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $add_19(label_0.pos, graphOffset); - } - } - } - } -} - -function placeNodesHorizontally(layer, xoffset){ - var alignment, inports, leftMargin, maxLeftMargin, maxRightMargin, node, node$iterator, node$iterator0, nodeSize, outports, port, port$iterator, ratio, rightMargin, size_0, xpos; - maxLeftMargin = 0; - maxRightMargin = 0; - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - maxLeftMargin = $wnd.Math.max(maxLeftMargin, node.margin.left); - maxRightMargin = $wnd.Math.max(maxRightMargin, node.margin.right); - } - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - alignment = castTo($getProperty(node, ($clinit_LayeredOptions() , ALIGNMENT)), 248); - switch (alignment.ordinal) { - case 1: - ratio = 0; - break; - case 2: - ratio = 1; - break; - case 5: - ratio = 0.5; - break; - default:inports = 0; - outports = 0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.incomingEdges.array.length == 0 || ++inports; - port.outgoingEdges.array.length == 0 || ++outports; - } - - inports + outports == 0?(ratio = 0.5):(ratio = outports / (inports + outports)); - } - size_0 = layer.size_0; - nodeSize = node.size_0.x_0; - xpos = (size_0.x_0 - nodeSize) * ratio; - ratio > 0.5?(xpos -= maxRightMargin * 2 * (ratio - 0.5)):ratio < 0.5 && (xpos += maxLeftMargin * 2 * (0.5 - ratio)); - leftMargin = node.margin.left; - xpos < leftMargin && (xpos = leftMargin); - rightMargin = node.margin.right; - xpos > size_0.x_0 - rightMargin - nodeSize && (xpos = size_0.x_0 - rightMargin - nodeSize); - node.pos.x_0 = xoffset + xpos; - } -} - -function provideCollectorPort(node, type_0, side){ - var inport, inport$iterator, outport, outport$iterator, port; - port = null; - switch (type_0.ordinal) { - case 1: - for (inport$iterator = new ArrayList$1(node.ports); inport$iterator.i < inport$iterator.this$01.array.length;) { - inport = castTo($next_7(inport$iterator), 11); - if ($booleanValue(castToBoolean($getProperty(inport, ($clinit_InternalProperties_1() , INPUT_COLLECT))))) { - return inport; - } - } - - port = new LPort; - $setProperty_0(port, ($clinit_InternalProperties_1() , INPUT_COLLECT), ($clinit_Boolean() , true)); - break; - case 2: - for (outport$iterator = new ArrayList$1(node.ports); outport$iterator.i < outport$iterator.this$01.array.length;) { - outport = castTo($next_7(outport$iterator), 11); - if ($booleanValue(castToBoolean($getProperty(outport, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))) { - return outport; - } - } - - port = new LPort; - $setProperty_0(port, ($clinit_InternalProperties_1() , OUTPUT_COLLECT), ($clinit_Boolean() , true)); - } - if (port) { - $setNode(port, node); - $setSide(port, side); - centerPoint(port.pos, node.size_0, side); - } - return port; -} - -function resizeNode(node, newSize, movePorts){ - var all, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, oldSize, port, port$iterator, widthDiff, widthPercent, widthRatio; - oldSize = new KVector_2(node.size_0); - widthRatio = newSize.x_0 / oldSize.x_0; - heightRatio = newSize.y_0 / oldSize.y_0; - widthDiff = newSize.x_0 - oldSize.x_0; - heightDiff = newSize.y_0 - oldSize.y_0; - if (movePorts) { - fixedPorts = maskUndefined($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 1: - fixedPorts || (port.pos.x_0 *= widthRatio); - break; - case 2: - port.pos.x_0 += widthDiff; - fixedPorts || (port.pos.y_0 *= heightRatio); - break; - case 3: - fixedPorts || (port.pos.x_0 *= widthRatio); - port.pos.y_0 += heightDiff; - break; - case 4: - fixedPorts || (port.pos.y_0 *= heightRatio); - } - } - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - midx = label_0.pos.x_0 + label_0.size_0.x_0 / 2; - midy = label_0.pos.y_0 + label_0.size_0.y_0 / 2; - widthPercent = midx / oldSize.x_0; - heightPercent = midy / oldSize.y_0; - if (widthPercent + heightPercent >= 1) { - if (widthPercent - heightPercent > 0 && midy >= 0) { - label_0.pos.x_0 += widthDiff; - label_0.pos.y_0 += heightDiff * heightPercent; - } - else if (widthPercent - heightPercent < 0 && midx >= 0) { - label_0.pos.x_0 += widthDiff * widthPercent; - label_0.pos.y_0 += heightDiff; - } - } - } - node.size_0.x_0 = newSize.x_0; - node.size_0.y_0 = newSize.y_0; - $setProperty_0(node, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); -} - -function toEdgeArray(edges){ - return castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); -} - -function toNodeArray(nodes){ - return castTo($toArray_2(nodes, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodes.array.length, 0, 1)), 193); -} - -function toPortArray(ports){ - return castTo($toArray_2(ports, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, $intern_108, 11, ports.array.length, 0, 1)), 1943); -} - -function LShape(){ - this.pos = new KVector; - this.size_0 = new KVector; -} - -defineClass(392, 299, {3:1, 299:1, 392:1, 94:1, 134:1}); -var Lorg_eclipse_elk_alg_layered_graph_LShape_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LShape', 392); -function $getDesignation_1(this$static){ - if (this$static.text_0) { - return this$static.text_0; - } - return $getDesignation(this$static); -} - -function LLabel(){ - LLabel_0.call(this, ''); -} - -function LLabel_0(thetext){ - LShape.call(this); - this.text_0 = thetext; -} - -defineClass(70, 392, {3:1, 299:1, 70:1, 392:1, 94:1, 134:1}, LLabel, LLabel_0); -_.toString_0 = function toString_89(){ - var designation; - designation = $getDesignation_1(this); - return designation == null?'label':'l_' + designation; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LLabel_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LLabel', 70); -function $$init_7(this$static){ -} - -function $add_15(this$static, other){ - this$static.left += other.left; - this$static.right += other.right; - this$static.top_0 += other.top_0; - this$static.bottom += other.bottom; - return this$static; -} - -function $copy(this$static, other){ - this$static.left = other.left; - this$static.right = other.right; - this$static.top_0 = other.top_0; - this$static.bottom = other.bottom; - return this$static; -} - -function $set_7(this$static, newTop, newRight, newBottom, newLeft){ - this$static.top_0 = newTop; - this$static.right = newRight; - this$static.bottom = newBottom; - this$static.left = newLeft; -} - -function $setBottom(this$static, bottom){ - this$static.bottom = bottom; -} - -function $setLeft(this$static, left){ - this$static.left = left; -} - -function $setRight(this$static, right){ - this$static.right = right; -} - -function $setTop(this$static, top_0){ - this$static.top_0 = top_0; -} - -function Spacing(){ - $$init_7(this); -} - -function Spacing_0(top_0, right, bottom, left){ - $$init_7(this); - $set_7(this, top_0, right, bottom, left); -} - -function isdelim(c, delims){ - var i; - for (i = 0; i < delims.length; i++) { - if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { - return true; - } - } - return false; -} - -defineClass(207, 1, {3:1, 4:1, 207:1, 414:1}); -_.equals_0 = function equals_99(obj){ - var other; - if (instanceOf(obj, 207)) { - other = castTo(obj, 207); - return this.top_0 == other.top_0 && this.bottom == other.bottom && this.left == other.left && this.right == other.right; - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_61(){ - var code1, code2; - code1 = $hashCode_0(this.left) << 16; - code1 |= $hashCode_0(this.bottom) & $intern_46; - code2 = $hashCode_0(this.right) << 16; - code2 |= $hashCode_0(this.top_0) & $intern_46; - return code1 ^ code2; -} -; -_.parse_0 = function parse_0(string){ - var end, exception, key, keyandvalue, start_0, token, token$array, token$index, token$max, tokens, value_0; - start_0 = 0; - while (start_0 < string.length && isdelim((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { - ++start_0; - } - end = string.length; - while (end > 0 && isdelim((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { - --end; - } - if (start_0 < end) { - tokens = $split_0(string.substr(start_0, end - start_0), ',|;'); - try { - for (token$array = tokens , token$index = 0 , token$max = token$array.length; token$index < token$max; ++token$index) { - token = token$array[token$index]; - keyandvalue = $split_0(token, '='); - if (keyandvalue.length != 2) { - throw toJs(new IllegalArgumentException_0('Expecting a list of key-value pairs.')); - } - key = $trim(keyandvalue[0]); - value_0 = __parseAndValidateDouble($trim(keyandvalue[1])); - $equals_5(key, 'top')?(this.top_0 = value_0):$equals_5(key, 'left')?(this.left = value_0):$equals_5(key, 'bottom')?(this.bottom = value_0):$equals_5(key, 'right') && (this.right = value_0); - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); - } - else - throw toJs($e0); - } - } -} -; -_.toString_0 = function toString_90(){ - return '[top=' + this.top_0 + ',left=' + this.left + ',bottom=' + this.bottom + ',right=' + this.right + ']'; -} -; -_.bottom = 0; -_.left = 0; -_.right = 0; -_.top_0 = 0; -var Lorg_eclipse_elk_core_math_Spacing_2_classLit = createForClass('org.eclipse.elk.core.math', 'Spacing', 207); -function ElkMargin(){ - Spacing.call(this); -} - -function ElkMargin_0(){ - Spacing_0.call(this, 0, 0, 0, 0); -} - -function ElkMargin_1(top_0, right, bottom, left){ - Spacing_0.call(this, top_0, right, bottom, left); -} - -function ElkMargin_2(other){ - Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); -} - -defineClass(142, 207, $intern_109, ElkMargin, ElkMargin_0, ElkMargin_1, ElkMargin_2); -var Lorg_eclipse_elk_core_math_ElkMargin_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkMargin', 142); -function LMargin(){ - ElkMargin.call(this); -} - -defineClass(651, 142, $intern_109, LMargin); -var Lorg_eclipse_elk_alg_layered_graph_LMargin_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LMargin', 651); -function $borderToContentAreaCoordinates(this$static, horizontal, vertical){ - var graphPadding, offset, pos, thegraph; - thegraph = $getGraph(this$static); - graphPadding = thegraph.padding; - offset = thegraph.offset; - pos = this$static.pos; - horizontal && (pos.x_0 = pos.x_0 - graphPadding.left - offset.x_0); - vertical && (pos.y_0 = pos.y_0 - graphPadding.top_0 - offset.y_0); -} - -function $findPortIndices(this$static){ - var currentIndex, currentSide, firstIndexForCurrentSide, port; - this$static.portSideIndices = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); - firstIndexForCurrentSide = 0; - currentSide = ($clinit_PortSide() , NORTH_3); - currentIndex = 0; - for (; currentIndex < this$static.ports.array.length; currentIndex++) { - port = castTo($get_11(this$static.ports, currentIndex), 11); - if (port.side != currentSide) { - firstIndexForCurrentSide != currentIndex && $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); - currentSide = port.side; - firstIndexForCurrentSide = currentIndex; - } - } - $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); -} - -function $getConnectedEdges_0(this$static){ - var iterables, port, port$iterator; - iterables = new ArrayList; - for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $add_3(iterables, port.connectedEdges); - } - return checkNotNull(iterables) , new FluentIterable$2(iterables); -} - -function $getDesignation_2(this$static){ - var id_0; - if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { - return castTo($get_11(this$static.labels, 0), 70).text_0; - } - id_0 = $getDesignation(this$static); - if (id_0 != null) { - return id_0; - } - return '' + (!this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0)); -} - -function $getGraph(this$static){ - if (!this$static.graph_0 && !!this$static.layer) { - return this$static.layer.owner; - } - return this$static.graph_0; -} - -function $getIncomingEdges(this$static){ - var iterables, port, port$iterator; - iterables = new ArrayList; - for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $add_3(iterables, port.incomingEdges); - } - return checkNotNull(iterables) , new FluentIterable$2(iterables); -} - -function $getIndex(this$static){ - return !this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0); -} - -function $getInteractiveReferencePoint(this$static){ - var nodePos, nodeSize; - switch (castTo($getProperty($getGraph(this$static), ($clinit_LayeredOptions() , INTERACTIVE_REFERENCE_POINT_0)), 420).ordinal) { - case 0: - nodePos = this$static.pos; - nodeSize = this$static.size_0; - return new KVector_1(nodePos.x_0 + nodeSize.x_0 / 2, nodePos.y_0 + nodeSize.y_0 / 2); - case 1: - return new KVector_2(this$static.pos); - default:return null; - } -} - -function $getOutgoingEdges(this$static){ - var iterables, port, port$iterator; - iterables = new ArrayList; - for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $add_3(iterables, port.outgoingEdges); - } - return checkNotNull(iterables) , new FluentIterable$2(iterables); -} - -function $getPortSideView(this$static, side){ - var indices; - this$static.portSidesCached || $findPortIndices(this$static); - indices = castTo($get_14(this$static.portSideIndices, side), 46); - return !indices?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):new AbstractList$SubList(this$static.ports, castTo(indices.first, 19).value_0, castTo(indices.second, 19).value_0); -} - -function $getPorts(this$static, portType){ - switch (portType.ordinal) { - case 1: - return filter_0(this$static.ports, ($clinit_LPort() , INPUT_PREDICATE)); - case 2: - return filter_0(this$static.ports, ($clinit_LPort() , OUTPUT_PREDICATE)); - default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $getPorts_0(this$static, portType, side){ - var sidePredicate, typePredicate; - typePredicate = null; - switch (portType.ordinal) { - case 1: - typePredicate = ($clinit_LPort() , INPUT_PREDICATE); - break; - case 2: - typePredicate = ($clinit_LPort() , OUTPUT_PREDICATE); - } - sidePredicate = null; - switch (side.ordinal) { - case 1: - sidePredicate = ($clinit_LPort() , NORTH_PREDICATE); - break; - case 2: - sidePredicate = ($clinit_LPort() , EAST_PREDICATE); - break; - case 3: - sidePredicate = ($clinit_LPort() , SOUTH_PREDICATE); - break; - case 4: - sidePredicate = ($clinit_LPort() , WEST_PREDICATE); - } - return !!typePredicate && !!sidePredicate?filter_0(this$static.ports, new Predicates$AndPredicate(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_base_Predicate_2_classLit, 1), $intern_2, 169, 0, [castTo(checkNotNull(typePredicate), 169), castTo(checkNotNull(sidePredicate), 169)])))):($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); -} - -function $getPorts_1(this$static, side){ - switch (side.ordinal) { - case 1: - return filter_0(this$static.ports, ($clinit_LPort() , NORTH_PREDICATE)); - case 2: - return filter_0(this$static.ports, ($clinit_LPort() , EAST_PREDICATE)); - case 3: - return filter_0(this$static.ports, ($clinit_LPort() , SOUTH_PREDICATE)); - case 4: - return filter_0(this$static.ports, ($clinit_LPort() , WEST_PREDICATE)); - default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $setLayer(this$static, index_0, newlayer){ - if (!!newlayer && (index_0 < 0 || index_0 > newlayer.nodes.array.length)) { - throw toJs(new IllegalArgumentException_0('index must be >= 0 and <= layer node count')); - } - !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); - this$static.layer = newlayer; - !!newlayer && $add_2(newlayer.nodes, index_0, this$static); -} - -function $setLayer_0(this$static, thelayer){ - !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); - this$static.layer = thelayer; - !!this$static.layer && $add_3(this$static.layer.nodes, this$static); -} - -function $setType(this$static, type_0){ - this$static.type_0 = type_0; -} - -function $toString_13(this$static){ - var result; - result = new StringBuilder; - result.string += 'n'; - this$static.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $append_11($append_11((result.string += '(' , result), $toString_3(this$static.type_0).toLowerCase()), ')'); - $append_11((result.string += '_' , result), $getDesignation_2(this$static)); - return result.string; -} - -function LNode(graph){ - LShape.call(this); - this.type_0 = ($clinit_LNode$NodeType() , NORMAL); - this.ports = (checkNonnegative(6, 'initialArraySize') , new ArrayList_0(6)); - this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); - this.margin = new LMargin; - this.padding = new LPadding; - this.graph_0 = graph; -} - -defineClass(10, 392, {3:1, 299:1, 10:1, 392:1, 94:1, 134:1}, LNode); -_.toString_0 = function toString_91(){ - return $toString_13(this); -} -; -_.portSidesCached = false; -var Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LNode', 10); -function $clinit_LNode$NodeType(){ - $clinit_LNode$NodeType = emptyMethod; - NORMAL = new LNode$NodeType('NORMAL', 0); - LONG_EDGE = new LNode$NodeType('LONG_EDGE', 1); - EXTERNAL_PORT = new LNode$NodeType('EXTERNAL_PORT', 2); - NORTH_SOUTH_PORT = new LNode$NodeType('NORTH_SOUTH_PORT', 3); - LABEL = new LNode$NodeType('LABEL', 4); - BREAKING_POINT = new LNode$NodeType('BREAKING_POINT', 5); -} - -function LNode$NodeType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_30(name_0){ - $clinit_LNode$NodeType(); - return valueOf(($clinit_LNode$NodeType$Map() , $MAP_18), name_0); -} - -function values_36(){ - $clinit_LNode$NodeType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]); -} - -defineClass(267, 22, {3:1, 35:1, 22:1, 267:1}, LNode$NodeType); -var BREAKING_POINT, EXTERNAL_PORT, LABEL, LONG_EDGE, NORMAL, NORTH_SOUTH_PORT; -var Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.graph', 'LNode/NodeType', 267, Ljava_lang_Enum_2_classLit, values_36, valueOf_30); -function $clinit_LNode$NodeType$Map(){ - $clinit_LNode$NodeType$Map = emptyMethod; - $MAP_18 = createValueOfMap(($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]))); -} - -var $MAP_18; -function ElkPadding(){ - Spacing.call(this); -} - -function ElkPadding_0(any){ - Spacing_0.call(this, any, any, any, any); -} - -function ElkPadding_1(other){ - Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); -} - -defineClass(116, 207, $intern_110, ElkPadding, ElkPadding_0, ElkPadding_1); -var Lorg_eclipse_elk_core_math_ElkPadding_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkPadding', 116); -function LPadding(){ - ElkPadding.call(this); -} - -defineClass(764, 116, $intern_110, LPadding); -var Lorg_eclipse_elk_alg_layered_graph_LPadding_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPadding', 764); -function $clinit_LPort(){ - $clinit_LPort = emptyMethod; - OUTPUT_PREDICATE = new LPort$lambda$1$Type; - INPUT_PREDICATE = new LPort$lambda$0$Type; - NORTH_PREDICATE = new LPort$lambda$2$Type; - EAST_PREDICATE = new LPort$lambda$3$Type; - SOUTH_PREDICATE = new LPort$lambda$4$Type; - WEST_PREDICATE = new LPort$lambda$5$Type; -} - -function $getAbsoluteAnchor(this$static){ - return sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [this$static.owner.pos, this$static.pos, this$static.anchor])); -} - -function $getDegree(this$static){ - return this$static.incomingEdges.array.length + this$static.outgoingEdges.array.length; -} - -function $getDesignation_3(this$static){ - var id_0; - if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { - return castTo($get_11(this$static.labels, 0), 70).text_0; - } - id_0 = $getDesignation(this$static); - if (id_0 != null) { - return id_0; - } - return '' + (!this$static.owner?-1:$indexOf_3(this$static.owner.ports, this$static, 0)); -} - -function $getNetFlow(this$static){ - return this$static.incomingEdges.array.length - this$static.outgoingEdges.array.length; -} - -function $setConnectedToExternalNodes(this$static, conn){ - this$static.connectedToExternalNodes = conn; -} - -function $setNode(this$static, node){ - !!this$static.owner && $remove_12(this$static.owner.ports, this$static); - this$static.owner = node; - !!this$static.owner && $add_3(this$static.owner.ports, this$static); -} - -function $setSide(this$static, theside){ - if (!theside) { - throw toJs(new NullPointerException); - } - this$static.side = theside; - if (!this$static.explicitlySuppliedPortAnchor) { - switch (this$static.side.ordinal) { - case 1: - this$static.anchor.x_0 = this$static.size_0.x_0 / 2; - this$static.anchor.y_0 = 0; - break; - case 2: - this$static.anchor.x_0 = this$static.size_0.x_0; - this$static.anchor.y_0 = this$static.size_0.y_0 / 2; - break; - case 3: - this$static.anchor.x_0 = this$static.size_0.x_0 / 2; - this$static.anchor.y_0 = this$static.size_0.y_0; - break; - case 4: - this$static.anchor.x_0 = 0; - this$static.anchor.y_0 = this$static.size_0.y_0 / 2; - } - } -} - -function LPort(){ - $clinit_LPort(); - LShape.call(this); - this.side = ($clinit_PortSide() , UNDEFINED_5); - this.anchor = new KVector; - new LMargin; - this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); - this.incomingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); - this.outgoingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); - this.connectedEdges = new LPort$CombineIter(this.incomingEdges, this.outgoingEdges); -} - -defineClass(11, 392, {3:1, 299:1, 11:1, 392:1, 94:1, 134:1}, LPort); -_.toString_0 = function toString_92(){ - var result, source, target; - result = new StringBuilder; - $append_11((result.string += 'p_' , result), $getDesignation_3(this)); - !!this.owner && $append_11($append_10((result.string += '[' , result), this.owner), ']'); - if (this.incomingEdges.array.length == 1 && this.outgoingEdges.array.length == 0 && castTo($get_11(this.incomingEdges, 0), 17).source != this) { - source = castTo($get_11(this.incomingEdges, 0), 17).source; - $append_11((result.string += ' << ' , result), $getDesignation_3(source)); - $append_11($append_10((result.string += '[' , result), source.owner), ']'); - } - if (this.incomingEdges.array.length == 0 && this.outgoingEdges.array.length == 1 && castTo($get_11(this.outgoingEdges, 0), 17).target != this) { - target = castTo($get_11(this.outgoingEdges, 0), 17).target; - $append_11((result.string += ' >> ' , result), $getDesignation_3(target)); - $append_11($append_10((result.string += '[' , result), target.owner), ']'); - } - return result.string; -} -; -_.connectedToExternalNodes = true; -_.explicitlySuppliedPortAnchor = false; -var EAST_PREDICATE, INPUT_PREDICATE, NORTH_PREDICATE, OUTPUT_PREDICATE, SOUTH_PREDICATE, WEST_PREDICATE; -var Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort', 11); -function LPort$1(this$0){ - this.this$01 = this$0; -} - -defineClass(397, 1, $intern_23, LPort$1); -_.forEach_0 = function forEach_27(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_69(){ - var edgesIter; - edgesIter = new ArrayList$1(this.this$01.incomingEdges); - return new LPort$1$1(edgesIter); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1', 397); -function LPort$1$1(val$edgesIter){ - this.val$edgesIter2 = val$edgesIter; -} - -defineClass(1290, 1, $intern_6, LPort$1$1); -_.forEachRemaining = function forEachRemaining_47(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_37(){ - return castTo($next_7(this.val$edgesIter2), 17).source; -} -; -_.hasNext_0 = function hasNext_36(){ - return $hasNext_3(this.val$edgesIter2); -} -; -_.remove = function remove_92(){ - $remove_13(this.val$edgesIter2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$1$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1/1', 1290); -function LPort$2(this$0){ - this.this$01 = this$0; -} - -defineClass(359, 1, $intern_23, LPort$2); -_.forEach_0 = function forEach_28(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_70(){ - var edgesIter; - return edgesIter = new ArrayList$1(this.this$01.outgoingEdges) , new LPort$2$1(edgesIter); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2', 359); -function LPort$2$1(val$edgesIter){ - this.val$edgesIter2 = val$edgesIter; -} - -defineClass(762, 1, $intern_6, LPort$2$1); -_.forEachRemaining = function forEachRemaining_48(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_38(){ - return castTo($next_7(this.val$edgesIter2), 17).target; -} -; -_.hasNext_0 = function hasNext_37(){ - return $hasNext_3(this.val$edgesIter2); -} -; -_.remove = function remove_93(){ - $remove_13(this.val$edgesIter2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$2$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2/1', 762); -function LPort$CombineIter(firstIterable, secondIterable){ - this.firstIterable = firstIterable; - this.secondIterable = secondIterable; -} - -defineClass(1283, 1, $intern_23, LPort$CombineIter); -_.forEach_0 = function forEach_29(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_71(){ - return new LPort$CombineIter$1(this); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter', 1283); -function $hasNext_6(this$static){ - return $hasNext_3(this$static.firstIterator) || $hasNext_3(this$static.secondIterator); -} - -function LPort$CombineIter$1(this$1){ - this.this$11 = this$1; - this.firstIterator = new ArrayList$1(this.this$11.firstIterable); - this.secondIterator = new ArrayList$1(this.this$11.secondIterable); -} - -defineClass(201, 1, $intern_6, LPort$CombineIter$1); -_.forEachRemaining = function forEachRemaining_49(consumer){ - $forEachRemaining(this, consumer); -} -; -_.remove = function remove_94(){ - $remove_21(); -} -; -_.hasNext_0 = function hasNext_38(){ - return $hasNext_6(this); -} -; -_.next_1 = function next_39(){ - return $hasNext_3(this.firstIterator)?$next_7(this.firstIterator):$next_7(this.secondIterator); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter/1', 201); -function $apply_14(arg0){ - return $clinit_LPort() , castTo(arg0, 11).incomingEdges.array.length != 0; -} - -function LPort$lambda$0$Type(){ -} - -defineClass(1285, 1, $intern_89, LPort$lambda$0$Type); -_.apply_1 = function apply_64(arg0){ - return $apply_14(arg0); -} -; -_.equals_0 = function equals_100(other){ - return this === other; -} -; -_.test_0 = function test_18(input_0){ - return $clinit_LPort() , castTo(input_0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$0$Type', 1285); -function $apply_15(arg0){ - return $clinit_LPort() , castTo(arg0, 11).outgoingEdges.array.length != 0; -} - -function LPort$lambda$1$Type(){ -} - -defineClass(1284, 1, $intern_89, LPort$lambda$1$Type); -_.apply_1 = function apply_65(arg0){ - return $apply_15(arg0); -} -; -_.equals_0 = function equals_101(other){ - return this === other; -} -; -_.test_0 = function test_19(input_0){ - return $clinit_LPort() , castTo(input_0, 11).outgoingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$1$Type', 1284); -function LPort$lambda$2$Type(){ -} - -defineClass(1286, 1, $intern_89, LPort$lambda$2$Type); -_.apply_1 = function apply_66(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); -} -; -_.equals_0 = function equals_102(other){ - return this === other; -} -; -_.test_0 = function test_20(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , NORTH_3); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$2$Type', 1286); -function LPort$lambda$3$Type(){ -} - -defineClass(1287, 1, $intern_89, LPort$lambda$3$Type); -_.apply_1 = function apply_67(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); -} -; -_.equals_0 = function equals_103(other){ - return this === other; -} -; -_.test_0 = function test_21(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , EAST_2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$3$Type', 1287); -function LPort$lambda$4$Type(){ -} - -defineClass(1288, 1, $intern_89, LPort$lambda$4$Type); -_.apply_1 = function apply_68(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); -} -; -_.equals_0 = function equals_104(other){ - return this === other; -} -; -_.test_0 = function test_22(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , SOUTH_2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$4$Type', 1288); -function LPort$lambda$5$Type(){ -} - -defineClass(1289, 1, $intern_89, LPort$lambda$5$Type); -_.apply_1 = function apply_69(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); -} -; -_.equals_0 = function equals_105(other){ - return this === other; -} -; -_.test_0 = function test_23(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , WEST_2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$5$Type', 1289); -function $getIndex_0(this$static){ - return $indexOf_3(this$static.owner.layers, this$static, 0); -} - -function Layer(graph){ - this.size_0 = new KVector; - this.nodes = new ArrayList; - this.owner = graph; -} - -defineClass(29, 299, {3:1, 20:1, 299:1, 29:1, 94:1, 134:1}, Layer); -_.forEach_0 = function forEach_30(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_72(){ - return new ArrayList$1(this.nodes); -} -; -_.toString_0 = function toString_93(){ - return 'L_' + $indexOf_3(this.owner.layers, this, 0) + $toString_2(this.nodes); -} -; -var Lorg_eclipse_elk_alg_layered_graph_Layer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'Layer', 29); -function $calculateMinimumGraphSize(elkgraph, lgraph){ - var configuredMinSize, graphAdapter, minSize, nodeAdapter, sizeConstraints; - if (!$getParent_2(elkgraph)) { - return; - } - sizeConstraints = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174); - maskUndefined($getProperty_0(elkgraph, PORT_CONSTRAINTS_0)) === maskUndefined(($clinit_PortConstraints() , UNDEFINED_4)) && $setProperty_1(elkgraph, PORT_CONSTRAINTS_0, FREE); - graphAdapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))); - nodeAdapter = new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph); - minSize = process(graphAdapter, nodeAdapter, false, true); - $add_5(sizeConstraints, ($clinit_SizeConstraint() , MINIMUM_SIZE)); - configuredMinSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); - configuredMinSize.x_0 = $wnd.Math.max(minSize.x_0, configuredMinSize.x_0); - configuredMinSize.y_0 = $wnd.Math.max(minSize.y_0, configuredMinSize.y_0); -} - -function $calculateNetFlow_0(elkport){ - var elkgraph, incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; - elkgraph = $getParent_3(elkport); - insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); - outputPortVote = 0; - inputPortVote = 0; - for (outgoingEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outgoingEdge$iterator.cursor != outgoingEdge$iterator.this$01_2.size_1();) { - outgoingEdge = castTo($doNext(outgoingEdge$iterator), 79); - isSelfLoop = $isSelfloop(outgoingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(outgoingEdge, INSIDE_SELF_LOOPS_YO))); - targetNode = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); - isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getParent_2(targetNode) == elkgraph || targetNode == elkgraph?++inputPortVote:++outputPortVote; - } - for (incomingEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); incomingEdge$iterator.cursor != incomingEdge$iterator.this$01_2.size_1();) { - incomingEdge = castTo($doNext(incomingEdge$iterator), 79); - isSelfLoop = $isSelfloop(incomingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(incomingEdge, INSIDE_SELF_LOOPS_YO))); - sourceNode = connectableShapeToNode(castTo($get_20((!incomingEdge.sources && (incomingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, incomingEdge, 4, 7)) , incomingEdge.sources), 0), 82)); - isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getParent_2(sourceNode) == elkgraph || sourceNode == elkgraph?++outputPortVote:++inputPortVote; - } - return outputPortVote - inputPortVote; -} - -function $checkEdgeValidity(edge){ - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0) { - throw toJs(new UnsupportedGraphException('Edges must have a source.')); - } - else if ((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { - throw toJs(new UnsupportedGraphException('Edges must have a target.')); - } - else { - !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); - if (!(edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1))) { - throw toJs(new UnsupportedGraphException('Hyperedges are not supported.')); - } - } -} - -function $checkExternalPorts(elkgraph, graphProperties){ - var connectsToChild, elkedge, elkedge$iterator, elkport, enableSelfLoops, externalPortEdges, hasExternalPorts, hasHyperedges, isInsideSelfLoop, portIterator, portLabelPlacement; - enableSelfLoops = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); - portLabelPlacement = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21); - hasExternalPorts = false; - hasHyperedges = false; - portIterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); - while (portIterator.cursor != portIterator.this$01_2.size_1() && (!hasExternalPorts || !hasHyperedges)) { - elkport = castTo($doNext(portIterator), 118); - externalPortEdges = 0; - for (elkedge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges), (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)]))); $hasNext_1(elkedge$iterator);) { - elkedge = castTo($next_0(elkedge$iterator), 79); - isInsideSelfLoop = enableSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - connectsToChild = $contains_11((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), elkport)?elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))):elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82))); - if (isInsideSelfLoop || connectsToChild) { - ++externalPortEdges; - if (externalPortEdges > 1) { - break; - } - } - } - externalPortEdges > 0?(hasExternalPorts = true):portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && (!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels).size_0 > 0 && (hasExternalPorts = true); - externalPortEdges > 1 && (hasHyperedges = true); - } - hasExternalPorts && graphProperties.add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); - hasHyperedges && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); -} - -function $createLGraph(elkgraph){ - var all, lPadding, lgraph, nodeLabelpadding, nodePadding, root; - lgraph = new LGraph; - $copyProperties(lgraph, elkgraph); - maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION))) === maskUndefined(($clinit_Direction_0() , UNDEFINED_2)) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); - if ($getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) == null) { - root = castTo(getRootContainer(elkgraph), 160); - $setProperty_0(lgraph, LABEL_MANAGER, throwClassCastExceptionUnlessNull(root.getProperty(LABEL_MANAGER))); - } - $setProperty_0(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0), elkgraph); - $setProperty_0(lgraph, GRAPH_PROPERTIES, (all = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); - nodeLabelpadding = computeInsideNodeLabelPadding((!$getParent_2(elkgraph)?null:($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))) , $clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph)), RIGHT_6); - nodePadding = castTo($getProperty(lgraph, PADDING_1), 116); - lPadding = lgraph.padding; - $add_15(lPadding, nodePadding); - $add_15(lPadding, nodeLabelpadding); - return lgraph; -} - -function $ensureDefinedPortSide(lgraph, elkport){ - var layoutDirection, netFlow, portConstraints, portSide; - layoutDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); - portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); - portConstraints = castTo($getProperty(lgraph, PORT_CONSTRAINTS_0), 98); - if (portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4) { - if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { - portSide = calcPortSide_0(elkport, layoutDirection); - portSide == UNDEFINED_5 && (portSide = fromDirection(layoutDirection)); - } - } - else { - netFlow = $calculateNetFlow_0(elkport); - netFlow > 0?(portSide = fromDirection(layoutDirection)):(portSide = $opposed(fromDirection(layoutDirection))); - } - $setProperty_1(elkport, PORT_SIDE, portSide); -} - -function $findCoordinateSystemOrigin(this$static, elkedge, topLevelElkGraph, topLevelLGraph){ - var lgraph, lnode, origin_0, source, target; - source = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); - target = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); - if ($getParent_2(source) == $getParent_2(target)) { - return null; - } - if (isDescendant_0(target, source)) { - return null; - } - origin_0 = $getContainingNode(elkedge); - if (origin_0 == topLevelElkGraph) { - return topLevelLGraph; - } - else { - lnode = castTo($get_10(this$static.nodeAndPortMap, origin_0), 10); - if (lnode) { - lgraph = lnode.nestedGraph; - if (lgraph) { - return lgraph; - } - } - } - return null; -} - -function $hasInsideSelfLoops(elknode){ - var edge, edge$iterator; - if ($booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - if ($isSelfloop(edge)) { - if ($booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO)))) { - return true; - } - } - } - } - return false; -} - -function $importFlatGraph(this$static, elkgraph, lgraph){ - var child, child$iterator, connectsSiblings, connectsToGraph, elkedge, elkedge$iterator, elkedge$iterator0, enableInsideSelfLoops, index_0, isInsideSelfLoop, isToBeLaidOut, source, target; - index_0 = 0; - for (child$iterator = new AbstractEList$EIterator((!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - if (!$booleanValue(castToBoolean($getProperty_0(child, ($clinit_LayeredOptions() , NO_LAYOUT))))) { - if ((maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(child, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)))) { - $setProperty_1(child, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); - ++index_0; - } - $transformNode(this$static, child, lgraph); - } - } - index_0 = 0; - for (elkedge$iterator0 = new AbstractEList$EIterator((!elkgraph.containedEdges && (elkgraph.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkgraph, 12, 3)) , elkgraph.containedEdges)); elkedge$iterator0.cursor != elkedge$iterator0.this$01_2.size_1();) { - elkedge = castTo($doNext(elkedge$iterator0), 79); - if (maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { - $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); - ++index_0; - } - source = getSourceNode(elkedge); - target = getTargetNode_0(elkedge); - enableInsideSelfLoops = $booleanValue(castToBoolean($getProperty_0(source, INSIDE_SELF_LOOPS_ACTIVATE))); - isToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))); - isInsideSelfLoop = enableInsideSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - connectsSiblings = $getParent_2(source) == elkgraph && $getParent_2(source) == $getParent_2(target); - connectsToGraph = ($getParent_2(source) == elkgraph && target == elkgraph) ^ ($getParent_2(target) == elkgraph && source == elkgraph); - isToBeLaidOut && !isInsideSelfLoop && (connectsToGraph || connectsSiblings) && $transformEdge(this$static, elkedge, elkgraph, lgraph); - } - if ($getParent_2(elkgraph)) { - for (elkedge$iterator = new AbstractEList$EIterator($getContainedEdges($getParent_2(elkgraph))); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { - elkedge = castTo($doNext(elkedge$iterator), 79); - source = getSourceNode(elkedge); - if (source == elkgraph && $isSelfloop(elkedge)) { - isInsideSelfLoop = $booleanValue(castToBoolean($getProperty_0(source, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - isInsideSelfLoop && $transformEdge(this$static, elkedge, elkgraph, lgraph); - } - } - } -} - -function $importGraph_1(this$static, elkgraph){ - var elkport, elkport$iterator, graphProperties, topLevelGraph; - topLevelGraph = $createLGraph(elkgraph); - $forEach_3(new StreamImpl(null, (!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , new Spliterators$IteratorSpliterator(elkgraph.ports, 16))), new ElkGraphImporter$lambda$0$Type(topLevelGraph)); - graphProperties = castTo($getProperty(topLevelGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - $checkExternalPorts(elkgraph, graphProperties); - if (graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - for (elkport$iterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { - elkport = castTo($doNext(elkport$iterator), 118); - $transformExternalPort(this$static, elkgraph, topLevelGraph, elkport); - } - } - castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).size_1() != 0 && $calculateMinimumGraphSize(elkgraph, topLevelGraph); - $booleanValue(castToBoolean($getProperty(topLevelGraph, PARTITIONING_ACTIVATE))) && graphProperties.add_2(PARTITIONS); - $hasProperty(topLevelGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(topLevelGraph, SPACING_BASE_VALUE_0)))), topLevelGraph); - maskUndefined($getProperty_0(elkgraph, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$importHierarchicalGraph(this$static, elkgraph, topLevelGraph):$importFlatGraph(this$static, elkgraph, topLevelGraph); - return topLevelGraph; -} - -function $importHierarchicalGraph(this$static, elkgraph, lgraph){ - var elkChildGraphNode, elkChildGraphNode$iterator, elkGraphNode, elkGraphQueue, elkedge, elkedge$iterator, elknode, finalNestedGraph, hasChildren, hasHierarchyHandlingEnabled, hasInsideSelfLoops, index_0, isInsideSelfLoop, isNodeToBeLaidOut, ledge, lnode, nestedGraph, parentElkGraph, parentGraphDirection, parentLGraph, parentLNode, partOfSameLayoutRun, sourceNode, targetNode, usesElkLayered; - elkGraphQueue = new LinkedList; - parentGraphDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); - index_0 = 0; - $addAll(elkGraphQueue, (!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); - while (elkGraphQueue.size_0 != 0) { - elknode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); - (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elknode, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); - isNodeToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elknode, NO_LAYOUT))); - if (isNodeToBeLaidOut) { - hasChildren = (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0; - hasInsideSelfLoops = $hasInsideSelfLoops(elknode); - hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elknode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); - usesElkLayered = !$hasProperty_0(elknode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elknode, ALGORITHM)), 'org.eclipse.elk.layered'); - nestedGraph = null; - if (usesElkLayered && hasHierarchyHandlingEnabled && (hasChildren || hasInsideSelfLoops)) { - nestedGraph = $createLGraph(elknode); - $setProperty_0(nestedGraph, DIRECTION, parentGraphDirection); - $hasProperty(nestedGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(nestedGraph, SPACING_BASE_VALUE_0)))), nestedGraph); - if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0) { - finalNestedGraph = nestedGraph; - $forEach_3(new StreamImpl(null, (!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , new Spliterators$IteratorSpliterator(elknode.ports, 16))), new ElkGraphImporter$lambda$1$Type(finalNestedGraph)); - $calculateMinimumGraphSize(elknode, nestedGraph); - } - } - parentLGraph = lgraph; - parentLNode = castTo($get_10(this$static.nodeAndPortMap, $getParent_2(elknode)), 10); - !!parentLNode && (parentLGraph = parentLNode.nestedGraph); - lnode = $transformNode(this$static, elknode, parentLGraph); - if (nestedGraph) { - lnode.nestedGraph = nestedGraph; - nestedGraph.parentNode = lnode; - $addAll(elkGraphQueue, (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children)); - } - } - } - index_0 = 0; - $addNode_0(elkGraphQueue, elkgraph, elkGraphQueue.tail.prev, elkGraphQueue.tail); - while (elkGraphQueue.size_0 != 0) { - elkGraphNode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); - for (elkedge$iterator = new AbstractEList$EIterator((!elkGraphNode.containedEdges && (elkGraphNode.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkGraphNode, 12, 3)) , elkGraphNode.containedEdges)); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { - elkedge = castTo($doNext(elkedge$iterator), 79); - $checkEdgeValidity(elkedge); - (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); - sourceNode = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); - targetNode = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); - if ($booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(sourceNode, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(targetNode, NO_LAYOUT)))) { - continue; - } - isInsideSelfLoop = $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(sourceNode, INSIDE_SELF_LOOPS_ACTIVATE))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - parentElkGraph = elkGraphNode; - isInsideSelfLoop || isDescendant_0(targetNode, sourceNode)?(parentElkGraph = sourceNode):isDescendant_0(sourceNode, targetNode) && (parentElkGraph = targetNode); - parentLGraph = lgraph; - parentLNode = castTo($get_10(this$static.nodeAndPortMap, parentElkGraph), 10); - !!parentLNode && (parentLGraph = parentLNode.nestedGraph); - ledge = $transformEdge(this$static, elkedge, parentElkGraph, parentLGraph); - $setProperty_0(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN), $findCoordinateSystemOrigin(this$static, elkedge, elkgraph, lgraph)); - } - hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elkGraphNode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); - if (hasHierarchyHandlingEnabled) { - for (elkChildGraphNode$iterator = new AbstractEList$EIterator((!elkGraphNode.children && (elkGraphNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkGraphNode, 10, 11)) , elkGraphNode.children)); elkChildGraphNode$iterator.cursor != elkChildGraphNode$iterator.this$01_2.size_1();) { - elkChildGraphNode = castTo($doNext(elkChildGraphNode$iterator), 33); - usesElkLayered = !$hasProperty_0(elkChildGraphNode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elkChildGraphNode, ALGORITHM)), 'org.eclipse.elk.layered'); - partOfSameLayoutRun = maskUndefined($getProperty_0(elkChildGraphNode, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN); - usesElkLayered && partOfSameLayoutRun && ($addNode_0(elkGraphQueue, elkChildGraphNode, elkGraphQueue.tail.prev, elkGraphQueue.tail) , true); - } - } - } -} - -function $isConnectedToExternalNodes(elkport){ - var inEdge, inEdge$iterator, outEdge, outEdge$iterator, parent_0, sourceNode, targetNode; - parent_0 = $getParent_3(elkport); - for (outEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outEdge$iterator.cursor != outEdge$iterator.this$01_2.size_1();) { - outEdge = castTo($doNext(outEdge$iterator), 79); - targetNode = connectableShapeToNode(castTo($get_20((!outEdge.targets && (outEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outEdge, 5, 8)) , outEdge.targets), 0), 82)); - if (!isDescendant_0(targetNode, parent_0)) { - return true; - } - } - for (inEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); inEdge$iterator.cursor != inEdge$iterator.this$01_2.size_1();) { - inEdge = castTo($doNext(inEdge$iterator), 79); - sourceNode = connectableShapeToNode(castTo($get_20((!inEdge.sources && (inEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, inEdge, 4, 7)) , inEdge.sources), 0), 82)); - if (!isDescendant_0(sourceNode, parent_0)) { - return true; - } - } - return false; -} - -function $transformEdge(this$static, elkedge, elkparent, lgraph){ - var bendPointsRequired, crossMinStrat, edgeSection, elkSourceNode, elkSourceShape, elkTargetNode, elkTargetShape, elklabel, elklabel$iterator, graphProperties, importedBendpoints, ledge, llabel, nodePlaceStrat, originalBendpoints, point, point$iterator, portType, sourceElem, sourceLNode, sourceLPort, sourcePoint, targetElem, targetLNode, targetLPort, targetPoint; - $checkEdgeValidity(elkedge); - elkSourceShape = castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82); - elkTargetShape = castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82); - elkSourceNode = connectableShapeToNode(elkSourceShape); - elkTargetNode = connectableShapeToNode(elkTargetShape); - edgeSection = (!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections).size_0 == 0?null:castTo($get_20((!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections), 0), 202); - sourceLNode = castTo($get_10(this$static.nodeAndPortMap, elkSourceNode), 10); - targetLNode = castTo($get_10(this$static.nodeAndPortMap, elkTargetNode), 10); - sourceLPort = null; - targetLPort = null; - if (instanceOf(elkSourceShape, 186)) { - sourceElem = castTo($get_10(this$static.nodeAndPortMap, elkSourceShape), 299); - if (instanceOf(sourceElem, 11)) { - sourceLPort = castTo(sourceElem, 11); - } - else if (instanceOf(sourceElem, 10)) { - sourceLNode = castTo(sourceElem, 10); - sourceLPort = castTo($get_11(sourceLNode.ports, 0), 11); - } - } - if (instanceOf(elkTargetShape, 186)) { - targetElem = castTo($get_10(this$static.nodeAndPortMap, elkTargetShape), 299); - if (instanceOf(targetElem, 11)) { - targetLPort = castTo(targetElem, 11); - } - else if (instanceOf(targetElem, 10)) { - targetLNode = castTo(targetElem, 10); - targetLPort = castTo($get_11(targetLNode.ports, 0), 11); - } - } - if (!sourceLNode || !targetLNode) { - throw toJs(new UnsupportedGraphException('The source or the target of edge ' + elkedge + ' could not be found. ' + 'This usually happens when an edge connects a node laid out by ELK Layered to a node in ' + 'another level of hierarchy laid out by either another instance of ELK Layered or another ' + 'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling ' + 'option to INCLUDE_CHILDREN.')); - } - ledge = new LEdge; - $copyProperties(ledge, elkedge); - $setProperty_0(ledge, ($clinit_InternalProperties_1() , ORIGIN_0), elkedge); - $setProperty_0(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); - graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); - sourceLNode == targetLNode && graphProperties.add_2(($clinit_GraphProperties() , SELF_LOOPS)); - if (!sourceLPort) { - portType = ($clinit_PortType() , OUTPUT); - sourcePoint = null; - if (!!edgeSection && $isSideFixed(castTo($getProperty(sourceLNode, PORT_CONSTRAINTS_0), 98))) { - sourcePoint = new KVector_1(edgeSection.startX, edgeSection.startY); - toAbsolute(sourcePoint, $getContainingNode(elkedge)); - toRelative(sourcePoint, elkparent); - if (isDescendant_0(elkTargetNode, elkSourceNode)) { - portType = INPUT; - $add_19(sourcePoint, sourceLNode.pos); - } - } - sourceLPort = createPort(sourceLNode, sourcePoint, portType, lgraph); - } - if (!targetLPort) { - portType = ($clinit_PortType() , INPUT); - targetPoint = null; - if (!!edgeSection && $isSideFixed(castTo($getProperty(targetLNode, PORT_CONSTRAINTS_0), 98))) { - targetPoint = new KVector_1(edgeSection.endX, edgeSection.endY); - toAbsolute(targetPoint, $getContainingNode(elkedge)); - toRelative(targetPoint, elkparent); - } - targetLPort = createPort(targetLNode, targetPoint, portType, $getGraph(targetLNode)); - } - $setSource_0(ledge, sourceLPort); - $setTarget_0(ledge, targetLPort); - (sourceLPort.incomingEdges.array.length > 1 || sourceLPort.outgoingEdges.array.length > 1 || targetLPort.incomingEdges.array.length > 1 || targetLPort.outgoingEdges.array.length > 1) && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); - for (elklabel$iterator = new AbstractEList$EIterator((!elkedge.labels && (elkedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkedge, 1, 7)) , elkedge.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { - llabel = $transformLabel(elklabel); - $add_3(ledge.labels, llabel); - switch (castTo($getProperty(llabel, EDGE_LABELS_PLACEMENT), 272).ordinal) { - case 1: - case 2: - graphProperties.add_2(($clinit_GraphProperties() , END_LABELS)); - break; - case 0: - graphProperties.add_2(($clinit_GraphProperties() , CENTER_LABELS)); - $setProperty_0(llabel, EDGE_LABELS_PLACEMENT, ($clinit_EdgeLabelPlacement() , CENTER_5)); - } - } - } - crossMinStrat = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 314); - nodePlaceStrat = castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 315); - bendPointsRequired = crossMinStrat == ($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1) || nodePlaceStrat == ($clinit_NodePlacementStrategy() , INTERACTIVE_4); - if (!!edgeSection && (!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints).size_0 != 0 && bendPointsRequired) { - originalBendpoints = createVectorChain(edgeSection); - importedBendpoints = new KVectorChain; - for (point$iterator = $listIterator_2(originalBendpoints, 0); point$iterator.currentNode != point$iterator.this$01.tail;) { - point = castTo($next_10(point$iterator), 8); - $add_7(importedBendpoints, new KVector_2(point)); - } - $setProperty_0(ledge, ORIGINAL_BENDPOINTS, importedBendpoints); - } - return ledge; -} - -function $transformExternalPort(this$static, elkgraph, lgraph, elkport){ - var dummy, dummyPort, elklabel, elklabel$iterator, elkportPosition, graphSize, insidePart, insidePortLabels, llabel, netFlow, portConstraints, portOffset, portSide; - elkportPosition = new KVector_1(elkport.x_0 + elkport.width_0 / 2, elkport.y_0 + elkport.height / 2); - netFlow = $calculateNetFlow_0(elkport); - portConstraints = castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); - if (!$containsKey_8($getAllProperties_0(elkport), PORT_BORDER_OFFSET)) { - elkport.x_0 == 0 && elkport.y_0 == 0?(portOffset = 0):(portOffset = calcPortOffset_0(elkport, portSide)); - $setProperty_1(elkport, PORT_BORDER_OFFSET, portOffset); - } - graphSize = new KVector_1(elkgraph.width_0, elkgraph.height); - dummy = createExternalPortDummy(elkport, portConstraints, portSide, netFlow, graphSize, elkportPosition, new KVector_1(elkport.width_0, elkport.height), castTo($getProperty(lgraph, DIRECTION), 103), lgraph); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - $setConnectedToExternalNodes(dummyPort, $isConnectedToExternalNodes(elkport)); - $setProperty_0(dummy, PORT_LABELS_PLACEMENT_1, ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0))); - insidePortLabels = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 174).contains(INSIDE_0); - for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { - llabel = $transformLabel(elklabel); - $add_3(dummyPort.labels, llabel); - if (!insidePortLabels) { - insidePart = 0; - isFixed(castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(new KVector_1(elklabel.x_0, elklabel.y_0), new KVector_1(elklabel.width_0, elklabel.height), new KVector_1(elkport.width_0, elkport.height), 0, portSide)); - switch (portSide.ordinal) { - case 2: - case 4: - llabel.size_0.x_0 = insidePart; - break; - case 1: - case 3: - llabel.size_0.y_0 = insidePart; - } - } - } - } - $setProperty_0(dummy, SPACING_LABEL_PORT_HORIZONTAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_HORIZONTAL))); - $setProperty_0(dummy, SPACING_LABEL_PORT_VERTICAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_VERTICAL))); - $setProperty_0(dummy, SPACING_LABEL_LABEL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_LABEL))); - $add_3(lgraph.layerlessNodes, dummy); - $put_6(this$static.nodeAndPortMap, elkport, dummy); -} - -function $transformLabel(elklabel){ - var newLabel; - newLabel = new LLabel_0(elklabel.text_0); - $copyProperties(newLabel, elklabel); - $setProperty_0(newLabel, ($clinit_InternalProperties_1() , ORIGIN_0), elklabel); - newLabel.size_0.x_0 = elklabel.width_0; - newLabel.size_0.y_0 = elklabel.height; - newLabel.pos.x_0 = elklabel.x_0; - newLabel.pos.y_0 = elklabel.y_0; - return newLabel; -} - -function $transformNode(this$static, elknode, lgraph){ - var direction, elklabel, elklabel$iterator, elkport, elkport$iterator, graphProperties, lnode, portConstraints; - lnode = new LNode(lgraph); - $copyProperties(lnode, elknode); - $setProperty_0(lnode, ($clinit_InternalProperties_1() , ORIGIN_0), elknode); - lnode.size_0.x_0 = elknode.width_0; - lnode.size_0.y_0 = elknode.height; - lnode.pos.x_0 = elknode.x_0; - lnode.pos.y_0 = elknode.y_0; - $add_3(lgraph.layerlessNodes, lnode); - $put_6(this$static.nodeAndPortMap, elknode, lnode); - ((!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) && $setProperty_0(lnode, COMPOUND_NODE, ($clinit_Boolean() , true)); - graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); - portConstraints = castTo($getProperty(lnode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - portConstraints == ($clinit_PortConstraints() , UNDEFINED_4)?$setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE):portConstraints != FREE && graphProperties.add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); - direction = castTo($getProperty(lgraph, DIRECTION), 103); - for (elkport$iterator = new AbstractEList$EIterator((!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , elknode.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { - elkport = castTo($doNext(elkport$iterator), 118); - $booleanValue(castToBoolean($getProperty_0(elkport, NO_LAYOUT))) || $transformPort(this$static, elkport, lnode, graphProperties, direction, portConstraints); - } - for (elklabel$iterator = new AbstractEList$EIterator((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lnode.labels, $transformLabel(elklabel)); - } - $booleanValue(castToBoolean($getProperty(lnode, COMMENT_BOX))) && graphProperties.add_2(($clinit_GraphProperties() , COMMENTS)); - if ($booleanValue(castToBoolean($getProperty(lnode, HYPERNODE)))) { - graphProperties.add_2(($clinit_GraphProperties() , HYPERNODES)); - graphProperties.add_2(HYPEREDGES); - $setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE); - } - return lnode; -} - -function $transformPort(this$static, elkport, parentLNode, graphProperties, layoutDirection, portConstraints){ - var connectionsToDescendants, elklabel, elklabel$iterator, lport, portPos, portSize; - lport = new LPort; - $copyProperties(lport, elkport); - $setSide(lport, castTo($getProperty_0(elkport, ($clinit_LayeredOptions() , PORT_SIDE)), 61)); - $setProperty_0(lport, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); - $setNode(lport, parentLNode); - portSize = lport.size_0; - portSize.x_0 = elkport.width_0; - portSize.y_0 = elkport.height; - portPos = lport.pos; - portPos.x_0 = elkport.x_0; - portPos.y_0 = elkport.y_0; - $put_6(this$static.nodeAndPortMap, elkport, lport); - connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$2$Type), new ElkGraphImporter$0methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$4$Type(elkport)); - connectionsToDescendants || (connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , new Spliterators$IteratorSpliterator(elkport.incomingEdges, 16))), new ElkGraphImporter$lambda$5$Type), new ElkGraphImporter$1methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$7$Type(elkport))); - connectionsToDescendants || (connectionsToDescendants = $anyMatch(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$8$Type)); - $setProperty_0(lport, INSIDE_CONNECTIONS, ($clinit_Boolean() , connectionsToDescendants?true:false)); - initializePort(lport, portConstraints, layoutDirection, castTo($getProperty_0(elkport, PORT_ANCHOR), 8)); - for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lport.labels, $transformLabel(elklabel)); - } - switch (layoutDirection.ordinal) { - case 2: - case 1: - (lport.side == ($clinit_PortSide() , NORTH_3) || lport.side == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - break; - case 4: - case 3: - (lport.side == ($clinit_PortSide() , EAST_2) || lport.side == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - } - return lport; -} - -function ElkGraphImporter(){ - this.nodeAndPortMap = new HashMap; -} - -function lambda$4_3(elkport_0, targetNode_1){ - return isDescendant_0(targetNode_1, $getParent_3(elkport_0)); -} - -function lambda$7_0(elkport_0, sourceNode_1){ - return isDescendant_0(sourceNode_1, $getParent_3(elkport_0)); -} - -function lambda$8(edge_0){ - return $isSelfloop(edge_0) && $booleanValue(castToBoolean($getProperty_0(edge_0, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_YO)))); -} - -defineClass(1342, 1, {}, ElkGraphImporter); -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter', 1342); -function ElkGraphImporter$0methodref$connectableShapeToNode$Type(){ -} - -defineClass(1346, 1, {}, ElkGraphImporter$0methodref$connectableShapeToNode$Type); -_.apply_0 = function apply_70(arg0){ - return connectableShapeToNode(castTo(arg0, 82)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$0methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/0methodref$connectableShapeToNode$Type', 1346); -function ElkGraphImporter$1methodref$connectableShapeToNode$Type(){ -} - -defineClass(1349, 1, {}, ElkGraphImporter$1methodref$connectableShapeToNode$Type); -_.apply_0 = function apply_71(arg0){ - return connectableShapeToNode(castTo(arg0, 82)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$1methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/1methodref$connectableShapeToNode$Type', 1349); -function ElkGraphImporter$lambda$0$Type(topLevelGraph_1){ - this.topLevelGraph_1 = topLevelGraph_1; -} - -defineClass(1343, 1, $intern_19, ElkGraphImporter$lambda$0$Type); -_.accept = function accept_62(arg0){ - $ensureDefinedPortSide(this.topLevelGraph_1, castTo(arg0, 118)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$0$Type', 1343); -function ElkGraphImporter$lambda$1$Type(finalNestedGraph_1){ - this.finalNestedGraph_1 = finalNestedGraph_1; -} - -defineClass(1344, 1, $intern_19, ElkGraphImporter$lambda$1$Type); -_.accept = function accept_63(arg0){ - $ensureDefinedPortSide(this.finalNestedGraph_1, castTo(arg0, 118)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$1$Type', 1344); -function ElkGraphImporter$lambda$2$Type(){ -} - -defineClass(1345, 1, {}, ElkGraphImporter$lambda$2$Type); -_.apply_0 = function apply_72(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator($getTargets(castTo(arg0, 79)), 16)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$2$Type', 1345); -function ElkGraphImporter$lambda$4$Type(elkport_0){ - this.elkport_0 = elkport_0; -} - -defineClass(1347, 1, $intern_39, ElkGraphImporter$lambda$4$Type); -_.test_0 = function test_24(arg0){ - return lambda$4_3(this.elkport_0, castTo(arg0, 33)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$4$Type', 1347); -function ElkGraphImporter$lambda$5$Type(){ -} - -defineClass(1348, 1, {}, ElkGraphImporter$lambda$5$Type); -_.apply_0 = function apply_73(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator($getSources(castTo(arg0, 79)), 16)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$5$Type', 1348); -function ElkGraphImporter$lambda$7$Type(elkport_0){ - this.elkport_0 = elkport_0; -} - -defineClass(1350, 1, $intern_39, ElkGraphImporter$lambda$7$Type); -_.test_0 = function test_25(arg0){ - return lambda$7_0(this.elkport_0, castTo(arg0, 33)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$7$Type', 1350); -function ElkGraphImporter$lambda$8$Type(){ -} - -defineClass(1351, 1, $intern_39, ElkGraphImporter$lambda$8$Type); -_.test_0 = function test_26(arg0){ - return lambda$8(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$8$Type', 1351); -function $clinit_ElkGraphLayoutTransferrer(){ - $clinit_ElkGraphLayoutTransferrer = emptyMethod; - ZERO_OFFSET = new KVector; -} - -function $applyEdgeLayout(ledge, routing, offset){ - var bendPoints, edgeOffset, elkedge, elkedgeSection, elklabel, junctionPoints, llabel, llabel$iterator, sourcePoint, sourcePort, targetPoint; - elkedge = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , ORIGIN_0)), 79); - if (!elkedge) { - return; - } - bendPoints = ledge.bendPoints; - edgeOffset = new KVector_2(offset); - $add_19(edgeOffset, $calculateHierarchicalOffset(ledge)); - if (isDescendant(ledge.target.owner, ledge.source.owner)) { - sourcePort = ledge.source; - sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.pos, sourcePort.anchor])); - $sub_0(sourcePoint, offset); - } - else { - sourcePoint = $getAbsoluteAnchor(ledge.source); - } - $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); - targetPoint = $getAbsoluteAnchor(ledge.target); - $getProperty(ledge, TARGET_OFFSET) != null && $add_19(targetPoint, castTo($getProperty(ledge, TARGET_OFFSET), 8)); - $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); - $offset_2(bendPoints, edgeOffset); - elkedgeSection = firstEdgeSection(elkedge, true, true); - $setIncomingShape(elkedgeSection, castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); - $setOutgoingShape(elkedgeSection, castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); - applyVectorChain(bendPoints, elkedgeSection); - for (llabel$iterator = new ArrayList$1(ledge.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { - llabel = castTo($next_7(llabel$iterator), 70); - elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); - $setWidth_0(elklabel, llabel.size_0.x_0); - $setHeight_0(elklabel, llabel.size_0.y_0); - $setLocation_1(elklabel, llabel.pos.x_0 + edgeOffset.x_0, llabel.pos.y_0 + edgeOffset.y_0); - $setProperty_1(elklabel, ($clinit_LabelDummySwitcher() , INCLUDE_LABEL), castToBoolean($getProperty(llabel, INCLUDE_LABEL))); - } - junctionPoints = castTo($getProperty(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (junctionPoints) { - $offset_2(junctionPoints, edgeOffset); - $setProperty_1(elkedge, JUNCTION_POINTS, junctionPoints); - } - else { - $setProperty_1(elkedge, JUNCTION_POINTS, null); - } - routing == ($clinit_EdgeRouting() , SPLINES)?$setProperty_1(elkedge, EDGE_ROUTING, SPLINES):$setProperty_1(elkedge, EDGE_ROUTING, null); -} - -function $applyLayout_2(this$static, lgraph){ - var edgeList, elkport, graphOrigin, lPadding, ledge, ledge$iterator, lnode, lnode$iterator, lnode$iterator0, nestedGraph, offset, padding, parentElkNode, parentLNode, port, port$iterator, portPosition, routing, sizeOptions; - graphOrigin = $getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)); - if (!instanceOf(graphOrigin, 239)) { - return; - } - parentElkNode = castTo(graphOrigin, 33); - parentLNode = lgraph.parentNode; - offset = new KVector_2(lgraph.offset); - lPadding = lgraph.padding; - offset.x_0 += lPadding.left; - offset.y_0 += lPadding.top_0; - sizeOptions = castTo($getProperty_0(parentElkNode, ($clinit_LayeredOptions() , NODE_SIZE_OPTIONS_1)), 174); - if ($containsEnum(sizeOptions, ($clinit_SizeOptions() , COMPUTE_PADDING))) { - padding = castTo($getProperty_0(parentElkNode, PADDING_1), 116); - $setBottom(padding, lPadding.bottom); - $setTop(padding, lPadding.top_0); - $setLeft(padding, lPadding.left); - $setRight(padding, lPadding.right); - } - edgeList = new ArrayList; - for (lnode$iterator0 = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator0.i < lnode$iterator0.this$01.array.length;) { - lnode = castTo($next_7(lnode$iterator0), 10); - if (instanceOf($getProperty(lnode, ORIGIN_0), 239)) { - $applyNodeLayout(lnode, offset); - } - else if (instanceOf($getProperty(lnode, ORIGIN_0), 186) && !parentLNode) { - elkport = castTo($getProperty(lnode, ORIGIN_0), 118); - portPosition = getExternalPortPosition(lgraph, lnode, elkport.width_0, elkport.height); - $setLocation_1(elkport, portPosition.x_0, portPosition.y_0); - } - for (port$iterator = new ArrayList$1(lnode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$0$Type(lnode)), new ElkGraphLayoutTransferrer$lambda$1$Type(edgeList)); - } - } - if (parentLNode) { - for (port$iterator = new ArrayList$1(parentLNode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode)), new ElkGraphLayoutTransferrer$lambda$3$Type(edgeList)); - } - } - routing = castTo($getProperty_0(parentElkNode, EDGE_ROUTING), 218); - for (ledge$iterator = new ArrayList$1(edgeList); ledge$iterator.i < ledge$iterator.this$01.array.length;) { - ledge = castTo($next_7(ledge$iterator), 17); - $applyEdgeLayout(ledge, routing, offset); - } - $applyParentNodeLayout(lgraph); - for (lnode$iterator = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { - lnode = castTo($next_7(lnode$iterator), 10); - nestedGraph = lnode.nestedGraph; - !!nestedGraph && $applyLayout_2(this$static, nestedGraph); - } -} - -function $applyNodeLayout(lnode, offset){ - var elklabel, elknode, elkport, layerID, llabel, llabel$iterator, llabel$iterator0, lport, lport$iterator, lport$iterator0, nf, nodeHasLabelPlacement, nodeID, origin_0; - elknode = castTo($getProperty(lnode, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); - nodeID = castTo($getProperty(lnode, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_POSITION_ID_0)), 19).value_0; - layerID = castTo($getProperty(lnode, LAYERING_LAYER_ID_0), 19).value_0; - $setProperty_1(elknode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(nodeID)); - $setProperty_1(elknode, LAYERING_LAYER_ID_0, valueOf_4(layerID)); - $setX_2(elknode, lnode.pos.x_0 + offset.x_0); - $setY_3(elknode, lnode.pos.y_0 + offset.y_0); - if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0 || !!lnode.nestedGraph || maskUndefined($getProperty($getGraph(lnode), NODE_PLACEMENT_STRATEGY_0)) === maskUndefined(($clinit_NodePlacementStrategy() , NETWORK_SIMPLEX_0)) && $isFlexibleSizeWhereSpacePermits(($clinit_NodeFlexibility() , (!lnode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lnode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lnode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lnode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf))) { - $setWidth_0(elknode, lnode.size_0.x_0); - $setHeight_0(elknode, lnode.size_0.y_0); - } - for (lport$iterator0 = new ArrayList$1(lnode.ports); lport$iterator0.i < lport$iterator0.this$01.array.length;) { - lport = castTo($next_7(lport$iterator0), 11); - origin_0 = $getProperty(lport, ORIGIN_0); - if (instanceOf(origin_0, 186)) { - elkport = castTo(origin_0, 118); - $setLocation_1(elkport, lport.pos.x_0, lport.pos.y_0); - $setProperty_1(elkport, PORT_SIDE, lport.side); - } - } - nodeHasLabelPlacement = castTo($getProperty(lnode, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0; - for (llabel$iterator0 = new ArrayList$1(lnode.labels); llabel$iterator0.i < llabel$iterator0.this$01.array.length;) { - llabel = castTo($next_7(llabel$iterator0), 70); - if (nodeHasLabelPlacement || castTo($getProperty(llabel, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0) { - elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); - $setDimensions_0(elklabel, llabel.size_0.x_0, llabel.size_0.y_0); - $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); - } - } - if (!isFixed(castTo($getProperty(lnode, PORT_LABELS_PLACEMENT_1), 21))) { - for (lport$iterator = new ArrayList$1(lnode.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { - lport = castTo($next_7(lport$iterator), 11); - for (llabel$iterator = new ArrayList$1(lport.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { - llabel = castTo($next_7(llabel$iterator), 70); - elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); - $setWidth_0(elklabel, llabel.size_0.x_0); - $setHeight_0(elklabel, llabel.size_0.y_0); - $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); - } - } - } -} - -function $applyParentNodeLayout(lgraph){ - var actualGraphSize, all, elknode, graphProps, sizeConstraintsIncludedPortLabels; - elknode = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); - sizeConstraintsIncludedPortLabels = castTo($getProperty_0(elknode, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS)); - if (!lgraph.parentNode) { - graphProps = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); - actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - if (graphProps.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - $setProperty_1(elknode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); - resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, false, true); - } - else { - $booleanValue(castToBoolean($getProperty_0(elknode, NODE_SIZE_FIXED_GRAPH_SIZE))) || resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, true, true); - } - } - sizeConstraintsIncludedPortLabels?$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, of_1(PORT_LABELS)):$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); -} - -function $calculateHierarchicalOffset(ledge){ - var currentGraph, representingNode, result, targetCoordinateSystem; - targetCoordinateSystem = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN)), 37); - if (targetCoordinateSystem) { - result = new KVector; - currentGraph = $getGraph(ledge.source.owner); - while (currentGraph != targetCoordinateSystem) { - representingNode = currentGraph.parentNode; - currentGraph = $getGraph(representingNode); - $add_18($add_19($add_19(result, representingNode.pos), currentGraph.offset), currentGraph.padding.left, currentGraph.padding.top_0); - } - return result; - } - return ZERO_OFFSET; -} - -function ElkGraphLayoutTransferrer(){ - $clinit_ElkGraphLayoutTransferrer(); -} - -function lambda$0_23(lnode_0, edge_1){ - $clinit_ElkGraphLayoutTransferrer(); - return !isDescendant(edge_1.target.owner, lnode_0); -} - -function lambda$2_3(parentLNode_0, edge_1){ - $clinit_ElkGraphLayoutTransferrer(); - return isDescendant(edge_1.target.owner, parentLNode_0); -} - -defineClass(1278, 1, {}, ElkGraphLayoutTransferrer); -var ZERO_OFFSET; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer', 1278); -function ElkGraphLayoutTransferrer$lambda$0$Type(lnode_0){ - this.lnode_0 = lnode_0; -} - -defineClass(1279, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$0$Type); -_.test_0 = function test_27(arg0){ - return lambda$0_23(this.lnode_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$0$Type', 1279); -function ElkGraphLayoutTransferrer$lambda$1$Type(edgeList_0){ - this.edgeList_0 = edgeList_0; -} - -defineClass(1280, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$1$Type); -_.accept = function accept_64(arg0){ - $clinit_ElkGraphLayoutTransferrer(); - $add_3(this.edgeList_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$1$Type', 1280); -function ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode_0){ - this.parentLNode_0 = parentLNode_0; -} - -defineClass(1281, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$2$Type); -_.test_0 = function test_28(arg0){ - return lambda$2_3(this.parentLNode_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$2$Type', 1281); -function ElkGraphLayoutTransferrer$lambda$3$Type(edgeList_0){ - this.edgeList_0 = edgeList_0; -} - -defineClass(1282, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$3$Type); -_.accept = function accept_65(arg0){ - $clinit_ElkGraphLayoutTransferrer(); - $add_3(this.edgeList_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$3$Type', 1282); -function getIdentifier(element){ - var container, id_0, parentId; - id_0 = element.getIdentifier(); - if (id_0) { - container = element.eContainer_0(); - if (instanceOf(container, 160)) { - parentId = getIdentifier(castTo(container, 160)); - if (parentId != null) { - return parentId + '.' + id_0; - } - } - return id_0; - } - return null; -} - -function getOriginIdentifier(element){ - var origin_0; - origin_0 = $getProperty(element, ($clinit_InternalProperties_1() , ORIGIN_0)); - if (instanceOf(origin_0, 160)) { - return getIdentifier(castTo(origin_0, 160)); - } - return null; -} - -function $process_2(layeredGraph, monitor){ - $begin(monitor, 'Node margin calculation', 1); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new CommentNodeMarginCalculator$lambda$0$Type), new CommentNodeMarginCalculator$lambda$1$Type); - $done_0(monitor); -} - -function $processComments(node){ - var bottomBoxes, bottomWidth, commentBox, commentBox$iterator, commentCommentSpacing, commentNodeSpacing, margin, maxCommentWidth, maxHeight, protrusion, topBoxes, topWidth; - margin = node.margin; - topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); - bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); - if (!topBoxes && !bottomBoxes) { - return; - } - commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); - commentNodeSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, SPACING_COMMENT_NODE))); - topWidth = 0; - if (topBoxes) { - maxHeight = 0; - for (commentBox$iterator = topBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { - commentBox = castTo(commentBox$iterator.next_1(), 10); - maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); - topWidth += commentBox.size_0.x_0; - } - topWidth += commentCommentSpacing * (topBoxes.size_1() - 1); - margin.top_0 += maxHeight + commentNodeSpacing; - } - bottomWidth = 0; - if (bottomBoxes) { - maxHeight = 0; - for (commentBox$iterator = bottomBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { - commentBox = castTo(commentBox$iterator.next_1(), 10); - maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); - bottomWidth += commentBox.size_0.x_0; - } - bottomWidth += commentCommentSpacing * (bottomBoxes.size_1() - 1); - margin.bottom += maxHeight + commentNodeSpacing; - } - maxCommentWidth = $wnd.Math.max(topWidth, bottomWidth); - if (maxCommentWidth > node.size_0.x_0) { - protrusion = (maxCommentWidth - node.size_0.x_0) / 2; - margin.left = $wnd.Math.max(margin.left, protrusion); - margin.right = $wnd.Math.max(margin.right, protrusion); - } -} - -function CommentNodeMarginCalculator(){ -} - -defineClass(1485, 1, $intern_105, CommentNodeMarginCalculator); -_.process = function process_1(layeredGraph, monitor){ - $process_2(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator', 1485); -function CommentNodeMarginCalculator$lambda$0$Type(){ -} - -defineClass(1486, 1, {}, CommentNodeMarginCalculator$lambda$0$Type); -_.apply_0 = function apply_74(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$0$Type', 1486); -function CommentNodeMarginCalculator$lambda$1$Type(){ -} - -defineClass(1487, 1, $intern_19, CommentNodeMarginCalculator$lambda$1$Type); -_.accept = function accept_66(arg0){ - $processComments(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$1$Type', 1487); -function $getBoxPort(commentBox){ - var edge, edge$iterator, edge$iterator0, nodePort, port, port$iterator; - nodePort = castTo($getProperty(commentBox, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); - for (port$iterator = new ArrayList$1(commentBox.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - $setTarget_0(edge, nodePort); - return port; - } - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $setSource_0(edge, nodePort); - return port; - } - } - return null; -} - -function $process_3(layeredGraph, monitor){ - var bottomBoxes, boxes, layer, layer$iterator, node, node$iterator, topBoxes; - $begin(monitor, 'Comment post-processing', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - boxes = new ArrayList; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); - bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); - if (!!topBoxes || !!bottomBoxes) { - $process_4(node, topBoxes, bottomBoxes); - !!topBoxes && $addAll_2(boxes, topBoxes); - !!bottomBoxes && $addAll_2(boxes, bottomBoxes); - } - } - $addAll_2(layer.nodes, boxes); - } - $done_0(monitor); -} - -function $process_4(node, topBoxes, bottomBoxes){ - var anchorInc, anchorX, baseLine, box, box$iterator, box$iterator0, boxPort, boxesWidth, commentCommentSpacing, margin, maxHeight, nodePort, nodePos, nodeSize, x_0; - nodePos = node.pos; - nodeSize = node.size_0; - margin = node.margin; - commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); - if (topBoxes) { - boxesWidth = commentCommentSpacing * (topBoxes.size_1() - 1); - maxHeight = 0; - for (box$iterator0 = topBoxes.iterator_0(); box$iterator0.hasNext_0();) { - box = castTo(box$iterator0.next_1(), 10); - boxesWidth += box.size_0.x_0; - maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); - } - x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; - baseLine = nodePos.y_0 - margin.top_0 + maxHeight; - anchorInc = nodeSize.x_0 / (topBoxes.size_1() + 1); - anchorX = anchorInc; - for (box$iterator = topBoxes.iterator_0(); box$iterator.hasNext_0();) { - box = castTo(box$iterator.next_1(), 10); - box.pos.x_0 = x_0; - box.pos.y_0 = baseLine - box.size_0.y_0; - x_0 += box.size_0.x_0 + commentCommentSpacing; - boxPort = $getBoxPort(box); - boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; - boxPort.pos.y_0 = box.size_0.y_0; - nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); - if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { - nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; - nodePort.pos.y_0 = 0; - $setNode(nodePort, node); - } - anchorX += anchorInc; - } - } - if (bottomBoxes) { - boxesWidth = commentCommentSpacing * (bottomBoxes.size_1() - 1); - maxHeight = 0; - for (box$iterator0 = bottomBoxes.iterator_0(); box$iterator0.hasNext_0();) { - box = castTo(box$iterator0.next_1(), 10); - boxesWidth += box.size_0.x_0; - maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); - } - x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; - baseLine = nodePos.y_0 + nodeSize.y_0 + margin.bottom - maxHeight; - anchorInc = nodeSize.x_0 / (bottomBoxes.size_1() + 1); - anchorX = anchorInc; - for (box$iterator = bottomBoxes.iterator_0(); box$iterator.hasNext_0();) { - box = castTo(box$iterator.next_1(), 10); - box.pos.x_0 = x_0; - box.pos.y_0 = baseLine; - x_0 += box.size_0.x_0 + commentCommentSpacing; - boxPort = $getBoxPort(box); - boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; - boxPort.pos.y_0 = 0; - nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); - if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { - nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; - nodePort.pos.y_0 = nodeSize.y_0; - $setNode(nodePort, node); - } - anchorX += anchorInc; - } - } -} - -function CommentPostprocessor(){ -} - -defineClass(1488, 1, $intern_105, CommentPostprocessor); -_.process = function process_2(layeredGraph, monitor){ - $process_3(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPostprocessor', 1488); -function $process_5(layeredGraph, monitor){ - var commentBoxCount, edge, edgeCount, inedge, inedge$iterator, node, nodeIter, oppositePort, outedge, outedge$iterator, port, port$iterator, port$iterator0, re, re$iterator, revEdges; - $begin(monitor, 'Comment pre-processing', 1); - commentBoxCount = 0; - nodeIter = new ArrayList$1(layeredGraph.layerlessNodes); - while (nodeIter.i < nodeIter.this$01.array.length) { - node = castTo($next_7(nodeIter), 10); - if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { - ++commentBoxCount; - edgeCount = 0; - edge = null; - oppositePort = null; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - edgeCount += port.incomingEdges.array.length + port.outgoingEdges.array.length; - if (port.incomingEdges.array.length == 1) { - edge = castTo($get_11(port.incomingEdges, 0), 17); - oppositePort = edge.source; - } - if (port.outgoingEdges.array.length == 1) { - edge = castTo($get_11(port.outgoingEdges, 0), 17); - oppositePort = edge.target; - } - } - if (edgeCount == 1 && oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 1 && !$booleanValue(castToBoolean($getProperty(oppositePort.owner, COMMENT_BOX)))) { - $processBox(node, edge, oppositePort, oppositePort.owner); - $remove_13(nodeIter); - } - else { - revEdges = new ArrayList; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (outedge$iterator = new ArrayList$1(port.outgoingEdges); outedge$iterator.i < outedge$iterator.this$01.array.length;) { - outedge = castTo($next_7(outedge$iterator), 17); - outedge.target.outgoingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = outedge , true); - } - for (inedge$iterator = new ArrayList$1(port.incomingEdges); inedge$iterator.i < inedge$iterator.this$01.array.length;) { - inedge = castTo($next_7(inedge$iterator), 17); - inedge.source.incomingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = inedge , true); - } - } - for (re$iterator = new ArrayList$1(revEdges); re$iterator.i < re$iterator.this$01.array.length;) { - re = castTo($next_7(re$iterator), 17); - $reverse_0(re, true); - } - } - } - } - monitor.recordLogs && $log_2(monitor, 'Found ' + commentBoxCount + ' comment boxes'); - $done_0(monitor); -} - -function $processBox(box, edge, oppositePort, realNode){ - var bottomBoxes, boxList, hasNorth, hasSouth, label_0, label$iterator, labelPos, onlyBottom, onlyTop, port1, port1$iterator, port2, port2$iterator, topBoxes, topFirst; - onlyTop = false; - onlyBottom = false; - if ($isSideFixed(castTo($getProperty(realNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - hasNorth = false; - hasSouth = false; - portLoop: for (port1$iterator = new ArrayList$1(realNode.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { - port1 = castTo($next_7(port1$iterator), 11); - for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { - port2 = castTo($next_0(port2$iterator), 11); - if (!$booleanValue(castToBoolean($getProperty(port2.owner, COMMENT_BOX)))) { - if (port1.side == ($clinit_PortSide() , NORTH_3)) { - hasNorth = true; - break portLoop; - } - if (port1.side == SOUTH_2) { - hasSouth = true; - break portLoop; - } - } - } - } - onlyTop = hasSouth && !hasNorth; - onlyBottom = hasNorth && !hasSouth; - } - if (!onlyTop && !onlyBottom && realNode.labels.array.length != 0) { - labelPos = 0; - for (label$iterator = new ArrayList$1(realNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelPos += label_0.pos.y_0 + label_0.size_0.y_0 / 2; - } - labelPos /= realNode.labels.array.length; - topFirst = labelPos >= realNode.size_0.y_0 / 2; - } - else { - topFirst = !onlyBottom; - } - if (topFirst) { - topBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); - if (!topBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, TOP_COMMENTS, boxList); - } - else if (onlyTop) { - boxList = topBoxes; - } - else { - bottomBoxes = castTo($getProperty(realNode, BOTTOM_COMMENTS), 15); - if (!bottomBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); - } - else { - topBoxes.size_1() <= bottomBoxes.size_1()?(boxList = topBoxes):(boxList = bottomBoxes); - } - } - } - else { - bottomBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , BOTTOM_COMMENTS)), 15); - if (!bottomBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); - } - else if (onlyBottom) { - boxList = bottomBoxes; - } - else { - topBoxes = castTo($getProperty(realNode, TOP_COMMENTS), 15); - if (!topBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, TOP_COMMENTS, boxList); - } - else { - bottomBoxes.size_1() <= topBoxes.size_1()?(boxList = bottomBoxes):(boxList = topBoxes); - } - } - } - boxList.add_2(box); - $setProperty_0(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT), oppositePort); - if (edge.target == oppositePort) { - $setTarget_0(edge, null); - oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); - $removeHierarchicalPortDummyNode(oppositePort); - } - else { - $setSource_0(edge, null); - oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); - } - $reset_0(edge.bendPoints); -} - -function $removeHierarchicalPortDummyNode(oppositePort){ - var dummy, layer; - dummy = castTo($getProperty(oppositePort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (dummy) { - layer = dummy.layer; - $remove_12(layer.nodes, dummy); - layer.nodes.array.length == 0 && $remove_12($getGraph(dummy).layers, layer); - } -} - -function CommentPreprocessor(){ -} - -defineClass(1489, 1, $intern_105, CommentPreprocessor); -_.process = function process_3(layeredGraph, monitor){ - $process_5(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPreprocessor', 1489); -function $process_6(graph, progressMonitor){ - var currentNode, currentNode$iterator, layer, layer$iterator, layerIndex, posIndex; - $begin(progressMonitor, 'Constraints Postprocessor', 1); - layerIndex = 0; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - posIndex = 0; - for (currentNode$iterator = new ArrayList$1(layer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { - currentNode = castTo($next_7(currentNode$iterator), 10); - if (currentNode.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - $setProperty_0(currentNode, ($clinit_LayeredOptions() , LAYERING_LAYER_ID_0), valueOf_4(layerIndex)); - $setProperty_0(currentNode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(posIndex)); - ++posIndex; - } - } - ++layerIndex; - } - $done_0(progressMonitor); -} - -function ConstraintsPostprocessor(){ -} - -defineClass(1490, 1, $intern_105, ConstraintsPostprocessor); -_.process = function process_4(graph, progressMonitor){ - $process_6(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_ConstraintsPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ConstraintsPostprocessor', 1490); -function $canReverseIncomingEdge(targetNodeLayerConstraint, edge){ - var sourceLayerConstraint, sourceNode; - if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { - return false; - } - sourceNode = edge.source.owner; - if (targetNodeLayerConstraint == ($clinit_LayerConstraint() , FIRST)) { - if (sourceNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - return false; - } - } - sourceLayerConstraint = castTo($getProperty(sourceNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (sourceLayerConstraint == FIRST_SEPARATE_0) { - return false; - } - return true; -} - -function $canReverseOutgoingEdge(sourceNodeLayerConstraint, edge){ - var targetLayerConstraint, targetNode; - if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { - return false; - } - targetNode = edge.target.owner; - if (sourceNodeLayerConstraint == ($clinit_LayerConstraint() , LAST)) { - if (targetNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - return false; - } - } - targetLayerConstraint = castTo($getProperty(targetNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (targetLayerConstraint == LAST_SEPARATE_0) { - return false; - } - return true; -} - -function $handleInnerNodes(remainingNodes){ - var allPortsReversed, e, e$iterator, e$iterator0, edgeConstraint, layerConstraint, lc, node, node$iterator, port, port$iterator; - for (node$iterator = new ArrayList$1(remainingNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - edgeConstraint = null; - switch (layerConstraint.ordinal) { - case 1: - case 2: - edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); - break; - case 3: - case 4: - edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); - } - if (edgeConstraint) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); - edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); - } - else { - if ($isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98)) && node.ports.array.length != 0) { - allPortsReversed = true; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (!(port.side == ($clinit_PortSide() , EAST_2) && port.incomingEdges.array.length - port.outgoingEdges.array.length > 0 || port.side == WEST_2 && port.incomingEdges.array.length - port.outgoingEdges.array.length < 0)) { - allPortsReversed = false; - break; - } - for (e$iterator0 = new ArrayList$1(port.outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { - e = castTo($next_7(e$iterator0), 17); - lc = castTo($getProperty(e.target.owner, LAYERING_LAYER_CONSTRAINT_0), 163); - if (lc == ($clinit_LayerConstraint() , LAST) || lc == LAST_SEPARATE_0) { - allPortsReversed = false; - break; - } - } - for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - lc = castTo($getProperty(e.source.owner, LAYERING_LAYER_CONSTRAINT_0), 163); - if (lc == ($clinit_LayerConstraint() , FIRST) || lc == FIRST_SEPARATE_0) { - allPortsReversed = false; - break; - } - } - } - allPortsReversed && $reverseEdges(node, layerConstraint, ($clinit_PortType() , UNDEFINED_0)); - } - } - } -} - -function $handleOuterNodes(layeredGraph){ - var edgeConstraint, layerConstraint, node, node$iterator, remainingNodes; - remainingNodes = new ArrayList_0(layeredGraph.layerlessNodes.array.length); - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - edgeConstraint = null; - switch (layerConstraint.ordinal) { - case 1: - case 2: - edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); - break; - case 3: - case 4: - edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); - } - if (edgeConstraint) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); - edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); - } - else { - remainingNodes.array[remainingNodes.array.length] = node; - } - } - return remainingNodes; -} - -function $process_7(layeredGraph, monitor){ - var remainingNodes; - $begin(monitor, 'Edge and layer constraint edge reversal', 1); - remainingNodes = $handleOuterNodes(layeredGraph); - $handleInnerNodes(remainingNodes); - $done_0(monitor); -} - -function $reverseEdges(node, nodeLayerConstraint, targetPortType){ - var edge, edge$array, edge$index, edge$max, incoming, outgoing, port, port$array, port$index, port$max; - for (port$array = toPortArray(node.ports) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { - port = port$array[port$index]; - if (targetPortType == ($clinit_PortType() , INPUT) || targetPortType == UNDEFINED_0) { - outgoing = toEdgeArray(port.outgoingEdges); - for (edge$array = outgoing , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $canReverseOutgoingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); - } - } - if (targetPortType == OUTPUT || targetPortType == UNDEFINED_0) { - incoming = toEdgeArray(port.incomingEdges); - for (edge$array = incoming , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $canReverseIncomingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); - } - } - } -} - -function EdgeAndLayerConstraintEdgeReverser(){ -} - -defineClass(1491, 1, $intern_105, EdgeAndLayerConstraintEdgeReverser); -_.process = function process_5(layeredGraph, monitor){ - $process_7(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EdgeAndLayerConstraintEdgeReverser_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EdgeAndLayerConstraintEdgeReverser', 1491); -function $process_8(layeredGraph, monitor){ - $begin(monitor, 'End label post-processing', 1); - $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPostprocessor$lambda$0$Type), new EndLabelPostprocessor$lambda$1$Type), new EndLabelPostprocessor$lambda$2$Type); - $done_0(monitor); -} - -function $processNode_1(node){ - var endLabelCells, labelCell, labelCell$iterator, labelCellRect, nodePos; - endLabelCells = castTo($getProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0)), 83); - nodePos = node.pos; - for (labelCell$iterator = endLabelCells.values_0().iterator_0(); labelCell$iterator.hasNext_0();) { - labelCell = castTo(labelCell$iterator.next_1(), 306); - labelCellRect = labelCell.cellRectangle; - labelCellRect.x_0 += nodePos.x_0; - labelCellRect.y_0 += nodePos.y_0; - labelCell.horizontalLayoutMode?$applyHorizontalModeLabelLayout(labelCell):$applyVerticalModeLabelLayout(labelCell); - } - $setProperty_0(node, END_LABELS_0, null); -} - -function EndLabelPostprocessor(){ -} - -function lambda$1_8(node_0){ - return node_0.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $hasProperty(node_0, ($clinit_InternalProperties_1() , END_LABELS_0)); -} - -defineClass(1492, 1, $intern_105, EndLabelPostprocessor); -_.process = function process_6(layeredGraph, monitor){ - $process_8(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor', 1492); -function EndLabelPostprocessor$lambda$0$Type(){ -} - -defineClass(1493, 1, {}, EndLabelPostprocessor$lambda$0$Type); -_.apply_0 = function apply_75(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$0$Type', 1493); -function EndLabelPostprocessor$lambda$1$Type(){ -} - -defineClass(1494, 1, $intern_39, EndLabelPostprocessor$lambda$1$Type); -_.test_0 = function test_29(arg0){ - return lambda$1_8(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$1$Type', 1494); -function EndLabelPostprocessor$lambda$2$Type(){ -} - -defineClass(1495, 1, $intern_19, EndLabelPostprocessor$lambda$2$Type); -_.accept = function accept_67(arg0){ - $processNode_1(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$2$Type', 1495); -function $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing){ - var nodeMargin, nodeSize; - nodeSize = node.size_0; - nodeMargin = node.margin; - switch (portSide.ordinal) { - case 1: - return -nodeMargin.top_0 - edgeLabelSpacing; - case 3: - return nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; - case 2: - return nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; - case 4: - return -nodeMargin.left - edgeLabelSpacing; - default:return 0; - } -} - -function $createConfiguredLabelCell(labels, labelLabelSpacing, verticalLayout){ - var label_0, label$iterator, labelCell, labelCellRect, padding, padding0; - if (!labels || labels.array.length == 0) { - return null; - } - labelCell = new LabelCell_1(labelLabelSpacing, !verticalLayout); - for (label$iterator = new ArrayList$1(labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $addLabel(labelCell, ($clinit_LGraphAdapters() , new LGraphAdapters$LLabelAdapter(label_0))); - } - labelCellRect = labelCell.cellRectangle; - labelCellRect.height = (padding0 = labelCell.padding , labelCell.minimumContentAreaSize.y_0 + padding0.top_0 + padding0.bottom); - labelCellRect.width_0 = (padding = labelCell.padding , labelCell.minimumContentAreaSize.x_0 + padding.left + padding.right); - return labelCell; -} - -function $lambda$1(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5, node_3){ - $processNode_2(node_3, edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5); -} - -function $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout){ - var all, port, port$iterator, portSidesWithLabels; - portSidesWithLabels = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (portLabelCells[port.id_0]) { - $placeLabels_0(port, portLabelCells[port.id_0], edgeLabelSpacing); - $add_5(portSidesWithLabels, port.side); - } - } - if (verticalLayout) { - $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , EAST_2), 2 * labelLabelSpacing, edgeLabelSpacing); - $removeLabelOverlaps(node, portLabelCells, WEST_2, 2 * labelLabelSpacing, edgeLabelSpacing); - } - else { - $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , NORTH_3), 2 * labelLabelSpacing, edgeLabelSpacing); - $removeLabelOverlaps(node, portLabelCells, SOUTH_2, 2 * labelLabelSpacing, edgeLabelSpacing); - } -} - -function $placeLabels_0(port, labelCell, edgeLabelSpacing){ - var labelCellRect, nodeMargin, nodeSize, portAnchor, portPos; - labelCellRect = labelCell.cellRectangle; - nodeSize = port.owner.size_0; - nodeMargin = port.owner.margin; - portPos = port.pos; - portAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [portPos, port.anchor])); - switch (port.side.ordinal) { - case 1: - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - labelCellRect.y_0 = -nodeMargin.top_0 - edgeLabelSpacing - labelCellRect.height; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; - } - else { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - break; - case 2: - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - labelCellRect.x_0 = nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; - } - else { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); - labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - break; - case 3: - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); - labelCellRect.y_0 = nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; - } - else { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - break; - case 4: - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - labelCellRect.x_0 = -nodeMargin.left - edgeLabelSpacing - labelCellRect.width_0; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; - } - else { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); - labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - } -} - -function $portSideToOverlapRemovalDirection(portSide){ - switch (portSide.ordinal) { - case 1: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP; - case 3: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN; - case 2: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , RIGHT_0; - case 4: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , LEFT_0; - default:return null; - } -} - -function $process_9(layeredGraph, monitor){ - var edgeLabelSpacing, labelLabelSpacing, verticalLayout; - $begin(monitor, 'End label pre-processing', 1); - edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); - verticalLayout = $isVertical(castTo($getProperty(layeredGraph, DIRECTION), 103)); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPreprocessor$lambda$0$Type), new EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing, labelLabelSpacing, verticalLayout)); - $done_0(monitor); -} - -function $processNode_2(node, edgeLabelSpacing, labelLabelSpacing, verticalLayout){ - var index_0, port, portCount, portIndex, portLabelCells, portToLabelCellMap; - portCount = node.ports.array.length; - portLabelCells = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit, $intern_93, 306, portCount, 0, 1); - for (portIndex = 0; portIndex < portCount; portIndex++) { - port = castTo($get_11(node.ports, portIndex), 11); - port.id_0 = portIndex; - portLabelCells[portIndex] = $createConfiguredLabelCell(gatherLabels(port), labelLabelSpacing, verticalLayout); - } - $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout); - portToLabelCellMap = new HashMap; - for (index_0 = 0; index_0 < portLabelCells.length; index_0++) { - !!portLabelCells[index_0] && $put_6(portToLabelCellMap, castTo($get_11(node.ports, index_0), 11), portLabelCells[index_0]); - } - if (portToLabelCellMap.hashCodeMap.size_0 + portToLabelCellMap.stringMap.size_0 != 0) { - $setProperty_0(node, ($clinit_InternalProperties_1() , END_LABELS_0), portToLabelCellMap); - $updateNodeMargins(node, portLabelCells); - } -} - -function $removeLabelOverlaps(node, portLabelCells, portSide, labelLabelSpacing, edgeLabelSpacing){ - var labelCellRect, overlapRemover, port, port$iterator; - overlapRemover = $withStartCoordinate($withGap(createForDirection($portSideToOverlapRemovalDirection(portSide)), labelLabelSpacing), $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing)); - for (port$iterator = $getPorts_1(node, portSide).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if (portLabelCells[port.id_0]) { - labelCellRect = portLabelCells[port.id_0].cellRectangle; - $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(labelCellRect, $importRectangle(overlapRemover, labelCellRect))); - } - } - $removeOverlaps_0(overlapRemover); -} - -function $updateNodeMargins(node, labelCells){ - var labelCell, labelCell$array, labelCell$index, labelCell$max, nodeMargin, nodeMarginRectangle, nodeSize; - nodeMargin = node.margin; - nodeSize = node.size_0; - nodeMarginRectangle = new ElkRectangle_0(-nodeMargin.left, -nodeMargin.top_0, nodeMargin.left + nodeSize.x_0 + nodeMargin.right, nodeMargin.top_0 + nodeSize.y_0 + nodeMargin.bottom); - for (labelCell$array = labelCells , labelCell$index = 0 , labelCell$max = labelCell$array.length; labelCell$index < labelCell$max; ++labelCell$index) { - labelCell = labelCell$array[labelCell$index]; - !!labelCell && $union(nodeMarginRectangle, labelCell.cellRectangle); - } - nodeMargin.left = -nodeMarginRectangle.x_0; - nodeMargin.top_0 = -nodeMarginRectangle.y_0; - nodeMargin.right = nodeMarginRectangle.width_0 - nodeMargin.left - nodeSize.x_0; - nodeMargin.bottom = nodeMarginRectangle.height - nodeMargin.top_0 - nodeSize.y_0; -} - -function EndLabelPreprocessor(){ -} - -function gatherLabels(port){ - var dummyNode, dummyPort, dummyPort$iterator, labels, maxEdgeThickness; - labels = new ArrayList; - maxEdgeThickness = gatherLabels_0(port, labels); - dummyNode = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (dummyNode) { - for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { - dummyPort = castTo($next_7(dummyPort$iterator), 11); - maskUndefined($getProperty(dummyPort, ORIGIN_0)) === maskUndefined(port) && (maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, gatherLabels_0(dummyPort, labels))); - } - } - labels.array.length == 0 || $setProperty_0(port, MAX_EDGE_THICKNESS, maxEdgeThickness); - return maxEdgeThickness != -1?labels:null; -} - -function gatherLabels_0(port, targetList){ - var incidentEdge, incidentEdge$iterator, label_0, label$iterator, labels, maxEdgeThickness; - maxEdgeThickness = -1; - labels = new LinkedList; - for (incidentEdge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(incidentEdge$iterator.firstIterator) || $hasNext_3(incidentEdge$iterator.secondIterator);) { - incidentEdge = castTo($hasNext_3(incidentEdge$iterator.firstIterator)?$next_7(incidentEdge$iterator.firstIterator):$next_7(incidentEdge$iterator.secondIterator), 17); - maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, $doubleValue(castToDouble($getProperty(incidentEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0))))); - incidentEdge.source == port?$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$2$Type), new EndLabelPreprocessor$lambda$3$Type(labels)):$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$4$Type), new EndLabelPreprocessor$lambda$5$Type(labels)); - for (label$iterator = $listIterator_2(labels, 0); label$iterator.currentNode != label$iterator.this$01.tail;) { - label_0 = castTo($next_10(label$iterator), 70); - $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, incidentEdge); - } - $addAll_2(targetList, labels); - $reset_0(labels); - } - return maxEdgeThickness; -} - -defineClass(1496, 1, $intern_105, EndLabelPreprocessor); -_.process = function process_7(layeredGraph, monitor){ - $process_9(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor', 1496); -function EndLabelPreprocessor$lambda$0$Type(){ -} - -defineClass(1497, 1, {}, EndLabelPreprocessor$lambda$0$Type); -_.apply_0 = function apply_76(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$0$Type', 1497); -function EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5){ - this.edgeLabelSpacing_1 = edgeLabelSpacing_1; - this.labelLabelSpacing_3 = labelLabelSpacing_3; - this.verticalLayout_5 = verticalLayout_5; -} - -defineClass(1498, 1, $intern_19, EndLabelPreprocessor$lambda$1$Type); -_.accept = function accept_68(arg0){ - $lambda$1(this.edgeLabelSpacing_1, this.labelLabelSpacing_3, this.verticalLayout_5, castTo(arg0, 10)); -} -; -_.edgeLabelSpacing_1 = 0; -_.labelLabelSpacing_3 = 0; -_.verticalLayout_5 = false; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$1$Type', 1498); -function EndLabelPreprocessor$lambda$2$Type(){ -} - -defineClass(1499, 1, $intern_39, EndLabelPreprocessor$lambda$2$Type); -_.test_0 = function test_30(arg0){ - return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$2$Type', 1499); -function EndLabelPreprocessor$lambda$3$Type(labels_0){ - this.labels_0 = labels_0; -} - -defineClass(1500, 1, $intern_19, EndLabelPreprocessor$lambda$3$Type); -_.accept = function accept_69(arg0){ - $add_7(this.labels_0, castTo(arg0, 70)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$3$Type', 1500); -function EndLabelPreprocessor$lambda$4$Type(){ -} - -defineClass(1501, 1, $intern_39, EndLabelPreprocessor$lambda$4$Type); -_.test_0 = function test_31(arg0){ - return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$4$Type', 1501); -function EndLabelPreprocessor$lambda$5$Type(labels_0){ - this.labels_0 = labels_0; -} - -defineClass(1502, 1, $intern_19, EndLabelPreprocessor$lambda$5$Type); -_.accept = function accept_70(arg0){ - $add_7(this.labels_0, castTo(arg0, 70)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$5$Type', 1502); -function $clinit_EndLabelSorter(){ - $clinit_EndLabelSorter = emptyMethod; - LABEL_GROUP_COMPARATOR = new EndLabelSorter$1; -} - -function $createLabelGroups(portLabelCell){ - var edge, edgeToGroupMap, label_0, label$iterator; - edgeToGroupMap = new HashMap; - for (label$iterator = new ArrayList$1(portLabelCell.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - edge = castTo(label_0.getProperty(($clinit_InternalProperties_1() , END_LABEL_EDGE)), 17); - !!$getEntry_0(edgeToGroupMap.hashCodeMap, edge) || $put_6(edgeToGroupMap, edge, new EndLabelSorter$LabelGroup(edge)); - $add_3(castTo(getEntryValueOrNull($getEntry_0(edgeToGroupMap.hashCodeMap, edge)), 456).labels, label_0); - } - return new ArrayList_1(new AbstractMap$2(edgeToGroupMap)); -} - -function $initialize_2(lGraph){ - var layer, layer$iterator, nextElementID, node, node$iterator, port, port$iterator; - nextElementID = 0; - for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = nextElementID++; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.id_0 = nextElementID++; - } - } - } -} - -function $needsSorting(port){ - var edgesWithEndLabels, headLabels, inEdge, inEdge$iterator, outEdge, outEdge$iterator, tailLabels; - edgesWithEndLabels = 0; - for (inEdge$iterator = new ArrayList$1(port.incomingEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { - inEdge = castTo($next_7(inEdge$iterator), 17); - headLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(inEdge.labels, 16)), new EndLabelSorter$lambda$3$Type); - headLabels && ++edgesWithEndLabels; - } - for (outEdge$iterator = new ArrayList$1(port.outgoingEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { - outEdge = castTo($next_7(outEdge$iterator), 17); - tailLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(outEdge.labels, 16)), new EndLabelSorter$lambda$4$Type); - tailLabels && ++edgesWithEndLabels; - } - return edgesWithEndLabels >= 2; -} - -function $process_10(layeredGraph, monitor){ - $begin(monitor, 'Sort end labels', 1); - $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelSorter$lambda$0$Type), new EndLabelSorter$lambda$1$Type), new EndLabelSorter$lambda$2$Type); - $done_0(monitor); -} - -function $processNode_3(node){ - var initializeMethodCalled, labelCellMap, port, port$iterator; - initializeMethodCalled = false; - if ($hasProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0))) { - labelCellMap = castTo($getProperty(node, END_LABELS_0), 83); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if ($needsSorting(port)) { - if (!initializeMethodCalled) { - $initialize_2($getGraph(node)); - initializeMethodCalled = true; - } - $sort_1(castTo(labelCellMap.get_3(port), 306)); - } - } - } -} - -function $sort_1(portLabelCell){ - var group, group$iterator, labelGroups, portLabelCellLabels; - labelGroups = $createLabelGroups(portLabelCell); - $sort(labelGroups, LABEL_GROUP_COMPARATOR); - portLabelCellLabels = portLabelCell.labels; - portLabelCellLabels.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (group$iterator = new ArrayList$1(labelGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 456); - $addAll_2(portLabelCellLabels, group.labels); - } -} - -function EndLabelSorter(){ - $clinit_EndLabelSorter(); -} - -defineClass(1551, 1, $intern_105, EndLabelSorter); -_.process = function process_8(layeredGraph, monitor){ - $process_10(castTo(layeredGraph, 37), monitor); -} -; -var LABEL_GROUP_COMPARATOR; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter', 1551); -function $compare_11(group1, group2){ - var sourcePortDiff, targetNodeDiff; - sourcePortDiff = compare_5(group1.edge.source.id_0, group2.edge.source.id_0); - if (sourcePortDiff != 0) { - return sourcePortDiff; - } - targetNodeDiff = compare_5(group1.edge.target.owner.id_0, group2.edge.target.owner.id_0); - if (targetNodeDiff != 0) { - return targetNodeDiff; - } - return compare_5(group2.edge.target.id_0, group1.edge.target.id_0); -} - -function EndLabelSorter$1(){ -} - -defineClass(1552, 1, $intern_88, EndLabelSorter$1); -_.compare_1 = function compare_42(group1, group2){ - return $compare_11(castTo(group1, 456), castTo(group2, 456)); -} -; -_.equals_0 = function equals_106(other){ - return this === other; -} -; -_.reversed = function reversed_34(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/1', 1552); -function EndLabelSorter$LabelGroup(edge){ - this.labels = new ArrayList; - $addAll_2(this.labels, this.labels); - this.edge = edge; -} - -defineClass(456, 1, {456:1}, EndLabelSorter$LabelGroup); -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$LabelGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/LabelGroup', 456); -function EndLabelSorter$lambda$0$Type(){ -} - -defineClass(1553, 1, {}, EndLabelSorter$lambda$0$Type); -_.apply_0 = function apply_77(arg0){ - return $clinit_EndLabelSorter() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$0$Type', 1553); -function EndLabelSorter$lambda$1$Type(){ -} - -defineClass(1554, 1, $intern_39, EndLabelSorter$lambda$1$Type); -_.test_0 = function test_32(arg0){ - return $clinit_EndLabelSorter() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$1$Type', 1554); -function EndLabelSorter$lambda$2$Type(){ -} - -defineClass(1555, 1, $intern_19, EndLabelSorter$lambda$2$Type); -_.accept = function accept_71(arg0){ - $processNode_3(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$2$Type', 1555); -function EndLabelSorter$lambda$3$Type(){ -} - -defineClass(1556, 1, $intern_39, EndLabelSorter$lambda$3$Type); -_.test_0 = function test_33(arg0){ - return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$3$Type', 1556); -function EndLabelSorter$lambda$4$Type(){ -} - -defineClass(1557, 1, $intern_39, EndLabelSorter$lambda$4$Type); -_.test_0 = function test_34(arg0){ - return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$4$Type', 1557); -function $absMin(d1, d2){ - return $wnd.Math.abs(d1) < $wnd.Math.abs(d2)?d1:d2; -} - -function $calculateBezierBendPoints(this$static, edgeChain, survivingEdge){ - var addMidPoint, allCP, currentBendPoints, currentEdge, edge, edgeIterator, halfway, lastCP, northSouthCP, nt, nubSpline, sourcePort, targetPort, y_0, first, second, v, v2, straightenBeginning, iter, last, secondLast, straightenEnding; - if (edgeChain.isEmpty()) { - return; - } - allCP = new KVectorChain; - edge = survivingEdge?survivingEdge:castTo(edgeChain.get_0(0), 17); - sourcePort = edge.source; - $clinit_SplineEdgeRouter(); - nt = sourcePort.owner.type_0; - if (!(nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT)) { - throw toJs(new IllegalArgumentException_0('The target node of the edge must be a normal node or a northSouthPort.')); - } - $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor]))); - if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(sourcePort.side)) { - y_0 = $doubleValue(castToDouble($getProperty(sourcePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); - northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).x_0, y_0); - $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); - } - lastCP = null; - addMidPoint = false; - edgeIterator = edgeChain.iterator_0(); - while (edgeIterator.hasNext_0()) { - currentEdge = castTo(edgeIterator.next_1(), 17); - currentBendPoints = currentEdge.bendPoints; - if (currentBendPoints.size_0 != 0) { - if (addMidPoint) { - halfway = $scale($add_19(lastCP, (checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.header.next_0.value_0, 8))), 0.5); - $addNode_0(allCP, halfway, allCP.tail.prev, allCP.tail); - addMidPoint = false; - } - else { - addMidPoint = true; - } - lastCP = $clone_0((checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.tail.prev.value_0, 8))); - $addAll(allCP, currentBendPoints); - $reset_0(currentBendPoints); - } - } - targetPort = edge.target; - if (SIDES_NORTH_SOUTH.contains(targetPort.side)) { - y_0 = $doubleValue(castToDouble($getProperty(targetPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); - northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).x_0, y_0); - $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); - } - $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor]))); - this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , CONSERVATIVE) && (first = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.header.next_0.value_0, 8)) , second = castTo($get_7(allCP, 1), 8) , v = new KVector_0(portSideToDirection(sourcePort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(second.x_0, second.y_0), first) , straightenBeginning = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenBeginning, first) , iter = $listIterator_2(allCP, 1) , $add_8(iter, straightenBeginning) , last = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.tail.prev.value_0, 8)) , secondLast = castTo($get_7(allCP, allCP.size_0 - 2), 8) , v = new KVector_0(portSideToDirection(targetPort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(secondLast.x_0, secondLast.y_0), last) , straightenEnding = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenEnding, last) , $add_0(allCP, allCP.size_0 - 1, straightenEnding) , undefined); - nubSpline = new NubSpline(allCP); - $addAll(edge.bendPoints, $getBezierCP(nubSpline)); -} - -function $calculateControlPoints(this$static, segment){ - var edge, edge$iterator, ei, sloppy, xStartPos, xEndPos, halfway; - if (segment.handled) { - return; - } - segment.handled = true; - for (edge$iterator = segment.edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 17); - if (segment.isStraight && segment.edges.map_0.size_1() <= 1) { - xStartPos = segment.boundingBox.x_0; - xEndPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; - halfway = new KVector_1(xStartPos + (xEndPos - xStartPos) / 2, segment.centerControlPointY); - $add_7(castTo(segment.edges.map_0.keySet_0().iterator_0().next_1(), 17).bendPoints, halfway); - continue; - } - ei = castTo($get_10(segment.edgeInformation, edge), 459); - if (ei.invertedLeft || ei.invertedRight) { - $calculateControlPointsInvertedEdge(this$static, edge, segment); - continue; - } - sloppy = this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , SLOPPY) && (ei.normalSourceNode || ei.normalTargetNode) && $segmentAllowsSloppyRouting(this$static, segment) && segment.edges.map_0.size_1() <= 1; - sloppy?$calculateControlPointsSloppy(edge, segment):$calculateControlPointsConservative(this$static, edge, segment); - } - segment.inverseOrder && $forEach_0(segment.edges, new FinalSplineBendpointsCalculator$lambda$5$Type); -} - -function $calculateControlPointsConservative(this$static, edge, containingSegment){ - var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; - startXPos = containingSegment.boundingBox.x_0; - endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; - ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); - ySourceAnchor = ei.startY; - yTargetAnchor = ei.endY; - sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); - targetStraightCP = new KVector_1(endXPos, yTargetAnchor); - centerXPos = startXPos; - containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); - centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; - sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); - targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); - isHyperedge = containingSegment.edges.map_0.size_1() > 1; - if (isHyperedge) { - center = new KVector_1(centerXPos, containingSegment.centerControlPointY); - $add_7(edge.bendPoints, center); - } - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); -} - -function $calculateControlPointsInvertedEdge(this$static, edge, containingSegment){ - var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; - startXPos = containingSegment.boundingBox.x_0; - endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; - ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); - ySourceAnchor = ei.startY; - yTargetAnchor = ei.endY; - ei.invertedLeft?(sourceStraightCP = new KVector_1(endXPos, ySourceAnchor)):(sourceStraightCP = new KVector_1(startXPos, ySourceAnchor)); - ei.invertedRight?(targetStraightCP = new KVector_1(startXPos, yTargetAnchor)):(targetStraightCP = new KVector_1(endXPos, yTargetAnchor)); - centerXPos = startXPos; - containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); - centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; - sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); - targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); - isHyperedge = containingSegment.edges.map_0.size_1() > 1; - if (isHyperedge) { - center = new KVector_1(centerXPos, containingSegment.centerControlPointY); - $add_7(edge.bendPoints, center); - } - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); -} - -function $calculateControlPointsSloppy(edge, containingSegment){ - var approx, box, centerXPos, centerYPos, edgePointsDownwards, ei, endXPos, needToCheckSrc, needToCheckTgt, neighbor, neighborIndex, shortCutSource, shortCutTarget, sourceStraightCP, sourceVerticalCP, src_0, startXPos, targetStraightCP, targetVerticalCP, tgt, v1, v2, v3, ySourceAnchor, yTargetAnchor; - ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); - startXPos = containingSegment.boundingBox.x_0; - endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; - ySourceAnchor = ei.startY; - yTargetAnchor = ei.endY; - edgePointsDownwards = ySourceAnchor < yTargetAnchor; - sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); - targetStraightCP = new KVector_1(endXPos, yTargetAnchor); - centerXPos = (startXPos + endXPos) / 2; - sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); - targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); - centerYPos = $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor); - v1 = $getAbsoluteAnchor(containingSegment.sourcePort); - v2 = new KVector_1(centerXPos, centerYPos); - v3 = $getAbsoluteAnchor(containingSegment.targetPort); - approx = approximateBezierSegment(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [v1, v2, v3])); - shortCutSource = false; - src_0 = containingSegment.sourcePort.owner; - if (!!src_0 && !!src_0.layer && ei.normalSourceNode) { - needToCheckSrc = edgePointsDownwards && src_0.id_0 < src_0.layer.nodes.array.length - 1 || !edgePointsDownwards && src_0.id_0 > 0; - if (needToCheckSrc) { - if (needToCheckSrc) { - neighborIndex = src_0.id_0; - edgePointsDownwards?++neighborIndex:--neighborIndex; - neighbor = castTo($get_11(src_0.layer.nodes, neighborIndex), 10); - box = $nodeToBoundingBox(neighbor); - shortCutSource = !(intersects_0(box, v1, approx[0]) || contains_50(box, v1, approx[0])); - } - } - else { - shortCutSource = true; - } - } - shortCutTarget = false; - tgt = containingSegment.targetPort.owner; - if (!!tgt && !!tgt.layer && ei.normalTargetNode) { - needToCheckTgt = edgePointsDownwards && tgt.id_0 > 0 || !edgePointsDownwards && tgt.id_0 < tgt.layer.nodes.array.length - 1; - if (needToCheckTgt) { - neighborIndex = tgt.id_0; - edgePointsDownwards?--neighborIndex:++neighborIndex; - neighbor = castTo($get_11(tgt.layer.nodes, neighborIndex), 10); - box = $nodeToBoundingBox(neighbor); - shortCutTarget = !(intersects_0(box, approx[0], v3) || contains_50(box, approx[0], v3)); - } - else { - shortCutTarget = true; - } - } - shortCutSource && shortCutTarget && $add_7(edge.bendPoints, v2); - shortCutSource || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); - shortCutTarget || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); -} - -function $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor){ - var centerYPos, degreeDiff, indegree, outdegree, port, port$iterator; - indegree = 0; - outdegree = 0; - if (edge.source) { - for (port$iterator = new ArrayList$1(edge.target.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - indegree += port.incomingEdges.array.length; - } - } - else { - indegree = 1; - } - if (edge.target) { - for (port$iterator = new ArrayList$1(edge.source.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - outdegree += port.outgoingEdges.array.length; - } - } - else { - outdegree = 1; - } - degreeDiff = round_int(signum(outdegree - indegree)); - centerYPos = (yTargetAnchor + ySourceAnchor) / 2 + (yTargetAnchor - ySourceAnchor) * (0.4 * degreeDiff); - return centerYPos; -} - -function $indexNodesPerLayer(graph){ - var index_0, l, l$iterator, n, n$iterator; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - index_0 = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = index_0++; - } - } -} - -function $nodeToBoundingBox(node){ - var m, pos, size_0; - pos = node.pos; - size_0 = node.size_0; - m = node.margin; - return new ElkRectangle_0(pos.x_0 - m.left, pos.y_0 - m.top_0, size_0.x_0 + (m.left + m.right), size_0.y_0 + (m.top_0 + m.bottom)); -} - -function $process_11(this$static, graph){ - var e, e$iterator, e$iterator0, edgeChain, spline, startEdges, survivingEdge; - this$static.edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); - this$static.edgeNodeSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - this$static.splineRoutingMode = castTo($getProperty(graph, EDGE_ROUTING_SPLINES_MODE_0), 336); - this$static.compactionStrategy = castTo($getProperty(graph, COMPACTION_POST_COMPACTION_STRATEGY_0), 275); - $indexNodesPerLayer(graph); - startEdges = castTo($collect_1($filter($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new FinalSplineBendpointsCalculator$lambda$0$Type), new FinalSplineBendpointsCalculator$lambda$1$Type), new FinalSplineBendpointsCalculator$lambda$2$Type), new FinalSplineBendpointsCalculator$lambda$3$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - for (e$iterator0 = startEdges.iterator_0(); e$iterator0.hasNext_0();) { - e = castTo(e$iterator0.next_1(), 17); - spline = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); - spline.forEach_0(new FinalSplineBendpointsCalculator$lambda$4$Type(this$static)); - $setProperty_0(e, SPLINE_ROUTE_START, null); - } - for (e$iterator = startEdges.iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - survivingEdge = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_SURVIVING_EDGE)), 17); - edgeChain = castTo($getProperty(e, SPLINE_EDGE_CHAIN), 15); - $calculateBezierBendPoints(this$static, edgeChain, survivingEdge); - $setProperty_0(e, SPLINE_EDGE_CHAIN, null); - } -} - -function $segmentAllowsSloppyRouting(this$static, segment){ - var endXPos, n, nodeSegmentDistance, startXPos, t; - if (this$static.compactionStrategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { - return true; - } - startXPos = segment.boundingBox.x_0; - endXPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; - if (segment.initialSegment) { - n = segment.sourceNode; - t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; - nodeSegmentDistance = startXPos - (n.pos.x_0 + n.size_0.x_0); - if (nodeSegmentDistance > t) { - return false; - } - } - if (segment.lastSegment) { - n = segment.targetNode; - t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; - nodeSegmentDistance = n.pos.x_0 - endXPos; - if (nodeSegmentDistance > t) { - return false; - } - } - return true; -} - -function FinalSplineBendpointsCalculator(){ -} - -defineClass(1503, 1, $intern_105, FinalSplineBendpointsCalculator); -_.process = function process_9(graph, progressMonitor){ - $process_11(this, castTo(graph, 37)); -} -; -_.edgeEdgeSpacing = 0; -_.edgeNodeSpacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator', 1503); -function FinalSplineBendpointsCalculator$lambda$0$Type(){ -} - -defineClass(1504, 1, {}, FinalSplineBendpointsCalculator$lambda$0$Type); -_.apply_0 = function apply_78(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$0$Type', 1504); -function FinalSplineBendpointsCalculator$lambda$1$Type(){ -} - -defineClass(1505, 1, {}, FinalSplineBendpointsCalculator$lambda$1$Type); -_.apply_0 = function apply_79(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$1$Type', 1505); -function FinalSplineBendpointsCalculator$lambda$2$Type(){ -} - -defineClass(1506, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$2$Type); -_.test_0 = function test_35(arg0){ - return !$isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$2$Type', 1506); -function FinalSplineBendpointsCalculator$lambda$3$Type(){ -} - -defineClass(1507, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$3$Type); -_.test_0 = function test_36(arg0){ - return $hasProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$3$Type', 1507); -function FinalSplineBendpointsCalculator$lambda$4$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1508, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$4$Type); -_.accept = function accept_72(arg0){ - $calculateControlPoints(this.$$outer_0, castTo(arg0, 128)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$4$Type', 1508); -function FinalSplineBendpointsCalculator$lambda$5$Type(){ -} - -defineClass(1509, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$5$Type); -_.accept = function accept_73(arg0){ - reverse_2(castTo(arg0, 17).bendPoints); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$5$Type', 1509); -function $getMirroredPortSideX(side){ - switch (side.ordinal) { - case 2: - return $clinit_PortSide() , WEST_2; - case 4: - return $clinit_PortSide() , EAST_2; - default:return side; - } -} - -function $getMirroredPortSideY(side){ - switch (side.ordinal) { - case 1: - return $clinit_PortSide() , SOUTH_2; - case 3: - return $clinit_PortSide() , NORTH_3; - default:return side; - } -} - -function $mirrorAllX(layeredGraph, nodes){ - $mirrorX(nodes, layeredGraph); - $mirrorX_1(layeredGraph.padding); - $mirrorX_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); -} - -function $mirrorAllY(layeredGraph, nodes){ - $mirrorY(nodes, layeredGraph); - $mirrorY_1(layeredGraph.padding); - $mirrorY_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); -} - -function $mirrorInLayerConstraintY(node){ - switch (castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303).ordinal) { - case 1: - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); - break; - case 2: - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); - } -} - -function $mirrorLayerConstraintX(node){ - switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 1: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); - break; - case 2: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); - break; - case 3: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); - break; - case 4: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); - } -} - -function $mirrorNodeLabelPlacementX(shape_0){ - var oldPlacement; - if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { - return; - } - oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); - if (oldPlacement.contains(($clinit_NodeLabelPlacement() , H_LEFT_0))) { - oldPlacement.remove_1(H_LEFT_0); - oldPlacement.add_2(H_RIGHT_0); - } - else if (oldPlacement.contains(H_RIGHT_0)) { - oldPlacement.remove_1(H_RIGHT_0); - oldPlacement.add_2(H_LEFT_0); - } -} - -function $mirrorNodeLabelPlacementY(shape_0){ - var oldPlacement; - if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { - return; - } - oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); - if (oldPlacement.contains(($clinit_NodeLabelPlacement() , V_TOP_0))) { - oldPlacement.remove_1(V_TOP_0); - oldPlacement.add_2(V_BOTTOM_0); - } - else if (oldPlacement.contains(V_BOTTOM_0)) { - oldPlacement.remove_1(V_BOTTOM_0); - oldPlacement.add_2(V_TOP_0); - } -} - -function $mirrorX(nodes, graph){ - var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; - offset = 0; - if (graph.size_0.x_0 == 0) { - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - offset = $wnd.Math.max(offset, node.pos.x_0 + node.size_0.x_0 + node.margin.right); - } - } - else { - offset = graph.size_0.x_0 - graph.offset.x_0; - } - offset -= graph.offset.x_0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $mirrorX_0(node.pos, offset - node.size_0.x_0); - $mirrorX_1(node.padding); - $mirrorNodeLabelPlacementX(node); - (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorX_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.x_0); - switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { - case 1: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); - break; - case 2: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); - } - nodeSize = node.size_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $mirrorX_0(port.pos, nodeSize.x_0 - port.size_0.x_0); - $mirrorX_0(port.anchor, port.size_0.x_0); - $setSide(port, $getMirroredPortSideX(port.side)); - index_0 = castTo($getProperty(port, PORT_INDEX), 19); - !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - bendPoint.x_0 = offset - bendPoint.x_0; - } - junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); - if (junctionPoints) { - for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - jp.x_0 = offset - jp.x_0; - } - } - for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator0), 70); - $mirrorX_0(label_0.pos, offset - label_0.size_0.x_0); - } - } - for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator1), 70); - $mirrorX_0(label_0.pos, port.size_0.x_0 - label_0.size_0.x_0); - } - } - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideX(castTo($getProperty(node, EXT_PORT_SIDE), 61))); - $mirrorLayerConstraintX(node); - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $mirrorNodeLabelPlacementX(label_0); - $mirrorX_0(label_0.pos, nodeSize.x_0 - label_0.size_0.x_0); - } - } -} - -function $mirrorX_0(v, offset){ - v.x_0 = offset - v.x_0; -} - -function $mirrorX_1(spacing){ - var oldLeft, oldRight; - oldLeft = spacing.left; - oldRight = spacing.right; - spacing.left = oldRight; - spacing.right = oldLeft; -} - -function $mirrorY(nodes, graph){ - var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; - offset = 0; - if (graph.size_0.y_0 == 0) { - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - offset = $wnd.Math.max(offset, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); - } - } - else { - offset = graph.size_0.y_0 - graph.offset.y_0; - } - offset -= graph.offset.y_0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $mirrorY_0(node.pos, offset - node.size_0.y_0); - $mirrorY_1(node.padding); - $mirrorNodeLabelPlacementY(node); - (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorY_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.y_0); - switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { - case 3: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); - break; - case 4: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); - } - nodeSize = node.size_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $mirrorY_0(port.pos, nodeSize.y_0 - port.size_0.y_0); - $mirrorY_0(port.anchor, port.size_0.y_0); - $setSide(port, $getMirroredPortSideY(port.side)); - index_0 = castTo($getProperty(port, PORT_INDEX), 19); - !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - bendPoint.y_0 = offset - bendPoint.y_0; - } - junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); - if (junctionPoints) { - for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - jp.y_0 = offset - jp.y_0; - } - } - for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator0), 70); - $mirrorY_0(label_0.pos, offset - label_0.size_0.y_0); - } - } - for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator1), 70); - $mirrorY_0(label_0.pos, port.size_0.y_0 - label_0.size_0.y_0); - } - } - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideY(castTo($getProperty(node, EXT_PORT_SIDE), 61))); - $mirrorInLayerConstraintY(node); - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $mirrorNodeLabelPlacementY(label_0); - $mirrorY_0(label_0.pos, nodeSize.y_0 - label_0.size_0.y_0); - } - } -} - -function $mirrorY_0(v, offset){ - v.y_0 = offset - v.y_0; -} - -function $mirrorY_1(spacing){ - var oldBottom, oldTop; - oldTop = spacing.top_0; - oldBottom = spacing.bottom; - spacing.top_0 = oldBottom; - spacing.bottom = oldTop; -} - -function $process_12(this$static, layeredGraph, monitor){ - var congruency, layer, layer$iterator, nodes; - $begin(monitor, 'Graph transformation (' + this$static.mode + ')', 1); - nodes = newArrayList(layeredGraph.layerlessNodes); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $addAll_2(nodes, layer.nodes); - } - congruency = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , DIRECTION_CONGRUENCY_0)), 419); - if (congruency == ($clinit_DirectionCongruency() , READING_DIRECTION)) { - switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { - case 2: - $mirrorAllX(layeredGraph, nodes); - break; - case 3: - $transposeAll(layeredGraph, nodes); - break; - case 4: - if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { - $transposeAll(layeredGraph, nodes); - $mirrorAllY(layeredGraph, nodes); - } - else { - $mirrorAllY(layeredGraph, nodes); - $transposeAll(layeredGraph, nodes); - } - - } - } - else { - if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { - switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { - case 2: - $mirrorAllX(layeredGraph, nodes); - $mirrorAllY(layeredGraph, nodes); - break; - case 3: - $transposeAll(layeredGraph, nodes); - $mirrorAllX(layeredGraph, nodes); - break; - case 4: - $mirrorAllX(layeredGraph, nodes); - $transposeAll(layeredGraph, nodes); - } - } - else { - switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { - case 2: - $mirrorAllX(layeredGraph, nodes); - $mirrorAllY(layeredGraph, nodes); - break; - case 3: - $mirrorAllX(layeredGraph, nodes); - $transposeAll(layeredGraph, nodes); - break; - case 4: - $transposeAll(layeredGraph, nodes); - $mirrorAllX(layeredGraph, nodes); - } - } - } - $done_0(monitor); -} - -function $transpose(nodes){ - var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, port, port$iterator; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $transpose_0(node.pos); - $transpose_0(node.size_0); - $transpose_1(node.padding); - $transposeNodeLabelPlacement(node); - $transposeProperties(node); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $transpose_0(port.pos); - $transpose_0(port.anchor); - $transpose_0(port.size_0); - $setSide(port, $transposePortSide(port.side)); - index_0 = castTo($getProperty(port, ($clinit_LayeredOptions() , PORT_INDEX)), 19); - !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - $transpose_0(bendPoint); - } - junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); - if (junctionPoints) { - for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - $transpose_0(jp); - } - } - for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator0), 70); - $transpose_0(label_0.pos); - $transpose_0(label_0.size_0); - } - } - for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator1), 70); - $transpose_0(label_0.pos); - $transpose_0(label_0.size_0); - } - } - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $transposePortSide(castTo($getProperty(node, EXT_PORT_SIDE), 61))); - $transposeLayerConstraint(node); - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $transposeNodeLabelPlacement(label_0); - $transpose_0(label_0.size_0); - $transpose_0(label_0.pos); - } - } -} - -function $transpose_0(v){ - var temp; - temp = v.x_0; - v.x_0 = v.y_0; - v.y_0 = temp; -} - -function $transpose_1(spacing){ - var oldBottom, oldLeft, oldRight, oldTop; - oldTop = spacing.top_0; - oldBottom = spacing.bottom; - oldLeft = spacing.left; - oldRight = spacing.right; - spacing.top_0 = oldLeft; - spacing.bottom = oldRight; - spacing.left = oldTop; - spacing.right = oldBottom; -} - -function $transposeAll(layeredGraph, nodes){ - var oldSide; - $transpose(nodes); - oldSide = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); - !!oldSide && $setProperty_0(layeredGraph, EDGE_LABELS_SIDE_SELECTION_0, $transpose_2(oldSide)); - $transpose_0(layeredGraph.offset); - $transpose_0(layeredGraph.size_0); - $transpose_1(layeredGraph.padding); - $transpose_1(castTo($getProperty(layeredGraph, NODE_LABELS_PADDING), 207)); -} - -function $transposeLayerConstraint(node){ - var inLayerConstraint, layerConstraint; - layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - inLayerConstraint = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); - if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); - } - else if (layerConstraint == LAST_SEPARATE_0) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); - } - else if (inLayerConstraint == ($clinit_InLayerConstraint() , TOP_1)) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, FIRST_SEPARATE_0); - $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); - } - else if (inLayerConstraint == BOTTOM_0) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, LAST_SEPARATE_0); - $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); - } -} - -function $transposeNodeLabelPlacement(shape_0){ - var all, newPlacement, oldPlacement; - if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { - return; - } - oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); - if (oldPlacement.isEmpty()) { - return; - } - newPlacement = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - oldPlacement.contains(($clinit_NodeLabelPlacement() , INSIDE))?$add_5(newPlacement, INSIDE):$add_5(newPlacement, OUTSIDE); - oldPlacement.contains(H_PRIORITY) || $add_5(newPlacement, H_PRIORITY); - oldPlacement.contains(H_LEFT_0)?$add_5(newPlacement, V_TOP_0):oldPlacement.contains(H_CENTER_0)?$add_5(newPlacement, V_CENTER_0):oldPlacement.contains(H_RIGHT_0) && $add_5(newPlacement, V_BOTTOM_0); - oldPlacement.contains(V_TOP_0)?$add_5(newPlacement, H_LEFT_0):oldPlacement.contains(V_CENTER_0)?$add_5(newPlacement, H_CENTER_0):oldPlacement.contains(V_BOTTOM_0) && $add_5(newPlacement, H_RIGHT_0); - $setProperty_0(shape_0, NODE_LABELS_PLACEMENT_1, newPlacement); -} - -function $transposePortSide(side){ - switch (side.ordinal) { - case 1: - return $clinit_PortSide() , WEST_2; - case 4: - return $clinit_PortSide() , NORTH_3; - case 3: - return $clinit_PortSide() , EAST_2; - case 2: - return $clinit_PortSide() , SOUTH_2; - default:return $clinit_PortSide() , UNDEFINED_5; - } -} - -function $transposeProperties(node){ - var minSize, pos, tmp; - minSize = castTo($getProperty(node, ($clinit_LayeredOptions() , NODE_SIZE_MINIMUM_0)), 8); - $setProperty_0(node, NODE_SIZE_MINIMUM_0, new KVector_1(minSize.y_0, minSize.x_0)); - switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { - case 1: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); - break; - case 2: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); - break; - case 3: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); - break; - case 4: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); - } - if ((!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(POSITION)) { - pos = castTo($getProperty(node, POSITION), 8); - tmp = pos.x_0; - pos.x_0 = pos.y_0; - pos.y_0 = tmp; - } -} - -function GraphTransformer(themode){ - this.mode = themode; -} - -defineClass(792, 1, $intern_105, GraphTransformer); -_.process = function process_10(layeredGraph, monitor){ - $process_12(this, castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer', 792); -function $clinit_GraphTransformer$Mode(){ - $clinit_GraphTransformer$Mode = emptyMethod; - TO_INTERNAL_LTR = new GraphTransformer$Mode('TO_INTERNAL_LTR', 0); - TO_INPUT_DIRECTION = new GraphTransformer$Mode('TO_INPUT_DIRECTION', 1); -} - -function GraphTransformer$Mode(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_31(name_0){ - $clinit_GraphTransformer$Mode(); - return valueOf(($clinit_GraphTransformer$Mode$Map() , $MAP_19), name_0); -} - -function values_37(){ - $clinit_GraphTransformer$Mode(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]); -} - -defineClass(511, 22, {3:1, 35:1, 22:1, 511:1}, GraphTransformer$Mode); -var TO_INPUT_DIRECTION, TO_INTERNAL_LTR; -var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer/Mode', 511, Ljava_lang_Enum_2_classLit, values_37, valueOf_31); -function $clinit_GraphTransformer$Mode$Map(){ - $clinit_GraphTransformer$Mode$Map = emptyMethod; - $MAP_19 = createValueOfMap(($clinit_GraphTransformer$Mode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]))); -} - -var $MAP_19; -function $graphLayoutToNode(node, lgraph){ - var actualGraphSize, childNode, childNode$iterator, origin_0, port, portPosition; - for (childNode$iterator = new ArrayList$1(lgraph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { - childNode = castTo($next_7(childNode$iterator), 10); - origin_0 = $getProperty(childNode, ($clinit_InternalProperties_1() , ORIGIN_0)); - if (instanceOf(origin_0, 11)) { - port = castTo(origin_0, 11); - portPosition = getExternalPortPosition(lgraph, childNode, port.size_0.x_0, port.size_0.y_0); - port.pos.x_0 = portPosition.x_0; - port.pos.y_0 = portPosition.y_0; - $setSide(port, castTo($getProperty(childNode, EXT_PORT_SIDE), 61)); - } - } - actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - $setProperty_0(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - castTo($getProperty($getGraph(node), GRAPH_PROPERTIES), 21).add_2(NON_FREE_PORTS); - resizeNode(node, actualGraphSize, false); - } - else { - resizeNode(node, actualGraphSize, true); - } -} - -function $process_13(graph, progressMonitor){ - var layer, layer$iterator, node, node$iterator; - $begin(progressMonitor, 'Resize child graph to fit parent.', 1); - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $addAll_2(graph.layerlessNodes, layer.nodes); - layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - } - graph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $resizeGraph_0(graph); - !!graph.parentNode && $graphLayoutToNode(graph.parentNode, graph); - $done_0(progressMonitor); -} - -function $resizeGraph_0(lgraph){ - var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; - sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); - sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); - calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - adjustedSize = new KVector_2(calculatedSize); - if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); - if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); - adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); - } - $resizeGraphNoReallyIMeanIt_0(lgraph, calculatedSize, adjustedSize); -} - -function $resizeGraphNoReallyIMeanIt_0(lgraph, oldSize, newSize){ - var contentAlignment, extPortSide, node, node$iterator, padding; - contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); - newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); - newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); - if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { - for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); - extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); - } - } - } - padding = lgraph.padding; - lgraph.size_0.x_0 = newSize.x_0 - padding.left - padding.right; - lgraph.size_0.y_0 = newSize.y_0 - padding.top_0 - padding.bottom; -} - -function HierarchicalNodeResizingProcessor(){ -} - -defineClass(1510, 1, $intern_105, HierarchicalNodeResizingProcessor); -_.process = function process_11(graph, progressMonitor){ - $process_13(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalNodeResizingProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalNodeResizingProcessor', 1510); -function $createDummy(layeredGraph, originalDummy){ - var inputPort, newDummy, outputPort; - newDummy = new LNode(layeredGraph); - $copyProperties(newDummy, originalDummy); - $setProperty_0(newDummy, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY), originalDummy); - $setProperty_0(newDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(newDummy, ALIGNMENT, ($clinit_Alignment() , CENTER_4)); - $setType(newDummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); - inputPort = new LPort; - $setNode(inputPort, newDummy); - $setSide(inputPort, ($clinit_PortSide() , WEST_2)); - outputPort = new LPort; - $setNode(outputPort, newDummy); - $setSide(outputPort, EAST_2); - return newDummy; -} - -function $isNorthernOrSouthernDummy(node){ - var nodeType, portSide; - nodeType = node.type_0; - if (nodeType == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - portSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - return portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2; - } - return false; -} - -function $process_14(layeredGraph, monitor){ - $begin(monitor, 'Hierarchical port constraint processing', 1); - $processEasternAndWesternPortDummies(layeredGraph); - $processNorthernAndSouthernPortDummies(layeredGraph); - $done_0(monitor); -} - -function $processEasternAndWesternPortDummies(layeredGraph){ - var layers; - if (!$isOrderFixed(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - return; - } - layers = layeredGraph.layers; - $processEasternAndWesternPortDummies_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29))); - $processEasternAndWesternPortDummies_0(castTo($get_11(layers, layers.array.length - 1), 29)); -} - -function $processEasternAndWesternPortDummies_0(layer){ - var externalPortSide, lastHierarchicalDummy, node, node$array, node$index, node$max, nodes; - nodes = toNodeArray(layer.nodes); - sort_5(nodes, new HierarchicalPortConstraintProcessor$NodeComparator); - lastHierarchicalDummy = null; - for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - break; - } - externalPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (externalPortSide != ($clinit_PortSide() , WEST_2) && externalPortSide != EAST_2) { - continue; - } - !!lastHierarchicalDummy && castTo($getProperty(lastHierarchicalDummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(node); - lastHierarchicalDummy = node; - } -} - -function $processNorthernAndSouthernPortDummies(layeredGraph){ - var currLayerIdx, currentLayer, currentNode, currentNode$iterator, dummy, dummy$iterator, edge, edge$iterator, edge$iterator0, extPortToDummyNodeMap, i, layer, layerCount, layers, newDummyNodes, nextExtPortToDummyNodesMap, nextLayerDummy, nextNewDummyNodes, nodeList, originalDummy, originalDummy$iterator, originalExternalPortDummies, portConstraints, prevExtPortToDummyNodesMap, prevLayerDummy, prevNewDummyNodes, sourceNode, targetNode; - portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - if (!(portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4)) { - return; - } - layers = layeredGraph.layers; - layerCount = layers.array.length; - extPortToDummyNodeMap = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); - newDummyNodes = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); - $add_3(extPortToDummyNodeMap, new HashMap); - $add_3(extPortToDummyNodeMap, new HashMap); - $add_3(newDummyNodes, new ArrayList); - $add_3(newDummyNodes, new ArrayList); - originalExternalPortDummies = new ArrayList; - for (currLayerIdx = 0; currLayerIdx < layerCount; currLayerIdx++) { - currentLayer = (checkCriticalElementIndex(currLayerIdx, layers.array.length) , castTo(layers.array[currLayerIdx], 29)); - prevExtPortToDummyNodesMap = (checkCriticalElementIndex(currLayerIdx, extPortToDummyNodeMap.array.length) , castTo(extPortToDummyNodeMap.array[currLayerIdx], 83)); - nextExtPortToDummyNodesMap = new HashMap; - extPortToDummyNodeMap.array[extPortToDummyNodeMap.array.length] = nextExtPortToDummyNodesMap; - prevNewDummyNodes = (checkCriticalElementIndex(currLayerIdx, newDummyNodes.array.length) , castTo(newDummyNodes.array[currLayerIdx], 15)); - nextNewDummyNodes = new ArrayList; - newDummyNodes.array[newDummyNodes.array.length] = nextNewDummyNodes; - for (currentNode$iterator = new ArrayList$1(currentLayer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { - currentNode = castTo($next_7(currentNode$iterator), 10); - if ($isNorthernOrSouthernDummy(currentNode)) { - originalExternalPortDummies.array[originalExternalPortDummies.array.length] = currentNode; - continue; - } - for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { - edge = castTo($next_0(edge$iterator0), 17); - sourceNode = edge.source.owner; - if (!$isNorthernOrSouthernDummy(sourceNode)) { - continue; - } - prevLayerDummy = castTo(prevExtPortToDummyNodesMap.get_3($getProperty(sourceNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); - if (!prevLayerDummy) { - prevLayerDummy = $createDummy(layeredGraph, sourceNode); - prevExtPortToDummyNodesMap.put($getProperty(sourceNode, ORIGIN_0), prevLayerDummy); - prevNewDummyNodes.add_2(prevLayerDummy); - } - $setSource_0(edge, castTo($get_11(prevLayerDummy.ports, 1), 11)); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - targetNode = edge.target.owner; - if (!$isNorthernOrSouthernDummy(targetNode)) { - continue; - } - nextLayerDummy = castTo($get_10(nextExtPortToDummyNodesMap, $getProperty(targetNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); - if (!nextLayerDummy) { - nextLayerDummy = $createDummy(layeredGraph, targetNode); - $put_6(nextExtPortToDummyNodesMap, $getProperty(targetNode, ORIGIN_0), nextLayerDummy); - nextNewDummyNodes.array[nextNewDummyNodes.array.length] = nextLayerDummy; - } - $setTarget_0(edge, castTo($get_11(nextLayerDummy.ports, 0), 11)); - } - } - } - for (i = 0; i < newDummyNodes.array.length; i++) { - nodeList = (checkCriticalElementIndex(i, newDummyNodes.array.length) , castTo(newDummyNodes.array[i], 15)); - if (nodeList.isEmpty()) { - continue; - } - layer = null; - if (i == 0) { - layer = new Layer(layeredGraph); - checkCriticalPositionIndex(0, layers.array.length); - insertTo(layers.array, 0, layer); - } - else if (i == extPortToDummyNodeMap.array.length - 1) { - layer = new Layer(layeredGraph); - layers.array[layers.array.length] = layer; - } - else { - layer = (checkCriticalElementIndex(i - 1, layers.array.length) , castTo(layers.array[i - 1], 29)); - } - for (dummy$iterator = nodeList.iterator_0(); dummy$iterator.hasNext_0();) { - dummy = castTo(dummy$iterator.next_1(), 10); - $setLayer_0(dummy, layer); - } - } - for (originalDummy$iterator = new ArrayList$1(originalExternalPortDummies); originalDummy$iterator.i < originalDummy$iterator.this$01.array.length;) { - originalDummy = castTo($next_7(originalDummy$iterator), 10); - $setLayer_0(originalDummy, null); - } - $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES), originalExternalPortDummies); -} - -function HierarchicalPortConstraintProcessor(){ -} - -defineClass(1511, 1, $intern_105, HierarchicalPortConstraintProcessor); -_.process = function process_12(layeredGraph, monitor){ - $process_14(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor', 1511); -function $compare_12(node1, node2){ - var nodePos1, nodePos2, nodeType1, nodeType2; - nodeType1 = node1.type_0; - nodePos1 = $doubleValue(castToDouble($getProperty(node1, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))); - nodeType2 = node2.type_0; - nodePos2 = $doubleValue(castToDouble($getProperty(node2, PORT_RATIO_OR_POSITION_0))); - return nodeType2 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)?-1:nodeType1 != EXTERNAL_PORT?1:nodePos1 == nodePos2?0:nodePos1 < nodePos2?-1:1; -} - -function HierarchicalPortConstraintProcessor$NodeComparator(){ -} - -defineClass(1512, 1, $intern_88, HierarchicalPortConstraintProcessor$NodeComparator); -_.compare_1 = function compare_43(node1, node2){ - return $compare_12(castTo(node1, 10), castTo(node2, 10)); -} -; -_.equals_0 = function equals_107(other){ - return this === other; -} -; -_.reversed = function reversed_35(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor$NodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor/NodeComparator', 1512); -function $process_15(layeredGraph, monitor){ - var delta, edgeSpacing, layer, layer$iterator, node, node$iterator, northernDummies, side, southernDummies; - $begin(monitor, 'Hierarchical port dummy size processing', 1); - northernDummies = new ArrayList; - southernDummies = new ArrayList; - edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); - delta = edgeSpacing * 2; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - northernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - southernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - side = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - side == ($clinit_PortSide() , NORTH_3)?(northernDummies.array[northernDummies.array.length] = node , true):side == SOUTH_2 && (southernDummies.array[southernDummies.array.length] = node , true); - } - } - $setWidths(northernDummies, true, delta); - $setWidths(southernDummies, false, delta); - } - $done_0(monitor); -} - -function $setWidths(nodes, topDown, delta){ - var currentWidth, node, node$iterator, port, port$iterator, step; - currentWidth = 0; - step = delta; - if (!topDown) { - currentWidth = delta * (nodes.array.length - 1); - step *= -1; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setProperty_0(node, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , CENTER_4)); - node.size_0.x_0 = currentWidth; - for (port$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - port.pos.x_0 = currentWidth; - } - currentWidth += step; - } -} - -function HierarchicalPortDummySizeProcessor(){ -} - -defineClass(1513, 1, $intern_105, HierarchicalPortDummySizeProcessor); -_.process = function process_13(layeredGraph, monitor){ - $process_15(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortDummySizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortDummySizeProcessor', 1513); -function $assignAscendingCoordinates(dummies, graph){ - var currentMargin, currentPosition, currentSize, delta, graphSize, index_0, nextValidCoordinate, spacing; - spacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); - nextValidCoordinate = dummies[0].pos.x_0 + dummies[0].size_0.x_0 + dummies[0].margin.right + spacing; - for (index_0 = 1; index_0 < dummies.length; index_0++) { - currentPosition = dummies[index_0].pos; - currentSize = dummies[index_0].size_0; - currentMargin = dummies[index_0].margin; - delta = currentPosition.x_0 - currentMargin.left - nextValidCoordinate; - delta < 0 && (currentPosition.x_0 -= delta); - graphSize = graph.size_0; - graphSize.x_0 = $wnd.Math.max(graphSize.x_0, currentPosition.x_0 + currentSize.x_0); - nextValidCoordinate = currentPosition.x_0 + currentSize.x_0 + currentMargin.right + spacing; - } -} - -function $calculateNorthSouthDummyPositions(dummy){ - var anchor, connectedPort, connectedPort$iterator, dummyInPort, offset, posSum; - dummyInPort = castTo($get_11(dummy.ports, 0), 11); - if (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length == 0) { - dummy.pos.x_0 = 0; - } - else { - posSum = 0; - for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(dummyInPort), new LPort$2(dummyInPort)]))); $hasNext_1(connectedPort$iterator);) { - connectedPort = castTo($next_0(connectedPort$iterator), 11); - posSum += connectedPort.owner.pos.x_0 + connectedPort.pos.x_0 + connectedPort.anchor.x_0; - } - anchor = castTo($getProperty(dummy, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8); - offset = !anchor?0:anchor.x_0; - dummy.pos.x_0 = posSum / (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length) - offset; - } -} - -function $correctSlantedEdgeSegments(layer){ - var bendPoints, edge, edge$iterator, extPortSide, firstBendPoint, lastBendPoint, node, node$iterator, sourcePort, targetPort; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (extPortSide == ($clinit_PortSide() , EAST_2) || extPortSide == WEST_2) { - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - bendPoints = edge.bendPoints; - if (bendPoints.size_0 == 0) { - continue; - } - sourcePort = edge.source; - if (sourcePort.owner == node) { - firstBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8)); - firstBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; - } - targetPort = edge.target; - if (targetPort.owner == node) { - lastBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8)); - lastBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; - } - } - } - } -} - -function $ensureUniquePositions(dummies, graph){ - var dummyArray; - if (dummies.array.length == 0) { - return; - } - dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); - sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$1); - $assignAscendingCoordinates(dummyArray, graph); -} - -function $fixCoordinates(layer, constraints, graph){ - var extPortSide, extPortSize, graphActualSize, newActualGraphHeight, node, node$iterator, node$iterator0, nodePosition, offset, padding, ratio, requiredActualGraphHeight; - padding = graph.padding; - offset = graph.offset; - graphActualSize = new KVector_1(graph.size_0.x_0 + graph.padding.left + graph.padding.right, graph.size_0.y_0 + graph.padding.top_0 + graph.padding.bottom); - newActualGraphHeight = graphActualSize.y_0; - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - extPortSize = castTo($getProperty(node, EXT_PORT_SIZE), 8); - nodePosition = node.pos; - switch (extPortSide.ordinal) { - case 2: - nodePosition.x_0 = graph.size_0.x_0 + padding.right - offset.x_0; - break; - case 4: - nodePosition.x_0 = -offset.x_0 - padding.left; - } - requiredActualGraphHeight = 0; - switch (extPortSide.ordinal) { - case 2: - case 4: - if (constraints == ($clinit_PortConstraints() , FIXED_RATIO)) { - ratio = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); - nodePosition.y_0 = graphActualSize.y_0 * ratio - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; - requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; - $borderToContentAreaCoordinates(node, false, true); - } - else if (constraints == FIXED_POS) { - nodePosition.y_0 = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))) - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; - requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; - $borderToContentAreaCoordinates(node, false, true); - } - - } - newActualGraphHeight = $wnd.Math.max(newActualGraphHeight, requiredActualGraphHeight); - } - graph.size_0.y_0 += newActualGraphHeight - graphActualSize.y_0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - nodePosition = node.pos; - switch (extPortSide.ordinal) { - case 1: - nodePosition.y_0 = -offset.y_0 - padding.top_0; - break; - case 3: - nodePosition.y_0 = graph.size_0.y_0 + padding.bottom - offset.y_0; - } - } -} - -function $process_16(this$static, layeredGraph, monitor){ - var northSouthDummies, constraints, layers, layers_0; - $begin(monitor, 'Orthogonally routing hierarchical port edges', 1); - this$static.northernExtPortEdgeRoutingHeight = 0; - northSouthDummies = $restoreNorthSouthDummies(layeredGraph); - $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies); - $routeEdges(this$static, layeredGraph, northSouthDummies); - $removeTemporaryNorthSouthDummies(layeredGraph); - constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - layers = layeredGraph.layers; - $fixCoordinates((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), constraints, layeredGraph); - $fixCoordinates(castTo($get_11(layers, layers.array.length - 1), 29), constraints, layeredGraph); - layers_0 = layeredGraph.layers; - $correctSlantedEdgeSegments((checkCriticalElementIndex(0, layers_0.array.length) , castTo(layers_0.array[0], 29))); - $correctSlantedEdgeSegments(castTo($get_11(layers_0, layers_0.array.length - 1), 29)); - $done_0(monitor); -} - -function $removeTemporaryNorthSouthDummies(layeredGraph){ - var edge, edge$array, edge$array0, edge$index, edge$index0, edge$max, edge$max0, edges, firstBendPoint, incomingEdgeBendPoints, iter, lastBendPoint, layer, layer$iterator, node, node$iterator, node$iterator0, nodeInPort, nodeOriginPort, nodeOutPort, nodeToOriginEdge, nodesToRemove, outgoingEdgeBendPoints, port, port$iterator, replacedDummy, replacedDummyPort; - nodesToRemove = new ArrayList; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - if (!$hasProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY))) { - continue; - } - nodeInPort = null; - nodeOutPort = null; - nodeOriginPort = null; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 4: - nodeInPort = port; - break; - case 2: - nodeOutPort = port; - break; - default:nodeOriginPort = port; - } - } - nodeToOriginEdge = castTo($get_11(nodeOriginPort.outgoingEdges, 0), 17); - incomingEdgeBendPoints = new KVectorChain_0(nodeToOriginEdge.bendPoints); - firstBendPoint = new KVector_2(nodeOriginPort.pos); - $add_19(firstBendPoint, node.pos); - iter = $listIterator_2(incomingEdgeBendPoints, 0); - $add_8(iter, firstBendPoint); - outgoingEdgeBendPoints = reverse_3(nodeToOriginEdge.bendPoints); - lastBendPoint = new KVector_2(nodeOriginPort.pos); - $add_19(lastBendPoint, node.pos); - $addNode_0(outgoingEdgeBendPoints, lastBendPoint, outgoingEdgeBendPoints.tail.prev, outgoingEdgeBendPoints.tail); - replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); - replacedDummyPort = castTo($get_11(replacedDummy.ports, 0), 11); - edges = castTo($toArray_2(nodeInPort.incomingEdges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, 0, 0, 1)), 474); - for (edge$array0 = edges , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { - edge = edge$array0[edge$index0]; - $setTarget_0(edge, replacedDummyPort); - $addAllAsCopies(edge.bendPoints, edge.bendPoints.size_0, incomingEdgeBendPoints); - } - edges = toEdgeArray(nodeOutPort.outgoingEdges); - for (edge$array = edges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setSource_0(edge, replacedDummyPort); - $addAllAsCopies(edge.bendPoints, 0, outgoingEdgeBendPoints); - } - $setSource_0(nodeToOriginEdge, null); - $setTarget_0(nodeToOriginEdge, null); - nodesToRemove.array[nodesToRemove.array.length] = node; - } - } - for (node$iterator = new ArrayList$1(nodesToRemove); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - } -} - -function $restoreDummy(dummy, graph){ - var currentY, dummyPort, label_0, label$iterator, labelLabelSpacing, portLabelPlacement, portLabelSpacingHorizontal, portLabelSpacingVertical, portSide, xCenterRelativeToPort; - portSide = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - portSide == ($clinit_PortSide() , NORTH_3)?$setSide(dummyPort, SOUTH_2):portSide == SOUTH_2 && $setSide(dummyPort, NORTH_3); - if (castTo($getProperty(graph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS))) { - portLabelSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_HORIZONTAL))); - portLabelSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); - portLabelPlacement = castTo($getProperty(graph, PORT_LABELS_PLACEMENT_1), 21); - if (portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { - currentY = portLabelSpacingVertical; - xCenterRelativeToPort = dummy.size_0.x_0 / 2 - dummyPort.pos.x_0; - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - label_0.pos.y_0 = currentY; - label_0.pos.x_0 = xCenterRelativeToPort - label_0.size_0.x_0 / 2; - currentY += label_0.size_0.y_0 + labelLabelSpacing; - } - } - else if (portLabelPlacement.contains(OUTSIDE_0)) { - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - label_0.pos.x_0 = portLabelSpacingHorizontal + dummy.size_0.x_0 - dummyPort.pos.x_0; - } - } - $processNode(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(graph, false, false, new LGraphAdapters$lambda$0$Type))), new LGraphAdapters$LNodeAdapter(null, dummy, false)); - } -} - -function $restoreNorthSouthDummies(layeredGraph){ - var dummy, dummy$iterator, dummy$iterator0, layer, layer$iterator, node, node$iterator, replacedDummy, restoredDummies, outPort, extPortSide, inPort, edge; - restoredDummies = new ArrayList; - if (!$hasProperty(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES))) { - return restoredDummies; - } - for (dummy$iterator0 = castTo($getProperty(layeredGraph, EXT_PORT_REPLACED_DUMMIES), 15).iterator_0(); dummy$iterator0.hasNext_0();) { - dummy = castTo(dummy$iterator0.next_1(), 10); - $restoreDummy(dummy, layeredGraph); - restoredDummies.array[restoredDummies.array.length] = dummy; - } - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); - !!replacedDummy && (outPort = new LPort , $setNode(outPort, node) , extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61) , $setSide(outPort, extPortSide) , inPort = castTo($get_11(replacedDummy.ports, 0), 11) , edge = new LEdge , $setSource_0(edge, outPort) , $setTarget_0(edge, inPort) , undefined); - } - } - for (dummy$iterator = new ArrayList$1(restoredDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - $setLayer_0(dummy, castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29)); - } - return restoredDummies; -} - -function $restoreProperOrder(dummies, graph){ - var dummyArray; - if (dummies.array.length == 0) { - return; - } - dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); - sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$2); - $assignAscendingCoordinates(dummyArray, graph); -} - -function $routeEdges(this$static, layeredGraph, northSouthDummies){ - var edge, edge$iterator, edgeSpacing, hierarchicalPortDummy, hierarchicalPortDummy$iterator, nodeSpacing, northernSourceLayer, northernTargetLayer, portSide, routingGenerator, slots, southernSourceLayer, southernTargetLayer; - northernSourceLayer = new LinkedHashSet; - northernTargetLayer = new LinkedHashSet; - southernSourceLayer = new LinkedHashSet; - southernTargetLayer = new LinkedHashSet; - nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); - for (hierarchicalPortDummy$iterator = new ArrayList$1(northSouthDummies); hierarchicalPortDummy$iterator.i < hierarchicalPortDummy$iterator.this$01.array.length;) { - hierarchicalPortDummy = castTo($next_7(hierarchicalPortDummy$iterator), 10); - portSide = castTo($getProperty(hierarchicalPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (portSide == ($clinit_PortSide() , NORTH_3)) { - northernTargetLayer.map_0.put(hierarchicalPortDummy, northernTargetLayer); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $add_6(northernSourceLayer, edge.source.owner); - } - } - else if (portSide == SOUTH_2) { - southernTargetLayer.map_0.put(hierarchicalPortDummy, southernTargetLayer); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $add_6(southernSourceLayer, edge.source.owner); - } - } - } - if (northernSourceLayer.map_0.size_1() != 0) { - routingGenerator = new OrthogonalRoutingGenerator(2, edgeSpacing); - slots = $routeEdges_0(routingGenerator, layeredGraph, northernSourceLayer, northernTargetLayer, -nodeSpacing - layeredGraph.offset.y_0); - if (slots > 0) { - this$static.northernExtPortEdgeRoutingHeight = nodeSpacing + (slots - 1) * edgeSpacing; - layeredGraph.offset.y_0 += this$static.northernExtPortEdgeRoutingHeight; - layeredGraph.size_0.y_0 += this$static.northernExtPortEdgeRoutingHeight; - } - } - if (southernSourceLayer.map_0.size_1() != 0) { - routingGenerator = new OrthogonalRoutingGenerator(1, edgeSpacing); - slots = $routeEdges_0(routingGenerator, layeredGraph, southernSourceLayer, southernTargetLayer, layeredGraph.size_0.y_0 + nodeSpacing - layeredGraph.offset.y_0); - slots > 0 && (layeredGraph.size_0.y_0 += nodeSpacing + (slots - 1) * edgeSpacing); - } -} - -function $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies){ - var constraints, dummy, dummy$iterator, graphPadding, graphSize, graphWidth, northY, northernDummies, southY, southernDummies, anchor, offset, anchor_0, offset_0; - constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - graphSize = layeredGraph.size_0; - graphPadding = layeredGraph.padding; - graphWidth = graphSize.x_0 + graphPadding.left + graphPadding.right; - northY = 0 - graphPadding.top_0 - layeredGraph.offset.y_0; - southY = graphSize.y_0 + graphPadding.top_0 + graphPadding.bottom - layeredGraph.offset.y_0; - northernDummies = new ArrayList; - southernDummies = new ArrayList; - for (dummy$iterator = new ArrayList$1(northSouthDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - switch (constraints.ordinal) { - case 1: - case 2: - case 3: - $calculateNorthSouthDummyPositions(dummy); - break; - case 4: - anchor = castTo($getProperty(dummy, PORT_ANCHOR), 8); - offset = !anchor?0:anchor.x_0; - dummy.pos.x_0 = graphWidth * $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset; - $borderToContentAreaCoordinates(dummy, true, false); - break; - case 5: - anchor_0 = castTo($getProperty(dummy, PORT_ANCHOR), 8); - offset_0 = !anchor_0?0:anchor_0.x_0; - dummy.pos.x_0 = $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset_0; - $borderToContentAreaCoordinates(dummy, true, false); - graphSize.x_0 = $wnd.Math.max(graphSize.x_0, dummy.pos.x_0 + dummy.size_0.x_0 / 2); - } - switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - dummy.pos.y_0 = northY; - northernDummies.array[northernDummies.array.length] = dummy; - break; - case 3: - dummy.pos.y_0 = southY; - southernDummies.array[southernDummies.array.length] = dummy; - } - } - switch (constraints.ordinal) { - case 1: - case 2: - $ensureUniquePositions(northernDummies, layeredGraph); - $ensureUniquePositions(southernDummies, layeredGraph); - break; - case 3: - $restoreProperOrder(northernDummies, layeredGraph); - $restoreProperOrder(southernDummies, layeredGraph); - } -} - -function HierarchicalPortOrthogonalEdgeRouter(){ -} - -defineClass(1514, 1, $intern_105, HierarchicalPortOrthogonalEdgeRouter); -_.process = function process_14(layeredGraph, monitor){ - $process_16(this, castTo(layeredGraph, 37), monitor); -} -; -_.northernExtPortEdgeRoutingHeight = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter', 1514); -function $compare_13(a, b){ - return compare_4(a.pos.x_0, b.pos.x_0); -} - -function HierarchicalPortOrthogonalEdgeRouter$1(){ -} - -defineClass(1515, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$1); -_.compare_1 = function compare_44(a, b){ - return $compare_13(castTo(a, 10), castTo(b, 10)); -} -; -_.equals_0 = function equals_108(other){ - return this === other; -} -; -_.reversed = function reversed_36(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/1', 1515); -function $compare_14(a, b){ - return compare_4($doubleValue(castToDouble($getProperty(a, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))), $doubleValue(castToDouble($getProperty(b, PORT_RATIO_OR_POSITION_0)))); -} - -function HierarchicalPortOrthogonalEdgeRouter$2(){ -} - -defineClass(1516, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$2); -_.compare_1 = function compare_45(a, b){ - return $compare_14(castTo(a, 10), castTo(b, 10)); -} -; -_.equals_0 = function equals_109(other){ - return this === other; -} -; -_.reversed = function reversed_37(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/2', 1516); -function $fixCoordinates_0(layer, layeredGraph){ - var extPortSide, finalYCoordinate, graphHeight, node, node$iterator, portConstraints; - portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - if (!(portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || portConstraints == FIXED_POS)) { - return; - } - graphHeight = (new KVector_1(layeredGraph.size_0.x_0 + layeredGraph.padding.left + layeredGraph.padding.right, layeredGraph.size_0.y_0 + layeredGraph.padding.top_0 + layeredGraph.padding.bottom)).y_0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (extPortSide != ($clinit_PortSide() , EAST_2) && extPortSide != WEST_2) { - continue; - } - finalYCoordinate = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); - portConstraints == FIXED_RATIO && (finalYCoordinate *= graphHeight); - node.pos.y_0 = finalYCoordinate - castTo($getProperty(node, PORT_ANCHOR), 8).y_0; - $borderToContentAreaCoordinates(node, false, true); - } -} - -function $process_17(layeredGraph, monitor){ - var layers; - $begin(monitor, 'Hierarchical port position processing', 1); - layers = layeredGraph.layers; - layers.array.length > 0 && $fixCoordinates_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), layeredGraph); - layers.array.length > 1 && $fixCoordinates_0(castTo($get_11(layers, layers.array.length - 1), 29), layeredGraph); - $done_0(monitor); -} - -function HierarchicalPortPositionProcessor(){ -} - -defineClass(1517, 1, $intern_105, HierarchicalPortPositionProcessor); -_.process = function process_15(layeredGraph, monitor){ - $process_17(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortPositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortPositionProcessor', 1517); -function $clinit_HighDegreeNodeLayeringProcessor(){ - $clinit_HighDegreeNodeLayeringProcessor = emptyMethod; - INCOMING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$0$Type; - OUTGOING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$1$Type; -} - -function $calculateInformation(this$static, hdn){ - var hdni, incEdge, incEdge$iterator, outEdge, outEdge$iterator, src_0, tgt, treeHeight; - hdni = new HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation; - for (incEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incEdge$iterator);) { - incEdge = castTo($next_0(incEdge$iterator), 17); - if ($isSelfLoop(incEdge)) { - continue; - } - src_0 = incEdge.source.owner; - if ($hasSingleConnection(src_0, OUTGOING_EDGES)) { - treeHeight = $isTreeRoot(this$static, src_0, OUTGOING_EDGES, INCOMING_EDGES); - if (treeHeight == -1) { - continue; - } - hdni.incTreesMaxHeight = $wnd.Math.max(hdni.incTreesMaxHeight, treeHeight); - !hdni.incTreeRoots && (hdni.incTreeRoots = new ArrayList); - $add_3(hdni.incTreeRoots, src_0); - } - } - for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { - outEdge = castTo($next_0(outEdge$iterator), 17); - if ($isSelfLoop(outEdge)) { - continue; - } - tgt = outEdge.target.owner; - if ($hasSingleConnection(tgt, INCOMING_EDGES)) { - treeHeight = $isTreeRoot(this$static, tgt, INCOMING_EDGES, OUTGOING_EDGES); - if (treeHeight == -1) { - continue; - } - hdni.outTreesMaxHeight = $wnd.Math.max(hdni.outTreesMaxHeight, treeHeight); - !hdni.outTreeRoots && (hdni.outTreeRoots = new ArrayList); - $add_3(hdni.outTreeRoots, tgt); - } - } - return hdni; -} - -function $hasSingleConnection(node, edgeSelector){ - var connection, e, e$iterator; - connection = null; - for (e$iterator = castTo(edgeSelector.apply_0(node), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - if (!connection) { - connection = e.source.owner == node?e.target.owner:e.source.owner; - } - else { - if ((e.source.owner == node?e.target.owner:e.source.owner) != connection) { - return false; - } - } - } - return true; -} - -function $isTreeRoot(this$static, root, ancestorEdges, descendantEdges){ - var currentHeight, e, e$iterator, height, other; - if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(root).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { - return -1; - } - if (!$hasSingleConnection(root, ancestorEdges)) { - return -1; - } - if (isEmpty_13(castTo(descendantEdges.apply_0(root), 20))) { - return 1; - } - currentHeight = 0; - for (e$iterator = castTo(descendantEdges.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - other = e.source.owner == root?e.target.owner:e.source.owner; - height = $isTreeRoot(this$static, other, ancestorEdges, descendantEdges); - if (height == -1) { - return -1; - } - currentHeight = $wnd.Math.max(currentHeight, height); - if (currentHeight > this$static.treeHeightThreshold - 1) { - return -1; - } - } - return currentHeight + 1; -} - -function $moveTree(this$static, root, edgesFun, layers){ - var e, e$iterator, other, subList; - $setLayer_0(root, castTo(layers.get_0(0), 29)); - subList = layers.subList(1, layers.size_1()); - for (e$iterator = castTo(edgesFun.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - other = e.source.owner == root?e.target.owner:e.source.owner; - $moveTree(this$static, other, edgesFun, subList); - } -} - -function $process_18(this$static, graph){ - var afterLayers, hdni, highDegreeNode, highDegreeNode$iterator, highDegreeNode$iterator0, highDegreeNodes, i, i0, incMax, incRoot, incRoot$iterator, incRoots, l, lay, layerIt, layerIt2, n, n$iterator, outMax, outRoot, outRoot$iterator, outRoots, preLayers, l_0, l_1; - this$static.layeredGraph = graph; - this$static.degreeThreshold = castTo($getProperty(graph, ($clinit_LayeredOptions() , HIGH_DEGREE_NODES_THRESHOLD_0)), 19).value_0; - this$static.treeHeightThreshold = castTo($getProperty(graph, HIGH_DEGREE_NODES_TREE_HEIGHT_0), 19).value_0; - this$static.treeHeightThreshold == 0 && (this$static.treeHeightThreshold = $intern_0); - layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (layerIt.i < layerIt.this$01_0.size_1()) { - lay = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); - highDegreeNodes = new ArrayList; - incMax = -1; - outMax = -1; - for (n$iterator = new ArrayList$1(lay.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(n).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { - hdni = $calculateInformation(this$static, n); - incMax = $wnd.Math.max(incMax, hdni.incTreesMaxHeight); - outMax = $wnd.Math.max(outMax, hdni.outTreesMaxHeight); - $add_3(highDegreeNodes, new Pair(n, hdni)); - } - } - preLayers = new ArrayList; - for (i0 = 0; i0 < incMax; ++i0) { - $add_2(preLayers, 0, (checkCriticalElement(layerIt.i > 0) , layerIt.this$01.get_0(layerIt.last = --layerIt.i) , l_0 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_0) , checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , layerIt.this$01_0.get_0(layerIt.last = layerIt.i++) , l_0)); - } - for (highDegreeNode$iterator0 = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator0.i < highDegreeNode$iterator0.this$01.array.length;) { - highDegreeNode = castTo($next_7(highDegreeNode$iterator0), 46); - incRoots = castTo(highDegreeNode.second, 571).incTreeRoots; - if (!incRoots) { - continue; - } - for (incRoot$iterator = new ArrayList$1(incRoots); incRoot$iterator.i < incRoot$iterator.this$01.array.length;) { - incRoot = castTo($next_7(incRoot$iterator), 10); - $moveTree(this$static, incRoot, INCOMING_EDGES, preLayers); - } - } - afterLayers = new ArrayList; - for (i = 0; i < outMax; ++i) { - $add_3(afterLayers, (l_1 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_1) , l_1)); - } - for (highDegreeNode$iterator = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator.i < highDegreeNode$iterator.this$01.array.length;) { - highDegreeNode = castTo($next_7(highDegreeNode$iterator), 46); - outRoots = castTo(highDegreeNode.second, 571).outTreeRoots; - if (!outRoots) { - continue; - } - for (outRoot$iterator = new ArrayList$1(outRoots); outRoot$iterator.i < outRoot$iterator.this$01.array.length;) { - outRoot = castTo($next_7(outRoot$iterator), 10); - $moveTree(this$static, outRoot, OUTGOING_EDGES, afterLayers); - } - } - } - layerIt2 = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (layerIt2.i < layerIt2.this$01_0.size_1()) { - l = (checkCriticalElement(layerIt2.i < layerIt2.this$01_0.size_1()) , castTo(layerIt2.this$01_0.get_0(layerIt2.last = layerIt2.i++), 29)); - l.nodes.array.length == 0 && $remove_8(layerIt2); - } -} - -function HighDegreeNodeLayeringProcessor(){ - $clinit_HighDegreeNodeLayeringProcessor(); -} - -defineClass(1518, 1, $intern_105, HighDegreeNodeLayeringProcessor); -_.process = function process_16(graph, progressMonitor){ - $process_18(this, castTo(graph, 37)); -} -; -_.degreeThreshold = 0; -_.treeHeightThreshold = 0; -var INCOMING_EDGES, OUTGOING_EDGES; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor', 1518); -function HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation(){ -} - -defineClass(571, 1, {571:1}, HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation); -_.incTreesMaxHeight = -1; -_.outTreesMaxHeight = -1; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation', 571); -function HighDegreeNodeLayeringProcessor$lambda$0$Type(){ -} - -defineClass(1519, 1, {}, HighDegreeNodeLayeringProcessor$lambda$0$Type); -_.apply_0 = function apply_80(arg0){ - return $clinit_HighDegreeNodeLayeringProcessor() , $getIncomingEdges(castTo(arg0, 10)); -} -; -_.equals_0 = function equals_110(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$0$Type', 1519); -function HighDegreeNodeLayeringProcessor$lambda$1$Type(){ -} - -defineClass(1520, 1, {}, HighDegreeNodeLayeringProcessor$lambda$1$Type); -_.apply_0 = function apply_81(arg0){ - return $clinit_HighDegreeNodeLayeringProcessor() , $getOutgoingEdges(castTo(arg0, 10)); -} -; -_.equals_0 = function equals_111(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$1$Type', 1520); -function $checkMergeAllowed(currNode, lastNode){ - var currHasLabelDummies, currNodeSource, currNodeTarget, eligibleForSourceMerging, eligibleForTargetMerging, lastHasLabelDummies, lastNodeSource, lastNodeTarget, sameSource, sameTarget; - currHasLabelDummies = $booleanValue(castToBoolean($getProperty(currNode, ($clinit_InternalProperties_1() , LONG_EDGE_HAS_LABEL_DUMMIES)))); - lastHasLabelDummies = $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))); - currNodeSource = castTo($getProperty(currNode, LONG_EDGE_SOURCE), 11); - lastNodeSource = castTo($getProperty(lastNode, LONG_EDGE_SOURCE), 11); - currNodeTarget = castTo($getProperty(currNode, LONG_EDGE_TARGET), 11); - lastNodeTarget = castTo($getProperty(lastNode, LONG_EDGE_TARGET), 11); - sameSource = !!currNodeSource && currNodeSource == lastNodeSource; - sameTarget = !!currNodeTarget && currNodeTarget == lastNodeTarget; - if (!currHasLabelDummies && !lastHasLabelDummies) { - return new HyperedgeDummyMerger$MergeState(castTo($next_7(new ArrayList$1(currNode.ports)), 11).id_0 == castTo($next_7(new ArrayList$1(lastNode.ports)), 11).id_0, sameSource, sameTarget); - } - eligibleForSourceMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); - eligibleForTargetMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); - return new HyperedgeDummyMerger$MergeState(sameSource && eligibleForSourceMerging || sameTarget && eligibleForTargetMerging, sameSource, sameTarget); -} - -function $dfs_2(this$static, p, index_0){ - var p2, p2$iterator, p2$iterator0; - p.id_0 = index_0; - for (p2$iterator0 = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(p), new LPort$2(p)]))); $hasNext_1(p2$iterator0);) { - p2 = castTo($next_0(p2$iterator0), 11); - p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); - } - if (p.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (p2$iterator = new ArrayList$1(p.owner.ports); p2$iterator.i < p2$iterator.this$01.array.length;) { - p2 = castTo($next_7(p2$iterator), 11); - p2 != p && p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); - } - } -} - -function $identifyHyperedges(this$static, lGraph){ - var index_0, p, p$iterator, ports; - ports = castTo($collect_1($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layers, 16)), new HyperedgeDummyMerger$lambda$0$Type), new HyperedgeDummyMerger$lambda$1$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - ports.forEach_0(new HyperedgeDummyMerger$lambda$2$Type); - index_0 = 0; - for (p$iterator = ports.iterator_0(); p$iterator.hasNext_0();) { - p = castTo(p$iterator.next_1(), 11); - p.id_0 == -1 && $dfs_2(this$static, p, index_0++); - } -} - -function $mergeNodes(mergeSource, mergeTarget, keepSourcePort, keepTargetPort){ - var mergeTargetInputPort, mergeTargetOutputPort, port, port$iterator; - mergeTargetInputPort = castTo($getPorts_1(mergeTarget, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); - mergeTargetOutputPort = castTo($getPorts_1(mergeTarget, EAST_2).iterator_0().next_1(), 11); - for (port$iterator = new ArrayList$1(mergeSource.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - while (port.incomingEdges.array.length != 0) { - $setTarget_0(castTo($get_11(port.incomingEdges, 0), 17), mergeTargetInputPort); - } - while (port.outgoingEdges.array.length != 0) { - $setSource_0(castTo($get_11(port.outgoingEdges, 0), 17), mergeTargetOutputPort); - } - } - keepSourcePort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), null); - keepTargetPort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), null); -} - -function $process_19(this$static, layeredGraph, monitor){ - var currNode, currNodeType, lastNode, lastNodeType, layer, layerIter, nodeIndex, nodes, state; - $begin(monitor, 'Hyperedge merging', 1); - $identifyHyperedges(this$static, layeredGraph); - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - nodes = layer.nodes; - if (nodes.array.length == 0) { - continue; - } - currNode = null; - currNodeType = null; - lastNode = null; - lastNodeType = null; - for (nodeIndex = 0; nodeIndex < nodes.array.length; nodeIndex++) { - currNode = (checkCriticalElementIndex(nodeIndex, nodes.array.length) , castTo(nodes.array[nodeIndex], 10)); - currNodeType = currNode.type_0; - if (currNodeType == ($clinit_LNode$NodeType() , LONG_EDGE) && lastNodeType == LONG_EDGE) { - state = $checkMergeAllowed(currNode, lastNode); - if (state.allowMerge) { - $mergeNodes(currNode, lastNode, state.sameSource, state.sameTarget); - checkCriticalElementIndex(nodeIndex, nodes.array.length); - removeFrom(nodes.array, nodeIndex, 1); - --nodeIndex; - currNode = lastNode; - currNodeType = lastNodeType; - } - } - lastNode = currNode; - lastNodeType = currNodeType; - } - } - $done_0(monitor); -} - -function HyperedgeDummyMerger(){ -} - -defineClass(1526, 1, $intern_105, HyperedgeDummyMerger); -_.process = function process_17(layeredGraph, monitor){ - $process_19(this, castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger', 1526); -function HyperedgeDummyMerger$MergeState(allowMerge, sameSource, sameTarget){ - this.allowMerge = allowMerge; - this.sameSource = sameSource; - this.sameTarget = sameTarget; -} - -defineClass(793, 1, {}, HyperedgeDummyMerger$MergeState); -_.allowMerge = false; -_.sameSource = false; -_.sameTarget = false; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$MergeState_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/MergeState', 793); -function HyperedgeDummyMerger$lambda$0$Type(){ -} - -defineClass(1527, 1, {}, HyperedgeDummyMerger$lambda$0$Type); -_.apply_0 = function apply_82(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$0$Type', 1527); -function HyperedgeDummyMerger$lambda$1$Type(){ -} - -defineClass(1528, 1, {}, HyperedgeDummyMerger$lambda$1$Type); -_.apply_0 = function apply_83(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 10).ports, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$1$Type', 1528); -function HyperedgeDummyMerger$lambda$2$Type(){ -} - -defineClass(1529, 1, $intern_19, HyperedgeDummyMerger$lambda$2$Type); -_.accept = function accept_74(arg0){ - castTo(arg0, 11).id_0 = -1; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$2$Type', 1529); -function $moveHypernode(layeredGraph, hypernode, right){ - var bendEdges, bendx, diffx, diffy, edge, edge$iterator, first, firstPoint, junctionPoints, lastPoint, northPort, port, port$iterator, second, southPort; - bendEdges = new ArrayList; - bendx = $intern_0; - diffx = $intern_0; - diffy = $intern_0; - if (right) { - bendx = layeredGraph.size_0.x_0; - for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (edge.bendPoints.size_0 != 0) { - firstPoint = castTo($getFirst(edge.bendPoints), 8); - if (firstPoint.x_0 < bendx) { - diffx = bendx - firstPoint.x_0; - diffy = $intern_0; - bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - bendx = firstPoint.x_0; - } - if (firstPoint.x_0 <= bendx) { - bendEdges.array[bendEdges.array.length] = edge; - edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, 1), 8).y_0 - firstPoint.y_0))); - } - } - } - } - } - else { - for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (edge.bendPoints.size_0 != 0) { - lastPoint = castTo($getLast(edge.bendPoints), 8); - if (lastPoint.x_0 > bendx) { - diffx = lastPoint.x_0 - bendx; - diffy = $intern_0; - bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - bendx = lastPoint.x_0; - } - if (lastPoint.x_0 >= bendx) { - bendEdges.array[bendEdges.array.length] = edge; - edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, edge.bendPoints.size_0 - 2), 8).y_0 - lastPoint.y_0))); - } - } - } - } - } - if (bendEdges.array.length != 0 && diffx > hypernode.size_0.x_0 / 2 && diffy > hypernode.size_0.y_0 / 2) { - northPort = new LPort; - $setNode(northPort, hypernode); - $setSide(northPort, ($clinit_PortSide() , NORTH_3)); - northPort.pos.x_0 = hypernode.size_0.x_0 / 2; - southPort = new LPort; - $setNode(southPort, hypernode); - $setSide(southPort, SOUTH_2); - southPort.pos.x_0 = hypernode.size_0.x_0 / 2; - southPort.pos.y_0 = hypernode.size_0.y_0; - for (edge$iterator = new ArrayList$1(bendEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (right) { - first = castTo($removeFirst_0(edge.bendPoints), 8); - second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.target):castTo($getFirst(edge.bendPoints), 8); - second.y_0 >= first.y_0?$setSource_0(edge, southPort):$setSource_0(edge, northPort); - } - else { - first = castTo($removeLast_0(edge.bendPoints), 8); - second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.source):castTo($getLast(edge.bendPoints), 8); - second.y_0 >= first.y_0?$setTarget_0(edge, southPort):$setTarget_0(edge, northPort); - } - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $advanceToFind(junctionPoints, first, true); - } - hypernode.pos.x_0 = bendx - hypernode.size_0.x_0 / 2; - } -} - -function $process_20(layeredGraph, monitor){ - var bottomEdges, layer, layer$iterator, leftEdges, node, node$iterator, port, port$iterator, rightEdges, topEdges; - $begin(monitor, 'Hypernodes processing', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , HYPERNODE)))) && node.ports.array.length <= 2) { - topEdges = 0; - rightEdges = 0; - bottomEdges = 0; - leftEdges = 0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 1: - ++topEdges; - break; - case 2: - ++rightEdges; - break; - case 3: - ++bottomEdges; - break; - case 4: - ++leftEdges; - } - } - topEdges == 0 && bottomEdges == 0 && $moveHypernode(layeredGraph, node, leftEdges <= rightEdges); - } - } - } - $done_0(monitor); -} - -function HypernodesProcessor(){ -} - -defineClass(1530, 1, $intern_105, HypernodesProcessor); -_.process = function process_18(layeredGraph, monitor){ - $process_20(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HypernodesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HypernodesProcessor', 1530); -function $process_21(layeredGraph, monitor){ - var bottomConstrainedNodes, constraint, i, layer, layer$iterator, node, node$iterator, nodes, topInsertionIndex; - $begin(monitor, 'Layer constraint edge reversal', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - topInsertionIndex = -1; - bottomConstrainedNodes = new ArrayList; - nodes = toNodeArray(layer.nodes); - for (i = 0; i < nodes.length; i++) { - constraint = castTo($getProperty(nodes[i], ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); - if (topInsertionIndex == -1) { - constraint != ($clinit_InLayerConstraint() , TOP_1) && (topInsertionIndex = i); - } - else { - if (constraint == ($clinit_InLayerConstraint() , TOP_1)) { - $setLayer_0(nodes[i], null); - $setLayer(nodes[i], topInsertionIndex++, layer); - } - } - constraint == ($clinit_InLayerConstraint() , BOTTOM_0) && $add_3(bottomConstrainedNodes, nodes[i]); - } - for (node$iterator = new ArrayList$1(bottomConstrainedNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - $setLayer_0(node, layer); - } - } - $done_0(monitor); -} - -function InLayerConstraintProcessor(){ -} - -defineClass(1531, 1, $intern_105, InLayerConstraintProcessor); -_.process = function process_19(layeredGraph, monitor){ - $process_21(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InLayerConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InLayerConstraintProcessor', 1531); -function $process_22(layeredGraph, monitor){ - $begin(monitor, 'Node margin calculation', 1); - $process($excludeEdgeHeadTailLabels(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, false, false, new LGraphAdapters$lambda$0$Type))))); - $done_0(monitor); -} - -function InnermostNodeMarginCalculator(){ -} - -defineClass(1532, 1, $intern_105, InnermostNodeMarginCalculator); -_.process = function process_20(layeredGraph, monitor){ - $process_22(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InnermostNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InnermostNodeMarginCalculator', 1532); -function $findNorthSouthPortXCoordinate(dummy){ - var e, e$iterator, margins, max_0, min_0, n, port; - port = castTo($get_11(dummy.ports, 0), 11); - if (port.outgoingEdges.array.length != 0 && port.incomingEdges.array.length != 0) { - throw toJs(new IllegalStateException_0('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.')); - } - if (port.outgoingEdges.array.length != 0) { - min_0 = $intern_59; - for (e$iterator = new ArrayList$1(port.outgoingEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - n = e.target.owner; - margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); - min_0 = $wnd.Math.min(min_0, n.pos.x_0 - margins.left); - } - return new Present(checkNotNull(min_0)); - } - if (port.incomingEdges.array.length != 0) { - max_0 = $intern_60; - for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - n = e.source.owner; - margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); - max_0 = $wnd.Math.max(max_0, n.pos.x_0 + n.size_0.x_0 + margins.right); - } - return new Present(checkNotNull(max_0)); - } - return $clinit_Absent() , $clinit_Absent() , INSTANCE; -} - -function $findYCoordinate(dummy, funGetOtherNode){ - var e, e$iterator, other; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(dummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - other = castTo(funGetOtherNode.apply_0(e), 10); - return new Present(checkNotNull(other.pos.y_0 + other.size_0.y_0 / 2)); - } - return $clinit_Absent() , $clinit_Absent() , INSTANCE; -} - -function $process_23(this$static, layeredGraph){ - var ilc, lc, margins, node, node$iterator, node$iterator0; - if (!castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - return; - } - for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - margins = castTo($getProperty(node, ($clinit_LayeredOptions() , MARGINS)), 142); - this$static.minX = $wnd.Math.min(this$static.minX, node.pos.x_0 - margins.left); - this$static.maxX = $wnd.Math.max(this$static.maxX, node.pos.x_0 + node.size_0.x_0 + margins.right); - this$static.minY = $wnd.Math.min(this$static.minY, node.pos.y_0 - margins.top_0); - this$static.maxY = $wnd.Math.max(this$static.maxY, node.pos.y_0 + node.size_0.y_0 + margins.bottom); - } - } - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - switch (node.type_0.ordinal) { - case 2: - lc = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (lc == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { - node.pos.x_0 = this$static.minX - 10; - $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$0$Type).transform(new InteractiveExternalPortPositioner$lambda$1$Type(node)); - break; - } - - if (lc == LAST_SEPARATE_0) { - node.pos.x_0 = this$static.maxX + 10; - $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$2$Type).transform(new InteractiveExternalPortPositioner$lambda$3$Type(node)); - break; - } - - ilc = castTo($getProperty(node, IN_LAYER_CONSTRAINT), 303); - if (ilc == ($clinit_InLayerConstraint() , TOP_1)) { - $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$4$Type(node)); - node.pos.y_0 = this$static.minY - 10; - break; - } - - if (ilc == BOTTOM_0) { - $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$5$Type(node)); - node.pos.y_0 = this$static.maxY + 10; - break; - } - - break; - default:throw toJs(new IllegalArgumentException_0('The node type ' + node.type_0 + ' is not supported by the ' + Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit)); - } - } - } -} - -function InteractiveExternalPortPositioner(){ -} - -function lambda$1_9(node_0, d_1){ - return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); -} - -function lambda$3_1(node_0, d_1){ - return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); -} - -function lambda$4_4(node_0, x_1){ - return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; -} - -function lambda$5_1(node_0, x_1){ - return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; -} - -defineClass(1533, 1, $intern_105, InteractiveExternalPortPositioner); -_.process = function process_21(layeredGraph, progressMonitor){ - $process_23(this, castTo(layeredGraph, 37)); -} -; -_.maxX = $intern_60; -_.maxY = $intern_60; -_.minX = $intern_59; -_.minY = $intern_59; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner', 1533); -function InteractiveExternalPortPositioner$lambda$0$Type(){ -} - -defineClass(1534, 1, {}, InteractiveExternalPortPositioner$lambda$0$Type); -_.apply_0 = function apply_84(arg0){ - return castTo(arg0, 17).target.owner; -} -; -_.equals_0 = function equals_112(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$0$Type', 1534); -function InteractiveExternalPortPositioner$lambda$1$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1535, 1, {}, InteractiveExternalPortPositioner$lambda$1$Type); -_.apply_0 = function apply_85(arg0){ - return lambda$1_9(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_113(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$1$Type', 1535); -function InteractiveExternalPortPositioner$lambda$2$Type(){ -} - -defineClass(1536, 1, {}, InteractiveExternalPortPositioner$lambda$2$Type); -_.apply_0 = function apply_86(arg0){ - return castTo(arg0, 17).source.owner; -} -; -_.equals_0 = function equals_114(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$2$Type', 1536); -function InteractiveExternalPortPositioner$lambda$3$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1537, 1, {}, InteractiveExternalPortPositioner$lambda$3$Type); -_.apply_0 = function apply_87(arg0){ - return lambda$3_1(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_115(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$3$Type', 1537); -function InteractiveExternalPortPositioner$lambda$4$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1538, 1, {}, InteractiveExternalPortPositioner$lambda$4$Type); -_.apply_0 = function apply_88(arg0){ - return lambda$4_4(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_116(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$4$Type', 1538); -function InteractiveExternalPortPositioner$lambda$5$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1539, 1, {}, InteractiveExternalPortPositioner$lambda$5$Type); -_.apply_0 = function apply_89(arg0){ - return lambda$5_1(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_117(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$5$Type', 1539); -function $clinit_IntermediateProcessorStrategy(){ - $clinit_IntermediateProcessorStrategy = emptyMethod; - DIRECTION_PREPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_PREPROCESSOR', 0); - COMMENT_PREPROCESSOR = new IntermediateProcessorStrategy('COMMENT_PREPROCESSOR', 1); - EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER = new IntermediateProcessorStrategy('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER', 2); - INTERACTIVE_EXTERNAL_PORT_POSITIONER = new IntermediateProcessorStrategy('INTERACTIVE_EXTERNAL_PORT_POSITIONER', 3); - PARTITION_PREPROCESSOR = new IntermediateProcessorStrategy('PARTITION_PREPROCESSOR', 4); - LABEL_DUMMY_INSERTER = new IntermediateProcessorStrategy('LABEL_DUMMY_INSERTER', 5); - SELF_LOOP_PREPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_PREPROCESSOR', 6); - LAYER_CONSTRAINT_PREPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_PREPROCESSOR', 7); - PARTITION_MIDPROCESSOR = new IntermediateProcessorStrategy('PARTITION_MIDPROCESSOR', 8); - HIGH_DEGREE_NODE_LAYER_PROCESSOR = new IntermediateProcessorStrategy('HIGH_DEGREE_NODE_LAYER_PROCESSOR', 9); - NODE_PROMOTION = new IntermediateProcessorStrategy('NODE_PROMOTION', 10); - LAYER_CONSTRAINT_POSTPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_POSTPROCESSOR', 11); - PARTITION_POSTPROCESSOR = new IntermediateProcessorStrategy('PARTITION_POSTPROCESSOR', 12); - HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR', 13); - SEMI_INTERACTIVE_CROSSMIN_PROCESSOR = new IntermediateProcessorStrategy('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR', 14); - BREAKING_POINT_INSERTER = new IntermediateProcessorStrategy('BREAKING_POINT_INSERTER', 15); - LONG_EDGE_SPLITTER = new IntermediateProcessorStrategy('LONG_EDGE_SPLITTER', 16); - PORT_SIDE_PROCESSOR = new IntermediateProcessorStrategy('PORT_SIDE_PROCESSOR', 17); - INVERTED_PORT_PROCESSOR = new IntermediateProcessorStrategy('INVERTED_PORT_PROCESSOR', 18); - PORT_LIST_SORTER = new IntermediateProcessorStrategy('PORT_LIST_SORTER', 19); - SORT_BY_INPUT_ORDER_OF_MODEL = new IntermediateProcessorStrategy('SORT_BY_INPUT_ORDER_OF_MODEL', 20); - NORTH_SOUTH_PORT_PREPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_PREPROCESSOR', 21); - BREAKING_POINT_PROCESSOR = new IntermediateProcessorStrategy('BREAKING_POINT_PROCESSOR', 22); - ONE_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('ONE_SIDED_GREEDY_SWITCH', 23); - TWO_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('TWO_SIDED_GREEDY_SWITCH', 24); - SELF_LOOP_PORT_RESTORER = new IntermediateProcessorStrategy('SELF_LOOP_PORT_RESTORER', 25); - SINGLE_EDGE_GRAPH_WRAPPER = new IntermediateProcessorStrategy('SINGLE_EDGE_GRAPH_WRAPPER', 26); - IN_LAYER_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('IN_LAYER_CONSTRAINT_PROCESSOR', 27); - END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR', 28); - LABEL_AND_NODE_SIZE_PROCESSOR = new IntermediateProcessorStrategy('LABEL_AND_NODE_SIZE_PROCESSOR', 29); - INNERMOST_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('INNERMOST_NODE_MARGIN_CALCULATOR', 30); - SELF_LOOP_ROUTER = new IntermediateProcessorStrategy('SELF_LOOP_ROUTER', 31); - COMMENT_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('COMMENT_NODE_MARGIN_CALCULATOR', 32); - END_LABEL_PREPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_PREPROCESSOR', 33); - LABEL_DUMMY_SWITCHER = new IntermediateProcessorStrategy('LABEL_DUMMY_SWITCHER', 34); - CENTER_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('CENTER_LABEL_MANAGEMENT_PROCESSOR', 35); - LABEL_SIDE_SELECTOR = new IntermediateProcessorStrategy('LABEL_SIDE_SELECTOR', 36); - HYPEREDGE_DUMMY_MERGER = new IntermediateProcessorStrategy('HYPEREDGE_DUMMY_MERGER', 37); - HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR', 38); - LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR = new IntermediateProcessorStrategy('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR', 39); - HIERARCHICAL_PORT_POSITION_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_POSITION_PROCESSOR', 40); - CONSTRAINTS_POSTPROCESSOR = new IntermediateProcessorStrategy('CONSTRAINTS_POSTPROCESSOR', 41); - COMMENT_POSTPROCESSOR = new IntermediateProcessorStrategy('COMMENT_POSTPROCESSOR', 42); - HYPERNODE_PROCESSOR = new IntermediateProcessorStrategy('HYPERNODE_PROCESSOR', 43); - HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER', 44); - LONG_EDGE_JOINER = new IntermediateProcessorStrategy('LONG_EDGE_JOINER', 45); - SELF_LOOP_POSTPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_POSTPROCESSOR', 46); - BREAKING_POINT_REMOVER = new IntermediateProcessorStrategy('BREAKING_POINT_REMOVER', 47); - NORTH_SOUTH_PORT_POSTPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_POSTPROCESSOR', 48); - HORIZONTAL_COMPACTOR = new IntermediateProcessorStrategy('HORIZONTAL_COMPACTOR', 49); - LABEL_DUMMY_REMOVER = new IntermediateProcessorStrategy('LABEL_DUMMY_REMOVER', 50); - FINAL_SPLINE_BENDPOINTS_CALCULATOR = new IntermediateProcessorStrategy('FINAL_SPLINE_BENDPOINTS_CALCULATOR', 51); - END_LABEL_SORTER = new IntermediateProcessorStrategy('END_LABEL_SORTER', 52); - REVERSED_EDGE_RESTORER = new IntermediateProcessorStrategy('REVERSED_EDGE_RESTORER', 53); - END_LABEL_POSTPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_POSTPROCESSOR', 54); - HIERARCHICAL_NODE_RESIZER = new IntermediateProcessorStrategy('HIERARCHICAL_NODE_RESIZER', 55); - DIRECTION_POSTPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_POSTPROCESSOR', 56); -} - -function IntermediateProcessorStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_32(name_0){ - $clinit_IntermediateProcessorStrategy(); - return valueOf(($clinit_IntermediateProcessorStrategy$Map() , $MAP_20), name_0); -} - -function values_38(){ - $clinit_IntermediateProcessorStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 77, 0, [DIRECTION_PREPROCESSOR, COMMENT_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, INTERACTIVE_EXTERNAL_PORT_POSITIONER, PARTITION_PREPROCESSOR, LABEL_DUMMY_INSERTER, SELF_LOOP_PREPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, PARTITION_MIDPROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, NODE_PROMOTION, LAYER_CONSTRAINT_POSTPROCESSOR, PARTITION_POSTPROCESSOR, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, BREAKING_POINT_INSERTER, LONG_EDGE_SPLITTER, PORT_SIDE_PROCESSOR, INVERTED_PORT_PROCESSOR, PORT_LIST_SORTER, SORT_BY_INPUT_ORDER_OF_MODEL, NORTH_SOUTH_PORT_PREPROCESSOR, BREAKING_POINT_PROCESSOR, ONE_SIDED_GREEDY_SWITCH, TWO_SIDED_GREEDY_SWITCH, SELF_LOOP_PORT_RESTORER, SINGLE_EDGE_GRAPH_WRAPPER, IN_LAYER_CONSTRAINT_PROCESSOR, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, SELF_LOOP_ROUTER, COMMENT_NODE_MARGIN_CALCULATOR, END_LABEL_PREPROCESSOR, LABEL_DUMMY_SWITCHER, CENTER_LABEL_MANAGEMENT_PROCESSOR, LABEL_SIDE_SELECTOR, HYPEREDGE_DUMMY_MERGER, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, HIERARCHICAL_PORT_POSITION_PROCESSOR, CONSTRAINTS_POSTPROCESSOR, COMMENT_POSTPROCESSOR, HYPERNODE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, LONG_EDGE_JOINER, SELF_LOOP_POSTPROCESSOR, BREAKING_POINT_REMOVER, NORTH_SOUTH_PORT_POSTPROCESSOR, HORIZONTAL_COMPACTOR, LABEL_DUMMY_REMOVER, FINAL_SPLINE_BENDPOINTS_CALCULATOR, END_LABEL_SORTER, REVERSED_EDGE_RESTORER, END_LABEL_POSTPROCESSOR, HIERARCHICAL_NODE_RESIZER, DIRECTION_POSTPROCESSOR]); -} - -defineClass(77, 22, {3:1, 35:1, 22:1, 77:1, 234:1}, IntermediateProcessorStrategy); -_.create_1 = function create_5(){ - switch (this.ordinal) { - case 15: - return new BreakingPointInserter; - case 22: - return new BreakingPointProcessor; - case 47: - return new BreakingPointRemover; - case 28: - case 35: - return new LabelManagementProcessor; - case 32: - return new CommentNodeMarginCalculator; - case 42: - return new CommentPostprocessor; - case 1: - return new CommentPreprocessor; - case 41: - return new ConstraintsPostprocessor; - case 56: - return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)); - case 0: - return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INPUT_DIRECTION)); - case 2: - return new EdgeAndLayerConstraintEdgeReverser; - case 54: - return new EndLabelPostprocessor; - case 33: - return new EndLabelPreprocessor; - case 51: - return new FinalSplineBendpointsCalculator; - case 55: - return new HierarchicalNodeResizingProcessor; - case 13: - return new HierarchicalPortConstraintProcessor; - case 38: - return new HierarchicalPortDummySizeProcessor; - case 44: - return new HierarchicalPortOrthogonalEdgeRouter; - case 40: - return new HierarchicalPortPositionProcessor; - case 9: - return new HighDegreeNodeLayeringProcessor; - case 49: - return new HorizontalGraphCompactor; - case 37: - return new HyperedgeDummyMerger; - case 43: - return new HypernodesProcessor; - case 27: - return new InLayerConstraintProcessor; - case 30: - return new InnermostNodeMarginCalculator; - case 3: - return new InteractiveExternalPortPositioner; - case 18: - return new InvertedPortProcessor; - case 29: - return new LabelAndNodeSizeProcessor; - case 5: - return new LabelDummyInserter; - case 50: - return new LabelDummyRemover; - case 34: - return new LabelDummySwitcher; - case 36: - return new LabelSideSelector; - case 52: - return new EndLabelSorter; - case 11: - return new LayerConstraintPostprocessor; - case 7: - return new LayerConstraintPreprocessor; - case 39: - return new LayerSizeAndGraphHeightCalculator; - case 45: - return new LongEdgeJoiner; - case 16: - return new LongEdgeSplitter; - case 10: - return new NodePromotion; - case 48: - return new NorthSouthPortPostprocessor; - case 21: - return new NorthSouthPortPreprocessor; - case 23: - return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0)); - case 8: - return new PartitionMidprocessor; - case 12: - return new PartitionPostprocessor; - case 4: - return new PartitionPreprocessor; - case 19: - return new PortListSorter; - case 17: - return new PortSideProcessor; - case 53: - return new ReversedEdgeRestorer; - case 6: - return new SelfLoopPreProcessor; - case 25: - return new SelfLoopPortRestorer; - case 46: - return new SelfLoopPostProcessor; - case 31: - return new SelfLoopRouter; - case 14: - return new SemiInteractiveCrossMinProcessor; - case 26: - return new SingleEdgeGraphWrapper; - case 20: - return new SortByInputModelProcessor; - case 24: - return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)); - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); - } -} -; -var BREAKING_POINT_INSERTER, BREAKING_POINT_PROCESSOR, BREAKING_POINT_REMOVER, CENTER_LABEL_MANAGEMENT_PROCESSOR, COMMENT_NODE_MARGIN_CALCULATOR, COMMENT_POSTPROCESSOR, COMMENT_PREPROCESSOR, CONSTRAINTS_POSTPROCESSOR, DIRECTION_POSTPROCESSOR, DIRECTION_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, END_LABEL_POSTPROCESSOR, END_LABEL_PREPROCESSOR, END_LABEL_SORTER, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, FINAL_SPLINE_BENDPOINTS_CALCULATOR, HIERARCHICAL_NODE_RESIZER, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, HIERARCHICAL_PORT_POSITION_PROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, HORIZONTAL_COMPACTOR, HYPEREDGE_DUMMY_MERGER, HYPERNODE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, INTERACTIVE_EXTERNAL_PORT_POSITIONER, INVERTED_PORT_PROCESSOR, IN_LAYER_CONSTRAINT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, LABEL_DUMMY_INSERTER, LABEL_DUMMY_REMOVER, LABEL_DUMMY_SWITCHER, LABEL_SIDE_SELECTOR, LAYER_CONSTRAINT_POSTPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, LONG_EDGE_JOINER, LONG_EDGE_SPLITTER, NODE_PROMOTION, NORTH_SOUTH_PORT_POSTPROCESSOR, NORTH_SOUTH_PORT_PREPROCESSOR, ONE_SIDED_GREEDY_SWITCH, PARTITION_MIDPROCESSOR, PARTITION_POSTPROCESSOR, PARTITION_PREPROCESSOR, PORT_LIST_SORTER, PORT_SIDE_PROCESSOR, REVERSED_EDGE_RESTORER, SELF_LOOP_PORT_RESTORER, SELF_LOOP_POSTPROCESSOR, SELF_LOOP_PREPROCESSOR, SELF_LOOP_ROUTER, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, SINGLE_EDGE_GRAPH_WRAPPER, SORT_BY_INPUT_ORDER_OF_MODEL, TWO_SIDED_GREEDY_SWITCH; -var Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'IntermediateProcessorStrategy', 77, Ljava_lang_Enum_2_classLit, values_38, valueOf_32); -function $clinit_IntermediateProcessorStrategy$Map(){ - $clinit_IntermediateProcessorStrategy$Map = emptyMethod; - $MAP_20 = createValueOfMap(values_38()); -} - -var $MAP_20; -function $createEastPortSideDummies(layeredGraph, eastwardPort, edge, layerNodeList){ - var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, labelPlacement; - if (edge.source.owner == eastwardPort.owner) { - return; - } - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - layerNodeList.array[layerNodeList.array.length] = dummy; - dummyInput = new LPort; - $setNode(dummyInput, dummy); - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - dummyOutput = new LPort; - $setNode(dummyOutput, dummy); - $setSide(dummyOutput, EAST_2); - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, eastwardPort); - $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); - labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - labelPlacement = castTo($getProperty(label_0, EDGE_LABELS_PLACEMENT), 272); - if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { - $hasProperty(label_0, END_LABEL_EDGE) || $setProperty_0(label_0, END_LABEL_EDGE, edge); - $remove_8(labelIterator); - $add_3(dummyEdge.labels, label_0); - } - } -} - -function $createWestPortSideDummies(layeredGraph, westwardPort, edge, layerNodeList){ - var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, originalTarget; - if (edge.target.owner == westwardPort.owner) { - return; - } - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - layerNodeList.array[layerNodeList.array.length] = dummy; - dummyInput = new LPort; - $setNode(dummyInput, dummy); - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - dummyOutput = new LPort; - $setNode(dummyOutput, dummy); - $setSide(dummyOutput, EAST_2); - originalTarget = edge.target; - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, originalTarget); - labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { - $setProperty_0(label_0, END_LABEL_EDGE, edge); - $remove_8(labelIterator); - $add_3(dummyEdge.labels, label_0); - } - } - $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); -} - -function $process_24(layeredGraph, monitor){ - var currentLayer, edge, edge$array, edge$index, edge$max, edgeArray, edges, layerIterator, layers, node, node$iterator, node$iterator0, node$iterator1, port, port$iterator, port$iterator0, previousLayer, unassignedNodes; - $begin(monitor, 'Inverted port preprocessing', 1); - layers = layeredGraph.layers; - layerIterator = new AbstractList$ListIteratorImpl(layers, 0); - currentLayer = null; - unassignedNodes = new ArrayList; - while (layerIterator.i < layerIterator.this$01_0.size_1()) { - previousLayer = currentLayer; - currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); - for (node$iterator0 = new ArrayList$1(unassignedNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - $setLayer_0(node, previousLayer); - } - unassignedNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator1 = new ArrayList$1(currentLayer.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - if (!$isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - continue; - } - for (port$iterator0 = $getPorts_0(node, ($clinit_PortType() , INPUT), ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator0.hasNext_0();) { - port = castTo(port$iterator0.next_1(), 11); - edges = port.incomingEdges; - edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $createEastPortSideDummies(layeredGraph, port, edge, unassignedNodes); - } - } - for (port$iterator = $getPorts_0(node, OUTPUT, WEST_2).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - edges = port.outgoingEdges; - edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $createWestPortSideDummies(layeredGraph, port, edge, unassignedNodes); - } - } - } - } - for (node$iterator = new ArrayList$1(unassignedNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, currentLayer); - } - $done_0(monitor); -} - -function $setLongEdgeSourceAndTarget(longEdgeDummy, dummyInputPort, dummyOutputPort){ - var sourceNode, sourceNodeType, sourcePort, targetNode, targetNodeType, targetPort; - sourcePort = castTo($get_11(dummyInputPort.incomingEdges, 0), 17).source; - sourceNode = sourcePort.owner; - sourceNodeType = sourceNode.type_0; - targetPort = castTo($get_11(dummyOutputPort.outgoingEdges, 0), 17).target; - targetNode = targetPort.owner; - targetNodeType = targetNode.type_0; - sourceNodeType == ($clinit_LNode$NodeType() , LONG_EDGE)?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(sourceNode, LONG_EDGE_SOURCE), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), sourcePort); - targetNodeType == LONG_EDGE?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), castTo($getProperty(targetNode, LONG_EDGE_TARGET), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), targetPort); -} - -function InvertedPortProcessor(){ -} - -defineClass(1540, 1, $intern_105, InvertedPortProcessor); -_.process = function process_22(layeredGraph, monitor){ - $process_24(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InvertedPortProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InvertedPortProcessor', 1540); -function $computePortLabelBox(dummyPort, labelLabelSpacing){ - var label_0, label$iterator, labelSize, result; - if (dummyPort.labels.array.length == 0) { - return null; - } - else { - result = new ElkRectangle; - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelSize = label_0.size_0; - result.width_0 = $wnd.Math.max(result.width_0, labelSize.x_0); - result.height += labelSize.y_0; - } - result.height += (dummyPort.labels.array.length - 1) * labelLabelSpacing; - return result; - } -} - -function $lambda$2(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3, dummy_3){ - $placeExternalPortDummyLabels(dummy_3, portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3); -} - -function $placeExternalPortDummyLabels(dummy, graphPortLabelPlacement, placeNextToPortIfPossible, treatAsGroup){ - var currentY, dummyPort, dummyPortPos, dummySize, label_0, label$iterator, labelHeight, labelLabelSpacing, labelPortSpacingHorizontal, labelPortSpacingVertical, labelPos, portLabelBox; - labelPortSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, ($clinit_LayeredOptions() , SPACING_LABEL_PORT_HORIZONTAL)))); - labelPortSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); - dummySize = dummy.size_0; - dummyPort = castTo($get_11(dummy.ports, 0), 11); - dummyPortPos = dummyPort.pos; - portLabelBox = $computePortLabelBox(dummyPort, labelLabelSpacing); - if (!portLabelBox) { - return; - } - if (graphPortLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { - switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; - portLabelBox.y_0 = labelPortSpacingVertical; - break; - case 3: - portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; - portLabelBox.y_0 = -labelPortSpacingVertical - portLabelBox.height; - break; - case 2: - if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { - labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; - portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; - } - else { - portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; - } - - portLabelBox.x_0 = -labelPortSpacingHorizontal - portLabelBox.width_0; - break; - case 4: - if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { - labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; - portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; - } - else { - portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; - } - - portLabelBox.x_0 = labelPortSpacingHorizontal; - } - } - else if (graphPortLabelPlacement.contains(OUTSIDE_0)) { - switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - case 3: - portLabelBox.x_0 = dummyPortPos.x_0 + labelPortSpacingHorizontal; - break; - case 2: - case 4: - if (placeNextToPortIfPossible && !dummyPort.connectedToExternalNodes) { - labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; - portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; - } - else { - portLabelBox.y_0 = dummyPortPos.y_0 + labelPortSpacingVertical; - } - - } - } - currentY = portLabelBox.y_0; - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelPos = label_0.pos; - labelPos.x_0 = portLabelBox.x_0; - labelPos.y_0 = currentY; - currentY += label_0.size_0.y_0 + labelLabelSpacing; - } -} - -function $process_25(layeredGraph, monitor){ - var layer, layer$iterator, placeNextToPort, portLabelPlacement, treatAsGroup; - $begin(monitor, 'Node and Port Label Placement and Node Sizing', 1); - calculateLabelAndNodeSizes(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, true, true, new LabelAndNodeSizeProcessor$lambda$0$Type))); - if (castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - portLabelPlacement = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_LABELS_PLACEMENT_1)), 21); - placeNextToPort = portLabelPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); - treatAsGroup = $booleanValue(castToBoolean($getProperty(layeredGraph, PORT_LABELS_TREAT_AS_GROUP))); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layer.nodes, 16)), new LabelAndNodeSizeProcessor$lambda$1$Type), new LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement, placeNextToPort, treatAsGroup)); - } - } - $done_0(monitor); -} - -function LabelAndNodeSizeProcessor(){ -} - -defineClass(1541, 1, $intern_105, LabelAndNodeSizeProcessor); -_.process = function process_23(layeredGraph, monitor){ - $process_25(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor', 1541); -function LabelAndNodeSizeProcessor$lambda$0$Type(){ -} - -defineClass(1542, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$0$Type); -_.test_0 = function test_37(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$0$Type', 1542); -function LabelAndNodeSizeProcessor$lambda$1$Type(){ -} - -defineClass(1543, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$1$Type); -_.test_0 = function test_38(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$1$Type', 1543); -function LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3){ - this.portLabelPlacement_1 = portLabelPlacement_1; - this.placeNextToPort_2 = placeNextToPort_2; - this.treatAsGroup_3 = treatAsGroup_3; -} - -defineClass(1544, 1, $intern_19, LabelAndNodeSizeProcessor$lambda$2$Type); -_.accept = function accept_75(arg0){ - $lambda$2(this.portLabelPlacement_1, this.placeNextToPort_2, this.treatAsGroup_3, castTo(arg0, 10)); -} -; -_.placeNextToPort_2 = false; -_.treatAsGroup_3 = false; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$2$Type', 1544); -function $clinit_LabelDummyInserter(){ - $clinit_LabelDummyInserter = emptyMethod; - CENTER_LABEL = new LabelDummyInserter$1; -} - -function $createLabelDummy(layeredGraph, edge, thickness, representedLabels){ - var dummyNode, dummyPort, dummyPort$iterator, portPos; - dummyNode = new LNode(layeredGraph); - $setType(dummyNode, ($clinit_LNode$NodeType() , LABEL)); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummyNode, REPRESENTED_LABELS, representedLabels); - $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(dummyNode, LONG_EDGE_SOURCE, edge.source); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, edge.target); - splitEdge(edge, dummyNode); - portPos = $wnd.Math.floor(thickness / 2); - for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { - dummyPort = castTo($next_7(dummyPort$iterator), 11); - dummyPort.pos.y_0 = portPos; - } - return dummyNode; -} - -function $process_26(layeredGraph, monitor){ - var dummyNode, dummySize, edge, edge$iterator, edgeLabelSpacing, iterator, label_0, labelLabelSpacing, layoutDirection, newDummyNodes, node, node$iterator, representedLabels, thickness; - $begin(monitor, 'Label dummy insertions', 1); - newDummyNodes = new ArrayList; - edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); - layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.source.owner != edge.target.owner && any_0(edge.labels, CENTER_LABEL)) { - thickness = $retrieveThickness(edge); - representedLabels = newArrayListWithCapacity(edge.labels.array.length); - dummyNode = $createLabelDummy(layeredGraph, edge, thickness, representedLabels); - newDummyNodes.array[newDummyNodes.array.length] = dummyNode; - dummySize = dummyNode.size_0; - iterator = new AbstractList$ListIteratorImpl(edge.labels, 0); - while (iterator.i < iterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 70)); - if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5))) { - if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { - dummySize.x_0 += label_0.size_0.x_0 + labelLabelSpacing; - dummySize.y_0 = $wnd.Math.max(dummySize.y_0, label_0.size_0.y_0); - } - else { - dummySize.x_0 = $wnd.Math.max(dummySize.x_0, label_0.size_0.x_0); - dummySize.y_0 += label_0.size_0.y_0 + labelLabelSpacing; - } - representedLabels.array[representedLabels.array.length] = label_0; - $remove_8(iterator); - } - } - if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { - dummySize.x_0 -= labelLabelSpacing; - dummySize.y_0 += edgeLabelSpacing + thickness; - } - else { - dummySize.y_0 += edgeLabelSpacing - labelLabelSpacing + thickness; - } - } - } - } - $addAll_2(layeredGraph.layerlessNodes, newDummyNodes); - $done_0(monitor); -} - -function $retrieveThickness(edge){ - var thickness; - thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); - if (thickness < 0) { - thickness = 0; - $setProperty_0(edge, EDGE_THICKNESS_0, thickness); - } - return thickness; -} - -function LabelDummyInserter(){ - $clinit_LabelDummyInserter(); -} - -defineClass(1545, 1, $intern_105, LabelDummyInserter); -_.process = function process_24(layeredGraph, monitor){ - $process_26(castTo(layeredGraph, 37), monitor); -} -; -var CENTER_LABEL; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter', 1545); -function LabelDummyInserter$1(){ -} - -defineClass(1546, 1, $intern_89, LabelDummyInserter$1); -_.apply_1 = function apply_90(label_0){ - return maskUndefined($getProperty(castTo(label_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); -} -; -_.equals_0 = function equals_118(other){ - return this === other; -} -; -_.test_0 = function test_39(input_0){ - return maskUndefined($getProperty(castTo(input_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter/1', 1546); -function $placeLabelsForHorizontalLayout(labels, labelPos, labelSpacing, labelSpace){ - var label_0, label$iterator; - for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - label_0.pos.x_0 = labelPos.x_0 + (labelSpace.x_0 - label_0.size_0.x_0) / 2; - label_0.pos.y_0 = labelPos.y_0; - labelPos.y_0 += label_0.size_0.y_0 + labelSpacing; - } -} - -function $placeLabelsForVerticalLayout(labels, labelPos, labelSpacing, labelSpace, leftAligned, layoutDirection){ - var effectiveLabels, inline, label_0, label$iterator; - inline = !$spliterator($filter(labels.stream(), new Predicate$lambda$2$Type(new LabelDummyRemover$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); - effectiveLabels = labels; - layoutDirection == ($clinit_Direction_0() , UP_1) && (effectiveLabels = instanceOf(effectiveLabels, 152)?$reverse(castTo(effectiveLabels, 152)):instanceOf(effectiveLabels, 131)?castTo(effectiveLabels, 131).forwardList:instanceOf(effectiveLabels, 54)?new Lists$RandomAccessReverseList(effectiveLabels):new Lists$ReverseList(effectiveLabels)); - for (label$iterator = effectiveLabels.iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - label_0.pos.x_0 = labelPos.x_0; - inline?(label_0.pos.y_0 = labelPos.y_0 + (labelSpace.y_0 - label_0.size_0.y_0) / 2):leftAligned?(label_0.pos.y_0 = labelPos.y_0):(label_0.pos.y_0 = labelPos.y_0 + labelSpace.y_0 - label_0.size_0.y_0); - labelPos.x_0 += label_0.size_0.x_0 + labelSpacing; - } -} - -function $process_27(layeredGraph, monitor){ - var currLabelPos, edgeLabelSpacing, labelLabelSpacing, labelSpace, labelsBelowEdge, layer, layer$iterator, layoutDirection, node, nodeIterator, originEdge, representedLabels, thickness; - $begin(monitor, 'Label dummy removal', 1); - edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); - layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); - while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { - node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); - if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - originEdge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); - thickness = $doubleValue(castToDouble($getProperty(originEdge, EDGE_THICKNESS_0))); - labelsBelowEdge = maskUndefined($getProperty(node, LABEL_SIDE)) === maskUndefined(($clinit_LabelSide() , BELOW)); - currLabelPos = new KVector_2(node.pos); - labelsBelowEdge && (currLabelPos.y_0 += thickness + edgeLabelSpacing); - labelSpace = new KVector_1(node.size_0.x_0, node.size_0.y_0 - thickness - edgeLabelSpacing); - representedLabels = castTo($getProperty(node, REPRESENTED_LABELS), 15); - layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1?$placeLabelsForVerticalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace, labelsBelowEdge, layoutDirection):$placeLabelsForHorizontalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace); - $addAll_2(originEdge.labels, representedLabels); - joinAt(node, maskUndefined($getProperty(layeredGraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , POLYLINE))); - $remove_8(nodeIterator); - } - } - } - $done_0(monitor); -} - -function LabelDummyRemover(){ -} - -defineClass(1547, 1, $intern_105, LabelDummyRemover); -_.process = function process_25(layeredGraph, monitor){ - $process_27(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover', 1547); -function LabelDummyRemover$lambda$0$Type(){ -} - -defineClass(1548, 1, $intern_39, LabelDummyRemover$lambda$0$Type); -_.test_0 = function test_40(arg0){ - return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover/lambda$0$Type', 1548); -function $clinit_LabelDummySwitcher(){ - $clinit_LabelDummySwitcher = emptyMethod; - INCLUDE_LABEL = new Property_0('edgelabelcenterednessanalysis.includelabel', ($clinit_Boolean() , FALSE_0)); -} - -function $assignIdsToLayers(layeredGraph){ - var layer, layer$iterator, layerIndex; - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layer.id_0 = layerIndex; - ++layerIndex; - } -} - -function $assignLayer(this$static, labelDummyInfo, targetLayerIndex){ - var label_0, label$iterator, newLayerId; - targetLayerIndex != labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1() && $swapNodes(labelDummyInfo.labelDummy, $ithDummyNode(labelDummyInfo, targetLayerIndex - labelDummyInfo.leftmostLayerId)); - newLayerId = labelDummyInfo.labelDummy.layer.id_0; - this$static.layerWidths[newLayerId] = $wnd.Math.max(this$static.layerWidths[newLayerId], labelDummyInfo.labelDummy.size_0.x_0); - for (label$iterator = castTo($getProperty(labelDummyInfo.labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - $setProperty_0(label_0, INCLUDE_LABEL, ($clinit_Boolean() , true)); - } -} - -function $assignToWiderLayer(this$static, labelDummyInfo){ - var dummyWidth, layer, layer$iterator, validLayers; - dummyWidth = labelDummyInfo.labelDummy.size_0.x_0; - validLayers = new AbstractList$SubList($getGraph(labelDummyInfo.labelDummy).layers, labelDummyInfo.leftmostLayerId, labelDummyInfo.rightmostLayerId + 1); - for (layer$iterator = new AbstractList$IteratorImpl(validLayers); layer$iterator.i < layer$iterator.this$01_0.size_1();) { - layer = (checkCriticalElement(layer$iterator.i < layer$iterator.this$01_0.size_1()) , castTo(layer$iterator.this$01_0.get_0(layer$iterator.last = layer$iterator.i++), 29)); - if (layer.size_0.x_0 >= dummyWidth) { - $assignLayer(this$static, labelDummyInfo, layer.id_0); - return true; - } - } - return false; -} - -function $calculateLayerWidths(this$static, layeredGraph){ - var layer, layer$iterator; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - this$static.layerWidths[layer.id_0] = findMaxNonDummyNodeWidth(layer); - } -} - -function $computeLayerWidthSums(this$static, labelDummyInfo){ - var currentIndex, currentWidthSum, edgeNodeSpacing, layerWidthSums, leftDummy, leftDummy$iterator, lgraph, minSpaceBetweenLayers, nodeNodeSpacing, rightDummy, rightDummy$iterator; - lgraph = $getGraph(labelDummyInfo.labelDummy); - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE_BETWEEN_LAYERS_0)))) * 2; - nodeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); - minSpaceBetweenLayers = $wnd.Math.max(edgeNodeSpacing, nodeNodeSpacing); - layerWidthSums = initUnidimensionalArray(D_classLit, $intern_65, 25, labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1, 15, 1); - currentWidthSum = -minSpaceBetweenLayers; - currentIndex = 0; - for (leftDummy$iterator = labelDummyInfo.leftLongEdgeDummies.iterator_0(); leftDummy$iterator.hasNext_0();) { - leftDummy = castTo(leftDummy$iterator.next_1(), 10); - currentWidthSum += this$static.layerWidths[leftDummy.layer.id_0] + minSpaceBetweenLayers; - layerWidthSums[currentIndex++] = currentWidthSum; - } - currentWidthSum += this$static.layerWidths[labelDummyInfo.labelDummy.layer.id_0] + minSpaceBetweenLayers; - layerWidthSums[currentIndex++] = currentWidthSum; - for (rightDummy$iterator = new ArrayList$1(labelDummyInfo.rightLongEdgeDummies); rightDummy$iterator.i < rightDummy$iterator.this$01.array.length;) { - rightDummy = castTo($next_7(rightDummy$iterator), 10); - currentWidthSum += this$static.layerWidths[rightDummy.layer.id_0] + minSpaceBetweenLayers; - layerWidthSums[currentIndex++] = currentWidthSum; - } - return layerWidthSums; -} - -function $computeSpaceEfficientAssignment(this$static, labelDummyInfos){ - var labelCount, labelIndex, nonTrivialLabels; - nonTrivialLabels = $performTrivialAssignments(this$static, labelDummyInfos); - if (nonTrivialLabels.array.length == 0) { - return; - } - $sort(nonTrivialLabels, new LabelDummySwitcher$lambda$4$Type); - labelCount = nonTrivialLabels.array.length; - for (labelIndex = 0; labelIndex < labelCount; labelIndex++) { - $assignLayer(this$static, (checkCriticalElementIndex(labelIndex, nonTrivialLabels.array.length) , castTo(nonTrivialLabels.array[labelIndex], 286)), $findPotentiallyWidestLayer(this$static, nonTrivialLabels, labelIndex)); - } -} - -function $doUpdateLongEdgeLabelDummyInfo(labelDummy){ - var longEdgeDummy; - longEdgeDummy = ($clinit_LabelDummySwitcher() , castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner); - while (longEdgeDummy.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - $setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_BEFORE_LABEL_DUMMY), ($clinit_Boolean() , true)); - longEdgeDummy = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(longEdgeDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; - } -} - -function $findCenterLayerTargetId(this$static, labelDummyInfo){ - var i, layerWidthSums, threshold; - layerWidthSums = $computeLayerWidthSums(this$static, labelDummyInfo); - threshold = layerWidthSums[layerWidthSums.length - 1] / 2; - for (i = 0; i < layerWidthSums.length; i++) { - if (layerWidthSums[i] >= threshold) { - return labelDummyInfo.leftmostLayerId + i; - } - } - return labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1(); -} - -function $findPotentiallyWidestLayer(this$static, labelDummyInfos, labelIndex){ - var currLabelInfo, label_0, labelCount, labelDummyInfo, labelDummyWidth, largestUnassignedLabel, layer, potentialWidth, widestLayerIndex, widestLayerWidth; - labelCount = labelDummyInfos.array.length; - labelDummyInfo = (checkCriticalElementIndex(labelIndex, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[labelIndex], 286)); - labelDummyWidth = labelDummyInfo.labelDummy.size_0.x_0; - widestLayerIndex = labelDummyInfo.leftmostLayerId; - widestLayerWidth = 0; - for (layer = labelDummyInfo.leftmostLayerId; layer <= labelDummyInfo.rightmostLayerId; layer++) { - if (labelDummyWidth <= this$static.layerWidths[layer]) { - return layer; - } - potentialWidth = this$static.layerWidths[layer]; - largestUnassignedLabel = null; - for (label_0 = labelIndex + 1; label_0 < labelCount; label_0++) { - currLabelInfo = (checkCriticalElementIndex(label_0, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[label_0], 286)); - currLabelInfo.leftmostLayerId <= layer && currLabelInfo.rightmostLayerId >= layer && (largestUnassignedLabel = currLabelInfo); - } - !!largestUnassignedLabel && (potentialWidth = $wnd.Math.max(potentialWidth, largestUnassignedLabel.labelDummy.size_0.x_0)); - if (potentialWidth > widestLayerWidth) { - widestLayerIndex = layer; - widestLayerWidth = potentialWidth; - } - } - return widestLayerIndex; -} - -function $findWidestLayerTargetId(this$static, labelDummyInfo){ - var index_0, widestLayerIndex; - widestLayerIndex = labelDummyInfo.leftmostLayerId; - for (index_0 = widestLayerIndex + 1; index_0 <= labelDummyInfo.rightmostLayerId; index_0++) { - this$static.layerWidths[index_0] > this$static.layerWidths[widestLayerIndex] && (widestLayerIndex = index_0); - } - return widestLayerIndex; -} - -function $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy){ - var infos, strategy, strategy$array, strategy$index, strategy$max; - infos = new EnumMap(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit); - for (strategy$array = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { - strategy = strategy$array[strategy$index]; - $put_8(infos, strategy, new ArrayList); - } - $forEach_3($map_0($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new LabelDummySwitcher$lambda$0$Type), new LabelDummySwitcher$lambda$1$Type), new LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy)), new LabelDummySwitcher$lambda$3$Type(infos)); - return infos; -} - -function $isPartOfReversedEdge(labelDummyInfo){ - var incoming, outgoing; - incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); - outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); - return $booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || $booleanValue(castToBoolean($getProperty(outgoing, REVERSED))); -} - -function $performTrivialAssignments(this$static, labelDummyInfos){ - var labelDummyInfo, labelDummyInfo$iterator, remainingLabels; - remainingLabels = new ArrayList_0(labelDummyInfos.size_1()); - for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { - labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); - labelDummyInfo.leftmostLayerId == labelDummyInfo.rightmostLayerId?$assignLayer(this$static, labelDummyInfo, labelDummyInfo.leftmostLayerId):$assignToWiderLayer(this$static, labelDummyInfo) || (remainingLabels.array[remainingLabels.array.length] = labelDummyInfo , true); - } - return remainingLabels; -} - -function $process_28(this$static, layeredGraph, monitor){ - var defaultPlacementStrategy, labelDummyInfos, strategy, strategy$array, strategy$array0, strategy$array1, strategy$index, strategy$index0, strategy$index1, strategy$max, strategy$max0, strategy$max1; - $begin(monitor, 'Label dummy switching', 1); - defaultPlacementStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)), 227); - $assignIdsToLayers(layeredGraph); - labelDummyInfos = $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy); - this$static.layerWidths = initUnidimensionalArray(D_classLit, $intern_65, 25, layeredGraph.layers.array.length, 15, 1); - for (strategy$array0 = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index0 = 0 , strategy$max0 = strategy$array0.length; strategy$index0 < strategy$max0; ++strategy$index0) { - strategy = strategy$array0[strategy$index0]; - if ((strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && !castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15).isEmpty()) { - $calculateLayerWidths(this$static, layeredGraph); - break; - } - } - for (strategy$array1 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index1 = 0 , strategy$max1 = strategy$array1.length; strategy$index1 < strategy$max1; ++strategy$index1) { - strategy = strategy$array1[strategy$index1]; - strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER || $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); - } - for (strategy$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { - strategy = strategy$array[strategy$index]; - (strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); - } - this$static.layerWidths = null; - $done_0(monitor); -} - -function $processStrategy(this$static, labelDummyInfos){ - var labelDummyInfo, labelDummyInfo$iterator, reversed, reversed0, layers, lowerMedian; - if (labelDummyInfos.isEmpty()) { - return; - } - if (castTo(labelDummyInfos.get_0(0), 286).placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , SPACE_EFFICIENT_LAYER)) { - $computeSpaceEfficientAssignment(this$static, labelDummyInfos); - } - else { - for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { - labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); - switch (labelDummyInfo.placementStrategy.ordinal) { - case 5: - $assignLayer(this$static, labelDummyInfo, $findCenterLayerTargetId(this$static, labelDummyInfo)); - break; - case 0: - $assignLayer(this$static, labelDummyInfo, (layers = labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1 , lowerMedian = (layers - 1) / 2 | 0 , labelDummyInfo.leftmostLayerId + lowerMedian)); - break; - case 4: - $assignLayer(this$static, labelDummyInfo, $findWidestLayerTargetId(this$static, labelDummyInfo)); - break; - case 2: - $setEndLayerNodeAlignment(labelDummyInfo); - $assignLayer(this$static, labelDummyInfo, (reversed0 = $isPartOfReversedEdge(labelDummyInfo) , reversed0?labelDummyInfo.leftmostLayerId:labelDummyInfo.rightmostLayerId)); - break; - case 1: - $setEndLayerNodeAlignment(labelDummyInfo); - $assignLayer(this$static, labelDummyInfo, (reversed = $isPartOfReversedEdge(labelDummyInfo) , reversed?labelDummyInfo.rightmostLayerId:labelDummyInfo.leftmostLayerId)); - } - $doUpdateLongEdgeLabelDummyInfo(labelDummyInfo.labelDummy); - } - } -} - -function $setEndLayerNodeAlignment(labelDummyInfo){ - var isHeadLabel, isPartOfReversedEdge; - isHeadLabel = labelDummyInfo.placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , HEAD_LAYER); - isPartOfReversedEdge = $isPartOfReversedEdge(labelDummyInfo); - isHeadLabel && !isPartOfReversedEdge || !isHeadLabel && isPartOfReversedEdge?$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , RIGHT_5)):$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , LEFT_5)); -} - -function $swapNodes(labelDummy, longEdgeDummy){ - var dummy1LayerPosition, dummy2LayerPosition, edge, edge$array, edge$array0, edge$array1, edge$array2, edge$index, edge$index0, edge$index1, edge$index2, edge$max, edge$max0, edge$max1, edge$max2, incomingEdges1, incomingEdges2, inputPort1, inputPort2, layer1, layer2, outgoingEdges1, outgoingEdges2, outputPort1, outputPort2; - layer1 = labelDummy.layer; - layer2 = longEdgeDummy.layer; - dummy1LayerPosition = $indexOf_3(layer1.nodes, labelDummy, 0); - dummy2LayerPosition = $indexOf_3(layer2.nodes, longEdgeDummy, 0); - inputPort1 = castTo($getPorts(labelDummy, ($clinit_PortType() , INPUT)).iterator_0().next_1(), 11); - outputPort1 = castTo($getPorts(labelDummy, OUTPUT).iterator_0().next_1(), 11); - inputPort2 = castTo($getPorts(longEdgeDummy, INPUT).iterator_0().next_1(), 11); - outputPort2 = castTo($getPorts(longEdgeDummy, OUTPUT).iterator_0().next_1(), 11); - incomingEdges1 = toEdgeArray(inputPort1.incomingEdges); - outgoingEdges1 = toEdgeArray(outputPort1.outgoingEdges); - incomingEdges2 = toEdgeArray(inputPort2.incomingEdges); - outgoingEdges2 = toEdgeArray(outputPort2.outgoingEdges); - $setLayer(labelDummy, dummy2LayerPosition, layer2); - for (edge$array0 = incomingEdges2 , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { - edge = edge$array0[edge$index0]; - $setTarget_0(edge, inputPort1); - } - for (edge$array1 = outgoingEdges2 , edge$index1 = 0 , edge$max1 = edge$array1.length; edge$index1 < edge$max1; ++edge$index1) { - edge = edge$array1[edge$index1]; - $setSource_0(edge, outputPort1); - } - $setLayer(longEdgeDummy, dummy1LayerPosition, layer1); - for (edge$array2 = incomingEdges1 , edge$index2 = 0 , edge$max2 = edge$array2.length; edge$index2 < edge$max2; ++edge$index2) { - edge = edge$array2[edge$index2]; - $setTarget_0(edge, inputPort2); - } - for (edge$array = outgoingEdges1 , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setSource_0(edge, outputPort2); - } -} - -function LabelDummySwitcher(){ - $clinit_LabelDummySwitcher(); -} - -function lambda$2_4(defaultPlacementStrategy_0, labelDummy_1){ - $clinit_LabelDummySwitcher(); - return new LabelDummySwitcher$LabelDummyInfo(labelDummy_1, defaultPlacementStrategy_0); -} - -function lambda$3_2(infos_0, dummyInfo_1){ - $clinit_LabelDummySwitcher(); - return castTo($get_14(infos_0, dummyInfo_1.placementStrategy), 15).add_2(dummyInfo_1); -} - -function lambda$4_5(info1_0, info2_1){ - $clinit_LabelDummySwitcher(); - return compare_4(info2_1.labelDummy.size_0.x_0, info1_0.labelDummy.size_0.x_0); -} - -defineClass(1359, 1, $intern_105, LabelDummySwitcher); -_.process = function process_26(layeredGraph, monitor){ - $process_28(this, castTo(layeredGraph, 37), monitor); -} -; -_.layerWidths = null; -var INCLUDE_LABEL; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher', 1359); -function $gatherLeftLongEdgeDummies(this$static){ - var source; - source = this$static.labelDummy; - do { - source = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(source).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; - source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && this$static.leftLongEdgeDummies.add_2(source); - } - while (source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); - this$static.leftLongEdgeDummies = reverse_0(this$static.leftLongEdgeDummies); -} - -function $gatherRightLongEdgeDummies(this$static){ - var target; - target = this$static.labelDummy; - do { - target = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(target).val$inputs1.iterator_0(), new Iterables$10))), 17).target.owner; - target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $add_3(this$static.rightLongEdgeDummies, target); - } - while (target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); -} - -function $ithDummyNode(this$static, i){ - return i < this$static.leftLongEdgeDummies.size_1()?castTo(this$static.leftLongEdgeDummies.get_0(i), 10):i == this$static.leftLongEdgeDummies.size_1()?this$static.labelDummy:castTo($get_11(this$static.rightLongEdgeDummies, i - this$static.leftLongEdgeDummies.size_1() - 1), 10); -} - -function LabelDummySwitcher$LabelDummyInfo(labelDummy, defaultPlacementStrategy){ - var label_0, label$iterator; - this.leftLongEdgeDummies = new ArrayList; - this.rightLongEdgeDummies = new ArrayList; - this.labelDummy = labelDummy; - this.placementStrategy = defaultPlacementStrategy; - $gatherLeftLongEdgeDummies(this); - $gatherRightLongEdgeDummies(this); - this.leftLongEdgeDummies.isEmpty()?(this.leftmostLayerId = labelDummy.layer.id_0):(this.leftmostLayerId = castTo(this.leftLongEdgeDummies.get_0(0), 10).layer.id_0); - this.rightLongEdgeDummies.array.length == 0?(this.rightmostLayerId = labelDummy.layer.id_0):(this.rightmostLayerId = castTo($get_11(this.rightLongEdgeDummies, this.rightLongEdgeDummies.array.length - 1), 10).layer.id_0); - for (label$iterator = castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - if ($hasProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0))) { - this.placementStrategy = castTo($getProperty(label_0, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0), 227); - break; - } - } -} - -defineClass(286, 1, {286:1}, LabelDummySwitcher$LabelDummyInfo); -_.leftmostLayerId = 0; -_.placementStrategy = null; -_.rightmostLayerId = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$LabelDummyInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/LabelDummyInfo', 286); -function LabelDummySwitcher$lambda$0$Type(){ -} - -defineClass(1360, 1, {}, LabelDummySwitcher$lambda$0$Type); -_.apply_0 = function apply_91(arg0){ - return $clinit_LabelDummySwitcher() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$0$Type', 1360); -function LabelDummySwitcher$lambda$1$Type(){ -} - -defineClass(1361, 1, $intern_39, LabelDummySwitcher$lambda$1$Type); -_.test_0 = function test_41(arg0){ - return $clinit_LabelDummySwitcher() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , LABEL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$1$Type', 1361); -function LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy_0){ - this.defaultPlacementStrategy_0 = defaultPlacementStrategy_0; -} - -defineClass(1362, 1, {}, LabelDummySwitcher$lambda$2$Type); -_.apply_0 = function apply_92(arg0){ - return lambda$2_4(this.defaultPlacementStrategy_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$2$Type', 1362); -function LabelDummySwitcher$lambda$3$Type(infos_0){ - this.infos_0 = infos_0; -} - -defineClass(1363, 1, $intern_19, LabelDummySwitcher$lambda$3$Type); -_.accept = function accept_76(arg0){ - lambda$3_2(this.infos_0, castTo(arg0, 286)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$3$Type', 1363); -function LabelDummySwitcher$lambda$4$Type(){ -} - -defineClass(1364, 1, $intern_88, LabelDummySwitcher$lambda$4$Type); -_.compare_1 = function compare_46(arg0, arg1){ - return lambda$4_5(castTo(arg0, 286), castTo(arg1, 286)); -} -; -_.equals_0 = function equals_119(other){ - return this === other; -} -; -_.reversed = function reversed_38(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$4$Type', 1364); -function $process_29(layeredGraph, monitor){ - $begin(monitor, 'Label management', 1); - throwClassCastExceptionUnlessNull($getProperty(layeredGraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); - $done_0(monitor); -} - -function LabelManagementProcessor(){ -} - -defineClass(791, 1, $intern_105, LabelManagementProcessor); -_.process = function process_27(layeredGraph, monitor){ - $process_29(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelManagementProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelManagementProcessor', 791); -function $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide){ - var currLongEdgeSource, currLongEdgeTarget, currentDummy, currentDummy$iterator, endPort, endPort0, labelDummyRun, prevLongEdgeSource, prevLongEdgeTarget; - labelDummyRun = newArrayListWithCapacity(dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1); - prevLongEdgeSource = null; - prevLongEdgeTarget = null; - for (currentDummy$iterator = new ArrayDeque$IteratorImpl(dummyNodes); currentDummy$iterator.currentIndex != currentDummy$iterator.fence;) { - currentDummy = castTo($next_6(currentDummy$iterator), 10); - currLongEdgeSource = (endPort0 = castTo($getProperty(currentDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE)), 11) , !endPort0?null:endPort0.owner); - currLongEdgeTarget = (endPort = castTo($getProperty(currentDummy, LONG_EDGE_TARGET), 11) , !endPort?null:endPort.owner); - if (prevLongEdgeSource != currLongEdgeSource || prevLongEdgeTarget != currLongEdgeTarget) { - $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); - prevLongEdgeSource = currLongEdgeSource; - prevLongEdgeTarget = currLongEdgeTarget; - } - labelDummyRun.array[labelDummyRun.array.length] = currentDummy; - } - $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); -} - -function $applyLabelSide(labels, side){ - var label_0, label$iterator; - for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); - } -} - -function $applyLabelSide_0(edge, side){ - var label_0, label$iterator; - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); - } -} - -function $applyLabelSide_1(labelDummy, side){ - var effectiveSide, originEdge, port, port$iterator, portPos, thickness; - if (labelDummy.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - effectiveSide = $spliterator($filter(castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).stream(), new Predicate$lambda$2$Type(new LabelSideSelector$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?side:($clinit_LabelSide() , INLINE); - $setProperty_0(labelDummy, LABEL_SIDE, effectiveSide); - if (effectiveSide != ($clinit_LabelSide() , BELOW)) { - originEdge = castTo($getProperty(labelDummy, ORIGIN_0), 17); - thickness = $doubleValue(castToDouble($getProperty(originEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); - portPos = 0; - if (effectiveSide == ABOVE) { - portPos = labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness / 2); - } - else if (effectiveSide == INLINE) { - labelDummy.size_0.y_0 -= $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))); - portPos = (labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness)) / 2; - } - for (port$iterator = new ArrayList$1(labelDummy.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.pos.y_0 = portPos; - } - } - } -} - -function $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide){ - var dummyNode, dummyNode$iterator; - if (labelDummyRun.array.length != 0) { - if (labelDummyRun.array.length == 2) { - $applyLabelSide_1((checkCriticalElementIndex(0, labelDummyRun.array.length) , castTo(labelDummyRun.array[0], 10)), ($clinit_LabelSide() , ABOVE)); - $applyLabelSide_1((checkCriticalElementIndex(1, labelDummyRun.array.length) , castTo(labelDummyRun.array[1], 10)), BELOW); - } - else { - for (dummyNode$iterator = new ArrayList$1(labelDummyRun); dummyNode$iterator.i < dummyNode$iterator.this$01.array.length;) { - dummyNode = castTo($next_7(dummyNode$iterator), 10); - $applyLabelSide_1(dummyNode, defaultSide); - } - } - labelDummyRun.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } -} - -function $basedOnDirection(graph, sideForRightwardEdges){ - var edge, edge$iterator, layer, layer$iterator, node, node$iterator, side, incoming, outgoing; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - side = (incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , !$booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || !$booleanValue(castToBoolean($getProperty(outgoing, REVERSED))))?sideForRightwardEdges:$opposite_0(sideForRightwardEdges); - $applyLabelSide_1(node, side); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - side = $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))?$opposite_0(sideForRightwardEdges):sideForRightwardEdges; - $applyLabelSide_0(edge, side); - } - } - } -} - -function $process_30(layeredGraph, monitor){ - var mode; - mode = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); - $begin(monitor, 'Label side selection (' + mode + ')', 1); - switch (mode.ordinal) { - case 0: - $sameSide(layeredGraph, ($clinit_LabelSide() , ABOVE)); - break; - case 1: - $sameSide(layeredGraph, ($clinit_LabelSide() , BELOW)); - break; - case 2: - $basedOnDirection(layeredGraph, ($clinit_LabelSide() , ABOVE)); - break; - case 3: - $basedOnDirection(layeredGraph, ($clinit_LabelSide() , BELOW)); - break; - case 4: - $smart(layeredGraph, ($clinit_LabelSide() , ABOVE)); - break; - case 5: - $smart(layeredGraph, ($clinit_LabelSide() , BELOW)); - } - $done_0(monitor); -} - -function $sameSide(graph, labelSide){ - var edge, edge$iterator, layer, layer$iterator, node, node$iterator; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.type_0 == ($clinit_LNode$NodeType() , LABEL) && $applyLabelSide_1(node, labelSide); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $applyLabelSide_0(edge, labelSide); - } - } - } -} - -function $smart(graph, defaultSide){ - var dummyNodeQueue, labelDummiesInQueue, layer, layer$iterator, node, node$iterator, topGroup; - dummyNodeQueue = new ArrayDeque; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - topGroup = true; - labelDummiesInQueue = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - switch (node.type_0.ordinal) { - case 4: - ++labelDummiesInQueue; - case 1: - $addLast(dummyNodeQueue, node); - break; - case 0: - $smartForRegularNode(node, defaultSide); - default:dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, false, defaultSide); - topGroup = false; - labelDummiesInQueue = 0; - } - } - dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, true, defaultSide); - } -} - -function $smartForConsecutiveDummyNodeRun(dummyNodes, labelDummyCount, topGroup, bottomGroup, defaultSide){ - if (topGroup && (!bottomGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.head], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { - $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.head], 10), ($clinit_LabelSide() , ABOVE)); - } - else if (bottomGroup && (!topGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { - $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10), ($clinit_LabelSide() , BELOW)); - } - else if ((dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) == 2) { - $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), ($clinit_LabelSide() , ABOVE)); - $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), BELOW); - } - else { - $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide); - } - $clear_4(dummyNodes); -} - -function $smartForRegularNode(node, defaultSide){ - var currentPortSide, endLabelQueue, port, port$iterator, portEndLabels; - endLabelQueue = new ArrayDeque_0(node.ports.array.length); - currentPortSide = null; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (port.side != currentPortSide) { - endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); - $clear_4(endLabelQueue); - currentPortSide = port.side; - } - portEndLabels = gatherLabels(port); - !!portEndLabels && ($addLast(endLabelQueue, portEndLabels) , true); - } - endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); -} - -function $smartForRegularNodePortEndLabels(endLabelQueue, portSide, defaultSide){ - var labelList, labelList$iterator; - if ((endLabelQueue.tail - endLabelQueue.head & endLabelQueue.array.length - 1) == 2) { - if (portSide == ($clinit_PortSide() , NORTH_3) || portSide == EAST_2) { - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , ABOVE)); - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), BELOW); - } - else { - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , BELOW)); - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ABOVE); - } - } - else { - for (labelList$iterator = new ArrayDeque$IteratorImpl(endLabelQueue); labelList$iterator.currentIndex != labelList$iterator.fence;) { - labelList = castTo($next_6(labelList$iterator), 15); - $applyLabelSide(labelList, defaultSide); - } - } -} - -function LabelSideSelector(){ -} - -defineClass(1549, 1, $intern_105, LabelSideSelector); -_.process = function process_28(layeredGraph, monitor){ - $process_30(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector', 1549); -function LabelSideSelector$lambda$0$Type(){ -} - -defineClass(1550, 1, $intern_39, LabelSideSelector$lambda$0$Type); -_.test_0 = function test_42(arg0){ - return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector/lambda$0$Type', 1550); -function $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer){ - var layer, layer$iterator, layerIter, node, node$array, node$index, node$max, nodes; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodes = toNodeArray(layer.nodes); - for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 1: - $throwUpUnlessNoIncomingEdges(node); - $setLayer_0(node, firstLayer); - $moveLabelsToLabelLayer(node, true, firstLabelLayer); - break; - case 3: - $throwUpUnlessNoOutgoingEdges(node); - $setLayer_0(node, lastLayer); - $moveLabelsToLabelLayer(node, false, lastLabelLayer); - } - } - } - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)).nodes.array.length == 0 && $remove_8(layerIter); - } -} - -function $moveLabelsToLabelLayer(node, incoming, labelLayer){ - var edge, edge$iterator, possibleLableDummy; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2((incoming?$getIncomingEdges(node):$getOutgoingEdges(node)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - possibleLableDummy = incoming?edge.source.owner:edge.target.owner; - possibleLableDummy.type_0 == ($clinit_LNode$NodeType() , LABEL) && $setLayer_0(possibleLableDummy, labelLayer); - } -} - -function $process_31(layeredGraph, monitor){ - var firstLabelLayer, firstLayer, firstSeparateLayer, lastLabelLayer, lastLayer, lastSeparateLayer, layers; - $begin(monitor, 'Layer constraint postprocessing', 1); - layers = layeredGraph.layers; - if (layers.array.length != 0) { - firstLayer = (checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)); - lastLayer = castTo($get_11(layers, layers.array.length - 1), 29); - firstLabelLayer = new Layer(layeredGraph); - lastLabelLayer = new Layer(layeredGraph); - $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer); - firstLabelLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstLabelLayer)); - lastLabelLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastLabelLayer , true); - } - if ($hasProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES))) { - firstSeparateLayer = new Layer(layeredGraph); - lastSeparateLayer = new Layer(layeredGraph); - $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer); - firstSeparateLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstSeparateLayer)); - lastSeparateLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastSeparateLayer , true); - } - $done_0(monitor); -} - -function $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer){ - var hiddenEdge, hiddenEdge$iterator, hiddenNode, hiddenNode$iterator, isOutgoing, originalOppositePort; - for (hiddenNode$iterator = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES)), 15).iterator_0(); hiddenNode$iterator.hasNext_0();) { - hiddenNode = castTo(hiddenNode$iterator.next_1(), 10); - switch (castTo($getProperty(hiddenNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 2: - $setLayer_0(hiddenNode, firstSeparateLayer); - break; - case 4: - $setLayer_0(hiddenNode, lastSeparateLayer); - } - for (hiddenEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(hiddenNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(hiddenEdge$iterator);) { - hiddenEdge = castTo($next_0(hiddenEdge$iterator), 17); - if (!!hiddenEdge.source && !!hiddenEdge.target) { - continue; - } - isOutgoing = !hiddenEdge.target; - originalOppositePort = castTo($getProperty(hiddenEdge, ORIGINAL_OPPOSITE_PORT), 11); - isOutgoing?$setTarget_0(hiddenEdge, originalOppositePort):$setSource_0(hiddenEdge, originalOppositePort); - } - } -} - -function $throwUpUnlessNoIncomingEdges(node){ - var incoming, incoming$iterator; - for (incoming$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incoming$iterator);) { - incoming = castTo($next_0(incoming$iterator), 17); - if (incoming.source.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to FIRST, but has at least one incoming edge that " + ' does not come from a FIRST_SEPARATE node. That must not happen.')); - } - } -} - -function $throwUpUnlessNoOutgoingEdges(node){ - var outgoing, outgoing$iterator; - for (outgoing$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoing$iterator);) { - outgoing = castTo($next_0(outgoing$iterator), 17); - if (outgoing.target.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to LAST, but has at least one outgoing edge that " + ' does not go to a LAST_SEPARATE node. That must not happen.')); - } - } -} - -function LayerConstraintPostprocessor(){ -} - -defineClass(1558, 1, $intern_105, LayerConstraintPostprocessor); -_.process = function process_29(layeredGraph, monitor){ - $process_31(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPostprocessor', 1558); -function $clinit_LayerConstraintPreprocessor(){ - $clinit_LayerConstraintPreprocessor = emptyMethod; - HIDDEN_NODE_CONNECTIONS = new Property_0('separateLayerConnections', ($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , NONE_0)); -} - -function $ensureNoInacceptableEdges(lNode){ - var inEdge, inEdge$iterator, layerConstraint, outEdge, outEdge$iterator; - layerConstraint = castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { - for (inEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inEdge$iterator);) { - inEdge = castTo($next_0(inEdge$iterator), 17); - if (!$isAcceptableIncidentEdge(inEdge)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. " + 'FIRST_SEPARATE nodes must not have incoming edges.')); - } - } - } - else if (layerConstraint == LAST_SEPARATE_0) { - for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { - outEdge = castTo($next_0(outEdge$iterator), 17); - if (!$isAcceptableIncidentEdge(outEdge)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. " + 'LAST_SEPARATE nodes must not have outgoing edges.')); - } - } - } -} - -function $hide(lNode){ - var lEdge, lEdge$iterator, isOutgoing, oppositePort; - $ensureNoInacceptableEdges(lNode); - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - isOutgoing = lEdge.source.owner == lNode; - oppositePort = isOutgoing?lEdge.target:lEdge.source; - isOutgoing?$setTarget_0(lEdge, null):$setSource_0(lEdge, null); - $setProperty_0(lEdge, ($clinit_InternalProperties_1() , ORIGINAL_OPPOSITE_PORT), oppositePort); - $updateOppositeNodeLayerConstraints(lNode, oppositePort.owner); - } -} - -function $isAcceptableIncidentEdge(edge){ - var sourceNode, targetNode; - sourceNode = edge.source.owner; - targetNode = edge.target.owner; - return sourceNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && targetNode.type_0 == EXTERNAL_PORT; -} - -function $isRelevantNode(lNode){ - switch (castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 2: - case 4: - return true; - default:return false; - } -} - -function $process_32(layeredGraph, monitor){ - var hiddenNodes, lNode, nodeIterator; - $begin(monitor, 'Layer constraint preprocessing', 1); - hiddenNodes = new ArrayList; - nodeIterator = new AbstractList$ListIteratorImpl(layeredGraph.layerlessNodes, 0); - while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { - lNode = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); - if ($isRelevantNode(lNode)) { - $hide(lNode); - hiddenNodes.array[hiddenNodes.array.length] = lNode; - $remove_8(nodeIterator); - } - } - hiddenNodes.array.length == 0 || $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES), hiddenNodes); - $done_0(monitor); -} - -function $updateOppositeNodeLayerConstraints(hiddenNode, oppositeNode){ - var connections; - if ($hasProperty(oppositeNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0))) { - return; - } - connections = $combine_0(castTo($getProperty(oppositeNode, HIDDEN_NODE_CONNECTIONS), 360), castTo($getProperty(hiddenNode, LAYERING_LAYER_CONSTRAINT_0), 163)); - $setProperty_0(oppositeNode, HIDDEN_NODE_CONNECTIONS, connections); - if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(oppositeNode).val$inputs1.iterator_0(), new Iterables$10)))) { - return; - } - switch (connections.ordinal) { - case 1: - $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); - break; - case 2: - $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); - } -} - -function LayerConstraintPreprocessor(){ - $clinit_LayerConstraintPreprocessor(); -} - -defineClass(1559, 1, $intern_105, LayerConstraintPreprocessor); -_.process = function process_30(layeredGraph, monitor){ - $process_32(castTo(layeredGraph, 37), monitor); -} -; -var HIDDEN_NODE_CONNECTIONS; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor', 1559); -function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections = emptyMethod; - NONE_0 = new LayerConstraintPreprocessor$HiddenNodeConnections('NONE', 0); - FIRST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('FIRST_SEPARATE', 1); - LAST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('LAST_SEPARATE', 2); - BOTH = new LayerConstraintPreprocessor$HiddenNodeConnections('BOTH', 3); -} - -function $combine_0(this$static, layerConstraint){ - switch (this$static.ordinal) { - case 0: - return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:LAST_SEPARATE; - case 1: - return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:BOTH; - case 2: - return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?BOTH:LAST_SEPARATE; - default:return BOTH; - } -} - -function LayerConstraintPreprocessor$HiddenNodeConnections(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_33(name_0){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); - return valueOf(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map() , $MAP_21), name_0); -} - -function values_39(){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]); -} - -defineClass(360, 22, {3:1, 35:1, 22:1, 360:1}, LayerConstraintPreprocessor$HiddenNodeConnections); -var BOTH, FIRST_SEPARATE, LAST_SEPARATE, NONE_0; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor/HiddenNodeConnections', 360, Ljava_lang_Enum_2_classLit, values_39, valueOf_33); -function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map(){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map = emptyMethod; - $MAP_21 = createValueOfMap(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]))); -} - -var $MAP_21; -function $process_33(layeredGraph, monitor){ - var bottom, firstNode, foundNodes, lastNode, layer, layer$iterator, layerSize, maxY, minY, node, node$iterator, nodeMargin, nodeSize, top_0; - $begin(monitor, 'Layer size calculation', 1); - minY = $intern_59; - maxY = $intern_60; - foundNodes = false; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerSize = layer.size_0; - layerSize.x_0 = 0; - layerSize.y_0 = 0; - if (layer.nodes.array.length == 0) { - continue; - } - foundNodes = true; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeSize = node.size_0; - nodeMargin = node.margin; - layerSize.x_0 = $wnd.Math.max(layerSize.x_0, nodeSize.x_0 + nodeMargin.left + nodeMargin.right); - } - firstNode = castTo($get_11(layer.nodes, 0), 10); - top_0 = firstNode.pos.y_0 - firstNode.margin.top_0; - firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (top_0 -= castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).top_0); - lastNode = castTo($get_11(layer.nodes, layer.nodes.array.length - 1), 10); - bottom = lastNode.pos.y_0 + lastNode.size_0.y_0 + lastNode.margin.bottom; - lastNode.type_0 == EXTERNAL_PORT && (bottom += castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).bottom); - layerSize.y_0 = bottom - top_0; - minY = $wnd.Math.min(minY, top_0); - maxY = $wnd.Math.max(maxY, bottom); - } - if (!foundNodes) { - minY = 0; - maxY = 0; - } - layeredGraph.size_0.y_0 = maxY - minY; - layeredGraph.offset.y_0 -= minY; - $done_0(monitor); -} - -function LayerSizeAndGraphHeightCalculator(){ -} - -defineClass(1560, 1, $intern_105, LayerSizeAndGraphHeightCalculator); -_.process = function process_31(layeredGraph, monitor){ - $process_33(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerSizeAndGraphHeightCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerSizeAndGraphHeightCalculator', 1560); -function $process_34(layeredGraph, monitor){ - var addUnnecessaryBendpoints, layer, layer$iterator, node, nodeIterator; - $begin(monitor, 'Edge joining', 1); - addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); - while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { - node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - joinAt(node, addUnnecessaryBendpoints); - $remove_8(nodeIterator); - } - } - } - $done_0(monitor); -} - -function LongEdgeJoiner(){ -} - -function joinAt(longEdgeDummy, addUnnecessaryBendpoints){ - var bendPoint, bendPoint$iterator, droppedEdge, droppedEdgeListIndex, droppedJunctionsPoints, edgeCount, inputPortEdges, jp, jp$iterator, label_0, label$iterator, outputPortEdges, survivingBendPoints, survivingEdge, survivingJunctionPoints, survivingLabels, targetIncomingEdges, unnecessaryBendpoint; - inputPortEdges = castTo($getPorts_1(longEdgeDummy, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11).incomingEdges; - outputPortEdges = castTo($getPorts_1(longEdgeDummy, EAST_2).iterator_0().next_1(), 11).outgoingEdges; - edgeCount = inputPortEdges.array.length; - unnecessaryBendpoint = $getAbsoluteAnchor(castTo($get_11(longEdgeDummy.ports, 0), 11)); - while (edgeCount-- > 0) { - survivingEdge = (checkCriticalElementIndex(0, inputPortEdges.array.length) , castTo(inputPortEdges.array[0], 17)); - droppedEdge = (checkCriticalElementIndex(0, outputPortEdges.array.length) , castTo(outputPortEdges.array[0], 17)); - targetIncomingEdges = droppedEdge.target.incomingEdges; - droppedEdgeListIndex = $indexOf_3(targetIncomingEdges, droppedEdge, 0); - $setTargetAndInsertAtIndex(survivingEdge, droppedEdge.target, droppedEdgeListIndex); - $setSource_0(droppedEdge, null); - $setTarget_0(droppedEdge, null); - survivingBendPoints = survivingEdge.bendPoints; - addUnnecessaryBendpoints && $add_7(survivingBendPoints, new KVector_2(unnecessaryBendpoint)); - for (bendPoint$iterator = $listIterator_2(droppedEdge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - $add_7(survivingBendPoints, new KVector_2(bendPoint)); - } - survivingLabels = survivingEdge.labels; - for (label$iterator = new ArrayList$1(droppedEdge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - survivingLabels.array[survivingLabels.array.length] = label_0; - } - survivingJunctionPoints = castTo($getProperty(survivingEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - droppedJunctionsPoints = castTo($getProperty(droppedEdge, JUNCTION_POINTS), 74); - if (droppedJunctionsPoints) { - if (!survivingJunctionPoints) { - survivingJunctionPoints = new KVectorChain; - $setProperty_0(survivingEdge, JUNCTION_POINTS, survivingJunctionPoints); - } - for (jp$iterator = $listIterator_2(droppedJunctionsPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - $add_7(survivingJunctionPoints, new KVector_2(jp)); - } - } - } -} - -defineClass(1561, 1, $intern_105, LongEdgeJoiner); -_.process = function process_32(layeredGraph, monitor){ - $process_34(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeJoiner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeJoiner', 1561); -function $process_35(layeredGraph, monitor){ - var edge, edge$iterator, layer, layerIter, nextLayer, node, node$iterator, port, port$iterator, targetLayer, targetPort, dummyNode; - $begin(monitor, 'Edge splitting', 1); - if (layeredGraph.layers.array.length <= 2) { - $done_0(monitor); - return; - } - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = nextLayer; - nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - targetPort = edge.target; - targetLayer = targetPort.owner.layer; - targetLayer != layer && targetLayer != nextLayer && splitEdge(edge, (dummyNode = new LNode(layeredGraph) , $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)) , $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge) , $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)) , $setLayer_0(dummyNode, nextLayer) , dummyNode)); - } - } - } - } - $done_0(monitor); -} - -function LongEdgeSplitter(){ -} - -function moveHeadLabels(oldEdge, newEdge){ - var label_0, labelIterator, labelPlacement; - labelIterator = new AbstractList$ListIteratorImpl(oldEdge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); - if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { - $remove_8(labelIterator); - $add_3(newEdge.labels, label_0); - $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, oldEdge); - } - } -} - -function setDummyNodeProperties(dummyNode, inEdge, outEdge){ - var inEdgeSourceNode, outEdgeTargetNode; - inEdgeSourceNode = inEdge.source.owner; - outEdgeTargetNode = outEdge.target.owner; - if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); - $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, castToBoolean($getProperty(inEdgeSourceNode, LONG_EDGE_HAS_LABEL_DUMMIES))); - } - else if (inEdgeSourceNode.type_0 == LABEL) { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); - $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); - } - else if (outEdgeTargetNode.type_0 == LABEL) { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(outEdgeTargetNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(outEdgeTargetNode, LONG_EDGE_TARGET), 11)); - $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); - } - else { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, outEdge.target); - } -} - -function splitEdge(edge, dummyNode){ - var dummyEdge, dummyInput, dummyOutput, oldEdgeTarget, portPos, thickness; - oldEdgeTarget = edge.target; - thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); - if (thickness < 0) { - thickness = 0; - $setProperty_0(edge, EDGE_THICKNESS_0, thickness); - } - dummyNode.size_0.y_0 = thickness; - portPos = $wnd.Math.floor(thickness / 2); - dummyInput = new LPort; - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInput, dummyNode); - dummyInput.pos.y_0 = portPos; - dummyOutput = new LPort; - $setSide(dummyOutput, EAST_2); - $setNode(dummyOutput, dummyNode); - dummyOutput.pos.y_0 = portPos; - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, oldEdgeTarget); - setDummyNodeProperties(dummyNode, edge, dummyEdge); - moveHeadLabels(edge, dummyEdge); - return dummyEdge; -} - -defineClass(1562, 1, $intern_105, LongEdgeSplitter); -_.process = function process_33(layeredGraph, monitor){ - $process_35(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeSplitter', 1562); -function $precalculateAndSetInformation(this$static){ - var dummyBaggage, inDegree, incoming, layer, layer$iterator, layer$iterator0, layerID, layerSize, layerSizePixel, node, node$iterator, nodeID, nodesNdummies, outDegree, outcoming; - this$static.nodeSizeAffix = $doubleValue(castToDouble($getProperty(this$static.masterGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - this$static.dummySize = $doubleValue(castToDouble($getProperty(this$static.masterGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - this$static.maxHeight = this$static.masterGraph.layers.array.length; - layerID = this$static.maxHeight - 1; - nodeID = 0; - this$static.maxWidth = 0; - this$static.maxWidthPixel = 0; - this$static.currentWidth = newArrayList_1(initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, this$static.maxHeight, 0, 1)); - this$static.currentWidthPixel = newArrayList_1(initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, this$static.maxHeight, 7, 1)); - for (layer$iterator0 = new ArrayList$1(this$static.masterGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - layer.id_0 = layerID; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = nodeID; - ++nodeID; - } - --layerID; - } - this$static.layers = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeID, 15, 1); - this$static.degreeDiff = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [nodeID, 3], 2); - this$static.nodes = new ArrayList; - this$static.nodesWithIncomingEdges = new ArrayList; - dummyBaggage = 0; - this$static.dummyNodeCount = 0; - for (layer$iterator = new ArrayList$1(this$static.masterGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerID = layer.id_0; - incoming = 0; - outcoming = 0; - layerSize = layer.nodes.array.length; - layerSizePixel = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeID = node.id_0; - this$static.layers[nodeID] = node.layer.id_0; - layerSizePixel += node.size_0.y_0 + this$static.nodeSizeAffix; - inDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - outDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - this$static.degreeDiff[nodeID][0] = outDegree - inDegree; - this$static.degreeDiff[nodeID][1] = inDegree; - this$static.degreeDiff[nodeID][2] = outDegree; - incoming += inDegree; - outcoming += outDegree; - inDegree > 0 && $add_3(this$static.nodesWithIncomingEdges, node); - $add_3(this$static.nodes, node); - } - dummyBaggage -= incoming; - nodesNdummies = layerSize + dummyBaggage; - layerSizePixel += dummyBaggage * this$static.dummySize; - $set_1(this$static.currentWidth, layerID, valueOf_4(nodesNdummies)); - $set_1(this$static.currentWidthPixel, layerID, layerSizePixel); - this$static.maxWidth = $wnd.Math.max(this$static.maxWidth, nodesNdummies); - this$static.maxWidthPixel = $wnd.Math.max(this$static.maxWidthPixel, layerSizePixel); - this$static.dummyNodeCount += dummyBaggage; - dummyBaggage += outcoming; - } -} - -function $process_36(this$static, layeredGraph, progressMonitor){ - var donna, donna$iterator, funFunction, martha, martha$iterator, newMaxWidth, newMaxWidthPixel, promoteUntil, promoteUntilD, promoteUntilN; - $begin(progressMonitor, 'Node promotion heuristic', 1); - this$static.masterGraph = layeredGraph; - $precalculateAndSetInformation(this$static); - this$static.promotionStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_NODE_PROMOTION_STRATEGY_0)), 260); - promoteUntil = castTo($getProperty(this$static.masterGraph, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0), 19).value_0; - funFunction = new NodePromotion$lambda$0$Type; - switch (this$static.promotionStrategy.ordinal) { - case 2: - case 1: - $promotionMagic(this$static, funFunction); - break; - case 3: - this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); - $promotionMagic(this$static, funFunction); - newMaxWidth = 0; - for (martha$iterator = new ArrayList$1(this$static.currentWidth); martha$iterator.i < martha$iterator.this$01.array.length;) { - martha = castTo($next_7(martha$iterator), 19); - newMaxWidth = $wnd.Math.max(newMaxWidth, martha.value_0); - } - - if (newMaxWidth > this$static.maxWidth) { - this$static.promotionStrategy = NIKOLOV; - $promotionMagic(this$static, funFunction); - } - - break; - case 4: - this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); - $promotionMagic(this$static, funFunction); - newMaxWidthPixel = 0; - for (donna$iterator = new ArrayList$1(this$static.currentWidthPixel); donna$iterator.i < donna$iterator.this$01.array.length;) { - donna = castToDouble($next_7(donna$iterator)); - newMaxWidthPixel = $wnd.Math.max(newMaxWidthPixel, (checkCriticalNotNull(donna) , donna)); - } - - if (newMaxWidthPixel > this$static.maxWidthPixel) { - this$static.promotionStrategy = NIKOLOV_PIXEL; - $promotionMagic(this$static, funFunction); - } - - break; - case 6: - promoteUntilN = round_int($wnd.Math.ceil(this$static.layers.length * promoteUntil / 100)); - $promotionMagic(this$static, new NodePromotion$lambda$1$Type(promoteUntilN)); - break; - case 5: - promoteUntilD = round_int($wnd.Math.ceil(this$static.dummyNodeCount * promoteUntil / 100)); - $promotionMagic(this$static, new NodePromotion$lambda$2$Type(promoteUntilD)); - break; - default:$promotionMagic(this$static, funFunction); - } - $setNewLayering(this$static, layeredGraph); - $done_0(progressMonitor); -} - -function $promoteNode(this$static, node){ - var dummiesBuilt, dummiesReduced, dummydiff, edge, edge$iterator, masterNode, maxWidthNotExceeded, nodeLayerPos, nodeSize, promotion; - maxWidthNotExceeded = true; - dummydiff = 0; - nodeLayerPos = this$static.layers[node.id_0]; - nodeSize = node.size_0.y_0 + this$static.nodeSizeAffix; - dummiesBuilt = this$static.degreeDiff[node.id_0][2]; - $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 - 1 + dummiesBuilt)); - $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) - nodeSize + dummiesBuilt * this$static.dummySize); - ++nodeLayerPos; - if (nodeLayerPos >= this$static.maxHeight) { - ++this$static.maxHeight; - $add_3(this$static.currentWidth, valueOf_4(1)); - $add_3(this$static.currentWidthPixel, nodeSize); - } - else { - dummiesReduced = this$static.degreeDiff[node.id_0][1]; - $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 + 1 - dummiesReduced)); - $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) + nodeSize - dummiesReduced * this$static.dummySize); - } - (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) && (castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 > this$static.maxWidth || castTo($get_11(this$static.currentWidth, nodeLayerPos - 1), 19).value_0 > this$static.maxWidth) || this$static.promotionStrategy == NIKOLOV_PIXEL && ($doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) > this$static.maxWidthPixel || $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos - 1))) > this$static.maxWidthPixel)) && (maxWidthNotExceeded = false); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - masterNode = edge.source.owner; - if (this$static.layers[masterNode.id_0] == nodeLayerPos) { - promotion = $promoteNode(this$static, masterNode); - dummydiff = dummydiff + castTo(promotion.first, 19).value_0; - maxWidthNotExceeded = maxWidthNotExceeded && $booleanValue(castToBoolean(promotion.second)); - } - } - this$static.layers[node.id_0] = nodeLayerPos; - dummydiff = dummydiff + this$static.degreeDiff[node.id_0][0]; - return new Pair(valueOf_4(dummydiff), ($clinit_Boolean() , maxWidthNotExceeded?true:false)); -} - -function $promotionMagic(this$static, funky){ - var apply_0, currentWidthBackup, currentWidthPixelBackup, dummyBackup, heightBackup, iterationCounter, layeringBackup, node, node$iterator, promotionFlag, promotionPair, promotions, reducedDummies; - iterationCounter = 0; - reducedDummies = 0; - layeringBackup = copyOf(this$static.layers, this$static.layers.length); - dummyBackup = this$static.dummyNodeCount; - heightBackup = this$static.maxHeight; - currentWidthBackup = this$static.currentWidth; - currentWidthPixelBackup = this$static.currentWidthPixel; - do { - promotions = 0; - for (node$iterator = new ArrayList$1(this$static.nodesWithIncomingEdges); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - promotionPair = $promoteNode(this$static, node); - apply_0 = true; - (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) || this$static.promotionStrategy == NIKOLOV_PIXEL) && (apply_0 = $booleanValue(castToBoolean(promotionPair.second))); - if (castTo(promotionPair.first, 19).value_0 < 0 && apply_0) { - ++promotions; - layeringBackup = copyOf(this$static.layers, this$static.layers.length); - this$static.dummyNodeCount = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; - reducedDummies += dummyBackup - this$static.dummyNodeCount; - dummyBackup = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; - heightBackup = this$static.maxHeight; - currentWidthBackup = newArrayList(this$static.currentWidth); - currentWidthPixelBackup = newArrayList(this$static.currentWidthPixel); - } - else { - this$static.layers = copyOf(layeringBackup, layeringBackup.length); - this$static.dummyNodeCount = dummyBackup; - this$static.currentWidth = (checkNotNull(currentWidthBackup) , currentWidthBackup?new ArrayList_1(currentWidthBackup):newArrayList_0(new ArrayList$1(currentWidthBackup))); - this$static.currentWidthPixel = (checkNotNull(currentWidthPixelBackup) , currentWidthPixelBackup?new ArrayList_1(currentWidthPixelBackup):newArrayList_0(new ArrayList$1(currentWidthPixelBackup))); - this$static.maxHeight = heightBackup; - } - } - ++iterationCounter; - promotionFlag = promotions != 0 && $booleanValue(castToBoolean(funky.apply_0(new Pair(valueOf_4(reducedDummies), valueOf_4(iterationCounter))))); - } - while (promotionFlag); -} - -function $setNewLayering(this$static, layeredGraph){ - var i, laLaLayer, layList, layerIt, node, node$iterator, possiblyEvilLayer; - layList = new ArrayList; - for (i = 0; i <= this$static.maxHeight; i++) { - laLaLayer = new Layer(layeredGraph); - laLaLayer.id_0 = this$static.maxHeight - i; - layList.array[layList.array.length] = laLaLayer; - } - for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, castTo($get_11(layList, this$static.maxHeight - this$static.layers[node.id_0]), 29)); - } - layerIt = new ArrayList$1(layList); - while (layerIt.i < layerIt.this$01.array.length) { - possiblyEvilLayer = castTo($next_7(layerIt), 29); - possiblyEvilLayer.nodes.array.length == 0 && $remove_13(layerIt); - } - layeredGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(layeredGraph.layers, layList); -} - -function NodePromotion(){ -} - -function lambda$1_10(promoteUntilN_0, pair_1){ - return $clinit_Boolean() , castTo(pair_1.second, 19).value_0 < promoteUntilN_0?true:false; -} - -function lambda$2_5(promoteUntilD_0, pair_1){ - return $clinit_Boolean() , castTo(pair_1.first, 19).value_0 < promoteUntilD_0?true:false; -} - -defineClass(1563, 1, $intern_105, NodePromotion); -_.process = function process_34(layeredGraph, progressMonitor){ - $process_36(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.dummyNodeCount = 0; -_.dummySize = 0; -_.maxHeight = 0; -_.maxWidth = 0; -_.maxWidthPixel = 0; -_.nodeSizeAffix = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion', 1563); -function NodePromotion$lambda$0$Type(){ -} - -defineClass(1564, 1, {}, NodePromotion$lambda$0$Type); -_.apply_0 = function apply_93(arg0){ - return castTo(arg0, 46) , $clinit_Boolean() , true; -} -; -_.equals_0 = function equals_120(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$0$Type', 1564); -function NodePromotion$lambda$1$Type(promoteUntilN_0){ - this.promoteUntilN_0 = promoteUntilN_0; -} - -defineClass(1565, 1, {}, NodePromotion$lambda$1$Type); -_.apply_0 = function apply_94(arg0){ - return lambda$1_10(this.promoteUntilN_0, castTo(arg0, 46)); -} -; -_.equals_0 = function equals_121(other){ - return this === other; -} -; -_.promoteUntilN_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$1$Type', 1565); -function NodePromotion$lambda$2$Type(promoteUntilD_0){ - this.promoteUntilD_0 = promoteUntilD_0; -} - -defineClass(1566, 1, {}, NodePromotion$lambda$2$Type); -_.apply_0 = function apply_95(arg0){ - return lambda$2_5(this.promoteUntilD_0, castTo(arg0, 46)); -} -; -_.equals_0 = function equals_122(other){ - return this === other; -} -; -_.promoteUntilD_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$2$Type', 1566); -function $process_37(layeredGraph, monitor){ - var currentPort, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, port, port$iterator, portIterator, previousPort, routing, sameOriginPort, selfLoop, inputPort, outputPort, originInputPort, originOutputPort, bendPoint; - $begin(monitor, 'Odd port side processing', 1); - routing = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeArray = toNodeArray(layer.nodes); - for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if (node.type_0 != ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - continue; - } - if (routing == ($clinit_EdgeRouting() , SPLINES)) { - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.incomingEdges.array.length == 0 || $processSplineInputPort(port); - port.outgoingEdges.array.length == 0 || $processSplineOutputPort(port); - } - } - else if (instanceOf($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17)) { - selfLoop = castTo($getProperty(node, ORIGIN_0), 17); - inputPort = castTo($getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); - outputPort = castTo($getPorts_1(node, EAST_2).iterator_0().next_1(), 11); - originInputPort = castTo($getProperty(inputPort, ORIGIN_0), 11); - originOutputPort = castTo($getProperty(outputPort, ORIGIN_0), 11); - $setSource_0(selfLoop, originOutputPort); - $setTarget_0(selfLoop, originInputPort); - bendPoint = new KVector_2(outputPort.owner.pos); - bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originOutputPort.owner.pos, originOutputPort.pos, originOutputPort.anchor])).x_0; - $add_7(selfLoop.bendPoints, bendPoint); - bendPoint = new KVector_2(inputPort.owner.pos); - bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originInputPort.owner.pos, originInputPort.pos, originInputPort.anchor])).x_0; - $add_7(selfLoop.bendPoints, bendPoint); - } - else { - if (node.ports.array.length >= 2) { - sameOriginPort = true; - portIterator = new ArrayList$1(node.ports); - currentPort = castTo($next_7(portIterator), 11); - previousPort = null; - while (portIterator.i < portIterator.this$01.array.length) { - previousPort = currentPort; - currentPort = castTo($next_7(portIterator), 11); - if (!equals_Ljava_lang_Object__Z__devirtual$($getProperty(previousPort, ORIGIN_0), $getProperty(currentPort, ORIGIN_0))) { - sameOriginPort = false; - break; - } - } - } - else { - sameOriginPort = false; - } - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.incomingEdges.array.length == 0 || $processInputPort(port, sameOriginPort); - port.outgoingEdges.array.length == 0 || $processOutputPort(port, sameOriginPort); - } - } - $setLayer_0(node, null); - } - } - $done_0(monitor); -} - -function $processInputPort(inputPort, addJunctionPoints){ - var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, junctionPoints, originPort, x_0, y_0; - originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; - y_0 = inputPort.owner.pos.y_0; - edgeArray = toEdgeArray(inputPort.incomingEdges); - for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { - inEdge = inEdge$array[inEdge$index]; - $setTarget_0(inEdge, originPort); - $addLast_0(inEdge.bendPoints, new KVector_1(x_0, y_0)); - if (addJunctionPoints) { - junctionPoints = castTo($getProperty(inEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(inEdge, JUNCTION_POINTS, junctionPoints); - } - $add_7(junctionPoints, new KVector_1(x_0, y_0)); - } - } -} - -function $processOutputPort(outputPort, addJunctionPoints){ - var edgeArray, junctionPoints, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max, x_0, y_0; - originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; - y_0 = outputPort.owner.pos.y_0; - edgeArray = toEdgeArray(outputPort.outgoingEdges); - for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - $setSource_0(outEdge, originPort); - $addFirst_0(outEdge.bendPoints, new KVector_1(x_0, y_0)); - if (addJunctionPoints) { - junctionPoints = castTo($getProperty(outEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(outEdge, JUNCTION_POINTS, junctionPoints); - } - $add_7(junctionPoints, new KVector_1(x_0, y_0)); - } - } -} - -function $processSplineInputPort(inputPort){ - var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, originPort; - originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, inputPort.owner.pos.y_0); - edgeArray = toEdgeArray(inputPort.incomingEdges); - for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { - inEdge = inEdge$array[inEdge$index]; - $setTarget_0(inEdge, originPort); - } -} - -function $processSplineOutputPort(outputPort){ - var edgeArray, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max; - originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, outputPort.owner.pos.y_0); - edgeArray = toEdgeArray(outputPort.outgoingEdges); - for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - $setSource_0(outEdge, originPort); - } -} - -function NorthSouthPortPostprocessor(){ -} - -defineClass(1567, 1, $intern_105, NorthSouthPortPostprocessor); -_.process = function process_35(layeredGraph, monitor){ - $process_37(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPostprocessor', 1567); -function $createDummyNode_0(layeredGraph, inPort, outPort, dummyNodes){ - var crossingHint, dummy, dummyInputPort, dummyOutputPort, edge, edge$array, edge$index, edge$max, edgeArray; - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - crossingHint = 0; - if (inPort) { - dummyInputPort = new LPort; - $setProperty_0(dummyInputPort, ($clinit_InternalProperties_1() , ORIGIN_0), inPort); - $setProperty_0(dummy, ORIGIN_0, inPort.owner); - $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInputPort, dummy); - edgeArray = toEdgeArray(inPort.incomingEdges); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setTarget_0(edge, dummyInputPort); - } - $setProperty_0(inPort, PORT_DUMMY, dummy); - ++crossingHint; - } - if (outPort) { - dummyOutputPort = new LPort; - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), outPort.owner); - $setProperty_0(dummyOutputPort, ORIGIN_0, outPort); - $setSide(dummyOutputPort, ($clinit_PortSide() , EAST_2)); - $setNode(dummyOutputPort, dummy); - edgeArray = toEdgeArray(outPort.outgoingEdges); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setSource_0(edge, dummyOutputPort); - } - $setProperty_0(outPort, PORT_DUMMY, dummy); - ++crossingHint; - } - $setProperty_0(dummy, ($clinit_InternalProperties_1() , CROSSING_HINT), valueOf_4(crossingHint)); - dummyNodes.array[dummyNodes.array.length] = dummy; - return dummy; -} - -function $createDummyNodes(layeredGraph, ports, dummyNodes, opposingSideDummyNodes, barycenterAssociates){ - var edge, edge$iterator, edge$iterator0, edge$iterator1, in_0, inOutPort, inOutPort$iterator, inOutPorts, inPort, inPort$iterator, inPorts, northSouthSelfLoopEdges, out, outPort, outPort$iterator, outPorts, port, port$iterator, port$iterator0, sameSideSelfLoopEdges, dummy, dummyInputPort, dummyOutputPort; - inPorts = new ArrayList_0(ports.size_0); - outPorts = new ArrayList_0(ports.size_0); - inOutPorts = new ArrayList_0(ports.size_0); - sameSideSelfLoopEdges = new ArrayList_0(ports.size_0); - northSouthSelfLoopEdges = new ArrayList_0(ports.size_0); - for (port$iterator0 = $listIterator_2(ports, 0); port$iterator0.currentNode != port$iterator0.this$01.tail;) { - port = castTo($next_10(port$iterator0), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - if (edge.source.owner == edge.target.owner) { - if (port.side == edge.target.side) { - sameSideSelfLoopEdges.array[sameSideSelfLoopEdges.array.length] = edge; - continue; - } - else if (port.side == ($clinit_PortSide() , NORTH_3) && edge.target.side == SOUTH_2) { - northSouthSelfLoopEdges.array[northSouthSelfLoopEdges.array.length] = edge; - continue; - } - } - } - } - for (edge$iterator1 = new ArrayList$1(northSouthSelfLoopEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { - edge = castTo($next_7(edge$iterator1), 17); - $createNorthSouthSelfLoopDummyNodes(layeredGraph, edge, dummyNodes, opposingSideDummyNodes, ($clinit_PortSide() , EAST_2)); - } - for (edge$iterator = new ArrayList$1(sameSideSelfLoopEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - dummyInputPort = new LPort; - $setProperty_0(dummyInputPort, ORIGIN_0, edge.target); - $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInputPort, dummy); - dummyOutputPort = new LPort; - $setProperty_0(dummyOutputPort, ORIGIN_0, edge.source); - $setSide(dummyOutputPort, EAST_2); - $setNode(dummyOutputPort, dummy); - $setProperty_0(edge.source, PORT_DUMMY, dummy); - $setProperty_0(edge.target, PORT_DUMMY, dummy); - $setSource_0(edge, null); - $setTarget_0(edge, null); - dummyNodes.array[dummyNodes.array.length] = dummy; - $setProperty_0(dummy, CROSSING_HINT, valueOf_4(2)); - } - for (port$iterator = $listIterator_2(ports, 0); port$iterator.currentNode != port$iterator.this$01.tail;) { - port = castTo($next_10(port$iterator), 11); - in_0 = port.incomingEdges.array.length > 0; - out = port.outgoingEdges.array.length > 0; - in_0 && out?(inOutPorts.array[inOutPorts.array.length] = port , true):in_0?(inPorts.array[inPorts.array.length] = port , true):out && (outPorts.array[outPorts.array.length] = port , true); - } - for (inPort$iterator = new ArrayList$1(inPorts); inPort$iterator.i < inPort$iterator.this$01.array.length;) { - inPort = castTo($next_7(inPort$iterator), 11); - $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inPort, null, dummyNodes)); - } - for (outPort$iterator = new ArrayList$1(outPorts); outPort$iterator.i < outPort$iterator.this$01.array.length;) { - outPort = castTo($next_7(outPort$iterator), 11); - $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, null, outPort, dummyNodes)); - } - for (inOutPort$iterator = new ArrayList$1(inOutPorts); inOutPort$iterator.i < inOutPort$iterator.this$01.array.length;) { - inOutPort = castTo($next_7(inOutPort$iterator), 11); - $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inOutPort, inOutPort, dummyNodes)); - } -} - -function $createNorthSouthSelfLoopDummyNodes(layeredGraph, selfLoop, northDummyNodes, southDummyNodes, portSide){ - var northDummy, northDummyOutputPort, southDummy, southDummyInputPort; - northDummy = new LNode(layeredGraph); - $setType(northDummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); - $setProperty_0(northDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(northDummy, ($clinit_InternalProperties_1() , ORIGIN_0), selfLoop.source.owner); - northDummyOutputPort = new LPort; - $setProperty_0(northDummyOutputPort, ORIGIN_0, selfLoop.source); - $setSide(northDummyOutputPort, portSide); - $setNode(northDummyOutputPort, northDummy); - $setProperty_0(selfLoop.source, PORT_DUMMY, northDummy); - southDummy = new LNode(layeredGraph); - $setType(southDummy, NORTH_SOUTH_PORT); - $setProperty_0(southDummy, PORT_CONSTRAINTS_0, FIXED_POS); - $setProperty_0(southDummy, ORIGIN_0, selfLoop.target.owner); - southDummyInputPort = new LPort; - $setProperty_0(southDummyInputPort, ORIGIN_0, selfLoop.target); - $setSide(southDummyInputPort, portSide); - $setNode(southDummyInputPort, southDummy); - $setProperty_0(selfLoop.target, PORT_DUMMY, southDummy); - $setSource_0(selfLoop, northDummyOutputPort); - $setTarget_0(selfLoop, southDummyInputPort); - checkCriticalPositionIndex(0, northDummyNodes.array.length); - insertTo(northDummyNodes.array, 0, northDummy); - southDummyNodes.array[southDummyNodes.array.length] = southDummy; - $setProperty_0(northDummy, CROSSING_HINT, valueOf_4(1)); - $setProperty_0(southDummy, CROSSING_HINT, valueOf_4(1)); -} - -function $process_38(layeredGraph, monitor){ - var barycenterAssociates, dummy, dummy$iterator, dummy$iterator0, dummyPort, insertPoint, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, northDummyNodes, originPort, pointer, port, port$iterator, portList, predecessor, southDummyNodes, successor; - $begin(monitor, 'Odd port side processing', 1); - northDummyNodes = new ArrayList; - southDummyNodes = new ArrayList; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - pointer = -1; - nodeArray = toNodeArray(layer.nodes); - for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - ++pointer; - if (!(node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)))) { - continue; - } - $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $sortPortList_0(node); - $setProperty_0(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT), node); - northDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - southDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - barycenterAssociates = new ArrayList; - portList = new LinkedList; - addAll_6(portList, $getPorts_1(node, ($clinit_PortSide() , NORTH_3))); - $createDummyNodes(layeredGraph, portList, northDummyNodes, southDummyNodes, barycenterAssociates); - insertPoint = pointer; - successor = node; - for (dummy$iterator0 = new ArrayList$1(northDummyNodes); dummy$iterator0.i < dummy$iterator0.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator0), 10); - $setLayer(dummy, insertPoint, layer); - ++pointer; - $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); - $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(dummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(successor); - } - $reset_0(portList); - for (port$iterator = $getPorts_1(node, SOUTH_2).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $addNode_0(portList, port, portList.header, portList.header.next_0); - } - $createDummyNodes(layeredGraph, portList, southDummyNodes, null, barycenterAssociates); - predecessor = node; - for (dummy$iterator = new ArrayList$1(southDummyNodes); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - $setLayer(dummy, ++pointer, layer); - $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); - $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(predecessor, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(dummy); - } - barycenterAssociates.array.length == 0 || $setProperty_0(node, BARYCENTER_ASSOCIATES, barycenterAssociates); - } - } - $done_0(monitor); -} - -function $sortPortList_0(node){ - var inOutPorts, inPorts, incoming, outPorts, outgoing, port, port$iterator, ports; - ports = node.ports.array.length; - inPorts = 0; - inOutPorts = ports; - outPorts = 2 * ports; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 2: - case 4: - port.id_0 = -1; - break; - case 1: - case 3: - incoming = port.incomingEdges.array.length; - outgoing = port.outgoingEdges.array.length; - incoming > 0 && outgoing > 0?(port.id_0 = inOutPorts++):incoming > 0?(port.id_0 = inPorts++):outgoing > 0?(port.id_0 = outPorts++):(port.id_0 = inPorts++); - } - } - $clinit_Collections(); - $sort(node.ports, new NorthSouthPortPreprocessor$lambda$0$Type); -} - -function NorthSouthPortPreprocessor(){ -} - -function lambda$0_24(port1_0, port2_1){ - var side1, side2; - side1 = port1_0.side; - side2 = port2_1.side; - return side1 != side2?side1.ordinal - side2.ordinal:port1_0.id_0 == port2_1.id_0?0:side1 == ($clinit_PortSide() , NORTH_3)?port1_0.id_0 - port2_1.id_0:port2_1.id_0 - port1_0.id_0; -} - -defineClass(1568, 1, $intern_105, NorthSouthPortPreprocessor); -_.process = function process_36(layeredGraph, monitor){ - $process_38(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor', 1568); -function NorthSouthPortPreprocessor$lambda$0$Type(){ -} - -defineClass(1569, 1, $intern_88, NorthSouthPortPreprocessor$lambda$0$Type); -_.compare_1 = function compare_47(arg0, arg1){ - return lambda$0_24(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_123(other){ - return this === other; -} -; -_.reversed = function reversed_39(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor/lambda$0$Type', 1569); -function $connectNodes(firstPartition, secondPartition){ - var edge, node, node$iterator, otherNode, otherNode$iterator, sourcePort, targetPort; - for (node$iterator = firstPartition.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - sourcePort = new LPort; - $setNode(sourcePort, node); - $setSide(sourcePort, ($clinit_PortSide() , EAST_2)); - $setProperty_0(sourcePort, ($clinit_InternalProperties_1() , PARTITION_DUMMY), ($clinit_Boolean() , true)); - for (otherNode$iterator = secondPartition.iterator_0(); otherNode$iterator.hasNext_0();) { - otherNode = castTo(otherNode$iterator.next_1(), 10); - targetPort = new LPort; - $setNode(targetPort, otherNode); - $setSide(targetPort, WEST_2); - $setProperty_0(targetPort, PARTITION_DUMMY, true); - edge = new LEdge; - $setProperty_0(edge, PARTITION_DUMMY, true); - $setSource_0(edge, sourcePort); - $setTarget_0(edge, targetPort); - } - } -} - -function $process_39(lGraph, monitor){ - var firstId, idIterator, partitionToNodesMap, result, secondId, sortedPartitionIDs; - $begin(monitor, 'Partition midprocessing', 1); - partitionToNodesMap = new HashMultimap; - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionMidprocessor$lambda$0$Type), new PartitionMidprocessor$lambda$1$Type(partitionToNodesMap)); - if (partitionToNodesMap.totalSize == 0) { - return; - } - sortedPartitionIDs = castTo($collect_1($sorted_0((result = partitionToNodesMap.keySet , new StreamImpl(null, (!result?(partitionToNodesMap.keySet = new AbstractMapBasedMultimap$KeySet(partitionToNodesMap, partitionToNodesMap.map_0)):result).spliterator_0()))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - idIterator = sortedPartitionIDs.iterator_0(); - firstId = castTo(idIterator.next_1(), 19); - while (idIterator.hasNext_0()) { - secondId = castTo(idIterator.next_1(), 19); - $connectNodes(castTo($get(partitionToNodesMap, firstId), 21), castTo($get(partitionToNodesMap, secondId), 21)); - firstId = secondId; - } - $done_0(monitor); -} - -function PartitionMidprocessor(){ -} - -function lambda$1_11(partitionToNodesMap_0, node_1){ - return $put(partitionToNodesMap_0, castTo($getProperty(node_1, ($clinit_LayeredOptions() , PARTITIONING_PARTITION)), 19), node_1); -} - -defineClass(1570, 1, $intern_105, PartitionMidprocessor); -_.process = function process_37(lGraph, monitor){ - $process_39(castTo(lGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor', 1570); -function PartitionMidprocessor$lambda$0$Type(){ -} - -defineClass(1571, 1, $intern_39, PartitionMidprocessor$lambda$0$Type); -_.test_0 = function test_43(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$0$Type', 1571); -function PartitionMidprocessor$lambda$1$Type(partitionToNodesMap_0){ - this.partitionToNodesMap_0 = partitionToNodesMap_0; -} - -defineClass(1572, 1, $intern_19, PartitionMidprocessor$lambda$1$Type); -_.accept = function accept_77(arg0){ - lambda$1_11(this.partitionToNodesMap_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$1$Type', 1572); -function $process_40(lGraph, monitor){ - var layer, layer$iterator, node, node$iterator, port, ports; - $begin(monitor, 'Partition postprocessing', 1); - for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - ports = new ArrayList$1(node.ports); - while (ports.i < ports.this$01.array.length) { - port = castTo($next_7(ports), 11); - $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , PARTITION_DUMMY)))) && $remove_13(ports); - } - } - } - $done_0(monitor); -} - -function PartitionPostprocessor(){ -} - -defineClass(1573, 1, $intern_105, PartitionPostprocessor); -_.process = function process_38(lGraph, monitor){ - $process_40(castTo(lGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPostprocessor', 1573); -function $mustBeReversed(lEdge){ - var sourcePartition, targetPartition; - if ($hasProperty(lEdge.target.owner, ($clinit_LayeredOptions() , PARTITIONING_PARTITION))) { - sourcePartition = castTo($getProperty(lEdge.source.owner, PARTITIONING_PARTITION), 19); - targetPartition = castTo($getProperty(lEdge.target.owner, PARTITIONING_PARTITION), 19); - return compare_5(sourcePartition.value_0, targetPartition.value_0) > 0; - } - else { - return false; - } -} - -function $process_41(lGraph, monitor){ - var edgesToBeReversed; - $begin(monitor, 'Partition preprocessing', 1); - edgesToBeReversed = castTo($collect_1($filter($flatMap($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionPreprocessor$lambda$0$Type), new PartitionPreprocessor$lambda$1$Type), new PartitionPreprocessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - $forEach_3(edgesToBeReversed.stream(), new PartitionPreprocessor$lambda$3$Type); - $done_0(monitor); -} - -function $reverse_1(lEdge){ - var priority; - $reverse_0(lEdge, true); - priority = $intern_45; - $hasProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)) && (priority += castTo($getProperty(lEdge, PRIORITY_DIRECTION_0), 19).value_0); - $setProperty_0(lEdge, PRIORITY_DIRECTION_0, valueOf_4(priority)); -} - -function PartitionPreprocessor(){ -} - -defineClass(1574, 1, $intern_105, PartitionPreprocessor); -_.process = function process_39(lGraph, monitor){ - $process_41(castTo(lGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor', 1574); -function PartitionPreprocessor$lambda$0$Type(){ -} - -defineClass(1575, 1, $intern_39, PartitionPreprocessor$lambda$0$Type); -_.test_0 = function test_44(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$0$Type', 1575); -function PartitionPreprocessor$lambda$1$Type(){ -} - -defineClass(1576, 1, {}, PartitionPreprocessor$lambda$1$Type); -_.apply_0 = function apply_96(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$1$Type', 1576); -function PartitionPreprocessor$lambda$2$Type(){ -} - -defineClass(1577, 1, $intern_39, PartitionPreprocessor$lambda$2$Type); -_.test_0 = function test_45(arg0){ - return $mustBeReversed(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$2$Type', 1577); -function PartitionPreprocessor$lambda$3$Type(){ -} - -defineClass(1578, 1, $intern_19, PartitionPreprocessor$lambda$3$Type); -_.accept = function accept_78(arg0){ - $reverse_1(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$3$Type', 1578); -function $clinit_PortListSorter(){ - $clinit_PortListSorter = emptyMethod; - IN_EDGES = new PortListSorter$lambda$0$Type; - OUT_EDGES = new PortListSorter$lambda$1$Type; - CMP_PORT_SIDE = new PortListSorter$lambda$2$Type; - CMP_PORT_DEGREE_EAST_WEST = new PortListSorter$lambda$3$Type; - CMP_FIXED_ORDER_AND_FIXED_POS = new PortListSorter$lambda$4$Type; - CMP_COMBINED = (checkCriticalNotNull(CMP_FIXED_ORDER_AND_FIXED_POS) , new Comparator$lambda$0$Type); -} - -function $findPortSideRange(ports, side){ - var currentSide, hb, highIdx, lb, lowIdx; - if (ports.array.length == 0) { - return new Pair(valueOf_4(0), valueOf_4(0)); - } - currentSide = (checkCriticalElementIndex(0, ports.array.length) , castTo(ports.array[0], 11)).side; - lowIdx = 0; - lb = side.ordinal; - hb = side.ordinal + 1; - while (lowIdx < ports.array.length - 1 && currentSide.ordinal < lb) { - ++lowIdx; - currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; - } - highIdx = lowIdx; - while (highIdx < ports.array.length - 1 && currentSide.ordinal < hb) { - ++highIdx; - currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; - } - return new Pair(valueOf_4(lowIdx), valueOf_4(highIdx)); -} - -function $process_42(layeredGraph, monitor){ - var layer, layer$iterator, node, node$iterator, portConstraints, ports, pss; - $begin(monitor, 'Port order processing', 1); - pss = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_SORTING_STRATEGY_0)), 421); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - portConstraints = castTo($getProperty(node, PORT_CONSTRAINTS_0), 98); - ports = node.ports; - if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { - $clinit_Collections(); - $sort(ports, CMP_COMBINED); - } - else if (portConstraints != FREE && portConstraints != UNDEFINED_4) { - $clinit_Collections(); - $sort(ports, CMP_PORT_SIDE); - $reverseWestAndSouthSide(ports); - pss == ($clinit_PortSortingStrategy() , PORT_DEGREE) && $sort(ports, CMP_PORT_DEGREE_EAST_WEST); - } - node.portSidesCached = true; - $findPortIndices(node); - } - } - $done_0(monitor); -} - -function $reverse_2(ports, lowIdx, highIdx){ - var i, n, tmp; - if (highIdx <= lowIdx + 2) { - return; - } - n = (highIdx - lowIdx) / 2 | 0; - for (i = 0; i < n; ++i) { - tmp = (checkCriticalElementIndex(lowIdx + i, ports.array.length) , castTo(ports.array[lowIdx + i], 11)); - $set_1(ports, lowIdx + i, (checkCriticalElementIndex(highIdx - i - 1, ports.array.length) , castTo(ports.array[highIdx - i - 1], 11))); - checkCriticalElementIndex(highIdx - i - 1, ports.array.length); - ports.array[highIdx - i - 1] = tmp; - } -} - -function $reverseWestAndSouthSide(ports){ - var southIndices, westIndices; - if (ports.array.length <= 1) { - return; - } - southIndices = $findPortSideRange(ports, ($clinit_PortSide() , SOUTH_2)); - $reverse_2(ports, castTo(southIndices.first, 19).value_0, castTo(southIndices.second, 19).value_0); - westIndices = $findPortSideRange(ports, WEST_2); - $reverse_2(ports, castTo(westIndices.first, 19).value_0, castTo(westIndices.second, 19).value_0); -} - -function PortListSorter(){ - $clinit_PortListSorter(); -} - -function lambda$2_6(p1_0, p2_1){ - $clinit_PortListSorter(); - var ordinalDifference; - ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; - if (ordinalDifference != 0) { - return ordinalDifference; - } - return 0; -} - -function lambda$3_3(p1_0, p2_1){ - $clinit_PortListSorter(); - var ordinalDifference; - ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; - if (ordinalDifference != 0) { - return 0; - } - switch (p1_0.side.ordinal) { - case 2: - return realDegree_0(p2_1, OUT_EDGES) - realDegree_0(p1_0, OUT_EDGES); - case 4: - return realDegree_0(p1_0, IN_EDGES) - realDegree_0(p2_1, IN_EDGES); - } - return 0; -} - -function lambda$4_6(p1_0, p2_1){ - $clinit_PortListSorter(); - var index1, index2, indexDifference, ordinalDifference, portConstraints; - portConstraints = castTo($getProperty(p1_0.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; - if (ordinalDifference != 0 || !(portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS)) { - return 0; - } - if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER)) { - index1 = castTo($getProperty(p1_0, PORT_INDEX), 19); - index2 = castTo($getProperty(p2_1, PORT_INDEX), 19); - if (!!index1 && !!index2) { - indexDifference = index1.value_0 - index2.value_0; - if (indexDifference != 0) { - return indexDifference; - } - } - } - switch (p1_0.side.ordinal) { - case 1: - return compare_4(p1_0.pos.x_0, p2_1.pos.x_0); - case 2: - return compare_4(p1_0.pos.y_0, p2_1.pos.y_0); - case 3: - return compare_4(p2_1.pos.x_0, p1_0.pos.x_0); - case 4: - return compare_4(p2_1.pos.y_0, p1_0.pos.y_0); - default:throw toJs(new IllegalStateException_0('Port side is undefined')); - } -} - -function realDegree_0(p, edgesFun){ - var e, e$iterator, realDegree; - realDegree = 0; - for (e$iterator = castTo(edgesFun.apply_0(p), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - $booleanValue(castToBoolean($getProperty(e, ($clinit_InternalProperties_1() , REVERSED)))) || ++realDegree; - } - return realDegree; -} - -defineClass(1579, 1, $intern_105, PortListSorter); -_.process = function process_40(layeredGraph, monitor){ - $process_42(castTo(layeredGraph, 37), monitor); -} -; -var CMP_COMBINED, CMP_FIXED_ORDER_AND_FIXED_POS, CMP_PORT_DEGREE_EAST_WEST, CMP_PORT_SIDE, IN_EDGES, OUT_EDGES; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter', 1579); -function PortListSorter$lambda$0$Type(){ -} - -defineClass(1580, 1, {}, PortListSorter$lambda$0$Type); -_.apply_0 = function apply_97(arg0){ - return $clinit_PortListSorter() , castTo(arg0, 11).incomingEdges; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$0$Type', 1580); -function PortListSorter$lambda$1$Type(){ -} - -defineClass(1581, 1, {}, PortListSorter$lambda$1$Type); -_.apply_0 = function apply_98(arg0){ - return $clinit_PortListSorter() , castTo(arg0, 11).outgoingEdges; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$1$Type', 1581); -function PortListSorter$lambda$2$Type(){ -} - -defineClass(1582, 1, $intern_88, PortListSorter$lambda$2$Type); -_.compare_1 = function compare_48(arg0, arg1){ - return lambda$2_6(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_124(other){ - return this === other; -} -; -_.reversed = function reversed_40(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$2$Type', 1582); -function PortListSorter$lambda$3$Type(){ -} - -defineClass(1583, 1, $intern_88, PortListSorter$lambda$3$Type); -_.compare_1 = function compare_49(arg0, arg1){ - return lambda$3_3(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_125(other){ - return this === other; -} -; -_.reversed = function reversed_41(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$3$Type', 1583); -function PortListSorter$lambda$4$Type(){ -} - -defineClass(1584, 1, $intern_88, PortListSorter$lambda$4$Type); -_.compare_1 = function compare_50(arg0, arg1){ - return lambda$4_6(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_126(other){ - return this === other; -} -; -_.reversed = function reversed_42(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$4$Type', 1584); -function $process_43(layeredGraph, monitor){ - var layer, layer$iterator, node, node$iterator, node$iterator0; - $begin(monitor, 'Port side processing', 1); - for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - $process_44(node); - } - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $process_44(node); - } - } - $done_0(monitor); -} - -function $process_44(node){ - var port, port$iterator, portDummy; - if ($isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.side == ($clinit_PortSide() , UNDEFINED_5) && (portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10) , portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, EAST_2):$setSide(port, WEST_2)); - } - } - else { - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, ($clinit_PortSide() , EAST_2)):$setSide(port, ($clinit_PortSide() , WEST_2)); - } - $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)); - } -} - -function PortSideProcessor(){ -} - -defineClass(1585, 1, $intern_105, PortSideProcessor); -_.process = function process_41(layeredGraph, monitor){ - $process_43(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortSideProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortSideProcessor', 1585); -function $process_45(layeredGraph, monitor){ - var edge, edge$array, edge$index, edge$max, edgeArray, layer, layer$iterator, node, node$iterator, port, port$iterator; - $begin(monitor, 'Restoring reversed edges', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - edgeArray = toEdgeArray(port.outgoingEdges); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) && $reverse_0(edge, false); - } - } - } - } - $done_0(monitor); -} - -function ReversedEdgeRestorer(){ -} - -defineClass(1586, 1, $intern_105, ReversedEdgeRestorer); -_.process = function process_42(layeredGraph, monitor){ - $process_45(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_ReversedEdgeRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ReversedEdgeRestorer', 1586); -function $process_46(this$static, graph, progressMonitor){ - $begin(progressMonitor, 'Self-Loop ordering', 1); - $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPortRestorer$lambda$0$Type), new SelfLoopPortRestorer$lambda$1$Type), new SelfLoopPortRestorer$lambda$2$Type), new SelfLoopPortRestorer$lambda$3$Type), new SelfLoopPortRestorer$lambda$4$Type(this$static)); - $done_0(progressMonitor); -} - -function $processNode_4(this$static, slHolder){ - if (slHolder.arePortsHidden) { - switch (castTo($getProperty(slHolder.lNode, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS)), 98).ordinal) { - case 0: - case 1: - $assignPortSides(slHolder); - case 2: - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); - $restorePorts_0(this$static.portRestorer, slHolder); - } - } - else { - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); - } -} - -function SelfLoopPortRestorer(){ - this.portRestorer = new PortRestorer; -} - -defineClass(1591, 1, $intern_105, SelfLoopPortRestorer); -_.process = function process_43(graph, progressMonitor){ - $process_46(this, castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer', 1591); -function SelfLoopPortRestorer$lambda$0$Type(){ -} - -defineClass(1592, 1, {}, SelfLoopPortRestorer$lambda$0$Type); -_.apply_0 = function apply_99(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$0$Type', 1592); -function SelfLoopPortRestorer$lambda$1$Type(){ -} - -defineClass(1593, 1, $intern_39, SelfLoopPortRestorer$lambda$1$Type); -_.test_0 = function test_46(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$1$Type', 1593); -function SelfLoopPortRestorer$lambda$2$Type(){ -} - -defineClass(1594, 1, $intern_39, SelfLoopPortRestorer$lambda$2$Type); -_.test_0 = function test_47(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$2$Type', 1594); -function SelfLoopPortRestorer$lambda$3$Type(){ -} - -defineClass(1595, 1, {}, SelfLoopPortRestorer$lambda$3$Type); -_.apply_0 = function apply_100(arg0){ - return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$3$Type', 1595); -function SelfLoopPortRestorer$lambda$4$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1596, 1, $intern_19, SelfLoopPortRestorer$lambda$4$Type); -_.accept = function accept_79(arg0){ - $processNode_4(this.$$outer_0, castTo(arg0, 403)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$4$Type', 1596); -function SelfLoopPortRestorer$lambda$5$Type(){ -} - -defineClass(794, 1, $intern_19, SelfLoopPortRestorer$lambda$5$Type); -_.accept = function accept_80(arg0){ - $computePortsPerSide(castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$5$Type', 794); -function $process_47(graph, progressMonitor){ - $begin(progressMonitor, 'Self-Loop post-processing', 1); - $forEach_3($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPostProcessor$lambda$0$Type), new SelfLoopPostProcessor$lambda$1$Type), new SelfLoopPostProcessor$lambda$2$Type), new SelfLoopPostProcessor$lambda$3$Type); - $done_0(progressMonitor); -} - -function $processNode_5(lNode){ - var slHolder; - slHolder = castTo($getProperty(lNode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$4$Type), new SelfLoopPostProcessor$lambda$5$Type(lNode)); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$6$Type), new SelfLoopPostProcessor$lambda$7$Type(lNode)); -} - -function $restoreEdge(lNode, slEdge){ - var lEdge; - lEdge = slEdge.lEdge; - $setSource_0(lEdge, slEdge.slSource.lPort); - $setTarget_0(lEdge, slEdge.slTarget.lPort); - $offset_2(lEdge.bendPoints, lNode.pos); -} - -function SelfLoopPostProcessor(){ -} - -function lambda$7_1(lNode_0, slLoop_1){ - $applyPlacement(slLoop_1.slLabels, lNode_0.pos); -} - -defineClass(1597, 1, $intern_105, SelfLoopPostProcessor); -_.process = function process_44(graph, progressMonitor){ - $process_47(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor', 1597); -function SelfLoopPostProcessor$lambda$0$Type(){ -} - -defineClass(1598, 1, {}, SelfLoopPostProcessor$lambda$0$Type); -_.apply_0 = function apply_101(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$0$Type', 1598); -function SelfLoopPostProcessor$lambda$1$Type(){ -} - -defineClass(1599, 1, $intern_39, SelfLoopPostProcessor$lambda$1$Type); -_.test_0 = function test_48(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$1$Type', 1599); -function SelfLoopPostProcessor$lambda$2$Type(){ -} - -defineClass(1600, 1, $intern_39, SelfLoopPostProcessor$lambda$2$Type); -_.test_0 = function test_49(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$2$Type', 1600); -function SelfLoopPostProcessor$lambda$3$Type(){ -} - -defineClass(1601, 1, $intern_19, SelfLoopPostProcessor$lambda$3$Type); -_.accept = function accept_81(arg0){ - $processNode_5(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$3$Type', 1601); -function SelfLoopPostProcessor$lambda$4$Type(){ -} - -defineClass(1602, 1, {}, SelfLoopPostProcessor$lambda$4$Type); -_.apply_0 = function apply_102(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$4$Type', 1602); -function SelfLoopPostProcessor$lambda$5$Type(lNode_1){ - this.lNode_1 = lNode_1; -} - -defineClass(1603, 1, $intern_19, SelfLoopPostProcessor$lambda$5$Type); -_.accept = function accept_82(arg0){ - $restoreEdge(this.lNode_1, castTo(arg0, 409)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$5$Type', 1603); -function SelfLoopPostProcessor$lambda$6$Type(){ -} - -defineClass(1604, 1, $intern_39, SelfLoopPostProcessor$lambda$6$Type); -_.test_0 = function test_50(arg0){ - return !!castTo(arg0, 101).slLabels; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$6$Type', 1604); -function SelfLoopPostProcessor$lambda$7$Type(lNode_0){ - this.lNode_0 = lNode_0; -} - -defineClass(1605, 1, $intern_19, SelfLoopPostProcessor$lambda$7$Type); -_.accept = function accept_83(arg0){ - lambda$7_1(this.lNode_0, castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$7$Type', 1605); -function $hidePorts(slHolder){ - var entry, hierarchyMode, lNode, lPort, nestedGraph, orderFixed, outerIter, slPort, slPort$iterator; - lNode = slHolder.lNode; - nestedGraph = lNode.nestedGraph; - orderFixed = $isOrderFixed(castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)); - hierarchyMode = !!nestedGraph && castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); - if (orderFixed || hierarchyMode) { - return; - } - for (slPort$iterator = (outerIter = (new AbstractMap$2(slHolder.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { - slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); - if (slPort.hadOnlySelfLoops) { - lPort = slPort.lPort; - $setNode(lPort, null); - slPort.isHidden = true; - slHolder.arePortsHidden = true; - } - } -} - -function $lambda$2_0(lEdge_0){ - $setSource_0(lEdge_0, null); - $setTarget_0(lEdge_0, null); -} - -function $process_48(graph, progressMonitor){ - var lnode, lnode$iterator, slHolder, holder; - $begin(progressMonitor, 'Self-Loop pre-processing', 1); - for (lnode$iterator = new ArrayList$1(graph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { - lnode = castTo($next_7(lnode$iterator), 10); - if (needsSelfLoopProcessing(lnode)) { - slHolder = (holder = new SelfLoopHolder(lnode) , $setProperty_0(lnode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER), holder) , $initialize_3(holder) , holder); - $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPreProcessor$lambda$0$Type), new SelfLoopPreProcessor$lambda$1$Type), new SelfLoopPreProcessor$lambda$2$Type); - $hidePorts(slHolder); - } - } - $done_0(progressMonitor); -} - -function SelfLoopPreProcessor(){ -} - -defineClass(1587, 1, $intern_105, SelfLoopPreProcessor); -_.process = function process_45(graph, progressMonitor){ - $process_48(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor', 1587); -function SelfLoopPreProcessor$lambda$0$Type(){ -} - -defineClass(1588, 1, {}, SelfLoopPreProcessor$lambda$0$Type); -_.apply_0 = function apply_103(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$0$Type', 1588); -function SelfLoopPreProcessor$lambda$1$Type(){ -} - -defineClass(1589, 1, {}, SelfLoopPreProcessor$lambda$1$Type); -_.apply_0 = function apply_104(arg0){ - return castTo(arg0, 409).lEdge; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$1$Type', 1589); -function SelfLoopPreProcessor$lambda$2$Type(){ -} - -defineClass(1590, 1, $intern_19, SelfLoopPreProcessor$lambda$2$Type); -_.accept = function accept_84(arg0){ - $lambda$2_0(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$2$Type', 1590); -function $lambda$4(this$static, router_2, slHolder_3){ - $determineLoopRoutes(this$static.routingDirector, slHolder_3); - $placeLabels_1(slHolder_3); - $assignRoutingSlots(this$static.routingSlotAssigner, slHolder_3); - $routeSelfLoops(router_2, slHolder_3); -} - -function $process_49(this$static, graph, progressMonitor){ - var router; - $begin(progressMonitor, 'Self-Loop routing', 1); - router = $routerForGraph(graph); - throwClassCastExceptionUnlessNull($getProperty(graph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); - $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopRouter$lambda$0$Type), new SelfLoopRouter$lambda$1$Type), new SelfLoopRouter$lambda$2$Type), new SelfLoopRouter$lambda$3$Type), new SelfLoopRouter$lambda$4$Type(this$static, router)); - $done_0(progressMonitor); -} - -function $routerForGraph(graph){ - switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218).ordinal) { - case 1: - return new PolylineSelfLoopRouter; - case 3: - return new SplineSelfLoopRouter; - default:return new OrthogonalSelfLoopRouter; - } -} - -function SelfLoopRouter(){ - this.routingDirector = new RoutingDirector; - this.routingSlotAssigner = new RoutingSlotAssigner; -} - -defineClass(1606, 1, $intern_105, SelfLoopRouter); -_.process = function process_46(graph, progressMonitor){ - $process_49(this, castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter', 1606); -function SelfLoopRouter$lambda$0$Type(){ -} - -defineClass(1607, 1, {}, SelfLoopRouter$lambda$0$Type); -_.apply_0 = function apply_105(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$0$Type', 1607); -function SelfLoopRouter$lambda$1$Type(){ -} - -defineClass(1608, 1, $intern_39, SelfLoopRouter$lambda$1$Type); -_.test_0 = function test_51(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$1$Type', 1608); -function SelfLoopRouter$lambda$2$Type(){ -} - -defineClass(1609, 1, $intern_39, SelfLoopRouter$lambda$2$Type); -_.test_0 = function test_52(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$2$Type', 1609); -function SelfLoopRouter$lambda$3$Type(){ -} - -defineClass(1610, 1, {}, SelfLoopRouter$lambda$3$Type); -_.apply_0 = function apply_106(arg0){ - return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$3$Type', 1610); -function SelfLoopRouter$lambda$4$Type($$outer_0, router_2){ - this.$$outer_0 = $$outer_0; - this.router_2 = router_2; -} - -defineClass(1611, 1, $intern_19, SelfLoopRouter$lambda$4$Type); -_.accept = function accept_85(arg0){ - $lambda$4(this.$$outer_0, this.router_2, castTo(arg0, 403)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$4$Type', 1611); -function $process_50(layeredGraph, progressMonitor){ - var addedConstraints, l, l$iterator, reduced; - $begin(progressMonitor, 'Semi-Interactive Crossing Minimization Processor', 1); - addedConstraints = false; - for (l$iterator = new ArrayList$1(layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - reduced = $reduce_0($sorted_1($filter($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(l.nodes, 16)), new SemiInteractiveCrossMinProcessor$lambda$0$Type), new SemiInteractiveCrossMinProcessor$lambda$1$Type), new SemiInteractiveCrossMinProcessor$lambda$2$Type), new SemiInteractiveCrossMinProcessor$lambda$3$Type); - addedConstraints = addedConstraints | reduced.ref != null; - } - addedConstraints && $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES), ($clinit_Boolean() , true)); - $done_0(progressMonitor); -} - -function SemiInteractiveCrossMinProcessor(){ -} - -function lambda$2_7(n1_0, n2_1){ - var origPos1, origPos2; - origPos1 = castTo($getProperty(n1_0, ($clinit_LayeredOptions() , POSITION)), 8); - origPos2 = castTo($getProperty(n2_1, POSITION), 8); - return compare_4(origPos1.y_0, origPos2.y_0); -} - -function lambda$3_4(prev_0, cur_1){ - castTo($getProperty(prev_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).add_2(cur_1); - return cur_1; -} - -defineClass(1612, 1, $intern_105, SemiInteractiveCrossMinProcessor); -_.process = function process_47(layeredGraph, progressMonitor){ - $process_50(castTo(layeredGraph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor', 1612); -function SemiInteractiveCrossMinProcessor$lambda$0$Type(){ -} - -defineClass(1613, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$0$Type); -_.test_0 = function test_53(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$0$Type', 1613); -function SemiInteractiveCrossMinProcessor$lambda$1$Type(){ -} - -defineClass(1614, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$1$Type); -_.test_0 = function test_54(arg0){ - return $getAllProperties(castTo(arg0, 10)).containsKey(($clinit_LayeredOptions() , POSITION)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$1$Type', 1614); -function SemiInteractiveCrossMinProcessor$lambda$2$Type(){ -} - -defineClass(1615, 1, $intern_88, SemiInteractiveCrossMinProcessor$lambda$2$Type); -_.compare_1 = function compare_51(arg0, arg1){ - return lambda$2_7(castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_127(other){ - return this === other; -} -; -_.reversed = function reversed_43(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$2$Type', 1615); -function SemiInteractiveCrossMinProcessor$lambda$3$Type(){ -} - -defineClass(1616, 1, {}, SemiInteractiveCrossMinProcessor$lambda$3$Type); -_.apply_3 = function apply_107(arg0, arg1){ - return lambda$3_4(castTo(arg0, 10), castTo(arg1, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$3$Type', 1616); -function $process_51(graph, progressMonitor){ - var layer, layer$iterator, layerIndex, node, node$iterator, previousLayer, previousLayerIndex; - $begin(progressMonitor, 'Sort By Input Model ' + $getProperty(graph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 1); - layerIndex = 0; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - previousLayerIndex = layerIndex == 0?0:layerIndex - 1; - previousLayer = castTo($get_11(graph.layers, previousLayerIndex), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(($clinit_PortConstraints() , FIXED_ORDER)) && maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(FIXED_POS)) { - $clinit_Collections(); - $sort(node.ports, new ModelOrderPortComparator(previousLayer, longEdgeTargetNodePreprocessing(node))); - $log_2(progressMonitor, 'Node ' + node + ' ports: ' + node.ports); - } - } - $clinit_Collections(); - $sort(layer.nodes, new ModelOrderNodeComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 339), castTo($getProperty(graph, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0), 378))); - $log_2(progressMonitor, 'Layer ' + layerIndex + ': ' + layer); - ++layerIndex; - } - $done_0(progressMonitor); -} - -function SortByInputModelProcessor(){ -} - -function getTargetNode(port){ - var edge, node; - node = null; - edge = castTo($get_11(port.outgoingEdges, 0), 17); - do { - node = edge.target.owner; - if ($hasProperty(node, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET))) { - return castTo($getProperty(node, LONG_EDGE_TARGET), 11).owner; - } - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))) { - edge = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17); - } - else if (node.type_0 != NORMAL) { - return null; - } - } - while (!!node && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)); - return node; -} - -function lambda$1_12(targetNodeModelOrder_0, p_1){ - var edge, previousOrder, targetNode; - targetNode = getTargetNode(p_1); - $setProperty_0(p_1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE), targetNode); - if (targetNode) { - previousOrder = $intern_0; - !!$getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode) && (previousOrder = castTo(getEntryValueOrNull($getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode)), 19).value_0); - edge = castTo($get_11(p_1.outgoingEdges, 0), 17); - $booleanValue(castToBoolean($getProperty(edge, REVERSED))) || $put_6(targetNodeModelOrder_0, targetNode, valueOf_4($wnd.Math.min(castTo($getProperty(edge, MODEL_ORDER_0), 19).value_0, previousOrder))); - } -} - -function longEdgeTargetNodePreprocessing(node){ - var targetNodeModelOrder; - targetNodeModelOrder = new HashMap; - if ($hasProperty(node, ($clinit_InternalProperties_1() , TARGET_NODE_MODEL_ORDER))) { - return castTo($getProperty(node, TARGET_NODE_MODEL_ORDER), 83); - } - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(node.ports, 16)), new SortByInputModelProcessor$lambda$0$Type), new SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder)); - $setProperty_0(node, TARGET_NODE_MODEL_ORDER, targetNodeModelOrder); - return targetNodeModelOrder; -} - -defineClass(1618, 1, $intern_105, SortByInputModelProcessor); -_.process = function process_48(graph, progressMonitor){ - $process_51(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor', 1618); -function SortByInputModelProcessor$lambda$0$Type(){ -} - -defineClass(1619, 1, $intern_39, SortByInputModelProcessor$lambda$0$Type); -_.test_0 = function test_55(arg0){ - return castTo(arg0, 11).outgoingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$0$Type', 1619); -function SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder_0){ - this.targetNodeModelOrder_0 = targetNodeModelOrder_0; -} - -defineClass(1620, 1, $intern_19, SortByInputModelProcessor$lambda$1$Type); -_.accept = function accept_86(arg0){ - lambda$1_12(this.targetNodeModelOrder_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$1$Type', 1620); -function $alterGroupedHitboxOrthogonal(g, spacing, fac){ - var delta, master, n, n$iterator, vs; - master = g.master; - !master && (master = castTo(g.cNodes.map_0.keySet_0().iterator_0().next_1(), 57)); - $alterHitbox(master, spacing, fac); - if (g.cNodes.map_0.size_1() == 1) { - return; - } - delta = spacing * fac; - for (n$iterator = g.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if (n != master) { - vs = getVerticalSegmentOrNull(n); - if (vs.ignoreSpacing.up) { - n.hitbox.y_0 += delta + $intern_94; - n.hitbox.height -= delta + $intern_94; - } - else - vs.ignoreSpacing.down && (n.hitbox.height -= delta + $intern_94); - } - } -} - -function $alterHitbox(n, spacing, fac){ - var delta, vs; - delta = spacing * fac; - if (instanceOf(n.origin_0, 145)) { - vs = getVerticalSegmentOrNull(n); - if (vs.ignoreSpacing.up) { - vs.ignoreSpacing.down || (n.hitbox.height += delta + $intern_94); - } - else { - n.hitbox.y_0 -= delta + $intern_94; - n.hitbox.height += delta + $intern_94; - } - } - else if (instanceOf(n.origin_0, 10)) { - n.hitbox.y_0 -= delta; - n.hitbox.height += 2 * delta; - } -} - -function $lambda$1_0(this$static, n_0){ - var lNode, spacing, vs; - if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return $intern_59; - } - vs = getVerticalSegmentOrNull(n_0); - if (vs) { - return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); - } - lNode = getLNodeOrNull(n_0); - if (lNode) { - spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - return $wnd.Math.max(0, spacing / 2 - 0.5); - } - return $intern_59; -} - -function $lambda$14(schedule_1, n_1){ - var finalSpacing, lNode, spacing; - lNode = getLNodeOrNull(n_1); - spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - finalSpacing = $wnd.Math.max(0, spacing / 2 - 0.5); - $alterHitbox(n_1, finalSpacing, 1); - $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing)); -} - -function $lambda$18(this$static, n_0){ - var lNode, spacing, vs; - if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return $intern_59; - } - vs = getVerticalSegmentOrNull(n_0); - if (vs) { - return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); - } - lNode = getLNodeOrNull(n_0); - if (lNode) { - spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - return $wnd.Math.max(0, spacing / 2 - 0.5); - } - return $intern_59; -} - -function $lambda$20(minSpacing_1, schedule_3, g_2){ - $alterGroupedHitboxOrthogonal(g_2, minSpacing_1, 1); - $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_2, minSpacing_1)); -} - -function $lambda$4_0(minSpacing_1, schedule_3, n_2){ - $alterHitbox(n_2, minSpacing_1, 1); - $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_2, minSpacing_1)); -} - -function $lambda$9(this$static, schedule_1, n_1){ - var spacing; - spacing = $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); - $alterHitbox(n_1, spacing, 1); - $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing)); -} - -function EdgeAwareScanlineConstraintCalculation(graph){ - ScanlineConstraintCalculator.call(this); - this.verticalEdgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - this.edgeRouting = castTo($getProperty(graph, EDGE_ROUTING), 218); -} - -defineClass(1693, 803, {}, EdgeAwareScanlineConstraintCalculation); -_.calculateConstraints = function calculateConstraints_1(theCompactor){ - var schedule, minSpacing, schedule_0, minSpacing_0; - this.compactor = theCompactor; - switch (this.edgeRouting.ordinal) { - case 2: - schedule = new ArrayList; - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$8$Type), new EdgeAwareScanlineConstraintCalculation$lambda$9$Type(this, schedule)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$11$Type); - $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$12$Type); - schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$13$Type), new EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$16$Type); - $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$17$Type); - schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - minSpacing = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$18$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$19$Type); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cGroups, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing, schedule)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$22$Type); - $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$23$Type); - schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - break; - case 3: - schedule_0 = new ArrayList; - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$0$Type); - minSpacing_0 = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$1$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$2$Type); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$3$Type), new EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_0, schedule_0)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$6$Type); - $forEach_1(schedule_0, new EdgeAwareScanlineConstraintCalculation$lambda$7$Type); - schedule_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - break; - default:throw toJs(new UnsupportedConfigurationException); - } -} -; -_.verticalEdgeEdgeSpacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation', 1693); -function EdgeAwareScanlineConstraintCalculation$lambda$0$Type(){ -} - -defineClass(1694, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$0$Type); -_.apply_1 = function apply_108(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -_.equals_0 = function equals_128(other){ - return this === other; -} -; -_.test_0 = function test_56(input_0){ - return instanceOf(castTo(input_0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$0$Type', 1694); -function EdgeAwareScanlineConstraintCalculation$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1695, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$1$Type); -_.applyAsDouble = function applyAsDouble_1(arg0){ - return $lambda$1_0(this.$$outer_0, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$1$Type', 1695); -function EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing_2){ - this.n_1 = n_1; - this.spacing_2 = spacing_2; -} - -defineClass(1703, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$10$Type); -_.run = function run_1(){ - $alterHitbox(this.n_1, this.spacing_2, -1); -} -; -_.spacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$10$Type', 1703); -function EdgeAwareScanlineConstraintCalculation$lambda$11$Type(){ -} - -defineClass(1705, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$11$Type); -_.apply_1 = function apply_109(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -_.equals_0 = function equals_129(other){ - return this === other; -} -; -_.test_0 = function test_57(input_0){ - return instanceOf(castTo(input_0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$11$Type', 1705); -function EdgeAwareScanlineConstraintCalculation$lambda$12$Type(){ -} - -defineClass(1706, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$12$Type); -_.accept = function accept_87(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$12$Type', 1706); -function EdgeAwareScanlineConstraintCalculation$lambda$13$Type(){ -} - -defineClass(1707, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$13$Type); -_.test_0 = function test_58(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$13$Type', 1707); -function EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule_1){ - this.schedule_1 = schedule_1; -} - -defineClass(1709, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$14$Type); -_.accept = function accept_88(arg0){ - $lambda$14(this.schedule_1, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$14$Type', 1709); -function EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing_2){ - this.n_1 = n_1; - this.finalSpacing_2 = finalSpacing_2; -} - -defineClass(1708, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$15$Type); -_.run = function run_2(){ - $alterHitbox(this.n_1, this.finalSpacing_2, -1); -} -; -_.finalSpacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$15$Type', 1708); -function EdgeAwareScanlineConstraintCalculation$lambda$16$Type(){ -} - -defineClass(1710, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$16$Type); -_.apply_1 = function apply_110(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -_.equals_0 = function equals_130(other){ - return this === other; -} -; -_.test_0 = function test_59(input_0){ - return instanceOf(castTo(input_0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$16$Type', 1710); -function EdgeAwareScanlineConstraintCalculation$lambda$17$Type(){ -} - -defineClass(1711, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$17$Type); -_.accept = function accept_89(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$17$Type', 1711); -function EdgeAwareScanlineConstraintCalculation$lambda$18$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1712, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$18$Type); -_.applyAsDouble = function applyAsDouble_2(arg0){ - return $lambda$18(this.$$outer_0, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$18$Type', 1712); -function EdgeAwareScanlineConstraintCalculation$lambda$19$Type(){ -} - -defineClass(1713, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$19$Type); -_.getAsDouble = function getAsDouble(){ - return 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$19$Type', 1713); -function EdgeAwareScanlineConstraintCalculation$lambda$2$Type(){ -} - -defineClass(1696, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$2$Type); -_.getAsDouble = function getAsDouble_0(){ - return 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$2$Type', 1696); -function EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing_1, schedule_3){ - this.minSpacing_1 = minSpacing_1; - this.schedule_3 = schedule_3; -} - -defineClass(1715, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$20$Type); -_.accept = function accept_90(arg0){ - $lambda$20(this.minSpacing_1, this.schedule_3, castTo(arg0, 307)); -} -; -_.minSpacing_1 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$20$Type', 1715); -function EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_1, minSpacing_2){ - this.g_1 = g_1; - this.minSpacing_2 = minSpacing_2; -} - -defineClass(1714, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$21$Type); -_.run = function run_3(){ - $alterGroupedHitboxOrthogonal(this.g_1, this.minSpacing_2, -1); -} -; -_.minSpacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$21$Type', 1714); -function EdgeAwareScanlineConstraintCalculation$lambda$22$Type(){ -} - -defineClass(1716, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$22$Type); -_.apply_1 = function apply_111(arg0){ - return castTo(arg0, 57) , true; -} -; -_.equals_0 = function equals_131(other){ - return this === other; -} -; -_.test_0 = function test_60(input_0){ - return castTo(input_0, 57) , true; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$22$Type', 1716); -function EdgeAwareScanlineConstraintCalculation$lambda$23$Type(){ -} - -defineClass(1717, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$23$Type); -_.accept = function accept_91(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$23$Type', 1717); -function EdgeAwareScanlineConstraintCalculation$lambda$3$Type(){ -} - -defineClass(1697, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$3$Type); -_.test_0 = function test_61(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$3$Type', 1697); -function EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_1, schedule_3){ - this.minSpacing_1 = minSpacing_1; - this.schedule_3 = schedule_3; -} - -defineClass(1699, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$4$Type); -_.accept = function accept_92(arg0){ - $lambda$4_0(this.minSpacing_1, this.schedule_3, castTo(arg0, 57)); -} -; -_.minSpacing_1 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$4$Type', 1699); -function EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_1, minSpacing_2){ - this.n_1 = n_1; - this.minSpacing_2 = minSpacing_2; -} - -defineClass(1698, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$5$Type); -_.run = function run_4(){ - $alterHitbox(this.n_1, this.minSpacing_2, -1); -} -; -_.minSpacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$5$Type', 1698); -function EdgeAwareScanlineConstraintCalculation$lambda$6$Type(){ -} - -defineClass(1700, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$6$Type); -_.apply_1 = function apply_112(arg0){ - return castTo(arg0, 57) , true; -} -; -_.equals_0 = function equals_132(other){ - return this === other; -} -; -_.test_0 = function test_62(input_0){ - return castTo(input_0, 57) , true; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$6$Type', 1700); -function EdgeAwareScanlineConstraintCalculation$lambda$7$Type(){ -} - -defineClass(1701, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$7$Type); -_.accept = function accept_93(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$7$Type', 1701); -function EdgeAwareScanlineConstraintCalculation$lambda$8$Type(){ -} - -defineClass(1702, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$8$Type); -_.test_0 = function test_63(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$8$Type', 1702); -function EdgeAwareScanlineConstraintCalculation$lambda$9$Type($$outer_0, schedule_1){ - this.$$outer_0 = $$outer_0; - this.schedule_1 = schedule_1; -} - -defineClass(1704, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$9$Type); -_.accept = function accept_94(arg0){ - $lambda$9(this.$$outer_0, this.schedule_1, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$9$Type', 1704); -function $clinit_HorizontalGraphCompactor(){ - $clinit_HorizontalGraphCompactor = emptyMethod; - NETWORK_SIMPLEX_COMPACTION = new NetworkSimplexCompaction; -} - -function $process_52(this$static, layeredGraph, progressMonitor){ - var odc, strategy, transformer; - strategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , COMPACTION_POST_COMPACTION_STRATEGY_0)), 275); - if (strategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { - return; - } - $begin(progressMonitor, 'Horizontal Compaction', 1); - this$static.lGraph = layeredGraph; - transformer = new LGraphToCGraphTransformer; - odc = new OneDimensionalCompactor((transformer.layeredGraph = layeredGraph , transformer.edgeRouting = castTo($getProperty(transformer.layeredGraph, EDGE_ROUTING), 218) , $init(transformer) , $transformNodes_0(transformer) , $transformEdges_0(transformer) , transformer.cGraph)); - $setSpacingsHandler(odc, this$static.specialSpacingsHandler); - switch (castTo($getProperty(layeredGraph, COMPACTION_POST_COMPACTION_CONSTRAINTS_0), 422).ordinal) { - case 1: - $setConstraintAlgorithm(odc, new EdgeAwareScanlineConstraintCalculation(this$static.lGraph)); - break; - default:$setConstraintAlgorithm(odc, ($clinit_OneDimensionalCompactor() , QUADRATIC_CONSTRAINTS)); - } - switch (strategy.ordinal) { - case 1: - $compact(odc); - break; - case 2: - $compact($changeDirection(odc, ($clinit_Direction_0() , RIGHT_6))); - break; - case 3: - $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$0$Type)); - break; - case 4: - $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$1$Type(transformer))); - break; - case 5: - $compact($setCompactionAlgorithm(odc, NETWORK_SIMPLEX_COMPACTION)); - } - $changeDirection(odc, ($clinit_Direction_0() , LEFT_6)); - odc.finished = true; - $applyLayout_3(transformer); - $done_0(progressMonitor); -} - -function HorizontalGraphCompactor(){ - $clinit_HorizontalGraphCompactor(); - this.specialSpacingsHandler = new HorizontalGraphCompactor$1(this); -} - -function getLNodeOrNull(cNode){ - $clinit_HorizontalGraphCompactor(); - if (instanceOf(cNode.origin_0, 10)) { - return castTo(cNode.origin_0, 10); - } - return null; -} - -function getVerticalSegmentOrNull(cNode){ - $clinit_HorizontalGraphCompactor(); - if (instanceOf(cNode.origin_0, 145)) { - return castTo(cNode.origin_0, 145); - } - return null; -} - -function isVerticalSegmentsOfSameEdge(cNode1, cNode2){ - $clinit_HorizontalGraphCompactor(); - var v1, v2; - v1 = getVerticalSegmentOrNull(cNode1); - v2 = getVerticalSegmentOrNull(cNode2); - return !!v1 && !!v2 && !disjoint(v1.representedLEdges, v2.representedLEdges); -} - -function lambda$1_13(transformer_0, node_1, dir_2){ - $clinit_HorizontalGraphCompactor(); - return $get_18(castTo($get_10(transformer_0.lockMap, node_1), 522), dir_2); -} - -defineClass(1521, 1, $intern_105, HorizontalGraphCompactor); -_.process = function process_49(layeredGraph, progressMonitor){ - $process_52(this, castTo(layeredGraph, 37), progressMonitor); -} -; -var NETWORK_SIMPLEX_COMPACTION; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor', 1521); -function HorizontalGraphCompactor$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1522, 1, {}, HorizontalGraphCompactor$1); -_.getHorizontalSpacing = function getHorizontalSpacing_2(cNode1, cNode2){ - var node1, node2, spacings; - if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { - return 0; - } - node1 = getLNodeOrNull(cNode1); - node2 = getLNodeOrNull(cNode2); - if (!!node1 && node1.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || !!node2 && node2.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return 0; - } - spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - return $getHorizontalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); -} -; -_.getVerticalSpacing = function getVerticalSpacing_2(cNode1, cNode2){ - var node1, node2, spacings; - if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { - return 1; - } - node1 = getLNodeOrNull(cNode1); - node2 = getLNodeOrNull(cNode2); - spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - return $getVerticalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/1', 1522); -function HorizontalGraphCompactor$lambda$0$Type(){ -} - -defineClass(1523, 1, {}, HorizontalGraphCompactor$lambda$0$Type); -_.isLocked = function isLocked(arg0, arg1){ - return $clinit_HorizontalGraphCompactor() , arg0.cGroup.outDegreeReal == 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$0$Type', 1523); -function HorizontalGraphCompactor$lambda$1$Type(transformer_0){ - this.transformer_0 = transformer_0; -} - -defineClass(1524, 1, {}, HorizontalGraphCompactor$lambda$1$Type); -_.isLocked = function isLocked_0(arg0, arg1){ - return lambda$1_13(this.transformer_0, arg0, arg1); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$1$Type', 1524); -function $clinit_LGraphToCGraphTransformer(){ - $clinit_LGraphToCGraphTransformer = emptyMethod; - NODE_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$0$Type; - VS_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$1$Type; -} - -function $adjustControlPointBetweenSegments(this$static, left, right, leftIdx, rightIdx, spline){ - var adjust, chunk, chunks, endX, idx1, idx2, k, n, newPos, startX, strip, width_0; - idx1 = leftIdx; - if (left.initialSegment && left.isStraight) { - n = castTo($get_10(this$static.nodesMap, left.sourceNode), 57); - startX = n.hitbox.x_0 + n.hitbox.width_0; - --idx1; - } - else { - startX = left.boundingBox.x_0 + left.boundingBox.width_0; - } - idx2 = rightIdx; - if (right.lastSegment && right.isStraight) { - n = castTo($get_10(this$static.nodesMap, right.targetNode), 57); - endX = n.hitbox.x_0; - ++idx2; - } - else { - endX = right.boundingBox.x_0; - } - strip = endX - startX; - chunks = $wnd.Math.max(2, idx2 - idx1); - chunk = strip / chunks; - newPos = startX + chunk; - for (k = idx1; k < idx2; ++k) { - adjust = castTo(spline.get_0(k), 128); - width_0 = adjust.boundingBox.width_0; - adjust.boundingBox.x_0 = newPos - width_0 / 2; - newPos += chunk; - } -} - -function $adjustSplineControlPoints(this$static, spline){ - var i, j, lastSeg, needle, nextSeg; - if (spline.isEmpty()) { - return; - } - lastSeg = castTo(spline.get_0(0), 128); - if (spline.size_1() == 1) { - $adjustControlPointBetweenSegments(this$static, lastSeg, lastSeg, 1, 0, spline); - return; - } - i = 1; - while (i < spline.size_1()) { - if (lastSeg.initialSegment || !lastSeg.isStraight) { - needle = $firstNonStraightSegment(spline, i); - if (needle) { - j = castTo(needle.first, 19).value_0; - nextSeg = castTo(needle.second, 128); - $adjustControlPointBetweenSegments(this$static, lastSeg, nextSeg, i, j, spline); - i = j + 1; - lastSeg = nextSeg; - } - } - } -} - -function $applyCommentPositions(this$static){ - var comment, e, e$iterator, offset, other; - for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.commentOffsets)).this$01); e$iterator.hasNext;) { - e = $next_4(e$iterator); - comment = castTo(e.getKey(), 10); - other = castTo(castTo(e.getValue(), 46).first, 10); - offset = castTo(castTo(e.getValue(), 46).second, 8); - $add_19($reset_5(comment.pos), $add_19($clone_0(other.pos), offset)); - } -} - -function $applyExternalPortPositions(this$static, topLeft, bottomRight){ - var cNode, cNode$iterator, lNode; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - lNode = getLNodeOrNull(cNode); - if (lNode) { - if (lNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - switch (castTo($getProperty(lNode, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 4: - lNode.pos.x_0 = topLeft.x_0; - break; - case 2: - lNode.pos.x_0 = bottomRight.x_0 - (lNode.size_0.x_0 + lNode.margin.right); - break; - case 1: - lNode.pos.y_0 = topLeft.y_0; - break; - case 3: - lNode.pos.y_0 = bottomRight.y_0 - (lNode.size_0.y_0 + lNode.margin.bottom); - } - } - } - } -} - -function $applyLayout_3(this$static){ - var bottomRight, cNode, cNode$iterator, topLeft; - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$10$Type), new LGraphToCGraphTransformer$lambda$11$Type); - $applyCommentPositions(this$static); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$12$Type), new LGraphToCGraphTransformer$lambda$13$Type); - if (this$static.edgeRouting == ($clinit_EdgeRouting() , SPLINES)) { - $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.nodesMap), 1)), new LGraphToCGraphTransformer$lambda$17$Type), new LGraphToCGraphTransformer$lambda$18$Type), new LGraphToCGraphTransformer$lambda$19$Type(this$static)); - $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$20$Type), new LGraphToCGraphTransformer$lambda$21$Type), new LGraphToCGraphTransformer$lambda$22$Type), new LGraphToCGraphTransformer$lambda$23$Type), new LGraphToCGraphTransformer$lambda$24$Type(this$static)); - } - topLeft = new KVector_1($intern_59, $intern_59); - bottomRight = new KVector_1($intern_60, $intern_60); - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); - topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); - bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - $add_19($reset_5(this$static.layeredGraph.offset), $negate(new KVector_1(topLeft.x_0, topLeft.y_0))); - $add_19($reset_5(this$static.layeredGraph.size_0), $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft)); - $applyExternalPortPositions(this$static, topLeft, bottomRight); - $reset(this$static.nodesMap); - $reset(this$static.commentOffsets); - $reset(this$static.verticalSegmentsMap); - $reset(this$static.lockMap); - this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.cGraph = null; - this$static.layeredGraph = null; -} - -function $collectVerticalSegmentsOrthogonal(this$static){ - var bend1, bend2, bends, cNode, cTargetNode, edge, edge$iterator, edge$iterator0, first, lastSegment, layer, layer$iterator, node, node$iterator, verticalSegments, vs; - verticalSegments = new ArrayList; - for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - cNode = castTo($get_10(this$static.nodesMap, node), 57); - for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { - edge = castTo($next_0(edge$iterator0), 17); - bends = $listIterator_2(edge.bendPoints, 0); - first = true; - lastSegment = null; - if (bends.currentNode != bends.this$01.tail) { - bend1 = castTo($next_10(bends), 8); - bend2 = null; - if (edge.source.side == ($clinit_PortSide() , NORTH_3)) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); - vs.ignoreSpacing.down = true; - vs.aPort = edge.source; - verticalSegments.array[verticalSegments.array.length] = vs; - } - if (edge.source.side == SOUTH_2) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); - vs.ignoreSpacing.up = true; - vs.aPort = edge.source; - verticalSegments.array[verticalSegments.array.length] = vs; - } - while (bends.currentNode != bends.this$01.tail) { - bend2 = castTo($next_10(bends), 8); - if (!eq_0(bend1.y_0, bend2.y_0)) { - lastSegment = new VerticalSegment(bend1, bend2, null, edge); - verticalSegments.array[verticalSegments.array.length] = lastSegment; - if (first) { - first = false; - if (bend2.y_0 < cNode.hitbox.y_0) { - lastSegment.ignoreSpacing.down = true; - } - else if (bend2.y_0 > cNode.hitbox.y_0 + cNode.hitbox.height) { - lastSegment.ignoreSpacing.up = true; - } - else { - lastSegment.ignoreSpacing.up = true; - lastSegment.ignoreSpacing.down = true; - } - } - } - bends.currentNode != bends.this$01.tail && (bend1 = bend2); - } - if (lastSegment) { - cTargetNode = castTo($get_10(this$static.nodesMap, edge.target.owner), 57); - if (bend1.y_0 < cTargetNode.hitbox.y_0) { - lastSegment.ignoreSpacing.down = true; - } - else if (bend1.y_0 > cTargetNode.hitbox.y_0 + cTargetNode.hitbox.height) { - lastSegment.ignoreSpacing.up = true; - } - else { - lastSegment.ignoreSpacing.up = true; - lastSegment.ignoreSpacing.down = true; - } - } - } - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.bendPoints.size_0 != 0) { - bend1 = castTo($getLast(edge.bendPoints), 8); - if (edge.target.side == ($clinit_PortSide() , NORTH_3)) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); - vs.ignoreSpacing.down = true; - vs.aPort = edge.target; - verticalSegments.array[verticalSegments.array.length] = vs; - } - if (edge.target.side == SOUTH_2) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); - vs.ignoreSpacing.up = true; - vs.aPort = edge.target; - verticalSegments.array[verticalSegments.array.length] = vs; - } - } - } - } - } - return verticalSegments; -} - -function $firstNonStraightSegment(spline, index_0){ - var i, seg; - if (index_0 < 0 || index_0 >= spline.size_1()) { - return null; - } - for (i = index_0; i < spline.size_1(); ++i) { - seg = castTo(spline.get_0(i), 128); - if (i == spline.size_1() - 1 || !seg.isStraight) { - return new Pair(valueOf_4(i), seg); - } - } - return null; -} - -function $init(this$static){ - var hasEdges, index_0, l, l$iterator, n, n$iterator, supportedDirections; - hasEdges = false; - index_0 = 0; - for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - l.id_0 = index_0++; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - !hasEdges && !isEmpty_13($getConnectedEdges_0(n)) && (hasEdges = true); - } - } - supportedDirections = of_2(($clinit_Direction_0() , UNDEFINED_2), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [LEFT_6, RIGHT_6])); - if (!hasEdges) { - $add_5(supportedDirections, UP_1); - $add_5(supportedDirections, DOWN_1); - } - this$static.cGraph = new CGraph(supportedDirections); - $reset(this$static.nodesMap); - $reset(this$static.commentOffsets); - $reset(this$static.lockMap); - $reset(this$static.verticalSegmentsMap); -} - -function $lambda$19(this$static, sl_0){ - var cNode, deltaX, lNode; - lNode = sl_0.source.owner; - cNode = castTo($get_10(this$static.nodesMap, lNode), 57); - deltaX = cNode.hitbox.x_0 - cNode.hitboxPreCompaction.x_0; - $offset_1(sl_0.bendPoints, deltaX, 0); -} - -function $lambda$2_1(this$static, vs_0){ - var vsNode; - vsNode = castTo($get_10(this$static.verticalSegmentsMap, vs_0), 57); - $forEach_1(vs_0.constraints, new LGraphToCGraphTransformer$lambda$3$Type(this$static, vsNode)); -} - -function $lambda$3(this$static, vsNode_1, other_1){ - var otherNode; - otherNode = castTo($get_10(this$static.verticalSegmentsMap, other_1), 57); - $add_3(this$static.cGraph.predefinedHorizontalConstraints, new Pair(vsNode_1, otherNode)); -} - -function $lambda$9_0(this$static, cNode_1, other_1){ - return $put_6(this$static.verticalSegmentsMap, other_1, cNode_1); -} - -function $mergeVerticalSegments(this$static, verticalSegments){ - var next, survivor, vsIt, newX, newY, maxX, newW, maxY, newH; - if (verticalSegments.array.length == 0) { - return; - } - $clinit_Collections(); - sort_4(verticalSegments.array, verticalSegments.array.length, null); - vsIt = new ArrayList$1(verticalSegments); - survivor = castTo($next_7(vsIt), 145); - while (vsIt.i < vsIt.this$01.array.length) { - next = castTo($next_7(vsIt), 145); - if (eq_0(survivor.hitbox.x_0, next.hitbox.x_0) && !(lt_0($getBottomLeft(survivor.hitbox).y_0, next.hitbox.y_0) || lt_0($getBottomLeft(next.hitbox).y_0, survivor.hitbox.y_0))) { - survivor = ($addAll_2(survivor.representedLEdges, next.representedLEdges) , $addAll_2(survivor.affectedBends, next.affectedBends) , $addAll_2(survivor.affectedBoundingBoxes, next.affectedBoundingBoxes) , $addAll(survivor.junctionPoints, next.junctionPoints) , $addAll_2(survivor.constraints, next.constraints) , $addAll_2(survivor.potentialGroupParents, next.potentialGroupParents) , newX = $wnd.Math.min(survivor.hitbox.x_0, next.hitbox.x_0) , newY = $wnd.Math.min(survivor.hitbox.y_0, next.hitbox.y_0) , maxX = $wnd.Math.max(survivor.hitbox.x_0 + survivor.hitbox.width_0, next.hitbox.x_0 + next.hitbox.width_0) , newW = maxX - newX , maxY = $wnd.Math.max(survivor.hitbox.y_0 + survivor.hitbox.height, next.hitbox.y_0 + next.hitbox.height) , newH = maxY - newY , $setRect(survivor.hitbox, newX, newY, newW, newH) , $applyOr(survivor.ignoreSpacing, next.ignoreSpacing) , !survivor.aPort && (survivor.aPort = next.aPort) , $addAll_2(survivor.joined, next.joined) , $add_3(survivor.joined, next) , survivor); - } - else { - $verticalSegmentToCNode(this$static, survivor); - survivor = next; - } - } - $verticalSegmentToCNode(this$static, survivor); -} - -function $transformEdges_0(this$static){ - var style, verticalSegments, verticalSegments_0; - style = castTo($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); - switch (style.ordinal) { - case 2: - verticalSegments = $collectVerticalSegmentsOrthogonal(this$static); - break; - case 3: - verticalSegments = (verticalSegments_0 = new ArrayList , $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$4$Type), new LGraphToCGraphTransformer$lambda$5$Type), new LGraphToCGraphTransformer$lambda$6$Type), new LGraphToCGraphTransformer$0methodref$nonNull$Type), new LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0)) , verticalSegments_0); - break; - default:throw toJs(new IllegalStateException_0('Compaction not supported for ' + style + ' edges.')); - } - $mergeVerticalSegments(this$static, verticalSegments); - $forEach_0(new AbstractMap$1(this$static.verticalSegmentsMap), new LGraphToCGraphTransformer$lambda$2$Type(this$static)); -} - -function $transformNodes_0(this$static){ - var cNode, difference, e, hitbox, layer, layer$iterator, node, node$iterator, nodeLock, other, p; - for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { - if (!isEmpty_13($getConnectedEdges_0(node))) { - e = castTo(get_21($getConnectedEdges_0(node)), 17); - other = e.source.owner; - other == node && (other = e.target.owner); - p = new Pair(other, $sub_0($clone_0(node.pos), other.pos)); - $put_6(this$static.commentOffsets, node, p); - continue; - } - } - hitbox = new ElkRectangle_0(node.pos.x_0 - node.margin.left, node.pos.y_0 - node.margin.top_0, node.size_0.x_0 + node.margin.left + node.margin.right, node.size_0.y_0 + node.margin.top_0 + node.margin.bottom); - cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, node), hitbox), NODE_TO_STRING_DELEGATE), this$static.cGraph); - $create($master($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [cNode])), cNode), this$static.cGraph); - nodeLock = new Quadruplet; - $put_6(this$static.lockMap, cNode, nodeLock); - difference = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))) - size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - difference < 0?$set_3(nodeLock, true, ($clinit_Direction_0() , LEFT_6)):difference > 0 && $set_3(nodeLock, true, ($clinit_Direction_0() , RIGHT_6)); - node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && $set_4(nodeLock); - $put_6(this$static.nodesMap, node, cNode); - } - } -} - -function $verticalSegmentToCNode(this$static, verticalSegment){ - var cNode, difference, e, e$iterator, inc, out, vsLock; - cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, verticalSegment), new ElkRectangle_1(verticalSegment.hitbox)), VS_TO_STRING_DELEGATE), this$static.cGraph); - verticalSegment.potentialGroupParents.array.length == 0 || $addCNode(castTo($get_11(verticalSegment.potentialGroupParents, 0), 57).cGroup, cNode); - vsLock = new Quadruplet; - $put_6(this$static.lockMap, cNode, vsLock); - inc = new HashSet; - out = new HashSet; - for (e$iterator = new ArrayList$1(verticalSegment.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $add_6(inc, e.source); - $add_6(out, e.target); - } - difference = inc.map_0.size_1() - out.map_0.size_1(); - if (difference < 0) { - $set_3(vsLock, true, ($clinit_Direction_0() , LEFT_6)); - $set_3(vsLock, false, RIGHT_6); - } - else if (difference > 0) { - $set_3(vsLock, false, ($clinit_Direction_0() , LEFT_6)); - $set_3(vsLock, true, RIGHT_6); - } - $forEach_1(verticalSegment.joined, new LGraphToCGraphTransformer$lambda$9$Type(this$static, cNode)); - $put_6(this$static.verticalSegmentsMap, verticalSegment, cNode); -} - -function LGraphToCGraphTransformer(){ - $clinit_LGraphToCGraphTransformer(); - this.commentOffsets = new HashMap; - this.nodesMap = new HashMap; - this.verticalSegmentsMap = new HashMap; - this.lockMap = new HashMap; -} - -function lambda$11(cNode_0){ - $clinit_LGraphToCGraphTransformer(); - var lNode; - lNode = castTo(cNode_0.origin_0, 10); - lNode.pos.x_0 = cNode_0.hitbox.x_0 + lNode.margin.left; -} - -function lambda$13(cNode_0){ - $clinit_LGraphToCGraphTransformer(); - var deltaX, vs; - deltaX = cNode_0.hitbox.x_0 - cNode_0.hitboxPreCompaction.x_0; - vs = castTo(cNode_0.origin_0, 145); - $forEach_1(vs.affectedBends, new LGraphToCGraphTransformer$lambda$14$Type(deltaX)); - $forEach_1(vs.affectedBoundingBoxes, new LGraphToCGraphTransformer$lambda$15$Type(deltaX)); - $forEach_0(vs.junctionPoints, new LGraphToCGraphTransformer$lambda$16$Type(deltaX)); -} - -function lambda$14(deltaX_0, b_1){ - $clinit_LGraphToCGraphTransformer(); - return b_1.x_0 += deltaX_0; -} - -function lambda$15(deltaX_0, bb_1){ - $clinit_LGraphToCGraphTransformer(); - return bb_1.x_0 += deltaX_0; -} - -function lambda$16(deltaX_0, jp_1){ - $clinit_LGraphToCGraphTransformer(); - return jp_1.x_0 += deltaX_0; -} - -function lambda$23(chain_0){ - $clinit_LGraphToCGraphTransformer(); - return !!chain_0 && !chain_0.isEmpty(); -} - -function lambda$8_0(verticalSegments_0, spline_1){ - $clinit_LGraphToCGraphTransformer(); - var lastVs, leftTop, rightBottom, s, s$iterator, vs; - lastVs = null; - for (s$iterator = spline_1.iterator_0(); s$iterator.hasNext_0();) { - s = castTo(s$iterator.next_1(), 128); - if (s.isStraight) { - continue; - } - leftTop = $getTopLeft(s.boundingBox); - rightBottom = $getBottomRight(s.boundingBox); - vs = new VerticalSegment(leftTop, rightBottom, null, castTo(s.edges.map_0.keySet_0().iterator_0().next_1(), 17)); - $add_3(vs.affectedBoundingBoxes, s.boundingBox); - verticalSegments_0.array[verticalSegments_0.array.length] = vs; - !!lastVs && $add_3(lastVs.constraints, vs); - lastVs = vs; - } -} - -defineClass(1664, 1, {}, LGraphToCGraphTransformer); -var NODE_TO_STRING_DELEGATE, VS_TO_STRING_DELEGATE; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer', 1664); -function LGraphToCGraphTransformer$0methodref$nonNull$Type(){ -} - -defineClass(1672, 1, $intern_39, LGraphToCGraphTransformer$0methodref$nonNull$Type); -_.test_0 = function test_64(arg0){ - return arg0 != null; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$0methodref$nonNull$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/0methodref$nonNull$Type', 1672); -function LGraphToCGraphTransformer$lambda$0$Type(){ -} - -defineClass(1665, 1, {}, LGraphToCGraphTransformer$lambda$0$Type); -_.apply_0 = function apply_113(arg0){ - return $clinit_LGraphToCGraphTransformer() , toString_40($getProperty(castTo(castTo(arg0, 57).origin_0, 10), ($clinit_InternalProperties_1() , ORIGIN_0))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$0$Type', 1665); -function LGraphToCGraphTransformer$lambda$1$Type(){ -} - -defineClass(1666, 1, {}, LGraphToCGraphTransformer$lambda$1$Type); -_.apply_0 = function apply_114(arg0){ - return $clinit_LGraphToCGraphTransformer() , $toString_14(castTo(castTo(arg0, 57).origin_0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$1$Type', 1666); -function LGraphToCGraphTransformer$lambda$10$Type(){ -} - -defineClass(1675, 1, $intern_39, LGraphToCGraphTransformer$lambda$10$Type); -_.test_0 = function test_65(arg0){ - return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$10$Type', 1675); -function LGraphToCGraphTransformer$lambda$11$Type(){ -} - -defineClass(1676, 1, $intern_19, LGraphToCGraphTransformer$lambda$11$Type); -_.accept = function accept_95(arg0){ - lambda$11(castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$11$Type', 1676); -function LGraphToCGraphTransformer$lambda$12$Type(){ -} - -defineClass(1677, 1, $intern_39, LGraphToCGraphTransformer$lambda$12$Type); -_.test_0 = function test_66(arg0){ - return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$12$Type', 1677); -function LGraphToCGraphTransformer$lambda$13$Type(){ -} - -defineClass(1681, 1, $intern_19, LGraphToCGraphTransformer$lambda$13$Type); -_.accept = function accept_96(arg0){ - lambda$13(castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$13$Type', 1681); -function LGraphToCGraphTransformer$lambda$14$Type(deltaX_0){ - this.deltaX_0 = deltaX_0; -} - -defineClass(1678, 1, $intern_19, LGraphToCGraphTransformer$lambda$14$Type); -_.accept = function accept_97(arg0){ - lambda$14(this.deltaX_0, castTo(arg0, 8)); -} -; -_.deltaX_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$14$Type', 1678); -function LGraphToCGraphTransformer$lambda$15$Type(deltaX_0){ - this.deltaX_0 = deltaX_0; -} - -defineClass(1679, 1, $intern_19, LGraphToCGraphTransformer$lambda$15$Type); -_.accept = function accept_98(arg0){ - lambda$15(this.deltaX_0, castTo(arg0, 110)); -} -; -_.deltaX_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$15$Type', 1679); -function LGraphToCGraphTransformer$lambda$16$Type(deltaX_0){ - this.deltaX_0 = deltaX_0; -} - -defineClass(1680, 1, $intern_19, LGraphToCGraphTransformer$lambda$16$Type); -_.accept = function accept_99(arg0){ - lambda$16(this.deltaX_0, castTo(arg0, 8)); -} -; -_.deltaX_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$16$Type', 1680); -function LGraphToCGraphTransformer$lambda$17$Type(){ -} - -defineClass(1682, 1, {}, LGraphToCGraphTransformer$lambda$17$Type); -_.apply_0 = function apply_115(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$17$Type', 1682); -function LGraphToCGraphTransformer$lambda$18$Type(){ -} - -defineClass(1683, 1, $intern_39, LGraphToCGraphTransformer$lambda$18$Type); -_.test_0 = function test_67(arg0){ - return $clinit_LGraphToCGraphTransformer() , $isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$18$Type', 1683); -function LGraphToCGraphTransformer$lambda$19$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1684, 1, $intern_19, LGraphToCGraphTransformer$lambda$19$Type); -_.accept = function accept_100(arg0){ - $lambda$19(this.$$outer_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$19$Type', 1684); -function LGraphToCGraphTransformer$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1668, 1, $intern_19, LGraphToCGraphTransformer$lambda$2$Type); -_.accept = function accept_101(arg0){ - $lambda$2_1(this.$$outer_0, castTo(arg0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$2$Type', 1668); -function LGraphToCGraphTransformer$lambda$20$Type(){ -} - -defineClass(1685, 1, {}, LGraphToCGraphTransformer$lambda$20$Type); -_.apply_0 = function apply_116(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$20$Type', 1685); -function LGraphToCGraphTransformer$lambda$21$Type(){ -} - -defineClass(1686, 1, {}, LGraphToCGraphTransformer$lambda$21$Type); -_.apply_0 = function apply_117(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$21$Type', 1686); -function LGraphToCGraphTransformer$lambda$22$Type(){ -} - -defineClass(1687, 1, {}, LGraphToCGraphTransformer$lambda$22$Type); -_.apply_0 = function apply_118(arg0){ - return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$22$Type', 1687); -function LGraphToCGraphTransformer$lambda$23$Type(){ -} - -defineClass(1688, 1, $intern_39, LGraphToCGraphTransformer$lambda$23$Type); -_.test_0 = function test_68(arg0){ - return lambda$23(castTo(arg0, 15)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$23$Type', 1688); -function LGraphToCGraphTransformer$lambda$24$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1689, 1, $intern_19, LGraphToCGraphTransformer$lambda$24$Type); -_.accept = function accept_102(arg0){ - $adjustSplineControlPoints(this.$$outer_0, castTo(arg0, 15)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$24$Type', 1689); -function LGraphToCGraphTransformer$lambda$3$Type($$outer_0, vsNode_1){ - this.$$outer_0 = $$outer_0; - this.vsNode_1 = vsNode_1; -} - -defineClass(1667, 1, $intern_19, LGraphToCGraphTransformer$lambda$3$Type); -_.accept = function accept_103(arg0){ - $lambda$3(this.$$outer_0, this.vsNode_1, castTo(arg0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$3$Type', 1667); -function LGraphToCGraphTransformer$lambda$4$Type(){ -} - -defineClass(1669, 1, {}, LGraphToCGraphTransformer$lambda$4$Type); -_.apply_0 = function apply_119(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$4$Type', 1669); -function LGraphToCGraphTransformer$lambda$5$Type(){ -} - -defineClass(1670, 1, {}, LGraphToCGraphTransformer$lambda$5$Type); -_.apply_0 = function apply_120(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$5$Type', 1670); -function LGraphToCGraphTransformer$lambda$6$Type(){ -} - -defineClass(1671, 1, {}, LGraphToCGraphTransformer$lambda$6$Type); -_.apply_0 = function apply_121(arg0){ - return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$6$Type', 1671); -function LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0){ - this.verticalSegments_0 = verticalSegments_0; -} - -defineClass(1673, 1, $intern_19, LGraphToCGraphTransformer$lambda$8$Type); -_.accept = function accept_104(arg0){ - lambda$8_0(this.verticalSegments_0, castTo(arg0, 15)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$8$Type', 1673); -function LGraphToCGraphTransformer$lambda$9$Type($$outer_0, cNode_1){ - this.$$outer_0 = $$outer_0; - this.cNode_1 = cNode_1; -} - -defineClass(1674, 1, $intern_19, LGraphToCGraphTransformer$lambda$9$Type); -_.accept = function accept_105(arg0){ - $lambda$9_0(this.$$outer_0, this.cNode_1, castTo(arg0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$9$Type', 1674); -function $addArtificialSourceNode(this$static){ - var dummySource, lastArg, n, n$iterator, sources, src_0, src$iterator; - sources = new LinkedList; - for (n$iterator = new ArrayList$1(this$static.networkSimplexGraph.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 121); - n.incomingEdges.list.array.length == 0 && ($addNode_0(sources, n, sources.tail.prev, sources.tail) , true); - } - if (sources.size_0 > 1) { - dummySource = $create_2((lastArg = new NNode$NNodeBuilder , ++this$static.index_0 , lastArg), this$static.networkSimplexGraph); - for (src$iterator = $listIterator_2(sources, 0); src$iterator.currentNode != src$iterator.this$01.tail;) { - src_0 = castTo($next_10(src$iterator), 121); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 0), dummySource), src_0)); - } - } -} - -function $addEdgeConstraints(this$static){ - var cNode, cNode$iterator, cNode$iterator0, e, e$iterator, lEdge, lEdge$iterator, lEdgeMap, lNode, lNodeMap, n, n$iterator, src_0, srcPort, target, tgt, tgtPort, vs; - lNodeMap = new HashMap; - lEdgeMap = new HashMultimap; - for (cNode$iterator0 = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 57); - lNode = getLNodeOrNull(cNode); - if (lNode) { - $put_9(lNodeMap.hashCodeMap, lNode, cNode); - } - else { - vs = getVerticalSegmentOrNull(cNode); - if (vs) { - for (e$iterator = new ArrayList$1(vs.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $put(lEdgeMap, e, cNode); - } - } - } - } - for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - lNode = getLNodeOrNull(cNode); - if (lNode) { - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - if ($isSelfLoop(lEdge)) { - continue; - } - srcPort = lEdge.source; - tgtPort = lEdge.target; - if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(lEdge.source.side) && SIDES_NORTH_SOUTH.contains(lEdge.target.side)) { - continue; - } - target = castTo($get_10(lNodeMap, lEdge.target.owner), 57); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 100), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[target.cGroup.id_0])); - if (srcPort.side == WEST_2 && $apply_15(($clinit_LPort() , OUTPUT_PREDICATE , srcPort))) { - for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if (n.hitbox.x_0 < cNode.hitbox.x_0) { - src_0 = this$static.nNodes[n.cGroup.id_0]; - tgt = this$static.nNodes[cNode.cGroup.id_0]; - if (src_0 == tgt) { - continue; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); - } - } - } - if (tgtPort.side == EAST_2 && $apply_14(($clinit_LPort() , INPUT_PREDICATE , tgtPort))) { - for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if (n.hitbox.x_0 > cNode.hitbox.x_0) { - src_0 = this$static.nNodes[cNode.cGroup.id_0]; - tgt = this$static.nNodes[n.cGroup.id_0]; - if (src_0 == tgt) { - continue; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); - } - } - } - } - } - } -} - -function $addSeparationConstraints(this$static){ - var adjust, alterOffset, cNode, cNode$iterator, delta, helper, incNode, incNode$iterator, offsetDelta, port, spacing, weight; - for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - for (incNode$iterator = cNode.constraints.iterator_0(); incNode$iterator.hasNext_0();) { - incNode = castTo(incNode$iterator.next_1(), 57); - if (cNode.cGroup == incNode.cGroup) { - continue; - } - $isHorizontal(this$static.compactor.direction)?(spacing = this$static.compactor.spacingsHandler.getHorizontalSpacing(cNode, incNode)):(spacing = this$static.compactor.spacingsHandler.getVerticalSpacing(cNode, incNode)); - delta = cNode.cGroupOffset.x_0 + cNode.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0; - delta = $wnd.Math.ceil(delta); - delta = $wnd.Math.max(0, delta); - if (isVerticalSegmentsOfSameEdge(cNode, incNode)) { - helper = $create_2(new NNode$NNodeBuilder, this$static.networkSimplexGraph); - offsetDelta = round_int($wnd.Math.ceil(incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0)); - adjust = offsetDelta - (incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0); - port = getVerticalSegmentOrNull(cNode).aPort; - alterOffset = cNode; - if (!port) { - port = getVerticalSegmentOrNull(incNode).aPort; - adjust = -adjust; - alterOffset = incNode; - } - if (port) { - alterOffset.cGroupOffset.x_0 -= adjust; - port.pos.x_0 -= adjust; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, offsetDelta)), 1), helper), this$static.nNodes[cNode.cGroup.id_0])); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, -offsetDelta)), 1), helper), this$static.nNodes[incNode.cGroup.id_0])); - } - else { - weight = 1; - (instanceOf(cNode.origin_0, 145) && instanceOf(incNode.origin_0, 10) || instanceOf(incNode.origin_0, 145) && instanceOf(cNode.origin_0, 10)) && (weight = 2); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int(delta)), weight), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[incNode.cGroup.id_0])); - } - } - } -} - -function NetworkSimplexCompaction(){ -} - -defineClass(1663, 1, {}, NetworkSimplexCompaction); -_.compact = function compact_1(theCompactor){ - var cGroup, cGroup$iterator, cNode, cNode$iterator, nNode; - this.compactor = theCompactor; - this.networkSimplexGraph = new NGraph; - this.nNodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit, $intern_2, 121, this.compactor.cGraph.cGroups.array.length, 0, 1); - this.index_0 = 0; - for (cGroup$iterator = new ArrayList$1(this.compactor.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { - cGroup = castTo($next_7(cGroup$iterator), 307); - cGroup.id_0 = this.index_0; - nNode = $create_2($origin_0(new NNode$NNodeBuilder, cGroup), this.networkSimplexGraph); - this.nNodes[this.index_0] = nNode; - ++this.index_0; - } - $addSeparationConstraints(this); - $addEdgeConstraints(this); - $addArtificialSourceNode(this); - $execute_0(forGraph(this.networkSimplexGraph), new BasicProgressMonitor); - for (cNode$iterator = new ArrayList$1(this.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.hitbox.x_0 = this.nNodes[cNode.cGroup.id_0].layer + cNode.cGroupOffset.x_0; - } -} -; -_.index_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_NetworkSimplexCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'NetworkSimplexCompaction', 1663); -function $compareTo_12(this$static, o){ - var d; - d = fuzzyCompare(this$static.hitbox.x_0, o.hitbox.x_0); - if (d == 0) { - return compare_4(this$static.hitbox.y_0, o.hitbox.y_0); - } - return d; -} - -function $toString_14(this$static){ - var sb; - sb = new StringBuilder; - sb.string += 'VerticalSegment '; - $append_10(sb, this$static.hitbox); - sb.string += ' '; - $append_11(sb, $join(new Joiner, new ArrayList$1(this$static.representedLEdges))); - return sb.string; -} - -function VerticalSegment(bend1, bend2, cNode, lEdge){ - var inJPs, jp, jp$iterator; - this.potentialGroupParents = new ArrayList; - this.representedLEdges = new ArrayList; - this.affectedBends = new ArrayList; - this.affectedBoundingBoxes = new ArrayList; - this.hitbox = new ElkRectangle; - this.junctionPoints = new KVectorChain; - this.ignoreSpacing = new Quadruplet; - this.constraints = new ArrayList; - this.joined = new ArrayList; - $add_3(this.affectedBends, bend1); - $add_3(this.affectedBends, bend2); - this.hitbox.x_0 = $wnd.Math.min(bend1.x_0, bend2.x_0); - this.hitbox.y_0 = $wnd.Math.min(bend1.y_0, bend2.y_0); - this.hitbox.width_0 = $wnd.Math.abs(bend1.x_0 - bend2.x_0); - this.hitbox.height = $wnd.Math.abs(bend1.y_0 - bend2.y_0); - inJPs = castTo($getProperty(lEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (inJPs) { - for (jp$iterator = $listIterator_2(inJPs, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - eq_0(jp.x_0, bend1.x_0) && $add_7(this.junctionPoints, jp); - } - } - !!cNode && $add_3(this.potentialGroupParents, cNode); - $add_3(this.representedLEdges, lEdge); -} - -defineClass(145, 1, {35:1, 145:1}, VerticalSegment); -_.compareTo_0 = function compareTo_13(o){ - return $compareTo_12(this, castTo(o, 145)); -} -; -_.toString_0 = function toString_94(){ - return $toString_14(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_VerticalSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'VerticalSegment', 145); -function $addEasternCrossings(this$static, upperNode, lowerNode){ - this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , EAST_2), this$static.easternAdjacencies); - this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, EAST_2, this$static.easternAdjacencies); - if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { - return; - } - $countCrossingsByMergingAdjacencyLists(this$static); -} - -function $addWesternCrossings(this$static, upperNode, lowerNode){ - this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , WEST_2), this$static.westernAdjacencies); - this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, WEST_2, this$static.westernAdjacencies); - if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { - return; - } - $countCrossingsByMergingAdjacencyLists(this$static); -} - -function $countBothSideCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - if (upperNode == lowerNode) { - return; - } - $addWesternCrossings(this$static, upperNode, lowerNode); - $addEasternCrossings(this$static, upperNode, lowerNode); -} - -function $countCrossingsByMergingAdjacencyLists(this$static){ - while (this$static.upperAdjacencies.currentSize != 0 && this$static.lowerAdjacencies.currentSize != 0) { - if ($currentAdjacency(this$static.upperAdjacencies).position > $currentAdjacency(this$static.lowerAdjacencies).position) { - this$static.upperLowerCrossings += this$static.upperAdjacencies.currentSize; - $removeFirst_1(this$static.lowerAdjacencies); - } - else if ($currentAdjacency(this$static.lowerAdjacencies).position > $currentAdjacency(this$static.upperAdjacencies).position) { - this$static.lowerUpperCrossings += this$static.lowerAdjacencies.currentSize; - $removeFirst_1(this$static.upperAdjacencies); - } - else { - this$static.upperLowerCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.upperAdjacencies); - this$static.lowerUpperCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.lowerAdjacencies); - $removeFirst_1(this$static.upperAdjacencies); - $removeFirst_1(this$static.lowerAdjacencies); - } - } -} - -function $countEasternEdgeCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - if (upperNode == lowerNode) { - return; - } - $addEasternCrossings(this$static, upperNode, lowerNode); -} - -function $countWesternEdgeCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - if (upperNode == lowerNode) { - return; - } - $addWesternCrossings(this$static, upperNode, lowerNode); -} - -function $getAdjacencyFor(this$static, node, side, adjacencies){ - var aL, n, n$array, n$index, n$max; - if (adjacencies.hashCodeMap.size_0 + adjacencies.stringMap.size_0 == 0) { - for (n$array = this$static.currentNodeOrder[this$static.freeLayerIndex] , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { - n = n$array[n$index]; - $put_6(adjacencies, n, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$static, n, side)); - } - } - aL = castTo(getEntryValueOrNull($getEntry_0(adjacencies.hashCodeMap, node)), 663); - aL.currentIndex = 0; - aL.currentSize = aL.size_0; - aL.currentSize == 0 || $reset_3(castTo($get_11(aL.adjacencyList, aL.currentIndex), 287)); - return aL; -} - -function $setPortPositionsForLayer(this$static, layerIndex, portSide){ - var node, node$array, node$index, node$max, port, port$iterator, portId, ports; - portId = 0; - for (node$array = this$static.currentNodeOrder[layerIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - ports = inNorthSouthEastWestOrder(node, portSide); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $put_6(this$static.portPositions, port, valueOf_4(portId++)); - } - } -} - -function BetweenLayerEdgeTwoNodeCrossingsCounter(currentNodeOrder, freeLayerIndex){ - this.portPositions = new HashMap; - this.easternAdjacencies = new HashMap; - this.westernAdjacencies = new HashMap; - this.currentNodeOrder = currentNodeOrder; - this.freeLayerIndex = freeLayerIndex; - this.freeLayerIndex > 0 && $setPortPositionsForLayer(this, this.freeLayerIndex - 1, ($clinit_PortSide() , EAST_2)); - this.freeLayerIndex < this.currentNodeOrder.length - 1 && $setPortPositionsForLayer(this, this.freeLayerIndex + 1, ($clinit_PortSide() , WEST_2)); -} - -defineClass(827, 1, {}, BetweenLayerEdgeTwoNodeCrossingsCounter); -_.freeLayerIndex = 0; -_.lowerUpperCrossings = 0; -_.upperLowerCrossings = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter', 827); -function $addAdjacencyOf(this$static, edge){ - var adjacentPort, adjacentPortPosition, lastIndex; - adjacentPort = $adjacentPortOf(edge, this$static.side); - adjacentPortPosition = castTo($get_10(this$static.this$01.portPositions, adjacentPort), 19).value_0; - lastIndex = this$static.adjacencyList.array.length - 1; - if (this$static.adjacencyList.array.length != 0 && castTo($get_11(this$static.adjacencyList, lastIndex), 287).position == adjacentPortPosition) { - ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).cardinality; - ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).currentCardinality; - } - else { - $add_3(this$static.adjacencyList, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition)); - } -} - -function $adjacentPortOf(e, s){ - return s == ($clinit_PortSide() , WEST_2)?e.source:e.target; -} - -function $countAdjacenciesBelowNodeOfFirstPort(this$static){ - return this$static.currentSize - castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287).currentCardinality; -} - -function $currentAdjacency(this$static){ - return castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); -} - -function $iterateTroughEdgesCollectingAdjacencies(this$static){ - var edge, edge$iterator, edges, port, port$iterator, ports; - ports = inNorthSouthEastWestOrder(this$static.node, this$static.side); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - edges = this$static.side == ($clinit_PortSide() , WEST_2)?port.incomingEdges:port.outgoingEdges; - for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge) && edge.source.owner.layer != edge.target.owner.layer) { - $addAdjacencyOf(this$static, edge); - ++this$static.size_0; - ++this$static.currentSize; - } - } - } -} - -function $removeFirst_1(this$static){ - var currentEntry; - if (this$static.currentSize == 0) { - return; - } - currentEntry = castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); - currentEntry.currentCardinality == 1?(++this$static.currentIndex , this$static.currentIndex < this$static.adjacencyList.array.length && $reset_3(castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287))):--currentEntry.currentCardinality; - --this$static.currentSize; -} - -function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$0, node, side){ - this.this$01 = this$0; - this.node = node; - this.side = side; - this.adjacencyList = new ArrayList; - $iterateTroughEdgesCollectingAdjacencies(this); - $clinit_Collections(); - $sort(this.adjacencyList, null); -} - -defineClass(663, 1, {663:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList); -_.toString_0 = function toString_95(){ - return 'AdjacencyList [node=' + this.node + ', adjacencies= ' + this.adjacencyList + ']'; -} -; -_.currentIndex = 0; -_.currentSize = 0; -_.size_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList', 663); -function $compareTo_13(this$static, o){ - return this$static.position < o.position?-1:this$static.position == o.position?0:1; -} - -function $reset_3(this$static){ - this$static.currentCardinality = this$static.cardinality; -} - -function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition){ - this.position = adjacentPortPosition; - this.cardinality = 1; - this.currentCardinality = 1; -} - -defineClass(287, 1, {35:1, 287:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency); -_.compareTo_0 = function compareTo_14(o){ - return $compareTo_13(this, castTo(o, 287)); -} -; -_.toString_0 = function toString_96(){ - return 'Adjacency [position=' + this.position + ', cardinality=' + this.cardinality + ', currentCardinality=' + this.currentCardinality + ']'; -} -; -_.cardinality = 0; -_.currentCardinality = 0; -_.position = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency', 287); -function $fillCrossingMatrix(this$static, upperNode, lowerNode){ - if (this$static.oneSided) { - switch (this$static.direction) { - case 1: - $countEasternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); - break; - case 0: - $countWesternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); - } - } - else { - $countBothSideCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); - } - this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0] = this$static.inBetweenLayerCrossingCounter.upperLowerCrossings; - this$static.crossingMatrix[lowerNode.id_0][upperNode.id_0] = this$static.inBetweenLayerCrossingCounter.lowerUpperCrossings; -} - -function $getCrossingMatrixEntry(this$static, upperNode, lowerNode){ - if (!this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0]) { - $fillCrossingMatrix(this$static, upperNode, lowerNode); - this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0] = true; - this$static.isCrossingMatrixFilled[lowerNode.id_0][upperNode.id_0] = true; - } - return this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0]; -} - -function CrossingMatrixFiller(greedySwitchType, graph, freeLayerIndex, direction){ - var freeLayer; - this.direction = direction; - this.oneSided = greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); - freeLayer = graph[freeLayerIndex]; - this.isCrossingMatrixFilled = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [freeLayer.length, freeLayer.length], 2); - this.crossingMatrix = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [freeLayer.length, freeLayer.length], 2); - this.inBetweenLayerCrossingCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(graph, freeLayerIndex); -} - -defineClass(1929, 1, {}, CrossingMatrixFiller); -_.direction = 0; -_.oneSided = false; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_CrossingMatrixFiller_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'CrossingMatrixFiller', 1929); -function init_0(initializables, order){ - var e, edge, edge$iterator, i, i$iterator, i$iterator0, i$iterator1, i$iterator2, i$iterator3, l, n, p, port, ports; - for (l = 0; l < order.length; l++) { - for (i$iterator0 = initializables.iterator_0(); i$iterator0.hasNext_0();) { - i = castTo(i$iterator0.next_1(), 225); - i.initAtLayerLevel(l, order); - } - for (n = 0; n < order[l].length; n++) { - for (i$iterator1 = initializables.iterator_0(); i$iterator1.hasNext_0();) { - i = castTo(i$iterator1.next_1(), 225); - i.initAtNodeLevel(l, n, order); - } - ports = order[l][n].ports; - for (p = 0; p < ports.array.length; p++) { - for (i$iterator2 = initializables.iterator_0(); i$iterator2.hasNext_0();) { - i = castTo(i$iterator2.next_1(), 225); - i.initAtPortLevel(l, n, p, order); - } - port = (checkCriticalElementIndex(p, ports.array.length) , castTo(ports.array[p], 11)); - e = 0; - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - for (i$iterator3 = initializables.iterator_0(); i$iterator3.hasNext_0();) { - i = castTo(i$iterator3.next_1(), 225); - i.initAtEdgeLevel(l, n, p, e++, edge, order); - } - } - } - } - } - for (i$iterator = initializables.iterator_0(); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 225); - i.initAfterTraversal(); - } -} - -var Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit = createForInterface('org.eclipse.elk.alg.layered.p3order.counting', 'IInitializable'); -function $continueSwitchingUntilNoImprovementInLayer(this$static, freeLayerIndex){ - var continueSwitching, improved; - improved = false; - do { - continueSwitching = $sweepDownwardInLayer(this$static, freeLayerIndex); - improved = improved | continueSwitching; - } - while (continueSwitching); - return improved; -} - -function $setUp(this$static, order, freeLayerIndex, forwardSweep){ - var crossingMatrixFiller, side; - this$static.currentNodeOrder = order; - side = forwardSweep?0:1; - this$static.switchDecider = (crossingMatrixFiller = new CrossingMatrixFiller(this$static.greedySwitchType, this$static.currentNodeOrder, freeLayerIndex, side) , new SwitchDecider(freeLayerIndex, this$static.currentNodeOrder, crossingMatrixFiller, this$static.portPositions, this$static.graphData, this$static.greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0))); -} - -function $startIndex(isForwardSweep, length_0){ - return isForwardSweep?0:length_0 - 1; -} - -function $sweepDownwardInLayer(this$static, layerIndex){ - var continueSwitching, lengthOfFreeLayer, lowerNodeIndex, upperNodeIndex; - continueSwitching = false; - lengthOfFreeLayer = this$static.currentNodeOrder[layerIndex].length; - for (upperNodeIndex = 0; upperNodeIndex < lengthOfFreeLayer - 1; upperNodeIndex++) { - lowerNodeIndex = upperNodeIndex + 1; - continueSwitching = continueSwitching | $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex); - } - return continueSwitching; -} - -function $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex){ - var continueSwitching, layer, temp; - continueSwitching = false; - if ($doesSwitchReduceCrossings(this$static.switchDecider, upperNodeIndex, lowerNodeIndex)) { - $notifyOfSwitch(this$static.switchDecider, this$static.currentNodeOrder[layerIndex][upperNodeIndex], this$static.currentNodeOrder[layerIndex][lowerNodeIndex]); - layer = this$static.currentNodeOrder[layerIndex]; - temp = layer[lowerNodeIndex]; - layer[lowerNodeIndex] = layer[upperNodeIndex]; - layer[upperNodeIndex] = temp; - continueSwitching = true; - } - return continueSwitching; -} - -function GreedySwitchHeuristic(greedyType, graphData){ - this.graphData = graphData; - this.greedySwitchType = greedyType; -} - -defineClass(1804, 1, $intern_111, GreedySwitchHeuristic); -_.initAtEdgeLevel = function initAtEdgeLevel(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtNodeLevel = function initAtNodeLevel(l, n, nodeOrder){ -} -; -_.alwaysImproves = function alwaysImproves(){ - return this.greedySwitchType != ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); -} -; -_.initAfterTraversal = function initAfterTraversal(){ - this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); -} -; -_.initAtLayerLevel = function initAtLayerLevel(l, nodeOrder){ - nodeOrder[l][0].layer.id_0 = l; -} -; -_.initAtPortLevel = function initAtPortLevel(l, n, p, nodeOrder){ - ++this.nPorts; -} -; -_.isDeterministic = function isDeterministic(){ - return true; -} -; -_.minimizeCrossings = function minimizeCrossings(order, freeLayerIndex, forwardSweep, isFirstSweep){ - $setUp(this, order, freeLayerIndex, forwardSweep); - return $continueSwitchingUntilNoImprovementInLayer(this, freeLayerIndex); -} -; -_.setFirstLayerOrder = function setFirstLayerOrder(currentOrder, isForwardSweep){ - var startIndex; - startIndex = $startIndex(isForwardSweep, currentOrder.length); - $setUp(this, currentOrder, startIndex, isForwardSweep); - return $sweepDownwardInLayer(this, startIndex); -} -; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_GreedySwitchHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'GreedySwitchHeuristic', 1804); -function $countCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - upperNode.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode.type_0 == NORTH_SOUTH_PORT && castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 10) == castTo($getProperty(lowerNode, ORIGIN_0), 10) && ($originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?$countCrossingsOfTwoNorthSouthDummies(this$static, upperNode, lowerNode):$countCrossingsOfTwoNorthSouthDummies(this$static, lowerNode, upperNode)); - upperNode.type_0 == NORTH_SOUTH_PORT && lowerNode.type_0 == LONG_EDGE?$originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.upperLowerCrossings = 1):(this$static.lowerUpperCrossings = 1):lowerNode.type_0 == NORTH_SOUTH_PORT && upperNode.type_0 == LONG_EDGE && ($originPortOf(lowerNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.lowerUpperCrossings = 1):(this$static.upperLowerCrossings = 1)); - $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode); -} - -function $countCrossingsOfTwoNorthSouthDummies(this$static, furtherFromNormalNode, closerToNormalNode){ - var closerEastPorts, closerWestPorts, furtherEastPorts, furtherWestPorts; - if ($originPortPositionOf(this$static, furtherFromNormalNode) > $originPortPositionOf(this$static, closerToNormalNode)) { - closerEastPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , EAST_2)); - this$static.upperLowerCrossings = closerEastPorts.isEmpty()?0:$getDegree(castTo(closerEastPorts.get_0(0), 11)); - furtherWestPorts = $getPortSideView(furtherFromNormalNode, WEST_2); - this$static.lowerUpperCrossings = furtherWestPorts.isEmpty()?0:$getDegree(castTo(furtherWestPorts.get_0(0), 11)); - } - else { - closerWestPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , WEST_2)); - this$static.upperLowerCrossings = closerWestPorts.isEmpty()?0:$getDegree(castTo(closerWestPorts.get_0(0), 11)); - furtherEastPorts = $getPortSideView(furtherFromNormalNode, EAST_2); - this$static.lowerUpperCrossings = furtherEastPorts.isEmpty()?0:$getDegree(castTo(furtherEastPorts.get_0(0), 11)); - } -} - -function $initializePortPositions(this$static){ - var node, node$array, node$index, node$max; - for (node$array = this$static.layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $setPortIdsOn(this$static, node, ($clinit_PortSide() , SOUTH_2)); - $setPortIdsOn(this$static, node, NORTH_3); - } -} - -function $numberOfNorthSouthEdges(node, side){ - var numberOfEdges, port, port$iterator; - numberOfEdges = 0; - for (port$iterator = $getPortSideView(node, side).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - numberOfEdges += $getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null?1:0; - } - return numberOfEdges; -} - -function $originPortOf(node){ - var origin_0, port; - port = castTo($get_11(node.ports, 0), 11); - origin_0 = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - return origin_0; -} - -function $originPortPositionOf(this$static, node){ - var origin_0, port; - origin_0 = $originPortOf(node); - port = origin_0; - return castTo($get_10(this$static.portPositions, port), 19).value_0; -} - -function $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode){ - if (upperNode.type_0 == ($clinit_LNode$NodeType() , NORMAL) && lowerNode.type_0 == LONG_EDGE) { - this$static.upperLowerCrossings = $numberOfNorthSouthEdges(upperNode, ($clinit_PortSide() , SOUTH_2)); - this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(upperNode, NORTH_3); - } - if (lowerNode.type_0 == NORMAL && upperNode.type_0 == LONG_EDGE) { - this$static.upperLowerCrossings = $numberOfNorthSouthEdges(lowerNode, ($clinit_PortSide() , NORTH_3)); - this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(lowerNode, SOUTH_2); - } -} - -function $setPortIdsOn(this$static, node, side){ - var port, port$iterator, portId, ports; - ports = inNorthSouthEastWestOrder(node, side); - portId = 0; - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $put_6(this$static.portPositions, port, valueOf_4(portId++)); - } -} - -function NorthSouthEdgeNeighbouringNodeCrossingsCounter(nodes){ - this.layer = nodes; - this.portPositions = new HashMap; - $initializePortPositions(this); -} - -defineClass(1930, 1, {}, NorthSouthEdgeNeighbouringNodeCrossingsCounter); -_.lowerUpperCrossings = 0; -_.upperLowerCrossings = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_NorthSouthEdgeNeighbouringNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'NorthSouthEdgeNeighbouringNodeCrossingsCounter', 1930); -function $doesSwitchReduceCrossings(this$static, upperNodeIndex, lowerNodeIndex){ - var crossingNumbers, leftInlayer, lowerNode, lowerPort, lowerUpperCrossings, rightInlayer, upperLowerCrossings, upperNode, upperPort, upperNode_0, lowerNode_0, constraints, neitherNodeIsLongEdgeDummy, upperLayoutUnit, lowerLayoutUnit, areInDifferentLayoutUnits, nodesHaveLayoutUnits, upperNodeHasNorthernEdges, lowerNodeHasSouthernEdges, hasLayoutUnitConstraint; - if (upperNode_0 = this$static.freeLayer[upperNodeIndex] , lowerNode_0 = this$static.freeLayer[lowerNodeIndex] , (constraints = castTo($getProperty(upperNode_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15) , !!constraints && constraints.size_1() != 0 && constraints.contains(lowerNode_0)) || (neitherNodeIsLongEdgeDummy = upperNode_0.type_0 != ($clinit_LNode$NodeType() , LONG_EDGE) && lowerNode_0.type_0 != LONG_EDGE , upperLayoutUnit = castTo($getProperty(upperNode_0, IN_LAYER_LAYOUT_UNIT), 10) , lowerLayoutUnit = castTo($getProperty(lowerNode_0, IN_LAYER_LAYOUT_UNIT), 10) , areInDifferentLayoutUnits = upperLayoutUnit != lowerLayoutUnit , nodesHaveLayoutUnits = !!upperLayoutUnit && upperLayoutUnit != upperNode_0 || !!lowerLayoutUnit && lowerLayoutUnit != lowerNode_0 , upperNodeHasNorthernEdges = $hasEdgesOnSide(upperNode_0, ($clinit_PortSide() , NORTH_3)) , lowerNodeHasSouthernEdges = $hasEdgesOnSide(lowerNode_0, SOUTH_2) , nodesHaveLayoutUnits = nodesHaveLayoutUnits | ($hasEdgesOnSide(upperNode_0, SOUTH_2) || $hasEdgesOnSide(lowerNode_0, NORTH_3)) , hasLayoutUnitConstraint = nodesHaveLayoutUnits && areInDifferentLayoutUnits || upperNodeHasNorthernEdges || lowerNodeHasSouthernEdges , neitherNodeIsLongEdgeDummy && hasLayoutUnitConstraint) || upperNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode_0.type_0 == NORMAL || lowerNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && upperNode_0.type_0 == NORMAL) { - return false; - } - upperNode = this$static.freeLayer[upperNodeIndex]; - lowerNode = this$static.freeLayer[lowerNodeIndex]; - leftInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); - rightInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); - $countCrossings(this$static.northSouthCounter, upperNode, lowerNode); - upperLowerCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, upperNode, lowerNode) + castTo(leftInlayer.first, 19).value_0 + castTo(rightInlayer.first, 19).value_0 + this$static.northSouthCounter.upperLowerCrossings; - lowerUpperCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, lowerNode, upperNode) + castTo(leftInlayer.second, 19).value_0 + castTo(rightInlayer.second, 19).value_0 + this$static.northSouthCounter.lowerUpperCrossings; - if (this$static.countCrossingsCausedByPortSwitch) { - upperPort = castTo($getProperty(upperNode, ORIGIN_0), 11); - lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); - crossingNumbers = $countCrossingsBetweenPortsInBothOrders(this$static.parentCrossCounter, upperPort, lowerPort); - upperLowerCrossings += castTo(crossingNumbers.first, 19).value_0; - lowerUpperCrossings += castTo(crossingNumbers.second, 19).value_0; - } - return upperLowerCrossings > lowerUpperCrossings; -} - -function $hasEdgesOnSide(node, side){ - var port, port$iterator, ports; - ports = $getPortSideView(node, side); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if ($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null || $hasNext_6(new LPort$CombineIter$1(port.connectedEdges))) { - return true; - } - } - return false; -} - -function $initParentCrossingsCounters(this$static, freeLayerIndex, length_0){ - var leftLayer, middleLayer, parentGraphData, parentNodeLayerPos, parentNodeOrder, portPos, rightLayer, rightMostLayer; - parentGraphData = this$static.graphData.parentGraphData; - parentNodeOrder = parentGraphData.currentNodeOrder; - portPos = parentGraphData.portPositions; - this$static.parentCrossCounter = new CrossingsCounter(portPos); - parentNodeLayerPos = this$static.graphData.parent_0.layer.id_0; - leftLayer = parentNodeLayerPos > 0?parentNodeOrder[parentNodeLayerPos - 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); - middleLayer = parentNodeOrder[parentNodeLayerPos]; - rightLayer = parentNodeLayerPos < parentNodeOrder.length - 1?parentNodeOrder[parentNodeLayerPos + 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); - rightMostLayer = freeLayerIndex == length_0 - 1; - rightMostLayer?$initForCountingBetween(this$static.parentCrossCounter, middleLayer, rightLayer):$initForCountingBetween(this$static.parentCrossCounter, leftLayer, middleLayer); -} - -function $notifyOfSwitch(this$static, upperNode, lowerNode){ - var lowerPort, upperPort; - $switchNodes(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); - $switchNodes(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); - if (this$static.countCrossingsCausedByPortSwitch) { - upperPort = castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); - $switchPorts(this$static.parentCrossCounter, upperPort, lowerPort); - } -} - -function SwitchDecider(freeLayerIndex, graph, crossingMatrixFiller, portPositions, graphData, oneSided){ - this.crossingMatrixFiller = crossingMatrixFiller; - this.graphData = graphData; - if (freeLayerIndex >= graph.length) { - throw toJs(new IndexOutOfBoundsException_0('Greedy SwitchDecider: Free layer not in graph.')); - } - this.freeLayer = graph[freeLayerIndex]; - this.leftInLayerCounter = new CrossingsCounter(portPositions); - $initPortPositionsForInLayerCrossings(this.leftInLayerCounter, this.freeLayer, ($clinit_PortSide() , WEST_2)); - this.rightInLayerCounter = new CrossingsCounter(portPositions); - $initPortPositionsForInLayerCrossings(this.rightInLayerCounter, this.freeLayer, EAST_2); - this.northSouthCounter = new NorthSouthEdgeNeighbouringNodeCrossingsCounter(this.freeLayer); - this.countCrossingsCausedByPortSwitch = !oneSided && graphData.hasParent && !graphData.useBottomUp && this.freeLayer[0].type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); - this.countCrossingsCausedByPortSwitch && $initParentCrossingsCounters(this, freeLayerIndex, graph.length); -} - -defineClass(1917, 1, {}, SwitchDecider); -_.countCrossingsCausedByPortSwitch = false; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_SwitchDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'SwitchDecider', 1917); -function $addSelfLoopEdge(this$static, slEdge){ - var lLabels, slSource, slTarget; - if ($add_6(this$static.slEdges, slEdge)) { - slEdge.slHyperLoop = this$static; - slSource = slEdge.slSource; - $indexOf_3(this$static.slPorts, slSource, 0) != -1 || $add_3(this$static.slPorts, slSource); - slTarget = slEdge.slTarget; - $indexOf_3(this$static.slPorts, slTarget, 0) != -1 || $add_3(this$static.slPorts, slTarget); - lLabels = slEdge.lEdge.labels; - if (lLabels.array.length != 0) { - !this$static.slLabels && (this$static.slLabels = new SelfHyperLoopLabels(this$static)); - $addLLabels(this$static.slLabels, lLabels); - } - } -} - -function $computePortsPerSide(this$static){ - var portSide, slPort, slPort$iterator; - this$static.slPortsBySide = new ArrayListMultimap_0(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, this$static.slPorts.array.length); - for (slPort$iterator = new ArrayList$1(this$static.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { - slPort = castTo($next_7(slPort$iterator), 113); - portSide = slPort.lPort.side; - $put(this$static.slPortsBySide, portSide, slPort); - } - this$static.selfLoopType = fromPortSides($keySet(this$static.slPortsBySide)); -} - -function $setLeftmostPort(this$static, leftmostPort){ - this$static.leftmostPort = leftmostPort; -} - -function $setRightmostPort(this$static, rightmostPort){ - this$static.rightmostPort = rightmostPort; -} - -function $setRoutingSlot(this$static, portSide, slot){ - var slotCount; - this$static.routingSlot[portSide.ordinal] = slot; - slotCount = this$static.slHolder.routingSlotCount; - slotCount[portSide.ordinal] = $wnd.Math.max(slotCount[portSide.ordinal], slot + 1); -} - -function SelfHyperLoop(slHolder){ - var all; - this.slPorts = new ArrayList; - this.slEdges = new HashSet; - this.occupiedPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - this.routingSlot = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); - this.slHolder = slHolder; -} - -defineClass(101, 1, {101:1}, SelfHyperLoop); -_.leftmostPort = null; -_.rightmostPort = null; -_.slLabels = null; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoop_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoop', 101); -function $addLLabels(this$static, newLLabels){ - var newLLabel, newLLabel$iterator; - for (newLLabel$iterator = new ArrayList$1(newLLabels); newLLabel$iterator.i < newLLabel$iterator.this$01.array.length;) { - newLLabel = castTo($next_7(newLLabel$iterator), 70); - $add_3(this$static.lLabels, newLLabel); - $updateSize(this$static, newLLabel); - } -} - -function $applyPlacement(this$static, offset){ - $isHorizontal(this$static.layoutDirection)?$applyPlacementForHorizontalLayout(this$static, offset):$applyPlacementVerticalForVerticalLayout(this$static, offset); -} - -function $applyPlacementForHorizontalLayout(this$static, offset){ - var lLabel, lLabel$iterator, labelPos, x_0, y_0; - x_0 = this$static.position.x_0; - y_0 = this$static.position.y_0; - for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { - lLabel = castTo($next_7(lLabel$iterator), 70); - labelPos = lLabel.pos; - this$static.alignment == ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1) || this$static.side == ($clinit_PortSide() , EAST_2)?(labelPos.x_0 = x_0):this$static.alignment == RIGHT_1 || this$static.side == ($clinit_PortSide() , WEST_2)?(labelPos.x_0 = x_0 + this$static.size_0.x_0 - lLabel.size_0.x_0):(labelPos.x_0 = x_0 + (this$static.size_0.x_0 - lLabel.size_0.x_0) / 2); - labelPos.y_0 = y_0; - $add_19(labelPos, offset); - y_0 += lLabel.size_0.y_0 + this$static.labelLabelSpacing; - } -} - -function $applyPlacementVerticalForVerticalLayout(this$static, offset){ - var lLabel, lLabel$iterator, labelPos, x_0, y_0; - x_0 = this$static.position.x_0; - y_0 = this$static.position.y_0; - for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { - lLabel = castTo($next_7(lLabel$iterator), 70); - labelPos = lLabel.pos; - labelPos.x_0 = x_0; - this$static.side == ($clinit_PortSide() , NORTH_3)?(labelPos.y_0 = y_0 + this$static.size_0.y_0 - lLabel.size_0.y_0):(labelPos.y_0 = y_0); - $add_19(labelPos, offset); - x_0 += lLabel.size_0.x_0 + this$static.labelLabelSpacing; - } -} - -function $updateSize(this$static, newLLabel){ - var newLLabelSize; - newLLabelSize = newLLabel.size_0; - if ($isHorizontal(this$static.layoutDirection)) { - this$static.size_0.x_0 = $wnd.Math.max(this$static.size_0.x_0, newLLabelSize.x_0); - this$static.size_0.y_0 += newLLabelSize.y_0; - this$static.lLabels.array.length > 1 && (this$static.size_0.y_0 += this$static.labelLabelSpacing); - } - else { - this$static.size_0.x_0 += newLLabelSize.x_0; - this$static.size_0.y_0 = $wnd.Math.max(this$static.size_0.y_0, newLLabelSize.y_0); - this$static.lLabels.array.length > 1 && (this$static.size_0.x_0 += this$static.labelLabelSpacing); - } -} - -function SelfHyperLoopLabels(slLoop){ - var lNode; - this.lLabels = new ArrayList; - this.size_0 = new KVector; - this.position = new KVector; - lNode = slLoop.slHolder.lNode; - this.layoutDirection = castTo($getProperty($getGraph(lNode), ($clinit_LayeredOptions() , DIRECTION)), 103); - this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_LABEL_LABEL))); -} - -defineClass(1916, 1, {}, SelfHyperLoopLabels); -_.id_0 = 0; -_.labelLabelSpacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels', 1916); -function $clinit_SelfHyperLoopLabels$Alignment(){ - $clinit_SelfHyperLoopLabels$Alignment = emptyMethod; - CENTER_2 = new SelfHyperLoopLabels$Alignment('CENTER', 0); - LEFT_1 = new SelfHyperLoopLabels$Alignment('LEFT', 1); - RIGHT_1 = new SelfHyperLoopLabels$Alignment('RIGHT', 2); - TOP_0 = new SelfHyperLoopLabels$Alignment('TOP', 3); -} - -function SelfHyperLoopLabels$Alignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_34(name_0){ - $clinit_SelfHyperLoopLabels$Alignment(); - return valueOf(($clinit_SelfHyperLoopLabels$Alignment$Map() , $MAP_22), name_0); -} - -function values_40(){ - $clinit_SelfHyperLoopLabels$Alignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]); -} - -defineClass(411, 22, {3:1, 35:1, 22:1, 411:1}, SelfHyperLoopLabels$Alignment); -var CENTER_2, LEFT_1, RIGHT_1, TOP_0; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels/Alignment', 411, Ljava_lang_Enum_2_classLit, values_40, valueOf_34); -function $clinit_SelfHyperLoopLabels$Alignment$Map(){ - $clinit_SelfHyperLoopLabels$Alignment$Map = emptyMethod; - $MAP_22 = createValueOfMap(($clinit_SelfHyperLoopLabels$Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]))); -} - -var $MAP_22; -function SelfLoopEdge(lEdge, slSource, slTarget){ - this.lEdge = lEdge; - this.slSource = slSource; - this.slTarget = slTarget; - $add_3(slSource.outgoingSLEdges, this); - $add_3(slTarget.incomingSLEdges, this); -} - -defineClass(409, 1, {409:1}, SelfLoopEdge); -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopEdge', 409); -function $initialize_3(this$static){ - var entry, lEdge, lEdge$iterator, outerIter, outerIter0, slEdges, slPort, slPort$iterator, slPort$iterator0; - slEdges = new ArrayList; - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(this$static.lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - $isSelfLoop(lEdge) && $add_3(slEdges, new SelfLoopEdge(lEdge, $selfLoopPortFor(this$static, lEdge.source), $selfLoopPortFor(this$static, lEdge.target))); - } - for (slPort$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); slPort$iterator0.val$outerIter2.hasNext_0();) { - slPort = (entry = castTo(slPort$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); - slPort.lPort.id_0 = 0; - } - for (slPort$iterator = (outerIter = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { - slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); - slPort.lPort.id_0 == 0 && $add_3(this$static.slHyperLoops, $initializeHyperLoop(this$static, slPort)); - } -} - -function $initializeHyperLoop(this$static, slPort){ - var bfsQueue, currentSLPort, slEdge, slEdge$iterator, slEdge$iterator0, slLoop, slSourcePort, slTargetPort; - slLoop = new SelfHyperLoop(this$static); - bfsQueue = new LinkedList; - $addNode_0(bfsQueue, slPort, bfsQueue.tail.prev, bfsQueue.tail); - while (bfsQueue.size_0 != 0) { - currentSLPort = castTo(bfsQueue.size_0 == 0?null:(checkCriticalElement(bfsQueue.size_0 != 0) , $removeNode_0(bfsQueue, bfsQueue.header.next_0)), 113); - currentSLPort.lPort.id_0 = 1; - for (slEdge$iterator0 = new ArrayList$1(currentSLPort.outgoingSLEdges); slEdge$iterator0.i < slEdge$iterator0.this$01.array.length;) { - slEdge = castTo($next_7(slEdge$iterator0), 409); - $addSelfLoopEdge(slLoop, slEdge); - slTargetPort = slEdge.slTarget; - slTargetPort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slTargetPort, bfsQueue.tail.prev, bfsQueue.tail) , true); - } - for (slEdge$iterator = new ArrayList$1(currentSLPort.incomingSLEdges); slEdge$iterator.i < slEdge$iterator.this$01.array.length;) { - slEdge = castTo($next_7(slEdge$iterator), 409); - $addSelfLoopEdge(slLoop, slEdge); - slSourcePort = slEdge.slSource; - slSourcePort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slSourcePort, bfsQueue.tail.prev, bfsQueue.tail) , true); - } - } - return slLoop; -} - -function $selfLoopPortFor(this$static, lport){ - $containsKey_6(this$static.slPorts, lport) || $put_11(this$static.slPorts, lport, new SelfLoopPort(lport)); - return castTo($get_16(this$static.slPorts, lport), 113); -} - -function SelfLoopHolder(node){ - this.slHyperLoops = new ArrayList; - this.slPorts = new LinkedHashMap; - this.routingSlotCount = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); - this.lNode = node; -} - -function needsSelfLoopProcessing(lNode){ - if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - return false; - } - return $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)))), new SelfLoopHolder$lambda$0$Type); -} - -defineClass(403, 1, {403:1}, SelfLoopHolder); -_.arePortsHidden = false; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder', 403); -function SelfLoopHolder$lambda$0$Type(){ -} - -defineClass(1724, 1, $intern_39, SelfLoopHolder$lambda$0$Type); -_.test_0 = function test_69(arg0){ - return $isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder/lambda$0$Type', 1724); -function $getSLNetFlow(this$static){ - return this$static.incomingSLEdges.array.length - this$static.outgoingSLEdges.array.length; -} - -function SelfLoopPort(lPort){ - this.incomingSLEdges = new ArrayList; - this.outgoingSLEdges = new ArrayList; - this.lPort = lPort; - this.hadOnlySelfLoops = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new LPort$CombineIter$1(lPort.connectedEdges))), new Predicate$lambda$2$Type(new SelfLoopPort$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); -} - -defineClass(113, 1, {113:1}, SelfLoopPort); -_.hadOnlySelfLoops = false; -_.isHidden = false; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort', 113); -function SelfLoopPort$lambda$0$Type(){ -} - -defineClass(1792, 1, $intern_39, SelfLoopPort$lambda$0$Type); -_.test_0 = function test_70(arg0){ - return $isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort/lambda$0$Type', 1792); -function $clinit_SelfLoopType(){ - $clinit_SelfLoopType = emptyMethod; - ONE_SIDE = new SelfLoopType('ONE_SIDE', 0); - TWO_SIDES_CORNER = new SelfLoopType('TWO_SIDES_CORNER', 1); - TWO_SIDES_OPPOSING = new SelfLoopType('TWO_SIDES_OPPOSING', 2); - THREE_SIDES = new SelfLoopType('THREE_SIDES', 3); - FOUR_SIDES = new SelfLoopType('FOUR_SIDES', 4); -} - -function SelfLoopType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function fromPortSides(portSides){ - $clinit_SelfLoopType(); - var eastWest, northSouth; - if (portSides.contains(($clinit_PortSide() , UNDEFINED_5))) { - throw toJs(new IllegalArgumentException_0('Port sides must not contain UNDEFINED')); - } - switch (portSides.size_1()) { - case 1: - return ONE_SIDE; - case 2: - eastWest = portSides.contains(EAST_2) && portSides.contains(WEST_2); - northSouth = portSides.contains(NORTH_3) && portSides.contains(SOUTH_2); - return eastWest || northSouth?TWO_SIDES_OPPOSING:TWO_SIDES_CORNER; - case 3: - return THREE_SIDES; - case 4: - return FOUR_SIDES; - default:return null; - } -} - -function valueOf_35(name_0){ - $clinit_SelfLoopType(); - return valueOf(($clinit_SelfLoopType$Map() , $MAP_23), name_0); -} - -function values_41(){ - $clinit_SelfLoopType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]); -} - -defineClass(363, 22, {3:1, 35:1, 22:1, 363:1}, SelfLoopType); -var FOUR_SIDES, ONE_SIDE, THREE_SIDES, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopType', 363, Ljava_lang_Enum_2_classLit, values_41, valueOf_35); -function $clinit_SelfLoopType$Map(){ - $clinit_SelfLoopType$Map = emptyMethod; - $MAP_23 = createValueOfMap(($clinit_SelfLoopType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]))); -} - -var $MAP_23; -function $clinit_PortRestorer(){ - $clinit_PortRestorer = emptyMethod; - NES = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [($clinit_PortSide() , NORTH_3), EAST_2, SOUTH_2]); - ESW = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]); - SWN = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2, NORTH_3]); - WNE = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2, NORTH_3, EAST_2]); -} - -function $addAll_5(slPorts, lNode){ - $forEach_3($map_0(slPorts.stream(), new PortRestorer$lambda$11$Type), new PortRestorer$lambda$12$Type(lNode)); -} - -function $addAllThat(lPorts, fromIndex, condition, target){ - var i, lPort; - for (i = fromIndex; i < lPorts.array.length; i++) { - lPort = (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)); - if (condition.test_0(lPort)) { - target.array[target.array.length] = lPort; - } - else { - return i; - } - } - return lPorts.array.length; -} - -function $addToTargetArea(this$static, slPorts, portSide, area, addMode){ - var hiddenPorts, targetArea; - hiddenPorts = castTo($collect_1($filter(slPorts.stream(), new PortRestorer$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - targetArea = castTo($get_1(this$static.targetAreas, portSide, area), 15); - addMode == 0?targetArea.addAll_0(0, hiddenPorts):targetArea.addAll(hiddenPorts); -} - -function $addToTargetArea_0(this$static, slLoop, portSide, area, addMode){ - $addToTargetArea(this$static, castTo($get(slLoop.slPortsBySide, portSide), 15), portSide, area, addMode); -} - -function $computePortListSplitIndex(sortedPorts){ - var nonNegativeNetFlowIndex, positiveNetFlowIndex; - positiveNetFlowIndex = 0; - for (; positiveNetFlowIndex < sortedPorts.array.length; positiveNetFlowIndex++) { - if ($getSLNetFlow((checkCriticalElementIndex(positiveNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[positiveNetFlowIndex], 113))) > 0) { - break; - } - } - if (positiveNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { - return positiveNetFlowIndex; - } - nonNegativeNetFlowIndex = 0; - for (; nonNegativeNetFlowIndex < sortedPorts.array.length; nonNegativeNetFlowIndex++) { - if ($getSLNetFlow((checkCriticalElementIndex(nonNegativeNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[nonNegativeNetFlowIndex], 113))) > 0) { - break; - } - } - if (nonNegativeNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { - return nonNegativeNetFlowIndex; - } - return sortedPorts.array.length / 2 | 0; -} - -function $initTargetAreas(this$static){ - var area, area$array, area$index, area$max, side, side$array, side$index, side$max; - this$static.targetAreas = new ArrayTable(new Arrays$ArrayList(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))), new Arrays$ArrayList(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0])))); - for (side$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { - side = side$array[side$index]; - for (area$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { - area = area$array[area$index]; - $put_0(this$static.targetAreas, side, area, new ArrayList); - } - } -} - -function $lambda$5(lPort_0){ - var connections, eastConnections, westConnections; - return lPort_0.side == ($clinit_PortSide() , NORTH_3) && (connections = $northSouthPortConnectionSides(lPort_0) , eastConnections = $containsEnum(connections, EAST_2) , westConnections = $containsEnum(connections, WEST_2) , westConnections || westConnections && eastConnections); -} - -function $lambda$8(lPort_0){ - var connections; - return lPort_0.side == ($clinit_PortSide() , SOUTH_2) && (connections = $northSouthPortConnectionSides(lPort_0) , $containsEnum(connections, EAST_2)); -} - -function $northSouthPortConnectionSides(lPort){ - var all, connectionSides, dummyLPort, dummyLPort$iterator, portDummy; - connectionSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - portDummy = castTo($getProperty(lPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (portDummy) { - for (dummyLPort$iterator = new ArrayList$1(portDummy.ports); dummyLPort$iterator.i < dummyLPort$iterator.this$01.array.length;) { - dummyLPort = castTo($next_7(dummyLPort$iterator), 11); - maskUndefined($getProperty(dummyLPort, ORIGIN_0)) === maskUndefined(lPort) && $hasNext_6(new LPort$CombineIter$1(dummyLPort.connectedEdges)) && $add_5(connectionSides, dummyLPort.side); - } - } - return connectionSides; -} - -function $processFourSideLoops(this$static){ - var side, side$iterator, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , FOUR_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - for (side$iterator = $keySet(slLoop.slPortsBySide).iterator_0(); side$iterator.hasNext_0();) { - side = castTo(side$iterator.next_1(), 61); - $addToTargetArea_0(this$static, slLoop, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); - } - } -} - -function $processOneSideLoops(this$static, ordering){ - var side, slLoop, slLoop$iterator, sortedPorts, splitIndex; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , ONE_SIDE)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; - sortedPorts = new ArrayList_1(slLoop.slPorts); - $sort(sortedPorts, new PortRestorer$lambda$3$Type); - switch (ordering.ordinal) { - case 1: - $addToTargetArea(this$static, sortedPorts, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); - break; - case 0: - splitIndex = $computePortListSplitIndex(sortedPorts); - $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, 0, splitIndex), side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 0); - $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, splitIndex, sortedPorts.array.length), side, MIDDLE, 1); - } - } -} - -function $processThreeSideLoops(this$static){ - var portSides, sides, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , THREE_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - sides = (portSides = $keySet(slLoop.slPortsBySide) , portSides.contains(($clinit_PortSide() , NORTH_3))?portSides.contains(EAST_2)?portSides.contains(SOUTH_2)?portSides.contains(WEST_2)?null:NES:WNE:SWN:ESW); - $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); - $addToTargetArea_0(this$static, slLoop, sides[1], MIDDLE, 1); - $addToTargetArea_0(this$static, slLoop, sides[2], START, 1); - } -} - -function $processTwoSideCornerLoops(this$static){ - var sides, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_CORNER)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - sides = sortedTwoSideLoopPortSides(slLoop); - $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); - $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); - } -} - -function $processTwoSideOpposingLoops(this$static){ - var sides, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_OPPOSING)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - sides = sortedTwoSideLoopPortSides(slLoop); - $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); - $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); - } -} - -function $restorePorts(this$static, slHolder){ - var lNode, newPortList, nextOldPortIndex, oldPortList; - lNode = slHolder.lNode; - oldPortList = new ArrayList_1(lNode.ports); - nextOldPortIndex = 0; - newPortList = lNode.ports; - newPortList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_5(castTo($get_1(this$static.targetAreas, ($clinit_PortSide() , NORTH_3), ($clinit_PortRestorer$PortSideArea() , START)), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$5$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, MIDDLE), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$6$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, END_0), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, START), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, MIDDLE), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$7$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, END_0), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, START), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$8$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, MIDDLE), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$9$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, END_0), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, START), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$10$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, MIDDLE), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, END_0), 15), lNode); -} - -function $restorePorts_0(this$static, slHolder){ - var loops; - $initTargetAreas(this$static); - this$static.slLoopsByType = (loops = new ArrayListMultimap , $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortRestorer$lambda$2$Type(loops)) , loops); - $processOneSideLoops(this$static, castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376)); - $processTwoSideCornerLoops(this$static); - $processThreeSideLoops(this$static); - $processFourSideLoops(this$static); - $processTwoSideOpposingLoops(this$static); - $restorePorts(this$static, slHolder); - $forEach_3($flatMap(new StreamImpl(null, $valuesSpliterator($values_1(this$static.targetAreas).this$01)), new PortRestorer$lambda$0$Type), new PortRestorer$lambda$1$Type); - slHolder.arePortsHidden = false; - this$static.slLoopsByType = null; -} - -function PortRestorer(){ - $clinit_PortRestorer(); -} - -function lambda$12(lNode_0, lPort_1){ - $clinit_PortRestorer(); - $setNode(lPort_1, lNode_0); -} - -function lambda$2_8(loops_0, slLoop_1){ - $clinit_PortRestorer(); - return $put(loops_0, slLoop_1.selfLoopType, slLoop_1); -} - -function lambda$3_5(slPort1_0, slPort2_1){ - $clinit_PortRestorer(); - return compare_5(slPort1_0.incomingSLEdges.array.length - slPort1_0.outgoingSLEdges.array.length, slPort2_1.incomingSLEdges.array.length - slPort2_1.outgoingSLEdges.array.length); -} - -function sortedTwoSideLoopPortSides(slLoop){ - $clinit_PortRestorer(); - var sides; - sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); - mergeSort(sides, 0, sides.length, null); - if (sides[0] == ($clinit_PortSide() , NORTH_3) && sides[1] == WEST_2) { - setCheck(sides, 0, WEST_2); - setCheck(sides, 1, NORTH_3); - } - return sides; -} - -defineClass(1732, 1, {}, PortRestorer); -var ESW, NES, SWN, WNE; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer', 1732); -function $clinit_PortRestorer$PortSideArea(){ - $clinit_PortRestorer$PortSideArea = emptyMethod; - START = new PortRestorer$PortSideArea('START', 0); - MIDDLE = new PortRestorer$PortSideArea('MIDDLE', 1); - END_0 = new PortRestorer$PortSideArea('END', 2); -} - -function PortRestorer$PortSideArea(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_36(name_0){ - $clinit_PortRestorer$PortSideArea(); - return valueOf(($clinit_PortRestorer$PortSideArea$Map() , $MAP_24), name_0); -} - -function values_42(){ - $clinit_PortRestorer$PortSideArea(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]); -} - -defineClass(361, 22, {3:1, 35:1, 22:1, 361:1}, PortRestorer$PortSideArea); -var END_0, MIDDLE, START; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/PortSideArea', 361, Ljava_lang_Enum_2_classLit, values_42, valueOf_36); -function $clinit_PortRestorer$PortSideArea$Map(){ - $clinit_PortRestorer$PortSideArea$Map = emptyMethod; - $MAP_24 = createValueOfMap(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]))); -} - -var $MAP_24; -function PortRestorer$lambda$0$Type(){ -} - -defineClass(1733, 1, {}, PortRestorer$lambda$0$Type); -_.apply_0 = function apply_122(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 15).stream(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$0$Type', 1733); -function PortRestorer$lambda$1$Type(){ -} - -defineClass(1734, 1, $intern_19, PortRestorer$lambda$1$Type); -_.accept = function accept_106(arg0){ - $clinit_PortRestorer(); - castTo(arg0, 113).isHidden = false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$1$Type', 1734); -function PortRestorer$lambda$10$Type(){ -} - -defineClass(1743, 1, $intern_39, PortRestorer$lambda$10$Type); -_.test_0 = function test_71(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$10$Type', 1743); -function PortRestorer$lambda$11$Type(){ -} - -defineClass(1744, 1, {}, PortRestorer$lambda$11$Type); -_.apply_0 = function apply_123(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 113).lPort; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$11$Type', 1744); -function PortRestorer$lambda$12$Type(lNode_0){ - this.lNode_0 = lNode_0; -} - -defineClass(1745, 1, $intern_19, PortRestorer$lambda$12$Type); -_.accept = function accept_107(arg0){ - lambda$12(this.lNode_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$12$Type', 1745); -function PortRestorer$lambda$2$Type(loops_0){ - this.loops_0 = loops_0; -} - -defineClass(1735, 1, $intern_19, PortRestorer$lambda$2$Type); -_.accept = function accept_108(arg0){ - lambda$2_8(this.loops_0, castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$2$Type', 1735); -function PortRestorer$lambda$3$Type(){ -} - -defineClass(1736, 1, $intern_88, PortRestorer$lambda$3$Type); -_.compare_1 = function compare_52(arg0, arg1){ - return lambda$3_5(castTo(arg0, 113), castTo(arg1, 113)); -} -; -_.equals_0 = function equals_133(other){ - return this === other; -} -; -_.reversed = function reversed_44(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$3$Type', 1736); -function PortRestorer$lambda$4$Type(){ -} - -defineClass(1737, 1, $intern_39, PortRestorer$lambda$4$Type); -_.test_0 = function test_72(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 113).isHidden; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$4$Type', 1737); -function PortRestorer$lambda$5$Type(){ -} - -defineClass(1738, 1, $intern_39, PortRestorer$lambda$5$Type); -_.test_0 = function test_73(arg0){ - return $lambda$5(castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$5$Type', 1738); -function PortRestorer$lambda$6$Type(){ -} - -defineClass(1739, 1, $intern_39, PortRestorer$lambda$6$Type); -_.test_0 = function test_74(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$6$Type', 1739); -function PortRestorer$lambda$7$Type(){ -} - -defineClass(1740, 1, $intern_39, PortRestorer$lambda$7$Type); -_.test_0 = function test_75(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$7$Type', 1740); -function PortRestorer$lambda$8$Type(){ -} - -defineClass(1741, 1, $intern_39, PortRestorer$lambda$8$Type); -_.test_0 = function test_76(arg0){ - return $lambda$8(castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$8$Type', 1741); -function PortRestorer$lambda$9$Type(){ -} - -defineClass(1742, 1, $intern_39, PortRestorer$lambda$9$Type); -_.test_0 = function test_77(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$9$Type', 1742); -function $assignPortSides(slHolder){ - switch (castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)), 375).ordinal) { - case 1: - $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortSideAssigner$lambda$1$Type), new PortSideAssigner$lambda$2$Type), new PortSideAssigner$lambda$3$Type); - break; - case 2: - $assignToNorthOrSouthSide(slHolder); - break; - case 0: - $assignToAllSides(slHolder); - } -} - -function $assignToAllSides(slHolder){ - var assignmentTargets, currLoop, currTarget, slLoop, slLoop$iterator, slSortedLoops; - slSortedLoops = new ArrayList_1(slHolder.slHyperLoops); - $sort(slSortedLoops, new PortSideAssigner$lambda$6$Type); - assignmentTargets = ($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER])); - currLoop = 0; - for (slLoop$iterator = new ArrayList$1(slSortedLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - currTarget = assignmentTargets[currLoop % assignmentTargets.length]; - $assignToTarget(slLoop, currTarget); - ++currLoop; - } -} - -function $assignToNorthOrSouthSide(slHolder){ - var finalNewPortSide, newPortSide, northPorts, slHiddenPorts, slLoop, slLoop$iterator, southPorts; - northPorts = 0; - southPorts = 0; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slHiddenPorts = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slLoop.slPorts, 16)), new PortSideAssigner$lambda$8$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - newPortSide = null; - if (northPorts <= southPorts) { - newPortSide = ($clinit_PortSide() , NORTH_3); - northPorts += slHiddenPorts.size_1(); - } - else if (southPorts < northPorts) { - newPortSide = ($clinit_PortSide() , SOUTH_2); - southPorts += slHiddenPorts.size_1(); - } - finalNewPortSide = newPortSide; - $forEach_3($map_0(slHiddenPorts.stream(), new PortSideAssigner$lambda$4$Type), new PortSideAssigner$lambda$5$Type(finalNewPortSide)); - } -} - -function $assignToTarget(slLoop, target){ - var i, i0, secondHalfStartIndex, slPort, slPorts; - slPorts = slLoop.slPorts; - target.firstSide != target.secondSide && $sort(slPorts, new PortSideAssigner$lambda$7$Type); - secondHalfStartIndex = slPorts.array.length / 2 | 0; - for (i0 = 0; i0 < secondHalfStartIndex; i0++) { - slPort = (checkCriticalElementIndex(i0, slPorts.array.length) , castTo(slPorts.array[i0], 113)); - slPort.isHidden && $setSide(slPort.lPort, target.firstSide); - } - for (i = secondHalfStartIndex; i < slPorts.array.length; i++) { - slPort = (checkCriticalElementIndex(i, slPorts.array.length) , castTo(slPorts.array[i], 113)); - slPort.isHidden && $setSide(slPort.lPort, target.secondSide); - } -} - -function lambda$5_2(finalNewPortSide_0, lPort_1){ - $setSide(lPort_1, finalNewPortSide_0); -} - -function lambda$6_0(slLoop1_0, slLoop2_1){ - return compare_5(slLoop2_1.slPorts.array.length, slLoop1_0.slPorts.array.length); -} - -function lambda$7_2(slPort1_0, slPort2_1){ - return compare_5($getNetFlow(slPort1_0.lPort), $getNetFlow(slPort2_1.lPort)); -} - -function $clinit_PortSideAssigner$Target(){ - $clinit_PortSideAssigner$Target = emptyMethod; - NORTH_1 = new PortSideAssigner$Target('NORTH', 0, ($clinit_PortSide() , NORTH_3), NORTH_3); - SOUTH_1 = new PortSideAssigner$Target('SOUTH', 1, SOUTH_2, SOUTH_2); - EAST_1 = new PortSideAssigner$Target('EAST', 2, EAST_2, EAST_2); - WEST_1 = new PortSideAssigner$Target('WEST', 3, WEST_2, WEST_2); - NORTH_WEST_CORNER = new PortSideAssigner$Target('NORTH_WEST_CORNER', 4, WEST_2, NORTH_3); - NORTH_EAST_CORNER = new PortSideAssigner$Target('NORTH_EAST_CORNER', 5, NORTH_3, EAST_2); - SOUTH_WEST_CORNER = new PortSideAssigner$Target('SOUTH_WEST_CORNER', 6, SOUTH_2, WEST_2); - SOUTH_EAST_CORNER = new PortSideAssigner$Target('SOUTH_EAST_CORNER', 7, EAST_2, SOUTH_2); -} - -function PortSideAssigner$Target(enum$name, enum$ordinal, firstSide, secondSide){ - Enum.call(this, enum$name, enum$ordinal); - this.firstSide = firstSide; - this.secondSide = secondSide; -} - -function valueOf_37(name_0){ - $clinit_PortSideAssigner$Target(); - return valueOf(($clinit_PortSideAssigner$Target$Map() , $MAP_25), name_0); -} - -function values_43(){ - $clinit_PortSideAssigner$Target(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]); -} - -defineClass(270, 22, {3:1, 35:1, 22:1, 270:1}, PortSideAssigner$Target); -var EAST_1, NORTH_1, NORTH_EAST_CORNER, NORTH_WEST_CORNER, SOUTH_1, SOUTH_EAST_CORNER, SOUTH_WEST_CORNER, WEST_1; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/Target', 270, Ljava_lang_Enum_2_classLit, values_43, valueOf_37); -function $clinit_PortSideAssigner$Target$Map(){ - $clinit_PortSideAssigner$Target$Map = emptyMethod; - $MAP_25 = createValueOfMap(($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]))); -} - -var $MAP_25; -function PortSideAssigner$lambda$1$Type(){ -} - -defineClass(1725, 1, {}, PortSideAssigner$lambda$1$Type); -_.apply_0 = function apply_124(arg0){ - return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slPorts, 16)), new PortSideAssigner$lambda$8$Type); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$1$Type', 1725); -function PortSideAssigner$lambda$2$Type(){ -} - -defineClass(1726, 1, {}, PortSideAssigner$lambda$2$Type); -_.apply_0 = function apply_125(arg0){ - return castTo(arg0, 113).lPort; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$2$Type', 1726); -function PortSideAssigner$lambda$3$Type(){ -} - -defineClass(1727, 1, $intern_19, PortSideAssigner$lambda$3$Type); -_.accept = function accept_109(arg0){ - $setSide(castTo(arg0, 11), ($clinit_PortSide() , NORTH_3)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$3$Type', 1727); -function PortSideAssigner$lambda$4$Type(){ -} - -defineClass(1728, 1, {}, PortSideAssigner$lambda$4$Type); -_.apply_0 = function apply_126(arg0){ - return castTo(arg0, 113).lPort; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$4$Type', 1728); -function PortSideAssigner$lambda$5$Type(finalNewPortSide_0){ - this.finalNewPortSide_0 = finalNewPortSide_0; -} - -defineClass(1729, 1, $intern_19, PortSideAssigner$lambda$5$Type); -_.accept = function accept_110(arg0){ - lambda$5_2(this.finalNewPortSide_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$5$Type', 1729); -function PortSideAssigner$lambda$6$Type(){ -} - -defineClass(1730, 1, $intern_88, PortSideAssigner$lambda$6$Type); -_.compare_1 = function compare_53(arg0, arg1){ - return lambda$6_0(castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_134(other){ - return this === other; -} -; -_.reversed = function reversed_45(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$6$Type', 1730); -function PortSideAssigner$lambda$7$Type(){ -} - -defineClass(1731, 1, $intern_88, PortSideAssigner$lambda$7$Type); -_.compare_1 = function compare_54(arg0, arg1){ - return lambda$7_2(castTo(arg0, 113), castTo(arg1, 113)); -} -; -_.equals_0 = function equals_135(other){ - return this === other; -} -; -_.reversed = function reversed_46(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$7$Type', 1731); -function PortSideAssigner$lambda$8$Type(){ -} - -defineClass(805, 1, $intern_39, PortSideAssigner$lambda$8$Type); -_.test_0 = function test_78(arg0){ - return castTo(arg0, 113).isHidden; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$8$Type', 805); -defineClass(2009, 1, {}); -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_AbstractSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'AbstractSelfLoopRouter', 2009); -function $assignOneSidedSequencedSideAndAlignment(slLoops, portSide){ - var id_0, lPort, lPort$iterator, leftLoopAlignmentReference, leftSlLoop, leftSlLoopIdx, rightLoopAlignmentReference, rightSlLoop, rightSlLoopIdx; - id_0 = 0; - for (lPort$iterator = new ArrayList$1((checkCriticalElementIndex(0, slLoops.array.length) , castTo(slLoops.array[0], 101)).slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { - lPort = castTo($next_7(lPort$iterator), 11); - lPort.id_0 = id_0++; - } - portSide == ($clinit_PortSide() , NORTH_3)?$sort(slLoops, new LabelPlacer$lambda$0$Type_0):$sort(slLoops, new LabelPlacer$lambda$1$Type_0); - leftSlLoopIdx = 0; - rightSlLoopIdx = slLoops.array.length - 1; - while (leftSlLoopIdx < rightSlLoopIdx) { - leftSlLoop = (checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)); - rightSlLoop = (checkCriticalElementIndex(rightSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[rightSlLoopIdx], 101)); - leftLoopAlignmentReference = portSide == NORTH_3?leftSlLoop.rightmostPort:leftSlLoop.leftmostPort; - rightLoopAlignmentReference = portSide == NORTH_3?rightSlLoop.leftmostPort:rightSlLoop.rightmostPort; - $assignSideAndAlignment(leftSlLoop, portSide, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), leftLoopAlignmentReference); - $assignSideAndAlignment(rightSlLoop, portSide, LEFT_1, rightLoopAlignmentReference); - ++leftSlLoopIdx; - --rightSlLoopIdx; - } - leftSlLoopIdx == rightSlLoopIdx && $assignSideAndAlignment((checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)), portSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); -} - -function $assignOneSidedSimpleSideAndAlignment(slLoop, loopSide){ - var topmostPort; - switch (loopSide.ordinal) { - case 2: - case 4: - topmostPort = slLoop.leftmostPort; - slLoop.rightmostPort.lPort.pos.y_0 < topmostPort.lPort.pos.y_0 && (topmostPort = slLoop.rightmostPort); - $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , TOP_0), topmostPort); - break; - case 1: - case 3: - $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); - } -} - -function $assignSideAndAlignment(slLoop, side, alignment, alignmentReference){ - var slLabels; - slLabels = slLoop.slLabels; - slLabels.side = side; - slLabels.alignment = alignment; - slLabels.alignmentReferenceSLPort = alignmentReference; -} - -function $assignSideAndAlignment_0(slHolder){ - var loopSide, northernOneSidedSLLoops, occupiedSides, orderingStrategy, slLabels, slLoop, slLoop$iterator, southernOneSidedSLLoops, leftmostPortSide, rightmostPortSide, leftmostPortSide_0, rightmostPortSide_0; - northernOneSidedSLLoops = null; - southernOneSidedSLLoops = null; - orderingStrategy = castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376); - if (orderingStrategy == ($clinit_SelfLoopOrderingStrategy() , SEQUENCED)) { - northernOneSidedSLLoops = new ArrayList; - southernOneSidedSLLoops = new ArrayList; - } - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slLabels = slLoop.slLabels; - if (!slLabels) { - continue; - } - switch (slLoop.selfLoopType.ordinal) { - case 0: - loopSide = castTo($next_8(new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides)), 61); - orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , NORTH_3)?(northernOneSidedSLLoops.array[northernOneSidedSLLoops.array.length] = slLoop , true):orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , SOUTH_2)?(southernOneSidedSLLoops.array[southernOneSidedSLLoops.array.length] = slLoop , true):$assignOneSidedSimpleSideAndAlignment(slLoop, loopSide); - break; - case 1: - leftmostPortSide = slLoop.leftmostPort.lPort.side; - rightmostPortSide = slLoop.rightmostPort.lPort.side; - leftmostPortSide == ($clinit_PortSide() , NORTH_3)?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):rightmostPortSide == NORTH_3?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):leftmostPortSide == SOUTH_2?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.leftmostPort):rightmostPortSide == SOUTH_2 && $assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.rightmostPort); - break; - case 2: - case 3: - occupiedSides = slLoop.occupiedPortSides; - $containsEnum(occupiedSides, ($clinit_PortSide() , NORTH_3))?$containsEnum(occupiedSides, SOUTH_2)?$containsEnum(occupiedSides, WEST_2)?$containsEnum(occupiedSides, EAST_2) || $assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); - break; - case 4: - leftmostPortSide_0 = slLoop.leftmostPort.lPort.side; - rightmostPortSide_0 = slLoop.leftmostPort.lPort.side; - leftmostPortSide_0 == ($clinit_PortSide() , NORTH_3) || rightmostPortSide_0 == NORTH_3?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); - } - } - if (northernOneSidedSLLoops) { - northernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(northernOneSidedSLLoops, ($clinit_PortSide() , NORTH_3)); - southernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(southernOneSidedSLLoops, ($clinit_PortSide() , SOUTH_2)); - } -} - -function $computeCoordinates(slLoop){ - var alignRef, pos, size_0, slLabels; - slLabels = slLoop.slLabels; - alignRef = slLabels.alignmentReferenceSLPort; - size_0 = slLabels.size_0; - pos = slLabels.position; - switch (slLabels.alignment.ordinal) { - case 0: - pos.x_0 = (slLoop.slHolder.lNode.size_0.x_0 - size_0.x_0) / 2; - break; - case 1: - pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0; - break; - case 2: - pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0 - size_0.x_0; - break; - case 3: - pos.y_0 = alignRef.lPort.pos.y_0 + alignRef.lPort.anchor.y_0; - } -} - -function $placeLabels_1(slHolder){ - var slLoop, slLoop$iterator; - $assignSideAndAlignment_0(slHolder); - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - !!slLoop.slLabels && $computeCoordinates(slLoop); - } -} - -function lambda$0_25(slLoop1_0, slLoop2_1){ - return compare_5(slLoop1_0.leftmostPort.lPort.id_0, slLoop2_1.leftmostPort.lPort.id_0); -} - -function lambda$1_14(slLoop1_0, slLoop2_1){ - return compare_5(slLoop2_1.leftmostPort.lPort.id_0, slLoop1_0.leftmostPort.lPort.id_0); -} - -function LabelPlacer$lambda$0$Type_0(){ -} - -defineClass(1750, 1, $intern_88, LabelPlacer$lambda$0$Type_0); -_.compare_1 = function compare_55(arg0, arg1){ - return lambda$0_25(castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_136(other){ - return this === other; -} -; -_.reversed = function reversed_47(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$0$Type', 1750); -function LabelPlacer$lambda$1$Type_0(){ -} - -defineClass(1751, 1, $intern_88, LabelPlacer$lambda$1$Type_0); -_.compare_1 = function compare_56(arg0, arg1){ - return lambda$1_14(castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_137(other){ - return this === other; -} -; -_.reversed = function reversed_48(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$1$Type', 1751); -function $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints){ - var currPortSide, currPortSideComponent, lSourcePort, lTargetPort, nextPortSide, nextPortSideComponent, slLoop; - lSourcePort = slEdge.slSource.lPort; - lTargetPort = slEdge.slTarget.lPort; - if (lSourcePort.side == lTargetPort.side) { - return; - } - slLoop = slEdge.slHyperLoop; - currPortSide = lSourcePort.side; - nextPortSide = null; - while (currPortSide != lTargetPort.side) { - nextPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); - currPortSideComponent = $getBaseVector(currPortSide, slLoop.routingSlot[currPortSide.ordinal], routingSlotPositions); - nextPortSideComponent = $getBaseVector(nextPortSide, slLoop.routingSlot[nextPortSide.ordinal], routingSlotPositions); - $add_7(bendPoints, $add_19(currPortSideComponent, nextPortSideComponent)); - currPortSide = nextPortSide; - } -} - -function $addOuterBendPoint(slEdge, slPort, routingSlotPositions, bendPoints){ - var anchor, lPort, portSide, result, slLoop; - slLoop = slEdge.slHyperLoop; - lPort = slPort.lPort; - portSide = lPort.side; - result = $getBaseVector(portSide, slLoop.routingSlot[portSide.ordinal], routingSlotPositions); - anchor = $add_19($clone_0(lPort.pos), lPort.anchor); - switch (lPort.side.ordinal) { - case 1: - case 3: - result.x_0 += anchor.x_0; - break; - case 2: - case 4: - result.y_0 += anchor.y_0; - } - $addNode_0(bendPoints, result, bendPoints.tail.prev, bendPoints.tail); -} - -function $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance){ - var lMargins, lNode; - lNode = slHolder.lNode; - lMargins = lNode.margin; - switch (portSide.ordinal) { - case 1: - return -lMargins.top_0 - nodeSelfLoopDistance; - case 2: - return lNode.size_0.x_0 + lMargins.right + nodeSelfLoopDistance; - case 3: - return lNode.size_0.y_0 + lMargins.bottom + nodeSelfLoopDistance; - case 4: - return -lMargins.left - nodeSelfLoopDistance; - default:return -1; - } -} - -function $computeEdgeRoutingDirection(slEdge){ - var slLoop, sourceLPort, sourcePortSide, targetLPort, targetPortSide; - sourceLPort = slEdge.slSource.lPort; - sourcePortSide = sourceLPort.side; - targetLPort = slEdge.slTarget.lPort; - targetPortSide = targetLPort.side; - if (sourcePortSide == targetPortSide) { - return sourceLPort.id_0 < targetLPort.id_0?0:1; - } - else if ($right(sourcePortSide) == targetPortSide) { - return 0; - } - else if ($left(sourcePortSide) == targetPortSide) { - return 1; - } - else { - slLoop = slEdge.slHyperLoop; - return $containsEnum(slLoop.occupiedPortSides, $right(sourcePortSide))?0:1; - } -} - -function $computePositions(positions, slHolder, portSide, edgeEdgeDistance, edgeLabelDistance, nodeSelfLoopDistance){ - var currPos, factor, largestLabelSize, sidePositions, slot; - currPos = $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance); - factor = portSide == ($clinit_PortSide() , NORTH_3) || portSide == WEST_2?-1:1; - sidePositions = positions[portSide.ordinal]; - for (slot = 0; slot < sidePositions.length; slot++) { - largestLabelSize = sidePositions[slot]; - largestLabelSize > 0 && (largestLabelSize += edgeLabelDistance); - sidePositions[slot] = currPos; - currPos += factor * (largestLabelSize + edgeEdgeDistance); - } -} - -function $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance){ - var portSide, portSide$array, portSide$index, portSide$max, positions; - positions = initUnidimensionalArray(D_classLit, $intern_16, 104, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 0, 2); - for (portSide$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , portSide$index = 0 , portSide$max = portSide$array.length; portSide$index < portSide$max; ++portSide$index) { - portSide = portSide$array[portSide$index]; - positions[portSide.ordinal] = initUnidimensionalArray(D_classLit, $intern_65, 25, slHolder.routingSlotCount[portSide.ordinal], 15, 1); - } - $initializeWithMaxLabelHeight(positions, slHolder, NORTH_3); - $initializeWithMaxLabelHeight(positions, slHolder, SOUTH_2); - $computePositions(positions, slHolder, NORTH_3, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - $computePositions(positions, slHolder, EAST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - $computePositions(positions, slHolder, SOUTH_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - $computePositions(positions, slHolder, WEST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - return positions; -} - -function $getBaseVector(portSide, routingSlot, routingSlotPositions){ - var position; - position = routingSlotPositions[portSide.ordinal][routingSlot]; - switch (portSide.ordinal) { - case 1: - case 3: - return new KVector_1(0, position); - case 2: - case 4: - return new KVector_1(position, 0); - default:return null; - } -} - -function $initializeWithMaxLabelHeight(positions, slHolder, portSide){ - var routingSlot, sidePositions, slLabels, slLoop, slLoop$iterator; - sidePositions = positions[portSide.ordinal]; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slLabels = slLoop.slLabels; - if (!!slLabels && slLabels.side == portSide) { - routingSlot = slLoop.routingSlot[portSide.ordinal]; - sidePositions[routingSlot] = $wnd.Math.max(sidePositions[routingSlot], slLabels.size_0.y_0); - } - } -} - -function $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance){ - var labelPosition, labelSide; - labelSide = slLabels.side; - labelPosition = routingSlotPositions[labelSide.ordinal][slLoop.routingSlot[labelSide.ordinal]]; - switch (labelSide.ordinal) { - case 1: - labelPosition -= edgeLabelDistance + slLabels.size_0.y_0; - slLabels.position.y_0 = labelPosition; - break; - case 3: - labelPosition += edgeLabelDistance; - slLabels.position.y_0 = labelPosition; - break; - case 4: - labelPosition -= edgeLabelDistance + slLabels.size_0.x_0; - slLabels.position.x_0 = labelPosition; - break; - case 2: - labelPosition += edgeLabelDistance; - slLabels.position.x_0 = labelPosition; - } -} - -function $routeSelfLoops(this$static, slHolder){ - var bendPoints, edgeEdgeDistance, edgeLabelDistance, lEdge, lNode, newNodeMargins, nodeMargins, nodeSLDistance, nodeSize, routingDirection, routingSlotPositions, slEdge, slEdge$iterator, slLabels, slLoop, slLoop$iterator, bendPoints_0, pos; - lNode = slHolder.lNode; - nodeSize = lNode.size_0; - nodeMargins = lNode.margin; - edgeEdgeDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_EDGE_LABEL_0))); - nodeSLDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_NODE_SELF_LOOP))); - newNodeMargins = new LMargin; - $set_7(newNodeMargins, nodeMargins.top_0, nodeMargins.right, nodeMargins.bottom, nodeMargins.left); - routingSlotPositions = $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - for (slEdge$iterator = slLoop.slEdges.map_0.keySet_0().iterator_0(); slEdge$iterator.hasNext_0();) { - slEdge = castTo(slEdge$iterator.next_1(), 409); - lEdge = slEdge.lEdge; - routingDirection = $computeEdgeRoutingDirection(slEdge); - bendPoints = (bendPoints_0 = new KVectorChain , $addOuterBendPoint(slEdge, slEdge.slSource, routingSlotPositions, bendPoints_0) , $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints_0) , $addOuterBendPoint(slEdge, slEdge.slTarget, routingSlotPositions, bendPoints_0) , bendPoints_0); - bendPoints = this$static.modifyBendPoints(slEdge, routingDirection, bendPoints); - $reset_0(lEdge.bendPoints); - $addAll(lEdge.bendPoints, bendPoints); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(bendPoints, 16)), new OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize, newNodeMargins)); - } - slLabels = slLoop.slLabels; - if (slLabels) { - $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance); - pos = new KVector_2(slLabels.position); - $updateNewNodeMargins(nodeSize, newNodeMargins, pos); - $add_19(pos, slLabels.size_0); - $updateNewNodeMargins(nodeSize, newNodeMargins, pos); - } - } - $set_7(nodeMargins, newNodeMargins.top_0, newNodeMargins.right, newNodeMargins.bottom, newNodeMargins.left); -} - -function $updateNewNodeMargins(nodeSize, newNodeMargins, bendPoint){ - newNodeMargins.left = $wnd.Math.max(newNodeMargins.left, -bendPoint.x_0); - newNodeMargins.right = $wnd.Math.max(newNodeMargins.right, bendPoint.x_0 - nodeSize.x_0); - newNodeMargins.top_0 = $wnd.Math.max(newNodeMargins.top_0, -bendPoint.y_0); - newNodeMargins.bottom = $wnd.Math.max(newNodeMargins.bottom, bendPoint.y_0 - nodeSize.y_0); -} - -function OrthogonalSelfLoopRouter(){ -} - -defineClass(1793, 2009, {}, OrthogonalSelfLoopRouter); -_.modifyBendPoints = function modifyBendPoints(slEdge, routingDirection, bendPoints){ - return bendPoints; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter', 1793); -function OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize_1, newNodeMargins_2){ - this.nodeSize_1 = nodeSize_1; - this.newNodeMargins_2 = newNodeMargins_2; -} - -defineClass(1795, 1, $intern_19, OrthogonalSelfLoopRouter$lambda$0$Type); -_.accept = function accept_111(arg0){ - $updateNewNodeMargins(this.nodeSize_1, this.newNodeMargins_2, castTo(arg0, 8)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter/lambda$0$Type', 1795); -function $cutCorners(bendPoints){ - var bpIterator, corner, effectiveDistance, next, offset1, offset2, previous, result; - result = new KVectorChain; - bpIterator = $listIterator_2(bendPoints, 0); - previous = null; - corner = castTo($next_10(bpIterator), 8); - next = castTo($next_10(bpIterator), 8); - while (bpIterator.currentNode != bpIterator.this$01.tail) { - previous = corner; - corner = next; - next = castTo($next_10(bpIterator), 8); - offset1 = $nearZeroToZero($sub_0(new KVector_1(previous.x_0, previous.y_0), corner)); - offset2 = $nearZeroToZero($sub_0(new KVector_1(next.x_0, next.y_0), corner)); - effectiveDistance = 10; - effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset1.x_0 + offset1.y_0) / 2); - effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset2.x_0 + offset2.y_0) / 2); - offset1.x_0 = signum(offset1.x_0) * effectiveDistance; - offset1.y_0 = signum(offset1.y_0) * effectiveDistance; - offset2.x_0 = signum(offset2.x_0) * effectiveDistance; - offset2.y_0 = signum(offset2.y_0) * effectiveDistance; - $add_7(result, $add_19(offset1, corner)); - $add_7(result, $add_19(offset2, corner)); - } - return result; -} - -function $nearZeroToZero(vector){ - vector.x_0 >= -0.01 && vector.x_0 <= $intern_94 && (vector.x_0 = 0); - vector.y_0 >= -0.01 && vector.y_0 <= $intern_94 && (vector.y_0 = 0); - return vector; -} - -function PolylineSelfLoopRouter(){ -} - -defineClass(1794, 1793, {}, PolylineSelfLoopRouter); -_.modifyBendPoints = function modifyBendPoints_0(slEdge, routingDirection, bendPoints){ - var lSourcePort, lTargetPort; - lSourcePort = slEdge.slSource.lPort; - $add_0(bendPoints, 0, $add_19($clone_0(lSourcePort.pos), lSourcePort.anchor)); - lTargetPort = slEdge.slTarget.lPort; - $add_7(bendPoints, $add_19($clone_0(lTargetPort.pos), lTargetPort.anchor)); - return $cutCorners(bendPoints); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_PolylineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'PolylineSelfLoopRouter', 1794); -function $clinit_RoutingDirector(){ - $clinit_RoutingDirector = emptyMethod; - COMPARE_BY_ID = new RoutingDirector$lambda$0$Type; -} - -function $assignPortIds(lPorts){ - var i; - for (i = 0; i < lPorts.array.length; i++) { - (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)).id_0 = i; - } -} - -function $computeEdgePenalty(this$static, slHolder, leftmostPort, rightmostPort){ - var leftOfRightmostPortId, leftmostPortId, portCount, rightmostPortId; - this$static.portPenalties == null && $computePenalties(this$static, slHolder); - portCount = slHolder.lNode.ports.array.length; - leftmostPortId = leftmostPort.lPort.id_0; - rightmostPortId = rightmostPort.lPort.id_0; - leftOfRightmostPortId = rightmostPortId - 1; - leftOfRightmostPortId < 0 && (leftOfRightmostPortId = portCount - 1); - return leftmostPortId <= leftOfRightmostPortId?this$static.portPenalties[leftOfRightmostPortId] - this$static.portPenalties[leftmostPortId]:this$static.portPenalties[portCount - 1] - this$static.portPenalties[leftmostPortId] + this$static.portPenalties[leftOfRightmostPortId]; -} - -function $computeMissingPortSide(slLoop){ - var side, side$array, side$index, side$max, sides; - sides = $keySet(slLoop.slPortsBySide); - for (side$array = ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { - side = side$array[side$index]; - if (side != UNDEFINED_5 && !sides.contains(side)) { - return side; - } - } - return null; -} - -function $computeOccupiedPortSides(slLoop){ - var currPortSide, targetSide; - currPortSide = slLoop.leftmostPort.lPort.side; - targetSide = slLoop.rightmostPort.lPort.side; - while (currPortSide != targetSide) { - $add_5(slLoop.occupiedPortSides, currPortSide); - currPortSide = $right(currPortSide); - } - $add_5(slLoop.occupiedPortSides, currPortSide); -} - -function $computePenalties(this$static, slHolder){ - var currPort, i, penaltySum, ports; - ports = slHolder.lNode.ports; - this$static.portPenalties = initUnidimensionalArray(I_classLit, $intern_48, 25, ports.array.length, 15, 1); - penaltySum = 0; - for (i = 0; i < ports.array.length; i++) { - currPort = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); - currPort.incomingEdges.array.length == 0 && currPort.outgoingEdges.array.length == 0?(penaltySum += 1):(penaltySum += 3); - this$static.portPenalties[i] = penaltySum; - } -} - -function $determineFourSideLoopRoutes(this$static, slLoop){ - var currLeftPort, currPenalty, currRightPort, rightPortIndex, slHolder, sortedSLPorts, worstLeftPort, worstPenalty, worstRightPort; - sortedSLPorts = slLoop.slPorts; - slHolder = slLoop.slHolder; - worstLeftPort = castTo($get_11(sortedSLPorts, sortedSLPorts.array.length - 1), 113); - worstRightPort = (checkCriticalElementIndex(0, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[0], 113)); - worstPenalty = $computeEdgePenalty(this$static, slHolder, worstLeftPort, worstRightPort); - for (rightPortIndex = 1; rightPortIndex < sortedSLPorts.array.length; rightPortIndex++) { - currLeftPort = (checkCriticalElementIndex(rightPortIndex - 1, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex - 1], 113)); - currRightPort = (checkCriticalElementIndex(rightPortIndex, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex], 113)); - currPenalty = $computeEdgePenalty(this$static, slHolder, currLeftPort, currRightPort); - if (currPenalty > worstPenalty) { - worstLeftPort = currLeftPort; - worstRightPort = currRightPort; - worstPenalty = currPenalty; - } - } - slLoop.leftmostPort = worstRightPort; - slLoop.rightmostPort = worstLeftPort; -} - -function $determineLoopRoutes(this$static, slHolder){ - var side, sides, slLoop, slLoop$iterator; - $assignPortIds(slHolder.lNode.ports); - $forEach_3($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingDirector$lambda$1$Type), new RoutingDirector$lambda$2$Type); - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - switch (slLoop.selfLoopType.ordinal) { - case 0: - side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; - $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); - $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); - break; - case 1: - sides = sortedTwoSideLoopPortSides(slLoop); - $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, sides[0]), 15).stream(), COMPARE_BY_ID)), 113)); - $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, sides[1]), 15).stream(), COMPARE_BY_ID)), 113)); - break; - case 2: - $determineTwoSideOpposingLoopRoutes(this$static, slLoop); - break; - case 3: - $determineThreeSideLoopRoutes(slLoop); - break; - case 4: - $determineFourSideLoopRoutes(this$static, slLoop); - } - $computeOccupiedPortSides(slLoop); - } - this$static.portPenalties = null; -} - -function $determineThreeSideLoopRoutes(slLoop){ - var leftmostSide, rightmostSide; - leftmostSide = null; - rightmostSide = null; - switch ($computeMissingPortSide(slLoop).ordinal) { - case 1: - leftmostSide = ($clinit_PortSide() , EAST_2); - rightmostSide = WEST_2; - break; - case 2: - leftmostSide = ($clinit_PortSide() , SOUTH_2); - rightmostSide = NORTH_3; - break; - case 3: - leftmostSide = ($clinit_PortSide() , WEST_2); - rightmostSide = EAST_2; - break; - case 4: - leftmostSide = ($clinit_PortSide() , NORTH_3); - rightmostSide = SOUTH_2; - } - $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, leftmostSide), 15).stream(), COMPARE_BY_ID)), 113)); - $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, rightmostSide), 15).stream(), COMPARE_BY_ID)), 113)); -} - -function $determineTwoSideOpposingLoopRoutes(this$static, slLoop){ - var option1LeftmostPort, option1Penalty, option1RightmostPort, option2LeftmostPort, option2Penalty, option2RightmostPort, sides, slHolder; - sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); - slHolder = slLoop.slHolder; - option1LeftmostPort = $lowestPortOnSide(slLoop, sides[0]); - option1RightmostPort = $highestPortOnSide(slLoop, sides[1]); - option1Penalty = $computeEdgePenalty(this$static, slHolder, option1LeftmostPort, option1RightmostPort); - option2LeftmostPort = $lowestPortOnSide(slLoop, sides[1]); - option2RightmostPort = $highestPortOnSide(slLoop, sides[0]); - option2Penalty = $computeEdgePenalty(this$static, slHolder, option2LeftmostPort, option2RightmostPort); - if (option1Penalty <= option2Penalty) { - slLoop.leftmostPort = option1LeftmostPort; - slLoop.rightmostPort = option1RightmostPort; - } - else { - slLoop.leftmostPort = option2LeftmostPort; - slLoop.rightmostPort = option2RightmostPort; - } -} - -function $highestPortOnSide(slLoop, side){ - return castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); -} - -function $lowestPortOnSide(slLoop, side){ - return castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); -} - -function RoutingDirector(){ - $clinit_RoutingDirector(); -} - -function lambda$0_26(slPort1_0, slPort2_1){ - $clinit_RoutingDirector(); - return compare_5(slPort1_0.lPort.id_0, slPort2_1.lPort.id_0); -} - -defineClass(1746, 1, {}, RoutingDirector); -_.portPenalties = null; -var COMPARE_BY_ID; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector', 1746); -function RoutingDirector$lambda$0$Type(){ -} - -defineClass(1747, 1, $intern_88, RoutingDirector$lambda$0$Type); -_.compare_1 = function compare_57(arg0, arg1){ - return lambda$0_26(castTo(arg0, 113), castTo(arg1, 113)); -} -; -_.equals_0 = function equals_138(other){ - return this === other; -} -; -_.reversed = function reversed_49(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$0$Type', 1747); -function RoutingDirector$lambda$1$Type(){ -} - -defineClass(1748, 1, {}, RoutingDirector$lambda$1$Type); -_.apply_0 = function apply_127(arg0){ - return $clinit_RoutingDirector() , castTo(arg0, 101).slPorts; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$1$Type', 1748); -function RoutingDirector$lambda$2$Type(){ -} - -defineClass(1749, 1, $intern_19, RoutingDirector$lambda$2$Type); -_.accept = function accept_112(arg0){ - $clinit_RoutingDirector(); - castTo(arg0, 15).sort_0(COMPARE_BY_ID); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$2$Type', 1749); -function $assignRawRoutingSlotsToLoops(this$static, slHolder){ - var portSide, portSide$iterator, slLoop, slLoop$iterator, slot; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slot = castTo($get_10(this$static.slLoopToSegmentMap, slLoop), 112).routingSlot; - for (portSide$iterator = new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides); portSide$iterator.i < portSide$iterator.this$11.all.length;) { - portSide = castTo($next_8(portSide$iterator), 61); - $setRoutingSlot(slLoop, portSide, slot); - } - } -} - -function $assignRawRoutingSlotsToSegments(this$static){ - var inDependency, inDependency$iterator, nextRoutingSlot, segment, segment$iterator, sinks, sourceSegment; - sinks = new LinkedList; - for (segment$iterator = new ArrayList$1(this$static.hyperEdgeSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 112); - $setInWeight(segment, segment.incomingSegmentDependencies.array.length); - $setOutWeight(segment, segment.outgoingSegmentDependencies.array.length); - if (segment.outDepWeight == 0) { - segment.routingSlot = 0; - $addNode_0(sinks, segment, sinks.tail.prev, sinks.tail); - } - } - while (sinks.size_0 != 0) { - segment = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 112); - nextRoutingSlot = segment.routingSlot + 1; - for (inDependency$iterator = new ArrayList$1(segment.incomingSegmentDependencies); inDependency$iterator.i < inDependency$iterator.this$01.array.length;) { - inDependency = castTo($next_7(inDependency$iterator), 129); - sourceSegment = inDependency.source; - $setRoutingSlot_0(sourceSegment, $wnd.Math.max(sourceSegment.routingSlot, nextRoutingSlot)); - $setOutWeight(sourceSegment, sourceSegment.outDepWeight - 1); - sourceSegment.outDepWeight == 0 && ($addNode_0(sinks, sourceSegment, sinks.tail.prev, sinks.tail) , true); - } - } -} - -function $assignRoutingSlots(this$static, slHolder){ - var labelCrossingMatrix, nextFreeRoutingSlotAtPort; - labelCrossingMatrix = $computeLabelCrossingMatrix(slHolder); - $createCrossingGraph(this$static, slHolder, labelCrossingMatrix); - breakNonCriticalCycles(this$static.hyperEdgeSegments, castTo($getProperty($getGraph(slHolder.lNode), ($clinit_InternalProperties_1() , RANDOM_0)), 230)); - $assignRawRoutingSlotsToSegments(this$static); - $assignRawRoutingSlotsToLoops(this$static, slHolder); - nextFreeRoutingSlotAtPort = initUnidimensionalArray(I_classLit, $intern_48, 25, slHolder.lNode.ports.array.length, 15, 1); - $shiftTowardsNodeOnSide(this$static, slHolder, ($clinit_PortSide() , NORTH_3), nextFreeRoutingSlotAtPort, labelCrossingMatrix); - $shiftTowardsNodeOnSide(this$static, slHolder, EAST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); - $shiftTowardsNodeOnSide(this$static, slHolder, SOUTH_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); - $shiftTowardsNodeOnSide(this$static, slHolder, WEST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); - this$static.hyperEdgeSegments = null; - this$static.slLoopToSegmentMap = null; - this$static.slLoopActivityOverPorts = null; -} - -function $computeLabelCrossingMatrix(slHolder){ - var crossingMatrix, labelID, overlap, sl1Idx, sl2Idx, slLoop, slLoop$iterator, slLoop1, slLoop2, slLoops; - labelID = 0; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - !!slLoop.slLabels && (slLoop.slLabels.id_0 = labelID++); - } - crossingMatrix = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [labelID, labelID], 2); - slLoops = slHolder.slHyperLoops; - for (sl1Idx = 0; sl1Idx < slLoops.array.length; sl1Idx++) { - slLoop1 = (checkCriticalElementIndex(sl1Idx, slLoops.array.length) , castTo(slLoops.array[sl1Idx], 101)); - if (slLoop1.slLabels) { - for (sl2Idx = sl1Idx + 1; sl2Idx < slLoops.array.length; sl2Idx++) { - slLoop2 = (checkCriticalElementIndex(sl2Idx, slLoops.array.length) , castTo(slLoops.array[sl2Idx], 101)); - if (slLoop2.slLabels) { - overlap = $labelsOverlap(slLoop1, slLoop2); - crossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0] = overlap; - crossingMatrix[slLoop2.slLabels.id_0][slLoop1.slLabels.id_0] = overlap; - } - } - } - } - return crossingMatrix; -} - -function $computeLoopActivity(this$static, slHolder){ - var lPortIdx, lPortTargetIdx, lPorts, loopActivity, slLoop, slLoop$iterator, slLoops; - slLoops = slHolder.slHyperLoops; - lPorts = slHolder.lNode.ports; - for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - loopActivity = initUnidimensionalArray(Z_classLit, $intern_91, 25, lPorts.array.length, 16, 1); - $put_6(this$static.slLoopActivityOverPorts, slLoop, loopActivity); - lPortIdx = slLoop.leftmostPort.lPort.id_0 - 1; - lPortTargetIdx = slLoop.rightmostPort.lPort.id_0; - while (lPortIdx != lPortTargetIdx) { - lPortIdx = (lPortIdx + 1) % lPorts.array.length; - loopActivity[lPortIdx] = true; - } - } -} - -function $countCrossings_0(this$static, slUpperLoop, slLowerLoop){ - var crossings, lowerLoopActivity, slPort, slPort$iterator; - lowerLoopActivity = castTo($get_10(this$static.slLoopActivityOverPorts, slLowerLoop), 177); - crossings = 0; - for (slPort$iterator = new ArrayList$1(slUpperLoop.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { - slPort = castTo($next_7(slPort$iterator), 113); - lowerLoopActivity[slPort.lPort.id_0] && ++crossings; - } - return crossings; -} - -function $createCrossingGraph(this$static, slHolder, labelCrossingMatrix){ - var firstIdx, secondIdx, segment, slLoop, slLoop$iterator, slLoop1, slLoops; - slLoops = slHolder.slHyperLoops; - this$static.hyperEdgeSegments = new ArrayList_0(slLoops.array.length); - this$static.slLoopToSegmentMap = new HashMap; - for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - segment = new HyperEdgeSegment(null); - $add_3(this$static.hyperEdgeSegments, segment); - $put_6(this$static.slLoopToSegmentMap, slLoop, segment); - } - this$static.slLoopActivityOverPorts = new HashMap; - $computeLoopActivity(this$static, slHolder); - for (firstIdx = 0; firstIdx < slLoops.array.length - 1; firstIdx++) { - slLoop1 = castTo($get_11(slHolder.slHyperLoops, firstIdx), 101); - for (secondIdx = firstIdx + 1; secondIdx < slLoops.array.length; secondIdx++) { - $createDependencies(this$static, slLoop1, castTo($get_11(slHolder.slHyperLoops, secondIdx), 101), labelCrossingMatrix); - } - } -} - -function $createDependencies(this$static, slLoop1, slLoop2, labelCrossingMatrix){ - var firstAboveSecondCrossings, secondAboveFirstCrossings, segment1, segment2; - firstAboveSecondCrossings = $countCrossings_0(this$static, slLoop1, slLoop2); - secondAboveFirstCrossings = $countCrossings_0(this$static, slLoop2, slLoop1); - segment1 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop1), 112); - segment2 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop2), 112); - if (firstAboveSecondCrossings < secondAboveFirstCrossings) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, secondAboveFirstCrossings - firstAboveSecondCrossings); - } - else if (secondAboveFirstCrossings < firstAboveSecondCrossings) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment2, segment1, firstAboveSecondCrossings - secondAboveFirstCrossings); - } - else if (firstAboveSecondCrossings != 0 || !(!slLoop1.slLabels || !slLoop2.slLabels) && labelCrossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0]) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, 0); - new HyperEdgeSegmentDependency(REGULAR, segment2, segment1, 0); - } -} - -function $labelsOverlap(slLoop1, slLoop2){ - var end1, end2, slLabels1, slLabels2, start1, start2; - slLabels1 = slLoop1.slLabels; - slLabels2 = slLoop2.slLabels; - if (!slLabels1 || !slLabels2) { - return false; - } - if (slLabels1.side != slLabels2.side || slLabels1.side == ($clinit_PortSide() , EAST_2) || slLabels1.side == ($clinit_PortSide() , WEST_2)) { - return false; - } - start1 = slLabels1.position.x_0; - end1 = start1 + slLabels1.size_0.x_0; - start2 = slLabels2.position.x_0; - end2 = start2 + slLabels2.size_0.x_0; - return start1 <= end2 && end1 >= start2; -} - -function $shiftTowardsNodeOnSide(this$static, slHolder, side, nextFreeRoutingSlotAtPort, labelCrossingMatrix){ - var activeAtPort, i, lPort, lPort$iterator, lowestAvailableSlot, maxLPortIndex, minLPortIndex, otherLabelIdx, ourLabelIdx, portIndex, portIndex0, slLoop, slLoop$iterator, slLoops, slotAssignedToLabel, slotsWithLabelConflicts; - slLoops = castTo($collect_1($sorted_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingSlotAssigner$lambda$0$Type(side)), new RoutingSlotAssigner$lambda$1$Type(side)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - minLPortIndex = $intern_0; - maxLPortIndex = $intern_42; - for (lPort$iterator = new ArrayList$1(slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { - lPort = castTo($next_7(lPort$iterator), 11); - if (lPort.side == side) { - minLPortIndex = $wnd.Math.min(minLPortIndex, lPort.id_0); - maxLPortIndex = $wnd.Math.max(maxLPortIndex, lPort.id_0); - } - } - if (minLPortIndex == $intern_0) { - for (i = 0; i < slLoops.size_1(); i++) { - $setRoutingSlot(castTo(slLoops.get_0(i), 101), side, i); - } - } - else { - slotAssignedToLabel = initUnidimensionalArray(I_classLit, $intern_48, 25, labelCrossingMatrix.length, 15, 1); - fill0_1(slotAssignedToLabel, slotAssignedToLabel.length); - for (slLoop$iterator = slLoops.iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - activeAtPort = castTo($get_10(this$static.slLoopActivityOverPorts, slLoop), 177); - lowestAvailableSlot = 0; - for (portIndex0 = minLPortIndex; portIndex0 <= maxLPortIndex; portIndex0++) { - activeAtPort[portIndex0] && (lowestAvailableSlot = $wnd.Math.max(lowestAvailableSlot, nextFreeRoutingSlotAtPort[portIndex0])); - } - if (slLoop.slLabels) { - ourLabelIdx = slLoop.slLabels.id_0; - slotsWithLabelConflicts = new HashSet; - for (otherLabelIdx = 0; otherLabelIdx < labelCrossingMatrix.length; otherLabelIdx++) { - labelCrossingMatrix[ourLabelIdx][otherLabelIdx] && $add_6(slotsWithLabelConflicts, valueOf_4(slotAssignedToLabel[otherLabelIdx])); - } - while ($contains_6(slotsWithLabelConflicts, valueOf_4(lowestAvailableSlot))) { - ++lowestAvailableSlot; - } - } - $setRoutingSlot(slLoop, side, lowestAvailableSlot); - for (portIndex = minLPortIndex; portIndex <= maxLPortIndex; portIndex++) { - activeAtPort[portIndex] && (nextFreeRoutingSlotAtPort[portIndex] = lowestAvailableSlot + 1); - } - !!slLoop.slLabels && (slotAssignedToLabel[slLoop.slLabels.id_0] = lowestAvailableSlot); - } - } -} - -function RoutingSlotAssigner(){ -} - -function lambda$0_27(side_0, slLoop_1){ - return $containsEnum(slLoop_1.occupiedPortSides, side_0); -} - -function lambda$1_15(side_0, sl1_1, sl2_2){ - return compare_5(sl1_1.routingSlot[side_0.ordinal], sl2_2.routingSlot[side_0.ordinal]); -} - -defineClass(1752, 1, {}, RoutingSlotAssigner); -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner', 1752); -function RoutingSlotAssigner$lambda$0$Type(side_0){ - this.side_0 = side_0; -} - -defineClass(1753, 1, $intern_39, RoutingSlotAssigner$lambda$0$Type); -_.test_0 = function test_79(arg0){ - return lambda$0_27(this.side_0, castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$0$Type', 1753); -function RoutingSlotAssigner$lambda$1$Type(side_0){ - this.side_0 = side_0; -} - -defineClass(1754, 1, $intern_88, RoutingSlotAssigner$lambda$1$Type); -_.compare_1 = function compare_58(arg0, arg1){ - return lambda$1_15(this.side_0, castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_139(other){ - return this === other; -} -; -_.reversed = function reversed_50(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$1$Type', 1754); -function $addSplineControlPoints(slEdge, routingDirection, orthoBendPoints, newBendPoints, edgeLabelDistance){ - var currPortSide, firstBP, midBP, offset, secondBP, secondBPIndex; - currPortSide = slEdge.slSource.lPort.side; - firstBP = castTo($get_7(orthoBendPoints, 0), 8); - for (secondBPIndex = 1; secondBPIndex < orthoBendPoints.size_0; secondBPIndex++) { - secondBP = castTo($get_7(orthoBendPoints, secondBPIndex), 8); - $addNode_0(newBendPoints, firstBP, newBendPoints.tail.prev, newBendPoints.tail); - midBP = $scale($add_19(new KVector_2(firstBP), secondBP), 0.5); - offset = $scale(new KVector_0(portSideToDirection(currPortSide)), edgeLabelDistance); - $add_19(midBP, offset); - $addNode_0(newBendPoints, midBP, newBendPoints.tail.prev, newBendPoints.tail); - firstBP = secondBP; - currPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); - } - $add_7(newBendPoints, (checkCriticalElement(orthoBendPoints.size_0 != 0) , castTo(orthoBendPoints.tail.prev.value_0, 8))); -} - -function SplineSelfLoopRouter(){ -} - -defineClass(1796, 1793, {}, SplineSelfLoopRouter); -_.modifyBendPoints = function modifyBendPoints_1(slEdge, routingDirection, bendPoints){ - var edgeLabelDistance, lPort, lPort0, splineBendPoints; - edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(slEdge.slHyperLoop.slHolder.lNode, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - splineBendPoints = new KVectorChain_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [(lPort0 = slEdge.slSource.lPort , $add_19(new KVector_2(lPort0.pos), lPort0.anchor))])); - $addSplineControlPoints(slEdge, routingDirection, bendPoints, splineBendPoints, edgeLabelDistance); - $add_7(splineBendPoints, (lPort = slEdge.slTarget.lPort , $add_19(new KVector_2(lPort.pos), lPort.anchor))); - return $getBezierCP(new NubSpline(splineBendPoints)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_SplineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'SplineSelfLoopRouter', 1796); -function $compare_15(this$static, n1, n2){ - var n1ModelOrder, n1ModelOrder0, n2ModelOrder, n2ModelOrder0, p1Node, p1SourcePort, p2Node, p2SourcePort, port, port$iterator, previousNode, previousNode$array, previousNode$index, previousNode$max; - if ($containsKey_3(this$static.biggerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { - return 1; - } - } - else { - $put_6(this$static.biggerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.biggerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { - return -1; - } - } - else { - $put_6(this$static.biggerThan, n2, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { - return -1; - } - } - else { - $put_6(this$static.smallerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { - return 1; - } - } - else { - $put_6(this$static.smallerThan, n2, new HashSet); - } - if (this$static.orderingStrategy == ($clinit_OrderingStrategy() , PREFER_EDGES) || !$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, ($clinit_InternalProperties_1() , MODEL_ORDER_0))) { - p1SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n1.ports, 16)), new ModelOrderNodeComparator$lambda$0$Type)), new ModelOrderNodeComparator$lambda$1$Type)), 11); - p2SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n2.ports, 16)), new ModelOrderNodeComparator$lambda$2$Type)), new ModelOrderNodeComparator$lambda$3$Type)), 11); - if (!!p1SourcePort && !!p2SourcePort) { - p1Node = p1SourcePort.owner; - p2Node = p2SourcePort.owner; - if (!!p1Node && p1Node == p2Node) { - for (port$iterator = new ArrayList$1(p1Node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (port == p1SourcePort) { - $updateBiggerAndSmallerAssociations(this$static, n2, n1); - return -1; - } - else if (port == p2SourcePort) { - $updateBiggerAndSmallerAssociations(this$static, n1, n2); - return 1; - } - } - return compare_5($getModelOrderFromConnectedEdges(this$static, n1), $getModelOrderFromConnectedEdges(this$static, n2)); - } - for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { - previousNode = previousNode$array[previousNode$index]; - if (previousNode == p1Node) { - $updateBiggerAndSmallerAssociations(this$static, n2, n1); - return -1; - } - else if (previousNode == p2Node) { - $updateBiggerAndSmallerAssociations(this$static, n1, n2); - return 1; - } - } - } - if (!$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, MODEL_ORDER_0)) { - n1ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n1); - n2ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n2); - n1ModelOrder0 > n2ModelOrder0?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); - return n1ModelOrder0 < n2ModelOrder0?-1:n1ModelOrder0 > n2ModelOrder0?1:0; - } - } - n1ModelOrder = castTo($getProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; - n2ModelOrder = castTo($getProperty(n2, MODEL_ORDER_0), 19).value_0; - n1ModelOrder > n2ModelOrder?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); - return n1ModelOrder < n2ModelOrder?-1:n1ModelOrder > n2ModelOrder?1:0; -} - -function $getModelOrderFromConnectedEdges(this$static, n){ - var edge, sourcePort; - sourcePort = castTo($orElse($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n.ports, 16)), new ModelOrderNodeComparator$lambda$4$Type))), 11); - if (sourcePort) { - edge = castTo($get_11(sourcePort.incomingEdges, 0), 17); - if (edge) { - return castTo($getProperty(edge, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; - } - } - return $returnValue(this$static.longEdgeNodeOrder); -} - -function $updateBiggerAndSmallerAssociations(this$static, bigger, smaller){ - var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; - biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); - smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); - biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); - smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); - biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); - smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); - for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { - verySmall = castTo(verySmall$iterator.next_1(), 10); - biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); - $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); - $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); - } - for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { - veryBig = castTo(veryBig$iterator.next_1(), 10); - smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); - $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); - $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); - } -} - -function ModelOrderNodeComparator(thePreviousLayer, orderingStrategy, longEdgeOrderingStrategy){ - ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); - this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, thePreviousLayer.nodes.array.length, 0, 1); - $toArray_2(thePreviousLayer.nodes, this.previousLayer); -} - -function ModelOrderNodeComparator_0(orderingStrategy, longEdgeOrderingStrategy){ - this.biggerThan = new HashMap; - this.smallerThan = new HashMap; - this.longEdgeNodeOrder = ($clinit_LongEdgeOrderingStrategy() , EQUAL); - this.orderingStrategy = orderingStrategy; - this.longEdgeNodeOrder = longEdgeOrderingStrategy; -} - -function ModelOrderNodeComparator_1(previousLayer, orderingStrategy, longEdgeOrderingStrategy){ - ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); - this.previousLayer = previousLayer; -} - -defineClass(578, 1, $intern_88, ModelOrderNodeComparator, ModelOrderNodeComparator_1); -_.compare_1 = function compare_59(n1, n2){ - return $compare_15(this, castTo(n1, 10), castTo(n2, 10)); -} -; -_.equals_0 = function equals_140(other){ - return this === other; -} -; -_.reversed = function reversed_51(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator', 578); -function ModelOrderNodeComparator$lambda$0$Type(){ -} - -defineClass(1755, 1, $intern_39, ModelOrderNodeComparator$lambda$0$Type); -_.test_0 = function test_80(arg0){ - return castTo(arg0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$0$Type', 1755); -function ModelOrderNodeComparator$lambda$1$Type(){ -} - -defineClass(1756, 1, {}, ModelOrderNodeComparator$lambda$1$Type); -_.apply_0 = function apply_128(arg0){ - return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$1$Type', 1756); -function ModelOrderNodeComparator$lambda$2$Type(){ -} - -defineClass(1757, 1, $intern_39, ModelOrderNodeComparator$lambda$2$Type); -_.test_0 = function test_81(arg0){ - return castTo(arg0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$2$Type', 1757); -function ModelOrderNodeComparator$lambda$3$Type(){ -} - -defineClass(1758, 1, {}, ModelOrderNodeComparator$lambda$3$Type); -_.apply_0 = function apply_129(arg0){ - return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$3$Type', 1758); -function ModelOrderNodeComparator$lambda$4$Type(){ -} - -defineClass(1759, 1, $intern_39, ModelOrderNodeComparator$lambda$4$Type); -_.test_0 = function test_82(arg0){ - return castTo(arg0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$4$Type', 1759); -function $compare_16(this$static, p1, p2){ - return $compare_17(this$static, castTo(p1, 11), castTo(p2, 11)); -} - -function $compare_17(this$static, p1, p2){ - var p1Node, p1Order, p1TargetNode, p2Node, p2Order, p2TargetNode, previousNode, previousNode$array, previousNode$index, previousNode$max; - if (p1.incomingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { - p1Node = castTo($get_11(p1.incomingEdges, 0), 17).source.owner; - p2Node = castTo($get_11(p2.incomingEdges, 0), 17).source.owner; - if (p1Node == p2Node) { - return compare_5(castTo($getProperty(castTo($get_11(p1.incomingEdges, 0), 17), ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0, castTo($getProperty(castTo($get_11(p2.incomingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); - } - for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { - previousNode = previousNode$array[previousNode$index]; - if (previousNode == p1Node) { - return 1; - } - else if (previousNode == p2Node) { - return -1; - } - } - } - if (p1.outgoingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0) { - p1TargetNode = castTo($getProperty(p1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE)), 10); - p2TargetNode = castTo($getProperty(p2, LONG_EDGE_TARGET_NODE), 10); - p1Order = 0; - p2Order = 0; - $hasProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p1Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); - $hasProperty(castTo($get_11(p2.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p2Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); - if (!!p1TargetNode && p1TargetNode == p2TargetNode) { - if ($booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && !$booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { - return 1; - } - else if (!$booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && $booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { - return -1; - } - return p1Order < p2Order?-1:p1Order > p2Order?1:0; - } - if (this$static.targetNodeModelOrder) { - this$static.targetNodeModelOrder.containsKey(p1TargetNode) && (p1Order = castTo(this$static.targetNodeModelOrder.get_3(p1TargetNode), 19).value_0); - this$static.targetNodeModelOrder.containsKey(p2TargetNode) && (p2Order = castTo(this$static.targetNodeModelOrder.get_3(p2TargetNode), 19).value_0); - } - return p1Order < p2Order?-1:p1Order > p2Order?1:0; - } - return p1.incomingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0?1:-1; -} - -function ModelOrderPortComparator(previousLayer, targetNodeModelOrder){ - this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, previousLayer.nodes.array.length, 0, 1); - $toArray_2(previousLayer.nodes, this.previousLayer); - this.targetNodeModelOrder = targetNodeModelOrder; -} - -function ModelOrderPortComparator_0(previousLayer, targetNodeModelOrder){ - this.previousLayer = previousLayer; - this.targetNodeModelOrder = targetNodeModelOrder; -} - -defineClass(806, 1, $intern_88, ModelOrderPortComparator, ModelOrderPortComparator_0); -_.compare_1 = function compare_60(p1, p2){ - return $compare_16(this, p1, p2); -} -; -_.equals_0 = function equals_141(other){ - return this === other; -} -; -_.reversed = function reversed_52(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderPortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderPortComparator', 806); -function ARDCutIndexHeuristic(){ -} - -function getChunkCount(gs){ - var rows_0, rowsd; - rowsd = $wnd.Math.sqrt((gs.sumWidth == null && (gs.sumWidth = $determineWidth(gs, new GraphStats$lambda$1$Type)) , $doubleValue(gs.sumWidth) / (gs.dar * (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight))))); - rows_0 = toInt_0(fromDouble_0($wnd.Math.round(rowsd))); - rows_0 = $wnd.Math.min(rows_0, gs.longestPath); - return rows_0; -} - -defineClass(801, 1, {}, ARDCutIndexHeuristic); -_.getCutIndexes = function getCutIndexes(graph, gs){ - var cuts, idx, rows_0, step; - rows_0 = getChunkCount(gs); - cuts = new ArrayList; - step = gs.longestPath / rows_0; - for (idx = 1; idx < rows_0; ++idx) { - $add_3(cuts, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(idx * step))))); - } - return cuts; -} -; -_.guaranteeValid = function guaranteeValid(){ - return false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ARDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ARDCutIndexHeuristic', 801); -function $applyCuts(graph, cuts){ - var alreadySplit, bpEndMarker, bpLayer1, bpLayer2, bpStartMarker, bpi, bpiPrev, cut, cutIt, e, e$iterator, e$iterator0, idx, inPortBp1, inPortBp2, layer, layerIt, n, n$iterator, noSplitEdges, nodeStartEdge, openEdges, originalEdge, originalEdge$iterator, outPortBp1, outPortBp2, prevNode, startEndEdge; - layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); - cutIt = cuts.iterator_0(); - idx = 0; - cut = castTo(cutIt.next_1(), 19).value_0; - noSplitEdges = 0; - alreadySplit = new HashSet; - openEdges = new LinkedHashSet; - while (layerIt.i < layerIt.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); - for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - for (e$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator0);) { - e = castTo($next_0(e$iterator0), 17); - openEdges.map_0.put(e, openEdges); - } - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - openEdges.map_0.remove_0(e) != null; - } - } - if (idx + 1 == cut) { - bpLayer1 = new Layer(graph); - $add_1(layerIt, bpLayer1); - bpLayer2 = new Layer(graph); - $add_1(layerIt, bpLayer2); - for (originalEdge$iterator = openEdges.map_0.keySet_0().iterator_0(); originalEdge$iterator.hasNext_0();) { - originalEdge = castTo(originalEdge$iterator.next_1(), 17); - if (!alreadySplit.map_0.containsKey(originalEdge)) { - ++noSplitEdges; - alreadySplit.map_0.put(originalEdge, alreadySplit); - } - bpStartMarker = new LNode(graph); - $setProperty_0(bpStartMarker, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); - $setLayer_0(bpStartMarker, bpLayer1); - $setType(bpStartMarker, ($clinit_LNode$NodeType() , BREAKING_POINT)); - inPortBp1 = new LPort; - $setNode(inPortBp1, bpStartMarker); - $setSide(inPortBp1, ($clinit_PortSide() , WEST_2)); - outPortBp1 = new LPort; - $setNode(outPortBp1, bpStartMarker); - $setSide(outPortBp1, EAST_2); - bpEndMarker = new LNode(graph); - $setProperty_0(bpEndMarker, PORT_CONSTRAINTS_0, FIXED_SIDE); - $setLayer_0(bpEndMarker, bpLayer2); - $setType(bpEndMarker, BREAKING_POINT); - inPortBp2 = new LPort; - $setNode(inPortBp2, bpEndMarker); - $setSide(inPortBp2, WEST_2); - outPortBp2 = new LPort; - $setNode(outPortBp2, bpEndMarker); - $setSide(outPortBp2, EAST_2); - nodeStartEdge = new LEdge; - $setSource_0(nodeStartEdge, originalEdge.source); - $setTarget_0(nodeStartEdge, inPortBp1); - startEndEdge = new LEdge; - $setSource_0(startEndEdge, outPortBp1); - $setTarget_0(startEndEdge, inPortBp2); - $setSource_0(originalEdge, outPortBp2); - bpi = new BreakingPointInserter$BPInfo(bpStartMarker, bpEndMarker, nodeStartEdge, startEndEdge, originalEdge); - $setProperty_0(bpStartMarker, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO), bpi); - $setProperty_0(bpEndMarker, BREAKING_POINT_INFO, bpi); - prevNode = nodeStartEdge.source.owner; - if (prevNode.type_0 == BREAKING_POINT) { - bpiPrev = castTo($getProperty(prevNode, BREAKING_POINT_INFO), 305); - bpiPrev.next_0 = bpi; - bpi.prev = bpiPrev; - } - } - if (cutIt.hasNext_0()) { - cut = castTo(cutIt.next_1(), 19).value_0; - } - else { - break; - } - } - ++idx; - } - return valueOf_4(noSplitEdges); -} - -function $computeEdgeSpans(graph){ - var e, e$iterator, i, l, l$iterator, n, n$iterator, n$iterator0, open_0, spans; - spans = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length + 1, 15, 1); - open_0 = new HashSet; - i = 0; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - spans[i++] = open_0.map_0.size_1(); - for (n$iterator0 = new ArrayList$1(l.nodes); n$iterator0.i < n$iterator0.this$01.array.length;) { - n = castTo($next_7(n$iterator0), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - open_0.map_0.put(e, open_0); - } - } - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - open_0.map_0.remove_0(e) != null; - } - } - } - return spans; -} - -function $improveCuts(graph, cuts){ - var bestCut, bestScore, ccuts, cut, cutIdx, cutIdx$iterator, dist, hit, i, idx, improvedCuts, lCut, lDist, lastCut, rCut, rDist, score, spans, distancePenalty; - improvedCuts = new ArrayList; - ccuts = new ArrayList; - lastCut = null; - for (cutIdx$iterator = cuts.iterator_0(); cutIdx$iterator.hasNext_0();) { - cutIdx = castTo(cutIdx$iterator.next_1(), 19); - cut = new BreakingPointInserter$Cut(cutIdx.value_0); - ccuts.array[ccuts.array.length] = cut; - if (lastCut) { - cut.prev = lastCut; - lastCut.suc = cut; - } - lastCut = cut; - } - spans = $computeEdgeSpans(graph); - for (i = 0; i < ccuts.array.length; ++i) { - lCut = null; - rCut = $selfOrNext((checkCriticalElementIndex(0, ccuts.array.length) , castTo(ccuts.array[0], 652))); - bestCut = null; - bestScore = $intern_59; - for (idx = 1; idx < graph.layers.array.length; ++idx) { - rDist = rCut?$wnd.Math.abs(rCut.index_0 - idx):$wnd.Math.abs(idx - lCut.index_0) + 1; - lDist = lCut?$wnd.Math.abs(idx - lCut.index_0):rDist + 1; - if (lDist < rDist) { - hit = lCut; - dist = lDist; - } - else { - hit = rCut; - dist = rDist; - } - score = (distancePenalty = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)))) , spans[idx] + $wnd.Math.pow(dist, distancePenalty)); - if (score < bestScore) { - bestScore = score; - bestCut = hit; - bestCut.newIndex = idx; - } - if (!!rCut && idx == rCut.index_0) { - lCut = rCut; - rCut = $next_12(rCut); - } - } - if (bestCut) { - $add_3(improvedCuts, valueOf_4(bestCut.newIndex)); - bestCut.assigned = true; - $offset(bestCut); - } - } - $clinit_Collections(); - sort_4(improvedCuts.array, improvedCuts.array.length, null); - return improvedCuts; -} - -function $process_53(graph, progressMonitor){ - var cuts, gs, icic; - $begin(progressMonitor, 'Breaking Point Insertion', 1); - gs = new GraphStats(graph); - switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { - case 2: - icic = new ICutIndexCalculator$ManualCutIndexCalculator; - case 0: - icic = new ARDCutIndexHeuristic; - break; - default:icic = new MSDCutIndexHeuristic; - } - cuts = icic.getCutIndexes(graph, gs); - $booleanValue(castToBoolean($getProperty(graph, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0))) && (cuts = $improveCuts(graph, cuts)); - if (!icic.guaranteeValid() && $hasProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0)) { - switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { - case 2: - cuts = validifyIndexesLookingBack_0(gs, cuts); - break; - case 1: - cuts = validifyIndexesGreedily(gs, cuts); - } - } - if (cuts.isEmpty()) { - $done_0(progressMonitor); - return; - } - $applyCuts(graph, cuts); - $done_0(progressMonitor); -} - -function BreakingPointInserter(){ -} - -defineClass(1479, 1, $intern_105, BreakingPointInserter); -_.process = function process_50(graph, progressMonitor){ - $process_53(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter', 1479); -function BreakingPointInserter$BPInfo(startDummy, endDummy, nodeStartEdge, startEndEdge, originalEdge){ - this.start_0 = startDummy; - this.end = endDummy; - this.nodeStartEdge = nodeStartEdge; - this.startEndEdge = startEndEdge; - this.originalEdge = originalEdge; -} - -function isEnd(n){ - var bpi; - bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - if (bpi) { - return bpi.end == n; - } - return false; -} - -function isStart(n){ - var bpi; - bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - if (bpi) { - return bpi.start_0 == n; - } - return false; -} - -defineClass(305, 1, {305:1}, BreakingPointInserter$BPInfo); -_.toString_0 = function toString_97(){ - var sb; - sb = new StringBuilder; - sb.string += 'BPInfo['; - sb.string += '\n\tstart='; - $append_10(sb, this.start_0); - sb.string += '\n\tend='; - $append_10(sb, this.end); - sb.string += '\n\tnodeStartEdge='; - $append_10(sb, this.nodeStartEdge); - sb.string += '\n\tstartEndEdge='; - $append_10(sb, this.startEndEdge); - sb.string += '\n\toriginalEdge='; - $append_10(sb, this.originalEdge); - sb.string += '\n\tstartInLayerDummy='; - $append_10(sb, this.startInLayerDummy); - sb.string += '\n\tstartInLayerEdge='; - $append_10(sb, this.startInLayerEdge); - sb.string += '\n\tendInLayerDummy='; - $append_10(sb, this.endInLayerDummy); - sb.string += '\n\tendInLayerEdge='; - $append_10(sb, this.endInLayerEdge); - return sb.string; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$BPInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/BPInfo', 305); -function $next_12(this$static){ - if (this$static.suc) { - return $selfOrNext(this$static.suc); - } - return null; -} - -function $offset(this$static){ - var offset; - if (!this$static.assigned) { - throw toJs(new IllegalStateException_0('Cannot offset an unassigned cut.')); - } - offset = this$static.newIndex - this$static.index_0; - this$static.index_0 += offset; - $offsetPrev(this$static, offset); - $offsetSuc(this$static, offset); -} - -function $offset_0(this$static, offset){ - this$static.index_0 += offset; -} - -function $offsetPrev(this$static, offset){ - if (!!this$static.prev && !this$static.prev.assigned) { - $offset_0(this$static.prev, offset); - $offsetPrev(this$static.prev, offset); - } -} - -function $offsetSuc(this$static, offset){ - if (!!this$static.suc && !this$static.suc.assigned) { - $offset_0(this$static.suc, offset); - $offsetSuc(this$static.suc, offset); - } -} - -function $selfOrNext(this$static){ - if (this$static.assigned) { - if (this$static.suc) { - return $selfOrNext(this$static.suc); - } - } - else { - return this$static; - } - return null; -} - -function BreakingPointInserter$Cut(index_0){ - this.index_0 = index_0; -} - -defineClass(652, 1, {652:1}, BreakingPointInserter$Cut); -_.assigned = false; -_.index_0 = 0; -_.newIndex = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$Cut_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/Cut', 652); -function $dropDummies(bpNode, inLayerDummy, forwards, force){ - var didsome, newLayer, nextOne, nextTwo, predOne, predTwo; - predOne = $nextLongEdgeDummy(bpNode, forwards); - predTwo = $nextLongEdgeDummy(inLayerDummy, forwards); - didsome = false; - while (!!predOne && !!predTwo) { - if (force || $isAdjacentOrSeparatedByBreakingpoints(predOne, predTwo, forwards)) { - nextOne = $nextLongEdgeDummy(predOne, forwards); - nextTwo = $nextLongEdgeDummy(predTwo, forwards); - $updateIndexesAfter(inLayerDummy); - $updateIndexesAfter(bpNode); - newLayer = predOne.layer; - joinAt(predOne, false); - joinAt(predTwo, false); - if (forwards) { - $setLayer(inLayerDummy, predTwo.id_0, newLayer); - inLayerDummy.id_0 = predTwo.id_0; - $setLayer(bpNode, predOne.id_0 + 1, newLayer); - bpNode.id_0 = predOne.id_0; - } - else { - $setLayer(bpNode, predOne.id_0, newLayer); - bpNode.id_0 = predOne.id_0; - $setLayer(inLayerDummy, predTwo.id_0 + 1, newLayer); - inLayerDummy.id_0 = predTwo.id_0; - } - $setLayer_0(predOne, null); - $setLayer_0(predTwo, null); - predOne = nextOne; - predTwo = nextTwo; - didsome = true; - } - else { - break; - } - } - return didsome; -} - -function $improveMultiCutIndexEdges(graph){ - var current, info, l, l$iterator, n, n$iterator, newInfo, next; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(newArrayList(l.nodes)); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (isStart(n)) { - info = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - if (!info.prev && !!info.next_0) { - current = info; - next = info.next_0; - while (next) { - $dropDummies(next.start_0, next.startInLayerDummy, false, true); - $updateIndexesAfter(current.end); - $updateIndexesAfter(next.start_0); - $updateIndexesAfter(next.startInLayerDummy); - $updateIndexesAfter(next.endInLayerDummy); - $setTarget_0(next.endInLayerEdge, current.endInLayerEdge.target); - $setTarget_0(current.endInLayerEdge, null); - $setLayer_0(current.end, null); - $setLayer_0(next.start_0, null); - $setLayer_0(next.startInLayerDummy, null); - $setLayer_0(next.endInLayerDummy, null); - newInfo = new BreakingPointInserter$BPInfo(current.start_0, next.end, current.nodeStartEdge, next.startEndEdge, next.originalEdge); - newInfo.startInLayerDummy = current.startInLayerDummy; - newInfo.startInLayerEdge = current.startInLayerEdge; - newInfo.endInLayerDummy = current.endInLayerDummy; - newInfo.endInLayerEdge = next.endInLayerEdge; - newInfo.prev = current.prev; - newInfo.next_0 = next.next_0; - $setProperty_0(current.start_0, BREAKING_POINT_INFO, newInfo); - $setProperty_0(next.end, BREAKING_POINT_INFO, newInfo); - next = next.next_0; - current = newInfo; - } - } - } - } - } -} - -function $improveUnneccesarilyLongEdges(graph, forwards){ - var bpInfo, bpNode, check, didsome, dummy, layer, layer$iterator, layers, n, n$iterator, nodes; - check = forwards?new BreakingPointProcessor$0methodref$isEnd$Type:new BreakingPointProcessor$1methodref$isStart$Type; - didsome = false; - do { - didsome = false; - layers = forwards?reverse_0(graph.layers):graph.layers; - for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { - layer = castTo(layer$iterator.next_1(), 29); - nodes = newArrayList(layer.nodes); - forwards || new Lists$RandomAccessReverseList(nodes); - for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (check.test_0(n)) { - bpNode = n; - bpInfo = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - dummy = forwards?bpInfo.endInLayerDummy:bpInfo.startInLayerDummy; - didsome = $dropDummies(bpNode, dummy, forwards, false); - } - } - } - } - while (didsome); -} - -function $isAdjacentOrSeparatedByBreakingpoints(dummy1, dummy2, forwards){ - var end, i, layer, node, start_0; - layer = dummy1.layer; - start_0 = forwards?dummy2:dummy1; - end = forwards?dummy1:dummy2; - for (i = start_0.id_0 + 1; i < end.id_0; ++i) { - node = castTo($get_11(layer.nodes, i), 10); - if (!(node.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT) || $isInLayerDummy(node))) { - return false; - } - } - return true; -} - -function $isInLayerDummy(node){ - var e, e$iterator; - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!$isSelfLoop(e) && node.layer == $getOther_1(e, node).layer) { - return true; - } - } - } - return false; -} - -function $nextLongEdgeDummy(start_0, forwards){ - var e, e$iterator, edges, other; - edges = forwards?$getOutgoingEdges(start_0):$getIncomingEdges(start_0); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - other = $getOther_1(e, start_0); - if (other.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && other.layer != start_0.layer) { - return other; - } - } - return null; -} - -function $performWrapping(graph){ - var aNode, bpi, dummyEdges, e, e$iterator, idx, it, l, layer, layerIt, layers, n, n$iterator, n$iterator0, newLayer, nodesToMove, offset, reverse, startInLayerEdge; - layers = graph.layers; - layerIt = new AbstractList$ListIteratorImpl(layers, 0); - $add_1(layerIt, new Layer(graph)); - reverse = false; - idx = 1; - while (layerIt.i < layerIt.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); - newLayer = (checkCriticalElementIndex(idx, layers.array.length) , castTo(layers.array[idx], 29)); - nodesToMove = newArrayList(layer.nodes); - offset = nodesToMove.array.length; - for (n$iterator0 = new ArrayList$1(nodesToMove); n$iterator0.i < n$iterator0.this$01.array.length;) { - n = castTo($next_7(n$iterator0), 10); - $setLayer_0(n, newLayer); - } - if (reverse) { - for (n$iterator = $listIterator_1(new Lists$RandomAccessReverseList(nodesToMove), 0); n$iterator.val$forwardIterator2.hasPrevious();) { - n = castTo($next_3(n$iterator), 10); - for (e$iterator = new ArrayList$1(newArrayList($getIncomingEdges(n))); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $reverse_0(e, true); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - dummyEdges = insertDummies(graph, e, offset); - bpi = castTo($getProperty(n, BREAKING_POINT_INFO), 305); - startInLayerEdge = castTo($get_11(dummyEdges, dummyEdges.array.length - 1), 17); - bpi.startInLayerDummy = startInLayerEdge.source.owner; - bpi.startInLayerEdge = startInLayerEdge; - bpi.endInLayerDummy = e.target.owner; - bpi.endInLayerEdge = e; - } - } - reverse = false; - } - else { - if (nodesToMove.array.length != 0) { - aNode = (checkCriticalElementIndex(0, nodesToMove.array.length) , castTo(nodesToMove.array[0], 10)); - if (aNode.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT)) { - reverse = true; - idx = -1; - } - } - } - ++idx; - } - it = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (it.i < it.this$01_0.size_1()) { - l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); - l.nodes.array.length == 0 && $remove_8(it); - } -} - -function $process_54(graph, progressMonitor){ - var index_0, l, l$iterator, n, n$iterator; - $begin(progressMonitor, 'Breaking Point Processor', 1); - $performWrapping(graph); - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0))))) { - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - index_0 = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = index_0++; - } - } - $improveMultiCutIndexEdges(graph); - $improveUnneccesarilyLongEdges(graph, true); - $improveUnneccesarilyLongEdges(graph, false); - } - $done_0(progressMonitor); -} - -function $updateIndexesAfter(node){ - var i; - for (i = node.id_0 + 1; i < node.layer.nodes.array.length; ++i) { - --castTo($get_11(node.layer.nodes, i), 10).id_0; - } -} - -function BreakingPointProcessor(){ -} - -defineClass(1480, 1, $intern_105, BreakingPointProcessor); -_.process = function process_51(graph, progressMonitor){ - $process_54(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor', 1480); -function BreakingPointProcessor$0methodref$isEnd$Type(){ -} - -defineClass(1481, 1, $intern_39, BreakingPointProcessor$0methodref$isEnd$Type); -_.test_0 = function test_83(arg0){ - return isEnd(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$0methodref$isEnd$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/0methodref$isEnd$Type', 1481); -function BreakingPointProcessor$1methodref$isStart$Type(){ -} - -defineClass(1482, 1, $intern_39, BreakingPointProcessor$1methodref$isStart$Type); -_.test_0 = function test_84(arg0){ - return isStart(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$1methodref$isStart$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/1methodref$isStart$Type', 1482); -function $addNullSafe(container, toAdd){ - if (!toAdd) { - return false; - } - return $addAll(container, toAdd); -} - -function $process_55(this$static, graph, progressMonitor){ - var bpi, l, l$iterator, node, node$iterator; - $begin(progressMonitor, 'Breaking Point Removing', 1); - this$static.edgeRouting = castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (node$iterator = new ArrayList$1(newArrayList(l.nodes)); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (isEnd(node)) { - bpi = castTo($getProperty(node, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - !bpi.next_0 && $remove_30(this$static, bpi); - } - } - } - $done_0(progressMonitor); -} - -function $remove_30(this$static, bpi){ - var e1, e2, e3, joinedEdges, joinedSegments, junctionPointsOne, junctionPointsThree, junctionPointsTwo, newBends, newJunctionPoints, s1, s2, s3; - newBends = new KVectorChain; - switch (this$static.edgeRouting.ordinal) { - case 3: - s1 = castTo($getProperty(bpi.nodeStartEdge, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); - s2 = castTo($getProperty(bpi.startEndEdge, SPLINE_ROUTE_START), 15); - s3 = castTo($getProperty(bpi.originalEdge, SPLINE_ROUTE_START), 15); - e1 = castTo($getProperty(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN), 15); - e2 = castTo($getProperty(bpi.startEndEdge, SPLINE_EDGE_CHAIN), 15); - e3 = castTo($getProperty(bpi.originalEdge, SPLINE_EDGE_CHAIN), 15); - joinedSegments = new ArrayList; - $addAll_2(joinedSegments, s1); - s2.forEach_0(new BreakingPointRemover$lambda$0$Type); - $addAll_2(joinedSegments, instanceOf(s2, 152)?$reverse(castTo(s2, 152)):instanceOf(s2, 131)?castTo(s2, 131).forwardList:instanceOf(s2, 54)?new Lists$RandomAccessReverseList(s2):new Lists$ReverseList(s2)); - $addAll_2(joinedSegments, s3); - joinedEdges = new ArrayList; - $addAll_2(joinedEdges, e1); - $addAll_2(joinedEdges, instanceOf(e2, 152)?$reverse(castTo(e2, 152)):instanceOf(e2, 131)?castTo(e2, 131).forwardList:instanceOf(e2, 54)?new Lists$RandomAccessReverseList(e2):new Lists$ReverseList(e2)); - $addAll_2(joinedEdges, e3); - $setProperty_0(bpi.originalEdge, SPLINE_ROUTE_START, joinedSegments); - $setProperty_0(bpi.originalEdge, SPLINE_EDGE_CHAIN, joinedEdges); - $setProperty_0(bpi.originalEdge, SPLINE_SURVIVING_EDGE, bpi.originalEdge); - $setProperty_0(bpi.nodeStartEdge, SPLINE_ROUTE_START, null); - $setProperty_0(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN, null); - $setProperty_0(bpi.startEndEdge, SPLINE_ROUTE_START, null); - $setProperty_0(bpi.startEndEdge, SPLINE_EDGE_CHAIN, null); - break; - case 1: - $addAll(newBends, bpi.nodeStartEdge.bendPoints); - $add_7(newBends, bpi.start_0.pos); - $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); - $add_7(newBends, bpi.end.pos); - $addAll(newBends, bpi.originalEdge.bendPoints); - break; - default:$addAll(newBends, bpi.nodeStartEdge.bendPoints); - $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); - $addAll(newBends, bpi.originalEdge.bendPoints); - } - $reset_0(bpi.originalEdge.bendPoints); - $addAll(bpi.originalEdge.bendPoints, newBends); - $setSource_0(bpi.originalEdge, bpi.nodeStartEdge.source); - junctionPointsOne = castTo($getProperty(bpi.nodeStartEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - junctionPointsTwo = castTo($getProperty(bpi.startEndEdge, JUNCTION_POINTS), 74); - junctionPointsThree = castTo($getProperty(bpi.originalEdge, JUNCTION_POINTS), 74); - if (!!junctionPointsOne || !!junctionPointsTwo || !!junctionPointsThree) { - newJunctionPoints = new KVectorChain; - $addNullSafe(newJunctionPoints, junctionPointsThree); - $addNullSafe(newJunctionPoints, junctionPointsTwo); - $addNullSafe(newJunctionPoints, junctionPointsOne); - $setProperty_0(bpi.originalEdge, JUNCTION_POINTS, newJunctionPoints); - } - $setSource_0(bpi.startEndEdge, null); - $setTarget_0(bpi.startEndEdge, null); - $setSource_0(bpi.nodeStartEdge, null); - $setTarget_0(bpi.nodeStartEdge, null); - $setLayer_0(bpi.end, null); - $setLayer_0(bpi.start_0, null); - !!bpi.prev && $remove_30(this$static, bpi.prev); -} - -function BreakingPointRemover(){ -} - -defineClass(1483, 1, $intern_105, BreakingPointRemover); -_.process = function process_52(graph, progressMonitor){ - $process_55(this, castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover', 1483); -function BreakingPointRemover$lambda$0$Type(){ -} - -defineClass(1484, 1, $intern_19, BreakingPointRemover$lambda$0$Type); -_.accept = function accept_113(arg0){ - castTo(arg0, 128).inverseOrder = true; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover/lambda$0$Type', 1484); -function insertDummies(layeredGraph, originalEdge, offsetFirstInLayerDummy){ - var additionalSpacing, createdEdges, dummyEdge, dummyInput, dummyNode, dummyOutput, edge, edgeNodeSpacing, i, is, nextLayer, portPos, src_0, srcIndex, targetPort, tgt, tgtIndex, thickness; - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE)))); - additionalSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, WRAPPING_ADDITIONAL_EDGE_SPACING_0))); - is = new IndividualSpacings; - $setProperty_0(is, SPACING_EDGE_NODE, edgeNodeSpacing + additionalSpacing); - edge = originalEdge; - targetPort = edge.target; - src_0 = edge.source.owner; - tgt = edge.target.owner; - srcIndex = $getIndex_0(src_0.layer); - tgtIndex = $getIndex_0(tgt.layer); - createdEdges = new ArrayList; - for (i = srcIndex; i <= tgtIndex; i++) { - dummyNode = new LNode(layeredGraph); - $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummyNode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(dummyNode, SPACING_INDIVIDUAL, is); - nextLayer = castTo($get_11(layeredGraph.layers, i), 29); - i == srcIndex?$setLayer(dummyNode, nextLayer.nodes.array.length - offsetFirstInLayerDummy, nextLayer):$setLayer_0(dummyNode, nextLayer); - thickness = $doubleValue(castToDouble($getProperty(edge, EDGE_THICKNESS_0))); - if (thickness < 0) { - thickness = 0; - $setProperty_0(edge, EDGE_THICKNESS_0, thickness); - } - dummyNode.size_0.y_0 = thickness; - portPos = $wnd.Math.floor(thickness / 2); - dummyInput = new LPort; - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInput, dummyNode); - dummyInput.pos.y_0 = portPos; - dummyOutput = new LPort; - $setSide(dummyOutput, EAST_2); - $setNode(dummyOutput, dummyNode); - dummyOutput.pos.y_0 = portPos; - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, targetPort); - setDummyProperties(dummyNode, edge, dummyEdge); - createdEdges.array[createdEdges.array.length] = dummyEdge; - edge = dummyEdge; - } - return createdEdges; -} - -function setDummyProperties(dummy, inEdge, outEdge){ - var inEdgeSourceNode; - inEdgeSourceNode = inEdge.source.owner; - if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummy, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); - } - else { - $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); - $setProperty_0(dummy, LONG_EDGE_TARGET, outEdge.target); - } -} - -function $determineHeight(this$static, fun){ - return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$6$Type(this$static)), fun)))); -} - -function $determineLayerHeight(this$static, layer){ - var inc, inc$iterator, lH, n, n$iterator, origin_0, src_0; - lH = 0; - for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - lH += n.size_0.y_0 + n.margin.bottom + n.margin.top_0 + this$static.inLayerSpacing; - for (inc$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inc$iterator);) { - inc = castTo($next_0(inc$iterator), 17); - if (inc.source.owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - src_0 = inc.source.owner; - origin_0 = castTo($getProperty(src_0, ($clinit_InternalProperties_1() , ORIGIN_0)), 10); - lH += origin_0.size_0.y_0 + origin_0.margin.bottom + origin_0.margin.top_0; - } - } - } - return lH; -} - -function $determineLayerWidth(this$static, l){ - var maxW, n, n$iterator, nW; - maxW = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - nW = n.size_0.x_0 + n.margin.right + n.margin.left + this$static.spacing; - maxW = $wnd.Math.max(maxW, nW); - } - return maxW; -} - -function $determineWidth(this$static, fun){ - return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$2$Type(this$static)), fun)))); -} - -function $initCutAllowed(this$static){ - var f, f$iterator, forbidden, i, layer, layerIt; - if (this$static.cutsAllowed != null) { - return; - } - this$static.cutsAllowed = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.layers.array.length, 16, 1); - this$static.cutsAllowed[0] = false; - if ($hasProperty(this$static.graph_0, ($clinit_LayeredOptions() , WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0))) { - forbidden = castTo($getProperty(this$static.graph_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0), 15); - for (f$iterator = forbidden.iterator_0(); f$iterator.hasNext_0();) { - f = castTo(f$iterator.next_1(), 19).value_0; - f > 0 && f < this$static.cutsAllowed.length && (this$static.cutsAllowed[f] = false); - } - } - else { - layerIt = new ArrayList$1(this$static.graph_0.layers); - layerIt.i < layerIt.this$01.array.length && $next_7(layerIt); - i = 1; - while (layerIt.i < layerIt.this$01.array.length) { - layer = castTo($next_7(layerIt), 29); - this$static.cutsAllowed[i++] = $isCutAllowed_0(layer); - } - } -} - -function $initWidthsAndHeights(this$static){ - var i, l, n; - n = this$static.longestPath; - this$static.widths = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); - this$static.heights = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); - for (i = 0; i < n; i++) { - l = castTo($get_11(this$static.graph_0.layers, i), 29); - this$static.widths[i] = $determineLayerWidth(this$static, l); - this$static.heights[i] = $determineLayerHeight(this$static, l); - } -} - -function $isCutAllowed(this$static, layerIndex){ - this$static.cutsAllowed == null && $initCutAllowed(this$static); - return this$static.cutsAllowed[layerIndex]; -} - -function $isCutAllowed_0(layer){ - var cutAllowed, e, e$iterator, n1, n2, src_0, tgt, tgt$iterator; - cutAllowed = true; - n1 = null; - n2 = null; - check: for (tgt$iterator = new ArrayList$1(layer.nodes); tgt$iterator.i < tgt$iterator.this$01.array.length;) { - tgt = castTo($next_7(tgt$iterator), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(tgt).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!!n1 && n1 != tgt) { - cutAllowed = false; - break check; - } - n1 = tgt; - src_0 = e.source.owner; - if (!!n2 && n2 != src_0) { - cutAllowed = false; - break check; - } - n2 = src_0; - } - } - return cutAllowed; -} - -function GraphStats(graph){ - var aspectRatio, correction, dir_0; - this.graph_0 = graph; - dir_0 = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); - aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); - correction = $doubleValue(castToDouble($getProperty(graph, WRAPPING_CORRECTION_FACTOR_0))); - dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6 || dir_0 == UNDEFINED_2?(this.dar = aspectRatio * correction):(this.dar = 1 / (aspectRatio * correction)); - this.spacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); - this.inLayerSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_0))); - this.longestPath = graph.layers.array.length; -} - -function lambda$1_16(a_0, b_1){ - return (checkCriticalNotNull(a_0) , a_0) + (checkCriticalNotNull(b_1) , b_1); -} - -defineClass(797, 1, {}, GraphStats); -_.dar = 0; -_.inLayerSpacing = 0; -_.longestPath = 0; -_.spacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats', 797); -function GraphStats$0methodref$max$Type(){ -} - -defineClass(798, 1, {}, GraphStats$0methodref$max$Type); -_.apply_3 = function apply_130(arg0, arg1){ - return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$0methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/0methodref$max$Type', 798); -function GraphStats$2methodref$max$Type(){ -} - -defineClass(799, 1, {}, GraphStats$2methodref$max$Type); -_.apply_3 = function apply_131(arg0, arg1){ - return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$2methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/2methodref$max$Type', 799); -function GraphStats$lambda$1$Type(){ -} - -defineClass(1660, 1, {}, GraphStats$lambda$1$Type); -_.apply_3 = function apply_132(arg0, arg1){ - return lambda$1_16(castToDouble(arg0), castToDouble(arg1)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$1$Type', 1660); -function GraphStats$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1661, 1, {}, GraphStats$lambda$2$Type); -_.apply_0 = function apply_133(arg0){ - return $determineLayerWidth(this.$$outer_0, castTo(arg0, 29)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$2$Type', 1661); -function GraphStats$lambda$6$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1662, 1, {}, GraphStats$lambda$6$Type); -_.apply_0 = function apply_134(arg0){ - return $determineLayerHeight(this.$$outer_0, castTo(arg0, 29)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$6$Type', 1662); -function ICutIndexCalculator$ManualCutIndexCalculator(){ -} - -defineClass(800, 1, {}, ICutIndexCalculator$ManualCutIndexCalculator); -_.getCutIndexes = function getCutIndexes_0(graph, gs){ - var cuts; - cuts = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_CUTS_0)), 15); - return cuts?cuts:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); -} -; -_.guaranteeValid = function guaranteeValid_0(){ - return false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ICutIndexCalculator$ManualCutIndexCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ICutIndexCalculator/ManualCutIndexCalculator', 800); -function MSDCutIndexHeuristic(){ -} - -defineClass(802, 1, {}, MSDCutIndexHeuristic); -_.getCutIndexes = function getCutIndexes_1(graph, gs){ - var bestCuts, bestMaxScale, cutCnt, cuts, freedom, height, heights, i, index_0, lastCutWidth, m, maxScale, rowHeightMax, rowSum, sumSoFar, total, width_0, widthAtIndex, widths; - widths = (gs.widths == null && $initWidthsAndHeights(gs) , gs.widths); - heights = (gs.heights == null && $initWidthsAndHeights(gs) , gs.heights); - widthAtIndex = initUnidimensionalArray(D_classLit, $intern_65, 25, widths.length, 15, 1); - widthAtIndex[0] = widths[0]; - total = widths[0]; - for (i = 1; i < widths.length; i++) { - widthAtIndex[i] = widthAtIndex[i - 1] + widths[i]; - total += widths[i]; - } - cutCnt = getChunkCount(gs) - 1; - freedom = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_MSD_FREEDOM_0)), 19).value_0; - bestMaxScale = $intern_60; - bestCuts = new ArrayList; - for (m = $wnd.Math.max(0, cutCnt - freedom); m <= $wnd.Math.min(gs.longestPath - 1, cutCnt + freedom); m++) { - rowSum = total / (m + 1); - sumSoFar = 0; - index_0 = 1; - cuts = new ArrayList; - width_0 = $intern_60; - lastCutWidth = 0; - height = 0; - rowHeightMax = heights[0]; - if (m == 0) { - width_0 = total; - height = (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight)); - } - else { - while (index_0 < gs.longestPath) { - if (widthAtIndex[index_0 - 1] - sumSoFar >= rowSum) { - $add_3(cuts, valueOf_4(index_0)); - width_0 = $wnd.Math.max(width_0, widthAtIndex[index_0 - 1] - lastCutWidth); - height += rowHeightMax; - sumSoFar += widthAtIndex[index_0 - 1] - sumSoFar; - lastCutWidth = widthAtIndex[index_0 - 1]; - rowHeightMax = heights[index_0]; - } - rowHeightMax = $wnd.Math.max(rowHeightMax, heights[index_0]); - ++index_0; - } - height += rowHeightMax; - } - maxScale = $wnd.Math.min(1 / width_0, 1 / gs.dar / height); - if (maxScale > bestMaxScale) { - bestMaxScale = maxScale; - bestCuts = cuts; - } - } - return bestCuts; -} -; -_.guaranteeValid = function guaranteeValid_1(){ - return false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_MSDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'MSDCutIndexHeuristic', 802); -function $performCuts(graph, gs, cuts){ - var cutIt, e, e$iterator, incEdges, index_0, it, l, n, n$iterator, newIndex, newLayer, nextCut, nodesToMove, oldLayer; - if (cuts.isEmpty()) { - return; - } - index_0 = 0; - newIndex = 0; - cutIt = cuts.iterator_0(); - nextCut = castTo(cutIt.next_1(), 19).value_0; - while (index_0 < gs.longestPath) { - if (index_0 == nextCut) { - newIndex = 0; - cutIt.hasNext_0()?(nextCut = castTo(cutIt.next_1(), 19).value_0):(nextCut = gs.longestPath + 1); - } - if (index_0 != newIndex) { - oldLayer = castTo($get_11(graph.layers, index_0), 29); - newLayer = castTo($get_11(graph.layers, newIndex), 29); - nodesToMove = newArrayList(oldLayer.nodes); - for (n$iterator = new ArrayList$1(nodesToMove); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - $setLayer(n, newLayer.nodes.array.length, newLayer); - if (newIndex == 0) { - incEdges = newArrayList($getIncomingEdges(n)); - for (e$iterator = new ArrayList$1(incEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $reverse_0(e, true); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - insertDummies(graph, e, 1); - } - } - } - } - ++newIndex; - ++index_0; - } - it = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (it.i < it.this$01_0.size_1()) { - l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); - l.nodes.array.length == 0 && $remove_8(it); - } -} - -function $process_56(graph, progressMonitor){ - var currentAR, cuts, gs, icic, sumWidth; - $begin(progressMonitor, 'Path-Like Graph Wrapping', 1); - if (graph.layers.array.length == 0) { - $done_0(progressMonitor); - return; - } - gs = new GraphStats(graph); - sumWidth = (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth) * gs.longestPath); - currentAR = sumWidth / (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth)); - if (gs.dar > currentAR) { - $done_0(progressMonitor); - return; - } - switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { - case 2: - icic = new ICutIndexCalculator$ManualCutIndexCalculator; - break; - case 0: - icic = new ARDCutIndexHeuristic; - break; - default:icic = new MSDCutIndexHeuristic; - } - cuts = icic.getCutIndexes(graph, gs); - if (!icic.guaranteeValid()) { - switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { - case 2: - cuts = validifyIndexesLookingBack_0(gs, cuts); - break; - case 1: - cuts = validifyIndexesGreedily(gs, cuts); - } - } - $performCuts(graph, gs, cuts); - $done_0(progressMonitor); -} - -function SingleEdgeGraphWrapper(){ -} - -function validifyIndexesGreedily(gs, cuts){ - var cut, cutIt, offset, validCuts; - validCuts = new ArrayList; - offset = 0; - cutIt = cuts.iterator_0(); - while (cutIt.hasNext_0()) { - cut = valueOf_4(castTo(cutIt.next_1(), 19).value_0 + offset); - while (cut.value_0 < gs.longestPath && !$isCutAllowed(gs, cut.value_0)) { - cut = valueOf_4(cut.value_0 + 1); - ++offset; - } - if (cut.value_0 >= gs.longestPath) { - break; - } - validCuts.array[validCuts.array.length] = cut; - } - return validCuts; -} - -function validifyIndexesLookingBack(desiredCuts, validCuts){ - var cIdx, current, distHigher, distLower, finalCuts, iIdx, offset, select; - finalCuts = new ArrayList; - iIdx = 0; - cIdx = 0; - offset = 0; - while (iIdx < validCuts.array.length - 1 && cIdx < desiredCuts.size_1()) { - current = castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset; - while ((checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 < current) { - ++iIdx; - } - select = 0; - distLower = current - (checkCriticalElementIndex(iIdx, validCuts.array.length) , castTo(validCuts.array[iIdx], 19)).value_0; - distHigher = (checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 - current; - distLower > distHigher && ++select; - $add_3(finalCuts, (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19))); - offset += (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0 - current; - ++cIdx; - while (cIdx < desiredCuts.size_1() && castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset <= (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0) { - ++cIdx; - } - iIdx += 1 + select; - } - return finalCuts; -} - -function validifyIndexesLookingBack_0(gs, desiredCuts){ - var i, validCuts; - if (desiredCuts.isEmpty()) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - validCuts = new ArrayList; - $add_3(validCuts, valueOf_4($intern_42)); - for (i = 1; i < gs.longestPath; ++i) { - gs.cutsAllowed == null && $initCutAllowed(gs); - gs.cutsAllowed[i] && $add_3(validCuts, valueOf_4(i)); - } - if (validCuts.array.length == 1) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - $add_3(validCuts, valueOf_4($intern_0)); - return validifyIndexesLookingBack(desiredCuts, validCuts); -} - -defineClass(1617, 1, $intern_105, SingleEdgeGraphWrapper); -_.process = function process_53(graph, progressMonitor){ - $process_56(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_SingleEdgeGraphWrapper_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'SingleEdgeGraphWrapper', 1617); -function $clinit_CenterEdgeLabelPlacementStrategy(){ - $clinit_CenterEdgeLabelPlacementStrategy = emptyMethod; - MEDIAN_LAYER = new CenterEdgeLabelPlacementStrategy('MEDIAN_LAYER', 0); - TAIL_LAYER = new CenterEdgeLabelPlacementStrategy('TAIL_LAYER', 1); - HEAD_LAYER = new CenterEdgeLabelPlacementStrategy('HEAD_LAYER', 2); - SPACE_EFFICIENT_LAYER = new CenterEdgeLabelPlacementStrategy('SPACE_EFFICIENT_LAYER', 3); - WIDEST_LAYER = new CenterEdgeLabelPlacementStrategy('WIDEST_LAYER', 4); - CENTER_LAYER = new CenterEdgeLabelPlacementStrategy('CENTER_LAYER', 5); -} - -function CenterEdgeLabelPlacementStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_38(name_0){ - $clinit_CenterEdgeLabelPlacementStrategy(); - return valueOf(($clinit_CenterEdgeLabelPlacementStrategy$Map() , $MAP_26), name_0); -} - -function values_44(){ - $clinit_CenterEdgeLabelPlacementStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]); -} - -defineClass(227, 22, {3:1, 35:1, 22:1, 227:1}, CenterEdgeLabelPlacementStrategy); -var CENTER_LAYER, HEAD_LAYER, MEDIAN_LAYER, SPACE_EFFICIENT_LAYER, TAIL_LAYER, WIDEST_LAYER; -var Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CenterEdgeLabelPlacementStrategy', 227, Ljava_lang_Enum_2_classLit, values_44, valueOf_38); -function $clinit_CenterEdgeLabelPlacementStrategy$Map(){ - $clinit_CenterEdgeLabelPlacementStrategy$Map = emptyMethod; - $MAP_26 = createValueOfMap(($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]))); -} - -var $MAP_26; -function $clinit_ConstraintCalculationStrategy(){ - $clinit_ConstraintCalculationStrategy = emptyMethod; - QUADRATIC = new ConstraintCalculationStrategy('QUADRATIC', 0); - SCANLINE = new ConstraintCalculationStrategy('SCANLINE', 1); -} - -function ConstraintCalculationStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_39(name_0){ - $clinit_ConstraintCalculationStrategy(); - return valueOf(($clinit_ConstraintCalculationStrategy$Map() , $MAP_27), name_0); -} - -function values_45(){ - $clinit_ConstraintCalculationStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]); -} - -defineClass(422, 22, {3:1, 35:1, 22:1, 422:1}, ConstraintCalculationStrategy); -var QUADRATIC, SCANLINE; -var Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ConstraintCalculationStrategy', 422, Ljava_lang_Enum_2_classLit, values_45, valueOf_39); -function $clinit_ConstraintCalculationStrategy$Map(){ - $clinit_ConstraintCalculationStrategy$Map = emptyMethod; - $MAP_27 = createValueOfMap(($clinit_ConstraintCalculationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]))); -} - -var $MAP_27; -function $clinit_CrossingMinimizationStrategy(){ - $clinit_CrossingMinimizationStrategy = emptyMethod; - LAYER_SWEEP = new CrossingMinimizationStrategy('LAYER_SWEEP', 0); - INTERACTIVE_1 = new CrossingMinimizationStrategy('INTERACTIVE', 1); - NONE_1 = new CrossingMinimizationStrategy('NONE', 2); -} - -function $create_3(this$static){ - switch (this$static.ordinal) { - case 0: - return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER)); - case 1: - return new InteractiveCrossingMinimizer; - case 2: - return new NoCrossingMinimizer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the crossing minimizer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CrossingMinimizationStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_40(name_0){ - $clinit_CrossingMinimizationStrategy(); - return valueOf(($clinit_CrossingMinimizationStrategy$Map() , $MAP_28), name_0); -} - -function values_46(){ - $clinit_CrossingMinimizationStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]); -} - -defineClass(314, 22, {3:1, 35:1, 22:1, 314:1, 246:1, 234:1}, CrossingMinimizationStrategy); -_.create_1 = function create_7(){ - return $create_3(this); -} -; -_.create_2 = function create_6(){ - return $create_3(this); -} -; -var INTERACTIVE_1, LAYER_SWEEP, NONE_1; -var Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CrossingMinimizationStrategy', 314, Ljava_lang_Enum_2_classLit, values_46, valueOf_40); -function $clinit_CrossingMinimizationStrategy$Map(){ - $clinit_CrossingMinimizationStrategy$Map = emptyMethod; - $MAP_28 = createValueOfMap(($clinit_CrossingMinimizationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]))); -} - -var $MAP_28; -function $clinit_CuttingStrategy(){ - $clinit_CuttingStrategy = emptyMethod; - ARD = new CuttingStrategy('ARD', 0); - MSD = new CuttingStrategy('MSD', 1); - MANUAL = new CuttingStrategy('MANUAL', 2); -} - -function CuttingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_41(name_0){ - $clinit_CuttingStrategy(); - return valueOf(($clinit_CuttingStrategy$Map() , $MAP_29), name_0); -} - -function values_47(){ - $clinit_CuttingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]); -} - -defineClass(337, 22, {3:1, 35:1, 22:1, 337:1}, CuttingStrategy); -var ARD, MANUAL, MSD; -var Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CuttingStrategy', 337, Ljava_lang_Enum_2_classLit, values_47, valueOf_41); -function $clinit_CuttingStrategy$Map(){ - $clinit_CuttingStrategy$Map = emptyMethod; - $MAP_29 = createValueOfMap(($clinit_CuttingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]))); -} - -var $MAP_29; -function $clinit_CycleBreakingStrategy(){ - $clinit_CycleBreakingStrategy = emptyMethod; - GREEDY = new CycleBreakingStrategy('GREEDY', 0); - DEPTH_FIRST = new CycleBreakingStrategy('DEPTH_FIRST', 1); - INTERACTIVE_2 = new CycleBreakingStrategy('INTERACTIVE', 2); - MODEL_ORDER = new CycleBreakingStrategy('MODEL_ORDER', 3); - GREEDY_MODEL_ORDER = new CycleBreakingStrategy('GREEDY_MODEL_ORDER', 4); -} - -function $create_4(this$static){ - switch (this$static.ordinal) { - case 0: - return new GreedyCycleBreaker; - case 1: - return new DepthFirstCycleBreaker; - case 2: - return new InteractiveCycleBreaker; - case 3: - return new ModelOrderCycleBreaker; - case 4: - return new GreedyModelOrderCycleBreaker; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the cycle breaker ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CycleBreakingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_42(name_0){ - $clinit_CycleBreakingStrategy(); - return valueOf(($clinit_CycleBreakingStrategy$Map() , $MAP_30), name_0); -} - -function values_48(){ - $clinit_CycleBreakingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]); -} - -defineClass(335, 22, {3:1, 35:1, 22:1, 335:1, 246:1, 234:1}, CycleBreakingStrategy); -_.create_1 = function create_9(){ - return $create_4(this); -} -; -_.create_2 = function create_8(){ - return $create_4(this); -} -; -var DEPTH_FIRST, GREEDY, GREEDY_MODEL_ORDER, INTERACTIVE_2, MODEL_ORDER; -var Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CycleBreakingStrategy', 335, Ljava_lang_Enum_2_classLit, values_48, valueOf_42); -function $clinit_CycleBreakingStrategy$Map(){ - $clinit_CycleBreakingStrategy$Map = emptyMethod; - $MAP_30 = createValueOfMap(($clinit_CycleBreakingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]))); -} - -var $MAP_30; -function $clinit_DirectionCongruency(){ - $clinit_DirectionCongruency = emptyMethod; - READING_DIRECTION = new DirectionCongruency('READING_DIRECTION', 0); - ROTATION = new DirectionCongruency('ROTATION', 1); -} - -function DirectionCongruency(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_43(name_0){ - $clinit_DirectionCongruency(); - return valueOf(($clinit_DirectionCongruency$Map() , $MAP_31), name_0); -} - -function values_49(){ - $clinit_DirectionCongruency(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]); -} - -defineClass(419, 22, {3:1, 35:1, 22:1, 419:1}, DirectionCongruency); -var READING_DIRECTION, ROTATION; -var Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'DirectionCongruency', 419, Ljava_lang_Enum_2_classLit, values_49, valueOf_43); -function $clinit_DirectionCongruency$Map(){ - $clinit_DirectionCongruency$Map = emptyMethod; - $MAP_31 = createValueOfMap(($clinit_DirectionCongruency() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]))); -} - -var $MAP_31; -function $clinit_EdgeConstraint(){ - $clinit_EdgeConstraint = emptyMethod; - NONE_2 = new EdgeConstraint('NONE', 0); - INCOMING_ONLY = new EdgeConstraint('INCOMING_ONLY', 1); - OUTGOING_ONLY = new EdgeConstraint('OUTGOING_ONLY', 2); -} - -function EdgeConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_44(name_0){ - $clinit_EdgeConstraint(); - return valueOf(($clinit_EdgeConstraint$Map() , $MAP_32), name_0); -} - -function values_50(){ - $clinit_EdgeConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]); -} - -defineClass(450, 22, {3:1, 35:1, 22:1, 450:1}, EdgeConstraint); -var INCOMING_ONLY, NONE_2, OUTGOING_ONLY; -var Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeConstraint', 450, Ljava_lang_Enum_2_classLit, values_50, valueOf_44); -function $clinit_EdgeConstraint$Map(){ - $clinit_EdgeConstraint$Map = emptyMethod; - $MAP_32 = createValueOfMap(($clinit_EdgeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]))); -} - -var $MAP_32; -function $clinit_EdgeLabelSideSelection(){ - $clinit_EdgeLabelSideSelection = emptyMethod; - ALWAYS_UP = new EdgeLabelSideSelection('ALWAYS_UP', 0); - ALWAYS_DOWN = new EdgeLabelSideSelection('ALWAYS_DOWN', 1); - DIRECTION_UP = new EdgeLabelSideSelection('DIRECTION_UP', 2); - DIRECTION_DOWN = new EdgeLabelSideSelection('DIRECTION_DOWN', 3); - SMART_UP = new EdgeLabelSideSelection('SMART_UP', 4); - SMART_DOWN = new EdgeLabelSideSelection('SMART_DOWN', 5); -} - -function $transpose_2(this$static){ - switch (this$static.ordinal) { - case 0: - return ALWAYS_DOWN; - case 1: - return ALWAYS_UP; - case 2: - return DIRECTION_DOWN; - case 3: - return DIRECTION_UP; - case 4: - return SMART_DOWN; - case 5: - return SMART_UP; - default:return null; - } -} - -function EdgeLabelSideSelection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_45(name_0){ - $clinit_EdgeLabelSideSelection(); - return valueOf(($clinit_EdgeLabelSideSelection$Map() , $MAP_33), name_0); -} - -function values_51(){ - $clinit_EdgeLabelSideSelection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]); -} - -defineClass(276, 22, {3:1, 35:1, 22:1, 276:1}, EdgeLabelSideSelection); -var ALWAYS_DOWN, ALWAYS_UP, DIRECTION_DOWN, DIRECTION_UP, SMART_DOWN, SMART_UP; -var Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeLabelSideSelection', 276, Ljava_lang_Enum_2_classLit, values_51, valueOf_45); -function $clinit_EdgeLabelSideSelection$Map(){ - $clinit_EdgeLabelSideSelection$Map = emptyMethod; - $MAP_33 = createValueOfMap(($clinit_EdgeLabelSideSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]))); -} - -var $MAP_33; -function $clinit_EdgeStraighteningStrategy(){ - $clinit_EdgeStraighteningStrategy = emptyMethod; - NONE_3 = new EdgeStraighteningStrategy('NONE', 0); - IMPROVE_STRAIGHTNESS = new EdgeStraighteningStrategy('IMPROVE_STRAIGHTNESS', 1); -} - -function EdgeStraighteningStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_46(name_0){ - $clinit_EdgeStraighteningStrategy(); - return valueOf(($clinit_EdgeStraighteningStrategy$Map() , $MAP_34), name_0); -} - -function values_52(){ - $clinit_EdgeStraighteningStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]); -} - -defineClass(479, 22, {3:1, 35:1, 22:1, 479:1}, EdgeStraighteningStrategy); -var IMPROVE_STRAIGHTNESS, NONE_3; -var Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeStraighteningStrategy', 479, Ljava_lang_Enum_2_classLit, values_52, valueOf_46); -function $clinit_EdgeStraighteningStrategy$Map(){ - $clinit_EdgeStraighteningStrategy$Map = emptyMethod; - $MAP_34 = createValueOfMap(($clinit_EdgeStraighteningStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]))); -} - -var $MAP_34; -function $clinit_FixedAlignment(){ - $clinit_FixedAlignment = emptyMethod; - NONE_4 = new FixedAlignment('NONE', 0); - LEFTUP = new FixedAlignment('LEFTUP', 1); - RIGHTUP = new FixedAlignment('RIGHTUP', 2); - LEFTDOWN = new FixedAlignment('LEFTDOWN', 3); - RIGHTDOWN = new FixedAlignment('RIGHTDOWN', 4); - BALANCED = new FixedAlignment('BALANCED', 5); -} - -function FixedAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_47(name_0){ - $clinit_FixedAlignment(); - return valueOf(($clinit_FixedAlignment$Map() , $MAP_35), name_0); -} - -function values_53(){ - $clinit_FixedAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]); -} - -defineClass(274, 22, {3:1, 35:1, 22:1, 274:1}, FixedAlignment); -var BALANCED, LEFTDOWN, LEFTUP, NONE_4, RIGHTDOWN, RIGHTUP; -var Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'FixedAlignment', 274, Ljava_lang_Enum_2_classLit, values_53, valueOf_47); -function $clinit_FixedAlignment$Map(){ - $clinit_FixedAlignment$Map = emptyMethod; - $MAP_35 = createValueOfMap(($clinit_FixedAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]))); -} - -var $MAP_35; -function $clinit_GraphCompactionStrategy(){ - $clinit_GraphCompactionStrategy = emptyMethod; - NONE_5 = new GraphCompactionStrategy('NONE', 0); - LEFT_2 = new GraphCompactionStrategy('LEFT', 1); - RIGHT_2 = new GraphCompactionStrategy('RIGHT', 2); - LEFT_RIGHT_CONSTRAINT_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONSTRAINT_LOCKING', 3); - LEFT_RIGHT_CONNECTION_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONNECTION_LOCKING', 4); - EDGE_LENGTH = new GraphCompactionStrategy('EDGE_LENGTH', 5); -} - -function GraphCompactionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_48(name_0){ - $clinit_GraphCompactionStrategy(); - return valueOf(($clinit_GraphCompactionStrategy$Map() , $MAP_36), name_0); -} - -function values_54(){ - $clinit_GraphCompactionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]); -} - -defineClass(275, 22, {3:1, 35:1, 22:1, 275:1}, GraphCompactionStrategy); -var EDGE_LENGTH, LEFT_2, LEFT_RIGHT_CONNECTION_LOCKING, LEFT_RIGHT_CONSTRAINT_LOCKING, NONE_5, RIGHT_2; -var Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphCompactionStrategy', 275, Ljava_lang_Enum_2_classLit, values_54, valueOf_48); -function $clinit_GraphCompactionStrategy$Map(){ - $clinit_GraphCompactionStrategy$Map = emptyMethod; - $MAP_36 = createValueOfMap(($clinit_GraphCompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]))); -} - -var $MAP_36; -function $clinit_GraphProperties(){ - $clinit_GraphProperties = emptyMethod; - COMMENTS = new GraphProperties('COMMENTS', 0); - EXTERNAL_PORTS = new GraphProperties('EXTERNAL_PORTS', 1); - HYPEREDGES = new GraphProperties('HYPEREDGES', 2); - HYPERNODES = new GraphProperties('HYPERNODES', 3); - NON_FREE_PORTS = new GraphProperties('NON_FREE_PORTS', 4); - NORTH_SOUTH_PORTS = new GraphProperties('NORTH_SOUTH_PORTS', 5); - SELF_LOOPS = new GraphProperties('SELF_LOOPS', 6); - CENTER_LABELS = new GraphProperties('CENTER_LABELS', 7); - END_LABELS = new GraphProperties('END_LABELS', 8); - PARTITIONS = new GraphProperties('PARTITIONS', 9); -} - -function GraphProperties(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_49(name_0){ - $clinit_GraphProperties(); - return valueOf(($clinit_GraphProperties$Map() , $MAP_37), name_0); -} - -function values_55(){ - $clinit_GraphProperties(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]); -} - -defineClass(256, 22, {3:1, 35:1, 22:1, 256:1}, GraphProperties); -var CENTER_LABELS, COMMENTS, END_LABELS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, PARTITIONS, SELF_LOOPS; -var Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphProperties', 256, Ljava_lang_Enum_2_classLit, values_55, valueOf_49); -function $clinit_GraphProperties$Map(){ - $clinit_GraphProperties$Map = emptyMethod; - $MAP_37 = createValueOfMap(($clinit_GraphProperties() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]))); -} - -var $MAP_37; -function $clinit_GreedySwitchType(){ - $clinit_GreedySwitchType = emptyMethod; - ONE_SIDED = new GreedySwitchType('ONE_SIDED', 0); - TWO_SIDED = new GreedySwitchType('TWO_SIDED', 1); - OFF = new GreedySwitchType('OFF', 2); -} - -function GreedySwitchType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_50(name_0){ - $clinit_GreedySwitchType(); - return valueOf(($clinit_GreedySwitchType$Map() , $MAP_38), name_0); -} - -function values_56(){ - $clinit_GreedySwitchType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]); -} - -defineClass(292, 22, {3:1, 35:1, 22:1, 292:1}, GreedySwitchType); -var OFF, ONE_SIDED, TWO_SIDED; -var Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GreedySwitchType', 292, Ljava_lang_Enum_2_classLit, values_56, valueOf_50); -function $clinit_GreedySwitchType$Map(){ - $clinit_GreedySwitchType$Map = emptyMethod; - $MAP_38 = createValueOfMap(($clinit_GreedySwitchType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]))); -} - -var $MAP_38; -function $clinit_InLayerConstraint(){ - $clinit_InLayerConstraint = emptyMethod; - NONE_6 = new InLayerConstraint('NONE', 0); - TOP_1 = new InLayerConstraint('TOP', 1); - BOTTOM_0 = new InLayerConstraint('BOTTOM', 2); -} - -function InLayerConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_51(name_0){ - $clinit_InLayerConstraint(); - return valueOf(($clinit_InLayerConstraint$Map() , $MAP_39), name_0); -} - -function values_57(){ - $clinit_InLayerConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]); -} - -defineClass(303, 22, {3:1, 35:1, 22:1, 303:1}, InLayerConstraint); -var BOTTOM_0, NONE_6, TOP_1; -var Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InLayerConstraint', 303, Ljava_lang_Enum_2_classLit, values_57, valueOf_51); -function $clinit_InLayerConstraint$Map(){ - $clinit_InLayerConstraint$Map = emptyMethod; - $MAP_39 = createValueOfMap(($clinit_InLayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]))); -} - -var $MAP_39; -function $clinit_InteractiveReferencePoint(){ - $clinit_InteractiveReferencePoint = emptyMethod; - CENTER_3 = new InteractiveReferencePoint('CENTER', 0); - TOP_LEFT = new InteractiveReferencePoint('TOP_LEFT', 1); -} - -function InteractiveReferencePoint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_52(name_0){ - $clinit_InteractiveReferencePoint(); - return valueOf(($clinit_InteractiveReferencePoint$Map() , $MAP_40), name_0); -} - -function values_58(){ - $clinit_InteractiveReferencePoint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]); -} - -defineClass(420, 22, {3:1, 35:1, 22:1, 420:1}, InteractiveReferencePoint); -var CENTER_3, TOP_LEFT; -var Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InteractiveReferencePoint', 420, Ljava_lang_Enum_2_classLit, values_58, valueOf_52); -function $clinit_InteractiveReferencePoint$Map(){ - $clinit_InteractiveReferencePoint$Map = emptyMethod; - $MAP_40 = createValueOfMap(($clinit_InteractiveReferencePoint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]))); -} - -var $MAP_40; -function $clinit_InternalProperties_1(){ - $clinit_InternalProperties_1 = emptyMethod; - var all, all0; - ORIGIN_0 = new Property('origin'); - COORDINATE_SYSTEM_ORIGIN = new Property('coordinateOrigin'); - PROCESSORS = new Property('processors'); - COMPOUND_NODE = new Property_0('compoundNode', ($clinit_Boolean() , false)); - INSIDE_CONNECTIONS = new Property_0('insideConnections', false); - ORIGINAL_BENDPOINTS = new Property('originalBendpoints'); - ORIGINAL_DUMMY_NODE_POSITION = new Property('originalDummyNodePosition'); - ORIGINAL_LABEL_EDGE = new Property('originalLabelEdge'); - REPRESENTED_LABELS = new Property('representedLabels'); - END_LABELS_0 = new Property('endLabels'); - END_LABEL_EDGE = new Property('endLabel.origin'); - LABEL_SIDE = new Property_0('labelSide', ($clinit_LabelSide() , UNKNOWN)); - MAX_EDGE_THICKNESS = new Property_0('maxEdgeThickness', 0); - REVERSED = new Property_0('reversed', false); - RANDOM_0 = new Property('random'); - LONG_EDGE_SOURCE = new Property_0('longEdgeSource', null); - LONG_EDGE_TARGET = new Property_0('longEdgeTarget', null); - LONG_EDGE_HAS_LABEL_DUMMIES = new Property_0('longEdgeHasLabelDummies', false); - LONG_EDGE_BEFORE_LABEL_DUMMY = new Property_0('longEdgeBeforeLabelDummy', false); - EDGE_CONSTRAINT = new Property_0('edgeConstraint', ($clinit_EdgeConstraint() , NONE_2)); - IN_LAYER_LAYOUT_UNIT = new Property('inLayerLayoutUnit'); - IN_LAYER_CONSTRAINT = new Property_0('inLayerConstraint', ($clinit_InLayerConstraint() , NONE_6)); - IN_LAYER_SUCCESSOR_CONSTRAINTS = new Property_0('inLayerSuccessorConstraint', new ArrayList); - IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES = new Property_0('inLayerSuccessorConstraintBetweenNonDummies', false); - PORT_DUMMY = new Property('portDummy'); - CROSSING_HINT = new Property_0('crossingHint', valueOf_4(0)); - GRAPH_PROPERTIES = new Property_0('graphProperties', (all0 = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0))); - EXT_PORT_SIDE = new Property_0('externalPortSide', ($clinit_PortSide() , UNDEFINED_5)); - EXT_PORT_SIZE = new Property_0('externalPortSize', new KVector); - EXT_PORT_REPLACED_DUMMIES = new Property('externalPortReplacedDummies'); - EXT_PORT_REPLACED_DUMMY = new Property('externalPortReplacedDummy'); - EXT_PORT_CONNECTIONS = new Property_0('externalPortConnections', (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); - PORT_RATIO_OR_POSITION_0 = new Property_0('portRatioOrPosition', 0); - BARYCENTER_ASSOCIATES = new Property('barycenterAssociates'); - TOP_COMMENTS = new Property('TopSideComments'); - BOTTOM_COMMENTS = new Property('BottomSideComments'); - COMMENT_CONN_PORT = new Property('CommentConnectionPort'); - INPUT_COLLECT = new Property_0('inputCollect', false); - OUTPUT_COLLECT = new Property_0('outputCollect', false); - CYCLIC = new Property_0('cyclic', false); - CROSS_HIERARCHY_MAP = new Property('crossHierarchyMap'); - TARGET_OFFSET = new Property('targetOffset'); - new Property_0('splineLabelSize', new KVector); - SPACINGS = new Property('spacings'); - PARTITION_DUMMY = new Property_0('partitionConstraint', false); - BREAKING_POINT_INFO = new Property('breakingPoint.info'); - SPLINE_SURVIVING_EDGE = new Property('splines.survivingEdge'); - SPLINE_ROUTE_START = new Property('splines.route.start'); - SPLINE_EDGE_CHAIN = new Property('splines.edgeChain'); - ORIGINAL_PORT_CONSTRAINTS = new Property('originalPortConstraints'); - SELF_LOOP_HOLDER = new Property('selfLoopHolder'); - SPLINE_NS_PORT_Y_COORD = new Property('splines.nsPortY'); - MODEL_ORDER_0 = new Property('modelOrder'); - LONG_EDGE_TARGET_NODE = new Property('longEdgeTargetNode'); - FIRST_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); - SECOND_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); - HIDDEN_NODES = new Property('layerConstraints.hiddenNodes'); - ORIGINAL_OPPOSITE_PORT = new Property('layerConstraints.opposidePort'); - TARGET_NODE_MODEL_ORDER = new Property('targetNode.modelOrder'); -} - -var BARYCENTER_ASSOCIATES, BOTTOM_COMMENTS, BREAKING_POINT_INFO, COMMENT_CONN_PORT, COMPOUND_NODE, COORDINATE_SYSTEM_ORIGIN, CROSSING_HINT, CROSS_HIERARCHY_MAP, CYCLIC, EDGE_CONSTRAINT, END_LABELS_0, END_LABEL_EDGE, EXT_PORT_CONNECTIONS, EXT_PORT_REPLACED_DUMMIES, EXT_PORT_REPLACED_DUMMY, EXT_PORT_SIDE, EXT_PORT_SIZE, FIRST_TRY_WITH_INITIAL_ORDER, GRAPH_PROPERTIES, HIDDEN_NODES, INPUT_COLLECT, INSIDE_CONNECTIONS, IN_LAYER_CONSTRAINT, IN_LAYER_LAYOUT_UNIT, IN_LAYER_SUCCESSOR_CONSTRAINTS, IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES, LABEL_SIDE, LONG_EDGE_BEFORE_LABEL_DUMMY, LONG_EDGE_HAS_LABEL_DUMMIES, LONG_EDGE_SOURCE, LONG_EDGE_TARGET, LONG_EDGE_TARGET_NODE, MAX_EDGE_THICKNESS, MODEL_ORDER_0, ORIGIN_0, ORIGINAL_BENDPOINTS, ORIGINAL_DUMMY_NODE_POSITION, ORIGINAL_LABEL_EDGE, ORIGINAL_OPPOSITE_PORT, ORIGINAL_PORT_CONSTRAINTS, OUTPUT_COLLECT, PARTITION_DUMMY, PORT_DUMMY, PORT_RATIO_OR_POSITION_0, PROCESSORS, RANDOM_0, REPRESENTED_LABELS, REVERSED, SECOND_TRY_WITH_INITIAL_ORDER, SELF_LOOP_HOLDER, SPACINGS, SPLINE_EDGE_CHAIN, SPLINE_NS_PORT_Y_COORD, SPLINE_ROUTE_START, SPLINE_SURVIVING_EDGE, TARGET_NODE_MODEL_ORDER, TARGET_OFFSET, TOP_COMMENTS; -function $clinit_LayerConstraint(){ - $clinit_LayerConstraint = emptyMethod; - NONE_7 = new LayerConstraint('NONE', 0); - FIRST = new LayerConstraint('FIRST', 1); - FIRST_SEPARATE_0 = new LayerConstraint('FIRST_SEPARATE', 2); - LAST = new LayerConstraint('LAST', 3); - LAST_SEPARATE_0 = new LayerConstraint('LAST_SEPARATE', 4); -} - -function LayerConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_53(name_0){ - $clinit_LayerConstraint(); - return valueOf(($clinit_LayerConstraint$Map() , $MAP_41), name_0); -} - -function values_59(){ - $clinit_LayerConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]); -} - -defineClass(163, 22, {3:1, 35:1, 22:1, 163:1}, LayerConstraint); -var FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0, NONE_7; -var Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayerConstraint', 163, Ljava_lang_Enum_2_classLit, values_59, valueOf_53); -function $clinit_LayerConstraint$Map(){ - $clinit_LayerConstraint$Map = emptyMethod; - $MAP_41 = createValueOfMap(($clinit_LayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]))); -} - -var $MAP_41; -function $clinit_LayeredMetaDataProvider(){ - $clinit_LayeredMetaDataProvider = emptyMethod; - DIRECTION_CONGRUENCY_DEFAULT = ($clinit_DirectionCongruency() , READING_DIRECTION); - DIRECTION_CONGRUENCY = new Property_1('org.eclipse.elk.layered.directionCongruency', DIRECTION_CONGRUENCY_DEFAULT); - FEEDBACK_EDGES = new Property_1('org.eclipse.elk.layered.feedbackEdges', ($clinit_Boolean() , false)); - INTERACTIVE_REFERENCE_POINT_DEFAULT = ($clinit_InteractiveReferencePoint() , CENTER_3); - INTERACTIVE_REFERENCE_POINT = new Property_1('org.eclipse.elk.layered.interactiveReferencePoint', INTERACTIVE_REFERENCE_POINT_DEFAULT); - MERGE_EDGES = new Property_1('org.eclipse.elk.layered.mergeEdges', false); - MERGE_HIERARCHY_EDGES = new Property_1('org.eclipse.elk.layered.mergeHierarchyEdges', true); - ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES = new Property_1('org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', false); - PORT_SORTING_STRATEGY_DEFAULT = ($clinit_PortSortingStrategy() , INPUT_ORDER); - PORT_SORTING_STRATEGY = new Property_1('org.eclipse.elk.layered.portSortingStrategy', PORT_SORTING_STRATEGY_DEFAULT); - valueOf_4(1); - THOROUGHNESS = new Property_1('org.eclipse.elk.layered.thoroughness', valueOf_4(7)); - UNNECESSARY_BENDPOINTS = new Property_1('org.eclipse.elk.layered.unnecessaryBendpoints', false); - GENERATE_POSITION_AND_LAYER_IDS = new Property_1('org.eclipse.elk.layered.generatePositionAndLayerIds', false); - CYCLE_BREAKING_STRATEGY_DEFAULT = ($clinit_CycleBreakingStrategy() , GREEDY); - CYCLE_BREAKING_STRATEGY = new Property_1('org.eclipse.elk.layered.cycleBreaking.strategy', CYCLE_BREAKING_STRATEGY_DEFAULT); - LAYERING_STRATEGY_DEFAULT = ($clinit_LayeringStrategy() , NETWORK_SIMPLEX); - LAYERING_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.strategy', LAYERING_STRATEGY_DEFAULT); - LAYERING_LAYER_CONSTRAINT_DEFAULT = ($clinit_LayerConstraint() , NONE_7); - LAYERING_LAYER_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerConstraint', LAYERING_LAYER_CONSTRAINT_DEFAULT); - valueOf_4(-1); - LAYERING_LAYER_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerChoiceConstraint', valueOf_4(-1)); - valueOf_4(-1); - LAYERING_LAYER_ID = new Property_1('org.eclipse.elk.layered.layering.layerId', valueOf_4(-1)); - valueOf_4(-1); - LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', valueOf_4(4)); - valueOf_4(-1); - LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', valueOf_4(2)); - LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT = ($clinit_NodePromotionStrategy() , NONE_9); - LAYERING_NODE_PROMOTION_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.strategy', LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT); - valueOf_4(0); - LAYERING_NODE_PROMOTION_MAX_ITERATIONS = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.maxIterations', valueOf_4(0)); - LAYERING_COFFMAN_GRAHAM_LAYER_BOUND = new Property_1('org.eclipse.elk.layered.layering.coffmanGraham.layerBound', valueOf_4($intern_0)); - CROSSING_MINIMIZATION_STRATEGY_DEFAULT = ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP); - CROSSING_MINIMIZATION_STRATEGY = new Property_1('org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_STRATEGY_DEFAULT); - CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', false); - CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS = new Property_1('org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 0.1); - CROSSING_MINIMIZATION_SEMI_INTERACTIVE = new Property_1('org.eclipse.elk.layered.crossingMinimization.semiInteractive', false); - valueOf_4(-1); - CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', valueOf_4(-1)); - valueOf_4(-1); - CROSSING_MINIMIZATION_POSITION_ID = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionId', valueOf_4(-1)); - valueOf_4(0); - CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', valueOf_4(40)); - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT = ($clinit_GreedySwitchType() , TWO_SIDED); - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT); - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT = OFF; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT); - NODE_PLACEMENT_STRATEGY_DEFAULT = ($clinit_NodePlacementStrategy() , BRANDES_KOEPF); - NODE_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_STRATEGY_DEFAULT); - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES = new Property('org.eclipse.elk.layered.nodePlacement.favorStraightEdges'); - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT = ($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS); - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT); - NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT = ($clinit_FixedAlignment() , NONE_4); - NODE_PLACEMENT_BK_FIXED_ALIGNMENT = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT); - new ExclusiveBounds$ExclusiveLowerBound; - NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING = new Property_1('org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 0.3); - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY = new Property('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'); - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT = ($clinit_NodeFlexibility() , NONE_8); - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT = new Property_1('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT); - EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT = ($clinit_SelfLoopDistributionStrategy() , NORTH_2); - EDGE_ROUTING_SELF_LOOP_DISTRIBUTION = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT); - EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT = ($clinit_SelfLoopOrderingStrategy() , STACKED); - EDGE_ROUTING_SELF_LOOP_ORDERING = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT); - EDGE_ROUTING_SPLINES_MODE_DEFAULT = ($clinit_SplineRoutingMode() , SLOPPY); - EDGE_ROUTING_SPLINES_MODE = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_MODE_DEFAULT); - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 0.2); - EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH = new Property_1('org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 2); - SPACING_BASE_VALUE = new Property_1('org.eclipse.elk.layered.spacing.baseValue', null); - SPACING_EDGE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', 10); - SPACING_EDGE_EDGE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', 10); - SPACING_NODE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', 20); - valueOf_4(0); - PRIORITY_DIRECTION = new Property_1('org.eclipse.elk.layered.priority.direction', valueOf_4(0)); - valueOf_4(0); - PRIORITY_SHORTNESS = new Property_1('org.eclipse.elk.layered.priority.shortness', valueOf_4(0)); - valueOf_4(0); - PRIORITY_STRAIGHTNESS = new Property_1('org.eclipse.elk.layered.priority.straightness', valueOf_4(0)); - COMPACTION_CONNECTED_COMPONENTS = new Property_1('org.eclipse.elk.layered.compaction.connectedComponents', false); - COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT = ($clinit_GraphCompactionStrategy() , NONE_5); - COMPACTION_POST_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.strategy', COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT); - COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT = ($clinit_ConstraintCalculationStrategy() , SCANLINE); - COMPACTION_POST_COMPACTION_CONSTRAINTS = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.constraints', COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT); - HIGH_DEGREE_NODES_TREATMENT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treatment', false); - valueOf_4(0); - HIGH_DEGREE_NODES_THRESHOLD = new Property_1('org.eclipse.elk.layered.highDegreeNodes.threshold', valueOf_4(16)); - valueOf_4(0); - HIGH_DEGREE_NODES_TREE_HEIGHT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treeHeight', valueOf_4(5)); - WRAPPING_STRATEGY_DEFAULT = ($clinit_WrappingStrategy() , OFF_0); - WRAPPING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.strategy', WRAPPING_STRATEGY_DEFAULT); - WRAPPING_ADDITIONAL_EDGE_SPACING = new Property_1('org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 10); - WRAPPING_CORRECTION_FACTOR = new Property_1('org.eclipse.elk.layered.wrapping.correctionFactor', 1); - WRAPPING_CUTTING_STRATEGY_DEFAULT = ($clinit_CuttingStrategy() , MSD); - WRAPPING_CUTTING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_STRATEGY_DEFAULT); - WRAPPING_CUTTING_CUTS = new Property('org.eclipse.elk.layered.wrapping.cutting.cuts'); - WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT = valueOf_4(1); - valueOf_4(0); - WRAPPING_CUTTING_MSD_FREEDOM = new Property_1('org.eclipse.elk.layered.wrapping.cutting.msd.freedom', WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT); - WRAPPING_VALIDIFY_STRATEGY_DEFAULT = ($clinit_ValidifyStrategy() , GREEDY_0); - WRAPPING_VALIDIFY_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.validify.strategy', WRAPPING_VALIDIFY_STRATEGY_DEFAULT); - WRAPPING_VALIDIFY_FORBIDDEN_INDICES = new Property('org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'); - WRAPPING_MULTI_EDGE_IMPROVE_CUTS = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); - WRAPPING_MULTI_EDGE_DISTANCE_PENALTY = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 2); - WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', true); - EDGE_LABELS_SIDE_SELECTION_DEFAULT = ($clinit_EdgeLabelSideSelection() , SMART_DOWN); - EDGE_LABELS_SIDE_SELECTION = new Property_1('org.eclipse.elk.layered.edgeLabels.sideSelection', EDGE_LABELS_SIDE_SELECTION_DEFAULT); - EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT = ($clinit_CenterEdgeLabelPlacementStrategy() , MEDIAN_LAYER); - EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT); - CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT = ($clinit_OrderingStrategy() , NONE_10); - CONSIDER_MODEL_ORDER_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.strategy', CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT); - CONSIDER_MODEL_ORDER_NO_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.considerModelOrder.noModelOrder', false); - CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT = ($clinit_ComponentOrderingStrategy() , NONE); - CONSIDER_MODEL_ORDER_COMPONENTS = new Property_1('org.eclipse.elk.layered.considerModelOrder.components', CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT); - CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT = ($clinit_LongEdgeOrderingStrategy() , DUMMY_NODE_OVER); - CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT); - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 0); - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 0); - INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0 = INTERACTIVE_2; - INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1 = INTERACTIVE_1; - LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; - LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; - LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0 = COFFMAN_GRAHAM; - CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0 = ($clinit_HierarchyHandling() , INCLUDE_CHILDREN); - CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1 = INCLUDE_CHILDREN; - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1 = BRANDES_KOEPF; - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; - NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; - NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0 = LINEAR_SEGMENTS; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; - EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0 = ($clinit_EdgeRouting() , SPLINES); - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0 = SPLINES; - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1 = SLOPPY; - EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0 = POLYLINE; - WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0 = MANUAL; - WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0 = MSD; - WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; - WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; - WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; -} - -function LayeredMetaDataProvider(){ - $clinit_LayeredMetaDataProvider(); -} - -defineClass(848, 1, $intern_90, LayeredMetaDataProvider); -_.apply_4 = function apply_135(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.directionCongruency'), ''), 'Direction Congruency'), 'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'), DIRECTION_CONGRUENCY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.feedbackEdges'), ''), 'Feedback Edges'), 'Whether feedback edges should be highlighted by routing around the nodes.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.interactiveReferencePoint'), ''), 'Interactive Reference Point'), 'Determines which point of a node is considered by interactive layout phases.'), INTERACTIVE_REFERENCE_POINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.cycleBreaking.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.crossingMinimization.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeEdges'), ''), 'Merge Edges'), 'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeHierarchyEdges'), ''), 'Merge Hierarchy-Crossing Edges'), 'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($legacyIds($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides'), ''), 'Allow Non-Flow Ports To Switch Sides'), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PORTS)), stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['org.eclipse.elk.layered.northOrSouthPort'])))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.portSortingStrategy'), ''), 'Port Sorting Strategy'), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), PORT_SORTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.thoroughness'), ''), 'Thoroughness'), 'How much effort should be spent to produce a nice layout.'), valueOf_4(7)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.unnecessaryBendpoints'), ''), 'Add Unnecessary Bendpoints'), 'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.generatePositionAndLayerIds'), ''), 'Generate Position and Layer IDs'), 'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.cycleBreaking.strategy'), 'cycleBreaking'), 'Cycle Breaking Strategy'), 'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'), CYCLE_BREAKING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.strategy'), 'layering'), 'Node Layering Strategy'), 'Strategy for node layering.'), LAYERING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerConstraint'), 'layering'), 'Layer Constraint'), 'Determines a constraint on the placement of the node regarding the layering.'), LAYERING_LAYER_CONSTRAINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerChoiceConstraint'), 'layering'), 'Layer Choice Constraint'), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerId'), 'layering'), 'Layer ID'), 'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth'), 'layering.minWidth'), 'Upper Bound On Width [MinWidth Layerer]'), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(4)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor'), 'layering.minWidth'), 'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(2)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.strategy'), 'layering.nodePromotion'), 'Node Promotion Strategy'), 'Reduces number of dummy nodes after layering phase (if possible).'), LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations'), 'layering.nodePromotion'), 'Max Node Promotion Iterations'), 'Limits the number of iterations for node promotion.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound'), 'layering.coffmanGraham'), 'Layer Bound'), 'The maximum number of nodes allowed per layer.'), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', 'org.eclipse.elk.layered.layering.strategy', LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.strategy'), 'crossingMinimization'), 'Crossing Minimization Strategy'), 'Strategy for crossing minimization.'), CROSSING_MINIMIZATION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder'), 'crossingMinimization'), 'Force Node Model Order'), 'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness'), 'crossingMinimization'), 'Hierarchical Sweepiness'), 'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'), 0.1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive'), 'crossingMinimization'), 'Semi-Interactive Crossing Minimization'), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint'), 'crossingMinimization'), 'Position Choice Constraint'), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionId'), 'crossingMinimization'), 'Position ID'), 'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Activation Threshold'), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), valueOf_4(40)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Crossing Minimization'), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type'), 'crossingMinimization.greedySwitchHierarchical'), 'Greedy Switch Crossing Minimization (hierarchical)'), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.strategy'), 'nodePlacement'), 'Node Placement Strategy'), 'Strategy for node placement.'), NODE_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges'), 'nodePlacement'), 'Favor Straight Edges Over Balancing'), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening'), 'nodePlacement.bk'), 'BK Edge Straightening'), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment'), 'nodePlacement.bk'), 'BK Fixed Alignment'), 'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'), NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening'), 'nodePlacement.linearSegments'), 'Linear Segments Deflection Dampening'), 'Dampens the movement of nodes to keep the diagram from getting too large.'), 0.3), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'), 'nodePlacement.networkSimplex'), 'Node Flexibility'), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(NODES)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default'), 'nodePlacement.networkSimplex.nodeFlexibility'), 'Node Flexibility Default'), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution'), 'edgeRouting'), 'Self-Loop Distribution'), 'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering'), 'edgeRouting'), 'Self-Loop Ordering'), 'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.mode'), 'edgeRouting.splines'), 'Spline Routing Mode'), 'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'), EDGE_ROUTING_SPLINES_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.mode', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor'), 'edgeRouting.splines.sloppy'), 'Sloppy Spline Layer Spacing Factor'), 'Spacing factor for routing area between layers when using sloppy spline routing.'), 0.2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth'), 'edgeRouting.polyline'), 'Sloped Edge Zone Width'), 'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.baseValue'), 'spacing'), 'Spacing Base Value'), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers'), 'spacing'), 'Edge Node Between Layers Spacing'), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers'), 'spacing'), 'Edge Edge Between Layer Spacing'), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers'), 'spacing'), 'Node Node Between Layers Spacing'), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.direction'), 'priority'), 'Direction Priority'), 'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.shortness'), 'priority'), 'Shortness Priority'), 'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.straightness'), 'priority'), 'Straightness Priority'), 'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.connectedComponents'), 'compaction'), 'Connected Components Compaction'), 'Tries to further compact components (disconnected sub-graphs).'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.compaction.connectedComponents', 'org.eclipse.elk.separateConnectedComponents', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.strategy'), 'compaction.postCompaction'), 'Post Compaction Strategy'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.constraints'), 'compaction.postCompaction'), 'Post Compaction Constraint Calculation'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treatment'), 'highDegreeNodes'), 'High Degree Node Treatment'), 'Makes room around high degree nodes to place leafs and trees.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.threshold'), 'highDegreeNodes'), 'High Degree Node Threshold'), 'Whether a node is considered to have a high degree.'), valueOf_4(16)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.threshold', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight'), 'highDegreeNodes'), 'High Degree Node Maximum Tree Height'), 'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'), valueOf_4(5)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.strategy'), 'wrapping'), 'Graph Wrapping Strategy'), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), WRAPPING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing'), 'wrapping'), 'Additional Wrapped Edges Spacing'), 'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.correctionFactor'), 'wrapping'), 'Correction Factor for Wrapping'), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.strategy'), 'wrapping.cutting'), 'Cutting Strategy'), 'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'), WRAPPING_CUTTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.cuts'), 'wrapping.cutting'), 'Manually Specified Cuts'), 'Allows the user to specify her own cuts for a certain graph.'), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.cuts', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom'), 'wrapping.cutting.msd'), 'MSD Freedom'), 'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'), WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.strategy'), 'wrapping.validify'), 'Validification Strategy'), 'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'), WRAPPING_VALIDIFY_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'), 'wrapping.validify'), 'Valid Indices for Wrapping'), null), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts'), 'wrapping.multiEdge'), 'Improve Cuts'), 'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty'), 'wrapping.multiEdge'), 'Distance Penalty When Improving Cuts'), null), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges'), 'wrapping.multiEdge'), 'Improve Wrapped Edges'), 'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.sideSelection'), 'edgeLabels'), 'Edge Label Side Selection'), 'Method to decide on edge label sides.'), EDGE_LABELS_SIDE_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy'), 'edgeLabels'), 'Edge Center Label Placement Strategy'), 'Determines in which layer center labels of long edges should be placed.'), EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.strategy'), 'considerModelOrder'), 'Consider Model Order'), 'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'), CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.noModelOrder'), 'considerModelOrder'), 'No Model Order'), 'Set on a node to not set a model order for this node even though it is a real node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.components'), 'considerModelOrder'), 'Consider Model Order for Components'), 'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'), CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.components', 'org.eclipse.elk.separateConnectedComponents', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy'), 'considerModelOrder'), 'Long Edge Ordering Strategy'), 'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'), CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence'), 'considerModelOrder'), 'Crossing Counter Node Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence'), 'considerModelOrder'), 'Crossing Counter Port Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); - $apply_16((new LayeredOptions , registry)); -} -; -var ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES, COMPACTION_CONNECTED_COMPONENTS, COMPACTION_POST_COMPACTION_CONSTRAINTS, COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT, COMPACTION_POST_COMPACTION_STRATEGY, COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_COMPONENTS, CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER, CONSIDER_MODEL_ORDER_STRATEGY, CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT, CROSSING_MINIMIZATION_POSITION_ID, CROSSING_MINIMIZATION_SEMI_INTERACTIVE, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_STRATEGY, CROSSING_MINIMIZATION_STRATEGY_DEFAULT, CYCLE_BREAKING_STRATEGY, CYCLE_BREAKING_STRATEGY_DEFAULT, DIRECTION_CONGRUENCY, DIRECTION_CONGRUENCY_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT, EDGE_LABELS_SIDE_SELECTION, EDGE_LABELS_SIDE_SELECTION_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT, EDGE_ROUTING_SELF_LOOP_ORDERING, EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT, EDGE_ROUTING_SPLINES_MODE, EDGE_ROUTING_SPLINES_MODE_DEFAULT, EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1, FEEDBACK_EDGES, GENERATE_POSITION_AND_LAYER_IDS, HIGH_DEGREE_NODES_THRESHOLD, HIGH_DEGREE_NODES_TREATMENT, HIGH_DEGREE_NODES_TREE_HEIGHT, INTERACTIVE_REFERENCE_POINT, INTERACTIVE_REFERENCE_POINT_DEFAULT, INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1, INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0, LAYERING_LAYER_CHOICE_CONSTRAINT, LAYERING_LAYER_CONSTRAINT, LAYERING_LAYER_CONSTRAINT_DEFAULT, LAYERING_LAYER_ID, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS, LAYERING_NODE_PROMOTION_STRATEGY, LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT, LAYERING_STRATEGY, LAYERING_STRATEGY_DEFAULT, MERGE_EDGES, MERGE_HIERARCHY_EDGES, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_STRATEGY, NODE_PLACEMENT_STRATEGY_DEFAULT, PORT_SORTING_STRATEGY, PORT_SORTING_STRATEGY_DEFAULT, PRIORITY_DIRECTION, PRIORITY_SHORTNESS, PRIORITY_STRAIGHTNESS, SPACING_BASE_VALUE, SPACING_EDGE_EDGE_BETWEEN_LAYERS, SPACING_EDGE_NODE_BETWEEN_LAYERS, SPACING_NODE_NODE_BETWEEN_LAYERS, THOROUGHNESS, UNNECESSARY_BENDPOINTS, WRAPPING_ADDITIONAL_EDGE_SPACING, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1, WRAPPING_CORRECTION_FACTOR, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1, WRAPPING_CUTTING_CUTS, WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_MSD_FREEDOM, WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT, WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY, WRAPPING_CUTTING_STRATEGY_DEFAULT, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0, WRAPPING_STRATEGY, WRAPPING_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_FORBIDDEN_INDICES, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1, WRAPPING_VALIDIFY_STRATEGY, WRAPPING_VALIDIFY_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1; -var Lorg_eclipse_elk_alg_layered_options_LayeredMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredMetaDataProvider', 848); -function $clinit_LayeredOptions(){ - $clinit_LayeredOptions = emptyMethod; - SPACING_COMMENT_COMMENT = ($clinit_CoreOptions() , SPACING_COMMENT_COMMENT_0); - SPACING_COMMENT_NODE = SPACING_COMMENT_NODE_0; - SPACING_COMPONENT_COMPONENT_0 = SPACING_COMPONENT_COMPONENT_1; - SPACING_EDGE_EDGE = SPACING_EDGE_EDGE_0; - SPACING_EDGE_LABEL_0 = SPACING_EDGE_LABEL_1; - SPACING_EDGE_NODE = SPACING_EDGE_NODE_0; - SPACING_LABEL_LABEL = SPACING_LABEL_LABEL_0; - SPACING_LABEL_PORT_HORIZONTAL = SPACING_LABEL_PORT_HORIZONTAL_0; - SPACING_LABEL_PORT_VERTICAL = SPACING_LABEL_PORT_VERTICAL_0; - SPACING_LABEL_NODE = SPACING_LABEL_NODE_0; - SPACING_NODE_NODE_0 = SPACING_NODE_NODE_6; - SPACING_NODE_SELF_LOOP = SPACING_NODE_SELF_LOOP_0; - SPACING_PORT_PORT = SPACING_PORT_PORT_0; - SPACING_INDIVIDUAL = SPACING_INDIVIDUAL_0; - SPACING_BASE_VALUE_0 = ($clinit_LayeredMetaDataProvider() , SPACING_BASE_VALUE); - SPACING_EDGE_EDGE_BETWEEN_LAYERS_0 = SPACING_EDGE_EDGE_BETWEEN_LAYERS; - SPACING_EDGE_NODE_BETWEEN_LAYERS_0 = SPACING_EDGE_NODE_BETWEEN_LAYERS; - SPACING_NODE_NODE_BETWEEN_LAYERS_0 = SPACING_NODE_NODE_BETWEEN_LAYERS; - PRIORITY_0 = new Property_2(PRIORITY_3, valueOf_4(0)); - PRIORITY_DIRECTION_0 = PRIORITY_DIRECTION; - PRIORITY_SHORTNESS_0 = PRIORITY_SHORTNESS; - PRIORITY_STRAIGHTNESS_0 = PRIORITY_STRAIGHTNESS; - WRAPPING_STRATEGY_0 = WRAPPING_STRATEGY; - WRAPPING_ADDITIONAL_EDGE_SPACING_0 = WRAPPING_ADDITIONAL_EDGE_SPACING; - WRAPPING_CORRECTION_FACTOR_0 = WRAPPING_CORRECTION_FACTOR; - WRAPPING_CUTTING_STRATEGY_0 = WRAPPING_CUTTING_STRATEGY; - WRAPPING_CUTTING_CUTS_0 = WRAPPING_CUTTING_CUTS; - WRAPPING_CUTTING_MSD_FREEDOM_0 = WRAPPING_CUTTING_MSD_FREEDOM; - WRAPPING_VALIDIFY_STRATEGY_0 = WRAPPING_VALIDIFY_STRATEGY; - WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0 = WRAPPING_VALIDIFY_FORBIDDEN_INDICES; - WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0 = WRAPPING_MULTI_EDGE_IMPROVE_CUTS; - WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0 = WRAPPING_MULTI_EDGE_DISTANCE_PENALTY; - WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0 = WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT; - EDGE_ROUTING_SPLINES_MODE_0 = EDGE_ROUTING_SPLINES_MODE; - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0 = EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR; - PADDING_DEFAULT_0 = new ElkPadding_0(12); - PADDING_1 = new Property_2(PADDING_6, PADDING_DEFAULT_0); - EDGE_ROUTING_DEFAULT = ($clinit_EdgeRouting() , ORTHOGONAL); - EDGE_ROUTING = new Property_2(EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT); - PORT_BORDER_OFFSET = new Property_2(PORT_BORDER_OFFSET_0, 0); - RANDOM_SEED_0 = new Property_2(RANDOM_SEED_1, valueOf_4(1)); - ASPECT_RATIO_1 = new Property_2(ASPECT_RATIO_5, $intern_102); - NO_LAYOUT = NO_LAYOUT_0; - PORT_CONSTRAINTS_0 = PORT_CONSTRAINTS_1; - PORT_SIDE = PORT_SIDE_0; - DEBUG_MODE = DEBUG_MODE_3; - ALIGNMENT = ALIGNMENT_0; - HIERARCHY_HANDLING = HIERARCHY_HANDLING_0; - SEPARATE_CONNECTED_COMPONENTS_0 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); - INSIDE_SELF_LOOPS_ACTIVATE = INSIDE_SELF_LOOPS_ACTIVATE_0; - INSIDE_SELF_LOOPS_YO = INSIDE_SELF_LOOPS_YO_0; - NODE_SIZE_CONSTRAINTS_1 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_OPTIONS_1 = NODE_SIZE_OPTIONS_6; - NODE_SIZE_FIXED_GRAPH_SIZE = NODE_SIZE_FIXED_GRAPH_SIZE_0; - DIRECTION_DEFAULT = ($clinit_Direction_0() , UNDEFINED_2); - DIRECTION = new Property_2(DIRECTION_0, DIRECTION_DEFAULT); - NODE_LABELS_PLACEMENT_1 = NODE_LABELS_PLACEMENT_5; - NODE_LABELS_PADDING = NODE_LABELS_PADDING_0; - PORT_LABELS_PLACEMENT_1 = PORT_LABELS_PLACEMENT_5; - PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE = PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0; - PORT_LABELS_TREAT_AS_GROUP = PORT_LABELS_TREAT_AS_GROUP_0; - PORT_ALIGNMENT_DEFAULT_DEFAULT = ($clinit_PortAlignment() , JUSTIFIED); - new Property_2(PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT); - PORT_ALIGNMENT_NORTH = PORT_ALIGNMENT_NORTH_0; - PORT_ALIGNMENT_SOUTH = PORT_ALIGNMENT_SOUTH_0; - PORT_ALIGNMENT_WEST = PORT_ALIGNMENT_WEST_0; - PORT_ALIGNMENT_EAST = PORT_ALIGNMENT_EAST_0; - UNNECESSARY_BENDPOINTS_0 = UNNECESSARY_BENDPOINTS; - LAYERING_STRATEGY_0 = LAYERING_STRATEGY; - LAYERING_NODE_PROMOTION_STRATEGY_0 = LAYERING_NODE_PROMOTION_STRATEGY; - THOROUGHNESS_0 = THOROUGHNESS; - LAYERING_LAYER_CONSTRAINT_0 = LAYERING_LAYER_CONSTRAINT; - CYCLE_BREAKING_STRATEGY_0 = CYCLE_BREAKING_STRATEGY; - CROSSING_MINIMIZATION_STRATEGY_0 = CROSSING_MINIMIZATION_STRATEGY; - CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0 = CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER; - CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD; - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE; - CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0 = CROSSING_MINIMIZATION_SEMI_INTERACTIVE; - MERGE_EDGES_0 = MERGE_EDGES; - MERGE_HIERARCHY_EDGES_0 = MERGE_HIERARCHY_EDGES; - INTERACTIVE_REFERENCE_POINT_0 = INTERACTIVE_REFERENCE_POINT; - NODE_PLACEMENT_STRATEGY_0 = NODE_PLACEMENT_STRATEGY; - NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0 = NODE_PLACEMENT_BK_FIXED_ALIGNMENT; - FEEDBACK_EDGES_0 = FEEDBACK_EDGES; - NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0 = NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING; - EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0 = EDGE_ROUTING_SELF_LOOP_DISTRIBUTION; - EDGE_ROUTING_SELF_LOOP_ORDERING_0 = EDGE_ROUTING_SELF_LOOP_ORDERING; - CONTENT_ALIGNMENT = CONTENT_ALIGNMENT_2; - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0 = NODE_PLACEMENT_BK_EDGE_STRAIGHTENING; - COMPACTION_POST_COMPACTION_STRATEGY_0 = COMPACTION_POST_COMPACTION_STRATEGY; - COMPACTION_POST_COMPACTION_CONSTRAINTS_0 = COMPACTION_POST_COMPACTION_CONSTRAINTS; - COMPACTION_CONNECTED_COMPONENTS_0 = COMPACTION_CONNECTED_COMPONENTS; - HIGH_DEGREE_NODES_TREATMENT_0 = HIGH_DEGREE_NODES_TREATMENT; - HIGH_DEGREE_NODES_THRESHOLD_0 = HIGH_DEGREE_NODES_THRESHOLD; - HIGH_DEGREE_NODES_TREE_HEIGHT_0 = HIGH_DEGREE_NODES_TREE_HEIGHT; - NODE_SIZE_MINIMUM_0 = NODE_SIZE_MINIMUM_5; - JUNCTION_POINTS = JUNCTION_POINTS_0; - EDGE_THICKNESS_0 = EDGE_THICKNESS_1; - EDGE_LABELS_PLACEMENT = EDGE_LABELS_PLACEMENT_0; - EDGE_LABELS_INLINE_0 = EDGE_LABELS_INLINE_1; - CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0 = CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS; - PORT_INDEX = PORT_INDEX_0; - COMMENT_BOX = COMMENT_BOX_0; - HYPERNODE = HYPERNODE_0; - PORT_ANCHOR = PORT_ANCHOR_0; - PARTITIONING_ACTIVATE = PARTITIONING_ACTIVATE_0; - PARTITIONING_PARTITION = PARTITIONING_PARTITION_0; - LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0 = LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH; - LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0 = LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR; - POSITION = POSITION_2; - ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0 = ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES; - LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0 = LAYERING_NODE_PROMOTION_MAX_ITERATIONS; - EDGE_LABELS_SIDE_SELECTION_0 = EDGE_LABELS_SIDE_SELECTION; - EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0 = EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY; - MARGINS = MARGINS_0; - LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0 = LAYERING_COFFMAN_GRAHAM_LAYER_BOUND; - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0 = NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES; - SPACING_PORTS_SURROUNDING = SPACING_PORTS_SURROUNDING_0; - DIRECTION_CONGRUENCY_0 = DIRECTION_CONGRUENCY; - PORT_SORTING_STRATEGY_0 = PORT_SORTING_STRATEGY; - EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0 = EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH; - LAYERING_LAYER_CHOICE_CONSTRAINT_0 = LAYERING_LAYER_CHOICE_CONSTRAINT; - CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0 = CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT; - INTERACTIVE_LAYOUT = INTERACTIVE_LAYOUT_1; - LAYERING_LAYER_ID_0 = LAYERING_LAYER_ID; - CROSSING_MINIMIZATION_POSITION_ID_0 = CROSSING_MINIMIZATION_POSITION_ID; - CONSIDER_MODEL_ORDER_STRATEGY_0 = CONSIDER_MODEL_ORDER_STRATEGY; - CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0 = CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY; - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE; - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE; - CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0 = CONSIDER_MODEL_ORDER_NO_MODEL_ORDER; - CONSIDER_MODEL_ORDER_COMPONENTS_0 = CONSIDER_MODEL_ORDER_COMPONENTS; - GENERATE_POSITION_AND_LAYER_IDS_0 = GENERATE_POSITION_AND_LAYER_IDS; -} - -function $apply_16(registry){ - $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.layered'), 'ELK Layered'), 'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'), new LayeredOptions$LayeredFactory), 'org.eclipse.elk.layered'), of_2(($clinit_GraphFeature() , SELF_LOOPS_0), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS]))))); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentComment', $getDefault(SPACING_COMMENT_COMMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentNode', $getDefault(SPACING_COMMENT_NODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeEdge', $getDefault(SPACING_EDGE_EDGE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeLabel', $getDefault(SPACING_EDGE_LABEL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeNode', $getDefault(SPACING_EDGE_NODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelLabel', $getDefault(SPACING_LABEL_LABEL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortHorizontal', $getDefault(SPACING_LABEL_PORT_HORIZONTAL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortVertical', $getDefault(SPACING_LABEL_PORT_VERTICAL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelNode', $getDefault(SPACING_LABEL_NODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeSelfLoop', $getDefault(SPACING_NODE_SELF_LOOP)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portPort', $getDefault(SPACING_PORT_PORT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.individual', $getDefault(SPACING_INDIVIDUAL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.baseValue', $getDefault(SPACING_BASE_VALUE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', $getDefault(SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', $getDefault(SPACING_EDGE_NODE_BETWEEN_LAYERS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', $getDefault(SPACING_NODE_NODE_BETWEEN_LAYERS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.priority', valueOf_4(0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.direction', $getDefault(PRIORITY_DIRECTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.shortness', $getDefault(PRIORITY_SHORTNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.straightness', $getDefault(PRIORITY_STRAIGHTNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.strategy', $getDefault(WRAPPING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', $getDefault(WRAPPING_ADDITIONAL_EDGE_SPACING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.correctionFactor', $getDefault(WRAPPING_CORRECTION_FACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.strategy', $getDefault(WRAPPING_CUTTING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.cuts', $getDefault(WRAPPING_CUTTING_CUTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', $getDefault(WRAPPING_CUTTING_MSD_FREEDOM_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.strategy', $getDefault(WRAPPING_VALIDIFY_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', $getDefault(WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', $getDefault(WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.mode', $getDefault(EDGE_ROUTING_SPLINES_MODE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', $getDefault(EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.padding', PADDING_DEFAULT_0); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.borderOffset', 0); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.randomSeed', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.aspectRatio', $intern_102); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.noLayout', $getDefault(NO_LAYOUT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.side', $getDefault(PORT_SIDE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.alignment', $getDefault(ALIGNMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hierarchyHandling', $getDefault(HIERARCHY_HANDLING)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.activate', $getDefault(INSIDE_SELF_LOOPS_ACTIVATE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.yo', $getDefault(INSIDE_SELF_LOOPS_YO)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.direction', DIRECTION_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.padding', $getDefault(NODE_LABELS_PADDING)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.nextToPortIfPossible', $getDefault(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.treatAsGroup', $getDefault(PORT_LABELS_TREAT_AS_GROUP)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.north', $getDefault(PORT_ALIGNMENT_NORTH)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.south', $getDefault(PORT_ALIGNMENT_SOUTH)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.west', $getDefault(PORT_ALIGNMENT_WEST)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.east', $getDefault(PORT_ALIGNMENT_EAST)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.unnecessaryBendpoints', $getDefault(UNNECESSARY_BENDPOINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.strategy', $getDefault(LAYERING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', $getDefault(LAYERING_NODE_PROMOTION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.thoroughness', $getDefault(THOROUGHNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerConstraint', $getDefault(LAYERING_LAYER_CONSTRAINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.cycleBreaking.strategy', $getDefault(CYCLE_BREAKING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.strategy', $getDefault(CROSSING_MINIMIZATION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', $getDefault(CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', $getDefault(CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeEdges', $getDefault(MERGE_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeHierarchyEdges', $getDefault(MERGE_HIERARCHY_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.interactiveReferencePoint', $getDefault(INTERACTIVE_REFERENCE_POINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.strategy', $getDefault(NODE_PLACEMENT_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', $getDefault(NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.feedbackEdges', $getDefault(FEEDBACK_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', $getDefault(NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', $getDefault(EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', $getDefault(EDGE_ROUTING_SELF_LOOP_ORDERING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', $getDefault(NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.strategy', $getDefault(COMPACTION_POST_COMPACTION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.constraints', $getDefault(COMPACTION_POST_COMPACTION_CONSTRAINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.connectedComponents', $getDefault(COMPACTION_CONNECTED_COMPONENTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treatment', $getDefault(HIGH_DEGREE_NODES_TREATMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.threshold', $getDefault(HIGH_DEGREE_NODES_THRESHOLD_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', $getDefault(HIGH_DEGREE_NODES_TREE_HEIGHT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.junctionPoints', $getDefault(JUNCTION_POINTS)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.placement', $getDefault(EDGE_LABELS_PLACEMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.inline', $getDefault(EDGE_LABELS_INLINE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', $getDefault(CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.index', $getDefault(PORT_INDEX)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.commentBox', $getDefault(COMMENT_BOX)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hypernode', $getDefault(HYPERNODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.anchor', $getDefault(PORT_ANCHOR)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.activate', $getDefault(PARTITIONING_ACTIVATE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.partition', $getDefault(PARTITIONING_PARTITION)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', $getDefault(LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', $getDefault(LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.position', $getDefault(POSITION)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', $getDefault(ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', $getDefault(LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.sideSelection', $getDefault(EDGE_LABELS_SIDE_SELECTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', $getDefault(EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.margins', $getDefault(MARGINS)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', $getDefault(LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', $getDefault(NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portsSurrounding', $getDefault(SPACING_PORTS_SURROUNDING)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.directionCongruency', $getDefault(DIRECTION_CONGRUENCY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.portSortingStrategy', $getDefault(PORT_SORTING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', $getDefault(EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerChoiceConstraint', $getDefault(LAYERING_LAYER_CHOICE_CONSTRAINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', $getDefault(CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerId', $getDefault(LAYERING_LAYER_ID_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionId', $getDefault(CROSSING_MINIMIZATION_POSITION_ID_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.strategy', $getDefault(CONSIDER_MODEL_ORDER_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', $getDefault(CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.noModelOrder', $getDefault(CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.components', $getDefault(CONSIDER_MODEL_ORDER_COMPONENTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.generatePositionAndLayerIds', $getDefault(GENERATE_POSITION_AND_LAYER_IDS_0)); -} - -function LayeredOptions(){ - $clinit_LayeredOptions(); -} - -defineClass(986, 1, $intern_90, LayeredOptions); -_.apply_4 = function apply_136(registry){ - $apply_16(registry); -} -; -var ALIGNMENT, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0, ASPECT_RATIO_1, COMMENT_BOX, COMPACTION_CONNECTED_COMPONENTS_0, COMPACTION_POST_COMPACTION_CONSTRAINTS_0, COMPACTION_POST_COMPACTION_STRATEGY_0, CONSIDER_MODEL_ORDER_COMPONENTS_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0, CONSIDER_MODEL_ORDER_STRATEGY_0, CONTENT_ALIGNMENT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0, CROSSING_MINIMIZATION_POSITION_ID_0, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0, CROSSING_MINIMIZATION_STRATEGY_0, CYCLE_BREAKING_STRATEGY_0, DEBUG_MODE, DIRECTION, DIRECTION_CONGRUENCY_0, DIRECTION_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0, EDGE_LABELS_INLINE_0, EDGE_LABELS_PLACEMENT, EDGE_LABELS_SIDE_SELECTION_0, EDGE_ROUTING, EDGE_ROUTING_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0, EDGE_ROUTING_SELF_LOOP_ORDERING_0, EDGE_ROUTING_SPLINES_MODE_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0, EDGE_THICKNESS_0, FEEDBACK_EDGES_0, GENERATE_POSITION_AND_LAYER_IDS_0, HIERARCHY_HANDLING, HIGH_DEGREE_NODES_THRESHOLD_0, HIGH_DEGREE_NODES_TREATMENT_0, HIGH_DEGREE_NODES_TREE_HEIGHT_0, HYPERNODE, INSIDE_SELF_LOOPS_ACTIVATE, INSIDE_SELF_LOOPS_YO, INTERACTIVE_LAYOUT, INTERACTIVE_REFERENCE_POINT_0, JUNCTION_POINTS, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0, LAYERING_LAYER_CHOICE_CONSTRAINT_0, LAYERING_LAYER_CONSTRAINT_0, LAYERING_LAYER_ID_0, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0, LAYERING_NODE_PROMOTION_STRATEGY_0, LAYERING_STRATEGY_0, MARGINS, MERGE_EDGES_0, MERGE_HIERARCHY_EDGES_0, NODE_LABELS_PADDING, NODE_LABELS_PLACEMENT_1, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0, NODE_PLACEMENT_STRATEGY_0, NODE_SIZE_CONSTRAINTS_1, NODE_SIZE_FIXED_GRAPH_SIZE, NODE_SIZE_MINIMUM_0, NODE_SIZE_OPTIONS_1, NO_LAYOUT, PADDING_1, PADDING_DEFAULT_0, PARTITIONING_ACTIVATE, PARTITIONING_PARTITION, PORT_ALIGNMENT_DEFAULT_DEFAULT, PORT_ALIGNMENT_EAST, PORT_ALIGNMENT_NORTH, PORT_ALIGNMENT_SOUTH, PORT_ALIGNMENT_WEST, PORT_ANCHOR, PORT_BORDER_OFFSET, PORT_CONSTRAINTS_0, PORT_INDEX, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE, PORT_LABELS_PLACEMENT_1, PORT_LABELS_TREAT_AS_GROUP, PORT_SIDE, PORT_SORTING_STRATEGY_0, POSITION, PRIORITY_0, PRIORITY_DIRECTION_0, PRIORITY_SHORTNESS_0, PRIORITY_STRAIGHTNESS_0, RANDOM_SEED_0, SEPARATE_CONNECTED_COMPONENTS_0, SPACING_BASE_VALUE_0, SPACING_COMMENT_COMMENT, SPACING_COMMENT_NODE, SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_INDIVIDUAL, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_SELF_LOOP, SPACING_PORTS_SURROUNDING, SPACING_PORT_PORT, THOROUGHNESS_0, UNNECESSARY_BENDPOINTS_0, WRAPPING_ADDITIONAL_EDGE_SPACING_0, WRAPPING_CORRECTION_FACTOR_0, WRAPPING_CUTTING_CUTS_0, WRAPPING_CUTTING_MSD_FREEDOM_0, WRAPPING_CUTTING_STRATEGY_0, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0, WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0, WRAPPING_VALIDIFY_STRATEGY_0; -var Lorg_eclipse_elk_alg_layered_options_LayeredOptions_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions', 986); -function LayeredOptions$LayeredFactory(){ -} - -defineClass(987, 1, {}, LayeredOptions$LayeredFactory); -_.create_0 = function create_10(){ - var provider; - return provider = new LayeredLayoutProvider , provider; -} -; -_.destroy = function destroy_2(obj){ -} -; -var Lorg_eclipse_elk_alg_layered_options_LayeredOptions$LayeredFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions/LayeredFactory', 987); -function $clinit_ElkSpacings$AbstractSpacingsBuilder(){ - $clinit_ElkSpacings$AbstractSpacingsBuilder = emptyMethod; - ELK_OPTION_TARGET_FILTER = new ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type; -} - -function $apply_17(this$static, holder){ - $build(this$static).accept(holder); -} - -function $build(this$static){ - $add_3(this$static.filters, ($clinit_LayoutConfigurator() , NO_OVERWRITE_HOLDER)); - if (fuzzyEquals(this$static.baseSpacing, $doubleValue(castToDouble($getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)))))) { - return new ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type; - } - return new ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type(this$static); -} - -function $lambda$1_1(this$static, option_0){ - var factor; - factor = $getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)) != null && option_0.getDefault() != null?$doubleValue(castToDouble(option_0.getDefault())) / $doubleValue(castToDouble($getDefault(BASE_SPACING_OPTION))):1; - $put_6(this$static.factorMap, option_0, factor); -} - -function $lambda$3_0(this$static, element_0){ - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.factorMap), 1)), new ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type(this$static, element_0)), new ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type(this$static, element_0)); -} - -function $lambda$4_1(this$static, element_1, p_1){ - return !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.filters, 16)), new Predicate$lambda$2$Type(new ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_1, p_1)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); -} - -function $lambda$6(this$static, element_1, p_1){ - element_1.setProperty(p_1, $doubleValue(castToDouble($get_10(this$static.factorMap, p_1))) * this$static.baseSpacing); -} - -function lambda$5_3(element_0, p_1, filter_2){ - $clinit_ElkSpacings$AbstractSpacingsBuilder(); - return filter_2.accept_4(element_0, p_1); -} - -defineClass(1372, 1, {}); -_.baseSpacing = 0; -var ELK_OPTION_TARGET_FILTER; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder', 1372); -function $clinit_LayeredSpacings$LayeredSpacingsBuilder(){ - $clinit_LayeredSpacings$LayeredSpacingsBuilder = emptyMethod; - $clinit_ElkSpacings$AbstractSpacingsBuilder(); - BASE_SPACING_OPTION = ($clinit_LayeredOptions() , SPACING_NODE_NODE_0); - DEPENDENT_SPACING_OPTIONS = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 1), $intern_112, 146, 0, [SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_SELF_LOOP, SPACING_PORT_PORT, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0])); -} - -function LayeredSpacings$LayeredSpacingsBuilder(d){ - $clinit_LayeredSpacings$LayeredSpacingsBuilder(); - this.filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit, 1), $intern_2, 831, 0, [ELK_OPTION_TARGET_FILTER])); - this.factorMap = new HashMap; - this.baseSpacing = d; - $put_6(this.factorMap, BASE_SPACING_OPTION, 1); - $forEach_1(DEPENDENT_SPACING_OPTIONS, new ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type(this)); -} - -defineClass(779, 1372, {}, LayeredSpacings$LayeredSpacingsBuilder); -var BASE_SPACING_OPTION, DEPENDENT_SPACING_OPTIONS; -var Lorg_eclipse_elk_alg_layered_options_LayeredSpacings$LayeredSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredSpacings/LayeredSpacingsBuilder', 779); -function $clinit_LayeringStrategy(){ - $clinit_LayeringStrategy = emptyMethod; - NETWORK_SIMPLEX = new LayeringStrategy('NETWORK_SIMPLEX', 0); - LONGEST_PATH = new LayeringStrategy('LONGEST_PATH', 1); - COFFMAN_GRAHAM = new LayeringStrategy('COFFMAN_GRAHAM', 2); - INTERACTIVE_3 = new LayeringStrategy('INTERACTIVE', 3); - STRETCH_WIDTH = new LayeringStrategy('STRETCH_WIDTH', 4); - MIN_WIDTH = new LayeringStrategy('MIN_WIDTH', 5); -} - -function $create_5(this$static){ - switch (this$static.ordinal) { - case 0: - return new NetworkSimplexLayerer; - case 1: - return new LongestPathLayerer; - case 2: - return new CoffmanGrahamLayerer; - case 3: - return new InteractiveLayerer; - case 4: - return new StretchWidthLayerer; - case 5: - return new MinWidthLayerer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layerer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function LayeringStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_54(name_0){ - $clinit_LayeringStrategy(); - return valueOf(($clinit_LayeringStrategy$Map() , $MAP_42), name_0); -} - -function values_60(){ - $clinit_LayeringStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]); -} - -defineClass(313, 22, {3:1, 35:1, 22:1, 313:1, 246:1, 234:1}, LayeringStrategy); -_.create_1 = function create_12(){ - return $create_5(this); -} -; -_.create_2 = function create_11(){ - return $create_5(this); -} -; -var COFFMAN_GRAHAM, INTERACTIVE_3, LONGEST_PATH, MIN_WIDTH, NETWORK_SIMPLEX, STRETCH_WIDTH; -var Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayeringStrategy', 313, Ljava_lang_Enum_2_classLit, values_60, valueOf_54); -function $clinit_LayeringStrategy$Map(){ - $clinit_LayeringStrategy$Map = emptyMethod; - $MAP_42 = createValueOfMap(($clinit_LayeringStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]))); -} - -var $MAP_42; -function $clinit_LongEdgeOrderingStrategy(){ - $clinit_LongEdgeOrderingStrategy = emptyMethod; - DUMMY_NODE_OVER = new LongEdgeOrderingStrategy('DUMMY_NODE_OVER', 0); - DUMMY_NODE_UNDER = new LongEdgeOrderingStrategy('DUMMY_NODE_UNDER', 1); - EQUAL = new LongEdgeOrderingStrategy('EQUAL', 2); -} - -function $returnValue(this$static){ - switch (this$static.ordinal) { - case 0: - return $intern_0; - case 1: - return -1; - default:return 0; - } -} - -function LongEdgeOrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_55(name_0){ - $clinit_LongEdgeOrderingStrategy(); - return valueOf(($clinit_LongEdgeOrderingStrategy$Map() , $MAP_43), name_0); -} - -function values_61(){ - $clinit_LongEdgeOrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]); -} - -defineClass(378, 22, {3:1, 35:1, 22:1, 378:1}, LongEdgeOrderingStrategy); -var DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL; -var Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LongEdgeOrderingStrategy', 378, Ljava_lang_Enum_2_classLit, values_61, valueOf_55); -function $clinit_LongEdgeOrderingStrategy$Map(){ - $clinit_LongEdgeOrderingStrategy$Map = emptyMethod; - $MAP_43 = createValueOfMap(($clinit_LongEdgeOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]))); -} - -var $MAP_43; -function $clinit_NodeFlexibility(){ - $clinit_NodeFlexibility = emptyMethod; - NONE_8 = new NodeFlexibility('NONE', 0); - PORT_POSITION = new NodeFlexibility('PORT_POSITION', 1); - NODE_SIZE_WHERE_SPACE_PERMITS = new NodeFlexibility('NODE_SIZE_WHERE_SPACE_PERMITS', 2); - NODE_SIZE = new NodeFlexibility('NODE_SIZE', 3); -} - -function $isFlexibleSizeWhereSpacePermits(this$static){ - return this$static == NODE_SIZE_WHERE_SPACE_PERMITS || this$static == NODE_SIZE; -} - -function NodeFlexibility(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function getNodeFlexibility(lNode){ - $clinit_NodeFlexibility(); - var nf; - (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)); - return nf; -} - -function valueOf_56(name_0){ - $clinit_NodeFlexibility(); - return valueOf(($clinit_NodeFlexibility$Map() , $MAP_44), name_0); -} - -function values_62(){ - $clinit_NodeFlexibility(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]); -} - -defineClass(197, 22, {3:1, 35:1, 22:1, 197:1}, NodeFlexibility); -var NODE_SIZE, NODE_SIZE_WHERE_SPACE_PERMITS, NONE_8, PORT_POSITION; -var Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodeFlexibility', 197, Ljava_lang_Enum_2_classLit, values_62, valueOf_56); -function $clinit_NodeFlexibility$Map(){ - $clinit_NodeFlexibility$Map = emptyMethod; - $MAP_44 = createValueOfMap(($clinit_NodeFlexibility() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]))); -} - -var $MAP_44; -function $clinit_NodePlacementStrategy(){ - $clinit_NodePlacementStrategy = emptyMethod; - SIMPLE = new NodePlacementStrategy('SIMPLE', 0); - INTERACTIVE_4 = new NodePlacementStrategy('INTERACTIVE', 1); - LINEAR_SEGMENTS = new NodePlacementStrategy('LINEAR_SEGMENTS', 2); - BRANDES_KOEPF = new NodePlacementStrategy('BRANDES_KOEPF', 3); - NETWORK_SIMPLEX_0 = new NodePlacementStrategy('NETWORK_SIMPLEX', 4); -} - -function $create_6(this$static){ - switch (this$static.ordinal) { - case 0: - return new SimpleNodePlacer; - case 1: - return new InteractiveNodePlacer; - case 2: - return new LinearSegmentsNodePlacer; - case 3: - return new BKNodePlacer; - case 4: - return new NetworkSimplexPlacer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the node placer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function NodePlacementStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_57(name_0){ - $clinit_NodePlacementStrategy(); - return valueOf(($clinit_NodePlacementStrategy$Map() , $MAP_45), name_0); -} - -function values_63(){ - $clinit_NodePlacementStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]); -} - -defineClass(315, 22, {3:1, 35:1, 22:1, 315:1, 246:1, 234:1}, NodePlacementStrategy); -_.create_1 = function create_14(){ - return $create_6(this); -} -; -_.create_2 = function create_13(){ - return $create_6(this); -} -; -var BRANDES_KOEPF, INTERACTIVE_4, LINEAR_SEGMENTS, NETWORK_SIMPLEX_0, SIMPLE; -var Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePlacementStrategy', 315, Ljava_lang_Enum_2_classLit, values_63, valueOf_57); -function $clinit_NodePlacementStrategy$Map(){ - $clinit_NodePlacementStrategy$Map = emptyMethod; - $MAP_45 = createValueOfMap(($clinit_NodePlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]))); -} - -var $MAP_45; -function $clinit_NodePromotionStrategy(){ - $clinit_NodePromotionStrategy = emptyMethod; - NONE_9 = new NodePromotionStrategy('NONE', 0); - NIKOLOV = new NodePromotionStrategy('NIKOLOV', 1); - NIKOLOV_PIXEL = new NodePromotionStrategy('NIKOLOV_PIXEL', 2); - NIKOLOV_IMPROVED = new NodePromotionStrategy('NIKOLOV_IMPROVED', 3); - NIKOLOV_IMPROVED_PIXEL = new NodePromotionStrategy('NIKOLOV_IMPROVED_PIXEL', 4); - DUMMYNODE_PERCENTAGE = new NodePromotionStrategy('DUMMYNODE_PERCENTAGE', 5); - NODECOUNT_PERCENTAGE = new NodePromotionStrategy('NODECOUNT_PERCENTAGE', 6); - NO_BOUNDARY = new NodePromotionStrategy('NO_BOUNDARY', 7); -} - -function NodePromotionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_58(name_0){ - $clinit_NodePromotionStrategy(); - return valueOf(($clinit_NodePromotionStrategy$Map() , $MAP_46), name_0); -} - -function values_64(){ - $clinit_NodePromotionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]); -} - -defineClass(260, 22, {3:1, 35:1, 22:1, 260:1}, NodePromotionStrategy); -var DUMMYNODE_PERCENTAGE, NIKOLOV, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, NIKOLOV_PIXEL, NODECOUNT_PERCENTAGE, NONE_9, NO_BOUNDARY; -var Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePromotionStrategy', 260, Ljava_lang_Enum_2_classLit, values_64, valueOf_58); -function $clinit_NodePromotionStrategy$Map(){ - $clinit_NodePromotionStrategy$Map = emptyMethod; - $MAP_46 = createValueOfMap(($clinit_NodePromotionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]))); -} - -var $MAP_46; -function $clinit_OrderingStrategy(){ - $clinit_OrderingStrategy = emptyMethod; - NONE_10 = new OrderingStrategy('NONE', 0); - NODES_AND_EDGES = new OrderingStrategy('NODES_AND_EDGES', 1); - PREFER_EDGES = new OrderingStrategy('PREFER_EDGES', 2); -} - -function OrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_59(name_0){ - $clinit_OrderingStrategy(); - return valueOf(($clinit_OrderingStrategy$Map() , $MAP_47), name_0); -} - -function values_65(){ - $clinit_OrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]); -} - -defineClass(339, 22, {3:1, 35:1, 22:1, 339:1}, OrderingStrategy); -var NODES_AND_EDGES, NONE_10, PREFER_EDGES; -var Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'OrderingStrategy', 339, Ljava_lang_Enum_2_classLit, values_65, valueOf_59); -function $clinit_OrderingStrategy$Map(){ - $clinit_OrderingStrategy$Map = emptyMethod; - $MAP_47 = createValueOfMap(($clinit_OrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]))); -} - -var $MAP_47; -function $clinit_PortSortingStrategy(){ - $clinit_PortSortingStrategy = emptyMethod; - INPUT_ORDER = new PortSortingStrategy('INPUT_ORDER', 0); - PORT_DEGREE = new PortSortingStrategy('PORT_DEGREE', 1); -} - -function PortSortingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_60(name_0){ - $clinit_PortSortingStrategy(); - return valueOf(($clinit_PortSortingStrategy$Map() , $MAP_48), name_0); -} - -function values_66(){ - $clinit_PortSortingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]); -} - -defineClass(421, 22, {3:1, 35:1, 22:1, 421:1}, PortSortingStrategy); -var INPUT_ORDER, PORT_DEGREE; -var Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortSortingStrategy', 421, Ljava_lang_Enum_2_classLit, values_66, valueOf_60); -function $clinit_PortSortingStrategy$Map(){ - $clinit_PortSortingStrategy$Map = emptyMethod; - $MAP_48 = createValueOfMap(($clinit_PortSortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]))); -} - -var $MAP_48; -function $clinit_PortType(){ - $clinit_PortType = emptyMethod; - UNDEFINED_0 = new PortType('UNDEFINED', 0); - INPUT = new PortType('INPUT', 1); - OUTPUT = new PortType('OUTPUT', 2); -} - -function PortType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_61(name_0){ - $clinit_PortType(); - return valueOf(($clinit_PortType$Map() , $MAP_49), name_0); -} - -function values_67(){ - $clinit_PortType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]); -} - -defineClass(452, 22, {3:1, 35:1, 22:1, 452:1}, PortType); -var INPUT, OUTPUT, UNDEFINED_0; -var Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortType', 452, Ljava_lang_Enum_2_classLit, values_67, valueOf_61); -function $clinit_PortType$Map(){ - $clinit_PortType$Map = emptyMethod; - $MAP_49 = createValueOfMap(($clinit_PortType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]))); -} - -var $MAP_49; -function $clinit_SelfLoopDistributionStrategy(){ - $clinit_SelfLoopDistributionStrategy = emptyMethod; - EQUALLY = new SelfLoopDistributionStrategy('EQUALLY', 0); - NORTH_2 = new SelfLoopDistributionStrategy('NORTH', 1); - NORTH_SOUTH = new SelfLoopDistributionStrategy('NORTH_SOUTH', 2); -} - -function SelfLoopDistributionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_62(name_0){ - $clinit_SelfLoopDistributionStrategy(); - return valueOf(($clinit_SelfLoopDistributionStrategy$Map() , $MAP_50), name_0); -} - -function values_68(){ - $clinit_SelfLoopDistributionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]); -} - -defineClass(375, 22, {3:1, 35:1, 22:1, 375:1}, SelfLoopDistributionStrategy); -var EQUALLY, NORTH_2, NORTH_SOUTH; -var Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopDistributionStrategy', 375, Ljava_lang_Enum_2_classLit, values_68, valueOf_62); -function $clinit_SelfLoopDistributionStrategy$Map(){ - $clinit_SelfLoopDistributionStrategy$Map = emptyMethod; - $MAP_50 = createValueOfMap(($clinit_SelfLoopDistributionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]))); -} - -var $MAP_50; -function $clinit_SelfLoopOrderingStrategy(){ - $clinit_SelfLoopOrderingStrategy = emptyMethod; - STACKED = new SelfLoopOrderingStrategy('STACKED', 0); - SEQUENCED = new SelfLoopOrderingStrategy('SEQUENCED', 1); -} - -function SelfLoopOrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_63(name_0){ - $clinit_SelfLoopOrderingStrategy(); - return valueOf(($clinit_SelfLoopOrderingStrategy$Map() , $MAP_51), name_0); -} - -function values_69(){ - $clinit_SelfLoopOrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]); -} - -defineClass(376, 22, {3:1, 35:1, 22:1, 376:1}, SelfLoopOrderingStrategy); -var SEQUENCED, STACKED; -var Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopOrderingStrategy', 376, Ljava_lang_Enum_2_classLit, values_69, valueOf_63); -function $clinit_SelfLoopOrderingStrategy$Map(){ - $clinit_SelfLoopOrderingStrategy$Map = emptyMethod; - $MAP_51 = createValueOfMap(($clinit_SelfLoopOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]))); -} - -var $MAP_51; -function $getHorizontalSpacing(this$static, nt1, nt2){ - return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsHorizontal); -} - -function $getLocalSpacing(this$static, nt1, nt2, nodeTypeSpacingMapping){ - var layoutOption; - layoutOption = nodeTypeSpacingMapping[nt1.ordinal][nt2.ordinal]; - return $doubleValue(castToDouble($getProperty(this$static.graph_0, layoutOption))); -} - -function $getLocalSpacing_0(n1, n2, nodeTypeSpacingMapping){ - var layoutOption, s1, s2, t1, t2; - t1 = n1.type_0; - t2 = n2.type_0; - layoutOption = nodeTypeSpacingMapping[t1.ordinal][t2.ordinal]; - s1 = castToDouble(getIndividualOrDefault(n1, layoutOption)); - s2 = castToDouble(getIndividualOrDefault(n2, layoutOption)); - return $wnd.Math.max((checkCriticalNotNull(s1) , s1), (checkCriticalNotNull(s2) , s2)); -} - -function $getVerticalSpacing(this$static, nt1, nt2){ - return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsVertical); -} - -function $getVerticalSpacing_0(this$static, n1, n2){ - return $getLocalSpacing_0(n1, n2, this$static.nodeTypeSpacingOptionsVertical); -} - -function $nodeTypeSpacing(this$static, n1, n2, spacing){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacing); - setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacing); -} - -function $nodeTypeSpacing_0(this$static, n1, n2, spacingVert, spacingHorz){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacingVert); - setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacingVert); - setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n1.ordinal], n2.ordinal, spacingHorz); - setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n2.ordinal], n1.ordinal, spacingHorz); -} - -function $nodeTypeSpacing_1(this$static, nt, spacing){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacing); -} - -function $nodeTypeSpacing_2(this$static, nt, spacingVert, spacingHorz){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacingVert); - setCheck(this$static.nodeTypeSpacingOptionsHorizontal[nt.ordinal], nt.ordinal, spacingHorz); -} - -function Spacings(graph){ - var n; - this.graph_0 = graph; - n = ($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT])).length; - this.nodeTypeSpacingOptionsHorizontal = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); - this.nodeTypeSpacingOptionsVertical = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); - $nodeTypeSpacing_2(this, NORMAL, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0), SPACING_NODE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, NORMAL, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing(this, NORMAL, NORTH_SOUTH_PORT, SPACING_EDGE_NODE); - $nodeTypeSpacing(this, NORMAL, EXTERNAL_PORT, SPACING_EDGE_NODE); - $nodeTypeSpacing_0(this, NORMAL, LABEL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_2(this, LONG_EDGE, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); - $nodeTypeSpacing(this, LONG_EDGE, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing(this, LONG_EDGE, EXTERNAL_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing_0(this, LONG_EDGE, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_1(this, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing(this, NORTH_SOUTH_PORT, EXTERNAL_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing(this, NORTH_SOUTH_PORT, LABEL, SPACING_LABEL_NODE); - $nodeTypeSpacing_1(this, EXTERNAL_PORT, SPACING_PORT_PORT); - $nodeTypeSpacing_0(this, EXTERNAL_PORT, LABEL, SPACING_LABEL_PORT_VERTICAL, SPACING_LABEL_PORT_HORIZONTAL); - $nodeTypeSpacing_2(this, LABEL, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE); - $nodeTypeSpacing_2(this, BREAKING_POINT, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, BREAKING_POINT, NORMAL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, BREAKING_POINT, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, BREAKING_POINT, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); -} - -function getIndividualOrDefault(node, property){ - var individualSpacings, result; - result = null; - if ($hasProperty(node, ($clinit_LayeredOptions() , SPACING_INDIVIDUAL))) { - individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL), 94); - individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); - } - result == null && (result = $getProperty($getGraph(node), property)); - return result; -} - -defineClass(304, 1, {304:1}, Spacings); -var Lorg_eclipse_elk_alg_layered_options_Spacings_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'Spacings', 304); -function $clinit_SplineRoutingMode(){ - $clinit_SplineRoutingMode = emptyMethod; - CONSERVATIVE = new SplineRoutingMode('CONSERVATIVE', 0); - CONSERVATIVE_SOFT = new SplineRoutingMode('CONSERVATIVE_SOFT', 1); - SLOPPY = new SplineRoutingMode('SLOPPY', 2); -} - -function SplineRoutingMode(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_64(name_0){ - $clinit_SplineRoutingMode(); - return valueOf(($clinit_SplineRoutingMode$Map() , $MAP_52), name_0); -} - -function values_70(){ - $clinit_SplineRoutingMode(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]); -} - -defineClass(336, 22, {3:1, 35:1, 22:1, 336:1}, SplineRoutingMode); -var CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY; -var Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SplineRoutingMode', 336, Ljava_lang_Enum_2_classLit, values_70, valueOf_64); -function $clinit_SplineRoutingMode$Map(){ - $clinit_SplineRoutingMode$Map = emptyMethod; - $MAP_52 = createValueOfMap(($clinit_SplineRoutingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]))); -} - -var $MAP_52; -function $clinit_ValidifyStrategy(){ - $clinit_ValidifyStrategy = emptyMethod; - NO = new ValidifyStrategy('NO', 0); - GREEDY_0 = new ValidifyStrategy('GREEDY', 1); - LOOK_BACK = new ValidifyStrategy('LOOK_BACK', 2); -} - -function ValidifyStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_65(name_0){ - $clinit_ValidifyStrategy(); - return valueOf(($clinit_ValidifyStrategy$Map() , $MAP_53), name_0); -} - -function values_71(){ - $clinit_ValidifyStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]); -} - -defineClass(338, 22, {3:1, 35:1, 22:1, 338:1}, ValidifyStrategy); -var GREEDY_0, LOOK_BACK, NO; -var Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ValidifyStrategy', 338, Ljava_lang_Enum_2_classLit, values_71, valueOf_65); -function $clinit_ValidifyStrategy$Map(){ - $clinit_ValidifyStrategy$Map = emptyMethod; - $MAP_53 = createValueOfMap(($clinit_ValidifyStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]))); -} - -var $MAP_53; -function $clinit_WrappingStrategy(){ - $clinit_WrappingStrategy = emptyMethod; - OFF_0 = new WrappingStrategy('OFF', 0); - SINGLE_EDGE = new WrappingStrategy('SINGLE_EDGE', 1); - MULTI_EDGE = new WrappingStrategy('MULTI_EDGE', 2); -} - -function WrappingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_66(name_0){ - $clinit_WrappingStrategy(); - return valueOf(($clinit_WrappingStrategy$Map() , $MAP_54), name_0); -} - -function values_72(){ - $clinit_WrappingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]); -} - -defineClass(377, 22, {3:1, 35:1, 22:1, 377:1}, WrappingStrategy); -var MULTI_EDGE, OFF_0, SINGLE_EDGE; -var Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'WrappingStrategy', 377, Ljava_lang_Enum_2_classLit, values_72, valueOf_66); -function $clinit_WrappingStrategy$Map(){ - $clinit_WrappingStrategy$Map = emptyMethod; - $MAP_54 = createValueOfMap(($clinit_WrappingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]))); -} - -var $MAP_54; -function $clinit_DepthFirstCycleBreaker(){ - $clinit_DepthFirstCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); -} - -function $dfs_3(this$static, n){ - var out, out$iterator, target; - if (this$static.visited[n.id_0]) { - return; - } - this$static.visited[n.id_0] = true; - this$static.active[n.id_0] = true; - for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { - out = castTo($next_0(out$iterator), 17); - if ($isSelfLoop(out)) { - continue; - } - target = out.target.owner; - this$static.active[target.id_0]?$add_3(this$static.edgesToBeReversed, out):$dfs_3(this$static, target); - } - this$static.active[n.id_0] = false; -} - -function $process_57(this$static, graph, monitor){ - var edge, edge$iterator, i, index_0, n, node, node$iterator, nodeCount, nodes, source, source$iterator; - $begin(monitor, 'Depth-first cycle removal', 1); - nodes = graph.layerlessNodes; - nodeCount = nodes.array.length; - this$static.sources = new ArrayList; - this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); - this$static.active = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); - this$static.edgesToBeReversed = new ArrayList; - index_0 = 0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = index_0; - isEmpty_13($getIncomingEdges(node)) && $add_3(this$static.sources, node); - ++index_0; - } - for (source$iterator = new ArrayList$1(this$static.sources); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 10); - $dfs_3(this$static, source); - } - for (i = 0; i < nodeCount; i++) { - if (!this$static.visited[i]) { - n = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 10)); - $dfs_3(this$static, n); - } - } - for (edge$iterator = new ArrayList$1(this$static.edgesToBeReversed); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $reverse_0(edge, true); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - } - this$static.sources = null; - this$static.visited = null; - this$static.active = null; - this$static.edgesToBeReversed = null; - $done_0(monitor); -} - -function DepthFirstCycleBreaker(){ - $clinit_DepthFirstCycleBreaker(); -} - -defineClass(1383, 1, $intern_113, DepthFirstCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION; -} -; -_.process = function process_54(graph, monitor){ - $process_57(this, castTo(graph, 37), monitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION; -var Lorg_eclipse_elk_alg_layered_p1cycles_DepthFirstCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'DepthFirstCycleBreaker', 1383); -function $clinit_GreedyCycleBreaker(){ - $clinit_GreedyCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_0 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); -} - -function $process_58(this$static, layeredGraph, monitor){ - var edge, edge$array, edge$index, edge$iterator, edge$iterator0, edge$max, index_0, maxNode, maxNodes, maxOutflow, nextLeft, nextRight, node, node$iterator, node$iterator0, node$iterator1, nodes, outflow, outgoingEdges, port, port$array, port$index, port$iterator, port$max, ports, priority, shiftBase, sink, source, targetIx, unprocessedNodeCount; - $begin(monitor, 'Greedy cycle removal', 1); - nodes = layeredGraph.layerlessNodes; - unprocessedNodeCount = nodes.array.length; - this$static.indeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); - this$static.outdeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); - this$static.mark = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); - index_0 = 0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = index_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - if (edge.source.owner == node) { - continue; - } - priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; - this$static.indeg[index_0] += priority > 0?priority + 1:1; - } - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (edge.target.owner == node) { - continue; - } - priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; - this$static.outdeg[index_0] += priority > 0?priority + 1:1; - } - } - this$static.outdeg[index_0] == 0?$add_7(this$static.sinks, node):this$static.indeg[index_0] == 0 && $add_7(this$static.sources, node); - ++index_0; - } - nextRight = -1; - nextLeft = 1; - maxNodes = new ArrayList; - this$static.random_0 = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); - while (unprocessedNodeCount > 0) { - while (this$static.sinks.size_0 != 0) { - sink = castTo($removeFirst_0(this$static.sinks), 10); - this$static.mark[sink.id_0] = nextRight--; - $updateNeighbors(this$static, sink); - --unprocessedNodeCount; - } - while (this$static.sources.size_0 != 0) { - source = castTo($removeFirst_0(this$static.sources), 10); - this$static.mark[source.id_0] = nextLeft++; - $updateNeighbors(this$static, source); - --unprocessedNodeCount; - } - if (unprocessedNodeCount > 0) { - maxOutflow = $intern_42; - for (node$iterator1 = new ArrayList$1(nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - if (this$static.mark[node.id_0] == 0) { - outflow = this$static.outdeg[node.id_0] - this$static.indeg[node.id_0]; - if (outflow >= maxOutflow) { - if (outflow > maxOutflow) { - maxNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxOutflow = outflow; - } - maxNodes.array[maxNodes.array.length] = node; - } - } - } - maxNode = this$static.chooseNodeWithMaxOutflow(maxNodes); - this$static.mark[maxNode.id_0] = nextLeft++; - $updateNeighbors(this$static, maxNode); - --unprocessedNodeCount; - } - } - shiftBase = nodes.array.length + 1; - for (index_0 = 0; index_0 < nodes.array.length; index_0++) { - this$static.mark[index_0] < 0 && (this$static.mark[index_0] += shiftBase); - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - ports = toPortArray(node.ports); - for (port$array = ports , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { - port = port$array[port$index]; - outgoingEdges = toEdgeArray(port.outgoingEdges); - for (edge$array = outgoingEdges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - targetIx = edge.target.owner.id_0; - if (this$static.mark[node.id_0] > this$static.mark[targetIx]) { - $reverse_0(edge, true); - $setProperty_0(layeredGraph, CYCLIC, ($clinit_Boolean() , true)); - } - } - } - } - this$static.indeg = null; - this$static.outdeg = null; - this$static.mark = null; - $reset_0(this$static.sources); - $reset_0(this$static.sinks); - $done_0(monitor); -} - -function $updateNeighbors(this$static, node){ - var connectedPort, edge, edge$iterator, endpoint, index_0, port, port$iterator, priority; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - connectedPort = edge.source == port?edge.target:edge.source; - endpoint = connectedPort.owner; - if (node == endpoint) { - continue; - } - priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; - priority < 0 && (priority = 0); - index_0 = endpoint.id_0; - if (this$static.mark[index_0] == 0) { - if (edge.target == connectedPort) { - this$static.indeg[index_0] -= priority + 1; - this$static.indeg[index_0] <= 0 && this$static.outdeg[index_0] > 0 && $add_7(this$static.sources, endpoint); - } - else { - this$static.outdeg[index_0] -= priority + 1; - this$static.outdeg[index_0] <= 0 && this$static.indeg[index_0] > 0 && $add_7(this$static.sinks, endpoint); - } - } - } - } -} - -function GreedyCycleBreaker(){ - $clinit_GreedyCycleBreaker(); - this.sources = new LinkedList; - this.sinks = new LinkedList; -} - -defineClass(782, 1, $intern_113, GreedyCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_0(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_0; -} -; -_.process = function process_55(layeredGraph, monitor){ - $process_58(this, castTo(layeredGraph, 37), monitor); -} -; -_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow(nodes){ - return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_0; -var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyCycleBreaker', 782); -function GreedyModelOrderCycleBreaker(){ - $clinit_GreedyCycleBreaker(); - GreedyCycleBreaker.call(this); -} - -defineClass(1386, 782, $intern_113, GreedyModelOrderCycleBreaker); -_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow_0(nodes){ - var minimumModelOrder, node, node$iterator, returnNode; - returnNode = null; - minimumModelOrder = $intern_0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if ($hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 < minimumModelOrder) { - minimumModelOrder = castTo($getProperty(node, MODEL_ORDER_0), 19).value_0; - returnNode = node; - } - } - if (!returnNode) { - return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); - } - return returnNode; -} -; -var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyModelOrderCycleBreaker', 1386); -function $clinit_InteractiveCycleBreaker(){ - $clinit_InteractiveCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_1 = $addAfter($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P5_EDGE_ROUTING, REVERSED_EDGE_RESTORER); -} - -function $findCycles(this$static, node1, revEdges){ - var edge, edge$iterator, node2, port, port$iterator; - node1.id_0 = -1; - for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node2 = edge.target.owner; - node1 != node2 && (node2.id_0 < 0?revEdges.add_2(edge):node2.id_0 > 0 && $findCycles(this$static, node2, revEdges)); - } - } - node1.id_0 = 0; -} - -function $process_59(this$static, layeredGraph, monitor){ - var edge, edge$iterator, edge$iterator0, edge$iterator1, node, node$iterator, port, port$iterator, revEdges, source, source$iterator, sourcex, target, targetx; - $begin(monitor, 'Interactive cycle breaking', 1); - revEdges = new ArrayList; - for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 10); - source.id_0 = 1; - sourcex = $getInteractiveReferencePoint(source).x_0; - for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - target = edge.target.owner; - if (target != source) { - targetx = $getInteractiveReferencePoint(target).x_0; - targetx < sourcex && (revEdges.array[revEdges.array.length] = edge , true); - } - } - } - } - for (edge$iterator1 = new ArrayList$1(revEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { - edge = castTo($next_7(edge$iterator1), 17); - $reverse_0(edge, true); - } - revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 > 0 && $findCycles(this$static, node, revEdges); - } - for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $reverse_0(edge, true); - } - revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(monitor); -} - -function InteractiveCycleBreaker(){ - $clinit_InteractiveCycleBreaker(); -} - -defineClass(1384, 1, $intern_113, InteractiveCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_1(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_1; -} -; -_.process = function process_56(layeredGraph, monitor){ - $process_59(this, castTo(layeredGraph, 37), monitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_1; -var Lorg_eclipse_elk_alg_layered_p1cycles_InteractiveCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'InteractiveCycleBreaker', 1384); -function $clinit_ModelOrderCycleBreaker(){ - $clinit_ModelOrderCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_2 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); -} - -function $computeConstraintModelOrder(this$static, node, offset){ - var modelOrder; - modelOrder = 0; - switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 2: - modelOrder = 2 * -offset + this$static.firstSeparateModelOrder; - ++this$static.firstSeparateModelOrder; - break; - case 1: - modelOrder = -offset; - break; - case 3: - modelOrder = offset; - break; - case 4: - modelOrder = 2 * offset + this$static.lastSeparateModelOrder; - ++this$static.lastSeparateModelOrder; - } - $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (modelOrder += castTo($getProperty(node, MODEL_ORDER_0), 19).value_0); - return modelOrder; -} - -function $process_60(this$static, layeredGraph, monitor){ - var edge, edge$iterator, edge$iterator0, modelOrderSource, modelOrderTarget, node, node$iterator, offset, port, port$iterator, revEdges, source, source$iterator, target; - $begin(monitor, 'Model order cycle breaking', 1); - this$static.firstSeparateModelOrder = 0; - this$static.lastSeparateModelOrder = 0; - revEdges = new ArrayList; - offset = layeredGraph.layerlessNodes.array.length; - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (offset = $wnd.Math.max(offset, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 + 1)); - } - for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 10); - modelOrderSource = $computeConstraintModelOrder(this$static, source, offset); - for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - target = edge.target.owner; - modelOrderTarget = $computeConstraintModelOrder(this$static, target, offset); - modelOrderTarget < modelOrderSource && (revEdges.array[revEdges.array.length] = edge , true); - } - } - } - for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $reverse_0(edge, true); - $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - } - revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(monitor); -} - -function ModelOrderCycleBreaker(){ - $clinit_ModelOrderCycleBreaker(); -} - -defineClass(1385, 1, $intern_113, ModelOrderCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_2(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_2; -} -; -_.process = function process_57(layeredGraph, monitor){ - $process_60(this, castTo(layeredGraph, 37), monitor); -} -; -_.firstSeparateModelOrder = 0; -_.lastSeparateModelOrder = 0; -var INTERMEDIATE_PROCESSING_CONFIGURATION_2; -var Lorg_eclipse_elk_alg_layered_p1cycles_ModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'ModelOrderCycleBreaker', 1385); -function $clinit_CoffmanGrahamLayerer(){ - $clinit_CoffmanGrahamLayerer = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION_0 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} - -function $canAdd_0(n, l){ - var e, e$iterator, v; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - v = e.target.owner; - if (v.layer == l) { - return false; - } - } - return true; -} - -function $compareNodesInTopo(this$static, u, v){ - var inListU, inLsitV, itU, itV, iu, iv; - inListU = castTo($get(this$static.inTopo, u), 15); - inLsitV = castTo($get(this$static.inTopo, v), 15); - itU = inListU.listIterator_1(inListU.size_1()); - itV = inLsitV.listIterator_1(inLsitV.size_1()); - while (itU.hasPrevious() && itV.hasPrevious()) { - iu = castTo(itU.previous_0(), 19); - iv = castTo(itV.previous_0(), 19); - if (iu != iv) { - return compare_5(iu.value_0, iv.value_0); - } - } - return !itU.hasNext_0() && !itV.hasNext_0()?0:itU.hasNext_0()?1:-1; -} - -function $createLayer(graph, layers){ - var aLayer; - aLayer = new Layer(graph); - layers.array[layers.array.length] = aLayer; - return aLayer; -} - -function $dfs_4(this$static, start_0, v){ - var out, out$iterator, transitive, transitive$iterator, w; - if (this$static.nodeMark[v.id_0]) { - return; - } - for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { - out = castTo($next_0(out$iterator), 17); - w = out.target.owner; - for (transitive$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(w).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(transitive$iterator);) { - transitive = castTo($next_0(transitive$iterator), 17); - transitive.source.owner == start_0 && (this$static.edgeMark[transitive.id_0] = true); - } - $dfs_4(this$static, start_0, w); - } - this$static.nodeMark[v.id_0] = true; -} - -function $lambda$1_2(this$static, n1_0, n2_1){ - return -compare_5(this$static.topoOrd[n1_0.id_0], this$static.topoOrd[n2_1.id_0]); -} - -function $process_61(this$static, layeredGraph, progressMonitor){ - var currentLayer, e, e$iterator, edgeIndex, i, index_0, j, layers, n, n$iterator, sinks, sources, src_0, tgt, u, v, v$iterator, v$iterator0, w; - $begin(progressMonitor, 'Coffman-Graham Layering', 1); - if (layeredGraph.layerlessNodes.array.length == 0) { - $done_0(progressMonitor); - return; - } - w = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)), 19).value_0; - index_0 = 0; - edgeIndex = 0; - for (n$iterator = new ArrayList$1(layeredGraph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = index_0++; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - e.id_0 = edgeIndex++; - } - } - this$static.nodeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, index_0, 16, 1); - this$static.edgeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, edgeIndex, 16, 1); - this$static.inDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); - this$static.outDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); - this$static.topoOrd = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); - $clear(this$static.inTopo); - $transitiveReduction(this$static, layeredGraph); - sources = new PriorityQueue(new CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type(this$static)); - for (v$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator0.i < v$iterator0.this$01.array.length;) { - v = castTo($next_7(v$iterator0), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - this$static.edgeMark[e.id_0] || ++this$static.inDeg[v.id_0]; - } - this$static.inDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sources, v)) , true); - } - i = 0; - while (sources.heap.array.length != 0) { - v = castTo($poll_0(sources), 10); - this$static.topoOrd[v.id_0] = i++; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (this$static.edgeMark[e.id_0]) { - continue; - } - tgt = e.target.owner; - --this$static.inDeg[tgt.id_0]; - $put(this$static.inTopo, tgt, valueOf_4(this$static.topoOrd[v.id_0])); - this$static.inDeg[tgt.id_0] == 0 && (checkCriticalState_0($offer(sources, tgt)) , true); - } - } - sinks = new PriorityQueue(new CoffmanGrahamLayerer$lambda$1$Type(this$static)); - for (v$iterator = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - this$static.edgeMark[e.id_0] || ++this$static.outDeg[v.id_0]; - } - this$static.outDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sinks, v)) , true); - } - layers = new ArrayList; - currentLayer = $createLayer(layeredGraph, layers); - while (sinks.heap.array.length != 0) { - u = castTo($poll_0(sinks), 10); - (currentLayer.nodes.array.length >= w || !$canAdd_0(u, currentLayer)) && (currentLayer = $createLayer(layeredGraph, layers)); - $setLayer_0(u, currentLayer); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(u).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (this$static.edgeMark[e.id_0]) { - continue; - } - src_0 = e.source.owner; - --this$static.outDeg[src_0.id_0]; - this$static.outDeg[src_0.id_0] == 0 && (checkCriticalState_0($offer(sinks, src_0)) , true); - } - } - for (j = layers.array.length - 1; j >= 0; --j) { - $add_3(layeredGraph.layers, (checkCriticalElementIndex(j, layers.array.length) , castTo(layers.array[j], 29))); - } - layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(progressMonitor); -} - -function $transitiveReduction(this$static, graph){ - var out, out$iterator, start_0, start$iterator; - for (start$iterator = new ArrayList$1(graph.layerlessNodes); start$iterator.i < start$iterator.this$01.array.length;) { - start_0 = castTo($next_7(start$iterator), 10); - fill_3(this$static.nodeMark); - for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(start_0).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { - out = castTo($next_0(out$iterator), 17); - $dfs_4(this$static, start_0, out.target.owner); - } - } -} - -function CoffmanGrahamLayerer(){ - $clinit_CoffmanGrahamLayerer(); - this.inTopo = new ArrayListMultimap; -} - -defineClass(1389, 1, $intern_113, CoffmanGrahamLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_3(graph){ - return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_0; -} -; -_.process = function process_58(layeredGraph, progressMonitor){ - $process_61(this, castTo(layeredGraph, 37), progressMonitor); -} -; -var BASELINE_PROCESSING_CONFIGURATION_0; -var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer', 1389); -function CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1390, 1, $intern_88, CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type); -_.compare_1 = function compare_61(arg0, arg1){ - return $compareNodesInTopo(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_142(other){ - return this === other; -} -; -_.reversed = function reversed_53(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type', 1390); -function CoffmanGrahamLayerer$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1391, 1, $intern_88, CoffmanGrahamLayerer$lambda$1$Type); -_.compare_1 = function compare_62(arg0, arg1){ - return $lambda$1_2(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_143(other){ - return this === other; -} -; -_.reversed = function reversed_54(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/lambda$1$Type', 1391); -function $checkNode(this$static, node1, graph){ - var edge, edge$iterator, layer1, layer2, newIndex, newLayer, node2, port, port$iterator; - node1.id_0 = 1; - layer1 = node1.layer; - for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node2 = edge.target.owner; - if (node1 != node2) { - layer2 = node2.layer; - if (layer2.id_0 <= layer1.id_0) { - newIndex = layer1.id_0 + 1; - if (newIndex == graph.layers.array.length) { - newLayer = new Layer(graph); - newLayer.id_0 = newIndex; - $add_3(graph.layers, newLayer); - $setLayer_0(node2, newLayer); - } - else { - newLayer = castTo($get_11(graph.layers, newIndex), 29); - $setLayer_0(node2, newLayer); - } - $checkNode(this$static, node2, graph); - } - } - } - } -} - -function $process_62(this$static, layeredGraph, monitor){ - var currentSpans, foundSpan, layer, layerIterator, layers, maxx, minx, nextIndex, node, node$iterator, node$iterator0, node$iterator1, span_0, span$iterator, spanIter; - $begin(monitor, 'Interactive node layering', 1); - currentSpans = new ArrayList; - for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - minx = node.pos.x_0; - maxx = minx + node.size_0.x_0; - maxx = $wnd.Math.max(minx + 1, maxx); - spanIter = new AbstractList$ListIteratorImpl(currentSpans, 0); - foundSpan = null; - while (spanIter.i < spanIter.this$01_0.size_1()) { - span_0 = (checkCriticalElement(spanIter.i < spanIter.this$01_0.size_1()) , castTo(spanIter.this$01_0.get_0(spanIter.last = spanIter.i++), 569)); - if (span_0.start_0 >= maxx) { - checkCriticalElement(spanIter.i > 0); - spanIter.this$01.get_0(spanIter.last = --spanIter.i); - break; - } - else if (span_0.end > minx) { - if (!foundSpan) { - $add_3(span_0.nodes, node); - span_0.start_0 = $wnd.Math.min(span_0.start_0, minx); - span_0.end = $wnd.Math.max(span_0.end, maxx); - foundSpan = span_0; - } - else { - $addAll_2(foundSpan.nodes, span_0.nodes); - foundSpan.end = $wnd.Math.max(foundSpan.end, span_0.end); - $remove_8(spanIter); - } - } - } - if (!foundSpan) { - foundSpan = new InteractiveLayerer$LayerSpan; - foundSpan.start_0 = minx; - foundSpan.end = maxx; - $add_1(spanIter, foundSpan); - $add_3(foundSpan.nodes, node); - } - } - layers = layeredGraph.layers; - nextIndex = 0; - for (span$iterator = new ArrayList$1(currentSpans); span$iterator.i < span$iterator.this$01.array.length;) { - span_0 = castTo($next_7(span$iterator), 569); - layer = new Layer(layeredGraph); - layer.id_0 = nextIndex++; - layers.array[layers.array.length] = layer; - for (node$iterator1 = new ArrayList$1(span_0.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - $setLayer_0(node, layer); - node.id_0 = 0; - } - } - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 == 0 && $checkNode(this$static, node, layeredGraph); - } - layerIterator = new AbstractList$ListIteratorImpl(layers, 0); - while (layerIterator.i < layerIterator.this$01_0.size_1()) { - (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)).nodes.array.length == 0 && $remove_8(layerIterator); - } - layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(monitor); -} - -function InteractiveLayerer(){ -} - -defineClass(1392, 1, $intern_113, InteractiveLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_4(graph){ - return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} -; -_.process = function process_59(layeredGraph, monitor){ - $process_62(this, castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer', 1392); -function InteractiveLayerer$LayerSpan(){ - this.nodes = new ArrayList; -} - -defineClass(569, 1, {569:1}, InteractiveLayerer$LayerSpan); -_.end = 0; -_.start_0 = 0; -var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer$LayerSpan_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer/LayerSpan', 569); -function $clinit_LongestPathLayerer(){ - $clinit_LongestPathLayerer = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION_1 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} - -function $process_63(this$static, thelayeredGraph, monitor){ - var index_0, node, node$iterator, node$iterator0, nodes; - $begin(monitor, 'Longest path layering', 1); - this$static.layeredGraph = thelayeredGraph; - nodes = this$static.layeredGraph.layerlessNodes; - this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.array.length, 15, 1); - index_0 = 0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = index_0; - this$static.nodeHeights[index_0] = -1; - ++index_0; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $visit(this$static, node); - } - nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.layeredGraph = null; - this$static.nodeHeights = null; - $done_0(monitor); -} - -function $putNode(this$static, node, height){ - var i, layers; - layers = this$static.layeredGraph.layers; - for (i = layers.array.length; i < height; i++) { - $add_2(layers, 0, new Layer(this$static.layeredGraph)); - } - $setLayer_0(node, castTo($get_11(layers, layers.array.length - height), 29)); - this$static.nodeHeights[node.id_0] = height; -} - -function $visit(this$static, node){ - var edge, edge$iterator, height, maxHeight, port, port$iterator, targetHeight, targetNode; - height = this$static.nodeHeights[node.id_0]; - if (height >= 0) { - return height; - } - else { - maxHeight = 1; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - targetNode = edge.target.owner; - if (node != targetNode) { - targetHeight = $visit(this$static, targetNode); - maxHeight = $wnd.Math.max(maxHeight, targetHeight + 1); - } - } - } - $putNode(this$static, node, maxHeight); - return maxHeight; - } -} - -function LongestPathLayerer(){ - $clinit_LongestPathLayerer(); -} - -defineClass(1388, 1, $intern_113, LongestPathLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_5(graph){ - return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_1; -} -; -_.process = function process_60(thelayeredGraph, monitor){ - $process_63(this, castTo(thelayeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSING_CONFIGURATION_1; -var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathLayerer', 1388); -function $clinit_MinWidthLayerer(){ - $clinit_MinWidthLayerer = emptyMethod; - UPPERBOUND_ON_WIDTH_RANGE = closed_0(valueOf_4(1), valueOf_4(4)); - COMPENSATOR_RANGE = closed_0(valueOf_4(1), valueOf_4(2)); -} - -function $computeMinWidthLayering(this$static, upperBoundOnWidth, compensator, nodes, nodeSuccessors){ - var alreadyPlacedInCurrentLayer, alreadyPlacedInOtherLayers, currentLayer, currentNode, currentSpanningEdges, goingOutFromThisLayer, inDeg, layers, maxWidth, outDeg, realWidth, ubwConsiderSize, unplacedNodes, widthCurrent, widthUp; - layers = new ArrayList; - unplacedNodes = newLinkedHashSet(nodes); - ubwConsiderSize = upperBoundOnWidth * this$static.avgSize; - inDeg = 0; - outDeg = 0; - alreadyPlacedInCurrentLayer = new HashSet; - alreadyPlacedInOtherLayers = new HashSet; - currentLayer = new ArrayList; - widthCurrent = 0; - widthUp = 0; - maxWidth = 0; - realWidth = 0; - currentSpanningEdges = 0; - goingOutFromThisLayer = 0; - while (unplacedNodes.map_0.size_1() != 0) { - currentNode = $selectNode(unplacedNodes, nodeSuccessors, alreadyPlacedInOtherLayers); - if (currentNode) { - unplacedNodes.map_0.remove_0(currentNode) != null; - currentLayer.array[currentLayer.array.length] = currentNode; - alreadyPlacedInCurrentLayer.map_0.put(currentNode, alreadyPlacedInCurrentLayer); - outDeg = this$static.outDegree[currentNode.id_0]; - widthCurrent += this$static.normSize[currentNode.id_0] - outDeg * this$static.dummySize; - inDeg = this$static.inDegree[currentNode.id_0]; - widthUp += inDeg * this$static.dummySize; - goingOutFromThisLayer += outDeg * this$static.dummySize; - realWidth += this$static.normSize[currentNode.id_0]; - } - if (!currentNode || unplacedNodes.map_0.size_1() == 0 || widthCurrent >= ubwConsiderSize && this$static.normSize[currentNode.id_0] > outDeg * this$static.dummySize || widthUp >= compensator * ubwConsiderSize) { - layers.array[layers.array.length] = currentLayer; - currentLayer = new ArrayList; - $addAll(alreadyPlacedInOtherLayers, alreadyPlacedInCurrentLayer); - alreadyPlacedInCurrentLayer.map_0.clear_0(); - currentSpanningEdges -= goingOutFromThisLayer; - maxWidth = $wnd.Math.max(maxWidth, currentSpanningEdges * this$static.dummySize + realWidth); - currentSpanningEdges += widthUp; - widthCurrent = widthUp; - widthUp = 0; - goingOutFromThisLayer = 0; - realWidth = 0; - } - } - return new Pair(maxWidth, layers); -} - -function $countEdgesExceptSelfLoops(edges){ - var edge, edge$iterator, i; - i = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - edge.source.owner == edge.target.owner || ++i; - } - return i; -} - -function $precalcSuccessors(nodes){ - var edge, edge$iterator, node, node$iterator, outEdges, outNodes, successors; - successors = newArrayListWithCapacity(nodes.array.length); - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - outNodes = new HashSet; - outEdges = $getOutgoingEdges(node); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(outEdges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - edge.source.owner == edge.target.owner || $add_6(outNodes, edge.target.owner); - } - successors.array[successors.array.length] = outNodes; - } - return successors; -} - -function $process_64(this$static, layeredGraph, progressMonitor){ - var c, cEnd, cStart, candidateLayering, compensator, currentLayer, i, layerList, layerList$iterator, layering, layers, minNumOfLayers, minWidth, newNumOfLayers, newWidth, node, node$iterator, node$iterator0, node$iterator1, nodeSuccessors, notInserted, numOfNodes, result, size_0, ubw, ubwEnd, ubwStart, upperBoundOnWidth; - $begin(progressMonitor, 'MinWidth layering', 1); - layers = layeredGraph.layers; - notInserted = layeredGraph.layerlessNodes; - upperBoundOnWidth = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)), 19).value_0; - compensator = castTo($getProperty(layeredGraph, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0), 19).value_0; - this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); - this$static.minimumNodeSize = $intern_59; - for (node$iterator0 = new ArrayList$1(notInserted); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - size_0 = node.size_0.y_0; - this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); - } - this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); - numOfNodes = notInserted.array.length; - this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); - this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); - this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, numOfNodes, 15, 1); - i = 0; - this$static.avgSize = 0; - for (node$iterator1 = new ArrayList$1(notInserted); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - node.id_0 = i++; - this$static.inDegree[node.id_0] = $countEdgesExceptSelfLoops($getIncomingEdges(node)); - this$static.outDegree[node.id_0] = $countEdgesExceptSelfLoops($getOutgoingEdges(node)); - this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; - this$static.avgSize += this$static.normSize[node.id_0]; - } - this$static.dummySize /= this$static.minimumNodeSize; - this$static.avgSize /= numOfNodes; - nodeSuccessors = $precalcSuccessors(notInserted); - $sort(notInserted, reverseOrder(new MinWidthLayerer$MinOutgoingEdgesComparator(this$static))); - minWidth = $intern_59; - minNumOfLayers = $intern_0; - candidateLayering = null; - ubwStart = upperBoundOnWidth; - ubwEnd = upperBoundOnWidth; - cStart = compensator; - cEnd = compensator; - if (upperBoundOnWidth < 0) { - ubwStart = castTo(UPPERBOUND_ON_WIDTH_RANGE.lowerBound.endpoint_0(), 19).value_0; - ubwEnd = castTo(UPPERBOUND_ON_WIDTH_RANGE.upperBound.endpoint_0(), 19).value_0; - } - if (compensator < 0) { - cStart = castTo(COMPENSATOR_RANGE.lowerBound.endpoint_0(), 19).value_0; - cEnd = castTo(COMPENSATOR_RANGE.upperBound.endpoint_0(), 19).value_0; - } - for (ubw = ubwStart; ubw <= ubwEnd; ubw++) { - for (c = cStart; c <= cEnd; c++) { - result = $computeMinWidthLayering(this$static, ubw, c, notInserted, nodeSuccessors); - newWidth = $doubleValue(castToDouble(result.first)); - layering = castTo(result.second, 15); - newNumOfLayers = layering.size_1(); - if (newWidth < minWidth || newWidth == minWidth && newNumOfLayers < minNumOfLayers) { - minWidth = newWidth; - minNumOfLayers = newNumOfLayers; - candidateLayering = layering; - } - } - } - for (layerList$iterator = candidateLayering.iterator_0(); layerList$iterator.hasNext_0();) { - layerList = castTo(layerList$iterator.next_1(), 15); - currentLayer = new Layer(layeredGraph); - for (node$iterator = layerList.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - $setLayer_0(node, currentLayer); - } - layers.array[layers.array.length] = currentLayer; - } - reverse_2(layers); - notInserted.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(progressMonitor); -} - -function $selectNode(nodes, successors, targets){ - var node, node$iterator; - for (node$iterator = nodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - if ($containsAll(targets, castTo($get_11(successors, node.id_0), 14))) { - return node; - } - } - return null; -} - -function MinWidthLayerer(){ - $clinit_MinWidthLayerer(); -} - -defineClass(1395, 1, $intern_113, MinWidthLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_6(graph){ - return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} -; -_.process = function process_61(layeredGraph, progressMonitor){ - $process_64(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.avgSize = 0; -_.dummySize = 0; -_.minimumNodeSize = 0; -var COMPENSATOR_RANGE, UPPERBOUND_ON_WIDTH_RANGE; -var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer', 1395); -function $compare_18(this$static, o1, o2){ - var outs1, outs2; - outs1 = this$static.this$01.outDegree[o1.id_0]; - outs2 = this$static.this$01.outDegree[o2.id_0]; - if (outs1 < outs2) { - return -1; - } - if (outs1 == outs2) { - return 0; - } - return 1; -} - -function MinWidthLayerer$MinOutgoingEdgesComparator(this$0){ - this.this$01 = this$0; -} - -defineClass(1396, 1, $intern_88, MinWidthLayerer$MinOutgoingEdgesComparator); -_.compare_1 = function compare_63(o1, o2){ - return $compare_18(this, castTo(o1, 10), castTo(o2, 10)); -} -; -_.equals_0 = function equals_144(other){ - return this === other; -} -; -_.reversed = function reversed_55(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer$MinOutgoingEdgesComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer/MinOutgoingEdgesComparator', 1396); -function $clinit_NetworkSimplexLayerer(){ - $clinit_NetworkSimplexLayerer = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION_2 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} - -function $connectedComponents(this$static, theNodes){ - var components, counter, node, node$iterator, node$iterator0; - this$static.nodeVisited == null || this$static.nodeVisited.length < theNodes.array.length?(this$static.nodeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, theNodes.array.length, 16, 1)):fill_3(this$static.nodeVisited); - this$static.componentNodes = new ArrayList; - counter = 0; - for (node$iterator0 = new ArrayList$1(theNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = counter++; - } - components = new LinkedList; - for (node$iterator = new ArrayList$1(theNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (!this$static.nodeVisited[node.id_0]) { - $connectedComponentsDFS(this$static, node); - components.size_0 == 0 || (checkCriticalElement(components.size_0 != 0) , castTo(components.header.next_0.value_0, 15)).size_1() < this$static.componentNodes.array.length?$addFirst_0(components, this$static.componentNodes):$addLast_0(components, this$static.componentNodes); - this$static.componentNodes = new ArrayList; - } - } - return components; -} - -function $connectedComponentsDFS(this$static, node){ - var edge, edge$iterator, opposite, port, port$iterator; - this$static.nodeVisited[node.id_0] = true; - $add_3(this$static.componentNodes, node); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - opposite = $getOpposite(port, edge).owner; - this$static.nodeVisited[opposite.id_0] || $connectedComponentsDFS(this$static, opposite); - } - } -} - -function $getOpposite(port, edge){ - if (edge.source == port) { - return edge.target; - } - else if (edge.target == port) { - return edge.source; - } - throw toJs(new IllegalArgumentException_0('Input edge is not connected to the input port.')); -} - -function $initialize_4(theNodes){ - var graph, lEdge, lEdge$iterator, lNode, lNode$iterator, lNode$iterator0, nNode, nodeMap; - nodeMap = new HashMap; - graph = new NGraph; - for (lNode$iterator0 = theNodes.iterator_0(); lNode$iterator0.hasNext_0();) { - lNode = castTo(lNode$iterator0.next_1(), 10); - nNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), graph); - $put_9(nodeMap.hashCodeMap, lNode, nNode); - } - for (lNode$iterator = theNodes.iterator_0(); lNode$iterator.hasNext_0();) { - lNode = castTo(lNode$iterator.next_1(), 10); - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - if ($isSelfLoop(lEdge)) { - continue; - } - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_SHORTNESS_0)), 19).value_0)), 1), castTo($get_10(nodeMap, lEdge.source.owner), 121)), castTo($get_10(nodeMap, lEdge.target.owner), 121))); - } - } - return graph; -} - -function $process_65(this$static, theLayeredGraph, monitor){ - var connComp, connComp$iterator, connectedComponents, graph, iterLimit, l, l$iterator, lNode, layerIdx, layers, nNode, nNode$iterator, previousLayeringNodeCounts, theNodes, thoroughness; - $begin(monitor, 'Network simplex layering', 1); - this$static.layeredGraph = theLayeredGraph; - thoroughness = castTo($getProperty(theLayeredGraph, ($clinit_LayeredOptions() , THOROUGHNESS_0)), 19).value_0 * 4; - theNodes = this$static.layeredGraph.layerlessNodes; - if (theNodes.array.length < 1) { - $done_0(monitor); - return; - } - connectedComponents = $connectedComponents(this$static, theNodes); - previousLayeringNodeCounts = null; - for (connComp$iterator = $listIterator_2(connectedComponents, 0); connComp$iterator.currentNode != connComp$iterator.this$01.tail;) { - connComp = castTo($next_10(connComp$iterator), 15); - iterLimit = thoroughness * round_int($wnd.Math.sqrt(connComp.size_1())); - graph = $initialize_4(connComp); - $execute_0($withBalancing($withPreviousLayering($withIterationLimit(forGraph(graph), iterLimit), previousLayeringNodeCounts), true), $subTask(monitor, 1)); - layers = this$static.layeredGraph.layers; - for (nNode$iterator = new ArrayList$1(graph.nodes); nNode$iterator.i < nNode$iterator.this$01.array.length;) { - nNode = castTo($next_7(nNode$iterator), 121); - while (layers.array.length <= nNode.layer) { - $add_2(layers, layers.array.length, new Layer(this$static.layeredGraph)); - } - lNode = castTo(nNode.origin_0, 10); - $setLayer_0(lNode, castTo($get_11(layers, nNode.layer), 29)); - } - if (connectedComponents.size_0 > 1) { - previousLayeringNodeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.layeredGraph.layers.array.length, 15, 1); - layerIdx = 0; - for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - previousLayeringNodeCounts[layerIdx++] = l.nodes.array.length; - } - } - } - theNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.componentNodes = null; - this$static.layeredGraph = null; - this$static.nodeVisited = null; - $done_0(monitor); -} - -function NetworkSimplexLayerer(){ - $clinit_NetworkSimplexLayerer(); -} - -defineClass(1387, 1, $intern_113, NetworkSimplexLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_7(graph){ - return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_2; -} -; -_.process = function process_62(theLayeredGraph, monitor){ - $process_65(this, castTo(theLayeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSING_CONFIGURATION_2; -var Lorg_eclipse_elk_alg_layered_p2layers_NetworkSimplexLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'NetworkSimplexLayerer', 1387); -function $computeDegrees(this$static){ - var node, node$iterator; - this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); - this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.inDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - this$static.outDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - } -} - -function $computeNormalizedSize(this$static){ - var node, node$iterator; - this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; - } -} - -function $computeSortedNodes(this$static){ - var node, node$iterator, unsortedNodes; - unsortedNodes = this$static.currentGraph.layerlessNodes; - this$static.sortedLayerlessNodes = (checkNotNull(unsortedNodes) , new ArrayList_1(unsortedNodes)); - for (node$iterator = new ArrayList$1(unsortedNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = $getRank(node).value_0; - } - $clinit_Collections(); - $sort(this$static.sortedLayerlessNodes, new StretchWidthLayerer$1); -} - -function $computeSuccessors(this$static){ - var currSucc, edge, edge$iterator, i, node, node$iterator; - i = 0; - this$static.successors = new ArrayList; - currSucc = new HashSet; - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = i; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $add_6(currSucc, edge.target.owner); - } - currSucc.map_0.remove_0(node) != null; - $add_3(this$static.successors, new HashSet_1(currSucc)); - currSucc.map_0.clear_0(); - ++i; - } -} - -function $conditionGoUp(this$static){ - var a, b; - a = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0] > this$static.maxWidth; - b = this$static.widthUp + this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize > this$static.maxWidth * this$static.upperLayerInfluence * this$static.dummySize; - return a || b; -} - -function $getAverageOutDegree(this$static){ - var allOut, node, node$iterator; - allOut = 0; - for (node$iterator = new ArrayList$1(this$static.currentGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - allOut += size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - } - return allOut / this$static.currentGraph.layerlessNodes.array.length; -} - -function $getRank(node){ - var max_0, pre, preEdge, preEdge$iterator, temp; - max_0 = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - for (preEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(preEdge$iterator);) { - preEdge = castTo($next_0(preEdge$iterator), 17); - pre = preEdge.source.owner; - temp = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(pre).val$inputs1.iterator_0(), new Iterables$10))); - max_0 = $wnd.Math.max(max_0, temp); - } - return valueOf_4(max_0); -} - -function $minMaxNodeSize(this$static){ - var node, node$iterator, size_0; - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - size_0 = node.size_0.y_0; - this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); - this$static.maximumNodeSize = $wnd.Math.max(this$static.maximumNodeSize, size_0); - } -} - -function $process_66(this$static, layeredGraph, progressMonitor){ - var currentLayer; - $begin(progressMonitor, 'StretchWidth layering', 1); - if (layeredGraph.layerlessNodes.array.length == 0) { - $done_0(progressMonitor); - return; - } - this$static.currentGraph = layeredGraph; - this$static.widthCurrent = 0; - this$static.widthUp = 0; - this$static.minimumNodeSize = $intern_59; - this$static.maximumNodeSize = $intern_60; - this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - $computeSortedNodes(this$static); - $computeSuccessors(this$static); - $computeDegrees(this$static); - $minMaxNodeSize(this$static); - $computeNormalizedSize(this$static); - this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); - this$static.maximumNodeSize = $wnd.Math.max(1, this$static.maximumNodeSize); - this$static.dummySize = this$static.dummySize / this$static.minimumNodeSize; - this$static.maxWidth = this$static.maximumNodeSize / this$static.minimumNodeSize; - this$static.upperLayerInfluence = $getAverageOutDegree(this$static); - currentLayer = new Layer(this$static.currentGraph); - $add_3(this$static.currentGraph.layers, currentLayer); - this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); - this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); - while (this$static.tempLayerlessNodes.array.length != 0) { - this$static.selectedNode = $selectNode_0(this$static); - if (!this$static.selectedNode || $conditionGoUp(this$static) && this$static.alreadyPlacedNodes.map_0.size_1() != 0) { - $updateOutGoing(this$static, currentLayer); - currentLayer = new Layer(this$static.currentGraph); - $add_3(this$static.currentGraph.layers, currentLayer); - $addAll(this$static.alreadyPlacedInOtherLayers, this$static.alreadyPlacedNodes); - this$static.alreadyPlacedNodes.map_0.clear_0(); - this$static.widthCurrent = this$static.widthUp; - this$static.widthUp = 0; - } - else { - if ($conditionGoUp(this$static)) { - this$static.currentGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - currentLayer = new Layer(this$static.currentGraph); - $add_3(this$static.currentGraph.layers, currentLayer); - this$static.widthCurrent = 0; - this$static.widthUp = 0; - this$static.alreadyPlacedNodes.map_0.clear_0(); - this$static.alreadyPlacedInOtherLayers.map_0.clear_0(); - ++this$static.maxWidth; - this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); - this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); - } - else { - $setLayer_0(this$static.selectedNode, currentLayer); - $remove_12(this$static.tempLayerlessNodes, this$static.selectedNode); - $add_6(this$static.alreadyPlacedNodes, this$static.selectedNode); - this$static.widthCurrent = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0]; - this$static.widthUp += this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize; - } - } - } - layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - reverse_2(layeredGraph.layers); - $done_0(progressMonitor); -} - -function $selectNode_0(this$static){ - var node, node$iterator; - for (node$iterator = new ArrayList$1(this$static.tempLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (this$static.remainingOutGoing[node.id_0] <= 0) { - return node; - } - } - return null; -} - -function $updateOutGoing(this$static, currentLayer){ - var edge, edge$iterator, node, node$iterator, pos; - for (node$iterator = new ArrayList$1(currentLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - pos = edge.source.owner.id_0; - this$static.remainingOutGoing[pos] = this$static.remainingOutGoing[pos] - 1; - } - } -} - -function StretchWidthLayerer(){ - this.alreadyPlacedNodes = new HashSet; - this.alreadyPlacedInOtherLayers = new HashSet; -} - -defineClass(1393, 1, $intern_113, StretchWidthLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_8(graph){ - return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} -; -_.process = function process_63(layeredGraph, progressMonitor){ - $process_66(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.dummySize = 0; -_.maxWidth = 0; -_.maximumNodeSize = 0; -_.minimumNodeSize = 0; -_.upperLayerInfluence = 0; -_.widthCurrent = 0; -_.widthUp = 0; -var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer', 1393); -function $compare_19(o1, o2){ - if (o1.id_0 < o2.id_0) { - return 1; - } - else if (o1.id_0 > o2.id_0) { - return -1; - } - return 0; -} - -function StretchWidthLayerer$1(){ -} - -defineClass(1394, 1, $intern_88, StretchWidthLayerer$1); -_.compare_1 = function compare_64(o1, o2){ - return $compare_19(castTo(o1, 10), castTo(o2, 10)); -} -; -_.equals_0 = function equals_145(other){ - return this === other; -} -; -_.reversed = function reversed_56(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer/1', 1394); -function create_15(cmt, r, currentOrder){ - return cmt == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)?new GreedyPortDistributor:$nextInternal(r, 1) != 0?new NodeRelativePortDistributor(currentOrder.length):new LayerTotalPortDistributor(currentOrder.length); -} - -function $calculateInLayerPortsBarycenterValues(this$static, node){ - var barycenter, connectedPort, connectedPort$iterator, inLayerConnections, inLayerPort, inLayerPort$iterator, layerSize, nodeIndexInLayer, portSide, sum; - nodeIndexInLayer = this$static.nodePositions[node.layer.id_0][node.id_0] + 1; - layerSize = node.layer.nodes.array.length + 1; - for (inLayerPort$iterator = new ArrayList$1(this$static.inLayerPorts); inLayerPort$iterator.i < inLayerPort$iterator.this$01.array.length;) { - inLayerPort = castTo($next_7(inLayerPort$iterator), 11); - sum = 0; - inLayerConnections = 0; - for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(inLayerPort), new LPort$2(inLayerPort)]))); $hasNext_1(connectedPort$iterator);) { - connectedPort = castTo($next_0(connectedPort$iterator), 11); - if (connectedPort.owner.layer == node.layer) { - sum += $positionOf(this$static, connectedPort.owner) + 1; - ++inLayerConnections; - } - } - barycenter = sum / inLayerConnections; - portSide = inLayerPort.side; - portSide == ($clinit_PortSide() , EAST_2)?barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + (layerSize - barycenter)):portSide == WEST_2 && (barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - (layerSize - barycenter))); - } -} - -function $calculatePortRanks(this$static, layer, portType){ - var consumedRank, nodeIx; - consumedRank = 0; - for (nodeIx = 0; nodeIx < layer.length; nodeIx++) { - consumedRank += this$static.calculatePortRanks(layer[nodeIx], consumedRank, portType); - } -} - -function $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy){ - var input_0, output, portDummyPort, portDummyPort$iterator, sum; - input_0 = false; - output = false; - for (portDummyPort$iterator = new ArrayList$1(portDummy.ports); portDummyPort$iterator.i < portDummyPort$iterator.this$01.array.length;) { - portDummyPort = castTo($next_7(portDummyPort$iterator), 11); - maskUndefined($getProperty(portDummyPort, ($clinit_InternalProperties_1() , ORIGIN_0))) === maskUndefined(port) && (portDummyPort.outgoingEdges.array.length == 0?portDummyPort.incomingEdges.array.length == 0 || (input_0 = true):(output = true)); - } - sum = 0; - input_0 && input_0 ^ output?(sum = port.side == ($clinit_PortSide() , NORTH_3)?-this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]:absurdlyLargeFloat - this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]):output && input_0 ^ output?(sum = this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0] + 1):input_0 && output && (sum = port.side == ($clinit_PortSide() , NORTH_3)?0:absurdlyLargeFloat / 2); - return sum; -} - -function $distributePorts(this$static, node, ports){ - this$static.inLayerPorts.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $iteratePortsAndCollectInLayerPorts(this$static, node, ports); - this$static.inLayerPorts.array.length == 0 || $calculateInLayerPortsBarycenterValues(this$static, node); -} - -function $distributePorts_0(this$static, node, side){ - if (!$isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - $distributePorts(this$static, node, $getPorts_1(node, side)); - $distributePorts(this$static, node, $getPorts_1(node, ($clinit_PortSide() , SOUTH_2))); - $distributePorts(this$static, node, $getPorts_1(node, NORTH_3)); - $clinit_Collections(); - $sort(node.ports, new AbstractBarycenterPortDistributor$lambda$0$Type(this$static)); - } -} - -function $distributePortsWhileSweeping(this$static, nodeOrder, currentIndex, isForwardSweep){ - var fixedLayer, freeLayer, node, node$array, node$array0, node$index, node$index0, node$max, node$max0, side; - $updateNodePositions(this$static, nodeOrder, currentIndex); - freeLayer = nodeOrder[currentIndex]; - side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); - if ($isNotFirstLayer(nodeOrder.length, currentIndex, isForwardSweep)) { - fixedLayer = nodeOrder[isForwardSweep?currentIndex - 1:currentIndex + 1]; - $calculatePortRanks(this$static, fixedLayer, isForwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); - for (node$array0 = freeLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { - node = node$array0[node$index0]; - $distributePorts_0(this$static, node, side); - } - $calculatePortRanks(this$static, freeLayer, isForwardSweep?($clinit_PortType() , INPUT):($clinit_PortType() , OUTPUT)); - for (node$array = fixedLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - !!node.nestedGraph || $distributePorts_0(this$static, node, $opposed(side)); - } - } - else { - for (node$array = freeLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $distributePorts_0(this$static, node, side); - } - } - return false; -} - -function $isNotFirstLayer(length_0, currentIndex, isForwardSweep){ - return isForwardSweep?currentIndex != 0:currentIndex != length_0 - 1; -} - -function $iteratePortsAndCollectInLayerPorts(this$static, node, ports){ - var absurdlyLargeFloat, connectedPort, incomingEdge, incomingEdge$iterator, northSouthPort, outgoingEdge, outgoingEdge$iterator, port, port$iterator, portDummy, sum; - this$static.minBarycenter = 0; - this$static.maxBarycenter = 0; - absurdlyLargeFloat = 2 * node.layer.nodes.array.length + 1; - PortIteration: for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - northSouthPort = port.side == ($clinit_PortSide() , NORTH_3) || port.side == SOUTH_2; - sum = 0; - if (northSouthPort) { - portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (!portDummy) { - continue; - } - sum += $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy); - } - else { - for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { - outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); - connectedPort = outgoingEdge.target; - if (connectedPort.owner.layer == node.layer) { - $add_3(this$static.inLayerPorts, port); - continue PortIteration; - } - else { - sum += this$static.portRanks[connectedPort.id_0]; - } - } - for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { - incomingEdge = castTo($next_7(incomingEdge$iterator), 17); - connectedPort = incomingEdge.source; - if (connectedPort.owner.layer == node.layer) { - $add_3(this$static.inLayerPorts, port); - continue PortIteration; - } - else { - sum -= this$static.portRanks[connectedPort.id_0]; - } - } - } - if (port.incomingEdges.array.length + port.outgoingEdges.array.length > 0) { - this$static.portBarycenter[port.id_0] = sum / (port.incomingEdges.array.length + port.outgoingEdges.array.length); - this$static.minBarycenter = $wnd.Math.min(this$static.minBarycenter, this$static.portBarycenter[port.id_0]); - this$static.maxBarycenter = $wnd.Math.max(this$static.maxBarycenter, this$static.portBarycenter[port.id_0]); - } - else - northSouthPort && (this$static.portBarycenter[port.id_0] = sum); - } -} - -function $lambda$0_6(this$static, port1_0, port2_1){ - var port1Bary, port2Bary, side1, side2; - side1 = port1_0.side; - side2 = port2_1.side; - if (side1 != side2) { - return side1.ordinal - side2.ordinal; - } - else { - port1Bary = this$static.portBarycenter[port1_0.id_0]; - port2Bary = this$static.portBarycenter[port2_1.id_0]; - return port1Bary == 0 && port2Bary == 0?0:port1Bary == 0?-1:port2Bary == 0?1:compare_4(port1Bary, port2Bary); - } -} - -function $positionOf(this$static, node){ - return this$static.nodePositions[node.layer.id_0][node.id_0]; -} - -function $updateNodePositions(this$static, nodeOrder, currentIndex){ - var i, layer, node; - layer = nodeOrder[currentIndex]; - for (i = 0; i < layer.length; i++) { - node = layer[i]; - this$static.nodePositions[node.layer.id_0][node.id_0] = i; - } -} - -function AbstractBarycenterPortDistributor(numLayers){ - this.inLayerPorts = new ArrayList; - this.nodePositions = initUnidimensionalArray(I_classLit, $intern_16, 48, numLayers, 0, 2); -} - -defineClass(402, 1, $intern_114); -_.initAtEdgeLevel = function initAtEdgeLevel_0(l, n, p, e, edge, nodeOrder){ -} -; -_.distributePortsWhileSweeping = function distributePortsWhileSweeping(nodeOrder, currentIndex, isForwardSweep){ - return $distributePortsWhileSweeping(this, nodeOrder, currentIndex, isForwardSweep); -} -; -_.initAfterTraversal = function initAfterTraversal_0(){ - this.portRanks = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); - this.portBarycenter = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); -} -; -_.initAtLayerLevel = function initAtLayerLevel_0(l, nodeOrder){ - this.nodePositions[l] = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeOrder[l].length, 15, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_0(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - node.id_0 = n; - this.nodePositions[l][n] = n; -} -; -_.initAtPortLevel = function initAtPortLevel_0(l, n, p, nodeOrder){ - castTo($get_11(nodeOrder[l][n].ports, p), 11).id_0 = this.nPorts++; -} -; -_.maxBarycenter = 0; -_.minBarycenter = 0; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor', 402); -function AbstractBarycenterPortDistributor$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1633, 1, $intern_88, AbstractBarycenterPortDistributor$lambda$0$Type); -_.compare_1 = function compare_65(arg0, arg1){ - return $lambda$0_6(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_146(other){ - return this === other; -} -; -_.reversed = function reversed_57(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor/lambda$0$Type', 1633); -function $calculateBarycenter(this$static, node, forward_0){ - var associate, associate$iterator, barycenterAssociates, fixedNode, fixedPort, fixedPort$iterator, freePort, freePort$iterator, portIterable; - if (this$static.barycenterState[node.layer.id_0][node.id_0].visited) { - return; - } - else { - this$static.barycenterState[node.layer.id_0][node.id_0].visited = true; - } - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 0; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = 0; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = null; - for (freePort$iterator = new ArrayList$1(node.ports); freePort$iterator.i < freePort$iterator.this$01.array.length;) { - freePort = castTo($next_7(freePort$iterator), 11); - portIterable = forward_0?new LPort$1(freePort):new LPort$2(freePort); - for (fixedPort$iterator = portIterable.iterator_0(); fixedPort$iterator.hasNext_0();) { - fixedPort = castTo(fixedPort$iterator.next_1(), 11); - fixedNode = fixedPort.owner; - if (fixedNode.layer == node.layer) { - if (fixedNode != node) { - $calculateBarycenter(this$static, fixedNode, forward_0); - this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].degree; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].summedWeight; - } - } - else { - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.portRanks[fixedPort.id_0]; - ++this$static.barycenterState[node.layer.id_0][node.id_0].degree; - } - } - } - barycenterAssociates = castTo($getProperty(node, ($clinit_InternalProperties_1() , BARYCENTER_ASSOCIATES)), 15); - if (barycenterAssociates) { - for (associate$iterator = barycenterAssociates.iterator_0(); associate$iterator.hasNext_0();) { - associate = castTo(associate$iterator.next_1(), 10); - if (node.layer == associate.layer) { - $calculateBarycenter(this$static, associate, forward_0); - this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[associate.layer.id_0][associate.id_0].degree; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[associate.layer.id_0][associate.id_0].summedWeight; - } - } - } - if (this$static.barycenterState[node.layer.id_0][node.id_0].degree > 0) { - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += $nextInternal(this$static.random_0, 24) * $intern_81 * 0.07000000029802322 - 0.03500000014901161; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight / this$static.barycenterState[node.layer.id_0][node.id_0].degree; - } -} - -function $calculateBarycenters(this$static, nodes, forward_0){ - var node, node$iterator, node$iterator0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - this$static.barycenterState[node.layer.id_0][node.id_0].visited = false; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $calculateBarycenter(this$static, node, forward_0); - } -} - -function $fillInUnknownBarycenters(this$static, nodes, preOrdered){ - var lastValue, maxBary, nextNodeIterator, nextValue, node, node$iterator, node$iterator0, nodesIterator, value_0, x_0; - if (preOrdered) { - lastValue = -1; - nodesIterator = new AbstractList$ListIteratorImpl(nodes, 0); - while (nodesIterator.i < nodesIterator.this$01_0.size_1()) { - node = (checkCriticalElement(nodesIterator.i < nodesIterator.this$01_0.size_1()) , castTo(nodesIterator.this$01_0.get_0(nodesIterator.last = nodesIterator.i++), 10)); - value_0 = this$static.barycenterState[node.layer.id_0][node.id_0].barycenter; - if (value_0 == null) { - nextValue = lastValue + 1; - nextNodeIterator = new AbstractList$ListIteratorImpl(nodes, nodesIterator.i); - while (nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) { - x_0 = $stateOf(this$static, (checkCriticalElement(nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) , castTo(nextNodeIterator.this$01_0.get_0(nextNodeIterator.last = nextNodeIterator.i++), 10))).barycenter; - if (x_0 != null) { - nextValue = (checkCriticalNotNull(x_0) , x_0); - break; - } - } - value_0 = (lastValue + nextValue) / 2; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = (checkCriticalNotNull(value_0) , value_0); - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; - } - lastValue = (checkCriticalNotNull(value_0) , value_0); - } - } - else { - maxBary = 0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter != null && (maxBary = $wnd.Math.max(maxBary, $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter))); - } - maxBary += 2; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (this$static.barycenterState[node.layer.id_0][node.id_0].barycenter == null) { - value_0 = $nextInternal(this$static.random_0, 24) * $intern_81 * maxBary - 1; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = value_0; - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; - } - } - } -} - -function $lambda$0_7(this$static, n1_0, n2_1){ - var s1, s2; - s1 = this$static.barycenterState[n1_0.layer.id_0][n1_0.id_0]; - s2 = this$static.barycenterState[n2_1.layer.id_0][n2_1.id_0]; - if (s1.barycenter != null && s2.barycenter != null) { - return $compareTo_4(s1.barycenter, s2.barycenter); - } - else if (s1.barycenter != null) { - return -1; - } - else if (s2.barycenter != null) { - return 1; - } - return 0; -} - -function $randomizeBarycenters(this$static, nodes){ - var node, node$iterator; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = $nextDouble(this$static.random_0); - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter); - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; - } -} - -function $startIndex_0(dir_0, length_0){ - return dir_0?0:$wnd.Math.max(0, length_0 - 1); -} - -function $stateOf(this$static, node){ - return this$static.barycenterState[node.layer.id_0][node.id_0]; -} - -function BarycenterHeuristic(constraintResolver, random, portDistributor){ - this.barycenterStateComparator = new BarycenterHeuristic$lambda$0$Type(this); - this.constraintResolver = constraintResolver; - this.random_0 = random; - this.portDistributor = portDistributor; -} - -defineClass(817, 1, $intern_111, BarycenterHeuristic); -_.initAtEdgeLevel = function initAtEdgeLevel_1(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtNodeLevel = function initAtNodeLevel_1(l, n, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_1(l, n, p, nodeOrder){ -} -; -_.alwaysImproves = function alwaysImproves_0(){ - return false; -} -; -_.initAfterTraversal = function initAfterTraversal_1(){ - this.barycenterState = this.constraintResolver.barycenterStates; - this.portRanks = this.portDistributor.portRanks; -} -; -_.initAtLayerLevel = function initAtLayerLevel_1(l, nodeOrder){ - nodeOrder[l][0].layer.id_0 = l; -} -; -_.isDeterministic = function isDeterministic_0(){ - return false; -} -; -_.minimizeCrossings_0 = function minimizeCrossings_0(layer, preOrdered, randomize, forward_0){ - if (randomize) { - $randomizeBarycenters(this, layer); - } - else { - $calculateBarycenters(this, layer, forward_0); - $fillInUnknownBarycenters(this, layer, preOrdered); - } - if (layer.array.length > 1) { - $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, castTo(this, 660)):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); - $processConstraints(this.constraintResolver, layer); - } -} -; -_.minimizeCrossings = function minimizeCrossings_1(order, freeLayerIndex, forwardSweep, isFirstSweep){ - var firstNodeInLayer, fixedLayer, index_0, nodeGroup, nodeGroup$iterator, nodes, preOrdered; - if (freeLayerIndex != $startIndex_0(forwardSweep, order.length)) { - fixedLayer = order[freeLayerIndex - (forwardSweep?1:-1)]; - $calculatePortRanks(this.portDistributor, fixedLayer, forwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); - } - firstNodeInLayer = order[freeLayerIndex][0]; - preOrdered = !isFirstSweep || firstNodeInLayer.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); - nodes = newArrayList_1(order[freeLayerIndex]); - this.minimizeCrossings_0(nodes, preOrdered, false, forwardSweep); - index_0 = 0; - for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { - nodeGroup = castTo($next_7(nodeGroup$iterator), 10); - order[freeLayerIndex][index_0++] = nodeGroup; - } - return false; -} -; -_.setFirstLayerOrder = function setFirstLayerOrder_0(order, isForwardSweep){ - var index_0, nodeGroup, nodeGroup$iterator, nodes, startIndex; - startIndex = $startIndex_0(isForwardSweep, order.length); - nodes = newArrayList_1(order[startIndex]); - this.minimizeCrossings_0(nodes, false, true, isForwardSweep); - index_0 = 0; - for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { - nodeGroup = castTo($next_7(nodeGroup$iterator), 10); - order[startIndex][index_0++] = nodeGroup; - } - return false; -} -; -var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic', 817); -function BarycenterHeuristic$BarycenterState(node){ - this.node = node; -} - -defineClass(658, 1, {658:1}, BarycenterHeuristic$BarycenterState); -_.toString_0 = function toString_98(){ - return 'BarycenterState [node=' + this.node + ', summedWeight=' + this.summedWeight + ', degree=' + this.degree + ', barycenter=' + this.barycenter + ', visited=' + this.visited + ']'; -} -; -_.degree = 0; -_.summedWeight = 0; -_.visited = false; -var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/BarycenterState', 658); -function BarycenterHeuristic$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1802, 1, $intern_88, BarycenterHeuristic$lambda$0$Type); -_.compare_1 = function compare_66(arg0, arg1){ - return $lambda$0_7(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_147(other){ - return this === other; -} -; -_.reversed = function reversed_58(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/lambda$0$Type', 1802); -function $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes){ - var currentUnitNode, currentUnitNode$iterator, group, group$iterator, group$iterator0, lastNonDummyNode, lastUnitNode, lastUnitNode$iterator, node, successor, successor$iterator; - for (group$iterator0 = new ArrayList$1(groups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 233); - group.outgoingConstraints = null; - group.incomingConstraintsCount = 0; - } - lastNonDummyNode = null; - for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 233); - node = group.nodes[0]; - if (onlyBetweenNormalNodes && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - for (successor$iterator = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).iterator_0(); successor$iterator.hasNext_0();) { - successor = castTo(successor$iterator.next_1(), 10); - if (!onlyBetweenNormalNodes || successor.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).add_2(this$static.constraintGroups[successor.layer.id_0][successor.id_0]); - ++this$static.constraintGroups[successor.layer.id_0][successor.id_0].incomingConstraintsCount; - } - } - if (!onlyBetweenNormalNodes && node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - if (lastNonDummyNode) { - for (lastUnitNode$iterator = castTo($get(this$static.layoutUnits, lastNonDummyNode), 21).iterator_0(); lastUnitNode$iterator.hasNext_0();) { - lastUnitNode = castTo(lastUnitNode$iterator.next_1(), 10); - for (currentUnitNode$iterator = castTo($get(this$static.layoutUnits, node), 21).iterator_0(); currentUnitNode$iterator.hasNext_0();) { - currentUnitNode = castTo(currentUnitNode$iterator.next_1(), 10); - $getOutgoingConstraints(this$static.constraintGroups[lastUnitNode.layer.id_0][lastUnitNode.id_0]).add_2(this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0]); - ++this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0].incomingConstraintsCount; - } - } - } - lastNonDummyNode = node; - } - } -} - -function $findViolatedConstraint(groups){ - var activeGroups, group, group$iterator, predecessor, predecessor$iterator, successor, successor$iterator, successorIncomingList; - activeGroups = null; - for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 233); - $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter); - group.incomingConstraints = null; - if (!!group.outgoingConstraints && group.outgoingConstraints.size_1() > 0 && group.incomingConstraintsCount == 0) { - !activeGroups && (activeGroups = new ArrayList); - activeGroups.array[activeGroups.array.length] = group; - } - } - if (activeGroups) { - while (activeGroups.array.length != 0) { - group = castTo($remove_11(activeGroups, 0), 233); - if (!!group.incomingConstraints && group.incomingConstraints.array.length > 0) { - for (predecessor$iterator = (!group.incomingConstraints && (group.incomingConstraints = new ArrayList) , new ArrayList$1(group.incomingConstraints)); predecessor$iterator.i < predecessor$iterator.this$01.array.length;) { - predecessor = castTo($next_7(predecessor$iterator), 233); - if ($floatValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) == $floatValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { - if ($indexOf_3(groups, predecessor, 0) > $indexOf_3(groups, group, 0)) { - return new Pair(predecessor, group); - } - } - else if ($doubleValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) > $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { - return new Pair(predecessor, group); - } - } - } - for (successor$iterator = (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).iterator_0(); successor$iterator.hasNext_0();) { - successor = castTo(successor$iterator.next_1(), 233); - successorIncomingList = (!successor.incomingConstraints && (successor.incomingConstraints = new ArrayList) , successor.incomingConstraints); - checkCriticalPositionIndex(0, successorIncomingList.array.length); - insertTo(successorIncomingList.array, 0, group); - successor.incomingConstraintsCount == successorIncomingList.array.length && (activeGroups.array[activeGroups.array.length] = successor , true); - } - } - } - return null; -} - -function $handleViolatedConstraint(this$static, firstNodeGroup, secondNodeGroup, nodeGroups){ - var alreadyInserted, firstNodeGroupConstraint, newNodeGroup, nodeGroup, nodeGroupIterator, secondNodeGroupConstraint; - newNodeGroup = new ForsterConstraintResolver$ConstraintGroup_0(this$static, firstNodeGroup, secondNodeGroup); - nodeGroupIterator = new AbstractList$ListIteratorImpl(nodeGroups, 0); - alreadyInserted = false; - while (nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) { - nodeGroup = (checkCriticalElement(nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) , castTo(nodeGroupIterator.this$01_0.get_0(nodeGroupIterator.last = nodeGroupIterator.i++), 233)); - if (nodeGroup == firstNodeGroup || nodeGroup == secondNodeGroup) { - $remove_8(nodeGroupIterator); - } - else if (!alreadyInserted && $doubleValue($stateOf_0(nodeGroup.this$01, nodeGroup.nodes[0]).barycenter) > $doubleValue($stateOf_0(newNodeGroup.this$01, newNodeGroup.nodes[0]).barycenter)) { - checkCriticalElement(nodeGroupIterator.i > 0); - nodeGroupIterator.this$01.get_0(nodeGroupIterator.last = --nodeGroupIterator.i); - $add_1(nodeGroupIterator, newNodeGroup); - alreadyInserted = true; - } - else if (!!nodeGroup.outgoingConstraints && nodeGroup.outgoingConstraints.size_1() > 0) { - firstNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(firstNodeGroup); - secondNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(secondNodeGroup); - if (firstNodeGroupConstraint || secondNodeGroupConstraint) { - (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).add_2(newNodeGroup); - ++newNodeGroup.incomingConstraintsCount; - } - } - } - alreadyInserted || (nodeGroups.array[nodeGroups.array.length] = newNodeGroup , true); -} - -function $initAtNodeLevel(this$static, node, fullInit){ - var layerIndex, layoutUnit, nodeIndex; - layerIndex = node.layer.id_0; - nodeIndex = node.id_0; - this$static.constraintGroups[layerIndex][nodeIndex] = new ForsterConstraintResolver$ConstraintGroup(this$static, node); - if (fullInit) { - this$static.barycenterStates[layerIndex][nodeIndex] = new BarycenterHeuristic$BarycenterState(node); - layoutUnit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); - !!layoutUnit && $put(this$static.layoutUnits, layoutUnit, node); - } -} - -function $processConstraints(this$static, nodes){ - if (this$static.constraintsBetweenNonDummies) { - $processConstraints_0(this$static, nodes, true); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nodes, 16)), new ForsterConstraintResolver$lambda$0$Type(this$static)); - } - $processConstraints_0(this$static, nodes, false); -} - -function $processConstraints_0(this$static, nodes, onlyBetweenNormalNodes){ - var group, group$iterator, groups, node, node$array, node$index, node$iterator, node$max, violatedConstraint; - groups = new ArrayList_0(nodes.array.length); - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_3(groups, this$static.constraintGroups[node.layer.id_0][node.id_0]); - } - $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes); - violatedConstraint = null; - while (violatedConstraint = $findViolatedConstraint(groups)) { - $handleViolatedConstraint(this$static, castTo(violatedConstraint.first, 233), castTo(violatedConstraint.second, 233), groups); - } - nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 233); - for (node$array = group.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - nodes.array[nodes.array.length] = node; - this$static.barycenterStates[node.layer.id_0][node.id_0].barycenter = $stateOf_0(group.this$01, group.nodes[0]).barycenter; - } - } -} - -function $stateOf_0(this$static, node){ - return this$static.barycenterStates[node.layer.id_0][node.id_0]; -} - -function ForsterConstraintResolver(currentNodeOrder){ - currentNodeOrder.length > 0 && currentNodeOrder[0].length > 0 && (this.constraintsBetweenNonDummies = $booleanValue(castToBoolean($getProperty($getGraph(currentNodeOrder[0][0]), ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES))))); - this.barycenterStates = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, $intern_16, 2018, currentNodeOrder.length, 0, 2); - this.constraintGroups = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, $intern_16, 2019, currentNodeOrder.length, 0, 2); - this.layoutUnits = new LinkedHashMultimap; -} - -defineClass(816, 1, $intern_111, ForsterConstraintResolver); -_.initAfterTraversal = function initAfterTraversal_2(){ -} -; -_.initAtEdgeLevel = function initAtEdgeLevel_2(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_2(l, n, p, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_2(l, nodeOrder){ - this.barycenterStates[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, {3:1, 4:1, 5:1, 2018:1}, 658, nodeOrder[l].length, 0, 1); - this.constraintGroups[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, {3:1, 4:1, 5:1, 2019:1}, 233, nodeOrder[l].length, 0, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_2(l, n, nodeOrder){ - $initAtNodeLevel(this, nodeOrder[l][n], true); -} -; -_.constraintsBetweenNonDummies = false; -var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver', 816); -function $getOutgoingConstraints(this$static){ - !this$static.outgoingConstraints && (this$static.outgoingConstraints = new ArrayList); - return this$static.outgoingConstraints; -} - -function $setBarycenter(this$static, barycenter){ - var node, node$array, node$index, node$max; - for (node$array = this$static.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $stateOf_0(this$static.this$01, node).barycenter = barycenter; - } -} - -function ForsterConstraintResolver$ConstraintGroup(this$0, node){ - this.this$01 = this$0; - this.nodes = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [node]); -} - -function ForsterConstraintResolver$ConstraintGroup_0(this$0, nodeGroup1, nodeGroup2){ - var candidate, candidate$iterator, i, i0, length1, length2; - this.this$01 = this$0; - length1 = nodeGroup1.nodes.length; - length2 = nodeGroup2.nodes.length; - this.nodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, length1 + length2, 0, 1); - for (i0 = 0; i0 < length1; i0++) { - this.nodes[i0] = nodeGroup1.nodes[i0]; - } - for (i = 0; i < length2; i++) { - this.nodes[length1 + i] = nodeGroup2.nodes[i]; - } - if (nodeGroup1.outgoingConstraints) { - this.outgoingConstraints = newLinkedList(nodeGroup1.outgoingConstraints); - this.outgoingConstraints.remove_1(nodeGroup2); - if (nodeGroup2.outgoingConstraints) { - for (candidate$iterator = nodeGroup2.outgoingConstraints.iterator_0(); candidate$iterator.hasNext_0();) { - candidate = castTo(candidate$iterator.next_1(), 233); - if (candidate == nodeGroup1) { - continue; - } - else - this.outgoingConstraints.contains(candidate)?--candidate.incomingConstraintsCount:this.outgoingConstraints.add_2(candidate); - } - } - } - else if (nodeGroup2.outgoingConstraints) { - this.outgoingConstraints = newLinkedList(nodeGroup2.outgoingConstraints); - this.outgoingConstraints.remove_1(nodeGroup1); - } - this.summedWeight = nodeGroup1.summedWeight + nodeGroup2.summedWeight; - this.degree = nodeGroup1.degree + nodeGroup2.degree; - this.degree > 0?$setBarycenter(this, this.summedWeight / this.degree):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null && $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null?$setBarycenter(this, ($doubleValue($stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter) + $doubleValue($stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter)) / 2):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null?$setBarycenter(this, $stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter):$stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null && $setBarycenter(this, $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter); -} - -defineClass(233, 1, {233:1}, ForsterConstraintResolver$ConstraintGroup, ForsterConstraintResolver$ConstraintGroup_0); -_.toString_0 = function toString_99(){ - var i, sb; - sb = new StringBuilder; - sb.string += '['; - for (i = 0; i < this.nodes.length; i++) { - $append_11(sb, $toString_13(this.nodes[i])); - $stateOf_0(this.this$01, this.nodes[0]).barycenter != null && $append_11($append_11((sb.string += '<' , sb), $toString_6($stateOf_0(this.this$01, this.nodes[0]).barycenter)), '>'); - i < this.nodes.length - 1 && (sb.string += ', ' , sb); - } - return (sb.string += ']' , sb).string; -} -; -_.degree = 0; -_.incomingConstraintsCount = 0; -_.summedWeight = 0; -var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/ConstraintGroup', 233); -function ForsterConstraintResolver$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1797, 1, $intern_19, ForsterConstraintResolver$lambda$0$Type); -_.accept = function accept_114(arg0){ - $initAtNodeLevel(this.$$outer_0, castTo(arg0, 10), false); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/lambda$0$Type', 1797); -function $setBestNodeNPortOrder(this$static, bestNodeNPortOrder){ - this$static.bestNodeAndPortOrder = bestNodeNPortOrder; -} - -function $setCurrentlyBestNodeAndPortOrder(this$static, currentlyBestNodeAndPortOrder){ - this$static.currentlyBestNodeAndPortOrder = currentlyBestNodeAndPortOrder; -} - -function GraphInfoHolder(graph, crossMinType, graphs){ - var constraintResolver, graphProperties, initializables, random; - this.lGraph = graph; - this.currentNodeOrder = $toNodeArray(graph); - this.parent_0 = this.lGraph.parentNode; - this.hasParent = !!this.parent_0; - this.parentGraphData = this.hasParent?castTo($get_11(graphs, $getGraph(this.parent_0).id_0), 214):null; - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - this.hasExternalPorts = graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); - this.childGraphs = new ArrayList; - this.crossingsCounter = new AllCrossingsCounter(this.currentNodeOrder); - random = castTo($getProperty(this.lGraph, RANDOM_0), 230); - this.portDistributor = create_15(crossMinType, random, this.currentNodeOrder); - this.layerSweepTypeDecider = new LayerSweepTypeDecider(this); - initializables = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [this, this.crossingsCounter, this.layerSweepTypeDecider, this.portDistributor])); - if (crossMinType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER) && !$booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { - constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); - initializables.array[initializables.array.length] = constraintResolver; - this.crossMinimizer = new BarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); - } - else if (crossMinType == BARYCENTER && $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { - constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); - initializables.array[initializables.array.length] = constraintResolver; - this.crossMinimizer = new ModelOrderBarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); - } - else { - this.crossMinimizer = new GreedySwitchHeuristic(crossMinType, this); - } - $add_3(initializables, this.crossMinimizer); - init_0(initializables, this.currentNodeOrder); - this.useBottomUp = $useBottomUp(this.layerSweepTypeDecider); -} - -defineClass(214, 1, {214:1, 225:1}, GraphInfoHolder); -_.initAtEdgeLevel = function initAtEdgeLevel_3(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_3(l, nodeOrder){ -} -; -_.initAfterTraversal = function initAfterTraversal_3(){ - this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_3(l, n, nodeOrder){ - var nestedGraph, node; - node = nodeOrder[l][n]; - nestedGraph = node.nestedGraph; - !!nestedGraph && $add_3(this.childGraphs, nestedGraph); -} -; -_.initAtPortLevel = function initAtPortLevel_3(l, n, p, nodeOrder){ - ++this.nPorts; -} -; -_.toString_0 = function toString_100(){ - return deepToString(this.currentNodeOrder, new HashSet); -} -; -_.hasExternalPorts = false; -_.hasParent = false; -_.nPorts = 0; -_.useBottomUp = false; -var Lorg_eclipse_elk_alg_layered_p3order_GraphInfoHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GraphInfoHolder', 214); -function $distributePortsInLayer(this$static, nodeOrder, currentIndex, isForwardSweep){ - var improved, innerGraph, nestedGraph, node, node$array, node$index, node$max, side, useHierarchicalCrossCounter; - side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); - improved = false; - for (node$array = nodeOrder[currentIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if ($isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - continue; - } - nestedGraph = node.nestedGraph; - useHierarchicalCrossCounter = !$getPortSideView(node, side).isEmpty() && !!nestedGraph; - if (useHierarchicalCrossCounter) { - innerGraph = $toNodeArray(nestedGraph); - this$static.hierarchicalCrossingsCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(innerGraph, isForwardSweep?0:innerGraph.length - 1); - } - improved = improved | $distributePortsOnNode(this$static, node, side, useHierarchicalCrossCounter); - } - return improved; -} - -function $distributePortsOnNode(this$static, node, side, useHierarchicalCrosscounter){ - var continueSwitching, i, improved, lowerPort, ports, upperPort, lower; - ports = $getPortSideView(node, side); - (side == ($clinit_PortSide() , SOUTH_2) || side == WEST_2) && (ports = instanceOf(ports, 152)?$reverse(castTo(ports, 152)):instanceOf(ports, 131)?castTo(ports, 131).forwardList:instanceOf(ports, 54)?new Lists$RandomAccessReverseList(ports):new Lists$ReverseList(ports)); - improved = false; - do { - continueSwitching = false; - for (i = 0; i < ports.size_1() - 1; i++) { - upperPort = castTo(ports.get_0(i), 11); - lowerPort = castTo(ports.get_0(i + 1), 11); - if ($switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter)) { - improved = true; - $switchPorts(this$static.crossingsCounter, castTo(ports.get_0(i), 11), castTo(ports.get_0(i + 1), 11)); - lower = castTo(ports.get_0(i + 1), 11); - ports.set_2(i + 1, castTo(ports.get_0(i), 11)); - ports.set_2(i, lower); - continueSwitching = true; - } - } - } - while (continueSwitching); - return improved; -} - -function $switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter){ - var lowerNode, lowerUpperCrossings, originalNSwitchedCrossings, upperLowerCrossings, upperNode; - originalNSwitchedCrossings = $countCrossingsBetweenPortsInBothOrders(this$static.crossingsCounter, upperPort, lowerPort); - upperLowerCrossings = castTo(originalNSwitchedCrossings.first, 19).value_0; - lowerUpperCrossings = castTo(originalNSwitchedCrossings.second, 19).value_0; - if (useHierarchicalCrosscounter) { - upperNode = castTo($getProperty(upperPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - lowerNode = castTo($getProperty(lowerPort, PORT_DUMMY), 10); - if (!!upperNode && !!lowerNode) { - $countBothSideCrossings(this$static.hierarchicalCrossingsCounter, upperNode, lowerNode); - upperLowerCrossings += this$static.hierarchicalCrossingsCounter.upperLowerCrossings; - lowerUpperCrossings += this$static.hierarchicalCrossingsCounter.lowerUpperCrossings; - } - } - return upperLowerCrossings > lowerUpperCrossings; -} - -function GreedyPortDistributor(){ -} - -defineClass(1832, 1, $intern_111, GreedyPortDistributor); -_.initAtEdgeLevel = function initAtEdgeLevel_4(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_4(l, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_4(l, n, p, nodeOrder){ -} -; -_.distributePortsWhileSweeping = function distributePortsWhileSweeping_0(nodeOrder, currentIndex, isForwardSweep){ - isForwardSweep && currentIndex > 0?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex - 1], nodeOrder[currentIndex]) , undefined):!isForwardSweep && currentIndex < nodeOrder.length - 1?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex], nodeOrder[currentIndex + 1]) , undefined):$initPortPositionsForInLayerCrossings(this.crossingsCounter, nodeOrder[currentIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2)); - return $distributePortsInLayer(this, nodeOrder, currentIndex, isForwardSweep); -} -; -_.initAfterTraversal = function initAfterTraversal_4(){ - this.portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); - this.crossingsCounter = new CrossingsCounter(this.portPos); -} -; -_.initAtNodeLevel = function initAtNodeLevel_4(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - this.nPorts += node.ports.array.length; -} -; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_p3order_GreedyPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GreedyPortDistributor', 1832); -function $clinit_InteractiveCrossingMinimizer(){ - $clinit_InteractiveCrossingMinimizer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_3 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING, LONG_EDGE_JOINER); -} - -function $getLayoutProcessorConfiguration(graph){ - var configuration; - configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_3); - castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , NON_FREE_PORTS)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)); - return configuration; -} - -function $getPos(node, horizPos){ - var bendpoints, edge, originNode, originPort, point1, point2, pointIter, source, sourcePoint, target, targetPoint; - switch (node.type_0.ordinal) { - case 1: - edge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); - bendpoints = castTo($getProperty(edge, ORIGINAL_BENDPOINTS), 74); - !bendpoints?(bendpoints = new KVectorChain):$booleanValue(castToBoolean($getProperty(edge, REVERSED))) && (bendpoints = reverse_3(bendpoints)); - source = castTo($getProperty(node, LONG_EDGE_SOURCE), 11); - if (source) { - sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [source.owner.pos, source.pos, source.anchor])); - if (horizPos <= sourcePoint.x_0) { - return sourcePoint.y_0; - } - $addNode_0(bendpoints, sourcePoint, bendpoints.header, bendpoints.header.next_0); - } - - target = castTo($getProperty(node, LONG_EDGE_TARGET), 11); - if (target) { - targetPoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])); - if (targetPoint.x_0 <= horizPos) { - return targetPoint.y_0; - } - $addNode_0(bendpoints, targetPoint, bendpoints.tail.prev, bendpoints.tail); - } - - if (bendpoints.size_0 >= 2) { - pointIter = $listIterator_2(bendpoints, 0); - point1 = castTo($next_10(pointIter), 8); - point2 = castTo($next_10(pointIter), 8); - while (point2.x_0 < horizPos && pointIter.currentNode != pointIter.this$01.tail) { - point1 = point2; - point2 = castTo($next_10(pointIter), 8); - } - return point1.y_0 + (horizPos - point1.x_0) / (point2.x_0 - point1.x_0) * (point2.y_0 - point1.y_0); - } - - break; - case 3: - originPort = castTo($getProperty(castTo($get_11(node.ports, 0), 11), ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - originNode = originPort.owner; - switch (originPort.side.ordinal) { - case 1: - return originNode.pos.y_0; - case 3: - return originNode.pos.y_0 + originNode.size_0.y_0; - } - - } - return $getInteractiveReferencePoint(node).y_0; -} - -function $process_67(layeredGraph, monitor){ - var horizPos, layer, layer$iterator, layer$iterator0, layerIndex, nextIndex, node, node$iterator, node$iterator0, nodeCount, nodeOrder, port, port$iterator, portCount, portDistributor, pos; - $begin(monitor, 'Interactive crossing minimization', 1); - layerIndex = 0; - for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - layer.id_0 = layerIndex++; - } - nodeOrder = $toNodeArray(layeredGraph); - portDistributor = new NodeRelativePortDistributor(nodeOrder.length); - init_0(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [portDistributor])), nodeOrder); - portCount = 0; - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - horizPos = 0; - nodeCount = 0; - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.pos.x_0 > 0) { - horizPos += node.pos.x_0 + node.size_0.x_0 / 2; - ++nodeCount; - } - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.id_0 = portCount++; - } - } - nodeCount > 0 && (horizPos /= nodeCount); - pos = initUnidimensionalArray(D_classLit, $intern_65, 25, layer.nodes.array.length, 15, 1); - nextIndex = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = nextIndex++; - pos[node.id_0] = $getPos(node, horizPos); - node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION), pos[node.id_0]); - } - $clinit_Collections(); - $sort(layer.nodes, new InteractiveCrossingMinimizer$1(pos)); - $distributePortsWhileSweeping(portDistributor, nodeOrder, layerIndex, true); - ++layerIndex; - } - $done_0(monitor); -} - -function InteractiveCrossingMinimizer(){ - $clinit_InteractiveCrossingMinimizer(); -} - -defineClass(1401, 1, $intern_113, InteractiveCrossingMinimizer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_9(graph){ - return $getLayoutProcessorConfiguration(castTo(graph, 37)); -} -; -_.process = function process_64(layeredGraph, monitor){ - $process_67(castTo(layeredGraph, 37), monitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_3; -var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer', 1401); -function $compare_20(this$static, node1, node2){ - var compare, node1Successors, node2Successors; - compare = compare_4(this$static.val$pos2[node1.id_0], this$static.val$pos2[node2.id_0]); - if (compare == 0) { - node1Successors = castTo($getProperty(node1, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15); - node2Successors = castTo($getProperty(node2, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15); - if (node1Successors.contains(node2)) { - return -1; - } - else if (node2Successors.contains(node1)) { - return 1; - } - } - return compare; -} - -function InteractiveCrossingMinimizer$1(val$pos){ - this.val$pos2 = val$pos; -} - -defineClass(1402, 1, $intern_88, InteractiveCrossingMinimizer$1); -_.compare_1 = function compare_67(node1, node2){ - return $compare_20(this, castTo(node1, 10), castTo(node2, 10)); -} -; -_.equals_0 = function equals_148(other){ - return this === other; -} -; -_.reversed = function reversed_59(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer/1', 1402); -function $clinit_LayerSweepCrossingMinimizer(){ - $clinit_LayerSweepCrossingMinimizer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_4 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); -} - -function $compareDifferentRandomizedLayouts(this$static, gData){ - var bestCrossings, crossings, i, thouroughness; - $setSeed_0(this$static.random_0, this$static.randomSeed); - this$static.graphsWhoseNodeOrderChanged.map_0.clear_0(); - if ($doubleValue(castToDouble($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)))) != 0 || $doubleValue(castToDouble($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))) != 0) { - bestCrossings = $intern_98; - maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); - thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; - for (i = 0; i < thouroughness; i++) { - crossings = $minimizeCrossingsNodePortOrderWithCounter(this$static, gData); - if (crossings < bestCrossings) { - bestCrossings = crossings; - $saveAllNodeOrdersOfChangedGraphs(this$static); - if (bestCrossings == 0) { - break; - } - } - } - } - else { - bestCrossings = $intern_0; - maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); - thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; - for (i = 0; i < thouroughness; i++) { - crossings = $minimizeCrossingsWithCounter(this$static, gData); - if (crossings < bestCrossings) { - bestCrossings = crossings; - $saveAllNodeOrdersOfChangedGraphs(this$static); - if (bestCrossings == 0) { - break; - } - } - } - } -} - -function $countCurrentNumberOfCrossings(this$static, currentGraph){ - var child, childLGraph, childLGraph$iterator, countCrossingsIn, gD, totalCrossings; - totalCrossings = 0; - countCrossingsIn = new ArrayDeque; - $addFirst(countCrossingsIn, currentGraph); - while (countCrossingsIn.head != countCrossingsIn.tail) { - gD = castTo($removeFirst(countCrossingsIn), 214); - totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder); - for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { - childLGraph = castTo($next_7(childLGraph$iterator), 37); - child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); - child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); - } - } - return totalCrossings; -} - -function $countCurrentNumberOfCrossingsNodePortOrder(this$static, currentGraph){ - var child, childLGraph, childLGraph$iterator, countCrossingsIn, crossingCounterNodeInfluence, crossingCounterPortInfluence, gD, modelOrderInfluence, modelOrderStrategy, totalCrossings; - totalCrossings = 0; - countCrossingsIn = new ArrayDeque; - $addFirst(countCrossingsIn, currentGraph); - while (countCrossingsIn.head != countCrossingsIn.tail) { - gD = castTo($removeFirst(countCrossingsIn), 214); - modelOrderInfluence = 0; - modelOrderStrategy = castTo($getProperty(currentGraph.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 339); - crossingCounterNodeInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))); - crossingCounterPortInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0))); - if (modelOrderStrategy != ($clinit_OrderingStrategy() , NONE_10)) { - modelOrderInfluence += crossingCounterNodeInfluence * $countModelOrderNodeChanges(gD.currentNodeOrder, modelOrderStrategy); - modelOrderInfluence += crossingCounterPortInfluence * $countModelOrderPortChanges(gD.currentNodeOrder); - } - totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder) + modelOrderInfluence; - for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { - childLGraph = castTo($next_7(childLGraph$iterator), 37); - child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); - child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); - } - } - return totalCrossings; -} - -function $countModelOrderNodeChanges(layers, strategy){ - var comp, i, j, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; - previousLayer = -1; - wrongModelOrder = 0; - for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { - layer = layer$array[layer$index]; - comp = new ModelOrderNodeComparator_1(previousLayer == -1?layers[0]:layers[previousLayer], strategy, ($clinit_LongEdgeOrderingStrategy() , EQUAL)); - for (i = 0; i < layer.length; i++) { - for (j = i + 1; j < layer.length; j++) { - $hasProperty(layer[i], ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(layer[j], MODEL_ORDER_0) && $compare_15(comp, layer[i], layer[j]) > 0 && ++wrongModelOrder; - } - } - ++previousLayer; - } - return wrongModelOrder; -} - -function $countModelOrderPortChanges(layers){ - var comp, i, j, lNode, lNode$array, lNode$index, lNode$max, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; - previousLayer = -1; - wrongModelOrder = 0; - for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { - layer = layer$array[layer$index]; - for (lNode$array = layer , lNode$index = 0 , lNode$max = lNode$array.length; lNode$index < lNode$max; ++lNode$index) { - lNode = lNode$array[lNode$index]; - comp = new ModelOrderPortComparator_0(previousLayer == -1?layers[0]:layers[previousLayer], longEdgeTargetNodePreprocessing(lNode)); - for (i = 0; i < lNode.ports.array.length; i++) { - for (j = i + 1; j < lNode.ports.array.length; j++) { - $compare_16(comp, castTo($get_11(lNode.ports, i), 11), castTo($get_11(lNode.ports, j), 11)) > 0 && ++wrongModelOrder; - } - } - } - ++previousLayer; - } - return wrongModelOrder; -} - -function $endIndex(isForwardSweep, length_0){ - return isForwardSweep?length_0 - 1:0; -} - -function $firstIndex(isForwardSweep, length_0){ - return isForwardSweep?0:length_0 - 1; -} - -function $initialize_5(this$static, rootGraph){ - var gData, graph, graphs, graphsToSweepOn, i, iter; - this$static.graphInfoHolders = new ArrayList; - this$static.random_0 = castTo($getProperty(rootGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); - this$static.randomSeed = $nextLong(this$static.random_0); - graphsToSweepOn = new LinkedList; - graphs = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [rootGraph])); - i = 0; - while (i < graphs.array.length) { - graph = (checkCriticalElementIndex(i, graphs.array.length) , castTo(graphs.array[i], 37)); - graph.id_0 = i++; - gData = new GraphInfoHolder(graph, this$static.crossMinType, this$static.graphInfoHolders); - $addAll_2(graphs, gData.childGraphs); - $add_3(this$static.graphInfoHolders, gData); - gData.useBottomUp && (iter = $listIterator_2(graphsToSweepOn, 0) , $add_8(iter, gData)); - } - this$static.graphsWhoseNodeOrderChanged = new HashSet; - return graphsToSweepOn; -} - -function $minimizeCrossings(graphsToSweepOn, minimizingMethod){ - var gData, gData$iterator; - for (gData$iterator = $listIterator_2(graphsToSweepOn, 0); gData$iterator.currentNode != gData$iterator.this$01.tail;) { - gData = castTo($next_10(gData$iterator), 214); - if (gData.currentNodeOrder.length > 0) { - minimizingMethod.accept(gData); - gData.hasParent && $setPortOrderOnParentGraph(gData); - } - } -} - -function $minimizeCrossingsNoCounter(this$static, gData){ - var improved, isForwardSweep; - isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; - improved = true; - while (improved) { - improved = false; - improved = gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep); - improved = improved | $sweepReducingCrossings(this$static, gData, isForwardSweep, false); - isForwardSweep = !isForwardSweep; - } - $setCurrentlyBestNodeOrders(this$static); -} - -function $minimizeCrossingsNodePortOrderWithCounter(this$static, gData){ - var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; - isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; - !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); - $sweepReducingCrossings(this$static, gData, isForwardSweep, true); - $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { - $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); - } - crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); - do { - $setCurrentlyBestNodeOrders(this$static); - if (crossingsInGraph == 0) { - return 0; - } - isForwardSweep = !isForwardSweep; - oldNumberOfCrossings = crossingsInGraph; - $sweepReducingCrossings(this$static, gData, isForwardSweep, false); - crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); - } - while (oldNumberOfCrossings > crossingsInGraph); - return oldNumberOfCrossings; -} - -function $minimizeCrossingsWithCounter(this$static, gData){ - var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; - isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; - !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); - $sweepReducingCrossings(this$static, gData, isForwardSweep, true); - $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { - $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); - } - crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); - do { - $setCurrentlyBestNodeOrders(this$static); - if (crossingsInGraph == 0) { - return 0; - } - isForwardSweep = !isForwardSweep; - oldNumberOfCrossings = crossingsInGraph; - $sweepReducingCrossings(this$static, gData, isForwardSweep, false); - crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); - } - while (oldNumberOfCrossings > crossingsInGraph); - return oldNumberOfCrossings; -} - -function $process_68(this$static, layeredGraph, progressMonitor){ - var emptyGraph, graphsToSweepOn, hierarchicalLayout, minimizingMethod, parent_0, singleNode; - $begin(progressMonitor, 'Minimize Crossings ' + this$static.crossMinType, 1); - emptyGraph = layeredGraph.layers.array.length == 0 || !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new Predicate$lambda$2$Type(new LayerSweepCrossingMinimizer$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); - singleNode = layeredGraph.layers.array.length == 1 && castTo($get_11(layeredGraph.layers, 0), 29).nodes.array.length == 1; - hierarchicalLayout = maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); - if (emptyGraph || singleNode && !hierarchicalLayout) { - $done_0(progressMonitor); - return; - } - graphsToSweepOn = $initialize_5(this$static, layeredGraph); - minimizingMethod = (parent_0 = castTo($get_7(graphsToSweepOn, 0), 214) , parent_0.crossMinimizer.isDeterministic()?parent_0.crossMinimizer.alwaysImproves()?new LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type(this$static):new LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type(this$static):new LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type(this$static)); - $minimizeCrossings(graphsToSweepOn, minimizingMethod); - $transferNodeAndPortOrdersToGraph(this$static); - $done_0(progressMonitor); -} - -function $saveAllNodeOrdersOfChangedGraphs(this$static){ - var graph, graph$iterator; - for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 214); - $setBestNodeNPortOrder(graph, new SweepCopy(graph.currentlyBestNodeAndPortOrder)); - } -} - -function $setCurrentlyBestNodeOrders(this$static){ - var graph, graph$iterator; - for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 214); - $setCurrentlyBestNodeAndPortOrder(graph, new SweepCopy_0(graph.currentNodeOrder)); - } -} - -function $setPortOrderOnParentGraph(gData){ - var bestSweep; - if (gData.hasExternalPorts) { - bestSweep = gData.crossMinimizer.isDeterministic()?gData.currentlyBestNodeAndPortOrder:gData.bestNodeAndPortOrder; - $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, true); - $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, false); - $setProperty_0(gData.parent_0, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_ORDER)); - } -} - -function $sortPortDummiesByPortPositions(parentNode, layerCloseToNodeEdge, side){ - var i, port, port$iterator, ports, sortedDummies; - ports = inNorthSouthEastWestOrder(parentNode, side); - sortedDummies = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layerCloseToNodeEdge.length, 0, 1); - i = 0; - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))) && (sortedDummies[i++] = castTo($getProperty(port, PORT_DUMMY), 10)); - } - if (i < layerCloseToNodeEdge.length) { - throw toJs(new IllegalStateException_0('Expected ' + layerCloseToNodeEdge.length + ' hierarchical ports, but found only ' + i + '.')); - } - return sortedDummies; -} - -function $sortPortsByDummyPositionsInLastLayer(nodeOrder, parent_0, onRightMostLayer){ - var endIndex, i, j, lastLayer, port, ports; - endIndex = $endIndex(onRightMostLayer, nodeOrder.length); - lastLayer = nodeOrder[endIndex]; - if (lastLayer[0].type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return; - } - j = $firstIndex(onRightMostLayer, lastLayer.length); - ports = parent_0.ports; - for (i = 0; i < ports.array.length; i++) { - port = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); - if ((onRightMostLayer?port.side == ($clinit_PortSide() , EAST_2):port.side == ($clinit_PortSide() , WEST_2)) && $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS))))) { - $set_1(ports, i, castTo($getProperty(lastLayer[j], ($clinit_InternalProperties_1() , ORIGIN_0)), 11)); - j += onRightMostLayer?1:-1; - } - } -} - -function $sweepInHierarchicalNodes(this$static, layer, isForwardSweep, isFirstSweep){ - var improved, node, node$array, node$index, node$max, nestedLGraph, nestedGraph, nestedGraphNodeOrder, startIndex, firstNode, improved_0; - improved = false; - for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $booleanValue(($clinit_Boolean() , node.nestedGraph?true:false)) && !castTo($get_11(this$static.graphInfoHolders, node.nestedGraph.id_0), 214).useBottomUp && (improved = improved | (nestedLGraph = node.nestedGraph , nestedGraph = castTo($get_11(this$static.graphInfoHolders, nestedLGraph.id_0), 214) , nestedGraphNodeOrder = nestedGraph.currentNodeOrder , startIndex = $firstIndex(isForwardSweep, nestedGraphNodeOrder.length) , firstNode = nestedGraphNodeOrder[startIndex][0] , firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)?(nestedGraphNodeOrder[startIndex] = $sortPortDummiesByPortPositions(node, nestedGraphNodeOrder[startIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2))):nestedGraph.crossMinimizer.setFirstLayerOrder(nestedGraphNodeOrder, isForwardSweep) , improved_0 = $sweepReducingCrossings(this$static, nestedGraph, isForwardSweep, isFirstSweep) , $sortPortsByDummyPositionsInLastLayer(nestedGraph.currentNodeOrder, nestedGraph.parent_0, isForwardSweep) , improved_0)); - } - return improved; -} - -function $sweepReducingCrossings(this$static, graph, forward_0, firstSweep){ - var firstLayer, i, improved, length_0, nodes; - nodes = graph.currentNodeOrder; - length_0 = nodes.length; - improved = graph.portDistributor.distributePortsWhileSweeping(nodes, forward_0?0:length_0 - 1, forward_0); - firstLayer = nodes[forward_0?0:length_0 - 1]; - improved = improved | $sweepInHierarchicalNodes(this$static, firstLayer, forward_0, firstSweep); - for (i = forward_0?1:length_0 - 2; forward_0?i < length_0:i >= 0; i += forward_0?1:-1) { - improved = improved | graph.crossMinimizer.minimizeCrossings(nodes, i, forward_0, firstSweep && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , SECOND_TRY_WITH_INITIAL_ORDER))))); - improved = improved | graph.portDistributor.distributePortsWhileSweeping(nodes, i, forward_0); - improved = improved | $sweepInHierarchicalNodes(this$static, nodes[i], forward_0, firstSweep); - } - $add_6(this$static.graphsWhoseNodeOrderChanged, graph); - return improved; -} - -function $transferNodeAndPortOrdersToGraph(this$static){ - var bestSweep, gD, gD$iterator; - for (gD$iterator = new ArrayList$1(this$static.graphInfoHolders); gD$iterator.i < gD$iterator.this$01.array.length;) { - gD = castTo($next_7(gD$iterator), 214); - bestSweep = gD.crossMinimizer.isDeterministic()?gD.currentlyBestNodeAndPortOrder:gD.bestNodeAndPortOrder; - !!bestSweep && $transferNodeAndPortOrdersToGraph_0(bestSweep, gD.lGraph); - } -} - -function LayerSweepCrossingMinimizer(cT){ - $clinit_LayerSweepCrossingMinimizer(); - this.crossMinType = cT; -} - -defineClass(507, 1, {507:1, 123:1, 51:1}, LayerSweepCrossingMinimizer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_10(graph){ - var configuration; - return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_4) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; -} -; -_.process = function process_65(layeredGraph, progressMonitor){ - $process_68(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.randomSeed = 0; -var INTERMEDIATE_PROCESSING_CONFIGURATION_4; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer', 507); -function LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1398, 1, $intern_19, LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type); -_.accept = function accept_115(arg0){ - $compareDifferentRandomizedLayouts(this.$$outer_0, castTo(arg0, 214)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type', 1398); -function LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1399, 1, $intern_19, LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type); -_.accept = function accept_116(arg0){ - $minimizeCrossingsNoCounter(this.$$outer_0, castTo(arg0, 214)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type', 1399); -function LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1400, 1, $intern_19, LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type); -_.accept = function accept_117(arg0){ - $minimizeCrossingsWithCounter(this.$$outer_0, castTo(arg0, 214)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type', 1400); -function $clinit_LayerSweepCrossingMinimizer$CrossMinType(){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType = emptyMethod; - BARYCENTER = new LayerSweepCrossingMinimizer$CrossMinType('BARYCENTER', 0); - ONE_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('ONE_SIDED_GREEDY_SWITCH', 1); - TWO_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('TWO_SIDED_GREEDY_SWITCH', 2); -} - -function LayerSweepCrossingMinimizer$CrossMinType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_67(name_0){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType(); - return valueOf(($clinit_LayerSweepCrossingMinimizer$CrossMinType$Map() , $MAP_55), name_0); -} - -function values_73(){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]); -} - -defineClass(454, 22, {3:1, 35:1, 22:1, 454:1}, LayerSweepCrossingMinimizer$CrossMinType); -var BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/CrossMinType', 454, Ljava_lang_Enum_2_classLit, values_73, valueOf_67); -function $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map(){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map = emptyMethod; - $MAP_55 = createValueOfMap(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]))); -} - -var $MAP_55; -function LayerSweepCrossingMinimizer$lambda$0$Type(){ -} - -defineClass(1397, 1, $intern_39, LayerSweepCrossingMinimizer$lambda$0$Type); -_.test_0 = function test_85(arg0){ - return $clinit_LayerSweepCrossingMinimizer() , castTo(arg0, 29).nodes.array.length == 0; -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/lambda$0$Type', 1397); -function $transferInfoTo(this$static, currentNode, target){ - var targetNodeInfo; - targetNodeInfo = this$static.nodeInfo[target.layer.id_0][target.id_0]; - targetNodeInfo.hierarchicalInfluence += currentNode.hierarchicalInfluence; - targetNodeInfo.randomInfluence += currentNode.randomInfluence; - targetNodeInfo.connectedEdges += currentNode.connectedEdges; - ++targetNodeInfo.connectedEdges; -} - -function $useBottomUp(this$static){ - var allPaths, boundary, currentNode, eastPorts, edge, edge$iterator, layer, layer$array, layer$index, layer$max, node, node$array, node$index, node$iterator, node$max, normalized, northSouthPorts, nsDummy, nsPortDummies, pathsToHierarchical, pathsToRandom, port, port$iterator, target, westPorts; - boundary = $doubleValue(castToDouble($getProperty(this$static.graphData.lGraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)))); - if (boundary < -1 || !this$static.graphData.hasParent || $isOrderFixed(castTo($getProperty(this$static.graphData.parent_0, PORT_CONSTRAINTS_0), 98)) || $getPortSideView(this$static.graphData.parent_0, ($clinit_PortSide() , EAST_2)).size_1() < 2 && $getPortSideView(this$static.graphData.parent_0, WEST_2).size_1() < 2) { - return true; - } - if (this$static.graphData.crossMinimizer.isDeterministic()) { - return false; - } - pathsToRandom = 0; - pathsToHierarchical = 0; - nsPortDummies = new ArrayList; - for (layer$array = this$static.graphData.currentNodeOrder , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { - layer = layer$array[layer$index]; - for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - nsPortDummies.array[nsPortDummies.array.length] = node; - continue; - } - currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; - if (node.type_0 == EXTERNAL_PORT) { - currentNode.hierarchicalInfluence = 1; - castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 11).side == ($clinit_PortSide() , EAST_2) && (pathsToHierarchical += currentNode.connectedEdges); - } - else { - westPorts = $getPortSideView(node, ($clinit_PortSide() , WEST_2)); - westPorts.isEmpty() || !any_0(westPorts, new LayerSweepTypeDecider$lambda$1$Type)?(currentNode.randomInfluence = 1):(eastPorts = $getPortSideView(node, EAST_2) , (eastPorts.isEmpty() || !any_0(eastPorts, new LayerSweepTypeDecider$lambda$0$Type)) && (pathsToRandom += currentNode.connectedEdges)); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - pathsToRandom += currentNode.randomInfluence; - pathsToHierarchical += currentNode.hierarchicalInfluence; - target = edge.target.owner; - $transferInfoTo(this$static, currentNode, target); - } - northSouthPorts = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [$getPortSideView(node, ($clinit_PortSide() , NORTH_3)), $getPortSideView(node, SOUTH_2)])); - for (port$iterator = new Iterators$ConcatenatedIterator(new FluentIterable$3$1(northSouthPorts.val$inputs1.length, northSouthPorts.val$inputs1)); $hasNext_1(port$iterator);) { - port = castTo($next_0(port$iterator), 11); - nsDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (nsDummy) { - pathsToRandom += currentNode.randomInfluence; - pathsToHierarchical += currentNode.hierarchicalInfluence; - $transferInfoTo(this$static, currentNode, nsDummy); - } - } - } - for (node$iterator = new ArrayList$1(nsPortDummies); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - pathsToRandom += currentNode.randomInfluence; - pathsToHierarchical += currentNode.hierarchicalInfluence; - target = edge.target.owner; - $transferInfoTo(this$static, currentNode, target); - } - } - nsPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - allPaths = pathsToRandom + pathsToHierarchical; - normalized = allPaths == 0?$intern_59:(pathsToRandom - pathsToHierarchical) / allPaths; - return normalized >= boundary; -} - -function LayerSweepTypeDecider(graphData){ - this.graphData = graphData; - this.nodeInfo = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, $intern_16, 1944, graphData.currentNodeOrder.length, 0, 2); -} - -defineClass(1799, 1, $intern_111, LayerSweepTypeDecider); -_.initAfterTraversal = function initAfterTraversal_5(){ -} -; -_.initAtEdgeLevel = function initAtEdgeLevel_5(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_5(l, n, p, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_5(l, nodeOrder){ - nodeOrder[l][0].layer.id_0 = l; - this.nodeInfo[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, {3:1, 4:1, 5:1, 1944:1}, 659, nodeOrder[l].length, 0, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_5(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - node.id_0 = n; - setCheck(this.nodeInfo[l], n, new LayerSweepTypeDecider$NodeInfo); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider', 1799); -function LayerSweepTypeDecider$NodeInfo(){ -} - -defineClass(659, 1, {659:1}, LayerSweepTypeDecider$NodeInfo); -_.toString_0 = function toString_101(){ - return 'NodeInfo [connectedEdges=' + this.connectedEdges + ', hierarchicalInfluence=' + this.hierarchicalInfluence + ', randomInfluence=' + this.randomInfluence + ']'; -} -; -_.connectedEdges = 0; -_.hierarchicalInfluence = 0; -_.randomInfluence = 0; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/NodeInfo', 659); -function LayerSweepTypeDecider$lambda$0$Type(){ -} - -defineClass(1800, 1, $intern_89, LayerSweepTypeDecider$lambda$0$Type); -_.apply_1 = function apply_137(arg0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); -} -; -_.equals_0 = function equals_149(other){ - return this === other; -} -; -_.test_0 = function test_86(input_0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$0$Type', 1800); -function LayerSweepTypeDecider$lambda$1$Type(){ -} - -defineClass(1801, 1, $intern_89, LayerSweepTypeDecider$lambda$1$Type); -_.apply_1 = function apply_138(arg0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); -} -; -_.equals_0 = function equals_150(other){ - return this === other; -} -; -_.test_0 = function test_87(input_0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$1$Type', 1801); -function LayerTotalPortDistributor(numLayers){ - AbstractBarycenterPortDistributor.call(this, numLayers); -} - -defineClass(1833, 402, $intern_114, LayerTotalPortDistributor); -_.calculatePortRanks = function calculatePortRanks(node, rankSum, type_0){ - var inputCount, northInputCount, northPos, port, port$iterator, port$iterator0, portRanks, pos, restPos; - portRanks = this.portRanks; - switch (type_0.ordinal) { - case 1: - { - inputCount = 0; - northInputCount = 0; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - if (port.incomingEdges.array.length != 0) { - ++inputCount; - port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; - } - } - northPos = rankSum + northInputCount; - restPos = rankSum + inputCount; - for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if (port.side == ($clinit_PortSide() , NORTH_3)) { - portRanks[port.id_0] = northPos; - --northPos; - } - else { - portRanks[port.id_0] = restPos; - --restPos; - } - } - return inputCount; - } - - case 2: - { - pos = 0; - for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - ++pos; - portRanks[port.id_0] = rankSum + pos; - } - return pos; - } - - default:throw toJs(new IllegalArgumentException); - } -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerTotalPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerTotalPortDistributor', 1833); -function $compareBasedOnBarycenter(this$static, n1, n2){ - var s1, s2, value_0; - s1 = this$static.barycenterState[n1.layer.id_0][n1.id_0]; - s2 = this$static.barycenterState[n2.layer.id_0][n2.id_0]; - if (s1.barycenter != null && s2.barycenter != null) { - value_0 = $compareTo_4(s1.barycenter, s2.barycenter); - value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1, n2):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); - return value_0; - } - else if (s1.barycenter != null) { - $updateBiggerAndSmallerAssociations_0(this$static, n1, n2); - return -1; - } - else if (s2.barycenter != null) { - $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); - return 1; - } - return 0; -} - -function $compareBasedOnTansitiveDependencies(this$static, n1, n2){ - if ($containsKey_3(this$static.biggerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { - return 1; - } - } - else { - $put_6(this$static.biggerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.biggerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { - return -1; - } - } - else { - $put_6(this$static.biggerThan, n2, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { - return -1; - } - } - else { - $put_6(this$static.smallerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.smallerThan, n2), 53), n1)) { - return 1; - } - } - else { - $put_6(this$static.smallerThan, n2, new HashSet); - } - return 0; -} - -function $lambda$0_8(this$static, n1_0, n2_1){ - var transitiveComparison, value_0; - transitiveComparison = $compareBasedOnTansitiveDependencies(this$static, n1_0, n2_1); - if (transitiveComparison != 0) { - return transitiveComparison; - } - if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(n2_1, MODEL_ORDER_0)) { - value_0 = compare_5(castTo($getProperty(n1_0, MODEL_ORDER_0), 19).value_0, castTo($getProperty(n2_1, MODEL_ORDER_0), 19).value_0); - value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1_0, n2_1):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2_1, n1_0); - return value_0; - } - return $compareBasedOnBarycenter(this$static, n1_0, n2_1); -} - -function $updateBiggerAndSmallerAssociations_0(this$static, bigger, smaller){ - var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; - biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); - smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); - biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); - smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); - biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); - smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); - for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { - verySmall = castTo(verySmall$iterator.next_1(), 10); - biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); - $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); - $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); - } - for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { - veryBig = castTo(veryBig$iterator.next_1(), 10); - smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); - $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); - $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); - } -} - -function ModelOrderBarycenterHeuristic(constraintResolver, random, portDistributor){ - BarycenterHeuristic.call(this, constraintResolver, random, portDistributor); - this.biggerThan = new HashMap; - this.smallerThan = new HashMap; - this.barycenterStateComparator = new ModelOrderBarycenterHeuristic$lambda$0$Type(this); -} - -function insertionSort_0(layer, comparator, barycenterHeuristic){ - var i, j, temp; - for (i = 1; i < layer.array.length; i++) { - temp = (checkCriticalElementIndex(i, layer.array.length) , castTo(layer.array[i], 10)); - j = i; - while (j > 0 && comparator.compare_1((checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10)), temp) > 0) { - $set_1(layer, j, (checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10))); - --j; - } - checkCriticalElementIndex(j, layer.array.length); - layer.array[j] = temp; - } - barycenterHeuristic.biggerThan = new HashMap; - barycenterHeuristic.smallerThan = new HashMap; -} - -defineClass(660, 817, {660:1, 225:1}, ModelOrderBarycenterHeuristic); -_.minimizeCrossings_0 = function minimizeCrossings_2(layer, preOrdered, randomize, forward_0){ - if (randomize) { - $randomizeBarycenters(this, layer); - } - else { - $calculateBarycenters(this, layer, forward_0); - $fillInUnknownBarycenters(this, layer, preOrdered); - } - if (layer.array.length > 1) { - $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, this):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); - $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || $processConstraints(this.constraintResolver, layer); - } -} -; -var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic', 660); -function ModelOrderBarycenterHeuristic$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1803, 1, $intern_88, ModelOrderBarycenterHeuristic$lambda$0$Type); -_.compare_1 = function compare_68(arg0, arg1){ - return $lambda$0_8(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_151(other){ - return this === other; -} -; -_.reversed = function reversed_60(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic/lambda$0$Type', 1803); -function $clinit_NoCrossingMinimizer(){ - $clinit_NoCrossingMinimizer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_5 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); -} - -function $process_69(progressMonitor){ - $begin(progressMonitor, 'No crossing minimization', 1); - $done_0(progressMonitor); -} - -function NoCrossingMinimizer(){ - $clinit_NoCrossingMinimizer(); -} - -defineClass(1403, 1, $intern_113, NoCrossingMinimizer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_11(graph){ - var configuration; - return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_5) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; -} -; -_.process = function process_66(graph, progressMonitor){ - $process_69((castTo(graph, 37) , progressMonitor)); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_5; -var Lorg_eclipse_elk_alg_layered_p3order_NoCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NoCrossingMinimizer', 1403); -function NodeRelativePortDistributor(numLayers){ - AbstractBarycenterPortDistributor.call(this, numLayers); -} - -defineClass(796, 402, $intern_114, NodeRelativePortDistributor); -_.calculatePortRanks = function calculatePortRanks_0(node, rankSum, type_0){ - var incr, inputCount, northInputCount, northPos, outputCount, port, port$iterator, port$iterator0, portRanks, pos, restPos; - portRanks = this.portRanks; - switch (type_0.ordinal) { - case 1: - { - inputCount = 0; - northInputCount = 0; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - if (port.incomingEdges.array.length != 0) { - ++inputCount; - port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; - } - } - incr = 1 / (inputCount + 1); - northPos = rankSum + northInputCount * incr; - restPos = rankSum + 1 - incr; - for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if (port.side == ($clinit_PortSide() , NORTH_3)) { - portRanks[port.id_0] = northPos; - northPos -= incr; - } - else { - portRanks[port.id_0] = restPos; - restPos -= incr; - } - } - break; - } - - case 2: - { - outputCount = 0; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - port.outgoingEdges.array.length == 0 || ++outputCount; - } - incr = 1 / (outputCount + 1); - pos = rankSum + incr; - for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - portRanks[port.id_0] = pos; - pos += incr; - } - break; - } - - default:throw toJs(new IllegalArgumentException_0('Port type is undefined')); - } - return 1; -} -; -var Lorg_eclipse_elk_alg_layered_p3order_NodeRelativePortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NodeRelativePortDistributor', 796); -function $assertCorrectPortSides(dummy){ - var anchorY, dummyPort, dummyPorts, origin_0, port, port$iterator, portHeight; - origin_0 = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); - dummyPorts = dummy.ports; - dummyPort = (checkCriticalElementIndex(0, dummyPorts.array.length) , castTo(dummyPorts.array[0], 11)); - for (port$iterator = new ArrayList$1(origin_0.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (maskUndefined(port) === maskUndefined($getProperty(dummyPort, ORIGIN_0))) { - if (port.side == ($clinit_PortSide() , NORTH_3) && dummy.id_0 > origin_0.id_0) { - $setSide(port, SOUTH_2); - if (port.explicitlySuppliedPortAnchor) { - portHeight = port.size_0.y_0; - anchorY = port.anchor.y_0; - port.anchor.y_0 = portHeight - anchorY; - } - } - else if (port.side == SOUTH_2 && origin_0.id_0 > dummy.id_0) { - $setSide(port, NORTH_3); - if (port.explicitlySuppliedPortAnchor) { - portHeight = port.size_0.y_0; - anchorY = port.anchor.y_0; - port.anchor.y_0 = -(portHeight - anchorY); - } - } - break; - } - } - return origin_0; -} - -function $deepCopy(currentlyBestNodeOrder){ - var i, result; - if (currentlyBestNodeOrder == null) { - return null; - } - result = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, currentlyBestNodeOrder.length, 0, 2); - for (i = 0; i < result.length; i++) { - result[i] = castTo(copyOf_0(currentlyBestNodeOrder[i], currentlyBestNodeOrder[i].length), 193); - } - return result; -} - -function $transferNodeAndPortOrdersToGraph_0(this$static, lGraph){ - var dummy, dummy$iterator, i, j, layers, node, node$iterator, nodes, northSouthPortDummies, origin_0, updatePortOrder; - northSouthPortDummies = new ArrayList; - updatePortOrder = new HashSet; - layers = lGraph.layers; - for (i = 0; i < layers.array.length; i++) { - nodes = (checkCriticalElementIndex(i, layers.array.length) , castTo(layers.array[i], 29)).nodes; - northSouthPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (j = 0; j < nodes.array.length; j++) { - node = this$static.nodeOrder[i][j]; - node.id_0 = j; - node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && (northSouthPortDummies.array[northSouthPortDummies.array.length] = node , true); - $set_1(castTo($get_11(lGraph.layers, i), 29).nodes, j, node); - node.ports.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(node.ports, castTo(castTo($get_11(this$static.portOrders, i), 15).get_0(j), 14)); - $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_ORDER)); - } - for (dummy$iterator = new ArrayList$1(northSouthPortDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - origin_0 = $assertCorrectPortSides(dummy); - updatePortOrder.map_0.put(origin_0, updatePortOrder); - updatePortOrder.map_0.put(dummy, updatePortOrder); - } - } - for (node$iterator = updatePortOrder.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - $clinit_Collections(); - $sort(node.ports, ($clinit_PortListSorter() , CMP_COMBINED)); - node.portSidesCached = true; - $findPortIndices(node); - } -} - -function SweepCopy(sc){ - this.nodeOrder = $deepCopy(sc.nodeOrder); - this.portOrders = new ArrayList_1(sc.portOrders); -} - -function SweepCopy_0(nodeOrderIn){ - var lNodes, lNodes$array, lNodes$index, lNodes$max, layer, node, node$array, node$index, node$max; - this.nodeOrder = $deepCopy(nodeOrderIn); - this.portOrders = new ArrayList; - for (lNodes$array = nodeOrderIn , lNodes$index = 0 , lNodes$max = lNodes$array.length; lNodes$index < lNodes$max; ++lNodes$index) { - lNodes = lNodes$array[lNodes$index]; - layer = new ArrayList; - $add_3(this.portOrders, layer); - for (node$array = lNodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $add_3(layer, new ArrayList_1(node.ports)); - } - } -} - -defineClass(807, 1, {}, SweepCopy, SweepCopy_0); -var Lorg_eclipse_elk_alg_layered_p3order_SweepCopy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'SweepCopy', 807); -function $countAllCrossings(this$static, currentOrder){ - var crossings, layerIndex; - if (currentOrder.length == 0) { - return 0; - } - crossings = $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[0], ($clinit_PortSide() , WEST_2)); - crossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[currentOrder.length - 1], EAST_2); - for (layerIndex = 0; layerIndex < currentOrder.length; layerIndex++) { - crossings += $countCrossingsAt(this$static, layerIndex, currentOrder); - } - return crossings; -} - -function $countCrossingsAt(this$static, layerIndex, currentOrder){ - var leftLayer, rightLayer, totalCrossings; - totalCrossings = 0; - leftLayer = currentOrder[layerIndex]; - if (layerIndex < currentOrder.length - 1) { - rightLayer = currentOrder[layerIndex + 1]; - if (this$static.hasHyperEdgesEastOfIndex[layerIndex]) { - totalCrossings = $countCrossings_1(this$static.hyperedgeCrossingsCounter, leftLayer, rightLayer); - totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, leftLayer, ($clinit_PortSide() , EAST_2)); - totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, rightLayer, WEST_2); - } - else { - totalCrossings = $countCrossingsBetweenLayers(this$static.crossingCounter, leftLayer, rightLayer); - } - } - this$static.hasNorthSouthPorts[layerIndex] && (totalCrossings += $countNorthSouthPortCrossingsInLayer(this$static.crossingCounter, leftLayer)); - return totalCrossings; -} - -function AllCrossingsCounter(graph){ - this.inLayerEdgeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.length, 15, 1); - this.hasNorthSouthPorts = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); - this.hasHyperEdgesEastOfIndex = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); - this.nPorts = 0; -} - -defineClass(1798, 1, $intern_111, AllCrossingsCounter); -_.initAtLayerLevel = function initAtLayerLevel_6(l, nodeOrder){ -} -; -_.initAfterTraversal = function initAfterTraversal_6(){ - var portPos; - portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); - this.hyperedgeCrossingsCounter = new HyperedgeCrossingsCounter(portPos); - this.crossingCounter = new CrossingsCounter(portPos); -} -; -_.initAtEdgeLevel = function initAtEdgeLevel_6(l, n, p, e, edge, nodeOrder){ - var port; - port = castTo($get_11(nodeOrder[l][n].ports, p), 11); - edge.source == port && edge.source.owner.layer == edge.target.owner.layer && ++this.inLayerEdgeCounts[l]; -} -; -_.initAtNodeLevel = function initAtNodeLevel_6(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - this.hasNorthSouthPorts[l] = this.hasNorthSouthPorts[l] | node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT); -} -; -_.initAtPortLevel = function initAtPortLevel_6(l, n, p, nodeOrder){ - var port; - port = castTo($get_11(nodeOrder[l][n].ports, p), 11); - port.id_0 = this.nPorts++; - port.outgoingEdges.array.length + port.incomingEdges.array.length > 1 && (port.side == ($clinit_PortSide() , EAST_2)?(this.hasHyperEdgesEastOfIndex[l] = true):port.side == WEST_2 && l > 0 && (this.hasHyperEdgesEastOfIndex[l - 1] = true)); -} -; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_AllCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'AllCrossingsCounter', 1798); -function $add_16(this$static, index_0){ - var i; - ++this$static.size_0; - ++this$static.numsPerIndex[index_0]; - i = index_0 + 1; - while (i < this$static.binarySums.length) { - ++this$static.binarySums[i]; - i += i & -i; - } -} - -function $clear_9(this$static){ - this$static.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum + 1, 15, 1); - this$static.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum, 15, 1); - this$static.size_0 = 0; -} - -function $rank(this$static, index_0){ - var i, sum; - i = index_0; - sum = 0; - while (i > 0) { - sum += this$static.binarySums[i]; - i -= i & -i; - } - return sum; -} - -function $removeAll_3(this$static, index_0){ - var i, numEntries; - numEntries = this$static.numsPerIndex[index_0]; - if (numEntries == 0) { - return; - } - this$static.numsPerIndex[index_0] = 0; - this$static.size_0 -= numEntries; - i = index_0 + 1; - while (i < this$static.binarySums.length) { - this$static.binarySums[i] -= numEntries; - i += i & -i; - } -} - -function BinaryIndexedTree(maxNum){ - this.maxNum = maxNum; - this.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum + 1, 15, 1); - this.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum, 15, 1); - this.size_0 = 0; -} - -defineClass(587, 1, {}, BinaryIndexedTree); -_.maxNum = 0; -_.size_0 = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_BinaryIndexedTree_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'BinaryIndexedTree', 587); -function inNorthSouthEastWestOrder(node, side){ - switch (side.ordinal) { - case 2: - case 1: - return $getPortSideView(node, side); - case 3: - case 4: - return reverse_0($getPortSideView(node, side)); - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function $clinit_CrossingsCounter(){ - $clinit_CrossingsCounter = emptyMethod; - INDEXING_SIDE = ($clinit_PortSide() , WEST_2); - STACK_SIDE = EAST_2; -} - -function $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side){ - var edge, edge$iterator, node, node$array, node$index, node$max, port, port$iterator, ports; - ports = new TreeSet_0(new CrossingsCounter$lambda$2$Type(this$static)); - for (node$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [upperNode, lowerNode]) , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - for (port$iterator = inNorthSouthEastWestOrder(node, side).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - if (!$isSelfLoop(edge)) { - $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; - $isInLayer(edge) && $add_10(ports, port == edge.source?edge.target:edge.source); - } - } - } - } - return checkNotNull(ports) , new ArrayList_1(ports); -} - -function $connectedPortsSortedByPosition(this$static, upperPort, lowerPort){ - var edge, edge$iterator, port, port$array, port$index, port$max, ports; - ports = new TreeSet_0(new CrossingsCounter$lambda$3$Type(this$static)); - for (port$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, 1), $intern_108, 11, 0, [upperPort, lowerPort]) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { - port = port$array[port$index]; - $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - edge.source == edge.target || $add_10(ports, port == edge.source?edge.target:edge.source); - } - } - return checkNotNull(ports) , new ArrayList_1(ports); -} - -function $countCrossingsBetweenLayers(this$static, leftLayerNodes, rightLayerNodes){ - var ports; - ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); - return $countCrossingsOnPorts(this$static, ports); -} - -function $countCrossingsBetweenPortsInBothOrders(this$static, upperPort, lowerPort){ - var lowerUpperCrossings, ports, upperLowerCrossings; - ports = $connectedPortsSortedByPosition(this$static, upperPort, lowerPort); - upperLowerCrossings = $countCrossingsOnPorts(this$static, ports); - $clear_9(this$static.indexTree); - $switchPorts(this$static, upperPort, lowerPort); - $clinit_Collections(); - $sort(ports, new CrossingsCounter$lambda$0$Type(this$static)); - lowerUpperCrossings = $countCrossingsOnPorts(this$static, ports); - $clear_9(this$static.indexTree); - $switchPorts(this$static, lowerPort, upperPort); - return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); -} - -function $countCrossingsOnPorts(this$static, ports){ - var crossings, edge, edge$iterator, endPosition, port, port$iterator; - crossings = 0; - for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); - if (endPosition > this$static.portPositions[port.id_0]) { - crossings += $rank(this$static.indexTree, endPosition); - $addFirst(this$static.ends, valueOf_4(endPosition)); - } - } - while (!$isEmpty(this$static.ends)) { - $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); - } - } - return crossings; -} - -function $countInLayerCrossingsBetweenNodesInBothOrders(this$static, upperNode, lowerNode, side){ - var lowerUpperCrossings, ports, upperLowerCrossings; - ports = $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side); - upperLowerCrossings = $countInLayerCrossingsOnPorts(this$static, ports); - $switchNodes(this$static, upperNode, lowerNode, side); - $clear_9(this$static.indexTree); - $clinit_Collections(); - $sort(ports, new CrossingsCounter$lambda$1$Type(this$static)); - lowerUpperCrossings = $countInLayerCrossingsOnPorts(this$static, ports); - $switchNodes(this$static, lowerNode, upperNode, side); - $clear_9(this$static.indexTree); - return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); -} - -function $countInLayerCrossingsOnPorts(this$static, ports){ - var crossings, edge, edge$iterator, endPosition, numBetweenLayerEdges, port, port$iterator; - crossings = 0; - for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); - numBetweenLayerEdges = 0; - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - if ($isInLayer(edge)) { - endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); - if (endPosition > this$static.portPositions[port.id_0]) { - crossings += $rank(this$static.indexTree, endPosition); - $addFirst(this$static.ends, valueOf_4(endPosition)); - } - } - else { - ++numBetweenLayerEdges; - } - } - crossings += this$static.indexTree.size_0 * numBetweenLayerEdges; - while (!$isEmpty(this$static.ends)) { - $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); - } - } - return crossings; -} - -function $countInLayerCrossingsOnSide(this$static, nodes, side){ - var ports; - ports = $initPortPositionsForInLayerCrossings(this$static, nodes, side); - return $countInLayerCrossingsOnPorts(this$static, ports); -} - -function $countNorthSouthCrossingsOnPorts(this$static, ports){ - var crossings, dummy, dummyPort, endPosition, port, port$iterator, targetAndDegree, targetAndDegree$iterator, targetsAndDegrees; - crossings = 0; - targetsAndDegrees = new ArrayList; - for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); - targetsAndDegrees.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - switch (port.owner.type_0.ordinal) { - case 0: - dummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - $forEach_1(dummy.ports, new CrossingsCounter$lambda$4$Type(targetsAndDegrees)); - break; - case 1: - $ifPresent($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.owner.ports, 16)), new CrossingsCounter$lambda$5$Type(port))), new CrossingsCounter$lambda$6$Type(targetsAndDegrees)); - break; - case 3: - dummyPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - $add_3(targetsAndDegrees, new Pair(dummyPort, valueOf_4(port.incomingEdges.array.length + port.outgoingEdges.array.length))); - } - for (targetAndDegree$iterator = new ArrayList$1(targetsAndDegrees); targetAndDegree$iterator.i < targetAndDegree$iterator.this$01.array.length;) { - targetAndDegree = castTo($next_7(targetAndDegree$iterator), 46); - endPosition = $positionOf_0(this$static, castTo(targetAndDegree.first, 11)); - if (endPosition > this$static.portPositions[port.id_0]) { - crossings += $rank(this$static.indexTree, endPosition) * castTo(targetAndDegree.second, 19).value_0; - $addFirst(this$static.ends, valueOf_4(endPosition)); - } - } - while (!$isEmpty(this$static.ends)) { - $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); - } - } - return crossings; -} - -function $countNorthSouthPortCrossingsInLayer(this$static, layer){ - var ports; - ports = $initPositionsForNorthSouthCounting(this$static, layer); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); - return $countNorthSouthCrossingsOnPorts(this$static, ports); -} - -function $emptyStack(this$static, stack_0, ports, side, startIndex){ - var dummy, index_0, p; - index_0 = startIndex; - while (stack_0.head != stack_0.tail) { - dummy = castTo($removeFirst(stack_0), 10); - p = castTo($getPortSideView(dummy, side).get_0(0), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - return index_0; -} - -function $initForCountingBetween(this$static, leftLayerNodes, rightLayerNodes){ - var ports; - ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); -} - -function $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes){ - var ports; - ports = new ArrayList; - $initPositions(this$static, leftLayerNodes, ports, ($clinit_PortSide() , EAST_2), true, false); - $initPositions(this$static, rightLayerNodes, ports, WEST_2, false, false); - return ports; -} - -function $initPortPositionsForInLayerCrossings(this$static, nodes, side){ - var ports; - ports = new ArrayList; - $initPositions(this$static, nodes, ports, side, true, true); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); - return ports; -} - -function $initPositions(this$static, nodes, ports, side, topDown, getCardinalities){ - var i, node, nodePorts, numPorts, port, port$iterator; - numPorts = ports.array.length; - getCardinalities && (this$static.nodeCardinalities = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.length, 15, 1)); - for (i = topDown?0:nodes.length - 1; topDown?i < nodes.length:i >= 0; i += topDown?1:-1) { - node = nodes[i]; - nodePorts = side == ($clinit_PortSide() , EAST_2)?topDown?$getPortSideView(node, side):reverse_0($getPortSideView(node, side)):topDown?reverse_0($getPortSideView(node, side)):$getPortSideView(node, side); - getCardinalities && (this$static.nodeCardinalities[node.id_0] = nodePorts.size_1()); - for (port$iterator = nodePorts.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - this$static.portPositions[port.id_0] = numPorts++; - } - $addAll_2(ports, nodePorts); - } -} - -function $initPositionsForNorthSouthCounting(this$static, nodes){ - var current, i, index_0, lastLayoutUnit, p, p$iterator, p$iterator0, p$iterator1, ports, stack_0; - ports = new ArrayList; - stack_0 = new ArrayDeque; - lastLayoutUnit = null; - index_0 = 0; - for (i = 0; i < nodes.length; ++i) { - current = nodes[i]; - $isLayoutUnitChanged(lastLayoutUnit, current) && (index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0)); - $hasProperty(current, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)) && (lastLayoutUnit = castTo($getProperty(current, IN_LAYER_LAYOUT_UNIT), 10)); - switch (current.type_0.ordinal) { - case 0: - for (p$iterator0 = $iterator_0(filter_0($getPortSideView(current, ($clinit_PortSide() , NORTH_3)), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator0);) { - p = castTo($next(p$iterator0), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); - for (p$iterator1 = $iterator_0(filter_0($getPortSideView(current, SOUTH_2), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator1);) { - p = castTo($next(p$iterator1), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - break; - case 3: - if (!$getPortSideView(current, INDEXING_SIDE).isEmpty()) { - p = castTo($getPortSideView(current, INDEXING_SIDE).get_0(0), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - $getPortSideView(current, STACK_SIDE).isEmpty() || $addFirst(stack_0, current); - break; - case 1: - for (p$iterator = $getPortSideView(current, ($clinit_PortSide() , WEST_2)).iterator_0(); p$iterator.hasNext_0();) { - p = castTo(p$iterator.next_1(), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - $getPortSideView(current, EAST_2).forEach_0(new CrossingsCounter$lambda$7$Type(stack_0, current)); - } - } - $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); - return ports; -} - -function $isInLayer(edge){ - var sourceLayer, targetLayer; - sourceLayer = edge.source.owner.layer; - targetLayer = edge.target.owner.layer; - return sourceLayer == targetLayer; -} - -function $isLayoutUnitChanged(lastUnit, node){ - var unit; - if (!lastUnit || lastUnit == node || !$hasProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT))) { - return false; - } - unit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); - return unit != lastUnit; -} - -function $lambda$0_9(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $lambda$1_3(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $lambda$2_2(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $lambda$3_1(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $positionOf_0(this$static, port){ - return this$static.portPositions[port.id_0]; -} - -function $switchNodes(this$static, wasUpperNode, wasLowerNode, side){ - var port, port$iterator, port$iterator0, ports; - ports = inNorthSouthEastWestOrder(wasUpperNode, side); - for (port$iterator0 = ports.iterator_0(); port$iterator0.hasNext_0();) { - port = castTo(port$iterator0.next_1(), 11); - this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] + this$static.nodeCardinalities[wasLowerNode.id_0]; - } - ports = inNorthSouthEastWestOrder(wasLowerNode, side); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] - this$static.nodeCardinalities[wasUpperNode.id_0]; - } -} - -function $switchPorts(this$static, topPort, bottomPort){ - var topPortPos; - topPortPos = this$static.portPositions[topPort.id_0]; - this$static.portPositions[topPort.id_0] = this$static.portPositions[bottomPort.id_0]; - this$static.portPositions[bottomPort.id_0] = topPortPos; -} - -function CrossingsCounter(portPositions){ - $clinit_CrossingsCounter(); - this.portPositions = portPositions; - this.ends = new ArrayDeque; -} - -function lambda$4_7(targetsAndDegrees_0, p_1){ - $clinit_CrossingsCounter(); - return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); -} - -function lambda$5_4(port_0, p_1){ - $clinit_CrossingsCounter(); - return p_1 != port_0; -} - -function lambda$6_1(targetsAndDegrees_0, p_1){ - $clinit_CrossingsCounter(); - return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); -} - -defineClass(524, 1, {}, CrossingsCounter); -var INDEXING_SIDE, STACK_SIDE; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter', 524); -function CrossingsCounter$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1906, 1, $intern_88, CrossingsCounter$lambda$0$Type); -_.compare_1 = function compare_69(arg0, arg1){ - return $lambda$0_9(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_152(other){ - return this === other; -} -; -_.reversed = function reversed_61(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$0$Type', 1906); -function CrossingsCounter$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1907, 1, $intern_88, CrossingsCounter$lambda$1$Type); -_.compare_1 = function compare_70(arg0, arg1){ - return $lambda$1_3(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_153(other){ - return this === other; -} -; -_.reversed = function reversed_62(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$1$Type', 1907); -function CrossingsCounter$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1908, 1, $intern_88, CrossingsCounter$lambda$2$Type); -_.compare_1 = function compare_71(arg0, arg1){ - return $lambda$2_2(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_154(other){ - return this === other; -} -; -_.reversed = function reversed_63(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$2$Type', 1908); -function CrossingsCounter$lambda$3$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1909, 1, $intern_88, CrossingsCounter$lambda$3$Type); -_.compare_1 = function compare_72(arg0, arg1){ - return $lambda$3_1(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_155(other){ - return this === other; -} -; -_.reversed = function reversed_64(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$3$Type', 1909); -function CrossingsCounter$lambda$4$Type(targetsAndDegrees_0){ - this.targetsAndDegrees_0 = targetsAndDegrees_0; -} - -defineClass(1910, 1, $intern_19, CrossingsCounter$lambda$4$Type); -_.accept = function accept_118(arg0){ - lambda$4_7(this.targetsAndDegrees_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$4$Type', 1910); -function CrossingsCounter$lambda$5$Type(port_0){ - this.port_0 = port_0; -} - -defineClass(1911, 1, $intern_39, CrossingsCounter$lambda$5$Type); -_.test_0 = function test_88(arg0){ - return lambda$5_4(this.port_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$5$Type', 1911); -function $accept_4(this$static, arg0){ - lambda$6_1(this$static.targetsAndDegrees_0, castTo(arg0, 11)); -} - -function CrossingsCounter$lambda$6$Type(targetsAndDegrees_0){ - this.targetsAndDegrees_0 = targetsAndDegrees_0; -} - -defineClass(1912, 1, $intern_19, CrossingsCounter$lambda$6$Type); -_.accept = function accept_119(arg0){ - $accept_4(this, arg0); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$6$Type', 1912); -function CrossingsCounter$lambda$7$Type(stack_0, current_1){ - this.stack_0 = stack_0; - this.current_1 = current_1; -} - -defineClass(1913, 1, $intern_19, CrossingsCounter$lambda$7$Type); -_.accept = function accept_120(arg0){ - var lastArg; - $clinit_CrossingsCounter(); - $addFirst(this.stack_0, (lastArg = this.current_1 , castTo(arg0, 11) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$7$Type', 1913); -function CrossingsCounter$lambda$8$Type(){ -} - -defineClass(826, 1, $intern_89, CrossingsCounter$lambda$8$Type); -_.apply_1 = function apply_139(arg0){ - return $clinit_CrossingsCounter() , $hasProperty(castTo(arg0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); -} -; -_.equals_0 = function equals_156(other){ - return this === other; -} -; -_.test_0 = function test_89(input_0){ - return $clinit_CrossingsCounter() , $hasProperty(castTo(input_0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$8$Type', 826); -function $countCrossings_1(this$static, leftLayer, rightLayer){ - var compressDeltas, crossings, delta, edge, edge$iterator, firstIndex, he, he$array, he$index, he$max, hyperedge, hyperedgeSet, hyperedges, i, i0, i1, i2, i3, i4, i5, index_0, k, leftCorners, leftLayerRef, node, node$array, node$array0, node$array1, node$index, node$index0, node$index1, node$max, node$max0, node$max1, northInputPorts, openHyperedges, otherInputPorts, p, p$iterator, port, port$iterator, port2HyperedgeMap, portEdges, portIter, pos, q, rightCorners, rightLayerRef, sourceCount, sourceHE, sourcePort, sourcePort$iterator, southSequence, targetCount, targetHE, targetPort, tree, treeSize; - sourceCount = 0; - for (node$array0 = leftLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { - node = node$array0[node$index0]; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - portEdges = 0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node.layer != edge.target.owner.layer && ++portEdges; - } - portEdges > 0 && (this$static.portPos[port.id_0] = sourceCount++); - } - } - targetCount = 0; - for (node$array1 = rightLayer , node$index1 = 0 , node$max1 = node$array1.length; node$index1 < node$max1; ++node$index1) { - node = node$array1[node$index1]; - northInputPorts = 0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (port.side == ($clinit_PortSide() , NORTH_3)) { - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (node.layer != edge.source.owner.layer) { - ++northInputPorts; - break; - } - } - } - else { - break; - } - } - otherInputPorts = 0; - portIter = new AbstractList$ListIteratorImpl(node.ports, node.ports.array.length); - while (portIter.i > 0) { - port = (checkCriticalElement(portIter.i > 0) , castTo(portIter.this$01.get_0(portIter.last = --portIter.i), 11)); - portEdges = 0; - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node.layer != edge.source.owner.layer && ++portEdges; - } - if (portEdges > 0) { - if (port.side == ($clinit_PortSide() , NORTH_3)) { - this$static.portPos[port.id_0] = targetCount; - ++targetCount; - } - else { - this$static.portPos[port.id_0] = targetCount + northInputPorts + otherInputPorts; - ++otherInputPorts; - } - } - } - targetCount += otherInputPorts; - } - port2HyperedgeMap = new HashMap; - hyperedgeSet = new LinkedHashSet; - for (node$array = leftLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { - sourcePort = castTo($next_7(sourcePort$iterator), 11); - for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - targetPort = edge.target; - if (node.layer != targetPort.owner.layer) { - sourceHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, sourcePort)), 467); - targetHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, targetPort)), 467); - if (!sourceHE && !targetHE) { - hyperedge = new HyperedgeCrossingsCounter$Hyperedge; - hyperedgeSet.map_0.put(hyperedge, hyperedgeSet); - $add_3(hyperedge.edges, edge); - $add_3(hyperedge.ports, sourcePort); - $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, hyperedge); - $add_3(hyperedge.ports, targetPort); - $put_9(port2HyperedgeMap.hashCodeMap, targetPort, hyperedge); - } - else if (!sourceHE) { - $add_3(targetHE.edges, edge); - $add_3(targetHE.ports, sourcePort); - $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, targetHE); - } - else if (!targetHE) { - $add_3(sourceHE.edges, edge); - $add_3(sourceHE.ports, targetPort); - $put_9(port2HyperedgeMap.hashCodeMap, targetPort, sourceHE); - } - else if (sourceHE == targetHE) { - $add_3(sourceHE.edges, edge); - } - else { - $add_3(sourceHE.edges, edge); - for (p$iterator = new ArrayList$1(targetHE.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - $put_9(port2HyperedgeMap.hashCodeMap, p, sourceHE); - } - $addAll_2(sourceHE.edges, targetHE.edges); - $addAll_2(sourceHE.ports, targetHE.ports); - hyperedgeSet.map_0.remove_0(targetHE) != null; - } - } - } - } - } - hyperedges = castTo($toArray_0(hyperedgeSet, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit, {3:1, 4:1, 5:1, 1946:1}, 467, hyperedgeSet.map_0.size_1(), 0, 1)), 1946); - leftLayerRef = leftLayer[0].layer; - rightLayerRef = rightLayer[0].layer; - for (he$array = hyperedges , he$index = 0 , he$max = he$array.length; he$index < he$max; ++he$index) { - he = he$array[he$index]; - he.upperLeft = sourceCount; - he.upperRight = targetCount; - for (port$iterator = new ArrayList$1(he.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - pos = this$static.portPos[port.id_0]; - if (port.owner.layer == leftLayerRef) { - pos < he.upperLeft && (he.upperLeft = pos); - pos > he.lowerLeft && (he.lowerLeft = pos); - } - else if (port.owner.layer == rightLayerRef) { - pos < he.upperRight && (he.upperRight = pos); - pos > he.lowerRight && (he.lowerRight = pos); - } - } - } - mergeSort(hyperedges, 0, hyperedges.length, null); - southSequence = initUnidimensionalArray(I_classLit, $intern_48, 25, hyperedges.length, 15, 1); - compressDeltas = initUnidimensionalArray(I_classLit, $intern_48, 25, targetCount + 1, 15, 1); - for (i0 = 0; i0 < hyperedges.length; i0++) { - southSequence[i0] = hyperedges[i0].upperRight; - compressDeltas[southSequence[i0]] = 1; - } - delta = 0; - for (i1 = 0; i1 < compressDeltas.length; i1++) { - compressDeltas[i1] == 1?(compressDeltas[i1] = delta):--delta; - } - q = 0; - for (i2 = 0; i2 < southSequence.length; i2++) { - southSequence[i2] += compressDeltas[southSequence[i2]]; - q = $wnd.Math.max(q, southSequence[i2] + 1); - } - firstIndex = 1; - while (firstIndex < q) { - firstIndex *= 2; - } - treeSize = 2 * firstIndex - 1; - firstIndex -= 1; - tree = initUnidimensionalArray(I_classLit, $intern_48, 25, treeSize, 15, 1); - crossings = 0; - for (k = 0; k < southSequence.length; k++) { - index_0 = southSequence[k] + firstIndex; - ++tree[index_0]; - while (index_0 > 0) { - index_0 % 2 > 0 && (crossings += tree[index_0 + 1]); - index_0 = (index_0 - 1) / 2 | 0; - ++tree[index_0]; - } - } - leftCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); - for (i3 = 0; i3 < hyperedges.length; i3++) { - leftCorners[2 * i3] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].upperLeft, hyperedges[i3].lowerLeft, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); - leftCorners[2 * i3 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].lowerLeft, hyperedges[i3].upperLeft, LOWER); - } - mergeSort(leftCorners, 0, leftCorners.length, null); - openHyperedges = 0; - for (i4 = 0; i4 < leftCorners.length; i4++) { - switch (leftCorners[i4].type_0.ordinal) { - case 0: - ++openHyperedges; - break; - case 1: - --openHyperedges; - crossings += openHyperedges; - } - } - rightCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); - for (i5 = 0; i5 < hyperedges.length; i5++) { - rightCorners[2 * i5] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].upperRight, hyperedges[i5].lowerRight, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); - rightCorners[2 * i5 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].lowerRight, hyperedges[i5].upperRight, LOWER); - } - mergeSort(rightCorners, 0, rightCorners.length, null); - openHyperedges = 0; - for (i = 0; i < rightCorners.length; i++) { - switch (rightCorners[i].type_0.ordinal) { - case 0: - ++openHyperedges; - break; - case 1: - --openHyperedges; - crossings += openHyperedges; - } - } - return crossings; -} - -function HyperedgeCrossingsCounter(portPos){ - this.portPos = portPos; -} - -defineClass(1905, 1, {}, HyperedgeCrossingsCounter); -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter', 1905); -function $compareTo_14(this$static, other){ - if (this$static.upperLeft < other.upperLeft) { - return -1; - } - else if (this$static.upperLeft > other.upperLeft) { - return 1; - } - else if (this$static.upperRight < other.upperRight) { - return -1; - } - else if (this$static.upperRight > other.upperRight) { - return 1; - } - return hashCode__I__devirtual$(this$static) - hashCode__I__devirtual$(other); -} - -function HyperedgeCrossingsCounter$Hyperedge(){ - this.edges = new ArrayList; - this.ports = new ArrayList; -} - -defineClass(467, 1, {35:1, 467:1}, HyperedgeCrossingsCounter$Hyperedge); -_.compareTo_0 = function compareTo_15(other){ - return $compareTo_14(this, castTo(other, 467)); -} -; -_.lowerLeft = 0; -_.lowerRight = 0; -_.upperLeft = 0; -_.upperRight = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/Hyperedge', 467); -function $compareTo_15(this$static, other){ - if (this$static.position < other.position) { - return -1; - } - else if (this$static.position > other.position) { - return 1; - } - else if (this$static.oppositePosition < other.oppositePosition) { - return -1; - } - else if (this$static.oppositePosition > other.oppositePosition) { - return 1; - } - else if (this$static.hyperedge != other.hyperedge) { - return hashCode__I__devirtual$(this$static.hyperedge) - hashCode__I__devirtual$(other.hyperedge); - } - else if (this$static.type_0 == ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER) && other.type_0 == LOWER) { - return -1; - } - else if (this$static.type_0 == LOWER && other.type_0 == UPPER) { - return 1; - } - return 0; -} - -function HyperedgeCrossingsCounter$HyperedgeCorner(hyperedge, position, oppositePosition, type_0){ - this.hyperedge = hyperedge; - this.position = position; - this.oppositePosition = oppositePosition; - this.type_0 = type_0; -} - -defineClass(362, 1, {35:1, 362:1}, HyperedgeCrossingsCounter$HyperedgeCorner); -_.compareTo_0 = function compareTo_16(other){ - return $compareTo_15(this, castTo(other, 362)); -} -; -_.oppositePosition = 0; -_.position = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner', 362); -function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type = emptyMethod; - UPPER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('UPPER', 0); - LOWER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('LOWER', 1); -} - -function HyperedgeCrossingsCounter$HyperedgeCorner$Type(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_68(name_0){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); - return valueOf(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map() , $MAP_56), name_0); -} - -function values_74(){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]); -} - -defineClass(523, 22, {3:1, 35:1, 22:1, 523:1}, HyperedgeCrossingsCounter$HyperedgeCorner$Type); -var LOWER, UPPER; -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner/Type', 523, Ljava_lang_Enum_2_classLit, values_74, valueOf_68); -function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map(){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map = emptyMethod; - $MAP_56 = createValueOfMap(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]))); -} - -var $MAP_56; -function $clinit_InteractiveNodePlacer(){ - $clinit_InteractiveNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $placeNodes(this$static, layer){ - var minValidY, node, node$iterator, nodeType, originalYCoordinate, prevNodeType, spacing; - minValidY = $intern_60; - prevNodeType = ($clinit_LNode$NodeType() , NORMAL); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeType = node.type_0; - if (nodeType != NORMAL) { - originalYCoordinate = castToDouble($getProperty(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION))); - if (originalYCoordinate == null) { - minValidY = $wnd.Math.max(minValidY, 0); - node.pos.y_0 = minValidY + $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); - } - else { - node.pos.y_0 = (checkCriticalNotNull(originalYCoordinate) , originalYCoordinate); - } - } - spacing = $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); - node.pos.y_0 < minValidY + spacing + node.margin.top_0 && (node.pos.y_0 = minValidY + spacing + node.margin.top_0); - minValidY = node.pos.y_0 + node.size_0.y_0 + node.margin.bottom; - prevNodeType = nodeType; - } -} - -function $process_70(this$static, layeredGraph, monitor){ - var layer, layer$iterator; - $begin(monitor, 'Interactive node placement', 1); - this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $placeNodes(this$static, layer); - } - $done_0(monitor); -} - -function InteractiveNodePlacer(){ - $clinit_InteractiveNodePlacer(); -} - -defineClass(1405, 1, $intern_113, InteractiveNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_12(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS:null; -} -; -_.process = function process_67(layeredGraph, monitor){ - $process_70(this, castTo(layeredGraph, 37), monitor); -} -; -var HIERARCHY_PROCESSING_ADDITIONS; -var Lorg_eclipse_elk_alg_layered_p4nodes_InteractiveNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'InteractiveNodePlacer', 1405); -function $clinit_LinearSegmentsNodePlacer(){ - $clinit_LinearSegmentsNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_0 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); - INPUT_PRIO = new Property_0('linearSegments.inputPrio', valueOf_4(0)); - OUTPUT_PRIO = new Property_0('linearSegments.outputPrio', valueOf_4(0)); -} - -function $balancePlacement(this$static, layeredGraph){ - var deflection, deflectionDampening, finalIters, incoming, lastTotalDeflection, merged, mode, node, node$iterator, outgoing, pendulumIters, ready, segment, segment$array, segment$array0, segment$index, segment$index0, segment$max, segment$max0, thoroughness, threshold, totalDeflection; - deflectionDampening = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)))); - thoroughness = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0; - pendulumIters = 4; - finalIters = 3; - threshold = 20 / thoroughness; - ready = false; - mode = 0; - lastTotalDeflection = $intern_0; - do { - incoming = mode != 1; - outgoing = mode != 0; - totalDeflection = 0; - for (segment$array0 = this$static.linearSegments , segment$index0 = 0 , segment$max0 = segment$array0.length; segment$index0 < segment$max0; ++segment$index0) { - segment = segment$array0[segment$index0]; - segment.refSegment = null; - $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening); - totalDeflection += $wnd.Math.abs(segment.deflection); - } - do { - merged = $mergeRegions(this$static, layeredGraph); - } - while (merged); - for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { - segment = segment$array[segment$index]; - deflection = $region(segment).deflection; - if (deflection != 0) { - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 += deflection; - } - } - } - if (mode == 0 || mode == 1) { - --pendulumIters; - if (pendulumIters <= 0 && (totalDeflection < lastTotalDeflection || -pendulumIters > thoroughness)) { - mode = 2; - lastTotalDeflection = $intern_0; - } - else if (mode == 0) { - mode = 1; - lastTotalDeflection = totalDeflection; - } - else { - mode = 0; - lastTotalDeflection = totalDeflection; - } - } - else { - ready = totalDeflection >= lastTotalDeflection || lastTotalDeflection - totalDeflection < threshold; - lastTotalDeflection = totalDeflection; - ready && --finalIters; - } - } - while (!(ready && finalIters <= 0)); -} - -function $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening){ - var edge, edge$iterator, edgeWeightSum, inputPrio, minPrio, node, node$iterator, nodeDeflection, nodeWeightSum, otherNode, otherPort, otherPrio, outputPrio, port, port$iterator, portpos, prio, segmentDeflection; - segmentDeflection = 0; - nodeWeightSum = 0; - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeDeflection = 0; - edgeWeightSum = 0; - inputPrio = incoming?castTo($getProperty(node, INPUT_PRIO), 19).value_0:$intern_42; - outputPrio = outgoing?castTo($getProperty(node, OUTPUT_PRIO), 19).value_0:$intern_42; - minPrio = $wnd.Math.max(inputPrio, outputPrio); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - portpos = node.pos.y_0 + port.pos.y_0 + port.anchor.y_0; - if (outgoing) { - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - otherPort = edge.target; - otherNode = otherPort.owner; - if (segment != this$static.linearSegments[otherNode.id_0]) { - otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (prio >= minPrio && prio >= otherPrio) { - nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; - ++edgeWeightSum; - } - } - } - } - if (incoming) { - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - otherPort = edge.source; - otherNode = otherPort.owner; - if (segment != this$static.linearSegments[otherNode.id_0]) { - otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (prio >= minPrio && prio >= otherPrio) { - nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; - ++edgeWeightSum; - } - } - } - } - } - if (edgeWeightSum > 0) { - segmentDeflection += nodeDeflection / edgeWeightSum; - ++nodeWeightSum; - } - } - if (nodeWeightSum > 0) { - segment.deflection = deflectionDampening * segmentDeflection / nodeWeightSum; - segment.weight = nodeWeightSum; - } - else { - segment.deflection = 0; - segment.weight = 0; - } -} - -function $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList){ - var currentNode, currentSegment, cycleNode, cycleNodesIter, cycleSegment, indexInLayer, layer, layer$iterator, layerIndex, nextLinearSegmentID, nextNode, nextSegment, nodeIter, nodes, previousNode; - nextLinearSegmentID = segmentList.array.length; - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodes = layer.nodes; - if (nodes.array.length == 0) { - continue; - } - nodeIter = new ArrayList$1(nodes); - indexInLayer = 0; - previousNode = null; - currentNode = castTo($next_7(nodeIter), 10); - currentSegment = null; - while (currentNode) { - currentSegment = castTo($get_11(segmentList, currentNode.id_0), 257); - if (currentSegment.indexInLastLayer >= 0) { - cycleSegment = null; - cycleNodesIter = new AbstractList$ListIteratorImpl(layer.nodes, indexInLayer + 1); - while (cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) { - cycleNode = (checkCriticalElement(cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) , castTo(cycleNodesIter.this$01_0.get_0(cycleNodesIter.last = cycleNodesIter.i++), 10)); - cycleSegment = castTo($get_11(segmentList, cycleNode.id_0), 257); - if (cycleSegment.lastLayer == currentSegment.lastLayer && cycleSegment.indexInLastLayer < currentSegment.indexInLastLayer) { - break; - } - else { - cycleSegment = null; - } - } - if (cycleSegment) { - if (previousNode) { - $set_1(incomingCountList, currentNode.id_0, valueOf_4(castTo($get_11(incomingCountList, currentNode.id_0), 19).value_0 - 1)); - castTo($get_11(outgoingList, previousNode.id_0), 15).remove_1(currentSegment); - } - currentSegment = $split_3(currentSegment, currentNode, nextLinearSegmentID++); - segmentList.array[segmentList.array.length] = currentSegment; - $add_3(outgoingList, new ArrayList); - if (previousNode) { - castTo($get_11(outgoingList, previousNode.id_0), 15).add_2(currentSegment); - $add_3(incomingCountList, valueOf_4(1)); - } - else { - $add_3(incomingCountList, valueOf_4(0)); - } - } - } - nextNode = null; - if (nodeIter.i < nodeIter.this$01.array.length) { - nextNode = castTo($next_7(nodeIter), 10); - nextSegment = castTo($get_11(segmentList, nextNode.id_0), 257); - castTo($get_11(outgoingList, currentNode.id_0), 15).add_2(nextSegment); - $set_1(incomingCountList, nextNode.id_0, valueOf_4(castTo($get_11(incomingCountList, nextNode.id_0), 19).value_0 + 1)); - } - currentSegment.lastLayer = layerIndex; - currentSegment.indexInLastLayer = indexInLayer++; - previousNode = currentNode; - currentNode = nextNode; - } - ++layerIndex; - } -} - -function $createUnbalancedPlacement(this$static, layeredGraph){ - var layer, layerIndex, node, node$iterator, node$iterator0, nodeCount, recentNode, recentNodeType, segment, segment$array, segment$index, segment$max, spacing, uppermostPlace; - nodeCount = initUnidimensionalArray(I_classLit, $intern_48, 25, layeredGraph.layers.array.length, 15, 1); - recentNodeType = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, $intern_36, 267, layeredGraph.layers.array.length, 0, 1); - recentNode = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layeredGraph.layers.array.length, 0, 1); - for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { - segment = segment$array[segment$index]; - uppermostPlace = 0; - for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - layerIndex = $getIndex_0(node.layer); - ++nodeCount[layerIndex]; - spacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - nodeCount[layerIndex] > 0 && !!recentNode[layerIndex] && (spacing = $getVerticalSpacing_0(this$static.spacings, recentNode[layerIndex], node)); - uppermostPlace = $wnd.Math.max(uppermostPlace, node.layer.size_0.y_0 + spacing); - } - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 = uppermostPlace + node.margin.top_0; - layer = node.layer; - layer.size_0.y_0 = uppermostPlace + node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; - recentNodeType[$indexOf_3(layer.owner.layers, layer, 0)] = node.type_0; - recentNode[$indexOf_3(layer.owner.layers, layer, 0)] = node; - } - } -} - -function $fillSegment(this$static, node, segment){ - var edgesIter, nodeType, sourcePort, sourcePort$iterator, targetNode, targetNodeType, targetPort, targetPort$iterator; - nodeType = node.type_0; - if (node.id_0 >= 0) { - return false; - } - else { - node.id_0 = segment.id_0; - $add_3(segment.nodes, node); - } - if (nodeType == ($clinit_LNode$NodeType() , LONG_EDGE) || nodeType == NORTH_SOUTH_PORT) { - for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { - sourcePort = castTo($next_7(sourcePort$iterator), 11); - for (targetPort$iterator = (edgesIter = new ArrayList$1((new LPort$2(sourcePort)).this$01.outgoingEdges) , new LPort$2$1(edgesIter)); $hasNext_3(targetPort$iterator.val$edgesIter2);) { - targetPort = castTo($next_7(targetPort$iterator.val$edgesIter2), 17).target; - targetNode = targetPort.owner; - targetNodeType = targetNode.type_0; - if (node.layer != targetNode.layer) { - if (targetNodeType == LONG_EDGE || targetNodeType == NORTH_SOUTH_PORT) { - if ($fillSegment(this$static, targetNode, segment)) { - return true; - } - } - } - } - } - } - return true; -} - -function $mergeRegions(this$static, layeredGraph){ - var changed, layer, layer$iterator, node1, node1Extent, node2, node2Extent, nodeIter, nodeSpacing, region1, region2, spacing, threshold, weightSum; - changed = false; - nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - threshold = $intern_41 * nodeSpacing; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeIter = new ArrayList$1(layer.nodes); - node1 = castTo($next_7(nodeIter), 10); - region1 = $region(this$static.linearSegments[node1.id_0]); - while (nodeIter.i < nodeIter.this$01.array.length) { - node2 = castTo($next_7(nodeIter), 10); - region2 = $region(this$static.linearSegments[node2.id_0]); - if (region1 != region2) { - spacing = $getVerticalSpacing_0(this$static.spacings, node1, node2); - node1Extent = node1.pos.y_0 + node1.size_0.y_0 + node1.margin.bottom + region1.deflection + spacing; - node2Extent = node2.pos.y_0 - node2.margin.top_0 + region2.deflection; - if (node1Extent > node2Extent + threshold) { - weightSum = region1.weight + region2.weight; - region2.deflection = (region2.weight * region2.deflection + region1.weight * region1.deflection) / weightSum; - region2.weight = weightSum; - region1.refSegment = region2; - changed = true; - } - } - node1 = node2; - region1 = region2; - } - } - return changed; -} - -function $postProcess(this$static){ - var d, edge, edge$iterator, firstNode, foundPlace, index_0, lastNode, minDisplacement, minRoomAbove, minRoomBelow, neighbor, node, node$iterator, node$iterator0, pos, roomAbove, roomBelow, segment, segment$array, segment$index, segment$max, source, source$iterator, spacing, target, target$iterator; - for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { - segment = segment$array[segment$index]; - minRoomAbove = $intern_0; - minRoomBelow = $intern_0; - for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - index_0 = !node.layer?-1:$indexOf_3(node.layer.nodes, node, 0); - if (index_0 > 0) { - neighbor = castTo($get_11(node.layer.nodes, index_0 - 1), 10); - spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); - roomAbove = node.pos.y_0 - node.margin.top_0 - (neighbor.pos.y_0 + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing); - } - else { - roomAbove = node.pos.y_0 - node.margin.top_0; - } - minRoomAbove = $wnd.Math.min(roomAbove, minRoomAbove); - if (index_0 < node.layer.nodes.array.length - 1) { - neighbor = castTo($get_11(node.layer.nodes, index_0 + 1), 10); - spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); - roomBelow = neighbor.pos.y_0 - neighbor.margin.top_0 - (node.pos.y_0 + node.size_0.y_0 + node.margin.bottom + spacing); - } - else { - roomBelow = 2 * node.pos.y_0; - } - minRoomBelow = $wnd.Math.min(roomBelow, minRoomBelow); - } - minDisplacement = $intern_0; - foundPlace = false; - firstNode = castTo($get_11(segment.nodes, 0), 10); - for (target$iterator = new ArrayList$1(firstNode.ports); target$iterator.i < target$iterator.this$01.array.length;) { - target = castTo($next_7(target$iterator), 11); - pos = firstNode.pos.y_0 + target.pos.y_0 + target.anchor.y_0; - for (edge$iterator = new ArrayList$1(target.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - source = edge.source; - d = source.owner.pos.y_0 + source.pos.y_0 + source.anchor.y_0 - pos; - if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { - minDisplacement = d; - foundPlace = true; - } - } - } - lastNode = castTo($get_11(segment.nodes, segment.nodes.array.length - 1), 10); - for (source$iterator = new ArrayList$1(lastNode.ports); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 11); - pos = lastNode.pos.y_0 + source.pos.y_0 + source.anchor.y_0; - for (edge$iterator = new ArrayList$1(source.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - target = edge.target; - d = target.owner.pos.y_0 + target.pos.y_0 + target.anchor.y_0 - pos; - if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { - minDisplacement = d; - foundPlace = true; - } - } - } - if (foundPlace && minDisplacement != 0) { - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 += minDisplacement; - } - } - } -} - -function $process_71(this$static, layeredGraph, monitor){ - $begin(monitor, 'Linear segments node placement', 1); - this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - $sortLinearSegments(this$static, layeredGraph); - $createUnbalancedPlacement(this$static, layeredGraph); - $balancePlacement(this$static, layeredGraph); - $postProcess(this$static); - this$static.linearSegments = null; - this$static.spacings = null; - $done_0(monitor); -} - -function $sortLinearSegments(this$static, layeredGraph){ - var edge, edge$iterator, edge$iterator0, i, i0, i1, i2, incomingCount, incomingCountList, inprio, layer, layer$iterator, layer$iterator0, ls, newRanks, nextLinearSegmentID, nextRank, noIncoming, node, node$iterator, outgoing, outgoingList, outprio, port, port$iterator, prio, rank, segment, segmentList, segments, target; - segmentList = new ArrayList; - for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = -1; - inprio = $intern_42; - outprio = $intern_42; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - inprio = $wnd.Math.max(inprio, prio); - } - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - outprio = $wnd.Math.max(outprio, prio); - } - } - $setProperty_0(node, INPUT_PRIO, valueOf_4(inprio)); - $setProperty_0(node, OUTPUT_PRIO, valueOf_4(outprio)); - } - } - nextLinearSegmentID = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.id_0 < 0) { - segment = new LinearSegmentsNodePlacer$LinearSegment; - segment.id_0 = nextLinearSegmentID++; - $fillSegment(this$static, node, segment); - segmentList.array[segmentList.array.length] = segment; - } - } - } - outgoingList = newArrayListWithCapacity(segmentList.array.length); - incomingCountList = newArrayListWithCapacity(segmentList.array.length); - for (i0 = 0; i0 < segmentList.array.length; i0++) { - $add_3(outgoingList, new ArrayList); - $add_3(incomingCountList, valueOf_4(0)); - } - $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList); - segments = castTo($toArray_2(segmentList, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segmentList.array.length, 0, 1)), 840); - outgoing = castTo($toArray_2(outgoingList, initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, outgoingList.array.length, 0, 1)), 192); - incomingCount = initUnidimensionalArray(I_classLit, $intern_48, 25, incomingCountList.array.length, 15, 1); - for (i1 = 0; i1 < incomingCount.length; i1++) { - incomingCount[i1] = (checkCriticalElementIndex(i1, incomingCountList.array.length) , castTo(incomingCountList.array[i1], 19)).value_0; - } - nextRank = 0; - noIncoming = new ArrayList; - for (i2 = 0; i2 < segments.length; i2++) { - incomingCount[i2] == 0 && $add_3(noIncoming, segments[i2]); - } - newRanks = initUnidimensionalArray(I_classLit, $intern_48, 25, segments.length, 15, 1); - while (noIncoming.array.length != 0) { - segment = castTo($remove_11(noIncoming, 0), 257); - newRanks[segment.id_0] = nextRank++; - while (!outgoing[segment.id_0].isEmpty()) { - target = castTo(outgoing[segment.id_0].remove_2(0), 257); - --incomingCount[target.id_0]; - incomingCount[target.id_0] == 0 && (noIncoming.array[noIncoming.array.length] = target , true); - } - } - this$static.linearSegments = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segments.length, 0, 1); - for (i = 0; i < segments.length; i++) { - ls = segments[i]; - rank = newRanks[i]; - this$static.linearSegments[rank] = ls; - ls.id_0 = rank; - for (node$iterator = new ArrayList$1(ls.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = rank; - } - } - return this$static.linearSegments; -} - -function LinearSegmentsNodePlacer(){ - $clinit_LinearSegmentsNodePlacer(); -} - -defineClass(1406, 1, $intern_113, LinearSegmentsNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_13(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_0:null; -} -; -_.process = function process_68(layeredGraph, monitor){ - $process_71(this, castTo(layeredGraph, 37), monitor); -} -; -var HIERARCHY_PROCESSING_ADDITIONS_0, INPUT_PRIO, OUTPUT_PRIO; -var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer', 1406); -function $compareTo_16(this$static, other){ - return this$static.id_0 - other.id_0; -} - -function $region(this$static){ - var seg; - seg = this$static; - while (seg.refSegment) { - seg = seg.refSegment; - } - return seg; -} - -function $split_3(this$static, node, newId){ - var iterator, movedNode, newSegment, nodeIndex; - nodeIndex = $indexOf_3(this$static.nodes, node, 0); - newSegment = new LinearSegmentsNodePlacer$LinearSegment; - newSegment.id_0 = newId; - iterator = new AbstractList$ListIteratorImpl(this$static.nodes, nodeIndex); - while (iterator.i < iterator.this$01_0.size_1()) { - movedNode = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 10)); - movedNode.id_0 = newId; - $add_3(newSegment.nodes, movedNode); - $remove_8(iterator); - } - return newSegment; -} - -function LinearSegmentsNodePlacer$LinearSegment(){ - this.nodes = new ArrayList; -} - -defineClass(257, 1, {35:1, 257:1}, LinearSegmentsNodePlacer$LinearSegment); -_.compareTo_0 = function compareTo_17(other){ - return $compareTo_16(this, castTo(other, 257)); -} -; -_.equals_0 = function equals_157(object){ - var other; - if (instanceOf(object, 257)) { - other = castTo(object, 257); - return this.id_0 == other.id_0; - } - return false; -} -; -_.hashCode_1 = function hashCode_62(){ - return this.id_0; -} -; -_.toString_0 = function toString_102(){ - return 'ls' + $toString_2(this.nodes); -} -; -_.deflection = 0; -_.id_0 = 0; -_.indexInLastLayer = -1; -_.lastLayer = -1; -_.weight = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer/LinearSegment', 257); -function $clinit_NetworkSimplexPlacer(){ - $clinit_NetworkSimplexPlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_1 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $applyPositions(this$static){ - var flexibleNode, l, l$iterator, lNode, lNode$iterator, label_0, label$iterator, maxY, minY, nNode, nf, nf0, nodeRep, p, p$iterator, placement, sizeDelta; - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { - lNode = castTo($next_7(lNode$iterator), 10); - nodeRep = this$static.nodeReps[lNode.id_0]; - minY = nodeRep.head.layer; - maxY = nodeRep.tail.layer; - lNode.pos.y_0 = minY; - sizeDelta = maxY - minY - lNode.size_0.y_0; - flexibleNode = isFlexibleNode(lNode); - nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); - flexibleNode && (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && (lNode.size_0.y_0 += sizeDelta); - if (flexibleNode && (nf0 == PORT_POSITION || nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { - for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - if (($clinit_PortSide() , SIDES_EAST_WEST).contains(p.side)) { - nNode = castTo($get_10(this$static.portMap, p), 121); - p.pos.y_0 = nNode.layer - minY; - } - } - for (label$iterator = new ArrayList$1(lNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - placement = castTo($getProperty(lNode, NODE_LABELS_PLACEMENT_1), 21); - placement.contains(($clinit_NodeLabelPlacement() , V_BOTTOM_0))?(label_0.pos.y_0 += sizeDelta):placement.contains(V_CENTER_0) && (label_0.pos.y_0 += sizeDelta / 2); - } - (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && $getPortSideView(lNode, ($clinit_PortSide() , SOUTH_2)).forEach_0(new NetworkSimplexPlacer$lambda$20$Type(sizeDelta)); - } - } - } -} - -function $buildInitialAuxiliaryGraph(this$static){ - var l, l$iterator; - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - $transformLayer(this$static, l); - } - $forEach_3($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$2$Type), new NetworkSimplexPlacer$lambda$3$Type), new NetworkSimplexPlacer$lambda$4$Type), new NetworkSimplexPlacer$lambda$5$Type(this$static)); -} - -function $follow(this$static, edge, current, path){ - var incident, incident$iterator, other; - other = $getOther_1(edge, current); - path.array[path.array.length] = edge; - if (this$static.nodeState[other.id_0] == -1 || this$static.nodeState[other.id_0] == 2 || this$static.crossing[edge.id_0]) { - return path; - } - this$static.nodeState[other.id_0] = -1; - for (incident$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(other).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incident$iterator);) { - incident = castTo($next_0(incident$iterator), 17); - if (!(!$isSelfLoop(incident) && !(!$isSelfLoop(incident) && incident.source.owner.layer == incident.target.owner.layer)) || incident == edge) { - continue; - } - return $follow(this$static, incident, other, path); - } - return path; -} - -function $getEdgeWeight(nodeType1, nodeType2){ - return nodeType1 == ($clinit_LNode$NodeType() , NORMAL) && nodeType2 == NORMAL?4:nodeType1 == NORMAL || nodeType2 == NORMAL?8:32; -} - -function $improveTwoPath(this$static, path, probe){ - var a, above, aboveDist, aboveRep, b, below, belowDist, belowRep, c, caseA, caseB, caseC, caseD, centerNode, centerOrigin, d, leftEdge, move, nNode, nodeIndex, rightEdge, spacing; - leftEdge = this$static.edgeReps[(checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).id_0]; - rightEdge = this$static.edgeReps[(checkCriticalElementIndex(1, path.array.length) , castTo(path.array[1], 17)).id_0]; - if (leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) == 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) == 0) { - return false; - } - centerOrigin = leftEdge.right.target.origin_0; - if (!instanceOf(centerOrigin, 10)) { - return false; - } - centerNode = castTo(centerOrigin, 10); - nNode = this$static.nodeReps[centerNode.id_0]; - nodeIndex = !centerNode.layer?-1:$indexOf_3(centerNode.layer.nodes, centerNode, 0); - aboveDist = $intern_59; - if (nodeIndex > 0) { - above = castTo($get_11(centerNode.layer.nodes, nodeIndex - 1), 10); - aboveRep = this$static.nodeReps[above.id_0]; - spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, above, centerNode)); - aboveDist = nNode.head.layer - centerNode.margin.top_0 - (aboveRep.head.layer + above.size_0.y_0 + above.margin.bottom) - spacing; - } - belowDist = $intern_59; - if (nodeIndex < centerNode.layer.nodes.array.length - 1) { - below = castTo($get_11(centerNode.layer.nodes, nodeIndex + 1), 10); - belowRep = this$static.nodeReps[below.id_0]; - spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, below, centerNode)); - belowDist = belowRep.head.layer - below.margin.top_0 - (nNode.head.layer + centerNode.size_0.y_0 + centerNode.margin.bottom) - spacing; - } - if (probe && ($clinit_DoubleMath() , checkNonNegative($intern_117) , $wnd.Math.abs(aboveDist - belowDist) <= $intern_117 || aboveDist == belowDist || isNaN(aboveDist) && isNaN(belowDist))) { - return true; - } - a = length_1(leftEdge.left); - b = -length_1(leftEdge.right); - c = -length_1(rightEdge.left); - d = length_1(rightEdge.right); - caseD = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) > 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) < 0; - caseC = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) < 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) > 0; - caseB = leftEdge.left.target.layer + leftEdge.right.delta < rightEdge.right.target.layer + rightEdge.left.delta; - caseA = leftEdge.left.target.layer + leftEdge.right.delta > rightEdge.right.target.layer + rightEdge.left.delta; - move = 0; - !caseD && !caseC && (caseA?aboveDist + c > 0?(move = c):belowDist - a > 0 && (move = a):caseB && (aboveDist + b > 0?(move = b):belowDist - d > 0 && (move = d))); - nNode.head.layer += move; - nNode.isFlexible && (nNode.tail.layer += move); - return false; -} - -function $lambda$1_4(this$static, singleNode_1, p_1){ - return $put_6(this$static.portMap, p_1, singleNode_1); -} - -function $lambda$10(this$static, inLayerEdge_0){ - var dummyNode, dummyRep, portRep, src_0, srcIsDummy, tgt, thePort; - srcIsDummy = inLayerEdge_0.source.owner.type_0 != ($clinit_LNode$NodeType() , NORMAL); - thePort = srcIsDummy?inLayerEdge_0.target:inLayerEdge_0.source; - dummyNode = $getOther_2(inLayerEdge_0, thePort).owner; - portRep = castTo($get_10(this$static.portMap, thePort), 121); - dummyRep = this$static.nodeReps[dummyNode.id_0].head; - if ($getIndex(thePort.owner) < (!dummyNode.layer?-1:$indexOf_3(dummyNode.layer.nodes, dummyNode, 0))) { - src_0 = portRep; - tgt = dummyRep; - } - else { - src_0 = dummyRep; - tgt = portRep; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 4), src_0), tgt)); -} - -function $lambda$12(this$static, n_0){ - var other, sp, sp$iterator, sp$iterator0; - for (sp$iterator0 = $getPortSideView(n_0, ($clinit_PortSide() , SOUTH_2)).iterator_0(); sp$iterator0.hasNext_0();) { - sp = castTo(sp$iterator0.next_1(), 11); - other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[n_0.id_0].tail), this$static.nodeReps[other.id_0].head)); - } - for (sp$iterator = $getPortSideView(n_0, NORTH_3).iterator_0(); sp$iterator.hasNext_0();) { - sp = castTo(sp$iterator.next_1(), 11); - other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[other.id_0].tail), this$static.nodeReps[n_0.id_0].head)); - } -} - -function $lambda$22(this$static, n_0){ - return this$static.nodeState[n_0.id_0] = getNodeState(n_0); -} - -function $lambda$25(this$static, n_0){ - return this$static.nodeState[n_0.id_0] == 2; -} - -function $lambda$26(this$static, paths_1, junction_1){ - var e, e$iterator, path; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(junction_1).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!(!$isSelfLoop(e) && !(!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer))) { - continue; - } - path = $follow(this$static, e, junction_1, new NetworkSimplexPlacer$Path); - path.array.length > 1 && (paths_1.array[paths_1.array.length] = path , true); - } -} - -function $lambda$29(this$static, left_0, right_1){ - $markCrossingEdges(this$static, left_0, right_1); - return right_1; -} - -function $markCrossingEdges(this$static, left, right){ - var edge, edge$iterator, last, node, node$iterator, node$iterator0, openEdges, openEdgesIt, port, port$iterator; - openEdges = new ArrayList; - for (node$iterator0 = new ArrayList$1(left.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.target.owner.layer != right) { - continue; - } - openEdges.array[openEdges.array.length] = edge; - } - } - } - for (node$iterator = reverse_0(right.nodes).iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , WEST_2)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.source.owner.layer != left) { - continue; - } - openEdgesIt = new AbstractList$ListIteratorImpl(openEdges, openEdges.array.length); - last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); - while (last != edge && openEdgesIt.i > 0) { - this$static.crossing[last.id_0] = true; - this$static.crossing[edge.id_0] = true; - last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); - } - openEdgesIt.i > 0 && $remove_8(openEdgesIt); - } - } - } -} - -function $postProcessTwoPaths(this$static){ - var path, q, s, tryAgain; - q = new LinkedList; - $addAll(q, this$static.twoPaths); - s = new Stack; - while (q.size_0 != 0) { - path = castTo(q.size_0 == 0?null:(checkCriticalElement(q.size_0 != 0) , $removeNode_0(q, q.header.next_0)), 508); - tryAgain = $improveTwoPath(this$static, path, true); - tryAgain && $add_3(s.arrayList, path); - } - while (s.arrayList.array.length != 0) { - path = castTo($pop(s), 508); - $improveTwoPath(this$static, path, false); - } -} - -function $preferStraightEdges(this$static){ - var cur, curRep, identifiedPaths, last, oldLeftWeight, oldRightWeight, path, path$iterator, pathIt, weight, paths; - this$static.nodeState = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.nodeCount, 15, 1); - this$static.twoPaths = new ArrayList; - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$21$Type), new NetworkSimplexPlacer$lambda$22$Type(this$static)); - this$static.crossing = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.edgeCount, 16, 1); - $reduce_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$29$Type(this$static)); - identifiedPaths = (paths = new ArrayList , $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$24$Type), new NetworkSimplexPlacer$lambda$25$Type(this$static)), new NetworkSimplexPlacer$lambda$26$Type(this$static, paths)) , paths); - for (path$iterator = new ArrayList$1(identifiedPaths); path$iterator.i < path$iterator.this$01.array.length;) { - path = castTo($next_7(path$iterator), 508); - if (path.array.length <= 1) { - continue; - } - if (path.array.length == 2) { - $orderTwoPath(path); - isFlexibleNode((checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).target.owner) || $add_3(this$static.twoPaths, path); - continue; - } - if ($containsLongEdgeDummy(path) || $containsFlexibleNode(path, new NetworkSimplexPlacer$lambda$23$Type)) { - continue; - } - pathIt = new ArrayList$1(path); - last = null; - while (pathIt.i < pathIt.this$01.array.length) { - cur = castTo($next_7(pathIt), 17); - curRep = this$static.edgeReps[cur.id_0]; - !last || pathIt.i >= pathIt.this$01.array.length?(weight = $getEdgeWeight(($clinit_LNode$NodeType() , NORMAL), LONG_EDGE)):(weight = $getEdgeWeight(($clinit_LNode$NodeType() , LONG_EDGE), LONG_EDGE)); - weight *= 2; - oldLeftWeight = curRep.left.weight; - curRep.left.weight = $wnd.Math.max(oldLeftWeight, oldLeftWeight + (weight - oldLeftWeight)); - oldRightWeight = curRep.right.weight; - curRep.right.weight = $wnd.Math.max(oldRightWeight, oldRightWeight + (weight - oldRightWeight)); - last = cur; - } - } -} - -function $prepare(this$static){ - var anchorMustBeInteger, e, e$iterator, edgeIdx, l, l$iterator, lNode, lNode$iterator, nodeIdx, offset, p, p$iterator, y_0, y0; - this$static.nGraph = new NGraph; - nodeIdx = 0; - edgeIdx = 0; - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { - lNode = castTo($next_7(lNode$iterator), 10); - lNode.id_0 = nodeIdx++; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - e.id_0 = edgeIdx++; - } - anchorMustBeInteger = isFlexibleNode(lNode); - for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - if (anchorMustBeInteger) { - y0 = p.anchor.y_0; - if (y0 != $wnd.Math.floor(y0)) { - offset = y0 - toDouble_0(fromDouble_0($wnd.Math.round(y0))); - p.anchor.y_0 -= offset; - } - } - y_0 = p.pos.y_0 + p.anchor.y_0; - if (y_0 != $wnd.Math.floor(y_0)) { - offset = y_0 - toDouble_0(fromDouble_0($wnd.Math.round(y_0))); - p.pos.y_0 -= offset; - } - } - } - } - this$static.nodeCount = nodeIdx; - this$static.edgeCount = edgeIdx; - this$static.nodeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit, $intern_2, 401, nodeIdx, 0, 1); - this$static.edgeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit, $intern_2, 649, edgeIdx, 0, 1); - this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); -} - -function $process_72(this$static, layeredGraph, progressMonitor){ - var edge, edge$iterator, iterLimit, pm, minLayer, maxLayer, usedLayers, globalSource, globalSink; - $begin(progressMonitor, 'Network simplex node placement', 1); - this$static.lGraph = layeredGraph; - this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - $prepare(this$static); - $buildInitialAuxiliaryGraph(this$static); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$11$Type), new NetworkSimplexPlacer$lambda$12$Type(this$static)); - $forEach_3($filter($flatMap($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$6$Type), new NetworkSimplexPlacer$lambda$7$Type), new NetworkSimplexPlacer$lambda$8$Type), new NetworkSimplexPlacer$lambda$9$Type), new NetworkSimplexPlacer$lambda$10$Type(this$static)); - if ($booleanValue(castToBoolean($getProperty(this$static.lGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))))) { - pm = $subTask(progressMonitor, 1); - $begin(pm, 'Straight Edges Pre-Processing', 1); - $preferStraightEdges(this$static); - $done_0(pm); - } - $makeConnected(this$static.nGraph); - iterLimit = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0 * this$static.nGraph.nodes.array.length; - $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(progressMonitor, 1)); - if (this$static.flexibleWhereSpacePermitsEdges.map_0.size_1() != 0) { - pm = $subTask(progressMonitor, 1); - $begin(pm, 'Flexible Where Space Processing', 1); - minLayer = castTo($get_17($min_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$13$Type), new NetworkSimplexPlacer$0methodref$compare$Type)), 19).value_0; - maxLayer = castTo($get_17($max_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$15$Type), new NetworkSimplexPlacer$1methodref$compare$Type)), 19).value_0; - usedLayers = maxLayer - minLayer; - globalSource = $create_2(new NNode$NNodeBuilder, this$static.nGraph); - globalSink = $create_2(new NNode$NNodeBuilder, this$static.nGraph); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 20000), usedLayers), globalSource), globalSink)); - $forEach_3($filter($filter(stream_4(this$static.nodeReps), new NetworkSimplexPlacer$lambda$17$Type), new NetworkSimplexPlacer$lambda$18$Type), new NetworkSimplexPlacer$lambda$19$Type(minLayer, globalSource, usedLayers, globalSink)); - for (edge$iterator = this$static.flexibleWhereSpacePermitsEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 213); - edge.weight = 1; - } - $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(pm, 1)); - $done_0(pm); - } - if ($booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)))) { - pm = $subTask(progressMonitor, 1); - $begin(pm, 'Straight Edges Post-Processing', 1); - $postProcessTwoPaths(this$static); - $done_0(pm); - } - $applyPositions(this$static); - this$static.lGraph = null; - this$static.nGraph = null; - this$static.nodeReps = null; - this$static.edgeReps = null; - $reset(this$static.portMap); - this$static.nodeState = null; - this$static.crossing = null; - this$static.twoPaths = null; - this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); - $done_0(progressMonitor); -} - -function $transformEdge_0(this$static, lEdge){ - var dummy, edgeRep, left, right, srcDelta, srcOffset, srcPort, srcRep, tgtDelta, tgtOffset, tgtPort, tgtRep, weight, priority, edgeTypeWeight; - dummy = $create_2(new NNode$NNodeBuilder, this$static.nGraph); - srcRep = this$static.nodeReps[lEdge.source.owner.id_0]; - tgtRep = this$static.nodeReps[lEdge.target.owner.id_0]; - srcPort = lEdge.source; - tgtPort = lEdge.target; - srcOffset = srcPort.anchor.y_0; - tgtOffset = tgtPort.anchor.y_0; - srcRep.isFlexible || (srcOffset += srcPort.pos.y_0); - tgtRep.isFlexible || (tgtOffset += tgtPort.pos.y_0); - tgtDelta = round_int($wnd.Math.max(0, srcOffset - tgtOffset)); - srcDelta = round_int($wnd.Math.max(0, tgtOffset - srcOffset)); - weight = (priority = $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0) , edgeTypeWeight = $getEdgeWeight(lEdge.source.owner.type_0, lEdge.target.owner.type_0) , priority * edgeTypeWeight); - left = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), srcDelta), dummy), castTo($get_10(this$static.portMap, lEdge.source), 121))); - right = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), tgtDelta), dummy), castTo($get_10(this$static.portMap, lEdge.target), 121))); - edgeRep = new NetworkSimplexPlacer$EdgeRep(left, right); - this$static.edgeReps[lEdge.id_0] = edgeRep; -} - -function $transformLayer(this$static, layer){ - var lNode, lNode$iterator, lastRep, nodeRep, spacing, topLeft, bottomLeft, corners, minHeight, nf0, nf, sizeWeight, nodeSizeEdge, singleNode; - lastRep = null; - for (lNode$iterator = new ArrayList$1(layer.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { - lNode = castTo($next_7(lNode$iterator), 10); - isFlexibleNode(lNode)?(nodeRep = (topLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , bottomLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , corners = new NetworkSimplexPlacer$NodeRep(lNode, true, topLeft, bottomLeft) , minHeight = lNode.size_0.y_0 , nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf) , sizeWeight = 10000 , nf0 == NODE_SIZE && (sizeWeight = 1) , nodeSizeEdge = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, sizeWeight), round_int($wnd.Math.ceil(minHeight))), topLeft), bottomLeft)) , nf0 == NODE_SIZE_WHERE_SPACE_PERMITS && $add_6(this$static.flexibleWhereSpacePermitsEdges, nodeSizeEdge) , $transformPorts(this$static, reverse_0($getPortSideView(lNode, ($clinit_PortSide() , WEST_2))), corners) , $transformPorts(this$static, $getPortSideView(lNode, EAST_2), corners) , corners)):(nodeRep = (singleNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lNode.ports, 16)), new NetworkSimplexPlacer$lambda$0$Type), new NetworkSimplexPlacer$lambda$1$Type(this$static, singleNode)) , new NetworkSimplexPlacer$NodeRep(lNode, false, singleNode, singleNode))); - this$static.nodeReps[lNode.id_0] = nodeRep; - if (lastRep) { - spacing = lastRep.origin_0.margin.bottom + $getVerticalSpacing_0(this$static.spacings, lastRep.origin_0, lNode) + lNode.margin.top_0; - lastRep.isFlexible || (spacing += lastRep.origin_0.size_0.y_0); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int($wnd.Math.ceil(spacing))), 0), lastRep.tail), nodeRep.head)); - } - lastRep = nodeRep; - } -} - -function $transformPorts(this$static, ports, corners){ - var lastNNode, lastPort, nNode, port, port$iterator, portSpacing, portSurrounding, spacing; - if (isEmpty_13(ports)) { - return; - } - portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(corners.origin_0, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); - portSurrounding = castTo(getIndividualOrDefault(corners.origin_0, SPACING_PORTS_SURROUNDING), 142); - !portSurrounding && (portSurrounding = new ElkMargin); - lastNNode = corners.head; - lastPort = null; - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - spacing = 0; - if (!lastPort) { - spacing = portSurrounding.top_0; - } - else { - spacing = portSpacing; - spacing += lastPort.size_0.y_0; - } - nNode = $create_2($origin_0(new NNode$NNodeBuilder, port), this$static.nGraph); - $put_6(this$static.portMap, port, nNode); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(spacing))), lastNNode), nNode)); - lastPort = port; - lastNNode = nNode; - } - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(portSurrounding.bottom + lastPort.size_0.y_0))), lastNNode), corners.tail)); -} - -function NetworkSimplexPlacer(){ - $clinit_NetworkSimplexPlacer(); - this.portMap = new HashMap; - this.flexibleWhereSpacePermitsEdges = new HashSet; -} - -function getNodeState(node){ - var inco, ouco, p, p$iterator; - inco = 0; - ouco = 0; - for (p$iterator = new ArrayList$1(node.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - inco = toInt_0(add_20(inco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.incomingEdges, 16)), new NetworkSimplexPlacer$lambda$27$Type)))); - ouco = toInt_0(add_20(ouco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.outgoingEdges, 16)), new NetworkSimplexPlacer$lambda$28$Type)))); - if (inco > 1 || ouco > 1) { - return 2; - } - } - if (inco + ouco == 1) { - return 2; - } - return 0; -} - -function isFlexibleNode(lNode){ - var additionalPortSpacing, eastPorts, nf, nf0, pc, portSpacing, requiredEastHeight, requiredWestHeight, westPorts; - if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - return false; - } - if (lNode.ports.array.length <= 1) { - return false; - } - pc = castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - if (pc == ($clinit_PortConstraints() , FIXED_POS)) { - return false; - } - nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); - if (nf0 == NONE_8) { - return false; - } - if (!(nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { - portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, SPACING_PORT_PORT))); - additionalPortSpacing = castTo($getProperty(lNode, SPACING_PORTS_SURROUNDING), 142); - !additionalPortSpacing && (additionalPortSpacing = new ElkMargin_1(portSpacing, portSpacing, portSpacing, portSpacing)); - westPorts = $getPortSideView(lNode, ($clinit_PortSide() , WEST_2)); - requiredWestHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (westPorts.size_1() - 1) * portSpacing; - if (requiredWestHeight > lNode.size_0.y_0) { - return false; - } - eastPorts = $getPortSideView(lNode, EAST_2); - requiredEastHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (eastPorts.size_1() - 1) * portSpacing; - if (requiredEastHeight > lNode.size_0.y_0) { - return false; - } - } - return true; -} - -function isHandledEdge(edge){ - $clinit_NetworkSimplexPlacer(); - return !$isSelfLoop(edge) && !(!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer); -} - -function lambda$0_28(p_0){ - $clinit_NetworkSimplexPlacer(); - return ($clinit_PortSide() , SIDES_EAST_WEST).contains(p_0.side); -} - -function lambda$19(minLayer_0, globalSource_1, usedLayers_2, globalSink_3, nr_4){ - $clinit_NetworkSimplexPlacer(); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), nr_4.tail.layer - minLayer_0), globalSource_1), nr_4.tail)); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), usedLayers_2 - nr_4.head.layer), nr_4.head), globalSink_3)); -} - -function lambda$20(sizeDelta_0, p_1){ - $clinit_NetworkSimplexPlacer(); - return p_1.pos.y_0 += sizeDelta_0; -} - -function length_1(edge){ - return $wnd.Math.abs(edge.source.layer - edge.target.layer) - edge.delta; -} - -defineClass(1408, 1, $intern_113, NetworkSimplexPlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_14(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_1:null; -} -; -_.process = function process_69(layeredGraph, progressMonitor){ - $process_72(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.edgeCount = 0; -_.nodeCount = 0; -var HIERARCHY_PROCESSING_ADDITIONS_1; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer', 1408); -function NetworkSimplexPlacer$0methodref$compare$Type(){ -} - -defineClass(1427, 1, $intern_88, NetworkSimplexPlacer$0methodref$compare$Type); -_.compare_1 = function compare_73(arg0, arg1){ - return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); -} -; -_.equals_0 = function equals_158(other){ - return this === other; -} -; -_.reversed = function reversed_65(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$0methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/0methodref$compare$Type', 1427); -function NetworkSimplexPlacer$1methodref$compare$Type(){ -} - -defineClass(1429, 1, $intern_88, NetworkSimplexPlacer$1methodref$compare$Type); -_.compare_1 = function compare_74(arg0, arg1){ - return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); -} -; -_.equals_0 = function equals_159(other){ - return this === other; -} -; -_.reversed = function reversed_66(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$1methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/1methodref$compare$Type', 1429); -function NetworkSimplexPlacer$EdgeRep(left, right){ - this.left = left; - this.right = right; -} - -defineClass(649, 1, {649:1}, NetworkSimplexPlacer$EdgeRep); -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/EdgeRep', 649); -function NetworkSimplexPlacer$NodeRep(origin_0, isFlexible, top_0, bottom){ - this.origin_0 = origin_0; - this.isFlexible = isFlexible; - this.head = top_0; - this.tail = bottom; -} - -defineClass(401, 1, {401:1}, NetworkSimplexPlacer$NodeRep); -_.isFlexible = false; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/NodeRep', 401); -function $containsFlexibleNode(this$static, p){ - var nf; - if (this$static.array.length == 0) { - return false; - } - nf = getNodeFlexibility((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner); - $clinit_NetworkSimplexPlacer(); - if (nf == ($clinit_NodeFlexibility() , NODE_SIZE_WHERE_SPACE_PERMITS) || nf == NODE_SIZE) { - return true; - } - return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$2$Type), new NetworkSimplexPlacer$Path$lambda$3$Type(p)); -} - -function $containsLongEdgeDummy(this$static){ - if (this$static.array.length == 0) { - return false; - } - if ((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - return true; - } - return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$0$Type), new NetworkSimplexPlacer$Path$lambda$1$Type); -} - -function $orderTwoPath(this$static){ - var first, second; - if (this$static.array.length != 2) { - throw toJs(new IllegalStateException_0('Order only allowed for two paths.')); - } - first = (checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)); - second = (checkCriticalElementIndex(1, this$static.array.length) , castTo(this$static.array[1], 17)); - if (first.target.owner != second.source.owner) { - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.array[this$static.array.length] = second; - this$static.array[this$static.array.length] = first; - } -} - -function NetworkSimplexPlacer$Path(){ - ArrayList.call(this); -} - -defineClass(508, 12, {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1, 508:1}, NetworkSimplexPlacer$Path); -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path', 508); -function NetworkSimplexPlacer$Path$lambda$0$Type(){ -} - -defineClass(1409, 1, {}, NetworkSimplexPlacer$Path$lambda$0$Type); -_.apply_0 = function apply_140(arg0){ - return castTo(arg0, 17).target.owner.type_0; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$0$Type', 1409); -function NetworkSimplexPlacer$Path$lambda$1$Type(){ -} - -defineClass(1410, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$1$Type); -_.test_0 = function test_90(arg0){ - return castTo(arg0, 267) == ($clinit_LNode$NodeType() , LONG_EDGE); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$1$Type', 1410); -function NetworkSimplexPlacer$Path$lambda$2$Type(){ -} - -defineClass(1411, 1, {}, NetworkSimplexPlacer$Path$lambda$2$Type); -_.apply_0 = function apply_141(arg0){ - return castTo(arg0, 17).target.owner; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$2$Type', 1411); -function NetworkSimplexPlacer$Path$lambda$3$Type(p_0){ - this.p_0 = p_0; -} - -defineClass(1412, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$3$Type); -_.test_0 = function test_91(arg0){ - return $test_0(getNodeFlexibility(castTo(arg0, 10))); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$3$Type', 1412); -function NetworkSimplexPlacer$lambda$0$Type(){ -} - -defineClass(1413, 1, $intern_39, NetworkSimplexPlacer$lambda$0$Type); -_.test_0 = function test_92(arg0){ - return lambda$0_28(castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$0$Type', 1413); -function NetworkSimplexPlacer$lambda$1$Type($$outer_0, singleNode_1){ - this.$$outer_0 = $$outer_0; - this.singleNode_1 = singleNode_1; -} - -defineClass(1414, 1, $intern_19, NetworkSimplexPlacer$lambda$1$Type); -_.accept = function accept_121(arg0){ - $lambda$1_4(this.$$outer_0, this.singleNode_1, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$1$Type', 1414); -function NetworkSimplexPlacer$lambda$10$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1423, 1, $intern_19, NetworkSimplexPlacer$lambda$10$Type); -_.accept = function accept_122(arg0){ - $lambda$10(this.$$outer_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$10$Type', 1423); -function NetworkSimplexPlacer$lambda$11$Type(){ -} - -defineClass(1424, 1, {}, NetworkSimplexPlacer$lambda$11$Type); -_.apply_0 = function apply_142(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$11$Type', 1424); -function NetworkSimplexPlacer$lambda$12$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1425, 1, $intern_19, NetworkSimplexPlacer$lambda$12$Type); -_.accept = function accept_123(arg0){ - $lambda$12(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$12$Type', 1425); -function NetworkSimplexPlacer$lambda$13$Type(){ -} - -defineClass(1426, 1, {}, NetworkSimplexPlacer$lambda$13$Type); -_.apply_0 = function apply_143(arg0){ - return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$13$Type', 1426); -function NetworkSimplexPlacer$lambda$15$Type(){ -} - -defineClass(1428, 1, {}, NetworkSimplexPlacer$lambda$15$Type); -_.apply_0 = function apply_144(arg0){ - return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$15$Type', 1428); -function NetworkSimplexPlacer$lambda$17$Type(){ -} - -defineClass(1430, 1, $intern_39, NetworkSimplexPlacer$lambda$17$Type); -_.test_0 = function test_93(arg0){ - return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$17$Type', 1430); -function NetworkSimplexPlacer$lambda$18$Type(){ -} - -defineClass(1431, 1, $intern_39, NetworkSimplexPlacer$lambda$18$Type); -_.test_0 = function test_94(arg0){ - return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.ports.array.length > 1; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$18$Type', 1431); -function NetworkSimplexPlacer$lambda$19$Type(minLayer_0, globalSource_1, usedLayers_2, globalSink_3){ - this.minLayer_0 = minLayer_0; - this.globalSource_1 = globalSource_1; - this.usedLayers_2 = usedLayers_2; - this.globalSink_3 = globalSink_3; -} - -defineClass(1432, 1, $intern_19, NetworkSimplexPlacer$lambda$19$Type); -_.accept = function accept_124(arg0){ - lambda$19(this.minLayer_0, this.globalSource_1, this.usedLayers_2, this.globalSink_3, castTo(arg0, 401)); -} -; -_.minLayer_0 = 0; -_.usedLayers_2 = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$19$Type', 1432); -function NetworkSimplexPlacer$lambda$2$Type(){ -} - -defineClass(1415, 1, {}, NetworkSimplexPlacer$lambda$2$Type); -_.apply_0 = function apply_145(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$2$Type', 1415); -function NetworkSimplexPlacer$lambda$20$Type(sizeDelta_0){ - this.sizeDelta_0 = sizeDelta_0; -} - -defineClass(1433, 1, $intern_19, NetworkSimplexPlacer$lambda$20$Type); -_.accept = function accept_125(arg0){ - lambda$20(this.sizeDelta_0, castTo(arg0, 11)); -} -; -_.sizeDelta_0 = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$20$Type', 1433); -function NetworkSimplexPlacer$lambda$21$Type(){ -} - -defineClass(1434, 1, {}, NetworkSimplexPlacer$lambda$21$Type); -_.apply_0 = function apply_146(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$21$Type', 1434); -function NetworkSimplexPlacer$lambda$22$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1435, 1, $intern_19, NetworkSimplexPlacer$lambda$22$Type); -_.accept = function accept_126(arg0){ - $lambda$22(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$22$Type', 1435); -function $test_0(arg0){ - return $clinit_NetworkSimplexPlacer() , $isFlexibleSizeWhereSpacePermits(castTo(arg0, 197)); -} - -function NetworkSimplexPlacer$lambda$23$Type(){ -} - -defineClass(1436, 1, $intern_39, NetworkSimplexPlacer$lambda$23$Type); -_.test_0 = function test_95(arg0){ - return $test_0(arg0); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$23$Type', 1436); -function NetworkSimplexPlacer$lambda$24$Type(){ -} - -defineClass(1437, 1, {}, NetworkSimplexPlacer$lambda$24$Type); -_.apply_0 = function apply_147(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$24$Type', 1437); -function NetworkSimplexPlacer$lambda$25$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1438, 1, $intern_39, NetworkSimplexPlacer$lambda$25$Type); -_.test_0 = function test_96(arg0){ - return $lambda$25(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$25$Type', 1438); -function NetworkSimplexPlacer$lambda$26$Type($$outer_0, paths_1){ - this.$$outer_0 = $$outer_0; - this.paths_1 = paths_1; -} - -defineClass(1439, 1, $intern_19, NetworkSimplexPlacer$lambda$26$Type); -_.accept = function accept_127(arg0){ - $lambda$26(this.$$outer_0, this.paths_1, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$26$Type', 1439); -function NetworkSimplexPlacer$lambda$27$Type(){ -} - -defineClass(1440, 1, $intern_39, NetworkSimplexPlacer$lambda$27$Type); -_.test_0 = function test_97(arg0){ - return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$27$Type', 1440); -function NetworkSimplexPlacer$lambda$28$Type(){ -} - -defineClass(1441, 1, $intern_39, NetworkSimplexPlacer$lambda$28$Type); -_.test_0 = function test_98(arg0){ - return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$28$Type', 1441); -function NetworkSimplexPlacer$lambda$29$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1442, 1, {}, NetworkSimplexPlacer$lambda$29$Type); -_.apply_3 = function apply_148(arg0, arg1){ - return $lambda$29(this.$$outer_0, castTo(arg0, 29), castTo(arg1, 29)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$29$Type', 1442); -function NetworkSimplexPlacer$lambda$3$Type(){ -} - -defineClass(1416, 1, {}, NetworkSimplexPlacer$lambda$3$Type); -_.apply_0 = function apply_149(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$3$Type', 1416); -function NetworkSimplexPlacer$lambda$4$Type(){ -} - -defineClass(1417, 1, $intern_39, NetworkSimplexPlacer$lambda$4$Type); -_.test_0 = function test_99(arg0){ - return $clinit_NetworkSimplexPlacer() , isHandledEdge(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$4$Type', 1417); -function NetworkSimplexPlacer$lambda$5$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1418, 1, $intern_19, NetworkSimplexPlacer$lambda$5$Type); -_.accept = function accept_128(arg0){ - $transformEdge_0(this.$$outer_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$5$Type', 1418); -function NetworkSimplexPlacer$lambda$6$Type(){ -} - -defineClass(1419, 1, {}, NetworkSimplexPlacer$lambda$6$Type); -_.apply_0 = function apply_150(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$6$Type', 1419); -function NetworkSimplexPlacer$lambda$7$Type(){ -} - -defineClass(1420, 1, $intern_39, NetworkSimplexPlacer$lambda$7$Type); -_.test_0 = function test_100(arg0){ - return $clinit_NetworkSimplexPlacer() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$7$Type', 1420); -function NetworkSimplexPlacer$lambda$8$Type(){ -} - -defineClass(1421, 1, {}, NetworkSimplexPlacer$lambda$8$Type); -_.apply_0 = function apply_151(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$8$Type', 1421); -function NetworkSimplexPlacer$lambda$9$Type(){ -} - -defineClass(1422, 1, $intern_39, NetworkSimplexPlacer$lambda$9$Type); -_.test_0 = function test_101(arg0){ - return $clinit_NetworkSimplexPlacer() , $isInLayerEdge(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$9$Type', 1422); -function $clinit_SimpleNodePlacer(){ - $clinit_SimpleNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_2 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $process_73(layeredGraph, monitor){ - var lastNode, layer, layer$iterator, layer$iterator0, layerSize, maxHeight, node, node$iterator, pos, spacings; - $begin(monitor, 'Simple node placement', 1); - spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - maxHeight = 0; - for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - layerSize = layer.size_0; - layerSize.y_0 = 0; - lastNode = null; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - !!lastNode && (layerSize.y_0 += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); - layerSize.y_0 += node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; - lastNode = node; - } - maxHeight = $wnd.Math.max(maxHeight, layerSize.y_0); - } - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerSize = layer.size_0; - pos = (maxHeight - layerSize.y_0) / 2; - lastNode = null; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - !!lastNode && (pos += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); - pos += node.margin.top_0; - node.pos.y_0 = pos; - pos += node.size_0.y_0 + node.margin.bottom; - lastNode = node; - } - } - $done_0(monitor); -} - -function SimpleNodePlacer(){ - $clinit_SimpleNodePlacer(); -} - -defineClass(1404, 1, $intern_113, SimpleNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_15(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_2:null; -} -; -_.process = function process_70(layeredGraph, monitor){ - $process_73(castTo(layeredGraph, 37), monitor); -} -; -var HIERARCHY_PROCESSING_ADDITIONS_2; -var Lorg_eclipse_elk_alg_layered_p4nodes_SimpleNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'SimpleNodePlacer', 1404); -function $calculateDelta(this$static, src_0, tgt){ - var srcPos, tgtPos; - srcPos = $doubleValue(this$static.y_0[src_0.owner.id_0]) + $doubleValue(this$static.innerShift[src_0.owner.id_0]) + src_0.pos.y_0 + src_0.anchor.y_0; - tgtPos = $doubleValue(this$static.y_0[tgt.owner.id_0]) + $doubleValue(this$static.innerShift[tgt.owner.id_0]) + tgt.pos.y_0 + tgt.anchor.y_0; - return tgtPos - srcPos; -} - -function $checkSpaceAbove(this$static, blockRoot, delta, ni){ - var availableSpace, current, maxYNeighbor, minYCurrent, neighbor, rootNode, rootNode0, rootNode1; - availableSpace = delta; - rootNode0 = blockRoot; - current = rootNode0; - do { - current = this$static.align_0[current.id_0]; - minYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) - current.margin.top_0); - neighbor = $getUpperNeighbor(current, ni); - if (neighbor) { - maxYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom); - availableSpace = $wnd.Math.min(availableSpace, minYCurrent - (maxYNeighbor + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); - } - } - while (rootNode0 != current); - return availableSpace; -} - -function $checkSpaceBelow(this$static, blockRoot, delta, ni){ - var availableSpace, current, maxYCurrent, minYNeighbor, neighbor, rootNode, rootNode0, rootNode1; - availableSpace = delta; - rootNode0 = blockRoot; - current = rootNode0; - do { - current = this$static.align_0[current.id_0]; - maxYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) + current.size_0.y_0 + current.margin.bottom); - neighbor = $getLowerNeighbor(current, ni); - if (neighbor) { - minYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) - neighbor.margin.top_0); - availableSpace = $wnd.Math.min(availableSpace, minYNeighbor - (maxYCurrent + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); - } - } - while (rootNode0 != current); - return availableSpace; -} - -function $getLowerNeighbor(n, ni){ - var l, layerIndex; - l = n.layer; - layerIndex = ni.nodeIndex[n.id_0]; - if (layerIndex < l.nodes.array.length - 1) { - return castTo($get_11(l.nodes, layerIndex + 1), 10); - } - return null; -} - -function $getUpperNeighbor(n, ni){ - var l, layerIndex; - l = n.layer; - layerIndex = ni.nodeIndex[n.id_0]; - if (layerIndex > 0) { - return castTo($get_11(l.nodes, layerIndex - 1), 10); - } - return null; -} - -function $layoutSize(this$static){ - var layer, layer$iterator, max_0, min_0, n, n$iterator, yMax, yMin; - min_0 = $intern_59; - max_0 = $intern_60; - for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - yMin = $doubleValue(this$static.y_0[n.id_0]); - yMax = yMin + $doubleValue(this$static.blockSize[this$static.root[n.id_0].id_0]); - min_0 = $wnd.Math.min(min_0, yMin); - max_0 = $wnd.Math.max(max_0, yMax); - } - } - return max_0 - min_0; -} - -function $shiftBlock(this$static, rootNode, delta){ - var current, newPos; - current = rootNode; - do { - newPos = $doubleValue(this$static.y_0[current.id_0]) + delta; - this$static.y_0[current.id_0] = newPos; - current = this$static.align_0[current.id_0]; - } - while (current != rootNode); -} - -function BKAlignedLayout(layeredGraph, nodeCount, vdir, hdir){ - this.layeredGraph = layeredGraph; - this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - this.root = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); - this.blockSize = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.align_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); - this.innerShift = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.sink = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); - this.shift_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.y_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.su = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); - fill_2(this.su, ($clinit_Boolean() , false)); - this.od = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); - fill_2(this.od, true); - this.vdir = vdir; - this.hdir = hdir; -} - -defineClass(180, 1, {180:1}, BKAlignedLayout); -_.toString_0 = function toString_103(){ - var result; - result = ''; - this.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?(result += 'RIGHT'):this.hdir == LEFT_3 && (result += 'LEFT'); - this.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(result += 'DOWN'):this.vdir == UP_0?(result += 'UP'):(result += 'BALANCED'); - return result; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout', 180); -function $clinit_BKAlignedLayout$HDirection(){ - $clinit_BKAlignedLayout$HDirection = emptyMethod; - RIGHT_3 = new BKAlignedLayout$HDirection('RIGHT', 0); - LEFT_3 = new BKAlignedLayout$HDirection('LEFT', 1); -} - -function BKAlignedLayout$HDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_69(name_0){ - $clinit_BKAlignedLayout$HDirection(); - return valueOf(($clinit_BKAlignedLayout$HDirection$Map() , $MAP_57), name_0); -} - -function values_75(){ - $clinit_BKAlignedLayout$HDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]); -} - -defineClass(516, 22, {3:1, 35:1, 22:1, 516:1}, BKAlignedLayout$HDirection); -var LEFT_3, RIGHT_3; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/HDirection', 516, Ljava_lang_Enum_2_classLit, values_75, valueOf_69); -function $clinit_BKAlignedLayout$HDirection$Map(){ - $clinit_BKAlignedLayout$HDirection$Map = emptyMethod; - $MAP_57 = createValueOfMap(($clinit_BKAlignedLayout$HDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]))); -} - -var $MAP_57; -function $clinit_BKAlignedLayout$VDirection(){ - $clinit_BKAlignedLayout$VDirection = emptyMethod; - DOWN_0 = new BKAlignedLayout$VDirection('DOWN', 0); - UP_0 = new BKAlignedLayout$VDirection('UP', 1); -} - -function BKAlignedLayout$VDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_70(name_0){ - $clinit_BKAlignedLayout$VDirection(); - return valueOf(($clinit_BKAlignedLayout$VDirection$Map() , $MAP_58), name_0); -} - -function values_76(){ - $clinit_BKAlignedLayout$VDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]); -} - -defineClass(515, 22, {3:1, 35:1, 22:1, 515:1}, BKAlignedLayout$VDirection); -var DOWN_0, UP_0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/VDirection', 515, Ljava_lang_Enum_2_classLit, values_76, valueOf_70); -function $clinit_BKAlignedLayout$VDirection$Map(){ - $clinit_BKAlignedLayout$VDirection$Map = emptyMethod; - $MAP_58 = createValueOfMap(($clinit_BKAlignedLayout$VDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]))); -} - -var $MAP_58; -function $insideBlockShift(bal){ - var blocks, current, edge, entry, next, nextInnerShift, outerIter, portPosDiff, root, root$iterator, spaceAbove, spaceBelow; - blocks = getBlocks(bal); - for (root$iterator = (outerIter = (new AbstractMap$1(blocks)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); root$iterator.val$outerIter2.hasNext_0();) { - root = (entry = castTo(root$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getKey(), 10)); - spaceAbove = 0; - spaceBelow = 0; - spaceAbove = root.margin.top_0; - spaceBelow = root.size_0.y_0 + root.margin.bottom; - bal.innerShift[root.id_0] = 0; - current = root; - while ((next = bal.align_0[current.id_0]) != root) { - edge = getEdge(current, next); - portPosDiff = 0; - bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?(portPosDiff = edge.target.pos.y_0 + edge.target.anchor.y_0 - edge.source.pos.y_0 - edge.source.anchor.y_0):(portPosDiff = edge.source.pos.y_0 + edge.source.anchor.y_0 - edge.target.pos.y_0 - edge.target.anchor.y_0); - nextInnerShift = $doubleValue(bal.innerShift[current.id_0]) + portPosDiff; - bal.innerShift[next.id_0] = nextInnerShift; - spaceAbove = $wnd.Math.max(spaceAbove, next.margin.top_0 - nextInnerShift); - spaceBelow = $wnd.Math.max(spaceBelow, nextInnerShift + next.size_0.y_0 + next.margin.bottom); - current = next; - } - current = root; - do { - bal.innerShift[current.id_0] = $doubleValue(bal.innerShift[current.id_0]) + spaceAbove; - current = bal.align_0[current.id_0]; - } - while (current != root); - bal.blockSize[root.id_0] = spaceAbove + spaceBelow; - } -} - -function $verticalAlignment(this$static, bal, markedEdges){ - var d, high, layer, layer$iterator, layer$iterator0, layers, low, m, neighbors, nodes, r, u_m, u_m_pair, um, um_pair, v, v$iterator, v_i_k, v_i_k$iterator; - for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 10); - bal.root[v.id_0] = v; - bal.align_0[v.id_0] = v; - bal.innerShift[v.id_0] = 0; - } - } - layers = this$static.layeredGraph.layers; - bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); - for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { - layer = castTo(layer$iterator.next_1(), 29); - r = -1; - nodes = layer.nodes; - if (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)) { - r = $intern_0; - nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes); - } - for (v_i_k$iterator = nodes.iterator_0(); v_i_k$iterator.hasNext_0();) { - v_i_k = castTo(v_i_k$iterator.next_1(), 10); - neighbors = null; - bal.hdir == LEFT_3?(neighbors = castTo($get_11(this$static.ni.rightNeighbors, v_i_k.id_0), 15)):(neighbors = castTo($get_11(this$static.ni.leftNeighbors, v_i_k.id_0), 15)); - if (neighbors.size_1() > 0) { - d = neighbors.size_1(); - low = round_int($wnd.Math.floor((d + 1) / 2)) - 1; - high = round_int($wnd.Math.ceil((d + 1) / 2)) - 1; - if (bal.vdir == UP_0) { - for (m = high; m >= low; m--) { - if (bal.align_0[v_i_k.id_0] == v_i_k) { - u_m_pair = castTo(neighbors.get_0(m), 46); - u_m = castTo(u_m_pair.first, 10); - if (!$contains_6(markedEdges, u_m_pair.second) && r > this$static.ni.nodeIndex[u_m.id_0]) { - bal.align_0[u_m.id_0] = v_i_k; - bal.root[v_i_k.id_0] = bal.root[u_m.id_0]; - bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; - bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); - r = this$static.ni.nodeIndex[u_m.id_0]; - } - } - } - } - else { - for (m = low; m <= high; m++) { - if (bal.align_0[v_i_k.id_0] == v_i_k) { - um_pair = castTo(neighbors.get_0(m), 46); - um = castTo(um_pair.first, 10); - if (!$contains_6(markedEdges, um_pair.second) && r < this$static.ni.nodeIndex[um.id_0]) { - bal.align_0[um.id_0] = v_i_k; - bal.root[v_i_k.id_0] = bal.root[um.id_0]; - bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; - bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); - r = this$static.ni.nodeIndex[um.id_0]; - } - } - } - } - } - } - } -} - -function BKAligner(layeredGraph, ni){ - this.layeredGraph = layeredGraph; - this.ni = ni; -} - -defineClass(1634, 1, {}, BKAligner); -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAligner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAligner', 1634); -function $getOrCreateClassNode(this$static, sinkNode){ - var node; - node = castTo($get_10(this$static.sinkNodes, sinkNode), 458); - if (!node) { - node = new BKCompactor$ClassNode; - node.node = sinkNode; - $put_6(this$static.sinkNodes, node.node, node); - } - return node; -} - -function $horizontalCompaction(this$static, bal){ - var layer, layer$iterator, layer$iterator0, layer$iterator1, layers, node, node$iterator, nodes, sinkShift, v, v$iterator; - for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - bal.sink[node.id_0] = node; - bal.shift_0[node.id_0] = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_59; - } - } - $reset(this$static.sinkNodes); - layers = this$static.layeredGraph.layers; - bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); - $init_0(this$static.threshStrategy, bal, this$static.ni); - fill_2(bal.y_0, null); - for (layer$iterator1 = layers.iterator_0(); layer$iterator1.hasNext_0();) { - layer = castTo(layer$iterator1.next_1(), 29); - nodes = layer.nodes; - bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && (nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes)); - for (v$iterator = nodes.iterator_0(); v$iterator.hasNext_0();) { - v = castTo(v$iterator.next_1(), 10); - bal.root[v.id_0] == v && $placeBlock(this$static, v, bal); - } - } - $placeClasses(this$static, bal); - for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { - layer = castTo(layer$iterator.next_1(), 29); - for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 10); - bal.y_0[v.id_0] = bal.y_0[bal.root[v.id_0].id_0]; - if (v == bal.root[v.id_0]) { - sinkShift = $doubleValue(bal.shift_0[bal.sink[v.id_0].id_0]); - (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && sinkShift > $intern_60 || bal.vdir == DOWN_0 && sinkShift < $intern_59) && (bal.y_0[v.id_0] = $doubleValue(bal.y_0[v.id_0]) + sinkShift); - } - } - } - this$static.threshStrategy.postProcess(); -} - -function $placeBlock(this$static, root, bal){ - var currentBlockPosition, currentIndexInLayer, currentLayerSize, currentNode, isInitialAssignment, neighbor, neighborRoot, neighborSink, newPosition, requiredSpace, sinkNode, spacing, thresh; - if (bal.y_0[root.id_0] != null) { - return; - } - isInitialAssignment = true; - bal.y_0[root.id_0] = 0; - currentNode = root; - thresh = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?$intern_60:$intern_59; - do { - currentIndexInLayer = this$static.ni.nodeIndex[currentNode.id_0]; - currentLayerSize = currentNode.layer.nodes.array.length; - if (bal.vdir == DOWN_0 && currentIndexInLayer > 0 || bal.vdir == UP_0 && currentIndexInLayer < currentLayerSize - 1) { - neighbor = null; - neighborRoot = null; - bal.vdir == UP_0?(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer + 1), 10)):(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer - 1), 10)); - neighborRoot = bal.root[neighbor.id_0]; - $placeBlock(this$static, neighborRoot, bal); - thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); - bal.sink[root.id_0] == root && (bal.sink[root.id_0] = bal.sink[neighborRoot.id_0]); - if (bal.sink[root.id_0] == bal.sink[neighborRoot.id_0]) { - spacing = $getVerticalSpacing_0(this$static.spacings, currentNode, neighbor); - if (bal.vdir == UP_0) { - currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); - newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0 - spacing - currentNode.margin.bottom - currentNode.size_0.y_0 - $doubleValue(bal.innerShift[currentNode.id_0]); - if (isInitialAssignment) { - isInitialAssignment = false; - bal.y_0[root.id_0] = $wnd.Math.min(newPosition, thresh); - } - else { - bal.y_0[root.id_0] = $wnd.Math.min(currentBlockPosition, $wnd.Math.min(newPosition, thresh)); - } - } - else { - currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); - newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing + currentNode.margin.top_0 - $doubleValue(bal.innerShift[currentNode.id_0]); - if (isInitialAssignment) { - isInitialAssignment = false; - bal.y_0[root.id_0] = $wnd.Math.max(newPosition, thresh); - } - else { - bal.y_0[root.id_0] = $wnd.Math.max(currentBlockPosition, $wnd.Math.max(newPosition, thresh)); - } - } - } - else { - spacing = $doubleValue(castToDouble($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - sinkNode = $getOrCreateClassNode(this$static, bal.sink[root.id_0]); - neighborSink = $getOrCreateClassNode(this$static, bal.sink[neighborRoot.id_0]); - if (bal.vdir == UP_0) { - requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) + currentNode.size_0.y_0 + currentNode.margin.bottom + spacing - ($doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0); - $addEdge(sinkNode, neighborSink, requiredSpace); - } - else { - requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) - currentNode.margin.top_0 - $doubleValue(bal.y_0[neighborRoot.id_0]) - $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.size_0.y_0 - neighbor.margin.bottom - spacing; - $addEdge(sinkNode, neighborSink, requiredSpace); - } - } - } - else { - thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); - } - currentNode = bal.align_0[currentNode.id_0]; - } - while (currentNode != root); - $finishBlock(this$static.threshStrategy, root); -} - -function $placeClasses(this$static, bal){ - var e, e$iterator, entry, n, n$iterator, n$iterator0, outerIter, outerIter0, sinks; - sinks = new LinkedList; - for (n$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); n$iterator0.val$outerIter2.hasNext_0();) { - n = (entry = castTo(n$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); - n.indegree == 0 && ($addNode_0(sinks, n, sinks.tail.prev, sinks.tail) , true); - } - while (sinks.size_0 != 0) { - n = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 458); - n.classShift == null && (n.classShift = 0); - for (e$iterator = new ArrayList$1(n.outgoing); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 654); - e.target.classShift == null?(e.target.classShift = $doubleValue(n.classShift) + e.separation):bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(e.target.classShift = $wnd.Math.min($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)):(e.target.classShift = $wnd.Math.max($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)); - --e.target.indegree; - e.target.indegree == 0 && $add_7(sinks, e.target); - } - } - for (n$iterator = (outerIter = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); n$iterator.val$outerIter2.hasNext_0();) { - n = (entry = castTo(n$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); - bal.shift_0[n.node.id_0] = n.classShift; - } -} - -function BKCompactor(layeredGraph, ni){ - this.sinkNodes = new HashMap; - this.layeredGraph = layeredGraph; - this.ni = ni; - this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0))) === maskUndefined(($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS))?(this.threshStrategy = new ThresholdStrategy$SimpleThresholdStrategy):(this.threshStrategy = new ThresholdStrategy$NullThresholdStrategy); -} - -defineClass(1637, 1, {}, BKCompactor); -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor', 1637); -function BKCompactor$ClassEdge(){ -} - -defineClass(654, 1, {654:1}, BKCompactor$ClassEdge); -_.separation = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassEdge', 654); -function $addEdge(this$static, target, separation){ - var se; - se = new BKCompactor$ClassEdge; - se.target = target; - se.separation = separation; - ++target.indegree; - $add_3(this$static.outgoing, se); -} - -function BKCompactor$ClassNode(){ - this.outgoing = new ArrayList; -} - -defineClass(458, 1, {458:1}, BKCompactor$ClassNode); -_.classShift = null; -_.indegree = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassNode', 458); -function $clinit_BKNodePlacer(){ - $clinit_BKNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_3 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $checkOrderConstraint(layeredGraph, bal, monitor){ - var bottom, feasible, layer, layer$iterator, node, node$iterator, pos, previous, top_0; - feasible = true; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - pos = $intern_60; - previous = null; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - top_0 = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) - node.margin.top_0; - bottom = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; - if (top_0 > pos && bottom > pos) { - previous = node; - pos = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; - } - else { - feasible = false; - monitor.recordLogs && $log_2(monitor, 'bk node placement breaks on ' + node + ' which should have been after ' + previous); - break; - } - } - if (!feasible) { - break; - } - } - monitor.recordLogs && $log_2(monitor, bal + ' is feasible: ' + feasible); - return feasible; -} - -function $createBalancedLayout(this$static, layouts, nodeCount){ - var bal, balanced, calculatedYs, i, i0, i1, i2, l, l$iterator, layer, layer$iterator, max_0, min_0, minWidthLayout, n, n$iterator, noOfLayouts, node, node$iterator, nodePosY, shift_0, width_0; - noOfLayouts = layouts.array.length; - balanced = new BKAlignedLayout(this$static.lGraph, nodeCount, null, null); - width_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - minWidthLayout = 0; - for (i0 = 0; i0 < noOfLayouts; i0++) { - min_0[i0] = $intern_0; - max_0[i0] = $intern_42; - } - for (i1 = 0; i1 < noOfLayouts; i1++) { - bal = (checkCriticalElementIndex(i1, layouts.array.length) , castTo(layouts.array[i1], 180)); - width_0[i1] = $layoutSize(bal); - width_0[minWidthLayout] > width_0[i1] && (minWidthLayout = i1); - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - nodePosY = $doubleValue(bal.y_0[n.id_0]) + $doubleValue(bal.innerShift[n.id_0]); - min_0[i1] = $wnd.Math.min(min_0[i1], nodePosY); - max_0[i1] = $wnd.Math.max(max_0[i1], nodePosY + n.size_0.y_0); - } - } - } - shift_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - for (i2 = 0; i2 < noOfLayouts; i2++) { - (checkCriticalElementIndex(i2, layouts.array.length) , castTo(layouts.array[i2], 180)).vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(shift_0[i2] = min_0[minWidthLayout] - min_0[i2]):(shift_0[i2] = max_0[minWidthLayout] - max_0[i2]); - } - calculatedYs = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - for (layer$iterator = new ArrayList$1(this$static.lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (i = 0; i < noOfLayouts; i++) { - calculatedYs[i] = $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).y_0[node.id_0]) + $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).innerShift[node.id_0]) + shift_0[i]; - } - calculatedYs.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); - balanced.y_0[node.id_0] = (calculatedYs[1] + calculatedYs[2]) / 2; - balanced.innerShift[node.id_0] = 0; - } - } - return balanced; -} - -function $incidentToInnerSegment(this$static, node, layer1, layer2){ - var edge, edge$iterator, sourceNodeType; - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - sourceNodeType = edge.source.owner.type_0; - if (sourceNodeType == LONG_EDGE && this$static.ni.layerIndex[edge.source.owner.layer.id_0] == layer2 && this$static.ni.layerIndex[node.layer.id_0] == layer1) { - return true; - } - } - } - return false; -} - -function $markConflicts(this$static, layeredGraph){ - var currentLayer, i, k, k_0, k_1, l, l_1, layer, layer$iterator, layerIndex, layerIterator, layerSize, nodeIterator, numberOfLayers, upperNeighbor, upperNeighbor$iterator, v_l, v_l_i; - numberOfLayers = layeredGraph.layers.array.length; - if (numberOfLayers < 3) { - return; - } - layerSize = initUnidimensionalArray(I_classLit, $intern_48, 25, numberOfLayers, 15, 1); - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerSize[layerIndex++] = layer.nodes.array.length; - } - layerIterator = new AbstractList$ListIteratorImpl(layeredGraph.layers, 2); - for (i = 1; i < numberOfLayers - 1; i++) { - currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); - nodeIterator = new ArrayList$1(currentLayer.nodes); - k_0 = 0; - l = 0; - for (l_1 = 0; l_1 < layerSize[i + 1]; l_1++) { - v_l_i = castTo($next_7(nodeIterator), 10); - if (l_1 == layerSize[i + 1] - 1 || $incidentToInnerSegment(this$static, v_l_i, i + 1, i)) { - k_1 = layerSize[i] - 1; - $incidentToInnerSegment(this$static, v_l_i, i + 1, i) && (k_1 = this$static.ni.nodeIndex[castTo(castTo(castTo($get_11(this$static.ni.leftNeighbors, v_l_i.id_0), 15).get_0(0), 46).first, 10).id_0]); - while (l <= l_1) { - v_l = castTo($get_11(currentLayer.nodes, l), 10); - if (!$incidentToInnerSegment(this$static, v_l, i + 1, i)) { - for (upperNeighbor$iterator = castTo($get_11(this$static.ni.leftNeighbors, v_l.id_0), 15).iterator_0(); upperNeighbor$iterator.hasNext_0();) { - upperNeighbor = castTo(upperNeighbor$iterator.next_1(), 46); - k = this$static.ni.nodeIndex[castTo(upperNeighbor.first, 10).id_0]; - (k < k_0 || k > k_1) && $add_6(this$static.markedEdges, castTo(upperNeighbor.second, 17)); - } - } - ++l; - } - k_0 = k_1; - } - } - } -} - -function $process_74(this$static, layeredGraph, monitor){ - var align_0, aligner, bal, bal$iterator, bal$iterator0, bal$iterator1, bal$iterator2, balanced, chosenLayout, compacter, favorStraightEdges, layer, layer$iterator, layouts, leftdown, leftup, node, node$iterator, rightdown, rightup; - $begin(monitor, 'Brandes & Koepf node placement', 1); - this$static.lGraph = layeredGraph; - this$static.ni = buildFor(layeredGraph); - align_0 = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)), 274); - favorStraightEdges = $booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))); - this$static.produceBalancedLayout = align_0 == ($clinit_FixedAlignment() , NONE_4) && !favorStraightEdges || align_0 == BALANCED; - $markConflicts(this$static, layeredGraph); - rightdown = null; - rightup = null; - leftdown = null; - leftup = null; - layouts = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); - switch (castTo($getProperty(layeredGraph, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0), 274).ordinal) { - case 3: - leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); - layouts.array[layouts.array.length] = leftdown; - break; - case 1: - leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); - layouts.array[layouts.array.length] = leftup; - break; - case 4: - rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); - layouts.array[layouts.array.length] = rightdown; - break; - case 2: - rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); - layouts.array[layouts.array.length] = rightup; - break; - default:leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); - leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, LEFT_3); - rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, DOWN_0, RIGHT_3); - rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, RIGHT_3); - layouts.array[layouts.array.length] = rightdown; - layouts.array[layouts.array.length] = rightup; - layouts.array[layouts.array.length] = leftdown; - layouts.array[layouts.array.length] = leftup; - } - aligner = new BKAligner(layeredGraph, this$static.ni); - for (bal$iterator0 = new ArrayList$1(layouts); bal$iterator0.i < bal$iterator0.this$01.array.length;) { - bal = castTo($next_7(bal$iterator0), 180); - $verticalAlignment(aligner, bal, this$static.markedEdges); - $insideBlockShift(bal); - } - compacter = new BKCompactor(layeredGraph, this$static.ni); - for (bal$iterator1 = new ArrayList$1(layouts); bal$iterator1.i < bal$iterator1.this$01.array.length;) { - bal = castTo($next_7(bal$iterator1), 180); - $horizontalCompaction(compacter, bal); - } - if (monitor.recordLogs) { - for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { - bal = castTo($next_7(bal$iterator2), 180); - $log_2(monitor, bal + ' size is ' + $layoutSize(bal)); - } - } - chosenLayout = null; - if (this$static.produceBalancedLayout) { - balanced = $createBalancedLayout(this$static, layouts, this$static.ni.nodeCount); - $checkOrderConstraint(layeredGraph, balanced, monitor) && (chosenLayout = balanced); - } - if (!chosenLayout) { - for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { - bal = castTo($next_7(bal$iterator2), 180); - $checkOrderConstraint(layeredGraph, bal, monitor) && (!chosenLayout || $layoutSize(chosenLayout) > $layoutSize(bal)) && (chosenLayout = bal); - } - } - !chosenLayout && (chosenLayout = (checkCriticalElementIndex(0, layouts.array.length) , castTo(layouts.array[0], 180))); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 = $doubleValue(chosenLayout.y_0[node.id_0]) + $doubleValue(chosenLayout.innerShift[node.id_0]); - } - } - if (monitor.recordLogs) { - $log_2(monitor, 'Chosen node placement: ' + chosenLayout); - $log_2(monitor, 'Blocks: ' + getBlocks(chosenLayout)); - $log_2(monitor, 'Classes: ' + getClasses(chosenLayout, monitor)); - $log_2(monitor, 'Marked edges: ' + this$static.markedEdges); - } - for (bal$iterator = new ArrayList$1(layouts); bal$iterator.i < bal$iterator.this$01.array.length;) { - bal = castTo($next_7(bal$iterator), 180); - bal.root = null; - bal.blockSize = null; - bal.align_0 = null; - bal.innerShift = null; - bal.sink = null; - bal.shift_0 = null; - bal.y_0 = null; - } - $cleanup(this$static.ni); - this$static.markedEdges.map_0.clear_0(); - $done_0(monitor); -} - -function BKNodePlacer(){ - $clinit_BKNodePlacer(); - this.markedEdges = new HashSet; -} - -function getBlocks(bal){ - $clinit_BKNodePlacer(); - var blockContents, blocks, layer, layer$iterator, node, node$iterator, root; - blocks = new LinkedHashMap; - for (layer$iterator = new ArrayList$1(bal.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - root = bal.root[node.id_0]; - blockContents = castTo($get_16(blocks, root), 15); - if (!blockContents) { - blockContents = new ArrayList; - $put_11(blocks, root, blockContents); - } - blockContents.add_2(node); - } - } - return blocks; -} - -function getClasses(bal, monitor){ - var classContents, classes, root, root$iterator, roots, sink; - classes = new LinkedHashMap; - roots = newLinkedHashSet(new Arrays$ArrayList(bal.root)); - for (root$iterator = roots.map_0.keySet_0().iterator_0(); root$iterator.hasNext_0();) { - root = castTo(root$iterator.next_1(), 10); - if (!root) { - $log_2(monitor, 'There are no classes in a balanced layout.'); - break; - } - sink = bal.sink[root.id_0]; - classContents = castTo($get_16(classes, sink), 15); - if (!classContents) { - classContents = new ArrayList; - $put_11(classes, sink, classContents); - } - classContents.add_2(root); - } - return classes; -} - -function getEdge(source, target){ - $clinit_BKNodePlacer(); - var edge, edge$iterator; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.target.owner == target || edge.source.owner == target) { - return edge; - } - } - return null; -} - -defineClass(1407, 1, $intern_113, BKNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_16(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_3:null; -} -; -_.process = function process_71(layeredGraph, monitor){ - $process_74(this, castTo(layeredGraph, 37), monitor); -} -; -_.produceBalancedLayout = false; -var HIERARCHY_PROCESSING_ADDITIONS_3; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKNodePlacer', 1407); -function $cleanup(this$static){ - this$static.layerIndex = null; - this$static.nodeIndex = null; - this$static.leftNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.rightNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.neighborComparator = null; -} - -function NeighborhoodInformation(){ -} - -function buildFor(graph){ - var l, l$iterator, lId, lIndex, layer, layer$iterator, n, n$iterator, nId, nIndex, ni; - ni = new NeighborhoodInformation; - ni.nodeCount = 0; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - ni.nodeCount += layer.nodes.array.length; - } - lId = 0; - lIndex = 0; - ni.layerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length, 15, 1); - nId = 0; - nIndex = 0; - ni.nodeIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, ni.nodeCount, 15, 1); - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - l.id_0 = lId++; - ni.layerIndex[l.id_0] = lIndex++; - nIndex = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = nId++; - ni.nodeIndex[n.id_0] = nIndex++; - } - } - ni.neighborComparator = new NeighborhoodInformation$NeighborComparator(ni); - ni.leftNeighbors = newArrayListWithCapacity(ni.nodeCount); - determineAllLeftNeighbors(ni, graph); - ni.rightNeighbors = newArrayListWithCapacity(ni.nodeCount); - determineAllRightNeighbors(ni, graph); - return ni; -} - -function determineAllLeftNeighbors(ni, graph){ - var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - result = new ArrayList; - maxPriority = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { - continue; - } - edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (edgePrio > maxPriority) { - maxPriority = edgePrio; - result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - edgePrio == maxPriority && $add_3(result, new Pair(edge.source.owner, edge)); - } - $clinit_Collections(); - $sort(result, ni.neighborComparator); - $add_2(ni.leftNeighbors, n.id_0, result); - } - } -} - -function determineAllRightNeighbors(ni, graph){ - var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - result = new ArrayList; - maxPriority = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { - continue; - } - edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (edgePrio > maxPriority) { - maxPriority = edgePrio; - result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - edgePrio == maxPriority && $add_3(result, new Pair(edge.target.owner, edge)); - } - $clinit_Collections(); - $sort(result, ni.neighborComparator); - $add_2(ni.rightNeighbors, n.id_0, result); - } - } -} - -defineClass(1635, 1, {}, NeighborhoodInformation); -_.nodeCount = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation', 1635); -function $compare_21(this$static, o1, o2){ - var cmp; - cmp = this$static.this$01.nodeIndex[castTo(o1.first, 10).id_0] - this$static.this$01.nodeIndex[castTo(o2.first, 10).id_0]; - return round_int(signum(cmp)); -} - -function NeighborhoodInformation$NeighborComparator(this$0){ - this.this$01 = this$0; -} - -defineClass(1636, 1, $intern_88, NeighborhoodInformation$NeighborComparator); -_.compare_1 = function compare_75(o1, o2){ - return $compare_21(this, castTo(o1, 46), castTo(o2, 46)); -} -; -_.equals_0 = function equals_160(other){ - return this === other; -} -; -_.reversed = function reversed_67(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation$NeighborComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation/NeighborComparator', 1636); -function $finishBlock(this$static, n){ - $add_6(this$static.blockFinished, n); -} - -function $getOther_3(edge, n){ - if (edge.source.owner == n) { - return edge.target.owner; - } - else if (edge.target.owner == n) { - return edge.source.owner; - } - else { - throw toJs(new IllegalArgumentException_0('Node ' + n + ' is neither source nor target of edge ' + edge)); - } -} - -function $init_0(this$static, theBal, theNi){ - this$static.bal = theBal; - this$static.ni = theNi; - this$static.blockFinished.map_0.clear_0(); - $reset_0(this$static.postProcessablesQueue); - this$static.postProcessablesStack.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function ThresholdStrategy(){ - this.blockFinished = new HashSet; - this.postProcessablesQueue = new LinkedList; - this.postProcessablesStack = new Stack; -} - -defineClass(808, 1, {}); -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy', 808); -function ThresholdStrategy$NullThresholdStrategy(){ - ThresholdStrategy.call(this); -} - -defineClass(1763, 808, {}, ThresholdStrategy$NullThresholdStrategy); -_.calculateThreshold = function calculateThreshold(oldThresh, blockRoot, currentNode){ - return this.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; -} -; -_.postProcess = function postProcess(){ -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$NullThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/NullThresholdStrategy', 1763); -function ThresholdStrategy$Postprocessable(free, isRoot){ - this.free = free; - this.isRoot = isRoot; -} - -defineClass(579, 1, {579:1}, ThresholdStrategy$Postprocessable); -_.hasEdges = false; -_.isRoot = false; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$Postprocessable_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/Postprocessable', 579); -function $getBound(this$static, blockNode, isRoot){ - var invalid, left, otherPort, otherRoot, pick, right, rootPort, threshold; - invalid = this$static.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; - pick = $pickEdge(this$static, new ThresholdStrategy$Postprocessable(blockNode, isRoot)); - if (!pick.edge && pick.hasEdges) { - $add_7(this$static.postProcessablesQueue, pick); - return invalid; - } - else if (pick.edge) { - left = pick.edge.source; - right = pick.edge.target; - if (isRoot) { - rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?right:left; - otherPort = this$static.bal.hdir == RIGHT_3?left:right; - otherRoot = this$static.bal.root[otherPort.owner.id_0]; - threshold = $doubleValue(this$static.bal.y_0[otherRoot.id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; - } - else { - rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?right:left; - otherPort = this$static.bal.hdir == LEFT_3?left:right; - threshold = $doubleValue(this$static.bal.y_0[this$static.bal.root[otherPort.owner.id_0].id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; - } - this$static.bal.su[this$static.bal.root[left.owner.id_0].id_0] = ($clinit_Boolean() , true); - this$static.bal.su[this$static.bal.root[right.owner.id_0].id_0] = true; - return threshold; - } - return invalid; -} - -function $pickEdge(this$static, pp){ - var e, e$iterator, edges, hasEdges, onlyDummies; - pp.isRoot?(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)):(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)); - hasEdges = false; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - onlyDummies = $booleanValue(this$static.bal.od[this$static.bal.root[pp.free.id_0].id_0]); - if (!onlyDummies && !$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { - continue; - } - if ($booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0]) || $booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0])) { - continue; - } - hasEdges = true; - if ($contains_6(this$static.blockFinished, this$static.bal.root[$getOther_3(e, pp.free).id_0])) { - pp.hasEdges = true; - pp.edge = e; - return pp; - } - } - pp.hasEdges = hasEdges; - pp.edge = null; - return pp; -} - -function $process_75(this$static, pp){ - var availableSpace, block, delta, edge, fix; - edge = pp.edge; - edge.source.owner == pp.free?(fix = edge.target):(fix = edge.source); - edge.source.owner == pp.free?(block = edge.source):(block = edge.target); - delta = $calculateDelta(this$static.bal, fix, block); - if (delta > 0 && delta < $intern_98) { - availableSpace = $checkSpaceAbove(this$static.bal, block.owner, delta, this$static.ni); - $shiftBlock(this$static.bal, block.owner, -availableSpace); - return availableSpace > 0; - } - else if (delta < 0 && -delta < $intern_98) { - availableSpace = $checkSpaceBelow(this$static.bal, block.owner, -delta, this$static.ni); - $shiftBlock(this$static.bal, block.owner, availableSpace); - return availableSpace > 0; - } - return false; -} - -function ThresholdStrategy$SimpleThresholdStrategy(){ - ThresholdStrategy.call(this); -} - -defineClass(1764, 808, {}, ThresholdStrategy$SimpleThresholdStrategy); -_.calculateThreshold = function calculateThreshold_0(oldThresh, blockRoot, currentNode){ - var isLast, isRoot, t; - isRoot = blockRoot == currentNode; - isLast = this.bal.align_0[currentNode.id_0] == blockRoot; - if (!(isRoot || isLast)) { - return oldThresh; - } - t = oldThresh; - if (this.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)) { - isRoot && (t = $getBound(this, blockRoot, true)); - !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); - } - else { - isRoot && (t = $getBound(this, blockRoot, true)); - !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); - } - return t; -} -; -_.postProcess = function postProcess_0(){ - var edge, moved, onlyDummies, pick, pp; - while (this.postProcessablesQueue.size_0 != 0) { - pp = castTo($poll(this.postProcessablesQueue), 579); - pick = $pickEdge(this, pp); - if (!pick.edge) { - continue; - } - edge = pick.edge; - onlyDummies = $booleanValue(this.bal.od[this.bal.root[pp.free.id_0].id_0]); - if (!onlyDummies && !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { - continue; - } - moved = $process_75(this, pp); - moved || $push(this.postProcessablesStack, pp); - } - while (this.postProcessablesStack.arrayList.array.length != 0) { - $process_75(this, castTo($pop(this.postProcessablesStack), 579)); - } -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$SimpleThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/SimpleThresholdStrategy', 1764); -function $clinit_EdgeRouterFactory(){ - $clinit_EdgeRouterFactory = emptyMethod; - factoryCache = new EnumMap(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit); -} - -function $create_7(this$static){ - switch (this$static.edgeRoutingStrategy.ordinal) { - case 1: - return new PolylineEdgeRouter; - case 3: - return new SplineEdgeRouter; - default:return new OrthogonalEdgeRouter; - } -} - -function EdgeRouterFactory(){ -} - -function factoryFor(edgeRoutingStrategy){ - $clinit_EdgeRouterFactory(); - var factory; - if (!$containsKey_5(factoryCache, edgeRoutingStrategy)) { - factory = new EdgeRouterFactory; - factory.edgeRoutingStrategy = edgeRoutingStrategy; - $put_8(factoryCache, edgeRoutingStrategy, factory); - } - return castTo($get_14(factoryCache, edgeRoutingStrategy), 635); -} - -defineClass(635, 1, {635:1, 246:1, 234:1}, EdgeRouterFactory); -_.create_1 = function create_17(){ - return $create_7(this); -} -; -_.create_2 = function create_16(){ - return $create_7(this); -} -; -var factoryCache; -var Lorg_eclipse_elk_alg_layered_p5edges_EdgeRouterFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'EdgeRouterFactory', 635); -function $clinit_OrthogonalEdgeRouter(){ - $clinit_OrthogonalEdgeRouter = emptyMethod; - HYPEREDGE_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , HYPEREDGE_DUMMY_MERGER)); - INVERTED_PORT_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); - NORTH_SOUTH_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); - HIERARCHICAL_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR), P4_NODE_PLACEMENT, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR), P5_EDGE_ROUTING, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER); - SELF_LOOP_PROCESSING_ADDITIONS = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); - HYPERNODE_PROCESSING_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HYPERNODE_PROCESSOR); - CENTER_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); - END_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); -} - -function $getLayoutProcessorConfiguration_0(graph){ - var configuration, graphProperties; - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - configuration = new LayoutProcessorConfiguration; - if (graphProperties.contains(($clinit_GraphProperties() , HYPEREDGES))) { - $addAll_6(configuration, HYPEREDGE_PROCESSING_ADDITIONS); - $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); - } - if (graphProperties.contains(NON_FREE_PORTS) || $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , FEEDBACK_EDGES_0))))) { - $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); - graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS); - } - graphProperties.contains(EXTERNAL_PORTS) && $addAll_6(configuration, HIERARCHICAL_PORT_PROCESSING_ADDITIONS); - graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS); - graphProperties.contains(HYPERNODES) && $addAll_6(configuration, HYPERNODE_PROCESSING_ADDITIONS); - graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS); - graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS); - return configuration; -} - -function $process_76(layeredGraph, monitor){ - var edgeEdgeSpacing, edgeNodeSpacing, isLeftLayerExternal, isRightLayerExternal, layerIter, leftLayer, leftLayerNodes, nodeNodeSpacing, rightLayer, rightLayerNodes, routingGenerator, routingWidth, slotsCount, startPos, xpos; - $begin(monitor, 'Orthogonal edge routing', 1); - nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); - edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - routingGenerator = new OrthogonalRoutingGenerator(0, edgeEdgeSpacing); - xpos = 0; - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - leftLayer = null; - rightLayer = null; - leftLayerNodes = null; - rightLayerNodes = null; - do { - rightLayer = layerIter.i < layerIter.this$01_0.size_1()?(checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)):null; - rightLayerNodes = !rightLayer?null:rightLayer.nodes; - if (leftLayer) { - placeNodesHorizontally(leftLayer, xpos); - xpos += leftLayer.size_0.x_0; - } - startPos = !leftLayer?xpos:xpos + edgeNodeSpacing; - slotsCount = $routeEdges_0(routingGenerator, layeredGraph, leftLayerNodes, rightLayerNodes, startPos); - isLeftLayerExternal = !leftLayer || all_0(leftLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); - isRightLayerExternal = !rightLayer || all_0(rightLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); - if (slotsCount > 0) { - routingWidth = (slotsCount - 1) * edgeEdgeSpacing; - !!leftLayer && (routingWidth += edgeNodeSpacing); - !!rightLayer && (routingWidth += edgeNodeSpacing); - routingWidth < nodeNodeSpacing && !isLeftLayerExternal && !isRightLayerExternal && (routingWidth = nodeNodeSpacing); - xpos += routingWidth; - } - else - !isLeftLayerExternal && !isRightLayerExternal && (xpos += nodeNodeSpacing); - leftLayer = rightLayer; - leftLayerNodes = rightLayerNodes; - } - while (rightLayer); - layeredGraph.size_0.x_0 = xpos; - $done_0(monitor); -} - -function OrthogonalEdgeRouter(){ - $clinit_OrthogonalEdgeRouter(); -} - -defineClass(1458, 1, $intern_113, OrthogonalEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_17(graph){ - return $getLayoutProcessorConfiguration_0(castTo(graph, 37)); -} -; -_.process = function process_72(layeredGraph, monitor){ - $process_76(castTo(layeredGraph, 37), monitor); -} -; -var CENTER_EDGE_LABEL_PROCESSING_ADDITIONS, END_EDGE_LABEL_PROCESSING_ADDITIONS, HIERARCHICAL_PORT_PROCESSING_ADDITIONS, HYPEREDGE_PROCESSING_ADDITIONS, HYPERNODE_PROCESSING_ADDITIONS, INVERTED_PORT_PROCESSING_ADDITIONS, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS, SELF_LOOP_PROCESSING_ADDITIONS; -var Lorg_eclipse_elk_alg_layered_p5edges_OrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'OrthogonalEdgeRouter', 1458); -function $clinit_PolylineEdgeRouter(){ - $clinit_PolylineEdgeRouter = emptyMethod; - PRED_EXTERNAL_WEST_OR_EAST_PORT = new PolylineEdgeRouter$1; - BASELINE_PROCESSOR_CONFIGURATION = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , INVERTED_PORT_PROCESSOR)); - NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0 = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); - SELF_LOOP_PROCESSING_ADDITIONS_0 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); - CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); - END_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); -} - -function $addBendPoint(this$static, edge, bendPoint, addJunctionPoint, currPort){ - var jpoint, junctionPoints; - if ((!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || !$equals_9(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [currPort.owner.pos, currPort.pos, currPort.anchor])), bendPoint)) && !$isSelfLoop(edge)) { - edge.source == currPort?$add_0(edge.bendPoints, 0, new KVector_2(bendPoint)):$add_7(edge.bendPoints, new KVector_2(bendPoint)); - if (addJunctionPoint && !$contains_6(this$static.createdJunctionPoints, bendPoint)) { - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); - } - jpoint = new KVector_2(bendPoint); - $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); - $add_6(this$static.createdJunctionPoints, jpoint); - } - } -} - -function $calculateWestInLayerEdgeYDiff(layer){ - var maxYDiff, node, node$iterator, outgoingEdge, outgoingEdge$iterator, sourcePos, targetPos; - maxYDiff = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); - if (layer == outgoingEdge.target.owner.layer && outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { - sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; - targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; - maxYDiff = $wnd.Math.max(maxYDiff, $wnd.Math.abs(targetPos - sourcePos)); - } - } - } - return maxYDiff; -} - -function $getLayoutProcessorConfiguration_1(graph){ - var configuration, graphProperties; - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - configuration = createFrom_0(BASELINE_PROCESSOR_CONFIGURATION); - graphProperties.contains(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0); - graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_0); - graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0); - graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_0); - return configuration; -} - -function $isInLayerDummy_0(node){ - var e, e$iterator; - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { - return true; - } - } - } - return false; -} - -function $process_77(this$static, layeredGraph, monitor){ - var edgeSpaceFac, edgeSpacing, externalLayer, layer, layerIter, layerSpacing, maxCurrOutputYDiff, maxVertDiff, node, node$iterator, nodeSpacing, outgoingEdge, outgoingEdge$iterator, slopedEdgeZoneWidth, sourcePos, targetPos, xpos, yDiff; - $begin(monitor, 'Polyline edge routing', 1); - slopedEdgeZoneWidth = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)))); - nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); - edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); - edgeSpaceFac = $wnd.Math.min(1, edgeSpacing / nodeSpacing); - xpos = 0; - layerSpacing = 0; - if (layeredGraph.layers.array.length != 0) { - yDiff = $calculateWestInLayerEdgeYDiff(castTo($get_11(layeredGraph.layers, 0), 29)); - xpos = 0.4 * edgeSpaceFac * yDiff; - } - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - externalLayer = all_0(layer, PRED_EXTERNAL_WEST_OR_EAST_PORT); - externalLayer && xpos > 0 && (xpos -= nodeSpacing); - placeNodesHorizontally(layer, xpos); - maxVertDiff = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - maxCurrOutputYDiff = 0; - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); - sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; - targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; - if (layer == outgoingEdge.target.owner.layer && !$isSelfLoop(outgoingEdge)) { - $processInLayerEdge(outgoingEdge, xpos, 0.4 * edgeSpaceFac * $wnd.Math.abs(sourcePos - targetPos)); - if (outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { - sourcePos = 0; - targetPos = 0; - } - } - maxCurrOutputYDiff = $wnd.Math.max(maxCurrOutputYDiff, $wnd.Math.abs(targetPos - sourcePos)); - } - switch (node.type_0.ordinal) { - case 0: - case 4: - case 1: - case 3: - case 5: - $processNode_6(this$static, node, xpos, slopedEdgeZoneWidth); - } - maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrOutputYDiff); - } - if (layerIter.i < layerIter.this$01_0.size_1()) { - yDiff = $calculateWestInLayerEdgeYDiff((checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29))); - maxVertDiff = $wnd.Math.max(maxVertDiff, yDiff); - checkCriticalElement(layerIter.i > 0); - layerIter.this$01.get_0(layerIter.last = --layerIter.i); - } - layerSpacing = 0.4 * edgeSpaceFac * maxVertDiff; - !externalLayer && layerIter.i < layerIter.this$01_0.size_1() && (layerSpacing += nodeSpacing); - xpos += layer.size_0.x_0 + layerSpacing; - } - this$static.createdJunctionPoints.map_0.clear_0(); - layeredGraph.size_0.x_0 = xpos; - $done_0(monitor); -} - -function $processInLayerEdge(edge, layerXPos, edgeSpacing){ - var bendPoint, midY, sourceAnchorY, sourcePort, targetPort; - sourcePort = edge.source; - targetPort = edge.target; - sourceAnchorY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; - midY = (sourceAnchorY + sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0) / 2; - bendPoint = null; - sourcePort.side == ($clinit_PortSide() , EAST_2)?(bendPoint = new KVector_1(layerXPos + sourcePort.owner.layer.size_0.x_0 + edgeSpacing, midY)):(bendPoint = new KVector_1(layerXPos - edgeSpacing, midY)); - $add_0(edge.bendPoints, 0, bendPoint); -} - -function $processNode_6(this$static, node, layerLeftXPos, maxAcceptableXDiff){ - var absolutePortAnchor, addJunctionPoint, bendPoint, correspondingPort, e, e$iterator, layerRightXPos, otherPort, port, port$iterator, xDistance; - layerRightXPos = layerLeftXPos + node.layer.size_0.x_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - absolutePortAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])); - if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - correspondingPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - absolutePortAnchor.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [correspondingPort.owner.pos, correspondingPort.pos, correspondingPort.anchor])).x_0; - node.pos.x_0 = absolutePortAnchor.x_0; - } - bendPoint = new KVector_1(0, absolutePortAnchor.y_0); - if (port.side == ($clinit_PortSide() , EAST_2)) { - bendPoint.x_0 = layerRightXPos; - } - else if (port.side == WEST_2) { - bendPoint.x_0 = layerLeftXPos; - } - else { - continue; - } - xDistance = $wnd.Math.abs(absolutePortAnchor.x_0 - bendPoint.x_0); - if (xDistance <= maxAcceptableXDiff && !$isInLayerDummy_0(node)) { - continue; - } - addJunctionPoint = port.outgoingEdges.array.length + port.incomingEdges.array.length > 1; - for (e$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(e$iterator.firstIterator) || $hasNext_3(e$iterator.secondIterator);) { - e = castTo($hasNext_3(e$iterator.firstIterator)?$next_7(e$iterator.firstIterator):$next_7(e$iterator.secondIterator), 17); - otherPort = e.source == port?e.target:e.source; - $wnd.Math.abs(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [otherPort.owner.pos, otherPort.pos, otherPort.anchor])).y_0 - bendPoint.y_0) > 1 && $addBendPoint(this$static, e, bendPoint, addJunctionPoint, port); - } - } -} - -function PolylineEdgeRouter(){ - $clinit_PolylineEdgeRouter(); - this.createdJunctionPoints = new HashSet; -} - -defineClass(1451, 1, $intern_113, PolylineEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_18(graph){ - return $getLayoutProcessorConfiguration_1(castTo(graph, 37)); -} -; -_.process = function process_73(layeredGraph, monitor){ - $process_77(this, castTo(layeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSOR_CONFIGURATION, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0, END_EDGE_LABEL_PROCESSING_ADDITIONS_0, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0, PRED_EXTERNAL_WEST_OR_EAST_PORT, SELF_LOOP_PROCESSING_ADDITIONS_0; -var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter', 1451); -function $apply_18(node){ - var extPortSide; - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - return node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (extPortSide == ($clinit_PortSide() , WEST_2) || extPortSide == EAST_2); -} - -function PolylineEdgeRouter$1(){ -} - -defineClass(1452, 1, $intern_89, PolylineEdgeRouter$1); -_.apply_1 = function apply_152(node){ - return $apply_18(castTo(node, 10)); -} -; -_.equals_0 = function equals_161(other){ - return this === other; -} -; -_.test_0 = function test_102(input_0){ - return $apply_18(castTo(input_0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter/1', 1452); -function computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random){ - var entry, entryIterator, markBase, maxNode, maxOutflow, maxSegments, nextSinkMark, nextSourceMark, node, node$iterator, outflow, segment, segment$iterator, shiftBase, sink, source, unprocessed; - unprocessed = newTreeSet(segments); - maxSegments = new ArrayList; - markBase = segments.array.length; - nextSinkMark = markBase - 1; - nextSourceMark = markBase + 1; - while (unprocessed.map_0.size_0 != 0) { - while (sinks.size_0 != 0) { - sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 112)); - $remove_26(unprocessed.map_0, sink) != null; - sink.mark = nextSinkMark--; - updateNeighbors(sink, sources, sinks, criticalOnly); - } - while (sources.size_0 != 0) { - source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 112)); - $remove_26(unprocessed.map_0, source) != null; - source.mark = nextSourceMark++; - updateNeighbors(source, sources, sinks, criticalOnly); - } - maxOutflow = $intern_42; - for (segment$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(unprocessed.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(segment$iterator.val$entryIterator2.iter);) { - segment = (entry = $next_11(segment$iterator.val$entryIterator2) , castTo(entry.getKey(), 112)); - if (!criticalOnly && segment.criticalOutDepWeight > 0 && segment.criticalInDepWeight <= 0) { - maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxSegments.array[maxSegments.array.length] = segment; - break; - } - outflow = segment.outDepWeight - segment.inDepWeight; - if (outflow >= maxOutflow) { - if (outflow > maxOutflow) { - maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxOutflow = outflow; - } - maxSegments.array[maxSegments.array.length] = segment; - } - } - if (maxSegments.array.length != 0) { - maxNode = castTo($get_11(maxSegments, $nextInt(random, maxSegments.array.length)), 112); - $remove_26(unprocessed.map_0, maxNode) != null; - maxNode.mark = nextSourceMark++; - updateNeighbors(maxNode, sources, sinks, criticalOnly); - maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - } - shiftBase = segments.array.length + 1; - for (node$iterator = new ArrayList$1(segments); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 112); - node.mark < markBase && (node.mark = node.mark + shiftBase); - } -} - -function detectCycles(segments, criticalOnly, random){ - var outDependency, outDependency$iterator, result, sinks, source, source$iterator, sources; - result = new ArrayList; - sources = new LinkedList; - sinks = new LinkedList; - initialize_2(segments, sources, sinks, criticalOnly); - computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random); - for (source$iterator = new ArrayList$1(segments); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 112); - for (outDependency$iterator = new ArrayList$1(source.outgoingSegmentDependencies); outDependency$iterator.i < outDependency$iterator.this$01.array.length;) { - outDependency = castTo($next_7(outDependency$iterator), 129); - (!criticalOnly || outDependency.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) && source.mark > outDependency.target.mark && (result.array[result.array.length] = outDependency , true); - } - } - return result; -} - -function initialize_2(segments, sources, sinks, criticalOnly){ - var criticalInWeight, criticalOutWeight, inWeight, nextMark, outWeight, segment, segment$iterator; - nextMark = -1; - for (segment$iterator = new ArrayList$1(segments); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 112); - segment.mark = nextMark--; - criticalInWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$0$Type), new HyperEdgeCycleDetector$lambda$1$Type)).sum); - criticalOutWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$2$Type), new HyperEdgeCycleDetector$lambda$3$Type)).sum); - inWeight = criticalInWeight; - outWeight = criticalOutWeight; - if (!criticalOnly) { - inWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$4$Type)).sum); - outWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$5$Type)).sum); - } - segment.inDepWeight = inWeight; - segment.criticalInDepWeight = criticalInWeight; - segment.outDepWeight = outWeight; - segment.criticalOutDepWeight = criticalOutWeight; - outWeight == 0?($addNode_0(sinks, segment, sinks.tail.prev, sinks.tail) , true):inWeight == 0 && ($addNode_0(sources, segment, sources.tail.prev, sources.tail) , true); - } -} - -function updateNeighbors(node, sources, sinks, criticalOnly){ - var dep, dep$iterator, dep$iterator0, source, target; - for (dep$iterator0 = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator0.i < dep$iterator0.this$01.array.length;) { - dep = castTo($next_7(dep$iterator0), 129); - if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { - target = dep.target; - if (target.mark < 0 && dep.weight > 0) { - $setInWeight(target, target.inDepWeight - dep.weight); - dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalInWeight(target, target.criticalInDepWeight - dep.weight); - target.inDepWeight <= 0 && target.outDepWeight > 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); - } - } - } - for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 129); - if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { - source = dep.source; - if (source.mark < 0 && dep.weight > 0) { - $setOutWeight(source, source.outDepWeight - dep.weight); - dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalOutWeight(source, source.criticalOutDepWeight - dep.weight); - source.outDepWeight <= 0 && source.inDepWeight > 0 && ($addNode_0(sinks, source, sinks.tail.prev, sinks.tail) , true); - } - } - } -} - -function HyperEdgeCycleDetector$lambda$0$Type(){ -} - -defineClass(1809, 1, $intern_39, HyperEdgeCycleDetector$lambda$0$Type); -_.test_0 = function test_103(arg0){ - return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$0$Type', 1809); -function HyperEdgeCycleDetector$lambda$1$Type(){ -} - -defineClass(1810, 1, {}, HyperEdgeCycleDetector$lambda$1$Type); -_.applyAsInt = function applyAsInt(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$1$Type', 1810); -function HyperEdgeCycleDetector$lambda$2$Type(){ -} - -defineClass(1811, 1, $intern_39, HyperEdgeCycleDetector$lambda$2$Type); -_.test_0 = function test_104(arg0){ - return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$2$Type', 1811); -function HyperEdgeCycleDetector$lambda$3$Type(){ -} - -defineClass(1812, 1, {}, HyperEdgeCycleDetector$lambda$3$Type); -_.applyAsInt = function applyAsInt_0(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$3$Type', 1812); -function HyperEdgeCycleDetector$lambda$4$Type(){ -} - -defineClass(1813, 1, {}, HyperEdgeCycleDetector$lambda$4$Type); -_.applyAsInt = function applyAsInt_1(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$4$Type', 1813); -function HyperEdgeCycleDetector$lambda$5$Type(){ -} - -defineClass(1814, 1, {}, HyperEdgeCycleDetector$lambda$5$Type); -_.applyAsInt = function applyAsInt_2(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$5$Type', 1814); -function $addPortPositions(this$static, port, hyperEdgeSegmentMap){ - var otherPort, otherPort$iterator, portPos; - hyperEdgeSegmentMap.put(port, this$static); - $add_3(this$static.ports, port); - portPos = this$static.routingStrategy.getPortPositionOnHyperNode(port); - port.side == this$static.routingStrategy.getSourcePortSide()?insertSorted(this$static.incomingConnectionCoordinates, portPos):insertSorted(this$static.outgoingConnectionCoordinates, portPos); - $recomputeExtent(this$static); - for (otherPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port), new LPort$2(port)]))); $hasNext_1(otherPort$iterator);) { - otherPort = castTo($next_0(otherPort$iterator), 11); - hyperEdgeSegmentMap.containsKey(otherPort) || $addPortPositions(this$static, otherPort, hyperEdgeSegmentMap); - } -} - -function $compareTo_17(this$static, other){ - return this$static.mark - other.mark; -} - -function $recomputeExtent(this$static){ - this$static.startPosition = NaN; - this$static.endPosition = NaN; - $recomputeExtent_0(this$static, this$static.incomingConnectionCoordinates); - $recomputeExtent_0(this$static, this$static.outgoingConnectionCoordinates); -} - -function $recomputeExtent_0(this$static, positions){ - if (positions.size_0 != 0) { - isNaN(this$static.startPosition)?(this$static.startPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0)))):(this$static.startPosition = $wnd.Math.min(this$static.startPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0))))); - isNaN(this$static.endPosition)?(this$static.endPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0)))):(this$static.endPosition = $wnd.Math.max(this$static.endPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0))))); - } -} - -function $setCriticalInWeight(this$static, inWeight){ - this$static.criticalInDepWeight = inWeight; -} - -function $setCriticalOutWeight(this$static, outWeight){ - this$static.criticalOutDepWeight = outWeight; -} - -function $setInWeight(this$static, inWeight){ - this$static.inDepWeight = inWeight; -} - -function $setOutWeight(this$static, outWeight){ - this$static.outDepWeight = outWeight; -} - -function $setRoutingSlot_0(this$static, slot){ - this$static.routingSlot = slot; -} - -function $setSplitPartner(this$static, splitPartner){ - this$static.splitPartner = splitPartner; -} - -function $splitAt(this$static, splitPosition){ - this$static.splitPartner = new HyperEdgeSegment(this$static.routingStrategy); - $setSplitPartner(this$static.splitPartner, this$static); - $addAll(this$static.splitPartner.outgoingConnectionCoordinates, this$static.outgoingConnectionCoordinates); - $reset_0(this$static.outgoingConnectionCoordinates); - $add_7(this$static.outgoingConnectionCoordinates, splitPosition); - $add_7(this$static.splitPartner.incomingConnectionCoordinates, splitPosition); - $recomputeExtent(this$static); - $recomputeExtent(this$static.splitPartner); - while (this$static.incomingSegmentDependencies.array.length != 0) { - $remove_31(castTo($get_11(this$static.incomingSegmentDependencies, 0), 129)); - } - while (this$static.outgoingSegmentDependencies.array.length != 0) { - $remove_31(castTo($get_11(this$static.outgoingSegmentDependencies, 0), 129)); - } - return this$static.splitPartner; -} - -function HyperEdgeSegment(routingStrategy){ - this.ports = new ArrayList; - this.incomingConnectionCoordinates = new LinkedList; - this.outgoingConnectionCoordinates = new LinkedList; - this.outgoingSegmentDependencies = new ArrayList; - this.incomingSegmentDependencies = new ArrayList; - this.routingStrategy = routingStrategy; -} - -function insertSorted(list, value_0){ - var listIter, next; - listIter = $listIterator_2(list, 0); - while (listIter.currentNode != listIter.this$01.tail) { - next = $floatValue(castToDouble($next_10(listIter))); - if (next == value_0) { - return; - } - else if (next > value_0) { - $previous_0(listIter); - break; - } - } - $add_8(listIter, value_0); -} - -defineClass(112, 1, {35:1, 112:1}, HyperEdgeSegment); -_.compareTo_0 = function compareTo_18(other){ - return $compareTo_17(this, castTo(other, 112)); -} -; -_.equals_0 = function equals_162(object){ - var other; - if (instanceOf(object, 112)) { - other = castTo(object, 112); - return this.mark == other.mark; - } - return false; -} -; -_.hashCode_1 = function hashCode_63(){ - return this.mark; -} -; -_.toString_0 = function toString_104(){ - var builder, name_0, port, portIter; - builder = new StringBuilder_1('{'); - portIter = new ArrayList$1(this.ports); - while (portIter.i < portIter.this$01.array.length) { - port = castTo($next_7(portIter), 11); - name_0 = $getDesignation_2(port.owner); - name_0 == null && (name_0 = 'n' + $getIndex(port.owner)); - builder.string += '' + name_0; - portIter.i < portIter.this$01.array.length && (builder.string += ',' , builder); - } - builder.string += '}'; - return builder.string; -} -; -_.criticalInDepWeight = 0; -_.criticalOutDepWeight = 0; -_.endPosition = NaN; -_.inDepWeight = 0; -_.mark = 0; -_.outDepWeight = 0; -_.routingSlot = 0; -_.startPosition = NaN; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegment', 112); -function $remove_31(this$static){ - $setSource_1(this$static, null); - $setTarget_1(this$static, null); -} - -function $setSource_1(this$static, newSource){ - !!this$static.source && $remove_12(this$static.source.outgoingSegmentDependencies, this$static); - this$static.source = newSource; - !!this$static.source && $add_3(this$static.source.outgoingSegmentDependencies, this$static); -} - -function $setTarget_1(this$static, newTarget){ - !!this$static.target && $remove_12(this$static.target.incomingSegmentDependencies, this$static); - this$static.target = newTarget; - !!this$static.target && $add_3(this$static.target.incomingSegmentDependencies, this$static); -} - -function HyperEdgeSegmentDependency(type_0, source, target, weight){ - this.type_0 = type_0; - this.weight = weight; - $setSource_1(this, source); - $setTarget_1(this, target); -} - -defineClass(129, 1, {129:1}, HyperEdgeSegmentDependency); -_.toString_0 = function toString_105(){ - return this.source + '->' + this.target + ' (' + $name(this.type_0) + ')'; -} -; -_.weight = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency', 129); -function $clinit_HyperEdgeSegmentDependency$DependencyType(){ - $clinit_HyperEdgeSegmentDependency$DependencyType = emptyMethod; - REGULAR = new HyperEdgeSegmentDependency$DependencyType('REGULAR', 0); - CRITICAL = new HyperEdgeSegmentDependency$DependencyType('CRITICAL', 1); -} - -function HyperEdgeSegmentDependency$DependencyType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_71(name_0){ - $clinit_HyperEdgeSegmentDependency$DependencyType(); - return valueOf(($clinit_HyperEdgeSegmentDependency$DependencyType$Map() , $MAP_59), name_0); -} - -function values_77(){ - $clinit_HyperEdgeSegmentDependency$DependencyType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]); -} - -defineClass(520, 22, {3:1, 35:1, 22:1, 520:1}, HyperEdgeSegmentDependency$DependencyType); -var CRITICAL, REGULAR; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency/DependencyType', 520, Ljava_lang_Enum_2_classLit, values_77, valueOf_71); -function $clinit_HyperEdgeSegmentDependency$DependencyType$Map(){ - $clinit_HyperEdgeSegmentDependency$DependencyType$Map = emptyMethod; - $MAP_59 = createValueOfMap(($clinit_HyperEdgeSegmentDependency$DependencyType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]))); -} - -var $MAP_59; -function $chooseBestAreaIndex(segment, freeAreas, fromIndex, toIndex){ - var bestArea, bestAreaIndex, bestRating, currArea, currRating, i, splitPartner, splitSegment, splitSegments, newSplit, newSplitPartner; - bestAreaIndex = fromIndex; - if (fromIndex < toIndex) { - splitSegments = (newSplit = new HyperEdgeSegment(segment.routingStrategy) , newSplitPartner = new HyperEdgeSegment(segment.routingStrategy) , $addAll(newSplit.incomingConnectionCoordinates, segment.incomingConnectionCoordinates) , newSplit.splitBy = segment.splitBy , newSplit.splitPartner = newSplitPartner , $recomputeExtent(newSplit) , $addAll(newSplitPartner.outgoingConnectionCoordinates, segment.outgoingConnectionCoordinates) , newSplitPartner.splitPartner = newSplit , $recomputeExtent(newSplitPartner) , new Pair(newSplit, newSplitPartner)); - splitSegment = castTo(splitSegments.first, 112); - splitPartner = castTo(splitSegments.second, 112); - bestArea = (checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329)); - bestRating = $rateArea(segment, splitSegment, splitPartner, bestArea); - for (i = fromIndex + 1; i <= toIndex; i++) { - currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); - currRating = $rateArea(segment, splitSegment, splitPartner, currArea); - if ($isBetter(currArea, currRating, bestArea, bestRating)) { - bestArea = currArea; - bestRating = currRating; - } - } - } - return bestAreaIndex; -} - -function $computePositionToSplitAndUpdateFreeAreas(segment, freeAreas, criticalConflictThreshold){ - var bestAreaIndex, currArea, firstPossibleAreaIndex, i, lastPossibleAreaIndex, splitPosition; - firstPossibleAreaIndex = -1; - lastPossibleAreaIndex = -1; - for (i = 0; i < freeAreas.array.length; i++) { - currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); - if (currArea.startPosition > segment.endPosition) { - break; - } - else if (currArea.endPosition >= segment.startPosition) { - firstPossibleAreaIndex < 0 && (firstPossibleAreaIndex = i); - lastPossibleAreaIndex = i; - } - } - splitPosition = (segment.startPosition + segment.endPosition) / 2; - if (firstPossibleAreaIndex >= 0) { - bestAreaIndex = $chooseBestAreaIndex(segment, freeAreas, firstPossibleAreaIndex, lastPossibleAreaIndex); - splitPosition = center_0((checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329))); - $useArea(freeAreas, bestAreaIndex, criticalConflictThreshold); - } - return splitPosition; -} - -function $countCrossingsForSingleOrdering(left, right){ - return countCrossings(left.outgoingConnectionCoordinates, right.startPosition, right.endPosition) + countCrossings(right.incomingConnectionCoordinates, left.startPosition, left.endPosition); -} - -function $decideWhichSegmentsToSplit(dependencies){ - var dependency, dependency$iterator, segmentCausingSplit, segmentToSplit, segmentsToSplit, sourceSegment, targetSegment; - segmentsToSplit = new LinkedHashSet; - for (dependency$iterator = new ArrayList$1(dependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator), 129); - sourceSegment = dependency.source; - targetSegment = dependency.target; - if (segmentsToSplit.map_0.containsKey(sourceSegment) || segmentsToSplit.map_0.containsKey(targetSegment)) { - continue; - } - segmentToSplit = sourceSegment; - segmentCausingSplit = targetSegment; - if (sourceSegment.incomingConnectionCoordinates.size_0 + sourceSegment.outgoingConnectionCoordinates.size_0 > 2 && targetSegment.incomingConnectionCoordinates.size_0 + targetSegment.outgoingConnectionCoordinates.size_0 <= 2) { - segmentToSplit = targetSegment; - segmentCausingSplit = sourceSegment; - } - segmentsToSplit.map_0.put(segmentToSplit, segmentsToSplit); - segmentToSplit.splitBy = segmentCausingSplit; - } - return segmentsToSplit; -} - -function $findFreeAreas(segments, criticalConflictThreshold){ - var freeAreas, i, inCoordinates, outCoordinates, sortedCoordinates; - freeAreas = new ArrayList; - inCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$2$Type); - outCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$3$Type); - sortedCoordinates = $toArray_6($sorted($mapToDouble(concat_1(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Stream_2_classLit, 1), $intern_2, 833, 0, [inCoordinates, outCoordinates])), new HyperEdgeSegmentSplitter$lambda$4$Type))); - for (i = 1; i < sortedCoordinates.length; i++) { - sortedCoordinates[i] - sortedCoordinates[i - 1] >= 2 * criticalConflictThreshold && $add_3(freeAreas, new HyperEdgeSegmentSplitter$FreeArea(sortedCoordinates[i - 1] + criticalConflictThreshold, sortedCoordinates[i] - criticalConflictThreshold)); - } - return freeAreas; -} - -function $isBetter(currArea, currRating, bestArea, bestRating){ - if (currRating.crossings < bestRating.crossings) { - return true; - } - else if (currRating.crossings == bestRating.crossings) { - if (currRating.dependencies < bestRating.dependencies) { - return true; - } - else if (currRating.dependencies == bestRating.dependencies) { - if (currArea.size_0 > bestArea.size_0) { - return true; - } - } - } - return false; -} - -function $lambda$1_5(this$static, segments_1, freeAreas_2, criticalConflictThreshold_3, segment_3){ - var splitPosition; - splitPosition = $computePositionToSplitAndUpdateFreeAreas(segment_3, freeAreas_2, criticalConflictThreshold_3); - $add_3(segments_1, $splitAt(segment_3, splitPosition)); - $updateDependencies(this$static, segment_3, segments_1); -} - -function $rateArea(segment, splitSegment, splitPartner, area){ - var areaCentre, dependency, dependency$iterator, dependency$iterator0, otherSegment, rating; - areaCentre = (area.startPosition + area.endPosition) / 2; - $reset_0(splitSegment.outgoingConnectionCoordinates); - $add_7(splitSegment.outgoingConnectionCoordinates, areaCentre); - $reset_0(splitPartner.incomingConnectionCoordinates); - $add_7(splitPartner.incomingConnectionCoordinates, areaCentre); - rating = new HyperEdgeSegmentSplitter$AreaRating; - for (dependency$iterator0 = new ArrayList$1(segment.incomingSegmentDependencies); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator0), 129); - otherSegment = dependency.source; - $updateConsideringBothOrderings(rating, splitSegment, otherSegment); - $updateConsideringBothOrderings(rating, splitPartner, otherSegment); - } - for (dependency$iterator = new ArrayList$1(segment.outgoingSegmentDependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator), 129); - otherSegment = dependency.target; - $updateConsideringBothOrderings(rating, splitSegment, otherSegment); - $updateConsideringBothOrderings(rating, splitPartner, otherSegment); - } - rating.dependencies += 2; - rating.crossings += $countCrossingsForSingleOrdering(splitSegment, segment.splitBy); - rating.crossings += $countCrossingsForSingleOrdering(segment.splitBy, splitPartner); - return rating; -} - -function $splitSegments(this$static, dependenciesToResolve, segments, criticalConflictThreshold){ - var freeAreas, segmentsToSplit; - if (dependenciesToResolve.array.length == 0) { - return; - } - freeAreas = $findFreeAreas(segments, criticalConflictThreshold); - segmentsToSplit = $decideWhichSegmentsToSplit(dependenciesToResolve); - $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(segmentsToSplit, 1)), new HyperEdgeSegmentSplitter$lambda$0$Type), new HyperEdgeSegmentSplitter$lambda$1$Type(this$static, segments, freeAreas, criticalConflictThreshold)); -} - -function $updateConsideringBothOrderings(rating, s1, s2){ - var crossingsS1LeftOfS2, crossingsS2LeftOfS1; - crossingsS1LeftOfS2 = countCrossings(s1.outgoingConnectionCoordinates, s2.startPosition, s2.endPosition) + countCrossings(s2.incomingConnectionCoordinates, s1.startPosition, s1.endPosition); - crossingsS2LeftOfS1 = countCrossings(s2.outgoingConnectionCoordinates, s1.startPosition, s1.endPosition) + countCrossings(s1.incomingConnectionCoordinates, s2.startPosition, s2.endPosition); - if (crossingsS1LeftOfS2 == crossingsS2LeftOfS1) { - if (crossingsS1LeftOfS2 > 0) { - rating.dependencies += 2; - rating.crossings += crossingsS1LeftOfS2; - } - } - else { - rating.dependencies += 1; - rating.crossings += $wnd.Math.min(crossingsS1LeftOfS2, crossingsS2LeftOfS1); - } -} - -function $updateDependencies(this$static, segment, segments){ - var otherSegment, otherSegment$iterator, splitCausingSegment, splitPartner; - splitCausingSegment = segment.splitBy; - splitPartner = segment.splitPartner; - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), segment, splitCausingSegment, 1); - new HyperEdgeSegmentDependency(CRITICAL, splitCausingSegment, splitPartner, 1); - for (otherSegment$iterator = new ArrayList$1(segments); otherSegment$iterator.i < otherSegment$iterator.this$01.array.length;) { - otherSegment = castTo($next_7(otherSegment$iterator), 112); - if (otherSegment != splitCausingSegment && otherSegment != segment && otherSegment != splitPartner) { - $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, segment); - $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, splitPartner); - } - } -} - -function $useArea(freeAreas, usedAreaIndex, criticalConflictThreshold){ - var insertIndex, newArea1, newArea2, newEnd1, newStart2, oldArea, oldAreaCentre; - oldArea = (checkCriticalElementIndex(usedAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[usedAreaIndex], 329)); - $remove_11(freeAreas, usedAreaIndex); - if (oldArea.size_0 / 2 >= criticalConflictThreshold) { - insertIndex = usedAreaIndex; - oldAreaCentre = (oldArea.startPosition + oldArea.endPosition) / 2; - newEnd1 = oldAreaCentre - criticalConflictThreshold; - if (oldArea.startPosition <= oldAreaCentre - criticalConflictThreshold) { - newArea1 = new HyperEdgeSegmentSplitter$FreeArea(oldArea.startPosition, newEnd1); - $add_2(freeAreas, insertIndex++, newArea1); - } - newStart2 = oldAreaCentre + criticalConflictThreshold; - if (newStart2 <= oldArea.endPosition) { - newArea2 = new HyperEdgeSegmentSplitter$FreeArea(newStart2, oldArea.endPosition); - checkCriticalPositionIndex(insertIndex, freeAreas.array.length); - insertTo(freeAreas.array, insertIndex, newArea2); - } - } -} - -function HyperEdgeSegmentSplitter(routingGenerator){ - this.routingGenerator = routingGenerator; -} - -function center_0(a){ - return (a.startPosition + a.endPosition) / 2; -} - -function lambda$0_29(hes1_0, hes2_1){ - return compare_4(hes1_0.endPosition - hes1_0.startPosition, hes2_1.endPosition - hes2_1.startPosition); -} - -defineClass(1815, 1, {}, HyperEdgeSegmentSplitter); -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter', 1815); -function HyperEdgeSegmentSplitter$AreaRating(){ - this.dependencies = 0; - this.crossings = 0; -} - -defineClass(1816, 1, {}, HyperEdgeSegmentSplitter$AreaRating); -_.crossings = 0; -_.dependencies = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$AreaRating_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/AreaRating', 1816); -function HyperEdgeSegmentSplitter$FreeArea(startPosition, endPosition){ - this.startPosition = startPosition; - this.endPosition = endPosition; - this.size_0 = endPosition - startPosition; -} - -defineClass(329, 1, {329:1}, HyperEdgeSegmentSplitter$FreeArea); -_.endPosition = 0; -_.size_0 = 0; -_.startPosition = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$FreeArea_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/FreeArea', 329); -function HyperEdgeSegmentSplitter$lambda$0$Type(){ -} - -defineClass(1817, 1, $intern_88, HyperEdgeSegmentSplitter$lambda$0$Type); -_.compare_1 = function compare_76(arg0, arg1){ - return lambda$0_29(castTo(arg0, 112), castTo(arg1, 112)); -} -; -_.equals_0 = function equals_163(other){ - return this === other; -} -; -_.reversed = function reversed_68(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$0$Type', 1817); -function HyperEdgeSegmentSplitter$lambda$1$Type($$outer_0, segments_1, freeAreas_2, criticalConflictThreshold_3){ - this.$$outer_0 = $$outer_0; - this.segments_1 = segments_1; - this.freeAreas_2 = freeAreas_2; - this.criticalConflictThreshold_3 = criticalConflictThreshold_3; -} - -defineClass(1818, 1, $intern_19, HyperEdgeSegmentSplitter$lambda$1$Type); -_.accept = function accept_129(arg0){ - $lambda$1_5(this.$$outer_0, this.segments_1, this.freeAreas_2, this.criticalConflictThreshold_3, castTo(arg0, 112)); -} -; -_.criticalConflictThreshold_3 = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$1$Type', 1818); -function HyperEdgeSegmentSplitter$lambda$2$Type(){ -} - -defineClass(1819, 1, {}, HyperEdgeSegmentSplitter$lambda$2$Type); -_.apply_0 = function apply_153(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$2$Type', 1819); -function HyperEdgeSegmentSplitter$lambda$3$Type(){ -} - -defineClass(1820, 1, {}, HyperEdgeSegmentSplitter$lambda$3$Type); -_.apply_0 = function apply_154(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$3$Type', 1820); -function HyperEdgeSegmentSplitter$lambda$4$Type(){ -} - -defineClass(1821, 1, {}, HyperEdgeSegmentSplitter$lambda$4$Type); -_.applyAsDouble = function applyAsDouble_3(arg0){ - return $doubleValue(castToDouble(arg0)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$4$Type', 1821); -function $countConflicts(this$static, posis1, posis2){ - var conflicts, hasMore, iter1, iter2, pos1, pos2; - conflicts = 0; - if (posis1.size_0 != 0 && posis2.size_0 != 0) { - iter1 = $listIterator_2(posis1, 0); - iter2 = $listIterator_2(posis2, 0); - pos1 = $doubleValue(castToDouble($next_10(iter1))); - pos2 = $doubleValue(castToDouble($next_10(iter2))); - hasMore = true; - do { - if (pos1 > pos2 - this$static.criticalConflictThreshold && pos1 < pos2 + this$static.criticalConflictThreshold) { - return -1; - } - else - pos1 > pos2 - this$static.conflictThreshold && pos1 < pos2 + this$static.conflictThreshold && ++conflicts; - pos1 <= pos2 && iter1.currentNode != iter1.this$01.tail?(pos1 = $doubleValue(castToDouble($next_10(iter1)))):pos2 <= pos1 && iter2.currentNode != iter2.this$01.tail?(pos2 = $doubleValue(castToDouble($next_10(iter2)))):(hasMore = false); - } - while (hasMore); - } - return conflicts; -} - -function $createDependencyIfNecessary(this$static, he1, he2){ - var conflicts1, conflicts2, criticalConflictsDetected, criticalDependencyCount, crossings1, crossings2, depValue1, depValue2; - if ($wnd.Math.abs(he1.startPosition - he1.endPosition) < $intern_101 || $wnd.Math.abs(he2.startPosition - he2.endPosition) < $intern_101) { - return 0; - } - conflicts1 = $countConflicts(this$static, he1.outgoingConnectionCoordinates, he2.incomingConnectionCoordinates); - conflicts2 = $countConflicts(this$static, he2.outgoingConnectionCoordinates, he1.incomingConnectionCoordinates); - criticalConflictsDetected = conflicts1 == -1 || conflicts2 == -1; - criticalDependencyCount = 0; - if (criticalConflictsDetected) { - if (conflicts1 == -1) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he2, he1, 1); - ++criticalDependencyCount; - } - if (conflicts2 == -1) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he1, he2, 1); - ++criticalDependencyCount; - } - } - else { - crossings1 = countCrossings(he1.outgoingConnectionCoordinates, he2.startPosition, he2.endPosition); - crossings1 += countCrossings(he2.incomingConnectionCoordinates, he1.startPosition, he1.endPosition); - crossings2 = countCrossings(he2.outgoingConnectionCoordinates, he1.startPosition, he1.endPosition); - crossings2 += countCrossings(he1.incomingConnectionCoordinates, he2.startPosition, he2.endPosition); - depValue1 = conflicts1 + 16 * crossings1; - depValue2 = conflicts2 + 16 * crossings2; - if (depValue1 < depValue2) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, depValue2 - depValue1); - } - else if (depValue1 > depValue2) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he2, he1, depValue1 - depValue2); - } - else if (depValue1 > 0 && depValue2 > 0) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, 0); - new HyperEdgeSegmentDependency(REGULAR, he2, he1, 0); - } - } - return criticalDependencyCount; -} - -function $createHyperEdgeSegments(this$static, nodes, portSide, hyperEdges, portToHyperEdgeSegmentMap){ - var hyperEdge, node, node$iterator, port, port$iterator; - if (nodes) { - for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - for (port$iterator = $getPorts_0(node, ($clinit_PortType() , OUTPUT), portSide).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - hyperEdge = castTo(getEntryValueOrNull($getEntry_0(portToHyperEdgeSegmentMap.hashCodeMap, port)), 112); - if (!hyperEdge) { - hyperEdge = new HyperEdgeSegment(this$static.routingStrategy); - hyperEdges.array[hyperEdges.array.length] = hyperEdge; - $addPortPositions(hyperEdge, port, portToHyperEdgeSegmentMap); - } - } - } - } -} - -function $minimumDifference(numberStream){ - var currentNumber, iter, minDifference, numbers, previousNumber; - numbers = castTo($collect_1($distinct($sorted_0(numberStream)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - minDifference = $intern_98; - if (numbers.size_1() >= 2) { - iter = numbers.iterator_0(); - currentNumber = castToDouble(iter.next_1()); - while (iter.hasNext_0()) { - previousNumber = currentNumber; - currentNumber = castToDouble(iter.next_1()); - minDifference = $wnd.Math.min(minDifference, (checkCriticalNotNull(currentNumber) , currentNumber) - (checkCriticalNotNull(previousNumber) , previousNumber)); - } - } - return minDifference; -} - -function $routeEdges_0(this$static, layeredGraph, sourceLayerNodes, targetLayerNodes, startPos){ - var criticalDependencyCount, edgeSegments, firstIdx, firstSegment, node, node$iterator, portToEdgeSegmentMap, random, rankCount, secondIdx, minIncomingDistance, minOutgoingDistance, cycleDependencies; - portToEdgeSegmentMap = new HashMap; - edgeSegments = new ArrayList; - $createHyperEdgeSegments(this$static, sourceLayerNodes, this$static.routingStrategy.getSourcePortSide(), edgeSegments, portToEdgeSegmentMap); - $createHyperEdgeSegments(this$static, targetLayerNodes, this$static.routingStrategy.getTargetPortSide(), edgeSegments, portToEdgeSegmentMap); - this$static.criticalConflictThreshold = 0.2 * (minIncomingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$0$Type)) , minOutgoingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$1$Type)) , $wnd.Math.min(minIncomingDistance, minOutgoingDistance)); - criticalDependencyCount = 0; - for (firstIdx = 0; firstIdx < edgeSegments.array.length - 1; firstIdx++) { - firstSegment = (checkCriticalElementIndex(firstIdx, edgeSegments.array.length) , castTo(edgeSegments.array[firstIdx], 112)); - for (secondIdx = firstIdx + 1; secondIdx < edgeSegments.array.length; secondIdx++) { - criticalDependencyCount += $createDependencyIfNecessary(this$static, firstSegment, (checkCriticalElementIndex(secondIdx, edgeSegments.array.length) , castTo(edgeSegments.array[secondIdx], 112))); - } - } - random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); - criticalDependencyCount >= 2 && (cycleDependencies = detectCycles(edgeSegments, true, random) , !this$static.segmentSplitter && (this$static.segmentSplitter = new HyperEdgeSegmentSplitter(this$static)) , $splitSegments(this$static.segmentSplitter, cycleDependencies, edgeSegments, this$static.criticalConflictThreshold) , undefined); - breakNonCriticalCycles(edgeSegments, random); - topologicalNumbering(edgeSegments); - rankCount = -1; - for (node$iterator = new ArrayList$1(edgeSegments); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 112); - if ($wnd.Math.abs(node.startPosition - node.endPosition) < $intern_101) { - continue; - } - rankCount = $wnd.Math.max(rankCount, node.routingSlot); - this$static.routingStrategy.calculateBendPoints(node, startPos, this$static.edgeSpacing); - } - this$static.routingStrategy.createdJunctionPoints.map_0.clear_0(); - return rankCount + 1; -} - -function OrthogonalRoutingGenerator(direction, edgeSpacing){ - this.routingStrategy = forRoutingDirection(direction); - this.edgeSpacing = edgeSpacing; - this.conflictThreshold = 0.5 * edgeSpacing; -} - -function breakNonCriticalCycles(edgeSegments, random){ - var cycleDependencies, cycleDependency, cycleDependency$iterator, oldSource, oldTarget; - cycleDependencies = detectCycles(edgeSegments, false, random); - for (cycleDependency$iterator = new ArrayList$1(cycleDependencies); cycleDependency$iterator.i < cycleDependency$iterator.this$01.array.length;) { - cycleDependency = castTo($next_7(cycleDependency$iterator), 129); - cycleDependency.weight == 0?($setSource_1(cycleDependency, null) , $setTarget_1(cycleDependency, null)):(oldSource = cycleDependency.source , oldTarget = cycleDependency.target , $setSource_1(cycleDependency, oldTarget) , $setTarget_1(cycleDependency, oldSource) , undefined); - } -} - -function countCrossings(posis, start_0, end){ - var crossings, pos, pos$iterator; - crossings = 0; - for (pos$iterator = $listIterator_2(posis, 0); pos$iterator.currentNode != pos$iterator.this$01.tail;) { - pos = $doubleValue(castToDouble($next_10(pos$iterator))); - if (pos > end) { - break; - } - else - pos >= start_0 && ++crossings; - } - return crossings; -} - -function topologicalNumbering(segments){ - var dep, dep$iterator, maxRank, node, node$iterator, node$iterator0, rightwardTargets, source, sources, target; - sources = new ArrayList; - rightwardTargets = new ArrayList; - for (node$iterator0 = new ArrayList$1(segments); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 112); - $setInWeight(node, node.incomingSegmentDependencies.array.length); - $setOutWeight(node, node.outgoingSegmentDependencies.array.length); - node.inDepWeight == 0 && (sources.array[sources.array.length] = node , true); - node.outDepWeight == 0 && node.incomingConnectionCoordinates.size_0 == 0 && (rightwardTargets.array[rightwardTargets.array.length] = node , true); - } - maxRank = -1; - while (sources.array.length != 0) { - node = castTo($remove_11(sources, 0), 112); - for (dep$iterator = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 129); - target = dep.target; - $setRoutingSlot_0(target, $wnd.Math.max(target.routingSlot, node.routingSlot + 1)); - maxRank = $wnd.Math.max(maxRank, target.routingSlot); - $setInWeight(target, target.inDepWeight - 1); - target.inDepWeight == 0 && (sources.array[sources.array.length] = target , true); - } - } - if (maxRank > -1) { - for (node$iterator = new ArrayList$1(rightwardTargets); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 112); - node.routingSlot = maxRank; - } - while (rightwardTargets.array.length != 0) { - node = castTo($remove_11(rightwardTargets, 0), 112); - for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 129); - source = dep.source; - if (source.incomingConnectionCoordinates.size_0 > 0) { - continue; - } - $setRoutingSlot_0(source, $wnd.Math.min(source.routingSlot, node.routingSlot - 1)); - $setOutWeight(source, source.outDepWeight - 1); - source.outDepWeight == 0 && (rightwardTargets.array[rightwardTargets.array.length] = source , true); - } - } - } -} - -defineClass(655, 1, {}, OrthogonalRoutingGenerator); -_.conflictThreshold = 0; -_.criticalConflictThreshold = 0; -_.edgeSpacing = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator', 655); -function OrthogonalRoutingGenerator$lambda$0$Type(){ -} - -defineClass(1638, 1, {}, OrthogonalRoutingGenerator$lambda$0$Type); -_.apply_0 = function apply_155(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$0$Type', 1638); -function OrthogonalRoutingGenerator$lambda$1$Type(){ -} - -defineClass(1639, 1, {}, OrthogonalRoutingGenerator$lambda$1$Type); -_.apply_0 = function apply_156(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$1$Type', 1639); -function $addJunctionPointIfNecessary(this$static, edge, segment, pos, vertical){ - var jpoint, junctionPoints, p, pointAtSegmentBoundary, pointInsideEdgeSegment; - p = vertical?pos.y_0:pos.x_0; - if ($contains_6(this$static.createdJunctionPoints, pos)) { - return; - } - pointInsideEdgeSegment = p > segment.startPosition && p < segment.endPosition; - pointAtSegmentBoundary = false; - if (segment.incomingConnectionCoordinates.size_0 != 0 && segment.outgoingConnectionCoordinates.size_0 != 0) { - pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.outgoingConnectionCoordinates)))) < $intern_101); - pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.outgoingConnectionCoordinates)))) < $intern_101); - } - if (pointInsideEdgeSegment || pointAtSegmentBoundary) { - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); - } - jpoint = new KVector_2(pos); - $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); - $add_6(this$static.createdJunctionPoints, jpoint); - } -} - -function BaseRoutingDirectionStrategy(){ - this.createdJunctionPoints = new HashSet; -} - -function forRoutingDirection(direction){ - switch (direction) { - case 0: - return new WestToEastRoutingStrategy; - case 1: - return new NorthToSouthRoutingStrategy; - case 2: - return new SouthToNorthRoutingStrategy; - default:throw toJs(new IllegalArgumentException); - } -} - -defineClass(661, 1, {}); -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_BaseRoutingDirectionStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'BaseRoutingDirectionStrategy', 661); -function NorthToSouthRoutingStrategy(){ - BaseRoutingDirectionStrategy.call(this); -} - -defineClass(1807, 661, {}, NorthToSouthRoutingStrategy); -_.calculateBendPoints = function calculateBendPoints(segment, startPos, edgeSpacing){ - var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; - if (!!segment.splitPartner && !segment.splitBy) { - return; - } - segmentY = startPos + segment.routingSlot * edgeSpacing; - for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge)) { - target = edge.target; - targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; - if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { - currentY = segmentY; - currentSegment = segment; - bend = new KVector_1(sourceX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - splitPartner = segment.splitPartner; - if (splitPartner) { - splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - currentY = startPos + splitPartner.routingSlot * edgeSpacing; - currentSegment = splitPartner; - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - bend = new KVector_1(targetX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - } - } - } -} -; -_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode(port){ - return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; -} -; -_.getSourcePortSide = function getSourcePortSide(){ - return $clinit_PortSide() , SOUTH_2; -} -; -_.getTargetPortSide = function getTargetPortSide(){ - return $clinit_PortSide() , NORTH_3; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_NorthToSouthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'NorthToSouthRoutingStrategy', 1807); -function SouthToNorthRoutingStrategy(){ - BaseRoutingDirectionStrategy.call(this); -} - -defineClass(1808, 661, {}, SouthToNorthRoutingStrategy); -_.calculateBendPoints = function calculateBendPoints_0(segment, startPos, edgeSpacing){ - var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; - if (!!segment.splitPartner && !segment.splitBy) { - return; - } - segmentY = startPos - segment.routingSlot * edgeSpacing; - for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge)) { - target = edge.target; - targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; - if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { - currentY = segmentY; - currentSegment = segment; - bend = new KVector_1(sourceX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - splitPartner = segment.splitPartner; - if (splitPartner) { - splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - currentY = startPos - splitPartner.routingSlot * edgeSpacing; - currentSegment = splitPartner; - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - bend = new KVector_1(targetX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - } - } - } -} -; -_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_0(port){ - return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; -} -; -_.getSourcePortSide = function getSourcePortSide_0(){ - return $clinit_PortSide() , NORTH_3; -} -; -_.getTargetPortSide = function getTargetPortSide_0(){ - return $clinit_PortSide() , SOUTH_2; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_SouthToNorthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'SouthToNorthRoutingStrategy', 1808); -function WestToEastRoutingStrategy(){ - BaseRoutingDirectionStrategy.call(this); -} - -defineClass(1806, 661, {}, WestToEastRoutingStrategy); -_.calculateBendPoints = function calculateBendPoints_1(segment, startPos, edgeSpacing){ - var bend, currentSegment, currentX, edge, edge$iterator, port, port$iterator, segmentX, sourceY, splitPartner, splitY, target, targetY; - if (!!segment.splitPartner && !segment.splitBy) { - return; - } - segmentX = startPos + segment.routingSlot * edgeSpacing; - for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - sourceY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge)) { - target = edge.target; - targetY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).y_0; - if ($wnd.Math.abs(sourceY - targetY) > $intern_101) { - currentX = segmentX; - currentSegment = segment; - bend = new KVector_1(currentX, sourceY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - splitPartner = segment.splitPartner; - if (splitPartner) { - splitY = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); - bend = new KVector_1(currentX, splitY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - currentX = startPos + splitPartner.routingSlot * edgeSpacing; - currentSegment = splitPartner; - bend = new KVector_1(currentX, splitY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - } - bend = new KVector_1(currentX, targetY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - } - } - } - } -} -; -_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_1(port){ - return port.owner.pos.y_0 + port.pos.y_0 + port.anchor.y_0; -} -; -_.getSourcePortSide = function getSourcePortSide_1(){ - return $clinit_PortSide() , EAST_2; -} -; -_.getTargetPortSide = function getTargetPortSide_1(){ - return $clinit_PortSide() , WEST_2; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_WestToEastRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'WestToEastRoutingStrategy', 1806); -function $createUniformKnotVector(this$static, size_0){ - var fraction, i, i0, i1, mySize; - if (size_0 < 2 * this$static.dimNUBS) { - throw toJs(new IllegalArgumentException_0('The knot vector must have at least two time the dimension elements.')); - } - this$static.maxKnot = 1; - for (i0 = 0; i0 < this$static.dimNUBS; i0++) { - $add_3(this$static.knotVector, 0); - } - mySize = size_0 + 1 - 2 * this$static.dimNUBS; - fraction = mySize; - for (i1 = 1; i1 < mySize; i1++) { - $add_3(this$static.knotVector, i1 / fraction); - } - if (this$static.isClamped) { - for (i = 0; i < this$static.dimNUBS; i++) { - $add_3(this$static.knotVector, 1); - } - } -} - -function $getBezierCP(this$static){ - var iter, retVal; - this$static.isBezier || $toBezier(this$static); - retVal = new KVectorChain; - iter = new ArrayList$1(this$static.controlPoints); - $next_7(iter); - while (iter.i < iter.this$01.array.length) { - $add_7(retVal, castTo($next_7(iter), 407).cp); - } - checkCriticalElement(retVal.size_0 != 0); - $removeNode_0(retVal, retVal.tail.prev); - return retVal; -} - -function $getMultiplicity(this$static, knotToCheck){ - var count, currentKnot, diff, iter; - iter = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); - count = 0; - while (iter.i < iter.this$01_0.size_1()) { - currentKnot = $doubleValue((checkCriticalElement(iter.i < iter.this$01_0.size_1()) , castToDouble(iter.this$01_0.get_0(iter.last = iter.i++)))); - diff = currentKnot - knotToCheck; - if (diff > $intern_118) { - return count; - } - else - diff > -1.0E-6 && ++count; - } - return count; -} - -function $insertKnotAtCurrentPosition(this$static, insertions, knotToInsert, iterCP, iterKnot){ - var cp, cp$iterator, firstCP, i, j, j0, j1, multiplicity, newCPs, secondCP; - multiplicity = $getMultiplicity(this$static, knotToInsert); - for (i = 0; i < insertions; i++) { - $add_1(iterKnot, knotToInsert); - newCPs = new ArrayList; - secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); - for (j0 = multiplicity + i; j0 < this$static.dimNUBS; j0++) { - firstCP = secondCP; - secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); - $add_3(newCPs, new NubSpline$PolarCP(firstCP, secondCP, knotToInsert)); - } - for (j1 = multiplicity + i; j1 < this$static.dimNUBS; j1++) { - checkCriticalElement(iterCP.i > 0); - iterCP.this$01.get_0(iterCP.last = --iterCP.i); - j1 > multiplicity + i && $remove_8(iterCP); - } - for (cp$iterator = new ArrayList$1(newCPs); cp$iterator.i < cp$iterator.this$01.array.length;) { - cp = castTo($next_7(cp$iterator), 407); - $add_1(iterCP, cp); - } - if (i < insertions - 1) { - for (j = multiplicity + i; j < this$static.dimNUBS; j++) { - checkCriticalElement(iterCP.i > 0); - iterCP.this$01.get_0(iterCP.last = --iterCP.i); - } - } - } -} - -function $toBezier(this$static){ - var currentKnot, i, iterCP, iterKnot, knotToCount, occurrence; - iterKnot = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); - iterCP = new AbstractList$ListIteratorImpl(this$static.controlPoints, 0); - if (this$static.isClamped) { - for (i = 0; i < this$static.dimNUBS; i++) { - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - } - } - else { - for (i = 0; i < this$static.dimNUBS - 1; i++) { - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - $remove_8(iterKnot); - } - } - currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); - while (this$static.maxKnot - currentKnot > $intern_118) { - knotToCount = currentKnot; - occurrence = 0; - while ($wnd.Math.abs(currentKnot - knotToCount) < $intern_118) { - ++occurrence; - currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); - checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()); - iterCP.this$01_0.get_0(iterCP.last = iterCP.i++); - } - if (occurrence < this$static.dimNUBS) { - checkCriticalElement(iterKnot.i > 0); - iterKnot.this$01.get_0(iterKnot.last = --iterKnot.i); - $insertKnotAtCurrentPosition(this$static, this$static.dimNUBS - occurrence, knotToCount, iterCP, iterKnot); - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - } - checkCriticalElement(iterCP.i > 0); - iterCP.this$01.get_0(iterCP.last = --iterCP.i); - } - if (!this$static.isClamped) { - for (i = 0; i < this$static.dimNUBS - 1; i++) { - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - $remove_8(iterKnot); - } - } - this$static.isClamped = true; - this$static.isBezier = true; -} - -function NubSpline(kVectors){ - var i, i0, kVector, kVector$iterator, knotIter, polarCoordinate; - this.knotVector = new ArrayList; - this.controlPoints = new ArrayList; - for (i0 = kVectors.size_0 - 1; i0 < 3; i0++) { - $add_0(kVectors, 0, castTo($get_7(kVectors, 0), 8)); - } - if (kVectors.size_0 < 4) { - throw toJs(new IllegalArgumentException_0('At (least dimension + 1) control points are necessary!')); - } - else { - this.dimNUBS = 3; - this.isClamped = true; - this.isBezier = false; - $createUniformKnotVector(this, kVectors.size_0 + this.dimNUBS - 1); - polarCoordinate = new ArrayList; - knotIter = new ArrayList$1(this.knotVector); - for (i = 0; i < this.dimNUBS - 1; i++) { - $add_3(polarCoordinate, castToDouble($next_7(knotIter))); - } - for (kVector$iterator = $listIterator_2(kVectors, 0); kVector$iterator.currentNode != kVector$iterator.this$01.tail;) { - kVector = castTo($next_10(kVector$iterator), 8); - $add_3(polarCoordinate, castToDouble($next_7(knotIter))); - $add_3(this.controlPoints, new NubSpline$PolarCP_0(kVector, polarCoordinate)); - checkCriticalElementIndex(0, polarCoordinate.array.length); - polarCoordinate.array.splice(0, 1); - } - } -} - -defineClass(813, 1, {}, NubSpline); -_.toString_0 = function toString_106(){ - return $toString_2(this.controlPoints); -} -; -_.dimNUBS = 0; -_.isBezier = false; -_.isClamped = false; -_.maxKnot = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline', 813); -function $setCp(this$static, cp){ - this$static.cp = cp; -} - -function $setPolarCoordinate(this$static, polarCoordinate){ - this$static.polarCoordinate = polarCoordinate; -} - -function NubSpline$PolarCP(firstCP, secondCP, newKnot){ - var aScaled, bScaled, firstFactor, iter, needsToBeAdded, nextKnot, secondFactor, total; - firstFactor = $doubleValue(castToDouble(firstCP.polarCoordinate.iterator_0().next_1())); - secondFactor = $doubleValue(castToDouble(getLast(secondCP.polarCoordinate))); - aScaled = $scale($clone_0(firstCP.cp), secondFactor - newKnot); - bScaled = $scale($clone_0(secondCP.cp), newKnot - firstFactor); - total = $add_19(aScaled, bScaled); - $scale(total, 1 / (secondFactor - firstFactor)); - this.cp = total; - this.polarCoordinate = new ArrayList; - needsToBeAdded = true; - iter = firstCP.polarCoordinate.iterator_0(); - iter.next_1(); - while (iter.hasNext_0()) { - nextKnot = $doubleValue(castToDouble(iter.next_1())); - if (needsToBeAdded && nextKnot - newKnot > $intern_118) { - this.polarCoordinate.add_2(newKnot); - needsToBeAdded = false; - } - this.polarCoordinate.add_2(nextKnot); - } - needsToBeAdded && this.polarCoordinate.add_2(newKnot); -} - -function NubSpline$PolarCP_0(controlPoint, polarCoordinate){ - $setCp(this, new KVector_1(controlPoint.x_0, controlPoint.y_0)); - $setPolarCoordinate(this, newLinkedList(polarCoordinate)); -} - -defineClass(407, 1, {407:1}, NubSpline$PolarCP, NubSpline$PolarCP_0); -var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline$PolarCP_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline/PolarCP', 407); -function $clinit_SplineEdgeRouter(){ - $clinit_SplineEdgeRouter = emptyMethod; - BASELINE_PROCESSING_ADDITIONS = $addBefore($addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , FINAL_SPLINE_BENDPOINTS_CALCULATOR)), P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); - SELF_LOOP_PROCESSING_ADDITIONS_1 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); - CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); - NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1 = $addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); - END_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); -} - -function $clearThenFillMappings(this$static, leftLayer, rightLayer){ - var edge, edge$iterator, node, node$iterator, nt, port, port$iterator, sourcePort, sourcePort$iterator, targetLayer, targetPort; - this$static.leftPortsLayer.map_0.clear_0(); - this$static.rightPortsLayer.map_0.clear_0(); - this$static.edgesRemainingLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.splineSegmentsLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.selfLoopsLayer.map_0.clear_0(); - if (leftLayer) { - for (node$iterator = new ArrayList$1(leftLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { - sourcePort = castTo(sourcePort$iterator.next_1(), 11); - $add_6(this$static.leftPortsLayer, sourcePort); - for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if ($isSelfLoop(edge)) { - continue; - } - $add_3(this$static.edgesRemainingLayer, edge); - $findAndAddSuccessor(this$static, edge); - nt = edge.source.owner.type_0; - (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); - targetPort = edge.target; - targetLayer = targetPort.owner.layer; - targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); - } - } - } - } - if (rightLayer) { - for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $isSelfLoop(edge) && $add_6(this$static.selfLoopsLayer, edge); - } - } - for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { - sourcePort = castTo(sourcePort$iterator.next_1(), 11); - $add_6(this$static.rightPortsLayer, sourcePort); - for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if ($isSelfLoop(edge)) { - continue; - } - $add_3(this$static.edgesRemainingLayer, edge); - $findAndAddSuccessor(this$static, edge); - nt = edge.source.owner.type_0; - (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); - targetPort = edge.target; - targetLayer = targetPort.owner.layer; - targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); - } - } - } - } -} - -function $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor){ - var incomingEdge, incomingEdge$iterator, layerSpacing, maxCurrInputYDiff, maxVertDiff, node, node$iterator, sourcePos, targetPos; - maxVertDiff = 0; - for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - maxCurrInputYDiff = 0; - for (incomingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incomingEdge$iterator);) { - incomingEdge = castTo($next_0(incomingEdge$iterator), 17); - sourcePos = $getAbsoluteAnchor(incomingEdge.source).y_0; - targetPos = $getAbsoluteAnchor(incomingEdge.target).y_0; - maxCurrInputYDiff = $wnd.Math.max(maxCurrInputYDiff, $wnd.Math.abs(targetPos - sourcePos)); - } - maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrInputYDiff); - } - layerSpacing = sloppyLayerSpacingFactor * $wnd.Math.min(1, edgeEdgeSpacing / nodeNodeSpacing) * maxVertDiff; - return layerSpacing; -} - -function $createDependency(edge0, edge1){ - var edge0Counter, edge1Counter, port, port$iterator, port$iterator0, port$iterator1, port$iterator2; - if (edge0.hyperEdgeTopYPos > edge1.hyperEdgeBottomYPos || edge1.hyperEdgeTopYPos > edge0.hyperEdgeBottomYPos) { - return; - } - edge0Counter = 0; - edge1Counter = 0; - for (port$iterator0 = edge0.rightPorts.map_0.keySet_0().iterator_0(); port$iterator0.hasNext_0();) { - port = castTo(port$iterator0.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && ++edge0Counter; - } - for (port$iterator1 = edge0.leftPorts.map_0.keySet_0().iterator_0(); port$iterator1.hasNext_0();) { - port = castTo(port$iterator1.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && --edge0Counter; - } - for (port$iterator2 = edge1.rightPorts.map_0.keySet_0().iterator_0(); port$iterator2.hasNext_0();) { - port = castTo(port$iterator2.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && ++edge1Counter; - } - for (port$iterator = edge1.leftPorts.map_0.keySet_0().iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && --edge1Counter; - } - if (edge0Counter < edge1Counter) { - new SplineEdgeRouter$Dependency(edge0, edge1, edge1Counter - edge0Counter); - } - else if (edge1Counter < edge0Counter) { - new SplineEdgeRouter$Dependency(edge1, edge0, edge0Counter - edge1Counter); - } - else { - new SplineEdgeRouter$Dependency(edge1, edge0, 0); - new SplineEdgeRouter$Dependency(edge0, edge1, 0); - } -} - -function $createSegmentsAndComputeRanking(this$static){ - var hyperEdge1, hyperEdge2, sourceIter, targetIter; - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4), true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, LEFT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegments(this$static, this$static.edgesRemainingLayer, this$static.leftPortsLayer, this$static.rightPortsLayer, this$static.splineSegmentsLayer); - sourceIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, 0); - while (sourceIter.i < sourceIter.this$01_0.size_1()) { - hyperEdge1 = (checkCriticalElement(sourceIter.i < sourceIter.this$01_0.size_1()) , castTo(sourceIter.this$01_0.get_0(sourceIter.last = sourceIter.i++), 128)); - targetIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, sourceIter.i); - while (targetIter.i < targetIter.this$01_0.size_1()) { - hyperEdge2 = (checkCriticalElement(targetIter.i < targetIter.this$01_0.size_1()) , castTo(targetIter.this$01_0.get_0(targetIter.last = targetIter.i++), 128)); - $createDependency(hyperEdge1, hyperEdge2); - } - } - breakCycles(this$static.splineSegmentsLayer, castTo($getProperty(this$static.lGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230)); - topologicalNumbering_0(this$static.splineSegmentsLayer); -} - -function $createSplineSegments(this$static, edges, leftPorts, rightPorts, hyperEdges){ - var edge, edge$iterator, seg, sourcePort, sourceSide, targetPort, targetSide; - for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - sourcePort = edge.source; - if (leftPorts.map_0.containsKey(sourcePort)) { - sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); - } - else if (rightPorts.map_0.containsKey(sourcePort)) { - sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); - } - else { - throw toJs(new IllegalArgumentException_0('Source port must be in one of the port sets.')); - } - targetPort = edge.target; - if (leftPorts.map_0.containsKey(targetPort)) { - targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); - } - else if (rightPorts.map_0.containsKey(targetPort)) { - targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); - } - else { - throw toJs(new IllegalArgumentException_0('Target port must be in one of the port sets.')); - } - seg = new SplineSegment(edge, sourceSide, targetSide); - $put_6(this$static.edgeToSegmentMap, edge, seg); - hyperEdges.array[hyperEdges.array.length] = seg; - } -} - -function $createSplineSegmentsForHyperEdges(this$static, leftPorts, rightPorts, sideToProcess, reversed, edgesRemaining, hyperEdges){ - var downEdges, edge, edge$iterator, pair, pair$iterator, portsToProcess, seg, singlePort, singlePort$iterator, singlePortPosition, targetPort, targetPortPosition, upEdges; - portsToProcess = null; - sideToProcess == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?(portsToProcess = leftPorts):sideToProcess == RIGHT_4 && (portsToProcess = rightPorts); - for (singlePort$iterator = portsToProcess.map_0.keySet_0().iterator_0(); singlePort$iterator.hasNext_0();) { - singlePort = castTo(singlePort$iterator.next_1(), 11); - singlePortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; - upEdges = new HashSet; - downEdges = new HashSet; - for (edge$iterator = new LPort$CombineIter$1(singlePort.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) != reversed) { - continue; - } - if ($indexOf_3(edgesRemaining, edge, 0) != -1) { - edge.target == singlePort?(targetPort = edge.source):(targetPort = edge.target); - targetPortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; - if ($wnd.Math.abs(targetPortPosition - singlePortPosition) < 0.2) { - continue; - } - targetPortPosition < singlePortPosition?leftPorts.map_0.containsKey(targetPort)?$add_6(upEdges, new Pair(LEFT_4, edge)):$add_6(upEdges, new Pair(RIGHT_4, edge)):leftPorts.map_0.containsKey(targetPort)?$add_6(downEdges, new Pair(LEFT_4, edge)):$add_6(downEdges, new Pair(RIGHT_4, edge)); - } - } - if (upEdges.map_0.size_1() > 1) { - seg = new SplineSegment_0(singlePort, upEdges, sideToProcess); - $forEach_0(upEdges, new SplineEdgeRouter$lambda$2$Type(this$static, seg)); - hyperEdges.array[hyperEdges.array.length] = seg; - for (pair$iterator = upEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $remove_12(edgesRemaining, pair.second); - } - } - if (downEdges.map_0.size_1() > 1) { - seg = new SplineSegment_0(singlePort, downEdges, sideToProcess); - $forEach_0(downEdges, new SplineEdgeRouter$lambda$3$Type(this$static, seg)); - hyperEdges.array[hyperEdges.array.length] = seg; - for (pair$iterator = downEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $remove_12(edgesRemaining, pair.second); - } - } - } -} - -function $findAndAddSuccessor(this$static, edge){ - var iter, nt, targetNode; - targetNode = edge.target.owner; - nt = targetNode.type_0; - if (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == BREAKING_POINT) { - return; - } - iter = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(targetNode).val$inputs1.iterator_0(), new Iterables$10)); - $hasNext_1(iter) && $put_6(this$static.successingEdge, edge, castTo($next_0(iter), 17)); -} - -function $getEdgeChain(this$static, start_0){ - var current, edgeChain; - edgeChain = new ArrayList; - current = start_0; - do { - edgeChain.array[edgeChain.array.length] = current; - current = castTo($get_10(this$static.successingEdge, current), 17); - } - while (current); - return edgeChain; -} - -function $getLayoutProcessorConfiguration_2(graph){ - var configuration, graphProperties; - configuration = new LayoutProcessorConfiguration; - $addAll_6(configuration, BASELINE_PROCESSING_ADDITIONS); - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - graphProperties.contains(($clinit_GraphProperties() , SELF_LOOPS)) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_1); - graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1); - graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1); - graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_1); - return configuration; -} - -function $getSplinePath(this$static, start_0){ - var current, initialSegment, lastSegment, segment, segmentChain; - segmentChain = new ArrayList; - current = start_0; - do { - segment = castTo($get_10(this$static.edgeToSegmentMap, current), 128); - segment.sourcePort = current.source; - segment.targetPort = current.target; - segmentChain.array[segmentChain.array.length] = segment; - current = castTo($get_10(this$static.successingEdge, current), 17); - } - while (current); - initialSegment = (checkCriticalElementIndex(0, segmentChain.array.length) , castTo(segmentChain.array[0], 128)); - initialSegment.initialSegment = true; - initialSegment.sourceNode = castTo(initialSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).source.owner; - lastSegment = castTo($get_11(segmentChain, segmentChain.array.length - 1), 128); - lastSegment.lastSegment = true; - lastSegment.targetNode = castTo(lastSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).target.owner; - return segmentChain; -} - -function $lambda$2_3(this$static, seg_1, e_1){ - return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); -} - -function $lambda$3_2(this$static, seg_1, e_1){ - return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); -} - -function $process_78(this$static, layeredGraph, monitor){ - var edge, edge$iterator, edgeChain, edgeEdgeSpacing, edgeNodeSpacing, firstLayer, increment, isLeftLayerExternal, isRightLayerExternal, isSpecialLeftLayer, isSpecialRightLayer, lastLayer, layerIterator, leftLayer, mode, nodeNodeSpacing, rightLayer, rightLayerPosition, segment, segment$iterator, sloppyLayerSpacingFactor, sloppyRouting, slotCount, spline, xSegmentDelta, xpos; - $begin(monitor, 'Spline edge routing', 1); - if (layeredGraph.layers.array.length == 0) { - layeredGraph.size_0.x_0 = 0; - $done_0(monitor); - return; - } - nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); - mode = castTo($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_MODE_0), 336); - sloppyRouting = mode == ($clinit_SplineRoutingMode() , SLOPPY); - sloppyLayerSpacingFactor = $doubleValue(castToDouble($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0))); - this$static.lGraph = layeredGraph; - this$static.startEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.allSplineSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $reset(this$static.successingEdge); - firstLayer = castTo($get_11(layeredGraph.layers, 0), 29); - isLeftLayerExternal = all_0(firstLayer.nodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); - lastLayer = castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29); - isRightLayerExternal = all_0(lastLayer.nodes, PRED_EXTERNAL_WEST_OR_EAST_PORT); - layerIterator = new ArrayList$1(layeredGraph.layers); - leftLayer = null; - xpos = 0; - do { - rightLayer = layerIterator.i < layerIterator.this$01.array.length?castTo($next_7(layerIterator), 29):null; - $clearThenFillMappings(this$static, leftLayer, rightLayer); - $createSegmentsAndComputeRanking(this$static); - slotCount = $orElse_1($max_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.splineSegmentsLayer, 16)), new SplineEdgeRouter$lambda$0$Type), new SplineEdgeRouter$lambda$1$Type))); - xSegmentDelta = 0; - rightLayerPosition = xpos; - isSpecialLeftLayer = !leftLayer || isLeftLayerExternal && leftLayer == firstLayer; - isSpecialRightLayer = !rightLayer || isRightLayerExternal && rightLayer == lastLayer; - if (slotCount > 0) { - increment = 0; - !!leftLayer && (increment += edgeNodeSpacing); - increment += (slotCount - 1) * edgeEdgeSpacing; - !!rightLayer && (increment += edgeNodeSpacing); - sloppyRouting && !!rightLayer && (increment = $wnd.Math.max(increment, $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor))); - if (increment < nodeNodeSpacing && !isSpecialLeftLayer && !isSpecialRightLayer) { - xSegmentDelta = (nodeNodeSpacing - increment) / 2; - increment = nodeNodeSpacing; - } - rightLayerPosition += increment; - } - else - !isSpecialLeftLayer && !isSpecialRightLayer && (rightLayerPosition += nodeNodeSpacing); - !!rightLayer && placeNodesHorizontally(rightLayer, rightLayerPosition); - for (segment$iterator = new ArrayList$1(this$static.splineSegmentsLayer); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 128); - segment.boundingBox.x_0 = xpos; - segment.boundingBox.width_0 = rightLayerPosition - xpos; - segment.xDelta = xSegmentDelta; - segment.isWestOfInitialLayer = !leftLayer; - } - $addAll_2(this$static.allSplineSegments, this$static.splineSegmentsLayer); - xpos = rightLayerPosition; - !!rightLayer && (xpos += rightLayer.size_0.x_0); - leftLayer = rightLayer; - isSpecialLeftLayer = isSpecialRightLayer; - } - while (rightLayer); - for (edge$iterator = new ArrayList$1(this$static.startEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - edgeChain = $getEdgeChain(this$static, edge); - $setProperty_0(edge, ($clinit_InternalProperties_1() , SPLINE_EDGE_CHAIN), edgeChain); - spline = $getSplinePath(this$static, edge); - $setProperty_0(edge, SPLINE_ROUTE_START, spline); - } - layeredGraph.size_0.x_0 = xpos; - this$static.lGraph = null; - $done_0(monitor); -} - -function SplineEdgeRouter(){ - $clinit_SplineEdgeRouter(); - this.edgesRemainingLayer = new ArrayList; - this.splineSegmentsLayer = new ArrayList; - this.leftPortsLayer = new LinkedHashSet; - this.rightPortsLayer = new LinkedHashSet; - this.selfLoopsLayer = new LinkedHashSet; - this.startEdges = new ArrayList; - this.allSplineSegments = new ArrayList; - this.edgeToSegmentMap = new HashMap; - this.successingEdge = new HashMap; -} - -function breakCycles(edges, random){ - var depIter, dependency, dependency$iterator, dependency$iterator0, edge, edge$iterator, edge$iterator0, edge$iterator1, inweight, markBase, maxEdge, maxEdges, maxOutflow, nextLeft, nextMark, nextRight, outflow, outweight, shiftBase, sink, sinks, source, source$iterator, sources, target, unprocessed; - sources = new LinkedList; - sinks = new LinkedList; - nextMark = -1; - for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 128); - edge.mark = nextMark--; - inweight = 0; - outweight = 0; - for (dependency$iterator0 = new ArrayList$1(edge.outgoing); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator0), 268); - outweight += dependency.weight; - } - for (dependency$iterator = new ArrayList$1(edge.incoming); dependency$iterator.i < dependency$iterator.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator), 268); - inweight += dependency.weight; - } - edge.inweight = inweight; - edge.outweight = outweight; - outweight == 0?($addNode_0(sinks, edge, sinks.tail.prev, sinks.tail) , true):inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); - } - unprocessed = newLinkedHashSet(edges); - markBase = edges.array.length; - nextLeft = markBase + 1; - nextRight = markBase - 1; - maxEdges = new ArrayList; - while (unprocessed.map_0.size_1() != 0) { - while (sinks.size_0 != 0) { - sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 128)); - unprocessed.map_0.remove_0(sink) != null; - sink.mark = nextRight--; - updateNeighbors_0(sink, sources, sinks); - } - while (sources.size_0 != 0) { - source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 128)); - unprocessed.map_0.remove_0(source) != null; - source.mark = nextLeft++; - updateNeighbors_0(source, sources, sinks); - } - maxOutflow = $intern_42; - for (edge$iterator1 = unprocessed.map_0.keySet_0().iterator_0(); edge$iterator1.hasNext_0();) { - edge = castTo(edge$iterator1.next_1(), 128); - outflow = edge.outweight - edge.inweight; - if (outflow >= maxOutflow) { - if (outflow > maxOutflow) { - maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxOutflow = outflow; - } - maxEdges.array[maxEdges.array.length] = edge; - } - } - if (maxEdges.array.length != 0) { - maxEdge = castTo($get_11(maxEdges, $nextInt(random, maxEdges.array.length)), 128); - unprocessed.map_0.remove_0(maxEdge) != null; - maxEdge.mark = nextLeft++; - updateNeighbors_0(maxEdge, sources, sinks); - maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - } - shiftBase = edges.array.length + 1; - for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 128); - edge.mark < markBase && (edge.mark += shiftBase); - } - for (source$iterator = new ArrayList$1(edges); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 128); - depIter = new AbstractList$ListIteratorImpl(source.outgoing, 0); - while (depIter.i < depIter.this$01_0.size_1()) { - dependency = (checkCriticalElement(depIter.i < depIter.this$01_0.size_1()) , castTo(depIter.this$01_0.get_0(depIter.last = depIter.i++), 268)); - target = dependency.target; - if (source.mark > target.mark) { - $remove_8(depIter); - $remove_12(target.incoming, dependency); - if (dependency.weight > 0) { - dependency.source = target; - $add_3(target.outgoing, dependency); - dependency.target = source; - $add_3(source.incoming, dependency); - } - } - } - } -} - -function topologicalNumbering_0(edges){ - var dep, dep$iterator, edge, edge$iterator, edge$iterator0, maxRank, rightwardTargets, source, sources, target; - sources = new LinkedList; - rightwardTargets = new LinkedList; - for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 128); - edge.rank = 0; - edge.inweight = edge.incoming.array.length; - edge.outweight = edge.outgoing.array.length; - edge.inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); - edge.outweight == 0 && edge.leftPorts.map_0.size_1() == 0 && ($addNode_0(rightwardTargets, edge, rightwardTargets.tail.prev, rightwardTargets.tail) , true); - } - maxRank = -1; - while (sources.size_0 != 0) { - edge = castTo($remove_4(sources, 0), 128); - for (dep$iterator = new ArrayList$1(edge.outgoing); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 268); - target = dep.target; - target.rank = $wnd.Math.max(target.rank, edge.rank + 1); - maxRank = $wnd.Math.max(maxRank, target.rank); - --target.inweight; - target.inweight == 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); - } - } - if (maxRank > -1) { - for (edge$iterator = $listIterator_2(rightwardTargets, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { - edge = castTo($next_10(edge$iterator), 128); - edge.rank = maxRank; - } - while (rightwardTargets.size_0 != 0) { - edge = castTo($remove_4(rightwardTargets, 0), 128); - for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 268); - source = dep.source; - if (source.leftPorts.map_0.size_1() != 0) { - continue; - } - source.rank = $wnd.Math.min(source.rank, edge.rank - 1); - --source.outweight; - source.outweight == 0 && ($addNode_0(rightwardTargets, source, rightwardTargets.tail.prev, rightwardTargets.tail) , true); - } - } - } -} - -function updateNeighbors_0(edge, sources, sinks){ - var dep, dep$iterator, dep$iterator0; - for (dep$iterator0 = new ArrayList$1(edge.outgoing); dep$iterator0.i < dep$iterator0.this$01.array.length;) { - dep = castTo($next_7(dep$iterator0), 268); - if (dep.target.mark < 0 && dep.weight > 0) { - dep.target.inweight -= dep.weight; - dep.target.inweight <= 0 && dep.target.outweight > 0 && $add_7(sources, dep.target); - } - } - for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 268); - if (dep.source.mark < 0 && dep.weight > 0) { - dep.source.outweight -= dep.weight; - dep.source.outweight <= 0 && dep.source.inweight > 0 && $add_7(sinks, dep.source); - } - } -} - -defineClass(1453, 1, $intern_113, SplineEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_19(graph){ - return $getLayoutProcessorConfiguration_2(castTo(graph, 37)); -} -; -_.process = function process_74(layeredGraph, monitor){ - $process_78(this, castTo(layeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSING_ADDITIONS, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1, END_EDGE_LABEL_PROCESSING_ADDITIONS_1, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1, SELF_LOOP_PROCESSING_ADDITIONS_1; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter', 1453); -function SplineEdgeRouter$Dependency(source, target, weight){ - this.source = source; - this.target = target; - this.weight = weight; - $add_3(source.outgoing, this); - $add_3(target.incoming, this); -} - -defineClass(268, 1, {268:1}, SplineEdgeRouter$Dependency); -_.toString_0 = function toString_107(){ - return this.source + ' ->(' + this.weight + ') ' + this.target; -} -; -_.weight = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$Dependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/Dependency', 268); -function $clinit_SplineEdgeRouter$SideToProcess(){ - $clinit_SplineEdgeRouter$SideToProcess = emptyMethod; - LEFT_4 = new SplineEdgeRouter$SideToProcess('LEFT', 0); - RIGHT_4 = new SplineEdgeRouter$SideToProcess('RIGHT', 1); -} - -function SplineEdgeRouter$SideToProcess(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_72(name_0){ - $clinit_SplineEdgeRouter$SideToProcess(); - return valueOf(($clinit_SplineEdgeRouter$SideToProcess$Map() , $MAP_60), name_0); -} - -function values_78(){ - $clinit_SplineEdgeRouter$SideToProcess(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]); -} - -defineClass(455, 22, {3:1, 35:1, 22:1, 455:1}, SplineEdgeRouter$SideToProcess); -var LEFT_4, RIGHT_4; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/SideToProcess', 455, Ljava_lang_Enum_2_classLit, values_78, valueOf_72); -function $clinit_SplineEdgeRouter$SideToProcess$Map(){ - $clinit_SplineEdgeRouter$SideToProcess$Map = emptyMethod; - $MAP_60 = createValueOfMap(($clinit_SplineEdgeRouter$SideToProcess() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]))); -} - -var $MAP_60; -function SplineEdgeRouter$lambda$0$Type(){ -} - -defineClass(1454, 1, $intern_39, SplineEdgeRouter$lambda$0$Type); -_.test_0 = function test_105(arg0){ - return $clinit_SplineEdgeRouter() , !castTo(arg0, 128).isStraight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$0$Type', 1454); -function SplineEdgeRouter$lambda$1$Type(){ -} - -defineClass(1455, 1, {}, SplineEdgeRouter$lambda$1$Type); -_.applyAsInt = function applyAsInt_3(arg0){ - return $clinit_SplineEdgeRouter() , castTo(arg0, 128).rank + 1; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$1$Type', 1455); -function SplineEdgeRouter$lambda$2$Type($$outer_0, seg_1){ - this.$$outer_0 = $$outer_0; - this.seg_1 = seg_1; -} - -defineClass(1456, 1, $intern_19, SplineEdgeRouter$lambda$2$Type); -_.accept = function accept_130(arg0){ - $lambda$2_3(this.$$outer_0, this.seg_1, castTo(arg0, 46)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$2$Type', 1456); -function SplineEdgeRouter$lambda$3$Type($$outer_0, seg_1){ - this.$$outer_0 = $$outer_0; - this.seg_1 = seg_1; -} - -defineClass(1457, 1, $intern_19, SplineEdgeRouter$lambda$3$Type); -_.accept = function accept_131(arg0){ - $lambda$3_2(this.$$outer_0, this.seg_1, castTo(arg0, 46)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$3$Type', 1457); -function $$init_8(this$static){ - this$static.leftPorts = new HashSet; - this$static.rightPorts = new HashSet; - this$static.outgoing = new ArrayList; - this$static.incoming = new ArrayList; - this$static.edges = new HashSet; - this$static.boundingBox = new ElkRectangle; - this$static.edgeInformation = new HashMap; -} - -function $addEdge_0(this$static, edge){ - var ei, nt, nt0; - $add_6(this$static.edges, edge); - ei = new SplineSegment$EdgeInformation; - $put_6(this$static.edgeInformation, edge, ei); - ei.startY = $anchorY(edge.source); - ei.endY = $anchorY(edge.target); - ei.normalSourceNode = ($clinit_SplineEdgeRouter() , nt0 = edge.source.owner.type_0 , nt0 == ($clinit_LNode$NodeType() , NORMAL) || nt0 == BREAKING_POINT); - ei.normalTargetNode = (nt = edge.target.owner.type_0 , nt == NORMAL || nt == BREAKING_POINT); - ei.invertedLeft = edge.source.side == ($clinit_PortSide() , WEST_2); - ei.invertedRight = edge.target.side == EAST_2; -} - -function $anchorY(p){ - return ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(p.side)?$doubleValue(castToDouble($getProperty(p, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [p.owner.pos, p.pos, p.anchor])).y_0; -} - -function $compareTo_18(this$static, other){ - return this$static.mark - other.mark; -} - -function $setRelevantPositions(this$static, sourceY, targetYMin, targetYMax){ - this$static.boundingBox.y_0 = $wnd.Math.min(sourceY, targetYMin); - this$static.boundingBox.height = $wnd.Math.max(sourceY, targetYMax) - this$static.boundingBox.y_0; - if (sourceY < targetYMin) { - this$static.centerControlPointY = 0.5 * (sourceY + targetYMin); - this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; - this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMin; - } - else { - this$static.centerControlPointY = 0.5 * (sourceY + targetYMax); - this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMax; - this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; - } -} - -function SplineSegment(edge, sourceSide, targetSide){ - var sourceY, targetY; - $$init_8(this); - sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, edge.source):$add_6(this.rightPorts, edge.source); - targetSide == LEFT_4?$add_6(this.leftPorts, edge.target):$add_6(this.rightPorts, edge.target); - $addEdge_0(this, edge); - sourceY = $anchorY(edge.source); - targetY = $anchorY(edge.target); - $setRelevantPositions(this, sourceY, targetY, targetY); - this.isStraight = ($clinit_SplineEdgeRouter() , $wnd.Math.abs(sourceY - targetY) < 0.2); -} - -function SplineSegment_0(singlePort, edges, sourceSide){ - var edge, pair, pair$iterator, pair$iterator0, side, tgtPort, yMaxPosOfTarget, yMinPosOfTarget, yPosOfSingleSide, yPosOfTarget; - $$init_8(this); - sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, singlePort):$add_6(this.rightPorts, singlePort); - yMinPosOfTarget = $intern_59; - yMaxPosOfTarget = $intern_60; - for (pair$iterator0 = edges.map_0.keySet_0().iterator_0(); pair$iterator0.hasNext_0();) { - pair = castTo(pair$iterator0.next_1(), 46); - side = castTo(pair.first, 455); - edge = castTo(pair.second, 17); - tgtPort = edge.source; - tgtPort == singlePort && (tgtPort = edge.target); - side == LEFT_4?$add_6(this.leftPorts, tgtPort):$add_6(this.rightPorts, tgtPort); - yPosOfTarget = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(tgtPort.side)?$doubleValue(castToDouble($getProperty(tgtPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [tgtPort.owner.pos, tgtPort.pos, tgtPort.anchor])).y_0; - yMinPosOfTarget = $wnd.Math.min(yMinPosOfTarget, yPosOfTarget); - yMaxPosOfTarget = $wnd.Math.max(yMaxPosOfTarget, yPosOfTarget); - } - yPosOfSingleSide = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(singlePort.side)?$doubleValue(castToDouble($getProperty(singlePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; - $setRelevantPositions(this, yPosOfSingleSide, yMinPosOfTarget, yMaxPosOfTarget); - for (pair$iterator = edges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $addEdge_0(this, castTo(pair.second, 17)); - } - this.isStraight = false; -} - -defineClass(128, 1, {35:1, 128:1}, SplineSegment, SplineSegment_0); -_.compareTo_0 = function compareTo_19(other){ - return $compareTo_18(this, castTo(other, 128)); -} -; -_.centerControlPointY = 0; -_.handled = false; -_.hyperEdgeBottomYPos = 0; -_.hyperEdgeTopYPos = 0; -_.initialSegment = false; -_.inverseOrder = false; -_.inweight = 0; -_.isStraight = false; -_.isWestOfInitialLayer = false; -_.lastSegment = false; -_.mark = 0; -_.outweight = 0; -_.rank = 0; -_.xDelta = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment', 128); -function SplineSegment$EdgeInformation(){ -} - -defineClass(459, 1, {459:1}, SplineSegment$EdgeInformation); -_.endY = 0; -_.invertedLeft = false; -_.invertedRight = false; -_.normalSourceNode = false; -_.normalTargetNode = false; -_.startY = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment$EdgeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment/EdgeInformation', 459); -function isBetween(value_0, boundary0, boundary1){ - if ($wnd.Math.abs(boundary0 - value_0) < $intern_120 || $wnd.Math.abs(boundary1 - value_0) < $intern_120) { - return true; - } - return boundary0 - value_0 > $intern_120?value_0 - boundary1 > $intern_120:boundary1 - value_0 > $intern_120; -} - -function portSideToDirection(side){ - switch (side.ordinal) { - case 1: - return $intern_121; - default:case 2: - return 0; - case 3: - return $intern_97; - case 4: - return $intern_122; - } -} - -function $dfs_5(this$static, node, graph){ - var component, edge, edge$iterator; - if (!this$static.visited[node.id_0]) { - this$static.visited[node.id_0] = true; - component = graph; - !component && (component = new TGraph); - $add_7(component.nodes, node); - for (edge$iterator = this$static.incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 188); - edge.source != node && $dfs_5(this$static, edge.source, component); - edge.target != node && $dfs_5(this$static, edge.target, component); - $add_7(component.edges, edge); - } - return component; - } - return null; -} - -function $initialize_6(this$static, graph){ - var edge, edge$iterator, n, node, node$iterator; - n = graph.nodes.size_0; - this$static.incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); - this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, n, 16, 1); - for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - this$static.incidence[node.id_0] = new LinkedList; - } - for (edge$iterator = $listIterator_2(graph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { - edge = castTo($next_10(edge$iterator), 188); - this$static.incidence[edge.source.id_0].add_2(edge); - this$static.incidence[edge.target.id_0].add_2(edge); - } -} - -function $moveGraph_1(destGraph, sourceGraph, offsetx, offsety){ - var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, node, node$iterator; - graphOffset = new KVector_1(offsetx, offsety); - $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_2() , BB_UPLEFT_0)), 8)); - for (node$iterator = $listIterator_2(sourceGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - $add_19(node.pos, graphOffset); - $add_7(destGraph.nodes, node); - } - for (edge$iterator = $listIterator_2(sourceGraph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { - edge = castTo($next_10(edge$iterator), 188); - for (bendpoint$iterator = $listIterator_2(edge.bendPoints, 0); bendpoint$iterator.currentNode != bendpoint$iterator.this$01.tail;) { - bendpoint = castTo($next_10(bendpoint$iterator), 8); - $add_19(bendpoint, graphOffset); - } - $add_7(destGraph.edges, edge); - } -} - -function $pack(components){ - var broadestRow, debug, debugMode, entry, entry$iterator, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, propComp, propMerge, result, size_0, spacing, tGraph, tGraph$iterator, totalArea, xpos, ypos; - if (components.array.length == 1) { - return checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 135); - } - else if (components.array.length <= 0) { - return new TGraph; - } - for (graph$iterator0 = new ArrayList$1(components); graph$iterator0.i < graph$iterator0.this$01.array.length;) { - graph = castTo($next_7(graph$iterator0), 135); - priority = 0; - minx = $intern_0; - miny = $intern_0; - maxx = $intern_42; - maxy = $intern_42; - for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - priority += castTo($getProperty(node, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0; - minx = $wnd.Math.min(minx, node.pos.x_0); - miny = $wnd.Math.min(miny, node.pos.y_0); - maxx = $wnd.Math.max(maxx, node.pos.x_0 + node.size_0.x_0); - maxy = $wnd.Math.max(maxy, node.pos.y_0 + node.size_0.y_0); - } - $setProperty_0(graph, ($clinit_MrTreeOptions() , PRIORITY_1), valueOf_4(priority)); - $setProperty_0(graph, ($clinit_InternalProperties_2() , BB_UPLEFT_0), new KVector_1(minx, miny)); - $setProperty_0(graph, BB_LOWRIGHT_0, new KVector_1(maxx, maxy)); - } - $clinit_Collections(); - $sort(components, new ComponentsProcessor$1_0); - result = new TGraph; - $copyProperties(result, (checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 94))); - maxRowWidth = 0; - totalArea = 0; - for (graph$iterator1 = new ArrayList$1(components); graph$iterator1.i < graph$iterator1.this$01.array.length;) { - graph = castTo($next_7(graph$iterator1), 135); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); - maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); - totalArea += size_0.x_0 * size_0.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_MrTreeOptions() , ASPECT_RATIO_2))))); - spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE_1))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = spacing; - for (graph$iterator = new ArrayList$1(components); graph$iterator.i < graph$iterator.this$01.array.length;) { - graph = castTo($next_7(graph$iterator), 135); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + spacing; - highestBox = 0; - } - $moveGraph_1(result, graph, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + spacing; - } - propMerge = new HashMap; - debug = new HashMap; - for (tGraph$iterator = new ArrayList$1(components); tGraph$iterator.i < tGraph$iterator.this$01.array.length;) { - tGraph = castTo($next_7(tGraph$iterator), 135); - debugMode = $booleanValue(castToBoolean($getProperty(tGraph, ($clinit_CoreOptions() , DEBUG_MODE_3)))); - propComp = !tGraph.propertyMap?(null , EMPTY_MAP):tGraph.propertyMap; - for (entry$iterator = propComp.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if ($containsKey_3(propMerge, entry.getKey())) { - if (maskUndefined(castTo(entry.getKey(), 146).getDefault()) !== maskUndefined(entry.getValue())) { - if (debugMode && $containsKey_3(debug, entry.getKey())) { - $clinit_System(); - 'Found different values for property ' + castTo(entry.getKey(), 146).getId() + ' in components.'; - } - else { - $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); - $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); - debugMode && $put_6(debug, castTo(entry.getKey(), 146), entry.getValue()); - } - } - } - else { - $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); - $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); - } - } - } - return result; -} - -function $split_4(this$static, graph){ - var comp, comp$iterator, components, id_0, node, node$iterator, node$iterator0, separate; - separate = castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , SEPARATE_CONNECTED_COMPONENTS_1))); - if (separate == null || (checkCriticalNotNull(separate) , separate)) { - $initialize_6(this$static, graph); - components = new ArrayList; - for (node$iterator0 = $listIterator_2(graph.nodes, 0); node$iterator0.currentNode != node$iterator0.this$01.tail;) { - node = castTo($next_10(node$iterator0), 86); - comp = $dfs_5(this$static, node, null); - if (comp) { - $copyProperties(comp, graph); - components.array[components.array.length] = comp; - } - } - this$static.incidence = null; - this$static.visited = null; - if (components.array.length > 1) { - for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { - comp = castTo($next_7(comp$iterator), 135); - id_0 = 0; - for (node$iterator = $listIterator_2(comp.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - node.id_0 = id_0++; - } - } - } - return components; - } - return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit, 1), $intern_100, 135, 0, [graph])); -} - -function ComponentsProcessor_1(){ -} - -defineClass(1234, 1, {}, ComponentsProcessor_1); -var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor', 1234); -function $compare_22(graph1, graph2){ - var prio, size1, size2; - prio = castTo($getProperty(graph2, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0 - castTo($getProperty(graph1, PRIORITY_1), 19).value_0; - if (prio == 0) { - size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph1, BB_UPLEFT_0), 8)); - size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT_0), 8)), castTo($getProperty(graph2, BB_UPLEFT_0), 8)); - return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); - } - return prio; -} - -function ComponentsProcessor$1_0(){ -} - -defineClass(1235, 1, $intern_88, ComponentsProcessor$1_0); -_.compare_1 = function compare_77(graph1, graph2){ - return $compare_22(castTo(graph1, 135), castTo(graph2, 135)); -} -; -_.equals_0 = function equals_164(other){ - return this === other; -} -; -_.reversed = function reversed_69(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor/1', 1235); -function $applyLayout_4(tGraph){ - var bendPoints, edgeSection, elkedge, elkgraph, elknode, height, maxXPos, maxYPos, minXPos, minYPos, nodePos, object, offset, padding, pos, size_0, sourcePoint, tEdge, tEdge$iterator, tNode, tNode$iterator, tNode$iterator0, targetPoint, width_0; - elkgraph = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , ORIGIN_1)), 33); - minXPos = $intern_0; - minYPos = $intern_0; - maxXPos = $intern_42; - maxYPos = $intern_42; - for (tNode$iterator0 = $listIterator_2(tGraph.nodes, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator0), 86); - pos = tNode.pos; - size_0 = tNode.size_0; - minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); - minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); - maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); - maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); - } - padding = castTo($getProperty_0(elkgraph, ($clinit_MrTreeOptions() , PADDING_2)), 116); - offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - object = $getProperty(tNode, ORIGIN_1); - if (instanceOf(object, 239)) { - elknode = castTo(object, 33); - nodePos = $add_19(tNode.pos, offset); - $setLocation_1(elknode, nodePos.x_0 - elknode.width_0 / 2, nodePos.y_0 - elknode.height / 2); - } - } - for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - elkedge = castTo($getProperty(tEdge, ORIGIN_1), 79); - if (elkedge) { - bendPoints = tEdge.bendPoints; - sourcePoint = new KVector_2(tEdge.source.pos); - $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); - targetPoint = new KVector_2(tEdge.target.pos); - $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); - toNodeBorder(sourcePoint, castTo($get_7(bendPoints, 1), 8), tEdge.source.size_0); - toNodeBorder(targetPoint, castTo($get_7(bendPoints, bendPoints.size_0 - 2), 8), tEdge.target.size_0); - edgeSection = firstEdgeSection(elkedge, true, true); - applyVectorChain(bendPoints, edgeSection); - } - } - width_0 = maxXPos - minXPos + (padding.left + padding.right); - height = maxYPos - minYPos + (padding.top_0 + padding.bottom); - resizeNode_1(elkgraph, width_0, height, false, false); -} - -function $transformEdges_1(parentNode, tGraph, elemMap){ - var elkedge, elkedge$iterator, elknode, elknode$iterator, newEdge, source, target; - for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { - elknode = castTo($doNext(elknode$iterator), 33); - for (elkedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(elkedge$iterator);) { - elkedge = castTo($next_0(elkedge$iterator), 79); - if (!$isHierarchical(elkedge) && !$isHierarchical(elkedge) && !$isSelfloop(elkedge)) { - source = castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, elknode)), 86); - target = castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))), 86); - if (!!source && !!target) { - newEdge = new TEdge_0(source, target); - $setProperty_0(newEdge, ($clinit_InternalProperties_2() , ORIGIN_1), elkedge); - $copyProperties(newEdge, elkedge); - $add_7(source.outgoingEdges, newEdge); - $add_7(target.incomingEdges, newEdge); - $add_7(tGraph.edges, newEdge); - } - } - } - } -} - -function $transformNodes_1(parentNode, tGraph, elemMap){ - var elknode, elknode$iterator, index_0, label_0, newNode; - index_0 = 0; - for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { - elknode = castTo($doNext(elknode$iterator), 33); - label_0 = ''; - (!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels).size_0 == 0 || (label_0 = castTo($get_20((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels), 0), 137).text_0); - newNode = new TNode(index_0++, tGraph, label_0); - $copyProperties(newNode, elknode); - $setProperty_0(newNode, ($clinit_InternalProperties_2() , ORIGIN_1), elknode); - newNode.pos.y_0 = elknode.y_0 + elknode.height / 2; - newNode.size_0.x_0 = $wnd.Math.max(elknode.width_0, 1); - newNode.pos.x_0 = elknode.x_0 + elknode.width_0 / 2; - newNode.size_0.y_0 = $wnd.Math.max(elknode.height, 1); - $add_7(tGraph.nodes, newNode); - $put_9(elemMap.hashCodeMap, elknode, newNode); - } -} - -function toNodeBorder(center, next, size_0){ - var absx, absy, hh, scale, wh, xscale, yscale; - wh = size_0.x_0 / 2; - hh = size_0.y_0 / 2; - absx = $wnd.Math.abs(next.x_0 - center.x_0); - absy = $wnd.Math.abs(next.y_0 - center.y_0); - xscale = 1; - yscale = 1; - absx > wh && (xscale = wh / absx); - absy > hh && (yscale = hh / absy); - scale = $wnd.Math.min(xscale, yscale); - center.x_0 += scale * (next.x_0 - center.x_0); - center.y_0 += scale * (next.y_0 - center.y_0); -} - -function $doLayout_0(this$static, tgraph, progressMonitor){ - $begin(progressMonitor, 'Tree layout', 1); - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_TreeLayoutPhases() , P1_TREEIFICATION), P1_TREEIFICATION); - $setPhase(this$static.algorithmAssembler, P2_NODE_ORDERING, P2_NODE_ORDERING); - $setPhase(this$static.algorithmAssembler, P3_NODE_PLACEMENT, P3_NODE_PLACEMENT); - $setPhase(this$static.algorithmAssembler, P4_EDGE_ROUTING, P4_EDGE_ROUTING); - this$static.algorithm = $build_0(this$static.algorithmAssembler, tgraph); - $layout_2(this$static, tgraph, $subTask(progressMonitor, 1)); - $done_0(progressMonitor); - return tgraph; -} - -function $layout_2(this$static, graph, themonitor){ - var i, monitor, processor, processor$iterator, slot; - monitor = themonitor; - !monitor && (monitor = new BasicProgressMonitor); - $begin(monitor, 'Layout', this$static.algorithm.array.length); - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , DEBUG_MODE_0))))) { - $clinit_System(); - for (i = 0; i < this$static.algorithm.array.length; i++) { - slot = (i < 10?'0':'') + i++; - ' Slot ' + slot + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(castTo($get_11(this$static.algorithm, i), 51))); - } - } - for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(graph, $subTask(monitor, 1)); - } - $done_0(monitor); -} - -function MrTree(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit); -} - -defineClass(1233, 1, {}, MrTree); -var Lorg_eclipse_elk_alg_mrtree_MrTree_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'MrTree', 1233); -function $clinit_TreeLayoutPhases(){ - $clinit_TreeLayoutPhases = emptyMethod; - P1_TREEIFICATION = new TreeLayoutPhases('P1_TREEIFICATION', 0); - P2_NODE_ORDERING = new TreeLayoutPhases('P2_NODE_ORDERING', 1); - P3_NODE_PLACEMENT = new TreeLayoutPhases('P3_NODE_PLACEMENT', 2); - P4_EDGE_ROUTING = new TreeLayoutPhases('P4_EDGE_ROUTING', 3); -} - -function $create_8(this$static){ - switch (this$static.ordinal) { - case 0: - return new DFSTreeifyer; - case 1: - return new NodeOrderer; - case 2: - return new NodePlacer; - case 3: - return new EdgeRouter; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout phase ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function TreeLayoutPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_73(name_0){ - $clinit_TreeLayoutPhases(); - return valueOf(($clinit_TreeLayoutPhases$Map() , $MAP_61), name_0); -} - -function values_79(){ - $clinit_TreeLayoutPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]); -} - -defineClass(393, 22, {3:1, 35:1, 22:1, 393:1, 246:1, 234:1}, TreeLayoutPhases); -_.create_1 = function create_19(){ - return $create_8(this); -} -; -_.create_2 = function create_18(){ - return $create_8(this); -} -; -var P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING; -var Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree', 'TreeLayoutPhases', 393, Ljava_lang_Enum_2_classLit, values_79, valueOf_73); -function $clinit_TreeLayoutPhases$Map(){ - $clinit_TreeLayoutPhases$Map = emptyMethod; - $MAP_61 = createValueOfMap(($clinit_TreeLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]))); -} - -var $MAP_61; -function TreeLayoutProvider(){ - this.klayTree = new MrTree; - this.componentsProcessor = new ComponentsProcessor_1; -} - -defineClass(1130, 209, $intern_96, TreeLayoutProvider); -_.layout = function layout_3(layoutGraph, progressMonitor){ - var builder, comp, comp$iterator, components, tGraph, tGraph_0, elemMap; - $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_MrTreeOptions() , OMIT_NODE_MICRO_LAYOUT_1)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); - tGraph = (tGraph_0 = new TGraph , $copyProperties(tGraph_0, layoutGraph) , $setProperty_0(tGraph_0, ($clinit_InternalProperties_2() , ORIGIN_1), layoutGraph) , elemMap = new HashMap , $transformNodes_1(layoutGraph, tGraph_0, elemMap) , $transformEdges_1(layoutGraph, tGraph_0, elemMap) , tGraph_0); - components = $split_4(this.componentsProcessor, tGraph); - for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { - comp = castTo($next_7(comp$iterator), 135); - $doLayout_0(this.klayTree, comp, $subTask(progressMonitor, 1 / components.array.length)); - } - tGraph = $pack(components); - $applyLayout_4(tGraph); -} -; -var Lorg_eclipse_elk_alg_mrtree_TreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeLayoutProvider', 1130); -function getLeftMost(currentlevel, depth){ - var cN, cN$iterator, d, nextLevel; - if (0 < (instanceOf(currentlevel, 14)?castTo(currentlevel, 14).size_1():size_24(currentlevel.iterator_0()))) { - d = depth; - if (1 < d) { - --d; - nextLevel = new TreeUtil$1; - for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - } - return getLeftMost(nextLevel, d); - } - if (d < 0) { - nextLevel = new TreeUtil$2; - for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - } - if (0 < (instanceOf(nextLevel, 14)?castTo(nextLevel, 14).size_1():size_24(nextLevel.iterator_0()))) { - return getLeftMost(nextLevel, d); - } - } - } - return castTo(getNext(currentlevel.iterator_0()), 86); -} - -function TreeUtil$1(){ -} - -defineClass(1847, 1, $intern_23, TreeUtil$1); -_.forEach_0 = function forEach_31(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_73(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_TreeUtil$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/1', 1847); -function TreeUtil$2(){ -} - -defineClass(1848, 1, $intern_23, TreeUtil$2); -_.forEach_0 = function forEach_32(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_74(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_TreeUtil$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/2', 1848); -defineClass(502, 134, {3:1, 502:1, 94:1, 134:1}); -_.id_0 = 0; -var Lorg_eclipse_elk_alg_mrtree_graph_TGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraphElement', 502); -function TEdge_0(source, target){ - new LinkedList; - this.bendPoints = new KVectorChain; - this.source = source; - this.target = target; -} - -defineClass(188, 502, {3:1, 188:1, 502:1, 94:1, 134:1}, TEdge_0); -_.toString_0 = function toString_108(){ - return !!this.source && !!this.target?$toString_15(this.source) + '->' + $toString_15(this.target):'e_' + hashCode__I__devirtual$(this); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TEdge', 188); -function TGraph(){ - this.nodes = new LinkedList; - this.edges = new LinkedList; - this.nodes = new LinkedList; - this.edges = new LinkedList; -} - -defineClass(135, 134, {3:1, 135:1, 94:1, 134:1}, TGraph); -_.toString_0 = function toString_109(){ - var tEdge, tEdge$iterator, tNode, tNode$iterator, tmp; - tmp = null; - for (tNode$iterator = $listIterator_2(this.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - tmp += (tNode.label_0 == null || tNode.label_0.length == 0?'n_' + tNode.id_0:'n_' + tNode.label_0) + '\n'; - } - for (tEdge$iterator = $listIterator_2(this.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - tmp += (!!tEdge.source && !!tEdge.target?$toString_15(tEdge.source) + '->' + $toString_15(tEdge.target):'e_' + hashCode__I__devirtual$(tEdge)) + '\n'; - } - return tmp; -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraph', 135); -defineClass(633, 502, {3:1, 502:1, 633:1, 94:1, 134:1}); -var Lorg_eclipse_elk_alg_mrtree_graph_TShape_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TShape', 633); -function $getChildrenCopy(this$static){ - var children, iEdge, iEdge$iterator; - children = new LinkedList; - for (iEdge$iterator = $listIterator_2(this$static.outgoingEdges, 0); iEdge$iterator.currentNode != iEdge$iterator.this$01.tail;) { - iEdge = castTo($next_10(iEdge$iterator), 188); - $add_7(children, iEdge.target); - } - return children; -} - -function $getParent(this$static){ - var edges; - edges = this$static.incomingEdges; - if (edges.size_0 == 0) { - return null; - } - return castTo($get_7(edges, 0), 188).source; -} - -function $toString_15(this$static){ - return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; -} - -function TNode(id_0, graph, label_0){ - this.id_0 = id_0; - this.pos = new KVector; - this.size_0 = new KVector; - this.outgoingEdges = new LinkedList; - this.incomingEdges = new LinkedList; - this.graph_0 = graph; - this.label_0 = label_0; -} - -defineClass(86, 633, {3:1, 502:1, 86:1, 633:1, 94:1, 134:1}, TNode); -_.toString_0 = function toString_110(){ - return $toString_15(this); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode', 86); -function TNode$2(this$0){ - this.this$01 = this$0; -} - -defineClass(255, 1, $intern_23, TNode$2); -_.forEach_0 = function forEach_33(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_75(){ - var edgesIter; - return edgesIter = $listIterator_2(this.this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2', 255); -function TNode$2$1(val$edgesIter){ - this.val$edgesIter2 = val$edgesIter; -} - -defineClass(358, 1, $intern_6, TNode$2$1); -_.forEachRemaining = function forEachRemaining_50(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_40(){ - return castTo($next_10(this.val$edgesIter2), 188).target; -} -; -_.hasNext_0 = function hasNext_39(){ - return $hasNext_5(this.val$edgesIter2); -} -; -_.remove = function remove_95(){ - $remove_24(this.val$edgesIter2); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2/1', 358); -function $calculateFan(this$static, currentLevel){ - var blockSize, digits, edgesIter, gloValue, i, id_0, index_0, key, locEntry, locEntry$iterator, locFanMap, nextLevel, pId, tChild, tChild$iterator, tNode, tNode$iterator, tNode$iterator0; - if (currentLevel.size_0 != 0) { - nextLevel = new LinkedList; - id_0 = null; - pId = null; - digits = round_int($wnd.Math.floor($wnd.Math.log(currentLevel.size_0) * $wnd.Math.LOG10E) + 1); - index_0 = 0; - for (tNode$iterator0 = $listIterator_2(currentLevel, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator0), 86); - if (maskUndefined(pId) !== maskUndefined($getProperty(tNode, ($clinit_InternalProperties_2() , ID)))) { - pId = castToString($getProperty(tNode, ID)); - index_0 = 0; - } - pId != null?(id_0 = pId + formatRight(index_0++, digits)):(id_0 = formatRight(index_0++, digits)); - $setProperty_0(tNode, ID, id_0); - for (tChild$iterator = (edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter)); $hasNext_5(tChild$iterator.val$edgesIter2);) { - tChild = castTo($next_10(tChild$iterator.val$edgesIter2), 188).target; - $addNode_0(nextLevel, tChild, nextLevel.tail.prev, nextLevel.tail); - $setProperty_0(tChild, ID, id_0); - } - } - locFanMap = new HashMap; - for (i = 0; i < id_0.length - digits; i++) { - for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - key = $substring_1(castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))), 0, i + 1); - blockSize = (key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key)) != null?castTo(key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key), 19).value_0 + 1:1; - $putStringValue(locFanMap, key, valueOf_4(blockSize)); - } - } - for (locEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(locFanMap)).this$01); locEntry$iterator.hasNext;) { - locEntry = $next_4(locEntry$iterator); - gloValue = valueOf_4($get_10(this$static.gloDescMap, locEntry.getKey()) != null?castTo($get_10(this$static.gloDescMap, locEntry.getKey()), 19).value_0:0); - $putStringValue(this$static.gloDescMap, castToString(locEntry.getKey()), valueOf_4(castTo(locEntry.getValue(), 19).value_0 + gloValue.value_0)); - gloValue = castTo($get_10(this$static.gloFanMap, locEntry.getKey()), 19); - (!gloValue || gloValue.value_0 < castTo(locEntry.getValue(), 19).value_0) && $putStringValue(this$static.gloFanMap, castToString(locEntry.getKey()), castTo(locEntry.getValue(), 19)); - } - $calculateFan(this$static, nextLevel); - } -} - -function $process_79(this$static, tGraph, progressMonitor){ - var desc, fan, it, key, root, rootLevel, tNode, tNode$iterator; - $begin(progressMonitor, 'Processor compute fanout', 1); - $reset(this$static.gloFanMap); - $reset(this$static.gloDescMap); - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - rootLevel = new LinkedList; - $addNode_0(rootLevel, root, rootLevel.tail.prev, rootLevel.tail); - $calculateFan(this$static, rootLevel); - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - key = castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))); - fan = $getStringValue(this$static.gloFanMap, key) != null?castTo($getStringValue(this$static.gloFanMap, key), 19).value_0:0; - $setProperty_0(tNode, FAN, valueOf_4(fan)); - desc = 1 + ($getStringValue(this$static.gloDescMap, key) != null?castTo($getStringValue(this$static.gloDescMap, key), 19).value_0:0); - $setProperty_0(tNode, DESCENDANTS, valueOf_4(desc)); - } - $done_0(progressMonitor); -} - -function FanProcessor(){ - this.gloFanMap = new HashMap; - this.gloDescMap = new HashMap; -} - -function formatRight(value_0, len){ - var s; - s = value_0 + ''; - while (s.length < len) { - s = '0' + s; - } - return s; -} - -defineClass(1840, 1, $intern_105, FanProcessor); -_.process = function process_75(tGraph, progressMonitor){ - $process_79(this, castTo(tGraph, 135), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_FanProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'FanProcessor', 1840); -function $clinit_IntermediateProcessorStrategy_0(){ - $clinit_IntermediateProcessorStrategy_0 = emptyMethod; - ROOT_PROC = new IntermediateProcessorStrategy_0('ROOT_PROC', 0); - FAN_PROC = new IntermediateProcessorStrategy_0('FAN_PROC', 1); - NEIGHBORS_PROC = new IntermediateProcessorStrategy_0('NEIGHBORS_PROC', 2); - LEVEL_HEIGHT = new IntermediateProcessorStrategy_0('LEVEL_HEIGHT', 3); - NODE_POSITION_PROC = new IntermediateProcessorStrategy_0('NODE_POSITION_PROC', 4); - DETREEIFYING_PROC = new IntermediateProcessorStrategy_0('DETREEIFYING_PROC', 5); -} - -function IntermediateProcessorStrategy_0(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_74(name_0){ - $clinit_IntermediateProcessorStrategy_0(); - return valueOf(($clinit_IntermediateProcessorStrategy$Map_0() , $MAP_62), name_0); -} - -function values_80(){ - $clinit_IntermediateProcessorStrategy_0(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]); -} - -defineClass(327, 22, {3:1, 35:1, 22:1, 327:1, 234:1}, IntermediateProcessorStrategy_0); -_.create_1 = function create_20(){ - switch (this.ordinal) { - case 0: - return new RootProcessor; - case 1: - return new FanProcessor; - case 2: - return new NeighborsProcessor; - case 3: - return new LevelHeightProcessor; - case 4: - return new NodePositionProcessor; - case 5: - return new Untreeifyer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); - } -} -; -var DETREEIFYING_PROC, FAN_PROC, LEVEL_HEIGHT, NEIGHBORS_PROC, NODE_POSITION_PROC, ROOT_PROC; -var Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.intermediate', 'IntermediateProcessorStrategy', 327, Ljava_lang_Enum_2_classLit, values_80, valueOf_74); -function $clinit_IntermediateProcessorStrategy$Map_0(){ - $clinit_IntermediateProcessorStrategy$Map_0 = emptyMethod; - $MAP_62 = createValueOfMap(($clinit_IntermediateProcessorStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]))); -} - -var $MAP_62; -function $process_80(this$static, tGraph, progressMonitor){ - var it, root, tNode; - $begin(progressMonitor, 'Processor determine the height for each level', 1); - this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - !!root && $setNeighbors(this$static, newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_100, 86, 0, [root])), progressMonitor); - $done_0(progressMonitor); -} - -function $setNeighbors(this$static, currentLevel, progressMonitor){ - var cN, cN$iterator, cN$iterator0, height, nextLevel, sT; - if (!isEmpty_13(currentLevel)) { - sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); - $begin(sT, 'Set neighbors in level', 1); - nextLevel = new LevelHeightProcessor$1; - height = 0; - for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { - cN = castTo(cN$iterator0.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - height < cN.size_0.y_0 && (height = cN.size_0.y_0); - } - for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - $setProperty_0(cN, ($clinit_InternalProperties_2() , LEVELHEIGHT), height); - } - $done_0(sT); - $setNeighbors(this$static, nextLevel, progressMonitor); - } -} - -function LevelHeightProcessor(){ -} - -defineClass(1843, 1, $intern_105, LevelHeightProcessor); -_.process = function process_76(tGraph, progressMonitor){ - $process_80(this, castTo(tGraph, 135), progressMonitor); -} -; -_.numberOfNodes = 0; -var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor', 1843); -function LevelHeightProcessor$1(){ -} - -defineClass(1844, 1, $intern_23, LevelHeightProcessor$1); -_.forEach_0 = function forEach_34(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_76(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor/1', 1844); -function $process_81(this$static, tGraph, progressMonitor){ - var it, root, tNode; - $begin(progressMonitor, 'Processor set neighbors', 1); - this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - !!root && $setNeighbors_0(this$static, new TNode$2(root), progressMonitor); - $done_0(progressMonitor); -} - -function $setNeighbors_0(this$static, currentLevel, progressMonitor){ - var cN, cN$iterator, lN, nextLevel, sT; - if (!isEmpty_13(currentLevel)) { - sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); - $begin(sT, 'Set neighbors in level', 1); - nextLevel = new NeighborsProcessor$1; - lN = null; - for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - if (lN) { - $setProperty_0(lN, ($clinit_InternalProperties_2() , RIGHTNEIGHBOR), cN); - $setProperty_0(cN, LEFTNEIGHBOR, lN); - if ($getParent(cN) == $getParent(lN)) { - $setProperty_0(lN, RIGHTSIBLING, cN); - $setProperty_0(cN, LEFTSIBLING, lN); - } - } - lN = cN; - } - $done_0(sT); - $setNeighbors_0(this$static, nextLevel, progressMonitor); - } -} - -function NeighborsProcessor(){ -} - -defineClass(1841, 1, $intern_105, NeighborsProcessor); -_.process = function process_77(tGraph, progressMonitor){ - $process_81(this, castTo(tGraph, 135), progressMonitor); -} -; -_.numberOfNodes = 0; -var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor', 1841); -function NeighborsProcessor$1(){ -} - -defineClass(1842, 1, $intern_23, NeighborsProcessor$1); -_.forEach_0 = function forEach_35(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_77(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor/1', 1842); -function $process_82(this$static, tGraph, progressMonitor){ - var it, pos, root, tNode; - $begin(progressMonitor, 'Processor set coordinates', 1); - this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - if ($booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0))))) { - root = tNode; - pos = tNode.pos; - pos.x_0 = castTo($getProperty(tNode, XCOOR), 19).value_0; - pos.y_0 = 0; - } - } - $setCoordinates(this$static, $getChildrenCopy(root), $subTask(progressMonitor, 1)); - $done_0(progressMonitor); -} - -function $setCoordinates(this$static, currentLevel, progressMonitor){ - var nextLevel, pos, tNode, tNode$iterator; - if (currentLevel.size_0 != 0) { - nextLevel = new LinkedList; - for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - $addAll(nextLevel, $getChildrenCopy(tNode)); - pos = tNode.pos; - pos.x_0 = castTo($getProperty(tNode, ($clinit_InternalProperties_2() , XCOOR)), 19).value_0; - pos.y_0 = castTo($getProperty(tNode, YCOOR), 19).value_0; - } - $setCoordinates(this$static, nextLevel, $subTask(progressMonitor, nextLevel.size_0 / this$static.numberOfNodes | 0)); - } -} - -function NodePositionProcessor(){ -} - -defineClass(1845, 1, $intern_105, NodePositionProcessor); -_.process = function process_78(tGraph, progressMonitor){ - $process_82(this, castTo(tGraph, 135), progressMonitor); -} -; -_.numberOfNodes = 0; -var Lorg_eclipse_elk_alg_mrtree_intermediate_NodePositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NodePositionProcessor', 1845); -function $process_83(this$static, tGraph){ - var node, node$iterator, root, superRoot, tRoot, tRoot$iterator, newEdge; - this$static.roots.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - if (node.incomingEdges.size_0 == 0) { - $setProperty_0(node, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); - $add_3(this$static.roots, node); - } - } - switch (this$static.roots.array.length) { - case 0: - root = new TNode(0, tGraph, 'DUMMY_ROOT'); - $setProperty_0(root, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); - $setProperty_0(root, DUMMY, true); - $add_7(tGraph.nodes, root); - break; - case 1: - break; - default:superRoot = new TNode(0, tGraph, 'SUPER_ROOT'); - for (tRoot$iterator = new ArrayList$1(this$static.roots); tRoot$iterator.i < tRoot$iterator.this$01.array.length;) { - tRoot = castTo($next_7(tRoot$iterator), 86); - newEdge = new TEdge_0(superRoot, tRoot); - $setProperty_0(newEdge, ($clinit_InternalProperties_2() , DUMMY), ($clinit_Boolean() , true)); - $add_7(superRoot.graph_0.edges, newEdge); - $add_7(superRoot.outgoingEdges, newEdge); - $add_7(tRoot.incomingEdges, newEdge); - $setProperty_0(tRoot, ROOT_0, false); - } - - $setProperty_0(superRoot, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); - $setProperty_0(superRoot, DUMMY, true); - $add_7(tGraph.nodes, superRoot); - } -} - -function RootProcessor(){ - this.roots = new ArrayList; -} - -defineClass(1839, 1, $intern_105, RootProcessor); -_.process = function process_79(tGraph, progressMonitor){ - $process_83(this, castTo(tGraph, 135)); -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_RootProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'RootProcessor', 1839); -function $process_84(tGraph){ - var edges, tEdge, tEdge$iterator; - edges = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES)), 15); - for (tEdge$iterator = edges.iterator_0(); tEdge$iterator.hasNext_0();) { - tEdge = castTo(tEdge$iterator.next_1(), 188); - $add_7(tEdge.source.outgoingEdges, tEdge); - $add_7(tEdge.target.incomingEdges, tEdge); - } -} - -function Untreeifyer(){ -} - -defineClass(1846, 1, $intern_105, Untreeifyer); -_.process = function process_80(tGraph, progressMonitor){ - $process_84(castTo(tGraph, 135)); -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_Untreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'Untreeifyer', 1846); -function $clinit_InternalProperties_2(){ - $clinit_InternalProperties_2 = emptyMethod; - ORIGIN_1 = new Property('origin'); - new Property('random'); - new Property_0('DEPTH', valueOf_4(0)); - FAN = new Property_0('FAN', valueOf_4(0)); - DESCENDANTS = new Property_0('DESCENDANTS', valueOf_4(0)); - ROOT_0 = new Property_0('ROOT', ($clinit_Boolean() , false)); - LEFTNEIGHBOR = new Property_0('LEFTNEIGHBOR', null); - RIGHTNEIGHBOR = new Property_0('RIGHTNEIGHBOR', null); - LEFTSIBLING = new Property_0('LEFTSIBLING', null); - RIGHTSIBLING = new Property_0('RIGHTSIBLING', null); - DUMMY = new Property_0('DUMMY', false); - new Property_0('LEVEL', valueOf_4(0)); - REMOVABLE_EDGES = new Property_0('REMOVABLE_EDGES', new LinkedList); - XCOOR = new Property_0('XCOOR', valueOf_4(0)); - YCOOR = new Property_0('YCOOR', valueOf_4(0)); - LEVELHEIGHT = new Property_0('LEVELHEIGHT', 0); - ID = new Property_0('ID', ''); - POSITION_0 = new Property_0('POSITION', valueOf_4(0)); - PRELIM = new Property_0('PRELIM', 0); - MODIFIER = new Property_0('MODIFIER', 0); - BB_UPLEFT_0 = new Property('boundingBox.upLeft'); - BB_LOWRIGHT_0 = new Property('boundingBox.lowRight'); -} - -var BB_LOWRIGHT_0, BB_UPLEFT_0, DESCENDANTS, DUMMY, FAN, ID, LEFTNEIGHBOR, LEFTSIBLING, LEVELHEIGHT, MODIFIER, ORIGIN_1, POSITION_0, PRELIM, REMOVABLE_EDGES, RIGHTNEIGHBOR, RIGHTSIBLING, ROOT_0, XCOOR, YCOOR; -function $clinit_MrTreeMetaDataProvider(){ - $clinit_MrTreeMetaDataProvider = emptyMethod; - WEIGHTING_DEFAULT = ($clinit_OrderWeighting() , DESCENDANTS_0); - WEIGHTING = new Property_1('org.eclipse.elk.mrtree.weighting', WEIGHTING_DEFAULT); - SEARCH_ORDER_DEFAULT = ($clinit_TreeifyingOrder() , DFS); - SEARCH_ORDER = new Property_1('org.eclipse.elk.mrtree.searchOrder', SEARCH_ORDER_DEFAULT); -} - -function MrTreeMetaDataProvider(){ - $clinit_MrTreeMetaDataProvider(); -} - -defineClass(851, 1, $intern_90, MrTreeMetaDataProvider); -_.apply_4 = function apply_157(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.weighting'), ''), 'Weighting of Nodes'), 'Which weighting to use when computing a node order.'), WEIGHTING_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.searchOrder'), ''), 'Search Order'), 'Which search order to use when computing a spanning tree.'), SEARCH_ORDER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit), of_1(PARENTS)))); - $apply_19((new MrTreeOptions , registry)); -} -; -var SEARCH_ORDER, SEARCH_ORDER_DEFAULT, WEIGHTING, WEIGHTING_DEFAULT; -var Lorg_eclipse_elk_alg_mrtree_options_MrTreeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeMetaDataProvider', 851); -function $clinit_MrTreeOptions(){ - $clinit_MrTreeOptions = emptyMethod; - PADDING_DEFAULT_1 = new ElkPadding_0(20); - PADDING_2 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_1); - SPACING_NODE_NODE_1 = new Property_2(SPACING_NODE_NODE_6, 20); - ASPECT_RATIO_2 = new Property_2(ASPECT_RATIO_5, $intern_102); - PRIORITY_1 = new Property_2(PRIORITY_3, valueOf_4(1)); - SEPARATE_CONNECTED_COMPONENTS_1 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); - DEBUG_MODE_0 = DEBUG_MODE_3; - NODE_SIZE_CONSTRAINTS_2 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_1 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_2 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_2 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_1 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_2 = PORT_LABELS_PLACEMENT_5; - WEIGHTING_0 = ($clinit_MrTreeMetaDataProvider() , WEIGHTING); - SEARCH_ORDER_0 = SEARCH_ORDER; -} - -function $apply_19(registry){ - $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.mrtree'), 'ELK Mr. Tree'), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new MrTreeOptions$MrtreeFactory), 'org.eclipse.elk.tree'), of_1(($clinit_GraphFeature() , DISCONNECTED))))); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.padding', PADDING_DEFAULT_1); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.spacing.nodeNode', 20); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.aspectRatio', $intern_102); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.priority', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_1)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_1)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.weighting', $getDefault(WEIGHTING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.searchOrder', $getDefault(SEARCH_ORDER_0)); -} - -function MrTreeOptions(){ - $clinit_MrTreeOptions(); -} - -defineClass(994, 1, $intern_90, MrTreeOptions); -_.apply_4 = function apply_158(registry){ - $apply_19(registry); -} -; -var ASPECT_RATIO_2, DEBUG_MODE_0, NODE_LABELS_PLACEMENT_2, NODE_SIZE_CONSTRAINTS_2, NODE_SIZE_MINIMUM_1, NODE_SIZE_OPTIONS_2, OMIT_NODE_MICRO_LAYOUT_1, PADDING_2, PADDING_DEFAULT_1, PORT_LABELS_PLACEMENT_2, PRIORITY_1, SEARCH_ORDER_0, SEPARATE_CONNECTED_COMPONENTS_1, SPACING_NODE_NODE_1, WEIGHTING_0; -var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions', 994); -function MrTreeOptions$MrtreeFactory(){ -} - -defineClass(995, 1, {}, MrTreeOptions$MrtreeFactory); -_.create_0 = function create_21(){ - var provider; - return provider = new TreeLayoutProvider , provider; -} -; -_.destroy = function destroy_3(obj){ -} -; -var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions$MrtreeFactory_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions/MrtreeFactory', 995); -function $clinit_OrderWeighting(){ - $clinit_OrderWeighting = emptyMethod; - DESCENDANTS_0 = new OrderWeighting('DESCENDANTS', 0); - FAN_0 = new OrderWeighting('FAN', 1); -} - -function OrderWeighting(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_75(name_0){ - $clinit_OrderWeighting(); - return valueOf(($clinit_OrderWeighting$Map() , $MAP_63), name_0); -} - -function values_81(){ - $clinit_OrderWeighting(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]); -} - -defineClass(480, 22, {3:1, 35:1, 22:1, 480:1}, OrderWeighting); -var DESCENDANTS_0, FAN_0; -var Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'OrderWeighting', 480, Ljava_lang_Enum_2_classLit, values_81, valueOf_75); -function $clinit_OrderWeighting$Map(){ - $clinit_OrderWeighting$Map = emptyMethod; - $MAP_63 = createValueOfMap(($clinit_OrderWeighting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]))); -} - -var $MAP_63; -function $clinit_TreeifyingOrder(){ - $clinit_TreeifyingOrder = emptyMethod; - DFS = new TreeifyingOrder('DFS', 0); - BFS = new TreeifyingOrder('BFS', 1); -} - -function TreeifyingOrder(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_76(name_0){ - $clinit_TreeifyingOrder(); - return valueOf(($clinit_TreeifyingOrder$Map() , $MAP_64), name_0); -} - -function values_82(){ - $clinit_TreeifyingOrder(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]); -} - -defineClass(425, 22, {3:1, 35:1, 22:1, 425:1}, TreeifyingOrder); -var BFS, DFS; -var Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'TreeifyingOrder', 425, Ljava_lang_Enum_2_classLit, values_82, valueOf_76); -function $clinit_TreeifyingOrder$Map(){ - $clinit_TreeifyingOrder$Map = emptyMethod; - $MAP_64 = createValueOfMap(($clinit_TreeifyingOrder() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]))); -} - -var $MAP_64; -function $clinit_DFSTreeifyer(){ - $clinit_DFSTreeifyer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG = $addAfter(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P4_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy_0() , DETREEIFYING_PROC)); -} - -function $bfs(this$static, startNode){ - var node, nodeQueue, tEdge, tEdge$iterator, target; - nodeQueue = new LinkedList; - $addNode_0(nodeQueue, startNode, nodeQueue.tail.prev, nodeQueue.tail); - do { - node = (checkCriticalElement(nodeQueue.size_0 != 0) , castTo($removeNode_0(nodeQueue, nodeQueue.header.next_0), 86)); - this$static.visited[node.id_0] = 1; - for (tEdge$iterator = $listIterator_2(node.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - target = tEdge.target; - this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$addNode_0(nodeQueue, target, nodeQueue.tail.prev, nodeQueue.tail); - } - } - while (nodeQueue.size_0 != 0); -} - -function $collectEdges(this$static, tGraph){ - var tEdge, tEdge$iterator, tNode, tNode$iterator, treeifyingOrder; - treeifyingOrder = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , SEARCH_ORDER_0)), 425); - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - if (this$static.visited[tNode.id_0] == 0) { - switch (treeifyingOrder.ordinal) { - case 0: - $dfs_6(this$static, tNode); - break; - case 1: - $bfs(this$static, tNode); - } - this$static.visited[tNode.id_0] = 2; - } - } - for (tEdge$iterator = $listIterator_2(this$static.eliminated, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - $advanceToFind(tEdge.source.outgoingEdges, tEdge, true); - $advanceToFind(tEdge.target.incomingEdges, tEdge, true); - } - $setProperty_0(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES), this$static.eliminated); -} - -function $dfs_6(this$static, tNode){ - var tEdge, tEdge$iterator, target; - this$static.visited[tNode.id_0] = 1; - for (tEdge$iterator = $listIterator_2(tNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - target = tEdge.target; - this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$dfs_6(this$static, target); - } -} - -function $init_1(this$static, tGraph){ - var id_0, node, node$iterator, size_0; - size_0 = tGraph.nodes.size_0; - this$static.eliminated = new LinkedList; - this$static.visited = initUnidimensionalArray(I_classLit, $intern_48, 25, size_0, 15, 1); - id_0 = 0; - for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - node.id_0 = id_0++; - } -} - -function $process_85(this$static, tGraph, progressMonitor){ - $begin(progressMonitor, 'DFS Treeifying phase', 1); - $init_1(this$static, tGraph); - $collectEdges(this$static, tGraph); - this$static.eliminated = null; - this$static.visited = null; - $done_0(progressMonitor); -} - -function DFSTreeifyer(){ - $clinit_DFSTreeifyer(); -} - -defineClass(1459, 1, $intern_113, DFSTreeifyer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_20(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG; -} -; -_.process = function process_81(tGraph, progressMonitor){ - $process_85(this, castTo(tGraph, 135), progressMonitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIG; -var Lorg_eclipse_elk_alg_mrtree_p1treeify_DFSTreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p1treeify', 'DFSTreeifyer', 1459); -function $clinit_NodeOrderer(){ - $clinit_NodeOrderer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG_0 = $add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING)), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), FAN_PROC); -} - -function $orderLevel(this$static, currentLevel, progressMonitor){ - var children, fillGap, firstOcc, inners, it, leaves, notNull, pos, size_0, sortedOutEdges, tENode, tENode$iterator, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$iterator, tmp; - $begin(progressMonitor, 'Processor arrange level', 1); - pos = 0; - $clinit_Collections(); - $sort_0(currentLevel, new PropertyHolderComparator(($clinit_InternalProperties_2() , FAN))); - firstOcc = currentLevel.size_0; - it = $listIterator_2(currentLevel, currentLevel.size_0); - notNull = true; - while (notNull && it.currentNode.prev != it.this$01.header) { - tNode = castTo($previous_0(it), 86); - castTo($getProperty(tNode, FAN), 19).value_0 == 0?--firstOcc:(notNull = false); - } - tmp = new AbstractList$SubList(currentLevel, 0, firstOcc); - inners = new LinkedList_0(tmp); - tmp = new AbstractList$SubList(currentLevel, firstOcc, currentLevel.size_0); - leaves = new LinkedList_0(tmp); - if (inners.size_0 == 0) { - for (tENode$iterator = $listIterator_2(leaves, 0); tENode$iterator.currentNode != tENode$iterator.this$01.tail;) { - tENode = castTo($next_10(tENode$iterator), 86); - $setProperty_0(tENode, POSITION_0, valueOf_4(pos++)); - } - } - else { - size_0 = inners.size_0; - for (tPNode$iterator = $listIterator_2(inners, 0); tPNode$iterator.currentNode != tPNode$iterator.this$01.tail;) { - tPNode = castTo($next_10(tPNode$iterator), 86); - $setProperty_0(tPNode, POSITION_0, valueOf_4(pos++)); - children = $getChildrenCopy(tPNode); - $orderLevel(this$static, children, $subTask(progressMonitor, 1 / size_0 | 0)); - $sort_0(children, reverseOrder(new PropertyHolderComparator(POSITION_0))); - sortedOutEdges = new LinkedList; - for (tNode$iterator = $listIterator_2(children, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - tEdge.target == tNode && ($addNode_0(sortedOutEdges, tEdge, sortedOutEdges.tail.prev, sortedOutEdges.tail) , true); - } - } - $reset_0(tPNode.outgoingEdges); - $addAll(tPNode.outgoingEdges, sortedOutEdges); - it = $listIterator_2(leaves, leaves.size_0); - fillGap = tPNode.outgoingEdges.size_0; - notNull = true; - while (0 < fillGap && notNull && it.currentNode.prev != it.this$01.header) { - tNode = castTo($previous_0(it), 86); - if (castTo($getProperty(tNode, FAN), 19).value_0 == 0) { - $setProperty_0(tNode, POSITION_0, valueOf_4(pos++)); - --fillGap; - $remove_24(it); - } - else { - notNull = false; - } - } - } - } - $done_0(progressMonitor); -} - -function $process_86(this$static, tGraph, progressMonitor){ - var it, root, roots, tNode; - $begin(progressMonitor, 'Processor arrange node', 1); - root = null; - roots = new LinkedList; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - $addNode_0(roots, root, roots.tail.prev, roots.tail); - $orderLevel(this$static, roots, $subTask(progressMonitor, 1)); - $done_0(progressMonitor); -} - -function NodeOrderer(){ - $clinit_NodeOrderer(); -} - -defineClass(1460, 1, $intern_113, NodeOrderer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_21(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_0; -} -; -_.process = function process_82(tGraph, progressMonitor){ - $process_86(this, castTo(tGraph, 135), progressMonitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIG_0; -var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer', 1460); -function $clinit_NodePlacer(){ - $clinit_NodePlacer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG_1 = $addBefore($add_17($add_17($before($addBefore(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), P3_NODE_PLACEMENT), LEVEL_HEIGHT), NEIGHBORS_PROC), P4_EDGE_ROUTING, NODE_POSITION_PROC); -} - -function $apportion(this$static, cN){ - var ancestorLeftmost, ancestorNeighbor, compareDepth, edgesIter, edgesIter0, i, leftModSum, leftSibling, leftSiblings, leftmost, mean, moveDistance, neighbor, newMod, newPr, portion, prL, prN, rightModSum; - leftmost = castTo(getNext((edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0))), 86); - neighbor = leftmost?castTo($getProperty(leftmost, ($clinit_InternalProperties_2() , LEFTNEIGHBOR)), 86):null; - compareDepth = 1; - while (!!leftmost && !!neighbor) { - leftModSum = 0; - rightModSum = 0; - ancestorLeftmost = leftmost; - ancestorNeighbor = neighbor; - for (i = 0; i < compareDepth; i++) { - ancestorLeftmost = $getParent(ancestorLeftmost); - ancestorNeighbor = $getParent(ancestorNeighbor); - rightModSum += $doubleValue(castToDouble($getProperty(ancestorLeftmost, ($clinit_InternalProperties_2() , MODIFIER)))); - leftModSum += $doubleValue(castToDouble($getProperty(ancestorNeighbor, MODIFIER))); - } - prN = $doubleValue(castToDouble($getProperty(neighbor, ($clinit_InternalProperties_2() , PRELIM)))); - prL = $doubleValue(castToDouble($getProperty(leftmost, PRELIM))); - mean = $meanNodeWidth(leftmost, neighbor); - moveDistance = prN + leftModSum + this$static.spacing + mean - prL - rightModSum; - if (0 < moveDistance) { - leftSibling = cN; - leftSiblings = 0; - while (!!leftSibling && leftSibling != ancestorNeighbor) { - ++leftSiblings; - leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); - } - if (leftSibling) { - portion = moveDistance / leftSiblings; - leftSibling = cN; - while (leftSibling != ancestorNeighbor) { - newPr = $doubleValue(castToDouble($getProperty(leftSibling, PRELIM))) + moveDistance; - $setProperty_0(leftSibling, PRELIM, newPr); - newMod = $doubleValue(castToDouble($getProperty(leftSibling, MODIFIER))) + moveDistance; - $setProperty_0(leftSibling, MODIFIER, newMod); - moveDistance -= portion; - leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); - } - } - else { - return; - } - } - ++compareDepth; - leftmost.outgoingEdges.size_0 == 0?(leftmost = getLeftMost(new TNode$2(cN), compareDepth)):(leftmost = castTo(getNext((edgesIter = $listIterator_2((new TNode$2(leftmost)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86)); - neighbor = leftmost?castTo($getProperty(leftmost, LEFTNEIGHBOR), 86):null; - } -} - -function $firstWalk(this$static, cN){ - var child, child$iterator, edgesIter, edgesIter0, edgesIter1, lM, lS, midPoint, p, rM; - $setProperty_0(cN, ($clinit_InternalProperties_2() , MODIFIER), 0); - lS = castTo($getProperty(cN, LEFTSIBLING), 86); - if (cN.outgoingEdges.size_0 == 0) { - if (lS) { - p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); - $setProperty_0(cN, PRELIM, p); - } - else { - $setProperty_0(cN, PRELIM, 0); - } - } - else { - for (child$iterator = (edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0)); $hasNext_5(child$iterator.val$edgesIter2);) { - child = castTo($next_10(child$iterator.val$edgesIter2), 188).target; - $firstWalk(this$static, child); - } - lM = castTo(getNext((edgesIter1 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter1))), 86); - rM = castTo(getLast_1((edgesIter = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86); - midPoint = ($doubleValue(castToDouble($getProperty(rM, PRELIM))) + $doubleValue(castToDouble($getProperty(lM, PRELIM)))) / 2; - if (lS) { - p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); - $setProperty_0(cN, PRELIM, p); - $setProperty_0(cN, MODIFIER, $doubleValue(castToDouble($getProperty(cN, PRELIM))) - midPoint); - $apportion(this$static, cN); - } - else { - $setProperty_0(cN, PRELIM, midPoint); - } - } -} - -function $meanNodeWidth(leftNode, rightNode){ - var nodeWidth; - nodeWidth = 0; - !!leftNode && (nodeWidth += leftNode.size_0.x_0 / 2); - !!rightNode && (nodeWidth += rightNode.size_0.x_0 / 2); - return nodeWidth; -} - -function $process_87(this$static, tGraph, progressMonitor){ - var root, roots, tNode, tNode$iterator; - $begin(progressMonitor, 'Processor order nodes', 2); - this$static.spacing = $doubleValue(castToDouble($getProperty(tGraph, ($clinit_MrTreeOptions() , SPACING_NODE_NODE_1)))); - roots = new LinkedList; - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && ($addNode_0(roots, tNode, roots.tail.prev, roots.tail) , true); - } - root = (checkCriticalElement(roots.size_0 != 0) , castTo(roots.header.next_0.value_0, 86)); - $firstWalk(this$static, root); - !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); - $secondWalk(this$static, root, 0 - $doubleValue(castToDouble($getProperty(root, ($clinit_InternalProperties_2() , LEVELHEIGHT)))) / 2, 0); - !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); - $done_0(progressMonitor); -} - -function $secondWalk(this$static, tNode, yCoor, modsum){ - var edgesIter, xTemp, yTemp; - if (tNode) { - xTemp = $doubleValue(castToDouble($getProperty(tNode, ($clinit_InternalProperties_2() , PRELIM)))) + modsum; - yTemp = yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) / 2; - $setProperty_0(tNode, XCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(xTemp))))); - $setProperty_0(tNode, YCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(yTemp))))); - tNode.outgoingEdges.size_0 == 0 || $secondWalk(this$static, castTo(getNext((edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86), yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) + this$static.spacing, modsum + $doubleValue(castToDouble($getProperty(tNode, MODIFIER)))); - $getProperty(tNode, RIGHTSIBLING) != null && $secondWalk(this$static, castTo($getProperty(tNode, RIGHTSIBLING), 86), yCoor, modsum); - } -} - -function NodePlacer(){ - $clinit_NodePlacer(); -} - -defineClass(1461, 1, $intern_113, NodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_22(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_1; -} -; -_.process = function process_83(tGraph, progressMonitor){ - $process_87(this, castTo(tGraph, 135), progressMonitor); -} -; -_.spacing = 0; -var INTERMEDIATE_PROCESSING_CONFIG_1; -var Lorg_eclipse_elk_alg_mrtree_p3place_NodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p3place', 'NodePlacer', 1461); -function $clinit_EdgeRouter(){ - $clinit_EdgeRouter = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG_2 = new LayoutProcessorConfiguration; -} - -function $process_88(tGraph, progressMonitor){ - var tedge, tedge$iterator, tnode, tnode$iterator; - $begin(progressMonitor, 'Dull edge routing', 1); - for (tnode$iterator = $listIterator_2(tGraph.nodes, 0); tnode$iterator.currentNode != tnode$iterator.this$01.tail;) { - tnode = castTo($next_10(tnode$iterator), 86); - for (tedge$iterator = $listIterator_2(tnode.outgoingEdges, 0); tedge$iterator.currentNode != tedge$iterator.this$01.tail;) { - tedge = castTo($next_10(tedge$iterator), 188); - $reset_0(tedge.bendPoints); - } - } -} - -function EdgeRouter(){ - $clinit_EdgeRouter(); -} - -defineClass(1462, 1, $intern_113, EdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_23(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_2; -} -; -_.process = function process_84(tGraph, progressMonitor){ - $process_88(castTo(tGraph, 135), progressMonitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIG_2; -var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter', 1462); -function $clinit_InternalProperties_3(){ - $clinit_InternalProperties_3 = emptyMethod; - ROOT_NODE = new Property('root'); -} - -var ROOT_NODE; -function $clinit_RadialLayoutPhases(){ - $clinit_RadialLayoutPhases = emptyMethod; - P1_NODE_PLACEMENT = new RadialLayoutPhases('P1_NODE_PLACEMENT', 0); - P2_EDGE_ROUTING = new RadialLayoutPhases('P2_EDGE_ROUTING', 1); -} - -function $create_9(this$static){ - switch (this$static.ordinal) { - case 0: - return new EadesRadial; - case 1: - return new StraightLineEdgeRouter; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function RadialLayoutPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_77(name_0){ - $clinit_RadialLayoutPhases(); - return valueOf(($clinit_RadialLayoutPhases$Map() , $MAP_65), name_0); -} - -function values_83(){ - $clinit_RadialLayoutPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]); -} - -defineClass(495, 22, {3:1, 35:1, 22:1, 495:1, 246:1, 234:1}, RadialLayoutPhases); -_.create_1 = function create_23(){ - return $create_9(this); -} -; -_.create_2 = function create_22(){ - return $create_9(this); -} -; -var P1_NODE_PLACEMENT, P2_EDGE_ROUTING; -var Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.radial', 'RadialLayoutPhases', 495, Ljava_lang_Enum_2_classLit, values_83, valueOf_77); -function $clinit_RadialLayoutPhases$Map(){ - $clinit_RadialLayoutPhases$Map = emptyMethod; - $MAP_65 = createValueOfMap(($clinit_RadialLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]))); -} - -var $MAP_65; -function $assembleAlgorithm(this$static, layoutGraph){ - var algorithm, configuration; - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_RadialLayoutPhases() , P1_NODE_PLACEMENT), P1_NODE_PLACEMENT); - $setPhase(this$static.algorithmAssembler, P2_EDGE_ROUTING, P2_EDGE_ROUTING); - configuration = new LayoutProcessorConfiguration; - $addBefore(configuration, P2_EDGE_ROUTING, ($clinit_IntermediateProcessorStrategy_1() , OVERLAP_REMOVAL)); - maskUndefined($getProperty_0(layoutGraph, ($clinit_RadialOptions() , COMPACTOR_0))) !== maskUndefined(($clinit_CompactionStrategy_0() , NONE_11)) && $addBefore(configuration, P2_EDGE_ROUTING, COMPACTION); - $addBefore(configuration, P2_EDGE_ROUTING, GRAPH_SIZE_CALCULATION); - $addProcessorConfiguration(this$static.algorithmAssembler, configuration); - algorithm = $build_0(this$static.algorithmAssembler, layoutGraph); - return algorithm; -} - -function RadialLayoutProvider(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit); -} - -defineClass(1131, 209, $intern_96, RadialLayoutProvider); -_.layout = function layout_4(layoutGraph, progressMonitor){ - var algorithm, builder, layoutRadius, processor, processor$iterator, root; - algorithm = $assembleAlgorithm(this, layoutGraph); - $begin(progressMonitor, 'Radial layout', algorithm.array.length); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_RadialOptions() , OMIT_NODE_MICRO_LAYOUT_2)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); - root = findRoot(layoutGraph); - $setProperty_1(layoutGraph, ($clinit_InternalProperties_3() , ROOT_NODE), root); - if (!root) { - throw toJs(new IllegalArgumentException_0('The given graph is not a tree!')); - } - layoutRadius = $doubleValue(castToDouble($getProperty_0(layoutGraph, RADIUS_0))); - layoutRadius == 0 && (layoutRadius = findLargestNodeInGraph(layoutGraph)); - $setProperty_1(layoutGraph, RADIUS_0, layoutRadius); - for (processor$iterator = new ArrayList$1($assembleAlgorithm(this, layoutGraph)); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(layoutGraph, $subTask(progressMonitor, 1)); - } - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_RadialLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialLayoutProvider', 1131); -function findLargestNodeInGraph(graph){ - var child, child$iterator, diameter, height, largestChild, largestChildSize, width_0; - largestChildSize = 0; - for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - width_0 = child.width_0; - height = child.height; - diameter = $wnd.Math.sqrt(width_0 * width_0 + height * height); - largestChildSize = $wnd.Math.max(diameter, largestChildSize); - largestChild = findLargestNodeInGraph(child); - largestChildSize = $wnd.Math.max(largestChild, largestChildSize); - } - return largestChildSize; -} - -function findRoot(graph){ - var child, child$iterator, incomingEdges; - for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - incomingEdges = allIncomingEdges(child); - if (!$hasNext_1(new Iterators$ConcatenatedIterator(transform_2(incomingEdges.val$inputs1.iterator_0(), new Iterables$10)))) { - return child; - } - } - return null; -} - -function findRootOfNode(elkNode){ - var parent_0; - parent_0 = getTreeParent(elkNode); - return !parent_0?elkNode:findRootOfNode(parent_0); -} - -function getNextLevelNodeSet(nodes){ - var nextLevelSet, node, node$iterator, successors; - successors = new HashSet; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - nextLevelSet = getSuccessorSet(node); - $addAll(successors, nextLevelSet); - } - return successors; -} - -function getNextLevelNodes(nodes){ - var nextLevelNodes, node, node$iterator, successors; - successors = new ArrayList; - for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - nextLevelNodes = getSuccessors(node); - $addAll_2(successors, nextLevelNodes); - } - return successors; -} - -function getNumberOfLeaves(node){ - var child, child$iterator, leafs, successors; - leafs = 0; - successors = getSuccessors(node); - if (successors.array.length == 0) { - return 1; - } - else { - for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 33); - leafs += getNumberOfLeaves(child); - } - } - return leafs; -} - -function getSuccessorSet(node){ - var children, old, outgoingEdge, outgoingEdge$iterator, successors, target; - successors = new HashSet; - children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); - if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { - target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); - children.map_0.containsKey(target) || (old = successors.map_0.put(target, successors) , old == null); - } - } - return successors; -} - -function getSuccessors(node){ - var children, outgoingEdge, outgoingEdge$iterator, successors, target; - successors = new ArrayList; - children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); - if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { - target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); - children.map_0.containsKey(target) || (successors.array[successors.array.length] = target , true); - } - } - return successors; -} - -function getTreeParent(node){ - var edgeFromParent, iterator; - iterator = allIncomingEdges(node); - if (isEmpty_13(iterator)) { - return null; - } - else { - edgeFromParent = (checkNotNull(iterator) , castTo(get_22(new Iterators$ConcatenatedIterator(transform_2(iterator.val$inputs1.iterator_0(), new Iterables$10))), 79)); - return connectableShapeToNode(castTo($get_20((!edgeFromParent.sources && (edgeFromParent.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edgeFromParent, 4, 7)) , edgeFromParent.sources), 0), 82)); - } -} - -function lambda$0_30(nodeOffsetY_0, radialOffset_2, node1_2, node2_3){ - var arc1, arc2, position1, position2, xPos1, xPos2, yPos1, yPos2; - position1 = castTo($getProperty_0(node1_2, ($clinit_CoreOptions() , POSITION_2)), 8); - xPos1 = position1.x_0; - yPos1 = position1.y_0 + nodeOffsetY_0; - arc1 = $wnd.Math.atan2(yPos1, xPos1); - arc1 < 0 && (arc1 += $intern_123); - arc1 += radialOffset_2; - arc1 > $intern_123 && (arc1 -= $intern_123); - position2 = castTo($getProperty_0(node2_3, POSITION_2), 8); - xPos2 = position2.x_0; - yPos2 = position2.y_0 + nodeOffsetY_0; - arc2 = $wnd.Math.atan2(yPos2, xPos2); - arc2 < 0 && (arc2 += $intern_123); - arc2 += radialOffset_2; - arc2 > $intern_123 && (arc2 -= $intern_123); - return $clinit_DoubleMath() , checkNonNegative(1.0E-10) , $wnd.Math.abs(arc1 - arc2) <= 1.0E-10 || arc1 == arc2 || isNaN(arc1) && isNaN(arc2)?0:arc1 < arc2?-1:arc1 > arc2?1:compare_0(isNaN(arc1), isNaN(arc2)); -} - -function RadialUtil$lambda$0$Type(radialOffset_2){ - this.nodeOffsetY_0 = 0; - this.radialOffset_2 = radialOffset_2; -} - -defineClass(549, 1, $intern_88, RadialUtil$lambda$0$Type); -_.compare_1 = function compare_78(arg0, arg1){ - return lambda$0_30(this.nodeOffsetY_0, this.radialOffset_2, castTo(arg0, 33), castTo(arg1, 33)); -} -; -_.equals_0 = function equals_165(other){ - return this === other; -} -; -_.reversed = function reversed_70(){ - return new Comparators$ReversedComparator(this); -} -; -_.nodeOffsetY_0 = 0; -_.radialOffset_2 = 0; -var Lorg_eclipse_elk_alg_radial_RadialUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialUtil/lambda$0$Type', 549); -function $process_89(graph, progressMonitor){ - var height, height0, margins, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, node$iterator0, offset, padding, posX, posY, width_0, width0; - $begin(progressMonitor, 'Calculate Graph Size', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - minXPos = $intern_98; - minYPos = $intern_98; - maxXPos = $intern_124; - maxYPos = $intern_124; - for (node$iterator0 = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { - node = castTo($doNext(node$iterator0), 33); - posX = node.x_0; - posY = node.y_0; - width0 = node.width_0; - height0 = node.height; - margins = castTo($getProperty_0(node, ($clinit_CoreOptions() , MARGINS_0)), 142); - minXPos = $wnd.Math.min(minXPos, posX - margins.left); - minYPos = $wnd.Math.min(minYPos, posY - margins.top_0); - maxXPos = $wnd.Math.max(maxXPos, posX + width0 + margins.right); - maxYPos = $wnd.Math.max(maxYPos, posY + height0 + margins.bottom); - } - padding = castTo($getProperty_0(graph, ($clinit_CoreOptions() , PADDING_6)), 116); - offset = new KVector_1(minXPos - padding.left, minYPos - padding.top_0); - for (node$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - $setX_2(node, node.x_0 - offset.x_0); - $setY_3(node, node.y_0 - offset.y_0); - } - width_0 = maxXPos - minXPos + (padding.left + padding.right); - height = maxYPos - minYPos + (padding.top_0 + padding.bottom); - $setWidth_0(graph, width_0); - $setHeight_0(graph, height); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function CalculateGraphSize(){ -} - -defineClass(1375, 1, $intern_105, CalculateGraphSize); -_.process = function process_85(graph, progressMonitor){ - $process_89(castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_CalculateGraphSize_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'CalculateGraphSize', 1375); -function $clinit_IntermediateProcessorStrategy_1(){ - $clinit_IntermediateProcessorStrategy_1 = emptyMethod; - OVERLAP_REMOVAL = new IntermediateProcessorStrategy_1('OVERLAP_REMOVAL', 0); - COMPACTION = new IntermediateProcessorStrategy_1('COMPACTION', 1); - GRAPH_SIZE_CALCULATION = new IntermediateProcessorStrategy_1('GRAPH_SIZE_CALCULATION', 2); -} - -function IntermediateProcessorStrategy_1(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_78(name_0){ - $clinit_IntermediateProcessorStrategy_1(); - return valueOf(($clinit_IntermediateProcessorStrategy$Map_1() , $MAP_66), name_0); -} - -function values_84(){ - $clinit_IntermediateProcessorStrategy_1(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]); -} - -defineClass(442, 22, {3:1, 35:1, 22:1, 442:1, 234:1}, IntermediateProcessorStrategy_1); -_.create_1 = function create_24(){ - switch (this.ordinal) { - case 0: - return new RadiusExtensionOverlapRemoval; - case 1: - return new GeneralCompactor; - case 2: - return new CalculateGraphSize; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); - } -} -; -var COMPACTION, GRAPH_SIZE_CALCULATION, OVERLAP_REMOVAL; -var Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.intermediate', 'IntermediateProcessorStrategy', 442, Ljava_lang_Enum_2_classLit, values_84, valueOf_78); -function $clinit_IntermediateProcessorStrategy$Map_1(){ - $clinit_IntermediateProcessorStrategy$Map_1 = emptyMethod; - $MAP_66 = createValueOfMap(($clinit_IntermediateProcessorStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]))); -} - -var $MAP_66; -function $contractLayer(this$static, layerNodes, isContracting){ - var length_0, node, node$iterator, parentX, parentY, treeParent, x_0, xPos, y_0, yPos; - for (node$iterator = layerNodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - xPos = node.x_0 + node.width_0 / 2; - yPos = node.y_0 + node.height / 2; - treeParent = this$static.root_0; - parentX = treeParent.x_0 + treeParent.width_0 / 2; - parentY = treeParent.y_0 + treeParent.height / 2; - x_0 = xPos - parentX; - y_0 = yPos - parentY; - length_0 = $wnd.Math.sqrt(x_0 * x_0 + y_0 * y_0); - x_0 *= this$static.compactionStep / length_0; - y_0 *= this$static.compactionStep / length_0; - if (isContracting) { - xPos -= x_0; - yPos -= y_0; - } - else { - xPos += x_0; - yPos += y_0; - } - $setX_2(node, xPos - node.width_0 / 2); - $setY_3(node, yPos - node.height / 2); - } -} - -function $overlap_1(this$static, node1, node2){ - var height1, height2, width1, width2, x1, x2, y1, y2; - x1 = node1.x_0 - this$static.spacing / 2; - x2 = node2.x_0 - this$static.spacing / 2; - y1 = node1.y_0 - this$static.spacing / 2; - y2 = node2.y_0 - this$static.spacing / 2; - width1 = node1.width_0 + this$static.spacing / 2; - width2 = node2.width_0 + this$static.spacing / 2; - height1 = node1.height + this$static.spacing / 2; - height2 = node2.height + this$static.spacing / 2; - if (x1 < x2 + width2 && x2 < x1 && y1 < y2 + height2 && y2 < y1) { - return true; - } - else if (x2 < x1 + width1 && x1 < x2 && y2 < y1 + height1 && y1 < y2) { - return true; - } - else if (x1 < x2 + width2 && x2 < x1 && y1 < y2 && y2 < y1 + height1) { - return true; - } - else if (x2 < x1 + width1 && x1 < x2 && y1 < y2 + height2 && y2 < y1) { - return true; - } - return false; -} - -function $overlapLayer(this$static, nodes){ - var i, overlapping; - overlapping = false; - if (nodes.size_1() < 2) { - return false; - } - for (i = 0; i < nodes.size_1(); i++) { - i < nodes.size_1() - 1?(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(i + 1), 33))):(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(0), 33))); - } - return overlapping; -} - -function $setCompactionStep(this$static, compactionStep){ - this$static.compactionStep = compactionStep; -} - -function $setRoot(this$static, root){ - this$static.root_0 = root; -} - -function $setSpacing(this$static, spacing){ - this$static.spacing = spacing; -} - -defineClass(645, 1, {}); -_.compactionStep = 1; -_.spacing = 0; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AbstractRadiusExtensionCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AbstractRadiusExtensionCompaction', 645); -function $constructContour(this$static, nodes){ - var node, node$iterator, successors; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - $put(this$static.leftContour, node, node); - $put(this$static.rightContour, node, node); - successors = getSuccessors(node); - if (successors.array.length != 0) { - !!this$static.sorter && this$static.sorter.sort_1(successors); - $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); - $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); - while (getNextLevelNodes(successors).array.length != 0) { - successors = getNextLevelNodes(successors); - !!this$static.sorter && this$static.sorter.sort_1(successors); - $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); - $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); - } - } - } -} - -function $contourOverlap(this$static, neighbourWedgeParent, node, left){ - var contour, contourNode, contourNode$iterator; - contour = left?castTo($get(this$static.leftContour, neighbourWedgeParent), 21):castTo($get(this$static.rightContour, neighbourWedgeParent), 21); - for (contourNode$iterator = contour.iterator_0(); contourNode$iterator.hasNext_0();) { - contourNode = castTo(contourNode$iterator.next_1(), 33); - if ($overlap_1(this$static, node, contourNode)) { - return true; - } - } - return false; -} - -function $contractWedge(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes){ - var isOverlapping, nextLevelNodes, wasContracted; - isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); - wasContracted = false; - while (!isOverlapping) { - $contractLayer(this$static, currentRadiusNodes, true); - wasContracted = true; - isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); - } - wasContracted && $contractLayer(this$static, currentRadiusNodes, false); - nextLevelNodes = getNextLevelNodes(currentRadiusNodes); - if (nextLevelNodes.array.length != 0) { - !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); - $contractWedge(this$static, currentRadiusNodes, radialPredecessor, radialSuccessor, nextLevelNodes); - } -} - -function $overlapping(this$static, predecessors, leftParent, rightParent, layerNodes){ - var firstNode, lastNode, predecessor, predecessor$iterator, sortedNode, sortedNode$iterator; - !!this$static.sorter && this$static.sorter.sort_1(layerNodes); - firstNode = castTo(layerNodes.get_0(0), 33); - if ($contourOverlap(this$static, leftParent, firstNode, false)) { - return true; - } - lastNode = castTo(layerNodes.get_0(layerNodes.size_1() - 1), 33); - if ($contourOverlap(this$static, rightParent, lastNode, true)) { - return true; - } - if ($overlapLayer(this$static, layerNodes)) { - return true; - } - for (sortedNode$iterator = layerNodes.iterator_0(); sortedNode$iterator.hasNext_0();) { - sortedNode = castTo(sortedNode$iterator.next_1(), 33); - for (predecessor$iterator = predecessors.iterator_0(); predecessor$iterator.hasNext_0();) { - predecessor = castTo(predecessor$iterator.next_1(), 33); - if ($overlap_1(this$static, sortedNode, predecessor)) { - return true; - } - } - } - return false; -} - -function AnnulusWedgeCompaction(){ - this.leftContour = new HashMultimap; - this.rightContour = new HashMultimap; -} - -defineClass(1772, 645, {}, AnnulusWedgeCompaction); -_.compact_0 = function compact_2(graph){ - var i, k, leftParent, nodeAsList, rightParent, rootList, spacing, stepSize, successors; - this.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - $setRoot(this, this.root); - this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); - stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); - !!stepSize && $setCompactionStep(this, stepSize.value_0); - spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); - $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); - successors = getSuccessors(this.root); - !!this.sorter && this.sorter.sort_1(successors); - $constructContour(this, successors); - rootList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [this.root])); - for (k = 0; k < 2; k++) { - for (i = 0; i < successors.array.length; i++) { - nodeAsList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [(checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33))])); - rightParent = i < successors.array.length - 1?(checkCriticalElementIndex(i + 1, successors.array.length) , castTo(successors.array[i + 1], 33)):(checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33)); - leftParent = i == 0?castTo($get_11(successors, successors.array.length - 1), 33):(checkCriticalElementIndex(i - 1, successors.array.length) , castTo(successors.array[i - 1], 33)); - $contractWedge(this, (checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33) , rootList), leftParent, rightParent, nodeAsList); - } - } -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AnnulusWedgeCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AnnulusWedgeCompaction', 1772); -function $process_90(graph, progressMonitor){ - var compactor; - $begin(progressMonitor, 'General Compactor', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - compactor = $create_11(castTo($getProperty_0(graph, ($clinit_RadialOptions() , COMPACTOR_0)), 380)); - compactor.compact_0(graph); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function GeneralCompactor(){ -} - -defineClass(1374, 1, $intern_105, GeneralCompactor); -_.process = function process_86(graph, progressMonitor){ - $process_90(castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_GeneralCompactor_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'GeneralCompactor', 1374); -function $calculateRadius(this$static, node){ - var radius, root, rootX, rootY, vectorX, vectorY, xPos, yPos; - xPos = node.x_0; - yPos = node.y_0; - root = this$static.root_0; - rootX = root.x_0; - rootY = root.y_0; - vectorX = xPos - rootX; - vectorY = yPos - rootY; - radius = $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); - return radius; -} - -function $contract(this$static, nodes){ - var isOverlapping, nextLevelNodes, wasContracted; - if (nodes.array.length != 0) { - isOverlapping = $overlapping_0(this$static, nodes); - wasContracted = false; - while (!isOverlapping) { - $contractLayer(this$static, nodes, true); - wasContracted = true; - isOverlapping = $overlapping_0(this$static, nodes); - } - wasContracted && $contractLayer(this$static, nodes, false); - nextLevelNodes = getNextLevelNodes(nodes); - !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); - this$static.lastRadius = $calculateRadius(this$static, (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33))); - $contract(this$static, nextLevelNodes); - } -} - -function $overlapping_0(this$static, nodes){ - var node, node$iterator, parent_0; - if ($overlapLayer(this$static, nodes)) { - return true; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - parent_0 = getTreeParent(node); - if ($overlap_1(this$static, node, parent_0)) { - return true; - } - if ($calculateRadius(this$static, node) - this$static.spacing <= this$static.lastRadius) { - return true; - } - } - return false; -} - -function RadialCompaction(){ -} - -defineClass(1771, 645, {}, RadialCompaction); -_.compact_0 = function compact_3(graph){ - var firstLevelNodes, root, spacing, stepSize; - root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - this.root_0 = root; - this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); - stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); - !!stepSize && $setCompactionStep(this, stepSize.value_0); - spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); - $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); - firstLevelNodes = getSuccessors(root); - !!this.sorter && this.sorter.sort_1(firstLevelNodes); - $contract(this, firstLevelNodes); -} -; -_.lastRadius = 0; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_RadialCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'RadialCompaction', 1771); -function $isCrossing(this$static, node1, node2){ - var b1, b2, m1, m2, node1Vector, node2Vector, position1, position2, rootX, rootY, xCut, xPos1, xPos2, yPos1, yPos2; - rootX = this$static.root.x_0 + this$static.root.width_0 / 2; - rootY = this$static.root.x_0 + this$static.root.width_0 / 2; - xPos1 = node1.x_0 + node1.width_0 / 2; - yPos1 = node1.y_0 + node1.height / 2; - node1Vector = new KVector_1(xPos1, yPos1); - position1 = castTo($getProperty_0(node1, ($clinit_CoreOptions() , POSITION_2)), 8); - position1.x_0 = position1.x_0 + rootX; - position1.y_0 = position1.y_0 + rootY; - m1 = (node1Vector.y_0 - position1.y_0) / (node1Vector.x_0 - position1.x_0); - b1 = node1Vector.y_0 - m1 * node1Vector.x_0; - xPos2 = node2.x_0 + node2.width_0 / 2; - yPos2 = node2.y_0 + node2.height / 2; - node2Vector = new KVector_1(xPos2, yPos2); - position2 = castTo($getProperty_0(node2, POSITION_2), 8); - position2.x_0 = position2.x_0 + rootX; - position2.y_0 = position2.y_0 + rootY; - m2 = (node2Vector.y_0 - position2.y_0) / (node2Vector.x_0 - position2.x_0); - b2 = node2Vector.y_0 - m2 * node2Vector.x_0; - xCut = (b1 - b2) / (m2 - m1); - if (position1.x_0 < xCut && node1Vector.x_0 < xCut || xCut < position1.x_0 && xCut < node1Vector.x_0) { - return false; - } - else if (position2.x_0 < xCut && node2Vector.x_0 < xCut || xCut < position2.x_0 && xCut < node2Vector.x_0) { - return false; - } - return true; -} - -function CrossingMinimizationPosition(){ -} - -defineClass(1779, 1, {}, CrossingMinimizationPosition); -_.evaluate = function evaluate(rootNode){ - var crossings, i, k, node1, node1$iterator, nodes; - this.root = rootNode; - crossings = 0; - nodes = getSuccessors(rootNode); - k = 0; - for (node1$iterator = new ArrayList$1(nodes); node1$iterator.i < node1$iterator.this$01.array.length;) { - node1 = castTo($next_7(node1$iterator), 33); - ++k; - for (i = k; i < nodes.array.length; i++) { - $isCrossing(this, node1, (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 33))) && (crossings += 1); - } - } - return crossings; -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_optimization_CrossingMinimizationPosition_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'CrossingMinimizationPosition', 1779); -function EdgeLengthOptimization(){ -} - -defineClass(1777, 1, {}, EdgeLengthOptimization); -_.evaluate = function evaluate_0(root){ - var edge, edge$iterator, edgeLength, rootX, rootY, sourceClip, target, targetClip, targetX, targetY, vector, vectorX, vectorY; - edgeLength = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - targetX = target.x_0 + target.width_0 / 2; - targetY = target.y_0 + target.height / 2; - rootX = root.x_0 + root.width_0 / 2; - rootY = root.y_0 + root.height / 2; - vector = new KVector; - vector.x_0 = targetX - rootX; - vector.y_0 = targetY - rootY; - sourceClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(sourceClip, root.width_0, root.height); - vector.x_0 -= sourceClip.x_0; - vector.y_0 -= sourceClip.y_0; - rootX = targetX - vector.x_0; - rootY = targetY - vector.y_0; - targetClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(targetClip, target.width_0, target.height); - vector.x_0 -= targetClip.x_0; - vector.y_0 -= targetClip.y_0; - targetX = rootX + vector.x_0; - targetY = rootY + vector.y_0; - vectorX = targetX - rootX; - vectorY = targetY - rootY; - edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); - } - return edgeLength; -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthOptimization', 1777); -function EdgeLengthPositionOptimization(){ -} - -defineClass(1778, 1, {}, EdgeLengthPositionOptimization); -_.evaluate = function evaluate_1(root){ - var edge, edge$iterator, edgeLength, position, rootX, rootY, target, targetX, targetY, vectorX, vectorY; - edgeLength = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - targetX = target.x_0 + target.width_0 / 2; - targetY = target.y_0 + target.height / 2; - position = castTo($getProperty_0(target, ($clinit_CoreOptions() , POSITION_2)), 8); - rootX = root.x_0 + position.x_0 + root.width_0 / 2; - rootY = root.y_0 + position.y_0 + root.height; - vectorX = targetX - rootX; - vectorY = targetY - rootY; - edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); - } - return edgeLength; -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthPositionOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthPositionOptimization', 1778); -function $extend(this$static, graph, nodes, progressMonitor){ - var firstNode, index_0, movedDistance, movedX, movedY, nextLevelNode, nextLevelNode$iterator, nextLevelNodes, node, node$iterator, oldPositions, root, rootX, rootY, nodeX, nodeY, differenceX, differenceY, length_0, unitX, unitY; - if (nodes.array.length != 0) { - oldPositions = new ArrayList; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - $add_3(oldPositions, new KVector_1(node.x_0, node.y_0)); - } - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - while ($overlapLayer(this$static, nodes)) { - $contractLayer(this$static, nodes, false); - } - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - movedX = 0; - movedY = 0; - firstNode = null; - if (nodes.array.length != 0) { - firstNode = (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33)); - movedX = firstNode.x_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).x_0; - movedY = firstNode.y_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).y_0; - } - movedDistance = $wnd.Math.sqrt(movedX * movedX + movedY * movedY); - nextLevelNodes = getNextLevelNodeSet(nodes); - index_0 = 1; - while (nextLevelNodes.map_0.size_1() != 0) { - for (nextLevelNode$iterator = nextLevelNodes.map_0.keySet_0().iterator_0(); nextLevelNode$iterator.hasNext_0();) { - nextLevelNode = castTo(nextLevelNode$iterator.next_1(), 33); - root = this$static.root_0; - rootX = root.x_0 + root.width_0 / 2; - rootY = root.y_0 + root.height / 2; - nodeX = nextLevelNode.x_0 + nextLevelNode.width_0 / 2; - nodeY = nextLevelNode.y_0 + nextLevelNode.height / 2; - differenceX = nodeX - rootX; - differenceY = nodeY - rootY; - length_0 = $wnd.Math.sqrt(differenceX * differenceX + differenceY * differenceY); - unitX = differenceX / length_0; - unitY = differenceY / length_0; - $setX_2(nextLevelNode, nextLevelNode.x_0 + unitX * movedDistance); - $setY_3(nextLevelNode, nextLevelNode.y_0 + unitY * movedDistance); - } - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - nextLevelNodes = getNextLevelNodeSet(new ArrayList_1(nextLevelNodes)); - ++index_0; - } - !!this$static.sorter && this$static.sorter.sort_1(new ArrayList_1(nextLevelNodes)); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - $extend(this$static, graph, new ArrayList_1(nextLevelNodes), progressMonitor); - } -} - -function $process_91(this$static, graph, progressMonitor){ - var root, spacing, successors; - $begin(progressMonitor, 'Remove overlaps', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - this$static.root_0 = root; - this$static.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); - spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); - $setSpacing(this$static, (checkCriticalNotNull(spacing) , spacing)); - successors = getSuccessors(root); - $extend(this$static, graph, successors, progressMonitor); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function RadiusExtensionOverlapRemoval(){ -} - -defineClass(1373, 645, $intern_105, RadiusExtensionOverlapRemoval); -_.process = function process_87(graph, progressMonitor){ - $process_91(this, castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_overlaps_RadiusExtensionOverlapRemoval_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.overlaps', 'RadiusExtensionOverlapRemoval', 1373); -function $clinit_AnnulusWedgeCriteria(){ - $clinit_AnnulusWedgeCriteria = emptyMethod; - LEAF_NUMBER = new AnnulusWedgeCriteria('LEAF_NUMBER', 0); - NODE_SIZE_0 = new AnnulusWedgeCriteria('NODE_SIZE', 1); -} - -function $create_10(this$static){ - switch (this$static.ordinal) { - case 0: - return new AnnulusWedgeByLeafs; - case 1: - return new AnnulusWedgeByNodeSpace; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function AnnulusWedgeCriteria(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_79(name_0){ - $clinit_AnnulusWedgeCriteria(); - return valueOf(($clinit_AnnulusWedgeCriteria$Map() , $MAP_67), name_0); -} - -function values_85(){ - $clinit_AnnulusWedgeCriteria(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]); -} - -defineClass(426, 22, {3:1, 35:1, 22:1, 426:1}, AnnulusWedgeCriteria); -var LEAF_NUMBER, NODE_SIZE_0; -var Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'AnnulusWedgeCriteria', 426, Ljava_lang_Enum_2_classLit, values_85, valueOf_79); -function $clinit_AnnulusWedgeCriteria$Map(){ - $clinit_AnnulusWedgeCriteria$Map = emptyMethod; - $MAP_67 = createValueOfMap(($clinit_AnnulusWedgeCriteria() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]))); -} - -var $MAP_67; -function $clinit_CompactionStrategy_0(){ - $clinit_CompactionStrategy_0 = emptyMethod; - NONE_11 = new CompactionStrategy_0('NONE', 0); - RADIAL_COMPACTION = new CompactionStrategy_0('RADIAL_COMPACTION', 1); - WEDGE_COMPACTION = new CompactionStrategy_0('WEDGE_COMPACTION', 2); -} - -function $create_11(this$static){ - switch (this$static.ordinal) { - case 1: - return new RadialCompaction; - case 2: - return new AnnulusWedgeCompaction; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CompactionStrategy_0(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_80(name_0){ - $clinit_CompactionStrategy_0(); - return valueOf(($clinit_CompactionStrategy$Map_0() , $MAP_68), name_0); -} - -function values_86(){ - $clinit_CompactionStrategy_0(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]); -} - -defineClass(380, 22, {3:1, 35:1, 22:1, 380:1}, CompactionStrategy_0); -var NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION; -var Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'CompactionStrategy', 380, Ljava_lang_Enum_2_classLit, values_86, valueOf_80); -function $clinit_CompactionStrategy$Map_0(){ - $clinit_CompactionStrategy$Map_0 = emptyMethod; - $MAP_68 = createValueOfMap(($clinit_CompactionStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]))); -} - -var $MAP_68; -function $clinit_RadialMetaDataProvider(){ - $clinit_RadialMetaDataProvider = emptyMethod; - ORDER_ID = new Property_1('org.eclipse.elk.radial.orderId', valueOf_4(0)); - RADIUS = new Property_1('org.eclipse.elk.radial.radius', 0); - COMPACTOR_DEFAULT = ($clinit_CompactionStrategy_0() , NONE_11); - COMPACTOR = new Property_1('org.eclipse.elk.radial.compactor', COMPACTOR_DEFAULT); - valueOf_4(0); - COMPACTION_STEP_SIZE = new Property_1('org.eclipse.elk.radial.compactionStepSize', valueOf_4(1)); - SORTER_DEFAULT = ($clinit_SortingStrategy() , NONE_13); - SORTER = new Property_1('org.eclipse.elk.radial.sorter', SORTER_DEFAULT); - WEDGE_CRITERIA_DEFAULT = ($clinit_AnnulusWedgeCriteria() , NODE_SIZE_0); - WEDGE_CRITERIA = new Property_1('org.eclipse.elk.radial.wedgeCriteria', WEDGE_CRITERIA_DEFAULT); - OPTIMIZATION_CRITERIA_DEFAULT = ($clinit_RadialTranslationStrategy() , NONE_12); - OPTIMIZATION_CRITERIA = new Property_1('org.eclipse.elk.radial.optimizationCriteria', OPTIMIZATION_CRITERIA_DEFAULT); -} - -function RadialMetaDataProvider(){ - $clinit_RadialMetaDataProvider(); -} - -defineClass(852, 1, $intern_90, RadialMetaDataProvider); -_.apply_4 = function apply_159(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.orderId'), ''), 'Order ID'), 'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'), valueOf_4(0)), ($clinit_LayoutOptionData$Type() , INT)), Ljava_lang_Integer_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.radius'), ''), 'Radius'), 'The radius option can be used to set the initial radius for the radial layouter.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactor'), ''), 'Compaction'), 'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'), COMPACTOR_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactionStepSize'), ''), 'Compaction Step Size'), 'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'), valueOf_4(1)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.radial.compactionStepSize', 'org.eclipse.elk.radial.compactor', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.sorter'), ''), 'Sorter'), 'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'), SORTER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.wedgeCriteria'), ''), 'Annulus Wedge Criteria'), 'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'), WEDGE_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.optimizationCriteria'), ''), 'Translation Optimization'), 'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'), OPTIMIZATION_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit), of_1(PARENTS)))); - $apply_20((new RadialOptions , registry)); -} -; -var COMPACTION_STEP_SIZE, COMPACTOR, COMPACTOR_DEFAULT, OPTIMIZATION_CRITERIA, OPTIMIZATION_CRITERIA_DEFAULT, ORDER_ID, RADIUS, SORTER, SORTER_DEFAULT, WEDGE_CRITERIA, WEDGE_CRITERIA_DEFAULT; -var Lorg_eclipse_elk_alg_radial_options_RadialMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialMetaDataProvider', 852); -function $clinit_RadialOptions(){ - $clinit_RadialOptions = emptyMethod; - POSITION_1 = ($clinit_CoreOptions() , POSITION_2); - SPACING_NODE_NODE_2 = SPACING_NODE_NODE_6; - NODE_SIZE_CONSTRAINTS_3 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_2 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_3 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_3 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_2 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_3 = PORT_LABELS_PLACEMENT_5; - COMPACTION_STEP_SIZE_0 = ($clinit_RadialMetaDataProvider() , COMPACTION_STEP_SIZE); - COMPACTOR_0 = COMPACTOR; - OPTIMIZATION_CRITERIA_0 = OPTIMIZATION_CRITERIA; - ORDER_ID_0 = ORDER_ID; - RADIUS_0 = RADIUS; - SORTER_0 = SORTER; - WEDGE_CRITERIA_0 = WEDGE_CRITERIA; -} - -function $apply_20(registry){ - $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.radial'), 'ELK Radial'), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new RadialOptions$RadialFactory), 'org.eclipse.elk.radial'))); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.position', $getDefault(POSITION_1)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_2)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_2)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_2)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactionStepSize', $getDefault(COMPACTION_STEP_SIZE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactor', $getDefault(COMPACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.optimizationCriteria', $getDefault(OPTIMIZATION_CRITERIA_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.orderId', $getDefault(ORDER_ID_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.radius', $getDefault(RADIUS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.sorter', $getDefault(SORTER_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.wedgeCriteria', $getDefault(WEDGE_CRITERIA_0)); -} - -function RadialOptions(){ - $clinit_RadialOptions(); -} - -defineClass(996, 1, $intern_90, RadialOptions); -_.apply_4 = function apply_160(registry){ - $apply_20(registry); -} -; -var COMPACTION_STEP_SIZE_0, COMPACTOR_0, NODE_LABELS_PLACEMENT_3, NODE_SIZE_CONSTRAINTS_3, NODE_SIZE_MINIMUM_2, NODE_SIZE_OPTIONS_3, OMIT_NODE_MICRO_LAYOUT_2, OPTIMIZATION_CRITERIA_0, ORDER_ID_0, PORT_LABELS_PLACEMENT_3, POSITION_1, RADIUS_0, SORTER_0, SPACING_NODE_NODE_2, WEDGE_CRITERIA_0; -var Lorg_eclipse_elk_alg_radial_options_RadialOptions_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions', 996); -function RadialOptions$RadialFactory(){ -} - -defineClass(997, 1, {}, RadialOptions$RadialFactory); -_.create_0 = function create_25(){ - var provider; - return provider = new RadialLayoutProvider , provider; -} -; -_.destroy = function destroy_4(obj){ -} -; -var Lorg_eclipse_elk_alg_radial_options_RadialOptions$RadialFactory_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions/RadialFactory', 997); -function $clinit_RadialTranslationStrategy(){ - $clinit_RadialTranslationStrategy = emptyMethod; - NONE_12 = new RadialTranslationStrategy('NONE', 0); - EDGE_LENGTH_0 = new RadialTranslationStrategy('EDGE_LENGTH', 1); - EDGE_LENGTH_BY_POSITION = new RadialTranslationStrategy('EDGE_LENGTH_BY_POSITION', 2); - CROSSING_MINIMIZATION_BY_POSITION = new RadialTranslationStrategy('CROSSING_MINIMIZATION_BY_POSITION', 3); -} - -function $create_12(this$static){ - switch (this$static.ordinal) { - case 1: - return new EdgeLengthOptimization; - case 2: - return new EdgeLengthPositionOptimization; - case 3: - return new CrossingMinimizationPosition; - case 0: - return null; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function RadialTranslationStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_81(name_0){ - $clinit_RadialTranslationStrategy(); - return valueOf(($clinit_RadialTranslationStrategy$Map() , $MAP_69), name_0); -} - -function values_87(){ - $clinit_RadialTranslationStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]); -} - -defineClass(340, 22, {3:1, 35:1, 22:1, 340:1}, RadialTranslationStrategy); -var CROSSING_MINIMIZATION_BY_POSITION, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, NONE_12; -var Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'RadialTranslationStrategy', 340, Ljava_lang_Enum_2_classLit, values_87, valueOf_81); -function $clinit_RadialTranslationStrategy$Map(){ - $clinit_RadialTranslationStrategy$Map = emptyMethod; - $MAP_69 = createValueOfMap(($clinit_RadialTranslationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]))); -} - -var $MAP_69; -function $clinit_SortingStrategy(){ - $clinit_SortingStrategy = emptyMethod; - NONE_13 = new SortingStrategy('NONE', 0); - POLAR_COORDINATE = new SortingStrategy('POLAR_COORDINATE', 1); - ID_0 = new SortingStrategy('ID', 2); -} - -function $create_13(this$static){ - switch (this$static.ordinal) { - case 0: - return null; - case 1: - return new PolarCoordinateSorter; - case 2: - return new IDSorter; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function SortingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_82(name_0){ - $clinit_SortingStrategy(); - return valueOf(($clinit_SortingStrategy$Map() , $MAP_70), name_0); -} - -function values_88(){ - $clinit_SortingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]); -} - -defineClass(293, 22, {3:1, 35:1, 22:1, 293:1}, SortingStrategy); -var ID_0, NONE_13, POLAR_COORDINATE; -var Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'SortingStrategy', 293, Ljava_lang_Enum_2_classLit, values_88, valueOf_82); -function $clinit_SortingStrategy$Map(){ - $clinit_SortingStrategy$Map = emptyMethod; - $MAP_70 = createValueOfMap(($clinit_SortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]))); -} - -var $MAP_70; -function $positionNodes(this$static, node, currentRadius, minAlpha, maxAlpha, optimalOffset){ - var alpha_0, alphaPoint, child, child$iterator, numberOfChildLeafs, numberOfLeafs, radOffest, s, successors, tau, xPos, yPos, xPosition, yPosition; - radOffest = optimalOffset; - alphaPoint = (minAlpha + maxAlpha) / 2 + radOffest; - xPos = currentRadius * $wnd.Math.cos(alphaPoint); - yPos = currentRadius * $wnd.Math.sin(alphaPoint); - xPosition = xPos - node.width_0 / 2; - yPosition = yPos - node.height / 2; - $setX_2(node, xPosition); - $setY_3(node, yPosition); - numberOfLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(node); - tau = 2 * $wnd.Math.acos(currentRadius / currentRadius + this$static.radius); - if (tau < maxAlpha - minAlpha) { - s = tau / numberOfLeafs; - alpha_0 = (minAlpha + maxAlpha - tau) / 2; - } - else { - s = (maxAlpha - minAlpha) / numberOfLeafs; - alpha_0 = minAlpha; - } - successors = getSuccessors(node); - if (this$static.sorter) { - this$static.sorter.initialize_0(this$static.root); - this$static.sorter.sort_1(successors); - } - for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 33); - numberOfChildLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(child); - $positionNodes(this$static, child, currentRadius + this$static.radius, alpha_0, alpha_0 + s * numberOfChildLeafs, optimalOffset); - alpha_0 += s * numberOfChildLeafs; - } -} - -function $process_92(this$static, graph, progressMonitor){ - $begin(progressMonitor, 'Eades radial', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - this$static.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - this$static.radius = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , RADIUS_0)))); - this$static.sorter = $create_13(castTo($getProperty_0(graph, SORTER_0), 293)); - this$static.annulusWedgeCriteria = $create_10(castTo($getProperty_0(graph, WEDGE_CRITERIA_0), 426)); - this$static.optimizer = $create_12(castTo($getProperty_0(graph, OPTIMIZATION_CRITERIA_0), 340)); - $translate_0(this$static); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function $translate_0(this$static){ - var i, offset, optimalOffset, optimalValue, translatedValue; - optimalOffset = 0; - optimalValue = $intern_98; - if (this$static.optimizer) { - for (i = 0; i < 360; i++) { - offset = i * 0.017453292519943295; - $positionNodes(this$static, this$static.root, 0, 0, $intern_123, offset); - translatedValue = this$static.optimizer.evaluate(this$static.root); - if (translatedValue < optimalValue) { - optimalOffset = offset; - optimalValue = translatedValue; - } - } - } - $positionNodes(this$static, this$static.root, 0, 0, $intern_123, optimalOffset); -} - -function EadesRadial(){ -} - -defineClass(1449, 1, $intern_113, EadesRadial); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_24(graph){ - return castTo(graph, 33) , null; -} -; -_.process = function process_88(graph, progressMonitor){ - $process_92(this, castTo(graph, 33), progressMonitor); -} -; -_.radius = 0; -var Lorg_eclipse_elk_alg_radial_p1position_EadesRadial_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position', 'EadesRadial', 1449); -function AnnulusWedgeByLeafs(){ -} - -defineClass(1775, 1, {}, AnnulusWedgeByLeafs); -_.calculateWedgeSpace = function calculateWedgeSpace(node){ - return getNumberOfLeaves(node); -} -; -var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByLeafs_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByLeafs', 1775); -function $calculateWedgeSpace(this$static, node){ - var child, child$iterator, childSpace, height, nodeSize, successors, width_0; - successors = getSuccessors(node); - height = node.height; - width_0 = node.width_0; - nodeSize = $wnd.Math.sqrt(height * height + width_0 * width_0); - childSpace = 0; - for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 33); - childSpace += $calculateWedgeSpace(this$static, child); - } - return $wnd.Math.max(childSpace, nodeSize); -} - -function AnnulusWedgeByNodeSpace(){ -} - -defineClass(1776, 1, {}, AnnulusWedgeByNodeSpace); -_.calculateWedgeSpace = function calculateWedgeSpace_0(node){ - return $calculateWedgeSpace(this, node); -} -; -var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByNodeSpace_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByNodeSpace', 1776); -function $process_93(this$static, graph, progressMonitor){ - var root; - $begin(progressMonitor, 'Straight Line Edge Routing', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - $routeEdges_1(this$static, root); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function $routeEdges_1(this$static, node){ - var edge, edge$iterator, section, sourceClip, sourceX, sourceY, target, targetClip, targetX, targetY, vector; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - if (!instanceOf($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 186)) { - target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - if (!$isHierarchical(edge)) { - sourceX = node.x_0 + node.width_0 / 2; - sourceY = node.y_0 + node.height / 2; - targetX = target.x_0 + target.width_0 / 2; - targetY = target.y_0 + target.height / 2; - vector = new KVector; - vector.x_0 = targetX - sourceX; - vector.y_0 = targetY - sourceY; - sourceClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(sourceClip, node.width_0, node.height); - vector.x_0 -= sourceClip.x_0; - vector.y_0 -= sourceClip.y_0; - sourceX = targetX - vector.x_0; - sourceY = targetY - vector.y_0; - targetClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(targetClip, target.width_0, target.height); - vector.x_0 -= targetClip.x_0; - vector.y_0 -= targetClip.y_0; - targetX = sourceX + vector.x_0; - targetY = sourceY + vector.y_0; - section = firstEdgeSection(edge, true, true); - $setStartX(section, sourceX); - $setStartY(section, sourceY); - $setEndX(section, targetX); - $setEndY(section, targetY); - $routeEdges_1(this$static, target); - } - } - } -} - -function StraightLineEdgeRouter(){ -} - -defineClass(1450, 1, $intern_113, StraightLineEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_25(graph){ - return castTo(graph, 33) , null; -} -; -_.process = function process_89(graph, progressMonitor){ - $process_93(this, castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_p2routing_StraightLineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.radial.p2routing', 'StraightLineEdgeRouter', 1450); -function $sort_2(this$static, nodes){ - nodes.sort_0(this$static.idSorter); -} - -function IDSorter(){ - this.idSorter = new IDSorter$lambda$0$Type; -} - -function lambda$0_31(node1_0, node2_1){ - var orderID1, orderID2; - orderID1 = castTo($getProperty_0(node1_0, ($clinit_RadialOptions() , ORDER_ID_0)), 19); - orderID2 = castTo($getProperty_0(node2_1, ORDER_ID_0), 19); - return compare_5(orderID1.value_0, orderID2.value_0); -} - -defineClass(811, 1, {}, IDSorter); -_.initialize_0 = function initialize_3(root){ -} -; -_.sort_1 = function sort_10(nodes){ - $sort_2(this, nodes); -} -; -var Lorg_eclipse_elk_alg_radial_sorting_IDSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter', 811); -function IDSorter$lambda$0$Type(){ -} - -defineClass(1774, 1, $intern_88, IDSorter$lambda$0$Type); -_.compare_1 = function compare_79(arg0, arg1){ - return lambda$0_31(castTo(arg0, 33), castTo(arg1, 33)); -} -; -_.equals_0 = function equals_166(other){ - return this === other; -} -; -_.reversed = function reversed_71(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_radial_sorting_IDSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter/lambda$0$Type', 1774); -function $initialize_7(this$static, root){ - var successors; - this$static.idSorter = new IDSorter; - successors = getSuccessors(root); - $sort(successors, this$static.compRight); - $setIDForNodes(this$static, successors, 0); -} - -function $setIDForNodes(this$static, nodes, idOffset){ - var arc, id_0, nextLayerId, node, node$iterator, nodeSuccessors; - id_0 = idOffset; - nextLayerId = 0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - $setProperty_1(node, ($clinit_RadialOptions() , ORDER_ID_0), valueOf_4(id_0++)); - nodeSuccessors = getSuccessors(node); - arc = $wnd.Math.atan2(node.y_0 + node.height / 2, node.x_0 + node.width_0 / 2); - arc += arc < 0?$intern_123:0; - arc < 0.7853981633974483 || arc > $intern_126?$sort(nodeSuccessors, this$static.compLeft):arc <= $intern_126 && arc > $intern_127?$sort(nodeSuccessors, this$static.compTop):arc <= $intern_127 && arc > $intern_128?$sort(nodeSuccessors, this$static.compRight):arc <= $intern_128 && $sort(nodeSuccessors, this$static.compBottom); - nextLayerId = $setIDForNodes(this$static, nodeSuccessors, nextLayerId); - } - return id_0; -} - -function PolarCoordinateSorter(){ - this.compRight = new RadialUtil$lambda$0$Type(0); - this.compLeft = new RadialUtil$lambda$0$Type($intern_122); - this.compTop = new RadialUtil$lambda$0$Type($intern_121); - this.compBottom = new RadialUtil$lambda$0$Type($intern_97); -} - -defineClass(1773, 1, {}, PolarCoordinateSorter); -_.initialize_0 = function initialize_4(root){ - $initialize_7(this, root); -} -; -_.sort_1 = function sort_11(nodes){ - var root; - if (!nodes.isEmpty()) { - if (!this.idSorter) { - root = findRootOfNode(castTo(nodes.get_0(0), 33)); - $initialize_7(this, root); - } - $sort_2(this.idSorter, nodes); - } -} -; -var Lorg_eclipse_elk_alg_radial_sorting_PolarCoordinateSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'PolarCoordinateSorter', 1773); -function RectPackingLayoutProvider(){ -} - -function applyPadding(rectangles, padding){ - var rect, rect$iterator; - for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { - rect = castTo($doNext(rect$iterator), 33); - $setLocation_1(rect, rect.x_0 + padding.left, rect.y_0 + padding.top_0); - } -} - -function lambda$0_32(a_0, b_1){ - var positionA, positionB; - positionA = castTo($getProperty_0(a_0, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 19).value_0; - positionB = castTo($getProperty_0(b_1, DESIRED_POSITION_0), 19).value_0; - return positionA == positionB?-1:positionA < positionB?-1:positionA > positionB?1:0; -} - -defineClass(1136, 209, $intern_96, RectPackingLayoutProvider); -_.layout = function layout_5(layoutGraph, progressMonitor){ - var aspectRatio, builder, compaction, drawing, elkNode, elkNode$iterator, elkNode$iterator0, elkNode$iterator1, elkNode$iterator2, expandNodes, expandToAspectRatio, firstIt, fixedNodes, goal, index_0, interactive, lastPlaceShift, maxWidth, minSize, nodeNodeSpacing, onlyFirstIteration, padding, position, rectangles, secondIt, targetWidth; - $begin(progressMonitor, 'Rectangle Packing', 1); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - aspectRatio = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); - goal = castTo($getProperty_0(layoutGraph, OPTIMIZATION_GOAL_0), 381); - lastPlaceShift = $booleanValue(castToBoolean($getProperty_0(layoutGraph, LAST_PLACE_SHIFT_0))); - onlyFirstIteration = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ONLY_FIRST_ITERATION_0))); - expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_NODES))); - padding = castTo($getProperty_0(layoutGraph, PADDING_3), 116); - nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, SPACING_NODE_NODE_3))); - compaction = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROW_COMPACTION_0))); - expandToAspectRatio = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_TO_ASPECT_RATIO_0))); - interactive = $booleanValue(castToBoolean($getProperty_0(layoutGraph, INTERACTIVE_5))); - targetWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, TARGET_WIDTH_0))); - rectangles = (!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children); - resetCoordinates(rectangles); - if (interactive) { - fixedNodes = new ArrayList; - for (elkNode$iterator0 = new AbstractEList$EIterator(rectangles); elkNode$iterator0.cursor != elkNode$iterator0.this$01_2.size_1();) { - elkNode = castTo($doNext(elkNode$iterator0), 33); - $hasProperty_0(elkNode, DESIRED_POSITION_0) && (fixedNodes.array[fixedNodes.array.length] = elkNode , true); - } - for (elkNode$iterator1 = new ArrayList$1(fixedNodes); elkNode$iterator1.i < elkNode$iterator1.this$01.array.length;) { - elkNode = castTo($next_7(elkNode$iterator1), 33); - $remove_32(rectangles, elkNode); - } - $clinit_Collections(); - $sort(fixedNodes, new RectPackingLayoutProvider$lambda$0$Type); - for (elkNode$iterator2 = new ArrayList$1(fixedNodes); elkNode$iterator2.i < elkNode$iterator2.this$01.array.length;) { - elkNode = castTo($next_7(elkNode$iterator2), 33); - position = castTo($getProperty_0(elkNode, DESIRED_POSITION_0), 19).value_0; - position = $wnd.Math.min(position, rectangles.size_0); - $add_20(rectangles, position, elkNode); - } - index_0 = 0; - for (elkNode$iterator = new AbstractEList$EIterator(rectangles); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { - elkNode = castTo($doNext(elkNode$iterator), 33); - $setProperty_1(elkNode, CURRENT_POSITION_0, valueOf_4(index_0)); - ++index_0; - } - } - minSize = effectiveMinSizeConstraintFor(layoutGraph); - minSize.x_0 -= padding.left + padding.right; - minSize.y_0 -= padding.top_0 + padding.bottom; - maxWidth = minSize.x_0; - if (targetWidth < 0 || targetWidth < minSize.x_0) { - firstIt = new AreaApproximation(aspectRatio, goal, lastPlaceShift); - drawing = $approxBoundingBox(firstIt, rectangles, nodeNodeSpacing, padding); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - } - else { - drawing = new DrawingData(aspectRatio, targetWidth, 0, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); - } - minSize.x_0 += padding.left + padding.right; - minSize.y_0 += padding.top_0 + padding.bottom; - if (!onlyFirstIteration) { - resetCoordinates(rectangles); - secondIt = new RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing); - maxWidth = $wnd.Math.max(minSize.x_0, drawing.drawingWidth); - drawing = $start(secondIt, rectangles, maxWidth, minSize, progressMonitor, layoutGraph, padding); - } - applyPadding(rectangles, padding); - resizeNode_1(layoutGraph, drawing.drawingWidth + (padding.left + padding.right), drawing.drawingHeight + (padding.top_0 + padding.bottom), false, true); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_3))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider', 1136); -function RectPackingLayoutProvider$lambda$0$Type(){ -} - -defineClass(1137, 1, $intern_88, RectPackingLayoutProvider$lambda$0$Type); -_.compare_1 = function compare_80(arg0, arg1){ - return lambda$0_32(castTo(arg0, 33), castTo(arg1, 33)); -} -; -_.equals_0 = function equals_167(other){ - return this === other; -} -; -_.reversed = function reversed_72(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider/lambda$0$Type', 1137); -function $approxBoundingBox(this$static, rectangles, nodeNodeSpacing, padding){ - var bestOpt, currentValues, firstRect, lastPlaced, opt1, opt2, opt3, opt4, placedRects, rectangleIdx, toPlace; - firstRect = castTo($get_20(rectangles, 0), 33); - $setX_2(firstRect, 0); - $setY_3(firstRect, 0); - placedRects = new ArrayList; - placedRects.array[placedRects.array.length] = firstRect; - lastPlaced = firstRect; - currentValues = new DrawingData(this$static.aspectRatio, firstRect.width_0, firstRect.height, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); - for (rectangleIdx = 1; rectangleIdx < rectangles.size_0; rectangleIdx++) { - toPlace = castTo($get_20(rectangles, rectangleIdx), 33); - opt1 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - opt2 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - opt3 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - opt4 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - bestOpt = $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding); - $setX_2(toPlace, bestOpt.nextXcoordinate); - $setY_3(toPlace, bestOpt.nextYcoordinate); - $setPlacementOption(bestOpt, WHOLE_DRAWING); - currentValues = bestOpt; - lastPlaced = toPlace; - placedRects.array[placedRects.array.length] = toPlace; - } - return currentValues; -} - -function $calcValuesForOpt(this$static, option, toPlace, lastPlaced, drawing, placedRects, nodeNodeSpacing){ - var drawingHeight, drawingWidth, height, heightToPlace, newDrawing, width_0, widthToPlace, x_0, y_0; - x_0 = 0; - y_0 = 0; - drawingWidth = drawing.drawingWidth; - drawingHeight = drawing.drawingHeight; - heightToPlace = toPlace.height; - widthToPlace = toPlace.width_0; - switch (option.ordinal) { - case 0: - x_0 = lastPlaced.x_0 + lastPlaced.width_0 + nodeNodeSpacing; - this$static.lpShift?(y_0 = calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing)):(y_0 = lastPlaced.y_0); - width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); - height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); - break; - case 1: - y_0 = lastPlaced.y_0 + lastPlaced.height + nodeNodeSpacing; - this$static.lpShift?(x_0 = calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing)):(x_0 = lastPlaced.x_0); - width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); - height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); - break; - case 2: - x_0 = drawingWidth + nodeNodeSpacing; - y_0 = 0; - width_0 = drawingWidth + nodeNodeSpacing + widthToPlace; - height = $wnd.Math.max(drawingHeight, heightToPlace); - break; - case 3: - x_0 = 0; - y_0 = drawingHeight + nodeNodeSpacing; - width_0 = $wnd.Math.max(drawingWidth, widthToPlace); - height = drawingHeight + nodeNodeSpacing + heightToPlace; - break; - default:throw toJs(new IllegalArgumentException_0('IllegalPlacementOption.')); - } - newDrawing = new DrawingData_0(this$static.aspectRatio, width_0, height, option, x_0, y_0); - return newDrawing; -} - -function $checkSpecialCases(drawing1, drawing2, lastPlaced, toPlace){ - var areaLPB, areaLPR, firstOpt, firstOptLPBorCDB, firstOptLPRorCDR, firstOptLPRorLPB, lpbOpt, lprOpt, secondOpt, secondOptLPBorCDB, secondOptLPRorCDR, secondOptLPRorLPB, lastPlacedBottomBorder, toPlaceBottomBorder, maxYLPR, heightLPR, widthLPR, lastPlacedRightBorder, toPlaceRightBorder, maxXLPB, widthLPB, heightLPB; - firstOpt = drawing1.placementOption; - secondOpt = drawing2.placementOption; - firstOptLPBorCDB = firstOpt == ($clinit_DrawingDataDescriptor() , CANDIDATE_POSITION_LAST_PLACED_BELOW) || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; - secondOptLPBorCDB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; - firstOptLPRorCDR = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; - secondOptLPRorCDR = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; - firstOptLPRorLPB = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; - secondOptLPRorLPB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; - if (firstOptLPBorCDB && secondOptLPBorCDB) { - return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW?drawing1:drawing2; - } - else if (firstOptLPRorCDR && secondOptLPRorCDR) { - return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT?drawing1:drawing2; - } - else if (firstOptLPRorLPB && secondOptLPRorLPB) { - if (firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT) { - lprOpt = drawing1; - lpbOpt = drawing2; - } - else { - lprOpt = drawing2; - lpbOpt = drawing1; - } - areaLPR = (lastPlacedBottomBorder = lastPlaced.y_0 + lastPlaced.height , toPlaceBottomBorder = lprOpt.nextYcoordinate + toPlace.height , maxYLPR = $wnd.Math.max(lastPlacedBottomBorder, toPlaceBottomBorder) , heightLPR = maxYLPR - $wnd.Math.min(lastPlaced.y_0, lprOpt.nextYcoordinate) , widthLPR = lprOpt.nextXcoordinate + toPlace.width_0 - lastPlaced.x_0 , widthLPR * heightLPR); - areaLPB = (lastPlacedRightBorder = lastPlaced.x_0 + lastPlaced.width_0 , toPlaceRightBorder = lpbOpt.nextXcoordinate + toPlace.width_0 , maxXLPB = $wnd.Math.max(lastPlacedRightBorder, toPlaceRightBorder) , widthLPB = maxXLPB - $wnd.Math.min(lastPlaced.x_0, lpbOpt.nextXcoordinate) , heightLPB = lpbOpt.nextYcoordinate + toPlace.height - lastPlaced.y_0 , widthLPB * heightLPB); - return areaLPR <= areaLPB?drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_RIGHT?drawing1:drawing2:drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_BELOW?drawing1:drawing2; - } - return drawing1; -} - -function $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding){ - var candidates, filter, filter$iterator, filters; - candidates = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit, 1), $intern_2, 220, 0, [opt1, opt2, opt3, opt4])); - filters = null; - switch (this$static.goal.ordinal) { - case 1: - filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new ScaleMeasureFilter, new AreaFilter, new AspectRatioFilter])); - break; - case 0: - filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AspectRatioFilter, new AreaFilter, new ScaleMeasureFilter])); - break; - case 2: - filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AreaFilter, new ScaleMeasureFilter, new AspectRatioFilter])); - } - for (filter$iterator = new ArrayList$1(filters); filter$iterator.i < filter$iterator.this$01.array.length;) { - filter = castTo($next_7(filter$iterator), 526); - candidates.array.length > 1 && (candidates = filter.filterList(candidates, this$static.aspectRatio, padding)); - } - if (candidates.array.length == 1) { - return castTo($get_11(candidates, candidates.array.length - 1), 220); - } - if (candidates.array.length == 2) { - return $checkSpecialCases((checkCriticalElementIndex(0, candidates.array.length) , castTo(candidates.array[0], 220)), (checkCriticalElementIndex(1, candidates.array.length) , castTo(candidates.array[1], 220)), lastPlaced, toPlace); - } - return null; -} - -function AreaApproximation(aspectRatio, goal, lpShift){ - this.aspectRatio = aspectRatio; - this.goal = goal; - this.lpShift = lpShift; -} - -defineClass(1256, 1, {}, AreaApproximation); -_.aspectRatio = 0; -_.lpShift = false; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaApproximation_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaApproximation', 1256); -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit = createForInterface('org.eclipse.elk.alg.rectpacking.firstiteration', 'BestCandidateFilter'); -function AreaFilter(){ -} - -defineClass(638, 1, {526:1}, AreaFilter); -_.filterList = function filterList(candidates, aspectRatio, padding){ - var candidate, candidate$iterator, minArea, opt, opt$iterator, remainingCandidates; - remainingCandidates = new ArrayList; - minArea = $intern_59; - for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { - opt = castTo($next_7(opt$iterator), 220); - minArea = $wnd.Math.min(minArea, (opt.drawingWidth + (padding.left + padding.right)) * (opt.drawingHeight + (padding.top_0 + padding.bottom))); - } - for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { - candidate = castTo($next_7(candidate$iterator), 220); - (candidate.drawingWidth + (padding.left + padding.right)) * (candidate.drawingHeight + (padding.top_0 + padding.bottom)) == minArea && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); - } - return remainingCandidates; -} -; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaFilter', 638); -function AspectRatioFilter(){ -} - -defineClass(639, 1, {526:1}, AspectRatioFilter); -_.filterList = function filterList_0(candidates, aspectRatio, padding){ - var candidate, candidate$iterator, opt, opt$iterator, remainingCandidates, smallestDeviation; - remainingCandidates = new ArrayList; - smallestDeviation = $intern_59; - for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { - opt = castTo($next_7(opt$iterator), 220); - smallestDeviation = $wnd.Math.min(smallestDeviation, $wnd.Math.abs((opt.drawingWidth + (padding.left + padding.right)) / (opt.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio)); - } - for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { - candidate = castTo($next_7(candidate$iterator), 220); - $wnd.Math.abs((candidate.drawingWidth + (padding.left + padding.right)) / (candidate.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio) == smallestDeviation && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); - } - return remainingCandidates; -} -; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AspectRatioFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AspectRatioFilter', 639); -function calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing){ - var closestLeftNeighbour, closestNeighborRightBorder, placedRect, placedRect$iterator, placedRectRightBorder; - closestLeftNeighbour = null; - closestNeighborRightBorder = 0; - for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { - placedRect = castTo($next_7(placedRect$iterator), 33); - placedRectRightBorder = placedRect.x_0 + placedRect.width_0; - if (y_0 < placedRect.y_0 + placedRect.height + nodeNodeSpacing) { - !closestLeftNeighbour?(closestLeftNeighbour = placedRect):lastPlaced.x_0 - placedRectRightBorder < lastPlaced.x_0 - closestNeighborRightBorder && (closestLeftNeighbour = placedRect); - closestNeighborRightBorder = closestLeftNeighbour.x_0 + closestLeftNeighbour.width_0; - } - } - return !closestLeftNeighbour?0:closestNeighborRightBorder + nodeNodeSpacing; -} - -function calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing){ - var closestNeighborBottomBorder, closestUpperNeighbor, placedRect, placedRect$iterator, placedRectBottomBorder; - closestUpperNeighbor = null; - closestNeighborBottomBorder = 0; - for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { - placedRect = castTo($next_7(placedRect$iterator), 33); - placedRectBottomBorder = placedRect.y_0 + placedRect.height; - if (x_0 < placedRect.x_0 + placedRect.width_0 + nodeNodeSpacing) { - !closestUpperNeighbor?(closestUpperNeighbor = placedRect):lastPlaced.y_0 - placedRectBottomBorder < lastPlaced.y_0 - closestNeighborBottomBorder && (closestUpperNeighbor = placedRect); - closestNeighborBottomBorder = closestUpperNeighbor.y_0 + closestUpperNeighbor.height; - } - } - return !closestUpperNeighbor?0:closestNeighborBottomBorder + nodeNodeSpacing; -} - -function ScaleMeasureFilter(){ -} - -defineClass(637, 1, {526:1}, ScaleMeasureFilter); -_.filterList = function filterList_1(candidates, aspectRatio, padding){ - var candidate, candidate$iterator, maxScale, opt, opt$iterator, remainingCandidates; - remainingCandidates = new ArrayList; - maxScale = $intern_60; - for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { - opt = castTo($next_7(opt$iterator), 220); - maxScale = $wnd.Math.max(maxScale, computeScaleMeasure(opt.drawingWidth + (padding.left + padding.right), opt.drawingHeight + (padding.top_0 + padding.bottom), opt.dar)); - } - for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { - candidate = castTo($next_7(candidate$iterator), 220); - computeScaleMeasure(candidate.drawingWidth + (padding.left + padding.right), candidate.drawingHeight + (padding.top_0 + padding.bottom), candidate.dar) == maxScale && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); - } - return remainingCandidates; -} -; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_ScaleMeasureFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'ScaleMeasureFilter', 637); -function $clinit_OptimizationGoal(){ - $clinit_OptimizationGoal = emptyMethod; - ASPECT_RATIO_DRIVEN = new OptimizationGoal('ASPECT_RATIO_DRIVEN', 0); - MAX_SCALE_DRIVEN = new OptimizationGoal('MAX_SCALE_DRIVEN', 1); - AREA_DRIVEN = new OptimizationGoal('AREA_DRIVEN', 2); -} - -function OptimizationGoal(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_83(name_0){ - $clinit_OptimizationGoal(); - return valueOf(($clinit_OptimizationGoal$Map() , $MAP_71), name_0); -} - -function values_89(){ - $clinit_OptimizationGoal(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]); -} - -defineClass(381, 22, {3:1, 35:1, 22:1, 381:1}, OptimizationGoal); -var AREA_DRIVEN, ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN; -var Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.options', 'OptimizationGoal', 381, Ljava_lang_Enum_2_classLit, values_89, valueOf_83); -function $clinit_OptimizationGoal$Map(){ - $clinit_OptimizationGoal$Map = emptyMethod; - $MAP_71 = createValueOfMap(($clinit_OptimizationGoal() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]))); -} - -var $MAP_71; -function $clinit_RectPackingMetaDataProvider(){ - $clinit_RectPackingMetaDataProvider = emptyMethod; - OPTIMIZATION_GOAL_DEFAULT = ($clinit_OptimizationGoal() , MAX_SCALE_DRIVEN); - OPTIMIZATION_GOAL = new Property_1('org.eclipse.elk.rectpacking.optimizationGoal', OPTIMIZATION_GOAL_DEFAULT); - LAST_PLACE_SHIFT = new Property_1('org.eclipse.elk.rectpacking.lastPlaceShift', ($clinit_Boolean() , true)); - valueOf_4(-1); - CURRENT_POSITION = new Property_1('org.eclipse.elk.rectpacking.currentPosition', valueOf_4(-1)); - valueOf_4(-1); - DESIRED_POSITION = new Property_1('org.eclipse.elk.rectpacking.desiredPosition', valueOf_4(-1)); - ONLY_FIRST_ITERATION = new Property_1('org.eclipse.elk.rectpacking.onlyFirstIteration', false); - ROW_COMPACTION = new Property_1('org.eclipse.elk.rectpacking.rowCompaction', true); - EXPAND_TO_ASPECT_RATIO = new Property_1('org.eclipse.elk.rectpacking.expandToAspectRatio', false); - TARGET_WIDTH = new Property_1('org.eclipse.elk.rectpacking.targetWidth', -1); -} - -function RectPackingMetaDataProvider(){ - $clinit_RectPackingMetaDataProvider(); -} - -defineClass(856, 1, $intern_90, RectPackingMetaDataProvider); -_.apply_4 = function apply_161(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.optimizationGoal'), ''), 'Optimization Goal'), 'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'), OPTIMIZATION_GOAL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.lastPlaceShift'), ''), 'Shift Last Placed.'), 'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.currentPosition'), ''), 'Current position of a node in the order of nodes'), 'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.desiredPosition'), ''), 'Desired index of node'), 'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.onlyFirstIteration'), ''), 'Only Area Approximation'), 'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.rowCompaction'), ''), 'Compact Rows'), 'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.expandToAspectRatio'), ''), 'Fit Aspect Ratio'), 'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $addDependency(registry, 'org.eclipse.elk.rectpacking.expandToAspectRatio', 'org.eclipse.elk.expandNodes', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.targetWidth'), ''), 'Target Width'), 'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'), -1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); - $apply_21((new RectPackingOptions , registry)); -} -; -var CURRENT_POSITION, DESIRED_POSITION, EXPAND_TO_ASPECT_RATIO, LAST_PLACE_SHIFT, ONLY_FIRST_ITERATION, OPTIMIZATION_GOAL, OPTIMIZATION_GOAL_DEFAULT, ROW_COMPACTION, TARGET_WIDTH; -var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingMetaDataProvider', 856); -function $clinit_RectPackingOptions(){ - $clinit_RectPackingOptions = emptyMethod; - ASPECT_RATIO_3 = new Property_2(($clinit_CoreOptions() , ASPECT_RATIO_5), 1.3); - EXPAND_NODES = EXPAND_NODES_1; - PADDING_DEFAULT_2 = new ElkPadding_0(15); - PADDING_3 = new Property_2(PADDING_6, PADDING_DEFAULT_2); - SPACING_NODE_NODE_3 = new Property_2(SPACING_NODE_NODE_6, 15); - CONTENT_ALIGNMENT_0 = CONTENT_ALIGNMENT_2; - NODE_SIZE_CONSTRAINTS_4 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_3 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_4 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_4 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_3 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_4 = PORT_LABELS_PLACEMENT_5; - OPTIMIZATION_GOAL_0 = ($clinit_RectPackingMetaDataProvider() , OPTIMIZATION_GOAL); - LAST_PLACE_SHIFT_0 = LAST_PLACE_SHIFT; - ONLY_FIRST_ITERATION_0 = ONLY_FIRST_ITERATION; - ROW_COMPACTION_0 = ROW_COMPACTION; - EXPAND_TO_ASPECT_RATIO_0 = EXPAND_TO_ASPECT_RATIO; - INTERACTIVE_5 = INTERACTIVE_7; - INTERACTIVE_LAYOUT_0 = INTERACTIVE_LAYOUT_1; - DESIRED_POSITION_0 = DESIRED_POSITION; - CURRENT_POSITION_0 = CURRENT_POSITION; - TARGET_WIDTH_0 = TARGET_WIDTH; -} - -function $apply_21(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.rectpacking'), 'ELK Rectangle Packing'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'), new RectPackingOptions$RectpackingFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.aspectRatio', 1.3); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.padding', PADDING_DEFAULT_2); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.spacing.nodeNode', 15); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_3)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_3)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.optimizationGoal', $getDefault(OPTIMIZATION_GOAL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.lastPlaceShift', $getDefault(LAST_PLACE_SHIFT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.onlyFirstIteration', $getDefault(ONLY_FIRST_ITERATION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.rowCompaction', $getDefault(ROW_COMPACTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.expandToAspectRatio', $getDefault(EXPAND_TO_ASPECT_RATIO_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_5)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.desiredPosition', $getDefault(DESIRED_POSITION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.currentPosition', $getDefault(CURRENT_POSITION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.targetWidth', $getDefault(TARGET_WIDTH_0)); -} - -function RectPackingOptions(){ - $clinit_RectPackingOptions(); -} - -defineClass(1004, 1, $intern_90, RectPackingOptions); -_.apply_4 = function apply_162(registry){ - $apply_21(registry); -} -; -var ASPECT_RATIO_3, CONTENT_ALIGNMENT_0, CURRENT_POSITION_0, DESIRED_POSITION_0, EXPAND_NODES, EXPAND_TO_ASPECT_RATIO_0, INTERACTIVE_5, INTERACTIVE_LAYOUT_0, LAST_PLACE_SHIFT_0, NODE_LABELS_PLACEMENT_4, NODE_SIZE_CONSTRAINTS_4, NODE_SIZE_MINIMUM_3, NODE_SIZE_OPTIONS_4, OMIT_NODE_MICRO_LAYOUT_3, ONLY_FIRST_ITERATION_0, OPTIMIZATION_GOAL_0, PADDING_3, PADDING_DEFAULT_2, PORT_LABELS_PLACEMENT_4, ROW_COMPACTION_0, SPACING_NODE_NODE_3, TARGET_WIDTH_0; -var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions', 1004); -function RectPackingOptions$RectpackingFactory(){ -} - -defineClass(1005, 1, {}, RectPackingOptions$RectpackingFactory); -_.create_0 = function create_26(){ - var provider; - return provider = new RectPackingLayoutProvider , provider; -} -; -_.destroy = function destroy_5(obj){ -} -; -var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions$RectpackingFactory_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions/RectpackingFactory', 1005); -function absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing){ - var rect, somethingWasChanged; - somethingWasChanged = false; - rect = castTo($get_11(nextBlock.children, 0), 33); - while (placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing)) { - somethingWasChanged = true; - $removeChild(nextBlock, rect); - if (nextBlock.children.array.length == 0) { - break; - } - rect = castTo($get_11(nextBlock.children, 0), 33); - } - nextBlock.children.array.length == 0 && $removeBlock(nextBlock.parentRow, nextBlock); - somethingWasChanged && $updateDimension(block.stack_0); - return somethingWasChanged; -} - -function compact_4(rowIdx, rows_0, boundingWidth, nodeNodeSpacing){ - var block, blockId, blocks, currentStack, nextBlock, nextRowIndex, row, somethingWasChanged, wasFromNextRow, nextBlock_0; - somethingWasChanged = false; - nextRowIndex = rowIdx + 1; - row = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); - blocks = row.children; - currentStack = null; - for (blockId = 0; blockId < row.children.array.length; blockId++) { - block = (checkCriticalElementIndex(blockId, blocks.array.length) , castTo(blocks.array[blockId], 187)); - if (block.fixed_0) { - continue; - } - if (block.children.array.length == 0) { - $clinit_System(); - $removeBlock(row, block); - --blockId; - somethingWasChanged = true; - continue; - } - if (!block.positionFixed) { - !!currentStack && $updateDimension(currentStack); - currentStack = new BlockStack(!currentStack?0:currentStack.x_0 + currentStack.width_0 + nodeNodeSpacing, row.y_0, nodeNodeSpacing); - $setLocation(block, currentStack.x_0 + currentStack.width_0, row.y_0); - $add_3(row.stacks, currentStack); - $addBlock(currentStack, block); - block.positionFixed = true; - } - nextBlock = null; - nextBlock = (nextBlock_0 = null , blockId < row.children.array.length - 1?(nextBlock_0 = castTo($get_11(row.children, blockId + 1), 187)):nextRowIndex < rows_0.array.length && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length != 0 && (nextBlock_0 = castTo($get_11((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children, 0), 187)) , nextBlock_0); - wasFromNextRow = false; - !!nextBlock && (wasFromNextRow = !equals_Ljava_lang_Object__Z__devirtual$(nextBlock.parentRow, row)); - if (nextBlock) { - if (nextBlock.children.array.length == 0) { - $removeBlock(row, nextBlock); - break; - } - else { - $placeRectsIn(block, boundingWidth - block.x_0); - $updateDimension(block.stack_0); - somethingWasChanged = somethingWasChanged | absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing); - } - if (nextBlock.children.array.length == 0) { - $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); - nextBlock = null; - while (rows_0.array.length > nextRowIndex && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0) { - $remove_12(rows_0, (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , rows_0.array[nextRowIndex])); - } - } - if (!nextBlock) { - --blockId; - continue; - } - if (placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing)) { - somethingWasChanged = true; - continue; - } - if (wasFromNextRow) { - if (placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing)) { - somethingWasChanged = true; - continue; - } - else if (useRowHeight(row, block)) { - block.fixed_0 = true; - somethingWasChanged = true; - continue; - } - } - else if (useRowHeight(row, block)) { - block.fixed_0 = true; - somethingWasChanged = true; - continue; - } - if (somethingWasChanged) { - continue; - } - } - if (useRowHeight(row, block)) { - block.fixed_0 = true; - somethingWasChanged = true; - !!nextBlock && (nextBlock.positionFixed = false); - continue; - } - else { - $updateDimension(block.stack_0); - } - } - return somethingWasChanged; -} - -function placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing){ - var bounds, bounds0, currentBlockMinHeight, nextBlockMinHeight, remainingWidth, somethingWasChanged; - somethingWasChanged = false; - remainingWidth = boundingWidth - block.x_0; - currentBlockMinHeight = block.y_0 - row.y_0 + (bounds0 = $placeRectsIn_1(block, remainingWidth, false) , bounds0.height); - if (nextBlock.minWidth + nodeNodeSpacing > remainingWidth) { - return false; - } - nextBlockMinHeight = (bounds = $placeRectsIn_1(nextBlock, remainingWidth, false) , bounds.height); - if (currentBlockMinHeight + nodeNodeSpacing + nextBlockMinHeight <= row.height) { - $placeRectsIn(block, boundingWidth - block.x_0); - block.fixed_0 = true; - $placeRectsIn(nextBlock, boundingWidth - block.x_0); - $setLocation(nextBlock, block.x_0, block.y_0 + block.height + nodeNodeSpacing); - nextBlock.positionFixed = true; - $addBlock(block.stack_0, nextBlock); - somethingWasChanged = true; - if (wasFromNextRow) { - $addBlock_0(row, nextBlock); - nextBlock.parentRow = row; - if (rows_0.array.length > nextRowIndex) { - $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); - (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); - } - } - } - return somethingWasChanged; -} - -function placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing){ - var bounds, currentBlockMinWidth, lastRowOptimization, nextBlockHeight, somethingWasChanged, targetWidthOfNextBlock; - somethingWasChanged = false; - currentBlockMinWidth = $getWidthForFixedHeight(block.stack_0, row.y_0 + row.height - block.stack_0.y_0); - targetWidthOfNextBlock = boundingWidth - (block.stack_0.x_0 + currentBlockMinWidth - nodeNodeSpacing); - if (targetWidthOfNextBlock < nextBlock.minWidth) { - return false; - } - lastRowOptimization = nextRowIndex == rows_0.array.length - 1 && targetWidthOfNextBlock >= (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).width_0; - nextBlockHeight = (bounds = $placeRectsIn_1(nextBlock, targetWidthOfNextBlock, false) , bounds.height); - if (nextBlockHeight > row.height && !lastRowOptimization) { - return false; - } - if (lastRowOptimization || nextBlockHeight <= row.height) { - if (lastRowOptimization && nextBlockHeight > row.height) { - block.height = nextBlockHeight; - $placeRectsIn(block, $getWidthForTargetHeight(block, nextBlockHeight)); - } - else { - $placeRectsIn_2(block.stack_0, currentBlockMinWidth); - block.fixed_0 = true; - } - $placeRectsIn(nextBlock, boundingWidth - (block.x_0 + block.width_0)); - $setLocation(nextBlock, block.stack_0.x_0 + block.stack_0.width_0, row.y_0); - $addBlock_0(row, nextBlock); - if (rows_0.array.length > nextRowIndex) { - $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); - (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); - } - somethingWasChanged = true; - } - return somethingWasChanged; -} - -function useRowHeight(row, block){ - var previousWidth, somethingWasChanged, targetWidth; - somethingWasChanged = false; - previousWidth = block.stack_0.width_0; - if (block.height < row.height) { - targetWidth = $getWidthForFixedHeight(block.stack_0, row.height); - if (block.stack_0.width_0 > targetWidth) { - $placeRectsIn_2(block.stack_0, targetWidth); - somethingWasChanged = previousWidth != block.stack_0.width_0; - } - } - return somethingWasChanged; -} - -function place(rectangles, boundingWidth, nodeNodeSpacing){ - var block, currentWidth, drawingHeight, newBlock, potentialRowWidth, rect, rect$iterator, row, rows_0; - rows_0 = new ArrayList; - row = new RectRow(0, nodeNodeSpacing); - drawingHeight = 0; - $addBlock_0(row, new Block(0, 0, row, nodeNodeSpacing)); - currentWidth = 0; - for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { - rect = castTo($doNext(rect$iterator), 33); - block = castTo($get_11(row.children, row.children.array.length - 1), 187); - potentialRowWidth = currentWidth + rect.width_0 + (castTo($get_11(row.children, 0), 187).children.array.length == 0?0:nodeNodeSpacing); - if (potentialRowWidth > boundingWidth) { - currentWidth = 0; - drawingHeight += row.height + nodeNodeSpacing; - rows_0.array[rows_0.array.length] = row; - row = new RectRow(drawingHeight, nodeNodeSpacing); - block = new Block(0, row.y_0, row, nodeNodeSpacing); - $addBlock_0(row, block); - currentWidth = 0; - } - if (block.children.array.length == 0 || rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { - $addChild(block, rect); - } - else { - newBlock = new Block(block.x_0 + block.width_0 + nodeNodeSpacing, row.y_0, row, nodeNodeSpacing); - $addBlock_0(row, newBlock); - $addChild(newBlock, rect); - } - currentWidth = rect.x_0 + rect.width_0; - } - rows_0.array[rows_0.array.length] = row; - return rows_0; -} - -function placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing){ - var lastRow, lastRow0, lastRow_0; - if (rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { - lastRow0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); - if (lastRow0.x_0 + lastRow0.width_0 + rect.width_0 + nodeNodeSpacing <= boundingWidth && (lastRow = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211) , lastRow.y_0 - row.y_0 + rect.height <= row.height || row.children.array.length == 1)) { - $addChild(block, rect); - return true; - } - else if (block.x_0 + rect.width_0 <= boundingWidth && (block.y_0 + block.height + rect.height + nodeNodeSpacing <= row.height || row.children.array.length == 1)) { - $add_3(block.children, rect); - lastRow_0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); - $add_3(block.rows_0, new BlockRow(block.x_0, lastRow_0.y_0 + lastRow_0.height + block.nodeNodeSpacing, block.nodeNodeSpacing)); - $addRectangle(castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211), rect); - $adjustSizeAdd(block, rect); - return true; - } - } - return false; -} - -function expand(rows_0, drawingWidth, additionalHeight){ - var heightPerRow, index_0, row, row$iterator; - heightPerRow = additionalHeight / rows_0.array.length; - index_0 = 0; - for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 200); - $setY_1(row, row.y_0 + heightPerRow * index_0); - $expand_2(row, drawingWidth, heightPerRow); - ++index_0; - } -} - -function $adjustWidthAndHeight(this$static, row){ - var index_0, maxHeight, maxWidth, stack_0, stack$iterator; - maxHeight = 0; - maxWidth = 0; - index_0 = 0; - for (stack$iterator = new ArrayList$1(row.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { - stack_0 = castTo($next_7(stack$iterator), 443); - $updateDimension(stack_0); - maxHeight = $wnd.Math.max(maxHeight, stack_0.height); - maxWidth += stack_0.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - row.height = maxHeight; - row.width_0 = maxWidth; -} - -function $calculateDimensions(this$static, rows_0){ - var index_0, maxWidth, newHeight, row, row$iterator; - maxWidth = 0; - newHeight = 0; - index_0 = 0; - for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 200); - maxWidth = $wnd.Math.max(maxWidth, row.width_0); - newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - this$static.drawingHeight = newHeight; - this$static.drawingWidth = maxWidth; -} - -function $start(this$static, rectangles, maxWidth, minParentSize, progressMonitor, layoutGraph, padding){ - var additionalHeight, aspectRatio, block, block$iterator, currentRow, minHeight, previousRow, row, row$iterator, rowIdx, rows_0, stack_0, totalWidth; - rows_0 = place(rectangles, maxWidth, this$static.nodeNodeSpacing); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - if (this$static.compaction) { - for (rowIdx = 0; rowIdx < rows_0.array.length; rowIdx++) { - currentRow = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); - if (rowIdx != 0) { - previousRow = (checkCriticalElementIndex(rowIdx - 1, rows_0.array.length) , castTo(rows_0.array[rowIdx - 1], 200)); - $setY_1(currentRow, previousRow.y_0 + previousRow.height + this$static.nodeNodeSpacing); - } - compact_4(rowIdx, rows_0, maxWidth, this$static.nodeNodeSpacing); - $adjustWidthAndHeight(this$static, currentRow); - progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - } - } - else { - for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 200); - for (block$iterator = new ArrayList$1(row.children); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - stack_0 = new BlockStack(block.x_0, block.y_0, this$static.nodeNodeSpacing); - $addBlock(stack_0, block); - $add_3(row.stacks, stack_0); - } - } - } - $calculateDimensions(this$static, rows_0); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - totalWidth = $wnd.Math.max(this$static.drawingWidth, minParentSize.x_0 - (padding.left + padding.right)); - minHeight = $wnd.Math.max(this$static.drawingHeight, minParentSize.y_0 - (padding.top_0 + padding.bottom)); - additionalHeight = minHeight - this$static.drawingHeight; - if (this$static.expandNodes && this$static.expandToAspectRatio) { - aspectRatio = totalWidth / minHeight; - aspectRatio < this$static.aspectRatio?(totalWidth = minHeight * this$static.aspectRatio):(additionalHeight += totalWidth / this$static.aspectRatio - minHeight); - } - this$static.expandNodes && expand(rows_0, totalWidth, additionalHeight); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - return new DrawingData(this$static.aspectRatio, totalWidth, this$static.drawingHeight + additionalHeight, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); -} - -function RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing){ - this.aspectRatio = aspectRatio; - this.expandNodes = expandNodes; - this.expandToAspectRatio = expandToAspectRatio; - this.compaction = compaction; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(1257, 1, {}, RowFillingAndCompaction); -_.aspectRatio = 0; -_.compaction = false; -_.drawingHeight = 0; -_.drawingWidth = 0; -_.expandNodes = false; -_.expandToAspectRatio = false; -_.nodeNodeSpacing = 0; -var Lorg_eclipse_elk_alg_rectpacking_seconditeration_RowFillingAndCompaction_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.seconditeration', 'RowFillingAndCompaction', 1257); -function $addChild(this$static, rect){ - this$static.rows_0.array.length == 0 && $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); - $add_3(this$static.children, rect); - $addRectangle(castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211), rect); - $adjustSizeAdd(this$static, rect); -} - -function $adjustChildrensXandY(this$static, xChange, yChange){ - var rect, rect$iterator; - for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - $setLocation_1(rect, rect.x_0 + xChange, rect.y_0 + yChange); - } -} - -function $adjustSizeAdd(this$static, rect){ - var row, row$iterator, totalHeight, widthOflastRow; - widthOflastRow = castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211).width_0; - this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); - this$static.width_0 = $wnd.Math.max(this$static.width_0, widthOflastRow); - this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0 + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing)); - this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); - this$static.maxHeight += rect.height + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing); - this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); - totalHeight = this$static.rows_0.array.length > 0?(this$static.rows_0.array.length - 1) * this$static.nodeNodeSpacing:0; - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - totalHeight += row.height; - } - this$static.height = totalHeight; - this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); - $notifyAboutNodeChange(this$static.parentRow); -} - -function $adjustSizeAfterRemove(this$static){ - var index_0, newHeight, newWidth, rect, rect$iterator, row, row$iterator, rowsToDelete; - newWidth = 0; - newHeight = 0; - rowsToDelete = new LinkedList; - index_0 = 0; - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - if (row.rects.array.length == 0) { - $addNode_0(rowsToDelete, row, rowsToDelete.tail.prev, rowsToDelete.tail); - } - else { - newWidth = $wnd.Math.max(newWidth, row.width_0); - newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); - } - ++index_0; - } - $removeAll_0(this$static.rows_0, rowsToDelete); - this$static.height = newHeight; - this$static.width_0 = newWidth; - this$static.minWidth = 0; - this$static.minHeight = 0; - this$static.maxHeight = 0; - this$static.smallestRectHeight = $intern_59; - this$static.smallestRectWidth = $intern_59; - for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); - this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0); - this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); - this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); - this$static.maxHeight += rect.height + this$static.nodeNodeSpacing; - } - this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); - $notifyAboutNodeChange(this$static.parentRow); -} - -function $expand(this$static, additionalWidthPerBlock, additionalHeightForBlock){ - var additionalHeightForRow, index_0, row, row$iterator, widthForRow; - widthForRow = this$static.width_0 + additionalWidthPerBlock; - this$static.width_0 += additionalWidthPerBlock; - this$static.height += additionalHeightForBlock; - additionalHeightForRow = additionalHeightForBlock / this$static.rows_0.array.length; - index_0 = 0; - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - $expand_0(row, widthForRow, additionalHeightForRow, index_0); - ++index_0; - } -} - -function $getWidthForTargetHeight(this$static, height){ - var bounds, lowerBound, newWidth, upperBound, viableWidth; - if (this$static.maxHeight <= height) { - return this$static.minWidth; - } - if ($placeRectsIn_0(this$static, this$static.minWidth, height)) { - return this$static.minWidth; - } - upperBound = this$static.width_0; - lowerBound = this$static.minWidth; - viableWidth = this$static.width_0; - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - while (lowerBound + 1 < upperBound) { - bounds = $placeRectsIn_1(this$static, newWidth, false); - if (bounds.width_0 <= newWidth && bounds.height <= height) { - viableWidth = newWidth; - upperBound = newWidth; - } - else { - lowerBound = newWidth; - } - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - } - return viableWidth; -} - -function $placeRectsIn(this$static, width_0){ - var bounds, oldHeight, oldWidth; - oldWidth = this$static.width_0; - oldHeight = this$static.height; - bounds = $placeRectsIn_1(this$static, width_0, true); - return bounds.width_0 != oldWidth || bounds.height != oldHeight; -} - -function $placeRectsIn_0(this$static, width_0, height){ - var bounds; - bounds = $placeRectsIn_1(this$static, width_0, false); - return bounds.width_0 <= width_0 && bounds.height <= height; -} - -function $placeRectsIn_1(this$static, width_0, placeRects){ - var currentHeight, currentWidth, currentX, currentY, index_0, maxHeightInRow, rect, rect$iterator, row, widthInRow; - currentX = 0; - currentY = this$static.y_0; - currentWidth = 0; - currentHeight = 0; - maxHeightInRow = 0; - widthInRow = 0; - row = 0; - if (placeRects) { - this$static.rows_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); - } - index_0 = 0; - for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - if (currentX + rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0) > width_0 && maxHeightInRow > 0) { - currentX = 0; - currentY += maxHeightInRow + this$static.nodeNodeSpacing; - currentWidth = $wnd.Math.max(currentWidth, widthInRow); - currentHeight += maxHeightInRow + this$static.nodeNodeSpacing; - maxHeightInRow = 0; - widthInRow = 0; - if (placeRects) { - ++row; - $add_3(this$static.rows_0, new BlockRow(this$static.x_0, currentY, this$static.nodeNodeSpacing)); - } - index_0 = 0; - } - widthInRow += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - maxHeightInRow = $wnd.Math.max(maxHeightInRow, rect.height); - placeRects && $addRectangle(castTo($get_11(this$static.rows_0, row), 211), rect); - currentX += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - currentWidth = $wnd.Math.max(currentWidth, widthInRow); - currentHeight += maxHeightInRow; - if (placeRects) { - this$static.width_0 = currentWidth; - this$static.height = currentHeight; - $notifyAboutNodeChange(this$static.parentRow); - } - return new ElkRectangle_0(this$static.x_0, this$static.y_0, currentWidth, currentHeight); -} - -function $removeChild(this$static, rect){ - var row, row$iterator; - $remove_12(this$static.children, rect); - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - if ($indexOf_3(row.rects, rect, 0) != -1) { - $remove_12(row.rects, rect); - $updateRow(row); - row.rects.array.length == 0 && $remove_12(this$static.rows_0, row); - break; - } - } - $adjustSizeAfterRemove(this$static); -} - -function $setLocation(this$static, xCoord, yCoord){ - var row, row$iterator; - $adjustChildrensXandY(this$static, xCoord - this$static.x_0, yCoord - this$static.y_0); - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - $setX_0(row, row.x_0 + xCoord - this$static.x_0); - $setY_0(row, row.y_0 + yCoord - this$static.y_0); - } - this$static.x_0 = xCoord; - this$static.y_0 = yCoord; -} - -function Block(xCoord, yCoord, parentRow, nodeNodeSpacing){ - this.children = new ArrayList; - this.rows_0 = new ArrayList; - this.nodeNodeSpacing = nodeNodeSpacing; - this.parentRow = parentRow; - this.x_0 = xCoord; - this.y_0 = yCoord; - this.width_0 = 0; - this.height = 0; -} - -defineClass(187, 1, {187:1}, Block); -_.averageHeight = 0; -_.fixed_0 = false; -_.height = 0; -_.maxHeight = 0; -_.minHeight = 0; -_.minWidth = 0; -_.nodeNodeSpacing = 0; -_.positionFixed = false; -_.smallestRectHeight = $intern_59; -_.smallestRectWidth = $intern_59; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_Block_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'Block', 187); -function $addRectangle(this$static, rect){ - $setX_2(rect, this$static.x_0 + this$static.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing)); - $setY_3(rect, this$static.y_0); - this$static.height = $wnd.Math.max(this$static.height, rect.height); - this$static.width_0 += rect.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing); - $add_3(this$static.rects, rect); - return true; -} - -function $expand_0(this$static, widthForRow, additionalHeightForRow, index_0){ - var additionalWidthForRect, i, newHeight, newWidth, oldHeight, oldWidth, rect, rect$iterator; - additionalWidthForRect = (widthForRow - this$static.width_0) / this$static.rects.array.length; - i = 0; - this$static.height += additionalHeightForRow; - this$static.width_0 = widthForRow; - for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - oldWidth = rect.width_0; - oldHeight = rect.height; - $setX_2(rect, rect.x_0 + i * additionalWidthForRect); - $setY_3(rect, rect.y_0 + index_0 * additionalHeightForRow); - $setWidth_0(rect, rect.width_0 + additionalWidthForRect); - $setHeight_0(rect, this$static.height); - ++i; - newWidth = rect.width_0; - newHeight = rect.height; - translate_1(rect, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); - } -} - -function $setX_0(this$static, x_0){ - this$static.x_0 = x_0; -} - -function $setY_0(this$static, y_0){ - this$static.y_0 = y_0; -} - -function $updateRow(this$static){ - var height, rect, rect$iterator, width_0; - width_0 = 0; - height = 0; - for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - $setX_2(rect, this$static.x_0 + width_0); - $setY_3(rect, this$static.y_0); - width_0 += rect.width_0 + this$static.nodeNodeSpacing; - height = $wnd.Math.max(height, rect.height + this$static.nodeNodeSpacing); - } - this$static.width_0 = width_0 - this$static.nodeNodeSpacing; - this$static.height = height - this$static.nodeNodeSpacing; -} - -function BlockRow(x_0, y_0, nodeNodeSpacing){ - this.rects = new ArrayList; - this.x_0 = x_0; - this.y_0 = y_0; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(211, 1, {211:1}, BlockRow); -_.height = 0; -_.nodeNodeSpacing = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_BlockRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockRow', 211); -function $addBlock(this$static, block){ - block.stack_0 = this$static; - this$static.width_0 = $wnd.Math.max(this$static.width_0, block.width_0); - this$static.height += block.height + (this$static.blocks.array.length == 0?0:this$static.nodeNodeSpacing); - $add_3(this$static.blocks, block); -} - -function $expand_1(this$static, additionalWidth, additionalHeight){ - var additionalHeightPerBlock, block, block$iterator, index_0; - index_0 = 0; - additionalHeightPerBlock = additionalHeight / this$static.blocks.array.length; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - $setLocation(block, block.x_0, block.y_0 + index_0 * additionalHeightPerBlock); - $expand(block, this$static.width_0 - block.width_0 + additionalWidth, additionalHeightPerBlock); - ++index_0; - } -} - -function $getMinimumWidth_1(this$static){ - var block, block$iterator, minWidth; - minWidth = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - minWidth = $wnd.Math.max(minWidth, block.minWidth); - } - return minWidth; -} - -function $getWidthForFixedHeight(this$static, height){ - var block, block$iterator, bounds, lowerBound, minWidth, newWidth, totalHeight, upperBound, viableWidth; - if (this$static.blocks.array.length == 1) { - return $getWidthForTargetHeight(castTo($get_11(this$static.blocks, 0), 187), height); - } - minWidth = $getMinimumWidth_1(this$static); - totalHeight = 0; - upperBound = this$static.width_0; - lowerBound = minWidth; - viableWidth = this$static.width_0; - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - while (lowerBound + 1 < upperBound) { - totalHeight = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - totalHeight += (bounds = $placeRectsIn_1(block, newWidth, false) , bounds.height); - } - if (totalHeight < height) { - viableWidth = newWidth; - upperBound = newWidth; - } - else { - lowerBound = newWidth; - } - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - } - return viableWidth; -} - -function $placeRectsIn_2(this$static, targetWidth){ - var block, block$iterator, currentHeight, currentWidth, currentY; - currentY = this$static.y_0; - currentHeight = 0; - currentWidth = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - $setLocation(block, this$static.x_0, currentY); - $placeRectsIn(block, targetWidth); - currentWidth = $wnd.Math.max(currentWidth, block.width_0); - currentY += block.height + this$static.nodeNodeSpacing; - currentHeight = currentY; - } - this$static.width_0 = currentWidth; - this$static.height = currentHeight; -} - -function $setLocation_0(this$static, x_0, y_0){ - var block, block$iterator, xDiff, yDiff; - xDiff = x_0 - this$static.x_0; - yDiff = y_0 - this$static.y_0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - $setLocation(block, block.x_0 + xDiff, block.y_0 + yDiff); - } - this$static.x_0 = x_0; - this$static.y_0 = y_0; -} - -function $updateDimension(this$static){ - var block, block$iterator, height, index_0, width_0; - height = 0; - width_0 = 0; - index_0 = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - width_0 = $wnd.Math.max(width_0, block.width_0); - height += block.height + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - this$static.height = height; - this$static.width_0 = width_0; -} - -function BlockStack(x_0, y_0, nodeNodeSpacing){ - this.blocks = new ArrayList; - this.x_0 = x_0; - this.y_0 = y_0; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(443, 1, {443:1}, BlockStack); -_.height = 0; -_.nodeNodeSpacing = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_BlockStack_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockStack', 443); -function $setPlacementOption(this$static, placementOption){ - this$static.placementOption = placementOption; -} - -function DrawingData(dar, drawingWidth, drawingHeight, placementOption){ - DrawingData_0.call(this, dar, drawingWidth, drawingHeight, placementOption, 0, 0); -} - -function DrawingData_0(dar, drawingWidth, drawingHeight, placementOption, nextXcoord, nextYcoord){ - this.dar = dar; - this.drawingWidth = drawingWidth; - this.drawingHeight = drawingHeight; - this.placementOption = placementOption; - this.nextXcoordinate = nextXcoord; - this.nextYcoordinate = nextYcoord; - this.drawingWidth > 0 && this.drawingHeight > 0 && computeScaleMeasure(this.drawingWidth, this.drawingHeight, this.dar); -} - -defineClass(220, 1, {220:1}, DrawingData, DrawingData_0); -_.dar = 0; -_.drawingHeight = 0; -_.drawingWidth = 0; -_.nextXcoordinate = 0; -_.nextYcoordinate = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'DrawingData', 220); -function $clinit_DrawingDataDescriptor(){ - $clinit_DrawingDataDescriptor = emptyMethod; - CANDIDATE_POSITION_LAST_PLACED_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_RIGHT', 0); - CANDIDATE_POSITION_LAST_PLACED_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_BELOW', 1); - CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT', 2); - CANDIDATE_POSITION_WHOLE_DRAWING_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW', 3); - WHOLE_DRAWING = new DrawingDataDescriptor('WHOLE_DRAWING', 4); -} - -function DrawingDataDescriptor(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_84(name_0){ - $clinit_DrawingDataDescriptor(); - return valueOf(($clinit_DrawingDataDescriptor$Map() , $MAP_72), name_0); -} - -function values_90(){ - $clinit_DrawingDataDescriptor(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]); -} - -defineClass(355, 22, {3:1, 35:1, 22:1, 355:1}, DrawingDataDescriptor); -var CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, WHOLE_DRAWING; -var Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.util', 'DrawingDataDescriptor', 355, Ljava_lang_Enum_2_classLit, values_90, valueOf_84); -function $clinit_DrawingDataDescriptor$Map(){ - $clinit_DrawingDataDescriptor$Map = emptyMethod; - $MAP_72 = createValueOfMap(($clinit_DrawingDataDescriptor() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]))); -} - -var $MAP_72; -function computeScaleMeasure(width_0, height, dar){ - return $wnd.Math.min(dar / width_0, 1 / height); -} - -function resetCoordinates(graph){ - var node, node$iterator; - for (node$iterator = new AbstractEList$EIterator(graph); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - $setX_2(node, 0); - $setY_3(node, 0); - } -} - -function $addBlock_0(this$static, block){ - this$static.height = $wnd.Math.max(this$static.height, block.height); - this$static.width_0 += block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); - $add_3(this$static.children, block); -} - -function $expand_2(this$static, width_0, additionalHeight){ - var additionalHeightForStack, additionalWidth, additionalWidthPerStack, index_0, stack_0, stack$iterator; - additionalWidth = width_0 - this$static.width_0; - additionalWidthPerStack = additionalWidth / this$static.stacks.array.length; - index_0 = 0; - for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { - stack_0 = castTo($next_7(stack$iterator), 443); - additionalHeightForStack = this$static.height - stack_0.height + additionalHeight; - $setLocation_0(stack_0, stack_0.x_0 + index_0 * additionalWidthPerStack, stack_0.y_0); - $expand_1(stack_0, additionalWidthPerStack, additionalHeightForStack); - ++index_0; - } -} - -function $notifyAboutNodeChange(this$static){ - var child, child$iterator, index_0, newMaxHeight, totalStackWidth; - totalStackWidth = 0; - newMaxHeight = $intern_60; - index_0 = 0; - for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 187); - totalStackWidth += child.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); - ++index_0; - } - this$static.width_0 = totalStackWidth; - this$static.height = newMaxHeight; -} - -function $removeBlock(this$static, block){ - var child, child$iterator, newMaxHeight; - $remove_12(this$static.children, block); - this$static.width_0 -= block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); - newMaxHeight = $intern_124; - for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 187); - newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); - } - this$static.height = newMaxHeight; -} - -function $setY_1(this$static, y_0){ - var stack_0, stack$iterator, yChange; - yChange = y_0 - this$static.y_0; - for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { - stack_0 = castTo($next_7(stack$iterator), 443); - $setLocation_0(stack_0, stack_0.x_0, stack_0.y_0 + yChange); - } - this$static.y_0 = y_0; -} - -function RectRow(y_0, nodeNodeSpacing){ - this.children = new ArrayList; - this.stacks = new ArrayList; - this.y_0 = y_0; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(200, 1, {200:1}, RectRow); -_.height = 0; -_.nodeNodeSpacing = 0; -_.width_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_RectRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'RectRow', 200); -function $applyPositions_0(this$static, g){ - var e, e$iterator, elkNode, endLocation, kedgeSection, maxX, maxY, minX, minY, node, node$iterator, padding, source, startLocation, target, uv, vu; - minX = $intern_59; - minY = $intern_59; - maxX = $intern_60; - maxY = $intern_60; - for (node$iterator = new ArrayList$1(g.vertices); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 65); - elkNode = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33); - $setLocation_1(elkNode, node.rect.x_0, node.rect.y_0); - minX = $wnd.Math.min(minX, elkNode.x_0); - minY = $wnd.Math.min(minY, elkNode.y_0); - maxX = $wnd.Math.max(maxX, elkNode.x_0 + elkNode.width_0); - maxY = $wnd.Math.max(maxY, elkNode.y_0 + elkNode.height); - } - padding = castTo($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PADDING_4)), 116); - resizeNode_1(this$static.elkGraph, maxX - minX + (padding.left + padding.right), maxY - minY + (padding.top_0 + padding.bottom), true, true); - translate_0(this$static.elkGraph, -minX + padding.left, -minY + padding.top_0); - for (e$iterator = new AbstractEList$EIterator($getContainedEdges(this$static.elkGraph)); e$iterator.cursor != e$iterator.this$01_2.size_1();) { - e = castTo($doNext(e$iterator), 79); - kedgeSection = firstEdgeSection(e, true, true); - source = getSourceNode(e); - target = getTargetNode_0(e); - startLocation = new KVector_1(source.x_0 + source.width_0 / 2, source.y_0 + source.height / 2); - endLocation = new KVector_1(target.x_0 + target.width_0 / 2, target.y_0 + target.height / 2); - uv = $sub_0(new KVector_1(endLocation.x_0, endLocation.y_0), startLocation); - clipVector(uv, source.width_0, source.height); - $add_19(startLocation, uv); - vu = $sub_0(new KVector_1(startLocation.x_0, startLocation.y_0), endLocation); - clipVector(vu, target.width_0, target.height); - $add_19(endLocation, vu); - $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); - $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); - } -} - -function $importGraph_2(this$static, inputGraph){ - var adapter, calcu, center, closest, compactionStrategy, costFunction, costFunctionID, distance, elkNode, elkNode$iterator, halfHeight, halfWidth, id_0, margin, node, node$iterator, node$iterator0, preferredRootID, rootSelection, treeConstructionStrategy, vertex; - this$static.elkGraph = inputGraph; - this$static.nodeMap = new HashMap; - adapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(this$static.elkGraph)); - calcu = new NodeMarginCalculator(adapter); - $process(calcu); - preferredRootID = castToString($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PROCESSING_ORDER_PREFERRED_ROOT))); - costFunctionID = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION), 316); - treeConstructionStrategy = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_TREE_CONSTRUCTION), 429); - compactionStrategy = castTo($getProperty_0(this$static.elkGraph, COMPACTION_COMPACTION_STRATEGY), 482); - rootSelection = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_ROOT_SELECTION), 430); - this$static.spacingNodeNode = $doubleValue(castToDouble($getProperty_0(this$static.elkGraph, SPACING_NODE_NODE_4))); - costFunction = this$static.centerDistance; - switch (costFunctionID.ordinal) { - case 0: - costFunction = this$static.centerDistance; - break; - case 1: - costFunction = this$static.circleUnderlap; - break; - case 2: - costFunction = this$static.rectangleUnderlap; - break; - case 3: - costFunction = this$static.invertedOverlap; - break; - case 4: - costFunction = this$static.minimumRootDistance; - break; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (costFunctionID.name_0 != null?costFunctionID.name_0:'' + costFunctionID.ordinal))); - } - this$static.graph_0 = new Graph(costFunction, treeConstructionStrategy, compactionStrategy); - $setProperty_0(this$static.graph_0, ($clinit_InternalProperties() , DEBUG_SVG), castToBoolean($getProperty_0(this$static.elkGraph, DEBUG_MODE_1))); - this$static.graph_0.orthogonalCompaction = $booleanValue(castToBoolean($getProperty_0(this$static.elkGraph, COMPACTION_ORTHOGONAL))); - if ($getChildren(this$static.elkGraph).size_0 == 0) { - return this$static.graph_0; - } - for (elkNode$iterator = new AbstractEList$EIterator($getChildren(this$static.elkGraph)); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { - elkNode = castTo($doNext(elkNode$iterator), 33); - halfWidth = elkNode.width_0 / 2; - halfHeight = elkNode.height / 2; - vertex = new KVector_1(elkNode.x_0 + halfWidth, elkNode.y_0 + halfHeight); - while ($containsKey_3(this$static.nodeMap, vertex)) { - $add_18(vertex, ($wnd.Math.random() - 0.5) * $intern_101, ($wnd.Math.random() - 0.5) * $intern_101); - } - margin = castTo($getProperty_0(elkNode, ($clinit_CoreOptions() , MARGINS_0)), 142); - node = new Node_0(vertex, new ElkRectangle_0(vertex.x_0 - halfWidth - this$static.spacingNodeNode / 2 - margin.left, vertex.y_0 - halfHeight - this$static.spacingNodeNode / 2 - margin.top_0, elkNode.width_0 + this$static.spacingNodeNode + (margin.left + margin.right), elkNode.height + this$static.spacingNodeNode + (margin.top_0 + margin.bottom))); - $add_3(this$static.graph_0.vertices, node); - $put_6(this$static.nodeMap, vertex, new Pair(node, elkNode)); - } - switch (rootSelection.ordinal) { - case 0: - if (preferredRootID == null) { - this$static.graph_0.preferredRoot = castTo($get_11(this$static.graph_0.vertices, 0), 65); - } - else { - for (node$iterator0 = new ArrayList$1(this$static.graph_0.vertices); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 65); - id_0 = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33).getIdentifier(); - id_0 != null && $equals_5(id_0, preferredRootID) && (this$static.graph_0.preferredRoot = node); - } - } - - break; - case 1: - center = new KVector_1(this$static.elkGraph.width_0, this$static.elkGraph.height); - center.x_0 *= 0.5; - center.y_0 *= 0.5; - $add_18(center, this$static.elkGraph.x_0, this$static.elkGraph.y_0); - closest = $intern_59; - for (node$iterator = new ArrayList$1(this$static.graph_0.vertices); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 65); - distance = $distance_0(node.originalVertex, center); - if (distance < closest) { - closest = distance; - this$static.graph_0.preferredRoot = node; - } - } - - break; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (rootSelection.name_0 != null?rootSelection.name_0:'' + rootSelection.ordinal))); - } - return this$static.graph_0; -} - -function $lambda$1_6(this$static, e_0){ - return $wnd.Math.min($distance_0(e_0.u, this$static.graph_0.preferredRoot.vertex), $distance_0(e_0.v, this$static.graph_0.preferredRoot.vertex)); -} - -function $lambda$2_4(this$static, e_0){ - var n1, n2; - n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); - n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); - return $distance_0(e_0.u, e_0.v) - $distance_0(e_0.u, $getPosition(n1.rect)) - $distance_0(e_0.v, $getPosition(n2.rect)); -} - -function $lambda$3_3(this$static, e_0){ - var n1, n2; - n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); - n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); - return $underlap(n1, n2); -} - -function $lambda$4_2(this$static, e_0){ - var dist, n1, n2, r1, r2, s; - n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); - n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); - r1 = n1.rect; - r2 = n2.rect; - dist = shortestDistance_0(r1, r2); - if (dist >= 0) { - return dist; - } - s = $length($sub_0(new KVector_1(r2.x_0 + r2.width_0 / 2, r2.y_0 + r2.height / 2), new KVector_1(r1.x_0 + r1.width_0 / 2, r1.y_0 + r1.height / 2))); - return -(overlap_0(r1, r2) - 1) * s; -} - -function $updateGraph(this$static, g){ - var n, n$iterator, original, updatedNodeMap; - updatedNodeMap = new HashMap; - g.tEdges = null; - g.tree = null; - for (n$iterator = new ArrayList$1(g.vertices); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 65); - original = castTo($get_10(this$static.nodeMap, n.originalVertex), 46); - n.originalVertex = $getCenter(n.rect); - $put_6(updatedNodeMap, n.originalVertex, original); - } - this$static.nodeMap = updatedNodeMap; -} - -function ElkGraphImporter_0(){ - this.centerDistance = new ElkGraphImporter$lambda$0$Type_0; - this.minimumRootDistance = new ElkGraphImporter$lambda$1$Type_0(this); - this.circleUnderlap = new ElkGraphImporter$lambda$2$Type_0(this); - this.rectangleUnderlap = new ElkGraphImporter$lambda$3$Type(this); - this.invertedOverlap = new ElkGraphImporter$lambda$4$Type_0(this); -} - -defineClass(756, 1, {}, ElkGraphImporter_0); -_.spacingNodeNode = 0; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter', 756); -function ElkGraphImporter$lambda$0$Type_0(){ -} - -defineClass(1245, 1, {}, ElkGraphImporter$lambda$0$Type_0); -_.cost = function cost_0(arg0){ - return $distance_0(arg0.u, arg0.v); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$0$Type', 1245); -function ElkGraphImporter$lambda$1$Type_0($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1246, 1, {}, ElkGraphImporter$lambda$1$Type_0); -_.cost = function cost_1(arg0){ - return $lambda$1_6(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$1$Type', 1246); -function ElkGraphImporter$lambda$2$Type_0($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1247, 1, {}, ElkGraphImporter$lambda$2$Type_0); -_.cost = function cost_2(arg0){ - return $lambda$2_4(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$2$Type', 1247); -function ElkGraphImporter$lambda$3$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1248, 1, {}, ElkGraphImporter$lambda$3$Type); -_.cost = function cost_3(arg0){ - return $lambda$3_3(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$3$Type', 1248); -function ElkGraphImporter$lambda$4$Type_0($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1249, 1, {}, ElkGraphImporter$lambda$4$Type_0); -_.cost = function cost_4(arg0){ - return $lambda$4_2(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$4$Type', 1249); -function OverlapRemovalLayoutProvider(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); -} - -function lambda$0_33(overlapEdges_0, n1_1, n2_2){ - return $add_6(overlapEdges_0, new TEdge(n1_1.originalVertex, n2_2.originalVertex)); -} - -defineClass(1133, 209, $intern_96, OverlapRemovalLayoutProvider); -_.layout = function layout_6(layoutGraph, progressMonitor){ - var graph, graphImporter, iteration, lad, layoutProvider, maxIterations, overlapEdges, overlapHandler, overlapsExisted, processor, processor$iterator, requestedAlgorithm; - if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { - requestedAlgorithm = castToString($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , UNDERLYING_LAYOUT_ALGORITHM_1))); - lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); - if (lad) { - layoutProvider = castTo($fetch(lad.providerPool), 209); - layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); - } - } - $setProperty_1(layoutGraph, PROCESSING_ORDER_ROOT_SELECTION, ($clinit_RootSelection() , CENTER_NODE)); - $setProperty_1(layoutGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, ($clinit_SpanningTreeCostFunction() , INVERTED_OVERLAP)); - $setProperty_1(layoutGraph, PROCESSING_ORDER_TREE_CONSTRUCTION, ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE)); - maxIterations = castTo($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , OVERLAP_REMOVAL_MAX_ITERATIONS_0)), 19).value_0; - $begin(progressMonitor, 'Overlap removal', 1); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, DEBUG_MODE_2))) && 'null45scanlineOverlaps'; - overlapEdges = new HashSet; - overlapHandler = new OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges); - graphImporter = new ElkGraphImporter_0; - graph = $importGraph_2(graphImporter, layoutGraph); - overlapsExisted = true; - iteration = 0; - while (iteration < maxIterations && overlapsExisted) { - if ($booleanValue(castToBoolean($getProperty_0(layoutGraph, OVERLAP_REMOVAL_RUN_SCANLINE_0)))) { - overlapEdges.map_0.clear_0(); - $sweep_0(new ScanlineOverlapCheck(overlapHandler), graph.vertices); - if (overlapEdges.map_0.size_1() == 0) { - break; - } - graph.tEdges = overlapEdges; - } - $reset_4(this.algorithmAssembler); - $setPhase(this.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); - $setPhase(this.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); - $setPhase(this.algorithmAssembler, P3_EXECUTION, ($clinit_OverlapRemovalStrategy() , GROW_TREE)); - this.algorithm = $build_0(this.algorithmAssembler, graph); - for (processor$iterator = new ArrayList$1(this.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(graph, $subTask(progressMonitor, 1)); - } - $updateGraph(graphImporter, graph); - overlapsExisted = $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , OVERLAPS_EXISTED)))); - ++iteration; - } - $applyPositions_0(graphImporter, graph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider', 1133); -function $handle_4(this$static, arg0, arg1){ - lambda$0_33(this$static.overlapEdges_0, arg0, arg1); -} - -function OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges_0){ - this.overlapEdges_0 = overlapEdges_0; -} - -defineClass(1134, 1, {}, OverlapRemovalLayoutProvider$lambda$0$Type); -var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider/lambda$0$Type', 1134); -function $clinit_SPOrEPhases(){ - $clinit_SPOrEPhases = emptyMethod; - P1_STRUCTURE = new SPOrEPhases('P1_STRUCTURE', 0); - P2_PROCESSING_ORDER = new SPOrEPhases('P2_PROCESSING_ORDER', 1); - P3_EXECUTION = new SPOrEPhases('P3_EXECUTION', 2); -} - -function SPOrEPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_85(name_0){ - $clinit_SPOrEPhases(); - return valueOf(($clinit_SPOrEPhases$Map() , $MAP_73), name_0); -} - -function values_91(){ - $clinit_SPOrEPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]); -} - -defineClass(437, 22, {3:1, 35:1, 22:1, 437:1}, SPOrEPhases); -var P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION; -var Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit = createForEnum('org.eclipse.elk.alg.spore', 'SPOrEPhases', 437, Ljava_lang_Enum_2_classLit, values_91, valueOf_85); -function $clinit_SPOrEPhases$Map(){ - $clinit_SPOrEPhases$Map = emptyMethod; - $MAP_73 = createValueOfMap(($clinit_SPOrEPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]))); -} - -var $MAP_73; -function $shrink(this$static, graph, progressMonitor){ - var processor, processor$iterator; - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); - $setPhase(this$static.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); - $setPhase(this$static.algorithmAssembler, P3_EXECUTION, graph.compactionStrategy); - this$static.algorithm = $build_0(this$static.algorithmAssembler, graph); - $begin(progressMonitor, 'Compaction by shrinking a tree', this$static.algorithm.array.length); - if (graph.vertices.array.length > 1) { - for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(graph, $subTask(progressMonitor, 1)); - } - } - $done_0(progressMonitor); -} - -function ShrinkTree(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); -} - -defineClass(1255, 1, {}, ShrinkTree); -var Lorg_eclipse_elk_alg_spore_ShrinkTree_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTree', 1255); -function ShrinkTreeLayoutProvider(){ - this.shrinktree = new ShrinkTree; -} - -defineClass(1135, 209, $intern_96, ShrinkTreeLayoutProvider); -_.layout = function layout_7(layoutGraph, progressMonitor){ - var graph, graphImporter, lad, layoutProvider, requestedAlgorithm; - if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { - requestedAlgorithm = castToString($getProperty_0(layoutGraph, UNDERLYING_LAYOUT_ALGORITHM)); - lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); - if (lad) { - layoutProvider = castTo($fetch(lad.providerPool), 209); - layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); - } - } - graphImporter = new ElkGraphImporter_0; - graph = $importGraph_2(graphImporter, layoutGraph); - $shrink(this.shrinktree, graph, $subTask(progressMonitor, 1)); - $applyPositions_0(graphImporter, graph); -} -; -var Lorg_eclipse_elk_alg_spore_ShrinkTreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTreeLayoutProvider', 1135); -function Graph(costFun, treeStrategy, compStrategy){ - this.vertices = new ArrayList; - this.costFunction = costFun; - this.treeConstructionStrategy = treeStrategy; - this.compactionStrategy = compStrategy; -} - -defineClass(300, 134, {3:1, 300:1, 94:1, 134:1}, Graph); -_.orthogonalCompaction = false; -var Lorg_eclipse_elk_alg_spore_graph_Graph_2_classLit = createForClass('org.eclipse.elk.alg.spore.graph', 'Graph', 300); -function $clinit_CompactionStrategy_1(){ - $clinit_CompactionStrategy_1 = emptyMethod; - DEPTH_FIRST_0 = new CompactionStrategy_1; -} - -function $create_14(this$static){ - switch (this$static.ordinal) { - case 0: - return new ShrinkTreeCompactionPhase; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CompactionStrategy_1(){ - Enum.call(this, 'DEPTH_FIRST', 0); -} - -function valueOf_86(name_0){ - $clinit_CompactionStrategy_1(); - return valueOf(($clinit_CompactionStrategy$Map_1() , $MAP_74), name_0); -} - -function values_92(){ - $clinit_CompactionStrategy_1(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]); -} - -defineClass(482, 22, {3:1, 35:1, 22:1, 482:1, 246:1, 234:1}, CompactionStrategy_1); -_.create_1 = function create_28(){ - return $create_14(this); -} -; -_.create_2 = function create_27(){ - return $create_14(this); -} -; -var DEPTH_FIRST_0; -var Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'CompactionStrategy', 482, Ljava_lang_Enum_2_classLit, values_92, valueOf_86); -function $clinit_CompactionStrategy$Map_1(){ - $clinit_CompactionStrategy$Map_1 = emptyMethod; - $MAP_74 = createValueOfMap(($clinit_CompactionStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]))); -} - -var $MAP_74; -function $clinit_OverlapRemovalStrategy(){ - $clinit_OverlapRemovalStrategy = emptyMethod; - GROW_TREE = new OverlapRemovalStrategy; -} - -function OverlapRemovalStrategy(){ - Enum.call(this, 'GROW_TREE', 0); -} - -function valueOf_87(name_0){ - $clinit_OverlapRemovalStrategy(); - return valueOf(($clinit_OverlapRemovalStrategy$Map() , $MAP_75), name_0); -} - -function values_93(){ - $clinit_OverlapRemovalStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]); -} - -defineClass(551, 22, {3:1, 35:1, 22:1, 551:1, 246:1, 234:1}, OverlapRemovalStrategy); -_.create_1 = function create_30(){ - return new GrowTreePhase; -} -; -_.create_2 = function create_29(){ - return new GrowTreePhase; -} -; -var GROW_TREE; -var Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'OverlapRemovalStrategy', 551, Ljava_lang_Enum_2_classLit, values_93, valueOf_87); -function $clinit_OverlapRemovalStrategy$Map(){ - $clinit_OverlapRemovalStrategy$Map = emptyMethod; - $MAP_75 = createValueOfMap(($clinit_OverlapRemovalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]))); -} - -var $MAP_75; -function $clinit_RootSelection(){ - $clinit_RootSelection = emptyMethod; - FIXED_1 = new RootSelection('FIXED', 0); - CENTER_NODE = new RootSelection('CENTER_NODE', 1); -} - -function RootSelection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_88(name_0){ - $clinit_RootSelection(); - return valueOf(($clinit_RootSelection$Map() , $MAP_76), name_0); -} - -function values_94(){ - $clinit_RootSelection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]); -} - -defineClass(430, 22, {3:1, 35:1, 22:1, 430:1}, RootSelection); -var CENTER_NODE, FIXED_1; -var Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'RootSelection', 430, Ljava_lang_Enum_2_classLit, values_94, valueOf_88); -function $clinit_RootSelection$Map(){ - $clinit_RootSelection$Map = emptyMethod; - $MAP_76 = createValueOfMap(($clinit_RootSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]))); -} - -var $MAP_76; -function $clinit_SpanningTreeCostFunction(){ - $clinit_SpanningTreeCostFunction = emptyMethod; - CENTER_DISTANCE = new SpanningTreeCostFunction('CENTER_DISTANCE', 0); - CIRCLE_UNDERLAP = new SpanningTreeCostFunction('CIRCLE_UNDERLAP', 1); - RECTANGLE_UNDERLAP = new SpanningTreeCostFunction('RECTANGLE_UNDERLAP', 2); - INVERTED_OVERLAP = new SpanningTreeCostFunction('INVERTED_OVERLAP', 3); - MINIMUM_ROOT_DISTANCE = new SpanningTreeCostFunction('MINIMUM_ROOT_DISTANCE', 4); -} - -function SpanningTreeCostFunction(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_89(name_0){ - $clinit_SpanningTreeCostFunction(); - return valueOf(($clinit_SpanningTreeCostFunction$Map() , $MAP_77), name_0); -} - -function values_95(){ - $clinit_SpanningTreeCostFunction(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]); -} - -defineClass(316, 22, {3:1, 35:1, 22:1, 316:1}, SpanningTreeCostFunction); -var CENTER_DISTANCE, CIRCLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE, RECTANGLE_UNDERLAP; -var Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'SpanningTreeCostFunction', 316, Ljava_lang_Enum_2_classLit, values_95, valueOf_89); -function $clinit_SpanningTreeCostFunction$Map(){ - $clinit_SpanningTreeCostFunction$Map = emptyMethod; - $MAP_77 = createValueOfMap(($clinit_SpanningTreeCostFunction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]))); -} - -var $MAP_77; -function $clinit_SporeCompactionOptions(){ - $clinit_SporeCompactionOptions = emptyMethod; - UNDERLYING_LAYOUT_ALGORITHM = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); - PROCESSING_ORDER_TREE_CONSTRUCTION = PROCESSING_ORDER_TREE_CONSTRUCTION_0; - PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION = PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0; - PROCESSING_ORDER_PREFERRED_ROOT = PROCESSING_ORDER_PREFERRED_ROOT_0; - PROCESSING_ORDER_ROOT_SELECTION = PROCESSING_ORDER_ROOT_SELECTION_0; - PADDING_DEFAULT_3 = new ElkPadding_0(8); - PADDING_4 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_3); - SPACING_NODE_NODE_4 = new Property_2(SPACING_NODE_NODE_6, 8); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; - COMPACTION_COMPACTION_STRATEGY = COMPACTION_COMPACTION_STRATEGY_0; - COMPACTION_ORTHOGONAL = COMPACTION_ORTHOGONAL_0; - DEBUG_MODE_1 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); -} - -function $apply_22(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeCompaction'), 'ELK SPOrE Compaction'), 'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'), new SporeCompactionOptions$SporeCompactionFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.treeConstruction', $getDefault(PROCESSING_ORDER_TREE_CONSTRUCTION)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.spanningTreeCostFunction', $getDefault(PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.preferredRoot', $getDefault(PROCESSING_ORDER_PREFERRED_ROOT)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.rootSelection', $getDefault(PROCESSING_ORDER_ROOT_SELECTION)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.padding', PADDING_DEFAULT_3); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.spacing.nodeNode', 8); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.compactionStrategy', $getDefault(COMPACTION_COMPACTION_STRATEGY)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.orthogonal', $getDefault(COMPACTION_ORTHOGONAL)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); -} - -function SporeCompactionOptions(){ - $clinit_SporeCompactionOptions(); -} - -defineClass(1002, 1, $intern_90, SporeCompactionOptions); -_.apply_4 = function apply_163(registry){ - $apply_22(registry); -} -; -var COMPACTION_COMPACTION_STRATEGY, COMPACTION_ORTHOGONAL, DEBUG_MODE_1, PADDING_4, PADDING_DEFAULT_3, PROCESSING_ORDER_PREFERRED_ROOT, PROCESSING_ORDER_ROOT_SELECTION, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, PROCESSING_ORDER_TREE_CONSTRUCTION, SPACING_NODE_NODE_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY, UNDERLYING_LAYOUT_ALGORITHM; -var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions', 1002); -function SporeCompactionOptions$SporeCompactionFactory(){ -} - -defineClass(1003, 1, {}, SporeCompactionOptions$SporeCompactionFactory); -_.create_0 = function create_31(){ - var provider; - return provider = new ShrinkTreeLayoutProvider , provider; -} -; -_.destroy = function destroy_6(obj){ -} -; -var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions$SporeCompactionFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions/SporeCompactionFactory', 1003); -function $clinit_SporeMetaDataProvider(){ - $clinit_SporeMetaDataProvider = emptyMethod; - UNDERLYING_LAYOUT_ALGORITHM_0 = new Property('org.eclipse.elk.underlyingLayoutAlgorithm'); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT = ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.structure.structureExtractionStrategy', STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT); - PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT = ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE); - PROCESSING_ORDER_TREE_CONSTRUCTION_0 = new Property_1('org.eclipse.elk.processingOrder.treeConstruction', PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT); - PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT = ($clinit_SpanningTreeCostFunction() , CIRCLE_UNDERLAP); - PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0 = new Property_1('org.eclipse.elk.processingOrder.spanningTreeCostFunction', PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT); - PROCESSING_ORDER_PREFERRED_ROOT_0 = new Property_1('org.eclipse.elk.processingOrder.preferredRoot', null); - PROCESSING_ORDER_ROOT_SELECTION_DEFAULT = ($clinit_RootSelection() , CENTER_NODE); - PROCESSING_ORDER_ROOT_SELECTION_0 = new Property_1('org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_ROOT_SELECTION_DEFAULT); - COMPACTION_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy_1() , DEPTH_FIRST_0); - COMPACTION_COMPACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.compaction.compactionStrategy', COMPACTION_COMPACTION_STRATEGY_DEFAULT); - COMPACTION_ORTHOGONAL_0 = new Property_1('org.eclipse.elk.compaction.orthogonal', ($clinit_Boolean() , false)); - OVERLAP_REMOVAL_MAX_ITERATIONS = new Property_1('org.eclipse.elk.overlapRemoval.maxIterations', valueOf_4(64)); - OVERLAP_REMOVAL_RUN_SCANLINE = new Property_1('org.eclipse.elk.overlapRemoval.runScanline', true); - PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0 = FIXED_1; -} - -function SporeMetaDataProvider(){ - $clinit_SporeMetaDataProvider(); -} - -defineClass(855, 1, $intern_90, SporeMetaDataProvider); -_.apply_4 = function apply_164(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.underlyingLayoutAlgorithm'), ''), 'Underlying Layout Algorithm'), 'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.structure.structureExtractionStrategy'), 'structure'), 'Structure Extraction Strategy'), 'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'), STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.treeConstruction'), 'processingOrder'), 'Tree Construction Strategy'), 'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'), PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.spanningTreeCostFunction'), 'processingOrder'), 'Cost Function for Spanning Tree'), 'The cost function is used in the creation of the spanning tree.'), PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.preferredRoot'), 'processingOrder'), 'Root node for spanning tree construction'), 'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'), null), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.processingOrder.preferredRoot', 'org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.rootSelection'), 'processingOrder'), 'Root selection for spanning tree'), 'This sets the method used to select a root node for the construction of a spanning tree'), PROCESSING_ORDER_ROOT_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.compactionStrategy'), 'compaction'), 'Compaction Strategy'), 'This option defines how the compaction is applied.'), COMPACTION_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.orthogonal'), 'compaction'), 'Orthogonal Compaction'), 'Restricts the translation of nodes to orthogonal directions in the compaction phase.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.maxIterations'), 'overlapRemoval'), 'Upper limit for iterations of overlap removal'), null), valueOf_4(64)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.runScanline'), 'overlapRemoval'), 'Whether to run a supplementary scanline overlap check.'), null), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $apply_23((new SporeOverlapRemovalOptions , registry)); - $apply_22((new SporeCompactionOptions , registry)); -} -; -var COMPACTION_COMPACTION_STRATEGY_0, COMPACTION_COMPACTION_STRATEGY_DEFAULT, COMPACTION_ORTHOGONAL_0, OVERLAP_REMOVAL_MAX_ITERATIONS, OVERLAP_REMOVAL_RUN_SCANLINE, PROCESSING_ORDER_PREFERRED_ROOT_0, PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_DEFAULT, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT, PROCESSING_ORDER_TREE_CONSTRUCTION_0, PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT, UNDERLYING_LAYOUT_ALGORITHM_0; -var Lorg_eclipse_elk_alg_spore_options_SporeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeMetaDataProvider', 855); -function $clinit_SporeOverlapRemovalOptions(){ - $clinit_SporeOverlapRemovalOptions = emptyMethod; - UNDERLYING_LAYOUT_ALGORITHM_1 = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); - PADDING_DEFAULT_4 = new ElkPadding_0(8); - new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_4); - new Property_2(SPACING_NODE_NODE_6, 8); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1 = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; - OVERLAP_REMOVAL_MAX_ITERATIONS_0 = OVERLAP_REMOVAL_MAX_ITERATIONS; - OVERLAP_REMOVAL_RUN_SCANLINE_0 = OVERLAP_REMOVAL_RUN_SCANLINE; - DEBUG_MODE_2 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); -} - -function $apply_23(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeOverlap'), 'ELK SPOrE Overlap Removal'), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new SporeOverlapRemovalOptions$SporeOverlapFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM_1)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.padding', PADDING_DEFAULT_4); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.spacing.nodeNode', 8); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.maxIterations', $getDefault(OVERLAP_REMOVAL_MAX_ITERATIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.runScanline', $getDefault(OVERLAP_REMOVAL_RUN_SCANLINE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); -} - -function SporeOverlapRemovalOptions(){ - $clinit_SporeOverlapRemovalOptions(); -} - -defineClass($intern_45, 1, $intern_90, SporeOverlapRemovalOptions); -_.apply_4 = function apply_165(registry){ - $apply_23(registry); -} -; -var DEBUG_MODE_2, OVERLAP_REMOVAL_MAX_ITERATIONS_0, OVERLAP_REMOVAL_RUN_SCANLINE_0, PADDING_DEFAULT_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1, UNDERLYING_LAYOUT_ALGORITHM_1; -var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions', $intern_45); -function SporeOverlapRemovalOptions$SporeOverlapFactory(){ -} - -defineClass(1001, 1, {}, SporeOverlapRemovalOptions$SporeOverlapFactory); -_.create_0 = function create_32(){ - var provider; - return provider = new OverlapRemovalLayoutProvider , provider; -} -; -_.destroy = function destroy_7(obj){ -} -; -var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions$SporeOverlapFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions/SporeOverlapFactory', 1001); -function $clinit_StructureExtractionStrategy(){ - $clinit_StructureExtractionStrategy = emptyMethod; - DELAUNAY_TRIANGULATION = new StructureExtractionStrategy; -} - -function $create_15(this$static){ - switch (this$static.ordinal) { - case 0: - return new DelaunayTriangulationPhase; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function StructureExtractionStrategy(){ - Enum.call(this, 'DELAUNAY_TRIANGULATION', 0); -} - -function valueOf_90(name_0){ - $clinit_StructureExtractionStrategy(); - return valueOf(($clinit_StructureExtractionStrategy$Map() , $MAP_78), name_0); -} - -function values_96(){ - $clinit_StructureExtractionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]); -} - -defineClass(530, 22, {3:1, 35:1, 22:1, 530:1, 246:1, 234:1}, StructureExtractionStrategy); -_.create_1 = function create_34(){ - return $create_15(this); -} -; -_.create_2 = function create_33(){ - return $create_15(this); -} -; -var DELAUNAY_TRIANGULATION; -var Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'StructureExtractionStrategy', 530, Ljava_lang_Enum_2_classLit, values_96, valueOf_90); -function $clinit_StructureExtractionStrategy$Map(){ - $clinit_StructureExtractionStrategy$Map = emptyMethod; - $MAP_78 = createValueOfMap(($clinit_StructureExtractionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]))); -} - -var $MAP_78; -function $clinit_TreeConstructionStrategy(){ - $clinit_TreeConstructionStrategy = emptyMethod; - MINIMUM_SPANNING_TREE = new TreeConstructionStrategy('MINIMUM_SPANNING_TREE', 0); - MAXIMUM_SPANNING_TREE = new TreeConstructionStrategy('MAXIMUM_SPANNING_TREE', 1); -} - -function $create_16(this$static){ - switch (this$static.ordinal) { - case 0: - return new MinSTPhase; - case 1: - return new MaxSTPhase; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function TreeConstructionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_91(name_0){ - $clinit_TreeConstructionStrategy(); - return valueOf(($clinit_TreeConstructionStrategy$Map() , $MAP_79), name_0); -} - -function values_97(){ - $clinit_TreeConstructionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]); -} - -defineClass(429, 22, {3:1, 35:1, 22:1, 429:1, 246:1, 234:1}, TreeConstructionStrategy); -_.create_1 = function create_36(){ - return $create_16(this); -} -; -_.create_2 = function create_35(){ - return $create_16(this); -} -; -var MAXIMUM_SPANNING_TREE, MINIMUM_SPANNING_TREE; -var Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'TreeConstructionStrategy', 429, Ljava_lang_Enum_2_classLit, values_97, valueOf_91); -function $clinit_TreeConstructionStrategy$Map(){ - $clinit_TreeConstructionStrategy$Map = emptyMethod; - $MAP_79 = createValueOfMap(($clinit_TreeConstructionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]))); -} - -var $MAP_79; -function $process_94(graph, progressMonitor){ - var vertices; - $begin(progressMonitor, 'Delaunay triangulation', 1); - vertices = new ArrayList; - $forEach_1(graph.vertices, new DelaunayTriangulationPhase$lambda$0$Type(vertices)); - $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG)))) && 'null10bw'; - !graph.tEdges?(graph.tEdges = triangulate(vertices)):$addAll(graph.tEdges, triangulate(vertices)); - $done_0(progressMonitor); -} - -function DelaunayTriangulationPhase(){ -} - -defineClass(1443, 1, $intern_113, DelaunayTriangulationPhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_26(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_90(graph, progressMonitor){ - $process_94(castTo(graph, 300), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase', 1443); -function DelaunayTriangulationPhase$lambda$0$Type(vertices_0){ - this.vertices_0 = vertices_0; -} - -defineClass(1444, 1, $intern_19, DelaunayTriangulationPhase$lambda$0$Type); -_.accept = function accept_132(arg0){ - $add_3(this.vertices_0, castTo(arg0, 65).originalVertex); -} -; -var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase/lambda$0$Type', 1444); -function $addNode_1(this$static, s, t){ - var child, tTree, tTree$iterator; - for (tTree$iterator = new ArrayList$1(t.children); tTree$iterator.i < tTree$iterator.this$01.array.length;) { - tTree = castTo($next_7(tTree$iterator), 221); - child = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); - $add_3(s.children, child); - $addNode_1(this$static, child, tTree); - } -} - -function $convert(this$static, tTree, graph){ - var root; - $reset(this$static.nodeMap); - $forEach_1(graph.vertices, new MinSTPhase$lambda$0$Type(this$static)); - root = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); - $addNode_1(this$static, root, tTree); - graph.tree = root; -} - -function $lambda$0_10(this$static, n_0){ - return $put_6(this$static.nodeMap, n_0.originalVertex, n_0); -} - -function MinSTPhase(){ - this.nodeMap = new HashMap; -} - -defineClass(783, 1, $intern_113, MinSTPhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_27(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_91(graph, progressMonitor){ - this.process_0(castTo(graph, 300), progressMonitor); -} -; -_.process_0 = function process_92(graph, progressMonitor){ - var lastArg, root, tTree; - $begin(progressMonitor, 'Minimum spanning tree construction', 1); - graph.preferredRoot?(root = graph.preferredRoot.originalVertex):(root = castTo($get_11(graph.vertices, 0), 65).originalVertex); - $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tTree = createSpanningTree(graph.tEdges, root, (lastArg = graph.costFunction , lastArg))):(tTree = createSpanningTree(graph.tEdges, root, graph.costFunction)); - $convert(this, tTree, graph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase', 783); -function MaxSTPhase(){ - MinSTPhase.call(this); -} - -function lambda$0_34(graph_0, e_1){ - return -graph_0.costFunction.cost(e_1); -} - -defineClass(1446, 783, $intern_113, MaxSTPhase); -_.process_0 = function process_93(graph, progressMonitor){ - var invertedCF, lastArg, root, tree; - $begin(progressMonitor, 'Maximum spanning tree construction', 1); - invertedCF = new MaxSTPhase$lambda$0$Type(graph); - graph.preferredRoot?(root = graph.preferredRoot.vertex):(root = castTo($get_11(graph.vertices, 0), 65).vertex); - $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tree = createSpanningTree(graph.tEdges, root, (lastArg = invertedCF , lastArg))):(tree = createSpanningTree(graph.tEdges, root, invertedCF)); - $convert(this, tree, graph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase', 1446); -function MaxSTPhase$lambda$0$Type(graph_0){ - this.graph_0 = graph_0; -} - -defineClass(1447, 1, {}, MaxSTPhase$lambda$0$Type); -_.cost = function cost_5(arg0){ - return lambda$0_34(this.graph_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase/lambda$0$Type', 1447); -function MinSTPhase$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1445, 1, $intern_19, MinSTPhase$lambda$0$Type); -_.accept = function accept_133(arg0){ - $lambda$0_10(this.$$outer_0, castTo(arg0, 65)); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase/lambda$0$Type', 1445); -function $debugOut(this$static, c){ - $drawTree(this$static, this$static.root, this$static.svg); - castTo(this$static.root.node, 65); - !!c && castTo(c.node, 65).rect; -} - -function $drawTree(this$static, t, img){ - castTo(t.node, 65); - $forEach_1(t.children, new GrowTreePhase$lambda$0$Type(this$static, img, t)); -} - -function $growAt(this$static, r){ - var c, c$iterator, t; - for (c$iterator = new ArrayList$1(r.children); c$iterator.i < c$iterator.this$01.array.length;) { - c = castTo($next_7(c$iterator), 221); - $translate(castTo(c.node, 65), $sub_0($clone_0(castTo(r.node, 65).vertex), castTo(r.node, 65).originalVertex)); - t = overlap_0(castTo(r.node, 65).rect, castTo(c.node, 65).rect); - t > 1 && (this$static.overlapsExisted = true); - $setCenterPosition(castTo(c.node, 65), $add_19($clone_0(castTo(r.node, 65).vertex), $scale($sub_0($clone_0(castTo(c.node, 65).originalVertex), castTo(r.node, 65).originalVertex), t))); - $debugOut(this$static, r); - $growAt(this$static, c); - } -} - -function $lambda$0_11(this$static, img_1, t_2, c_2){ - castTo(t_2.node, 65); - castTo(t_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - $forEach_1(c_2.children, new GrowTreePhase$lambda$0$Type(this$static, img_1, c_2)); -} - -function $process_95(this$static, graph, progressMonitor){ - $begin(progressMonitor, 'Grow Tree', 1); - this$static.root = graph.tree; - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { - this$static.svg = new SVGImage; - $debugOut(this$static, null); - } - else { - this$static.svg = new SVGImage; - } - this$static.overlapsExisted = false; - $growAt(this$static, graph.tree); - $setProperty_0(graph, OVERLAPS_EXISTED, ($clinit_Boolean() , this$static.overlapsExisted?true:false)); - $done_0(progressMonitor); -} - -function GrowTreePhase(){ -} - -defineClass(785, 1, $intern_113, GrowTreePhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_28(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_94(graph, progressMonitor){ - $process_95(this, castTo(graph, 300), progressMonitor); -} -; -_.overlapsExisted = false; -var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase', 785); -function GrowTreePhase$lambda$0$Type($$outer_0, img_1, t_2){ - this.$$outer_0 = $$outer_0; - this.img_1 = img_1; - this.t_2 = t_2; -} - -defineClass(786, 1, $intern_19, GrowTreePhase$lambda$0$Type); -_.accept = function accept_134(arg0){ - $lambda$0_11(this.$$outer_0, this.img_1, this.t_2, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase/lambda$0$Type', 786); -function $debugOut_0(this$static, tree){ - var svg; - svg = new SVGImage; - castTo(tree.node, 65); - castTo(tree.node, 65); - castTo(tree.node, 65); - $forEach_1(tree.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg, tree)); -} - -function $lambda$0_12(this$static, svg_1, t_2, c_2){ - var cv; - castTo(t_2.node, 65); - castTo(t_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - cv = $sub_0($clone_0(castTo(t_2.node, 65).vertex), castTo(c_2.node, 65).vertex); - $scaleToLength(cv, $distance(castTo(t_2.node, 65), castTo(c_2.node, 65), cv)); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65).vertex.x_0 + cv.x_0; - castTo(c_2.node, 65).vertex.y_0 + cv.y_0; - castTo(c_2.node, 65); - $forEach_1(c_2.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg_1, c_2)); -} - -function $process_96(this$static, graph, progressMonitor){ - var lastArg; - $begin(progressMonitor, 'Shrinking tree compaction', 1); - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { - $debugOut_0(this$static, graph.tree); - compact_0(graph.tree, (lastArg = graph.orthogonalCompaction , lastArg)); - } - else { - compact_0(graph.tree, graph.orthogonalCompaction); - } - $done_0(progressMonitor); -} - -function ShrinkTreeCompactionPhase(){ -} - -defineClass(1448, 1, $intern_113, ShrinkTreeCompactionPhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_29(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_95(graph, progressMonitor){ - $process_96(this, castTo(graph, 300), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase', 1448); -function ShrinkTreeCompactionPhase$lambda$0$Type($$outer_0, svg_1, t_2){ - this.$$outer_0 = $$outer_0; - this.svg_1 = svg_1; - this.t_2 = t_2; -} - -defineClass(784, 1, $intern_19, ShrinkTreeCompactionPhase$lambda$0$Type); -_.accept = function accept_135(arg0){ - $lambda$0_12(this.$$outer_0, this.svg_1, this.t_2, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase/lambda$0$Type', 784); -var Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit = createForInterface('org.eclipse.elk.core.util', 'IGraphElementVisitor'); -function $clinit_LayoutConfigurator(){ - $clinit_LayoutConfigurator = emptyMethod; - new Property('org.eclipse.elk.addLayoutConfig'); - NO_OVERWRITE_HOLDER = new LayoutConfigurator$lambda$2$Type; - NO_OVERWRITE = new LayoutConfigurator$lambda$0$Type; - OPTION_TARGET_FILTER = new LayoutConfigurator$lambda$1$Type; -} - -function $addFilter(this$static, filter){ - $add_3(this$static.optionFilters, filter); - return this$static; -} - -function $applyProperties(this$static, element, properties){ - var accept, clone, entry, entry$iterator, filters, value_0; - filters = this$static.optionFilters; - for (entry$iterator = (!properties.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):properties.propertyMap).entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - accept = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(filters, 16)), new Predicate$lambda$2$Type(new LayoutConfigurator$lambda$3$Type(element, entry)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); - if (accept) { - value_0 = entry.getValue(); - if (instanceOf(value_0, 4)) { - clone = clone_11(value_0); - clone != null && (value_0 = clone); - } - element.setProperty(castTo(entry.getKey(), 146), value_0); - } - } -} - -function $configure(this$static, elementClass){ - var result; - result = castTo($get_10(this$static.classOptionMap, elementClass), 134); - if (!result) { - result = new MapPropertyHolder; - $put_6(this$static.classOptionMap, elementClass, result); - } - return result; -} - -function $findClassOptions(this$static, element){ - var combined; - combined = new MapPropertyHolder; - !!element && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit), 94)); - instanceOf(element, 470) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkShape_2_classLit), 94)); - if (instanceOf(element, 354)) { - $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), 94)); - return combined; - } - instanceOf(element, 82) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit), 94)); - if (instanceOf(element, 239)) { - $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkNode_2_classLit), 94)); - return combined; - } - if (instanceOf(element, 186)) { - $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkPort_2_classLit), 94)); - return combined; - } - instanceOf(element, 352) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), 94)); - return combined; -} - -function LayoutConfigurator(){ - $clinit_LayoutConfigurator(); - this.elementOptionMap = new HashMap; - this.classOptionMap = new HashMap; - this.optionFilters = new ArrayList; -} - -function lambda$1_17(e_0, property_1){ - $clinit_LayoutConfigurator(); - var optionData, targets; - optionData = $getOptionData(getInstance(), property_1.getId()); - if (optionData) { - targets = optionData.targets; - if (instanceOf(e_0, 239)) { - return $isHierarchical_0(castTo(e_0, 33))?$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(targets, PARENTS):$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)); - } - else if (instanceOf(e_0, 352)) { - return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , EDGES)); - } - else if (instanceOf(e_0, 186)) { - return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , PORTS)); - } - else if (instanceOf(e_0, 354)) { - return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , LABELS)); - } - } - return true; -} - -function lambda$3_6(element_0, entry_1, filter_2){ - $clinit_LayoutConfigurator(); - return filter_2.accept_3(element_0, castTo(entry_1.getKey(), 146)); -} - -defineClass(860, 1, {527:1}, LayoutConfigurator); -_.visit = function visit(element){ - var combined; - combined = $findClassOptions(this, element); - $copyProperties(combined, castTo($get_10(this.elementOptionMap, element), 94)); - $applyProperties(this, element, combined); -} -; -var NO_OVERWRITE, NO_OVERWRITE_HOLDER, OPTION_TARGET_FILTER; -var Lorg_eclipse_elk_core_LayoutConfigurator_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator', 860); -var Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit = createForInterface('org.eclipse.elk.core', 'LayoutConfigurator/IPropertyHolderOptionFilter'); -function LayoutConfigurator$lambda$0$Type(){ -} - -defineClass(932, 1, {1933:1}, LayoutConfigurator$lambda$0$Type); -_.accept_3 = function accept_136(e, p){ - return $clinit_LayoutConfigurator() , !e.hasProperty(p); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$0$Type', 932); -function $accept_5(e, p){ - return lambda$1_17(e, p); -} - -function LayoutConfigurator$lambda$1$Type(){ -} - -defineClass(933, 1, {1933:1}, LayoutConfigurator$lambda$1$Type); -_.accept_3 = function accept_137(e, p){ - return $accept_5(e, p); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$1$Type', 933); -function LayoutConfigurator$lambda$2$Type(){ -} - -defineClass(931, 1, {831:1}, LayoutConfigurator$lambda$2$Type); -_.accept_4 = function accept_138(holder, property){ - return $clinit_LayoutConfigurator() , !holder.hasProperty(property); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$2$Type', 931); -function LayoutConfigurator$lambda$3$Type(element_0, entry_1){ - this.element_0 = element_0; - this.entry_1 = entry_1; -} - -defineClass(934, 1, $intern_39, LayoutConfigurator$lambda$3$Type); -_.test_0 = function test_106(arg0){ - return lambda$3_6(this.element_0, this.entry_1, castTo(arg0, 1933)); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$3$Type', 934); -function $countNodesRecursively(this$static, layoutNode, countAncestors){ - var childNode, childNode$iterator, count, parent_0; - count = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; - for (childNode$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { - childNode = castTo($doNext(childNode$iterator), 33); - (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 == 0 || (count += $countNodesRecursively(this$static, childNode, false)); - } - if (countAncestors) { - parent_0 = $getParent_2(layoutNode); - while (parent_0) { - count += (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; - parent_0 = $getParent_2(parent_0); - } - } - return count; -} - -function $countNodesWithHierarchy(this$static, parentNode){ - var childData, childNode, childNode$iterator, count, parentData; - count = (!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0; - for (childNode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { - childNode = castTo($doNext(childNode$iterator), 33); - if (maskUndefined($getProperty_0(childNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) !== maskUndefined(($clinit_HierarchyHandling() , SEPARATE_CHILDREN))) { - parentData = castTo($getProperty_0(parentNode, RESOLVED_ALGORITHM), 149); - childData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 149); - (parentData == childData || !!parentData && $equals_8(parentData, childData)) && (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 != 0 && (count += $countNodesWithHierarchy(this$static, childNode)); - } - } - return count; -} - -function $evaluateHierarchyHandlingInheritance(layoutNode){ - var parentHandling; - if (maskUndefined($getProperty_0(layoutNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) === maskUndefined(($clinit_HierarchyHandling() , INHERIT))) { - if (!$getParent_2(layoutNode)) { - $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); - } - else { - parentHandling = castTo($getProperty_0($getParent_2(layoutNode), HIERARCHY_HANDLING_0), 334); - $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, parentHandling); - } - } -} - -function $executeAlgorithm(layoutNode, algorithmData, progressMonitor){ - var exception, layoutProvider; - layoutProvider = castTo($fetch(algorithmData.providerPool), 209); - try { - layoutProvider.layout(layoutNode, progressMonitor); - $release(algorithmData.providerPool, layoutProvider); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - throw toJs(exception); - } - else - throw toJs($e0); - } -} - -function $gatherInsideSelfLoops(node){ - var edge, edge$iterator, insideSelfLoops; - if ($booleanValue(castToBoolean($getProperty_0(node, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0))))) { - insideSelfLoops = new ArrayList; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - $isSelfloop(edge) && $booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO_0))) && (insideSelfLoops.array[insideSelfLoops.array.length] = edge , true); - } - return insideSelfLoops; - } - else { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $layout_3(this$static, layoutGraph, progressMonitor){ - var nodeCount; - nodeCount = $countNodesRecursively(this$static, layoutGraph, true); - $begin(progressMonitor, 'Recursive Graph Layout', nodeCount); - applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new DeprecatedLayoutOptionReplacer])); - $hasProperty_0(layoutGraph, ($clinit_CoreOptions() , RESOLVED_ALGORITHM)) || applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new LayoutAlgorithmResolver])); - $layoutRecursively(this$static, layoutGraph, null, progressMonitor); - $done_0(progressMonitor); -} - -function $layoutRecursively(this$static, layoutNode, testController, progressMonitor){ - var algorithmData, child, child$iterator, childLayoutSelfLoops, childrenInsideSelfLoops, hasChildren, hasInsideSelfLoops, insideSelfLoops, node, nodeCount, nodeQueue, selfLoop, selfLoop$iterator, stopHierarchy, supportsInsideSelfLoops; - if ($booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_CoreOptions() , NO_LAYOUT_0))))) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - hasChildren = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0 != 0; - insideSelfLoops = $gatherInsideSelfLoops(layoutNode); - hasInsideSelfLoops = !insideSelfLoops.isEmpty(); - if (hasChildren || hasInsideSelfLoops) { - algorithmData = castTo($getProperty_0(layoutNode, RESOLVED_ALGORITHM), 149); - if (!algorithmData) { - throw toJs(new UnsupportedConfigurationException_0('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.')); - } - supportsInsideSelfLoops = $supportsFeature(algorithmData, ($clinit_GraphFeature() , INSIDE_SELF_LOOPS)); - $evaluateHierarchyHandlingInheritance(layoutNode); - if (!hasChildren && hasInsideSelfLoops && !supportsInsideSelfLoops) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - childrenInsideSelfLoops = new ArrayList; - if (maskUndefined($getProperty_0(layoutNode, HIERARCHY_HANDLING_0)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)) && ($supportsFeature(algorithmData, COMPOUND) || $supportsFeature(algorithmData, CLUSTERS))) { - nodeCount = $countNodesWithHierarchy(this$static, layoutNode); - nodeQueue = new LinkedList; - $addAll(nodeQueue, (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); - while (nodeQueue.size_0 != 0) { - node = castTo(nodeQueue.size_0 == 0?null:(checkCriticalElement(nodeQueue.size_0 != 0) , $removeNode_0(nodeQueue, nodeQueue.header.next_0)), 33); - $evaluateHierarchyHandlingInheritance(node); - stopHierarchy = maskUndefined($getProperty_0(node, HIERARCHY_HANDLING_0)) === maskUndefined(SEPARATE_CHILDREN); - if (stopHierarchy || $hasProperty_0(node, ALGORITHM) && !$equals_8(algorithmData, $getProperty_0(node, RESOLVED_ALGORITHM))) { - childLayoutSelfLoops = $layoutRecursively(this$static, node, testController, progressMonitor); - $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); - $setProperty_1(node, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); - applyConfiguredNodeScaling(node); - } - else { - $addAll(nodeQueue, (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); - } - } - } - else { - nodeCount = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; - for (child$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - childLayoutSelfLoops = $layoutRecursively(this$static, child, testController, progressMonitor); - $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); - applyConfiguredNodeScaling(child); - } - } - for (selfLoop$iterator = new ArrayList$1(childrenInsideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { - selfLoop = castTo($next_7(selfLoop$iterator), 79); - $setProperty_1(selfLoop, NO_LAYOUT_0, ($clinit_Boolean() , true)); - } - $executeAlgorithm(layoutNode, algorithmData, $subTask(progressMonitor, nodeCount)); - $postProcessInsideSelfLoops(childrenInsideSelfLoops); - return hasInsideSelfLoops && supportsInsideSelfLoops?insideSelfLoops:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); - } - else { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $postProcessInsideSelfLoops(insideSelfLoops){ - var bend, bend$iterator, node, section, selfLoop, selfLoop$iterator, xOffset, yOffset; - for (selfLoop$iterator = new ArrayList$1(insideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { - selfLoop = castTo($next_7(selfLoop$iterator), 79); - node = connectableShapeToNode(castTo($get_20((!selfLoop.sources && (selfLoop.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, selfLoop, 4, 7)) , selfLoop.sources), 0), 82)); - xOffset = node.x_0; - yOffset = node.y_0; - section = castTo($get_20((!selfLoop.sections && (selfLoop.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, selfLoop, 6, 6)) , selfLoop.sections), 0), 202); - $setStartLocation(section, section.startX + xOffset, section.startY + yOffset); - $setEndLocation(section, section.endX + xOffset, section.endY + yOffset); - for (bend$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bend$iterator.cursor != bend$iterator.this$01_2.size_1();) { - bend = castTo($doNext(bend$iterator), 469); - $set_10(bend, bend.x_0 + xOffset, bend.y_0 + yOffset); - } - $offset_1(castTo($getProperty_0(selfLoop, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74), xOffset, yOffset); - } -} - -function RecursiveGraphLayoutEngine(){ -} - -defineClass(858, 1, {}, RecursiveGraphLayoutEngine); -var Lorg_eclipse_elk_core_RecursiveGraphLayoutEngine_2_classLit = createForClass('org.eclipse.elk.core', 'RecursiveGraphLayoutEngine', 858); -function UnsupportedConfigurationException(){ - RuntimeException.call(this); -} - -function UnsupportedConfigurationException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(296, 60, $intern_43, UnsupportedConfigurationException, UnsupportedConfigurationException_0); -var Lorg_eclipse_elk_core_UnsupportedConfigurationException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedConfigurationException', 296); -function UnsupportedGraphException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(453, 60, $intern_43, UnsupportedGraphException); -var Lorg_eclipse_elk_core_UnsupportedGraphException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedGraphException', 453); -function $ensureListSize(this$static, size_0){ - var i; - for (i = this$static.list.array.length; i < size_0; i++) { - $add_3(this$static.list, this$static.provideDefault()); - } -} - -function $getListItem(this$static, index_0){ - if (index_0 < 0) { - throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); - } - $ensureListSize(this$static, index_0 + 1); - return $get_11(this$static.list, index_0); -} - -function $setListItem(this$static, index_0, value_0){ - if (index_0 < 0) { - throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); - } - if (index_0 < this$static.list.array.length) { - $set_1(this$static.list, index_0, value_0); - } - else { - $ensureListSize(this$static, index_0); - $add_3(this$static.list, value_0); - } -} - -function AbstractRandomListAccessor(){ - this.list = new ArrayList; -} - -defineClass(754, 1, {}); -var Lorg_eclipse_elk_core_util_AbstractRandomListAccessor_2_classLit = createForClass('org.eclipse.elk.core.util', 'AbstractRandomListAccessor', 754); -function $addProcessorConfiguration(this$static, config){ - $addAll_6(this$static.additionalProcessors, config); - return this$static; -} - -function $build_0(this$static, graph){ - var algorithm, phase, phase$array, phase$array0, phase$index, phase$index0, phase$max, phase$max0, phaseEnumConstants, phaseFactory, phaseImplementation, phaseImplementations, processorConfiguration; - if (this$static.failOnMissingPhase && this$static.configuredPhases.size_0 < this$static.numberOfPhases) { - throw toJs(new IllegalStateException_0('Expected ' + this$static.numberOfPhases + ' phases to be configured; ' + 'only found ' + this$static.configuredPhases.size_0)); - } - phaseEnumConstants = castTo($getEnumConstants(this$static.phasesEnumClass), 9); - phaseImplementations = newArrayListWithCapacity(this$static.numberOfPhases); - for (phase$array0 = phaseEnumConstants , phase$index0 = 0 , phase$max0 = phase$array0.length; phase$index0 < phase$max0; ++phase$index0) { - phase = phase$array0[phase$index0]; - phaseFactory = castTo($getListItem(this$static, phase.ordinal), 246); - phaseFactory?$add_3(phaseImplementations, castTo($retrieveProcessor(this$static, phaseFactory), 123)):(phaseImplementations.array[phaseImplementations.array.length] = null , true); - } - processorConfiguration = new LayoutProcessorConfiguration; - $forEach_3($filter($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(phaseImplementations, 16)), new AlgorithmAssembler$lambda$0$Type), new AlgorithmAssembler$lambda$1$Type(graph)), new AlgorithmAssembler$lambda$2$Type), new AlgorithmAssembler$lambda$3$Type(processorConfiguration)); - $addAll_6(processorConfiguration, this$static.additionalProcessors); - algorithm = new ArrayList; - for (phase$array = phaseEnumConstants , phase$index = 0 , phase$max = phase$array.length; phase$index < phase$max; ++phase$index) { - phase = phase$array[phase$index]; - $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phase.ordinal), 20)))); - phaseImplementation = castTo($get_11(phaseImplementations, phase.ordinal), 123); - !!phaseImplementation && (algorithm.array[algorithm.array.length] = phaseImplementation , true); - } - $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phaseEnumConstants[phaseEnumConstants.length - 1].ordinal + 1), 20)))); - return algorithm; -} - -function $lambda$4_3(this$static, processors_1, factory_1){ - return $add_3(processors_1, $retrieveProcessor(this$static, factory_1)); -} - -function $reset_4(this$static){ - this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $clear_0(this$static.configuredPhases); - $clear_10(this$static.additionalProcessors); - return this$static; -} - -function $retrieveProcessor(this$static, factory){ - var processor; - if (this$static.enableCaching) { - if ($containsKey_3(this$static.cache, factory)) { - return castTo($get_10(this$static.cache, factory), 51); - } - else { - processor = factory.create_1(); - $put_6(this$static.cache, factory, processor); - return processor; - } - } - else { - return factory.create_1(); - } -} - -function $retrieveProcessors(this$static, factories){ - var processors; - processors = newArrayListWithCapacity(factories.map_0.size_1()); - $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(factories, 1)), this$static.processorComparator), new AlgorithmAssembler$lambda$4$Type(this$static, processors)); - return processors; -} - -function $setPhase(this$static, phase, phaseFactory){ - $setListItem(this$static, phase.ordinal, phaseFactory); - $add_5(this$static.configuredPhases, phase); - return this$static; -} - -function AlgorithmAssembler(phaseEnum){ - var all; - AbstractRandomListAccessor.call(this); - this.processorComparator = new EnumBasedFactoryComparator; - this.phasesEnumClass = phaseEnum; - this.numberOfPhases = castTo(phaseEnum.enumConstantsFunc && phaseEnum.enumConstantsFunc(), 9).length; - if (this.numberOfPhases == 0) { - throw toJs(new IllegalArgumentException_0('There must be at least one phase in the phase enumeration.')); - } - this.configuredPhases = (all = castTo($getEnumConstants(this.phasesEnumClass), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - this.additionalProcessors = new LayoutProcessorConfiguration; - this.cache = new HashMap; -} - -function lambda$1_18(graph_0, phase_1){ - return phase_1.getLayoutProcessorConfiguration(graph_0); -} - -defineClass(500, 754, {}, AlgorithmAssembler); -_.provideDefault = function provideDefault(){ - return null; -} -; -_.enableCaching = true; -_.failOnMissingPhase = true; -_.numberOfPhases = 0; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler', 500); -function AlgorithmAssembler$lambda$0$Type(){ -} - -defineClass(1236, 1, $intern_39, AlgorithmAssembler$lambda$0$Type); -_.test_0 = function test_107(arg0){ - return !!castTo(arg0, 123); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$0$Type', 1236); -function AlgorithmAssembler$lambda$1$Type(graph_0){ - this.graph_0 = graph_0; -} - -defineClass(1237, 1, {}, AlgorithmAssembler$lambda$1$Type); -_.apply_0 = function apply_166(arg0){ - return lambda$1_18(this.graph_0, castTo(arg0, 123)); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$1$Type', 1237); -function AlgorithmAssembler$lambda$2$Type(){ -} - -defineClass(1238, 1, $intern_39, AlgorithmAssembler$lambda$2$Type); -_.test_0 = function test_108(arg0){ - return !!castTo(arg0, 80); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$2$Type', 1238); -function AlgorithmAssembler$lambda$3$Type(processorConfiguration_0){ - this.processorConfiguration_0 = processorConfiguration_0; -} - -defineClass(1239, 1, $intern_19, AlgorithmAssembler$lambda$3$Type); -_.accept = function accept_139(arg0){ - $addAll_6(this.processorConfiguration_0, castTo(arg0, 80)); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$3$Type', 1239); -function AlgorithmAssembler$lambda$4$Type($$outer_0, processors_1){ - this.$$outer_0 = $$outer_0; - this.processors_1 = processors_1; -} - -defineClass(1240, 1, $intern_19, AlgorithmAssembler$lambda$4$Type); -_.accept = function accept_140(arg0){ - $lambda$4_3(this.$$outer_0, this.processors_1, castTo(arg0, 234)); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$4$Type', 1240); -function $compare_23(factory1, factory2){ - getClass__Ljava_lang_Class___devirtual$(factory1); - getClass__Ljava_lang_Class___devirtual$(factory2); - return $compareTo(castTo(factory1, 22), castTo(factory2, 22)); -} - -function EnumBasedFactoryComparator(){ -} - -defineClass(1355, 1, $intern_88, EnumBasedFactoryComparator); -_.compare_1 = function compare_81(factory1, factory2){ - return $compare_23(castTo(factory1, 234), castTo(factory2, 234)); -} -; -_.equals_0 = function equals_168(other){ - return this === other; -} -; -_.reversed = function reversed_73(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_alg_EnumBasedFactoryComparator_2_classLit = createForClass('org.eclipse.elk.core.alg', 'EnumBasedFactoryComparator', 1355); -function $add_17(this$static, processor){ - if (this$static.currentIndex < 0) { - throw toJs(new IllegalStateException_0('Did not call before(...) or after(...) before calling add(...).')); - } - $doAdd(this$static, this$static.currentIndex, processor); - return this$static; -} - -function $addAfter(this$static, phase, processor){ - this$static.currentIndex = -1; - $doAdd(this$static, phase.ordinal + 1, processor); - return this$static; -} - -function $addAll_6(this$static, configuration){ - var i; - for (i = 0; i < configuration.list.array.length; i++) { - castTo($getListItem(this$static, i), 21).addAll(castTo($getListItem(configuration, i), 14)); - } - return this$static; -} - -function $addBefore(this$static, phase, processor){ - this$static.currentIndex = -1; - $doAdd(this$static, phase.ordinal, processor); - return this$static; -} - -function $after(this$static, phase){ - this$static.currentIndex = phase.ordinal + 1; - return this$static; -} - -function $before(this$static, phase){ - this$static.currentIndex = phase.ordinal; - return this$static; -} - -function $clear_10(this$static){ - this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.currentIndex = -1; - return this$static; -} - -function $doAdd(this$static, index_0, processor){ - castTo($getListItem(this$static, index_0), 21).add_2(processor); -} - -function LayoutProcessorConfiguration(){ - AbstractRandomListAccessor.call(this); - this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this.currentIndex = -1; -} - -function createFrom_0(source){ - return $addAll_6(new LayoutProcessorConfiguration, source); -} - -defineClass(80, 754, {80:1}, LayoutProcessorConfiguration); -_.provideDefault = function provideDefault_0(){ - return new HashSet; -} -; -_.currentIndex = 0; -var Lorg_eclipse_elk_core_alg_LayoutProcessorConfiguration_2_classLit = createForClass('org.eclipse.elk.core.alg', 'LayoutProcessorConfiguration', 80); -function $clinit_DeprecatedLayoutOptionReplacer(){ - $clinit_DeprecatedLayoutOptionReplacer = emptyMethod; - NEXT_TO_PORT_IF_POSSIBLE = new DeprecatedLayoutOptionReplacer$lambda$0$Type; - SPACE_EFFICIENT = new DeprecatedLayoutOptionReplacer$lambda$1$Type; - RULES = of_0(($clinit_CoreOptions() , PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0), NEXT_TO_PORT_IF_POSSIBLE, NODE_SIZE_OPTIONS_6, SPACE_EFFICIENT); -} - -function DeprecatedLayoutOptionReplacer(){ - $clinit_DeprecatedLayoutOptionReplacer(); -} - -function lambda$0_35(e_0){ - $clinit_DeprecatedLayoutOptionReplacer(); - castTo(e_0.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).add_2(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); - e_0.setProperty(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, null); -} - -function lambda$1_19(e_0){ - $clinit_DeprecatedLayoutOptionReplacer(); - if (castTo(e_0.getProperty(($clinit_CoreOptions() , NODE_SIZE_OPTIONS_6)), 174).contains(($clinit_SizeOptions() , SPACE_EFFICIENT_PORT_LABELS))) { - castTo(e_0.getProperty(PORT_LABELS_PLACEMENT_5), 174).add_2(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); - castTo(e_0.getProperty(NODE_SIZE_OPTIONS_6), 174).remove_1(SPACE_EFFICIENT_PORT_LABELS); - } -} - -function lambda$2_9(element_0, option_1, replacer_2){ - $clinit_DeprecatedLayoutOptionReplacer(); - element_0.hasProperty(option_1) && replacer_2.accept(element_0); -} - -defineClass(1013, 1, {527:1}, DeprecatedLayoutOptionReplacer); -_.visit = function visit_0(element){ - $forEach_2(RULES, new DeprecatedLayoutOptionReplacer$lambda$2$Type(element)); -} -; -var NEXT_TO_PORT_IF_POSSIBLE, RULES, SPACE_EFFICIENT; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer', 1013); -function DeprecatedLayoutOptionReplacer$lambda$0$Type(){ -} - -defineClass(1014, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$0$Type); -_.accept = function accept_141(arg0){ - lambda$0_35(castTo(arg0, 160)); -} -; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$0$Type', 1014); -function DeprecatedLayoutOptionReplacer$lambda$1$Type(){ -} - -defineClass(1015, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$1$Type); -_.accept = function accept_142(arg0){ - lambda$1_19(castTo(arg0, 160)); -} -; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$1$Type', 1015); -function DeprecatedLayoutOptionReplacer$lambda$2$Type(element_0){ - this.element_0 = element_0; -} - -defineClass(1016, 1, {}, DeprecatedLayoutOptionReplacer$lambda$2$Type); -_.accept_1 = function accept_143(arg0, arg1){ - lambda$2_9(this.element_0, castTo(arg0, 146), castTo(arg1, 38)); -} -; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$2$Type', 1016); -function $addKnownOption(this$static, property, defaultValue){ - $putStringValue(this$static.knownOptions, property.id_0, defaultValue); -} - -function $equals_8(this$static, obj){ - if (instanceOf(obj, 149)) { - return $equals_5(this$static.id_0, castTo(obj, 149).id_0); - } - return false; -} - -function $supportsFeature(this$static, graphFeature){ - return $containsEnum(this$static.supportedFeatures, graphFeature); -} - -function LayoutAlgorithmData(builder){ - var all; - this.knownOptions = new HashMap; - this.id_0 = builder.id_0; - this.name_0 = builder.name_0; - this.description = builder.description; - this.providerPool = new InstancePool(builder.providerFactory); - this.category = builder.category; - !builder.supportedFeatures?(this.supportedFeatures = (all = castTo($getEnumConstants(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.supportedFeatures = builder.supportedFeatures); -} - -defineClass(149, 1, {686:1, 149:1}, LayoutAlgorithmData); -_.equals_0 = function equals_169(obj){ - return $equals_8(this, obj); -} -; -_.getDescription = function getDescription(){ - return this.description; -} -; -_.getId = function getId(){ - return this.id_0; -} -; -_.getName = function getName_2(){ - return this.name_0; -} -; -_.hashCode_1 = function hashCode_64(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_111(){ - return 'Layout Algorithm: ' + this.id_0; -} -; -var Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData', 149); -function $category(this$static, acategory){ - this$static.category = acategory; - return this$static; -} - -function $description(this$static, adescription){ - this$static.description = adescription; - return this$static; -} - -function $id(this$static, aid){ - this$static.id_0 = aid; - return this$static; -} - -function $name_0(this$static, aname){ - this$static.name_0 = aname; - return this$static; -} - -function $providerFactory(this$static, aproviderFactory){ - this$static.providerFactory = aproviderFactory; - return this$static; -} - -function $supportedFeatures(this$static, asupportedFeatures){ - this$static.supportedFeatures = asupportedFeatures; - return this$static; -} - -function LayoutAlgorithmData$Builder(){ -} - -defineClass(263, 1, {}, LayoutAlgorithmData$Builder); -var Lorg_eclipse_elk_core_data_LayoutAlgorithmData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData/Builder', 263); -function $resolveAlgorithm(node){ - var algorithmId, message; - algorithmId = castToString($getProperty_0(node, ($clinit_CoreOptions() , ALGORITHM))); - if ($resolveAndSetAlgorithm(algorithmId, node)) { - return; - } - if (!$hasProperty_0(node, RESOLVED_ALGORITHM) && ((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(node, INSIDE_SELF_LOOPS_ACTIVATE_0))))) { - if (algorithmId == null || $trim(algorithmId).length == 0) { - if (!$resolveAndSetAlgorithm('org.eclipse.elk.layered', node)) { - message = $append_11($append_11(new StringBuilder_1('Unable to load default layout algorithm '), 'org.eclipse.elk.layered'), ' for unconfigured node '); - printElementPath(node, message); - throw toJs(new UnsupportedConfigurationException_0(message.string)); - } - } - else { - message = $append_11($append_11(new StringBuilder_1("Layout algorithm '"), algorithmId), "' not found for "); - printElementPath(node, message); - throw toJs(new UnsupportedConfigurationException_0(message.string)); - } - } -} - -function $resolveAndSetAlgorithm(algorithmId, node){ - var algorithmData; - algorithmData = $getAlgorithmDataBySuffix(getInstance(), algorithmId); - if (algorithmData) { - $setProperty_1(node, ($clinit_CoreOptions() , RESOLVED_ALGORITHM), algorithmData); - return true; - } - else { - return false; - } -} - -function LayoutAlgorithmResolver(){ -} - -defineClass(1017, 1, {527:1}, LayoutAlgorithmResolver); -_.visit = function visit_1(element){ - instanceOf(element, 239) && !$booleanValue(castToBoolean(element.getProperty(($clinit_CoreOptions() , NO_LAYOUT_0)))) && $resolveAlgorithm(castTo(element, 33)); -} -; -var Lorg_eclipse_elk_core_data_LayoutAlgorithmResolver_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmResolver', 1017); -function LayoutCategoryData(builder){ - this.layouters = new LinkedList; - this.id_0 = builder.id_0; - this.name_0 = builder.name_0; - this.description = builder.description; -} - -defineClass(229, 1, {686:1, 229:1}, LayoutCategoryData); -_.equals_0 = function equals_170(obj){ - if (instanceOf(obj, 229)) { - return $equals_5(this.id_0, castTo(obj, 229).id_0); - } - return false; -} -; -_.getDescription = function getDescription_0(){ - return this.description; -} -; -_.getId = function getId_0(){ - return this.id_0; -} -; -_.getName = function getName_3(){ - return this.name_0; -} -; -_.hashCode_1 = function hashCode_65(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_112(){ - return 'Layout Type: ' + this.id_0; -} -; -var Lorg_eclipse_elk_core_data_LayoutCategoryData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData', 229); -function $description_0(this$static, adescription){ - this$static.description = adescription; - return this$static; -} - -function $id_0(this$static, aid){ - this$static.id_0 = aid; - return this$static; -} - -function $name_1(this$static, aname){ - this$static.name_0 = aname; - return this$static; -} - -function LayoutCategoryData$Builder(){ -} - -defineClass(344, 1, {}, LayoutCategoryData$Builder); -var Lorg_eclipse_elk_core_data_LayoutCategoryData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData/Builder', 344); -function $getAlgorithmData(this$static, id_0){ - return castTo($get_16(this$static.layoutAlgorithmMap, id_0), 149); -} - -function $getAlgorithmDataBySuffix(this$static, suffix){ - var d, d$iterator, data_0, entry, id_0, outerIter, suffixlength; - if (suffix == null || suffix.length == 0) { - return null; - } - data_0 = castTo($getStringValue(this$static.algorithmSuffixMap, suffix), 149); - if (!data_0) { - for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { - d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); - id_0 = d.id_0; - suffixlength = suffix.length; - if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { - if (data_0) { - return null; - } - data_0 = d; - } - } - !!data_0 && $putStringValue(this$static.algorithmSuffixMap, suffix, data_0); - } - return data_0; -} - -function $getCategoryData(this$static, id_0){ - return castTo($get_16(this$static.layoutCategoryMap, id_0), 229); -} - -function $getOptionData(this$static, id_0){ - var data_0; - data_0 = castTo($get_16(this$static.layoutOptionMap, id_0), 23); - return data_0?data_0:castTo($get_16(this$static.legacyLayoutOptionMap, id_0), 23); -} - -function $getOptionDataBySuffix(this$static, suffix){ - var d, d$iterator, d$iterator0, data_0, entry, id_0, id$array, id$index, id$max, legacyIds, outerIter, outerIter0, suffixlength; - if (suffix == null || suffix.length == 0) { - return null; - } - data_0 = castTo($getStringValue(this$static.optionSuffixMap, suffix), 23); - if (!data_0) { - for (d$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); d$iterator0.val$outerIter2.hasNext_0();) { - d = (entry = castTo(d$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); - id_0 = d.id_0; - suffixlength = suffix.length; - if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { - if (data_0) { - return null; - } - data_0 = d; - } - } - if (!data_0) { - for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { - d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); - legacyIds = d.legacyIds; - if (legacyIds != null) { - for (id$array = legacyIds , id$index = 0 , id$max = id$array.length; id$index < id$max; ++id$index) { - id_0 = id$array[id$index]; - suffixlength = suffix.length; - if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { - if (data_0) { - return null; - } - data_0 = d; - } - } - } - } - } - !!data_0 && $putStringValue(this$static.optionSuffixMap, suffix, data_0); - } - return data_0; -} - -function $registerLayoutMetaDataProviders(this$static, providers){ - var provider, provider$array, provider$index, provider$max, registry; - for (provider$array = providers , provider$index = 0 , provider$max = provider$array.length; provider$index < provider$max; ++provider$index) { - provider = provider$array[provider$index]; - registry = new LayoutMetaDataService$Registry(this$static); - provider.apply_4(registry); - $applyDependencies(registry); - } - $reset(this$static.optionSuffixMap); -} - -function LayoutMetaDataService(){ - this.layoutAlgorithmMap = new LinkedHashMap; - this.layoutOptionMap = new LinkedHashMap; - this.legacyLayoutOptionMap = new LinkedHashMap; - this.layoutCategoryMap = new LinkedHashMap; - this.algorithmSuffixMap = new HashMap; - this.optionSuffixMap = new HashMap; - register(Lorg_eclipse_elk_core_math_KVector_2_classLit, new LayoutMetaDataService$lambda$0$Type, new LayoutMetaDataService$lambda$1$Type); - register(Lorg_eclipse_elk_core_math_KVectorChain_2_classLit, new LayoutMetaDataService$lambda$2$Type, new LayoutMetaDataService$lambda$3$Type); - register(Lorg_eclipse_elk_core_math_ElkMargin_2_classLit, new LayoutMetaDataService$lambda$4$Type, new LayoutMetaDataService$lambda$5$Type); - register(Lorg_eclipse_elk_core_math_ElkPadding_2_classLit, new LayoutMetaDataService$lambda$6$Type, new LayoutMetaDataService$lambda$7$Type); - register(Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit, new LayoutMetaDataService$lambda$8$Type, new LayoutMetaDataService$lambda$9$Type); - register(Ljava_util_ArrayList_2_classLit, new LayoutMetaDataService$lambda$10$Type, new LayoutMetaDataService$lambda$11$Type); - register(Ljava_util_LinkedList_2_classLit, new LayoutMetaDataService$lambda$12$Type, new LayoutMetaDataService$lambda$13$Type); - register(Ljava_util_HashSet_2_classLit, new LayoutMetaDataService$lambda$14$Type, new LayoutMetaDataService$lambda$15$Type); - register(Ljava_util_LinkedHashSet_2_classLit, new LayoutMetaDataService$lambda$16$Type, new LayoutMetaDataService$lambda$17$Type); - register(Ljava_util_TreeSet_2_classLit, new LayoutMetaDataService$lambda$18$Type, new LayoutMetaDataService$lambda$19$Type); -} - -function getInstance(){ - if (!instance_2) { - instance_2 = new LayoutMetaDataService; - $registerLayoutMetaDataProviders(instance_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); - } - return instance_2; -} - -defineClass(867, 1, {}, LayoutMetaDataService); -var instance_2; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService', 867); -function $addDependency(this$static, sourceOption, targetOption, requiredValue){ - var dep; - dep = new LayoutMetaDataService$Registry$Triple; - dep.firstId = sourceOption; - dep.secondId = targetOption; - dep.value_0 = requiredValue; - $add_7(this$static.optionDependencies, dep); -} - -function $addOptionSupport(this$static, algorithm, option, defaultValue){ - var sup_0; - sup_0 = new LayoutMetaDataService$Registry$Triple; - sup_0.firstId = algorithm; - sup_0.secondId = option; - sup_0.value_0 = defaultValue; - $add_7(this$static.optionSupport, sup_0); -} - -function $applyDependencies(this$static){ - var algorithm, algorithm$iterator, category, categoryId, dep, dep$iterator, entry, option, outerIter, source, sup_0, sup$iterator, target; - for (algorithm$iterator = (outerIter = (new AbstractMap$2(this$static.this$01.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); algorithm$iterator.val$outerIter2.hasNext_0();) { - algorithm = (entry = castTo(algorithm$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); - categoryId = algorithm.category; - categoryId == null && (categoryId = ''); - category = $getCategoryData(this$static.this$01, categoryId); - !category && categoryId.length == 0 && (category = $retrieveBackupCategory(this$static)); - !!category && !$advanceToFind(category.layouters, algorithm, false) && $add_7(category.layouters, algorithm); - } - for (dep$iterator = $listIterator_2(this$static.optionDependencies, 0); dep$iterator.currentNode != dep$iterator.this$01.tail;) { - dep = castTo($next_10(dep$iterator), 478); - source = $getOptionData(this$static.this$01, dep.firstId); - target = $getOptionData(this$static.this$01, dep.secondId); - !!source && !!target && $add_7(source.dependencies, new Pair(target, dep.value_0)); - } - $reset_0(this$static.optionDependencies); - for (sup$iterator = $listIterator_2(this$static.optionSupport, 0); sup$iterator.currentNode != sup$iterator.this$01.tail;) { - sup_0 = castTo($next_10(sup$iterator), 478); - algorithm = $getAlgorithmData(this$static.this$01, sup_0.firstId); - option = $getOptionData(this$static.this$01, sup_0.secondId); - !!algorithm && !!option && $addKnownOption(algorithm, option, sup_0.value_0); - } - $reset_0(this$static.optionSupport); -} - -function $register(this$static, algorithmData){ - $put_11(this$static.this$01.layoutAlgorithmMap, algorithmData.id_0, algorithmData); -} - -function $register_0(this$static, categoryData){ - $put_11(this$static.this$01.layoutCategoryMap, categoryData.id_0, categoryData); -} - -function $register_1(this$static, optionData){ - var id_0, legacyId, legacyId$array, legacyId$index, legacyId$max; - id_0 = optionData.id_0; - $put_11(this$static.this$01.layoutOptionMap, id_0, optionData); - if (optionData.legacyIds != null) { - for (legacyId$array = optionData.legacyIds , legacyId$index = 0 , legacyId$max = legacyId$array.length; legacyId$index < legacyId$max; ++legacyId$index) { - legacyId = legacyId$array[legacyId$index]; - $put_11(this$static.this$01.legacyLayoutOptionMap, legacyId, optionData); - } - } -} - -function $retrieveBackupCategory(this$static){ - var otherCategory; - otherCategory = castTo($get_16(this$static.this$01.layoutCategoryMap, ''), 229); - if (!otherCategory) { - otherCategory = new LayoutCategoryData($name_1($id_0(new LayoutCategoryData$Builder, ''), 'Other')); - $put_11(this$static.this$01.layoutCategoryMap, '', otherCategory); - } - return otherCategory; -} - -function LayoutMetaDataService$Registry(this$0){ - this.this$01 = this$0; - this.optionDependencies = new LinkedList; - this.optionSupport = new LinkedList; -} - -defineClass(868, 1, {}, LayoutMetaDataService$Registry); -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry', 868); -function LayoutMetaDataService$Registry$Triple(){ -} - -defineClass(478, 1, {478:1}, LayoutMetaDataService$Registry$Triple); -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry$Triple_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry/Triple', 478); -function LayoutMetaDataService$lambda$0$Type(){ -} - -defineClass(869, 1, $intern_129, LayoutMetaDataService$lambda$0$Type); -_.newInstance = function newInstance_0(){ - return new KVector; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$0$Type', 869); -function LayoutMetaDataService$lambda$1$Type(){ -} - -defineClass(870, 1, $intern_130, LayoutMetaDataService$lambda$1$Type); -_.clone = function clone_1(arg0){ - return $clone_0(castTo(arg0, 8)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$1$Type', 870); -function LayoutMetaDataService$lambda$10$Type(){ -} - -defineClass(879, 1, $intern_129, LayoutMetaDataService$lambda$10$Type); -_.newInstance = function newInstance_1(){ - return new ArrayList; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$10$Type', 879); -function LayoutMetaDataService$lambda$11$Type(){ -} - -defineClass(880, 1, $intern_130, LayoutMetaDataService$lambda$11$Type); -_.clone = function clone_2(arg0){ - return new ArrayList_1(castTo(arg0, 12)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$11$Type', 880); -function LayoutMetaDataService$lambda$12$Type(){ -} - -defineClass(881, 1, $intern_129, LayoutMetaDataService$lambda$12$Type); -_.newInstance = function newInstance_2(){ - return new LinkedList; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$12$Type', 881); -function LayoutMetaDataService$lambda$13$Type(){ -} - -defineClass(882, 1, $intern_130, LayoutMetaDataService$lambda$13$Type); -_.clone = function clone_3(arg0){ - return newLinkedList(castTo(arg0, 68)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$13$Type', 882); -function LayoutMetaDataService$lambda$14$Type(){ -} - -defineClass(883, 1, $intern_129, LayoutMetaDataService$lambda$14$Type); -_.newInstance = function newInstance_3(){ - return new HashSet; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$14$Type', 883); -function LayoutMetaDataService$lambda$15$Type(){ -} - -defineClass(884, 1, $intern_130, LayoutMetaDataService$lambda$15$Type); -_.clone = function clone_4(arg0){ - return newHashSet(castTo(arg0, 53)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$15$Type', 884); -function LayoutMetaDataService$lambda$16$Type(){ -} - -defineClass(885, 1, $intern_129, LayoutMetaDataService$lambda$16$Type); -_.newInstance = function newInstance_4(){ - return new LinkedHashSet; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$16$Type', 885); -function LayoutMetaDataService$lambda$17$Type(){ -} - -defineClass(886, 1, $intern_130, LayoutMetaDataService$lambda$17$Type); -_.clone = function clone_5(arg0){ - return newLinkedHashSet(castTo(arg0, 53)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$17$Type', 886); -function LayoutMetaDataService$lambda$18$Type(){ -} - -defineClass(887, 1, $intern_129, LayoutMetaDataService$lambda$18$Type); -_.newInstance = function newInstance_5(){ - return new TreeSet; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$18$Type', 887); -function LayoutMetaDataService$lambda$19$Type(){ -} - -defineClass(888, 1, $intern_130, LayoutMetaDataService$lambda$19$Type); -_.clone = function clone_6(arg0){ - return newTreeSet(castTo(arg0, 208)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$19$Type', 888); -function LayoutMetaDataService$lambda$2$Type(){ -} - -defineClass(871, 1, $intern_129, LayoutMetaDataService$lambda$2$Type); -_.newInstance = function newInstance_6(){ - return new KVectorChain; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$2$Type', 871); -function LayoutMetaDataService$lambda$3$Type(){ -} - -defineClass(872, 1, $intern_130, LayoutMetaDataService$lambda$3$Type); -_.clone = function clone_7(arg0){ - return new KVectorChain_0(castTo(arg0, 74)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$3$Type', 872); -function LayoutMetaDataService$lambda$4$Type(){ -} - -defineClass(873, 1, $intern_129, LayoutMetaDataService$lambda$4$Type); -_.newInstance = function newInstance_7(){ - return new ElkMargin; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$4$Type', 873); -function LayoutMetaDataService$lambda$5$Type(){ -} - -defineClass(874, 1, $intern_130, LayoutMetaDataService$lambda$5$Type); -_.clone = function clone_8(arg0){ - return new ElkMargin_2(castTo(arg0, 142)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$5$Type', 874); -function LayoutMetaDataService$lambda$6$Type(){ -} - -defineClass(875, 1, $intern_129, LayoutMetaDataService$lambda$6$Type); -_.newInstance = function newInstance_8(){ - return new ElkPadding; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$6$Type', 875); -function LayoutMetaDataService$lambda$7$Type(){ -} - -defineClass(876, 1, $intern_130, LayoutMetaDataService$lambda$7$Type); -_.clone = function clone_9(arg0){ - return new ElkPadding_1(castTo(arg0, 116)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$7$Type', 876); -function LayoutMetaDataService$lambda$8$Type(){ -} - -defineClass(877, 1, $intern_129, LayoutMetaDataService$lambda$8$Type); -_.newInstance = function newInstance_9(){ - return new IndividualSpacings; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$8$Type', 877); -function LayoutMetaDataService$lambda$9$Type(){ -} - -defineClass(878, 1, $intern_130, LayoutMetaDataService$lambda$9$Type); -_.clone = function clone_10(arg0){ - return new IndividualSpacings_0(castTo(arg0, 373)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$9$Type', 878); -var Lorg_eclipse_elk_graph_properties_IProperty_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IProperty'); -function $checkEnumClass(this$static){ - if (!this$static.clazz || (this$static.clazz.modifiers & 8) == 0) { - throw toJs(new IllegalStateException_0('Enumeration class expected for layout option ' + this$static.id_0)); - } -} - -function $compareTo_19(this$static, other){ - return $compareTo_9(this$static.id_0, other.getId()); -} - -function $createDataInstance(this$static){ - var instance; - if (!this$static.clazz) { - throw toJs(new IllegalStateException_0('IDataType class expected for layout option ' + this$static.id_0)); - } - instance = newInstance_10(this$static.clazz); - if (instance == null) { - throw toJs(new IllegalStateException_0("Couldn't create new instance of property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); - } - return castTo(instance, 414); -} - -function $enumForString(this$static, leString){ - var constants, index_0, value_0; - try { - value_0 = valueOf_0(this$static.clazz, leString); - return value_0; - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 32)) { - try { - index_0 = __parseAndValidateInt(leString, $intern_42, $intern_0); - constants = $getEnumConstants(this$static.clazz); - if (index_0 >= 0 && index_0 < constants.length) { - return constants[index_0]; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 127)) - throw toJs($e0); - } - return null; - } - else - throw toJs($e1); - } -} - -function $enumSetForStringArray(this$static, leClazz, leString){ - var all, component, component$array, component$index, component$max, components, o, set_0; - set_0 = (all = castTo(leClazz.enumConstantsFunc && leClazz.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - components = $split_0(leString, '[\\[\\]\\s,]+'); - for (component$array = components , component$index = 0 , component$max = component$array.length; component$index < component$max; ++component$index) { - component = component$array[component$index]; - if ($trim(component).length == 0) { - continue; - } - o = $enumForString(this$static, component); - if (o == null) { - return null; - } - else { - $add_5(set_0, castTo(o, 22)); - } - } - return set_0; -} - -function $parseValue(this$static, valueString){ - var value_0; - if (valueString == null || $equals_5(valueString, 'null')) { - return null; - } - if (valueString.length == 0 && this$static.type_0 != ($clinit_LayoutOptionData$Type() , ENUMSET)) { - return null; - } - switch (this$static.type_0.ordinal) { - case 1: - return $equalsIgnoreCase(valueString, 'true')?($clinit_Boolean() , TRUE_0):$equalsIgnoreCase(valueString, 'false')?($clinit_Boolean() , FALSE_0):null; - case 2: - try { - return valueOf_4(__parseAndValidateInt(valueString, $intern_42, $intern_0)); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - return null; - } - else - throw toJs($e0); - } - - case 4: - try { - return __parseAndValidateDouble(valueString); - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 127)) { - return null; - } - else - throw toJs($e1); - } - - case 3: - return valueString; - case 5: - $checkEnumClass(this$static); - return $enumForString(this$static, valueString); - case 6: - $checkEnumClass(this$static); - return $enumSetForStringArray(this$static, this$static.clazz, valueString); - case 7: - try { - value_0 = $createDataInstance(this$static); - value_0.parse_0(valueString); - return value_0; - } - catch ($e2) { - $e2 = toJava($e2); - if (instanceOf($e2, 32)) { - return null; - } - else - throw toJs($e2); - } - - default:throw toJs(new IllegalStateException_0('Invalid type set for this layout option.')); - } -} - -function LayoutOptionData(builder){ - var all; - this.dependencies = new LinkedList; - this.id_0 = builder.id_0; - this.group_0 = builder.group_0; - this.name_0 = builder.name_0; - this.description = builder.description; - this.defaultValue = builder.defaultValue; - this.type_0 = builder.type_0; - this.clazz = builder.clazz; - !builder.targets?(this.targets = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.targets = builder.targets); - this.legacyIds = builder.legacyIds; -} - -defineClass(23, 1, {35:1, 686:1, 23:1, 146:1}, LayoutOptionData); -_.compareTo_0 = function compareTo_20(other){ - return $compareTo_19(this, castTo(other, 146)); -} -; -_.equals_0 = function equals_171(obj){ - return instanceOf(obj, 23)?$equals_5(this.id_0, castTo(obj, 23).id_0):instanceOf(obj, 146) && $equals_5(this.id_0, castTo(obj, 146).getId()); -} -; -_.getDefault = function getDefault(){ - var clone; - if (instanceOf(this.defaultValue, 4)) { - clone = clone_11(this.defaultValue); - if (clone == null) { - throw toJs(new IllegalStateException_0("Couldn't clone property '" + this.id_0 + "'. " + "Make sure it's type is registered with the " + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); - } - return clone; - } - else { - return this.defaultValue; - } -} -; -_.getDescription = function getDescription_1(){ - return this.description; -} -; -_.getId = function getId_1(){ - return this.id_0; -} -; -_.getName = function getName_4(){ - return this.name_0; -} -; -_.hashCode_1 = function hashCode_66(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_113(){ - return 'Layout Option: ' + this.id_0; -} -; -var Lorg_eclipse_elk_core_data_LayoutOptionData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData', 23); -function $defaultValue(this$static, adefaultValue){ - this$static.defaultValue = adefaultValue; - return this$static; -} - -function $description_1(this$static, adescription){ - this$static.description = adescription; - return this$static; -} - -function $group(this$static, agroup){ - this$static.group_0 = agroup; - return this$static; -} - -function $id_1(this$static, aid){ - this$static.id_0 = aid; - return this$static; -} - -function $legacyIds(this$static, alegacyIds){ - this$static.legacyIds = alegacyIds; - return this$static; -} - -function $name_2(this$static, aname){ - this$static.name_0 = aname; - return this$static; -} - -function $optionClass(this$static, aclazz){ - this$static.clazz = aclazz; - return this$static; -} - -function $targets(this$static, atargets){ - this$static.targets = atargets; - return this$static; -} - -function $type(this$static, atype){ - this$static.type_0 = atype; - return this$static; -} - -function LayoutOptionData$Builder(){ -} - -defineClass(24, 1, {}, LayoutOptionData$Builder); -var Lorg_eclipse_elk_core_data_LayoutOptionData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData/Builder', 24); -function $clinit_LayoutOptionData$Target(){ - $clinit_LayoutOptionData$Target = emptyMethod; - PARENTS = new LayoutOptionData$Target('PARENTS', 0); - NODES = new LayoutOptionData$Target('NODES', 1); - EDGES = new LayoutOptionData$Target('EDGES', 2); - PORTS = new LayoutOptionData$Target('PORTS', 3); - LABELS = new LayoutOptionData$Target('LABELS', 4); -} - -function LayoutOptionData$Target(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_92(name_0){ - $clinit_LayoutOptionData$Target(); - return valueOf(($clinit_LayoutOptionData$Target$Map() , $MAP_80), name_0); -} - -function values_98(){ - $clinit_LayoutOptionData$Target(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]); -} - -defineClass(175, 22, {3:1, 35:1, 22:1, 175:1}, LayoutOptionData$Target); -var EDGES, LABELS, NODES, PARENTS, PORTS; -var Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Target', 175, Ljava_lang_Enum_2_classLit, values_98, valueOf_92); -function $clinit_LayoutOptionData$Target$Map(){ - $clinit_LayoutOptionData$Target$Map = emptyMethod; - $MAP_80 = createValueOfMap(($clinit_LayoutOptionData$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]))); -} - -var $MAP_80; -function $clinit_LayoutOptionData$Type(){ - $clinit_LayoutOptionData$Type = emptyMethod; - UNDEFINED_1 = new LayoutOptionData$Type('UNDEFINED', 0); - BOOLEAN = new LayoutOptionData$Type('BOOLEAN', 1); - INT = new LayoutOptionData$Type('INT', 2); - STRING = new LayoutOptionData$Type('STRING', 3); - DOUBLE = new LayoutOptionData$Type('DOUBLE', 4); - ENUM = new LayoutOptionData$Type('ENUM', 5); - ENUMSET = new LayoutOptionData$Type('ENUMSET', 6); - OBJECT = new LayoutOptionData$Type('OBJECT', 7); -} - -function LayoutOptionData$Type(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_93(name_0){ - $clinit_LayoutOptionData$Type(); - return valueOf(($clinit_LayoutOptionData$Type$Map() , $MAP_81), name_0); -} - -function values_99(){ - $clinit_LayoutOptionData$Type(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]); -} - -defineClass(277, 22, {3:1, 35:1, 22:1, 277:1}, LayoutOptionData$Type); -var BOOLEAN, DOUBLE, ENUM, ENUMSET, INT, OBJECT, STRING, UNDEFINED_1; -var Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Type', 277, Ljava_lang_Enum_2_classLit, values_99, valueOf_93); -function $clinit_LayoutOptionData$Type$Map(){ - $clinit_LayoutOptionData$Type$Map = emptyMethod; - $MAP_81 = createValueOfMap(($clinit_LayoutOptionData$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]))); -} - -var $MAP_81; -function $clinit_LabelManagementOptions(){ - $clinit_LabelManagementOptions = emptyMethod; - LABEL_MANAGER = new Property('org.eclipse.elk.labels.labelManager'); -} - -var LABEL_MANAGER; -function $clinit_ElkMath(){ - $clinit_ElkMath = emptyMethod; - FACT_TABLE = stampJavaTypeInfo(getClassLiteralForArray(J_classLit, 1), $intern_62, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, {l:3506176, m:794077, h:1}, {l:884736, m:916411, h:20}, {l:3342336, m:3912489, h:363}, {l:589824, m:3034138, h:6914}, {l:3407872, m:1962506, h:138294}]); - $wnd.Math.pow(2, -65); -} - -function approximateBezierSegment(controlPoints){ - $clinit_ElkMath(); - var i, result, t; - result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, 2, 0, 1); - t = 0; - for (i = 0; i < 2; i++) { - t += 0.5; - result[i] = getPointOnBezierSegment(t, controlPoints); - } - return result; -} - -function binomiald(n, k){ - if (n < 0 || k < 0) { - throw toJs(new IllegalArgumentException_0('k and n must be positive')); - } - else if (k > n) { - throw toJs(new IllegalArgumentException_0('k must be smaller than n')); - } - else - return k == 0 || k == n?1:n == 0?0:factd(n) / (factd(k) * factd(n - k)); -} - -function clipVector(v, width_0, height){ - $clinit_ElkMath(); - var absx, absy, hh, wh, xscale, yscale; - wh = width_0 / 2; - hh = height / 2; - absx = $wnd.Math.abs(v.x_0); - absy = $wnd.Math.abs(v.y_0); - xscale = 1; - yscale = 1; - absx > wh && (xscale = wh / absx); - absy > hh && (yscale = hh / absy); - $scale(v, $wnd.Math.min(xscale, yscale)); - return v; -} - -function contains_49(rect, p){ - var maxX, maxY, minX, minY; - minX = rect.x_0; - maxX = rect.x_0 + rect.width_0; - minY = rect.y_0; - maxY = rect.y_0 + rect.height; - return p.x_0 > minX && p.x_0 < maxX && p.y_0 > minY && p.y_0 < maxY; -} - -function contains_50(rect, p1, p2){ - $clinit_ElkMath(); - return contains_49(rect, p1) && contains_49(rect, p2); -} - -function contains_51(rect, path){ - $clinit_ElkMath(); - var first, p1, p2, pathIt; - if (path.size_0 < 2) { - return false; - } - pathIt = $listIterator_2(path, 0); - first = castTo($next_10(pathIt), 8); - p1 = first; - while (pathIt.currentNode != pathIt.this$01.tail) { - p2 = castTo($next_10(pathIt), 8); - if (!(contains_49(rect, p1) && contains_49(rect, p2))) { - return false; - } - p1 = p2; - } - if (!(contains_49(rect, p1) && contains_49(rect, first))) { - return false; - } - return true; -} - -function distance_0(a1, a2, b1, b2, v){ - $clinit_ElkMath(); - return $wnd.Math.min(traceRays(a1, a2, b1, b2, v), traceRays(b1, b2, a1, a2, $negate(new KVector_1(v.x_0, v.y_0)))); -} - -function factd(x_0){ - if (x_0 < 0) { - throw toJs(new IllegalArgumentException_0('The input must be positive')); - } - else - return x_0 < FACT_TABLE.length?toDouble_0(FACT_TABLE[x_0]):$wnd.Math.sqrt($intern_123 * x_0) * (powf(x_0, x_0) / powd(2.718281828459045, x_0)); -} - -function getPointOnBezierSegment(t, controlPoints){ - var factor, j, n, p, px, py; - n = controlPoints.length - 1; - px = 0; - py = 0; - for (j = 0; j <= n; j++) { - p = controlPoints[j]; - factor = binomiald(n, j) * powd(1 - t, n - j) * powd(t, j); - px += p.x_0 * factor; - py += p.y_0 * factor; - } - return new KVector_1(px, py); -} - -function intersects_0(rect, p1, p2){ - $clinit_ElkMath(); - if (contains_49(rect, p1) && contains_49(rect, p2)) { - return false; - } - return intersects_2(new KVector_1(rect.x_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0), p1, p2); -} - -function intersects_1(rect, path){ - $clinit_ElkMath(); - var first, p1, p2, pathIt; - if (path.size_0 < 2) { - return false; - } - pathIt = $listIterator_2(path, 0); - first = castTo($next_10(pathIt), 8); - p1 = first; - while (pathIt.currentNode != pathIt.this$01.tail) { - p2 = castTo($next_10(pathIt), 8); - if (intersects_0(rect, p1, p2)) { - return true; - } - p1 = p2; - } - if (intersects_0(rect, p1, first)) { - return true; - } - return false; -} - -function intersects_2(l11, l12, l21, l22){ - var d, intersects, s, t, u0, u1, v0, v1, x00, x01, x10, x11, y00, y01, y10, y11; - u0 = l11; - v0 = $sub_0(new KVector_1(l12.x_0, l12.y_0), l11); - u1 = l21; - v1 = $sub_0(new KVector_1(l22.x_0, l22.y_0), l21); - x00 = u0.x_0; - y00 = u0.y_0; - x10 = u1.x_0; - y10 = u1.y_0; - x01 = v0.x_0; - y01 = v0.y_0; - x11 = v1.x_0; - y11 = v1.y_0; - d = x11 * y01 - x01 * y11; - $clinit_DoubleMath(); - checkNonNegative($intern_117); - if ($wnd.Math.abs(0 - d) <= $intern_117 || 0 == d || isNaN(0) && isNaN(d)) { - return false; - } - s = 1 / d * ((x00 - x10) * y01 - (y00 - y10) * x01); - t = 1 / d * -(-(x00 - x10) * y11 + (y00 - y10) * x11); - intersects = (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - s) <= $intern_117 || 0 == s || isNaN(0) && isNaN(s)?0:0 < s?-1:0 > s?1:compare_0(isNaN(0), isNaN(s))) < 0 && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(s - 1) <= $intern_117 || s == 1 || isNaN(s) && isNaN(1)?0:s < 1?-1:s > 1?1:compare_0(isNaN(s), isNaN(1))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - t) <= $intern_117 || 0 == t || isNaN(0) && isNaN(t)?0:0 < t?-1:0 > t?1:compare_0(isNaN(0), isNaN(t))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(t - 1) <= $intern_117 || t == 1 || isNaN(t) && isNaN(1)?0:t < 1?-1:t > 1?1:compare_0(isNaN(t), isNaN(1))) < 0)); - return intersects; -} - -function intersects2(p, r, q, s){ - var center, d1, d2, l, pq, pqXr, rXs, t, u; - pq = $sub_0(new KVector_1(q.x_0, q.y_0), p); - pqXr = pq.x_0 * r.y_0 - pq.y_0 * r.x_0; - rXs = r.x_0 * s.y_0 - r.y_0 * s.x_0; - t = (pq.x_0 * s.y_0 - pq.y_0 * s.x_0) / rXs; - u = pqXr / rXs; - if (rXs == 0) { - if (pqXr == 0) { - center = $add_19(new KVector_1(q.x_0, q.y_0), $scale(new KVector_1(s.x_0, s.y_0), 0.5)); - d1 = $distance_0(p, center); - d2 = $distance_0($add_19(new KVector_1(p.x_0, p.y_0), r), center); - l = $wnd.Math.sqrt(s.x_0 * s.x_0 + s.y_0 * s.y_0) * 0.5; - if (d1 < d2 && d1 <= l) { - return new KVector_1(p.x_0, p.y_0); - } - if (d2 <= l) { - return $add_19(new KVector_1(p.x_0, p.y_0), r); - } - return null; - } - else { - return null; - } - } - else { - return t >= 0 && t <= 1 && u >= 0 && u <= 1?$add_19(new KVector_1(p.x_0, p.y_0), $scale(new KVector_1(r.x_0, r.y_0), t)):null; - } -} - -function maxd(values){ - $clinit_ElkMath(); - var i, max_0; - max_0 = -1.7976931348623157E308; - for (i = 0; i < values.length; i++) { - values[i] > max_0 && (max_0 = values[i]); - } - return max_0; -} - -function powd(a, b){ - var base, exp_0, result; - result = 1; - base = a; - exp_0 = b >= 0?b:-b; - while (exp_0 > 0) { - if (exp_0 % 2 == 0) { - base *= base; - exp_0 = exp_0 / 2 | 0; - } - else { - result *= base; - exp_0 -= 1; - } - } - return b < 0?1 / result:result; -} - -function powf(a, b){ - var base, exp_0, result; - result = 1; - base = a; - exp_0 = b >= 0?b:-b; - while (exp_0 > 0) { - if (exp_0 % 2 == 0) { - base *= base; - exp_0 = exp_0 / 2 | 0; - } - else { - result *= base; - exp_0 -= 1; - } - } - return b < 0?1 / result:result; -} - -function shortestDistance_0(r1, r2){ - $clinit_ElkMath(); - var bottomDist, horzDist, leftDist, rightDist, topDist, vertDist; - rightDist = r2.x_0 - (r1.x_0 + r1.width_0); - leftDist = r1.x_0 - (r2.x_0 + r2.width_0); - topDist = r1.y_0 - (r2.y_0 + r2.height); - bottomDist = r2.y_0 - (r1.y_0 + r1.height); - horzDist = $wnd.Math.max(leftDist, rightDist); - vertDist = $wnd.Math.max(topDist, bottomDist); - $clinit_DoubleMath(); - checkNonNegative($intern_117); - if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) >= 0 ^ (null , checkNonNegative($intern_117) , ($wnd.Math.abs(vertDist) <= $intern_117 || vertDist == 0 || isNaN(vertDist) && isNaN(0)?0:vertDist < 0?-1:vertDist > 0?1:compare_0(isNaN(vertDist), isNaN(0))) >= 0)) { - return $wnd.Math.max(vertDist, horzDist); - } - checkNonNegative($intern_117); - if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) > 0) { - return $wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); - } - return -$wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); -} - -function traceRays(a1, a2, b1, b2, v){ - var edgeCase, endpointHit, intersection, result; - result = $intern_59; - endpointHit = false; - intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), $add_19(new KVector_1(b1.x_0, b1.y_0), v), $sub_0(new KVector_1(b2.x_0, b2.y_0), b1)); - edgeCase = !!intersection && !($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131 || $wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131); - intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b1, v); - !!intersection && (($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase?(result = $wnd.Math.min(result, $length($sub_0(intersection, b1)))):(endpointHit = true)); - intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b2, v); - !!intersection && (endpointHit || ($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase) && (result = $wnd.Math.min(result, $length($sub_0(intersection, b2)))); - return result; -} - -var FACT_TABLE; -function $getBottomLeft(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0 + this$static.height); -} - -function $getBottomRight(this$static){ - return new KVector_1(this$static.x_0 + this$static.width_0, this$static.y_0 + this$static.height); -} - -function $getCenter(this$static){ - return new KVector_1(this$static.x_0 + this$static.width_0 / 2, this$static.y_0 + this$static.height / 2); -} - -function $getPosition(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0); -} - -function $getTopLeft(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0); -} - -function $setRect(this$static, nx, ny, nw, nh){ - this$static.x_0 = nx; - this$static.y_0 = ny; - this$static.width_0 = nw; - this$static.height = nh; -} - -function $union(this$static, other){ - var t, x1, x2, y1, y2; - x1 = $wnd.Math.min(this$static.x_0, other.x_0); - y1 = $wnd.Math.min(this$static.y_0, other.y_0); - x2 = $wnd.Math.max(this$static.x_0 + this$static.width_0, other.x_0 + other.width_0); - y2 = $wnd.Math.max(this$static.y_0 + this$static.height, other.y_0 + other.height); - if (x2 < x1) { - t = x1; - x1 = x2; - x2 = t; - } - if (y2 < y1) { - t = y1; - y1 = y2; - y2 = t; - } - $setRect(this$static, x1, y1, x2 - x1, y2 - y1); -} - -function ElkRectangle(){ - ElkRectangle_0.call(this, 0, 0, 0, 0); -} - -function ElkRectangle_0(x_0, y_0, w, h){ - this.x_0 = x_0; - this.y_0 = y_0; - this.width_0 = w; - this.height = h; -} - -function ElkRectangle_1(rect){ - this.x_0 = rect.x_0; - this.y_0 = rect.y_0; - this.width_0 = rect.width_0; - this.height = rect.height; -} - -defineClass(110, 1, {110:1}, ElkRectangle, ElkRectangle_0, ElkRectangle_1); -_.equals_0 = function equals_172(obj){ - var other; - if (obj == null || !instanceOf(obj, 110)) { - return false; - } - other = castTo(obj, 110); - return equals_57(this.x_0, other.x_0) && equals_57(this.y_0, other.y_0) && equals_57(this.width_0, other.width_0) && equals_57(this.height, other.height); -} -; -_.hashCode_1 = function hashCode_67(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0, this.width_0, this.height])); -} -; -_.toString_0 = function toString_114(){ - return 'Rect[x=' + this.x_0 + ',y=' + this.y_0 + ',w=' + this.width_0 + ',h=' + this.height + ']'; -} -; -_.height = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_core_math_ElkRectangle_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkRectangle', 110); -function $add_18(this$static, dx, dy){ - this$static.x_0 += dx; - this$static.y_0 += dy; - return this$static; -} - -function $add_19(this$static, v){ - this$static.x_0 += v.x_0; - this$static.y_0 += v.y_0; - return this$static; -} - -function $bound(this$static, lowx, lowy, highx, highy){ - if (highx < lowx || highy < lowy) { - throw toJs(new IllegalArgumentException_0('The highx must be bigger then lowx and the highy must be bigger then lowy')); - } - this$static.x_0 < lowx?(this$static.x_0 = lowx):this$static.x_0 > highx && (this$static.x_0 = highx); - this$static.y_0 < lowy?(this$static.y_0 = lowy):this$static.y_0 > highy && (this$static.y_0 = highy); - return this$static; -} - -function $clone_0(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0); -} - -function $distance_0(this$static, v2){ - var dx, dy; - dx = this$static.x_0 - v2.x_0; - dy = this$static.y_0 - v2.y_0; - return $wnd.Math.sqrt(dx * dx + dy * dy); -} - -function $equals_9(this$static, obj){ - var other; - if (instanceOf(obj, 8)) { - other = castTo(obj, 8); - return this$static.x_0 == other.x_0 && this$static.y_0 == other.y_0; - } - else { - return false; - } -} - -function $length(this$static){ - return $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); -} - -function $negate(this$static){ - this$static.x_0 = -this$static.x_0; - this$static.y_0 = -this$static.y_0; - return this$static; -} - -function $normalize_0(this$static){ - var length_0; - length_0 = $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); - if (length_0 > 0) { - this$static.x_0 /= length_0; - this$static.y_0 /= length_0; - } - return this$static; -} - -function $reset_5(this$static){ - this$static.x_0 = 0; - this$static.y_0 = 0; - return this$static; -} - -function $scale(this$static, scale){ - this$static.x_0 *= scale; - this$static.y_0 *= scale; - return this$static; -} - -function $scale_0(this$static, scalex, scaley){ - this$static.x_0 *= scalex; - this$static.y_0 *= scaley; - return this$static; -} - -function $scaleToLength(this$static, length_0){ - $normalize_0(this$static); - this$static.x_0 *= length_0; - this$static.y_0 *= length_0; - return this$static; -} - -function $set_8(this$static, newX, newY){ - this$static.x_0 = newX; - this$static.y_0 = newY; - return this$static; -} - -function $set_9(this$static, other){ - this$static.x_0 = other.x_0; - this$static.y_0 = other.y_0; - return this$static; -} - -function $sub(this$static, dx, dy){ - this$static.x_0 -= dx; - this$static.y_0 -= dy; - return this$static; -} - -function $sub_0(this$static, v){ - this$static.x_0 -= v.x_0; - this$static.y_0 -= v.y_0; - return this$static; -} - -function KVector(){ - this.x_0 = 0; - this.y_0 = 0; -} - -function KVector_0(angle){ - this.x_0 = $wnd.Math.cos(angle); - this.y_0 = $wnd.Math.sin(angle); -} - -function KVector_1(thex, they){ - this.x_0 = thex; - this.y_0 = they; -} - -function KVector_2(v){ - this.x_0 = v.x_0; - this.y_0 = v.y_0; -} - -function isdelim_0(c, delims){ - var i; - for (i = 0; i < delims.length; i++) { - if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { - return true; - } - } - return false; -} - -function sum_0(vs){ - var sum, v, v$array, v$index, v$max; - sum = new KVector; - for (v$array = vs , v$index = 0 , v$max = v$array.length; v$index < v$max; ++v$index) { - v = v$array[v$index]; - sum.x_0 += v.x_0; - sum.y_0 += v.y_0; - } - return sum; -} - -defineClass(8, 1, {3:1, 4:1, 8:1, 414:1}, KVector, KVector_0, KVector_1, KVector_2); -_.equals_0 = function equals_173(obj){ - return $equals_9(this, obj); -} -; -_.hashCode_1 = function hashCode_68(){ - return $hashCode_0(this.x_0) + reverse_1($hashCode_0(this.y_0)); -} -; -_.parse_0 = function parse_1(string){ - var end, exception, start_0, tokens; - start_0 = 0; - while (start_0 < string.length && isdelim_0((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { - ++start_0; - } - end = string.length; - while (end > 0 && isdelim_0((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { - --end; - } - if (start_0 >= end) { - throw toJs(new IllegalArgumentException_0('The given string does not contain any numbers.')); - } - tokens = $split_0(string.substr(start_0, end - start_0), ',|;|\r|\n'); - if (tokens.length != 2) { - throw toJs(new IllegalArgumentException_0('Exactly two numbers are expected, ' + tokens.length + ' were found.')); - } - try { - this.x_0 = __parseAndValidateDouble($trim(tokens[0])); - this.y_0 = __parseAndValidateDouble($trim(tokens[1])); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); - } - else - throw toJs($e0); - } -} -; -_.toString_0 = function toString_115(){ - return '(' + this.x_0 + ',' + this.y_0 + ')'; -} -; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_core_math_KVector_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVector', 8); -function $addAll_7(this$static, vectors){ - var vector, vector$array, vector$index, vector$max; - for (vector$array = vectors , vector$index = 0 , vector$max = vector$array.length; vector$index < vector$max; ++vector$index) { - vector = vector$array[vector$index]; - $addNode_0(this$static, vector, this$static.tail.prev, this$static.tail); - } -} - -function $addAllAsCopies(this$static, index_0, chain){ - var copies, v, v$iterator; - copies = new LinkedList; - for (v$iterator = $listIterator_2(chain, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { - v = castTo($next_10(v$iterator), 8); - $add_7(copies, new KVector_2(v)); - } - $addAll_0(this$static, index_0, copies); -} - -function $offset_1(this$static, dx, dy){ - var vector, vector$iterator; - for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { - vector = castTo($next_10(vector$iterator), 8); - vector.x_0 += dx; - vector.y_0 += dy; - } - return this$static; -} - -function $offset_2(this$static, offset){ - var vector, vector$iterator; - for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { - vector = castTo($next_10(vector$iterator), 8); - $add_19(vector, offset); - } - return this$static; -} - -function $toArray_8(this$static){ - var i, iter, result; - i = 0; - result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, this$static.size_0, 0, 1); - iter = $listIterator_2(this$static, 0); - while (iter.currentNode != iter.this$01.tail) { - result[i++] = castTo($next_10(iter), 8); - } - return result; -} - -function KVectorChain(){ - LinkedList.call(this); -} - -function KVectorChain_0(collection){ - LinkedList_0.call(this, collection); -} - -function KVectorChain_1(vectors){ - LinkedList.call(this); - $addAll_7(this, vectors); -} - -function reverse_3(chain){ - var result, vector, vector$iterator; - result = new KVectorChain; - for (vector$iterator = $listIterator_2(chain, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { - vector = castTo($next_10(vector$iterator), 8); - $add_0(result, 0, new KVector_2(vector)); - } - return result; -} - -defineClass(74, 68, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1, 74:1, 414:1}, KVectorChain, KVectorChain_0, KVectorChain_1); -_.toArray = function toArray_25(){ - return $toArray_8(this); -} -; -_.parse_0 = function parse_2(string){ - var exception, i, tokens, x_0, xy, y_0; - tokens = $split_0(string, ',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n'); - $reset_0(this); - try { - i = 0; - xy = 0; - x_0 = 0; - y_0 = 0; - while (i < tokens.length) { - if (tokens[i] != null && $trim(tokens[i]).length > 0) { - xy % 2 == 0?(x_0 = __parseAndValidateDouble(tokens[i])):(y_0 = __parseAndValidateDouble(tokens[i])); - xy > 0 && xy % 2 != 0 && $add_7(this, new KVector_1(x_0, y_0)); - ++xy; - } - ++i; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new IllegalArgumentException_0('The given string does not match the expected format for vectors.' + exception)); - } - else - throw toJs($e0); - } -} -; -_.toString_0 = function toString_116(){ - var builder, iter, vector; - builder = new StringBuilder_1('('); - iter = $listIterator_2(this, 0); - while (iter.currentNode != iter.this$01.tail) { - vector = castTo($next_10(iter), 8); - $append_11(builder, vector.x_0 + ',' + vector.y_0); - iter.currentNode != iter.this$01.tail && (builder.string += '; ' , builder); - } - return (builder.string += ')' , builder).string; -} -; -var Lorg_eclipse_elk_core_math_KVectorChain_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVectorChain', 74); -function $clinit_Alignment(){ - $clinit_Alignment = emptyMethod; - AUTOMATIC = new Alignment('AUTOMATIC', 0); - LEFT_5 = new Alignment('LEFT', 1); - RIGHT_5 = new Alignment('RIGHT', 2); - TOP_2 = new Alignment('TOP', 3); - BOTTOM_1 = new Alignment('BOTTOM', 4); - CENTER_4 = new Alignment('CENTER', 5); -} - -function Alignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_94(name_0){ - $clinit_Alignment(); - return valueOf(($clinit_Alignment$Map() , $MAP_82), name_0); -} - -function values_100(){ - $clinit_Alignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]); -} - -defineClass(248, 22, {3:1, 35:1, 22:1, 248:1}, Alignment); -var AUTOMATIC, BOTTOM_1, CENTER_4, LEFT_5, RIGHT_5, TOP_2; -var Lorg_eclipse_elk_core_options_Alignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Alignment', 248, Ljava_lang_Enum_2_classLit, values_100, valueOf_94); -function $clinit_Alignment$Map(){ - $clinit_Alignment$Map = emptyMethod; - $MAP_82 = createValueOfMap(($clinit_Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]))); -} - -var $MAP_82; -function $clinit_BoxLayouterOptions(){ - $clinit_BoxLayouterOptions = emptyMethod; - PADDING_DEFAULT_5 = new ElkPadding_0(15); - PADDING_5 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_5); - SPACING_NODE_NODE_5 = new Property_2(SPACING_NODE_NODE_6, 15); - PRIORITY_2 = new Property_2(PRIORITY_3, valueOf_4(0)); - EXPAND_NODES_0 = EXPAND_NODES_1; - NODE_SIZE_CONSTRAINTS_5 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_OPTIONS_5 = NODE_SIZE_OPTIONS_6; - ASPECT_RATIO_4 = new Property_2(ASPECT_RATIO_5, $intern_132); - INTERACTIVE_6 = INTERACTIVE_7; - NODE_SIZE_MINIMUM_4 = NODE_SIZE_MINIMUM_5; - BOX_PACKING_MODE = BOX_PACKING_MODE_0; - CONTENT_ALIGNMENT_1 = CONTENT_ALIGNMENT_2; -} - -function $apply_24(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.box'), 'ELK Box'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'), new BoxLayouterOptions$BoxFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.padding', PADDING_DEFAULT_5); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.spacing.nodeNode', 15); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.priority', valueOf_4(0)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_5)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_5)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.aspectRatio', $intern_132); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_6)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_4)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.box.packingMode', $getDefault(BOX_PACKING_MODE)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_1)); -} - -function BoxLayouterOptions(){ - $clinit_BoxLayouterOptions(); -} - -defineClass(979, 1, $intern_90, BoxLayouterOptions); -_.apply_4 = function apply_167(registry){ - $apply_24(registry); -} -; -var ASPECT_RATIO_4, BOX_PACKING_MODE, CONTENT_ALIGNMENT_1, EXPAND_NODES_0, INTERACTIVE_6, NODE_SIZE_CONSTRAINTS_5, NODE_SIZE_MINIMUM_4, NODE_SIZE_OPTIONS_5, PADDING_5, PADDING_DEFAULT_5, PRIORITY_2, SPACING_NODE_NODE_5; -var Lorg_eclipse_elk_core_options_BoxLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions', 979); -function BoxLayouterOptions$BoxFactory(){ -} - -defineClass(980, 1, {}, BoxLayouterOptions$BoxFactory); -_.create_0 = function create_37(){ - var provider; - return provider = new BoxLayoutProvider , provider; -} -; -_.destroy = function destroy_8(obj){ -} -; -var Lorg_eclipse_elk_core_options_BoxLayouterOptions$BoxFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions/BoxFactory', 980); -function $clinit_ContentAlignment(){ - $clinit_ContentAlignment = emptyMethod; - V_TOP = new ContentAlignment('V_TOP', 0); - V_CENTER = new ContentAlignment('V_CENTER', 1); - V_BOTTOM = new ContentAlignment('V_BOTTOM', 2); - H_LEFT = new ContentAlignment('H_LEFT', 3); - H_CENTER = new ContentAlignment('H_CENTER', 4); - H_RIGHT = new ContentAlignment('H_RIGHT', 5); -} - -function ContentAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_95(name_0){ - $clinit_ContentAlignment(); - return valueOf(($clinit_ContentAlignment$Map() , $MAP_83), name_0); -} - -function values_101(){ - $clinit_ContentAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]); -} - -defineClass(291, 22, {3:1, 35:1, 22:1, 291:1}, ContentAlignment); -var H_CENTER, H_LEFT, H_RIGHT, V_BOTTOM, V_CENTER, V_TOP; -var Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'ContentAlignment', 291, Ljava_lang_Enum_2_classLit, values_101, valueOf_95); -function $clinit_ContentAlignment$Map(){ - $clinit_ContentAlignment$Map = emptyMethod; - $MAP_83 = createValueOfMap(($clinit_ContentAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]))); -} - -var $MAP_83; -function $clinit_CoreOptions(){ - $clinit_CoreOptions = emptyMethod; - var all, all0; - ALGORITHM = new Property('org.eclipse.elk.algorithm'); - RESOLVED_ALGORITHM = new Property('org.eclipse.elk.resolvedAlgorithm'); - ALIGNMENT_DEFAULT = ($clinit_Alignment() , AUTOMATIC); - ALIGNMENT_0 = new Property_1('org.eclipse.elk.alignment', ALIGNMENT_DEFAULT); - new ExclusiveBounds$ExclusiveLowerBound; - ASPECT_RATIO_5 = new Property_1('org.eclipse.elk.aspectRatio', null); - BEND_POINTS = new Property('org.eclipse.elk.bendPoints'); - CONTENT_ALIGNMENT_DEFAULT = ($clinit_ContentAlignment() , of_2(V_TOP, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [H_LEFT]))); - CONTENT_ALIGNMENT_2 = new Property_1('org.eclipse.elk.contentAlignment', CONTENT_ALIGNMENT_DEFAULT); - DEBUG_MODE_3 = new Property_1('org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); - DIRECTION_DEFAULT_0 = ($clinit_Direction_0() , UNDEFINED_2); - DIRECTION_0 = new Property_1('org.eclipse.elk.direction', DIRECTION_DEFAULT_0); - EDGE_ROUTING_DEFAULT_0 = ($clinit_EdgeRouting() , UNDEFINED_3); - EDGE_ROUTING_0 = new Property_1('org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT_0); - EXPAND_NODES_1 = new Property_1('org.eclipse.elk.expandNodes', false); - HIERARCHY_HANDLING_DEFAULT = ($clinit_HierarchyHandling() , INHERIT); - HIERARCHY_HANDLING_0 = new Property_1('org.eclipse.elk.hierarchyHandling', HIERARCHY_HANDLING_DEFAULT); - PADDING_DEFAULT_6 = new ElkPadding_0(12); - PADDING_6 = new Property_1('org.eclipse.elk.padding', PADDING_DEFAULT_6); - INTERACTIVE_7 = new Property_1('org.eclipse.elk.interactive', false); - INTERACTIVE_LAYOUT_1 = new Property_1('org.eclipse.elk.interactiveLayout', false); - OMIT_NODE_MICRO_LAYOUT_4 = new Property_1('org.eclipse.elk.omitNodeMicroLayout', false); - PORT_CONSTRAINTS_DEFAULT = ($clinit_PortConstraints() , UNDEFINED_4); - PORT_CONSTRAINTS_1 = new Property_1('org.eclipse.elk.portConstraints', PORT_CONSTRAINTS_DEFAULT); - POSITION_2 = new Property('org.eclipse.elk.position'); - PRIORITY_3 = new Property('org.eclipse.elk.priority'); - RANDOM_SEED_1 = new Property('org.eclipse.elk.randomSeed'); - SEPARATE_CONNECTED_COMPONENTS_2 = new Property('org.eclipse.elk.separateConnectedComponents'); - JUNCTION_POINTS_DEFAULT = new KVectorChain; - JUNCTION_POINTS_0 = new Property_1('org.eclipse.elk.junctionPoints', JUNCTION_POINTS_DEFAULT); - COMMENT_BOX_0 = new Property_1('org.eclipse.elk.commentBox', false); - HYPERNODE_0 = new Property_1('org.eclipse.elk.hypernode', false); - new Property('org.eclipse.elk.labelManager'); - MARGINS_DEFAULT = new ElkMargin; - MARGINS_0 = new Property_1('org.eclipse.elk.margins', MARGINS_DEFAULT); - NO_LAYOUT_0 = new Property_1('org.eclipse.elk.noLayout', false); - new ExclusiveBounds$ExclusiveLowerBound; - SCALE_FACTOR = new Property_1('org.eclipse.elk.scaleFactor', 1); - new Property_1('org.eclipse.elk.animate', true); - valueOf_4(0); - new Property_1('org.eclipse.elk.animTimeFactor', valueOf_4(100)); - new Property_1('org.eclipse.elk.layoutAncestors', false); - valueOf_4(0); - new Property_1('org.eclipse.elk.maxAnimTime', valueOf_4(4000)); - valueOf_4(0); - new Property_1('org.eclipse.elk.minAnimTime', valueOf_4(400)); - new Property_1('org.eclipse.elk.progressBar', false); - new Property_1('org.eclipse.elk.validateGraph', false); - new Property_1('org.eclipse.elk.validateOptions', true); - new Property_1('org.eclipse.elk.zoomToFit', false); - BOX_PACKING_MODE_DEFAULT = ($clinit_BoxLayoutProvider$PackingMode() , SIMPLE_0); - BOX_PACKING_MODE_0 = new Property_1('org.eclipse.elk.box.packingMode', BOX_PACKING_MODE_DEFAULT); - SPACING_COMMENT_COMMENT_0 = new Property_1('org.eclipse.elk.spacing.commentComment', 10); - SPACING_COMMENT_NODE_0 = new Property_1('org.eclipse.elk.spacing.commentNode', 10); - SPACING_COMPONENT_COMPONENT_1 = new Property_1('org.eclipse.elk.spacing.componentComponent', 20); - SPACING_EDGE_EDGE_0 = new Property_1('org.eclipse.elk.spacing.edgeEdge', 10); - SPACING_EDGE_LABEL_1 = new Property_1('org.eclipse.elk.spacing.edgeLabel', 2); - SPACING_EDGE_NODE_0 = new Property_1('org.eclipse.elk.spacing.edgeNode', 10); - SPACING_LABEL_LABEL_0 = new Property_1('org.eclipse.elk.spacing.labelLabel', 0); - SPACING_LABEL_NODE_0 = new Property_1('org.eclipse.elk.spacing.labelNode', 5); - SPACING_LABEL_PORT_HORIZONTAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortHorizontal', 1); - SPACING_LABEL_PORT_VERTICAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortVertical', 1); - SPACING_NODE_NODE_6 = new Property_1('org.eclipse.elk.spacing.nodeNode', 20); - SPACING_NODE_SELF_LOOP_0 = new Property_1('org.eclipse.elk.spacing.nodeSelfLoop', 10); - SPACING_PORT_PORT_0 = new Property_1('org.eclipse.elk.spacing.portPort', 10); - SPACING_INDIVIDUAL_0 = new Property('org.eclipse.elk.spacing.individual'); - SPACING_PORTS_SURROUNDING_DEFAULT = new ElkMargin_0; - SPACING_PORTS_SURROUNDING_0 = new Property_1('org.eclipse.elk.spacing.portsSurrounding', SPACING_PORTS_SURROUNDING_DEFAULT); - PARTITIONING_PARTITION_0 = new Property('org.eclipse.elk.partitioning.partition'); - PARTITIONING_ACTIVATE_DEFAULT = false; - PARTITIONING_ACTIVATE_0 = new Property_1('org.eclipse.elk.partitioning.activate', PARTITIONING_ACTIVATE_DEFAULT); - NODE_LABELS_PADDING_DEFAULT = new ElkPadding_0(5); - NODE_LABELS_PADDING_0 = new Property_1('org.eclipse.elk.nodeLabels.padding', NODE_LABELS_PADDING_DEFAULT); - NODE_LABELS_PLACEMENT_DEFAULT = ($clinit_NodeLabelPlacement() , all0 = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0)); - NODE_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.nodeLabels.placement', NODE_LABELS_PLACEMENT_DEFAULT); - PORT_ALIGNMENT_DEFAULT_DEFAULT_0 = ($clinit_PortAlignment() , DISTRIBUTED); - PORT_ALIGNMENT_DEFAULT = new Property_1('org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT_0); - PORT_ALIGNMENT_NORTH_0 = new Property('org.eclipse.elk.portAlignment.north'); - PORT_ALIGNMENT_SOUTH_0 = new Property('org.eclipse.elk.portAlignment.south'); - PORT_ALIGNMENT_WEST_0 = new Property('org.eclipse.elk.portAlignment.west'); - PORT_ALIGNMENT_EAST_0 = new Property('org.eclipse.elk.portAlignment.east'); - NODE_SIZE_CONSTRAINTS_DEFAULT = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - NODE_SIZE_CONSTRAINTS_6 = new Property_1('org.eclipse.elk.nodeSize.constraints', NODE_SIZE_CONSTRAINTS_DEFAULT); - NODE_SIZE_OPTIONS_DEFAULT = of_1(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE)); - NODE_SIZE_OPTIONS_6 = new Property_1('org.eclipse.elk.nodeSize.options', NODE_SIZE_OPTIONS_DEFAULT); - NODE_SIZE_MINIMUM_DEFAULT = new KVector_1(0, 0); - NODE_SIZE_MINIMUM_5 = new Property_1('org.eclipse.elk.nodeSize.minimum', NODE_SIZE_MINIMUM_DEFAULT); - NODE_SIZE_FIXED_GRAPH_SIZE_0 = new Property_1('org.eclipse.elk.nodeSize.fixedGraphSize', false); - EDGE_LABELS_PLACEMENT_DEFAULT = ($clinit_EdgeLabelPlacement() , CENTER_5); - EDGE_LABELS_PLACEMENT_0 = new Property_1('org.eclipse.elk.edgeLabels.placement', EDGE_LABELS_PLACEMENT_DEFAULT); - EDGE_LABELS_INLINE_1 = new Property_1('org.eclipse.elk.edgeLabels.inline', false); - new Property('org.eclipse.elk.font.name'); - valueOf_4(1); - new Property_1('org.eclipse.elk.font.size', null); - PORT_ANCHOR_0 = new Property('org.eclipse.elk.port.anchor'); - PORT_INDEX_0 = new Property('org.eclipse.elk.port.index'); - PORT_SIDE_DEFAULT = ($clinit_PortSide() , UNDEFINED_5); - PORT_SIDE_0 = new Property_1('org.eclipse.elk.port.side', PORT_SIDE_DEFAULT); - PORT_BORDER_OFFSET_0 = new Property('org.eclipse.elk.port.borderOffset'); - PORT_LABELS_PLACEMENT_DEFAULT = ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0)); - PORT_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.portLabels.placement', PORT_LABELS_PLACEMENT_DEFAULT); - PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0 = new Property_1('org.eclipse.elk.portLabels.nextToPortIfPossible', false); - PORT_LABELS_TREAT_AS_GROUP_0 = new Property_1('org.eclipse.elk.portLabels.treatAsGroup', true); - INSIDE_SELF_LOOPS_ACTIVATE_0 = new Property_1('org.eclipse.elk.insideSelfLoops.activate', false); - INSIDE_SELF_LOOPS_YO_0 = new Property_1('org.eclipse.elk.insideSelfLoops.yo', false); - EDGE_THICKNESS_1 = new Property_1('org.eclipse.elk.edge.thickness', 1); - EDGE_TYPE_DEFAULT = ($clinit_EdgeType() , NONE_14); - new Property_1('org.eclipse.elk.edge.type', EDGE_TYPE_DEFAULT); - PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0 = true; -} - -function CoreOptions(){ - $clinit_CoreOptions(); -} - -defineClass(684, 1, $intern_90, CoreOptions); -_.apply_4 = function apply_168(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.algorithm'), ''), 'Layout Algorithm'), 'Select a specific layout algorithm.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.resolvedAlgorithm'), ''), 'Resolved Layout Algorithm'), 'Meta data associated with the selected algorithm.'), OBJECT), Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.alignment'), ''), 'Alignment'), 'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'), ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_Alignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.aspectRatio'), ''), 'Aspect Ratio'), 'The desired aspect ratio of the drawing, that is the quotient of width by height.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.bendPoints'), ''), 'Bend Points'), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.contentAlignment'), ''), 'Content Alignment'), 'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'), CONTENT_ALIGNMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.debugMode'), ''), 'Debug Mode'), 'Whether additional debug information shall be generated.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.direction'), ''), 'Direction'), 'Overall direction of edges: horizontal (right / left) or vertical (down / up).'), DIRECTION_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_Direction_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeRouting'), ''), 'Edge Routing'), 'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'), EDGE_ROUTING_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.expandNodes'), ''), 'Expand Nodes'), 'If active, nodes are expanded to fill the area of their parent.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hierarchyHandling'), ''), 'Hierarchy Handling'), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), HIERARCHY_HANDLING_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.padding'), ''), 'Padding'), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), PADDING_DEFAULT_6), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactive'), ''), 'Interactive'), 'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactiveLayout'), ''), 'interactive Layout'), 'Whether the graph should be changeable interactively and by setting constraints'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.omitNodeMicroLayout'), ''), 'Omit Node Micro Layout'), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portConstraints'), ''), 'Port Constraints'), 'Defines constraints of the position of the ports of a node.'), PORT_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortConstraints_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.position'), ''), 'Position'), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PORTS, LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.priority'), ''), 'Priority'), 'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'), INT), Ljava_lang_Integer_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.randomSeed'), ''), 'Randomization Seed'), 'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.separateConnectedComponents'), ''), 'Separate Connected Components'), 'Whether each connected component should be processed separately.'), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.junctionPoints'), ''), 'Junction Points'), 'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'), JUNCTION_POINTS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.commentBox'), ''), 'Comment Box'), 'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hypernode'), ''), 'Hypernode'), 'Whether the node should be handled as a hypernode.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.labelManager'), ''), 'Label Manager'), "Label managers can shorten labels upon a layout algorithm's request."), OBJECT), Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.margins'), ''), 'Margins'), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), MARGINS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.noLayout'), ''), 'No Layout'), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.scaleFactor'), ''), 'Scale Factor'), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animate'), ''), 'Animate'), 'Whether the shift from the old layout to the new computed layout shall be animated.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animTimeFactor'), ''), 'Animation Time Factor'), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), valueOf_4(100)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layoutAncestors'), ''), 'Layout Ancestors'), 'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.maxAnimTime'), ''), 'Maximal Animation Time'), 'The maximal time for animations, in milliseconds.'), valueOf_4(4000)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.minAnimTime'), ''), 'Minimal Animation Time'), 'The minimal time for animations, in milliseconds.'), valueOf_4(400)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.progressBar'), ''), 'Progress Bar'), 'Whether a progress bar shall be displayed during layout computations.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateGraph'), ''), 'Validate Graph'), 'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateOptions'), ''), 'Validate Options'), 'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.zoomToFit'), ''), 'Zoom to Fit'), 'Whether the zoom level shall be set to view the whole diagram after layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.box.packingMode'), 'box'), 'Box Layout Mode'), 'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'), BOX_PACKING_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentComment'), 'spacing'), 'Comment Comment Spacing'), 'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentNode'), 'spacing'), 'Comment Node Spacing'), 'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.componentComponent'), 'spacing'), 'Components Spacing'), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeEdge'), 'spacing'), 'Edge Spacing'), 'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeLabel'), 'spacing'), 'Edge Label Spacing'), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeNode'), 'spacing'), 'Edge Node Spacing'), 'Spacing to be preserved between nodes and edges.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelLabel'), 'spacing'), 'Label Spacing'), 'Determines the amount of space to be left between two labels of the same graph element.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelNode'), 'spacing'), 'Label Node Spacing'), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortHorizontal'), 'spacing'), 'Horizontal spacing between Label and Port'), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortVertical'), 'spacing'), 'Vertical spacing between Label and Port'), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeNode'), 'spacing'), 'Node Spacing'), 'The minimal distance to be preserved between each two nodes.'), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeSelfLoop'), 'spacing'), 'Node Self Loop Spacing'), 'Spacing to be preserved between a node and its self loops.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portPort'), 'spacing'), 'Port Spacing'), 'Spacing between pairs of ports of the same node.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.individual'), 'spacing'), 'Individual Spacing'), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), OBJECT), Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portsSurrounding'), 'spacing'), 'Additional Port Space'), 'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'), SPACING_PORTS_SURROUNDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.partition'), 'partitioning'), 'Layout Partition'), 'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'), INT), Ljava_lang_Integer_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $addDependency(registry, 'org.eclipse.elk.partitioning.partition', 'org.eclipse.elk.partitioning.activate', PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.activate'), 'partitioning'), 'Layout Partitioning'), 'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'), PARTITIONING_ACTIVATE_DEFAULT), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.padding'), 'nodeLabels'), 'Node Label Padding'), 'Define padding for node labels that are placed inside of a node.'), NODE_LABELS_PADDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.placement'), 'nodeLabels'), 'Node Label Placement'), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), NODE_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.default'), 'portAlignment'), 'Port Alignment'), 'Defines the default port distribution for a node. May be overridden for each side individually.'), PORT_ALIGNMENT_DEFAULT_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.north'), 'portAlignment'), 'Port Alignment (North)'), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.south'), 'portAlignment'), 'Port Alignment (South)'), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.west'), 'portAlignment'), 'Port Alignment (West)'), "Defines how ports on the western side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.east'), 'portAlignment'), 'Port Alignment (East)'), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.constraints'), 'nodeSize'), 'Node Size Constraints'), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), NODE_SIZE_CONSTRAINTS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.options'), 'nodeSize'), 'Node Size Options'), 'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'), NODE_SIZE_OPTIONS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeOptions_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.minimum'), 'nodeSize'), 'Node Size Minimum'), 'The minimal size to which a node can be reduced.'), NODE_SIZE_MINIMUM_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.fixedGraphSize'), 'nodeSize'), 'Fixed Graph Size'), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.placement'), 'edgeLabels'), 'Edge Label Placement'), 'Gives a hint on where to put edge labels.'), EDGE_LABELS_PLACEMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.inline'), 'edgeLabels'), 'Inline Edge Labels'), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.name'), 'font'), 'Font Name'), 'Font name used for a label.'), STRING), Ljava_lang_String_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.size'), 'font'), 'Font Size'), 'Font size used for a label.'), INT), Ljava_lang_Integer_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.anchor'), 'port'), 'Port Anchor Offset'), 'The offset to the port position where connections shall be attached.'), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.index'), 'port'), 'Port Index'), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), INT), Ljava_lang_Integer_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.side'), 'port'), 'Port Side'), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), PORT_SIDE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortSide_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.borderOffset'), 'port'), 'Port Border Offset'), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.placement'), 'portLabels'), 'Port Label Placement'), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), PORT_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.nextToPortIfPossible'), 'portLabels'), 'Port Labels Next to Port'), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.treatAsGroup'), 'portLabels'), 'Treat Port Labels as Group'), 'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.activate'), 'insideSelfLoops'), 'Activate Inside Self Loops'), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.yo'), 'insideSelfLoops'), 'Inside Self Loop'), 'Whether a self loop should be routed inside a node instead of around that node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.thickness'), 'edge'), 'Edge Thickness'), 'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.type'), 'edge'), 'Edge Type'), 'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'), EDGE_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeType_2_classLit), of_1(EDGES)))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.layered'), 'Layered'), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.orthogonal'), 'Orthogonal'), 'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.force'), 'Force'), 'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.circle'), 'Circle'), 'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.tree'), 'Tree'), 'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.planar'), 'Planar'), 'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.radial'), 'Radial'), 'Radial layout algorithms usually position the nodes of the graph on concentric circles.'))); - $apply_25((new FixedLayouterOptions , registry)); - $apply_24((new BoxLayouterOptions , registry)); - $apply_26((new RandomLayouterOptions , registry)); -} -; -var ALGORITHM, ALIGNMENT_0, ALIGNMENT_DEFAULT, ASPECT_RATIO_5, BEND_POINTS, BOX_PACKING_MODE_0, BOX_PACKING_MODE_DEFAULT, COMMENT_BOX_0, CONTENT_ALIGNMENT_2, CONTENT_ALIGNMENT_DEFAULT, DEBUG_MODE_3, DIRECTION_0, DIRECTION_DEFAULT_0, EDGE_LABELS_INLINE_1, EDGE_LABELS_PLACEMENT_0, EDGE_LABELS_PLACEMENT_DEFAULT, EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT_0, EDGE_THICKNESS_1, EDGE_TYPE_DEFAULT, EXPAND_NODES_1, HIERARCHY_HANDLING_0, HIERARCHY_HANDLING_DEFAULT, HYPERNODE_0, INSIDE_SELF_LOOPS_ACTIVATE_0, INSIDE_SELF_LOOPS_YO_0, INTERACTIVE_7, INTERACTIVE_LAYOUT_1, JUNCTION_POINTS_0, JUNCTION_POINTS_DEFAULT, MARGINS_0, MARGINS_DEFAULT, NODE_LABELS_PADDING_0, NODE_LABELS_PADDING_DEFAULT, NODE_LABELS_PLACEMENT_5, NODE_LABELS_PLACEMENT_DEFAULT, NODE_SIZE_CONSTRAINTS_6, NODE_SIZE_CONSTRAINTS_DEFAULT, NODE_SIZE_FIXED_GRAPH_SIZE_0, NODE_SIZE_MINIMUM_5, NODE_SIZE_MINIMUM_DEFAULT, NODE_SIZE_OPTIONS_6, NODE_SIZE_OPTIONS_DEFAULT, NO_LAYOUT_0, OMIT_NODE_MICRO_LAYOUT_4, PADDING_6, PADDING_DEFAULT_6, PARTITIONING_ACTIVATE_0, PARTITIONING_ACTIVATE_DEFAULT, PARTITIONING_PARTITION_0, PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0, PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT_0, PORT_ALIGNMENT_EAST_0, PORT_ALIGNMENT_NORTH_0, PORT_ALIGNMENT_SOUTH_0, PORT_ALIGNMENT_WEST_0, PORT_ANCHOR_0, PORT_BORDER_OFFSET_0, PORT_CONSTRAINTS_1, PORT_CONSTRAINTS_DEFAULT, PORT_INDEX_0, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, PORT_LABELS_PLACEMENT_5, PORT_LABELS_PLACEMENT_DEFAULT, PORT_LABELS_TREAT_AS_GROUP_0, PORT_SIDE_0, PORT_SIDE_DEFAULT, POSITION_2, PRIORITY_3, RANDOM_SEED_1, RESOLVED_ALGORITHM, SCALE_FACTOR, SEPARATE_CONNECTED_COMPONENTS_2, SPACING_COMMENT_COMMENT_0, SPACING_COMMENT_NODE_0, SPACING_COMPONENT_COMPONENT_1, SPACING_EDGE_EDGE_0, SPACING_EDGE_LABEL_1, SPACING_EDGE_NODE_0, SPACING_INDIVIDUAL_0, SPACING_LABEL_LABEL_0, SPACING_LABEL_NODE_0, SPACING_LABEL_PORT_HORIZONTAL_0, SPACING_LABEL_PORT_VERTICAL_0, SPACING_NODE_NODE_6, SPACING_NODE_SELF_LOOP_0, SPACING_PORTS_SURROUNDING_0, SPACING_PORTS_SURROUNDING_DEFAULT, SPACING_PORT_PORT_0; -var Lorg_eclipse_elk_core_options_CoreOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'CoreOptions', 684); -function $clinit_Direction_0(){ - $clinit_Direction_0 = emptyMethod; - UNDEFINED_2 = new Direction_0('UNDEFINED', 0); - RIGHT_6 = new Direction_0('RIGHT', 1); - LEFT_6 = new Direction_0('LEFT', 2); - DOWN_1 = new Direction_0('DOWN', 3); - UP_1 = new Direction_0('UP', 4); -} - -function $isHorizontal(this$static){ - return this$static == LEFT_6 || this$static == RIGHT_6; -} - -function $isVertical(this$static){ - return this$static == UP_1 || this$static == DOWN_1; -} - -function $opposite(this$static){ - switch (this$static.ordinal) { - case 2: - return RIGHT_6; - case 1: - return LEFT_6; - case 4: - return DOWN_1; - case 3: - return UP_1; - default:return UNDEFINED_2; - } -} - -function Direction_0(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_96(name_0){ - $clinit_Direction_0(); - return valueOf(($clinit_Direction$Map_0() , $MAP_84), name_0); -} - -function values_102(){ - $clinit_Direction_0(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]); -} - -defineClass(103, 22, {3:1, 35:1, 22:1, 103:1}, Direction_0); -var DOWN_1, LEFT_6, RIGHT_6, UNDEFINED_2, UP_1; -var Lorg_eclipse_elk_core_options_Direction_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Direction', 103, Ljava_lang_Enum_2_classLit, values_102, valueOf_96); -function $clinit_Direction$Map_0(){ - $clinit_Direction$Map_0 = emptyMethod; - $MAP_84 = createValueOfMap(($clinit_Direction_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]))); -} - -var $MAP_84; -function $clinit_EdgeLabelPlacement(){ - $clinit_EdgeLabelPlacement = emptyMethod; - CENTER_5 = new EdgeLabelPlacement('CENTER', 0); - HEAD = new EdgeLabelPlacement('HEAD', 1); - TAIL = new EdgeLabelPlacement('TAIL', 2); -} - -function EdgeLabelPlacement(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_97(name_0){ - $clinit_EdgeLabelPlacement(); - return valueOf(($clinit_EdgeLabelPlacement$Map() , $MAP_85), name_0); -} - -function values_103(){ - $clinit_EdgeLabelPlacement(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]); -} - -defineClass(272, 22, {3:1, 35:1, 22:1, 272:1}, EdgeLabelPlacement); -var CENTER_5, HEAD, TAIL; -var Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeLabelPlacement', 272, Ljava_lang_Enum_2_classLit, values_103, valueOf_97); -function $clinit_EdgeLabelPlacement$Map(){ - $clinit_EdgeLabelPlacement$Map = emptyMethod; - $MAP_85 = createValueOfMap(($clinit_EdgeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]))); -} - -var $MAP_85; -function $clinit_EdgeRouting(){ - $clinit_EdgeRouting = emptyMethod; - UNDEFINED_3 = new EdgeRouting('UNDEFINED', 0); - POLYLINE = new EdgeRouting('POLYLINE', 1); - ORTHOGONAL = new EdgeRouting('ORTHOGONAL', 2); - SPLINES = new EdgeRouting('SPLINES', 3); -} - -function EdgeRouting(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_98(name_0){ - $clinit_EdgeRouting(); - return valueOf(($clinit_EdgeRouting$Map() , $MAP_86), name_0); -} - -function values_104(){ - $clinit_EdgeRouting(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]); -} - -defineClass(218, 22, {3:1, 35:1, 22:1, 218:1}, EdgeRouting); -var ORTHOGONAL, POLYLINE, SPLINES, UNDEFINED_3; -var Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeRouting', 218, Ljava_lang_Enum_2_classLit, values_104, valueOf_98); -function $clinit_EdgeRouting$Map(){ - $clinit_EdgeRouting$Map = emptyMethod; - $MAP_86 = createValueOfMap(($clinit_EdgeRouting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]))); -} - -var $MAP_86; -function $clinit_EdgeType(){ - $clinit_EdgeType = emptyMethod; - NONE_14 = new EdgeType('NONE', 0); - DIRECTED = new EdgeType('DIRECTED', 1); - UNDIRECTED = new EdgeType('UNDIRECTED', 2); - ASSOCIATION = new EdgeType('ASSOCIATION', 3); - GENERALIZATION = new EdgeType('GENERALIZATION', 4); - DEPENDENCY = new EdgeType('DEPENDENCY', 5); -} - -function EdgeType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_99(name_0){ - $clinit_EdgeType(); - return valueOf(($clinit_EdgeType$Map() , $MAP_87), name_0); -} - -function values_105(){ - $clinit_EdgeType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]); -} - -defineClass(312, 22, {3:1, 35:1, 22:1, 312:1}, EdgeType); -var ASSOCIATION, DEPENDENCY, DIRECTED, GENERALIZATION, NONE_14, UNDIRECTED; -var Lorg_eclipse_elk_core_options_EdgeType_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeType', 312, Ljava_lang_Enum_2_classLit, values_105, valueOf_99); -function $clinit_EdgeType$Map(){ - $clinit_EdgeType$Map = emptyMethod; - $MAP_87 = createValueOfMap(($clinit_EdgeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]))); -} - -var $MAP_87; -function $clinit_FixedLayouterOptions(){ - $clinit_FixedLayouterOptions = emptyMethod; - PADDING_DEFAULT_7 = new ElkPadding_0(15); - PADDING_7 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_7); - POSITION_3 = POSITION_2; - BEND_POINTS_0 = BEND_POINTS; - NODE_SIZE_CONSTRAINTS_7 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_6 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_FIXED_GRAPH_SIZE_1 = NODE_SIZE_FIXED_GRAPH_SIZE_0; -} - -function $apply_25(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.fixed'), 'ELK Fixed'), 'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'), new FixedLayouterOptions$FixedFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.padding', PADDING_DEFAULT_7); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.position', $getDefault(POSITION_3)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.bendPoints', $getDefault(BEND_POINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_7)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_6)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_1)); -} - -function FixedLayouterOptions(){ - $clinit_FixedLayouterOptions(); -} - -defineClass(977, 1, $intern_90, FixedLayouterOptions); -_.apply_4 = function apply_169(registry){ - $apply_25(registry); -} -; -var BEND_POINTS_0, NODE_SIZE_CONSTRAINTS_7, NODE_SIZE_FIXED_GRAPH_SIZE_1, NODE_SIZE_MINIMUM_6, PADDING_7, PADDING_DEFAULT_7, POSITION_3; -var Lorg_eclipse_elk_core_options_FixedLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions', 977); -function FixedLayouterOptions$FixedFactory(){ -} - -defineClass(978, 1, {}, FixedLayouterOptions$FixedFactory); -_.create_0 = function create_38(){ - var provider; - return provider = new FixedLayoutProvider , provider; -} -; -_.destroy = function destroy_9(obj){ -} -; -var Lorg_eclipse_elk_core_options_FixedLayouterOptions$FixedFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions/FixedFactory', 978); -function $clinit_HierarchyHandling(){ - $clinit_HierarchyHandling = emptyMethod; - INHERIT = new HierarchyHandling('INHERIT', 0); - INCLUDE_CHILDREN = new HierarchyHandling('INCLUDE_CHILDREN', 1); - SEPARATE_CHILDREN = new HierarchyHandling('SEPARATE_CHILDREN', 2); -} - -function HierarchyHandling(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_100(name_0){ - $clinit_HierarchyHandling(); - return valueOf(($clinit_HierarchyHandling$Map() , $MAP_88), name_0); -} - -function values_106(){ - $clinit_HierarchyHandling(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]); -} - -defineClass(334, 22, {3:1, 35:1, 22:1, 334:1}, HierarchyHandling); -var INCLUDE_CHILDREN, INHERIT, SEPARATE_CHILDREN; -var Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit = createForEnum('org.eclipse.elk.core.options', 'HierarchyHandling', 334, Ljava_lang_Enum_2_classLit, values_106, valueOf_100); -function $clinit_HierarchyHandling$Map(){ - $clinit_HierarchyHandling$Map = emptyMethod; - $MAP_88 = createValueOfMap(($clinit_HierarchyHandling() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]))); -} - -var $MAP_88; -function $clinit_LabelSide(){ - $clinit_LabelSide = emptyMethod; - UNKNOWN = new LabelSide('UNKNOWN', 0); - ABOVE = new LabelSide('ABOVE', 1); - BELOW = new LabelSide('BELOW', 2); - INLINE = new LabelSide('INLINE', 3); - new Property_0('org.eclipse.elk.labelSide', UNKNOWN); -} - -function $opposite_0(this$static){ - switch (this$static.ordinal) { - case 1: - return BELOW; - case 2: - return ABOVE; - case 3: - return INLINE; - default:return UNKNOWN; - } -} - -function LabelSide(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_101(name_0){ - $clinit_LabelSide(); - return valueOf(($clinit_LabelSide$Map() , $MAP_89), name_0); -} - -function values_107(){ - $clinit_LabelSide(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]); -} - -defineClass(285, 22, {3:1, 35:1, 22:1, 285:1}, LabelSide); -var ABOVE, BELOW, INLINE, UNKNOWN; -var Lorg_eclipse_elk_core_options_LabelSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'LabelSide', 285, Ljava_lang_Enum_2_classLit, values_107, valueOf_101); -function $clinit_LabelSide$Map(){ - $clinit_LabelSide$Map = emptyMethod; - $MAP_89 = createValueOfMap(($clinit_LabelSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]))); -} - -var $MAP_89; -function $clinit_NodeLabelPlacement(){ - $clinit_NodeLabelPlacement = emptyMethod; - H_LEFT_0 = new NodeLabelPlacement('H_LEFT', 0); - H_CENTER_0 = new NodeLabelPlacement('H_CENTER', 1); - H_RIGHT_0 = new NodeLabelPlacement('H_RIGHT', 2); - V_TOP_0 = new NodeLabelPlacement('V_TOP', 3); - V_CENTER_0 = new NodeLabelPlacement('V_CENTER', 4); - V_BOTTOM_0 = new NodeLabelPlacement('V_BOTTOM', 5); - INSIDE = new NodeLabelPlacement('INSIDE', 6); - OUTSIDE = new NodeLabelPlacement('OUTSIDE', 7); - H_PRIORITY = new NodeLabelPlacement('H_PRIORITY', 8); -} - -function NodeLabelPlacement(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function isValid_0(placement){ - $clinit_NodeLabelPlacement(); - var validHorizontal, validInsideOutside, validVertical; - validInsideOutside = of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [OUTSIDE])); - if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { - return false; - } - validHorizontal = of_2(H_LEFT_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_CENTER_0, H_RIGHT_0])); - if ($size_1(intersection_0(validHorizontal, placement)) > 1) { - return false; - } - validVertical = of_2(V_TOP_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, V_BOTTOM_0])); - if ($size_1(intersection_0(validVertical, placement)) > 1) { - return false; - } - return true; -} - -function valueOf_102(name_0){ - $clinit_NodeLabelPlacement(); - return valueOf(($clinit_NodeLabelPlacement$Map() , $MAP_90), name_0); -} - -function values_108(){ - $clinit_NodeLabelPlacement(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]); -} - -defineClass(93, 22, {3:1, 35:1, 22:1, 93:1}, NodeLabelPlacement); -var H_CENTER_0, H_LEFT_0, H_PRIORITY, H_RIGHT_0, INSIDE, OUTSIDE, V_BOTTOM_0, V_CENTER_0, V_TOP_0; -var Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'NodeLabelPlacement', 93, Ljava_lang_Enum_2_classLit, values_108, valueOf_102); -function $clinit_NodeLabelPlacement$Map(){ - $clinit_NodeLabelPlacement$Map = emptyMethod; - $MAP_90 = createValueOfMap(($clinit_NodeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]))); -} - -var $MAP_90; -function $clinit_PortAlignment(){ - $clinit_PortAlignment = emptyMethod; - DISTRIBUTED = new PortAlignment('DISTRIBUTED', 0); - JUSTIFIED = new PortAlignment('JUSTIFIED', 1); - BEGIN_0 = new PortAlignment('BEGIN', 2); - CENTER_6 = new PortAlignment('CENTER', 3); - END_1 = new PortAlignment('END', 4); -} - -function PortAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_103(name_0){ - $clinit_PortAlignment(); - return valueOf(($clinit_PortAlignment$Map() , $MAP_91), name_0); -} - -function values_109(){ - $clinit_PortAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]); -} - -defineClass(249, 22, {3:1, 35:1, 22:1, 249:1}, PortAlignment); -var BEGIN_0, CENTER_6, DISTRIBUTED, END_1, JUSTIFIED; -var Lorg_eclipse_elk_core_options_PortAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortAlignment', 249, Ljava_lang_Enum_2_classLit, values_109, valueOf_103); -function $clinit_PortAlignment$Map(){ - $clinit_PortAlignment$Map = emptyMethod; - $MAP_91 = createValueOfMap(($clinit_PortAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]))); -} - -var $MAP_91; -function $clinit_PortConstraints(){ - $clinit_PortConstraints = emptyMethod; - UNDEFINED_4 = new PortConstraints('UNDEFINED', 0); - FREE = new PortConstraints('FREE', 1); - FIXED_SIDE = new PortConstraints('FIXED_SIDE', 2); - FIXED_ORDER = new PortConstraints('FIXED_ORDER', 3); - FIXED_RATIO = new PortConstraints('FIXED_RATIO', 4); - FIXED_POS = new PortConstraints('FIXED_POS', 5); -} - -function $isOrderFixed(this$static){ - return this$static == FIXED_ORDER || this$static == FIXED_RATIO || this$static == FIXED_POS; -} - -function $isSideFixed(this$static){ - return this$static != FREE && this$static != UNDEFINED_4; -} - -function PortConstraints(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_104(name_0){ - $clinit_PortConstraints(); - return valueOf(($clinit_PortConstraints$Map() , $MAP_92), name_0); -} - -function values_110(){ - $clinit_PortConstraints(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]); -} - -defineClass(98, 22, {3:1, 35:1, 22:1, 98:1}, PortConstraints); -var FIXED_ORDER, FIXED_POS, FIXED_RATIO, FIXED_SIDE, FREE, UNDEFINED_4; -var Lorg_eclipse_elk_core_options_PortConstraints_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortConstraints', 98, Ljava_lang_Enum_2_classLit, values_110, valueOf_104); -function $clinit_PortConstraints$Map(){ - $clinit_PortConstraints$Map = emptyMethod; - $MAP_92 = createValueOfMap(($clinit_PortConstraints() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]))); -} - -var $MAP_92; -function $clinit_PortLabelPlacement(){ - $clinit_PortLabelPlacement = emptyMethod; - OUTSIDE_0 = new PortLabelPlacement('OUTSIDE', 0); - INSIDE_0 = new PortLabelPlacement('INSIDE', 1); - NEXT_TO_PORT_IF_POSSIBLE_0 = new PortLabelPlacement('NEXT_TO_PORT_IF_POSSIBLE', 2); - ALWAYS_SAME_SIDE = new PortLabelPlacement('ALWAYS_SAME_SIDE', 3); - ALWAYS_OTHER_SAME_SIDE = new PortLabelPlacement('ALWAYS_OTHER_SAME_SIDE', 4); - SPACE_EFFICIENT_0 = new PortLabelPlacement('SPACE_EFFICIENT', 5); -} - -function PortLabelPlacement(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function isFixed(placement){ - $clinit_PortLabelPlacement(); - return !placement.contains(INSIDE_0) && !placement.contains(OUTSIDE_0); -} - -function isValid_1(placement){ - $clinit_PortLabelPlacement(); - var validInsideOutside, validPosition; - validInsideOutside = of_2(INSIDE_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0])); - if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { - return false; - } - validPosition = of_2(ALWAYS_SAME_SIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0])); - if ($size_1(intersection_0(validPosition, placement)) > 1) { - return false; - } - return true; -} - -function valueOf_105(name_0){ - $clinit_PortLabelPlacement(); - return valueOf(($clinit_PortLabelPlacement$Map() , $MAP_93), name_0); -} - -function values_111(){ - $clinit_PortLabelPlacement(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]); -} - -defineClass(273, 22, {3:1, 35:1, 22:1, 273:1}, PortLabelPlacement); -var ALWAYS_OTHER_SAME_SIDE, ALWAYS_SAME_SIDE, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, OUTSIDE_0, SPACE_EFFICIENT_0; -var Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortLabelPlacement', 273, Ljava_lang_Enum_2_classLit, values_111, valueOf_105); -function $clinit_PortLabelPlacement$Map(){ - $clinit_PortLabelPlacement$Map = emptyMethod; - $MAP_93 = createValueOfMap(($clinit_PortLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]))); -} - -var $MAP_93; -function $clinit_PortSide(){ - $clinit_PortSide = emptyMethod; - var all; - UNDEFINED_5 = new PortSide('UNDEFINED', 0); - NORTH_3 = new PortSide('NORTH', 1); - EAST_2 = new PortSide('EAST', 2); - SOUTH_2 = new PortSide('SOUTH', 3); - WEST_2 = new PortSide('WEST', 4); - SIDES_NONE = ($clinit_Collections() , new Collections$UnmodifiableSet((all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)))); - SIDES_NORTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_EAST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_SOUTH = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_WEST = asImmutable(of_2(WEST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_NORTH_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); - SIDES_EAST_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); - SIDES_NORTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); - SIDES_NORTH_EAST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2]))); - SIDES_SOUTH_WEST = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); - SIDES_EAST_SOUTH = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); - SIDES_NORTH_EAST_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, WEST_2]))); - SIDES_EAST_SOUTH_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); - SIDES_NORTH_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); - SIDES_NORTH_EAST_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2]))); - SIDES_NORTH_EAST_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]))); -} - -function $left(this$static){ - switch (this$static.ordinal) { - case 1: - return WEST_2; - case 2: - return NORTH_3; - case 3: - return EAST_2; - case 4: - return SOUTH_2; - default:return UNDEFINED_5; - } -} - -function $opposed(this$static){ - switch (this$static.ordinal) { - case 1: - return SOUTH_2; - case 2: - return WEST_2; - case 3: - return NORTH_3; - case 4: - return EAST_2; - default:return UNDEFINED_5; - } -} - -function $right(this$static){ - switch (this$static.ordinal) { - case 1: - return EAST_2; - case 2: - return SOUTH_2; - case 3: - return WEST_2; - case 4: - return NORTH_3; - default:return UNDEFINED_5; - } -} - -function PortSide(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function fromDirection(direction){ - $clinit_PortSide(); - switch (direction.ordinal) { - case 4: - return NORTH_3; - case 1: - return EAST_2; - case 3: - return SOUTH_2; - case 2: - return WEST_2; - default:return UNDEFINED_5; - } -} - -function valueOf_106(name_0){ - $clinit_PortSide(); - return valueOf(($clinit_PortSide$Map() , $MAP_94), name_0); -} - -function values_112(){ - $clinit_PortSide(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]); -} - -defineClass(61, 22, {3:1, 35:1, 22:1, 61:1}, PortSide); -var EAST_2, NORTH_3, SIDES_EAST, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST, SIDES_EAST_WEST, SIDES_NONE, SIDES_NORTH, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST, SIDES_SOUTH, SIDES_SOUTH_WEST, SIDES_WEST, SOUTH_2, UNDEFINED_5, WEST_2; -var Lorg_eclipse_elk_core_options_PortSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortSide', 61, Ljava_lang_Enum_2_classLit, values_112, valueOf_106); -function $clinit_PortSide$Map(){ - $clinit_PortSide$Map = emptyMethod; - $MAP_94 = createValueOfMap(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))); -} - -var $MAP_94; -function $clinit_RandomLayouterOptions(){ - $clinit_RandomLayouterOptions = emptyMethod; - PADDING_DEFAULT_8 = new ElkPadding_0(15); - PADDING_8 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_8); - SPACING_NODE_NODE_7 = new Property_2(SPACING_NODE_NODE_6, 15); - RANDOM_SEED_2 = new Property_2(RANDOM_SEED_1, valueOf_4(0)); - ASPECT_RATIO_6 = new Property_2(ASPECT_RATIO_5, $intern_102); -} - -function $apply_26(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.random'), 'ELK Randomizer'), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new RandomLayouterOptions$RandomFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.padding', PADDING_DEFAULT_8); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.spacing.nodeNode', 15); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.randomSeed', valueOf_4(0)); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.aspectRatio', $intern_102); -} - -function RandomLayouterOptions(){ - $clinit_RandomLayouterOptions(); -} - -defineClass(981, 1, $intern_90, RandomLayouterOptions); -_.apply_4 = function apply_170(registry){ - $apply_26(registry); -} -; -var ASPECT_RATIO_6, PADDING_8, PADDING_DEFAULT_8, RANDOM_SEED_2, SPACING_NODE_NODE_7; -var Lorg_eclipse_elk_core_options_RandomLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions', 981); -function RandomLayouterOptions$RandomFactory(){ -} - -defineClass(982, 1, {}, RandomLayouterOptions$RandomFactory); -_.create_0 = function create_39(){ - var provider; - return provider = new RandomLayoutProvider , provider; -} -; -_.destroy = function destroy_10(obj){ -} -; -var Lorg_eclipse_elk_core_options_RandomLayouterOptions$RandomFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions/RandomFactory', 982); -function $clinit_SizeConstraint(){ - $clinit_SizeConstraint = emptyMethod; - PORTS_0 = new SizeConstraint('PORTS', 0); - PORT_LABELS = new SizeConstraint('PORT_LABELS', 1); - NODE_LABELS = new SizeConstraint('NODE_LABELS', 2); - MINIMUM_SIZE = new SizeConstraint('MINIMUM_SIZE', 3); -} - -function SizeConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_107(name_0){ - $clinit_SizeConstraint(); - return valueOf(($clinit_SizeConstraint$Map() , $MAP_95), name_0); -} - -function values_113(){ - $clinit_SizeConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]); -} - -defineClass(374, 22, {3:1, 35:1, 22:1, 374:1}, SizeConstraint); -var MINIMUM_SIZE, NODE_LABELS, PORTS_0, PORT_LABELS; -var Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeConstraint', 374, Ljava_lang_Enum_2_classLit, values_113, valueOf_107); -function $clinit_SizeConstraint$Map(){ - $clinit_SizeConstraint$Map = emptyMethod; - $MAP_95 = createValueOfMap(($clinit_SizeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]))); -} - -var $MAP_95; -function $clinit_SizeOptions(){ - $clinit_SizeOptions = emptyMethod; - DEFAULT_MINIMUM_SIZE = new SizeOptions('DEFAULT_MINIMUM_SIZE', 0); - MINIMUM_SIZE_ACCOUNTS_FOR_PADDING = new SizeOptions('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING', 1); - COMPUTE_PADDING = new SizeOptions('COMPUTE_PADDING', 2); - OUTSIDE_NODE_LABELS_OVERHANG = new SizeOptions('OUTSIDE_NODE_LABELS_OVERHANG', 3); - PORTS_OVERHANG = new SizeOptions('PORTS_OVERHANG', 4); - UNIFORM_PORT_SPACING = new SizeOptions('UNIFORM_PORT_SPACING', 5); - SPACE_EFFICIENT_PORT_LABELS = new SizeOptions('SPACE_EFFICIENT_PORT_LABELS', 6); - FORCE_TABULAR_NODE_LABELS = new SizeOptions('FORCE_TABULAR_NODE_LABELS', 7); - ASYMMETRICAL = new SizeOptions('ASYMMETRICAL', 8); -} - -function SizeOptions(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_108(name_0){ - $clinit_SizeOptions(); - return valueOf(($clinit_SizeOptions$Map() , $MAP_96), name_0); -} - -function values_114(){ - $clinit_SizeOptions(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]); -} - -defineClass(259, 22, {3:1, 35:1, 22:1, 259:1}, SizeOptions); -var ASYMMETRICAL, COMPUTE_PADDING, DEFAULT_MINIMUM_SIZE, FORCE_TABULAR_NODE_LABELS, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, SPACE_EFFICIENT_PORT_LABELS, UNIFORM_PORT_SPACING; -var Lorg_eclipse_elk_core_options_SizeOptions_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeOptions', 259, Ljava_lang_Enum_2_classLit, values_114, valueOf_108); -function $clinit_SizeOptions$Map(){ - $clinit_SizeOptions$Map = emptyMethod; - $MAP_96 = createValueOfMap(($clinit_SizeOptions() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]))); -} - -var $MAP_96; -function $begin(this$static, name_0, thetotalWork){ - if (this$static.closed_0) { - throw toJs(new IllegalStateException_0('The task is already done.')); - } - else if (this$static.taskName != null) { - return false; - } - else { - this$static.taskName = name_0; - this$static.totalWork = thetotalWork; - this$static.recordExecutionTime && (this$static.startTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45))); - return true; - } -} - -function $doSubTask(this$static, maxHierarchyLevels){ - var newMaxHierarchyLevels; - newMaxHierarchyLevels = maxHierarchyLevels > 0?maxHierarchyLevels - 1:maxHierarchyLevels; - return $withExecutionTimeMeasurement($withLogPersistence($withLogging($withMaxHierarchyLevels(new BasicProgressMonitor, newMaxHierarchyLevels), this$static.recordLogs), this$static.persistLogs), this$static.recordExecutionTime); -} - -function $done_0(this$static){ - var endTime; - if (this$static.taskName == null) { - throw toJs(new IllegalStateException_0('The task has not begun yet.')); - } - if (!this$static.closed_0) { - if (this$static.recordExecutionTime) { - endTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45)); - this$static.totalTime = toDouble_0(sub_2(endTime, this$static.startTime)) * 1.0E-9; - } - this$static.completedWork < this$static.totalWork && $internalWorked(this$static, this$static.totalWork - this$static.completedWork); - this$static.closed_0 = true; - } -} - -function $internalWorked(this$static, work){ - if (this$static.totalWork > 0 && this$static.completedWork < this$static.totalWork) { - this$static.completedWork += work; - !!this$static.parentMonitor && this$static.parentMonitor.currentChildWork > 0 && this$static.maxLevels != 0 && $internalWorked(this$static.parentMonitor, work / this$static.totalWork * this$static.parentMonitor.currentChildWork); - } -} - -function $log_2(this$static, object){ - var logMessage; - if (this$static.recordLogs) { - logMessage = object; - $add_3(this$static.logMessages, logMessage); - } -} - -function $logGraph(this$static, object, graphType){ - var loggedGraph; - if (this$static.recordLogs && !!object && !!graphType) { - loggedGraph = new LoggedGraph; - $add_3(this$static.logGraphs, loggedGraph); - } -} - -function $subTask(this$static, work){ - var subMonitor; - if (this$static.closed_0) { - return null; - } - else { - subMonitor = $doSubTask(this$static, this$static.maxLevels); - $add_7(this$static.children, subMonitor); - subMonitor.parentMonitor = this$static; - this$static.currentChildWork = work; - return subMonitor; - } -} - -function $withExecutionTimeMeasurement(this$static, enabled){ - this$static.recordExecutionTime = enabled; - return this$static; -} - -function $withLogPersistence(this$static, enabled){ - this$static.persistLogs = enabled; - return this$static; -} - -function $withLogging(this$static, enabled){ - this$static.recordLogs = enabled; - if (this$static.recordLogs) { - this$static.logMessages = new ArrayList; - this$static.logGraphs = new ArrayList; - } - else { - this$static.logMessages = null; - this$static.logGraphs = null; - } - return this$static; -} - -function $withMaxHierarchyLevels(this$static, levels){ - levels < 0?(this$static.maxLevels = -1):(this$static.maxLevels = levels); - return this$static; -} - -function BasicProgressMonitor(){ - this.children = new LinkedList; -} - -defineClass(370, 1, {1949:1}, BasicProgressMonitor); -_.closed_0 = false; -_.completedWork = 0; -_.currentChildWork = -1; -_.logGraphs = null; -_.logMessages = null; -_.maxLevels = -1; -_.persistLogs = false; -_.recordExecutionTime = false; -_.recordLogs = false; -_.startTime = 0; -_.totalTime = 0; -_.totalWork = 0; -var Lorg_eclipse_elk_core_util_BasicProgressMonitor_2_classLit = createForClass('org.eclipse.elk.core.util', 'BasicProgressMonitor', 370); -function $areaStdDev(boxes, mean){ - var box, box$iterator, stddev, variance; - variance = 0; - for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 33); - variance += $wnd.Math.pow(box.width_0 * box.height - mean, 2); - } - stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); - return stddev; -} - -function $areaStdDev2(boxes, mean){ - var box, box$iterator, stddev, variance; - variance = 0; - for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 157); - variance += $wnd.Math.pow($getWidth(box) * $getHeight(box) - mean, 2); - } - stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); - return stddev; -} - -function $mergeAndPlaceDec(groups, objSpacing, minWidth, minHeight, expandNodes){ - var box, boxQueue, boxToBeat, collectedArea, groupSize, innerAspectRatio, innerGroup, maybeGroup, toBePlaced; - $clinit_Collections(); - $sort(groups, new BoxLayoutProvider$lambda$0$Type); - boxQueue = newLinkedList(groups); - toBePlaced = new ArrayList; - maybeGroup = new ArrayList; - boxToBeat = null; - collectedArea = 0; - while (boxQueue.size_0 != 0) { - box = castTo(boxQueue.size_0 == 0?null:(checkCriticalElement(boxQueue.size_0 != 0) , $removeNode_0(boxQueue, boxQueue.header.next_0)), 157); - if (!boxToBeat || $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 < $getWidth(box) * $getHeight(box)) { - boxToBeat = box; - toBePlaced.array[toBePlaced.array.length] = box; - } - else { - collectedArea += $getWidth(box) * $getHeight(box); - maybeGroup.array[maybeGroup.array.length] = box; - if (maybeGroup.array.length > 1 && (collectedArea > $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 || boxQueue.size_0 == 0)) { - innerGroup = new BoxLayoutProvider$Group(maybeGroup); - innerAspectRatio = $getWidth(boxToBeat) / $getHeight(boxToBeat); - groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); - $add_19($reset_5(innerGroup.size_0), groupSize); - boxToBeat = innerGroup; - toBePlaced.array[toBePlaced.array.length] = innerGroup; - collectedArea = 0; - maybeGroup.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - } - } - $addAll_2(toBePlaced, maybeGroup); - return toBePlaced; -} - -function $mergeAndPlaceInc(groups, objSpacing, minWidth, minHeight, expandNodes){ - var commonArea, g, groupIterator, groupSize, innerAspectRatio, merged, toBePlaced; - $clinit_Collections(); - $sort(groups, new BoxLayoutProvider$lambda$2$Type); - groupIterator = new AbstractList$ListIteratorImpl(groups, 0); - toBePlaced = new ArrayList; - commonArea = 0; - while (groupIterator.i < groupIterator.this$01_0.size_1()) { - g = (checkCriticalElement(groupIterator.i < groupIterator.this$01_0.size_1()) , castTo(groupIterator.this$01_0.get_0(groupIterator.last = groupIterator.i++), 157)); - if (toBePlaced.array.length != 0 && $getWidth(g) * $getHeight(g) > commonArea * 2) { - merged = new BoxLayoutProvider$Group(toBePlaced); - innerAspectRatio = $getWidth(g) / $getHeight(g); - groupSize = $placeInnerBoxes(merged, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); - $add_19($reset_5(merged.size_0), groupSize); - toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - commonArea = 0; - toBePlaced.array[toBePlaced.array.length] = merged; - toBePlaced.array[toBePlaced.array.length] = g; - commonArea = $getWidth(merged) * $getHeight(merged) + $getWidth(g) * $getHeight(g); - } - else { - toBePlaced.array[toBePlaced.array.length] = g; - commonArea += $getWidth(g) * $getHeight(g); - } - } - return toBePlaced; -} - -function $mergeAndPlaceMixed(groups, objSpacing, minWidth, minHeight, expandNodes){ - var anIndex, box, cumAreaArray, groupSize, index_0, innerAspectRatio, innerGroup, pq, remain, select, toBePlaced, value_0; - cumAreaArray = initUnidimensionalArray(D_classLit, $intern_65, 25, groups.array.length, 15, 1); - pq = new PriorityQueue(new BoxLayoutProvider$lambda$1$Type); - $addAll_4(pq, groups); - index_0 = 0; - toBePlaced = new ArrayList; - while (pq.heap.array.length != 0) { - box = castTo(pq.heap.array.length == 0?null:$get_11(pq.heap, 0), 157); - if (index_0 > 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[0]) { - anIndex = 0; - while (anIndex < toBePlaced.array.length - 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[anIndex]) { - ++anIndex; - } - select = new AbstractList$SubList(toBePlaced, 0, anIndex + 1); - innerGroup = new BoxLayoutProvider$Group(select); - innerAspectRatio = $getWidth(box) / $getHeight(box); - groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); - $add_19($reset_5(innerGroup.size_0), groupSize); - checkCriticalState_0($offer(pq, innerGroup)); - remain = new AbstractList$SubList(toBePlaced, anIndex + 1, toBePlaced.array.length); - $addAll_4(pq, remain); - toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - index_0 = 0; - fill0_0(cumAreaArray, cumAreaArray.length, 0); - } - else { - value_0 = pq.heap.array.length == 0?null:$get_11(pq.heap, 0); - value_0 != null && $removeAtIndex_0(pq, 0); - index_0 > 0 && (cumAreaArray[index_0] = cumAreaArray[index_0 - 1]); - cumAreaArray[index_0] += $getWidth(box) * $getHeight(box); - ++index_0; - toBePlaced.array[toBePlaced.array.length] = box; - } - } - return toBePlaced; -} - -function $placeBoxes(sortedBoxes, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ - var box, box$iterator, boxIter, broadestRow, height, highestBox, maxRowWidth, mean, newHeight, newWidth, nextRowIndex, oldHeight, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; - maxRowWidth = 0; - totalArea = 0; - for (box$iterator = new ArrayList$1(sortedBoxes); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 33); - resizeNode_0(box); - maxRowWidth = $wnd.Math.max(maxRowWidth, box.width_0); - totalArea += box.width_0 * box.height; - } - mean = totalArea / sortedBoxes.array.length; - stddev = $areaStdDev(sortedBoxes, mean); - totalArea += sortedBoxes.array.length * stddev; - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; - xpos = padding.left; - ypos = padding.top_0; - highestBox = 0; - broadestRow = padding.left + padding.right; - rowIndices = new LinkedList; - $add_7(rowIndices, valueOf_4(0)); - rowHeights = new LinkedList; - boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); - while (boxIter.i < boxIter.this$01_0.size_1()) { - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); - width_0 = box.width_0; - height = box.height; - if (xpos + width_0 > maxRowWidth) { - if (expandNodes) { - $addLast_0(rowHeights, highestBox); - $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); - } - xpos = padding.left; - ypos += highestBox + minSpacing; - highestBox = 0; - broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); - } - $setX_2(box, xpos); - $setY_3(box, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); - highestBox = $wnd.Math.max(highestBox, height); - xpos += width_0 + minSpacing; - } - broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); - totalHeight = ypos + highestBox + padding.bottom; - if (totalHeight < minTotalHeight) { - highestBox += minTotalHeight - totalHeight; - totalHeight = minTotalHeight; - } - if (expandNodes) { - xpos = padding.left; - boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); - $addLast_0(rowIndices, valueOf_4(sortedBoxes.array.length)); - rowIndexIter = $listIterator_2(rowIndices, 0); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - $addLast_0(rowHeights, highestBox); - rowHeightIter = $listIterator_2(rowHeights, 0); - rowHeight = 0; - while (boxIter.i < boxIter.this$01_0.size_1()) { - if (boxIter.i == nextRowIndex) { - xpos = padding.left; - rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - } - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); - oldHeight = box.height; - $setHeight_0(box, rowHeight); - newHeight = rowHeight; - if (boxIter.i == nextRowIndex) { - newWidth = broadestRow - xpos - padding.right; - oldWidth = box.width_0; - $setWidth_0(box, newWidth); - translate_1(box, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); - } - xpos += box.width_0 + minSpacing; - } - } - return new KVector_1(broadestRow, totalHeight); -} - -function $placeBoxesGrouping(parentNode, objSpacing, padding, expandNodes){ - var aspectRatio, finalGroup, g, groups, lastArg, lastArg0, lastArg1, minSize, mode, node, node$iterator, parentSize, toBePlaced; - minSize = new KVector_2(castTo($getProperty_0(parentNode, ($clinit_BoxLayouterOptions() , NODE_SIZE_MINIMUM_4)), 8)); - minSize.x_0 = $wnd.Math.max(minSize.x_0 - padding.left - padding.right, 0); - minSize.y_0 = $wnd.Math.max(minSize.y_0 - padding.top_0 - padding.bottom, 0); - aspectRatio = castToDouble($getProperty_0(parentNode, ASPECT_RATIO_4)); - (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); - groups = new ArrayList; - for (node$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - g = new BoxLayoutProvider$Group_0(node); - groups.array[groups.array.length] = g; - } - mode = castTo($getProperty_0(parentNode, BOX_PACKING_MODE), 311); - switch (mode.ordinal) { - case 3: - toBePlaced = $mergeAndPlaceInc(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg0 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg0)); - break; - case 1: - toBePlaced = $mergeAndPlaceDec(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg1 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg1)); - break; - default:toBePlaced = $mergeAndPlaceMixed(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg)); - } - finalGroup = new BoxLayoutProvider$Group(toBePlaced); - parentSize = $placeInnerBoxes(finalGroup, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); - resizeNode_1(parentNode, parentSize.x_0, parentSize.y_0, false, true); -} - -function $placeInnerBoxes(group, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ - var bottoms, box, box$iterator, boxIter, broadestRow, height, highestBox, last, maxRowWidth, mean, newWidth, nextRowIndex, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; - maxRowWidth = 0; - totalArea = 0; - for (box$iterator = new ArrayList$1(group.groups); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 157); - !!box.node && resizeNode_0(box.node); - maxRowWidth = $wnd.Math.max(maxRowWidth, $getWidth(box)); - totalArea += $getWidth(box) * $getHeight(box); - } - mean = totalArea / group.groups.array.length; - stddev = $areaStdDev2(group.groups, mean); - totalArea += group.groups.array.length * stddev; - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; - xpos = padding.left; - ypos = padding.top_0; - highestBox = 0; - broadestRow = padding.left + padding.right; - rowIndices = new LinkedList; - $add_7(rowIndices, valueOf_4(0)); - rowHeights = new LinkedList; - boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); - last = null; - bottoms = new ArrayList; - while (boxIter.i < boxIter.this$01_0.size_1()) { - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); - width_0 = $getWidth(box); - height = $getHeight(box); - if (xpos + width_0 > maxRowWidth) { - if (expandNodes) { - $addLast_0(rowHeights, highestBox); - $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); - $add_3(group.right, last); - bottoms.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - xpos = padding.left; - ypos += highestBox + minSpacing; - highestBox = 0; - broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); - } - bottoms.array[bottoms.array.length] = box; - $translate_1(box, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); - highestBox = $wnd.Math.max(highestBox, height); - xpos += width_0 + minSpacing; - last = box; - } - $addAll_2(group.bottom, bottoms); - $add_3(group.right, castTo($get_11(bottoms, bottoms.array.length - 1), 157)); - broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); - totalHeight = ypos + highestBox + padding.bottom; - if (totalHeight < minTotalHeight) { - highestBox += minTotalHeight - totalHeight; - totalHeight = minTotalHeight; - } - if (expandNodes) { - xpos = padding.left; - boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); - $addLast_0(rowIndices, valueOf_4(group.groups.array.length)); - rowIndexIter = $listIterator_2(rowIndices, 0); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - $addLast_0(rowHeights, highestBox); - rowHeightIter = $listIterator_2(rowHeights, 0); - rowHeight = 0; - while (boxIter.i < boxIter.this$01_0.size_1()) { - if (boxIter.i == nextRowIndex) { - xpos = padding.left; - rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - } - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); - $setHeight(box, rowHeight); - if (boxIter.i == nextRowIndex) { - newWidth = broadestRow - xpos - padding.right; - oldWidth = $getWidth(box); - $setWidth(box, newWidth); - $translateInnerNodes(box, (newWidth - oldWidth) / 2, 0); - } - xpos += $getWidth(box) + minSpacing; - } - } - return new KVector_1(broadestRow, totalHeight); -} - -function BoxLayoutProvider(){ -} - -function lambda$0_36(g1_0, g2_1){ - return -compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); -} - -function lambda$1_20(g1_0, g2_1){ - return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); -} - -function lambda$2_10(g1_0, g2_1){ - return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); -} - -defineClass(972, 209, $intern_96, BoxLayoutProvider); -_.layout = function layout_8(layoutNode, progressMonitor){ - var expandNodes, interactive, objSpacing, padding, sortedBoxes, sortedBoxes_0, minSize, aspectRatio, parentSize; - $begin(progressMonitor, 'Box layout', 2); - objSpacing = $floatValue(castToDouble($getProperty_0(layoutNode, ($clinit_BoxLayouterOptions() , SPACING_NODE_NODE_5)))); - padding = castTo($getProperty_0(layoutNode, PADDING_5), 116); - expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutNode, EXPAND_NODES_0))); - interactive = $booleanValue(castToBoolean($getProperty_0(layoutNode, INTERACTIVE_6))); - switch (castTo($getProperty_0(layoutNode, BOX_PACKING_MODE), 311).ordinal) { - case 0: - sortedBoxes = (sortedBoxes_0 = new ArrayList_1((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)) , $clinit_Collections() , $sort(sortedBoxes_0, new BoxLayoutProvider$1(interactive)) , sortedBoxes_0); - minSize = effectiveMinSizeConstraintFor(layoutNode); - aspectRatio = castToDouble($getProperty_0(layoutNode, ASPECT_RATIO_4)); - (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); - parentSize = $placeBoxes(sortedBoxes, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); - resizeNode_1(layoutNode, parentSize.x_0, parentSize.y_0, false, true); - break; - default:$placeBoxesGrouping(layoutNode, objSpacing, padding, expandNodes); - } - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider', 972); -function $compare_24(this$static, child1, child2){ - var c, prio1, prio2, size1, size2; - prio1 = castTo($getProperty_0(child1, ($clinit_BoxLayouterOptions() , PRIORITY_2)), 19); - !prio1 && (prio1 = valueOf_4(0)); - prio2 = castTo($getProperty_0(child2, PRIORITY_2), 19); - !prio2 && (prio2 = valueOf_4(0)); - if (prio1.value_0 > prio2.value_0) { - return -1; - } - else if (prio1.value_0 < prio2.value_0) { - return 1; - } - else { - if (this$static.val$interactive2) { - c = compare_4(child1.y_0, child2.y_0); - if (c != 0) { - return c; - } - c = compare_4(child1.x_0, child2.x_0); - if (c != 0) { - return c; - } - } - size1 = child1.width_0 * child1.height; - size2 = child2.width_0 * child2.height; - return compare_4(size1, size2); - } -} - -function BoxLayoutProvider$1(val$interactive){ - this.val$interactive2 = val$interactive; -} - -defineClass(973, 1, $intern_88, BoxLayoutProvider$1); -_.compare_1 = function compare_82(child1, child2){ - return $compare_24(this, castTo(child1, 33), castTo(child2, 33)); -} -; -_.equals_0 = function equals_174(other){ - return this === other; -} -; -_.reversed = function reversed_74(){ - return new Comparators$ReversedComparator(this); -} -; -_.val$interactive2 = false; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/1', 973); -function $getHeight(this$static){ - if (this$static.node) { - return this$static.node.height; - } - return this$static.size_0.y_0; -} - -function $getWidth(this$static){ - if (this$static.node) { - return this$static.node.width_0; - } - return this$static.size_0.x_0; -} - -function $setHeight(this$static, h){ - var delta, g, g$iterator; - if (this$static.node) { - $setHeight_0(this$static.node, h); - } - else { - delta = h - $getHeight(this$static); - for (g$iterator = new ArrayList$1(this$static.bottom); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $setHeight(g, $getHeight(g) + delta); - } - } -} - -function $setWidth(this$static, w){ - var delta, g, g$iterator; - if (this$static.node) { - $setWidth_0(this$static.node, w); - } - else { - delta = w - $getWidth(this$static); - for (g$iterator = new ArrayList$1(this$static.right); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $setWidth(g, $getWidth(g) + delta); - } - } -} - -function $translate_1(this$static, x_0, y_0){ - var g, g$iterator; - if (this$static.node) { - $setX_2(this$static.node, this$static.node.x_0 + x_0); - $setY_3(this$static.node, this$static.node.y_0 + y_0); - } - else { - for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $translate_1(g, x_0, y_0); - } - } -} - -function $translateInnerNodes(this$static, x_0, y_0){ - var g, g$iterator; - if (this$static.node) { - translate_0(this$static.node, x_0, y_0); - } - else { - for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $translateInnerNodes(g, x_0, y_0); - } - } -} - -function BoxLayoutProvider$Group(groups){ - this.groups = (checkNotNull(groups) , new ArrayList_1(groups)); - this.bottom = new ArrayList; - this.right = new ArrayList; - this.size_0 = new KVector; -} - -function BoxLayoutProvider$Group_0(node){ - this.node = node; - $setX_2(node, 0); - $setY_3(node, 0); -} - -defineClass(157, 1, {157:1}, BoxLayoutProvider$Group, BoxLayoutProvider$Group_0); -_.toString_0 = function toString_117(){ - return this.node?$toString_23(this.node):$toString_2(this.groups); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$Group_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/Group', 157); -function $clinit_BoxLayoutProvider$PackingMode(){ - $clinit_BoxLayoutProvider$PackingMode = emptyMethod; - SIMPLE_0 = new BoxLayoutProvider$PackingMode('SIMPLE', 0); - GROUP_DEC = new BoxLayoutProvider$PackingMode('GROUP_DEC', 1); - GROUP_MIXED = new BoxLayoutProvider$PackingMode('GROUP_MIXED', 2); - GROUP_INC = new BoxLayoutProvider$PackingMode('GROUP_INC', 3); -} - -function BoxLayoutProvider$PackingMode(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_109(name_0){ - $clinit_BoxLayoutProvider$PackingMode(); - return valueOf(($clinit_BoxLayoutProvider$PackingMode$Map() , $MAP_97), name_0); -} - -function values_115(){ - $clinit_BoxLayoutProvider$PackingMode(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]); -} - -defineClass(311, 22, {3:1, 35:1, 22:1, 311:1}, BoxLayoutProvider$PackingMode); -var GROUP_DEC, GROUP_INC, GROUP_MIXED, SIMPLE_0; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit = createForEnum('org.eclipse.elk.core.util', 'BoxLayoutProvider/PackingMode', 311, Ljava_lang_Enum_2_classLit, values_115, valueOf_109); -function $clinit_BoxLayoutProvider$PackingMode$Map(){ - $clinit_BoxLayoutProvider$PackingMode$Map = emptyMethod; - $MAP_97 = createValueOfMap(($clinit_BoxLayoutProvider$PackingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]))); -} - -var $MAP_97; -function BoxLayoutProvider$lambda$0$Type(){ -} - -defineClass(974, 1, $intern_88, BoxLayoutProvider$lambda$0$Type); -_.compare_1 = function compare_83(arg0, arg1){ - return lambda$0_36(castTo(arg0, 157), castTo(arg1, 157)); -} -; -_.equals_0 = function equals_175(other){ - return this === other; -} -; -_.reversed = function reversed_75(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$0$Type', 974); -function BoxLayoutProvider$lambda$1$Type(){ -} - -defineClass(975, 1, $intern_88, BoxLayoutProvider$lambda$1$Type); -_.compare_1 = function compare_84(arg0, arg1){ - return lambda$1_20(castTo(arg0, 157), castTo(arg1, 157)); -} -; -_.equals_0 = function equals_176(other){ - return this === other; -} -; -_.reversed = function reversed_76(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$1$Type', 975); -function BoxLayoutProvider$lambda$2$Type(){ -} - -defineClass(976, 1, $intern_88, BoxLayoutProvider$lambda$2$Type); -_.compare_1 = function compare_85(arg0, arg1){ - return lambda$2_10(castTo(arg0, 157), castTo(arg1, 157)); -} -; -_.equals_0 = function equals_177(other){ - return this === other; -} -; -_.reversed = function reversed_77(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$2$Type', 976); -function ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type(){ -} - -defineClass(1365, 1, {831:1}, ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type); -_.accept_4 = function accept_144(arg0, arg1){ - return $clinit_ElkSpacings$AbstractSpacingsBuilder() , !instanceOf(arg1, 160) || $accept_5(($clinit_LayoutConfigurator() , OPTION_TARGET_FILTER , castTo(arg0, 160)), arg1); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type', 1365); -function ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1366, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type); -_.accept = function accept_145(arg0){ - $lambda$1_1(this.$$outer_0, castTo(arg0, 146)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type', 1366); -function ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type(){ -} - -defineClass(1367, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type); -_.accept = function accept_146(arg0){ - castTo(arg0, 94); - $clinit_ElkSpacings$AbstractSpacingsBuilder(); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type', 1367); -function ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1371, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type); -_.accept = function accept_147(arg0){ - $lambda$3_0(this.$$outer_0, castTo(arg0, 94)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type', 1371); -function ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type($$outer_0, element_1){ - this.$$outer_0 = $$outer_0; - this.element_1 = element_1; -} - -defineClass(1369, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type); -_.test_0 = function test_109(arg0){ - return $lambda$4_1(this.$$outer_0, this.element_1, castTo(arg0, 146)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type', 1369); -function ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_0, p_1){ - this.element_0 = element_0; - this.p_1 = p_1; -} - -defineClass(1368, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type); -_.test_0 = function test_110(arg0){ - return lambda$5_3(this.element_0, this.p_1, castTo(arg0, 831)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type', 1368); -function ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type($$outer_0, element_1){ - this.$$outer_0 = $$outer_0; - this.element_1 = element_1; -} - -defineClass(1370, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type); -_.accept = function accept_148(arg0){ - $lambda$6(this.$$outer_0, this.element_1, castTo(arg0, 146)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type', 1370); -function applyConfiguredNodeScaling(node){ - var anchor, portLabels, scalingFactor, shape_0, shape$iterator; - scalingFactor = $doubleValue(castToDouble($getProperty_0(node, ($clinit_CoreOptions() , SCALE_FACTOR)))); - if (scalingFactor == 1) { - return; - } - $setDimensions_0(node, scalingFactor * node.width_0, scalingFactor * node.height); - portLabels = concat_0(transform_1((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), new ElkUtil$lambda$0$Type)); - for (shape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels), (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), portLabels]))); $hasNext_1(shape$iterator);) { - shape_0 = castTo($next_0(shape$iterator), 470); - shape_0.setLocation(scalingFactor * shape_0.getX(), scalingFactor * shape_0.getY()); - shape_0.setDimensions(scalingFactor * shape_0.getWidth(), scalingFactor * shape_0.getHeight()); - anchor = castTo(shape_0.getProperty(PORT_ANCHOR_0), 8); - if (anchor) { - anchor.x_0 *= scalingFactor; - anchor.y_0 *= scalingFactor; - } - } -} - -function applyVectorChain(vectorChain, section){ - var bendpoint, elkBendPoint, firstPoint, lastPoint, newPointIter, nextPoint, oldPointIter; - if (vectorChain.size_0 < 2) { - throw toJs(new IllegalArgumentException_0('The vector chain must contain at least a source and a target point.')); - } - firstPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.header.next_0.value_0, 8)); - $setStartLocation(section, firstPoint.x_0, firstPoint.y_0); - oldPointIter = new AbstractEList$EListIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); - newPointIter = $listIterator_2(vectorChain, 1); - while (newPointIter.currentIndex < vectorChain.size_0 - 1) { - nextPoint = castTo($next_10(newPointIter), 8); - if (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { - bendpoint = castTo($doNext(oldPointIter), 469); - } - else { - bendpoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); - $doAdd_0(oldPointIter, bendpoint); - } - $set_10(bendpoint, nextPoint.x_0, nextPoint.y_0); - } - while (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { - $doNext(oldPointIter); - $remove_36(oldPointIter); - } - lastPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.tail.prev.value_0, 8)); - $setEndLocation(section, lastPoint.x_0, lastPoint.y_0); -} - -function applyVisitors(graph, visitors){ - var allElements, graphElement, i, nextElement; - allElements = new ElkGraphUtil$PropertiesSkippingTreeIterator(graph); - while (allElements.data_0 == null && !allElements.includeRoot?$hasAnyChildren(allElements):allElements.data_0 == null || allElements.size_0 != 0 && castTo(allElements.data_0[allElements.size_0 - 1], 47).hasNext_0()) { - nextElement = castTo($next_14(allElements), 56); - if (instanceOf(nextElement, 160)) { - graphElement = castTo(nextElement, 160); - for (i = 0; i < visitors.length; i++) { - visitors[i].visit(graphElement); - } - } - } -} - -function calcPortOffset_0(port, side){ - var node; - if (!$getParent_3(port)) { - throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); - } - node = $getParent_3(port); - switch (side.ordinal) { - case 1: - return -(port.y_0 + port.height); - case 2: - return port.x_0 - node.width_0; - case 3: - return port.y_0 - node.height; - case 4: - return -(port.x_0 + port.width_0); - } - return 0; -} - -function calcPortSide_0(port, direction){ - var heightPercent, node, nodeHeight, nodeWidth, widthPercent, xpos, ypos; - if (!$getParent_3(port)) { - throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); - } - node = $getParent_3(port); - nodeWidth = node.width_0; - nodeHeight = node.height; - if (nodeWidth <= 0 && nodeHeight <= 0) { - return $clinit_PortSide() , UNDEFINED_5; - } - xpos = port.x_0; - ypos = port.y_0; - switch (direction.ordinal) { - case 2: - case 1: - if (xpos < 0) { - return $clinit_PortSide() , WEST_2; - } - else if (xpos + port.width_0 > nodeWidth) { - return $clinit_PortSide() , EAST_2; - } - - break; - case 4: - case 3: - if (ypos < 0) { - return $clinit_PortSide() , NORTH_3; - } - else if (ypos + port.height > nodeHeight) { - return $clinit_PortSide() , SOUTH_2; - } - - } - widthPercent = (xpos + port.width_0 / 2) / nodeWidth; - heightPercent = (ypos + port.height / 2) / nodeHeight; - return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); -} - -function computeInsidePart(labelPosition, labelSize, portSize, portBorderOffset, portSide){ - var insidePart; - insidePart = 0; - switch (portSide.ordinal) { - case 1: - insidePart = $wnd.Math.max(0, labelSize.y_0 + labelPosition.y_0 - (portSize.y_0 + portBorderOffset)); - break; - case 3: - insidePart = $wnd.Math.max(0, -labelPosition.y_0 - portBorderOffset); - break; - case 2: - insidePart = $wnd.Math.max(0, -labelPosition.x_0 - portBorderOffset); - break; - case 4: - insidePart = $wnd.Math.max(0, labelSize.x_0 + labelPosition.x_0 - (portSize.x_0 + portBorderOffset)); - } - return insidePart; -} - -function computeInsidePart_0(port, portBorderOffset){ - var labelBounds; - labelBounds = getLabelsBounds(port); - return computeInsidePart(new KVector_1(labelBounds.x_0, labelBounds.y_0), new KVector_1(labelBounds.width_0, labelBounds.height), port.getSize(), portBorderOffset, port.getSide()); -} - -function createVectorChain(edgeSection){ - var bendPoint, bendPoint$iterator, chain; - chain = new KVectorChain; - $add_7(chain, new KVector_1(edgeSection.startX, edgeSection.startY)); - for (bendPoint$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { - bendPoint = castTo($doNext(bendPoint$iterator), 469); - $add_7(chain, new KVector_1(bendPoint.x_0, bendPoint.y_0)); - } - $add_7(chain, new KVector_1(edgeSection.endX, edgeSection.endY)); - return chain; -} - -function determineJunctionPoints(edge){ - var junctionPoints; - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { - throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); - } - junctionPoints = new KVectorChain; - !!connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)), false)); - !!connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)), true)); - return junctionPoints; -} - -function determineJunctionPoints_0(edge, port, reverse){ - var allConnectedSections, allSectIter, dx2, dx3, dy2, dy3, i, junctionPoints, offset, offsetMap, otherEdge, otherEdge$iterator, otherPoints, otherSection, p1, p2, p3, pointsMap, section, sectionPoints; - section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - junctionPoints = new KVectorChain; - pointsMap = new HashMap; - sectionPoints = getPoints(section); - $put_9(pointsMap.hashCodeMap, section, sectionPoints); - offsetMap = new HashMap; - allConnectedSections = new LinkedList; - for (otherEdge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges), (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)]))); $hasNext_1(otherEdge$iterator);) { - otherEdge = castTo($next_0(otherEdge$iterator), 79); - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { - throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); - } - if (otherEdge != edge) { - otherSection = castTo($get_20((!otherEdge.sections && (otherEdge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, otherEdge, 6, 6)) , otherEdge.sections), 0), 202); - $addNode_0(allConnectedSections, otherSection, allConnectedSections.tail.prev, allConnectedSections.tail); - otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); - if (!otherPoints) { - otherPoints = getPoints(otherSection); - $put_9(pointsMap.hashCodeMap, otherSection, otherPoints); - } - offset = reverse?$sub_0(new KVector_2(castTo($get_11(sectionPoints, sectionPoints.array.length - 1), 8)), castTo($get_11(otherPoints, otherPoints.array.length - 1), 8)):$sub_0(new KVector_2((checkCriticalElementIndex(0, sectionPoints.array.length) , castTo(sectionPoints.array[0], 8))), (checkCriticalElementIndex(0, otherPoints.array.length) , castTo(otherPoints.array[0], 8))); - $put_9(offsetMap.hashCodeMap, otherSection, offset); - } - } - if (allConnectedSections.size_0 != 0) { - p1 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1:0), 8); - for (i = 1; i < sectionPoints.array.length; i++) { - p2 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1 - i:i), 8); - allSectIter = $listIterator_2(allConnectedSections, 0); - while (allSectIter.currentNode != allSectIter.this$01.tail) { - otherSection = castTo($next_10(allSectIter), 202); - otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); - if (otherPoints.array.length <= i) { - $remove_24(allSectIter); - } - else { - p3 = $add_19(new KVector_2(castTo($get_11(otherPoints, reverse?otherPoints.array.length - 1 - i:i), 8)), castTo(getEntryValueOrNull($getEntry_0(offsetMap.hashCodeMap, otherSection)), 8)); - if (p2.x_0 != p3.x_0 || p2.y_0 != p3.y_0) { - dx2 = p2.x_0 - p1.x_0; - dy2 = p2.y_0 - p1.y_0; - dx3 = p3.x_0 - p1.x_0; - dy3 = p3.y_0 - p1.y_0; - dx3 * dy2 == dy3 * dx2 && (dx2 == 0 || isNaN(dx2)?dx2:dx2 < 0?-1:1) == (dx3 == 0 || isNaN(dx3)?dx3:dx3 < 0?-1:1) && (dy2 == 0 || isNaN(dy2)?dy2:dy2 < 0?-1:1) == (dy3 == 0 || isNaN(dy3)?dy3:dy3 < 0?-1:1)?($wnd.Math.abs(dx2) < $wnd.Math.abs(dx3) || $wnd.Math.abs(dy2) < $wnd.Math.abs(dy3)) && ($addNode_0(junctionPoints, p2, junctionPoints.tail.prev, junctionPoints.tail) , true):i > 1 && ($addNode_0(junctionPoints, p1, junctionPoints.tail.prev, junctionPoints.tail) , true); - $remove_24(allSectIter); - } - } - } - p1 = p2; - } - } - return junctionPoints; -} - -function effectiveMinSizeConstraintFor(node){ - var minSize, sizeConstraint, sizeOptions; - sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); - if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - sizeOptions = castTo($getProperty_0(node, NODE_SIZE_OPTIONS_6), 21); - minSize = new KVector_2(castTo($getProperty_0(node, NODE_SIZE_MINIMUM_5), 8)); - if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - return minSize; - } - else { - return new KVector; - } -} - -function getLabelsBounds(port){ - var bounds, currentLabelBounds, label_0, label$iterator; - bounds = null; - for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - currentLabelBounds = new ElkRectangle_0(label_0.getPosition().x_0, label_0.getPosition().y_0, label_0.getSize().x_0, label_0.getSize().y_0); - !bounds?(bounds = currentLabelBounds):$union(bounds, currentLabelBounds); - } - !bounds && (bounds = new ElkRectangle); - return bounds; -} - -function getPoints(section){ - var i, n, p1, p2, p3, points; - n = (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints).size_0 + 2; - points = new ArrayList_0(n); - $add_3(points, new KVector_1(section.startX, section.startY)); - $forEach_3(new StreamImpl(null, (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , new Spliterators$IteratorSpliterator(section.bendPoints, 16))), new ElkUtil$lambda$4$Type(points)); - $add_3(points, new KVector_1(section.endX, section.endY)); - i = 1; - while (i < points.array.length - 1) { - p1 = (checkCriticalElementIndex(i - 1, points.array.length) , castTo(points.array[i - 1], 8)); - p2 = (checkCriticalElementIndex(i, points.array.length) , castTo(points.array[i], 8)); - p3 = (checkCriticalElementIndex(i + 1, points.array.length) , castTo(points.array[i + 1], 8)); - p1.x_0 == p2.x_0 && p2.x_0 == p3.x_0 || p1.y_0 == p2.y_0 && p2.y_0 == p3.y_0?$remove_11(points, i):++i; - } - return points; -} - -function lambda$1_21(xoffset_0, yoffset_2, edge_2){ - var junctionPoints; - $forEach_3(new StreamImpl(null, (!edge_2.sections && (edge_2.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge_2, 6, 6)) , new Spliterators$IteratorSpliterator(edge_2.sections, 16))), new ElkUtil$lambda$2$Type(xoffset_0, yoffset_2)); - $forEach_3(new StreamImpl(null, (!edge_2.labels && (edge_2.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge_2, 1, 7)) , new Spliterators$IteratorSpliterator(edge_2.labels, 16))), new ElkUtil$lambda$3$Type(xoffset_0, yoffset_2)); - junctionPoints = castTo($getProperty_0(edge_2, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74); - !!junctionPoints && $offset_1(junctionPoints, xoffset_0, yoffset_2); -} - -function lambda$2_11(xoffset_0, yoffset_2, s_2){ - translate(s_2, xoffset_0, yoffset_2); -} - -function lambda$3_7(xoffset_0, yoffset_2, label_2){ - $setLocation_1(label_2, label_2.x_0 + xoffset_0, label_2.y_0 + yoffset_2); -} - -function lambda$4_8(points_0, bendPoint_1){ - return $add_3(points_0, new KVector_1(bendPoint_1.x_0, bendPoint_1.y_0)); -} - -function printElementPath(element, builder){ - var className, edge, identifier, label_0, label$iterator, sourceIter, targetIter, text_0; - if (instanceOf(element.eContainer_0(), 160)) { - printElementPath(castTo(element.eContainer_0(), 160), builder); - builder.string += ' > '; - } - else { - builder.string += 'Root '; - } - className = element.eClass_0().name_0; - $equals_5(className.substr(0, 3), 'Elk')?$append_11(builder, className.substr(3)):(builder.string += '' + className , builder); - identifier = element.getIdentifier(); - if (identifier) { - $append_11((builder.string += ' ' , builder), identifier); - return; - } - if (instanceOf(element, 354)) { - text_0 = castTo(element, 137).text_0; - if (text_0) { - $append_11((builder.string += ' ' , builder), text_0); - return; - } - } - for (label$iterator = new AbstractEList$EIterator(element.getLabels_0()); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - text_0 = label_0.text_0; - if (text_0) { - $append_11((builder.string += ' ' , builder), text_0); - return; - } - } - if (instanceOf(element, 352)) { - edge = castTo(element, 79); - !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); - if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0)) { - builder.string += ' ('; - sourceIter = new AbstractEList$EListIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); - while (sourceIter.cursor != sourceIter.this$01_2.size_1()) { - sourceIter.cursor > 0 && (builder.string += ', ' , builder); - printElementPath(castTo($doNext(sourceIter), 160), builder); - } - builder.string += ' -> '; - targetIter = new AbstractEList$EListIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); - while (targetIter.cursor != targetIter.this$01_2.size_1()) { - targetIter.cursor > 0 && (builder.string += ', ' , builder); - printElementPath(castTo($doNext(targetIter), 160), builder); - } - builder.string += ')'; - } - } -} - -function resizeNode_0(node){ - var direction, minEast, minNorth, minSouth, minWest, newHeight, newWidth, port, port$iterator, portConstraints, portSide, sizeConstraint; - sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); - if (sizeConstraint.isEmpty()) { - return null; - } - newWidth = 0; - newHeight = 0; - if (sizeConstraint.contains(($clinit_SizeConstraint() , PORTS_0))) { - portConstraints = castTo($getProperty_0(node, PORT_CONSTRAINTS_1), 98); - minNorth = 2; - minEast = 2; - minSouth = 2; - minWest = 2; - direction = !$getParent_2(node)?castTo($getProperty_0(node, DIRECTION_0), 103):castTo($getProperty_0($getParent_2(node), DIRECTION_0), 103); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); - if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { - portSide = calcPortSide_0(port, direction); - $setProperty_1(port, PORT_SIDE_0, portSide); - } - if (portConstraints == ($clinit_PortConstraints() , FIXED_POS)) { - switch (portSide.ordinal) { - case 1: - minNorth = $wnd.Math.max(minNorth, port.x_0 + port.width_0); - break; - case 2: - minEast = $wnd.Math.max(minEast, port.y_0 + port.height); - break; - case 3: - minSouth = $wnd.Math.max(minSouth, port.x_0 + port.width_0); - break; - case 4: - minWest = $wnd.Math.max(minWest, port.y_0 + port.height); - } - } - else { - switch (portSide.ordinal) { - case 1: - minNorth += port.width_0 + 2; - break; - case 2: - minEast += port.height + 2; - break; - case 3: - minSouth += port.width_0 + 2; - break; - case 4: - minWest += port.height + 2; - } - } - } - newWidth = $wnd.Math.max(minNorth, minSouth); - newHeight = $wnd.Math.max(minEast, minWest); - } - return resizeNode_1(node, newWidth, newHeight, true, true); -} - -function resizeNode_1(node, newWidth, newHeight, movePorts, moveLabels){ - var all, direction, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, newSize, oldSize, port, port$iterator, portSide, widthDiff, widthPercent, widthRatio; - oldSize = new KVector_1(node.width_0, node.height); - newSize = effectiveMinSizeConstraintFor(node); - newSize.x_0 = $wnd.Math.max(newSize.x_0, newWidth); - newSize.y_0 = $wnd.Math.max(newSize.y_0, newHeight); - widthRatio = newSize.x_0 / oldSize.x_0; - heightRatio = newSize.y_0 / oldSize.y_0; - widthDiff = newSize.x_0 - oldSize.x_0; - heightDiff = newSize.y_0 - oldSize.y_0; - if (movePorts) { - direction = !$getParent_2(node)?castTo($getProperty_0(node, ($clinit_CoreOptions() , DIRECTION_0)), 103):castTo($getProperty_0($getParent_2(node), ($clinit_CoreOptions() , DIRECTION_0)), 103); - fixedPorts = maskUndefined($getProperty_0(node, ($clinit_CoreOptions() , PORT_CONSTRAINTS_1))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); - if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { - portSide = calcPortSide_0(port, direction); - $setProperty_1(port, PORT_SIDE_0, portSide); - } - switch (portSide.ordinal) { - case 1: - fixedPorts || $setX_2(port, port.x_0 * widthRatio); - break; - case 2: - $setX_2(port, port.x_0 + widthDiff); - fixedPorts || $setY_3(port, port.y_0 * heightRatio); - break; - case 3: - fixedPorts || $setX_2(port, port.x_0 * widthRatio); - $setY_3(port, port.y_0 + heightDiff); - break; - case 4: - fixedPorts || $setY_3(port, port.y_0 * heightRatio); - } - } - } - $setDimensions_0(node, newSize.x_0, newSize.y_0); - if (moveLabels) { - for (label$iterator = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - midx = label_0.x_0 + label_0.width_0 / 2; - midy = label_0.y_0 + label_0.height / 2; - widthPercent = midx / oldSize.x_0; - heightPercent = midy / oldSize.y_0; - if (widthPercent + heightPercent >= 1) { - if (widthPercent - heightPercent > 0 && midy >= 0) { - $setX_2(label_0, label_0.x_0 + widthDiff); - $setY_3(label_0, label_0.y_0 + heightDiff * heightPercent); - } - else if (widthPercent - heightPercent < 0 && midx >= 0) { - $setX_2(label_0, label_0.x_0 + widthDiff * widthPercent); - $setY_3(label_0, label_0.y_0 + heightDiff); - } - } - } - } - $setProperty_1(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); - return new KVector_1(widthRatio, heightRatio); -} - -function toAbsolute(point, parent_0){ - var node; - node = parent_0; - while (node) { - $add_18(point, node.x_0, node.y_0); - node = $getParent_2(node); - } - return point; -} - -function toRelative(point, parent_0){ - var node; - node = parent_0; - while (node) { - $add_18(point, -node.x_0, -node.y_0); - node = $getParent_2(node); - } - return point; -} - -function translate(section, xoffset, yoffset){ - var bendPoint, bendPoint$iterator; - $setStartLocation(section, section.startX + xoffset, section.startY + yoffset); - for (bendPoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { - bendPoint = castTo($doNext(bendPoint$iterator), 469); - $set_10(bendPoint, bendPoint.x_0 + xoffset, bendPoint.y_0 + yoffset); - } - $setEndLocation(section, section.endX + xoffset, section.endY + yoffset); -} - -function translate_0(parent_0, xoffset, yoffset){ - var child, child$iterator; - for (child$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - $setLocation_1(child, child.x_0 + xoffset, child.y_0 + yoffset); - } - $forEach_0((!parent_0.containedEdges && (parent_0.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, parent_0, 12, 3)) , parent_0.containedEdges), new ElkUtil$lambda$1$Type(xoffset, yoffset)); -} - -function translate_1(parent_0, newSize, oldSize){ - var contentAlignment, xTranslate, yTranslate; - contentAlignment = castTo($getProperty_0(parent_0, ($clinit_CoreOptions() , CONTENT_ALIGNMENT_2)), 21); - xTranslate = 0; - yTranslate = 0; - newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(xTranslate = (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (xTranslate = newSize.x_0 - oldSize.x_0)); - newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(yTranslate = (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (yTranslate = newSize.y_0 - oldSize.y_0)); - translate_0(parent_0, xTranslate, yTranslate); -} - -function $apply_27(arg0){ - return $getLabels_1(castTo(arg0, 118)); -} - -function ElkUtil$lambda$0$Type(){ -} - -defineClass(935, 1, {}, ElkUtil$lambda$0$Type); -_.apply_0 = function apply_171(arg0){ - return $apply_27(arg0); -} -; -_.equals_0 = function equals_178(other){ - return this === other; -} -; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$0$Type', 935); -function ElkUtil$lambda$1$Type(xoffset_0, yoffset_2){ - this.xoffset_0 = xoffset_0; - this.yoffset_2 = yoffset_2; -} - -defineClass(936, 1, $intern_19, ElkUtil$lambda$1$Type); -_.accept = function accept_149(arg0){ - lambda$1_21(this.xoffset_0, this.yoffset_2, castTo(arg0, 79)); -} -; -_.xoffset_0 = 0; -_.yoffset_2 = 0; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$1$Type', 936); -function ElkUtil$lambda$2$Type(xoffset_0, yoffset_2){ - this.xoffset_0 = xoffset_0; - this.yoffset_2 = yoffset_2; -} - -defineClass(937, 1, $intern_19, ElkUtil$lambda$2$Type); -_.accept = function accept_150(arg0){ - lambda$2_11(this.xoffset_0, this.yoffset_2, castTo(arg0, 202)); -} -; -_.xoffset_0 = 0; -_.yoffset_2 = 0; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$2$Type', 937); -function ElkUtil$lambda$3$Type(xoffset_0, yoffset_2){ - this.xoffset_0 = xoffset_0; - this.yoffset_2 = yoffset_2; -} - -defineClass(938, 1, $intern_19, ElkUtil$lambda$3$Type); -_.accept = function accept_151(arg0){ - lambda$3_7(this.xoffset_0, this.yoffset_2, castTo(arg0, 137)); -} -; -_.xoffset_0 = 0; -_.yoffset_2 = 0; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$3$Type', 938); -function ElkUtil$lambda$4$Type(points_0){ - this.points_0 = points_0; -} - -defineClass(939, 1, $intern_19, ElkUtil$lambda$4$Type); -_.accept = function accept_152(arg0){ - lambda$4_8(this.points_0, castTo(arg0, 469)); -} -; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$4$Type', 939); -function $compareTo_20(this$static, x_0){ - return this$static.exclusiveLowerBound < doubleValue__D__devirtual$(x_0)?-1:1; -} - -function ExclusiveBounds$ExclusiveLowerBound(){ - this.exclusiveLowerBound = 0; -} - -defineClass(342, 1, {35:1, 342:1}, ExclusiveBounds$ExclusiveLowerBound); -_.compareTo_0 = function compareTo_21(x_0){ - return $compareTo_20(this, castTo(x_0, 236)); -} -; -_.equals_0 = function equals_179(obj){ - var other; - if (instanceOf(obj, 342)) { - other = castTo(obj, 342); - return this.exclusiveLowerBound == other.exclusiveLowerBound; - } - return false; -} -; -_.hashCode_1 = function hashCode_69(){ - return round_int(this.exclusiveLowerBound); -} -; -_.toString_0 = function toString_118(){ - return this.exclusiveLowerBound + ' (exclusive)'; -} -; -_.exclusiveLowerBound = 0; -var Lorg_eclipse_elk_core_util_ExclusiveBounds$ExclusiveLowerBound_2_classLit = createForClass('org.eclipse.elk.core.util', 'ExclusiveBounds/ExclusiveLowerBound', 342); -function $processEdge(edge){ - var bendPoints, edgeSection, edgeSection$iterator, elkEdgeSection, label_0, label$iterator, maxv, point, point$iterator, pos, sameHierarchy, sections, sourceParent, targetParent; - sourceParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); - targetParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))); - sameHierarchy = sourceParent == targetParent; - maxv = new KVector; - bendPoints = castTo($getProperty_0(edge, ($clinit_FixedLayouterOptions() , BEND_POINTS_0)), 74); - if (!!bendPoints && bendPoints.size_0 >= 2) { - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { - edgeSection = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); - $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection); - } - else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { - sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); - while (sections.cursor != sections.this$01_2.size_1()) { - $remove_36(sections); - } - } - applyVectorChain(bendPoints, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202)); - } - if (sameHierarchy) { - for (edgeSection$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); edgeSection$iterator.cursor != edgeSection$iterator.this$01_2.size_1();) { - edgeSection = castTo($doNext(edgeSection$iterator), 202); - for (point$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); point$iterator.cursor != point$iterator.this$01_2.size_1();) { - point = castTo($doNext(point$iterator), 469); - maxv.x_0 = $wnd.Math.max(maxv.x_0, point.x_0); - maxv.y_0 = $wnd.Math.max(maxv.y_0, point.y_0); - } - } - } - for (label$iterator = new AbstractEList$EIterator((!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - pos = castTo($getProperty_0(label_0, POSITION_3), 8); - !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); - if (sameHierarchy) { - maxv.x_0 = $wnd.Math.max(maxv.x_0, label_0.x_0 + label_0.width_0); - maxv.y_0 = $wnd.Math.max(maxv.y_0, label_0.y_0 + label_0.height); - } - } - return maxv; -} - -function FixedLayoutProvider(){ -} - -defineClass(1138, 209, $intern_96, FixedLayoutProvider); -_.layout = function layout_9(layoutNode, progressMonitor){ - var edge, edge$iterator, edge$iterator0, edgeRouting, junctionPoints, label_0, label$iterator, label$iterator0, maxv, maxx, maxy, minSize, newHeight, newWidth, node, node$iterator, node$iterator0, padding, port, port$iterator, portx, porty, pos; - $begin(progressMonitor, 'Fixed Layout', 1); - edgeRouting = castTo($getProperty_0(layoutNode, ($clinit_CoreOptions() , EDGE_ROUTING_0)), 218); - maxx = 0; - maxy = 0; - for (node$iterator0 = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { - node = castTo($doNext(node$iterator0), 33); - pos = castTo($getProperty_0(node, ($clinit_FixedLayouterOptions() , POSITION_3)), 8); - if (pos) { - $setLocation_1(node, pos.x_0, pos.y_0); - if (castTo($getProperty_0(node, NODE_SIZE_CONSTRAINTS_7), 174).contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - minSize = castTo($getProperty_0(node, NODE_SIZE_MINIMUM_6), 8); - minSize.x_0 > 0 && minSize.y_0 > 0 && resizeNode_1(node, minSize.x_0, minSize.y_0, true, true); - } - } - maxx = $wnd.Math.max(maxx, node.x_0 + node.width_0); - maxy = $wnd.Math.max(maxy, node.y_0 + node.height); - for (label$iterator0 = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator0), 137); - pos = castTo($getProperty_0(label_0, POSITION_3), 8); - !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); - maxx = $wnd.Math.max(maxx, node.x_0 + label_0.x_0 + label_0.width_0); - maxy = $wnd.Math.max(maxy, node.y_0 + label_0.y_0 + label_0.height); - } - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - pos = castTo($getProperty_0(port, POSITION_3), 8); - !!pos && $setLocation_1(port, pos.x_0, pos.y_0); - portx = node.x_0 + port.x_0; - porty = node.y_0 + port.y_0; - maxx = $wnd.Math.max(maxx, portx + port.width_0); - maxy = $wnd.Math.max(maxy, porty + port.height); - for (label$iterator = new AbstractEList$EIterator((!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - pos = castTo($getProperty_0(label_0, POSITION_3), 8); - !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); - maxx = $wnd.Math.max(maxx, portx + label_0.x_0 + label_0.width_0); - maxy = $wnd.Math.max(maxy, porty + label_0.y_0 + label_0.height); - } - } - for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { - edge = castTo($next_0(edge$iterator0), 79); - maxv = $processEdge(edge); - maxx = $wnd.Math.max(maxx, maxv.x_0); - maxy = $wnd.Math.max(maxy, maxv.y_0); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - if ($getParent_2(getSourceNode(edge)) != layoutNode) { - maxv = $processEdge(edge); - maxx = $wnd.Math.max(maxx, maxv.x_0); - maxy = $wnd.Math.max(maxy, maxv.y_0); - } - } - } - if (edgeRouting == ($clinit_EdgeRouting() , ORTHOGONAL)) { - for (node$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - junctionPoints = determineJunctionPoints(edge); - junctionPoints.size_0 == 0?$setProperty_1(edge, JUNCTION_POINTS_0, null):$setProperty_1(edge, JUNCTION_POINTS_0, junctionPoints); - } - } - } - if (!$booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_FixedLayouterOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_1))))) { - padding = castTo($getProperty_0(layoutNode, PADDING_7), 116); - newWidth = maxx + padding.left + padding.right; - newHeight = maxy + padding.top_0 + padding.bottom; - resizeNode_1(layoutNode, newWidth, newHeight, true, true); - } - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_core_util_FixedLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'FixedLayoutProvider', 1138); -function IndividualSpacings(){ -} - -function IndividualSpacings_0(other){ - (!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).putAll(!other.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):other.propertyMap); -} - -function getIndividualOrInherited_0(node, property){ - var individualSpacings, result; - result = null; - if (node.hasProperty(($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { - individualSpacings = castTo(node.getProperty(SPACING_INDIVIDUAL_0), 94); - individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); - } - result == null && !!node.getGraph() && (result = node.getGraph().getProperty(property)); - result == null && (result = $getDefault(property)); - return result; -} - -function lambda$0_37(entry_0){ - return castTo(entry_0.getKey(), 146).getId() + ':' + toString_40(entry_0.getValue()); -} - -defineClass(373, 134, {3:1, 414:1, 373:1, 94:1, 134:1}, IndividualSpacings, IndividualSpacings_0); -_.parse_0 = function parse_3(string){ - var e, option, optionData, optionString, optionString$array, optionString$index, optionString$max, options, value_0; - if (!string) { - return; - } - try { - options = $split_0(string, ';,;'); - for (optionString$array = options , optionString$index = 0 , optionString$max = optionString$array.length; optionString$index < optionString$max; ++optionString$index) { - optionString = optionString$array[optionString$index]; - option = $split_0(optionString, '\\:'); - optionData = $getOptionDataBySuffix(getInstance(), option[0]); - if (!optionData) { - throw toJs(new IllegalArgumentException_0('Invalid option id: ' + option[0])); - } - value_0 = $parseValue(optionData, option[1]); - if (value_0 == null) { - throw toJs(new IllegalArgumentException_0('Invalid option value: ' + option[1])); - } - value_0 == null?(!this.propertyMap && (this.propertyMap = new HashMap) , $remove_6(this.propertyMap, optionData)):(!this.propertyMap && (this.propertyMap = new HashMap) , $put_6(this.propertyMap, optionData, value_0)); - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - e = $e0; - throw toJs(new IllegalArgumentException_1(e)); - } - else - throw toJs($e0); - } -} -; -_.toString_0 = function toString_119(){ - var serialized; - serialized = castToString($collect_1($map_0((!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).entrySet_0().stream(), new IndividualSpacings$lambda$0$Type), of_3(new Collectors$lambda$15$Type, new Collectors$9methodref$add$Type, new Collectors$10methodref$merge$Type, new Collectors$11methodref$toString$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])))); - return serialized; -} -; -var Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings', 373); -function IndividualSpacings$lambda$0$Type(){ -} - -defineClass(971, 1, {}, IndividualSpacings$lambda$0$Type); -_.apply_0 = function apply_172(arg0){ - return lambda$0_37(castTo(arg0, 42)); -} -; -var Lorg_eclipse_elk_core_util_IndividualSpacings$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings/lambda$0$Type', 971); -function $fetch(this$static){ - if (this$static.instances.size_0 == 0) { - return this$static.factory.create_0(); - } - return $removeFirst_0(this$static.instances); -} - -function $release(this$static, obj){ - this$static.limit < 0 || this$static.instances.size_0 < this$static.limit?$addLast_0(this$static.instances, obj):this$static.factory.destroy(obj); -} - -function InstancePool(thefactory){ - this.instances = new LinkedList; - this.factory = thefactory; - this.limit = -1; -} - -defineClass(709, 1, {}, InstancePool); -_.limit = 0; -var Lorg_eclipse_elk_core_util_InstancePool_2_classLit = createForClass('org.eclipse.elk.core.util', 'InstancePool', 709); -function LoggedGraph(){ -} - -defineClass(1275, 1, {}, LoggedGraph); -var Lorg_eclipse_elk_core_util_LoggedGraph_2_classLit = createForClass('org.eclipse.elk.core.util', 'LoggedGraph', 1275); -function $clinit_LoggedGraph$Type(){ - $clinit_LoggedGraph$Type = emptyMethod; - ELK = new LoggedGraph$Type('ELK', 0); - JSON_0 = new LoggedGraph$Type('JSON', 1); - DOT = new LoggedGraph$Type('DOT', 2); - SVG = new LoggedGraph$Type('SVG', 3); -} - -function LoggedGraph$Type(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_110(name_0){ - $clinit_LoggedGraph$Type(); - return valueOf(($clinit_LoggedGraph$Type$Map() , $MAP_98), name_0); -} - -function values_116(){ - $clinit_LoggedGraph$Type(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]); -} - -defineClass(396, 22, {3:1, 35:1, 22:1, 396:1}, LoggedGraph$Type); -var DOT, ELK, JSON_0, SVG; -var Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit = createForEnum('org.eclipse.elk.core.util', 'LoggedGraph/Type', 396, Ljava_lang_Enum_2_classLit, values_116, valueOf_110); -function $clinit_LoggedGraph$Type$Map(){ - $clinit_LoggedGraph$Type$Map = emptyMethod; - $MAP_98 = createValueOfMap(($clinit_LoggedGraph$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]))); -} - -var $MAP_98; -function Pair(thefirst, thesecond){ - this.first = thefirst; - this.second = thesecond; -} - -defineClass(46, 1, {20:1, 46:1}, Pair); -_.forEach_0 = function forEach_36(action){ - $forEach_0(this, action); -} -; -_.equals_0 = function equals_180(obj){ - var firstEqual, other, secondEqual; - if (instanceOf(obj, 46)) { - other = castTo(obj, 46); - firstEqual = this.first == null?other.first == null:equals_Ljava_lang_Object__Z__devirtual$(this.first, other.first); - secondEqual = this.second == null?other.second == null:equals_Ljava_lang_Object__Z__devirtual$(this.second, other.second); - return firstEqual && secondEqual; - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_70(){ - var first1, first2, firstCode, second1, second2, secondCode; - firstCode = this.first == null?0:hashCode__I__devirtual$(this.first); - first1 = firstCode & $intern_46; - first2 = firstCode & -65536; - secondCode = this.second == null?0:hashCode__I__devirtual$(this.second); - second1 = secondCode & $intern_46; - second2 = secondCode & -65536; - return first1 ^ second2 >> 16 & $intern_46 | first2 ^ second1 << 16; -} -; -_.iterator_0 = function iterator_78(){ - return new Pair$1(this); -} -; -_.toString_0 = function toString_120(){ - return this.first == null && this.second == null?'pair(null,null)':this.first == null?'pair(null,' + toString_40(this.second) + ')':this.second == null?'pair(' + toString_40(this.first) + ',null)':'pair(' + toString_40(this.first) + ',' + toString_40(this.second) + ')'; -} -; -var Lorg_eclipse_elk_core_util_Pair_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair', 46); -function Pair$1(this$0){ - this.this$01 = this$0; -} - -defineClass(983, 1, $intern_6, Pair$1); -_.forEachRemaining = function forEachRemaining_51(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_40(){ - return !this.visitedSecond && (!this.visitedFirst && this.this$01.first != null || this.this$01.second != null); -} -; -_.next_1 = function next_41(){ - if (!this.visitedSecond && !this.visitedFirst && this.this$01.first != null) { - this.visitedFirst = true; - return this.this$01.first; - } - else if (!this.visitedSecond && this.this$01.second != null) { - this.visitedSecond = true; - return this.this$01.second; - } - throw toJs(new NoSuchElementException); -} -; -_.remove = function remove_96(){ - this.visitedSecond && this.this$01.second != null?(this.this$01.second = null):this.visitedFirst && this.this$01.first != null && (this.this$01.first = null); - throw toJs(new IllegalStateException); -} -; -_.visitedFirst = false; -_.visitedSecond = false; -var Lorg_eclipse_elk_core_util_Pair$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair/1', 983); -function Quadruple(a, b, c, d){ - this.first = a; - this.second = b; - this.third = c; - this.fourth = d; -} - -defineClass(448, 1, {448:1}, Quadruple); -_.equals_0 = function equals_181(obj){ - return equals_57(this.first, castTo(obj, 448).first) && equals_57(this.second, castTo(obj, 448).second) && equals_57(this.third, castTo(obj, 448).third) && equals_57(this.fourth, castTo(obj, 448).fourth); -} -; -_.hashCode_1 = function hashCode_71(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.first, this.second, this.third, this.fourth])); -} -; -_.toString_0 = function toString_121(){ - return '(' + this.first + ', ' + this.second + ', ' + this.third + ', ' + this.fourth + ')'; -} -; -var Lorg_eclipse_elk_core_util_Quadruple_2_classLit = createForClass('org.eclipse.elk.core.util', 'Quadruple', 448); -function $randomize(edge, random, drawWidth, drawHeight){ - var bendPoint, bendsNum, edgeSection, edgeSection0, elkBendPoint, elkEdgeSection, i, maxRand, randx, randy, sections, sourceHeight, sourcePX, sourcePY, sourcePort, sourceShape, sourceWidth, sourceX, sourceY, targetHeight, targetPX, targetPY, targetPort, targetShape, targetWidth, targetX, targetY, totalDist, x_0, xdiff, xincr, y_0, ydiff, yincr; - sourceShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); - sourceX = sourceShape.getX(); - sourceY = sourceShape.getY(); - sourceWidth = sourceShape.getWidth() / 2; - sourceHeight = sourceShape.getHeight() / 2; - if (instanceOf(sourceShape, 186)) { - sourcePort = castTo(sourceShape, 118); - sourceX += $getParent_3(sourcePort).x_0; - sourceX += $getParent_3(sourcePort).x_0; - } - sourceX += sourceWidth; - sourceY += sourceHeight; - targetShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); - targetX = targetShape.getX(); - targetY = targetShape.getY(); - targetWidth = targetShape.getWidth() / 2; - targetHeight = targetShape.getHeight() / 2; - if (instanceOf(targetShape, 186)) { - targetPort = castTo(targetShape, 118); - targetX += $getParent_3(targetPort).x_0; - targetX += $getParent_3(targetPort).x_0; - } - targetX += targetWidth; - targetY += targetHeight; - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { - edgeSection0 = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); - $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection0); - } - else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { - sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); - while (sections.cursor != sections.this$01_2.size_1()) { - $remove_36(sections); - } - } - edgeSection = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - sourcePX = targetX; - targetX > sourceX + sourceWidth?(sourcePX = sourceX + sourceWidth):targetX < sourceX - sourceWidth && (sourcePX = sourceX - sourceWidth); - sourcePY = targetY; - targetY > sourceY + sourceHeight?(sourcePY = sourceY + sourceHeight):targetY < sourceY - sourceHeight && (sourcePY = sourceY - sourceHeight); - sourcePX > sourceX - sourceWidth && sourcePX < sourceX + sourceWidth && sourcePY > sourceY - sourceHeight && sourcePY < sourceY + sourceHeight && (sourcePX = sourceX + sourceWidth); - $setStartX(edgeSection, sourcePX); - $setStartY(edgeSection, sourcePY); - targetPX = sourceX; - sourceX > targetX + targetWidth?(targetPX = targetX + targetWidth):sourceX < targetX - targetWidth && (targetPX = targetX - targetWidth); - targetPY = sourceY; - sourceY > targetY + targetHeight?(targetPY = targetY + targetHeight):sourceY < targetY - targetHeight && (targetPY = targetY - targetHeight); - targetPX > targetX - targetWidth && targetPX < targetX + targetWidth && targetPY > targetY - targetHeight && targetPY < targetY + targetHeight && (targetPY = targetY + targetHeight); - $setEndX(edgeSection, targetPX); - $setEndY(edgeSection, targetPY); - $clear_13((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); - bendsNum = $nextInt(random, 5); - sourceShape == targetShape && ++bendsNum; - xdiff = targetPX - sourcePX; - ydiff = targetPY - sourcePY; - totalDist = $wnd.Math.sqrt(xdiff * xdiff + ydiff * ydiff); - maxRand = totalDist * 0.20000000298023224; - xincr = xdiff / (bendsNum + 1); - yincr = ydiff / (bendsNum + 1); - x_0 = sourcePX; - y_0 = sourcePY; - for (i = 0; i < bendsNum; i++) { - x_0 += xincr; - y_0 += yincr; - randx = x_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; - randx < 0?(randx = 1):randx > drawWidth && (randx = drawWidth - 1); - randy = y_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; - randy < 0?(randy = 1):randy > drawHeight && (randy = drawHeight - 1); - bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); - $setX_1(bendPoint, randx); - $setY_2(bendPoint, randy); - $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); - } -} - -function $randomize_0(parent_0, random, aspectRatio, spacing, padding){ - var areaSqrt, drawArea, drawHeight, drawWidth, edge, edge$iterator, height, m, maxHeight, maxWidth, n, node, node$iterator, node$iterator0, nodesArea, source, source$iterator, totalHeight, totalWidth, width_0, x_0, y_0; - nodesArea = 0; - maxWidth = 0; - maxHeight = 0; - m = 1; - for (node$iterator0 = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { - node = castTo($doNext(node$iterator0), 33); - m += size_24(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - width_0 = node.width_0; - maxWidth = $wnd.Math.max(maxWidth, width_0); - height = node.height; - maxHeight = $wnd.Math.max(maxHeight, height); - nodesArea += width_0 * height; - } - n = (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; - drawArea = nodesArea + 2 * spacing * spacing * m * n; - areaSqrt = $wnd.Math.sqrt(drawArea); - drawWidth = $wnd.Math.max(areaSqrt * aspectRatio, maxWidth); - drawHeight = $wnd.Math.max(areaSqrt / aspectRatio, maxHeight); - for (node$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - x_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawWidth - node.width_0); - y_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawHeight - node.height); - $setX_2(node, x_0); - $setY_3(node, y_0); - } - totalWidth = drawWidth + (padding.left + padding.right); - totalHeight = drawHeight + (padding.top_0 + padding.bottom); - for (source$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { - source = castTo($doNext(source$iterator), 33); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - $isHierarchical(edge) || $randomize(edge, random, totalWidth, totalHeight); - } - } - totalWidth += padding.left + padding.right; - totalHeight += padding.top_0 + padding.bottom; - resizeNode_1(parent_0, totalWidth, totalHeight, false, true); -} - -function RandomLayoutProvider(){ -} - -defineClass(1126, 209, $intern_96, RandomLayoutProvider); -_.layout = function layout_10(parentNode, progressMonitor){ - var aspectRatio, padding, random, randomSeed, spacing; - $begin(progressMonitor, 'Random Layout', 1); - if ((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0 == 0) { - $done_0(progressMonitor); - return; - } - randomSeed = castTo($getProperty_0(parentNode, ($clinit_RandomLayouterOptions() , RANDOM_SEED_2)), 19); - !!randomSeed && randomSeed.value_0 != 0?(random = new Random_0(randomSeed.value_0)):(random = new Random); - aspectRatio = $floatValue(castToDouble($getProperty_0(parentNode, ASPECT_RATIO_6))); - spacing = $floatValue(castToDouble($getProperty_0(parentNode, SPACING_NODE_NODE_7))); - padding = castTo($getProperty_0(parentNode, PADDING_8), 116); - $randomize_0(parentNode, random, aspectRatio, spacing, padding); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_core_util_RandomLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'RandomLayoutProvider', 1126); -function $clinit_ElkGraphAdapters(){ - $clinit_ElkGraphAdapters = emptyMethod; - DEFAULT_PORTLIST_SORTER_0 = new ElkGraphAdapters$PortComparator; -} - -var DEFAULT_PORTLIST_SORTER_0; -function $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter = emptyMethod; - OFFSET_PROXY = new Property_2(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0), 0); -} - -defineClass(553, 1, {}); -_.getPosition = function getPosition_1(){ - return new KVector_1(this.element.x_0, this.element.y_0); -} -; -_.getProperty = function getProperty_2(prop){ - if ($equals_10(prop, ($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { - return $getProperty_0(this.element, OFFSET_PROXY); - } - return $getProperty_0(this.element, prop); -} -; -_.getSize = function getSize_1(){ - return new KVector_1(this.element.width_0, this.element.height); -} -; -_.getVolatileId = function getVolatileId_1(){ - return this.id_0; -} -; -_.hasProperty = function hasProperty_2(prop){ - return $hasProperty_0(this.element, prop); -} -; -_.setPosition = function setPosition_1(pos){ - $setX_2(this.element, pos.x_0); - $setY_3(this.element, pos.y_0); -} -; -_.setSize = function setSize_1(size_0){ - $setWidth_0(this.element, size_0.x_0); - $setHeight_0(this.element, size_0.y_0); -} -; -_.setVolatileId = function setVolatileId_1(volatileId){ - this.id_0 = volatileId; -} -; -_.id_0 = 0; -var OFFSET_PROXY; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$AbstractElkGraphElementAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/AbstractElkGraphElementAdapter', 553); -function ElkGraphAdapters$ElkEdgeAdapter(edge){ - this.element = edge; -} - -defineClass(554, 1, {839:1}, ElkGraphAdapters$ElkEdgeAdapter); -_.getLabels = function getLabels_2(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithExpectedSize($getLabels_1(this.element).size_0); - for (l$iterator = new AbstractEList$EIterator($getLabels_1(this.element)); l$iterator.cursor != l$iterator.this$01_2.size_1();) { - l = castTo($doNext(l$iterator), 137); - $add_3(this.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.labelAdapters = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkEdgeAdapter', 554); -function $getNodes(this$static){ - var n, n$iterator; - if (!this$static.childNodes) { - this$static.childNodes = newArrayListWithExpectedSize($getChildren(castTo(this$static.element, 33)).size_0); - for (n$iterator = new AbstractEList$EIterator($getChildren(castTo(this$static.element, 33))); n$iterator.cursor != n$iterator.this$01_2.size_1();) { - n = castTo($doNext(n$iterator), 33); - $add_3(this$static.childNodes, new ElkGraphAdapters$ElkNodeAdapter(this$static, n)); - } - } - return this$static.childNodes; -} - -function ElkGraphAdapters$ElkGraphAdapter(node){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); - this.element = node; -} - -defineClass(301, 553, {}, ElkGraphAdapters$ElkGraphAdapter); -_.getNodes = function getNodes_0(){ - return $getNodes(this); -} -; -_.childNodes = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkGraphAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkGraphAdapter', 301); -function ElkGraphAdapters$ElkLabelAdapter(label_0){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); - this.element = label_0; -} - -defineClass(630, 553, {181:1}, ElkGraphAdapters$ElkLabelAdapter); -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkLabelAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkLabelAdapter', 630); -function $getLabels(this$static){ - var l, l$iterator; - if (!this$static.labelAdapters) { - this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 33).getLabels_0().size_0); - for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 33).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { - l = castTo($doNext(l$iterator), 137); - $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); - } - } - return this$static.labelAdapters; -} - -function $getPorts_2(this$static){ - var p, p$iterator; - if (!this$static.portAdapters) { - this$static.portAdapters = newArrayListWithExpectedSize($getPorts_3(castTo(this$static.element, 33)).size_0); - for (p$iterator = new AbstractEList$EIterator($getPorts_3(castTo(this$static.element, 33))); p$iterator.cursor != p$iterator.this$01_2.size_1();) { - p = castTo($doNext(p$iterator), 118); - $add_3(this$static.portAdapters, new ElkGraphAdapters$ElkPortAdapter(p)); - } - } - return this$static.portAdapters; -} - -function $sortPortList_1(this$static, comparator){ - $isOrderFixed(castTo(castTo(this$static.element, 33).getProperty(($clinit_CoreOptions() , PORT_CONSTRAINTS_1)), 98)) && sort_13($getPorts_3(castTo(this$static.element, 33)), comparator); -} - -function ElkGraphAdapters$ElkNodeAdapter(parent_0, node){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); - this.element = node; - this.parentGraphAdapter = parent_0; -} - -defineClass(629, 553, {680:1}, ElkGraphAdapters$ElkNodeAdapter); -_.getLabels = function getLabels_3(){ - return $getLabels(this); -} -; -_.getMargin = function getMargin_0(){ - var margins; - return margins = castTo($getProperty_0(this.element, ($clinit_CoreOptions() , MARGINS_0)), 142) , !margins && (margins = new ElkMargin) , margins; -} -; -_.getPorts = function getPorts_0(){ - return $getPorts_2(this); -} -; -_.setMargin = function setMargin_0(margin){ - var newMargin; - newMargin = new ElkMargin_2(margin); - $setProperty_1(this.element, ($clinit_CoreOptions() , MARGINS_0), newMargin); -} -; -_.setPadding = function setPadding_0(padding){ - $setProperty_1(this.element, ($clinit_CoreOptions() , PADDING_6), new ElkPadding_1(padding)); -} -; -_.getGraph = function getGraph_0(){ - return this.parentGraphAdapter; -} -; -_.getIncomingEdges = function getIncomingEdges_1(){ - var e, e$iterator; - if (!this.incomingEdgeAdapters) { - this.incomingEdgeAdapters = new ArrayList; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 79); - $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.incomingEdgeAdapters; -} -; -_.getOutgoingEdges = function getOutgoingEdges_1(){ - var e, e$iterator; - if (!this.outgoingEdgeAdapters) { - this.outgoingEdgeAdapters = new ArrayList; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 79); - $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.outgoingEdgeAdapters; -} -; -_.isCompoundNode = function isCompoundNode_0(){ - return $getChildren(castTo(this.element, 33)).size_0 != 0 || $booleanValue(castToBoolean(castTo(this.element, 33).getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); -} -; -_.sortPortList = function sortPortList_0(){ - $sortPortList_1(this, ($clinit_ElkGraphAdapters() , DEFAULT_PORTLIST_SORTER_0)); -} -; -_.incomingEdgeAdapters = null; -_.labelAdapters = null; -_.outgoingEdgeAdapters = null; -_.parentGraphAdapter = null; -_.portAdapters = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkNodeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkNodeAdapter', 629); -function $getLabels_0(this$static){ - var l, l$iterator; - if (!this$static.labelAdapters) { - this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 118).getLabels_0().size_0); - for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 118).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { - l = castTo($doNext(l$iterator), 137); - $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); - } - } - return this$static.labelAdapters; -} - -function ElkGraphAdapters$ElkPortAdapter(port){ - this.element = port; -} - -defineClass(1266, 553, {838:1}, ElkGraphAdapters$ElkPortAdapter); -_.getLabels = function getLabels_4(){ - return $getLabels_0(this); -} -; -_.getIncomingEdges = function getIncomingEdges_2(){ - var e, e$iterator; - if (!this.incomingEdgeAdapters) { - this.incomingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getIncomingEdges_0().size_0); - for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { - e = castTo($doNext(e$iterator), 79); - $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.incomingEdgeAdapters; -} -; -_.getOutgoingEdges = function getOutgoingEdges_2(){ - var e, e$iterator; - if (!this.outgoingEdgeAdapters) { - this.outgoingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getOutgoingEdges_0().size_0); - for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { - e = castTo($doNext(e$iterator), 79); - $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.outgoingEdgeAdapters; -} -; -_.getSide = function getSide_0(){ - return castTo(castTo(this.element, 118).getProperty(($clinit_CoreOptions() , PORT_SIDE_0)), 61); -} -; -_.hasCompoundConnections = function hasCompoundConnections_0(){ - var edge, edge$iterator, edge$iterator0, node, source, source$iterator, target, target$iterator; - node = $getParent_3(castTo(this.element, 118)); - for (edge$iterator0 = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { - edge = castTo($doNext(edge$iterator0), 79); - for (target$iterator = new AbstractEList$EIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); target$iterator.cursor != target$iterator.this$01_2.size_1();) { - target = castTo($doNext(target$iterator), 82); - if (isDescendant_0(connectableShapeToNode(target), node)) { - return true; - } - else if (connectableShapeToNode(target) == node && $booleanValue(castToBoolean($getProperty_0(edge, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_YO_0))))) { - return true; - } - } - } - for (edge$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { - edge = castTo($doNext(edge$iterator), 79); - for (source$iterator = new AbstractEList$EIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { - source = castTo($doNext(source$iterator), 82); - if (isDescendant_0(connectableShapeToNode(source), node)) { - return true; - } - } - } - return false; -} -; -_.incomingEdgeAdapters = null; -_.labelAdapters = null; -_.outgoingEdgeAdapters = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkPortAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkPortAdapter', 1266); -function $compare_25(port1, port2){ - var index1, index2, indexDifference, ordinalDifference; - ordinalDifference = castTo($getProperty_0(port1, ($clinit_CoreOptions() , PORT_SIDE_0)), 61).ordinal - castTo($getProperty_0(port2, PORT_SIDE_0), 61).ordinal; - if (ordinalDifference != 0) { - return ordinalDifference; - } - index1 = castTo($getProperty_0(port1, PORT_INDEX_0), 19); - index2 = castTo($getProperty_0(port2, PORT_INDEX_0), 19); - if (!!index1 && !!index2) { - indexDifference = index1.value_0 - index2.value_0; - if (indexDifference != 0) { - return indexDifference; - } - } - switch (castTo($getProperty_0(port1, PORT_SIDE_0), 61).ordinal) { - case 1: - return compare_4(port1.x_0, port2.x_0); - case 2: - return compare_4(port1.y_0, port2.y_0); - case 3: - return compare_4(port2.x_0, port1.x_0); - case 4: - return compare_4(port2.y_0, port1.y_0); - default:throw toJs(new IllegalStateException_0('Port side is undefined')); - } -} - -function ElkGraphAdapters$PortComparator(){ -} - -defineClass(1267, 1, $intern_88, ElkGraphAdapters$PortComparator); -_.compare_1 = function compare_86(port1, port2){ - return $compare_25(castTo(port1, 118), castTo(port2, 118)); -} -; -_.equals_0 = function equals_182(other){ - return this === other; -} -; -_.reversed = function reversed_78(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/PortComparator', 1267); -var Lorg_eclipse_emf_ecore_EObject_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EObject'); -var Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph', 'EMapPropertyHolder'); -var Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkBendPoint'); -var Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkGraphElement'); -var Lorg_eclipse_elk_graph_ElkShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkShape'); -var Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkConnectableShape'); -var Lorg_eclipse_elk_graph_ElkEdge_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdge'); -var Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdgeSection'); -var Lorg_eclipse_emf_ecore_EModelElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EModelElement'); -var Lorg_eclipse_emf_ecore_EFactory_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EFactory'); -function $clinit_ElkGraphFactory(){ - $clinit_ElkGraphFactory = emptyMethod; - eINSTANCE = init_1(); -} - -var eINSTANCE; -var Lorg_eclipse_emf_ecore_ENamedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ENamedElement'); -var Lorg_eclipse_emf_ecore_EPackage_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EPackage'); -function $clinit_ElkGraphPackage(){ - $clinit_ElkGraphPackage = emptyMethod; - eINSTANCE_0 = init_2(); -} - -var eINSTANCE_0; -function $clinit_ElkGraphPackage$Literals(){ - $clinit_ElkGraphPackage$Literals = emptyMethod; - $clinit_ElkGraphPackage(); - EMAP_PROPERTY_HOLDER = eINSTANCE_0.eMapPropertyHolderEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.eMapPropertyHolderEClass), 0), 18); - ELK_GRAPH_ELEMENT = eINSTANCE_0.elkGraphElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 1), 34); - ELK_SHAPE = eINSTANCE_0.elkShapeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 3), 34); - ELK_LABEL = eINSTANCE_0.elkLabelEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 1), 34); - ELK_CONNECTABLE_SHAPE = eINSTANCE_0.elkConnectableShapeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 1), 18); - ELK_NODE = eINSTANCE_0.elkNodeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 4), 34); - ELK_PORT = eINSTANCE_0.elkPortEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPortEClass), 0), 18); - ELK_EDGE = eINSTANCE_0.elkEdgeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 4), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 5), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 6), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 7), 34); - ELK_BEND_POINT = eINSTANCE_0.elkBendPointEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 1), 34); - ELK_EDGE_SECTION = eINSTANCE_0.elkEdgeSectionEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 5), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 6), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 7), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 8), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 9), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 10), 34); - ELK_PROPERTY_TO_VALUE_MAP_ENTRY = eINSTANCE_0.elkPropertyToValueMapEntryEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 1), 34); -} - -var ELK_BEND_POINT, ELK_CONNECTABLE_SHAPE, ELK_EDGE, ELK_EDGE_SECTION, ELK_GRAPH_ELEMENT, ELK_LABEL, ELK_NODE, ELK_PORT, ELK_PROPERTY_TO_VALUE_MAP_ENTRY, ELK_SHAPE, EMAP_PROPERTY_HOLDER; -var Lorg_eclipse_elk_graph_ElkLabel_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkLabel'); -var Lorg_eclipse_elk_graph_ElkNode_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkNode'); -var Lorg_eclipse_elk_graph_ElkPort_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkPort'); -function $eNotify(this$static, notification){ - var eAdapters, i, size_0; - eAdapters = this$static.eBasicAdapterArray(); - if (eAdapters != null && this$static.eDeliver()) { - for (i = 0 , size_0 = eAdapters.length; i < size_0; ++i) { - eAdapters[i].notifyChanged(notification); - } - } -} - -defineClass(90, 1, $intern_133); -_.eBasicAdapterArray = function eBasicAdapterArray(){ - this.eBasicAdapters(); - return null; -} -; -_.eBasicAdapters = function eBasicAdapters(){ - return null; -} -; -_.eBasicHasAdapters = function eBasicHasAdapters(){ - return this.eBasicAdapters() , false; -} -; -_.eDeliver = function eDeliver(){ - return false; -} -; -_.eNotify = function eNotify(notification){ - $eNotify(this, notification); -} -; -var Lorg_eclipse_emf_common_notify_impl_BasicNotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'BasicNotifierImpl', 90); -function $eAttribute(eClass, name_0){ - var eStructuralFeature; - eStructuralFeature = $getEStructuralFeature_0(eClass, name_0); - if (instanceOf(eStructuralFeature, 322)) { - return castTo(eStructuralFeature, 34); - } - throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid attribute")); -} - -function $eBasicSetContainer(this$static, newContainer, newContainerFeatureID, msgs){ - var newResource, notification, oldContainer, oldContainerFeatureID, oldResource; - oldContainer = this$static.eInternalContainer(); - oldResource = this$static.eDirectResource(); - newResource = null; - if (oldResource) { - if (!!newContainer && (eContainmentFeature(this$static, newContainer, newContainerFeatureID).eFlags & $intern_63) == 0) { - msgs = $basicRemove_0(oldResource.getContents(), this$static, msgs); - this$static.eSetDirectResource(null); - newResource = newContainer.eInternalResource(); - } - else { - oldResource = null; - } - } - else { - !!oldContainer && (oldResource = oldContainer.eInternalResource()); - !!newContainer && (newResource = newContainer.eInternalResource()); - } - oldResource != newResource && !!oldResource && oldResource.detached(this$static); - oldContainerFeatureID = this$static.eContainerFeatureID_0(); - this$static.eBasicSetContainer(newContainer, newContainerFeatureID); - oldResource != newResource && !!newResource && newResource.attached(this$static); - if (this$static.eBasicHasAdapters() && this$static.eDeliver()) { - if (!!oldContainer && oldContainerFeatureID >= 0 && oldContainerFeatureID != newContainerFeatureID) { - notification = new ENotificationImpl_1(this$static, 1, oldContainerFeatureID, oldContainer, null); - !msgs?(msgs = notification):msgs.add_5(notification); - } - if (newContainerFeatureID >= 0) { - notification = new ENotificationImpl_1(this$static, 1, newContainerFeatureID, oldContainerFeatureID == newContainerFeatureID?oldContainer:null, newContainer); - !msgs?(msgs = notification):msgs.add_5(notification); - } - } - return msgs; -} - -function $eContainer(this$static){ - var eContainerFeatureID, eContainerFeatureID0, notificationChain, resolved, result; - result = this$static.eInternalContainer(); - if (result) { - if (result.eIsProxy()) { - resolved = $eResolveProxy(this$static, result); - if (resolved != result) { - eContainerFeatureID0 = this$static.eContainerFeatureID_0(); - notificationChain = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(null):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, null)); - this$static.eBasicSetContainer(castTo(resolved, 49), eContainerFeatureID0); - !!notificationChain && notificationChain.dispatch_0(); - this$static.eBasicHasAdapters() && this$static.eDeliver() && eContainerFeatureID0 > -1 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, eContainerFeatureID0, result, resolved)); - return resolved; - } - } - } - return result; -} - -function $eDynamicGet(this$static, dynamicFeatureID, eFeature, resolve, coreType){ - return dynamicFeatureID < 0?$eOpenGet(this$static, eFeature, resolve):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); -} - -function $eDynamicIsSet(this$static, dynamicFeatureID, eFeature){ - return dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); -} - -function $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue){ - if (dynamicFeatureID < 0) { - $eOpenSet(this$static, eFeature, newValue); - } - else { - if (!eFeature.isChangeable()) { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - castTo(eFeature, 66).getSettingDelegate().dynamicSet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, newValue); - } -} - -function $eDynamicUnset(this$static, dynamicFeatureID, eFeature){ - if (dynamicFeatureID < 0) { - $eOpenUnset(this$static, eFeature); - } - else { - if (!eFeature.isChangeable()) { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - castTo(eFeature, 66).getSettingDelegate().dynamicUnset_0(this$static, this$static.eSettings_0(), dynamicFeatureID); - } -} - -function $eGet(this$static, featureID0, resolve, coreType){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve)):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); -} - -function $eGet_0(this$static, eFeature){ - var featureID; - return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, eFeature, true); -} - -function $eGet_1(this$static, eFeature, resolve){ - var featureID; - return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve); -} - -function $eGet_2(this$static, eFeature){ - var featureID; - featureID = $getFeatureID(this$static.eClass, eFeature); - return featureID >= 0?$eGet(this$static, featureID, true, true):$eOpenGet(this$static, eFeature, true); -} - -function $eInternalResource(this$static){ - var count, eContainer, result; - result = this$static.eDirectResource(); - if (!result) { - count = 0; - for (eContainer = this$static.eInternalContainer(); eContainer; eContainer = eContainer.eInternalContainer()) { - if (++count > $intern_66) { - return eContainer.eInternalResource(); - } - result = eContainer.eDirectResource(); - if (!!result || eContainer == this$static) { - break; - } - } - } - return result; -} - -function $eInverseAdd(this$static, otherEnd, featureID, msgs){ - var eContainerFeatureID; - if (featureID >= 0) { - return this$static.eInverseAdd_0(otherEnd, featureID, msgs); - } - else { - !!this$static.eInternalContainer() && (msgs = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(msgs):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - return this$static.eBasicSetContainer_0(otherEnd, featureID, msgs); - } -} - -function $eInverseRemove(this$static, otherEnd, featureID, msgs){ - return featureID >= 0?this$static.eInverseRemove_0(otherEnd, featureID, msgs):this$static.eBasicSetContainer_0(null, featureID, msgs); -} - -function $eIsSet(this$static, featureID0){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature)):dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); -} - -function $eIsSet_0(this$static, eFeature){ - var featureID; - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - return featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature); -} - -function $eNotificationRequired(this$static){ - return this$static.eBasicHasAdapters() && this$static.eDeliver(); -} - -function $eObjectForURIFragmentPredicate(this$static, predicate, eReference){ - var eAttribute, eDataType, eFactory, eReferenceType, end, featureMapEntries, i, index_0, length_0, values; - featureMapEntries = new ArrayList; - length_0 = predicate.length; - eReferenceType = $getEReferenceType(eReference); - for (i = 0; i < length_0; ++i) { - index_0 = $indexOf_2(predicate, fromCodePoint(61), i); - eAttribute = $eAttribute(eReferenceType, predicate.substr(i, index_0 - i)); - eDataType = $getEAttributeType(eAttribute); - eFactory = eDataType.getEPackage().getEFactoryInstance(); - switch ($charAt(predicate, ++index_0)) { - case 39: - { - end = $indexOf_0(predicate, 39, ++index_0); - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); - i = end + 1; - break; - } - - case 34: - { - end = $indexOf_0(predicate, 34, ++index_0); - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); - i = end + 1; - break; - } - - case 91: - { - values = new ArrayList; - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, values)); - LOOP: for (;;) { - switch ($charAt(predicate, ++index_0)) { - case 39: - { - end = $indexOf_0(predicate, 39, ++index_0); - $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); - index_0 = end + 1; - break; - } - - case 34: - { - end = $indexOf_0(predicate, 34, ++index_0); - $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); - index_0 = end + 1; - break; - } - - case 110: - { - ++index_0; - if (predicate.indexOf('ull', index_0) == index_0) { - values.array[values.array.length] = null; - } - else { - throw toJs(new RuntimeException_0('Expecting null')); - } - index_0 += 3; - break; - } - - } - if (index_0 < length_0) { - switch (checkCriticalStringElementIndex(index_0, predicate.length) , predicate.charCodeAt(index_0)) { - case 44: - { - break; - } - - case 93: - { - break LOOP; - } - - default:{ - throw toJs(new RuntimeException_0('Expecting , or ]')); - } - - } - } - else { - break; - } - } - i = index_0 + 1; - break; - } - - case 110: - { - ++index_0; - if (predicate.indexOf('ull', index_0) == index_0) { - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, null)); - } - else { - throw toJs(new RuntimeException_0('Expecting null')); - } - i = index_0 + 3; - break; - } - - } - if (i < length_0) { - checkCriticalStringElementIndex(i, predicate.length); - if (predicate.charCodeAt(i) != 44) { - throw toJs(new RuntimeException_0('Expecting ,')); - } - } - else { - break; - } - } - return $eObjectForURIFragmentPredicate_0(this$static, featureMapEntries, eReference); -} - -function $eObjectForURIFragmentPredicate_0(this$static, predicate, eReference){ - var actualValue, eObject, eObject$iterator, entry, entryFeature, entryValue, featureID, i, list, size_0; - size_0 = predicate.array.length; - list = (featureID = this$static.eDerivedStructuralFeatureID_0(eReference) , castTo(featureID >= 0?this$static.eGet(featureID, false, true):$eOpenGet(this$static, eReference, false), 58)); - LOOP: for (eObject$iterator = list.iterator_0(); eObject$iterator.hasNext_0();) { - eObject = castTo(eObject$iterator.next_1(), 56); - for (i = 0; i < size_0; ++i) { - entry = (checkCriticalElementIndex(i, predicate.array.length) , castTo(predicate.array[i], 72)); - entryValue = entry.getValue(); - entryFeature = entry.getEStructuralFeature(); - actualValue = eObject.eGet_1(entryFeature, false); - if (entryValue == null?actualValue != null:!equals_Ljava_lang_Object__Z__devirtual$(entryValue, actualValue)) { - continue LOOP; - } - } - return eObject; - } - return null; -} - -function $eObjectForURIFragmentSegment(this$static, uriFragmentSegment){ - var dotIndex, eList, eReference, exception, index_0, lastChar, lastIndex, position, predicate, result; - lastIndex = uriFragmentSegment.length - 1; - lastChar = (checkCriticalStringElementIndex(lastIndex, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(lastIndex)); - if (lastChar == 93) { - index_0 = $indexOf_1(uriFragmentSegment, fromCodePoint(91)); - if (index_0 >= 0) { - eReference = $eReference(this$static, uriFragmentSegment.substr(1, index_0 - 1)); - predicate = uriFragmentSegment.substr(index_0 + 1, lastIndex - (index_0 + 1)); - return $eObjectForURIFragmentPredicate(this$static, predicate, eReference); - } - } - else { - dotIndex = -1; - digitRegex == null && (digitRegex = new RegExp('\\d')); - if (digitRegex.test(String.fromCharCode(lastChar))) { - dotIndex = $lastIndexOf_0(uriFragmentSegment, fromCodePoint(46), lastIndex - 1); - if (dotIndex >= 0) { - eList = castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1, dotIndex - 1)), false), 58); - position = 0; - try { - position = __parseAndValidateInt(uriFragmentSegment.substr(dotIndex + 1), $intern_42, $intern_0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new WrappedException(exception)); - } - else - throw toJs($e0); - } - if (position < eList.size_1()) { - result = eList.get_0(position); - instanceOf(result, 72) && (result = castTo(result, 72).getValue()); - return castTo(result, 56); - } - } - } - if (dotIndex < 0) { - return castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1)), false), 56); - } - } - return null; -} - -function $eOpenGet(this$static, eFeature, resolve){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - return castTo(featureMap, 215).get_7(eFeature, resolve); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); - } -} - -function $eOpenIsSet(this$static, eFeature){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - return castTo(featureMap, 215).isSet_1(eFeature); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); - } -} - -function $eOpenSet(this$static, eFeature, newValue){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - if (!castTo(openFeature, 66).isFeatureMap_0()) { - openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature)); - if (!openFeature) { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - } - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - castTo(featureMap, 215).set_3(eFeature, newValue); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } -} - -function $eOpenUnset(this$static, eFeature){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - castTo(featureMap, 215).unset_0(eFeature); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } -} - -function $eReference(this$static, name_0){ - var eStructuralFeature; - eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); - if (instanceOf(eStructuralFeature, 99)) { - return castTo(eStructuralFeature, 18); - } - throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid reference")); -} - -function $eResolveProxy(this$static, proxy){ - var eResource, lastArg, resourceContext, result; - result = (resourceContext = this$static?$eInternalResource(this$static):null , resolve_20((lastArg = proxy , resourceContext?resourceContext.getResourceSet():null , lastArg))); - if (result == proxy) { - eResource = $eInternalResource(this$static); - !!eResource && eResource.getResourceSet(); - } - return result; -} - -function $eSet(this$static, featureID0, newValue){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - if (dynamicFeatureID < 0) { - if (!eFeature) { - throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); - } - else if (eFeature.isChangeable()) { - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - } - else { - $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue); - } -} - -function $eSet_0(this$static, eFeature, newValue){ - var featureID; - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); -} - -function $eSettings(this$static){ - var size_0; - if (!this$static.eHasSettings()) { - size_0 = $getFeatureCount(this$static.eClass_0()) - this$static.eStaticFeatureCount(); - this$static.eProperties_0().allocateSettings(size_0); - } - return this$static.eBasicProperties(); -} - -function $eStructuralFeature(this$static, name_0){ - var eStructuralFeature; - eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); - if (!eStructuralFeature) { - throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid feature")); - } - return eStructuralFeature; -} - -function $eUnset(this$static, featureID0){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - if (dynamicFeatureID < 0) { - if (!eFeature) { - throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); - } - else if (eFeature.isChangeable()) { - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - } - else { - $eDynamicUnset(this$static, dynamicFeatureID, eFeature); - } -} - -function $eUnset_0(this$static, eFeature){ - var featureID; - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); -} - -function $toString_16(this$static){ - var number, result; - result = new StringBuilder_1($getName(this$static.___clazz)); - result.string += '@'; - $append_11(result, (number = hashCode__I__devirtual$(this$static) >>> 0 , number.toString(16))); - if (this$static.eIsProxy()) { - result.string += ' (eProxyURI: '; - $append_10(result, this$static.eProxyURI_0()); - if (this$static.eDynamicClass()) { - result.string += ' eClass: '; - $append_10(result, this$static.eDynamicClass()); - } - result.string += ')'; - } - else if (this$static.eDynamicClass()) { - result.string += ' (eClass: '; - $append_10(result, this$static.eDynamicClass()); - result.string += ')'; - } - return result.string; -} - -function eContainmentFeature(eObject, eContainer, eContainerFeatureID){ - var eFeature, entryFeature, entryReference, featureMap, i, size_0; - if (!eContainer) { - return null; - } - else { - if (eContainerFeatureID <= -1) { - eFeature = $getEStructuralFeature(eContainer.eClass_0(), -1 - eContainerFeatureID); - if (instanceOf(eFeature, 99)) { - return castTo(eFeature, 18); - } - else { - featureMap = castTo(eContainer.eGet_0(eFeature), 153); - for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { - if (maskUndefined(featureMap.getValue_1(i)) === maskUndefined(eObject)) { - entryFeature = featureMap.getEStructuralFeature_0(i); - if (instanceOf(entryFeature, 99)) { - entryReference = castTo(entryFeature, 18); - if ((entryReference.eFlags & $intern_134) != 0) { - return entryReference; - } - } - } - } - throw toJs(new IllegalStateException_0('The containment feature could not be located')); - } - } - else { - return $getEOpposite(castTo($getEStructuralFeature(eObject.eClass_0(), eContainerFeatureID), 18)); - } - } -} - -function eDecodeValue(encodedValue, eFactory, eDataType){ - var literal, value_0; - literal = decode(encodedValue); - value_0 = eFactory.createFromString(eDataType, literal); - return value_0; -} - -defineClass(97, 90, $intern_135); -_.eNotificationRequired = function eNotificationRequired(){ - return $eNotificationRequired(this); -} -; -_.eBaseStructuralFeatureID = function eBaseStructuralFeatureID(derivedFeatureID, baseClass){ - return derivedFeatureID; -} -; -_.eBasicProperties = function eBasicProperties(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature(msgs){ - var inverseFeature; - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature(this.eClass_0(), this.eContainerFeatureID_0()), 18)) , this.eInternalContainer().eInverseRemove(this, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} -; -_.eBasicSetContainer = function eBasicSetContainer(newContainer, newContainerFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicSetContainer_0 = function eBasicSetContainer_0(newContainer, newContainerFeatureID, msgs){ - return $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); -} -; -_.eClass_0 = function eClass_0(){ - var result; - if (this.eBasicProperties()) { - result = this.eBasicProperties().getEClass(); - if (result) { - return result; - } - } - return this.eStaticClass(); -} -; -_.eContainer_0 = function eContainer_0(){ - return $eContainer(this); -} -; -_.eContainerFeatureID_0 = function eContainerFeatureID_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eContents_0 = function eContents_0(){ - var eStructuralFeatures, result; - result = this.eProperties_0().getEContents(); - !result && this.eBasicProperties().setEContents(result = ($clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures(this.eClass_0())) , eStructuralFeatures == null?EMPTY_CONTENTS_ELIST:new EContentsEList(this, eStructuralFeatures))); - return result; -} -; -_.eDerivedStructuralFeatureID = function eDerivedStructuralFeatureID(baseFeatureID, baseClass){ - return baseFeatureID; -} -; -_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_0(eStructuralFeature){ - var containerClass; - containerClass = eStructuralFeature.getContainerClass(); - return !containerClass?$getFeatureID(this.eClass_0(), eStructuralFeature):eStructuralFeature.getFeatureID_0(); -} -; -_.eDirectResource = function eDirectResource(){ - var eProperties; - eProperties = this.eBasicProperties(); - return !eProperties?null:eProperties.getEResource(); -} -; -_.eDynamicClass = function eDynamicClass(){ - return !this.eBasicProperties()?null:this.eBasicProperties().getEClass(); -} -; -_.eGet = function eGet(featureID, resolve, coreType){ - return $eGet(this, featureID, resolve, coreType); -} -; -_.eGet_0 = function eGet_0(eFeature){ - return $eGet_0(this, eFeature); -} -; -_.eGet_1 = function eGet_1(eFeature, resolve){ - return $eGet_1(this, eFeature, resolve); -} -; -_.eHasSettings = function eHasSettings(){ - var eProperties; - eProperties = this.eBasicProperties(); - return !!eProperties && eProperties.hasSettings(); -} -; -_.eInternalContainer = function eInternalContainer_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eInternalResource = function eInternalResource(){ - return $eInternalResource(this); -} -; -_.eInverseAdd = function eInverseAdd(otherEnd, featureID, baseClass, msgs){ - return $eInverseAdd(this, otherEnd, featureID, msgs); -} -; -_.eInverseAdd_0 = function eInverseAdd_0(otherEnd, featureID, msgs){ - var feature; - return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); -} -; -_.eInverseRemove = function eInverseRemove(otherEnd, featureID, baseClass, msgs){ - return $eInverseRemove(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_0(otherEnd, featureID, msgs){ - var feature; - return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); -} -; -_.eIsProxy = function eIsProxy(){ - return !!this.eBasicProperties() && !!this.eBasicProperties().getEProxyURI(); -} -; -_.eIsSet = function eIsSet(featureID){ - return $eIsSet(this, featureID); -} -; -_.eIsSet_0 = function eIsSet_0(eFeature){ - return $eIsSet_0(this, eFeature); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment(uriFragmentSegment){ - return $eObjectForURIFragmentSegment(this, uriFragmentSegment); -} -; -_.eProperties_0 = function eProperties_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eProxyURI_0 = function eProxyURI_0(){ - return !this.eBasicProperties()?null:this.eBasicProperties().getEProxyURI(); -} -; -_.eResource_0 = function eResource_0(){ - return $eInternalResource(this); -} -; -_.eSet = function eSet(featureID, newValue){ - $eSet(this, featureID, newValue); -} -; -_.eSetClass = function eSetClass(eClass){ - this.eProperties_0().setEClass(eClass); -} -; -_.eSetDirectResource = function eSetDirectResource(resource){ - this.eProperties_0().setEResource(resource); -} -; -_.eSetProxyURI = function eSetProxyURI(uri_0){ - this.eProperties_0().setEProxyURI(uri_0); -} -; -_.eSetResource = function eSetResource(resource, notifications){ - var eContainerFeatureID, oldContainer, oldContainerResource, oldResource; - oldResource = this.eDirectResource(); - if (!!oldResource && !!resource) { - notifications = $basicRemove_0(oldResource.getContents(), this, notifications); - oldResource.detached(this); - } - oldContainer = this.eInternalContainer(); - if (oldContainer) { - if ((eContainmentFeature(this, this.eInternalContainer(), this.eContainerFeatureID_0()).eFlags & $intern_63) != 0) { - oldContainerResource = oldContainer.eInternalResource(); - !!oldContainerResource && (!resource?oldContainerResource.attached(this):!oldResource && oldContainerResource.detached(this)); - } - else { - notifications = (eContainerFeatureID = this.eContainerFeatureID_0() , eContainerFeatureID >= 0?this.eBasicRemoveFromContainerFeature(notifications):this.eInternalContainer().eInverseRemove(this, -1 - eContainerFeatureID, null, notifications)); - notifications = this.eBasicSetContainer_0(null, -1, notifications); - } - } - this.eSetDirectResource(resource); - return notifications; -} -; -_.eSetting = function eSetting(eFeature){ - var dynamicIndex, eClass, featureID, featureMap, index_0, openFeature, setting, upperBound; - eClass = this.eClass_0(); - index_0 = $getFeatureID(eClass, eFeature); - dynamicIndex = this.eStaticFeatureCount(); - if (index_0 >= dynamicIndex) { - return castTo(eFeature, 66).getSettingDelegate().dynamicSetting(this, this.eSettings_0(), index_0 - dynamicIndex); - } - else if (index_0 <= -1) { - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this.eGet(featureID, true, true):$eOpenGet(this, openFeature, true), 153)); - upperBound = openFeature.getUpperBound(); - if (upperBound > 1 || upperBound == -1) { - return castTo(castTo(featureMap, 215).get_7(eFeature, false), 76); - } - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); - } - } - else if (eFeature.isMany()) { - return featureID = this.eDerivedStructuralFeatureID_0(eFeature) , castTo(featureID >= 0?this.eGet(featureID, false, true):$eOpenGet(this, eFeature, false), 76); - } - setting = new BasicEObjectImpl$4(this, eFeature); - return setting; -} -; -_.eSettings_0 = function eSettings(){ - return $eSettings(this); -} -; -_.eStaticClass = function eStaticClass(){ - return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; -} -; -_.eStaticFeatureCount = function eStaticFeatureCount(){ - return $getFeatureCount(this.eStaticClass()); -} -; -_.eUnset = function eUnset(featureID){ - $eUnset(this, featureID); -} -; -_.toString_0 = function toString_122(){ - return $toString_16(this); -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl', 97); -function $clinit_EStructuralFeature$Internal$DynamicValueHolder(){ - $clinit_EStructuralFeature$Internal$DynamicValueHolder = emptyMethod; - NIL = new EStructuralFeature$Internal$DynamicValueHolder$1; -} - -var NIL; -function $addField(this$static, field, value_0){ - var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; - fieldCount = bitCount(this$static.eFlags_0 & 254); - if (fieldCount == 0) { - this$static.eStorage = value_0; - } - else { - if (fieldCount == 1) { - result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 2, 5, 1); - fieldIndex = $fieldIndex(this$static, field); - if (fieldIndex == 0) { - result[0] = value_0; - result[1] = this$static.eStorage; - } - else { - result[0] = this$static.eStorage; - result[1] = value_0; - } - } - else { - result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount + 1, 5, 1); - oldStorage = castToArray(this$static.eStorage); - for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { - bit == field?(result[targetIndex++] = value_0):(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); - } - } - this$static.eStorage = result; - } - this$static.eFlags_0 |= field; -} - -function $eClass(this$static){ - var eClass; - eClass = castTo($getField(this$static, 16), 26); - return !eClass?this$static.eStaticClass():eClass; -} - -function $eDynamicSettings(this$static){ - var settings; - settings = castToArray($getField(this$static, 32)); - if (settings == null) { - $eSettings_0(this$static); - settings = castToArray($getField(this$static, 32)); - } - return settings; -} - -function $eSettings_0(this$static){ - var eClass, size_0; - if ((this$static.eFlags_0 & 32) == 0) { - size_0 = (eClass = castTo($getField(this$static, 16), 26) , $getFeatureCount(!eClass?this$static.eStaticClass():eClass) - $getFeatureCount(this$static.eStaticClass())); - size_0 != 0 && $setField(this$static, 32, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1)); - } - return this$static; -} - -function $fieldIndex(this$static, field){ - var bit, bit0, result; - result = 0; - for (bit0 = 2; bit0 < field; bit0 <<= 1) { - (this$static.eFlags_0 & bit0) != 0 && ++result; - } - if (result == 0) { - for (bit = field <<= 1; bit <= 128; bit <<= 1) { - if ((this$static.eFlags_0 & bit) != 0) { - return 0; - } - } - return -1; - } - else { - return result; - } -} - -function $getField(this$static, field){ - var fieldIndex; - if ((this$static.eFlags_0 & field) != 0) { - fieldIndex = $fieldIndex(this$static, field); - return fieldIndex == -1?this$static.eStorage:castToArray(this$static.eStorage)[fieldIndex]; - } - else { - return null; - } -} - -function $removeField(this$static, field){ - var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; - fieldCount = bitCount(this$static.eFlags_0 & 254); - if (fieldCount == 1) { - this$static.eStorage = null; - } - else { - oldStorage = castToArray(this$static.eStorage); - if (fieldCount == 2) { - fieldIndex = $fieldIndex(this$static, field); - this$static.eStorage = oldStorage[fieldIndex == 0?1:0]; - } - else { - result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount - 1, 5, 1); - for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { - bit == field?++sourceIndex:(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); - } - this$static.eStorage = result; - } - } - this$static.eFlags_0 &= ~field; -} - -function $setField(this$static, field, value_0){ - var fieldIndex; - if ((this$static.eFlags_0 & field) != 0) { - if (value_0 == null) { - $removeField(this$static, field); - } - else { - fieldIndex = $fieldIndex(this$static, field); - fieldIndex == -1?(this$static.eStorage = value_0):setCheck(castToArray(this$static.eStorage), fieldIndex, value_0); - } - } - else - value_0 != null && $addField(this$static, field, value_0); -} - -defineClass(114, 97, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1}); -_.dynamicGet = function dynamicGet(dynamicFeatureID){ - var settings; - settings = $eDynamicSettings(this); - return settings[dynamicFeatureID]; -} -; -_.dynamicSet = function dynamicSet(dynamicFeatureID, newValue){ - var settings; - settings = $eDynamicSettings(this); - setCheck(settings, dynamicFeatureID, newValue); -} -; -_.dynamicUnset = function dynamicUnset(dynamicFeatureID){ - var settings; - settings = $eDynamicSettings(this); - setCheck(settings, dynamicFeatureID, null); -} -; -_.eBasicAdapterArray = function eBasicAdapterArray_0(){ - return castTo($getField(this, 4), 126); -} -; -_.eBasicAdapters = function eBasicAdapters_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicHasAdapters = function eBasicHasAdapters_0(){ - return (this.eFlags_0 & 4) != 0; -} -; -_.eBasicProperties = function eBasicProperties_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicSetContainer_1 = function eBasicSetContainer_1(newContainer){ - $setField(this, 2, newContainer); -} -; -_.eBasicSetContainer = function eBasicSetContainer_2(newContainer, newContainerFeatureID){ - this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; - this.eBasicSetContainer_1(newContainer); -} -; -_.eClass_0 = function eClass_1(){ - return $eClass(this); -} -; -_.eContainerFeatureID_0 = function eContainerFeatureID_1(){ - return this.eFlags_0 >> 16; -} -; -_.eContents_0 = function eContents_1(){ - var eClass, eStructuralFeatures; - return $clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass))) , eStructuralFeatures == null?(null , EMPTY_CONTENTS_ELIST):new EContentsEList(this, eStructuralFeatures); -} -; -_.eDeliver = function eDeliver_0(){ - return (this.eFlags_0 & 1) == 0; -} -; -_.eDirectResource = function eDirectResource_0(){ - return castTo($getField(this, 128), 1935); -} -; -_.eDynamicClass = function eDynamicClass_0(){ - return castTo($getField(this, 16), 26); -} -; -_.eHasSettings = function eHasSettings_0(){ - return (this.eFlags_0 & 32) != 0; -} -; -_.eInternalContainer = function eInternalContainer_1(){ - return castTo($getField(this, 2), 49); -} -; -_.eIsProxy = function eIsProxy_0(){ - return (this.eFlags_0 & 64) != 0; -} -; -_.eProperties_0 = function eProperties_1(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eProxyURI_0 = function eProxyURI_1(){ - return castTo($getField(this, 64), 281); -} -; -_.eSetClass = function eSetClass_0(eClass){ - $setField(this, 16, eClass); -} -; -_.eSetDirectResource = function eSetDirectResource_0(resource){ - $setField(this, 128, resource); -} -; -_.eSetProxyURI = function eSetProxyURI_0(uri_0){ - $setField(this, 64, uri_0); -} -; -_.eSettings_0 = function eSettings_0(){ - return $eSettings_0(this); -} -; -_.eFlags_0 = 0; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl', 114); -defineClass(115, 114, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eBasicSetContainer_1 = function eBasicSetContainer_3(newContainer){ - this.eContainer = newContainer; -} -; -_.eInternalContainer = function eInternalContainer_2(){ - return this.eContainer; -} -; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$Container_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/Container', 115); -function $eGet_3(this$static, featureID, resolve, coreType){ - if (featureID == 0) { - return coreType?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $map_1(this$static.properties)); - } - return $eGet(this$static, featureID, resolve, coreType); -} - -function $eInverseRemove_0(this$static, otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 0) { - return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $basicRemove_1(this$static.properties, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); -} - -function $eIsSet_1(this$static, featureID){ - if (featureID == 0) { - return !!this$static.properties && this$static.properties.size_0 != 0; - } - return $eIsSet(this$static, featureID); -} - -function $eSet_1(this$static, featureID, newValue){ - switch (featureID) { - case 0: - !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); - $set_14(this$static.properties, newValue); - return; - } - $eSet(this$static, featureID, newValue); -} - -function $eUnset_1(this$static, featureID){ - switch (featureID) { - case 0: - !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); - this$static.properties.delegateEList.clear_0(); - return; - } - $eUnset(this$static, featureID); -} - -function $getAllProperties_0(this$static){ - var entry, entry$iterator, props; - props = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties); - for (entry$iterator = props.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { - entry = castTo(entry$iterator.doNext(), 42); - entry.getValue(); - } - return $map_1(props); -} - -function $getProperty_0(this$static, property){ - var defaultValue, value_0; - value_0 = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $get_21(this$static.properties, property)); - if (value_0 != null) { - return value_0; - } - defaultValue = property.getDefault(); - instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, defaultValue)) , this$static); - return defaultValue; -} - -function $hasProperty_0(this$static, property){ - return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $containsKey_7(this$static.properties, property); -} - -function $setProperty_1(this$static, property, value_0){ - value_0 == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, value_0)); - return this$static; -} - -defineClass(1985, 115, {105:1, 413:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_2(featureID, resolve, coreType){ - return $eGet_3(this, featureID, resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_1(otherEnd, featureID, msgs){ - return $eInverseRemove_0(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_1(featureID){ - return $eIsSet_1(this, featureID); -} -; -_.eSet = function eSet_0(featureID, newValue){ - $eSet_1(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_0(){ - return $clinit_ElkGraphPackage$Literals() , EMAP_PROPERTY_HOLDER; -} -; -_.eUnset = function eUnset_0(featureID){ - $eUnset_1(this, featureID); -} -; -_.getAllProperties = function getAllProperties_0(){ - return $getAllProperties_0(this); -} -; -_.getProperty = function getProperty_3(property){ - return $getProperty_0(this, property); -} -; -_.hasProperty = function hasProperty_3(property){ - return $hasProperty_0(this, property); -} -; -_.setProperty = function setProperty_0(property, value_0){ - return $setProperty_1(this, property, value_0); -} -; -var Lorg_eclipse_elk_graph_impl_EMapPropertyHolderImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'EMapPropertyHolderImpl', 1985); -function $set_10(this$static, x_0, y_0){ - $setX_1(this$static, x_0); - $setY_2(this$static, y_0); -} - -function $setX_1(this$static, newX){ - var oldX; - oldX = this$static.x_0; - this$static.x_0 = newX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 0, oldX, this$static.x_0)); -} - -function $setY_2(this$static, newY){ - var oldY; - oldY = this$static.y_0; - this$static.y_0 = newY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldY, this$static.y_0)); -} - -function ElkBendPointImpl(){ -} - -defineClass(567, 115, {105:1, 469:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkBendPointImpl); -_.eGet = function eGet_3(featureID, resolve, coreType){ - switch (featureID) { - case 0: - return this.x_0; - case 1: - return this.y_0; - } - return $eGet(this, featureID, resolve, coreType); -} -; -_.eIsSet = function eIsSet_2(featureID){ - switch (featureID) { - case 0: - return this.x_0 != 0; - case 1: - return this.y_0 != 0; - } - return $eIsSet(this, featureID); -} -; -_.eSet = function eSet_1(featureID, newValue){ - switch (featureID) { - case 0: - $setX_1(this, $doubleValue(castToDouble(newValue))); - return; - case 1: - $setY_2(this, $doubleValue(castToDouble(newValue))); - return; - } - $eSet(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_1(){ - return $clinit_ElkGraphPackage$Literals() , ELK_BEND_POINT; -} -; -_.eUnset = function eUnset_1(featureID){ - switch (featureID) { - case 0: - $setX_1(this, 0); - return; - case 1: - $setY_2(this, 0); - return; - } - $eUnset(this, featureID); -} -; -_.toString_0 = function toString_123(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (x: '; - $append_0(result, this.x_0); - result.string += ', y: '; - $append_0(result, this.y_0); - result.string += ')'; - return result.string; -} -; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_graph_impl_ElkBendPointImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkBendPointImpl', 567); -function $eGet_4(this$static, featureID, resolve, coreType){ - switch (featureID) { - case 1: - return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , this$static.labels; - case 2: - return this$static.identifier; - } - return $eGet_3(this$static, featureID, resolve, coreType); -} - -function $eInverseAdd_0(this$static, otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 1) { - return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicAdd_0(this$static.labels, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); -} - -function $eInverseRemove_1(this$static, otherEnd, featureID, msgs){ - if (featureID == 1) { - return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicRemove_0(this$static.labels, otherEnd, msgs); - } - return $eInverseRemove_0(this$static, otherEnd, featureID, msgs); -} - -function $eIsSet_2(this$static, featureID){ - switch (featureID) { - case 1: - return !!this$static.labels && this$static.labels.size_0 != 0; - case 2: - return this$static.identifier != null; - } - return $eIsSet_1(this$static, featureID); -} - -function $eSet_2(this$static, featureID, newValue){ - switch (featureID) { - case 1: - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - $clear_13(this$static.labels); - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - $addAll_9(this$static.labels, castTo(newValue, 14)); - return; - case 2: - $setIdentifier(this$static, castToString(newValue)); - return; - } - $eSet_1(this$static, featureID, newValue); -} - -function $eUnset_2(this$static, featureID){ - switch (featureID) { - case 1: - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - $clear_13(this$static.labels); - return; - case 2: - $setIdentifier(this$static, null); - return; - } - $eUnset_1(this$static, featureID); -} - -function $getLabels_1(this$static){ - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - return this$static.labels; -} - -function $setIdentifier(this$static, newIdentifier){ - var oldIdentifier; - oldIdentifier = this$static.identifier; - this$static.identifier = newIdentifier; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldIdentifier, this$static.identifier)); -} - -function $toString_17(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (identifier: '; - $append_3(result, this$static.identifier); - result.string += ')'; - return result.string; -} - -defineClass(723, 1985, {105:1, 413:1, 160:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_4(featureID, resolve, coreType){ - return $eGet_4(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_1(otherEnd, featureID, msgs){ - return $eInverseAdd_0(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_2(otherEnd, featureID, msgs){ - return $eInverseRemove_1(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_3(featureID){ - return $eIsSet_2(this, featureID); -} -; -_.eSet = function eSet_2(featureID, newValue){ - $eSet_2(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_2(){ - return $clinit_ElkGraphPackage$Literals() , ELK_GRAPH_ELEMENT; -} -; -_.eUnset = function eUnset_2(featureID){ - $eUnset_2(this, featureID); -} -; -_.getIdentifier = function getIdentifier_0(){ - return this.identifier; -} -; -_.getLabels_0 = function getLabels_5(){ - return $getLabels_1(this); -} -; -_.toString_0 = function toString_124(){ - return $toString_17(this); -} -; -_.identifier = null; -var Lorg_eclipse_elk_graph_impl_ElkGraphElementImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphElementImpl', 723); -function $eGet_5(this$static, featureID, resolve, coreType){ - switch (featureID) { - case 3: - return this$static.height; - case 4: - return this$static.width_0; - case 5: - return this$static.x_0; - case 6: - return this$static.y_0; - } - return $eGet_4(this$static, featureID, resolve, coreType); -} - -function $eIsSet_3(this$static, featureID){ - switch (featureID) { - case 3: - return this$static.height != 0; - case 4: - return this$static.width_0 != 0; - case 5: - return this$static.x_0 != 0; - case 6: - return this$static.y_0 != 0; - } - return $eIsSet_2(this$static, featureID); -} - -function $eSet_3(this$static, featureID, newValue){ - switch (featureID) { - case 3: - $setHeight_0(this$static, $doubleValue(castToDouble(newValue))); - return; - case 4: - $setWidth_0(this$static, $doubleValue(castToDouble(newValue))); - return; - case 5: - $setX_2(this$static, $doubleValue(castToDouble(newValue))); - return; - case 6: - $setY_3(this$static, $doubleValue(castToDouble(newValue))); - return; - } - $eSet_2(this$static, featureID, newValue); -} - -function $eUnset_3(this$static, featureID){ - switch (featureID) { - case 3: - $setHeight_0(this$static, 0); - return; - case 4: - $setWidth_0(this$static, 0); - return; - case 5: - $setX_2(this$static, 0); - return; - case 6: - $setY_3(this$static, 0); - return; - } - $eUnset_2(this$static, featureID); -} - -function $setDimensions_0(this$static, width_0, height){ - $setWidth_0(this$static, width_0); - $setHeight_0(this$static, height); -} - -function $setHeight_0(this$static, newHeight){ - var oldHeight; - oldHeight = this$static.height; - this$static.height = newHeight; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldHeight, this$static.height)); -} - -function $setLocation_1(this$static, x_0, y_0){ - $setX_2(this$static, x_0); - $setY_3(this$static, y_0); -} - -function $setWidth_0(this$static, newWidth){ - var oldWidth; - oldWidth = this$static.width_0; - this$static.width_0 = newWidth; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldWidth, this$static.width_0)); -} - -function $setX_2(this$static, newX){ - var oldX; - oldX = this$static.x_0; - this$static.x_0 = newX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 5, oldX, this$static.x_0)); -} - -function $setY_3(this$static, newY){ - var oldY; - oldY = this$static.y_0; - this$static.y_0 = newY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 6, oldY, this$static.y_0)); -} - -function $toString_18(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_17(this$static); - result = new StringBuffer_1($toString_17(this$static)); - result.string += ' (height: '; - $append_0(result, this$static.height); - result.string += ', width: '; - $append_0(result, this$static.width_0); - result.string += ', x: '; - $append_0(result, this$static.x_0); - result.string += ', y: '; - $append_0(result, this$static.y_0); - result.string += ')'; - return result.string; -} - -defineClass(724, 723, {105:1, 413:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_5(featureID, resolve, coreType){ - return $eGet_5(this, featureID, resolve, coreType); -} -; -_.eIsSet = function eIsSet_4(featureID){ - return $eIsSet_3(this, featureID); -} -; -_.eSet = function eSet_3(featureID, newValue){ - $eSet_3(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_3(){ - return $clinit_ElkGraphPackage$Literals() , ELK_SHAPE; -} -; -_.eUnset = function eUnset_3(featureID){ - $eUnset_3(this, featureID); -} -; -_.getHeight = function getHeight(){ - return this.height; -} -; -_.getWidth = function getWidth(){ - return this.width_0; -} -; -_.getX = function getX(){ - return this.x_0; -} -; -_.getY = function getY(){ - return this.y_0; -} -; -_.setDimensions = function setDimensions(width_0, height){ - $setDimensions_0(this, width_0, height); -} -; -_.setLocation = function setLocation(x_0, y_0){ - $setLocation_1(this, x_0, y_0); -} -; -_.setX = function setX(newX){ - $setX_2(this, newX); -} -; -_.setY = function setY(newY){ - $setY_3(this, newY); -} -; -_.toString_0 = function toString_125(){ - return $toString_18(this); -} -; -_.height = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_graph_impl_ElkShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkShapeImpl', 724); -function $eGet_6(this$static, featureID, resolve, coreType){ - switch (featureID) { - case 7: - return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , this$static.outgoingEdges; - case 8: - return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , this$static.incomingEdges; - } - return $eGet_5(this$static, featureID, resolve, coreType); -} - -function $eInverseAdd_1(this$static, otherEnd, featureID, msgs){ - switch (featureID) { - case 7: - return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicAdd_0(this$static.outgoingEdges, otherEnd, msgs); - case 8: - return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicAdd_0(this$static.incomingEdges, otherEnd, msgs); - } - return $eInverseAdd_0(this$static, otherEnd, featureID, msgs); -} - -function $eInverseRemove_2(this$static, otherEnd, featureID, msgs){ - switch (featureID) { - case 7: - return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicRemove_0(this$static.outgoingEdges, otherEnd, msgs); - case 8: - return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicRemove_0(this$static.incomingEdges, otherEnd, msgs); - } - return $eInverseRemove_1(this$static, otherEnd, featureID, msgs); -} - -function $eIsSet_4(this$static, featureID){ - switch (featureID) { - case 7: - return !!this$static.outgoingEdges && this$static.outgoingEdges.size_0 != 0; - case 8: - return !!this$static.incomingEdges && this$static.incomingEdges.size_0 != 0; - } - return $eIsSet_3(this$static, featureID); -} - -function $eSet_4(this$static, featureID, newValue){ - switch (featureID) { - case 7: - !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); - $clear_13(this$static.outgoingEdges); - !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); - $addAll_9(this$static.outgoingEdges, castTo(newValue, 14)); - return; - case 8: - !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); - $clear_13(this$static.incomingEdges); - !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); - $addAll_9(this$static.incomingEdges, castTo(newValue, 14)); - return; - } - $eSet_3(this$static, featureID, newValue); -} - -function $eUnset_4(this$static, featureID){ - switch (featureID) { - case 7: - !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); - $clear_13(this$static.outgoingEdges); - return; - case 8: - !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); - $clear_13(this$static.incomingEdges); - return; - } - $eUnset_3(this$static, featureID); -} - -function ElkConnectableShapeImpl(){ -} - -defineClass(725, 724, {105:1, 413:1, 82:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_6(featureID, resolve, coreType){ - return $eGet_6(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_2(otherEnd, featureID, msgs){ - return $eInverseAdd_1(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_3(otherEnd, featureID, msgs){ - return $eInverseRemove_2(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_5(featureID){ - return $eIsSet_4(this, featureID); -} -; -_.eSet = function eSet_4(featureID, newValue){ - $eSet_4(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_4(){ - return $clinit_ElkGraphPackage$Literals() , ELK_CONNECTABLE_SHAPE; -} -; -_.eUnset = function eUnset_4(featureID){ - $eUnset_4(this, featureID); -} -; -_.getIncomingEdges_0 = function getIncomingEdges_3(){ - return !this.incomingEdges && (this.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 8, 5)) , this.incomingEdges; -} -; -_.getOutgoingEdges_0 = function getOutgoingEdges_3(){ - return !this.outgoingEdges && (this.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 7, 4)) , this.outgoingEdges; -} -; -var Lorg_eclipse_elk_graph_impl_ElkConnectableShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkConnectableShapeImpl', 725); -function $basicSetContainingNode(this$static, newContainingNode, msgs){ - msgs = $eBasicSetContainer(this$static, newContainingNode, 3, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 3) { - return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getContainingNode(this$static){ - if (this$static.eFlags_0 >> 16 != 3) - return null; - return castTo(this$static.eContainer, 33); -} - -function $getSources(this$static){ - !this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)); - return this$static.sources; -} - -function $getTargets(this$static){ - !this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)); - return this$static.targets; -} - -function $isHierarchical(this$static){ - var commonRepresentingNode, incidentShape, incidentShape$iterator, shapeNode; - commonRepresentingNode = null; - for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { - incidentShape = castTo($next_0(incidentShape$iterator), 82); - shapeNode = connectableShapeToNode(incidentShape); - if (!commonRepresentingNode) { - commonRepresentingNode = $getParent_2(shapeNode); - } - else if (commonRepresentingNode != $getParent_2(shapeNode)) { - return true; - } - } - return false; -} - -function $isSelfloop(this$static){ - var commonNode, incidentShape, incidentShape$iterator, shapeNode; - commonNode = null; - for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { - incidentShape = castTo($next_0(incidentShape$iterator), 82); - shapeNode = connectableShapeToNode(incidentShape); - if (!commonNode) { - commonNode = shapeNode; - } - else if (commonNode != shapeNode) { - return false; - } - } - return true; -} - -function $setContainingNode(this$static, newContainingNode){ - var eContainerFeatureID, msgs; - if (newContainingNode != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newContainingNode) { - if (isAncestor(this$static, newContainingNode)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_19(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newContainingNode && (msgs = $eInverseAdd(newContainingNode, this$static, 12, msgs)); - msgs = $basicSetContainingNode(this$static, newContainingNode, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newContainingNode, newContainingNode)); -} - -function $toString_19(this$static){ - var builder, hyperedge, id_0, text_0; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_17(this$static); - builder = new StringBuilder_1('ElkEdge'); - id_0 = this$static.identifier; - if (!id_0) { - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - if (this$static.labels.size_0 > 0) { - text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; - !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); - } - } - else { - $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); - } - hyperedge = (!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , !(this$static.sources.size_0 <= 1 && (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets.size_0 <= 1))); - hyperedge?(builder.string += ' [' , builder):(builder.string += ' ' , builder); - $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.sources))); - hyperedge && (builder.string += ']' , builder); - builder.string += ' -> '; - hyperedge && (builder.string += '[' , builder); - $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.targets))); - hyperedge && (builder.string += ']' , builder); - return builder.string; -} - -function ElkEdgeImpl(){ -} - -defineClass(352, 723, {105:1, 413:1, 79:1, 160:1, 352:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_0(msgs){ - return $eBasicRemoveFromContainerFeature(this, msgs); -} -; -_.eGet = function eGet_7(featureID, resolve, coreType){ - switch (featureID) { - case 3: - return $getContainingNode(this); - case 4: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources; - case 5: - return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets; - case 6: - return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , this.sections; - case 7: - return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)?false:true; - case 8: - return $clinit_Boolean() , $isHierarchical(this)?true:false; - case 9: - return $clinit_Boolean() , $isSelfloop(this)?true:false; - case 10: - return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0)?true:false; - } - return $eGet_4(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_3(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 3: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetContainingNode(this, castTo(otherEnd, 33), msgs); - case 4: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicAdd_0(this.sources, otherEnd, msgs); - case 5: - return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicAdd_0(this.targets, otherEnd, msgs); - case 6: - return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicAdd_0(this.sections, otherEnd, msgs); - } - return $eInverseAdd_0(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_4(otherEnd, featureID, msgs){ - switch (featureID) { - case 3: - return $basicSetContainingNode(this, null, msgs); - case 4: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicRemove_0(this.sources, otherEnd, msgs); - case 5: - return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicRemove_0(this.targets, otherEnd, msgs); - case 6: - return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicRemove_0(this.sections, otherEnd, msgs); - } - return $eInverseRemove_1(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_6(featureID){ - switch (featureID) { - case 3: - return !!$getContainingNode(this); - case 4: - return !!this.sources && this.sources.size_0 != 0; - case 5: - return !!this.targets && this.targets.size_0 != 0; - case 6: - return !!this.sections && this.sections.size_0 != 0; - case 7: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , !(this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)); - case 8: - return $isHierarchical(this); - case 9: - return $isSelfloop(this); - case 10: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0); - } - return $eIsSet_2(this, featureID); -} -; -_.eSet = function eSet_5(featureID, newValue){ - switch (featureID) { - case 3: - $setContainingNode(this, castTo(newValue, 33)); - return; - case 4: - !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); - $clear_13(this.sources); - !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); - $addAll_9(this.sources, castTo(newValue, 14)); - return; - case 5: - !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); - $clear_13(this.targets); - !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); - $addAll_9(this.targets, castTo(newValue, 14)); - return; - case 6: - !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); - $clear_13(this.sections); - !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); - $addAll_9(this.sections, castTo(newValue, 14)); - return; - } - $eSet_2(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_5(){ - return $clinit_ElkGraphPackage$Literals() , ELK_EDGE; -} -; -_.eUnset = function eUnset_5(featureID){ - switch (featureID) { - case 3: - $setContainingNode(this, null); - return; - case 4: - !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); - $clear_13(this.sources); - return; - case 5: - !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); - $clear_13(this.targets); - return; - case 6: - !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); - $clear_13(this.sections); - return; - } - $eUnset_2(this, featureID); -} -; -_.toString_0 = function toString_126(){ - return $toString_19(this); -} -; -var Lorg_eclipse_elk_graph_impl_ElkEdgeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeImpl', 352); -function $basicSetParent(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, newParent, 6, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_0(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 6) { - return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getIncomingShape(this$static){ - var oldIncomingShape; - if (!!this$static.incomingShape && this$static.incomingShape.eIsProxy()) { - oldIncomingShape = castTo(this$static.incomingShape, 49); - this$static.incomingShape = castTo($eResolveProxy(this$static, oldIncomingShape), 82); - this$static.incomingShape != oldIncomingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldIncomingShape, this$static.incomingShape)); - } - return this$static.incomingShape; -} - -function $getOutgoingShape(this$static){ - var oldOutgoingShape; - if (!!this$static.outgoingShape && this$static.outgoingShape.eIsProxy()) { - oldOutgoingShape = castTo(this$static.outgoingShape, 49); - this$static.outgoingShape = castTo($eResolveProxy(this$static, oldOutgoingShape), 82); - this$static.outgoingShape != oldOutgoingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 7, oldOutgoingShape, this$static.outgoingShape)); - } - return this$static.outgoingShape; -} - -function $getParent_0(this$static){ - if (this$static.eFlags_0 >> 16 != 6) - return null; - return castTo(this$static.eContainer, 79); -} - -function $setEndLocation(this$static, x_0, y_0){ - $setEndX(this$static, x_0); - $setEndY(this$static, y_0); -} - -function $setEndX(this$static, newEndX){ - var oldEndX; - oldEndX = this$static.endX; - this$static.endX = newEndX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldEndX, this$static.endX)); -} - -function $setEndY(this$static, newEndY){ - var oldEndY; - oldEndY = this$static.endY; - this$static.endY = newEndY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldEndY, this$static.endY)); -} - -function $setIdentifier_0(this$static, newIdentifier){ - var oldIdentifier; - oldIdentifier = this$static.identifier; - this$static.identifier = newIdentifier; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, oldIdentifier, this$static.identifier)); -} - -function $setIncomingShape(this$static, newIncomingShape){ - var oldIncomingShape; - oldIncomingShape = this$static.incomingShape; - this$static.incomingShape = newIncomingShape; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldIncomingShape, this$static.incomingShape)); -} - -function $setOutgoingShape(this$static, newOutgoingShape){ - var oldOutgoingShape; - oldOutgoingShape = this$static.outgoingShape; - this$static.outgoingShape = newOutgoingShape; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, oldOutgoingShape, this$static.outgoingShape)); -} - -function $setParent_0(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 6 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_20(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = $eInverseAdd(newParent, this$static, 6, msgs)); - msgs = $basicSetParent(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 6, newParent, newParent)); -} - -function $setStartLocation(this$static, x_0, y_0){ - $setStartX(this$static, x_0); - $setStartY(this$static, y_0); -} - -function $setStartX(this$static, newStartX){ - var oldStartX; - oldStartX = this$static.startX; - this$static.startX = newStartX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldStartX, this$static.startX)); -} - -function $setStartY(this$static, newStartY){ - var oldStartY; - oldStartY = this$static.startY; - this$static.startY = newStartY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 2, oldStartY, this$static.startY)); -} - -function $toString_20(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (startX: '; - $append_0(result, this$static.startX); - result.string += ', startY: '; - $append_0(result, this$static.startY); - result.string += ', endX: '; - $append_0(result, this$static.endX); - result.string += ', endY: '; - $append_0(result, this$static.endY); - result.string += ', identifier: '; - $append_3(result, this$static.identifier); - result.string += ')'; - return result.string; -} - -function ElkEdgeSectionImpl(){ -} - -defineClass(439, 1985, {105:1, 413:1, 202:1, 439:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeSectionImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_1(msgs){ - return $eBasicRemoveFromContainerFeature_0(this, msgs); -} -; -_.eGet = function eGet_8(featureID, resolve, coreType){ - switch (featureID) { - case 1: - return this.startX; - case 2: - return this.startY; - case 3: - return this.endX; - case 4: - return this.endY; - case 5: - return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , this.bendPoints; - case 6: - return $getParent_0(this); - case 7: - if (resolve) - return $getOutgoingShape(this); - return this.outgoingShape; - case 8: - if (resolve) - return $getIncomingShape(this); - return this.incomingShape; - case 9: - return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , this.outgoingSections; - case 10: - return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , this.incomingSections; - case 11: - return this.identifier; - } - return $eGet_3(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_4(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent(this, castTo(otherEnd, 79), msgs); - case 9: - return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicAdd_0(this.outgoingSections, otherEnd, msgs); - case 10: - return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicAdd_0(this.incomingSections, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_5(otherEnd, featureID, msgs){ - switch (featureID) { - case 5: - return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , $basicRemove_0(this.bendPoints, otherEnd, msgs); - case 6: - return $basicSetParent(this, null, msgs); - case 9: - return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicRemove_0(this.outgoingSections, otherEnd, msgs); - case 10: - return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicRemove_0(this.incomingSections, otherEnd, msgs); - } - return $eInverseRemove_0(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_7(featureID){ - switch (featureID) { - case 1: - return this.startX != 0; - case 2: - return this.startY != 0; - case 3: - return this.endX != 0; - case 4: - return this.endY != 0; - case 5: - return !!this.bendPoints && this.bendPoints.size_0 != 0; - case 6: - return !!$getParent_0(this); - case 7: - return !!this.outgoingShape; - case 8: - return !!this.incomingShape; - case 9: - return !!this.outgoingSections && this.outgoingSections.size_0 != 0; - case 10: - return !!this.incomingSections && this.incomingSections.size_0 != 0; - case 11: - return this.identifier != null; - } - return $eIsSet_1(this, featureID); -} -; -_.eSet = function eSet_6(featureID, newValue){ - switch (featureID) { - case 1: - $setStartX(this, $doubleValue(castToDouble(newValue))); - return; - case 2: - $setStartY(this, $doubleValue(castToDouble(newValue))); - return; - case 3: - $setEndX(this, $doubleValue(castToDouble(newValue))); - return; - case 4: - $setEndY(this, $doubleValue(castToDouble(newValue))); - return; - case 5: - !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); - $clear_13(this.bendPoints); - !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); - $addAll_9(this.bendPoints, castTo(newValue, 14)); - return; - case 6: - $setParent_0(this, castTo(newValue, 79)); - return; - case 7: - $setOutgoingShape(this, castTo(newValue, 82)); - return; - case 8: - $setIncomingShape(this, castTo(newValue, 82)); - return; - case 9: - !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); - $clear_13(this.outgoingSections); - !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); - $addAll_9(this.outgoingSections, castTo(newValue, 14)); - return; - case 10: - !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); - $clear_13(this.incomingSections); - !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); - $addAll_9(this.incomingSections, castTo(newValue, 14)); - return; - case 11: - $setIdentifier_0(this, castToString(newValue)); - return; - } - $eSet_1(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_6(){ - return $clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION; -} -; -_.eUnset = function eUnset_6(featureID){ - switch (featureID) { - case 1: - $setStartX(this, 0); - return; - case 2: - $setStartY(this, 0); - return; - case 3: - $setEndX(this, 0); - return; - case 4: - $setEndY(this, 0); - return; - case 5: - !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); - $clear_13(this.bendPoints); - return; - case 6: - $setParent_0(this, null); - return; - case 7: - $setOutgoingShape(this, null); - return; - case 8: - $setIncomingShape(this, null); - return; - case 9: - !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); - $clear_13(this.outgoingSections); - return; - case 10: - !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); - $clear_13(this.incomingSections); - return; - case 11: - $setIdentifier_0(this, null); - return; - } - $eUnset_1(this, featureID); -} -; -_.toString_0 = function toString_127(){ - return $toString_20(this); -} -; -_.endX = 0; -_.endY = 0; -_.identifier = null; -_.startX = 0; -_.startY = 0; -var Lorg_eclipse_elk_graph_impl_ElkEdgeSectionImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeSectionImpl', 439); -function $eObjectForURIFragmentSegment_0(this$static, uriFragmentSegment){ - var count, count0, eAnnotation, eNamedElement, encodedSource, exception, firstCharacter, hasCount, index_0, index0, length_0, name_0, object, object$iterator, object$iterator0, otherName, otherSource, source; - length_0 = uriFragmentSegment.length; - if (length_0 > 0) { - firstCharacter = (checkCriticalStringElementIndex(0, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(0)); - if (firstCharacter != 64) { - if (firstCharacter == 37) { - index0 = uriFragmentSegment.lastIndexOf('%'); - hasCount = false; - if (index0 != 0 && (index0 == length_0 - 1 || (hasCount = (checkCriticalStringElementIndex(index0 + 1, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(index0 + 1) == 46)))) { - encodedSource = uriFragmentSegment.substr(1, index0 - 1); - source = $equals_5('%', encodedSource)?null:decode(encodedSource); - count0 = 0; - if (hasCount) { - try { - count0 = __parseAndValidateInt(uriFragmentSegment.substr(index0 + 2), $intern_42, $intern_0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new WrappedException(exception)); - } - else - throw toJs($e0); - } - } - for (object$iterator0 = $iterator_1(this$static.eContents_0()); object$iterator0.hasNext_0();) { - object = $next_15(object$iterator0); - if (instanceOf(object, 510)) { - eAnnotation = castTo(object, 590); - otherSource = eAnnotation.source; - if ((source == null?otherSource == null:$equals_5(source, otherSource)) && count0-- == 0) { - return eAnnotation; - } - } - } - return null; - } - } - index_0 = uriFragmentSegment.lastIndexOf('.'); - name_0 = index_0 == -1?uriFragmentSegment:uriFragmentSegment.substr(0, index_0); - count = 0; - if (index_0 != -1) { - try { - count = __parseAndValidateInt(uriFragmentSegment.substr(index_0 + 1), $intern_42, $intern_0); - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 127)) { - name_0 = uriFragmentSegment; - } - else - throw toJs($e1); - } - } - name_0 = $equals_5('%', name_0)?null:decode(name_0); - for (object$iterator = $iterator_1(this$static.eContents_0()); object$iterator.hasNext_0();) { - object = $next_15(object$iterator); - if (instanceOf(object, 191)) { - eNamedElement = castTo(object, 191); - otherName = eNamedElement.getName(); - if ((name_0 == null?otherName == null:$equals_5(name_0, otherName)) && count-- == 0) { - return eNamedElement; - } - } - } - return null; - } - } - return $eObjectForURIFragmentSegment(this$static, uriFragmentSegment); -} - -function $freeze(eModelElement){ - instanceOf(eModelElement, 150) && castTo(eModelElement, 150).freeze(); -} - -function $getEAnnotation(this$static, source){ - var eAnnotation, eAnnotation$iterator, eAnnotationArray, i, size_0; - if (this$static.eAnnotations) { - if (this$static.eAnnotations) { - size_0 = this$static.eAnnotations.size_0; - if (size_0 > 0) { - eAnnotationArray = castTo(this$static.eAnnotations.data_0, 1934); - if (source == null) { - for (i = 0; i < size_0; ++i) { - eAnnotation = eAnnotationArray[i]; - if (eAnnotation.source == null) { - return eAnnotation; - } - } - } - else { - for (i = 0; i < size_0; ++i) { - eAnnotation = eAnnotationArray[i]; - if ($equals_5(source, eAnnotation.source)) { - return eAnnotation; - } - } - } - } - } - else { - if (source == null) { - for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { - eAnnotation = castTo($doNext(eAnnotation$iterator), 590); - if (eAnnotation.source == null) { - return eAnnotation; - } - } - } - else { - for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { - eAnnotation = castTo($doNext(eAnnotation$iterator), 590); - if ($equals_5(source, eAnnotation.source)) { - return eAnnotation; - } - } - } - } - } - return null; -} - -defineClass(150, 115, {105:1, 92:1, 90:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); -_.eGet = function eGet_9(featureID, resolve, coreType){ - var eClass; - if (featureID == 0) { - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_5(otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 0) { - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_6(otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 0) { - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_8(featureID){ - var eClass; - if (featureID == 0) { - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_0(uriFragmentSegment){ - return $eObjectForURIFragmentSegment_0(this, uriFragmentSegment); -} -; -_.eSet = function eSet_7(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eSetDirectResource = function eSetDirectResource_1(resource){ - $setField(this, 128, resource); -} -; -_.eStaticClass = function eStaticClass_7(){ - return $clinit_EcorePackage$Literals() , EMODEL_ELEMENT; -} -; -_.eUnset = function eUnset_7(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze(){ - this.eFlags |= 1; -} -; -_.getEAnnotation = function getEAnnotation(source){ - return $getEAnnotation(this, source); -} -; -_.eFlags = 0; -var Lorg_eclipse_emf_ecore_impl_EModelElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EModelElementImpl', 150); -function $clinit_EFactoryImpl(){ - $clinit_EFactoryImpl = emptyMethod; - HEX_DIGITS = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); - WHITE_SPACE = new RegExp('[ \t\n\r\f]+'); - try { - EDATE_FORMATS = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit, 1), $intern_2, 2015, 0, [new EFactoryImpl$1ClientInternalEDateTimeFormat(($clinit_DateTimeFormat_0() , getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0))))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat('yyyy-MM-dd', $getDateTimeFormatInfo((null , instance_0))))]); - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 78)) - throw toJs($e0); - } -} - -function $basicSetEPackage(this$static, newEPackage, msgs){ - var notification, oldEPackage; - oldEPackage = this$static.ePackage; - this$static.ePackage = newEPackage; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 1, oldEPackage, newEPackage); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $bytesToHexString(bytes, count){ - var high, i, j, low, result; - if (bytes == null) { - return null; - } - else { - result = initUnidimensionalArray(C_classLit, $intern_44, 25, 2 * count, 15, 1); - for (i = 0 , j = 0; i < count; ++i) { - high = bytes[i] >> 4 & 15; - low = bytes[i] & 15; - result[j++] = HEX_DIGITS[high]; - result[j++] = HEX_DIGITS[low]; - } - return valueOf_9(result, 0, result.length); - } -} - -function $convertToString(this$static, eDataType, objectValue){ - var baseType, item_0, item$iterator, itemType, list, memberType, memberType$iterator, memberTypes, result; - if (this$static.ePackage != eDataType.getEPackage()) { - throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } - baseType = $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getBaseType(); - if (baseType) { - return baseType.getEPackage().getEFactoryInstance().convertToString(baseType, objectValue); - } - itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); - if (itemType) { - if (objectValue == null) { - return null; - } - list = castTo(objectValue, 15); - if (list.isEmpty()) { - return ''; - } - result = new StringBuffer; - for (item$iterator = list.iterator_0(); item$iterator.hasNext_0();) { - item_0 = item$iterator.next_1(); - $append_3(result, itemType.getEPackage().getEFactoryInstance().convertToString(itemType, item_0)); - result.string += ' '; - } - return $substring(result, result.string.length - 1); - } - memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); - if (!memberTypes.isEmpty()) { - for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { - memberType = castTo(memberType$iterator.next_1(), 148); - if (memberType.isInstance(objectValue)) { - try { - result = memberType.getEPackage().getEFactoryInstance().convertToString(memberType, objectValue); - if (result != null) { - return result; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 102)) - throw toJs($e0); - } - } - } - throw toJs(new IllegalArgumentException_0("Invalid value: '" + objectValue + "' for datatype :" + eDataType.getName())); - } - castTo(eDataType, 834).getConversionDelegate(); - return objectValue == null?null:instanceOf(objectValue, 172)?'' + castTo(objectValue, 172).value_0:getClass__Ljava_lang_Class___devirtual$(objectValue) == Ljava_util_Date_2_classLit?$format_0(EDATE_FORMATS[0], castTo(objectValue, 199)):toString_40(objectValue); -} - -function $createFromString(this$static, eDataType, stringValue){ - var baseType, c, carray, charValue, i, item_0, item$array, item$index, item$max, itemType, memberType, memberType$iterator, memberTypes, result; - if (stringValue == null) { - return null; - } - if (this$static.ePackage != eDataType.getEPackage()) { - throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } - if (instanceOf(eDataType, 457)) { - result = $getEEnumLiteralByLiteral(castTo(eDataType, 671), stringValue); - if (!result) { - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a valid enumerator of '" + eDataType.getName() + "'")); - } - return result; - } - switch ($getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getWhiteSpaceFacet()) { - case 2: - { - stringValue = normalize(stringValue, false); - break; - } - - case 3: - { - stringValue = normalize(stringValue, true); - break; - } - - } - baseType = $getExtendedMetaData(INSTANCE_11, eDataType).getBaseType(); - if (baseType) { - return baseType.getEPackage().getEFactoryInstance().createFromString(baseType, stringValue); - } - itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); - if (itemType) { - result = new ArrayList; - for (item$array = $split_5(stringValue) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, itemType.getEPackage().getEFactoryInstance().createFromString(itemType, item_0)); - } - return result; - } - memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); - if (!memberTypes.isEmpty()) { - for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { - memberType = castTo(memberType$iterator.next_1(), 148); - try { - result = memberType.getEPackage().getEFactoryInstance().createFromString(memberType, stringValue); - if (result != null) { - return result; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' does not match any member types of the union datatype '" + eDataType.getName() + "'")); - } - castTo(eDataType, 834).getConversionDelegate(); - c = wrapperClassFor(eDataType.getInstanceClass()); - if (!c) - return null; - if (c == Ljava_lang_Character_2_classLit) { - charValue = 0; - try { - charValue = __parseAndValidateInt(stringValue, $intern_42, $intern_0) & $intern_46; - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 127)) { - carray = $toCharArray(stringValue); - charValue = carray[0]; - } - else - throw toJs($e1); - } - return valueOf_3(charValue); - } - if (c == Ljava_util_Date_2_classLit) { - for (i = 0; i < EDATE_FORMATS.length; ++i) { - try { - return $parse_2(EDATE_FORMATS[i], stringValue); - } - catch ($e2) { - $e2 = toJava($e2); - if (!instanceOf($e2, 32)) - throw toJs($e2); - } - } - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); - } - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is invalid. ")); -} - -function $hexStringToBytes(initialValue){ - var high, i, j, limit, low, result, size_0; - if (initialValue == null) { - return null; - } - size_0 = initialValue.length; - limit = (size_0 + 1) / 2 | 0; - result = initUnidimensionalArray(B_classLit, $intern_136, 25, limit, 15, 1); - size_0 % 2 != 0 && (result[--limit] = hexCharToByte((checkCriticalStringElementIndex(size_0 - 1, initialValue.length) , initialValue.charCodeAt(size_0 - 1)))); - for (i = 0 , j = 0; i < limit; ++i) { - high = hexCharToByte($charAt(initialValue, j++)); - low = hexCharToByte($charAt(initialValue, j++)); - result[i] = (high << 4 | low) << 24 >> 24; - } - return result; -} - -function $setEPackage(this$static, newEPackage){ - var msgs; - if (newEPackage != this$static.ePackage) { - msgs = null; - !!this$static.ePackage && (msgs = castTo(this$static.ePackage, 49).eInverseRemove(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); - !!newEPackage && (msgs = castTo(newEPackage, 49).eInverseAdd(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); - msgs = $basicSetEPackage(this$static, newEPackage, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, newEPackage, newEPackage)); -} - -function $split_5(value_0){ - var i, length_0, result, split_0; - split_0 = $split(WHITE_SPACE, value_0); - length_0 = split_0.length; - result = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, length_0, 6, 1); - for (i = 0; i < length_0; ++i) { - result[i] = split_0[i]; - } - return result; -} - -function EFactoryImpl(){ - $clinit_EFactoryImpl(); -} - -function hexCharToByte(character){ - switch (character) { - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - { - return character - 48 << 24 >> 24; - } - - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - { - return character - 97 + 10 << 24 >> 24; - } - - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - { - return character - 65 + 10 << 24 >> 24; - } - - default:{ - throw toJs(new NumberFormatException('Invalid hexadecimal')); - } - - } -} - -defineClass(704, 150, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EFactoryImpl); -_.convertToString = function convertToString(eDataType, objectValue){ - return $convertToString(this, eDataType, objectValue); -} -; -_.create_3 = function create_40(eClass){ - var eGenericType, eSuperType, eSuperTypes, result, result0; - if (this.ePackage != $getEPackage(eClass) || (eClass.eFlags & 256) != 0) { - throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); - } - for (eSuperTypes = $getESuperTypes(eClass); $getEGenericSuperTypes(eSuperTypes.this$01).size_0 != 0;) { - eSuperType = castTo($resolve_1(eSuperTypes, 0, (eGenericType = castTo($get_20($getEGenericSuperTypes(eSuperTypes.this$01), 0), 87) , result0 = eGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); - if ($getInstanceClass(eSuperType)) { - result = $getEPackage(eSuperType).getEFactoryInstance().create_3(eSuperType); - castTo(result, 49).eSetClass(eClass); - return result; - } - eSuperTypes = $getESuperTypes(eSuperType); - } - return (eClass.instanceClassName != null?eClass.instanceClassName:eClass.generatedInstanceClassName) == 'java.util.Map$Entry'?new DynamicEObjectImpl$BasicEMapEntry(eClass):new DynamicEObjectImpl(eClass); -} -; -_.createFromString = function createFromString(eDataType, stringValue){ - return $createFromString(this, eDataType, stringValue); -} -; -_.eGet = function eGet_10(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.ePackage; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_6(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 1: - !!this.ePackage && (msgs = castTo(this.ePackage, 49).eInverseRemove(this, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); - return $basicSetEPackage(this, castTo(otherEnd, 235), msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_7(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 1: - return $basicSetEPackage(this, null, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_9(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return !!this.ePackage; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); -} -; -_.eSet = function eSet_8(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setEPackage(this, castTo(newValue, 235)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_8(){ - return $clinit_EcorePackage$Literals() , EFACTORY; -} -; -_.eUnset = function eUnset_8(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setEPackage(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); -} -; -var EDATE_FORMATS, HEX_DIGITS, WHITE_SPACE; -var Lorg_eclipse_emf_ecore_impl_EFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl', 704); -function ElkGraphFactoryImpl(){ -} - -function init_1(){ - $clinit_EFactoryImpl(); - var exception, theElkGraphFactory; - try { - theElkGraphFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2014); - if (theElkGraphFactory) { - return theElkGraphFactory; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - $log_3(($clinit_EcorePlugin() , exception)); - } - else - throw toJs($e0); - } - return new ElkGraphFactoryImpl; -} - -defineClass($intern_137, 704, {105:1, 2014:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, ElkGraphFactoryImpl); -_.convertToString = function convertToString_0(eDataType, instanceValue){ - switch (eDataType.getClassifierID()) { - case 12: - return castTo(instanceValue, 146).getId(); - case 13: - return toString_40(instanceValue); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -_.create_3 = function create_41(eClass){ - var ePackage, elkBendPoint, elkEdge, elkEdgeSection, elkLabel, elkNode, elkPort, elkPropertyToValueMapEntry; - switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { - case 4: - return elkLabel = new ElkLabelImpl , elkLabel; - case 6: - return elkNode = new ElkNodeImpl , elkNode; - case 7: - return elkPort = new ElkPortImpl , elkPort; - case 8: - return elkEdge = new ElkEdgeImpl , elkEdge; - case 9: - return elkBendPoint = new ElkBendPointImpl , elkBendPoint; - case 10: - return elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection; - case 11: - return elkPropertyToValueMapEntry = new ElkPropertyToValueMapEntryImpl , elkPropertyToValueMapEntry; - default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); - } -} -; -_.createFromString = function createFromString_0(eDataType, initialValue){ - switch (eDataType.getClassifierID()) { - case 13: - case 12: - return null; - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -var Lorg_eclipse_elk_graph_impl_ElkGraphFactoryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphFactoryImpl', $intern_137); -function $setName(this$static, newName){ - var oldName; - oldName = this$static.name_0; - this$static.name_0 = newName; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldName, this$static.name_0)); -} - -function $toString_21(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (name: '; - $append_3(result, this$static.name_0); - result.string += ')'; - return result.string; -} - -defineClass(438, 150, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); -_.eContents_0 = function eContents_2(){ - var eClass, eStructuralFeatures; - eStructuralFeatures = (eClass = castTo($getField(this, 16), 26) , $containments($getEAllStructuralFeatures(!eClass?this.eStaticClass():eClass))); - return eStructuralFeatures == null?($clinit_EContentsEList() , $clinit_EContentsEList() , EMPTY_CONTENTS_ELIST):new ENamedElementImpl$1(this, eStructuralFeatures); -} -; -_.eGet = function eGet_11(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.getName(); - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_10(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_9(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - this.setName(castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_9(){ - return $clinit_EcorePackage$Literals() , ENAMED_ELEMENT; -} -; -_.eUnset = function eUnset_9(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - this.setName(null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.getName = function getName_5(){ - return this.name_0; -} -; -_.setName = function setName(newName){ - $setName(this, newName); -} -; -_.toString_0 = function toString_128(){ - return $toString_21(this); -} -; -_.name_0 = null; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl', 438); -function $addAnnotation(eNamedElement, source, details){ - var annotations, childAnnotations, eAnnotation, eAnnotation0, i, i0, theDetails; - eAnnotation0 = (eAnnotation = new EAnnotationImpl , eAnnotation); - $setSourceGen(eAnnotation0, (checkCriticalNotNull(source) , source)); - theDetails = (!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details); - for (i0 = 1; i0 < details.length; i0 += 2) { - $put_13(theDetails, details[i0 - 1], details[i0]); - } - annotations = (!eNamedElement.eAnnotations && (eNamedElement.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, eNamedElement, 0, 3)) , eNamedElement.eAnnotations); - for (i = 0; i < 0; ++i) { - childAnnotations = $getContents(castTo($get_20(annotations, annotations.size_0 - 1), 590)); - annotations = childAnnotations; - } - $add_21(annotations, eAnnotation0); -} - -function $addEException(owner, exception){ - $add_21((!owner.eExceptions && (owner.eExceptions = new EOperationImpl$1(owner, owner)) , owner.eExceptions), exception); -} - -function $addEOperation(owner, type_0, name_0){ - var eOperation, o; - o = (eOperation = new EOperationImpl , eOperation); - $initEOperation(o, type_0, name_0); - $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); - return o; -} - -function $addEParameter(owner, type_0, name_0){ - var p, p_0; - p = (p_0 = new EParameterImpl , $setEType(p_0, type_0) , $setName(p_0, name_0) , $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p_0) , p_0); - $setLowerBound(p, 0); - $setUpperBound(p, 1); - $setUnique_2(p, true); - $setOrdered(p, true); - return p; -} - -function $addEParameter_0(owner, type_0, name_0){ - var eParameter, msgs, p; - p = (eParameter = new EParameterImpl , eParameter); - msgs = $setEGenericType(p, type_0, null); - !!msgs && msgs.dispatch_0(); - $setName(p, name_0); - $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p); - $setLowerBound(p, 0); - $setUpperBound(p, 1); - $setUnique_2(p, true); - $setOrdered(p, true); -} - -function $addETypeParameter(owner, name_0){ - var eTypeParameter, eTypeParameter0; - eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); - $setName(eTypeParameter0, name_0); - $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 7)) , owner.eTypeParameters), eTypeParameter0); - return eTypeParameter0; -} - -function $addETypeParameter_0(owner){ - var eTypeParameter, eTypeParameter0; - eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); - $setName(eTypeParameter0, 'T'); - $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 11)) , owner.eTypeParameters), eTypeParameter0); - return eTypeParameter0; -} - -function $basicGetESuperPackage(this$static){ - if (this$static.eFlags_0 >> 16 != 7) - return null; - return castTo(this$static.eContainer, 235); -} - -function $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs){ - var notification, oldEFactoryInstance; - oldEFactoryInstance = this$static.eFactoryInstance; - this$static.eFactoryInstance = newEFactoryInstance; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 4, oldEFactoryInstance, newEFactoryInstance); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $createEAttribute(owner, id_0){ - var a, eAttribute; - a = (eAttribute = new EAttributeImpl , eAttribute); - a.featureID = id_0; - $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), a); -} - -function $createEClass(this$static, id_0){ - var c, eClass; - c = (eClass = new EClassImpl , eClass); - c.metaObjectID = id_0; - !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); - $add_21(this$static.eClassifiers, c); - return c; -} - -function $createEDataType(this$static, id_0){ - var d, eDataType; - d = (eDataType = new EDataTypeImpl , eDataType); - d.metaObjectID = id_0; - !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); - $add_21(this$static.eClassifiers, d); - return d; -} - -function $createEGenericType(eClassifier){ - var eGenericType, eGenericType0; - eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(eGenericType0, eClassifier); - return eGenericType0; -} - -function $createEGenericType_0(eTypeParameter){ - var eGenericType, eGenericType0; - eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); - $setETypeParameter(eGenericType0, eTypeParameter); - return eGenericType0; -} - -function $createEOperation(owner){ - var eOperation, o; - o = (eOperation = new EOperationImpl , eOperation); - $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); -} - -function $createEReference(owner, id_0){ - var eReference, r; - r = (eReference = new EReferenceImpl , eReference); - r.featureID = id_0; - $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), r); -} - -function $createResource(this$static, uri_0){ - var actualURI, resource; - resource = $eInternalResource(this$static); - if (!resource) { - !resourceFactory && (resourceFactory = new EPackageImpl$3); - actualURI = ($clinit_URI() , createURIWithCache(uri_0)); - resource = new BinaryResourceImpl(actualURI); - $add_21(resource.getContents(), this$static); - } - return resource; -} - -function $eBasicRemoveFromContainerFeature_1(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 7) { - return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $freeze_0(this$static){ - var i, size_0; - if (this$static.eClassifiers) { - for (i = 0 , size_0 = this$static.eClassifiers.size_0; i < size_0; ++i) { - $freeze($get_20(this$static.eClassifiers, i)); - } - } - if (this$static.eSubpackages) { - for (i = 0 , size_0 = this$static.eSubpackages.size_0; i < size_0; ++i) { - $freeze($get_20(this$static.eSubpackages, i)); - } - } - $getNamespace(($clinit_ExtendedMetaData() , INSTANCE_11), this$static); - this$static.eFlags |= 1; -} - -function $getEClassifierGen(this$static, name_0){ - var duplicate, eClassifier, eClassifier$iterator, eClassifiers, key, result; - if (!this$static.eNameToEClassifierMap) { - eClassifiers = (!this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)) , this$static.eClassifiers); - result = new HashMap_0(eClassifiers.size_0); - for (eClassifier$iterator = new AbstractEList$EIterator(eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { - eClassifier = castTo($doNext(eClassifier$iterator), 138); - key = eClassifier.getName(); - duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eClassifier):$put_10(result.stringMap, key, eClassifier), 138); - !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); - } - this$static.eNameToEClassifierMap = result; - } - return castTo($getStringValue(this$static.eNameToEClassifierMap, name_0), 138); -} - -function $initEAttribute(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ - $initEStructuralFeature(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived); - $setID(a, false); - return a; -} - -function $initEAttribute_0(a, type_0, name_0, containerClass, isTransient, isVolatile, isChangeable, isDerived){ - var msgs; - instanceOf(a.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(a.eContainer, 88)), 4); - $setName(a, name_0); - a.containerClass = containerClass; - $setTransient(a, isTransient); - $setVolatile(a, isVolatile); - $setChangeable(a, isChangeable); - $setUnsettable(a, false); - $setUnique_2(a, true); - $setDerived(a, isDerived); - $setOrdered(a, true); - $setLowerBound(a, 0); - a.effectiveIsMany = 0; - $setUpperBound(a, 1); - msgs = $setEGenericType(a, type_0, null); - !!msgs && msgs.dispatch_0(); - $setID(a, false); - return a; -} - -function $initEClass(c, instanceClass, name_0, isAbstract, isInterface, isGenerated){ - $initEClassifier(c, instanceClass, name_0, isGenerated); - $setAbstract(c, isAbstract); - $setInterface(c, isInterface); - return c; -} - -function $initEClassifier(o, instanceClass, name_0, isGenerated){ - instanceOf(o.eContainer, 179) && (castTo(o.eContainer, 179).eNameToEClassifierMap = null); - $setName(o, name_0); - !!instanceClass && $setInstanceClass(o, instanceClass); - isGenerated && o.setGeneratedInstanceClass(true); -} - -function $initEDataType(d, instanceClass, name_0, isSerializable){ - $initEClassifier(d, instanceClass, name_0, false); - $setSerializable(d, isSerializable); - return d; -} - -function $initEOperation(eOperation, type_0, name_0){ - $setEType(eOperation, type_0); - $setName(eOperation, name_0); - $setLowerBound(eOperation, 0); - $setUpperBound(eOperation, 1); - $setUnique_2(eOperation, true); - $setOrdered(eOperation, true); - return eOperation; -} - -function $initEReference(r, type_0, otherEnd, name_0, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isContainment, isResolveProxies, isUnsettable, isDerived){ - $initEStructuralFeature(r, type_0, name_0, null, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, true, isDerived); - $setContainmentGen(r, isContainment); - instanceOf(r.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(r.eContainer, 88)), 2); - !!otherEnd && $setEOpposite(r, otherEnd); - $setResolveProxies(r, isResolveProxies); - return r; -} - -function $initEStructuralFeature(s, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ - instanceOf(s.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(s.eContainer, 88)), 4); - $setName(s, name_0); - s.containerClass = containerClass; - $setTransient(s, isTransient); - $setVolatile(s, isVolatile); - $setChangeable(s, isChangeable); - $setUnsettable(s, isUnsettable); - $setUnique_2(s, isUnique); - $setDerived(s, isDerived); - $setOrdered(s, true); - $setLowerBound(s, lowerBound); - s.setUpperBound(upperBound); - $setEType(s, type_0); - defaultValue != null && (s.defaultValueFactory = null , $setDefaultValueLiteralGen(s, defaultValue)); -} - -function $setEFactoryInstance(this$static, newEFactoryInstance){ - var msgs; - if (newEFactoryInstance != this$static.eFactoryInstance) { - msgs = null; - !!this$static.eFactoryInstance && (msgs = castTo(this$static.eFactoryInstance, 49).eInverseRemove(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); - !!newEFactoryInstance && (msgs = castTo(newEFactoryInstance, 49).eInverseAdd(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); - msgs = $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newEFactoryInstance, newEFactoryInstance)); -} - -function $setNsPrefix(this$static, newNsPrefix){ - var oldNsPrefix; - oldNsPrefix = this$static.nsPrefix; - this$static.nsPrefix = newNsPrefix; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldNsPrefix, this$static.nsPrefix)); -} - -function $setNsURI(this$static, newNsURI){ - var oldNsURI; - oldNsURI = this$static.nsURI; - this$static.nsURI = newNsURI; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldNsURI, this$static.nsURI)); -} - -function EPackageImpl(){ - $setEFactoryInstance(this, new EFactoryImpl); - this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); - $clinit_EcoreFactory(); -} - -function EPackageImpl_0(packageURI, factory){ - var registration; - registration = $getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), packageURI); - instanceOf(registration, 498)?$putStringValue(INSTANCE_6, packageURI, new EPackageImpl$1(this, factory)):$putStringValue(INSTANCE_6, packageURI, this); - $setEFactoryInstance(this, factory); - if (factory == ($clinit_EcoreFactory() , eINSTANCE_1)) { - this.ecorePackage = castTo(this, 1939); - castTo(factory, 1941); - } - else { - this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); - } -} - -defineClass(179, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, EPackageImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_2(msgs){ - return $eBasicRemoveFromContainerFeature_1(this, msgs); -} -; -_.eGet = function eGet_12(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.nsURI; - case 3: - return this.nsPrefix; - case 4: - return this.eFactoryInstance; - case 5: - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; - case 6: - return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , this.eSubpackages; - case 7: - if (resolve) - return this.eFlags_0 >> 16 == 7?castTo(this.eContainer, 235):null; - return $basicGetESuperPackage(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_7(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 4: - !!this.eFactoryInstance && (msgs = castTo(this.eFactoryInstance, 49).eInverseRemove(this, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); - return $basicSetEFactoryInstance(this, castTo(otherEnd, 471), msgs); - case 5: - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicAdd_0(this.eClassifiers, otherEnd, msgs); - case 6: - return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicAdd_0(this.eSubpackages, otherEnd, msgs); - case 7: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_1(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 7, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_8(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 4: - return $basicSetEFactoryInstance(this, null, msgs); - case 5: - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicRemove_0(this.eClassifiers, otherEnd, msgs); - case 6: - return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicRemove_0(this.eSubpackages, otherEnd, msgs); - case 7: - return $eBasicSetContainer(this, null, 7, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_11(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.nsURI != null; - case 3: - return this.nsPrefix != null; - case 4: - return !!this.eFactoryInstance; - case 5: - return !!this.eClassifiers && this.eClassifiers.size_0 != 0; - case 6: - return !!this.eSubpackages && this.eSubpackages.size_0 != 0; - case 7: - return !!$basicGetESuperPackage(this); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_1(uriFragmentSegment){ - var result; - result = $getEClassifierGen(this, uriFragmentSegment); - return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); -} -; -_.eSet = function eSet_10(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - $setNsURI(this, castToString(newValue)); - return; - case 3: - $setNsPrefix(this, castToString(newValue)); - return; - case 4: - $setEFactoryInstance(this, castTo(newValue, 471)); - return; - case 5: - !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); - $clear_13(this.eClassifiers); - !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); - $addAll_9(this.eClassifiers, castTo(newValue, 14)); - return; - case 6: - !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); - $clear_13(this.eSubpackages); - !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); - $addAll_9(this.eSubpackages, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), newValue); -} -; -_.eSetProxyURI = function eSetProxyURI_1(uri_0){ - var eClassifier, eClassifier$iterator; - if (!!uri_0 && !!this.eClassifiers) { - for (eClassifier$iterator = new AbstractEList$EIterator(this.eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { - eClassifier = $doNext(eClassifier$iterator); - instanceOf(eClassifier, 351) && (castTo(eClassifier, 351).ePackage = null); - } - } - $setField(this, 64, uri_0); -} -; -_.eStaticClass = function eStaticClass_10(){ - return $clinit_EcorePackage$Literals() , EPACKAGE; -} -; -_.eUnset = function eUnset_10(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - $setNsURI(this, null); - return; - case 3: - $setNsPrefix(this, null); - return; - case 4: - $setEFactoryInstance(this, null); - return; - case 5: - !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); - $clear_13(this.eClassifiers); - return; - case 6: - !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); - $clear_13(this.eSubpackages); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); -} -; -_.freeze = function freeze_0(){ - $freeze_0(this); -} -; -_.getEClassifiers = function getEClassifiers(){ - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; -} -; -_.getEFactoryInstance = function getEFactoryInstance(){ - return this.eFactoryInstance; -} -; -_.getExtendedMetaData = function getExtendedMetaData(){ - return this.ePackageExtendedMetaData; -} -; -_.getNsPrefix = function getNsPrefix(){ - return this.nsPrefix; -} -; -_.getNsURI = function getNsURI(){ - return this.nsURI; -} -; -_.setExtendedMetaData = function setExtendedMetaData(ePackageExtendedMetaData){ - this.ePackageExtendedMetaData = ePackageExtendedMetaData; -} -; -_.toString_0 = function toString_129(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_21(this); - result = new StringBuffer_1($toString_21(this)); - result.string += ' (nsURI: '; - $append_3(result, this.nsURI); - result.string += ', nsPrefix: '; - $append_3(result, this.nsPrefix); - result.string += ')'; - return result.string; -} -; -_.nsPrefix = null; -_.nsURI = null; -var resourceFactory; -var Lorg_eclipse_emf_ecore_impl_EPackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl', 179); -function $createPackageContents(this$static){ - if (this$static.isCreated) - return; - this$static.isCreated = true; - this$static.iPropertyHolderEClass = $createEClass(this$static, 0); - this$static.eMapPropertyHolderEClass = $createEClass(this$static, 1); - $createEReference(this$static.eMapPropertyHolderEClass, 0); - this$static.elkGraphElementEClass = $createEClass(this$static, 2); - $createEReference(this$static.elkGraphElementEClass, 1); - $createEAttribute(this$static.elkGraphElementEClass, 2); - this$static.elkShapeEClass = $createEClass(this$static, 3); - $createEAttribute(this$static.elkShapeEClass, 3); - $createEAttribute(this$static.elkShapeEClass, 4); - $createEAttribute(this$static.elkShapeEClass, 5); - $createEAttribute(this$static.elkShapeEClass, 6); - this$static.elkLabelEClass = $createEClass(this$static, 4); - $createEReference(this$static.elkLabelEClass, 7); - $createEAttribute(this$static.elkLabelEClass, 8); - this$static.elkConnectableShapeEClass = $createEClass(this$static, 5); - $createEReference(this$static.elkConnectableShapeEClass, 7); - $createEReference(this$static.elkConnectableShapeEClass, 8); - this$static.elkNodeEClass = $createEClass(this$static, 6); - $createEReference(this$static.elkNodeEClass, 9); - $createEReference(this$static.elkNodeEClass, 10); - $createEReference(this$static.elkNodeEClass, 11); - $createEReference(this$static.elkNodeEClass, 12); - $createEAttribute(this$static.elkNodeEClass, 13); - this$static.elkPortEClass = $createEClass(this$static, 7); - $createEReference(this$static.elkPortEClass, 9); - this$static.elkEdgeEClass = $createEClass(this$static, 8); - $createEReference(this$static.elkEdgeEClass, 3); - $createEReference(this$static.elkEdgeEClass, 4); - $createEReference(this$static.elkEdgeEClass, 5); - $createEReference(this$static.elkEdgeEClass, 6); - $createEAttribute(this$static.elkEdgeEClass, 7); - $createEAttribute(this$static.elkEdgeEClass, 8); - $createEAttribute(this$static.elkEdgeEClass, 9); - $createEAttribute(this$static.elkEdgeEClass, 10); - this$static.elkBendPointEClass = $createEClass(this$static, 9); - $createEAttribute(this$static.elkBendPointEClass, 0); - $createEAttribute(this$static.elkBendPointEClass, 1); - this$static.elkEdgeSectionEClass = $createEClass(this$static, 10); - $createEAttribute(this$static.elkEdgeSectionEClass, 1); - $createEAttribute(this$static.elkEdgeSectionEClass, 2); - $createEAttribute(this$static.elkEdgeSectionEClass, 3); - $createEAttribute(this$static.elkEdgeSectionEClass, 4); - $createEReference(this$static.elkEdgeSectionEClass, 5); - $createEReference(this$static.elkEdgeSectionEClass, 6); - $createEReference(this$static.elkEdgeSectionEClass, 7); - $createEReference(this$static.elkEdgeSectionEClass, 8); - $createEReference(this$static.elkEdgeSectionEClass, 9); - $createEReference(this$static.elkEdgeSectionEClass, 10); - $createEAttribute(this$static.elkEdgeSectionEClass, 11); - this$static.elkPropertyToValueMapEntryEClass = $createEClass(this$static, 11); - $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 0); - $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 1); - this$static.iPropertyEDataType = $createEDataType(this$static, 12); - this$static.propertyValueEDataType = $createEDataType(this$static, 13); -} - -function $initializePackageContents(this$static){ - var eGenericType, eGenericType0, eGenericType1, eGenericType2, eGenericType3, eGenericType4, eGenericType5, eGenericType6, g1, g2, g3, msgs, msgs0, op, t1; - if (this$static.isInitialized) - return; - this$static.isInitialized = true; - $setName(this$static, 'graph'); - $setNsPrefix(this$static, 'graph'); - $setNsURI(this$static, 'http://www.eclipse.org/elk/ElkGraph'); - $addETypeParameter(this$static.iPropertyEDataType, 'T'); - $add_21($getESuperTypes(this$static.eMapPropertyHolderEClass), this$static.iPropertyHolderEClass); - $add_21($getESuperTypes(this$static.elkGraphElementEClass), this$static.eMapPropertyHolderEClass); - $add_21($getESuperTypes(this$static.elkShapeEClass), this$static.elkGraphElementEClass); - $add_21($getESuperTypes(this$static.elkLabelEClass), this$static.elkShapeEClass); - $add_21($getESuperTypes(this$static.elkConnectableShapeEClass), this$static.elkShapeEClass); - $add_21($getESuperTypes(this$static.elkNodeEClass), this$static.elkConnectableShapeEClass); - $add_21($getESuperTypes(this$static.elkPortEClass), this$static.elkConnectableShapeEClass); - $add_21($getESuperTypes(this$static.elkEdgeEClass), this$static.elkGraphElementEClass); - $add_21($getESuperTypes(this$static.elkEdgeSectionEClass), this$static.eMapPropertyHolderEClass); - $initEClass(this$static.iPropertyHolderEClass, Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit, 'IPropertyHolder', true, true, false); - op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'setProperty'); - t1 = $addETypeParameter_0(op); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = (eGenericType0 = (eGenericType1 = new EGenericTypeImpl , eGenericType1) , eGenericType0); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - g3 = $createEGenericType_0(t1); - $setELowerBound(g2, g3); - $addEParameter_0(op, g1, 'property'); - g1 = $createEGenericType_0(t1); - $addEParameter_0(op, g1, 'value'); - op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getProperty'); - t1 = $addETypeParameter_0(op); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = $createEGenericType_0(t1); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $addEParameter_0(op, g1, 'property'); - g1 = $createEGenericType_0(t1); - msgs0 = $setEGenericType(op, g1, null); - !!msgs0 && msgs0.dispatch_0(); - op = $addEOperation(this$static.iPropertyHolderEClass, this$static.ecorePackage.eBooleanEDataType, 'hasProperty'); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = (eGenericType2 = (eGenericType3 = new EGenericTypeImpl , eGenericType3) , eGenericType2); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $addEParameter_0(op, g1, 'property'); - op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'copyProperties'); - $addEParameter(op, this$static.iPropertyHolderEClass, 'source'); - op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getAllProperties'); - g1 = $createEGenericType(this$static.ecorePackage.eMapEDataType); - g2 = $createEGenericType(this$static.iPropertyEDataType); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - g3 = (eGenericType4 = (eGenericType5 = new EGenericTypeImpl , eGenericType5) , eGenericType4); - $add_21((!g2.eTypeArguments && (g2.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g2, 1)) , g2.eTypeArguments), g3); - g2 = $createEGenericType(this$static.ecorePackage.eJavaObjectEDataType); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs = $setEGenericType(op, g1, null); - !!msgs && msgs.dispatch_0(); - $initEClass(this$static.eMapPropertyHolderEClass, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, 'EMapPropertyHolder', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eMapPropertyHolderEClass), 0), 18), this$static.elkPropertyToValueMapEntryEClass, null, 'properties', 0, -1, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, false, false, true, true, false, false, false); - $initEClass(this$static.elkGraphElementEClass, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, 'ElkGraphElement', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), this$static.elkLabelEClass, castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), 'labels', 0, -1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.elkShapeEClass, Lorg_eclipse_elk_graph_ElkShape_2_classLit, 'ElkShape', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'height', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'width', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - op = $addEOperation(this$static.elkShapeEClass, null, 'setDimensions'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'width'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'height'); - op = $addEOperation(this$static.elkShapeEClass, null, 'setLocation'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - $initEClass(this$static.elkLabelEClass, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, 'ElkLabel', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), this$static.elkGraphElementEClass, castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'text', '', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.elkConnectableShapeEClass, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, 'ElkConnectableShape', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), 'outgoingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), 'incomingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); - $initEClass(this$static.elkNodeEClass, Lorg_eclipse_elk_graph_ElkNode_2_classLit, 'ElkNode', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), this$static.elkPortEClass, castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), 'ports', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), 'children', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), 'containedEdges', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, true, true, false, false, true, true); - $initEClass(this$static.elkPortEClass, Lorg_eclipse_elk_graph_ElkPort_2_classLit, 'ElkPort', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkPort_2_classLit, false, false, true, false, false, false, false); - $initEClass(this$static.elkEdgeEClass, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, 'ElkEdge', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), 'containingNode', 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), 'sources', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), 'targets', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), 'sections', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hyperedge', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 5), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 6), 34), this$static.ecorePackage.eBooleanEDataType, 'selfloop', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 7), 34), this$static.ecorePackage.eBooleanEDataType, 'connected', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEClass(this$static.elkBendPointEClass, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, 'ElkBendPoint', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); - op = $addEOperation(this$static.elkBendPointEClass, null, 'set'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - $initEClass(this$static.elkEdgeSectionEClass, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, 'ElkEdgeSection', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'startX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'startY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'endX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'endY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 4), 18), this$static.elkBendPointEClass, null, 'bendPoints', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 6), 18), this$static.elkConnectableShapeEClass, null, 'outgoingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 7), 18), this$static.elkConnectableShapeEClass, null, 'incomingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), 'outgoingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), 'incomingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 10), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setStartLocation'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setEndLocation'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - $initEClass(this$static.elkPropertyToValueMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'ElkPropertyToValueMapEntry', false, false, false); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = (eGenericType6 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType6); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 0), 34), g1, 'key', Ljava_util_Map$Entry_2_classLit, false, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 1), 34), this$static.propertyValueEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); - $initEDataType(this$static.iPropertyEDataType, Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 'IProperty', true); - $initEDataType(this$static.propertyValueEDataType, Ljava_lang_Object_2_classLit, 'PropertyValue', true); - $createResource(this$static, 'http://www.eclipse.org/elk/ElkGraph'); -} - -function ElkGraphPackageImpl(){ - EPackageImpl_0.call(this, 'http://www.eclipse.org/elk/ElkGraph', ($clinit_ElkGraphFactory() , eINSTANCE)); - this.iPropertyHolderEClass = null; - this.eMapPropertyHolderEClass = null; - this.elkGraphElementEClass = null; - this.elkShapeEClass = null; - this.elkLabelEClass = null; - this.elkConnectableShapeEClass = null; - this.elkNodeEClass = null; - this.elkPortEClass = null; - this.elkEdgeEClass = null; - this.elkBendPointEClass = null; - this.elkEdgeSectionEClass = null; - this.elkPropertyToValueMapEntryEClass = null; - this.iPropertyEDataType = null; - this.propertyValueEDataType = null; - this.isCreated = false; - this.isInitialized = false; -} - -function init_2(){ - var theElkGraphPackage; - if (isInited) - return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2016); - theElkGraphPackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 555)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph'):new ElkGraphPackageImpl, 555); - isInited = true; - $createPackageContents(theElkGraphPackage); - $initializePackageContents(theElkGraphPackage); - $freeze_0(theElkGraphPackage); - $putStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph', theElkGraphPackage); - return theElkGraphPackage; -} - -defineClass(555, 179, {105:1, 2016:1, 555:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, ElkGraphPackageImpl); -_.isCreated = false; -_.isInitialized = false; -var isInited = false; -var Lorg_eclipse_elk_graph_impl_ElkGraphPackageImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphPackageImpl', 555); -function $basicSetParent_0(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, castTo(newParent, 49), 7, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_2(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 7) { - return this$static.eContainer.eInverseRemove(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_LABEL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getParent_1(this$static){ - if (this$static.eFlags_0 >> 16 != 7) - return null; - return castTo(this$static.eContainer, 160); -} - -function $setParent_1(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 7 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_22(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = castTo(newParent, 49).eInverseAdd(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs)); - msgs = $basicSetParent_0(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, newParent, newParent)); -} - -function $setText(this$static, newText){ - var oldText; - oldText = this$static.text_0; - this$static.text_0 = newText; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldText, this$static.text_0)); -} - -function $toString_22(this$static){ - var builder; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_18(this$static); - builder = new StringBuilder_1('ElkLabel'); - !this$static.text_0 || $append_11($append_11((builder.string += ' "' , builder), this$static.text_0), '"'); - $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); - return builder.string; -} - -function ElkLabelImpl(){ -} - -defineClass(354, 724, {105:1, 413:1, 160:1, 137:1, 470:1, 354:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkLabelImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_3(msgs){ - return $eBasicRemoveFromContainerFeature_2(this, msgs); -} -; -_.eGet = function eGet_13(featureID, resolve, coreType){ - switch (featureID) { - case 7: - return $getParent_1(this); - case 8: - return this.text_0; - } - return $eGet_5(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_8(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 7: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent_0(this, castTo(otherEnd, 160), msgs); - } - return $eInverseAdd_0(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_9(otherEnd, featureID, msgs){ - if (featureID == 7) { - return $basicSetParent_0(this, null, msgs); - } - return $eInverseRemove_1(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_12(featureID){ - switch (featureID) { - case 7: - return !!$getParent_1(this); - case 8: - return !$equals_5('', this.text_0); - } - return $eIsSet_3(this, featureID); -} -; -_.eSet = function eSet_11(featureID, newValue){ - switch (featureID) { - case 7: - $setParent_1(this, castTo(newValue, 160)); - return; - case 8: - $setText(this, castToString(newValue)); - return; - } - $eSet_3(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_11(){ - return $clinit_ElkGraphPackage$Literals() , ELK_LABEL; -} -; -_.eUnset = function eUnset_11(featureID){ - switch (featureID) { - case 7: - $setParent_1(this, null); - return; - case 8: - $setText(this, ''); - return; - } - $eUnset_3(this, featureID); -} -; -_.toString_0 = function toString_130(){ - return $toString_22(this); -} -; -_.text_0 = ''; -var Lorg_eclipse_elk_graph_impl_ElkLabelImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkLabelImpl', 354); -function $basicSetParent_1(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, newParent, 11, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_3(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 11) { - return this$static.eContainer.eInverseRemove(this$static, 10, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_NODE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getChildren(this$static){ - !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)); - return this$static.children; -} - -function $getContainedEdges(this$static){ - !this$static.containedEdges && (this$static.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 12, 3)); - return this$static.containedEdges; -} - -function $getParent_2(this$static){ - if (this$static.eFlags_0 >> 16 != 11) - return null; - return castTo(this$static.eContainer, 33); -} - -function $getPorts_3(this$static){ - !this$static.ports && (this$static.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this$static, 9, 9)); - return this$static.ports; -} - -function $isHierarchical_0(this$static){ - return !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)) , this$static.children.size_0 > 0; -} - -function $setParent_2(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 11 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_23(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = $eInverseAdd(newParent, this$static, 10, msgs)); - msgs = $basicSetParent_1(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, newParent, newParent)); -} - -function $toString_23(this$static){ - var builder, id_0, text_0; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_18(this$static); - builder = new StringBuilder_1('ElkNode'); - id_0 = this$static.identifier; - if (!id_0) { - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - if (this$static.labels.size_0 > 0) { - text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; - !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); - } - } - else { - $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); - } - $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); - return builder.string; -} - -function ElkNodeImpl(){ - ElkConnectableShapeImpl.call(this); -} - -defineClass(239, 725, {105:1, 413:1, 82:1, 160:1, 33:1, 470:1, 239:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkNodeImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_4(msgs){ - return $eBasicRemoveFromContainerFeature_3(this, msgs); -} -; -_.eGet = function eGet_14(featureID, resolve, coreType){ - switch (featureID) { - case 9: - return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , this.ports; - case 10: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children; - case 11: - return $getParent_2(this); - case 12: - return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , this.containedEdges; - case 13: - return $clinit_Boolean() , !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0?true:false; - } - return $eGet_6(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_9(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 9: - return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicAdd_0(this.ports, otherEnd, msgs); - case 10: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicAdd_0(this.children, otherEnd, msgs); - case 11: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent_1(this, castTo(otherEnd, 33), msgs); - case 12: - return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicAdd_0(this.containedEdges, otherEnd, msgs); - } - return $eInverseAdd_1(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_10(otherEnd, featureID, msgs){ - switch (featureID) { - case 9: - return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicRemove_0(this.ports, otherEnd, msgs); - case 10: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicRemove_0(this.children, otherEnd, msgs); - case 11: - return $basicSetParent_1(this, null, msgs); - case 12: - return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicRemove_0(this.containedEdges, otherEnd, msgs); - } - return $eInverseRemove_2(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_13(featureID){ - switch (featureID) { - case 9: - return !!this.ports && this.ports.size_0 != 0; - case 10: - return !!this.children && this.children.size_0 != 0; - case 11: - return !!$getParent_2(this); - case 12: - return !!this.containedEdges && this.containedEdges.size_0 != 0; - case 13: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0; - } - return $eIsSet_4(this, featureID); -} -; -_.eSet = function eSet_12(featureID, newValue){ - switch (featureID) { - case 9: - !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); - $clear_13(this.ports); - !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); - $addAll_9(this.ports, castTo(newValue, 14)); - return; - case 10: - !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); - $clear_13(this.children); - !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); - $addAll_9(this.children, castTo(newValue, 14)); - return; - case 11: - $setParent_2(this, castTo(newValue, 33)); - return; - case 12: - !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); - $clear_13(this.containedEdges); - !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); - $addAll_9(this.containedEdges, castTo(newValue, 14)); - return; - } - $eSet_4(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_12(){ - return $clinit_ElkGraphPackage$Literals() , ELK_NODE; -} -; -_.eUnset = function eUnset_12(featureID){ - switch (featureID) { - case 9: - !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); - $clear_13(this.ports); - return; - case 10: - !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); - $clear_13(this.children); - return; - case 11: - $setParent_2(this, null); - return; - case 12: - !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); - $clear_13(this.containedEdges); - return; - } - $eUnset_4(this, featureID); -} -; -_.toString_0 = function toString_131(){ - return $toString_23(this); -} -; -var Lorg_eclipse_elk_graph_impl_ElkNodeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkNodeImpl', 239); -function $basicSetParent_2(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, newParent, 9, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_4(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 9) { - return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_PORT):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getParent_3(this$static){ - if (this$static.eFlags_0 >> 16 != 9) - return null; - return castTo(this$static.eContainer, 33); -} - -function $setParent_3(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 9 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_24(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = $eInverseAdd(newParent, this$static, 9, msgs)); - msgs = $basicSetParent_2(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 9, newParent, newParent)); -} - -function $toString_24(this$static){ - var builder, id_0, text_0; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_18(this$static); - builder = new StringBuilder_1('ElkPort'); - id_0 = this$static.identifier; - if (!id_0) { - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - if (this$static.labels.size_0 > 0) { - text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; - !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); - } - } - else { - $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); - } - $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); - return builder.string; -} - -function ElkPortImpl(){ - ElkConnectableShapeImpl.call(this); -} - -defineClass(186, 725, {105:1, 413:1, 82:1, 160:1, 118:1, 470:1, 186:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPortImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_5(msgs){ - return $eBasicRemoveFromContainerFeature_4(this, msgs); -} -; -_.eGet = function eGet_15(featureID, resolve, coreType){ - if (featureID == 9) { - return $getParent_3(this); - } - return $eGet_6(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_10(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 9: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent_2(this, castTo(otherEnd, 33), msgs); - } - return $eInverseAdd_1(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_11(otherEnd, featureID, msgs){ - if (featureID == 9) { - return $basicSetParent_2(this, null, msgs); - } - return $eInverseRemove_2(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_14(featureID){ - if (featureID == 9) { - return !!$getParent_3(this); - } - return $eIsSet_4(this, featureID); -} -; -_.eSet = function eSet_13(featureID, newValue){ - switch (featureID) { - case 9: - $setParent_3(this, castTo(newValue, 33)); - return; - } - $eSet_4(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_13(){ - return $clinit_ElkGraphPackage$Literals() , ELK_PORT; -} -; -_.eUnset = function eUnset_13(featureID){ - switch (featureID) { - case 9: - $setParent_3(this, null); - return; - } - $eUnset_4(this, featureID); -} -; -_.toString_0 = function toString_132(){ - return $toString_24(this); -} -; -var Lorg_eclipse_elk_graph_impl_ElkPortImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPortImpl', 186); -var Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit = createForInterface('org.eclipse.emf.common.util', 'BasicEMap/Entry'); -function $setTypedKey(this$static, newKey){ - var oldKey; - oldKey = this$static.key; - this$static.key = newKey; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); -} - -function $setTypedValue(this$static, newValue){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = newValue; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); -} - -function ElkPropertyToValueMapEntryImpl(){ -} - -defineClass(1092, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPropertyToValueMapEntryImpl); -_.equals_0 = function equals_183(other){ - return this === other; -} -; -_.getKey = function getKey_8(){ - return this.key; -} -; -_.hashCode_1 = function hashCode_72(){ - return getHashCode_0(this); -} -; -_.setKey = function setKey(key){ - $setTypedKey(this, castTo(key, 146)); -} -; -_.eGet = function eGet_16(featureID, resolve, coreType){ - switch (featureID) { - case 0: - return this.key; - case 1: - return this.value_0; - } - return $eGet(this, featureID, resolve, coreType); -} -; -_.eIsSet = function eIsSet_15(featureID){ - switch (featureID) { - case 0: - return !!this.key; - case 1: - return this.value_0 != null; - } - return $eIsSet(this, featureID); -} -; -_.eSet = function eSet_14(featureID, newValue){ - switch (featureID) { - case 0: - $setTypedKey(this, castTo(newValue, 146)); - return; - case 1: - $setTypedValue(this, newValue); - return; - } - $eSet(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_14(){ - return $clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY; -} -; -_.eUnset = function eUnset_14(featureID){ - switch (featureID) { - case 0: - $setTypedKey(this, null); - return; - case 1: - $setTypedValue(this, null); - return; - } - $eUnset(this, featureID); -} -; -_.getHash = function getHash(){ - var theKey; - if (this.hash == -1) { - theKey = this.key; - this.hash = !theKey?0:hashCode__I__devirtual$(theKey); - } - return this.hash; -} -; -_.getValue = function getValue_10(){ - return this.value_0; -} -; -_.setHash = function setHash(hash){ - this.hash = hash; -} -; -_.setValue = function setValue_11(value_0){ - var oldValue; - oldValue = this.value_0; - $setTypedValue(this, value_0); - return oldValue; -} -; -_.toString_0 = function toString_133(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_16(this); - result = new StringBuilder; - $append_11($append_11($append_11(result, this.key?this.key.getId():'null'), ' -> '), valueOf_7(this.value_0)); - return result.string; -} -; -_.hash = -1; -_.value_0 = null; -var Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPropertyToValueMapEntryImpl', 1092); -function $addJsonArr(arr, jv){ - var size_0; - size_0 = arr.jsArray.length; - $get_8(arr, size_0); - $set0(arr, size_0, jv); -} - -function $addJsonArr_0(arr, o){ - var _doubleValue, _matched; - _matched = false; - if (instanceOfString(o)) { - _matched = true; - $addJsonArr(arr, new JSONString(castToString(o))); - } - if (!_matched) { - if (instanceOf(o, 236)) { - _matched = true; - $addJsonArr(arr, (_doubleValue = doubleValue__D__devirtual$(castTo(o, 236)) , new JSONNumber(_doubleValue))); - } - } - if (!_matched) { - throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); - } -} - -function $addJsonObj(o, element, n){ - var _doubleValue, _jSONNumber; - _doubleValue = doubleValue__D__devirtual$(n); - _jSONNumber = new JSONNumber(_doubleValue); - $put_5(o, element, _jSONNumber); -} - -function $addJsonObj_0(this$static, o, element, obj){ - var _matched; - _matched = false; - if (instanceOfString(obj)) { - _matched = true; - $addJsonObj_1(o, element, castToString(obj)); - } - if (!_matched) { - if (instanceOfBoolean(obj)) { - _matched = true; - $addJsonObj_0(this$static, o, element, obj); - } - } - if (!_matched) { - if (instanceOf(obj, 236)) { - _matched = true; - $addJsonObj(o, element, castTo(obj, 236)); - } - } - if (!_matched) { - throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); - } -} - -function $addJsonObj_1(o, element, s){ - var _jSONString; - _jSONString = new JSONString(s); - $put_5(o, element, _jSONString); -} - -function $asId(id_0){ - var _isInt, _matched; - _matched = false; - if (instanceOf(id_0, 204)) { - _matched = true; - return castTo(id_0, 204).value_0; - } - if (!_matched) { - if (instanceOf(id_0, 258)) { - _isInt = castTo(id_0, 258).value_0 % 1 == 0; - if (_isInt) { - _matched = true; - return valueOf_4($intValue(castTo(id_0, 258).value_0)); - } - } - } - throw toJs(new JsonImportException("Id must be a string or an integer: '" + id_0 + "'.")); -} - -function $getId(o){ - var _containsKey, _not, _xblockexpression; - _xblockexpression = null; - _containsKey = 'id' in o.jsObject; - _not = !_containsKey; - if (_not) { - throw toJs(new JsonImportException('Every element must have an id.')); - } - _xblockexpression = $asId($get_9(o, 'id')); - return _xblockexpression; -} - -function $optDouble(o, element){ - var _containsKey, num; - _containsKey = element in o.jsObject; - if (_containsKey) { - num = $get_9(o, element).isNumber(); - if (num) { - return num.value_0; - } - } - return null; -} - -function $optJSONArray(arr, element){ - var _get, _isArray; - _get = $get_9(arr, element); - _isArray = null; - !!_get && (_isArray = _get.isArray_0()); - return _isArray; -} - -function $optJSONObject(arr, i){ - var _get, _isObject; - _get = $get_8(arr, i); - _isObject = null; - !!_get && (_isObject = _get.isObject()); - return _isObject; -} - -function $optJSONObject_0(o, element){ - var _get, _isObject; - _get = $get_9(o, element); - _isObject = null; - !!_get && (_isObject = _get.isObject()); - return _isObject; -} - -function $optString(o, element){ - var _get, _stringVal; - _get = $get_9(o, element); - _stringVal = null; - !!_get && (_stringVal = $stringVal(_get)); - return _stringVal; -} - -function $stringVal(v){ - var _matched, _switchResult; - _switchResult = null; - _matched = false; - if (instanceOf(v, 204)) { - _matched = true; - _switchResult = castTo(v, 204).value_0; - } - if (!_matched) { - if (instanceOf(v, 258)) { - _matched = true; - _switchResult = '' + castTo(v, 258).value_0; - } - } - if (!_matched) { - if (instanceOf(v, 483)) { - _matched = true; - _switchResult = '' + castTo(v, 483).value_0; - } - } - if (!_matched) { - throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); - } - return _switchResult; -} - -function JsonAdapter(){ -} - -defineClass(984, 1, {}, JsonAdapter); -var Lorg_eclipse_elk_graph_json_JsonAdapter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonAdapter', 984); -function JsonImportException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(210, 60, $intern_43, JsonImportException); -var Lorg_eclipse_elk_graph_json_JsonImportException_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImportException', 210); -function $_idByElement(this$static, section){ - return $get_5($inverse(this$static.edgeSectionIdMap), section); -} - -function $_idByElement_0(this$static, node){ - return $get_5($inverse(this$static.nodeIdMap), node); -} - -function $_idByElement_1(this$static, port){ - return $get_5($inverse(this$static.portIdMap), port); -} - -function $_transferLayoutInt(this$static, edge){ - var _function, _function_1, _hasProperty, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, edgeId, jps, jsonJPs, jsonObj, sections; - jsonObj = castTo($get_10(this$static.edgeJsonMap, edge), 183); - if (!jsonObj) { - throw toJs(new JsonImportException('Edge did not exist in input.')); - } - edgeId = $getId(jsonObj); - _isNullOrEmpty = isNullOrEmpty((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); - _not = !_isNullOrEmpty; - if (_not) { - sections = new JSONArray; - _function = new JsonImporter$lambda$36$Type(this$static, edgeId, sections); - forEach_42((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), _function); - $put_5(jsonObj, 'sections', sections); - } - _hasProperty = $hasProperty_0(edge, ($clinit_CoreOptions() , JUNCTION_POINTS_0)); - if (_hasProperty) { - jps = castTo($getProperty_0(edge, JUNCTION_POINTS_0), 74); - _isNullOrEmpty_1 = !jps || isEmpty_35(jps); - _not_1 = !_isNullOrEmpty_1; - if (_not_1) { - jsonJPs = new JSONArray; - _function_1 = new JsonImporter$lambda$40$Type(jsonJPs); - $forEach_0(jps, _function_1); - $put_5(jsonObj, 'junctionPoints', jsonJPs); - } - } - $addJsonObj_1(jsonObj, 'container', $getContainingNode(edge).identifier); - return null; -} - -function $_transferLayoutInt_0(this$static, label_0){ - var jsonObj; - jsonObj = $get_10(this$static.labelJsonMap, label_0); - $transferShapeLayout(label_0, jsonObj); - return null; -} - -function $_transferLayoutInt_1(this$static, node){ - var jsonObj; - jsonObj = $get_4(this$static.nodeJsonMap, node); - if (jsonObj == null) { - throw toJs(new JsonImportException('Node did not exist in input.')); - } - $transferShapeLayout(node, jsonObj); - return null; -} - -function $_transferLayoutInt_2(this$static, port){ - var jsonObj; - jsonObj = $get_10(this$static.portJsonMap, port); - if (jsonObj == null) { - throw toJs(new JsonImportException('Port did not exist in input.')); - } - $transferShapeLayout(port, jsonObj); - return null; -} - -function $idByElement(this$static, node){ - if (instanceOf(node, 239)) { - return $_idByElement_0(this$static, castTo(node, 33)); - } - else if (instanceOf(node, 186)) { - return $_idByElement_1(this$static, castTo(node, 118)); - } - else if (instanceOf(node, 439)) { - return $_idByElement(this$static, castTo(node, 202)); - } - else { - throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); - } -} - -function $lambda$0_13(this$static, parent_1, children_1){ - var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; - if (children_1) { - _sizeJsonArr = children_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(children_1, i.value_0); - !!_optJSONObject && $transformNode_0(this$static, _optJSONObject, parent_1); - } - } -} - -function $lambda$1_7(this$static, node_1, edges_1){ - var _doubleDotLessThan, _sizeJsonArr, edge, i, i$iterator; - if (edges_1) { - _sizeJsonArr = edges_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - edge = $optJSONObject(edges_1, i.value_0); - 'sources' in edge.jsObject || 'targets' in edge.jsObject?$transformEdge_1(this$static, edge, node_1):$transformPrimitiveEdge(this$static, edge, node_1); - updateContainment(castTo($get_10(this$static.edgeIdMap, $getId(edge)), 79)); - } - } -} - -function $lambda$10_0(section_1, bendPoint_1){ - createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); -} - -function $lambda$11(this$static, edge_1, sources_1){ - var _doubleDotLessThan, _sizeJsonArr, _sources, i, i$iterator, sourceElement; - if (sources_1) { - _sizeJsonArr = sources_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - sourceElement = $shapeById(this$static, $asId($get_8(sources_1, i.value_0))); - if (sourceElement) { - _sources = (!edge_1.sources && (edge_1.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 4, 7)) , edge_1.sources); - $add_21(_sources, sourceElement); - } - } - } -} - -function $lambda$12_0(this$static, edge_1, targets_1){ - var _doubleDotLessThan, _sizeJsonArr, _targets, i, i$iterator, targetElement; - if (targets_1) { - _sizeJsonArr = targets_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - targetElement = $shapeById(this$static, $asId($get_8(targets_1, i.value_0))); - if (targetElement) { - _targets = (!edge_1.targets && (edge_1.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 5, 8)) , edge_1.targets); - $add_21(_targets, targetElement); - } - } - } -} - -function $lambda$13(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, sections_3){ - var _doubleDotLessThan, _function_1, _optJSONObject, _sizeJsonArr, i, i$iterator; - if (sections_3) { - _sizeJsonArr = sections_3.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(sections_3, i.value_0); - _function_1 = new JsonImporter$lambda$14$Type(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3); - $lambda$14_0(_function_1.$$outer_0, _function_1.edge_1, _function_1.incomingSectionIdentifiers_2, _function_1.outgoingSectionIdentifiers_3, _optJSONObject); - } - } -} - -function $lambda$14_0(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, jsonSection_3){ - var _function_2, _function_3, _function_4, _function_5, _optJSONArray_1, _optJSONArray_2, _optString, _optString_1, elkSection, jsonObj, _optJSONObject, _function, _optJSONObject_1, _function_1, _optJSONArray, _function_2_0; - elkSection = $register_3(this$static, createEdgeSection(edge_1), jsonSection_3); - $setIdentifier_0(elkSection, $optString(jsonSection_3, 'id')); - _xblockexpression = null; - jsonObj = jsonSection_3; - _optJSONObject = $optJSONObject_0(jsonObj, 'startPoint'); - _function = new JsonImporter$lambda$19$Type(elkSection); - $lambda$19_0(_function.section_1, _optJSONObject); - _optJSONObject_1 = $optJSONObject_0(jsonObj, 'endPoint'); - _function_1 = new JsonImporter$lambda$22$Type(elkSection); - $lambda$22_0(_function_1.section_1, _optJSONObject_1); - _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); - _function_2_0 = new JsonImporter$lambda$25$Type(elkSection); - $lambda$25_0(_function_2_0.section_1, _optJSONArray); - _optString = $optString(jsonSection_3, 'incomingShape'); - _function_2 = new JsonImporter$lambda$15$Type(this$static, elkSection); - $lambda$15(_function_2.$$outer_0, _function_2.elkSection_1, _optString); - _optString_1 = $optString(jsonSection_3, 'outgoingShape'); - _function_3 = new JsonImporter$lambda$16$Type(this$static, elkSection); - $lambda$16(_function_3.$$outer_0, _function_3.elkSection_1, _optString_1); - _optJSONArray_1 = $optJSONArray(jsonSection_3, 'incomingSections'); - _function_4 = new JsonImporter$lambda$17$Type(incomingSectionIdentifiers_2, elkSection); - $lambda$17(_function_4.incomingSectionIdentifiers_1, _function_4.elkSection_2, _optJSONArray_1); - _optJSONArray_2 = $optJSONArray(jsonSection_3, 'outgoingSections'); - _function_5 = new JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_3, elkSection); - $lambda$18_0(_function_5.outgoingSectionIdentifiers_1, _function_5.elkSection_2, _optJSONArray_2); -} - -function $lambda$15(this$static, elkSection_1, jsonShapeId_1){ - jsonShapeId_1 != null && $setIncomingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); -} - -function $lambda$16(this$static, elkSection_1, jsonShapeId_1){ - jsonShapeId_1 != null && $setOutgoingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); -} - -function $lambda$17(incomingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ - var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; - if (jsonSectionIds_2) { - _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; - _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); - for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { - j = castTo(j$iterator.next_1(), 19); - $put(incomingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); - } - } -} - -function $lambda$18_0(outgoingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ - var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; - if (jsonSectionIds_2) { - _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; - _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); - for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { - j = castTo(j$iterator.next_1(), 19); - $put(outgoingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); - } - } -} - -function $lambda$19_0(section_1, startPoint_1){ - var _function_1, _function_2, _optDouble, _optDouble_1; - if (startPoint_1) { - _optDouble = $optDouble(startPoint_1, 'x'); - _function_1 = new JsonImporter$lambda$20$Type(section_1); - $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(startPoint_1, 'y'); - _function_2 = new JsonImporter$lambda$21$Type(section_1); - $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } - else { - throw toJs(new JsonImportException('All edge sections need a start point.')); - } -} - -function $lambda$2_5(this$static, children_0){ - var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; - if (children_0) { - _sizeJsonArr = children_0.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(children_0, i.value_0); - !!_optJSONObject && $transformEdges_2(this$static, _optJSONObject); - } - } -} - -function $lambda$22_0(section_1, endPoint_1){ - var _function_2, _function_3, _optDouble, _optDouble_1; - if (endPoint_1) { - _optDouble = $optDouble(endPoint_1, 'x'); - _function_2 = new JsonImporter$lambda$23$Type(section_1); - $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(endPoint_1, 'y'); - _function_3 = new JsonImporter$lambda$24$Type(section_1); - $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } - else { - throw toJs(new JsonImportException('All edge sections need an end point.')); - } -} - -function $lambda$25_0(section_1, bendPoints_1){ - var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; - if (bendPoints_1) { - _sizeJsonArr = bendPoints_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); - _function_3 = new JsonImporter$lambda$26$Type(section_1); - $lambda$26_0(_function_3.section_1, _optJSONObject_2); - } - } -} - -function $lambda$26_0(section_1, bendPoint_1){ - createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); -} - -function $lambda$27(opts_1, layoutData_2, k_2){ - var _jsonObj, _stringVal, value_0; - _jsonObj = $get_9(opts_1, k_2); - _stringVal = null; - !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); - value_0 = _stringVal; - $setOption(layoutData_2, k_2, value_0); -} - -function $lambda$28(opts_1, individualSpacings_2, k_2){ - var _jsonObj, _stringVal, value_0; - _jsonObj = $get_9(opts_1, k_2); - _stringVal = null; - !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); - value_0 = _stringVal; - $setOption(individualSpacings_2, k_2, value_0); -} - -function $lambda$29_0(this$static, element_1, labels_1){ - var _doubleDotLessThan, _hasJsonObj, _sizeJsonArr, i, i$iterator, jsonLabel, label_0; - if (labels_1) { - _sizeJsonArr = labels_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - jsonLabel = $optJSONObject(labels_1, i.value_0); - if (jsonLabel) { - label_0 = createLabel($optString(jsonLabel, 'text'), element_1); - $put_6(this$static.labelJsonMap, label_0, jsonLabel); - _hasJsonObj = 'id' in jsonLabel.jsObject; - _hasJsonObj && $setIdentifier(label_0, $optString(jsonLabel, 'id')); - $transformProperties(jsonLabel, label_0); - $transformShapeLayout(jsonLabel, label_0); - } - } - } -} - -function $lambda$3_4(section_1, srcPnt_1){ - var _function_1, _function_2, _optDouble, _optDouble_1; - if (srcPnt_1) { - _optDouble = $optDouble(srcPnt_1, 'x'); - _function_1 = new JsonImporter$lambda$4$Type(section_1); - $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(srcPnt_1, 'y'); - _function_2 = new JsonImporter$lambda$5$Type(section_1); - $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } -} - -function $lambda$30(this$static, parent_1, ports_1){ - var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator, port, port_0, elkPort; - if (ports_1) { - _sizeJsonArr = ports_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(ports_1, i.value_0); - !!_optJSONObject && (_xblockexpression = null , port = $register_5(this$static, (port_0 = ($clinit_ElkGraphFactory() , elkPort = new ElkPortImpl , elkPort) , !!parent_1 && $setParent_3(port_0, parent_1) , port_0), _optJSONObject) , $setIdentifier(port, $optString(_optJSONObject, 'id')) , $transformProperties(_optJSONObject, port) , $transformShapeLayout(_optJSONObject, port) , $transformLabels(this$static, _optJSONObject, port)); - } - } -} - -function $lambda$31(shape_1, it_1){ - $setX_2(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$32(shape_1, it_1){ - $setY_3(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$33(shape_1, it_1){ - $setWidth_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$34(shape_1, it_1){ - $setHeight_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$36(this$static, edgeId_1, sections_2, elkSection_2, i_3){ - var _function_1, _function_2, _function_3, _incomingShape, _isEmpty, _isEmpty_1, _isNullOrEmpty_1, _jSONString, _jsonObject, _not_1, _not_2, _not_3, _outgoingShape, _plus, _plus_1, _tripleNotEquals, _tripleNotEquals_1, bendPoints, endPoint, incomingSections, jsonSection, maybeSection, outgoingSections, startPoint; - maybeSection = $get_10(this$static.edgeSectionJsonMap, elkSection_2); - if (maybeSection == null) { - maybeSection = new JSONObject; - _jsonObject = castTo(maybeSection, 183); - _plus = edgeId_1 + '_s'; - _plus_1 = _plus + i_3; - _jSONString = new JSONString(_plus_1); - $put_5(_jsonObject, 'id', _jSONString); - } - jsonSection = castTo(maybeSection, 183); - $addJsonArr(sections_2, jsonSection); - startPoint = new JSONObject; - $addJsonObj(startPoint, 'x', elkSection_2.startX); - $addJsonObj(startPoint, 'y', elkSection_2.startY); - $put_5(jsonSection, 'startPoint', startPoint); - endPoint = new JSONObject; - $addJsonObj(endPoint, 'x', elkSection_2.endX); - $addJsonObj(endPoint, 'y', elkSection_2.endY); - $put_5(jsonSection, 'endPoint', endPoint); - _isNullOrEmpty_1 = isNullOrEmpty((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints)); - _not_1 = !_isNullOrEmpty_1; - if (_not_1) { - bendPoints = new JSONArray; - _function_1 = new JsonImporter$lambda$37$Type(bendPoints); - $forEach_0((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints), _function_1); - $put_5(jsonSection, 'bendPoints', bendPoints); - } - _incomingShape = $getIncomingShape(elkSection_2); - _tripleNotEquals = !!_incomingShape; - _tripleNotEquals && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'incomingShape', $idByElement(this$static, $getIncomingShape(elkSection_2))); - _outgoingShape = $getOutgoingShape(elkSection_2); - _tripleNotEquals_1 = !!_outgoingShape; - _tripleNotEquals_1 && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'outgoingShape', $idByElement(this$static, $getOutgoingShape(elkSection_2))); - _isEmpty = (!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections).size_0 == 0; - _not_2 = !_isEmpty; - if (_not_2) { - incomingSections = new JSONArray; - _function_2 = new JsonImporter$lambda$38$Type(this$static, incomingSections); - $forEach_0((!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections), _function_2); - $put_5(jsonSection, 'incomingSections', incomingSections); - } - _isEmpty_1 = (!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections).size_0 == 0; - _not_3 = !_isEmpty_1; - if (_not_3) { - outgoingSections = new JSONArray; - _function_3 = new JsonImporter$lambda$39$Type(this$static, outgoingSections); - $forEach_0((!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections), _function_3); - $put_5(jsonSection, 'outgoingSections', outgoingSections); - } -} - -function $lambda$37(bendPoints_1, pnt_1){ - var jsonPnt; - jsonPnt = new JSONObject; - $addJsonObj(jsonPnt, 'x', pnt_1.x_0); - $addJsonObj(jsonPnt, 'y', pnt_1.y_0); - $addJsonArr(bendPoints_1, jsonPnt); -} - -function $lambda$38(this$static, incomingSections_1, sec_1){ - $addJsonArr_0(incomingSections_1, $idByElement(this$static, sec_1)); -} - -function $lambda$39(this$static, outgoingSections_1, sec_1){ - $addJsonArr_0(outgoingSections_1, $idByElement(this$static, sec_1)); -} - -function $lambda$40(jsonJPs_1, jp_1){ - var jsonPnt; - jsonPnt = new JSONObject; - $addJsonObj(jsonPnt, 'x', jp_1.x_0); - $addJsonObj(jsonPnt, 'y', jp_1.y_0); - $addJsonArr(jsonJPs_1, jsonPnt); -} - -function $lambda$6_0(section_1, tgtPnt_1){ - var _function_2, _function_3, _optDouble, _optDouble_1; - if (tgtPnt_1) { - _optDouble = $optDouble(tgtPnt_1, 'x'); - _function_2 = new JsonImporter$lambda$7$Type(section_1); - $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(tgtPnt_1, 'y'); - _function_3 = new JsonImporter$lambda$8$Type(section_1); - $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } -} - -function $lambda$9_1(section_1, bendPoints_1){ - var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; - if (bendPoints_1) { - _sizeJsonArr = bendPoints_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); - _function_3 = new JsonImporter$lambda$10$Type(section_1); - $lambda$10_0(_function_3.section_1, _optJSONObject_2); - } - } -} - -function $register_2(this$static, edge, obj){ - var id_0; - id_0 = $getId(obj); - $put_6(this$static.edgeIdMap, id_0, edge); - $put_6(this$static.edgeJsonMap, edge, obj); - return edge; -} - -function $register_3(this$static, edgeSection, obj){ - var id_0; - id_0 = $getId(obj); - $put_3(this$static.edgeSectionIdMap, id_0, edgeSection); - $put_6(this$static.edgeSectionJsonMap, edgeSection, obj); - return edgeSection; -} - -function $register_4(this$static, node, obj){ - var id_0; - id_0 = $getId(obj); - $put_3(this$static.nodeIdMap, id_0, node); - $put_3(this$static.nodeJsonMap, node, obj); - return node; -} - -function $register_5(this$static, port, obj){ - var id_0; - id_0 = $getId(obj); - $put_3(this$static.portIdMap, id_0, port); - $put_6(this$static.portJsonMap, port, obj); - return port; -} - -function $setOption(e, id_0, value_0){ - var _xblockexpression, _xblockexpression_1, _xifexpression, _xifexpression_1, optionData, parsed; - _xblockexpression = null; - optionData = $getOptionDataBySuffix(getInstance(), id_0); - _xifexpression = null; - if (optionData) { - _xblockexpression_1 = null; - parsed = $parseValue(optionData, value_0); - _xifexpression_1 = null; - parsed != null && (_xifexpression_1 = e.setProperty(optionData, parsed)); - _xblockexpression_1 = _xifexpression_1; - _xifexpression = _xblockexpression_1; - } - _xblockexpression = _xifexpression; - return _xblockexpression; -} - -function $shapeById(this$static, id_0){ - var node, port; - node = castTo($get_4(this$static.nodeIdMap, id_0), 33); - if (node) { - return node; - } - port = castTo($get_4(this$static.portIdMap, id_0), 118); - if (port) { - return port; - } - throw toJs(new JsonImportException('Referenced shape does not exist: ' + id_0)); -} - -function $transferLayoutInt(this$static, node){ - if (instanceOf(node, 239)) { - return $_transferLayoutInt_1(this$static, castTo(node, 33)); - } - else if (instanceOf(node, 186)) { - return $_transferLayoutInt_2(this$static, castTo(node, 118)); - } - else if (instanceOf(node, 354)) { - return $_transferLayoutInt_0(this$static, castTo(node, 137)); - } - else if (instanceOf(node, 352)) { - return $_transferLayoutInt(this$static, castTo(node, 79)); - } - else if (node) { - return null; - } - else { - throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); - } -} - -function $transferShapeLayout(shape_0, jsonObjA){ - var jsonObj; - jsonObj = castTo(jsonObjA, 183); - $addJsonObj(jsonObj, 'x', shape_0.x_0); - $addJsonObj(jsonObj, 'y', shape_0.y_0); - $addJsonObj(jsonObj, 'width', shape_0.width_0); - $addJsonObj(jsonObj, 'height', shape_0.height); -} - -function $transformChildNodes(this$static, jsonNodeA, parent_0){ - var _function, _optJSONArray, _xblockexpression, jsonNode; - _xblockexpression = null; - jsonNode = jsonNodeA; - _optJSONArray = $optJSONArray(jsonNode, 'children'); - _function = new JsonImporter$lambda$0$Type(this$static, parent_0); - _xblockexpression = ($lambda$0_13(_function.$$outer_0, _function.parent_1, _optJSONArray) , _optJSONArray); - return _xblockexpression; -} - -function $transformEdge_1(this$static, jsonObjA, parent_0){ - var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, _xblockexpression, edge, jsonObj; - _xblockexpression = null; - jsonObj = jsonObjA; - edge = $register_2(this$static, createEdge(parent_0), jsonObj); - $setIdentifier(edge, $optString(jsonObj, 'id')); - _optJSONArray = $optJSONArray(jsonObj, 'sources'); - _function = new JsonImporter$lambda$11$Type(this$static, edge); - $lambda$11(_function.$$outer_0, _function.edge_1, _optJSONArray); - _optJSONArray_1 = $optJSONArray(jsonObj, 'targets'); - _function_1 = new JsonImporter$lambda$12$Type(this$static, edge); - $lambda$12_0(_function_1.$$outer_0, _function_1.edge_1, _optJSONArray_1); - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { - _idSave = $optString(jsonObj, 'id'); - _plus = "An edge must have at least one source and one target (edge id: '" + _idSave; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - $transformProperties(jsonObj, edge); - $transformEdgeSections(this$static, jsonObj, edge); - _xblockexpression = $transformLabels(this$static, jsonObj, edge); - return _xblockexpression; -} - -function $transformEdgeSections(this$static, jsonObjA, edge){ - var _function, _get, _get_1, _idSave, _incomingSections, _keySet, _keySet_1, _optJSONArray, _outgoingSections, _plus, _plus_1, id_0, id$iterator, id_1, id_1$iterator, incomingSectionIdentifiers, jsonObj, outgoingSectionIdentifiers, referencedSection, result, result0, section, section$iterator, section_1, section_1$iterator, section_2; - jsonObj = jsonObjA; - incomingSectionIdentifiers = new HashMultimap; - outgoingSectionIdentifiers = new HashMultimap; - _optJSONArray = $optJSONArray(jsonObj, 'sections'); - _function = new JsonImporter$lambda$13$Type(this$static, edge, incomingSectionIdentifiers, outgoingSectionIdentifiers); - $lambda$13(_function.$$outer_0, _function.edge_1, _function.incomingSectionIdentifiers_2, _function.outgoingSectionIdentifiers_3, _optJSONArray); - _keySet = (result0 = incomingSectionIdentifiers.keySet , !result0?(incomingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(incomingSectionIdentifiers, incomingSectionIdentifiers.map_0)):result0); - for (section$iterator = _keySet.iterator_0(); section$iterator.hasNext_0();) { - section = castTo(section$iterator.next_1(), 202); - _get = castTo($get(incomingSectionIdentifiers, section), 21); - for (id$iterator = _get.iterator_0(); id$iterator.hasNext_0();) { - id_0 = id$iterator.next_1(); - referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_0), 202); - if (referencedSection) { - _incomingSections = (!section.incomingSections && (section.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section, 10, 9)) , section.incomingSections); - $add_21(_incomingSections, referencedSection); - } - else { - _idSave = $optString(jsonObj, 'id'); - _plus = 'Referenced edge section does not exist: ' + id_0 + " (edge id: '" + _idSave; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - } - } - _keySet_1 = (result = outgoingSectionIdentifiers.keySet , !result?(outgoingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(outgoingSectionIdentifiers, outgoingSectionIdentifiers.map_0)):result); - for (section_1$iterator = _keySet_1.iterator_0(); section_1$iterator.hasNext_0();) { - section_1 = castTo(section_1$iterator.next_1(), 202); - _get_1 = castTo($get(outgoingSectionIdentifiers, section_1), 21); - for (id_1$iterator = _get_1.iterator_0(); id_1$iterator.hasNext_0();) { - id_1 = id_1$iterator.next_1(); - referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_1), 202); - if (referencedSection) { - _outgoingSections = (!section_1.outgoingSections && (section_1.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section_1, 9, 10)) , section_1.outgoingSections); - $add_21(_outgoingSections, referencedSection); - } - else { - _idSave = $optString(jsonObj, 'id'); - _plus = 'Referenced edge section does not exist: ' + id_1 + " (edge id: '" + _idSave; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - } - } - !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); - if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0) && (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1)) && (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 1) { - section_2 = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - if (!$getIncomingShape(section_2) && !$getOutgoingShape(section_2)) { - $setIncomingShape(section_2, castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); - $setOutgoingShape(section_2, castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - } - } -} - -function $transformEdges_2(this$static, jsonObjA){ - var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, jsonObj, node; - jsonObj = jsonObjA; - node = castTo($get_5($inverse(this$static.nodeJsonMap), jsonObj), 33); - if (!node) { - _idSave = $optString(jsonObj, 'id'); - _plus = "Unable to find elk node for json object '" + _idSave; - _plus_1 = _plus + "' Panic!"; - throw toJs(new JsonImportException(_plus_1)); - } - _optJSONArray = $optJSONArray(jsonObj, 'edges'); - _function = new JsonImporter$lambda$1$Type(this$static, node); - $lambda$1_7(_function.$$outer_0, _function.node_1, _optJSONArray); - _optJSONArray_1 = $optJSONArray(jsonObj, 'children'); - _function_1 = new JsonImporter$lambda$2$Type(this$static); - $lambda$2_5(_function_1.$$outer_0, _optJSONArray_1); -} - -function $transformIndividualSpacings(jsonObjA, layoutData){ - var _function, _hasProperty, _individualSpacings, _keysJsonObj, _not, individualSpacings, jsonIndividualSpacings, jsonObj, keys_0, opts; - jsonObj = jsonObjA; - jsonIndividualSpacings = $optJSONObject_0(jsonObj, 'individualSpacings'); - if (jsonIndividualSpacings) { - _hasProperty = $hasProperty_0(layoutData, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0)); - _not = !_hasProperty; - if (_not) { - _individualSpacings = new IndividualSpacings; - $setProperty_1(layoutData, SPACING_INDIVIDUAL_0, _individualSpacings); - } - individualSpacings = castTo($getProperty_0(layoutData, SPACING_INDIVIDUAL_0), 373); - opts = jsonIndividualSpacings; - _keysJsonObj = null; - !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); - if (_keysJsonObj) { - _function = new JsonImporter$lambda$28$Type(opts, individualSpacings); - $forEach_0(_keysJsonObj, _function); - } - } -} - -function $transformLabels(this$static, jsonObjA, element){ - var _function, _optJSONArray, _xblockexpression, jsonObj; - _xblockexpression = null; - jsonObj = jsonObjA; - _optJSONArray = $optJSONArray(jsonObj, 'labels'); - _function = new JsonImporter$lambda$29$Type(this$static, element); - _xblockexpression = ($lambda$29_0(_function.$$outer_0, _function.element_1, _optJSONArray) , _optJSONArray); - return _xblockexpression; -} - -function $transformNode_0(this$static, jsonNode, parent_0){ - var node, node_0, elkNode, jsonObj, _optJSONArray, _function; - node = $register_4(this$static, (node_0 = ($clinit_ElkGraphFactory() , elkNode = new ElkNodeImpl , elkNode) , !!parent_0 && $setParent_2(node_0, parent_0) , node_0), jsonNode); - $setIdentifier(node, $optString(jsonNode, 'id')); - $transformProperties(jsonNode, node); - $transformIndividualSpacings(jsonNode, node); - $transformShapeLayout(jsonNode, node); - _xblockexpression = null; - jsonObj = jsonNode; - _optJSONArray = $optJSONArray(jsonObj, 'ports'); - _function = new JsonImporter$lambda$30$Type(this$static, node); - $lambda$30(_function.$$outer_0, _function.parent_1, _optJSONArray); - $transformLabels(this$static, jsonNode, node); - $transformChildNodes(this$static, jsonNode, node); - return node; -} - -function $transformPrimitiveEdge(this$static, jsonObjA, parent_0){ - var _asId, _asId_1, _elvis, _elvis_1, _id, _idSave, _idSave_1, _idSave_2, _id_1, _jsonObj, _jsonObj_1, _plus, _plus_1, _plus_2, _plus_3, _plus_4, _plus_5, _plus_6, _plus_7, _plus_8, _plus_9, _sources, _targets, _xblockexpression, edge, jsonObj, srcNode, srcPort, tgtNode, tgtPort; - _xblockexpression = null; - jsonObj = jsonObjA; - edge = $register_2(this$static, createEdge(parent_0), jsonObj); - $setIdentifier(edge, $optString(jsonObj, 'id')); - srcNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'source'))), 33); - _jsonObj = $get_9(jsonObj, 'sourcePort'); - _asId = null; - !!_jsonObj && (_asId = $asId(_jsonObj)); - srcPort = castTo($get_4(this$static.portIdMap, _asId), 118); - if (!srcNode) { - _id = $getId(jsonObj); - _plus = "An edge must have a source node (edge id: '" + _id; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - if (!!srcPort && !equal($getParent_3(srcPort), srcNode)) { - _idSave = $optString(jsonObj, 'id'); - _plus_2 = "The source port of an edge must be a port of the edge's source node (edge id: '" + _idSave; - _plus_3 = _plus_2 + "')."; - throw toJs(new JsonImportException(_plus_3)); - } - _sources = (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources); - _elvis = null; - srcPort?(_elvis = srcPort):(_elvis = srcNode); - $add_21(_sources, _elvis); - tgtNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'target'))), 33); - _jsonObj_1 = $get_9(jsonObj, 'targetPort'); - _asId_1 = null; - !!_jsonObj_1 && (_asId_1 = $asId(_jsonObj_1)); - tgtPort = castTo($get_4(this$static.portIdMap, _asId_1), 118); - if (!tgtNode) { - _id_1 = $getId(jsonObj); - _plus_4 = "An edge must have a target node (edge id: '" + _id_1; - _plus_5 = _plus_4 + "')."; - throw toJs(new JsonImportException(_plus_5)); - } - if (!!tgtPort && !equal($getParent_3(tgtPort), tgtNode)) { - _idSave_1 = $optString(jsonObj, 'id'); - _plus_6 = "The target port of an edge must be a port of the edge's target node (edge id: '" + _idSave_1; - _plus_7 = _plus_6 + "')."; - throw toJs(new JsonImportException(_plus_7)); - } - _targets = (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets); - _elvis_1 = null; - tgtPort?(_elvis_1 = tgtPort):(_elvis_1 = tgtNode); - $add_21(_targets, _elvis_1); - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { - _idSave_2 = $optString(jsonObj, 'id'); - _plus_8 = "An edge must have at least one source and one target (edge id: '" + _idSave_2; - _plus_9 = _plus_8 + "')."; - throw toJs(new JsonImportException(_plus_9)); - } - $transformProperties(jsonObj, edge); - $transformPrimitiveEdgeLayout(jsonObj, edge); - _xblockexpression = $transformLabels(this$static, jsonObj, edge); - return _xblockexpression; -} - -function $transformPrimitiveEdgeLayout(jsonObjA, edge){ - var _function, _function_1, _function_2, _optJSONArray, _optJSONObject, _optJSONObject_1, _xblockexpression, _xblockexpression_1, _xifexpression, jsonObj, section; - _xblockexpression = null; - jsonObj = jsonObjA; - _xifexpression = null; - if ('sourcePoint' in jsonObj.jsObject || 'targetPoint' in jsonObj.jsObject || 'bendPoints' in jsonObj.jsObject) { - _xblockexpression_1 = null; - section = createEdgeSection(edge); - _optJSONObject = $optJSONObject_0(jsonObj, 'sourcePoint'); - _function = new JsonImporter$lambda$3$Type(section); - $lambda$3_4(_function.section_1, _optJSONObject); - _optJSONObject_1 = $optJSONObject_0(jsonObj, 'targetPoint'); - _function_1 = new JsonImporter$lambda$6$Type(section); - $lambda$6_0(_function_1.section_1, _optJSONObject_1); - _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); - _function_2 = new JsonImporter$lambda$9$Type(section); - _xblockexpression_1 = ($lambda$9_1(_function_2.section_1, _optJSONArray) , _optJSONArray); - _xifexpression = _xblockexpression_1; - } - _xblockexpression = _xifexpression; - return _xblockexpression; -} - -function $transformProperties(jsonObjA, layoutData){ - var _function, _keysJsonObj, jsonObj, keys_0, layoutOptions, opts; - jsonObj = jsonObjA; - layoutOptions = $optJSONObject_0(jsonObj, 'layoutOptions'); - !layoutOptions && (layoutOptions = $optJSONObject_0(jsonObj, 'properties')); - if (layoutOptions) { - opts = layoutOptions; - _keysJsonObj = null; - !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); - if (_keysJsonObj) { - _function = new JsonImporter$lambda$27$Type(opts, layoutData); - $forEach_0(_keysJsonObj, _function); - } - } -} - -function $transformShapeLayout(jsonObjA, shape_0){ - var _function, _function_1, _function_2, _function_3, _optDouble, _optDouble_1, _optDouble_2, _optDouble_3, _xblockexpression, jsonObj; - _xblockexpression = null; - jsonObj = jsonObjA; - _optDouble = $optDouble(jsonObj, 'x'); - _function = new JsonImporter$lambda$31$Type(shape_0); - $lambda$31(_function.shape_1, _optDouble); - _optDouble_1 = $optDouble(jsonObj, 'y'); - _function_1 = new JsonImporter$lambda$32$Type(shape_0); - $lambda$32(_function_1.shape_1, _optDouble_1); - _optDouble_2 = $optDouble(jsonObj, 'width'); - _function_2 = new JsonImporter$lambda$33$Type(shape_0); - $lambda$33(_function_2.shape_1, _optDouble_2); - _optDouble_3 = $optDouble(jsonObj, 'height'); - _function_3 = new JsonImporter$lambda$34$Type(shape_0); - _xblockexpression = ($lambda$34(_function_3.shape_1, _optDouble_3) , _optDouble_3); - return _xblockexpression; -} - -function JsonImporter(){ - this._jsonAdapter = new JsonAdapter; - this.nodeIdMap = new HashBiMap; - this.portIdMap = new HashBiMap; - this.edgeIdMap = new HashMap; - this.edgeSectionIdMap = new HashBiMap; - this.nodeJsonMap = new HashBiMap; - this.portJsonMap = new HashMap; - this.edgeJsonMap = new HashMap; - this.edgeSectionJsonMap = new HashMap; - this.labelJsonMap = new HashMap; -} - -defineClass(857, 1, {}, JsonImporter); -var Lorg_eclipse_elk_graph_json_JsonImporter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter', 857); -function JsonImporter$lambda$0$Type($$outer_0, parent_1){ - this.$$outer_0 = $$outer_0; - this.parent_1 = parent_1; -} - -defineClass(891, 1, {}, JsonImporter$lambda$0$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$0$Type', 891); -function JsonImporter$lambda$1$Type($$outer_0, node_1){ - this.$$outer_0 = $$outer_0; - this.node_1 = node_1; -} - -defineClass(892, 1, {}, JsonImporter$lambda$1$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$1$Type', 892); -function JsonImporter$lambda$10$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(900, 1, {}, JsonImporter$lambda$10$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$10$Type', 900); -function JsonImporter$lambda$11$Type($$outer_0, edge_1){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; -} - -defineClass(902, 1, {}, JsonImporter$lambda$11$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$11$Type', 902); -function JsonImporter$lambda$12$Type($$outer_0, edge_1){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; -} - -defineClass(903, 1, {}, JsonImporter$lambda$12$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$12$Type', 903); -function JsonImporter$lambda$13$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; - this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; - this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; -} - -defineClass(909, 1, {}, JsonImporter$lambda$13$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$13$Type', 909); -function JsonImporter$lambda$14$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; - this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; - this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; -} - -defineClass(908, 1, {}, JsonImporter$lambda$14$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$14$Type', 908); -function JsonImporter$lambda$15$Type($$outer_0, elkSection_1){ - this.$$outer_0 = $$outer_0; - this.elkSection_1 = elkSection_1; -} - -defineClass(904, 1, {}, JsonImporter$lambda$15$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$15$Type', 904); -function JsonImporter$lambda$16$Type($$outer_0, elkSection_1){ - this.$$outer_0 = $$outer_0; - this.elkSection_1 = elkSection_1; -} - -defineClass(905, 1, {}, JsonImporter$lambda$16$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$16$Type', 905); -function JsonImporter$lambda$17$Type(incomingSectionIdentifiers_1, elkSection_2){ - this.incomingSectionIdentifiers_1 = incomingSectionIdentifiers_1; - this.elkSection_2 = elkSection_2; -} - -defineClass(906, 1, {}, JsonImporter$lambda$17$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$17$Type', 906); -function JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_1, elkSection_2){ - this.outgoingSectionIdentifiers_1 = outgoingSectionIdentifiers_1; - this.elkSection_2 = elkSection_2; -} - -defineClass(907, 1, {}, JsonImporter$lambda$18$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$18$Type', 907); -function JsonImporter$lambda$19$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(912, 1, {}, JsonImporter$lambda$19$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$19$Type', 912); -function JsonImporter$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(893, 1, {}, JsonImporter$lambda$2$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$2$Type', 893); -function JsonImporter$lambda$20$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(910, 1, {}, JsonImporter$lambda$20$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$20$Type', 910); -function JsonImporter$lambda$21$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(911, 1, {}, JsonImporter$lambda$21$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$21$Type', 911); -function JsonImporter$lambda$22$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(915, 1, {}, JsonImporter$lambda$22$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$22$Type', 915); -function JsonImporter$lambda$23$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(913, 1, {}, JsonImporter$lambda$23$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$23$Type', 913); -function JsonImporter$lambda$24$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(914, 1, {}, JsonImporter$lambda$24$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$24$Type', 914); -function JsonImporter$lambda$25$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(917, 1, {}, JsonImporter$lambda$25$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$25$Type', 917); -function JsonImporter$lambda$26$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(916, 1, {}, JsonImporter$lambda$26$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$26$Type', 916); -function JsonImporter$lambda$27$Type(opts_1, layoutData_2){ - this.opts_1 = opts_1; - this.layoutData_2 = layoutData_2; -} - -defineClass(918, 1, $intern_19, JsonImporter$lambda$27$Type); -_.accept = function accept_153(arg0){ - $lambda$27(this.opts_1, this.layoutData_2, castToString(arg0)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$27$Type', 918); -function JsonImporter$lambda$28$Type(opts_1, individualSpacings_2){ - this.opts_1 = opts_1; - this.individualSpacings_2 = individualSpacings_2; -} - -defineClass(919, 1, $intern_19, JsonImporter$lambda$28$Type); -_.accept = function accept_154(arg0){ - $lambda$28(this.opts_1, this.individualSpacings_2, castToString(arg0)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$28$Type', 919); -function JsonImporter$lambda$29$Type($$outer_0, element_1){ - this.$$outer_0 = $$outer_0; - this.element_1 = element_1; -} - -defineClass(920, 1, {}, JsonImporter$lambda$29$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$29$Type', 920); -function JsonImporter$lambda$3$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(896, 1, {}, JsonImporter$lambda$3$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$3$Type', 896); -function JsonImporter$lambda$30$Type($$outer_0, parent_1){ - this.$$outer_0 = $$outer_0; - this.parent_1 = parent_1; -} - -defineClass(921, 1, {}, JsonImporter$lambda$30$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$30$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$30$Type', 921); -function JsonImporter$lambda$31$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(922, 1, {}, JsonImporter$lambda$31$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$31$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$31$Type', 922); -function JsonImporter$lambda$32$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(923, 1, {}, JsonImporter$lambda$32$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$32$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$32$Type', 923); -function JsonImporter$lambda$33$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(924, 1, {}, JsonImporter$lambda$33$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$33$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$33$Type', 924); -function JsonImporter$lambda$34$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(925, 1, {}, JsonImporter$lambda$34$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$34$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$34$Type', 925); -function $apply_28(this$static, arg0){ - $transferLayoutInt(this$static.$$outer_0, castTo(arg0, 56)); -} - -function JsonImporter$lambda$35$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(859, 1, {}, JsonImporter$lambda$35$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$35$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$35$Type', 859); -function $apply_29(this$static, arg0, arg1){ - $lambda$36(this$static.$$outer_0, this$static.edgeId_1, this$static.sections_2, castTo(arg0, 202), arg1); -} - -function JsonImporter$lambda$36$Type($$outer_0, edgeId_1, sections_2){ - this.$$outer_0 = $$outer_0; - this.edgeId_1 = edgeId_1; - this.sections_2 = sections_2; -} - -defineClass(929, 1, {}, JsonImporter$lambda$36$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$36$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$36$Type', 929); -function JsonImporter$lambda$37$Type(bendPoints_1){ - this.bendPoints_1 = bendPoints_1; -} - -defineClass(926, 1, $intern_19, JsonImporter$lambda$37$Type); -_.accept = function accept_155(arg0){ - $lambda$37(this.bendPoints_1, castTo(arg0, 469)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$37$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$37$Type', 926); -function JsonImporter$lambda$38$Type($$outer_0, incomingSections_1){ - this.$$outer_0 = $$outer_0; - this.incomingSections_1 = incomingSections_1; -} - -defineClass(927, 1, $intern_19, JsonImporter$lambda$38$Type); -_.accept = function accept_156(arg0){ - $lambda$38(this.$$outer_0, this.incomingSections_1, castTo(arg0, 202)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$38$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$38$Type', 927); -function JsonImporter$lambda$39$Type($$outer_0, outgoingSections_1){ - this.$$outer_0 = $$outer_0; - this.outgoingSections_1 = outgoingSections_1; -} - -defineClass(928, 1, $intern_19, JsonImporter$lambda$39$Type); -_.accept = function accept_157(arg0){ - $lambda$39(this.$$outer_0, this.outgoingSections_1, castTo(arg0, 202)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$39$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$39$Type', 928); -function JsonImporter$lambda$4$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(894, 1, {}, JsonImporter$lambda$4$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$4$Type', 894); -function JsonImporter$lambda$40$Type(jsonJPs_1){ - this.jsonJPs_1 = jsonJPs_1; -} - -defineClass(930, 1, $intern_19, JsonImporter$lambda$40$Type); -_.accept = function accept_158(arg0){ - $lambda$40(this.jsonJPs_1, castTo(arg0, 8)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$40$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$40$Type', 930); -function JsonImporter$lambda$5$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(895, 1, {}, JsonImporter$lambda$5$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$5$Type', 895); -function JsonImporter$lambda$6$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(899, 1, {}, JsonImporter$lambda$6$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$6$Type', 899); -function JsonImporter$lambda$7$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(897, 1, {}, JsonImporter$lambda$7$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$7$Type', 897); -function JsonImporter$lambda$8$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(898, 1, {}, JsonImporter$lambda$8$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$8$Type', 898); -function JsonImporter$lambda$9$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(901, 1, {}, JsonImporter$lambda$9$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$9$Type', 901); -function _toJson(lad){ - var _categoryId, _function, _function_1, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, _tripleNotEquals, jsonArr, jsonArr_1, jsonObj; - jsonObj = createCommon(lad); - _categoryId = lad.category; - _tripleNotEquals = _categoryId != null; - _tripleNotEquals && $addJsonObj_1(jsonObj, 'category', lad.category); - _isNullOrEmpty = isNullOrEmpty(new AbstractMap$1(lad.knownOptions)); - _not = !_isNullOrEmpty; - if (_not) { - jsonArr = new JSONArray; - $put_5(jsonObj, 'knownOptions', jsonArr); - _function = new JsonMetaDataConverter$lambda$0$Type(jsonArr); - $forEach_0(new AbstractMap$1(lad.knownOptions), _function); - } - _isNullOrEmpty_1 = isNullOrEmpty(lad.supportedFeatures); - _not_1 = !_isNullOrEmpty_1; - if (_not_1) { - jsonArr_1 = new JSONArray; - $put_5(jsonObj, 'supportedFeatures', jsonArr_1); - _function_1 = new JsonMetaDataConverter$lambda$1$Type(jsonArr_1); - $forEach_0(lad.supportedFeatures, _function_1); - } - return jsonObj; -} - -function _toJson_0(lcd){ - var _function, _isNullOrEmpty, _not, jsonArr, jsonObj; - jsonObj = createCommon(lcd); - _isNullOrEmpty = isNullOrEmpty(lcd.layouters); - _not = !_isNullOrEmpty; - if (_not) { - jsonArr = new JSONArray; - $put_5(jsonObj, 'knownLayouters', jsonArr); - _function = new JsonMetaDataConverter$lambda$2$Type(jsonArr); - $forEach_0(lcd.layouters, _function); - } - return jsonObj; -} - -function _toJson_1(lod){ - var _function, _group, _isNullOrEmpty, _not, _tripleNotEquals, _tripleNotEquals_1, _type, jsonArr, jsonObj; - jsonObj = createCommon(lod); - _group = lod.group_0; - _tripleNotEquals = _group != null; - _tripleNotEquals && $addJsonObj_1(jsonObj, 'group', lod.group_0); - _type = lod.type_0; - _tripleNotEquals_1 = !!_type; - _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'type', $toString_3(lod.type_0)); - _isNullOrEmpty = isNullOrEmpty(lod.targets); - _not = !_isNullOrEmpty; - if (_not) { - jsonArr = new JSONArray; - $put_5(jsonObj, 'targets', jsonArr); - _function = new JsonMetaDataConverter$lambda$3$Type(jsonArr); - $forEach_0(lod.targets, _function); - } - return jsonObj; -} - -function createCommon(data_0){ - var _description, _id, _name, _tripleNotEquals, _tripleNotEquals_1, _tripleNotEquals_2, jsonObj; - jsonObj = new JSONObject; - _id = data_0.getId(); - _tripleNotEquals = _id != null; - _tripleNotEquals && $addJsonObj_1(jsonObj, 'id', data_0.getId()); - _name = data_0.getName(); - _tripleNotEquals_1 = _name != null; - _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'name', data_0.getName()); - _description = data_0.getDescription(); - _tripleNotEquals_2 = _description != null; - _tripleNotEquals_2 && $addJsonObj_1(jsonObj, 'description', data_0.getDescription()); - return jsonObj; -} - -function lambda$1_22(jsonArr_1_0, f_1){ - $addJsonArr(jsonArr_1_0, new JSONString(f_1.name_0 != null?f_1.name_0:'' + f_1.ordinal)); -} - -function lambda$2_12(jsonArr_0, l_1){ - var _id, _tripleNotEquals; - _id = l_1.id_0; - _tripleNotEquals = _id != null; - _tripleNotEquals && $addJsonArr(jsonArr_0, new JSONString(l_1.id_0)); -} - -function lambda$3_8(jsonArr_0, t_1){ - $addJsonArr(jsonArr_0, new JSONString(t_1.name_0 != null?t_1.name_0:'' + t_1.ordinal)); -} - -function toJson(lad){ - if (instanceOf(lad, 149)) { - return _toJson(castTo(lad, 149)); - } - else if (instanceOf(lad, 229)) { - return _toJson_0(castTo(lad, 229)); - } - else if (instanceOf(lad, 23)) { - return _toJson_1(castTo(lad, 23)); - } - else { - throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [lad]))))); - } -} - -function JsonMetaDataConverter$lambda$0$Type(jsonArr_0){ - this.jsonArr_0 = jsonArr_0; -} - -defineClass(948, 1, $intern_19, JsonMetaDataConverter$lambda$0$Type); -_.accept = function accept_159(arg0){ - $addJsonArr(this.jsonArr_0, new JSONString(castToString(arg0))); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$0$Type', 948); -function JsonMetaDataConverter$lambda$1$Type(jsonArr_1_0){ - this.jsonArr_1_0 = jsonArr_1_0; -} - -defineClass(949, 1, $intern_19, JsonMetaDataConverter$lambda$1$Type); -_.accept = function accept_160(arg0){ - lambda$1_22(this.jsonArr_1_0, castTo(arg0, 237)); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$1$Type', 949); -function JsonMetaDataConverter$lambda$2$Type(jsonArr_0){ - this.jsonArr_0 = jsonArr_0; -} - -defineClass(950, 1, $intern_19, JsonMetaDataConverter$lambda$2$Type); -_.accept = function accept_161(arg0){ - lambda$2_12(this.jsonArr_0, castTo(arg0, 149)); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$2$Type', 950); -function JsonMetaDataConverter$lambda$3$Type(jsonArr_0){ - this.jsonArr_0 = jsonArr_0; -} - -defineClass(951, 1, $intern_19, JsonMetaDataConverter$lambda$3$Type); -_.accept = function accept_162(arg0){ - lambda$3_8(this.jsonArr_0, castTo(arg0, 175)); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$3$Type', 951); -function $clinit_GraphFeature(){ - $clinit_GraphFeature = emptyMethod; - SELF_LOOPS_0 = new GraphFeature('SELF_LOOPS', 0); - INSIDE_SELF_LOOPS = new GraphFeature('INSIDE_SELF_LOOPS', 1); - MULTI_EDGES = new GraphFeature('MULTI_EDGES', 2); - EDGE_LABELS = new GraphFeature('EDGE_LABELS', 3); - PORTS_1 = new GraphFeature('PORTS', 4); - COMPOUND = new GraphFeature('COMPOUND', 5); - CLUSTERS = new GraphFeature('CLUSTERS', 6); - DISCONNECTED = new GraphFeature('DISCONNECTED', 7); -} - -function GraphFeature(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_111(name_0){ - $clinit_GraphFeature(); - return valueOf(($clinit_GraphFeature$Map() , $MAP_99), name_0); -} - -function values_117(){ - $clinit_GraphFeature(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]); -} - -defineClass(237, 22, {3:1, 35:1, 22:1, 237:1}, GraphFeature); -var CLUSTERS, COMPOUND, DISCONNECTED, EDGE_LABELS, INSIDE_SELF_LOOPS, MULTI_EDGES, PORTS_1, SELF_LOOPS_0; -var Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit = createForEnum('org.eclipse.elk.graph.properties', 'GraphFeature', 237, Ljava_lang_Enum_2_classLit, values_117, valueOf_111); -function $clinit_GraphFeature$Map(){ - $clinit_GraphFeature$Map = emptyMethod; - $MAP_99 = createValueOfMap(($clinit_GraphFeature() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]))); -} - -var $MAP_99; -function $compareTo_21(this$static, other){ - return $compareTo_9(this$static.id_0, other.getId()); -} - -function $equals_10(this$static, obj){ - return instanceOf(obj, 146) && $equals_5(this$static.id_0, castTo(obj, 146).getId()); -} - -function $getDefault(this$static){ - var clone; - if (instanceOf(this$static.defaultValue, 4)) { - clone = clone_11(this$static.defaultValue); - if (clone == null) { - throw toJs(new IllegalStateException_0("Couldn't clone property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); - } - return clone; - } - else { - return this$static.defaultValue; - } -} - -function Property(theid){ - this.id_0 = theid; -} - -function Property_0(theid, thedefaultValue){ - Property.call(this, theid); - this.defaultValue = thedefaultValue; -} - -function Property_1(theid, thedefaultValue){ - Property_0.call(this, theid, thedefaultValue); -} - -function Property_2(other, thedefaultValue){ - Property_0.call(this, other.id_0, thedefaultValue); -} - -defineClass(13, 1, {35:1, 146:1}, Property, Property_0, Property_1, Property_2); -_.compareTo_0 = function compareTo_22(other){ - return $compareTo_21(this, castTo(other, 146)); -} -; -_.equals_0 = function equals_184(obj){ - return $equals_10(this, obj); -} -; -_.getDefault = function getDefault_0(){ - return $getDefault(this); -} -; -_.getId = function getId_2(){ - return this.id_0; -} -; -_.hashCode_1 = function hashCode_73(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_134(){ - return this.id_0; -} -; -var Lorg_eclipse_elk_graph_properties_Property_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'Property', 13); -function $compare_26(this$static, ph1, ph2){ - var p1, p2; - p1 = castTo(ph1.getProperty(this$static.property), 35); - p2 = castTo(ph2.getProperty(this$static.property), 35); - return p1 != null && p2 != null?compareTo_Ljava_lang_Object__I__devirtual$(p1, p2):p1 != null?-1:p2 != null?1:0; -} - -function PropertyHolderComparator(property){ - this.property = property; -} - -defineClass(818, 1, $intern_88, PropertyHolderComparator); -_.compare_1 = function compare_87(ph1, ph2){ - return $compare_26(this, castTo(ph1, 94), castTo(ph2, 94)); -} -; -_.equals_0 = function equals_185(other){ - return this === other; -} -; -_.reversed = function reversed_79(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_graph_properties_PropertyHolderComparator_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'PropertyHolderComparator', 818); -function allIncomingEdges(node){ - var incomingEdgeIterables, port, port$iterator; - incomingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); - $add_3(incomingEdgeIterables, (!node.incomingEdges && (node.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 8, 5)) , node.incomingEdges)); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - $add_3(incomingEdgeIterables, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); - } - return checkNotNull(incomingEdgeIterables) , new FluentIterable$2(incomingEdgeIterables); -} - -function allOutgoingEdges(node){ - var outgoingEdgeIterables, port, port$iterator; - outgoingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); - $add_3(outgoingEdgeIterables, (!node.outgoingEdges && (node.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 7, 4)) , node.outgoingEdges)); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - $add_3(outgoingEdgeIterables, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); - } - return checkNotNull(outgoingEdgeIterables) , new FluentIterable$2(outgoingEdgeIterables); -} - -function connectableShapeToNode(connectableShape){ - if (instanceOf(connectableShape, 239)) { - return castTo(connectableShape, 33); - } - else if (instanceOf(connectableShape, 186)) { - return $getParent_3(castTo(connectableShape, 118)); - } - else if (!connectableShape) { - throw toJs(new NullPointerException_0('connectableShape cannot be null')); - } - else { - throw toJs(new UnsupportedOperationException_0('Only support nodes and ports.')); - } -} - -function connectableShapeToPort(connectableShape){ - if (instanceOf(connectableShape, 186)) { - return castTo(connectableShape, 118); - } - else if (!connectableShape) { - throw toJs(new NullPointerException_0('connectableShape cannot be null')); - } - else { - return null; - } -} - -function createBendPoint(edgeSection, x_0, y_0){ - var bendPoint, elkBendPoint; - bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); - $setX_1(bendPoint, x_0); - $setY_2(bendPoint, y_0); - !!edgeSection && $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); - return bendPoint; -} - -function createEdge(containingNode){ - var edge, elkEdge; - edge = ($clinit_ElkGraphFactory() , elkEdge = new ElkEdgeImpl , elkEdge); - !!containingNode && $setContainingNode(edge, containingNode); - return edge; -} - -function createEdgeSection(edge){ - var elkEdgeSection, section; - section = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); - !!edge && $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), section); - return section; -} - -function createLabel(text_0, parent_0){ - var label_0, label_1, elkLabel; - label_0 = (label_1 = ($clinit_ElkGraphFactory() , elkLabel = new ElkLabelImpl , elkLabel) , !!parent_0 && $setParent_1(label_1, parent_0) , label_1); - $setText(label_0, text_0); - return label_0; -} - -function findBestEdgeContainment(edge){ - var commonAncestor, incidentNode, incidentShapes, sourceNode, targetNode; - requireNonNull(edge, 'edge cannot be null'); - switch ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 + (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0) { - case 0: - throw toJs(new IllegalArgumentException_0('The edge must have at least one source or target.')); - case 1: - return (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0?$getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))):$getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); - } - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 1) { - sourceNode = connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); - targetNode = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - if ($getParent_2(sourceNode) == $getParent_2(targetNode)) { - return $getParent_2(sourceNode); - } - else if (sourceNode == $getParent_2(targetNode)) { - return sourceNode; - } - else if (targetNode == $getParent_2(sourceNode)) { - return targetNode; - } - } - incidentShapes = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)]))); - commonAncestor = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); - while ($hasNext_1(incidentShapes)) { - incidentNode = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); - if (incidentNode != commonAncestor && !isDescendant_0(incidentNode, commonAncestor)) { - if ($getParent_2(incidentNode) == $getParent_2(commonAncestor)) { - commonAncestor = $getParent_2(incidentNode); - } - else { - commonAncestor = findLowestCommonAncestor(commonAncestor, incidentNode); - if (!commonAncestor) { - return null; - } - } - } - } - return commonAncestor; -} - -function findLowestCommonAncestor(node1, node2){ - var ancestor1, ancestor2, ancestors1, ancestors2, commonAncestor, iterator1, iterator2; - ancestors1 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node1)); - iterator1 = new AbstractList$ListIteratorImpl(ancestors1, ancestors1.array.length); - ancestors2 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node2)); - iterator2 = new AbstractList$ListIteratorImpl(ancestors2, ancestors2.array.length); - commonAncestor = null; - while (iterator1.i > 0 && iterator2.i > 0) { - ancestor1 = (checkCriticalElement(iterator1.i > 0) , castTo(iterator1.this$01.get_0(iterator1.last = --iterator1.i), 33)); - ancestor2 = (checkCriticalElement(iterator2.i > 0) , castTo(iterator2.this$01.get_0(iterator2.last = --iterator2.i), 33)); - if (ancestor1 == ancestor2) { - commonAncestor = ancestor1; - } - else { - break; - } - } - return commonAncestor; -} - -function firstEdgeSection(edge, resetSection, removeOtherSections){ - var section, sections; - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { - return createEdgeSection(edge); - } - else { - section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - if (resetSection) { - $clear_13((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); - $setStartX(section, 0); - $setStartY(section, 0); - $setEndX(section, 0); - $setEndY(section, 0); - } - if (removeOtherSections) { - sections = (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections); - while (sections.size_0 > 1) { - $remove_35(sections, sections.size_0 - 1); - } - } - return section; - } -} - -function getSourceNode(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToNode(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); -} - -function getSourcePort(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToPort(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); -} - -function getTargetNode_0(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToNode(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); -} - -function getTargetPort(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToPort(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); -} - -function isDescendant_0(child, ancestor){ - var current; - current = child; - while ($getParent_2(current)) { - current = $getParent_2(current); - if (current == ancestor) { - return true; - } - } - return false; -} - -function updateContainment(edge){ - requireNonNull(edge, 'edge cannot be null'); - $setContainingNode(edge, findBestEdgeContainment(edge)); -} - -function $next_13(this$static){ - var next; - if (!this$static.nextNode) { - throw toJs(new NoSuchElementException_0); - } - next = this$static.nextNode; - this$static.nextNode = $getParent_2(this$static.nextNode); - return next; -} - -function ElkGraphUtil$AncestorIterator(startNode){ - this.nextNode = startNode; -} - -defineClass(695, 1, $intern_6, ElkGraphUtil$AncestorIterator); -_.forEachRemaining = function forEachRemaining_52(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_42(){ - return $next_13(this); -} -; -_.remove = function remove_97(){ - $remove_21(); -} -; -_.hasNext_0 = function hasNext_41(){ - return !!this.nextNode; -} -; -var Lorg_eclipse_elk_graph_util_ElkGraphUtil$AncestorIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/AncestorIterator', 695); -var Lorg_eclipse_emf_common_util_EList_2_classLit = createForInterface('org.eclipse.emf.common.util', 'EList'); -function $add_20(this$static, index_0, object){ - var size_0; - size_0 = this$static.size_1(); - if (index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - if (this$static.isUnique() && this$static.contains(object)) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - this$static.addUnique(index_0, object); -} - -function $add_21(this$static, object){ - if (this$static.isUnique() && this$static.contains(object)) { - return false; - } - else { - this$static.addUnique_0(object); - return true; - } -} - -function $addAll_8(this$static, index_0, collection){ - var size_0; - size_0 = this$static.size_1(); - if (index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); - return this$static.addAllUnique(index_0, collection); -} - -function $addAll_9(this$static, collection){ - this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); - return this$static.addAllUnique_0(collection); -} - -function $basicListIterator(this$static, index_0){ - var size_0; - size_0 = this$static.size_1(); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new AbstractEList$NonResolvingEListIterator_0(this$static, index_0); -} - -function $didClear(this$static, size_0, oldObjects){ - var i, object; - if (oldObjects != null) { - for (i = 0; i < size_0; ++i) { - object = oldObjects[i]; - this$static.didRemove(i, object); - } - } -} - -function $equals_11(this$static, object){ - var i, list, o1, o2, objects, size_0; - if (maskUndefined(object) === maskUndefined(this$static)) { - return true; - } - if (!instanceOf(object, 15)) { - return false; - } - list = castTo(object, 15); - size_0 = this$static.size_1(); - if (list.size_1() != size_0) { - return false; - } - objects = list.iterator_0(); - if (this$static.useEquals()) { - for (i = 0; i < size_0; ++i) { - o1 = this$static.primitiveGet(i); - o2 = objects.next_1(); - if (o1 == null?o2 != null:!equals_Ljava_lang_Object__Z__devirtual$(o1, o2)) { - return false; - } - } - } - else { - for (i = 0; i < size_0; ++i) { - o1 = this$static.primitiveGet(i); - o2 = objects.next_1(); - if (maskUndefined(o1) !== maskUndefined(o2)) { - return false; - } - } - } - return true; -} - -function $getDuplicates(this$static, collection){ - var filteredResult, object, object$iterator; - if (collection.isEmpty()) { - return $clinit_ECollections() , $clinit_ECollections() , EMPTY_ELIST; - } - else { - filteredResult = new AbstractEList$1(this$static, collection.size_1()); - for (object$iterator = new AbstractEList$EIterator(this$static); object$iterator.cursor != object$iterator.this$01_2.size_1();) { - object = $doNext(object$iterator); - collection.contains(object) && $add_21(filteredResult, object); - } - return filteredResult; - } -} - -function $getNonDuplicates(this$static, collection){ - var result; - result = new LinkedHashSet_1(collection); - $removeAll_1(result, this$static); - return new ArrayList_1(result); -} - -function $hashCode_2(this$static){ - var hashCode, i, object, size_0; - hashCode = 1; - for (i = 0 , size_0 = this$static.size_1(); i < size_0; ++i) { - object = this$static.primitiveGet(i); - hashCode = 31 * hashCode + (object == null?0:hashCode__I__devirtual$(object)); - } - return hashCode; -} - -function $remove_32(this$static, object){ - var index_0; - index_0 = this$static.indexOf_0(object); - if (index_0 >= 0) { - this$static.remove_2(index_0); - return true; - } - else { - return false; - } -} - -function $set_11(this$static, index_0, object){ - var currentIndex, size_0; - size_0 = this$static.size_1(); - if (index_0 >= size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - if (this$static.isUnique()) { - currentIndex = this$static.indexOf_0(object); - if (currentIndex >= 0 && currentIndex != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - return this$static.setUnique(index_0, object); -} - -function $toString_25(this$static){ - var i, size_0, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - for (i = 0 , size_0 = this$static.size_1(); i < size_0;) { - $append_3(stringBuffer, valueOf_7(this$static.primitiveGet(i))); - ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} - -function $validate(this$static, object){ - if (!this$static.canContainNull() && object == null) { - throw toJs(new IllegalArgumentException_0("The 'no null' constraint is violated")); - } - return object; -} - -defineClass(67, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}); -_.add_3 = function add_46(index_0, object){ - $add_20(this, index_0, object); -} -; -_.add_2 = function add_47(object){ - return $add_21(this, object); -} -; -_.addAll_0 = function addAll_24(index_0, collection){ - return $addAll_8(this, index_0, collection); -} -; -_.addAll = function addAll_25(collection){ - return $addAll_9(this, collection); -} -; -_.basicIterator = function basicIterator(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_0(index_0){ - return $basicListIterator(this, index_0); -} -; -_.canContainNull = function canContainNull(){ - return true; -} -; -_.didAdd = function didAdd(index_0, newObject){ -} -; -_.didChange = function didChange(){ -} -; -_.didClear = function didClear(size_0, oldObjects){ - $didClear(this, size_0, oldObjects); -} -; -_.didMove = function didMove(index_0, movedObject, oldIndex){ -} -; -_.didRemove = function didRemove(index_0, oldObject){ -} -; -_.didSet = function didSet(index_0, newObject, oldObject){ -} -; -_.equals_0 = function equals_186(object){ - return $equals_11(this, object); -} -; -_.hashCode_1 = function hashCode_74(){ - return $hashCode_2(this); -} -; -_.isUnique = function isUnique_0(){ - return false; -} -; -_.iterator_0 = function iterator_79(){ - return new AbstractEList$EIterator(this); -} -; -_.listIterator_0 = function listIterator_17(){ - return new AbstractEList$EListIterator(this); -} -; -_.listIterator_1 = function listIterator_18(index_0){ - var size_0; - size_0 = this.size_1(); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new AbstractEList$EListIterator_0(this, index_0); -} -; -_.move_0 = function move_0(index_0, object){ - this.move(index_0, this.indexOf_0(object)); -} -; -_.remove_1 = function remove_98(object){ - return $remove_32(this, object); -} -; -_.resolve = function resolve_0(index_0, object){ - return object; -} -; -_.set_2 = function set_21(index_0, object){ - return $set_11(this, index_0, object); -} -; -_.toString_0 = function toString_135(){ - return $toString_25(this); -} -; -_.useEquals = function useEquals(){ - return true; -} -; -_.validate = function validate(index_0, object){ - return $validate(this, object); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList', 67); -function $addAllUnique(this$static, index_0, collection){ - var growth, i, object, objects, shifted; - growth = collection.size_1(); - this$static.grow(this$static.size_0 + growth); - shifted = this$static.size_0 - index_0; - shifted > 0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + growth, shifted); - objects = collection.iterator_0(); - this$static.size_0 += growth; - for (i = 0; i < growth; ++i) { - object = objects.next_1(); - $assign(this$static, index_0, this$static.validate(index_0, object)); - this$static.didAdd(index_0, object); - this$static.didChange(); - ++index_0; - } - return growth != 0; -} - -function $addAllUnique_0(this$static, collection){ - var growth, i, object, objects, oldSize; - growth = collection.size_1(); - this$static.grow(this$static.size_0 + growth); - objects = collection.iterator_0(); - oldSize = this$static.size_0; - this$static.size_0 += growth; - for (i = oldSize; i < this$static.size_0; ++i) { - object = objects.next_1(); - $assign(this$static, i, this$static.validate(i, object)); - this$static.didAdd(i, object); - this$static.didChange(); - } - return growth != 0; -} - -function $addUnique(this$static, index_0, object){ - var validatedObject; - this$static.grow(this$static.size_0 + 1); - validatedObject = this$static.validate(index_0, object); - index_0 != this$static.size_0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + 1, this$static.size_0 - index_0); - setCheck(this$static.data_0, index_0, validatedObject); - ++this$static.size_0; - this$static.didAdd(index_0, object); - this$static.didChange(); -} - -function $addUnique_0(this$static, object){ - this$static.grow(this$static.size_0 + 1); - $assign(this$static, this$static.size_0, this$static.validate(this$static.size_0, object)); - this$static.didAdd(this$static.size_0++, object); - this$static.didChange(); -} - -function $assign(this$static, index_0, object){ - setCheck(this$static.data_0, index_0, object); - return object; -} - -function $basicGet(this$static, index_0){ - if (this$static.data_0 == null || index_0 >= this$static.size_0) - throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); - return this$static.data_0[index_0]; -} - -function $clear_11(this$static){ - var oldData, oldSize; - ++this$static.modCount; - oldData = this$static.data_0; - oldSize = this$static.size_0; - this$static.data_0 = null; - this$static.size_0 = 0; - this$static.didClear(oldSize, oldData); - this$static.didChange(); -} - -function $contains_10(this$static, object){ - var i; - if (this$static.useEquals() && object != null) { - for (i = 0; i < this$static.size_0; ++i) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { - return true; - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { - return true; - } - } - } - return false; -} - -function $get_20(this$static, index_0){ - if (this$static.data_0 == null || index_0 >= this$static.size_0) - throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); - return this$static.resolve(index_0, this$static.data_0[index_0]); -} - -function $indexOf_4(this$static, object){ - var i; - if (this$static.useEquals() && object != null) { - for (i = 0; i < this$static.size_0; ++i) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { - return i; - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { - return i; - } - } - } - return -1; -} - -function $move(this$static, targetIndex, sourceIndex){ - var object; - ++this$static.modCount; - if (targetIndex >= this$static.size_0) - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + this$static.size_0)); - if (sourceIndex >= this$static.size_0) - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + this$static.size_0)); - object = this$static.data_0[sourceIndex]; - if (targetIndex != sourceIndex) { - targetIndex < sourceIndex?arraycopy(this$static.data_0, targetIndex, this$static.data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(this$static.data_0, sourceIndex + 1, this$static.data_0, sourceIndex, targetIndex - sourceIndex); - setCheck(this$static.data_0, targetIndex, object); - this$static.didMove(targetIndex, object, sourceIndex); - this$static.didChange(); - } - return object; -} - -function $remove_33(this$static, index_0){ - var oldObject, shifted; - if (index_0 >= this$static.size_0) - throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); - ++this$static.modCount; - oldObject = this$static.data_0[index_0]; - shifted = this$static.size_0 - index_0 - 1; - shifted > 0 && arraycopy(this$static.data_0, index_0 + 1, this$static.data_0, index_0, shifted); - setCheck(this$static.data_0, --this$static.size_0, null); - this$static.didRemove(index_0, oldObject); - this$static.didChange(); - return oldObject; -} - -function $setUnique(this$static, index_0, object){ - var oldObject; - oldObject = this$static.data_0[index_0]; - $assign(this$static, index_0, this$static.validate(index_0, object)); - this$static.didSet(index_0, object, oldObject); - this$static.didChange(); - return oldObject; -} - -function $shrink_0(this$static){ - var oldData; - ++this$static.modCount; - if (this$static.size_0 == 0) { - this$static.data_0 = null; - } - else if (this$static.size_0 < this$static.data_0.length) { - oldData = this$static.data_0; - this$static.data_0 = this$static.newData(this$static.size_0); - arraycopy(oldData, 0, this$static.data_0, 0, this$static.size_0); - } -} - -function $toArray_9(this$static){ - var result; - result = this$static.newData(this$static.size_0); - this$static.size_0 > 0 && arraycopy(this$static.data_0, 0, result, 0, this$static.size_0); - return result; -} - -function $toArray_10(this$static, array){ - var newArray; - if (this$static.size_0 > 0) { - if (array.length < this$static.size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, this$static.size_0); - array = newArray; - } - arraycopy(this$static.data_0, 0, array, 0, this$static.size_0); - } - array.length > this$static.size_0 && setCheck(array, this$static.size_0, null); - return array; -} - -function BasicEList(){ -} - -function BasicEList_0(initialCapacity){ - if (initialCapacity < 0) { - throw toJs(new IllegalArgumentException_0('Illegal Capacity: ' + initialCapacity)); - } - this.data_0 = this.newData(initialCapacity); -} - -function BasicEList_1(collection){ - this.size_0 = collection.size_1(); - if (this.size_0 > 0) { - this.data_0 = this.newData(this.size_0 + (this.size_0 / 8 | 0) + 1); - collection.toArray_0(this.data_0); - } -} - -defineClass(63, 67, $intern_138, BasicEList, BasicEList_0, BasicEList_1); -_.addAllUnique = function addAllUnique(index_0, collection){ - return $addAllUnique(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_0(collection){ - return $addAllUnique_0(this, collection); -} -; -_.addUnique = function addUnique(index_0, object){ - $addUnique(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_0(object){ - $addUnique_0(this, object); -} -; -_.basicGet = function basicGet(index_0){ - return $basicGet(this, index_0); -} -; -_.clear_0 = function clear_52(){ - $clear_11(this); -} -; -_.contains = function contains_52(object){ - return $contains_10(this, object); -} -; -_.get_0 = function get_50(index_0){ - return $get_20(this, index_0); -} -; -_.grow = function grow(minimumCapacity){ - var newCapacity, oldCapacity, oldData; - ++this.modCount; - oldCapacity = this.data_0 == null?0:this.data_0.length; - if (minimumCapacity > oldCapacity) { - oldData = this.data_0; - newCapacity = oldCapacity + (oldCapacity / 2 | 0) + 4; - newCapacity < minimumCapacity && (newCapacity = minimumCapacity); - this.data_0 = this.newData(newCapacity); - oldData != null && arraycopy(oldData, 0, this.data_0, 0, this.size_0); - } -} -; -_.indexOf_0 = function indexOf_8(object){ - return $indexOf_4(this, object); -} -; -_.isEmpty = function isEmpty_26(){ - return this.size_0 == 0; -} -; -_.move = function move_1(targetIndex, sourceIndex){ - return $move(this, targetIndex, sourceIndex); -} -; -_.newData = function newData_0(capacity){ - return initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, capacity, 5, 1); -} -; -_.primitiveGet = function primitiveGet(index_0){ - return this.data_0[index_0]; -} -; -_.remove_2 = function remove_99(index_0){ - return $remove_33(this, index_0); -} -; -_.setUnique = function setUnique(index_0, object){ - return $setUnique(this, index_0, object); -} -; -_.size_1 = function size_65(){ - return this.size_0; -} -; -_.toArray = function toArray_26(){ - return $toArray_9(this); -} -; -_.toArray_0 = function toArray_27(array){ - return $toArray_10(this, array); -} -; -_.size_0 = 0; -var Lorg_eclipse_emf_common_util_BasicEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList', 63); -var Lorg_eclipse_emf_common_util_TreeIterator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'TreeIterator'); -function $hasAnyChildren(this$static){ - var nextPruneIterator; - nextPruneIterator = this$static.nextPruneIterator; - nextPruneIterator = this$static.getChildren(this$static.object); - $add_21(this$static, nextPruneIterator); - return nextPruneIterator.hasNext_0(); -} - -function $next_14(this$static){ - var currentIterator, iterator, nextIterator, result, result0; - if (this$static.data_0 == null) { - this$static.nextPruneIterator = this$static.getChildren(this$static.object); - $add_21(this$static, this$static.nextPruneIterator); - if (this$static.includeRoot) { - result0 = this$static.object; - return result0; - } - } - currentIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); - result = currentIterator.next_1(); - this$static.nextRemoveIterator = currentIterator; - iterator = this$static.getChildren(result); - if (iterator.hasNext_0()) { - this$static.nextPruneIterator = iterator; - $add_21(this$static, iterator); - } - else { - this$static.nextPruneIterator = null; - while (!currentIterator.hasNext_0()) { - setCheck(this$static.data_0, --this$static.size_0, null); - if (this$static.size_0 == 0) { - break; - } - nextIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); - currentIterator = nextIterator; - } - } - return result; -} - -function AbstractTreeIterator(object, includeRoot){ - this.object = object; - this.includeRoot = includeRoot; -} - -defineClass(694, 63, $intern_139); -_.forEachRemaining = function forEachRemaining_53(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_42(){ - return this.data_0 == null && !this.includeRoot?$hasAnyChildren(this):this.data_0 == null || this.size_0 != 0 && castTo(this.data_0[this.size_0 - 1], 47).hasNext_0(); -} -; -_.next_1 = function next_43(){ - return $next_14(this); -} -; -_.remove = function remove_100(){ - if (!this.nextRemoveIterator) { - throw toJs(new IllegalStateException_0('There is no valid object to remove.')); - } - this.nextRemoveIterator.remove(); -} -; -_.includeRoot = false; -var Lorg_eclipse_emf_common_util_AbstractTreeIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractTreeIterator', 694); -function ElkGraphUtil$PropertiesSkippingTreeIterator(object){ - AbstractTreeIterator.call(this, object, true); -} - -defineClass(685, 694, $intern_139, ElkGraphUtil$PropertiesSkippingTreeIterator); -_.getChildren = function getChildren(object){ - var iterator; - iterator = castTo(object, 56).eContents_0().iterator_0(); - instanceOf(iterator, 279) && castTo(iterator, 279).filter_0(new ElkGraphUtil$PropertiesSkippingTreeIterator$1); - return iterator; -} -; -var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator', 685); -function ElkGraphUtil$PropertiesSkippingTreeIterator$1(){ -} - -defineClass(952, 1, {}, ElkGraphUtil$PropertiesSkippingTreeIterator$1); -var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator$1_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator/1', 952); -function $clinit_ElkReflect(){ - $clinit_ElkReflect = emptyMethod; - REGISTRY_NEW = new HashMap; - REGISTRY_CLONE = new HashMap; - registerClone(Ljava_util_EnumSet_2_classLit, new ElkReflect$lambda$0$Type); -} - -function clone_11(clonee){ - $clinit_ElkReflect(); - if (instanceOf(clonee, 156)) { - return castTo($get_10(REGISTRY_CLONE, Ljava_util_EnumSet_2_classLit), 288).clone(clonee); - } - if ($containsKey_3(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee))) { - return castTo($get_10(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee)), 288).clone(clonee); - } - return null; -} - -function newInstance_10(clazz){ - $clinit_ElkReflect(); - return $containsKey_3(REGISTRY_NEW, clazz)?castTo($get_10(REGISTRY_NEW, clazz), 331).newInstance():null; -} - -function register(clazz, newFun, cloneFun){ - $clinit_ElkReflect(); - !!clazz && $put_6(REGISTRY_NEW, clazz, newFun); - !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); -} - -function registerClone(clazz, cloneFun){ - !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); -} - -var REGISTRY_CLONE, REGISTRY_NEW; -var Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect', null); -function ElkReflect$lambda$0$Type(){ -} - -defineClass(889, 1, $intern_130, ElkReflect$lambda$0$Type); -_.clone = function clone_12(o){ - return $clinit_ElkReflect() , $clone(castTo(o, 174)); -} -; -var Lorg_eclipse_elk_graph_util_ElkReflect$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect/lambda$0$Type', 889); -function $clinit_ElkJs(){ - $clinit_ElkJs = emptyMethod; - SERVICE = getInstance(); -} - -function collectLogs(currentPM, logObject, recordLogs, recordExecutionTime){ - var child, child$iterator, children, i, jsonChild, jsonExecTime, jsonLogs, jsonString, jsonTaskName, s, s$iterator; - jsonTaskName = new JSONString(currentPM.taskName); - $put_5(logObject, 'name', jsonTaskName); - if (recordLogs && !(!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).list.isEmpty()) { - jsonLogs = new JSONArray; - $put_5(logObject, 'logs', jsonLogs); - i = 0; - for (s$iterator = new Collections$UnmodifiableCollectionIterator((!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).coll.iterator_0()); s$iterator.it.hasNext_0();) { - s = castToString(s$iterator.it.next_1()); - jsonString = new JSONString(s); - $get_8(jsonLogs, i); - $set0(jsonLogs, i, jsonString); - ++i; - } - } - if (recordExecutionTime) { - jsonExecTime = new JSONNumber(currentPM.totalTime); - $put_5(logObject, 'executionTime', jsonExecTime); - } - if (!unmodifiableList(currentPM.children).list.isEmpty()) { - children = new JSONArray; - $put_5(logObject, 'children', children); - i = 0; - for (child$iterator = new Collections$UnmodifiableCollectionIterator(unmodifiableList(currentPM.children).coll.iterator_0()); child$iterator.it.hasNext_0();) { - child = castTo(child$iterator.it.next_1(), 1949); - jsonChild = new JSONObject; - $get_8(children, i); - $set0(children, i, jsonChild); - collectLogs(child, jsonChild, recordLogs, recordExecutionTime); - ++i; - } - } -} - -function exportLayout(){ - $clinit_ElkJs(); - function Dispatcher(worker){ - var _this = this; - this.dispatch = function(event_0){ - var data_0 = event_0.data; - switch (data_0.cmd) { - case 'algorithms': - var algs = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutAlgorithmMap)))); - worker.postMessage({id:data_0.id, data:algs}); - break; - case 'categories': - var cats = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutCategoryMap)))); - worker.postMessage({id:data_0.id, data:cats}); - break; - case 'options': - var opts = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutOptionMap)))); - worker.postMessage({id:data_0.id, data:opts}); - break; - case 'register': - registerLayoutAlgorithms(data_0.algorithms); - worker.postMessage({id:data_0.id}); - break; - case 'layout': - layout_11(data_0.graph, data_0.layoutOptions || {}, data_0.options || {}); - worker.postMessage({id:data_0.id, data:data_0.graph}); - break; - } - } - ; - this.saveDispatch = function(event_0){ - try { - _this.dispatch(event_0); - } - catch (err) { - worker.postMessage({id:event_0.data.id, error:err}); - } - } - ; - } - - function FakeWorker(url_0){ - var _this = this; - this.dispatcher = new Dispatcher({postMessage:function(msg){ - _this.onmessage({data:msg}); - } - }); - this.postMessage = function(msg){ - setTimeout(function(){ - _this.dispatcher.saveDispatch({data:msg}); - } - , 0); - } - ; - } - - if (typeof document === 'undefined' && typeof self !== 'undefined') { - var dispatcher = new Dispatcher(self); - self.onmessage = dispatcher.saveDispatch; - } - else if (typeof module !== 'undefined' && module.exports) { - Object.defineProperty(exports, '__esModule', {value:true}); - module.exports = {'default':FakeWorker, Worker:FakeWorker}; - } -} - -function getLayoutData(data_0){ - var arr, json, ld, ld$iterator; - arr = new JSONArray; - for (ld$iterator = new Collections$UnmodifiableCollectionIterator(data_0.coll.iterator_0()); ld$iterator.it.hasNext_0();) { - ld = castTo(ld$iterator.it.next_1(), 686); - json = toJson(ld); - $set_0(arr, arr.jsArray.length, json); - } - return arr.jsArray; -} - -function layout_11(graphObj, layoutOptionsObj, optionsObj){ - var _function, elkGraph, graph, importer, lc, logs, options, pm, recordExecutionTime, recordLogs, root; - graph = new JSONObject_0(graphObj); - importer = new JsonImporter; - elkGraph = ($clear_2(importer.nodeIdMap) , $clear_2(importer.portIdMap) , $reset(importer.edgeIdMap) , $clear_2(importer.edgeSectionIdMap) , $clear_2(importer.nodeJsonMap) , $reset(importer.portJsonMap) , $reset(importer.edgeJsonMap) , $reset(importer.edgeSectionJsonMap) , root = $transformNode_0(importer, graph, null) , $transformEdges_2(importer, graph) , root); - if (layoutOptionsObj) { - options = new JSONObject_0(layoutOptionsObj); - lc = optsToCfg(options); - applyVisitors(elkGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [lc])); - } - recordLogs = false; - recordExecutionTime = false; - if (optionsObj) { - options = new JSONObject_0(optionsObj); - 'logging' in options.jsObject && (recordLogs = $get_9(options, 'logging').isBoolean().value_0); - 'measureExecutionTime' in options.jsObject && (recordExecutionTime = $get_9(options, 'measureExecutionTime').isBoolean().value_0); - } - pm = $withExecutionTimeMeasurement($withLogging(new BasicProgressMonitor, recordLogs), recordExecutionTime); - $layout_3(new RecursiveGraphLayoutEngine, elkGraph, pm); - 'logging' in graph.jsObject && $put_5(graph, 'logging', null); - if (recordLogs || recordExecutionTime) { - logs = new JSONObject; - collectLogs(pm, logs, recordLogs, recordExecutionTime); - $put_5(graph, 'logging', logs); - } - _function = new JsonImporter$lambda$35$Type(importer); - forEach_43(new ElkGraphUtil$PropertiesSkippingTreeIterator(elkGraph), _function); -} - -function optsToCfg(opts){ - var jsonVal, key, key$iterator, keys_0, lc, option, serialized, value_0; - lc = new LayoutConfigurator; - $addFilter(lc, ($clinit_LayoutConfigurator() , NO_OVERWRITE)); - for (key$iterator = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new AbstractList$IteratorImpl(new Arrays$ArrayList((new JSONObject$1(opts, keys_0)).val$keys2))); key$iterator.i < key$iterator.this$01_0.size_1();) { - key = (checkCriticalElement(key$iterator.i < key$iterator.this$01_0.size_1()) , castToString(key$iterator.this$01_0.get_0(key$iterator.last = key$iterator.i++))); - option = $getOptionDataBySuffix(SERVICE, key); - if (option) { - jsonVal = $get_9(opts, key); - jsonVal.isString()?(serialized = jsonVal.isString().value_0):jsonVal.isBoolean()?(serialized = '' + jsonVal.isBoolean().value_0):jsonVal.isNumber()?(serialized = '' + jsonVal.isNumber().value_0):(serialized = jsonVal.toString_0()); - value_0 = $parseValue(option, serialized); - if (value_0 != null) { - ($containsEnum(option.targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(option.targets, PARENTS)) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkNode_2_classLit), option, value_0); - $containsEnum(option.targets, EDGES) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), option, value_0); - $containsEnum(option.targets, PORTS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkPort_2_classLit), option, value_0); - $containsEnum(option.targets, LABELS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), option, value_0); - } - } - } - return lc; -} - -function registerLayoutAlgorithms(arrayObj){ - var alg, arr, i; - $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); - arr = new JSONArray_0(arrayObj); - for (i = 0; i < arr.jsArray.length; ++i) { - alg = $get_8(arr, i).isString().value_0; - $equals_5(alg, 'layered')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new LayeredMetaDataProvider])):$equals_5(alg, 'force')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new ForceMetaDataProvider])):$equals_5(alg, 'stress')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new StressMetaDataProvider])):$equals_5(alg, 'mrtree')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new MrTreeMetaDataProvider])):$equals_5(alg, 'radial')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RadialMetaDataProvider])):$equals_5(alg, 'disco')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new PolyominoOptions, new DisCoMetaDataProvider])):$equals_5(alg, 'sporeOverlap') || $equals_5(alg, 'sporeCompaction')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new SporeMetaDataProvider])):$equals_5(alg, 'rectpacking') && $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RectPackingMetaDataProvider])); - } -} - -var SERVICE; -var Lorg_eclipse_emf_common_util_ResourceLocator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'ResourceLocator'); -function $getString(key){ - return $equals_5('_UI_EMFDiagnostic_marker', key)?'EMF Problem':$equals_5('_UI_CircularContainment_diagnostic', key)?'An object may not circularly contain itself':$equals_5('parser.parse.1', key)?'Wrong character.':$equals_5('parser.parse.2', key)?'Invalid reference number.':$equals_5('parser.next.1', key)?'A character is required after \\.':$equals_5('parser.next.2', key)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":$equals_5('parser.next.3', key)?"'(?<' or '(?= size_0 || targetIndex < 0) - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); - if (sourceIndex >= size_0 || sourceIndex < 0) - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); - targetIndex != sourceIndex?(object = (result = this$static.delegateRemove(sourceIndex) , this$static.delegateAdd(targetIndex, result) , result)):(object = this$static.delegateGet(sourceIndex)); - return object; -} - -function $remove_34(this$static, index_0){ - var oldObject; - ++this$static.modCount; - oldObject = this$static.delegateRemove(index_0); - return oldObject; -} - -defineClass(1995, 67, $intern_141); -_.addAllUnique = function addAllUnique_1(index_0, collection){ - return $addAllUnique_1(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_2(collection){ - var i, object, object$iterator; - ++this.modCount; - if (collection.isEmpty()) { - return false; - } - else { - i = this.delegateSize(); - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - this.delegateAdd_0(this.validate(i, object)); - ++i; - } - return true; - } -} -; -_.addUnique = function addUnique_1(index_0, object){ - $addUnique_1(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_2(object){ - $addUnique_2(this, object); -} -; -_.basicList = function basicList(){ - return this.delegateBasicList(); -} -; -_.clear_0 = function clear_53(){ - $doClear(this, this.delegateSize(), this.delegateToArray()); -} -; -_.contains = function contains_53(object){ - return this.delegateContains(object); -} -; -_.containsAll = function containsAll_11(collection){ - return this.delegateContainsAll(collection); -} -; -_.delegateAdd = function delegateAdd(index_0, object){ - this.delegateList_1().$_nullMethod(); -} -; -_.delegateAdd_0 = function delegateAdd_0(object){ - this.delegateList_1().$_nullMethod(); -} -; -_.delegateBasicList = function delegateBasicList(){ - return this.delegateList_1(); -} -; -_.delegateClear = function delegateClear(){ - this.delegateList_1().$_nullMethod(); -} -; -_.delegateContains = function delegateContains(object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateContainsAll = function delegateContainsAll(collection){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateEquals = function delegateEquals(object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateGet = function delegateGet(index_0){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateHashCode = function delegateHashCode(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateIndexOf = function delegateIndexOf(object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateIsEmpty = function delegateIsEmpty(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateRemove = function delegateRemove(index_0){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateSet = function delegateSet(index_0, object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateSize = function delegateSize(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateToArray = function delegateToArray(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateToArray_0 = function delegateToArray_0(array){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateToString = function delegateToString(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.equals_0 = function equals_187(object){ - return this.delegateEquals(object); -} -; -_.get_0 = function get_51(index_0){ - return this.resolve(index_0, this.delegateGet(index_0)); -} -; -_.hashCode_1 = function hashCode_75(){ - return this.delegateHashCode(); -} -; -_.indexOf_0 = function indexOf_9(object){ - return this.delegateIndexOf(object); -} -; -_.isEmpty = function isEmpty_27(){ - return this.delegateIsEmpty(); -} -; -_.move = function move_2(targetIndex, sourceIndex){ - return $move_0(this, targetIndex, sourceIndex); -} -; -_.primitiveGet = function primitiveGet_0(index_0){ - return this.delegateGet(index_0); -} -; -_.remove_2 = function remove_101(index_0){ - return $remove_34(this, index_0); -} -; -_.remove_1 = function remove_102(object){ - var index_0; - index_0 = this.indexOf_0(object); - if (index_0 >= 0) { - this.remove_2(index_0); - return true; - } - else { - return false; - } -} -; -_.setUnique = function setUnique_0(index_0, object){ - return this.delegateSet(index_0, this.validate(index_0, object)); -} -; -_.size_1 = function size_66(){ - return this.delegateSize(); -} -; -_.toArray = function toArray_28(){ - return this.delegateToArray(); -} -; -_.toArray_0 = function toArray_29(array){ - return this.delegateToArray_0(array); -} -; -_.toString_0 = function toString_136(){ - return this.delegateToString(); -} -; -var Lorg_eclipse_emf_common_util_DelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'DelegatingEList', 1995); -function $addAllUnique_2(this$static, index_0, collection){ - var collectionSize, i, lastIndex, notification, notifications, oldIsSet, value_0; - collectionSize = collection.size_1(); - if (collectionSize == 0) { - return false; - } - else { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - $addAllUnique_1(this$static, index_0, collection); - notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - value_0 = this$static.delegateGet(i); - notifications = this$static.inverseAdd(value_0, notifications); - notifications = notifications; - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addAllUnique_1(this$static, index_0, collection); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - notifications = this$static.inverseAdd(this$static.delegateGet(i), notifications); - } - !!notifications && notifications.dispatch_0(); - } - } - return true; - } -} - -function $addUnique_3(this$static, index_0, object){ - var notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $addUnique_4(this$static, object){ - var index_0, notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.delegateSize(); - oldIsSet = this$static.isSet_0(); - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addUnique_2(this$static, object); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $basicAdd(this$static, object, notifications){ - var index_0, notification, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.delegateSize(); - oldIsSet = this$static.isSet_0(); - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $addUnique_1(this$static, this$static.delegateSize(), object); - } - return notifications; -} - -function $basicRemove(this$static, object, notifications){ - var index_0, notification, oldIsSet, oldObject; - index_0 = this$static.indexOf_0(object); - if (index_0 != -1) { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - oldObject = $remove_34(this$static, index_0); - notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $remove_34(this$static, index_0); - } - } - return notifications; -} - -function $clear_12(this$static){ - var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize, size_0; - if (this$static.isNotificationRequired()) { - size_0 = this$static.delegateSize(); - oldIsSet = this$static.isSet_0(); - if (size_0 > 0) { - collection = new BasicEList_1(this$static.basicList()); - collectionSize = size_0; - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - $doClear(this$static, collectionSize, collection.data_0); - notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); - if (this$static.hasInverse()) { - for (i = new AbstractEList$EIterator(collection); i.cursor != i.this$01_2.size_1();) { - notifications = this$static.inverseRemove($doNext(i), notifications); - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - } - else { - $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); - this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); - } - } - else if (this$static.hasInverse()) { - size_0 = this$static.delegateSize(); - if (size_0 > 0) { - oldData = this$static.delegateToArray(); - oldSize = size_0; - $doClear(this$static, size_0, oldData); - notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); - for (i = 0; i < oldSize; ++i) { - object = oldData[i]; - notifications = this$static.inverseRemove(object, notifications); - } - !!notifications && notifications.dispatch_0(); - } - else { - $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); - } - } - else { - $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); - } -} - -function $setUnique_0(this$static, index_0, object){ - var notification, notifications, oldIsSet, oldObject, oldObject0; - if (this$static.isNotificationRequired()) { - notifications = null; - oldIsSet = this$static.isSet_0(); - notification = this$static.createNotification(1, oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject), object, index_0, oldIsSet); - if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { - !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, notifications)); - notifications = this$static.inverseAdd(object, notifications); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject0; - } - else { - oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject); - if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { - notifications = null; - !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, null)); - notifications = this$static.inverseAdd(object, notifications); - !!notifications && notifications.dispatch_0(); - } - return oldObject0; - } -} - -defineClass(1996, 1995, $intern_141); -_.addAllUnique = function addAllUnique_3(index_0, collection){ - return $addAllUnique_2(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_4(collection){ - return this.addAllUnique(this.delegateSize(), collection); -} -; -_.addUnique = function addUnique_3(index_0, object){ - $addUnique_3(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_4(object){ - $addUnique_4(this, object); -} -; -_.canContainNull = function canContainNull_0(){ - return !this.hasInverse(); -} -; -_.clear_0 = function clear_54(){ - $clear_12(this); -} -; -_.createNotification = function createNotification(eventType, oldObject, newObject, index_0, wasSet){ - return new DelegatingNotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification(notification){ - $eNotify(this.getNotifier(), notification); -} -; -_.getFeature = function getFeature(){ - return null; -} -; -_.getFeatureID_0 = function getFeatureID(){ - return -1; -} -; -_.getNotifier = function getNotifier(){ - return null; -} -; -_.hasInverse = function hasInverse(){ - return false; -} -; -_.inverseAdd = function inverseAdd(object, notifications){ - return notifications; -} -; -_.inverseRemove = function inverseRemove(object, notifications){ - return notifications; -} -; -_.isNotificationRequired = function isNotificationRequired(){ - return false; -} -; -_.isSet_0 = function isSet(){ - return !this.delegateIsEmpty(); -} -; -_.move = function move_3(targetIndex, sourceIndex){ - var object, oldIsSet; - if (this.isNotificationRequired()) { - oldIsSet = this.isSet_0(); - object = $move_0(this, targetIndex, sourceIndex); - this.dispatchNotification(this.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); - return object; - } - else { - return $move_0(this, targetIndex, sourceIndex); - } -} -; -_.remove_2 = function remove_103(index_0){ - var notification, notifications, oldIsSet, oldObject; - if (this.isNotificationRequired()) { - notifications = null; - oldIsSet = this.isSet_0(); - notification = this.createNotification(4, oldObject = $remove_34(this, index_0), null, index_0, oldIsSet); - if (this.hasInverse() && !!oldObject) { - notifications = this.inverseRemove(oldObject, notifications); - if (!notifications) { - this.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject; - } - else { - oldObject = $remove_34(this, index_0); - if (this.hasInverse() && !!oldObject) { - notifications = this.inverseRemove(oldObject, null); - !!notifications && notifications.dispatch_0(); - } - return oldObject; - } -} -; -_.setUnique = function setUnique_1(index_0, object){ - return $setUnique_0(this, index_0, object); -} -; -var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl', 1996); -function $add_22(this$static, newNotification){ - if (!newNotification) { - return false; - } - else { - if (this$static.merge_0(newNotification)) { - return false; - } - if (!this$static.next_0) { - if (instanceOf(newNotification, 143)) { - this$static.next_0 = castTo(newNotification, 143); - return true; - } - else { - this$static.next_0 = new NotificationChainImpl; - return this$static.next_0.add_5(newNotification); - } - } - else { - return this$static.next_0.add_5(newNotification); - } - } -} - -function $dispatch(this$static){ - var notifier; - notifier = this$static.getNotifier(); - notifier != null && this$static.eventType != -1 && castTo(notifier, 92).eNotify(this$static); - !!this$static.next_0 && this$static.next_0.dispatch_0(); -} - -function $getNewBooleanValue(this$static){ - if (this$static.primitiveType != 0) - throw toJs(new IllegalStateException); - return neq(this$static.newSimplePrimitiveValue, 0); -} - -function $getNewByteValue(this$static){ - if (this$static.primitiveType != 1) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue) << 24 >> 24; -} - -function $getNewCharValue(this$static){ - if (this$static.primitiveType != 2) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue) & $intern_46; -} - -function $getNewDoubleValue(this$static){ - if (this$static.primitiveType != 3) - throw toJs(new IllegalStateException); - return this$static.newIEEEPrimitiveValue; -} - -function $getNewFloatValue(this$static){ - if (this$static.primitiveType != 4) - throw toJs(new IllegalStateException); - return this$static.newIEEEPrimitiveValue; -} - -function $getNewIntValue(this$static){ - if (this$static.primitiveType != 5) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue); -} - -function $getNewLongValue(this$static){ - if (this$static.primitiveType != 6) - throw toJs(new IllegalStateException); - return this$static.newSimplePrimitiveValue; -} - -function $getNewShortValue(this$static){ - if (this$static.primitiveType != 7) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue) << 16 >> 16; -} - -function $getNewValue(this$static){ - if (this$static.newValue == null) { - switch (this$static.primitiveType) { - case 0: - this$static.newValue = $getNewBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); - break; - case 1: - this$static.newValue = valueOf_2($getNewByteValue(this$static)); - break; - case 2: - this$static.newValue = valueOf_3($getNewCharValue(this$static)); - break; - case 3: - this$static.newValue = $getNewDoubleValue(this$static); - break; - case 4: - this$static.newValue = new Float($getNewFloatValue(this$static)); - break; - case 6: - this$static.newValue = valueOf_5($getNewLongValue(this$static)); - break; - case 5: - this$static.newValue = valueOf_4($getNewIntValue(this$static)); - break; - case 7: - this$static.newValue = valueOf_6($getNewShortValue(this$static)); - } - } - return this$static.newValue; -} - -function $getOldBooleanValue(this$static){ - if (this$static.primitiveType != 0) - throw toJs(new IllegalStateException); - return neq(this$static.oldSimplePrimitiveValue, 0); -} - -function $getOldByteValue(this$static){ - if (this$static.primitiveType != 1) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; -} - -function $getOldCharValue(this$static){ - if (this$static.primitiveType != 2) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46; -} - -function $getOldDoubleValue(this$static){ - if (this$static.primitiveType != 3) - throw toJs(new IllegalStateException); - return this$static.oldIEEEPrimitiveValue; -} - -function $getOldFloatValue(this$static){ - if (this$static.primitiveType != 4) - throw toJs(new IllegalStateException); - return this$static.oldIEEEPrimitiveValue; -} - -function $getOldIntValue(this$static){ - if (this$static.primitiveType != 5) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue); -} - -function $getOldLongValue(this$static){ - if (this$static.primitiveType != 6) - throw toJs(new IllegalStateException); - return this$static.oldSimplePrimitiveValue; -} - -function $getOldShortValue(this$static){ - if (this$static.primitiveType != 7) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; -} - -function $getOldValue(this$static){ - if (this$static.oldValue == null) { - switch (this$static.primitiveType) { - case 0: - this$static.oldValue = $getOldBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); - break; - case 1: - this$static.oldValue = valueOf_2($getOldByteValue(this$static)); - break; - case 2: - this$static.oldValue = valueOf_3($getOldCharValue(this$static)); - break; - case 3: - this$static.oldValue = $getOldDoubleValue(this$static); - break; - case 4: - this$static.oldValue = new Float($getOldFloatValue(this$static)); - break; - case 6: - this$static.oldValue = valueOf_5($getOldLongValue(this$static)); - break; - case 5: - this$static.oldValue = valueOf_4($getOldIntValue(this$static)); - break; - case 7: - this$static.oldValue = valueOf_6($getOldShortValue(this$static)); - } - } - return this$static.oldValue; -} - -function $isTouch(this$static){ - switch (this$static.eventType) { - case 9: - case 8: - { - return true; - } - - case 3: - case 5: - case 4: - case 6: - { - return false; - } - - case 7: - { - return castTo($getOldValue(this$static), 19).value_0 == this$static.position; - } - - case 1: - case 2: - { - if (this$static.position == -2) { - return false; - } - else { - switch (this$static.primitiveType) { - case 0: - case 1: - case 2: - case 6: - case 5: - case 7: - { - return eq(this$static.oldSimplePrimitiveValue, this$static.newSimplePrimitiveValue); - } - - case 3: - case 4: - { - return this$static.oldIEEEPrimitiveValue == this$static.newIEEEPrimitiveValue; - } - - default:{ - return this$static.oldValue == null?this$static.newValue == null:equals_Ljava_lang_Object__Z__devirtual$(this$static.oldValue, this$static.newValue); - } - - } - } - } - - default:{ - return false; - } - - } -} - -function $wasSet(this$static){ - var defaultValue; - switch (this$static.eventType) { - case 1: - { - if (this$static.isFeatureUnsettable()) { - return this$static.position != -2; - } - break; - } - - case 2: - { - if (this$static.isFeatureUnsettable()) { - return this$static.position == -2; - } - break; - } - - case 3: - case 5: - case 4: - case 6: - case 7: - { - return this$static.position > -2; - } - - default:{ - return false; - } - - } - defaultValue = this$static.getFeatureDefaultValue(); - switch (this$static.primitiveType) { - case 0: - return defaultValue != null && $booleanValue(castToBoolean(defaultValue)) != neq(this$static.oldSimplePrimitiveValue, 0); - case 1: - return defaultValue != null && castTo(defaultValue, 217).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; - case 2: - return defaultValue != null && castTo(defaultValue, 172).value_0 != (toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46); - case 6: - return defaultValue != null && neq(castTo(defaultValue, 162).value_0, this$static.oldSimplePrimitiveValue); - case 5: - return defaultValue != null && castTo(defaultValue, 19).value_0 != toInt_0(this$static.oldSimplePrimitiveValue); - case 7: - return defaultValue != null && castTo(defaultValue, 184).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; - case 3: - return defaultValue != null && $doubleValue(castToDouble(defaultValue)) != this$static.oldIEEEPrimitiveValue; - case 4: - return defaultValue != null && castTo(defaultValue, 155).value_0 != this$static.oldIEEEPrimitiveValue; - default:return defaultValue == null?this$static.oldValue != null:!equals_Ljava_lang_Object__Z__devirtual$(defaultValue, this$static.oldValue); - } -} - -function NotificationImpl(eventType, oldDoubleValue, newDoubleValue){ - this.eventType = eventType; - this.oldIEEEPrimitiveValue = oldDoubleValue; - this.newIEEEPrimitiveValue = newDoubleValue; - this.position = -1; - this.primitiveType = 3; -} - -function NotificationImpl_0(eventType, oldIntValue, newIntValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldIntValue; - this.newSimplePrimitiveValue = newIntValue; - this.position = -1; - this.primitiveType = 5; -} - -function NotificationImpl_1(eventType, oldValue, newValue, position){ - this.eventType = eventType; - this.oldValue = oldValue; - this.newValue = newValue; - this.position = position; - this.primitiveType = -1; -} - -function NotificationImpl_2(eventType, oldValue, newValue, position, wasSet){ - this.eventType = eventType; - this.oldValue = oldValue; - this.newValue = newValue; - this.position = position; - this.primitiveType = -1; - wasSet || (this.position = -2 - position - 1); -} - -function NotificationImpl_3(eventType, oldBooleanValue, newBooleanValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldBooleanValue?1:0; - this.newSimplePrimitiveValue = newBooleanValue?1:0; - this.position = -1; - this.primitiveType = 0; -} - -defineClass(143, 1, $intern_142); -_.add_5 = function add_48(newNotification){ - return $add_22(this, newNotification); -} -; -_.dispatch_0 = function dispatch(){ - $dispatch(this); -} -; -_.getEventType = function getEventType(){ - return this.eventType; -} -; -_.getFeature = function getFeature_0(){ - return null; -} -; -_.getFeatureDefaultValue = function getFeatureDefaultValue(){ - return null; -} -; -_.getFeatureID = function getFeatureID_0(expectedClass){ - return -1; -} -; -_.getNewValue = function getNewValue(){ - return $getNewValue(this); -} -; -_.getNotifier = function getNotifier_0(){ - return null; -} -; -_.getOldValue = function getOldValue(){ - return $getOldValue(this); -} -; -_.getPosition_0 = function getPosition_2(){ - return this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; -} -; -_.isFeatureUnsettable = function isFeatureUnsettable(){ - return false; -} -; -_.merge_0 = function merge_3(notification){ - var index_0, list, newPositions, notificationEventType, notificationNotifier, notificationPosition, oldPosition, originalPosition, originalWasSet, positions, removedValues; - switch (this.eventType) { - case 1: - case 2: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 1: - case 2: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { - this.newValue = notification.getNewValue(); - notification.getEventType() == 1 && (this.eventType = 1); - return true; - } - } - - } - } - - case 4: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { - originalWasSet = $wasSet(this); - originalPosition = this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; - notificationPosition = notification.getPosition_0(); - this.eventType = 6; - removedValues = new BasicEList_0(2); - if (originalPosition <= notificationPosition) { - $add_21(removedValues, this.oldValue); - $add_21(removedValues, notification.getOldValue()); - this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = originalPosition, notificationPosition + 1]); - } - else { - $add_21(removedValues, notification.getOldValue()); - $add_21(removedValues, this.oldValue); - this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = notificationPosition, originalPosition]); - } - this.oldValue = removedValues; - originalWasSet || (this.position = -2 - this.position - 1); - return true; - } - break; - } - - } - break; - } - - case 6: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { - originalWasSet = $wasSet(this); - notificationPosition = notification.getPosition_0(); - positions = castTo(this.newValue, 48); - newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); - index_0 = 0; - while (index_0 < positions.length) { - oldPosition = positions[index_0]; - if (oldPosition <= notificationPosition) { - newPositions[index_0++] = oldPosition; - ++notificationPosition; - } - else { - break; - } - } - list = castTo(this.oldValue, 15); - list.add_3(index_0, notification.getOldValue()); - newPositions[index_0] = notificationPosition; - while (++index_0 < newPositions.length) { - newPositions[index_0] = positions[index_0 - 1]; - } - this.newValue = newPositions; - originalWasSet || (this.position = -2 - newPositions[0]); - return true; - } - break; - } - - } - break; - } - - } - return false; -} -; -_.toString_0 = function toString_137(){ - var i, number, positions, result; - result = new StringBuffer_1($getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16))); - result.string += ' (eventType: '; - switch (this.eventType) { - case 1: - { - result.string += 'SET'; - break; - } - - case 2: - { - result.string += 'UNSET'; - break; - } - - case 3: - { - result.string += 'ADD'; - break; - } - - case 5: - { - result.string += 'ADD_MANY'; - break; - } - - case 4: - { - result.string += 'REMOVE'; - break; - } - - case 6: - { - result.string += 'REMOVE_MANY'; - break; - } - - case 7: - { - result.string += 'MOVE'; - break; - } - - case 8: - { - result.string += 'REMOVING_ADAPTER'; - break; - } - - case 9: - { - result.string += 'RESOLVE'; - break; - } - - default:{ - $append_1(result, this.eventType); - break; - } - - } - $isTouch(this) && (result.string += ', touch: true' , result); - result.string += ', position: '; - $append_1(result, this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position); - result.string += ', notifier: '; - $append_2(result, this.getNotifier()); - result.string += ', feature: '; - $append_2(result, this.getFeature()); - result.string += ', oldValue: '; - $append_2(result, $getOldValue(this)); - result.string += ', newValue: '; - if (this.eventType == 6 && instanceOf(this.newValue, 48)) { - positions = castTo(this.newValue, 48); - result.string += '['; - for (i = 0; i < positions.length;) { - result.string += positions[i]; - ++i < positions.length && (result.string += ', ' , result); - } - result.string += ']'; - } - else { - $append_2(result, $getNewValue(this)); - } - result.string += ', isTouch: '; - $append_4(result, $isTouch(this)); - result.string += ', wasSet: '; - $append_4(result, $wasSet(this)); - result.string += ')'; - return result.string; -} -; -_.eventType = 0; -_.newIEEEPrimitiveValue = 0; -_.newSimplePrimitiveValue = 0; -_.oldIEEEPrimitiveValue = 0; -_.oldSimplePrimitiveValue = 0; -_.position = 0; -_.primitiveType = 0; -var Lorg_eclipse_emf_common_notify_impl_NotificationImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationImpl', 143); -function DelegatingNotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ - this.this$01 = this$0; - NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); -} - -defineClass(1167, 143, $intern_142, DelegatingNotifyingListImpl$1); -_.getFeature = function getFeature_1(){ - return this.this$01.getFeature(); -} -; -_.getFeatureID = function getFeatureID_1(expectedClass){ - return this.this$01.getFeatureID_0(); -} -; -_.getNotifier = function getNotifier_1(){ - return this.this$01.getNotifier(); -} -; -var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl/1', 1167); -function $add_23(this$static, newNotification){ - var i, notification; - if (!newNotification) { - return false; - } - else { - for (i = 0; i < this$static.size_0; ++i) { - notification = castTo(this$static.data_0[i], 366); - if (notification.merge_0(newNotification)) { - return false; - } - } - return $add_21(this$static, newNotification); - } -} - -function NotificationChainImpl(){ -} - -function NotificationChainImpl_0(initialCapacity){ - BasicEList_0.call(this, initialCapacity); -} - -defineClass(242, 63, $intern_138, NotificationChainImpl, NotificationChainImpl_0); -_.add_2 = function add_49(newNotification){ - return $add_23(this, castTo(newNotification, 366)); -} -; -_.add_5 = function add_50(newNotification){ - return $add_23(this, newNotification); -} -; -_.dispatch_0 = function dispatch_0(){ - var i, notification, notifier; - for (i = 0; i < this.size_0; ++i) { - notification = castTo(this.data_0[i], 366); - notifier = notification.getNotifier(); - notifier != null && notification.getEventType() != -1 && castTo(notifier, 92).eNotify(notification); - } -} -; -_.newData = function newData_1(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Notification_2_classLit, $intern_2, 366, capacity, 0, 1); -} -; -var Lorg_eclipse_emf_common_notify_impl_NotificationChainImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationChainImpl', 242); -defineClass(1378, 90, $intern_133); -_.eBasicAdapters = function eBasicAdapters_1(){ - return this.eAdapters; -} -; -_.eDeliver = function eDeliver_1(){ - return (this.eFlags & 1) != 0; -} -; -_.eFlags = 1; -var Lorg_eclipse_emf_common_notify_impl_NotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifierImpl', 1378); -function $addAllUnique_3(this$static, index_0, collection){ - var collectionSize, i, lastIndex, notification, notifications, object, oldIsSet, value_0; - collectionSize = collection.size_1(); - if (collectionSize == 0) { - return false; - } - else { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - $addAllUnique(this$static, index_0, collection); - notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - value_0 = this$static.data_0[i]; - notifications = this$static.inverseAdd(value_0, notifications); - notifications = this$static.shadowAdd(value_0, notifications); - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addAllUnique(this$static, index_0, collection); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - object = this$static.data_0[i]; - notifications = this$static.inverseAdd(object, notifications); - } - !!notifications && notifications.dispatch_0(); - } - } - return true; - } -} - -function $addUnique_5(this$static, index_0, object){ - var notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - $addUnique(this$static, index_0, object); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addUnique(this$static, index_0, object); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $addUnique_6(this$static, object){ - var index_0, notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.size_0; - oldIsSet = this$static.isSet_0(); - $addUnique_0(this$static, object); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addUnique_0(this$static, object); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $basicAdd_0(this$static, object, notifications){ - var index_0, notification, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.size_0; - oldIsSet = this$static.isSet_0(); - $addUnique(this$static, index_0, object); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $addUnique(this$static, this$static.size_0, object); - } - return notifications; -} - -function $basicRemove_0(this$static, object, notifications){ - var index_0, notification, oldIsSet, oldObject; - index_0 = this$static.indexOf_0(object); - if (index_0 != -1) { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - oldObject = $remove_33(this$static, index_0); - notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $remove_33(this$static, index_0); - } - } - return notifications; -} - -function $clear_13(this$static){ - var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - if (this$static.size_0 > 0) { - collection = new BasicEList$UnmodifiableEList(this$static.size_0, this$static.data_0); - collectionSize = this$static.size_0; - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - if (this$static.hasShadow()) { - for (i = 0; i < this$static.size_0; ++i) { - object = this$static.data_0[i]; - notifications = this$static.shadowRemove(object, notifications); - } - } - $clear_11(this$static); - notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); - if (this$static.hasInverse()) { - for (i = new AbstractEList$NonResolvingEIterator(collection); i.cursor != i.this$01_2.size_1();) { - notifications = this$static.inverseRemove($doNext_0(i), notifications); - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - } - else { - $clear_11(this$static); - this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); - } - } - else if (this$static.hasInverse()) { - if (this$static.size_0 > 0) { - oldData = this$static.data_0; - oldSize = this$static.size_0; - $clear_11(this$static); - notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); - for (i = 0; i < oldSize; ++i) { - object = oldData[i]; - notifications = this$static.inverseRemove(object, notifications); - } - !!notifications && notifications.dispatch_0(); - } - else { - $clear_11(this$static); - } - } - else { - $clear_11(this$static); - } -} - -function $createNotificationChain(capacity){ - return capacity < 100?null:new NotificationChainImpl_0(capacity); -} - -function $move_1(this$static, targetIndex, sourceIndex){ - var object, oldIsSet; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - object = $move(this$static, targetIndex, sourceIndex); - this$static.dispatchNotification(this$static.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); - return object; - } - else { - return $move(this$static, targetIndex, sourceIndex); - } -} - -function $remove_35(this$static, index_0){ - var notification, notifications, oldIsSet, oldObject; - if (this$static.isNotificationRequired()) { - notifications = null; - oldIsSet = this$static.isSet_0(); - this$static.hasShadow() && (notifications = this$static.shadowRemove(this$static.basicGet(index_0), null)); - notification = this$static.createNotification(4, oldObject = $remove_33(this$static, index_0), null, index_0, oldIsSet); - if (this$static.hasInverse() && oldObject != null) { - notifications = this$static.inverseRemove(oldObject, notifications); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject; - } - else { - oldObject = $remove_33(this$static, index_0); - if (this$static.hasInverse() && oldObject != null) { - notifications = this$static.inverseRemove(oldObject, null); - !!notifications && notifications.dispatch_0(); - } - return oldObject; - } -} - -function $removeAll_4(this$static, collection){ - var collectionSize, count, i, i0, i1, initialObject, j, list, listSize, notification, notifications, object, objects, oldIsSet, oldPositions, positions, repeat, result, resultList; - oldIsSet = this$static.size_0 != 0; - result = false; - positions = null; - if ($eNotificationRequired(this$static.owner)) { - listSize = collection.size_1(); - if (listSize > 0) { - notifications = listSize < 100?null:new NotificationChainImpl_0(listSize); - list = new BasicEList_1(collection); - objects = list.data_0; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, listSize, 15, 1); - count = 0; - resultList = new BasicEList_0(listSize); - for (i = 0; i < this$static.size_0; ++i) { - initialObject = this$static.data_0[i]; - object = initialObject; - LOOP: for (repeat = 0; repeat < 2; ++repeat) { - for (j = listSize; --j >= 0;) { - if (object != null?equals_Ljava_lang_Object__Z__devirtual$(object, objects[j]):maskUndefined(object) === maskUndefined(objects[j])) { - if (positions.length <= count) { - oldPositions = positions; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, 2 * positions.length, 15, 1); - arraycopy(oldPositions, 0, positions, 0, count); - } - positions[count++] = i; - $add_21(resultList, objects[j]); - break LOOP; - } - } - object = object; - if (maskUndefined(object) === maskUndefined(initialObject)) { - break; - } - } - } - list = resultList; - objects = resultList.data_0; - listSize = count; - if (count > positions.length) { - oldPositions = positions; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); - arraycopy(oldPositions, 0, positions, 0, count); - } - if (count > 0) { - result = true; - for (i0 = 0; i0 < count; ++i0) { - object = objects[i0]; - notifications = $shadowRemove_2(this$static, castTo(object, 72), notifications); - } - for (i1 = count; --i1 >= 0;) { - $remove_33(this$static, positions[i1]); - } - if (count != listSize) { - for (i = listSize; --i >= count;) { - $remove_33(list, i); - } - oldPositions = positions; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); - arraycopy(oldPositions, 0, positions, 0, count); - } - collection = list; - } - } - } - else { - collection = $getDuplicates(this$static, collection); - for (i = this$static.size_0; --i >= 0;) { - if (collection.contains(this$static.data_0[i])) { - $remove_33(this$static, i); - result = true; - } - } - } - if (result) { - if (positions != null) { - collectionSize = collection.size_1(); - notification = collectionSize == 1?$createNotification(this$static, 4, collection.iterator_0().next_1(), null, positions[0], oldIsSet):$createNotification(this$static, 6, collection, positions, positions[0], oldIsSet); - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - for (i = collection.iterator_0(); i.hasNext_0();) { - object = i.next_1(); - notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); - } - if (!notifications) { - $eNotify(this$static.owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - notifications = $createNotificationChain(collection.size_1()); - for (i = collection.iterator_0(); i.hasNext_0();) { - object = i.next_1(); - notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); - } - !!notifications && notifications.dispatch_0(); - } - return true; - } - else { - return false; - } -} - -function $setUnique_1(this$static, index_0, object){ - var notification, notifications, oldIsSet, oldObject; - if (this$static.isNotificationRequired()) { - notifications = null; - oldIsSet = this$static.isSet_0(); - notification = this$static.createNotification(1, oldObject = $setUnique(this$static, index_0, object), object, index_0, oldIsSet); - if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { - oldObject != null && (notifications = this$static.inverseRemove(oldObject, notifications)); - notifications = this$static.inverseAdd(object, notifications); - this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject; - } - else { - oldObject = $setUnique(this$static, index_0, object); - if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { - notifications = null; - oldObject != null && (notifications = this$static.inverseRemove(oldObject, null)); - notifications = this$static.inverseAdd(object, notifications); - !!notifications && notifications.dispatch_0(); - } - return oldObject; - } -} - -defineClass(1993, 63, $intern_138); -_.addAllUnique = function addAllUnique_5(index_0, collection){ - return $addAllUnique_3(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_6(collection){ - return this.addAllUnique(this.size_0, collection); -} -; -_.addUnique = function addUnique_5(index_0, object){ - $addUnique_5(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_6(object){ - $addUnique_6(this, object); -} -; -_.canContainNull = function canContainNull_1(){ - return !this.hasInverse(); -} -; -_.clear_0 = function clear_55(){ - $clear_13(this); -} -; -_.createNotification = function createNotification_0(eventType, oldObject, newObject, index_0, wasSet){ - return new NotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification_0(notification){ - $eNotify(this.getNotifier(), notification); -} -; -_.getFeature = function getFeature_2(){ - return null; -} -; -_.getFeatureID_0 = function getFeatureID_2(){ - return -1; -} -; -_.getNotifier = function getNotifier_2(){ - return null; -} -; -_.hasInverse = function hasInverse_0(){ - return false; -} -; -_.hasShadow = function hasShadow(){ - return false; -} -; -_.inverseAdd = function inverseAdd_0(object, notifications){ - return notifications; -} -; -_.inverseRemove = function inverseRemove_0(object, notifications){ - return notifications; -} -; -_.isNotificationRequired = function isNotificationRequired_0(){ - return false; -} -; -_.isSet_0 = function isSet_0(){ - return this.size_0 != 0; -} -; -_.move = function move_4(targetIndex, sourceIndex){ - return $move_1(this, targetIndex, sourceIndex); -} -; -_.remove_2 = function remove_104(index_0){ - return $remove_35(this, index_0); -} -; -_.setUnique = function setUnique_2(index_0, object){ - return $setUnique_1(this, index_0, object); -} -; -_.shadowAdd = function shadowAdd(object, notifications){ - return notifications; -} -; -_.shadowRemove = function shadowRemove(object, notifications){ - return notifications; -} -; -_.shadowSet = function shadowSet(oldObject, newObject, notifications){ - return notifications; -} -; -var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl', 1993); -function NotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ - this.this$01 = this$0; - NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); -} - -defineClass(1166, 143, $intern_142, NotifyingListImpl$1); -_.getFeature = function getFeature_3(){ - return this.this$01.getFeature(); -} -; -_.getFeatureID = function getFeatureID_3(expectedClass){ - return this.this$01.getFeatureID_0(); -} -; -_.getNotifier = function getNotifier_3(){ - return this.this$01.getNotifier(); -} -; -var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl/1', 1166); -function AbstractEList$1(this$0, $anonymous0){ - this.this$01 = this$0; - BasicEList_0.call(this, $anonymous0); -} - -defineClass(953, 63, $intern_138, AbstractEList$1); -_.contains = function contains_54(object){ - if (this.size_0 > 10) { - if (!this.set_0 || this.this$01.modCount != this.expectedModCount) { - this.set_0 = new HashSet_1(this); - this.expectedModCount = this.modCount; - } - return $contains_6(this.set_0, object); - } - else { - return $contains_10(this, object); - } -} -; -_.useEquals = function useEquals_0(){ - return true; -} -; -_.expectedModCount = 0; -var Lorg_eclipse_emf_common_util_AbstractEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/1', 953); -function AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0){ - IndexOutOfBoundsException_0.call(this, 'index=' + index_0 + ', size=' + size_0); -} - -defineClass(295, 73, $intern_57, AbstractEList$BasicIndexOutOfBoundsException); -var Lorg_eclipse_emf_common_util_AbstractEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/BasicIndexOutOfBoundsException', 295); -function $doNext(this$static){ - var next; - try { - next = this$static.this$01_2.get_0(this$static.cursor); - this$static.checkModCount(); - this$static.lastCursor = this$static.cursor++; - return next; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this$static.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} - -function $remove_36(this$static){ - if (this$static.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - this$static.checkModCount(); - try { - this$static.this$01_2.remove_2(this$static.lastCursor); - this$static.expectedModCount = this$static.this$01_2.modCount; - this$static.lastCursor < this$static.cursor && --this$static.cursor; - this$static.lastCursor = -1; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} - -function AbstractEList$EIterator(this$0){ - this.this$01_2 = this$0; - this.expectedModCount = this.this$01_2.modCount; -} - -defineClass(40, 1, $intern_6, AbstractEList$EIterator); -_.forEachRemaining = function forEachRemaining_54(consumer){ - $forEachRemaining(this, consumer); -} -; -_.checkModCount = function checkModCount(){ - if (this.this$01_2.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} -; -_.doNext = function doNext(){ - return $doNext(this); -} -; -_.hasNext_0 = function hasNext_43(){ - return this.cursor != this.this$01_2.size_1(); -} -; -_.next_1 = function next_44(){ - return this.doNext(); -} -; -_.remove = function remove_105(){ - $remove_36(this); -} -; -_.cursor = 0; -_.expectedModCount = 0; -_.lastCursor = -1; -var Lorg_eclipse_emf_common_util_AbstractEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EIterator', 40); -function $doAdd_0(this$static, object){ - this$static.checkModCount(); - try { - this$static.this$01_1.add_3(this$static.cursor++, object); - this$static.expectedModCount = this$static.this$01_1.modCount; - this$static.lastCursor = -1; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} - -function $doSet(this$static, object){ - if (this$static.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - this$static.checkModCount(); - try { - this$static.this$01_1.set_2(this$static.lastCursor, object); - this$static.expectedModCount = this$static.this$01_1.modCount; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} - -function AbstractEList$EListIterator(this$0){ - this.this$01_1 = this$0; - AbstractEList$EIterator.call(this, this$0); -} - -function AbstractEList$EListIterator_0(this$0, index_0){ - this.this$01_1 = this$0; - AbstractEList$EIterator.call(this, this$0); - this.cursor = index_0; -} - -defineClass(278, 40, $intern_14, AbstractEList$EListIterator, AbstractEList$EListIterator_0); -_.remove = function remove_106(){ - $remove_36(this); -} -; -_.add_1 = function add_51(object){ - $doAdd_0(this, object); -} -; -_.doPrevious = function doPrevious(){ - var previous; - try { - previous = this.this$01_1.get_0(--this.cursor); - this.checkModCount(); - this.lastCursor = this.cursor; - return previous; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} -; -_.doSet = function doSet(object){ - $doSet(this, object); -} -; -_.hasPrevious = function hasPrevious_7(){ - return this.cursor != 0; -} -; -_.nextIndex_0 = function nextIndex_8(){ - return this.cursor; -} -; -_.previous_0 = function previous_8(){ - return this.doPrevious(); -} -; -_.previousIndex = function previousIndex_7(){ - return this.cursor - 1; -} -; -_.set_1 = function set_22(object){ - this.doSet(object); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EListIterator', 278); -function $doNext_0(this$static){ - var next; - try { - next = this$static.this$01_0.primitiveGet(this$static.cursor); - this$static.checkModCount(); - this$static.lastCursor = this$static.cursor++; - return next; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this$static.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} - -function AbstractEList$NonResolvingEIterator(this$0){ - this.this$01_0 = this$0; - AbstractEList$EIterator.call(this, this$0); -} - -defineClass(341, 40, $intern_6, AbstractEList$NonResolvingEIterator); -_.doNext = function doNext_0(){ - return $doNext_0(this); -} -; -_.remove = function remove_107(){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEIterator', 341); -function AbstractEList$NonResolvingEListIterator(this$0){ - this.this$01_0 = this$0; - AbstractEList$EListIterator.call(this, this$0); -} - -function AbstractEList$NonResolvingEListIterator_0(this$0, index_0){ - this.this$01_0 = this$0; - AbstractEList$EListIterator_0.call(this, this$0, index_0); -} - -defineClass(385, 278, $intern_14, AbstractEList$NonResolvingEListIterator, AbstractEList$NonResolvingEListIterator_0); -_.add_1 = function add_52(object){ - throw toJs(new UnsupportedOperationException); -} -; -_.doNext = function doNext_1(){ - var next; - try { - next = this.this$01_0.primitiveGet(this.cursor); - this.checkModCount(); - this.lastCursor = this.cursor++; - return next; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} -; -_.doPrevious = function doPrevious_0(){ - var previous; - try { - previous = this.this$01_0.primitiveGet(--this.cursor); - this.checkModCount(); - this.lastCursor = this.cursor; - return previous; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} -; -_.remove = function remove_108(){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_1 = function set_23(object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEListIterator', 385); -function newInstance_11(componentType, size_0){ - var helper; - helper = castTo($get_10(($clinit_Reflect() , HELPER_REGISTRY), componentType), 55); - return helper?helper.newArrayInstance(size_0):initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); -} - -function $clinit_ArrayDelegatingEList(){ - $clinit_ArrayDelegatingEList = emptyMethod; - EMPTY_ARRAY = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function $assign_0(data_0, index_0, object){ - setCheck(data_0, index_0, object); - return object; -} - -function $copy_0(this$static){ - var data_0, newData; - data_0 = castTo($getField(this$static.this$01, 4), 126); - if (data_0 != null) { - newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, data_0.length, 0, 1); - arraycopy(data_0, 0, newData, 0, data_0.length); - return newData; - } - else { - return EMPTY_ARRAY; - } -} - -function $grow(this$static, size_0){ - var data_0, oldData; - oldData = castTo($getField(this$static.this$01, 4), 126); - data_0 = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); - oldData != null && arraycopy(oldData, 0, data_0, 0, oldData.length); - return data_0; -} - -function $remove_37(this$static, index_0){ - var data_0, newData, oldObject, shifted, size_0; - data_0 = castTo($getField(this$static.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - if (index_0 >= size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - oldObject = data_0[index_0]; - if (size_0 == 1) { - newData = null; - } - else { - newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0 - 1, 0, 1); - arraycopy(data_0, 0, newData, 0, index_0); - shifted = size_0 - index_0 - 1; - shifted > 0 && arraycopy(data_0, index_0 + 1, newData, index_0, shifted); - } - $setData(this$static, newData); - $didRemove_0(this$static, index_0, oldObject); - return oldObject; -} - -defineClass(1982, 67, $intern_144); -_.addAllUnique = function addAllUnique_7(index_0, collection){ - var currentIndex, data_0, growth, i, i0, object, objects, oldData, oldSize, shifted, size_0; - growth = collection.size_1(); - if (growth != 0) { - oldData = castTo($getField(this.this$01, 4), 126); - oldSize = oldData == null?0:oldData.length; - size_0 = oldSize + growth; - data_0 = $grow(this, size_0); - shifted = oldSize - index_0; - shifted > 0 && arraycopy(oldData, index_0, data_0, index_0 + growth, shifted); - objects = collection.iterator_0(); - for (i0 = 0; i0 < growth; ++i0) { - object = objects.next_1(); - currentIndex = index_0 + i0; - $assign_0(data_0, currentIndex, $validate(this, object)); - } - $setData(this, data_0); - for (i = 0; i < growth; ++i) { - object = data_0[index_0]; - this.didAdd(index_0, object); - ++index_0; - } - return true; - } - else { - ++this.modCount; - return false; - } -} -; -_.addAllUnique_0 = function addAllUnique_8(collection){ - var data_0, data0, growth, i, i0, object, objects, oldSize, size_0; - growth = collection.size_1(); - if (growth != 0) { - oldSize = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); - size_0 = oldSize + growth; - data_0 = $grow(this, size_0); - objects = collection.iterator_0(); - for (i0 = oldSize; i0 < size_0; ++i0) { - object = objects.next_1(); - $assign_0(data_0, i0, $validate(this, object)); - } - $setData(this, data_0); - for (i = oldSize; i < size_0; ++i) { - object = data_0[i]; - this.didAdd(i, object); - } - return true; - } - else { - ++this.modCount; - return false; - } -} -; -_.addUnique = function addUnique_7(index_0, object){ - var data_0, oldData, size_0, validatedObject; - oldData = castTo($getField(this.this$01, 4), 126); - size_0 = oldData == null?0:oldData.length; - data_0 = $grow(this, size_0 + 1); - validatedObject = $validate(this, object); - index_0 != size_0 && arraycopy(oldData, index_0, data_0, index_0 + 1, size_0 - index_0); - setCheck(data_0, index_0, validatedObject); - $setData(this, data_0); - this.didAdd(index_0, object); -} -; -_.addUnique_0 = function addUnique_8(object){ - var data_0, data0, size_0; - size_0 = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); - data_0 = $grow(this, size_0 + 1); - $assign_0(data_0, size_0, $validate(this, object)); - $setData(this, data_0); - this.didAdd(size_0, object); -} -; -_.basicIterator = function basicIterator_0(){ - return new ArrayDelegatingEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator_1(){ - return new ArrayDelegatingEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_2(index_0){ - var data_0, size_0; - size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new ArrayDelegatingEList$NonResolvingEListIterator_0(this, index_0); -} -; -_.clear_0 = function clear_56(){ - var oldData, oldSize; - ++this.modCount; - oldData = castTo($getField(this.this$01, 4), 126); - oldSize = oldData == null?0:oldData.length; - $setData(this, null); - $didClear(this, oldSize, oldData); -} -; -_.contains = function contains_55(object){ - var data_0, datum, datum$array, datum$index, datum$max; - data_0 = castTo($getField(this.this$01, 4), 126); - if (data_0 != null) { - if (object != null) { - for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { - datum = datum$array[datum$index]; - if (equals_Ljava_lang_Object__Z__devirtual$(object, datum)) { - return true; - } - } - } - else { - for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { - datum = datum$array[datum$index]; - if (maskUndefined(datum) === maskUndefined(object)) { - return true; - } - } - } - } - return false; -} -; -_.get_0 = function get_52(index_0){ - var data_0, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - if (index_0 >= size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return data_0[index_0]; -} -; -_.indexOf_0 = function indexOf_10(object){ - var data_0, i, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - if (data_0 != null) { - if (object != null) { - for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, data_0[i])) { - return i; - } - } - } - else { - for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { - if (maskUndefined(data_0[i]) === maskUndefined(object)) { - return i; - } - } - } - } - return -1; -} -; -_.isEmpty = function isEmpty_28(){ - return castTo($getField(this.this$01, 4), 126) == null; -} -; -_.iterator_0 = function iterator_80(){ - return new ArrayDelegatingEList$EIterator(this); -} -; -_.listIterator_0 = function listIterator_19(){ - return new ArrayDelegatingEList$EListIterator(this); -} -; -_.listIterator_1 = function listIterator_20(index_0){ - var data_0, size_0; - size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new ArrayDelegatingEList$EListIterator_0(this, index_0); -} -; -_.move = function move_5(targetIndex, sourceIndex){ - var data_0, object, size_0; - data_0 = $copy_0(this); - size_0 = data_0 == null?0:data_0.length; - if (targetIndex >= size_0) - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); - if (sourceIndex >= size_0) - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); - object = data_0[sourceIndex]; - if (targetIndex != sourceIndex) { - targetIndex < sourceIndex?arraycopy(data_0, targetIndex, data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(data_0, sourceIndex + 1, data_0, sourceIndex, targetIndex - sourceIndex); - setCheck(data_0, targetIndex, object); - $setData(this, data_0); - } - return object; -} -; -_.primitiveGet = function primitiveGet_1(index_0){ - return castTo($getField(this.this$01, 4), 126)[index_0]; -} -; -_.remove_2 = function remove_109(index_0){ - return $remove_37(this, index_0); -} -; -_.setUnique = function setUnique_3(index_0, object){ - var data_0, oldObject; - data_0 = $copy_0(this); - oldObject = data_0[index_0]; - $assign_0(data_0, index_0, $validate(this, object)); - $setData(this, data_0); - return oldObject; -} -; -_.size_1 = function size_67(){ - var data_0; - return data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length; -} -; -_.toArray = function toArray_30(){ - var data_0, result, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - result = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); - size_0 > 0 && arraycopy(data_0, 0, result, 0, size_0); - return result; -} -; -_.toArray_0 = function toArray_31(array){ - var data_0, newArray, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - if (size_0 > 0) { - if (array.length < size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); - array = newArray; - } - arraycopy(data_0, 0, array, 0, size_0); - } - array.length > size_0 && setCheck(array, size_0, null); - return array; -} -; -var EMPTY_ARRAY; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList', 1982); -function ArrayDelegatingEList$EIterator(this$0){ - this.this$01 = this$0; - AbstractEList$EIterator.call(this, this$0); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} - -defineClass(1038, 40, $intern_6, ArrayDelegatingEList$EIterator); -_.checkModCount = function checkModCount_0(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -_.remove = function remove_110(){ - $remove_36(this); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EIterator', 1038); -function $$init_9(this$static){ - this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); -} - -function ArrayDelegatingEList$EListIterator(this$0){ - this.this$01 = this$0; - AbstractEList$EListIterator.call(this, this$0); - $$init_9(this); -} - -function ArrayDelegatingEList$EListIterator_0(this$0, index_0){ - this.this$01 = this$0; - AbstractEList$EListIterator_0.call(this, this$0, index_0); - $$init_9(this); -} - -defineClass(706, 278, $intern_14, ArrayDelegatingEList$EListIterator, ArrayDelegatingEList$EListIterator_0); -_.checkModCount = function checkModCount_1(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -_.doSet = function doSet_0(object){ - $doSet(this, object); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} -; -_.remove = function remove_111(){ - $remove_36(this); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EListIterator', 706); -function ArrayDelegatingEList$NonResolvingEIterator(this$0){ - this.this$01 = this$0; - AbstractEList$NonResolvingEIterator.call(this, this$0); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} - -defineClass(1039, 341, $intern_6, ArrayDelegatingEList$NonResolvingEIterator); -_.checkModCount = function checkModCount_2(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEIterator', 1039); -function $$init_10(this$static){ - this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); -} - -function ArrayDelegatingEList$NonResolvingEListIterator(this$0){ - this.this$01 = this$0; - AbstractEList$NonResolvingEListIterator.call(this, this$0); - $$init_10(this); -} - -function ArrayDelegatingEList$NonResolvingEListIterator_0(this$0, index_0){ - this.this$01 = this$0; - AbstractEList$NonResolvingEListIterator_0.call(this, this$0, index_0); - $$init_10(this); -} - -defineClass(707, 385, $intern_14, ArrayDelegatingEList$NonResolvingEListIterator, ArrayDelegatingEList$NonResolvingEListIterator_0); -_.checkModCount = function checkModCount_3(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEListIterator', 707); -function BasicEList$BasicIndexOutOfBoundsException(index_0, size_0){ - AbstractEList$BasicIndexOutOfBoundsException.call(this, index_0, size_0); -} - -defineClass(606, 295, $intern_57, BasicEList$BasicIndexOutOfBoundsException); -var Lorg_eclipse_emf_common_util_BasicEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/BasicIndexOutOfBoundsException', 606); -function BasicEList$UnmodifiableEList(size_0, data_0){ - this.size_0 = size_0; - this.data_0 = data_0; -} - -defineClass(696, 63, $intern_138, BasicEList$UnmodifiableEList); -_.add_3 = function add_53(index_0, object){ - throw toJs(new UnsupportedOperationException); -} -; -_.add_2 = function add_54(object){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll_0 = function addAll_26(index_0, collection){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll = function addAll_27(collection){ - throw toJs(new UnsupportedOperationException); -} -; -_.clear_0 = function clear_57(){ - throw toJs(new UnsupportedOperationException); -} -; -_.grow = function grow_0(minimumCapacity){ - throw toJs(new UnsupportedOperationException); -} -; -_.iterator_0 = function iterator_81(){ - return this.basicIterator(); -} -; -_.listIterator_0 = function listIterator_21(){ - return this.basicListIterator(); -} -; -_.listIterator_1 = function listIterator_22(index_0){ - return this.basicListIterator_0(index_0); -} -; -_.move = function move_6(targetIndex, sourceIndex){ - throw toJs(new UnsupportedOperationException); -} -; -_.move_0 = function move_7(index_0, object){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_2 = function remove_112(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_1 = function remove_113(object){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_2 = function set_24(index_0, object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_BasicEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/UnmodifiableEList', 696); -function $add_24(this$static, index_0, object){ - this$static.delegateEList.add_3(index_0, castTo(object, 133)); -} - -function $add_25(this$static, object){ - return this$static.delegateEList.add_2(castTo(object, 133)); -} - -function $containsKey_7(this$static, key){ - var entryIndex, hash, index_0; - if (this$static.size_0 > 0) { - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = (hash & $intern_0) % this$static.entryData.length; - entryIndex = $entryIndexForKey(this$static, index_0, hash, key); - return entryIndex != -1; - } - else { - return false; - } -} - -function $containsValue_4(this$static, value_0){ - var eList, entries, entry, i, j, size_0; - if (this$static.size_0 > 0) { - this$static.ensureEntryDataExists(); - if (value_0 != null) { - for (i = 0; i < this$static.entryData.length; ++i) { - eList = this$static.entryData[i]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue())) { - return true; - } - } - } - } - } - else { - for (i = 0; i < this$static.entryData.length; ++i) { - eList = this$static.entryData[i]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (maskUndefined(value_0) === maskUndefined(entry.getValue())) { - return true; - } - } - } - } - } - } - return false; -} - -function $didClear_0(oldEntryData){ - var eList, i, j, size_0; - if (oldEntryData != null) { - for (i = 0; i < oldEntryData.length; ++i) { - eList = oldEntryData[i]; - if (eList) { - castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) - ; - } - } - } -} - -function $doClear_0(this$static){ - var oldEntryData; - if (this$static.entryData == null) { - ++this$static.modCount; - this$static.size_0 = 0; - $didClear_0(null); - } - else { - ++this$static.modCount; - oldEntryData = this$static.entryData; - this$static.entryData = null; - this$static.size_0 = 0; - $didClear_0(oldEntryData); - } -} - -function $doPut(this$static, entry){ - var eList, hash, index_0; - if (this$static.entryData == null) { - ++this$static.modCount; - ++this$static.size_0; - } - else { - hash = entry.getHash(); - $grow_0(this$static, this$static.size_0 + 1); - index_0 = (hash & $intern_0) % this$static.entryData.length; - eList = this$static.entryData[index_0]; - !eList && (eList = this$static.entryData[index_0] = this$static.newList()); - eList.add_2(entry); - ++this$static.size_0; - } -} - -function $doRemove(this$static, entry){ - var hash, index_0, key; - if (this$static.entryData == null) { - ++this$static.modCount; - --this$static.size_0; - } - else { - key = entry.getKey(); - hash = entry.getHash(); - index_0 = (hash & $intern_0) % this$static.entryData.length; - $removeEntry_0(this$static, index_0, $entryIndexForKey(this$static, index_0, hash, key)); - } -} - -function $entryForKey(this$static, index_0, hash, key){ - var eList, entries, entry, j, size_0; - eList = this$static.entryData[index_0]; - if (eList) { - entries = eList.data_0; - size_0 = eList.size_0; - if (key != null) { - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { - return entry; - } - } - } - else { - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (maskUndefined(entry.getKey()) === maskUndefined(key)) { - return entry; - } - } - } - } - return null; -} - -function $entryIndexForKey(this$static, index_0, hash, key){ - var eList, entries, entry, j, size_0; - if (key != null) { - eList = this$static.entryData[index_0]; - if (eList) { - entries = eList.data_0; - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { - return j; - } - } - } - } - else { - eList = this$static.entryData[index_0]; - if (eList) { - entries = eList.data_0; - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (maskUndefined(entry.getKey()) === maskUndefined(key)) { - return j; - } - } - } - } - return -1; -} - -function $entrySet_3(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.entrySet && (this$static.view.entrySet = new BasicEMap$5(this$static)); - return this$static.view.entrySet; -} - -function $equals_12(this$static, object){ - return instanceOf(object, 15) && $equals_11(this$static.delegateEList, object); -} - -function $get_21(this$static, key){ - var entry, hash, index_0; - if (this$static.size_0 > 0) { - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = (hash & $intern_0) % this$static.entryData.length; - entry = $entryForKey(this$static, index_0, hash, key); - if (entry) { - return entry.getValue(); - } - } - return null; -} - -function $grow_0(this$static, minimumCapacity){ - var eList, entries, entry, i, index_0, j, oldCapacity, oldEList, oldEntryData, size_0; - ++this$static.modCount; - oldCapacity = this$static.entryData == null?0:this$static.entryData.length; - if (minimumCapacity > oldCapacity) { - oldEntryData = this$static.entryData; - this$static.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * oldCapacity + 4, 0, 1); - for (i = 0; i < oldCapacity; ++i) { - oldEList = oldEntryData[i]; - if (oldEList) { - entries = oldEList.data_0; - size_0 = oldEList.size_0; - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - index_0 = $indexOf_5(this$static, entry.getHash()); - eList = this$static.entryData[index_0]; - !eList && (eList = this$static.entryData[index_0] = this$static.newList()); - eList.add_2(entry); - } - } - } - return true; - } - else { - return false; - } -} - -function $hashOf(key){ - return key == null?0:hashCode__I__devirtual$(key); -} - -function $indexOf_5(this$static, hash){ - return (hash & $intern_0) % this$static.entryData.length; -} - -function $keySet_2(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.keySet && (this$static.view.keySet = new BasicEMap$3(this$static)); - return this$static.view.keySet; -} - -function $map_1(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.map_0 && (this$static.view.map_0 = new BasicEMap$DelegatingMap(this$static)); - return this$static.view.map_0; -} - -function $move_2(this$static, index_0, object){ - this$static.delegateEList.move_0(index_0, castTo(object, 133)); -} - -function $put_13(this$static, key, value_0){ - var entry, entry0, hash, index_0, result; - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - if (this$static.size_0 > 0) { - index_0 = (hash & $intern_0) % this$static.entryData.length; - entry0 = $entryForKey(this$static, index_0, hash, key); - if (entry0) { - result = entry0.setValue(value_0); - return result; - } - } - entry = this$static.newEntry(hash, key, value_0); - this$static.delegateEList.add_2(entry); - return null; -} - -function $putAll_0(this$static, map_0){ - var entry, entry$iterator; - for (entry$iterator = map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - $put_13(this$static, entry.getKey(), entry.getValue()); - } -} - -function $remove_38(this$static, object){ - var result; - if (instanceOf(object, 42)) { - return this$static.delegateEList.remove_1(object); - } - else { - result = $containsKey_7(this$static, object); - $removeKey(this$static, object); - return result; - } -} - -function $removeEntry_0(this$static, index_0, entryIndex){ - var entry; - ++this$static.modCount; - --this$static.size_0; - entry = castTo(this$static.entryData[index_0].remove_2(entryIndex), 133); - return entry.getValue(); -} - -function $removeKey(this$static, key){ - var entry, hash, index_0; - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = (hash & $intern_0) % this$static.entryData.length; - entry = $entryForKey(this$static, index_0, hash, key); - if (entry) { - $remove_38(this$static, entry); - return entry.getValue(); - } - else { - return null; - } -} - -function $set_12(this$static, index_0, object){ - return castTo(this$static.delegateEList.set_2(index_0, castTo(object, 133)), 42); -} - -function $values_3(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.values && (this$static.view.values = new BasicEMap$4(this$static)); - return this$static.view.values; -} - -defineClass(705, 1, {3:1, 20:1, 14:1, 15:1, 58:1, 589:1}); -_.add_3 = function add_55(index_0, object){ - $add_24(this, index_0, castTo(object, 42)); -} -; -_.add_2 = function add_56(object){ - return $add_25(this, castTo(object, 42)); -} -; -_.forEach_0 = function forEach_37(action){ - $forEach_0(this, action); -} -; -_.get_0 = function get_53(index_0){ - return castTo($get_20(this.delegateEList, index_0), 133); -} -; -_.move = function move_8(targetIndex, sourceIndex){ - return castTo(this.delegateEList.move(targetIndex, sourceIndex), 42); -} -; -_.move_0 = function move_9(index_0, object){ - $move_2(this, index_0, castTo(object, 42)); -} -; -_.parallelStream = function parallelStream_5(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.remove_2 = function remove_114(index_0){ - return castTo(this.delegateEList.remove_2(index_0), 42); -} -; -_.set_2 = function set_25(index_0, object){ - return $set_12(this, index_0, castTo(object, 42)); -} -; -_.sort_0 = function sort_12(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_38(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_7(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.addAll_0 = function addAll_28(index_0, collection){ - return this.delegateEList.addAll_0(index_0, collection); -} -; -_.addAll = function addAll_29(collection){ - return this.delegateEList.addAll(collection); -} -; -_.clear_0 = function clear_58(){ - this.delegateEList.clear_0(); -} -; -_.contains = function contains_56(object){ - return this.delegateEList.contains(object); -} -; -_.containsAll = function containsAll_12(collection){ - return $containsAll(this.delegateEList, collection); -} -; -_.ensureEntryDataExists = function ensureEntryDataExists(){ - var entry, entry$iterator, oldModCount; - if (this.entryData == null) { - this.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); - oldModCount = this.modCount; - this.size_0 = 0; - for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { - entry = castTo(entry$iterator.doNext(), 133); - $doPut(this, entry); - } - this.modCount = oldModCount; - } -} -; -_.equals_0 = function equals_188(object){ - return $equals_12(this, object); -} -; -_.hashCode_1 = function hashCode_76(){ - return $hashCode_2(this.delegateEList); -} -; -_.indexOf_0 = function indexOf_11(object){ - return this.delegateEList.indexOf_0(object); -} -; -_.initializeDelegateEList = function initializeDelegateEList(){ - this.delegateEList = new BasicEMap$1(this); -} -; -_.isEmpty = function isEmpty_29(){ - return this.size_0 == 0; -} -; -_.iterator_0 = function iterator_82(){ - return this.delegateEList.iterator_0(); -} -; -_.listIterator_0 = function listIterator_23(){ - return this.delegateEList.listIterator_0(); -} -; -_.listIterator_1 = function listIterator_24(index_0){ - return this.delegateEList.listIterator_1(index_0); -} -; -_.map_2 = function map_5(){ - return $map_1(this); -} -; -_.newEntry = function newEntry_0(hash, key, value_0){ - return new BasicEMap$EntryImpl(hash, key, value_0); -} -; -_.newList = function newList(){ - return new BasicEMap$2; -} -; -_.remove_1 = function remove_115(object){ - return $remove_38(this, object); -} -; -_.size_1 = function size_68(){ - return this.size_0; -} -; -_.subList = function subList_10(start_0, end){ - return new AbstractList$SubList(this.delegateEList, start_0, end); -} -; -_.toArray = function toArray_32(){ - return this.delegateEList.toArray(); -} -; -_.toArray_0 = function toArray_33(array){ - return this.delegateEList.toArray_0(array); -} -; -_.toString_0 = function toString_138(){ - return $toString_25(this.delegateEList); -} -; -_.modCount = 0; -_.size_0 = 0; -var Lorg_eclipse_emf_common_util_BasicEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap', 705); -function $didAdd(this$static, newObject){ - $doPut(this$static.this$01, newObject); -} - -function $didRemove(this$static, oldObject){ - $doRemove(this$static.this$01, oldObject); -} - -function $didSet(this$static, newObject, oldObject){ - $doRemove(this$static.this$01, oldObject); - $doPut(this$static.this$01, newObject); -} - -function BasicEMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1033, 63, $intern_138, BasicEMap$1); -_.didAdd = function didAdd_0(index_0, newObject){ - $didAdd(this, castTo(newObject, 133)); -} -; -_.didMove = function didMove_0(index_0, movedObject, oldIndex){ - var lastArg; - ++(lastArg = this , castTo(movedObject, 133) , lastArg).this$01.modCount; -} -; -_.didRemove = function didRemove_0(index_0, oldObject){ - $didRemove(this, castTo(oldObject, 133)); -} -; -_.didSet = function didSet_0(index_0, newObject, oldObject){ - $didSet(this, castTo(newObject, 133), castTo(oldObject, 133)); -} -; -_.didClear = function didClear_0(size_0, oldObjects){ - $doClear_0(this.this$01); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/1', 1033); -function BasicEMap$2(){ -} - -defineClass(1034, 63, $intern_138, BasicEMap$2); -_.newData = function newData_2(listCapacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit, $intern_146, 612, listCapacity, 0, 1); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$2_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/2', 1034); -function BasicEMap$3(this$0){ - this.this$01 = this$0; -} - -defineClass(1035, $intern_9, $intern_10, BasicEMap$3); -_.clear_0 = function clear_59(){ - this.this$01.delegateEList.clear_0(); -} -; -_.contains = function contains_57(key){ - return $containsKey_7(this.this$01, key); -} -; -_.iterator_0 = function iterator_83(){ - return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapKeyIterator(this.this$01); -} -; -_.remove_1 = function remove_116(key){ - var oldSize; - oldSize = this.this$01.size_0; - $removeKey(this.this$01, key); - return this.this$01.size_0 != oldSize; -} -; -_.size_1 = function size_69(){ - return this.this$01.size_0; -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$3_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/3', 1035); -function BasicEMap$4(this$0){ - this.this$01 = this$0; -} - -defineClass(1036, 28, $intern_8, BasicEMap$4); -_.clear_0 = function clear_60(){ - this.this$01.delegateEList.clear_0(); -} -; -_.contains = function contains_58(value_0){ - return $containsValue_4(this.this$01, value_0); -} -; -_.iterator_0 = function iterator_84(){ - return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapValueIterator(this.this$01); -} -; -_.size_1 = function size_70(){ - return this.this$01.size_0; -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$4_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/4', 1036); -function $remove_39(this$static, object){ - var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; - if (this$static.this$01.size_0 > 0 && instanceOf(object, 42)) { - this$static.this$01.ensureEntryDataExists(); - otherEntry = castTo(object, 42); - key = otherEntry.getKey(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = $indexOf_5(this$static.this$01, hash); - eList = this$static.this$01.entryData[index_0]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (entry.getHash() == hash && entry.equals_0(otherEntry)) { - $remove_39(this$static, otherEntry); - return true; - } - } - } - } - return false; -} - -function BasicEMap$5(this$0){ - this.this$01 = this$0; -} - -defineClass(1037, $intern_9, $intern_10, BasicEMap$5); -_.clear_0 = function clear_61(){ - this.this$01.delegateEList.clear_0(); -} -; -_.contains = function contains_59(object){ - var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; - if (this.this$01.size_0 > 0 && instanceOf(object, 42)) { - this.this$01.ensureEntryDataExists(); - otherEntry = castTo(object, 42); - key = otherEntry.getKey(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = $indexOf_5(this.this$01, hash); - eList = this.this$01.entryData[index_0]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (entry.getHash() == hash && entry.equals_0(otherEntry)) { - return true; - } - } - } - } - return false; -} -; -_.iterator_0 = function iterator_85(){ - return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapIterator(this.this$01); -} -; -_.remove_1 = function remove_117(object){ - return $remove_39(this, object); -} -; -_.size_1 = function size_71(){ - return this.this$01.size_0; -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$5_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/5', 1037); -function $scan(this$static){ - var eList; - this$static.this$01.ensureEntryDataExists(); - if (this$static.entryCursor != -1) { - ++this$static.entryCursor; - eList = this$static.this$01.entryData[this$static.cursor]; - if (this$static.entryCursor < eList.size_0) { - return; - } - ++this$static.cursor; - } - for (; this$static.cursor < this$static.this$01.entryData.length; ++this$static.cursor) { - eList = this$static.this$01.entryData[this$static.cursor]; - if (!!eList && eList.size_0 != 0) { - this$static.entryCursor = 0; - return; - } - } - this$static.entryCursor = -1; -} - -function BasicEMap$BasicEMapIterator(this$0){ - this.this$01 = this$0; - this.expectedModCount = this.this$01.modCount; - this$0.size_0 > 0 && $scan(this); -} - -defineClass(613, 1, $intern_6, BasicEMap$BasicEMapIterator); -_.forEachRemaining = function forEachRemaining_55(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_44(){ - return this.entryCursor != -1; -} -; -_.next_1 = function next_45(){ - var result; - if (this.this$01.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - if (this.entryCursor == -1) { - throw toJs(new NoSuchElementException); - } - this.lastCursor = this.cursor; - this.lastEntryCursor = this.entryCursor; - $scan(this); - result = castTo(this.this$01.entryData[this.lastCursor].data_0[this.lastEntryCursor], 133); - return this.yield_0(result); -} -; -_.remove = function remove_118(){ - if (this.this$01.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - if (this.lastEntryCursor == -1) { - throw toJs(new IllegalStateException); - } - this.this$01.delegateEList.remove_1($get_20(this.this$01.entryData[this.lastCursor], this.lastEntryCursor)); - this.expectedModCount = this.this$01.modCount; - this.lastEntryCursor = -1; - this.cursor == this.lastCursor && this.entryCursor != -1 && --this.entryCursor; -} -; -_.yield_0 = function yield_0(entry){ - return entry; -} -; -_.cursor = 0; -_.entryCursor = -1; -_.expectedModCount = 0; -_.lastCursor = 0; -_.lastEntryCursor = 0; -var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapIterator', 613); -function BasicEMap$BasicEMapKeyIterator(this$0){ - BasicEMap$BasicEMapIterator.call(this, this$0); -} - -defineClass(1031, 613, $intern_6, BasicEMap$BasicEMapKeyIterator); -_.yield_0 = function yield_1(entry){ - return entry.getKey(); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapKeyIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapKeyIterator', 1031); -function BasicEMap$BasicEMapValueIterator(this$0){ - BasicEMap$BasicEMapIterator.call(this, this$0); -} - -defineClass(1032, 613, $intern_6, BasicEMap$BasicEMapValueIterator); -_.yield_0 = function yield_2(entry){ - return entry.getValue(); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapValueIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapValueIterator', 1032); -function $containsKey_8(this$static, key){ - return $containsKey_7(this$static.this$01, key); -} - -function BasicEMap$DelegatingMap(this$0){ - this.this$01 = this$0; -} - -defineClass(1030, 1, $intern_7, BasicEMap$DelegatingMap); -_.forEach = function forEach_38(consumer){ - $forEach_2(this, consumer); -} -; -_.merge = function merge_4(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.clear_0 = function clear_62(){ - this.this$01.delegateEList.clear_0(); -} -; -_.containsKey = function containsKey_15(key){ - return $containsKey_8(this, key); -} -; -_.containsValue = function containsValue_8(value_0){ - return $containsValue_4(this.this$01, value_0); -} -; -_.entrySet_0 = function entrySet_9(){ - return $entrySet_3(this.this$01); -} -; -_.equals_0 = function equals_189(object){ - return $equals_12(this.this$01, object); -} -; -_.get_3 = function get_54(key){ - return $get_21(this.this$01, key); -} -; -_.hashCode_1 = function hashCode_77(){ - return $hashCode_2(this.this$01.delegateEList); -} -; -_.isEmpty = function isEmpty_30(){ - return this.this$01.size_0 == 0; -} -; -_.keySet_0 = function keySet_18(){ - return $keySet_2(this.this$01); -} -; -_.put = function put_10(key, value_0){ - return $put_13(this.this$01, key, value_0); -} -; -_.remove_0 = function remove_119(key){ - return $removeKey(this.this$01, key); -} -; -_.size_1 = function size_72(){ - return this.this$01.size_0; -} -; -_.toString_0 = function toString_139(){ - return $toString_25(this.this$01.delegateEList); -} -; -_.values_0 = function values_118(){ - return $values_3(this.this$01); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$DelegatingMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/DelegatingMap', 1030); -function BasicEMap$EntryImpl(hash, key, value_0){ - this.hash = hash; - this.key = key; - this.value_0 = value_0; -} - -defineClass(612, 1, {42:1, 133:1, 612:1}, BasicEMap$EntryImpl); -_.equals_0 = function equals_190(object){ - var entry; - if (instanceOf(object, 42)) { - entry = castTo(object, 42); - return (this.key != null?equals_Ljava_lang_Object__Z__devirtual$(this.key, entry.getKey()):maskUndefined(this.key) === maskUndefined(entry.getKey())) && (this.value_0 != null?equals_Ljava_lang_Object__Z__devirtual$(this.value_0, entry.getValue()):maskUndefined(this.value_0) === maskUndefined(entry.getValue())); - } - else { - return false; - } -} -; -_.getHash = function getHash_0(){ - return this.hash; -} -; -_.getKey = function getKey_9(){ - return this.key; -} -; -_.getValue = function getValue_11(){ - return this.value_0; -} -; -_.hashCode_1 = function hashCode_78(){ - return this.hash ^ (this.value_0 == null?0:hashCode__I__devirtual$(this.value_0)); -} -; -_.setHash = function setHash_0(hash){ - this.hash = hash; -} -; -_.setKey = function setKey_0(key){ - throw toJs(new RuntimeException); -} -; -_.setValue = function setValue_12(value_0){ - var oldValue; - oldValue = this.value_0; - this.value_0 = value_0; - return oldValue; -} -; -_.toString_0 = function toString_140(){ - return this.key + '->' + this.value_0; -} -; -_.hash = 0; -var Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/EntryImpl', 612); -function BasicEMap$View(){ -} - -defineClass(536, 1, {}, BasicEMap$View); -var Lorg_eclipse_emf_common_util_BasicEMap$View_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/View', 536); -function $clinit_ECollections(){ - $clinit_ECollections = emptyMethod; - EMPTY_ELIST = new ECollections$EmptyUnmodifiableEList; - new ECollections$EmptyUnmodifiableEMap; -} - -function indexOf_12(list, o, fromIndex){ - var element, i, size_0; - fromIndex < 0 && (fromIndex = 0); - size_0 = list.size_0; - for (i = fromIndex; i < size_0; i++) { - element = $get_20(list, i); - if (o == null) { - if (element == null) { - return i; - } - } - else if (maskUndefined(o) === maskUndefined(element) || equals_Ljava_lang_Object__Z__devirtual$(o, element)) { - return i; - } - } - return -1; -} - -function sort_13(list, comparator){ - $clinit_ECollections(); - var i, listAsArray, objectComparator, oldIndex; - listAsArray = $toArray_11(list); - objectComparator = comparator; - mergeSort(listAsArray, 0, listAsArray.length, objectComparator); - for (i = 0; i < listAsArray.length; i++) { - oldIndex = indexOf_12(list, listAsArray[i], i); - i != oldIndex && $move_1(list, i, oldIndex); - } -} - -var EMPTY_ELIST; -function $add_26(){ - throw toJs(new UnsupportedOperationException); -} - -function $add_27(){ - throw toJs(new UnsupportedOperationException); -} - -function $addAll_10(){ - throw toJs(new UnsupportedOperationException); -} - -function $addAll_11(){ - throw toJs(new UnsupportedOperationException); -} - -function $clear_14(){ - throw toJs(new UnsupportedOperationException); -} - -function $move_3(){ - throw toJs(new UnsupportedOperationException); -} - -function $move_4(){ - throw toJs(new UnsupportedOperationException); -} - -function $remove_40(){ - throw toJs(new UnsupportedOperationException); -} - -function $remove_41(){ - throw toJs(new UnsupportedOperationException); -} - -function $set_13(){ - throw toJs(new UnsupportedOperationException); -} - -function ECollections$BasicEmptyUnmodifiableEList(){ - this.listIterator = new ECollections$BasicEmptyUnmodifiableEList$1; -} - -defineClass(768, 1, {}); -_.equals_0 = function equals_191(o){ - return $equals_2(($clinit_Collections() , EMPTY_LIST), o); -} -; -_.hashCode_1 = function hashCode_79(){ - return hashCode_48(($clinit_Collections() , EMPTY_LIST)); -} -; -_.toString_0 = function toString_141(){ - return $toString_2(($clinit_Collections() , EMPTY_LIST)); -} -; -var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList', 768); -function ECollections$BasicEmptyUnmodifiableEList$1(){ -} - -defineClass(1312, 1, $intern_14, ECollections$BasicEmptyUnmodifiableEList$1); -_.forEachRemaining = function forEachRemaining_56(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_57(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.hasNext_0 = function hasNext_45(){ - return false; -} -; -_.hasPrevious = function hasPrevious_8(){ - return false; -} -; -_.next_1 = function next_46(){ - throw toJs(new NoSuchElementException); -} -; -_.nextIndex_0 = function nextIndex_9(){ - return 0; -} -; -_.previous_0 = function previous_9(){ - throw toJs(new NoSuchElementException); -} -; -_.previousIndex = function previousIndex_8(){ - return -1; -} -; -_.remove = function remove_120(){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_1 = function set_26(o){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList/1', 1312); -function ECollections$EmptyUnmodifiableEList(){ - ECollections$BasicEmptyUnmodifiableEList.call(this); -} - -defineClass(1310, 768, {20:1, 14:1, 15:1, 58:1}, ECollections$EmptyUnmodifiableEList); -_.add_3 = function add_58(index_0, element){ - $add_26(); -} -; -_.add_2 = function add_59(o){ - return $add_27(); -} -; -_.addAll_0 = function addAll_30(index_0, collection){ - return $addAll_10(); -} -; -_.addAll = function addAll_31(coll){ - return $addAll_11(); -} -; -_.clear_0 = function clear_63(){ - $clear_14(); -} -; -_.contains = function contains_60(o){ - return false; -} -; -_.containsAll = function containsAll_13(coll){ - return false; -} -; -_.forEach_0 = function forEach_39(action){ - $forEach_0(this, action); -} -; -_.get_0 = function get_55(index_0){ - return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; -} -; -_.indexOf_0 = function indexOf_13(o){ - return -1; -} -; -_.isEmpty = function isEmpty_31(){ - return true; -} -; -_.iterator_0 = function iterator_86(){ - return this.listIterator; -} -; -_.listIterator_0 = function listIterator_25(){ - return this.listIterator; -} -; -_.listIterator_1 = function listIterator_26(index_0){ - return this.listIterator; -} -; -_.move = function move_10(newPosition, oldPosition){ - return $move_3(); -} -; -_.move_0 = function move_11(newPosition, o){ - $move_4(); -} -; -_.parallelStream = function parallelStream_6(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.remove_2 = function remove_121(index_0){ - return $remove_40(); -} -; -_.remove_1 = function remove_122(o){ - return $remove_41(); -} -; -_.set_2 = function set_27(index_0, element){ - return $set_13(); -} -; -_.size_1 = function size_73(){ - return 0; -} -; -_.sort_0 = function sort_14(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_39(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_8(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.subList = function subList_11(fromIndex, toIndex){ - return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); -} -; -_.toArray = function toArray_34(){ - return $toArray(($clinit_Collections() , EMPTY_LIST)); -} -; -_.toArray_0 = function toArray_35(a){ - return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); -} -; -var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEList', 1310); -function ECollections$EmptyUnmodifiableEMap(){ - ECollections$BasicEmptyUnmodifiableEList.call(this); -} - -defineClass(1311, 768, {20:1, 14:1, 15:1, 58:1, 589:1}, ECollections$EmptyUnmodifiableEMap); -_.add_3 = function add_60(index_0, element){ - $add_26(); -} -; -_.add_2 = function add_61(o){ - return $add_27(); -} -; -_.addAll_0 = function addAll_32(index_0, collection){ - return $addAll_10(); -} -; -_.addAll = function addAll_33(coll){ - return $addAll_11(); -} -; -_.clear_0 = function clear_64(){ - $clear_14(); -} -; -_.contains = function contains_61(o){ - return false; -} -; -_.containsAll = function containsAll_14(coll){ - return false; -} -; -_.forEach_0 = function forEach_40(action){ - $forEach_0(this, action); -} -; -_.get_0 = function get_56(index_0){ - return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; -} -; -_.indexOf_0 = function indexOf_14(o){ - return -1; -} -; -_.isEmpty = function isEmpty_32(){ - return true; -} -; -_.iterator_0 = function iterator_87(){ - return this.listIterator; -} -; -_.listIterator_0 = function listIterator_27(){ - return this.listIterator; -} -; -_.listIterator_1 = function listIterator_28(index_0){ - return this.listIterator; -} -; -_.move = function move_12(newPosition, oldPosition){ - return $move_3(); -} -; -_.move_0 = function move_13(newPosition, o){ - $move_4(); -} -; -_.parallelStream = function parallelStream_7(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.remove_2 = function remove_123(index_0){ - return $remove_40(); -} -; -_.remove_1 = function remove_124(o){ - return $remove_41(); -} -; -_.set_2 = function set_28(index_0, element){ - return $set_13(); -} -; -_.size_1 = function size_74(){ - return 0; -} -; -_.sort_0 = function sort_15(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_40(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_9(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.subList = function subList_12(fromIndex, toIndex){ - return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); -} -; -_.toArray = function toArray_36(){ - return $toArray(($clinit_Collections() , EMPTY_LIST)); -} -; -_.toArray_0 = function toArray_37(a){ - return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); -} -; -_.map_2 = function map_6(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_MAP; -} -; -var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEMap', 1311); -var Lorg_eclipse_emf_common_util_Enumerator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'Enumerator'); -function $clinit_Reflect(){ - $clinit_Reflect = emptyMethod; - HELPER_REGISTRY = new HashMap; -} - -function isInstance(class_, instance){ - $clinit_Reflect(); - var helper; - helper = castTo($get_10(HELPER_REGISTRY, class_), 55); - return !helper || helper.isInstance(instance); -} - -function register_0(class_, helper){ - $clinit_Reflect(); - $put_6(HELPER_REGISTRY, class_, helper); -} - -var HELPER_REGISTRY; -function $clinit_URI(){ - $clinit_URI = emptyMethod; - var set_0; - uriCache = new URI$URICache; - NO_SEGMENTS = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); - ALPHA_HI = or_0(lowBitmask_0(33, 58), lowBitmask_0(1, 26)); - ALPHA_LO = or_0(lowBitmask_0(97, 122), lowBitmask_0(65, 90)); - DIGIT_LO = lowBitmask_0(48, 57); - ALPHANUM_HI = or_0(ALPHA_HI, 0); - ALPHANUM_LO = or_0(ALPHA_LO, DIGIT_LO); - HEX_HI = or_0(or_0(0, lowBitmask_0(1, 6)), lowBitmask_0(33, 38)); - HEX_LO = or_0(or_0(DIGIT_LO, lowBitmask_0(65, 70)), lowBitmask_0(97, 102)); - UNRESERVED_HI = or_0(ALPHANUM_HI, highBitmask_0("-_.!~*'()")); - UNRESERVED_LO = or_0(ALPHANUM_LO, lowBitmask_1("-_.!~*'()")); - highBitmask_0(';/?:@&=+$,'); - lowBitmask_1(';/?:@&=+$,'); - or_0(UNRESERVED_HI, highBitmask_0(';:@&=+$,')); - or_0(UNRESERVED_LO, lowBitmask_1(';:@&=+$,')); - MAJOR_SEPARATOR_HI = highBitmask_0(':/?#'); - MAJOR_SEPARATOR_LO = lowBitmask_1(':/?#'); - SEGMENT_END_HI = highBitmask_0('/?#'); - SEGMENT_END_LO = lowBitmask_1('/?#'); - set_0 = new HashSet; - set_0.map_0.put('jar', set_0); - set_0.map_0.put('zip', set_0); - set_0.map_0.put('archive', set_0); - archiveSchemes = ($clinit_Collections() , new Collections$UnmodifiableSet(set_0)); -} - -function $appendFragment(this$static, fragment){ - var result; - result = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, fragment); - this$static.fragment != null || (result.cachedTrimFragment = this$static); - return result; -} - -function $segmentsEqual(this$static, uri_0){ - var i, len; - if (this$static.segments.length != uri_0.segments.length) - return false; - for (i = 0 , len = this$static.segments.length; i < len; i++) { - if (!$equals_5(this$static.segments[i], uri_0.segments[i])) - return false; - } - return true; -} - -function $toString_26(this$static){ - var i, len, result; - if (this$static.cachedToString == null) { - result = new StringBuffer; - if (this$static.scheme != null) { - $append_3(result, this$static.scheme); - result.string += ':'; - } - if ((this$static.hashCode_0 & 256) != 0) { - if ((this$static.hashCode_0 & 256) != 0 && this$static.authority != null) { - isArchiveScheme(this$static.scheme) || (result.string += '//' , result); - $append_3(result, this$static.authority); - } - if (this$static.device != null) { - result.string += '/'; - $append_3(result, this$static.device); - } - (this$static.hashCode_0 & 16) != 0 && (result.string += '/' , result); - for (i = 0 , len = this$static.segments.length; i < len; i++) { - i != 0 && (result.string += '/' , result); - $append_3(result, this$static.segments[i]); - } - if (this$static.query != null) { - result.string += '?'; - $append_3(result, this$static.query); - } - } - else { - $append_3(result, this$static.authority); - } - if (this$static.fragment != null) { - result.string += '#'; - $append_3(result, this$static.fragment); - } - this$static.cachedToString = result.string; - } - return this$static.cachedToString; -} - -function $trimFragment(this$static){ - if (this$static.fragment == null) { - return this$static; - } - else - !this$static.cachedTrimFragment && (this$static.cachedTrimFragment = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, null)); - return this$static.cachedTrimFragment; -} - -function URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment){ - var hashCode, i, len; - hashCode = 0; - scheme != null && (hashCode ^= getHashCode_1(scheme.toLowerCase())); - authority != null && (hashCode ^= getHashCode_1(authority)); - device != null && (hashCode ^= getHashCode_1(device)); - query != null && (hashCode ^= getHashCode_1(query)); - fragment != null && (hashCode ^= getHashCode_1(fragment)); - for (i = 0 , len = segments.length; i < len; i++) { - hashCode ^= getHashCode_1(segments[i]); - } - hierarchical?(hashCode |= 256):(hashCode &= -257); - absolutePath?(hashCode |= 16):(hashCode &= -17); - this.hashCode_0 = hashCode; - this.scheme = scheme == null?null:(checkCriticalNotNull(scheme) , scheme); - this.authority = authority; - this.device = device; - this.segments = segments; - this.query = query; - this.fragment = fragment; -} - -function contains_62(s, highBitmask, lowBitmask){ - var i, len; - for (i = 0 , len = s.length; i < len; i++) { - if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) - return true; - } - return false; -} - -function createURIWithCache(uri_0){ - $clinit_URI(); - var base, fragment, i, result; - i = $indexOf_1(uri_0, fromCodePoint(35)); - base = i == -1?uri_0:uri_0.substr(0, i); - fragment = i == -1?null:uri_0.substr(i + 1); - result = $get_22(uriCache, base); - if (!result) { - result = parseIntoURI(base); - $put_14(uriCache, base, result); - fragment != null && (result = $appendFragment(result, fragment)); - } - else - fragment != null && (result = $appendFragment(result, (checkCriticalNotNull(fragment) , fragment))); - return result; -} - -function decode(value_0){ - $clinit_URI(); - var bytes, character, expectedBytes, i, j, len, receivedBytes, result; - if (value_0 == null) - return null; - i = $indexOf_1(value_0, fromCodePoint(37)); - if (i < 0) { - return value_0; - } - else { - result = new StringBuilder_1(value_0.substr(0, i)); - bytes = initUnidimensionalArray(B_classLit, $intern_136, 25, 4, 15, 1); - receivedBytes = 0; - expectedBytes = 0; - for (len = value_0.length; i < len; i++) { - checkCriticalStringElementIndex(i, value_0.length); - if (value_0.charCodeAt(i) == 37 && value_0.length > i + 2 && matches((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), HEX_HI, HEX_LO) && matches((checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2)), HEX_HI, HEX_LO)) { - character = unescape_0((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), (checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2))); - i += 2; - if (expectedBytes > 0) { - (character & 192) == 128?(bytes[receivedBytes++] = character << 24 >> 24):(expectedBytes = 0); - } - else if (character >= 128) { - if ((character & 224) == 192) { - bytes[receivedBytes++] = character << 24 >> 24; - expectedBytes = 2; - } - else if ((character & 240) == 224) { - bytes[receivedBytes++] = character << 24 >> 24; - expectedBytes = 3; - } - else if ((character & 248) == 240) { - bytes[receivedBytes++] = character << 24 >> 24; - expectedBytes = 4; - } - } - if (expectedBytes > 0) { - if (receivedBytes == expectedBytes) { - switch (receivedBytes) { - case 2: - { - $append_5(result, ((bytes[0] & 31) << 6 | bytes[1] & 63) & $intern_46); - break; - } - - case 3: - { - $append_5(result, ((bytes[0] & 15) << 12 | (bytes[1] & 63) << 6 | bytes[2] & 63) & $intern_46); - break; - } - - } - receivedBytes = 0; - expectedBytes = 0; - } - } - else { - for (j = 0; j < receivedBytes; ++j) { - $append_5(result, bytes[j] & $intern_46); - } - receivedBytes = 0; - result.string += String.fromCharCode(character); - } - } - else { - for (j = 0; j < receivedBytes; ++j) { - $append_5(result, bytes[j] & $intern_46); - } - receivedBytes = 0; - $append_5(result, (checkCriticalStringElementIndex(i, value_0.length) , value_0.charCodeAt(i))); - } - } - return result.string; - } -} - -function equals_193(o1, o2){ - return o1 == null?o2 == null:$equals_5(o1, o2); -} - -function equals_194(s1, s2){ - return s1 == null?s2 == null:$equalsIgnoreCase(s1, s2); -} - -function find_0(s, i, highBitmask, lowBitmask){ - var len; - len = s.length; - if (i >= len) - return len; - for (i = i > 0?i:0; i < len; i++) { - if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) - break; - } - return i; -} - -function firstInvalidSegment(value_0){ - var i, len; - if (value_0 == null) - return null; - for (i = 0 , len = value_0.length; i < len; i++) { - if (!validSegment(value_0[i])) - return value_0[i]; - } - return null; -} - -function highBitmask_0(chars){ - var c, i, len, result; - result = 0; - for (i = 0 , len = chars.length; i < len; i++) { - c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); - c >= 64 && c < 128 && (result = or_0(result, shl_0(1, c - 64))); - } - return result; -} - -function isArchiveScheme(value_0){ - return value_0 != null && $contains_2(archiveSchemes, value_0.toLowerCase()); -} - -function lowBitmask_0(from, to){ - var c, result; - result = 0; - if (from < 64 && from <= to) { - to = to < 64?to:63; - for (c = from; c <= to; c++) { - result = or_0(result, shl_0(1, c)); - } - } - return result; -} - -function lowBitmask_1(chars){ - var c, i, len, result; - result = 0; - for (i = 0 , len = chars.length; i < len; i++) { - c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); - c < 64 && (result = or_0(result, shl_0(1, c))); - } - return result; -} - -function matches(c, highBitmask, lowBitmask){ - if (c >= 128) - return false; - return c < 64?neq(and_0(shl_0(1, c), lowBitmask), 0):neq(and_0(shl_0(1, c - 64), highBitmask), 0); -} - -function parseIntoURI(uri_0){ - var absolutePath, archiveScheme, authority, device, fragment, hierarchical, i, j, query, s, scheme, segmentList, segments; - hierarchical = true; - scheme = null; - authority = null; - device = null; - absolutePath = false; - segments = NO_SEGMENTS; - query = null; - fragment = null; - i = 0; - j = find_0(uri_0, i, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO); - if (j < uri_0.length && (checkCriticalStringElementIndex(j, uri_0.length) , uri_0.charCodeAt(j) == 58)) { - scheme = uri_0.substr(i, j - i); - i = j + 1; - } - archiveScheme = scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()); - if (archiveScheme) { - j = uri_0.lastIndexOf('!/'); - if (j == -1) { - throw toJs(new IllegalArgumentException_0('no archive separator')); - } - hierarchical = true; - authority = $substring_1(uri_0, i, ++j); - i = j; - } - else if (i >= 0 && $equals_5(uri_0.substr(i, '//'.length), '//')) { - i += 2; - j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); - authority = uri_0.substr(i, j - i); - i = j; - } - else if (scheme != null && (i == uri_0.length || (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 47))) { - hierarchical = false; - j = $indexOf_2(uri_0, fromCodePoint(35), i); - j == -1 && (j = uri_0.length); - authority = uri_0.substr(i, j - i); - i = j; - } - if (!archiveScheme && i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { - j = find_0(uri_0, i + 1, SEGMENT_END_HI, SEGMENT_END_LO); - s = uri_0.substr(i + 1, j - (i + 1)); - if (s.length > 0 && $charAt(s, s.length - 1) == 58) { - device = s; - i = j; - } - } - if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { - ++i; - absolutePath = true; - } - if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { - segmentList = new ArrayList; - while (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { - j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); - $add_3(segmentList, uri_0.substr(i, j - i)); - i = j; - i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47) && (segmentsRemain(uri_0, ++i) || (segmentList.array[segmentList.array.length] = '' , true)); - } - segments = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, segmentList.array.length, 6, 1); - $toArray_2(segmentList, segments); - } - if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 63)) { - j = $indexOf_0(uri_0, 35, ++i); - j == -1 && (j = uri_0.length); - query = uri_0.substr(i, j - i); - i = j; - } - i < uri_0.length && (fragment = $substring_0(uri_0, ++i)); - validateURI(hierarchical, scheme, authority, device, segments, query); - return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); -} - -function segmentsRemain(uri_0, i){ - return i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35); -} - -function unescape_0(highHexDigit, lowHexDigit){ - return (valueOf_112(highHexDigit) << 4 | valueOf_112(lowHexDigit)) & $intern_46; -} - -function validArchiveAuthority(value_0){ - var archiveURI; - if (value_0 != null && value_0.length > 0 && $charAt(value_0, value_0.length - 1) == 33) { - try { - archiveURI = createURIWithCache($substring_1(value_0, 0, value_0.length - 1)); - return archiveURI.fragment == null; - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 32)) - throw toJs($e0); - } - } - return false; -} - -function validDevice(value_0){ - var len; - if (value_0 == null) - return true; - len = value_0.length; - return len > 0 && (checkCriticalStringElementIndex(len - 1, value_0.length) , value_0.charCodeAt(len - 1) == 58) && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); -} - -function validSegment(value_0){ - return value_0 != null && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); -} - -function validSegments(value_0){ - var i, len; - if (value_0 == null) - return false; - for (i = 0 , len = value_0.length; i < len; i++) { - if (!validSegment(value_0[i])) - return false; - } - return true; -} - -function validateURI(hierarchical, scheme, authority, device, segments, query){ - var s; - if (!(scheme == null || !contains_62(scheme, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO))) { - throw toJs(new IllegalArgumentException_0('invalid scheme: ' + scheme)); - } - if (!hierarchical && !(authority != null && $indexOf_1(authority, fromCodePoint(35)) == -1 && authority.length > 0 && (checkCriticalStringElementIndex(0, authority.length) , authority.charCodeAt(0) != 47))) { - throw toJs(new IllegalArgumentException_0('invalid opaquePart: ' + authority)); - } - if (hierarchical && !(scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase())) && !(authority == null || !contains_62(authority, SEGMENT_END_HI, SEGMENT_END_LO))) { - throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); - } - if (hierarchical && scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()) && !validArchiveAuthority(authority)) { - throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); - } - if (!validDevice(device)) { - throw toJs(new IllegalArgumentException_0('invalid device: ' + device)); - } - if (!validSegments(segments)) { - s = segments == null?'invalid segments: null':'invalid segment: ' + firstInvalidSegment(segments); - throw toJs(new IllegalArgumentException_0(s)); - } - if (!(query == null || $indexOf_1(query, fromCodePoint(35)) == -1)) { - throw toJs(new IllegalArgumentException_0('invalid query: ' + query)); - } -} - -function valueOf_112(hexDigit){ - if (hexDigit >= 65 && hexDigit <= 70) { - return hexDigit - 65 + 10; - } - if (hexDigit >= 97 && hexDigit <= 102) { - return hexDigit - 97 + 10; - } - if (hexDigit >= 48 && hexDigit <= 57) { - return hexDigit - 48; - } - return 0; -} - -defineClass(281, 1, {281:1}, URI); -_.equals_0 = function equals_192(object){ - var uri_0; - if (this === object) - return true; - if (!instanceOf(object, 281)) - return false; - uri_0 = castTo(object, 281); - return this.hashCode_0 == uri_0.hashCode_0 && equals_194(this.scheme, uri_0.scheme) && equals_193(this.authority, (this.hashCode_0 & 256) != 0?(uri_0.hashCode_0 & 256) != 0?uri_0.authority:null:(uri_0.hashCode_0 & 256) != 0?null:uri_0.authority) && equals_193(this.device, uri_0.device) && equals_193(this.query, uri_0.query) && equals_193(this.fragment, uri_0.fragment) && $segmentsEqual(this, uri_0); -} -; -_.hashCode_1 = function hashCode_80(){ - return this.hashCode_0; -} -; -_.toString_0 = function toString_142(){ - return $toString_26(this); -} -; -_.hashCode_0 = 0; -var ALPHANUM_HI = 0, ALPHANUM_LO = 0, ALPHA_HI = 0, ALPHA_LO = 0, DIGIT_LO = 0, HEX_HI = 0, HEX_LO = 0, MAJOR_SEPARATOR_HI = 0, MAJOR_SEPARATOR_LO = 0, NO_SEGMENTS, SEGMENT_END_HI = 0, SEGMENT_END_LO = 0, UNRESERVED_HI = 0, UNRESERVED_LO = 0, archiveSchemes, uriCache; -var Lorg_eclipse_emf_common_util_URI_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI', 281); -function $get_22(this$static, key){ - return castTo(key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key), 281); -} - -function $put_14(this$static, key, value_0){ - return castTo(key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0), 281); -} - -function URI$URICache(){ - HashMap.call(this); -} - -defineClass(1091, 43, $intern_76, URI$URICache); -_.put = function put_11(key, value_0){ - return castTo($putStringValue(this, castToString(key), castTo(value_0, 281)), 281); -} -; -var Lorg_eclipse_emf_common_util_URI$URICache_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI/URICache', 1091); -function UniqueEList(){ -} - -function UniqueEList_0(collection){ - BasicEList_0.call(this, collection.size_1()); - $addAll_9(this, collection); -} - -defineClass(497, 63, $intern_138, UniqueEList, UniqueEList_0); -_.isUnique = function isUnique_1(){ - return true; -} -; -var Lorg_eclipse_emf_common_util_UniqueEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'UniqueEList', 497); -function WrappedException(exception){ - $$init_0(this); - this.detailMessage = !exception?null:$toString_4(exception, exception.getMessage()); - this.cause_0 = exception; - $fillInStackTrace(this); - this.initializeBackingError(); -} - -defineClass(581, 60, $intern_43, WrappedException); -var Lorg_eclipse_emf_common_util_WrappedException_2_classLit = createForClass('org.eclipse.emf.common.util', 'WrappedException', 581); -var Lorg_eclipse_emf_ecore_EAnnotation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAnnotation'); -var Lorg_eclipse_emf_ecore_ETypedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypedElement'); -var Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EStructuralFeature'); -var Lorg_eclipse_emf_ecore_EAttribute_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAttribute'); -var Lorg_eclipse_emf_ecore_EClassifier_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClassifier'); -var Lorg_eclipse_emf_ecore_EClass_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClass'); -var Lorg_eclipse_emf_ecore_EDataType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EDataType'); -function $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry(){ - $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry = emptyMethod; - INSTANCE_5 = new EDataType$Internal$ConversionDelegate$Factory$Registry$Impl; -} - -var INSTANCE_5; -function $getFactory(this$static, uri_0){ - var factory; - return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); -} - -function EDataType$Internal$ConversionDelegate$Factory$Registry$Impl(){ - HashMap.call(this); -} - -defineClass(1183, 43, $intern_76, EDataType$Internal$ConversionDelegate$Factory$Registry$Impl); -_.get_3 = function get_57(key){ - return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); -} -; -var Lorg_eclipse_emf_ecore_EDataType$Internal$ConversionDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl', 1183); -var Lorg_eclipse_emf_ecore_EEnum_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnum'); -var Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnumLiteral'); -var Lorg_eclipse_emf_ecore_EGenericType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EGenericType'); -var Lorg_eclipse_emf_ecore_EOperation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EOperation'); -function $clinit_EPackage$Registry(){ - $clinit_EPackage$Registry = emptyMethod; - INSTANCE_6 = new EPackageRegistryImpl; -} - -var INSTANCE_6; -var Lorg_eclipse_emf_ecore_EParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EParameter'); -var Lorg_eclipse_emf_ecore_EReference_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EReference'); -function EStructuralFeature$Internal$DynamicValueHolder$1(){ -} - -defineClass(1029, 1, {}, EStructuralFeature$Internal$DynamicValueHolder$1); -_.toString_0 = function toString_143(){ - return 'NIL'; -} -; -var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$DynamicValueHolder$1_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/DynamicValueHolder/1', 1029); -function $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry(){ - $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry = emptyMethod; - INSTANCE_7 = new EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl; -} - -var INSTANCE_7; -function $getFactory_0(this$static, uri_0){ - var factory; - return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); -} - -function EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl(){ - HashMap.call(this); -} - -defineClass(1028, 43, $intern_76, EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl); -_.get_3 = function get_58(key){ - return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); -} -; -var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl', 1028); -var Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypeParameter'); -var Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EValidator/PatternMatcher'); -function $clinit_EValidator$Registry(){ - $clinit_EValidator$Registry = emptyMethod; - INSTANCE_8 = new EValidatorRegistryImpl; -} - -var INSTANCE_8; -function $clinit_EcoreFactory(){ - $clinit_EcoreFactory = emptyMethod; - eINSTANCE_1 = init_3(); -} - -var eINSTANCE_1; -function $clinit_EcorePackage(){ - $clinit_EcorePackage = emptyMethod; - eINSTANCE_2 = init_4(); - !!($clinit_EcorePackage$Literals() , EATTRIBUTE) && internalBootstrap(); -} - -var eINSTANCE_2; -function $clinit_EcorePackage$Literals(){ - $clinit_EcorePackage$Literals = emptyMethod; - EATTRIBUTE = ($clinit_EcorePackage() , eINSTANCE_2).eAttributeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 1), 18); - EANNOTATION = eINSTANCE_2.eAnnotationEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 4), 18); - ECLASS = eINSTANCE_2.eClassEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 1), 34); - ECLASS__ESUPER_TYPES = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 6), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 7), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 8), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 9), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 10), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 11), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 12), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 13), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 14), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 15), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 2), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 3), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 4), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 5), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 6), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 7), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 8), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 9), 59); - ECLASSIFIER = eINSTANCE_2.eClassifierEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 5), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 1), 59); - EDATA_TYPE = eINSTANCE_2.eDataTypeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eDataTypeEClass), 0), 34); - EENUM = eINSTANCE_2.eEnumEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumEClass), 0), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 2), 59); - EENUM_LITERAL = eINSTANCE_2.eEnumLiteralEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 3), 18); - EFACTORY = eINSTANCE_2.eFactoryEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eFactoryEClass), 0), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 2), 59); - EMODEL_ELEMENT = eINSTANCE_2.eModelElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eModelElementEClass), 0), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eModelElementEClass), 0), 59); - ENAMED_ELEMENT = eINSTANCE_2.eNamedElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eNamedElementEClass), 0), 34); - EOBJECT = eINSTANCE_2.eObjectEClass; - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 2), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 3), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 4), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 5), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 6), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 7), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 8), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 9), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 10), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 11), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 12), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 13), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 14), 59); - EOPERATION = eINSTANCE_2.eOperationEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 2), 18); - EOPERATION__EEXCEPTIONS = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 4), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 1), 59); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 1), 18); - EPACKAGE = eINSTANCE_2.ePackageEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 5), 18); - castTo($get_20($getEOperations(eINSTANCE_2.ePackageEClass), 0), 59); - EPARAMETER = eINSTANCE_2.eParameterEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eParameterEClass), 0), 18); - EREFERENCE = eINSTANCE_2.eReferenceEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 5), 18); - ESTRUCTURAL_FEATURE = eINSTANCE_2.eStructuralFeatureEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 4), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 5), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 6), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 7), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 1), 59); - ETYPED_ELEMENT = eINSTANCE_2.eTypedElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 4), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 5), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 6), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 7), 18); - ESTRING_TO_STRING_MAP_ENTRY = eINSTANCE_2.eStringToStringMapEntryEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 1), 34); - EGENERIC_TYPE = eINSTANCE_2.eGenericTypeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 5), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eGenericTypeEClass), 0), 59); - ETYPE_PARAMETER = eINSTANCE_2.eTypeParameterEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypeParameterEClass), 0), 18); - EJAVA_OBJECT = eINSTANCE_2.eJavaObjectEDataType; -} - -var EANNOTATION, EATTRIBUTE, ECLASS, ECLASSIFIER, ECLASS__ESUPER_TYPES, EDATA_TYPE, EENUM, EENUM_LITERAL, EFACTORY, EGENERIC_TYPE, EJAVA_OBJECT, EMODEL_ELEMENT, ENAMED_ELEMENT, EOBJECT, EOPERATION, EOPERATION__EEXCEPTIONS, EPACKAGE, EPARAMETER, EREFERENCE, ESTRING_TO_STRING_MAP_ENTRY, ESTRUCTURAL_FEATURE, ETYPED_ELEMENT, ETYPE_PARAMETER; -var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry'); -function BasicEObjectImpl$1(val$eAttribute, val$value){ - this.val$eAttribute1 = val$eAttribute; - this.val$value2 = val$value; -} - -defineClass(535, 1, {72:1}, BasicEObjectImpl$1); -_.getEStructuralFeature = function getEStructuralFeature(){ - return this.val$eAttribute1; -} -; -_.getValue = function getValue_12(){ - return this.val$value2; -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/1', 535); -function BasicEObjectImpl$4(this$0, val$eFeature){ - this.this$01 = this$0; - this.val$eFeature2 = val$eFeature; -} - -defineClass(1027, 1, $intern_147, BasicEObjectImpl$4); -_.get_6 = function get_59(resolve){ - return $eGet_1(this.this$01, this.val$eFeature2, resolve); -} -; -_.isSet_0 = function isSet_1(){ - return $eIsSet_0(this.this$01, this.val$eFeature2); -} -; -_.set_1 = function set_29(newValue){ - $eSet_0(this.this$01, this.val$eFeature2, newValue); -} -; -_.unset = function unset(){ - $eUnset_0(this.this$01, this.val$eFeature2); -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/4', 1027); -function $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(){ - $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl = emptyMethod; - NO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -defineClass(1983, 1, {108:1}); -_.allocateSettings = function allocateSettings(dynamicFeatureCount){ - this.eSettings = dynamicFeatureCount == 0?NO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, dynamicFeatureCount, 5, 1); -} -; -_.dynamicGet = function dynamicGet_0(dynamicFeatureID){ - return this.eSettings[dynamicFeatureID]; -} -; -_.dynamicSet = function dynamicSet_0(dynamicFeatureID, value_0){ - this.eSettings[dynamicFeatureID] = value_0; -} -; -_.dynamicUnset = function dynamicUnset_0(dynamicFeatureID){ - this.eSettings[dynamicFeatureID] = null; -} -; -_.getEClass = function getEClass(){ - return this.eClass; -} -; -_.getEContents = function getEContents(){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEProxyURI = function getEProxyURI(){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEResource = function getEResource(){ - return this.eResource; -} -; -_.hasSettings = function hasSettings(){ - return this.eSettings != null; -} -; -_.setEClass = function setEClass(eClass){ - this.eClass = eClass; -} -; -_.setEContents = function setEContents(eContents){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEProxyURI = function setEProxyURI(eProxyURI){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEResource = function setEResource(eResource){ - this.eResource = eResource; -} -; -var NO_SETTINGS; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderBaseImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderBaseImpl', 1983); -function BasicEObjectImpl$EPropertiesHolderImpl(){ - $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(); -} - -defineClass(185, 1983, {108:1}, BasicEObjectImpl$EPropertiesHolderImpl); -_.getEContents = function getEContents_0(){ - return this.eContents; -} -; -_.getEProxyURI = function getEProxyURI_0(){ - return this.eProxyURI; -} -; -_.setEContents = function setEContents_0(eContents){ - this.eContents = eContents; -} -; -_.setEProxyURI = function setEProxyURI_0(eProxyURI){ - this.eProxyURI = eProxyURI; -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderImpl', 185); -function EObjectImpl(){ -} - -defineClass(506, 97, $intern_135, EObjectImpl); -_.eBasicAdapters = function eBasicAdapters_2(){ - return this.eAdapters; -} -; -_.eBasicProperties = function eBasicProperties_1(){ - return this.eProperties; -} -; -_.eBasicSetContainer = function eBasicSetContainer_4(newContainer, newContainerFeatureID){ - this.eContainer = newContainer; - this.eContainerFeatureID = newContainerFeatureID; -} -; -_.eClass_0 = function eClass_2(){ - return (this.eFlags & 2) == 0?this.eStaticClass():this.eProperties_0().getEClass(); -} -; -_.eContainerFeatureID_0 = function eContainerFeatureID_2(){ - return this.eContainerFeatureID; -} -; -_.eDeliver = function eDeliver_2(){ - return (this.eFlags & 1) != 0; -} -; -_.eInternalContainer = function eInternalContainer_3(){ - return this.eContainer; -} -; -_.eIsProxy = function eIsProxy_1(){ - return (this.eFlags & 4) != 0; -} -; -_.eProperties_0 = function eProperties_2(){ - return !this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties; -} -; -_.eSetClass = function eSetClass_1(eClass){ - this.eProperties_0().setEClass(eClass); - eClass?(this.eFlags |= 2):(this.eFlags &= -3); -} -; -_.eSetProxyURI = function eSetProxyURI_2(uri_0){ - this.eProperties_0().setEProxyURI(uri_0); - uri_0?(this.eFlags |= 4):(this.eFlags &= -5); -} -; -_.eStaticClass = function eStaticClass_15(){ - return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; -} -; -_.eContainerFeatureID = 0; -_.eFlags = 1; -var Lorg_eclipse_emf_ecore_impl_EObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EObjectImpl', 506); -function $clinit_DynamicEObjectImpl(){ - $clinit_DynamicEObjectImpl = emptyMethod; - ENO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function DynamicEObjectImpl(eClass){ - $clinit_DynamicEObjectImpl(); - EObjectImpl.call(this); - this.eSetClass(eClass); -} - -defineClass(780, 506, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl); -_.dynamicGet = function dynamicGet_1(dynamicFeatureID){ - return this.eSettings[dynamicFeatureID]; -} -; -_.dynamicSet = function dynamicSet_1(dynamicFeatureID, value_0){ - this.eSettings[dynamicFeatureID] = value_0; -} -; -_.dynamicUnset = function dynamicUnset_1(dynamicFeatureID){ - this.eSettings[dynamicFeatureID] = null; -} -; -_.eClass_0 = function eClass_3(){ - return this.eClass; -} -; -_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_1(eStructuralFeature){ - return $getFeatureID(this.eClass, eStructuralFeature); -} -; -_.eDynamicClass = function eDynamicClass_1(){ - return this.eClass; -} -; -_.eHasSettings = function eHasSettings_1(){ - return this.eSettings != null; -} -; -_.eProperties_0 = function eProperties_3(){ - !this.eProperties && (this.eProperties = new DynamicEObjectImpl$DynamicEPropertiesHolderImpl); - return this.eProperties; -} -; -_.eSetClass = function eSetClass_2(eClass){ - this.eClass = eClass; -} -; -_.eSettings_0 = function eSettings_1(){ - var size_0; - if (this.eSettings == null) { - size_0 = $getFeatureCount(this.eClass); - this.eSettings = size_0 == 0?ENO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); - } - return this; -} -; -_.eStaticFeatureCount = function eStaticFeatureCount_0(){ - return 0; -} -; -var ENO_SETTINGS; -var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl', 780); -function DynamicEObjectImpl$BasicEMapEntry(eClass){ - $clinit_DynamicEObjectImpl(); - DynamicEObjectImpl.call(this, eClass); - this.hash = -1; -} - -defineClass(1376, 780, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl$BasicEMapEntry); -_.equals_0 = function equals_195(other){ - return this === other; -} -; -_.hashCode_1 = function hashCode_81(){ - return getHashCode_0(this); -} -; -_.eSetClass = function eSetClass_3(eClass){ - this.eClass = eClass; - this.keyFeature = $getEStructuralFeature_0(eClass, 'key'); - this.valueFeature = $getEStructuralFeature_0(eClass, 'value'); -} -; -_.getHash = function getHash_1(){ - var theKey; - if (this.hash == -1) { - theKey = $eGet_2(this, this.keyFeature); - this.hash = theKey == null?0:hashCode__I__devirtual$(theKey); - } - return this.hash; -} -; -_.getKey = function getKey_10(){ - return $eGet_2(this, this.keyFeature); -} -; -_.getValue = function getValue_13(){ - return $eGet_2(this, this.valueFeature); -} -; -_.setHash = function setHash_1(hash){ - this.hash = hash; -} -; -_.setKey = function setKey_1(key){ - $eSet_0(this, this.keyFeature, key); -} -; -_.setValue = function setValue_13(value_0){ - var result; - result = $eGet_2(this, this.valueFeature); - $eSet_0(this, this.valueFeature, value_0); - return result; -} -; -_.hash = 0; -var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$BasicEMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/BasicEMapEntry', 1376); -function DynamicEObjectImpl$DynamicEPropertiesHolderImpl(){ -} - -defineClass(1377, 1, {108:1}, DynamicEObjectImpl$DynamicEPropertiesHolderImpl); -_.allocateSettings = function allocateSettings_0(maximumDynamicFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicGet = function dynamicGet_2(dynamicFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicSet = function dynamicSet_2(dynamicFeatureID, value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicUnset = function dynamicUnset_2(dynamicFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEClass = function getEClass_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEContents = function getEContents_1(){ - return this.eContents; -} -; -_.getEProxyURI = function getEProxyURI_1(){ - return this.eProxyURI; -} -; -_.getEResource = function getEResource_0(){ - return this.eResource; -} -; -_.hasSettings = function hasSettings_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEClass = function setEClass_0(eClass){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEContents = function setEContents_1(eContents){ - this.eContents = eContents; -} -; -_.setEProxyURI = function setEProxyURI_1(eProxyURI){ - this.eProxyURI = eProxyURI; -} -; -_.setEResource = function setEResource_0(eResource){ - this.eResource = eResource; -} -; -var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$DynamicEPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/DynamicEPropertiesHolderImpl', 1377); -function $basicSetEModelElement(this$static, newEModelElement, msgs){ - msgs = $eBasicSetContainer(this$static, castTo(newEModelElement, 49), 3, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_5(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 3) { - return this$static.eContainer.eInverseRemove(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getContents(this$static){ - !this$static.contents && (this$static.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this$static, 4)); - return this$static.contents; -} - -function $getEModelElement(this$static){ - if (this$static.eFlags_0 >> 16 != 3) - return null; - return castTo(this$static.eContainer, 147); -} - -function $setEModelElement(this$static, newEModelElement){ - var eContainerFeatureID, msgs; - if (newEModelElement != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newEModelElement) { - if (isAncestor(this$static, newEModelElement)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_27(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newEModelElement && (msgs = castTo(newEModelElement, 49).eInverseAdd(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs)); - msgs = $basicSetEModelElement(this$static, newEModelElement, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newEModelElement, newEModelElement)); -} - -function $setSource_2(this$static, newSource){ - $setSourceGen(this$static, newSource == null?null:(checkCriticalNotNull(newSource) , newSource)); -} - -function $setSourceGen(this$static, newSource){ - var oldSource; - oldSource = this$static.source; - this$static.source = newSource; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldSource, this$static.source)); -} - -function $toString_27(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (source: '; - $append_3(result, this$static.source); - result.string += ')'; - return result.string; -} - -function EAnnotationImpl(){ -} - -defineClass(510, 150, {105:1, 92:1, 90:1, 590:1, 147:1, 56:1, 108:1, 49:1, 97:1, 510:1, 150:1, 114:1, 115:1}, EAnnotationImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_6(msgs){ - return $eBasicRemoveFromContainerFeature_5(this, msgs); -} -; -_.eGet = function eGet_17(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.source; - case 2: - return coreType?(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , this.details):(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $map_1(this.details)); - case 3: - return $getEModelElement(this); - case 4: - return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , this.contents; - case 5: - return !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)) , this.references; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_11(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 3: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetEModelElement(this, castTo(otherEnd, 147), msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_12(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 2: - return !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $basicRemove_1(this.details, otherEnd, msgs); - case 3: - return $basicSetEModelElement(this, null, msgs); - case 4: - return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , $basicRemove_0(this.contents, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_16(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.source != null; - case 2: - return !!this.details && this.details.size_0 != 0; - case 3: - return !!$getEModelElement(this); - case 4: - return !!this.contents && this.contents.size_0 != 0; - case 5: - return !!this.references && this.references.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); -} -; -_.eSet = function eSet_15(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setSource_2(this, castToString(newValue)); - return; - case 2: - !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); - $set_14(this.details, newValue); - return; - case 3: - $setEModelElement(this, castTo(newValue, 147)); - return; - case 4: - !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); - $clear_13(this.contents); - !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); - $addAll_9(this.contents, castTo(newValue, 14)); - return; - case 5: - !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); - $clear_13(this.references); - !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); - $addAll_9(this.references, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_16(){ - return $clinit_EcorePackage$Literals() , EANNOTATION; -} -; -_.eUnset = function eUnset_15(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setSourceGen(this, null); - return; - case 2: - !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); - this.details.delegateEList.clear_0(); - return; - case 3: - $setEModelElement(this, null); - return; - case 4: - !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); - $clear_13(this.contents); - return; - case 5: - !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); - $clear_13(this.references); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); -} -; -_.toString_0 = function toString_144(){ - return $toString_27(this); -} -; -_.source = null; -var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl', 510); -function $addUnique_7(this$static, index_0, object){ - castTo(this$static.delegateEList, 69).addUnique(index_0, object); -} - -function $basicAdd_1(this$static, object, notifications){ - return castTo(this$static.delegateEList, 69).basicAdd(object, notifications); -} - -function $basicRemove_1(this$static, object, notifications){ - return castTo(this$static.delegateEList, 69).basicRemove(object, notifications); -} - -function $set_14(this$static, value_0){ - var mapValue; - if (instanceOf(value_0, 83)) { - castTo(this$static.delegateEList, 76).unset(); - mapValue = castTo(value_0, 83); - $putAll_0(this$static, mapValue); - } - else { - castTo(this$static.delegateEList, 76).set_1(value_0); - } -} - -function EcoreEMap(entryEClass, entryClass, owner, featureID){ - this.initializeDelegateEList(); - this.entryClass = entryClass; - this.entryEClass = entryEClass; - this.delegateEList = new EcoreEMap$DelegateEObjectContainmentEList(this, entryClass, owner, featureID); -} - -defineClass(151, 705, $intern_148, EcoreEMap); -_.addUnique = function addUnique_9(index_0, object){ - $addUnique_7(this, index_0, castTo(object, 42)); -} -; -_.basicAdd = function basicAdd(object, notifications){ - return $basicAdd_1(this, castTo(object, 42), notifications); -} -; -_.basicGet = function basicGet_0(index_0){ - return castTo(castTo(this.delegateEList, 69).basicGet(index_0), 133); -} -; -_.basicIterator = function basicIterator_1(){ - return castTo(this.delegateEList, 69).basicIterator(); -} -; -_.basicListIterator = function basicListIterator_3(){ - return castTo(this.delegateEList, 69).basicListIterator(); -} -; -_.basicListIterator_0 = function basicListIterator_4(index_0){ - return castTo(this.delegateEList, 69).basicListIterator_0(index_0); -} -; -_.basicRemove = function basicRemove(object, notifications){ - return $basicRemove_1(this, object, notifications); -} -; -_.get_6 = function get_60(resolve){ - return castTo(this.delegateEList, 76).get_6(resolve); -} -; -_.initializeDelegateEList = function initializeDelegateEList_0(){ -} -; -_.isSet_0 = function isSet_2(){ - return castTo(this.delegateEList, 76).isSet_0(); -} -; -_.newEntry = function newEntry_1(hash, key, value_0){ - var entry; - entry = castTo($getEPackage(this.entryEClass).getEFactoryInstance().create_3(this.entryEClass), 133); - entry.setHash(hash); - entry.setKey(key); - entry.setValue(value_0); - return entry; -} -; -_.newList = function newList_0(){ - return new EcoreEMap$1(this); -} -; -_.set_1 = function set_30(value_0){ - $set_14(this, value_0); -} -; -_.unset = function unset_0(){ - castTo(this.delegateEList, 76).unset(); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap', 151); -function EAnnotationImpl$1($anonymous0, $anonymous1, $anonymous2){ - EcoreEMap.call(this, $anonymous0, $anonymous1, $anonymous2, 2); -} - -defineClass(158, 151, $intern_148, EAnnotationImpl$1); -_.ensureEntryDataExists = function ensureEntryDataExists_0(){ - var eList, entry, entry$iterator, hash, index_0, result; - if (this.entryData == null) { - result = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); - for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { - entry = castTo(entry$iterator.doNext(), 133); - hash = entry.getHash(); - index_0 = (hash & $intern_0) % result.length; - eList = result[index_0]; - !eList && (eList = result[index_0] = new EcoreEMap$1(this)); - eList.add_2(entry); - } - this.entryData = result; - } -} -; -var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl/1', 158); -function $basicSetEGenericType(this$static, newEGenericType, msgs){ - var newEType, notification, oldEGenericType; - oldEGenericType = this$static.eGenericType; - this$static.eGenericType = newEGenericType; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 9, oldEGenericType, newEGenericType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - if (!newEGenericType) { - !!this$static.eType && (msgs = this$static.setEType(null, msgs)); - } - else { - newEType = newEGenericType.eRawType; - newEType != this$static.eType && (msgs = this$static.setEType(newEType, msgs)); - } - return msgs; -} - -function $basicUnsetEGenericType(this$static, msgs){ - msgs = this$static.setEType(null, msgs); - return $basicSetEGenericType(this$static, null, msgs); -} - -function $getEType(this$static){ - var oldEType; - if ((this$static.eFlags & 1) == 0 && !!this$static.eType && this$static.eType.eIsProxy()) { - oldEType = castTo(this$static.eType, 49); - this$static.eType = castTo($eResolveProxy(this$static, oldEType), 138); - this$static.eType != oldEType && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldEType, this$static.eType)); - } - return this$static.eType; -} - -function $setEGenericType(this$static, newEGenericType, msgs){ - var notification; - if (newEGenericType != this$static.eGenericType) { - !!this$static.eGenericType && (msgs = $eInverseRemove(this$static.eGenericType, this$static, -10, msgs)); - !!newEGenericType && (msgs = $eInverseAdd(newEGenericType, this$static, -10, msgs)); - msgs = $basicSetEGenericType(this$static, newEGenericType, msgs); - } - else if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 9, newEGenericType, newEGenericType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $setEType(this$static, newEType){ - var eGenericType, msgs, newEGenericType; - msgs = this$static.setEType(newEType, null); - newEGenericType = null; - if (newEType) { - newEGenericType = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(newEGenericType, this$static.eType); - } - msgs = $setEGenericType(this$static, newEGenericType, msgs); - !!msgs && msgs.dispatch_0(); -} - -function $setEType_0(this$static, newEType, msgs){ - var notification, oldEType; - oldEType = this$static.eType; - this$static.eType = newEType; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 8, oldEType, this$static.eType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $setLowerBound(this$static, newLowerBound){ - var oldLowerBound; - oldLowerBound = this$static.lowerBound; - this$static.lowerBound = newLowerBound; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 4, oldLowerBound, this$static.lowerBound)); -} - -function $setOrdered(this$static, newOrdered){ - var oldOrdered; - oldOrdered = (this$static.eFlags & 256) != 0; - newOrdered?(this$static.eFlags |= 256):(this$static.eFlags &= -257); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 2, oldOrdered, newOrdered)); -} - -function $setUnique_2(this$static, newUnique){ - var oldUnique; - oldUnique = (this$static.eFlags & 512) != 0; - newUnique?(this$static.eFlags |= 512):(this$static.eFlags &= -513); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 3, oldUnique, newUnique)); -} - -function $setUpperBound(this$static, newUpperBound){ - var oldUpperBound; - oldUpperBound = this$static.upperBound; - this$static.upperBound = newUpperBound; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 5, oldUpperBound, this$static.upperBound)); -} - -function $toString_28(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_21(this$static); - result = new StringBuffer_1($toString_21(this$static)); - result.string += ' (ordered: '; - $append_4(result, (this$static.eFlags & 256) != 0); - result.string += ', unique: '; - $append_4(result, (this$static.eFlags & 512) != 0); - result.string += ', lowerBound: '; - $append_1(result, this$static.lowerBound); - result.string += ', upperBound: '; - $append_1(result, this$static.upperBound); - result.string += ')'; - return result.string; -} - -function ETypedElementImpl(){ - this.eFlags |= 256; - this.eFlags |= 512; -} - -defineClass(284, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 472:1, 49:1, 97:1, 150:1, 284:1, 114:1, 115:1}); -_.eGet = function eGet_18(featureID, resolve, coreType){ - var eClass, lower; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , this.isMany()?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_13(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_17(featureID){ - var eClass, lower; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return this.isMany(); - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_16(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - this.setName(castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - this.setUpperBound(castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_17(){ - return $clinit_EcorePackage$Literals() , ETYPED_ELEMENT; -} -; -_.eUnset = function eUnset_16(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - this.setName(null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - this.setUpperBound(1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze_1(){ - $getEType(this); - this.eFlags |= 1; -} -; -_.getEType = function getEType(){ - return $getEType(this); -} -; -_.getUpperBound = function getUpperBound(){ - return this.upperBound; -} -; -_.isMany = function isMany(){ - var upper; - return upper = this.upperBound , upper > 1 || upper == -1; -} -; -_.isUnique = function isUnique_2(){ - return (this.eFlags & 512) != 0; -} -; -_.setEType = function setEType(newEType, msgs){ - return $setEType_0(this, newEType, msgs); -} -; -_.setUpperBound = function setUpperBound(newUpperBound){ - $setUpperBound(this, newUpperBound); -} -; -_.toString_0 = function toString_145(){ - return $toString_28(this); -} -; -_.lowerBound = 0; -_.upperBound = 1; -var Lorg_eclipse_emf_ecore_impl_ETypedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypedElementImpl', 284); -function $eBasicRemoveFromContainerFeature_6(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 17) { - return this$static.eContainer.eInverseRemove(this$static, 21, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getDefaultValue(this$static){ - var eDataType, ePackage, eType, factory, literal; - eType = $getEType(this$static); - literal = this$static.defaultValueLiteral; - if (literal == null && !!eType) { - return this$static.isMany()?null:eType.getDefaultValue(); - } - else if (instanceOf(eType, 148)) { - ePackage = eType.getEPackage(); - if (ePackage) { - factory = ePackage.getEFactoryInstance(); - if (factory != this$static.defaultValueFactory) { - eDataType = castTo(eType, 148); - if (eDataType.isSerializable()) { - try { - this$static.defaultValue = factory.createFromString(eDataType, literal); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 78)) { - this$static.defaultValue = null; - } - else - throw toJs($e0); - } - } - this$static.defaultValueFactory = factory; - } - } - return this$static.defaultValue; - } - return null; -} - -function $getEContainingClass(this$static){ - if (this$static.eFlags_0 >> 16 != 17) - return null; - return castTo(this$static.eContainer, 26); -} - -function $getFeatureMapEntryPrototype(this$static){ - var eOpposite; - if (!this$static.prototypeFeatureMapEntry) { - eOpposite = this$static.getEOpposite(); - eOpposite?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$static, this$static, null)):this$static.isContainment()?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this$static, null)):$getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this$static)) == 1?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleContentFeatureMapEntry(this$static)):(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleFeatureMapEntry(this$static, null)); - } - return this$static.prototypeFeatureMapEntry; -} - -function $isFeatureMap(this$static){ - var eType; - if (this$static.cachedEType != this$static.eType) { - eType = $getEType(this$static); - this$static.cachedIsFeatureMap = !!eType && eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry'; - this$static.cachedEType = eType; - } - return this$static.cachedIsFeatureMap; -} - -function $setChangeable(this$static, newChangeable){ - var oldChangeable; - oldChangeable = (this$static.eFlags & $intern_137) != 0; - newChangeable?(this$static.eFlags |= $intern_137):(this$static.eFlags &= -1025); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 10, oldChangeable, newChangeable)); -} - -function $setDefaultValueLiteral(this$static, newDefaultValueLiteral){ - this$static.defaultValueFactory = null; - $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral); -} - -function $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral){ - var oldDefaultValueLiteral; - oldDefaultValueLiteral = this$static.defaultValueLiteral; - this$static.defaultValueLiteral = newDefaultValueLiteral; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 13, oldDefaultValueLiteral, this$static.defaultValueLiteral)); -} - -function $setDerived(this$static, newDerived){ - var oldDerived; - oldDerived = (this$static.eFlags & $intern_17) != 0; - newDerived?(this$static.eFlags |= $intern_17):(this$static.eFlags &= -16385); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 16, oldDerived, newDerived)); -} - -function $setFeatureID(this$static, featureID){ - this$static.featureID = featureID; -} - -function $setName_0(this$static, newName){ - instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 4); - $setName(this$static, newName); -} - -function $setTransient(this$static, newTransient){ - var oldTransient; - oldTransient = (this$static.eFlags & $intern_61) != 0; - newTransient?(this$static.eFlags |= $intern_61):(this$static.eFlags &= -4097); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 12, oldTransient, newTransient)); -} - -function $setUnsettable(this$static, newUnsettable){ - var oldUnsettable; - oldUnsettable = (this$static.eFlags & $intern_149) != 0; - newUnsettable?(this$static.eFlags |= $intern_149):(this$static.eFlags &= -8193); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 15, oldUnsettable, newUnsettable)); -} - -function $setVolatile(this$static, newVolatile){ - var oldVolatile; - oldVolatile = (this$static.eFlags & $intern_150) != 0; - newVolatile?(this$static.eFlags |= $intern_150):(this$static.eFlags &= -2049); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 11, oldVolatile, newVolatile)); -} - -function $toString_29(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_28(this$static); - result = new StringBuffer_1($toString_28(this$static)); - result.string += ' (changeable: '; - $append_4(result, (this$static.eFlags & $intern_137) != 0); - result.string += ', volatile: '; - $append_4(result, (this$static.eFlags & $intern_150) != 0); - result.string += ', transient: '; - $append_4(result, (this$static.eFlags & $intern_61) != 0); - result.string += ', defaultValueLiteral: '; - $append_3(result, this$static.defaultValueLiteral); - result.string += ', unsettable: '; - $append_4(result, (this$static.eFlags & $intern_149) != 0); - result.string += ', derived: '; - $append_4(result, (this$static.eFlags & $intern_17) != 0); - result.string += ')'; - return result.string; -} - -function EStructuralFeatureImpl(){ - ETypedElementImpl.call(this); - this.featureID = -1; - this.defaultValue = null; - this.defaultValueFactory = null; - this.defaultValueLiteral = null; - this.eFlags |= $intern_137; -} - -defineClass(449, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_7(msgs){ - return $eBasicRemoveFromContainerFeature_6(this, msgs); -} -; -_.eGet = function eGet_19(featureID, resolve, coreType){ - var eClass, lower; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , this.isMany()?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; - case 11: - return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; - case 12: - return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; - case 13: - return this.defaultValueLiteral; - case 14: - return $getDefaultValue(this); - case 15: - return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; - case 16: - return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; - case 17: - return $getEContainingClass(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_12(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 17: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_6(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 17, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_14(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - case 17: - return $eBasicSetContainer(this, null, 17, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_18(featureID){ - var eClass, lower; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return this.isMany(); - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return (this.eFlags & $intern_137) == 0; - case 11: - return (this.eFlags & $intern_150) != 0; - case 12: - return (this.eFlags & $intern_61) != 0; - case 13: - return this.defaultValueLiteral != null; - case 14: - return $getDefaultValue(this) != null; - case 15: - return (this.eFlags & $intern_149) != 0; - case 16: - return (this.eFlags & $intern_17) != 0; - case 17: - return !!$getEContainingClass(this); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_17(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_0(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - this.setUpperBound(castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, $booleanValue(castToBoolean(newValue))); - return; - case 11: - $setVolatile(this, $booleanValue(castToBoolean(newValue))); - return; - case 12: - $setTransient(this, $booleanValue(castToBoolean(newValue))); - return; - case 13: - $setDefaultValueLiteral(this, castToString(newValue)); - return; - case 15: - $setUnsettable(this, $booleanValue(castToBoolean(newValue))); - return; - case 16: - $setDerived(this, $booleanValue(castToBoolean(newValue))); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_18(){ - return $clinit_EcorePackage$Literals() , ESTRUCTURAL_FEATURE; -} -; -_.eUnset = function eUnset_17(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - this.setUpperBound(1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, true); - return; - case 11: - $setVolatile(this, false); - return; - case 12: - $setTransient(this, false); - return; - case 13: - this.defaultValueFactory = null; - $setDefaultValueLiteralGen(this, null); - return; - case 15: - $setUnsettable(this, false); - return; - case 16: - $setDerived(this, false); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze_2(){ - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); - $getEType(this); - this.eFlags |= 1; -} -; -_.getContainerClass = function getContainerClass(){ - return this.containerClass; -} -; -_.getDefaultValue = function getDefaultValue(){ - return $getDefaultValue(this); -} -; -_.getEContainingClass = function getEContainingClass(){ - return $getEContainingClass(this); -} -; -_.getEOpposite = function getEOpposite(){ - return null; -} -; -_.getExtendedMetaData_0 = function getExtendedMetaData_0(){ - return this.eStructuralFeatureExtendedMetaData; -} -; -_.getFeatureID_0 = function getFeatureID_4(){ - return this.featureID; -} -; -_.getFeatureMapEntryPrototype = function getFeatureMapEntryPrototype(){ - return $getFeatureMapEntryPrototype(this); -} -; -_.getSettingDelegate = function getSettingDelegate(){ - var dataClass, defaultValue, eClass, eOpposite, eType, featureMapFeature, instanceClass, intrinsicDefaultValue, upper; - if (!this.settingDelegate) { - eClass = $getEContainingClass(this); - (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; - eOpposite = this.getEOpposite(); - !!eOpposite && $getFeatureCount($getEContainingClass(eOpposite)); - eType = $getEType(this); - instanceClass = eType.getInstanceClass(); - dataClass = !instanceClass?null:(instanceClass.modifiers & 1) != 0?instanceClass == Z_classLit?Ljava_lang_Boolean_2_classLit:instanceClass == I_classLit?Ljava_lang_Integer_2_classLit:instanceClass == F_classLit?Ljava_lang_Float_2_classLit:instanceClass == D_classLit?Ljava_lang_Double_2_classLit:instanceClass == J_classLit?Ljava_lang_Long_2_classLit:instanceClass == S_classLit?Ljava_lang_Short_2_classLit:instanceClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:instanceClass; - defaultValue = $getDefaultValue(this); - intrinsicDefaultValue = eType.getDefaultValue(); - getSettingDelegateFactory(this); - (this.eFlags & $intern_17) != 0 && (!!(featureMapFeature = $getMixedFeature(($clinit_ExtendedMetaData() , INSTANCE_11), eClass)) && featureMapFeature != this || !!(featureMapFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, this))))?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(this, featureMapFeature)):this.isMany()?this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(42, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(0, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(50, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(43, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(1, dataClass, this)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(44, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(2, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(41, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(45, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(3, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(46, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(4, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(47, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(5, dataClass, this, eOpposite)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(48, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(6, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(49, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(7, dataClass, this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & 512) != 0?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(8, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(9, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(10, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(11, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(12, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(13, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(14, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(15, dataClass, this)):!eOpposite?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(16, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(17, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(18, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(19, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(20, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(21, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(22, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(23, dataClass, this)):(upper = eOpposite.upperBound , upper > 1 || upper == -1?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(24, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(25, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(26, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(27, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(28, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(29, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(30, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(31, dataClass, this, eOpposite)):this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(32, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(33, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(34, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(35, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(36, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(37, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(38, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(39, dataClass, this, eOpposite))):this.isContainer()?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(castTo(eType, 26), this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(castTo(eType, 26), this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(castTo(eType, 26), this, eOpposite)):!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(castTo(eType, 26), this, eOpposite)); - } - return this.settingDelegate; -} -; -_.isChangeable = function isChangeable_0(){ - return (this.eFlags & $intern_137) != 0; -} -; -_.isContainer = function isContainer(){ - return false; -} -; -_.isContainment = function isContainment_0(){ - return false; -} -; -_.isDerived = function isDerived_0(){ - return (this.eFlags & $intern_17) != 0; -} -; -_.isFeatureMap_0 = function isFeatureMap_0(){ - return $isFeatureMap(this); -} -; -_.isResolveProxies_0 = function isResolveProxies_0(){ - return false; -} -; -_.isUnsettable = function isUnsettable_0(){ - return (this.eFlags & $intern_149) != 0; -} -; -_.setExtendedMetaData_0 = function setExtendedMetaData_0(eStructuralFeatureExtendedMetaData){ - this.eStructuralFeatureExtendedMetaData = eStructuralFeatureExtendedMetaData; -} -; -_.setName = function setName_0(newName){ - $setName_0(this, newName); -} -; -_.toString_0 = function toString_146(){ - return $toString_29(this); -} -; -_.cachedIsFeatureMap = false; -_.featureID = 0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl', 449); -function $basicGetEAttributeType(this$static){ - var eType; - if (!this$static.eAttributeType) { - eType = this$static.eType; - instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); - } - return this$static.eAttributeType; -} - -function $getEAttributeType(this$static){ - var eType; - if (!this$static.eAttributeType || (this$static.eFlags & 1) == 0 && this$static.eAttributeType.eIsProxy()) { - eType = $getEType(this$static); - instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); - } - return this$static.eAttributeType; -} - -function $isMany(this$static){ - var eType, upper; - switch (this$static.effectiveIsMany) { - case -1: - { - return true; - } - - case 0: - { - upper = this$static.upperBound; - if (upper > 1 || upper == -1) { - this$static.effectiveIsMany = -1; - return true; - } - else { - eType = $getEType(this$static); - if (!!eType && ($clinit_FeatureMapUtil() , eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry')) { - this$static.effectiveIsMany = -1; - return true; - } - else { - this$static.effectiveIsMany = 1; - return false; - } - } - } - - default:case 1: - { - return false; - } - - } -} - -function $setID(this$static, newID){ - var oldID; - oldID = (this$static.eFlags & $intern_134) != 0; - newID?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldID, newID)); -} - -function $setUpperBound_0(this$static, upperBound){ - this$static.effectiveIsMany = 0; - $setUpperBound(this$static, upperBound); -} - -function EAttributeImpl(){ - EStructuralFeatureImpl.call(this); -} - -defineClass(322, 449, {105:1, 92:1, 90:1, 34:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 322:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EAttributeImpl); -_.eGet = function eGet_20(featureID, resolve, coreType){ - var eClass, lower; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , $isMany(this)?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; - case 11: - return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; - case 12: - return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; - case 13: - return this.defaultValueLiteral; - case 14: - return $getDefaultValue(this); - case 15: - return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; - case 16: - return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; - case 17: - return $getEContainingClass(this); - case 18: - return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; - case 19: - if (resolve) - return $getEAttributeType(this); - return $basicGetEAttributeType(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_19(featureID){ - var eClass, lower; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return $isMany(this); - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return (this.eFlags & $intern_137) == 0; - case 11: - return (this.eFlags & $intern_150) != 0; - case 12: - return (this.eFlags & $intern_61) != 0; - case 13: - return this.defaultValueLiteral != null; - case 14: - return $getDefaultValue(this) != null; - case 15: - return (this.eFlags & $intern_149) != 0; - case 16: - return (this.eFlags & $intern_17) != 0; - case 17: - return !!$getEContainingClass(this); - case 18: - return (this.eFlags & $intern_134) != 0; - case 19: - return !!$basicGetEAttributeType(this); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); -} -; -_.eSet = function eSet_18(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_0(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - $setUpperBound_0(this, castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, $booleanValue(castToBoolean(newValue))); - return; - case 11: - $setVolatile(this, $booleanValue(castToBoolean(newValue))); - return; - case 12: - $setTransient(this, $booleanValue(castToBoolean(newValue))); - return; - case 13: - $setDefaultValueLiteral(this, castToString(newValue)); - return; - case 15: - $setUnsettable(this, $booleanValue(castToBoolean(newValue))); - return; - case 16: - $setDerived(this, $booleanValue(castToBoolean(newValue))); - return; - case 18: - $setID(this, $booleanValue(castToBoolean(newValue))); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_19(){ - return $clinit_EcorePackage$Literals() , EATTRIBUTE; -} -; -_.eUnset = function eUnset_18(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - this.effectiveIsMany = 0; - $setUpperBound(this, 1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, true); - return; - case 11: - $setVolatile(this, false); - return; - case 12: - $setTransient(this, false); - return; - case 13: - this.defaultValueFactory = null; - $setDefaultValueLiteralGen(this, null); - return; - case 15: - $setUnsettable(this, false); - return; - case 16: - $setDerived(this, false); - return; - case 18: - $setID(this, false); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); -} -; -_.freeze = function freeze_3(){ - $getEAttributeType(this); - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); - $getEType(this); - this.eFlags |= 1; -} -; -_.isMany = function isMany_0(){ - return $isMany(this); -} -; -_.setEType = function setEType_0(newEType, msgs){ - this.effectiveIsMany = 0; - this.eAttributeType = null; - return $setEType_0(this, newEType, msgs); -} -; -_.setUpperBound = function setUpperBound_0(upperBound){ - $setUpperBound_0(this, upperBound); -} -; -_.toString_0 = function toString_147(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_29(this); - result = new StringBuffer_1($toString_29(this)); - result.string += ' (iD: '; - $append_4(result, (this.eFlags & $intern_134) != 0); - result.string += ')'; - return result.string; -} -; -_.effectiveIsMany = 0; -var Lorg_eclipse_emf_ecore_impl_EAttributeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAttributeImpl', 322); -function $basicGetEPackage(this$static){ - if (this$static.eFlags_0 >> 16 != 6) - return null; - return castTo(this$static.eContainer, 235); -} - -function $basicSetInstanceClassName(this$static, value_0){ - if (this$static.instanceClassName == null && this$static.generatedInstanceClassName != null) { - this$static.instanceClassName = this$static.generatedInstanceClassName; - this$static.generatedInstanceClassName = null; - } - $setInstanceClassNameGen(this$static, value_0 == null?null:(checkCriticalNotNull(value_0) , value_0)); - !!this$static.instanceClass && this$static.setInstanceClassGen(null); -} - -function $basicSetInstanceTypeName(this$static, newInstanceTypeName){ - var oldInstanceTypeName; - oldInstanceTypeName = this$static.instanceTypeName; - this$static.instanceTypeName = newInstanceTypeName; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); -} - -function $eBasicRemoveFromContainerFeature_7(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 6) { - return this$static.eContainer.eInverseRemove(this$static, 5, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getEPackage(this$static){ - var result; - if (this$static.ePackage) { - return this$static.ePackage; - } - else { - result = $getEPackageGen(this$static); - !!result && !result.eIsProxy() && (this$static.ePackage = result); - return result; - } -} - -function $getEPackageGen(this$static){ - if (this$static.eFlags_0 >> 16 != 6) - return null; - return castTo($eContainer(this$static), 235); -} - -function $getInstanceClass(this$static){ - var primitiveClass; - if (!this$static.instanceClass && (this$static.instanceClassName != null || this$static.generatedInstanceClassName != null)) { - primitiveClass = $getPrimitiveOrArrayClass(this$static); - if (primitiveClass) { - this$static.setInstanceClassGen(primitiveClass); - } - else { - try { - this$static.setInstanceClassGen(null); - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - } - return this$static.instanceClass; -} - -function $getPrimitiveOrArrayClass(this$static){ - var arrayIndex, className, componentClassName, result; - className = this$static.instanceClassName != null?this$static.instanceClassName:this$static.generatedInstanceClassName; - arrayIndex = $indexOf_1(className, fromCodePoint(91)); - if (arrayIndex != -1) { - componentClassName = className.substr(0, arrayIndex); - result = new StringBuffer; - do - result.string += '['; - while ((arrayIndex = $indexOf_0(className, 91, ++arrayIndex)) != -1); - if ($equals_5(componentClassName, 'boolean')) - result.string += 'Z'; - else if ($equals_5(componentClassName, 'byte')) - result.string += 'B'; - else if ($equals_5(componentClassName, 'char')) - result.string += 'C'; - else if ($equals_5(componentClassName, 'double')) - result.string += 'D'; - else if ($equals_5(componentClassName, 'float')) - result.string += 'F'; - else if ($equals_5(componentClassName, 'int')) - result.string += 'I'; - else if ($equals_5(componentClassName, 'long')) - result.string += 'J'; - else if ($equals_5(componentClassName, 'short')) - result.string += 'S'; - else { - result.string += 'L'; - result.string += '' + componentClassName; - result.string += ';'; - } - try { - return null; - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - else if ($indexOf_1(className, fromCodePoint(46)) == -1) { - if ($equals_5(className, 'boolean')) - return Z_classLit; - else if ($equals_5(className, 'byte')) - return B_classLit; - else if ($equals_5(className, 'char')) - return C_classLit; - else if ($equals_5(className, 'double')) - return D_classLit; - else if ($equals_5(className, 'float')) - return F_classLit; - else if ($equals_5(className, 'int')) - return I_classLit; - else if ($equals_5(className, 'long')) - return J_classLit; - else if ($equals_5(className, 'short')) - return S_classLit; - } - return null; -} - -function $isInstance(this$static, object){ - var helper, instanceClass; - if (object != null) { - instanceClass = $getInstanceClass(this$static); - if (instanceClass) { - if ((instanceClass.modifiers & 1) != 0) { - if (instanceClass == Z_classLit) { - return instanceOfBoolean(object); - } - else if (instanceClass == I_classLit) { - return instanceOf(object, 19); - } - else if (instanceClass == F_classLit) { - return instanceOf(object, 155); - } - else if (instanceClass == B_classLit) { - return instanceOf(object, 217); - } - else if (instanceClass == C_classLit) { - return instanceOf(object, 172); - } - else if (instanceClass == D_classLit) { - return instanceOfDouble(object); - } - else if (instanceClass == S_classLit) { - return instanceOf(object, 184); - } - else if (instanceClass == J_classLit) { - return instanceOf(object, 162); - } - } - else { - return $clinit_Reflect() , helper = castTo($get_10(HELPER_REGISTRY, instanceClass), 55) , !helper || helper.isInstance(object); - } - } - else if (instanceOf(object, 56)) { - return this$static.dynamicIsInstance(castTo(object, 56)); - } - } - return false; -} - -function $setGeneratedInstanceClass(this$static, isGenerated){ - if (isGenerated) { - if (this$static.generatedInstanceClassName == null) { - this$static.generatedInstanceClassName = this$static.instanceClassName; - this$static.instanceClassName = null; - } - } - else if (this$static.generatedInstanceClassName != null) { - this$static.instanceClassName = this$static.generatedInstanceClassName; - this$static.generatedInstanceClassName = null; - } -} - -function $setInstanceClass(this$static, value_0){ - var component, indices, name_0; - if (!value_0) { - $setInstanceClassNameGen(this$static, null); - $basicSetInstanceTypeName(this$static, null); - } - else if ((value_0.modifiers & 4) != 0) { - indices = '[]'; - for (component = value_0.componentType;; component = component.componentType) { - if ((component.modifiers & 4) == 0) { - name_0 = $intern(($ensureNamesAreInitialized(component) , component.typeName + indices)); - $setInstanceClassNameGen(this$static, name_0); - $basicSetInstanceTypeName(this$static, name_0); - break; - } - indices += '[]'; - } - } - else { - name_0 = $intern(($ensureNamesAreInitialized(value_0) , value_0.typeName)); - $setInstanceClassNameGen(this$static, name_0); - $basicSetInstanceTypeName(this$static, name_0); - } - this$static.setInstanceClassGen(value_0); -} - -function $setInstanceClassName(this$static, value_0){ - $basicSetInstanceClassName(this$static, value_0); - $basicSetInstanceTypeName(this$static, this$static.instanceClassName); -} - -function $setInstanceClassNameGen(this$static, newInstanceClassName){ - var oldInstanceClassName; - oldInstanceClassName = this$static.instanceClassName; - this$static.instanceClassName = newInstanceClassName; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldInstanceClassName, this$static.instanceClassName)); -} - -function $setInstanceTypeName(this$static, newInstanceTypeName){ - var end, index_0, newInstanceClassName, oldInstanceTypeName; - oldInstanceTypeName = this$static.instanceTypeName; - if (newInstanceTypeName == null) { - this$static.instanceTypeName = null; - $basicSetInstanceClassName(this$static, null); - } - else { - this$static.instanceTypeName = (checkCriticalNotNull(newInstanceTypeName) , newInstanceTypeName); - index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(60)); - if (index_0 != -1) { - newInstanceClassName = newInstanceTypeName.substr(0, index_0); - $indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1 && !$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short') && (newInstanceClassName = 'java.lang.Object'); - end = $lastIndexOf(newInstanceTypeName, fromCodePoint(62)); - end != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(end + 1)); - $basicSetInstanceClassName(this$static, newInstanceClassName); - } - else { - newInstanceClassName = newInstanceTypeName; - if ($indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1) { - index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(91)); - index_0 != -1 && (newInstanceClassName = newInstanceTypeName.substr(0, index_0)); - if (!$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short')) { - newInstanceClassName = 'java.lang.Object'; - index_0 != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(index_0)); - } - else { - newInstanceClassName = newInstanceTypeName; - } - } - $basicSetInstanceClassName(this$static, newInstanceClassName); - newInstanceClassName == newInstanceTypeName && (this$static.instanceTypeName = this$static.instanceClassName); - } - } - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); -} - -function $setName_1(this$static, newName){ - instanceOf(this$static.eContainer, 179) && (castTo(this$static.eContainer, 179).eNameToEClassifierMap = null); - $setName(this$static, newName); -} - -function $toString_30(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_21(this$static); - result = new StringBuffer_1($toString_21(this$static)); - result.string += ' (instanceClassName: '; - $append_3(result, this$static.instanceClassName); - result.string += ')'; - return result.string; -} - -defineClass(351, 438, {105:1, 92:1, 90:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}); -_.dynamicIsInstance = function dynamicIsInstance(eObject){ - return eObject.eClass_0() == this; -} -; -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_8(msgs){ - return $eBasicRemoveFromContainerFeature_7(this, msgs); -} -; -_.eBasicSetContainer = function eBasicSetContainer_5(newContainer, newContainerFeatureID){ - this.ePackage = null; - this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; - this.eContainer = newContainer; -} -; -_.eGet = function eGet_21(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return this.getDefaultValue(); - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_13(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 6, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_15(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 6: - return $eBasicSetContainer(this, null, 6, msgs); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_20(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return this.getDefaultValue() != null; - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_19(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_20(){ - return $clinit_EcorePackage$Literals() , ECLASSIFIER; -} -; -_.eUnset = function eUnset_19(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.getClassifierID = function getClassifierID(){ - var ePackage; - return this.metaObjectID == -1 && (this.metaObjectID = (ePackage = $getEPackage(this) , ePackage?$indexOf_6(ePackage.getEClassifiers(), this):-1)) , this.metaObjectID; -} -; -_.getDefaultValue = function getDefaultValue_0(){ - return null; -} -; -_.getEPackage = function getEPackage(){ - return $getEPackage(this); -} -; -_.getExtendedMetaData_1 = function getExtendedMetaData_1(){ - return this.eClassifierExtendedMetaData; -} -; -_.getInstanceClass = function getInstanceClass(){ - return $getInstanceClass(this); -} -; -_.getInstanceClassName = function getInstanceClassName(){ - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; -} -; -_.getInstanceTypeName = function getInstanceTypeName(){ - return this.instanceTypeName; -} -; -_.isInstance = function isInstance_0(object){ - return $isInstance(this, object); -} -; -_.setExtendedMetaData_1 = function setExtendedMetaData_1(eClassifierExtendedMetaData){ - this.eClassifierExtendedMetaData = eClassifierExtendedMetaData; -} -; -_.setGeneratedInstanceClass = function setGeneratedInstanceClass(isGenerated){ - $setGeneratedInstanceClass(this, isGenerated); -} -; -_.setInstanceClassGen = function setInstanceClassGen(newInstanceClass){ - this.instanceClass = newInstanceClass; -} -; -_.setName = function setName_1(newName){ - $setName_1(this, newName); -} -; -_.toString_0 = function toString_148(){ - return $toString_30(this); -} -; -_.instanceClass = null; -_.instanceClassName = null; -_.metaObjectID = -1; -var Lorg_eclipse_emf_ecore_impl_EClassifierImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassifierImpl', 351); -function $clinit_EClassImpl(){ - $clinit_EClassImpl = emptyMethod; - COMPUTATION_IN_PROGRESS = new EClassImpl$MyHashSet; - NO_EALL_STRUCTURE_FEATURES_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, []); - NO_EALL_OPERATIONS_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, 1), $intern_152, 59, 0, []); -} - -function $getEAllAttributes(this$static){ - var attributes, computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, result; - if (!this$static.eAllAttributes) { - this$static.eIDAttribute = null; - result = new EClassImpl$2(this$static); - attributes = new EClassImpl$3; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllAttributes(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { - eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); - instanceOf(eStructuralFeature, 322) && $add_21(attributes, castTo(eStructuralFeature, 34)); - } - $shrink_0(attributes); - this$static.eAttributes = new EClassImpl$4(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 7), 18) , attributes.size_0), attributes.data_0); - $addAll_9(result, this$static.eAttributes); - $shrink_0(result); - this$static.eAllAttributes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -2; - } - return this$static.eAllAttributes; -} - -function $getEAllContainments(this$static){ - var eReference, eReference$iterator, result; - if (!this$static.eAllContainments) { - result = new EClassImpl$7; - for (eReference$iterator = new AbstractEList$NonResolvingEIterator($getEAllReferences(this$static)); eReference$iterator.cursor != eReference$iterator.this$01_2.size_1();) { - eReference = castTo($doNext_0(eReference$iterator), 18); - (eReference.eFlags & $intern_134) != 0 && $add_21(result, eReference); - } - $shrink_0(result); - this$static.eAllContainments = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 8), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -9; - } - return this$static.eAllContainments; -} - -function $getEAllGenericSuperTypes(this$static){ - var computationInProgress, eGenericSuperType, eGenericSuperType$iterator, eSuperType, old, result; - if (!this$static.eAllGenericSuperTypes) { - result = new EClassImpl$1EGenericSuperTypeEList; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eGenericSuperType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this$static)); eGenericSuperType$iterator.cursor != eGenericSuperType$iterator.this$01_2.size_1();) { - eGenericSuperType = castTo($doNext(eGenericSuperType$iterator), 87); - eSuperType = $getERawType(eGenericSuperType); - instanceOf(eSuperType, 88) && $addAll_9(result, $getEAllGenericSuperTypes(castTo(eSuperType, 26))); - $add_21(result, eGenericSuperType); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - $eliminateEquivalentDuplicates(result); - $shrink_0(result); - this$static.eAllGenericSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 15), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -33; - } - return this$static.eAllGenericSuperTypes; -} - -function $getEAllOperations(this$static){ - var computationInProgress, eSuperType, eSuperType$iterator, i, old, operationID, result; - if (!this$static.eAllOperations) { - result = new EClassImpl$6; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllOperations(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - operationID = result.size_0; - for (i = (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , new AbstractEList$EIterator(this$static.eOperations)); i.cursor != i.this$01_2.size_1(); ++operationID) { - castTo($doNext(i), 399); - } - $addAll_9(result, (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , this$static.eOperations)); - $shrink_0(result); - this$static.eAllOperations = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 9), 18) , result.size_0), result.data_0); - this$static.eAllOperationsData = castTo(result.data_0, 673); - this$static.eAllOperationsData == null && (this$static.eAllOperationsData = NO_EALL_OPERATIONS_DATA); - $getESuperAdapter(this$static).modifiedState &= -17; - } - return this$static.eAllOperations; -} - -function $getEAllReferences(this$static){ - var computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, references, result; - if (!this$static.eAllReferences) { - result = new EClassImpl$1ReferenceList; - references = new EClassImpl$1ReferenceList; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllReferences(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { - eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); - instanceOf(eStructuralFeature, 99) && $add_21(references, castTo(eStructuralFeature, 18)); - } - $shrink_0(references); - this$static.eReferences = new EClassImpl$5(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 6), 18) , references.size_0), references.data_0); - $addAll_9(result, this$static.eReferences); - $shrink_0(result); - this$static.eAllReferences = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -3; - } - return this$static.eAllReferences; -} - -function $getEAllStructuralFeatures(this$static){ - var computationInProgress, eSuperType, eSuperType$iterator, featureID, i, old, result; - if (!this$static.eAllStructuralFeatures) { - result = new EClassImpl$1EStructuralFeatureUniqueEList; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllStructuralFeatures(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - featureID = result.size_0; - for (i = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); i.cursor != i.this$01_2.size_1(); ++featureID) { - $setFeatureID(castTo($doNext(i), 449), featureID); - } - $addAll_9(result, (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , this$static.eStructuralFeatures)); - $shrink_0(result); - this$static.eAllStructuralFeatures = new EClassImpl$1EAllStructuralFeaturesList(this$static, result); - this$static.eAllStructuralFeaturesData = castTo(result.data_0, 247); - this$static.eAllStructuralFeaturesData == null && (this$static.eAllStructuralFeaturesData = NO_EALL_STRUCTURE_FEATURES_DATA); - this$static.eNameToFeatureMap = null; - $getESuperAdapter(this$static).modifiedState &= -5; - } - return this$static.eAllStructuralFeatures; -} - -function $getEAllSuperTypes(this$static){ - var computationInProgress, eSuperType, eSuperType$iterator, higherSupers, old, result; - if (!this$static.eAllSuperTypes) { - result = new EClassImpl$9; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - higherSupers = $getEAllSuperTypes(eSuperType); - $addAll_9(result, higherSupers); - $add_21(result, eSuperType); - } - computationInProgress.map_0.remove_0(this$static) != null; - } - $shrink_0(result); - this$static.eAllSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 11), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -33; - } - return this$static.eAllSuperTypes; -} - -function $getEGenericSuperTypes(this$static){ - if (!this$static.eGenericSuperTypes) { - $getESuperAdapter(this$static); - this$static.eGenericSuperTypes = new EClassImpl$1(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); - $getESuperTypes(this$static); - } - return this$static.eGenericSuperTypes; -} - -function $getEOperations(this$static){ - !this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)); - return this$static.eOperations; -} - -function $getEStructuralFeature(this$static, featureID){ - var eAllStructuralFeaturesData; - eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); - return featureID >= 0 && featureID < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[featureID]:null; -} - -function $getEStructuralFeature_0(this$static, name_0){ - var duplicate, eStructuralFeature, eStructuralFeature$iterator, key, result; - (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; - if (!this$static.eNameToFeatureMap) { - result = new HashMap_0((3 * this$static.eAllStructuralFeatures.size_0 / 2 | 0) + 1); - for (eStructuralFeature$iterator = new AbstractEList$NonResolvingEIterator(this$static.eAllStructuralFeatures); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { - eStructuralFeature = castTo($doNext_0(eStructuralFeature$iterator), 170); - key = eStructuralFeature.getName(); - duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eStructuralFeature):$put_10(result.stringMap, key, eStructuralFeature), 170); - !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); - } - this$static.eNameToFeatureMap = result; - } - return castTo($getStringValue(this$static.eNameToFeatureMap, name_0), 170); -} - -function $getEStructuralFeatures(this$static){ - !this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)); - return this$static.eStructuralFeatures; -} - -function $getESuperAdapter(this$static){ - if (!this$static.eSuperAdapter) { - this$static.eSuperAdapter = new EClassImpl$10(this$static); - $add_20(new MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$static), 0, this$static.eSuperAdapter); - } - return this$static.eSuperAdapter; -} - -function $getESuperTypes(this$static){ - if (!this$static.eSuperTypes) { - $getESuperAdapter(this$static); - this$static.eSuperTypes = new EClassImpl$8(this$static, this$static); - } - return this$static.eSuperTypes; -} - -function $getFeatureCount(this$static){ - return (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; -} - -function $getFeatureID(this$static, feature){ - var eAllStructuralFeaturesData, index_0, last; - eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); - index_0 = feature.getFeatureID_0(); - if (index_0 != -1) { - for (last = eAllStructuralFeaturesData.length; index_0 < last; ++index_0) { - if (eAllStructuralFeaturesData[index_0] == feature) { - return index_0; - } - } - } - return -1; -} - -function $isSetESuperTypes(this$static){ - return !!this$static.eSuperTypes && $getEGenericSuperTypes(this$static.eSuperTypes.this$01).size_0 != 0 && !(!!this$static.eGenericSuperTypes && $isSet(this$static.eGenericSuperTypes)); -} - -function $isSuperTypeOf(this$static, someClass){ - return someClass == this$static || $contains_10($getEAllSuperTypes(someClass), this$static); -} - -function $setAbstract(this$static, newAbstract){ - var oldAbstract; - oldAbstract = (this$static.eFlags & 256) != 0; - newAbstract?(this$static.eFlags |= 256):(this$static.eFlags &= -257); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldAbstract, newAbstract)); -} - -function $setInterface(this$static, newInterface){ - var oldInterface; - oldInterface = (this$static.eFlags & 512) != 0; - newInterface?(this$static.eFlags |= 512):(this$static.eFlags &= -513); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 9, oldInterface, newInterface)); -} - -function $toString_31(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_30(this$static); - result = new StringBuffer_1($toString_30(this$static)); - result.string += ' (abstract: '; - $append_4(result, (this$static.eFlags & 256) != 0); - result.string += ', interface: '; - $append_4(result, (this$static.eFlags & 512) != 0); - result.string += ')'; - return result.string; -} - -function EClassImpl(){ - $clinit_EClassImpl(); -} - -defineClass(88, 351, {105:1, 92:1, 90:1, 26:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 88:1, 351:1, 150:1, 473:1, 114:1, 115:1, 676:1}, EClassImpl); -_.dynamicIsInstance = function dynamicIsInstance_0(eObject){ - return $isSuperTypeOf(this, eObject.eClass_0()); -} -; -_.eGet = function eGet_22(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return null; - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - case 8: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 9: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 10: - return $getESuperTypes(this); - case 11: - return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , this.eOperations; - case 12: - return $getEAllAttributes(this); - case 13: - return $getEAllReferences(this); - case 14: - return $getEAllReferences(this) , this.eReferences; - case 15: - return $getEAllAttributes(this) , this.eAttributes; - case 16: - return $getEAllContainments(this); - case 17: - return $getEAllOperations(this); - case 18: - return $getEAllStructuralFeatures(this); - case 19: - return $getEAllSuperTypes(this); - case 20: - return $getEAllAttributes(this) , this.eIDAttribute; - case 21: - return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , this.eStructuralFeatures; - case 22: - return $getEGenericSuperTypes(this); - case 23: - return $getEAllGenericSuperTypes(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_14(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 6, msgs); - case 11: - return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicAdd_0(this.eOperations, otherEnd, msgs); - case 21: - return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicAdd_0(this.eStructuralFeatures, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_16(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 6: - return $eBasicSetContainer(this, null, 6, msgs); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - case 11: - return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicRemove_0(this.eOperations, otherEnd, msgs); - case 21: - return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicRemove_0(this.eStructuralFeatures, otherEnd, msgs); - case 22: - return $basicRemove_0($getEGenericSuperTypes(this), otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_21(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return false; - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 8: - return (this.eFlags & 256) != 0; - case 9: - return (this.eFlags & 512) != 0; - case 10: - return !!this.eSuperTypes && $getEGenericSuperTypes(this.eSuperTypes.this$01).size_0 != 0 && !(!!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes)); - case 11: - return !!this.eOperations && this.eOperations.size_0 != 0; - case 12: - return $getEAllAttributes(this).size_0 != 0; - case 13: - return $getEAllReferences(this).size_0 != 0; - case 14: - return $getEAllReferences(this) , this.eReferences.size_0 != 0; - case 15: - return $getEAllAttributes(this) , this.eAttributes.size_0 != 0; - case 16: - return $getEAllContainments(this).size_0 != 0; - case 17: - return $getEAllOperations(this).size_0 != 0; - case 18: - return $getEAllStructuralFeatures(this).size_0 != 0; - case 19: - return $getEAllSuperTypes(this).size_0 != 0; - case 20: - return $getEAllAttributes(this) , !!this.eIDAttribute; - case 21: - return !!this.eStructuralFeatures && this.eStructuralFeatures.size_0 != 0; - case 22: - return !!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes); - case 23: - return $getEAllGenericSuperTypes(this).size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_2(uriFragmentSegment){ - var result; - result = this.eAllStructuralFeaturesData == null || !!this.eOperations && this.eOperations.size_0 != 0?null:$getEStructuralFeature_0(this, uriFragmentSegment); - return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); -} -; -_.eSet = function eSet_20(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 8: - $setAbstract(this, $booleanValue(castToBoolean(newValue))); - return; - case 9: - $setInterface(this, $booleanValue(castToBoolean(newValue))); - return; - case 10: - $clear_12($getESuperTypes(this)); - $addAll_9($getESuperTypes(this), castTo(newValue, 14)); - return; - case 11: - !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); - $clear_13(this.eOperations); - !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); - $addAll_9(this.eOperations, castTo(newValue, 14)); - return; - case 21: - !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); - $clear_13(this.eStructuralFeatures); - !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); - $addAll_9(this.eStructuralFeatures, castTo(newValue, 14)); - return; - case 22: - $clear_13($getEGenericSuperTypes(this)); - $addAll_9($getEGenericSuperTypes(this), castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_21(){ - return $clinit_EcorePackage$Literals() , ECLASS; -} -; -_.eUnset = function eUnset_20(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - case 8: - $setAbstract(this, false); - return; - case 9: - $setInterface(this, false); - return; - case 10: - !!this.eSuperTypes && $clear_12(this.eSuperTypes); - return; - case 11: - !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); - $clear_13(this.eOperations); - return; - case 21: - !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); - $clear_13(this.eStructuralFeatures); - return; - case 22: - !!this.eGenericSuperTypes && $clear_13(this.eGenericSuperTypes); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); -} -; -_.freeze = function freeze_4(){ - var i, size_0; - $getEAllAttributes(this); - $getEAllReferences(this); - $getEAllContainments(this); - $getEAllOperations(this); - $getEAllStructuralFeatures(this); - $getEAllSuperTypes(this); - $getEAllGenericSuperTypes(this); - $clear_11($getSubclasses($getESuperAdapter(this))); - if (this.eStructuralFeatures) { - for (i = 0 , size_0 = this.eStructuralFeatures.size_0; i < size_0; ++i) { - $freeze($get_20(this.eStructuralFeatures, i)); - } - } - if (this.eOperations) { - for (i = 0 , size_0 = this.eOperations.size_0; i < size_0; ++i) { - $freeze($get_20(this.eOperations, i)); - } - } - $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); - this.eFlags |= 1; -} -; -_.toString_0 = function toString_149(){ - return $toString_31(this); -} -; -_.eAttributes = null; -_.eReferences = null; -var COMPUTATION_IN_PROGRESS, NO_EALL_OPERATIONS_DATA, NO_EALL_STRUCTURE_FEATURES_DATA; -var Lorg_eclipse_emf_ecore_impl_EClassImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl', 88); -defineClass(1994, 1993, $intern_153); -_.addAllUnique = function addAllUnique_9(index_0, collection){ - return $addAllUnique_3(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_10(collection){ - return $addAllUnique_3(this, this.size_0, collection); -} -; -_.addUnique = function addUnique_10(index_0, object){ - $addUnique_5(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_11(object){ - $addUnique_6(this, object); -} -; -_.basicAdd = function basicAdd_0(object, notifications){ - return $basicAdd_0(this, object, notifications); -} -; -_.basicGet = function basicGet_1(index_0){ - return $basicGet(this, index_0); -} -; -_.basicRemove = function basicRemove_0(object, notifications){ - return $basicRemove_0(this, object, notifications); -} -; -_.setUnique = function setUnique_4(index_0, object){ - return $setUnique_1(this, index_0, object); -} -; -_.basicIterator = function basicIterator_2(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator_5(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_6(index_0){ - return $basicListIterator(this, index_0); -} -; -var Lorg_eclipse_emf_ecore_util_NotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'NotifyingInternalEListImpl', 1994); -function $contains_11(this$static, object){ - var containedEObject, eContainer, eObject, i, opposite, result, result0; - if (this$static.isEObject()) { - if (this$static.size_0 > 4) { - if (this$static.isInstance(object)) { - if (this$static.isContainment()) { - eObject = castTo(object, 49); - eContainer = eObject.eContainer_0(); - result0 = eContainer == this$static.owner && (this$static.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), this$static.getInverseFeatureClass()) == this$static.getInverseFeatureID():-1 - eObject.eContainerFeatureID_0() == this$static.getFeatureID_0()); - if (this$static.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { - for (i = 0; i < this$static.size_0; ++i) { - containedEObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); - if (maskUndefined(containedEObject) === maskUndefined(object)) { - return true; - } - } - } - return result0; - } - else if (this$static.hasNavigableInverse() && !this$static.hasManyInverse()) { - opposite = castTo(object, 56).eGet_0($getEOpposite(castTo(this$static.getEStructuralFeature(), 18))); - if (maskUndefined(opposite) === maskUndefined(this$static.owner)) { - return true; - } - else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { - return false; - } - } - } - else { - return false; - } - } - result = $contains_10(this$static, object); - if (this$static.hasProxies() && !result) { - for (i = 0; i < this$static.size_0; ++i) { - eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return true; - } - } - } - return result; - } - else { - return $contains_10(this$static, object); - } -} - -function $createNotification(this$static, eventType, oldObject, newObject, index_0, wasSet){ - return new ENotificationImpl_3(this$static.owner, eventType, this$static.getFeatureID_0(), oldObject, newObject, index_0, wasSet); -} - -function $dispatchNotification(this$static, notification){ - $eNotify(this$static.owner, notification); -} - -function $indexOf_6(this$static, object){ - var eObject, i, index_0; - index_0 = $indexOf_4(this$static, object); - if (index_0 >= 0) - return index_0; - if (this$static.isEObject()) { - for (i = 0; i < this$static.size_0; ++i) { - eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return i; - } - } - } - return -1; -} - -function $resolve(this$static, index_0, eObject){ - var element, notificationChain, oldElement, oldObject, resolved, resolvedElement; - resolved = this$static.resolveProxy(eObject); - if (resolved != eObject) { - oldObject = this$static.data_0[index_0]; - resolvedElement = resolved; - $assign(this$static, index_0, this$static.validate(index_0, resolvedElement)); - oldElement = oldObject; - this$static.didSet(index_0, resolvedElement, oldElement); - if (this$static.isContainment()) { - element = eObject; - notificationChain = this$static.inverseRemove(element, null); - !castTo(resolved, 49).eInternalContainer() && (notificationChain = this$static.inverseAdd(resolvedElement, notificationChain)); - !!notificationChain && notificationChain.dispatch_0(); - } - $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, this$static.createNotification(9, eObject, resolved, index_0, false)); - return resolved; - } - else { - return eObject; - } -} - -function $set_15(this$static, newValue){ - $clear_13(this$static); - this$static.addAll(castTo(newValue, 15)); -} - -function $toArray_11(this$static){ - var i; - if (this$static.hasProxies()) { - for (i = this$static.size_0 - 1; i >= 0; --i) { - $get_20(this$static, i); - } - } - return $toArray_9(this$static); -} - -function $validate_0(this$static, index_0, object){ - $validate(this$static, object); - if (!this$static.hasInstanceClass() && object != null && !this$static.isInstance(object)) { - throw toJs(new ArrayStoreException); - } - return object; -} - -function EcoreEList(dataClass, owner){ - this.dataClass = dataClass; - this.owner = owner; -} - -defineClass(622, 1994, $intern_154); -_.contains = function contains_63(object){ - return $contains_11(this, object); -} -; -_.createNotification = function createNotification_1(eventType, oldObject, newObject, index_0, wasSet){ - return $createNotification(this, eventType, oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification_1(notification){ - $dispatchNotification(this, notification); -} -; -_.get_6 = function get_61(resolve){ - return this; -} -; -_.getEStructuralFeature = function getEStructuralFeature_0(){ - return $getEStructuralFeature(this.owner.eClass_0(), this.getFeatureID_0()); -} -; -_.getFeature = function getFeature_4(){ - return this.getEStructuralFeature(); -} -; -_.getFeatureID_0 = function getFeatureID_5(){ - return $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()); -} -; -_.getInverseFeatureClass = function getInverseFeatureClass(){ - return castTo(this.getEStructuralFeature().getEType(), 26).getInstanceClass(); -} -; -_.getInverseFeatureID = function getInverseFeatureID(){ - return $getEOpposite(castTo(this.getEStructuralFeature(), 18)).featureID; -} -; -_.getNotifier = function getNotifier_4(){ - return this.owner; -} -; -_.hasInstanceClass = function hasInstanceClass(){ - return true; -} -; -_.hasManyInverse = function hasManyInverse(){ - return false; -} -; -_.hasNavigableInverse = function hasNavigableInverse(){ - return false; -} -; -_.hasProxies = function hasProxies(){ - return false; -} -; -_.indexOf_0 = function indexOf_15(object){ - return $indexOf_6(this, object); -} -; -_.inverseAdd = function inverseAdd_1(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.inverseRemove = function inverseRemove_1(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.isContainment = function isContainment_1(){ - return false; -} -; -_.isEObject = function isEObject(){ - return true; -} -; -_.isInstance = function isInstance_1(object){ - return isInstance(this.dataClass, object); -} -; -_.isNotificationRequired = function isNotificationRequired_1(){ - return $eNotificationRequired(this.owner); -} -; -_.isSet_0 = function isSet_3(){ - return this.size_0 != 0; -} -; -_.newData = function newData_3(capacity){ - return newInstance_11(this.dataClass, capacity); -} -; -_.resolve = function resolve_1(index_0, object){ - return this.isEObject() && this.hasProxies()?$resolve(this, index_0, castTo(object, 56)):object; -} -; -_.resolveProxy = function resolveProxy(eObject){ - return eObject.eIsProxy()?$eResolveProxy(this.owner, castTo(eObject, 49)):eObject; -} -; -_.set_1 = function set_31(newValue){ - $set_15(this, newValue); -} -; -_.toArray = function toArray_38(){ - return $toArray_11(this); -} -; -_.toArray_0 = function toArray_39(array){ - var i; - if (this.hasProxies()) { - for (i = this.size_0 - 1; i >= 0; --i) { - $get_20(this, i); - } - } - return $toArray_10(this, array); -} -; -_.unset = function unset_1(){ - $clear_13(this); -} -; -_.validate = function validate_0(index_0, object){ - return $validate_0(this, index_0, object); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList', 622); -function EObjectEList(dataClass, owner, featureID){ - EcoreEList.call(this, dataClass, owner); - this.featureID = featureID; -} - -defineClass(496, 622, $intern_154, EObjectEList); -_.canContainNull = function canContainNull_2(){ - return false; -} -; -_.getFeatureID_0 = function getFeatureID_6(){ - return this.featureID; -} -; -_.hasInverse = function hasInverse_1(){ - return false; -} -; -_.isEObject = function isEObject_0(){ - return true; -} -; -_.isUnique = function isUnique_3(){ - return true; -} -; -_.resolve = function resolve_2(index_0, object){ - return object; -} -; -_.useEquals = function useEquals_1(){ - return false; -} -; -_.featureID = 0; -var Lorg_eclipse_emf_ecore_util_EObjectEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList', 496); -function EObjectContainmentEList(dataClass, owner, featureID){ - EObjectEList.call(this, dataClass, owner, featureID); -} - -defineClass(85, 496, $intern_154, EObjectContainmentEList); -_.hasInverse = function hasInverse_2(){ - return true; -} -; -_.hasNavigableInverse = function hasNavigableInverse_0(){ - return false; -} -; -_.isContainment = function isContainment_2(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList', 85); -function EObjectContainmentEList$Unsettable(dataClass, owner, featureID){ - EObjectContainmentEList.call(this, dataClass, owner, featureID); -} - -defineClass(545, 85, $intern_154, EObjectContainmentEList$Unsettable); -_.didChange = function didChange_0(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_4(){ - return this.isSet; -} -; -_.unset = function unset_2(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable', 545); -function $isSet(this$static){ - var eGenericType, eGenericType$iterator; - for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { - return true; - } - } - return false; -} - -function $shadowAdd(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 3, 10, null, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowRemove(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 4, 10, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), null, $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowSet(this$static, oldEGenericType, newEGenericType, notifications){ - var notification, result, result0; - notification = new ENotificationImpl_3(this$static.owner, 1, 10, (result0 = oldEGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT)), (result = newEGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, oldEGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function EClassImpl$1(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 22); -} - -defineClass(1140, 545, $intern_154, EClassImpl$1); -_.move = function move_14(targetIndex, sourceIndex){ - var result0, result; - return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , ECLASS__ESUPER_TYPES), valueOf_4(sourceIndex), (result = result0.eRawType , instanceOf(result, 88)?castTo(result, 26):EOBJECT), targetIndex)) , result0; -} -; -_.shadowAdd = function shadowAdd_0(eGenericType, notifications){ - return $shadowAdd(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowRemove = function shadowRemove_0(eGenericType, notifications){ - return $shadowRemove(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowSet = function shadowSet_0(oldEGenericType, newEGenericType, notifications){ - return $shadowSet(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); -} -; -_.createNotification = function createNotification_2(eventType, oldObject, newObject, index_0, wasSet){ - switch (eventType) { - case 3: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); - } - - case 5: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); - } - - default:{ - return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); - } - - } -} -; -_.hasShadow = function hasShadow_0(){ - return true; -} -; -_.isSet_0 = function isSet_5(){ - return $isSet(this); -} -; -_.unset = function unset_3(){ - $clear_13(this); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1', 1140); -function $getSubclasses(this$static){ - !this$static.subclasses && (this$static.subclasses = new ESuperAdapter$1); - return this$static.subclasses; -} - -function $setFlags(this$static, featureId){ - var eSuperAdapter, i, oldModifiedState, subclass; - oldModifiedState = this$static.modifiedState; - switch (featureId) { - case 1: - { - this$static.modifiedState |= 1; - this$static.modifiedState |= 4; - this$static.modifiedState |= 8; - break; - } - - case 2: - { - this$static.modifiedState |= 2; - this$static.modifiedState |= 4; - this$static.modifiedState |= 8; - break; - } - - case 4: - { - this$static.modifiedState |= 1; - this$static.modifiedState |= 2; - this$static.modifiedState |= 4; - this$static.modifiedState |= 8; - break; - } - - case 3: - { - this$static.modifiedState |= 16; - this$static.modifiedState |= 8; - break; - } - - case 0: - { - this$static.modifiedState |= 32; - this$static.modifiedState |= 16; - this$static.modifiedState |= 8; - this$static.modifiedState |= 1; - this$static.modifiedState |= 2; - this$static.modifiedState |= 4; - break; - } - - } - if (this$static.modifiedState != oldModifiedState && !!this$static.subclasses) { - for (i = new AbstractEList$EIterator(this$static.subclasses); i.cursor != i.this$01_2.size_1();) { - subclass = castTo($doNext(i), 473); - eSuperAdapter = $getESuperAdapter(subclass); - $setFlags_0(eSuperAdapter, featureId); - } - } -} - -function getFeatureID_7(notification){ - var featureID; - featureID = notification.getFeatureID(null); - switch (featureID) { - case 10: - return 0; - case 15: - return 1; - case 14: - return 2; - case 11: - return 3; - case 21: - return 4; - } - return -1; -} - -defineClass(1154, 1153, $intern_140); -_.notifyChanged = function notifyChanged_0(notification){ - var eSuperAdapter, eventType, featureID, holder, i, newValue, oldValue; - eventType = notification.getEventType(); - if (eventType != 8) { - featureID = getFeatureID_7(notification); - if (featureID == 0) { - switch (eventType) { - case 1: - case 9: - { - oldValue = notification.getOldValue(); - if (oldValue != null) { - eSuperAdapter = $getESuperAdapter(castTo(oldValue, 473)); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); - } - newValue = notification.getNewValue(); - if (newValue != null) { - holder = castTo(newValue, 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); - } - } - break; - } - - case 3: - { - newValue = notification.getNewValue(); - if (newValue != null) { - holder = castTo(newValue, 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); - } - } - break; - } - - case 5: - { - newValue = notification.getNewValue(); - if (newValue != null) { - for (i = castTo(newValue, 14).iterator_0(); i.hasNext_0();) { - holder = castTo(i.next_1(), 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); - } - } - } - break; - } - - case 4: - { - oldValue = notification.getOldValue(); - if (oldValue != null) { - holder = castTo(oldValue, 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); - } - } - break; - } - - case 6: - { - oldValue = notification.getOldValue(); - if (oldValue != null) { - for (i = castTo(oldValue, 14).iterator_0(); i.hasNext_0();) { - holder = castTo(i.next_1(), 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); - } - } - } - break; - } - - } - } - this.setFlags(featureID); - } -} -; -_.setFlags = function setFlags(featureId){ - $setFlags(this, featureId); -} -; -_.modifiedState = 63; -var Lorg_eclipse_emf_ecore_impl_ESuperAdapter_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter', 1154); -function $setFlags_0(this$static, featureId){ - $setFlags(this$static, featureId); - (this$static.modifiedState & 1) != 0 && (this$static.this$01.eAllAttributes = null); - (this$static.modifiedState & 2) != 0 && (this$static.this$01.eAllReferences = null); - if ((this$static.modifiedState & 4) != 0) { - this$static.this$01.eAllStructuralFeatures = null; - this$static.this$01.eAllStructuralFeaturesData = null; - } - if ((this$static.modifiedState & 16) != 0) { - this$static.this$01.eAllOperations = null; - this$static.this$01.eAllOperationsData = null; - } - (this$static.modifiedState & 8) != 0 && (this$static.this$01.eAllContainments = null); - if ((this$static.modifiedState & 32) != 0) { - this$static.this$01.eAllSuperTypes = null; - this$static.this$01.eAllGenericSuperTypes = null; - } -} - -function EClassImpl$10(this$0){ - this.this$01 = this$0; -} - -defineClass(1155, 1154, $intern_140, EClassImpl$10); -_.setFlags = function setFlags_0(featureId){ - $setFlags_0(this, featureId); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/10', 1155); -defineClass(1144, 696, $intern_154); -_.addAllUnique = function addAllUnique_11(index_0, collection){ - return $addAllUnique(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_12(collection){ - return $addAllUnique_0(this, collection); -} -; -_.addUnique = function addUnique_12(index_0, object){ - $addUnique(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_13(object){ - $addUnique_0(this, object); -} -; -_.basicGet = function basicGet_2(index_0){ - return $basicGet(this, index_0); -} -; -_.setUnique = function setUnique_5(index_0, object){ - return $setUnique(this, index_0, object); -} -; -_.basicAdd = function basicAdd_1(object, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.basicIterator = function basicIterator_3(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator_7(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_8(index_0){ - return $basicListIterator(this, index_0); -} -; -_.basicRemove = function basicRemove_1(object, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.get_6 = function get_62(resolve){ - return this; -} -; -_.isSet_0 = function isSet_6(){ - return this.size_0 != 0; -} -; -_.set_1 = function set_32(newValue){ - throw toJs(new UnsupportedOperationException); -} -; -_.unset = function unset_4(){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList', 1144); -function EcoreEList$UnmodifiableEList$FastCompare(size_0, data_0){ - BasicEList$UnmodifiableEList.call(this, size_0, data_0); -} - -defineClass(319, 1144, $intern_154, EcoreEList$UnmodifiableEList$FastCompare); -_.useEquals = function useEquals_2(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList$FastCompare_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList/FastCompare', 319); -function $containments(this$static){ - maskUndefined(this$static.containments) === maskUndefined(($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA)) && $init_2(this$static); - return this$static.containments; -} - -function $init_2(this$static){ - var containmentsList, crossReferencesList, eAnnotation, eAnnotation0, eAnnotation1, eReference, eStructuralFeature, i, isMixed, theOpposite; - containmentsList = new EClassImpl$1EStructuralFeatureUniqueEList; - crossReferencesList = new EClassImpl$1EStructuralFeatureUniqueEList; - isMixed = $equals_5('mixed', (eAnnotation0 = $getEAnnotation(this$static.this$01, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , !eAnnotation0?null:castToString($get_21((!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details), 'kind')))); - for (i = 0; i < this$static.size_0; ++i) { - eStructuralFeature = castTo(this$static.data_0[i], 170); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - (eReference.eFlags & $intern_134) != 0?((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation1 = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation1?null:castToString($get_21((!eAnnotation1.details && (eAnnotation1.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation1)) , eAnnotation1.details), 'group'))) == null)) && $add_21(containmentsList, eReference):(theOpposite = $getEOpposite(eReference) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0 || ((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation?null:castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group'))) == null)) && $add_21(crossReferencesList, eReference)); - } - else { - $clinit_FeatureMapUtil(); - if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { - if (!eStructuralFeature.isDerived()) { - $add_21(containmentsList, eStructuralFeature); - $add_21(crossReferencesList, eStructuralFeature); - } - } - } - } - $shrink_0(containmentsList); - $shrink_0(crossReferencesList); - this$static.containments = castTo(containmentsList.data_0, 247); - castTo(crossReferencesList.data_0, 247); -} - -function EClassImpl$1EAllStructuralFeaturesList(this$0, eAllStructuralFeatures){ - this.this$01 = this$0; - EcoreEList$UnmodifiableEList$FastCompare.call(this, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 10), 18) , eAllStructuralFeatures.size_0), eAllStructuralFeatures.data_0); - this.containments = ($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA); -} - -defineClass(1147, 319, $intern_154, EClassImpl$1EAllStructuralFeaturesList); -_.indexOf_0 = function indexOf_16(object){ - var eStructuralFeature, index_0, last; - if (instanceOf(object, 170)) { - eStructuralFeature = castTo(object, 170); - index_0 = eStructuralFeature.getFeatureID_0(); - if (index_0 != -1) { - for (last = this.size_0; index_0 < last; ++index_0) { - if (maskUndefined(this.data_0[index_0]) === maskUndefined(object)) { - return index_0; - } - } - } - } - return -1; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EAllStructuralFeaturesList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EAllStructuralFeaturesList', 1147); -function $eliminateEquivalentDuplicates(this$static){ - var eGenericType, eGenericTypes, i, j, otherEGenericType; - eGenericTypes = castTo(this$static.data_0, 674); - for (i = this$static.size_0 - 1; i >= 0; --i) { - eGenericType = eGenericTypes[i]; - for (j = 0; j < i; ++j) { - otherEGenericType = eGenericTypes[j]; - if ($equivalent(this$static, eGenericType, otherEGenericType)) { - $remove_33(this$static, i); - break; - } - } - } -} - -function $equivalent(this$static, eGenericType, otherEGenericType){ - var eClassifier, eTypeArgument, eTypeArgumentSize, eTypeArguments, eTypeParameter, instanceTypeName, j, otherEClassifier, otherETypeArgument, otherETypeArguments, otherETypeParameter, otherInstanceTypeName; - if (eGenericType == otherEGenericType) { - return true; - } - else { - eGenericType = $resolve_0(this$static, eGenericType); - otherEGenericType = $resolve_0(this$static, otherEGenericType); - eClassifier = $getEClassifier(eGenericType); - if (eClassifier) { - otherEClassifier = $getEClassifier(otherEGenericType); - if (otherEClassifier != eClassifier) { - if (!otherEClassifier) { - return false; - } - else { - instanceTypeName = eClassifier.getInstanceTypeName(); - otherInstanceTypeName = otherEClassifier.getInstanceTypeName(); - return instanceTypeName == otherInstanceTypeName && instanceTypeName != null; - } - } - else { - eTypeArguments = (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments); - eTypeArgumentSize = eTypeArguments.size_0; - otherETypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); - if (eTypeArgumentSize == otherETypeArguments.size_0) { - for (j = 0; j < eTypeArgumentSize; ++j) { - eTypeArgument = castTo($get_20(eTypeArguments, j), 87); - otherETypeArgument = castTo($get_20(otherETypeArguments, j), 87); - if (!$equivalent(this$static, eTypeArgument, otherETypeArgument)) { - return false; - } - } - } - return true; - } - } - else { - eTypeParameter = eGenericType.eTypeParameter; - otherETypeParameter = otherEGenericType.eTypeParameter; - return eTypeParameter == otherETypeParameter; - } - } -} - -function $resolve_0(this$static, eGenericType){ - var eContainer, eGenericTypes, eTypeArguments, eTypeParameter, i, index_0, otherEGenericType; - eTypeParameter = eGenericType.eTypeParameter; - if (eTypeParameter) { - eContainer = $eContainer(eTypeParameter); - eGenericTypes = castTo(this$static.data_0, 674); - for (i = 0; i < this$static.size_0; ++i) { - otherEGenericType = eGenericTypes[i]; - if ($getEClassifier(otherEGenericType) == eContainer) { - eTypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); - index_0 = castTo(eContainer.eGet_0(eContainmentFeature(eTypeParameter, eTypeParameter.eContainer, eTypeParameter.eFlags_0 >> 16)), 15).indexOf_0(eTypeParameter); - if (index_0 < eTypeArguments.size_0) { - return $resolve_0(this$static, castTo($get_20(eTypeArguments, index_0), 87)); - } - } - } - } - return eGenericType; -} - -function EClassImpl$1EGenericSuperTypeEList(){ -} - -defineClass(1141, 497, $intern_138, EClassImpl$1EGenericSuperTypeEList); -_.newData = function newData_4(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, capacity, 0, 1); -} -; -_.useEquals = function useEquals_3(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EGenericSuperTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EGenericSuperTypeEList', 1141); -function EClassImpl$1EStructuralFeatureUniqueEList(){ -} - -defineClass(623, 497, $intern_138, EClassImpl$1EStructuralFeatureUniqueEList); -_.newData = function newData_5(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, capacity, 0, 1); -} -; -_.useEquals = function useEquals_4(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EStructuralFeatureUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EStructuralFeatureUniqueEList', 623); -function EClassImpl$1ReferenceList(){ -} - -defineClass(741, 497, $intern_138, EClassImpl$1ReferenceList); -_.newData = function newData_6(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); -} -; -_.useEquals = function useEquals_5(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1ReferenceList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1ReferenceList', 741); -function $didAdd_0(this$static, eAttribute){ - (eAttribute.eFlags & $intern_134) != 0 && !this$static.this$01.eIDAttribute && (this$static.this$01.eIDAttribute = eAttribute); -} - -function EClassImpl$2(this$0){ - this.this$01 = this$0; -} - -defineClass(1142, 497, $intern_138, EClassImpl$2); -_.didAdd = function didAdd_1(index_0, eAttribute){ - $didAdd_0(this, castTo(eAttribute, 34)); -} -; -_.newData = function newData_7(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); -} -; -_.useEquals = function useEquals_6(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/2', 1142); -function EClassImpl$3(){ -} - -defineClass(1143, 497, $intern_138, EClassImpl$3); -_.newData = function newData_8(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); -} -; -_.useEquals = function useEquals_7(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/3', 1143); -function $add_28(this$static, object){ - $clinit_System(); - return $add_21($getEStructuralFeatures(this$static.this$01), object); -} - -function $addUnique_8(this$static, object){ - $addUnique_6($getEStructuralFeatures(this$static.this$01), object); -} - -function EClassImpl$4(this$0, $anonymous2, $anonymous3){ - this.this$01 = this$0; - EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); -} - -defineClass(1145, 319, $intern_154, EClassImpl$4); -_.add_2 = function add_62(object){ - return $add_28(this, castTo(object, 34)); -} -; -_.addUnique_0 = function addUnique_14(object){ - $addUnique_8(this, castTo(object, 34)); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/4', 1145); -function $add_29(this$static, object){ - $clinit_System(); - return $add_21($getEStructuralFeatures(this$static.this$01), object); -} - -function $addUnique_9(this$static, object){ - $addUnique_6($getEStructuralFeatures(this$static.this$01), object); -} - -function EClassImpl$5(this$0, $anonymous2, $anonymous3){ - this.this$01 = this$0; - EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); -} - -defineClass(1146, 319, $intern_154, EClassImpl$5); -_.add_2 = function add_63(object){ - return $add_29(this, castTo(object, 18)); -} -; -_.addUnique_0 = function addUnique_15(object){ - $addUnique_9(this, castTo(object, 18)); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/5', 1146); -function EClassImpl$6(){ -} - -defineClass(1148, 497, $intern_138, EClassImpl$6); -_.newData = function newData_9(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, capacity, 0, 1); -} -; -_.useEquals = function useEquals_8(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/6', 1148); -function EClassImpl$7(){ -} - -defineClass(1149, 497, $intern_138, EClassImpl$7); -_.newData = function newData_10(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); -} -; -_.useEquals = function useEquals_9(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/7', 1149); -defineClass(1997, 1996, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 69:1}); -_.addAllUnique = function addAllUnique_13(index_0, collection){ - return $addAllUnique_2(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_14(collection){ - return $addAllUnique_2(this, this.delegateSize(), collection); -} -; -_.addUnique = function addUnique_16(index_0, object){ - $addUnique_3(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_17(object){ - $addUnique_4(this, object); -} -; -_.basicAdd = function basicAdd_2(object, notifications){ - return $basicAdd(this, object, notifications); -} -; -_.basicRemove = function basicRemove_2(object, notifications){ - return $basicRemove(this, object, notifications); -} -; -_.setUnique = function setUnique_6(index_0, object){ - return $setUnique_0(this, index_0, object); -} -; -_.basicGet = function basicGet_3(index_0){ - return this.delegateGet(index_0); -} -; -_.basicIterator = function basicIterator_4(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicList = function basicList_0(){ - return this.delegateBasicList(); -} -; -_.basicListIterator = function basicListIterator_9(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_10(index_0){ - return $basicListIterator(this, index_0); -} -; -var Lorg_eclipse_emf_ecore_util_DelegatingNotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingNotifyingInternalEListImpl', 1997); -function $resolve_1(this$static, index_0, object){ - var internalEObject, internalEObject0, notificationChain, resolved; - if (this$static.isEObject() && this$static.hasProxies()) { - resolved = $resolveProxy(this$static, castTo(object, 56)); - if (maskUndefined(resolved) !== maskUndefined(object)) { - this$static.delegateGet(index_0); - this$static.delegateSet(index_0, $validate_1(this$static, index_0, resolved)); - if (this$static.isContainment()) { - notificationChain = (internalEObject0 = castTo(object, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject0.eInverseRemove(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), null):internalEObject0.eInverseRemove(this$static.owner, $getFeatureID(internalEObject0.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, null):internalEObject0.eInverseRemove(this$static.owner, -1 - this$static.getFeatureID_0(), null, null)); - !castTo(resolved, 49).eInternalContainer() && (notificationChain = (internalEObject = castTo(resolved, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject.eInverseAdd(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), notificationChain):internalEObject.eInverseAdd(this$static.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, notificationChain):internalEObject.eInverseAdd(this$static.owner, -1 - this$static.getFeatureID_0(), null, notificationChain))); - !!notificationChain && notificationChain.dispatch_0(); - } - $eNotificationRequired(this$static.owner) && this$static.dispatchNotification(this$static.createNotification(9, object, resolved, index_0, false)); - return resolved; - } - } - return object; -} - -function $resolveProxy(this$static, eObject){ - return eObject.eIsProxy()?$eResolveProxy(this$static.owner, castTo(eObject, 49)):eObject; -} - -function $validate_1(this$static, index_0, object){ - $validate(this$static, object); - if (object != null && !this$static.isInstance(object)) { - throw toJs(new ArrayStoreException); - } - return object; -} - -function DelegatingEcoreEList(owner){ - this.owner = owner; -} - -defineClass(742, 1997, $intern_156); -_.canContainNull = function canContainNull_3(){ - var eClassifier; - eClassifier = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(); - return instanceOf(eClassifier, 148) && !instanceOf(eClassifier, 457) && (eClassifier.getInstanceClass().modifiers & 1) == 0; -} -; -_.contains = function contains_64(object){ - var containedEObject, eContainer, eObject, i, opposite, result, result0, size_0; - if (this.isEObject()) { - size_0 = this.delegateSize(); - if (size_0 > 4) { - if (this.isInstance(object)) { - if (this.isContainment()) { - eObject = castTo(object, 49); - eContainer = eObject.eContainer_0(); - result0 = eContainer == this.owner && (this.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass()) == $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID:-1 - eObject.eContainerFeatureID_0() == this.getFeatureID_0()); - if (this.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { - for (i = 0; i < size_0; ++i) { - containedEObject = $resolveProxy(this, this.delegateGet(i)); - if (maskUndefined(containedEObject) === maskUndefined(object)) { - return true; - } - } - } - return result0; - } - else if (this.hasNavigableInverse() && !this.hasManyInverse()) { - opposite = castTo(object, 56).eGet_0($getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))); - if (maskUndefined(opposite) === maskUndefined(this.owner)) { - return true; - } - else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { - return false; - } - } - } - else { - return false; - } - } - result = this.delegateContains(object); - if (this.hasProxies() && !result) { - for (i = 0; i < size_0; ++i) { - eObject = $resolveProxy(this, this.delegateGet(i)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return true; - } - } - } - return result; - } - else { - return this.delegateContains(object); - } -} -; -_.createNotification = function createNotification_3(eventType, oldObject, newObject, index_0, wasSet){ - return new ENotificationImpl_3(this.owner, eventType, this.getFeatureID_0(), oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification_2(notification){ - $eNotify(this.owner, notification); -} -; -_.get_6 = function get_63(resolve){ - return this; -} -; -_.getFeature = function getFeature_5(){ - return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); -} -; -_.getFeatureID_0 = function getFeatureID_8(){ - return $getFeatureID($eClass(this.owner), $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0())); -} -; -_.getNotifier = function getNotifier_5(){ - return this.owner; -} -; -_.hasInstanceClass = function hasInstanceClass_0(){ - return !!$getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().getInstanceClass(); -} -; -_.hasInverse = function hasInverse_3(){ - var eReference, eStructuralFeature; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - return (eReference.eFlags & $intern_134) != 0 || !!$getEOpposite(castTo(eStructuralFeature, 18)); - } - else { - return false; - } -} -; -_.hasManyInverse = function hasManyInverse_0(){ - var eReference, eStructuralFeature, oppositeEReference, upper; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - oppositeEReference = $getEOpposite(eReference); - return !!oppositeEReference && (upper = oppositeEReference.upperBound , upper > 1 || upper == -1); - } - else { - return false; - } -} -; -_.hasNavigableInverse = function hasNavigableInverse_1(){ - var eReference, eStructuralFeature, oppositeEReference; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - oppositeEReference = $getEOpposite(eReference); - return !!oppositeEReference; - } - else { - return false; - } -} -; -_.hasProxies = function hasProxies_0(){ - var eReference, eStructuralFeature; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - return (eReference.eFlags & $intern_63) != 0; - } - else { - return false; - } -} -; -_.indexOf_0 = function indexOf_17(object){ - var eObject, i, index_0, size_0; - index_0 = this.delegateIndexOf(object); - if (index_0 >= 0) - return index_0; - if (this.isEObject()) { - for (i = 0 , size_0 = this.delegateSize(); i < size_0; ++i) { - eObject = $resolveProxy(this, this.delegateGet(i)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return i; - } - } - } - return -1; -} -; -_.inverseAdd = function inverseAdd_2(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.inverseRemove = function inverseRemove_2(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.isContainment = function isContainment_3(){ - var eReference, eStructuralFeature; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - return (eReference.eFlags & $intern_134) != 0; - } - else { - return false; - } -} -; -_.isEObject = function isEObject_1(){ - return instanceOf($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 88); -} -; -_.isInstance = function isInstance_2(object){ - return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().isInstance(object); -} -; -_.isNotificationRequired = function isNotificationRequired_2(){ - return $eNotificationRequired(this.owner); -} -; -_.isSet_0 = function isSet_7(){ - return !this.delegateIsEmpty(); -} -; -_.isUnique = function isUnique_4(){ - return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).isUnique(); -} -; -_.resolve = function resolve_3(index_0, object){ - return $resolve_1(this, index_0, object); -} -; -_.set_1 = function set_33(newValue){ - $clear_12(this); - $addAll_9(this, castTo(newValue, 15)); -} -; -_.toArray = function toArray_40(){ - var i; - if (this.hasProxies()) { - for (i = this.delegateSize() - 1; i >= 0; --i) { - $resolve_1(this, i, this.delegateGet(i)); - } - } - return this.delegateToArray(); -} -; -_.toArray_0 = function toArray_41(array){ - var i; - if (this.hasProxies()) { - for (i = this.delegateSize() - 1; i >= 0; --i) { - $resolve_1(this, i, this.delegateGet(i)); - } - } - return this.delegateToArray_0(array); -} -; -_.unset = function unset_5(){ - $clear_12(this); -} -; -_.validate = function validate_1(index_0, object){ - return $validate_1(this, index_0, object); -} -; -var Lorg_eclipse_emf_ecore_util_DelegatingEcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingEcoreEList', 742); -function $delegateAdd(this$static, index_0, eClass){ - $add_20($getEGenericSuperTypes(this$static.this$01), index_0, $wrap_0(eClass)); -} - -function $delegateAdd_0(this$static, eClass){ - $add_21($getEGenericSuperTypes(this$static.this$01), $wrap_0(eClass)); -} - -function $delegateContains(this$static, object){ - var eClass, eClass$iterator; - for (eClass$iterator = new AbstractEList$EIterator(this$static); eClass$iterator.cursor != eClass$iterator.this$01_2.size_1();) { - eClass = castTo($doNext(eClass$iterator), 26); - if (maskUndefined(object) === maskUndefined(eClass)) { - return true; - } - } - return false; -} - -function $delegateSet(this$static, index_0, eClass){ - var eGenericType, result, result0; - eGenericType = castTo($get_20($getEGenericSuperTypes(this$static.this$01), index_0), 87); - result0 = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - ((result0.eFlags_0 & 64) != 0?$eResolveProxy(this$static.owner, result0):result0) == eClass?$getERawType(eGenericType):$setEClassifier(eGenericType, eClass); - return result0; -} - -function $wrap_0(eClass){ - var eGenericType, eGenericType0; - eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(eGenericType0, eClass); - return eGenericType0; -} - -function EClassImpl$8(this$0, $anonymous0){ - this.this$01 = this$0; - DelegatingEcoreEList.call(this, $anonymous0); -} - -defineClass(1150, 742, $intern_156, EClassImpl$8); -_.delegateAdd = function delegateAdd_1(index_0, eClass){ - $delegateAdd(this, index_0, castTo(eClass, 26)); -} -; -_.delegateAdd_0 = function delegateAdd_2(eClass){ - $delegateAdd_0(this, castTo(eClass, 26)); -} -; -_.delegateGet = function delegateGet_0(index_0){ - var eGenericType, result; - return eGenericType = castTo($get_20($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); -} -; -_.delegateRemove = function delegateRemove_0(index_0){ - var eGenericType, result; - return eGenericType = castTo($remove_35($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); -} -; -_.delegateSet = function delegateSet_0(index_0, eClass){ - return $delegateSet(this, index_0, castTo(eClass, 26)); -} -; -_.canContainNull = function canContainNull_4(){ - return false; -} -; -_.createNotification = function createNotification_4(eventType, oldObject, newObject, index_0, wasSet){ - return null; -} -; -_.delegateBasicList = function delegateBasicList_0(){ - return new EClassImpl$8$1(this); -} -; -_.delegateClear = function delegateClear_0(){ - $clear_13($getEGenericSuperTypes(this.this$01)); -} -; -_.delegateContains = function delegateContains_0(object){ - return $delegateContains(this, object); -} -; -_.delegateContainsAll = function delegateContainsAll_0(collection){ - var object, object$iterator; - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$delegateContains(this, object)) { - return false; - } - } - return true; -} -; -_.delegateEquals = function delegateEquals_0(object){ - var i, j, list; - if (instanceOf(object, 15)) { - list = castTo(object, 15); - if (list.size_1() == $getEGenericSuperTypes(this.this$01).size_0) { - for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { - if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { - return false; - } - } - return true; - } - } - return false; -} -; -_.delegateHashCode = function delegateHashCode_0(){ - var eGenericType, eGenericType$iterator, hashCode, object, result; - hashCode = 1; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - object = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - hashCode = 31 * hashCode + (!object?0:getHashCode_0(object)); - } - return hashCode; -} -; -_.delegateIndexOf = function delegateIndexOf_0(object){ - var eGenericType, eGenericType$iterator, index_0, result; - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))) { - return index_0; - } - ++index_0; - } - return -1; -} -; -_.delegateIsEmpty = function delegateIsEmpty_0(){ - return $getEGenericSuperTypes(this.this$01).size_0 == 0; -} -; -_.delegateList_1 = function delegateList_2(){ - return null; -} -; -_.delegateSize = function delegateSize_0(){ - return $getEGenericSuperTypes(this.this$01).size_0; -} -; -_.delegateToArray = function delegateToArray_1(){ - var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; - size_0 = $getEGenericSuperTypes(this.this$01).size_0; - result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - result0[index_0++] = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - } - return result0; -} -; -_.delegateToArray_0 = function delegateToArray_2(array){ - var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; - size_0 = $getEGenericSuperTypes(this.this$01).size_0; - if (array.length < size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); - array = newArray; - } - array.length > size_0 && setCheck(array, size_0, null); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - rawType = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - setCheck(array, index_0++, rawType); - } - return array; -} -; -_.delegateToString = function delegateToString_0(){ - var eGenericSuperTypes, i, result, size_0, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - eGenericSuperTypes = $getEGenericSuperTypes(this.this$01); - for (i = 0 , size_0 = $getEGenericSuperTypes(this.this$01).size_0; i < size_0;) { - $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericSuperTypes, i), 87).eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))); - ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} -; -_.dispatchNotification = function dispatchNotification_3(notification){ -} -; -_.getFeatureID_0 = function getFeatureID_9(){ - return 10; -} -; -_.hasInstanceClass = function hasInstanceClass_1(){ - return true; -} -; -_.hasInverse = function hasInverse_4(){ - return false; -} -; -_.hasManyInverse = function hasManyInverse_1(){ - return false; -} -; -_.hasNavigableInverse = function hasNavigableInverse_2(){ - return false; -} -; -_.hasProxies = function hasProxies_1(){ - return true; -} -; -_.isContainment = function isContainment_4(){ - return false; -} -; -_.isEObject = function isEObject_2(){ - return true; -} -; -_.isInstance = function isInstance_3(object){ - return instanceOf(object, 88); -} -; -_.isSet_0 = function isSet_8(){ - return $isSetESuperTypes(this.this$01); -} -; -_.isUnique = function isUnique_5(){ - return true; -} -; -_.useEquals = function useEquals_10(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8', 1150); -function EClassImpl$8$1(this$1){ - this.this$11 = this$1; -} - -defineClass(1151, 1964, $intern_37, EClassImpl$8$1); -_.listIterator_1 = function listIterator_29(index_0){ - return $basicListIterator(this.this$11, index_0); -} -; -_.size_1 = function size_75(){ - return $getEGenericSuperTypes(this.this$11.this$01).size_0; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$8$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8/1', 1151); -function EClassImpl$9(){ -} - -defineClass(1152, 497, $intern_138, EClassImpl$9); -_.newData = function newData_11(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, capacity, 0, 1); -} -; -_.useEquals = function useEquals_11(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/9', 1152); -function EClassImpl$MyHashSet(){ - HashSet.call(this); -} - -defineClass(1139, 53, $intern_77, EClassImpl$MyHashSet); -var Lorg_eclipse_emf_ecore_impl_EClassImpl$MyHashSet_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/MyHashSet', 1139); -function $setSerializable(this$static, newSerializable){ - var oldSerializable; - oldSerializable = (this$static.eFlags & 256) != 0; - newSerializable?(this$static.eFlags |= 256):(this$static.eFlags &= -257); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldSerializable, newSerializable)); -} - -function EDataTypeImpl(){ - this.eFlags |= 256; -} - -defineClass(566, 351, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}, EDataTypeImpl); -_.eGet = function eGet_23(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return this.getDefaultValue(); - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - case 8: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_22(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return this.getDefaultValue() != null; - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 8: - return (this.eFlags & 256) == 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_21(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 8: - $setSerializable(this, $booleanValue(castToBoolean(newValue))); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_22(){ - return $clinit_EcorePackage$Literals() , EDATA_TYPE; -} -; -_.eUnset = function eUnset_21(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - case 8: - $setSerializable(this, true); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze_5(){ - $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); - this.eFlags |= 1; -} -; -_.getConversionDelegate = function getConversionDelegate(){ - var conversionDelegates, eDataTypeDelegateURI, eDataTypeDelegateURI$iterator; - if (!this.conversionDelegateIsSet) { - conversionDelegates = getConversionDelegates($getEPackage(this)); - if (!conversionDelegates.isEmpty()) { - for (eDataTypeDelegateURI$iterator = conversionDelegates.iterator_0(); eDataTypeDelegateURI$iterator.hasNext_0();) { - eDataTypeDelegateURI = castToString(eDataTypeDelegateURI$iterator.next_1()); - !!$getEAnnotation(this, eDataTypeDelegateURI) && getConversionDelegateFactory(this); - } - } - } - return this.conversionDelegate; -} -; -_.getDefaultValue = function getDefaultValue_1(){ - var instanceClass; - if (!this.defaultValueIsSet) { - instanceClass = null; - try { - instanceClass = $getInstanceClass(this); - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 102)) - throw toJs($e0); - } - this.defaultValue = null; - !!instanceClass && (instanceClass.modifiers & 1) != 0 && (instanceClass == Z_classLit?(this.defaultValue = ($clinit_Boolean() , FALSE_0)):instanceClass == I_classLit?(this.defaultValue = valueOf_4(0)):instanceClass == F_classLit?(this.defaultValue = new Float(0)):instanceClass == D_classLit?(this.defaultValue = 0):instanceClass == J_classLit?(this.defaultValue = valueOf_5(0)):instanceClass == S_classLit?(this.defaultValue = valueOf_6(0)):instanceClass == B_classLit?(this.defaultValue = valueOf_2(0)):(this.defaultValue = valueOf_3(0))); - this.defaultValueIsSet = true; - } - return this.defaultValue; -} -; -_.isSerializable = function isSerializable_0(){ - return (this.eFlags & 256) != 0; -} -; -_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass(isGenerated){ - isGenerated && (this.instanceClassName = 'org.eclipse.emf.common.util.AbstractEnumerator'); -} -; -_.setGeneratedInstanceClass = function setGeneratedInstanceClass_0(isGenerated){ - $setGeneratedInstanceClass(this, isGenerated); - this.setDataTypeGeneratedInstanceClass(isGenerated); -} -; -_.setInstanceClassGen = function setInstanceClassGen_0(instanceClass){ - this.instanceClass = instanceClass; - this.defaultValueIsSet = false; -} -; -_.toString_0 = function toString_150(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_30(this); - result = new StringBuffer_1($toString_30(this)); - result.string += ' (serializable: '; - $append_4(result, (this.eFlags & 256) != 0); - result.string += ')'; - return result.string; -} -; -_.conversionDelegateIsSet = false; -_.defaultValue = null; -_.defaultValueIsSet = false; -var Lorg_eclipse_emf_ecore_impl_EDataTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EDataTypeImpl', 566); -function $getDefaultValue_0(this$static){ - var eLiterals; - eLiterals = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , this$static.eLiterals); - if (eLiterals.size_0 != 0) { - return $getInstance(castTo($get_20(eLiterals, 0), 678)); - } - return null; -} - -function $getEEnumLiteralByLiteral(this$static, literal){ - var eEnumLiteral, eEnumLiteral$iterator, result; - if (literal == null) { - for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { - eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); - result = eEnumLiteral.literal; - if ((result == null?eEnumLiteral.name_0:result) == null) { - return eEnumLiteral; - } - } - } - else { - for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { - eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); - if ($equals_5(literal, (result = eEnumLiteral.literal , result == null?eEnumLiteral.name_0:result))) { - return eEnumLiteral; - } - } - } - return null; -} - -function EEnumImpl(){ - EDataTypeImpl.call(this); -} - -defineClass(457, 566, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 671:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 457:1, 150:1, 114:1, 115:1, 676:1}, EEnumImpl); -_.eGet = function eGet_24(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return $getDefaultValue_0(this); - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - case 8: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 9: - return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , this.eLiterals; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_15(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 6, msgs); - case 9: - return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicAdd_0(this.eLiterals, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_17(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 6: - return $eBasicSetContainer(this, null, 6, msgs); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - case 9: - return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicRemove_0(this.eLiterals, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_23(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return !!$getDefaultValue_0(this); - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 8: - return (this.eFlags & 256) == 0; - case 9: - return !!this.eLiterals && this.eLiterals.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); -} -; -_.eSet = function eSet_22(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 8: - $setSerializable(this, $booleanValue(castToBoolean(newValue))); - return; - case 9: - !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); - $clear_13(this.eLiterals); - !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); - $addAll_9(this.eLiterals, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_23(){ - return $clinit_EcorePackage$Literals() , EENUM; -} -; -_.eUnset = function eUnset_22(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - case 8: - $setSerializable(this, true); - return; - case 9: - !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); - $clear_13(this.eLiterals); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); -} -; -_.freeze = function freeze_6(){ - var i, size_0; - if (this.eLiterals) { - for (i = 0 , size_0 = this.eLiterals.size_0; i < size_0; ++i) { - $freeze($get_20(this.eLiterals, i)); - } - } - $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); - this.eFlags |= 1; -} -; -_.getDefaultValue = function getDefaultValue_2(){ - return $getDefaultValue_0(this); -} -; -_.isInstance = function isInstance_4(object){ - if (object != null) { - return true; - } - return false; -} -; -_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass_0(isGenerated){ -} -; -var Lorg_eclipse_emf_ecore_impl_EEnumImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumImpl', 457); -function $eBasicRemoveFromContainerFeature_8(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 5) { - return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_emf_ecore_EEnum_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getInstance(this$static){ - return this$static.instance?this$static.instance:this$static.generatedInstance; -} - -function $setInstance(this$static, newInstance){ - var literal, result, oldInstance; - oldInstance = this$static.instance; - this$static.instance = newInstance; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldInstance, this$static.instance)); - if (!newInstance) { - $setName(this$static, null); - $setValue_1(this$static, 0); - $setLiteral(this$static, null); - } - else if (newInstance != this$static) { - $setName(this$static, newInstance.name_0); - $setValue_1(this$static, newInstance.value_0); - literal = (result = newInstance.literal , result == null?newInstance.name_0:result); - $setLiteral(this$static, literal == null || $equals_5(literal, newInstance.name_0)?null:literal); - } -} - -function $setLiteral(this$static, newLiteral){ - var oldLiteral; - oldLiteral = this$static.literal; - this$static.literal = newLiteral; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, oldLiteral, this$static.literal)); -} - -function $setValue_1(this$static, newValue){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = newValue; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 2, oldValue, this$static.value_0)); -} - -function EEnumLiteralImpl(){ - this.generatedInstance = this; -} - -defineClass(573, 438, {105:1, 92:1, 90:1, 1940:1, 678:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 573:1, 150:1, 114:1, 115:1}, EEnumLiteralImpl); -_.getName = function getName_6(){ - return this.name_0; -} -; -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_9(msgs){ - return $eBasicRemoveFromContainerFeature_8(this, msgs); -} -; -_.eGet = function eGet_25(featureID, resolve, coreType){ - var eClass, result; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return valueOf_4(this.value_0); - case 3: - return this.instance?this.instance:this.generatedInstance; - case 4: - return result = this.literal , result == null?this.name_0:result; - case 5: - return this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_16(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 5: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_8(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 5, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_18(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 5: - return $eBasicSetContainer(this, null, 5, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_24(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.value_0 != 0; - case 3: - return !!this.instance; - case 4: - return this.literal != null; - case 5: - return !!(this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); -} -; -_.eSet = function eSet_23(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - $setValue_1(this, castTo(newValue, 19).value_0); - return; - case 3: - $setInstance(this, castTo(newValue, 1940)); - return; - case 4: - $setLiteral(this, castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_24(){ - return $clinit_EcorePackage$Literals() , EENUM_LITERAL; -} -; -_.eUnset = function eUnset_23(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - $setValue_1(this, 0); - return; - case 3: - $setInstance(this, null); - return; - case 4: - $setLiteral(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); -} -; -_.toString_0 = function toString_151(){ - var result; - return result = this.literal , result == null?this.name_0:result; -} -; -_.instance = null; -_.literal = null; -_.value_0 = 0; -var Lorg_eclipse_emf_ecore_impl_EEnumLiteralImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumLiteralImpl', 573); -var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit = createForInterface('org.eclipse.emf.ecore.impl', 'EFactoryImpl/InternalEDateTimeFormat'); -function $format_0(this$static, value_0){ - return $format(this$static.dateTimeFormat, value_0, null); -} - -function $parse_2(this$static, value_0){ - return $parse_1(this$static.dateTimeFormat, value_0); -} - -function EFactoryImpl$1ClientInternalEDateTimeFormat(dateTimeFormat){ - this.dateTimeFormat = dateTimeFormat; -} - -defineClass(489, 1, {2015:1}, EFactoryImpl$1ClientInternalEDateTimeFormat); -var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$1ClientInternalEDateTimeFormat_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl/1ClientInternalEDateTimeFormat', 489); -function $basicSetELowerBound(this$static, newELowerBound, msgs){ - var notification, oldELowerBound; - oldELowerBound = this$static.eLowerBound; - this$static.eLowerBound = newELowerBound; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 3, oldELowerBound, newELowerBound); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $basicSetETypeParameter(this$static, newETypeParameter, msgs){ - var notification, oldETypeParameter; - oldETypeParameter = this$static.eTypeParameter; - this$static.eTypeParameter = newETypeParameter; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 4, oldETypeParameter, newETypeParameter); - !msgs?(msgs = notification):msgs.add_5(notification); - } - oldETypeParameter != newETypeParameter && (newETypeParameter?(msgs = $setERawType(this$static, $getErasure(this$static, newETypeParameter), msgs)):(msgs = $setERawType(this$static, this$static.eClassifier, msgs))); - return msgs; -} - -function $basicSetEUpperBound(this$static, newEUpperBound, msgs){ - var notification, oldEUpperBound; - oldEUpperBound = this$static.eUpperBound; - this$static.eUpperBound = newEUpperBound; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 0, oldEUpperBound, newEUpperBound); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $getEClassifier(this$static){ - var oldEClassifier; - if (!!this$static.eClassifier && this$static.eClassifier.eIsProxy()) { - oldEClassifier = castTo(this$static.eClassifier, 49); - this$static.eClassifier = castTo($eResolveProxy(this$static, oldEClassifier), 138); - this$static.eClassifier != oldEClassifier && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 5, oldEClassifier, this$static.eClassifier)); - } - return this$static.eClassifier; -} - -function $getERawType(this$static){ - var newERawType, oldERawType; - if (!!this$static.eRawType && this$static.eRawType.eIsProxy()) { - oldERawType = castTo(this$static.eRawType, 49); - this$static.eRawType = castTo($eResolveProxy(this$static, oldERawType), 138); - if (this$static.eRawType != oldERawType) { - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 2, oldERawType, this$static.eRawType)); - if (instanceOf(this$static.eContainer, 399)) { - this$static.eFlags_0 >> 16 == -15 && this$static.eContainer.eNotificationRequired() && $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 13, oldERawType, this$static.eRawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static))); - } - else if (instanceOf(this$static.eContainer, 88)) { - if (this$static.eFlags_0 >> 16 == -23 && this$static.eContainer.eNotificationRequired()) { - newERawType = this$static.eRawType; - instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static))); - } - } - } - } - return this$static.eRawType; -} - -function $getETypeArguments(this$static){ - !this$static.eTypeArguments && (this$static.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static, 1)); - return this$static.eTypeArguments; -} - -function $getErasure(this$static, eTypeParameter){ - var eBound, eBound$iterator, eRawType, needEClass, needEDataType; - if (!eTypeParameter) { - return null; - } - else { - needEClass = instanceOf(this$static.eContainer, 88) || instanceOf(this$static.eContainer, 99); - needEDataType = !needEClass && instanceOf(this$static.eContainer, 322); - for (eBound$iterator = new AbstractEList$EIterator((!eTypeParameter.eBounds && (eTypeParameter.eBounds = new ETypeParameterImpl$1(eTypeParameter, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eTypeParameter)) , eTypeParameter.eBounds)); eBound$iterator.cursor != eBound$iterator.this$01_2.size_1();) { - eBound = castTo($doNext(eBound$iterator), 87); - eRawType = $getERawType(eBound); - if (needEClass?instanceOf(eRawType, 88):needEDataType?instanceOf(eRawType, 148):!!eRawType) { - return eRawType; - } - } - return needEClass?($clinit_EcorePackage$Literals() , EOBJECT):($clinit_EcorePackage$Literals() , EJAVA_OBJECT); - } -} - -function $setEClassifier(this$static, newEClassifier){ - var msgs, oldEClassifier; - oldEClassifier = this$static.eClassifier; - msgs = $setEClassifier_0(this$static, newEClassifier, null); - oldEClassifier != newEClassifier && !this$static.eTypeParameter && (msgs = $setERawType(this$static, newEClassifier, msgs)); - !!msgs && msgs.dispatch_0(); -} - -function $setEClassifier_0(this$static, newEClassifier, msgs){ - var notification, oldEClassifier; - oldEClassifier = this$static.eClassifier; - this$static.eClassifier = newEClassifier; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 5, oldEClassifier, this$static.eClassifier); - !msgs?(msgs = notification):$add_22(msgs, notification); - } - return msgs; -} - -function $setELowerBound(this$static, newELowerBound){ - var msgs; - if (newELowerBound != this$static.eLowerBound) { - msgs = null; - !!this$static.eLowerBound && (msgs = $eInverseRemove(this$static.eLowerBound, this$static, -4, msgs)); - !!newELowerBound && (msgs = $eInverseAdd(newELowerBound, this$static, -4, msgs)); - msgs = $basicSetELowerBound(this$static, newELowerBound, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newELowerBound, newELowerBound)); -} - -function $setERawType(this$static, newERawType, msgs){ - var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, eTypeParameter, notification, oldERawType; - oldERawType = this$static.eRawType; - !newERawType && (newERawType = eJavaObject); - this$static.eRawType = newERawType; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 2, oldERawType, this$static.eRawType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - if (oldERawType != newERawType) { - if (instanceOf(this$static.eContainer, 284)) { - if (this$static.eFlags_0 >> 16 == -10) { - msgs = castTo(this$static.eContainer, 284).setEType(newERawType, msgs); - } - else if (this$static.eFlags_0 >> 16 == -15) { - !newERawType && (newERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - !oldERawType && (oldERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - if (this$static.eContainer.eNotificationRequired()) { - notification = new ENotificationImpl_3(this$static.eContainer, 1, 13, oldERawType, newERawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static), false); - !msgs?(msgs = notification):msgs.add_5(notification); - } - } - } - else if (instanceOf(this$static.eContainer, 88)) { - if (this$static.eFlags_0 >> 16 == -23) { - instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - if (this$static.eContainer.eNotificationRequired()) { - notification = new ENotificationImpl_3(this$static.eContainer, 1, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static), false); - !msgs?(msgs = notification):msgs.add_5(notification); - } - } - } - else if (instanceOf(this$static.eContainer, 444)) { - eTypeParameter = castTo(this$static.eContainer, 836); - eGenericTypes = (!eTypeParameter.eGenericTypes && (eTypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , eTypeParameter.eGenericTypes); - for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { - eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); - msgs = $setERawType(eGenericType, $getErasure(eGenericType, eTypeParameter), msgs); - } - } - } - return msgs; -} - -function $setETypeParameter(this$static, newETypeParameter){ - var msgs; - if (newETypeParameter != this$static.eTypeParameter) { - !!this$static.eTypeParameter && $remove_42($getEGenericTypes(this$static.eTypeParameter), this$static); - !!newETypeParameter && (!newETypeParameter.eGenericTypes && (newETypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , $add_30(newETypeParameter.eGenericTypes, this$static)); - msgs = $basicSetETypeParameter(this$static, newETypeParameter, null); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newETypeParameter, newETypeParameter)); -} - -function $setEUpperBound(this$static, newEUpperBound){ - var msgs; - if (newEUpperBound != this$static.eUpperBound) { - msgs = null; - !!this$static.eUpperBound && (msgs = $eInverseRemove(this$static.eUpperBound, this$static, -1, msgs)); - !!newEUpperBound && (msgs = $eInverseAdd(newEUpperBound, this$static, -1, msgs)); - msgs = $basicSetEUpperBound(this$static, newEUpperBound, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, newEUpperBound, newEUpperBound)); -} - -function $toString_32(this$static, result){ - var eTypeArgument, eTypeArgument$iterator, first, index_0, instanceTypeName, label_0, tail; - if (this$static.eClassifier) { - label_0 = this$static.eClassifier.getName(); - tail = null; - if (label_0 != null) { - result.string += '' + label_0; - } - else { - instanceTypeName = this$static.eClassifier.getInstanceTypeName(); - if (instanceTypeName != null) { - index_0 = $indexOf_1(instanceTypeName, fromCodePoint(91)); - if (index_0 != -1) { - tail = instanceTypeName.substr(index_0); - result.string += '' + $substring_1(instanceTypeName == null?'null':(checkCriticalNotNull(instanceTypeName) , instanceTypeName), 0, index_0); - } - else { - result.string += '' + instanceTypeName; - } - } - } - if (!!this$static.eTypeArguments && this$static.eTypeArguments.size_0 != 0) { - first = true; - result.string += '<'; - for (eTypeArgument$iterator = new AbstractEList$EIterator(this$static.eTypeArguments); eTypeArgument$iterator.cursor != eTypeArgument$iterator.this$01_2.size_1();) { - eTypeArgument = castTo($doNext(eTypeArgument$iterator), 87); - first?(first = false):(result.string += ', ' , result); - $toString_32(eTypeArgument, result); - } - result.string += '>'; - } - tail != null && (result.string += '' + tail , result); - } - else if (this$static.eTypeParameter) { - label_0 = this$static.eTypeParameter.name_0; - label_0 != null && (result.string += '' + label_0 , result); - } - else { - result.string += '?'; - if (this$static.eLowerBound) { - result.string += ' super '; - $toString_32(this$static.eLowerBound, result); - } - else { - if (this$static.eUpperBound) { - result.string += ' extends '; - $toString_32(this$static.eUpperBound, result); - } - } - } -} - -function EGenericTypeImpl(){ - this.eRawType = eJavaObject; -} - -defineClass(241, 115, {105:1, 92:1, 90:1, 87:1, 56:1, 108:1, 49:1, 97:1, 241:1, 114:1, 115:1}, EGenericTypeImpl); -_.eBasicSetContainer_0 = function eBasicSetContainer_6(newContainer, newContainerFeatureID, msgs){ - var newERawType; - msgs = $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); - if (!!this.eTypeParameter && instanceOf(newContainer, 170)) { - newERawType = $getErasure(this, this.eTypeParameter); - newERawType != this.eRawType && (msgs = $setERawType(this, newERawType, msgs)); - } - return msgs; -} -; -_.eGet = function eGet_26(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return this.eUpperBound; - case 1: - return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , this.eTypeArguments; - case 2: - if (resolve) - return $getERawType(this); - return this.eRawType; - case 3: - return this.eLowerBound; - case 4: - return this.eTypeParameter; - case 5: - if (resolve) - return $getEClassifier(this); - return this.eClassifier; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_19(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return $basicSetEUpperBound(this, null, msgs); - case 1: - return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , $basicRemove_0(this.eTypeArguments, otherEnd, msgs); - case 3: - return $basicSetELowerBound(this, null, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EGENERIC_TYPE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_25(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eUpperBound; - case 1: - return !!this.eTypeArguments && this.eTypeArguments.size_0 != 0; - case 2: - return !!this.eRawType; - case 3: - return !!this.eLowerBound; - case 4: - return !!this.eTypeParameter; - case 5: - return !!this.eClassifier; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); -} -; -_.eSet = function eSet_24(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - $setEUpperBound(this, castTo(newValue, 87)); - return; - case 1: - !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); - $clear_13(this.eTypeArguments); - !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); - $addAll_9(this.eTypeArguments, castTo(newValue, 14)); - return; - case 3: - $setELowerBound(this, castTo(newValue, 87)); - return; - case 4: - $setETypeParameter(this, castTo(newValue, 836)); - return; - case 5: - $setEClassifier(this, castTo(newValue, 138)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_25(){ - return $clinit_EcorePackage$Literals() , EGENERIC_TYPE; -} -; -_.eUnset = function eUnset_24(featureID){ - var eClass; - switch (featureID) { - case 0: - $setEUpperBound(this, null); - return; - case 1: - !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); - $clear_13(this.eTypeArguments); - return; - case 3: - $setELowerBound(this, null); - return; - case 4: - $setETypeParameter(this, null); - return; - case 5: - $setEClassifier(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); -} -; -_.toString_0 = function toString_152(){ - var result; - result = new StringBuilder_1($toString_16(this)); - result.string += ' (expression: '; - $toString_32(this, result); - result.string += ')'; - return result.string; -} -; -var eJavaObject; -var Lorg_eclipse_emf_ecore_impl_EGenericTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EGenericTypeImpl', 241); -function $addUnique_10(this$static, index_0, object){ - var iter; - iter = this$static.listIterator_1(index_0); - iter.add_1(object); -} - -defineClass(1969, 1964, $intern_157); -_.addUnique = function addUnique_18(index_0, object){ - $addUnique_10(this, index_0, object); -} -; -_.basicAdd = function basicAdd_3(object, notifications){ - $addUnique_10(this, this.size_1(), object); - return notifications; -} -; -_.basicGet = function basicGet_4(index_0){ - return $get_7(this.basicList(), index_0); -} -; -_.basicIterator = function basicIterator_5(){ - return this.basicListIterator(); -} -; -_.basicList = function basicList_1(){ - return new AbstractSequentialInternalEList$1(this); -} -; -_.basicListIterator = function basicListIterator_11(){ - return this.basicListIterator_0(0); -} -; -_.basicListIterator_0 = function basicListIterator_12(index_0){ - return this.basicList().listIterator_1(index_0); -} -; -_.basicRemove = function basicRemove_3(object, notifications){ - $advanceToFind(this, object, true); - return notifications; -} -; -_.move = function move_15(newPosition, oldPosition){ - var iter, movedObject; - movedObject = $remove_4(this, oldPosition); - iter = this.listIterator_1(newPosition); - iter.add_1(movedObject); - return movedObject; -} -; -_.move_0 = function move_16(newPosition, object){ - var iter; - $advanceToFind(this, object, true); - iter = this.listIterator_1(newPosition); - iter.add_1(object); -} -; -var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList', 1969); -function $clinit_EContentsEList(){ - $clinit_EContentsEList = emptyMethod; - EMPTY_CONTENTS_ELIST = new EContentsEList$1; -} - -function $isIncludedEntry(eStructuralFeature){ - return instanceOf(eStructuralFeature, 99) && (castTo(eStructuralFeature, 18).eFlags & $intern_134) != 0; -} - -function $iterator_1(this$static){ - var result; - if (this$static.eStructuralFeatures == null) { - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - result = this$static.resolve_0()?this$static.newResolvingListIterator():this$static.newNonResolvingListIterator(); - return result; -} - -function EContentsEList(eObject, eStructuralFeatures){ - $clinit_EContentsEList(); - this.eObject = eObject; - this.eStructuralFeatures = eStructuralFeatures; -} - -defineClass(486, 1969, $intern_157, EContentsEList); -_.basicGet = function basicGet_5(index_0){ - return $get_7(this.basicList(), index_0); -} -; -_.basicIterator = function basicIterator_6(){ - if (this.eStructuralFeatures == null) { - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - return this.newNonResolvingListIterator(); -} -; -_.basicList = function basicList_2(){ - return new EContentsEList$2(this.eObject, this.eStructuralFeatures); -} -; -_.basicListIterator = function basicListIterator_13(){ - if (this.eStructuralFeatures == null) { - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - return this.newNonResolvingListIterator(); -} -; -_.basicListIterator_0 = function basicListIterator_14(index_0){ - var i, result; - if (this.eStructuralFeatures == null) { - if (index_0 < 0 || index_0 > 1) { - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); - } - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - result = this.newNonResolvingListIterator(); - for (i = 0; i < index_0; ++i) { - $next_15(result); - } - return result; -} -; -_.isEmpty = function isEmpty_33(){ - var feature, featureMap, i, j, size_0, value_0; - if (this.eStructuralFeatures != null) { - for (i = 0; i < this.eStructuralFeatures.length; ++i) { - feature = this.eStructuralFeatures[i]; - if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { - value_0 = this.eObject.eGet_1(feature, false); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - featureMap = castTo(value_0, 153); - for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { - if ($isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null) { - return false; - } - } - } - else if (feature.isMany()) { - if (!castTo(value_0, 14).isEmpty()) { - return false; - } - } - else if (value_0 != null) { - return false; - } - } - } - } - return true; -} -; -_.iterator_0 = function iterator_88(){ - return $iterator_1(this); -} -; -_.listIterator_1 = function listIterator_30(index_0){ - var i, result; - if (this.eStructuralFeatures == null) { - if (index_0 != 0) { - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); - } - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - result = this.resolve_0()?this.newResolvingListIterator():this.newNonResolvingListIterator(); - for (i = 0; i < index_0; ++i) { - $next_15(result); - } - return result; -} -; -_.move = function move_17(newPosition, oldPosition){ - throw toJs(new UnsupportedOperationException); -} -; -_.move_0 = function move_18(newPosition, o){ - throw toJs(new UnsupportedOperationException); -} -; -_.newNonResolvingListIterator = function newNonResolvingListIterator(){ - return new EContentsEList$FeatureIteratorImpl(this.eObject, this.eStructuralFeatures); -} -; -_.newResolvingListIterator = function newResolvingListIterator(){ - return new EContentsEList$ResolvingFeatureIteratorImpl(this.eObject, this.eStructuralFeatures); -} -; -_.resolve_0 = function resolve_4(){ - return true; -} -; -_.size_1 = function size_76(){ - var feature, featureMap, i, j, result, size_0, value_0; - result = 0; - if (this.eStructuralFeatures != null) { - for (i = 0; i < this.eStructuralFeatures.length; ++i) { - feature = this.eStructuralFeatures[i]; - if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { - value_0 = this.eObject.eGet_1(feature, false); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - featureMap = castTo(value_0, 153); - for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { - $isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null && ++result; - } - } - else - feature.isMany()?(result += castTo(value_0, 14).size_1()):value_0 != null && ++result; - } - } - } - return result; -} -; -_.useIsSet = function useIsSet(){ - return true; -} -; -var EMPTY_CONTENTS_ELIST; -var Lorg_eclipse_emf_ecore_util_EContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList', 486); -function ENamedElementImpl$1($anonymous0, $anonymous1){ - $clinit_EContentsEList(); - EContentsEList.call(this, $anonymous0, $anonymous1); -} - -defineClass(1156, 486, $intern_157, ENamedElementImpl$1); -_.newNonResolvingListIterator = function newNonResolvingListIterator_0(){ - return new ENamedElementImpl$1$2(this.eObject, this.eStructuralFeatures); -} -; -_.newResolvingListIterator = function newResolvingListIterator_0(){ - return new ENamedElementImpl$1$1(this.eObject, this.eStructuralFeatures); -} -; -_.useIsSet = function useIsSet_0(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1', 1156); -function $clinit_EContentsEList$FeatureIteratorImpl(){ - $clinit_EContentsEList$FeatureIteratorImpl = emptyMethod; - EMPTY_ITERATOR = new EContentsEList$FeatureIteratorImpl$1; -} - -function $next_15(this$static){ - var result; - if (this$static.prepared > 1 || this$static.hasNext_0()) { - ++this$static.cursor; - this$static.prepared = 0; - result = this$static.preparedResult; - this$static.hasNext_0(); - return result; - } - else { - throw toJs(new NoSuchElementException); - } -} - -function $scanNext(this$static){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (this$static.valueListIndex < this$static.valueListSize) { - entry = castTo(!this$static.valueInternalEList?this$static.valueList.get_0(this$static.valueListIndex):this$static.valueInternalEList.basicGet(this$static.valueListIndex), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - return true; - } - else { - ++this$static.valueListIndex; - } - } - return false; - } - else { - return this$static.valueListIndex < this$static.valueListSize; - } -} - -function $scanNext_0(this$static, values){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (values.hasNext_0()) { - entry = castTo(values.next_1(), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - values.previous_0(); - return true; - } - } - return false; - } - else { - return values.hasNext_0(); - } -} - -function $scanPrevious(this$static){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (this$static.valueListIndex > 0) { - entry = castTo(this$static.valueList.get_0(this$static.valueListIndex - 1), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - return true; - } - else { - --this$static.valueListIndex; - } - } - return false; - } - else { - return this$static.valueListIndex > 0; - } -} - -function $scanPrevious_0(this$static, values){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (values.hasPrevious()) { - entry = castTo(values.previous_0(), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - values.next_1(); - return true; - } - } - return false; - } - else { - return values.hasPrevious(); - } -} - -function EContentsEList$FeatureIteratorImpl(eObject, eStructuralFeatures){ - $clinit_EContentsEList$FeatureIteratorImpl(); - this.eObject = eObject; - this.eStructuralFeatures = eStructuralFeatures; -} - -defineClass(279, 1, $intern_158, EContentsEList$FeatureIteratorImpl); -_.forEachRemaining = function forEachRemaining_57(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_64(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.filter_0 = function filter_3(featureFilter){ - if (this.prepared != 0 || !!this.featureFilter) { - throw toJs(new IllegalStateException_0('Iterator already in use or already filtered')); - } - this.featureFilter = featureFilter; -} -; -_.hasNext_0 = function hasNext_46(){ - var entry, feature, newPreparedResult, newValueList, result, value_0; - switch (this.prepared) { - case 3: - case 2: - { - return true; - } - - case 1: - { - return false; - } - - case -3: - { - !this.values?++this.valueListIndex:this.values.next_1(); - } - - default:{ - if (!this.valueList || (!this.values?!$scanNext(this):!$scanNext_0(this, this.values))) { - while (this.featureCursor < this.eStructuralFeatures.length) { - feature = this.eStructuralFeatures[this.featureCursor++]; - if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { - value_0 = this.eObject.eGet_1(feature, this.resolve_0()); - this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (this.isHandlingFeatureMap || feature.isMany()) { - if (this.resolve_0()) { - newValueList = castTo(value_0, 15); - this.valueList = newValueList; - } - else { - newValueList = castTo(value_0, 69); - this.valueList = this.valueInternalEList = newValueList; - } - if (instanceOf(this.valueList, 54)) { - this.values = null; - this.valueListSize = this.valueList.size_1(); - this.valueListIndex = 0; - } - else { - this.values = !this.valueInternalEList?this.valueList.listIterator_0():this.valueInternalEList.basicListIterator(); - } - if (!this.values?$scanNext(this):$scanNext_0(this, this.values)) { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = 3; - return true; - } - } - else if (value_0 != null) { - this.valueList = null; - this.values = null; - newPreparedResult = value_0; - this.preparedResult = newPreparedResult; - this.prepared = 2; - return true; - } - } - } - this.valueList = null; - this.values = null; - this.isHandlingFeatureMap = false; - this.prepared = 1; - return false; - } - else { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = 3; - return true; - } - } - - } -} -; -_.hasPrevious = function hasPrevious_9(){ - var entry, feature, newPreparedResult, newValueList, result, value_0; - switch (this.prepared) { - case -3: - case -2: - { - return true; - } - - case -1: - { - return false; - } - - case 3: - { - !this.values?--this.valueListIndex:this.values.previous_0(); - } - - default:{ - if (!this.valueList || (!this.values?!$scanPrevious(this):!$scanPrevious_0(this, this.values))) { - while (this.featureCursor > 0) { - feature = this.eStructuralFeatures[--this.featureCursor]; - if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { - value_0 = this.eObject.eGet_1(feature, this.resolve_0()); - this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (this.isHandlingFeatureMap || feature.isMany()) { - if (this.resolve_0()) { - newValueList = castTo(value_0, 15); - this.valueList = newValueList; - } - else { - newValueList = castTo(value_0, 69); - this.valueList = this.valueInternalEList = newValueList; - } - if (instanceOf(this.valueList, 54)) { - this.valueListSize = this.valueList.size_1(); - this.valueListIndex = this.valueListSize; - } - else { - this.values = !this.valueInternalEList?this.valueList.listIterator_1(this.valueList.size_1()):this.valueInternalEList.basicListIterator_0(this.valueList.size_1()); - } - if (!this.values?$scanPrevious(this):$scanPrevious_0(this, this.values)) { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = -3; - return true; - } - } - else if (value_0 != null) { - this.valueList = null; - this.values = null; - newPreparedResult = value_0; - this.preparedResult = newPreparedResult; - this.prepared = -2; - return true; - } - } - } - this.valueList = null; - this.values = null; - this.prepared = -1; - return false; - } - else { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = -3; - return true; - } - } - - } -} -; -_.next_1 = function next_47(){ - return $next_15(this); -} -; -_.nextIndex_0 = function nextIndex_10(){ - return this.cursor; -} -; -_.previous_0 = function previous_10(){ - var result; - if (this.prepared < -1 || this.hasPrevious()) { - --this.cursor; - this.prepared = 0; - result = this.preparedResult; - this.hasPrevious(); - return result; - } - else { - throw toJs(new NoSuchElementException); - } -} -; -_.previousIndex = function previousIndex_9(){ - return this.cursor - 1; -} -; -_.remove = function remove_125(){ - throw toJs(new UnsupportedOperationException); -} -; -_.resolve_0 = function resolve_5(){ - return false; -} -; -_.set_1 = function set_34(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.useIsSet = function useIsSet_1(){ - return true; -} -; -_.cursor = 0; -_.featureCursor = 0; -_.isHandlingFeatureMap = false; -_.prepared = 0; -_.valueListIndex = 0; -_.valueListSize = 0; -var EMPTY_ITERATOR; -var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl', 279); -function EContentsEList$ResolvingFeatureIteratorImpl(eObject, eStructuralFeatures){ - $clinit_EContentsEList$FeatureIteratorImpl(); - EContentsEList$FeatureIteratorImpl.call(this, eObject, eStructuralFeatures); -} - -defineClass(697, 279, $intern_158, EContentsEList$ResolvingFeatureIteratorImpl); -_.resolve_0 = function resolve_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$ResolvingFeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/ResolvingFeatureIteratorImpl', 697); -function ENamedElementImpl$1$1($anonymous0, $anonymous1){ - $clinit_EContentsEList$FeatureIteratorImpl(); - EContentsEList$ResolvingFeatureIteratorImpl.call(this, $anonymous0, $anonymous1); -} - -defineClass(1157, 697, $intern_158, ENamedElementImpl$1$1); -_.useIsSet = function useIsSet_2(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/1', 1157); -function ENamedElementImpl$1$2($anonymous0, $anonymous1){ - $clinit_EContentsEList$FeatureIteratorImpl(); - EContentsEList$FeatureIteratorImpl.call(this, $anonymous0, $anonymous1); -} - -defineClass(1158, 279, $intern_158, ENamedElementImpl$1$2); -_.useIsSet = function useIsSet_3(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/2', 1158); -function $$init_11(this$static){ -} - -function $getFeature(this$static){ - var eClass; - if (!this$static.feature && this$static.featureID != -1) { - eClass = this$static.notifier.eClass_0(); - this$static.feature = $getEStructuralFeature(eClass, this$static.featureID); - } - return this$static.feature; -} - -function ENotificationImpl(notifier, featureID, oldDoubleValue, newDoubleValue){ - NotificationImpl.call(this, 1, oldDoubleValue, newDoubleValue); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_0(notifier, featureID, oldIntValue, newIntValue){ - NotificationImpl_0.call(this, 1, oldIntValue, newIntValue); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_1(notifier, eventType, featureID, oldValue, newValue){ - ENotificationImpl_2.call(this, notifier, eventType, featureID, oldValue, newValue, -1); -} - -function ENotificationImpl_2(notifier, eventType, featureID, oldValue, newValue, position){ - NotificationImpl_1.call(this, eventType, oldValue, newValue, position); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_3(notifier, eventType, featureID, oldValue, newValue, position, wasSet){ - NotificationImpl_2.call(this, eventType, oldValue, newValue, position, wasSet); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_4(notifier, eventType, featureID, oldBooleanValue, newBooleanValue){ - NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_5(notifier, eventType, feature, oldByteValue, newByteValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldByteValue; - this.newSimplePrimitiveValue = newByteValue; - this.position = -1; - this.primitiveType = 1; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_6(notifier, eventType, feature, oldByteValue, newByteValue, isSetChange){ - ENotificationImpl_5.call(this, notifier, eventType, feature, oldByteValue, newByteValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_7(notifier, eventType, feature, oldCharValue, newCharValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldCharValue; - this.newSimplePrimitiveValue = newCharValue; - this.position = -1; - this.primitiveType = 2; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_8(notifier, eventType, feature, oldCharValue, newCharValue, isSetChange){ - ENotificationImpl_7.call(this, notifier, eventType, feature, oldCharValue, newCharValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_9(notifier, eventType, feature, oldDoubleValue, newDoubleValue){ - NotificationImpl.call(this, eventType, oldDoubleValue, newDoubleValue); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_10(notifier, eventType, feature, oldDoubleValue, newDoubleValue, isSetChange){ - ENotificationImpl_9.call(this, notifier, eventType, feature, oldDoubleValue, newDoubleValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_11(notifier, eventType, feature, oldFloatValue, newFloatValue){ - this.eventType = eventType; - this.oldIEEEPrimitiveValue = oldFloatValue; - this.newIEEEPrimitiveValue = newFloatValue; - this.position = -1; - this.primitiveType = 4; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_12(notifier, eventType, feature, oldFloatValue, newFloatValue, isSetChange){ - ENotificationImpl_11.call(this, notifier, eventType, feature, oldFloatValue, newFloatValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_13(notifier, eventType, feature, oldIntValue, newIntValue){ - NotificationImpl_0.call(this, eventType, oldIntValue, newIntValue); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_14(notifier, eventType, feature, oldIntValue, newIntValue, isSetChange){ - ENotificationImpl_13.call(this, notifier, eventType, feature, oldIntValue, newIntValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_15(notifier, eventType, feature, oldLongValue, newLongValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldLongValue; - this.newSimplePrimitiveValue = newLongValue; - this.position = -1; - this.primitiveType = 6; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_16(notifier, eventType, feature, oldLongValue, newLongValue, isSetChange){ - ENotificationImpl_15.call(this, notifier, eventType, feature, oldLongValue, newLongValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue){ - ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, -1); -} - -function ENotificationImpl_18(notifier, eventType, feature, oldValue, newValue, position){ - NotificationImpl_1.call(this, eventType, oldValue, newValue, position); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, isSetChange){ - ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, isSetChange?-2:-1); -} - -function ENotificationImpl_20(notifier, eventType, feature, oldShortValue, newShortValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldShortValue; - this.newSimplePrimitiveValue = newShortValue; - this.position = -1; - this.primitiveType = 7; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_21(notifier, eventType, feature, oldShortValue, newShortValue, isSetChange){ - ENotificationImpl_20.call(this, notifier, eventType, feature, oldShortValue, newShortValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_22(notifier, eventType, feature, oldBooleanValue, newBooleanValue){ - NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_23(notifier, eventType, feature, oldBooleanValue, newBooleanValue, isSetChange){ - ENotificationImpl_22.call(this, notifier, eventType, feature, oldBooleanValue, newBooleanValue); - isSetChange && (this.position = -2); -} - -defineClass(36, 143, $intern_142, ENotificationImpl, ENotificationImpl_0, ENotificationImpl_1, ENotificationImpl_2, ENotificationImpl_3, ENotificationImpl_4, ENotificationImpl_5, ENotificationImpl_6, ENotificationImpl_7, ENotificationImpl_8, ENotificationImpl_9, ENotificationImpl_10, ENotificationImpl_11, ENotificationImpl_12, ENotificationImpl_13, ENotificationImpl_14, ENotificationImpl_15, ENotificationImpl_16, ENotificationImpl_17, ENotificationImpl_18, ENotificationImpl_19, ENotificationImpl_20, ENotificationImpl_21, ENotificationImpl_22, ENotificationImpl_23); -_.getFeature = function getFeature_6(){ - return $getFeature(this); -} -; -_.getFeatureDefaultValue = function getFeatureDefaultValue_0(){ - var feature; - feature = $getFeature(this); - if (feature) { - return feature.getDefaultValue(); - } - return null; -} -; -_.getFeatureID = function getFeatureID_10(expectedClass){ - this.featureID == -1 && !!this.feature && (this.featureID = this.notifier.eDerivedStructuralFeatureID(this.feature.getFeatureID_0(), this.feature.getContainerClass())); - return this.notifier.eBaseStructuralFeatureID(this.featureID, expectedClass); -} -; -_.getNotifier = function getNotifier_6(){ - return this.notifier; -} -; -_.isFeatureUnsettable = function isFeatureUnsettable_0(){ - var feature; - feature = $getFeature(this); - if (feature) { - return feature.isUnsettable(); - } - return false; -} -; -_.featureID = -1; -var Lorg_eclipse_emf_ecore_impl_ENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENotificationImpl', 36); -function $eBasicRemoveFromContainerFeature_9(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 10) { - return this$static.eContainer.eInverseRemove(this$static, 11, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getEGenericExceptions(this$static){ - if (!this$static.eGenericExceptions) { - this$static.eGenericExceptions = new EOperationImpl$2(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); - !this$static.eExceptions && (this$static.eExceptions = new EOperationImpl$1(this$static, this$static)); - } - return this$static.eGenericExceptions; -} - -function $isSetEExceptions(this$static){ - return !!this$static.eExceptions && $getEGenericExceptions(this$static.eExceptions.this$01).size_0 != 0 && !(!!this$static.eGenericExceptions && $isSet_0(this$static.eGenericExceptions)); -} - -function EOperationImpl(){ - ETypedElementImpl.call(this); -} - -defineClass(399, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 59:1, 108:1, 472:1, 49:1, 97:1, 150:1, 399:1, 284:1, 114:1, 115:1}, EOperationImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_10(msgs){ - return $eBasicRemoveFromContainerFeature_9(this, msgs); -} -; -_.eGet = function eGet_27(featureID, resolve, coreType){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null; - case 11: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , this.eTypeParameters; - case 12: - return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , this.eParameters; - case 13: - return !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)) , this.eExceptions; - case 14: - return $getEGenericExceptions(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_17(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 10: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_9(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 10, msgs); - case 12: - return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicAdd_0(this.eParameters, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_20(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - case 10: - return $eBasicSetContainer(this, null, 10, msgs); - case 11: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - case 12: - return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicRemove_0(this.eParameters, otherEnd, msgs); - case 14: - return $basicRemove_0($getEGenericExceptions(this), otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_26(featureID){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return upper = this.upperBound , upper > 1 || upper == -1; - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null); - case 11: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 12: - return !!this.eParameters && this.eParameters.size_0 != 0; - case 13: - return !!this.eExceptions && $getEGenericExceptions(this.eExceptions.this$01).size_0 != 0 && !(!!this.eGenericExceptions && $isSet_0(this.eGenericExceptions)); - case 14: - return !!this.eGenericExceptions && $isSet_0(this.eGenericExceptions); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); -} -; -_.eSet = function eSet_25(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - $setUpperBound(this, castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 11: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 12: - !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); - $clear_13(this.eParameters); - !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); - $addAll_9(this.eParameters, castTo(newValue, 14)); - return; - case 13: - !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); - $clear_12(this.eExceptions); - !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); - $addAll_9(this.eExceptions, castTo(newValue, 14)); - return; - case 14: - $clear_13($getEGenericExceptions(this)); - $addAll_9($getEGenericExceptions(this), castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_26(){ - return $clinit_EcorePackage$Literals() , EOPERATION; -} -; -_.eUnset = function eUnset_25(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - $setUpperBound(this, 1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 11: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); - $clear_13(this.eTypeParameters); - return; - case 12: - !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); - $clear_13(this.eParameters); - return; - case 13: - !!this.eExceptions && $clear_12(this.eExceptions); - return; - case 14: - !!this.eGenericExceptions && $clear_13(this.eGenericExceptions); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); -} -; -_.freeze = function freeze_7(){ - var i, size_0; - if (this.eParameters) { - for (i = 0 , size_0 = this.eParameters.size_0; i < size_0; ++i) { - $freeze($get_20(this.eParameters, i)); - } - } - $getEType(this); - this.eFlags |= 1; -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl', 399); -function $delegateAdd_1(this$static, index_0, eClassifier){ - $add_20($getEGenericExceptions(this$static.this$01), index_0, $wrap_1(eClassifier)); -} - -function $delegateAdd_2(this$static, eClassifier){ - $add_21($getEGenericExceptions(this$static.this$01), $wrap_1(eClassifier)); -} - -function $delegateContains_0(this$static, object){ - var eClassifier, eClassifier$iterator; - for (eClassifier$iterator = new AbstractEList$EIterator(this$static); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { - eClassifier = castTo($doNext(eClassifier$iterator), 138); - if (maskUndefined(object) === maskUndefined(eClassifier)) { - return true; - } - } - return false; -} - -function $delegateSet_0(this$static, index_0, eClassifier){ - var eGenericType, result, result0; - eGenericType = castTo($get_20($getEGenericExceptions(this$static.this$01), index_0), 87); - result0 = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - (result0.eIsProxy()?$eResolveProxy(this$static.owner, castTo(result0, 49)):result0) == eClassifier?$getERawType(eGenericType):$setEClassifier(eGenericType, eClassifier); - return result0; -} - -function $wrap_1(eClassifier){ - var eGenericType, eGenericType0; - eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(eGenericType0, eClassifier); - return eGenericType0; -} - -function EOperationImpl$1(this$0, $anonymous0){ - this.this$01 = this$0; - DelegatingEcoreEList.call(this, $anonymous0); -} - -defineClass(505, 742, $intern_156, EOperationImpl$1); -_.delegateAdd = function delegateAdd_3(index_0, eClassifier){ - $delegateAdd_1(this, index_0, castTo(eClassifier, 138)); -} -; -_.delegateAdd_0 = function delegateAdd_4(eClassifier){ - $delegateAdd_2(this, castTo(eClassifier, 138)); -} -; -_.delegateGet = function delegateGet_1(index_0){ - var eGenericType, result; - return eGenericType = castTo($get_20($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); -} -; -_.delegateRemove = function delegateRemove_1(index_0){ - var eGenericType, result; - return eGenericType = castTo($remove_35($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); -} -; -_.delegateSet = function delegateSet_1(index_0, eClassifier){ - return $delegateSet_0(this, index_0, castTo(eClassifier, 138)); -} -; -_.canContainNull = function canContainNull_5(){ - return false; -} -; -_.createNotification = function createNotification_5(eventType, oldObject, newObject, index_0, wasSet){ - return null; -} -; -_.delegateBasicList = function delegateBasicList_1(){ - return new EOperationImpl$1$1(this); -} -; -_.delegateClear = function delegateClear_1(){ - $clear_13($getEGenericExceptions(this.this$01)); -} -; -_.delegateContains = function delegateContains_1(object){ - return $delegateContains_0(this, object); -} -; -_.delegateContainsAll = function delegateContainsAll_1(collection){ - var object, object$iterator; - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$delegateContains_0(this, object)) { - return false; - } - } - return true; -} -; -_.delegateEquals = function delegateEquals_1(object){ - var i, j, list; - if (instanceOf(object, 15)) { - list = castTo(object, 15); - if (list.size_1() == $getEGenericExceptions(this.this$01).size_0) { - for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { - if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { - return false; - } - } - return true; - } - } - return false; -} -; -_.delegateHashCode = function delegateHashCode_1(){ - var eGenericType, eGenericType$iterator, hashCode, object, result; - hashCode = 1; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - object = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - hashCode = 31 * hashCode + (!object?0:hashCode__I__devirtual$(object)); - } - return hashCode; -} -; -_.delegateIndexOf = function delegateIndexOf_1(object){ - var eGenericType, eGenericType$iterator, index_0, result; - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))) { - return index_0; - } - ++index_0; - } - return -1; -} -; -_.delegateIsEmpty = function delegateIsEmpty_1(){ - return $getEGenericExceptions(this.this$01).size_0 == 0; -} -; -_.delegateList_1 = function delegateList_3(){ - return null; -} -; -_.delegateSize = function delegateSize_1(){ - return $getEGenericExceptions(this.this$01).size_0; -} -; -_.delegateToArray = function delegateToArray_3(){ - var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; - size_0 = $getEGenericExceptions(this.this$01).size_0; - result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - result0[index_0++] = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - } - return result0; -} -; -_.delegateToArray_0 = function delegateToArray_4(array){ - var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; - size_0 = $getEGenericExceptions(this.this$01).size_0; - if (array.length < size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); - array = newArray; - } - array.length > size_0 && setCheck(array, size_0, null); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - rawType = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - setCheck(array, index_0++, rawType); - } - return array; -} -; -_.delegateToString = function delegateToString_1(){ - var eGenericExceptions, i, result, size_0, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - eGenericExceptions = $getEGenericExceptions(this.this$01); - for (i = 0 , size_0 = $getEGenericExceptions(this.this$01).size_0; i < size_0;) { - $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericExceptions, i), 87).eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))); - ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} -; -_.dispatchNotification = function dispatchNotification_4(notification){ -} -; -_.getFeatureID_0 = function getFeatureID_11(){ - return 13; -} -; -_.hasInstanceClass = function hasInstanceClass_2(){ - return true; -} -; -_.hasInverse = function hasInverse_5(){ - return false; -} -; -_.hasManyInverse = function hasManyInverse_2(){ - return false; -} -; -_.hasNavigableInverse = function hasNavigableInverse_3(){ - return false; -} -; -_.hasProxies = function hasProxies_2(){ - return true; -} -; -_.isContainment = function isContainment_5(){ - return false; -} -; -_.isEObject = function isEObject_3(){ - return true; -} -; -_.isInstance = function isInstance_5(object){ - return instanceOf(object, 138); -} -; -_.isSet_0 = function isSet_9(){ - return $isSetEExceptions(this.this$01); -} -; -_.isUnique = function isUnique_6(){ - return true; -} -; -_.useEquals = function useEquals_12(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1', 505); -function EOperationImpl$1$1(this$1){ - this.this$11 = this$1; -} - -defineClass(1340, 1964, $intern_37, EOperationImpl$1$1); -_.listIterator_1 = function listIterator_31(index_0){ - return $basicListIterator(this.this$11, index_0); -} -; -_.size_1 = function size_77(){ - return $getEGenericExceptions(this.this$11.this$01).size_0; -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1/1', 1340); -function $isSet_0(this$static){ - var eGenericType, eGenericType$iterator; - for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { - return true; - } - } - return false; -} - -function $shadowAdd_0(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 3, 13, null, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowRemove_0(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 4, 13, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), null, $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowSet_0(this$static, oldEGenericType, newEGenericType, notifications){ - var notification, result, result0; - notification = new ENotificationImpl_3(this$static.owner, 1, 13, (result0 = oldEGenericType.eRawType , result0?result0:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), (result = newEGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, oldEGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function EOperationImpl$2(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 14); -} - -defineClass(1341, 545, $intern_154, EOperationImpl$2); -_.move = function move_19(targetIndex, sourceIndex){ - var result0, result; - return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , EOPERATION__EEXCEPTIONS), valueOf_4(sourceIndex), (result = result0.eRawType , result?result:EJAVA_OBJECT), targetIndex)) , result0; -} -; -_.shadowAdd = function shadowAdd_1(eGenericType, notifications){ - return $shadowAdd_0(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowRemove = function shadowRemove_1(eGenericType, notifications){ - return $shadowRemove_0(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowSet = function shadowSet_1(oldEGenericType, newEGenericType, notifications){ - return $shadowSet_0(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); -} -; -_.createNotification = function createNotification_6(eventType, oldObject, newObject, index_0, wasSet){ - switch (eventType) { - case 3: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); - } - - case 5: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); - } - - default:{ - return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); - } - - } -} -; -_.hasShadow = function hasShadow_1(){ - return true; -} -; -_.isSet_0 = function isSet_10(){ - return $isSet_0(this); -} -; -_.unset = function unset_6(){ - $clear_13(this); -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/2', 1341); -function EPackageImpl$1(this$0, val$factory){ - this.this$01 = this$0; - this.val$factory2 = val$factory; -} - -defineClass(498, 1, {1938:1, 498:1}, EPackageImpl$1); -var Lorg_eclipse_emf_ecore_impl_EPackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/1', 498); -function EObjectContainmentWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentEList.call(this, dataClass, owner, featureID); - this.inverseFeatureID = inverseFeatureID; -} - -defineClass(16, 85, $intern_154, EObjectContainmentWithInverseEList); -_.getInverseFeatureClass = function getInverseFeatureClass_0(){ - return this.dataClass; -} -; -_.getInverseFeatureID = function getInverseFeatureID_0(){ - return this.inverseFeatureID; -} -; -_.hasNavigableInverse = function hasNavigableInverse_4(){ - return true; -} -; -_.inverseFeatureID = 0; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList', 16); -function EObjectContainmentWithInverseEList$Resolving(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(353, 16, $intern_154, EObjectContainmentWithInverseEList$Resolving); -_.hasProxies = function hasProxies_3(){ - return true; -} -; -_.resolve = function resolve_7(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Resolving', 353); -function EPackageImpl$2(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentWithInverseEList$Resolving.call(this, $anonymous0, $anonymous1, 5, 6); -} - -defineClass(298, 353, $intern_154, EPackageImpl$2); -_.didChange = function didChange_1(){ - this.this$01.eNameToEClassifierMap = null; -} -; -var Lorg_eclipse_emf_ecore_impl_EPackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/2', 298); -function EPackageImpl$3(){ -} - -defineClass(1228, 1, {}, EPackageImpl$3); -var Lorg_eclipse_emf_ecore_impl_EPackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/3', 1228); -function $getEFactory(this$static, nsURI){ - var ePackage, ePackageDescriptor, result; - ePackage = $get_15(this$static.stringMap, nsURI); - if (instanceOf(ePackage, 235)) { - result = castTo(ePackage, 235); - result.getNsURI() == null && undefined; - return result.getEFactoryInstance(); - } - else if (instanceOf(ePackage, 498)) { - ePackageDescriptor = castTo(ePackage, 1938); - result = ePackageDescriptor.val$factory2; - return result; - } - else { - return null; - } -} - -function $getEPackage_0(this$static, nsURI){ - var ePackage, ePackageDescriptor, result; - ePackage = nsURI == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, nsURI); - if (instanceOf(ePackage, 235)) { - result = castTo(ePackage, 235); - result.getNsURI() == null && undefined; - return result; - } - else if (instanceOf(ePackage, 498)) { - ePackageDescriptor = castTo(ePackage, 1938); - result = ePackageDescriptor.this$01; - !!result && (result.nsURI == null?undefined:nsURI == null?$put_9(this$static.hashCodeMap, null, result):$put_10(this$static.stringMap, nsURI, result)); - return result; - } - else { - return null; - } -} - -function EPackageRegistryImpl(){ - HashMap.call(this); -} - -defineClass(718, 43, $intern_76, EPackageRegistryImpl); -_.containsKey = function containsKey_16(key){ - return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); -} -; -var Lorg_eclipse_emf_ecore_impl_EPackageRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageRegistryImpl', 718); -function $eBasicRemoveFromContainerFeature_10(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 10) { - return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_emf_ecore_EOperation_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function EParameterImpl(){ - ETypedElementImpl.call(this); -} - -defineClass(509, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 2017:1, 108:1, 472:1, 49:1, 97:1, 150:1, 509:1, 284:1, 114:1, 115:1}, EParameterImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_11(msgs){ - return $eBasicRemoveFromContainerFeature_10(this, msgs); -} -; -_.eGet = function eGet_28(featureID, resolve, coreType){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_18(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 10: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_10(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 10, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_21(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - case 10: - return $eBasicSetContainer(this, null, 10, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_27(featureID){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return upper = this.upperBound , upper > 1 || upper == -1; - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID)); -} -; -_.eStaticClass = function eStaticClass_27(){ - return $clinit_EcorePackage$Literals() , EPARAMETER; -} -; -var Lorg_eclipse_emf_ecore_impl_EParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EParameterImpl', 509); -function $basicGetEReferenceType(this$static){ - var eType; - if (!this$static.eReferenceType) { - eType = this$static.eType; - instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); - } - return this$static.eReferenceType; -} - -function $getEOpposite(this$static){ - var oldEOpposite; - if (!!this$static.eOpposite && (this$static.eOpposite.eFlags_0 & 64) != 0) { - oldEOpposite = this$static.eOpposite; - this$static.eOpposite = castTo($eResolveProxy(this$static, oldEOpposite), 18); - this$static.eOpposite != oldEOpposite && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 21, oldEOpposite, this$static.eOpposite)); - } - return this$static.eOpposite; -} - -function $getEReferenceType(this$static){ - var eType; - if (!this$static.eReferenceType || (this$static.eFlags & 1) == 0 && (this$static.eReferenceType.eFlags_0 & 64) != 0) { - eType = $getEType(this$static); - instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); - } - return this$static.eReferenceType; -} - -function $setContainment(this$static, value_0){ - $setContainmentGen(this$static, value_0); - instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 2); -} - -function $setContainmentGen(this$static, newContainment){ - var oldContainment; - oldContainment = (this$static.eFlags & $intern_134) != 0; - newContainment?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldContainment, newContainment)); -} - -function $setEOpposite(this$static, newEOpposite){ - var oldEOpposite; - oldEOpposite = this$static.eOpposite; - this$static.eOpposite = newEOpposite; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 21, oldEOpposite, this$static.eOpposite)); -} - -function $setResolveProxies(this$static, newResolveProxies){ - var oldResolveProxies; - oldResolveProxies = (this$static.eFlags & $intern_63) != 0; - newResolveProxies?(this$static.eFlags |= $intern_63):(this$static.eFlags &= -65537); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 20, oldResolveProxies, newResolveProxies)); -} - -function EReferenceImpl(){ - EStructuralFeatureImpl.call(this); - this.eFlags |= $intern_63; -} - -defineClass(99, 449, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 18:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 99:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EReferenceImpl); -_.eGet = function eGet_29(featureID, resolve, coreType){ - var eClass, lower, theOpposite, upper; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; - case 11: - return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; - case 12: - return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; - case 13: - return this.defaultValueLiteral; - case 14: - return $getDefaultValue(this); - case 15: - return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; - case 16: - return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; - case 17: - return $getEContainingClass(this); - case 18: - return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; - case 19: - return $clinit_Boolean() , theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0?true:false; - case 20: - return $clinit_Boolean() , (this.eFlags & $intern_63) != 0?true:false; - case 21: - if (resolve) - return $getEOpposite(this); - return this.eOpposite; - case 22: - if (resolve) - return $getEReferenceType(this); - return $basicGetEReferenceType(this); - case 23: - return !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)) , this.eKeys; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_28(featureID){ - var eClass, lower, theOpposite, upper; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return upper = this.upperBound , upper > 1 || upper == -1; - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return (this.eFlags & $intern_137) == 0; - case 11: - return (this.eFlags & $intern_150) != 0; - case 12: - return (this.eFlags & $intern_61) != 0; - case 13: - return this.defaultValueLiteral != null; - case 14: - return $getDefaultValue(this) != null; - case 15: - return (this.eFlags & $intern_149) != 0; - case 16: - return (this.eFlags & $intern_17) != 0; - case 17: - return !!$getEContainingClass(this); - case 18: - return (this.eFlags & $intern_134) != 0; - case 19: - return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; - case 20: - return (this.eFlags & $intern_63) == 0; - case 21: - return !!this.eOpposite; - case 22: - return !!$basicGetEReferenceType(this); - case 23: - return !!this.eKeys && this.eKeys.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); -} -; -_.eSet = function eSet_26(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_0(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - $setUpperBound(this, castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, $booleanValue(castToBoolean(newValue))); - return; - case 11: - $setVolatile(this, $booleanValue(castToBoolean(newValue))); - return; - case 12: - $setTransient(this, $booleanValue(castToBoolean(newValue))); - return; - case 13: - $setDefaultValueLiteral(this, castToString(newValue)); - return; - case 15: - $setUnsettable(this, $booleanValue(castToBoolean(newValue))); - return; - case 16: - $setDerived(this, $booleanValue(castToBoolean(newValue))); - return; - case 18: - $setContainment(this, $booleanValue(castToBoolean(newValue))); - return; - case 20: - $setResolveProxies(this, $booleanValue(castToBoolean(newValue))); - return; - case 21: - $setEOpposite(this, castTo(newValue, 18)); - return; - case 23: - !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); - $clear_13(this.eKeys); - !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); - $addAll_9(this.eKeys, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_28(){ - return $clinit_EcorePackage$Literals() , EREFERENCE; -} -; -_.eUnset = function eUnset_26(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - $setUpperBound(this, 1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, true); - return; - case 11: - $setVolatile(this, false); - return; - case 12: - $setTransient(this, false); - return; - case 13: - this.defaultValueFactory = null; - $setDefaultValueLiteralGen(this, null); - return; - case 15: - $setUnsettable(this, false); - return; - case 16: - $setDerived(this, false); - return; - case 18: - $setContainmentGen(this, false); - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 2); - return; - case 20: - $setResolveProxies(this, true); - return; - case 21: - $setEOpposite(this, null); - return; - case 23: - !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); - $clear_13(this.eKeys); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); -} -; -_.freeze = function freeze_8(){ - $getEReferenceType(this); - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); - $getEType(this); - this.eFlags |= 1; -} -; -_.getEOpposite = function getEOpposite_0(){ - return $getEOpposite(this); -} -; -_.isContainer = function isContainer_0(){ - var theOpposite; - return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; -} -; -_.isContainment = function isContainment_6(){ - return (this.eFlags & $intern_134) != 0; -} -; -_.isResolveProxies_0 = function isResolveProxies_1(){ - return (this.eFlags & $intern_63) != 0; -} -; -_.setEType = function setEType_1(newEType, msgs){ - this.eReferenceType = null; - return $setEType_0(this, newEType, msgs); -} -; -_.toString_0 = function toString_153(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_29(this); - result = new StringBuffer_1($toString_29(this)); - result.string += ' (containment: '; - $append_4(result, (this.eFlags & $intern_134) != 0); - result.string += ', resolveProxies: '; - $append_4(result, (this.eFlags & $intern_63) != 0); - result.string += ')'; - return result.string; -} -; -var Lorg_eclipse_emf_ecore_impl_EReferenceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EReferenceImpl', 99); -function $setKey(this$static, key){ - $setTypedKeyGen(this$static, key == null?null:(checkCriticalNotNull(key) , key)); -} - -function $setTypedKey_0(this$static, newKey){ - $setTypedKeyGen(this$static, newKey == null?null:(checkCriticalNotNull(newKey) , newKey)); -} - -function $setTypedKeyGen(this$static, newKey){ - var oldKey; - oldKey = this$static.key; - this$static.key = newKey; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); -} - -function $setTypedValue_0(this$static, newValue){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = newValue; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); -} - -function $setValue_2(this$static, value_0){ - var oldValue; - oldValue = this$static.value_0; - $setTypedValue_0(this$static, value_0); - return oldValue; -} - -function EStringToStringMapEntryImpl(){ -} - -defineClass(548, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 548:1, 114:1, 115:1}, EStringToStringMapEntryImpl); -_.equals_0 = function equals_196(other){ - return this === other; -} -; -_.getKey = function getKey_11(){ - return this.key; -} -; -_.getValue = function getValue_14(){ - return this.value_0; -} -; -_.hashCode_1 = function hashCode_82(){ - return getHashCode_0(this); -} -; -_.setKey = function setKey_2(key){ - $setKey(this, castToString(key)); -} -; -_.setValue = function setValue_14(value_0){ - return $setValue_2(this, castToString(value_0)); -} -; -_.eGet = function eGet_30(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return this.key; - case 1: - return this.value_0; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_29(featureID){ - var eClass; - switch (featureID) { - case 0: - return this.key != null; - case 1: - return this.value_0 != null; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); -} -; -_.eSet = function eSet_27(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - $setTypedKey_0(this, castToString(newValue)); - return; - case 1: - $setTypedValue_0(this, castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_29(){ - return $clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY; -} -; -_.eUnset = function eUnset_27(featureID){ - var eClass; - switch (featureID) { - case 0: - $setTypedKeyGen(this, null); - return; - case 1: - $setTypedValue_0(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); -} -; -_.getHash = function getHash_2(){ - var theKey; - if (this.hash == -1) { - theKey = this.key; - this.hash = theKey == null?0:getHashCode_1(theKey); - } - return this.hash; -} -; -_.setHash = function setHash_2(hash){ - this.hash = hash; -} -; -_.toString_0 = function toString_154(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (key: '; - $append_3(result, this.key); - result.string += ', value: '; - $append_3(result, this.value_0); - result.string += ')'; - return result.string; -} -; -_.hash = -1; -_.key = null; -_.value_0 = null; -var Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStringToStringMapEntryImpl', 548); -var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry/Internal'); -function $validate_2(this$static, value_0){ - var valueClass; - if (value_0 != null && !this$static.eStructuralFeature.getEType().isInstance(value_0)) { - valueClass = instanceOf(value_0, 56)?castTo(value_0, 56).eClass_0().name_0:$getName(getClass__Ljava_lang_Class___devirtual$(value_0)); - throw toJs(new ClassCastException_0("The feature '" + this$static.eStructuralFeature.getName() + "'s type '" + this$static.eStructuralFeature.getEType().getName() + "' does not permit a value of type '" + valueClass + "'")); - } -} - -function EStructuralFeatureImpl$BasicFeatureMapEntry(eStructuralFeature){ - this.eStructuralFeature = eStructuralFeature; -} - -defineClass(565, 1, $intern_159); -_.createEntry = function createEntry(value_0){ - return this.createEntry_0(castTo(value_0, 49)); -} -; -_.createEntry_0 = function createEntry_0(value_0){ - return this.createEntry(value_0); -} -; -_.equals_0 = function equals_197(that){ - var entry, value_0; - if (this === that) { - return true; - } - else if (instanceOf(that, 72)) { - entry = castTo(that, 72); - if (entry.getEStructuralFeature() == this.eStructuralFeature) { - value_0 = this.getValue(); - return value_0 == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue()); - } - else { - return false; - } - } - else { - return false; - } -} -; -_.getEStructuralFeature = function getEStructuralFeature_1(){ - return this.eStructuralFeature; -} -; -_.hashCode_1 = function hashCode_83(){ - var value_0; - value_0 = this.getValue(); - return hashCode__I__devirtual$(this.eStructuralFeature) ^ (value_0 == null?0:hashCode__I__devirtual$(value_0)); -} -; -_.toString_0 = function toString_155(){ - var eStructuralFeature, prefix; - eStructuralFeature = this.eStructuralFeature; - prefix = $getEPackage(eStructuralFeature.getEContainingClass()).getNsPrefix(); - eStructuralFeature.getName(); - return (prefix != null && prefix.length != 0?prefix + ':' + eStructuralFeature.getName():eStructuralFeature.getName()) + '=' + this.getValue(); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$BasicFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/BasicFeatureMapEntry', 565); -function $inverseAdd(this$static, owner, otherEnd, featureID, notifications){ - var containmentFeatureID; - if (otherEnd) { - containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); - notifications = otherEnd.eInverseAdd(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); - } - return notifications; -} - -function $inverseRemove(this$static, owner, otherEnd, featureID, notifications){ - var containmentFeatureID; - if (otherEnd) { - containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); - notifications = otherEnd.eInverseRemove(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); - } - return notifications; -} - -function EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(eStructuralFeature, value_0){ - EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); - this.value_0 = value_0; -} - -defineClass(776, 565, $intern_159, EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry); -_.createEntry_0 = function createEntry_1(value_0){ - return new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this.eStructuralFeature, value_0); -} -; -_.getValue = function getValue_15(){ - return this.value_0; -} -; -_.inverseAdd_0 = function inverseAdd_3(owner, featureID, notifications){ - return $inverseAdd(this, owner, this.value_0, featureID, notifications); -} -; -_.inverseRemove_0 = function inverseRemove_3(owner, featureID, notifications){ - return $inverseRemove(this, owner, this.value_0, featureID, notifications); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry', 776); -function EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(feature, featureMapFeature){ - this.feature = feature; - this.featureMapFeature = featureMapFeature; -} - -defineClass(1314, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator); -_.dynamicGet_0 = function dynamicGet_3(owner, settings, index_0, resolve, coreType){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.setting(this.feature).get_6(resolve); -} -; -_.dynamicInverseAdd = function dynamicInverseAdd(owner, settings, index_0, otherEnd, notifications){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.basicAdd_0(this.feature, otherEnd, notifications); -} -; -_.dynamicInverseRemove = function dynamicInverseRemove(owner, settings, index_0, otherEnd, notifications){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.basicRemove_0(this.feature, otherEnd, notifications); -} -; -_.dynamicIsSet = function dynamicIsSet(owner, settings, index_0){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.setting(this.feature).isSet_0(); -} -; -_.dynamicSet_0 = function dynamicSet_3(owner, settings, index_0, newValue){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - featureMap.setting(this.feature).set_1(newValue); -} -; -_.dynamicSetting = function dynamicSetting(owner, settings, index_0){ - return castTo($eGet_0(owner, this.featureMapFeature), 215).setting(this.feature); -} -; -_.dynamicUnset_0 = function dynamicUnset_3(owner, settings, index_0){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - featureMap.setting(this.feature).unset(); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator', 1314); -function $createDynamicSetting(this$static, owner){ - switch (this$static.style) { - case 0: - case 2: - case 4: - case 6: - case 42: - case 44: - case 46: - case 48: - case 8: - case 10: - case 12: - case 14: - case 16: - case 18: - case 20: - case 22: - case 24: - case 26: - case 28: - case 30: - case 32: - case 34: - case 36: - case 38: - return new EcoreEList$Dynamic(this$static.dynamicKind, this$static.dataClass, owner, this$static.feature); - case 1: - return new EObjectContainmentEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 43: - return new EObjectContainmentEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 3: - return new EObjectContainmentEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 45: - return new EObjectContainmentEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 41: - return new EcoreEMap(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 50: - return new EcoreEMap$Unsettable(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 5: - return new EObjectContainmentWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 47: - return new EObjectContainmentWithInverseEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 7: - return new EObjectContainmentWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 49: - return new EObjectContainmentWithInverseEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 9: - return new EDataTypeUniqueEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 11: - return new EDataTypeUniqueEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 13: - return new EDataTypeEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 15: - return new EDataTypeEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 17: - return new EObjectResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 19: - return new EObjectResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 21: - return new EObjectEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 23: - return new EObjectEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 25: - return new EObjectWithInverseResolvingEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 27: - return new EObjectWithInverseResolvingEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 29: - return new EObjectWithInverseEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 31: - return new EObjectWithInverseEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 33: - return new EObjectWithInverseResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 35: - return new EObjectWithInverseResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 37: - return new EObjectWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 39: - return new EObjectWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 40: - return new BasicFeatureMap(owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - default:throw toJs(new RuntimeException_0('Unknown feature style: ' + this$static.style)); - } -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany(style, dataClass, feature){ - this.style = style; - this.dataClass = dataClass; - this.feature = feature; -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany_0(style, dataClass, feature, inverseFeature){ - this.style = style; - this.dataClass = dataClass; - this.feature = feature; - this.inverseFeature = inverseFeature; -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany_1(style, feature){ - this.style = style; - this.dataClass = Ljava_lang_Object_2_classLit; - this.dynamicKind = kind_0(feature); - this.feature = feature; -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany_2(style, feature, inverseFeature){ - this.style = style; - this.dataClass = Ljava_lang_Object_2_classLit; - this.dynamicKind = kind_0(feature); - this.feature = feature; - this.inverseFeature = inverseFeature; -} - -defineClass(89, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateMany, EStructuralFeatureImpl$InternalSettingDelegateMany_0, EStructuralFeatureImpl$InternalSettingDelegateMany_1, EStructuralFeatureImpl$InternalSettingDelegateMany_2); -_.dynamicGet_0 = function dynamicGet_4(owner, settings, index_0, resolve, coreType){ - var result; - result = settings.dynamicGet(index_0); - result == null && settings.dynamicSet(index_0, result = $createDynamicSetting(this, owner)); - if (!coreType) { - switch (this.style) { - case 50: - case 41: - return castTo(result, 589).map_2(); - case 40: - return castTo(result, 215).getWrapper(); - } - } - return result; -} -; -_.dynamicInverseAdd = function dynamicInverseAdd_0(owner, settings, index_0, otherEnd, notifications){ - var result, setting; - setting = settings.dynamicGet(index_0); - setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - result = castTo(setting, 69).basicAdd(otherEnd, notifications); - return result; -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_0(owner, settings, index_0, otherEnd, notifications){ - var setting; - setting = settings.dynamicGet(index_0); - setting != null && (notifications = castTo(setting, 69).basicRemove(otherEnd, notifications)); - return notifications; -} -; -_.dynamicIsSet = function dynamicIsSet_0(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null && castTo(setting, 76).isSet_0(); -} -; -_.dynamicSet_0 = function dynamicSet_4(owner, settings, index_0, newValue){ - var setting; - setting = castTo(settings.dynamicGet(index_0), 76); - !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - setting.set_1(newValue); -} -; -_.dynamicSetting = function dynamicSetting_0(owner, settings, index_0){ - var result, setting; - setting = settings.dynamicGet(index_0); - setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - if (instanceOf(setting, 76)) { - return castTo(setting, 76); - } - else { - result = castTo(settings.dynamicGet(index_0), 15); - return new EStructuralFeatureImpl$SettingMany(result); - } -} -; -_.dynamicUnset_0 = function dynamicUnset_4(owner, settings, index_0){ - var setting; - setting = castTo(settings.dynamicGet(index_0), 76); - !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - setting.unset(); -} -; -_.dynamicKind = 0; -_.style = 0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateMany', 89); -function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle = emptyMethod; - NIL_0 = ($clinit_EStructuralFeature$Internal$DynamicValueHolder() , NIL); -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingle(feature){ - this.feature = feature; -} - -defineClass(504, 1, {}); -_.dynamicInverseAdd = function dynamicInverseAdd_1(owner, settings, index_0, otherEnd, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_1(owner, settings, index_0, otherEnd, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicSetting = function dynamicSetting_1(owner, settings, index_0){ - return new EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this, owner, settings, index_0); -} -; -var NIL_0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle', 504); -function EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this$1, val$owner, val$settings, val$index){ - this.this$11 = this$1; - this.val$owner2 = val$owner; - this.val$settings3 = val$settings; - this.val$index4 = val$index; -} - -defineClass(1331, 1, $intern_147, EStructuralFeatureImpl$InternalSettingDelegateSingle$1); -_.get_6 = function get_64(resolve){ - return this.this$11.dynamicGet_0(this.val$owner2, this.val$settings3, this.val$index4, resolve, true); -} -; -_.isSet_0 = function isSet_11(){ - return this.this$11.dynamicIsSet(this.val$owner2, this.val$settings3, this.val$index4); -} -; -_.set_1 = function set_35(newValue){ - this.this$11.dynamicSet_0(this.val$owner2, this.val$settings3, this.val$index4, newValue); -} -; -_.unset = function unset_7(){ - this.this$11.dynamicUnset_0(this.val$owner2, this.val$settings3, this.val$index4); -} -; -_.val$index4 = 0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle/1', 1331); -function EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.eClass = eClass; - this.inverseFeature = inverseFeature; -} - -defineClass(769, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainer); -_.dynamicGet_0 = function dynamicGet_5(owner, settings, index_0, resolve, coreType){ - return eContainmentFeature(owner, owner.eInternalContainer(), owner.eContainerFeatureID_0()) == this.inverseFeature?this.isResolveProxies_0() && resolve?$eContainer(owner):owner.eInternalContainer():null; -} -; -_.dynamicInverseAdd = function dynamicInverseAdd_2(owner, settings, index_0, otherEnd, notifications){ - var eContainerFeatureID, featureID; - !!owner.eInternalContainer() && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); - featureID = $getFeatureID(owner.eClass_0(), this.feature); - return owner.eBasicSetContainer_0(otherEnd, featureID, notifications); -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_2(owner, settings, index_0, otherEnd, notifications){ - var featureID; - featureID = $getFeatureID(owner.eClass_0(), this.feature); - return owner.eBasicSetContainer_0(null, featureID, notifications); -} -; -_.dynamicIsSet = function dynamicIsSet_1(owner, settings, index_0){ - var featureID; - featureID = $getFeatureID(owner.eClass_0(), this.feature); - return !!owner.eInternalContainer() && owner.eContainerFeatureID_0() == featureID; -} -; -_.dynamicSet_0 = function dynamicSet_5(owner, settings, index_0, newValue){ - var eContainer, eContainerFeatureID, featureID, internalEObject, notifications; - if (newValue != null && !$isInstance(this.eClass, newValue)) { - throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); - } - eContainer = owner.eInternalContainer(); - featureID = $getFeatureID(owner.eClass_0(), this.feature); - if (maskUndefined(newValue) !== maskUndefined(eContainer) || owner.eContainerFeatureID_0() != featureID && newValue != null) { - if (isAncestor(owner, castTo(newValue, 56))) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + owner.toString_0())); - notifications = null; - !!eContainer && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); - internalEObject = castTo(newValue, 49); - !!internalEObject && (notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications)); - notifications = owner.eBasicSetContainer_0(internalEObject, featureID, notifications); - !!notifications && notifications.dispatch_0(); - } - else { - owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_1(owner, 1, featureID, newValue, newValue)); - } -} -; -_.dynamicUnset_0 = function dynamicUnset_5(owner, settings, index_0){ - var eContainer, eContainerFeatureID, featureID, notifications; - eContainer = owner.eInternalContainer(); - if (eContainer) { - notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(null):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, null)); - featureID = $getFeatureID(owner.eClass_0(), this.feature); - notifications = owner.eBasicSetContainer_0(null, featureID, notifications); - !!notifications && notifications.dispatch_0(); - } - else { - owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 1, this.feature, null, null)); - } -} -; -_.isResolveProxies_0 = function isResolveProxies_2(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainer_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer', 769); -function EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleContainer.call(this, eClass, feature, inverseFeature); -} - -defineClass(1315, 769, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving); -_.isResolveProxies_0 = function isResolveProxies_3(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving', 1315); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData(defaultValue, intrinsicDefaultValue, feature){ - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.defaultValue = defaultValue; - this.intrinsicDefaultValue = intrinsicDefaultValue; - this.notificationCreator = ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , OBJECT_NOTIFICATION_CREATOR); -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingleData_0(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.defaultValue = defaultValue; - this.intrinsicDefaultValue = intrinsicDefaultValue; - this.notificationCreator = notificationCreator; -} - -defineClass(563, 504, {}); -_.dynamicGet_0 = function dynamicGet_6(owner, settings, index_0, resolve, coreType){ - var result; - return result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result; -} -; -_.dynamicIsSet = function dynamicIsSet_2(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null && (maskUndefined(setting) === maskUndefined(NIL_0) || !equals_Ljava_lang_Object__Z__devirtual$(setting, this.defaultValue)); -} -; -_.dynamicSet_0 = function dynamicSet_6(owner, settings, index_0, newValue){ - var oldValue, result; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); - if (newValue == null) { - if (this.intrinsicDefaultValue != null) { - settings.dynamicSet(index_0, null); - newValue = this.defaultValue; - } - else - this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, newValue)); - } - else { - if (newValue == null) { - this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - } -} -; -_.dynamicUnset_0 = function dynamicUnset_6(owner, settings, index_0){ - var oldValue, result; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); - settings.dynamicUnset(index_0); - $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, this.defaultValue)); - } - else { - settings.dynamicUnset(index_0); - } -} -; -_.validate_0 = function validate_2(object){ - throw toJs(new ClassCastException); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData', 563); -function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator = emptyMethod; - OBJECT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator; - BOOLEAN_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1; - BYTE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2; - CHAR_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3; - DOUBLE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4; - FLOAT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5; - INT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6; - LONG_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7; - SHORT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8; -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ -} - -defineClass($intern_160, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator); -_.createNotification_0 = function createNotification_7(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue); -} -; -_.createNotification_1 = function createNotification_8(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, wasSet); -} -; -var BOOLEAN_NOTIFICATION_CREATOR, BYTE_NOTIFICATION_CREATOR, CHAR_NOTIFICATION_CREATOR, DOUBLE_NOTIFICATION_CREATOR, FLOAT_NOTIFICATION_CREATOR, INT_NOTIFICATION_CREATOR, LONG_NOTIFICATION_CREATOR, OBJECT_NOTIFICATION_CREATOR, SHORT_NOTIFICATION_CREATOR; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator', $intern_160); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1(){ -} - -defineClass(1332, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1); -_.createNotification_0 = function createNotification_9(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_22(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue))); -} -; -_.createNotification_1 = function createNotification_10(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_23(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue)), wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1', 1332); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2(){ -} - -defineClass(1333, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2); -_.createNotification_0 = function createNotification_11(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_5(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0); -} -; -_.createNotification_1 = function createNotification_12(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_6(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2', 1333); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3(){ -} - -defineClass(1334, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3); -_.createNotification_0 = function createNotification_13(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_7(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0); -} -; -_.createNotification_1 = function createNotification_14(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_8(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3', 1334); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4(){ -} - -defineClass(1335, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4); -_.createNotification_0 = function createNotification_15(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_9(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue))); -} -; -_.createNotification_1 = function createNotification_16(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_10(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue)), wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4', 1335); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5(){ -} - -defineClass(1336, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5); -_.createNotification_0 = function createNotification_17(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_11(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0); -} -; -_.createNotification_1 = function createNotification_18(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_12(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5', 1336); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6(){ -} - -defineClass(1337, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6); -_.createNotification_0 = function createNotification_19(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_13(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0); -} -; -_.createNotification_1 = function createNotification_20(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_14(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6', 1337); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7(){ -} - -defineClass(1338, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7); -_.createNotification_0 = function createNotification_21(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_15(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0); -} -; -_.createNotification_1 = function createNotification_22(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_16(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7', 1338); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8(){ -} - -defineClass(1339, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8); -_.createNotification_0 = function createNotification_23(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_20(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0); -} -; -_.createNotification_1 = function createNotification_24(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_21(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8', 1339); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); - this.eDataType = eDataType; -} - -defineClass(1317, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic); -_.validate_0 = function validate_3(object){ - if (!this.eDataType.isInstance(object)) { - throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic', 1317); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); -} - -defineClass(1318, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic); -_.validate_0 = function validate_4(object){ -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic', 1318); -defineClass(770, 563, {}); -_.dynamicIsSet = function dynamicIsSet_3(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null; -} -; -_.dynamicSet_0 = function dynamicSet_7(owner, settings, index_0, newValue){ - var oldIsSet, oldValue; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldIsSet = true; - oldValue = settings.dynamicGet(index_0); - if (oldValue == null) { - oldIsSet = false; - oldValue = this.defaultValue; - } - else - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - if (newValue == null) { - if (this.intrinsicDefaultValue != null) { - settings.dynamicSet(index_0, null); - newValue = this.defaultValue; - } - else { - settings.dynamicSet(index_0, NIL_0); - } - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - $eNotify(owner, this.notificationCreator.createNotification_1(owner, 1, this.feature, oldValue, newValue, !oldIsSet)); - } - else { - if (newValue == null) { - this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):settings.dynamicSet(index_0, NIL_0); - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - } -} -; -_.dynamicUnset_0 = function dynamicUnset_7(owner, settings, index_0){ - var oldIsSet, oldValue; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldIsSet = true; - oldValue = settings.dynamicGet(index_0); - if (oldValue == null) { - oldIsSet = false; - oldValue = this.defaultValue; - } - else - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - settings.dynamicUnset(index_0); - $eNotify(owner, this.notificationCreator.createNotification_1(owner, 2, this.feature, oldValue, this.defaultValue, oldIsSet)); - } - else { - settings.dynamicUnset(index_0); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable', 770); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); - this.eDataType = eDataType; -} - -defineClass(1319, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic); -_.validate_0 = function validate_5(object){ - if (!this.eDataType.isInstance(object)) { - throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic', 1319); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); -} - -defineClass(1320, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic); -_.validate_0 = function validate_6(object){ -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic', 1320); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.eClass = eClass; -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0(eClass, feature, inverseFeature){ - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.eClass = eClass; - this.inverseFeature = inverseFeature; -} - -defineClass(398, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObject); -_.dynamicGet_0 = function dynamicGet_7(owner, settings, index_0, resolve, coreType){ - var newEObject, notificationChain, oldEObject, resolvedEObject, result; - result = settings.dynamicGet(index_0); - if (this.isUnsettable() && maskUndefined(result) === maskUndefined(NIL_0)) { - return null; - } - else if (this.isResolveProxies_0() && resolve && result != null) { - oldEObject = castTo(result, 49); - if (oldEObject.eIsProxy()) { - resolvedEObject = $eResolveProxy(owner, oldEObject); - if (oldEObject != resolvedEObject) { - if (!$isInstance(this.eClass, resolvedEObject)) { - throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(resolvedEObject) + "' must be of type '" + this.eClass + "'")); - } - settings.dynamicSet(index_0, result = resolvedEObject); - if (this.isContainment()) { - newEObject = castTo(resolvedEObject, 49); - notificationChain = oldEObject.eInverseRemove(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(oldEObject.eClass_0(), this.inverseFeature), null, null); - !newEObject.eInternalContainer() && (notificationChain = newEObject.eInverseAdd(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(newEObject.eClass_0(), this.inverseFeature), null, notificationChain)); - !!notificationChain && notificationChain.dispatch_0(); - } - owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 9, this.feature, oldEObject, resolvedEObject)); - } - } - return result; - } - else { - return result; - } -} -; -_.dynamicInverseAdd = function dynamicInverseAdd_3(owner, settings, index_0, otherEnd, notifications){ - var internalEObject, oldValue; - oldValue = settings.dynamicGet(index_0); - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - settings.dynamicSet(index_0, otherEnd); - if (this.hasInverse()) { - if (maskUndefined(oldValue) !== maskUndefined(otherEnd) && oldValue != null) { - internalEObject = castTo(oldValue, 49); - notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - } - else - this.isContainment() && oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - !notifications && (notifications = new NotificationChainImpl_0(4)); - notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, otherEnd)); - } - return notifications; -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_3(owner, settings, index_0, otherEnd, notifications){ - var oldValue; - oldValue = settings.dynamicGet(index_0); - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - settings.dynamicUnset(index_0); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - !notifications && (notifications = new NotificationChainImpl_0(4)); - this.isUnsettable()?notifications.add_5(new ENotificationImpl_17(owner, 2, this.feature, oldValue, null)):notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, null)); - } - return notifications; -} -; -_.dynamicIsSet = function dynamicIsSet_4(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null; -} -; -_.dynamicSet_0 = function dynamicSet_8(owner, settings, index_0, newValue){ - var internalEObject, notification, notifications, oldIsSet, oldValue; - if (newValue != null && !$isInstance(this.eClass, newValue)) { - throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); - } - oldValue = settings.dynamicGet(index_0); - oldIsSet = oldValue != null; - this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - notifications = null; - if (this.hasInverse()) { - if (maskUndefined(oldValue) !== maskUndefined(newValue)) { - if (oldValue != null) { - internalEObject = castTo(oldValue, 49); - notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - if (newValue != null) { - internalEObject = castTo(newValue, 49); - notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - } - } - else if (this.isContainment()) { - if (maskUndefined(oldValue) !== maskUndefined(newValue)) { - oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - newValue != null && (notifications = castTo(newValue, 49).eInverseAdd(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - } - } - newValue == null && this.isUnsettable()?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, newValue); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - notification = new ENotificationImpl_19(owner, 1, this.feature, oldValue, newValue, this.isUnsettable() && !oldIsSet); - if (!notifications) { - $eNotify(owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else - !!notifications && notifications.dispatch_0(); -} -; -_.dynamicUnset_0 = function dynamicUnset_8(owner, settings, index_0){ - var internalEObject, notification, notifications, oldIsSet, oldValue; - oldValue = settings.dynamicGet(index_0); - oldIsSet = oldValue != null; - this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - notifications = null; - if (oldValue != null) { - if (this.hasInverse()) { - internalEObject = castTo(oldValue, 49); - notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - else - this.isContainment() && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - } - settings.dynamicUnset(index_0); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - notification = new ENotificationImpl_19(owner, this.isUnsettable()?2:1, this.feature, oldValue, null, oldIsSet); - if (!notifications) { - $eNotify(owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else - !!notifications && notifications.dispatch_0(); -} -; -_.hasInverse = function hasInverse_6(){ - return false; -} -; -_.isContainment = function isContainment_7(){ - return false; -} -; -_.isResolveProxies_0 = function isResolveProxies_4(){ - return false; -} -; -_.isUnsettable = function isUnsettable_1(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject', 398); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); -} - -defineClass(564, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment); -_.isContainment = function isContainment_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment', 564); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); -} - -defineClass(1323, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving); -_.isResolveProxies_0 = function isResolveProxies_5(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving', 1323); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); -} - -defineClass(772, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable); -_.isUnsettable = function isUnsettable_2(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable', 772); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable.call(this, eClass, feature); -} - -defineClass(1325, 772, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving); -_.isResolveProxies_0 = function isResolveProxies_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving', 1325); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); -} - -defineClass(640, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse); -_.hasInverse = function hasInverse_7(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse', 640); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(1324, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving); -_.isResolveProxies_0 = function isResolveProxies_7(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving', 1324); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(773, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable); -_.isUnsettable = function isUnsettable_3(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable', 773); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable.call(this, eClass, feature, inverseFeature); -} - -defineClass(1326, 773, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving); -_.isResolveProxies_0 = function isResolveProxies_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving', 1326); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); -} - -defineClass(641, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving); -_.isResolveProxies_0 = function isResolveProxies_9(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving', 641); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving.call(this, eClass, feature); -} - -defineClass(1327, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable); -_.isUnsettable = function isUnsettable_4(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable', 1327); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); -} - -defineClass(774, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse); -_.hasInverse = function hasInverse_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse', 774); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(1328, 774, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable); -_.isUnsettable = function isUnsettable_5(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable', 1328); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); -} - -defineClass(1321, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable); -_.isUnsettable = function isUnsettable_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable', 1321); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); -} - -defineClass(771, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse); -_.hasInverse = function hasInverse_9(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse', 771); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(1322, 771, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable); -_.isUnsettable = function isUnsettable_7(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable', 1322); -function $inverseAdd_0(this$static, owner, otherEnd, notifications){ - !!otherEnd && (notifications = otherEnd.eInverseAdd(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); - return notifications; -} - -function $inverseRemove_0(this$static, owner, otherEnd, notifications){ - !!otherEnd && (notifications = otherEnd.eInverseRemove(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); - return notifications; -} - -function EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$0, eStructuralFeature, value_0){ - this.this$01 = this$0; - EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); - this.value_0 = value_0; -} - -defineClass(775, 565, $intern_159, EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry); -_.createEntry_0 = function createEntry_2(value_0){ - return new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this.this$01, this.eStructuralFeature, value_0); -} -; -_.getValue = function getValue_16(){ - return this.value_0; -} -; -_.inverseAdd_0 = function inverseAdd_4(owner, featureID, notifications){ - return $inverseAdd_0(this, owner, this.value_0, notifications); -} -; -_.inverseRemove_0 = function inverseRemove_4(owner, featureID, notifications){ - return $inverseRemove_0(this, owner, this.value_0, notifications); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry', 775); -function EStructuralFeatureImpl$SettingMany(list){ - this.list = list; -} - -defineClass(1329, 1, $intern_147, EStructuralFeatureImpl$SettingMany); -_.get_6 = function get_65(resolve){ - return this.list; -} -; -_.isSet_0 = function isSet_12(){ - return instanceOf(this.list, 95)?castTo(this.list, 95).isSet_0():!this.list.isEmpty(); -} -; -_.set_1 = function set_36(newValue){ - this.list.clear_0(); - this.list.addAll(castTo(newValue, 15)); -} -; -_.unset = function unset_8(){ - instanceOf(this.list, 95)?castTo(this.list, 95).unset():this.list.clear_0(); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SettingMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SettingMany', 1329); -function EStructuralFeatureImpl$SimpleContentFeatureMapEntry(eStructuralFeature){ - this.eStructuralFeature = eStructuralFeature; - this.eDataType = castTo($getEType(eStructuralFeature), 148); - this.eFactory = this.eDataType.getEPackage().getEFactoryInstance(); -} - -defineClass(1330, 565, $intern_159, EStructuralFeatureImpl$SimpleContentFeatureMapEntry); -_.createEntry = function createEntry_3(value_0){ - return new EStructuralFeatureImpl$SimpleFeatureMapEntry(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT), this.eFactory.convertToString(this.eDataType, value_0)); -} -; -_.getValue = function getValue_17(){ - return null; -} -; -_.inverseAdd_0 = function inverseAdd_5(owner, featureID, notifications){ - return notifications; -} -; -_.inverseRemove_0 = function inverseRemove_5(owner, featureID, notifications){ - return notifications; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleContentFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleContentFeatureMapEntry', 1330); -function EStructuralFeatureImpl$SimpleFeatureMapEntry(eStructuralFeature, value_0){ - EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); - this.value_0 = value_0; -} - -defineClass(642, 565, $intern_159, EStructuralFeatureImpl$SimpleFeatureMapEntry); -_.createEntry = function createEntry_4(value_0){ - return new EStructuralFeatureImpl$SimpleFeatureMapEntry(this.eStructuralFeature, value_0); -} -; -_.getValue = function getValue_18(){ - return this.value_0; -} -; -_.inverseAdd_0 = function inverseAdd_6(owner, featureID, notifications){ - return notifications; -} -; -_.inverseRemove_0 = function inverseRemove_6(owner, featureID, notifications){ - return notifications; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleFeatureMapEntry', 642); -function ESuperAdapter$1(){ -} - -defineClass(391, 497, $intern_138, ESuperAdapter$1); -_.newData = function newData_12(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, capacity, 0, 1); -} -; -_.useEquals = function useEquals_13(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ESuperAdapter$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter/1', 391); -function $getEGenericTypes(this$static){ - !this$static.eGenericTypes && (this$static.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)); - return this$static.eGenericTypes; -} - -function ETypeParameterImpl(){ -} - -defineClass(444, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 836:1, 49:1, 97:1, 150:1, 444:1, 114:1, 115:1}, ETypeParameterImpl); -_.eGet = function eGet_31(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , this.eBounds; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_22(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 2: - return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , $basicRemove_0(this.eBounds, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ETYPE_PARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_30(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return !!this.eBounds && this.eBounds.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); -} -; -_.eSet = function eSet_28(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); - $clear_13(this.eBounds); - !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); - $addAll_9(this.eBounds, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_30(){ - return $clinit_EcorePackage$Literals() , ETYPE_PARAMETER; -} -; -_.eUnset = function eUnset_28(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); - $clear_13(this.eBounds); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl', 444); -function $inverseAdd_1(this$static, object, notifications){ - var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; - notifications = (internalEObject = object , $eInverseAdd(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); - eGenericTypes = $getEGenericTypes(this$static.this$01); - for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { - eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); - notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); - } - return notifications; -} - -function $inverseRemove_1(this$static, object, notifications){ - var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; - notifications = (internalEObject = object , $eInverseRemove(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); - eGenericTypes = $getEGenericTypes(this$static.this$01); - for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { - eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); - notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); - } - return notifications; -} - -function ETypeParameterImpl$1(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentEList.call(this, $anonymous0, $anonymous1, 2); -} - -defineClass(445, 85, $intern_154, ETypeParameterImpl$1); -_.inverseAdd = function inverseAdd_7(object, notifications){ - return $inverseAdd_1(this, castTo(object, 87), notifications); -} -; -_.inverseRemove = function inverseRemove_7(object, notifications){ - return $inverseRemove_1(this, castTo(object, 87), notifications); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/1', 445); -function ETypeParameterImpl$2(){ - HashMap.call(this); -} - -defineClass(634, 43, $intern_76, ETypeParameterImpl$2); -_.keySet_0 = function keySet_19(){ - return new ETypeParameterImpl$2$1(this); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2', 634); -function $add_30(this$static, eGenericType){ - return $put_6(this$static.this$11, eGenericType, '') == null; -} - -function $remove_42(this$static, object){ - if ($containsKey_3(this$static.this$11, object)) { - $remove_6(this$static.this$11, object); - return true; - } - else { - return false; - } -} - -function ETypeParameterImpl$2$1(this$1){ - this.this$11 = this$1; -} - -defineClass(556, $intern_9, $intern_10, ETypeParameterImpl$2$1); -_.add_2 = function add_65(eGenericType){ - return $add_30(this, castTo(eGenericType, 87)); -} -; -_.addAll = function addAll_34(eGenericTypes){ - var eGenericType, eGenericType$iterator, result; - result = false; - for (eGenericType$iterator = eGenericTypes.iterator_0(); eGenericType$iterator.hasNext_0();) { - eGenericType = castTo(eGenericType$iterator.next_1(), 87); - $put_6(this.this$11, eGenericType, '') == null && (result = true); - } - return result; -} -; -_.clear_0 = function clear_65(){ - $reset(this.this$11); -} -; -_.contains = function contains_65(object){ - return $containsKey_3(this.this$11, object); -} -; -_.iterator_0 = function iterator_89(){ - var delegateIterator; - return delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator); -} -; -_.remove_1 = function remove_126(object){ - return $remove_42(this, object); -} -; -_.size_1 = function size_78(){ - return $size_2(this.this$11); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1', 556); -function ETypeParameterImpl$2$1$1(val$delegateIterator){ - this.val$delegateIterator2 = val$delegateIterator; -} - -defineClass(557, 1, $intern_6, ETypeParameterImpl$2$1$1); -_.forEachRemaining = function forEachRemaining_58(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_48(){ - return castTo($next_4(this.val$delegateIterator2).getKey(), 87); -} -; -_.hasNext_0 = function hasNext_47(){ - return this.val$delegateIterator2.hasNext; -} -; -_.remove = function remove_127(){ - $remove_7(this.val$delegateIterator2); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1/1', 557); -function EValidatorRegistryImpl(){ - HashMap.call(this); -} - -defineClass(1276, 43, $intern_76, EValidatorRegistryImpl); -_.containsKey = function containsKey_17(key){ - return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); -} -; -_.get_3 = function get_66(key){ - var eValidator, eValidatorDescriptor; - eValidator = instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); - if (instanceOf(eValidator, 837)) { - eValidatorDescriptor = castTo(eValidator, 837); - eValidator = eValidatorDescriptor.getEValidator(); - $put_6(this, castTo(key, 235), eValidator); - return eValidator; - } - else - return eValidator != null?eValidator:key == null?($clinit_EObjectValidator() , INSTANCE_9):null; -} -; -var Lorg_eclipse_emf_ecore_impl_EValidatorRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EValidatorRegistryImpl', 1276); -function $booleanValueOf(initialValue){ - if ($equalsIgnoreCase('true', initialValue)) { - return $clinit_Boolean() , TRUE_0; - } - else if ($equalsIgnoreCase('false', initialValue)) { - return $clinit_Boolean() , FALSE_0; - } - else { - throw toJs(new IllegalArgumentException_0('Expecting true or false')); - } -} - -function $convertEByteArrayToString(instanceValue){ - var bytes; - if (instanceValue == null) { - return null; - } - else { - bytes = castTo(instanceValue, 190); - return $bytesToHexString(bytes, bytes.length); - } -} - -function $convertECharToString(instanceValue){ - if (instanceOf(instanceValue, 172)) { - return '' + castTo(instanceValue, 172).value_0; - } - return instanceValue == null?null:toString_40(instanceValue); -} - -function $convertECharacterObjectToString(instanceValue){ - if (instanceOf(instanceValue, 172)) { - return '' + castTo(instanceValue, 172).value_0; - } - return instanceValue == null?null:toString_40(instanceValue); -} - -function $createECharFromString(initialValue){ - var carray, charValue; - if (initialValue == null) { - return null; - } - charValue = 0; - try { - charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - carray = $toCharArray(initialValue); - charValue = carray[0]; - } - else - throw toJs($e0); - } - return valueOf_3(charValue); -} - -function $createECharacterObjectFromString(initialValue){ - var carray, charValue; - if (initialValue == null) { - return null; - } - charValue = 0; - try { - charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - carray = $toCharArray(initialValue); - charValue = carray[0]; - } - else - throw toJs($e0); - } - return valueOf_3(charValue); -} - -function $createEDateFromString(initialValue){ - var exception, i, parseException; - if (initialValue == null) { - return null; - } - exception = null; - for (i = 0; i < EDATE_FORMATS.length; ++i) { - try { - return $parse_2(EDATE_FORMATS[i], initialValue); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 32)) { - parseException = $e0; - exception = parseException; - } - else - throw toJs($e0); - } - } - throw toJs(new WrappedException(exception)); -} - -function EcoreFactoryImpl(){ -} - -function init_3(){ - $clinit_EFactoryImpl(); - var exception, theEcoreFactory; - try { - theEcoreFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1941); - if (theEcoreFactory) { - return theEcoreFactory; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - $log_3(($clinit_EcorePlugin() , exception)); - } - else - throw toJs($e0); - } - return new EcoreFactoryImpl; -} - -defineClass(1313, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 1941:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EcoreFactoryImpl); -_.convertToString = function convertToString_1(eDataType, instanceValue){ - switch (eDataType.getClassifierID()) { - case 21: - case 22: - case 23: - case 24: - case 26: - case 31: - case 32: - case 37: - case 38: - case 39: - case 40: - case 43: - case 44: - case 48: - case 49: - case 20: - return instanceValue == null?null:toString_40(instanceValue); - case 25: - return $convertEByteArrayToString(instanceValue); - case 27: - return $convertECharToString(instanceValue); - case 28: - return $convertECharacterObjectToString(instanceValue); - case 29: - return instanceValue == null?null:$format_0(EDATE_FORMATS[0], castTo(instanceValue, 199)); - case 41: - return instanceValue == null?'':$getName(castTo(instanceValue, 290)); - case 42: - return toString_40(instanceValue); - case 50: - return castToString(instanceValue); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -_.create_3 = function create_42(eClass0){ - var eAnnotation, eAttribute, eClass, eDataType, eEnum, eEnumLiteral, eFactory, eGenericType, eObject, eOperation, ePackage, ePackage0, eParameter, eReference, eStringToStringMapEntry, eTypeParameter; - switch (eClass0.metaObjectID == -1 && (eClass0.metaObjectID = (ePackage0 = $getEPackage(eClass0) , ePackage0?$indexOf_6(ePackage0.getEClassifiers(), eClass0):-1)) , eClass0.metaObjectID) { - case 0: - return eAttribute = new EAttributeImpl , eAttribute; - case 1: - return eAnnotation = new EAnnotationImpl , eAnnotation; - case 2: - return eClass = new EClassImpl , eClass; - case 4: - return eDataType = new EDataTypeImpl , eDataType; - case 5: - return eEnum = new EEnumImpl , eEnum; - case 6: - return eEnumLiteral = new EEnumLiteralImpl , eEnumLiteral; - case 7: - return eFactory = new EFactoryImpl , eFactory; - case 10: - return eObject = new EObjectImpl , eObject; - case 11: - return eOperation = new EOperationImpl , eOperation; - case 12: - return ePackage = new EPackageImpl , ePackage; - case 13: - return eParameter = new EParameterImpl , eParameter; - case 14: - return eReference = new EReferenceImpl , eReference; - case 17: - return eStringToStringMapEntry = new EStringToStringMapEntryImpl , eStringToStringMapEntry; - case 18: - return eGenericType = new EGenericTypeImpl , eGenericType; - case 19: - return eTypeParameter = new ETypeParameterImpl , eTypeParameter; - default:throw toJs(new IllegalArgumentException_0("The class '" + eClass0.name_0 + "' is not a valid classifier")); - } -} -; -_.createFromString = function createFromString_1(eDataType, initialValue){ - switch (eDataType.getClassifierID()) { - case 20: - return initialValue == null?null:new BigDecimal_0(initialValue); - case 21: - return initialValue == null?null:new BigInteger_4(initialValue); - case 23: - case 22: - return initialValue == null?null:$booleanValueOf(initialValue); - case 26: - case 24: - return initialValue == null?null:valueOf_2(__parseAndValidateInt(initialValue, -128, 127) << 24 >> 24); - case 25: - return $hexStringToBytes(initialValue); - case 27: - return $createECharFromString(initialValue); - case 28: - return $createECharacterObjectFromString(initialValue); - case 29: - return $createEDateFromString(initialValue); - case 32: - case 31: - return initialValue == null?null:__parseAndValidateDouble(initialValue); - case 38: - case 37: - return initialValue == null?null:new Float_0(initialValue); - case 40: - case 39: - return initialValue == null?null:valueOf_4(__parseAndValidateInt(initialValue, $intern_42, $intern_0)); - case 41: - return null; - case 42: - return initialValue == null?null:null; - case 44: - case 43: - return initialValue == null?null:valueOf_5(__parseAndValidateLong(initialValue)); - case 49: - case 48: - return initialValue == null?null:valueOf_6(__parseAndValidateInt(initialValue, $intern_161, 32767) << 16 >> 16); - case 50: - return initialValue; - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EcoreFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcoreFactoryImpl', 1313); -function $clinit_EcorePackageImpl(){ - $clinit_EcorePackageImpl = emptyMethod; - eGenericTypes_0 = new ArrayList; -} - -function $$init_12(this$static){ - this$static.eAttributeEClass = null; - this$static.eAnnotationEClass = null; - this$static.eClassEClass = null; - this$static.eDataTypeEClass = null; - this$static.eEnumEClass = null; - this$static.eEnumLiteralEClass = null; - this$static.eFactoryEClass = null; - this$static.eClassifierEClass = null; - this$static.eModelElementEClass = null; - this$static.eNamedElementEClass = null; - this$static.eObjectEClass = null; - this$static.eOperationEClass = null; - this$static.ePackageEClass = null; - this$static.eParameterEClass = null; - this$static.eReferenceEClass = null; - this$static.eStructuralFeatureEClass = null; - this$static.eTypedElementEClass = null; - this$static.eStringToStringMapEntryEClass = null; - this$static.eGenericTypeEClass = null; - this$static.eTypeParameterEClass = null; - this$static.eBigDecimalEDataType = null; - this$static.eBigIntegerEDataType = null; - this$static.eBooleanObjectEDataType = null; - this$static.eCharacterObjectEDataType = null; - this$static.eDateEDataType = null; - this$static.eDiagnosticChainEDataType = null; - this$static.eDoubleObjectEDataType = null; - this$static.eFloatObjectEDataType = null; - this$static.eIntegerObjectEDataType = null; - this$static.eBooleanEDataType = null; - this$static.eByteObjectEDataType = null; - this$static.eByteEDataType = null; - this$static.eByteArrayEDataType = null; - this$static.eCharEDataType = null; - this$static.eDoubleEDataType = null; - this$static.eFloatEDataType = null; - this$static.eIntEDataType = null; - this$static.eJavaClassEDataType = null; - this$static.eJavaObjectEDataType = null; - this$static.eLongObjectEDataType = null; - this$static.eMapEDataType = null; - this$static.eShortObjectEDataType = null; - this$static.eLongEDataType = null; - this$static.eShortEDataType = null; - this$static.eTreeIteratorEDataType = null; - this$static.eInvocationTargetExceptionEDataType = null; - this$static.eFeatureMapEntryEDataType = null; - this$static.eEnumeratorEDataType = null; - this$static.eFeatureMapEDataType = null; - this$static.eStringEDataType = null; - this$static.eeListEDataType = null; - this$static.eResourceEDataType = null; - this$static.eResourceSetEDataType = null; - this$static.isCreated = false; - this$static.isInitialized = false; -} - -function $createEGenericType_1(){ - var eGenericType, eGenericType0, eGenericType1; - eGenericType0 = (eGenericType1 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType1); - $add_3(eGenericTypes_0, eGenericType0); - return eGenericType0; -} - -function $createEcoreAnnotations(this$static){ - $addAnnotation(this$static.eAttributeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentTransient'])); - $addAnnotation(this$static.eAnnotationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedSourceURI'])); - $addAnnotation(this$static.eClassEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures'])); - $addAnnotation(this$static.eClassifierEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedInstanceTypeName UniqueTypeParameterNames'])); - $addAnnotation(this$static.eEnumEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueEnumeratorNames UniqueEnumeratorLiterals'])); - $addAnnotation(this$static.eNamedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedName'])); - $addAnnotation(this$static.eOperationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid'])); - $addAnnotation(this$static.ePackageEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs'])); - $addAnnotation(this$static.eReferenceEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer'])); - $addAnnotation(this$static.eStructuralFeatureEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidDefaultValueLiteral'])); - $addAnnotation(this$static.eTypedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidLowerBound ValidUpperBound ConsistentBounds ValidType'])); - $addAnnotation(this$static.eGenericTypeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentType ConsistentBounds ConsistentArguments'])); -} - -function $createExtendedMetaDataAnnotations(this$static){ - $addAnnotation(this$static.eBigDecimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#decimal'])); - $addAnnotation(this$static.eBigIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#integer'])); - $addAnnotation(this$static.eBooleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#boolean'])); - $addAnnotation(this$static.eBooleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EBoolean', 'name', 'EBoolean:Object'])); - $addAnnotation(this$static.eByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#byte'])); - $addAnnotation(this$static.eByteArrayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#hexBinary'])); - $addAnnotation(this$static.eByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EByte', 'name', 'EByte:Object'])); - $addAnnotation(this$static.eCharacterObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EChar', 'name', 'EChar:Object'])); - $addAnnotation(this$static.eDoubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#double'])); - $addAnnotation(this$static.eDoubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EDouble', 'name', 'EDouble:Object'])); - $addAnnotation(this$static.eFloatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#float'])); - $addAnnotation(this$static.eFloatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EFloat', 'name', 'EFloat:Object'])); - $addAnnotation(this$static.eIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#int'])); - $addAnnotation(this$static.eIntegerObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EInt', 'name', 'EInt:Object'])); - $addAnnotation(this$static.eLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#long'])); - $addAnnotation(this$static.eLongObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'ELong', 'name', 'ELong:Object'])); - $addAnnotation(this$static.eShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#short'])); - $addAnnotation(this$static.eShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EShort', 'name', 'EShort:Object'])); - $addAnnotation(this$static.eStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#string'])); -} - -function $createPackageContents_0(this$static){ - if (this$static.isCreated) - return; - this$static.isCreated = true; - this$static.eAttributeEClass = $createEClass(this$static, 0); - $createEAttribute(this$static.eAttributeEClass, 18); - $createEReference(this$static.eAttributeEClass, 19); - this$static.eAnnotationEClass = $createEClass(this$static, 1); - $createEAttribute(this$static.eAnnotationEClass, 1); - $createEReference(this$static.eAnnotationEClass, 2); - $createEReference(this$static.eAnnotationEClass, 3); - $createEReference(this$static.eAnnotationEClass, 4); - $createEReference(this$static.eAnnotationEClass, 5); - this$static.eClassEClass = $createEClass(this$static, 2); - $createEAttribute(this$static.eClassEClass, 8); - $createEAttribute(this$static.eClassEClass, 9); - $createEReference(this$static.eClassEClass, 10); - $createEReference(this$static.eClassEClass, 11); - $createEReference(this$static.eClassEClass, 12); - $createEReference(this$static.eClassEClass, 13); - $createEReference(this$static.eClassEClass, 14); - $createEReference(this$static.eClassEClass, 15); - $createEReference(this$static.eClassEClass, 16); - $createEReference(this$static.eClassEClass, 17); - $createEReference(this$static.eClassEClass, 18); - $createEReference(this$static.eClassEClass, 19); - $createEReference(this$static.eClassEClass, 20); - $createEReference(this$static.eClassEClass, 21); - $createEReference(this$static.eClassEClass, 22); - $createEReference(this$static.eClassEClass, 23); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - this$static.eClassifierEClass = $createEClass(this$static, 3); - $createEAttribute(this$static.eClassifierEClass, 2); - $createEAttribute(this$static.eClassifierEClass, 3); - $createEAttribute(this$static.eClassifierEClass, 4); - $createEAttribute(this$static.eClassifierEClass, 5); - $createEReference(this$static.eClassifierEClass, 6); - $createEReference(this$static.eClassifierEClass, 7); - $createEOperation(this$static.eClassifierEClass); - $createEOperation(this$static.eClassifierEClass); - this$static.eDataTypeEClass = $createEClass(this$static, 4); - $createEAttribute(this$static.eDataTypeEClass, 8); - this$static.eEnumEClass = $createEClass(this$static, 5); - $createEReference(this$static.eEnumEClass, 9); - $createEOperation(this$static.eEnumEClass); - $createEOperation(this$static.eEnumEClass); - $createEOperation(this$static.eEnumEClass); - this$static.eEnumLiteralEClass = $createEClass(this$static, 6); - $createEAttribute(this$static.eEnumLiteralEClass, 2); - $createEAttribute(this$static.eEnumLiteralEClass, 3); - $createEAttribute(this$static.eEnumLiteralEClass, 4); - $createEReference(this$static.eEnumLiteralEClass, 5); - this$static.eFactoryEClass = $createEClass(this$static, 7); - $createEReference(this$static.eFactoryEClass, 1); - $createEOperation(this$static.eFactoryEClass); - $createEOperation(this$static.eFactoryEClass); - $createEOperation(this$static.eFactoryEClass); - this$static.eModelElementEClass = $createEClass(this$static, 8); - $createEReference(this$static.eModelElementEClass, 0); - $createEOperation(this$static.eModelElementEClass); - this$static.eNamedElementEClass = $createEClass(this$static, 9); - $createEAttribute(this$static.eNamedElementEClass, 1); - this$static.eObjectEClass = $createEClass(this$static, 10); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - this$static.eOperationEClass = $createEClass(this$static, 11); - $createEReference(this$static.eOperationEClass, 10); - $createEReference(this$static.eOperationEClass, 11); - $createEReference(this$static.eOperationEClass, 12); - $createEReference(this$static.eOperationEClass, 13); - $createEReference(this$static.eOperationEClass, 14); - $createEOperation(this$static.eOperationEClass); - $createEOperation(this$static.eOperationEClass); - this$static.ePackageEClass = $createEClass(this$static, 12); - $createEAttribute(this$static.ePackageEClass, 2); - $createEAttribute(this$static.ePackageEClass, 3); - $createEReference(this$static.ePackageEClass, 4); - $createEReference(this$static.ePackageEClass, 5); - $createEReference(this$static.ePackageEClass, 6); - $createEReference(this$static.ePackageEClass, 7); - $createEOperation(this$static.ePackageEClass); - this$static.eParameterEClass = $createEClass(this$static, 13); - $createEReference(this$static.eParameterEClass, 10); - this$static.eReferenceEClass = $createEClass(this$static, 14); - $createEAttribute(this$static.eReferenceEClass, 18); - $createEAttribute(this$static.eReferenceEClass, 19); - $createEAttribute(this$static.eReferenceEClass, 20); - $createEReference(this$static.eReferenceEClass, 21); - $createEReference(this$static.eReferenceEClass, 22); - $createEReference(this$static.eReferenceEClass, 23); - this$static.eStructuralFeatureEClass = $createEClass(this$static, 15); - $createEAttribute(this$static.eStructuralFeatureEClass, 10); - $createEAttribute(this$static.eStructuralFeatureEClass, 11); - $createEAttribute(this$static.eStructuralFeatureEClass, 12); - $createEAttribute(this$static.eStructuralFeatureEClass, 13); - $createEAttribute(this$static.eStructuralFeatureEClass, 14); - $createEAttribute(this$static.eStructuralFeatureEClass, 15); - $createEAttribute(this$static.eStructuralFeatureEClass, 16); - $createEReference(this$static.eStructuralFeatureEClass, 17); - $createEOperation(this$static.eStructuralFeatureEClass); - $createEOperation(this$static.eStructuralFeatureEClass); - this$static.eTypedElementEClass = $createEClass(this$static, 16); - $createEAttribute(this$static.eTypedElementEClass, 2); - $createEAttribute(this$static.eTypedElementEClass, 3); - $createEAttribute(this$static.eTypedElementEClass, 4); - $createEAttribute(this$static.eTypedElementEClass, 5); - $createEAttribute(this$static.eTypedElementEClass, 6); - $createEAttribute(this$static.eTypedElementEClass, 7); - $createEReference(this$static.eTypedElementEClass, 8); - $createEReference(this$static.eTypedElementEClass, 9); - this$static.eStringToStringMapEntryEClass = $createEClass(this$static, 17); - $createEAttribute(this$static.eStringToStringMapEntryEClass, 0); - $createEAttribute(this$static.eStringToStringMapEntryEClass, 1); - this$static.eGenericTypeEClass = $createEClass(this$static, 18); - $createEReference(this$static.eGenericTypeEClass, 0); - $createEReference(this$static.eGenericTypeEClass, 1); - $createEReference(this$static.eGenericTypeEClass, 2); - $createEReference(this$static.eGenericTypeEClass, 3); - $createEReference(this$static.eGenericTypeEClass, 4); - $createEReference(this$static.eGenericTypeEClass, 5); - $createEOperation(this$static.eGenericTypeEClass); - this$static.eTypeParameterEClass = $createEClass(this$static, 19); - $createEReference(this$static.eTypeParameterEClass, 2); - this$static.eBigDecimalEDataType = $createEDataType(this$static, 20); - this$static.eBigIntegerEDataType = $createEDataType(this$static, 21); - this$static.eBooleanEDataType = $createEDataType(this$static, 22); - this$static.eBooleanObjectEDataType = $createEDataType(this$static, 23); - this$static.eByteEDataType = $createEDataType(this$static, 24); - this$static.eByteArrayEDataType = $createEDataType(this$static, 25); - this$static.eByteObjectEDataType = $createEDataType(this$static, 26); - this$static.eCharEDataType = $createEDataType(this$static, 27); - this$static.eCharacterObjectEDataType = $createEDataType(this$static, 28); - this$static.eDateEDataType = $createEDataType(this$static, 29); - this$static.eDiagnosticChainEDataType = $createEDataType(this$static, 30); - this$static.eDoubleEDataType = $createEDataType(this$static, 31); - this$static.eDoubleObjectEDataType = $createEDataType(this$static, 32); - this$static.eeListEDataType = $createEDataType(this$static, 33); - this$static.eEnumeratorEDataType = $createEDataType(this$static, 34); - this$static.eFeatureMapEDataType = $createEDataType(this$static, 35); - this$static.eFeatureMapEntryEDataType = $createEDataType(this$static, 36); - this$static.eFloatEDataType = $createEDataType(this$static, 37); - this$static.eFloatObjectEDataType = $createEDataType(this$static, 38); - this$static.eIntEDataType = $createEDataType(this$static, 39); - this$static.eIntegerObjectEDataType = $createEDataType(this$static, 40); - this$static.eJavaClassEDataType = $createEDataType(this$static, 41); - this$static.eJavaObjectEDataType = $createEDataType(this$static, 42); - this$static.eLongEDataType = $createEDataType(this$static, 43); - this$static.eLongObjectEDataType = $createEDataType(this$static, 44); - this$static.eMapEDataType = $createEDataType(this$static, 45); - this$static.eResourceEDataType = $createEDataType(this$static, 46); - this$static.eResourceSetEDataType = $createEDataType(this$static, 47); - this$static.eShortEDataType = $createEDataType(this$static, 48); - this$static.eShortObjectEDataType = $createEDataType(this$static, 49); - this$static.eStringEDataType = $createEDataType(this$static, 50); - this$static.eTreeIteratorEDataType = $createEDataType(this$static, 51); - this$static.eInvocationTargetExceptionEDataType = $createEDataType(this$static, 52); -} - -function $initializePackageContents_0(this$static){ - var g1, g2, msgs, msgs0, msgs1, msgs2, op; - if (this$static.isInitialized) - return; - this$static.isInitialized = true; - $setName(this$static, 'ecore'); - $setNsPrefix(this$static, 'ecore'); - $setNsURI(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); - $addETypeParameter(this$static.eeListEDataType, 'E'); - $addETypeParameter(this$static.eJavaClassEDataType, 'T'); - $addETypeParameter(this$static.eMapEDataType, 'K'); - $addETypeParameter(this$static.eMapEDataType, 'V'); - $addETypeParameter(this$static.eTreeIteratorEDataType, 'E'); - $add_21($getESuperTypes(this$static.eAttributeEClass), this$static.eStructuralFeatureEClass); - $add_21($getESuperTypes(this$static.eAnnotationEClass), this$static.eModelElementEClass); - $add_21($getESuperTypes(this$static.eClassEClass), this$static.eClassifierEClass); - $add_21($getESuperTypes(this$static.eClassifierEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eDataTypeEClass), this$static.eClassifierEClass); - $add_21($getESuperTypes(this$static.eEnumEClass), this$static.eDataTypeEClass); - $add_21($getESuperTypes(this$static.eEnumLiteralEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eFactoryEClass), this$static.eModelElementEClass); - $add_21($getESuperTypes(this$static.eNamedElementEClass), this$static.eModelElementEClass); - $add_21($getESuperTypes(this$static.eOperationEClass), this$static.eTypedElementEClass); - $add_21($getESuperTypes(this$static.ePackageEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eParameterEClass), this$static.eTypedElementEClass); - $add_21($getESuperTypes(this$static.eReferenceEClass), this$static.eStructuralFeatureEClass); - $add_21($getESuperTypes(this$static.eStructuralFeatureEClass), this$static.eTypedElementEClass); - $add_21($getESuperTypes(this$static.eTypedElementEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eTypeParameterEClass), this$static.eNamedElementEClass); - $initEClass(this$static.eAttributeEClass, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, 'EAttribute', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 0), 34), this$static.eBooleanEDataType, 'iD', null, 0, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 1), 18), this$static.eDataTypeEClass, null, 'eAttributeType', 1, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, true, true, false, false, true, false, true); - $initEClass(this$static.eAnnotationEClass, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, 'EAnnotation', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 0), 34), this$static.eStringEDataType, 'source', null, 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 1), 18), this$static.eStringToStringMapEntryEClass, null, 'details', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), this$static.eModelElementEClass, castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), 'eModelElement', 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, true, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 3), 18), this$static.eObjectEClass, null, 'contents', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 4), 18), this$static.eObjectEClass, null, 'references', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false, false); - $initEClass(this$static.eClassEClass, Lorg_eclipse_emf_ecore_EClass_2_classLit, 'EClass', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 0), 34), this$static.eBooleanEDataType, 'abstract', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 1), 34), this$static.eBooleanEDataType, 'interface', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 2), 18), this$static.eClassEClass, null, 'eSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), 'eOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 4), 18), this$static.eAttributeEClass, null, 'eAllAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 5), 18), this$static.eReferenceEClass, null, 'eAllReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 6), 18), this$static.eReferenceEClass, null, 'eReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 7), 18), this$static.eAttributeEClass, null, 'eAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 8), 18), this$static.eReferenceEClass, null, 'eAllContainments', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 9), 18), this$static.eOperationEClass, null, 'eAllOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 10), 18), this$static.eStructuralFeatureEClass, null, 'eAllStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 11), 18), this$static.eClassEClass, null, 'eAllSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 12), 18), this$static.eAttributeEClass, null, 'eIDAttribute', 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), this$static.eStructuralFeatureEClass, castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), 'eStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 14), 18), this$static.eGenericTypeEClass, null, 'eGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 15), 18), this$static.eGenericTypeEClass, null, 'eAllGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 0), 59), this$static.eBooleanEDataType, 'isSuperTypeOf'); - $addEParameter(op, this$static.eClassEClass, 'someClass'); - $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 1), 59), this$static.eIntEDataType, 'getFeatureCount'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 2), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); - $addEParameter(op, this$static.eIntEDataType, 'featureID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 3), 59), this$static.eIntEDataType, 'getFeatureID'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 4), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); - $addEParameter(op, this$static.eStringEDataType, 'featureName'); - $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 5), 59), this$static.eIntEDataType, 'getOperationCount'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 6), 59), this$static.eOperationEClass, 'getEOperation'); - $addEParameter(op, this$static.eIntEDataType, 'operationID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 7), 59), this$static.eIntEDataType, 'getOperationID'); - $addEParameter(op, this$static.eOperationEClass, 'operation'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 8), 59), this$static.eOperationEClass, 'getOverride'); - $addEParameter(op, this$static.eOperationEClass, 'operation'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 9), 59), this$static.eGenericTypeEClass, 'getFeatureType'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - $initEClass(this$static.eClassifierEClass, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, 'EClassifier', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 0), 34), this$static.eStringEDataType, 'instanceClassName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); - g1 = $createEGenericType(this$static.eJavaClassEDataType); - g2 = $createEGenericType_1(); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 1), 34), g1, 'instanceClass', Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 2), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 3), 34), this$static.eStringEDataType, 'instanceTypeName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), 'ePackage', 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, false, false, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 5), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, false, true, true, true, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); - $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 1), 59), this$static.eIntEDataType, 'getClassifierID'); - $initEClass(this$static.eDataTypeEClass, Lorg_eclipse_emf_ecore_EDataType_2_classLit, 'EDataType', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eDataTypeEClass), 0), 34), this$static.eBooleanEDataType, 'serializable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EDataType_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.eEnumEClass, Lorg_eclipse_emf_ecore_EEnum_2_classLit, 'EEnum', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), this$static.eEnumLiteralEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), 'eLiterals', 0, -1, Lorg_eclipse_emf_ecore_EEnum_2_classLit, false, false, true, true, false, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 0), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); - $addEParameter(op, this$static.eStringEDataType, 'name'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 1), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); - $addEParameter(op, this$static.eIntEDataType, 'value'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 2), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteralByLiteral'); - $addEParameter(op, this$static.eStringEDataType, 'literal'); - $initEClass(this$static.eEnumLiteralEClass, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, 'EEnumLiteral', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 0), 34), this$static.eIntEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 1), 34), this$static.eEnumeratorEDataType, 'instance', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 2), 34), this$static.eStringEDataType, 'literal', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), this$static.eEnumEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), 'eEnum', 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, false, false, false, false, false); - $initEClass(this$static.eFactoryEClass, Lorg_eclipse_emf_ecore_EFactory_2_classLit, 'EFactory', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), 'ePackage', 1, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, true, false, true, false, false, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 0), 59), this$static.eObjectEClass, 'create'); - $addEParameter(op, this$static.eClassEClass, 'eClass'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 1), 59), this$static.eJavaObjectEDataType, 'createFromString'); - $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); - $addEParameter(op, this$static.eStringEDataType, 'literalValue'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 2), 59), this$static.eStringEDataType, 'convertToString'); - $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'instanceValue'); - $initEClass(this$static.eModelElementEClass, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, 'EModelElement', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), this$static.eAnnotationEClass, castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), 'eAnnotations', 0, -1, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, false, false, true, true, false, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eModelElementEClass), 0), 59), this$static.eAnnotationEClass, 'getEAnnotation'); - $addEParameter(op, this$static.eStringEDataType, 'source'); - $initEClass(this$static.eNamedElementEClass, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, 'ENamedElement', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eNamedElementEClass), 0), 34), this$static.eStringEDataType, 'name', null, 0, 1, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.eObjectEClass, Lorg_eclipse_emf_ecore_EObject_2_classLit, 'EObject', false, false, true); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 0), 59), this$static.eClassEClass, 'eClass'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 1), 59), this$static.eBooleanEDataType, 'eIsProxy'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 2), 59), this$static.eResourceEDataType, 'eResource'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 3), 59), this$static.eObjectEClass, 'eContainer'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 4), 59), this$static.eStructuralFeatureEClass, 'eContainingFeature'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 5), 59), this$static.eReferenceEClass, 'eContainmentFeature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 6), 59), null, 'eContents'); - g1 = $createEGenericType(this$static.eeListEDataType); - g2 = $createEGenericType(this$static.eObjectEClass); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs0 = $setEGenericType(op, g1, null); - !!msgs0 && msgs0.dispatch_0(); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 7), 59), null, 'eAllContents'); - g1 = $createEGenericType(this$static.eTreeIteratorEDataType); - g2 = $createEGenericType(this$static.eObjectEClass); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs1 = $setEGenericType(op, g1, null); - !!msgs1 && msgs1.dispatch_0(); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 8), 59), null, 'eCrossReferences'); - g1 = $createEGenericType(this$static.eeListEDataType); - g2 = $createEGenericType(this$static.eObjectEClass); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs2 = $setEGenericType(op, g1, null); - !!msgs2 && msgs2.dispatch_0(); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 9), 59), this$static.eJavaObjectEDataType, 'eGet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 10), 59), this$static.eJavaObjectEDataType, 'eGet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - $addEParameter(op, this$static.eBooleanEDataType, 'resolve'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 11), 59), null, 'eSet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'newValue'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 12), 59), this$static.eBooleanEDataType, 'eIsSet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 13), 59), null, 'eUnset'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 14), 59), this$static.eJavaObjectEDataType, 'eInvoke'); - $addEParameter(op, this$static.eOperationEClass, 'operation'); - g1 = $createEGenericType(this$static.eeListEDataType); - g2 = $createEGenericType_1(); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $addEParameter_0(op, g1, 'arguments'); - $addEException(op, this$static.eInvocationTargetExceptionEDataType); - $initEClass(this$static.eOperationEClass, Lorg_eclipse_emf_ecore_EOperation_2_classLit, 'EOperation', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, true, false, false, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 1), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), this$static.eParameterEClass, castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), 'eParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 3), 18), this$static.eClassifierEClass, null, 'eExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, false, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 4), 18), this$static.eGenericTypeEClass, null, 'eGenericExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, true, false); - $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 0), 59), this$static.eIntEDataType, 'getOperationID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 1), 59), this$static.eBooleanEDataType, 'isOverrideOf'); - $addEParameter(op, this$static.eOperationEClass, 'someOperation'); - $initEClass(this$static.ePackageEClass, Lorg_eclipse_emf_ecore_EPackage_2_classLit, 'EPackage', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 0), 34), this$static.eStringEDataType, 'nsURI', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 1), 34), this$static.eStringEDataType, 'nsPrefix', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), this$static.eFactoryEClass, castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), 'eFactoryInstance', 1, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), this$static.eClassifierEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), 'eClassifiers', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), 'eSubpackages', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), 'eSuperPackage', 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, false, false, true, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.ePackageEClass), 0), 59), this$static.eClassifierEClass, 'getEClassifier'); - $addEParameter(op, this$static.eStringEDataType, 'name'); - $initEClass(this$static.eParameterEClass, Lorg_eclipse_emf_ecore_EParameter_2_classLit, 'EParameter', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), 'eOperation', 0, 1, Lorg_eclipse_emf_ecore_EParameter_2_classLit, true, false, false, false, false, false, false); - $initEClass(this$static.eReferenceEClass, Lorg_eclipse_emf_ecore_EReference_2_classLit, 'EReference', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 0), 34), this$static.eBooleanEDataType, 'containment', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 1), 34), this$static.eBooleanEDataType, 'container', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 2), 34), this$static.eBooleanEDataType, 'resolveProxies', 'true', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 3), 18), this$static.eReferenceEClass, null, 'eOpposite', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 4), 18), this$static.eClassEClass, null, 'eReferenceType', 1, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 5), 18), this$static.eAttributeEClass, null, 'eKeys', 0, -1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); - $initEClass(this$static.eStructuralFeatureEClass, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 'EStructuralFeature', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 0), 34), this$static.eBooleanEDataType, 'changeable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 1), 34), this$static.eBooleanEDataType, 'volatile', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 2), 34), this$static.eBooleanEDataType, 'transient', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 3), 34), this$static.eStringEDataType, 'defaultValueLiteral', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 4), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 5), 34), this$static.eBooleanEDataType, 'unsettable', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 6), 34), this$static.eBooleanEDataType, 'derived', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, false, false, false, false, false, false); - $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 0), 59), this$static.eIntEDataType, 'getFeatureID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 1), 59), null, 'getContainerClass'); - g1 = $createEGenericType(this$static.eJavaClassEDataType); - g2 = $createEGenericType_1(); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs = $setEGenericType(op, g1, null); - !!msgs && msgs.dispatch_0(); - $initEClass(this$static.eTypedElementEClass, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, 'ETypedElement', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 0), 34), this$static.eBooleanEDataType, 'ordered', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 1), 34), this$static.eBooleanEDataType, 'unique', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 2), 34), this$static.eIntEDataType, 'lowerBound', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 3), 34), this$static.eIntEDataType, 'upperBound', '1', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 4), 34), this$static.eBooleanEDataType, 'many', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 5), 34), this$static.eBooleanEDataType, 'required', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 6), 18), this$static.eClassifierEClass, null, 'eType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, false, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 7), 18), this$static.eGenericTypeEClass, null, 'eGenericType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, true, false, true, false); - $initEClass(this$static.eStringToStringMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'EStringToStringMapEntry', false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 0), 34), this$static.eStringEDataType, 'key', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 1), 34), this$static.eStringEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.eGenericTypeEClass, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, 'EGenericType', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eUpperBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 1), 18), this$static.eGenericTypeEClass, null, 'eTypeArguments', 0, -1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 2), 18), this$static.eClassifierEClass, null, 'eRawType', 1, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, true, false, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 3), 18), this$static.eGenericTypeEClass, null, 'eLowerBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 4), 18), this$static.eTypeParameterEClass, null, 'eTypeParameter', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 5), 18), this$static.eClassifierEClass, null, 'eClassifier', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, true, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eGenericTypeEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); - $initEClass(this$static.eTypeParameterEClass, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, 'ETypeParameter', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypeParameterEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eBounds', 0, -1, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, false, false, true, true, false, false, false); - $initEDataType(this$static.eBigDecimalEDataType, Ljava_math_BigDecimal_2_classLit, 'EBigDecimal', true); - $initEDataType(this$static.eBigIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'EBigInteger', true); - $initEDataType(this$static.eBooleanEDataType, Z_classLit, 'EBoolean', true); - $initEDataType(this$static.eBooleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'EBooleanObject', true); - $initEDataType(this$static.eByteEDataType, B_classLit, 'EByte', true); - $initEDataType(this$static.eByteArrayEDataType, getClassLiteralForArray(B_classLit, 1), 'EByteArray', true); - $initEDataType(this$static.eByteObjectEDataType, Ljava_lang_Byte_2_classLit, 'EByteObject', true); - $initEDataType(this$static.eCharEDataType, C_classLit, 'EChar', true); - $initEDataType(this$static.eCharacterObjectEDataType, Ljava_lang_Character_2_classLit, 'ECharacterObject', true); - $initEDataType(this$static.eDateEDataType, Ljava_util_Date_2_classLit, 'EDate', true); - $initEDataType(this$static.eDiagnosticChainEDataType, Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, 'EDiagnosticChain', false); - $initEDataType(this$static.eDoubleEDataType, D_classLit, 'EDouble', true); - $initEDataType(this$static.eDoubleObjectEDataType, Ljava_lang_Double_2_classLit, 'EDoubleObject', true); - $initEDataType(this$static.eeListEDataType, Lorg_eclipse_emf_common_util_EList_2_classLit, 'EEList', false); - $initEDataType(this$static.eEnumeratorEDataType, Lorg_eclipse_emf_common_util_Enumerator_2_classLit, 'EEnumerator', false); - $initEDataType(this$static.eFeatureMapEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, 'EFeatureMap', false); - $initEDataType(this$static.eFeatureMapEntryEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, 'EFeatureMapEntry', false); - $initEDataType(this$static.eFloatEDataType, F_classLit, 'EFloat', true); - $initEDataType(this$static.eFloatObjectEDataType, Ljava_lang_Float_2_classLit, 'EFloatObject', true); - $initEDataType(this$static.eIntEDataType, I_classLit, 'EInt', true); - $initEDataType(this$static.eIntegerObjectEDataType, Ljava_lang_Integer_2_classLit, 'EIntegerObject', true); - $initEDataType(this$static.eJavaClassEDataType, Ljava_lang_Class_2_classLit, 'EJavaClass', true); - $initEDataType(this$static.eJavaObjectEDataType, Ljava_lang_Object_2_classLit, 'EJavaObject', true); - $initEDataType(this$static.eLongEDataType, J_classLit, 'ELong', true); - $initEDataType(this$static.eLongObjectEDataType, Ljava_lang_Long_2_classLit, 'ELongObject', true); - $initEDataType(this$static.eMapEDataType, Ljava_util_Map_2_classLit, 'EMap', false); - $initEDataType(this$static.eResourceEDataType, Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, 'EResource', false); - $initEDataType(this$static.eResourceSetEDataType, Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, 'EResourceSet', false); - $initEDataType(this$static.eShortEDataType, S_classLit, 'EShort', true); - $initEDataType(this$static.eShortObjectEDataType, Ljava_lang_Short_2_classLit, 'EShortObject', true); - $initEDataType(this$static.eStringEDataType, Ljava_lang_String_2_classLit, 'EString', true); - $initEDataType(this$static.eTreeIteratorEDataType, Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, 'ETreeIterator', false); - $initEDataType(this$static.eInvocationTargetExceptionEDataType, Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, 'EInvocationTargetException', false); - $createResource(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); -} - -function EcorePackageImpl(){ - EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2002/Ecore', ($clinit_EcoreFactory() , eINSTANCE_1)); - $$init_12(this); -} - -function init_4(){ - $clinit_EcorePackageImpl(); - var theEcorePackage; - if (isInited_0) - return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1939); - register_0(Ljava_util_Map$Entry_2_classLit, new EcorePackageImpl$44); - initializeRegistryHelpersGen(); - theEcorePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 547)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore'):new EcorePackageImpl, 547); - isInited_0 = true; - $createPackageContents_0(theEcorePackage); - $initializePackageContents_0(theEcorePackage); - $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theEcorePackage, new EcorePackageImpl$1); - $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore', theEcorePackage); - return theEcorePackage; -} - -function initializeRegistryHelpersGen(){ - register_0(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, new EcorePackageImpl$2); - register_0(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, new EcorePackageImpl$3); - register_0(Lorg_eclipse_emf_ecore_EClass_2_classLit, new EcorePackageImpl$4); - register_0(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, new EcorePackageImpl$5); - register_0(Lorg_eclipse_emf_ecore_EDataType_2_classLit, new EcorePackageImpl$6); - register_0(Lorg_eclipse_emf_ecore_EEnum_2_classLit, new EcorePackageImpl$7); - register_0(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, new EcorePackageImpl$8); - register_0(Lorg_eclipse_emf_ecore_EFactory_2_classLit, new EcorePackageImpl$9); - register_0(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, new EcorePackageImpl$10); - register_0(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, new EcorePackageImpl$11); - register_0(Lorg_eclipse_emf_ecore_EObject_2_classLit, new EcorePackageImpl$12); - register_0(Lorg_eclipse_emf_ecore_EOperation_2_classLit, new EcorePackageImpl$13); - register_0(Lorg_eclipse_emf_ecore_EPackage_2_classLit, new EcorePackageImpl$14); - register_0(Lorg_eclipse_emf_ecore_EParameter_2_classLit, new EcorePackageImpl$15); - register_0(Lorg_eclipse_emf_ecore_EReference_2_classLit, new EcorePackageImpl$16); - register_0(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, new EcorePackageImpl$17); - register_0(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, new EcorePackageImpl$18); - register_0(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, new EcorePackageImpl$19); - register_0(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, new EcorePackageImpl$20); - register_0(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, new EcorePackageImpl$21); - register_0(Ljava_lang_Boolean_2_classLit, new EcorePackageImpl$22); - register_0(getClassLiteralForArray(B_classLit, 1), new EcorePackageImpl$23); - register_0(Ljava_lang_Byte_2_classLit, new EcorePackageImpl$24); - register_0(Ljava_lang_Character_2_classLit, new EcorePackageImpl$25); - register_0(Ljava_util_Date_2_classLit, new EcorePackageImpl$26); - register_0(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, new EcorePackageImpl$27); - register_0(Ljava_lang_Double_2_classLit, new EcorePackageImpl$28); - register_0(Lorg_eclipse_emf_common_util_EList_2_classLit, new EcorePackageImpl$29); - register_0(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, new EcorePackageImpl$30); - register_0(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, new EcorePackageImpl$31); - register_0(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, new EcorePackageImpl$32); - register_0(Ljava_lang_Float_2_classLit, new EcorePackageImpl$33); - register_0(Ljava_lang_Integer_2_classLit, new EcorePackageImpl$34); - register_0(Ljava_lang_Class_2_classLit, new EcorePackageImpl$35); - register_0(Ljava_lang_Long_2_classLit, new EcorePackageImpl$36); - register_0(Ljava_util_Map_2_classLit, new EcorePackageImpl$37); - register_0(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, new EcorePackageImpl$38); - register_0(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, new EcorePackageImpl$39); - register_0(Ljava_lang_Short_2_classLit, new EcorePackageImpl$40); - register_0(Ljava_lang_String_2_classLit, new EcorePackageImpl$41); - register_0(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, new EcorePackageImpl$42); - register_0(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, new EcorePackageImpl$43); -} - -function internalBootstrap(){ - $clinit_EcorePackageImpl(); - var eGenericType, eGenericType$iterator; - $createExtendedMetaDataAnnotations(($clinit_EcorePackage() , eINSTANCE_2)); - $createEcoreAnnotations(eINSTANCE_2); - $freeze_0(eINSTANCE_2); - eJavaObject = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT); - for (eGenericType$iterator = new ArrayList$1(eGenericTypes_0); eGenericType$iterator.i < eGenericType$iterator.this$01.array.length;) { - eGenericType = castTo($next_7(eGenericType$iterator), 241); - $setERawType(eGenericType, EJAVA_OBJECT, null); - } - return true; -} - -defineClass(547, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 1939:1, 49:1, 97:1, 150:1, 179:1, 547:1, 114:1, 115:1, 675:1}, EcorePackageImpl); -_.isCreated = false; -_.isInitialized = false; -var eGenericTypes_0, isInited_0 = false; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl', 547); -function EcorePackageImpl$1(){ -} - -defineClass(1184, 1, {837:1}, EcorePackageImpl$1); -_.getEValidator = function getEValidator(){ - return $clinit_EcoreValidator() , INSTANCE_10; -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/1', 1184); -function EcorePackageImpl$10(){ -} - -defineClass(1193, 1, $intern_162, EcorePackageImpl$10); -_.isInstance = function isInstance_6(instance){ - return instanceOf(instance, 147); -} -; -_.newArrayInstance = function newArrayInstance(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, $intern_2, 147, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/10', 1193); -function EcorePackageImpl$11(){ -} - -defineClass(1194, 1, $intern_162, EcorePackageImpl$11); -_.isInstance = function isInstance_7(instance){ - return instanceOf(instance, 191); -} -; -_.newArrayInstance = function newArrayInstance_0(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, $intern_2, 191, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/11', 1194); -function EcorePackageImpl$12(){ -} - -defineClass(1195, 1, $intern_162, EcorePackageImpl$12); -_.isInstance = function isInstance_8(instance){ - return instanceOf(instance, 56); -} -; -_.newArrayInstance = function newArrayInstance_1(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/12', 1195); -function EcorePackageImpl$13(){ -} - -defineClass(1196, 1, $intern_162, EcorePackageImpl$13); -_.isInstance = function isInstance_9(instance){ - return instanceOf(instance, 399); -} -; -_.newArrayInstance = function newArrayInstance_2(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/13', 1196); -function EcorePackageImpl$14(){ -} - -defineClass(1197, 1, $intern_162, EcorePackageImpl$14); -_.isInstance = function isInstance_10(instance){ - return instanceOf(instance, 235); -} -; -_.newArrayInstance = function newArrayInstance_3(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EPackage_2_classLit, $intern_2, 235, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/14', 1197); -function EcorePackageImpl$15(){ -} - -defineClass(1198, 1, $intern_162, EcorePackageImpl$15); -_.isInstance = function isInstance_11(instance){ - return instanceOf(instance, 509); -} -; -_.newArrayInstance = function newArrayInstance_4(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EParameter_2_classLit, $intern_2, 2017, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/15', 1198); -function EcorePackageImpl$16(){ -} - -defineClass(1199, 1, $intern_162, EcorePackageImpl$16); -_.isInstance = function isInstance_12(instance){ - return instanceOf(instance, 99); -} -; -_.newArrayInstance = function newArrayInstance_5(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/16', 1199); -function EcorePackageImpl$17(){ -} - -defineClass(1200, 1, $intern_162, EcorePackageImpl$17); -_.isInstance = function isInstance_13(instance){ - return instanceOf(instance, 170); -} -; -_.newArrayInstance = function newArrayInstance_6(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/17', 1200); -function EcorePackageImpl$18(){ -} - -defineClass(1201, 1, $intern_162, EcorePackageImpl$18); -_.isInstance = function isInstance_14(instance){ - return instanceOf(instance, 472); -} -; -_.newArrayInstance = function newArrayInstance_7(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, $intern_2, 472, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/18', 1201); -function EcorePackageImpl$19(){ -} - -defineClass(1202, 1, $intern_162, EcorePackageImpl$19); -_.isInstance = function isInstance_15(instance){ - return instanceOf(instance, 548); -} -; -_.newArrayInstance = function newArrayInstance_8(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, $intern_146, 548, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/19', 1202); -function EcorePackageImpl$2(){ -} - -defineClass(1185, 1, $intern_162, EcorePackageImpl$2); -_.isInstance = function isInstance_16(instance){ - return instanceOf(instance, 322); -} -; -_.newArrayInstance = function newArrayInstance_9(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/2', 1185); -function EcorePackageImpl$20(){ -} - -defineClass(1203, 1, $intern_162, EcorePackageImpl$20); -_.isInstance = function isInstance_17(instance){ - return instanceOf(instance, 241); -} -; -_.newArrayInstance = function newArrayInstance_10(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/20', 1203); -function EcorePackageImpl$21(){ -} - -defineClass(1204, 1, $intern_162, EcorePackageImpl$21); -_.isInstance = function isInstance_18(instance){ - return instanceOf(instance, 444); -} -; -_.newArrayInstance = function newArrayInstance_11(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, $intern_2, 836, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/21', 1204); -function EcorePackageImpl$22(){ -} - -defineClass(1205, 1, $intern_162, EcorePackageImpl$22); -_.isInstance = function isInstance_19(instance){ - return instanceOfBoolean(instance); -} -; -_.newArrayInstance = function newArrayInstance_12(size_0){ - return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/22', 1205); -function EcorePackageImpl$23(){ -} - -defineClass(1206, 1, $intern_162, EcorePackageImpl$23); -_.isInstance = function isInstance_20(instance){ - return instanceOf(instance, 190); -} -; -_.newArrayInstance = function newArrayInstance_13(size_0){ - return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/23', 1206); -function EcorePackageImpl$24(){ -} - -defineClass(1207, 1, $intern_162, EcorePackageImpl$24); -_.isInstance = function isInstance_21(instance){ - return instanceOf(instance, 217); -} -; -_.newArrayInstance = function newArrayInstance_14(size_0){ - return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/24', 1207); -function EcorePackageImpl$25(){ -} - -defineClass(1208, 1, $intern_162, EcorePackageImpl$25); -_.isInstance = function isInstance_22(instance){ - return instanceOf(instance, 172); -} -; -_.newArrayInstance = function newArrayInstance_15(size_0){ - return initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/25', 1208); -function EcorePackageImpl$26(){ -} - -defineClass(1209, 1, $intern_162, EcorePackageImpl$26); -_.isInstance = function isInstance_23(instance){ - return instanceOf(instance, 199); -} -; -_.newArrayInstance = function newArrayInstance_16(size_0){ - return initUnidimensionalArray(Ljava_util_Date_2_classLit, $intern_16, 199, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/26', 1209); -function EcorePackageImpl$27(){ -} - -defineClass(1210, 1, $intern_162, EcorePackageImpl$27); -_.isInstance = function isInstance_24(instance){ - return false; -} -; -_.newArrayInstance = function newArrayInstance_17(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, $intern_2, 2110, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/27', 1210); -function EcorePackageImpl$28(){ -} - -defineClass(1211, 1, $intern_162, EcorePackageImpl$28); -_.isInstance = function isInstance_25(instance){ - return instanceOfDouble(instance); -} -; -_.newArrayInstance = function newArrayInstance_18(size_0){ - return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/28', 1211); -function EcorePackageImpl$29(){ -} - -defineClass(1212, 1, $intern_162, EcorePackageImpl$29); -_.isInstance = function isInstance_26(instance){ - return instanceOf(instance, 58); -} -; -_.newArrayInstance = function newArrayInstance_19(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_EList_2_classLit, $intern_99, 58, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/29', 1212); -function EcorePackageImpl$3(){ -} - -defineClass(1186, 1, $intern_162, EcorePackageImpl$3); -_.isInstance = function isInstance_27(instance){ - return instanceOf(instance, 510); -} -; -_.newArrayInstance = function newArrayInstance_20(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, {3:1, 4:1, 5:1, 1934:1}, 590, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/3', 1186); -function EcorePackageImpl$30(){ -} - -defineClass(1213, 1, $intern_162, EcorePackageImpl$30); -_.isInstance = function isInstance_28(instance){ - return instanceOf(instance, 573); -} -; -_.newArrayInstance = function newArrayInstance_21(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, $intern_2, 1940, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/30', 1213); -function EcorePackageImpl$31(){ -} - -defineClass(1214, 1, $intern_162, EcorePackageImpl$31); -_.isInstance = function isInstance_29(instance){ - return instanceOf(instance, 153); -} -; -_.newArrayInstance = function newArrayInstance_22(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, $intern_99, 153, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/31', 1214); -function EcorePackageImpl$32(){ -} - -defineClass(1215, 1, $intern_162, EcorePackageImpl$32); -_.isInstance = function isInstance_30(instance){ - return instanceOf(instance, 72); -} -; -_.newArrayInstance = function newArrayInstance_23(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, $intern_163, 72, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/32', 1215); -function EcorePackageImpl$33(){ -} - -defineClass(1216, 1, $intern_162, EcorePackageImpl$33); -_.isInstance = function isInstance_31(instance){ - return instanceOf(instance, 155); -} -; -_.newArrayInstance = function newArrayInstance_24(size_0){ - return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/33', 1216); -function EcorePackageImpl$34(){ -} - -defineClass(1217, 1, $intern_162, EcorePackageImpl$34); -_.isInstance = function isInstance_32(instance){ - return instanceOf(instance, 19); -} -; -_.newArrayInstance = function newArrayInstance_25(size_0){ - return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/34', 1217); -function EcorePackageImpl$35(){ -} - -defineClass(1218, 1, $intern_162, EcorePackageImpl$35); -_.isInstance = function isInstance_33(instance){ - return instanceOf(instance, 290); -} -; -_.newArrayInstance = function newArrayInstance_26(size_0){ - return initUnidimensionalArray(Ljava_lang_Class_2_classLit, $intern_2, 290, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/35', 1218); -function EcorePackageImpl$36(){ -} - -defineClass(1219, 1, $intern_162, EcorePackageImpl$36); -_.isInstance = function isInstance_34(instance){ - return instanceOf(instance, 162); -} -; -_.newArrayInstance = function newArrayInstance_27(size_0){ - return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/36', 1219); -function EcorePackageImpl$37(){ -} - -defineClass(1220, 1, $intern_162, EcorePackageImpl$37); -_.isInstance = function isInstance_35(instance){ - return instanceOf(instance, 83); -} -; -_.newArrayInstance = function newArrayInstance_28(size_0){ - return initUnidimensionalArray(Ljava_util_Map_2_classLit, $intern_2, 83, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/37', 1220); -function EcorePackageImpl$38(){ -} - -defineClass(1221, 1, $intern_162, EcorePackageImpl$38); -_.isInstance = function isInstance_36(instance){ - return instanceOf(instance, 591); -} -; -_.newArrayInstance = function newArrayInstance_29(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, $intern_2, 591, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/38', 1221); -function EcorePackageImpl$39(){ -} - -defineClass(1222, 1, $intern_162, EcorePackageImpl$39); -_.isInstance = function isInstance_37(instance){ - return false; -} -; -_.newArrayInstance = function newArrayInstance_30(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, $intern_2, 2111, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/39', 1222); -function EcorePackageImpl$4(){ -} - -defineClass(1187, 1, $intern_162, EcorePackageImpl$4); -_.isInstance = function isInstance_38(instance){ - return instanceOf(instance, 88); -} -; -_.newArrayInstance = function newArrayInstance_31(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/4', 1187); -function EcorePackageImpl$40(){ -} - -defineClass(1223, 1, $intern_162, EcorePackageImpl$40); -_.isInstance = function isInstance_39(instance){ - return instanceOf(instance, 184); -} -; -_.newArrayInstance = function newArrayInstance_32(size_0){ - return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/40', 1223); -function EcorePackageImpl$41(){ -} - -defineClass(1224, 1, $intern_162, EcorePackageImpl$41); -_.isInstance = function isInstance_40(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_33(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/41', 1224); -function EcorePackageImpl$42(){ -} - -defineClass(1225, 1, $intern_162, EcorePackageImpl$42); -_.isInstance = function isInstance_41(instance){ - return instanceOf(instance, 588); -} -; -_.newArrayInstance = function newArrayInstance_34(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, $intern_2, 588, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/42', 1225); -function EcorePackageImpl$43(){ -} - -defineClass(1226, 1, $intern_162, EcorePackageImpl$43); -_.isInstance = function isInstance_42(instance){ - return false; -} -; -_.newArrayInstance = function newArrayInstance_35(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, $intern_16, 2112, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/43', 1226); -function EcorePackageImpl$44(){ -} - -defineClass(1227, 1, $intern_162, EcorePackageImpl$44); -_.isInstance = function isInstance_43(instance){ - return instanceOf(instance, 42); -} -; -_.newArrayInstance = function newArrayInstance_36(size_0){ - return initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/44', 1227); -function EcorePackageImpl$5(){ -} - -defineClass(1188, 1, $intern_162, EcorePackageImpl$5); -_.isInstance = function isInstance_44(instance){ - return instanceOf(instance, 138); -} -; -_.newArrayInstance = function newArrayInstance_37(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/5', 1188); -function EcorePackageImpl$6(){ -} - -defineClass(1189, 1, $intern_162, EcorePackageImpl$6); -_.isInstance = function isInstance_45(instance){ - return instanceOf(instance, 148); -} -; -_.newArrayInstance = function newArrayInstance_38(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EDataType_2_classLit, $intern_2, 148, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/6', 1189); -function EcorePackageImpl$7(){ -} - -defineClass(1190, 1, $intern_162, EcorePackageImpl$7); -_.isInstance = function isInstance_46(instance){ - return instanceOf(instance, 457); -} -; -_.newArrayInstance = function newArrayInstance_39(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnum_2_classLit, $intern_2, 671, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/7', 1190); -function EcorePackageImpl$8(){ -} - -defineClass(1191, 1, $intern_162, EcorePackageImpl$8); -_.isInstance = function isInstance_47(instance){ - return instanceOf(instance, 573); -} -; -_.newArrayInstance = function newArrayInstance_40(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, $intern_2, 678, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/8', 1191); -function EcorePackageImpl$9(){ -} - -defineClass(1192, 1, $intern_162, EcorePackageImpl$9); -_.isInstance = function isInstance_48(instance){ - return instanceOf(instance, 471); -} -; -_.newArrayInstance = function newArrayInstance_41(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EFactory_2_classLit, $intern_2, 471, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/9', 1192); -function $didAdd_1(this$static, newAdapter){ - var listener$array, listener$index, listener$max, listeners; - newAdapter.setTarget(this$static.this$01); - listeners = castTo($getField(this$static.this$01, 8), 1936); - if (listeners != null) { - for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { - null.$_nullMethod(); - } - } -} - -function $didRemove_0(this$static, index_0, oldAdapter){ - var adapter, listener$array, listener$index, listener$max, listeners, notification; - listeners = castTo($getField(this$static.this$01, 8), 1936); - if (listeners != null) { - for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { - null.$_nullMethod(); - } - } - adapter = oldAdapter; - if ((this$static.this$01.eFlags_0 & 1) == 0) { - notification = new MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$static, oldAdapter, index_0); - adapter.notifyChanged(notification); - } - instanceOf(adapter, 672)?castTo(adapter, 672).unsetTarget(this$static.this$01):adapter.getTarget() == this$static.this$01 && adapter.setTarget(null); -} - -function $setData(this$static, data_0){ - var eContainerAdapterArray, eInternalContainer; - ++this$static.modCount; - if (data_0 != null) { - eContainerAdapterArray = (eInternalContainer = this$static.this$01.eContainer , instanceOf(eInternalContainer, 97)?castTo(eInternalContainer, 97).eBasicAdapterArray():null); - if (equals_46(data_0, eContainerAdapterArray)) { - $setField(this$static.this$01, 4, eContainerAdapterArray); - return; - } - } - $setField(this$static.this$01, 4, castTo(data_0, 126)); -} - -function MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$0){ - $clinit_ArrayDelegatingEList(); - this.this$01 = this$0; -} - -defineClass(1025, 1982, $intern_144, MinimalEObjectImpl$1ArrayDelegatingAdapterList); -_.didAdd = function didAdd_2(index_0, newAdapter){ - $didAdd_1(this, castTo(newAdapter, 415)); -} -; -_.didRemove = function didRemove_1(index_0, oldAdapter){ - $didRemove_0(this, index_0, castTo(oldAdapter, 415)); -} -; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList', 1025); -function MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$1, $anonymous1, $anonymous3){ - this.this$11 = this$1; - NotificationImpl_1.call(this, 8, $anonymous1, null, $anonymous3); -} - -defineClass(1026, 143, $intern_142, MinimalEObjectImpl$1ArrayDelegatingAdapterList$1); -_.getNotifier = function getNotifier_7(){ - return this.this$11.this$01; -} -; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1', 1026); -function $clinit_EcorePlugin(){ - $clinit_EcorePlugin = emptyMethod; - new EcorePlugin; - new ArrayList; -} - -function EcorePlugin(){ - new HashMap; - new HashMap; - new HashMap; -} - -defineClass(1053, 1052, {}, EcorePlugin); -var Lorg_eclipse_emf_ecore_plugin_EcorePlugin_2_classLit = createForClass('org.eclipse.emf.ecore.plugin', 'EcorePlugin', 1053); -var Lorg_eclipse_emf_ecore_resource_Resource_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'Resource'); -function $getEObject(this$static, uriFragmentPath){ - var eObject, i, size_0; - size_0 = uriFragmentPath.array.length; - eObject = $getEObjectForURIFragmentRootSegment(this$static, size_0 == 0?'':(checkCriticalElementIndex(0, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[0]))); - for (i = 1; i < size_0 && !!eObject; ++i) { - eObject = castTo(eObject, 49).eObjectForURIFragmentSegment((checkCriticalElementIndex(i, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[i]))); - } - return eObject; -} - -function $getEObjectByID(this$static, id_0){ - var eObject, eObjectId, i, result, eClass, eIDAttribute; - result = null; - for (i = new ResourceImpl$5((!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents)); $hasNext_7(i);) { - eObject = castTo($next_14(i), 56); - eObjectId = (eClass = eObject.eClass_0() , eIDAttribute = ($getEAllAttributes(eClass) , eClass.eIDAttribute) , !eIDAttribute || !eObject.eIsSet_0(eIDAttribute)?null:convertToString_2($getEAttributeType(eIDAttribute), eObject.eGet_0(eIDAttribute))); - if (eObjectId != null) { - if ($equals_5(eObjectId, id_0)) { - result = eObject; - break; - } - } - } - return result; -} - -function $getEObjectForURIFragmentRootSegment(this$static, uriFragmentRootSegment){ - var contents, exception, position; - position = 0; - if (uriFragmentRootSegment.length > 0) { - try { - position = __parseAndValidateInt(uriFragmentRootSegment, $intern_42, $intern_0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new WrappedException(exception)); - } - else - throw toJs($e0); - } - } - contents = (!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents); - return position < contents.size_0 && position >= 0?castTo($get_20(contents, position), 56):null; -} - -defineClass(781, 1378, $intern_164); -_.attached = function attached(eObject){ -} -; -_.detached = function detached(eObject){ -} -; -_.getContents = function getContents(){ - return !this.contents && (this.contents = new ResourceImpl$ContentsEList(this)) , this.contents; -} -; -_.getEObject = function getEObject(uriFragment){ - var i, index_0, length_0, start_0, uriFragmentPath; - length_0 = uriFragment.length; - if (length_0 > 0) { - checkCriticalStringElementIndex(0, uriFragment.length); - if (uriFragment.charCodeAt(0) == 47) { - uriFragmentPath = new ArrayList_0(4); - start_0 = 1; - for (i = 1; i < length_0; ++i) { - checkCriticalStringElementIndex(i, uriFragment.length); - if (uriFragment.charCodeAt(i) == 47) { - $add_3(uriFragmentPath, start_0 == i?'':uriFragment.substr(start_0, i - start_0)); - start_0 = i + 1; - } - } - $add_3(uriFragmentPath, uriFragment.substr(start_0)); - return $getEObject(this, uriFragmentPath); - } - else { - checkCriticalStringElementIndex(length_0 - 1, uriFragment.length); - if (uriFragment.charCodeAt(length_0 - 1) == 63) { - index_0 = $lastIndexOf_0(uriFragment, fromCodePoint(63), length_0 - 2); - index_0 > 0 && (uriFragment = uriFragment.substr(0, index_0)); - } - } - } - return $getEObjectByID(this, uriFragment); -} -; -_.getResourceSet = function getResourceSet(){ - return this.resourceSet; -} -; -_.toString_0 = function toString_156(){ - var number; - return $getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)) + " uri='" + this.uri_0 + "'"; -} -; -_.isLoaded = false; -var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl', 781); -function BinaryResourceImpl(uri_0){ - this.uri_0 = uri_0; -} - -defineClass(1379, 781, $intern_164, BinaryResourceImpl); -var Lorg_eclipse_emf_ecore_resource_impl_BinaryResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'BinaryResourceImpl', 1379); -function $getEObjectChildren(this$static, eObject){ - return this$static.isResolveProxies?eObject.eContents_0().iterator_0():castTo(eObject.eContents_0(), 69).basicIterator(); -} - -function $hasNext_7(this$static){ - var iterator; - if (!this$static.includeRoot && this$static.data_0 == null) { - this$static.nextPruneIterator = this$static.getChildren(this$static.object); - $add_21(this$static, this$static.nextPruneIterator); - iterator = this$static.nextPruneIterator; - } - else { - if (this$static.data_0 == null) { - return true; - } - else if (this$static.size_0 == 0) { - return false; - } - else { - iterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); - } - } - if (iterator == this$static.resourceSetIterator && null.$_nullField >= null.$_nullMethod()) { - $next_14(this$static); - return $hasNext_7(this$static); - } - else { - return iterator.hasNext_0(); - } -} - -defineClass(1169, 694, $intern_139); -_.getChildren = function getChildren_0(object){ - return instanceOf(object, 56)?$getEObjectChildren(this, castTo(object, 56)):instanceOf(object, 591)?new AbstractEList$EIterator(castTo(object, 591).getContents()):maskUndefined(object) === maskUndefined(this.object)?castTo(object, 14).iterator_0():($clinit_ECollections() , EMPTY_ELIST.listIterator); -} -; -_.hasNext_0 = function hasNext_48(){ - return $hasNext_7(this); -} -; -_.isResolveProxies = false; -var Lorg_eclipse_emf_ecore_util_EcoreUtil$ContentTreeIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ContentTreeIterator', 1169); -function ResourceImpl$5($anonymous0){ - AbstractTreeIterator.call(this, $anonymous0, false); - this.isResolveProxies = false; -} - -defineClass(1380, 1169, $intern_139, ResourceImpl$5); -_.getChildren = function getChildren_1(object){ - return maskUndefined(object) === maskUndefined(this.object)?castTo(object, 15).iterator_0():new EcoreUtil$ProperContentIterator(castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/5', 1380); -function ResourceImpl$ContentsEList(this$0){ - this.this$01 = this$0; -} - -defineClass(648, 1994, $intern_153, ResourceImpl$ContentsEList); -_.contains = function contains_66(object){ - return this.size_0 <= 4?$contains_10(this, object):instanceOf(object, 49) && castTo(object, 49).eDirectResource() == this.this$01; -} -; -_.didAdd = function didAdd_3(index_0, object){ - index_0 == this.size_0 - 1 && (this.this$01.isLoaded || (this.this$01.isLoaded = true , null)); -} -; -_.didClear = function didClear_1(oldSize, oldData){ - oldSize == 0?this.this$01.isLoaded || (this.this$01.isLoaded = true , null):$didClear(this, oldSize, oldData); -} -; -_.didRemove = function didRemove_2(index_0, object){ -} -; -_.didSet = function didSet_1(index_0, newObject, oldObject){ -} -; -_.getFeatureID_0 = function getFeatureID_12(){ - return 2; -} -; -_.getNotifier = function getNotifier_8(){ - return this.this$01; -} -; -_.hasInverse = function hasInverse_10(){ - return true; -} -; -_.inverseAdd = function inverseAdd_8(object, notifications){ - var eObject; - eObject = castTo(object, 49); - notifications = eObject.eSetResource(this.this$01, notifications); - return notifications; -} -; -_.inverseRemove = function inverseRemove_8(object, notifications){ - var eObject; - eObject = castTo(object, 49); - return eObject.eSetResource(null, notifications); -} -; -_.isNotificationRequired = function isNotificationRequired_3(){ - return false; -} -; -_.isUnique = function isUnique_7(){ - return true; -} -; -_.newData = function newData_13(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, capacity, 0, 1); -} -; -_.useEquals = function useEquals_14(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$ContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/ContentsEList', 648); -function AbstractSequentialInternalEList$1(this$0){ - this.this$01 = this$0; -} - -defineClass(957, 1964, $intern_37, AbstractSequentialInternalEList$1); -_.listIterator_1 = function listIterator_32(index_0){ - return this.this$01.basicListIterator_0(index_0); -} -; -_.size_1 = function size_79(){ - return this.this$01.size_1(); -} -; -var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList/1', 957); -function $clinit_ExtendedMetaData(){ - $clinit_ExtendedMetaData = emptyMethod; - FEATURE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'simple', 'attribute', 'attributeWildcard', 'element', 'elementWildcard', 'group']); - CONTENT_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'empty', 'simple', 'mixed', 'elementOnly']); - WHITE_SPACE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'preserve', 'replace', 'collapse']); - INSTANCE_11 = new BasicExtendedMetaData; -} - -var CONTENT_KINDS, FEATURE_KINDS, INSTANCE_11, WHITE_SPACE_KINDS; -function $clinit_BasicExtendedMetaData(){ - $clinit_BasicExtendedMetaData = emptyMethod; - var eAttribute, eDataType; - UNINITIALIZED_EDATA_TYPE = ($clinit_EcoreFactory() , eDataType = new EDataTypeImpl , eDataType); - UNINITIALIZED_ESTRUCTURAL_FEATURE = (eAttribute = new EAttributeImpl , eAttribute); -} - -function $basicGetAffiliation(this$static, eStructuralFeature){ - var eAnnotation, fragmentIndex, qualifiedName; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'affiliation')); - if (qualifiedName != null) { - fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); - return fragmentIndex == -1?$getElement(this$static, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())), qualifiedName):fragmentIndex == 0?$getElement(this$static, null, qualifiedName.substr(1)):$getElement(this$static, qualifiedName.substr(0, fragmentIndex), qualifiedName.substr(fragmentIndex + 1)); - } - } - return null; -} - -function $basicGetBaseType(this$static, eDataType){ - var baseType, details, eAnnotation, index_0, type_0; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); - baseType = castToString($get_21(details, 'baseType')); - if (baseType != null) { - index_0 = baseType.lastIndexOf('#'); - type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), baseType):index_0 == 0?$getType(this$static, null, baseType.substr(1)):$getType(this$static, baseType.substr(0, index_0), baseType.substr(index_0 + 1)); - if (instanceOf(type_0, 148)) { - return castTo(type_0, 148); - } - } - } - return null; -} - -function $basicGetContentKind(this$static, eClass){ - var eAnnotation, i, kind; - eAnnotation = eClass.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); - if (kind != null) { - for (i = 1; i < ($clinit_ExtendedMetaData() , CONTENT_KINDS).length; ++i) { - if ($equals_5(CONTENT_KINDS[i], kind)) { - return i; - } - } - } - } - return 0; -} - -function $basicGetFeatureKind(this$static, eStructuralFeature){ - var eAnnotation, i, kind; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); - if (kind != null) { - for (i = 1; i < ($clinit_ExtendedMetaData() , FEATURE_KINDS).length; ++i) { - if ($equals_5(FEATURE_KINDS[i], kind)) { - return i; - } - } - } - } - return 0; -} - -function $basicGetGroup(this$static, eStructuralFeature){ - var eAnnotation, eContainingClass, fragmentIndex, name_0, namespace, qualifiedName; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group')); - if (qualifiedName != null) { - fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); - eContainingClass = eStructuralFeature.getEContainingClass(); - if (fragmentIndex == -1) { - namespace = $getNamespace(this$static, $getEPackage(eContainingClass)); - name_0 = qualifiedName; - } - else if (fragmentIndex == 0) { - namespace = null; - name_0 = qualifiedName.substr(1); - } - else { - namespace = qualifiedName.substr(0, fragmentIndex); - name_0 = qualifiedName.substr(fragmentIndex + 1); - } - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 2: - case 3: - { - return $getAttribute_0(this$static, eContainingClass, namespace, name_0); - } - - case 0: - case 4: - case 5: - case 6: - { - return $getElement_0(this$static, eContainingClass, namespace, name_0); - } - - } - } - } - return null; -} - -function $basicGetItemType(this$static, eDataType){ - var details, eAnnotation, index_0, itemType, type_0; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); - itemType = castToString($get_21(details, 'itemType')); - if (itemType != null) { - index_0 = itemType.lastIndexOf('#'); - type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), itemType):index_0 == 0?$getType(this$static, null, itemType.substr(1)):$getType(this$static, itemType.substr(0, index_0), itemType.substr(index_0 + 1)); - if (instanceOf(type_0, 148)) { - return castTo(type_0, 148); - } - } - } - return null; -} - -function $basicGetMemberTypes(this$static, eDataType){ - var eAnnotation, index_0, member, member$array, member$index, member$max, memberTypes, result, type_0; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - memberTypes = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'memberTypes')); - if (memberTypes != null) { - result = new ArrayList; - for (member$array = $split_0(memberTypes, '\\w') , member$index = 0 , member$max = member$array.length; member$index < member$max; ++member$index) { - member = member$array[member$index]; - index_0 = member.lastIndexOf('#'); - type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), member):index_0 == 0?$getType(this$static, null, member.substr(1)):$getType(this$static, member.substr(0, index_0), member.substr(index_0 + 1)); - instanceOf(type_0, 148) && $add_3(result, castTo(type_0, 148)); - } - return result; - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function $basicGetName(this$static, eClassifier){ - var eAnnotation, result; - eAnnotation = eClassifier.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); - if (result != null) { - return result; - } - } - return eClassifier.getName(); -} - -function $basicGetName_0(this$static, eStructuralFeature){ - var eAnnotation, result; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); - if (result != null) { - return result; - } - } - return eStructuralFeature.getName(); -} - -function $basicGetNamespace(this$static, eStructuralFeature){ - var eAnnotation, result; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (!eAnnotation) { - return null; - } - else { - result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'namespace')); - return $equals_5('##targetNamespace', result)?$getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())):result; - } -} - -function $basicGetWhiteSpaceFacet(this$static, eDataType){ - var eAnnotation, i, whiteSpaceLiteral; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - whiteSpaceLiteral = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'whiteSpace')); - for (i = 1; i < ($clinit_ExtendedMetaData() , WHITE_SPACE_KINDS).length; ++i) { - if ($equals_5(WHITE_SPACE_KINDS[i], whiteSpaceLiteral)) { - return i; - } - } - } - return 0; -} - -function $basicGetWildcards(this$static, eStructuralFeature){ - var eAnnotation, result, wildcard, wildcard$array, wildcard$index, wildcard$max, wildcards; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - wildcards = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'wildcards')); - if (wildcards != null) { - result = new ArrayList; - for (wildcard$array = $split_0(wildcards, '\\w') , wildcard$index = 0 , wildcard$max = wildcard$array.length; wildcard$index < wildcard$max; ++wildcard$index) { - wildcard = wildcard$array[wildcard$index]; - $equals_5(wildcard, '##other')?$add_3(result, '!##' + $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):$equals_5(wildcard, '##local')?(result.array[result.array.length] = null , true):$equals_5(wildcard, '##targetNamespace')?$add_3(result, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):(result.array[result.array.length] = wildcard , true); - } - return result; - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function $getAffiliation(this$static, eClass, eStructuralFeature){ - var affiliation, allAttributes, allElements, i, name_0, namespace, namespace0, result, size_0; - if ($getFeatureID(eClass, eStructuralFeature) >= 0) { - return eStructuralFeature; - } - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 2: - { - if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { - namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - name_0 = $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - result = $getLocalAttribute(this$static, eClass, namespace, name_0); - if (result) { - return result; - } - allAttributes = $getAllAttributes(this$static, eClass); - for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { - result = castTo(allAttributes.get_0(i), 170); - if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { - return result; - } - } - } - return null; - } - - case 4: - { - if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { - for (affiliation = eStructuralFeature; affiliation; affiliation = $getAffiliation_0($getExtendedMetaData_1(this$static, affiliation))) { - namespace0 = $getNamespace_0($getExtendedMetaData_1(this$static, affiliation)); - name_0 = $getName_0($getExtendedMetaData_1(this$static, affiliation)); - result = $getLocalElement(this$static, eClass, namespace0, name_0); - if (result) { - return result; - } - } - namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - if ($equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace)) { - return $getMixedFeature(this$static, eClass); - } - else { - allElements = $getAllElements(this$static, eClass); - for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { - result = castTo(allElements.get_0(i), 170); - if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { - return result; - } - } - } - } - return null; - } - - default:{ - return null; - } - - } -} - -function $getAllAttributes(this$static, eClass){ - var allAttributes, attributes, changeable, eGenericType, eSuperType, i, result, result0, size_0, superTypes; - superTypes = $getESuperTypes(eClass); - result0 = null; - changeable = false; - for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { - eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); - allAttributes = $getAllAttributes(this$static, eSuperType); - if (!allAttributes.isEmpty()) { - if (!result0) { - result0 = allAttributes; - } - else { - if (!changeable) { - changeable = true; - result0 = new UniqueEList_0(result0); - } - result0.addAll(allAttributes); - } - } - } - attributes = $getAttributes(this$static, eClass); - if (attributes.isEmpty()) { - return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; - } - else { - if (!result0) { - return attributes; - } - else { - changeable || (result0 = new UniqueEList_0(result0)); - result0.addAll(attributes); - return result0; - } - } -} - -function $getAllElements(this$static, eClass){ - var allElements, changeable, eGenericType, eSuperType, elements, i, result, result0, size_0, superTypes; - superTypes = $getESuperTypes(eClass); - result0 = null; - changeable = false; - for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { - eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); - allElements = $getAllElements(this$static, eSuperType); - if (!allElements.isEmpty()) { - if (!result0) { - result0 = allElements; - } - else { - if (!changeable) { - changeable = true; - result0 = new UniqueEList_0(result0); - } - result0.addAll(allElements); - } - } - } - elements = $getElements(this$static, eClass); - if (elements.isEmpty()) { - return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; - } - else { - if (!result0) { - return elements; - } - else { - changeable || (result0 = new UniqueEList_0(result0)); - result0.addAll(elements); - return result0; - } - } -} - -function $getAnnotation(this$static, eModelElement){ - var result; - result = eModelElement.getEAnnotation(this$static.annotationURI); - return result; -} - -function $getAttribute(this$static, namespace, name_0){ - var documentRoot, ePackage, ePackage0; - ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); - if (ePackage0) { - documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); - if (documentRoot) { - return $getLocalAttribute(this$static, documentRoot, namespace, name_0); - } - } - return null; -} - -function $getAttribute_0(this$static, eClass, namespace, name_0){ - var result; - result = $getLocalAttribute(this$static, eClass, namespace, name_0); - if (!result) { - result = $getAttribute(this$static, namespace, name_0); - if (!!result && !$getAffiliation(this$static, eClass, result)) { - return null; - } - } - return result; -} - -function $getAttributes(this$static, eClass){ - var eStructuralFeature, eStructuralFeatures, i, result, size_0; - eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); - result = null; - for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { - eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 2: - case 3: - { - !result && (result = new ArrayList); - result.array[result.array.length] = eStructuralFeature; - } - - } - } - return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; -} - -function $getElement(this$static, namespace, name_0){ - var documentRoot, ePackage, ePackage0; - ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); - if (ePackage0) { - documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); - if (documentRoot) { - return $getLocalElement(this$static, documentRoot, namespace, name_0); - } - } - return null; -} - -function $getElement_0(this$static, eClass, namespace, name_0){ - var result; - result = $getLocalElement(this$static, eClass, namespace, name_0); - if (!result) { - result = $getElement(this$static, namespace, name_0); - if (!!result && !$getAffiliation(this$static, eClass, result)) { - return null; - } - } - return result; -} - -function $getElements(this$static, eClass){ - var eStructuralFeature, eStructuralFeatures, i, result, size_0; - eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); - result = null; - for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { - eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 4: - case 5: - case 6: - { - !result && (result = new ArrayList); - result.array[result.array.length] = eStructuralFeature; - break; - } - - } - } - return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; -} - -function $getExtendedMetaData(this$static, eClassifier){ - var holder, result; - holder = castTo(eClassifier, 676); - result = holder.getExtendedMetaData_1(); - !result && holder.setExtendedMetaData_1(result = instanceOf(eClassifier, 88)?new BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$static, castTo(eClassifier, 26)):new BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$static, castTo(eClassifier, 148))); - return result; -} - -function $getExtendedMetaData_0(this$static, ePackage){ - var holder, result; - holder = castTo(ePackage, 675); - result = holder.getExtendedMetaData(); - !result && holder.setExtendedMetaData(result = new BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$static, ePackage)); - return result; -} - -function $getExtendedMetaData_1(this$static, eStructuralFeature){ - var holder, result; - holder = castTo(eStructuralFeature, 677); - result = holder.getExtendedMetaData_0(); - !result && holder.setExtendedMetaData_0(result = new BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$static, eStructuralFeature)); - return result; -} - -function $getLocalAttribute(this$static, eClass, namespace, name_0){ - var allAttributes, eStructuralFeature, featureNamespace, i, result, size_0; - result = null; - allAttributes = $getAllAttributes(this$static, eClass); - for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { - eStructuralFeature = castTo(allAttributes.get_0(i), 170); - if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { - featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - if (namespace == null) { - if (featureNamespace == null) { - return eStructuralFeature; - } - else - !result && (result = eStructuralFeature); - } - else if ($equals_5(namespace, featureNamespace)) { - return eStructuralFeature; - } - else - featureNamespace == null && !result && (result = eStructuralFeature); - } - } - return null; -} - -function $getLocalElement(this$static, eClass, namespace, name_0){ - var allElements, eStructuralFeature, featureNamespace, i, result, size_0; - result = null; - allElements = $getAllElements(this$static, eClass); - for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { - eStructuralFeature = castTo(allElements.get_0(i), 170); - if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { - featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - if (namespace == null) { - if (featureNamespace == null) { - return eStructuralFeature; - } - else - !result && (result = eStructuralFeature); - } - else if ($equals_5(namespace, featureNamespace)) { - return eStructuralFeature; - } - else - featureNamespace == null && !result && (result = eStructuralFeature); - } - } - return null; -} - -function $getMixedFeature(this$static, eClass){ - var eAllAttributes, eAttribute, i, size_0; - switch ($getExtendedMetaData(this$static, eClass).getContentKind()) { - case 3: - case 2: - { - eAllAttributes = $getEAllAttributes(eClass); - for (i = 0 , size_0 = eAllAttributes.size_0; i < size_0; ++i) { - eAttribute = castTo($get_20(eAllAttributes, i), 34); - if ($getFeatureKind($getExtendedMetaData_1(this$static, eAttribute)) == 5) { - return eAttribute; - } - } - break; - } - - } - return null; -} - -function $getNamespace(this$static, ePackage){ - return $isQualified($getExtendedMetaData_0(this$static, ePackage))?ePackage.getNsURI():null; -} - -function $getType(this$static, namespace, name_0){ - var ePackage, ePackage0; - ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); - return !ePackage0?null:$getType_1($getExtendedMetaData_0(this$static, ePackage0), name_0); -} - -function $getType_0(this$static, ePackage, name_0){ - return $getType_1($getExtendedMetaData_0(this$static, ePackage), name_0); -} - -function $matches(wildcards, namespace){ - var i, size_0, suffixlength, wildcard; - if (!wildcards.isEmpty()) { - for (i = 0 , size_0 = wildcards.size_1(); i < size_0; ++i) { - wildcard = castToString(wildcards.get_0(i)); - if (wildcard == null?namespace == null:$equals_5(wildcard.substr(0, 3), '!##')?namespace != null && (suffixlength = namespace.length , !$equals_5(wildcard.substr(wildcard.length - suffixlength, suffixlength), namespace) || wildcard.length != namespace.length + 3) && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace):$equals_5(wildcard, '##any') && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace) || $equals_5(wildcard, namespace)) { - return true; - } - } - } - return false; -} - -function BasicExtendedMetaData(){ - $clinit_BasicExtendedMetaData(); - BasicExtendedMetaData_0.call(this, ($clinit_EPackage$Registry() , INSTANCE_6)); -} - -function BasicExtendedMetaData_0(registry){ - this.annotationURI = (checkCriticalNotNull('http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData'); - this.registry = registry; - new EPackageRegistryImpl; -} - -defineClass(624, 1, {}, BasicExtendedMetaData); -var UNINITIALIZED_EDATA_TYPE, UNINITIALIZED_ESTRUCTURAL_FEATURE; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData', 624); -function $setContentKind(this$static, kind){ - this$static.contentKind = kind; -} - -function $setName_2(this$static, name_0){ - this$static.name_0 = name_0; -} - -function BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$0, eClass){ - this.this$01 = this$0; - this.eClass = eClass; -} - -defineClass(1160, 1, {}, BasicExtendedMetaData$EClassExtendedMetaDataImpl); -_.getBaseType = function getBaseType(){ - return null; -} -; -_.getContentKind = function getContentKind(){ - this.contentKind == -2 && $setContentKind(this, $basicGetContentKind(this.this$01, this.eClass)); - return this.contentKind; -} -; -_.getItemType = function getItemType(){ - return null; -} -; -_.getMemberTypes = function getMemberTypes(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.getName = function getName_7(){ - this.name_0 == 'uninitialized' && $setName_2(this, $basicGetName(this.this$01, this.eClass)); - return this.name_0; -} -; -_.getWhiteSpaceFacet = function getWhiteSpaceFacet(){ - return 0; -} -; -_.contentKind = -2; -_.name_0 = 'uninitialized'; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EClassExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EClassExtendedMetaDataImpl', 1160); -function $setBaseType(this$static, baseType){ - this$static.baseType = baseType; -} - -function $setItemType(this$static, itemType){ - this$static.itemType = itemType; -} - -function $setMemberTypes(this$static, memberTypes){ - this$static.memberTypes = memberTypes; -} - -function $setName_3(this$static, name_0){ - this$static.name_0 = name_0; -} - -function $setWhiteSpaceFacet(this$static, whiteSpace){ - this$static.whiteSpace = whiteSpace; -} - -function BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$0, eDataType){ - this.this$01 = this$0; - this.baseType = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE); - this.itemType = UNINITIALIZED_EDATA_TYPE; - this.eDataType = eDataType; -} - -defineClass(1161, 1, {}, BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl); -_.getBaseType = function getBaseType_0(){ - this.baseType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setBaseType(this, $basicGetBaseType(this.this$01, this.eDataType)); - return this.baseType; -} -; -_.getContentKind = function getContentKind_0(){ - return 0; -} -; -_.getItemType = function getItemType_0(){ - this.itemType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setItemType(this, $basicGetItemType(this.this$01, this.eDataType)); - return this.itemType; -} -; -_.getMemberTypes = function getMemberTypes_0(){ - !this.memberTypes && $setMemberTypes(this, $basicGetMemberTypes(this.this$01, this.eDataType)); - return this.memberTypes; -} -; -_.getName = function getName_8(){ - this.name_0 == 'uninitialized' && $setName_3(this, $basicGetName(this.this$01, this.eDataType)); - return this.name_0; -} -; -_.getWhiteSpaceFacet = function getWhiteSpaceFacet_0(){ - this.whiteSpace == -2 && $setWhiteSpaceFacet(this, $basicGetWhiteSpaceFacet(this.this$01, this.eDataType)); - return this.whiteSpace; -} -; -_.name_0 = 'uninitialized'; -_.whiteSpace = -2; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl', 1161); -function $getType_1(this$static, name_0){ - var conflictingEClassifier, eClassifier, eClassifierName, eClassifiers, i, i0, nameToClassifierMap, originalMapSize, result, size_0; - result = null; - !!this$static.nameToClassifierMap && (result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138)); - if (!result) { - eClassifiers = this$static.ePackage.getEClassifiers(); - size_0 = eClassifiers.size_0; - if (!this$static.nameToClassifierMap || $size_2(this$static.nameToClassifierMap) != size_0) { - nameToClassifierMap = new HashMap; - !!this$static.nameToClassifierMap && $putAll(nameToClassifierMap, this$static.nameToClassifierMap); - originalMapSize = nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0; - for (i0 = originalMapSize; i0 < size_0; ++i0) { - eClassifier = castTo($get_20(eClassifiers, i0), 138); - eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); - conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); - !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); - } - if (nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0 != size_0) { - for (i = 0; i < originalMapSize; ++i) { - eClassifier = castTo($get_20(eClassifiers, i), 138); - eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); - conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); - !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); - } - } - this$static.nameToClassifierMap = nameToClassifierMap; - } - result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138); - } - return result; -} - -function $isQualified(this$static){ - var eAnnotation; - this$static.isInitialized || $setQualified(this$static, (eAnnotation = $getAnnotation(this$static.this$01, this$static.ePackage) , !eAnnotation || !$equals_5('false', $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'qualified')))); - return this$static.isQualified; -} - -function $setQualified(this$static, isQualified){ - this$static.isQualified = isQualified; - this$static.isInitialized = true; -} - -function BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$0, ePackage){ - this.this$01 = this$0; - this.ePackage = ePackage; -} - -defineClass(1159, 1, {}, BasicExtendedMetaData$EPackageExtendedMetaDataImpl); -_.isInitialized = false; -_.isQualified = false; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EPackageExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EPackageExtendedMetaDataImpl', 1159); -function $getAffiliation_0(this$static){ - this$static.affiliation == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setAffiliation(this$static, $basicGetAffiliation(this$static.this$01, this$static.eStructuralFeature)); - return this$static.affiliation; -} - -function $getFeatureKind(this$static){ - this$static.featureKind == -2 && $setFeatureKind(this$static, $basicGetFeatureKind(this$static.this$01, this$static.eStructuralFeature)); - return this$static.featureKind; -} - -function $getGroup(this$static){ - this$static.group_0 == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setGroup(this$static, $basicGetGroup(this$static.this$01, this$static.eStructuralFeature)); - return this$static.group_0; -} - -function $getName_0(this$static){ - this$static.name_0 == 'uninitialized' && $setName_4(this$static, $basicGetName_0(this$static.this$01, this$static.eStructuralFeature)); - return this$static.name_0; -} - -function $getNamespace_0(this$static){ - this$static.namespace == 'uninitialized' && $setNamespace(this$static, $basicGetNamespace(this$static.this$01, this$static.eStructuralFeature)); - return this$static.namespace; -} - -function $getWildcards(this$static){ - !this$static.wildcards && $setWildcards(this$static, $basicGetWildcards(this$static.this$01, this$static.eStructuralFeature)); - return this$static.wildcards; -} - -function $setAffiliation(this$static, affiliation){ - this$static.affiliation = affiliation; -} - -function $setFeatureKind(this$static, kind){ - this$static.featureKind = kind; -} - -function $setGroup(this$static, group){ - this$static.group_0 = group; -} - -function $setName_4(this$static, name_0){ - this$static.name_0 = name_0; -} - -function $setNamespace(this$static, namespace){ - this$static.namespace = namespace; -} - -function $setWildcards(this$static, wildcards){ - this$static.wildcards = wildcards; -} - -function BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$0, eStructuralFeature){ - this.this$01 = this$0; - this.group_0 = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE); - this.affiliation = UNINITIALIZED_ESTRUCTURAL_FEATURE; - this.eStructuralFeature = eStructuralFeature; -} - -defineClass(1162, 1, {}, BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl); -_.featureKind = -2; -_.name_0 = 'uninitialized'; -_.namespace = 'uninitialized'; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl', 1162); -function EDataTypeEList(dataClass, owner, featureID){ - EcoreEList.call(this, dataClass, owner); - this.featureID = featureID; -} - -defineClass(585, 622, $intern_154, EDataTypeEList); -_.getFeatureID_0 = function getFeatureID_13(){ - return this.featureID; -} -; -_.isEObject = function isEObject_4(){ - return false; -} -; -_.resolve = function resolve_8(index_0, object){ - return object; -} -; -_.featureID = 0; -var Lorg_eclipse_emf_ecore_util_EDataTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList', 585); -var Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap'); -function $add_31(this$static, index_0, object){ - var entries, entry, entryFeature, i, otherEntry, validator; - entry = object; - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this$static.owner, entryFeature)) { - if (entryFeature.isUnique()) { - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), entryFeature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - } - $add_20(this$static, index_0, object); -} - -function $add_32(this$static, feature, index_0, object){ - var entries, entry, i, isFeatureMap, validator; - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - } - $add_20(this$static, $entryIndex(this$static, feature, index_0), isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); -} - -function $add_33(this$static, feature, object){ - var entries, entry, i, isFeatureMap, validator; - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - return false; - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (isFeatureMap?equals_Ljava_lang_Object__Z__devirtual$(entry, object):object == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - return false; - } - else { - castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); - return true; - } - } - } - } - return $add_21(this$static, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); -} - -function $add_34(this$static, object){ - var entries, entry, entryFeature, i, otherEntry, validator; - entry = object; - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this$static.owner, entryFeature)) { - if (entryFeature.isUnique() && $contains_12(this$static, entryFeature, entry.getValue())) { - return false; - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), entryFeature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry)) { - return false; - } - else { - castTo($set_11(this$static, i, object), 72); - return true; - } - } - } - } - return $add_21(this$static, object); -} - -function $addAll_12(this$static, feature, index_0, collection){ - var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; - if (collection.size_1() == 0) { - return false; - } - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique()) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - entry = createEntry_5(feature, object); - entryCollection.add_2(entry); - } - } - } - else if (!isFeatureMap) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - entry = createEntry_5(feature, object); - entryCollection.add_2(entry); - } - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - if (collection.size_1() > 1) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - if (!isFeatureMap) { - entry = createEntry_5(feature, collection.iterator_0().next_1()); - entryCollection.add_2(entry); - } - } - return $addAll_8(this$static, $entryIndex(this$static, feature, index_0), entryCollection); -} - -function $addAll_13(this$static, feature, collection){ - var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; - if (collection.size_1() == 0) { - return false; - } - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique()) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - entry = createEntry_5(feature, object); - entryCollection.contains(entry) || entryCollection.add_2(entry); - } - } - } - else if (!isFeatureMap) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - entry = createEntry_5(feature, object); - entryCollection.add_2(entry); - } - } - } - else { - if (collection.size_1() > 1) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (collection.contains(isFeatureMap?entry:entry.getValue())) { - return false; - } - else { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); - } - return true; - } - } - } - if (!isFeatureMap) { - entry = createEntry_5(feature, collection.iterator_0().next_1()); - entryCollection.add_2(entry); - } - } - return $addAll_9(this$static, entryCollection); -} - -function $addUnique_11(this$static, feature, index_0, object){ - var prototype_0; - this$static.modCount = -1; - $addUnique_5(this$static, $entryIndex(this$static, feature, index_0), ($clinit_FeatureMapUtil() , prototype_0 = castTo(feature, 66).getFeatureMapEntryPrototype() , prototype_0.createEntry(object))); -} - -function $addUnique_12(this$static, entry){ - var index_0, notification, notifications, oldIsSet; - this$static.modCount = -1; - if ($eNotificationRequired(this$static.owner)) { - index_0 = this$static.size_0; - oldIsSet = this$static.size_0 != 0; - $addUnique_0(this$static, entry); - notification = new ENotificationImpl_3(this$static.owner, 3, this$static.featureID, null, entry, index_0, oldIsSet); - notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); - notifications = $shadowAdd_1(this$static, entry, notifications); - if (!notifications) { - $eNotify(this$static.owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - $addUnique_0(this$static, entry); - notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); - !!notifications && notifications.dispatch_0(); - } -} - -function $addUnique_13(this$static, object){ - ++this$static.modCount; - $validate_3(this$static, this$static.size_0, object); - $addUnique_12(this$static, castTo(object, 332)); -} - -function $basicAdd_2(this$static, feature, object, notifications){ - var entries, entry, entry0, i, notification, oldIsSet; - if (object == null) { - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry0 = entries[i]; - if (entry0.getEStructuralFeature() == feature) { - return $basicRemove_0(this$static, entry0, notifications); - } - } - } - entry = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object)); - if ($eNotificationRequired(this$static.owner)) { - oldIsSet = !$isEmpty_1(this$static, feature); - notifications = $basicAdd_0(this$static, entry, notifications); - notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, object, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), oldIsSet):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), object, -1, oldIsSet); - notifications?notifications.add_5(notification):(notifications = notification); - } - else { - notifications = $basicAdd_0(this$static, entry, notifications); - } - return notifications; -} - -function $basicIterator(this$static, feature){ - return new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $basicListIterator_0(this$static, feature){ - return new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $basicListIterator_1(this$static, feature, index_0){ - var i, result; - result = new BasicFeatureMap$FeatureEIterator(feature, this$static); - for (i = 0; i < index_0; ++i) { - $next_16(result); - } - return result; -} - -function $basicRemove_2(this$static, object, notifications){ - var entries, entry, feature, i, match_0, notification; - if (instanceOf(object, 72)) { - return $basicRemove_0(this$static, object, notifications); - } - else { - match_0 = null; - feature = null; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - feature = entry.getEStructuralFeature(); - if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { - match_0 = entry; - break; - } - } - } - if (match_0) { - if ($eNotificationRequired(this$static.owner)) { - notification = feature.isMany()?$createNotification_0(this$static, 4, feature, object, null, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - } - notifications = $basicRemove_2(this$static, match_0, notifications); - } - return notifications; - } -} - -function $basicRemove_3(this$static, feature, object, notifications){ - var count, entries, entry, i, match_0, notification, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - count = 0; - entries = castTo(this$static.data_0, 119); - match_0 = null; - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - match_0 = entry; - break; - } - ++count; - } - } - } - else if (object != null) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - match_0 = entry; - break; - } - ++count; - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (entry.getValue() == null) { - match_0 = entry; - break; - } - ++count; - } - } - } - if (match_0) { - if ($eNotificationRequired(this$static.owner)) { - notification = feature.isMany()?new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 4, feature, object, null, count, true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - } - notifications = $basicRemove_2(this$static, match_0, notifications); - } - return notifications; -} - -function $clear_15(this$static, feature){ - var entries, entry, entryCollection, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entryCollection = new BasicEList; - entries = castTo(this$static.data_0, 119); - for (i = this$static.size_0; --i >= 0;) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && $add_21(entryCollection, entry); - } - !$removeAll_4(this$static, entryCollection) && $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, feature.isMany()?$createNotification_0(this$static, 6, feature, ($clinit_Collections() , EMPTY_LIST), null, -1, false):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, null, null, -1, false)); -} - -function $contains_12(this$static, feature, object){ - return $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $contains_13(this$static, feature, object, resolve){ - var entries, entry, i, i0, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - return true; - } - } - } - else if (object != null) { - for (i0 = 0; i0 < this$static.size_0; ++i0) { - entry = entries[i0]; - if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - return true; - } - } - if (resolve) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature()) && maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { - return true; - } - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature()) && entry.getValue() == null) { - return false; - } - } - } - return false; -} - -function $containsAll_1(this$static, feature, collection){ - var i; - for (i = collection.iterator_0(); i.hasNext_0();) { - if (!$contains_12(this$static, feature, i.next_1())) { - return false; - } - } - return true; -} - -function $createNotification_0(this$static, eventType, feature, oldObject, newObject, index_0, wasSet){ - return new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, eventType, feature, oldObject, newObject, index_0, wasSet); -} - -function $entryIndex(this$static, feature, index_0){ - var count, entries, entry, i, result, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - count = 0; - result = this$static.size_0; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (index_0 == count) { - return i; - } - ++count; - result = i + 1; - } - } - if (index_0 == count) { - return result; - } - else { - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); - } -} - -function $get_23(this$static, feature, index_0, resolve){ - var count, entries, entry, i, validator, value_0; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - if (isMany_1(this$static.owner, feature)) { - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (count == index_0) { - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - return entry; - } - else { - value_0 = entry.getValue(); - value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); - return value_0; - } - } - ++count; - } - } - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); - } - else { - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - return entry; - } - else { - value_0 = entry.getValue(); - value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); - return value_0; - } - } - ++count; - } - return feature.getDefaultValue(); - } -} - -function $get_24(this$static, feature, resolve){ - var count, entries, entry, entryFeature, i, result, validator, value_0; - entries = castTo(this$static.data_0, 119); - if (isMany_1(this$static.owner, feature)) { - return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - if (validator.isValid(entryFeature)) { - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - return entry; - } - else if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { - result = new StringBuilder_1(toString_40(entry.getValue())); - while (++i < this$static.size_0) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - (entryFeature == TEXT || entryFeature == CDATA) && $append_11(result, toString_40(entry.getValue())); - } - return createFromString_2(castTo(feature.getEType(), 148), result.string); - } - else { - value_0 = entry.getValue(); - value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); - return value_0; - } - } - ++count; - } - return feature.getDefaultValue(); - } -} - -function $indexOf_7(this$static, feature, object){ - return $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $indexOf_8(this$static, feature, object, resolve){ - var entries, entry, i, i0, result, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - result = 0; - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - return result; - } - ++result; - } - } - } - else if (object != null) { - for (i0 = 0; i0 < this$static.size_0; ++i0) { - entry = entries[i0]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - return result; - } - ++result; - } - } - if (resolve) { - result = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { - return result; - } - ++result; - } - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (entry.getValue() == null) { - return result; - } - ++result; - } - } - } - return -1; -} - -function $inverseAdd_2(this$static, entry, notifications){ - return entry.inverseAdd_0(this$static.owner, this$static.featureID, notifications); -} - -function $inverseAdd_3(this$static, object, notifications){ - return $inverseAdd_2(this$static, castTo(object, 332), notifications); -} - -function $inverseRemove_2(this$static, entry, notifications){ - return entry.inverseRemove_0(this$static.owner, this$static.featureID, notifications); -} - -function $inverseRemove_3(this$static, object, notifications){ - return $inverseRemove_2(this$static, castTo(object, 332), notifications); -} - -function $isEmpty_1(this$static, feature){ - var entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - return false; - } - } - return true; -} - -function $iterator_2(this$static, feature){ - return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $list(this$static, feature){ - return $clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); -} - -function $listIterator_3(this$static, feature){ - return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $listIterator_4(this$static, feature, index_0){ - var i, result; - result = instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); - for (i = 0; i < index_0; ++i) { - $next_16(result); - } - return result; -} - -function $move_5(this$static, targetIndex, sourceIndex){ - var count, entries, entry, feature, featureSourceIndex, featureTargetIndex, i, isValid, maxIndex, result, sourceEntry, validator; - if ($eNotificationRequired(this$static.owner)) { - if (targetIndex != sourceIndex) { - entries = castTo(this$static.data_0, 119); - sourceEntry = entries[sourceIndex]; - feature = sourceEntry.getEStructuralFeature(); - if (isMany_1(this$static.owner, feature)) { - validator = getValidator(this$static.owner.eClass_0(), feature); - featureTargetIndex = -1; - featureSourceIndex = -1; - count = 0; - for (i = 0 , maxIndex = targetIndex > sourceIndex?targetIndex:sourceIndex; i <= maxIndex; ++i) { - if (i == sourceIndex) { - featureSourceIndex = count++; - } - else { - entry = entries[i]; - isValid = validator.isValid(entry.getEStructuralFeature()); - i == targetIndex && (featureTargetIndex = i == maxIndex && !isValid?count - 1:count); - isValid && ++count; - } - } - result = castTo($move_1(this$static, targetIndex, sourceIndex), 72); - featureSourceIndex != featureTargetIndex && $dispatchNotification(this$static, new ENotificationImpl_18(this$static.owner, 7, feature, valueOf_4(featureSourceIndex), sourceEntry.getValue(), featureTargetIndex)); - return result; - } - } - } - else { - return castTo($move(this$static, targetIndex, sourceIndex), 72); - } - return castTo($move_1(this$static, targetIndex, sourceIndex), 72); -} - -function $move_6(this$static, feature, targetIndex, sourceIndex){ - var count, entries, entry, entrySourceIndex, entryTargetIndex, i, result, validator; - if (isMany_1(this$static.owner, feature)) { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - result = null; - entryTargetIndex = -1; - entrySourceIndex = -1; - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - count == targetIndex && (entryTargetIndex = i); - if (count == sourceIndex) { - entrySourceIndex = i; - result = entry.getValue(); - } - ++count; - } - } - if (entryTargetIndex == -1) { - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + count)); - } - if (entrySourceIndex == -1) { - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + count)); - } - $move_1(this$static, entryTargetIndex, entrySourceIndex); - $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, $createNotification_0(this$static, 7, feature, valueOf_4(sourceIndex), result, targetIndex, true)); - return result; - } - else { - throw toJs(new IllegalArgumentException_0('The feature must be many-valued to support move')); - } -} - -function $move_7(this$static, feature, index_0, object){ - $move_6(this$static, feature, index_0, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)); -} - -function $remove_43(this$static, feature, index_0){ - var count, entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (count == index_0) { - $remove_35(this$static, i); - return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); - } - ++count; - } - } - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); -} - -function $remove_44(this$static, feature, object){ - var entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - $remove_35(this$static, i); - return true; - } - } - } - } - else if (object != null) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - $remove_35(this$static, i); - return true; - } - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (entry.getValue() == null) { - $remove_35(this$static, i); - return true; - } - } - } - } - return false; -} - -function $resolve_2(this$static, index_0, entry){ - var affiliatedFeature, affliatedEntry, entries, feature, featureIndex, i, inverseFeatureID, newEntry, notifications, object, opposite, reference, resolved, validator; - feature = entry.getEStructuralFeature(); - if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0) { - object = castTo(entry.getValue(), 49); - resolved = $eResolveProxy(this$static.owner, object); - if (resolved != object) { - newEntry = createEntry_5(feature, resolved); - $assign(this$static, index_0, $validate_3(this$static, index_0, newEntry)); - notifications = null; - if ($eNotificationRequired(this$static.owner)) { - affiliatedFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.owner.eClass_0(), feature); - if (affiliatedFeature != $getEStructuralFeature(this$static.owner.eClass_0(), this$static.featureID)) { - validator = getValidator(this$static.owner.eClass_0(), feature); - featureIndex = 0; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < index_0; ++i) { - affliatedEntry = entries[i]; - validator.isValid(affliatedEntry.getEStructuralFeature()) && ++featureIndex; - } - notifications = new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 9, affiliatedFeature, object, resolved, featureIndex, false); - notifications.add_5(new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, entry, newEntry, index_0, false)); - } - } - reference = castTo(feature, 18); - opposite = $getEOpposite(reference); - if (opposite) { - notifications = object.eInverseRemove(this$static.owner, $getFeatureID(object.eClass_0(), opposite), null, notifications); - notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, $getFeatureID(resolved.eClass_0(), opposite), null, notifications); - } - else if ((reference.eFlags & $intern_134) != 0) { - inverseFeatureID = -1 - $getFeatureID(this$static.owner.eClass_0(), reference); - notifications = object.eInverseRemove(this$static.owner, inverseFeatureID, null, null); - !castTo(resolved, 49).eInternalContainer() && (notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, inverseFeatureID, null, notifications)); - } - !!notifications && notifications.dispatch_0(); - return newEntry; - } - } - return entry; -} - -function $resolveProxy_0(this$static, eObject){ - return $eResolveProxy(this$static.owner, castTo(eObject, 49)); -} - -function $resolveProxy_1(this$static, feature, entryIndex, index_0, object){ - var entry, notifications, oldObject, resolved; - resolved = $resolveProxy_0(this$static, castTo(object, 56)); - if (maskUndefined(resolved) !== maskUndefined(object)) { - oldObject = castTo(this$static.data_0[entryIndex], 72); - entry = createEntry_5(feature, resolved); - $assign(this$static, entryIndex, $validate_3(this$static, entryIndex, entry)); - if ($eNotificationRequired(this$static.owner)) { - notifications = $createNotification_0(this$static, 9, entry.getEStructuralFeature(), object, resolved, index_0, false); - $add_22(notifications, new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, oldObject, entry, index_0, false)); - $dispatch(notifications); - } - return resolved; - } - return object; -} - -function $set_16(this$static, index_0, object){ - var entries, entry, entryFeature, i, otherEntry, validator; - entry = object; - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this$static.owner, entryFeature)) { - if (entryFeature.isUnique()) { - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), entryFeature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (validator.isValid(otherEntry.getEStructuralFeature()) && i != index_0) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - } - return castTo($set_11(this$static, index_0, object), 72); -} - -function $set_17(this$static, newValue){ - $set_15(this$static, instanceOf(newValue, 153)?newValue:castTo(newValue, 1937).featureMap_0()); -} - -function $set_18(this$static, feature, index_0, object){ - var count, currentIndex, entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique()) { - currentIndex = $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); - if (currentIndex >= 0 && currentIndex != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (count == index_0) { - return castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); - } - ++count; - } - } - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); - } - } - return null; - } -} - -function $set_19(this$static, feature, object){ - var entries, entry, entryFeature, i, index_0, list, shouldUnset, validator; - if (isMany_1(this$static.owner, feature)) { - list = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)); - $clear_15(list.featureMap, list.feature); - $addAll_14(list, castTo(object, 14)); - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - if (validator.isValid(entryFeature)) { - if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { - shouldUnset = $shouldUnset(this$static, feature, object); - index_0 = i; - shouldUnset?$remove_35(this$static, i):++i; - while (i < this$static.size_0) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - entryFeature == TEXT || entryFeature == CDATA?$remove_35(this$static, i):++i; - } - shouldUnset || castTo($set_11(this$static, index_0, createEntry_5(feature, object)), 72); - } - else - $shouldUnset(this$static, feature, object)?$remove_35(this$static, i):castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); - return; - } - } - $shouldUnset(this$static, feature, object) || $add_21(this$static, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))); - } -} - -function $setting(this$static, feature){ - return isMany_1(this$static.owner, feature)?($clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)):new FeatureMapUtil$FeatureValue(feature, this$static); -} - -function $shadowAdd_1(this$static, entry, notifications){ - var feature, notification, value_0; - feature = entry.getEStructuralFeature(); - value_0 = entry.getValue(); - notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, value_0, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), value_0, -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - return notifications; -} - -function $shadowAdd_2(this$static, object, notifications){ - return $shadowAdd_1(this$static, castTo(object, 332), notifications); -} - -function $shadowRemove_1(this$static, entry, notifications){ - var feature, notification, value_0; - feature = entry.getEStructuralFeature(); - value_0 = entry.getValue(); - notification = feature.isMany()?$createNotification_0(this$static, 4, feature, value_0, null, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, value_0, feature.getDefaultValue(), -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - return notifications; -} - -function $shadowRemove_2(this$static, object, notifications){ - return $shadowRemove_1(this$static, castTo(object, 332), notifications); -} - -function $shadowSet_1(this$static, oldObject, newObject, notifications){ - var feature, newValue, notification, oldValue; - if ($eNotificationRequired(this$static.owner)) { - feature = oldObject.getEStructuralFeature(); - oldValue = oldObject.getValue(); - newValue = newObject.getValue(); - notification = $createNotification_0(this$static, 1, feature, oldValue, newValue, feature.isMany()?$indexOf_8(this$static, feature, newValue, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0):-1, true); - notifications?notifications.add_5(notification):(notifications = notification); - } - return notifications; -} - -function $shouldUnset(this$static, feature, value_0){ - var defaultValue; - if (feature.isUnsettable()) { - return false; - } - else if (feature.getUpperBound() != -2) { - defaultValue = feature.getDefaultValue(); - return defaultValue == null?value_0 == null:equals_Ljava_lang_Object__Z__devirtual$(defaultValue, value_0); - } - else - return feature.getEContainingClass() == this$static.owner.eClass_0() && value_0 == null; -} - -function $size_3(this$static, feature){ - var entries, entry, i, result, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - result = 0; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && ++result; - } - return result; -} - -function $toArray_12(this$static, feature){ - return $toArray_13(this$static, feature, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $toArray_13(this$static, feature, resolve){ - var entries, entry, i, result, validator, value_0; - result = new BasicEList; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - value_0 = entry.getValue(); - $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); - } - } - } - return $toArray_9(result); -} - -function $toArray_14(this$static, feature, array){ - return $toArray_15(this$static, feature, array, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $toArray_15(this$static, feature, array, resolve){ - var entries, entry, i, result, validator, value_0; - result = new BasicEList; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - value_0 = entry.getValue(); - $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); - } - } - } - return $toArray_10(result, array); -} - -function $unset(this$static, feature){ - var entries, entry, i, removals, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - removals = null; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - !removals && (removals = new BasicEList); - $add_21(removals, entry); - } - } - !!removals && $removeAll_4(this$static, removals); -} - -function $validate_3(this$static, index_0, object){ - var eStructuralFeature, result; - if (this$static.modCount == 0) - return object; - result = castTo($validate_0(this$static, index_0, object), 72); - eStructuralFeature = object.getEStructuralFeature(); - if (!eStructuralFeature.isChangeable() || !this$static.featureMapValidator.isValid(eStructuralFeature)) { - throw toJs(new RuntimeException_0("Invalid entry feature '" + eStructuralFeature.getEContainingClass().name_0 + '.' + eStructuralFeature.getName() + "'")); - } - return result; -} - -function BasicFeatureMap(owner, featureID){ - EDataTypeEList.call(this, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, owner, featureID); - this.wrapper = this; - this.featureMapValidator = getValidator(owner.eClass_0(), $getEStructuralFeature(this.owner.eClass_0(), this.featureID)); -} - -defineClass(75, 585, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, BasicFeatureMap); -_.add_3 = function add_66(index_0, object){ - $add_31(this, index_0, castTo(object, 72)); -} -; -_.add_2 = function add_67(object){ - return $add_34(this, castTo(object, 72)); -} -; -_.addUnique_0 = function addUnique_19(object){ - $addUnique_13(this, castTo(object, 72)); -} -; -_.inverseAdd = function inverseAdd_9(object, notifications){ - return $inverseAdd_3(this, castTo(object, 72), notifications); -} -; -_.inverseRemove = function inverseRemove_9(object, notifications){ - return $inverseRemove_3(this, castTo(object, 72), notifications); -} -; -_.move = function move_20(targetIndex, sourceIndex){ - return $move_5(this, targetIndex, sourceIndex); -} -; -_.resolve = function resolve_9(index_0, entry){ - return $resolve_2(this, index_0, castTo(entry, 72)); -} -; -_.set_2 = function set_37(index_0, object){ - return $set_16(this, index_0, castTo(object, 72)); -} -; -_.shadowAdd = function shadowAdd_2(object, notifications){ - return $shadowAdd_2(this, castTo(object, 72), notifications); -} -; -_.shadowRemove = function shadowRemove_2(object, notifications){ - return $shadowRemove_2(this, castTo(object, 72), notifications); -} -; -_.shadowSet = function shadowSet_2(oldObject, newObject, notifications){ - return $shadowSet_1(this, castTo(oldObject, 72), castTo(newObject, 72), notifications); -} -; -_.validate = function validate_7(index_0, object){ - return $validate_3(this, index_0, castTo(object, 72)); -} -; -_.add_6 = function add_68(feature, object){ - return $add_33(this, feature, object); -} -; -_.addAll_0 = function addAll_35(index_0, collection){ - var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; - uniqueCollection = new BasicEList_0(collection.size_1()); - for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 72); - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this.owner, entryFeature)) { - (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); - } - else { - validator = getValidator(this.owner.eClass_0(), entryFeature); - entries = castTo(this.data_0, 119); - include = true; - for (j = 0; j < this.size_0; ++j) { - otherEntry = entries[j]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - castTo($set_11(this, j, entry), 72); - include = false; - break; - } - } - include && $add_21(uniqueCollection, entry); - } - } - return $addAll_8(this, index_0, uniqueCollection); -} -; -_.addAll = function addAll_36(collection){ - var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; - uniqueCollection = new BasicEList_0(collection.size_1()); - for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 72); - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this.owner, entryFeature)) { - (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); - } - else { - validator = getValidator(this.owner.eClass_0(), entryFeature); - entries = castTo(this.data_0, 119); - include = true; - for (j = 0; j < this.size_0; ++j) { - otherEntry = entries[j]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - castTo($set_11(this, j, entry), 72); - include = false; - break; - } - } - include && $add_21(uniqueCollection, entry); - } - } - return $addAll_9(this, uniqueCollection); -} -; -_.addAllUnique_0 = function addAllUnique_15(collection){ - this.modCount = -1; - return $addAllUnique_3(this, this.size_0, collection); -} -; -_.basicAdd_0 = function basicAdd_4(feature, object, notifications){ - return $basicAdd_2(this, feature, object, notifications); -} -; -_.basicRemove = function basicRemove_4(object, notifications){ - return $basicRemove_2(this, object, notifications); -} -; -_.basicRemove_0 = function basicRemove_5(feature, object, notifications){ - return $basicRemove_3(this, feature, object, notifications); -} -; -_.featureMap_0 = function featureMap_0(){ - return this; -} -; -_.get_7 = function get_67(feature, resolve){ - return $get_24(this, feature, resolve); -} -; -_.getEStructuralFeature_0 = function getEStructuralFeature_2(index_0){ - return castTo($get_20(this, index_0), 72).getEStructuralFeature(); -} -; -_.getValue_1 = function getValue_19(index_0){ - return castTo($get_20(this, index_0), 72).getValue(); -} -; -_.getWrapper = function getWrapper(){ - return this.wrapper; -} -; -_.hasInverse = function hasInverse_11(){ - return true; -} -; -_.hasShadow = function hasShadow_2(){ - return true; -} -; -_.isSet_1 = function isSet_13(feature){ - return !$isEmpty_1(this, feature); -} -; -_.newData = function newData_14(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, $intern_163, 332, capacity, 0, 1); -} -; -_.resolveProxy = function resolveProxy_0(eObject){ - return $resolveProxy_0(this, eObject); -} -; -_.set_1 = function set_38(newValue){ - $set_17(this, newValue); -} -; -_.set_3 = function set_39(feature, object){ - $set_19(this, feature, object); -} -; -_.setting = function setting_0(feature){ - return $setting(this, feature); -} -; -_.unset_0 = function unset_9(feature){ - $unset(this, feature); -} -; -var Lorg_eclipse_emf_ecore_util_BasicFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap', 75); -function $checkModCount(this$static){ - if (this$static.featureMap.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function $hasNext_8(this$static){ - switch (this$static.prepared) { - case 2: - { - return true; - } - - case 1: - { - return false; - } - - case -1: - { - ++this$static.entryCursor; - } - - default:{ - return this$static.scanNext(); - } - - } -} - -function $hasPrevious(this$static){ - switch (this$static.prepared) { - case -2: - { - return true; - } - - case -1: - { - return false; - } - - case 1: - { - --this$static.entryCursor; - } - - default:{ - return this$static.scanPrevious(); - } - - } -} - -function $next_16(this$static){ - var newPreparedResult; - if ($hasNext_8(this$static)) { - $checkModCount(this$static); - if (this$static.resolve_0()) { - newPreparedResult = $resolveProxy_1(this$static.featureMap, this$static.eStructuralFeature, this$static.entryCursor, this$static.cursor, this$static.preparedResult); - this$static.preparedResult = newPreparedResult; - } - this$static.lastCursor = this$static.cursor; - ++this$static.cursor; - ++this$static.entryCursor; - this$static.prepared = 0; - return this$static.preparedResult; - } - else { - throw toJs(new NoSuchElementException); - } -} - -defineClass(1851, 1, $intern_14); -_.forEachRemaining = function forEachRemaining_59(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_69(o){ - if (this.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - $checkModCount(this); - try { - $add_32(this.featureMap, this.eStructuralFeature, this.cursor, o); - this.expectedModCount = this.featureMap.modCount; - $next_16(this); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} -; -_.hasNext_0 = function hasNext_49(){ - return $hasNext_8(this); -} -; -_.hasPrevious = function hasPrevious_10(){ - return $hasPrevious(this); -} -; -_.next_1 = function next_49(){ - return $next_16(this); -} -; -_.nextIndex_0 = function nextIndex_11(){ - return this.cursor; -} -; -_.previous_0 = function previous_11(){ - var newPreparedResult; - if ($hasPrevious(this)) { - $checkModCount(this); - this.lastCursor = --this.cursor; - if (this.resolve_0()) { - newPreparedResult = $resolveProxy_1(this.featureMap, this.eStructuralFeature, this.entryCursor, this.cursor, this.preparedResult); - this.preparedResult = newPreparedResult; - } - this.prepared = 0; - return this.preparedResult; - } - else { - throw toJs(new NoSuchElementException); - } -} -; -_.previousIndex = function previousIndex_10(){ - return this.cursor - 1; -} -; -_.remove = function remove_128(){ - if (this.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - $checkModCount(this); - try { - $remove_43(this.featureMap, this.eStructuralFeature, this.lastCursor); - this.expectedModCount = this.featureMap.modCount; - if (this.lastCursor < this.cursor) { - --this.cursor; - --this.entryCursor; - } - --this.lastCursor; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} -; -_.resolve_0 = function resolve_10(){ - return false; -} -; -_.set_1 = function set_40(o){ - if (this.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - $checkModCount(this); - try { - $set_18(this.featureMap, this.eStructuralFeature, this.lastCursor, o); - this.expectedModCount = this.featureMap.modCount; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} -; -_.cursor = 0; -_.entryCursor = 0; -_.expectedModCount = 0; -_.isFeatureMap = false; -_.lastCursor = 0; -_.prepared = 0; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicFeatureEIterator', 1851); -function BasicFeatureMap$FeatureEIterator(eStructuralFeature, featureMap){ - this.eStructuralFeature = eStructuralFeature; - this.featureMap = featureMap; - this.expectedModCount = featureMap.modCount; - this.isFeatureMap = ($clinit_FeatureMapUtil() , castTo(eStructuralFeature, 66).isFeatureMap_0()); - this.validator = getValidator(featureMap.owner.eClass_0(), eStructuralFeature); -} - -defineClass(410, 1851, $intern_14, BasicFeatureMap$FeatureEIterator); -_.scanNext = function scanNext(){ - var entries, entry, size_0; - size_0 = this.featureMap.size_0; - entries = castTo(this.featureMap.data_0, 119); - while (this.entryCursor < size_0) { - entry = entries[this.entryCursor]; - if (this.validator.isValid(entry.getEStructuralFeature())) { - this.preparedResult = this.isFeatureMap?entry:entry.getValue(); - this.prepared = 2; - return true; - } - ++this.entryCursor; - } - this.prepared = 1; - this.lastCursor = -1; - return false; -} -; -_.scanPrevious = function scanPrevious(){ - var entries, entry; - entries = castTo(this.featureMap.data_0, 119); - while (--this.entryCursor >= 0) { - entry = entries[this.entryCursor]; - if (this.validator.isValid(entry.getEStructuralFeature())) { - this.preparedResult = this.isFeatureMap?entry:entry.getValue(); - this.prepared = -2; - return true; - } - } - this.prepared = -1; - this.lastCursor = -1; - return false; -} -; -var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$FeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/FeatureEIterator', 410); -function BasicFeatureMap$ResolvingFeatureEIterator(eStructuralFeature, featureMap){ - BasicFeatureMap$FeatureEIterator.call(this, eStructuralFeature, featureMap); -} - -defineClass(662, 410, $intern_14, BasicFeatureMap$ResolvingFeatureEIterator); -_.resolve_0 = function resolve_11(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$ResolvingFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/ResolvingFeatureEIterator', 662); -function EContentsEList$1(){ - EContentsEList.call(this, null, null); -} - -defineClass(955, 486, $intern_157, EContentsEList$1); -_.basicList = function basicList_3(){ - return this; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/1', 955); -function EContentsEList$2($anonymous0, $anonymous1){ - EContentsEList.call(this, $anonymous0, $anonymous1); -} - -defineClass(956, 486, $intern_157, EContentsEList$2); -_.resolve_0 = function resolve_12(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$2_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/2', 956); -function EContentsEList$FeatureIteratorImpl$1(){ - EContentsEList$FeatureIteratorImpl.call(this, null, null); -} - -defineClass(954, 279, $intern_158, EContentsEList$FeatureIteratorImpl$1); -_.filter_0 = function filter_4(featureFilter){ -} -; -_.hasNext_0 = function hasNext_50(){ - return false; -} -; -_.hasPrevious = function hasPrevious_11(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl/1', 954); -function EDataTypeEList$Unsettable(dataClass, owner, featureID){ - EDataTypeEList.call(this, dataClass, owner, featureID); -} - -defineClass(825, 585, $intern_154, EDataTypeEList$Unsettable); -_.didChange = function didChange_2(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_14(){ - return this.isSet; -} -; -_.unset = function unset_10(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EDataTypeEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList/Unsettable', 825); -function EDataTypeUniqueEList(dataClass, owner, featureID){ - EDataTypeEList.call(this, dataClass, owner, featureID); -} - -defineClass(1849, 585, $intern_154, EDataTypeUniqueEList); -_.isUnique = function isUnique_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList', 1849); -function EDataTypeUniqueEList$Unsettable(dataClass, owner, featureID){ - EDataTypeEList$Unsettable.call(this, dataClass, owner, featureID); -} - -defineClass(1850, 825, $intern_154, EDataTypeUniqueEList$Unsettable); -_.isUnique = function isUnique_9(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList/Unsettable', 1850); -function EObjectContainmentEList$Resolving(dataClass, owner, featureID){ - EObjectContainmentEList.call(this, dataClass, owner, featureID); -} - -defineClass(139, 85, $intern_154, EObjectContainmentEList$Resolving); -_.hasProxies = function hasProxies_4(){ - return true; -} -; -_.resolve = function resolve_13(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Resolving', 139); -function EObjectContainmentEList$Unsettable$Resolving(dataClass, owner, featureID){ - EObjectContainmentEList$Unsettable.call(this, dataClass, owner, featureID); -} - -defineClass(1163, 545, $intern_154, EObjectContainmentEList$Unsettable$Resolving); -_.hasProxies = function hasProxies_5(){ - return true; -} -; -_.resolve = function resolve_14(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable/Resolving', 1163); -function EObjectContainmentWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(748, 16, $intern_154, EObjectContainmentWithInverseEList$Unsettable); -_.didChange = function didChange_3(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_15(){ - return this.isSet; -} -; -_.unset = function unset_11(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable', 748); -function EObjectContainmentWithInverseEList$Unsettable$Resolving(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1173, 748, $intern_154, EObjectContainmentWithInverseEList$Unsettable$Resolving); -_.hasProxies = function hasProxies_6(){ - return true; -} -; -_.resolve = function resolve_15(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable/Resolving', 1173); -function EObjectEList$Unsettable(dataClass, owner, featureID){ - EObjectEList.call(this, dataClass, owner, featureID); -} - -defineClass(743, 496, $intern_154, EObjectEList$Unsettable); -_.didChange = function didChange_4(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_16(){ - return this.isSet; -} -; -_.unset = function unset_12(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList/Unsettable', 743); -function EObjectResolvingEList(dataClass, owner, featureID){ - EObjectEList.call(this, dataClass, owner, featureID); -} - -defineClass(328, 496, $intern_154, EObjectResolvingEList); -_.hasProxies = function hasProxies_7(){ - return true; -} -; -_.resolve = function resolve_16(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList', 328); -function EObjectResolvingEList$Unsettable(dataClass, owner, featureID){ - EObjectEList$Unsettable.call(this, dataClass, owner, featureID); -} - -defineClass(1641, 743, $intern_154, EObjectResolvingEList$Unsettable); -_.hasProxies = function hasProxies_8(){ - return true; -} -; -_.resolve = function resolve_17(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList/Unsettable', 1641); -function $clinit_EObjectValidator(){ - $clinit_EObjectValidator = emptyMethod; - INSTANCE_9 = new EObjectValidator; -} - -function EObjectValidator(){ -} - -defineClass(1381, 1, {}, EObjectValidator); -var INSTANCE_9; -var Lorg_eclipse_emf_ecore_util_EObjectValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectValidator', 1381); -function EObjectWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ - EObjectEList.call(this, dataClass, owner, featureID); - this.inverseFeatureID = inverseFeatureID; -} - -defineClass(546, 496, $intern_154, EObjectWithInverseEList); -_.getInverseFeatureClass = function getInverseFeatureClass_1(){ - return this.dataClass; -} -; -_.getInverseFeatureID = function getInverseFeatureID_1(){ - return this.inverseFeatureID; -} -; -_.hasInverse = function hasInverse_12(){ - return true; -} -; -_.hasNavigableInverse = function hasNavigableInverse_5(){ - return true; -} -; -_.inverseFeatureID = 0; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList', 546); -function EObjectWithInverseEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1176, 546, $intern_154, EObjectWithInverseEList$ManyInverse); -_.hasManyInverse = function hasManyInverse_3(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/ManyInverse', 1176); -function EObjectWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(625, 546, $intern_154, EObjectWithInverseEList$Unsettable); -_.didChange = function didChange_5(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_17(){ - return this.isSet; -} -; -_.unset = function unset_13(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable', 625); -function EObjectWithInverseEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1175, 625, $intern_154, EObjectWithInverseEList$Unsettable$ManyInverse); -_.hasManyInverse = function hasManyInverse_4(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable/ManyInverse', 1175); -function EObjectWithInverseResolvingEList(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(749, 546, $intern_154, EObjectWithInverseResolvingEList); -_.hasProxies = function hasProxies_9(){ - return true; -} -; -_.resolve = function resolve_18(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList', 749); -function EObjectWithInverseResolvingEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseResolvingEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(31, 749, $intern_154, EObjectWithInverseResolvingEList$ManyInverse); -_.hasManyInverse = function hasManyInverse_5(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/ManyInverse', 31); -function EObjectWithInverseResolvingEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(750, 625, $intern_154, EObjectWithInverseResolvingEList$Unsettable); -_.hasProxies = function hasProxies_10(){ - return true; -} -; -_.resolve = function resolve_19(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable', 750); -function EObjectWithInverseResolvingEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseResolvingEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1174, 750, $intern_154, EObjectWithInverseResolvingEList$Unsettable$ManyInverse); -_.hasManyInverse = function hasManyInverse_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable/ManyInverse', 1174); -function kind_0(eStructuralFeature){ - var eClassifier, eReference, instanceClass, inverseEReference, result, upper; - result = 0; - eClassifier = $getEType(eStructuralFeature); - !!eClassifier.getInstanceClass() && (result |= 4); - (eStructuralFeature.eFlags & $intern_149) != 0 && (result |= 2); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - inverseEReference = $getEOpposite(eReference); - (eReference.eFlags & $intern_134) != 0 && (result |= 32); - if (inverseEReference) { - $getFeatureCount($getEContainingClass(inverseEReference)); - result |= 8; - upper = inverseEReference.upperBound; - (upper > 1 || upper == -1) && (result |= 16); - (inverseEReference.eFlags & $intern_134) != 0 && (result |= 64); - } - (eReference.eFlags & $intern_63) != 0 && (result |= $intern_150); - result |= $intern_137; - } - else { - if (instanceOf(eClassifier, 457)) { - result |= 512; - } - else { - instanceClass = eClassifier.getInstanceClass(); - !!instanceClass && (instanceClass.modifiers & 1) != 0 && (result |= 256); - } - } - (eStructuralFeature.eFlags & 512) != 0 && (result |= 128); - return result; -} - -defineClass(1164, 622, $intern_154); -_.canContainNull = function canContainNull_6(){ - return (this.kind & 1792) == 0; -} -; -_.didChange = function didChange_6(){ - this.kind |= 1; -} -; -_.hasInstanceClass = function hasInstanceClass_3(){ - return (this.kind & 4) != 0; -} -; -_.hasInverse = function hasInverse_13(){ - return (this.kind & 40) != 0; -} -; -_.hasManyInverse = function hasManyInverse_7(){ - return (this.kind & 16) != 0; -} -; -_.hasNavigableInverse = function hasNavigableInverse_6(){ - return (this.kind & 8) != 0; -} -; -_.hasProxies = function hasProxies_11(){ - return (this.kind & $intern_150) != 0; -} -; -_.isContainment = function isContainment_9(){ - return (this.kind & 32) != 0; -} -; -_.isEObject = function isEObject_5(){ - return (this.kind & $intern_137) != 0; -} -; -_.isInstance = function isInstance_49(object){ - return !this.dataClass?this.getEStructuralFeature().getEType().isInstance(object):isInstance(this.dataClass, object); -} -; -_.isSet_0 = function isSet_18(){ - return (this.kind & 2) != 0?(this.kind & 1) != 0:this.size_0 != 0; -} -; -_.isUnique = function isUnique_10(){ - return (this.kind & 128) != 0; -} -; -_.unset = function unset_14(){ - var oldIsSet; - $clear_13(this); - if ((this.kind & 2) != 0) { - if ($eNotificationRequired(this.owner)) { - oldIsSet = (this.kind & 1) != 0; - this.kind &= -2; - $dispatchNotification(this, new ENotificationImpl_4(this.owner, 2, $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()), oldIsSet, false)); - } - else { - this.kind &= -2; - } - } -} -; -_.useEquals = function useEquals_15(){ - return (this.kind & 1536) == 0; -} -; -_.kind = 0; -var Lorg_eclipse_emf_ecore_util_EcoreEList$Generic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Generic', 1164); -function EcoreEList$Dynamic(kind, dataClass, owner, eStructuralFeature){ - EcoreEList.call(this, dataClass, owner); - this.kind = kind; - this.eStructuralFeature = eStructuralFeature; -} - -defineClass(1165, 1164, $intern_154, EcoreEList$Dynamic); -_.getEStructuralFeature = function getEStructuralFeature_3(){ - return this.eStructuralFeature; -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList$Dynamic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Dynamic', 1165); -function EcoreEMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(747, 63, $intern_138, EcoreEMap$1); -_.newData = function newData_15(listCapacity){ - return newInstance_11(this.this$01.entryClass, listCapacity); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEMap$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/1', 747); -function EcoreEMap$DelegateEObjectContainmentEList(this$0, entryClass, owner, featureID){ - this.this$01 = this$0; - EObjectContainmentEList.call(this, entryClass, owner, featureID); -} - -defineClass(746, 85, $intern_154, EcoreEMap$DelegateEObjectContainmentEList); -_.didAdd = function didAdd_4(index_0, newObject){ - $doPut(this.this$01, castTo(newObject, 133)); -} -; -_.didClear = function didClear_2(size_0, oldObjects){ - $doClear_0(this.this$01); -} -; -_.didMove = function didMove_1(index_0, movedObject, oldIndex){ - var lastArg; - ++(lastArg = this.this$01 , castTo(movedObject, 133) , lastArg).modCount; -} -; -_.didRemove = function didRemove_3(index_0, oldObject){ - $doRemove(this.this$01, castTo(oldObject, 133)); -} -; -_.didSet = function didSet_2(index_0, newObject, oldObject){ - $doRemove(this.this$01, castTo(oldObject, 133)); - maskUndefined(oldObject) === maskUndefined(newObject) && castTo(oldObject, 133).setHash($hashOf(castTo(newObject, 133).getKey())); - $doPut(this.this$01, castTo(newObject, 133)); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEMap$DelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/DelegateEObjectContainmentEList', 746); -function EcoreEMap$Unsettable(entryEClass, entryClass, owner, featureID){ - this.initializeDelegateEList(); - this.entryClass = entryClass; - this.entryEClass = entryEClass; - this.delegateEList = null; - this.delegateEList = new EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this, entryClass, owner, featureID); -} - -defineClass(1171, 151, $intern_148, EcoreEMap$Unsettable); -var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable', 1171); -function EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this$1, dataClass, owner, featureID){ - EcoreEMap$DelegateEObjectContainmentEList.call(this, this$1, dataClass, owner, featureID); -} - -defineClass(1172, 746, $intern_154, EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList); -_.didChange = function didChange_7(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_19(){ - return this.isSet; -} -; -_.unset = function unset_15(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList', 1172); -function convertToString_2(eDataType, value_0){ - return eDataType.getEPackage().getEFactoryInstance().convertToString(eDataType, value_0); -} - -function copy_1(eObject){ - var copier, result, t; - copier = new EcoreUtil$Copier; - result = $copy_1(copier, eObject); - $copyReferences(copier); - t = result; - return t; -} - -function createFromString_2(eDataType, literal){ - return eDataType.getEPackage().getEFactoryInstance().createFromString(eDataType, literal); -} - -function getConversionDelegateFactory(eDataType){ - var eDataTypeDelegate, eDataTypeDelegate$iterator; - for (eDataTypeDelegate$iterator = getConversionDelegates($getEPackage(eDataType)).iterator_0(); eDataTypeDelegate$iterator.hasNext_0();) { - eDataTypeDelegate = castToString(eDataTypeDelegate$iterator.next_1()); - if ($getEAnnotation(eDataType, eDataTypeDelegate)) { - return $getFactory(($clinit_EDataType$Internal$ConversionDelegate$Factory$Registry() , INSTANCE_5), eDataTypeDelegate); - } - } - return null; -} - -function getConversionDelegates(ePackage){ - var eAnnotation, eDataTypeDelegate, eDataTypeDelegate$array, eDataTypeDelegate$index, eDataTypeDelegate$max, eDataTypeDelegates, result; - if (ePackage) { - eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); - if (eAnnotation) { - eDataTypeDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'conversionDelegates')); - if (eDataTypeDelegates != null) { - result = new ArrayList; - for (eDataTypeDelegate$array = $split_0(eDataTypeDelegates, '\\w+') , eDataTypeDelegate$index = 0 , eDataTypeDelegate$max = eDataTypeDelegate$array.length; eDataTypeDelegate$index < eDataTypeDelegate$max; ++eDataTypeDelegate$index) { - eDataTypeDelegate = eDataTypeDelegate$array[eDataTypeDelegate$index]; - result.array[result.array.length] = eDataTypeDelegate; - } - return result; - } - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function getRootContainer(eObject){ - var count, parent_0, result; - result = eObject; - if (eObject) { - count = 0; - for (parent_0 = eObject.eContainer_0(); parent_0; parent_0 = parent_0.eContainer_0()) { - if (++count > $intern_66) { - return getRootContainer(parent_0); - } - result = parent_0; - if (parent_0 == eObject) { - throw toJs(new IllegalStateException_0('There is a cycle in the containment hierarchy of ' + eObject)); - } - } - } - return result; -} - -function getSettingDelegateFactory(eStructuralFeature){ - var settingDelegate, settingDelegate$iterator; - for (settingDelegate$iterator = getSettingDelegates($getEPackage($getEContainingClass(eStructuralFeature))).iterator_0(); settingDelegate$iterator.hasNext_0();) { - settingDelegate = castToString(settingDelegate$iterator.next_1()); - if ($getEAnnotation(eStructuralFeature, settingDelegate)) - return $getFactory_0(($clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry() , INSTANCE_7), settingDelegate); - } - return null; -} - -function getSettingDelegates(ePackage){ - var eAnnotation, result, settingDelegate, settingDelegate$array, settingDelegate$index, settingDelegate$max, settingDelegates; - eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); - if (eAnnotation) { - settingDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'settingDelegates')); - if (settingDelegates != null) { - result = new ArrayList; - for (settingDelegate$array = $split_0(settingDelegates, '\\w+') , settingDelegate$index = 0 , settingDelegate$max = settingDelegate$array.length; settingDelegate$index < settingDelegate$max; ++settingDelegate$index) { - settingDelegate = settingDelegate$array[settingDelegate$index]; - result.array[result.array.length] = settingDelegate; - } - return result; - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function isAncestor(ancestorEObject, eObject){ - var count, eContainer; - if (eObject) { - if (eObject == ancestorEObject) { - return true; - } - count = 0; - for (eContainer = castTo(eObject, 49).eInternalContainer(); !!eContainer && eContainer != eObject; eContainer = eContainer.eInternalContainer()) { - if (++count > $intern_66) { - return isAncestor(ancestorEObject, eContainer); - } - if (eContainer == ancestorEObject) { - return true; - } - } - } - return false; -} - -function resolve_20(proxy){ - var ePackage, proxyURI, resolvedObject, resource; - proxyURI = castTo(proxy, 49).eProxyURI_0(); - if (proxyURI) { - try { - resolvedObject = null; - ePackage = $getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), $toString_26($trimFragment(proxyURI))); - if (ePackage) { - resource = ePackage.eResource_0(); - !!resource && (resolvedObject = resource.getEObject($toString_7(proxyURI.fragment))); - } - if (!!resolvedObject && resolvedObject != proxy) { - return resolve_20(resolvedObject); - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - return proxy; -} - -function wrapperClassFor(javaClass){ - return !javaClass?null:(javaClass.modifiers & 1) != 0?javaClass == Z_classLit?Ljava_lang_Boolean_2_classLit:javaClass == I_classLit?Ljava_lang_Integer_2_classLit:javaClass == F_classLit?Ljava_lang_Float_2_classLit:javaClass == D_classLit?Ljava_lang_Double_2_classLit:javaClass == J_classLit?Ljava_lang_Long_2_classLit:javaClass == S_classLit?Ljava_lang_Short_2_classLit:javaClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:javaClass; -} - -function $copy_1(this$static, eObject){ - var copyEObject, eAllStructuralFeaturesData, eClass, eClass0, eReference, eStructuralFeature, i, size_0; - if (!eObject) { - return null; - } - else { - copyEObject = (eClass0 = eObject.eClass_0() , !eClass0?null:$getEPackage(eClass0).getEFactoryInstance().create_3(eClass0)); - if (copyEObject) { - $put_11(this$static, eObject, copyEObject); - eClass = eObject.eClass_0(); - for (i = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { - eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); - if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { - if (instanceOf(eStructuralFeature, 322)) { - $copyAttribute(this$static, castTo(eStructuralFeature, 34), eObject, copyEObject); - } - else { - eReference = castTo(eStructuralFeature, 18); - (eReference.eFlags & $intern_134) != 0 && $copyContainment(this$static, eReference, eObject, copyEObject); - } - } - } - eObject.eIsProxy() && castTo(copyEObject, 49).eSetProxyURI(castTo(eObject, 49).eProxyURI_0()); - } - return copyEObject; - } -} - -function $copyAll(this$static, eObjects){ - var object, object$iterator, result, t; - result = new ArrayList_0(eObjects.size_1()); - for (object$iterator = eObjects.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - t = $copy_1(this$static, castTo(object, 56)); - !!t && (result.array[result.array.length] = t , true); - } - return result; -} - -function $copyAttribute(this$static, eAttribute, eObject, copyEObject){ - var featureMap, setting, targetEStructuralFeature; - if (eObject.eIsSet_0(eAttribute)) { - $clinit_FeatureMapUtil(); - if ($isFeatureMap(eAttribute)) { - featureMap = castTo(eObject.eGet_0(eAttribute), 153); - $copyFeatureMap(this$static, featureMap); - } - else { - setting = (targetEStructuralFeature = eAttribute , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); - !!setting && $copyAttributeValue(eObject.eGet_0(eAttribute), setting); - } - } -} - -function $copyAttributeValue(value_0, setting){ - setting.set_1(value_0); -} - -function $copyContainment(this$static, eReference, eObject, copyEObject){ - var setting, target, targetEStructuralFeature, upper, value_0; - if (eObject.eIsSet_0(eReference)) { - setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); - if (setting) { - value_0 = eObject.eGet_0(eReference); - upper = eReference.upperBound; - if (upper > 1 || upper == -1) { - target = castTo(value_0, 15); - setting.set_1($copyAll(this$static, target)); - } - else { - setting.set_1($copy_1(this$static, castTo(value_0, 56))); - } - } - } -} - -function $copyFeatureMap(this$static, featureMap){ - var feature, i, size_0, value_0; - for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { - feature = featureMap.getEStructuralFeature_0(i); - if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { - value_0 = featureMap.getValue_1(i); - value_0 != null && $copy_1(this$static, castTo(value_0, 56)); - } - } -} - -function $copyReference(this$static, eReference, eObject, copyEObject){ - var copyReferencedEObject, index_0, isBidirectional, k, position, referencedEObject, setting, source, target, targetEStructuralFeature, upper, value_0; - if (eObject.eIsSet_0(eReference)) { - setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); - if (setting) { - value_0 = eObject.eGet_1(eReference, this$static.resolveProxies); - upper = eReference.upperBound; - if (upper > 1 || upper == -1) { - source = castTo(value_0, 69); - target = castTo(setting, 69); - if (source.isEmpty()) { - target.clear_0(); - } - else { - isBidirectional = !!$getEOpposite(eReference); - index_0 = 0; - for (k = this$static.resolveProxies?source.iterator_0():source.basicIterator(); k.hasNext_0();) { - referencedEObject = castTo(k.next_1(), 56); - copyReferencedEObject = castTo($get_16(this$static, referencedEObject), 56); - if (!copyReferencedEObject) { - if (this$static.useOriginalReferences && !isBidirectional) { - target.addUnique(index_0, referencedEObject); - ++index_0; - } - } - else { - if (isBidirectional) { - position = target.indexOf_0(copyReferencedEObject); - position == -1?target.addUnique(index_0, copyReferencedEObject):index_0 != position && target.move_0(index_0, copyReferencedEObject); - } - else { - target.addUnique(index_0, copyReferencedEObject); - } - ++index_0; - } - } - } - } - else { - if (value_0 == null) { - setting.set_1(null); - } - else { - copyReferencedEObject = $get_16(this$static, value_0); - copyReferencedEObject == null?this$static.useOriginalReferences && !$getEOpposite(eReference) && setting.set_1(value_0):setting.set_1(copyReferencedEObject); - } - } - } - } -} - -function $copyReferences(this$static){ - var copyEObject, copyFeatureMap, copyFeatureMapSize, copyReferencedEObject, eAllStructuralFeaturesData, eClass, eObject, eReference, eStructuralFeature, entry, entry$iterator, feature, featureMap, featureMapSize, j, k, l, reference, referencedEObject, size_0, targetEStructuralFeature, theOpposite; - for (entry$iterator = new LinkedHashMap$EntrySet$EntryIterator(new LinkedHashMap$EntrySet(this$static)); entry$iterator.next_0 != entry$iterator.this$11.this$01.head;) { - entry = $next_9(entry$iterator); - eObject = castTo(entry.key, 56); - copyEObject = castTo(entry.value_0, 56); - eClass = eObject.eClass_0(); - for (j = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; j < size_0; ++j) { - eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , j >= 0 && j < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[j]:null); - if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - (eReference.eFlags & $intern_134) == 0 && (theOpposite = $getEOpposite(eReference) , !(!!theOpposite && (theOpposite.eFlags & $intern_134) != 0)) && $copyReference(this$static, eReference, eObject, copyEObject); - } - else { - $clinit_FeatureMapUtil(); - if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { - copyFeatureMap = (targetEStructuralFeature = eStructuralFeature , castTo(!targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature), 153)); - if (copyFeatureMap) { - featureMap = castTo(eObject.eGet_0(eStructuralFeature), 153); - copyFeatureMapSize = copyFeatureMap.size_1(); - for (k = 0 , featureMapSize = featureMap.size_1(); k < featureMapSize; ++k) { - feature = featureMap.getEStructuralFeature_0(k); - if (instanceOf(feature, 99)) { - referencedEObject = featureMap.getValue_1(k); - copyReferencedEObject = $get_16(this$static, referencedEObject); - if (copyReferencedEObject == null && referencedEObject != null) { - reference = castTo(feature, 18); - if (!this$static.useOriginalReferences || (reference.eFlags & $intern_134) != 0 || !!$getEOpposite(reference)) { - continue; - } - copyReferencedEObject = referencedEObject; - } - if (!copyFeatureMap.add_6(feature, copyReferencedEObject)) { - for (l = 0; l < copyFeatureMapSize; ++l) { - if (copyFeatureMap.getEStructuralFeature_0(l) == feature && maskUndefined(copyFeatureMap.getValue_1(l)) === maskUndefined(copyReferencedEObject)) { - copyFeatureMap.move(copyFeatureMap.size_1() - 1, l); - --copyFeatureMapSize; - break; - } - } - } - } - else { - copyFeatureMap.add_6(featureMap.getEStructuralFeature_0(k), featureMap.getValue_1(k)); - } - } - } - } - } - } - } - } -} - -function EcoreUtil$Copier(){ - LinkedHashMap.call(this); - this.resolveProxies = true; - this.useOriginalReferences = true; -} - -defineClass(1168, 228, $intern_76, EcoreUtil$Copier); -_.resolveProxies = false; -_.useOriginalReferences = false; -var Lorg_eclipse_emf_ecore_util_EcoreUtil$Copier_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/Copier', 1168); -function $hasNext_9(this$static){ - if (this$static.preparedResult == null) { - while (this$static.iterator.hasNext_0()) { - this$static.preparedResult = this$static.iterator.next_1(); - if (!castTo(this$static.preparedResult, 49).eDirectResource()) { - return true; - } - } - this$static.preparedResult = null; - return false; - } - else { - return true; - } -} - -function EcoreUtil$ProperContentIterator(eObject){ - var contents; - contents = eObject.eContents_0(); - this.iterator = instanceOf(contents, 69)?castTo(contents, 69).basicIterator():contents.iterator_0(); -} - -defineClass(745, 1, $intern_6, EcoreUtil$ProperContentIterator); -_.forEachRemaining = function forEachRemaining_60(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_51(){ - return $hasNext_9(this); -} -; -_.next_1 = function next_50(){ - var result; - $hasNext_9(this); - result = this.preparedResult; - this.preparedResult = null; - return result; -} -; -_.remove = function remove_129(){ - this.iterator.remove(); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreUtil$ProperContentIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ProperContentIterator', 745); -function $clinit_EcoreValidator(){ - $clinit_EcoreValidator = emptyMethod; - $clinit_EObjectValidator(); - INSTANCE_10 = new EcoreValidator; -} - -function EcoreValidator(){ - $clinit_XMLTypeValidator(); -} - -defineClass(1382, 1381, {}, EcoreValidator); -var INSTANCE_10; -var Lorg_eclipse_emf_ecore_util_EcoreValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreValidator', 1382); -function $clinit_FeatureMapUtil(){ - $clinit_FeatureMapUtil = emptyMethod; - NULL_VALIDATOR = new FeatureMapUtil$1; -} - -function createEntry_5(eStructuralFeature, value_0){ - $clinit_FeatureMapUtil(); - var prototype_0; - prototype_0 = castTo(eStructuralFeature, 66).getFeatureMapEntryPrototype(); - $validate_2(prototype_0, value_0); - return prototype_0.createEntry(value_0); -} - -function getValidator(containingClass, eStructuralFeature){ - $clinit_FeatureMapUtil(); - var extendedMetaData, holder, result, validatorMap; - if (!eStructuralFeature) { - return NULL_VALIDATOR; - } - else if (eStructuralFeature == ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__MIXED) || (eStructuralFeature == ANY_TYPE__MIXED || eStructuralFeature == ANY_TYPE__ANY || eStructuralFeature == ANY_TYPE__ANY_ATTRIBUTE) && containingClass != ANY_TYPE) { - return new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature); - } - else { - holder = castTo(eStructuralFeature, 677); - extendedMetaData = holder.getExtendedMetaData_0(); - if (!extendedMetaData) { - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); - extendedMetaData = holder.getExtendedMetaData_0(); - } - validatorMap = (!extendedMetaData.validatorMap && (extendedMetaData.validatorMap = new HashMap) , extendedMetaData.validatorMap); - result = castTo(getEntryValueOrNull($getEntry_0(validatorMap.hashCodeMap, containingClass)), 1942); - !result && $put_6(validatorMap, containingClass, result = new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature)); - return result; - } -} - -function isMany_1(owner, feature){ - $clinit_FeatureMapUtil(); - var affiliation, affiliationUpperBound, eClass; - if (feature.isMany()) { - return true; - } - else if (feature.getUpperBound() == -2) { - if (feature == ($clinit_XMLTypeFeatures() , TEXT) || feature == CDATA || feature == COMMENT || feature == PROCESSING_INSTRUCTION) { - return true; - } - else { - eClass = owner.eClass_0(); - if ($getFeatureID(eClass, feature) >= 0) { - return false; - } - else { - affiliation = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, feature); - if (!affiliation) { - return true; - } - else { - affiliationUpperBound = affiliation.getUpperBound(); - return (affiliationUpperBound > 1 || affiliationUpperBound == -1) && $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, affiliation)) != 3; - } - } - } - } - else { - return false; - } -} - -var NULL_VALIDATOR; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$Validator_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMapUtil/Validator'); -function FeatureMapUtil$1(){ -} - -defineClass(1260, 1, {1942:1}, FeatureMapUtil$1); -_.isValid = function isValid_2(eStructuralFeature){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/1', 1260); -function $clinit_FeatureMapUtil$BasicValidator(){ - $clinit_FeatureMapUtil$BasicValidator = emptyMethod; - ANY_WILDCARD = ($clinit_Collections() , new Collections$SingletonList('##any')); -} - -function $isIncluded(this$static, feature){ - var featureKind; - if (this$static.wildcards == ANY_WILDCARD) { - featureKind = $getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature)); - return this$static.isElement?featureKind == 4 && feature != ($clinit_XMLTypeFeatures() , TEXT) && feature != ($clinit_XMLTypeFeatures() , CDATA) && feature != ($clinit_XMLTypeFeatures() , COMMENT) && feature != ($clinit_XMLTypeFeatures() , PROCESSING_INSTRUCTION):featureKind == 2; - } - if (!!this$static.groupMembers && (this$static.groupMembers.contains(feature) || this$static.groupMembers.contains($getGroup($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature))) || this$static.groupMembers.contains($getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.containingClass, feature)))) { - return true; - } - if (this$static.wildcards) { - if ($matches(($clinit_ExtendedMetaData() , this$static.wildcards), $getNamespace_0($getExtendedMetaData_1(INSTANCE_11, feature)))) { - featureKind = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature)); - return this$static.isElement?featureKind == 4:featureKind == 2; - } - } - return false; -} - -function FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature){ - $clinit_FeatureMapUtil$BasicValidator(); - var eAllStructuralFeaturesData, feature, feature$iterator, group, i, mixedFeature, size_0; - this.cache = new FeatureMapUtil$BasicValidator$Cache(this); - this.containingClass = containingClass; - this.eStructuralFeature = eStructuralFeature; - this.wildcards = $getWildcards($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); - if (this.wildcards.isEmpty()) { - if ((mixedFeature = $getMixedFeature(INSTANCE_11, containingClass)) == eStructuralFeature) { - this.isElement = true; - this.groupMembers = new ArrayList; - this.wildcards = new UniqueEList; - this.wildcards.add_2('http://www.eclipse.org/emf/2003/XMLType'); - castTo($getType_1($getExtendedMetaData_0(INSTANCE_11, $getEPackage(containingClass)), ''), 26) == containingClass && this.wildcards.add_2($getNamespace(INSTANCE_11, $getEPackage(containingClass))); - for (feature$iterator = $getAllElements(INSTANCE_11, containingClass).iterator_0(); feature$iterator.hasNext_0();) { - feature = castTo(feature$iterator.next_1(), 170); - switch ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature))) { - case 4: - { - this.groupMembers.add_2(feature); - break; - } - - case 5: - { - this.wildcards.addAll($getWildcards($getExtendedMetaData_1(INSTANCE_11, feature))); - break; - } - - } - } - } - else { - $clinit_FeatureMapUtil(); - if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { - this.isElement = true; - this.wildcards = null; - this.groupMembers = new ArrayList; - for (i = 0 , size_0 = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { - feature = (eAllStructuralFeaturesData = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); - for (group = $getGroup($getExtendedMetaData_1(INSTANCE_11, feature)); group; group = $getGroup($getExtendedMetaData_1(INSTANCE_11, group))) { - group == eStructuralFeature && this.groupMembers.add_2(feature); - } - } - } - else if ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 1 && !!mixedFeature) { - this.wildcards = null; - this.groupMembers = ($clinit_XMLTypeFeatures() , TEXTUAL_FEATURES); - } - else { - this.wildcards = null; - this.isElement = true; - this.groupMembers = ($clinit_Collections() , new Collections$SingletonList(eStructuralFeature)); - } - } - } - else { - this.isElement = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 5; - this.wildcards.equals_0(ANY_WILDCARD) && (this.wildcards = ANY_WILDCARD); - } -} - -defineClass(757, 1, {1942:1}, FeatureMapUtil$BasicValidator); -_.isValid = function isValid_3(feature){ - var result; - if (this.eStructuralFeature == feature) - return true; - result = castToBoolean($get_10(this.cache, feature)); - if (result == null) { - if ($isIncluded(this, feature)) { - $put_15(this.cache, feature, ($clinit_Boolean() , TRUE_0)); - return true; - } - else { - $put_15(this.cache, feature, ($clinit_Boolean() , FALSE_0)); - return false; - } - } - else { - return result == ($clinit_Boolean() , TRUE_0); - } -} -; -_.isElement = false; -var ANY_WILDCARD; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator', 757); -function $put_15(this$static, eStructuralFeature, isValid){ - var newCache; - newCache = new FeatureMapUtil$BasicValidator$Cache(this$static.this$11); - $putAll(newCache, this$static.this$11.cache); - $put_9(newCache.hashCodeMap, eStructuralFeature, isValid); - this$static.this$11.cache = newCache; -} - -function FeatureMapUtil$BasicValidator$Cache(this$1){ - this.this$11 = this$1; - HashMap.call(this); -} - -defineClass(758, 43, $intern_76, FeatureMapUtil$BasicValidator$Cache); -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator$Cache_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator/Cache', 758); -function $addAll_14(this$static, collection){ - return $addAll_13(this$static.featureMap, this$static.feature, collection); -} - -function $basicRemove_4(this$static, object, notifications){ - return $basicRemove_3(this$static.featureMap, this$static.feature, object, notifications); -} - -function $clear_16(this$static){ - $clear_15(this$static.featureMap, this$static.feature); -} - -function $isEmpty_2(this$static){ - return $isEmpty_1(this$static.featureMap, this$static.feature); -} - -function FeatureMapUtil$FeatureEList(feature, featureMap){ - this.feature = feature; - this.featureMap = featureMap; -} - -defineClass(501, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 69:1, 95:1}, FeatureMapUtil$FeatureEList); -_.add_3 = function add_70(index_0, object){ - $add_32(this.featureMap, this.feature, index_0, object); -} -; -_.add_2 = function add_71(object){ - return $add_33(this.featureMap, this.feature, object); -} -; -_.addAll_0 = function addAll_37(index_0, collection){ - return $addAll_12(this.featureMap, this.feature, index_0, collection); -} -; -_.addAll = function addAll_38(collection){ - return $addAll_14(this, collection); -} -; -_.addUnique = function addUnique_20(index_0, object){ - $addUnique_11(this.featureMap, this.feature, index_0, object); -} -; -_.basicAdd = function basicAdd_5(object, notifications){ - return $basicAdd_2(this.featureMap, this.feature, object, notifications); -} -; -_.basicGet = function basicGet_6(index_0){ - return $get_23(this.featureMap, this.feature, index_0, false); -} -; -_.basicIterator = function basicIterator_7(){ - return $basicIterator(this.featureMap, this.feature); -} -; -_.basicListIterator = function basicListIterator_15(){ - return $basicListIterator_0(this.featureMap, this.feature); -} -; -_.basicListIterator_0 = function basicListIterator_16(index_0){ - return $basicListIterator_1(this.featureMap, this.feature, index_0); -} -; -_.basicRemove = function basicRemove_6(object, notifications){ - return $basicRemove_4(this, object, notifications); -} -; -_.clear_0 = function clear_66(){ - $clear_16(this); -} -; -_.contains = function contains_67(object){ - return $contains_12(this.featureMap, this.feature, object); -} -; -_.containsAll = function containsAll_15(collection){ - return $containsAll_1(this.featureMap, this.feature, collection); -} -; -_.get_0 = function get_68(index_0){ - return $get_23(this.featureMap, this.feature, index_0, true); -} -; -_.get_6 = function get_69(resolve){ - return this; -} -; -_.indexOf_0 = function indexOf_18(object){ - return $indexOf_7(this.featureMap, this.feature, object); -} -; -_.isEmpty = function isEmpty_34(){ - return $isEmpty_2(this); -} -; -_.isSet_0 = function isSet_20(){ - return !$isEmpty_1(this.featureMap, this.feature); -} -; -_.iterator_0 = function iterator_90(){ - return $iterator_2(this.featureMap, this.feature); -} -; -_.listIterator_0 = function listIterator_33(){ - return $listIterator_3(this.featureMap, this.feature); -} -; -_.listIterator_1 = function listIterator_34(index_0){ - return $listIterator_4(this.featureMap, this.feature, index_0); -} -; -_.move = function move_21(targetIndex, sourceIndex){ - return $move_6(this.featureMap, this.feature, targetIndex, sourceIndex); -} -; -_.move_0 = function move_22(index_0, object){ - $move_7(this.featureMap, this.feature, index_0, object); -} -; -_.remove_2 = function remove_130(index_0){ - return $remove_43(this.featureMap, this.feature, index_0); -} -; -_.remove_1 = function remove_131(object){ - return $remove_44(this.featureMap, this.feature, object); -} -; -_.set_2 = function set_41(index_0, object){ - return $set_18(this.featureMap, this.feature, index_0, object); -} -; -_.set_1 = function set_42(newValue){ - $clear_15(this.featureMap, this.feature); - $addAll_14(this, castTo(newValue, 15)); -} -; -_.size_1 = function size_80(){ - return $size_3(this.featureMap, this.feature); -} -; -_.toArray = function toArray_42(){ - return $toArray_12(this.featureMap, this.feature); -} -; -_.toArray_0 = function toArray_43(array){ - return $toArray_14(this.featureMap, this.feature, array); -} -; -_.toString_0 = function toString_157(){ - var i, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - for (i = $basicIterator(this.featureMap, this.feature); $hasNext_8(i);) { - $append_3(stringBuffer, valueOf_7($next_16(i))); - $hasNext_8(i) && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} -; -_.unset = function unset_16(){ - $clear_15(this.featureMap, this.feature); -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureEList', 501); -function $getFeatureID_0(this$static, expectedClass){ - var containerClass; - if (this$static.featureID == -1 && !!this$static.feature) { - containerClass = this$static.feature.getContainerClass(); - this$static.featureID = !containerClass?$getFeatureID(this$static.notifier.eClass_0(), this$static.feature):this$static.notifier.eDerivedStructuralFeatureID(this$static.feature.getFeatureID_0(), containerClass); - } - return this$static.notifier.eBaseStructuralFeatureID(this$static.featureID, expectedClass); -} - -function FeatureMapUtil$FeatureENotificationImpl(owner, eventType, feature, oldObject, newObject, index_0, wasSet){ - NotificationImpl_2.call(this, eventType, oldObject, newObject, index_0, wasSet); - this.notifier = owner; - this.feature = feature; -} - -defineClass(627, 36, $intern_142, FeatureMapUtil$FeatureENotificationImpl); -_.getFeatureID = function getFeatureID_14(expectedClass){ - return $getFeatureID_0(this, expectedClass); -} -; -_.merge_0 = function merge_5(notification){ - var addedValues, collection, newPositions, notificationEventType, notificationNotifier, positions, removedValues; - switch (this.eventType) { - case 1: - case 2: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.newValue = notification.getNewValue(); - notification.getEventType() == 1 && (this.eventType = 1); - return true; - } - break; - } - - case 3: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 3: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.eventType = 5; - addedValues = new BasicEList_0(2); - $add_21(addedValues, this.newValue); - $add_21(addedValues, notification.getNewValue()); - this.newValue = addedValues; - return true; - } - break; - } - - } - break; - } - - case 5: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 3: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - collection = castTo(this.newValue, 14); - collection.add_2(notification.getNewValue()); - return true; - } - break; - } - - } - break; - } - - case 4: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 3: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.eventType = 1; - this.newValue = notification.getNewValue(); - return true; - } - break; - } - - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.eventType = 6; - removedValues = new BasicEList_0(2); - $add_21(removedValues, this.oldValue); - $add_21(removedValues, notification.getOldValue()); - this.oldValue = removedValues; - positions = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position, notification.getPosition_0()]); - this.newValue = positions; - return true; - } - break; - } - - } - break; - } - - case 6: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - collection = castTo(this.oldValue, 14); - collection.add_2(notification.getOldValue()); - positions = castTo(this.newValue, 48); - newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); - arraycopy(positions, 0, newPositions, 0, positions.length); - newPositions[positions.length] = notification.getPosition_0(); - this.newValue = newPositions; - return true; - } - break; - } - - } - break; - } - - } - return false; -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureENotificationImpl', 627); -function FeatureMapUtil$FeatureFeatureMap(feature, featureMap){ - FeatureMapUtil$FeatureEList.call(this, feature, featureMap); - this.wrapper = this; -} - -defineClass(552, 501, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, FeatureMapUtil$FeatureFeatureMap); -_.add_6 = function add_72(feature, value_0){ - return $add_33(this.featureMap, feature, value_0); -} -; -_.basicAdd_0 = function basicAdd_6(feature, object, notifications){ - return $basicAdd_2(this.featureMap, feature, object, notifications); -} -; -_.basicRemove_0 = function basicRemove_7(feature, object, notifications){ - return $basicRemove_3(this.featureMap, feature, object, notifications); -} -; -_.featureMap_0 = function featureMap_1(){ - return this; -} -; -_.get_7 = function get_70(feature, resolve){ - return $get_24(this.featureMap, feature, resolve); -} -; -_.getEStructuralFeature_0 = function getEStructuralFeature_4(index_0){ - return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getEStructuralFeature(); -} -; -_.getValue_1 = function getValue_20(index_0){ - return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getValue(); -} -; -_.getWrapper = function getWrapper_0(){ - return this.wrapper; -} -; -_.isSet_1 = function isSet_21(feature){ - return !$isEmpty_1(this.featureMap, feature); -} -; -_.set_3 = function set_43(feature, object){ - $set_19(this.featureMap, feature, object); -} -; -_.setting = function setting_1(feature){ - return $setting(this.featureMap, feature); -} -; -_.unset_0 = function unset_17(feature){ - $unset(this.featureMap, feature); -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureFeatureMap', 552); -function FeatureMapUtil$FeatureValue(feature, featureMap){ - this.feature = feature; - this.featureMap = featureMap; -} - -defineClass(1259, 1, $intern_147, FeatureMapUtil$FeatureValue); -_.get_6 = function get_71(resolve){ - return $get_23(this.featureMap, this.feature, -1, resolve); -} -; -_.isSet_0 = function isSet_22(){ - return !$isEmpty_1(this.featureMap, this.feature); -} -; -_.set_1 = function set_44(newValue){ - $set_19(this.featureMap, this.feature, newValue); -} -; -_.unset = function unset_18(){ - $clear_15(this.featureMap, this.feature); -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureValue_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureValue', 1259); -function $clinit_XMLTypeFeatures(){ - $clinit_XMLTypeFeatures = emptyMethod; - TEXT = castTo($get_20($getEStructuralFeatures(($clinit_XMLTypePackage() , eINSTANCE_4).xmlTypeDocumentRootEClass), 6), 34); - CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); - COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); - PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); - $getFeatureMapEntryPrototype(TEXT); - $getFeatureMapEntryPrototype(CDATA); - $getFeatureMapEntryPrototype(COMMENT); - $getFeatureMapEntryPrototype(PROCESSING_INSTRUCTION); - TEXTUAL_FEATURES = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, [TEXT, CDATA])); -} - -var CDATA, COMMENT, PROCESSING_INSTRUCTION, TEXT, TEXTUAL_FEATURES; -var Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'AnyType'); -function InvalidDatatypeValueException(reason){ - RuntimeException_0.call(this, reason); -} - -defineClass(666, 60, $intern_43, InvalidDatatypeValueException); -var Lorg_eclipse_emf_ecore_xml_type_InvalidDatatypeValueException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type', 'InvalidDatatypeValueException', 666); -var Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'ProcessingInstruction'); -var Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'SimpleAnyType'); -var Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'XMLTypeDocumentRoot'); -function $clinit_XMLTypeFactory(){ - $clinit_XMLTypeFactory = emptyMethod; - eINSTANCE_3 = init_5(); -} - -var eINSTANCE_3; -function $clinit_XMLTypePackage(){ - $clinit_XMLTypePackage = emptyMethod; - eINSTANCE_4 = init_6(); -} - -var eINSTANCE_4; -function $clinit_XMLTypePackage$Literals(){ - $clinit_XMLTypePackage$Literals = emptyMethod; - ANY_TYPE = ($clinit_XMLTypePackage() , eINSTANCE_4).anyTypeEClass; - ANY_TYPE__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 0), 34); - ANY_TYPE__ANY = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 1), 34); - ANY_TYPE__ANY_ATTRIBUTE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 2), 34); - PROCESSING_INSTRUCTION_0 = eINSTANCE_4.processingInstructionEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 1), 34); - SIMPLE_ANY_TYPE = eINSTANCE_4.simpleAnyTypeEClass; - SIMPLE_ANY_TYPE__RAW_VALUE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 2), 18); - XML_TYPE_DOCUMENT_ROOT = eINSTANCE_4.xmlTypeDocumentRootEClass; - XML_TYPE_DOCUMENT_ROOT__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 2), 18); - XML_TYPE_DOCUMENT_ROOT__CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); - XML_TYPE_DOCUMENT_ROOT__COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); - XML_TYPE_DOCUMENT_ROOT__TEXT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 6), 34); - XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); - DATE = eINSTANCE_4.dateEDataType; - DATE_TIME = eINSTANCE_4.dateTimeEDataType; - DURATION = eINSTANCE_4.durationEDataType; - GDAY = eINSTANCE_4.gDayEDataType; - GMONTH = eINSTANCE_4.gMonthEDataType; - GMONTH_DAY = eINSTANCE_4.gMonthDayEDataType; - GYEAR = eINSTANCE_4.gYearEDataType; - GYEAR_MONTH = eINSTANCE_4.gYearMonthEDataType; - NOTATION = eINSTANCE_4.notationEDataType; - QNAME = eINSTANCE_4.qNameEDataType; - TIME = eINSTANCE_4.timeEDataType; -} - -var ANY_TYPE, ANY_TYPE__ANY, ANY_TYPE__ANY_ATTRIBUTE, ANY_TYPE__MIXED, DATE, DATE_TIME, DURATION, GDAY, GMONTH, GMONTH_DAY, GYEAR, GYEAR_MONTH, NOTATION, PROCESSING_INSTRUCTION_0, QNAME, SIMPLE_ANY_TYPE, SIMPLE_ANY_TYPE__RAW_VALUE, TIME, XML_TYPE_DOCUMENT_ROOT, XML_TYPE_DOCUMENT_ROOT__CDATA, XML_TYPE_DOCUMENT_ROOT__COMMENT, XML_TYPE_DOCUMENT_ROOT__MIXED, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION, XML_TYPE_DOCUMENT_ROOT__TEXT; -function AnyTypeImpl(){ - EObjectImpl.call(this); -} - -defineClass(830, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1}, AnyTypeImpl); -_.eGet = function eGet_32(featureID, resolve, coreType){ - switch (featureID) { - case 0: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; - case 1: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); - return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); - case 2: - if (coreType) - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_23(otherEnd, featureID, msgs){ - var feature; - switch (featureID) { - case 0: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); - case 1: - return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 69)).basicRemove(otherEnd, msgs); - case 2: - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , $basicRemove_2(this.anyAttribute, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_31(featureID){ - switch (featureID) { - case 0: - return !!this.mixed && this.mixed.size_0 != 0; - case 1: - return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); - case 2: - return !!this.anyAttribute && this.anyAttribute.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_29(featureID, newValue){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_17(this.mixed, newValue); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $set_17(this.anyAttribute, newValue); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_31(){ - return $clinit_XMLTypePackage$Literals() , ANY_TYPE; -} -; -_.eUnset = function eUnset_29(featureID){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_13(this.mixed); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $clear_13(this.anyAttribute); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.toString_0 = function toString_158(){ - var result; - if ((this.eFlags & 4) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (mixed: '; - $append_2(result, this.mixed); - result.string += ', anyAttribute: '; - $append_2(result, this.anyAttribute); - result.string += ')'; - return result.string; -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_AnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'AnyTypeImpl', 830); -function $setData_0(this$static, newData){ - this$static.data_0 = newData; -} - -function $setTarget_2(this$static, newTarget){ - this$static.target = newTarget; -} - -function ProcessingInstructionImpl(){ -} - -defineClass(667, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2021:1, 667:1}, ProcessingInstructionImpl); -_.eGet = function eGet_33(featureID, resolve, coreType){ - switch (featureID) { - case 0: - return this.data_0; - case 1: - return this.target; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_32(featureID){ - switch (featureID) { - case 0: - return this.data_0 != null; - case 1: - return this.target != null; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_30(featureID, newValue){ - switch (featureID) { - case 0: - $setData_0(this, castToString(newValue)); - return; - case 1: - $setTarget_2(this, castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_32(){ - return $clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0; -} -; -_.eUnset = function eUnset_30(featureID){ - switch (featureID) { - case 0: - this.data_0 = null; - return; - case 1: - this.target = null; - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.toString_0 = function toString_159(){ - var result; - if ((this.eFlags & 4) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (data: '; - $append_3(result, this.data_0); - result.string += ', target: '; - $append_3(result, this.target); - result.string += ')'; - return result.string; -} -; -_.data_0 = null; -_.target = null; -var Lorg_eclipse_emf_ecore_xml_type_impl_ProcessingInstructionImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'ProcessingInstructionImpl', 667); -function $setInstanceType(this$static, newInstanceType){ - this$static.instanceType = newInstanceType; -} - -function $setRawValue(this$static, newRawValue){ - !this$static.mixed && (this$static.mixed = new BasicFeatureMap(this$static, 0)); - $set_19(this$static.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), newRawValue); -} - -function SimpleAnyTypeImpl(){ - AnyTypeImpl.call(this); -} - -defineClass(668, 830, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1, 2022:1, 668:1}, SimpleAnyTypeImpl); -_.eGet = function eGet_34(featureID, resolve, coreType){ - switch (featureID) { - case 0: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; - case 1: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); - return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); - case 2: - if (coreType) - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)); - case 4: - return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))); - case 5: - return this.instanceType; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_33(featureID){ - switch (featureID) { - case 0: - return !!this.mixed && this.mixed.size_0 != 0; - case 1: - return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); - case 2: - return !!this.anyAttribute && this.anyAttribute.size_0 != 0; - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)) != null; - case 4: - return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))) != null; - case 5: - return !!this.instanceType; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_31(featureID, newValue){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_17(this.mixed, newValue); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $set_17(this.anyAttribute, newValue); - return; - case 3: - $setRawValue(this, castToString(newValue)); - return; - case 4: - $setRawValue(this, convertToString_2(this.instanceType, newValue)); - return; - case 5: - $setInstanceType(this, castTo(newValue, 148)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_33(){ - return $clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE; -} -; -_.eUnset = function eUnset_31(featureID){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_13(this.mixed); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $clear_13(this.anyAttribute); - return; - case 3: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_19(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), null); - return; - case 4: - $setRawValue(this, convertToString_2(this.instanceType, null)); - return; - case 5: - this.instanceType = null; - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_SimpleAnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'SimpleAnyTypeImpl', 668); -function XMLTypeDocumentRootImpl(){ - EObjectImpl.call(this); -} - -defineClass(669, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2023:1, 669:1}, XMLTypeDocumentRootImpl); -_.eGet = function eGet_35(featureID, resolve, coreType){ - switch (featureID) { - case 0: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; - case 1: - return coreType?(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , this.xMLNSPrefixMap):(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $map_1(this.xMLNSPrefixMap)); - case 2: - return coreType?(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , this.xSISchemaLocation):(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $map_1(this.xSISchemaLocation)); - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA)); - case 4: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT)); - case 5: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)); - case 6: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT)); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_24(otherEnd, featureID, msgs){ - var feature; - switch (featureID) { - case 0: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); - case 1: - return !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $basicRemove_1(this.xMLNSPrefixMap, otherEnd, msgs); - case 2: - return !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $basicRemove_1(this.xSISchemaLocation, otherEnd, msgs); - case 5: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_4($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)), otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT):(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_34(featureID){ - switch (featureID) { - case 0: - return !!this.mixed && this.mixed.size_0 != 0; - case 1: - return !!this.xMLNSPrefixMap && this.xMLNSPrefixMap.size_0 != 0; - case 2: - return !!this.xSISchemaLocation && this.xSISchemaLocation.size_0 != 0; - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); - case 4: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); - case 5: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); - case 6: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_32(featureID, newValue){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_17(this.mixed, newValue); - return; - case 1: - !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); - $set_14(this.xMLNSPrefixMap, newValue); - return; - case 2: - !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); - $set_14(this.xSISchemaLocation, newValue); - return; - case 3: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__CDATA), castTo(newValue, 14)); - return; - case 4: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__COMMENT), castTo(newValue, 14)); - return; - case 5: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION), castTo(newValue, 14)); - return; - case 6: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__TEXT), castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_34(){ - return $clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT; -} -; -_.eUnset = function eUnset_32(featureID){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_13(this.mixed); - return; - case 1: - !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); - this.xMLNSPrefixMap.delegateEList.clear_0(); - return; - case 2: - !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); - this.xSISchemaLocation.delegateEList.clear_0(); - return; - case 3: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); - return; - case 4: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); - return; - case 5: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); - return; - case 6: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.toString_0 = function toString_160(){ - var result; - if ((this.eFlags & 4) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (mixed: '; - $append_2(result, this.mixed); - result.string += ')'; - return result.string; -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeDocumentRootImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeDocumentRootImpl', 669); -function $clinit_XMLTypeFactoryImpl(){ - $clinit_XMLTypeFactoryImpl = emptyMethod; - $clinit_EFactoryImpl(); - DOUBLE_POSITIVE_INFINITY = $intern_59; - DOUBLE_NEGATIVE_INFINITY = $intern_60; - FLOAT_POSITIVE_INFINITY = new Float($intern_59); - FLOAT_NEGATIVE_INFINITY = new Float($intern_60); -} - -function $booleanValueOf_0(initialValue){ - initialValue = normalize(initialValue, true); - if ($equals_5('true', initialValue) || $equals_5('1', initialValue)) { - return $clinit_Boolean() , TRUE_0; - } - else if ($equals_5('false', initialValue) || $equals_5('0', initialValue)) { - return $clinit_Boolean() , FALSE_0; - } - throw toJs(new InvalidDatatypeValueException("Invalid boolean value: '" + initialValue + "'")); -} - -function $convertBase64Binary(instanceValue){ - return instanceValue == null?null:encode(instanceValue); -} - -function $convertDouble(instanceValue){ - return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; -} - -function $convertENTITIESBaseToString(instanceValue){ - var i, list, result; - if (instanceValue == null) - return null; - list = castTo(instanceValue, 15); - if (list.isEmpty()) - return ''; - result = new StringBuffer; - for (i = list.iterator_0(); i.hasNext_0();) { - $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); - result.string += ' '; - } - return $substring(result, result.string.length - 1); -} - -function $convertFloat(instanceValue){ - return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; -} - -function $convertHexBinary(instanceValue){ - return instanceValue == null?null:encode_0(instanceValue); -} - -function $convertIDREFSBase(instanceValue){ - var item_0, item$iterator, result; - if (!instanceValue) - return null; - if (instanceValue.isEmpty()) - return ''; - result = new StringBuffer; - for (item$iterator = instanceValue.iterator_0(); item$iterator.hasNext_0();) { - item_0 = item$iterator.next_1(); - $append_3(result, castToString(item_0)); - result.string += ' '; - } - return $substring(result, result.string.length - 1); -} - -function $convertNMTOKENSBaseToString(instanceValue){ - var i, list, result; - if (instanceValue == null) - return null; - list = castTo(instanceValue, 15); - if (list.isEmpty()) - return ''; - result = new StringBuffer; - for (i = list.iterator_0(); i.hasNext_0();) { - $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); - result.string += ' '; - } - return $substring(result, result.string.length - 1); -} - -function $convertNonNegativeIntegerToString(instanceValue){ - return instanceValue == null?null:toString_40(instanceValue); -} - -function $convertNonPositiveIntegerToString(instanceValue){ - return instanceValue == null?null:toString_40(instanceValue); -} - -function $createBase64Binary(literal){ - var value_0; - if (literal == null) - return null; - value_0 = decode_0(normalize(literal, true)); - if (value_0 == null) { - throw toJs(new InvalidDatatypeValueException("Invalid base64Binary value: '" + literal + "'")); - } - return value_0; -} - -function $createDoubleObject(literal){ - var ch_0, length_0, normalizedLiteral, suffixlength; - if (literal == null) { - return null; - } - else { - normalizedLiteral = normalize(literal, true); - suffixlength = 'INF'.length; - if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { - length_0 = normalizedLiteral.length; - if (length_0 == 4) { - ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); - if (ch_0 == 43) { - return DOUBLE_POSITIVE_INFINITY; - } - else if (ch_0 == 45) { - return DOUBLE_NEGATIVE_INFINITY; - } - } - else if (length_0 == 3) { - return DOUBLE_POSITIVE_INFINITY; - } - } - return __parseAndValidateDouble(normalizedLiteral); - } -} - -function $createENTITIESBase(literal){ - var item_0, item$array, item$index, item$max, result; - if (literal == null) - return null; - result = new ArrayList; - for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, normalize(item_0, true)); - } - return result; -} - -function $createFloatObject(literal){ - var ch_0, length_0, normalizedLiteral, suffixlength; - if (literal == null) { - return null; - } - else { - normalizedLiteral = normalize(literal, true); - suffixlength = 'INF'.length; - if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { - length_0 = normalizedLiteral.length; - if (length_0 == 4) { - ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); - if (ch_0 == 43) { - return FLOAT_POSITIVE_INFINITY; - } - else if (ch_0 == 45) { - return FLOAT_NEGATIVE_INFINITY; - } - } - else if (length_0 == 3) { - return FLOAT_POSITIVE_INFINITY; - } - } - return new Float_0(normalizedLiteral); - } -} - -function $createHexBinary(literal){ - var value_0; - if (literal == null) - return null; - value_0 = decode_1(normalize(literal, true)); - if (value_0 == null) { - throw toJs(new InvalidDatatypeValueException("Invalid hexBinary value: '" + literal + "'")); - } - return value_0; -} - -function $createIDREFSBase(literal){ - var item_0, item$array, item$index, item$max, result; - if (literal == null) - return null; - result = new ArrayList; - for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, normalize(item_0, true)); - } - return result; -} - -function $createNMTOKENSBase(literal){ - var item_0, item$array, item$index, item$max, result; - if (literal == null) - return null; - result = new ArrayList; - for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, normalize(item_0, true)); - } - return result; -} - -function $createNonNegativeIntegerFromString(initialValue){ - var result; - return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); -} - -function $createNonPositiveIntegerFromString(initialValue){ - var result; - return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); -} - -function XMLTypeFactoryImpl(){ -} - -function init_5(){ - $clinit_XMLTypeFactoryImpl(); - var exception, theXMLTypeFactory; - try { - theXMLTypeFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2024); - if (theXMLTypeFactory) { - return theXMLTypeFactory; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - $log_3(($clinit_EcorePlugin() , exception)); - } - else - throw toJs($e0); - } - return new XMLTypeFactoryImpl; -} - -defineClass(1919, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1, 2024:1}, XMLTypeFactoryImpl); -_.convertToString = function convertToString_3(eDataType, instanceValue){ - switch (eDataType.getClassifierID()) { - case 7: - case 8: - case 9: - case 10: - case 16: - case 22: - case 23: - case 24: - case 25: - case 26: - case 32: - case 33: - case 34: - case 36: - case 37: - case 44: - case 45: - case 50: - case 51: - case 53: - case 55: - case 56: - case 57: - case 58: - case 60: - case 61: - case 4: - return instanceValue == null?null:toString_40(instanceValue); - case 19: - case 28: - case 29: - case 35: - case 38: - case 39: - case 41: - case 46: - case 52: - case 54: - case 5: - return castToString(instanceValue); - case 6: - return $convertBase64Binary(castTo(instanceValue, 190)); - case 12: - case 47: - case 49: - case 11: - return $convertToString(this, eDataType, instanceValue); - case 13: - return instanceValue == null?null:$toPlainString(castTo(instanceValue, 240)); - case 15: - case 14: - return instanceValue == null?null:$convertDouble($doubleValue(castToDouble(instanceValue))); - case 17: - return $convertENTITIESBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - case 18: - return $convertENTITIESBaseToString(instanceValue); - case 21: - case 20: - return instanceValue == null?null:$convertFloat(castTo(instanceValue, 155).value_0); - case 27: - return $convertHexBinary(castTo(instanceValue, 190)); - case 30: - return $convertIDREFSBase(($clinit_XMLTypePackage$Literals() , castTo(instanceValue, 15))); - case 31: - return $convertIDREFSBase(castTo(instanceValue, 15)); - case 40: - return $convertNonPositiveIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - case 42: - return $convertNMTOKENSBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - case 43: - return $convertNMTOKENSBaseToString(instanceValue); - case 59: - case 48: - return $convertNonNegativeIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -_.create_3 = function create_43(eClass){ - var anyType, ePackage, processingInstruction, simpleAnyType, xmlTypeDocumentRoot; - switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { - case 0: - return anyType = new AnyTypeImpl , anyType; - case 1: - return processingInstruction = new ProcessingInstructionImpl , processingInstruction; - case 2: - return simpleAnyType = new SimpleAnyTypeImpl , simpleAnyType; - case 3: - return xmlTypeDocumentRoot = new XMLTypeDocumentRootImpl , xmlTypeDocumentRoot; - default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); - } -} -; -_.createFromString = function createFromString_3(eDataType, initialValue){ - var result, result0, result1, result10, result11, result12, result13, result14, result2, result3, result4, result5, result6, result7, result8, result9; - switch (eDataType.getClassifierID()) { - case 5: - case 52: - case 4: - return initialValue; - case 6: - return $createBase64Binary(initialValue); - case 8: - case 7: - return initialValue == null?null:$booleanValueOf_0(initialValue); - case 9: - return initialValue == null?null:valueOf_2(__parseAndValidateInt((result0 = normalize(initialValue, true) , result0.length > 0 && (checkCriticalStringElementIndex(0, result0.length) , result0.charCodeAt(0) == 43)?result0.substr(1):result0), -128, 127) << 24 >> 24); - case 10: - return initialValue == null?null:valueOf_2(__parseAndValidateInt((result1 = normalize(initialValue, true) , result1.length > 0 && (checkCriticalStringElementIndex(0, result1.length) , result1.charCodeAt(0) == 43)?result1.substr(1):result1), -128, 127) << 24 >> 24); - case 11: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE), initialValue)); - case 12: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE_TIME), initialValue)); - case 13: - return initialValue == null?null:new BigDecimal_0(normalize(initialValue, true)); - case 15: - case 14: - return $createDoubleObject(initialValue); - case 16: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DURATION), initialValue)); - case 17: - return $createENTITIESBase(($clinit_XMLTypePackage$Literals() , initialValue)); - case 18: - return $createENTITIESBase(initialValue); - case 28: - case 29: - case 35: - case 38: - case 39: - case 41: - case 54: - case 19: - return normalize(initialValue, true); - case 21: - case 20: - return $createFloatObject(initialValue); - case 22: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GDAY), initialValue)); - case 23: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH), initialValue)); - case 24: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH_DAY), initialValue)); - case 25: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR), initialValue)); - case 26: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR_MONTH), initialValue)); - case 27: - return $createHexBinary(initialValue); - case 30: - return $createIDREFSBase(($clinit_XMLTypePackage$Literals() , initialValue)); - case 31: - return $createIDREFSBase(initialValue); - case 32: - return initialValue == null?null:valueOf_4(__parseAndValidateInt((result2 = normalize(initialValue, true) , result2.length > 0 && (checkCriticalStringElementIndex(0, result2.length) , result2.charCodeAt(0) == 43)?result2.substr(1):result2), $intern_42, $intern_0)); - case 33: - return initialValue == null?null:new BigInteger_4((result3 = normalize(initialValue, true) , result3.length > 0 && (checkCriticalStringElementIndex(0, result3.length) , result3.charCodeAt(0) == 43)?result3.substr(1):result3)); - case 34: - return initialValue == null?null:valueOf_4(__parseAndValidateInt((result4 = normalize(initialValue, true) , result4.length > 0 && (checkCriticalStringElementIndex(0, result4.length) , result4.charCodeAt(0) == 43)?result4.substr(1):result4), $intern_42, $intern_0)); - case 36: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result5 = normalize(initialValue, true) , result5.length > 0 && (checkCriticalStringElementIndex(0, result5.length) , result5.charCodeAt(0) == 43)?result5.substr(1):result5))); - case 37: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result6 = normalize(initialValue, true) , result6.length > 0 && (checkCriticalStringElementIndex(0, result6.length) , result6.charCodeAt(0) == 43)?result6.substr(1):result6))); - case 40: - return $createNonPositiveIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); - case 42: - return $createNMTOKENSBase(($clinit_XMLTypePackage$Literals() , initialValue)); - case 43: - return $createNMTOKENSBase(initialValue); - case 44: - return initialValue == null?null:new BigInteger_4((result7 = normalize(initialValue, true) , result7.length > 0 && (checkCriticalStringElementIndex(0, result7.length) , result7.charCodeAt(0) == 43)?result7.substr(1):result7)); - case 45: - return initialValue == null?null:new BigInteger_4((result8 = normalize(initialValue, true) , result8.length > 0 && (checkCriticalStringElementIndex(0, result8.length) , result8.charCodeAt(0) == 43)?result8.substr(1):result8)); - case 46: - return normalize(initialValue, false); - case 47: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , NOTATION), initialValue)); - case 59: - case 48: - return $createNonNegativeIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); - case 49: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , QNAME), initialValue)); - case 50: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result9 = normalize(initialValue, true) , result9.length > 0 && (checkCriticalStringElementIndex(0, result9.length) , result9.charCodeAt(0) == 43)?result9.substr(1):result9), $intern_161, 32767) << 16 >> 16); - case 51: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result10 = normalize(initialValue, true) , result10.length > 0 && (checkCriticalStringElementIndex(0, result10.length) , result10.charCodeAt(0) == 43)?result10.substr(1):result10), $intern_161, 32767) << 16 >> 16); - case 53: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , TIME), initialValue)); - case 55: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result11 = normalize(initialValue, true) , result11.length > 0 && (checkCriticalStringElementIndex(0, result11.length) , result11.charCodeAt(0) == 43)?result11.substr(1):result11), $intern_161, 32767) << 16 >> 16); - case 56: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result12 = normalize(initialValue, true) , result12.length > 0 && (checkCriticalStringElementIndex(0, result12.length) , result12.charCodeAt(0) == 43)?result12.substr(1):result12), $intern_161, 32767) << 16 >> 16); - case 57: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result13 = normalize(initialValue, true) , result13.length > 0 && (checkCriticalStringElementIndex(0, result13.length) , result13.charCodeAt(0) == 43)?result13.substr(1):result13))); - case 58: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result14 = normalize(initialValue, true) , result14.length > 0 && (checkCriticalStringElementIndex(0, result14.length) , result14.charCodeAt(0) == 43)?result14.substr(1):result14))); - case 60: - return initialValue == null?null:valueOf_4(__parseAndValidateInt((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result), $intern_42, $intern_0)); - case 61: - return initialValue == null?null:valueOf_4(__parseAndValidateInt(normalize(initialValue, true), $intern_42, $intern_0)); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -var DOUBLE_NEGATIVE_INFINITY, DOUBLE_POSITIVE_INFINITY, FLOAT_NEGATIVE_INFINITY, FLOAT_POSITIVE_INFINITY; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeFactoryImpl', 1919); -function $$init_13(this$static){ - this$static.anyTypeEClass = null; - this$static.processingInstructionEClass = null; - this$static.simpleAnyTypeEClass = null; - this$static.xmlTypeDocumentRootEClass = null; - this$static.anySimpleTypeEDataType = null; - this$static.anyURIEDataType = null; - this$static.base64BinaryEDataType = null; - this$static.booleanEDataType = null; - this$static.booleanObjectEDataType = null; - this$static.decimalEDataType = null; - this$static.integerEDataType = null; - this$static.intObjectEDataType = null; - this$static.longEDataType = null; - this$static.longObjectEDataType = null; - this$static.intEDataType = null; - this$static.shortEDataType = null; - this$static.shortObjectEDataType = null; - this$static.byteEDataType = null; - this$static.byteObjectEDataType = null; - this$static.dateEDataType = null; - this$static.dateTimeEDataType = null; - this$static.stringEDataType = null; - this$static.doubleEDataType = null; - this$static.doubleObjectEDataType = null; - this$static.durationEDataType = null; - this$static.entitiesBaseEDataType = null; - this$static.normalizedStringEDataType = null; - this$static.tokenEDataType = null; - this$static.nameEDataType = null; - this$static.ncNameEDataType = null; - this$static.entityEDataType = null; - this$static.entitiesEDataType = null; - this$static.floatEDataType = null; - this$static.floatObjectEDataType = null; - this$static.gDayEDataType = null; - this$static.gMonthEDataType = null; - this$static.gMonthDayEDataType = null; - this$static.gYearEDataType = null; - this$static.gYearMonthEDataType = null; - this$static.hexBinaryEDataType = null; - this$static.idEDataType = null; - this$static.idrefEDataType = null; - this$static.idrefsBaseEDataType = null; - this$static.idrefsEDataType = null; - this$static.languageEDataType = null; - this$static.nonPositiveIntegerEDataType = null; - this$static.negativeIntegerEDataType = null; - this$static.nmtokenEDataType = null; - this$static.nmtokensBaseEDataType = null; - this$static.nmtokensEDataType = null; - this$static.nonNegativeIntegerEDataType = null; - this$static.notationEDataType = null; - this$static.positiveIntegerEDataType = null; - this$static.qNameEDataType = null; - this$static.timeEDataType = null; - this$static.unsignedLongEDataType = null; - this$static.unsignedIntEDataType = null; - this$static.unsignedIntObjectEDataType = null; - this$static.unsignedShortEDataType = null; - this$static.unsignedShortObjectEDataType = null; - this$static.unsignedByteEDataType = null; - this$static.unsignedByteObjectEDataType = null; - this$static.isCreated = false; - this$static.isInitialized = false; -} - -function $createExtendedMetaDataAnnotations_0(this$static){ - $addAnnotation(this$static.anySimpleTypeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anySimpleType'])); - $addAnnotation(this$static.anyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyType', 'kind', 'mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'wildcards', '##any', 'name', ':1', 'processing', 'lax'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attributeWildcard', 'wildcards', '##any', 'name', ':2', 'processing', 'lax'])); - $addAnnotation(this$static.anyURIEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyURI', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.base64BinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'base64Binary', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.booleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.booleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean:Object', 'baseType', 'boolean'])); - $addAnnotation(this$static.byteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte'])); - $addAnnotation(this$static.byteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte:Object', 'baseType', 'byte'])); - $addAnnotation(this$static.dateEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'date', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.dateTimeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'dateTime', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.decimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'decimal', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.doubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.doubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double:Object', 'baseType', 'double'])); - $addAnnotation(this$static.durationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'duration', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.entitiesEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES', 'baseType', 'ENTITIES_._base', 'minLength', '1'])); - $addAnnotation(this$static.entitiesBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES_._base', 'itemType', 'ENTITY'])); - $addAnnotation(this$static.entityEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITY', 'baseType', 'NCName'])); - $addAnnotation(this$static.floatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.floatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float:Object', 'baseType', 'float'])); - $addAnnotation(this$static.gDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gDay', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonth', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gMonthDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonthDay', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gYearEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYear', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gYearMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYearMonth', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.hexBinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'hexBinary', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.idEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ID', 'baseType', 'NCName'])); - $addAnnotation(this$static.idrefEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREF', 'baseType', 'NCName'])); - $addAnnotation(this$static.idrefsEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS', 'baseType', 'IDREFS_._base', 'minLength', '1'])); - $addAnnotation(this$static.idrefsBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS_._base', 'itemType', 'IDREF'])); - $addAnnotation(this$static.intEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int'])); - $addAnnotation(this$static.integerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'integer'])); - $addAnnotation(this$static.intObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int:Object', 'baseType', 'int'])); - $addAnnotation(this$static.languageEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'language', 'baseType', 'token', 'pattern', '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'])); - $addAnnotation(this$static.longEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long'])); - $addAnnotation(this$static.longObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long:Object', 'baseType', 'long'])); - $addAnnotation(this$static.nameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'Name', 'baseType', 'token', 'pattern', '\\i\\c*'])); - $addAnnotation(this$static.ncNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NCName', 'baseType', 'Name', 'pattern', '[\\i-[:]][\\c-[:]]*'])); - $addAnnotation(this$static.negativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'negativeInteger', 'baseType', 'nonPositiveInteger', 'maxInclusive', '-1'])); - $addAnnotation(this$static.nmtokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKEN', 'baseType', 'token', 'pattern', '\\c+'])); - $addAnnotation(this$static.nmtokensEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS', 'baseType', 'NMTOKENS_._base', 'minLength', '1'])); - $addAnnotation(this$static.nmtokensBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS_._base', 'itemType', 'NMTOKEN'])); - $addAnnotation(this$static.nonNegativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonNegativeInteger', 'baseType', 'integer', 'minInclusive', '0'])); - $addAnnotation(this$static.nonPositiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonPositiveInteger', 'baseType', 'integer', 'maxInclusive', '0'])); - $addAnnotation(this$static.normalizedStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'normalizedString', 'baseType', 'string', 'whiteSpace', 'replace'])); - $addAnnotation(this$static.notationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NOTATION', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.positiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'positiveInteger', 'baseType', 'nonNegativeInteger', 'minInclusive', '1'])); - $addAnnotation(this$static.processingInstructionEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'processingInstruction_._type', 'kind', 'empty'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'data'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'target'])); - $addAnnotation(this$static.qNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'QName', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.shortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short'])); - $addAnnotation(this$static.shortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short:Object', 'baseType', 'short'])); - $addAnnotation(this$static.simpleAnyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'simpleAnyType', 'kind', 'simple'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':3', 'kind', 'simple'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':4', 'kind', 'simple'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':5', 'kind', 'simple'])); - $addAnnotation(this$static.stringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'string', 'whiteSpace', 'preserve'])); - $addAnnotation(this$static.timeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'time', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.tokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'token', 'baseType', 'normalizedString', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.unsignedByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte', 'maxInclusive', '255', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte:Object', 'baseType', 'unsignedByte'])); - $addAnnotation(this$static.unsignedIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt', 'maxInclusive', '4294967295', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedIntObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt:Object', 'baseType', 'unsignedInt'])); - $addAnnotation(this$static.unsignedLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedLong', 'baseType', 'nonNegativeInteger', 'maxInclusive', '18446744073709551615', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort', 'maxInclusive', '65535', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort:Object', 'baseType', 'unsignedShort'])); - $addAnnotation(this$static.xmlTypeDocumentRootEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', '', 'kind', 'mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xmlns:prefix'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xsi:schemaLocation'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'cDATA', 'namespace', '##targetNamespace'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'comment', 'namespace', '##targetNamespace'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'processingInstruction', 'namespace', '##targetNamespace'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'text', 'namespace', '##targetNamespace'])); -} - -function $createPackageContents_1(this$static){ - if (this$static.isCreated) - return; - this$static.isCreated = true; - this$static.anyTypeEClass = $createEClass(this$static, 0); - $createEAttribute(this$static.anyTypeEClass, 0); - $createEAttribute(this$static.anyTypeEClass, 1); - $createEAttribute(this$static.anyTypeEClass, 2); - this$static.processingInstructionEClass = $createEClass(this$static, 1); - $createEAttribute(this$static.processingInstructionEClass, 0); - $createEAttribute(this$static.processingInstructionEClass, 1); - this$static.simpleAnyTypeEClass = $createEClass(this$static, 2); - $createEAttribute(this$static.simpleAnyTypeEClass, 3); - $createEAttribute(this$static.simpleAnyTypeEClass, 4); - $createEReference(this$static.simpleAnyTypeEClass, 5); - this$static.xmlTypeDocumentRootEClass = $createEClass(this$static, 3); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 0); - $createEReference(this$static.xmlTypeDocumentRootEClass, 1); - $createEReference(this$static.xmlTypeDocumentRootEClass, 2); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 3); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 4); - $createEReference(this$static.xmlTypeDocumentRootEClass, 5); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 6); - this$static.anySimpleTypeEDataType = $createEDataType(this$static, 4); - this$static.anyURIEDataType = $createEDataType(this$static, 5); - this$static.base64BinaryEDataType = $createEDataType(this$static, 6); - this$static.booleanEDataType = $createEDataType(this$static, 7); - this$static.booleanObjectEDataType = $createEDataType(this$static, 8); - this$static.byteEDataType = $createEDataType(this$static, 9); - this$static.byteObjectEDataType = $createEDataType(this$static, 10); - this$static.dateEDataType = $createEDataType(this$static, 11); - this$static.dateTimeEDataType = $createEDataType(this$static, 12); - this$static.decimalEDataType = $createEDataType(this$static, 13); - this$static.doubleEDataType = $createEDataType(this$static, 14); - this$static.doubleObjectEDataType = $createEDataType(this$static, 15); - this$static.durationEDataType = $createEDataType(this$static, 16); - this$static.entitiesEDataType = $createEDataType(this$static, 17); - this$static.entitiesBaseEDataType = $createEDataType(this$static, 18); - this$static.entityEDataType = $createEDataType(this$static, 19); - this$static.floatEDataType = $createEDataType(this$static, 20); - this$static.floatObjectEDataType = $createEDataType(this$static, 21); - this$static.gDayEDataType = $createEDataType(this$static, 22); - this$static.gMonthEDataType = $createEDataType(this$static, 23); - this$static.gMonthDayEDataType = $createEDataType(this$static, 24); - this$static.gYearEDataType = $createEDataType(this$static, 25); - this$static.gYearMonthEDataType = $createEDataType(this$static, 26); - this$static.hexBinaryEDataType = $createEDataType(this$static, 27); - this$static.idEDataType = $createEDataType(this$static, 28); - this$static.idrefEDataType = $createEDataType(this$static, 29); - this$static.idrefsEDataType = $createEDataType(this$static, 30); - this$static.idrefsBaseEDataType = $createEDataType(this$static, 31); - this$static.intEDataType = $createEDataType(this$static, 32); - this$static.integerEDataType = $createEDataType(this$static, 33); - this$static.intObjectEDataType = $createEDataType(this$static, 34); - this$static.languageEDataType = $createEDataType(this$static, 35); - this$static.longEDataType = $createEDataType(this$static, 36); - this$static.longObjectEDataType = $createEDataType(this$static, 37); - this$static.nameEDataType = $createEDataType(this$static, 38); - this$static.ncNameEDataType = $createEDataType(this$static, 39); - this$static.negativeIntegerEDataType = $createEDataType(this$static, 40); - this$static.nmtokenEDataType = $createEDataType(this$static, 41); - this$static.nmtokensEDataType = $createEDataType(this$static, 42); - this$static.nmtokensBaseEDataType = $createEDataType(this$static, 43); - this$static.nonNegativeIntegerEDataType = $createEDataType(this$static, 44); - this$static.nonPositiveIntegerEDataType = $createEDataType(this$static, 45); - this$static.normalizedStringEDataType = $createEDataType(this$static, 46); - this$static.notationEDataType = $createEDataType(this$static, 47); - this$static.positiveIntegerEDataType = $createEDataType(this$static, 48); - this$static.qNameEDataType = $createEDataType(this$static, 49); - this$static.shortEDataType = $createEDataType(this$static, 50); - this$static.shortObjectEDataType = $createEDataType(this$static, 51); - this$static.stringEDataType = $createEDataType(this$static, 52); - this$static.timeEDataType = $createEDataType(this$static, 53); - this$static.tokenEDataType = $createEDataType(this$static, 54); - this$static.unsignedByteEDataType = $createEDataType(this$static, 55); - this$static.unsignedByteObjectEDataType = $createEDataType(this$static, 56); - this$static.unsignedIntEDataType = $createEDataType(this$static, 57); - this$static.unsignedIntObjectEDataType = $createEDataType(this$static, 58); - this$static.unsignedLongEDataType = $createEDataType(this$static, 59); - this$static.unsignedShortEDataType = $createEDataType(this$static, 60); - this$static.unsignedShortObjectEDataType = $createEDataType(this$static, 61); -} - -function $initializePackageContents_1(this$static){ - var theXMLTypePackage_1; - if (this$static.isInitialized) - return; - this$static.isInitialized = true; - $setName(this$static, 'type'); - $setNsPrefix(this$static, 'ecore.xml.type'); - $setNsURI(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); - theXMLTypePackage_1 = castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); - $add_21($getESuperTypes(this$static.simpleAnyTypeEClass), this$static.anyTypeEClass); - $initEClass(this$static.anyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, 'AnyType', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'any', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, true, true, true, false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'anyAttribute', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); - $initEClass(this$static.processingInstructionEClass, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, 'ProcessingInstruction', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), this$static.stringEDataType, 'data', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), this$static.stringEDataType, 'target', null, 1, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.simpleAnyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, 'SimpleAnyType', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), theXMLTypePackage_1.stringEDataType, 'rawValue', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), theXMLTypePackage_1.anySimpleTypeEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), this$static.ecorePackage.eDataTypeEClass, null, 'instanceType', 1, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, false, false, true, false, false, false, false); - $initEClass(this$static.xmlTypeDocumentRootEClass, Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, 'XMLTypeDocumentRoot', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, null, false, false, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xMLNSPrefixMap', 0, -1, null, true, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xSISchemaLocation', 0, -1, null, true, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), this$static.stringEDataType, 'cDATA', null, 0, -2, null, true, true, true, false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), this$static.stringEDataType, 'comment', null, 0, -2, null, true, true, true, false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), this$static.processingInstructionEClass, null, 'processingInstruction', 0, -2, null, true, true, true, true, false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), this$static.stringEDataType, 'text', null, 0, -2, null, true, true, true, false, false, true); - $initEDataType(this$static.anySimpleTypeEDataType, Ljava_lang_Object_2_classLit, 'AnySimpleType', true); - $initEDataType(this$static.anyURIEDataType, Ljava_lang_String_2_classLit, 'AnyURI', true); - $initEDataType(this$static.base64BinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'Base64Binary', true); - $initEDataType(this$static.booleanEDataType, Z_classLit, 'Boolean', true); - $initEDataType(this$static.booleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'BooleanObject', true); - $initEDataType(this$static.byteEDataType, B_classLit, 'Byte', true); - $initEDataType(this$static.byteObjectEDataType, Ljava_lang_Byte_2_classLit, 'ByteObject', true); - $initEDataType(this$static.dateEDataType, Ljava_lang_String_2_classLit, 'Date', true); - $initEDataType(this$static.dateTimeEDataType, Ljava_lang_String_2_classLit, 'DateTime', true); - $initEDataType(this$static.decimalEDataType, Ljava_math_BigDecimal_2_classLit, 'Decimal', true); - $initEDataType(this$static.doubleEDataType, D_classLit, 'Double', true); - $initEDataType(this$static.doubleObjectEDataType, Ljava_lang_Double_2_classLit, 'DoubleObject', true); - $initEDataType(this$static.durationEDataType, Ljava_lang_String_2_classLit, 'Duration', true); - $initEDataType(this$static.entitiesEDataType, Ljava_util_List_2_classLit, 'ENTITIES', true); - $initEDataType(this$static.entitiesBaseEDataType, Ljava_util_List_2_classLit, 'ENTITIESBase', true); - $initEDataType(this$static.entityEDataType, Ljava_lang_String_2_classLit, 'ENTITY', true); - $initEDataType(this$static.floatEDataType, F_classLit, 'Float', true); - $initEDataType(this$static.floatObjectEDataType, Ljava_lang_Float_2_classLit, 'FloatObject', true); - $initEDataType(this$static.gDayEDataType, Ljava_lang_String_2_classLit, 'GDay', true); - $initEDataType(this$static.gMonthEDataType, Ljava_lang_String_2_classLit, 'GMonth', true); - $initEDataType(this$static.gMonthDayEDataType, Ljava_lang_String_2_classLit, 'GMonthDay', true); - $initEDataType(this$static.gYearEDataType, Ljava_lang_String_2_classLit, 'GYear', true); - $initEDataType(this$static.gYearMonthEDataType, Ljava_lang_String_2_classLit, 'GYearMonth', true); - $initEDataType(this$static.hexBinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'HexBinary', true); - $initEDataType(this$static.idEDataType, Ljava_lang_String_2_classLit, 'ID', true); - $initEDataType(this$static.idrefEDataType, Ljava_lang_String_2_classLit, 'IDREF', true); - $initEDataType(this$static.idrefsEDataType, Ljava_util_List_2_classLit, 'IDREFS', true); - $initEDataType(this$static.idrefsBaseEDataType, Ljava_util_List_2_classLit, 'IDREFSBase', true); - $initEDataType(this$static.intEDataType, I_classLit, 'Int', true); - $initEDataType(this$static.integerEDataType, Ljava_math_BigInteger_2_classLit, 'Integer', true); - $initEDataType(this$static.intObjectEDataType, Ljava_lang_Integer_2_classLit, 'IntObject', true); - $initEDataType(this$static.languageEDataType, Ljava_lang_String_2_classLit, 'Language', true); - $initEDataType(this$static.longEDataType, J_classLit, 'Long', true); - $initEDataType(this$static.longObjectEDataType, Ljava_lang_Long_2_classLit, 'LongObject', true); - $initEDataType(this$static.nameEDataType, Ljava_lang_String_2_classLit, 'Name', true); - $initEDataType(this$static.ncNameEDataType, Ljava_lang_String_2_classLit, 'NCName', true); - $initEDataType(this$static.negativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NegativeInteger', true); - $initEDataType(this$static.nmtokenEDataType, Ljava_lang_String_2_classLit, 'NMTOKEN', true); - $initEDataType(this$static.nmtokensEDataType, Ljava_util_List_2_classLit, 'NMTOKENS', true); - $initEDataType(this$static.nmtokensBaseEDataType, Ljava_util_List_2_classLit, 'NMTOKENSBase', true); - $initEDataType(this$static.nonNegativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonNegativeInteger', true); - $initEDataType(this$static.nonPositiveIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonPositiveInteger', true); - $initEDataType(this$static.normalizedStringEDataType, Ljava_lang_String_2_classLit, 'NormalizedString', true); - $initEDataType(this$static.notationEDataType, Ljava_lang_String_2_classLit, 'NOTATION', true); - $initEDataType(this$static.positiveIntegerEDataType, Ljava_lang_String_2_classLit, 'PositiveInteger', true); - $initEDataType(this$static.qNameEDataType, Ljava_lang_String_2_classLit, 'QName', true); - $initEDataType(this$static.shortEDataType, S_classLit, 'Short', true); - $initEDataType(this$static.shortObjectEDataType, Ljava_lang_Short_2_classLit, 'ShortObject', true); - $initEDataType(this$static.stringEDataType, Ljava_lang_String_2_classLit, 'String', true); - $initEDataType(this$static.timeEDataType, Ljava_lang_String_2_classLit, 'Time', true); - $initEDataType(this$static.tokenEDataType, Ljava_lang_String_2_classLit, 'Token', true); - $initEDataType(this$static.unsignedByteEDataType, S_classLit, 'UnsignedByte', true); - $initEDataType(this$static.unsignedByteObjectEDataType, Ljava_lang_Short_2_classLit, 'UnsignedByteObject', true); - $initEDataType(this$static.unsignedIntEDataType, J_classLit, 'UnsignedInt', true); - $initEDataType(this$static.unsignedIntObjectEDataType, Ljava_lang_Long_2_classLit, 'UnsignedIntObject', true); - $initEDataType(this$static.unsignedLongEDataType, Ljava_math_BigInteger_2_classLit, 'UnsignedLong', true); - $initEDataType(this$static.unsignedShortEDataType, I_classLit, 'UnsignedShort', true); - $initEDataType(this$static.unsignedShortObjectEDataType, Ljava_lang_Integer_2_classLit, 'UnsignedShortObject', true); - $createResource(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); - $createExtendedMetaDataAnnotations_0(this$static); -} - -function XMLTypePackageImpl(){ - EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2003/XMLType', ($clinit_XMLTypeFactory() , eINSTANCE_3)); - $$init_13(this); -} - -function init_6(){ - var theXMLTypePackage; - if (isInited_1) - return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); - initializeRegistryHelpers(); - theXMLTypePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 586)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType'):new XMLTypePackageImpl, 586); - isInited_1 = true; - $createPackageContents_1(theXMLTypePackage); - $initializePackageContents_1(theXMLTypePackage); - $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theXMLTypePackage, new XMLTypePackageImpl$1); - $freeze_0(theXMLTypePackage); - $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType', theXMLTypePackage); - return theXMLTypePackage; -} - -function initializeRegistryHelpers(){ - register_0(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, new XMLTypePackageImpl$2); - register_0(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, new XMLTypePackageImpl$3); - register_0(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, new XMLTypePackageImpl$4); - register_0(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, new XMLTypePackageImpl$5); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$6); - register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$7); - register_0(Ljava_lang_Boolean_2_classLit, new XMLTypePackageImpl$8); - register_0(Ljava_lang_Byte_2_classLit, new XMLTypePackageImpl$9); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$10); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$11); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$12); - register_0(Ljava_lang_Double_2_classLit, new XMLTypePackageImpl$13); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$14); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$15); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$16); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$17); - register_0(Ljava_lang_Float_2_classLit, new XMLTypePackageImpl$18); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$19); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$20); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$21); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$22); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$23); - register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$24); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$25); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$26); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$27); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$28); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$29); - register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$30); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$31); - register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$32); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$33); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$34); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$35); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$36); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$37); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$38); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$39); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$40); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$41); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$42); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$43); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$44); - register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$45); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$46); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$47); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$48); - register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$49); - register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$50); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$51); - register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$52); -} - -defineClass(586, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1, 1945:1, 586:1}, XMLTypePackageImpl); -_.isCreated = false; -_.isInitialized = false; -var isInited_1 = false; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl', 586); -function XMLTypePackageImpl$1(){ -} - -defineClass(1852, 1, {837:1}, XMLTypePackageImpl$1); -_.getEValidator = function getEValidator_0(){ - return $clinit_XMLTypeValidator() , INSTANCE_12; -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/1', 1852); -function XMLTypePackageImpl$10(){ -} - -defineClass(1861, 1, $intern_162, XMLTypePackageImpl$10); -_.isInstance = function isInstance_50(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_42(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/10', 1861); -function XMLTypePackageImpl$11(){ -} - -defineClass(1862, 1, $intern_162, XMLTypePackageImpl$11); -_.isInstance = function isInstance_51(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_43(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/11', 1862); -function XMLTypePackageImpl$12(){ -} - -defineClass(1863, 1, $intern_162, XMLTypePackageImpl$12); -_.isInstance = function isInstance_52(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_44(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/12', 1863); -function XMLTypePackageImpl$13(){ -} - -defineClass(1864, 1, $intern_162, XMLTypePackageImpl$13); -_.isInstance = function isInstance_53(instance){ - return instanceOfDouble(instance); -} -; -_.newArrayInstance = function newArrayInstance_45(size_0){ - return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/13', 1864); -function XMLTypePackageImpl$14(){ -} - -defineClass(1865, 1, $intern_162, XMLTypePackageImpl$14); -_.isInstance = function isInstance_54(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_46(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/14', 1865); -function XMLTypePackageImpl$15(){ -} - -defineClass(1866, 1, $intern_162, XMLTypePackageImpl$15); -_.isInstance = function isInstance_55(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_47(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/15', 1866); -function XMLTypePackageImpl$16(){ -} - -defineClass(1867, 1, $intern_162, XMLTypePackageImpl$16); -_.isInstance = function isInstance_56(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_48(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/16', 1867); -function XMLTypePackageImpl$17(){ -} - -defineClass(1868, 1, $intern_162, XMLTypePackageImpl$17); -_.isInstance = function isInstance_57(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_49(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/17', 1868); -function XMLTypePackageImpl$18(){ -} - -defineClass(1869, 1, $intern_162, XMLTypePackageImpl$18); -_.isInstance = function isInstance_58(instance){ - return instanceOf(instance, 155); -} -; -_.newArrayInstance = function newArrayInstance_50(size_0){ - return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/18', 1869); -function XMLTypePackageImpl$19(){ -} - -defineClass(1870, 1, $intern_162, XMLTypePackageImpl$19); -_.isInstance = function isInstance_59(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_51(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/19', 1870); -function XMLTypePackageImpl$2(){ -} - -defineClass(1853, 1, $intern_162, XMLTypePackageImpl$2); -_.isInstance = function isInstance_60(instance){ - return instanceOf(instance, 843); -} -; -_.newArrayInstance = function newArrayInstance_52(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, $intern_2, 843, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/2', 1853); -function XMLTypePackageImpl$20(){ -} - -defineClass(1871, 1, $intern_162, XMLTypePackageImpl$20); -_.isInstance = function isInstance_61(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_53(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/20', 1871); -function XMLTypePackageImpl$21(){ -} - -defineClass(1872, 1, $intern_162, XMLTypePackageImpl$21); -_.isInstance = function isInstance_62(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_54(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/21', 1872); -function XMLTypePackageImpl$22(){ -} - -defineClass(1873, 1, $intern_162, XMLTypePackageImpl$22); -_.isInstance = function isInstance_63(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_55(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/22', 1873); -function XMLTypePackageImpl$23(){ -} - -defineClass(1874, 1, $intern_162, XMLTypePackageImpl$23); -_.isInstance = function isInstance_64(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_56(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/23', 1874); -function XMLTypePackageImpl$24(){ -} - -defineClass(1875, 1, $intern_162, XMLTypePackageImpl$24); -_.isInstance = function isInstance_65(instance){ - return instanceOf(instance, 190); -} -; -_.newArrayInstance = function newArrayInstance_57(size_0){ - return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/24', 1875); -function XMLTypePackageImpl$25(){ -} - -defineClass(1876, 1, $intern_162, XMLTypePackageImpl$25); -_.isInstance = function isInstance_66(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_58(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/25', 1876); -function XMLTypePackageImpl$26(){ -} - -defineClass(1877, 1, $intern_162, XMLTypePackageImpl$26); -_.isInstance = function isInstance_67(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_59(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/26', 1877); -function XMLTypePackageImpl$27(){ -} - -defineClass(1878, 1, $intern_162, XMLTypePackageImpl$27); -_.isInstance = function isInstance_68(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_60(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/27', 1878); -function XMLTypePackageImpl$28(){ -} - -defineClass(1879, 1, $intern_162, XMLTypePackageImpl$28); -_.isInstance = function isInstance_69(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_61(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/28', 1879); -function XMLTypePackageImpl$29(){ -} - -defineClass(1880, 1, $intern_162, XMLTypePackageImpl$29); -_.isInstance = function isInstance_70(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_62(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/29', 1880); -function XMLTypePackageImpl$3(){ -} - -defineClass(1854, 1, $intern_162, XMLTypePackageImpl$3); -_.isInstance = function isInstance_71(instance){ - return instanceOf(instance, 667); -} -; -_.newArrayInstance = function newArrayInstance_63(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, $intern_2, 2021, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/3', 1854); -function XMLTypePackageImpl$30(){ -} - -defineClass(1881, 1, $intern_162, XMLTypePackageImpl$30); -_.isInstance = function isInstance_72(instance){ - return instanceOf(instance, 19); -} -; -_.newArrayInstance = function newArrayInstance_64(size_0){ - return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/30', 1881); -function XMLTypePackageImpl$31(){ -} - -defineClass(1882, 1, $intern_162, XMLTypePackageImpl$31); -_.isInstance = function isInstance_73(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_65(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/31', 1882); -function XMLTypePackageImpl$32(){ -} - -defineClass(1883, 1, $intern_162, XMLTypePackageImpl$32); -_.isInstance = function isInstance_74(instance){ - return instanceOf(instance, 162); -} -; -_.newArrayInstance = function newArrayInstance_66(size_0){ - return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/32', 1883); -function XMLTypePackageImpl$33(){ -} - -defineClass(1884, 1, $intern_162, XMLTypePackageImpl$33); -_.isInstance = function isInstance_75(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_67(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/33', 1884); -function XMLTypePackageImpl$34(){ -} - -defineClass(1885, 1, $intern_162, XMLTypePackageImpl$34); -_.isInstance = function isInstance_76(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_68(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/34', 1885); -function XMLTypePackageImpl$35(){ -} - -defineClass(1886, 1, $intern_162, XMLTypePackageImpl$35); -_.isInstance = function isInstance_77(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_69(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/35', 1886); -function XMLTypePackageImpl$36(){ -} - -defineClass(1887, 1, $intern_162, XMLTypePackageImpl$36); -_.isInstance = function isInstance_78(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_70(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/36', 1887); -function XMLTypePackageImpl$37(){ -} - -defineClass(1888, 1, $intern_162, XMLTypePackageImpl$37); -_.isInstance = function isInstance_79(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_71(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/37', 1888); -function XMLTypePackageImpl$38(){ -} - -defineClass(1889, 1, $intern_162, XMLTypePackageImpl$38); -_.isInstance = function isInstance_80(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_72(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/38', 1889); -function XMLTypePackageImpl$39(){ -} - -defineClass(1890, 1, $intern_162, XMLTypePackageImpl$39); -_.isInstance = function isInstance_81(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_73(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/39', 1890); -function XMLTypePackageImpl$4(){ -} - -defineClass(1855, 1, $intern_162, XMLTypePackageImpl$4); -_.isInstance = function isInstance_82(instance){ - return instanceOf(instance, 668); -} -; -_.newArrayInstance = function newArrayInstance_74(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, $intern_2, 2022, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/4', 1855); -function XMLTypePackageImpl$40(){ -} - -defineClass(1891, 1, $intern_162, XMLTypePackageImpl$40); -_.isInstance = function isInstance_83(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_75(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/40', 1891); -function XMLTypePackageImpl$41(){ -} - -defineClass(1892, 1, $intern_162, XMLTypePackageImpl$41); -_.isInstance = function isInstance_84(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_76(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/41', 1892); -function XMLTypePackageImpl$42(){ -} - -defineClass(1893, 1, $intern_162, XMLTypePackageImpl$42); -_.isInstance = function isInstance_85(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_77(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/42', 1893); -function XMLTypePackageImpl$43(){ -} - -defineClass(1894, 1, $intern_162, XMLTypePackageImpl$43); -_.isInstance = function isInstance_86(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_78(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/43', 1894); -function XMLTypePackageImpl$44(){ -} - -defineClass(1895, 1, $intern_162, XMLTypePackageImpl$44); -_.isInstance = function isInstance_87(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_79(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/44', 1895); -function XMLTypePackageImpl$45(){ -} - -defineClass(1896, 1, $intern_162, XMLTypePackageImpl$45); -_.isInstance = function isInstance_88(instance){ - return instanceOf(instance, 184); -} -; -_.newArrayInstance = function newArrayInstance_80(size_0){ - return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$45_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/45', 1896); -function XMLTypePackageImpl$46(){ -} - -defineClass(1897, 1, $intern_162, XMLTypePackageImpl$46); -_.isInstance = function isInstance_89(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_81(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$46_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/46', 1897); -function XMLTypePackageImpl$47(){ -} - -defineClass(1898, 1, $intern_162, XMLTypePackageImpl$47); -_.isInstance = function isInstance_90(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_82(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$47_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/47', 1898); -function XMLTypePackageImpl$48(){ -} - -defineClass(1899, 1, $intern_162, XMLTypePackageImpl$48); -_.isInstance = function isInstance_91(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_83(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$48_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/48', 1899); -function XMLTypePackageImpl$49(){ -} - -defineClass($intern_47, 1, $intern_162, XMLTypePackageImpl$49); -_.isInstance = function isInstance_92(instance){ - return instanceOf(instance, 184); -} -; -_.newArrayInstance = function newArrayInstance_84(size_0){ - return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$49_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/49', $intern_47); -function XMLTypePackageImpl$5(){ -} - -defineClass(1856, 1, $intern_162, XMLTypePackageImpl$5); -_.isInstance = function isInstance_93(instance){ - return instanceOf(instance, 669); -} -; -_.newArrayInstance = function newArrayInstance_85(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, $intern_2, 2023, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/5', 1856); -function XMLTypePackageImpl$50(){ -} - -defineClass(1901, 1, $intern_162, XMLTypePackageImpl$50); -_.isInstance = function isInstance_94(instance){ - return instanceOf(instance, 162); -} -; -_.newArrayInstance = function newArrayInstance_86(size_0){ - return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$50_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/50', 1901); -function XMLTypePackageImpl$51(){ -} - -defineClass(1902, 1, $intern_162, XMLTypePackageImpl$51); -_.isInstance = function isInstance_95(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_87(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$51_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/51', 1902); -function XMLTypePackageImpl$52(){ -} - -defineClass(1903, 1, $intern_162, XMLTypePackageImpl$52); -_.isInstance = function isInstance_96(instance){ - return instanceOf(instance, 19); -} -; -_.newArrayInstance = function newArrayInstance_88(size_0){ - return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$52_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/52', 1903); -function XMLTypePackageImpl$6(){ -} - -defineClass(1857, 1, $intern_162, XMLTypePackageImpl$6); -_.isInstance = function isInstance_97(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_89(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/6', 1857); -function XMLTypePackageImpl$7(){ -} - -defineClass(1858, 1, $intern_162, XMLTypePackageImpl$7); -_.isInstance = function isInstance_98(instance){ - return instanceOf(instance, 190); -} -; -_.newArrayInstance = function newArrayInstance_90(size_0){ - return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/7', 1858); -function XMLTypePackageImpl$8(){ -} - -defineClass(1859, 1, $intern_162, XMLTypePackageImpl$8); -_.isInstance = function isInstance_99(instance){ - return instanceOfBoolean(instance); -} -; -_.newArrayInstance = function newArrayInstance_91(size_0){ - return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/8', 1859); -function XMLTypePackageImpl$9(){ -} - -defineClass(1860, 1, $intern_162, XMLTypePackageImpl$9); -_.isInstance = function isInstance_100(instance){ - return instanceOf(instance, 217); -} -; -_.newArrayInstance = function newArrayInstance_92(size_0){ - return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/9', 1860); -function $clinit_DataValue$Base64(){ - $clinit_DataValue$Base64 = emptyMethod; - var i, i0, i1, i2, i3, i4, i5, j, j0; - base64Alphabet = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); - lookUpBase64Alphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 64, 15, 1); - for (i0 = 0; i0 < 255; i0++) { - base64Alphabet[i0] = -1; - } - for (i1 = 90; i1 >= 65; i1--) { - base64Alphabet[i1] = i1 - 65 << 24 >> 24; - } - for (i2 = 122; i2 >= 97; i2--) { - base64Alphabet[i2] = i2 - 97 + 26 << 24 >> 24; - } - for (i3 = 57; i3 >= 48; i3--) { - base64Alphabet[i3] = i3 - 48 + 52 << 24 >> 24; - } - base64Alphabet[43] = 62; - base64Alphabet[47] = 63; - for (i4 = 0; i4 <= 25; i4++) - lookUpBase64Alphabet[i4] = 65 + i4 & $intern_46; - for (i5 = 26 , j0 = 0; i5 <= 51; ++i5 , j0++) - lookUpBase64Alphabet[i5] = 97 + j0 & $intern_46; - for (i = 52 , j = 0; i <= 61; ++i , j++) - lookUpBase64Alphabet[i] = 48 + j & $intern_46; - lookUpBase64Alphabet[62] = 43; - lookUpBase64Alphabet[63] = 47; -} - -function decode_0(encoded){ - $clinit_DataValue$Base64(); - var b1, b2, b3, b4, base64Data, d1, d2, d3, d4, dataIndex, decodedData, encodedIndex, i, len, numberQuadruple, tmp; - if (encoded == null) - return null; - base64Data = $toCharArray(encoded); - len = removeWhiteSpace(base64Data); - if (len % 4 != 0) { - return null; - } - numberQuadruple = len / 4 | 0; - if (numberQuadruple == 0) - return initUnidimensionalArray(B_classLit, $intern_136, 25, 0, 15, 1); - decodedData = null; - b1 = 0; - b2 = 0; - b3 = 0; - b4 = 0; - d1 = 0; - d2 = 0; - d3 = 0; - d4 = 0; - i = 0; - encodedIndex = 0; - dataIndex = 0; - decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, numberQuadruple * 3, 15, 1); - for (; i < numberQuadruple - 1; i++) { - if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++]) || !isData(d3 = base64Data[dataIndex++]) || !isData(d4 = base64Data[dataIndex++])) - return null; - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; - decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; - decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; - } - if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++])) { - return null; - } - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - d3 = base64Data[dataIndex++]; - d4 = base64Data[dataIndex++]; - if (base64Alphabet[d3] == -1 || base64Alphabet[d4] == -1) { - if (d3 == 61 && d4 == 61) { - if ((b2 & 15) != 0) - return null; - tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 1, 15, 1); - arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex] = (b1 << 2 | b2 >> 4) << 24 >> 24; - return tmp; - } - else if (d3 != 61 && d4 == 61) { - b3 = base64Alphabet[d3]; - if ((b3 & 3) != 0) - return null; - tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 2, 15, 1); - arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; - tmp[encodedIndex] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; - return tmp; - } - else { - return null; - } - } - else { - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; - decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; - decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; - } - return decodedData; -} - -function encode(binaryData){ - $clinit_DataValue$Base64(); - var b1, b2, b3, dataIndex, encodedData, encodedIndex, fewerThan24bits, i, k, l, lengthDataBits, numberQuartet, numberTriplets, val1, val2, val3; - if (binaryData == null) - return null; - lengthDataBits = binaryData.length * 8; - if (lengthDataBits == 0) { - return ''; - } - fewerThan24bits = lengthDataBits % 24; - numberTriplets = lengthDataBits / 24 | 0; - numberQuartet = fewerThan24bits != 0?numberTriplets + 1:numberTriplets; - encodedData = null; - encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, numberQuartet * 4, 15, 1); - k = 0; - l = 0; - b1 = 0; - b2 = 0; - b3 = 0; - encodedIndex = 0; - dataIndex = 0; - for (i = 0; i < numberTriplets; i++) { - b1 = binaryData[dataIndex++]; - b2 = binaryData[dataIndex++]; - b3 = binaryData[dataIndex++]; - l = (b2 & 15) << 24 >> 24; - k = (b1 & 3) << 24 >> 24; - val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; - val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; - val3 = (b3 & -128) == 0?b3 >> 6 << 24 >> 24:(b3 >> 6 ^ 252) << 24 >> 24; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2 | val3]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 63]; - } - if (fewerThan24bits == 8) { - b1 = binaryData[dataIndex]; - k = (b1 & 3) << 24 >> 24; - val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; - encodedData[encodedIndex++] = 61; - encodedData[encodedIndex++] = 61; - } - else if (fewerThan24bits == 16) { - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex + 1]; - l = (b2 & 15) << 24 >> 24; - k = (b1 & 3) << 24 >> 24; - val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; - val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; - encodedData[encodedIndex++] = 61; - } - return valueOf_9(encodedData, 0, encodedData.length); -} - -function isData(octect){ - return base64Alphabet[octect] != -1; -} - -function removeWhiteSpace(data_0){ - var i, len, newSize; - newSize = 0; - len = data_0.length; - for (i = 0; i < len; i++) { - data_0[i] == 32 || data_0[i] == 13 || data_0[i] == 10 || data_0[i] == 9 || (data_0[newSize++] = data_0[i]); - } - return newSize; -} - -var base64Alphabet, lookUpBase64Alphabet; -function $clinit_DataValue$HexBin(){ - $clinit_DataValue$HexBin = emptyMethod; - var i, i0, i1, i2, i3, i4; - hexNumberTable = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); - lookUpHexAlphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 16, 15, 1); - for (i0 = 0; i0 < 255; i0++) { - hexNumberTable[i0] = -1; - } - for (i1 = 57; i1 >= 48; i1--) { - hexNumberTable[i1] = i1 - 48 << 24 >> 24; - } - for (i2 = 70; i2 >= 65; i2--) { - hexNumberTable[i2] = i2 - 65 + 10 << 24 >> 24; - } - for (i3 = 102; i3 >= 97; i3--) { - hexNumberTable[i3] = i3 - 97 + 10 << 24 >> 24; - } - for (i4 = 0; i4 < 10; i4++) - lookUpHexAlphabet[i4] = 48 + i4 & $intern_46; - for (i = 10; i <= 15; i++) - lookUpHexAlphabet[i] = 65 + i - 10 & $intern_46; -} - -function decode_1(encoded){ - $clinit_DataValue$HexBin(); - var binaryData, decodedData, i, lengthData, lengthDecode, temp1, temp2; - if (encoded == null) - return null; - lengthData = encoded.length; - if (lengthData % 2 != 0) - return null; - binaryData = $toCharArray(encoded); - lengthDecode = lengthData / 2 | 0; - decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, lengthDecode, 15, 1); - for (i = 0; i < lengthDecode; i++) { - temp1 = hexNumberTable[binaryData[i * 2]]; - if (temp1 == -1) - return null; - temp2 = hexNumberTable[binaryData[i * 2 + 1]]; - if (temp2 == -1) - return null; - decodedData[i] = (temp1 << 4 | temp2) << 24 >> 24; - } - return decodedData; -} - -function encode_0(binaryData){ - $clinit_DataValue$HexBin(); - var encodedData, i, lengthData, lengthEncode, temp; - if (binaryData == null) - return null; - lengthData = binaryData.length; - lengthEncode = lengthData * 2; - encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, lengthEncode, 15, 1); - for (i = 0; i < lengthData; i++) { - temp = binaryData[i]; - temp < 0 && (temp += 256); - encodedData[i * 2] = lookUpHexAlphabet[temp >> 4]; - encodedData[i * 2 + 1] = lookUpHexAlphabet[temp & 15]; - } - return valueOf_9(encodedData, 0, encodedData.length); -} - -var hexNumberTable, lookUpHexAlphabet; -function $clinit_DataValue$XMLChar(){ - $clinit_DataValue$XMLChar = emptyMethod; - CHARS = initUnidimensionalArray(B_classLit, $intern_136, 25, $intern_63, 15, 1); - CHARS[9] = 35; - CHARS[10] = 19; - CHARS[13] = 19; - CHARS[32] = 51; - CHARS[33] = 49; - CHARS[34] = 33; - fill_0(CHARS, 35, 38, 49); - CHARS[38] = 1; - fill_0(CHARS, 39, 45, 49); - fill_0(CHARS, 45, 47, -71); - CHARS[47] = 49; - fill_0(CHARS, 48, 58, -71); - CHARS[58] = 61; - CHARS[59] = 49; - CHARS[60] = 1; - CHARS[61] = 49; - CHARS[62] = 33; - fill_0(CHARS, 63, 65, 49); - fill_0(CHARS, 65, 91, -3); - fill_0(CHARS, 91, 93, 33); - CHARS[93] = 1; - CHARS[94] = 33; - CHARS[95] = -3; - CHARS[96] = 33; - fill_0(CHARS, 97, 123, -3); - fill_0(CHARS, 123, 183, 33); - CHARS[183] = -87; - fill_0(CHARS, 184, 192, 33); - fill_0(CHARS, 192, 215, -19); - CHARS[215] = 33; - fill_0(CHARS, 216, 247, -19); - CHARS[247] = 33; - fill_0(CHARS, 248, 306, -19); - fill_0(CHARS, 306, 308, 33); - fill_0(CHARS, 308, 319, -19); - fill_0(CHARS, 319, 321, 33); - fill_0(CHARS, 321, 329, -19); - CHARS[329] = 33; - fill_0(CHARS, 330, 383, -19); - CHARS[383] = 33; - fill_0(CHARS, 384, 452, -19); - fill_0(CHARS, 452, 461, 33); - fill_0(CHARS, 461, 497, -19); - fill_0(CHARS, 497, 500, 33); - fill_0(CHARS, 500, 502, -19); - fill_0(CHARS, 502, 506, 33); - fill_0(CHARS, 506, 536, -19); - fill_0(CHARS, 536, 592, 33); - fill_0(CHARS, 592, 681, -19); - fill_0(CHARS, 681, 699, 33); - fill_0(CHARS, 699, 706, -19); - fill_0(CHARS, 706, 720, 33); - fill_0(CHARS, 720, 722, -87); - fill_0(CHARS, 722, 768, 33); - fill_0(CHARS, 768, 838, -87); - fill_0(CHARS, 838, 864, 33); - fill_0(CHARS, 864, 866, -87); - fill_0(CHARS, 866, 902, 33); - CHARS[902] = -19; - CHARS[903] = -87; - fill_0(CHARS, 904, 907, -19); - CHARS[907] = 33; - CHARS[908] = -19; - CHARS[909] = 33; - fill_0(CHARS, 910, 930, -19); - CHARS[930] = 33; - fill_0(CHARS, 931, 975, -19); - CHARS[975] = 33; - fill_0(CHARS, 976, 983, -19); - fill_0(CHARS, 983, 986, 33); - CHARS[986] = -19; - CHARS[987] = 33; - CHARS[988] = -19; - CHARS[989] = 33; - CHARS[990] = -19; - CHARS[991] = 33; - CHARS[992] = -19; - CHARS[993] = 33; - fill_0(CHARS, 994, 1012, -19); - fill_0(CHARS, 1012, 1025, 33); - fill_0(CHARS, 1025, 1037, -19); - CHARS[1037] = 33; - fill_0(CHARS, 1038, 1104, -19); - CHARS[1104] = 33; - fill_0(CHARS, 1105, 1117, -19); - CHARS[1117] = 33; - fill_0(CHARS, 1118, 1154, -19); - CHARS[1154] = 33; - fill_0(CHARS, 1155, 1159, -87); - fill_0(CHARS, 1159, 1168, 33); - fill_0(CHARS, 1168, 1221, -19); - fill_0(CHARS, 1221, 1223, 33); - fill_0(CHARS, 1223, 1225, -19); - fill_0(CHARS, 1225, 1227, 33); - fill_0(CHARS, 1227, 1229, -19); - fill_0(CHARS, 1229, 1232, 33); - fill_0(CHARS, 1232, 1260, -19); - fill_0(CHARS, 1260, 1262, 33); - fill_0(CHARS, 1262, 1270, -19); - fill_0(CHARS, 1270, 1272, 33); - fill_0(CHARS, 1272, 1274, -19); - fill_0(CHARS, 1274, 1329, 33); - fill_0(CHARS, 1329, 1367, -19); - fill_0(CHARS, 1367, 1369, 33); - CHARS[1369] = -19; - fill_0(CHARS, 1370, 1377, 33); - fill_0(CHARS, 1377, 1415, -19); - fill_0(CHARS, 1415, 1425, 33); - fill_0(CHARS, 1425, 1442, -87); - CHARS[1442] = 33; - fill_0(CHARS, 1443, 1466, -87); - CHARS[1466] = 33; - fill_0(CHARS, 1467, 1470, -87); - CHARS[1470] = 33; - CHARS[1471] = -87; - CHARS[1472] = 33; - fill_0(CHARS, 1473, 1475, -87); - CHARS[1475] = 33; - CHARS[1476] = -87; - fill_0(CHARS, 1477, 1488, 33); - fill_0(CHARS, 1488, 1515, -19); - fill_0(CHARS, 1515, 1520, 33); - fill_0(CHARS, 1520, 1523, -19); - fill_0(CHARS, 1523, 1569, 33); - fill_0(CHARS, 1569, 1595, -19); - fill_0(CHARS, 1595, 1600, 33); - CHARS[1600] = -87; - fill_0(CHARS, 1601, 1611, -19); - fill_0(CHARS, 1611, 1619, -87); - fill_0(CHARS, 1619, 1632, 33); - fill_0(CHARS, 1632, 1642, -87); - fill_0(CHARS, 1642, 1648, 33); - CHARS[1648] = -87; - fill_0(CHARS, 1649, 1720, -19); - fill_0(CHARS, 1720, 1722, 33); - fill_0(CHARS, 1722, 1727, -19); - CHARS[1727] = 33; - fill_0(CHARS, 1728, 1743, -19); - CHARS[1743] = 33; - fill_0(CHARS, 1744, 1748, -19); - CHARS[1748] = 33; - CHARS[1749] = -19; - fill_0(CHARS, 1750, 1765, -87); - fill_0(CHARS, 1765, 1767, -19); - fill_0(CHARS, 1767, 1769, -87); - CHARS[1769] = 33; - fill_0(CHARS, 1770, 1774, -87); - fill_0(CHARS, 1774, 1776, 33); - fill_0(CHARS, 1776, 1786, -87); - fill_0(CHARS, 1786, 2305, 33); - fill_0(CHARS, 2305, 2308, -87); - CHARS[2308] = 33; - fill_0(CHARS, 2309, 2362, -19); - fill_0(CHARS, 2362, 2364, 33); - CHARS[2364] = -87; - CHARS[2365] = -19; - fill_0(CHARS, 2366, 2382, -87); - fill_0(CHARS, 2382, 2385, 33); - fill_0(CHARS, 2385, 2389, -87); - fill_0(CHARS, 2389, 2392, 33); - fill_0(CHARS, 2392, 2402, -19); - fill_0(CHARS, 2402, 2404, -87); - fill_0(CHARS, 2404, 2406, 33); - fill_0(CHARS, 2406, 2416, -87); - fill_0(CHARS, 2416, 2433, 33); - fill_0(CHARS, 2433, 2436, -87); - CHARS[2436] = 33; - fill_0(CHARS, 2437, 2445, -19); - fill_0(CHARS, 2445, 2447, 33); - fill_0(CHARS, 2447, 2449, -19); - fill_0(CHARS, 2449, 2451, 33); - fill_0(CHARS, 2451, 2473, -19); - CHARS[2473] = 33; - fill_0(CHARS, 2474, 2481, -19); - CHARS[2481] = 33; - CHARS[2482] = -19; - fill_0(CHARS, 2483, 2486, 33); - fill_0(CHARS, 2486, 2490, -19); - fill_0(CHARS, 2490, 2492, 33); - CHARS[2492] = -87; - CHARS[2493] = 33; - fill_0(CHARS, 2494, 2501, -87); - fill_0(CHARS, 2501, 2503, 33); - fill_0(CHARS, 2503, 2505, -87); - fill_0(CHARS, 2505, 2507, 33); - fill_0(CHARS, 2507, 2510, -87); - fill_0(CHARS, 2510, 2519, 33); - CHARS[2519] = -87; - fill_0(CHARS, 2520, 2524, 33); - fill_0(CHARS, 2524, 2526, -19); - CHARS[2526] = 33; - fill_0(CHARS, 2527, 2530, -19); - fill_0(CHARS, 2530, 2532, -87); - fill_0(CHARS, 2532, 2534, 33); - fill_0(CHARS, 2534, 2544, -87); - fill_0(CHARS, 2544, 2546, -19); - fill_0(CHARS, 2546, 2562, 33); - CHARS[2562] = -87; - fill_0(CHARS, 2563, 2565, 33); - fill_0(CHARS, 2565, 2571, -19); - fill_0(CHARS, 2571, 2575, 33); - fill_0(CHARS, 2575, 2577, -19); - fill_0(CHARS, 2577, 2579, 33); - fill_0(CHARS, 2579, 2601, -19); - CHARS[2601] = 33; - fill_0(CHARS, 2602, 2609, -19); - CHARS[2609] = 33; - fill_0(CHARS, 2610, 2612, -19); - CHARS[2612] = 33; - fill_0(CHARS, 2613, 2615, -19); - CHARS[2615] = 33; - fill_0(CHARS, 2616, 2618, -19); - fill_0(CHARS, 2618, 2620, 33); - CHARS[2620] = -87; - CHARS[2621] = 33; - fill_0(CHARS, 2622, 2627, -87); - fill_0(CHARS, 2627, 2631, 33); - fill_0(CHARS, 2631, 2633, -87); - fill_0(CHARS, 2633, 2635, 33); - fill_0(CHARS, 2635, 2638, -87); - fill_0(CHARS, 2638, 2649, 33); - fill_0(CHARS, 2649, 2653, -19); - CHARS[2653] = 33; - CHARS[2654] = -19; - fill_0(CHARS, 2655, 2662, 33); - fill_0(CHARS, 2662, 2674, -87); - fill_0(CHARS, 2674, 2677, -19); - fill_0(CHARS, 2677, 2689, 33); - fill_0(CHARS, 2689, 2692, -87); - CHARS[2692] = 33; - fill_0(CHARS, 2693, 2700, -19); - CHARS[2700] = 33; - CHARS[2701] = -19; - CHARS[2702] = 33; - fill_0(CHARS, 2703, 2706, -19); - CHARS[2706] = 33; - fill_0(CHARS, 2707, 2729, -19); - CHARS[2729] = 33; - fill_0(CHARS, 2730, 2737, -19); - CHARS[2737] = 33; - fill_0(CHARS, 2738, 2740, -19); - CHARS[2740] = 33; - fill_0(CHARS, 2741, 2746, -19); - fill_0(CHARS, 2746, 2748, 33); - CHARS[2748] = -87; - CHARS[2749] = -19; - fill_0(CHARS, 2750, 2758, -87); - CHARS[2758] = 33; - fill_0(CHARS, 2759, 2762, -87); - CHARS[2762] = 33; - fill_0(CHARS, 2763, 2766, -87); - fill_0(CHARS, 2766, 2784, 33); - CHARS[2784] = -19; - fill_0(CHARS, 2785, 2790, 33); - fill_0(CHARS, 2790, 2800, -87); - fill_0(CHARS, 2800, 2817, 33); - fill_0(CHARS, 2817, 2820, -87); - CHARS[2820] = 33; - fill_0(CHARS, 2821, 2829, -19); - fill_0(CHARS, 2829, 2831, 33); - fill_0(CHARS, 2831, 2833, -19); - fill_0(CHARS, 2833, 2835, 33); - fill_0(CHARS, 2835, 2857, -19); - CHARS[2857] = 33; - fill_0(CHARS, 2858, 2865, -19); - CHARS[2865] = 33; - fill_0(CHARS, 2866, 2868, -19); - fill_0(CHARS, 2868, 2870, 33); - fill_0(CHARS, 2870, 2874, -19); - fill_0(CHARS, 2874, 2876, 33); - CHARS[2876] = -87; - CHARS[2877] = -19; - fill_0(CHARS, 2878, 2884, -87); - fill_0(CHARS, 2884, 2887, 33); - fill_0(CHARS, 2887, 2889, -87); - fill_0(CHARS, 2889, 2891, 33); - fill_0(CHARS, 2891, 2894, -87); - fill_0(CHARS, 2894, 2902, 33); - fill_0(CHARS, 2902, 2904, -87); - fill_0(CHARS, 2904, 2908, 33); - fill_0(CHARS, 2908, 2910, -19); - CHARS[2910] = 33; - fill_0(CHARS, 2911, 2914, -19); - fill_0(CHARS, 2914, 2918, 33); - fill_0(CHARS, 2918, 2928, -87); - fill_0(CHARS, 2928, 2946, 33); - fill_0(CHARS, 2946, 2948, -87); - CHARS[2948] = 33; - fill_0(CHARS, 2949, 2955, -19); - fill_0(CHARS, 2955, 2958, 33); - fill_0(CHARS, 2958, 2961, -19); - CHARS[2961] = 33; - fill_0(CHARS, 2962, 2966, -19); - fill_0(CHARS, 2966, 2969, 33); - fill_0(CHARS, 2969, 2971, -19); - CHARS[2971] = 33; - CHARS[2972] = -19; - CHARS[2973] = 33; - fill_0(CHARS, 2974, 2976, -19); - fill_0(CHARS, 2976, 2979, 33); - fill_0(CHARS, 2979, 2981, -19); - fill_0(CHARS, 2981, 2984, 33); - fill_0(CHARS, 2984, 2987, -19); - fill_0(CHARS, 2987, 2990, 33); - fill_0(CHARS, 2990, 2998, -19); - CHARS[2998] = 33; - fill_0(CHARS, 2999, 3002, -19); - fill_0(CHARS, 3002, 3006, 33); - fill_0(CHARS, 3006, 3011, -87); - fill_0(CHARS, 3011, 3014, 33); - fill_0(CHARS, 3014, 3017, -87); - CHARS[3017] = 33; - fill_0(CHARS, 3018, 3022, -87); - fill_0(CHARS, 3022, 3031, 33); - CHARS[3031] = -87; - fill_0(CHARS, 3032, 3047, 33); - fill_0(CHARS, 3047, 3056, -87); - fill_0(CHARS, 3056, 3073, 33); - fill_0(CHARS, 3073, 3076, -87); - CHARS[3076] = 33; - fill_0(CHARS, 3077, 3085, -19); - CHARS[3085] = 33; - fill_0(CHARS, 3086, 3089, -19); - CHARS[3089] = 33; - fill_0(CHARS, 3090, 3113, -19); - CHARS[3113] = 33; - fill_0(CHARS, 3114, 3124, -19); - CHARS[3124] = 33; - fill_0(CHARS, 3125, 3130, -19); - fill_0(CHARS, 3130, 3134, 33); - fill_0(CHARS, 3134, 3141, -87); - CHARS[3141] = 33; - fill_0(CHARS, 3142, 3145, -87); - CHARS[3145] = 33; - fill_0(CHARS, 3146, 3150, -87); - fill_0(CHARS, 3150, 3157, 33); - fill_0(CHARS, 3157, 3159, -87); - fill_0(CHARS, 3159, 3168, 33); - fill_0(CHARS, 3168, 3170, -19); - fill_0(CHARS, 3170, 3174, 33); - fill_0(CHARS, 3174, 3184, -87); - fill_0(CHARS, 3184, 3202, 33); - fill_0(CHARS, 3202, 3204, -87); - CHARS[3204] = 33; - fill_0(CHARS, 3205, 3213, -19); - CHARS[3213] = 33; - fill_0(CHARS, 3214, 3217, -19); - CHARS[3217] = 33; - fill_0(CHARS, 3218, 3241, -19); - CHARS[3241] = 33; - fill_0(CHARS, 3242, 3252, -19); - CHARS[3252] = 33; - fill_0(CHARS, 3253, 3258, -19); - fill_0(CHARS, 3258, 3262, 33); - fill_0(CHARS, 3262, 3269, -87); - CHARS[3269] = 33; - fill_0(CHARS, 3270, 3273, -87); - CHARS[3273] = 33; - fill_0(CHARS, 3274, 3278, -87); - fill_0(CHARS, 3278, 3285, 33); - fill_0(CHARS, 3285, 3287, -87); - fill_0(CHARS, 3287, 3294, 33); - CHARS[3294] = -19; - CHARS[3295] = 33; - fill_0(CHARS, 3296, 3298, -19); - fill_0(CHARS, 3298, 3302, 33); - fill_0(CHARS, 3302, 3312, -87); - fill_0(CHARS, 3312, 3330, 33); - fill_0(CHARS, 3330, 3332, -87); - CHARS[3332] = 33; - fill_0(CHARS, 3333, 3341, -19); - CHARS[3341] = 33; - fill_0(CHARS, 3342, 3345, -19); - CHARS[3345] = 33; - fill_0(CHARS, 3346, 3369, -19); - CHARS[3369] = 33; - fill_0(CHARS, 3370, 3386, -19); - fill_0(CHARS, 3386, 3390, 33); - fill_0(CHARS, 3390, 3396, -87); - fill_0(CHARS, 3396, 3398, 33); - fill_0(CHARS, 3398, 3401, -87); - CHARS[3401] = 33; - fill_0(CHARS, 3402, 3406, -87); - fill_0(CHARS, 3406, 3415, 33); - CHARS[3415] = -87; - fill_0(CHARS, 3416, 3424, 33); - fill_0(CHARS, 3424, 3426, -19); - fill_0(CHARS, 3426, 3430, 33); - fill_0(CHARS, 3430, 3440, -87); - fill_0(CHARS, 3440, 3585, 33); - fill_0(CHARS, 3585, 3631, -19); - CHARS[3631] = 33; - CHARS[3632] = -19; - CHARS[3633] = -87; - fill_0(CHARS, 3634, 3636, -19); - fill_0(CHARS, 3636, 3643, -87); - fill_0(CHARS, 3643, 3648, 33); - fill_0(CHARS, 3648, 3654, -19); - fill_0(CHARS, 3654, 3663, -87); - CHARS[3663] = 33; - fill_0(CHARS, 3664, 3674, -87); - fill_0(CHARS, 3674, 3713, 33); - fill_0(CHARS, 3713, 3715, -19); - CHARS[3715] = 33; - CHARS[3716] = -19; - fill_0(CHARS, 3717, 3719, 33); - fill_0(CHARS, 3719, 3721, -19); - CHARS[3721] = 33; - CHARS[3722] = -19; - fill_0(CHARS, 3723, 3725, 33); - CHARS[3725] = -19; - fill_0(CHARS, 3726, 3732, 33); - fill_0(CHARS, 3732, 3736, -19); - CHARS[3736] = 33; - fill_0(CHARS, 3737, 3744, -19); - CHARS[3744] = 33; - fill_0(CHARS, 3745, 3748, -19); - CHARS[3748] = 33; - CHARS[3749] = -19; - CHARS[3750] = 33; - CHARS[3751] = -19; - fill_0(CHARS, 3752, 3754, 33); - fill_0(CHARS, 3754, 3756, -19); - CHARS[3756] = 33; - fill_0(CHARS, 3757, 3759, -19); - CHARS[3759] = 33; - CHARS[3760] = -19; - CHARS[3761] = -87; - fill_0(CHARS, 3762, 3764, -19); - fill_0(CHARS, 3764, 3770, -87); - CHARS[3770] = 33; - fill_0(CHARS, 3771, 3773, -87); - CHARS[3773] = -19; - fill_0(CHARS, 3774, 3776, 33); - fill_0(CHARS, 3776, 3781, -19); - CHARS[3781] = 33; - CHARS[3782] = -87; - CHARS[3783] = 33; - fill_0(CHARS, 3784, 3790, -87); - fill_0(CHARS, 3790, 3792, 33); - fill_0(CHARS, 3792, 3802, -87); - fill_0(CHARS, 3802, 3864, 33); - fill_0(CHARS, 3864, 3866, -87); - fill_0(CHARS, 3866, 3872, 33); - fill_0(CHARS, 3872, 3882, -87); - fill_0(CHARS, 3882, 3893, 33); - CHARS[3893] = -87; - CHARS[3894] = 33; - CHARS[3895] = -87; - CHARS[3896] = 33; - CHARS[3897] = -87; - fill_0(CHARS, 3898, 3902, 33); - fill_0(CHARS, 3902, 3904, -87); - fill_0(CHARS, 3904, 3912, -19); - CHARS[3912] = 33; - fill_0(CHARS, 3913, 3946, -19); - fill_0(CHARS, 3946, 3953, 33); - fill_0(CHARS, 3953, 3973, -87); - CHARS[3973] = 33; - fill_0(CHARS, 3974, 3980, -87); - fill_0(CHARS, 3980, 3984, 33); - fill_0(CHARS, 3984, 3990, -87); - CHARS[3990] = 33; - CHARS[3991] = -87; - CHARS[3992] = 33; - fill_0(CHARS, 3993, 4014, -87); - fill_0(CHARS, 4014, 4017, 33); - fill_0(CHARS, 4017, 4024, -87); - CHARS[4024] = 33; - CHARS[4025] = -87; - fill_0(CHARS, 4026, 4256, 33); - fill_0(CHARS, 4256, 4294, -19); - fill_0(CHARS, 4294, 4304, 33); - fill_0(CHARS, 4304, 4343, -19); - fill_0(CHARS, 4343, 4352, 33); - CHARS[4352] = -19; - CHARS[4353] = 33; - fill_0(CHARS, 4354, 4356, -19); - CHARS[4356] = 33; - fill_0(CHARS, 4357, 4360, -19); - CHARS[4360] = 33; - CHARS[4361] = -19; - CHARS[4362] = 33; - fill_0(CHARS, 4363, 4365, -19); - CHARS[4365] = 33; - fill_0(CHARS, 4366, 4371, -19); - fill_0(CHARS, 4371, 4412, 33); - CHARS[4412] = -19; - CHARS[4413] = 33; - CHARS[4414] = -19; - CHARS[4415] = 33; - CHARS[4416] = -19; - fill_0(CHARS, 4417, 4428, 33); - CHARS[4428] = -19; - CHARS[4429] = 33; - CHARS[4430] = -19; - CHARS[4431] = 33; - CHARS[4432] = -19; - fill_0(CHARS, 4433, 4436, 33); - fill_0(CHARS, 4436, 4438, -19); - fill_0(CHARS, 4438, 4441, 33); - CHARS[4441] = -19; - fill_0(CHARS, 4442, 4447, 33); - fill_0(CHARS, 4447, 4450, -19); - CHARS[4450] = 33; - CHARS[4451] = -19; - CHARS[4452] = 33; - CHARS[4453] = -19; - CHARS[4454] = 33; - CHARS[4455] = -19; - CHARS[4456] = 33; - CHARS[4457] = -19; - fill_0(CHARS, 4458, 4461, 33); - fill_0(CHARS, 4461, 4463, -19); - fill_0(CHARS, 4463, 4466, 33); - fill_0(CHARS, 4466, 4468, -19); - CHARS[4468] = 33; - CHARS[4469] = -19; - fill_0(CHARS, 4470, 4510, 33); - CHARS[4510] = -19; - fill_0(CHARS, 4511, 4520, 33); - CHARS[4520] = -19; - fill_0(CHARS, 4521, 4523, 33); - CHARS[4523] = -19; - fill_0(CHARS, 4524, 4526, 33); - fill_0(CHARS, 4526, 4528, -19); - fill_0(CHARS, 4528, 4535, 33); - fill_0(CHARS, 4535, 4537, -19); - CHARS[4537] = 33; - CHARS[4538] = -19; - CHARS[4539] = 33; - fill_0(CHARS, 4540, 4547, -19); - fill_0(CHARS, 4547, 4587, 33); - CHARS[4587] = -19; - fill_0(CHARS, 4588, 4592, 33); - CHARS[4592] = -19; - fill_0(CHARS, 4593, 4601, 33); - CHARS[4601] = -19; - fill_0(CHARS, 4602, 7680, 33); - fill_0(CHARS, 7680, 7836, -19); - fill_0(CHARS, 7836, 7840, 33); - fill_0(CHARS, 7840, 7930, -19); - fill_0(CHARS, 7930, 7936, 33); - fill_0(CHARS, 7936, 7958, -19); - fill_0(CHARS, 7958, 7960, 33); - fill_0(CHARS, 7960, 7966, -19); - fill_0(CHARS, 7966, 7968, 33); - fill_0(CHARS, 7968, 8006, -19); - fill_0(CHARS, 8006, 8008, 33); - fill_0(CHARS, 8008, 8014, -19); - fill_0(CHARS, 8014, 8016, 33); - fill_0(CHARS, 8016, 8024, -19); - CHARS[8024] = 33; - CHARS[8025] = -19; - CHARS[8026] = 33; - CHARS[8027] = -19; - CHARS[8028] = 33; - CHARS[8029] = -19; - CHARS[8030] = 33; - fill_0(CHARS, 8031, 8062, -19); - fill_0(CHARS, 8062, 8064, 33); - fill_0(CHARS, 8064, 8117, -19); - CHARS[8117] = 33; - fill_0(CHARS, 8118, 8125, -19); - CHARS[8125] = 33; - CHARS[8126] = -19; - fill_0(CHARS, 8127, 8130, 33); - fill_0(CHARS, 8130, 8133, -19); - CHARS[8133] = 33; - fill_0(CHARS, 8134, 8141, -19); - fill_0(CHARS, 8141, 8144, 33); - fill_0(CHARS, 8144, 8148, -19); - fill_0(CHARS, 8148, 8150, 33); - fill_0(CHARS, 8150, 8156, -19); - fill_0(CHARS, 8156, 8160, 33); - fill_0(CHARS, 8160, 8173, -19); - fill_0(CHARS, 8173, 8178, 33); - fill_0(CHARS, 8178, 8181, -19); - CHARS[8181] = 33; - fill_0(CHARS, 8182, 8189, -19); - fill_0(CHARS, 8189, 8400, 33); - fill_0(CHARS, 8400, 8413, -87); - fill_0(CHARS, 8413, 8417, 33); - CHARS[8417] = -87; - fill_0(CHARS, 8418, 8486, 33); - CHARS[8486] = -19; - fill_0(CHARS, 8487, 8490, 33); - fill_0(CHARS, 8490, 8492, -19); - fill_0(CHARS, 8492, 8494, 33); - CHARS[8494] = -19; - fill_0(CHARS, 8495, 8576, 33); - fill_0(CHARS, 8576, 8579, -19); - fill_0(CHARS, 8579, 12293, 33); - CHARS[12293] = -87; - CHARS[12294] = 33; - CHARS[12295] = -19; - fill_0(CHARS, 12296, 12321, 33); - fill_0(CHARS, 12321, 12330, -19); - fill_0(CHARS, 12330, 12336, -87); - CHARS[12336] = 33; - fill_0(CHARS, 12337, 12342, -87); - fill_0(CHARS, 12342, 12353, 33); - fill_0(CHARS, 12353, 12437, -19); - fill_0(CHARS, 12437, 12441, 33); - fill_0(CHARS, 12441, 12443, -87); - fill_0(CHARS, 12443, 12445, 33); - fill_0(CHARS, 12445, 12447, -87); - fill_0(CHARS, 12447, 12449, 33); - fill_0(CHARS, 12449, 12539, -19); - CHARS[12539] = 33; - fill_0(CHARS, 12540, 12543, -87); - fill_0(CHARS, 12543, 12549, 33); - fill_0(CHARS, 12549, 12589, -19); - fill_0(CHARS, 12589, 19968, 33); - fill_0(CHARS, 19968, 40870, -19); - fill_0(CHARS, 40870, 44032, 33); - fill_0(CHARS, 44032, 55204, -19); - fill_0(CHARS, 55204, $intern_64, 33); - fill_0(CHARS, 57344, 65534, 33); -} - -var CHARS; -function RegEx$ParseException(mes){ - RuntimeException_0.call(this, mes); -} - -defineClass(50, 60, $intern_43, RegEx$ParseException); -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParseException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParseException', 50); -function $next_17(this$static){ - var ch_0, low, ret; - if (this$static.offset >= this$static.regexlen) { - this$static.chardata = -1; - this$static.nexttoken = 1; - return; - } - ch_0 = $charAt(this$static.regex, this$static.offset++); - this$static.chardata = ch_0; - if (this$static.context == 1) { - switch (ch_0) { - case 92: - ret = 10; - if (this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - this$static.chardata = $charAt(this$static.regex, this$static.offset++); - break; - case 45: - if ((this$static.options_0 & 512) == 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 91) { - ++this$static.offset; - ret = 24; - } - else - ret = 0; - break; - case 91: - if ((this$static.options_0 & 512) != 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 58) { - ++this$static.offset; - ret = 20; - break; - } - - default:if ((ch_0 & 64512) == $intern_64 && this$static.offset < this$static.regexlen) { - low = $charAt(this$static.regex, this$static.offset); - if ((low & 64512) == 56320) { - this$static.chardata = $intern_63 + (ch_0 - $intern_64 << 10) + low - 56320; - ++this$static.offset; - } - } - - ret = 0; - } - this$static.nexttoken = ret; - return; - } - switch (ch_0) { - case 124: - ret = 2; - break; - case 42: - ret = 3; - break; - case 43: - ret = 4; - break; - case 63: - ret = 5; - break; - case 41: - ret = 7; - break; - case 46: - ret = 8; - break; - case 91: - ret = 9; - break; - case 94: - ret = 11; - break; - case 36: - ret = 12; - break; - case 40: - ret = 6; - if (this$static.offset >= this$static.regexlen) - break; - if ($charAt(this$static.regex, this$static.offset) != 63) - break; - if (++this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); - ch_0 = $charAt(this$static.regex, this$static.offset++); - switch (ch_0) { - case 58: - ret = 13; - break; - case 61: - ret = 14; - break; - case 33: - ret = 15; - break; - case 91: - ret = 19; - break; - case 62: - ret = 18; - break; - case 60: - if (this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); - ch_0 = $charAt(this$static.regex, this$static.offset++); - if (ch_0 == 61) { - ret = 16; - } - else if (ch_0 == 33) { - ret = 17; - } - else - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.3')))); - break; - case 35: - while (this$static.offset < this$static.regexlen) { - ch_0 = $charAt(this$static.regex, this$static.offset++); - if (ch_0 == 41) - break; - } - - if (ch_0 != 41) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.4')))); - ret = 21; - break; - default:if (ch_0 == 45 || 97 <= ch_0 && ch_0 <= 122 || 65 <= ch_0 && ch_0 <= 90) { - --this$static.offset; - ret = 22; - break; - } - else if (ch_0 == 40) { - ret = 23; - break; - } - - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); - } - - break; - case 92: - ret = 10; - if (this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - this$static.chardata = $charAt(this$static.regex, this$static.offset++); - break; - default:ret = 0; - } - this$static.nexttoken = ret; -} - -function $parse_3(this$static, regex, options){ - var i, position, ret; - this$static.options_0 = options; - this$static.offset = 0; - this$static.context = 0; - this$static.parennumber = 1; - this$static.regex = regex; - (this$static.options_0 & 16) == 16 && (this$static.regex = stripExtendedComment(this$static.regex)); - this$static.regexlen = this$static.regex.length; - $next_17(this$static); - ret = $parseRegex(this$static); - if (this$static.offset != this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.1')))); - if (this$static.references) { - for (i = 0; i < this$static.references.arrayList.array.length; i++) { - position = castTo($elementAt(this$static.references, i), 584); - if (this$static.parennumber <= position.refNumber) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.2')))); - } - this$static.references.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - return ret; -} - -function $parseAtom(this$static){ - var ch_0, ch2, high, sur, tok; - ch_0 = this$static.nexttoken; - tok = null; - switch (ch_0) { - case 6: - return this$static.processParen(); - case 13: - return this$static.processParen2(); - case 23: - return this$static.processCondition(); - case 22: - return this$static.processModifiers(); - case 18: - return this$static.processIndependent(); - case 8: - $next_17(this$static); - tok = ($clinit_RegEx$Token() , token_dot); - break; - case 9: - return this$static.parseCharacterClass(true); - case 19: - return this$static.parseSetOperations(); - case 10: - switch (this$static.chardata) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - tok = this$static.getTokenForShorthand(this$static.chardata); - $next_17(this$static); - return tok; - case 101: - case 102: - case 110: - case 114: - case 116: - case 117: - case 118: - case 120: - { - ch2 = this$static.decodeEscaped(); - ch2 < $intern_63?(tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2))):(tok = createString_0(decomposeToSurrogates(ch2))); - } - - break; - case 99: - return this$static.processBacksolidus_c(); - case 67: - return this$static.processBacksolidus_C(); - case 105: - return this$static.processBacksolidus_i(); - case 73: - return this$static.processBacksolidus_I(); - case 103: - return this$static.processBacksolidus_g(); - case 88: - return this$static.processBacksolidus_X(); - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - return this$static.processBackreference(); - case 80: - case 112: - tok = $processBacksolidus_pP(this$static, this$static.chardata); - if (!tok) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); - break; - default:tok = createChar(this$static.chardata); - } - - $next_17(this$static); - break; - case 0: - if (this$static.chardata == 93 || this$static.chardata == 123 || this$static.chardata == 125) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); - tok = createChar(this$static.chardata); - high = this$static.chardata; - $next_17(this$static); - if ((high & 64512) == $intern_64 && this$static.nexttoken == 0 && (this$static.chardata & 64512) == 56320) { - sur = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); - sur[0] = high & $intern_46; - sur[1] = this$static.chardata & $intern_46; - tok = createParen(createString_0(valueOf_9(sur, 0, sur.length)), 0); - $next_17(this$static); - } - - break; - default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); - } - return tok; -} - -function $parseFactor(this$static){ - var ch_0, max_0, min_0, off, tok; - ch_0 = this$static.nexttoken; - switch (ch_0) { - case 11: - return this$static.processCaret(); - case 12: - return this$static.processDollar(); - case 14: - return this$static.processLookahead(); - case 15: - return this$static.processNegativelookahead(); - case 16: - return this$static.processLookbehind(); - case 17: - return this$static.processNegativelookbehind(); - case 21: - $next_17(this$static); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; - case 10: - switch (this$static.chardata) { - case 65: - return this$static.processBacksolidus_A(); - case 90: - return this$static.processBacksolidus_Z(); - case 122: - return this$static.processBacksolidus_z(); - case 98: - return this$static.processBacksolidus_b(); - case 66: - return this$static.processBacksolidus_B(); - case 60: - return this$static.processBacksolidus_lt(); - case 62: - return this$static.processBacksolidus_gt(); - } - - } - tok = $parseAtom(this$static); - ch_0 = this$static.nexttoken; - switch (ch_0) { - case 3: - return this$static.processStar(tok); - case 4: - return this$static.processPlus(tok); - case 5: - return this$static.processQuestion(tok); - case 0: - if (this$static.chardata == 123 && this$static.offset < this$static.regexlen) { - off = this$static.offset; - min_0 = 0; - max_0 = -1; - if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - min_0 = ch_0 - 48; - while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - min_0 = min_0 * 10 + ch_0 - 48; - if (min_0 < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); - } - } - else { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.1')))); - } - max_0 = min_0; - if (ch_0 == 44) { - if (off >= this$static.regexlen) { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.3')))); - } - else if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - max_0 = ch_0 - 48; - while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - max_0 = max_0 * 10 + ch_0 - 48; - if (max_0 < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); - } - if (min_0 > max_0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.4')))); - } - else { - max_0 = -1; - } - } - if (ch_0 != 125) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.2')))); - if (this$static.checkQuestion(off)) { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok)); - this$static.offset = off + 1; - } - else { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok)); - this$static.offset = off; - } - tok.setMin(min_0); - tok.setMax(max_0); - $next_17(this$static); - } - - } - return tok; -} - -function $parseRegex(this$static){ - var parent_0, tok; - tok = $parseTerm(this$static); - parent_0 = null; - while (this$static.nexttoken == 2) { - $next_17(this$static); - if (!parent_0) { - parent_0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); - $addChild_0(parent_0, tok); - tok = parent_0; - } - tok.addChild($parseTerm(this$static)); - } - return tok; -} - -function $parseTerm(this$static){ - var ch_0, concat, tok; - ch_0 = this$static.nexttoken; - if (ch_0 == 2 || ch_0 == 7 || ch_0 == 1) { - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; - } - else { - tok = $parseFactor(this$static); - concat = null; - while ((ch_0 = this$static.nexttoken) != 2 && ch_0 != 7 && ch_0 != 1) { - if (!concat) { - concat = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(1)); - $addChild_0(concat, tok); - tok = concat; - } - $addChild_0(concat, $parseFactor(this$static)); - } - return tok; - } -} - -function $processBacksolidus_pP(this$static, c){ - var nameend, namestart, pname, positive; - $next_17(this$static); - if (this$static.nexttoken != 0 || this$static.chardata != 123) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.2')))); - positive = c == 112; - namestart = this$static.offset; - nameend = $indexOf_0(this$static.regex, 125, namestart); - if (nameend < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.3')))); - pname = $substring_1(this$static.regex, namestart, nameend); - this$static.offset = nameend + 1; - return getRange_1(pname, positive, (this$static.options_0 & 512) == 512); -} - -function RegEx$RegexParser(){ -} - -function hexChar(ch_0){ - if (ch_0 < 48) - return -1; - if (ch_0 > 102) - return -1; - if (ch_0 <= 57) - return ch_0 - 48; - if (ch_0 < 65) - return -1; - if (ch_0 <= 70) - return ch_0 - 65 + 10; - if (ch_0 < 97) - return -1; - return ch_0 - 97 + 10; -} - -defineClass(820, 1, {}, RegEx$RegexParser); -_.checkQuestion = function checkQuestion(off){ - return off < this.regexlen && $charAt(this.regex, off) == 63; -} -; -_.decodeEscaped = function decodeEscaped(){ - var c, uv, uv0, v1, v10; - if (this.nexttoken != 10) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - c = this.chardata; - switch (c) { - case 101: - c = 27; - break; - case 102: - c = 12; - break; - case 110: - c = 10; - break; - case 114: - c = 13; - break; - case 116: - c = 9; - break; - case 120: - $next_17(this); - if (this.nexttoken != 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - if (this.chardata == 123) { - v10 = 0; - uv0 = 0; - do { - $next_17(this); - if (this.nexttoken != 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - if ((v10 = hexChar(this.chardata)) < 0) - break; - if (uv0 > uv0 * 16) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.2')))); - uv0 = uv0 * 16 + v10; - } - while (true); - if (this.chardata != 125) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.3')))); - if (uv0 > $intern_165) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.4')))); - c = uv0; - } - else { - v10 = 0; - if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv0 = v10; - $next_17(this); - if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv0 = uv0 * 16 + v10; - c = uv0; - } - - break; - case 117: - v1 = 0; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - c = uv; - break; - case 118: - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - if (uv > $intern_165) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descappe.4')))); - c = uv; - break; - case 65: - case 90: - case 122: - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.5')))); - } - return c; -} -; -_.getTokenForShorthand = function getTokenForShorthand(ch_0){ - var number, tok; - switch (ch_0) { - case 100: - tok = (this.options_0 & 32) == 32?getRange_0('Nd', true):($clinit_RegEx$Token() , token_0to9); - break; - case 68: - tok = (this.options_0 & 32) == 32?getRange_0('Nd', false):($clinit_RegEx$Token() , token_not_0to9); - break; - case 119: - tok = (this.options_0 & 32) == 32?getRange_0('IsWord', true):($clinit_RegEx$Token() , token_wordchars); - break; - case 87: - tok = (this.options_0 & 32) == 32?getRange_0('IsWord', false):($clinit_RegEx$Token() , token_not_wordchars); - break; - case 115: - tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', true):($clinit_RegEx$Token() , token_spaces); - break; - case 83: - tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', false):($clinit_RegEx$Token() , token_not_spaces); - break; - default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); - } - return tok; -} -; -_.parseCharacterClass = function parseCharacterClass(useNrange){ - var base, c, end, firstloop, name_0, nameend, positive, range, rangeend, tok, tok2, type_0; - this.context = 1; - $next_17(this); - base = null; - if (this.nexttoken == 0 && this.chardata == 94) { - $next_17(this); - if (useNrange) { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(5)); - } - else { - base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - $addRange(base, 0, $intern_165); - tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); - } - } - else { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - } - firstloop = true; - while ((type_0 = this.nexttoken) != 1) { - if (type_0 == 0 && this.chardata == 93 && !firstloop) - break; - firstloop = false; - c = this.chardata; - end = false; - if (type_0 == 10) { - switch (c) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - $mergeRanges(tok, this.getTokenForShorthand(c)); - end = true; - break; - case 105: - case 73: - case 99: - case 67: - c = this.processCIinCharacterClass(tok, c); - c < 0 && (end = true); - break; - case 112: - case 80: - tok2 = $processBacksolidus_pP(this, c); - if (!tok2) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); - $mergeRanges(tok, tok2); - end = true; - break; - default:c = this.decodeEscaped(); - } - } - else if (type_0 == 20) { - nameend = $indexOf_0(this.regex, 58, this.offset); - if (nameend < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); - positive = true; - if ($charAt(this.regex, this.offset) == 94) { - ++this.offset; - positive = false; - } - name_0 = $substring_1(this.regex, this.offset, nameend); - range = getRange_1(name_0, positive, (this.options_0 & 512) == 512); - if (!range) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.3')))); - $mergeRanges(tok, range); - end = true; - if (nameend + 1 >= this.regexlen || $charAt(this.regex, nameend + 1) != 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); - this.offset = nameend + 2; - } - $next_17(this); - if (!end) { - if (this.nexttoken != 0 || this.chardata != 45) { - $addRange(tok, c, c); - } - else { - $next_17(this); - if ((type_0 = this.nexttoken) == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - if (type_0 == 0 && this.chardata == 93) { - $addRange(tok, c, c); - $addRange(tok, 45, 45); - } - else { - rangeend = this.chardata; - type_0 == 10 && (rangeend = this.decodeEscaped()); - $next_17(this); - $addRange(tok, c, rangeend); - } - } - } - (this.options_0 & $intern_137) == $intern_137 && this.nexttoken == 0 && this.chardata == 44 && $next_17(this); - } - if (this.nexttoken == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - if (base) { - $subtractRanges(base, tok); - tok = base; - } - $sortRanges(tok); - $compactRanges(tok); - this.context = 0; - $next_17(this); - return tok; -} -; -_.parseSetOperations = function parseSetOperations(){ - var ch_0, t2, tok, type_0; - tok = this.parseCharacterClass(false); - while ((type_0 = this.nexttoken) != 7) { - ch_0 = this.chardata; - if (type_0 == 0 && (ch_0 == 45 || ch_0 == 38) || type_0 == 4) { - $next_17(this); - if (this.nexttoken != 9) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.1')))); - t2 = this.parseCharacterClass(false); - if (type_0 == 4) - $mergeRanges(tok, t2); - else if (ch_0 == 45) - $subtractRanges(tok, t2); - else if (ch_0 == 38) - $intersectRanges(tok, t2); - else - throw toJs(new RuntimeException_0('ASSERT')); - } - else { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.2')))); - } - } - $next_17(this); - return tok; -} -; -_.processBackreference = function processBackreference(){ - var refnum, tok; - refnum = this.chardata - 48; - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$StringToken(12, null, refnum)); - !this.references && (this.references = new Vector); - $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refnum)); - $next_17(this); - return tok; -} -; -_.processBacksolidus_A = function processBacksolidus_A(){ - $next_17(this); - return $clinit_RegEx$Token() , token_stringbeginning; -} -; -_.processBacksolidus_B = function processBacksolidus_B(){ - $next_17(this); - return $clinit_RegEx$Token() , token_not_wordedge; -} -; -_.processBacksolidus_C = function processBacksolidus_C(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_I = function processBacksolidus_I(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_X = function processBacksolidus_X(){ - $next_17(this); - return getCombiningCharacterSequence(); -} -; -_.processBacksolidus_Z = function processBacksolidus_Z(){ - $next_17(this); - return $clinit_RegEx$Token() , token_stringend2; -} -; -_.processBacksolidus_b = function processBacksolidus_b(){ - $next_17(this); - return $clinit_RegEx$Token() , token_wordedge; -} -; -_.processBacksolidus_c = function processBacksolidus_c(){ - var ch2; - if (this.offset >= this.regexlen || ((ch2 = $charAt(this.regex, this.offset++)) & 65504) != 64) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.1')))); - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2 - 64); -} -; -_.processBacksolidus_g = function processBacksolidus_g(){ - $next_17(this); - return getGraphemePattern(); -} -; -_.processBacksolidus_gt = function processBacksolidus_gt(){ - $next_17(this); - return $clinit_RegEx$Token() , token_wordend; -} -; -_.processBacksolidus_i = function processBacksolidus_i(){ - var tok; - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 105)); - $next_17(this); - return tok; -} -; -_.processBacksolidus_lt = function processBacksolidus_lt(){ - $next_17(this); - return $clinit_RegEx$Token() , token_wordbeginning; -} -; -_.processBacksolidus_z = function processBacksolidus_z(){ - $next_17(this); - return $clinit_RegEx$Token() , token_stringend; -} -; -_.processCIinCharacterClass = function processCIinCharacterClass(tok, c){ - return this.decodeEscaped(); -} -; -_.processCaret = function processCaret(){ - $next_17(this); - return $clinit_RegEx$Token() , token_linebeginning; -} -; -_.processCondition = function processCondition(){ - var ch_0, condition, noPattern, refno, yesPattern; - if (this.offset + 1 >= this.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.4')))); - refno = -1; - condition = null; - ch_0 = $charAt(this.regex, this.offset); - if (49 <= ch_0 && ch_0 <= 57) { - refno = ch_0 - 48; - !this.references && (this.references = new Vector); - $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refno)); - ++this.offset; - if ($charAt(this.regex, this.offset) != 41) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - ++this.offset; - } - else { - ch_0 == 63 && --this.offset; - $next_17(this); - condition = $parseFactor(this); - switch (condition.type_0) { - case 20: - case 21: - case 22: - case 23: - break; - case 8: - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - break; - default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.5')))); - } - } - $next_17(this); - yesPattern = $parseRegex(this); - noPattern = null; - if (yesPattern.type_0 == 2) { - if (yesPattern.size_2() != 2) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.6')))); - noPattern = yesPattern.getChild(1); - yesPattern = yesPattern.getChild(0); - } - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ConditionToken(refno, condition, yesPattern, noPattern); -} -; -_.processDollar = function processDollar(){ - $next_17(this); - return $clinit_RegEx$Token() , token_lineend; -} -; -_.processIndependent = function processIndependent(){ - var tok; - $next_17(this); - tok = createLook(24, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processLookahead = function processLookahead(){ - var tok; - $next_17(this); - tok = createLook(20, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processLookbehind = function processLookbehind(){ - var tok; - $next_17(this); - tok = createLook(22, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processModifiers = function processModifiers(){ - var add_0, ch_0, mask, tok, v; - add_0 = 0; - mask = 0; - ch_0 = -1; - while (this.offset < this.regexlen) { - ch_0 = $charAt(this.regex, this.offset); - v = getOptionValue(ch_0); - if (v == 0) - break; - add_0 |= v; - ++this.offset; - } - if (this.offset >= this.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); - if (ch_0 == 45) { - ++this.offset; - while (this.offset < this.regexlen) { - ch_0 = $charAt(this.regex, this.offset); - v = getOptionValue(ch_0); - if (v == 0) - break; - mask |= v; - ++this.offset; - } - if (this.offset >= this.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); - } - if (ch_0 == 58) { - ++this.offset; - $next_17(this); - tok = createModifierGroup($parseRegex(this), add_0, mask); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - } - else if (ch_0 == 41) { - ++this.offset; - $next_17(this); - tok = createModifierGroup($parseRegex(this), add_0, mask); - } - else - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.3')))); - return tok; -} -; -_.processNegativelookahead = function processNegativelookahead(){ - var tok; - $next_17(this); - tok = createLook(21, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processNegativelookbehind = function processNegativelookbehind(){ - var tok; - $next_17(this); - tok = createLook(23, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processParen = function processParen(){ - var p, tok; - $next_17(this); - p = this.parennumber++; - tok = createParen($parseRegex(this), p); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processParen2 = function processParen2(){ - var tok; - $next_17(this); - tok = createParen($parseRegex(this), 0); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processPlus = function processPlus(tok){ - $next_17(this); - if (this.nexttoken == 5) { - $next_17(this); - return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok))); - } - else - return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); -} -; -_.processQuestion = function processQuestion(tok){ - var par; - $next_17(this); - par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); - if (this.nexttoken == 5) { - $next_17(this); - $addChild_0(par, (null , token_empty)); - $addChild_0(par, tok); - } - else { - $addChild_0(par, tok); - $addChild_0(par, (null , token_empty)); - } - return par; -} -; -_.processStar = function processStar(tok){ - $next_17(this); - if (this.nexttoken == 5) { - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok); - } - else - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); -} -; -_.chardata = 0; -_.context = 0; -_.nexttoken = 0; -_.offset = 0; -_.options_0 = 0; -_.parennumber = 1; -_.references = null; -_.regexlen = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser', 820); -function $decodeEscaped(this$static){ - var c; - if (this$static.nexttoken != 10) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - c = this$static.chardata; - switch (c) { - case 110: - c = 10; - break; - case 114: - c = 13; - break; - case 116: - c = 9; - break; - case 92: - case 124: - case 46: - case 94: - case 45: - case 63: - case 42: - case 43: - case 123: - case 125: - case 40: - case 41: - case 91: - case 93: - break; - default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); - } - return c; -} - -function $getTokenForShorthand(ch_0){ - var number; - switch (ch_0) { - case 100: - return getRange('xml:isDigit', true); - case 68: - return getRange('xml:isDigit', false); - case 119: - return getRange('xml:isWord', true); - case 87: - return getRange('xml:isWord', false); - case 115: - return getRange('xml:isSpace', true); - case 83: - return getRange('xml:isSpace', false); - case 99: - return getRange('xml:isNameChar', true); - case 67: - return getRange('xml:isNameChar', false); - case 105: - return getRange('xml:isInitialNameChar', true); - case 73: - return getRange('xml:isInitialNameChar', false); - default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); - } -} - -function $parseCharacterClass(this$static){ - var base, c, end, firstloop, range2, rangeend, tok, tok2, type_0; - this$static.context = 1; - $next_17(this$static); - base = null; - if (this$static.nexttoken == 0 && this$static.chardata == 94) { - $next_17(this$static); - base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - $addRange(base, 0, $intern_165); - tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); - } - else { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - } - firstloop = true; - while ((type_0 = this$static.nexttoken) != 1) { - if (type_0 == 0 && this$static.chardata == 93 && !firstloop) { - if (base) { - $subtractRanges(base, tok); - tok = base; - } - break; - } - c = this$static.chardata; - end = false; - if (type_0 == 10) { - switch (c) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - $mergeRanges(tok, $getTokenForShorthand(c)); - end = true; - break; - case 105: - case 73: - case 99: - case 67: - c = ($mergeRanges(tok, $getTokenForShorthand(c)) , -1); - c < 0 && (end = true); - break; - case 112: - case 80: - tok2 = $processBacksolidus_pP(this$static, c); - if (!tok2) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); - $mergeRanges(tok, tok2); - end = true; - break; - default:c = $decodeEscaped(this$static); - } - } - else if (type_0 == 24 && !firstloop) { - if (base) { - $subtractRanges(base, tok); - tok = base; - } - range2 = $parseCharacterClass(this$static); - $subtractRanges(tok, range2); - if (this$static.nexttoken != 0 || this$static.chardata != 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.5')))); - break; - } - $next_17(this$static); - if (!end) { - if (type_0 == 0) { - if (c == 91) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); - if (c == 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); - if (c == 45 && !firstloop && this$static.chardata != 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); - } - if (this$static.nexttoken != 0 || this$static.chardata != 45 || c == 45 && firstloop) { - $addRange(tok, c, c); - } - else { - $next_17(this$static); - if ((type_0 = this$static.nexttoken) == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - if (type_0 == 0 && this$static.chardata == 93) { - $addRange(tok, c, c); - $addRange(tok, 45, 45); - } - else if (type_0 == 0 && this$static.chardata == 93 || type_0 == 24) { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); - } - else { - rangeend = this$static.chardata; - if (type_0 == 0) { - if (rangeend == 91) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); - if (rangeend == 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); - if (rangeend == 45) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); - } - else - type_0 == 10 && (rangeend = $decodeEscaped(this$static)); - $next_17(this$static); - if (c > rangeend) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.3')))); - $addRange(tok, c, rangeend); - } - } - } - firstloop = false; - } - if (this$static.nexttoken == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - $sortRanges(tok); - $compactRanges(tok); - this$static.context = 0; - $next_17(this$static); - return tok; -} - -function RegEx$ParserForXMLSchema(){ - RegEx$RegexParser.call(this); -} - -function getRange(name_0, positive){ - var tok, tok0; - if (!ranges_0) { - ranges_0 = new HashMap; - ranges2 = new HashMap; - tok0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '\t\n\r\r '); - $putStringValue(ranges_0, 'xml:isSpace', tok0); - $putStringValue(ranges2, 'xml:isSpace', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); - $putStringValue(ranges_0, 'xml:isDigit', tok0); - $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); - $putStringValue(ranges_0, 'xml:isDigit', tok0); - $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); - $mergeRanges(tok0, castTo($getStringValue(ranges_0, 'xml:isDigit'), 117)); - $putStringValue(ranges_0, 'xml:isWord', tok0); - $putStringValue(ranges2, 'xml:isWord', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); - $putStringValue(ranges_0, 'xml:isNameChar', tok0); - $putStringValue(ranges2, 'xml:isNameChar', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); - $addRange(tok0, 95, 95); - $addRange(tok0, 58, 58); - $putStringValue(ranges_0, 'xml:isInitialNameChar', tok0); - $putStringValue(ranges2, 'xml:isInitialNameChar', complementRanges(tok0)); - } - tok = positive?castTo($getStringValue(ranges_0, name_0), 136):castTo($getStringValue(ranges2, name_0), 136); - return tok; -} - -function setupRange(range, src_0){ - var i, len; - len = src_0.length; - for (i = 0; i < len; i += 2) - $addRange(range, (checkCriticalStringElementIndex(i, src_0.length) , src_0.charCodeAt(i)), (checkCriticalStringElementIndex(i + 1, src_0.length) , src_0.charCodeAt(i + 1))); -} - -defineClass(1824, 820, {}, RegEx$ParserForXMLSchema); -_.checkQuestion = function checkQuestion_0(off){ - return false; -} -; -_.decodeEscaped = function decodeEscaped_0(){ - return $decodeEscaped(this); -} -; -_.getTokenForShorthand = function getTokenForShorthand_0(ch_0){ - return $getTokenForShorthand(ch_0); -} -; -_.parseCharacterClass = function parseCharacterClass_0(useNrange){ - return $parseCharacterClass(this); -} -; -_.parseSetOperations = function parseSetOperations_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBackreference = function processBackreference_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_A = function processBacksolidus_A_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_B = function processBacksolidus_B_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_C = function processBacksolidus_C_0(){ - $next_17(this); - return $getTokenForShorthand(67); -} -; -_.processBacksolidus_I = function processBacksolidus_I_0(){ - $next_17(this); - return $getTokenForShorthand(73); -} -; -_.processBacksolidus_X = function processBacksolidus_X_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_Z = function processBacksolidus_Z_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_b = function processBacksolidus_b_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_c = function processBacksolidus_c_0(){ - $next_17(this); - return $getTokenForShorthand(99); -} -; -_.processBacksolidus_g = function processBacksolidus_g_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_gt = function processBacksolidus_gt_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_i = function processBacksolidus_i_0(){ - $next_17(this); - return $getTokenForShorthand(105); -} -; -_.processBacksolidus_lt = function processBacksolidus_lt_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_z = function processBacksolidus_z_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processCIinCharacterClass = function processCIinCharacterClass_0(tok, c){ - return $mergeRanges(tok, $getTokenForShorthand(c)) , -1; -} -; -_.processCaret = function processCaret_0(){ - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 94); -} -; -_.processCondition = function processCondition_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processDollar = function processDollar_0(){ - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 36); -} -; -_.processIndependent = function processIndependent_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processLookahead = function processLookahead_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processLookbehind = function processLookbehind_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processModifiers = function processModifiers_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processNegativelookahead = function processNegativelookahead_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processNegativelookbehind = function processNegativelookbehind_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processParen = function processParen_0(){ - var tok; - $next_17(this); - tok = createParen($parseRegex(this), 0); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processParen2 = function processParen2_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processPlus = function processPlus_0(tok){ - $next_17(this); - return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); -} -; -_.processQuestion = function processQuestion_0(tok){ - var par; - $next_17(this); - par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); - $addChild_0(par, tok); - $addChild_0(par, (null , token_empty)); - return par; -} -; -_.processStar = function processStar_0(tok){ - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); -} -; -var ranges_0 = null, ranges2 = null; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParserForXMLSchema_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParserForXMLSchema', 1824); -function createOptionString(options){ - var sb; - sb = new StringBuffer_0; - (options & 256) != 0 && (sb.string += 'F' , sb); - (options & 128) != 0 && (sb.string += 'H' , sb); - (options & 512) != 0 && (sb.string += 'X' , sb); - (options & 2) != 0 && (sb.string += 'i' , sb); - (options & 8) != 0 && (sb.string += 'm' , sb); - (options & 4) != 0 && (sb.string += 's' , sb); - (options & 32) != 0 && (sb.string += 'u' , sb); - (options & 64) != 0 && (sb.string += 'w' , sb); - (options & 16) != 0 && (sb.string += 'x' , sb); - (options & $intern_137) != 0 && (sb.string += ',' , sb); - return $intern(sb.string); -} - -function decomposeToSurrogates(ch_0){ - var chs; - chs = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); - ch_0 -= $intern_63; - chs[0] = (ch_0 >> 10) + $intern_64 & $intern_46; - chs[1] = (ch_0 & 1023) + 56320 & $intern_46; - return valueOf_9(chs, 0, chs.length); -} - -function getOptionValue(ch_0){ - var ret; - ret = 0; - switch (ch_0) { - case 105: - ret = 2; - break; - case 109: - ret = 8; - break; - case 115: - ret = 4; - break; - case 120: - ret = 16; - break; - case 117: - ret = 32; - break; - case 119: - ret = 64; - break; - case 70: - ret = 256; - break; - case 72: - ret = 128; - break; - case 88: - ret = 512; - break; - case 44: - ret = $intern_137; - } - return ret; -} - -function parseOptions(){ - var i, options, v; - options = 0; - for (i = 0; i < 'X'.length; i++) { - v = getOptionValue((checkCriticalStringElementIndex(i, 'X'.length) , 'X'.charCodeAt(i))); - if (v == 0) - throw toJs(new RegEx$ParseException('Unknown Option: ' + 'X'.substr(i))); - options |= v; - } - return options; -} - -function quoteMeta(literal){ - var buffer, ch_0, i, len; - len = literal.length; - buffer = null; - for (i = 0; i < len; i++) { - ch_0 = (checkCriticalStringElementIndex(i, literal.length) , literal.charCodeAt(i)); - if ($indexOf_1('.*+?{[()|\\^$', fromCodePoint(ch_0)) >= 0) { - if (!buffer) { - buffer = new StringBuffer_0; - i > 0 && $append_3(buffer, literal.substr(0, i)); - } - buffer.string += '\\'; - $append(buffer, ch_0 & $intern_46); - } - else - !!buffer && $append(buffer, ch_0 & $intern_46); - } - return buffer?buffer.string:literal; -} - -function stripExtendedComment(regex){ - var buffer, ch_0, len, next, offset; - len = regex.length; - buffer = new StringBuffer_0; - offset = 0; - while (offset < len) { - ch_0 = $charAt(regex, offset++); - if (ch_0 == 9 || ch_0 == 10 || ch_0 == 12 || ch_0 == 13 || ch_0 == 32) - continue; - if (ch_0 == 35) { - while (offset < len) { - ch_0 = $charAt(regex, offset++); - if (ch_0 == 13 || ch_0 == 10) - break; - } - continue; - } - if (ch_0 == 92 && offset < len) { - if ((next = (checkCriticalStringElementIndex(offset, regex.length) , regex.charCodeAt(offset))) == 35 || next == 9 || next == 10 || next == 12 || next == 13 || next == 32) { - $append(buffer, next & $intern_46); - ++offset; - } - else { - buffer.string += '\\'; - $append(buffer, next & $intern_46); - ++offset; - } - } - else - $append(buffer, ch_0 & $intern_46); - } - return buffer.string; -} - -function $clinit_RegEx$Token(){ - $clinit_RegEx$Token = emptyMethod; - token_empty = new RegEx$Token(7); - token_linebeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 94)); - ++tokens_0; - new RegEx$Token$CharToken(8, 64); - token_lineend = (++tokens_0 , new RegEx$Token$CharToken(8, 36)); - token_stringbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 65)); - token_stringend = (++tokens_0 , new RegEx$Token$CharToken(8, 122)); - token_stringend2 = (++tokens_0 , new RegEx$Token$CharToken(8, 90)); - token_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 98)); - token_not_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 66)); - token_wordbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 60)); - token_wordend = (++tokens_0 , new RegEx$Token$CharToken(8, 62)); - token_dot = new RegEx$Token(11); - token_0to9 = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(token_0to9, 48, 57); - token_wordchars = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(token_wordchars, 48, 57); - $addRange(token_wordchars, 65, 90); - $addRange(token_wordchars, 95, 95); - $addRange(token_wordchars, 97, 122); - token_spaces = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(token_spaces, 9, 9); - $addRange(token_spaces, 10, 10); - $addRange(token_spaces, 12, 12); - $addRange(token_spaces, 13, 13); - $addRange(token_spaces, 32, 32); - token_not_0to9 = complementRanges(token_0to9); - token_not_wordchars = complementRanges(token_wordchars); - token_not_spaces = complementRanges(token_spaces); - categories = new HashMap; - categories2 = new HashMap; - categoryNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Cn', 'Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Me', 'Mc', 'Nd', 'Nl', 'No', 'Zs', 'Zl', 'Zp', 'Cc', 'Cf', null, 'Co', 'Cs', 'Pd', 'Ps', 'Pe', 'Pc', 'Po', 'Sm', 'Sc', 'Sk', 'So', 'Pi', 'Pf', 'L', 'M', 'N', 'Z', 'C', 'P', 'S']); - blockNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Basic Latin', 'Latin-1 Supplement', 'Latin Extended-A', 'Latin Extended-B', 'IPA Extensions', 'Spacing Modifier Letters', 'Combining Diacritical Marks', 'Greek', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul Jamo', 'Ethiopic', 'Cherokee', 'Unified Canadian Aboriginal Syllabics', 'Ogham', 'Runic', 'Khmer', 'Mongolian', 'Latin Extended Additional', 'Greek Extended', 'General Punctuation', 'Superscripts and Subscripts', 'Currency Symbols', 'Combining Marks for Symbols', 'Letterlike Symbols', 'Number Forms', 'Arrows', 'Mathematical Operators', 'Miscellaneous Technical', 'Control Pictures', 'Optical Character Recognition', 'Enclosed Alphanumerics', 'Box Drawing', 'Block Elements', 'Geometric Shapes', 'Miscellaneous Symbols', 'Dingbats', 'Braille Patterns', 'CJK Radicals Supplement', 'Kangxi Radicals', 'Ideographic Description Characters', 'CJK Symbols and Punctuation', 'Hiragana', 'Katakana', 'Bopomofo', 'Hangul Compatibility Jamo', 'Kanbun', 'Bopomofo Extended', 'Enclosed CJK Letters and Months', 'CJK Compatibility', 'CJK Unified Ideographs Extension A', 'CJK Unified Ideographs', 'Yi Syllables', 'Yi Radicals', 'Hangul Syllables', 'Private Use', 'CJK Compatibility Ideographs', 'Alphabetic Presentation Forms', 'Arabic Presentation Forms-A', 'Combining Half Marks', 'CJK Compatibility Forms', 'Small Form Variants', 'Arabic Presentation Forms-B', 'Specials', 'Halfwidth and Fullwidth Forms', 'Old Italic', 'Gothic', 'Deseret', 'Byzantine Musical Symbols', 'Musical Symbols', 'Mathematical Alphanumeric Symbols', 'CJK Unified Ideographs Extension B', 'CJK Compatibility Ideographs Supplement', 'Tags']); - nonBMPBlockRanges = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); -} - -function RegEx$Token(type_0){ - this.type_0 = type_0; -} - -function createChar(ch_0){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$CharToken(0, ch_0); -} - -function createClosure(tok){ - ++tokens_0; - return new RegEx$Token$ClosureToken(3, tok); -} - -function createConcat(tok1, tok2){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ConcatToken(tok1, tok2); -} - -function createLook(type_0, child){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ParenToken(type_0, child, 0); -} - -function createModifierGroup(child, add_0, mask){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ModifierToken(child, add_0, mask); -} - -function createParen(child, pnumber){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ParenToken(6, child, pnumber); -} - -function createString_0(str){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$StringToken(10, str, 0); -} - -function getCombiningCharacterSequence(){ - $clinit_RegEx$Token(); - var foo; - if (token_ccs) - return token_ccs; - foo = createClosure(getRange_0('M', true)); - foo = createConcat(getRange_0('M', false), foo); - token_ccs = foo; - return token_ccs; -} - -function getGraphemePattern(){ - $clinit_RegEx$Token(); - var base_char, combiner_wo_virama, foo, i, left, virama; - if (token_grapheme) - return token_grapheme; - base_char = (++tokens_0 , new RegEx$RangeToken(4)); - $mergeRanges(base_char, getRange_0('ASSIGNED', true)); - $subtractRanges(base_char, getRange_0('M', true)); - $subtractRanges(base_char, getRange_0('C', true)); - virama = (++tokens_0 , new RegEx$RangeToken(4)); - for (i = 0; i < 11; i++) { - $addRange(virama, i, i); - } - combiner_wo_virama = (++tokens_0 , new RegEx$RangeToken(4)); - $mergeRanges(combiner_wo_virama, getRange_0('M', true)); - $addRange(combiner_wo_virama, 4448, 4607); - $addRange(combiner_wo_virama, 65438, 65439); - left = (++tokens_0 , new RegEx$Token$UnionToken(2)); - $addChild_0(left, base_char); - $addChild_0(left, token_empty); - foo = (++tokens_0 , new RegEx$Token$UnionToken(2)); - foo.addChild(createConcat(virama, getRange_0('L', true))); - foo.addChild(combiner_wo_virama); - foo = (++tokens_0 , new RegEx$Token$ClosureToken(3, foo)); - foo = (++tokens_0 , new RegEx$Token$ConcatToken(left, foo)); - token_grapheme = foo; - return token_grapheme; -} - -function getRange_0(name_0, positive){ - $clinit_RegEx$Token(); - var all, buffer, ci, i, i0, location_0, n, oldLength, r1, ranges, rend, rstart, tok; - if ($size_2(categories) == 0) { - ranges = initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit, $intern_16, 117, categoryNames.length, 0, 1); - for (i0 = 0; i0 < ranges.length; i0++) { - ranges[i0] = (++tokens_0 , new RegEx$RangeToken(4)); - } - buffer = new StringBuffer_0; - for (i = 0; i < blockNames.length; i++) { - r1 = (++tokens_0 , new RegEx$RangeToken(4)); - if (i < 84) { - location_0 = i * 2; - rstart = (checkCriticalStringElementIndex(location_0, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0)); - rend = (checkCriticalStringElementIndex(location_0 + 1, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0 + 1)); - $addRange(r1, rstart, rend); - } - else { - location_0 = (i - 84) * 2; - $addRange(r1, nonBMPBlockRanges[location_0], nonBMPBlockRanges[location_0 + 1]); - } - n = blockNames[i]; - $equals_5(n, 'Specials') && $addRange(r1, 65520, 65533); - if ($equals_5(n, 'Private Use')) { - $addRange(r1, 983040, 1048573); - $addRange(r1, 1048576, 1114109); - } - $putStringValue(categories, n, r1); - $putStringValue(categories2, n, complementRanges(r1)); - oldLength = buffer.string.length; - 0 < oldLength?(buffer.string = buffer.string.substr(0, 0)):0 > oldLength && (buffer.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); - buffer.string += 'Is'; - if ($indexOf_1(n, fromCodePoint(32)) >= 0) { - for (ci = 0; ci < n.length; ci++) { - checkCriticalStringElementIndex(ci, n.length); - n.charCodeAt(ci) != 32 && $append(buffer, (checkCriticalStringElementIndex(ci, n.length) , n.charCodeAt(ci))); - } - } - else { - buffer.string += '' + n; - } - setAlias(buffer.string, n, true); - } - setAlias('ASSIGNED', 'Cn', false); - setAlias('UNASSIGNED', 'Cn', true); - all = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(all, 0, $intern_165); - $putStringValue(categories, 'ALL', all); - $putStringValue(categories2, 'ALL', complementRanges(all)); - !nonxs && (nonxs = new HashMap); - $putStringValue(nonxs, 'ASSIGNED', 'ASSIGNED'); - !nonxs && (nonxs = new HashMap); - $putStringValue(nonxs, 'UNASSIGNED', 'UNASSIGNED'); - !nonxs && (nonxs = new HashMap); - $putStringValue(nonxs, 'ALL', 'ALL'); - } - tok = positive?castTo($getStringValue(categories, name_0), 136):castTo($getStringValue(categories2, name_0), 136); - return tok; -} - -function getRange_1(name_0, positive, xs){ - $clinit_RegEx$Token(); - var range; - range = getRange_0(name_0, positive); - xs && !!range && isRegisterNonXS(name_0) && (range = null); - return range; -} - -function isRegisterNonXS(name_0){ - if (!nonxs) - return false; - return $hasStringValue(nonxs, name_0); -} - -function setAlias(newName, name_0, positive){ - var t1, t2; - t1 = castTo($getStringValue(categories, name_0), 117); - t2 = castTo($getStringValue(categories2, name_0), 117); - if (positive) { - $putStringValue(categories, newName, t1); - $putStringValue(categories2, newName, t2); - } - else { - $putStringValue(categories2, newName, t1); - $putStringValue(categories, newName, t2); - } -} - -defineClass(117, 1, $intern_166, RegEx$Token); -_.addChild = function addChild(tok){ - throw toJs(new RuntimeException_0('Not supported.')); -} -; -_.getChar = function getChar(){ - return -1; -} -; -_.getChild = function getChild(index_0){ - return null; -} -; -_.getString = function getString(){ - return null; -} -; -_.setMax = function setMax(max_0){ -} -; -_.setMin = function setMin(min_0){ -} -; -_.size_2 = function size_81(){ - return 0; -} -; -_.toString_0 = function toString_161(){ - return this.toString_1(0); -} -; -_.toString_1 = function toString_162(options){ - return this.type_0 == 11?'.':''; -} -; -_.type_0 = 0; -var blockNames, categories, categories2, categoryNames, nonBMPBlockRanges, nonxs = null, token_0to9, token_ccs = null, token_dot, token_empty, token_grapheme = null, token_linebeginning, token_lineend, token_not_0to9, token_not_spaces, token_not_wordchars, token_not_wordedge, token_spaces, token_stringbeginning, token_stringend, token_stringend2, token_wordbeginning, token_wordchars, token_wordedge, token_wordend, tokens_0 = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token', 117); -function $addRange(this$static, start_0, end){ - var pos, r1, r2, temp; - if (start_0 <= end) { - r1 = start_0; - r2 = end; - } - else { - r1 = end; - r2 = start_0; - } - pos = 0; - if (this$static.ranges == null) { - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, 2, 15, 1); - this$static.ranges[0] = r1; - this$static.ranges[1] = r2; - this$static.sorted = true; - } - else { - pos = this$static.ranges.length; - if (this$static.ranges[pos - 1] + 1 == r1) { - this$static.ranges[pos - 1] = r2; - return; - } - temp = initUnidimensionalArray(I_classLit, $intern_48, 25, pos + 2, 15, 1); - arraycopy(this$static.ranges, 0, temp, 0, pos); - this$static.ranges = temp; - this$static.ranges[pos - 1] >= r1 && (this$static.sorted = false , this$static.compacted = false); - this$static.ranges[pos++] = r1; - this$static.ranges[pos] = r2; - this$static.sorted || $sortRanges(this$static); - } -} - -function $compactRanges(this$static){ - var base, baseend, result, target; - if (this$static.ranges == null || this$static.ranges.length <= 2) - return; - if (this$static.compacted) - return; - base = 0; - target = 0; - while (target < this$static.ranges.length) { - if (base != target) { - this$static.ranges[base] = this$static.ranges[target++]; - this$static.ranges[base + 1] = this$static.ranges[target++]; - } - else - target += 2; - baseend = this$static.ranges[base + 1]; - while (target < this$static.ranges.length) { - if (baseend + 1 < this$static.ranges[target]) - break; - if (baseend + 1 == this$static.ranges[target]) { - this$static.ranges[base + 1] = this$static.ranges[target + 1]; - baseend = this$static.ranges[base + 1]; - target += 2; - } - else if (baseend >= this$static.ranges[target + 1]) { - target += 2; - } - else if (baseend < this$static.ranges[target + 1]) { - this$static.ranges[base + 1] = this$static.ranges[target + 1]; - baseend = this$static.ranges[base + 1]; - target += 2; - } - else { - throw toJs(new RuntimeException_0('Token#compactRanges(): Internel Error: [' + this$static.ranges[base] + ',' + this$static.ranges[base + 1] + '] [' + this$static.ranges[target] + ',' + this$static.ranges[target + 1] + ']')); - } - } - base += 2; - } - if (base != this$static.ranges.length) { - result = initUnidimensionalArray(I_classLit, $intern_48, 25, base, 15, 1); - arraycopy(this$static.ranges, 0, result, 0, base); - this$static.ranges = result; - } - this$static.compacted = true; -} - -function $intersectRanges(this$static, token){ - var result, src1, src1begin, src1end, src2, src2begin, src2end, tok, wp; - tok = token; - if (tok.ranges == null || this$static.ranges == null) - return; - $sortRanges(this$static); - $compactRanges(this$static); - $sortRanges(tok); - $compactRanges(tok); - result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); - wp = 0; - src1 = 0; - src2 = 0; - while (src1 < this$static.ranges.length && src2 < tok.ranges.length) { - src1begin = this$static.ranges[src1]; - src1end = this$static.ranges[src1 + 1]; - src2begin = tok.ranges[src2]; - src2end = tok.ranges[src2 + 1]; - if (src1end < src2begin) { - src1 += 2; - } - else if (src1end >= src2begin && src1begin <= src2end) { - if (src2begin <= src1begin && src1end <= src2end) { - result[wp++] = src1begin; - result[wp++] = src1end; - src1 += 2; - } - else if (src2begin <= src1begin) { - result[wp++] = src1begin; - result[wp++] = src2end; - this$static.ranges[src1] = src2end + 1; - src2 += 2; - } - else if (src1end <= src2end) { - result[wp++] = src2begin; - result[wp++] = src1end; - src1 += 2; - } - else { - result[wp++] = src2begin; - result[wp++] = src2end; - this$static.ranges[src1] = src2end + 1; - } - } - else if (src2end < src1begin) { - src2 += 2; - } - else { - throw toJs(new RuntimeException_0('Token#intersectRanges(): Internal Error: [' + this$static.ranges[src1] + ',' + this$static.ranges[src1 + 1] + '] & [' + tok.ranges[src2] + ',' + tok.ranges[src2 + 1] + ']')); - } - } - while (src1 < this$static.ranges.length) { - result[wp++] = this$static.ranges[src1++]; - result[wp++] = this$static.ranges[src1++]; - } - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); - arraycopy(result, 0, this$static.ranges, 0, wp); -} - -function $mergeRanges(this$static, token){ - var i, j, k, result, tok; - tok = castTo(token, 136); - $sortRanges(this$static); - $sortRanges(tok); - if (tok.ranges == null) - return; - this$static.sorted = true; - if (this$static.ranges == null) { - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, tok.ranges.length, 15, 1); - arraycopy(tok.ranges, 0, this$static.ranges, 0, tok.ranges.length); - return; - } - result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); - for (i = 0 , j = 0 , k = 0; i < this$static.ranges.length || j < tok.ranges.length;) { - if (i >= this$static.ranges.length) { - result[k++] = tok.ranges[j++]; - result[k++] = tok.ranges[j++]; - } - else if (j >= tok.ranges.length) { - result[k++] = this$static.ranges[i++]; - result[k++] = this$static.ranges[i++]; - } - else if (tok.ranges[j] < this$static.ranges[i] || tok.ranges[j] === this$static.ranges[i] && tok.ranges[j + 1] < this$static.ranges[i + 1]) { - result[k++] = tok.ranges[j++]; - result[k++] = tok.ranges[j++]; - } - else { - result[k++] = this$static.ranges[i++]; - result[k++] = this$static.ranges[i++]; - } - } - this$static.ranges = result; -} - -function $sortRanges(this$static){ - var i, j, tmp; - if (this$static.sorted) - return; - if (this$static.ranges == null) - return; - for (i = this$static.ranges.length - 4; i >= 0; i -= 2) { - for (j = 0; j <= i; j += 2) { - if (this$static.ranges[j] > this$static.ranges[j + 2] || this$static.ranges[j] === this$static.ranges[j + 2] && this$static.ranges[j + 1] > this$static.ranges[j + 3]) { - tmp = this$static.ranges[j + 2]; - this$static.ranges[j + 2] = this$static.ranges[j]; - this$static.ranges[j] = tmp; - tmp = this$static.ranges[j + 3]; - this$static.ranges[j + 3] = this$static.ranges[j + 1]; - this$static.ranges[j + 1] = tmp; - } - } - } - this$static.sorted = true; -} - -function $subtractRanges(this$static, token){ - var result, src_0, srcbegin, srcend, sub_0, subbegin, subend, tok, wp; - if (token.type_0 == 5) { - $intersectRanges(this$static, token); - return; - } - tok = token; - if (tok.ranges == null || this$static.ranges == null) - return; - $sortRanges(this$static); - $compactRanges(this$static); - $sortRanges(tok); - $compactRanges(tok); - result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); - wp = 0; - src_0 = 0; - sub_0 = 0; - while (src_0 < this$static.ranges.length && sub_0 < tok.ranges.length) { - srcbegin = this$static.ranges[src_0]; - srcend = this$static.ranges[src_0 + 1]; - subbegin = tok.ranges[sub_0]; - subend = tok.ranges[sub_0 + 1]; - if (srcend < subbegin) { - result[wp++] = this$static.ranges[src_0++]; - result[wp++] = this$static.ranges[src_0++]; - } - else if (srcend >= subbegin && srcbegin <= subend) { - if (subbegin <= srcbegin && srcend <= subend) { - src_0 += 2; - } - else if (subbegin <= srcbegin) { - this$static.ranges[src_0] = subend + 1; - sub_0 += 2; - } - else if (srcend <= subend) { - result[wp++] = srcbegin; - result[wp++] = subbegin - 1; - src_0 += 2; - } - else { - result[wp++] = srcbegin; - result[wp++] = subbegin - 1; - this$static.ranges[src_0] = subend + 1; - sub_0 += 2; - } - } - else if (subend < srcbegin) { - sub_0 += 2; - } - else { - throw toJs(new RuntimeException_0('Token#subtractRanges(): Internal Error: [' + this$static.ranges[src_0] + ',' + this$static.ranges[src_0 + 1] + '] - [' + tok.ranges[sub_0] + ',' + tok.ranges[sub_0 + 1] + ']')); - } - } - while (src_0 < this$static.ranges.length) { - result[wp++] = this$static.ranges[src_0++]; - result[wp++] = this$static.ranges[src_0++]; - } - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); - arraycopy(result, 0, this$static.ranges, 0, wp); -} - -function RegEx$RangeToken(type_0){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.sorted = false; - this.compacted = false; -} - -function complementRanges(token){ - $clinit_RegEx$Token(); - var i, last, len, ret, tok, wp; - if (token.type_0 != 4 && token.type_0 != 5) - throw toJs(new IllegalArgumentException_0('Token#complementRanges(): must be RANGE: ' + token.type_0)); - tok = token; - $sortRanges(tok); - $compactRanges(tok); - len = tok.ranges.length + 2; - tok.ranges[0] == 0 && (len -= 2); - last = tok.ranges[tok.ranges.length - 1]; - last == $intern_165 && (len -= 2); - ret = (++tokens_0 , new RegEx$RangeToken(4)); - ret.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, len, 15, 1); - wp = 0; - if (tok.ranges[0] > 0) { - ret.ranges[wp++] = 0; - ret.ranges[wp++] = tok.ranges[0] - 1; - } - for (i = 1; i < tok.ranges.length - 2; i += 2) { - ret.ranges[wp++] = tok.ranges[i] + 1; - ret.ranges[wp++] = tok.ranges[i + 1] - 1; - } - if (last != $intern_165) { - ret.ranges[wp++] = last + 1; - ret.ranges[wp] = $intern_165; - } - ret.compacted = true; - return ret; -} - -function escapeCharInCharClass(ch_0){ - var number, pre, ret; - switch (ch_0) { - case 91: - case 93: - case 45: - case 94: - case 44: - case 92: - ret = '\\' + String.fromCharCode(ch_0 & $intern_46); - break; - case 12: - ret = '\\f'; - break; - case 10: - ret = '\\n'; - break; - case 13: - ret = '\\r'; - break; - case 9: - ret = '\\t'; - break; - case 27: - ret = '\\e'; - break; - default:if (ch_0 < 32) { - pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); - ret = '\\x' + $substring_1(pre, pre.length - 2, pre.length); - } - else if (ch_0 >= $intern_63) { - pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); - ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); - } - else - ret = '' + String.fromCharCode(ch_0 & $intern_46); - } - return ret; -} - -defineClass(136, 117, {3:1, 136:1, 117:1}, RegEx$RangeToken); -_.toString_1 = function toString_163(options){ - var i, ret, sb; - if (this.type_0 == 4) { - if (this == token_dot) - ret = '.'; - else if (this == token_0to9) - ret = '\\d'; - else if (this == token_wordchars) - ret = '\\w'; - else if (this == token_spaces) - ret = '\\s'; - else { - sb = new StringBuffer; - sb.string += '['; - for (i = 0; i < this.ranges.length; i += 2) { - (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); - if (this.ranges[i] === this.ranges[i + 1]) { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - } - else { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - sb.string += '-'; - $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); - } - } - sb.string += ']'; - ret = sb.string; - } - } - else { - if (this == token_not_0to9) - ret = '\\D'; - else if (this == token_not_wordchars) - ret = '\\W'; - else if (this == token_not_spaces) - ret = '\\S'; - else { - sb = new StringBuffer; - sb.string += '[^'; - for (i = 0; i < this.ranges.length; i += 2) { - (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); - if (this.ranges[i] === this.ranges[i + 1]) { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - } - else { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - sb.string += '-'; - $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); - } - } - sb.string += ']'; - ret = sb.string; - } - } - return ret; -} -; -_.compacted = false; -_.sorted = false; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RangeToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RangeToken', 136); -function RegEx$RegexParser$ReferencePosition(n){ - this.refNumber = n; -} - -defineClass(584, 1, {584:1}, RegEx$RegexParser$ReferencePosition); -_.refNumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser$ReferencePosition_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser/ReferencePosition', 584); -function $setPattern(this$static, newPattern, options){ - var rp; - this$static.regex = newPattern; - this$static.options_0 = options; - rp = (this$static.options_0 & 512) == 512?new RegEx$ParserForXMLSchema:new RegEx$RegexParser; - this$static.tokentree = $parse_3(rp, this$static.regex, this$static.options_0); -} - -function RegEx$RegularExpression(regex){ - $setPattern(this, regex, parseOptions()); -} - -defineClass(583, 1, {3:1, 583:1}, RegEx$RegularExpression); -_.equals_0 = function equals_198(obj){ - var r; - if (obj == null) - return false; - if (!instanceOf(obj, 583)) - return false; - r = castTo(obj, 583); - return $equals_5(this.regex, r.regex) && this.options_0 == r.options_0; -} -; -_.hashCode_1 = function hashCode_84(){ - return getHashCode_1(this.regex + '/' + createOptionString(this.options_0)); -} -; -_.toString_0 = function toString_164(){ - return this.tokentree.toString_1(this.options_0); -} -; -_.options_0 = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegularExpression_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegularExpression', 583); -function RegEx$Token$CharToken(type_0, ch_0){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.chardata = ch_0; -} - -defineClass(223, 117, $intern_166, RegEx$Token$CharToken); -_.getChar = function getChar_0(){ - return this.chardata; -} -; -_.toString_1 = function toString_165(options){ - var number, pre, ret; - switch (this.type_0) { - case 0: - switch (this.chardata) { - case 124: - case 42: - case 43: - case 63: - case 40: - case 41: - case 46: - case 91: - case 123: - case 92: - ret = '\\' + charToString(this.chardata & $intern_46); - break; - case 12: - ret = '\\f'; - break; - case 10: - ret = '\\n'; - break; - case 13: - ret = '\\r'; - break; - case 9: - ret = '\\t'; - break; - case 27: - ret = '\\e'; - break; - default:if (this.chardata >= $intern_63) { - pre = (number = this.chardata >>> 0 , '0' + number.toString(16)); - ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); - } - else - ret = '' + charToString(this.chardata & $intern_46); - } - - break; - case 8: - this == token_linebeginning || this == token_lineend?(ret = '' + charToString(this.chardata & $intern_46)):(ret = '\\' + charToString(this.chardata & $intern_46)); - break; - default:ret = null; - } - return ret; -} -; -_.chardata = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$CharToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/CharToken', 223); -function RegEx$Token$ClosureToken(type_0, tok){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.child = tok; - this.min_0 = -1; - this.max_0 = -1; -} - -defineClass(309, 117, $intern_166, RegEx$Token$ClosureToken); -_.getChild = function getChild_0(index_0){ - return this.child; -} -; -_.setMax = function setMax_0(max_0){ - this.max_0 = max_0; -} -; -_.setMin = function setMin_0(min_0){ - this.min_0 = min_0; -} -; -_.size_2 = function size_82(){ - return 1; -} -; -_.toString_1 = function toString_166(options){ - var ret; - if (this.type_0 == 3) { - if (this.min_0 < 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '*'; - } - else if (this.min_0 == this.max_0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + '}'; - } - else if (this.min_0 >= 0 && this.max_0 >= 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}'; - } - else if (this.min_0 >= 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',}'; - } - else - throw toJs(new RuntimeException_0('Token#toString(): CLOSURE ' + this.min_0 + ', ' + this.max_0)); - } - else { - if (this.min_0 < 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '*?'; - } - else if (this.min_0 == this.max_0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + '}?'; - } - else if (this.min_0 >= 0 && this.max_0 >= 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}?'; - } - else if (this.min_0 >= 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',}?'; - } - else - throw toJs(new RuntimeException_0('Token#toString(): NONGREEDYCLOSURE ' + this.min_0 + ', ' + this.max_0)); - } - return ret; -} -; -_.max_0 = 0; -_.min_0 = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ClosureToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ClosureToken', 309); -function RegEx$Token$ConcatToken(t1, t2){ - RegEx$Token.call(this, 1); - this.child = t1; - this.child2 = t2; -} - -defineClass(821, 117, $intern_166, RegEx$Token$ConcatToken); -_.getChild = function getChild_1(index_0){ - return index_0 == 0?this.child:this.child2; -} -; -_.size_2 = function size_83(){ - return 2; -} -; -_.toString_1 = function toString_167(options){ - var ret; - this.child2.type_0 == 3 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+'):this.child2.type_0 == 9 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+?'):(ret = this.child.toString_1(options) + ('' + this.child2.toString_1(options))); - return ret; -} -; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConcatToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConcatToken', 821); -function RegEx$Token$ConditionToken(refno, cond, yespat, nopat){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, 26); - this.refNumber = refno; - this.condition = cond; - this.yes = yespat; - this.no = nopat; -} - -defineClass(1822, 117, $intern_166, RegEx$Token$ConditionToken); -_.getChild = function getChild_2(index_0){ - if (index_0 == 0) - return this.yes; - if (index_0 == 1) - return this.no; - throw toJs(new RuntimeException_0('Internal Error: ' + index_0)); -} -; -_.size_2 = function size_84(){ - return !this.no?1:2; -} -; -_.toString_1 = function toString_168(options){ - var ret; - this.refNumber > 0?(ret = '(?(' + this.refNumber + ')'):this.condition.type_0 == 8?(ret = '(?(' + this.condition + ')'):(ret = '(?' + this.condition); - !this.no?(ret += this.yes + ')'):(ret += this.yes + '|' + this.no + ')'); - return ret; -} -; -_.refNumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConditionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConditionToken', 1822); -function RegEx$Token$ModifierToken(tok, add_0, mask){ - RegEx$Token.call(this, 25); - this.child = tok; - this.add_0 = add_0; - this.mask = mask; -} - -defineClass(1823, 117, $intern_166, RegEx$Token$ModifierToken); -_.getChild = function getChild_3(index_0){ - return this.child; -} -; -_.size_2 = function size_85(){ - return 1; -} -; -_.toString_1 = function toString_169(options){ - return '(?' + (this.add_0 == 0?'':createOptionString(this.add_0)) + (this.mask == 0?'':createOptionString(this.mask)) + ':' + this.child.toString_1(options) + ')'; -} -; -_.add_0 = 0; -_.mask = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ModifierToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ModifierToken', 1823); -function RegEx$Token$ParenToken(type_0, tok, paren){ - RegEx$Token.call(this, type_0); - this.child = tok; - this.parennumber = paren; -} - -defineClass(822, 117, $intern_166, RegEx$Token$ParenToken); -_.getChild = function getChild_4(index_0){ - return this.child; -} -; -_.size_2 = function size_86(){ - return 1; -} -; -_.toString_1 = function toString_170(options){ - var ret; - ret = null; - switch (this.type_0) { - case 6: - this.parennumber == 0?(ret = '(?:' + this.child.toString_1(options) + ')'):(ret = '(' + this.child.toString_1(options) + ')'); - break; - case 20: - ret = '(?=' + this.child.toString_1(options) + ')'; - break; - case 21: - ret = '(?!' + this.child.toString_1(options) + ')'; - break; - case 22: - ret = '(?<=' + this.child.toString_1(options) + ')'; - break; - case 23: - ret = '(?' + this.child.toString_1(options) + ')'; - } - return ret; -} -; -_.parennumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ParenToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ParenToken', 822); -function RegEx$Token$StringToken(type_0, str, n){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.string = str; - this.refNumber = n; -} - -defineClass(521, 117, {3:1, 117:1, 521:1}, RegEx$Token$StringToken); -_.getString = function getString_0(){ - return this.string; -} -; -_.toString_1 = function toString_171(options){ - return this.type_0 == 12?'\\' + this.refNumber:quoteMeta(this.string); -} -; -_.refNumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$StringToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/StringToken', 521); -function $addChild_0(this$static, tok){ - var buffer, ch_0, i, nextMaxLength, previous, size_0; - if (!tok) - return; - !this$static.children && (this$static.children = new Vector); - if (this$static.type_0 == 2) { - $addElement(this$static.children, tok); - return; - } - if (tok.type_0 == 1) { - for (i = 0; i < tok.size_2(); i++) - $addChild_0(this$static, tok.getChild(i)); - return; - } - size_0 = this$static.children.arrayList.array.length; - if (size_0 == 0) { - $addElement(this$static.children, tok); - return; - } - previous = castTo($elementAt(this$static.children, size_0 - 1), 117); - if (!((previous.type_0 == 0 || previous.type_0 == 10) && (tok.type_0 == 0 || tok.type_0 == 10))) { - $addElement(this$static.children, tok); - return; - } - nextMaxLength = tok.type_0 == 0?2:tok.getString().length; - if (previous.type_0 == 0) { - buffer = new StringBuffer_0; - ch_0 = previous.getChar(); - ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); - previous = (++tokens_0 , new RegEx$Token$StringToken(10, null, 0)); - $setElementAt(this$static.children, previous, size_0 - 1); - } - else { - buffer = (previous.getString().length + nextMaxLength , new StringBuffer_0); - $append_3(buffer, previous.getString()); - } - if (tok.type_0 == 0) { - ch_0 = tok.getChar(); - ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); - } - else { - $append_3(buffer, tok.getString()); - } - castTo(previous, 521).string = buffer.string; -} - -function RegEx$Token$UnionToken(type_0){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); -} - -defineClass(465, 117, $intern_166, RegEx$Token$UnionToken); -_.addChild = function addChild_0(tok){ - $addChild_0(this, tok); -} -; -_.getChild = function getChild_5(index_0){ - return castTo($elementAt(this.children, index_0), 117); -} -; -_.size_2 = function size_87(){ - return !this.children?0:this.children.arrayList.array.length; -} -; -_.toString_1 = function toString_172(options){ - var ch_0, ch2, i, ret, sb; - if (this.type_0 == 1) { - if (this.children.arrayList.array.length == 2) { - ch_0 = castTo($elementAt(this.children, 0), 117); - ch2 = castTo($elementAt(this.children, 1), 117); - ch2.type_0 == 3 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+'):ch2.type_0 == 9 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+?'):(ret = ch_0.toString_1(options) + ('' + ch2.toString_1(options))); - } - else { - sb = new StringBuffer; - for (i = 0; i < this.children.arrayList.array.length; i++) { - $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); - } - ret = sb.string; - } - return ret; - } - if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 1), 117).type_0 == 7) { - ret = castTo($elementAt(this.children, 0), 117).toString_1(options) + '?'; - } - else if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 0), 117).type_0 == 7) { - ret = castTo($elementAt(this.children, 1), 117).toString_1(options) + '??'; - } - else { - sb = new StringBuffer; - $append_3(sb, castTo($elementAt(this.children, 0), 117).toString_1(options)); - for (i = 1; i < this.children.arrayList.array.length; i++) { - sb.string += '|'; - $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); - } - ret = sb.string; - } - return ret; -} -; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$UnionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/UnionToken', 465); -function normalize(value_0, collapse){ - var buffer, c, i, length_0, offset, skipSpace, valueArray; - if (value_0 == null) { - return null; - } - length_0 = value_0.length; - if (length_0 == 0) { - return ''; - } - valueArray = initUnidimensionalArray(C_classLit, $intern_44, 25, length_0, 15, 1); - checkCriticalStringBounds(0, length_0, value_0.length); - checkCriticalStringBounds(0, length_0, valueArray.length); - $getChars0(value_0, 0, length_0, valueArray, 0); - buffer = null; - skipSpace = collapse; - for (i = 0 , offset = 0; i < length_0; i++) { - c = valueArray[i]; - $clinit_DataValue$XMLChar(); - if (c <= 32 && (CHARS[c] & 2) != 0) { - if (skipSpace) { - !buffer && (buffer = new StringBuffer_1(value_0)); - $deleteCharAt(buffer, i - offset++); - } - else { - skipSpace = collapse; - if (c != 32) { - !buffer && (buffer = new StringBuffer_1(value_0)); - $replace0(buffer, i - offset, i - offset + 1, String.fromCharCode(32)); - } - } - } - else { - skipSpace = false; - } - } - if (skipSpace) { - if (!buffer) { - return value_0.substr(0, length_0 - 1); - } - else { - length_0 = buffer.string.length; - return length_0 > 0?$substring_1(buffer.string, 0, length_0 - 1):''; - } - } - else { - return !buffer?value_0:buffer.string; - } -} - -function XMLTypeUtil$PatternMatcherImpl(pattern){ - this.regularExpression = new RegEx$RegularExpression(pattern); -} - -defineClass(518, 1, {592:1}, XMLTypeUtil$PatternMatcherImpl); -_.toString_0 = function toString_173(){ - return this.regularExpression.regex; -} -; -var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeUtil$PatternMatcherImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeUtil/PatternMatcherImpl', 518); -function $clinit_XMLTypeValidator(){ - $clinit_XMLTypeValidator = emptyMethod; - $clinit_EObjectValidator(); - INSTANCE_12 = new XMLTypeValidator; - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*')])]); - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[\\i-[:]][\\c-[:]]*')]), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); - new BigInteger_4('-1'); - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\c+')])]); - new BigInteger_4('0'); - new BigInteger_4('0'); - new BigInteger_4('1'); - new BigInteger_4('0'); - new BigInteger_4('18446744073709551615'); -} - -function XMLTypeValidator(){ -} - -defineClass(1622, 1381, {}, XMLTypeValidator); -var INSTANCE_12; -var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeValidator_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeValidator', 1622); -function $clinit_ExclusiveRange(){ - $clinit_ExclusiveRange = emptyMethod; - EMPTY_LIST_ITERATOR = new ExclusiveRange$1; -} - -function ExclusiveRange(end){ - $clinit_ExclusiveRange(); - this.first = 0; - this.last = end - 1; - this.step = 1; -} - -defineClass(264, 1, $intern_23, ExclusiveRange); -_.forEach_0 = function forEach_41(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_91(){ - return (this.last - this.first) * this.step < 0?EMPTY_LIST_ITERATOR:new ExclusiveRange$RangeIterator(this); -} -; -_.first = 0; -_.last = 0; -_.step = 0; -var EMPTY_LIST_ITERATOR; -var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange', 264); -function $add_35(){ - throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); -} - -function $next_18(){ - throw toJs(new NoSuchElementException); -} - -function $previous_1(){ - throw toJs(new NoSuchElementException); -} - -function $set_20(){ - throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); -} - -function ExclusiveRange$1(){ -} - -defineClass(1068, 1, $intern_14, ExclusiveRange$1); -_.add_1 = function add_73(e){ - castTo(e, 19); - $add_35(); -} -; -_.forEachRemaining = function forEachRemaining_61(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_51(){ - return $next_18(); -} -; -_.previous_0 = function previous_12(){ - return $previous_1(); -} -; -_.set_1 = function set_45(e){ - castTo(e, 19); - $set_20(); -} -; -_.hasNext_0 = function hasNext_52(){ - return false; -} -; -_.hasPrevious = function hasPrevious_12(){ - return false; -} -; -_.nextIndex_0 = function nextIndex_12(){ - return -1; -} -; -_.previousIndex = function previousIndex_11(){ - return -1; -} -; -_.remove = function remove_132(){ - throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); -} -; -var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$1_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/1', 1068); -function $add_36(){ - throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); -} - -function $next_19(this$static){ - var value_0; - if (!(this$static.this$01.step < 0?this$static.next_0 >= this$static.this$01.last:this$static.next_0 <= this$static.this$01.last)) { - throw toJs(new NoSuchElementException); - } - value_0 = this$static.next_0; - this$static.next_0 += this$static.this$01.step; - ++this$static.nextIndex; - return valueOf_4(value_0); -} - -function $previous_2(this$static){ - if (this$static.nextIndex <= 0) - throw toJs(new NoSuchElementException); - --this$static.nextIndex; - this$static.next_0 -= this$static.this$01.step; - return valueOf_4(this$static.next_0); -} - -function $set_21(){ - throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); -} - -function ExclusiveRange$RangeIterator(this$0){ - this.this$01 = this$0; - this.next_0 = this.this$01.first; -} - -defineClass(254, 1, $intern_14, ExclusiveRange$RangeIterator); -_.add_1 = function add_74(e){ - castTo(e, 19); - $add_36(); -} -; -_.forEachRemaining = function forEachRemaining_62(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_52(){ - return $next_19(this); -} -; -_.previous_0 = function previous_13(){ - return $previous_2(this); -} -; -_.set_1 = function set_46(e){ - castTo(e, 19); - $set_21(); -} -; -_.hasNext_0 = function hasNext_53(){ - return this.this$01.step < 0?this.next_0 >= this.this$01.last:this.next_0 <= this.this$01.last; -} -; -_.hasPrevious = function hasPrevious_13(){ - return this.nextIndex > 0; -} -; -_.nextIndex_0 = function nextIndex_13(){ - return this.nextIndex; -} -; -_.previousIndex = function previousIndex_12(){ - return this.nextIndex - 1; -} -; -_.remove = function remove_133(){ - throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); -} -; -_.next_0 = 0; -_.nextIndex = 0; -var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$RangeIterator_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/RangeIterator', 254); -function forEach_42(iterable, procedure){ - forEach_44(new AbstractEList$EIterator(iterable), procedure); -} - -function isEmpty_35(iterable){ - if (iterable) - return iterable.isEmpty(); - return !iterable.iterator_0().hasNext_0(); -} - -function isNullOrEmpty(iterable){ - return !iterable || isEmpty_35(iterable); -} - -function forEach_43(iterator, procedure){ - while (iterator.data_0 == null && !iterator.includeRoot?$hasAnyChildren(iterator):iterator.data_0 == null || iterator.size_0 != 0 && castTo(iterator.data_0[iterator.size_0 - 1], 47).hasNext_0()) { - $apply_28(procedure, $next_14(iterator)); - } -} - -function forEach_44(iterator, procedure){ - var i; - i = 0; - while (iterator.cursor != iterator.this$01_2.size_1()) { - $apply_29(procedure, $doNext(iterator), valueOf_4(i)); - i != $intern_0 && ++i; - } -} - -var C_classLit = createForPrimitive('char', 'C'); -var I_classLit = createForPrimitive('int', 'I'); -var Z_classLit = createForPrimitive('boolean', 'Z'); -var J_classLit = createForPrimitive('long', 'J'); -var B_classLit = createForPrimitive('byte', 'B'); -var D_classLit = createForPrimitive('double', 'D'); -var F_classLit = createForPrimitive('float', 'F'); -var S_classLit = createForPrimitive('short', 'S'); -var Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit = createForInterface('org.eclipse.elk.core.labels', 'ILabelManager'); -var Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit = createForInterface('org.eclipse.emf.common.util', 'DiagnosticChain'); -var Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'ResourceSet'); -var Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit = createForClass('org.eclipse.emf.common.util', 'InvocationTargetException', null); -var $entry = ($clinit_Impl() , entry_2); -var gwtOnLoad = gwtOnLoad = gwtOnLoad_0; -addInitFunctions(init); -setGwtProperty('permProps', [[['locale', 'default'], ['user.agent', 'gecko1_8']], [['locale', 'default'], ['user.agent', 'ie10']], [['locale', 'default'], ['user.agent', 'ie8']], [['locale', 'default'], ['user.agent', 'ie9']], [['locale', 'default'], ['user.agent', 'safari']]]); - -// -------------- RUN GWT INITIALIZATION CODE -------------- -gwtOnLoad(null, 'elk', null); diff --git a/gen/local/elkjs/lib/elk-worker.min.js b/gen/local/elkjs/lib/elk-worker.min.js deleted file mode 100644 index 10b98052..00000000 --- a/gen/local/elkjs/lib/elk-worker.min.js +++ /dev/null @@ -1,6149 +0,0 @@ -'use strict'; - -// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- -var $wnd; -if (typeof window !== 'undefined') - $wnd = window -else if (typeof global !== 'undefined') - $wnd = global // nodejs -else if (typeof self !== 'undefined') - $wnd = self // web worker - -var $moduleName, - $moduleBase; - -// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- -var g, i, o; - -// -------------- GENERATED CODE -------------- -function nb(){} -function xb(){} -function Fd(){} -function $g(){} -function _p(){} -function yq(){} -function Sq(){} -function Es(){} -function Jw(){} -function Vw(){} -function VA(){} -function dA(){} -function MA(){} -function PA(){} -function PB(){} -function bx(){} -function cx(){} -function vy(){} -function Nz(){} -function Yz(){} -function Ylb(){} -function Ymb(){} -function xmb(){} -function Fmb(){} -function Qmb(){} -function gcb(){} -function ccb(){} -function jcb(){} -function jtb(){} -function otb(){} -function qtb(){} -function _fb(){} -function bpb(){} -function kpb(){} -function ppb(){} -function Gpb(){} -function drb(){} -function dzb(){} -function fzb(){} -function fxb(){} -function Vxb(){} -function Ovb(){} -function byb(){} -function zyb(){} -function Zyb(){} -function _yb(){} -function hzb(){} -function jzb(){} -function lzb(){} -function nzb(){} -function rzb(){} -function zzb(){} -function Czb(){} -function Ezb(){} -function Gzb(){} -function Izb(){} -function Mzb(){} -function bBb(){} -function NBb(){} -function PBb(){} -function RBb(){} -function iCb(){} -function OCb(){} -function SCb(){} -function GDb(){} -function JDb(){} -function fEb(){} -function xEb(){} -function CEb(){} -function GEb(){} -function yFb(){} -function KGb(){} -function tIb(){} -function vIb(){} -function xIb(){} -function zIb(){} -function OIb(){} -function SIb(){} -function TJb(){} -function VJb(){} -function XJb(){} -function XKb(){} -function fKb(){} -function VKb(){} -function VLb(){} -function jLb(){} -function nLb(){} -function GLb(){} -function KLb(){} -function MLb(){} -function OLb(){} -function RLb(){} -function YLb(){} -function bMb(){} -function gMb(){} -function lMb(){} -function pMb(){} -function wMb(){} -function zMb(){} -function CMb(){} -function FMb(){} -function LMb(){} -function zNb(){} -function PNb(){} -function kOb(){} -function pOb(){} -function tOb(){} -function yOb(){} -function FOb(){} -function GPb(){} -function aQb(){} -function cQb(){} -function eQb(){} -function gQb(){} -function iQb(){} -function CQb(){} -function MQb(){} -function OQb(){} -function ASb(){} -function fTb(){} -function kTb(){} -function STb(){} -function fUb(){} -function DUb(){} -function VUb(){} -function YUb(){} -function _Ub(){} -function _Wb(){} -function QWb(){} -function XWb(){} -function jVb(){} -function DVb(){} -function VVb(){} -function $Vb(){} -function dXb(){} -function hXb(){} -function lXb(){} -function gYb(){} -function HYb(){} -function SYb(){} -function VYb(){} -function dZb(){} -function P$b(){} -function T$b(){} -function h1b(){} -function m1b(){} -function q1b(){} -function u1b(){} -function y1b(){} -function C1b(){} -function e2b(){} -function g2b(){} -function m2b(){} -function q2b(){} -function u2b(){} -function S2b(){} -function U2b(){} -function W2b(){} -function _2b(){} -function e3b(){} -function h3b(){} -function p3b(){} -function t3b(){} -function w3b(){} -function y3b(){} -function A3b(){} -function M3b(){} -function Q3b(){} -function U3b(){} -function Y3b(){} -function l4b(){} -function q4b(){} -function s4b(){} -function u4b(){} -function w4b(){} -function y4b(){} -function L4b(){} -function N4b(){} -function P4b(){} -function R4b(){} -function T4b(){} -function X4b(){} -function I5b(){} -function Q5b(){} -function T5b(){} -function Z5b(){} -function l6b(){} -function o6b(){} -function t6b(){} -function z6b(){} -function L6b(){} -function M6b(){} -function P6b(){} -function X6b(){} -function $6b(){} -function a7b(){} -function c7b(){} -function g7b(){} -function j7b(){} -function m7b(){} -function r7b(){} -function x7b(){} -function D7b(){} -function D9b(){} -function b9b(){} -function h9b(){} -function j9b(){} -function l9b(){} -function w9b(){} -function F9b(){} -function hac(){} -function jac(){} -function pac(){} -function uac(){} -function Iac(){} -function Kac(){} -function Sac(){} -function obc(){} -function rbc(){} -function vbc(){} -function Fbc(){} -function Jbc(){} -function Xbc(){} -function ccc(){} -function fcc(){} -function lcc(){} -function occ(){} -function tcc(){} -function ycc(){} -function Acc(){} -function Ccc(){} -function Ecc(){} -function Gcc(){} -function Zcc(){} -function _cc(){} -function bdc(){} -function fdc(){} -function jdc(){} -function pdc(){} -function sdc(){} -function ydc(){} -function Adc(){} -function Cdc(){} -function Edc(){} -function Idc(){} -function Ndc(){} -function Qdc(){} -function Sdc(){} -function Udc(){} -function Wdc(){} -function Ydc(){} -function aec(){} -function hec(){} -function jec(){} -function lec(){} -function nec(){} -function uec(){} -function wec(){} -function yec(){} -function Aec(){} -function Fec(){} -function Jec(){} -function Lec(){} -function Nec(){} -function Rec(){} -function Uec(){} -function Zec(){} -function Zfc(){} -function lfc(){} -function tfc(){} -function xfc(){} -function zfc(){} -function Ffc(){} -function Jfc(){} -function Nfc(){} -function Pfc(){} -function Vfc(){} -function _fc(){} -function fgc(){} -function jgc(){} -function lgc(){} -function Bgc(){} -function ehc(){} -function ghc(){} -function ihc(){} -function khc(){} -function mhc(){} -function ohc(){} -function qhc(){} -function yhc(){} -function Ahc(){} -function Ghc(){} -function Ihc(){} -function Khc(){} -function Mhc(){} -function Shc(){} -function Uhc(){} -function Whc(){} -function dic(){} -function dlc(){} -function blc(){} -function flc(){} -function hlc(){} -function jlc(){} -function Glc(){} -function Ilc(){} -function Klc(){} -function Mlc(){} -function Mjc(){} -function Qjc(){} -function Qlc(){} -function Ulc(){} -function Ylc(){} -function Lkc(){} -function Nkc(){} -function Pkc(){} -function Rkc(){} -function Xkc(){} -function _kc(){} -function gmc(){} -function kmc(){} -function zmc(){} -function Fmc(){} -function Wmc(){} -function $mc(){} -function anc(){} -function mnc(){} -function wnc(){} -function Hnc(){} -function Jnc(){} -function Lnc(){} -function Nnc(){} -function Pnc(){} -function Ync(){} -function eoc(){} -function Aoc(){} -function Coc(){} -function Eoc(){} -function Joc(){} -function Loc(){} -function Zoc(){} -function _oc(){} -function bpc(){} -function hpc(){} -function kpc(){} -function ppc(){} -function pFc(){} -function Ryc(){} -function QCc(){} -function PDc(){} -function xGc(){} -function HGc(){} -function JGc(){} -function NGc(){} -function GIc(){} -function iKc(){} -function mKc(){} -function wKc(){} -function yKc(){} -function AKc(){} -function EKc(){} -function KKc(){} -function OKc(){} -function QKc(){} -function SKc(){} -function UKc(){} -function YKc(){} -function aLc(){} -function fLc(){} -function hLc(){} -function nLc(){} -function pLc(){} -function tLc(){} -function vLc(){} -function zLc(){} -function BLc(){} -function DLc(){} -function FLc(){} -function sMc(){} -function JMc(){} -function hNc(){} -function RNc(){} -function ZNc(){} -function _Nc(){} -function bOc(){} -function dOc(){} -function fOc(){} -function hOc(){} -function hRc(){} -function jRc(){} -function KRc(){} -function NRc(){} -function NQc(){} -function LQc(){} -function _Qc(){} -function cPc(){} -function iPc(){} -function kPc(){} -function mPc(){} -function xPc(){} -function zPc(){} -function zSc(){} -function BSc(){} -function GSc(){} -function ISc(){} -function NSc(){} -function TSc(){} -function NTc(){} -function NVc(){} -function oVc(){} -function SVc(){} -function VVc(){} -function XVc(){} -function ZVc(){} -function bWc(){} -function bXc(){} -function CXc(){} -function FXc(){} -function IXc(){} -function MXc(){} -function UXc(){} -function bYc(){} -function fYc(){} -function oYc(){} -function qYc(){} -function uYc(){} -function pZc(){} -function G$c(){} -function h0c(){} -function N0c(){} -function k1c(){} -function I1c(){} -function Q1c(){} -function f2c(){} -function i2c(){} -function k2c(){} -function w2c(){} -function O2c(){} -function S2c(){} -function Z2c(){} -function v3c(){} -function x3c(){} -function R3c(){} -function U3c(){} -function e4c(){} -function w4c(){} -function x4c(){} -function z4c(){} -function B4c(){} -function D4c(){} -function F4c(){} -function H4c(){} -function J4c(){} -function L4c(){} -function N4c(){} -function P4c(){} -function R4c(){} -function T4c(){} -function V4c(){} -function X4c(){} -function Z4c(){} -function _4c(){} -function _7c(){} -function b5c(){} -function d5c(){} -function f5c(){} -function h5c(){} -function H5c(){} -function Hfd(){} -function Zfd(){} -function Zed(){} -function ged(){} -function Jed(){} -function Ned(){} -function Red(){} -function Ved(){} -function bbd(){} -function mdd(){} -function _fd(){} -function fgd(){} -function kgd(){} -function Mgd(){} -function Ahd(){} -function Ald(){} -function Tld(){} -function xkd(){} -function rmd(){} -function knd(){} -function Jod(){} -function JCd(){} -function Bpd(){} -function BFd(){} -function oFd(){} -function bqd(){} -function bvd(){} -function jvd(){} -function yud(){} -function Hxd(){} -function EBd(){} -function aDd(){} -function MGd(){} -function vHd(){} -function RHd(){} -function wNd(){} -function zNd(){} -function CNd(){} -function KNd(){} -function XNd(){} -function $Nd(){} -function HPd(){} -function lUd(){} -function XUd(){} -function DWd(){} -function GWd(){} -function JWd(){} -function MWd(){} -function PWd(){} -function SWd(){} -function VWd(){} -function YWd(){} -function _Wd(){} -function xYd(){} -function BYd(){} -function mZd(){} -function EZd(){} -function GZd(){} -function JZd(){} -function MZd(){} -function PZd(){} -function SZd(){} -function VZd(){} -function YZd(){} -function _Zd(){} -function c$d(){} -function f$d(){} -function i$d(){} -function l$d(){} -function o$d(){} -function r$d(){} -function u$d(){} -function x$d(){} -function A$d(){} -function D$d(){} -function G$d(){} -function J$d(){} -function M$d(){} -function P$d(){} -function S$d(){} -function V$d(){} -function Y$d(){} -function _$d(){} -function c_d(){} -function f_d(){} -function i_d(){} -function l_d(){} -function o_d(){} -function r_d(){} -function u_d(){} -function x_d(){} -function A_d(){} -function D_d(){} -function G_d(){} -function J_d(){} -function M_d(){} -function P_d(){} -function S_d(){} -function V_d(){} -function Y_d(){} -function h5d(){} -function U6d(){} -function U9d(){} -function _8d(){} -function fae(){} -function hae(){} -function kae(){} -function nae(){} -function qae(){} -function tae(){} -function wae(){} -function zae(){} -function Cae(){} -function Fae(){} -function Iae(){} -function Lae(){} -function Oae(){} -function Rae(){} -function Uae(){} -function Xae(){} -function $ae(){} -function bbe(){} -function ebe(){} -function hbe(){} -function kbe(){} -function nbe(){} -function qbe(){} -function tbe(){} -function wbe(){} -function zbe(){} -function Cbe(){} -function Fbe(){} -function Ibe(){} -function Lbe(){} -function Obe(){} -function Rbe(){} -function Ube(){} -function Xbe(){} -function $be(){} -function bce(){} -function ece(){} -function hce(){} -function kce(){} -function nce(){} -function qce(){} -function tce(){} -function wce(){} -function zce(){} -function Cce(){} -function Fce(){} -function Ice(){} -function Lce(){} -function Oce(){} -function Rce(){} -function Uce(){} -function Xce(){} -function ude(){} -function Vge(){} -function dhe(){} -function s_b(a){} -function jSd(a){} -function ol(){wb()} -function oPb(){nPb()} -function EPb(){CPb()} -function gFb(){fFb()} -function TRb(){SRb()} -function ySb(){wSb()} -function PSb(){OSb()} -function dTb(){bTb()} -function i4b(){b4b()} -function D2b(){x2b()} -function J6b(){D6b()} -function u9b(){q9b()} -function $9b(){I9b()} -function Umc(){Imc()} -function abc(){Vac()} -function ZCc(){VCc()} -function kCc(){hCc()} -function rCc(){oCc()} -function Tcc(){Occ()} -function xkc(){gkc()} -function xDc(){rDc()} -function iDc(){cDc()} -function kwc(){jwc()} -function tJc(){jJc()} -function dJc(){aJc()} -function Pyc(){Nyc()} -function VBc(){SBc()} -function CFc(){yFc()} -function CUc(){wUc()} -function lUc(){fUc()} -function sUc(){pUc()} -function IUc(){GUc()} -function IWc(){HWc()} -function _Wc(){ZWc()} -function fHc(){dHc()} -function f0c(){d0c()} -function B0c(){A0c()} -function L0c(){J0c()} -function LTc(){JTc()} -function sTc(){rTc()} -function KLc(){ILc()} -function wNc(){tNc()} -function PYc(){OYc()} -function nZc(){lZc()} -function q3c(){p3c()} -function Z7c(){X7c()} -function Z9c(){Y9c()} -function _ad(){Zad()} -function kdd(){idd()} -function $md(){Smd()} -function HGd(){tGd()} -function hLd(){NKd()} -function J6d(){Uge()} -function Mvb(a){uCb(a)} -function Yb(a){this.a=a} -function cc(a){this.a=a} -function cj(a){this.a=a} -function ij(a){this.a=a} -function Dj(a){this.a=a} -function df(a){this.a=a} -function kf(a){this.a=a} -function ah(a){this.a=a} -function lh(a){this.a=a} -function th(a){this.a=a} -function Ph(a){this.a=a} -function vi(a){this.a=a} -function Ci(a){this.a=a} -function Fk(a){this.a=a} -function Ln(a){this.a=a} -function ap(a){this.a=a} -function zp(a){this.a=a} -function Yp(a){this.a=a} -function qq(a){this.a=a} -function Dq(a){this.a=a} -function wr(a){this.a=a} -function Ir(a){this.b=a} -function sj(a){this.c=a} -function sw(a){this.a=a} -function fw(a){this.a=a} -function xw(a){this.a=a} -function Cw(a){this.a=a} -function Qw(a){this.a=a} -function Rw(a){this.a=a} -function Xw(a){this.a=a} -function Xv(a){this.a=a} -function Sv(a){this.a=a} -function eu(a){this.a=a} -function Zx(a){this.a=a} -function _x(a){this.a=a} -function xy(a){this.a=a} -function xB(a){this.a=a} -function HB(a){this.a=a} -function TB(a){this.a=a} -function fC(a){this.a=a} -function wB(){this.a=[]} -function MBb(a,b){a.a=b} -function w_b(a,b){a.a=b} -function x_b(a,b){a.b=b} -function YOb(a,b){a.b=b} -function $Ob(a,b){a.b=b} -function ZGb(a,b){a.j=b} -function qNb(a,b){a.g=b} -function rNb(a,b){a.i=b} -function dRb(a,b){a.c=b} -function eRb(a,b){a.d=b} -function z_b(a,b){a.d=b} -function y_b(a,b){a.c=b} -function __b(a,b){a.k=b} -function E0b(a,b){a.c=b} -function njc(a,b){a.c=b} -function mjc(a,b){a.a=b} -function dFc(a,b){a.a=b} -function eFc(a,b){a.f=b} -function nOc(a,b){a.a=b} -function oOc(a,b){a.b=b} -function pOc(a,b){a.d=b} -function qOc(a,b){a.i=b} -function rOc(a,b){a.o=b} -function sOc(a,b){a.r=b} -function $Pc(a,b){a.a=b} -function _Pc(a,b){a.b=b} -function DVc(a,b){a.e=b} -function EVc(a,b){a.f=b} -function FVc(a,b){a.g=b} -function SZc(a,b){a.e=b} -function TZc(a,b){a.f=b} -function c$c(a,b){a.f=b} -function bJd(a,b){a.n=b} -function A1d(a,b){a.a=b} -function J1d(a,b){a.a=b} -function B1d(a,b){a.c=b} -function K1d(a,b){a.c=b} -function L1d(a,b){a.d=b} -function M1d(a,b){a.e=b} -function N1d(a,b){a.g=b} -function d2d(a,b){a.a=b} -function e2d(a,b){a.c=b} -function f2d(a,b){a.d=b} -function g2d(a,b){a.e=b} -function h2d(a,b){a.f=b} -function i2d(a,b){a.j=b} -function Z8d(a,b){a.a=b} -function $8d(a,b){a.b=b} -function g9d(a,b){a.a=b} -function Cic(a){a.b=a.a} -function Dg(a){a.c=a.d.d} -function vib(a){this.d=a} -function eib(a){this.a=a} -function Pib(a){this.a=a} -function Vib(a){this.a=a} -function $ib(a){this.a=a} -function mcb(a){this.a=a} -function Mcb(a){this.a=a} -function Xcb(a){this.a=a} -function Ndb(a){this.a=a} -function _db(a){this.a=a} -function teb(a){this.a=a} -function Qeb(a){this.a=a} -function djb(a){this.a=a} -function Gjb(a){this.a=a} -function Njb(a){this.a=a} -function Bjb(a){this.b=a} -function lnb(a){this.b=a} -function Dnb(a){this.b=a} -function anb(a){this.a=a} -function Mob(a){this.a=a} -function Rob(a){this.a=a} -function iob(a){this.c=a} -function olb(a){this.c=a} -function qub(a){this.c=a} -function Tub(a){this.a=a} -function Vub(a){this.a=a} -function Xub(a){this.a=a} -function Zub(a){this.a=a} -function tpb(a){this.a=a} -function _pb(a){this.a=a} -function Wqb(a){this.a=a} -function nsb(a){this.a=a} -function Rxb(a){this.a=a} -function Txb(a){this.a=a} -function Xxb(a){this.a=a} -function bzb(a){this.a=a} -function tzb(a){this.a=a} -function vzb(a){this.a=a} -function xzb(a){this.a=a} -function Kzb(a){this.a=a} -function Ozb(a){this.a=a} -function iAb(a){this.a=a} -function kAb(a){this.a=a} -function mAb(a){this.a=a} -function BAb(a){this.a=a} -function hBb(a){this.a=a} -function jBb(a){this.a=a} -function nBb(a){this.a=a} -function TBb(a){this.a=a} -function XBb(a){this.a=a} -function QCb(a){this.a=a} -function WCb(a){this.a=a} -function _Cb(a){this.a=a} -function dEb(a){this.a=a} -function QGb(a){this.a=a} -function YGb(a){this.a=a} -function tKb(a){this.a=a} -function CLb(a){this.a=a} -function JMb(a){this.a=a} -function RNb(a){this.a=a} -function kQb(a){this.a=a} -function mQb(a){this.a=a} -function FQb(a){this.a=a} -function ETb(a){this.a=a} -function UTb(a){this.a=a} -function dUb(a){this.a=a} -function hUb(a){this.a=a} -function EZb(a){this.a=a} -function j$b(a){this.a=a} -function v$b(a){this.e=a} -function J0b(a){this.a=a} -function M0b(a){this.a=a} -function R0b(a){this.a=a} -function U0b(a){this.a=a} -function i2b(a){this.a=a} -function k2b(a){this.a=a} -function o2b(a){this.a=a} -function s2b(a){this.a=a} -function G2b(a){this.a=a} -function I2b(a){this.a=a} -function K2b(a){this.a=a} -function M2b(a){this.a=a} -function W3b(a){this.a=a} -function $3b(a){this.a=a} -function V4b(a){this.a=a} -function u5b(a){this.a=a} -function A7b(a){this.a=a} -function G7b(a){this.a=a} -function J7b(a){this.a=a} -function M7b(a){this.a=a} -function Mbc(a){this.a=a} -function Pbc(a){this.a=a} -function lac(a){this.a=a} -function nac(a){this.a=a} -function qcc(a){this.a=a} -function Gdc(a){this.a=a} -function $dc(a){this.a=a} -function cec(a){this.a=a} -function _ec(a){this.a=a} -function pfc(a){this.a=a} -function Bfc(a){this.a=a} -function Lfc(a){this.a=a} -function ygc(a){this.a=a} -function Dgc(a){this.a=a} -function shc(a){this.a=a} -function uhc(a){this.a=a} -function whc(a){this.a=a} -function Chc(a){this.a=a} -function Ehc(a){this.a=a} -function Ohc(a){this.a=a} -function Yhc(a){this.a=a} -function Tkc(a){this.a=a} -function Vkc(a){this.a=a} -function Olc(a){this.a=a} -function pnc(a){this.a=a} -function rnc(a){this.a=a} -function dpc(a){this.a=a} -function fpc(a){this.a=a} -function GCc(a){this.a=a} -function KCc(a){this.a=a} -function mDc(a){this.a=a} -function jEc(a){this.a=a} -function HEc(a){this.a=a} -function FEc(a){this.c=a} -function qoc(a){this.b=a} -function bFc(a){this.a=a} -function GFc(a){this.a=a} -function iGc(a){this.a=a} -function kGc(a){this.a=a} -function mGc(a){this.a=a} -function $Gc(a){this.a=a} -function hIc(a){this.a=a} -function lIc(a){this.a=a} -function pIc(a){this.a=a} -function tIc(a){this.a=a} -function xIc(a){this.a=a} -function zIc(a){this.a=a} -function CIc(a){this.a=a} -function LIc(a){this.a=a} -function CKc(a){this.a=a} -function IKc(a){this.a=a} -function MKc(a){this.a=a} -function $Kc(a){this.a=a} -function cLc(a){this.a=a} -function jLc(a){this.a=a} -function rLc(a){this.a=a} -function xLc(a){this.a=a} -function OMc(a){this.a=a} -function ZOc(a){this.a=a} -function ZRc(a){this.a=a} -function aSc(a){this.a=a} -function I$c(a){this.a=a} -function K$c(a){this.a=a} -function M$c(a){this.a=a} -function O$c(a){this.a=a} -function U$c(a){this.a=a} -function n1c(a){this.a=a} -function z1c(a){this.a=a} -function B1c(a){this.a=a} -function Q2c(a){this.a=a} -function U2c(a){this.a=a} -function z3c(a){this.a=a} -function med(a){this.a=a} -function Xed(a){this.a=a} -function _ed(a){this.a=a} -function Qfd(a){this.a=a} -function Bgd(a){this.a=a} -function $gd(a){this.a=a} -function lrd(a){this.a=a} -function urd(a){this.a=a} -function vrd(a){this.a=a} -function wrd(a){this.a=a} -function xrd(a){this.a=a} -function yrd(a){this.a=a} -function zrd(a){this.a=a} -function Ard(a){this.a=a} -function Brd(a){this.a=a} -function Crd(a){this.a=a} -function Ird(a){this.a=a} -function Krd(a){this.a=a} -function Lrd(a){this.a=a} -function Mrd(a){this.a=a} -function Nrd(a){this.a=a} -function Prd(a){this.a=a} -function Srd(a){this.a=a} -function Yrd(a){this.a=a} -function Zrd(a){this.a=a} -function _rd(a){this.a=a} -function asd(a){this.a=a} -function bsd(a){this.a=a} -function csd(a){this.a=a} -function dsd(a){this.a=a} -function msd(a){this.a=a} -function osd(a){this.a=a} -function qsd(a){this.a=a} -function ssd(a){this.a=a} -function Wsd(a){this.a=a} -function Lsd(a){this.b=a} -function thd(a){this.f=a} -function qtd(a){this.a=a} -function yBd(a){this.a=a} -function GBd(a){this.a=a} -function MBd(a){this.a=a} -function SBd(a){this.a=a} -function iCd(a){this.a=a} -function YMd(a){this.a=a} -function GNd(a){this.a=a} -function EPd(a){this.a=a} -function EQd(a){this.a=a} -function NTd(a){this.a=a} -function qOd(a){this.b=a} -function lVd(a){this.c=a} -function VVd(a){this.e=a} -function iYd(a){this.a=a} -function RYd(a){this.a=a} -function ZYd(a){this.a=a} -function z0d(a){this.a=a} -function O0d(a){this.a=a} -function s0d(a){this.d=a} -function W5d(a){this.a=a} -function cge(a){this.a=a} -function xfe(a){this.e=a} -function Tfd(){this.a=0} -function jkb(){Vjb(this)} -function Rkb(){Ckb(this)} -function Lqb(){Uhb(this)} -function lEb(){kEb(this)} -function A_b(){s_b(this)} -function UQd(){this.c=FQd} -function v6d(a,b){b.Wb(a)} -function moc(a,b){a.b+=b} -function yXb(a){a.b=new Ji} -function vbb(a){return a.e} -function DB(a){return a.a} -function LB(a){return a.a} -function ZB(a){return a.a} -function lC(a){return a.a} -function EC(a){return a.a} -function wC(){return null} -function SB(){return null} -function hcb(){mvd();ovd()} -function zJb(a){a.b.tf(a.e)} -function j5b(a,b){a.b=b-a.b} -function g5b(a,b){a.a=b-a.a} -function PXc(a,b){b.ad(a.a)} -function plc(a,b){G0b(b,a)} -function hp(a,b,c){a.Od(c,b)} -function As(a,b){a.e=b;b.b=a} -function Zl(a){Ql();this.a=a} -function jq(a){Ql();this.a=a} -function sq(a){Ql();this.a=a} -function Fq(a){im();this.a=a} -function Sz(a){Rz();Qz.be(a)} -function gz(){Xy.call(this)} -function xcb(){Xy.call(this)} -function pcb(){gz.call(this)} -function tcb(){gz.call(this)} -function Bdb(){gz.call(this)} -function Vdb(){gz.call(this)} -function Ydb(){gz.call(this)} -function Geb(){gz.call(this)} -function bgb(){gz.call(this)} -function Apb(){gz.call(this)} -function Jpb(){gz.call(this)} -function utb(){gz.call(this)} -function x2c(){gz.call(this)} -function rQd(){this.a=this} -function MPd(){this.Bb|=256} -function tTb(){this.b=new mt} -function fA(){fA=ccb;new Lqb} -function rcb(){pcb.call(this)} -function dCb(a,b){a.length=b} -function Tvb(a,b){Ekb(a.a,b)} -function sKb(a,b){UHb(a.c,b)} -function SMc(a,b){Qqb(a.b,b)} -function vBd(a,b){uAd(a.a,b)} -function wBd(a,b){vAd(a.a,b)} -function GLd(a,b){Uhd(a.e,b)} -function d7d(a){D2d(a.c,a.b)} -function mj(a,b){a.kc().Nb(b)} -function Odb(a){this.a=Tdb(a)} -function Tqb(){this.a=new Lqb} -function gyb(){this.a=new Lqb} -function Wvb(){this.a=new Rkb} -function KFb(){this.a=new Rkb} -function PFb(){this.a=new Rkb} -function FFb(){this.a=new yFb} -function pGb(){this.a=new MFb} -function ZQb(){this.a=new MQb} -function Gxb(){this.a=new Pwb} -function jUb(){this.a=new PTb} -function sDb(){this.a=new oDb} -function zDb(){this.a=new tDb} -function CWb(){this.a=new Rkb} -function HXb(){this.a=new Rkb} -function nYb(){this.a=new Rkb} -function BYb(){this.a=new Rkb} -function fLb(){this.d=new Rkb} -function vYb(){this.a=new Tqb} -function a2b(){this.a=new Lqb} -function wZb(){this.b=new Lqb} -function TCc(){this.b=new Rkb} -function zJc(){this.e=new Rkb} -function uMc(){this.d=new Rkb} -function wdc(){this.a=new xkc} -function vKc(){Rkb.call(this)} -function twb(){Wvb.call(this)} -function oHb(){$Gb.call(this)} -function LXb(){HXb.call(this)} -function L_b(){H_b.call(this)} -function H_b(){A_b.call(this)} -function p0b(){A_b.call(this)} -function s0b(){p0b.call(this)} -function WMc(){VMc.call(this)} -function bNc(){VMc.call(this)} -function EPc(){CPc.call(this)} -function JPc(){CPc.call(this)} -function OPc(){CPc.call(this)} -function w1c(){s1c.call(this)} -function s7c(){Psb.call(this)} -function apd(){Ald.call(this)} -function ppd(){Ald.call(this)} -function lDd(){YCd.call(this)} -function NDd(){YCd.call(this)} -function mFd(){Lqb.call(this)} -function vFd(){Lqb.call(this)} -function GFd(){Lqb.call(this)} -function KPd(){Tqb.call(this)} -function OJd(){hJd.call(this)} -function aQd(){MPd.call(this)} -function SSd(){FId.call(this)} -function rUd(){FId.call(this)} -function oUd(){Lqb.call(this)} -function NYd(){Lqb.call(this)} -function cZd(){Lqb.call(this)} -function R8d(){MGd.call(this)} -function o9d(){MGd.call(this)} -function i9d(){R8d.call(this)} -function hee(){ude.call(this)} -function Dd(a){yd.call(this,a)} -function Hd(a){yd.call(this,a)} -function ph(a){lh.call(this,a)} -function Sh(a){Wc.call(this,a)} -function oi(a){Sh.call(this,a)} -function Ii(a){Wc.call(this,a)} -function Zdd(){this.a=new Psb} -function CPc(){this.a=new Tqb} -function s1c(){this.a=new Lqb} -function QSc(){this.a=new Rkb} -function D2c(){this.j=new Rkb} -function QXc(){this.a=new UXc} -function e_c(){this.a=new d_c} -function YCd(){this.a=new aDd} -function _k(){_k=ccb;$k=new al} -function Lk(){Lk=ccb;Kk=new Mk} -function wb(){wb=ccb;vb=new xb} -function hs(){hs=ccb;gs=new is} -function rs(a){Sh.call(this,a)} -function Gp(a){Sh.call(this,a)} -function xp(a){Lo.call(this,a)} -function Ep(a){Lo.call(this,a)} -function Tp(a){Wn.call(this,a)} -function wx(a){un.call(this,a)} -function ov(a){dv.call(this,a)} -function Mv(a){Br.call(this,a)} -function Ov(a){Br.call(this,a)} -function Lw(a){Br.call(this,a)} -function hz(a){Yy.call(this,a)} -function MB(a){hz.call(this,a)} -function eC(){fC.call(this,{})} -function Ftb(a){Atb();this.a=a} -function zwb(a){a.b=null;a.c=0} -function Vy(a,b){a.e=b;Sy(a,b)} -function LVb(a,b){a.a=b;NVb(a)} -function lIb(a,b,c){a.a[b.g]=c} -function vfd(a,b,c){Dfd(c,a,b)} -function Odc(a,b){rjc(b.i,a.n)} -function Wyc(a,b){Xyc(a).td(b)} -function ERb(a,b){return a*a/b} -function Xr(a,b){return a.g-b.g} -function tC(a){return new TB(a)} -function vC(a){return new yC(a)} -function ocb(a){hz.call(this,a)} -function qcb(a){hz.call(this,a)} -function ucb(a){hz.call(this,a)} -function vcb(a){Yy.call(this,a)} -function fGc(a){LFc();this.a=a} -function c0d(a){kzd();this.a=a} -function bhd(a){Rgd();this.f=a} -function dhd(a){Rgd();this.f=a} -function Cdb(a){hz.call(this,a)} -function Wdb(a){hz.call(this,a)} -function Zdb(a){hz.call(this,a)} -function Feb(a){hz.call(this,a)} -function Heb(a){hz.call(this,a)} -function Ccb(a){return uCb(a),a} -function Edb(a){return uCb(a),a} -function Gdb(a){return uCb(a),a} -function jfb(a){return uCb(a),a} -function tfb(a){return uCb(a),a} -function akb(a){return a.b==a.c} -function Hwb(a){return !!a&&a.b} -function pIb(a){return !!a&&a.k} -function qIb(a){return !!a&&a.j} -function amb(a){uCb(a);this.a=a} -function wVb(a){qVb(a);return a} -function Blb(a){Glb(a,a.length)} -function cgb(a){hz.call(this,a)} -function cqd(a){hz.call(this,a)} -function n8d(a){hz.call(this,a)} -function y2c(a){hz.call(this,a)} -function z2c(a){hz.call(this,a)} -function mde(a){hz.call(this,a)} -function pc(a){qc.call(this,a,0)} -function Ji(){Ki.call(this,12,3)} -function Kz(){Kz=ccb;Jz=new Nz} -function jz(){jz=ccb;iz=new nb} -function KA(){KA=ccb;JA=new MA} -function OB(){OB=ccb;NB=new PB} -function jc(){throw vbb(new bgb)} -function zh(){throw vbb(new bgb)} -function Pi(){throw vbb(new bgb)} -function Pj(){throw vbb(new bgb)} -function Qj(){throw vbb(new bgb)} -function Ym(){throw vbb(new bgb)} -function Gb(){this.a=GD(Qb(She))} -function oy(a){Ql();this.a=Qb(a)} -function Bs(a,b){a.Td(b);b.Sd(a)} -function iw(a,b){a.a.ec().Mc(b)} -function CYb(a,b,c){a.c.lf(b,c)} -function scb(a){qcb.call(this,a)} -function Oeb(a){Wdb.call(this,a)} -function Hfb(){mcb.call(this,'')} -function Ifb(){mcb.call(this,'')} -function Ufb(){mcb.call(this,'')} -function Vfb(){mcb.call(this,'')} -function Xfb(a){qcb.call(this,a)} -function zob(a){lnb.call(this,a)} -function Yob(a){Inb.call(this,a)} -function Gob(a){zob.call(this,a)} -function Mk(){Fk.call(this,null)} -function al(){Fk.call(this,null)} -function Az(){Az=ccb;!!(Rz(),Qz)} -function wrb(){wrb=ccb;vrb=yrb()} -function Mtb(a){return a.a?a.b:0} -function Vtb(a){return a.a?a.b:0} -function Lcb(a,b){return a.a-b.a} -function Wcb(a,b){return a.a-b.a} -function Peb(a,b){return a.a-b.a} -function eCb(a,b){return PC(a,b)} -function GC(a,b){return rdb(a,b)} -function _B(b,a){return a in b.a} -function _Db(a,b){a.f=b;return a} -function ZDb(a,b){a.b=b;return a} -function $Db(a,b){a.c=b;return a} -function aEb(a,b){a.g=b;return a} -function HGb(a,b){a.a=b;return a} -function IGb(a,b){a.f=b;return a} -function JGb(a,b){a.k=b;return a} -function dLb(a,b){a.a=b;return a} -function eLb(a,b){a.e=b;return a} -function zVb(a,b){a.e=b;return a} -function AVb(a,b){a.f=b;return a} -function KOb(a,b){a.b=true;a.d=b} -function DHb(a,b){a.b=new g7c(b)} -function uvb(a,b,c){b.td(a.a[c])} -function zvb(a,b,c){b.we(a.a[c])} -function wJc(a,b){return a.b-b.b} -function kOc(a,b){return a.g-b.g} -function WQc(a,b){return a.s-b.s} -function Lic(a,b){return a?0:b-1} -function SFc(a,b){return a?0:b-1} -function RFc(a,b){return a?b-1:0} -function M2c(a,b){return b.Yf(a)} -function M3c(a,b){a.b=b;return a} -function L3c(a,b){a.a=b;return a} -function N3c(a,b){a.c=b;return a} -function O3c(a,b){a.d=b;return a} -function P3c(a,b){a.e=b;return a} -function Q3c(a,b){a.f=b;return a} -function b4c(a,b){a.a=b;return a} -function c4c(a,b){a.b=b;return a} -function d4c(a,b){a.c=b;return a} -function z5c(a,b){a.c=b;return a} -function y5c(a,b){a.b=b;return a} -function A5c(a,b){a.d=b;return a} -function B5c(a,b){a.e=b;return a} -function C5c(a,b){a.f=b;return a} -function D5c(a,b){a.g=b;return a} -function E5c(a,b){a.a=b;return a} -function F5c(a,b){a.i=b;return a} -function G5c(a,b){a.j=b;return a} -function Vdd(a,b){a.k=b;return a} -function Wdd(a,b){a.j=b;return a} -function ykc(a,b){gkc();F0b(b,a)} -function T$c(a,b,c){R$c(a.a,b,c)} -function RGc(a){cEc.call(this,a)} -function iHc(a){cEc.call(this,a)} -function t7c(a){Qsb.call(this,a)} -function aPb(a){_Ob.call(this,a)} -function Ixd(a){zud.call(this,a)} -function dCd(a){ZBd.call(this,a)} -function fCd(a){ZBd.call(this,a)} -function p_b(){q_b.call(this,'')} -function d7c(){this.a=0;this.b=0} -function aPc(){this.b=0;this.a=0} -function NJd(a,b){a.b=0;DId(a,b)} -function X1d(a,b){a.c=b;a.b=true} -function Oc(a,b){return a.c._b(b)} -function gdb(a){return a.e&&a.e()} -function Vd(a){return !a?null:a.d} -function sn(a,b){return Gv(a.b,b)} -function Fv(a){return !a?null:a.g} -function Kv(a){return !a?null:a.i} -function hdb(a){fdb(a);return a.o} -function Fhd(){Fhd=ccb;Ehd=ond()} -function Hhd(){Hhd=ccb;Ghd=Cod()} -function LFd(){LFd=ccb;KFd=qZd()} -function p8d(){p8d=ccb;o8d=Y9d()} -function r8d(){r8d=ccb;q8d=dae()} -function mvd(){mvd=ccb;lvd=n4c()} -function Srb(){throw vbb(new bgb)} -function enb(){throw vbb(new bgb)} -function fnb(){throw vbb(new bgb)} -function gnb(){throw vbb(new bgb)} -function jnb(){throw vbb(new bgb)} -function Cnb(){throw vbb(new bgb)} -function Uqb(a){this.a=new Mqb(a)} -function tgb(a){lgb();ngb(this,a)} -function Hxb(a){this.a=new Qwb(a)} -function _ub(a,b){while(a.ye(b));} -function Sub(a,b){while(a.sd(b));} -function Bfb(a,b){a.a+=b;return a} -function Cfb(a,b){a.a+=b;return a} -function Ffb(a,b){a.a+=b;return a} -function Lfb(a,b){a.a+=b;return a} -function WAb(a){Tzb(a);return a.a} -function Wsb(a){return a.b!=a.d.c} -function pD(a){return a.l|a.m<<22} -function aIc(a,b){return a.d[b.p]} -function h2c(a,b){return c2c(a,b)} -function cCb(a,b,c){a.splice(b,c)} -function WHb(a){a.c?VHb(a):XHb(a)} -function jVc(a){this.a=0;this.b=a} -function ZUc(){this.a=new L2c(K$)} -function tRc(){this.b=new L2c(h$)} -function Q$c(){this.b=new L2c(J_)} -function d_c(){this.b=new L2c(J_)} -function OCd(){throw vbb(new bgb)} -function PCd(){throw vbb(new bgb)} -function QCd(){throw vbb(new bgb)} -function RCd(){throw vbb(new bgb)} -function SCd(){throw vbb(new bgb)} -function TCd(){throw vbb(new bgb)} -function UCd(){throw vbb(new bgb)} -function VCd(){throw vbb(new bgb)} -function WCd(){throw vbb(new bgb)} -function XCd(){throw vbb(new bgb)} -function ahe(){throw vbb(new utb)} -function bhe(){throw vbb(new utb)} -function Rge(a){this.a=new ege(a)} -function ege(a){dge(this,a,Vee())} -function Fhe(a){return !a||Ehe(a)} -function dde(a){return $ce[a]!=-1} -function Iz(){xz!=0&&(xz=0);zz=-1} -function Ybb(){Wbb==null&&(Wbb=[])} -function ONd(a,b){Rxd(ZKd(a.a),b)} -function TNd(a,b){Rxd(ZKd(a.a),b)} -function Yf(a,b){zf.call(this,a,b)} -function $f(a,b){Yf.call(this,a,b)} -function Hf(a,b){this.b=a;this.c=b} -function rk(a,b){this.b=a;this.a=b} -function ek(a,b){this.a=a;this.b=b} -function gk(a,b){this.a=a;this.b=b} -function pk(a,b){this.a=a;this.b=b} -function yk(a,b){this.a=a;this.b=b} -function Ak(a,b){this.a=a;this.b=b} -function Fj(a,b){this.a=a;this.b=b} -function _j(a,b){this.a=a;this.b=b} -function dr(a,b){this.a=a;this.b=b} -function zr(a,b){this.b=a;this.a=b} -function So(a,b){this.b=a;this.a=b} -function qp(a,b){this.b=a;this.a=b} -function $q(a,b){this.b=a;this.a=b} -function $r(a,b){this.f=a;this.g=b} -function ne(a,b){this.e=a;this.d=b} -function Wo(a,b){this.g=a;this.i=b} -function bu(a,b){this.a=a;this.b=b} -function qu(a,b){this.a=a;this.f=b} -function qv(a,b){this.b=a;this.c=b} -function ox(a,b){this.a=a;this.b=b} -function Px(a,b){this.a=a;this.b=b} -function mC(a,b){this.a=a;this.b=b} -function Wc(a){Lb(a.dc());this.c=a} -function rf(a){this.b=BD(Qb(a),83)} -function Zv(a){this.a=BD(Qb(a),83)} -function dv(a){this.a=BD(Qb(a),15)} -function $u(a){this.a=BD(Qb(a),15)} -function Br(a){this.b=BD(Qb(a),47)} -function eB(){this.q=new $wnd.Date} -function Zfb(){Zfb=ccb;Yfb=new jcb} -function Emb(){Emb=ccb;Dmb=new Fmb} -function Vhb(a){return a.f.c+a.g.c} -function hnb(a,b){return a.b.Hc(b)} -function inb(a,b){return a.b.Ic(b)} -function knb(a,b){return a.b.Qc(b)} -function Dob(a,b){return a.b.Hc(b)} -function dob(a,b){return a.c.uc(b)} -function Rqb(a,b){return a.a._b(b)} -function fob(a,b){return pb(a.c,b)} -function jt(a,b){return Mhb(a.b,b)} -function Lp(a,b){return a>b&&b0} -function Gbb(a,b){return ybb(a,b)<0} -function Crb(a,b){return a.a.get(b)} -function icb(b,a){return a.split(b)} -function Vrb(a,b){return Mhb(a.e,b)} -function Nvb(a){return uCb(a),false} -function Rub(a){Kub.call(this,a,21)} -function wcb(a,b){Zy.call(this,a,b)} -function mxb(a,b){$r.call(this,a,b)} -function Gyb(a,b){$r.call(this,a,b)} -function zx(a){yx();Wn.call(this,a)} -function zlb(a,b){Dlb(a,a.length,b)} -function Alb(a,b){Flb(a,a.length,b)} -function ABb(a,b,c){b.ud(a.a.Ge(c))} -function uBb(a,b,c){b.we(a.a.Fe(c))} -function GBb(a,b,c){b.td(a.a.Kb(c))} -function Zq(a,b,c){a.Mb(c)&&b.td(c)} -function aCb(a,b,c){a.splice(b,0,c)} -function lDb(a,b){return uqb(a.e,b)} -function pjb(a,b){this.d=a;this.e=b} -function kqb(a,b){this.b=a;this.a=b} -function VBb(a,b){this.b=a;this.a=b} -function BEb(a,b){this.b=a;this.a=b} -function sBb(a,b){this.a=a;this.b=b} -function yBb(a,b){this.a=a;this.b=b} -function EBb(a,b){this.a=a;this.b=b} -function KBb(a,b){this.a=a;this.b=b} -function aDb(a,b){this.a=a;this.b=b} -function tMb(a,b){this.b=a;this.a=b} -function oOb(a,b){this.b=a;this.a=b} -function SOb(a,b){$r.call(this,a,b)} -function SMb(a,b){$r.call(this,a,b)} -function NEb(a,b){$r.call(this,a,b)} -function VEb(a,b){$r.call(this,a,b)} -function sFb(a,b){$r.call(this,a,b)} -function hHb(a,b){$r.call(this,a,b)} -function OHb(a,b){$r.call(this,a,b)} -function FIb(a,b){$r.call(this,a,b)} -function wLb(a,b){$r.call(this,a,b)} -function YRb(a,b){$r.call(this,a,b)} -function zTb(a,b){$r.call(this,a,b)} -function rUb(a,b){$r.call(this,a,b)} -function oWb(a,b){$r.call(this,a,b)} -function SXb(a,b){$r.call(this,a,b)} -function k0b(a,b){$r.call(this,a,b)} -function z5b(a,b){$r.call(this,a,b)} -function T8b(a,b){$r.call(this,a,b)} -function ibc(a,b){$r.call(this,a,b)} -function Cec(a,b){this.a=a;this.b=b} -function rfc(a,b){this.a=a;this.b=b} -function Rfc(a,b){this.a=a;this.b=b} -function Tfc(a,b){this.a=a;this.b=b} -function bgc(a,b){this.a=a;this.b=b} -function ngc(a,b){this.a=a;this.b=b} -function Qhc(a,b){this.a=a;this.b=b} -function $hc(a,b){this.a=a;this.b=b} -function Z0b(a,b){this.a=a;this.b=b} -function ZVb(a,b){this.b=a;this.a=b} -function Dfc(a,b){this.b=a;this.a=b} -function dgc(a,b){this.b=a;this.a=b} -function Bmc(a,b){this.b=a;this.a=b} -function cWb(a,b){this.c=a;this.d=b} -function I$b(a,b){this.e=a;this.d=b} -function Unc(a,b){this.a=a;this.b=b} -function Oic(a,b){this.b=b;this.c=a} -function Bjc(a,b){$r.call(this,a,b)} -function Yjc(a,b){$r.call(this,a,b)} -function Gkc(a,b){$r.call(this,a,b)} -function Bpc(a,b){$r.call(this,a,b)} -function Jpc(a,b){$r.call(this,a,b)} -function Tpc(a,b){$r.call(this,a,b)} -function cqc(a,b){$r.call(this,a,b)} -function oqc(a,b){$r.call(this,a,b)} -function yqc(a,b){$r.call(this,a,b)} -function Hqc(a,b){$r.call(this,a,b)} -function Uqc(a,b){$r.call(this,a,b)} -function arc(a,b){$r.call(this,a,b)} -function mrc(a,b){$r.call(this,a,b)} -function zrc(a,b){$r.call(this,a,b)} -function Prc(a,b){$r.call(this,a,b)} -function Yrc(a,b){$r.call(this,a,b)} -function fsc(a,b){$r.call(this,a,b)} -function nsc(a,b){$r.call(this,a,b)} -function nzc(a,b){$r.call(this,a,b)} -function zzc(a,b){$r.call(this,a,b)} -function Kzc(a,b){$r.call(this,a,b)} -function Xzc(a,b){$r.call(this,a,b)} -function Dtc(a,b){$r.call(this,a,b)} -function lAc(a,b){$r.call(this,a,b)} -function uAc(a,b){$r.call(this,a,b)} -function CAc(a,b){$r.call(this,a,b)} -function LAc(a,b){$r.call(this,a,b)} -function UAc(a,b){$r.call(this,a,b)} -function aBc(a,b){$r.call(this,a,b)} -function uBc(a,b){$r.call(this,a,b)} -function DBc(a,b){$r.call(this,a,b)} -function MBc(a,b){$r.call(this,a,b)} -function sGc(a,b){$r.call(this,a,b)} -function VIc(a,b){$r.call(this,a,b)} -function EIc(a,b){this.b=a;this.a=b} -function qKc(a,b){this.a=a;this.b=b} -function GKc(a,b){this.a=a;this.b=b} -function lLc(a,b){this.a=a;this.b=b} -function mMc(a,b){this.a=a;this.b=b} -function fMc(a,b){$r.call(this,a,b)} -function ZLc(a,b){$r.call(this,a,b)} -function ZMc(a,b){this.b=a;this.d=b} -function IOc(a,b){$r.call(this,a,b)} -function GQc(a,b){$r.call(this,a,b)} -function PQc(a,b){this.a=a;this.b=b} -function RQc(a,b){this.a=a;this.b=b} -function ARc(a,b){$r.call(this,a,b)} -function rSc(a,b){$r.call(this,a,b)} -function TTc(a,b){$r.call(this,a,b)} -function _Tc(a,b){$r.call(this,a,b)} -function RUc(a,b){$r.call(this,a,b)} -function uVc(a,b){$r.call(this,a,b)} -function hWc(a,b){$r.call(this,a,b)} -function rWc(a,b){$r.call(this,a,b)} -function kXc(a,b){$r.call(this,a,b)} -function uXc(a,b){$r.call(this,a,b)} -function AYc(a,b){$r.call(this,a,b)} -function l$c(a,b){$r.call(this,a,b)} -function Z$c(a,b){$r.call(this,a,b)} -function D_c(a,b){$r.call(this,a,b)} -function O_c(a,b){$r.call(this,a,b)} -function c1c(a,b){$r.call(this,a,b)} -function cVb(a,b){return uqb(a.c,b)} -function nnc(a,b){return uqb(b.b,a)} -function x1c(a,b){return -a.b.Je(b)} -function D3c(a,b){return uqb(a.g,b)} -function O5c(a,b){$r.call(this,a,b)} -function a6c(a,b){$r.call(this,a,b)} -function m2c(a,b){this.a=a;this.b=b} -function W2c(a,b){this.a=a;this.b=b} -function f7c(a,b){this.a=a;this.b=b} -function G7c(a,b){$r.call(this,a,b)} -function j8c(a,b){$r.call(this,a,b)} -function iad(a,b){$r.call(this,a,b)} -function rad(a,b){$r.call(this,a,b)} -function Bad(a,b){$r.call(this,a,b)} -function Nad(a,b){$r.call(this,a,b)} -function ibd(a,b){$r.call(this,a,b)} -function tbd(a,b){$r.call(this,a,b)} -function Ibd(a,b){$r.call(this,a,b)} -function Ubd(a,b){$r.call(this,a,b)} -function gcd(a,b){$r.call(this,a,b)} -function scd(a,b){$r.call(this,a,b)} -function Ycd(a,b){$r.call(this,a,b)} -function udd(a,b){$r.call(this,a,b)} -function Jdd(a,b){$r.call(this,a,b)} -function Eed(a,b){$r.call(this,a,b)} -function bfd(a,b){this.a=a;this.b=b} -function dfd(a,b){this.a=a;this.b=b} -function ffd(a,b){this.a=a;this.b=b} -function Kfd(a,b){this.a=a;this.b=b} -function Mfd(a,b){this.a=a;this.b=b} -function Ofd(a,b){this.a=a;this.b=b} -function vgd(a,b){this.a=a;this.b=b} -function qgd(a,b){$r.call(this,a,b)} -function jrd(a,b){this.a=a;this.b=b} -function krd(a,b){this.a=a;this.b=b} -function mrd(a,b){this.a=a;this.b=b} -function nrd(a,b){this.a=a;this.b=b} -function qrd(a,b){this.a=a;this.b=b} -function rrd(a,b){this.a=a;this.b=b} -function srd(a,b){this.b=a;this.a=b} -function trd(a,b){this.b=a;this.a=b} -function Drd(a,b){this.b=a;this.a=b} -function Frd(a,b){this.b=a;this.a=b} -function Hrd(a,b){this.a=a;this.b=b} -function Jrd(a,b){this.a=a;this.b=b} -function Ord(a,b){Xqd(a.a,BD(b,56))} -function BIc(a,b){gIc(a.a,BD(b,11))} -function fIc(a,b){FHc();return b!=a} -function Arb(){wrb();return new vrb} -function CMc(){wMc();this.b=new Tqb} -function NNc(){FNc();this.a=new Tqb} -function eCc(){ZBc();aCc.call(this)} -function Dsd(a,b){$r.call(this,a,b)} -function Urd(a,b){this.a=a;this.b=b} -function Wrd(a,b){this.a=a;this.b=b} -function kGd(a,b){this.a=a;this.b=b} -function nGd(a,b){this.a=a;this.b=b} -function bUd(a,b){this.a=a;this.b=b} -function zVd(a,b){this.a=a;this.b=b} -function C1d(a,b){this.d=a;this.b=b} -function MLd(a,b){this.d=a;this.e=b} -function Wud(a,b){this.f=a;this.c=b} -function f7d(a,b){this.b=a;this.c=b} -function _zd(a,b){this.i=a;this.g=b} -function Y1d(a,b){this.e=a;this.a=b} -function c8d(a,b){this.a=a;this.b=b} -function $Id(a,b){a.i=null;_Id(a,b)} -function ivd(a,b){!!a&&Rhb(cvd,a,b)} -function hCd(a,b){return qAd(a.a,b)} -function e7d(a){return R2d(a.c,a.b)} -function Wd(a){return !a?null:a.dd()} -function PD(a){return a==null?null:a} -function KD(a){return typeof a===Khe} -function LD(a){return typeof a===Lhe} -function ND(a){return typeof a===Mhe} -function Em(a,b){return a.Hd().Xb(b)} -function Kq(a,b){return hr(a.Kc(),b)} -function Bbb(a,b){return ybb(a,b)==0} -function Ebb(a,b){return ybb(a,b)>=0} -function Kbb(a,b){return ybb(a,b)!=0} -function Jdb(a){return ''+(uCb(a),a)} -function pfb(a,b){return a.substr(b)} -function cg(a){ag(a);return a.d.gc()} -function oVb(a){pVb(a,a.c);return a} -function RD(a){CCb(a==null);return a} -function Dfb(a,b){a.a+=''+b;return a} -function Efb(a,b){a.a+=''+b;return a} -function Nfb(a,b){a.a+=''+b;return a} -function Pfb(a,b){a.a+=''+b;return a} -function Qfb(a,b){a.a+=''+b;return a} -function Mfb(a,b){return a.a+=''+b,a} -function Esb(a,b){Gsb(a,b,a.a,a.a.a)} -function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} -function Mqd(a,b,c){Rpd(b,kqd(a,c))} -function Nqd(a,b,c){Rpd(b,kqd(a,c))} -function Dhe(a,b){Hhe(new Fyd(a),b)} -function cB(a,b){a.q.setTime(Sbb(b))} -function fvb(a,b){bvb.call(this,a,b)} -function jvb(a,b){bvb.call(this,a,b)} -function nvb(a,b){bvb.call(this,a,b)} -function Nqb(a){Uhb(this);Ld(this,a)} -function wmb(a){tCb(a,0);return null} -function X6c(a){a.a=0;a.b=0;return a} -function f3c(a,b){a.a=b.g+1;return a} -function PJc(a,b){return a.j[b.p]==2} -function _Pb(a){return VPb(BD(a,79))} -function yJb(){yJb=ccb;xJb=as(wJb())} -function Y8b(){Y8b=ccb;X8b=as(W8b())} -function mt(){this.b=new Mqb(Cv(12))} -function Otb(){this.b=0;this.a=false} -function Wtb(){this.b=0;this.a=false} -function sl(a){this.a=a;ol.call(this)} -function vl(a){this.a=a;ol.call(this)} -function Nsd(a,b){Msd.call(this,a,b)} -function $zd(a,b){Cyd.call(this,a,b)} -function nNd(a,b){_zd.call(this,a,b)} -function s4d(a,b){p4d.call(this,a,b)} -function w4d(a,b){qRd.call(this,a,b)} -function rEd(a,b){pEd();Rhb(oEd,a,b)} -function lcb(a,b){return qfb(a.a,0,b)} -function ww(a,b){return a.a.a.a.cc(b)} -function mb(a,b){return PD(a)===PD(b)} -function Mdb(a,b){return Kdb(a.a,b.a)} -function $db(a,b){return beb(a.a,b.a)} -function seb(a,b){return ueb(a.a,b.a)} -function hfb(a,b){return a.indexOf(b)} -function Ny(a,b){return a==b?0:a?1:-1} -function kB(a){return a<10?'0'+a:''+a} -function Mq(a){return Qb(a),new sl(a)} -function SC(a){return TC(a.l,a.m,a.h)} -function Hdb(a){return QD((uCb(a),a))} -function Idb(a){return QD((uCb(a),a))} -function NIb(a,b){return beb(a.g,b.g)} -function Fbb(a){return typeof a===Lhe} -function mWb(a){return a==hWb||a==kWb} -function nWb(a){return a==hWb||a==iWb} -function G1b(a){return Jkb(a.b.b,a,0)} -function lrb(a){this.a=Arb();this.b=a} -function Frb(a){this.a=Arb();this.b=a} -function swb(a,b){Ekb(a.a,b);return b} -function Z1c(a,b){Ekb(a.c,b);return a} -function E2c(a,b){d3c(a.a,b);return a} -function _gc(a,b){Hgc();return b.a+=a} -function bhc(a,b){Hgc();return b.a+=a} -function ahc(a,b){Hgc();return b.c+=a} -function Nlb(a,b){Klb(a,0,a.length,b)} -function zsb(){Wqb.call(this,new $rb)} -function I_b(){B_b.call(this,0,0,0,0)} -function I6c(){J6c.call(this,0,0,0,0)} -function g7c(a){this.a=a.a;this.b=a.b} -function fad(a){return a==aad||a==bad} -function gad(a){return a==dad||a==_9c} -function Jzc(a){return a==Fzc||a==Ezc} -function fcd(a){return a!=bcd&&a!=ccd} -function oid(a){return a.Lg()&&a.Mg()} -function Gfd(a){return Kkd(BD(a,118))} -function k3c(a){return d3c(new j3c,a)} -function y2d(a,b){return new p4d(b,a)} -function z2d(a,b){return new p4d(b,a)} -function ukd(a,b,c){vkd(a,b);wkd(a,c)} -function _kd(a,b,c){cld(a,b);ald(a,c)} -function bld(a,b,c){dld(a,b);eld(a,c)} -function gmd(a,b,c){hmd(a,b);imd(a,c)} -function nmd(a,b,c){omd(a,b);pmd(a,c)} -function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} -function _ud(a){Wud.call(this,a,true)} -function Xg(a,b,c){Vg.call(this,a,b,c)} -function Ygb(a){Hgb();Zgb.call(this,a)} -function rxb(){mxb.call(this,'Head',1)} -function wxb(){mxb.call(this,'Tail',3)} -function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} -function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} -function MGb(a){Hkb(a.xf(),new QGb(a))} -function xtb(a){return a!=null?tb(a):0} -function b2b(a,b){return ntd(b,mpd(a))} -function c2b(a,b){return ntd(b,mpd(a))} -function dAb(a,b){return a[a.length]=b} -function gAb(a,b){return a[a.length]=b} -function Vq(a){return lr(a.b.Kc(),a.a)} -function dqd(a,b){return _o(qo(a.d),b)} -function eqd(a,b){return _o(qo(a.g),b)} -function fqd(a,b){return _o(qo(a.j),b)} -function Osd(a,b){Msd.call(this,a.b,b)} -function q0b(a){B_b.call(this,a,a,a,a)} -function HOb(a){a.b&&LOb(a);return a.a} -function IOb(a){a.b&&LOb(a);return a.c} -function uyb(a,b){if(lyb){return}a.b=b} -function lzd(a,b,c){NC(a,b,c);return c} -function mBc(a,b,c){NC(a.c[b.g],b.g,c)} -function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} -function wfd(a,b,c){bld(c,c.i+a,c.j+b)} -function UOd(a,b){wtd(VKd(a.a),XOd(b))} -function bTd(a,b){wtd(QSd(a.a),eTd(b))} -function Lge(a){wfe();xfe.call(this,a)} -function CAd(a){return a==null?0:tb(a)} -function fNc(){fNc=ccb;eNc=new Rpb(v1)} -function h0d(){h0d=ccb;new i0d;new Rkb} -function i0d(){new Lqb;new Lqb;new Lqb} -function GA(){GA=ccb;fA();FA=new Lqb} -function Iy(){Iy=ccb;$wnd.Math.log(2)} -function UVd(){UVd=ccb;TVd=(AFd(),zFd)} -function _ge(){throw vbb(new cgb(Cxe))} -function ohe(){throw vbb(new cgb(Cxe))} -function che(){throw vbb(new cgb(Dxe))} -function rhe(){throw vbb(new cgb(Dxe))} -function Mg(a){this.a=a;Gg.call(this,a)} -function up(a){this.a=a;rf.call(this,a)} -function Bp(a){this.a=a;rf.call(this,a)} -function Okb(a,b){Mlb(a.c,a.c.length,b)} -function llb(a){return a.ab?1:0} -function Deb(a,b){return ybb(a,b)>0?a:b} -function TC(a,b,c){return {l:a,m:b,h:c}} -function Ctb(a,b){a.a!=null&&BIc(b,a.a)} -function Csb(a){a.a=new jtb;a.c=new jtb} -function hDb(a){this.b=a;this.a=new Rkb} -function dOb(a){this.b=new pOb;this.a=a} -function q_b(a){n_b.call(this);this.a=a} -function txb(){mxb.call(this,'Range',2)} -function bUb(){ZTb();this.a=new L2c(zP)} -function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} -function fKc(a,b){FJc();return b.n.b+=a} -function Tgc(a,b,c){return Rhb(a.g,c,b)} -function LJc(a,b,c){return Rhb(a.k,c,b)} -function r1c(a,b){return Rhb(a.a,b.a,b)} -function jBc(a,b,c){return hBc(b,c,a.c)} -function E6c(a){return new f7c(a.c,a.d)} -function F6c(a){return new f7c(a.c,a.d)} -function R6c(a){return new f7c(a.a,a.b)} -function CQd(a,b){return hA(a.a,b,null)} -function fec(a){QZb(a,null);RZb(a,null)} -function AOc(a){BOc(a,null);COc(a,null)} -function u4d(){qRd.call(this,null,null)} -function y4d(){RRd.call(this,null,null)} -function a7d(a){this.a=a;Lqb.call(this)} -function Pp(a){this.b=(mmb(),new iob(a))} -function Py(a){a.j=KC(VI,nie,310,0,0,1)} -function oAd(a,b,c){a.c.Vc(b,BD(c,133))} -function GAd(a,b,c){a.c.ji(b,BD(c,133))} -function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} -function b7d(a,b){return t2d(a.c,a.b,b)} -function Bv(a,b){return new Qv(a.Kc(),b)} -function Lq(a,b){return rr(a.Kc(),b)!=-1} -function Sqb(a,b){return a.a.Bc(b)!=null} -function pr(a){return a.Ob()?a.Pb():null} -function yfb(a){return zfb(a,0,a.length)} -function JD(a,b){return a!=null&&AD(a,b)} -function $A(a,b){a.q.setHours(b);YA(a,b)} -function Yrb(a,b){if(a.c){jsb(b);isb(b)}} -function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} -function RJc(a,b,c){SJc(a,b,c);return c} -function Eub(a,b,c){a.a=b^1502;a.b=c^kke} -function xHb(a,b,c){return a.a[b.g][c.g]} -function REc(a,b){return a.a[b.c.p][b.p]} -function aEc(a,b){return a.e[b.c.p][b.p]} -function tEc(a,b){return a.c[b.c.p][b.p]} -function OJc(a,b){return a.j[b.p]=aKc(b)} -function k5c(a,b){return cfb(a.f,b.tg())} -function Isd(a,b){return cfb(a.b,b.tg())} -function Sfd(a,b){return a.a0?b*b/a:b*b*100} -function CRb(a,b){return a>0?b/(a*a):b*100} -function G2c(a,b,c){return Ekb(b,I2c(a,c))} -function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} -function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function O6c(a,b,c){a.a+=b;a.b+=c;return a} -function Z6c(a,b,c){a.a*=b;a.b*=c;return a} -function b7c(a,b,c){a.a-=b;a.b-=c;return a} -function a7c(a,b){a.a=b.a;a.b=b.b;return a} -function V6c(a){a.a=-a.a;a.b=-a.b;return a} -function Dic(a){this.c=a;this.a=1;this.b=1} -function xed(a){this.c=a;dld(a,0);eld(a,0)} -function u7c(a){Psb.call(this);n7c(this,a)} -function AXb(a){xXb();yXb(this);this.mf(a)} -function GRd(a,b){nRd();qRd.call(this,a,b)} -function dSd(a,b){LRd();RRd.call(this,a,b)} -function hSd(a,b){LRd();RRd.call(this,a,b)} -function fSd(a,b){LRd();dSd.call(this,a,b)} -function sId(a,b,c){dId.call(this,a,b,c,2)} -function zXd(a,b){UVd();nXd.call(this,a,b)} -function BXd(a,b){UVd();zXd.call(this,a,b)} -function DXd(a,b){UVd();zXd.call(this,a,b)} -function FXd(a,b){UVd();DXd.call(this,a,b)} -function PXd(a,b){UVd();nXd.call(this,a,b)} -function RXd(a,b){UVd();PXd.call(this,a,b)} -function XXd(a,b){UVd();nXd.call(this,a,b)} -function pAd(a,b){return a.c.Fc(BD(b,133))} -function w1d(a,b,c){return V1d(p1d(a,b),c)} -function N2d(a,b,c){return b.Qk(a.e,a.c,c)} -function P2d(a,b,c){return b.Rk(a.e,a.c,c)} -function a3d(a,b){return xid(a.e,BD(b,49))} -function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} -function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} -function ypb(a,b){b.$modCount=a.$modCount} -function MUc(){MUc=ccb;LUc=new Lsd('root')} -function LCd(){LCd=ccb;KCd=new lDd;new NDd} -function KVc(){this.a=new Hp;this.b=new Hp} -function FUd(){hJd.call(this);this.Bb|=Tje} -function t_c(){$r.call(this,'GROW_TREE',0)} -function C9d(a){return a==null?null:cde(a)} -function G9d(a){return a==null?null:jde(a)} -function J9d(a){return a==null?null:fcb(a)} -function K9d(a){return a==null?null:fcb(a)} -function fdb(a){if(a.o!=null){return}vdb(a)} -function DD(a){CCb(a==null||KD(a));return a} -function ED(a){CCb(a==null||LD(a));return a} -function GD(a){CCb(a==null||ND(a));return a} -function gB(a){this.q=new $wnd.Date(Sbb(a))} -function Mf(a,b){this.c=a;ne.call(this,a,b)} -function Sf(a,b){this.a=a;Mf.call(this,a,b)} -function Hg(a,b){this.d=a;Dg(this);this.b=b} -function bAb(a,b){Vzb.call(this,a);this.a=b} -function vAb(a,b){Vzb.call(this,a);this.a=b} -function sNb(a){pNb.call(this,0,0);this.f=a} -function Vg(a,b,c){dg.call(this,a,b,c,null)} -function Yg(a,b,c){dg.call(this,a,b,c,null)} -function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} -function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} -function g4c(a,b){return BD(Wrb(a.b,b),149)} -function i4c(a,b){return BD(Wrb(a.c,b),229)} -function wic(a){return BD(Ikb(a.a,a.b),287)} -function B6c(a){return new f7c(a.c,a.d+a.a)} -function eLc(a){return FJc(),Jzc(BD(a,197))} -function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} -function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} -function qyb(a,b){if(lyb){return}Ekb(a.a,b)} -function F2b(a,b){x2b();return f_b(b.d.i,a)} -function _9b(a,b){I9b();return new gac(b,a)} -function _Hb(a,b){ytb(b,lle);a.f=b;return a} -function Kld(a,b,c){c=_hd(a,b,3,c);return c} -function bmd(a,b,c){c=_hd(a,b,6,c);return c} -function kpd(a,b,c){c=_hd(a,b,9,c);return c} -function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} -function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} -function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function c7d(a,b,c){return C2d(a.c,a.b,b,c)} -function DAd(a,b){return (b&Ohe)%a.d.length} -function Msd(a,b){Lsd.call(this,a);this.a=b} -function uVd(a,b){lVd.call(this,a);this.a=b} -function sYd(a,b){lVd.call(this,a);this.a=b} -function zyd(a,b){this.c=a;zud.call(this,b)} -function YOd(a,b){this.a=a;qOd.call(this,b)} -function fTd(a,b){this.a=a;qOd.call(this,b)} -function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} -function cq(a){this.a=(Xj(a,Jie),new Skb(a))} -function LA(a){!a.a&&(a.a=new VA);return a.a} -function XMb(a){if(a>8){return 0}return a+1} -function Ecb(a,b){Bcb();return a==b?0:a?1:-1} -function Opb(a,b,c){return Npb(a,BD(b,22),c)} -function Bz(a,b,c){return a.apply(b,c);var d} -function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} -function ijb(a,b){var c;c=a.e;a.e=b;return c} -function trb(a,b){var c;c=a[hke];c.call(a,b)} -function urb(a,b){var c;c=a[hke];c.call(a,b)} -function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} -function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} -function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} -function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} -function Bxb(a,b){return Vd(Cwb(a.a,b,true))} -function Cxb(a,b){return Vd(Dwb(a.a,b,true))} -function _Bb(a,b){return eCb(new Array(b),a)} -function HD(a){return String.fromCharCode(a)} -function mz(a){return a==null?null:a.message} -function gRb(){this.a=new Rkb;this.b=new Rkb} -function iTb(){this.a=new MQb;this.b=new tTb} -function tDb(){this.b=new d7c;this.c=new Rkb} -function _Qb(){this.d=new d7c;this.e=new d7c} -function n_b(){this.n=new d7c;this.o=new d7c} -function $Gb(){this.n=new p0b;this.i=new I6c} -function sec(){this.a=new Umc;this.b=new mnc} -function NIc(){this.a=new Rkb;this.d=new Rkb} -function LDc(){this.b=new Tqb;this.a=new Tqb} -function hSc(){this.b=new Lqb;this.a=new Lqb} -function HRc(){this.b=new tRc;this.a=new hRc} -function aHb(){$Gb.call(this);this.a=new d7c} -function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} -function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} -function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} -function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} -function Tod(a,b,c){c=_hd(a,b,11,c);return c} -function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} -function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} -function u7b(a,b){return a.n.a=(uCb(b),b)+10} -function v7b(a,b){return a.n.a=(uCb(b),b)+10} -function dLd(a,b){return b==a||pud(UKd(b),a)} -function PYd(a,b){return Rhb(a.a,b,'')==null} -function E2b(a,b){x2b();return !f_b(b.d.i,a)} -function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} -function h1d(a,b){var c;c=b.Hh(a.a);return c} -function Cyd(a,b){qcb.call(this,gve+a+mue+b)} -function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} -function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} -function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} -function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} -function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} -function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} -function Vp(a,b,c){this.a=a;qc.call(this,b,c)} -function tk(a,b,c){this.c=b;this.b=c;this.a=a} -function ik(a,b,c){return a.d=BD(b.Kb(c),164)} -function j6d(a,b){return a.Aj().Nh().Kh(a,b)} -function h6d(a,b){return a.Aj().Nh().Ih(a,b)} -function Fdb(a,b){return uCb(a),PD(a)===PD(b)} -function dfb(a,b){return uCb(a),PD(a)===PD(b)} -function Dxb(a,b){return Vd(Cwb(a.a,b,false))} -function Exb(a,b){return Vd(Dwb(a.a,b,false))} -function vBb(a,b){return a.b.sd(new yBb(a,b))} -function BBb(a,b){return a.b.sd(new EBb(a,b))} -function HBb(a,b){return a.b.sd(new KBb(a,b))} -function lfb(a,b,c){return a.lastIndexOf(b,c)} -function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} -function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} -function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} -function emc(a,b){return beb(a.a.d.p,b.a.d.p)} -function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} -function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} -function Vxd(a){return a<100?null:new Ixd(a)} -function ecd(a){return a==Zbd||a==_bd||a==$bd} -function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} -function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} -function ujb(a,b){var c;c=b;return !!Awb(a,c)} -function czd(a,b){this.c=a;Pyd.call(this,a,b)} -function fBb(a){this.c=a;nvb.call(this,rie,0)} -function Avb(a,b){Bvb.call(this,a,a.length,b)} -function aId(a,b,c){return BD(a.c,69).lk(b,c)} -function bId(a,b,c){return BD(a.c,69).mk(b,c)} -function O2d(a,b,c){return N2d(a,BD(b,332),c)} -function Q2d(a,b,c){return P2d(a,BD(b,332),c)} -function i3d(a,b,c){return h3d(a,BD(b,332),c)} -function k3d(a,b,c){return j3d(a,BD(b,332),c)} -function tn(a,b){return b==null?null:Hv(a.b,b)} -function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} -function Ldb(a){return !isNaN(a)&&!isFinite(a)} -function Wn(a){Ql();this.a=(mmb(),new zob(a))} -function dIc(a){FHc();this.d=a;this.a=new jkb} -function xqb(a,b,c){this.a=a;this.b=b;this.c=c} -function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} -function $sb(a,b,c){this.d=a;this.b=c;this.a=b} -function Qsb(a){Csb(this);Osb(this);ye(this,a)} -function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} -function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} -function iyb(a){this.a=a;Zfb();Cbb(Date.now())} -function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} -function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} -function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} -function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} -function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} -function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} -function pxb(a){lxb();return es((zxb(),yxb),a)} -function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} -function OEb(a){MEb();return es((REb(),QEb),a)} -function WEb(a){UEb();return es((ZEb(),YEb),a)} -function tFb(a){rFb();return es((wFb(),vFb),a)} -function iHb(a){gHb();return es((lHb(),kHb),a)} -function PHb(a){NHb();return es((SHb(),RHb),a)} -function GIb(a){EIb();return es((JIb(),IIb),a)} -function vJb(a){qJb();return es((yJb(),xJb),a)} -function xLb(a){vLb();return es((ALb(),zLb),a)} -function TMb(a){RMb();return es((WMb(),VMb),a)} -function TOb(a){ROb();return es((WOb(),VOb),a)} -function ePb(a){cPb();return es((hPb(),gPb),a)} -function ZRb(a){XRb();return es((aSb(),_Rb),a)} -function ATb(a){yTb();return es((DTb(),CTb),a)} -function sUb(a){qUb();return es((vUb(),uUb),a)} -function rWb(a){lWb();return es((uWb(),tWb),a)} -function TXb(a){RXb();return es((WXb(),VXb),a)} -function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} -function l0b(a){j0b();return es((o0b(),n0b),a)} -function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function mKb(a,b,c){this.b=a;this.c=b;this.a=c} -function BZb(a,b,c){this.b=a;this.a=b;this.c=c} -function TNb(a,b,c){this.a=a;this.b=b;this.c=c} -function uOb(a,b,c){this.a=a;this.b=b;this.c=c} -function S3b(a,b,c){this.a=a;this.b=b;this.c=c} -function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} -function n9b(a,b,c){this.b=a;this.a=b;this.c=c} -function x$b(a,b,c){this.e=b;this.b=a;this.d=c} -function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} -function LGb(a){var b;b=new KGb;b.e=a;return b} -function iLb(a){var b;b=new fLb;b.b=a;return b} -function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} -function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} -function jbc(a){gbc();return es((mbc(),lbc),a)} -function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} -function Clc(a){Alc();return es((Flc(),Elc),a)} -function Cpc(a){Apc();return es((Fpc(),Epc),a)} -function Kpc(a){Ipc();return es((Npc(),Mpc),a)} -function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} -function $jc(a){Xjc();return es((bkc(),akc),a)} -function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} -function dqc(a){bqc();return es((gqc(),fqc),a)} -function rqc(a){mqc();return es((uqc(),tqc),a)} -function zqc(a){xqc();return es((Cqc(),Bqc),a)} -function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} -function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} -function brc(a){_qc();return es((erc(),drc),a)} -function nrc(a){lrc();return es((qrc(),prc),a)} -function Arc(a){yrc();return es((Drc(),Crc),a)} -function Qrc(a){Orc();return es((Trc(),Src),a)} -function Zrc(a){Xrc();return es((asc(),_rc),a)} -function gsc(a){esc();return es((jsc(),isc),a)} -function osc(a){msc();return es((rsc(),qsc),a)} -function Etc(a){Ctc();return es((Htc(),Gtc),a)} -function qzc(a){lzc();return es((tzc(),szc),a)} -function Azc(a){xzc();return es((Dzc(),Czc),a)} -function Mzc(a){Izc();return es((Pzc(),Ozc),a)} -function MAc(a){KAc();return es((PAc(),OAc),a)} -function mAc(a){kAc();return es((pAc(),oAc),a)} -function vAc(a){tAc();return es((yAc(),xAc),a)} -function DAc(a){BAc();return es((GAc(),FAc),a)} -function VAc(a){TAc();return es((YAc(),XAc),a)} -function $zc(a){Vzc();return es((bAc(),aAc),a)} -function bBc(a){_Ac();return es((eBc(),dBc),a)} -function vBc(a){tBc();return es((yBc(),xBc),a)} -function EBc(a){CBc();return es((HBc(),GBc),a)} -function NBc(a){LBc();return es((QBc(),PBc),a)} -function tGc(a){rGc();return es((wGc(),vGc),a)} -function WIc(a){UIc();return es((ZIc(),YIc),a)} -function $Lc(a){YLc();return es((bMc(),aMc),a)} -function gMc(a){eMc();return es((jMc(),iMc),a)} -function JOc(a){HOc();return es((MOc(),LOc),a)} -function HQc(a){FQc();return es((KQc(),JQc),a)} -function DRc(a){yRc();return es((GRc(),FRc),a)} -function tSc(a){qSc();return es((wSc(),vSc),a)} -function UTc(a){STc();return es((XTc(),WTc),a)} -function UUc(a){PUc();return es((XUc(),WUc),a)} -function aUc(a){$Tc();return es((dUc(),cUc),a)} -function wVc(a){tVc();return es((zVc(),yVc),a)} -function iWc(a){fWc();return es((lWc(),kWc),a)} -function sWc(a){pWc();return es((vWc(),uWc),a)} -function lXc(a){iXc();return es((oXc(),nXc),a)} -function vXc(a){sXc();return es((yXc(),xXc),a)} -function BYc(a){zYc();return es((EYc(),DYc),a)} -function m$c(a){k$c();return es((p$c(),o$c),a)} -function $$c(a){Y$c();return es((b_c(),a_c),a)} -function n_c(a){i_c();return es((q_c(),p_c),a)} -function w_c(a){s_c();return es((z_c(),y_c),a)} -function E_c(a){C_c();return es((H_c(),G_c),a)} -function P_c(a){N_c();return es((S_c(),R_c),a)} -function W0c(a){R0c();return es((Z0c(),Y0c),a)} -function f1c(a){a1c();return es((i1c(),h1c),a)} -function P5c(a){N5c();return es((S5c(),R5c),a)} -function b6c(a){_5c();return es((e6c(),d6c),a)} -function H7c(a){F7c();return es((K7c(),J7c),a)} -function k8c(a){i8c();return es((n8c(),m8c),a)} -function V8b(a){S8b();return es((Y8b(),X8b),a)} -function A5b(a){y5b();return es((D5b(),C5b),a)} -function jad(a){ead();return es((mad(),lad),a)} -function sad(a){qad();return es((vad(),uad),a)} -function Cad(a){Aad();return es((Fad(),Ead),a)} -function Oad(a){Mad();return es((Rad(),Qad),a)} -function jbd(a){hbd();return es((mbd(),lbd),a)} -function ubd(a){rbd();return es((xbd(),wbd),a)} -function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} -function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} -function hcd(a){dcd();return es((kcd(),jcd),a)} -function vcd(a){rcd();return es((ycd(),xcd),a)} -function vdd(a){tdd();return es((ydd(),xdd),a)} -function Kdd(a){Idd();return es((Ndd(),Mdd),a)} -function $cd(a){Ucd();return es((cdd(),bdd),a)} -function Fed(a){Ded();return es((Ied(),Hed),a)} -function rgd(a){pgd();return es((ugd(),tgd),a)} -function Esd(a){Csd();return es((Hsd(),Gsd),a)} -function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} -function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function bPc(a,b){this.c=a;this.a=b;this.b=b-a} -function nYc(a,b,c){this.a=a;this.b=b;this.c=c} -function L1c(a,b,c){this.a=a;this.b=b;this.c=c} -function T1c(a,b,c){this.a=a;this.b=b;this.c=c} -function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} -function zCd(a,b,c){this.a=a;this.b=b;this.c=c} -function IVd(a,b,c){this.e=a;this.a=b;this.c=c} -function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} -function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} -function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} -function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} -function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} -function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} -function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} -function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} -function BD(a,b){CCb(a==null||AD(a,b));return a} -function Nu(a){var b;b=new Rkb;fr(b,a);return b} -function Ex(a){var b;b=new Tqb;fr(b,a);return b} -function Hx(a){var b;b=new Gxb;Jq(b,a);return b} -function Ru(a){var b;b=new Psb;Jq(b,a);return b} -function YEc(a){!a.e&&(a.e=new Rkb);return a.e} -function SMd(a){!a.c&&(a.c=new xYd);return a.c} -function Ekb(a,b){a.c[a.c.length]=b;return true} -function WA(a,b){this.c=a;this.b=b;this.a=false} -function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} -function pzb(){this.a=';,;';this.b='';this.c=''} -function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} -function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} -function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} -function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} -function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} -function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} -function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} -function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} -function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} -function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} -function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} -function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} -function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} -function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} -function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} -function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} -function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} -function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} -function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} -function rCb(a,b){if(!a){throw vbb(new ucb(b))}} -function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} -function dWb(a,b,c){cWb.call(this,a,b);this.b=c} -function pMd(a,b,c){MLd.call(this,a,b);this.c=c} -function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} -function _Gd(a){$Gd();MGd.call(this);this.th(a)} -function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function k2d(a,b,c){MLd.call(this,a,b);this.c=c} -function y1d(){T0d();z1d.call(this,(yFd(),xFd))} -function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} -function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} -function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} -function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} -function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} -function WUd(a,b){var c;c=a.c;VUd(a,b);return c} -function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} -function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} -function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} -function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} -function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} -function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} -function Wq(a,b){this.b=a;this.a=b;ol.call(this)} -function ar(a,b){this.a=a;this.b=b;ol.call(this)} -function vvb(a,b){qvb.call(this,b,1040);this.a=a} -function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} -function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} -function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} -function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} -function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} -function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} -function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} -function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} -function zfe(a){wfe();++vfe;return new ige(0,a)} -function o_b(a){if(a.a){return a.a}return JZb(a)} -function CCb(a){if(!a){throw vbb(new Cdb(null))}} -function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} -function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} -function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} -function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} -function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} -function Bic(a,b){return a.c=b){throw vbb(new rcb)}} -function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} -function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} -function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} -function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} -function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} -function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} -function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} -function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} -function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} -function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} -function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} -function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} -function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} -function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} -function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} -function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} -function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} -function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} -function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} -function x0d(a){Wud.call(this,a,false);this.a=false} -function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} -function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} -function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} -function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} -function nfb(a,b){return dfb(a.substr(0,b.length),b)} -function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} -function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} -function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} -function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} -function xJc(a){var b;b=a;while(b.f){b=b.f}return b} -function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} -function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} -function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} -function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} -function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} -function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} -function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} -function Olb(a,b){return avb(b,a.length),new vvb(a,b)} -function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} -function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} -function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} -function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} -function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} -function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} -function Flb(a,b,c){var d;for(d=0;d=a.g} -function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} -function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} -function gCb(a,b){var c;c=console[a];c.call(console,b)} -function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} -function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} -function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} -function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} -function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} -function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} -function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} -function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} -function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} -function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} -function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} -function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} -function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} -function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} -function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} -function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} -function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} -function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} -function uCb(a){if(a==null){throw vbb(new Geb)}return a} -function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} -function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} -function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} -function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} -function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} -function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} -function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} -function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} -function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} -function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} -function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} -function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} -function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} -function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} -function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} -function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} -function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} -function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} -function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} -function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} -function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} -function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} -function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} -function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} -function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} -function vfb(a){return String.fromCharCode.apply(null,a)} -function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} -function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} -function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} -function ix(a,b){ex();return new gx(new il(a),new Uk(b))} -function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} -function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} -function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} -function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} -function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} -function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} -function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} -function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} -function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} -function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} -function JZb(a){var b;b=P2b(a);if(b){return b}return null} -function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} -function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} -function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} -function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} -function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} -function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} -function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} -function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} -function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} -function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} -function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} -function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} -function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} -function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} -function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} -function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} -function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} -function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} -function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} -function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} -function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} -function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} -function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} -function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} -function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} -function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} -function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} -function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} -function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} -function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} -function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} -function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} -function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} -function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} -function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} -function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} -function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} -function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} -function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} -function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} -function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} -function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} -function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} -function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} -function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} -function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} -function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} -function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} -function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} -function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} -function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} -function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} -function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} -function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} -function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} -function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} -function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} -function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} -function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} -function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} -function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} -function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} -function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} -function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} -function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} -function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} -function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} -function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} -function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} -function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} -function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} -function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} -function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} -function ecb(a){function b(){} -;b.prototype=a||{};return new b} -function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} -function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} -function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} -function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} -function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} -function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} -function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} -function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} -function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} -function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} -function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} -function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} -function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} -function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} -function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} -function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} -function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} -function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} -function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} -function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} -function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} -function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} -function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} -function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} -function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} -function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} -function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} -function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} -function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} -function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} -function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} -function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} -function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} -function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} -function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} -function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} -function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} -function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} -function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} -function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} -function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} -function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} -function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} -function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} -function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} -function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} -function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} -function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} -function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} -function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} -function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} -function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} -function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} -function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} -function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} -function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} -function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} -function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} -function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} -function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} -function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} -function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} -function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} -function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} -function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} -function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} -function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} -function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} -function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} -function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} -function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} -function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} -function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} -function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} -function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} -function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} -function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} -function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} -function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} -function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} -function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} -function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} -function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} -function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} -function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} -function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} -function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} -function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} -function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} -function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} -function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} -function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} -function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} -function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} -function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} -function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} -function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} -function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} -function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} -function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} -function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} -function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} -function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} -function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} -function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} -function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} -function mlb(a){sCb(a.ad?1:0} -function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} -function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} -function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} -function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} -function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} -function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} -function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} -function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} -function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} -function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} -function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} -function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} -function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} -function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} -function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} -function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} -function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} -function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} -function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} -function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} -function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} -function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} -function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} -function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} -function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} -function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} -function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} -function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} -function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} -function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} -function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} -function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} -function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} -function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} -function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} -function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} -function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} -function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} -function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} -function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} -function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} -function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} -function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} -function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} -function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} -function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} -function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} -function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} -function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} -function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} -function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} -function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} -function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} -function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} -function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} -function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} -function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} -function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} -function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} -function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} -function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} -function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} -function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} -function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} -function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} -function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} -function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} -function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} -function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} -function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} -function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} -function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} -function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} -function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} -function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} -function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} -function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} -function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} -function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} -function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} -function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} -function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} -function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} -function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} -function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} -function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} -function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} -function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} -function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} -function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} -function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} -function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} -function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} -function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} -function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} -function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} -function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} -function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} -function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} -function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} -function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} -function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} -function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} -function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} -function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} -function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} -function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} -function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} -function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} -function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} -function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} -function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} -function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} -function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} -function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} -function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} -function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} -function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} -function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} -function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} -function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} -function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} -function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} -function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} -function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} -function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} -function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} -function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} -function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} -function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} -function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} -function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} -function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} -function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} -function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} -function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} -function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} -function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} -function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} -function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} -function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} -function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} -function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} -function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} -function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} -function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} -function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} -function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} -function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} -function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} -function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} -function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} -function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} -function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} -function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} -function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} -function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} -function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} -function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} -function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} -function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} -function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} -function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} -function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} -function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} -function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} -function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} -function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} -function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} -function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} -function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} -function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} -function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} -function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} -function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} -function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} -function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} -function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} -function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} -function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} -function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} -function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} -function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} -function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} -function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} -function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} -function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} -function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} -function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} -function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} -function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} -function ODc(a,b){if(a.pb.p){return -1}return 0} -function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} -function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} -function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} -function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} -function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} -function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} -function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} -function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} -function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} -function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} -function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} -function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} -function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} -function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} -function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} -function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} -function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} -function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} -function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} -function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} -function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} -function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} -function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} -function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} -function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} -function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} -function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} -function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} -function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} -function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} -function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} -function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} -function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} -function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} -function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} -function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} -function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} -function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} -function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} -function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} -function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} -function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} -function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} -function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} -function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} -function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} -function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} -function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} -function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} -function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} -function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} -function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} -function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} -function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} -function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} -function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} -function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} -function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} -function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} -function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} -function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} -function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} -function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} -function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} -function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} -function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} -function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} -function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} -function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} -function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} -function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} -function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} -function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} -function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} -function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} -function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} -function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} -function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} -function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} -function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} -function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} -function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} -function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} -function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} -function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} -function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} -function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} -function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} -function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} -function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} -function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} -function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} -function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} -function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} -function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} -function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} -function uA(a,b){while(b[0]=0){++b[0]}} -function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} -function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} -function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} -function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} -function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} -function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} -function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} -function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} -function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} -function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} -function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} -function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} -function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} -function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} -function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} -function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} -function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} -function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} -function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} -function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} -function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} -function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} -function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} -function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} -function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} -function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} -function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} -function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} -function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} -function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} -function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} -function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} -function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} -function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} -function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} -function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} -function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} -function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} -function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} -function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} -function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} -function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} -function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} -function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} -function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} -function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} -function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} -function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} -function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} -function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} -function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} -function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} -function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} -function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} -function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} -function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} -function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} -function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} -function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} -function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} -function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} -function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} -function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} -function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} -function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} -function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} -function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} -function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} -function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} -function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} -function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} -function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} -function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} -function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} -function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} -function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} -function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} -function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} -function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} -function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} -function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} -function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} -function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} -function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} -function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} -function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} -function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} -function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} -function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} -function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} -function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} -function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} -function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} -function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} -function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} -function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} -function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} -function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} -function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} -function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} -function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} -function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} -function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} -function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} -function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} -function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} -function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} -function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} -function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} -function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} -function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} -function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} -function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} -function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} -function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} -function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} -function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} -function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} -function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} -function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} -function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} -function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} -function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} -function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} -function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} -function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} -function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} -function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} -function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} -function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} -function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} -function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} -function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} -function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} -function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} -function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} -function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} -function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} -function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} -function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} -function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} -function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} -function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} -function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} -function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} -function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} -function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} -function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} -function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} -function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} -function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} -function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} -function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} -function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} -function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} -function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} -function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} -function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} -function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} -function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} -function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} -function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} -function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} -function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} -function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} -function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} -function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} -function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} -function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} -function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} -function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} -function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} -function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} -function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} -function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} -function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} -function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} -function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} -function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} -function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} -function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} -function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} -function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} -function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} -function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} -function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} -function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} -function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} -function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} -function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} -function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} -function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} -function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} -function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} -function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} -function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} -function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} -function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} -function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} -function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} -function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} -function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} -function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} -function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} -function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} -function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} -function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} -function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} -function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} -function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} -function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} -function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} -function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} -function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} -function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} -function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} -function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} -function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} -function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} -function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} -function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} -function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} -function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} -function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} -function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} -function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} -function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} -function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} -function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} -function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} -function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} -function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} -function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} -function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} -function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} -function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} -function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} -function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} -function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} -function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} -function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} -function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} -function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} -function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} -function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} -function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} -function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} -function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} -function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} -function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} -function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} -function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} -function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} -function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} -function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} -function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} -function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} -function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} -function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} -function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} -function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} -function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} -function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} -function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} -function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} -function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} -function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} -function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} -function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} -function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} -function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} -function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} -function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} -function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} -function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} -function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} -function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} -function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} -function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} -function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} -function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} -function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} -function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} -function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} -function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} -function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} -function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} -function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} -function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} -function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} -function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} -function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} -function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} -function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} -function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} -function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} -function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} -function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} -function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} -function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} -function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} -function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} -function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} -function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} -function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} -function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} -function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} -function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} -function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} -function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} -function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} -function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} -function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} -function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} -function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} -function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} -function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} -function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} -function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} -function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} -function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} -function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} -function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} -function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} -function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} -function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} -function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} -function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} -function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} -function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} -function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} -function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} -function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} -function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} -function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} -function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} -function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} -function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} -function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} -function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} -function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} -function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} -function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} -function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} -function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} -function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} -function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} -function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} -function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} -function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} -function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} -function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} -function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} -function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} -function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} -function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} -function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} -function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} -function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} -function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} -function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} -function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} -function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} -function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} -function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} -function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} -function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} -function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} -function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} -function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} -function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} -function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} -function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} -function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} -function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} -function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} -function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} -function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} -function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} -function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} -function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} -function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} -function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} -function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} -function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} -function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} -function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} -function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} -function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} -function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} -function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} -function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} -function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} -function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} -function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} -function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} -function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} -function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} -function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} -function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} -function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} -function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} -function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} -function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} -function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} -function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} -function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} -function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} -function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} -function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} -function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} -function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} -function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} -function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} -function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} -function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} -function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} -function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} -function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} -function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} -function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} -function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} -function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} -function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} -function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} -function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} -function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} -function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} -function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} -function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} -function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} -function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} -function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} -function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} -function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} -function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} -function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} -function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} -function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} -function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} -function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} -function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} -function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} -function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} -function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} -function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} -function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} -function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} -function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} -function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} -function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} -function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} -function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} -function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} -function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} -function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} -function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} -function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} -function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} -function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} -function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} -function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} -function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} -function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} -function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} -function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} -function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} -function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} -function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} -function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} -function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} -function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} -function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} -function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} -function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} -function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} -function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} -function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} -function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} -function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} -function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} -function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} -function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} -function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} -function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} -function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} -function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} -function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} -function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} -function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} -function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} -function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} -function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} -function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} -function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} -function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} -function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} -function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} -function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} -function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} -function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} -function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} -function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} -function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} -function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} -function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} -function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} -function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} -function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} -function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} -function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} -function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} -function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} -function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} -function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} -function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} -function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} -function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} -function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} -function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} -function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} -function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} -function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} -function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} -function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} -function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} -function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} -function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} -function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} -function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} -function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} -function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} -function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} -function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} -function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} -function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} -function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} -function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} -function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} -function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} -function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} -function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} -function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} -function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} -function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} -function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} -function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} -function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} -function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} -function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} -function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} -function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} -function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} -function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} -function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} -function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} -function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} -function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} -function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} -function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} -function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} -function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} -function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} -function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} -function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} -function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} -function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} -function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} -function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} -function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} -function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} -function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} -function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} -function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} -function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} -function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} -function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} -function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} -function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} -function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} -function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} -function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} -function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} -function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} -function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} -function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} -function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} -function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} -function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} -function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} -function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} -function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} -function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} -function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} -function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} -function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} -function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} -function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} -function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} -function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} -function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} -function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} -function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} -function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} -function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} -function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} -function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} -function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} -function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} -function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} -function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} -function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} -function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} -function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} -function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} -function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} -function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} -function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} -function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} -function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} -function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} -function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} -function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} -function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} -function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} -function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} -function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} -function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} -function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} -function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} -function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} -function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} -function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} -function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} -function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} -function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} -function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} -function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} -function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} -function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} -function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} -function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} -function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} -function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} -function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} -function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} -function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} -function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} -function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} -function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} -function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} -function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} -function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} -function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} -function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} -function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} -function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} -function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} -function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} -function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} -function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} -function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} -function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} -function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} -function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} -function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} -function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} -function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} -function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} -function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} -function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} -function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} -function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} -function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} -function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} -function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} -function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} -function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} -function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} -function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} -function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} -function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} -function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} -function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} -function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} -function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} -function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} -function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} -function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} -function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} -function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} -function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} -function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} -function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} -function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} -function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} -function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} -function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} -function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} -function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} -function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} -function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} -function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} -function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} -function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} -function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} -function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} -function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} -function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} -function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} -function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} -function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} -function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} -function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} -function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} -function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} -function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} -function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} -function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} -function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} -function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} -function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} -function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} -function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} -function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} -function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} -function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} -function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} -function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} -function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} -function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} -function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} -function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} -function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} -function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} -function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} -function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} -function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} -function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} -function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} -function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} -function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} -function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} -function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} -function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} -function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} -function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} -function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} -function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} -function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} -function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} -function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} -function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} -function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} -function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} -function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} -function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} -function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} -function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} -function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} -function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} -function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} -function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} -function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} -function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} -function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} -function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} -function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} -function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} -function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} -function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} -function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} -function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} -function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} -function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} -function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} -function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} -function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} -function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} -function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} -function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} -function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} -function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} -function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} -function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} -function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} -function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} -function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} -function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} -function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} -function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} -function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} -function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} -function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} -function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} -function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} -function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} -function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} -function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} -function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} -function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} -function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} -function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} -function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} -function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} -function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} -function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} -function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} -function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} -function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} -function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} -function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} -function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} -function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} -function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} -function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} -function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} -function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} -function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} -function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} -function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} -function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} -function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} -function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} -function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} -function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} -function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} -function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} -function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} -function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} -function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} -function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} -function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} -function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} -function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} -function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} -function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} -function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} -function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} -function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} -function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} -function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} -function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} -function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} -function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} -function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} -function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} -function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} -function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} -function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} -function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} -function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} -function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} -function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} -function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} -function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} -function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} -function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} -function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} -function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} -function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} -function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} -function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} -function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} -function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} -function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} -function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} -function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} -function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} -function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} -function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} -function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} -function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} -function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} -function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} -function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} -function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} -function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} -function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} -function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} -function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} -function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} -function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} -function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} -function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} -function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} -function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} -function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} -function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} -function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} -function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} -function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} -function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} -function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} -function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} -function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} -function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} -function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} -function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} -function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} -function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} -function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} -function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} -function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} -function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} -function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} -function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} -function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} -function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} -function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} -function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} -function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} -function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} -function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} -function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} -function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} -function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} -function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} -function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} -function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} -function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} -function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} -function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} -function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} -function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} -function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} -if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} -function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} -function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} -function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} -function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} -function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} -function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} -function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} -function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} -function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} -function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} -function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} -function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} -function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} -function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} -function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} -function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} -function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} -function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} -function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} -function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} -function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} -function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} -function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} -function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} -function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} -function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} -function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); -// -------------- RUN GWT INITIALIZATION CODE -------------- -gwtOnLoad(null, 'elk', null); diff --git a/gen/local/elkjs/lib/elk.bundled.d.ts b/gen/local/elkjs/lib/elk.bundled.d.ts deleted file mode 100644 index 780a5cfd..00000000 --- a/gen/local/elkjs/lib/elk.bundled.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019 TypeFox and others. - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ - -export * from "./elk-api"; -import ElkConstructor from "./elk-api"; -export default ElkConstructor; diff --git a/gen/local/elkjs/lib/elk.bundled.js b/gen/local/elkjs/lib/elk.bundled.js deleted file mode 100644 index 5973d0aa..00000000 --- a/gen/local/elkjs/lib/elk.bundled.js +++ /dev/null @@ -1,6444 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, - defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, - _ref$algorithms = _ref.algorithms, - algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, - workerFactory = _ref.workerFactory, - workerUrl = _ref.workerUrl; - - _classCallCheck(this, ELK); - - this.defaultLayoutOptions = defaultLayoutOptions; - this.initialized = false; - - // check valid worker construction possible - if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { - throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); - } - var factory = workerFactory; - if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { - // use default Web Worker - factory = function factory(url) { - return new Worker(url); - }; - } - - // create the worker - var worker = factory(workerUrl); - if (typeof worker.postMessage !== 'function') { - throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); - } - - // wrap the worker to return promises - this.worker = new PromisedWorker(worker); - - // initially register algorithms - this.worker.postMessage({ - cmd: 'register', - algorithms: algorithms - }).then(function (r) { - return _this.initialized = true; - }).catch(console.err); - } - - _createClass(ELK, [{ - key: 'layout', - value: function layout(graph) { - var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref2$layoutOptions = _ref2.layoutOptions, - layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, - _ref2$logging = _ref2.logging, - logging = _ref2$logging === undefined ? false : _ref2$logging, - _ref2$measureExecutio = _ref2.measureExecutionTime, - measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; - - if (!graph) { - return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); - } - return this.worker.postMessage({ - cmd: 'layout', - graph: graph, - layoutOptions: layoutOptions, - options: { - logging: logging, - measureExecutionTime: measureExecutionTime - } - }); - } - }, { - key: 'knownLayoutAlgorithms', - value: function knownLayoutAlgorithms() { - return this.worker.postMessage({ cmd: 'algorithms' }); - } - }, { - key: 'knownLayoutOptions', - value: function knownLayoutOptions() { - return this.worker.postMessage({ cmd: 'options' }); - } - }, { - key: 'knownLayoutCategories', - value: function knownLayoutCategories() { - return this.worker.postMessage({ cmd: 'categories' }); - } - }, { - key: 'terminateWorker', - value: function terminateWorker() { - this.worker.terminate(); - } - }]); - - return ELK; -}(); - -exports.default = ELK; - -var PromisedWorker = function () { - function PromisedWorker(worker) { - var _this2 = this; - - _classCallCheck(this, PromisedWorker); - - if (worker === undefined) { - throw new Error("Missing mandatory parameter 'worker'."); - } - this.resolvers = {}; - this.worker = worker; - this.worker.onmessage = function (answer) { - // why is this necessary? - setTimeout(function () { - _this2.receive(_this2, answer); - }, 0); - }; - } - - _createClass(PromisedWorker, [{ - key: 'postMessage', - value: function postMessage(msg) { - var id = this.id || 0; - this.id = id + 1; - msg.id = id; - var self = this; - return new Promise(function (resolve, reject) { - // prepare the resolver - self.resolvers[id] = function (err, res) { - if (err) { - self.convertGwtStyleError(err); - reject(err); - } else { - resolve(res); - } - }; - // post the message - self.worker.postMessage(msg); - }); - } - }, { - key: 'receive', - value: function receive(self, answer) { - var json = answer.data; - var resolver = self.resolvers[json.id]; - if (resolver) { - delete self.resolvers[json.id]; - if (json.error) { - resolver(json.error); - } else { - resolver(null, json.data); - } - } - } - }, { - key: 'terminate', - value: function terminate() { - if (this.worker.terminate) { - this.worker.terminate(); - } - } - }, { - key: 'convertGwtStyleError', - value: function convertGwtStyleError(err) { - if (!err) { - return; - } - // Somewhat flatten the way GWT stores nested exception(s) - var javaException = err['__java$exception']; - if (javaException) { - // Note that the property name of the nested exception is different - // in the non-minified ('cause') and the minified (not deterministic) version. - // Hence, the version below only works for the non-minified version. - // However, as the minified stack trace is not of much use anyway, one - // should switch the used version for debugging in such a case. - if (javaException.cause && javaException.cause.backingJsObject) { - err.cause = javaException.cause.backingJsObject; - this.convertGwtStyleError(err.cause); - } - delete err['__java$exception']; - } - } - }]); - - return PromisedWorker; -}(); -},{}],2:[function(require,module,exports){ -(function (global){(function (){ -'use strict'; - -// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- -var $wnd; -if (typeof window !== 'undefined') - $wnd = window -else if (typeof global !== 'undefined') - $wnd = global // nodejs -else if (typeof self !== 'undefined') - $wnd = self // web worker - -var $moduleName, - $moduleBase; - -// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- -var g, i, o; - -// -------------- GENERATED CODE -------------- -function nb(){} -function xb(){} -function Fd(){} -function $g(){} -function _p(){} -function yq(){} -function Sq(){} -function Es(){} -function Jw(){} -function Vw(){} -function VA(){} -function dA(){} -function MA(){} -function PA(){} -function PB(){} -function bx(){} -function cx(){} -function vy(){} -function Nz(){} -function Yz(){} -function Ylb(){} -function Ymb(){} -function xmb(){} -function Fmb(){} -function Qmb(){} -function gcb(){} -function ccb(){} -function jcb(){} -function jtb(){} -function otb(){} -function qtb(){} -function _fb(){} -function bpb(){} -function kpb(){} -function ppb(){} -function Gpb(){} -function drb(){} -function dzb(){} -function fzb(){} -function fxb(){} -function Vxb(){} -function Ovb(){} -function byb(){} -function zyb(){} -function Zyb(){} -function _yb(){} -function hzb(){} -function jzb(){} -function lzb(){} -function nzb(){} -function rzb(){} -function zzb(){} -function Czb(){} -function Ezb(){} -function Gzb(){} -function Izb(){} -function Mzb(){} -function bBb(){} -function NBb(){} -function PBb(){} -function RBb(){} -function iCb(){} -function OCb(){} -function SCb(){} -function GDb(){} -function JDb(){} -function fEb(){} -function xEb(){} -function CEb(){} -function GEb(){} -function yFb(){} -function KGb(){} -function tIb(){} -function vIb(){} -function xIb(){} -function zIb(){} -function OIb(){} -function SIb(){} -function TJb(){} -function VJb(){} -function XJb(){} -function XKb(){} -function fKb(){} -function VKb(){} -function VLb(){} -function jLb(){} -function nLb(){} -function GLb(){} -function KLb(){} -function MLb(){} -function OLb(){} -function RLb(){} -function YLb(){} -function bMb(){} -function gMb(){} -function lMb(){} -function pMb(){} -function wMb(){} -function zMb(){} -function CMb(){} -function FMb(){} -function LMb(){} -function zNb(){} -function PNb(){} -function kOb(){} -function pOb(){} -function tOb(){} -function yOb(){} -function FOb(){} -function GPb(){} -function aQb(){} -function cQb(){} -function eQb(){} -function gQb(){} -function iQb(){} -function CQb(){} -function MQb(){} -function OQb(){} -function ASb(){} -function fTb(){} -function kTb(){} -function STb(){} -function fUb(){} -function DUb(){} -function VUb(){} -function YUb(){} -function _Ub(){} -function _Wb(){} -function QWb(){} -function XWb(){} -function jVb(){} -function DVb(){} -function VVb(){} -function $Vb(){} -function dXb(){} -function hXb(){} -function lXb(){} -function gYb(){} -function HYb(){} -function SYb(){} -function VYb(){} -function dZb(){} -function P$b(){} -function T$b(){} -function h1b(){} -function m1b(){} -function q1b(){} -function u1b(){} -function y1b(){} -function C1b(){} -function e2b(){} -function g2b(){} -function m2b(){} -function q2b(){} -function u2b(){} -function S2b(){} -function U2b(){} -function W2b(){} -function _2b(){} -function e3b(){} -function h3b(){} -function p3b(){} -function t3b(){} -function w3b(){} -function y3b(){} -function A3b(){} -function M3b(){} -function Q3b(){} -function U3b(){} -function Y3b(){} -function l4b(){} -function q4b(){} -function s4b(){} -function u4b(){} -function w4b(){} -function y4b(){} -function L4b(){} -function N4b(){} -function P4b(){} -function R4b(){} -function T4b(){} -function X4b(){} -function I5b(){} -function Q5b(){} -function T5b(){} -function Z5b(){} -function l6b(){} -function o6b(){} -function t6b(){} -function z6b(){} -function L6b(){} -function M6b(){} -function P6b(){} -function X6b(){} -function $6b(){} -function a7b(){} -function c7b(){} -function g7b(){} -function j7b(){} -function m7b(){} -function r7b(){} -function x7b(){} -function D7b(){} -function D9b(){} -function b9b(){} -function h9b(){} -function j9b(){} -function l9b(){} -function w9b(){} -function F9b(){} -function hac(){} -function jac(){} -function pac(){} -function uac(){} -function Iac(){} -function Kac(){} -function Sac(){} -function obc(){} -function rbc(){} -function vbc(){} -function Fbc(){} -function Jbc(){} -function Xbc(){} -function ccc(){} -function fcc(){} -function lcc(){} -function occ(){} -function tcc(){} -function ycc(){} -function Acc(){} -function Ccc(){} -function Ecc(){} -function Gcc(){} -function Zcc(){} -function _cc(){} -function bdc(){} -function fdc(){} -function jdc(){} -function pdc(){} -function sdc(){} -function ydc(){} -function Adc(){} -function Cdc(){} -function Edc(){} -function Idc(){} -function Ndc(){} -function Qdc(){} -function Sdc(){} -function Udc(){} -function Wdc(){} -function Ydc(){} -function aec(){} -function hec(){} -function jec(){} -function lec(){} -function nec(){} -function uec(){} -function wec(){} -function yec(){} -function Aec(){} -function Fec(){} -function Jec(){} -function Lec(){} -function Nec(){} -function Rec(){} -function Uec(){} -function Zec(){} -function Zfc(){} -function lfc(){} -function tfc(){} -function xfc(){} -function zfc(){} -function Ffc(){} -function Jfc(){} -function Nfc(){} -function Pfc(){} -function Vfc(){} -function _fc(){} -function fgc(){} -function jgc(){} -function lgc(){} -function Bgc(){} -function ehc(){} -function ghc(){} -function ihc(){} -function khc(){} -function mhc(){} -function ohc(){} -function qhc(){} -function yhc(){} -function Ahc(){} -function Ghc(){} -function Ihc(){} -function Khc(){} -function Mhc(){} -function Shc(){} -function Uhc(){} -function Whc(){} -function dic(){} -function dlc(){} -function blc(){} -function flc(){} -function hlc(){} -function jlc(){} -function Glc(){} -function Ilc(){} -function Klc(){} -function Mlc(){} -function Mjc(){} -function Qjc(){} -function Qlc(){} -function Ulc(){} -function Ylc(){} -function Lkc(){} -function Nkc(){} -function Pkc(){} -function Rkc(){} -function Xkc(){} -function _kc(){} -function gmc(){} -function kmc(){} -function zmc(){} -function Fmc(){} -function Wmc(){} -function $mc(){} -function anc(){} -function mnc(){} -function wnc(){} -function Hnc(){} -function Jnc(){} -function Lnc(){} -function Nnc(){} -function Pnc(){} -function Ync(){} -function eoc(){} -function Aoc(){} -function Coc(){} -function Eoc(){} -function Joc(){} -function Loc(){} -function Zoc(){} -function _oc(){} -function bpc(){} -function hpc(){} -function kpc(){} -function ppc(){} -function pFc(){} -function Ryc(){} -function QCc(){} -function PDc(){} -function xGc(){} -function HGc(){} -function JGc(){} -function NGc(){} -function GIc(){} -function iKc(){} -function mKc(){} -function wKc(){} -function yKc(){} -function AKc(){} -function EKc(){} -function KKc(){} -function OKc(){} -function QKc(){} -function SKc(){} -function UKc(){} -function YKc(){} -function aLc(){} -function fLc(){} -function hLc(){} -function nLc(){} -function pLc(){} -function tLc(){} -function vLc(){} -function zLc(){} -function BLc(){} -function DLc(){} -function FLc(){} -function sMc(){} -function JMc(){} -function hNc(){} -function RNc(){} -function ZNc(){} -function _Nc(){} -function bOc(){} -function dOc(){} -function fOc(){} -function hOc(){} -function hRc(){} -function jRc(){} -function KRc(){} -function NRc(){} -function NQc(){} -function LQc(){} -function _Qc(){} -function cPc(){} -function iPc(){} -function kPc(){} -function mPc(){} -function xPc(){} -function zPc(){} -function zSc(){} -function BSc(){} -function GSc(){} -function ISc(){} -function NSc(){} -function TSc(){} -function NTc(){} -function NVc(){} -function oVc(){} -function SVc(){} -function VVc(){} -function XVc(){} -function ZVc(){} -function bWc(){} -function bXc(){} -function CXc(){} -function FXc(){} -function IXc(){} -function MXc(){} -function UXc(){} -function bYc(){} -function fYc(){} -function oYc(){} -function qYc(){} -function uYc(){} -function pZc(){} -function G$c(){} -function h0c(){} -function N0c(){} -function k1c(){} -function I1c(){} -function Q1c(){} -function f2c(){} -function i2c(){} -function k2c(){} -function w2c(){} -function O2c(){} -function S2c(){} -function Z2c(){} -function v3c(){} -function x3c(){} -function R3c(){} -function U3c(){} -function e4c(){} -function w4c(){} -function x4c(){} -function z4c(){} -function B4c(){} -function D4c(){} -function F4c(){} -function H4c(){} -function J4c(){} -function L4c(){} -function N4c(){} -function P4c(){} -function R4c(){} -function T4c(){} -function V4c(){} -function X4c(){} -function Z4c(){} -function _4c(){} -function _7c(){} -function b5c(){} -function d5c(){} -function f5c(){} -function h5c(){} -function H5c(){} -function Hfd(){} -function Zfd(){} -function Zed(){} -function ged(){} -function Jed(){} -function Ned(){} -function Red(){} -function Ved(){} -function bbd(){} -function mdd(){} -function _fd(){} -function fgd(){} -function kgd(){} -function Mgd(){} -function Ahd(){} -function Ald(){} -function Tld(){} -function xkd(){} -function rmd(){} -function knd(){} -function Jod(){} -function JCd(){} -function Bpd(){} -function BFd(){} -function oFd(){} -function bqd(){} -function bvd(){} -function jvd(){} -function yud(){} -function Hxd(){} -function EBd(){} -function aDd(){} -function MGd(){} -function vHd(){} -function RHd(){} -function wNd(){} -function zNd(){} -function CNd(){} -function KNd(){} -function XNd(){} -function $Nd(){} -function HPd(){} -function lUd(){} -function XUd(){} -function DWd(){} -function GWd(){} -function JWd(){} -function MWd(){} -function PWd(){} -function SWd(){} -function VWd(){} -function YWd(){} -function _Wd(){} -function xYd(){} -function BYd(){} -function mZd(){} -function EZd(){} -function GZd(){} -function JZd(){} -function MZd(){} -function PZd(){} -function SZd(){} -function VZd(){} -function YZd(){} -function _Zd(){} -function c$d(){} -function f$d(){} -function i$d(){} -function l$d(){} -function o$d(){} -function r$d(){} -function u$d(){} -function x$d(){} -function A$d(){} -function D$d(){} -function G$d(){} -function J$d(){} -function M$d(){} -function P$d(){} -function S$d(){} -function V$d(){} -function Y$d(){} -function _$d(){} -function c_d(){} -function f_d(){} -function i_d(){} -function l_d(){} -function o_d(){} -function r_d(){} -function u_d(){} -function x_d(){} -function A_d(){} -function D_d(){} -function G_d(){} -function J_d(){} -function M_d(){} -function P_d(){} -function S_d(){} -function V_d(){} -function Y_d(){} -function h5d(){} -function U6d(){} -function U9d(){} -function _8d(){} -function fae(){} -function hae(){} -function kae(){} -function nae(){} -function qae(){} -function tae(){} -function wae(){} -function zae(){} -function Cae(){} -function Fae(){} -function Iae(){} -function Lae(){} -function Oae(){} -function Rae(){} -function Uae(){} -function Xae(){} -function $ae(){} -function bbe(){} -function ebe(){} -function hbe(){} -function kbe(){} -function nbe(){} -function qbe(){} -function tbe(){} -function wbe(){} -function zbe(){} -function Cbe(){} -function Fbe(){} -function Ibe(){} -function Lbe(){} -function Obe(){} -function Rbe(){} -function Ube(){} -function Xbe(){} -function $be(){} -function bce(){} -function ece(){} -function hce(){} -function kce(){} -function nce(){} -function qce(){} -function tce(){} -function wce(){} -function zce(){} -function Cce(){} -function Fce(){} -function Ice(){} -function Lce(){} -function Oce(){} -function Rce(){} -function Uce(){} -function Xce(){} -function ude(){} -function Vge(){} -function dhe(){} -function s_b(a){} -function jSd(a){} -function ol(){wb()} -function oPb(){nPb()} -function EPb(){CPb()} -function gFb(){fFb()} -function TRb(){SRb()} -function ySb(){wSb()} -function PSb(){OSb()} -function dTb(){bTb()} -function i4b(){b4b()} -function D2b(){x2b()} -function J6b(){D6b()} -function u9b(){q9b()} -function $9b(){I9b()} -function Umc(){Imc()} -function abc(){Vac()} -function ZCc(){VCc()} -function kCc(){hCc()} -function rCc(){oCc()} -function Tcc(){Occ()} -function xkc(){gkc()} -function xDc(){rDc()} -function iDc(){cDc()} -function kwc(){jwc()} -function tJc(){jJc()} -function dJc(){aJc()} -function Pyc(){Nyc()} -function VBc(){SBc()} -function CFc(){yFc()} -function CUc(){wUc()} -function lUc(){fUc()} -function sUc(){pUc()} -function IUc(){GUc()} -function IWc(){HWc()} -function _Wc(){ZWc()} -function fHc(){dHc()} -function f0c(){d0c()} -function B0c(){A0c()} -function L0c(){J0c()} -function LTc(){JTc()} -function sTc(){rTc()} -function KLc(){ILc()} -function wNc(){tNc()} -function PYc(){OYc()} -function nZc(){lZc()} -function q3c(){p3c()} -function Z7c(){X7c()} -function Z9c(){Y9c()} -function _ad(){Zad()} -function kdd(){idd()} -function $md(){Smd()} -function HGd(){tGd()} -function hLd(){NKd()} -function J6d(){Uge()} -function Mvb(a){uCb(a)} -function Yb(a){this.a=a} -function cc(a){this.a=a} -function cj(a){this.a=a} -function ij(a){this.a=a} -function Dj(a){this.a=a} -function df(a){this.a=a} -function kf(a){this.a=a} -function ah(a){this.a=a} -function lh(a){this.a=a} -function th(a){this.a=a} -function Ph(a){this.a=a} -function vi(a){this.a=a} -function Ci(a){this.a=a} -function Fk(a){this.a=a} -function Ln(a){this.a=a} -function ap(a){this.a=a} -function zp(a){this.a=a} -function Yp(a){this.a=a} -function qq(a){this.a=a} -function Dq(a){this.a=a} -function wr(a){this.a=a} -function Ir(a){this.b=a} -function sj(a){this.c=a} -function sw(a){this.a=a} -function fw(a){this.a=a} -function xw(a){this.a=a} -function Cw(a){this.a=a} -function Qw(a){this.a=a} -function Rw(a){this.a=a} -function Xw(a){this.a=a} -function Xv(a){this.a=a} -function Sv(a){this.a=a} -function eu(a){this.a=a} -function Zx(a){this.a=a} -function _x(a){this.a=a} -function xy(a){this.a=a} -function xB(a){this.a=a} -function HB(a){this.a=a} -function TB(a){this.a=a} -function fC(a){this.a=a} -function wB(){this.a=[]} -function MBb(a,b){a.a=b} -function w_b(a,b){a.a=b} -function x_b(a,b){a.b=b} -function YOb(a,b){a.b=b} -function $Ob(a,b){a.b=b} -function ZGb(a,b){a.j=b} -function qNb(a,b){a.g=b} -function rNb(a,b){a.i=b} -function dRb(a,b){a.c=b} -function eRb(a,b){a.d=b} -function z_b(a,b){a.d=b} -function y_b(a,b){a.c=b} -function __b(a,b){a.k=b} -function E0b(a,b){a.c=b} -function njc(a,b){a.c=b} -function mjc(a,b){a.a=b} -function dFc(a,b){a.a=b} -function eFc(a,b){a.f=b} -function nOc(a,b){a.a=b} -function oOc(a,b){a.b=b} -function pOc(a,b){a.d=b} -function qOc(a,b){a.i=b} -function rOc(a,b){a.o=b} -function sOc(a,b){a.r=b} -function $Pc(a,b){a.a=b} -function _Pc(a,b){a.b=b} -function DVc(a,b){a.e=b} -function EVc(a,b){a.f=b} -function FVc(a,b){a.g=b} -function SZc(a,b){a.e=b} -function TZc(a,b){a.f=b} -function c$c(a,b){a.f=b} -function bJd(a,b){a.n=b} -function A1d(a,b){a.a=b} -function J1d(a,b){a.a=b} -function B1d(a,b){a.c=b} -function K1d(a,b){a.c=b} -function L1d(a,b){a.d=b} -function M1d(a,b){a.e=b} -function N1d(a,b){a.g=b} -function d2d(a,b){a.a=b} -function e2d(a,b){a.c=b} -function f2d(a,b){a.d=b} -function g2d(a,b){a.e=b} -function h2d(a,b){a.f=b} -function i2d(a,b){a.j=b} -function Z8d(a,b){a.a=b} -function $8d(a,b){a.b=b} -function g9d(a,b){a.a=b} -function Cic(a){a.b=a.a} -function Dg(a){a.c=a.d.d} -function vib(a){this.d=a} -function eib(a){this.a=a} -function Pib(a){this.a=a} -function Vib(a){this.a=a} -function $ib(a){this.a=a} -function mcb(a){this.a=a} -function Mcb(a){this.a=a} -function Xcb(a){this.a=a} -function Ndb(a){this.a=a} -function _db(a){this.a=a} -function teb(a){this.a=a} -function Qeb(a){this.a=a} -function djb(a){this.a=a} -function Gjb(a){this.a=a} -function Njb(a){this.a=a} -function Bjb(a){this.b=a} -function lnb(a){this.b=a} -function Dnb(a){this.b=a} -function anb(a){this.a=a} -function Mob(a){this.a=a} -function Rob(a){this.a=a} -function iob(a){this.c=a} -function olb(a){this.c=a} -function qub(a){this.c=a} -function Tub(a){this.a=a} -function Vub(a){this.a=a} -function Xub(a){this.a=a} -function Zub(a){this.a=a} -function tpb(a){this.a=a} -function _pb(a){this.a=a} -function Wqb(a){this.a=a} -function nsb(a){this.a=a} -function Rxb(a){this.a=a} -function Txb(a){this.a=a} -function Xxb(a){this.a=a} -function bzb(a){this.a=a} -function tzb(a){this.a=a} -function vzb(a){this.a=a} -function xzb(a){this.a=a} -function Kzb(a){this.a=a} -function Ozb(a){this.a=a} -function iAb(a){this.a=a} -function kAb(a){this.a=a} -function mAb(a){this.a=a} -function BAb(a){this.a=a} -function hBb(a){this.a=a} -function jBb(a){this.a=a} -function nBb(a){this.a=a} -function TBb(a){this.a=a} -function XBb(a){this.a=a} -function QCb(a){this.a=a} -function WCb(a){this.a=a} -function _Cb(a){this.a=a} -function dEb(a){this.a=a} -function QGb(a){this.a=a} -function YGb(a){this.a=a} -function tKb(a){this.a=a} -function CLb(a){this.a=a} -function JMb(a){this.a=a} -function RNb(a){this.a=a} -function kQb(a){this.a=a} -function mQb(a){this.a=a} -function FQb(a){this.a=a} -function ETb(a){this.a=a} -function UTb(a){this.a=a} -function dUb(a){this.a=a} -function hUb(a){this.a=a} -function EZb(a){this.a=a} -function j$b(a){this.a=a} -function v$b(a){this.e=a} -function J0b(a){this.a=a} -function M0b(a){this.a=a} -function R0b(a){this.a=a} -function U0b(a){this.a=a} -function i2b(a){this.a=a} -function k2b(a){this.a=a} -function o2b(a){this.a=a} -function s2b(a){this.a=a} -function G2b(a){this.a=a} -function I2b(a){this.a=a} -function K2b(a){this.a=a} -function M2b(a){this.a=a} -function W3b(a){this.a=a} -function $3b(a){this.a=a} -function V4b(a){this.a=a} -function u5b(a){this.a=a} -function A7b(a){this.a=a} -function G7b(a){this.a=a} -function J7b(a){this.a=a} -function M7b(a){this.a=a} -function Mbc(a){this.a=a} -function Pbc(a){this.a=a} -function lac(a){this.a=a} -function nac(a){this.a=a} -function qcc(a){this.a=a} -function Gdc(a){this.a=a} -function $dc(a){this.a=a} -function cec(a){this.a=a} -function _ec(a){this.a=a} -function pfc(a){this.a=a} -function Bfc(a){this.a=a} -function Lfc(a){this.a=a} -function ygc(a){this.a=a} -function Dgc(a){this.a=a} -function shc(a){this.a=a} -function uhc(a){this.a=a} -function whc(a){this.a=a} -function Chc(a){this.a=a} -function Ehc(a){this.a=a} -function Ohc(a){this.a=a} -function Yhc(a){this.a=a} -function Tkc(a){this.a=a} -function Vkc(a){this.a=a} -function Olc(a){this.a=a} -function pnc(a){this.a=a} -function rnc(a){this.a=a} -function dpc(a){this.a=a} -function fpc(a){this.a=a} -function GCc(a){this.a=a} -function KCc(a){this.a=a} -function mDc(a){this.a=a} -function jEc(a){this.a=a} -function HEc(a){this.a=a} -function FEc(a){this.c=a} -function qoc(a){this.b=a} -function bFc(a){this.a=a} -function GFc(a){this.a=a} -function iGc(a){this.a=a} -function kGc(a){this.a=a} -function mGc(a){this.a=a} -function $Gc(a){this.a=a} -function hIc(a){this.a=a} -function lIc(a){this.a=a} -function pIc(a){this.a=a} -function tIc(a){this.a=a} -function xIc(a){this.a=a} -function zIc(a){this.a=a} -function CIc(a){this.a=a} -function LIc(a){this.a=a} -function CKc(a){this.a=a} -function IKc(a){this.a=a} -function MKc(a){this.a=a} -function $Kc(a){this.a=a} -function cLc(a){this.a=a} -function jLc(a){this.a=a} -function rLc(a){this.a=a} -function xLc(a){this.a=a} -function OMc(a){this.a=a} -function ZOc(a){this.a=a} -function ZRc(a){this.a=a} -function aSc(a){this.a=a} -function I$c(a){this.a=a} -function K$c(a){this.a=a} -function M$c(a){this.a=a} -function O$c(a){this.a=a} -function U$c(a){this.a=a} -function n1c(a){this.a=a} -function z1c(a){this.a=a} -function B1c(a){this.a=a} -function Q2c(a){this.a=a} -function U2c(a){this.a=a} -function z3c(a){this.a=a} -function med(a){this.a=a} -function Xed(a){this.a=a} -function _ed(a){this.a=a} -function Qfd(a){this.a=a} -function Bgd(a){this.a=a} -function $gd(a){this.a=a} -function lrd(a){this.a=a} -function urd(a){this.a=a} -function vrd(a){this.a=a} -function wrd(a){this.a=a} -function xrd(a){this.a=a} -function yrd(a){this.a=a} -function zrd(a){this.a=a} -function Ard(a){this.a=a} -function Brd(a){this.a=a} -function Crd(a){this.a=a} -function Ird(a){this.a=a} -function Krd(a){this.a=a} -function Lrd(a){this.a=a} -function Mrd(a){this.a=a} -function Nrd(a){this.a=a} -function Prd(a){this.a=a} -function Srd(a){this.a=a} -function Yrd(a){this.a=a} -function Zrd(a){this.a=a} -function _rd(a){this.a=a} -function asd(a){this.a=a} -function bsd(a){this.a=a} -function csd(a){this.a=a} -function dsd(a){this.a=a} -function msd(a){this.a=a} -function osd(a){this.a=a} -function qsd(a){this.a=a} -function ssd(a){this.a=a} -function Wsd(a){this.a=a} -function Lsd(a){this.b=a} -function thd(a){this.f=a} -function qtd(a){this.a=a} -function yBd(a){this.a=a} -function GBd(a){this.a=a} -function MBd(a){this.a=a} -function SBd(a){this.a=a} -function iCd(a){this.a=a} -function YMd(a){this.a=a} -function GNd(a){this.a=a} -function EPd(a){this.a=a} -function EQd(a){this.a=a} -function NTd(a){this.a=a} -function qOd(a){this.b=a} -function lVd(a){this.c=a} -function VVd(a){this.e=a} -function iYd(a){this.a=a} -function RYd(a){this.a=a} -function ZYd(a){this.a=a} -function z0d(a){this.a=a} -function O0d(a){this.a=a} -function s0d(a){this.d=a} -function W5d(a){this.a=a} -function cge(a){this.a=a} -function xfe(a){this.e=a} -function Tfd(){this.a=0} -function jkb(){Vjb(this)} -function Rkb(){Ckb(this)} -function Lqb(){Uhb(this)} -function lEb(){kEb(this)} -function A_b(){s_b(this)} -function UQd(){this.c=FQd} -function v6d(a,b){b.Wb(a)} -function moc(a,b){a.b+=b} -function yXb(a){a.b=new Ji} -function vbb(a){return a.e} -function DB(a){return a.a} -function LB(a){return a.a} -function ZB(a){return a.a} -function lC(a){return a.a} -function EC(a){return a.a} -function wC(){return null} -function SB(){return null} -function hcb(){mvd();ovd()} -function zJb(a){a.b.tf(a.e)} -function j5b(a,b){a.b=b-a.b} -function g5b(a,b){a.a=b-a.a} -function PXc(a,b){b.ad(a.a)} -function plc(a,b){G0b(b,a)} -function hp(a,b,c){a.Od(c,b)} -function As(a,b){a.e=b;b.b=a} -function Zl(a){Ql();this.a=a} -function jq(a){Ql();this.a=a} -function sq(a){Ql();this.a=a} -function Fq(a){im();this.a=a} -function Sz(a){Rz();Qz.be(a)} -function gz(){Xy.call(this)} -function xcb(){Xy.call(this)} -function pcb(){gz.call(this)} -function tcb(){gz.call(this)} -function Bdb(){gz.call(this)} -function Vdb(){gz.call(this)} -function Ydb(){gz.call(this)} -function Geb(){gz.call(this)} -function bgb(){gz.call(this)} -function Apb(){gz.call(this)} -function Jpb(){gz.call(this)} -function utb(){gz.call(this)} -function x2c(){gz.call(this)} -function rQd(){this.a=this} -function MPd(){this.Bb|=256} -function tTb(){this.b=new mt} -function fA(){fA=ccb;new Lqb} -function rcb(){pcb.call(this)} -function dCb(a,b){a.length=b} -function Tvb(a,b){Ekb(a.a,b)} -function sKb(a,b){UHb(a.c,b)} -function SMc(a,b){Qqb(a.b,b)} -function vBd(a,b){uAd(a.a,b)} -function wBd(a,b){vAd(a.a,b)} -function GLd(a,b){Uhd(a.e,b)} -function d7d(a){D2d(a.c,a.b)} -function mj(a,b){a.kc().Nb(b)} -function Odb(a){this.a=Tdb(a)} -function Tqb(){this.a=new Lqb} -function gyb(){this.a=new Lqb} -function Wvb(){this.a=new Rkb} -function KFb(){this.a=new Rkb} -function PFb(){this.a=new Rkb} -function FFb(){this.a=new yFb} -function pGb(){this.a=new MFb} -function ZQb(){this.a=new MQb} -function Gxb(){this.a=new Pwb} -function jUb(){this.a=new PTb} -function sDb(){this.a=new oDb} -function zDb(){this.a=new tDb} -function CWb(){this.a=new Rkb} -function HXb(){this.a=new Rkb} -function nYb(){this.a=new Rkb} -function BYb(){this.a=new Rkb} -function fLb(){this.d=new Rkb} -function vYb(){this.a=new Tqb} -function a2b(){this.a=new Lqb} -function wZb(){this.b=new Lqb} -function TCc(){this.b=new Rkb} -function zJc(){this.e=new Rkb} -function uMc(){this.d=new Rkb} -function wdc(){this.a=new xkc} -function vKc(){Rkb.call(this)} -function twb(){Wvb.call(this)} -function oHb(){$Gb.call(this)} -function LXb(){HXb.call(this)} -function L_b(){H_b.call(this)} -function H_b(){A_b.call(this)} -function p0b(){A_b.call(this)} -function s0b(){p0b.call(this)} -function WMc(){VMc.call(this)} -function bNc(){VMc.call(this)} -function EPc(){CPc.call(this)} -function JPc(){CPc.call(this)} -function OPc(){CPc.call(this)} -function w1c(){s1c.call(this)} -function s7c(){Psb.call(this)} -function apd(){Ald.call(this)} -function ppd(){Ald.call(this)} -function lDd(){YCd.call(this)} -function NDd(){YCd.call(this)} -function mFd(){Lqb.call(this)} -function vFd(){Lqb.call(this)} -function GFd(){Lqb.call(this)} -function KPd(){Tqb.call(this)} -function OJd(){hJd.call(this)} -function aQd(){MPd.call(this)} -function SSd(){FId.call(this)} -function rUd(){FId.call(this)} -function oUd(){Lqb.call(this)} -function NYd(){Lqb.call(this)} -function cZd(){Lqb.call(this)} -function R8d(){MGd.call(this)} -function o9d(){MGd.call(this)} -function i9d(){R8d.call(this)} -function hee(){ude.call(this)} -function Dd(a){yd.call(this,a)} -function Hd(a){yd.call(this,a)} -function ph(a){lh.call(this,a)} -function Sh(a){Wc.call(this,a)} -function oi(a){Sh.call(this,a)} -function Ii(a){Wc.call(this,a)} -function Zdd(){this.a=new Psb} -function CPc(){this.a=new Tqb} -function s1c(){this.a=new Lqb} -function QSc(){this.a=new Rkb} -function D2c(){this.j=new Rkb} -function QXc(){this.a=new UXc} -function e_c(){this.a=new d_c} -function YCd(){this.a=new aDd} -function _k(){_k=ccb;$k=new al} -function Lk(){Lk=ccb;Kk=new Mk} -function wb(){wb=ccb;vb=new xb} -function hs(){hs=ccb;gs=new is} -function rs(a){Sh.call(this,a)} -function Gp(a){Sh.call(this,a)} -function xp(a){Lo.call(this,a)} -function Ep(a){Lo.call(this,a)} -function Tp(a){Wn.call(this,a)} -function wx(a){un.call(this,a)} -function ov(a){dv.call(this,a)} -function Mv(a){Br.call(this,a)} -function Ov(a){Br.call(this,a)} -function Lw(a){Br.call(this,a)} -function hz(a){Yy.call(this,a)} -function MB(a){hz.call(this,a)} -function eC(){fC.call(this,{})} -function Ftb(a){Atb();this.a=a} -function zwb(a){a.b=null;a.c=0} -function Vy(a,b){a.e=b;Sy(a,b)} -function LVb(a,b){a.a=b;NVb(a)} -function lIb(a,b,c){a.a[b.g]=c} -function vfd(a,b,c){Dfd(c,a,b)} -function Odc(a,b){rjc(b.i,a.n)} -function Wyc(a,b){Xyc(a).td(b)} -function ERb(a,b){return a*a/b} -function Xr(a,b){return a.g-b.g} -function tC(a){return new TB(a)} -function vC(a){return new yC(a)} -function ocb(a){hz.call(this,a)} -function qcb(a){hz.call(this,a)} -function ucb(a){hz.call(this,a)} -function vcb(a){Yy.call(this,a)} -function fGc(a){LFc();this.a=a} -function c0d(a){kzd();this.a=a} -function bhd(a){Rgd();this.f=a} -function dhd(a){Rgd();this.f=a} -function Cdb(a){hz.call(this,a)} -function Wdb(a){hz.call(this,a)} -function Zdb(a){hz.call(this,a)} -function Feb(a){hz.call(this,a)} -function Heb(a){hz.call(this,a)} -function Ccb(a){return uCb(a),a} -function Edb(a){return uCb(a),a} -function Gdb(a){return uCb(a),a} -function jfb(a){return uCb(a),a} -function tfb(a){return uCb(a),a} -function akb(a){return a.b==a.c} -function Hwb(a){return !!a&&a.b} -function pIb(a){return !!a&&a.k} -function qIb(a){return !!a&&a.j} -function amb(a){uCb(a);this.a=a} -function wVb(a){qVb(a);return a} -function Blb(a){Glb(a,a.length)} -function cgb(a){hz.call(this,a)} -function cqd(a){hz.call(this,a)} -function n8d(a){hz.call(this,a)} -function y2c(a){hz.call(this,a)} -function z2c(a){hz.call(this,a)} -function mde(a){hz.call(this,a)} -function pc(a){qc.call(this,a,0)} -function Ji(){Ki.call(this,12,3)} -function Kz(){Kz=ccb;Jz=new Nz} -function jz(){jz=ccb;iz=new nb} -function KA(){KA=ccb;JA=new MA} -function OB(){OB=ccb;NB=new PB} -function jc(){throw vbb(new bgb)} -function zh(){throw vbb(new bgb)} -function Pi(){throw vbb(new bgb)} -function Pj(){throw vbb(new bgb)} -function Qj(){throw vbb(new bgb)} -function Ym(){throw vbb(new bgb)} -function Gb(){this.a=GD(Qb(She))} -function oy(a){Ql();this.a=Qb(a)} -function Bs(a,b){a.Td(b);b.Sd(a)} -function iw(a,b){a.a.ec().Mc(b)} -function CYb(a,b,c){a.c.lf(b,c)} -function scb(a){qcb.call(this,a)} -function Oeb(a){Wdb.call(this,a)} -function Hfb(){mcb.call(this,'')} -function Ifb(){mcb.call(this,'')} -function Ufb(){mcb.call(this,'')} -function Vfb(){mcb.call(this,'')} -function Xfb(a){qcb.call(this,a)} -function zob(a){lnb.call(this,a)} -function Yob(a){Inb.call(this,a)} -function Gob(a){zob.call(this,a)} -function Mk(){Fk.call(this,null)} -function al(){Fk.call(this,null)} -function Az(){Az=ccb;!!(Rz(),Qz)} -function wrb(){wrb=ccb;vrb=yrb()} -function Mtb(a){return a.a?a.b:0} -function Vtb(a){return a.a?a.b:0} -function Lcb(a,b){return a.a-b.a} -function Wcb(a,b){return a.a-b.a} -function Peb(a,b){return a.a-b.a} -function eCb(a,b){return PC(a,b)} -function GC(a,b){return rdb(a,b)} -function _B(b,a){return a in b.a} -function _Db(a,b){a.f=b;return a} -function ZDb(a,b){a.b=b;return a} -function $Db(a,b){a.c=b;return a} -function aEb(a,b){a.g=b;return a} -function HGb(a,b){a.a=b;return a} -function IGb(a,b){a.f=b;return a} -function JGb(a,b){a.k=b;return a} -function dLb(a,b){a.a=b;return a} -function eLb(a,b){a.e=b;return a} -function zVb(a,b){a.e=b;return a} -function AVb(a,b){a.f=b;return a} -function KOb(a,b){a.b=true;a.d=b} -function DHb(a,b){a.b=new g7c(b)} -function uvb(a,b,c){b.td(a.a[c])} -function zvb(a,b,c){b.we(a.a[c])} -function wJc(a,b){return a.b-b.b} -function kOc(a,b){return a.g-b.g} -function WQc(a,b){return a.s-b.s} -function Lic(a,b){return a?0:b-1} -function SFc(a,b){return a?0:b-1} -function RFc(a,b){return a?b-1:0} -function M2c(a,b){return b.Yf(a)} -function M3c(a,b){a.b=b;return a} -function L3c(a,b){a.a=b;return a} -function N3c(a,b){a.c=b;return a} -function O3c(a,b){a.d=b;return a} -function P3c(a,b){a.e=b;return a} -function Q3c(a,b){a.f=b;return a} -function b4c(a,b){a.a=b;return a} -function c4c(a,b){a.b=b;return a} -function d4c(a,b){a.c=b;return a} -function z5c(a,b){a.c=b;return a} -function y5c(a,b){a.b=b;return a} -function A5c(a,b){a.d=b;return a} -function B5c(a,b){a.e=b;return a} -function C5c(a,b){a.f=b;return a} -function D5c(a,b){a.g=b;return a} -function E5c(a,b){a.a=b;return a} -function F5c(a,b){a.i=b;return a} -function G5c(a,b){a.j=b;return a} -function Vdd(a,b){a.k=b;return a} -function Wdd(a,b){a.j=b;return a} -function ykc(a,b){gkc();F0b(b,a)} -function T$c(a,b,c){R$c(a.a,b,c)} -function RGc(a){cEc.call(this,a)} -function iHc(a){cEc.call(this,a)} -function t7c(a){Qsb.call(this,a)} -function aPb(a){_Ob.call(this,a)} -function Ixd(a){zud.call(this,a)} -function dCd(a){ZBd.call(this,a)} -function fCd(a){ZBd.call(this,a)} -function p_b(){q_b.call(this,'')} -function d7c(){this.a=0;this.b=0} -function aPc(){this.b=0;this.a=0} -function NJd(a,b){a.b=0;DId(a,b)} -function X1d(a,b){a.c=b;a.b=true} -function Oc(a,b){return a.c._b(b)} -function gdb(a){return a.e&&a.e()} -function Vd(a){return !a?null:a.d} -function sn(a,b){return Gv(a.b,b)} -function Fv(a){return !a?null:a.g} -function Kv(a){return !a?null:a.i} -function hdb(a){fdb(a);return a.o} -function Fhd(){Fhd=ccb;Ehd=ond()} -function Hhd(){Hhd=ccb;Ghd=Cod()} -function LFd(){LFd=ccb;KFd=qZd()} -function p8d(){p8d=ccb;o8d=Y9d()} -function r8d(){r8d=ccb;q8d=dae()} -function mvd(){mvd=ccb;lvd=n4c()} -function Srb(){throw vbb(new bgb)} -function enb(){throw vbb(new bgb)} -function fnb(){throw vbb(new bgb)} -function gnb(){throw vbb(new bgb)} -function jnb(){throw vbb(new bgb)} -function Cnb(){throw vbb(new bgb)} -function Uqb(a){this.a=new Mqb(a)} -function tgb(a){lgb();ngb(this,a)} -function Hxb(a){this.a=new Qwb(a)} -function _ub(a,b){while(a.ye(b));} -function Sub(a,b){while(a.sd(b));} -function Bfb(a,b){a.a+=b;return a} -function Cfb(a,b){a.a+=b;return a} -function Ffb(a,b){a.a+=b;return a} -function Lfb(a,b){a.a+=b;return a} -function WAb(a){Tzb(a);return a.a} -function Wsb(a){return a.b!=a.d.c} -function pD(a){return a.l|a.m<<22} -function aIc(a,b){return a.d[b.p]} -function h2c(a,b){return c2c(a,b)} -function cCb(a,b,c){a.splice(b,c)} -function WHb(a){a.c?VHb(a):XHb(a)} -function jVc(a){this.a=0;this.b=a} -function ZUc(){this.a=new L2c(K$)} -function tRc(){this.b=new L2c(h$)} -function Q$c(){this.b=new L2c(J_)} -function d_c(){this.b=new L2c(J_)} -function OCd(){throw vbb(new bgb)} -function PCd(){throw vbb(new bgb)} -function QCd(){throw vbb(new bgb)} -function RCd(){throw vbb(new bgb)} -function SCd(){throw vbb(new bgb)} -function TCd(){throw vbb(new bgb)} -function UCd(){throw vbb(new bgb)} -function VCd(){throw vbb(new bgb)} -function WCd(){throw vbb(new bgb)} -function XCd(){throw vbb(new bgb)} -function ahe(){throw vbb(new utb)} -function bhe(){throw vbb(new utb)} -function Rge(a){this.a=new ege(a)} -function ege(a){dge(this,a,Vee())} -function Fhe(a){return !a||Ehe(a)} -function dde(a){return $ce[a]!=-1} -function Iz(){xz!=0&&(xz=0);zz=-1} -function Ybb(){Wbb==null&&(Wbb=[])} -function ONd(a,b){Rxd(ZKd(a.a),b)} -function TNd(a,b){Rxd(ZKd(a.a),b)} -function Yf(a,b){zf.call(this,a,b)} -function $f(a,b){Yf.call(this,a,b)} -function Hf(a,b){this.b=a;this.c=b} -function rk(a,b){this.b=a;this.a=b} -function ek(a,b){this.a=a;this.b=b} -function gk(a,b){this.a=a;this.b=b} -function pk(a,b){this.a=a;this.b=b} -function yk(a,b){this.a=a;this.b=b} -function Ak(a,b){this.a=a;this.b=b} -function Fj(a,b){this.a=a;this.b=b} -function _j(a,b){this.a=a;this.b=b} -function dr(a,b){this.a=a;this.b=b} -function zr(a,b){this.b=a;this.a=b} -function So(a,b){this.b=a;this.a=b} -function qp(a,b){this.b=a;this.a=b} -function $q(a,b){this.b=a;this.a=b} -function $r(a,b){this.f=a;this.g=b} -function ne(a,b){this.e=a;this.d=b} -function Wo(a,b){this.g=a;this.i=b} -function bu(a,b){this.a=a;this.b=b} -function qu(a,b){this.a=a;this.f=b} -function qv(a,b){this.b=a;this.c=b} -function ox(a,b){this.a=a;this.b=b} -function Px(a,b){this.a=a;this.b=b} -function mC(a,b){this.a=a;this.b=b} -function Wc(a){Lb(a.dc());this.c=a} -function rf(a){this.b=BD(Qb(a),83)} -function Zv(a){this.a=BD(Qb(a),83)} -function dv(a){this.a=BD(Qb(a),15)} -function $u(a){this.a=BD(Qb(a),15)} -function Br(a){this.b=BD(Qb(a),47)} -function eB(){this.q=new $wnd.Date} -function Zfb(){Zfb=ccb;Yfb=new jcb} -function Emb(){Emb=ccb;Dmb=new Fmb} -function Vhb(a){return a.f.c+a.g.c} -function hnb(a,b){return a.b.Hc(b)} -function inb(a,b){return a.b.Ic(b)} -function knb(a,b){return a.b.Qc(b)} -function Dob(a,b){return a.b.Hc(b)} -function dob(a,b){return a.c.uc(b)} -function Rqb(a,b){return a.a._b(b)} -function fob(a,b){return pb(a.c,b)} -function jt(a,b){return Mhb(a.b,b)} -function Lp(a,b){return a>b&&b0} -function Gbb(a,b){return ybb(a,b)<0} -function Crb(a,b){return a.a.get(b)} -function icb(b,a){return a.split(b)} -function Vrb(a,b){return Mhb(a.e,b)} -function Nvb(a){return uCb(a),false} -function Rub(a){Kub.call(this,a,21)} -function wcb(a,b){Zy.call(this,a,b)} -function mxb(a,b){$r.call(this,a,b)} -function Gyb(a,b){$r.call(this,a,b)} -function zx(a){yx();Wn.call(this,a)} -function zlb(a,b){Dlb(a,a.length,b)} -function Alb(a,b){Flb(a,a.length,b)} -function ABb(a,b,c){b.ud(a.a.Ge(c))} -function uBb(a,b,c){b.we(a.a.Fe(c))} -function GBb(a,b,c){b.td(a.a.Kb(c))} -function Zq(a,b,c){a.Mb(c)&&b.td(c)} -function aCb(a,b,c){a.splice(b,0,c)} -function lDb(a,b){return uqb(a.e,b)} -function pjb(a,b){this.d=a;this.e=b} -function kqb(a,b){this.b=a;this.a=b} -function VBb(a,b){this.b=a;this.a=b} -function BEb(a,b){this.b=a;this.a=b} -function sBb(a,b){this.a=a;this.b=b} -function yBb(a,b){this.a=a;this.b=b} -function EBb(a,b){this.a=a;this.b=b} -function KBb(a,b){this.a=a;this.b=b} -function aDb(a,b){this.a=a;this.b=b} -function tMb(a,b){this.b=a;this.a=b} -function oOb(a,b){this.b=a;this.a=b} -function SOb(a,b){$r.call(this,a,b)} -function SMb(a,b){$r.call(this,a,b)} -function NEb(a,b){$r.call(this,a,b)} -function VEb(a,b){$r.call(this,a,b)} -function sFb(a,b){$r.call(this,a,b)} -function hHb(a,b){$r.call(this,a,b)} -function OHb(a,b){$r.call(this,a,b)} -function FIb(a,b){$r.call(this,a,b)} -function wLb(a,b){$r.call(this,a,b)} -function YRb(a,b){$r.call(this,a,b)} -function zTb(a,b){$r.call(this,a,b)} -function rUb(a,b){$r.call(this,a,b)} -function oWb(a,b){$r.call(this,a,b)} -function SXb(a,b){$r.call(this,a,b)} -function k0b(a,b){$r.call(this,a,b)} -function z5b(a,b){$r.call(this,a,b)} -function T8b(a,b){$r.call(this,a,b)} -function ibc(a,b){$r.call(this,a,b)} -function Cec(a,b){this.a=a;this.b=b} -function rfc(a,b){this.a=a;this.b=b} -function Rfc(a,b){this.a=a;this.b=b} -function Tfc(a,b){this.a=a;this.b=b} -function bgc(a,b){this.a=a;this.b=b} -function ngc(a,b){this.a=a;this.b=b} -function Qhc(a,b){this.a=a;this.b=b} -function $hc(a,b){this.a=a;this.b=b} -function Z0b(a,b){this.a=a;this.b=b} -function ZVb(a,b){this.b=a;this.a=b} -function Dfc(a,b){this.b=a;this.a=b} -function dgc(a,b){this.b=a;this.a=b} -function Bmc(a,b){this.b=a;this.a=b} -function cWb(a,b){this.c=a;this.d=b} -function I$b(a,b){this.e=a;this.d=b} -function Unc(a,b){this.a=a;this.b=b} -function Oic(a,b){this.b=b;this.c=a} -function Bjc(a,b){$r.call(this,a,b)} -function Yjc(a,b){$r.call(this,a,b)} -function Gkc(a,b){$r.call(this,a,b)} -function Bpc(a,b){$r.call(this,a,b)} -function Jpc(a,b){$r.call(this,a,b)} -function Tpc(a,b){$r.call(this,a,b)} -function cqc(a,b){$r.call(this,a,b)} -function oqc(a,b){$r.call(this,a,b)} -function yqc(a,b){$r.call(this,a,b)} -function Hqc(a,b){$r.call(this,a,b)} -function Uqc(a,b){$r.call(this,a,b)} -function arc(a,b){$r.call(this,a,b)} -function mrc(a,b){$r.call(this,a,b)} -function zrc(a,b){$r.call(this,a,b)} -function Prc(a,b){$r.call(this,a,b)} -function Yrc(a,b){$r.call(this,a,b)} -function fsc(a,b){$r.call(this,a,b)} -function nsc(a,b){$r.call(this,a,b)} -function nzc(a,b){$r.call(this,a,b)} -function zzc(a,b){$r.call(this,a,b)} -function Kzc(a,b){$r.call(this,a,b)} -function Xzc(a,b){$r.call(this,a,b)} -function Dtc(a,b){$r.call(this,a,b)} -function lAc(a,b){$r.call(this,a,b)} -function uAc(a,b){$r.call(this,a,b)} -function CAc(a,b){$r.call(this,a,b)} -function LAc(a,b){$r.call(this,a,b)} -function UAc(a,b){$r.call(this,a,b)} -function aBc(a,b){$r.call(this,a,b)} -function uBc(a,b){$r.call(this,a,b)} -function DBc(a,b){$r.call(this,a,b)} -function MBc(a,b){$r.call(this,a,b)} -function sGc(a,b){$r.call(this,a,b)} -function VIc(a,b){$r.call(this,a,b)} -function EIc(a,b){this.b=a;this.a=b} -function qKc(a,b){this.a=a;this.b=b} -function GKc(a,b){this.a=a;this.b=b} -function lLc(a,b){this.a=a;this.b=b} -function mMc(a,b){this.a=a;this.b=b} -function fMc(a,b){$r.call(this,a,b)} -function ZLc(a,b){$r.call(this,a,b)} -function ZMc(a,b){this.b=a;this.d=b} -function IOc(a,b){$r.call(this,a,b)} -function GQc(a,b){$r.call(this,a,b)} -function PQc(a,b){this.a=a;this.b=b} -function RQc(a,b){this.a=a;this.b=b} -function ARc(a,b){$r.call(this,a,b)} -function rSc(a,b){$r.call(this,a,b)} -function TTc(a,b){$r.call(this,a,b)} -function _Tc(a,b){$r.call(this,a,b)} -function RUc(a,b){$r.call(this,a,b)} -function uVc(a,b){$r.call(this,a,b)} -function hWc(a,b){$r.call(this,a,b)} -function rWc(a,b){$r.call(this,a,b)} -function kXc(a,b){$r.call(this,a,b)} -function uXc(a,b){$r.call(this,a,b)} -function AYc(a,b){$r.call(this,a,b)} -function l$c(a,b){$r.call(this,a,b)} -function Z$c(a,b){$r.call(this,a,b)} -function D_c(a,b){$r.call(this,a,b)} -function O_c(a,b){$r.call(this,a,b)} -function c1c(a,b){$r.call(this,a,b)} -function cVb(a,b){return uqb(a.c,b)} -function nnc(a,b){return uqb(b.b,a)} -function x1c(a,b){return -a.b.Je(b)} -function D3c(a,b){return uqb(a.g,b)} -function O5c(a,b){$r.call(this,a,b)} -function a6c(a,b){$r.call(this,a,b)} -function m2c(a,b){this.a=a;this.b=b} -function W2c(a,b){this.a=a;this.b=b} -function f7c(a,b){this.a=a;this.b=b} -function G7c(a,b){$r.call(this,a,b)} -function j8c(a,b){$r.call(this,a,b)} -function iad(a,b){$r.call(this,a,b)} -function rad(a,b){$r.call(this,a,b)} -function Bad(a,b){$r.call(this,a,b)} -function Nad(a,b){$r.call(this,a,b)} -function ibd(a,b){$r.call(this,a,b)} -function tbd(a,b){$r.call(this,a,b)} -function Ibd(a,b){$r.call(this,a,b)} -function Ubd(a,b){$r.call(this,a,b)} -function gcd(a,b){$r.call(this,a,b)} -function scd(a,b){$r.call(this,a,b)} -function Ycd(a,b){$r.call(this,a,b)} -function udd(a,b){$r.call(this,a,b)} -function Jdd(a,b){$r.call(this,a,b)} -function Eed(a,b){$r.call(this,a,b)} -function bfd(a,b){this.a=a;this.b=b} -function dfd(a,b){this.a=a;this.b=b} -function ffd(a,b){this.a=a;this.b=b} -function Kfd(a,b){this.a=a;this.b=b} -function Mfd(a,b){this.a=a;this.b=b} -function Ofd(a,b){this.a=a;this.b=b} -function vgd(a,b){this.a=a;this.b=b} -function qgd(a,b){$r.call(this,a,b)} -function jrd(a,b){this.a=a;this.b=b} -function krd(a,b){this.a=a;this.b=b} -function mrd(a,b){this.a=a;this.b=b} -function nrd(a,b){this.a=a;this.b=b} -function qrd(a,b){this.a=a;this.b=b} -function rrd(a,b){this.a=a;this.b=b} -function srd(a,b){this.b=a;this.a=b} -function trd(a,b){this.b=a;this.a=b} -function Drd(a,b){this.b=a;this.a=b} -function Frd(a,b){this.b=a;this.a=b} -function Hrd(a,b){this.a=a;this.b=b} -function Jrd(a,b){this.a=a;this.b=b} -function Ord(a,b){Xqd(a.a,BD(b,56))} -function BIc(a,b){gIc(a.a,BD(b,11))} -function fIc(a,b){FHc();return b!=a} -function Arb(){wrb();return new vrb} -function CMc(){wMc();this.b=new Tqb} -function NNc(){FNc();this.a=new Tqb} -function eCc(){ZBc();aCc.call(this)} -function Dsd(a,b){$r.call(this,a,b)} -function Urd(a,b){this.a=a;this.b=b} -function Wrd(a,b){this.a=a;this.b=b} -function kGd(a,b){this.a=a;this.b=b} -function nGd(a,b){this.a=a;this.b=b} -function bUd(a,b){this.a=a;this.b=b} -function zVd(a,b){this.a=a;this.b=b} -function C1d(a,b){this.d=a;this.b=b} -function MLd(a,b){this.d=a;this.e=b} -function Wud(a,b){this.f=a;this.c=b} -function f7d(a,b){this.b=a;this.c=b} -function _zd(a,b){this.i=a;this.g=b} -function Y1d(a,b){this.e=a;this.a=b} -function c8d(a,b){this.a=a;this.b=b} -function $Id(a,b){a.i=null;_Id(a,b)} -function ivd(a,b){!!a&&Rhb(cvd,a,b)} -function hCd(a,b){return qAd(a.a,b)} -function e7d(a){return R2d(a.c,a.b)} -function Wd(a){return !a?null:a.dd()} -function PD(a){return a==null?null:a} -function KD(a){return typeof a===Khe} -function LD(a){return typeof a===Lhe} -function ND(a){return typeof a===Mhe} -function Em(a,b){return a.Hd().Xb(b)} -function Kq(a,b){return hr(a.Kc(),b)} -function Bbb(a,b){return ybb(a,b)==0} -function Ebb(a,b){return ybb(a,b)>=0} -function Kbb(a,b){return ybb(a,b)!=0} -function Jdb(a){return ''+(uCb(a),a)} -function pfb(a,b){return a.substr(b)} -function cg(a){ag(a);return a.d.gc()} -function oVb(a){pVb(a,a.c);return a} -function RD(a){CCb(a==null);return a} -function Dfb(a,b){a.a+=''+b;return a} -function Efb(a,b){a.a+=''+b;return a} -function Nfb(a,b){a.a+=''+b;return a} -function Pfb(a,b){a.a+=''+b;return a} -function Qfb(a,b){a.a+=''+b;return a} -function Mfb(a,b){return a.a+=''+b,a} -function Esb(a,b){Gsb(a,b,a.a,a.a.a)} -function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} -function Mqd(a,b,c){Rpd(b,kqd(a,c))} -function Nqd(a,b,c){Rpd(b,kqd(a,c))} -function Dhe(a,b){Hhe(new Fyd(a),b)} -function cB(a,b){a.q.setTime(Sbb(b))} -function fvb(a,b){bvb.call(this,a,b)} -function jvb(a,b){bvb.call(this,a,b)} -function nvb(a,b){bvb.call(this,a,b)} -function Nqb(a){Uhb(this);Ld(this,a)} -function wmb(a){tCb(a,0);return null} -function X6c(a){a.a=0;a.b=0;return a} -function f3c(a,b){a.a=b.g+1;return a} -function PJc(a,b){return a.j[b.p]==2} -function _Pb(a){return VPb(BD(a,79))} -function yJb(){yJb=ccb;xJb=as(wJb())} -function Y8b(){Y8b=ccb;X8b=as(W8b())} -function mt(){this.b=new Mqb(Cv(12))} -function Otb(){this.b=0;this.a=false} -function Wtb(){this.b=0;this.a=false} -function sl(a){this.a=a;ol.call(this)} -function vl(a){this.a=a;ol.call(this)} -function Nsd(a,b){Msd.call(this,a,b)} -function $zd(a,b){Cyd.call(this,a,b)} -function nNd(a,b){_zd.call(this,a,b)} -function s4d(a,b){p4d.call(this,a,b)} -function w4d(a,b){qRd.call(this,a,b)} -function rEd(a,b){pEd();Rhb(oEd,a,b)} -function lcb(a,b){return qfb(a.a,0,b)} -function ww(a,b){return a.a.a.a.cc(b)} -function mb(a,b){return PD(a)===PD(b)} -function Mdb(a,b){return Kdb(a.a,b.a)} -function $db(a,b){return beb(a.a,b.a)} -function seb(a,b){return ueb(a.a,b.a)} -function hfb(a,b){return a.indexOf(b)} -function Ny(a,b){return a==b?0:a?1:-1} -function kB(a){return a<10?'0'+a:''+a} -function Mq(a){return Qb(a),new sl(a)} -function SC(a){return TC(a.l,a.m,a.h)} -function Hdb(a){return QD((uCb(a),a))} -function Idb(a){return QD((uCb(a),a))} -function NIb(a,b){return beb(a.g,b.g)} -function Fbb(a){return typeof a===Lhe} -function mWb(a){return a==hWb||a==kWb} -function nWb(a){return a==hWb||a==iWb} -function G1b(a){return Jkb(a.b.b,a,0)} -function lrb(a){this.a=Arb();this.b=a} -function Frb(a){this.a=Arb();this.b=a} -function swb(a,b){Ekb(a.a,b);return b} -function Z1c(a,b){Ekb(a.c,b);return a} -function E2c(a,b){d3c(a.a,b);return a} -function _gc(a,b){Hgc();return b.a+=a} -function bhc(a,b){Hgc();return b.a+=a} -function ahc(a,b){Hgc();return b.c+=a} -function Nlb(a,b){Klb(a,0,a.length,b)} -function zsb(){Wqb.call(this,new $rb)} -function I_b(){B_b.call(this,0,0,0,0)} -function I6c(){J6c.call(this,0,0,0,0)} -function g7c(a){this.a=a.a;this.b=a.b} -function fad(a){return a==aad||a==bad} -function gad(a){return a==dad||a==_9c} -function Jzc(a){return a==Fzc||a==Ezc} -function fcd(a){return a!=bcd&&a!=ccd} -function oid(a){return a.Lg()&&a.Mg()} -function Gfd(a){return Kkd(BD(a,118))} -function k3c(a){return d3c(new j3c,a)} -function y2d(a,b){return new p4d(b,a)} -function z2d(a,b){return new p4d(b,a)} -function ukd(a,b,c){vkd(a,b);wkd(a,c)} -function _kd(a,b,c){cld(a,b);ald(a,c)} -function bld(a,b,c){dld(a,b);eld(a,c)} -function gmd(a,b,c){hmd(a,b);imd(a,c)} -function nmd(a,b,c){omd(a,b);pmd(a,c)} -function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} -function _ud(a){Wud.call(this,a,true)} -function Xg(a,b,c){Vg.call(this,a,b,c)} -function Ygb(a){Hgb();Zgb.call(this,a)} -function rxb(){mxb.call(this,'Head',1)} -function wxb(){mxb.call(this,'Tail',3)} -function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} -function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} -function MGb(a){Hkb(a.xf(),new QGb(a))} -function xtb(a){return a!=null?tb(a):0} -function b2b(a,b){return ntd(b,mpd(a))} -function c2b(a,b){return ntd(b,mpd(a))} -function dAb(a,b){return a[a.length]=b} -function gAb(a,b){return a[a.length]=b} -function Vq(a){return lr(a.b.Kc(),a.a)} -function dqd(a,b){return _o(qo(a.d),b)} -function eqd(a,b){return _o(qo(a.g),b)} -function fqd(a,b){return _o(qo(a.j),b)} -function Osd(a,b){Msd.call(this,a.b,b)} -function q0b(a){B_b.call(this,a,a,a,a)} -function HOb(a){a.b&&LOb(a);return a.a} -function IOb(a){a.b&&LOb(a);return a.c} -function uyb(a,b){if(lyb){return}a.b=b} -function lzd(a,b,c){NC(a,b,c);return c} -function mBc(a,b,c){NC(a.c[b.g],b.g,c)} -function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} -function wfd(a,b,c){bld(c,c.i+a,c.j+b)} -function UOd(a,b){wtd(VKd(a.a),XOd(b))} -function bTd(a,b){wtd(QSd(a.a),eTd(b))} -function Lge(a){wfe();xfe.call(this,a)} -function CAd(a){return a==null?0:tb(a)} -function fNc(){fNc=ccb;eNc=new Rpb(v1)} -function h0d(){h0d=ccb;new i0d;new Rkb} -function i0d(){new Lqb;new Lqb;new Lqb} -function GA(){GA=ccb;fA();FA=new Lqb} -function Iy(){Iy=ccb;$wnd.Math.log(2)} -function UVd(){UVd=ccb;TVd=(AFd(),zFd)} -function _ge(){throw vbb(new cgb(Cxe))} -function ohe(){throw vbb(new cgb(Cxe))} -function che(){throw vbb(new cgb(Dxe))} -function rhe(){throw vbb(new cgb(Dxe))} -function Mg(a){this.a=a;Gg.call(this,a)} -function up(a){this.a=a;rf.call(this,a)} -function Bp(a){this.a=a;rf.call(this,a)} -function Okb(a,b){Mlb(a.c,a.c.length,b)} -function llb(a){return a.ab?1:0} -function Deb(a,b){return ybb(a,b)>0?a:b} -function TC(a,b,c){return {l:a,m:b,h:c}} -function Ctb(a,b){a.a!=null&&BIc(b,a.a)} -function Csb(a){a.a=new jtb;a.c=new jtb} -function hDb(a){this.b=a;this.a=new Rkb} -function dOb(a){this.b=new pOb;this.a=a} -function q_b(a){n_b.call(this);this.a=a} -function txb(){mxb.call(this,'Range',2)} -function bUb(){ZTb();this.a=new L2c(zP)} -function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} -function fKc(a,b){FJc();return b.n.b+=a} -function Tgc(a,b,c){return Rhb(a.g,c,b)} -function LJc(a,b,c){return Rhb(a.k,c,b)} -function r1c(a,b){return Rhb(a.a,b.a,b)} -function jBc(a,b,c){return hBc(b,c,a.c)} -function E6c(a){return new f7c(a.c,a.d)} -function F6c(a){return new f7c(a.c,a.d)} -function R6c(a){return new f7c(a.a,a.b)} -function CQd(a,b){return hA(a.a,b,null)} -function fec(a){QZb(a,null);RZb(a,null)} -function AOc(a){BOc(a,null);COc(a,null)} -function u4d(){qRd.call(this,null,null)} -function y4d(){RRd.call(this,null,null)} -function a7d(a){this.a=a;Lqb.call(this)} -function Pp(a){this.b=(mmb(),new iob(a))} -function Py(a){a.j=KC(VI,nie,310,0,0,1)} -function oAd(a,b,c){a.c.Vc(b,BD(c,133))} -function GAd(a,b,c){a.c.ji(b,BD(c,133))} -function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} -function b7d(a,b){return t2d(a.c,a.b,b)} -function Bv(a,b){return new Qv(a.Kc(),b)} -function Lq(a,b){return rr(a.Kc(),b)!=-1} -function Sqb(a,b){return a.a.Bc(b)!=null} -function pr(a){return a.Ob()?a.Pb():null} -function yfb(a){return zfb(a,0,a.length)} -function JD(a,b){return a!=null&&AD(a,b)} -function $A(a,b){a.q.setHours(b);YA(a,b)} -function Yrb(a,b){if(a.c){jsb(b);isb(b)}} -function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} -function RJc(a,b,c){SJc(a,b,c);return c} -function Eub(a,b,c){a.a=b^1502;a.b=c^kke} -function xHb(a,b,c){return a.a[b.g][c.g]} -function REc(a,b){return a.a[b.c.p][b.p]} -function aEc(a,b){return a.e[b.c.p][b.p]} -function tEc(a,b){return a.c[b.c.p][b.p]} -function OJc(a,b){return a.j[b.p]=aKc(b)} -function k5c(a,b){return cfb(a.f,b.tg())} -function Isd(a,b){return cfb(a.b,b.tg())} -function Sfd(a,b){return a.a0?b*b/a:b*b*100} -function CRb(a,b){return a>0?b/(a*a):b*100} -function G2c(a,b,c){return Ekb(b,I2c(a,c))} -function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} -function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function O6c(a,b,c){a.a+=b;a.b+=c;return a} -function Z6c(a,b,c){a.a*=b;a.b*=c;return a} -function b7c(a,b,c){a.a-=b;a.b-=c;return a} -function a7c(a,b){a.a=b.a;a.b=b.b;return a} -function V6c(a){a.a=-a.a;a.b=-a.b;return a} -function Dic(a){this.c=a;this.a=1;this.b=1} -function xed(a){this.c=a;dld(a,0);eld(a,0)} -function u7c(a){Psb.call(this);n7c(this,a)} -function AXb(a){xXb();yXb(this);this.mf(a)} -function GRd(a,b){nRd();qRd.call(this,a,b)} -function dSd(a,b){LRd();RRd.call(this,a,b)} -function hSd(a,b){LRd();RRd.call(this,a,b)} -function fSd(a,b){LRd();dSd.call(this,a,b)} -function sId(a,b,c){dId.call(this,a,b,c,2)} -function zXd(a,b){UVd();nXd.call(this,a,b)} -function BXd(a,b){UVd();zXd.call(this,a,b)} -function DXd(a,b){UVd();zXd.call(this,a,b)} -function FXd(a,b){UVd();DXd.call(this,a,b)} -function PXd(a,b){UVd();nXd.call(this,a,b)} -function RXd(a,b){UVd();PXd.call(this,a,b)} -function XXd(a,b){UVd();nXd.call(this,a,b)} -function pAd(a,b){return a.c.Fc(BD(b,133))} -function w1d(a,b,c){return V1d(p1d(a,b),c)} -function N2d(a,b,c){return b.Qk(a.e,a.c,c)} -function P2d(a,b,c){return b.Rk(a.e,a.c,c)} -function a3d(a,b){return xid(a.e,BD(b,49))} -function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} -function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} -function ypb(a,b){b.$modCount=a.$modCount} -function MUc(){MUc=ccb;LUc=new Lsd('root')} -function LCd(){LCd=ccb;KCd=new lDd;new NDd} -function KVc(){this.a=new Hp;this.b=new Hp} -function FUd(){hJd.call(this);this.Bb|=Tje} -function t_c(){$r.call(this,'GROW_TREE',0)} -function C9d(a){return a==null?null:cde(a)} -function G9d(a){return a==null?null:jde(a)} -function J9d(a){return a==null?null:fcb(a)} -function K9d(a){return a==null?null:fcb(a)} -function fdb(a){if(a.o!=null){return}vdb(a)} -function DD(a){CCb(a==null||KD(a));return a} -function ED(a){CCb(a==null||LD(a));return a} -function GD(a){CCb(a==null||ND(a));return a} -function gB(a){this.q=new $wnd.Date(Sbb(a))} -function Mf(a,b){this.c=a;ne.call(this,a,b)} -function Sf(a,b){this.a=a;Mf.call(this,a,b)} -function Hg(a,b){this.d=a;Dg(this);this.b=b} -function bAb(a,b){Vzb.call(this,a);this.a=b} -function vAb(a,b){Vzb.call(this,a);this.a=b} -function sNb(a){pNb.call(this,0,0);this.f=a} -function Vg(a,b,c){dg.call(this,a,b,c,null)} -function Yg(a,b,c){dg.call(this,a,b,c,null)} -function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} -function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} -function g4c(a,b){return BD(Wrb(a.b,b),149)} -function i4c(a,b){return BD(Wrb(a.c,b),229)} -function wic(a){return BD(Ikb(a.a,a.b),287)} -function B6c(a){return new f7c(a.c,a.d+a.a)} -function eLc(a){return FJc(),Jzc(BD(a,197))} -function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} -function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} -function qyb(a,b){if(lyb){return}Ekb(a.a,b)} -function F2b(a,b){x2b();return f_b(b.d.i,a)} -function _9b(a,b){I9b();return new gac(b,a)} -function _Hb(a,b){ytb(b,lle);a.f=b;return a} -function Kld(a,b,c){c=_hd(a,b,3,c);return c} -function bmd(a,b,c){c=_hd(a,b,6,c);return c} -function kpd(a,b,c){c=_hd(a,b,9,c);return c} -function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} -function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} -function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function c7d(a,b,c){return C2d(a.c,a.b,b,c)} -function DAd(a,b){return (b&Ohe)%a.d.length} -function Msd(a,b){Lsd.call(this,a);this.a=b} -function uVd(a,b){lVd.call(this,a);this.a=b} -function sYd(a,b){lVd.call(this,a);this.a=b} -function zyd(a,b){this.c=a;zud.call(this,b)} -function YOd(a,b){this.a=a;qOd.call(this,b)} -function fTd(a,b){this.a=a;qOd.call(this,b)} -function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} -function cq(a){this.a=(Xj(a,Jie),new Skb(a))} -function LA(a){!a.a&&(a.a=new VA);return a.a} -function XMb(a){if(a>8){return 0}return a+1} -function Ecb(a,b){Bcb();return a==b?0:a?1:-1} -function Opb(a,b,c){return Npb(a,BD(b,22),c)} -function Bz(a,b,c){return a.apply(b,c);var d} -function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} -function ijb(a,b){var c;c=a.e;a.e=b;return c} -function trb(a,b){var c;c=a[hke];c.call(a,b)} -function urb(a,b){var c;c=a[hke];c.call(a,b)} -function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} -function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} -function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} -function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} -function Bxb(a,b){return Vd(Cwb(a.a,b,true))} -function Cxb(a,b){return Vd(Dwb(a.a,b,true))} -function _Bb(a,b){return eCb(new Array(b),a)} -function HD(a){return String.fromCharCode(a)} -function mz(a){return a==null?null:a.message} -function gRb(){this.a=new Rkb;this.b=new Rkb} -function iTb(){this.a=new MQb;this.b=new tTb} -function tDb(){this.b=new d7c;this.c=new Rkb} -function _Qb(){this.d=new d7c;this.e=new d7c} -function n_b(){this.n=new d7c;this.o=new d7c} -function $Gb(){this.n=new p0b;this.i=new I6c} -function sec(){this.a=new Umc;this.b=new mnc} -function NIc(){this.a=new Rkb;this.d=new Rkb} -function LDc(){this.b=new Tqb;this.a=new Tqb} -function hSc(){this.b=new Lqb;this.a=new Lqb} -function HRc(){this.b=new tRc;this.a=new hRc} -function aHb(){$Gb.call(this);this.a=new d7c} -function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} -function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} -function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} -function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} -function Tod(a,b,c){c=_hd(a,b,11,c);return c} -function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} -function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} -function u7b(a,b){return a.n.a=(uCb(b),b)+10} -function v7b(a,b){return a.n.a=(uCb(b),b)+10} -function dLd(a,b){return b==a||pud(UKd(b),a)} -function PYd(a,b){return Rhb(a.a,b,'')==null} -function E2b(a,b){x2b();return !f_b(b.d.i,a)} -function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} -function h1d(a,b){var c;c=b.Hh(a.a);return c} -function Cyd(a,b){qcb.call(this,gve+a+mue+b)} -function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} -function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} -function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} -function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} -function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} -function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} -function Vp(a,b,c){this.a=a;qc.call(this,b,c)} -function tk(a,b,c){this.c=b;this.b=c;this.a=a} -function ik(a,b,c){return a.d=BD(b.Kb(c),164)} -function j6d(a,b){return a.Aj().Nh().Kh(a,b)} -function h6d(a,b){return a.Aj().Nh().Ih(a,b)} -function Fdb(a,b){return uCb(a),PD(a)===PD(b)} -function dfb(a,b){return uCb(a),PD(a)===PD(b)} -function Dxb(a,b){return Vd(Cwb(a.a,b,false))} -function Exb(a,b){return Vd(Dwb(a.a,b,false))} -function vBb(a,b){return a.b.sd(new yBb(a,b))} -function BBb(a,b){return a.b.sd(new EBb(a,b))} -function HBb(a,b){return a.b.sd(new KBb(a,b))} -function lfb(a,b,c){return a.lastIndexOf(b,c)} -function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} -function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} -function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} -function emc(a,b){return beb(a.a.d.p,b.a.d.p)} -function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} -function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} -function Vxd(a){return a<100?null:new Ixd(a)} -function ecd(a){return a==Zbd||a==_bd||a==$bd} -function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} -function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} -function ujb(a,b){var c;c=b;return !!Awb(a,c)} -function czd(a,b){this.c=a;Pyd.call(this,a,b)} -function fBb(a){this.c=a;nvb.call(this,rie,0)} -function Avb(a,b){Bvb.call(this,a,a.length,b)} -function aId(a,b,c){return BD(a.c,69).lk(b,c)} -function bId(a,b,c){return BD(a.c,69).mk(b,c)} -function O2d(a,b,c){return N2d(a,BD(b,332),c)} -function Q2d(a,b,c){return P2d(a,BD(b,332),c)} -function i3d(a,b,c){return h3d(a,BD(b,332),c)} -function k3d(a,b,c){return j3d(a,BD(b,332),c)} -function tn(a,b){return b==null?null:Hv(a.b,b)} -function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} -function Ldb(a){return !isNaN(a)&&!isFinite(a)} -function Wn(a){Ql();this.a=(mmb(),new zob(a))} -function dIc(a){FHc();this.d=a;this.a=new jkb} -function xqb(a,b,c){this.a=a;this.b=b;this.c=c} -function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} -function $sb(a,b,c){this.d=a;this.b=c;this.a=b} -function Qsb(a){Csb(this);Osb(this);ye(this,a)} -function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} -function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} -function iyb(a){this.a=a;Zfb();Cbb(Date.now())} -function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} -function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} -function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} -function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} -function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} -function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} -function pxb(a){lxb();return es((zxb(),yxb),a)} -function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} -function OEb(a){MEb();return es((REb(),QEb),a)} -function WEb(a){UEb();return es((ZEb(),YEb),a)} -function tFb(a){rFb();return es((wFb(),vFb),a)} -function iHb(a){gHb();return es((lHb(),kHb),a)} -function PHb(a){NHb();return es((SHb(),RHb),a)} -function GIb(a){EIb();return es((JIb(),IIb),a)} -function vJb(a){qJb();return es((yJb(),xJb),a)} -function xLb(a){vLb();return es((ALb(),zLb),a)} -function TMb(a){RMb();return es((WMb(),VMb),a)} -function TOb(a){ROb();return es((WOb(),VOb),a)} -function ePb(a){cPb();return es((hPb(),gPb),a)} -function ZRb(a){XRb();return es((aSb(),_Rb),a)} -function ATb(a){yTb();return es((DTb(),CTb),a)} -function sUb(a){qUb();return es((vUb(),uUb),a)} -function rWb(a){lWb();return es((uWb(),tWb),a)} -function TXb(a){RXb();return es((WXb(),VXb),a)} -function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} -function l0b(a){j0b();return es((o0b(),n0b),a)} -function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function mKb(a,b,c){this.b=a;this.c=b;this.a=c} -function BZb(a,b,c){this.b=a;this.a=b;this.c=c} -function TNb(a,b,c){this.a=a;this.b=b;this.c=c} -function uOb(a,b,c){this.a=a;this.b=b;this.c=c} -function S3b(a,b,c){this.a=a;this.b=b;this.c=c} -function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} -function n9b(a,b,c){this.b=a;this.a=b;this.c=c} -function x$b(a,b,c){this.e=b;this.b=a;this.d=c} -function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} -function LGb(a){var b;b=new KGb;b.e=a;return b} -function iLb(a){var b;b=new fLb;b.b=a;return b} -function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} -function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} -function jbc(a){gbc();return es((mbc(),lbc),a)} -function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} -function Clc(a){Alc();return es((Flc(),Elc),a)} -function Cpc(a){Apc();return es((Fpc(),Epc),a)} -function Kpc(a){Ipc();return es((Npc(),Mpc),a)} -function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} -function $jc(a){Xjc();return es((bkc(),akc),a)} -function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} -function dqc(a){bqc();return es((gqc(),fqc),a)} -function rqc(a){mqc();return es((uqc(),tqc),a)} -function zqc(a){xqc();return es((Cqc(),Bqc),a)} -function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} -function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} -function brc(a){_qc();return es((erc(),drc),a)} -function nrc(a){lrc();return es((qrc(),prc),a)} -function Arc(a){yrc();return es((Drc(),Crc),a)} -function Qrc(a){Orc();return es((Trc(),Src),a)} -function Zrc(a){Xrc();return es((asc(),_rc),a)} -function gsc(a){esc();return es((jsc(),isc),a)} -function osc(a){msc();return es((rsc(),qsc),a)} -function Etc(a){Ctc();return es((Htc(),Gtc),a)} -function qzc(a){lzc();return es((tzc(),szc),a)} -function Azc(a){xzc();return es((Dzc(),Czc),a)} -function Mzc(a){Izc();return es((Pzc(),Ozc),a)} -function MAc(a){KAc();return es((PAc(),OAc),a)} -function mAc(a){kAc();return es((pAc(),oAc),a)} -function vAc(a){tAc();return es((yAc(),xAc),a)} -function DAc(a){BAc();return es((GAc(),FAc),a)} -function VAc(a){TAc();return es((YAc(),XAc),a)} -function $zc(a){Vzc();return es((bAc(),aAc),a)} -function bBc(a){_Ac();return es((eBc(),dBc),a)} -function vBc(a){tBc();return es((yBc(),xBc),a)} -function EBc(a){CBc();return es((HBc(),GBc),a)} -function NBc(a){LBc();return es((QBc(),PBc),a)} -function tGc(a){rGc();return es((wGc(),vGc),a)} -function WIc(a){UIc();return es((ZIc(),YIc),a)} -function $Lc(a){YLc();return es((bMc(),aMc),a)} -function gMc(a){eMc();return es((jMc(),iMc),a)} -function JOc(a){HOc();return es((MOc(),LOc),a)} -function HQc(a){FQc();return es((KQc(),JQc),a)} -function DRc(a){yRc();return es((GRc(),FRc),a)} -function tSc(a){qSc();return es((wSc(),vSc),a)} -function UTc(a){STc();return es((XTc(),WTc),a)} -function UUc(a){PUc();return es((XUc(),WUc),a)} -function aUc(a){$Tc();return es((dUc(),cUc),a)} -function wVc(a){tVc();return es((zVc(),yVc),a)} -function iWc(a){fWc();return es((lWc(),kWc),a)} -function sWc(a){pWc();return es((vWc(),uWc),a)} -function lXc(a){iXc();return es((oXc(),nXc),a)} -function vXc(a){sXc();return es((yXc(),xXc),a)} -function BYc(a){zYc();return es((EYc(),DYc),a)} -function m$c(a){k$c();return es((p$c(),o$c),a)} -function $$c(a){Y$c();return es((b_c(),a_c),a)} -function n_c(a){i_c();return es((q_c(),p_c),a)} -function w_c(a){s_c();return es((z_c(),y_c),a)} -function E_c(a){C_c();return es((H_c(),G_c),a)} -function P_c(a){N_c();return es((S_c(),R_c),a)} -function W0c(a){R0c();return es((Z0c(),Y0c),a)} -function f1c(a){a1c();return es((i1c(),h1c),a)} -function P5c(a){N5c();return es((S5c(),R5c),a)} -function b6c(a){_5c();return es((e6c(),d6c),a)} -function H7c(a){F7c();return es((K7c(),J7c),a)} -function k8c(a){i8c();return es((n8c(),m8c),a)} -function V8b(a){S8b();return es((Y8b(),X8b),a)} -function A5b(a){y5b();return es((D5b(),C5b),a)} -function jad(a){ead();return es((mad(),lad),a)} -function sad(a){qad();return es((vad(),uad),a)} -function Cad(a){Aad();return es((Fad(),Ead),a)} -function Oad(a){Mad();return es((Rad(),Qad),a)} -function jbd(a){hbd();return es((mbd(),lbd),a)} -function ubd(a){rbd();return es((xbd(),wbd),a)} -function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} -function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} -function hcd(a){dcd();return es((kcd(),jcd),a)} -function vcd(a){rcd();return es((ycd(),xcd),a)} -function vdd(a){tdd();return es((ydd(),xdd),a)} -function Kdd(a){Idd();return es((Ndd(),Mdd),a)} -function $cd(a){Ucd();return es((cdd(),bdd),a)} -function Fed(a){Ded();return es((Ied(),Hed),a)} -function rgd(a){pgd();return es((ugd(),tgd),a)} -function Esd(a){Csd();return es((Hsd(),Gsd),a)} -function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} -function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function bPc(a,b){this.c=a;this.a=b;this.b=b-a} -function nYc(a,b,c){this.a=a;this.b=b;this.c=c} -function L1c(a,b,c){this.a=a;this.b=b;this.c=c} -function T1c(a,b,c){this.a=a;this.b=b;this.c=c} -function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} -function zCd(a,b,c){this.a=a;this.b=b;this.c=c} -function IVd(a,b,c){this.e=a;this.a=b;this.c=c} -function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} -function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} -function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} -function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} -function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} -function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} -function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} -function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} -function BD(a,b){CCb(a==null||AD(a,b));return a} -function Nu(a){var b;b=new Rkb;fr(b,a);return b} -function Ex(a){var b;b=new Tqb;fr(b,a);return b} -function Hx(a){var b;b=new Gxb;Jq(b,a);return b} -function Ru(a){var b;b=new Psb;Jq(b,a);return b} -function YEc(a){!a.e&&(a.e=new Rkb);return a.e} -function SMd(a){!a.c&&(a.c=new xYd);return a.c} -function Ekb(a,b){a.c[a.c.length]=b;return true} -function WA(a,b){this.c=a;this.b=b;this.a=false} -function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} -function pzb(){this.a=';,;';this.b='';this.c=''} -function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} -function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} -function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} -function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} -function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} -function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} -function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} -function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} -function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} -function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} -function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} -function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} -function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} -function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} -function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} -function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} -function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} -function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} -function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} -function rCb(a,b){if(!a){throw vbb(new ucb(b))}} -function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} -function dWb(a,b,c){cWb.call(this,a,b);this.b=c} -function pMd(a,b,c){MLd.call(this,a,b);this.c=c} -function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} -function _Gd(a){$Gd();MGd.call(this);this.th(a)} -function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function k2d(a,b,c){MLd.call(this,a,b);this.c=c} -function y1d(){T0d();z1d.call(this,(yFd(),xFd))} -function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} -function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} -function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} -function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} -function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} -function WUd(a,b){var c;c=a.c;VUd(a,b);return c} -function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} -function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} -function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} -function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} -function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} -function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} -function Wq(a,b){this.b=a;this.a=b;ol.call(this)} -function ar(a,b){this.a=a;this.b=b;ol.call(this)} -function vvb(a,b){qvb.call(this,b,1040);this.a=a} -function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} -function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} -function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} -function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} -function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} -function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} -function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} -function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} -function zfe(a){wfe();++vfe;return new ige(0,a)} -function o_b(a){if(a.a){return a.a}return JZb(a)} -function CCb(a){if(!a){throw vbb(new Cdb(null))}} -function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} -function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} -function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} -function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} -function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} -function Bic(a,b){return a.c=b){throw vbb(new rcb)}} -function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} -function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} -function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} -function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} -function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} -function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} -function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} -function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} -function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} -function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} -function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} -function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} -function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} -function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} -function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} -function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} -function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} -function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} -function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} -function x0d(a){Wud.call(this,a,false);this.a=false} -function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} -function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} -function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} -function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} -function nfb(a,b){return dfb(a.substr(0,b.length),b)} -function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} -function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} -function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} -function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} -function xJc(a){var b;b=a;while(b.f){b=b.f}return b} -function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} -function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} -function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} -function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} -function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} -function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} -function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} -function Olb(a,b){return avb(b,a.length),new vvb(a,b)} -function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} -function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} -function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} -function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} -function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} -function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} -function Flb(a,b,c){var d;for(d=0;d=a.g} -function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} -function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} -function gCb(a,b){var c;c=console[a];c.call(console,b)} -function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} -function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} -function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} -function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} -function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} -function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} -function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} -function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} -function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} -function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} -function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} -function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} -function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} -function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} -function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} -function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} -function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} -function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} -function uCb(a){if(a==null){throw vbb(new Geb)}return a} -function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} -function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} -function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} -function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} -function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} -function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} -function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} -function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} -function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} -function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} -function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} -function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} -function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} -function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} -function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} -function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} -function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} -function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} -function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} -function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} -function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} -function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} -function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} -function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} -function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} -function vfb(a){return String.fromCharCode.apply(null,a)} -function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} -function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} -function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} -function ix(a,b){ex();return new gx(new il(a),new Uk(b))} -function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} -function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} -function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} -function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} -function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} -function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} -function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} -function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} -function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} -function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} -function JZb(a){var b;b=P2b(a);if(b){return b}return null} -function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} -function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} -function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} -function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} -function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} -function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} -function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} -function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} -function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} -function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} -function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} -function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} -function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} -function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} -function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} -function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} -function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} -function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} -function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} -function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} -function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} -function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} -function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} -function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} -function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} -function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} -function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} -function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} -function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} -function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} -function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} -function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} -function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} -function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} -function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} -function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} -function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} -function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} -function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} -function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} -function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} -function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} -function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} -function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} -function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} -function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} -function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} -function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} -function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} -function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} -function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} -function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} -function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} -function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} -function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} -function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} -function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} -function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} -function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} -function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} -function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} -function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} -function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} -function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} -function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} -function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} -function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} -function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} -function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} -function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} -function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} -function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} -function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} -function ecb(a){function b(){} -;b.prototype=a||{};return new b} -function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} -function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} -function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} -function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} -function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} -function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} -function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} -function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} -function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} -function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} -function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} -function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} -function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} -function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} -function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} -function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} -function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} -function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} -function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} -function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} -function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} -function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} -function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} -function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} -function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} -function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} -function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} -function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} -function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} -function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} -function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} -function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} -function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} -function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} -function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} -function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} -function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} -function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} -function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} -function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} -function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} -function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} -function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} -function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} -function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} -function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} -function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} -function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} -function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} -function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} -function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} -function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} -function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} -function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} -function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} -function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} -function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} -function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} -function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} -function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} -function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} -function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} -function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} -function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} -function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} -function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} -function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} -function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} -function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} -function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} -function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} -function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} -function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} -function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} -function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} -function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} -function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} -function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} -function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} -function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} -function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} -function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} -function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} -function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} -function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} -function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} -function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} -function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} -function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} -function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} -function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} -function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} -function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} -function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} -function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} -function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} -function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} -function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} -function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} -function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} -function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} -function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} -function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} -function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} -function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} -function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} -function mlb(a){sCb(a.ad?1:0} -function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} -function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} -function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} -function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} -function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} -function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} -function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} -function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} -function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} -function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} -function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} -function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} -function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} -function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} -function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} -function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} -function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} -function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} -function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} -function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} -function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} -function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} -function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} -function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} -function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} -function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} -function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} -function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} -function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} -function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} -function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} -function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} -function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} -function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} -function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} -function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} -function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} -function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} -function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} -function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} -function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} -function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} -function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} -function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} -function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} -function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} -function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} -function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} -function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} -function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} -function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} -function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} -function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} -function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} -function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} -function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} -function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} -function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} -function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} -function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} -function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} -function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} -function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} -function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} -function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} -function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} -function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} -function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} -function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} -function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} -function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} -function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} -function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} -function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} -function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} -function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} -function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} -function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} -function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} -function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} -function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} -function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} -function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} -function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} -function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} -function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} -function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} -function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} -function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} -function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} -function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} -function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} -function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} -function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} -function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} -function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} -function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} -function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} -function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} -function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} -function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} -function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} -function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} -function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} -function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} -function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} -function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} -function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} -function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} -function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} -function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} -function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} -function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} -function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} -function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} -function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} -function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} -function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} -function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} -function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} -function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} -function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} -function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} -function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} -function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} -function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} -function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} -function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} -function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} -function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} -function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} -function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} -function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} -function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} -function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} -function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} -function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} -function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} -function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} -function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} -function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} -function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} -function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} -function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} -function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} -function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} -function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} -function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} -function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} -function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} -function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} -function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} -function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} -function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} -function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} -function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} -function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} -function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} -function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} -function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} -function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} -function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} -function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} -function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} -function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} -function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} -function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} -function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} -function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} -function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} -function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} -function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} -function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} -function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} -function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} -function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} -function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} -function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} -function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} -function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} -function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} -function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} -function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} -function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} -function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} -function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} -function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} -function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} -function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} -function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} -function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} -function ODc(a,b){if(a.pb.p){return -1}return 0} -function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} -function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} -function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} -function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} -function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} -function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} -function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} -function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} -function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} -function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} -function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} -function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} -function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} -function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} -function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} -function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} -function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} -function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} -function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} -function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} -function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} -function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} -function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} -function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} -function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} -function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} -function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} -function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} -function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} -function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} -function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} -function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} -function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} -function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} -function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} -function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} -function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} -function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} -function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} -function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} -function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} -function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} -function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} -function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} -function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} -function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} -function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} -function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} -function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} -function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} -function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} -function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} -function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} -function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} -function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} -function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} -function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} -function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} -function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} -function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} -function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} -function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} -function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} -function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} -function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} -function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} -function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} -function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} -function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} -function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} -function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} -function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} -function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} -function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} -function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} -function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} -function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} -function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} -function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} -function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} -function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} -function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} -function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} -function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} -function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} -function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} -function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} -function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} -function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} -function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} -function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} -function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} -function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} -function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} -function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} -function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} -function uA(a,b){while(b[0]=0){++b[0]}} -function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} -function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} -function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} -function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} -function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} -function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} -function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} -function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} -function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} -function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} -function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} -function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} -function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} -function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} -function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} -function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} -function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} -function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} -function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} -function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} -function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} -function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} -function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} -function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} -function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} -function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} -function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} -function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} -function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} -function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} -function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} -function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} -function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} -function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} -function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} -function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} -function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} -function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} -function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} -function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} -function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} -function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} -function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} -function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} -function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} -function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} -function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} -function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} -function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} -function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} -function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} -function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} -function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} -function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} -function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} -function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} -function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} -function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} -function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} -function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} -function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} -function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} -function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} -function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} -function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} -function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} -function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} -function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} -function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} -function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} -function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} -function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} -function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} -function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} -function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} -function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} -function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} -function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} -function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} -function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} -function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} -function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} -function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} -function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} -function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} -function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} -function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} -function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} -function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} -function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} -function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} -function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} -function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} -function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} -function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} -function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} -function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} -function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} -function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} -function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} -function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} -function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} -function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} -function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} -function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} -function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} -function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} -function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} -function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} -function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} -function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} -function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} -function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} -function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} -function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} -function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} -function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} -function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} -function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} -function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} -function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} -function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} -function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} -function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} -function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} -function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} -function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} -function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} -function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} -function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} -function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} -function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} -function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} -function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} -function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} -function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} -function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} -function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} -function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} -function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} -function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} -function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} -function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} -function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} -function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} -function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} -function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} -function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} -function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} -function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} -function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} -function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} -function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} -function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} -function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} -function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} -function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} -function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} -function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} -function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} -function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} -function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} -function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} -function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} -function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} -function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} -function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} -function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} -function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} -function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} -function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} -function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} -function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} -function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} -function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} -function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} -function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} -function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} -function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} -function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} -function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} -function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} -function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} -function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} -function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} -function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} -function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} -function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} -function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} -function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} -function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} -function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} -function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} -function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} -function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} -function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} -function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} -function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} -function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} -function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} -function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} -function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} -function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} -function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} -function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} -function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} -function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} -function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} -function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} -function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} -function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} -function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} -function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} -function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} -function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} -function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} -function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} -function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} -function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} -function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} -function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} -function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} -function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} -function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} -function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} -function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} -function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} -function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} -function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} -function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} -function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} -function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} -function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} -function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} -function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} -function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} -function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} -function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} -function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} -function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} -function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} -function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} -function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} -function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} -function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} -function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} -function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} -function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} -function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} -function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} -function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} -function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} -function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} -function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} -function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} -function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} -function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} -function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} -function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} -function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} -function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} -function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} -function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} -function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} -function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} -function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} -function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} -function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} -function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} -function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} -function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} -function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} -function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} -function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} -function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} -function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} -function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} -function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} -function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} -function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} -function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} -function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} -function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} -function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} -function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} -function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} -function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} -function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} -function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} -function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} -function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} -function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} -function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} -function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} -function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} -function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} -function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} -function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} -function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} -function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} -function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} -function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} -function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} -function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} -function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} -function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} -function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} -function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} -function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} -function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} -function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} -function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} -function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} -function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} -function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} -function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} -function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} -function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} -function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} -function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} -function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} -function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} -function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} -function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} -function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} -function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} -function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} -function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} -function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} -function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} -function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} -function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} -function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} -function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} -function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} -function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} -function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} -function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} -function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} -function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} -function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} -function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} -function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} -function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} -function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} -function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} -function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} -function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} -function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} -function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} -function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} -function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} -function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} -function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} -function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} -function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} -function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} -function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} -function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} -function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} -function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} -function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} -function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} -function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} -function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} -function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} -function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} -function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} -function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} -function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} -function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} -function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} -function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} -function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} -function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} -function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} -function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} -function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} -function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} -function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} -function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} -function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} -function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} -function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} -function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} -function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} -function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} -function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} -function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} -function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} -function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} -function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} -function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} -function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} -function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} -function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} -function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} -function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} -function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} -function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} -function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} -function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} -function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} -function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} -function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} -function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} -function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} -function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} -function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} -function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} -function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} -function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} -function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} -function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} -function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} -function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} -function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} -function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} -function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} -function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} -function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} -function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} -function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} -function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} -function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} -function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} -function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} -function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} -function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} -function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} -function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} -function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} -function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} -function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} -function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} -function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} -function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} -function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} -function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} -function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} -function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} -function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} -function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} -function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} -function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} -function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} -function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} -function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} -function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} -function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} -function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} -function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} -function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} -function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} -function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} -function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} -function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} -function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} -function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} -function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} -function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} -function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} -function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} -function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} -function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} -function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} -function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} -function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} -function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} -function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} -function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} -function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} -function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} -function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} -function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} -function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} -function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} -function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} -function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} -function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} -function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} -function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} -function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} -function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} -function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} -function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} -function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} -function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} -function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} -function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} -function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} -function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} -function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} -function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} -function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} -function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} -function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} -function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} -function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} -function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} -function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} -function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} -function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} -function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} -function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} -function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} -function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} -function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} -function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} -function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} -function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} -function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} -function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} -function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} -function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} -function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} -function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} -function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} -function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} -function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} -function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} -function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} -function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} -function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} -function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} -function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} -function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} -function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} -function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} -function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} -function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} -function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} -function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} -function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} -function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} -function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} -function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} -function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} -function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} -function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} -function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} -function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} -function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} -function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} -function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} -function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} -function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} -function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} -function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} -function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} -function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} -function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} -function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} -function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} -function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} -function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} -function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} -function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} -function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} -function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} -function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} -function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} -function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} -function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} -function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} -function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} -function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} -function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} -function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} -function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} -function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} -function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} -function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} -function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} -function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} -function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} -function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} -function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} -function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} -function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} -function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} -function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} -function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} -function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} -function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} -function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} -function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} -function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} -function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} -function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} -function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} -function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} -function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} -function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} -function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} -function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} -function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} -function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} -function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} -function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} -function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} -function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} -function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} -function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} -function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} -function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} -function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} -function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} -function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} -function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} -function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} -function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} -function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} -function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} -function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} -function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} -function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} -function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} -function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} -function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} -function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} -function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} -function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} -function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} -function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} -function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} -function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} -function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} -function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} -function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} -function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} -function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} -function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} -function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} -function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} -function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} -function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} -function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} -function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} -function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} -function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} -function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} -function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} -function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} -function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} -function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} -function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} -function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} -function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} -function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} -function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} -function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} -function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} -function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} -function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} -function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} -function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} -function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} -function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} -function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} -function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} -function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} -function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} -function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} -function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} -function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} -function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} -function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} -function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} -function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} -function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} -function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} -function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} -function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} -function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} -function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} -function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} -function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} -function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} -function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} -function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} -function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} -function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} -function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} -function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} -function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} -function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} -function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} -function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} -function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} -function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} -function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} -function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} -function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} -function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} -function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} -function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} -function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} -function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} -function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} -function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} -function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} -function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} -function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} -function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} -function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} -function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} -function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} -function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} -function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} -function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} -function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} -function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} -function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} -function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} -function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} -function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} -function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} -function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} -function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} -function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} -function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} -function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} -function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} -function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} -function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} -function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} -function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} -function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} -function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} -function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} -function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} -function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} -function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} -function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} -function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} -function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} -function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} -function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} -function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} -function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} -function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} -function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} -function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} -function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} -function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} -function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} -function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} -function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} -function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} -function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} -function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} -function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} -function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} -function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} -function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} -function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} -function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} -function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} -function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} -function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} -function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} -function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} -function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} -function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} -function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} -function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} -function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} -function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} -function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} -function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} -function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} -function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} -function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} -function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} -function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} -function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} -function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} -function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} -function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} -function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} -function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} -function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} -function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} -function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} -function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} -function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} -function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} -function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} -function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} -function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} -function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} -function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} -function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} -function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} -function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} -function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} -function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} -function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} -function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} -function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} -function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} -function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} -function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} -function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} -function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} -function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} -function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} -function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} -function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} -function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} -function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} -function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} -function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} -function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} -function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} -function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} -function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} -function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} -function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} -function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} -function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} -function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} -function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} -function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} -function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} -function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} -function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} -function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} -function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} -function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} -function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} -function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} -function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} -function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} -function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} -function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} -function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} -function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} -function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} -function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} -function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} -function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} -function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} -function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} -function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} -function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} -function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} -function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} -function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} -function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} -function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} -function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} -function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} -function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} -function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} -function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} -function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} -function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} -function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} -function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} -function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} -function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} -function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} -function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} -function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} -function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} -function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} -function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} -function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} -function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} -function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} -function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} -function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} -function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} -function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} -function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} -function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} -function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} -function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} -function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} -function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} -function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} -function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} -function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} -function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} -function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} -function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} -function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} -function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} -function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} -function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} -function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} -function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} -function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} -function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} -function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} -function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} -function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} -function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} -function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} -function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} -function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} -function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} -function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} -function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} -function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} -function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} -function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} -function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} -function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} -function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} -function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} -function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} -function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} -function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} -function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} -function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} -function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} -function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} -function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} -function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} -function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} -function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} -function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} -function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} -if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} -function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} -function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} -function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} -function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} -function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} -function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} -function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} -function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} -function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} -function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} -function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} -function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} -function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} -function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} -function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} -function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} -function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} -function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} -function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} -function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} -function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} -function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} -function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} -function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} -function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} -function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} -function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); -// -------------- RUN GWT INITIALIZATION CODE -------------- -gwtOnLoad(null, 'elk', null); - -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],3:[function(require,module,exports){ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/******************************************************************************* - * Copyright (c) 2021 Kiel University and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -var ELK = require('./elk-api.js').default; - -var ELKNode = function (_ELK) { - _inherits(ELKNode, _ELK); - - function ELKNode() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, ELKNode); - - var optionsClone = Object.assign({}, options); - - var workerThreadsExist = false; - try { - require.resolve('web-worker'); - workerThreadsExist = true; - } catch (e) {} - - // user requested a worker - if (options.workerUrl) { - if (workerThreadsExist) { - var Worker = require('web-worker'); - optionsClone.workerFactory = function (url) { - return new Worker(url); - }; - } else { - console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); - } - } - - // unless no other workerFactory is registered, use the fake worker - if (!optionsClone.workerFactory) { - var _require = require('./elk-worker.min.js'), - _Worker = _require.Worker; - - optionsClone.workerFactory = function (url) { - return new _Worker(url); - }; - } - - return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); - } - - return ELKNode; -}(ELK); - -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports = ELKNode; -ELKNode.default = ELKNode; -},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ -/** - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -module.exports = Worker; -},{}]},{},[3])(3) -}); diff --git a/gen/local/elkjs/lib/main.d.ts b/gen/local/elkjs/lib/main.d.ts deleted file mode 100644 index 780a5cfd..00000000 --- a/gen/local/elkjs/lib/main.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019 TypeFox and others. - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ - -export * from "./elk-api"; -import ElkConstructor from "./elk-api"; -export default ElkConstructor; diff --git a/gen/local/elkjs/lib/main.js b/gen/local/elkjs/lib/main.js deleted file mode 100644 index f7199e87..00000000 --- a/gen/local/elkjs/lib/main.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/******************************************************************************* - * Copyright (c) 2021 Kiel University and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -var ELK = require('./elk-api.js').default; - -var ELKNode = function (_ELK) { - _inherits(ELKNode, _ELK); - - function ELKNode() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, ELKNode); - - var optionsClone = Object.assign({}, options); - - var workerThreadsExist = false; - try { - require.resolve('web-worker'); - workerThreadsExist = true; - } catch (e) {} - - // user requested a worker - if (options.workerUrl) { - if (workerThreadsExist) { - var Worker = require('web-worker'); - optionsClone.workerFactory = function (url) { - return new Worker(url); - }; - } else { - console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); - } - } - - // unless no other workerFactory is registered, use the fake worker - if (!optionsClone.workerFactory) { - var _require = require('./elk-worker.min.js'), - _Worker = _require.Worker; - - optionsClone.workerFactory = function (url) { - return new _Worker(url); - }; - } - - return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); - } - - return ELKNode; -}(ELK); - -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports = ELKNode; -ELKNode.default = ELKNode; \ No newline at end of file diff --git a/gen/local/elkjs/package.json b/gen/local/elkjs/package.json deleted file mode 100644 index 5cd49ffe..00000000 --- a/gen/local/elkjs/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "elkjs", - "version": "0.8.2", - "author": { - "name": "Ulf Rüegg", - "email": "uruurumail@gmail.com" - }, - "description": "Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.", - "main": "lib/main", - "types": "lib/main", - "files": [ - "lib" - ], - "repository": { - "type": "git", - "url": "https://github.com/kieler/elkjs.git" - }, - "keywords": [ - "graph", - "layout", - "layered", - "ports", - "dataflow" - ], - "license": "EPL-2.0", - "scripts": { - "test": "mocha test/mocha", - "gradle": "./gradlew lib", - "babel": "babel src/js/ -d build/js/", - "browserifyApi": "browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js", - "browserifyBundle": "browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js", - "browserify": "mkdirp lib && npm run browserifyApi && npm run browserifyBundle", - "cp": "cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/", - "js": "npm run babel && npm run browserify && npm run cp", - "build": "npm run gradle && npm run js", - "clean": "./gradlew clean && rm -r lib", - "setDevVersion": "npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\"" - }, - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.0", - "browserify": "^14.4.0", - "chai": "^4.0.2", - "chai-as-promised": "^7.1.1", - "mkdirp": "^0.5.0", - "mocha": "^10.0.0", - "web-worker": "^1.0.0" - }, - "publishConfig": { - "access": "public", - "tag": "next" - } -} From bf3eb498ab5001e35d739c0470af4c72c38f70f6 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 16:57:12 -0700 Subject: [PATCH 15/53] forgot directory add --- tool/gh_actions/install_schematic.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/gh_actions/install_schematic.sh b/tool/gh_actions/install_schematic.sh index e9e1e240..d6266924 100755 --- a/tool/gh_actions/install_schematic.sh +++ b/tool/gh_actions/install_schematic.sh @@ -18,7 +18,7 @@ npm install --only=dev npm run build cd ../.. -mkdir doc/api/d3-hwschematic-assets +mkdir -p doc/api/d3-hwschematic-assets cp -r doc/d3-hwschematic/node_modules/d3 doc/api/d3-hwschematic-assets cp -r doc/d3-hwschematic/node_modules/elkjs doc/api/d3-hwschematic-assets cp doc/d3-hwschematic/dist/d3-hwschematic.{css,js} doc/api/d3-hwschematic-assets From 8bc8ee04d5723665d1f0e88e64b8d6d7b83a5894 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 17:01:24 -0700 Subject: [PATCH 16/53] formatting --- gen/arbiter_gen.dart | 14 +++++++------- gen/fifo_gen.dart | 38 +++++++++++++++++++------------------- gen/generate.dart | 2 +- gen/one_hot_gen.dart | 24 ++++++++++++------------ gen/rf_gen.dart | 38 +++++++++++++++++++------------------- gen/rotate_gen.dart | 16 ++++++++-------- 6 files changed, 66 insertions(+), 66 deletions(-) diff --git a/gen/arbiter_gen.dart b/gen/arbiter_gen.dart index 28808b8f..db9e376b 100644 --- a/gen/arbiter_gen.dart +++ b/gen/arbiter_gen.dart @@ -13,14 +13,14 @@ import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/arbiter.dart'; void arbiter_gen() async { - const width = 8; + const width = 8; - final vector = Logic(width: width); - final reqs = List.generate(width, (i) => vector[i]); + final vector = Logic(width: width); + final reqs = List.generate(width, (i) => vector[i]); - final arb = PriorityArbiter(reqs); + final arb = PriorityArbiter(reqs); - await arb.build(); - final res = arb.generateSynth(); - File('build/${arb.definitionName}.v').openWrite().write(res); + await arb.build(); + final res = arb.generateSynth(); + File('build/${arb.definitionName}.v').openWrite().write(res); } diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart index ae4273d6..bcd68aec 100644 --- a/gen/fifo_gen.dart +++ b/gen/fifo_gen.dart @@ -12,25 +12,25 @@ import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/fifo.dart'; -void fifo_gen () async { - final clk = SimpleClockGenerator(10).clk; - final reset = Logic()..put(0); +void fifo_gen() async { + final clk = SimpleClockGenerator(10).clk; + final reset = Logic()..put(0); - final wrEn = Logic()..put(0); - final rdEn = Logic()..put(0); - final wrData = Logic(width: 32); + final wrEn = Logic()..put(0); + final rdEn = Logic()..put(0); + final wrData = Logic(width: 32); - final fifo = Fifo( - clk, - reset, - writeEnable: wrEn, - readEnable: rdEn, - writeData: wrData, - generateError: true, - generateOccupancy: true, - depth: 3, - ); - await fifo.build(); - final res = fifo.generateSynth(); - File('build/${fifo.definitionName}.v').openWrite().write(res); + final fifo = Fifo( + clk, + reset, + writeEnable: wrEn, + readEnable: rdEn, + writeData: wrData, + generateError: true, + generateOccupancy: true, + depth: 3, + ); + await fifo.build(); + final res = fifo.generateSynth(); + File('build/${fifo.definitionName}.v').openWrite().write(res); } diff --git a/gen/generate.dart b/gen/generate.dart index 8ed64fc6..115df888 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -20,4 +20,4 @@ void main() { one_hot_gen(); rf_gen(); rotate_gen(); -} \ No newline at end of file +} diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart index d6abb785..d625872e 100644 --- a/gen/one_hot_gen.dart +++ b/gen/one_hot_gen.dart @@ -13,16 +13,16 @@ import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/one_hot.dart'; import 'package:rohd_hcl/src/utils.dart'; -void one_hot_gen () async { - const pos = 8; - final w = log2Ceil(pos + 1); - final mod = BinaryToOneHot(Const(pos, width: w)); - await mod.build(); - final res = mod.generateSynth(); - File('build/${mod.definitionName}.v').openWrite().write(res); - final val = BigInt.from(2).pow(pos); - final mod2 = OneHotToBinary(Const(val, width: pos + 1)); - await mod2.build(); - final res2 = mod2.generateSynth(); - File('build/${mod2.definitionName}.v').openWrite().write(res2); +void one_hot_gen() async { + const pos = 8; + final w = log2Ceil(pos + 1); + final mod = BinaryToOneHot(Const(pos, width: w)); + await mod.build(); + final res = mod.generateSynth(); + File('build/${mod.definitionName}.v').openWrite().write(res); + final val = BigInt.from(2).pow(pos); + final mod2 = OneHotToBinary(Const(val, width: pos + 1)); + await mod2.build(); + final res2 = mod2.generateSynth(); + File('build/${mod2.definitionName}.v').openWrite().write(res2); } diff --git a/gen/rf_gen.dart b/gen/rf_gen.dart index 705a97b4..e881c54e 100644 --- a/gen/rf_gen.dart +++ b/gen/rf_gen.dart @@ -13,29 +13,29 @@ import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; import 'package:test/test.dart'; -void rf_gen () async { - const dataWidth = 16; - const addrWidth = 4; +void rf_gen() async { + const dataWidth = 16; + const addrWidth = 4; - const numWr = 2; - const numRd = 2; + const numWr = 2; + const numRd = 2; - final clk = SimpleClockGenerator(10).clk; - final reset = Logic(); + final clk = SimpleClockGenerator(10).clk; + final reset = Logic(); - final wrPorts = [ - for (var i = 0; i < numWr; i++) - DataPortInterface(dataWidth, addrWidth)..en.put(0) - ]; - final rdPorts = [ - for (var i = 0; i < numRd; i++) - DataPortInterface(dataWidth, addrWidth)..en.put(0) - ]; + final wrPorts = [ + for (var i = 0; i < numWr; i++) + DataPortInterface(dataWidth, addrWidth)..en.put(0) + ]; + final rdPorts = [ + for (var i = 0; i < numRd; i++) + DataPortInterface(dataWidth, addrWidth)..en.put(0) + ]; - final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); + final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); - await rf.build(); + await rf.build(); - final res = rf.generateSynth(); - File('build/${rf.definitionName}.v').openWrite().write(res); + final res = rf.generateSynth(); + File('build/${rf.definitionName}.v').openWrite().write(res); } diff --git a/gen/rotate_gen.dart b/gen/rotate_gen.dart index e15147b1..9c461ed2 100644 --- a/gen/rotate_gen.dart +++ b/gen/rotate_gen.dart @@ -13,12 +13,12 @@ import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/rotate.dart'; void rotate_gen() async { - final rot = RotateLeft( - Const(0xf000, width: 16), - Const(4, width: 8), - maxAmount: 4, - ); - await rot.build(); - final res = rot.generateSynth(); - File('build/${rot.definitionName}.v').openWrite().write(res); + final rot = RotateLeft( + Const(0xf000, width: 16), + Const(4, width: 8), + maxAmount: 4, + ); + await rot.build(); + final res = rot.generateSynth(); + File('build/${rot.definitionName}.v').openWrite().write(res); } From 1e2e42bf6e5365271f1b3a801a19b9de83d8f537 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 18:15:03 -0700 Subject: [PATCH 17/53] dart cleanup --- doc/d3-hwschematic-assets/LICENSE | 277 - .../d3-hwschematic-dark.css | 96 - doc/d3-hwschematic-assets/d3-hwschematic.css | 91 - doc/d3-hwschematic-assets/d3-hwschematic.js | 2887 - doc/d3-hwschematic-assets/d3/LICENSE | 27 - doc/d3-hwschematic-assets/d3/dist/d3.js | 19708 --- doc/d3-hwschematic-assets/d3/dist/d3.min.js | 2 - doc/d3-hwschematic-assets/d3/dist/d3.node.js | 278 - doc/d3-hwschematic-assets/d3/dist/package.js | 16 - doc/d3-hwschematic-assets/elkjs/LICENSE.md | 264 - doc/d3-hwschematic-assets/elkjs/README.md | 378 - .../elkjs/lib/elk-api.d.ts | 131 - .../elkjs/lib/elk-api.js | 224 - .../elkjs/lib/elk-worker.d.ts | 1 - .../elkjs/lib/elk-worker.js | 100643 --------------- .../elkjs/lib/elk-worker.min.js | 6149 - .../elkjs/lib/elk.bundled.d.ts | 13 - .../elkjs/lib/elk.bundled.js | 6444 - doc/d3-hwschematic-assets/elkjs/lib/main.d.ts | 13 - doc/d3-hwschematic-assets/elkjs/lib/main.js | 67 - doc/d3-hwschematic-assets/elkjs/package.json | 53 - gen/arbiter_gen.dart | 5 +- gen/fifo_gen.dart | 2 +- gen/generate.dart | 12 +- gen/one_hot_gen.dart | 2 +- gen/rf_gen.dart | 3 +- gen/rotate_gen.dart | 2 +- gen/trial.dart | 0 test/arbiter_test.dart | 1 - test/fifo_test.dart | 1 - test/rf_test.dart | 1 - test/rotate_test.dart | 2 - 32 files changed, 14 insertions(+), 137779 deletions(-) delete mode 100644 doc/d3-hwschematic-assets/LICENSE delete mode 100644 doc/d3-hwschematic-assets/d3-hwschematic-dark.css delete mode 100644 doc/d3-hwschematic-assets/d3-hwschematic.css delete mode 100644 doc/d3-hwschematic-assets/d3-hwschematic.js delete mode 100644 doc/d3-hwschematic-assets/d3/LICENSE delete mode 100644 doc/d3-hwschematic-assets/d3/dist/d3.js delete mode 100644 doc/d3-hwschematic-assets/d3/dist/d3.min.js delete mode 100644 doc/d3-hwschematic-assets/d3/dist/d3.node.js delete mode 100644 doc/d3-hwschematic-assets/d3/dist/package.js delete mode 100644 doc/d3-hwschematic-assets/elkjs/LICENSE.md delete mode 100644 doc/d3-hwschematic-assets/elkjs/README.md delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-api.js delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/main.d.ts delete mode 100644 doc/d3-hwschematic-assets/elkjs/lib/main.js delete mode 100644 doc/d3-hwschematic-assets/elkjs/package.json create mode 100644 gen/trial.dart diff --git a/doc/d3-hwschematic-assets/LICENSE b/doc/d3-hwschematic-assets/LICENSE deleted file mode 100644 index d3087e4c..00000000 --- a/doc/d3-hwschematic-assets/LICENSE +++ /dev/null @@ -1,277 +0,0 @@ -Eclipse Public License - v 2.0 - - THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE - PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION - OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - - a) in the case of the initial Contributor, the initial content - Distributed under this Agreement, and - - b) in the case of each subsequent Contributor: - i) changes to the Program, and - ii) additions to the Program; - where such changes and/or additions to the Program originate from - and are Distributed by that particular Contributor. A Contribution - "originates" from a Contributor if it was added to the Program by - such Contributor itself or anyone acting on such Contributor's behalf. - Contributions do not include changes or additions to the Program that - are not Modified Works. - -"Contributor" means any person or entity that Distributes the Program. - -"Licensed Patents" mean patent claims licensable by a Contributor which -are necessarily infringed by the use or sale of its Contribution alone -or when combined with the Program. - -"Program" means the Contributions Distributed in accordance with this -Agreement. - -"Recipient" means anyone who receives the Program under this Agreement -or any Secondary License (as applicable), including Contributors. - -"Derivative Works" shall mean any work, whether in Source Code or other -form, that is based on (or derived from) the Program and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. - -"Modified Works" shall mean any work in Source Code or other form that -results from an addition to, deletion from, or modification of the -contents of the Program, including, for purposes of clarity any new file -in Source Code form that contains any contents of the Program. Modified -Works shall not include works that contain only declarations, -interfaces, types, classes, structures, or files of the Program solely -in each case in order to link to, bind by name, or subclass the Program -or Modified Works thereof. - -"Distribute" means the acts of a) distributing or b) making available -in any manner that enables the transfer of a copy. - -"Source Code" means the form of a Program preferred for making -modifications, including but not limited to software source code, -documentation source, and configuration files. - -"Secondary License" means either the GNU General Public License, -Version 2.0, or any later versions of that license, including any -exceptions or additional permissions as identified by the initial -Contributor. - -2. GRANT OF RIGHTS - - a) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free copyright - license to reproduce, prepare Derivative Works of, publicly display, - publicly perform, Distribute and sublicense the Contribution of such - Contributor, if any, and such Derivative Works. - - b) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free patent - license under Licensed Patents to make, use, sell, offer to sell, - import and otherwise transfer the Contribution of such Contributor, - if any, in Source Code or other form. This patent license shall - apply to the combination of the Contribution and the Program if, at - the time the Contribution is added by the Contributor, such addition - of the Contribution causes such combination to be covered by the - Licensed Patents. The patent license shall not apply to any other - combinations which include the Contribution. No hardware per se is - licensed hereunder. - - c) Recipient understands that although each Contributor grants the - licenses to its Contributions set forth herein, no assurances are - provided by any Contributor that the Program does not infringe the - patent or other intellectual property rights of any other entity. - Each Contributor disclaims any liability to Recipient for claims - brought by any other entity based on infringement of intellectual - property rights or otherwise. As a condition to exercising the - rights and licenses granted hereunder, each Recipient hereby - assumes sole responsibility to secure any other intellectual - property rights needed, if any. For example, if a third party - patent license is required to allow Recipient to Distribute the - Program, it is Recipient's responsibility to acquire that license - before distributing the Program. - - d) Each Contributor represents that to its knowledge it has - sufficient copyright rights in its Contribution, if any, to grant - the copyright license set forth in this Agreement. - - e) Notwithstanding the terms of any Secondary License, no - Contributor makes additional grants to any Recipient (other than - those set forth in this Agreement) as a result of such Recipient's - receipt of the Program under the terms of a Secondary License - (if permitted under the terms of Section 3). - -3. REQUIREMENTS - -3.1 If a Contributor Distributes the Program in any form, then: - - a) the Program must also be made available as Source Code, in - accordance with section 3.2, and the Contributor must accompany - the Program with a statement that the Source Code for the Program - is available under this Agreement, and informs Recipients how to - obtain it in a reasonable manner on or through a medium customarily - used for software exchange; and - - b) the Contributor may Distribute the Program under a license - different than this Agreement, provided that such license: - i) effectively disclaims on behalf of all other Contributors all - warranties and conditions, express and implied, including - warranties or conditions of title and non-infringement, and - implied warranties or conditions of merchantability and fitness - for a particular purpose; - - ii) effectively excludes on behalf of all other Contributors all - liability for damages, including direct, indirect, special, - incidental and consequential damages, such as lost profits; - - iii) does not attempt to limit or alter the recipients' rights - in the Source Code under section 3.2; and - - iv) requires any subsequent distribution of the Program by any - party to be under a license that satisfies the requirements - of this section 3. - -3.2 When the Program is Distributed as Source Code: - - a) it must be made available under this Agreement, or if the - Program (i) is combined with other material in a separate file or - files made available under a Secondary License, and (ii) the initial - Contributor attached to the Source Code the notice described in - Exhibit A of this Agreement, then the Program may be made available - under the terms of such Secondary Licenses, and - - b) a copy of this Agreement must be included with each copy of - the Program. - -3.3 Contributors may not remove or alter any copyright, patent, -trademark, attribution notices, disclaimers of warranty, or limitations -of liability ("notices") contained within the Program from any copy of -the Program which they Distribute, provided that Contributors may add -their own appropriate notices. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities -with respect to end users, business partners and the like. While this -license is intended to facilitate the commercial use of the Program, -the Contributor who includes the Program in a commercial product -offering should do so in a manner which does not create potential -liability for other Contributors. Therefore, if a Contributor includes -the Program in a commercial product offering, such Contributor -("Commercial Contributor") hereby agrees to defend and indemnify every -other Contributor ("Indemnified Contributor") against any losses, -damages and costs (collectively "Losses") arising from claims, lawsuits -and other legal actions brought by a third party against the Indemnified -Contributor to the extent caused by the acts or omissions of such -Commercial Contributor in connection with its distribution of the Program -in a commercial product offering. The obligations in this section do not -apply to any claims or Losses relating to any actual or alleged -intellectual property infringement. In order to qualify, an Indemnified -Contributor must: a) promptly notify the Commercial Contributor in -writing of such claim, and b) allow the Commercial Contributor to control, -and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may -participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial -product offering, Product X. That Contributor is then a Commercial -Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance -claims and warranties are such Commercial Contributor's responsibility -alone. Under this section, the Commercial Contributor would have to -defend claims against the other Contributors related to those performance -claims and warranties, and if a court requires any other Contributor to -pay any damages as a result, the Commercial Contributor must pay -those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" -BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF -TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the Program and assumes all -risks associated with its exercise of rights under this Agreement, -including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs -or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS -SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE -EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of -the remainder of the terms of this Agreement, and without further -action by the parties hereto, such provision shall be reformed to the -minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the -Program itself (excluding combinations of the Program with other software -or hardware) infringes such Recipient's patent(s), then such Recipient's -rights granted under Section 2(b) shall terminate as of the date such -litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it -fails to comply with any of the material terms or conditions of this -Agreement and does not cure such failure in a reasonable period of -time after becoming aware of such noncompliance. If all Recipient's -rights under this Agreement terminate, Recipient agrees to cease use -and distribution of the Program as soon as reasonably practicable. -However, Recipient's obligations under this Agreement and any licenses -granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, -but in order to avoid inconsistency the Agreement is copyrighted and -may only be modified in the following manner. The Agreement Steward -reserves the right to publish new versions (including revisions) of -this Agreement from time to time. No one other than the Agreement -Steward has the right to modify this Agreement. The Eclipse Foundation -is the initial Agreement Steward. The Eclipse Foundation may assign the -responsibility to serve as the Agreement Steward to a suitable separate -entity. Each new version of the Agreement will be given a distinguishing -version number. The Program (including Contributions) may always be -Distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is published, -Contributor may elect to Distribute the Program (including its -Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient -receives no rights or licenses to the intellectual property of any -Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted -under this Agreement are reserved. Nothing in this Agreement is intended -to be enforceable by any entity that is not a Contributor or Recipient. -No third-party beneficiary rights are created under this Agreement. - -Exhibit A - Form of Secondary Licenses Notice - -"This Source Code may also be made available under the following -Secondary Licenses when the conditions for such availability set forth -in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), -version(s), and exceptions or additional permissions here}." - - Simply including a copy of this Agreement, including this Exhibit A - is not sufficient to license the Source Code under Secondary Licenses. - - If it is not possible or desirable to put the notice in a particular - file, then You may include the notice in a location (such as a LICENSE - file in a relevant directory) where a recipient would be likely to - look for such a notice. - - You may add additional accurate notices of copyright ownership. diff --git a/doc/d3-hwschematic-assets/d3-hwschematic-dark.css b/doc/d3-hwschematic-assets/d3-hwschematic-dark.css deleted file mode 100644 index de7803b7..00000000 --- a/doc/d3-hwschematic-assets/d3-hwschematic-dark.css +++ /dev/null @@ -1,96 +0,0 @@ -.d3-hwschematic text { - font-family: monospace; -} - -.d3-hwschematic .node { - stroke: #BDBDBD; - stroke-width: 1px; - fill: #e6ffff; - border: 2px; -} - - -.d3-hwschematic .node-0 { - fill: white; -} - -.d3-hwschematic .node-1 { -} - -.d3-hwschematic .node text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic.node-operator { - stroke: lime; - stroke-width: 1px; - fill: aquamarine; - border: 2px; -} - -.d3-hwschematic.node-operator text { - font-style: normal; - font-family: monospace; - fill: lime; - stroke-width: 0; -} - -.d3-hwschematic .node-external-port { - stroke: lime; - stroke-width: 0; - fill: #BDBDBD; - border: 1px; -} - -.d3-hwschematic .node-external-port text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic .link { - stroke: lime; - fill: none; -} - -.d3-hwschematic .junction-point { - stroke: lime; - fill: lime; -} - -.d3-hwschematic .link-selected { - stroke: orange; - fill: none; -} - -.d3-hwschematic .link-wrap { - stroke-width: 8; - fill: none; - stroke: transparent; - stroke-opacity: .6; -} -.d3-hwschematic .link-wrap.link-wrap-activated { - stroke: deepskyblue; -} - -.d3-hwschematic .port { - stroke: lime; - opacity: .6; -} - -.d3-hwschematic tspan { - white-space: pre; -} - -.d3-hwschematic-tooltip { - z-index: 2; - background: cornsilk; - border: 1px solid black; - border-radius: 5px; - padding: 5px; - position: fixed; -} \ No newline at end of file diff --git a/doc/d3-hwschematic-assets/d3-hwschematic.css b/doc/d3-hwschematic-assets/d3-hwschematic.css deleted file mode 100644 index 37ad3ba2..00000000 --- a/doc/d3-hwschematic-assets/d3-hwschematic.css +++ /dev/null @@ -1,91 +0,0 @@ -.d3-hwschematic text { - font-family: monospace; -} - -.d3-hwschematic .node { - stroke: #BDBDBD; - stroke-width: 1px; - fill: #e6ffff; - border: 2px; -} - - -.d3-hwschematic .node-0 { - fill: white; -} - -.d3-hwschematic .node-1 { -} - -.d3-hwschematic .node text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic.node-operator { - stroke: BLACK; - stroke-width: 1px; - fill: aquamarine; - border: 2px; -} - -.d3-hwschematic.node-operator text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic .node-external-port { - stroke: #000; - stroke-width: 0; - fill: #BDBDBD; - border: 1px; -} - -.d3-hwschematic .node-external-port text { - font-style: normal; - font-family: monospace; - fill: black; - stroke-width: 0; -} - -.d3-hwschematic .link { - stroke: #000; - fill: none; -} - -.d3-hwschematic .link-selected { - stroke: orange; - fill: none; -} - -.d3-hwschematic .link-wrap { - stroke-width: 8; - fill: none; - stroke: transparent; - stroke-opacity: .6; -} -.d3-hwschematic .link-wrap.link-wrap-activated { - stroke: deepskyblue; -} - -.d3-hwschematic .port { - stroke: #000; - opacity: .6; -} - -.d3-hwschematic tspan { - white-space: pre; -} - -.d3-hwschematic-tooltip { - z-index: 2; - background: cornsilk; - border: 1px solid black; - border-radius: 5px; - padding: 5px; - position: fixed; -} \ No newline at end of file diff --git a/doc/d3-hwschematic-assets/d3-hwschematic.js b/doc/d3-hwschematic-assets/d3-hwschematic.js deleted file mode 100644 index 7d12d9fd..00000000 --- a/doc/d3-hwschematic-assets/d3-hwschematic.js +++ /dev/null @@ -1,2887 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3'), require('elkjs')) : - typeof define === 'function' && define.amd ? define(['exports', 'd3', 'elkjs'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3, global.ELK)); -})(this, (function (exports, d3, ELK) { 'use strict'; - - function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - - function _interopNamespace(e) { - if (e && e.__esModule) return e; - var n = Object.create(null); - if (e) { - Object.keys(e).forEach(function (k) { - if (k !== 'default') { - var d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: function () { return e[k]; } - }); - } - }); - } - n["default"] = e; - return Object.freeze(n); - } - - var d3__namespace = /*#__PURE__*/_interopNamespace(d3); - var ELK__default = /*#__PURE__*/_interopDefaultLegacy(ELK); - - var PORT_MARKERS = { - "WEST": { - "INPUT": "#westInPortMarker", - "OUTPUT": "#westOutPortMarker"}, - "EAST": { - "INPUT": "#eastInPortMarker", - "OUTPUT": "#eastOutPortMarker"}, - "NORTH": { - "INPUT": "#northInPortMarker", - "OUTPUT": "#northOutPortMarker"}, - "SOUTH": { - "INPUT": "#southInPortMarker" , - "OUTPUT": "#southOutPortMarker"}, - }; - - function addMarkers(defs, PORT_PIN_SIZE) { - // real size of marker - var w = 7; - var h = 10; - - function addMarker(id, arrowTranslate, arrowRotate=0) { - var rightArrow = "M 0 4 2 4 2 0 7 5 2 10 2 6 0 6 Z"; - var trans = ""; - - if (arrowTranslate[0] !== 0 || arrowTranslate[1] !== 0) - trans += "translate(" + arrowTranslate[0] + ", " + arrowTranslate[1] + ")"; - - if (arrowRotate !== 0) - trans += "rotate(" + arrowRotate + ")"; - - var cont = defs.append("g"); - - cont - .attr("id", id) - .attr("class", "port") - .append("path") - .attr("d", rightArrow); - - if (trans) - cont - .attr("transform", trans); - } - - var horizYOffset = (PORT_PIN_SIZE[1] - h) * 0.5; - var horizYOffset2 = (PORT_PIN_SIZE[1] + h) * 0.5; - - var vertXOffset = -(PORT_PIN_SIZE[1] - w) * 0.5; - addMarker("westInPortMarker", [0, horizYOffset]); - addMarker("westOutPortMarker",[w, horizYOffset2], 180); - - addMarker("eastInPortMarker", [w, horizYOffset2], 180); - addMarker("eastOutPortMarker",[0, horizYOffset]); - - addMarker("northInPortMarker", [vertXOffset, -w], 90); - addMarker("northOutPortMarker",[vertXOffset, 0], 270); - - addMarker("southInPortMarker", [vertXOffset, w], 270); - addMarker("southOutPortMarker",[vertXOffset, 0], 90); - } - - function getIOMarker(d) { - var side = d.properties.side; - var portType = d.direction; - var marker = PORT_MARKERS[side][portType]; - if (marker === undefined) { - throw new Error("Wrong side, portType", side, portType) - } - return marker; - } - - function portLevel(port){ - if(!port.parent) return 0; - else { - return portLevel(port.parent)+1; - } - - } - - /* - * Basic renderer which renders node as a box with ports, optionally with the body text - */ - class GenericNodeRenderer { - /** - * @param schematic instance of HwSchematic - **/ - constructor(schematic) { - this.schematic = schematic; - } - /** - * check if this selector should be used for this node - **/ - selector(node) { - // always return true, because this is a default renderer which just renders a box with ports - return true; - } - - getNodeLabelWidth(d) { - var schematic = this.schematic; - var widthOfText = schematic.widthOfText.bind(schematic); - return widthOfText(d.hwMeta.name); - } - - /** - * Init bodyText and resolve size of node from body text and ports - * - * @param d component node - * - */ - initNodeSizes(d) { - var schematic = this.schematic; - if (d.properties["org.eclipse.elk.noLayout"]) - return; - var widthOfText = schematic.widthOfText.bind(schematic); - - var labelW = this.getNodeLabelWidth(d); - var max = Math.max; - var bodyTextSize = this.initBodyTextLines(d); - const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; - bodyTextSize[0] = Math.min(bodyTextSize[0], MBT[0]); - bodyTextSize[1] = Math.min(bodyTextSize[1], MBT[1]); - - // {PortSide: (portCnt, portWidth)} - var portDim = { - "WEST": [0, 0], - "EAST": [0, 0], - "SOUTH": [0, 0], - "NORTH": [0, 0] - }; - var PORT_PIN_SIZE_x = schematic.PORT_PIN_SIZE[0], - PORT_PIN_SIZE_y = schematic.PORT_PIN_SIZE[1]; - var CHAR_WIDTH = schematic.CHAR_WIDTH; - if (d.ports != null) - d.ports.forEach(function(p) { - var t = p.properties.side; - var indent = 0; - if (portLevel(p) > 0) - indent = (portLevel(p)+1) * CHAR_WIDTH; - var portW = widthOfText(p.hwMeta.name) + indent; - var pDim = portDim[t]; - if (pDim === undefined) - throw new Error(t); - pDim[0]++; - pDim[1] = max(pDim[1], portW); - - // dimension of connection pin - p.width = PORT_PIN_SIZE_x; - p.height = PORT_PIN_SIZE_y; - }); - - var west = portDim["WEST"], - east = portDim["EAST"], - south = portDim["SOUTH"], - north = portDim["NORTH"]; - - var portColums = 0; - if (west[0] && west[1] > 0) - portColums += 1; - if (east[0] && east[1] > 0) - portColums += 1; - - var middleSpacing = 0; - if (portColums == 2) - middleSpacing = schematic.NODE_MIDDLE_PORT_SPACING; - var portW = max(west[1], east[1]); - - d.portLabelWidth = portW; - d.width = max(portW * portColums + middleSpacing, labelW, - max(south[0], north[0]) * schematic.PORT_HEIGHT) - + bodyTextSize[0] + CHAR_WIDTH; - d.height = max(max(west[0], east[0]) * schematic.PORT_HEIGHT, - bodyTextSize[1], - max(south[1], north[1]) * CHAR_WIDTH); - } - - /** - * Split bodyText of one to lines and resolve dimensions of body text - * - * @param d component node - */ - initBodyTextLines(d) { - var schematic = this.schematic; - var max = Math.max; - var bt = d.hwMeta.bodyText; - if (bt) { - if (typeof bt === "string") { - bt = d.hwMeta.bodyText = bt.split("\n"); - } - var bodyTextW = 0; - bt.forEach(function(line) { - bodyTextW = max(bodyTextW, line.length); - }); - bodyTextW *= schematic.CHAR_WIDTH; - var bodyTextH = bt.length * schematic.CHAR_HEIGHT; - } else { - var bodyTextW = 0; - var bodyTextH = 0; - } - var pad = schematic.BODY_TEXT_PADDING; - if (bodyTextW > 0) - bodyTextW += pad[1] + pad[3]; - if (bodyTextH > 0) - bodyTextH += pad[0] + pad[2]; - return [bodyTextW, bodyTextH]; - } - - /** - * @param bodyTexts list of strings - */ - renderTextLines(bodyTexts) { - var schematic = this.schematic; - const padTop = schematic.BODY_TEXT_PADDING[0]; - const padLeft = schematic.BODY_TEXT_PADDING[3]; - const MBT = schematic.MAX_NODE_BODY_TEXT_SIZE; - const CHAR_WIDTH = schematic.CHAR_WIDTH; - const CHAR_HEIGHT = schematic.CHAR_HEIGHT; - - bodyTexts.each(function() { - var bodyText = d3__namespace.select(this); - var d = bodyText.data()[0]; - var bodyTextLines = d.hwMeta.bodyText; - var _MBT = [MBT[0] / CHAR_WIDTH, MBT[1] / CHAR_HEIGHT]; - - if (bodyTextLines && (!d.children - || d.children.length == 0)) { - bodyTextLines.forEach(function(line, dy) { - if (line.length > _MBT[0]) - line = line.slice(0, _MBT[0] - 3) + "..."; - if (dy > _MBT[1]) - return; - bodyText - .append("tspan") - .attr("x", d.portLabelWidth + padLeft) - .attr("y", padTop) - .attr("dy", dy + "em") - .text(line); - }); - } - }); - } - - /** - * Prepare node before ELK processing - * */ - prepare(node) { - this.initNodeSizes(node); - } - - /** - * Render svg of node - * - * @param root root svg element where nodes should be rendered - * @param nodeG svg g for each node with data binded - * */ - render(root, nodeG) { - var node = nodeG - .attr("class", function(d) { - var cssClass; - if (d.hwMeta && d.hwMeta.isExternalPort) { - cssClass = "node-external-port"; - } else { - let depth = 0; - let parent = d.hwMeta.parent; - while (parent) { - ++depth; - parent = parent.hwMeta.parent; - } - if (depth % 2 === 0) { - cssClass = "node node-0"; - } else { - cssClass = "node node-1"; - } - } - if (d.hwMeta.cssClass) { - cssClass += " " + d.hwMeta.cssClass; - } - return cssClass; - }) - .attr("style", function(d) { return d.hwMeta.cssStyle; }); - var nodeBody = node.append("rect"); - // set dimensions and style of node - nodeBody - .attr("width", function(d) { return d.width }) - .attr("height", function(d) { return d.height }) - .attr("rx", 5) // rounded corners - .attr("ry", 5); - - // apply node positions - node - .attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }); - - // spot node label - node.append("text") - .text(function(d) { - if (d.hwMeta && !d.hwMeta.isExternalPort) { - return d.hwMeta.name; - } else { - return ""; - } - }); - - // spot node body text - node.append("text") - .call(this.renderTextLines.bind(this)); - - this.renderPorts(node); - } - - renderPorts(node) { - var schematic = this.schematic; - var PORT_HEIGHT = schematic.PORT_HEIGHT; - var CHAR_WIDTH = schematic.CHAR_WIDTH; - var portG = node.selectAll(".port") - .data(function(d) { - return d.ports || []; - }) - .enter() - .append("g") - .attr("style", (d) => d.hwMeta.cssStyle) - .attr("class", (d) => { - if (d.hwMeta.cssStyle) { - return "port " + d.hwMeta.cssClass; - } else { - return "port"; - } - }); - - // apply port positions - portG - .attr("transform", function(d) { - return "translate(" + d.x + "," + d.y + ")" - }); - - node.each(function(d) { - var ignorePortLabel = typeof d.children !== "undefined"; - if (d.ports != null) { - d.ports.forEach(function(p) { - p.ignoreLabel = ignorePortLabel; - }); - } - }); - - // spot port name - portG.append("text") - .text(function(d, i) { - /*var next_d = port_data[i+1]; - if (next_d && next_d.hwMeta.level > d.hwMeta.level) { - console.log(d.hwMeta.name); - //d.hwMeta.name=toString("+"); - } - */ - if (d.ignoreLabel) - return ""; - else if (d.parent) { - var indent = '-'.repeat(portLevel(d)); - var side = d.properties.side; - if (side == "WEST") { - return indent + d.hwMeta.name; } else if (side == "EAST") { - return d.hwMeta.name + indent; - } else { - throw new Error(side); - } - } else - return d.hwMeta.name; - }) - .attr("x", function(d) { - var side = d.properties.side; - if (side == "WEST") { - return 7; - } else if (side == "EAST") { - if (typeof this.getBBox == "undefined") { - // JSDOM under nodejs - return -this.textContent.length * CHAR_WIDTH - CHAR_WIDTH / 2 - } - return -this.getBBox().width - CHAR_WIDTH / 2; - } else if (side == "NORTH") { - return 0; - } else if (side == "SOUTH") { - return 0; - } else { - throw new Error(side); - } - }) - .attr("y", PORT_HEIGHT * 0.75); - - // spot input/output marker - portG.append("use") - .attr("href", getIOMarker); - } - } - - /** - * Container for node renderer instances. - * This object initiates the node to renderer binding process in prepare() - * and executes node rendering in render() - */ - class NodeRendererContainer { - constructor() { - this.renderers = []; - } - - // add new renderer - registerRenderer(renderer) { - var rs = this.renderers; - for (var i = 0; i < rs.length; i++) { - var r = rs[i]; - if (r.constructor === GenericNodeRenderer) { - // insert custom renderer before GenericNodeRenderer - // to prevent GenericNodeRenderer.selector from prematurely halting renderers.some - rs.splice(i, 0, renderer); - return; - } - } - rs.push(renderer); - } - - // Bind node to renderer recursively - prepare(node) { - var r = null; - this.renderers.some(function(ren) { - if (ren.selector(node)) - r = ren; - return r != null; - }); - if (r == null) { - throw new Error("Can not resolve renderer for node " + node); - } - node.hwMeta.renderer = r; - r.prepare(node); - var prep = this.prepare.bind(this); - if (node.children) { - node.children.forEach(prep); - } - if (node._children) { - node._children.forEach(prep); - } - } - - // Render all nodes using selected renderer - render(root, nodeG) { - var renderers = this.renderers; - var nodesForRenderer = renderers.map(() => []); - nodeG.each(function(d) { - var n = this; - renderers.forEach(function(r, i) { - if (d.hwMeta.renderer === r) { - nodesForRenderer[i].push(n); - } - }); - }); - nodesForRenderer.forEach(function(nodes, i) { - if (nodes.length) { - nodes = d3__namespace.selectAll(nodes); - renderers[i].render(root, nodes); - } - }); - } - } - - /** - * Library of functions which creates shapes of operator nodes (gate symbols) - **/ - - - /** - * Draw a circle for arithmetic nodes - */ - function nodeCircle(root) { - root.append("circle") - .attr("r", "12.5") - .attr("cx", "12.5") - .attr("cy", "12.5"); - } - - /** - * Draw a negation circle for nodes like NOT, NAND, NOR, etc... - */ - function negationCircle(root, x, y) { - root.append("circle") - .attr("cx", x) - .attr("cy", y) - .attr("r", "3"); - } - - function nodeCircleWithText(root, text) { - // width="25" height="25" - var tl = text.length; - if (tl > 2) { - throw new Error("Text too big for small node circle"); - } - var x = 8; - if (tl === 2) - x = 4; - - nodeCircle(root); - root.append("text") - .attr("x", x) - .attr("y", 16) - .text(text); - } - - function nodeBiggerCircleWithText(root, text) { - // width="25" height="25" - var tl = text.length; - if (tl > 6) { - throw new Error("Text too big for small node circle"); - } - var x = 6; - - root.append("circle") - .attr("r", "25") - .attr("cx", "25") - .attr("cy", "25"); - root.append("text") - .attr("x", x) - .attr("y", 28.5) - .text(text); - } - function operatorBox(root) { - root.append("rect") - .attr("width", "25") - .attr("height", "25") - .attr("x", "0") - .attr("y", "0"); - } - - - /** - * Draw a AND gate symbol - */ - function AND(root, addName = true) { - // width="30" height="25" - var g = root.append("g"); - g.append("path") - .attr("d", "M0,0 L0,25 L15,25 A15 12.5 0 0 0 15,0 Z"); - g.attr("transform", "scale(0.8) translate(0, 3)"); - if (addName) - root.append("text") - .attr("x", 8) - .attr("y", 16) - .text("&"); - return g; - } - - /** - * Draw a NAND gate symbol - */ - function NAND(root) { - // width="30" height="25" - AND(root, false); - negationCircle(root, 34, 12.5); - } - - - var OR_SHAPE_PATH = "M3,0 A30 25 0 0 1 3,25 A30 25 0 0 0 33,12.5 A30 25 0 0 0 3,0 z"; - /** - * Draw a OR gate symbol - */ - function OR(root, addName = true) { - // width="30" height="25" - var g = root.append("g"); - g.append("path") - .attr("d", OR_SHAPE_PATH); - g.attr("transform", "scale(0.8) translate(0, 3)"); - if (addName) - root.append("text") - .attr("x", 5) - .attr("y", 16) - .text("or"); - return g; - } - - /** - * Draw a NOR gate symbol - */ - function NOR(root) { - // width="33" height="25" - var g = OR(root, false); - g.append("circle") - .attr("cx", "34") - .attr("cy", "12.5") - .attr("r", "3"); - root.append("text") - .attr("x", 5) - .attr("y", 16) - .text("!|"); - } - - - /** - * Draw a XOR gate symbol - */ - function XOR(root) { - var g = OR(root, false); - g.append("path") - .attr("d", "M0,0 A30 25 0 0 1 0,25"); - root.append("text") - .attr("x", 8) - .attr("y", 16) - .text("^"); - - return g; - } - - - /** - * Draw a NXOR gate symbol - */ - function NXOR(root) { - // width="33" height="25" - var g = XOR(root); - negationCircle(g, 35, 12.5); - root.append("text") - .attr("x", 4) - .attr("y", 16) - .text("!^"); - } - - /** - * Draw a NOT gate symbol - */ - function NOT(root) { - // width="30" height="20" - root.append("path") - .attr("d", "M0,2.5 L0,22.5 L20,12.5 Z"); - negationCircle(root, 23, 12.5); - root.append("text") - .attr("x", 2) - .attr("y", 16) - .text("!"); - } - - /** - * Draw a FF register symbol - */ - function FF(root) { - // width="25" height="25" - operatorBox(root); - - root.append("path") - .attr("d", "M0,2 L5,7 L0,12"); - - root.append("text") - .attr("x", 5) - .attr("y", 16) - .text("FF"); - } - - function FF_ARST(root, arstPolarity, clkPolarity) { - root.append("rect") - .attr("width", "40") - .attr("height", "50") - .attr("x", "0") - .attr("y", "0"); - - //component name - root.append("text") - .attr("x", 7) - .attr("y", 16) - .text("ADFF"); - - //triangle - root.append("path") - .attr("d", "M0,7.5 L6,12.5 L0,17.5 z"); - - if (!clkPolarity) { - root.append("circle") - .attr("cx", 1) - .attr("cy", 12.5) - .attr("r", "1.5") - .style("fill", "white"); - } - - if (!arstPolarity) { - root.append("circle") - .attr("cx", 1) - .attr("cy", 25) - .attr("r", "1.5") - .style("fill", "white"); - } - - root.append("text") - .attr("x", 4) - .attr("y", 27.5) - .style("font-size", "8px") - .text("ARST"); - } - function DLATCH(root, enPolarity) { - root.append("rect") - .attr("width", "50") - .attr("height", "25") - .attr("x", "0") - .attr("y", "0"); - - root.append("text") - .attr("x", 3) - .attr("y", 12) - .text("DLATCH"); - - if (!enPolarity) { - root.append("circle") - .attr("cx", 1) - .attr("cy", 16.5) - .attr("r", "1.5") - .style("fill", "white"); - } - - root.append("text") - .attr("x", 4) - .attr("y", 19) - .style("font-size", "8px") - .text("en"); - } - function RISING_EDGE(root) { - // width="25" height="25" - operatorBox(root); - - root.append("path") - .attr("d", "M5,20 L12.5,20 L12.5,5 L20,5"); - } - - function FALLING_EDGE(root) { - // width="25" height="25" - operatorBox(root); - - root.append("path") - .attr("d", "M5,5 L12.5,5 L12.5,20 L20,20"); - } - - - const DEFAULT_NODE_SIZE = [25, 25]; - const SHAPES = { - "NOT": [NOT, DEFAULT_NODE_SIZE], - - "AND": [AND, DEFAULT_NODE_SIZE], - "NAND": [NAND, DEFAULT_NODE_SIZE], - "OR": [OR, DEFAULT_NODE_SIZE], - "NOR": [NOR, DEFAULT_NODE_SIZE], - "XOR": [XOR, DEFAULT_NODE_SIZE], - "NXOR": [NXOR, DEFAULT_NODE_SIZE], - - "RISING_EDGE": [RISING_EDGE, DEFAULT_NODE_SIZE], - "FALLING_EDGE": [FALLING_EDGE, DEFAULT_NODE_SIZE], - - "ADD": [function ADD(root) { - nodeCircleWithText(root, "+"); - }, DEFAULT_NODE_SIZE], - "SUB": [function SUB(root) { - nodeCircleWithText(root, "-"); - }, DEFAULT_NODE_SIZE], - - "EQ": [function EQ(root) { - nodeCircleWithText(root, "="); - }, DEFAULT_NODE_SIZE], - "NE": [function NE(root) { - nodeCircleWithText(root, "!="); - }, DEFAULT_NODE_SIZE], - "LT": [function LT(root) { - nodeCircleWithText(root, "<"); - }, DEFAULT_NODE_SIZE], - "LE": [function LE(root) { - nodeCircleWithText(root, "<="); - }, DEFAULT_NODE_SIZE], - "GE": [function GE(root) { - nodeCircleWithText(root, ">="); - }, DEFAULT_NODE_SIZE], - "GT": [function GT(root) { - nodeCircleWithText(root, ">"); - }, DEFAULT_NODE_SIZE], - "SHL": [function GT(root) { - nodeCircleWithText(root, "<<"); - }, DEFAULT_NODE_SIZE], - "SHR": [function GT(root) { - nodeCircleWithText(root, ">>"); - }, DEFAULT_NODE_SIZE], - "SHIFT": [function GT(root) { - nodeBiggerCircleWithText(root, "<<,>>"); - }, [50, 50]], - "MUL": [function GT(root) { - nodeCircleWithText(root, "*"); - }, DEFAULT_NODE_SIZE], - "DIV": [function GT(root) { - nodeCircleWithText(root, "/"); - }, DEFAULT_NODE_SIZE], - - "FF": [FF, DEFAULT_NODE_SIZE], - "FF_ARST_clk0_rst0": [(root) => { return FF_ARST(root, false, false)}, [40, 50]], - "FF_ARST_clk1_rst1": [(root) => { return FF_ARST(root, true, true)}, [40, 50]], - "FF_ARST_clk0_rst1": [(root) => { return FF_ARST(root, true, false)}, [40, 50]], - "FF_ARST_clk1_rst0": [(root) => { return FF_ARST(root, false, true)}, [40, 50]], - "DLATCH_en0": [(root) => {return DLATCH(root,false)}, [50, 25]], - "DLATCH_en1": [(root) => {return DLATCH(root,true)}, [50, 25]], - - - }; - - /* - * Render a operator node using predefined shape - * */ - class OperatorNodeRenderer extends GenericNodeRenderer { - constructor(schematic) { - super(schematic); - this.SHAPES = SHAPES; - this._defsAdded = false; - } - - prepare(node) { - if (!this._defsAdded) { - var defs = this.schematic.defs; - var SHAPES = this.SHAPES; - for (const [name, [constructorFn, _]] of Object.entries(SHAPES)) { - this.addShapeToDefs(defs, name, constructorFn); - } - this._defsAdded = true; - } - [node.width, node.height] = this.SHAPES[node.hwMeta.name][1]; - } - - selector(node) { - return node.hwMeta.cls === "Operator" && typeof this.SHAPES[node.hwMeta.name] !== "undefined"; - } - - addShapeToDefs(defs, id, shape) { - var cont = defs.append("g") - .attr("id", id) - .attr("class", "d3-hwschematic node-operator"); - // [note] we need to add d3-hwschematic as well because object in refs are recognized as outside objects when useds - shape(cont); - } - - /** - * Render svg of node - * - * @param root root svg element where nodes should be rendered - * @param nodeG svg g for each node with data binded - * */ - render(root, nodeG) { - // apply node positions - nodeG.attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }) - .attr("class", (d) => d.hwMeta.cssClass) - .attr("style", (d) => d.hwMeta.cssStyle) - .append("use") - .attr("href", function(d) { - return "#" + d.hwMeta.name - }); - } - } - - /** - * Draw a multiplexer operator symbol - */ - function MUX_SHAPE(root) { - // width="20" height="40" - root.append("path") - .attr("d","M0,0 L20,10 L20,30 L0,40 Z"); - } - - class MuxNodeRenderer extends GenericNodeRenderer { - constructor(schematic) { - super(schematic); - this.DEFULT_NODE_SIZE = [20, 40]; - this._defsAdded = false; - } - - prepare(node) { - if (!this._defsAdded) { - var defs = this.schematic.defs; - this.addShapeToDefs(defs); - this._defsAdded = true; - } - node.width = this.DEFULT_NODE_SIZE[0]; - node.height = this.DEFULT_NODE_SIZE[1]; - } - - selector(node) { - return node.hwMeta.cls == "Operator" && ( - node.hwMeta.name === "MUX" || - node.hwMeta.name === "LATCHED_MUX" - ); - } - - addShapeToDefs(defs) { - var cont = defs.append("g"); - cont.attr("id", "MUX"); - cont.attr("class", "d3-hwschematic node-operator"); - MUX_SHAPE(cont); - - var cont = defs.append("g"); - cont.attr("id", "LATCHED_MUX"); - cont.attr("class", "d3-hwschematic node-operator"); - MUX_SHAPE(cont); - cont.append("text") - .text("LA") - .attr("y", "10") - .attr("x", "10") - .attr("style", "writing-mode: tb;"); - } - - /** - * Render svg of node - * - * @param root root svg element where nodes should be rendered - * @param nodeG svg g for each node with data binded - * */ - render(root, nodeG) { - // apply node positions - nodeG.attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }) - .attr("class", (d) => d.hwMeta.cssClass) - .attr("style", (d) => d.hwMeta.cssStyle) - .append("use") - .attr("href", function (d) { - return "#" + d.hwMeta.name; - }); - - - } - } - - class SliceNodeRenderer extends GenericNodeRenderer { - selector(node) { - return node.hwMeta.name === "SLICE" || node.hwMeta.name === "CONCAT"; - } - - getNodeLabelWidth(node) { - return 0; - } - - render(root, nodeG) { - nodeG - .attr("class", (d) => d.hwMeta.cssClass) - .attr("style", (d) => d.hwMeta.cssStyle); - - // spot node main body and set dimensions and style of node - nodeG.append("rect") - .attr("width", function(d) { return d.width }) - .attr("height", function(d) { return d.height }) - .attr("class", "node") - .attr("rx", 5) // rounded corners - .attr("ry", 5); - - // black thick line - nodeG.append("rect") - .attr("x", function (d) { - if (d.hwMeta.name == "SLICE") { - return 0; - } else { - return d.width - 3; - } - }) - .attr("width", "3") - .attr("height", function(d) { return d.height }) - .attr("style", "fill:black;"); - - // apply node positions - nodeG.attr("transform", function(d) { - if (typeof d.x === "undefined" || typeof d.x === "undefined") { - throw new Error("Node with undefined position", d); - } - return "translate(" + d.x + " " + d.y + ")" - }); - - this.renderPorts(nodeG); - } - } - - const RUNNING_IN_NODE = (typeof require !== "undefined"); - const NO_LAYOUT = "org.eclipse.elk.noLayout"; - // kgraph properties that shall be copied - const KGRAPH_KEYS = [ - 'x', 'y', - 'width', 'height', - "sections", - 'sourcePoint', - 'targetPoint', - 'junctionPoints', - 'properties' - ].reduce(function(p, c) { p[c] = 1; return p; }, {}); - - /** - * Webworker creates new graph object and layout props has to be copied back - * to original graph - * - * @param srcGraph: - * new graph from ELK worker - * @param dstGraph: - * original graph provided by user - * @param d3Objs: - * {str(dst obj id): dst obj} - */ - function copyElkProps(srcGraph, dstGraph, d3Objs) { - // init d3Objs - d3Objs[dstGraph.id] = dstGraph; - (dstGraph.edges || []).forEach(function(e) { - if (e.id in d3Objs && d3Objs[e.id] !== e) - throw new Error("Duplicit edge" + e.id); - d3Objs[e.id] = e; - }); - (dstGraph.children || []).forEach(function(n) { - d3Objs[n.id] = n; - }); - (dstGraph.ports || []).forEach(function(p) { - d3Objs[p.id] = p; - }); - - // copy props from this node - copyProps(srcGraph, dstGraph); - (srcGraph.ports || []).forEach(function(p) { - copyProps(p, d3Objs[p.id]); - }); - (srcGraph.labels || []).forEach(function(l, i) { - copyProps(l, dstGraph.labels[i]); - }); - // copy props from edges in this node - (srcGraph.edges || []).forEach(function(e) { - var l = d3Objs[e.id]; - copyProps(e, l); - copyProps(e.source, l.source); - copyProps(e.target, l.target); - // make sure the bendpoint array is valid - l.bendPoints = e.bendPoints || []; - }); - // copy props of children - (srcGraph.children || []).forEach(function(n) { - copyElkProps(n, d3Objs[n.id], d3Objs); - }); - } - function copyProps(src, dst) { - var keys = KGRAPH_KEYS; - for (var k in src) { - if (keys[k]) { - dst[k] = src[k]; - } - } - } - - /** - * Convert section from ELK json to svg path string - */ - function section2svgPath(section) { - var pathBuff = ["M", section.startPoint.x, section.startPoint.y]; - if (section.bendPoints) - section.bendPoints.forEach(function(bp, i) { - pathBuff.push("L"); - pathBuff.push(bp.x); - pathBuff.push(bp.y); - }); - - pathBuff.push("L"); - pathBuff.push(section.endPoint.x); - pathBuff.push(section.endPoint.y); - return pathBuff.join(" ") - } - - /** - * Set the scale to value so - * the available space is used to it's maximum. - */ - function zoomToFit(node, width, height, g) { - var xOffset = -node.x; - var yOffset = -node.y; - var w = node.width || 1; - var h = node.height || 1; - // scale everything so that it fits the specified size - var scale = Math.min(width / w, height / h); - // centering - xOffset += ((width / scale - node.width) / 2); - yOffset += ((height / scale - node.height) / 2); - - // if a transformation group was specified we - // perform a 'zoomToFit' - var t = d3__namespace.zoomTransform(g.node()); - t.k = scale; - t.x = xOffset * scale; - t.y = yOffset * scale; - if (!RUNNING_IN_NODE) { - g = g.transition() - .duration(200); - } - g.attr("transform", t); - } - - function isDescendant(node, child) { - var parent = child.parent; - while (parent) { - if (parent == node) { - return true; - } - parent = parent.parent; - } - return false; - } - function toAbsolutePositionsEdges(n, nodeMap) { - // edges - (n.edges || []).forEach(function(e) { - // transform edge coordinates to absolute coordinates. Note that - // node coordinates are already absolute and that - // edge coordinates are relative to the source node's parent node - // (unless the target node is a descendant of the source node) - var srcNode = nodeMap[e.source]; - var tgtNode = nodeMap[e.target]; - var relative = isDescendant(srcNode, tgtNode) ? - srcNode : srcNode.parent; - - var offset = { x: 0, y: 0 }; - if (relative) { - offset.x = relative.x || 0; - offset.y = relative.y || 0; - } - if (relative.padding) { - offset.x += relative.padding.left || 0; - offset.y += relative.padding.top || 0; - } - if (e.sections) - e.sections.forEach(function(s) { - // ... and apply it to the edge - if (s.startPoint) { - s.startPoint.x += offset.x; - s.startPoint.y += offset.y; - } - if (s.endPoint) { - s.endPoint.x += offset.x; - s.endPoint.y += offset.y; - } - (s.bendPoints || []).forEach(function(bp) { - bp.x += offset.x; - bp.y += offset.y; - }); - }); - if (e.junctionPoints) - e.junctionPoints.forEach(function(jp) { - jp.x += offset.x; - jp.y += offset.y; - }); - }); - // children - (n.children || []).forEach(function(c) { - toAbsolutePositionsEdges(c, nodeMap); - }); - } - function toAbsolutePositions(n, offset, nodeMap) { - n.x = (n.x || 0) + offset.x; - n.y = (n.y || 0) + offset.y; - nodeMap[n.id] = n; - // the offset for the children has to include padding - var childOffset = { x: n.x, y: n.y }; - if (n.padding) { - childOffset.x += n.padding.left || 0; - childOffset.y += n.padding.top || 0; - } - // children - (n.children || []).forEach(function(c) { - c.parent = n; - toAbsolutePositions(c, childOffset, nodeMap); - }); - } - - - /** - * Clean all layout possitions from nodes, nets and ports - */ - function cleanLayout(n) { - delete n.x; - delete n.y; - (n.ports || []).forEach(function(p) { - delete p.x; - delete p.y; - }); - (n.edges || []).forEach(function(e) { - delete e.sections; - delete e.junctionPoints; - }); - (n.children || []).forEach(function(c) { - cleanLayout(c); - }); - } - - function renderLinks(root, edges) { - let junctionPoints = []; - - let link = root.selectAll(".link") - .data(edges) - .enter() - .append("path") - .attr("class", "link") - .attr("d", function(d) { - if (!d.sections) { - d._svgPath = ""; - return ""; - } - if (d.bendpoints || d.sections.length > 1) { - throw new Error("NotImplemented"); - } - if(d.junctionPoints) - d.junctionPoints.forEach(function (jp) { - junctionPoints.push(jp); - }); - d._svgPath = section2svgPath(d.sections[0]); - return d._svgPath; - }); - - let linkWrap = root.selectAll(".link-wrap") - .data(edges) - .enter() - .append("path") - .attr("class", function (d) { - let cssClass; - if (d.hwMeta.parent) { - cssClass = d.hwMeta.parent.hwMeta.cssClass; - } else { - cssClass = d.hwMeta.cssClass; - } - if (typeof cssClass !== 'undefined') { - return "link-wrap " + cssClass; - } else { - return "link-wrap"; - } - }) - .attr("style", function (d) { - if (d.hwMeta.parent) { - return d.hwMeta.parent.hwMeta.cssStyle; - } else { - return d.hwMeta.cssStyle - } - }) - .attr("d", function(d) { - return d._svgPath; - }); - - let junctionPoint = root.selectAll(".junction-point") - .data(junctionPoints) - .enter() - .append("circle") - .attr("r", "3") - .attr("cx", function(d) { - return d.x; - }) - .attr("cy", function(d) { - return d.y; - }) - .attr("class", "junction-point"); - - return [link, linkWrap, junctionPoint]; - } - - class Tooltip { - constructor(root) { - let t = this.tooltip = document.createElement("div"); - t.className = "d3-hwschematic-tooltip"; - t.style.display = "none"; - t.style.possition = "absolute"; - root.appendChild(t); - } - - show(evt, text) { - let t = this.tooltip; - t.style.display = "block"; - t.innerHTML = text; - t.style.left = evt.pageX + 10 + 'px'; - t.style.top = evt.pageY + 10 + 'px'; - } - - hide() { - this.tooltip.style.display = "none"; - } - } - - function yosysTranslateIcons(node, cell) { - let meta = node.hwMeta; - const t = cell.type; - - if (t === "$mux" || t === "$pmux") { - meta.cls = "Operator"; - meta.name = "MUX"; - } else if (t === "$gt") { - meta.cls = "Operator"; - meta.name = "GT"; - } else if (t === "$lt") { - meta.cls = "Operator"; - meta.name = "LT"; - } else if (t === "$ge") { - meta.cls = "Operator"; - meta.name = "GE"; - } else if (t === "$le") { - meta.cls = "Operator"; - meta.name = "LE"; - } else if (t === "$not" || t === "$logic_not") { - meta.cls = "Operator"; - meta.name = "NOT"; - } else if (t === "$logic_and" || t === "$and") { - meta.cls = "Operator"; - meta.name = "AND"; - } else if (t === "$logic_or" || t === "$or") { - meta.cls = "Operator"; - meta.name = "OR"; - } else if (t === "$xor") { - meta.cls = "Operator"; - meta.name = "XOR"; - } else if (t === "$eq") { - meta.cls = "Operator"; - meta.name = "EQ"; - } else if (t === "$ne") { - meta.cls = "Operator"; - meta.name = "NE"; - } else if (t === "$add") { - meta.cls = "Operator"; - meta.name = "ADD"; - } else if (t === "$sub") { - meta.cls = "Operator"; - meta.name = "SUB"; - } else if (t === "$mul") { - meta.cls = "Operator"; - meta.name = "MUL"; - } else if (t === "$div") { - meta.cls = "Operator"; - meta.name = "DIV"; - } else if (t === "$slice") { - meta.cls = "Operator"; - meta.name = "SLICE"; - } else if (t === "$concat") { - meta.cls = "Operator"; - meta.name = "CONCAT"; - } else if (t === "$adff") { - meta.cls = "Operator"; - let arstPolarity = cell.parameters["ARST_POLARITY"]; - let clkPolarity = cell.parameters["CLK_POLARITY"]; - if (clkPolarity && arstPolarity) { - meta.name = "FF_ARST_clk1_rst1"; - } else if (clkPolarity) { - meta.name = "FF_ARST_clk1_rst0"; - } else if (arstPolarity) { - meta.name = "FF_ARST_clk0_rst1"; - } else { - meta.name = "FF_ARST_clk0_rst0"; - } - } else if (t === "$dff") { - meta.cls = "Operator"; - meta.name = "FF"; - } else if (t === "$shift" || t === "$shiftx") { - meta.cls = "Operator"; - meta.name = "SHIFT"; - } else if (t === "$dlatch") { - meta.cls = "Operator"; - let enPolarity = cell.parameters["EN_POLARITY"]; - if (enPolarity) { - meta.name = "DLATCH_en1"; - } else { - meta.name = "DLATCH_en0"; - - } - } - } - - function getPortSide(portName, direction, nodeName) { - if (direction === "input" && nodeName === "MUX" && portName === "S") { - return "SOUTH"; - } - if (direction === "output") { - return "EAST"; - } - if (direction === "input") { - return "WEST"; - } - throw new Error("Unknown direction " + direction); - } - - function orderClkAndRstPorts(node) { - let index = 0; - for (let port of node.ports) { - let dstIndex = index; - if (port.hwMeta.name === "CLK") { - dstIndex = node.ports.length - 1; - } else if (port.hwMeta.name === "ARST") { - dstIndex = node.ports.length - 2; - } - if (index !== dstIndex) { - let otherPort = node.ports[dstIndex]; - node.ports[dstIndex] = port; - node.ports[index] = otherPort; - otherPort.properties.index = port.properties.index; - port.properties.index = dstIndex; - } - ++index; - } - } - - function iterNetnameBits(netnames, fn) { - for (const [netname, netObj] of Object.entries(netnames)) { - for (const bit of netObj.bits) { - fn(netname, bit, Number.isInteger(bit), isConst(bit)); - } - } - } - - function getNetNamesDict(yosysModule) { - let netnamesDict = {}; // yosys bits (netId): netname - - iterNetnameBits(yosysModule.netnames, (netname, bit, isInt, isStr) => { - if (isInt) { - netnamesDict[bit] = netname; - } else if (!isStr) { - throw new Error("Invalid type in bits: " + typeof bit); - } - }); - return netnamesDict; - } - - function isConst(val) { - return (typeof val === "string"); - } - - function getConstNodeName(nameArray) { - let nodeName = nameArray.reverse().join(""); - nodeName = ["0b", nodeName].join(""); - if (nodeName.match(/^0b[01]+$/g)) { - let res = BigInt(nodeName).toString(16); - return ["0x", res].join(""); - } - return nodeName; - } - - function addEdge(edge, portId, edgeDict, startIndex, width) { - let edgeArr = edgeDict[portId]; - if (edgeArr === undefined) { - edgeArr = edgeDict[portId] = []; - } - edgeArr[startIndex] = [edge, width]; - } - - function getSourceAndTarget2(edge) { - return [edge.sources, edge.targets, false, true]; - } - - function getSourceAndTargetForCell(edge) { - return [edge.targets, edge.sources, true, false]; - } - - function getPortNameSplice(startIndex, width) { - if (width === 1) { - return `[${startIndex}]`; - } else if (width > 1) { - let endIndex = startIndex + width; - return `[${endIndex}:${startIndex}]`; - } - - throw new Error("Incorrect width" + width); - - } - - - function hideChildrenAndNodes(node, yosysModule) { - if (yosysModule !== null) { - if (node.children.length === 0 && node.edges.length === 0) { - delete node.children; - delete node.edges; - - } else { - node._children = node.children; - delete node.children; - node._edges = node.edges; - delete node.edges; - } - } - } - - - function updatePortIndices(ports) { - let index = 0; - for (let port of ports) { - port.properties.index = index; - ++index; - } - } - - function dividePorts(ports) { - let north = []; - let east = []; - let south = []; - let west = []; - - for (let port of ports) { - let side = port.properties.side; - if (side === "NORTH") { - north.push(port); - } else if (side === "EAST") { - east.push(port); - } else if (side === "SOUTH") { - south.push(port); - } else if (side === "WEST") { - west.push(port); - } else { - throw new Error("Invalid port side: " + side); - } - } - - return [north, east, south, west]; - } - - function convertPortOrderingFromYosysToElk(node) { - let [north, east, south, west] = dividePorts(node.ports); - node.ports = north.concat(east, south.reverse(), west.reverse()); - updatePortIndices(node.ports); - - } - - function getTopModuleName(yosysJson) { - let topModuleName = undefined; - for (const [moduleName, moduleObj] of Object.entries(yosysJson.modules)) { - if (moduleObj.attributes.top) { - topModuleName = moduleName; - break; - } - } - - if (topModuleName === undefined) { - throw new Error("Cannot find top"); - } - - return topModuleName; - } - - function getNodePorts(node, dict){ - for (let port of node.ports) { - dict[port.id] = port; - } - - } - function getPortIdToPortDict(node) { - let PortIdToPortDict = {}; - - getNodePorts(node, PortIdToPortDict); - for (let child of node.children) { - getNodePorts(child, PortIdToPortDict); - } - - return PortIdToPortDict; - } - function getNodeIdToNodeDict(node,) { - let nodeIdToNodeDict = {}; - nodeIdToNodeDict[node.id] = node; - for (let child of node.children) { - nodeIdToNodeDict[child.id] = child; - } - return nodeIdToNodeDict; - } - - function getPortToEdgeDict(edges) { - let portToEdgeDict = {}; - for (let edge of edges) { - let targets = edge.targets; - let sources = edge.sources; - for (let [_, portId] of sources) { - portToEdgeDict[portId] = edge; - } - - for (let [_, portId] of targets) { - portToEdgeDict[portId] = edge; - } - } - return portToEdgeDict; - } - - function getChildSourcePorts(ports) { - let sourcePorts = []; - for(let port of ports) { - if (port !== undefined && port.direction === "INPUT") { - sourcePorts.push(port); - } - } - - return sourcePorts; - } - - function getEdgeTargetsIndex(targets, portId) { - for(let i = 0; i < targets.length; ++i) { - let target = targets[i]; - let [_, targetPortId] = target; - - if (portId === targetPortId) { - return i; - } - } - throw new Error("PortId was not found"); - - } - function aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict) { - let i = 0; - if (targetPort.properties.index !== 0) { - throw new Error("Port index is not zero, need to regenerate indices in port labels"); - } - for (let oldTargetPort of childSourcePorts) { - let oldTargetPortId = oldTargetPort.id; - let edge = portIdToEdgeDict[oldTargetPortId]; - let edgeTargetsIndex = getEdgeTargetsIndex(edge.targets, oldTargetPortId); - edge.targets[edgeTargetsIndex][0] = targetNode.id; - let newTargetPortIndex = targetPort.properties.index + i; - if (i === 0) { - targetNode.ports[newTargetPortIndex] = oldTargetPort; - } - else { - targetNode.ports.splice(newTargetPortIndex, 0, oldTargetPort); - } - oldTargetPort.properties.index = newTargetPortIndex; - ++i; - } - - - } - - function getChildTargetPortId(child) { - for (let port of child.ports) { - if (port !== undefined && port.direction === "OUTPUT") - { - return port.id; - } - } - - throw new Error("Concat child has no target"); - } - - function aggregate(node, childrenConcats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict) { - let edgesToDelete = new Set(); - let childrenToDelete = new Set(); - - for (let child of childrenConcats) { - let childTargetPortId = getChildTargetPortId(child); - let edge = portIdToEdgeDict[childTargetPortId]; - if (edge === undefined) { - continue; - } - let targets = edge.targets; - - if (targets !== undefined && targets.length === 1) { - let [nodeId, portId] = targets[0]; - let targetNode = nodeIdToNodeDict[nodeId]; - let targetPort = portIdToPortDict[portId]; - let childSourcePorts = getChildSourcePorts(child.ports); - if (targetNode === undefined) { - throw new Error("Target node of target port is undefined"); - } - if (targetNode.hwMeta.cls === "Operator" && targetNode.hwMeta.name === "CONCAT") { - aggregateTwoNodes(childSourcePorts, targetNode, targetPort, portIdToEdgeDict); - edgesToDelete.add(edge.id); - childrenToDelete.add(child.id); - } - } - } - node.children = node.children.filter((c) => { - return !childrenToDelete.has(c.id); - }); - node.edges = node.edges.filter((e) => { - return !edgesToDelete.has(e.id); - }); - } - - function fillConcats(children) { - let concats = []; - for (let child of children) { - if (child.hwMeta.cls === "Operator" && child.hwMeta.name === "CONCAT") { - concats.push(child); - } - } - return concats; - - } - - function aggregateConcants(node) { - let concats = fillConcats(node.children); - let portIdToEdgeDict = getPortToEdgeDict(node.edges); - let portIdToPortDict = getPortIdToPortDict(node); - let nodeIdToNodeDict = getNodeIdToNodeDict(node); - aggregate(node, concats, portIdToEdgeDict, portIdToPortDict, nodeIdToNodeDict); - } - - class LNodeMaker { - constructor(name, yosysModule, idCounter, yosysModules, hierarchyLevel, nodePortNames) { - this.name = name; - this.yosysModule = yosysModule; - this.idCounter = idCounter; - this.yosysModules = yosysModules; - this.hierarchyLevel = hierarchyLevel; - this.nodePortNames = nodePortNames; - this.childrenWithoutPortArray = []; - this.nodeIdToCell = {}; - } - - make() { - if (this.name === undefined) { - throw new Error("Name is undefined"); - } - - let node = this.makeNode(this.name); - - if (this.yosysModule) { - // cell with module definition, load ports, edges and children from module def. recursively - this.fillPorts(node, this.yosysModule.ports, (p) => { - return p.direction - }, undefined); - this.fillChildren(node); - this.fillEdges(node); - - if (node.children !== undefined && node.children.length > 0) { - aggregateConcants(node); - } - - } - - if (node.children !== undefined) { - for (let child of node.children) { - convertPortOrderingFromYosysToElk(child); - if (child.hwMeta.cls === "Operator" && child.hwMeta.name.startsWith("FF")) { - orderClkAndRstPorts(child); - } - } - } - - if (this.hierarchyLevel > 1) { - hideChildrenAndNodes(node, this.yosysModule); - } - - node.hwMeta.maxId = this.idCounter - 1; - return node; - } - makeNode(name) { - let node = { - "id": this.idCounter.toString(), //generate, each component has unique id - "hwMeta": { // [d3-hwschematic specific] - "name": name, // optional str - "cls": "", // optional str - "maxId": 2, // max id of any object in this node used to avoid re-counting object if new object is generated - }, - "properties": { // recommended renderer settings - "org.eclipse.elk.portConstraints": "FIXED_ORDER", // can be also "FREE" or other value accepted by ELK - "org.eclipse.elk.layered.mergeEdges": 1 - }, - "ports": [], // list of LPort - "edges": [], // list of LEdge - "children": [], // list of LNode - }; - ++this.idCounter; - return node; - } - - fillPorts(node, ports, getPortDirectionFn, cellObj) { - const isSplit = cellObj !== undefined && cellObj.type === "$slice"; - const isConcat = cellObj !== undefined && cellObj.type === "$concat"; - let portByName = this.nodePortNames[node.id]; - if (portByName === undefined) { - portByName = {}; - this.nodePortNames[node.id] = portByName; - } - for (let [portName, portObj] of Object.entries(ports)) { - let originalPortName = portName; - if (isSplit || isConcat) { - if (portName === "Y") { - portName = ""; - } - if (isSplit) { - if (portName === "A") { - portName = getPortNameSplice(cellObj.parameters.OFFSET, cellObj.parameters.Y_WIDTH); - } - } else if (isConcat) { - let par = cellObj.parameters; - if (portName === "A") { - portName = getPortNameSplice(0, par.A_WIDTH); - } else if (portName === "B") { - portName = getPortNameSplice(par.A_WIDTH, par.B_WIDTH); - } - } - } - let direction = getPortDirectionFn(portObj); - this.makeLPort(node.ports, portByName, originalPortName, portName, direction, node.hwMeta.name); - } - } - - makeLPort(portList, portByName, originalName, name, direction, nodeName) { - if (name === undefined) { - throw new Error("Name is undefined"); - } - - let portSide = getPortSide(name, direction, nodeName); - let port = { - "id": this.idCounter.toString(), - "hwMeta": { // [d3-hwschematic specific] - "name": name, - }, - "direction": direction.toUpperCase(), // [d3-hwschematic specific] controls direction marker - "properties": { - "side": portSide, - "index": 0 // The order is assumed as clockwise, starting with the leftmost port on the top side. - // Required only for components with "org.eclipse.elk.portConstraints": "FIXED_ORDER" - }, - "children": [], // list of LPort, if the port should be collapsed rename this property to "_children" - }; - port.properties.index = portList.length; - portList.push(port); - portByName[originalName] = port; - ++this.idCounter; - return port; - } - - fillChildren(node) { - // iterate all cells and lookup for modules and construct them recursively - for (const [cellName, cellObj] of Object.entries(this.yosysModule.cells)) { - let moduleName = cellObj.type; //module name - let cellModuleObj = this.yosysModules[moduleName]; - let nodeBuilder = new LNodeMaker(cellName, cellModuleObj, this.idCounter, this.yosysModules, - this.hierarchyLevel + 1, this.nodePortNames); - let subNode = nodeBuilder.make(); - this.idCounter = nodeBuilder.idCounter; - node.children.push(subNode); - yosysTranslateIcons(subNode, cellObj); - this.nodeIdToCell[subNode.id] = cellObj; - if (cellModuleObj === undefined) { - if (cellObj.port_directions === undefined) { - // throw new Error("[Todo] if modules does not have definition in modules and its name does not \ - // start with $, then it does not have port_directions. Must add port to sources and targets of an edge") - - this.childrenWithoutPortArray.push([cellObj, subNode]); - continue; - } - this.fillPorts(subNode, cellObj.port_directions, (p) => { - return p; - }, cellObj); - } - } - } - - fillEdges(node) { - - let edgeTargetsDict = {}; - let edgeSourcesDict = {}; - let constNodeDict = {}; - let [edgeDict, edgeArray] = this.getEdgeDictFromPorts( - node, constNodeDict, edgeTargetsDict, edgeSourcesDict); - let netnamesDict = getNetNamesDict(this.yosysModule); - - function getPortName(bit) { - return netnamesDict[bit]; - } - - for (let i = 0; i < node.children.length; i++) { - const subNode = node.children[i]; - if (constNodeDict[subNode.id] === 1) { - //skip constants to iterate original cells - continue; - } - - let cell = this.nodeIdToCell[subNode.id]; - if (cell.port_directions === undefined) { - continue; - } - let connections = cell.connections; - let portDirections = cell.port_directions; - - - if (connections === undefined) { - throw new Error("Cannot find cell for subNode" + subNode.hwMeta.name); - } - - let portI = 0; - let portByName = this.nodePortNames[subNode.id]; - for (const [portName, bits] of Object.entries(connections)) { - let portObj; - let direction; - if (portName.startsWith("$")) { - portObj = subNode.ports[portI++]; - direction = portObj.direction.toLowerCase(); //use direction from module port definition - } else { - portObj = portByName[portName]; - direction = portDirections[portName]; - } - - this.loadNets(node, subNode.id, portObj.id, bits, direction, edgeDict, constNodeDict, - edgeArray, getPortName, getSourceAndTargetForCell, edgeTargetsDict, edgeSourcesDict); - - } - } - // source null target null == direction is output - - for (const [cellObj, subNode] of this.childrenWithoutPortArray) { - for (const [portName, bits] of Object.entries(cellObj.connections)) { - let port = null; - for (const bit of bits) { - let edge = edgeDict[bit]; - if (edge === undefined) { - throw new Error("[Todo] create edge"); - } - let edgePoints; - let direction; - if (edge.sources.length === 0 && edge.targets.length === 0) { - direction = "output"; - edgePoints = edge.sources; - } else if (edge.sources.length === 0) { - // no sources -> add as source - direction = "output"; - edgePoints = edge.sources; - } else { - direction = "input"; - edgePoints = edge.targets; - } - - if (port === null) { - let portByName = this.nodePortNames[subNode.id]; - if (portByName === undefined) { - portByName = {}; - this.nodePortNames[subNode.id] = portByName; - } - port = this.makeLPort(subNode.ports, portByName, portName, portName, direction, subNode.hwMeta.name); - } - - edgePoints.push([subNode.id, port.id]); - } - } - - } - - let edgeSet = {}; // [sources, targets]: true - for (const edge of edgeArray) { - let key = [edge.sources, null, edge.targets]; - if (!edgeSet[key]) // filter duplicities - { - edgeSet[key] = true; - node.edges.push(edge); - } - } - - } - - getEdgeDictFromPorts(node, constNodeDict, edgeTargetsDict, edgeSourcesDict) { - let edgeDict = {}; // yosys bits (netId): LEdge - let edgeArray = []; - let portsIndex = 0; - for (const [portName, portObj] of Object.entries(this.yosysModule.ports)) { - let port = node.ports[portsIndex]; - portsIndex++; - - function getPortName2() { - return portName; - } - - this.loadNets(node, node.id, port.id, portObj.bits, portObj.direction, - edgeDict, constNodeDict, edgeArray, getPortName2, getSourceAndTarget2, - edgeTargetsDict, edgeSourcesDict); - - } - return [edgeDict, edgeArray]; - } - - /* - * Iterate bits representing yosys net names, which are used to get edges from the edgeDict. - * If edges are not present in the dictionary, they are created and inserted into it. Eventually, - * nodes are completed by filling sources and targets properties of LEdge. - */ - loadNets(node, nodeId, portId, bits, direction, edgeDict, constNodeDict, edgeArray, - getPortName, getSourceAndTarget, edgeTargetsDict, edgeSourcesDict) { - for (let i = 0; i < bits.length; ++i) { - let startIndex = i; - let width = 1; - let bit = bits[i]; - let portName = getPortName(bit); - let edge = edgeDict[bit]; - let netIsConst = isConst(bit); - if (netIsConst || edge === undefined) { - // create edge if it is not in edgeDict - if (portName === undefined) { - if (!netIsConst) { - throw new Error("Netname is undefined"); - } - portName = bit; - } - edge = this.makeLEdge(portName); - edgeDict[bit] = edge; - edgeArray.push(edge); - if (netIsConst) { - i = this.addConstNodeToSources(node, bits, edge.sources, i, constNodeDict); - width = i - startIndex + 1; - } - } - - let [a, b, targetA, targetB] = getSourceAndTarget(edge); - if (direction === "input") { - a.push([nodeId, portId]); - if (targetA) { - addEdge(edge, portId, edgeTargetsDict, startIndex, width); - } else { - addEdge(edge, portId, edgeSourcesDict, startIndex, width); - } - } else if (direction === "output") { - b.push([nodeId, portId]); - if (targetB) { - addEdge(edge, portId, edgeTargetsDict, startIndex, width); - } else { - addEdge(edge, portId, edgeSourcesDict, startIndex, width); - } - } else { - throw new Error("Unknown direction " + direction); - } - } - } - - makeLEdge(name) { - if (name === undefined) { - throw new Error("Name is undefined"); - } - let edge = { - "id": this.idCounter.toString(), - "sources": [], - "targets": [], // [id of LNode, id of LPort] - "hwMeta": { // [d3-hwschematic specific] - "name": name, // optional string, displayed on mouse over - } - }; - ++this.idCounter; - return edge; - } - - addConstNodeToSources(node, bits, sources, i, constNodeDict) { - let nameArray = []; - for (i; i < bits.length; ++i) { - let bit = bits[i]; - if (isConst(bit)) { - nameArray.push(bit); - } else { - break; - } - } - --i; - // If bit is a constant, create a node with constant - let nodeName = getConstNodeName(nameArray); - let constSubNode; - let port; - [constSubNode, port] = this.addConstNode(node, nodeName, constNodeDict); - sources.push([constSubNode.id, port.id]); - return i; - } - - addConstNode(node, nodeName, constNodeDict) { - let port; - - let nodeBuilder = new LNodeMaker(nodeName, undefined, this.idCounter, null, - this.hierarchyLevel + 1, this.nodePortNames); - let subNode = nodeBuilder.make(); - this.idCounter = nodeBuilder.idCounter; - - let portByName = this.nodePortNames[subNode.id] = {}; - port = this.makeLPort(subNode.ports, portByName, "O0", "O0", "output", subNode.hwMeta.name); - node.children.push(subNode); - constNodeDict[subNode.id] = 1; - - return [subNode, port]; - } - - - } - - function yosys(yosysJson) { - let nodePortNames = {}; - let rootNodeBuilder = new LNodeMaker("root", null, 0, null, 0, nodePortNames); - let output = rootNodeBuilder.make(); - let topModuleName = getTopModuleName(yosysJson); - - let nodeBuilder = new LNodeMaker(topModuleName, yosysJson.modules[topModuleName], rootNodeBuilder.idCounter, - yosysJson.modules, 1, nodePortNames); - let node = nodeBuilder.make(); - output.children.push(node); - output.hwMeta.maxId = nodeBuilder.idCounter - 1; - //yosysTranslateIcons(output); - //print output to console - //console.log(JSON.stringify(output, null, 2)); - - return output; - } - - function hyperEdgeListToEdges(eList, newEdges, idOffset) { - for (let ei = 0; ei < eList.length; ei++) { - let e = eList[ei]; - let isHyperEdge = typeof e.sources !== "undefined"; - if (isHyperEdge) { - let src; - let dst; - if (e.sources.length === 1 && e.targets.length === 1) { - src = e.sources[0]; - dst = e.targets[0]; - e.source = src[0]; - e.sourcePort = src[1]; - e.target = dst[0]; - e.targetPort = dst[1]; - delete e.sources; - delete e.targets; - newEdges.push(e); - } else { - for (let s = 0; s < e.sources.length; s++) { - src = e.sources[s]; - for (let t = 0; t < e.targets.length; t++) { - dst = e.targets[t]; - idOffset += 1; - newEdges.push({ - "hwMeta": { "parent": e }, - "id": "" + idOffset, - "source": src[0], - "sourcePort": src[1], - "target": dst[0], - "targetPort": dst[1], - }); - } - } - } - } else { - newEdges.push(e); - } - } - return idOffset; - } - - /** - * Convert hyperEdges to edges in whole graph - * - * @param n root node - * @param idOffset int, max id in graph, used for generating - * of new edges from hyperEdges - **/ - function hyperEdgesToEdges(n, idOffset) { - let newEdges; - if (n.edges) { - newEdges = []; - idOffset = hyperEdgeListToEdges(n.edges, newEdges, idOffset); - n.edges = newEdges; - } - if (n._edges) { - newEdges = []; - idOffset = hyperEdgeListToEdges(n._edges, newEdges, idOffset); - n._edges = newEdges; - } - if (n.children) { - for (let i = 0; i < n.children.length; i++) { - idOffset = hyperEdgesToEdges(n.children[i], idOffset); - } - } - if (n._children) { - for (let i = 0; i < n._children.length; i++) { - idOffset = hyperEdgesToEdges(n._children[i], idOffset); - } - } - return idOffset - } - - /** - * Get parent of net for net - **/ - function getNet(e) { - if (typeof e.hwMeta.parent !== "undefined") { - return e.hwMeta.parent; - } else { - return e; - } - } - - function initNodeParents(node, parent) { - node.hwMeta.parent = parent; - (node.children || []).forEach(function(n) { - initNodeParents(n, node); - }); - (node._children || []).forEach(function(n) { - initNodeParents(n, node); - }); - - } - function expandPorts(node) { - let portList = []; - if (node.ports) - node.ports.forEach(function (port) {expandPorts4port(port, portList);}); - //node.hwMeta.parent = parent; - node.ports = portList; - (node.children || node._children || []).forEach(function(n) { - expandPorts(n); - }); - } - - function expandPorts4port(port, portList){ - if (port.hwMeta.connectedAsParent) { - return; - } - portList.push(port); - (port.children || []).forEach(function(p) { - p.parent = port; - expandPorts4port(p, portList); - }); - - } - - /* - * Collect list of expanded nodes - */ - function computeLayoutCacheKey(n, res) { - res.push(n.id); - if (n.children) { - n.children.forEach((d) => { computeLayoutCacheKey(d, res); }); - } - } - - /* - * Store current state of layout - */ - function serializeLayout(n) { - var res = { - "id": n.id, - "x": n.x, - "y": n.y, - "width": n.width, - "height": n.height, - }; - if (n.ports) { - res["ports"] = n.ports.map(function(p) { - return { - "id": p.id, - "x": p.x, - "y": p.y, - "width": p.width, - "height": p.height, - }; - }); - } - if (n.edges) { - res["edges"] = n.edges.map(function(e) { - return { - "id": e.id, - "sections": e.sections, - "junctionPoints": e.junctionPoints - }; - }); - } - if (n.children) { - res["children"] = n.children.map(function(c) { - return serializeLayout(c) - }); - } - return res; - } - - // apply cached element positions and size - function applyCachedState(n, state) { - if (n.id != state.id) { - throw new Error("Cached state not matching current data"); - } - n.x = state.x; - n.y = state.y; - n.width = state.width; - n.height = state.height; - if (n.ports) { - state.ports.forEach(function(s, i) { - var p = n.ports[i]; - if (p.id != s.id) { - throw new Error("Cached state not matching current data"); - } - p.x = s.x; - p.y = s.y; - p.width = s.width; - p.height = s.height; - }); - } - if (n.edges) { - state.edges.forEach(function(s, i) { - var p = n.edges[i]; - if (p.id != s.id) { - throw new Error("Cached state not matching current data"); - } - p.sections = s.sections; - p.junctionPoints = s.junctionPoints; - }); - } - if (n.children) { - state.children.forEach(function(s, i) { - var c = n.children[i]; - return applyCachedState(c, s); - }); - } - } - - class d3elk { - constructor() { - // containers - this.graph = {}; // internal (hierarchical graph) - this._options = {}; - // dimensions - this.width = 0; - this.height = 0; - this._transformGroup = undefined; - - // the layouter instance - this.layouter = new ELK__default["default"]({ - algorithms: ['layered'], - }); - this._invalidateCaches(); - } - - /** - * Set or get the available area, the positions of the layouted graph are - * currently scaled down. - */ - size(size) { - if (!arguments.length) - return [this.width, this.height]; - var old_w = this.width; - var old_h = this.height; - this.width = size[0]; - this.height = size[1]; - - if (this.graph != null) { - if (old_w !== this.width || old_h !== this.height) { - this._layoutCache = {}; - } - this.graph.width = this.width; - this.graph.height = this.height; - } - return this; - }; - - /** - * Sets the group used to perform 'zoomToFit'. - */ - transformGroup(g) { - if (!arguments.length) - return this._transformGroup; - this._transformGroup = g; - return this; - } - - options(opts) { - if (!arguments.length) - return this._options; - this._options = opts; - return this; - } - - /** - * Start the layout process. - */ - start() { - var cacheKey = []; - computeLayoutCacheKey(this.graph, cacheKey); - var state = this._layoutCache[cacheKey]; - var _this = this; - if (typeof state !== 'undefined') { - // load layout from cache - return new Promise((resolve, reject) => { - resolve(); - }).then( - function() { - applyCachedState(_this.graph, state); - } - ) - } else { - // run layouter - this._cleanLayout(); - this._currentLayoutCacheKey = cacheKey; - return this.layouter.layout( - this.graph, - { layoutOptions: this._options } - ).then( - this._applyLayout.bind(this), - function(e) { - // Error while running elkjs layouter - _this._currentLayoutCacheKey = null; - throw e; - } - ); - } - } - - // get currently visible nodes - getNodes() { - if (this.__nodeCache != null) - return this.__nodeCache; - - var queue = [this.graph], - nodes = [], - parent; - - // note that svg z-index is document order, literally - while ((parent = queue.pop()) != null) { - if (!parent.properties[NO_LAYOUT]) { - nodes.push(parent); - (parent.children || []).forEach(function(c) { - queue.push(c); - }); - } - } - this.__nodeCache = nodes; - return nodes; - } - - - // get currently visible ports - getPorts() { - if (this.__portsCache != null) - return this.__portsCache; - - var ports = d3__namespace.merge(this.getNodes().map(function(n) { - return n.ports || []; - })); - this.__portsCache = ports; - } - - - // get currently visible edges - getEdges() { - if (this.__edgesCache != null) - return this.__edgesCache; - - var edgesOfChildren = d3__namespace.merge( - this.getNodes() - .filter(function(n) { - return n.children; - }) - .map(function(n) { - return n.edges || []; - }) - ); - - this.__edgesCache = edgesOfChildren; - return this.__edgesCache; - } - - // bind graph data - kgraph(root) { - if (!arguments.length) - return this.graph; - - var g = this.graph = root; - this._invalidateCaches(); - - if (!g.id) - g.id = "root"; - if (!g.properties) - g.properties = { 'algorithm': 'layered' }; - if (!g.properties.algorithm) - g.properties.algorithm = 'layered'; - if (!g.width) - g.width = this.width; - if (!g.height) - g.height = this.height; - - return this; - }; - /** - * If a top level transform group is specified, we set the scale to value so - * the available space is used to it's maximum. - */ - zoomToFit(node) { - if (!this._transformGroup) { - return; - } - if (node === null) { - node = this.graph; - } - zoomToFit(node, this.width, this.height, this._transformGroup); - } - - terminate() { - if (this.layouter) - this.layouter.terminateWorker(); - } - - /** - * Clean all layout possitions from nodes, nets and ports - */ - _cleanLayout(n) { - if (!arguments.length) - var n = this.graph; - cleanLayout(n); - return this; - } - _invalidateCaches() { - // cached used to avoid execuiton of elkjs to resolve the layout of - // graph if executed previously with same input - // {sorted list of expanded node ids: {nodeId: {"x": ..., "y": ..., - // "ports": {portId: [x, y]}}, - // edgeId: [points] }} - this._layoutCache = {}; - this._currentLayoutCacheKey = null; - - // {id(str): object from input graph} used to access graph objects by it's id - this._d3ObjMap = {}; - this.markLayoutDirty(); - }; - markLayoutDirty() { - this.__nodeCache = null; - this.__portsCache = null; - this.__edgesCache = null; - } - /** - * Apply layout for the kgraph style. Converts relative positions to - * absolute positions. - */ - _applyLayout(kgraph) { - this.zoomToFit(kgraph); - var nodeMap = {}; - // convert to absolute positions - toAbsolutePositions(kgraph, { x: 0, y: 0 }, nodeMap); - toAbsolutePositionsEdges(kgraph, nodeMap); - copyElkProps(kgraph, this.graph, this._d3ObjMap); - this._layoutCache[this._currentLayoutCacheKey] = serializeLayout(this.graph); - - return this.graph; - } - } - - function findGraph(nodeArray, nodeName) { - for (let node of nodeArray) { - if (node.hwMeta.name === nodeName) { - return node - } - } - throw new Error("Node is not found: " + nodeName); - } - - function selectGraphRootByPath(graph, path) { - let pathArray = path.split("/"); - let first = true; - let newGraph = graph; - for (let nodeName of pathArray) { - if (first && nodeName === "") { - first = false; - continue; - } - newGraph = findGraph((newGraph.children || newGraph._children), nodeName); - } - if (graph !== newGraph) { - //case if path has nonzero length - //copy because we need to make graph immutable because we will need it later - graph = Object.assign({}, graph); - graph.children = [newGraph]; - } - return graph; - - } - - function getNameOfEdge(e) { - let name = "unnamed"; - if (e.hwMeta) { - if (typeof e.hwMeta.name === "undefined") { - let p = e.hwMeta.parent; - let pIsHyperEdge = typeof p.sources !== "undefined"; - if (pIsHyperEdge && p.hwMeta) { - name = p.hwMeta.name; - } - } else { - name = e.hwMeta.name; - } - } - return name; - } - - function toggleHideChildren(node) { - let children; - let nextFocusTarget; - if (node.children) { - // children are visible, will collapse - children = node.children; - nextFocusTarget = node.hwMeta.parent; - } else { - // children are hidden, will expand - children = node._children; - nextFocusTarget = node; - } - - let tmpChildren = node.children; - node.children = node._children; - node._children = tmpChildren; - let tmpEdges = node.edges; - node.edges = node._edges; - node._edges = tmpEdges; - node.hwMeta.renderer.prepare(node); - return [children, nextFocusTarget]; - } - - /** - * HwScheme builds scheme diagrams after bindData(data) is called - * - * @param svg: root svg element where scheme will be rendered - * @attention zoom is not applied it is only used for focusing on objects - * @note do specify size of svg to have optimal result - */ - class HwSchematic { - constructor(svg) { - // flag for performance debug - this._PERF = false; - // main svg element - this.svg = svg; - // default sizes of elements - this.PORT_PIN_SIZE = [7, 13]; - this.PORT_HEIGHT = this.PORT_PIN_SIZE[1]; - this.CHAR_WIDTH = 7.55; - this.CHAR_HEIGHT = 13; - this.NODE_MIDDLE_PORT_SPACING = 20; - this.MAX_NODE_BODY_TEXT_SIZE = [400, 400]; - // top, right, bottom, left - this.BODY_TEXT_PADDING = [15, 10, 0, 10]; - svg.classed("d3-hwschematic", true); - this.defs = svg.append("defs"); - this.root = svg.append("g"); - this.errorText = null; - this._nodes = null; - this._edges = null; - - // graph layouter to resolve positions of elements - this.layouter = new d3elk(); - this.layouter - .options({ - edgeRouting: "ORTHOGONAL", - }) - .transformGroup(this.root); - - // shared tooltip object - this.tooltip = new Tooltip(document.getElementsByTagName('body')[0]); - - // renderer instances responsible for rendering of component nodes - this.nodeRenderers = new NodeRendererContainer(); - addMarkers(this.defs, this.PORT_PIN_SIZE); - let rs = this.nodeRenderers; - rs.registerRenderer(new OperatorNodeRenderer(this)); - rs.registerRenderer(new MuxNodeRenderer(this)); - rs.registerRenderer(new SliceNodeRenderer(this)); - rs.registerRenderer(new GenericNodeRenderer(this)); - } - - widthOfText(text) { - if (text) { - return text.length * this.CHAR_WIDTH; - } else { - return 0; - } - } - - removeGraph() { - this.root.selectAll("*").remove(); - } - - updateGlobalSize() { - let width = parseInt(this.svg.style("width") || this.svg.attr("width"), 10); - let height = parseInt(this.svg.style("height") || this.svg.attr("height"), 10); - - this.layouter - .size([width, height]); - } - - /** - * Set bind graph data to graph rendering engine - * - * @return promise for this job - */ - bindData(graph) { - this.removeGraph(); - let postCompaction = "layered.compaction.postCompaction.strategy"; - if (!graph.properties[postCompaction]) { - graph.properties[postCompaction] = "EDGE_LENGTH"; - } - hyperEdgesToEdges(graph, graph.hwMeta.maxId); - initNodeParents(graph, null); - expandPorts(graph); - - if (this._PERF) { - let t0 = new Date().getTime(); - this.nodeRenderers.prepare(graph); - let t1 = new Date().getTime(); - console.log("> nodeRenderers.prepare() : " + (t1 - t0) + " ms"); - } else { - // nodes are ordered, children at the end - this.nodeRenderers.prepare(graph); - } - this.layouter - .kgraph(graph); - return this._draw(); - } - /* - * @returns subnode selected by path wrapped in a new root - * */ - static selectGraphRootByPath(graph, path) { - return selectGraphRootByPath(graph, path); - } - /* - * Resolve layout and draw a component graph from layout data - */ - _draw() { - this.updateGlobalSize(); - - let layouter = this.layouter; - this._nodes = layouter.getNodes().slice(1); // skip root node - this._edges = layouter.getEdges(); - let t0; - if (this._PERF) { - t0 = new Date().getTime(); - } - let _this = this; - return layouter.start() - .then( - function (g) { - if (_this._PERF) { - let t1 = new Date().getTime(); - console.log("> layouter.start() : " + (t1 - t0) + " ms"); - t0 = t1; - } - _this._applyLayout(g); - if (_this._PERF) { - let t1 = new Date().getTime(); - console.log("> HwSchematic._applyLayout() : " + (t1 - t0) + " ms"); - } - }, - function (e) { - // Error while running d3-elkjs layouter - throw e; - } - ); - } - - /** - * Draw a component graph from layout data - */ - _applyLayout() { - let root = this.root; - - let node = root.selectAll(".node") - .data(this._nodes) - .enter() - .append("g"); - this.nodeRenderers.render(root, node); - - let _this = this; - node.on("click", function (ev, d) { - let [children, nextFocusTarget] = toggleHideChildren(d); - if (!children || children.length === 0) { - return; // does not have anything to expand - } - _this.layouter.markLayoutDirty(); - _this.removeGraph(); - _this._draw().then( - function () { - _this.layouter.zoomToFit(nextFocusTarget); - }, - function (e) { - // Error while applying of layout - throw e; - } - ); - }); - - this._applyLayoutLinks(); - } - - _applyLayoutLinks() { - let _this = this; - let edges = this._edges; - - let [link, linkWrap, _] = renderLinks(this.root, edges); - // build netToLink - let netToLink = {}; - edges.forEach(function (e) { - netToLink[getNet(e).id] = { - "core": [], - "wrap": [] - }; - }); - linkWrap._groups.forEach(function (lg) { - lg.forEach(function (l) { - let e = d3__namespace.select(l).data()[0]; - netToLink[getNet(e).id]["wrap"].push(l); - }); - }); - link._groups.forEach(function (lg) { - lg.forEach(function (l) { - let e = d3__namespace.select(l).data()[0]; - netToLink[getNet(e).id]["core"].push(l); - }); - }); - - // set highlingt and tooltip on mouser over over the net - linkWrap.on("mouseover", function (ev, d) { - let netWrap = netToLink[getNet(d).id]["wrap"]; - d3__namespace.selectAll(netWrap) - .classed("link-wrap-activated", true); - - _this.tooltip.show(ev, getNameOfEdge(d)); - }); - linkWrap.on("mouseout", function (ev, d) { - let netWrap = netToLink[getNet(d).id]["wrap"]; - d3__namespace.selectAll(netWrap) - .classed("link-wrap-activated", false); - - _this.tooltip.hide(); - }); - - // set link highlight on net click - function onLinkClick(ev, d) { - let net = getNet(d); - let doSelect = net.selected = !net.selected; - // propagate click on all nets with same source - - let netCore = netToLink[net.id]["core"]; - d3__namespace.selectAll(netCore) - .classed("link-selected", doSelect); - ev.stopPropagation(); - } - - // Select net on click - link.on("click", onLinkClick); - linkWrap.on("click", onLinkClick); - } - - static fromYosys(yosysJson) { - return yosys(yosysJson); - } - - terminate() { - if (this.layouter) { - this.layouter.terminate(); - } - } - - setErrorText(msg) { - this.root.selectAll("*").remove(); - let errText = this.errorText; - if (!errText) { - errText = this.errorText = this.root.append("text") - .attr("x", "50%") - .attr("y", "50%") - .attr("dominant-baseline", "middle") - .attr("text-anchor", "middle") - .style("font-size", "34px"); - } - errText.text(msg); - let t = d3__namespace.zoomTransform(this.root.node()); - t.k = 1; - t.x = 0; - t.y = 0; - this.root.attr("transform", t); - - } - } - - exports.HwSchematic = HwSchematic; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/doc/d3-hwschematic-assets/d3/LICENSE b/doc/d3-hwschematic-assets/d3/LICENSE deleted file mode 100644 index 894ddc65..00000000 --- a/doc/d3-hwschematic-assets/d3/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2010-2020 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/doc/d3-hwschematic-assets/d3/dist/d3.js b/doc/d3-hwschematic-assets/d3/dist/d3.js deleted file mode 100644 index 50605bd3..00000000 --- a/doc/d3-hwschematic-assets/d3/dist/d3.js +++ /dev/null @@ -1,19708 +0,0 @@ -// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock -(function (global, factory) { -typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : -typeof define === 'function' && define.amd ? define(['exports'], factory) : -(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {})); -}(this, (function (exports) { 'use strict'; - -var version = "6.7.0"; - -function ascending$3(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -} - -function bisector(f) { - let delta = f; - let compare = f; - - if (f.length === 1) { - delta = (d, x) => f(d) - x; - compare = ascendingComparator(f); - } - - function left(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - const mid = (lo + hi) >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; - } - return lo; - } - - function right(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while (lo < hi) { - const mid = (lo + hi) >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; - } - return lo; - } - - function center(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - const i = left(a, x, lo, hi - 1); - return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; - } - - return {left, center, right}; -} - -function ascendingComparator(f) { - return (d, x) => ascending$3(f(d), x); -} - -function number$3(x) { - return x === null ? NaN : +x; -} - -function* numbers(values, valueof) { - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - yield value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - yield value; - } - } - } -} - -const ascendingBisect = bisector(ascending$3); -const bisectRight = ascendingBisect.right; -const bisectLeft = ascendingBisect.left; -const bisectCenter = bisector(number$3).center; - -function count$1(values, valueof) { - let count = 0; - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - ++count; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - ++count; - } - } - } - return count; -} - -function length$3(array) { - return array.length | 0; -} - -function empty$2(length) { - return !(length > 0); -} - -function arrayify(values) { - return typeof values !== "object" || "length" in values ? values : Array.from(values); -} - -function reducer(reduce) { - return values => reduce(...values); -} - -function cross$2(...values) { - const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop()); - values = values.map(arrayify); - const lengths = values.map(length$3); - const j = values.length - 1; - const index = new Array(j + 1).fill(0); - const product = []; - if (j < 0 || lengths.some(empty$2)) return product; - while (true) { - product.push(index.map((j, i) => values[i][j])); - let i = j; - while (++index[i] === lengths[i]) { - if (i === 0) return reduce ? product.map(reduce) : product; - index[i--] = 0; - } - } -} - -function cumsum(values, valueof) { - var sum = 0, index = 0; - return Float64Array.from(values, valueof === undefined - ? v => (sum += +v || 0) - : v => (sum += +valueof(v, index++, values) || 0)); -} - -function descending$2(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; -} - -function variance(values, valueof) { - let count = 0; - let delta; - let mean = 0; - let sum = 0; - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - delta = value - mean; - mean += delta / ++count; - sum += delta * (value - mean); - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - delta = value - mean; - mean += delta / ++count; - sum += delta * (value - mean); - } - } - } - if (count > 1) return sum / (count - 1); -} - -function deviation(values, valueof) { - const v = variance(values, valueof); - return v ? Math.sqrt(v) : v; -} - -function extent$1(values, valueof) { - let min; - let max; - if (valueof === undefined) { - for (const value of values) { - if (value != null) { - if (min === undefined) { - if (value >= value) min = max = value; - } else { - if (min > value) min = value; - if (max < value) max = value; - } - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null) { - if (min === undefined) { - if (value >= value) min = max = value; - } else { - if (min > value) min = value; - if (max < value) max = value; - } - } - } - } - return [min, max]; -} - -// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423 -class Adder { - constructor() { - this._partials = new Float64Array(32); - this._n = 0; - } - add(x) { - const p = this._partials; - let i = 0; - for (let j = 0; j < this._n && j < 32; j++) { - const y = p[j], - hi = x + y, - lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x); - if (lo) p[i++] = lo; - x = hi; - } - p[i] = x; - this._n = i + 1; - return this; - } - valueOf() { - const p = this._partials; - let n = this._n, x, y, lo, hi = 0; - if (n > 0) { - hi = p[--n]; - while (n > 0) { - x = hi; - y = p[--n]; - hi = x + y; - lo = y - (hi - x); - if (lo) break; - } - if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) { - y = lo * 2; - x = hi + y; - if (y == x - hi) hi = x; - } - } - return hi; - } -} - -function fsum(values, valueof) { - const adder = new Adder(); - if (valueof === undefined) { - for (let value of values) { - if (value = +value) { - adder.add(value); - } - } - } else { - let index = -1; - for (let value of values) { - if (value = +valueof(value, ++index, values)) { - adder.add(value); - } - } - } - return +adder; -} - -function fcumsum(values, valueof) { - const adder = new Adder(); - let index = -1; - return Float64Array.from(values, valueof === undefined - ? v => adder.add(+v || 0) - : v => adder.add(+valueof(v, ++index, values) || 0) - ); -} - -class InternMap extends Map { - constructor(entries, key = keyof) { - super(); - Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); - if (entries != null) for (const [key, value] of entries) this.set(key, value); - } - get(key) { - return super.get(intern_get(this, key)); - } - has(key) { - return super.has(intern_get(this, key)); - } - set(key, value) { - return super.set(intern_set(this, key), value); - } - delete(key) { - return super.delete(intern_delete(this, key)); - } -} - -class InternSet extends Set { - constructor(values, key = keyof) { - super(); - Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); - if (values != null) for (const value of values) this.add(value); - } - has(value) { - return super.has(intern_get(this, value)); - } - add(value) { - return super.add(intern_set(this, value)); - } - delete(value) { - return super.delete(intern_delete(this, value)); - } -} - -function intern_get({_intern, _key}, value) { - const key = _key(value); - return _intern.has(key) ? _intern.get(key) : value; -} - -function intern_set({_intern, _key}, value) { - const key = _key(value); - if (_intern.has(key)) return _intern.get(key); - _intern.set(key, value); - return value; -} - -function intern_delete({_intern, _key}, value) { - const key = _key(value); - if (_intern.has(key)) { - value = _intern.get(value); - _intern.delete(key); - } - return value; -} - -function keyof(value) { - return value !== null && typeof value === "object" ? value.valueOf() : value; -} - -function identity$9(x) { - return x; -} - -function group(values, ...keys) { - return nest(values, identity$9, identity$9, keys); -} - -function groups(values, ...keys) { - return nest(values, Array.from, identity$9, keys); -} - -function rollup(values, reduce, ...keys) { - return nest(values, identity$9, reduce, keys); -} - -function rollups(values, reduce, ...keys) { - return nest(values, Array.from, reduce, keys); -} - -function index$4(values, ...keys) { - return nest(values, identity$9, unique, keys); -} - -function indexes(values, ...keys) { - return nest(values, Array.from, unique, keys); -} - -function unique(values) { - if (values.length !== 1) throw new Error("duplicate key"); - return values[0]; -} - -function nest(values, map, reduce, keys) { - return (function regroup(values, i) { - if (i >= keys.length) return reduce(values); - const groups = new InternMap(); - const keyof = keys[i++]; - let index = -1; - for (const value of values) { - const key = keyof(value, ++index, values); - const group = groups.get(key); - if (group) group.push(value); - else groups.set(key, [value]); - } - for (const [key, values] of groups) { - groups.set(key, regroup(values, i)); - } - return map(groups); - })(values, 0); -} - -function permute(source, keys) { - return Array.from(keys, key => source[key]); -} - -function sort(values, ...F) { - if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); - values = Array.from(values); - let [f = ascending$3] = F; - if (f.length === 1 || F.length > 1) { - const index = Uint32Array.from(values, (d, i) => i); - if (F.length > 1) { - F = F.map(f => values.map(f)); - index.sort((i, j) => { - for (const f of F) { - const c = ascending$3(f[i], f[j]); - if (c) return c; - } - }); - } else { - f = values.map(f); - index.sort((i, j) => ascending$3(f[i], f[j])); - } - return permute(values, index); - } - return values.sort(f); -} - -function groupSort(values, reduce, key) { - return (reduce.length === 1 - ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending$3(av, bv) || ascending$3(ak, bk))) - : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending$3(ak, bk)))) - .map(([key]) => key); -} - -var array$5 = Array.prototype; - -var slice$4 = array$5.slice; - -function constant$b(x) { - return function() { - return x; - }; -} - -var e10 = Math.sqrt(50), - e5 = Math.sqrt(10), - e2 = Math.sqrt(2); - -function ticks(start, stop, count) { - var reverse, - i = -1, - n, - ticks, - step; - - stop = +stop, start = +start, count = +count; - if (start === stop && count > 0) return [start]; - if (reverse = stop < start) n = start, start = stop, stop = n; - if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return []; - - if (step > 0) { - let r0 = Math.round(start / step), r1 = Math.round(stop / step); - if (r0 * step < start) ++r0; - if (r1 * step > stop) --r1; - ticks = new Array(n = r1 - r0 + 1); - while (++i < n) ticks[i] = (r0 + i) * step; - } else { - step = -step; - let r0 = Math.round(start * step), r1 = Math.round(stop * step); - if (r0 / step < start) ++r0; - if (r1 / step > stop) --r1; - ticks = new Array(n = r1 - r0 + 1); - while (++i < n) ticks[i] = (r0 + i) / step; - } - - if (reverse) ticks.reverse(); - - return ticks; -} - -function tickIncrement(start, stop, count) { - var step = (stop - start) / Math.max(0, count), - power = Math.floor(Math.log(step) / Math.LN10), - error = step / Math.pow(10, power); - return power >= 0 - ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) - : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); -} - -function tickStep(start, stop, count) { - var step0 = Math.abs(stop - start) / Math.max(0, count), - step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), - error = step0 / step1; - if (error >= e10) step1 *= 10; - else if (error >= e5) step1 *= 5; - else if (error >= e2) step1 *= 2; - return stop < start ? -step1 : step1; -} - -function nice$1(start, stop, count) { - let prestep; - while (true) { - const step = tickIncrement(start, stop, count); - if (step === prestep || step === 0 || !isFinite(step)) { - return [start, stop]; - } else if (step > 0) { - start = Math.floor(start / step) * step; - stop = Math.ceil(stop / step) * step; - } else if (step < 0) { - start = Math.ceil(start * step) / step; - stop = Math.floor(stop * step) / step; - } - prestep = step; - } -} - -function thresholdSturges(values) { - return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1; -} - -function bin() { - var value = identity$9, - domain = extent$1, - threshold = thresholdSturges; - - function histogram(data) { - if (!Array.isArray(data)) data = Array.from(data); - - var i, - n = data.length, - x, - values = new Array(n); - - for (i = 0; i < n; ++i) { - values[i] = value(data[i], i, data); - } - - var xz = domain(values), - x0 = xz[0], - x1 = xz[1], - tz = threshold(values, x0, x1); - - // Convert number of thresholds into uniform thresholds, and nice the - // default domain accordingly. - if (!Array.isArray(tz)) { - const max = x1, tn = +tz; - if (domain === extent$1) [x0, x1] = nice$1(x0, x1, tn); - tz = ticks(x0, x1, tn); - - // If the last threshold is coincident with the domain’s upper bound, the - // last bin will be zero-width. If the default domain is used, and this - // last threshold is coincident with the maximum input value, we can - // extend the niced upper bound by one tick to ensure uniform bin widths; - // otherwise, we simply remove the last threshold. Note that we don’t - // coerce values or the domain to numbers, and thus must be careful to - // compare order (>=) rather than strict equality (===)! - if (tz[tz.length - 1] >= x1) { - if (max >= x1 && domain === extent$1) { - const step = tickIncrement(x0, x1, tn); - if (isFinite(step)) { - if (step > 0) { - x1 = (Math.floor(x1 / step) + 1) * step; - } else if (step < 0) { - x1 = (Math.ceil(x1 * -step) + 1) / -step; - } - } - } else { - tz.pop(); - } - } - } - - // Remove any thresholds outside the domain. - var m = tz.length; - while (tz[0] <= x0) tz.shift(), --m; - while (tz[m - 1] > x1) tz.pop(), --m; - - var bins = new Array(m + 1), - bin; - - // Initialize bins. - for (i = 0; i <= m; ++i) { - bin = bins[i] = []; - bin.x0 = i > 0 ? tz[i - 1] : x0; - bin.x1 = i < m ? tz[i] : x1; - } - - // Assign data to bins by value, ignoring any outside the domain. - for (i = 0; i < n; ++i) { - x = values[i]; - if (x0 <= x && x <= x1) { - bins[bisectRight(tz, x, 0, m)].push(data[i]); - } - } - - return bins; - } - - histogram.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant$b(_), histogram) : value; - }; - - histogram.domain = function(_) { - return arguments.length ? (domain = typeof _ === "function" ? _ : constant$b([_[0], _[1]]), histogram) : domain; - }; - - histogram.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$b(slice$4.call(_)) : constant$b(_), histogram) : threshold; - }; - - return histogram; -} - -function max$3(values, valueof) { - let max; - if (valueof === undefined) { - for (const value of values) { - if (value != null - && (max < value || (max === undefined && value >= value))) { - max = value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (max < value || (max === undefined && value >= value))) { - max = value; - } - } - } - return max; -} - -function min$2(values, valueof) { - let min; - if (valueof === undefined) { - for (const value of values) { - if (value != null - && (min > value || (min === undefined && value >= value))) { - min = value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (min > value || (min === undefined && value >= value))) { - min = value; - } - } - } - return min; -} - -// Based on https://github.com/mourner/quickselect -// ISC license, Copyright 2018 Vladimir Agafonkin. -function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending$3) { - while (right > left) { - if (right - left > 600) { - const n = right - left + 1; - const m = k - left + 1; - const z = Math.log(n); - const s = 0.5 * Math.exp(2 * z / 3); - const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); - const newLeft = Math.max(left, Math.floor(k - m * s / n + sd)); - const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd)); - quickselect(array, k, newLeft, newRight, compare); - } - - const t = array[k]; - let i = left; - let j = right; - - swap$1(array, left, k); - if (compare(array[right], t) > 0) swap$1(array, left, right); - - while (i < j) { - swap$1(array, i, j), ++i, --j; - while (compare(array[i], t) < 0) ++i; - while (compare(array[j], t) > 0) --j; - } - - if (compare(array[left], t) === 0) swap$1(array, left, j); - else ++j, swap$1(array, j, right); - - if (j <= k) left = j + 1; - if (k <= j) right = j - 1; - } - return array; -} - -function swap$1(array, i, j) { - const t = array[i]; - array[i] = array[j]; - array[j] = t; -} - -function quantile$1(values, p, valueof) { - values = Float64Array.from(numbers(values, valueof)); - if (!(n = values.length)) return; - if ((p = +p) <= 0 || n < 2) return min$2(values); - if (p >= 1) return max$3(values); - var n, - i = (n - 1) * p, - i0 = Math.floor(i), - value0 = max$3(quickselect(values, i0).subarray(0, i0 + 1)), - value1 = min$2(values.subarray(i0 + 1)); - return value0 + (value1 - value0) * (i - i0); -} - -function quantileSorted(values, p, valueof = number$3) { - if (!(n = values.length)) return; - if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values); - if (p >= 1) return +valueof(values[n - 1], n - 1, values); - var n, - i = (n - 1) * p, - i0 = Math.floor(i), - value0 = +valueof(values[i0], i0, values), - value1 = +valueof(values[i0 + 1], i0 + 1, values); - return value0 + (value1 - value0) * (i - i0); -} - -function freedmanDiaconis(values, min, max) { - return Math.ceil((max - min) / (2 * (quantile$1(values, 0.75) - quantile$1(values, 0.25)) * Math.pow(count$1(values), -1 / 3))); -} - -function scott(values, min, max) { - return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count$1(values), -1 / 3))); -} - -function maxIndex(values, valueof) { - let max; - let maxIndex = -1; - let index = -1; - if (valueof === undefined) { - for (const value of values) { - ++index; - if (value != null - && (max < value || (max === undefined && value >= value))) { - max = value, maxIndex = index; - } - } - } else { - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (max < value || (max === undefined && value >= value))) { - max = value, maxIndex = index; - } - } - } - return maxIndex; -} - -function mean(values, valueof) { - let count = 0; - let sum = 0; - if (valueof === undefined) { - for (let value of values) { - if (value != null && (value = +value) >= value) { - ++count, sum += value; - } - } - } else { - let index = -1; - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { - ++count, sum += value; - } - } - } - if (count) return sum / count; -} - -function median(values, valueof) { - return quantile$1(values, 0.5, valueof); -} - -function* flatten(arrays) { - for (const array of arrays) { - yield* array; - } -} - -function merge(arrays) { - return Array.from(flatten(arrays)); -} - -function minIndex(values, valueof) { - let min; - let minIndex = -1; - let index = -1; - if (valueof === undefined) { - for (const value of values) { - ++index; - if (value != null - && (min > value || (min === undefined && value >= value))) { - min = value, minIndex = index; - } - } - } else { - for (let value of values) { - if ((value = valueof(value, ++index, values)) != null - && (min > value || (min === undefined && value >= value))) { - min = value, minIndex = index; - } - } - } - return minIndex; -} - -function pairs(values, pairof = pair) { - const pairs = []; - let previous; - let first = false; - for (const value of values) { - if (first) pairs.push(pairof(previous, value)); - previous = value; - first = true; - } - return pairs; -} - -function pair(a, b) { - return [a, b]; -} - -function sequence(start, stop, step) { - start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; - - var i = -1, - n = Math.max(0, Math.ceil((stop - start) / step)) | 0, - range = new Array(n); - - while (++i < n) { - range[i] = start + i * step; - } - - return range; -} - -function least(values, compare = ascending$3) { - let min; - let defined = false; - if (compare.length === 1) { - let minValue; - for (const element of values) { - const value = compare(element); - if (defined - ? ascending$3(value, minValue) < 0 - : ascending$3(value, value) === 0) { - min = element; - minValue = value; - defined = true; - } - } - } else { - for (const value of values) { - if (defined - ? compare(value, min) < 0 - : compare(value, value) === 0) { - min = value; - defined = true; - } - } - } - return min; -} - -function leastIndex(values, compare = ascending$3) { - if (compare.length === 1) return minIndex(values, compare); - let minValue; - let min = -1; - let index = -1; - for (const value of values) { - ++index; - if (min < 0 - ? compare(value, value) === 0 - : compare(value, minValue) < 0) { - minValue = value; - min = index; - } - } - return min; -} - -function greatest(values, compare = ascending$3) { - let max; - let defined = false; - if (compare.length === 1) { - let maxValue; - for (const element of values) { - const value = compare(element); - if (defined - ? ascending$3(value, maxValue) > 0 - : ascending$3(value, value) === 0) { - max = element; - maxValue = value; - defined = true; - } - } - } else { - for (const value of values) { - if (defined - ? compare(value, max) > 0 - : compare(value, value) === 0) { - max = value; - defined = true; - } - } - } - return max; -} - -function greatestIndex(values, compare = ascending$3) { - if (compare.length === 1) return maxIndex(values, compare); - let maxValue; - let max = -1; - let index = -1; - for (const value of values) { - ++index; - if (max < 0 - ? compare(value, value) === 0 - : compare(value, maxValue) > 0) { - maxValue = value; - max = index; - } - } - return max; -} - -function scan(values, compare) { - const index = leastIndex(values, compare); - return index < 0 ? undefined : index; -} - -var shuffle$1 = shuffler(Math.random); - -function shuffler(random) { - return function shuffle(array, i0 = 0, i1 = array.length) { - let m = i1 - (i0 = +i0); - while (m) { - const i = random() * m-- | 0, t = array[m + i0]; - array[m + i0] = array[i + i0]; - array[i + i0] = t; - } - return array; - }; -} - -function sum$1(values, valueof) { - let sum = 0; - if (valueof === undefined) { - for (let value of values) { - if (value = +value) { - sum += value; - } - } - } else { - let index = -1; - for (let value of values) { - if (value = +valueof(value, ++index, values)) { - sum += value; - } - } - } - return sum; -} - -function transpose(matrix) { - if (!(n = matrix.length)) return []; - for (var i = -1, m = min$2(matrix, length$2), transpose = new Array(m); ++i < m;) { - for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) { - row[j] = matrix[j][i]; - } - } - return transpose; -} - -function length$2(d) { - return d.length; -} - -function zip() { - return transpose(arguments); -} - -function every(values, test) { - if (typeof test !== "function") throw new TypeError("test is not a function"); - let index = -1; - for (const value of values) { - if (!test(value, ++index, values)) { - return false; - } - } - return true; -} - -function some(values, test) { - if (typeof test !== "function") throw new TypeError("test is not a function"); - let index = -1; - for (const value of values) { - if (test(value, ++index, values)) { - return true; - } - } - return false; -} - -function filter$1(values, test) { - if (typeof test !== "function") throw new TypeError("test is not a function"); - const array = []; - let index = -1; - for (const value of values) { - if (test(value, ++index, values)) { - array.push(value); - } - } - return array; -} - -function map$1(values, mapper) { - if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); - if (typeof mapper !== "function") throw new TypeError("mapper is not a function"); - return Array.from(values, (value, index) => mapper(value, index, values)); -} - -function reduce(values, reducer, value) { - if (typeof reducer !== "function") throw new TypeError("reducer is not a function"); - const iterator = values[Symbol.iterator](); - let done, next, index = -1; - if (arguments.length < 3) { - ({done, value} = iterator.next()); - if (done) return; - ++index; - } - while (({done, value: next} = iterator.next()), !done) { - value = reducer(value, next, ++index, values); - } - return value; -} - -function reverse$1(values) { - if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); - return Array.from(values).reverse(); -} - -function difference(values, ...others) { - values = new Set(values); - for (const other of others) { - for (const value of other) { - values.delete(value); - } - } - return values; -} - -function disjoint(values, other) { - const iterator = other[Symbol.iterator](), set = new Set(); - for (const v of values) { - if (set.has(v)) return false; - let value, done; - while (({value, done} = iterator.next())) { - if (done) break; - if (Object.is(v, value)) return false; - set.add(value); - } - } - return true; -} - -function set$2(values) { - return values instanceof Set ? values : new Set(values); -} - -function intersection(values, ...others) { - values = new Set(values); - others = others.map(set$2); - out: for (const value of values) { - for (const other of others) { - if (!other.has(value)) { - values.delete(value); - continue out; - } - } - } - return values; -} - -function superset(values, other) { - const iterator = values[Symbol.iterator](), set = new Set(); - for (const o of other) { - if (set.has(o)) continue; - let value, done; - while (({value, done} = iterator.next())) { - if (done) return false; - set.add(value); - if (Object.is(o, value)) break; - } - } - return true; -} - -function subset(values, other) { - return superset(other, values); -} - -function union(...others) { - const set = new Set(); - for (const other of others) { - for (const o of other) { - set.add(o); - } - } - return set; -} - -var slice$3 = Array.prototype.slice; - -function identity$8(x) { - return x; -} - -var top = 1, - right = 2, - bottom = 3, - left = 4, - epsilon$5 = 1e-6; - -function translateX(x) { - return "translate(" + x + ",0)"; -} - -function translateY(y) { - return "translate(0," + y + ")"; -} - -function number$2(scale) { - return d => +scale(d); -} - -function center$1(scale, offset) { - offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; - if (scale.round()) offset = Math.round(offset); - return d => +scale(d) + offset; -} - -function entering() { - return !this.__axis; -} - -function axis(orient, scale) { - var tickArguments = [], - tickValues = null, - tickFormat = null, - tickSizeInner = 6, - tickSizeOuter = 6, - tickPadding = 3, - offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, - k = orient === top || orient === left ? -1 : 1, - x = orient === left || orient === right ? "x" : "y", - transform = orient === top || orient === bottom ? translateX : translateY; - - function axis(context) { - var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues, - format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$8) : tickFormat, - spacing = Math.max(tickSizeInner, 0) + tickPadding, - range = scale.range(), - range0 = +range[0] + offset, - range1 = +range[range.length - 1] + offset, - position = (scale.bandwidth ? center$1 : number$2)(scale.copy(), offset), - selection = context.selection ? context.selection() : context, - path = selection.selectAll(".domain").data([null]), - tick = selection.selectAll(".tick").data(values, scale).order(), - tickExit = tick.exit(), - tickEnter = tick.enter().append("g").attr("class", "tick"), - line = tick.select("line"), - text = tick.select("text"); - - path = path.merge(path.enter().insert("path", ".tick") - .attr("class", "domain") - .attr("stroke", "currentColor")); - - tick = tick.merge(tickEnter); - - line = line.merge(tickEnter.append("line") - .attr("stroke", "currentColor") - .attr(x + "2", k * tickSizeInner)); - - text = text.merge(tickEnter.append("text") - .attr("fill", "currentColor") - .attr(x, k * spacing) - .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); - - if (context !== selection) { - path = path.transition(context); - tick = tick.transition(context); - line = line.transition(context); - text = text.transition(context); - - tickExit = tickExit.transition(context) - .attr("opacity", epsilon$5) - .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); }); - - tickEnter - .attr("opacity", epsilon$5) - .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); }); - } - - tickExit.remove(); - - path - .attr("d", orient === left || orient === right - ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1) - : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1)); - - tick - .attr("opacity", 1) - .attr("transform", function(d) { return transform(position(d) + offset); }); - - line - .attr(x + "2", k * tickSizeInner); - - text - .attr(x, k * spacing) - .text(format); - - selection.filter(entering) - .attr("fill", "none") - .attr("font-size", 10) - .attr("font-family", "sans-serif") - .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); - - selection - .each(function() { this.__axis = position; }); - } - - axis.scale = function(_) { - return arguments.length ? (scale = _, axis) : scale; - }; - - axis.ticks = function() { - return tickArguments = slice$3.call(arguments), axis; - }; - - axis.tickArguments = function(_) { - return arguments.length ? (tickArguments = _ == null ? [] : slice$3.call(_), axis) : tickArguments.slice(); - }; - - axis.tickValues = function(_) { - return arguments.length ? (tickValues = _ == null ? null : slice$3.call(_), axis) : tickValues && tickValues.slice(); - }; - - axis.tickFormat = function(_) { - return arguments.length ? (tickFormat = _, axis) : tickFormat; - }; - - axis.tickSize = function(_) { - return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner; - }; - - axis.tickSizeInner = function(_) { - return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner; - }; - - axis.tickSizeOuter = function(_) { - return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter; - }; - - axis.tickPadding = function(_) { - return arguments.length ? (tickPadding = +_, axis) : tickPadding; - }; - - axis.offset = function(_) { - return arguments.length ? (offset = +_, axis) : offset; - }; - - return axis; -} - -function axisTop(scale) { - return axis(top, scale); -} - -function axisRight(scale) { - return axis(right, scale); -} - -function axisBottom(scale) { - return axis(bottom, scale); -} - -function axisLeft(scale) { - return axis(left, scale); -} - -var noop$3 = {value: () => {}}; - -function dispatch() { - for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { - if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); - _[t] = []; - } - return new Dispatch(_); -} - -function Dispatch(_) { - this._ = _; -} - -function parseTypenames$1(typenames, types) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); - return {type: t, name: name}; - }); -} - -Dispatch.prototype = dispatch.prototype = { - constructor: Dispatch, - on: function(typename, callback) { - var _ = this._, - T = parseTypenames$1(typename + "", _), - t, - i = -1, - n = T.length; - - // If no callback was specified, return the callback of the given type and name. - if (arguments.length < 2) { - while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t; - return; - } - - // If a type was specified, set the callback for the given type and name. - // Otherwise, if a null callback was specified, remove callbacks of the given name. - if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); - while (++i < n) { - if (t = (typename = T[i]).type) _[t] = set$1(_[t], typename.name, callback); - else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null); - } - - return this; - }, - copy: function() { - var copy = {}, _ = this._; - for (var t in _) copy[t] = _[t].slice(); - return new Dispatch(copy); - }, - call: function(type, that) { - if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - }, - apply: function(type, that, args) { - if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); - for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); - } -}; - -function get$1(type, name) { - for (var i = 0, n = type.length, c; i < n; ++i) { - if ((c = type[i]).name === name) { - return c.value; - } - } -} - -function set$1(type, name, callback) { - for (var i = 0, n = type.length; i < n; ++i) { - if (type[i].name === name) { - type[i] = noop$3, type = type.slice(0, i).concat(type.slice(i + 1)); - break; - } - } - if (callback != null) type.push({name: name, value: callback}); - return type; -} - -var xhtml = "http://www.w3.org/1999/xhtml"; - -var namespaces = { - svg: "http://www.w3.org/2000/svg", - xhtml: xhtml, - xlink: "http://www.w3.org/1999/xlink", - xml: "http://www.w3.org/XML/1998/namespace", - xmlns: "http://www.w3.org/2000/xmlns/" -}; - -function namespace(name) { - var prefix = name += "", i = prefix.indexOf(":"); - if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); - return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins -} - -function creatorInherit(name) { - return function() { - var document = this.ownerDocument, - uri = this.namespaceURI; - return uri === xhtml && document.documentElement.namespaceURI === xhtml - ? document.createElement(name) - : document.createElementNS(uri, name); - }; -} - -function creatorFixed(fullname) { - return function() { - return this.ownerDocument.createElementNS(fullname.space, fullname.local); - }; -} - -function creator(name) { - var fullname = namespace(name); - return (fullname.local - ? creatorFixed - : creatorInherit)(fullname); -} - -function none$2() {} - -function selector(selector) { - return selector == null ? none$2 : function() { - return this.querySelector(selector); - }; -} - -function selection_select(select) { - if (typeof select !== "function") select = selector(select); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { - if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { - if ("__data__" in node) subnode.__data__ = node.__data__; - subgroup[i] = subnode; - } - } - } - - return new Selection$1(subgroups, this._parents); -} - -function array$4(x) { - return typeof x === "object" && "length" in x - ? x // Array, TypedArray, NodeList, array-like - : Array.from(x); // Map, Set, iterable, string, or anything else -} - -function empty$1() { - return []; -} - -function selectorAll(selector) { - return selector == null ? empty$1 : function() { - return this.querySelectorAll(selector); - }; -} - -function arrayAll(select) { - return function() { - var group = select.apply(this, arguments); - return group == null ? [] : array$4(group); - }; -} - -function selection_selectAll(select) { - if (typeof select === "function") select = arrayAll(select); - else select = selectorAll(select); - - for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - subgroups.push(select.call(node, node.__data__, i, group)); - parents.push(node); - } - } - } - - return new Selection$1(subgroups, parents); -} - -function matcher(selector) { - return function() { - return this.matches(selector); - }; -} - -function childMatcher(selector) { - return function(node) { - return node.matches(selector); - }; -} - -var find$1 = Array.prototype.find; - -function childFind(match) { - return function() { - return find$1.call(this.children, match); - }; -} - -function childFirst() { - return this.firstElementChild; -} - -function selection_selectChild(match) { - return this.select(match == null ? childFirst - : childFind(typeof match === "function" ? match : childMatcher(match))); -} - -var filter = Array.prototype.filter; - -function children() { - return this.children; -} - -function childrenFilter(match) { - return function() { - return filter.call(this.children, match); - }; -} - -function selection_selectChildren(match) { - return this.selectAll(match == null ? children - : childrenFilter(typeof match === "function" ? match : childMatcher(match))); -} - -function selection_filter(match) { - if (typeof match !== "function") match = matcher(match); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { - if ((node = group[i]) && match.call(node, node.__data__, i, group)) { - subgroup.push(node); - } - } - } - - return new Selection$1(subgroups, this._parents); -} - -function sparse(update) { - return new Array(update.length); -} - -function selection_enter() { - return new Selection$1(this._enter || this._groups.map(sparse), this._parents); -} - -function EnterNode(parent, datum) { - this.ownerDocument = parent.ownerDocument; - this.namespaceURI = parent.namespaceURI; - this._next = null; - this._parent = parent; - this.__data__ = datum; -} - -EnterNode.prototype = { - constructor: EnterNode, - appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, - insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, - querySelector: function(selector) { return this._parent.querySelector(selector); }, - querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } -}; - -function constant$a(x) { - return function() { - return x; - }; -} - -function bindIndex(parent, group, enter, update, exit, data) { - var i = 0, - node, - groupLength = group.length, - dataLength = data.length; - - // Put any non-null nodes that fit into update. - // Put any null nodes into enter. - // Put any remaining data into enter. - for (; i < dataLength; ++i) { - if (node = group[i]) { - node.__data__ = data[i]; - update[i] = node; - } else { - enter[i] = new EnterNode(parent, data[i]); - } - } - - // Put any non-null nodes that don’t fit into exit. - for (; i < groupLength; ++i) { - if (node = group[i]) { - exit[i] = node; - } - } -} - -function bindKey(parent, group, enter, update, exit, data, key) { - var i, - node, - nodeByKeyValue = new Map, - groupLength = group.length, - dataLength = data.length, - keyValues = new Array(groupLength), - keyValue; - - // Compute the key for each node. - // If multiple nodes have the same key, the duplicates are added to exit. - for (i = 0; i < groupLength; ++i) { - if (node = group[i]) { - keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; - if (nodeByKeyValue.has(keyValue)) { - exit[i] = node; - } else { - nodeByKeyValue.set(keyValue, node); - } - } - } - - // Compute the key for each datum. - // If there a node associated with this key, join and add it to update. - // If there is not (or the key is a duplicate), add it to enter. - for (i = 0; i < dataLength; ++i) { - keyValue = key.call(parent, data[i], i, data) + ""; - if (node = nodeByKeyValue.get(keyValue)) { - update[i] = node; - node.__data__ = data[i]; - nodeByKeyValue.delete(keyValue); - } else { - enter[i] = new EnterNode(parent, data[i]); - } - } - - // Add any remaining nodes that were not bound to data to exit. - for (i = 0; i < groupLength; ++i) { - if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) { - exit[i] = node; - } - } -} - -function datum(node) { - return node.__data__; -} - -function selection_data(value, key) { - if (!arguments.length) return Array.from(this, datum); - - var bind = key ? bindKey : bindIndex, - parents = this._parents, - groups = this._groups; - - if (typeof value !== "function") value = constant$a(value); - - for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { - var parent = parents[j], - group = groups[j], - groupLength = group.length, - data = array$4(value.call(parent, parent && parent.__data__, j, parents)), - dataLength = data.length, - enterGroup = enter[j] = new Array(dataLength), - updateGroup = update[j] = new Array(dataLength), - exitGroup = exit[j] = new Array(groupLength); - - bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); - - // Now connect the enter nodes to their following update node, such that - // appendChild can insert the materialized enter node before this node, - // rather than at the end of the parent node. - for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { - if (previous = enterGroup[i0]) { - if (i0 >= i1) i1 = i0 + 1; - while (!(next = updateGroup[i1]) && ++i1 < dataLength); - previous._next = next || null; - } - } - } - - update = new Selection$1(update, parents); - update._enter = enter; - update._exit = exit; - return update; -} - -function selection_exit() { - return new Selection$1(this._exit || this._groups.map(sparse), this._parents); -} - -function selection_join(onenter, onupdate, onexit) { - var enter = this.enter(), update = this, exit = this.exit(); - enter = typeof onenter === "function" ? onenter(enter) : enter.append(onenter + ""); - if (onupdate != null) update = onupdate(update); - if (onexit == null) exit.remove(); else onexit(exit); - return enter && update ? enter.merge(update).order() : update; -} - -function selection_merge(selection) { - if (!(selection instanceof Selection$1)) throw new Error("invalid merge"); - - for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { - for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group0[i] || group1[i]) { - merge[i] = node; - } - } - } - - for (; j < m0; ++j) { - merges[j] = groups0[j]; - } - - return new Selection$1(merges, this._parents); -} - -function selection_order() { - - for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { - for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { - if (node = group[i]) { - if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); - next = node; - } - } - } - - return this; -} - -function selection_sort(compare) { - if (!compare) compare = ascending$2; - - function compareNode(a, b) { - return a && b ? compare(a.__data__, b.__data__) : !a - !b; - } - - for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group[i]) { - sortgroup[i] = node; - } - } - sortgroup.sort(compareNode); - } - - return new Selection$1(sortgroups, this._parents).order(); -} - -function ascending$2(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -} - -function selection_call() { - var callback = arguments[0]; - arguments[0] = this; - callback.apply(null, arguments); - return this; -} - -function selection_nodes() { - return Array.from(this); -} - -function selection_node() { - - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { - var node = group[i]; - if (node) return node; - } - } - - return null; -} - -function selection_size() { - let size = 0; - for (const node of this) ++size; // eslint-disable-line no-unused-vars - return size; -} - -function selection_empty() { - return !this.node(); -} - -function selection_each(callback) { - - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { - if (node = group[i]) callback.call(node, node.__data__, i, group); - } - } - - return this; -} - -function attrRemove$1(name) { - return function() { - this.removeAttribute(name); - }; -} - -function attrRemoveNS$1(fullname) { - return function() { - this.removeAttributeNS(fullname.space, fullname.local); - }; -} - -function attrConstant$1(name, value) { - return function() { - this.setAttribute(name, value); - }; -} - -function attrConstantNS$1(fullname, value) { - return function() { - this.setAttributeNS(fullname.space, fullname.local, value); - }; -} - -function attrFunction$1(name, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.removeAttribute(name); - else this.setAttribute(name, v); - }; -} - -function attrFunctionNS$1(fullname, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.removeAttributeNS(fullname.space, fullname.local); - else this.setAttributeNS(fullname.space, fullname.local, v); - }; -} - -function selection_attr(name, value) { - var fullname = namespace(name); - - if (arguments.length < 2) { - var node = this.node(); - return fullname.local - ? node.getAttributeNS(fullname.space, fullname.local) - : node.getAttribute(fullname); - } - - return this.each((value == null - ? (fullname.local ? attrRemoveNS$1 : attrRemove$1) : (typeof value === "function" - ? (fullname.local ? attrFunctionNS$1 : attrFunction$1) - : (fullname.local ? attrConstantNS$1 : attrConstant$1)))(fullname, value)); -} - -function defaultView(node) { - return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node - || (node.document && node) // node is a Window - || node.defaultView; // node is a Document -} - -function styleRemove$1(name) { - return function() { - this.style.removeProperty(name); - }; -} - -function styleConstant$1(name, value, priority) { - return function() { - this.style.setProperty(name, value, priority); - }; -} - -function styleFunction$1(name, value, priority) { - return function() { - var v = value.apply(this, arguments); - if (v == null) this.style.removeProperty(name); - else this.style.setProperty(name, v, priority); - }; -} - -function selection_style(name, value, priority) { - return arguments.length > 1 - ? this.each((value == null - ? styleRemove$1 : typeof value === "function" - ? styleFunction$1 - : styleConstant$1)(name, value, priority == null ? "" : priority)) - : styleValue(this.node(), name); -} - -function styleValue(node, name) { - return node.style.getPropertyValue(name) - || defaultView(node).getComputedStyle(node, null).getPropertyValue(name); -} - -function propertyRemove(name) { - return function() { - delete this[name]; - }; -} - -function propertyConstant(name, value) { - return function() { - this[name] = value; - }; -} - -function propertyFunction(name, value) { - return function() { - var v = value.apply(this, arguments); - if (v == null) delete this[name]; - else this[name] = v; - }; -} - -function selection_property(name, value) { - return arguments.length > 1 - ? this.each((value == null - ? propertyRemove : typeof value === "function" - ? propertyFunction - : propertyConstant)(name, value)) - : this.node()[name]; -} - -function classArray(string) { - return string.trim().split(/^|\s+/); -} - -function classList(node) { - return node.classList || new ClassList(node); -} - -function ClassList(node) { - this._node = node; - this._names = classArray(node.getAttribute("class") || ""); -} - -ClassList.prototype = { - add: function(name) { - var i = this._names.indexOf(name); - if (i < 0) { - this._names.push(name); - this._node.setAttribute("class", this._names.join(" ")); - } - }, - remove: function(name) { - var i = this._names.indexOf(name); - if (i >= 0) { - this._names.splice(i, 1); - this._node.setAttribute("class", this._names.join(" ")); - } - }, - contains: function(name) { - return this._names.indexOf(name) >= 0; - } -}; - -function classedAdd(node, names) { - var list = classList(node), i = -1, n = names.length; - while (++i < n) list.add(names[i]); -} - -function classedRemove(node, names) { - var list = classList(node), i = -1, n = names.length; - while (++i < n) list.remove(names[i]); -} - -function classedTrue(names) { - return function() { - classedAdd(this, names); - }; -} - -function classedFalse(names) { - return function() { - classedRemove(this, names); - }; -} - -function classedFunction(names, value) { - return function() { - (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); - }; -} - -function selection_classed(name, value) { - var names = classArray(name + ""); - - if (arguments.length < 2) { - var list = classList(this.node()), i = -1, n = names.length; - while (++i < n) if (!list.contains(names[i])) return false; - return true; - } - - return this.each((typeof value === "function" - ? classedFunction : value - ? classedTrue - : classedFalse)(names, value)); -} - -function textRemove() { - this.textContent = ""; -} - -function textConstant$1(value) { - return function() { - this.textContent = value; - }; -} - -function textFunction$1(value) { - return function() { - var v = value.apply(this, arguments); - this.textContent = v == null ? "" : v; - }; -} - -function selection_text(value) { - return arguments.length - ? this.each(value == null - ? textRemove : (typeof value === "function" - ? textFunction$1 - : textConstant$1)(value)) - : this.node().textContent; -} - -function htmlRemove() { - this.innerHTML = ""; -} - -function htmlConstant(value) { - return function() { - this.innerHTML = value; - }; -} - -function htmlFunction(value) { - return function() { - var v = value.apply(this, arguments); - this.innerHTML = v == null ? "" : v; - }; -} - -function selection_html(value) { - return arguments.length - ? this.each(value == null - ? htmlRemove : (typeof value === "function" - ? htmlFunction - : htmlConstant)(value)) - : this.node().innerHTML; -} - -function raise() { - if (this.nextSibling) this.parentNode.appendChild(this); -} - -function selection_raise() { - return this.each(raise); -} - -function lower() { - if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); -} - -function selection_lower() { - return this.each(lower); -} - -function selection_append(name) { - var create = typeof name === "function" ? name : creator(name); - return this.select(function() { - return this.appendChild(create.apply(this, arguments)); - }); -} - -function constantNull() { - return null; -} - -function selection_insert(name, before) { - var create = typeof name === "function" ? name : creator(name), - select = before == null ? constantNull : typeof before === "function" ? before : selector(before); - return this.select(function() { - return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); - }); -} - -function remove() { - var parent = this.parentNode; - if (parent) parent.removeChild(this); -} - -function selection_remove() { - return this.each(remove); -} - -function selection_cloneShallow() { - var clone = this.cloneNode(false), parent = this.parentNode; - return parent ? parent.insertBefore(clone, this.nextSibling) : clone; -} - -function selection_cloneDeep() { - var clone = this.cloneNode(true), parent = this.parentNode; - return parent ? parent.insertBefore(clone, this.nextSibling) : clone; -} - -function selection_clone(deep) { - return this.select(deep ? selection_cloneDeep : selection_cloneShallow); -} - -function selection_datum(value) { - return arguments.length - ? this.property("__data__", value) - : this.node().__data__; -} - -function contextListener(listener) { - return function(event) { - listener.call(this, event, this.__data__); - }; -} - -function parseTypenames(typenames) { - return typenames.trim().split(/^|\s+/).map(function(t) { - var name = "", i = t.indexOf("."); - if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); - return {type: t, name: name}; - }); -} - -function onRemove(typename) { - return function() { - var on = this.__on; - if (!on) return; - for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { - if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { - this.removeEventListener(o.type, o.listener, o.options); - } else { - on[++i] = o; - } - } - if (++i) on.length = i; - else delete this.__on; - }; -} - -function onAdd(typename, value, options) { - return function() { - var on = this.__on, o, listener = contextListener(value); - if (on) for (var j = 0, m = on.length; j < m; ++j) { - if ((o = on[j]).type === typename.type && o.name === typename.name) { - this.removeEventListener(o.type, o.listener, o.options); - this.addEventListener(o.type, o.listener = listener, o.options = options); - o.value = value; - return; - } - } - this.addEventListener(typename.type, listener, options); - o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options}; - if (!on) this.__on = [o]; - else on.push(o); - }; -} - -function selection_on(typename, value, options) { - var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; - - if (arguments.length < 2) { - var on = this.node().__on; - if (on) for (var j = 0, m = on.length, o; j < m; ++j) { - for (i = 0, o = on[j]; i < n; ++i) { - if ((t = typenames[i]).type === o.type && t.name === o.name) { - return o.value; - } - } - } - return; - } - - on = value ? onAdd : onRemove; - for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); - return this; -} - -function dispatchEvent(node, type, params) { - var window = defaultView(node), - event = window.CustomEvent; - - if (typeof event === "function") { - event = new event(type, params); - } else { - event = window.document.createEvent("Event"); - if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; - else event.initEvent(type, false, false); - } - - node.dispatchEvent(event); -} - -function dispatchConstant(type, params) { - return function() { - return dispatchEvent(this, type, params); - }; -} - -function dispatchFunction(type, params) { - return function() { - return dispatchEvent(this, type, params.apply(this, arguments)); - }; -} - -function selection_dispatch(type, params) { - return this.each((typeof params === "function" - ? dispatchFunction - : dispatchConstant)(type, params)); -} - -function* selection_iterator() { - for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { - for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { - if (node = group[i]) yield node; - } - } -} - -var root$1 = [null]; - -function Selection$1(groups, parents) { - this._groups = groups; - this._parents = parents; -} - -function selection() { - return new Selection$1([[document.documentElement]], root$1); -} - -function selection_selection() { - return this; -} - -Selection$1.prototype = selection.prototype = { - constructor: Selection$1, - select: selection_select, - selectAll: selection_selectAll, - selectChild: selection_selectChild, - selectChildren: selection_selectChildren, - filter: selection_filter, - data: selection_data, - enter: selection_enter, - exit: selection_exit, - join: selection_join, - merge: selection_merge, - selection: selection_selection, - order: selection_order, - sort: selection_sort, - call: selection_call, - nodes: selection_nodes, - node: selection_node, - size: selection_size, - empty: selection_empty, - each: selection_each, - attr: selection_attr, - style: selection_style, - property: selection_property, - classed: selection_classed, - text: selection_text, - html: selection_html, - raise: selection_raise, - lower: selection_lower, - append: selection_append, - insert: selection_insert, - remove: selection_remove, - clone: selection_clone, - datum: selection_datum, - on: selection_on, - dispatch: selection_dispatch, - [Symbol.iterator]: selection_iterator -}; - -function select(selector) { - return typeof selector === "string" - ? new Selection$1([[document.querySelector(selector)]], [document.documentElement]) - : new Selection$1([[selector]], root$1); -} - -function create$1(name) { - return select(creator(name).call(document.documentElement)); -} - -var nextId = 0; - -function local$1() { - return new Local; -} - -function Local() { - this._ = "@" + (++nextId).toString(36); -} - -Local.prototype = local$1.prototype = { - constructor: Local, - get: function(node) { - var id = this._; - while (!(id in node)) if (!(node = node.parentNode)) return; - return node[id]; - }, - set: function(node, value) { - return node[this._] = value; - }, - remove: function(node) { - return this._ in node && delete node[this._]; - }, - toString: function() { - return this._; - } -}; - -function sourceEvent(event) { - let sourceEvent; - while (sourceEvent = event.sourceEvent) event = sourceEvent; - return event; -} - -function pointer(event, node) { - event = sourceEvent(event); - if (node === undefined) node = event.currentTarget; - if (node) { - var svg = node.ownerSVGElement || node; - if (svg.createSVGPoint) { - var point = svg.createSVGPoint(); - point.x = event.clientX, point.y = event.clientY; - point = point.matrixTransform(node.getScreenCTM().inverse()); - return [point.x, point.y]; - } - if (node.getBoundingClientRect) { - var rect = node.getBoundingClientRect(); - return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; - } - } - return [event.pageX, event.pageY]; -} - -function pointers(events, node) { - if (events.target) { // i.e., instanceof Event, not TouchList or iterable - events = sourceEvent(events); - if (node === undefined) node = events.currentTarget; - events = events.touches || [events]; - } - return Array.from(events, event => pointer(event, node)); -} - -function selectAll(selector) { - return typeof selector === "string" - ? new Selection$1([document.querySelectorAll(selector)], [document.documentElement]) - : new Selection$1([selector == null ? [] : array$4(selector)], root$1); -} - -function nopropagation$2(event) { - event.stopImmediatePropagation(); -} - -function noevent$2(event) { - event.preventDefault(); - event.stopImmediatePropagation(); -} - -function dragDisable(view) { - var root = view.document.documentElement, - selection = select(view).on("dragstart.drag", noevent$2, true); - if ("onselectstart" in root) { - selection.on("selectstart.drag", noevent$2, true); - } else { - root.__noselect = root.style.MozUserSelect; - root.style.MozUserSelect = "none"; - } -} - -function yesdrag(view, noclick) { - var root = view.document.documentElement, - selection = select(view).on("dragstart.drag", null); - if (noclick) { - selection.on("click.drag", noevent$2, true); - setTimeout(function() { selection.on("click.drag", null); }, 0); - } - if ("onselectstart" in root) { - selection.on("selectstart.drag", null); - } else { - root.style.MozUserSelect = root.__noselect; - delete root.__noselect; - } -} - -var constant$9 = x => () => x; - -function DragEvent(type, { - sourceEvent, - subject, - target, - identifier, - active, - x, y, dx, dy, - dispatch -}) { - Object.defineProperties(this, { - type: {value: type, enumerable: true, configurable: true}, - sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, - subject: {value: subject, enumerable: true, configurable: true}, - target: {value: target, enumerable: true, configurable: true}, - identifier: {value: identifier, enumerable: true, configurable: true}, - active: {value: active, enumerable: true, configurable: true}, - x: {value: x, enumerable: true, configurable: true}, - y: {value: y, enumerable: true, configurable: true}, - dx: {value: dx, enumerable: true, configurable: true}, - dy: {value: dy, enumerable: true, configurable: true}, - _: {value: dispatch} - }); -} - -DragEvent.prototype.on = function() { - var value = this._.on.apply(this._, arguments); - return value === this._ ? this : value; -}; - -// Ignore right-click, since that should open the context menu. -function defaultFilter$2(event) { - return !event.ctrlKey && !event.button; -} - -function defaultContainer() { - return this.parentNode; -} - -function defaultSubject(event, d) { - return d == null ? {x: event.x, y: event.y} : d; -} - -function defaultTouchable$2() { - return navigator.maxTouchPoints || ("ontouchstart" in this); -} - -function drag() { - var filter = defaultFilter$2, - container = defaultContainer, - subject = defaultSubject, - touchable = defaultTouchable$2, - gestures = {}, - listeners = dispatch("start", "drag", "end"), - active = 0, - mousedownx, - mousedowny, - mousemoving, - touchending, - clickDistance2 = 0; - - function drag(selection) { - selection - .on("mousedown.drag", mousedowned) - .filter(touchable) - .on("touchstart.drag", touchstarted) - .on("touchmove.drag", touchmoved) - .on("touchend.drag touchcancel.drag", touchended) - .style("touch-action", "none") - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - function mousedowned(event, d) { - if (touchending || !filter.call(this, event, d)) return; - var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse"); - if (!gesture) return; - select(event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true); - dragDisable(event.view); - nopropagation$2(event); - mousemoving = false; - mousedownx = event.clientX; - mousedowny = event.clientY; - gesture("start", event); - } - - function mousemoved(event) { - noevent$2(event); - if (!mousemoving) { - var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; - mousemoving = dx * dx + dy * dy > clickDistance2; - } - gestures.mouse("drag", event); - } - - function mouseupped(event) { - select(event.view).on("mousemove.drag mouseup.drag", null); - yesdrag(event.view, mousemoving); - noevent$2(event); - gestures.mouse("end", event); - } - - function touchstarted(event, d) { - if (!filter.call(this, event, d)) return; - var touches = event.changedTouches, - c = container.call(this, event, d), - n = touches.length, i, gesture; - - for (i = 0; i < n; ++i) { - if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) { - nopropagation$2(event); - gesture("start", event, touches[i]); - } - } - } - - function touchmoved(event) { - var touches = event.changedTouches, - n = touches.length, i, gesture; - - for (i = 0; i < n; ++i) { - if (gesture = gestures[touches[i].identifier]) { - noevent$2(event); - gesture("drag", event, touches[i]); - } - } - } - - function touchended(event) { - var touches = event.changedTouches, - n = touches.length, i, gesture; - - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! - for (i = 0; i < n; ++i) { - if (gesture = gestures[touches[i].identifier]) { - nopropagation$2(event); - gesture("end", event, touches[i]); - } - } - } - - function beforestart(that, container, event, d, identifier, touch) { - var dispatch = listeners.copy(), - p = pointer(touch || event, container), dx, dy, - s; - - if ((s = subject.call(that, new DragEvent("beforestart", { - sourceEvent: event, - target: drag, - identifier, - active, - x: p[0], - y: p[1], - dx: 0, - dy: 0, - dispatch - }), d)) == null) return; - - dx = s.x - p[0] || 0; - dy = s.y - p[1] || 0; - - return function gesture(type, event, touch) { - var p0 = p, n; - switch (type) { - case "start": gestures[identifier] = gesture, n = active++; break; - case "end": delete gestures[identifier], --active; // nobreak - case "drag": p = pointer(touch || event, container), n = active; break; - } - dispatch.call( - type, - that, - new DragEvent(type, { - sourceEvent: event, - subject: s, - target: drag, - identifier, - active: n, - x: p[0] + dx, - y: p[1] + dy, - dx: p[0] - p0[0], - dy: p[1] - p0[1], - dispatch - }), - d - ); - }; - } - - drag.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant$9(!!_), drag) : filter; - }; - - drag.container = function(_) { - return arguments.length ? (container = typeof _ === "function" ? _ : constant$9(_), drag) : container; - }; - - drag.subject = function(_) { - return arguments.length ? (subject = typeof _ === "function" ? _ : constant$9(_), drag) : subject; - }; - - drag.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$9(!!_), drag) : touchable; - }; - - drag.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? drag : value; - }; - - drag.clickDistance = function(_) { - return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); - }; - - return drag; -} - -function define(constructor, factory, prototype) { - constructor.prototype = factory.prototype = prototype; - prototype.constructor = constructor; -} - -function extend(parent, definition) { - var prototype = Object.create(parent.prototype); - for (var key in definition) prototype[key] = definition[key]; - return prototype; -} - -function Color() {} - -var darker = 0.7; -var brighter = 1 / darker; - -var reI = "\\s*([+-]?\\d+)\\s*", - reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", - reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", - reHex = /^#([0-9a-f]{3,8})$/, - reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), - reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), - reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), - reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), - reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), - reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); - -var named = { - aliceblue: 0xf0f8ff, - antiquewhite: 0xfaebd7, - aqua: 0x00ffff, - aquamarine: 0x7fffd4, - azure: 0xf0ffff, - beige: 0xf5f5dc, - bisque: 0xffe4c4, - black: 0x000000, - blanchedalmond: 0xffebcd, - blue: 0x0000ff, - blueviolet: 0x8a2be2, - brown: 0xa52a2a, - burlywood: 0xdeb887, - cadetblue: 0x5f9ea0, - chartreuse: 0x7fff00, - chocolate: 0xd2691e, - coral: 0xff7f50, - cornflowerblue: 0x6495ed, - cornsilk: 0xfff8dc, - crimson: 0xdc143c, - cyan: 0x00ffff, - darkblue: 0x00008b, - darkcyan: 0x008b8b, - darkgoldenrod: 0xb8860b, - darkgray: 0xa9a9a9, - darkgreen: 0x006400, - darkgrey: 0xa9a9a9, - darkkhaki: 0xbdb76b, - darkmagenta: 0x8b008b, - darkolivegreen: 0x556b2f, - darkorange: 0xff8c00, - darkorchid: 0x9932cc, - darkred: 0x8b0000, - darksalmon: 0xe9967a, - darkseagreen: 0x8fbc8f, - darkslateblue: 0x483d8b, - darkslategray: 0x2f4f4f, - darkslategrey: 0x2f4f4f, - darkturquoise: 0x00ced1, - darkviolet: 0x9400d3, - deeppink: 0xff1493, - deepskyblue: 0x00bfff, - dimgray: 0x696969, - dimgrey: 0x696969, - dodgerblue: 0x1e90ff, - firebrick: 0xb22222, - floralwhite: 0xfffaf0, - forestgreen: 0x228b22, - fuchsia: 0xff00ff, - gainsboro: 0xdcdcdc, - ghostwhite: 0xf8f8ff, - gold: 0xffd700, - goldenrod: 0xdaa520, - gray: 0x808080, - green: 0x008000, - greenyellow: 0xadff2f, - grey: 0x808080, - honeydew: 0xf0fff0, - hotpink: 0xff69b4, - indianred: 0xcd5c5c, - indigo: 0x4b0082, - ivory: 0xfffff0, - khaki: 0xf0e68c, - lavender: 0xe6e6fa, - lavenderblush: 0xfff0f5, - lawngreen: 0x7cfc00, - lemonchiffon: 0xfffacd, - lightblue: 0xadd8e6, - lightcoral: 0xf08080, - lightcyan: 0xe0ffff, - lightgoldenrodyellow: 0xfafad2, - lightgray: 0xd3d3d3, - lightgreen: 0x90ee90, - lightgrey: 0xd3d3d3, - lightpink: 0xffb6c1, - lightsalmon: 0xffa07a, - lightseagreen: 0x20b2aa, - lightskyblue: 0x87cefa, - lightslategray: 0x778899, - lightslategrey: 0x778899, - lightsteelblue: 0xb0c4de, - lightyellow: 0xffffe0, - lime: 0x00ff00, - limegreen: 0x32cd32, - linen: 0xfaf0e6, - magenta: 0xff00ff, - maroon: 0x800000, - mediumaquamarine: 0x66cdaa, - mediumblue: 0x0000cd, - mediumorchid: 0xba55d3, - mediumpurple: 0x9370db, - mediumseagreen: 0x3cb371, - mediumslateblue: 0x7b68ee, - mediumspringgreen: 0x00fa9a, - mediumturquoise: 0x48d1cc, - mediumvioletred: 0xc71585, - midnightblue: 0x191970, - mintcream: 0xf5fffa, - mistyrose: 0xffe4e1, - moccasin: 0xffe4b5, - navajowhite: 0xffdead, - navy: 0x000080, - oldlace: 0xfdf5e6, - olive: 0x808000, - olivedrab: 0x6b8e23, - orange: 0xffa500, - orangered: 0xff4500, - orchid: 0xda70d6, - palegoldenrod: 0xeee8aa, - palegreen: 0x98fb98, - paleturquoise: 0xafeeee, - palevioletred: 0xdb7093, - papayawhip: 0xffefd5, - peachpuff: 0xffdab9, - peru: 0xcd853f, - pink: 0xffc0cb, - plum: 0xdda0dd, - powderblue: 0xb0e0e6, - purple: 0x800080, - rebeccapurple: 0x663399, - red: 0xff0000, - rosybrown: 0xbc8f8f, - royalblue: 0x4169e1, - saddlebrown: 0x8b4513, - salmon: 0xfa8072, - sandybrown: 0xf4a460, - seagreen: 0x2e8b57, - seashell: 0xfff5ee, - sienna: 0xa0522d, - silver: 0xc0c0c0, - skyblue: 0x87ceeb, - slateblue: 0x6a5acd, - slategray: 0x708090, - slategrey: 0x708090, - snow: 0xfffafa, - springgreen: 0x00ff7f, - steelblue: 0x4682b4, - tan: 0xd2b48c, - teal: 0x008080, - thistle: 0xd8bfd8, - tomato: 0xff6347, - turquoise: 0x40e0d0, - violet: 0xee82ee, - wheat: 0xf5deb3, - white: 0xffffff, - whitesmoke: 0xf5f5f5, - yellow: 0xffff00, - yellowgreen: 0x9acd32 -}; - -define(Color, color, { - copy: function(channels) { - return Object.assign(new this.constructor, this, channels); - }, - displayable: function() { - return this.rgb().displayable(); - }, - hex: color_formatHex, // Deprecated! Use color.formatHex. - formatHex: color_formatHex, - formatHsl: color_formatHsl, - formatRgb: color_formatRgb, - toString: color_formatRgb -}); - -function color_formatHex() { - return this.rgb().formatHex(); -} - -function color_formatHsl() { - return hslConvert(this).formatHsl(); -} - -function color_formatRgb() { - return this.rgb().formatRgb(); -} - -function color(format) { - var m, l; - format = (format + "").trim().toLowerCase(); - return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 - : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 - : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 - : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 - : null) // invalid hex - : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) - : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) - : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) - : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) - : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) - : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) - : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins - : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) - : null; -} - -function rgbn(n) { - return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); -} - -function rgba(r, g, b, a) { - if (a <= 0) r = g = b = NaN; - return new Rgb(r, g, b, a); -} - -function rgbConvert(o) { - if (!(o instanceof Color)) o = color(o); - if (!o) return new Rgb; - o = o.rgb(); - return new Rgb(o.r, o.g, o.b, o.opacity); -} - -function rgb(r, g, b, opacity) { - return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); -} - -function Rgb(r, g, b, opacity) { - this.r = +r; - this.g = +g; - this.b = +b; - this.opacity = +opacity; -} - -define(Rgb, rgb, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); - }, - rgb: function() { - return this; - }, - displayable: function() { - return (-0.5 <= this.r && this.r < 255.5) - && (-0.5 <= this.g && this.g < 255.5) - && (-0.5 <= this.b && this.b < 255.5) - && (0 <= this.opacity && this.opacity <= 1); - }, - hex: rgb_formatHex, // Deprecated! Use color.formatHex. - formatHex: rgb_formatHex, - formatRgb: rgb_formatRgb, - toString: rgb_formatRgb -})); - -function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); -} - -function rgb_formatRgb() { - var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "rgb(" : "rgba(") - + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " - + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " - + Math.max(0, Math.min(255, Math.round(this.b) || 0)) - + (a === 1 ? ")" : ", " + a + ")"); -} - -function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); - return (value < 16 ? "0" : "") + value.toString(16); -} - -function hsla(h, s, l, a) { - if (a <= 0) h = s = l = NaN; - else if (l <= 0 || l >= 1) h = s = NaN; - else if (s <= 0) h = NaN; - return new Hsl(h, s, l, a); -} - -function hslConvert(o) { - if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Color)) o = color(o); - if (!o) return new Hsl; - if (o instanceof Hsl) return o; - o = o.rgb(); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = NaN, - s = max - min, - l = (max + min) / 2; - if (s) { - if (r === max) h = (g - b) / s + (g < b) * 6; - else if (g === max) h = (b - r) / s + 2; - else h = (r - g) / s + 4; - s /= l < 0.5 ? max + min : 2 - max - min; - h *= 60; - } else { - s = l > 0 && l < 1 ? 0 : h; - } - return new Hsl(h, s, l, o.opacity); -} - -function hsl$2(h, s, l, opacity) { - return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); -} - -function Hsl(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; -} - -define(Hsl, hsl$2, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Hsl(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = this.h % 360 + (this.h < 0) * 360, - s = isNaN(h) || isNaN(this.s) ? 0 : this.s, - l = this.l, - m2 = l + (l < 0.5 ? l : 1 - l) * s, - m1 = 2 * l - m2; - return new Rgb( - hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), - hsl2rgb(h, m1, m2), - hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), - this.opacity - ); - }, - displayable: function() { - return (0 <= this.s && this.s <= 1 || isNaN(this.s)) - && (0 <= this.l && this.l <= 1) - && (0 <= this.opacity && this.opacity <= 1); - }, - formatHsl: function() { - var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") - + (this.h || 0) + ", " - + (this.s || 0) * 100 + "%, " - + (this.l || 0) * 100 + "%" - + (a === 1 ? ")" : ", " + a + ")"); - } -})); - -/* From FvD 13.37, CSS Color Module Level 3 */ -function hsl2rgb(h, m1, m2) { - return (h < 60 ? m1 + (m2 - m1) * h / 60 - : h < 180 ? m2 - : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 - : m1) * 255; -} - -const radians$1 = Math.PI / 180; -const degrees$2 = 180 / Math.PI; - -// https://observablehq.com/@mbostock/lab-and-rgb -const K = 18, - Xn = 0.96422, - Yn = 1, - Zn = 0.82521, - t0$1 = 4 / 29, - t1$1 = 6 / 29, - t2 = 3 * t1$1 * t1$1, - t3 = t1$1 * t1$1 * t1$1; - -function labConvert(o) { - if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity); - if (o instanceof Hcl) return hcl2lab(o); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = rgb2lrgb(o.r), - g = rgb2lrgb(o.g), - b = rgb2lrgb(o.b), - y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z; - if (r === g && g === b) x = z = y; else { - x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn); - z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn); - } - return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity); -} - -function gray(l, opacity) { - return new Lab(l, 0, 0, opacity == null ? 1 : opacity); -} - -function lab$1(l, a, b, opacity) { - return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity); -} - -function Lab(l, a, b, opacity) { - this.l = +l; - this.a = +a; - this.b = +b; - this.opacity = +opacity; -} - -define(Lab, lab$1, extend(Color, { - brighter: function(k) { - return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - darker: function(k) { - return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); - }, - rgb: function() { - var y = (this.l + 16) / 116, - x = isNaN(this.a) ? y : y + this.a / 500, - z = isNaN(this.b) ? y : y - this.b / 200; - x = Xn * lab2xyz(x); - y = Yn * lab2xyz(y); - z = Zn * lab2xyz(z); - return new Rgb( - lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z), - lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z), - lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z), - this.opacity - ); - } -})); - -function xyz2lab(t) { - return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1; -} - -function lab2xyz(t) { - return t > t1$1 ? t * t * t : t2 * (t - t0$1); -} - -function lrgb2rgb(x) { - return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055); -} - -function rgb2lrgb(x) { - return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); -} - -function hclConvert(o) { - if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity); - if (!(o instanceof Lab)) o = labConvert(o); - if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity); - var h = Math.atan2(o.b, o.a) * degrees$2; - return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity); -} - -function lch(l, c, h, opacity) { - return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity); -} - -function hcl$2(h, c, l, opacity) { - return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity); -} - -function Hcl(h, c, l, opacity) { - this.h = +h; - this.c = +c; - this.l = +l; - this.opacity = +opacity; -} - -function hcl2lab(o) { - if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity); - var h = o.h * radians$1; - return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); -} - -define(Hcl, hcl$2, extend(Color, { - brighter: function(k) { - return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); - }, - darker: function(k) { - return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); - }, - rgb: function() { - return hcl2lab(this).rgb(); - } -})); - -var A = -0.14861, - B = +1.78277, - C = -0.29227, - D = -0.90649, - E = +1.97294, - ED = E * D, - EB = E * B, - BC_DA = B * C - D * A; - -function cubehelixConvert(o) { - if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity); - if (!(o instanceof Rgb)) o = rgbConvert(o); - var r = o.r / 255, - g = o.g / 255, - b = o.b / 255, - l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), - bl = b - l, - k = (E * (g - l) - C * bl) / D, - s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1 - h = s ? Math.atan2(k, bl) * degrees$2 - 120 : NaN; - return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity); -} - -function cubehelix$3(h, s, l, opacity) { - return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity); -} - -function Cubehelix(h, s, l, opacity) { - this.h = +h; - this.s = +s; - this.l = +l; - this.opacity = +opacity; -} - -define(Cubehelix, cubehelix$3, extend(Color, { - brighter: function(k) { - k = k == null ? brighter : Math.pow(brighter, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - darker: function(k) { - k = k == null ? darker : Math.pow(darker, k); - return new Cubehelix(this.h, this.s, this.l * k, this.opacity); - }, - rgb: function() { - var h = isNaN(this.h) ? 0 : (this.h + 120) * radians$1, - l = +this.l, - a = isNaN(this.s) ? 0 : this.s * l * (1 - l), - cosh = Math.cos(h), - sinh = Math.sin(h); - return new Rgb( - 255 * (l + a * (A * cosh + B * sinh)), - 255 * (l + a * (C * cosh + D * sinh)), - 255 * (l + a * (E * cosh)), - this.opacity - ); - } -})); - -function basis$1(t1, v0, v1, v2, v3) { - var t2 = t1 * t1, t3 = t2 * t1; - return ((1 - 3 * t1 + 3 * t2 - t3) * v0 - + (4 - 6 * t2 + 3 * t3) * v1 - + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 - + t3 * v3) / 6; -} - -function basis$2(values) { - var n = values.length - 1; - return function(t) { - var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), - v1 = values[i], - v2 = values[i + 1], - v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, - v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; - return basis$1((t - i / n) * n, v0, v1, v2, v3); - }; -} - -function basisClosed$1(values) { - var n = values.length; - return function(t) { - var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), - v0 = values[(i + n - 1) % n], - v1 = values[i % n], - v2 = values[(i + 1) % n], - v3 = values[(i + 2) % n]; - return basis$1((t - i / n) * n, v0, v1, v2, v3); - }; -} - -var constant$8 = x => () => x; - -function linear$2(a, d) { - return function(t) { - return a + t * d; - }; -} - -function exponential$1(a, b, y) { - return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { - return Math.pow(a + t * b, y); - }; -} - -function hue$1(a, b) { - var d = b - a; - return d ? linear$2(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$8(isNaN(a) ? b : a); -} - -function gamma$1(y) { - return (y = +y) === 1 ? nogamma : function(a, b) { - return b - a ? exponential$1(a, b, y) : constant$8(isNaN(a) ? b : a); - }; -} - -function nogamma(a, b) { - var d = b - a; - return d ? linear$2(a, d) : constant$8(isNaN(a) ? b : a); -} - -var interpolateRgb = (function rgbGamma(y) { - var color = gamma$1(y); - - function rgb$1(start, end) { - var r = color((start = rgb(start)).r, (end = rgb(end)).r), - g = color(start.g, end.g), - b = color(start.b, end.b), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.r = r(t); - start.g = g(t); - start.b = b(t); - start.opacity = opacity(t); - return start + ""; - }; - } - - rgb$1.gamma = rgbGamma; - - return rgb$1; -})(1); - -function rgbSpline(spline) { - return function(colors) { - var n = colors.length, - r = new Array(n), - g = new Array(n), - b = new Array(n), - i, color; - for (i = 0; i < n; ++i) { - color = rgb(colors[i]); - r[i] = color.r || 0; - g[i] = color.g || 0; - b[i] = color.b || 0; - } - r = spline(r); - g = spline(g); - b = spline(b); - color.opacity = 1; - return function(t) { - color.r = r(t); - color.g = g(t); - color.b = b(t); - return color + ""; - }; - }; -} - -var rgbBasis = rgbSpline(basis$2); -var rgbBasisClosed = rgbSpline(basisClosed$1); - -function numberArray(a, b) { - if (!b) b = []; - var n = a ? Math.min(b.length, a.length) : 0, - c = b.slice(), - i; - return function(t) { - for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t; - return c; - }; -} - -function isNumberArray(x) { - return ArrayBuffer.isView(x) && !(x instanceof DataView); -} - -function array$3(a, b) { - return (isNumberArray(b) ? numberArray : genericArray)(a, b); -} - -function genericArray(a, b) { - var nb = b ? b.length : 0, - na = a ? Math.min(nb, a.length) : 0, - x = new Array(na), - c = new Array(nb), - i; - - for (i = 0; i < na; ++i) x[i] = interpolate$2(a[i], b[i]); - for (; i < nb; ++i) c[i] = b[i]; - - return function(t) { - for (i = 0; i < na; ++i) c[i] = x[i](t); - return c; - }; -} - -function date$1(a, b) { - var d = new Date; - return a = +a, b = +b, function(t) { - return d.setTime(a * (1 - t) + b * t), d; - }; -} - -function interpolateNumber(a, b) { - return a = +a, b = +b, function(t) { - return a * (1 - t) + b * t; - }; -} - -function object$1(a, b) { - var i = {}, - c = {}, - k; - - if (a === null || typeof a !== "object") a = {}; - if (b === null || typeof b !== "object") b = {}; - - for (k in b) { - if (k in a) { - i[k] = interpolate$2(a[k], b[k]); - } else { - c[k] = b[k]; - } - } - - return function(t) { - for (k in i) c[k] = i[k](t); - return c; - }; -} - -var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, - reB = new RegExp(reA.source, "g"); - -function zero(b) { - return function() { - return b; - }; -} - -function one(b) { - return function(t) { - return b(t) + ""; - }; -} - -function interpolateString(a, b) { - var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b - am, // current match in a - bm, // current match in b - bs, // string preceding current number in b, if any - i = -1, // index in s - s = [], // string constants and placeholders - q = []; // number interpolators - - // Coerce inputs to strings. - a = a + "", b = b + ""; - - // Interpolate pairs of numbers in a & b. - while ((am = reA.exec(a)) - && (bm = reB.exec(b))) { - if ((bs = bm.index) > bi) { // a string precedes the next number in b - bs = b.slice(bi, bs); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match - if (s[i]) s[i] += bm; // coalesce with previous string - else s[++i] = bm; - } else { // interpolate non-matching numbers - s[++i] = null; - q.push({i: i, x: interpolateNumber(am, bm)}); - } - bi = reB.lastIndex; - } - - // Add remains of b. - if (bi < b.length) { - bs = b.slice(bi); - if (s[i]) s[i] += bs; // coalesce with previous string - else s[++i] = bs; - } - - // Special optimization for only a single match. - // Otherwise, interpolate each of the numbers and rejoin the string. - return s.length < 2 ? (q[0] - ? one(q[0].x) - : zero(b)) - : (b = q.length, function(t) { - for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }); -} - -function interpolate$2(a, b) { - var t = typeof b, c; - return b == null || t === "boolean" ? constant$8(b) - : (t === "number" ? interpolateNumber - : t === "string" ? ((c = color(b)) ? (b = c, interpolateRgb) : interpolateString) - : b instanceof color ? interpolateRgb - : b instanceof Date ? date$1 - : isNumberArray(b) ? numberArray - : Array.isArray(b) ? genericArray - : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object$1 - : interpolateNumber)(a, b); -} - -function discrete(range) { - var n = range.length; - return function(t) { - return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; - }; -} - -function hue(a, b) { - var i = hue$1(+a, +b); - return function(t) { - var x = i(t); - return x - 360 * Math.floor(x / 360); - }; -} - -function interpolateRound(a, b) { - return a = +a, b = +b, function(t) { - return Math.round(a * (1 - t) + b * t); - }; -} - -var degrees$1 = 180 / Math.PI; - -var identity$7 = { - translateX: 0, - translateY: 0, - rotate: 0, - skewX: 0, - scaleX: 1, - scaleY: 1 -}; - -function decompose(a, b, c, d, e, f) { - var scaleX, scaleY, skewX; - if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; - if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; - if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; - if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; - return { - translateX: e, - translateY: f, - rotate: Math.atan2(b, a) * degrees$1, - skewX: Math.atan(skewX) * degrees$1, - scaleX: scaleX, - scaleY: scaleY - }; -} - -var svgNode; - -/* eslint-disable no-undef */ -function parseCss(value) { - const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); - return m.isIdentity ? identity$7 : decompose(m.a, m.b, m.c, m.d, m.e, m.f); -} - -function parseSvg(value) { - if (value == null) return identity$7; - if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); - svgNode.setAttribute("transform", value); - if (!(value = svgNode.transform.baseVal.consolidate())) return identity$7; - value = value.matrix; - return decompose(value.a, value.b, value.c, value.d, value.e, value.f); -} - -function interpolateTransform(parse, pxComma, pxParen, degParen) { - - function pop(s) { - return s.length ? s.pop() + " " : ""; - } - - function translate(xa, ya, xb, yb, s, q) { - if (xa !== xb || ya !== yb) { - var i = s.push("translate(", null, pxComma, null, pxParen); - q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); - } else if (xb || yb) { - s.push("translate(" + xb + pxComma + yb + pxParen); - } - } - - function rotate(a, b, s, q) { - if (a !== b) { - if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path - q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b)}); - } else if (b) { - s.push(pop(s) + "rotate(" + b + degParen); - } - } - - function skewX(a, b, s, q) { - if (a !== b) { - q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b)}); - } else if (b) { - s.push(pop(s) + "skewX(" + b + degParen); - } - } - - function scale(xa, ya, xb, yb, s, q) { - if (xa !== xb || ya !== yb) { - var i = s.push(pop(s) + "scale(", null, ",", null, ")"); - q.push({i: i - 4, x: interpolateNumber(xa, xb)}, {i: i - 2, x: interpolateNumber(ya, yb)}); - } else if (xb !== 1 || yb !== 1) { - s.push(pop(s) + "scale(" + xb + "," + yb + ")"); - } - } - - return function(a, b) { - var s = [], // string constants and placeholders - q = []; // number interpolators - a = parse(a), b = parse(b); - translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); - rotate(a.rotate, b.rotate, s, q); - skewX(a.skewX, b.skewX, s, q); - scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); - a = b = null; // gc - return function(t) { - var i = -1, n = q.length, o; - while (++i < n) s[(o = q[i]).i] = o.x(t); - return s.join(""); - }; - }; -} - -var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); -var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); - -var epsilon2$1 = 1e-12; - -function cosh(x) { - return ((x = Math.exp(x)) + 1 / x) / 2; -} - -function sinh(x) { - return ((x = Math.exp(x)) - 1 / x) / 2; -} - -function tanh(x) { - return ((x = Math.exp(2 * x)) - 1) / (x + 1); -} - -var interpolateZoom = (function zoomRho(rho, rho2, rho4) { - - // p0 = [ux0, uy0, w0] - // p1 = [ux1, uy1, w1] - function zoom(p0, p1) { - var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], - ux1 = p1[0], uy1 = p1[1], w1 = p1[2], - dx = ux1 - ux0, - dy = uy1 - uy0, - d2 = dx * dx + dy * dy, - i, - S; - - // Special case for u0 ≅ u1. - if (d2 < epsilon2$1) { - S = Math.log(w1 / w0) / rho; - i = function(t) { - return [ - ux0 + t * dx, - uy0 + t * dy, - w0 * Math.exp(rho * t * S) - ]; - }; - } - - // General case. - else { - var d1 = Math.sqrt(d2), - b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), - b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), - r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), - r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); - S = (r1 - r0) / rho; - i = function(t) { - var s = t * S, - coshr0 = cosh(r0), - u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); - return [ - ux0 + u * dx, - uy0 + u * dy, - w0 * coshr0 / cosh(rho * s + r0) - ]; - }; - } - - i.duration = S * 1000 * rho / Math.SQRT2; - - return i; - } - - zoom.rho = function(_) { - var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; - return zoomRho(_1, _2, _4); - }; - - return zoom; -})(Math.SQRT2, 2, 4); - -function hsl(hue) { - return function(start, end) { - var h = hue((start = hsl$2(start)).h, (end = hsl$2(end)).h), - s = nogamma(start.s, end.s), - l = nogamma(start.l, end.l), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.h = h(t); - start.s = s(t); - start.l = l(t); - start.opacity = opacity(t); - return start + ""; - }; - } -} - -var hsl$1 = hsl(hue$1); -var hslLong = hsl(nogamma); - -function lab(start, end) { - var l = nogamma((start = lab$1(start)).l, (end = lab$1(end)).l), - a = nogamma(start.a, end.a), - b = nogamma(start.b, end.b), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.l = l(t); - start.a = a(t); - start.b = b(t); - start.opacity = opacity(t); - return start + ""; - }; -} - -function hcl(hue) { - return function(start, end) { - var h = hue((start = hcl$2(start)).h, (end = hcl$2(end)).h), - c = nogamma(start.c, end.c), - l = nogamma(start.l, end.l), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.h = h(t); - start.c = c(t); - start.l = l(t); - start.opacity = opacity(t); - return start + ""; - }; - } -} - -var hcl$1 = hcl(hue$1); -var hclLong = hcl(nogamma); - -function cubehelix$1(hue) { - return (function cubehelixGamma(y) { - y = +y; - - function cubehelix(start, end) { - var h = hue((start = cubehelix$3(start)).h, (end = cubehelix$3(end)).h), - s = nogamma(start.s, end.s), - l = nogamma(start.l, end.l), - opacity = nogamma(start.opacity, end.opacity); - return function(t) { - start.h = h(t); - start.s = s(t); - start.l = l(Math.pow(t, y)); - start.opacity = opacity(t); - return start + ""; - }; - } - - cubehelix.gamma = cubehelixGamma; - - return cubehelix; - })(1); -} - -var cubehelix$2 = cubehelix$1(hue$1); -var cubehelixLong = cubehelix$1(nogamma); - -function piecewise(interpolate, values) { - if (values === undefined) values = interpolate, interpolate = interpolate$2; - var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); - while (i < n) I[i] = interpolate(v, v = values[++i]); - return function(t) { - var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); - return I[i](t - i); - }; -} - -function quantize$1(interpolator, n) { - var samples = new Array(n); - for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); - return samples; -} - -var frame = 0, // is an animation frame pending? - timeout$1 = 0, // is a timeout pending? - interval$1 = 0, // are any timers active? - pokeDelay = 1000, // how frequently we check for clock skew - taskHead, - taskTail, - clockLast = 0, - clockNow = 0, - clockSkew = 0, - clock = typeof performance === "object" && performance.now ? performance : Date, - setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; - -function now() { - return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); -} - -function clearNow() { - clockNow = 0; -} - -function Timer() { - this._call = - this._time = - this._next = null; -} - -Timer.prototype = timer.prototype = { - constructor: Timer, - restart: function(callback, delay, time) { - if (typeof callback !== "function") throw new TypeError("callback is not a function"); - time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); - if (!this._next && taskTail !== this) { - if (taskTail) taskTail._next = this; - else taskHead = this; - taskTail = this; - } - this._call = callback; - this._time = time; - sleep(); - }, - stop: function() { - if (this._call) { - this._call = null; - this._time = Infinity; - sleep(); - } - } -}; - -function timer(callback, delay, time) { - var t = new Timer; - t.restart(callback, delay, time); - return t; -} - -function timerFlush() { - now(); // Get the current time, if not already set. - ++frame; // Pretend we’ve set an alarm, if we haven’t already. - var t = taskHead, e; - while (t) { - if ((e = clockNow - t._time) >= 0) t._call.call(null, e); - t = t._next; - } - --frame; -} - -function wake() { - clockNow = (clockLast = clock.now()) + clockSkew; - frame = timeout$1 = 0; - try { - timerFlush(); - } finally { - frame = 0; - nap(); - clockNow = 0; - } -} - -function poke() { - var now = clock.now(), delay = now - clockLast; - if (delay > pokeDelay) clockSkew -= delay, clockLast = now; -} - -function nap() { - var t0, t1 = taskHead, t2, time = Infinity; - while (t1) { - if (t1._call) { - if (time > t1._time) time = t1._time; - t0 = t1, t1 = t1._next; - } else { - t2 = t1._next, t1._next = null; - t1 = t0 ? t0._next = t2 : taskHead = t2; - } - } - taskTail = t0; - sleep(time); -} - -function sleep(time) { - if (frame) return; // Soonest alarm already set, or will be. - if (timeout$1) timeout$1 = clearTimeout(timeout$1); - var delay = time - clockNow; // Strictly less than if we recomputed clockNow. - if (delay > 24) { - if (time < Infinity) timeout$1 = setTimeout(wake, time - clock.now() - clockSkew); - if (interval$1) interval$1 = clearInterval(interval$1); - } else { - if (!interval$1) clockLast = clock.now(), interval$1 = setInterval(poke, pokeDelay); - frame = 1, setFrame(wake); - } -} - -function timeout(callback, delay, time) { - var t = new Timer; - delay = delay == null ? 0 : +delay; - t.restart(elapsed => { - t.stop(); - callback(elapsed + delay); - }, delay, time); - return t; -} - -function interval(callback, delay, time) { - var t = new Timer, total = delay; - if (delay == null) return t.restart(callback, delay, time), t; - t._restart = t.restart; - t.restart = function(callback, delay, time) { - delay = +delay, time = time == null ? now() : +time; - t._restart(function tick(elapsed) { - elapsed += total; - t._restart(tick, total += delay, time); - callback(elapsed); - }, delay, time); - }; - t.restart(callback, delay, time); - return t; -} - -var emptyOn = dispatch("start", "end", "cancel", "interrupt"); -var emptyTween = []; - -var CREATED = 0; -var SCHEDULED = 1; -var STARTING = 2; -var STARTED = 3; -var RUNNING = 4; -var ENDING = 5; -var ENDED = 6; - -function schedule(node, name, id, index, group, timing) { - var schedules = node.__transition; - if (!schedules) node.__transition = {}; - else if (id in schedules) return; - create(node, id, { - name: name, - index: index, // For context during callback. - group: group, // For context during callback. - on: emptyOn, - tween: emptyTween, - time: timing.time, - delay: timing.delay, - duration: timing.duration, - ease: timing.ease, - timer: null, - state: CREATED - }); -} - -function init(node, id) { - var schedule = get(node, id); - if (schedule.state > CREATED) throw new Error("too late; already scheduled"); - return schedule; -} - -function set(node, id) { - var schedule = get(node, id); - if (schedule.state > STARTED) throw new Error("too late; already running"); - return schedule; -} - -function get(node, id) { - var schedule = node.__transition; - if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found"); - return schedule; -} - -function create(node, id, self) { - var schedules = node.__transition, - tween; - - // Initialize the self timer when the transition is created. - // Note the actual delay is not known until the first callback! - schedules[id] = self; - self.timer = timer(schedule, 0, self.time); - - function schedule(elapsed) { - self.state = SCHEDULED; - self.timer.restart(start, self.delay, self.time); - - // If the elapsed delay is less than our first sleep, start immediately. - if (self.delay <= elapsed) start(elapsed - self.delay); - } - - function start(elapsed) { - var i, j, n, o; - - // If the state is not SCHEDULED, then we previously errored on start. - if (self.state !== SCHEDULED) return stop(); - - for (i in schedules) { - o = schedules[i]; - if (o.name !== self.name) continue; - - // While this element already has a starting transition during this frame, - // defer starting an interrupting transition until that transition has a - // chance to tick (and possibly end); see d3/d3-transition#54! - if (o.state === STARTED) return timeout(start); - - // Interrupt the active transition, if any. - if (o.state === RUNNING) { - o.state = ENDED; - o.timer.stop(); - o.on.call("interrupt", node, node.__data__, o.index, o.group); - delete schedules[i]; - } - - // Cancel any pre-empted transitions. - else if (+i < id) { - o.state = ENDED; - o.timer.stop(); - o.on.call("cancel", node, node.__data__, o.index, o.group); - delete schedules[i]; - } - } - - // Defer the first tick to end of the current frame; see d3/d3#1576. - // Note the transition may be canceled after start and before the first tick! - // Note this must be scheduled before the start event; see d3/d3-transition#16! - // Assuming this is successful, subsequent callbacks go straight to tick. - timeout(function() { - if (self.state === STARTED) { - self.state = RUNNING; - self.timer.restart(tick, self.delay, self.time); - tick(elapsed); - } - }); - - // Dispatch the start event. - // Note this must be done before the tween are initialized. - self.state = STARTING; - self.on.call("start", node, node.__data__, self.index, self.group); - if (self.state !== STARTING) return; // interrupted - self.state = STARTED; - - // Initialize the tween, deleting null tween. - tween = new Array(n = self.tween.length); - for (i = 0, j = -1; i < n; ++i) { - if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { - tween[++j] = o; - } - } - tween.length = j + 1; - } - - function tick(elapsed) { - var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), - i = -1, - n = tween.length; - - while (++i < n) { - tween[i].call(node, t); - } - - // Dispatch the end event. - if (self.state === ENDING) { - self.on.call("end", node, node.__data__, self.index, self.group); - stop(); - } - } - - function stop() { - self.state = ENDED; - self.timer.stop(); - delete schedules[id]; - for (var i in schedules) return; // eslint-disable-line no-unused-vars - delete node.__transition; - } -} - -function interrupt(node, name) { - var schedules = node.__transition, - schedule, - active, - empty = true, - i; - - if (!schedules) return; - - name = name == null ? null : name + ""; - - for (i in schedules) { - if ((schedule = schedules[i]).name !== name) { empty = false; continue; } - active = schedule.state > STARTING && schedule.state < ENDING; - schedule.state = ENDED; - schedule.timer.stop(); - schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); - delete schedules[i]; - } - - if (empty) delete node.__transition; -} - -function selection_interrupt(name) { - return this.each(function() { - interrupt(this, name); - }); -} - -function tweenRemove(id, name) { - var tween0, tween1; - return function() { - var schedule = set(this, id), - tween = schedule.tween; - - // If this node shared tween with the previous node, - // just assign the updated shared tween and we’re done! - // Otherwise, copy-on-write. - if (tween !== tween0) { - tween1 = tween0 = tween; - for (var i = 0, n = tween1.length; i < n; ++i) { - if (tween1[i].name === name) { - tween1 = tween1.slice(); - tween1.splice(i, 1); - break; - } - } - } - - schedule.tween = tween1; - }; -} - -function tweenFunction(id, name, value) { - var tween0, tween1; - if (typeof value !== "function") throw new Error; - return function() { - var schedule = set(this, id), - tween = schedule.tween; - - // If this node shared tween with the previous node, - // just assign the updated shared tween and we’re done! - // Otherwise, copy-on-write. - if (tween !== tween0) { - tween1 = (tween0 = tween).slice(); - for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { - if (tween1[i].name === name) { - tween1[i] = t; - break; - } - } - if (i === n) tween1.push(t); - } - - schedule.tween = tween1; - }; -} - -function transition_tween(name, value) { - var id = this._id; - - name += ""; - - if (arguments.length < 2) { - var tween = get(this.node(), id).tween; - for (var i = 0, n = tween.length, t; i < n; ++i) { - if ((t = tween[i]).name === name) { - return t.value; - } - } - return null; - } - - return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); -} - -function tweenValue(transition, name, value) { - var id = transition._id; - - transition.each(function() { - var schedule = set(this, id); - (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); - }); - - return function(node) { - return get(node, id).value[name]; - }; -} - -function interpolate$1(a, b) { - var c; - return (typeof b === "number" ? interpolateNumber - : b instanceof color ? interpolateRgb - : (c = color(b)) ? (b = c, interpolateRgb) - : interpolateString)(a, b); -} - -function attrRemove(name) { - return function() { - this.removeAttribute(name); - }; -} - -function attrRemoveNS(fullname) { - return function() { - this.removeAttributeNS(fullname.space, fullname.local); - }; -} - -function attrConstant(name, interpolate, value1) { - var string00, - string1 = value1 + "", - interpolate0; - return function() { - var string0 = this.getAttribute(name); - return string0 === string1 ? null - : string0 === string00 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, value1); - }; -} - -function attrConstantNS(fullname, interpolate, value1) { - var string00, - string1 = value1 + "", - interpolate0; - return function() { - var string0 = this.getAttributeNS(fullname.space, fullname.local); - return string0 === string1 ? null - : string0 === string00 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, value1); - }; -} - -function attrFunction(name, interpolate, value) { - var string00, - string10, - interpolate0; - return function() { - var string0, value1 = value(this), string1; - if (value1 == null) return void this.removeAttribute(name); - string0 = this.getAttribute(name); - string1 = value1 + ""; - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); - }; -} - -function attrFunctionNS(fullname, interpolate, value) { - var string00, - string10, - interpolate0; - return function() { - var string0, value1 = value(this), string1; - if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); - string0 = this.getAttributeNS(fullname.space, fullname.local); - string1 = value1 + ""; - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); - }; -} - -function transition_attr(name, value) { - var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate$1; - return this.attrTween(name, typeof value === "function" - ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) - : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) - : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); -} - -function attrInterpolate(name, i) { - return function(t) { - this.setAttribute(name, i.call(this, t)); - }; -} - -function attrInterpolateNS(fullname, i) { - return function(t) { - this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); - }; -} - -function attrTweenNS(fullname, value) { - var t0, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); - return t0; - } - tween._value = value; - return tween; -} - -function attrTween(name, value) { - var t0, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); - return t0; - } - tween._value = value; - return tween; -} - -function transition_attrTween(name, value) { - var key = "attr." + name; - if (arguments.length < 2) return (key = this.tween(key)) && key._value; - if (value == null) return this.tween(key, null); - if (typeof value !== "function") throw new Error; - var fullname = namespace(name); - return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); -} - -function delayFunction(id, value) { - return function() { - init(this, id).delay = +value.apply(this, arguments); - }; -} - -function delayConstant(id, value) { - return value = +value, function() { - init(this, id).delay = value; - }; -} - -function transition_delay(value) { - var id = this._id; - - return arguments.length - ? this.each((typeof value === "function" - ? delayFunction - : delayConstant)(id, value)) - : get(this.node(), id).delay; -} - -function durationFunction(id, value) { - return function() { - set(this, id).duration = +value.apply(this, arguments); - }; -} - -function durationConstant(id, value) { - return value = +value, function() { - set(this, id).duration = value; - }; -} - -function transition_duration(value) { - var id = this._id; - - return arguments.length - ? this.each((typeof value === "function" - ? durationFunction - : durationConstant)(id, value)) - : get(this.node(), id).duration; -} - -function easeConstant(id, value) { - if (typeof value !== "function") throw new Error; - return function() { - set(this, id).ease = value; - }; -} - -function transition_ease(value) { - var id = this._id; - - return arguments.length - ? this.each(easeConstant(id, value)) - : get(this.node(), id).ease; -} - -function easeVarying(id, value) { - return function() { - var v = value.apply(this, arguments); - if (typeof v !== "function") throw new Error; - set(this, id).ease = v; - }; -} - -function transition_easeVarying(value) { - if (typeof value !== "function") throw new Error; - return this.each(easeVarying(this._id, value)); -} - -function transition_filter(match) { - if (typeof match !== "function") match = matcher(match); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { - if ((node = group[i]) && match.call(node, node.__data__, i, group)) { - subgroup.push(node); - } - } - } - - return new Transition(subgroups, this._parents, this._name, this._id); -} - -function transition_merge(transition) { - if (transition._id !== this._id) throw new Error; - - for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { - for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { - if (node = group0[i] || group1[i]) { - merge[i] = node; - } - } - } - - for (; j < m0; ++j) { - merges[j] = groups0[j]; - } - - return new Transition(merges, this._parents, this._name, this._id); -} - -function start(name) { - return (name + "").trim().split(/^|\s+/).every(function(t) { - var i = t.indexOf("."); - if (i >= 0) t = t.slice(0, i); - return !t || t === "start"; - }); -} - -function onFunction(id, name, listener) { - var on0, on1, sit = start(name) ? init : set; - return function() { - var schedule = sit(this, id), - on = schedule.on; - - // If this node shared a dispatch with the previous node, - // just assign the updated shared dispatch and we’re done! - // Otherwise, copy-on-write. - if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); - - schedule.on = on1; - }; -} - -function transition_on(name, listener) { - var id = this._id; - - return arguments.length < 2 - ? get(this.node(), id).on.on(name) - : this.each(onFunction(id, name, listener)); -} - -function removeFunction(id) { - return function() { - var parent = this.parentNode; - for (var i in this.__transition) if (+i !== id) return; - if (parent) parent.removeChild(this); - }; -} - -function transition_remove() { - return this.on("end.remove", removeFunction(this._id)); -} - -function transition_select(select) { - var name = this._name, - id = this._id; - - if (typeof select !== "function") select = selector(select); - - for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { - if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { - if ("__data__" in node) subnode.__data__ = node.__data__; - subgroup[i] = subnode; - schedule(subgroup[i], name, id, i, subgroup, get(node, id)); - } - } - } - - return new Transition(subgroups, this._parents, name, id); -} - -function transition_selectAll(select) { - var name = this._name, - id = this._id; - - if (typeof select !== "function") select = selectorAll(select); - - for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) { - if (child = children[k]) { - schedule(child, name, id, k, children, inherit); - } - } - subgroups.push(children); - parents.push(node); - } - } - } - - return new Transition(subgroups, parents, name, id); -} - -var Selection = selection.prototype.constructor; - -function transition_selection() { - return new Selection(this._groups, this._parents); -} - -function styleNull(name, interpolate) { - var string00, - string10, - interpolate0; - return function() { - var string0 = styleValue(this, name), - string1 = (this.style.removeProperty(name), styleValue(this, name)); - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, string10 = string1); - }; -} - -function styleRemove(name) { - return function() { - this.style.removeProperty(name); - }; -} - -function styleConstant(name, interpolate, value1) { - var string00, - string1 = value1 + "", - interpolate0; - return function() { - var string0 = styleValue(this, name); - return string0 === string1 ? null - : string0 === string00 ? interpolate0 - : interpolate0 = interpolate(string00 = string0, value1); - }; -} - -function styleFunction(name, interpolate, value) { - var string00, - string10, - interpolate0; - return function() { - var string0 = styleValue(this, name), - value1 = value(this), - string1 = value1 + ""; - if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); - return string0 === string1 ? null - : string0 === string00 && string1 === string10 ? interpolate0 - : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); - }; -} - -function styleMaybeRemove(id, name) { - var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; - return function() { - var schedule = set(this, id), - on = schedule.on, - listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; - - // If this node shared a dispatch with the previous node, - // just assign the updated shared dispatch and we’re done! - // Otherwise, copy-on-write. - if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); - - schedule.on = on1; - }; -} - -function transition_style(name, value, priority) { - var i = (name += "") === "transform" ? interpolateTransformCss : interpolate$1; - return value == null ? this - .styleTween(name, styleNull(name, i)) - .on("end.style." + name, styleRemove(name)) - : typeof value === "function" ? this - .styleTween(name, styleFunction(name, i, tweenValue(this, "style." + name, value))) - .each(styleMaybeRemove(this._id, name)) - : this - .styleTween(name, styleConstant(name, i, value), priority) - .on("end.style." + name, null); -} - -function styleInterpolate(name, i, priority) { - return function(t) { - this.style.setProperty(name, i.call(this, t), priority); - }; -} - -function styleTween(name, value, priority) { - var t, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); - return t; - } - tween._value = value; - return tween; -} - -function transition_styleTween(name, value, priority) { - var key = "style." + (name += ""); - if (arguments.length < 2) return (key = this.tween(key)) && key._value; - if (value == null) return this.tween(key, null); - if (typeof value !== "function") throw new Error; - return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); -} - -function textConstant(value) { - return function() { - this.textContent = value; - }; -} - -function textFunction(value) { - return function() { - var value1 = value(this); - this.textContent = value1 == null ? "" : value1; - }; -} - -function transition_text(value) { - return this.tween("text", typeof value === "function" - ? textFunction(tweenValue(this, "text", value)) - : textConstant(value == null ? "" : value + "")); -} - -function textInterpolate(i) { - return function(t) { - this.textContent = i.call(this, t); - }; -} - -function textTween(value) { - var t0, i0; - function tween() { - var i = value.apply(this, arguments); - if (i !== i0) t0 = (i0 = i) && textInterpolate(i); - return t0; - } - tween._value = value; - return tween; -} - -function transition_textTween(value) { - var key = "text"; - if (arguments.length < 1) return (key = this.tween(key)) && key._value; - if (value == null) return this.tween(key, null); - if (typeof value !== "function") throw new Error; - return this.tween(key, textTween(value)); -} - -function transition_transition() { - var name = this._name, - id0 = this._id, - id1 = newId(); - - for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - var inherit = get(node, id0); - schedule(node, name, id1, i, group, { - time: inherit.time + inherit.delay + inherit.duration, - delay: 0, - duration: inherit.duration, - ease: inherit.ease - }); - } - } - } - - return new Transition(groups, this._parents, name, id1); -} - -function transition_end() { - var on0, on1, that = this, id = that._id, size = that.size(); - return new Promise(function(resolve, reject) { - var cancel = {value: reject}, - end = {value: function() { if (--size === 0) resolve(); }}; - - that.each(function() { - var schedule = set(this, id), - on = schedule.on; - - // If this node shared a dispatch with the previous node, - // just assign the updated shared dispatch and we’re done! - // Otherwise, copy-on-write. - if (on !== on0) { - on1 = (on0 = on).copy(); - on1._.cancel.push(cancel); - on1._.interrupt.push(cancel); - on1._.end.push(end); - } - - schedule.on = on1; - }); - - // The selection was empty, resolve end immediately - if (size === 0) resolve(); - }); -} - -var id = 0; - -function Transition(groups, parents, name, id) { - this._groups = groups; - this._parents = parents; - this._name = name; - this._id = id; -} - -function transition(name) { - return selection().transition(name); -} - -function newId() { - return ++id; -} - -var selection_prototype = selection.prototype; - -Transition.prototype = transition.prototype = { - constructor: Transition, - select: transition_select, - selectAll: transition_selectAll, - filter: transition_filter, - merge: transition_merge, - selection: transition_selection, - transition: transition_transition, - call: selection_prototype.call, - nodes: selection_prototype.nodes, - node: selection_prototype.node, - size: selection_prototype.size, - empty: selection_prototype.empty, - each: selection_prototype.each, - on: transition_on, - attr: transition_attr, - attrTween: transition_attrTween, - style: transition_style, - styleTween: transition_styleTween, - text: transition_text, - textTween: transition_textTween, - remove: transition_remove, - tween: transition_tween, - delay: transition_delay, - duration: transition_duration, - ease: transition_ease, - easeVarying: transition_easeVarying, - end: transition_end, - [Symbol.iterator]: selection_prototype[Symbol.iterator] -}; - -const linear$1 = t => +t; - -function quadIn(t) { - return t * t; -} - -function quadOut(t) { - return t * (2 - t); -} - -function quadInOut(t) { - return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2; -} - -function cubicIn(t) { - return t * t * t; -} - -function cubicOut(t) { - return --t * t * t + 1; -} - -function cubicInOut(t) { - return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; -} - -var exponent$1 = 3; - -var polyIn = (function custom(e) { - e = +e; - - function polyIn(t) { - return Math.pow(t, e); - } - - polyIn.exponent = custom; - - return polyIn; -})(exponent$1); - -var polyOut = (function custom(e) { - e = +e; - - function polyOut(t) { - return 1 - Math.pow(1 - t, e); - } - - polyOut.exponent = custom; - - return polyOut; -})(exponent$1); - -var polyInOut = (function custom(e) { - e = +e; - - function polyInOut(t) { - return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2; - } - - polyInOut.exponent = custom; - - return polyInOut; -})(exponent$1); - -var pi$4 = Math.PI, - halfPi$3 = pi$4 / 2; - -function sinIn(t) { - return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi$3); -} - -function sinOut(t) { - return Math.sin(t * halfPi$3); -} - -function sinInOut(t) { - return (1 - Math.cos(pi$4 * t)) / 2; -} - -// tpmt is two power minus ten times t scaled to [0,1] -function tpmt(x) { - return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494; -} - -function expIn(t) { - return tpmt(1 - +t); -} - -function expOut(t) { - return 1 - tpmt(t); -} - -function expInOut(t) { - return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2; -} - -function circleIn(t) { - return 1 - Math.sqrt(1 - t * t); -} - -function circleOut(t) { - return Math.sqrt(1 - --t * t); -} - -function circleInOut(t) { - return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2; -} - -var b1 = 4 / 11, - b2 = 6 / 11, - b3 = 8 / 11, - b4 = 3 / 4, - b5 = 9 / 11, - b6 = 10 / 11, - b7 = 15 / 16, - b8 = 21 / 22, - b9 = 63 / 64, - b0 = 1 / b1 / b1; - -function bounceIn(t) { - return 1 - bounceOut(1 - t); -} - -function bounceOut(t) { - return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9; -} - -function bounceInOut(t) { - return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2; -} - -var overshoot = 1.70158; - -var backIn = (function custom(s) { - s = +s; - - function backIn(t) { - return (t = +t) * t * (s * (t - 1) + t); - } - - backIn.overshoot = custom; - - return backIn; -})(overshoot); - -var backOut = (function custom(s) { - s = +s; - - function backOut(t) { - return --t * t * ((t + 1) * s + t) + 1; - } - - backOut.overshoot = custom; - - return backOut; -})(overshoot); - -var backInOut = (function custom(s) { - s = +s; - - function backInOut(t) { - return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2; - } - - backInOut.overshoot = custom; - - return backInOut; -})(overshoot); - -var tau$5 = 2 * Math.PI, - amplitude = 1, - period = 0.3; - -var elasticIn = (function custom(a, p) { - var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); - - function elasticIn(t) { - return a * tpmt(-(--t)) * Math.sin((s - t) / p); - } - - elasticIn.amplitude = function(a) { return custom(a, p * tau$5); }; - elasticIn.period = function(p) { return custom(a, p); }; - - return elasticIn; -})(amplitude, period); - -var elasticOut = (function custom(a, p) { - var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); - - function elasticOut(t) { - return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p); - } - - elasticOut.amplitude = function(a) { return custom(a, p * tau$5); }; - elasticOut.period = function(p) { return custom(a, p); }; - - return elasticOut; -})(amplitude, period); - -var elasticInOut = (function custom(a, p) { - var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau$5); - - function elasticInOut(t) { - return ((t = t * 2 - 1) < 0 - ? a * tpmt(-t) * Math.sin((s - t) / p) - : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2; - } - - elasticInOut.amplitude = function(a) { return custom(a, p * tau$5); }; - elasticInOut.period = function(p) { return custom(a, p); }; - - return elasticInOut; -})(amplitude, period); - -var defaultTiming = { - time: null, // Set on use. - delay: 0, - duration: 250, - ease: cubicInOut -}; - -function inherit(node, id) { - var timing; - while (!(timing = node.__transition) || !(timing = timing[id])) { - if (!(node = node.parentNode)) { - throw new Error(`transition ${id} not found`); - } - } - return timing; -} - -function selection_transition(name) { - var id, - timing; - - if (name instanceof Transition) { - id = name._id, name = name._name; - } else { - id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; - } - - for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { - for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { - if (node = group[i]) { - schedule(node, name, id, i, group, timing || inherit(node, id)); - } - } - } - - return new Transition(groups, this._parents, name, id); -} - -selection.prototype.interrupt = selection_interrupt; -selection.prototype.transition = selection_transition; - -var root = [null]; - -function active(node, name) { - var schedules = node.__transition, - schedule, - i; - - if (schedules) { - name = name == null ? null : name + ""; - for (i in schedules) { - if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) { - return new Transition([[node]], root, name, +i); - } - } - } - - return null; -} - -var constant$7 = x => () => x; - -function BrushEvent(type, { - sourceEvent, - target, - selection, - mode, - dispatch -}) { - Object.defineProperties(this, { - type: {value: type, enumerable: true, configurable: true}, - sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, - target: {value: target, enumerable: true, configurable: true}, - selection: {value: selection, enumerable: true, configurable: true}, - mode: {value: mode, enumerable: true, configurable: true}, - _: {value: dispatch} - }); -} - -function nopropagation$1(event) { - event.stopImmediatePropagation(); -} - -function noevent$1(event) { - event.preventDefault(); - event.stopImmediatePropagation(); -} - -var MODE_DRAG = {name: "drag"}, - MODE_SPACE = {name: "space"}, - MODE_HANDLE = {name: "handle"}, - MODE_CENTER = {name: "center"}; - -const {abs: abs$3, max: max$2, min: min$1} = Math; - -function number1(e) { - return [+e[0], +e[1]]; -} - -function number2(e) { - return [number1(e[0]), number1(e[1])]; -} - -var X = { - name: "x", - handles: ["w", "e"].map(type), - input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; }, - output: function(xy) { return xy && [xy[0][0], xy[1][0]]; } -}; - -var Y = { - name: "y", - handles: ["n", "s"].map(type), - input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; }, - output: function(xy) { return xy && [xy[0][1], xy[1][1]]; } -}; - -var XY = { - name: "xy", - handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), - input: function(xy) { return xy == null ? null : number2(xy); }, - output: function(xy) { return xy; } -}; - -var cursors = { - overlay: "crosshair", - selection: "move", - n: "ns-resize", - e: "ew-resize", - s: "ns-resize", - w: "ew-resize", - nw: "nwse-resize", - ne: "nesw-resize", - se: "nwse-resize", - sw: "nesw-resize" -}; - -var flipX = { - e: "w", - w: "e", - nw: "ne", - ne: "nw", - se: "sw", - sw: "se" -}; - -var flipY = { - n: "s", - s: "n", - nw: "sw", - ne: "se", - se: "ne", - sw: "nw" -}; - -var signsX = { - overlay: +1, - selection: +1, - n: null, - e: +1, - s: null, - w: -1, - nw: -1, - ne: +1, - se: +1, - sw: -1 -}; - -var signsY = { - overlay: +1, - selection: +1, - n: -1, - e: null, - s: +1, - w: null, - nw: -1, - ne: -1, - se: +1, - sw: +1 -}; - -function type(t) { - return {type: t}; -} - -// Ignore right-click, since that should open the context menu. -function defaultFilter$1(event) { - return !event.ctrlKey && !event.button; -} - -function defaultExtent$1() { - var svg = this.ownerSVGElement || this; - if (svg.hasAttribute("viewBox")) { - svg = svg.viewBox.baseVal; - return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; - } - return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; -} - -function defaultTouchable$1() { - return navigator.maxTouchPoints || ("ontouchstart" in this); -} - -// Like d3.local, but with the name “__brush” rather than auto-generated. -function local(node) { - while (!node.__brush) if (!(node = node.parentNode)) return; - return node.__brush; -} - -function empty(extent) { - return extent[0][0] === extent[1][0] - || extent[0][1] === extent[1][1]; -} - -function brushSelection(node) { - var state = node.__brush; - return state ? state.dim.output(state.selection) : null; -} - -function brushX() { - return brush$1(X); -} - -function brushY() { - return brush$1(Y); -} - -function brush() { - return brush$1(XY); -} - -function brush$1(dim) { - var extent = defaultExtent$1, - filter = defaultFilter$1, - touchable = defaultTouchable$1, - keys = true, - listeners = dispatch("start", "brush", "end"), - handleSize = 6, - touchending; - - function brush(group) { - var overlay = group - .property("__brush", initialize) - .selectAll(".overlay") - .data([type("overlay")]); - - overlay.enter().append("rect") - .attr("class", "overlay") - .attr("pointer-events", "all") - .attr("cursor", cursors.overlay) - .merge(overlay) - .each(function() { - var extent = local(this).extent; - select(this) - .attr("x", extent[0][0]) - .attr("y", extent[0][1]) - .attr("width", extent[1][0] - extent[0][0]) - .attr("height", extent[1][1] - extent[0][1]); - }); - - group.selectAll(".selection") - .data([type("selection")]) - .enter().append("rect") - .attr("class", "selection") - .attr("cursor", cursors.selection) - .attr("fill", "#777") - .attr("fill-opacity", 0.3) - .attr("stroke", "#fff") - .attr("shape-rendering", "crispEdges"); - - var handle = group.selectAll(".handle") - .data(dim.handles, function(d) { return d.type; }); - - handle.exit().remove(); - - handle.enter().append("rect") - .attr("class", function(d) { return "handle handle--" + d.type; }) - .attr("cursor", function(d) { return cursors[d.type]; }); - - group - .each(redraw) - .attr("fill", "none") - .attr("pointer-events", "all") - .on("mousedown.brush", started) - .filter(touchable) - .on("touchstart.brush", started) - .on("touchmove.brush", touchmoved) - .on("touchend.brush touchcancel.brush", touchended) - .style("touch-action", "none") - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - brush.move = function(group, selection) { - if (group.tween) { - group - .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); }) - .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); }) - .tween("brush", function() { - var that = this, - state = that.__brush, - emit = emitter(that, arguments), - selection0 = state.selection, - selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), - i = interpolate$2(selection0, selection1); - - function tween(t) { - state.selection = t === 1 && selection1 === null ? null : i(t); - redraw.call(that); - emit.brush(); - } - - return selection0 !== null && selection1 !== null ? tween : tween(1); - }); - } else { - group - .each(function() { - var that = this, - args = arguments, - state = that.__brush, - selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), - emit = emitter(that, args).beforestart(); - - interrupt(that); - state.selection = selection1 === null ? null : selection1; - redraw.call(that); - emit.start().brush().end(); - }); - } - }; - - brush.clear = function(group) { - brush.move(group, null); - }; - - function redraw() { - var group = select(this), - selection = local(this).selection; - - if (selection) { - group.selectAll(".selection") - .style("display", null) - .attr("x", selection[0][0]) - .attr("y", selection[0][1]) - .attr("width", selection[1][0] - selection[0][0]) - .attr("height", selection[1][1] - selection[0][1]); - - group.selectAll(".handle") - .style("display", null) - .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; }) - .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; }) - .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; }) - .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; }); - } - - else { - group.selectAll(".selection,.handle") - .style("display", "none") - .attr("x", null) - .attr("y", null) - .attr("width", null) - .attr("height", null); - } - } - - function emitter(that, args, clean) { - var emit = that.__brush.emitter; - return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); - } - - function Emitter(that, args, clean) { - this.that = that; - this.args = args; - this.state = that.__brush; - this.active = 0; - this.clean = clean; - } - - Emitter.prototype = { - beforestart: function() { - if (++this.active === 1) this.state.emitter = this, this.starting = true; - return this; - }, - start: function(event, mode) { - if (this.starting) this.starting = false, this.emit("start", event, mode); - else this.emit("brush", event); - return this; - }, - brush: function(event, mode) { - this.emit("brush", event, mode); - return this; - }, - end: function(event, mode) { - if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode); - return this; - }, - emit: function(type, event, mode) { - var d = select(this.that).datum(); - listeners.call( - type, - this.that, - new BrushEvent(type, { - sourceEvent: event, - target: brush, - selection: dim.output(this.state.selection), - mode, - dispatch: listeners - }), - d - ); - } - }; - - function started(event) { - if (touchending && !event.touches) return; - if (!filter.apply(this, arguments)) return; - - var that = this, - type = event.target.__data__.type, - mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE), - signX = dim === Y ? null : signsX[type], - signY = dim === X ? null : signsY[type], - state = local(that), - extent = state.extent, - selection = state.selection, - W = extent[0][0], w0, w1, - N = extent[0][1], n0, n1, - E = extent[1][0], e0, e1, - S = extent[1][1], s0, s1, - dx = 0, - dy = 0, - moving, - shifting = signX && signY && keys && event.shiftKey, - lockX, - lockY, - points = Array.from(event.touches || [event], t => { - const i = t.identifier; - t = pointer(t, that); - t.point0 = t.slice(); - t.identifier = i; - return t; - }); - - if (type === "overlay") { - if (selection) moving = true; - const pts = [points[0], points[1] || points[0]]; - state.selection = selection = [[ - w0 = dim === Y ? W : min$1(pts[0][0], pts[1][0]), - n0 = dim === X ? N : min$1(pts[0][1], pts[1][1]) - ], [ - e0 = dim === Y ? E : max$2(pts[0][0], pts[1][0]), - s0 = dim === X ? S : max$2(pts[0][1], pts[1][1]) - ]]; - if (points.length > 1) move(); - } else { - w0 = selection[0][0]; - n0 = selection[0][1]; - e0 = selection[1][0]; - s0 = selection[1][1]; - } - - w1 = w0; - n1 = n0; - e1 = e0; - s1 = s0; - - var group = select(that) - .attr("pointer-events", "none"); - - var overlay = group.selectAll(".overlay") - .attr("cursor", cursors[type]); - - interrupt(that); - var emit = emitter(that, arguments, true).beforestart(); - - if (event.touches) { - emit.moved = moved; - emit.ended = ended; - } else { - var view = select(event.view) - .on("mousemove.brush", moved, true) - .on("mouseup.brush", ended, true); - if (keys) view - .on("keydown.brush", keydowned, true) - .on("keyup.brush", keyupped, true); - - dragDisable(event.view); - } - - redraw.call(that); - emit.start(event, mode.name); - - function moved(event) { - for (const p of event.changedTouches || [event]) { - for (const d of points) - if (d.identifier === p.identifier) d.cur = pointer(p, that); - } - if (shifting && !lockX && !lockY && points.length === 1) { - const point = points[0]; - if (abs$3(point.cur[0] - point[0]) > abs$3(point.cur[1] - point[1])) - lockY = true; - else - lockX = true; - } - for (const point of points) - if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1]; - moving = true; - noevent$1(event); - move(event); - } - - function move(event) { - const point = points[0], point0 = point.point0; - var t; - - dx = point[0] - point0[0]; - dy = point[1] - point0[1]; - - switch (mode) { - case MODE_SPACE: - case MODE_DRAG: { - if (signX) dx = max$2(W - w0, min$1(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; - if (signY) dy = max$2(N - n0, min$1(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; - break; - } - case MODE_HANDLE: { - if (points[1]) { - if (signX) w1 = max$2(W, min$1(E, points[0][0])), e1 = max$2(W, min$1(E, points[1][0])), signX = 1; - if (signY) n1 = max$2(N, min$1(S, points[0][1])), s1 = max$2(N, min$1(S, points[1][1])), signY = 1; - } else { - if (signX < 0) dx = max$2(W - w0, min$1(E - w0, dx)), w1 = w0 + dx, e1 = e0; - else if (signX > 0) dx = max$2(W - e0, min$1(E - e0, dx)), w1 = w0, e1 = e0 + dx; - if (signY < 0) dy = max$2(N - n0, min$1(S - n0, dy)), n1 = n0 + dy, s1 = s0; - else if (signY > 0) dy = max$2(N - s0, min$1(S - s0, dy)), n1 = n0, s1 = s0 + dy; - } - break; - } - case MODE_CENTER: { - if (signX) w1 = max$2(W, min$1(E, w0 - dx * signX)), e1 = max$2(W, min$1(E, e0 + dx * signX)); - if (signY) n1 = max$2(N, min$1(S, n0 - dy * signY)), s1 = max$2(N, min$1(S, s0 + dy * signY)); - break; - } - } - - if (e1 < w1) { - signX *= -1; - t = w0, w0 = e0, e0 = t; - t = w1, w1 = e1, e1 = t; - if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]); - } - - if (s1 < n1) { - signY *= -1; - t = n0, n0 = s0, s0 = t; - t = n1, n1 = s1, s1 = t; - if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]); - } - - if (state.selection) selection = state.selection; // May be set by brush.move! - if (lockX) w1 = selection[0][0], e1 = selection[1][0]; - if (lockY) n1 = selection[0][1], s1 = selection[1][1]; - - if (selection[0][0] !== w1 - || selection[0][1] !== n1 - || selection[1][0] !== e1 - || selection[1][1] !== s1) { - state.selection = [[w1, n1], [e1, s1]]; - redraw.call(that); - emit.brush(event, mode.name); - } - } - - function ended(event) { - nopropagation$1(event); - if (event.touches) { - if (event.touches.length) return; - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! - } else { - yesdrag(event.view, moving); - view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); - } - group.attr("pointer-events", "all"); - overlay.attr("cursor", cursors.overlay); - if (state.selection) selection = state.selection; // May be set by brush.move (on start)! - if (empty(selection)) state.selection = null, redraw.call(that); - emit.end(event, mode.name); - } - - function keydowned(event) { - switch (event.keyCode) { - case 16: { // SHIFT - shifting = signX && signY; - break; - } - case 18: { // ALT - if (mode === MODE_HANDLE) { - if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; - if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; - mode = MODE_CENTER; - move(); - } - break; - } - case 32: { // SPACE; takes priority over ALT - if (mode === MODE_HANDLE || mode === MODE_CENTER) { - if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx; - if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy; - mode = MODE_SPACE; - overlay.attr("cursor", cursors.selection); - move(); - } - break; - } - default: return; - } - noevent$1(event); - } - - function keyupped(event) { - switch (event.keyCode) { - case 16: { // SHIFT - if (shifting) { - lockX = lockY = shifting = false; - move(); - } - break; - } - case 18: { // ALT - if (mode === MODE_CENTER) { - if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; - if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; - mode = MODE_HANDLE; - move(); - } - break; - } - case 32: { // SPACE - if (mode === MODE_SPACE) { - if (event.altKey) { - if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; - if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; - mode = MODE_CENTER; - } else { - if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; - if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; - mode = MODE_HANDLE; - } - overlay.attr("cursor", cursors[type]); - move(); - } - break; - } - default: return; - } - noevent$1(event); - } - } - - function touchmoved(event) { - emitter(this, arguments).moved(event); - } - - function touchended(event) { - emitter(this, arguments).ended(event); - } - - function initialize() { - var state = this.__brush || {selection: null}; - state.extent = number2(extent.apply(this, arguments)); - state.dim = dim; - return state; - } - - brush.extent = function(_) { - return arguments.length ? (extent = typeof _ === "function" ? _ : constant$7(number2(_)), brush) : extent; - }; - - brush.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant$7(!!_), brush) : filter; - }; - - brush.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant$7(!!_), brush) : touchable; - }; - - brush.handleSize = function(_) { - return arguments.length ? (handleSize = +_, brush) : handleSize; - }; - - brush.keyModifiers = function(_) { - return arguments.length ? (keys = !!_, brush) : keys; - }; - - brush.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? brush : value; - }; - - return brush; -} - -var abs$2 = Math.abs; -var cos$2 = Math.cos; -var sin$2 = Math.sin; -var pi$3 = Math.PI; -var halfPi$2 = pi$3 / 2; -var tau$4 = pi$3 * 2; -var max$1 = Math.max; -var epsilon$4 = 1e-12; - -function range$1(i, j) { - return Array.from({length: j - i}, (_, k) => i + k); -} - -function compareValue(compare) { - return function(a, b) { - return compare( - a.source.value + a.target.value, - b.source.value + b.target.value - ); - }; -} - -function chord() { - return chord$1(false, false); -} - -function chordTranspose() { - return chord$1(false, true); -} - -function chordDirected() { - return chord$1(true, false); -} - -function chord$1(directed, transpose) { - var padAngle = 0, - sortGroups = null, - sortSubgroups = null, - sortChords = null; - - function chord(matrix) { - var n = matrix.length, - groupSums = new Array(n), - groupIndex = range$1(0, n), - chords = new Array(n * n), - groups = new Array(n), - k = 0, dx; - - matrix = Float64Array.from({length: n * n}, transpose - ? (_, i) => matrix[i % n][i / n | 0] - : (_, i) => matrix[i / n | 0][i % n]); - - // Compute the scaling factor from value to angle in [0, 2pi]. - for (let i = 0; i < n; ++i) { - let x = 0; - for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i]; - k += groupSums[i] = x; - } - k = max$1(0, tau$4 - padAngle * n) / k; - dx = k ? padAngle : tau$4 / n; - - // Compute the angles for each group and constituent chord. - { - let x = 0; - if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b])); - for (const i of groupIndex) { - const x0 = x; - if (directed) { - const subgroupIndex = range$1(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]); - if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b])); - for (const j of subgroupIndex) { - if (j < 0) { - const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null}); - chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]}; - } else { - const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); - chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; - } - } - groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; - } else { - const subgroupIndex = range$1(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]); - if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b])); - for (const j of subgroupIndex) { - let chord; - if (i < j) { - chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null}); - chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; - } else { - chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null}); - chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]}; - if (i === j) chord.source = chord.target; - } - if (chord.source && chord.target && chord.source.value < chord.target.value) { - const source = chord.source; - chord.source = chord.target; - chord.target = source; - } - } - groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]}; - } - x += dx; - } - } - - // Remove empty chords. - chords = Object.values(chords); - chords.groups = groups; - return sortChords ? chords.sort(sortChords) : chords; - } - - chord.padAngle = function(_) { - return arguments.length ? (padAngle = max$1(0, _), chord) : padAngle; - }; - - chord.sortGroups = function(_) { - return arguments.length ? (sortGroups = _, chord) : sortGroups; - }; - - chord.sortSubgroups = function(_) { - return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups; - }; - - chord.sortChords = function(_) { - return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._; - }; - - return chord; -} - -const pi$2 = Math.PI, - tau$3 = 2 * pi$2, - epsilon$3 = 1e-6, - tauEpsilon = tau$3 - epsilon$3; - -function Path$1() { - this._x0 = this._y0 = // start of current subpath - this._x1 = this._y1 = null; // end of current subpath - this._ = ""; -} - -function path() { - return new Path$1; -} - -Path$1.prototype = path.prototype = { - constructor: Path$1, - moveTo: function(x, y) { - this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y); - }, - closePath: function() { - if (this._x1 !== null) { - this._x1 = this._x0, this._y1 = this._y0; - this._ += "Z"; - } - }, - lineTo: function(x, y) { - this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y); - }, - quadraticCurveTo: function(x1, y1, x, y) { - this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y); - }, - bezierCurveTo: function(x1, y1, x2, y2, x, y) { - this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y); - }, - arcTo: function(x1, y1, x2, y2, r) { - x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; - var x0 = this._x1, - y0 = this._y1, - x21 = x2 - x1, - y21 = y2 - y1, - x01 = x0 - x1, - y01 = y0 - y1, - l01_2 = x01 * x01 + y01 * y01; - - // Is the radius negative? Error. - if (r < 0) throw new Error("negative radius: " + r); - - // Is this path empty? Move to (x1,y1). - if (this._x1 === null) { - this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); - } - - // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. - else if (!(l01_2 > epsilon$3)); - - // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? - // Equivalently, is (x1,y1) coincident with (x2,y2)? - // Or, is the radius zero? Line to (x1,y1). - else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$3) || !r) { - this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); - } - - // Otherwise, draw an arc! - else { - var x20 = x2 - x0, - y20 = y2 - y0, - l21_2 = x21 * x21 + y21 * y21, - l20_2 = x20 * x20 + y20 * y20, - l21 = Math.sqrt(l21_2), - l01 = Math.sqrt(l01_2), - l = r * Math.tan((pi$2 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), - t01 = l / l01, - t21 = l / l21; - - // If the start tangent is not coincident with (x0,y0), line to. - if (Math.abs(t01 - 1) > epsilon$3) { - this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); - } - - this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); - } - }, - arc: function(x, y, r, a0, a1, ccw) { - x = +x, y = +y, r = +r, ccw = !!ccw; - var dx = r * Math.cos(a0), - dy = r * Math.sin(a0), - x0 = x + dx, - y0 = y + dy, - cw = 1 ^ ccw, - da = ccw ? a0 - a1 : a1 - a0; - - // Is the radius negative? Error. - if (r < 0) throw new Error("negative radius: " + r); - - // Is this path empty? Move to (x0,y0). - if (this._x1 === null) { - this._ += "M" + x0 + "," + y0; - } - - // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). - else if (Math.abs(this._x1 - x0) > epsilon$3 || Math.abs(this._y1 - y0) > epsilon$3) { - this._ += "L" + x0 + "," + y0; - } - - // Is this arc empty? We’re done. - if (!r) return; - - // Does the angle go the wrong way? Flip the direction. - if (da < 0) da = da % tau$3 + tau$3; - - // Is this a complete circle? Draw two arcs to complete the circle. - if (da > tauEpsilon) { - this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); - } - - // Is this arc non-empty? Draw an arc! - else if (da > epsilon$3) { - this._ += "A" + r + "," + r + ",0," + (+(da >= pi$2)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); - } - }, - rect: function(x, y, w, h) { - this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; - }, - toString: function() { - return this._; - } -}; - -var slice$2 = Array.prototype.slice; - -function constant$6(x) { - return function() { - return x; - }; -} - -function defaultSource$1(d) { - return d.source; -} - -function defaultTarget(d) { - return d.target; -} - -function defaultRadius$1(d) { - return d.radius; -} - -function defaultStartAngle(d) { - return d.startAngle; -} - -function defaultEndAngle(d) { - return d.endAngle; -} - -function defaultPadAngle() { - return 0; -} - -function defaultArrowheadRadius() { - return 10; -} - -function ribbon(headRadius) { - var source = defaultSource$1, - target = defaultTarget, - sourceRadius = defaultRadius$1, - targetRadius = defaultRadius$1, - startAngle = defaultStartAngle, - endAngle = defaultEndAngle, - padAngle = defaultPadAngle, - context = null; - - function ribbon() { - var buffer, - s = source.apply(this, arguments), - t = target.apply(this, arguments), - ap = padAngle.apply(this, arguments) / 2, - argv = slice$2.call(arguments), - sr = +sourceRadius.apply(this, (argv[0] = s, argv)), - sa0 = startAngle.apply(this, argv) - halfPi$2, - sa1 = endAngle.apply(this, argv) - halfPi$2, - tr = +targetRadius.apply(this, (argv[0] = t, argv)), - ta0 = startAngle.apply(this, argv) - halfPi$2, - ta1 = endAngle.apply(this, argv) - halfPi$2; - - if (!context) context = buffer = path(); - - if (ap > epsilon$4) { - if (abs$2(sa1 - sa0) > ap * 2 + epsilon$4) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap); - else sa0 = sa1 = (sa0 + sa1) / 2; - if (abs$2(ta1 - ta0) > ap * 2 + epsilon$4) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap); - else ta0 = ta1 = (ta0 + ta1) / 2; - } - - context.moveTo(sr * cos$2(sa0), sr * sin$2(sa0)); - context.arc(0, 0, sr, sa0, sa1); - if (sa0 !== ta0 || sa1 !== ta1) { - if (headRadius) { - var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2; - context.quadraticCurveTo(0, 0, tr2 * cos$2(ta0), tr2 * sin$2(ta0)); - context.lineTo(tr * cos$2(ta2), tr * sin$2(ta2)); - context.lineTo(tr2 * cos$2(ta1), tr2 * sin$2(ta1)); - } else { - context.quadraticCurveTo(0, 0, tr * cos$2(ta0), tr * sin$2(ta0)); - context.arc(0, 0, tr, ta0, ta1); - } - } - context.quadraticCurveTo(0, 0, sr * cos$2(sa0), sr * sin$2(sa0)); - context.closePath(); - - if (buffer) return context = null, buffer + "" || null; - } - - if (headRadius) ribbon.headRadius = function(_) { - return arguments.length ? (headRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : headRadius; - }; - - ribbon.radius = function(_) { - return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; - }; - - ribbon.sourceRadius = function(_) { - return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : sourceRadius; - }; - - ribbon.targetRadius = function(_) { - return arguments.length ? (targetRadius = typeof _ === "function" ? _ : constant$6(+_), ribbon) : targetRadius; - }; - - ribbon.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : startAngle; - }; - - ribbon.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : endAngle; - }; - - ribbon.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$6(+_), ribbon) : padAngle; - }; - - ribbon.source = function(_) { - return arguments.length ? (source = _, ribbon) : source; - }; - - ribbon.target = function(_) { - return arguments.length ? (target = _, ribbon) : target; - }; - - ribbon.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), ribbon) : context; - }; - - return ribbon; -} - -function ribbon$1() { - return ribbon(); -} - -function ribbonArrow() { - return ribbon(defaultArrowheadRadius); -} - -var array$2 = Array.prototype; - -var slice$1 = array$2.slice; - -function ascending$1(a, b) { - return a - b; -} - -function area$3(ring) { - var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1]; - while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1]; - return area; -} - -var constant$5 = x => () => x; - -function contains$2(ring, hole) { - var i = -1, n = hole.length, c; - while (++i < n) if (c = ringContains(ring, hole[i])) return c; - return 0; -} - -function ringContains(ring, point) { - var x = point[0], y = point[1], contains = -1; - for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) { - var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1]; - if (segmentContains(pi, pj, point)) return 0; - if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains; - } - return contains; -} - -function segmentContains(a, b, c) { - var i; return collinear$1(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]); -} - -function collinear$1(a, b, c) { - return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]); -} - -function within(p, q, r) { - return p <= q && q <= r || r <= q && q <= p; -} - -function noop$2() {} - -var cases = [ - [], - [[[1.0, 1.5], [0.5, 1.0]]], - [[[1.5, 1.0], [1.0, 1.5]]], - [[[1.5, 1.0], [0.5, 1.0]]], - [[[1.0, 0.5], [1.5, 1.0]]], - [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], - [[[1.0, 0.5], [1.0, 1.5]]], - [[[1.0, 0.5], [0.5, 1.0]]], - [[[0.5, 1.0], [1.0, 0.5]]], - [[[1.0, 1.5], [1.0, 0.5]]], - [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], - [[[1.5, 1.0], [1.0, 0.5]]], - [[[0.5, 1.0], [1.5, 1.0]]], - [[[1.0, 1.5], [1.5, 1.0]]], - [[[0.5, 1.0], [1.0, 1.5]]], - [] -]; - -function contours() { - var dx = 1, - dy = 1, - threshold = thresholdSturges, - smooth = smoothLinear; - - function contours(values) { - var tz = threshold(values); - - // Convert number of thresholds into uniform thresholds. - if (!Array.isArray(tz)) { - var domain = extent$1(values), start = domain[0], stop = domain[1]; - tz = tickStep(start, stop, tz); - tz = sequence(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz); - } else { - tz = tz.slice().sort(ascending$1); - } - - return tz.map(function(value) { - return contour(values, value); - }); - } - - // Accumulate, smooth contour rings, assign holes to exterior rings. - // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js - function contour(values, value) { - var polygons = [], - holes = []; - - isorings(values, value, function(ring) { - smooth(ring, values, value); - if (area$3(ring) > 0) polygons.push([ring]); - else holes.push(ring); - }); - - holes.forEach(function(hole) { - for (var i = 0, n = polygons.length, polygon; i < n; ++i) { - if (contains$2((polygon = polygons[i])[0], hole) !== -1) { - polygon.push(hole); - return; - } - } - }); - - return { - type: "MultiPolygon", - value: value, - coordinates: polygons - }; - } - - // Marching squares with isolines stitched into rings. - // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js - function isorings(values, value, callback) { - var fragmentByStart = new Array, - fragmentByEnd = new Array, - x, y, t0, t1, t2, t3; - - // Special case for the first row (y = -1, t2 = t3 = 0). - x = y = -1; - t1 = values[0] >= value; - cases[t1 << 1].forEach(stitch); - while (++x < dx - 1) { - t0 = t1, t1 = values[x + 1] >= value; - cases[t0 | t1 << 1].forEach(stitch); - } - cases[t1 << 0].forEach(stitch); - - // General case for the intermediate rows. - while (++y < dy - 1) { - x = -1; - t1 = values[y * dx + dx] >= value; - t2 = values[y * dx] >= value; - cases[t1 << 1 | t2 << 2].forEach(stitch); - while (++x < dx - 1) { - t0 = t1, t1 = values[y * dx + dx + x + 1] >= value; - t3 = t2, t2 = values[y * dx + x + 1] >= value; - cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch); - } - cases[t1 | t2 << 3].forEach(stitch); - } - - // Special case for the last row (y = dy - 1, t0 = t1 = 0). - x = -1; - t2 = values[y * dx] >= value; - cases[t2 << 2].forEach(stitch); - while (++x < dx - 1) { - t3 = t2, t2 = values[y * dx + x + 1] >= value; - cases[t2 << 2 | t3 << 3].forEach(stitch); - } - cases[t2 << 3].forEach(stitch); - - function stitch(line) { - var start = [line[0][0] + x, line[0][1] + y], - end = [line[1][0] + x, line[1][1] + y], - startIndex = index(start), - endIndex = index(end), - f, g; - if (f = fragmentByEnd[startIndex]) { - if (g = fragmentByStart[endIndex]) { - delete fragmentByEnd[f.end]; - delete fragmentByStart[g.start]; - if (f === g) { - f.ring.push(end); - callback(f.ring); - } else { - fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)}; - } - } else { - delete fragmentByEnd[f.end]; - f.ring.push(end); - fragmentByEnd[f.end = endIndex] = f; - } - } else if (f = fragmentByStart[endIndex]) { - if (g = fragmentByEnd[startIndex]) { - delete fragmentByStart[f.start]; - delete fragmentByEnd[g.end]; - if (f === g) { - f.ring.push(end); - callback(f.ring); - } else { - fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)}; - } - } else { - delete fragmentByStart[f.start]; - f.ring.unshift(start); - fragmentByStart[f.start = startIndex] = f; - } - } else { - fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]}; - } - } - } - - function index(point) { - return point[0] * 2 + point[1] * (dx + 1) * 4; - } - - function smoothLinear(ring, values, value) { - ring.forEach(function(point) { - var x = point[0], - y = point[1], - xt = x | 0, - yt = y | 0, - v0, - v1 = values[yt * dx + xt]; - if (x > 0 && x < dx && xt === x) { - v0 = values[yt * dx + xt - 1]; - point[0] = x + (value - v0) / (v1 - v0) - 0.5; - } - if (y > 0 && y < dy && yt === y) { - v0 = values[(yt - 1) * dx + xt]; - point[1] = y + (value - v0) / (v1 - v0) - 0.5; - } - }); - } - - contours.contour = contour; - - contours.size = function(_) { - if (!arguments.length) return [dx, dy]; - var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]); - if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); - return dx = _0, dy = _1, contours; - }; - - contours.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), contours) : threshold; - }; - - contours.smooth = function(_) { - return arguments.length ? (smooth = _ ? smoothLinear : noop$2, contours) : smooth === smoothLinear; - }; - - return contours; -} - -// TODO Optimize edge cases. -// TODO Optimize index calculation. -// TODO Optimize arguments. -function blurX(source, target, r) { - var n = source.width, - m = source.height, - w = (r << 1) + 1; - for (var j = 0; j < m; ++j) { - for (var i = 0, sr = 0; i < n + r; ++i) { - if (i < n) { - sr += source.data[i + j * n]; - } - if (i >= r) { - if (i >= w) { - sr -= source.data[i - w + j * n]; - } - target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w); - } - } - } -} - -// TODO Optimize edge cases. -// TODO Optimize index calculation. -// TODO Optimize arguments. -function blurY(source, target, r) { - var n = source.width, - m = source.height, - w = (r << 1) + 1; - for (var i = 0; i < n; ++i) { - for (var j = 0, sr = 0; j < m + r; ++j) { - if (j < m) { - sr += source.data[i + j * n]; - } - if (j >= r) { - if (j >= w) { - sr -= source.data[i + (j - w) * n]; - } - target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w); - } - } - } -} - -function defaultX$1(d) { - return d[0]; -} - -function defaultY$1(d) { - return d[1]; -} - -function defaultWeight() { - return 1; -} - -function density() { - var x = defaultX$1, - y = defaultY$1, - weight = defaultWeight, - dx = 960, - dy = 500, - r = 20, // blur radius - k = 2, // log2(grid cell size) - o = r * 3, // grid offset, to pad for blur - n = (dx + o * 2) >> k, // grid width - m = (dy + o * 2) >> k, // grid height - threshold = constant$5(20); - - function density(data) { - var values0 = new Float32Array(n * m), - values1 = new Float32Array(n * m); - - data.forEach(function(d, i, data) { - var xi = (+x(d, i, data) + o) >> k, - yi = (+y(d, i, data) + o) >> k, - wi = +weight(d, i, data); - if (xi >= 0 && xi < n && yi >= 0 && yi < m) { - values0[xi + yi * n] += wi; - } - }); - - // TODO Optimize. - blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); - blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); - blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); - blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); - blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k); - blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k); - - var tz = threshold(values0); - - // Convert number of thresholds into uniform thresholds. - if (!Array.isArray(tz)) { - var stop = max$3(values0); - tz = tickStep(0, stop, tz); - tz = sequence(0, Math.floor(stop / tz) * tz, tz); - tz.shift(); - } - - return contours() - .thresholds(tz) - .size([n, m]) - (values0) - .map(transform); - } - - function transform(geometry) { - geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel. - geometry.coordinates.forEach(transformPolygon); - return geometry; - } - - function transformPolygon(coordinates) { - coordinates.forEach(transformRing); - } - - function transformRing(coordinates) { - coordinates.forEach(transformPoint); - } - - // TODO Optimize. - function transformPoint(coordinates) { - coordinates[0] = coordinates[0] * Math.pow(2, k) - o; - coordinates[1] = coordinates[1] * Math.pow(2, k) - o; - } - - function resize() { - o = r * 3; - n = (dx + o * 2) >> k; - m = (dy + o * 2) >> k; - return density; - } - - density.x = function(_) { - return arguments.length ? (x = typeof _ === "function" ? _ : constant$5(+_), density) : x; - }; - - density.y = function(_) { - return arguments.length ? (y = typeof _ === "function" ? _ : constant$5(+_), density) : y; - }; - - density.weight = function(_) { - return arguments.length ? (weight = typeof _ === "function" ? _ : constant$5(+_), density) : weight; - }; - - density.size = function(_) { - if (!arguments.length) return [dx, dy]; - var _0 = +_[0], _1 = +_[1]; - if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size"); - return dx = _0, dy = _1, resize(); - }; - - density.cellSize = function(_) { - if (!arguments.length) return 1 << k; - if (!((_ = +_) >= 1)) throw new Error("invalid cell size"); - return k = Math.floor(Math.log(_) / Math.LN2), resize(); - }; - - density.thresholds = function(_) { - return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), density) : threshold; - }; - - density.bandwidth = function(_) { - if (!arguments.length) return Math.sqrt(r * (r + 1)); - if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth"); - return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize(); - }; - - return density; -} - -const EPSILON = Math.pow(2, -52); -const EDGE_STACK = new Uint32Array(512); - -class Delaunator { - - static from(points, getX = defaultGetX, getY = defaultGetY) { - const n = points.length; - const coords = new Float64Array(n * 2); - - for (let i = 0; i < n; i++) { - const p = points[i]; - coords[2 * i] = getX(p); - coords[2 * i + 1] = getY(p); - } - - return new Delaunator(coords); - } - - constructor(coords) { - const n = coords.length >> 1; - if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.'); - - this.coords = coords; - - // arrays that will store the triangulation graph - const maxTriangles = Math.max(2 * n - 5, 0); - this._triangles = new Uint32Array(maxTriangles * 3); - this._halfedges = new Int32Array(maxTriangles * 3); - - // temporary arrays for tracking the edges of the advancing convex hull - this._hashSize = Math.ceil(Math.sqrt(n)); - this._hullPrev = new Uint32Array(n); // edge to prev edge - this._hullNext = new Uint32Array(n); // edge to next edge - this._hullTri = new Uint32Array(n); // edge to adjacent triangle - this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash - - // temporary arrays for sorting points - this._ids = new Uint32Array(n); - this._dists = new Float64Array(n); - - this.update(); - } - - update() { - const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this; - const n = coords.length >> 1; - - // populate an array of point indices; calculate input data bbox - let minX = Infinity; - let minY = Infinity; - let maxX = -Infinity; - let maxY = -Infinity; - - for (let i = 0; i < n; i++) { - const x = coords[2 * i]; - const y = coords[2 * i + 1]; - if (x < minX) minX = x; - if (y < minY) minY = y; - if (x > maxX) maxX = x; - if (y > maxY) maxY = y; - this._ids[i] = i; - } - const cx = (minX + maxX) / 2; - const cy = (minY + maxY) / 2; - - let minDist = Infinity; - let i0, i1, i2; - - // pick a seed point close to the center - for (let i = 0; i < n; i++) { - const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]); - if (d < minDist) { - i0 = i; - minDist = d; - } - } - const i0x = coords[2 * i0]; - const i0y = coords[2 * i0 + 1]; - - minDist = Infinity; - - // find the point closest to the seed - for (let i = 0; i < n; i++) { - if (i === i0) continue; - const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]); - if (d < minDist && d > 0) { - i1 = i; - minDist = d; - } - } - let i1x = coords[2 * i1]; - let i1y = coords[2 * i1 + 1]; - - let minRadius = Infinity; - - // find the third point which forms the smallest circumcircle with the first two - for (let i = 0; i < n; i++) { - if (i === i0 || i === i1) continue; - const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]); - if (r < minRadius) { - i2 = i; - minRadius = r; - } - } - let i2x = coords[2 * i2]; - let i2y = coords[2 * i2 + 1]; - - if (minRadius === Infinity) { - // order collinear points by dx (or dy if all x are identical) - // and return the list as a hull - for (let i = 0; i < n; i++) { - this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]); - } - quicksort(this._ids, this._dists, 0, n - 1); - const hull = new Uint32Array(n); - let j = 0; - for (let i = 0, d0 = -Infinity; i < n; i++) { - const id = this._ids[i]; - if (this._dists[id] > d0) { - hull[j++] = id; - d0 = this._dists[id]; - } - } - this.hull = hull.subarray(0, j); - this.triangles = new Uint32Array(0); - this.halfedges = new Uint32Array(0); - return; - } - - // swap the order of the seed points for counter-clockwise orientation - if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { - const i = i1; - const x = i1x; - const y = i1y; - i1 = i2; - i1x = i2x; - i1y = i2y; - i2 = i; - i2x = x; - i2y = y; - } - - const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y); - this._cx = center.x; - this._cy = center.y; - - for (let i = 0; i < n; i++) { - this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y); - } - - // sort the points by distance from the seed triangle circumcenter - quicksort(this._ids, this._dists, 0, n - 1); - - // set up the seed triangle as the starting hull - this._hullStart = i0; - let hullSize = 3; - - hullNext[i0] = hullPrev[i2] = i1; - hullNext[i1] = hullPrev[i0] = i2; - hullNext[i2] = hullPrev[i1] = i0; - - hullTri[i0] = 0; - hullTri[i1] = 1; - hullTri[i2] = 2; - - hullHash.fill(-1); - hullHash[this._hashKey(i0x, i0y)] = i0; - hullHash[this._hashKey(i1x, i1y)] = i1; - hullHash[this._hashKey(i2x, i2y)] = i2; - - this.trianglesLen = 0; - this._addTriangle(i0, i1, i2, -1, -1, -1); - - for (let k = 0, xp, yp; k < this._ids.length; k++) { - const i = this._ids[k]; - const x = coords[2 * i]; - const y = coords[2 * i + 1]; - - // skip near-duplicate points - if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue; - xp = x; - yp = y; - - // skip seed triangle points - if (i === i0 || i === i1 || i === i2) continue; - - // find a visible edge on the convex hull using edge hash - let start = 0; - for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) { - start = hullHash[(key + j) % this._hashSize]; - if (start !== -1 && start !== hullNext[start]) break; - } - - start = hullPrev[start]; - let e = start, q; - while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) { - e = q; - if (e === start) { - e = -1; - break; - } - } - if (e === -1) continue; // likely a near-duplicate point; skip it - - // add the first triangle from the point - let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]); - - // recursively flip triangles from the point until they satisfy the Delaunay condition - hullTri[i] = this._legalize(t + 2); - hullTri[e] = t; // keep track of boundary triangles on the hull - hullSize++; - - // walk forward through the hull, adding more triangles and flipping recursively - let n = hullNext[e]; - while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) { - t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]); - hullTri[i] = this._legalize(t + 2); - hullNext[n] = n; // mark as removed - hullSize--; - n = q; - } - - // walk backward from the other side, adding more triangles and flipping - if (e === start) { - while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) { - t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]); - this._legalize(t + 2); - hullTri[q] = t; - hullNext[e] = e; // mark as removed - hullSize--; - e = q; - } - } - - // update the hull indices - this._hullStart = hullPrev[i] = e; - hullNext[e] = hullPrev[n] = i; - hullNext[i] = n; - - // save the two new edges in the hash table - hullHash[this._hashKey(x, y)] = i; - hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e; - } - - this.hull = new Uint32Array(hullSize); - for (let i = 0, e = this._hullStart; i < hullSize; i++) { - this.hull[i] = e; - e = hullNext[e]; - } - - // trim typed triangle mesh arrays - this.triangles = this._triangles.subarray(0, this.trianglesLen); - this.halfedges = this._halfedges.subarray(0, this.trianglesLen); - } - - _hashKey(x, y) { - return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize; - } - - _legalize(a) { - const {_triangles: triangles, _halfedges: halfedges, coords} = this; - - let i = 0; - let ar = 0; - - // recursion eliminated with a fixed-size stack - while (true) { - const b = halfedges[a]; - - /* if the pair of triangles doesn't satisfy the Delaunay condition - * (p1 is inside the circumcircle of [p0, pl, pr]), flip them, - * then do the same check/flip recursively for the new pair of triangles - * - * pl pl - * /||\ / \ - * al/ || \bl al/ \a - * / || \ / \ - * / a||b \ flip /___ar___\ - * p0\ || /p1 => p0\---bl---/p1 - * \ || / \ / - * ar\ || /br b\ /br - * \||/ \ / - * pr pr - */ - const a0 = a - a % 3; - ar = a0 + (a + 2) % 3; - - if (b === -1) { // convex hull edge - if (i === 0) break; - a = EDGE_STACK[--i]; - continue; - } - - const b0 = b - b % 3; - const al = a0 + (a + 1) % 3; - const bl = b0 + (b + 2) % 3; - - const p0 = triangles[ar]; - const pr = triangles[a]; - const pl = triangles[al]; - const p1 = triangles[bl]; - - const illegal = inCircle( - coords[2 * p0], coords[2 * p0 + 1], - coords[2 * pr], coords[2 * pr + 1], - coords[2 * pl], coords[2 * pl + 1], - coords[2 * p1], coords[2 * p1 + 1]); - - if (illegal) { - triangles[a] = p1; - triangles[b] = p0; - - const hbl = halfedges[bl]; - - // edge swapped on the other side of the hull (rare); fix the halfedge reference - if (hbl === -1) { - let e = this._hullStart; - do { - if (this._hullTri[e] === bl) { - this._hullTri[e] = a; - break; - } - e = this._hullPrev[e]; - } while (e !== this._hullStart); - } - this._link(a, hbl); - this._link(b, halfedges[ar]); - this._link(ar, bl); - - const br = b0 + (b + 1) % 3; - - // don't worry about hitting the cap: it can only happen on extremely degenerate input - if (i < EDGE_STACK.length) { - EDGE_STACK[i++] = br; - } - } else { - if (i === 0) break; - a = EDGE_STACK[--i]; - } - } - - return ar; - } - - _link(a, b) { - this._halfedges[a] = b; - if (b !== -1) this._halfedges[b] = a; - } - - // add a new triangle given vertex indices and adjacent half-edge ids - _addTriangle(i0, i1, i2, a, b, c) { - const t = this.trianglesLen; - - this._triangles[t] = i0; - this._triangles[t + 1] = i1; - this._triangles[t + 2] = i2; - - this._link(t, a); - this._link(t + 1, b); - this._link(t + 2, c); - - this.trianglesLen += 3; - - return t; - } -} - -// monotonically increases with real angle, but doesn't need expensive trigonometry -function pseudoAngle(dx, dy) { - const p = dx / (Math.abs(dx) + Math.abs(dy)); - return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1] -} - -function dist(ax, ay, bx, by) { - const dx = ax - bx; - const dy = ay - by; - return dx * dx + dy * dy; -} - -// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check -function orientIfSure(px, py, rx, ry, qx, qy) { - const l = (ry - py) * (qx - px); - const r = (rx - px) * (qy - py); - return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; -} - -// a more robust orientation test that's stable in a given triangle (to fix robustness issues) -function orient(rx, ry, qx, qy, px, py) { - const sign = orientIfSure(px, py, rx, ry, qx, qy) || - orientIfSure(rx, ry, qx, qy, px, py) || - orientIfSure(qx, qy, px, py, rx, ry); - return sign < 0; -} - -function inCircle(ax, ay, bx, by, cx, cy, px, py) { - const dx = ax - px; - const dy = ay - py; - const ex = bx - px; - const ey = by - py; - const fx = cx - px; - const fy = cy - py; - - const ap = dx * dx + dy * dy; - const bp = ex * ex + ey * ey; - const cp = fx * fx + fy * fy; - - return dx * (ey * cp - bp * fy) - - dy * (ex * cp - bp * fx) + - ap * (ex * fy - ey * fx) < 0; -} - -function circumradius(ax, ay, bx, by, cx, cy) { - const dx = bx - ax; - const dy = by - ay; - const ex = cx - ax; - const ey = cy - ay; - - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; - const d = 0.5 / (dx * ey - dy * ex); - - const x = (ey * bl - dy * cl) * d; - const y = (dx * cl - ex * bl) * d; - - return x * x + y * y; -} - -function circumcenter(ax, ay, bx, by, cx, cy) { - const dx = bx - ax; - const dy = by - ay; - const ex = cx - ax; - const ey = cy - ay; - - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; - const d = 0.5 / (dx * ey - dy * ex); - - const x = ax + (ey * bl - dy * cl) * d; - const y = ay + (dx * cl - ex * bl) * d; - - return {x, y}; -} - -function quicksort(ids, dists, left, right) { - if (right - left <= 20) { - for (let i = left + 1; i <= right; i++) { - const temp = ids[i]; - const tempDist = dists[temp]; - let j = i - 1; - while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--]; - ids[j + 1] = temp; - } - } else { - const median = (left + right) >> 1; - let i = left + 1; - let j = right; - swap(ids, median, i); - if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right); - if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right); - if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i); - - const temp = ids[i]; - const tempDist = dists[temp]; - while (true) { - do i++; while (dists[ids[i]] < tempDist); - do j--; while (dists[ids[j]] > tempDist); - if (j < i) break; - swap(ids, i, j); - } - ids[left + 1] = ids[j]; - ids[j] = temp; - - if (right - i + 1 >= j - left) { - quicksort(ids, dists, i, right); - quicksort(ids, dists, left, j - 1); - } else { - quicksort(ids, dists, left, j - 1); - quicksort(ids, dists, i, right); - } - } -} - -function swap(arr, i, j) { - const tmp = arr[i]; - arr[i] = arr[j]; - arr[j] = tmp; -} - -function defaultGetX(p) { - return p[0]; -} -function defaultGetY(p) { - return p[1]; -} - -const epsilon$2 = 1e-6; - -class Path { - constructor() { - this._x0 = this._y0 = // start of current subpath - this._x1 = this._y1 = null; // end of current subpath - this._ = ""; - } - moveTo(x, y) { - this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; - } - closePath() { - if (this._x1 !== null) { - this._x1 = this._x0, this._y1 = this._y0; - this._ += "Z"; - } - } - lineTo(x, y) { - this._ += `L${this._x1 = +x},${this._y1 = +y}`; - } - arc(x, y, r) { - x = +x, y = +y, r = +r; - const x0 = x + r; - const y0 = y; - if (r < 0) throw new Error("negative radius"); - if (this._x1 === null) this._ += `M${x0},${y0}`; - else if (Math.abs(this._x1 - x0) > epsilon$2 || Math.abs(this._y1 - y0) > epsilon$2) this._ += "L" + x0 + "," + y0; - if (!r) return; - this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`; - } - rect(x, y, w, h) { - this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`; - } - value() { - return this._ || null; - } -} - -class Polygon { - constructor() { - this._ = []; - } - moveTo(x, y) { - this._.push([x, y]); - } - closePath() { - this._.push(this._[0].slice()); - } - lineTo(x, y) { - this._.push([x, y]); - } - value() { - return this._.length ? this._ : null; - } -} - -class Voronoi { - constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) { - if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds"); - this.delaunay = delaunay; - this._circumcenters = new Float64Array(delaunay.points.length * 2); - this.vectors = new Float64Array(delaunay.points.length * 2); - this.xmax = xmax, this.xmin = xmin; - this.ymax = ymax, this.ymin = ymin; - this._init(); - } - update() { - this.delaunay.update(); - this._init(); - return this; - } - _init() { - const {delaunay: {points, hull, triangles}, vectors} = this; - - // Compute circumcenters. - const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2); - for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) { - const t1 = triangles[i] * 2; - const t2 = triangles[i + 1] * 2; - const t3 = triangles[i + 2] * 2; - const x1 = points[t1]; - const y1 = points[t1 + 1]; - const x2 = points[t2]; - const y2 = points[t2 + 1]; - const x3 = points[t3]; - const y3 = points[t3 + 1]; - - const dx = x2 - x1; - const dy = y2 - y1; - const ex = x3 - x1; - const ey = y3 - y1; - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; - const ab = (dx * ey - dy * ex) * 2; - - if (!ab) { - // degenerate case (collinear diagram) - x = (x1 + x3) / 2 - 1e8 * ey; - y = (y1 + y3) / 2 + 1e8 * ex; - } - else if (Math.abs(ab) < 1e-8) { - // almost equal points (degenerate triangle) - x = (x1 + x3) / 2; - y = (y1 + y3) / 2; - } else { - const d = 1 / ab; - x = x1 + (ey * bl - dy * cl) * d; - y = y1 + (dx * cl - ex * bl) * d; - } - circumcenters[j] = x; - circumcenters[j + 1] = y; - } - - // Compute exterior cell rays. - let h = hull[hull.length - 1]; - let p0, p1 = h * 4; - let x0, x1 = points[2 * h]; - let y0, y1 = points[2 * h + 1]; - vectors.fill(0); - for (let i = 0; i < hull.length; ++i) { - h = hull[i]; - p0 = p1, x0 = x1, y0 = y1; - p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1]; - vectors[p0 + 2] = vectors[p1] = y0 - y1; - vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0; - } - } - render(context) { - const buffer = context == null ? context = new Path : undefined; - const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this; - if (hull.length <= 1) return null; - for (let i = 0, n = halfedges.length; i < n; ++i) { - const j = halfedges[i]; - if (j < i) continue; - const ti = Math.floor(i / 3) * 2; - const tj = Math.floor(j / 3) * 2; - const xi = circumcenters[ti]; - const yi = circumcenters[ti + 1]; - const xj = circumcenters[tj]; - const yj = circumcenters[tj + 1]; - this._renderSegment(xi, yi, xj, yj, context); - } - let h0, h1 = hull[hull.length - 1]; - for (let i = 0; i < hull.length; ++i) { - h0 = h1, h1 = hull[i]; - const t = Math.floor(inedges[h1] / 3) * 2; - const x = circumcenters[t]; - const y = circumcenters[t + 1]; - const v = h0 * 4; - const p = this._project(x, y, vectors[v + 2], vectors[v + 3]); - if (p) this._renderSegment(x, y, p[0], p[1], context); - } - return buffer && buffer.value(); - } - renderBounds(context) { - const buffer = context == null ? context = new Path : undefined; - context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin); - return buffer && buffer.value(); - } - renderCell(i, context) { - const buffer = context == null ? context = new Path : undefined; - const points = this._clip(i); - if (points === null || !points.length) return; - context.moveTo(points[0], points[1]); - let n = points.length; - while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2; - for (let i = 2; i < n; i += 2) { - if (points[i] !== points[i-2] || points[i+1] !== points[i-1]) - context.lineTo(points[i], points[i + 1]); - } - context.closePath(); - return buffer && buffer.value(); - } - *cellPolygons() { - const {delaunay: {points}} = this; - for (let i = 0, n = points.length / 2; i < n; ++i) { - const cell = this.cellPolygon(i); - if (cell) cell.index = i, yield cell; - } - } - cellPolygon(i) { - const polygon = new Polygon; - this.renderCell(i, polygon); - return polygon.value(); - } - _renderSegment(x0, y0, x1, y1, context) { - let S; - const c0 = this._regioncode(x0, y0); - const c1 = this._regioncode(x1, y1); - if (c0 === 0 && c1 === 0) { - context.moveTo(x0, y0); - context.lineTo(x1, y1); - } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) { - context.moveTo(S[0], S[1]); - context.lineTo(S[2], S[3]); - } - } - contains(i, x, y) { - if ((x = +x, x !== x) || (y = +y, y !== y)) return false; - return this.delaunay._step(i, x, y) === i; - } - *neighbors(i) { - const ci = this._clip(i); - if (ci) for (const j of this.delaunay.neighbors(i)) { - const cj = this._clip(j); - // find the common edge - if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) { - for (let aj = 0, lj = cj.length; aj < lj; aj += 2) { - if (ci[ai] == cj[aj] - && ci[ai + 1] == cj[aj + 1] - && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj] - && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj] - ) { - yield j; - break loop; - } - } - } - } - } - _cell(i) { - const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this; - const e0 = inedges[i]; - if (e0 === -1) return null; // coincident point - const points = []; - let e = e0; - do { - const t = Math.floor(e / 3); - points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]); - e = e % 3 === 2 ? e - 2 : e + 1; - if (triangles[e] !== i) break; // bad triangulation - e = halfedges[e]; - } while (e !== e0 && e !== -1); - return points; - } - _clip(i) { - // degenerate case (1 valid point: return the box) - if (i === 0 && this.delaunay.hull.length === 1) { - return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; - } - const points = this._cell(i); - if (points === null) return null; - const {vectors: V} = this; - const v = i * 4; - return V[v] || V[v + 1] - ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) - : this._clipFinite(i, points); - } - _clipFinite(i, points) { - const n = points.length; - let P = null; - let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; - let c0, c1 = this._regioncode(x1, y1); - let e0, e1; - for (let j = 0; j < n; j += 2) { - x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; - c0 = c1, c1 = this._regioncode(x1, y1); - if (c0 === 0 && c1 === 0) { - e0 = e1, e1 = 0; - if (P) P.push(x1, y1); - else P = [x1, y1]; - } else { - let S, sx0, sy0, sx1, sy1; - if (c0 === 0) { - if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue; - [sx0, sy0, sx1, sy1] = S; - } else { - if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue; - [sx1, sy1, sx0, sy0] = S; - e0 = e1, e1 = this._edgecode(sx0, sy0); - if (e0 && e1) this._edge(i, e0, e1, P, P.length); - if (P) P.push(sx0, sy0); - else P = [sx0, sy0]; - } - e0 = e1, e1 = this._edgecode(sx1, sy1); - if (e0 && e1) this._edge(i, e0, e1, P, P.length); - if (P) P.push(sx1, sy1); - else P = [sx1, sy1]; - } - } - if (P) { - e0 = e1, e1 = this._edgecode(P[0], P[1]); - if (e0 && e1) this._edge(i, e0, e1, P, P.length); - } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { - return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; - } - return P; - } - _clipSegment(x0, y0, x1, y1, c0, c1) { - while (true) { - if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1]; - if (c0 & c1) return null; - let x, y, c = c0 || c1; - if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax; - else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin; - else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax; - else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin; - if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0); - else x1 = x, y1 = y, c1 = this._regioncode(x1, y1); - } - } - _clipInfinite(i, points, vx0, vy0, vxn, vyn) { - let P = Array.from(points), p; - if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]); - if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]); - if (P = this._clipFinite(i, P)) { - for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) { - c0 = c1, c1 = this._edgecode(P[j], P[j + 1]); - if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length; - } - } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { - P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]; - } - return P; - } - _edge(i, e0, e1, P, j) { - while (e0 !== e1) { - let x, y; - switch (e0) { - case 0b0101: e0 = 0b0100; continue; // top-left - case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top - case 0b0110: e0 = 0b0010; continue; // top-right - case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right - case 0b1010: e0 = 0b1000; continue; // bottom-right - case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom - case 0b1001: e0 = 0b0001; continue; // bottom-left - case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left - } - if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) { - P.splice(j, 0, x, y), j += 2; - } - } - if (P.length > 4) { - for (let i = 0; i < P.length; i+= 2) { - const j = (i + 2) % P.length, k = (i + 4) % P.length; - if (P[i] === P[j] && P[j] === P[k] - || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) - P.splice(j, 2), i -= 2; - } - } - return j; - } - _project(x0, y0, vx, vy) { - let t = Infinity, c, x, y; - if (vy < 0) { // top - if (y0 <= this.ymin) return null; - if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx; - } else if (vy > 0) { // bottom - if (y0 >= this.ymax) return null; - if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx; - } - if (vx > 0) { // right - if (x0 >= this.xmax) return null; - if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy; - } else if (vx < 0) { // left - if (x0 <= this.xmin) return null; - if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy; - } - return [x, y]; - } - _edgecode(x, y) { - return (x === this.xmin ? 0b0001 - : x === this.xmax ? 0b0010 : 0b0000) - | (y === this.ymin ? 0b0100 - : y === this.ymax ? 0b1000 : 0b0000); - } - _regioncode(x, y) { - return (x < this.xmin ? 0b0001 - : x > this.xmax ? 0b0010 : 0b0000) - | (y < this.ymin ? 0b0100 - : y > this.ymax ? 0b1000 : 0b0000); - } -} - -const tau$2 = 2 * Math.PI, pow$2 = Math.pow; - -function pointX(p) { - return p[0]; -} - -function pointY(p) { - return p[1]; -} - -// A triangulation is collinear if all its triangles have a non-null area -function collinear(d) { - const {triangles, coords} = d; - for (let i = 0; i < triangles.length; i += 3) { - const a = 2 * triangles[i], - b = 2 * triangles[i + 1], - c = 2 * triangles[i + 2], - cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) - - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); - if (cross > 1e-10) return false; - } - return true; -} - -function jitter(x, y, r) { - return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r]; -} - -class Delaunay { - static from(points, fx = pointX, fy = pointY, that) { - return new Delaunay("length" in points - ? flatArray(points, fx, fy, that) - : Float64Array.from(flatIterable(points, fx, fy, that))); - } - constructor(points) { - this._delaunator = new Delaunator(points); - this.inedges = new Int32Array(points.length / 2); - this._hullIndex = new Int32Array(points.length / 2); - this.points = this._delaunator.coords; - this._init(); - } - update() { - this._delaunator.update(); - this._init(); - return this; - } - _init() { - const d = this._delaunator, points = this.points; - - // check for collinear - if (d.hull && d.hull.length > 2 && collinear(d)) { - this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i) - .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors - const e = this.collinear[0], f = this.collinear[this.collinear.length - 1], - bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ], - r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]); - for (let i = 0, n = points.length / 2; i < n; ++i) { - const p = jitter(points[2 * i], points[2 * i + 1], r); - points[2 * i] = p[0]; - points[2 * i + 1] = p[1]; - } - this._delaunator = new Delaunator(points); - } else { - delete this.collinear; - } - - const halfedges = this.halfedges = this._delaunator.halfedges; - const hull = this.hull = this._delaunator.hull; - const triangles = this.triangles = this._delaunator.triangles; - const inedges = this.inedges.fill(-1); - const hullIndex = this._hullIndex.fill(-1); - - // Compute an index from each point to an (arbitrary) incoming halfedge - // Used to give the first neighbor of each point; for this reason, - // on the hull we give priority to exterior halfedges - for (let e = 0, n = halfedges.length; e < n; ++e) { - const p = triangles[e % 3 === 2 ? e - 2 : e + 1]; - if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e; - } - for (let i = 0, n = hull.length; i < n; ++i) { - hullIndex[hull[i]] = i; - } - - // degenerate case: 1 or 2 (distinct) points - if (hull.length <= 2 && hull.length > 0) { - this.triangles = new Int32Array(3).fill(-1); - this.halfedges = new Int32Array(3).fill(-1); - this.triangles[0] = hull[0]; - this.triangles[1] = hull[1]; - this.triangles[2] = hull[1]; - inedges[hull[0]] = 1; - if (hull.length === 2) inedges[hull[1]] = 0; - } - } - voronoi(bounds) { - return new Voronoi(this, bounds); - } - *neighbors(i) { - const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this; - - // degenerate case with several collinear points - if (collinear) { - const l = collinear.indexOf(i); - if (l > 0) yield collinear[l - 1]; - if (l < collinear.length - 1) yield collinear[l + 1]; - return; - } - - const e0 = inedges[i]; - if (e0 === -1) return; // coincident point - let e = e0, p0 = -1; - do { - yield p0 = triangles[e]; - e = e % 3 === 2 ? e - 2 : e + 1; - if (triangles[e] !== i) return; // bad triangulation - e = halfedges[e]; - if (e === -1) { - const p = hull[(_hullIndex[i] + 1) % hull.length]; - if (p !== p0) yield p; - return; - } - } while (e !== e0); - } - find(x, y, i = 0) { - if ((x = +x, x !== x) || (y = +y, y !== y)) return -1; - const i0 = i; - let c; - while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c; - return c; - } - _step(i, x, y) { - const {inedges, hull, _hullIndex, halfedges, triangles, points} = this; - if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1); - let c = i; - let dc = pow$2(x - points[i * 2], 2) + pow$2(y - points[i * 2 + 1], 2); - const e0 = inedges[i]; - let e = e0; - do { - let t = triangles[e]; - const dt = pow$2(x - points[t * 2], 2) + pow$2(y - points[t * 2 + 1], 2); - if (dt < dc) dc = dt, c = t; - e = e % 3 === 2 ? e - 2 : e + 1; - if (triangles[e] !== i) break; // bad triangulation - e = halfedges[e]; - if (e === -1) { - e = hull[(_hullIndex[i] + 1) % hull.length]; - if (e !== t) { - if (pow$2(x - points[e * 2], 2) + pow$2(y - points[e * 2 + 1], 2) < dc) return e; - } - break; - } - } while (e !== e0); - return c; - } - render(context) { - const buffer = context == null ? context = new Path : undefined; - const {points, halfedges, triangles} = this; - for (let i = 0, n = halfedges.length; i < n; ++i) { - const j = halfedges[i]; - if (j < i) continue; - const ti = triangles[i] * 2; - const tj = triangles[j] * 2; - context.moveTo(points[ti], points[ti + 1]); - context.lineTo(points[tj], points[tj + 1]); - } - this.renderHull(context); - return buffer && buffer.value(); - } - renderPoints(context, r = 2) { - const buffer = context == null ? context = new Path : undefined; - const {points} = this; - for (let i = 0, n = points.length; i < n; i += 2) { - const x = points[i], y = points[i + 1]; - context.moveTo(x + r, y); - context.arc(x, y, r, 0, tau$2); - } - return buffer && buffer.value(); - } - renderHull(context) { - const buffer = context == null ? context = new Path : undefined; - const {hull, points} = this; - const h = hull[0] * 2, n = hull.length; - context.moveTo(points[h], points[h + 1]); - for (let i = 1; i < n; ++i) { - const h = 2 * hull[i]; - context.lineTo(points[h], points[h + 1]); - } - context.closePath(); - return buffer && buffer.value(); - } - hullPolygon() { - const polygon = new Polygon; - this.renderHull(polygon); - return polygon.value(); - } - renderTriangle(i, context) { - const buffer = context == null ? context = new Path : undefined; - const {points, triangles} = this; - const t0 = triangles[i *= 3] * 2; - const t1 = triangles[i + 1] * 2; - const t2 = triangles[i + 2] * 2; - context.moveTo(points[t0], points[t0 + 1]); - context.lineTo(points[t1], points[t1 + 1]); - context.lineTo(points[t2], points[t2 + 1]); - context.closePath(); - return buffer && buffer.value(); - } - *trianglePolygons() { - const {triangles} = this; - for (let i = 0, n = triangles.length / 3; i < n; ++i) { - yield this.trianglePolygon(i); - } - } - trianglePolygon(i) { - const polygon = new Polygon; - this.renderTriangle(i, polygon); - return polygon.value(); - } -} - -function flatArray(points, fx, fy, that) { - const n = points.length; - const array = new Float64Array(n * 2); - for (let i = 0; i < n; ++i) { - const p = points[i]; - array[i * 2] = fx.call(that, p, i, points); - array[i * 2 + 1] = fy.call(that, p, i, points); - } - return array; -} - -function* flatIterable(points, fx, fy, that) { - let i = 0; - for (const p of points) { - yield fx.call(that, p, i, points); - yield fy.call(that, p, i, points); - ++i; - } -} - -var EOL = {}, - EOF = {}, - QUOTE = 34, - NEWLINE = 10, - RETURN = 13; - -function objectConverter(columns) { - return new Function("d", "return {" + columns.map(function(name, i) { - return JSON.stringify(name) + ": d[" + i + "] || \"\""; - }).join(",") + "}"); -} - -function customConverter(columns, f) { - var object = objectConverter(columns); - return function(row, i) { - return f(object(row), i, columns); - }; -} - -// Compute unique columns in order of discovery. -function inferColumns(rows) { - var columnSet = Object.create(null), - columns = []; - - rows.forEach(function(row) { - for (var column in row) { - if (!(column in columnSet)) { - columns.push(columnSet[column] = column); - } - } - }); - - return columns; -} - -function pad$1(value, width) { - var s = value + "", length = s.length; - return length < width ? new Array(width - length + 1).join(0) + s : s; -} - -function formatYear$1(year) { - return year < 0 ? "-" + pad$1(-year, 6) - : year > 9999 ? "+" + pad$1(year, 6) - : pad$1(year, 4); -} - -function formatDate(date) { - var hours = date.getUTCHours(), - minutes = date.getUTCMinutes(), - seconds = date.getUTCSeconds(), - milliseconds = date.getUTCMilliseconds(); - return isNaN(date) ? "Invalid Date" - : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2) - + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z" - : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z" - : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z" - : ""); -} - -function dsvFormat(delimiter) { - var reFormat = new RegExp("[\"" + delimiter + "\n\r]"), - DELIMITER = delimiter.charCodeAt(0); - - function parse(text, f) { - var convert, columns, rows = parseRows(text, function(row, i) { - if (convert) return convert(row, i - 1); - columns = row, convert = f ? customConverter(row, f) : objectConverter(row); - }); - rows.columns = columns || []; - return rows; - } - - function parseRows(text, f) { - var rows = [], // output rows - N = text.length, - I = 0, // current character index - n = 0, // current line number - t, // current token - eof = N <= 0, // current token followed by EOF? - eol = false; // current token followed by EOL? - - // Strip the trailing newline. - if (text.charCodeAt(N - 1) === NEWLINE) --N; - if (text.charCodeAt(N - 1) === RETURN) --N; - - function token() { - if (eof) return EOF; - if (eol) return eol = false, EOL; - - // Unescape quotes. - var i, j = I, c; - if (text.charCodeAt(j) === QUOTE) { - while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE); - if ((i = I) >= N) eof = true; - else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true; - else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } - return text.slice(j + 1, i - 1).replace(/""/g, "\""); - } - - // Find next delimiter or newline. - while (I < N) { - if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true; - else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; } - else if (c !== DELIMITER) continue; - return text.slice(j, i); - } - - // Return last token before EOF. - return eof = true, text.slice(j, N); - } - - while ((t = token()) !== EOF) { - var row = []; - while (t !== EOL && t !== EOF) row.push(t), t = token(); - if (f && (row = f(row, n++)) == null) continue; - rows.push(row); - } - - return rows; - } - - function preformatBody(rows, columns) { - return rows.map(function(row) { - return columns.map(function(column) { - return formatValue(row[column]); - }).join(delimiter); - }); - } - - function format(rows, columns) { - if (columns == null) columns = inferColumns(rows); - return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n"); - } - - function formatBody(rows, columns) { - if (columns == null) columns = inferColumns(rows); - return preformatBody(rows, columns).join("\n"); - } - - function formatRows(rows) { - return rows.map(formatRow).join("\n"); - } - - function formatRow(row) { - return row.map(formatValue).join(delimiter); - } - - function formatValue(value) { - return value == null ? "" - : value instanceof Date ? formatDate(value) - : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\"" - : value; - } - - return { - parse: parse, - parseRows: parseRows, - format: format, - formatBody: formatBody, - formatRows: formatRows, - formatRow: formatRow, - formatValue: formatValue - }; -} - -var csv$1 = dsvFormat(","); - -var csvParse = csv$1.parse; -var csvParseRows = csv$1.parseRows; -var csvFormat = csv$1.format; -var csvFormatBody = csv$1.formatBody; -var csvFormatRows = csv$1.formatRows; -var csvFormatRow = csv$1.formatRow; -var csvFormatValue = csv$1.formatValue; - -var tsv$1 = dsvFormat("\t"); - -var tsvParse = tsv$1.parse; -var tsvParseRows = tsv$1.parseRows; -var tsvFormat = tsv$1.format; -var tsvFormatBody = tsv$1.formatBody; -var tsvFormatRows = tsv$1.formatRows; -var tsvFormatRow = tsv$1.formatRow; -var tsvFormatValue = tsv$1.formatValue; - -function autoType(object) { - for (var key in object) { - var value = object[key].trim(), number, m; - if (!value) value = null; - else if (value === "true") value = true; - else if (value === "false") value = false; - else if (value === "NaN") value = NaN; - else if (!isNaN(number = +value)) value = number; - else if (m = value.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)) { - if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " "); - value = new Date(value); - } - else continue; - object[key] = value; - } - return object; -} - -// https://github.com/d3/d3-dsv/issues/45 -const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours(); - -function responseBlob(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - return response.blob(); -} - -function blob(input, init) { - return fetch(input, init).then(responseBlob); -} - -function responseArrayBuffer(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - return response.arrayBuffer(); -} - -function buffer(input, init) { - return fetch(input, init).then(responseArrayBuffer); -} - -function responseText(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - return response.text(); -} - -function text(input, init) { - return fetch(input, init).then(responseText); -} - -function dsvParse(parse) { - return function(input, init, row) { - if (arguments.length === 2 && typeof init === "function") row = init, init = undefined; - return text(input, init).then(function(response) { - return parse(response, row); - }); - }; -} - -function dsv(delimiter, input, init, row) { - if (arguments.length === 3 && typeof init === "function") row = init, init = undefined; - var format = dsvFormat(delimiter); - return text(input, init).then(function(response) { - return format.parse(response, row); - }); -} - -var csv = dsvParse(csvParse); -var tsv = dsvParse(tsvParse); - -function image(input, init) { - return new Promise(function(resolve, reject) { - var image = new Image; - for (var key in init) image[key] = init[key]; - image.onerror = reject; - image.onload = function() { resolve(image); }; - image.src = input; - }); -} - -function responseJson(response) { - if (!response.ok) throw new Error(response.status + " " + response.statusText); - if (response.status === 204 || response.status === 205) return; - return response.json(); -} - -function json(input, init) { - return fetch(input, init).then(responseJson); -} - -function parser(type) { - return (input, init) => text(input, init) - .then(text => (new DOMParser).parseFromString(text, type)); -} - -var xml = parser("application/xml"); - -var html = parser("text/html"); - -var svg = parser("image/svg+xml"); - -function center(x, y) { - var nodes, strength = 1; - - if (x == null) x = 0; - if (y == null) y = 0; - - function force() { - var i, - n = nodes.length, - node, - sx = 0, - sy = 0; - - for (i = 0; i < n; ++i) { - node = nodes[i], sx += node.x, sy += node.y; - } - - for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) { - node = nodes[i], node.x -= sx, node.y -= sy; - } - } - - force.initialize = function(_) { - nodes = _; - }; - - force.x = function(_) { - return arguments.length ? (x = +_, force) : x; - }; - - force.y = function(_) { - return arguments.length ? (y = +_, force) : y; - }; - - force.strength = function(_) { - return arguments.length ? (strength = +_, force) : strength; - }; - - return force; -} - -function tree_add(d) { - const x = +this._x.call(null, d), - y = +this._y.call(null, d); - return add(this.cover(x, y), x, y, d); -} - -function add(tree, x, y, d) { - if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points - - var parent, - node = tree._root, - leaf = {data: d}, - x0 = tree._x0, - y0 = tree._y0, - x1 = tree._x1, - y1 = tree._y1, - xm, - ym, - xp, - yp, - right, - bottom, - i, - j; - - // If the tree is empty, initialize the root as a leaf. - if (!node) return tree._root = leaf, tree; - - // Find the existing leaf for the new point, or add it. - while (node.length) { - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; - } - - // Is the new point is exactly coincident with the existing point? - xp = +tree._x.call(null, node.data); - yp = +tree._y.call(null, node.data); - if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; - - // Otherwise, split the leaf node until the old and new point are separated. - do { - parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); - return parent[j] = node, parent[i] = leaf, tree; -} - -function addAll(data) { - var d, i, n = data.length, - x, - y, - xz = new Array(n), - yz = new Array(n), - x0 = Infinity, - y0 = Infinity, - x1 = -Infinity, - y1 = -Infinity; - - // Compute the points and their extent. - for (i = 0; i < n; ++i) { - if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; - xz[i] = x; - yz[i] = y; - if (x < x0) x0 = x; - if (x > x1) x1 = x; - if (y < y0) y0 = y; - if (y > y1) y1 = y; - } - - // If there were no (valid) points, abort. - if (x0 > x1 || y0 > y1) return this; - - // Expand the tree to cover the new points. - this.cover(x0, y0).cover(x1, y1); - - // Add the new points. - for (i = 0; i < n; ++i) { - add(this, xz[i], yz[i], data[i]); - } - - return this; -} - -function tree_cover(x, y) { - if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points - - var x0 = this._x0, - y0 = this._y0, - x1 = this._x1, - y1 = this._y1; - - // If the quadtree has no extent, initialize them. - // Integer extent are necessary so that if we later double the extent, - // the existing quadrant boundaries don’t change due to floating point error! - if (isNaN(x0)) { - x1 = (x0 = Math.floor(x)) + 1; - y1 = (y0 = Math.floor(y)) + 1; - } - - // Otherwise, double repeatedly to cover. - else { - var z = x1 - x0 || 1, - node = this._root, - parent, - i; - - while (x0 > x || x >= x1 || y0 > y || y >= y1) { - i = (y < y0) << 1 | (x < x0); - parent = new Array(4), parent[i] = node, node = parent, z *= 2; - switch (i) { - case 0: x1 = x0 + z, y1 = y0 + z; break; - case 1: x0 = x1 - z, y1 = y0 + z; break; - case 2: x1 = x0 + z, y0 = y1 - z; break; - case 3: x0 = x1 - z, y0 = y1 - z; break; - } - } - - if (this._root && this._root.length) this._root = node; - } - - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - return this; -} - -function tree_data() { - var data = []; - this.visit(function(node) { - if (!node.length) do data.push(node.data); while (node = node.next) - }); - return data; -} - -function tree_extent(_) { - return arguments.length - ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) - : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; -} - -function Quad(node, x0, y0, x1, y1) { - this.node = node; - this.x0 = x0; - this.y0 = y0; - this.x1 = x1; - this.y1 = y1; -} - -function tree_find(x, y, radius) { - var data, - x0 = this._x0, - y0 = this._y0, - x1, - y1, - x2, - y2, - x3 = this._x1, - y3 = this._y1, - quads = [], - node = this._root, - q, - i; - - if (node) quads.push(new Quad(node, x0, y0, x3, y3)); - if (radius == null) radius = Infinity; - else { - x0 = x - radius, y0 = y - radius; - x3 = x + radius, y3 = y + radius; - radius *= radius; - } - - while (q = quads.pop()) { - - // Stop searching if this quadrant can’t contain a closer node. - if (!(node = q.node) - || (x1 = q.x0) > x3 - || (y1 = q.y0) > y3 - || (x2 = q.x1) < x0 - || (y2 = q.y1) < y0) continue; - - // Bisect the current quadrant. - if (node.length) { - var xm = (x1 + x2) / 2, - ym = (y1 + y2) / 2; - - quads.push( - new Quad(node[3], xm, ym, x2, y2), - new Quad(node[2], x1, ym, xm, y2), - new Quad(node[1], xm, y1, x2, ym), - new Quad(node[0], x1, y1, xm, ym) - ); - - // Visit the closest quadrant first. - if (i = (y >= ym) << 1 | (x >= xm)) { - q = quads[quads.length - 1]; - quads[quads.length - 1] = quads[quads.length - 1 - i]; - quads[quads.length - 1 - i] = q; - } - } - - // Visit this point. (Visiting coincident points isn’t necessary!) - else { - var dx = x - +this._x.call(null, node.data), - dy = y - +this._y.call(null, node.data), - d2 = dx * dx + dy * dy; - if (d2 < radius) { - var d = Math.sqrt(radius = d2); - x0 = x - d, y0 = y - d; - x3 = x + d, y3 = y + d; - data = node.data; - } - } - } - - return data; -} - -function tree_remove(d) { - if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points - - var parent, - node = this._root, - retainer, - previous, - next, - x0 = this._x0, - y0 = this._y0, - x1 = this._x1, - y1 = this._y1, - x, - y, - xm, - ym, - right, - bottom, - i, - j; - - // If the tree is empty, initialize the root as a leaf. - if (!node) return this; - - // Find the leaf node for the point. - // While descending, also retain the deepest parent with a non-removed sibling. - if (node.length) while (true) { - if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; - if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; - if (!(parent = node, node = node[i = bottom << 1 | right])) return this; - if (!node.length) break; - if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; - } - - // Find the point to remove. - while (node.data !== d) if (!(previous = node, node = node.next)) return this; - if (next = node.next) delete node.next; - - // If there are multiple coincident points, remove just the point. - if (previous) return (next ? previous.next = next : delete previous.next), this; - - // If this is the root point, remove it. - if (!parent) return this._root = next, this; - - // Remove this leaf. - next ? parent[i] = next : delete parent[i]; - - // If the parent now contains exactly one leaf, collapse superfluous parents. - if ((node = parent[0] || parent[1] || parent[2] || parent[3]) - && node === (parent[3] || parent[2] || parent[1] || parent[0]) - && !node.length) { - if (retainer) retainer[j] = node; - else this._root = node; - } - - return this; -} - -function removeAll(data) { - for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); - return this; -} - -function tree_root() { - return this._root; -} - -function tree_size() { - var size = 0; - this.visit(function(node) { - if (!node.length) do ++size; while (node = node.next) - }); - return size; -} - -function tree_visit(callback) { - var quads = [], q, node = this._root, child, x0, y0, x1, y1; - if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); - while (q = quads.pop()) { - if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { - var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); - if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); - if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); - if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); - } - } - return this; -} - -function tree_visitAfter(callback) { - var quads = [], next = [], q; - if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); - while (q = quads.pop()) { - var node = q.node; - if (node.length) { - var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; - if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); - if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); - if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); - if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); - } - next.push(q); - } - while (q = next.pop()) { - callback(q.node, q.x0, q.y0, q.x1, q.y1); - } - return this; -} - -function defaultX(d) { - return d[0]; -} - -function tree_x(_) { - return arguments.length ? (this._x = _, this) : this._x; -} - -function defaultY(d) { - return d[1]; -} - -function tree_y(_) { - return arguments.length ? (this._y = _, this) : this._y; -} - -function quadtree(nodes, x, y) { - var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); - return nodes == null ? tree : tree.addAll(nodes); -} - -function Quadtree(x, y, x0, y0, x1, y1) { - this._x = x; - this._y = y; - this._x0 = x0; - this._y0 = y0; - this._x1 = x1; - this._y1 = y1; - this._root = undefined; -} - -function leaf_copy(leaf) { - var copy = {data: leaf.data}, next = copy; - while (leaf = leaf.next) next = next.next = {data: leaf.data}; - return copy; -} - -var treeProto = quadtree.prototype = Quadtree.prototype; - -treeProto.copy = function() { - var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), - node = this._root, - nodes, - child; - - if (!node) return copy; - - if (!node.length) return copy._root = leaf_copy(node), copy; - - nodes = [{source: node, target: copy._root = new Array(4)}]; - while (node = nodes.pop()) { - for (var i = 0; i < 4; ++i) { - if (child = node.source[i]) { - if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); - else node.target[i] = leaf_copy(child); - } - } - } - - return copy; -}; - -treeProto.add = tree_add; -treeProto.addAll = addAll; -treeProto.cover = tree_cover; -treeProto.data = tree_data; -treeProto.extent = tree_extent; -treeProto.find = tree_find; -treeProto.remove = tree_remove; -treeProto.removeAll = removeAll; -treeProto.root = tree_root; -treeProto.size = tree_size; -treeProto.visit = tree_visit; -treeProto.visitAfter = tree_visitAfter; -treeProto.x = tree_x; -treeProto.y = tree_y; - -function constant$4(x) { - return function() { - return x; - }; -} - -function jiggle(random) { - return (random() - 0.5) * 1e-6; -} - -function x$3(d) { - return d.x + d.vx; -} - -function y$3(d) { - return d.y + d.vy; -} - -function collide(radius) { - var nodes, - radii, - random, - strength = 1, - iterations = 1; - - if (typeof radius !== "function") radius = constant$4(radius == null ? 1 : +radius); - - function force() { - var i, n = nodes.length, - tree, - node, - xi, - yi, - ri, - ri2; - - for (var k = 0; k < iterations; ++k) { - tree = quadtree(nodes, x$3, y$3).visitAfter(prepare); - for (i = 0; i < n; ++i) { - node = nodes[i]; - ri = radii[node.index], ri2 = ri * ri; - xi = node.x + node.vx; - yi = node.y + node.vy; - tree.visit(apply); - } - } - - function apply(quad, x0, y0, x1, y1) { - var data = quad.data, rj = quad.r, r = ri + rj; - if (data) { - if (data.index > node.index) { - var x = xi - data.x - data.vx, - y = yi - data.y - data.vy, - l = x * x + y * y; - if (l < r * r) { - if (x === 0) x = jiggle(random), l += x * x; - if (y === 0) y = jiggle(random), l += y * y; - l = (r - (l = Math.sqrt(l))) / l * strength; - node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj)); - node.vy += (y *= l) * r; - data.vx -= x * (r = 1 - r); - data.vy -= y * r; - } - } - return; - } - return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r; - } - } - - function prepare(quad) { - if (quad.data) return quad.r = radii[quad.data.index]; - for (var i = quad.r = 0; i < 4; ++i) { - if (quad[i] && quad[i].r > quad.r) { - quad.r = quad[i].r; - } - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length, node; - radii = new Array(n); - for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes); - } - - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random = _random; - initialize(); - }; - - force.iterations = function(_) { - return arguments.length ? (iterations = +_, force) : iterations; - }; - - force.strength = function(_) { - return arguments.length ? (strength = +_, force) : strength; - }; - - force.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; - }; - - return force; -} - -function index$3(d) { - return d.index; -} - -function find(nodeById, nodeId) { - var node = nodeById.get(nodeId); - if (!node) throw new Error("node not found: " + nodeId); - return node; -} - -function link$2(links) { - var id = index$3, - strength = defaultStrength, - strengths, - distance = constant$4(30), - distances, - nodes, - count, - bias, - random, - iterations = 1; - - if (links == null) links = []; - - function defaultStrength(link) { - return 1 / Math.min(count[link.source.index], count[link.target.index]); - } - - function force(alpha) { - for (var k = 0, n = links.length; k < iterations; ++k) { - for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { - link = links[i], source = link.source, target = link.target; - x = target.x + target.vx - source.x - source.vx || jiggle(random); - y = target.y + target.vy - source.y - source.vy || jiggle(random); - l = Math.sqrt(x * x + y * y); - l = (l - distances[i]) / l * alpha * strengths[i]; - x *= l, y *= l; - target.vx -= x * (b = bias[i]); - target.vy -= y * b; - source.vx += x * (b = 1 - b); - source.vy += y * b; - } - } - } - - function initialize() { - if (!nodes) return; - - var i, - n = nodes.length, - m = links.length, - nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])), - link; - - for (i = 0, count = new Array(n); i < m; ++i) { - link = links[i], link.index = i; - if (typeof link.source !== "object") link.source = find(nodeById, link.source); - if (typeof link.target !== "object") link.target = find(nodeById, link.target); - count[link.source.index] = (count[link.source.index] || 0) + 1; - count[link.target.index] = (count[link.target.index] || 0) + 1; - } - - for (i = 0, bias = new Array(m); i < m; ++i) { - link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]); - } - - strengths = new Array(m), initializeStrength(); - distances = new Array(m), initializeDistance(); - } - - function initializeStrength() { - if (!nodes) return; - - for (var i = 0, n = links.length; i < n; ++i) { - strengths[i] = +strength(links[i], i, links); - } - } - - function initializeDistance() { - if (!nodes) return; - - for (var i = 0, n = links.length; i < n; ++i) { - distances[i] = +distance(links[i], i, links); - } - } - - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random = _random; - initialize(); - }; - - force.links = function(_) { - return arguments.length ? (links = _, initialize(), force) : links; - }; - - force.id = function(_) { - return arguments.length ? (id = _, force) : id; - }; - - force.iterations = function(_) { - return arguments.length ? (iterations = +_, force) : iterations; - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initializeStrength(), force) : strength; - }; - - force.distance = function(_) { - return arguments.length ? (distance = typeof _ === "function" ? _ : constant$4(+_), initializeDistance(), force) : distance; - }; - - return force; -} - -// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use -const a$1 = 1664525; -const c$3 = 1013904223; -const m = 4294967296; // 2^32 - -function lcg$1() { - let s = 1; - return () => (s = (a$1 * s + c$3) % m) / m; -} - -function x$2(d) { - return d.x; -} - -function y$2(d) { - return d.y; -} - -var initialRadius = 10, - initialAngle = Math.PI * (3 - Math.sqrt(5)); - -function simulation(nodes) { - var simulation, - alpha = 1, - alphaMin = 0.001, - alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), - alphaTarget = 0, - velocityDecay = 0.6, - forces = new Map(), - stepper = timer(step), - event = dispatch("tick", "end"), - random = lcg$1(); - - if (nodes == null) nodes = []; - - function step() { - tick(); - event.call("tick", simulation); - if (alpha < alphaMin) { - stepper.stop(); - event.call("end", simulation); - } - } - - function tick(iterations) { - var i, n = nodes.length, node; - - if (iterations === undefined) iterations = 1; - - for (var k = 0; k < iterations; ++k) { - alpha += (alphaTarget - alpha) * alphaDecay; - - forces.forEach(function(force) { - force(alpha); - }); - - for (i = 0; i < n; ++i) { - node = nodes[i]; - if (node.fx == null) node.x += node.vx *= velocityDecay; - else node.x = node.fx, node.vx = 0; - if (node.fy == null) node.y += node.vy *= velocityDecay; - else node.y = node.fy, node.vy = 0; - } - } - - return simulation; - } - - function initializeNodes() { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.index = i; - if (node.fx != null) node.x = node.fx; - if (node.fy != null) node.y = node.fy; - if (isNaN(node.x) || isNaN(node.y)) { - var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle; - node.x = radius * Math.cos(angle); - node.y = radius * Math.sin(angle); - } - if (isNaN(node.vx) || isNaN(node.vy)) { - node.vx = node.vy = 0; - } - } - } - - function initializeForce(force) { - if (force.initialize) force.initialize(nodes, random); - return force; - } - - initializeNodes(); - - return simulation = { - tick: tick, - - restart: function() { - return stepper.restart(step), simulation; - }, - - stop: function() { - return stepper.stop(), simulation; - }, - - nodes: function(_) { - return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes; - }, - - alpha: function(_) { - return arguments.length ? (alpha = +_, simulation) : alpha; - }, - - alphaMin: function(_) { - return arguments.length ? (alphaMin = +_, simulation) : alphaMin; - }, - - alphaDecay: function(_) { - return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay; - }, - - alphaTarget: function(_) { - return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget; - }, - - velocityDecay: function(_) { - return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay; - }, - - randomSource: function(_) { - return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random; - }, - - force: function(name, _) { - return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name); - }, - - find: function(x, y, radius) { - var i = 0, - n = nodes.length, - dx, - dy, - d2, - node, - closest; - - if (radius == null) radius = Infinity; - else radius *= radius; - - for (i = 0; i < n; ++i) { - node = nodes[i]; - dx = x - node.x; - dy = y - node.y; - d2 = dx * dx + dy * dy; - if (d2 < radius) closest = node, radius = d2; - } - - return closest; - }, - - on: function(name, _) { - return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name); - } - }; -} - -function manyBody() { - var nodes, - node, - random, - alpha, - strength = constant$4(-30), - strengths, - distanceMin2 = 1, - distanceMax2 = Infinity, - theta2 = 0.81; - - function force(_) { - var i, n = nodes.length, tree = quadtree(nodes, x$2, y$2).visitAfter(accumulate); - for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply); - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length, node; - strengths = new Array(n); - for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes); - } - - function accumulate(quad) { - var strength = 0, q, c, weight = 0, x, y, i; - - // For internal nodes, accumulate forces from child quadrants. - if (quad.length) { - for (x = y = i = 0; i < 4; ++i) { - if ((q = quad[i]) && (c = Math.abs(q.value))) { - strength += q.value, weight += c, x += c * q.x, y += c * q.y; - } - } - quad.x = x / weight; - quad.y = y / weight; - } - - // For leaf nodes, accumulate forces from coincident quadrants. - else { - q = quad; - q.x = q.data.x; - q.y = q.data.y; - do strength += strengths[q.data.index]; - while (q = q.next); - } - - quad.value = strength; - } - - function apply(quad, x1, _, x2) { - if (!quad.value) return true; - - var x = quad.x - node.x, - y = quad.y - node.y, - w = x2 - x1, - l = x * x + y * y; - - // Apply the Barnes-Hut approximation if possible. - // Limit forces for very close nodes; randomize direction if coincident. - if (w * w / theta2 < l) { - if (l < distanceMax2) { - if (x === 0) x = jiggle(random), l += x * x; - if (y === 0) y = jiggle(random), l += y * y; - if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); - node.vx += x * quad.value * alpha / l; - node.vy += y * quad.value * alpha / l; - } - return true; - } - - // Otherwise, process points directly. - else if (quad.length || l >= distanceMax2) return; - - // Limit forces for very close nodes; randomize direction if coincident. - if (quad.data !== node || quad.next) { - if (x === 0) x = jiggle(random), l += x * x; - if (y === 0) y = jiggle(random), l += y * y; - if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l); - } - - do if (quad.data !== node) { - w = strengths[quad.data.index] * alpha / l; - node.vx += x * w; - node.vy += y * w; - } while (quad = quad.next); - } - - force.initialize = function(_nodes, _random) { - nodes = _nodes; - random = _random; - initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.distanceMin = function(_) { - return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2); - }; - - force.distanceMax = function(_) { - return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2); - }; - - force.theta = function(_) { - return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2); - }; - - return force; -} - -function radial$1(radius, x, y) { - var nodes, - strength = constant$4(0.1), - strengths, - radiuses; - - if (typeof radius !== "function") radius = constant$4(+radius); - if (x == null) x = 0; - if (y == null) y = 0; - - function force(alpha) { - for (var i = 0, n = nodes.length; i < n; ++i) { - var node = nodes[i], - dx = node.x - x || 1e-6, - dy = node.y - y || 1e-6, - r = Math.sqrt(dx * dx + dy * dy), - k = (radiuses[i] - r) * strengths[i] * alpha / r; - node.vx += dx * k; - node.vy += dy * k; - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - radiuses = new Array(n); - for (i = 0; i < n; ++i) { - radiuses[i] = +radius(nodes[i], i, nodes); - strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes); - } - } - - force.initialize = function(_) { - nodes = _, initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : radius; - }; - - force.x = function(_) { - return arguments.length ? (x = +_, force) : x; - }; - - force.y = function(_) { - return arguments.length ? (y = +_, force) : y; - }; - - return force; -} - -function x$1(x) { - var strength = constant$4(0.1), - nodes, - strengths, - xz; - - if (typeof x !== "function") x = constant$4(x == null ? 0 : +x); - - function force(alpha) { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha; - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - xz = new Array(n); - for (i = 0; i < n; ++i) { - strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); - } - } - - force.initialize = function(_) { - nodes = _; - initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.x = function(_) { - return arguments.length ? (x = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : x; - }; - - return force; -} - -function y$1(y) { - var strength = constant$4(0.1), - nodes, - strengths, - yz; - - if (typeof y !== "function") y = constant$4(y == null ? 0 : +y); - - function force(alpha) { - for (var i = 0, n = nodes.length, node; i < n; ++i) { - node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha; - } - } - - function initialize() { - if (!nodes) return; - var i, n = nodes.length; - strengths = new Array(n); - yz = new Array(n); - for (i = 0; i < n; ++i) { - strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes); - } - } - - force.initialize = function(_) { - nodes = _; - initialize(); - }; - - force.strength = function(_) { - return arguments.length ? (strength = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : strength; - }; - - force.y = function(_) { - return arguments.length ? (y = typeof _ === "function" ? _ : constant$4(+_), initialize(), force) : y; - }; - - return force; -} - -function formatDecimal(x) { - return Math.abs(x = Math.round(x)) >= 1e21 - ? x.toLocaleString("en").replace(/,/g, "") - : x.toString(10); -} - -// Computes the decimal coefficient and exponent of the specified number x with -// significant digits p, where x is positive and p is in [1, 21] or undefined. -// For example, formatDecimalParts(1.23) returns ["123", 0]. -function formatDecimalParts(x, p) { - if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity - var i, coefficient = x.slice(0, i); - - // The string returned by toExponential either has the form \d\.\d+e[-+]\d+ - // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). - return [ - coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, - +x.slice(i + 1) - ]; -} - -function exponent(x) { - return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; -} - -function formatGroup(grouping, thousands) { - return function(value, width) { - var i = value.length, - t = [], - j = 0, - g = grouping[0], - length = 0; - - while (i > 0 && g > 0) { - if (length + g + 1 > width) g = Math.max(1, width - length); - t.push(value.substring(i -= g, i + g)); - if ((length += g + 1) > width) break; - g = grouping[j = (j + 1) % grouping.length]; - } - - return t.reverse().join(thousands); - }; -} - -function formatNumerals(numerals) { - return function(value) { - return value.replace(/[0-9]/g, function(i) { - return numerals[+i]; - }); - }; -} - -// [[fill]align][sign][symbol][0][width][,][.precision][~][type] -var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; - -function formatSpecifier(specifier) { - if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier); - var match; - return new FormatSpecifier({ - fill: match[1], - align: match[2], - sign: match[3], - symbol: match[4], - zero: match[5], - width: match[6], - comma: match[7], - precision: match[8] && match[8].slice(1), - trim: match[9], - type: match[10] - }); -} - -formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof - -function FormatSpecifier(specifier) { - this.fill = specifier.fill === undefined ? " " : specifier.fill + ""; - this.align = specifier.align === undefined ? ">" : specifier.align + ""; - this.sign = specifier.sign === undefined ? "-" : specifier.sign + ""; - this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + ""; - this.zero = !!specifier.zero; - this.width = specifier.width === undefined ? undefined : +specifier.width; - this.comma = !!specifier.comma; - this.precision = specifier.precision === undefined ? undefined : +specifier.precision; - this.trim = !!specifier.trim; - this.type = specifier.type === undefined ? "" : specifier.type + ""; -} - -FormatSpecifier.prototype.toString = function() { - return this.fill - + this.align - + this.sign - + this.symbol - + (this.zero ? "0" : "") - + (this.width === undefined ? "" : Math.max(1, this.width | 0)) - + (this.comma ? "," : "") - + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0)) - + (this.trim ? "~" : "") - + this.type; -}; - -// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k. -function formatTrim(s) { - out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { - switch (s[i]) { - case ".": i0 = i1 = i; break; - case "0": if (i0 === 0) i0 = i; i1 = i; break; - default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break; - } - } - return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; -} - -var prefixExponent; - -function formatPrefixAuto(x, p) { - var d = formatDecimalParts(x, p); - if (!d) return x + ""; - var coefficient = d[0], - exponent = d[1], - i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, - n = coefficient.length; - return i === n ? coefficient - : i > n ? coefficient + new Array(i - n + 1).join("0") - : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) - : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y! -} - -function formatRounded(x, p) { - var d = formatDecimalParts(x, p); - if (!d) return x + ""; - var coefficient = d[0], - exponent = d[1]; - return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient - : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) - : coefficient + new Array(exponent - coefficient.length + 2).join("0"); -} - -var formatTypes = { - "%": (x, p) => (x * 100).toFixed(p), - "b": (x) => Math.round(x).toString(2), - "c": (x) => x + "", - "d": formatDecimal, - "e": (x, p) => x.toExponential(p), - "f": (x, p) => x.toFixed(p), - "g": (x, p) => x.toPrecision(p), - "o": (x) => Math.round(x).toString(8), - "p": (x, p) => formatRounded(x * 100, p), - "r": formatRounded, - "s": formatPrefixAuto, - "X": (x) => Math.round(x).toString(16).toUpperCase(), - "x": (x) => Math.round(x).toString(16) -}; - -function identity$6(x) { - return x; -} - -var map = Array.prototype.map, - prefixes = ["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"]; - -function formatLocale$1(locale) { - var group = locale.grouping === undefined || locale.thousands === undefined ? identity$6 : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), - currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "", - currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "", - decimal = locale.decimal === undefined ? "." : locale.decimal + "", - numerals = locale.numerals === undefined ? identity$6 : formatNumerals(map.call(locale.numerals, String)), - percent = locale.percent === undefined ? "%" : locale.percent + "", - minus = locale.minus === undefined ? "\u2212" : locale.minus + "", - nan = locale.nan === undefined ? "NaN" : locale.nan + ""; - - function newFormat(specifier) { - specifier = formatSpecifier(specifier); - - var fill = specifier.fill, - align = specifier.align, - sign = specifier.sign, - symbol = specifier.symbol, - zero = specifier.zero, - width = specifier.width, - comma = specifier.comma, - precision = specifier.precision, - trim = specifier.trim, - type = specifier.type; - - // The "n" type is an alias for ",g". - if (type === "n") comma = true, type = "g"; - - // The "" type, and any invalid type, is an alias for ".12~g". - else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g"; - - // If zero fill is specified, padding goes after sign and before digits. - if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "="; - - // Compute the prefix and suffix. - // For SI-prefix, the suffix is lazily computed. - var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", - suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; - - // What format function should we use? - // Is this an integer type? - // Can this type generate exponential notation? - var formatType = formatTypes[type], - maybeSuffix = /[defgprs%]/.test(type); - - // Set the default precision if not specified, - // or clamp the specified precision to the supported range. - // For significant precision, it must be in [1, 21]. - // For fixed precision, it must be in [0, 20]. - precision = precision === undefined ? 6 - : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) - : Math.max(0, Math.min(20, precision)); - - function format(value) { - var valuePrefix = prefix, - valueSuffix = suffix, - i, n, c; - - if (type === "c") { - valueSuffix = formatType(value) + valueSuffix; - value = ""; - } else { - value = +value; - - // Determine the sign. -0 is not less than 0, but 1 / -0 is! - var valueNegative = value < 0 || 1 / value < 0; - - // Perform the initial formatting. - value = isNaN(value) ? nan : formatType(Math.abs(value), precision); - - // Trim insignificant zeros. - if (trim) value = formatTrim(value); - - // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign. - if (valueNegative && +value === 0 && sign !== "+") valueNegative = false; - - // Compute the prefix and suffix. - valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; - valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); - - // Break the formatted value into the integer “value” part that can be - // grouped, and fractional or exponential “suffix” part that is not. - if (maybeSuffix) { - i = -1, n = value.length; - while (++i < n) { - if (c = value.charCodeAt(i), 48 > c || c > 57) { - valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; - value = value.slice(0, i); - break; - } - } - } - } - - // If the fill character is not "0", grouping is applied before padding. - if (comma && !zero) value = group(value, Infinity); - - // Compute the padding. - var length = valuePrefix.length + value.length + valueSuffix.length, - padding = length < width ? new Array(width - length + 1).join(fill) : ""; - - // If the fill character is "0", grouping is applied after padding. - if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; - - // Reconstruct the final output based on the desired alignment. - switch (align) { - case "<": value = valuePrefix + value + valueSuffix + padding; break; - case "=": value = valuePrefix + padding + value + valueSuffix; break; - case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break; - default: value = padding + valuePrefix + value + valueSuffix; break; - } - - return numerals(value); - } - - format.toString = function() { - return specifier + ""; - }; - - return format; - } - - function formatPrefix(specifier, value) { - var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), - e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, - k = Math.pow(10, -e), - prefix = prefixes[8 + e / 3]; - return function(value) { - return f(k * value) + prefix; - }; - } - - return { - format: newFormat, - formatPrefix: formatPrefix - }; -} - -var locale$1; -exports.format = void 0; -exports.formatPrefix = void 0; - -defaultLocale$1({ - thousands: ",", - grouping: [3], - currency: ["$", ""] -}); - -function defaultLocale$1(definition) { - locale$1 = formatLocale$1(definition); - exports.format = locale$1.format; - exports.formatPrefix = locale$1.formatPrefix; - return locale$1; -} - -function precisionFixed(step) { - return Math.max(0, -exponent(Math.abs(step))); -} - -function precisionPrefix(step, value) { - return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); -} - -function precisionRound(step, max) { - step = Math.abs(step), max = Math.abs(max) - step; - return Math.max(0, exponent(max) - exponent(step)) + 1; -} - -var epsilon$1 = 1e-6; -var epsilon2 = 1e-12; -var pi$1 = Math.PI; -var halfPi$1 = pi$1 / 2; -var quarterPi = pi$1 / 4; -var tau$1 = pi$1 * 2; - -var degrees = 180 / pi$1; -var radians = pi$1 / 180; - -var abs$1 = Math.abs; -var atan = Math.atan; -var atan2$1 = Math.atan2; -var cos$1 = Math.cos; -var ceil = Math.ceil; -var exp = Math.exp; -var hypot = Math.hypot; -var log$1 = Math.log; -var pow$1 = Math.pow; -var sin$1 = Math.sin; -var sign$1 = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; }; -var sqrt$2 = Math.sqrt; -var tan = Math.tan; - -function acos$1(x) { - return x > 1 ? 0 : x < -1 ? pi$1 : Math.acos(x); -} - -function asin$1(x) { - return x > 1 ? halfPi$1 : x < -1 ? -halfPi$1 : Math.asin(x); -} - -function haversin(x) { - return (x = sin$1(x / 2)) * x; -} - -function noop$1() {} - -function streamGeometry(geometry, stream) { - if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) { - streamGeometryType[geometry.type](geometry, stream); - } -} - -var streamObjectType = { - Feature: function(object, stream) { - streamGeometry(object.geometry, stream); - }, - FeatureCollection: function(object, stream) { - var features = object.features, i = -1, n = features.length; - while (++i < n) streamGeometry(features[i].geometry, stream); - } -}; - -var streamGeometryType = { - Sphere: function(object, stream) { - stream.sphere(); - }, - Point: function(object, stream) { - object = object.coordinates; - stream.point(object[0], object[1], object[2]); - }, - MultiPoint: function(object, stream) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]); - }, - LineString: function(object, stream) { - streamLine(object.coordinates, stream, 0); - }, - MultiLineString: function(object, stream) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) streamLine(coordinates[i], stream, 0); - }, - Polygon: function(object, stream) { - streamPolygon(object.coordinates, stream); - }, - MultiPolygon: function(object, stream) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) streamPolygon(coordinates[i], stream); - }, - GeometryCollection: function(object, stream) { - var geometries = object.geometries, i = -1, n = geometries.length; - while (++i < n) streamGeometry(geometries[i], stream); - } -}; - -function streamLine(coordinates, stream, closed) { - var i = -1, n = coordinates.length - closed, coordinate; - stream.lineStart(); - while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]); - stream.lineEnd(); -} - -function streamPolygon(coordinates, stream) { - var i = -1, n = coordinates.length; - stream.polygonStart(); - while (++i < n) streamLine(coordinates[i], stream, 1); - stream.polygonEnd(); -} - -function geoStream(object, stream) { - if (object && streamObjectType.hasOwnProperty(object.type)) { - streamObjectType[object.type](object, stream); - } else { - streamGeometry(object, stream); - } -} - -var areaRingSum$1 = new Adder(); - -// hello? - -var areaSum$1 = new Adder(), - lambda00$2, - phi00$2, - lambda0$2, - cosPhi0$1, - sinPhi0$1; - -var areaStream$1 = { - point: noop$1, - lineStart: noop$1, - lineEnd: noop$1, - polygonStart: function() { - areaRingSum$1 = new Adder(); - areaStream$1.lineStart = areaRingStart$1; - areaStream$1.lineEnd = areaRingEnd$1; - }, - polygonEnd: function() { - var areaRing = +areaRingSum$1; - areaSum$1.add(areaRing < 0 ? tau$1 + areaRing : areaRing); - this.lineStart = this.lineEnd = this.point = noop$1; - }, - sphere: function() { - areaSum$1.add(tau$1); - } -}; - -function areaRingStart$1() { - areaStream$1.point = areaPointFirst$1; -} - -function areaRingEnd$1() { - areaPoint$1(lambda00$2, phi00$2); -} - -function areaPointFirst$1(lambda, phi) { - areaStream$1.point = areaPoint$1; - lambda00$2 = lambda, phi00$2 = phi; - lambda *= radians, phi *= radians; - lambda0$2 = lambda, cosPhi0$1 = cos$1(phi = phi / 2 + quarterPi), sinPhi0$1 = sin$1(phi); -} - -function areaPoint$1(lambda, phi) { - lambda *= radians, phi *= radians; - phi = phi / 2 + quarterPi; // half the angular distance from south pole - - // Spherical excess E for a spherical triangle with vertices: south pole, - // previous point, current point. Uses a formula derived from Cagnoli’s - // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2). - var dLambda = lambda - lambda0$2, - sdLambda = dLambda >= 0 ? 1 : -1, - adLambda = sdLambda * dLambda, - cosPhi = cos$1(phi), - sinPhi = sin$1(phi), - k = sinPhi0$1 * sinPhi, - u = cosPhi0$1 * cosPhi + k * cos$1(adLambda), - v = k * sdLambda * sin$1(adLambda); - areaRingSum$1.add(atan2$1(v, u)); - - // Advance the previous points. - lambda0$2 = lambda, cosPhi0$1 = cosPhi, sinPhi0$1 = sinPhi; -} - -function area$2(object) { - areaSum$1 = new Adder(); - geoStream(object, areaStream$1); - return areaSum$1 * 2; -} - -function spherical(cartesian) { - return [atan2$1(cartesian[1], cartesian[0]), asin$1(cartesian[2])]; -} - -function cartesian(spherical) { - var lambda = spherical[0], phi = spherical[1], cosPhi = cos$1(phi); - return [cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)]; -} - -function cartesianDot(a, b) { - return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; -} - -function cartesianCross(a, b) { - return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]]; -} - -// TODO return a -function cartesianAddInPlace(a, b) { - a[0] += b[0], a[1] += b[1], a[2] += b[2]; -} - -function cartesianScale(vector, k) { - return [vector[0] * k, vector[1] * k, vector[2] * k]; -} - -// TODO return d -function cartesianNormalizeInPlace(d) { - var l = sqrt$2(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]); - d[0] /= l, d[1] /= l, d[2] /= l; -} - -var lambda0$1, phi0, lambda1, phi1, // bounds - lambda2, // previous lambda-coordinate - lambda00$1, phi00$1, // first point - p0, // previous 3D point - deltaSum, - ranges, - range; - -var boundsStream$1 = { - point: boundsPoint$1, - lineStart: boundsLineStart, - lineEnd: boundsLineEnd, - polygonStart: function() { - boundsStream$1.point = boundsRingPoint; - boundsStream$1.lineStart = boundsRingStart; - boundsStream$1.lineEnd = boundsRingEnd; - deltaSum = new Adder(); - areaStream$1.polygonStart(); - }, - polygonEnd: function() { - areaStream$1.polygonEnd(); - boundsStream$1.point = boundsPoint$1; - boundsStream$1.lineStart = boundsLineStart; - boundsStream$1.lineEnd = boundsLineEnd; - if (areaRingSum$1 < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); - else if (deltaSum > epsilon$1) phi1 = 90; - else if (deltaSum < -epsilon$1) phi0 = -90; - range[0] = lambda0$1, range[1] = lambda1; - }, - sphere: function() { - lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90); - } -}; - -function boundsPoint$1(lambda, phi) { - ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); - if (phi < phi0) phi0 = phi; - if (phi > phi1) phi1 = phi; -} - -function linePoint(lambda, phi) { - var p = cartesian([lambda * radians, phi * radians]); - if (p0) { - var normal = cartesianCross(p0, p), - equatorial = [normal[1], -normal[0], 0], - inflection = cartesianCross(equatorial, normal); - cartesianNormalizeInPlace(inflection); - inflection = spherical(inflection); - var delta = lambda - lambda2, - sign = delta > 0 ? 1 : -1, - lambdai = inflection[0] * degrees * sign, - phii, - antimeridian = abs$1(delta) > 180; - if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { - phii = inflection[1] * degrees; - if (phii > phi1) phi1 = phii; - } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) { - phii = -inflection[1] * degrees; - if (phii < phi0) phi0 = phii; - } else { - if (phi < phi0) phi0 = phi; - if (phi > phi1) phi1 = phi; - } - if (antimeridian) { - if (lambda < lambda2) { - if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; - } else { - if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; - } - } else { - if (lambda1 >= lambda0$1) { - if (lambda < lambda0$1) lambda0$1 = lambda; - if (lambda > lambda1) lambda1 = lambda; - } else { - if (lambda > lambda2) { - if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda; - } else { - if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda; - } - } - } - } else { - ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]); - } - if (phi < phi0) phi0 = phi; - if (phi > phi1) phi1 = phi; - p0 = p, lambda2 = lambda; -} - -function boundsLineStart() { - boundsStream$1.point = linePoint; -} - -function boundsLineEnd() { - range[0] = lambda0$1, range[1] = lambda1; - boundsStream$1.point = boundsPoint$1; - p0 = null; -} - -function boundsRingPoint(lambda, phi) { - if (p0) { - var delta = lambda - lambda2; - deltaSum.add(abs$1(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta); - } else { - lambda00$1 = lambda, phi00$1 = phi; - } - areaStream$1.point(lambda, phi); - linePoint(lambda, phi); -} - -function boundsRingStart() { - areaStream$1.lineStart(); -} - -function boundsRingEnd() { - boundsRingPoint(lambda00$1, phi00$1); - areaStream$1.lineEnd(); - if (abs$1(deltaSum) > epsilon$1) lambda0$1 = -(lambda1 = 180); - range[0] = lambda0$1, range[1] = lambda1; - p0 = null; -} - -// Finds the left-right distance between two longitudes. -// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want -// the distance between ±180° to be 360°. -function angle(lambda0, lambda1) { - return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1; -} - -function rangeCompare(a, b) { - return a[0] - b[0]; -} - -function rangeContains(range, x) { - return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x; -} - -function bounds(feature) { - var i, n, a, b, merged, deltaMax, delta; - - phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity); - ranges = []; - geoStream(feature, boundsStream$1); - - // First, sort ranges by their minimum longitudes. - if (n = ranges.length) { - ranges.sort(rangeCompare); - - // Then, merge any ranges that overlap. - for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) { - b = ranges[i]; - if (rangeContains(a, b[0]) || rangeContains(a, b[1])) { - if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1]; - if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0]; - } else { - merged.push(a = b); - } - } - - // Finally, find the largest gap between the merged ranges. - // The final bounding box will be the inverse of this gap. - for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) { - b = merged[i]; - if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1]; - } - } - - ranges = range = null; - - return lambda0$1 === Infinity || phi0 === Infinity - ? [[NaN, NaN], [NaN, NaN]] - : [[lambda0$1, phi0], [lambda1, phi1]]; -} - -var W0, W1, - X0$1, Y0$1, Z0$1, - X1$1, Y1$1, Z1$1, - X2$1, Y2$1, Z2$1, - lambda00, phi00, // first point - x0$4, y0$4, z0; // previous point - -var centroidStream$1 = { - sphere: noop$1, - point: centroidPoint$1, - lineStart: centroidLineStart$1, - lineEnd: centroidLineEnd$1, - polygonStart: function() { - centroidStream$1.lineStart = centroidRingStart$1; - centroidStream$1.lineEnd = centroidRingEnd$1; - }, - polygonEnd: function() { - centroidStream$1.lineStart = centroidLineStart$1; - centroidStream$1.lineEnd = centroidLineEnd$1; - } -}; - -// Arithmetic mean of Cartesian vectors. -function centroidPoint$1(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi); - centroidPointCartesian(cosPhi * cos$1(lambda), cosPhi * sin$1(lambda), sin$1(phi)); -} - -function centroidPointCartesian(x, y, z) { - ++W0; - X0$1 += (x - X0$1) / W0; - Y0$1 += (y - Y0$1) / W0; - Z0$1 += (z - Z0$1) / W0; -} - -function centroidLineStart$1() { - centroidStream$1.point = centroidLinePointFirst; -} - -function centroidLinePointFirst(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi); - x0$4 = cosPhi * cos$1(lambda); - y0$4 = cosPhi * sin$1(lambda); - z0 = sin$1(phi); - centroidStream$1.point = centroidLinePoint; - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroidLinePoint(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi), - x = cosPhi * cos$1(lambda), - y = cosPhi * sin$1(lambda), - z = sin$1(phi), - w = atan2$1(sqrt$2((w = y0$4 * z - z0 * y) * w + (w = z0 * x - x0$4 * z) * w + (w = x0$4 * y - y0$4 * x) * w), x0$4 * x + y0$4 * y + z0 * z); - W1 += w; - X1$1 += w * (x0$4 + (x0$4 = x)); - Y1$1 += w * (y0$4 + (y0$4 = y)); - Z1$1 += w * (z0 + (z0 = z)); - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroidLineEnd$1() { - centroidStream$1.point = centroidPoint$1; -} - -// See J. E. Brock, The Inertia Tensor for a Spherical Triangle, -// J. Applied Mechanics 42, 239 (1975). -function centroidRingStart$1() { - centroidStream$1.point = centroidRingPointFirst; -} - -function centroidRingEnd$1() { - centroidRingPoint(lambda00, phi00); - centroidStream$1.point = centroidPoint$1; -} - -function centroidRingPointFirst(lambda, phi) { - lambda00 = lambda, phi00 = phi; - lambda *= radians, phi *= radians; - centroidStream$1.point = centroidRingPoint; - var cosPhi = cos$1(phi); - x0$4 = cosPhi * cos$1(lambda); - y0$4 = cosPhi * sin$1(lambda); - z0 = sin$1(phi); - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroidRingPoint(lambda, phi) { - lambda *= radians, phi *= radians; - var cosPhi = cos$1(phi), - x = cosPhi * cos$1(lambda), - y = cosPhi * sin$1(lambda), - z = sin$1(phi), - cx = y0$4 * z - z0 * y, - cy = z0 * x - x0$4 * z, - cz = x0$4 * y - y0$4 * x, - m = hypot(cx, cy, cz), - w = asin$1(m), // line weight = angle - v = m && -w / m; // area weight multiplier - X2$1.add(v * cx); - Y2$1.add(v * cy); - Z2$1.add(v * cz); - W1 += w; - X1$1 += w * (x0$4 + (x0$4 = x)); - Y1$1 += w * (y0$4 + (y0$4 = y)); - Z1$1 += w * (z0 + (z0 = z)); - centroidPointCartesian(x0$4, y0$4, z0); -} - -function centroid$1(object) { - W0 = W1 = - X0$1 = Y0$1 = Z0$1 = - X1$1 = Y1$1 = Z1$1 = 0; - X2$1 = new Adder(); - Y2$1 = new Adder(); - Z2$1 = new Adder(); - geoStream(object, centroidStream$1); - - var x = +X2$1, - y = +Y2$1, - z = +Z2$1, - m = hypot(x, y, z); - - // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid. - if (m < epsilon2) { - x = X1$1, y = Y1$1, z = Z1$1; - // If the feature has zero length, fall back to arithmetic mean of point vectors. - if (W1 < epsilon$1) x = X0$1, y = Y0$1, z = Z0$1; - m = hypot(x, y, z); - // If the feature still has an undefined ccentroid, then return. - if (m < epsilon2) return [NaN, NaN]; - } - - return [atan2$1(y, x) * degrees, asin$1(z / m) * degrees]; -} - -function constant$3(x) { - return function() { - return x; - }; -} - -function compose(a, b) { - - function compose(x, y) { - return x = a(x, y), b(x[0], x[1]); - } - - if (a.invert && b.invert) compose.invert = function(x, y) { - return x = b.invert(x, y), x && a.invert(x[0], x[1]); - }; - - return compose; -} - -function rotationIdentity(lambda, phi) { - return [abs$1(lambda) > pi$1 ? lambda + Math.round(-lambda / tau$1) * tau$1 : lambda, phi]; -} - -rotationIdentity.invert = rotationIdentity; - -function rotateRadians(deltaLambda, deltaPhi, deltaGamma) { - return (deltaLambda %= tau$1) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) - : rotationLambda(deltaLambda)) - : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) - : rotationIdentity); -} - -function forwardRotationLambda(deltaLambda) { - return function(lambda, phi) { - return lambda += deltaLambda, [lambda > pi$1 ? lambda - tau$1 : lambda < -pi$1 ? lambda + tau$1 : lambda, phi]; - }; -} - -function rotationLambda(deltaLambda) { - var rotation = forwardRotationLambda(deltaLambda); - rotation.invert = forwardRotationLambda(-deltaLambda); - return rotation; -} - -function rotationPhiGamma(deltaPhi, deltaGamma) { - var cosDeltaPhi = cos$1(deltaPhi), - sinDeltaPhi = sin$1(deltaPhi), - cosDeltaGamma = cos$1(deltaGamma), - sinDeltaGamma = sin$1(deltaGamma); - - function rotation(lambda, phi) { - var cosPhi = cos$1(phi), - x = cos$1(lambda) * cosPhi, - y = sin$1(lambda) * cosPhi, - z = sin$1(phi), - k = z * cosDeltaPhi + x * sinDeltaPhi; - return [ - atan2$1(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), - asin$1(k * cosDeltaGamma + y * sinDeltaGamma) - ]; - } - - rotation.invert = function(lambda, phi) { - var cosPhi = cos$1(phi), - x = cos$1(lambda) * cosPhi, - y = sin$1(lambda) * cosPhi, - z = sin$1(phi), - k = z * cosDeltaGamma - y * sinDeltaGamma; - return [ - atan2$1(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), - asin$1(k * cosDeltaPhi - x * sinDeltaPhi) - ]; - }; - - return rotation; -} - -function rotation(rotate) { - rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0); - - function forward(coordinates) { - coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians); - return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; - } - - forward.invert = function(coordinates) { - coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians); - return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates; - }; - - return forward; -} - -// Generates a circle centered at [0°, 0°], with a given radius and precision. -function circleStream(stream, radius, delta, direction, t0, t1) { - if (!delta) return; - var cosRadius = cos$1(radius), - sinRadius = sin$1(radius), - step = direction * delta; - if (t0 == null) { - t0 = radius + direction * tau$1; - t1 = radius - step / 2; - } else { - t0 = circleRadius(cosRadius, t0); - t1 = circleRadius(cosRadius, t1); - if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1; - } - for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) { - point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]); - stream.point(point[0], point[1]); - } -} - -// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. -function circleRadius(cosRadius, point) { - point = cartesian(point), point[0] -= cosRadius; - cartesianNormalizeInPlace(point); - var radius = acos$1(-point[1]); - return ((-point[2] < 0 ? -radius : radius) + tau$1 - epsilon$1) % tau$1; -} - -function circle$2() { - var center = constant$3([0, 0]), - radius = constant$3(90), - precision = constant$3(6), - ring, - rotate, - stream = {point: point}; - - function point(x, y) { - ring.push(x = rotate(x, y)); - x[0] *= degrees, x[1] *= degrees; - } - - function circle() { - var c = center.apply(this, arguments), - r = radius.apply(this, arguments) * radians, - p = precision.apply(this, arguments) * radians; - ring = []; - rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert; - circleStream(stream, r, p, 1); - c = {type: "Polygon", coordinates: [ring]}; - ring = rotate = null; - return c; - } - - circle.center = function(_) { - return arguments.length ? (center = typeof _ === "function" ? _ : constant$3([+_[0], +_[1]]), circle) : center; - }; - - circle.radius = function(_) { - return arguments.length ? (radius = typeof _ === "function" ? _ : constant$3(+_), circle) : radius; - }; - - circle.precision = function(_) { - return arguments.length ? (precision = typeof _ === "function" ? _ : constant$3(+_), circle) : precision; - }; - - return circle; -} - -function clipBuffer() { - var lines = [], - line; - return { - point: function(x, y, m) { - line.push([x, y, m]); - }, - lineStart: function() { - lines.push(line = []); - }, - lineEnd: noop$1, - rejoin: function() { - if (lines.length > 1) lines.push(lines.pop().concat(lines.shift())); - }, - result: function() { - var result = lines; - lines = []; - line = null; - return result; - } - }; -} - -function pointEqual(a, b) { - return abs$1(a[0] - b[0]) < epsilon$1 && abs$1(a[1] - b[1]) < epsilon$1; -} - -function Intersection(point, points, other, entry) { - this.x = point; - this.z = points; - this.o = other; // another intersection - this.e = entry; // is an entry? - this.v = false; // visited - this.n = this.p = null; // next & previous -} - -// A generalized polygon clipping algorithm: given a polygon that has been cut -// into its visible line segments, and rejoins the segments by interpolating -// along the clip edge. -function clipRejoin(segments, compareIntersection, startInside, interpolate, stream) { - var subject = [], - clip = [], - i, - n; - - segments.forEach(function(segment) { - if ((n = segment.length - 1) <= 0) return; - var n, p0 = segment[0], p1 = segment[n], x; - - if (pointEqual(p0, p1)) { - if (!p0[2] && !p1[2]) { - stream.lineStart(); - for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]); - stream.lineEnd(); - return; - } - // handle degenerate cases by moving the point - p1[0] += 2 * epsilon$1; - } - - subject.push(x = new Intersection(p0, segment, null, true)); - clip.push(x.o = new Intersection(p0, null, x, false)); - subject.push(x = new Intersection(p1, segment, null, false)); - clip.push(x.o = new Intersection(p1, null, x, true)); - }); - - if (!subject.length) return; - - clip.sort(compareIntersection); - link$1(subject); - link$1(clip); - - for (i = 0, n = clip.length; i < n; ++i) { - clip[i].e = startInside = !startInside; - } - - var start = subject[0], - points, - point; - - while (1) { - // Find first unvisited intersection. - var current = start, - isSubject = true; - while (current.v) if ((current = current.n) === start) return; - points = current.z; - stream.lineStart(); - do { - current.v = current.o.v = true; - if (current.e) { - if (isSubject) { - for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]); - } else { - interpolate(current.x, current.n.x, 1, stream); - } - current = current.n; - } else { - if (isSubject) { - points = current.p.z; - for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]); - } else { - interpolate(current.x, current.p.x, -1, stream); - } - current = current.p; - } - current = current.o; - points = current.z; - isSubject = !isSubject; - } while (!current.v); - stream.lineEnd(); - } -} - -function link$1(array) { - if (!(n = array.length)) return; - var n, - i = 0, - a = array[0], - b; - while (++i < n) { - a.n = b = array[i]; - b.p = a; - a = b; - } - a.n = b = array[0]; - b.p = a; -} - -function longitude(point) { - if (abs$1(point[0]) <= pi$1) - return point[0]; - else - return sign$1(point[0]) * ((abs$1(point[0]) + pi$1) % tau$1 - pi$1); -} - -function polygonContains(polygon, point) { - var lambda = longitude(point), - phi = point[1], - sinPhi = sin$1(phi), - normal = [sin$1(lambda), -cos$1(lambda), 0], - angle = 0, - winding = 0; - - var sum = new Adder(); - - if (sinPhi === 1) phi = halfPi$1 + epsilon$1; - else if (sinPhi === -1) phi = -halfPi$1 - epsilon$1; - - for (var i = 0, n = polygon.length; i < n; ++i) { - if (!(m = (ring = polygon[i]).length)) continue; - var ring, - m, - point0 = ring[m - 1], - lambda0 = longitude(point0), - phi0 = point0[1] / 2 + quarterPi, - sinPhi0 = sin$1(phi0), - cosPhi0 = cos$1(phi0); - - for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) { - var point1 = ring[j], - lambda1 = longitude(point1), - phi1 = point1[1] / 2 + quarterPi, - sinPhi1 = sin$1(phi1), - cosPhi1 = cos$1(phi1), - delta = lambda1 - lambda0, - sign = delta >= 0 ? 1 : -1, - absDelta = sign * delta, - antimeridian = absDelta > pi$1, - k = sinPhi0 * sinPhi1; - - sum.add(atan2$1(k * sign * sin$1(absDelta), cosPhi0 * cosPhi1 + k * cos$1(absDelta))); - angle += antimeridian ? delta + sign * tau$1 : delta; - - // Are the longitudes either side of the point’s meridian (lambda), - // and are the latitudes smaller than the parallel (phi)? - if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) { - var arc = cartesianCross(cartesian(point0), cartesian(point1)); - cartesianNormalizeInPlace(arc); - var intersection = cartesianCross(normal, arc); - cartesianNormalizeInPlace(intersection); - var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin$1(intersection[2]); - if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) { - winding += antimeridian ^ delta >= 0 ? 1 : -1; - } - } - } - } - - // First, determine whether the South pole is inside or outside: - // - // It is inside if: - // * the polygon winds around it in a clockwise direction. - // * the polygon does not (cumulatively) wind around it, but has a negative - // (counter-clockwise) area. - // - // Second, count the (signed) number of times a segment crosses a lambda - // from the point to the South pole. If it is zero, then the point is the - // same side as the South pole. - - return (angle < -epsilon$1 || angle < epsilon$1 && sum < -epsilon2) ^ (winding & 1); -} - -function clip(pointVisible, clipLine, interpolate, start) { - return function(sink) { - var line = clipLine(sink), - ringBuffer = clipBuffer(), - ringSink = clipLine(ringBuffer), - polygonStarted = false, - polygon, - segments, - ring; - - var clip = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { - clip.point = pointRing; - clip.lineStart = ringStart; - clip.lineEnd = ringEnd; - segments = []; - polygon = []; - }, - polygonEnd: function() { - clip.point = point; - clip.lineStart = lineStart; - clip.lineEnd = lineEnd; - segments = merge(segments); - var startInside = polygonContains(polygon, start); - if (segments.length) { - if (!polygonStarted) sink.polygonStart(), polygonStarted = true; - clipRejoin(segments, compareIntersection, startInside, interpolate, sink); - } else if (startInside) { - if (!polygonStarted) sink.polygonStart(), polygonStarted = true; - sink.lineStart(); - interpolate(null, null, 1, sink); - sink.lineEnd(); - } - if (polygonStarted) sink.polygonEnd(), polygonStarted = false; - segments = polygon = null; - }, - sphere: function() { - sink.polygonStart(); - sink.lineStart(); - interpolate(null, null, 1, sink); - sink.lineEnd(); - sink.polygonEnd(); - } - }; - - function point(lambda, phi) { - if (pointVisible(lambda, phi)) sink.point(lambda, phi); - } - - function pointLine(lambda, phi) { - line.point(lambda, phi); - } - - function lineStart() { - clip.point = pointLine; - line.lineStart(); - } - - function lineEnd() { - clip.point = point; - line.lineEnd(); - } - - function pointRing(lambda, phi) { - ring.push([lambda, phi]); - ringSink.point(lambda, phi); - } - - function ringStart() { - ringSink.lineStart(); - ring = []; - } - - function ringEnd() { - pointRing(ring[0][0], ring[0][1]); - ringSink.lineEnd(); - - var clean = ringSink.clean(), - ringSegments = ringBuffer.result(), - i, n = ringSegments.length, m, - segment, - point; - - ring.pop(); - polygon.push(ring); - ring = null; - - if (!n) return; - - // No intersections. - if (clean & 1) { - segment = ringSegments[0]; - if ((m = segment.length - 1) > 0) { - if (!polygonStarted) sink.polygonStart(), polygonStarted = true; - sink.lineStart(); - for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]); - sink.lineEnd(); - } - return; - } - - // Rejoin connected segments. - // TODO reuse ringBuffer.rejoin()? - if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift())); - - segments.push(ringSegments.filter(validSegment)); - } - - return clip; - }; -} - -function validSegment(segment) { - return segment.length > 1; -} - -// Intersections are sorted along the clip edge. For both antimeridian cutting -// and circle clipping, the same comparison is used. -function compareIntersection(a, b) { - return ((a = a.x)[0] < 0 ? a[1] - halfPi$1 - epsilon$1 : halfPi$1 - a[1]) - - ((b = b.x)[0] < 0 ? b[1] - halfPi$1 - epsilon$1 : halfPi$1 - b[1]); -} - -var clipAntimeridian = clip( - function() { return true; }, - clipAntimeridianLine, - clipAntimeridianInterpolate, - [-pi$1, -halfPi$1] -); - -// Takes a line and cuts into visible segments. Return values: 0 - there were -// intersections or the line was empty; 1 - no intersections; 2 - there were -// intersections, and the first and last segments should be rejoined. -function clipAntimeridianLine(stream) { - var lambda0 = NaN, - phi0 = NaN, - sign0 = NaN, - clean; // no intersections - - return { - lineStart: function() { - stream.lineStart(); - clean = 1; - }, - point: function(lambda1, phi1) { - var sign1 = lambda1 > 0 ? pi$1 : -pi$1, - delta = abs$1(lambda1 - lambda0); - if (abs$1(delta - pi$1) < epsilon$1) { // line crosses a pole - stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi$1 : -halfPi$1); - stream.point(sign0, phi0); - stream.lineEnd(); - stream.lineStart(); - stream.point(sign1, phi0); - stream.point(lambda1, phi0); - clean = 0; - } else if (sign0 !== sign1 && delta >= pi$1) { // line crosses antimeridian - if (abs$1(lambda0 - sign0) < epsilon$1) lambda0 -= sign0 * epsilon$1; // handle degeneracies - if (abs$1(lambda1 - sign1) < epsilon$1) lambda1 -= sign1 * epsilon$1; - phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1); - stream.point(sign0, phi0); - stream.lineEnd(); - stream.lineStart(); - stream.point(sign1, phi0); - clean = 0; - } - stream.point(lambda0 = lambda1, phi0 = phi1); - sign0 = sign1; - }, - lineEnd: function() { - stream.lineEnd(); - lambda0 = phi0 = NaN; - }, - clean: function() { - return 2 - clean; // if intersections, rejoin first and last segments - } - }; -} - -function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) { - var cosPhi0, - cosPhi1, - sinLambda0Lambda1 = sin$1(lambda0 - lambda1); - return abs$1(sinLambda0Lambda1) > epsilon$1 - ? atan((sin$1(phi0) * (cosPhi1 = cos$1(phi1)) * sin$1(lambda1) - - sin$1(phi1) * (cosPhi0 = cos$1(phi0)) * sin$1(lambda0)) - / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) - : (phi0 + phi1) / 2; -} - -function clipAntimeridianInterpolate(from, to, direction, stream) { - var phi; - if (from == null) { - phi = direction * halfPi$1; - stream.point(-pi$1, phi); - stream.point(0, phi); - stream.point(pi$1, phi); - stream.point(pi$1, 0); - stream.point(pi$1, -phi); - stream.point(0, -phi); - stream.point(-pi$1, -phi); - stream.point(-pi$1, 0); - stream.point(-pi$1, phi); - } else if (abs$1(from[0] - to[0]) > epsilon$1) { - var lambda = from[0] < to[0] ? pi$1 : -pi$1; - phi = direction * lambda / 2; - stream.point(-lambda, phi); - stream.point(0, phi); - stream.point(lambda, phi); - } else { - stream.point(to[0], to[1]); - } -} - -function clipCircle(radius) { - var cr = cos$1(radius), - delta = 6 * radians, - smallRadius = cr > 0, - notHemisphere = abs$1(cr) > epsilon$1; // TODO optimise for this common case - - function interpolate(from, to, direction, stream) { - circleStream(stream, radius, delta, direction, from, to); - } - - function visible(lambda, phi) { - return cos$1(lambda) * cos$1(phi) > cr; - } - - // Takes a line and cuts into visible segments. Return values used for polygon - // clipping: 0 - there were intersections or the line was empty; 1 - no - // intersections 2 - there were intersections, and the first and last segments - // should be rejoined. - function clipLine(stream) { - var point0, // previous point - c0, // code for previous point - v0, // visibility of previous point - v00, // visibility of first point - clean; // no intersections - return { - lineStart: function() { - v00 = v0 = false; - clean = 1; - }, - point: function(lambda, phi) { - var point1 = [lambda, phi], - point2, - v = visible(lambda, phi), - c = smallRadius - ? v ? 0 : code(lambda, phi) - : v ? code(lambda + (lambda < 0 ? pi$1 : -pi$1), phi) : 0; - if (!point0 && (v00 = v0 = v)) stream.lineStart(); - if (v !== v0) { - point2 = intersect(point0, point1); - if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) - point1[2] = 1; - } - if (v !== v0) { - clean = 0; - if (v) { - // outside going in - stream.lineStart(); - point2 = intersect(point1, point0); - stream.point(point2[0], point2[1]); - } else { - // inside going out - point2 = intersect(point0, point1); - stream.point(point2[0], point2[1], 2); - stream.lineEnd(); - } - point0 = point2; - } else if (notHemisphere && point0 && smallRadius ^ v) { - var t; - // If the codes for two points are different, or are both zero, - // and there this segment intersects with the small circle. - if (!(c & c0) && (t = intersect(point1, point0, true))) { - clean = 0; - if (smallRadius) { - stream.lineStart(); - stream.point(t[0][0], t[0][1]); - stream.point(t[1][0], t[1][1]); - stream.lineEnd(); - } else { - stream.point(t[1][0], t[1][1]); - stream.lineEnd(); - stream.lineStart(); - stream.point(t[0][0], t[0][1], 3); - } - } - } - if (v && (!point0 || !pointEqual(point0, point1))) { - stream.point(point1[0], point1[1]); - } - point0 = point1, v0 = v, c0 = c; - }, - lineEnd: function() { - if (v0) stream.lineEnd(); - point0 = null; - }, - // Rejoin first and last segments if there were intersections and the first - // and last points were visible. - clean: function() { - return clean | ((v00 && v0) << 1); - } - }; - } - - // Intersects the great circle between a and b with the clip circle. - function intersect(a, b, two) { - var pa = cartesian(a), - pb = cartesian(b); - - // We have two planes, n1.p = d1 and n2.p = d2. - // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2). - var n1 = [1, 0, 0], // normal - n2 = cartesianCross(pa, pb), - n2n2 = cartesianDot(n2, n2), - n1n2 = n2[0], // cartesianDot(n1, n2), - determinant = n2n2 - n1n2 * n1n2; - - // Two polar points. - if (!determinant) return !two && a; - - var c1 = cr * n2n2 / determinant, - c2 = -cr * n1n2 / determinant, - n1xn2 = cartesianCross(n1, n2), - A = cartesianScale(n1, c1), - B = cartesianScale(n2, c2); - cartesianAddInPlace(A, B); - - // Solve |p(t)|^2 = 1. - var u = n1xn2, - w = cartesianDot(A, u), - uu = cartesianDot(u, u), - t2 = w * w - uu * (cartesianDot(A, A) - 1); - - if (t2 < 0) return; - - var t = sqrt$2(t2), - q = cartesianScale(u, (-w - t) / uu); - cartesianAddInPlace(q, A); - q = spherical(q); - - if (!two) return q; - - // Two intersection points. - var lambda0 = a[0], - lambda1 = b[0], - phi0 = a[1], - phi1 = b[1], - z; - - if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z; - - var delta = lambda1 - lambda0, - polar = abs$1(delta - pi$1) < epsilon$1, - meridian = polar || delta < epsilon$1; - - if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; - - // Check that the first point is between a and b. - if (meridian - ? polar - ? phi0 + phi1 > 0 ^ q[1] < (abs$1(q[0] - lambda0) < epsilon$1 ? phi0 : phi1) - : phi0 <= q[1] && q[1] <= phi1 - : delta > pi$1 ^ (lambda0 <= q[0] && q[0] <= lambda1)) { - var q1 = cartesianScale(u, (-w + t) / uu); - cartesianAddInPlace(q1, A); - return [q, spherical(q1)]; - } - } - - // Generates a 4-bit vector representing the location of a point relative to - // the small circle's bounding box. - function code(lambda, phi) { - var r = smallRadius ? radius : pi$1 - radius, - code = 0; - if (lambda < -r) code |= 1; // left - else if (lambda > r) code |= 2; // right - if (phi < -r) code |= 4; // below - else if (phi > r) code |= 8; // above - return code; - } - - return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi$1, radius - pi$1]); -} - -function clipLine(a, b, x0, y0, x1, y1) { - var ax = a[0], - ay = a[1], - bx = b[0], - by = b[1], - t0 = 0, - t1 = 1, - dx = bx - ax, - dy = by - ay, - r; - - r = x0 - ax; - if (!dx && r > 0) return; - r /= dx; - if (dx < 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } else if (dx > 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } - - r = x1 - ax; - if (!dx && r < 0) return; - r /= dx; - if (dx < 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } else if (dx > 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } - - r = y0 - ay; - if (!dy && r > 0) return; - r /= dy; - if (dy < 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } else if (dy > 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } - - r = y1 - ay; - if (!dy && r < 0) return; - r /= dy; - if (dy < 0) { - if (r > t1) return; - if (r > t0) t0 = r; - } else if (dy > 0) { - if (r < t0) return; - if (r < t1) t1 = r; - } - - if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy; - if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy; - return true; -} - -var clipMax = 1e9, clipMin = -clipMax; - -// TODO Use d3-polygon’s polygonContains here for the ring check? -// TODO Eliminate duplicate buffering in clipBuffer and polygon.push? - -function clipRectangle(x0, y0, x1, y1) { - - function visible(x, y) { - return x0 <= x && x <= x1 && y0 <= y && y <= y1; - } - - function interpolate(from, to, direction, stream) { - var a = 0, a1 = 0; - if (from == null - || (a = corner(from, direction)) !== (a1 = corner(to, direction)) - || comparePoint(from, to) < 0 ^ direction > 0) { - do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0); - while ((a = (a + direction + 4) % 4) !== a1); - } else { - stream.point(to[0], to[1]); - } - } - - function corner(p, direction) { - return abs$1(p[0] - x0) < epsilon$1 ? direction > 0 ? 0 : 3 - : abs$1(p[0] - x1) < epsilon$1 ? direction > 0 ? 2 : 1 - : abs$1(p[1] - y0) < epsilon$1 ? direction > 0 ? 1 : 0 - : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon - } - - function compareIntersection(a, b) { - return comparePoint(a.x, b.x); - } - - function comparePoint(a, b) { - var ca = corner(a, 1), - cb = corner(b, 1); - return ca !== cb ? ca - cb - : ca === 0 ? b[1] - a[1] - : ca === 1 ? a[0] - b[0] - : ca === 2 ? a[1] - b[1] - : b[0] - a[0]; - } - - return function(stream) { - var activeStream = stream, - bufferStream = clipBuffer(), - segments, - polygon, - ring, - x__, y__, v__, // first point - x_, y_, v_, // previous point - first, - clean; - - var clipStream = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: polygonStart, - polygonEnd: polygonEnd - }; - - function point(x, y) { - if (visible(x, y)) activeStream.point(x, y); - } - - function polygonInside() { - var winding = 0; - - for (var i = 0, n = polygon.length; i < n; ++i) { - for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) { - a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1]; - if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; } - else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; } - } - } - - return winding; - } - - // Buffer geometry within a polygon and then clip it en masse. - function polygonStart() { - activeStream = bufferStream, segments = [], polygon = [], clean = true; - } - - function polygonEnd() { - var startInside = polygonInside(), - cleanInside = clean && startInside, - visible = (segments = merge(segments)).length; - if (cleanInside || visible) { - stream.polygonStart(); - if (cleanInside) { - stream.lineStart(); - interpolate(null, null, 1, stream); - stream.lineEnd(); - } - if (visible) { - clipRejoin(segments, compareIntersection, startInside, interpolate, stream); - } - stream.polygonEnd(); - } - activeStream = stream, segments = polygon = ring = null; - } - - function lineStart() { - clipStream.point = linePoint; - if (polygon) polygon.push(ring = []); - first = true; - v_ = false; - x_ = y_ = NaN; - } - - // TODO rather than special-case polygons, simply handle them separately. - // Ideally, coincident intersection points should be jittered to avoid - // clipping issues. - function lineEnd() { - if (segments) { - linePoint(x__, y__); - if (v__ && v_) bufferStream.rejoin(); - segments.push(bufferStream.result()); - } - clipStream.point = point; - if (v_) activeStream.lineEnd(); - } - - function linePoint(x, y) { - var v = visible(x, y); - if (polygon) ring.push([x, y]); - if (first) { - x__ = x, y__ = y, v__ = v; - first = false; - if (v) { - activeStream.lineStart(); - activeStream.point(x, y); - } - } else { - if (v && v_) activeStream.point(x, y); - else { - var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], - b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))]; - if (clipLine(a, b, x0, y0, x1, y1)) { - if (!v_) { - activeStream.lineStart(); - activeStream.point(a[0], a[1]); - } - activeStream.point(b[0], b[1]); - if (!v) activeStream.lineEnd(); - clean = false; - } else if (v) { - activeStream.lineStart(); - activeStream.point(x, y); - clean = false; - } - } - } - x_ = x, y_ = y, v_ = v; - } - - return clipStream; - }; -} - -function extent() { - var x0 = 0, - y0 = 0, - x1 = 960, - y1 = 500, - cache, - cacheStream, - clip; - - return clip = { - stream: function(stream) { - return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream); - }, - extent: function(_) { - return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]]; - } - }; -} - -var lengthSum$1, - lambda0, - sinPhi0, - cosPhi0; - -var lengthStream$1 = { - sphere: noop$1, - point: noop$1, - lineStart: lengthLineStart, - lineEnd: noop$1, - polygonStart: noop$1, - polygonEnd: noop$1 -}; - -function lengthLineStart() { - lengthStream$1.point = lengthPointFirst$1; - lengthStream$1.lineEnd = lengthLineEnd; -} - -function lengthLineEnd() { - lengthStream$1.point = lengthStream$1.lineEnd = noop$1; -} - -function lengthPointFirst$1(lambda, phi) { - lambda *= radians, phi *= radians; - lambda0 = lambda, sinPhi0 = sin$1(phi), cosPhi0 = cos$1(phi); - lengthStream$1.point = lengthPoint$1; -} - -function lengthPoint$1(lambda, phi) { - lambda *= radians, phi *= radians; - var sinPhi = sin$1(phi), - cosPhi = cos$1(phi), - delta = abs$1(lambda - lambda0), - cosDelta = cos$1(delta), - sinDelta = sin$1(delta), - x = cosPhi * sinDelta, - y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta, - z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta; - lengthSum$1.add(atan2$1(sqrt$2(x * x + y * y), z)); - lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi; -} - -function length$1(object) { - lengthSum$1 = new Adder(); - geoStream(object, lengthStream$1); - return +lengthSum$1; -} - -var coordinates = [null, null], - object = {type: "LineString", coordinates: coordinates}; - -function distance(a, b) { - coordinates[0] = a; - coordinates[1] = b; - return length$1(object); -} - -var containsObjectType = { - Feature: function(object, point) { - return containsGeometry(object.geometry, point); - }, - FeatureCollection: function(object, point) { - var features = object.features, i = -1, n = features.length; - while (++i < n) if (containsGeometry(features[i].geometry, point)) return true; - return false; - } -}; - -var containsGeometryType = { - Sphere: function() { - return true; - }, - Point: function(object, point) { - return containsPoint(object.coordinates, point); - }, - MultiPoint: function(object, point) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) if (containsPoint(coordinates[i], point)) return true; - return false; - }, - LineString: function(object, point) { - return containsLine(object.coordinates, point); - }, - MultiLineString: function(object, point) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) if (containsLine(coordinates[i], point)) return true; - return false; - }, - Polygon: function(object, point) { - return containsPolygon(object.coordinates, point); - }, - MultiPolygon: function(object, point) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) if (containsPolygon(coordinates[i], point)) return true; - return false; - }, - GeometryCollection: function(object, point) { - var geometries = object.geometries, i = -1, n = geometries.length; - while (++i < n) if (containsGeometry(geometries[i], point)) return true; - return false; - } -}; - -function containsGeometry(geometry, point) { - return geometry && containsGeometryType.hasOwnProperty(geometry.type) - ? containsGeometryType[geometry.type](geometry, point) - : false; -} - -function containsPoint(coordinates, point) { - return distance(coordinates, point) === 0; -} - -function containsLine(coordinates, point) { - var ao, bo, ab; - for (var i = 0, n = coordinates.length; i < n; i++) { - bo = distance(coordinates[i], point); - if (bo === 0) return true; - if (i > 0) { - ab = distance(coordinates[i], coordinates[i - 1]); - if ( - ab > 0 && - ao <= ab && - bo <= ab && - (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab - ) - return true; - } - ao = bo; - } - return false; -} - -function containsPolygon(coordinates, point) { - return !!polygonContains(coordinates.map(ringRadians), pointRadians(point)); -} - -function ringRadians(ring) { - return ring = ring.map(pointRadians), ring.pop(), ring; -} - -function pointRadians(point) { - return [point[0] * radians, point[1] * radians]; -} - -function contains$1(object, point) { - return (object && containsObjectType.hasOwnProperty(object.type) - ? containsObjectType[object.type] - : containsGeometry)(object, point); -} - -function graticuleX(y0, y1, dy) { - var y = sequence(y0, y1 - epsilon$1, dy).concat(y1); - return function(x) { return y.map(function(y) { return [x, y]; }); }; -} - -function graticuleY(x0, x1, dx) { - var x = sequence(x0, x1 - epsilon$1, dx).concat(x1); - return function(y) { return x.map(function(x) { return [x, y]; }); }; -} - -function graticule() { - var x1, x0, X1, X0, - y1, y0, Y1, Y0, - dx = 10, dy = dx, DX = 90, DY = 360, - x, y, X, Y, - precision = 2.5; - - function graticule() { - return {type: "MultiLineString", coordinates: lines()}; - } - - function lines() { - return sequence(ceil(X0 / DX) * DX, X1, DX).map(X) - .concat(sequence(ceil(Y0 / DY) * DY, Y1, DY).map(Y)) - .concat(sequence(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs$1(x % DX) > epsilon$1; }).map(x)) - .concat(sequence(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs$1(y % DY) > epsilon$1; }).map(y)); - } - - graticule.lines = function() { - return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; }); - }; - - graticule.outline = function() { - return { - type: "Polygon", - coordinates: [ - X(X0).concat( - Y(Y1).slice(1), - X(X1).reverse().slice(1), - Y(Y0).reverse().slice(1)) - ] - }; - }; - - graticule.extent = function(_) { - if (!arguments.length) return graticule.extentMinor(); - return graticule.extentMajor(_).extentMinor(_); - }; - - graticule.extentMajor = function(_) { - if (!arguments.length) return [[X0, Y0], [X1, Y1]]; - X0 = +_[0][0], X1 = +_[1][0]; - Y0 = +_[0][1], Y1 = +_[1][1]; - if (X0 > X1) _ = X0, X0 = X1, X1 = _; - if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _; - return graticule.precision(precision); - }; - - graticule.extentMinor = function(_) { - if (!arguments.length) return [[x0, y0], [x1, y1]]; - x0 = +_[0][0], x1 = +_[1][0]; - y0 = +_[0][1], y1 = +_[1][1]; - if (x0 > x1) _ = x0, x0 = x1, x1 = _; - if (y0 > y1) _ = y0, y0 = y1, y1 = _; - return graticule.precision(precision); - }; - - graticule.step = function(_) { - if (!arguments.length) return graticule.stepMinor(); - return graticule.stepMajor(_).stepMinor(_); - }; - - graticule.stepMajor = function(_) { - if (!arguments.length) return [DX, DY]; - DX = +_[0], DY = +_[1]; - return graticule; - }; - - graticule.stepMinor = function(_) { - if (!arguments.length) return [dx, dy]; - dx = +_[0], dy = +_[1]; - return graticule; - }; - - graticule.precision = function(_) { - if (!arguments.length) return precision; - precision = +_; - x = graticuleX(y0, y1, 90); - y = graticuleY(x0, x1, precision); - X = graticuleX(Y0, Y1, 90); - Y = graticuleY(X0, X1, precision); - return graticule; - }; - - return graticule - .extentMajor([[-180, -90 + epsilon$1], [180, 90 - epsilon$1]]) - .extentMinor([[-180, -80 - epsilon$1], [180, 80 + epsilon$1]]); -} - -function graticule10() { - return graticule()(); -} - -function interpolate(a, b) { - var x0 = a[0] * radians, - y0 = a[1] * radians, - x1 = b[0] * radians, - y1 = b[1] * radians, - cy0 = cos$1(y0), - sy0 = sin$1(y0), - cy1 = cos$1(y1), - sy1 = sin$1(y1), - kx0 = cy0 * cos$1(x0), - ky0 = cy0 * sin$1(x0), - kx1 = cy1 * cos$1(x1), - ky1 = cy1 * sin$1(x1), - d = 2 * asin$1(sqrt$2(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))), - k = sin$1(d); - - var interpolate = d ? function(t) { - var B = sin$1(t *= d) / k, - A = sin$1(d - t) / k, - x = A * kx0 + B * kx1, - y = A * ky0 + B * ky1, - z = A * sy0 + B * sy1; - return [ - atan2$1(y, x) * degrees, - atan2$1(z, sqrt$2(x * x + y * y)) * degrees - ]; - } : function() { - return [x0 * degrees, y0 * degrees]; - }; - - interpolate.distance = d; - - return interpolate; -} - -var identity$5 = x => x; - -var areaSum = new Adder(), - areaRingSum = new Adder(), - x00$2, - y00$2, - x0$3, - y0$3; - -var areaStream = { - point: noop$1, - lineStart: noop$1, - lineEnd: noop$1, - polygonStart: function() { - areaStream.lineStart = areaRingStart; - areaStream.lineEnd = areaRingEnd; - }, - polygonEnd: function() { - areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop$1; - areaSum.add(abs$1(areaRingSum)); - areaRingSum = new Adder(); - }, - result: function() { - var area = areaSum / 2; - areaSum = new Adder(); - return area; - } -}; - -function areaRingStart() { - areaStream.point = areaPointFirst; -} - -function areaPointFirst(x, y) { - areaStream.point = areaPoint; - x00$2 = x0$3 = x, y00$2 = y0$3 = y; -} - -function areaPoint(x, y) { - areaRingSum.add(y0$3 * x - x0$3 * y); - x0$3 = x, y0$3 = y; -} - -function areaRingEnd() { - areaPoint(x00$2, y00$2); -} - -var x0$2 = Infinity, - y0$2 = x0$2, - x1 = -x0$2, - y1 = x1; - -var boundsStream = { - point: boundsPoint, - lineStart: noop$1, - lineEnd: noop$1, - polygonStart: noop$1, - polygonEnd: noop$1, - result: function() { - var bounds = [[x0$2, y0$2], [x1, y1]]; - x1 = y1 = -(y0$2 = x0$2 = Infinity); - return bounds; - } -}; - -function boundsPoint(x, y) { - if (x < x0$2) x0$2 = x; - if (x > x1) x1 = x; - if (y < y0$2) y0$2 = y; - if (y > y1) y1 = y; -} - -// TODO Enforce positive area for exterior, negative area for interior? - -var X0 = 0, - Y0 = 0, - Z0 = 0, - X1 = 0, - Y1 = 0, - Z1 = 0, - X2 = 0, - Y2 = 0, - Z2 = 0, - x00$1, - y00$1, - x0$1, - y0$1; - -var centroidStream = { - point: centroidPoint, - lineStart: centroidLineStart, - lineEnd: centroidLineEnd, - polygonStart: function() { - centroidStream.lineStart = centroidRingStart; - centroidStream.lineEnd = centroidRingEnd; - }, - polygonEnd: function() { - centroidStream.point = centroidPoint; - centroidStream.lineStart = centroidLineStart; - centroidStream.lineEnd = centroidLineEnd; - }, - result: function() { - var centroid = Z2 ? [X2 / Z2, Y2 / Z2] - : Z1 ? [X1 / Z1, Y1 / Z1] - : Z0 ? [X0 / Z0, Y0 / Z0] - : [NaN, NaN]; - X0 = Y0 = Z0 = - X1 = Y1 = Z1 = - X2 = Y2 = Z2 = 0; - return centroid; - } -}; - -function centroidPoint(x, y) { - X0 += x; - Y0 += y; - ++Z0; -} - -function centroidLineStart() { - centroidStream.point = centroidPointFirstLine; -} - -function centroidPointFirstLine(x, y) { - centroidStream.point = centroidPointLine; - centroidPoint(x0$1 = x, y0$1 = y); -} - -function centroidPointLine(x, y) { - var dx = x - x0$1, dy = y - y0$1, z = sqrt$2(dx * dx + dy * dy); - X1 += z * (x0$1 + x) / 2; - Y1 += z * (y0$1 + y) / 2; - Z1 += z; - centroidPoint(x0$1 = x, y0$1 = y); -} - -function centroidLineEnd() { - centroidStream.point = centroidPoint; -} - -function centroidRingStart() { - centroidStream.point = centroidPointFirstRing; -} - -function centroidRingEnd() { - centroidPointRing(x00$1, y00$1); -} - -function centroidPointFirstRing(x, y) { - centroidStream.point = centroidPointRing; - centroidPoint(x00$1 = x0$1 = x, y00$1 = y0$1 = y); -} - -function centroidPointRing(x, y) { - var dx = x - x0$1, - dy = y - y0$1, - z = sqrt$2(dx * dx + dy * dy); - - X1 += z * (x0$1 + x) / 2; - Y1 += z * (y0$1 + y) / 2; - Z1 += z; - - z = y0$1 * x - x0$1 * y; - X2 += z * (x0$1 + x); - Y2 += z * (y0$1 + y); - Z2 += z * 3; - centroidPoint(x0$1 = x, y0$1 = y); -} - -function PathContext(context) { - this._context = context; -} - -PathContext.prototype = { - _radius: 4.5, - pointRadius: function(_) { - return this._radius = _, this; - }, - polygonStart: function() { - this._line = 0; - }, - polygonEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line === 0) this._context.closePath(); - this._point = NaN; - }, - point: function(x, y) { - switch (this._point) { - case 0: { - this._context.moveTo(x, y); - this._point = 1; - break; - } - case 1: { - this._context.lineTo(x, y); - break; - } - default: { - this._context.moveTo(x + this._radius, y); - this._context.arc(x, y, this._radius, 0, tau$1); - break; - } - } - }, - result: noop$1 -}; - -var lengthSum = new Adder(), - lengthRing, - x00, - y00, - x0, - y0; - -var lengthStream = { - point: noop$1, - lineStart: function() { - lengthStream.point = lengthPointFirst; - }, - lineEnd: function() { - if (lengthRing) lengthPoint(x00, y00); - lengthStream.point = noop$1; - }, - polygonStart: function() { - lengthRing = true; - }, - polygonEnd: function() { - lengthRing = null; - }, - result: function() { - var length = +lengthSum; - lengthSum = new Adder(); - return length; - } -}; - -function lengthPointFirst(x, y) { - lengthStream.point = lengthPoint; - x00 = x0 = x, y00 = y0 = y; -} - -function lengthPoint(x, y) { - x0 -= x, y0 -= y; - lengthSum.add(sqrt$2(x0 * x0 + y0 * y0)); - x0 = x, y0 = y; -} - -function PathString() { - this._string = []; -} - -PathString.prototype = { - _radius: 4.5, - _circle: circle$1(4.5), - pointRadius: function(_) { - if ((_ = +_) !== this._radius) this._radius = _, this._circle = null; - return this; - }, - polygonStart: function() { - this._line = 0; - }, - polygonEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line === 0) this._string.push("Z"); - this._point = NaN; - }, - point: function(x, y) { - switch (this._point) { - case 0: { - this._string.push("M", x, ",", y); - this._point = 1; - break; - } - case 1: { - this._string.push("L", x, ",", y); - break; - } - default: { - if (this._circle == null) this._circle = circle$1(this._radius); - this._string.push("M", x, ",", y, this._circle); - break; - } - } - }, - result: function() { - if (this._string.length) { - var result = this._string.join(""); - this._string = []; - return result; - } else { - return null; - } - } -}; - -function circle$1(radius) { - return "m0," + radius - + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius - + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius - + "z"; -} - -function index$2(projection, context) { - var pointRadius = 4.5, - projectionStream, - contextStream; - - function path(object) { - if (object) { - if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments)); - geoStream(object, projectionStream(contextStream)); - } - return contextStream.result(); - } - - path.area = function(object) { - geoStream(object, projectionStream(areaStream)); - return areaStream.result(); - }; - - path.measure = function(object) { - geoStream(object, projectionStream(lengthStream)); - return lengthStream.result(); - }; - - path.bounds = function(object) { - geoStream(object, projectionStream(boundsStream)); - return boundsStream.result(); - }; - - path.centroid = function(object) { - geoStream(object, projectionStream(centroidStream)); - return centroidStream.result(); - }; - - path.projection = function(_) { - return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$5) : (projection = _).stream, path) : projection; - }; - - path.context = function(_) { - if (!arguments.length) return context; - contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _); - if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius); - return path; - }; - - path.pointRadius = function(_) { - if (!arguments.length) return pointRadius; - pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_); - return path; - }; - - return path.projection(projection).context(context); -} - -function transform$1(methods) { - return { - stream: transformer$3(methods) - }; -} - -function transformer$3(methods) { - return function(stream) { - var s = new TransformStream; - for (var key in methods) s[key] = methods[key]; - s.stream = stream; - return s; - }; -} - -function TransformStream() {} - -TransformStream.prototype = { - constructor: TransformStream, - point: function(x, y) { this.stream.point(x, y); }, - sphere: function() { this.stream.sphere(); }, - lineStart: function() { this.stream.lineStart(); }, - lineEnd: function() { this.stream.lineEnd(); }, - polygonStart: function() { this.stream.polygonStart(); }, - polygonEnd: function() { this.stream.polygonEnd(); } -}; - -function fit(projection, fitBounds, object) { - var clip = projection.clipExtent && projection.clipExtent(); - projection.scale(150).translate([0, 0]); - if (clip != null) projection.clipExtent(null); - geoStream(object, projection.stream(boundsStream)); - fitBounds(boundsStream.result()); - if (clip != null) projection.clipExtent(clip); - return projection; -} - -function fitExtent(projection, extent, object) { - return fit(projection, function(b) { - var w = extent[1][0] - extent[0][0], - h = extent[1][1] - extent[0][1], - k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), - x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, - y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2; - projection.scale(150 * k).translate([x, y]); - }, object); -} - -function fitSize(projection, size, object) { - return fitExtent(projection, [[0, 0], size], object); -} - -function fitWidth(projection, width, object) { - return fit(projection, function(b) { - var w = +width, - k = w / (b[1][0] - b[0][0]), - x = (w - k * (b[1][0] + b[0][0])) / 2, - y = -k * b[0][1]; - projection.scale(150 * k).translate([x, y]); - }, object); -} - -function fitHeight(projection, height, object) { - return fit(projection, function(b) { - var h = +height, - k = h / (b[1][1] - b[0][1]), - x = -k * b[0][0], - y = (h - k * (b[1][1] + b[0][1])) / 2; - projection.scale(150 * k).translate([x, y]); - }, object); -} - -var maxDepth = 16, // maximum depth of subdivision - cosMinDistance = cos$1(30 * radians); // cos(minimum angular distance) - -function resample(project, delta2) { - return +delta2 ? resample$1(project, delta2) : resampleNone(project); -} - -function resampleNone(project) { - return transformer$3({ - point: function(x, y) { - x = project(x, y); - this.stream.point(x[0], x[1]); - } - }); -} - -function resample$1(project, delta2) { - - function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) { - var dx = x1 - x0, - dy = y1 - y0, - d2 = dx * dx + dy * dy; - if (d2 > 4 * delta2 && depth--) { - var a = a0 + a1, - b = b0 + b1, - c = c0 + c1, - m = sqrt$2(a * a + b * b + c * c), - phi2 = asin$1(c /= m), - lambda2 = abs$1(abs$1(c) - 1) < epsilon$1 || abs$1(lambda0 - lambda1) < epsilon$1 ? (lambda0 + lambda1) / 2 : atan2$1(b, a), - p = project(lambda2, phi2), - x2 = p[0], - y2 = p[1], - dx2 = x2 - x0, - dy2 = y2 - y0, - dz = dy * dx2 - dx * dy2; - if (dz * dz / d2 > delta2 // perpendicular projected distance - || abs$1((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end - || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance - resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream); - stream.point(x2, y2); - resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream); - } - } - } - return function(stream) { - var lambda00, x00, y00, a00, b00, c00, // first point - lambda0, x0, y0, a0, b0, c0; // previous point - - var resampleStream = { - point: point, - lineStart: lineStart, - lineEnd: lineEnd, - polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; }, - polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; } - }; - - function point(x, y) { - x = project(x, y); - stream.point(x[0], x[1]); - } - - function lineStart() { - x0 = NaN; - resampleStream.point = linePoint; - stream.lineStart(); - } - - function linePoint(lambda, phi) { - var c = cartesian([lambda, phi]), p = project(lambda, phi); - resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream); - stream.point(x0, y0); - } - - function lineEnd() { - resampleStream.point = point; - stream.lineEnd(); - } - - function ringStart() { - lineStart(); - resampleStream.point = ringPoint; - resampleStream.lineEnd = ringEnd; - } - - function ringPoint(lambda, phi) { - linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0; - resampleStream.point = linePoint; - } - - function ringEnd() { - resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream); - resampleStream.lineEnd = lineEnd; - lineEnd(); - } - - return resampleStream; - }; -} - -var transformRadians = transformer$3({ - point: function(x, y) { - this.stream.point(x * radians, y * radians); - } -}); - -function transformRotate(rotate) { - return transformer$3({ - point: function(x, y) { - var r = rotate(x, y); - return this.stream.point(r[0], r[1]); - } - }); -} - -function scaleTranslate(k, dx, dy, sx, sy) { - function transform(x, y) { - x *= sx; y *= sy; - return [dx + k * x, dy - k * y]; - } - transform.invert = function(x, y) { - return [(x - dx) / k * sx, (dy - y) / k * sy]; - }; - return transform; -} - -function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) { - if (!alpha) return scaleTranslate(k, dx, dy, sx, sy); - var cosAlpha = cos$1(alpha), - sinAlpha = sin$1(alpha), - a = cosAlpha * k, - b = sinAlpha * k, - ai = cosAlpha / k, - bi = sinAlpha / k, - ci = (sinAlpha * dy - cosAlpha * dx) / k, - fi = (sinAlpha * dx + cosAlpha * dy) / k; - function transform(x, y) { - x *= sx; y *= sy; - return [a * x - b * y + dx, dy - b * x - a * y]; - } - transform.invert = function(x, y) { - return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)]; - }; - return transform; -} - -function projection(project) { - return projectionMutator(function() { return project; })(); -} - -function projectionMutator(projectAt) { - var project, - k = 150, // scale - x = 480, y = 250, // translate - lambda = 0, phi = 0, // center - deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate - alpha = 0, // post-rotate angle - sx = 1, // reflectX - sy = 1, // reflectX - theta = null, preclip = clipAntimeridian, // pre-clip angle - x0 = null, y0, x1, y1, postclip = identity$5, // post-clip extent - delta2 = 0.5, // precision - projectResample, - projectTransform, - projectRotateTransform, - cache, - cacheStream; - - function projection(point) { - return projectRotateTransform(point[0] * radians, point[1] * radians); - } - - function invert(point) { - point = projectRotateTransform.invert(point[0], point[1]); - return point && [point[0] * degrees, point[1] * degrees]; - } - - projection.stream = function(stream) { - return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream))))); - }; - - projection.preclip = function(_) { - return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip; - }; - - projection.postclip = function(_) { - return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; - }; - - projection.clipAngle = function(_) { - return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees; - }; - - projection.clipExtent = function(_) { - return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; - }; - - projection.scale = function(_) { - return arguments.length ? (k = +_, recenter()) : k; - }; - - projection.translate = function(_) { - return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y]; - }; - - projection.center = function(_) { - return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees]; - }; - - projection.rotate = function(_) { - return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees]; - }; - - projection.angle = function(_) { - return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees; - }; - - projection.reflectX = function(_) { - return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0; - }; - - projection.reflectY = function(_) { - return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0; - }; - - projection.precision = function(_) { - return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt$2(delta2); - }; - - projection.fitExtent = function(extent, object) { - return fitExtent(projection, extent, object); - }; - - projection.fitSize = function(size, object) { - return fitSize(projection, size, object); - }; - - projection.fitWidth = function(width, object) { - return fitWidth(projection, width, object); - }; - - projection.fitHeight = function(height, object) { - return fitHeight(projection, height, object); - }; - - function recenter() { - var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), - transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha); - rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma); - projectTransform = compose(project, transform); - projectRotateTransform = compose(rotate, projectTransform); - projectResample = resample(projectTransform, delta2); - return reset(); - } - - function reset() { - cache = cacheStream = null; - return projection; - } - - return function() { - project = projectAt.apply(this, arguments); - projection.invert = project.invert && invert; - return recenter(); - }; -} - -function conicProjection(projectAt) { - var phi0 = 0, - phi1 = pi$1 / 3, - m = projectionMutator(projectAt), - p = m(phi0, phi1); - - p.parallels = function(_) { - return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees]; - }; - - return p; -} - -function cylindricalEqualAreaRaw(phi0) { - var cosPhi0 = cos$1(phi0); - - function forward(lambda, phi) { - return [lambda * cosPhi0, sin$1(phi) / cosPhi0]; - } - - forward.invert = function(x, y) { - return [x / cosPhi0, asin$1(y * cosPhi0)]; - }; - - return forward; -} - -function conicEqualAreaRaw(y0, y1) { - var sy0 = sin$1(y0), n = (sy0 + sin$1(y1)) / 2; - - // Are the parallels symmetrical around the Equator? - if (abs$1(n) < epsilon$1) return cylindricalEqualAreaRaw(y0); - - var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt$2(c) / n; - - function project(x, y) { - var r = sqrt$2(c - 2 * n * sin$1(y)) / n; - return [r * sin$1(x *= n), r0 - r * cos$1(x)]; - } - - project.invert = function(x, y) { - var r0y = r0 - y, - l = atan2$1(x, abs$1(r0y)) * sign$1(r0y); - if (r0y * n < 0) - l -= pi$1 * sign$1(x) * sign$1(r0y); - return [l / n, asin$1((c - (x * x + r0y * r0y) * n * n) / (2 * n))]; - }; - - return project; -} - -function conicEqualArea() { - return conicProjection(conicEqualAreaRaw) - .scale(155.424) - .center([0, 33.6442]); -} - -function albers() { - return conicEqualArea() - .parallels([29.5, 45.5]) - .scale(1070) - .translate([480, 250]) - .rotate([96, 0]) - .center([-0.6, 38.7]); -} - -// The projections must have mutually exclusive clip regions on the sphere, -// as this will avoid emitting interleaving lines and polygons. -function multiplex(streams) { - var n = streams.length; - return { - point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); }, - sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); }, - lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); }, - lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); }, - polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); }, - polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); } - }; -} - -// A composite projection for the United States, configured by default for -// 960×500. The projection also works quite well at 960×600 if you change the -// scale to 1285 and adjust the translate accordingly. The set of standard -// parallels for each region comes from USGS, which is published here: -// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers -function albersUsa() { - var cache, - cacheStream, - lower48 = albers(), lower48Point, - alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338 - hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007 - point, pointStream = {point: function(x, y) { point = [x, y]; }}; - - function albersUsa(coordinates) { - var x = coordinates[0], y = coordinates[1]; - return point = null, - (lower48Point.point(x, y), point) - || (alaskaPoint.point(x, y), point) - || (hawaiiPoint.point(x, y), point); - } - - albersUsa.invert = function(coordinates) { - var k = lower48.scale(), - t = lower48.translate(), - x = (coordinates[0] - t[0]) / k, - y = (coordinates[1] - t[1]) / k; - return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska - : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii - : lower48).invert(coordinates); - }; - - albersUsa.stream = function(stream) { - return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]); - }; - - albersUsa.precision = function(_) { - if (!arguments.length) return lower48.precision(); - lower48.precision(_), alaska.precision(_), hawaii.precision(_); - return reset(); - }; - - albersUsa.scale = function(_) { - if (!arguments.length) return lower48.scale(); - lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_); - return albersUsa.translate(lower48.translate()); - }; - - albersUsa.translate = function(_) { - if (!arguments.length) return lower48.translate(); - var k = lower48.scale(), x = +_[0], y = +_[1]; - - lower48Point = lower48 - .translate(_) - .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]) - .stream(pointStream); - - alaskaPoint = alaska - .translate([x - 0.307 * k, y + 0.201 * k]) - .clipExtent([[x - 0.425 * k + epsilon$1, y + 0.120 * k + epsilon$1], [x - 0.214 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) - .stream(pointStream); - - hawaiiPoint = hawaii - .translate([x - 0.205 * k, y + 0.212 * k]) - .clipExtent([[x - 0.214 * k + epsilon$1, y + 0.166 * k + epsilon$1], [x - 0.115 * k - epsilon$1, y + 0.234 * k - epsilon$1]]) - .stream(pointStream); - - return reset(); - }; - - albersUsa.fitExtent = function(extent, object) { - return fitExtent(albersUsa, extent, object); - }; - - albersUsa.fitSize = function(size, object) { - return fitSize(albersUsa, size, object); - }; - - albersUsa.fitWidth = function(width, object) { - return fitWidth(albersUsa, width, object); - }; - - albersUsa.fitHeight = function(height, object) { - return fitHeight(albersUsa, height, object); - }; - - function reset() { - cache = cacheStream = null; - return albersUsa; - } - - return albersUsa.scale(1070); -} - -function azimuthalRaw(scale) { - return function(x, y) { - var cx = cos$1(x), - cy = cos$1(y), - k = scale(cx * cy); - if (k === Infinity) return [2, 0]; - return [ - k * cy * sin$1(x), - k * sin$1(y) - ]; - } -} - -function azimuthalInvert(angle) { - return function(x, y) { - var z = sqrt$2(x * x + y * y), - c = angle(z), - sc = sin$1(c), - cc = cos$1(c); - return [ - atan2$1(x * sc, z * cc), - asin$1(z && y * sc / z) - ]; - } -} - -var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) { - return sqrt$2(2 / (1 + cxcy)); -}); - -azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) { - return 2 * asin$1(z / 2); -}); - -function azimuthalEqualArea() { - return projection(azimuthalEqualAreaRaw) - .scale(124.75) - .clipAngle(180 - 1e-3); -} - -var azimuthalEquidistantRaw = azimuthalRaw(function(c) { - return (c = acos$1(c)) && c / sin$1(c); -}); - -azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) { - return z; -}); - -function azimuthalEquidistant() { - return projection(azimuthalEquidistantRaw) - .scale(79.4188) - .clipAngle(180 - 1e-3); -} - -function mercatorRaw(lambda, phi) { - return [lambda, log$1(tan((halfPi$1 + phi) / 2))]; -} - -mercatorRaw.invert = function(x, y) { - return [x, 2 * atan(exp(y)) - halfPi$1]; -}; - -function mercator() { - return mercatorProjection(mercatorRaw) - .scale(961 / tau$1); -} - -function mercatorProjection(project) { - var m = projection(project), - center = m.center, - scale = m.scale, - translate = m.translate, - clipExtent = m.clipExtent, - x0 = null, y0, x1, y1; // clip extent - - m.scale = function(_) { - return arguments.length ? (scale(_), reclip()) : scale(); - }; - - m.translate = function(_) { - return arguments.length ? (translate(_), reclip()) : translate(); - }; - - m.center = function(_) { - return arguments.length ? (center(_), reclip()) : center(); - }; - - m.clipExtent = function(_) { - return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]]; - }; - - function reclip() { - var k = pi$1 * scale(), - t = m(rotation(m.rotate()).invert([0, 0])); - return clipExtent(x0 == null - ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw - ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] - : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]); - } - - return reclip(); -} - -function tany(y) { - return tan((halfPi$1 + y) / 2); -} - -function conicConformalRaw(y0, y1) { - var cy0 = cos$1(y0), - n = y0 === y1 ? sin$1(y0) : log$1(cy0 / cos$1(y1)) / log$1(tany(y1) / tany(y0)), - f = cy0 * pow$1(tany(y0), n) / n; - - if (!n) return mercatorRaw; - - function project(x, y) { - if (f > 0) { if (y < -halfPi$1 + epsilon$1) y = -halfPi$1 + epsilon$1; } - else { if (y > halfPi$1 - epsilon$1) y = halfPi$1 - epsilon$1; } - var r = f / pow$1(tany(y), n); - return [r * sin$1(n * x), f - r * cos$1(n * x)]; - } - - project.invert = function(x, y) { - var fy = f - y, r = sign$1(n) * sqrt$2(x * x + fy * fy), - l = atan2$1(x, abs$1(fy)) * sign$1(fy); - if (fy * n < 0) - l -= pi$1 * sign$1(x) * sign$1(fy); - return [l / n, 2 * atan(pow$1(f / r, 1 / n)) - halfPi$1]; - }; - - return project; -} - -function conicConformal() { - return conicProjection(conicConformalRaw) - .scale(109.5) - .parallels([30, 30]); -} - -function equirectangularRaw(lambda, phi) { - return [lambda, phi]; -} - -equirectangularRaw.invert = equirectangularRaw; - -function equirectangular() { - return projection(equirectangularRaw) - .scale(152.63); -} - -function conicEquidistantRaw(y0, y1) { - var cy0 = cos$1(y0), - n = y0 === y1 ? sin$1(y0) : (cy0 - cos$1(y1)) / (y1 - y0), - g = cy0 / n + y0; - - if (abs$1(n) < epsilon$1) return equirectangularRaw; - - function project(x, y) { - var gy = g - y, nx = n * x; - return [gy * sin$1(nx), g - gy * cos$1(nx)]; - } - - project.invert = function(x, y) { - var gy = g - y, - l = atan2$1(x, abs$1(gy)) * sign$1(gy); - if (gy * n < 0) - l -= pi$1 * sign$1(x) * sign$1(gy); - return [l / n, g - sign$1(n) * sqrt$2(x * x + gy * gy)]; - }; - - return project; -} - -function conicEquidistant() { - return conicProjection(conicEquidistantRaw) - .scale(131.154) - .center([0, 13.9389]); -} - -var A1 = 1.340264, - A2 = -0.081106, - A3 = 0.000893, - A4 = 0.003796, - M = sqrt$2(3) / 2, - iterations = 12; - -function equalEarthRaw(lambda, phi) { - var l = asin$1(M * sin$1(phi)), l2 = l * l, l6 = l2 * l2 * l2; - return [ - lambda * cos$1(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), - l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - ]; -} - -equalEarthRaw.invert = function(x, y) { - var l = y, l2 = l * l, l6 = l2 * l2 * l2; - for (var i = 0, delta, fy, fpy; i < iterations; ++i) { - fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y; - fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2); - l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2; - if (abs$1(delta) < epsilon2) break; - } - return [ - M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos$1(l), - asin$1(sin$1(l) / M) - ]; -}; - -function equalEarth() { - return projection(equalEarthRaw) - .scale(177.158); -} - -function gnomonicRaw(x, y) { - var cy = cos$1(y), k = cos$1(x) * cy; - return [cy * sin$1(x) / k, sin$1(y) / k]; -} - -gnomonicRaw.invert = azimuthalInvert(atan); - -function gnomonic() { - return projection(gnomonicRaw) - .scale(144.049) - .clipAngle(60); -} - -function identity$4() { - var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect - alpha = 0, ca, sa, // angle - x0 = null, y0, x1, y1, // clip extent - kx = 1, ky = 1, - transform = transformer$3({ - point: function(x, y) { - var p = projection([x, y]); - this.stream.point(p[0], p[1]); - } - }), - postclip = identity$5, - cache, - cacheStream; - - function reset() { - kx = k * sx; - ky = k * sy; - cache = cacheStream = null; - return projection; - } - - function projection (p) { - var x = p[0] * kx, y = p[1] * ky; - if (alpha) { - var t = y * ca - x * sa; - x = x * ca + y * sa; - y = t; - } - return [x + tx, y + ty]; - } - projection.invert = function(p) { - var x = p[0] - tx, y = p[1] - ty; - if (alpha) { - var t = y * ca + x * sa; - x = x * ca - y * sa; - y = t; - } - return [x / kx, y / ky]; - }; - projection.stream = function(stream) { - return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream)); - }; - projection.postclip = function(_) { - return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip; - }; - projection.clipExtent = function(_) { - return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity$5) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]]; - }; - projection.scale = function(_) { - return arguments.length ? (k = +_, reset()) : k; - }; - projection.translate = function(_) { - return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty]; - }; - projection.angle = function(_) { - return arguments.length ? (alpha = _ % 360 * radians, sa = sin$1(alpha), ca = cos$1(alpha), reset()) : alpha * degrees; - }; - projection.reflectX = function(_) { - return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0; - }; - projection.reflectY = function(_) { - return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0; - }; - projection.fitExtent = function(extent, object) { - return fitExtent(projection, extent, object); - }; - projection.fitSize = function(size, object) { - return fitSize(projection, size, object); - }; - projection.fitWidth = function(width, object) { - return fitWidth(projection, width, object); - }; - projection.fitHeight = function(height, object) { - return fitHeight(projection, height, object); - }; - - return projection; -} - -function naturalEarth1Raw(lambda, phi) { - var phi2 = phi * phi, phi4 = phi2 * phi2; - return [ - lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), - phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - ]; -} - -naturalEarth1Raw.invert = function(x, y) { - var phi = y, i = 25, delta; - do { - var phi2 = phi * phi, phi4 = phi2 * phi2; - phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / - (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4))); - } while (abs$1(delta) > epsilon$1 && --i > 0); - return [ - x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), - phi - ]; -}; - -function naturalEarth1() { - return projection(naturalEarth1Raw) - .scale(175.295); -} - -function orthographicRaw(x, y) { - return [cos$1(y) * sin$1(x), sin$1(y)]; -} - -orthographicRaw.invert = azimuthalInvert(asin$1); - -function orthographic() { - return projection(orthographicRaw) - .scale(249.5) - .clipAngle(90 + epsilon$1); -} - -function stereographicRaw(x, y) { - var cy = cos$1(y), k = 1 + cos$1(x) * cy; - return [cy * sin$1(x) / k, sin$1(y) / k]; -} - -stereographicRaw.invert = azimuthalInvert(function(z) { - return 2 * atan(z); -}); - -function stereographic() { - return projection(stereographicRaw) - .scale(250) - .clipAngle(142); -} - -function transverseMercatorRaw(lambda, phi) { - return [log$1(tan((halfPi$1 + phi) / 2)), -lambda]; -} - -transverseMercatorRaw.invert = function(x, y) { - return [-y, 2 * atan(exp(x)) - halfPi$1]; -}; - -function transverseMercator() { - var m = mercatorProjection(transverseMercatorRaw), - center = m.center, - rotate = m.rotate; - - m.center = function(_) { - return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]); - }; - - m.rotate = function(_) { - return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]); - }; - - return rotate([0, 0, 90]) - .scale(159.155); -} - -function defaultSeparation$1(a, b) { - return a.parent === b.parent ? 1 : 2; -} - -function meanX(children) { - return children.reduce(meanXReduce, 0) / children.length; -} - -function meanXReduce(x, c) { - return x + c.x; -} - -function maxY(children) { - return 1 + children.reduce(maxYReduce, 0); -} - -function maxYReduce(y, c) { - return Math.max(y, c.y); -} - -function leafLeft(node) { - var children; - while (children = node.children) node = children[0]; - return node; -} - -function leafRight(node) { - var children; - while (children = node.children) node = children[children.length - 1]; - return node; -} - -function cluster() { - var separation = defaultSeparation$1, - dx = 1, - dy = 1, - nodeSize = false; - - function cluster(root) { - var previousNode, - x = 0; - - // First walk, computing the initial x & y values. - root.eachAfter(function(node) { - var children = node.children; - if (children) { - node.x = meanX(children); - node.y = maxY(children); - } else { - node.x = previousNode ? x += separation(node, previousNode) : 0; - node.y = 0; - previousNode = node; - } - }); - - var left = leafLeft(root), - right = leafRight(root), - x0 = left.x - separation(left, right) / 2, - x1 = right.x + separation(right, left) / 2; - - // Second walk, normalizing x & y to the desired size. - return root.eachAfter(nodeSize ? function(node) { - node.x = (node.x - root.x) * dx; - node.y = (root.y - node.y) * dy; - } : function(node) { - node.x = (node.x - x0) / (x1 - x0) * dx; - node.y = (1 - (root.y ? node.y / root.y : 1)) * dy; - }); - } - - cluster.separation = function(x) { - return arguments.length ? (separation = x, cluster) : separation; - }; - - cluster.size = function(x) { - return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]); - }; - - cluster.nodeSize = function(x) { - return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null); - }; - - return cluster; -} - -function count(node) { - var sum = 0, - children = node.children, - i = children && children.length; - if (!i) sum = 1; - else while (--i >= 0) sum += children[i].value; - node.value = sum; -} - -function node_count() { - return this.eachAfter(count); -} - -function node_each(callback, that) { - let index = -1; - for (const node of this) { - callback.call(that, node, ++index, this); - } - return this; -} - -function node_eachBefore(callback, that) { - var node = this, nodes = [node], children, i, index = -1; - while (node = nodes.pop()) { - callback.call(that, node, ++index, this); - if (children = node.children) { - for (i = children.length - 1; i >= 0; --i) { - nodes.push(children[i]); - } - } - } - return this; -} - -function node_eachAfter(callback, that) { - var node = this, nodes = [node], next = [], children, i, n, index = -1; - while (node = nodes.pop()) { - next.push(node); - if (children = node.children) { - for (i = 0, n = children.length; i < n; ++i) { - nodes.push(children[i]); - } - } - } - while (node = next.pop()) { - callback.call(that, node, ++index, this); - } - return this; -} - -function node_find(callback, that) { - let index = -1; - for (const node of this) { - if (callback.call(that, node, ++index, this)) { - return node; - } - } -} - -function node_sum(value) { - return this.eachAfter(function(node) { - var sum = +value(node.data) || 0, - children = node.children, - i = children && children.length; - while (--i >= 0) sum += children[i].value; - node.value = sum; - }); -} - -function node_sort(compare) { - return this.eachBefore(function(node) { - if (node.children) { - node.children.sort(compare); - } - }); -} - -function node_path(end) { - var start = this, - ancestor = leastCommonAncestor(start, end), - nodes = [start]; - while (start !== ancestor) { - start = start.parent; - nodes.push(start); - } - var k = nodes.length; - while (end !== ancestor) { - nodes.splice(k, 0, end); - end = end.parent; - } - return nodes; -} - -function leastCommonAncestor(a, b) { - if (a === b) return a; - var aNodes = a.ancestors(), - bNodes = b.ancestors(), - c = null; - a = aNodes.pop(); - b = bNodes.pop(); - while (a === b) { - c = a; - a = aNodes.pop(); - b = bNodes.pop(); - } - return c; -} - -function node_ancestors() { - var node = this, nodes = [node]; - while (node = node.parent) { - nodes.push(node); - } - return nodes; -} - -function node_descendants() { - return Array.from(this); -} - -function node_leaves() { - var leaves = []; - this.eachBefore(function(node) { - if (!node.children) { - leaves.push(node); - } - }); - return leaves; -} - -function node_links() { - var root = this, links = []; - root.each(function(node) { - if (node !== root) { // Don’t include the root’s parent, if any. - links.push({source: node.parent, target: node}); - } - }); - return links; -} - -function* node_iterator() { - var node = this, current, next = [node], children, i, n; - do { - current = next.reverse(), next = []; - while (node = current.pop()) { - yield node; - if (children = node.children) { - for (i = 0, n = children.length; i < n; ++i) { - next.push(children[i]); - } - } - } - } while (next.length); -} - -function hierarchy(data, children) { - if (data instanceof Map) { - data = [undefined, data]; - if (children === undefined) children = mapChildren; - } else if (children === undefined) { - children = objectChildren; - } - - var root = new Node$1(data), - node, - nodes = [root], - child, - childs, - i, - n; - - while (node = nodes.pop()) { - if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { - node.children = childs; - for (i = n - 1; i >= 0; --i) { - nodes.push(child = childs[i] = new Node$1(childs[i])); - child.parent = node; - child.depth = node.depth + 1; - } - } - } - - return root.eachBefore(computeHeight); -} - -function node_copy() { - return hierarchy(this).eachBefore(copyData); -} - -function objectChildren(d) { - return d.children; -} - -function mapChildren(d) { - return Array.isArray(d) ? d[1] : null; -} - -function copyData(node) { - if (node.data.value !== undefined) node.value = node.data.value; - node.data = node.data.data; -} - -function computeHeight(node) { - var height = 0; - do node.height = height; - while ((node = node.parent) && (node.height < ++height)); -} - -function Node$1(data) { - this.data = data; - this.depth = - this.height = 0; - this.parent = null; -} - -Node$1.prototype = hierarchy.prototype = { - constructor: Node$1, - count: node_count, - each: node_each, - eachAfter: node_eachAfter, - eachBefore: node_eachBefore, - find: node_find, - sum: node_sum, - sort: node_sort, - path: node_path, - ancestors: node_ancestors, - descendants: node_descendants, - leaves: node_leaves, - links: node_links, - copy: node_copy, - [Symbol.iterator]: node_iterator -}; - -function array$1(x) { - return typeof x === "object" && "length" in x - ? x // Array, TypedArray, NodeList, array-like - : Array.from(x); // Map, Set, iterable, string, or anything else -} - -function shuffle(array) { - var m = array.length, - t, - i; - - while (m) { - i = Math.random() * m-- | 0; - t = array[m]; - array[m] = array[i]; - array[i] = t; - } - - return array; -} - -function enclose(circles) { - var i = 0, n = (circles = shuffle(Array.from(circles))).length, B = [], p, e; - - while (i < n) { - p = circles[i]; - if (e && enclosesWeak(e, p)) ++i; - else e = encloseBasis(B = extendBasis(B, p)), i = 0; - } - - return e; -} - -function extendBasis(B, p) { - var i, j; - - if (enclosesWeakAll(p, B)) return [p]; - - // If we get here then B must have at least one element. - for (i = 0; i < B.length; ++i) { - if (enclosesNot(p, B[i]) - && enclosesWeakAll(encloseBasis2(B[i], p), B)) { - return [B[i], p]; - } - } - - // If we get here then B must have at least two elements. - for (i = 0; i < B.length - 1; ++i) { - for (j = i + 1; j < B.length; ++j) { - if (enclosesNot(encloseBasis2(B[i], B[j]), p) - && enclosesNot(encloseBasis2(B[i], p), B[j]) - && enclosesNot(encloseBasis2(B[j], p), B[i]) - && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) { - return [B[i], B[j], p]; - } - } - } - - // If we get here then something is very wrong. - throw new Error; -} - -function enclosesNot(a, b) { - var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y; - return dr < 0 || dr * dr < dx * dx + dy * dy; -} - -function enclosesWeak(a, b) { - var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} - -function enclosesWeakAll(a, B) { - for (var i = 0; i < B.length; ++i) { - if (!enclosesWeak(a, B[i])) { - return false; - } - } - return true; -} - -function encloseBasis(B) { - switch (B.length) { - case 1: return encloseBasis1(B[0]); - case 2: return encloseBasis2(B[0], B[1]); - case 3: return encloseBasis3(B[0], B[1], B[2]); - } -} - -function encloseBasis1(a) { - return { - x: a.x, - y: a.y, - r: a.r - }; -} - -function encloseBasis2(a, b) { - var x1 = a.x, y1 = a.y, r1 = a.r, - x2 = b.x, y2 = b.y, r2 = b.r, - x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, - l = Math.sqrt(x21 * x21 + y21 * y21); - return { - x: (x1 + x2 + x21 / l * r21) / 2, - y: (y1 + y2 + y21 / l * r21) / 2, - r: (l + r1 + r2) / 2 - }; -} - -function encloseBasis3(a, b, c) { - var x1 = a.x, y1 = a.y, r1 = a.r, - x2 = b.x, y2 = b.y, r2 = b.r, - x3 = c.x, y3 = c.y, r3 = c.r, - a2 = x1 - x2, - a3 = x1 - x3, - b2 = y1 - y2, - b3 = y1 - y3, - c2 = r2 - r1, - c3 = r3 - r1, - d1 = x1 * x1 + y1 * y1 - r1 * r1, - d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, - d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, - ab = a3 * b2 - a2 * b3, - xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, - xb = (b3 * c2 - b2 * c3) / ab, - ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, - yb = (a2 * c3 - a3 * c2) / ab, - A = xb * xb + yb * yb - 1, - B = 2 * (r1 + xa * xb + ya * yb), - C = xa * xa + ya * ya - r1 * r1, - r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); - return { - x: x1 + xa + xb * r, - y: y1 + ya + yb * r, - r: r - }; -} - -function place(b, a, c) { - var dx = b.x - a.x, x, a2, - dy = b.y - a.y, y, b2, - d2 = dx * dx + dy * dy; - if (d2) { - a2 = a.r + c.r, a2 *= a2; - b2 = b.r + c.r, b2 *= b2; - if (a2 > b2) { - x = (d2 + b2 - a2) / (2 * d2); - y = Math.sqrt(Math.max(0, b2 / d2 - x * x)); - c.x = b.x - x * dx - y * dy; - c.y = b.y - x * dy + y * dx; - } else { - x = (d2 + a2 - b2) / (2 * d2); - y = Math.sqrt(Math.max(0, a2 / d2 - x * x)); - c.x = a.x + x * dx - y * dy; - c.y = a.y + x * dy + y * dx; - } - } else { - c.x = a.x + c.r; - c.y = a.y; - } -} - -function intersects(a, b) { - var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y; - return dr > 0 && dr * dr > dx * dx + dy * dy; -} - -function score(node) { - var a = node._, - b = node.next._, - ab = a.r + b.r, - dx = (a.x * b.r + b.x * a.r) / ab, - dy = (a.y * b.r + b.y * a.r) / ab; - return dx * dx + dy * dy; -} - -function Node(circle) { - this._ = circle; - this.next = null; - this.previous = null; -} - -function packEnclose(circles) { - if (!(n = (circles = array$1(circles)).length)) return 0; - - var a, b, c, n, aa, ca, i, j, k, sj, sk; - - // Place the first circle. - a = circles[0], a.x = 0, a.y = 0; - if (!(n > 1)) return a.r; - - // Place the second circle. - b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0; - if (!(n > 2)) return a.r + b.r; - - // Place the third circle. - place(b, a, c = circles[2]); - - // Initialize the front-chain using the first three circles a, b and c. - a = new Node(a), b = new Node(b), c = new Node(c); - a.next = c.previous = b; - b.next = a.previous = c; - c.next = b.previous = a; - - // Attempt to place each remaining circle… - pack: for (i = 3; i < n; ++i) { - place(a._, b._, c = circles[i]), c = new Node(c); - - // Find the closest intersecting circle on the front-chain, if any. - // “Closeness” is determined by linear distance along the front-chain. - // “Ahead” or “behind” is likewise determined by linear distance. - j = b.next, k = a.previous, sj = b._.r, sk = a._.r; - do { - if (sj <= sk) { - if (intersects(j._, c._)) { - b = j, a.next = b, b.previous = a, --i; - continue pack; - } - sj += j._.r, j = j.next; - } else { - if (intersects(k._, c._)) { - a = k, a.next = b, b.previous = a, --i; - continue pack; - } - sk += k._.r, k = k.previous; - } - } while (j !== k.next); - - // Success! Insert the new circle c between a and b. - c.previous = a, c.next = b, a.next = b.previous = b = c; - - // Compute the new closest circle pair to the centroid. - aa = score(a); - while ((c = c.next) !== b) { - if ((ca = score(c)) < aa) { - a = c, aa = ca; - } - } - b = a.next; - } - - // Compute the enclosing circle of the front chain. - a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a); - - // Translate the circles to put the enclosing circle around the origin. - for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y; - - return c.r; -} - -function siblings(circles) { - packEnclose(circles); - return circles; -} - -function optional(f) { - return f == null ? null : required(f); -} - -function required(f) { - if (typeof f !== "function") throw new Error; - return f; -} - -function constantZero() { - return 0; -} - -function constant$2(x) { - return function() { - return x; - }; -} - -function defaultRadius(d) { - return Math.sqrt(d.value); -} - -function index$1() { - var radius = null, - dx = 1, - dy = 1, - padding = constantZero; - - function pack(root) { - root.x = dx / 2, root.y = dy / 2; - if (radius) { - root.eachBefore(radiusLeaf(radius)) - .eachAfter(packChildren(padding, 0.5)) - .eachBefore(translateChild(1)); - } else { - root.eachBefore(radiusLeaf(defaultRadius)) - .eachAfter(packChildren(constantZero, 1)) - .eachAfter(packChildren(padding, root.r / Math.min(dx, dy))) - .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); - } - return root; - } - - pack.radius = function(x) { - return arguments.length ? (radius = optional(x), pack) : radius; - }; - - pack.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy]; - }; - - pack.padding = function(x) { - return arguments.length ? (padding = typeof x === "function" ? x : constant$2(+x), pack) : padding; - }; - - return pack; -} - -function radiusLeaf(radius) { - return function(node) { - if (!node.children) { - node.r = Math.max(0, +radius(node) || 0); - } - }; -} - -function packChildren(padding, k) { - return function(node) { - if (children = node.children) { - var children, - i, - n = children.length, - r = padding(node) * k || 0, - e; - - if (r) for (i = 0; i < n; ++i) children[i].r += r; - e = packEnclose(children); - if (r) for (i = 0; i < n; ++i) children[i].r -= r; - node.r = e + r; - } - }; -} - -function translateChild(k) { - return function(node) { - var parent = node.parent; - node.r *= k; - if (parent) { - node.x = parent.x + k * node.x; - node.y = parent.y + k * node.y; - } - }; -} - -function roundNode(node) { - node.x0 = Math.round(node.x0); - node.y0 = Math.round(node.y0); - node.x1 = Math.round(node.x1); - node.y1 = Math.round(node.y1); -} - -function treemapDice(parent, x0, y0, x1, y1) { - var nodes = parent.children, - node, - i = -1, - n = nodes.length, - k = parent.value && (x1 - x0) / parent.value; - - while (++i < n) { - node = nodes[i], node.y0 = y0, node.y1 = y1; - node.x0 = x0, node.x1 = x0 += node.value * k; - } -} - -function partition() { - var dx = 1, - dy = 1, - padding = 0, - round = false; - - function partition(root) { - var n = root.height + 1; - root.x0 = - root.y0 = padding; - root.x1 = dx; - root.y1 = dy / n; - root.eachBefore(positionNode(dy, n)); - if (round) root.eachBefore(roundNode); - return root; - } - - function positionNode(dy, n) { - return function(node) { - if (node.children) { - treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n); - } - var x0 = node.x0, - y0 = node.y0, - x1 = node.x1 - padding, - y1 = node.y1 - padding; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - }; - } - - partition.round = function(x) { - return arguments.length ? (round = !!x, partition) : round; - }; - - partition.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy]; - }; - - partition.padding = function(x) { - return arguments.length ? (padding = +x, partition) : padding; - }; - - return partition; -} - -var preroot = {depth: -1}, - ambiguous = {}; - -function defaultId(d) { - return d.id; -} - -function defaultParentId(d) { - return d.parentId; -} - -function stratify() { - var id = defaultId, - parentId = defaultParentId; - - function stratify(data) { - var nodes = Array.from(data), - n = nodes.length, - d, - i, - root, - parent, - node, - nodeId, - nodeKey, - nodeByKey = new Map; - - for (i = 0; i < n; ++i) { - d = nodes[i], node = nodes[i] = new Node$1(d); - if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { - nodeKey = node.id = nodeId; - nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); - } - if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) { - node.parent = nodeId; - } - } - - for (i = 0; i < n; ++i) { - node = nodes[i]; - if (nodeId = node.parent) { - parent = nodeByKey.get(nodeId); - if (!parent) throw new Error("missing: " + nodeId); - if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); - if (parent.children) parent.children.push(node); - else parent.children = [node]; - node.parent = parent; - } else { - if (root) throw new Error("multiple roots"); - root = node; - } - } - - if (!root) throw new Error("no root"); - root.parent = preroot; - root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight); - root.parent = null; - if (n > 0) throw new Error("cycle"); - - return root; - } - - stratify.id = function(x) { - return arguments.length ? (id = required(x), stratify) : id; - }; - - stratify.parentId = function(x) { - return arguments.length ? (parentId = required(x), stratify) : parentId; - }; - - return stratify; -} - -function defaultSeparation(a, b) { - return a.parent === b.parent ? 1 : 2; -} - -// function radialSeparation(a, b) { -// return (a.parent === b.parent ? 1 : 2) / a.depth; -// } - -// This function is used to traverse the left contour of a subtree (or -// subforest). It returns the successor of v on this contour. This successor is -// either given by the leftmost child of v or by the thread of v. The function -// returns null if and only if v is on the highest level of its subtree. -function nextLeft(v) { - var children = v.children; - return children ? children[0] : v.t; -} - -// This function works analogously to nextLeft. -function nextRight(v) { - var children = v.children; - return children ? children[children.length - 1] : v.t; -} - -// Shifts the current subtree rooted at w+. This is done by increasing -// prelim(w+) and mod(w+) by shift. -function moveSubtree(wm, wp, shift) { - var change = shift / (wp.i - wm.i); - wp.c -= change; - wp.s += shift; - wm.c += change; - wp.z += shift; - wp.m += shift; -} - -// All other shifts, applied to the smaller subtrees between w- and w+, are -// performed by this function. To prepare the shifts, we have to adjust -// change(w+), shift(w+), and change(w-). -function executeShifts(v) { - var shift = 0, - change = 0, - children = v.children, - i = children.length, - w; - while (--i >= 0) { - w = children[i]; - w.z += shift; - w.m += shift; - shift += w.s + (change += w.c); - } -} - -// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise, -// returns the specified (default) ancestor. -function nextAncestor(vim, v, ancestor) { - return vim.a.parent === v.parent ? vim.a : ancestor; -} - -function TreeNode(node, i) { - this._ = node; - this.parent = null; - this.children = null; - this.A = null; // default ancestor - this.a = this; // ancestor - this.z = 0; // prelim - this.m = 0; // mod - this.c = 0; // change - this.s = 0; // shift - this.t = null; // thread - this.i = i; // number -} - -TreeNode.prototype = Object.create(Node$1.prototype); - -function treeRoot(root) { - var tree = new TreeNode(root, 0), - node, - nodes = [tree], - child, - children, - i, - n; - - while (node = nodes.pop()) { - if (children = node._.children) { - node.children = new Array(n = children.length); - for (i = n - 1; i >= 0; --i) { - nodes.push(child = node.children[i] = new TreeNode(children[i], i)); - child.parent = node; - } - } - } - - (tree.parent = new TreeNode(null, 0)).children = [tree]; - return tree; -} - -// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm -function tree() { - var separation = defaultSeparation, - dx = 1, - dy = 1, - nodeSize = null; - - function tree(root) { - var t = treeRoot(root); - - // Compute the layout using Buchheim et al.’s algorithm. - t.eachAfter(firstWalk), t.parent.m = -t.z; - t.eachBefore(secondWalk); - - // If a fixed node size is specified, scale x and y. - if (nodeSize) root.eachBefore(sizeNode); - - // If a fixed tree size is specified, scale x and y based on the extent. - // Compute the left-most, right-most, and depth-most nodes for extents. - else { - var left = root, - right = root, - bottom = root; - root.eachBefore(function(node) { - if (node.x < left.x) left = node; - if (node.x > right.x) right = node; - if (node.depth > bottom.depth) bottom = node; - }); - var s = left === right ? 1 : separation(left, right) / 2, - tx = s - left.x, - kx = dx / (right.x + s + tx), - ky = dy / (bottom.depth || 1); - root.eachBefore(function(node) { - node.x = (node.x + tx) * kx; - node.y = node.depth * ky; - }); - } - - return root; - } - - // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is - // applied recursively to the children of v, as well as the function - // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the - // node v is placed to the midpoint of its outermost children. - function firstWalk(v) { - var children = v.children, - siblings = v.parent.children, - w = v.i ? siblings[v.i - 1] : null; - if (children) { - executeShifts(v); - var midpoint = (children[0].z + children[children.length - 1].z) / 2; - if (w) { - v.z = w.z + separation(v._, w._); - v.m = v.z - midpoint; - } else { - v.z = midpoint; - } - } else if (w) { - v.z = w.z + separation(v._, w._); - } - v.parent.A = apportion(v, w, v.parent.A || siblings[0]); - } - - // Computes all real x-coordinates by summing up the modifiers recursively. - function secondWalk(v) { - v._.x = v.z + v.parent.m; - v.m += v.parent.m; - } - - // The core of the algorithm. Here, a new subtree is combined with the - // previous subtrees. Threads are used to traverse the inside and outside - // contours of the left and right subtree up to the highest common level. The - // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the - // superscript o means outside and i means inside, the subscript - means left - // subtree and + means right subtree. For summing up the modifiers along the - // contour, we use respective variables si+, si-, so-, and so+. Whenever two - // nodes of the inside contours conflict, we compute the left one of the - // greatest uncommon ancestors using the function ANCESTOR and call MOVE - // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees. - // Finally, we add a new thread (if necessary). - function apportion(v, w, ancestor) { - if (w) { - var vip = v, - vop = v, - vim = w, - vom = vip.parent.children[0], - sip = vip.m, - sop = vop.m, - sim = vim.m, - som = vom.m, - shift; - while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { - vom = nextLeft(vom); - vop = nextRight(vop); - vop.a = v; - shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); - if (shift > 0) { - moveSubtree(nextAncestor(vim, v, ancestor), v, shift); - sip += shift; - sop += shift; - } - sim += vim.m; - sip += vip.m; - som += vom.m; - sop += vop.m; - } - if (vim && !nextRight(vop)) { - vop.t = vim; - vop.m += sim - sop; - } - if (vip && !nextLeft(vom)) { - vom.t = vip; - vom.m += sip - som; - ancestor = v; - } - } - return ancestor; - } - - function sizeNode(node) { - node.x *= dx; - node.y = node.depth * dy; - } - - tree.separation = function(x) { - return arguments.length ? (separation = x, tree) : separation; - }; - - tree.size = function(x) { - return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]); - }; - - tree.nodeSize = function(x) { - return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null); - }; - - return tree; -} - -function treemapSlice(parent, x0, y0, x1, y1) { - var nodes = parent.children, - node, - i = -1, - n = nodes.length, - k = parent.value && (y1 - y0) / parent.value; - - while (++i < n) { - node = nodes[i], node.x0 = x0, node.x1 = x1; - node.y0 = y0, node.y1 = y0 += node.value * k; - } -} - -var phi = (1 + Math.sqrt(5)) / 2; - -function squarifyRatio(ratio, parent, x0, y0, x1, y1) { - var rows = [], - nodes = parent.children, - row, - nodeValue, - i0 = 0, - i1 = 0, - n = nodes.length, - dx, dy, - value = parent.value, - sumValue, - minValue, - maxValue, - newRatio, - minRatio, - alpha, - beta; - - while (i0 < n) { - dx = x1 - x0, dy = y1 - y0; - - // Find the next non-empty node. - do sumValue = nodes[i1++].value; while (!sumValue && i1 < n); - minValue = maxValue = sumValue; - alpha = Math.max(dy / dx, dx / dy) / (value * ratio); - beta = sumValue * sumValue * alpha; - minRatio = Math.max(maxValue / beta, beta / minValue); - - // Keep adding nodes while the aspect ratio maintains or improves. - for (; i1 < n; ++i1) { - sumValue += nodeValue = nodes[i1].value; - if (nodeValue < minValue) minValue = nodeValue; - if (nodeValue > maxValue) maxValue = nodeValue; - beta = sumValue * sumValue * alpha; - newRatio = Math.max(maxValue / beta, beta / minValue); - if (newRatio > minRatio) { sumValue -= nodeValue; break; } - minRatio = newRatio; - } - - // Position and record the row orientation. - rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)}); - if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); - else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); - value -= sumValue, i0 = i1; - } - - return rows; -} - -var squarify = (function custom(ratio) { - - function squarify(parent, x0, y0, x1, y1) { - squarifyRatio(ratio, parent, x0, y0, x1, y1); - } - - squarify.ratio = function(x) { - return custom((x = +x) > 1 ? x : 1); - }; - - return squarify; -})(phi); - -function index() { - var tile = squarify, - round = false, - dx = 1, - dy = 1, - paddingStack = [0], - paddingInner = constantZero, - paddingTop = constantZero, - paddingRight = constantZero, - paddingBottom = constantZero, - paddingLeft = constantZero; - - function treemap(root) { - root.x0 = - root.y0 = 0; - root.x1 = dx; - root.y1 = dy; - root.eachBefore(positionNode); - paddingStack = [0]; - if (round) root.eachBefore(roundNode); - return root; - } - - function positionNode(node) { - var p = paddingStack[node.depth], - x0 = node.x0 + p, - y0 = node.y0 + p, - x1 = node.x1 - p, - y1 = node.y1 - p; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - node.x0 = x0; - node.y0 = y0; - node.x1 = x1; - node.y1 = y1; - if (node.children) { - p = paddingStack[node.depth + 1] = paddingInner(node) / 2; - x0 += paddingLeft(node) - p; - y0 += paddingTop(node) - p; - x1 -= paddingRight(node) - p; - y1 -= paddingBottom(node) - p; - if (x1 < x0) x0 = x1 = (x0 + x1) / 2; - if (y1 < y0) y0 = y1 = (y0 + y1) / 2; - tile(node, x0, y0, x1, y1); - } - } - - treemap.round = function(x) { - return arguments.length ? (round = !!x, treemap) : round; - }; - - treemap.size = function(x) { - return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; - }; - - treemap.tile = function(x) { - return arguments.length ? (tile = required(x), treemap) : tile; - }; - - treemap.padding = function(x) { - return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); - }; - - treemap.paddingInner = function(x) { - return arguments.length ? (paddingInner = typeof x === "function" ? x : constant$2(+x), treemap) : paddingInner; - }; - - treemap.paddingOuter = function(x) { - return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); - }; - - treemap.paddingTop = function(x) { - return arguments.length ? (paddingTop = typeof x === "function" ? x : constant$2(+x), treemap) : paddingTop; - }; - - treemap.paddingRight = function(x) { - return arguments.length ? (paddingRight = typeof x === "function" ? x : constant$2(+x), treemap) : paddingRight; - }; - - treemap.paddingBottom = function(x) { - return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant$2(+x), treemap) : paddingBottom; - }; - - treemap.paddingLeft = function(x) { - return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant$2(+x), treemap) : paddingLeft; - }; - - return treemap; -} - -function binary(parent, x0, y0, x1, y1) { - var nodes = parent.children, - i, n = nodes.length, - sum, sums = new Array(n + 1); - - for (sums[0] = sum = i = 0; i < n; ++i) { - sums[i + 1] = sum += nodes[i].value; - } - - partition(0, n, parent.value, x0, y0, x1, y1); - - function partition(i, j, value, x0, y0, x1, y1) { - if (i >= j - 1) { - var node = nodes[i]; - node.x0 = x0, node.y0 = y0; - node.x1 = x1, node.y1 = y1; - return; - } - - var valueOffset = sums[i], - valueTarget = (value / 2) + valueOffset, - k = i + 1, - hi = j - 1; - - while (k < hi) { - var mid = k + hi >>> 1; - if (sums[mid] < valueTarget) k = mid + 1; - else hi = mid; - } - - if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k; - - var valueLeft = sums[k] - valueOffset, - valueRight = value - valueLeft; - - if ((x1 - x0) > (y1 - y0)) { - var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1; - partition(i, k, valueLeft, x0, y0, xk, y1); - partition(k, j, valueRight, xk, y0, x1, y1); - } else { - var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1; - partition(i, k, valueLeft, x0, y0, x1, yk); - partition(k, j, valueRight, x0, yk, x1, y1); - } - } -} - -function sliceDice(parent, x0, y0, x1, y1) { - (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1); -} - -var resquarify = (function custom(ratio) { - - function resquarify(parent, x0, y0, x1, y1) { - if ((rows = parent._squarify) && (rows.ratio === ratio)) { - var rows, - row, - nodes, - i, - j = -1, - n, - m = rows.length, - value = parent.value; - - while (++j < m) { - row = rows[j], nodes = row.children; - for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; - if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1); - else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); - value -= row.value; - } - } else { - parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); - rows.ratio = ratio; - } - } - - resquarify.ratio = function(x) { - return custom((x = +x) > 1 ? x : 1); - }; - - return resquarify; -})(phi); - -function area$1(polygon) { - var i = -1, - n = polygon.length, - a, - b = polygon[n - 1], - area = 0; - - while (++i < n) { - a = b; - b = polygon[i]; - area += a[1] * b[0] - a[0] * b[1]; - } - - return area / 2; -} - -function centroid(polygon) { - var i = -1, - n = polygon.length, - x = 0, - y = 0, - a, - b = polygon[n - 1], - c, - k = 0; - - while (++i < n) { - a = b; - b = polygon[i]; - k += c = a[0] * b[1] - b[0] * a[1]; - x += (a[0] + b[0]) * c; - y += (a[1] + b[1]) * c; - } - - return k *= 3, [x / k, y / k]; -} - -// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of -// the 3D cross product in a quadrant I Cartesian coordinate system (+x is -// right, +y is up). Returns a positive value if ABC is counter-clockwise, -// negative if clockwise, and zero if the points are collinear. -function cross$1(a, b, c) { - return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]); -} - -function lexicographicOrder(a, b) { - return a[0] - b[0] || a[1] - b[1]; -} - -// Computes the upper convex hull per the monotone chain algorithm. -// Assumes points.length >= 3, is sorted by x, unique in y. -// Returns an array of indices into points in left-to-right order. -function computeUpperHullIndexes(points) { - const n = points.length, - indexes = [0, 1]; - let size = 2, i; - - for (i = 2; i < n; ++i) { - while (size > 1 && cross$1(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size; - indexes[size++] = i; - } - - return indexes.slice(0, size); // remove popped points -} - -function hull(points) { - if ((n = points.length) < 3) return null; - - var i, - n, - sortedPoints = new Array(n), - flippedPoints = new Array(n); - - for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i]; - sortedPoints.sort(lexicographicOrder); - for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]]; - - var upperIndexes = computeUpperHullIndexes(sortedPoints), - lowerIndexes = computeUpperHullIndexes(flippedPoints); - - // Construct the hull polygon, removing possible duplicate endpoints. - var skipLeft = lowerIndexes[0] === upperIndexes[0], - skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1], - hull = []; - - // Add upper hull in right-to-l order. - // Then add lower hull in left-to-right order. - for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]); - for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]); - - return hull; -} - -function contains(polygon, point) { - var n = polygon.length, - p = polygon[n - 1], - x = point[0], y = point[1], - x0 = p[0], y0 = p[1], - x1, y1, - inside = false; - - for (var i = 0; i < n; ++i) { - p = polygon[i], x1 = p[0], y1 = p[1]; - if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside; - x0 = x1, y0 = y1; - } - - return inside; -} - -function length(polygon) { - var i = -1, - n = polygon.length, - b = polygon[n - 1], - xa, - ya, - xb = b[0], - yb = b[1], - perimeter = 0; - - while (++i < n) { - xa = xb; - ya = yb; - b = polygon[i]; - xb = b[0]; - yb = b[1]; - xa -= xb; - ya -= yb; - perimeter += Math.hypot(xa, ya); - } - - return perimeter; -} - -var defaultSource = Math.random; - -var uniform = (function sourceRandomUniform(source) { - function randomUniform(min, max) { - min = min == null ? 0 : +min; - max = max == null ? 1 : +max; - if (arguments.length === 1) max = min, min = 0; - else max -= min; - return function() { - return source() * max + min; - }; - } - - randomUniform.source = sourceRandomUniform; - - return randomUniform; -})(defaultSource); - -var int = (function sourceRandomInt(source) { - function randomInt(min, max) { - if (arguments.length < 2) max = min, min = 0; - min = Math.floor(min); - max = Math.floor(max) - min; - return function() { - return Math.floor(source() * max + min); - }; - } - - randomInt.source = sourceRandomInt; - - return randomInt; -})(defaultSource); - -var normal = (function sourceRandomNormal(source) { - function randomNormal(mu, sigma) { - var x, r; - mu = mu == null ? 0 : +mu; - sigma = sigma == null ? 1 : +sigma; - return function() { - var y; - - // If available, use the second previously-generated uniform random. - if (x != null) y = x, x = null; - - // Otherwise, generate a new x and y. - else do { - x = source() * 2 - 1; - y = source() * 2 - 1; - r = x * x + y * y; - } while (!r || r > 1); - - return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r); - }; - } - - randomNormal.source = sourceRandomNormal; - - return randomNormal; -})(defaultSource); - -var logNormal = (function sourceRandomLogNormal(source) { - var N = normal.source(source); - - function randomLogNormal() { - var randomNormal = N.apply(this, arguments); - return function() { - return Math.exp(randomNormal()); - }; - } - - randomLogNormal.source = sourceRandomLogNormal; - - return randomLogNormal; -})(defaultSource); - -var irwinHall = (function sourceRandomIrwinHall(source) { - function randomIrwinHall(n) { - if ((n = +n) <= 0) return () => 0; - return function() { - for (var sum = 0, i = n; i > 1; --i) sum += source(); - return sum + i * source(); - }; - } - - randomIrwinHall.source = sourceRandomIrwinHall; - - return randomIrwinHall; -})(defaultSource); - -var bates = (function sourceRandomBates(source) { - var I = irwinHall.source(source); - - function randomBates(n) { - // use limiting distribution at n === 0 - if ((n = +n) === 0) return source; - var randomIrwinHall = I(n); - return function() { - return randomIrwinHall() / n; - }; - } - - randomBates.source = sourceRandomBates; - - return randomBates; -})(defaultSource); - -var exponential = (function sourceRandomExponential(source) { - function randomExponential(lambda) { - return function() { - return -Math.log1p(-source()) / lambda; - }; - } - - randomExponential.source = sourceRandomExponential; - - return randomExponential; -})(defaultSource); - -var pareto = (function sourceRandomPareto(source) { - function randomPareto(alpha) { - if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha"); - alpha = 1 / -alpha; - return function() { - return Math.pow(1 - source(), alpha); - }; - } - - randomPareto.source = sourceRandomPareto; - - return randomPareto; -})(defaultSource); - -var bernoulli = (function sourceRandomBernoulli(source) { - function randomBernoulli(p) { - if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); - return function() { - return Math.floor(source() + p); - }; - } - - randomBernoulli.source = sourceRandomBernoulli; - - return randomBernoulli; -})(defaultSource); - -var geometric = (function sourceRandomGeometric(source) { - function randomGeometric(p) { - if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p"); - if (p === 0) return () => Infinity; - if (p === 1) return () => 1; - p = Math.log1p(-p); - return function() { - return 1 + Math.floor(Math.log1p(-source()) / p); - }; - } - - randomGeometric.source = sourceRandomGeometric; - - return randomGeometric; -})(defaultSource); - -var gamma = (function sourceRandomGamma(source) { - var randomNormal = normal.source(source)(); - - function randomGamma(k, theta) { - if ((k = +k) < 0) throw new RangeError("invalid k"); - // degenerate distribution if k === 0 - if (k === 0) return () => 0; - theta = theta == null ? 1 : +theta; - // exponential distribution if k === 1 - if (k === 1) return () => -Math.log1p(-source()) * theta; - - var d = (k < 1 ? k + 1 : k) - 1 / 3, - c = 1 / (3 * Math.sqrt(d)), - multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1; - return function() { - do { - do { - var x = randomNormal(), - v = 1 + c * x; - } while (v <= 0); - v *= v * v; - var u = 1 - source(); - } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v))); - return d * v * multiplier() * theta; - }; - } - - randomGamma.source = sourceRandomGamma; - - return randomGamma; -})(defaultSource); - -var beta = (function sourceRandomBeta(source) { - var G = gamma.source(source); - - function randomBeta(alpha, beta) { - var X = G(alpha), - Y = G(beta); - return function() { - var x = X(); - return x === 0 ? 0 : x / (x + Y()); - }; - } - - randomBeta.source = sourceRandomBeta; - - return randomBeta; -})(defaultSource); - -var binomial = (function sourceRandomBinomial(source) { - var G = geometric.source(source), - B = beta.source(source); - - function randomBinomial(n, p) { - n = +n; - if ((p = +p) >= 1) return () => n; - if (p <= 0) return () => 0; - return function() { - var acc = 0, nn = n, pp = p; - while (nn * pp > 16 && nn * (1 - pp) > 16) { - var i = Math.floor((nn + 1) * pp), - y = B(i, nn - i + 1)(); - if (y <= pp) { - acc += i; - nn -= i; - pp = (pp - y) / (1 - y); - } else { - nn = i - 1; - pp /= y; - } - } - var sign = pp < 0.5, - pFinal = sign ? pp : 1 - pp, - g = G(pFinal); - for (var s = g(), k = 0; s <= nn; ++k) s += g(); - return acc + (sign ? k : nn - k); - }; - } - - randomBinomial.source = sourceRandomBinomial; - - return randomBinomial; -})(defaultSource); - -var weibull = (function sourceRandomWeibull(source) { - function randomWeibull(k, a, b) { - var outerFunc; - if ((k = +k) === 0) { - outerFunc = x => -Math.log(x); - } else { - k = 1 / k; - outerFunc = x => Math.pow(x, k); - } - a = a == null ? 0 : +a; - b = b == null ? 1 : +b; - return function() { - return a + b * outerFunc(-Math.log1p(-source())); - }; - } - - randomWeibull.source = sourceRandomWeibull; - - return randomWeibull; -})(defaultSource); - -var cauchy = (function sourceRandomCauchy(source) { - function randomCauchy(a, b) { - a = a == null ? 0 : +a; - b = b == null ? 1 : +b; - return function() { - return a + b * Math.tan(Math.PI * source()); - }; - } - - randomCauchy.source = sourceRandomCauchy; - - return randomCauchy; -})(defaultSource); - -var logistic = (function sourceRandomLogistic(source) { - function randomLogistic(a, b) { - a = a == null ? 0 : +a; - b = b == null ? 1 : +b; - return function() { - var u = source(); - return a + b * Math.log(u / (1 - u)); - }; - } - - randomLogistic.source = sourceRandomLogistic; - - return randomLogistic; -})(defaultSource); - -var poisson = (function sourceRandomPoisson(source) { - var G = gamma.source(source), - B = binomial.source(source); - - function randomPoisson(lambda) { - return function() { - var acc = 0, l = lambda; - while (l > 16) { - var n = Math.floor(0.875 * l), - t = G(n)(); - if (t > l) return acc + B(n - 1, l / t)(); - acc += n; - l -= t; - } - for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source()); - return acc + k; - }; - } - - randomPoisson.source = sourceRandomPoisson; - - return randomPoisson; -})(defaultSource); - -// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use -const mul = 0x19660D; -const inc = 0x3C6EF35F; -const eps = 1 / 0x100000000; - -function lcg(seed = Math.random()) { - let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0; - return () => (state = mul * state + inc | 0, eps * (state >>> 0)); -} - -function initRange(domain, range) { - switch (arguments.length) { - case 0: break; - case 1: this.range(domain); break; - default: this.range(range).domain(domain); break; - } - return this; -} - -function initInterpolator(domain, interpolator) { - switch (arguments.length) { - case 0: break; - case 1: { - if (typeof domain === "function") this.interpolator(domain); - else this.range(domain); - break; - } - default: { - this.domain(domain); - if (typeof interpolator === "function") this.interpolator(interpolator); - else this.range(interpolator); - break; - } - } - return this; -} - -const implicit = Symbol("implicit"); - -function ordinal() { - var index = new Map(), - domain = [], - range = [], - unknown = implicit; - - function scale(d) { - var key = d + "", i = index.get(key); - if (!i) { - if (unknown !== implicit) return unknown; - index.set(key, i = domain.push(d)); - } - return range[(i - 1) % range.length]; - } - - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = [], index = new Map(); - for (const value of _) { - const key = value + ""; - if (index.has(key)) continue; - index.set(key, domain.push(value)); - } - return scale; - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), scale) : range.slice(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return ordinal(domain, range).unknown(unknown); - }; - - initRange.apply(scale, arguments); - - return scale; -} - -function band() { - var scale = ordinal().unknown(undefined), - domain = scale.domain, - ordinalRange = scale.range, - r0 = 0, - r1 = 1, - step, - bandwidth, - round = false, - paddingInner = 0, - paddingOuter = 0, - align = 0.5; - - delete scale.unknown; - - function rescale() { - var n = domain().length, - reverse = r1 < r0, - start = reverse ? r1 : r0, - stop = reverse ? r0 : r1; - step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); - if (round) step = Math.floor(step); - start += (stop - start - step * (n - paddingInner)) * align; - bandwidth = step * (1 - paddingInner); - if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); - var values = sequence(n).map(function(i) { return start + step * i; }); - return ordinalRange(reverse ? values.reverse() : values); - } - - scale.domain = function(_) { - return arguments.length ? (domain(_), rescale()) : domain(); - }; - - scale.range = function(_) { - return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1]; - }; - - scale.rangeRound = function(_) { - return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); - }; - - scale.bandwidth = function() { - return bandwidth; - }; - - scale.step = function() { - return step; - }; - - scale.round = function(_) { - return arguments.length ? (round = !!_, rescale()) : round; - }; - - scale.padding = function(_) { - return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; - }; - - scale.paddingInner = function(_) { - return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; - }; - - scale.paddingOuter = function(_) { - return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; - }; - - scale.align = function(_) { - return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; - }; - - scale.copy = function() { - return band(domain(), [r0, r1]) - .round(round) - .paddingInner(paddingInner) - .paddingOuter(paddingOuter) - .align(align); - }; - - return initRange.apply(rescale(), arguments); -} - -function pointish(scale) { - var copy = scale.copy; - - scale.padding = scale.paddingOuter; - delete scale.paddingInner; - delete scale.paddingOuter; - - scale.copy = function() { - return pointish(copy()); - }; - - return scale; -} - -function point$4() { - return pointish(band.apply(null, arguments).paddingInner(1)); -} - -function constants(x) { - return function() { - return x; - }; -} - -function number$1(x) { - return +x; -} - -var unit = [0, 1]; - -function identity$3(x) { - return x; -} - -function normalize(a, b) { - return (b -= (a = +a)) - ? function(x) { return (x - a) / b; } - : constants(isNaN(b) ? NaN : 0.5); -} - -function clamper(a, b) { - var t; - if (a > b) t = a, a = b, b = t; - return function(x) { return Math.max(a, Math.min(b, x)); }; -} - -// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1]. -// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b]. -function bimap(domain, range, interpolate) { - var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; - if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0); - else d0 = normalize(d0, d1), r0 = interpolate(r0, r1); - return function(x) { return r0(d0(x)); }; -} - -function polymap(domain, range, interpolate) { - var j = Math.min(domain.length, range.length) - 1, - d = new Array(j), - r = new Array(j), - i = -1; - - // Reverse descending domains. - if (domain[j] < domain[0]) { - domain = domain.slice().reverse(); - range = range.slice().reverse(); - } - - while (++i < j) { - d[i] = normalize(domain[i], domain[i + 1]); - r[i] = interpolate(range[i], range[i + 1]); - } - - return function(x) { - var i = bisectRight(domain, x, 1, j) - 1; - return r[i](d[i](x)); - }; -} - -function copy$1(source, target) { - return target - .domain(source.domain()) - .range(source.range()) - .interpolate(source.interpolate()) - .clamp(source.clamp()) - .unknown(source.unknown()); -} - -function transformer$2() { - var domain = unit, - range = unit, - interpolate = interpolate$2, - transform, - untransform, - unknown, - clamp = identity$3, - piecewise, - output, - input; - - function rescale() { - var n = Math.min(domain.length, range.length); - if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]); - piecewise = n > 2 ? polymap : bimap; - output = input = null; - return scale; - } - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); - } - - scale.invert = function(y) { - return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y))); - }; - - scale.domain = function(_) { - return arguments.length ? (domain = Array.from(_, number$1), rescale()) : domain.slice(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); - }; - - scale.rangeRound = function(_) { - return range = Array.from(_), interpolate = interpolateRound, rescale(); - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3; - }; - - scale.interpolate = function(_) { - return arguments.length ? (interpolate = _, rescale()) : interpolate; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t, u) { - transform = t, untransform = u; - return rescale(); - }; -} - -function continuous() { - return transformer$2()(identity$3, identity$3); -} - -function tickFormat(start, stop, count, specifier) { - var step = tickStep(start, stop, count), - precision; - specifier = formatSpecifier(specifier == null ? ",f" : specifier); - switch (specifier.type) { - case "s": { - var value = Math.max(Math.abs(start), Math.abs(stop)); - if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision; - return exports.formatPrefix(specifier, value); - } - case "": - case "e": - case "g": - case "p": - case "r": { - if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e"); - break; - } - case "f": - case "%": { - if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === "%") * 2; - break; - } - } - return exports.format(specifier); -} - -function linearish(scale) { - var domain = scale.domain; - - scale.ticks = function(count) { - var d = domain(); - return ticks(d[0], d[d.length - 1], count == null ? 10 : count); - }; - - scale.tickFormat = function(count, specifier) { - var d = domain(); - return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); - }; - - scale.nice = function(count) { - if (count == null) count = 10; - - var d = domain(); - var i0 = 0; - var i1 = d.length - 1; - var start = d[i0]; - var stop = d[i1]; - var prestep; - var step; - var maxIter = 10; - - if (stop < start) { - step = start, start = stop, stop = step; - step = i0, i0 = i1, i1 = step; - } - - while (maxIter-- > 0) { - step = tickIncrement(start, stop, count); - if (step === prestep) { - d[i0] = start; - d[i1] = stop; - return domain(d); - } else if (step > 0) { - start = Math.floor(start / step) * step; - stop = Math.ceil(stop / step) * step; - } else if (step < 0) { - start = Math.ceil(start * step) / step; - stop = Math.floor(stop * step) / step; - } else { - break; - } - prestep = step; - } - - return scale; - }; - - return scale; -} - -function linear() { - var scale = continuous(); - - scale.copy = function() { - return copy$1(scale, linear()); - }; - - initRange.apply(scale, arguments); - - return linearish(scale); -} - -function identity$2(domain) { - var unknown; - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : x; - } - - scale.invert = scale; - - scale.domain = scale.range = function(_) { - return arguments.length ? (domain = Array.from(_, number$1), scale) : domain.slice(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return identity$2(domain).unknown(unknown); - }; - - domain = arguments.length ? Array.from(domain, number$1) : [0, 1]; - - return linearish(scale); -} - -function nice(domain, interval) { - domain = domain.slice(); - - var i0 = 0, - i1 = domain.length - 1, - x0 = domain[i0], - x1 = domain[i1], - t; - - if (x1 < x0) { - t = i0, i0 = i1, i1 = t; - t = x0, x0 = x1, x1 = t; - } - - domain[i0] = interval.floor(x0); - domain[i1] = interval.ceil(x1); - return domain; -} - -function transformLog(x) { - return Math.log(x); -} - -function transformExp(x) { - return Math.exp(x); -} - -function transformLogn(x) { - return -Math.log(-x); -} - -function transformExpn(x) { - return -Math.exp(-x); -} - -function pow10(x) { - return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; -} - -function powp(base) { - return base === 10 ? pow10 - : base === Math.E ? Math.exp - : function(x) { return Math.pow(base, x); }; -} - -function logp(base) { - return base === Math.E ? Math.log - : base === 10 && Math.log10 - || base === 2 && Math.log2 - || (base = Math.log(base), function(x) { return Math.log(x) / base; }); -} - -function reflect(f) { - return function(x) { - return -f(-x); - }; -} - -function loggish(transform) { - var scale = transform(transformLog, transformExp), - domain = scale.domain, - base = 10, - logs, - pows; - - function rescale() { - logs = logp(base), pows = powp(base); - if (domain()[0] < 0) { - logs = reflect(logs), pows = reflect(pows); - transform(transformLogn, transformExpn); - } else { - transform(transformLog, transformExp); - } - return scale; - } - - scale.base = function(_) { - return arguments.length ? (base = +_, rescale()) : base; - }; - - scale.domain = function(_) { - return arguments.length ? (domain(_), rescale()) : domain(); - }; - - scale.ticks = function(count) { - var d = domain(), - u = d[0], - v = d[d.length - 1], - r; - - if (r = v < u) i = u, u = v, v = i; - - var i = logs(u), - j = logs(v), - p, - k, - t, - n = count == null ? 10 : +count, - z = []; - - if (!(base % 1) && j - i < n) { - i = Math.floor(i), j = Math.ceil(j); - if (u > 0) for (; i <= j; ++i) { - for (k = 1, p = pows(i); k < base; ++k) { - t = p * k; - if (t < u) continue; - if (t > v) break; - z.push(t); - } - } else for (; i <= j; ++i) { - for (k = base - 1, p = pows(i); k >= 1; --k) { - t = p * k; - if (t < u) continue; - if (t > v) break; - z.push(t); - } - } - if (z.length * 2 < n) z = ticks(u, v, n); - } else { - z = ticks(i, j, Math.min(j - i, n)).map(pows); - } - - return r ? z.reverse() : z; - }; - - scale.tickFormat = function(count, specifier) { - if (specifier == null) specifier = base === 10 ? ".0e" : ","; - if (typeof specifier !== "function") specifier = exports.format(specifier); - if (count === Infinity) return specifier; - if (count == null) count = 10; - var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? - return function(d) { - var i = d / pows(Math.round(logs(d))); - if (i * base < base - 0.5) i *= base; - return i <= k ? specifier(d) : ""; - }; - }; - - scale.nice = function() { - return domain(nice(domain(), { - floor: function(x) { return pows(Math.floor(logs(x))); }, - ceil: function(x) { return pows(Math.ceil(logs(x))); } - })); - }; - - return scale; -} - -function log() { - var scale = loggish(transformer$2()).domain([1, 10]); - - scale.copy = function() { - return copy$1(scale, log()).base(scale.base()); - }; - - initRange.apply(scale, arguments); - - return scale; -} - -function transformSymlog(c) { - return function(x) { - return Math.sign(x) * Math.log1p(Math.abs(x / c)); - }; -} - -function transformSymexp(c) { - return function(x) { - return Math.sign(x) * Math.expm1(Math.abs(x)) * c; - }; -} - -function symlogish(transform) { - var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); - - scale.constant = function(_) { - return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; - }; - - return linearish(scale); -} - -function symlog() { - var scale = symlogish(transformer$2()); - - scale.copy = function() { - return copy$1(scale, symlog()).constant(scale.constant()); - }; - - return initRange.apply(scale, arguments); -} - -function transformPow(exponent) { - return function(x) { - return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); - }; -} - -function transformSqrt(x) { - return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); -} - -function transformSquare(x) { - return x < 0 ? -x * x : x * x; -} - -function powish(transform) { - var scale = transform(identity$3, identity$3), - exponent = 1; - - function rescale() { - return exponent === 1 ? transform(identity$3, identity$3) - : exponent === 0.5 ? transform(transformSqrt, transformSquare) - : transform(transformPow(exponent), transformPow(1 / exponent)); - } - - scale.exponent = function(_) { - return arguments.length ? (exponent = +_, rescale()) : exponent; - }; - - return linearish(scale); -} - -function pow() { - var scale = powish(transformer$2()); - - scale.copy = function() { - return copy$1(scale, pow()).exponent(scale.exponent()); - }; - - initRange.apply(scale, arguments); - - return scale; -} - -function sqrt$1() { - return pow.apply(null, arguments).exponent(0.5); -} - -function square$1(x) { - return Math.sign(x) * x * x; -} - -function unsquare(x) { - return Math.sign(x) * Math.sqrt(Math.abs(x)); -} - -function radial() { - var squared = continuous(), - range = [0, 1], - round = false, - unknown; - - function scale(x) { - var y = unsquare(squared(x)); - return isNaN(y) ? unknown : round ? Math.round(y) : y; - } - - scale.invert = function(y) { - return squared.invert(square$1(y)); - }; - - scale.domain = function(_) { - return arguments.length ? (squared.domain(_), scale) : squared.domain(); - }; - - scale.range = function(_) { - return arguments.length ? (squared.range((range = Array.from(_, number$1)).map(square$1)), scale) : range.slice(); - }; - - scale.rangeRound = function(_) { - return scale.range(_).round(true); - }; - - scale.round = function(_) { - return arguments.length ? (round = !!_, scale) : round; - }; - - scale.clamp = function(_) { - return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return radial(squared.domain(), range) - .round(round) - .clamp(squared.clamp()) - .unknown(unknown); - }; - - initRange.apply(scale, arguments); - - return linearish(scale); -} - -function quantile() { - var domain = [], - range = [], - thresholds = [], - unknown; - - function rescale() { - var i = 0, n = Math.max(1, range.length); - thresholds = new Array(n - 1); - while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n); - return scale; - } - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : range[bisectRight(thresholds, x)]; - } - - scale.invertExtent = function(y) { - var i = range.indexOf(y); - return i < 0 ? [NaN, NaN] : [ - i > 0 ? thresholds[i - 1] : domain[0], - i < thresholds.length ? thresholds[i] : domain[domain.length - 1] - ]; - }; - - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = []; - for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); - domain.sort(ascending$3); - return rescale(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.quantiles = function() { - return thresholds.slice(); - }; - - scale.copy = function() { - return quantile() - .domain(domain) - .range(range) - .unknown(unknown); - }; - - return initRange.apply(scale, arguments); -} - -function quantize() { - var x0 = 0, - x1 = 1, - n = 1, - domain = [0.5], - range = [0, 1], - unknown; - - function scale(x) { - return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; - } - - function rescale() { - var i = -1; - domain = new Array(n); - while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1); - return scale; - } - - scale.domain = function(_) { - return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1]; - }; - - scale.range = function(_) { - return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice(); - }; - - scale.invertExtent = function(y) { - var i = range.indexOf(y); - return i < 0 ? [NaN, NaN] - : i < 1 ? [x0, domain[0]] - : i >= n ? [domain[n - 1], x1] - : [domain[i - 1], domain[i]]; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : scale; - }; - - scale.thresholds = function() { - return domain.slice(); - }; - - scale.copy = function() { - return quantize() - .domain([x0, x1]) - .range(range) - .unknown(unknown); - }; - - return initRange.apply(linearish(scale), arguments); -} - -function threshold() { - var domain = [0.5], - range = [0, 1], - unknown, - n = 1; - - function scale(x) { - return x != null && x <= x ? range[bisectRight(domain, x, 0, n)] : unknown; - } - - scale.domain = function(_) { - return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice(); - }; - - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice(); - }; - - scale.invertExtent = function(y) { - var i = range.indexOf(y); - return [domain[i - 1], domain[i]]; - }; - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - scale.copy = function() { - return threshold() - .domain(domain) - .range(range) - .unknown(unknown); - }; - - return initRange.apply(scale, arguments); -} - -var t0 = new Date, - t1 = new Date; - -function newInterval(floori, offseti, count, field) { - - function interval(date) { - return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date; - } - - interval.floor = function(date) { - return floori(date = new Date(+date)), date; - }; - - interval.ceil = function(date) { - return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; - }; - - interval.round = function(date) { - var d0 = interval(date), - d1 = interval.ceil(date); - return date - d0 < d1 - date ? d0 : d1; - }; - - interval.offset = function(date, step) { - return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date; - }; - - interval.range = function(start, stop, step) { - var range = [], previous; - start = interval.ceil(start); - step = step == null ? 1 : Math.floor(step); - if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date - do range.push(previous = new Date(+start)), offseti(start, step), floori(start); - while (previous < start && start < stop); - return range; - }; - - interval.filter = function(test) { - return newInterval(function(date) { - if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1); - }, function(date, step) { - if (date >= date) { - if (step < 0) while (++step <= 0) { - while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty - } else while (--step >= 0) { - while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty - } - } - }); - }; - - if (count) { - interval.count = function(start, end) { - t0.setTime(+start), t1.setTime(+end); - floori(t0), floori(t1); - return Math.floor(count(t0, t1)); - }; - - interval.every = function(step) { - step = Math.floor(step); - return !isFinite(step) || !(step > 0) ? null - : !(step > 1) ? interval - : interval.filter(field - ? function(d) { return field(d) % step === 0; } - : function(d) { return interval.count(0, d) % step === 0; }); - }; - } - - return interval; -} - -var millisecond = newInterval(function() { - // noop -}, function(date, step) { - date.setTime(+date + step); -}, function(start, end) { - return end - start; -}); - -// An optimized implementation for this simple case. -millisecond.every = function(k) { - k = Math.floor(k); - if (!isFinite(k) || !(k > 0)) return null; - if (!(k > 1)) return millisecond; - return newInterval(function(date) { - date.setTime(Math.floor(date / k) * k); - }, function(date, step) { - date.setTime(+date + step * k); - }, function(start, end) { - return (end - start) / k; - }); -}; -var milliseconds = millisecond.range; - -const durationSecond = 1000; -const durationMinute = durationSecond * 60; -const durationHour = durationMinute * 60; -const durationDay = durationHour * 24; -const durationWeek = durationDay * 7; -const durationMonth = durationDay * 30; -const durationYear = durationDay * 365; - -var second = newInterval(function(date) { - date.setTime(date - date.getMilliseconds()); -}, function(date, step) { - date.setTime(+date + step * durationSecond); -}, function(start, end) { - return (end - start) / durationSecond; -}, function(date) { - return date.getUTCSeconds(); -}); -var seconds = second.range; - -var minute = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); -}, function(date, step) { - date.setTime(+date + step * durationMinute); -}, function(start, end) { - return (end - start) / durationMinute; -}, function(date) { - return date.getMinutes(); -}); -var minutes = minute.range; - -var hour = newInterval(function(date) { - date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); -}, function(date, step) { - date.setTime(+date + step * durationHour); -}, function(start, end) { - return (end - start) / durationHour; -}, function(date) { - return date.getHours(); -}); -var hours = hour.range; - -var day = newInterval( - date => date.setHours(0, 0, 0, 0), - (date, step) => date.setDate(date.getDate() + step), - (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, - date => date.getDate() - 1 -); -var days = day.range; - -function weekday(i) { - return newInterval(function(date) { - date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setDate(date.getDate() + step * 7); - }, function(start, end) { - return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; - }); -} - -var sunday = weekday(0); -var monday = weekday(1); -var tuesday = weekday(2); -var wednesday = weekday(3); -var thursday = weekday(4); -var friday = weekday(5); -var saturday = weekday(6); - -var sundays = sunday.range; -var mondays = monday.range; -var tuesdays = tuesday.range; -var wednesdays = wednesday.range; -var thursdays = thursday.range; -var fridays = friday.range; -var saturdays = saturday.range; - -var month = newInterval(function(date) { - date.setDate(1); - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setMonth(date.getMonth() + step); -}, function(start, end) { - return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; -}, function(date) { - return date.getMonth(); -}); -var months = month.range; - -var year = newInterval(function(date) { - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); -}, function(date, step) { - date.setFullYear(date.getFullYear() + step); -}, function(start, end) { - return end.getFullYear() - start.getFullYear(); -}, function(date) { - return date.getFullYear(); -}); - -// An optimized implementation for this simple case. -year.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setFullYear(Math.floor(date.getFullYear() / k) * k); - date.setMonth(0, 1); - date.setHours(0, 0, 0, 0); - }, function(date, step) { - date.setFullYear(date.getFullYear() + step * k); - }); -}; -var years = year.range; - -var utcMinute = newInterval(function(date) { - date.setUTCSeconds(0, 0); -}, function(date, step) { - date.setTime(+date + step * durationMinute); -}, function(start, end) { - return (end - start) / durationMinute; -}, function(date) { - return date.getUTCMinutes(); -}); -var utcMinutes = utcMinute.range; - -var utcHour = newInterval(function(date) { - date.setUTCMinutes(0, 0, 0); -}, function(date, step) { - date.setTime(+date + step * durationHour); -}, function(start, end) { - return (end - start) / durationHour; -}, function(date) { - return date.getUTCHours(); -}); -var utcHours = utcHour.range; - -var utcDay = newInterval(function(date) { - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCDate(date.getUTCDate() + step); -}, function(start, end) { - return (end - start) / durationDay; -}, function(date) { - return date.getUTCDate() - 1; -}); -var utcDays = utcDay.range; - -function utcWeekday(i) { - return newInterval(function(date) { - date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCDate(date.getUTCDate() + step * 7); - }, function(start, end) { - return (end - start) / durationWeek; - }); -} - -var utcSunday = utcWeekday(0); -var utcMonday = utcWeekday(1); -var utcTuesday = utcWeekday(2); -var utcWednesday = utcWeekday(3); -var utcThursday = utcWeekday(4); -var utcFriday = utcWeekday(5); -var utcSaturday = utcWeekday(6); - -var utcSundays = utcSunday.range; -var utcMondays = utcMonday.range; -var utcTuesdays = utcTuesday.range; -var utcWednesdays = utcWednesday.range; -var utcThursdays = utcThursday.range; -var utcFridays = utcFriday.range; -var utcSaturdays = utcSaturday.range; - -var utcMonth = newInterval(function(date) { - date.setUTCDate(1); - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCMonth(date.getUTCMonth() + step); -}, function(start, end) { - return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; -}, function(date) { - return date.getUTCMonth(); -}); -var utcMonths = utcMonth.range; - -var utcYear = newInterval(function(date) { - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); -}, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step); -}, function(start, end) { - return end.getUTCFullYear() - start.getUTCFullYear(); -}, function(date) { - return date.getUTCFullYear(); -}); - -// An optimized implementation for this simple case. -utcYear.every = function(k) { - return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) { - date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); - date.setUTCMonth(0, 1); - date.setUTCHours(0, 0, 0, 0); - }, function(date, step) { - date.setUTCFullYear(date.getUTCFullYear() + step * k); - }); -}; -var utcYears = utcYear.range; - -function ticker(year, month, week, day, hour, minute) { - - const tickIntervals = [ - [second, 1, durationSecond], - [second, 5, 5 * durationSecond], - [second, 15, 15 * durationSecond], - [second, 30, 30 * durationSecond], - [minute, 1, durationMinute], - [minute, 5, 5 * durationMinute], - [minute, 15, 15 * durationMinute], - [minute, 30, 30 * durationMinute], - [ hour, 1, durationHour ], - [ hour, 3, 3 * durationHour ], - [ hour, 6, 6 * durationHour ], - [ hour, 12, 12 * durationHour ], - [ day, 1, durationDay ], - [ day, 2, 2 * durationDay ], - [ week, 1, durationWeek ], - [ month, 1, durationMonth ], - [ month, 3, 3 * durationMonth ], - [ year, 1, durationYear ] - ]; - - function ticks(start, stop, count) { - const reverse = stop < start; - if (reverse) [start, stop] = [stop, start]; - const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count); - const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop - return reverse ? ticks.reverse() : ticks; - } - - function tickInterval(start, stop, count) { - const target = Math.abs(stop - start) / count; - const i = bisector(([,, step]) => step).right(tickIntervals, target); - if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count)); - if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1)); - const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; - return t.every(step); - } - - return [ticks, tickInterval]; -} - -const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute); -const [timeTicks, timeTickInterval] = ticker(year, month, sunday, day, hour, minute); - -function localDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); - date.setFullYear(d.y); - return date; - } - return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); -} - -function utcDate(d) { - if (0 <= d.y && d.y < 100) { - var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); - date.setUTCFullYear(d.y); - return date; - } - return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); -} - -function newDate(y, m, d) { - return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0}; -} - -function formatLocale(locale) { - var locale_dateTime = locale.dateTime, - locale_date = locale.date, - locale_time = locale.time, - locale_periods = locale.periods, - locale_weekdays = locale.days, - locale_shortWeekdays = locale.shortDays, - locale_months = locale.months, - locale_shortMonths = locale.shortMonths; - - var periodRe = formatRe(locale_periods), - periodLookup = formatLookup(locale_periods), - weekdayRe = formatRe(locale_weekdays), - weekdayLookup = formatLookup(locale_weekdays), - shortWeekdayRe = formatRe(locale_shortWeekdays), - shortWeekdayLookup = formatLookup(locale_shortWeekdays), - monthRe = formatRe(locale_months), - monthLookup = formatLookup(locale_months), - shortMonthRe = formatRe(locale_shortMonths), - shortMonthLookup = formatLookup(locale_shortMonths); - - var formats = { - "a": formatShortWeekday, - "A": formatWeekday, - "b": formatShortMonth, - "B": formatMonth, - "c": null, - "d": formatDayOfMonth, - "e": formatDayOfMonth, - "f": formatMicroseconds, - "g": formatYearISO, - "G": formatFullYearISO, - "H": formatHour24, - "I": formatHour12, - "j": formatDayOfYear, - "L": formatMilliseconds, - "m": formatMonthNumber, - "M": formatMinutes, - "p": formatPeriod, - "q": formatQuarter, - "Q": formatUnixTimestamp, - "s": formatUnixTimestampSeconds, - "S": formatSeconds, - "u": formatWeekdayNumberMonday, - "U": formatWeekNumberSunday, - "V": formatWeekNumberISO, - "w": formatWeekdayNumberSunday, - "W": formatWeekNumberMonday, - "x": null, - "X": null, - "y": formatYear, - "Y": formatFullYear, - "Z": formatZone, - "%": formatLiteralPercent - }; - - var utcFormats = { - "a": formatUTCShortWeekday, - "A": formatUTCWeekday, - "b": formatUTCShortMonth, - "B": formatUTCMonth, - "c": null, - "d": formatUTCDayOfMonth, - "e": formatUTCDayOfMonth, - "f": formatUTCMicroseconds, - "g": formatUTCYearISO, - "G": formatUTCFullYearISO, - "H": formatUTCHour24, - "I": formatUTCHour12, - "j": formatUTCDayOfYear, - "L": formatUTCMilliseconds, - "m": formatUTCMonthNumber, - "M": formatUTCMinutes, - "p": formatUTCPeriod, - "q": formatUTCQuarter, - "Q": formatUnixTimestamp, - "s": formatUnixTimestampSeconds, - "S": formatUTCSeconds, - "u": formatUTCWeekdayNumberMonday, - "U": formatUTCWeekNumberSunday, - "V": formatUTCWeekNumberISO, - "w": formatUTCWeekdayNumberSunday, - "W": formatUTCWeekNumberMonday, - "x": null, - "X": null, - "y": formatUTCYear, - "Y": formatUTCFullYear, - "Z": formatUTCZone, - "%": formatLiteralPercent - }; - - var parses = { - "a": parseShortWeekday, - "A": parseWeekday, - "b": parseShortMonth, - "B": parseMonth, - "c": parseLocaleDateTime, - "d": parseDayOfMonth, - "e": parseDayOfMonth, - "f": parseMicroseconds, - "g": parseYear, - "G": parseFullYear, - "H": parseHour24, - "I": parseHour24, - "j": parseDayOfYear, - "L": parseMilliseconds, - "m": parseMonthNumber, - "M": parseMinutes, - "p": parsePeriod, - "q": parseQuarter, - "Q": parseUnixTimestamp, - "s": parseUnixTimestampSeconds, - "S": parseSeconds, - "u": parseWeekdayNumberMonday, - "U": parseWeekNumberSunday, - "V": parseWeekNumberISO, - "w": parseWeekdayNumberSunday, - "W": parseWeekNumberMonday, - "x": parseLocaleDate, - "X": parseLocaleTime, - "y": parseYear, - "Y": parseFullYear, - "Z": parseZone, - "%": parseLiteralPercent - }; - - // These recursive directive definitions must be deferred. - formats.x = newFormat(locale_date, formats); - formats.X = newFormat(locale_time, formats); - formats.c = newFormat(locale_dateTime, formats); - utcFormats.x = newFormat(locale_date, utcFormats); - utcFormats.X = newFormat(locale_time, utcFormats); - utcFormats.c = newFormat(locale_dateTime, utcFormats); - - function newFormat(specifier, formats) { - return function(date) { - var string = [], - i = -1, - j = 0, - n = specifier.length, - c, - pad, - format; - - if (!(date instanceof Date)) date = new Date(+date); - - while (++i < n) { - if (specifier.charCodeAt(i) === 37) { - string.push(specifier.slice(j, i)); - if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i); - else pad = c === "e" ? " " : "0"; - if (format = formats[c]) c = format(date, pad); - string.push(c); - j = i + 1; - } - } - - string.push(specifier.slice(j, i)); - return string.join(""); - }; - } - - function newParse(specifier, Z) { - return function(string) { - var d = newDate(1900, undefined, 1), - i = parseSpecifier(d, specifier, string += "", 0), - week, day$1; - if (i != string.length) return null; - - // If a UNIX timestamp is specified, return it. - if ("Q" in d) return new Date(d.Q); - if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0)); - - // If this is utcParse, never use the local timezone. - if (Z && !("Z" in d)) d.Z = 0; - - // The am-pm flag is 0 for AM, and 1 for PM. - if ("p" in d) d.H = d.H % 12 + d.p * 12; - - // If the month was not specified, inherit from the quarter. - if (d.m === undefined) d.m = "q" in d ? d.q : 0; - - // Convert day-of-week and week-of-year to day-of-year. - if ("V" in d) { - if (d.V < 1 || d.V > 53) return null; - if (!("w" in d)) d.w = 1; - if ("Z" in d) { - week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay(); - week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week); - week = utcDay.offset(week, (d.V - 1) * 7); - d.y = week.getUTCFullYear(); - d.m = week.getUTCMonth(); - d.d = week.getUTCDate() + (d.w + 6) % 7; - } else { - week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay(); - week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week); - week = day.offset(week, (d.V - 1) * 7); - d.y = week.getFullYear(); - d.m = week.getMonth(); - d.d = week.getDate() + (d.w + 6) % 7; - } - } else if ("W" in d || "U" in d) { - if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; - day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); - d.m = 0; - d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7; - } - - // If a time zone is specified, all fields are interpreted as UTC and then - // offset according to the specified time zone. - if ("Z" in d) { - d.H += d.Z / 100 | 0; - d.M += d.Z % 100; - return utcDate(d); - } - - // Otherwise, all fields are in local time. - return localDate(d); - }; - } - - function parseSpecifier(d, specifier, string, j) { - var i = 0, - n = specifier.length, - m = string.length, - c, - parse; - - while (i < n) { - if (j >= m) return -1; - c = specifier.charCodeAt(i++); - if (c === 37) { - c = specifier.charAt(i++); - parse = parses[c in pads ? specifier.charAt(i++) : c]; - if (!parse || ((j = parse(d, string, j)) < 0)) return -1; - } else if (c != string.charCodeAt(j++)) { - return -1; - } - } - - return j; - } - - function parsePeriod(d, string, i) { - var n = periodRe.exec(string.slice(i)); - return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseShortWeekday(d, string, i) { - var n = shortWeekdayRe.exec(string.slice(i)); - return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseWeekday(d, string, i) { - var n = weekdayRe.exec(string.slice(i)); - return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseShortMonth(d, string, i) { - var n = shortMonthRe.exec(string.slice(i)); - return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseMonth(d, string, i) { - var n = monthRe.exec(string.slice(i)); - return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; - } - - function parseLocaleDateTime(d, string, i) { - return parseSpecifier(d, locale_dateTime, string, i); - } - - function parseLocaleDate(d, string, i) { - return parseSpecifier(d, locale_date, string, i); - } - - function parseLocaleTime(d, string, i) { - return parseSpecifier(d, locale_time, string, i); - } - - function formatShortWeekday(d) { - return locale_shortWeekdays[d.getDay()]; - } - - function formatWeekday(d) { - return locale_weekdays[d.getDay()]; - } - - function formatShortMonth(d) { - return locale_shortMonths[d.getMonth()]; - } - - function formatMonth(d) { - return locale_months[d.getMonth()]; - } - - function formatPeriod(d) { - return locale_periods[+(d.getHours() >= 12)]; - } - - function formatQuarter(d) { - return 1 + ~~(d.getMonth() / 3); - } - - function formatUTCShortWeekday(d) { - return locale_shortWeekdays[d.getUTCDay()]; - } - - function formatUTCWeekday(d) { - return locale_weekdays[d.getUTCDay()]; - } - - function formatUTCShortMonth(d) { - return locale_shortMonths[d.getUTCMonth()]; - } - - function formatUTCMonth(d) { - return locale_months[d.getUTCMonth()]; - } - - function formatUTCPeriod(d) { - return locale_periods[+(d.getUTCHours() >= 12)]; - } - - function formatUTCQuarter(d) { - return 1 + ~~(d.getUTCMonth() / 3); - } - - return { - format: function(specifier) { - var f = newFormat(specifier += "", formats); - f.toString = function() { return specifier; }; - return f; - }, - parse: function(specifier) { - var p = newParse(specifier += "", false); - p.toString = function() { return specifier; }; - return p; - }, - utcFormat: function(specifier) { - var f = newFormat(specifier += "", utcFormats); - f.toString = function() { return specifier; }; - return f; - }, - utcParse: function(specifier) { - var p = newParse(specifier += "", true); - p.toString = function() { return specifier; }; - return p; - } - }; -} - -var pads = {"-": "", "_": " ", "0": "0"}, - numberRe = /^\s*\d+/, // note: ignores next directive - percentRe = /^%/, - requoteRe = /[\\^$*+?|[\]().{}]/g; - -function pad(value, fill, width) { - var sign = value < 0 ? "-" : "", - string = (sign ? -value : value) + "", - length = string.length; - return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); -} - -function requote(s) { - return s.replace(requoteRe, "\\$&"); -} - -function formatRe(names) { - return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); -} - -function formatLookup(names) { - return new Map(names.map((name, i) => [name.toLowerCase(), i])); -} - -function parseWeekdayNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.w = +n[0], i + n[0].length) : -1; -} - -function parseWeekdayNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.u = +n[0], i + n[0].length) : -1; -} - -function parseWeekNumberSunday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.U = +n[0], i + n[0].length) : -1; -} - -function parseWeekNumberISO(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.V = +n[0], i + n[0].length) : -1; -} - -function parseWeekNumberMonday(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.W = +n[0], i + n[0].length) : -1; -} - -function parseFullYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 4)); - return n ? (d.y = +n[0], i + n[0].length) : -1; -} - -function parseYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1; -} - -function parseZone(d, string, i) { - var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); - return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; -} - -function parseQuarter(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 1)); - return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; -} - -function parseMonthNumber(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.m = n[0] - 1, i + n[0].length) : -1; -} - -function parseDayOfMonth(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.d = +n[0], i + n[0].length) : -1; -} - -function parseDayOfYear(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; -} - -function parseHour24(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.H = +n[0], i + n[0].length) : -1; -} - -function parseMinutes(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.M = +n[0], i + n[0].length) : -1; -} - -function parseSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 2)); - return n ? (d.S = +n[0], i + n[0].length) : -1; -} - -function parseMilliseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 3)); - return n ? (d.L = +n[0], i + n[0].length) : -1; -} - -function parseMicroseconds(d, string, i) { - var n = numberRe.exec(string.slice(i, i + 6)); - return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1; -} - -function parseLiteralPercent(d, string, i) { - var n = percentRe.exec(string.slice(i, i + 1)); - return n ? i + n[0].length : -1; -} - -function parseUnixTimestamp(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.Q = +n[0], i + n[0].length) : -1; -} - -function parseUnixTimestampSeconds(d, string, i) { - var n = numberRe.exec(string.slice(i)); - return n ? (d.s = +n[0], i + n[0].length) : -1; -} - -function formatDayOfMonth(d, p) { - return pad(d.getDate(), p, 2); -} - -function formatHour24(d, p) { - return pad(d.getHours(), p, 2); -} - -function formatHour12(d, p) { - return pad(d.getHours() % 12 || 12, p, 2); -} - -function formatDayOfYear(d, p) { - return pad(1 + day.count(year(d), d), p, 3); -} - -function formatMilliseconds(d, p) { - return pad(d.getMilliseconds(), p, 3); -} - -function formatMicroseconds(d, p) { - return formatMilliseconds(d, p) + "000"; -} - -function formatMonthNumber(d, p) { - return pad(d.getMonth() + 1, p, 2); -} - -function formatMinutes(d, p) { - return pad(d.getMinutes(), p, 2); -} - -function formatSeconds(d, p) { - return pad(d.getSeconds(), p, 2); -} - -function formatWeekdayNumberMonday(d) { - var day = d.getDay(); - return day === 0 ? 7 : day; -} - -function formatWeekNumberSunday(d, p) { - return pad(sunday.count(year(d) - 1, d), p, 2); -} - -function dISO(d) { - var day = d.getDay(); - return (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); -} - -function formatWeekNumberISO(d, p) { - d = dISO(d); - return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2); -} - -function formatWeekdayNumberSunday(d) { - return d.getDay(); -} - -function formatWeekNumberMonday(d, p) { - return pad(monday.count(year(d) - 1, d), p, 2); -} - -function formatYear(d, p) { - return pad(d.getFullYear() % 100, p, 2); -} - -function formatYearISO(d, p) { - d = dISO(d); - return pad(d.getFullYear() % 100, p, 2); -} - -function formatFullYear(d, p) { - return pad(d.getFullYear() % 10000, p, 4); -} - -function formatFullYearISO(d, p) { - var day = d.getDay(); - d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d); - return pad(d.getFullYear() % 10000, p, 4); -} - -function formatZone(d) { - var z = d.getTimezoneOffset(); - return (z > 0 ? "-" : (z *= -1, "+")) - + pad(z / 60 | 0, "0", 2) - + pad(z % 60, "0", 2); -} - -function formatUTCDayOfMonth(d, p) { - return pad(d.getUTCDate(), p, 2); -} - -function formatUTCHour24(d, p) { - return pad(d.getUTCHours(), p, 2); -} - -function formatUTCHour12(d, p) { - return pad(d.getUTCHours() % 12 || 12, p, 2); -} - -function formatUTCDayOfYear(d, p) { - return pad(1 + utcDay.count(utcYear(d), d), p, 3); -} - -function formatUTCMilliseconds(d, p) { - return pad(d.getUTCMilliseconds(), p, 3); -} - -function formatUTCMicroseconds(d, p) { - return formatUTCMilliseconds(d, p) + "000"; -} - -function formatUTCMonthNumber(d, p) { - return pad(d.getUTCMonth() + 1, p, 2); -} - -function formatUTCMinutes(d, p) { - return pad(d.getUTCMinutes(), p, 2); -} - -function formatUTCSeconds(d, p) { - return pad(d.getUTCSeconds(), p, 2); -} - -function formatUTCWeekdayNumberMonday(d) { - var dow = d.getUTCDay(); - return dow === 0 ? 7 : dow; -} - -function formatUTCWeekNumberSunday(d, p) { - return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); -} - -function UTCdISO(d) { - var day = d.getUTCDay(); - return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); -} - -function formatUTCWeekNumberISO(d, p) { - d = UTCdISO(d); - return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); -} - -function formatUTCWeekdayNumberSunday(d) { - return d.getUTCDay(); -} - -function formatUTCWeekNumberMonday(d, p) { - return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); -} - -function formatUTCYear(d, p) { - return pad(d.getUTCFullYear() % 100, p, 2); -} - -function formatUTCYearISO(d, p) { - d = UTCdISO(d); - return pad(d.getUTCFullYear() % 100, p, 2); -} - -function formatUTCFullYear(d, p) { - return pad(d.getUTCFullYear() % 10000, p, 4); -} - -function formatUTCFullYearISO(d, p) { - var day = d.getUTCDay(); - d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d); - return pad(d.getUTCFullYear() % 10000, p, 4); -} - -function formatUTCZone() { - return "+0000"; -} - -function formatLiteralPercent() { - return "%"; -} - -function formatUnixTimestamp(d) { - return +d; -} - -function formatUnixTimestampSeconds(d) { - return Math.floor(+d / 1000); -} - -var locale; -exports.timeFormat = void 0; -exports.timeParse = void 0; -exports.utcFormat = void 0; -exports.utcParse = void 0; - -defaultLocale({ - dateTime: "%x, %X", - date: "%-m/%-d/%Y", - time: "%-I:%M:%S %p", - periods: ["AM", "PM"], - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] -}); - -function defaultLocale(definition) { - locale = formatLocale(definition); - exports.timeFormat = locale.format; - exports.timeParse = locale.parse; - exports.utcFormat = locale.utcFormat; - exports.utcParse = locale.utcParse; - return locale; -} - -var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ"; - -function formatIsoNative(date) { - return date.toISOString(); -} - -var formatIso = Date.prototype.toISOString - ? formatIsoNative - : exports.utcFormat(isoSpecifier); - -function parseIsoNative(string) { - var date = new Date(string); - return isNaN(date) ? null : date; -} - -var parseIso = +new Date("2000-01-01T00:00:00.000Z") - ? parseIsoNative - : exports.utcParse(isoSpecifier); - -function date(t) { - return new Date(t); -} - -function number(t) { - return t instanceof Date ? +t : +new Date(+t); -} - -function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { - var scale = continuous(), - invert = scale.invert, - domain = scale.domain; - - var formatMillisecond = format(".%L"), - formatSecond = format(":%S"), - formatMinute = format("%I:%M"), - formatHour = format("%I %p"), - formatDay = format("%a %d"), - formatWeek = format("%b %d"), - formatMonth = format("%B"), - formatYear = format("%Y"); - - function tickFormat(date) { - return (second(date) < date ? formatMillisecond - : minute(date) < date ? formatSecond - : hour(date) < date ? formatMinute - : day(date) < date ? formatHour - : month(date) < date ? (week(date) < date ? formatDay : formatWeek) - : year(date) < date ? formatMonth - : formatYear)(date); - } - - scale.invert = function(y) { - return new Date(invert(y)); - }; - - scale.domain = function(_) { - return arguments.length ? domain(Array.from(_, number)) : domain().map(date); - }; - - scale.ticks = function(interval) { - var d = domain(); - return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); - }; - - scale.tickFormat = function(count, specifier) { - return specifier == null ? tickFormat : format(specifier); - }; - - scale.nice = function(interval) { - var d = domain(); - if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); - return interval ? domain(nice(d, interval)) : scale; - }; - - scale.copy = function() { - return copy$1(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); - }; - - return scale; -} - -function time() { - return initRange.apply(calendar(timeTicks, timeTickInterval, year, month, sunday, day, hour, minute, second, exports.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments); -} - -function utcTime() { - return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, exports.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments); -} - -function transformer$1() { - var x0 = 0, - x1 = 1, - t0, - t1, - k10, - transform, - interpolator = identity$3, - clamp = false, - unknown; - - function scale(x) { - return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x)); - } - - scale.domain = function(_) { - return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1]; - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = !!_, scale) : clamp; - }; - - scale.interpolator = function(_) { - return arguments.length ? (interpolator = _, scale) : interpolator; - }; - - function range(interpolate) { - return function(_) { - var r0, r1; - return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)]; - }; - } - - scale.range = range(interpolate$2); - - scale.rangeRound = range(interpolateRound); - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t) { - transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0); - return scale; - }; -} - -function copy(source, target) { - return target - .domain(source.domain()) - .interpolator(source.interpolator()) - .clamp(source.clamp()) - .unknown(source.unknown()); -} - -function sequential() { - var scale = linearish(transformer$1()(identity$3)); - - scale.copy = function() { - return copy(scale, sequential()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialLog() { - var scale = loggish(transformer$1()).domain([1, 10]); - - scale.copy = function() { - return copy(scale, sequentialLog()).base(scale.base()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialSymlog() { - var scale = symlogish(transformer$1()); - - scale.copy = function() { - return copy(scale, sequentialSymlog()).constant(scale.constant()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialPow() { - var scale = powish(transformer$1()); - - scale.copy = function() { - return copy(scale, sequentialPow()).exponent(scale.exponent()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function sequentialSqrt() { - return sequentialPow.apply(null, arguments).exponent(0.5); -} - -function sequentialQuantile() { - var domain = [], - interpolator = identity$3; - - function scale(x) { - if (x != null && !isNaN(x = +x)) return interpolator((bisectRight(domain, x, 1) - 1) / (domain.length - 1)); - } - - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = []; - for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d); - domain.sort(ascending$3); - return scale; - }; - - scale.interpolator = function(_) { - return arguments.length ? (interpolator = _, scale) : interpolator; - }; - - scale.range = function() { - return domain.map((d, i) => interpolator(i / (domain.length - 1))); - }; - - scale.quantiles = function(n) { - return Array.from({length: n + 1}, (_, i) => quantile$1(domain, i / n)); - }; - - scale.copy = function() { - return sequentialQuantile(interpolator).domain(domain); - }; - - return initInterpolator.apply(scale, arguments); -} - -function transformer() { - var x0 = 0, - x1 = 0.5, - x2 = 1, - s = 1, - t0, - t1, - t2, - k10, - k21, - interpolator = identity$3, - transform, - clamp = false, - unknown; - - function scale(x) { - return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x)); - } - - scale.domain = function(_) { - return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2]; - }; - - scale.clamp = function(_) { - return arguments.length ? (clamp = !!_, scale) : clamp; - }; - - scale.interpolator = function(_) { - return arguments.length ? (interpolator = _, scale) : interpolator; - }; - - function range(interpolate) { - return function(_) { - var r0, r1, r2; - return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)]; - }; - } - - scale.range = range(interpolate$2); - - scale.rangeRound = range(interpolateRound); - - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - - return function(t) { - transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1; - return scale; - }; -} - -function diverging$1() { - var scale = linearish(transformer()(identity$3)); - - scale.copy = function() { - return copy(scale, diverging$1()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingLog() { - var scale = loggish(transformer()).domain([0.1, 1, 10]); - - scale.copy = function() { - return copy(scale, divergingLog()).base(scale.base()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingSymlog() { - var scale = symlogish(transformer()); - - scale.copy = function() { - return copy(scale, divergingSymlog()).constant(scale.constant()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingPow() { - var scale = powish(transformer()); - - scale.copy = function() { - return copy(scale, divergingPow()).exponent(scale.exponent()); - }; - - return initInterpolator.apply(scale, arguments); -} - -function divergingSqrt() { - return divergingPow.apply(null, arguments).exponent(0.5); -} - -function colors(specifier) { - var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; - while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); - return colors; -} - -var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"); - -var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"); - -var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"); - -var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"); - -var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"); - -var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"); - -var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"); - -var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"); - -var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"); - -var Tableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"); - -var ramp$1 = scheme => rgbBasis(scheme[scheme.length - 1]); - -var scheme$q = new Array(3).concat( - "d8b365f5f5f55ab4ac", - "a6611adfc27d80cdc1018571", - "a6611adfc27df5f5f580cdc1018571", - "8c510ad8b365f6e8c3c7eae55ab4ac01665e", - "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", - "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", - "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", - "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", - "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30" -).map(colors); - -var BrBG = ramp$1(scheme$q); - -var scheme$p = new Array(3).concat( - "af8dc3f7f7f77fbf7b", - "7b3294c2a5cfa6dba0008837", - "7b3294c2a5cff7f7f7a6dba0008837", - "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", - "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", - "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", - "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", - "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", - "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b" -).map(colors); - -var PRGn = ramp$1(scheme$p); - -var scheme$o = new Array(3).concat( - "e9a3c9f7f7f7a1d76a", - "d01c8bf1b6dab8e1864dac26", - "d01c8bf1b6daf7f7f7b8e1864dac26", - "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", - "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", - "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", - "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", - "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", - "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419" -).map(colors); - -var PiYG = ramp$1(scheme$o); - -var scheme$n = new Array(3).concat( - "998ec3f7f7f7f1a340", - "5e3c99b2abd2fdb863e66101", - "5e3c99b2abd2f7f7f7fdb863e66101", - "542788998ec3d8daebfee0b6f1a340b35806", - "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", - "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", - "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", - "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", - "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08" -).map(colors); - -var PuOr = ramp$1(scheme$n); - -var scheme$m = new Array(3).concat( - "ef8a62f7f7f767a9cf", - "ca0020f4a58292c5de0571b0", - "ca0020f4a582f7f7f792c5de0571b0", - "b2182bef8a62fddbc7d1e5f067a9cf2166ac", - "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", - "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", - "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", - "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", - "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061" -).map(colors); - -var RdBu = ramp$1(scheme$m); - -var scheme$l = new Array(3).concat( - "ef8a62ffffff999999", - "ca0020f4a582bababa404040", - "ca0020f4a582ffffffbababa404040", - "b2182bef8a62fddbc7e0e0e09999994d4d4d", - "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", - "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", - "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", - "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", - "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a" -).map(colors); - -var RdGy = ramp$1(scheme$l); - -var scheme$k = new Array(3).concat( - "fc8d59ffffbf91bfdb", - "d7191cfdae61abd9e92c7bb6", - "d7191cfdae61ffffbfabd9e92c7bb6", - "d73027fc8d59fee090e0f3f891bfdb4575b4", - "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", - "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", - "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", - "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", - "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695" -).map(colors); - -var RdYlBu = ramp$1(scheme$k); - -var scheme$j = new Array(3).concat( - "fc8d59ffffbf91cf60", - "d7191cfdae61a6d96a1a9641", - "d7191cfdae61ffffbfa6d96a1a9641", - "d73027fc8d59fee08bd9ef8b91cf601a9850", - "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", - "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", - "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", - "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", - "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837" -).map(colors); - -var RdYlGn = ramp$1(scheme$j); - -var scheme$i = new Array(3).concat( - "fc8d59ffffbf99d594", - "d7191cfdae61abdda42b83ba", - "d7191cfdae61ffffbfabdda42b83ba", - "d53e4ffc8d59fee08be6f59899d5943288bd", - "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", - "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", - "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", - "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", - "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2" -).map(colors); - -var Spectral = ramp$1(scheme$i); - -var scheme$h = new Array(3).concat( - "e5f5f999d8c92ca25f", - "edf8fbb2e2e266c2a4238b45", - "edf8fbb2e2e266c2a42ca25f006d2c", - "edf8fbccece699d8c966c2a42ca25f006d2c", - "edf8fbccece699d8c966c2a441ae76238b45005824", - "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", - "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b" -).map(colors); - -var BuGn = ramp$1(scheme$h); - -var scheme$g = new Array(3).concat( - "e0ecf49ebcda8856a7", - "edf8fbb3cde38c96c688419d", - "edf8fbb3cde38c96c68856a7810f7c", - "edf8fbbfd3e69ebcda8c96c68856a7810f7c", - "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", - "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", - "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b" -).map(colors); - -var BuPu = ramp$1(scheme$g); - -var scheme$f = new Array(3).concat( - "e0f3dba8ddb543a2ca", - "f0f9e8bae4bc7bccc42b8cbe", - "f0f9e8bae4bc7bccc443a2ca0868ac", - "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", - "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", - "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", - "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081" -).map(colors); - -var GnBu = ramp$1(scheme$f); - -var scheme$e = new Array(3).concat( - "fee8c8fdbb84e34a33", - "fef0d9fdcc8afc8d59d7301f", - "fef0d9fdcc8afc8d59e34a33b30000", - "fef0d9fdd49efdbb84fc8d59e34a33b30000", - "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", - "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", - "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000" -).map(colors); - -var OrRd = ramp$1(scheme$e); - -var scheme$d = new Array(3).concat( - "ece2f0a6bddb1c9099", - "f6eff7bdc9e167a9cf02818a", - "f6eff7bdc9e167a9cf1c9099016c59", - "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", - "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", - "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", - "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636" -).map(colors); - -var PuBuGn = ramp$1(scheme$d); - -var scheme$c = new Array(3).concat( - "ece7f2a6bddb2b8cbe", - "f1eef6bdc9e174a9cf0570b0", - "f1eef6bdc9e174a9cf2b8cbe045a8d", - "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", - "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", - "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", - "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858" -).map(colors); - -var PuBu = ramp$1(scheme$c); - -var scheme$b = new Array(3).concat( - "e7e1efc994c7dd1c77", - "f1eef6d7b5d8df65b0ce1256", - "f1eef6d7b5d8df65b0dd1c77980043", - "f1eef6d4b9dac994c7df65b0dd1c77980043", - "f1eef6d4b9dac994c7df65b0e7298ace125691003f", - "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", - "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f" -).map(colors); - -var PuRd = ramp$1(scheme$b); - -var scheme$a = new Array(3).concat( - "fde0ddfa9fb5c51b8a", - "feebe2fbb4b9f768a1ae017e", - "feebe2fbb4b9f768a1c51b8a7a0177", - "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", - "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", - "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", - "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a" -).map(colors); - -var RdPu = ramp$1(scheme$a); - -var scheme$9 = new Array(3).concat( - "edf8b17fcdbb2c7fb8", - "ffffcca1dab441b6c4225ea8", - "ffffcca1dab441b6c42c7fb8253494", - "ffffccc7e9b47fcdbb41b6c42c7fb8253494", - "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", - "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", - "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58" -).map(colors); - -var YlGnBu = ramp$1(scheme$9); - -var scheme$8 = new Array(3).concat( - "f7fcb9addd8e31a354", - "ffffccc2e69978c679238443", - "ffffccc2e69978c67931a354006837", - "ffffccd9f0a3addd8e78c67931a354006837", - "ffffccd9f0a3addd8e78c67941ab5d238443005a32", - "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", - "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529" -).map(colors); - -var YlGn = ramp$1(scheme$8); - -var scheme$7 = new Array(3).concat( - "fff7bcfec44fd95f0e", - "ffffd4fed98efe9929cc4c02", - "ffffd4fed98efe9929d95f0e993404", - "ffffd4fee391fec44ffe9929d95f0e993404", - "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", - "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", - "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506" -).map(colors); - -var YlOrBr = ramp$1(scheme$7); - -var scheme$6 = new Array(3).concat( - "ffeda0feb24cf03b20", - "ffffb2fecc5cfd8d3ce31a1c", - "ffffb2fecc5cfd8d3cf03b20bd0026", - "ffffb2fed976feb24cfd8d3cf03b20bd0026", - "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", - "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", - "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026" -).map(colors); - -var YlOrRd = ramp$1(scheme$6); - -var scheme$5 = new Array(3).concat( - "deebf79ecae13182bd", - "eff3ffbdd7e76baed62171b5", - "eff3ffbdd7e76baed63182bd08519c", - "eff3ffc6dbef9ecae16baed63182bd08519c", - "eff3ffc6dbef9ecae16baed64292c62171b5084594", - "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", - "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b" -).map(colors); - -var Blues = ramp$1(scheme$5); - -var scheme$4 = new Array(3).concat( - "e5f5e0a1d99b31a354", - "edf8e9bae4b374c476238b45", - "edf8e9bae4b374c47631a354006d2c", - "edf8e9c7e9c0a1d99b74c47631a354006d2c", - "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", - "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", - "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b" -).map(colors); - -var Greens = ramp$1(scheme$4); - -var scheme$3 = new Array(3).concat( - "f0f0f0bdbdbd636363", - "f7f7f7cccccc969696525252", - "f7f7f7cccccc969696636363252525", - "f7f7f7d9d9d9bdbdbd969696636363252525", - "f7f7f7d9d9d9bdbdbd969696737373525252252525", - "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", - "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000" -).map(colors); - -var Greys = ramp$1(scheme$3); - -var scheme$2 = new Array(3).concat( - "efedf5bcbddc756bb1", - "f2f0f7cbc9e29e9ac86a51a3", - "f2f0f7cbc9e29e9ac8756bb154278f", - "f2f0f7dadaebbcbddc9e9ac8756bb154278f", - "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", - "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", - "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d" -).map(colors); - -var Purples = ramp$1(scheme$2); - -var scheme$1 = new Array(3).concat( - "fee0d2fc9272de2d26", - "fee5d9fcae91fb6a4acb181d", - "fee5d9fcae91fb6a4ade2d26a50f15", - "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", - "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", - "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", - "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d" -).map(colors); - -var Reds = ramp$1(scheme$1); - -var scheme = new Array(3).concat( - "fee6cefdae6be6550d", - "feeddefdbe85fd8d3cd94701", - "feeddefdbe85fd8d3ce6550da63603", - "feeddefdd0a2fdae6bfd8d3ce6550da63603", - "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", - "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", - "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704" -).map(colors); - -var Oranges = ramp$1(scheme); - -function cividis(t) { - t = Math.max(0, Math.min(1, t)); - return "rgb(" - + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + ", " - + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + ", " - + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67))))))) - + ")"; -} - -var cubehelix = cubehelixLong(cubehelix$3(300, 0.5, 0.0), cubehelix$3(-240, 0.5, 1.0)); - -var warm = cubehelixLong(cubehelix$3(-100, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); - -var cool = cubehelixLong(cubehelix$3(260, 0.75, 0.35), cubehelix$3(80, 1.50, 0.8)); - -var c$2 = cubehelix$3(); - -function rainbow(t) { - if (t < 0 || t > 1) t -= Math.floor(t); - var ts = Math.abs(t - 0.5); - c$2.h = 360 * t - 100; - c$2.s = 1.5 - 1.5 * ts; - c$2.l = 0.8 - 0.9 * ts; - return c$2 + ""; -} - -var c$1 = rgb(), - pi_1_3 = Math.PI / 3, - pi_2_3 = Math.PI * 2 / 3; - -function sinebow(t) { - var x; - t = (0.5 - t) * Math.PI; - c$1.r = 255 * (x = Math.sin(t)) * x; - c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x; - c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x; - return c$1 + ""; -} - -function turbo(t) { - t = Math.max(0, Math.min(1, t)); - return "rgb(" - + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + ", " - + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + ", " - + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66))))))) - + ")"; -} - -function ramp(range) { - var n = range.length; - return function(t) { - return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; - }; -} - -var viridis = ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")); - -var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")); - -var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")); - -var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")); - -function constant$1(x) { - return function constant() { - return x; - }; -} - -var abs = Math.abs; -var atan2 = Math.atan2; -var cos = Math.cos; -var max = Math.max; -var min = Math.min; -var sin = Math.sin; -var sqrt = Math.sqrt; - -var epsilon = 1e-12; -var pi = Math.PI; -var halfPi = pi / 2; -var tau = 2 * pi; - -function acos(x) { - return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); -} - -function asin(x) { - return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); -} - -function arcInnerRadius(d) { - return d.innerRadius; -} - -function arcOuterRadius(d) { - return d.outerRadius; -} - -function arcStartAngle(d) { - return d.startAngle; -} - -function arcEndAngle(d) { - return d.endAngle; -} - -function arcPadAngle(d) { - return d && d.padAngle; // Note: optional! -} - -function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { - var x10 = x1 - x0, y10 = y1 - y0, - x32 = x3 - x2, y32 = y3 - y2, - t = y32 * x10 - x32 * y10; - if (t * t < epsilon) return; - t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; - return [x0 + t * x10, y0 + t * y10]; -} - -// Compute perpendicular offset line of length rc. -// http://mathworld.wolfram.com/Circle-LineIntersection.html -function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { - var x01 = x0 - x1, - y01 = y0 - y1, - lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), - ox = lo * y01, - oy = -lo * x01, - x11 = x0 + ox, - y11 = y0 + oy, - x10 = x1 + ox, - y10 = y1 + oy, - x00 = (x11 + x10) / 2, - y00 = (y11 + y10) / 2, - dx = x10 - x11, - dy = y10 - y11, - d2 = dx * dx + dy * dy, - r = r1 - rc, - D = x11 * y10 - x10 * y11, - d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), - cx0 = (D * dy - dx * d) / d2, - cy0 = (-D * dx - dy * d) / d2, - cx1 = (D * dy + dx * d) / d2, - cy1 = (-D * dx + dy * d) / d2, - dx0 = cx0 - x00, - dy0 = cy0 - y00, - dx1 = cx1 - x00, - dy1 = cy1 - y00; - - // Pick the closer of the two intersection points. - // TODO Is there a faster way to determine which intersection to use? - if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; - - return { - cx: cx0, - cy: cy0, - x01: -ox, - y01: -oy, - x11: cx0 * (r1 / r - 1), - y11: cy0 * (r1 / r - 1) - }; -} - -function arc() { - var innerRadius = arcInnerRadius, - outerRadius = arcOuterRadius, - cornerRadius = constant$1(0), - padRadius = null, - startAngle = arcStartAngle, - endAngle = arcEndAngle, - padAngle = arcPadAngle, - context = null; - - function arc() { - var buffer, - r, - r0 = +innerRadius.apply(this, arguments), - r1 = +outerRadius.apply(this, arguments), - a0 = startAngle.apply(this, arguments) - halfPi, - a1 = endAngle.apply(this, arguments) - halfPi, - da = abs(a1 - a0), - cw = a1 > a0; - - if (!context) context = buffer = path(); - - // Ensure that the outer radius is always larger than the inner radius. - if (r1 < r0) r = r1, r1 = r0, r0 = r; - - // Is it a point? - if (!(r1 > epsilon)) context.moveTo(0, 0); - - // Or is it a circle or annulus? - else if (da > tau - epsilon) { - context.moveTo(r1 * cos(a0), r1 * sin(a0)); - context.arc(0, 0, r1, a0, a1, !cw); - if (r0 > epsilon) { - context.moveTo(r0 * cos(a1), r0 * sin(a1)); - context.arc(0, 0, r0, a1, a0, cw); - } - } - - // Or is it a circular or annular sector? - else { - var a01 = a0, - a11 = a1, - a00 = a0, - a10 = a1, - da0 = da, - da1 = da, - ap = padAngle.apply(this, arguments) / 2, - rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), - rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), - rc0 = rc, - rc1 = rc, - t0, - t1; - - // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0. - if (rp > epsilon) { - var p0 = asin(rp / r0 * sin(ap)), - p1 = asin(rp / r1 * sin(ap)); - if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0; - else da0 = 0, a00 = a10 = (a0 + a1) / 2; - if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1; - else da1 = 0, a01 = a11 = (a0 + a1) / 2; - } - - var x01 = r1 * cos(a01), - y01 = r1 * sin(a01), - x10 = r0 * cos(a10), - y10 = r0 * sin(a10); - - // Apply rounded corners? - if (rc > epsilon) { - var x11 = r1 * cos(a11), - y11 = r1 * sin(a11), - x00 = r0 * cos(a00), - y00 = r0 * sin(a00), - oc; - - // Restrict the corner radius according to the sector angle. - if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) { - var ax = x01 - oc[0], - ay = y01 - oc[1], - bx = x11 - oc[0], - by = y11 - oc[1], - kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), - lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); - rc0 = min(rc, (r0 - lc) / (kc - 1)); - rc1 = min(rc, (r1 - lc) / (kc + 1)); - } - } - - // Is the sector collapsed to a line? - if (!(da1 > epsilon)) context.moveTo(x01, y01); - - // Does the sector’s outer ring have rounded corners? - else if (rc1 > epsilon) { - t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); - t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); - - context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); - - // Have the corners merged? - if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); - - // Otherwise, draw the two corners and the ring. - else { - context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); - context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); - context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); - } - } - - // Or is the outer ring just a circular arc? - else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); - - // Is there no inner ring, and it’s a circular sector? - // Or perhaps it’s an annular sector collapsed due to padding? - if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); - - // Does the sector’s inner ring (or point) have rounded corners? - else if (rc0 > epsilon) { - t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); - t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); - - context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); - - // Have the corners merged? - if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); - - // Otherwise, draw the two corners and the ring. - else { - context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); - context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); - context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); - } - } - - // Or is the inner ring just a circular arc? - else context.arc(0, 0, r0, a10, a00, cw); - } - - context.closePath(); - - if (buffer) return context = null, buffer + "" || null; - } - - arc.centroid = function() { - var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, - a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; - return [cos(a) * r, sin(a) * r]; - }; - - arc.innerRadius = function(_) { - return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : innerRadius; - }; - - arc.outerRadius = function(_) { - return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : outerRadius; - }; - - arc.cornerRadius = function(_) { - return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant$1(+_), arc) : cornerRadius; - }; - - arc.padRadius = function(_) { - return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), arc) : padRadius; - }; - - arc.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : startAngle; - }; - - arc.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : endAngle; - }; - - arc.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), arc) : padAngle; - }; - - arc.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), arc) : context; - }; - - return arc; -} - -var slice = Array.prototype.slice; - -function array(x) { - return typeof x === "object" && "length" in x - ? x // Array, TypedArray, NodeList, array-like - : Array.from(x); // Map, Set, iterable, string, or anything else -} - -function Linear(context) { - this._context = context; -} - -Linear.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; // proceed - default: this._context.lineTo(x, y); break; - } - } -}; - -function curveLinear(context) { - return new Linear(context); -} - -function x(p) { - return p[0]; -} - -function y(p) { - return p[1]; -} - -function line(x$1, y$1) { - var defined = constant$1(true), - context = null, - curve = curveLinear, - output = null; - - x$1 = typeof x$1 === "function" ? x$1 : (x$1 === undefined) ? x : constant$1(x$1); - y$1 = typeof y$1 === "function" ? y$1 : (y$1 === undefined) ? y : constant$1(y$1); - - function line(data) { - var i, - n = (data = array(data)).length, - d, - defined0 = false, - buffer; - - if (context == null) output = curve(buffer = path()); - - for (i = 0; i <= n; ++i) { - if (!(i < n && defined(d = data[i], i, data)) === defined0) { - if (defined0 = !defined0) output.lineStart(); - else output.lineEnd(); - } - if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data)); - } - - if (buffer) return output = null, buffer + "" || null; - } - - line.x = function(_) { - return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), line) : x$1; - }; - - line.y = function(_) { - return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), line) : y$1; - }; - - line.defined = function(_) { - return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), line) : defined; - }; - - line.curve = function(_) { - return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; - }; - - line.context = function(_) { - return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; - }; - - return line; -} - -function area(x0, y0, y1) { - var x1 = null, - defined = constant$1(true), - context = null, - curve = curveLinear, - output = null; - - x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? x : constant$1(+x0); - y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? constant$1(0) : constant$1(+y0); - y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? y : constant$1(+y1); - - function area(data) { - var i, - j, - k, - n = (data = array(data)).length, - d, - defined0 = false, - buffer, - x0z = new Array(n), - y0z = new Array(n); - - if (context == null) output = curve(buffer = path()); - - for (i = 0; i <= n; ++i) { - if (!(i < n && defined(d = data[i], i, data)) === defined0) { - if (defined0 = !defined0) { - j = i; - output.areaStart(); - output.lineStart(); - } else { - output.lineEnd(); - output.lineStart(); - for (k = i - 1; k >= j; --k) { - output.point(x0z[k], y0z[k]); - } - output.lineEnd(); - output.areaEnd(); - } - } - if (defined0) { - x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); - output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); - } - } - - if (buffer) return output = null, buffer + "" || null; - } - - function arealine() { - return line().defined(defined).curve(curve).context(context); - } - - area.x = function(_) { - return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), x1 = null, area) : x0; - }; - - area.x0 = function(_) { - return arguments.length ? (x0 = typeof _ === "function" ? _ : constant$1(+_), area) : x0; - }; - - area.x1 = function(_) { - return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : x1; - }; - - area.y = function(_) { - return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), y1 = null, area) : y0; - }; - - area.y0 = function(_) { - return arguments.length ? (y0 = typeof _ === "function" ? _ : constant$1(+_), area) : y0; - }; - - area.y1 = function(_) { - return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : constant$1(+_), area) : y1; - }; - - area.lineX0 = - area.lineY0 = function() { - return arealine().x(x0).y(y0); - }; - - area.lineY1 = function() { - return arealine().x(x0).y(y1); - }; - - area.lineX1 = function() { - return arealine().x(x1).y(y0); - }; - - area.defined = function(_) { - return arguments.length ? (defined = typeof _ === "function" ? _ : constant$1(!!_), area) : defined; - }; - - area.curve = function(_) { - return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; - }; - - area.context = function(_) { - return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; - }; - - return area; -} - -function descending$1(a, b) { - return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; -} - -function identity$1(d) { - return d; -} - -function pie() { - var value = identity$1, - sortValues = descending$1, - sort = null, - startAngle = constant$1(0), - endAngle = constant$1(tau), - padAngle = constant$1(0); - - function pie(data) { - var i, - n = (data = array(data)).length, - j, - k, - sum = 0, - index = new Array(n), - arcs = new Array(n), - a0 = +startAngle.apply(this, arguments), - da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), - a1, - p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), - pa = p * (da < 0 ? -1 : 1), - v; - - for (i = 0; i < n; ++i) { - if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { - sum += v; - } - } - - // Optionally sort the arcs by previously-computed values or by data. - if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); }); - else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); }); - - // Compute the arcs! They are stored in the original data's order. - for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { - j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { - data: data[j], - index: i, - value: v, - startAngle: a0, - endAngle: a1, - padAngle: p - }; - } - - return arcs; - } - - pie.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), pie) : value; - }; - - pie.sortValues = function(_) { - return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; - }; - - pie.sort = function(_) { - return arguments.length ? (sort = _, sortValues = null, pie) : sort; - }; - - pie.startAngle = function(_) { - return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : startAngle; - }; - - pie.endAngle = function(_) { - return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : endAngle; - }; - - pie.padAngle = function(_) { - return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant$1(+_), pie) : padAngle; - }; - - return pie; -} - -var curveRadialLinear = curveRadial$1(curveLinear); - -function Radial(curve) { - this._curve = curve; -} - -Radial.prototype = { - areaStart: function() { - this._curve.areaStart(); - }, - areaEnd: function() { - this._curve.areaEnd(); - }, - lineStart: function() { - this._curve.lineStart(); - }, - lineEnd: function() { - this._curve.lineEnd(); - }, - point: function(a, r) { - this._curve.point(r * Math.sin(a), r * -Math.cos(a)); - } -}; - -function curveRadial$1(curve) { - - function radial(context) { - return new Radial(curve(context)); - } - - radial._curve = curve; - - return radial; -} - -function lineRadial(l) { - var c = l.curve; - - l.angle = l.x, delete l.x; - l.radius = l.y, delete l.y; - - l.curve = function(_) { - return arguments.length ? c(curveRadial$1(_)) : c()._curve; - }; - - return l; -} - -function lineRadial$1() { - return lineRadial(line().curve(curveRadialLinear)); -} - -function areaRadial() { - var a = area().curve(curveRadialLinear), - c = a.curve, - x0 = a.lineX0, - x1 = a.lineX1, - y0 = a.lineY0, - y1 = a.lineY1; - - a.angle = a.x, delete a.x; - a.startAngle = a.x0, delete a.x0; - a.endAngle = a.x1, delete a.x1; - a.radius = a.y, delete a.y; - a.innerRadius = a.y0, delete a.y0; - a.outerRadius = a.y1, delete a.y1; - a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0; - a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1; - a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0; - a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1; - - a.curve = function(_) { - return arguments.length ? c(curveRadial$1(_)) : c()._curve; - }; - - return a; -} - -function pointRadial(x, y) { - return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)]; -} - -function linkSource(d) { - return d.source; -} - -function linkTarget(d) { - return d.target; -} - -function link(curve) { - var source = linkSource, - target = linkTarget, - x$1 = x, - y$1 = y, - context = null; - - function link() { - var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv); - if (!context) context = buffer = path(); - curve(context, +x$1.apply(this, (argv[0] = s, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv)); - if (buffer) return context = null, buffer + "" || null; - } - - link.source = function(_) { - return arguments.length ? (source = _, link) : source; - }; - - link.target = function(_) { - return arguments.length ? (target = _, link) : target; - }; - - link.x = function(_) { - return arguments.length ? (x$1 = typeof _ === "function" ? _ : constant$1(+_), link) : x$1; - }; - - link.y = function(_) { - return arguments.length ? (y$1 = typeof _ === "function" ? _ : constant$1(+_), link) : y$1; - }; - - link.context = function(_) { - return arguments.length ? ((context = _ == null ? null : _), link) : context; - }; - - return link; -} - -function curveHorizontal(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); -} - -function curveVertical(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1); -} - -function curveRadial(context, x0, y0, x1, y1) { - var p0 = pointRadial(x0, y0), - p1 = pointRadial(x0, y0 = (y0 + y1) / 2), - p2 = pointRadial(x1, y0), - p3 = pointRadial(x1, y1); - context.moveTo(p0[0], p0[1]); - context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]); -} - -function linkHorizontal() { - return link(curveHorizontal); -} - -function linkVertical() { - return link(curveVertical); -} - -function linkRadial() { - var l = link(curveRadial); - l.angle = l.x, delete l.x; - l.radius = l.y, delete l.y; - return l; -} - -var circle = { - draw: function(context, size) { - var r = Math.sqrt(size / pi); - context.moveTo(r, 0); - context.arc(0, 0, r, 0, tau); - } -}; - -var cross = { - draw: function(context, size) { - var r = Math.sqrt(size / 5) / 2; - context.moveTo(-3 * r, -r); - context.lineTo(-r, -r); - context.lineTo(-r, -3 * r); - context.lineTo(r, -3 * r); - context.lineTo(r, -r); - context.lineTo(3 * r, -r); - context.lineTo(3 * r, r); - context.lineTo(r, r); - context.lineTo(r, 3 * r); - context.lineTo(-r, 3 * r); - context.lineTo(-r, r); - context.lineTo(-3 * r, r); - context.closePath(); - } -}; - -var tan30 = Math.sqrt(1 / 3), - tan30_2 = tan30 * 2; - -var diamond = { - draw: function(context, size) { - var y = Math.sqrt(size / tan30_2), - x = y * tan30; - context.moveTo(0, -y); - context.lineTo(x, 0); - context.lineTo(0, y); - context.lineTo(-x, 0); - context.closePath(); - } -}; - -var ka = 0.89081309152928522810, - kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), - kx = Math.sin(tau / 10) * kr, - ky = -Math.cos(tau / 10) * kr; - -var star = { - draw: function(context, size) { - var r = Math.sqrt(size * ka), - x = kx * r, - y = ky * r; - context.moveTo(0, -r); - context.lineTo(x, y); - for (var i = 1; i < 5; ++i) { - var a = tau * i / 5, - c = Math.cos(a), - s = Math.sin(a); - context.lineTo(s * r, -c * r); - context.lineTo(c * x - s * y, s * x + c * y); - } - context.closePath(); - } -}; - -var square = { - draw: function(context, size) { - var w = Math.sqrt(size), - x = -w / 2; - context.rect(x, x, w, w); - } -}; - -var sqrt3 = Math.sqrt(3); - -var triangle = { - draw: function(context, size) { - var y = -Math.sqrt(size / (sqrt3 * 3)); - context.moveTo(0, y * 2); - context.lineTo(-sqrt3 * y, -y); - context.lineTo(sqrt3 * y, -y); - context.closePath(); - } -}; - -var c = -0.5, - s = Math.sqrt(3) / 2, - k = 1 / Math.sqrt(12), - a = (k / 2 + 1) * 3; - -var wye = { - draw: function(context, size) { - var r = Math.sqrt(size / a), - x0 = r / 2, - y0 = r * k, - x1 = x0, - y1 = r * k + r, - x2 = -x1, - y2 = y1; - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - context.lineTo(c * x0 - s * y0, s * x0 + c * y0); - context.lineTo(c * x1 - s * y1, s * x1 + c * y1); - context.lineTo(c * x2 - s * y2, s * x2 + c * y2); - context.lineTo(c * x0 + s * y0, c * y0 - s * x0); - context.lineTo(c * x1 + s * y1, c * y1 - s * x1); - context.lineTo(c * x2 + s * y2, c * y2 - s * x2); - context.closePath(); - } -}; - -var symbols = [ - circle, - cross, - diamond, - square, - star, - triangle, - wye -]; - -function symbol(type, size) { - var context = null; - type = typeof type === "function" ? type : constant$1(type || circle); - size = typeof size === "function" ? size : constant$1(size === undefined ? 64 : +size); - - function symbol() { - var buffer; - if (!context) context = buffer = path(); - type.apply(this, arguments).draw(context, +size.apply(this, arguments)); - if (buffer) return context = null, buffer + "" || null; - } - - symbol.type = function(_) { - return arguments.length ? (type = typeof _ === "function" ? _ : constant$1(_), symbol) : type; - }; - - symbol.size = function(_) { - return arguments.length ? (size = typeof _ === "function" ? _ : constant$1(+_), symbol) : size; - }; - - symbol.context = function(_) { - return arguments.length ? (context = _ == null ? null : _, symbol) : context; - }; - - return symbol; -} - -function noop() {} - -function point$3(that, x, y) { - that._context.bezierCurveTo( - (2 * that._x0 + that._x1) / 3, - (2 * that._y0 + that._y1) / 3, - (that._x0 + 2 * that._x1) / 3, - (that._y0 + 2 * that._y1) / 3, - (that._x0 + 4 * that._x1 + x) / 6, - (that._y0 + 4 * that._y1 + y) / 6 - ); -} - -function Basis(context) { - this._context = context; -} - -Basis.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 3: point$3(this, this._x1, this._y1); // proceed - case 2: this._context.lineTo(this._x1, this._y1); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed - default: point$3(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; - -function basis(context) { - return new Basis(context); -} - -function BasisClosed(context) { - this._context = context; -} - -BasisClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = - this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x2, this._y2); - this._context.closePath(); - break; - } - case 2: { - this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); - this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x2, this._y2); - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._x2 = x, this._y2 = y; break; - case 1: this._point = 2; this._x3 = x, this._y3 = y; break; - case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break; - default: point$3(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; - -function basisClosed(context) { - return new BasisClosed(context); -} - -function BasisOpen(context) { - this._context = context; -} - -BasisOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = NaN; - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; - case 3: this._point = 4; // proceed - default: point$3(this, x, y); break; - } - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - } -}; - -function basisOpen(context) { - return new BasisOpen(context); -} - -class Bump { - constructor(context, x) { - this._context = context; - this._x = x; - } - areaStart() { - this._line = 0; - } - areaEnd() { - this._line = NaN; - } - lineStart() { - this._point = 0; - } - lineEnd() { - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - } - point(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: { - this._point = 1; - if (this._line) this._context.lineTo(x, y); - else this._context.moveTo(x, y); - break; - } - case 1: this._point = 2; // proceed - default: { - if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y); - else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y); - break; - } - } - this._x0 = x, this._y0 = y; - } -} - -function bumpX(context) { - return new Bump(context, true); -} - -function bumpY(context) { - return new Bump(context, false); -} - -function Bundle(context, beta) { - this._basis = new Basis(context); - this._beta = beta; -} - -Bundle.prototype = { - lineStart: function() { - this._x = []; - this._y = []; - this._basis.lineStart(); - }, - lineEnd: function() { - var x = this._x, - y = this._y, - j = x.length - 1; - - if (j > 0) { - var x0 = x[0], - y0 = y[0], - dx = x[j] - x0, - dy = y[j] - y0, - i = -1, - t; - - while (++i <= j) { - t = i / j; - this._basis.point( - this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), - this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) - ); - } - } - - this._x = this._y = null; - this._basis.lineEnd(); - }, - point: function(x, y) { - this._x.push(+x); - this._y.push(+y); - } -}; - -var bundle = (function custom(beta) { - - function bundle(context) { - return beta === 1 ? new Basis(context) : new Bundle(context, beta); - } - - bundle.beta = function(beta) { - return custom(+beta); - }; - - return bundle; -})(0.85); - -function point$2(that, x, y) { - that._context.bezierCurveTo( - that._x1 + that._k * (that._x2 - that._x0), - that._y1 + that._k * (that._y2 - that._y0), - that._x2 + that._k * (that._x1 - x), - that._y2 + that._k * (that._y1 - y), - that._x2, - that._y2 - ); -} - -function Cardinal(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} - -Cardinal.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x2, this._y2); break; - case 3: point$2(this, this._x1, this._y1); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; this._x1 = x, this._y1 = y; break; - case 2: this._point = 3; // proceed - default: point$2(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinal = (function custom(tension) { - - function cardinal(context) { - return new Cardinal(context, tension); - } - - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function CardinalClosed(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} - -CardinalClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = - this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 2: { - this._context.lineTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - this.point(this._x5, this._y5); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._x3 = x, this._y3 = y; break; - case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; - case 2: this._point = 3; this._x5 = x, this._y5 = y; break; - default: point$2(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinalClosed = (function custom(tension) { - - function cardinal(context) { - return new CardinalClosed(context, tension); - } - - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function CardinalOpen(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} - -CardinalOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; - case 3: this._point = 4; // proceed - default: point$2(this, x, y); break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var cardinalOpen = (function custom(tension) { - - function cardinal(context) { - return new CardinalOpen(context, tension); - } - - cardinal.tension = function(tension) { - return custom(+tension); - }; - - return cardinal; -})(0); - -function point$1(that, x, y) { - var x1 = that._x1, - y1 = that._y1, - x2 = that._x2, - y2 = that._y2; - - if (that._l01_a > epsilon) { - var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, - n = 3 * that._l01_a * (that._l01_a + that._l12_a); - x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; - y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; - } - - if (that._l23_a > epsilon) { - var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, - m = 3 * that._l23_a * (that._l23_a + that._l12_a); - x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; - y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; - } - - that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); -} - -function CatmullRom(context, alpha) { - this._context = context; - this._alpha = alpha; -} - -CatmullRom.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._l01_a = this._l12_a = this._l23_a = - this._l01_2a = this._l12_2a = this._l23_2a = - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x2, this._y2); break; - case 3: this.point(this._x2, this._y2); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; // proceed - default: point$1(this, x, y); break; - } - - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRom = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function CatmullRomClosed(context, alpha) { - this._context = context; - this._alpha = alpha; -} - -CatmullRomClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = - this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; - this._l01_a = this._l12_a = this._l23_a = - this._l01_2a = this._l12_2a = this._l23_2a = - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 2: { - this._context.lineTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - this.point(this._x5, this._y5); - break; - } - } - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; this._x3 = x, this._y3 = y; break; - case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break; - case 2: this._point = 3; this._x5 = x, this._y5 = y; break; - default: point$1(this, x, y); break; - } - - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRomClosed = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function CatmullRomOpen(context, alpha) { - this._context = context; - this._alpha = alpha; -} - -CatmullRomOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = - this._y0 = this._y1 = this._y2 = NaN; - this._l01_a = this._l12_a = this._l23_a = - this._l01_2a = this._l12_2a = this._l23_2a = - this._point = 0; - }, - lineEnd: function() { - if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - - if (this._point) { - var x23 = this._x2 - x, - y23 = this._y2 - y; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - - switch (this._point) { - case 0: this._point = 1; break; - case 1: this._point = 2; break; - case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; - case 3: this._point = 4; // proceed - default: point$1(this, x, y); break; - } - - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; - } -}; - -var catmullRomOpen = (function custom(alpha) { - - function catmullRom(context) { - return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); - } - - catmullRom.alpha = function(alpha) { - return custom(+alpha); - }; - - return catmullRom; -})(0.5); - -function LinearClosed(context) { - this._context = context; -} - -LinearClosed.prototype = { - areaStart: noop, - areaEnd: noop, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._point) this._context.closePath(); - }, - point: function(x, y) { - x = +x, y = +y; - if (this._point) this._context.lineTo(x, y); - else this._point = 1, this._context.moveTo(x, y); - } -}; - -function linearClosed(context) { - return new LinearClosed(context); -} - -function sign(x) { - return x < 0 ? -1 : 1; -} - -// Calculate the slopes of the tangents (Hermite-type interpolation) based on -// the following paper: Steffen, M. 1990. A Simple Method for Monotonic -// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO. -// NOV(II), P. 443, 1990. -function slope3(that, x2, y2) { - var h0 = that._x1 - that._x0, - h1 = x2 - that._x1, - s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), - s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), - p = (s0 * h1 + s1 * h0) / (h0 + h1); - return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; -} - -// Calculate a one-sided slope. -function slope2(that, t) { - var h = that._x1 - that._x0; - return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; -} - -// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations -// "you can express cubic Hermite interpolation in terms of cubic Bézier curves -// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1". -function point(that, t0, t1) { - var x0 = that._x0, - y0 = that._y0, - x1 = that._x1, - y1 = that._y1, - dx = (x1 - x0) / 3; - that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); -} - -function MonotoneX(context) { - this._context = context; -} - -MonotoneX.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = - this._y0 = this._y1 = - this._t0 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: this._context.lineTo(this._x1, this._y1); break; - case 3: point(this, this._t0, slope2(this, this._t0)); break; - } - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x, y) { - var t1 = NaN; - - x = +x, y = +y; - if (x === this._x1 && y === this._y1) return; // Ignore coincident points. - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; break; - case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break; - default: point(this, this._t0, t1 = slope3(this, x, y)); break; - } - - this._x0 = this._x1, this._x1 = x; - this._y0 = this._y1, this._y1 = y; - this._t0 = t1; - } -}; - -function MonotoneY(context) { - this._context = new ReflectContext(context); -} - -(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { - MonotoneX.prototype.point.call(this, y, x); -}; - -function ReflectContext(context) { - this._context = context; -} - -ReflectContext.prototype = { - moveTo: function(x, y) { this._context.moveTo(y, x); }, - closePath: function() { this._context.closePath(); }, - lineTo: function(x, y) { this._context.lineTo(y, x); }, - bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); } -}; - -function monotoneX(context) { - return new MonotoneX(context); -} - -function monotoneY(context) { - return new MonotoneY(context); -} - -function Natural(context) { - this._context = context; -} - -Natural.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = []; - this._y = []; - }, - lineEnd: function() { - var x = this._x, - y = this._y, - n = x.length; - - if (n) { - this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); - if (n === 2) { - this._context.lineTo(x[1], y[1]); - } else { - var px = controlPoints(x), - py = controlPoints(y); - for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { - this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); - } - } - } - - if (this._line || (this._line !== 0 && n === 1)) this._context.closePath(); - this._line = 1 - this._line; - this._x = this._y = null; - }, - point: function(x, y) { - this._x.push(+x); - this._y.push(+y); - } -}; - -// See https://www.particleincell.com/2012/bezier-splines/ for derivation. -function controlPoints(x) { - var i, - n = x.length - 1, - m, - a = new Array(n), - b = new Array(n), - r = new Array(n); - a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; - for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; - a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; - for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; - a[n - 1] = r[n - 1] / b[n - 1]; - for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i]; - b[n - 1] = (x[n] + a[n - 1]) / 2; - for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1]; - return [a, b]; -} - -function natural(context) { - return new Natural(context); -} - -function Step(context, t) { - this._context = context; - this._t = t; -} - -Step.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = this._y = NaN; - this._point = 0; - }, - lineEnd: function() { - if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y); - if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath(); - if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line; - }, - point: function(x, y) { - x = +x, y = +y; - switch (this._point) { - case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; - case 1: this._point = 2; // proceed - default: { - if (this._t <= 0) { - this._context.lineTo(this._x, y); - this._context.lineTo(x, y); - } else { - var x1 = this._x * (1 - this._t) + x * this._t; - this._context.lineTo(x1, this._y); - this._context.lineTo(x1, y); - } - break; - } - } - this._x = x, this._y = y; - } -}; - -function step(context) { - return new Step(context, 0.5); -} - -function stepBefore(context) { - return new Step(context, 0); -} - -function stepAfter(context) { - return new Step(context, 1); -} - -function none$1(series, order) { - if (!((n = series.length) > 1)) return; - for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) { - s0 = s1, s1 = series[order[i]]; - for (j = 0; j < m; ++j) { - s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1]; - } - } -} - -function none(series) { - var n = series.length, o = new Array(n); - while (--n >= 0) o[n] = n; - return o; -} - -function stackValue(d, key) { - return d[key]; -} - -function stackSeries(key) { - const series = []; - series.key = key; - return series; -} - -function stack() { - var keys = constant$1([]), - order = none, - offset = none$1, - value = stackValue; - - function stack(data) { - var sz = Array.from(keys.apply(this, arguments), stackSeries), - i, n = sz.length, j = -1, - oz; - - for (const d of data) { - for (i = 0, ++j; i < n; ++i) { - (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d; - } - } - - for (i = 0, oz = array(order(sz)); i < n; ++i) { - sz[oz[i]].index = i; - } - - offset(sz, oz); - return sz; - } - - stack.keys = function(_) { - return arguments.length ? (keys = typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : keys; - }; - - stack.value = function(_) { - return arguments.length ? (value = typeof _ === "function" ? _ : constant$1(+_), stack) : value; - }; - - stack.order = function(_) { - return arguments.length ? (order = _ == null ? none : typeof _ === "function" ? _ : constant$1(Array.from(_)), stack) : order; - }; - - stack.offset = function(_) { - return arguments.length ? (offset = _ == null ? none$1 : _, stack) : offset; - }; - - return stack; -} - -function expand(series, order) { - if (!((n = series.length) > 0)) return; - for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) { - for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0; - if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y; - } - none$1(series, order); -} - -function diverging(series, order) { - if (!((n = series.length) > 0)) return; - for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) { - for (yp = yn = 0, i = 0; i < n; ++i) { - if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) { - d[0] = yp, d[1] = yp += dy; - } else if (dy < 0) { - d[1] = yn, d[0] = yn += dy; - } else { - d[0] = 0, d[1] = dy; - } - } - } -} - -function silhouette(series, order) { - if (!((n = series.length) > 0)) return; - for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) { - for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0; - s0[j][1] += s0[j][0] = -y / 2; - } - none$1(series, order); -} - -function wiggle(series, order) { - if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return; - for (var y = 0, j = 1, s0, m, n; j < m; ++j) { - for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) { - var si = series[order[i]], - sij0 = si[j][1] || 0, - sij1 = si[j - 1][1] || 0, - s3 = (sij0 - sij1) / 2; - for (var k = 0; k < i; ++k) { - var sk = series[order[k]], - skj0 = sk[j][1] || 0, - skj1 = sk[j - 1][1] || 0; - s3 += skj0 - skj1; - } - s1 += sij0, s2 += s3 * sij0; - } - s0[j - 1][1] += s0[j - 1][0] = y; - if (s1) y -= s2 / s1; - } - s0[j - 1][1] += s0[j - 1][0] = y; - none$1(series, order); -} - -function appearance(series) { - var peaks = series.map(peak); - return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; }); -} - -function peak(series) { - var i = -1, j = 0, n = series.length, vi, vj = -Infinity; - while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i; - return j; -} - -function ascending(series) { - var sums = series.map(sum); - return none(series).sort(function(a, b) { return sums[a] - sums[b]; }); -} - -function sum(series) { - var s = 0, i = -1, n = series.length, v; - while (++i < n) if (v = +series[i][1]) s += v; - return s; -} - -function descending(series) { - return ascending(series).reverse(); -} - -function insideOut(series) { - var n = series.length, - i, - j, - sums = series.map(sum), - order = appearance(series), - top = 0, - bottom = 0, - tops = [], - bottoms = []; - - for (i = 0; i < n; ++i) { - j = order[i]; - if (top < bottom) { - top += sums[j]; - tops.push(j); - } else { - bottom += sums[j]; - bottoms.push(j); - } - } - - return bottoms.reverse().concat(tops); -} - -function reverse(series) { - return none(series).reverse(); -} - -var constant = x => () => x; - -function ZoomEvent(type, { - sourceEvent, - target, - transform, - dispatch -}) { - Object.defineProperties(this, { - type: {value: type, enumerable: true, configurable: true}, - sourceEvent: {value: sourceEvent, enumerable: true, configurable: true}, - target: {value: target, enumerable: true, configurable: true}, - transform: {value: transform, enumerable: true, configurable: true}, - _: {value: dispatch} - }); -} - -function Transform(k, x, y) { - this.k = k; - this.x = x; - this.y = y; -} - -Transform.prototype = { - constructor: Transform, - scale: function(k) { - return k === 1 ? this : new Transform(this.k * k, this.x, this.y); - }, - translate: function(x, y) { - return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); - }, - apply: function(point) { - return [point[0] * this.k + this.x, point[1] * this.k + this.y]; - }, - applyX: function(x) { - return x * this.k + this.x; - }, - applyY: function(y) { - return y * this.k + this.y; - }, - invert: function(location) { - return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; - }, - invertX: function(x) { - return (x - this.x) / this.k; - }, - invertY: function(y) { - return (y - this.y) / this.k; - }, - rescaleX: function(x) { - return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); - }, - rescaleY: function(y) { - return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); - }, - toString: function() { - return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; - } -}; - -var identity = new Transform(1, 0, 0); - -transform.prototype = Transform.prototype; - -function transform(node) { - while (!node.__zoom) if (!(node = node.parentNode)) return identity; - return node.__zoom; -} - -function nopropagation(event) { - event.stopImmediatePropagation(); -} - -function noevent(event) { - event.preventDefault(); - event.stopImmediatePropagation(); -} - -// Ignore right-click, since that should open the context menu. -// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event -function defaultFilter(event) { - return (!event.ctrlKey || event.type === 'wheel') && !event.button; -} - -function defaultExtent() { - var e = this; - if (e instanceof SVGElement) { - e = e.ownerSVGElement || e; - if (e.hasAttribute("viewBox")) { - e = e.viewBox.baseVal; - return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; - } - return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; - } - return [[0, 0], [e.clientWidth, e.clientHeight]]; -} - -function defaultTransform() { - return this.__zoom || identity; -} - -function defaultWheelDelta(event) { - return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1); -} - -function defaultTouchable() { - return navigator.maxTouchPoints || ("ontouchstart" in this); -} - -function defaultConstrain(transform, extent, translateExtent) { - var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], - dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], - dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], - dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1]; - return transform.translate( - dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), - dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) - ); -} - -function zoom() { - var filter = defaultFilter, - extent = defaultExtent, - constrain = defaultConstrain, - wheelDelta = defaultWheelDelta, - touchable = defaultTouchable, - scaleExtent = [0, Infinity], - translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], - duration = 250, - interpolate = interpolateZoom, - listeners = dispatch("start", "zoom", "end"), - touchstarting, - touchfirst, - touchending, - touchDelay = 500, - wheelDelay = 150, - clickDistance2 = 0, - tapDistance = 10; - - function zoom(selection) { - selection - .property("__zoom", defaultTransform) - .on("wheel.zoom", wheeled) - .on("mousedown.zoom", mousedowned) - .on("dblclick.zoom", dblclicked) - .filter(touchable) - .on("touchstart.zoom", touchstarted) - .on("touchmove.zoom", touchmoved) - .on("touchend.zoom touchcancel.zoom", touchended) - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); - } - - zoom.transform = function(collection, transform, point, event) { - var selection = collection.selection ? collection.selection() : collection; - selection.property("__zoom", defaultTransform); - if (collection !== selection) { - schedule(collection, transform, point, event); - } else { - selection.interrupt().each(function() { - gesture(this, arguments) - .event(event) - .start() - .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform) - .end(); - }); - } - }; - - zoom.scaleBy = function(selection, k, p, event) { - zoom.scaleTo(selection, function() { - var k0 = this.__zoom.k, - k1 = typeof k === "function" ? k.apply(this, arguments) : k; - return k0 * k1; - }, p, event); - }; - - zoom.scaleTo = function(selection, k, p, event) { - zoom.transform(selection, function() { - var e = extent.apply(this, arguments), - t0 = this.__zoom, - p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, - p1 = t0.invert(p0), - k1 = typeof k === "function" ? k.apply(this, arguments) : k; - return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); - }, p, event); - }; - - zoom.translateBy = function(selection, x, y, event) { - zoom.transform(selection, function() { - return constrain(this.__zoom.translate( - typeof x === "function" ? x.apply(this, arguments) : x, - typeof y === "function" ? y.apply(this, arguments) : y - ), extent.apply(this, arguments), translateExtent); - }, null, event); - }; - - zoom.translateTo = function(selection, x, y, p, event) { - zoom.transform(selection, function() { - var e = extent.apply(this, arguments), - t = this.__zoom, - p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; - return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate( - typeof x === "function" ? -x.apply(this, arguments) : -x, - typeof y === "function" ? -y.apply(this, arguments) : -y - ), e, translateExtent); - }, p, event); - }; - - function scale(transform, k) { - k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); - return k === transform.k ? transform : new Transform(k, transform.x, transform.y); - } - - function translate(transform, p0, p1) { - var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k; - return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y); - } - - function centroid(extent) { - return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2]; - } - - function schedule(transition, transform, point, event) { - transition - .on("start.zoom", function() { gesture(this, arguments).event(event).start(); }) - .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); }) - .tween("zoom", function() { - var that = this, - args = arguments, - g = gesture(that, args).event(event), - e = extent.apply(that, args), - p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, - w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), - a = that.__zoom, - b = typeof transform === "function" ? transform.apply(that, args) : transform, - i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); - return function(t) { - if (t === 1) t = b; // Avoid rounding error on end. - else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); } - g.zoom(null, t); - }; - }); - } - - function gesture(that, args, clean) { - return (!clean && that.__zooming) || new Gesture(that, args); - } - - function Gesture(that, args) { - this.that = that; - this.args = args; - this.active = 0; - this.sourceEvent = null; - this.extent = extent.apply(that, args); - this.taps = 0; - } - - Gesture.prototype = { - event: function(event) { - if (event) this.sourceEvent = event; - return this; - }, - start: function() { - if (++this.active === 1) { - this.that.__zooming = this; - this.emit("start"); - } - return this; - }, - zoom: function(key, transform) { - if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]); - if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]); - if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]); - this.that.__zoom = transform; - this.emit("zoom"); - return this; - }, - end: function() { - if (--this.active === 0) { - delete this.that.__zooming; - this.emit("end"); - } - return this; - }, - emit: function(type) { - var d = select(this.that).datum(); - listeners.call( - type, - this.that, - new ZoomEvent(type, { - sourceEvent: this.sourceEvent, - target: zoom, - type, - transform: this.that.__zoom, - dispatch: listeners - }), - d - ); - } - }; - - function wheeled(event, ...args) { - if (!filter.apply(this, arguments)) return; - var g = gesture(this, args).event(event), - t = this.__zoom, - k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), - p = pointer(event); - - // If the mouse is in the same location as before, reuse it. - // If there were recent wheel events, reset the wheel idle timeout. - if (g.wheel) { - if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { - g.mouse[1] = t.invert(g.mouse[0] = p); - } - clearTimeout(g.wheel); - } - - // If this wheel event won’t trigger a transform change, ignore it. - else if (t.k === k) return; - - // Otherwise, capture the mouse point and location at the start. - else { - g.mouse = [p, t.invert(p)]; - interrupt(this); - g.start(); - } - - noevent(event); - g.wheel = setTimeout(wheelidled, wheelDelay); - g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); - - function wheelidled() { - g.wheel = null; - g.end(); - } - } - - function mousedowned(event, ...args) { - if (touchending || !filter.apply(this, arguments)) return; - var g = gesture(this, args, true).event(event), - v = select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), - p = pointer(event, currentTarget), - currentTarget = event.currentTarget, - x0 = event.clientX, - y0 = event.clientY; - - dragDisable(event.view); - nopropagation(event); - g.mouse = [p, this.__zoom.invert(p)]; - interrupt(this); - g.start(); - - function mousemoved(event) { - noevent(event); - if (!g.moved) { - var dx = event.clientX - x0, dy = event.clientY - y0; - g.moved = dx * dx + dy * dy > clickDistance2; - } - g.event(event) - .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent)); - } - - function mouseupped(event) { - v.on("mousemove.zoom mouseup.zoom", null); - yesdrag(event.view, g.moved); - noevent(event); - g.event(event).end(); - } - } - - function dblclicked(event, ...args) { - if (!filter.apply(this, arguments)) return; - var t0 = this.__zoom, - p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), - p1 = t0.invert(p0), - k1 = t0.k * (event.shiftKey ? 0.5 : 2), - t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); - - noevent(event); - if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event); - else select(this).call(zoom.transform, t1, p0, event); - } - - function touchstarted(event, ...args) { - if (!filter.apply(this, arguments)) return; - var touches = event.touches, - n = touches.length, - g = gesture(this, args, event.changedTouches.length === n).event(event), - started, i, t, p; - - nopropagation(event); - for (i = 0; i < n; ++i) { - t = touches[i], p = pointer(t, this); - p = [p, this.__zoom.invert(p), t.identifier]; - if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; - else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0; - } - - if (touchstarting) touchstarting = clearTimeout(touchstarting); - - if (started) { - if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay); - interrupt(this); - g.start(); - } - } - - function touchmoved(event, ...args) { - if (!this.__zooming) return; - var g = gesture(this, args).event(event), - touches = event.changedTouches, - n = touches.length, i, t, p, l; - - noevent(event); - for (i = 0; i < n; ++i) { - t = touches[i], p = pointer(t, this); - if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p; - else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p; - } - t = g.that.__zoom; - if (g.touch1) { - var p0 = g.touch0[0], l0 = g.touch0[1], - p1 = g.touch1[0], l1 = g.touch1[1], - dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, - dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; - t = scale(t, Math.sqrt(dp / dl)); - p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; - l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; - } - else if (g.touch0) p = g.touch0[0], l = g.touch0[1]; - else return; - - g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); - } - - function touchended(event, ...args) { - if (!this.__zooming) return; - var g = gesture(this, args).event(event), - touches = event.changedTouches, - n = touches.length, i, t; - - nopropagation(event); - if (touchending) clearTimeout(touchending); - touchending = setTimeout(function() { touchending = null; }, touchDelay); - for (i = 0; i < n; ++i) { - t = touches[i]; - if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0; - else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1; - } - if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1; - if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]); - else { - g.end(); - // If this was a dbltap, reroute to the (optional) dblclick.zoom handler. - if (g.taps === 2) { - t = pointer(t, this); - if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { - var p = select(this).on("dblclick.zoom"); - if (p) p.apply(this, arguments); - } - } - } - } - - zoom.wheelDelta = function(_) { - return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta; - }; - - zoom.filter = function(_) { - return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter; - }; - - zoom.touchable = function(_) { - return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable; - }; - - zoom.extent = function(_) { - return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; - }; - - zoom.scaleExtent = function(_) { - return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; - }; - - zoom.translateExtent = function(_) { - return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; - }; - - zoom.constrain = function(_) { - return arguments.length ? (constrain = _, zoom) : constrain; - }; - - zoom.duration = function(_) { - return arguments.length ? (duration = +_, zoom) : duration; - }; - - zoom.interpolate = function(_) { - return arguments.length ? (interpolate = _, zoom) : interpolate; - }; - - zoom.on = function() { - var value = listeners.on.apply(listeners, arguments); - return value === listeners ? zoom : value; - }; - - zoom.clickDistance = function(_) { - return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); - }; - - zoom.tapDistance = function(_) { - return arguments.length ? (tapDistance = +_, zoom) : tapDistance; - }; - - return zoom; -} - -exports.Adder = Adder; -exports.Delaunay = Delaunay; -exports.FormatSpecifier = FormatSpecifier; -exports.InternMap = InternMap; -exports.InternSet = InternSet; -exports.Voronoi = Voronoi; -exports.active = active; -exports.arc = arc; -exports.area = area; -exports.areaRadial = areaRadial; -exports.ascending = ascending$3; -exports.autoType = autoType; -exports.axisBottom = axisBottom; -exports.axisLeft = axisLeft; -exports.axisRight = axisRight; -exports.axisTop = axisTop; -exports.bin = bin; -exports.bisect = bisectRight; -exports.bisectCenter = bisectCenter; -exports.bisectLeft = bisectLeft; -exports.bisectRight = bisectRight; -exports.bisector = bisector; -exports.blob = blob; -exports.brush = brush; -exports.brushSelection = brushSelection; -exports.brushX = brushX; -exports.brushY = brushY; -exports.buffer = buffer; -exports.chord = chord; -exports.chordDirected = chordDirected; -exports.chordTranspose = chordTranspose; -exports.cluster = cluster; -exports.color = color; -exports.contourDensity = density; -exports.contours = contours; -exports.count = count$1; -exports.create = create$1; -exports.creator = creator; -exports.cross = cross$2; -exports.csv = csv; -exports.csvFormat = csvFormat; -exports.csvFormatBody = csvFormatBody; -exports.csvFormatRow = csvFormatRow; -exports.csvFormatRows = csvFormatRows; -exports.csvFormatValue = csvFormatValue; -exports.csvParse = csvParse; -exports.csvParseRows = csvParseRows; -exports.cubehelix = cubehelix$3; -exports.cumsum = cumsum; -exports.curveBasis = basis; -exports.curveBasisClosed = basisClosed; -exports.curveBasisOpen = basisOpen; -exports.curveBumpX = bumpX; -exports.curveBumpY = bumpY; -exports.curveBundle = bundle; -exports.curveCardinal = cardinal; -exports.curveCardinalClosed = cardinalClosed; -exports.curveCardinalOpen = cardinalOpen; -exports.curveCatmullRom = catmullRom; -exports.curveCatmullRomClosed = catmullRomClosed; -exports.curveCatmullRomOpen = catmullRomOpen; -exports.curveLinear = curveLinear; -exports.curveLinearClosed = linearClosed; -exports.curveMonotoneX = monotoneX; -exports.curveMonotoneY = monotoneY; -exports.curveNatural = natural; -exports.curveStep = step; -exports.curveStepAfter = stepAfter; -exports.curveStepBefore = stepBefore; -exports.descending = descending$2; -exports.deviation = deviation; -exports.difference = difference; -exports.disjoint = disjoint; -exports.dispatch = dispatch; -exports.drag = drag; -exports.dragDisable = dragDisable; -exports.dragEnable = yesdrag; -exports.dsv = dsv; -exports.dsvFormat = dsvFormat; -exports.easeBack = backInOut; -exports.easeBackIn = backIn; -exports.easeBackInOut = backInOut; -exports.easeBackOut = backOut; -exports.easeBounce = bounceOut; -exports.easeBounceIn = bounceIn; -exports.easeBounceInOut = bounceInOut; -exports.easeBounceOut = bounceOut; -exports.easeCircle = circleInOut; -exports.easeCircleIn = circleIn; -exports.easeCircleInOut = circleInOut; -exports.easeCircleOut = circleOut; -exports.easeCubic = cubicInOut; -exports.easeCubicIn = cubicIn; -exports.easeCubicInOut = cubicInOut; -exports.easeCubicOut = cubicOut; -exports.easeElastic = elasticOut; -exports.easeElasticIn = elasticIn; -exports.easeElasticInOut = elasticInOut; -exports.easeElasticOut = elasticOut; -exports.easeExp = expInOut; -exports.easeExpIn = expIn; -exports.easeExpInOut = expInOut; -exports.easeExpOut = expOut; -exports.easeLinear = linear$1; -exports.easePoly = polyInOut; -exports.easePolyIn = polyIn; -exports.easePolyInOut = polyInOut; -exports.easePolyOut = polyOut; -exports.easeQuad = quadInOut; -exports.easeQuadIn = quadIn; -exports.easeQuadInOut = quadInOut; -exports.easeQuadOut = quadOut; -exports.easeSin = sinInOut; -exports.easeSinIn = sinIn; -exports.easeSinInOut = sinInOut; -exports.easeSinOut = sinOut; -exports.every = every; -exports.extent = extent$1; -exports.fcumsum = fcumsum; -exports.filter = filter$1; -exports.forceCenter = center; -exports.forceCollide = collide; -exports.forceLink = link$2; -exports.forceManyBody = manyBody; -exports.forceRadial = radial$1; -exports.forceSimulation = simulation; -exports.forceX = x$1; -exports.forceY = y$1; -exports.formatDefaultLocale = defaultLocale$1; -exports.formatLocale = formatLocale$1; -exports.formatSpecifier = formatSpecifier; -exports.fsum = fsum; -exports.geoAlbers = albers; -exports.geoAlbersUsa = albersUsa; -exports.geoArea = area$2; -exports.geoAzimuthalEqualArea = azimuthalEqualArea; -exports.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw; -exports.geoAzimuthalEquidistant = azimuthalEquidistant; -exports.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw; -exports.geoBounds = bounds; -exports.geoCentroid = centroid$1; -exports.geoCircle = circle$2; -exports.geoClipAntimeridian = clipAntimeridian; -exports.geoClipCircle = clipCircle; -exports.geoClipExtent = extent; -exports.geoClipRectangle = clipRectangle; -exports.geoConicConformal = conicConformal; -exports.geoConicConformalRaw = conicConformalRaw; -exports.geoConicEqualArea = conicEqualArea; -exports.geoConicEqualAreaRaw = conicEqualAreaRaw; -exports.geoConicEquidistant = conicEquidistant; -exports.geoConicEquidistantRaw = conicEquidistantRaw; -exports.geoContains = contains$1; -exports.geoDistance = distance; -exports.geoEqualEarth = equalEarth; -exports.geoEqualEarthRaw = equalEarthRaw; -exports.geoEquirectangular = equirectangular; -exports.geoEquirectangularRaw = equirectangularRaw; -exports.geoGnomonic = gnomonic; -exports.geoGnomonicRaw = gnomonicRaw; -exports.geoGraticule = graticule; -exports.geoGraticule10 = graticule10; -exports.geoIdentity = identity$4; -exports.geoInterpolate = interpolate; -exports.geoLength = length$1; -exports.geoMercator = mercator; -exports.geoMercatorRaw = mercatorRaw; -exports.geoNaturalEarth1 = naturalEarth1; -exports.geoNaturalEarth1Raw = naturalEarth1Raw; -exports.geoOrthographic = orthographic; -exports.geoOrthographicRaw = orthographicRaw; -exports.geoPath = index$2; -exports.geoProjection = projection; -exports.geoProjectionMutator = projectionMutator; -exports.geoRotation = rotation; -exports.geoStereographic = stereographic; -exports.geoStereographicRaw = stereographicRaw; -exports.geoStream = geoStream; -exports.geoTransform = transform$1; -exports.geoTransverseMercator = transverseMercator; -exports.geoTransverseMercatorRaw = transverseMercatorRaw; -exports.gray = gray; -exports.greatest = greatest; -exports.greatestIndex = greatestIndex; -exports.group = group; -exports.groupSort = groupSort; -exports.groups = groups; -exports.hcl = hcl$2; -exports.hierarchy = hierarchy; -exports.histogram = bin; -exports.hsl = hsl$2; -exports.html = html; -exports.image = image; -exports.index = index$4; -exports.indexes = indexes; -exports.interpolate = interpolate$2; -exports.interpolateArray = array$3; -exports.interpolateBasis = basis$2; -exports.interpolateBasisClosed = basisClosed$1; -exports.interpolateBlues = Blues; -exports.interpolateBrBG = BrBG; -exports.interpolateBuGn = BuGn; -exports.interpolateBuPu = BuPu; -exports.interpolateCividis = cividis; -exports.interpolateCool = cool; -exports.interpolateCubehelix = cubehelix$2; -exports.interpolateCubehelixDefault = cubehelix; -exports.interpolateCubehelixLong = cubehelixLong; -exports.interpolateDate = date$1; -exports.interpolateDiscrete = discrete; -exports.interpolateGnBu = GnBu; -exports.interpolateGreens = Greens; -exports.interpolateGreys = Greys; -exports.interpolateHcl = hcl$1; -exports.interpolateHclLong = hclLong; -exports.interpolateHsl = hsl$1; -exports.interpolateHslLong = hslLong; -exports.interpolateHue = hue; -exports.interpolateInferno = inferno; -exports.interpolateLab = lab; -exports.interpolateMagma = magma; -exports.interpolateNumber = interpolateNumber; -exports.interpolateNumberArray = numberArray; -exports.interpolateObject = object$1; -exports.interpolateOrRd = OrRd; -exports.interpolateOranges = Oranges; -exports.interpolatePRGn = PRGn; -exports.interpolatePiYG = PiYG; -exports.interpolatePlasma = plasma; -exports.interpolatePuBu = PuBu; -exports.interpolatePuBuGn = PuBuGn; -exports.interpolatePuOr = PuOr; -exports.interpolatePuRd = PuRd; -exports.interpolatePurples = Purples; -exports.interpolateRainbow = rainbow; -exports.interpolateRdBu = RdBu; -exports.interpolateRdGy = RdGy; -exports.interpolateRdPu = RdPu; -exports.interpolateRdYlBu = RdYlBu; -exports.interpolateRdYlGn = RdYlGn; -exports.interpolateReds = Reds; -exports.interpolateRgb = interpolateRgb; -exports.interpolateRgbBasis = rgbBasis; -exports.interpolateRgbBasisClosed = rgbBasisClosed; -exports.interpolateRound = interpolateRound; -exports.interpolateSinebow = sinebow; -exports.interpolateSpectral = Spectral; -exports.interpolateString = interpolateString; -exports.interpolateTransformCss = interpolateTransformCss; -exports.interpolateTransformSvg = interpolateTransformSvg; -exports.interpolateTurbo = turbo; -exports.interpolateViridis = viridis; -exports.interpolateWarm = warm; -exports.interpolateYlGn = YlGn; -exports.interpolateYlGnBu = YlGnBu; -exports.interpolateYlOrBr = YlOrBr; -exports.interpolateYlOrRd = YlOrRd; -exports.interpolateZoom = interpolateZoom; -exports.interrupt = interrupt; -exports.intersection = intersection; -exports.interval = interval; -exports.isoFormat = formatIso; -exports.isoParse = parseIso; -exports.json = json; -exports.lab = lab$1; -exports.lch = lch; -exports.least = least; -exports.leastIndex = leastIndex; -exports.line = line; -exports.lineRadial = lineRadial$1; -exports.linkHorizontal = linkHorizontal; -exports.linkRadial = linkRadial; -exports.linkVertical = linkVertical; -exports.local = local$1; -exports.map = map$1; -exports.matcher = matcher; -exports.max = max$3; -exports.maxIndex = maxIndex; -exports.mean = mean; -exports.median = median; -exports.merge = merge; -exports.min = min$2; -exports.minIndex = minIndex; -exports.namespace = namespace; -exports.namespaces = namespaces; -exports.nice = nice$1; -exports.now = now; -exports.pack = index$1; -exports.packEnclose = enclose; -exports.packSiblings = siblings; -exports.pairs = pairs; -exports.partition = partition; -exports.path = path; -exports.permute = permute; -exports.pie = pie; -exports.piecewise = piecewise; -exports.pointRadial = pointRadial; -exports.pointer = pointer; -exports.pointers = pointers; -exports.polygonArea = area$1; -exports.polygonCentroid = centroid; -exports.polygonContains = contains; -exports.polygonHull = hull; -exports.polygonLength = length; -exports.precisionFixed = precisionFixed; -exports.precisionPrefix = precisionPrefix; -exports.precisionRound = precisionRound; -exports.quadtree = quadtree; -exports.quantile = quantile$1; -exports.quantileSorted = quantileSorted; -exports.quantize = quantize$1; -exports.quickselect = quickselect; -exports.radialArea = areaRadial; -exports.radialLine = lineRadial$1; -exports.randomBates = bates; -exports.randomBernoulli = bernoulli; -exports.randomBeta = beta; -exports.randomBinomial = binomial; -exports.randomCauchy = cauchy; -exports.randomExponential = exponential; -exports.randomGamma = gamma; -exports.randomGeometric = geometric; -exports.randomInt = int; -exports.randomIrwinHall = irwinHall; -exports.randomLcg = lcg; -exports.randomLogNormal = logNormal; -exports.randomLogistic = logistic; -exports.randomNormal = normal; -exports.randomPareto = pareto; -exports.randomPoisson = poisson; -exports.randomUniform = uniform; -exports.randomWeibull = weibull; -exports.range = sequence; -exports.reduce = reduce; -exports.reverse = reverse$1; -exports.rgb = rgb; -exports.ribbon = ribbon$1; -exports.ribbonArrow = ribbonArrow; -exports.rollup = rollup; -exports.rollups = rollups; -exports.scaleBand = band; -exports.scaleDiverging = diverging$1; -exports.scaleDivergingLog = divergingLog; -exports.scaleDivergingPow = divergingPow; -exports.scaleDivergingSqrt = divergingSqrt; -exports.scaleDivergingSymlog = divergingSymlog; -exports.scaleIdentity = identity$2; -exports.scaleImplicit = implicit; -exports.scaleLinear = linear; -exports.scaleLog = log; -exports.scaleOrdinal = ordinal; -exports.scalePoint = point$4; -exports.scalePow = pow; -exports.scaleQuantile = quantile; -exports.scaleQuantize = quantize; -exports.scaleRadial = radial; -exports.scaleSequential = sequential; -exports.scaleSequentialLog = sequentialLog; -exports.scaleSequentialPow = sequentialPow; -exports.scaleSequentialQuantile = sequentialQuantile; -exports.scaleSequentialSqrt = sequentialSqrt; -exports.scaleSequentialSymlog = sequentialSymlog; -exports.scaleSqrt = sqrt$1; -exports.scaleSymlog = symlog; -exports.scaleThreshold = threshold; -exports.scaleTime = time; -exports.scaleUtc = utcTime; -exports.scan = scan; -exports.schemeAccent = Accent; -exports.schemeBlues = scheme$5; -exports.schemeBrBG = scheme$q; -exports.schemeBuGn = scheme$h; -exports.schemeBuPu = scheme$g; -exports.schemeCategory10 = category10; -exports.schemeDark2 = Dark2; -exports.schemeGnBu = scheme$f; -exports.schemeGreens = scheme$4; -exports.schemeGreys = scheme$3; -exports.schemeOrRd = scheme$e; -exports.schemeOranges = scheme; -exports.schemePRGn = scheme$p; -exports.schemePaired = Paired; -exports.schemePastel1 = Pastel1; -exports.schemePastel2 = Pastel2; -exports.schemePiYG = scheme$o; -exports.schemePuBu = scheme$c; -exports.schemePuBuGn = scheme$d; -exports.schemePuOr = scheme$n; -exports.schemePuRd = scheme$b; -exports.schemePurples = scheme$2; -exports.schemeRdBu = scheme$m; -exports.schemeRdGy = scheme$l; -exports.schemeRdPu = scheme$a; -exports.schemeRdYlBu = scheme$k; -exports.schemeRdYlGn = scheme$j; -exports.schemeReds = scheme$1; -exports.schemeSet1 = Set1; -exports.schemeSet2 = Set2; -exports.schemeSet3 = Set3; -exports.schemeSpectral = scheme$i; -exports.schemeTableau10 = Tableau10; -exports.schemeYlGn = scheme$8; -exports.schemeYlGnBu = scheme$9; -exports.schemeYlOrBr = scheme$7; -exports.schemeYlOrRd = scheme$6; -exports.select = select; -exports.selectAll = selectAll; -exports.selection = selection; -exports.selector = selector; -exports.selectorAll = selectorAll; -exports.shuffle = shuffle$1; -exports.shuffler = shuffler; -exports.some = some; -exports.sort = sort; -exports.stack = stack; -exports.stackOffsetDiverging = diverging; -exports.stackOffsetExpand = expand; -exports.stackOffsetNone = none$1; -exports.stackOffsetSilhouette = silhouette; -exports.stackOffsetWiggle = wiggle; -exports.stackOrderAppearance = appearance; -exports.stackOrderAscending = ascending; -exports.stackOrderDescending = descending; -exports.stackOrderInsideOut = insideOut; -exports.stackOrderNone = none; -exports.stackOrderReverse = reverse; -exports.stratify = stratify; -exports.style = styleValue; -exports.subset = subset; -exports.sum = sum$1; -exports.superset = superset; -exports.svg = svg; -exports.symbol = symbol; -exports.symbolCircle = circle; -exports.symbolCross = cross; -exports.symbolDiamond = diamond; -exports.symbolSquare = square; -exports.symbolStar = star; -exports.symbolTriangle = triangle; -exports.symbolWye = wye; -exports.symbols = symbols; -exports.text = text; -exports.thresholdFreedmanDiaconis = freedmanDiaconis; -exports.thresholdScott = scott; -exports.thresholdSturges = thresholdSturges; -exports.tickFormat = tickFormat; -exports.tickIncrement = tickIncrement; -exports.tickStep = tickStep; -exports.ticks = ticks; -exports.timeDay = day; -exports.timeDays = days; -exports.timeFormatDefaultLocale = defaultLocale; -exports.timeFormatLocale = formatLocale; -exports.timeFriday = friday; -exports.timeFridays = fridays; -exports.timeHour = hour; -exports.timeHours = hours; -exports.timeInterval = newInterval; -exports.timeMillisecond = millisecond; -exports.timeMilliseconds = milliseconds; -exports.timeMinute = minute; -exports.timeMinutes = minutes; -exports.timeMonday = monday; -exports.timeMondays = mondays; -exports.timeMonth = month; -exports.timeMonths = months; -exports.timeSaturday = saturday; -exports.timeSaturdays = saturdays; -exports.timeSecond = second; -exports.timeSeconds = seconds; -exports.timeSunday = sunday; -exports.timeSundays = sundays; -exports.timeThursday = thursday; -exports.timeThursdays = thursdays; -exports.timeTickInterval = timeTickInterval; -exports.timeTicks = timeTicks; -exports.timeTuesday = tuesday; -exports.timeTuesdays = tuesdays; -exports.timeWednesday = wednesday; -exports.timeWednesdays = wednesdays; -exports.timeWeek = sunday; -exports.timeWeeks = sundays; -exports.timeYear = year; -exports.timeYears = years; -exports.timeout = timeout; -exports.timer = timer; -exports.timerFlush = timerFlush; -exports.transition = transition; -exports.transpose = transpose; -exports.tree = tree; -exports.treemap = index; -exports.treemapBinary = binary; -exports.treemapDice = treemapDice; -exports.treemapResquarify = resquarify; -exports.treemapSlice = treemapSlice; -exports.treemapSliceDice = sliceDice; -exports.treemapSquarify = squarify; -exports.tsv = tsv; -exports.tsvFormat = tsvFormat; -exports.tsvFormatBody = tsvFormatBody; -exports.tsvFormatRow = tsvFormatRow; -exports.tsvFormatRows = tsvFormatRows; -exports.tsvFormatValue = tsvFormatValue; -exports.tsvParse = tsvParse; -exports.tsvParseRows = tsvParseRows; -exports.union = union; -exports.utcDay = utcDay; -exports.utcDays = utcDays; -exports.utcFriday = utcFriday; -exports.utcFridays = utcFridays; -exports.utcHour = utcHour; -exports.utcHours = utcHours; -exports.utcMillisecond = millisecond; -exports.utcMilliseconds = milliseconds; -exports.utcMinute = utcMinute; -exports.utcMinutes = utcMinutes; -exports.utcMonday = utcMonday; -exports.utcMondays = utcMondays; -exports.utcMonth = utcMonth; -exports.utcMonths = utcMonths; -exports.utcSaturday = utcSaturday; -exports.utcSaturdays = utcSaturdays; -exports.utcSecond = second; -exports.utcSeconds = seconds; -exports.utcSunday = utcSunday; -exports.utcSundays = utcSundays; -exports.utcThursday = utcThursday; -exports.utcThursdays = utcThursdays; -exports.utcTickInterval = utcTickInterval; -exports.utcTicks = utcTicks; -exports.utcTuesday = utcTuesday; -exports.utcTuesdays = utcTuesdays; -exports.utcWednesday = utcWednesday; -exports.utcWednesdays = utcWednesdays; -exports.utcWeek = utcSunday; -exports.utcWeeks = utcSundays; -exports.utcYear = utcYear; -exports.utcYears = utcYears; -exports.variance = variance; -exports.version = version; -exports.window = defaultView; -exports.xml = xml; -exports.zip = zip; -exports.zoom = zoom; -exports.zoomIdentity = identity; -exports.zoomTransform = transform; - -Object.defineProperty(exports, '__esModule', { value: true }); - -}))); diff --git a/doc/d3-hwschematic-assets/d3/dist/d3.min.js b/doc/d3-hwschematic-assets/d3/dist/d3.min.js deleted file mode 100644 index 05cd5cae..00000000 --- a/doc/d3-hwschematic-assets/d3/dist/d3.min.js +++ /dev/null @@ -1,2 +0,0 @@ -// https://d3js.org v6.7.0 Copyright 2021 Mike Bostock -!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}function e(t){let e=t,r=t;function i(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)<0?e=o+1:i=o}return e}return 1===t.length&&(e=(n,e)=>t(n)-e,r=function(t){return(e,r)=>n(t(e),r)}(t)),{left:i,center:function(t,n,r,o){null==r&&(r=0),null==o&&(o=t.length);const a=i(t,n,r,o-1);return a>r&&e(t[a-1],n)>-e(t[a],n)?a-1:a},right:function(t,n,e,i){for(null==e&&(e=0),null==i&&(i=t.length);e>>1;r(t[o],n)>0?i=o:e=o+1}return e}}}function r(t){return null===t?NaN:+t}const i=e(n),o=i.right,a=i.left,u=e(r).center;function c(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function f(t){return 0|t.length}function s(t){return!(t>0)}function l(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function h(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function d(t,n){const e=h(t,n);return e?Math.sqrt(e):e}function p(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r=o&&(e=r=o):(e>o&&(e=o),r0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}class y extends Map{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(_(this,t))}has(t){return super.has(_(this,t))}set(t,n){return super.set(b(this,t),n)}delete(t){return super.delete(m(this,t))}}class v extends Set{constructor(t,n=x){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(_(this,t))}add(t){return super.add(b(this,t))}delete(t){return super.delete(m(this,t))}}function _({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function b({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function m({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(e),t.delete(r)),e}function x(t){return null!==t&&"object"==typeof t?t.valueOf():t}function w(t){return t}function M(t,...n){return S(t,w,w,n)}function A(t,n,...e){return S(t,w,n,e)}function T(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function S(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new y,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function E(t,n){return Array.from(n,(n=>t[n]))}function k(t,...e){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[r=n]=e;if(1===r.length||e.length>1){const i=Uint32Array.from(t,((t,n)=>n));return e.length>1?(e=e.map((n=>t.map(n))),i.sort(((t,r)=>{for(const i of e){const e=n(i[t],i[r]);if(e)return e}}))):(r=t.map(r),i.sort(((t,e)=>n(r[t],r[e])))),E(t,i)}return t.sort(r)}var N=Array.prototype.slice;function C(t){return function(){return t}}var P=Math.sqrt(50),z=Math.sqrt(10),D=Math.sqrt(2);function q(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n0){let e=Math.round(t/a),r=Math.round(n/a);for(e*an&&--r,o=new Array(i=r-e+1);++un&&--r,o=new Array(i=r-e+1);++u=0?(o>=P?10:o>=z?5:o>=D?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=P?10:o>=z?5:o>=D?2:1)}function F(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=P?i*=10:o>=z?i*=5:o>=D&&(i*=2),n0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function I(t){return Math.ceil(Math.log(c(t))/Math.LN2)+1}function U(){var t=w,n=p,e=I;function r(r){Array.isArray(r)||(r=Array.from(r));var i,a,u=r.length,c=new Array(u);for(i=0;i=l)if(t>=l&&n===p){const t=R(s,l,e);isFinite(t)&&(t>0?l=(Math.floor(l/t)+1)*t:t<0&&(l=(Math.ceil(l*-t)+1)/-t))}else h.pop()}for(var d=h.length;h[0]<=s;)h.shift(),--d;for(;h[d-1]>l;)h.pop(),--d;var g,y=new Array(d+1);for(i=0;i<=d;++i)(g=y[i]=[]).x0=i>0?h[i-1]:s,g.x1=i=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e=i)&&(e=i)}return e}function Y(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function L(t,e,r=0,i=t.length-1,o=n){for(;i>r;){if(i-r>600){const n=i-r+1,a=e-r+1,u=Math.log(n),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(n-c)/n)*(a-n/2<0?-1:1);L(t,e,Math.max(r,Math.floor(e-a*c/n+f)),Math.min(i,Math.floor(e+(n-a)*c/n+f)),o)}const n=t[e];let a=r,u=i;for(j(t,r,e),o(t[i],n)>0&&j(t,r,i);a0;)--u}0===o(t[r],n)?j(t,r,u):(++u,j(t,u,i)),u<=e&&(r=u+1),e<=u&&(i=u-1)}return t}function j(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function H(t,n,e){if(r=(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,e))).length){if((n=+n)<=0||r<2)return Y(t);if(n>=1)return B(t);var r,i=(r-1)*n,o=Math.floor(i),a=B(L(t,o).subarray(0,o+1));return a+(Y(t.subarray(o+1))-a)*(i-o)}}function X(t,n,e=r){if(i=t.length){if((n=+n)<=0||i<2)return+e(t[0],0,t);if(n>=1)return+e(t[i-1],i-1,t);var i,o=(i-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function G(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e=o)&&(e=o,r=i);return r}function V(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function $(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function W(t,n){return[t,n]}function Z(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r+t(n)}function st(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function lt(){return!this.__axis}function ht(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=1===t||4===t?-1:1,s=4===t||2===t?"x":"y",l=1===t||3===t?ut:ct;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):ot:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?st:ft)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),A=w.enter().append("g").attr("class","tick"),T=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(A),T=T.merge(A.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(A.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),T=T.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",at).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),A.attr("opacity",at).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",4===t||2===t?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),T.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(lt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=it.call(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:it.call(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:it.call(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}var dt={value:()=>{}};function pt(){for(var t,n=0,e=arguments.length,r={};n=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function vt(t,n){for(var e,r=0,i=t.length;r0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),mt.hasOwnProperty(n)?{space:mt[n],local:t}:t}function wt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===bt&&n.documentElement.namespaceURI===bt?n.createElement(t):n.createElementNS(e,t)}}function Mt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function At(t){var n=xt(t);return(n.local?Mt:wt)(n)}function Tt(){}function St(t){return null==t?Tt:function(){return this.querySelector(t)}}function Et(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function kt(){return[]}function Nt(t){return null==t?kt:function(){return this.querySelectorAll(t)}}function Ct(t){return function(){return this.matches(t)}}function Pt(t){return function(n){return n.matches(t)}}var zt=Array.prototype.find;function Dt(){return this.firstElementChild}var qt=Array.prototype.filter;function Rt(){return this.children}function Ft(t){return new Array(t.length)}function Ot(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function It(t){return function(){return t}}function Ut(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;un?1:t>=n?0:NaN}function jt(t){return function(){this.removeAttribute(t)}}function Ht(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xt(t,n){return function(){this.setAttribute(t,n)}}function Gt(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Vt(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function $t(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Wt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zt(t){return function(){this.style.removeProperty(t)}}function Kt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Qt(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function Jt(t,n){return t.style.getPropertyValue(n)||Wt(t).getComputedStyle(t,null).getPropertyValue(n)}function tn(t){return function(){delete this[t]}}function nn(t,n){return function(){this[t]=n}}function en(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function rn(t){return t.trim().split(/^|\s+/)}function on(t){return t.classList||new an(t)}function an(t){this._node=t,this._names=rn(t.getAttribute("class")||"")}function un(t,n){for(var e=on(t),r=-1,i=n.length;++r=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function Tn(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Cn=[null];function Pn(t,n){this._groups=t,this._parents=n}function zn(){return new Pn([[document.documentElement]],Cn)}function Dn(t){return"string"==typeof t?new Pn([[document.querySelector(t)]],[document.documentElement]):new Pn([[t]],Cn)}Pn.prototype=zn.prototype={constructor:Pn,select:function(t){"function"!=typeof t&&(t=St(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i=x&&(x=m+1);!(b=y[x])&&++x=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Lt);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?Zt:"function"==typeof n?Qt:Kt)(t,n,null==e?"":e)):Jt(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?tn:"function"==typeof n?en:nn)(t,n)):this.node()[t]},classed:function(t,n){var e=rn(t+"");if(arguments.length<2){for(var r=on(this.node()),i=-1,o=e.length;++i()=>t;function Hn(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:s}})}function Xn(t){return!t.ctrlKey&&!t.button}function Gn(){return this.parentNode}function Vn(t,n){return null==n?{x:t.x,y:t.y}:n}function $n(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Zn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Kn(){}Hn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Qn=.7,Jn=1/Qn,te="\\s*([+-]?\\d+)\\s*",ne="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",ee="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",re=/^#([0-9a-f]{3,8})$/,ie=new RegExp("^rgb\\("+[te,te,te]+"\\)$"),oe=new RegExp("^rgb\\("+[ee,ee,ee]+"\\)$"),ae=new RegExp("^rgba\\("+[te,te,te,ne]+"\\)$"),ue=new RegExp("^rgba\\("+[ee,ee,ee,ne]+"\\)$"),ce=new RegExp("^hsl\\("+[ne,ee,ee]+"\\)$"),fe=new RegExp("^hsla\\("+[ne,ee,ee,ne]+"\\)$"),se={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function le(){return this.rgb().formatHex()}function he(){return this.rgb().formatRgb()}function de(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=re.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?pe(n):3===e?new _e(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?ge(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?ge(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=ie.exec(t))?new _e(n[1],n[2],n[3],1):(n=oe.exec(t))?new _e(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=ae.exec(t))?ge(n[1],n[2],n[3],n[4]):(n=ue.exec(t))?ge(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=ce.exec(t))?we(n[1],n[2]/100,n[3]/100,1):(n=fe.exec(t))?we(n[1],n[2]/100,n[3]/100,n[4]):se.hasOwnProperty(t)?pe(se[t]):"transparent"===t?new _e(NaN,NaN,NaN,0):null}function pe(t){return new _e(t>>16&255,t>>8&255,255&t,1)}function ge(t,n,e,r){return r<=0&&(t=n=e=NaN),new _e(t,n,e,r)}function ye(t){return t instanceof Kn||(t=de(t)),t?new _e((t=t.rgb()).r,t.g,t.b,t.opacity):new _e}function ve(t,n,e,r){return 1===arguments.length?ye(t):new _e(t,n,e,null==r?1:r)}function _e(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function be(){return"#"+xe(this.r)+xe(this.g)+xe(this.b)}function me(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function xe(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function we(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Te(t,n,e,r)}function Me(t){if(t instanceof Te)return new Te(t.h,t.s,t.l,t.opacity);if(t instanceof Kn||(t=de(t)),!t)return new Te;if(t instanceof Te)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&c<1?0:a,new Te(a,u,c,t.opacity)}function Ae(t,n,e,r){return 1===arguments.length?Me(t):new Te(t,n,e,null==r?1:r)}function Te(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Se(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Wn(Kn,de,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:le,formatHex:le,formatHsl:function(){return Me(this).formatHsl()},formatRgb:he,toString:he}),Wn(_e,ve,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new _e(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:be,formatHex:be,formatRgb:me,toString:me})),Wn(Te,Ae,Zn(Kn,{brighter:function(t){return t=null==t?Jn:Math.pow(Jn,t),new Te(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Qn:Math.pow(Qn,t),new Te(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new _e(Se(t>=240?t-240:t+120,i,r),Se(t,i,r),Se(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const Ee=Math.PI/180,ke=180/Math.PI,Ne=.96422,Ce=.82521,Pe=4/29,ze=6/29,De=3*ze*ze;function qe(t){if(t instanceof Fe)return new Fe(t.l,t.a,t.b,t.opacity);if(t instanceof je)return He(t);t instanceof _e||(t=ye(t));var n,e,r=Be(t.r),i=Be(t.g),o=Be(t.b),a=Oe((.2225045*r+.7168786*i+.0606169*o)/1);return r===i&&i===o?n=e=a:(n=Oe((.4360747*r+.3850649*i+.1430804*o)/Ne),e=Oe((.0139322*r+.0971045*i+.7141733*o)/Ce)),new Fe(116*a-16,500*(n-a),200*(a-e),t.opacity)}function Re(t,n,e,r){return 1===arguments.length?qe(t):new Fe(t,n,e,null==r?1:r)}function Fe(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Oe(t){return t>.008856451679035631?Math.pow(t,1/3):t/De+Pe}function Ie(t){return t>ze?t*t*t:De*(t-Pe)}function Ue(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Be(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ye(t){if(t instanceof je)return new je(t.h,t.c,t.l,t.opacity);if(t instanceof Fe||(t=qe(t)),0===t.a&&0===t.b)return new je(NaN,0=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r()=>t;function ar(t,n){return function(e){return t+e*n}}function ur(t,n){var e=n-t;return e?ar(t,e>180||e<-180?e-360*Math.round(e/360):e):or(isNaN(t)?n:t)}function cr(t){return 1==(t=+t)?fr:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):or(isNaN(n)?e:n)}}function fr(t,n){var e=n-t;return e?ar(t,e):or(isNaN(t)?n:t)}var sr=function t(n){var e=cr(n);function r(t,n){var r=e((t=ve(t)).r,(n=ve(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=fr(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function lr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;eo&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:_r(e,r)})),o=xr.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:_r(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:_r(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:_r(t,e)},{i:u-2,x:_r(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e=0&&n._call.call(null,t),n=n._next;--Gr}function oi(){Zr=(Wr=Qr.now())+Kr,Gr=Vr=0;try{ii()}finally{Gr=0,function(){var t,n,e=Hr,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Hr=n);Xr=t,ui(r)}(),Zr=0}}function ai(){var t=Qr.now(),n=t-Wr;n>1e3&&(Kr-=n,Wr=t)}function ui(t){Gr||(Vr&&(Vr=clearTimeout(Vr)),t-Zr>24?(t<1/0&&(Vr=setTimeout(oi,t-Qr.now()-Kr)),$r&&($r=clearInterval($r))):($r||(Wr=Qr.now(),$r=setInterval(ai,1e3)),Gr=1,Jr(oi)))}function ci(t,n,e){var r=new ei;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}ei.prototype=ri.prototype={constructor:ei,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ti():+e)+(null==n?0:+n),this._next||Xr===this||(Xr?Xr._next=this:Hr=this,Xr=this),this._call=t,this._time=e,ui()},stop:function(){this._call&&(this._call=null,this._time=1/0,ui())}};var fi=pt("start","end","cancel","interrupt"),si=[];function li(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=1,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var f,s,l,h;if(1!==e.state)return c();for(f in i)if((h=i[f]).name===e.name){if(3===h.state)return ci(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+f0)throw new Error("too late; already scheduled");return e}function di(t,n){var e=pi(t,n);if(e.state>3)throw new Error("too late; already running");return e}function pi(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function gi(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function yi(t,n){var e,r;return function(){var i=di(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?hi:di;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}var Fi=zn.prototype.constructor;function Oi(t){return function(){this.style.removeProperty(t)}}function Ii(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Ui(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&Ii(t,o,e)),r}return o._value=n,o}function Bi(t){return function(n){this.textContent=t.call(this,n)}}function Yi(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&Bi(r)),n}return r._value=t,r}var Li=0;function ji(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Hi(t){return zn().transition(t)}function Xi(){return++Li}var Gi=zn.prototype;ji.prototype=Hi.prototype={constructor:ji,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=St(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a()=>t;function mo(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function xo(t){t.stopImmediatePropagation()}function wo(t){t.preventDefault(),t.stopImmediatePropagation()}var Mo={name:"drag"},Ao={name:"space"},To={name:"handle"},So={name:"center"};const{abs:Eo,max:ko,min:No}=Math;function Co(t){return[+t[0],+t[1]]}function Po(t){return[Co(t[0]),Co(t[1])]}var zo={name:"x",handles:["w","e"].map(Bo),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},Do={name:"y",handles:["n","s"].map(Bo),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},qo={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Bo),input:function(t){return null==t?null:Po(t)},output:function(t){return t}},Ro={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Fo={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Oo={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Io={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Uo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Bo(t){return{type:t}}function Yo(t){return!t.ctrlKey&&!t.button}function Lo(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function jo(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ho(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Xo(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Go(t){var n,e=Lo,r=Yo,i=jo,o=!0,a=pt("start","brush","end"),u=6;function c(n){var e=n.property("__brush",g).selectAll(".overlay").data([Bo("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Ro.overlay).merge(e).each((function(){var t=Ho(this).extent;Dn(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),n.selectAll(".selection").data([Bo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Ro.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return Ro[t.type]})),n.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(){var t=Dn(this),n=Ho(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?n[1][0]-u/2:n[0][0]-u/2})).attr("y",(function(t){return"s"===t.type[0]?n[1][1]-u/2:n[0][1]-u/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+u:u})).attr("height",(function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+u:u}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new l(t,n,e):r}function l(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function h(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,a,u,c,l,h,d,p,g,y,v,_=this,b=e.target.__data__.type,m="selection"===(o&&e.metaKey?b="overlay":b)?Mo:o&&e.altKey?So:To,x=t===Do?null:Io[b],w=t===zo?null:Uo[b],M=Ho(_),A=M.extent,T=M.selection,S=A[0][0],E=A[0][1],k=A[1][0],N=A[1][1],C=0,P=0,z=x&&w&&o&&e.shiftKey,D=Array.from(e.touches||[e],(t=>{const n=t.identifier;return(t=In(t,_)).point0=t.slice(),t.identifier=n,t}));if("overlay"===b){T&&(g=!0);const n=[D[0],D[1]||D[0]];M.selection=T=[[i=t===Do?S:No(n[0][0],n[1][0]),u=t===zo?E:No(n[0][1],n[1][1])],[l=t===Do?k:ko(n[0][0],n[1][0]),d=t===zo?N:ko(n[0][1],n[1][1])]],D.length>1&&U()}else i=T[0][0],u=T[0][1],l=T[1][0],d=T[1][1];a=i,c=u,h=l,p=d;var q=Dn(_).attr("pointer-events","none"),R=q.selectAll(".overlay").attr("cursor",Ro[b]);gi(_);var F=s(_,arguments,!0).beforestart();if(e.touches)F.moved=I,F.ended=B;else{var O=Dn(e.view).on("mousemove.brush",I,!0).on("mouseup.brush",B,!0);o&&O.on("keydown.brush",Y,!0).on("keyup.brush",L,!0),Yn(e.view)}f.call(_),F.start(e,m.name)}function I(t){for(const n of t.changedTouches||[t])for(const t of D)t.identifier===n.identifier&&(t.cur=In(n,_));if(z&&!y&&!v&&1===D.length){const t=D[0];Eo(t.cur[0]-t[0])>Eo(t.cur[1]-t[1])?v=!0:y=!0}for(const t of D)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,wo(t),U(t)}function U(t){const n=D[0],e=n.point0;var r;switch(C=n[0]-e[0],P=n[1]-e[1],m){case Ao:case Mo:x&&(C=ko(S-i,No(k-l,C)),a=i+C,h=l+C),w&&(P=ko(E-u,No(N-d,P)),c=u+P,p=d+P);break;case To:D[1]?(x&&(a=ko(S,No(k,D[0][0])),h=ko(S,No(k,D[1][0])),x=1),w&&(c=ko(E,No(N,D[0][1])),p=ko(E,No(N,D[1][1])),w=1)):(x<0?(C=ko(S-i,No(k-i,C)),a=i+C,h=l):x>0&&(C=ko(S-l,No(k-l,C)),a=i,h=l+C),w<0?(P=ko(E-u,No(N-u,P)),c=u+P,p=d):w>0&&(P=ko(E-d,No(N-d,P)),c=u,p=d+P));break;case So:x&&(a=ko(S,No(k,i-C*x)),h=ko(S,No(k,l+C*x))),w&&(c=ko(E,No(N,u-P*w)),p=ko(E,No(N,d+P*w)))}h0&&(i=a-C),w<0?d=p-P:w>0&&(u=c-P),m=Ao,R.attr("cursor",Ro.selection),U());break;default:return}wo(t)}function L(t){switch(t.keyCode){case 16:z&&(y=v=z=!1,U());break;case 18:m===So&&(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To,U());break;case 32:m===Ao&&(t.altKey?(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=So):(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=To),R.attr("cursor",Ro[b]),U());break;default:return}wo(t)}}function d(t){s(this,arguments).moved(t)}function p(t){s(this,arguments).ended(t)}function g(){var n=this.__brush||{selection:null};return n.extent=Po(e.apply(this,arguments)),n.dim=t,n}return c.move=function(n,e){n.tween?n.on("start.brush",(function(t){s(this,arguments).beforestart().start(t)})).on("interrupt.brush end.brush",(function(t){s(this,arguments).end(t)})).tween("brush",(function(){var n=this,r=n.__brush,i=s(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=Mr(o,a);function c(t){r.selection=1===t&&null===a?null:u(t),f.call(n),i.brush()}return null!==o&&null!==a?c:c(1)})):n.each((function(){var n=this,r=arguments,i=n.__brush,o=t.input("function"==typeof e?e.apply(n,r):e,i.extent),a=s(n,r).beforestart();gi(n),i.selection=null===o?null:o,f.call(n),a.start().brush().end()}))},c.clear=function(t){c.move(t,null)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=Dn(this.that).datum();a.call(n,this.that,new mo(n,{sourceEvent:e,target:c,selection:t.output(this.state.selection),mode:r,dispatch:a}),i)}},c.extent=function(t){return arguments.length?(e="function"==typeof t?t:bo(Po(t)),c):e},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:bo(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:bo(!!t),c):i},c.handleSize=function(t){return arguments.length?(u=+t,c):u},c.keyModifiers=function(t){return arguments.length?(o=!!t,c):o},c.on=function(){var t=a.on.apply(a,arguments);return t===a?c:t},c}var Vo=Math.abs,$o=Math.cos,Wo=Math.sin,Zo=Math.PI,Ko=Zo/2,Qo=2*Zo,Jo=Math.max,ta=1e-12;function na(t,n){return Array.from({length:n-t},((n,e)=>t+e))}function ea(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function ra(t,n){var e=0,r=null,i=null,o=null;function a(a){var u,c=a.length,f=new Array(c),s=na(0,c),l=new Array(c*c),h=new Array(c),d=0;a=Float64Array.from({length:c*c},n?(t,n)=>a[n%c][n/c|0]:(t,n)=>a[n/c|0][n%c]);for(let n=0;nr(f[t],f[n])));for(const e of s){const r=n;if(t){const t=na(1+~c,c).filter((t=>t<0?a[~t*c+e]:a[e*c+t]));i&&t.sort(((t,n)=>i(t<0?-a[~t*c+e]:a[e*c+t],n<0?-a[~n*c+e]:a[e*c+n])));for(const r of t)if(r<0){(l[~r*c+e]||(l[~r*c+e]={source:null,target:null})).target={index:e,startAngle:n,endAngle:n+=a[~r*c+e]*d,value:a[~r*c+e]}}else{(l[e*c+r]||(l[e*c+r]={source:null,target:null})).source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}else{const t=na(0,c).filter((t=>a[e*c+t]||a[t*c+e]));i&&t.sort(((t,n)=>i(a[e*c+t],a[e*c+n])));for(const r of t){let t;if(eaa)if(Math.abs(s*u-c*f)>aa&&i){var h=e-o,d=r-a,p=u*u+c*c,g=h*h+d*d,y=Math.sqrt(p),v=Math.sqrt(l),_=i*Math.tan((ia-Math.acos((p+l-g)/(2*y*v)))/2),b=_/v,m=_/y;Math.abs(b-1)>aa&&(this._+="L"+(t+b*f)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>f*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,o=!!o;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>aa||Math.abs(this._y1-f)>aa)&&(this._+="L"+c+","+f),e&&(l<0&&(l=l%oa+oa),l>ua?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=c)+","+(this._y1=f):l>aa&&(this._+="A"+e+","+e+",0,"+ +(l>=ia)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var sa=Array.prototype.slice;function la(t){return function(){return t}}function ha(t){return t.source}function da(t){return t.target}function pa(t){return t.radius}function ga(t){return t.startAngle}function ya(t){return t.endAngle}function va(){return 0}function _a(){return 10}function ba(t){var n=ha,e=da,r=pa,i=pa,o=ga,a=ya,u=va,c=null;function f(){var f,s=n.apply(this,arguments),l=e.apply(this,arguments),h=u.apply(this,arguments)/2,d=sa.call(arguments),p=+r.apply(this,(d[0]=s,d)),g=o.apply(this,d)-Ko,y=a.apply(this,d)-Ko,v=+i.apply(this,(d[0]=l,d)),_=o.apply(this,d)-Ko,b=a.apply(this,d)-Ko;if(c||(c=f=fa()),h>ta&&(Vo(y-g)>2*h+ta?y>g?(g+=h,y-=h):(g-=h,y+=h):g=y=(g+y)/2,Vo(b-_)>2*h+ta?b>_?(_+=h,b-=h):(_-=h,b+=h):_=b=(_+b)/2),c.moveTo(p*$o(g),p*Wo(g)),c.arc(0,0,p,g,y),g!==_||y!==b)if(t){var m=+t.apply(this,arguments),x=v-m,w=(_+b)/2;c.quadraticCurveTo(0,0,x*$o(_),x*Wo(_)),c.lineTo(v*$o(w),v*Wo(w)),c.lineTo(x*$o(b),x*Wo(b))}else c.quadraticCurveTo(0,0,v*$o(_),v*Wo(_)),c.arc(0,0,v,_,b);if(c.quadraticCurveTo(0,0,p*$o(g),p*Wo(g)),c.closePath(),f)return c=null,f+""||null}return t&&(f.headRadius=function(n){return arguments.length?(t="function"==typeof n?n:la(+n),f):t}),f.radius=function(t){return arguments.length?(r=i="function"==typeof t?t:la(+t),f):r},f.sourceRadius=function(t){return arguments.length?(r="function"==typeof t?t:la(+t),f):r},f.targetRadius=function(t){return arguments.length?(i="function"==typeof t?t:la(+t),f):i},f.startAngle=function(t){return arguments.length?(o="function"==typeof t?t:la(+t),f):o},f.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:la(+t),f):a},f.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:la(+t),f):u},f.source=function(t){return arguments.length?(n=t,f):n},f.target=function(t){return arguments.length?(e=t,f):e},f.context=function(t){return arguments.length?(c=null==t?null:t,f):c},f}var ma=Array.prototype.slice;function xa(t,n){return t-n}var wa=t=>()=>t;function Ma(t,n){for(var e,r=-1,i=n.length;++rr!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function Ta(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function Sa(){}var Ea=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ka(){var t=1,n=1,e=I,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(xa);else{var r=p(t),i=r[0],a=r[1];n=F(i,a,n),n=Z(Math.floor(i/n)*n,Math.floor(a/n)*n,n)}return n.map((function(n){return o(t,n)}))}function o(e,i){var o=[],u=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=e[0]>=r,Ea[f<<1].forEach(p);for(;++o=r,Ea[c|f<<1].forEach(p);Ea[f<<0].forEach(p);for(;++u=r,s=e[u*t]>=r,Ea[f<<1|s<<2].forEach(p);++o=r,l=s,s=e[u*t+o+1]>=r,Ea[c|f<<1|s<<2|l<<3].forEach(p);Ea[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,Ea[s<<2].forEach(p);for(;++o=r,Ea[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}Ea[s<<3].forEach(p)}(e,i,(function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n0?o.push([t]):u.push(t)})),u.forEach((function(t){for(var n,e=0,r=o.length;e0&&a0&&u=0&&o>=0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:Sa,i):r===u},i}function Na(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[u-o+a*r]),n.data[u-e+a*r]=c/Math.min(u+1,r-1+o-u,o))}function Ca(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=c/Math.min(u+1,i-1+o-u,o))}function Pa(t){return t[0]}function za(t){return t[1]}function Da(){return 1}const qa=Math.pow(2,-52),Ra=new Uint32Array(512);class Fa{static from(t,n=Ha,e=Xa){const r=t.length,i=new Float64Array(2*r);for(let o=0;o>1;if(n>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*n-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:e,_hullTri:r,_hullHash:i}=this,o=t.length>>1;let a=1/0,u=1/0,c=-1/0,f=-1/0;for(let n=0;nc&&(c=e),r>f&&(f=r),this._ids[n]=n}const s=(a+c)/2,l=(u+f)/2;let h,d,p,g=1/0;for(let n=0;n0&&(d=n,g=e)}let _=t[2*d],b=t[2*d+1],m=1/0;for(let n=0;nr&&(n[e++]=i,r=this._dists[i])}return this.hull=n.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Ua(y,v,_,b,x,w)){const t=d,n=_,e=b;d=p,_=x,b=w,p=t,x=n,w=e}const M=function(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c);return{x:t+(f*s-u*l)*h,y:n+(a*l-c*s)*h}}(y,v,_,b,x,w);this._cx=M.x,this._cy=M.y;for(let n=0;n0&&Math.abs(f-o)<=qa&&Math.abs(s-a)<=qa)continue;if(o=f,a=s,c===h||c===d||c===p)continue;let l=0;for(let t=0,n=this._hashKey(f,s);t0?3-e:1+e)/4}(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:e,coords:r}=this;let i=0,o=0;for(;;){const a=e[t],u=t-t%3;if(o=u+(t+2)%3,-1===a){if(0===i)break;t=Ra[--i];continue}const c=a-a%3,f=u+(t+1)%3,s=c+(a+2)%3,l=n[o],h=n[t],d=n[f],p=n[s];if(Ba(r[2*l],r[2*l+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){n[t]=p,n[a]=l;const r=e[s];if(-1===r){let n=this._hullStart;do{if(this._hullTri[n]===s){this._hullTri[n]=t;break}n=this._hullPrev[n]}while(n!==this._hullStart)}this._link(t,r),this._link(a,e[o]),this._link(o,s);const u=c+(a+1)%3;i=33306690738754716e-32*Math.abs(a+u)?a-u:0}function Ua(t,n,e,r,i,o){return(Ia(i,o,t,n,e,r)||Ia(t,n,e,r,i,o)||Ia(e,r,i,o,t,n))<0}function Ba(t,n,e,r,i,o,a,u){const c=t-a,f=n-u,s=e-a,l=r-u,h=i-a,d=o-u,p=s*s+l*l,g=h*h+d*d;return c*(l*g-p*d)-f*(s*g-p*h)+(c*c+f*f)*(s*d-l*h)<0}function Ya(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=(f*s-u*l)*h,p=(a*l-c*s)*h;return d*d+p*p}function La(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const r=t[i],o=n[r];let a=i-1;for(;a>=e&&n[t[a]]>o;)t[a+1]=t[a--];t[a+1]=r}else{let i=e+1,o=r;ja(t,e+r>>1,i),n[t[e]]>n[t[r]]&&ja(t,e,r),n[t[i]]>n[t[r]]&&ja(t,i,r),n[t[e]]>n[t[i]]&&ja(t,e,i);const a=t[i],u=n[a];for(;;){do{i++}while(n[t[i]]u);if(o=o-e?(La(t,n,i,r),La(t,n,e,o-1)):(La(t,n,e,o-1),La(t,n,i,r))}}function ja(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function Ha(t){return t[0]}function Xa(t){return t[1]}const Ga=1e-6;class Va{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,e){const r=(t=+t)+(e=+e),i=n=+n;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>Ga||Math.abs(this._y1-i)>Ga)&&(this._+="L"+r+","+i),e&&(this._+=`A${e},${e},0,1,1,${t-e},${n}A${e},${e},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,n,e,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+e}v${+r}h${-e}Z`}value(){return this._||null}}class $a{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class Wa{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this,i=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,r,o=0,a=0,u=e.length;o1;)i-=2;for(let t=2;t4)for(let t=0;t0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)this.xmax?2:0)|(nthis.ymax?8:0)}}const Za=2*Math.PI,Ka=Math.pow;function Qa(t){return t[0]}function Ja(t){return t[1]}function tu(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class nu{static from(t,n=Qa,e=Ja,r){return new nu("length"in t?function(t,n,e,r){const i=t.length,o=new Float64Array(2*i);for(let a=0;a2&&function(t){const{triangles:n,coords:e}=t;for(let t=0;t1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:n.length/2},((t,n)=>n)).sort(((t,e)=>n[2*t]-n[2*e]||n[2*t+1]-n[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],r=[n[2*t],n[2*t+1],n[2*e],n[2*e+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let t=0,e=n.length/2;t0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],this.triangles[1]=r[1],this.triangles[2]=r[1],o[r[0]]=1,2===r.length&&(o[r[1]]=0))}voronoi(t){return new Wa(this,t)}*neighbors(t){const{inedges:n,hull:e,_hullIndex:r,halfedges:i,triangles:o,collinear:a}=this;if(a){const n=a.indexOf(t);return n>0&&(yield a[n-1]),void(n=0&&i!==e&&i!==r;)e=i;return i}_step(t,n,e){const{inedges:r,hull:i,_hullIndex:o,halfedges:a,triangles:u,points:c}=this;if(-1===r[t]||!c.length)return(t+1)%(c.length>>1);let f=t,s=Ka(n-c[2*t],2)+Ka(e-c[2*t+1],2);const l=r[t];let h=l;do{let r=u[h];const l=Ka(n-c[2*r],2)+Ka(e-c[2*r+1],2);if(l9999?"+"+au(t,6):au(t,4)}(t.getUTCFullYear())+"-"+au(t.getUTCMonth()+1,2)+"-"+au(t.getUTCDate(),2)+(i?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"."+au(i,3)+"Z":r?"T"+au(n,2)+":"+au(e,2)+":"+au(r,2)+"Z":e||n?"T"+au(n,2)+":"+au(e,2)+"Z":"")}function cu(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return ru;if(f)return f=!1,eu;var n,r,i=a;if(34===t.charCodeAt(i)){for(;a++=o?c=!0:10===(r=t.charCodeAt(a++))?f=!0:13===r&&(f=!0,10===t.charCodeAt(a)&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;aNu(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var Ru=qu("application/xml"),Fu=qu("text/html"),Ou=qu("image/svg+xml");function Iu(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,c,f,s,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,v=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Uu(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Bu(t){return t[0]}function Yu(t){return t[1]}function Lu(t,n,e){var r=new ju(null==n?Bu:n,null==e?Yu:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ju(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Hu(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var Xu=Lu.prototype=ju.prototype;function Gu(t){return function(){return t}}function Vu(t){return 1e-6*(t()-.5)}function $u(t){return t.x+t.vx}function Wu(t){return t.y+t.vy}function Zu(t){return t.index}function Ku(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}Xu.copy=function(){var t,n,e=new ju(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Hu(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Hu(n));return e},Xu.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Iu(this.cover(n,e),n,e,t)},Xu.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;es&&(s=r),il&&(l=i));if(c>s||f>l)return this;for(this.cover(c,f).cover(s,l),e=0;et||t>=i||r>n||n>=o;)switch(u=(nh||(o=c.y0)>d||(a=c.x1)=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,g.data),b=n-+this._y.call(null,g.data),m=_*_+b*b;if(m=(u=(p+y)/2))?p=u:y=u,(s=a>=(c=(g+v)/2))?g=c:v=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},Xu.removeAll=function(t){for(var n=0,e=t.length;n1?r[0]+r.slice(2):r,+t.slice(e+1)]}function rc(t){return(t=ec(Math.abs(t)))?t[1]:NaN}var ic,oc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ac(t){if(!(n=oc.exec(t)))throw new Error("invalid format: "+t);var n;return new uc({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function uc(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function cc(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}ac.prototype=uc.prototype,uc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fc={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>cc(100*t,n),r:cc,s:function(t,n){var e=ec(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(ic=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ec(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function sc(t){return t}var lc,hc=Array.prototype.map,dc=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function pc(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?sc:(n=hc.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?sc:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(hc.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function l(t){var n=(t=ac(t)).fill,e=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,_=t.type;"n"===_?(g=!0,_="g"):fc[_]||(void 0===y&&(y=12),v=!0,_="g"),(d||"0"===n&&"="===e)&&(d=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",m="$"===h?o:/[%p]/.test(_)?c:"",x=fc[_],w=/[defgprs%]/.test(_);function M(t){var i,o,c,h=b,M=m;if("c"===_)M=x(t)+M,t="";else{var A=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:x(Math.abs(t),y),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),A&&0==+t&&"+"!==l&&(A=!1),h=(A?"("===l?l:f:"-"===l||"("===l?"":l)+h,M=("s"===_?dc[8+ic/3]:"")+M+(A&&"("===l?")":""),w)for(i=-1,o=t.length;++i(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var T=h.length+t.length+M.length,S=T>1)+h+t+M+S.slice(T);break;default:t=S+h+t+M}return u(t)}return y=void 0===y?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),M.toString=function(){return t+""},M}return{format:l,formatPrefix:function(t,n){var e=l(((t=ac(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3))),i=Math.pow(10,-r),o=dc[8+r/3];return function(t){return e(i*t)+o}}}}function gc(n){return lc=pc(n),t.format=lc.format,t.formatPrefix=lc.formatPrefix,lc}function yc(t){return Math.max(0,-rc(Math.abs(t)))}function vc(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(rc(n)/3)))-rc(Math.abs(t)))}function _c(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,rc(n)-rc(t))+1}t.format=void 0,t.formatPrefix=void 0,gc({thousands:",",grouping:[3],currency:["$",""]});var bc=1e-6,mc=1e-12,xc=Math.PI,wc=xc/2,Mc=xc/4,Ac=2*xc,Tc=180/xc,Sc=xc/180,Ec=Math.abs,kc=Math.atan,Nc=Math.atan2,Cc=Math.cos,Pc=Math.ceil,zc=Math.exp,Dc=Math.hypot,qc=Math.log,Rc=Math.pow,Fc=Math.sin,Oc=Math.sign||function(t){return t>0?1:t<0?-1:0},Ic=Math.sqrt,Uc=Math.tan;function Bc(t){return t>1?0:t<-1?xc:Math.acos(t)}function Yc(t){return t>1?wc:t<-1?-wc:Math.asin(t)}function Lc(t){return(t=Fc(t/2))*t}function jc(){}function Hc(t,n){t&&Gc.hasOwnProperty(t.type)&&Gc[t.type](t,n)}var Xc={Feature:function(t,n){Hc(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r=0?1:-1,i=r*e,o=Cc(n=(n*=Sc)/2+Mc),a=Fc(n),u=tf*a,c=Jc*o+u*Cc(i),f=u*r*Fc(i);df.add(Nc(f,c)),Qc=t,Jc=o,tf=a}function mf(t){return[Nc(t[1],t[0]),Yc(t[2])]}function xf(t){var n=t[0],e=t[1],r=Cc(e);return[r*Cc(n),r*Fc(n),Fc(e)]}function wf(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Mf(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Af(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Tf(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Sf(t){var n=Ic(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Ef,kf,Nf,Cf,Pf,zf,Df,qf,Rf,Ff,Of,If,Uf,Bf,Yf,Lf,jf={point:Hf,lineStart:Gf,lineEnd:Vf,polygonStart:function(){jf.point=$f,jf.lineStart=Wf,jf.lineEnd=Zf,sf=new g,gf.polygonStart()},polygonEnd:function(){gf.polygonEnd(),jf.point=Hf,jf.lineStart=Gf,jf.lineEnd=Vf,df<0?(nf=-(rf=180),ef=-(of=90)):sf>bc?of=90:sf<-1e-6&&(ef=-90),hf[0]=nf,hf[1]=rf},sphere:function(){nf=-(rf=180),ef=-(of=90)}};function Hf(t,n){lf.push(hf=[nf=t,rf=t]),nof&&(of=n)}function Xf(t,n){var e=xf([t*Sc,n*Sc]);if(ff){var r=Mf(ff,e),i=Mf([r[1],-r[0],0],r);Sf(i),i=mf(i);var o,a=t-af,u=a>0?1:-1,c=i[0]*Tc*u,f=Ec(a)>180;f^(u*afof&&(of=o):f^(u*af<(c=(c+360)%360-180)&&cof&&(of=n)),f?tKf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t):rf>=nf?(trf&&(rf=t)):t>af?Kf(nf,t)>Kf(nf,rf)&&(rf=t):Kf(t,rf)>Kf(nf,rf)&&(nf=t)}else lf.push(hf=[nf=t,rf=t]);nof&&(of=n),ff=e,af=t}function Gf(){jf.point=Xf}function Vf(){hf[0]=nf,hf[1]=rf,jf.point=Hf,ff=null}function $f(t,n){if(ff){var e=t-af;sf.add(Ec(e)>180?e+(e>0?360:-360):e)}else uf=t,cf=n;gf.point(t,n),Xf(t,n)}function Wf(){gf.lineStart()}function Zf(){$f(uf,cf),gf.lineEnd(),Ec(sf)>bc&&(nf=-(rf=180)),hf[0]=nf,hf[1]=rf,ff=null}function Kf(t,n){return(n-=t)<0?n+360:n}function Qf(t,n){return t[0]-n[0]}function Jf(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nxc?t+Math.round(-t/Ac)*Ac:t,n]}function ps(t,n,e){return(t%=Ac)?n||e?hs(ys(t),vs(n,e)):ys(t):n||e?vs(n,e):ds}function gs(t){return function(n,e){return[(n+=t)>xc?n-Ac:n<-xc?n+Ac:n,e]}}function ys(t){var n=gs(t);return n.invert=gs(-t),n}function vs(t,n){var e=Cc(t),r=Fc(t),i=Cc(n),o=Fc(n);function a(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*e+u*r;return[Nc(c*i-s*o,u*e-f*r),Yc(s*i+c*o)]}return a.invert=function(t,n){var a=Cc(n),u=Cc(t)*a,c=Fc(t)*a,f=Fc(n),s=f*i-c*o;return[Nc(c*i+f*o,u*e+s*r),Yc(s*e-u*r)]},a}function _s(t){function n(n){return(n=t(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n}return t=ps(t[0]*Sc,t[1]*Sc,t.length>2?t[2]*Sc:0),n.invert=function(n){return(n=t.invert(n[0]*Sc,n[1]*Sc))[0]*=Tc,n[1]*=Tc,n},n}function bs(t,n,e,r,i,o){if(e){var a=Cc(n),u=Fc(n),c=r*e;null==i?(i=n+r*Ac,o=n-c/2):(i=ms(a,i),o=ms(a,o),(r>0?io)&&(i+=r*Ac));for(var f,s=i;r>0?s>o:s1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function ws(t,n){return Ec(t[0]-n[0])=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Ts(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r=0?1:-1,E=S*T,k=E>xc,N=v*M;if(c.add(Nc(N*S*Fc(E),_*A+N*Cc(E))),a+=k?T+S*Ac:T,k^p>=e^x>=e){var C=Mf(xf(d),xf(m));Sf(C);var P=Mf(o,C);Sf(P);var z=(k^T>=0?-1:1)*Yc(P[2]);(r>z||r===z&&(C[0]||C[1]))&&(u+=k^T>=0?1:-1)}}return(a<-1e-6||a0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(Ns))}return h}}function Ns(t){return t.length>1}function Cs(t,n){return((t=t.x)[0]<0?t[1]-wc-bc:wc-t[1])-((n=n.x)[0]<0?n[1]-wc-bc:wc-n[1])}ds.invert=ds;var Ps=ks((function(){return!0}),(function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?xc:-xc,c=Ec(o-e);Ec(c-xc)0?wc:-wc),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=xc&&(Ec(e-i)bc?kc((Fc(n)*(o=Cc(r))*Fc(e)-Fc(r)*(i=Cc(n))*Fc(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}),(function(t,n,e,r){var i;if(null==t)i=e*wc,r.point(-xc,i),r.point(0,i),r.point(xc,i),r.point(xc,0),r.point(xc,-i),r.point(0,-i),r.point(-xc,-i),r.point(-xc,0),r.point(-xc,i);else if(Ec(t[0]-n[0])>bc){var o=t[0]0,i=Ec(n)>bc;function o(t,e){return Cc(t)*Cc(e)>n}function a(t,e,r){var i=[1,0,0],o=Mf(xf(t),xf(e)),a=wf(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=Mf(i,o),h=Tf(i,f);Af(h,Tf(o,s));var d=l,p=wf(h,d),g=wf(d,d),y=p*p-g*(wf(h,h)-1);if(!(y<0)){var v=Ic(y),_=Tf(d,(-p-v)/g);if(Af(_,h),_=mf(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x0^_[1]<(Ec(_[0]-m)xc^(m<=_[0]&&_[0]<=x)){var S=Tf(d,(-p+v)/g);return Af(S,h),[_,mf(S)]}}}function u(n,e){var i=r?t:xc-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return ks(o,(function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],g=o(l,h),y=r?g?0:u(l,h):g?u(l+(l<0?xc:-xc),h):0;if(!n&&(f=c=g)&&t.lineStart(),g!==c&&(!(d=a(n,p))||ws(n,d)||ws(p,d))&&(p[2]=1),g!==c)s=0,g?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1],2),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;y&e||!(v=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1],3)))}!g||n&&ws(n,p)||t.point(p[0],p[1]),n=p,c=g,e=y},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}}),(function(n,r,i,o){bs(o,t,e,i,n,r)}),r?[0,-t]:[-xc,t-xc])}var Ds,qs,Rs,Fs,Os=1e9,Is=-Os;function Us(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return Ec(r[0]-t)0?0:3:Ec(r[0]-e)0?2:1:Ec(r[1]-n)0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,g,y,v,_,b=a,m=xs(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(M(l,h),d&&y&&m.rejoin(),c.push(m.result()));x.point=w,y&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;er&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=V(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&As(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),v)l=o,h=a,d=u,v=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&y)b.point(o,a);else{var c=[p=Math.max(Is,Math.min(Os,p)),g=Math.max(Is,Math.min(Os,g))],m=[o=Math.max(Is,Math.min(Os,o)),a=Math.max(Is,Math.min(Os,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a0)){if(a/=h,h<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,g=a,y=u}return x}}var Bs={sphere:jc,point:jc,lineStart:function(){Bs.point=Ls,Bs.lineEnd=Ys},lineEnd:jc,polygonStart:jc,polygonEnd:jc};function Ys(){Bs.point=Bs.lineEnd=jc}function Ls(t,n){qs=t*=Sc,Rs=Fc(n*=Sc),Fs=Cc(n),Bs.point=js}function js(t,n){t*=Sc;var e=Fc(n*=Sc),r=Cc(n),i=Ec(t-qs),o=Cc(i),a=r*Fc(i),u=Fs*e-Rs*r*o,c=Rs*e+Fs*r*o;Ds.add(Nc(Ic(a*a+u*u),c)),qs=t,Rs=e,Fs=r}function Hs(t){return Ds=new g,Wc(t,Bs),+Ds}var Xs=[null,null],Gs={type:"LineString",coordinates:Xs};function Vs(t,n){return Xs[0]=t,Xs[1]=n,Hs(Gs)}var $s={Feature:function(t,n){return Zs(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r0&&(i=Vs(t[o],t[o-1]))>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))bc})).map(c)).concat(Z(Pc(o/d)*d,i,d).filter((function(t){return Ec(t%g)>bc})).map(f))}return v.lines=function(){return _().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),v.precision(y)):[[r,u],[e,a]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),v.precision(y)):[[n,o],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(y=+h,c=el(o,i,90),f=rl(n,t,y),s=el(u,a,90),l=rl(r,e,y),v):y},v.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}var ol,al,ul,cl,fl=t=>t,sl=new g,ll=new g,hl={point:jc,lineStart:jc,lineEnd:jc,polygonStart:function(){hl.lineStart=dl,hl.lineEnd=yl},polygonEnd:function(){hl.lineStart=hl.lineEnd=hl.point=jc,sl.add(Ec(ll)),ll=new g},result:function(){var t=sl/2;return sl=new g,t}};function dl(){hl.point=pl}function pl(t,n){hl.point=gl,ol=ul=t,al=cl=n}function gl(t,n){ll.add(cl*t-ul*n),ul=t,cl=n}function yl(){gl(ol,al)}var vl=1/0,_l=vl,bl=-vl,ml=bl,xl={point:function(t,n){tbl&&(bl=t);n<_l&&(_l=n);n>ml&&(ml=n)},lineStart:jc,lineEnd:jc,polygonStart:jc,polygonEnd:jc,result:function(){var t=[[vl,_l],[bl,ml]];return bl=ml=-(_l=vl=1/0),t}};var wl,Ml,Al,Tl,Sl=0,El=0,kl=0,Nl=0,Cl=0,Pl=0,zl=0,Dl=0,ql=0,Rl={point:Fl,lineStart:Ol,lineEnd:Bl,polygonStart:function(){Rl.lineStart=Yl,Rl.lineEnd=Ll},polygonEnd:function(){Rl.point=Fl,Rl.lineStart=Ol,Rl.lineEnd=Bl},result:function(){var t=ql?[zl/ql,Dl/ql]:Pl?[Nl/Pl,Cl/Pl]:kl?[Sl/kl,El/kl]:[NaN,NaN];return Sl=El=kl=Nl=Cl=Pl=zl=Dl=ql=0,t}};function Fl(t,n){Sl+=t,El+=n,++kl}function Ol(){Rl.point=Il}function Il(t,n){Rl.point=Ul,Fl(Al=t,Tl=n)}function Ul(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,Fl(Al=t,Tl=n)}function Bl(){Rl.point=Fl}function Yl(){Rl.point=jl}function Ll(){Hl(wl,Ml)}function jl(t,n){Rl.point=Hl,Fl(wl=Al=t,Ml=Tl=n)}function Hl(t,n){var e=t-Al,r=n-Tl,i=Ic(e*e+r*r);Nl+=i*(Al+t)/2,Cl+=i*(Tl+n)/2,Pl+=i,zl+=(i=Tl*t-Al*n)*(Al+t),Dl+=i*(Tl+n),ql+=3*i,Fl(Al=t,Tl=n)}function Xl(t){this._context=t}Xl.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Ac)}},result:jc};var Gl,Vl,$l,Wl,Zl,Kl=new g,Ql={point:jc,lineStart:function(){Ql.point=Jl},lineEnd:function(){Gl&&th(Vl,$l),Ql.point=jc},polygonStart:function(){Gl=!0},polygonEnd:function(){Gl=null},result:function(){var t=+Kl;return Kl=new g,t}};function Jl(t,n){Ql.point=th,Vl=Wl=t,$l=Zl=n}function th(t,n){Wl-=t,Zl-=n,Kl.add(Ic(Wl*Wl+Zl*Zl)),Wl=t,Zl=n}function nh(){this._string=[]}function eh(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function rh(t){return function(n){var e=new ih;for(var r in t)e[r]=t[r];return e.stream=n,e}}function ih(){}function oh(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Wc(e,t.stream(xl)),n(xl.result()),null!=r&&t.clipExtent(r),t}function ah(t,n,e){return oh(t,(function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])}),e)}function uh(t,n,e){return ah(t,[[0,0],n],e)}function ch(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])}),e)}function fh(t,n,e){return oh(t,(function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])}),e)}nh.prototype={_radius:4.5,_circle:eh(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=eh(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},ih.prototype={constructor:ih,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sh=Cc(30*Sc);function lh(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,g,y){var v=f-r,_=s-i,b=v*v+_*_;if(b>4*n&&g--){var m=a+h,x=u+d,w=c+p,M=Ic(m*m+x*x+w*w),A=Yc(w/=M),T=Ec(Ec(w)-1)n||Ec((v*N+_*C)/b-.5)>.3||a*h+u*d+c*p2?t[2]%360*Sc:0,N()):[y*Tc,v*Tc,_*Tc]},E.angle=function(t){return arguments.length?(b=t%360*Sc,N()):b*Tc},E.reflectX=function(t){return arguments.length?(m=t?-1:1,N()):m<0},E.reflectY=function(t){return arguments.length?(x=t?-1:1,N()):x<0},E.precision=function(t){return arguments.length?(a=lh(u,S=t*t),C()):Ic(S)},E.fitExtent=function(t,n){return ah(E,t,n)},E.fitSize=function(t,n){return uh(E,t,n)},E.fitWidth=function(t,n){return ch(E,t,n)},E.fitHeight=function(t,n){return fh(E,t,n)},function(){return n=t.apply(this,arguments),E.invert=n.invert&&k,N()}}function yh(t){var n=0,e=xc/3,r=gh(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Sc,e=t[1]*Sc):[n*Tc,e*Tc]},i}function vh(t,n){var e=Fc(t),r=(e+Fc(n))/2;if(Ec(r)0?n<-wc+bc&&(n=-wc+bc):n>wc-bc&&(n=wc-bc);var e=i/Rc(Sh(n),r);return[e*Fc(r*t),i-e*Cc(r*t)]}return o.invert=function(t,n){var e=i-n,o=Oc(r)*Ic(t*t+e*e),a=Nc(t,Ec(e))*Oc(e);return e*r<0&&(a-=xc*Oc(t)*Oc(e)),[a/r,2*kc(Rc(i/o,1/r))-wc]},o}function kh(t,n){return[t,n]}function Nh(t,n){var e=Cc(t),r=t===n?Fc(t):(e-Cc(n))/(n-t),i=e/r+t;if(Ec(r)=0;)n+=e[r].value;else n=1;t.value=n}function Xh(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=Vh)):void 0===n&&(n=Gh);for(var e,r,i,o,a,u=new Zh(t),c=[u];e=c.pop();)if((i=n(e.data))&&(a=(i=Array.from(i)).length))for(e.children=i,o=a-1;o>=0;--o)c.push(r=i[o]=new Zh(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Wh)}function Gh(t){return t.children}function Vh(t){return Array.isArray(t)?t[1]:null}function $h(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function Wh(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Zh(t){this.data=t,this.depth=this.height=0,this.parent=null}function Kh(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(Array.from(t))).length,o=[];r0&&e*e>r*r+i*i}function nd(t,n){for(var e=0;e(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function ad(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function ud(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function cd(t){this._=t,this.next=null,this.previous=null}function fd(t){if(!(i=(t=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(t)).length))return 0;var n,e,r,i,o,a,u,c,f,s,l;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;od(e,n,r=t[2]),n=new cd(n),e=new cd(e),r=new cd(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;ubc&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ih.invert=xh(Yc),Uh.invert=xh((function(t){return 2*kc(t)})),Bh.invert=function(t,n){return[-n,2*kc(zc(t))-wc]},Zh.prototype=Xh.prototype={constructor:Zh,count:function(){return this.eachAfter(Hh)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,o=this,a=[o],u=[],c=-1;o=a.pop();)if(u.push(o),e=o.children)for(r=0,i=e.length;r=0;--r)o.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Xh(this).eachBefore($h)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;eh&&(h=u),y=s*s*g,(d=Math.max(h/y,y/l))>p){s-=u;break}p=d}v.push(a={value:s,dice:c1?n:1)},e}(Pd);var qd=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l1?n:1)},e}(Pd);function Rd(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function Fd(t,n){return t[0]-n[0]||t[1]-n[1]}function Od(t){const n=t.length,e=[0,1];let r,i=2;for(r=2;r1&&Rd(t[e[i-2]],t[e[i-1]],t[r])<=0;)--i;e[i++]=r}return e.slice(0,i)}var Id=Math.random,Ud=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Id),Bd=function t(n){function e(t,e){return arguments.length<2&&(e=t,t=0),t=Math.floor(t),e=Math.floor(e)-t,function(){return Math.floor(n()*e+t)}}return e.source=t,e}(Id),Yd=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Id),Ld=function t(n){var e=Yd.source(n);function r(){var t=e.apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(Id),jd=function t(n){function e(t){return(t=+t)<=0?()=>0:function(){for(var e=0,r=t;r>1;--r)e+=n();return e+r*n()}}return e.source=t,e}(Id),Hd=function t(n){var e=jd.source(n);function r(t){if(0==(t=+t))return n;var r=e(t);return function(){return r()/t}}return r.source=t,r}(Id),Xd=function t(n){function e(t){return function(){return-Math.log1p(-n())/t}}return e.source=t,e}(Id),Gd=function t(n){function e(t){if((t=+t)<0)throw new RangeError("invalid alpha");return t=1/-t,function(){return Math.pow(1-n(),t)}}return e.source=t,e}(Id),Vd=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return function(){return Math.floor(n()+t)}}return e.source=t,e}(Id),$d=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return 0===t?()=>1/0:1===t?()=>1:(t=Math.log1p(-t),function(){return 1+Math.floor(Math.log1p(-n())/t)})}return e.source=t,e}(Id),Wd=function t(n){var e=Yd.source(n)();function r(t,r){if((t=+t)<0)throw new RangeError("invalid k");if(0===t)return()=>0;if(r=null==r?1:+r,1===t)return()=>-Math.log1p(-n())*r;var i=(t<1?t+1:t)-1/3,o=1/(3*Math.sqrt(i)),a=t<1?()=>Math.pow(n(),1/t):()=>1;return function(){do{do{var t=e(),u=1+o*t}while(u<=0);u*=u*u;var c=1-n()}while(c>=1-.0331*t*t*t*t&&Math.log(c)>=.5*t*t+i*(1-u+Math.log(u)));return i*u*a()*r}}return r.source=t,r}(Id),Zd=function t(n){var e=Wd.source(n);function r(t,n){var r=e(t),i=e(n);return function(){var t=r();return 0===t?0:t/(t+i())}}return r.source=t,r}(Id),Kd=function t(n){var e=$d.source(n),r=Zd.source(n);function i(t,n){return t=+t,(n=+n)>=1?()=>t:n<=0?()=>0:function(){for(var i=0,o=t,a=n;o*a>16&&o*(1-a)>16;){var u=Math.floor((o+1)*a),c=r(u,o-u+1)();c<=a?(i+=u,o-=u,a=(a-c)/(1-c)):(o=u-1,a/=c)}for(var f=a<.5,s=e(f?a:1-a),l=s(),h=0;l<=o;++h)l+=s();return i+(f?h:o-h)}}return i.source=t,i}(Id),Qd=function t(n){function e(t,e,r){var i;return 0==(t=+t)?i=t=>-Math.log(t):(t=1/t,i=n=>Math.pow(n,t)),e=null==e?0:+e,r=null==r?1:+r,function(){return e+r*i(-Math.log1p(-n()))}}return e.source=t,e}(Id),Jd=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){return t+e*Math.tan(Math.PI*n())}}return e.source=t,e}(Id),tp=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){var r=n();return t+e*Math.log(r/(1-r))}}return e.source=t,e}(Id),np=function t(n){var e=Wd.source(n),r=Kd.source(n);function i(t){return function(){for(var i=0,o=t;o>16;){var a=Math.floor(.875*o),u=e(a)();if(u>o)return i+r(a-1,o/u)();i+=a,o-=u}for(var c=-Math.log1p(-n()),f=0;c<=o;++f)c-=Math.log1p(-n());return i+f}}return i.source=t,i}(Id);const ep=1/4294967296;function rp(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function ip(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const op=Symbol("implicit");function ap(){var t=new Map,n=[],e=[],r=op;function i(i){var o=i+"",a=t.get(o);if(!a){if(r!==op)return r;t.set(o,a=n.push(i))}return e[(a-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Map;for(const r of e){const e=r+"";t.has(e)||t.set(e,n.push(r))}return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return ap(n,e).unknown(r)},rp.apply(i,arguments),i}function up(){var t,n,e=ap().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,u=!1,c=0,f=0,s=.5;function l(){var e=r().length,l=an&&(e=t,t=n,n=e),function(e){return Math.max(t,Math.min(n,e))}}(a[0],a[t-1])),r=t>2?pp:dp,i=o=null,l}function l(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),_r)))(e)))},l.domain=function(t){return arguments.length?(a=Array.from(t,fp),s()):a.slice()},l.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},l.rangeRound=function(t){return u=Array.from(t),c=Ar,s()},l.clamp=function(t){return arguments.length?(f=!!t||lp,s()):f!==lp},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function vp(){return yp()(lp,lp)}function _p(n,e,r,i){var o,a=F(n,e,r);switch((i=ac(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=vc(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=_c(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=yc(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function bp(t){var n=t.domain;return t.ticks=function(t){var e=n();return q(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return _p(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,u=o.length-1,c=o[a],f=o[u],s=10;for(f0;){if((i=R(c,f,e))===r)return o[a]=c,o[u]=f,n(o);if(i>0)c=Math.floor(c/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,f=Math.floor(f*i)/i}r=i}return t},t}function mp(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a0){for(;h<=d;++h)for(s=1,f=r(h);sc)break;g.push(l)}}else for(;h<=d;++h)for(s=a-1,f=r(h);s>=1;--s)if(!((l=f*s)c)break;g.push(l)}2*g.length0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a=n)for(;t(n),!e(n);)n.setTime(n-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););}))},e&&(i.count=function(n,r){return Ip.setTime(+n),Up.setTime(+r),t(Ip),t(Up),Math.floor(e(Ip,Up))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var Yp=Bp((function(){}),(function(t,n){t.setTime(+t+n)}),(function(t,n){return n-t}));Yp.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Bp((function(n){n.setTime(Math.floor(n/t)*t)}),(function(n,e){n.setTime(+n+e*t)}),(function(n,e){return(e-n)/t})):Yp:null};var Lp=Yp.range;const jp=1e3,Hp=6e4,Xp=36e5,Gp=864e5,Vp=6048e5,$p=2592e6,Wp=31536e6;var Zp=Bp((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,n){t.setTime(+t+n*jp)}),(function(t,n){return(n-t)/jp}),(function(t){return t.getUTCSeconds()})),Kp=Zp.range,Qp=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getMinutes()})),Jp=Qp.range,tg=Bp((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*jp-t.getMinutes()*Hp)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getHours()})),ng=tg.range,eg=Bp((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Gp),(t=>t.getDate()-1)),rg=eg.range;function ig(t){return Bp((function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),(function(t,n){t.setDate(t.getDate()+7*n)}),(function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Hp)/Vp}))}var og=ig(0),ag=ig(1),ug=ig(2),cg=ig(3),fg=ig(4),sg=ig(5),lg=ig(6),hg=og.range,dg=ag.range,pg=ug.range,gg=cg.range,yg=fg.range,vg=sg.range,_g=lg.range,bg=Bp((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,n){t.setMonth(t.getMonth()+n)}),(function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),mg=bg.range,xg=Bp((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n)}),(function(t,n){return n.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));xg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),(function(n,e){n.setFullYear(n.getFullYear()+e*t)})):null};var wg=xg.range,Mg=Bp((function(t){t.setUTCSeconds(0,0)}),(function(t,n){t.setTime(+t+n*Hp)}),(function(t,n){return(n-t)/Hp}),(function(t){return t.getUTCMinutes()})),Ag=Mg.range,Tg=Bp((function(t){t.setUTCMinutes(0,0,0)}),(function(t,n){t.setTime(+t+n*Xp)}),(function(t,n){return(n-t)/Xp}),(function(t){return t.getUTCHours()})),Sg=Tg.range,Eg=Bp((function(t){t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+n)}),(function(t,n){return(n-t)/Gp}),(function(t){return t.getUTCDate()-1})),kg=Eg.range;function Ng(t){return Bp((function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCDate(t.getUTCDate()+7*n)}),(function(t,n){return(n-t)/Vp}))}var Cg=Ng(0),Pg=Ng(1),zg=Ng(2),Dg=Ng(3),qg=Ng(4),Rg=Ng(5),Fg=Ng(6),Og=Cg.range,Ig=Pg.range,Ug=zg.range,Bg=Dg.range,Yg=qg.range,Lg=Rg.range,jg=Fg.range,Hg=Bp((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCMonth(t.getUTCMonth()+n)}),(function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),Xg=Hg.range,Gg=Bp((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)}),(function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Gg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Bp((function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),(function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null};var Vg=Gg.range;function $g(t,n,r,i,o,a){const u=[[Zp,1,jp],[Zp,5,5e3],[Zp,15,15e3],[Zp,30,3e4],[a,1,Hp],[a,5,3e5],[a,15,9e5],[a,30,18e5],[o,1,Xp],[o,3,108e5],[o,6,216e5],[o,12,432e5],[i,1,Gp],[i,2,1728e5],[r,1,Vp],[n,1,$p],[n,3,7776e6],[t,1,Wp]];function c(n,r,i){const o=Math.abs(r-n)/i,a=e((([,,t])=>t)).right(u,o);if(a===u.length)return t.every(F(n/Wp,r/Wp,i));if(0===a)return Yp.every(Math.max(F(n,r,i),1));const[c,f]=u[o/u[a-1][2]=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:bv,s:mv,S:By,u:Yy,U:Ly,V:Hy,w:Xy,W:Gy,x:null,X:null,y:Vy,Y:Wy,Z:Ky,"%":_v},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Qy,e:Qy,f:rv,g:pv,G:yv,H:Jy,I:tv,j:nv,L:ev,m:iv,M:ov,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:bv,s:mv,S:av,u:uv,U:cv,V:sv,w:lv,W:hv,x:null,X:null,y:dv,Y:gv,Z:vv,"%":_v},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=_.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return A(t,n,e,r)},d:wy,e:wy,f:ky,g:_y,G:vy,H:Ay,I:Ay,j:My,L:Ey,m:xy,M:Ty,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s.get(r[0].toLowerCase()),e+r[0].length):-1},q:my,Q:Cy,s:Py,S:Sy,u:dy,U:py,V:gy,w:hy,W:yy,x:function(t,n,r){return A(t,e,n,r)},X:function(t,n,e){return A(t,r,n,e)},y:_y,Y:vy,Z:by,"%":Ny};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=ty(ny(o.y,0,1))).getUTCDay(),r=i>4||0===i?Pg.ceil(r):Pg(r),r=Eg.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=Jg(ny(o.y,0,1))).getDay(),r=i>4||0===i?ag.ceil(r):ag(r),r=eg.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?ty(ny(o.y,0,1)).getUTCDay():Jg(ny(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,ty(o)):Jg(o)}}function A(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in iy?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}var ry,iy={"-":"",_:" ",0:"0"},oy=/^\s*\d+/,ay=/^%/,uy=/[\\^$*+?|[\]().{}]/g;function cy(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o[t.toLowerCase(),n])))}function hy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function dy(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function py(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function gy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function yy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function vy(t,n,e){var r=oy.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function _y(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function by(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function my(t,n,e){var r=oy.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function xy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function wy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function My(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Ay(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Ty(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Sy(t,n,e){var r=oy.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Ey(t,n,e){var r=oy.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ky(t,n,e){var r=oy.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Ny(t,n,e){var r=ay.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Cy(t,n,e){var r=oy.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Py(t,n,e){var r=oy.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function zy(t,n){return cy(t.getDate(),n,2)}function Dy(t,n){return cy(t.getHours(),n,2)}function qy(t,n){return cy(t.getHours()%12||12,n,2)}function Ry(t,n){return cy(1+eg.count(xg(t),t),n,3)}function Fy(t,n){return cy(t.getMilliseconds(),n,3)}function Oy(t,n){return Fy(t,n)+"000"}function Iy(t,n){return cy(t.getMonth()+1,n,2)}function Uy(t,n){return cy(t.getMinutes(),n,2)}function By(t,n){return cy(t.getSeconds(),n,2)}function Yy(t){var n=t.getDay();return 0===n?7:n}function Ly(t,n){return cy(og.count(xg(t)-1,t),n,2)}function jy(t){var n=t.getDay();return n>=4||0===n?fg(t):fg.ceil(t)}function Hy(t,n){return t=jy(t),cy(fg.count(xg(t),t)+(4===xg(t).getDay()),n,2)}function Xy(t){return t.getDay()}function Gy(t,n){return cy(ag.count(xg(t)-1,t),n,2)}function Vy(t,n){return cy(t.getFullYear()%100,n,2)}function $y(t,n){return cy((t=jy(t)).getFullYear()%100,n,2)}function Wy(t,n){return cy(t.getFullYear()%1e4,n,4)}function Zy(t,n){var e=t.getDay();return cy((t=e>=4||0===e?fg(t):fg.ceil(t)).getFullYear()%1e4,n,4)}function Ky(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+cy(n/60|0,"0",2)+cy(n%60,"0",2)}function Qy(t,n){return cy(t.getUTCDate(),n,2)}function Jy(t,n){return cy(t.getUTCHours(),n,2)}function tv(t,n){return cy(t.getUTCHours()%12||12,n,2)}function nv(t,n){return cy(1+Eg.count(Gg(t),t),n,3)}function ev(t,n){return cy(t.getUTCMilliseconds(),n,3)}function rv(t,n){return ev(t,n)+"000"}function iv(t,n){return cy(t.getUTCMonth()+1,n,2)}function ov(t,n){return cy(t.getUTCMinutes(),n,2)}function av(t,n){return cy(t.getUTCSeconds(),n,2)}function uv(t){var n=t.getUTCDay();return 0===n?7:n}function cv(t,n){return cy(Cg.count(Gg(t)-1,t),n,2)}function fv(t){var n=t.getUTCDay();return n>=4||0===n?qg(t):qg.ceil(t)}function sv(t,n){return t=fv(t),cy(qg.count(Gg(t),t)+(4===Gg(t).getUTCDay()),n,2)}function lv(t){return t.getUTCDay()}function hv(t,n){return cy(Pg.count(Gg(t)-1,t),n,2)}function dv(t,n){return cy(t.getUTCFullYear()%100,n,2)}function pv(t,n){return cy((t=fv(t)).getUTCFullYear()%100,n,2)}function gv(t,n){return cy(t.getUTCFullYear()%1e4,n,4)}function yv(t,n){var e=t.getUTCDay();return cy((t=e>=4||0===e?qg(t):qg.ceil(t)).getUTCFullYear()%1e4,n,4)}function vv(){return"+0000"}function _v(){return"%"}function bv(t){return+t}function mv(t){return Math.floor(+t/1e3)}function xv(n){return ry=ey(n),t.timeFormat=ry.format,t.timeParse=ry.parse,t.utcFormat=ry.utcFormat,t.utcParse=ry.utcParse,ry}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,xv({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var wv="%Y-%m-%dT%H:%M:%S.%LZ";var Mv=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(wv);var Av=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(wv);function Tv(t){return new Date(t)}function Sv(t){return t instanceof Date?+t:+new Date(+t)}function Ev(t,n,e,r,i,o,a,u,c,f){var s=vp(),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),g=f("%I:%M"),y=f("%I %p"),v=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y");function x(t){return(c(t)hr(t[t.length-1]),Xv=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Dv),Gv=Hv(Xv),Vv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Dv),$v=Hv(Vv),Wv=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Dv),Zv=Hv(Wv),Kv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Dv),Qv=Hv(Kv),Jv=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Dv),t_=Hv(Jv),n_=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Dv),e_=Hv(n_),r_=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Dv),i_=Hv(r_),o_=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Dv),a_=Hv(o_),u_=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Dv),c_=Hv(u_),f_=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Dv),s_=Hv(f_),l_=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Dv),h_=Hv(l_),d_=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Dv),p_=Hv(d_),g_=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Dv),y_=Hv(g_),v_=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Dv),__=Hv(v_),b_=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Dv),m_=Hv(b_),x_=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Dv),w_=Hv(x_),M_=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Dv),A_=Hv(M_),T_=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Dv),S_=Hv(T_),E_=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Dv),k_=Hv(E_),N_=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Dv),C_=Hv(N_),P_=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Dv),z_=Hv(P_),D_=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Dv),q_=Hv(D_),R_=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Dv),F_=Hv(R_),O_=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Dv),I_=Hv(O_),U_=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Dv),B_=Hv(U_),Y_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Dv),L_=Hv(Y_),j_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Dv),H_=Hv(j_);var X_=Lr(tr(300,.5,0),tr(-240,.5,1)),G_=Lr(tr(-100,.75,.35),tr(80,1.5,.8)),V_=Lr(tr(260,.75,.35),tr(80,1.5,.8)),$_=tr();var W_=ve(),Z_=Math.PI/3,K_=2*Math.PI/3;function Q_(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var J_=Q_(Dv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),tb=Q_(Dv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),nb=Q_(Dv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),eb=Q_(Dv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function rb(t){return function(){return t}}var ib=Math.abs,ob=Math.atan2,ab=Math.cos,ub=Math.max,cb=Math.min,fb=Math.sin,sb=Math.sqrt,lb=1e-12,hb=Math.PI,db=hb/2,pb=2*hb;function gb(t){return t>1?0:t<-1?hb:Math.acos(t)}function yb(t){return t>=1?db:t<=-1?-db:Math.asin(t)}function vb(t){return t.innerRadius}function _b(t){return t.outerRadius}function bb(t){return t.startAngle}function mb(t){return t.endAngle}function xb(t){return t&&t.padAngle}function wb(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*hC*C+P*P&&(A=S,T=E),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}var Ab=Array.prototype.slice;function Tb(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Sb(t){this._context=t}function Eb(t){return new Sb(t)}function kb(t){return t[0]}function Nb(t){return t[1]}function Cb(t,n){var e=rb(!0),r=null,i=Eb,o=null;function a(a){var u,c,f,s=(a=Tb(a)).length,l=!1;for(null==r&&(o=i(f=fa())),u=0;u<=s;++u)!(u=s;--l)u.point(y[l],v[l]);u.lineEnd(),u.areaEnd()}g&&(y[f]=+t(h,f,c),v[f]=+n(h,f,c),u.point(r?+r(h,f,c):y[f],e?+e(h,f,c):v[f]))}if(d)return u=null,d+""||null}function f(){return Cb().defined(i).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?kb:rb(+t),n="function"==typeof n?n:rb(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?Nb:rb(+e),c.x=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),r=null,c):t},c.x0=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),c):t},c.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:rb(+t),c):r},c.y=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),e=null,c):n},c.y0=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),c):n},c.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:rb(+t),c):e},c.lineX0=c.lineY0=function(){return f().x(t).y(n)},c.lineY1=function(){return f().x(t).y(e)},c.lineX1=function(){return f().x(r).y(n)},c.defined=function(t){return arguments.length?(i="function"==typeof t?t:rb(!!t),c):i},c.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),c):a},c.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),c):o},c}function zb(t,n){return nt?1:n>=t?0:NaN}function Db(t){return t}Sb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var qb=Fb(Eb);function Rb(t){this._curve=t}function Fb(t){function n(n){return new Rb(t(n))}return n._curve=t,n}function Ob(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Ib(){return Ob(Cb().curve(qb))}function Ub(){var t=Pb().curve(qb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Ob(e())},delete t.lineX0,t.lineEndAngle=function(){return Ob(r())},delete t.lineX1,t.lineInnerRadius=function(){return Ob(i())},delete t.lineY0,t.lineOuterRadius=function(){return Ob(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Fb(t)):n()._curve},t}function Bb(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Yb(t){return t.source}function Lb(t){return t.target}function jb(t){var n=Yb,e=Lb,r=kb,i=Nb,o=null;function a(){var a,u=Ab.call(arguments),c=n.apply(this,u),f=e.apply(this,u);if(o||(o=a=fa()),t(o,+r.apply(this,(u[0]=c,u)),+i.apply(this,u),+r.apply(this,(u[0]=f,u)),+i.apply(this,u)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.y=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function Hb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Xb(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Gb(t,n,e,r,i){var o=Bb(n,e),a=Bb(n,e=(e+i)/2),u=Bb(r,e),c=Bb(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],c[0],c[1])}Rb.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Vb={draw:function(t,n){var e=Math.sqrt(n/hb);t.moveTo(e,0),t.arc(0,0,e,0,pb)}},$b={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Wb=Math.sqrt(1/3),Zb=2*Wb,Kb={draw:function(t,n){var e=Math.sqrt(n/Zb),r=e*Wb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Qb=Math.sin(hb/10)/Math.sin(7*hb/10),Jb=Math.sin(pb/10)*Qb,tm=-Math.cos(pb/10)*Qb,nm={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Jb*e,i=tm*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=pb*o/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*e,-u*e),t.lineTo(u*r-c*i,c*r+u*i)}t.closePath()}},em={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},rm=Math.sqrt(3),im={draw:function(t,n){var e=-Math.sqrt(n/(3*rm));t.moveTo(0,2*e),t.lineTo(-rm*e,-e),t.lineTo(rm*e,-e),t.closePath()}},om=-.5,am=Math.sqrt(3)/2,um=1/Math.sqrt(12),cm=3*(um/2+1),fm={draw:function(t,n){var e=Math.sqrt(n/cm),r=e/2,i=e*um,o=r,a=e*um+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(om*r-am*i,am*r+om*i),t.lineTo(om*o-am*a,am*o+om*a),t.lineTo(om*u-am*c,am*u+om*c),t.lineTo(om*r+am*i,om*i-am*r),t.lineTo(om*o+am*a,om*a-am*o),t.lineTo(om*u+am*c,om*c-am*u),t.closePath()}},sm=[Vb,$b,Kb,em,nm,im,fm];function lm(){}function hm(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function dm(t){this._context=t}function pm(t){this._context=t}function gm(t){this._context=t}dm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:hm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},pm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},gm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:hm(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};class ym{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}function vm(t,n){this._basis=new dm(t),this._beta=n}vm.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var _m=function t(n){function e(t){return 1===n?new dm(t):new vm(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function bm(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function mm(t,n){this._context=t,this._k=(1-n)/6}mm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:bm(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var xm=function t(n){function e(t){return new mm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function wm(t,n){this._context=t,this._k=(1-n)/6}wm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Mm=function t(n){function e(t){return new wm(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Am(t,n){this._context=t,this._k=(1-n)/6}Am.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bm(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Tm=function t(n){function e(t){return new Am(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Sm(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>lb){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>lb){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Em(t,n){this._context=t,this._alpha=n}Em.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var km=function t(n){function e(t){return n?new Em(t,n):new mm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Nm(t,n){this._context=t,this._alpha=n}Nm.prototype={areaStart:lm,areaEnd:lm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Cm=function t(n){function e(t){return n?new Nm(t,n):new wm(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Pm(t,n){this._context=t,this._alpha=n}Pm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Sm(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var zm=function t(n){function e(t){return n?new Pm(t,n):new Am(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Dm(t){this._context=t}function qm(t){return t<0?-1:1}function Rm(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(qm(o)+qm(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function Fm(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Om(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function Im(t){this._context=t}function Um(t){this._context=new Bm(t)}function Bm(t){this._context=t}function Ym(t){this._context=t}function Lm(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o=0;)e[n]=n;return e}function Gm(t,n){return t[n]}function Vm(t){const n=[];return n.key=t,n}function $m(t){var n=t.map(Wm);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Wm(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++eo&&(o=n,r=e);return r}function Zm(t){var n=t.map(Km);return Xm(t).sort((function(t,e){return n[t]-n[e]}))}function Km(t){for(var n,e=0,r=-1,i=t.length;++r=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var Qm=t=>()=>t;function Jm(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function tx(t,n,e){this.k=t,this.x=n,this.y=e}tx.prototype={constructor:tx,scale:function(t){return 1===t?this:new tx(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new tx(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var nx=new tx(1,0,0);function ex(t){for(;!t.__zoom;)if(!(t=t.parentNode))return nx;return t.__zoom}function rx(t){t.stopImmediatePropagation()}function ix(t){t.preventDefault(),t.stopImmediatePropagation()}function ox(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function ax(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function ux(){return this.__zoom||nx}function cx(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function fx(){return navigator.maxTouchPoints||"ontouchstart"in this}function sx(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}ex.prototype=tx.prototype,t.Adder=g,t.Delaunay=nu,t.FormatSpecifier=uc,t.InternMap=y,t.InternSet=v,t.Voronoi=Wa,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>1&&e.name===n)return new ji([[t]],_o,n,+r);return null},t.arc=function(){var t=vb,n=_b,e=rb(0),r=null,i=bb,o=mb,a=xb,u=null;function c(){var c,f,s=+t.apply(this,arguments),l=+n.apply(this,arguments),h=i.apply(this,arguments)-db,d=o.apply(this,arguments)-db,p=ib(d-h),g=d>h;if(u||(u=c=fa()),llb)if(p>pb-lb)u.moveTo(l*ab(h),l*fb(h)),u.arc(0,0,l,h,d,!g),s>lb&&(u.moveTo(s*ab(d),s*fb(d)),u.arc(0,0,s,d,h,g));else{var y,v,_=h,b=d,m=h,x=d,w=p,M=p,A=a.apply(this,arguments)/2,T=A>lb&&(r?+r.apply(this,arguments):sb(s*s+l*l)),S=cb(ib(l-s)/2,+e.apply(this,arguments)),E=S,k=S;if(T>lb){var N=yb(T/s*fb(A)),C=yb(T/l*fb(A));(w-=2*N)>lb?(m+=N*=g?1:-1,x-=N):(w=0,m=x=(h+d)/2),(M-=2*C)>lb?(_+=C*=g?1:-1,b-=C):(M=0,_=b=(h+d)/2)}var P=l*ab(_),z=l*fb(_),D=s*ab(x),q=s*fb(x);if(S>lb){var R,F=l*ab(b),O=l*fb(b),I=s*ab(m),U=s*fb(m);if(plb?k>lb?(y=Mb(I,U,P,z,l,k,g),v=Mb(F,O,D,q,l,k,g),u.moveTo(y.cx+y.x01,y.cy+y.y01),klb&&w>lb?E>lb?(y=Mb(D,q,F,O,s,-E,g),v=Mb(P,z,I,U,s,-E,g),u.lineTo(y.cx+y.x01,y.cy+y.y01),E>a,f=i+2*u>>a,s=wa(20);function l(r){var i=new Float32Array(c*f),l=new Float32Array(c*f);r.forEach((function(r,o,s){var l=+t(r,o,s)+u>>a,h=+n(r,o,s)+u>>a,d=+e(r,o,s);l>=0&&l=0&&h>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),Na({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),Ca({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a);var d=s(i);if(!Array.isArray(d)){var p=B(i);d=F(0,p,d),(d=Z(0,Math.floor(p/d)*d,d)).shift()}return ka().thresholds(d).size([c,f])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function y(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,l}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:wa(+n),l):t},l.y=function(t){return arguments.length?(n="function"==typeof t?t:wa(+t),l):n},l.weight=function(t){return arguments.length?(e="function"==typeof t?t:wa(+t),l):e},l.size=function(t){if(!arguments.length)return[r,i];var n=+t[0],e=+t[1];if(!(n>=0&&e>=0))throw new Error("invalid size");return r=n,i=e,y()},l.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?wa(ma.call(t)):wa(t),l):s},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},t.contours=ka,t.count=c,t.create=function(t){return Dn(At(t).call(document.documentElement))},t.creator=At,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(l)).map(f),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(s))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}},t.csv=Pu,t.csvFormat=hu,t.csvFormatBody=du,t.csvFormatRow=gu,t.csvFormatRows=pu,t.csvFormatValue=yu,t.csvParse=su,t.csvParseRows=lu,t.cubehelix=tr,t.cumsum=function(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)},t.curveBasis=function(t){return new dm(t)},t.curveBasisClosed=function(t){return new pm(t)},t.curveBasisOpen=function(t){return new gm(t)},t.curveBumpX=function(t){return new ym(t,!0)},t.curveBumpY=function(t){return new ym(t,!1)},t.curveBundle=_m,t.curveCardinal=xm,t.curveCardinalClosed=Mm,t.curveCardinalOpen=Tm,t.curveCatmullRom=km,t.curveCatmullRomClosed=Cm,t.curveCatmullRomOpen=zm,t.curveLinear=Eb,t.curveLinearClosed=function(t){return new Dm(t)},t.curveMonotoneX=function(t){return new Im(t)},t.curveMonotoneY=function(t){return new Um(t)},t.curveNatural=function(t){return new Ym(t)},t.curveStep=function(t){return new jm(t,.5)},t.curveStepAfter=function(t){return new jm(t,1)},t.curveStepBefore=function(t){return new jm(t,0)},t.descending=function(t,n){return nt?1:n>=t?0:NaN},t.deviation=d,t.difference=function(t,...n){t=new Set(t);for(const e of n)for(const n of e)t.delete(n);return t},t.disjoint=function(t,n){const e=n[Symbol.iterator](),r=new Set;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0},t.dispatch=pt,t.drag=function(){var t,n,e,r,i=Xn,o=Gn,a=Vn,u=$n,c={},f=pt("start","drag","end"),s=0,l=0;function h(t){t.on("mousedown.drag",d).filter(u).on("touchstart.drag",y).on("touchmove.drag",v).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(a,u){if(!r&&i.call(this,a,u)){var c=b(this,o.call(this,a,u),a,u,"mouse");c&&(Dn(a.view).on("mousemove.drag",p,!0).on("mouseup.drag",g,!0),Yn(a.view),Un(a),e=!1,t=a.clientX,n=a.clientY,c("start",a))}}function p(r){if(Bn(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>l}c.mouse("drag",r)}function g(t){Dn(t.view).on("mousemove.drag mouseup.drag",null),Ln(t.view,e),Bn(t),c.mouse("end",t)}function y(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),c=a.length;for(e=0;e+t,t.easePoly=Ki,t.easePolyIn=Wi,t.easePolyInOut=Ki,t.easePolyOut=Zi,t.easeQuad=Vi,t.easeQuadIn=function(t){return t*t},t.easeQuadInOut=Vi,t.easeQuadOut=function(t){return t*(2-t)},t.easeSin=to,t.easeSinIn=function(t){return 1==+t?1:1-Math.cos(t*Ji)},t.easeSinInOut=to,t.easeSinOut=function(t){return Math.sin(t*Ji)},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0},t.extent=p,t.fcumsum=function(t,n){const e=new g;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e},t.forceCenter=function(t,n){var e,r=1;function i(){var i,o,a=e.length,u=0,c=0;for(i=0;if+p||os+p||ac.index){var g=f-u.x-u.vx,y=s-u.y-u.vy,v=g*g+y*y;vt.r&&(t.r=t[n].r)}function c(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r[u(t,n,r),t])));for(a=0,i=new Array(f);a=u)){(t.data!==n||t.next)&&(0===l&&(p+=(l=Vu(e))*l),0===h&&(p+=(h=Vu(e))*h),p(t=(1664525*t+1013904223)%Qu)/Qu}();function l(){h(),f.call("tick",n),e1?(null==e?u.delete(t):u.set(t,p(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=Gu(.1);function o(t){for(var i,o=0,a=n.length;o=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++eKf(r[0],r[1])&&(r[1]=i[1]),Kf(i[0],r[1])>Kf(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Kf(r[1],i[0]))>a&&(a=u,nf=i[0],rf=r[1])}return lf=hf=null,nf===1/0||ef===1/0?[[NaN,NaN],[NaN,NaN]]:[[nf,ef],[rf,of]]},t.geoCentroid=function(t){Ef=kf=Nf=Cf=Pf=zf=Df=qf=0,Rf=new g,Ff=new g,Of=new g,Wc(t,ts);var n=+Rf,e=+Ff,r=+Of,i=Dc(n,e,r);return i2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Bh,t.gray=function(t,n){return new Fe(t,0,0,null==n?1:n)},t.greatest=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)>0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)>0:0===e(n,n))&&(r=n,i=!0);return r},t.greatestIndex=function(t,e=n){if(1===e.length)return G(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)>0)&&(r=n,i=o);return i},t.group=M,t.groupSort=function(t,e,r){return(1===e.length?k(A(t,e,r),(([t,e],[r,i])=>n(e,i)||n(t,r))):k(M(t,r),(([t,r],[i,o])=>e(r,o)||n(t,i)))).map((([t])=>t))},t.groups=function(t,...n){return S(t,Array.from,w,n)},t.hcl=Le,t.hierarchy=Xh,t.histogram=U,t.hsl=Ae,t.html=Fu,t.image=function(t,n){return new Promise((function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t}))},t.index=function(t,...n){return S(t,w,T,n)},t.indexes=function(t,...n){return S(t,Array.from,T,n)},t.interpolate=Mr,t.interpolateArray=function(t,n){return(gr(n)?pr:yr)(t,n)},t.interpolateBasis=rr,t.interpolateBasisClosed=ir,t.interpolateBlues=q_,t.interpolateBrBG=Gv,t.interpolateBuGn=s_,t.interpolateBuPu=h_,t.interpolateCividis=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},t.interpolateCool=V_,t.interpolateCubehelix=Yr,t.interpolateCubehelixDefault=X_,t.interpolateCubehelixLong=Lr,t.interpolateDate=vr,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateGnBu=p_,t.interpolateGreens=F_,t.interpolateGreys=I_,t.interpolateHcl=Ir,t.interpolateHclLong=Ur,t.interpolateHsl=Rr,t.interpolateHslLong=Fr,t.interpolateHue=function(t,n){var e=ur(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateInferno=nb,t.interpolateLab=function(t,n){var e=fr((t=Re(t)).l,(n=Re(n)).l),r=fr(t.a,n.a),i=fr(t.b,n.b),o=fr(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateMagma=tb,t.interpolateNumber=_r,t.interpolateNumberArray=pr,t.interpolateObject=br,t.interpolateOrRd=y_,t.interpolateOranges=H_,t.interpolatePRGn=$v,t.interpolatePiYG=Zv,t.interpolatePlasma=eb,t.interpolatePuBu=m_,t.interpolatePuBuGn=__,t.interpolatePuOr=Qv,t.interpolatePuRd=w_,t.interpolatePurples=B_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return $_.h=360*t-100,$_.s=1.5-1.5*n,$_.l=.8-.9*n,$_+""},t.interpolateRdBu=t_,t.interpolateRdGy=e_,t.interpolateRdPu=A_,t.interpolateRdYlBu=i_,t.interpolateRdYlGn=a_,t.interpolateReds=L_,t.interpolateRgb=sr,t.interpolateRgbBasis=hr,t.interpolateRgbBasisClosed=dr,t.interpolateRound=Ar,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,W_.r=255*(n=Math.sin(t))*n,W_.g=255*(n=Math.sin(t+Z_))*n,W_.b=255*(n=Math.sin(t+K_))*n,W_+""},t.interpolateSpectral=c_,t.interpolateString=wr,t.interpolateTransformCss=Cr,t.interpolateTransformSvg=Pr,t.interpolateTurbo=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},t.interpolateViridis=J_,t.interpolateWarm=G_,t.interpolateYlGn=k_,t.interpolateYlGnBu=S_,t.interpolateYlOrBr=C_,t.interpolateYlOrRd=z_,t.interpolateZoom=Dr,t.interrupt=gi,t.intersection=function(t,...n){t=new Set(t),n=n.map(et);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},t.interval=function(t,n,e){var r=new ei,i=n;return null==n?(r.restart(t,n,e),r):(r._restart=r.restart,r.restart=function(t,n,e){n=+n,e=null==e?ti():+e,r._restart((function o(a){a+=i,r._restart(o,i+=n,e),t(a)}),n,e)},r.restart(t,n,e),r)},t.isoFormat=Mv,t.isoParse=Av,t.json=function(t,n){return fetch(t,n).then(Du)},t.lab=Re,t.lch=function(t,n,e,r){return 1===arguments.length?Ye(t):new je(e,n,t,null==r?1:r)},t.least=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)<0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)<0:0===e(n,n))&&(r=n,i=!0);return r},t.leastIndex=K,t.line=Cb,t.lineRadial=Ib,t.linkHorizontal=function(){return jb(Hb)},t.linkRadial=function(){var t=jb(Gb);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return jb(Xb)},t.local=Rn,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))},t.matcher=Ct,t.max=B,t.maxIndex=G,t.mean=function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e},t.median=function(t,n){return H(t,.5,n)},t.merge=V,t.min=Y,t.minIndex=$,t.namespace=xt,t.namespaces=mt,t.nice=O,t.now=ti,t.pack=function(){var t=null,n=1,e=1,r=hd;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(gd(t)).eachAfter(yd(r,.5)).eachBefore(vd(1)):i.eachBefore(gd(pd)).eachAfter(yd(hd,1)).eachAfter(yd(r,i.r/Math.min(n,e))).eachBefore(vd(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=sd(n),i):t},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:dd(+t),i):r},i},t.packEnclose=Kh,t.packSiblings=function(t){return fd(t),t},t.pairs=function(t,n=W){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e},t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&bd(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a0&&(d+=l);for(null!=n?p.sort((function(t,e){return n(g[t],g[e])})):null!=e&&p.sort((function(t,n){return e(a[t],a[n])})),u=0,f=d?(v-h*b)/d:0;u0?l*f:0)+b,g[c]={data:a[c],index:u,value:l,startAngle:y,endAngle:s,padAngle:_};return g}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:rb(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:rb(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:rb(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:rb(+t),a):o},a},t.piecewise=jr,t.pointRadial=Bb,t.pointer=In,t.pointers=function(t,n){return t.target&&(t=On(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>In(t,n)))},t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++eu!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;n(n=1664525*n+1013904223|0,ep*(n>>>0))},t.randomLogNormal=Ld,t.randomLogistic=tp,t.randomNormal=Yd,t.randomPareto=Gd,t.randomPoisson=np,t.randomUniform=Ud,t.randomWeibull=Qd,t.range=Z,t.reduce=function(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rgb=ve,t.ribbon=function(){return ba()},t.ribbonArrow=function(){return ba(_a)},t.rollup=A,t.rollups=function(t,n,...e){return S(t,Array.from,n,e)},t.scaleBand=up,t.scaleDiverging=function t(){var n=bp(Pv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleDivergingLog=function t(){var n=Ep(Pv()).domain([.1,1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleDivergingPow=zv,t.scaleDivergingSqrt=function(){return zv.apply(null,arguments).exponent(.5)},t.scaleDivergingSymlog=function t(){var n=Cp(Pv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleIdentity=function t(n){var e;function r(t){return null==t||isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,fp),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,fp):[0,1],bp(r)},t.scaleImplicit=op,t.scaleLinear=function t(){var n=vp();return n.copy=function(){return gp(n,t())},rp.apply(n,arguments),bp(n)},t.scaleLog=function t(){var n=Ep(yp()).domain([1,10]);return n.copy=function(){return gp(n,t()).base(n.base())},rp.apply(n,arguments),n},t.scaleOrdinal=ap,t.scalePoint=function(){return cp(up.apply(null,arguments).paddingInner(1))},t.scalePow=Rp,t.scaleQuantile=function t(){var e,r=[],i=[],a=[];function u(){var t=0,n=Math.max(1,i.length);for(a=new Array(n-1);++t0?a[n-1]:r[0],n=i?[a[i-1],r]:[a[n-1],a[n]]},c.unknown=function(t){return arguments.length?(n=t,c):c},c.thresholds=function(){return a.slice()},c.copy=function(){return t().domain([e,r]).range(u).unknown(n)},rp.apply(bp(c),arguments)},t.scaleRadial=function t(){var n,e=vp(),r=[0,1],i=!1;function o(t){var r=Op(e(t));return isNaN(r)?n:i?Math.round(r):r}return o.invert=function(t){return e.invert(Fp(t))},o.domain=function(t){return arguments.length?(e.domain(t),o):e.domain()},o.range=function(t){return arguments.length?(e.range((r=Array.from(t,fp)).map(Fp)),o):r.slice()},o.rangeRound=function(t){return o.range(t).round(!0)},o.round=function(t){return arguments.length?(i=!!t,o):i},o.clamp=function(t){return arguments.length?(e.clamp(t),o):e.clamp()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(e.domain(),r).round(i).clamp(e.clamp()).unknown(n)},rp.apply(o,arguments),bp(o)},t.scaleSequential=function t(){var n=bp(kv()(lp));return n.copy=function(){return Nv(n,t())},ip.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=Ep(kv()).domain([1,10]);return n.copy=function(){return Nv(n,t()).base(n.base())},ip.apply(n,arguments)},t.scaleSequentialPow=Cv,t.scaleSequentialQuantile=function t(){var e=[],r=lp;function i(t){if(null!=t&&!isNaN(t=+t))return r((o(e,t,1)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(n),i},i.interpolator=function(t){return arguments.length?(r=t,i):r},i.range=function(){return e.map(((t,n)=>r(n/(e.length-1))))},i.quantiles=function(t){return Array.from({length:t+1},((n,r)=>H(e,r/t)))},i.copy=function(){return t(r).domain(e)},ip.apply(i,arguments)},t.scaleSequentialSqrt=function(){return Cv.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Cp(kv());return n.copy=function(){return Nv(n,t()).constant(n.constant())},ip.apply(n,arguments)},t.scaleSqrt=function(){return Rp.apply(null,arguments).exponent(.5)},t.scaleSymlog=function t(){var n=Cp(yp());return n.copy=function(){return gp(n,t()).constant(n.constant())},rp.apply(n,arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],i=1;function a(t){return null!=t&&t<=t?r[o(e,t,0,i)]:n}return a.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},a.unknown=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},rp.apply(a,arguments)},t.scaleTime=function(){return rp.apply(Ev(Kg,Qg,xg,bg,og,eg,tg,Qp,Zp,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return rp.apply(Ev(Wg,Zg,Gg,Hg,Cg,Eg,Tg,Mg,Zp,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scan=function(t,n){const e=K(t,n);return e<0?void 0:e},t.schemeAccent=Rv,t.schemeBlues=D_,t.schemeBrBG=Xv,t.schemeBuGn=f_,t.schemeBuPu=l_,t.schemeCategory10=qv,t.schemeDark2=Fv,t.schemeGnBu=d_,t.schemeGreens=R_,t.schemeGreys=O_,t.schemeOrRd=g_,t.schemeOranges=j_,t.schemePRGn=Vv,t.schemePaired=Ov,t.schemePastel1=Iv,t.schemePastel2=Uv,t.schemePiYG=Wv,t.schemePuBu=b_,t.schemePuBuGn=v_,t.schemePuOr=Kv,t.schemePuRd=x_,t.schemePurples=U_,t.schemeRdBu=Jv,t.schemeRdGy=n_,t.schemeRdPu=M_,t.schemeRdYlBu=r_,t.schemeRdYlGn=o_,t.schemeReds=Y_,t.schemeSet1=Bv,t.schemeSet2=Yv,t.schemeSet3=Lv,t.schemeSpectral=u_,t.schemeTableau10=jv,t.schemeYlGn=E_,t.schemeYlGnBu=T_,t.schemeYlOrBr=N_,t.schemeYlOrRd=P_,t.select=Dn,t.selectAll=function(t){return"string"==typeof t?new Pn([document.querySelectorAll(t)],[document.documentElement]):new Pn([null==t?[]:Et(t)],Cn)},t.selection=zn,t.selector=St,t.selectorAll=Nt,t.shuffle=Q,t.shuffler=J,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1},t.sort=k,t.stack=function(){var t=rb([]),n=Xm,e=Hm,r=Gm;function i(i){var o,a,u=Array.from(t.apply(this,arguments),Vm),c=u.length,f=-1;for(const t of i)for(o=0,++f;o0)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):(r[0]=0,r[1]=i)},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a0)throw new Error("cycle");return o}return e.id=function(n){return arguments.length?(t=ld(n),e):t},e.parentId=function(t){return arguments.length?(n=ld(t),e):n},e},t.style=Jt,t.subset=function(t,n){return rt(n,t)},t.sum=function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e},t.superset=rt,t.svg=Ou,t.symbol=function(t,n){var e=null;function r(){var r;if(e||(e=r=fa()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return t="function"==typeof t?t:rb(t||Vb),n="function"==typeof n?n:rb(void 0===n?64:+n),r.type=function(n){return arguments.length?(t="function"==typeof n?n:rb(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:rb(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r},t.symbolCircle=Vb,t.symbolCross=$b,t.symbolDiamond=Kb,t.symbolSquare=em,t.symbolStar=nm,t.symbolTriangle=im,t.symbolWye=fm,t.symbols=sm,t.text=Nu,t.thresholdFreedmanDiaconis=function(t,n,e){return Math.ceil((e-n)/(2*(H(t,.75)-H(t,.25))*Math.pow(c(t),-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*d(t)*Math.pow(c(t),-1/3)))},t.thresholdSturges=I,t.tickFormat=_p,t.tickIncrement=R,t.tickStep=F,t.ticks=q,t.timeDay=eg,t.timeDays=rg,t.timeFormatDefaultLocale=xv,t.timeFormatLocale=ey,t.timeFriday=sg,t.timeFridays=vg,t.timeHour=tg,t.timeHours=ng,t.timeInterval=Bp,t.timeMillisecond=Yp,t.timeMilliseconds=Lp,t.timeMinute=Qp,t.timeMinutes=Jp,t.timeMonday=ag,t.timeMondays=dg,t.timeMonth=bg,t.timeMonths=mg,t.timeSaturday=lg,t.timeSaturdays=_g,t.timeSecond=Zp,t.timeSeconds=Kp,t.timeSunday=og,t.timeSundays=hg,t.timeThursday=fg,t.timeThursdays=yg,t.timeTickInterval=Qg,t.timeTicks=Kg,t.timeTuesday=ug,t.timeTuesdays=pg,t.timeWednesday=cg,t.timeWednesdays=gg,t.timeWeek=og,t.timeWeeks=hg,t.timeYear=xg,t.timeYears=wg,t.timeout=ci,t.timer=ri,t.timerFlush=ii,t.transition=Hi,t.transpose=tt,t.tree=function(){var t=Ad,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new Nd(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Nd(r[i],i)),e.parent=n;return(a.parent=new Nd(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore((function(t){t.xs.x&&(s=t),t.depth>l.depth&&(l=t)}));var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),g=e/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Sd(u),o=Td(o),u&&o;)c=Td(c),(a=Sd(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(Ed(kd(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Sd(a)&&(a.t=u,a.m+=l-s),o&&!Td(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Dd,n=!1,e=1,r=1,i=[0],o=hd,a=hd,u=hd,c=hd,f=hd;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(_d),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}var l=f[n],h=r/2+l,d=n+1,p=e-1;for(;d>>1;f[g]c-o){var _=r?(i*v+a*y)/r:a;t(n,d,y,i,o,_,c),t(d,e,v,_,o,a,c)}else{var b=r?(o*v+c*y)/r:c;t(n,d,y,i,o,a,b),t(d,e,v,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=bd,t.treemapResquarify=qd,t.treemapSlice=Cd,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Cd:bd)(t,n,e,r,i)},t.treemapSquarify=Dd,t.tsv=zu,t.tsvFormat=mu,t.tsvFormatBody=xu,t.tsvFormatRow=Mu,t.tsvFormatRows=wu,t.tsvFormatValue=Au,t.tsvParse=_u,t.tsvParseRows=bu,t.union=function(...t){const n=new Set;for(const e of t)for(const t of e)n.add(t);return n},t.utcDay=Eg,t.utcDays=kg,t.utcFriday=Rg,t.utcFridays=Lg,t.utcHour=Tg,t.utcHours=Sg,t.utcMillisecond=Yp,t.utcMilliseconds=Lp,t.utcMinute=Mg,t.utcMinutes=Ag,t.utcMonday=Pg,t.utcMondays=Ig,t.utcMonth=Hg,t.utcMonths=Xg,t.utcSaturday=Fg,t.utcSaturdays=jg,t.utcSecond=Zp,t.utcSeconds=Kp,t.utcSunday=Cg,t.utcSundays=Og,t.utcThursday=qg,t.utcThursdays=Yg,t.utcTickInterval=Zg,t.utcTicks=Wg,t.utcTuesday=zg,t.utcTuesdays=Ug,t.utcWednesday=Dg,t.utcWednesdays=Bg,t.utcWeek=Cg,t.utcWeeks=Og,t.utcYear=Gg,t.utcYears=Vg,t.variance=h,t.version="6.7.0",t.window=Wt,t.xml=Ru,t.zip=function(){return tt(arguments)},t.zoom=function(){var t,n,e,r=ox,i=ax,o=sx,a=cx,u=fx,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=Dr,h=pt("start","zoom","end"),d=500,p=0,g=10;function y(t){t.property("__zoom",ux).on("wheel.zoom",M).on("mousedown.zoom",A).on("dblclick.zoom",T).filter(u).on("touchstart.zoom",S).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new tx(n,t.x,t.y)}function _(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new tx(t.k,r,i)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function m(t,n,e,r){t.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=x(t,o).event(r),u=i.apply(t,o),c=null==e?b(u):"function"==typeof e?e.apply(t,o):e,f=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),s=t.__zoom,h="function"==typeof n?n.apply(t,o):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new tx(e,c[0]-n[0]*e,c[1]-n[1]*e)}a.zoom(null,t)}}))}function x(t,n,e){return!e&&t.__zooming||new w(t,n)}function w(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function M(t,...n){if(r.apply(this,arguments)){var e=x(this,n).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),s=In(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=i.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[s,i.invert(s)],gi(this),e.start()}ix(t),e.wheel=setTimeout(l,150),e.zoom("mouse",o(_(v(i,u),e.mouse[0],e.mouse[1]),e.extent,f))}function l(){e.wheel=null,e.end()}}function A(t,...n){if(!e&&r.apply(this,arguments)){var i=x(this,n,!0).event(t),a=Dn(t.view).on("mousemove.zoom",h,!0).on("mouseup.zoom",d,!0),u=In(t,c),c=t.currentTarget,s=t.clientX,l=t.clientY;Yn(t.view),rx(t),i.mouse=[u,this.__zoom.invert(u)],gi(this),i.start()}function h(t){if(ix(t),!i.moved){var n=t.clientX-s,e=t.clientY-l;i.moved=n*n+e*e>p}i.event(t).zoom("mouse",o(_(i.that.__zoom,i.mouse[0]=In(t,c),i.mouse[1]),i.extent,f))}function d(t){a.on("mousemove.zoom mouseup.zoom",null),Ln(t.view,i.moved),ix(t),i.event(t).end()}}function T(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=In(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),c=e.k*(t.shiftKey?.5:2),l=o(_(v(e,c),a,u),i.apply(this,n),f);ix(t),s>0?Dn(this).transition().duration(s).call(m,l,a,t):Dn(this).call(y.transform,l,a,t)}}function S(e,...i){if(r.apply(this,arguments)){var o,a,u,c,f=e.touches,s=f.length,l=x(this,i,e.changedTouches.length===s).event(e);for(rx(e),a=0;a dist/package.js && rollup -c","test":"tape 'test/**/*-test.js'","prepublishOnly":"yarn test","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js"}; -export var devDependencies = {"json2module":"0.0","rimraf":"3","rollup":"2","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"5","rollup-plugin-terser":"7","tape":"4","tape-await":"0.1"}; -export var dependencies = {"d3-array":"2","d3-axis":"2","d3-brush":"2","d3-chord":"2","d3-color":"2","d3-contour":"2","d3-delaunay":"5","d3-dispatch":"2","d3-drag":"2","d3-dsv":"2","d3-ease":"2","d3-fetch":"2","d3-force":"2","d3-format":"2","d3-geo":"2","d3-hierarchy":"2","d3-interpolate":"2","d3-path":"2","d3-polygon":"2","d3-quadtree":"2","d3-random":"2","d3-scale":"3","d3-scale-chromatic":"2","d3-selection":"2","d3-shape":"2","d3-time":"2","d3-time-format":"3","d3-timer":"2","d3-transition":"2","d3-zoom":"2"}; diff --git a/doc/d3-hwschematic-assets/elkjs/LICENSE.md b/doc/d3-hwschematic-assets/elkjs/LICENSE.md deleted file mode 100644 index 2849d27f..00000000 --- a/doc/d3-hwschematic-assets/elkjs/LICENSE.md +++ /dev/null @@ -1,264 +0,0 @@ -# Eclipse Public License - v 2.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE -PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF -THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -## 1. DEFINITIONS - -“Contribution” means: - -- a\) in the case of the initial Contributor, the initial content - Distributed under this Agreement, and -- b\) in the case of each subsequent Contributor: - - i\) changes to the Program, and - - ii\) additions to the Program; - - where such changes and/or additions to the Program originate from - and are Distributed by that particular Contributor. A Contribution - “originates” from a Contributor if it was added to the Program by - such Contributor itself or anyone acting on such Contributor's - behalf. Contributions do not include changes or additions to the - Program that are not Modified Works. - -“Contributor” means any person or entity that Distributes the Program. - -“Licensed Patents” mean patent claims licensable by a Contributor which -are necessarily infringed by the use or sale of its Contribution alone -or when combined with the Program. - -“Program” means the Contributions Distributed in accordance with this -Agreement. - -“Recipient” means anyone who receives the Program under this Agreement -or any Secondary License (as applicable), including Contributors. - -“Derivative Works” shall mean any work, whether in Source Code or other -form, that is based on (or derived from) the Program and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. - -“Modified Works” shall mean any work in Source Code or other form that -results from an addition to, deletion from, or modification of the -contents of the Program, including, for purposes of clarity any new file -in Source Code form that contains any contents of the Program. Modified -Works shall not include works that contain only declarations, -interfaces, types, classes, structures, or files of the Program solely -in each case in order to link to, bind by name, or subclass the Program -or Modified Works thereof. - -“Distribute” means the acts of a) distributing or b) making available in -any manner that enables the transfer of a copy. - -“Source Code” means the form of a Program preferred for making -modifications, including but not limited to software source code, -documentation source, and configuration files. - -“Secondary License” means either the GNU General Public License, Version -2.0, or any later versions of that license, including any exceptions or -additional permissions as identified by the initial Contributor. - -## 2. GRANT OF RIGHTS - -- a\) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free copyright - license to reproduce, prepare Derivative Works of, publicly display, - publicly perform, Distribute and sublicense the Contribution of such - Contributor, if any, and such Derivative Works. -- b\) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free patent license - under Licensed Patents to make, use, sell, offer to sell, import and - otherwise transfer the Contribution of such Contributor, if any, in - Source Code or other form. This patent license shall apply to the - combination of the Contribution and the Program if, at the time the - Contribution is added by the Contributor, such addition of the - Contribution causes such combination to be covered by the - Licensed Patents. The patent license shall not apply to any other - combinations which include the Contribution. No hardware per se is - licensed hereunder. -- c\) Recipient understands that although each Contributor grants the - licenses to its Contributions set forth herein, no assurances are - provided by any Contributor that the Program does not infringe the - patent or other intellectual property rights of any other entity. Each - Contributor disclaims any liability to Recipient for claims brought by - any other entity based on infringement of intellectual property rights - or otherwise. As a condition to exercising the rights and licenses - granted hereunder, each Recipient hereby assumes sole responsibility to - secure any other intellectual property rights needed, if any. For - example, if a third party patent license is required to allow Recipient - to Distribute the Program, it is Recipient's responsibility to acquire - that license before distributing the Program. -- d\) Each Contributor represents that to its knowledge it has sufficient - copyright rights in its Contribution, if any, to grant the copyright - license set forth in this Agreement. -- e\) Notwithstanding the terms of any Secondary License, no Contributor - makes additional grants to any Recipient (other than those set forth in - this Agreement) as a result of such Recipient's receipt of the Program - under the terms of a Secondary License (if permitted under the terms of - Section 3). - -## 3. REQUIREMENTS - -3.1 If a Contributor Distributes the Program in any form, then: - -- a\) the Program must also be made available as Source Code, in accordance - with section 3.2, and the Contributor must accompany the Program with a - statement that the Source Code for the Program is available under this - Agreement, and informs Recipients how to obtain it in a reasonable - manner on or through a medium customarily used for software exchange; - and -- b\) the Contributor may Distribute the Program under a license different - than this Agreement, provided that such license: - - i\) effectively disclaims on behalf of all other Contributors all - warranties and conditions, express and implied, including warranties or - conditions of title and non-infringement, and implied warranties or - conditions of merchantability and fitness for a particular purpose; - - ii\) effectively excludes on behalf of all other Contributors all - liability for damages, including direct, indirect, special, incidental - and consequential damages, such as lost profits; - - iii\) does not attempt to limit or alter the recipients' rights in the - Source Code under section 3.2; and - - iv\) requires any subsequent distribution of the Program by any party to - be under a license that satisfies the requirements of this section 3. - -3.2 When the Program is Distributed as Source Code: - -- a\) it must be made available under this Agreement, or if the Program (i) - is combined with other material in a separate file or files made - available under a Secondary License, and (ii) the initial Contributor - attached to the Source Code the notice described in Exhibit A of this - Agreement, then the Program may be made available under the terms of - such Secondary Licenses, and -- b\) a copy of this Agreement must be included with each copy of - the Program. - -3.3 Contributors may not remove or alter any copyright, patent, -trademark, attribution notices, disclaimers of warranty, or limitations -of liability (‘notices’) contained within the Program from any copy of -the Program which they Distribute, provided that Contributors may add -their own appropriate notices. - -## 4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities -with respect to end users, business partners and the like. While this -license is intended to facilitate the commercial use of the Program, the -Contributor who includes the Program in a commercial product offering -should do so in a manner which does not create potential liability for -other Contributors. Therefore, if a Contributor includes the Program in -a commercial product offering, such Contributor (“Commercial -Contributor”) hereby agrees to defend and indemnify every other -Contributor (“Indemnified Contributor”) against any losses, damages and -costs (collectively “Losses”) arising from claims, lawsuits and other -legal actions brought by a third party against the Indemnified -Contributor to the extent caused by the acts or omissions of such -Commercial Contributor in connection with its distribution of the -Program in a commercial product offering. The obligations in this -section do not apply to any claims or Losses relating to any actual or -alleged intellectual property infringement. In order to qualify, an -Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial -Contributor to control, and cooperate with the Commercial Contributor -in, the defense and any related settlement negotiations. The Indemnified -Contributor may participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial -product offering, Product X. That Contributor is then a Commercial -Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance -claims and warranties are such Commercial Contributor's responsibility -alone. Under this section, the Commercial Contributor would have to -defend claims against the other Contributors related to those -performance claims and warranties, and if a court requires any other -Contributor to pay any damages as a result, the Commercial Contributor -must pay those damages. - -## 5. NO WARRANTY {#warranty} - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” -BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF -TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the Program and assumes all -risks associated with its exercise of rights under this Agreement, -including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs or -equipment, and unavailability or interruption of operations. - -## 6. DISCLAIMER OF LIABILITY {#disclaimer} - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS -SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE -EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -## 7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of -the remainder of the terms of this Agreement, and without further action -by the parties hereto, such provision shall be reformed to the minimum -extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity (including -a cross-claim or counterclaim in a lawsuit) alleging that the Program -itself (excluding combinations of the Program with other software or -hardware) infringes such Recipient's patent(s), then such Recipient's -rights granted under Section 2(b) shall terminate as of the date such -litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails -to comply with any of the material terms or conditions of this Agreement -and does not cure such failure in a reasonable period of time after -becoming aware of such noncompliance. If all Recipient's rights under -this Agreement terminate, Recipient agrees to cease use and distribution -of the Program as soon as reasonably practicable. However, Recipient's -obligations under this Agreement and any licenses granted by Recipient -relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, -but in order to avoid inconsistency the Agreement is copyrighted and may -only be modified in the following manner. The Agreement Steward reserves -the right to publish new versions (including revisions) of this -Agreement from time to time. No one other than the Agreement Steward has -the right to modify this Agreement. The Eclipse Foundation is the -initial Agreement Steward. The Eclipse Foundation may assign the -responsibility to serve as the Agreement Steward to a suitable separate -entity. Each new version of the Agreement will be given a distinguishing -version number. The Program (including Contributions) may always be -Distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is -published, Contributor may elect to Distribute the Program (including -its Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient -receives no rights or licenses to the intellectual property of any -Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted -under this Agreement are reserved. Nothing in this Agreement is intended -to be enforceable by any entity that is not a Contributor or Recipient. -No third-party beneficiary rights are created under this Agreement. - -## Exhibit A – Form of Secondary Licenses Notice {#exhibit-a} - -“This Source Code may also be made available under the following -Secondary Licenses when the conditions for such availability set forth -in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), -version(s), and exceptions or additional permissions here}.” - -> Simply including a copy of this Agreement, including this Exhibit A is -> not sufficient to license the Source Code under Secondary Licenses. -> -> If it is not possible or desirable to put the notice in a particular -> file, then You may include the notice in a location (such as a LICENSE -> file in a relevant directory) where a recipient would be likely to -> look for such a notice. -> -> You may add additional accurate notices of copyright ownership. diff --git a/doc/d3-hwschematic-assets/elkjs/README.md b/doc/d3-hwschematic-assets/elkjs/README.md deleted file mode 100644 index 03af287a..00000000 --- a/doc/d3-hwschematic-assets/elkjs/README.md +++ /dev/null @@ -1,378 +0,0 @@ -

- -

- -The [Eclipse Layout Kernel (ELK)](https://www.eclipse.org/elk/) implements an infrastructure to connect diagram editors or viewers to automatic layout algorithms. This library takes the layout-relevant part of ELK and makes it available to the JavaScript world. -ELK's flagship is a layer-based layout algorithm that is particularly suited for node-link diagrams with an inherent direction and ports (explicit attachment points on a node's border). It is based on the ideas originally introduced by Sugiyama et al. An example can be seen in the screenshot below. - -Note that elkjs is not a diagramming framework itself - it computes positions for the elements of a diagram. - -elkjs is the successor of [klayjs](https://github.com/kieler/klayjs). - -#### Demonstrator -You can see elkjs [live in action](https://rtsys.informatik.uni-kiel.de/elklive/) in conjunction with TypeFox's [sprotty](https://github.com/eclipse/sprotty) diagramming framework. - -![](https://raw.githubusercontent.com/kieler/elkjs/master/doc/example_complexRouter.svg) - - -# FAQs and Recurring Issues -The following list includes some recurring topics that may have been addressed in issues already: - -* [#100][ejs100], [elk#355][e355], [elk#627][e627] - How to consider previous layout results, including - * dynamic layout, and - * incrementally adding nodes and edges to an existing layout. - -* [elk#315][e315]: Standalone edge routing. - -* [#85][ejs85] elkjs itself is a graph layout engine _only_. In other words, no rendering, styling, etc. is provided. - -* [#127][ejs127], [#141][ejs141], [#142][ejs142] - Issues due to the underlying code transpilation by GWT and/or due to the outdated usage of js modules: - * `g is not defined`, - * `Can't resolve web-worker`, and - * general usage as part of react, webpack, etc. - * [#6][ejs6] Poor modularization - * Contributions here are welcome! - -[ejs6]: https://github.com/kieler/elkjs/issues/6 -[ejs85]: https://github.com/kieler/elkjs/issues/85 -[ejs100]: https://github.com/kieler/elkjs/issues/100 -[ejs127]: https://github.com/kieler/elkjs/issues/127 -[ejs141]: https://github.com/kieler/elkjs/issues/141 -[ejs142]: https://github.com/kieler/elkjs/issues/142 -[e315]: https://github.com/eclipse/elk/issues/315 -[e355]: https://github.com/eclipse/elk/issues/355 -[e627]: https://github.com/eclipse/elk/issues/627 - -# Installation -The latest released version: -```bash -npm install elkjs -``` -Development version based on ELK's `master` branch. -```bash -npm install elkjs@next -``` - -# Releases and Versioning - -Releases are partly synchronized with ELK's versions: the minor version number is always the same but the revision number may diverge. For instance, elkjs 0.3.0 equals the functionality of ELK 0.3.0 but elkjs 0.3.2 may be different from ELK 0.3.2. This is necessary as there may be fixes that solely concern elkjs and should be released independently of ELK. - -# Files -The library consists of two main files: -* `elk-api.js`: Provides the API and only the API. -* `elk-worker.js`: Provides the code that actually knows how to lay out a graph. This is the file that is generated from ELK's Java code base using GWT. - -Two further files are provided: -* `elk.bundled.js`: A bundled version of the two previous files, ready to be dropped into a browser's ` - - -``` - -```html - - - - -``` - -## Typescript -```ts -import ELK from 'elkjs/lib/elk.bundled.js' -const elk = new ELK() - - -import ELK from 'elkjs/lib/elk-api' -const elk = new ELK({ - workerUrl: './elk-worker.min.js' -}) -``` - -## Debugging -For debugging purposes you may want to use the non-minified versions that are available as well. -In this case the non-minified webworker version can be configured like so: -```js -const ELK = require('elkjs/lib/elk-api.js') -const elk = new ELK({ - workerFactory: function(url) { // the value of 'url' is irrelevant here - const { Worker } = require('elkjs/lib/elk-worker.js') // non-minified - return new Worker(url) - } -}) -``` - -# API - -The elkjs library provides a single object: the `ELK`. The `ELK` has a constructor that can be used -to construct it: -* `new ELK(options)` - the `ELK` can be fed with options, all of which are optional: - * `defaultLayoutOptions` - an object with default layout options specified as key/value pairs - that are used if no further layout options are passed to the `layout(graph, options)` method (see below). Default: `{}`. - * `algorithms` - an array of algorithm ids (only the suffix). Default: `[ 'layered', 'stress', 'mrtree', 'radial', 'force', 'disco' ]`. Note that the `box`, `fixed`, and `random` layouters are always included. - * `workerUrl` - a path to the `elk-worker.js` script. As a consequence the `ELK` will use a Web Worker to execute the layout. Default: `undefined`. - -Apart from that the `ELK` offers the following methods: -* `layout(graph, options)` - * `graph` - the graph to be laid out in [ELK JSON](http://www.eclipse.org/elk/documentation/tooldevelopers/graphdatastructure/jsonformat.html). Mandatory! - * `options` - a configuration object. Optional. - * `layoutOptions`: its most important purpose is to pass _global_ layout options. - That is, layout options that are applied to every graph element unless the element specifies the option itself. - * `logging`: boolean (_since 0.6.0_). Whether logging information shall be passed back as part of the laid out graph. `false` by default. - * `measureExecutionTime`: boolean (_since 0.6.0_). Whether execution time (in seconds) information shall be passed back as part of the laid out graph. `false` by default. - * returns a `Promise`, which passes either the laid out graph on success or a (hopefully helpful) error on failure. -* `knownLayoutOptions()` - * returns an array of of known layout options. For each option additional information - such as its `id` and `group` is given. -* `knownLayoutAlgorithms()` - * returns an array of registered layout algorithms (see above) - alongside further information about each algorithm. -* `knownLayoutCategories()` - * returns an array of registered layout categories. -* `terminateWorker()` - in case a Web Worker is used, the worker's `terminate()` method is called. - -The three methods starting with `known` basically return information -that, in the Java world, would be retrieved from the [`LayoutMetaDataService`](http://www.eclipse.org/elk/documentation/algorithmdevelopers/metadatalanguage.html). - - -# Logging and Execution Times -(_Since 0.6.0_) - -ELK provides some means to log debug information during layout algorithm execution. -The details can be found in the [_Algorithm Debugging_](https://www.eclipse.org/elk/documentation/algorithmdevelopers/algorithmdebugging.html) section of ELK's documentation. -Not all of it is available in elkjs though, for instance, it is not possible to save intermediate results of the laid out graphs. -Furthermore, while internally execution time is measured in _nanoseconds_ on the Java side, -in elkjs we have to resort to _milliseconds_. -Note that the returned execution times are in seconds. -For small graphs this may often result in execution times being reported as `0`. - -See below an example call and the example output. -```js -elk.layout(simpleGraph, { - layoutOptions: { - 'algorithm': 'layered' - }, - logging: true, - measureExecutionTime: true -}) -``` -```js -{ - "id": "root", - "children": [ ... ], - "edges": [ ... ], - "logging": { - "name": "Recursive Graph Layout", - "executionTime": 0.000096, - "children": [ { - "name": "Layered layout", - "logs": [ - "ELK Layered uses the following 17 modules:", - " Slot 01: org.eclipse.elk.alg.layered.p1cycles.GreedyCycleBreaker", - [ ... ] - " Slot 16: org.eclipse.elk.alg.layered.intermediate.ReversedEdgeRestorer" - ], - "executionTime": 0.000072, - "children": [ { "name": "Greedy cycle removal", "executionTime": 0.000002 }, - [ ... ] - { "name": "Restoring reversed edges", "executionTime": 0 } ] - } ] - } -} -``` - -# Building - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/kieler/elkjs) - -For building, a checkout of the [ELK](https://github.com/eclipse/elk) repository is required -and should be located in the same directory as the checkout of this repository. Like so: - -``` -some_dir/ - ├── elkjs - └── elk -``` - -```bash -npm install -npm run build -``` - -For a new release, the following version numbers have to be changed: -* `version` in `package.json`, -* `melk` in `build.gradle`, and -* don't forget to checkout the correct release tag of ELK's repository. - -Afterwards you can find the created files in the `lib` folder. - -Current procedure -```bash -git checkout -b releases/0.x.x -# Update versions and commit the changes -npm install -npm run build -npm run test -# Add ./lib/ directory and commit -git tag 0.x.x -# Push release branch an tags to remote -npm publish -``` - -# Links -In the following a list of asorted links to other projects and sites that may prove helpful: -* [Execution time comparison to Java ELK](https://github.com/kieler/elk-speed) -* How to specify [node label placement](http://kieler.github.io/klayjs-d3/examples/node_labels/) -* How to enforce certain [node positioning](http://kieler.github.io/klayjs-d3/examples/interactive/) (topological) - -# Example Users of elkjs - -- Schematics - - [netlistsvg](https://github.com/nturley/netlistsvg) - electronic and gate level schematics as SVG - - [d3-hwschematic](https://github.com/Nic30/d3-hwschematic) - interactive digital circuit analysis and documentation, particularly for FPGA-based designs -- Cytoscape [adapter](https://github.com/cytoscape/cytoscape.js-elk) -- [reaflow](https://reaflow.dev) - Node-based editor built on elkjs in React -- Wrapping elkjs into a [docker-based microservice](https://github.com/elbosso/elkjsmicroservice) -- [sprotty](https://github.com/eclipse/sprotty) - A diagramming framework -- [Eclipse 4diac](https://www.fordiac.org) -- [capellambse-context-diagrams](https://github.com/DSD-DBS/capellambse-context-diagrams) - Generating systems engineering context diagrams for [Capella](https://www.eclipse.org/capella/) in Python - -Note: We are happy to extend this list further, so please contact us if you have a project to add - -# Thanks - -* [@automata](https://github.com/automata) for the very first `klayjs` version -* [@aranega](https://github.com/aranega) for making emfgwt work for us -* [@EyMaddis](https://github.com/EyMaddis) for valuable API discussions -* The team working on the layout algorithms - * [@spoenemann](https://github.com/spoenemann) - * [@le-cds](https://github.com/le-cds) - * [@uruuru](https://github.com/uruuru) - * [@eNBeWe](https://github.com/eNBeWe) - * the vast number of students that contributed to ELK diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts deleted file mode 100644 index 139ffbda..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk-api.d.ts +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019 TypeFox and others. - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ - -export interface LayoutOptions { - [key: string]: string -} - -export interface ElkPoint { - x: number - y: number -} - -export interface ElkGraphElement { - id?: string - labels?: ElkLabel[] - layoutOptions?: LayoutOptions -} - -export interface ElkShape extends ElkGraphElement { - x?: number - y?: number - width?: number - height?: number -} - -export interface ElkNode extends ElkShape { - id: string - children?: ElkNode[] - ports?: ElkPort[] - edges?: ElkExtendedEdge[] -} - -export interface ElkPort extends ElkShape { - id: string -} - -export interface ElkLabel extends ElkShape { - text?: string -} - -/** - * @deprecated use ElkExtendedEdge directly - */ -export interface ElkEdge extends ElkGraphElement { - id: string - junctionPoints?: ElkPoint[] -} - -/** - * @deprecated use ElkExtendedEdge instead - */ -export interface ElkPrimitiveEdge extends ElkEdge { - source: string - sourcePort?: string - target: string - targetPort?: string - sourcePoint?: ElkPoint - targetPoint?: ElkPoint - bendPoints?: ElkPoint[] -} - -export interface ElkExtendedEdge extends ElkEdge { - sources: string[] - targets: string[] - sections?: ElkEdgeSection[] -} - -export interface ElkEdgeSection extends ElkGraphElement { - id: string - startPoint: ElkPoint - endPoint: ElkPoint - bendPoints?: ElkPoint[] - incomingShape?: string - outgoingShape?: string - incomingSections?: string[] - outgoingSections?: string[] -} - -export interface ElkLayoutArguments { - layoutOptions?: LayoutOptions - logging?: boolean - measureExecutionTime?: boolean -} - -export interface ElkCommonDescription { - id?: string - name?: string - description?: string -} - -export interface ElkLayoutAlgorithmDescription extends ElkCommonDescription { - category?: string - knownOptions?: string[] - supportedFeatures?: string[] -} - -export interface ElkLayoutOptionDescription extends ElkCommonDescription { - group?: string - type?: string - targets?: string[] -} - -export interface ElkLayoutCategoryDescription extends ElkCommonDescription { - knownLayouters?: string[] -} - -export interface ELK { - layout(graph: ElkNode, args?: ElkLayoutArguments): Promise; - knownLayoutAlgorithms(): Promise - knownLayoutOptions(): Promise - knownLayoutCategories(): Promise -} - -export interface ELKConstructorArguments { - defaultLayoutOptions?: LayoutOptions - algorithms?: string[] - workerUrl?: string - workerFactory?: (url?: string) => Worker -} - -declare const ElkConstructor: { - new(args?: ELKConstructorArguments): ELK; -}; -export default ElkConstructor; diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-api.js b/doc/d3-hwschematic-assets/elkjs/lib/elk-api.js deleted file mode 100644 index b60e8bdc..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk-api.js +++ /dev/null @@ -1,224 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, - defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, - _ref$algorithms = _ref.algorithms, - algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, - workerFactory = _ref.workerFactory, - workerUrl = _ref.workerUrl; - - _classCallCheck(this, ELK); - - this.defaultLayoutOptions = defaultLayoutOptions; - this.initialized = false; - - // check valid worker construction possible - if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { - throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); - } - var factory = workerFactory; - if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { - // use default Web Worker - factory = function factory(url) { - return new Worker(url); - }; - } - - // create the worker - var worker = factory(workerUrl); - if (typeof worker.postMessage !== 'function') { - throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); - } - - // wrap the worker to return promises - this.worker = new PromisedWorker(worker); - - // initially register algorithms - this.worker.postMessage({ - cmd: 'register', - algorithms: algorithms - }).then(function (r) { - return _this.initialized = true; - }).catch(console.err); - } - - _createClass(ELK, [{ - key: 'layout', - value: function layout(graph) { - var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref2$layoutOptions = _ref2.layoutOptions, - layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, - _ref2$logging = _ref2.logging, - logging = _ref2$logging === undefined ? false : _ref2$logging, - _ref2$measureExecutio = _ref2.measureExecutionTime, - measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; - - if (!graph) { - return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); - } - return this.worker.postMessage({ - cmd: 'layout', - graph: graph, - layoutOptions: layoutOptions, - options: { - logging: logging, - measureExecutionTime: measureExecutionTime - } - }); - } - }, { - key: 'knownLayoutAlgorithms', - value: function knownLayoutAlgorithms() { - return this.worker.postMessage({ cmd: 'algorithms' }); - } - }, { - key: 'knownLayoutOptions', - value: function knownLayoutOptions() { - return this.worker.postMessage({ cmd: 'options' }); - } - }, { - key: 'knownLayoutCategories', - value: function knownLayoutCategories() { - return this.worker.postMessage({ cmd: 'categories' }); - } - }, { - key: 'terminateWorker', - value: function terminateWorker() { - this.worker.terminate(); - } - }]); - - return ELK; -}(); - -exports.default = ELK; - -var PromisedWorker = function () { - function PromisedWorker(worker) { - var _this2 = this; - - _classCallCheck(this, PromisedWorker); - - if (worker === undefined) { - throw new Error("Missing mandatory parameter 'worker'."); - } - this.resolvers = {}; - this.worker = worker; - this.worker.onmessage = function (answer) { - // why is this necessary? - setTimeout(function () { - _this2.receive(_this2, answer); - }, 0); - }; - } - - _createClass(PromisedWorker, [{ - key: 'postMessage', - value: function postMessage(msg) { - var id = this.id || 0; - this.id = id + 1; - msg.id = id; - var self = this; - return new Promise(function (resolve, reject) { - // prepare the resolver - self.resolvers[id] = function (err, res) { - if (err) { - self.convertGwtStyleError(err); - reject(err); - } else { - resolve(res); - } - }; - // post the message - self.worker.postMessage(msg); - }); - } - }, { - key: 'receive', - value: function receive(self, answer) { - var json = answer.data; - var resolver = self.resolvers[json.id]; - if (resolver) { - delete self.resolvers[json.id]; - if (json.error) { - resolver(json.error); - } else { - resolver(null, json.data); - } - } - } - }, { - key: 'terminate', - value: function terminate() { - if (this.worker.terminate) { - this.worker.terminate(); - } - } - }, { - key: 'convertGwtStyleError', - value: function convertGwtStyleError(err) { - if (!err) { - return; - } - // Somewhat flatten the way GWT stores nested exception(s) - var javaException = err['__java$exception']; - if (javaException) { - // Note that the property name of the nested exception is different - // in the non-minified ('cause') and the minified (not deterministic) version. - // Hence, the version below only works for the non-minified version. - // However, as the minified stack trace is not of much use anyway, one - // should switch the used version for debugging in such a case. - if (javaException.cause && javaException.cause.backingJsObject) { - err.cause = javaException.cause.backingJsObject; - this.convertGwtStyleError(err.cause); - } - delete err['__java$exception']; - } - } - }]); - - return PromisedWorker; -}(); -},{}],2:[function(require,module,exports){ -"use strict"; - -/******************************************************************************* - * Copyright (c) 2021 Kiel University and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -var ELK = require('./elk-api.js').default; - -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports = ELK; -ELK.default = ELK; -},{"./elk-api.js":1}]},{},[2])(2) -}); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts deleted file mode 100644 index 77606b21..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.d.ts +++ /dev/null @@ -1 +0,0 @@ -export type Worker = Worker diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js deleted file mode 100644 index 56c55756..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.js +++ /dev/null @@ -1,100643 +0,0 @@ -'use strict'; - -// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- -var $wnd; -if (typeof window !== 'undefined') - $wnd = window -else if (typeof global !== 'undefined') - $wnd = global // nodejs -else if (typeof self !== 'undefined') - $wnd = self // web worker - -var $moduleName, - $moduleBase; - -// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- -var _xblockexpression; - -// -------------- GENERATED CODE -------------- -var $intern_0 = 2147483647, $intern_1 = {3:1}, $intern_2 = {3:1, 4:1, 5:1}, $intern_3 = {198:1, 47:1}, $intern_4 = {198:1, 47:1, 125:1}, $intern_5 = {224:1, 3:1}, $intern_6 = {47:1}, $intern_7 = {83:1}, $intern_8 = {20:1, 28:1, 14:1}, $intern_9 = 1965, $intern_10 = {20:1, 28:1, 14:1, 21:1}, $intern_11 = {83:1, 171:1, 161:1}, $intern_12 = {20:1, 28:1, 14:1, 21:1, 84:1}, $intern_13 = {20:1, 28:1, 14:1, 271:1, 21:1, 84:1}, $intern_14 = {47:1, 125:1}, $intern_15 = {345:1, 42:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {164:1}, $intern_19 = {38:1}, $intern_20 = {l:4194303, m:4194303, h:524287}, $intern_21 = {196:1}, $intern_22 = {245:1, 3:1, 35:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 14:1}, $intern_25 = {3:1, 20:1, 28:1, 14:1}, $intern_26 = {152:1, 3:1, 20:1, 28:1, 14:1, 15:1, 54:1}, $intern_27 = {3:1, 4:1, 5:1, 165:1}, $intern_28 = {3:1, 83:1}, $intern_29 = {20:1, 14:1, 21:1}, $intern_30 = {3:1, 20:1, 28:1, 14:1, 21:1}, $intern_31 = {20:1, 14:1, 21:1, 84:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 165:1}, $intern_35 = 1073741824, $intern_36 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_37 = {20:1, 28:1, 52:1, 14:1, 15:1}, $intern_38 = {20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_39 = {45:1}, $intern_40 = {365:1}, $intern_41 = 1.0E-4, $intern_42 = -2147483648, $intern_43 = {3:1, 102:1, 60:1, 78:1}, $intern_44 = {195:1, 3:1, 4:1}, $intern_45 = 1000, $intern_46 = 65535, $intern_47 = 1900, $intern_48 = {48:1, 3:1, 4:1}, $intern_49 = {3:1, 4:1, 35:1, 199:1}, $intern_50 = 4194303, $intern_51 = 1048575, $intern_52 = 524288, $intern_53 = 4194304, $intern_54 = 17592186044416, $intern_55 = 1000000000, $intern_56 = -17592186044416, $intern_57 = {3:1, 102:1, 73:1, 60:1, 78:1}, $intern_58 = {3:1, 289:1, 78:1}, $intern_59 = Infinity, $intern_60 = -Infinity, $intern_61 = 4096, $intern_62 = {3:1, 4:1, 364:1}, $intern_63 = 65536, $intern_64 = 55296, $intern_65 = {104:1, 3:1, 4:1}, $intern_66 = 100000, $intern_67 = 0.3010299956639812, $intern_68 = 4294967295, $intern_69 = 4294967296, $intern_70 = {42:1}, $intern_71 = {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1}, $intern_72 = {3:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_73 = {20:1, 14:1, 15:1}, $intern_74 = {3:1, 62:1}, $intern_75 = {182:1}, $intern_76 = {3:1, 4:1, 83:1}, $intern_77 = {3:1, 4:1, 20:1, 28:1, 14:1, 53:1, 21:1}, $intern_78 = 1.4901161193847656E-8, $intern_79 = 1.1102230246251565E-16, $intern_80 = 15525485, $intern_81 = 5.9604644775390625E-8, $intern_82 = 16777216, $intern_83 = 16777215, $intern_84 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_85 = {3:1, 35:1, 22:1, 297:1}, $intern_86 = {3:1, 4:1, 5:1, 842:1}, $intern_87 = {525:1, 670:1}, $intern_88 = {62:1}, $intern_89 = {169:1, 45:1}, $intern_90 = {130:1}, $intern_91 = {177:1, 3:1, 4:1}, $intern_92 = {212:1, 326:1}, $intern_93 = {3:1, 4:1, 5:1, 595:1}, $intern_94 = 0.01, $intern_95 = {3:1, 94:1, 134:1}, $intern_96 = {209:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 192:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 106:1, 120:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 122:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 141:1, 106:1, 120:1}, $intern_105 = {51:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 474:1, 141:1, 106:1, 120:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 141:1, 193:1, 203:1, 106:1, 120:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 141:1, 1943:1, 203:1, 106:1, 120:1}, $intern_109 = {3:1, 4:1, 142:1, 207:1, 414:1}, $intern_110 = {3:1, 4:1, 116:1, 207:1, 414:1}, $intern_111 = {225:1}, $intern_112 = {3:1, 4:1, 5:1, 593:1}, $intern_113 = {123:1, 51:1}, $intern_114 = {402:1, 225:1}, $intern_115 = {832:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 840:1}, $intern_117 = 1.0E-5, $intern_118 = 1.0E-6, $intern_119 = 0.09999999999999998, $intern_120 = 1.0E-8, $intern_121 = 4.71238898038469, $intern_122 = 3.141592653589793, $intern_123 = 6.283185307179586, $intern_124 = 4.9E-324, $intern_125 = {3:1, 4:1, 5:1, 106:1}, $intern_126 = 5.497787143782138, $intern_127 = 3.9269908169872414, $intern_128 = 2.356194490192345, $intern_129 = {331:1}, $intern_130 = {288:1}, $intern_131 = 0.05, $intern_132 = 1.2999999523162842, $intern_133 = {92:1, 90:1}, $intern_134 = 32768, $intern_135 = {105:1, 92:1, 90:1, 56:1, 49:1, 97:1}, $intern_136 = {190:1, 3:1, 4:1}, $intern_137 = 1024, $intern_138 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1}, $intern_139 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 47:1, 15:1, 54:1, 67:1, 63:1, 58:1, 588:1}, $intern_140 = {415:1, 672:1}, $intern_141 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}, $intern_142 = {366:1, 143:1}, $intern_143 = {3:1, 4:1, 5:1, 126:1}, $intern_144 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 58:1}, $intern_145 = {3:1, 6:1, 4:1, 5:1, 192:1}, $intern_146 = {3:1, 4:1, 5:1, 165:1, 367:1}, $intern_147 = {76:1}, $intern_148 = {3:1, 20:1, 14:1, 15:1, 58:1, 589:1, 76:1, 69:1, 95:1}, $intern_149 = 8192, $intern_150 = 2048, $intern_151 = {3:1, 4:1, 5:1, 247:1}, $intern_152 = {3:1, 4:1, 5:1, 673:1}, $intern_153 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 69:1}, $intern_154 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 69:1, 95:1}, $intern_155 = {3:1, 4:1, 5:1, 674:1}, $intern_156 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 76:1, 69:1, 95:1}, $intern_157 = {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 69:1}, $intern_158 = {47:1, 125:1, 279:1}, $intern_159 = {72:1, 332:1}, $intern_160 = 1316, $intern_161 = -32768, $intern_162 = {55:1}, $intern_163 = {3:1, 4:1, 5:1, 119:1}, $intern_164 = {92:1, 90:1, 591:1, 1935:1}, $intern_165 = 1114111, $intern_166 = {3:1, 117:1}, $intern_167 = {3:1, 4:1, 5:1, 368:1}; -var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; -function setGwtProperty(propertyName, propertyValue){ - typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); -} - -function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ - ensureModuleInit(); - var initFnList = initFnList_0; - $moduleName = modName; - $moduleBase = modBase; - permutationId = softPermutationId; - function initializeModules(){ - for (var i = 0; i < initFnList.length; i++) { - initFnList[i](); - } - } - - if (errFn) { - try { - $entry(initializeModules)(); - } - catch (e) { - errFn(modName, e); - } - } - else { - $entry(initializeModules)(); - } -} - -function ensureModuleInit(){ - initFnList_0 == null && (initFnList_0 = []); -} - -function addInitFunctions(){ - ensureModuleInit(); - var initFnList = initFnList_0; - for (var i = 0; i < arguments.length; i++) { - initFnList.push(arguments[i]); - } -} - -function typeMarkerFn(){ -} - -function toString_40(object){ - var number; - if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { - return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); - } - return object.toString(); -} - -function portableObjCreate(obj){ - function F(){ - } - - ; - F.prototype = obj || {}; - return new F; -} - -function makeLambdaFunction(samMethod, ctor, ctorArguments){ - var lambda = function(){ - return samMethod.apply(lambda, arguments); - } - ; - ctor.apply(lambda, ctorArguments); - return lambda; -} - -function emptyMethod(){ -} - -function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ - var prototypesByTypeId = prototypesByTypeId_0, superPrototype; - var prototype_0 = prototypesByTypeId[typeId]; - var clazz = prototype_0 instanceof Array?prototype_0[0]:null; - if (prototype_0 && !clazz) { - _ = prototype_0; - } - else { - _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); - _.castableTypeMap = castableTypeMap; - !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); - prototypesByTypeId[typeId] = _; - } - for (var i = 3; i < arguments.length; ++i) { - arguments[i].prototype = _; - } - clazz && (_.___clazz = clazz); -} - -function bootstrap(){ - prototypesByTypeId_0 = {}; - !Array.isArray && (Array.isArray = function(vArg){ - return Object.prototype.toString.call(vArg) === '[object Array]'; - } - ); - function now_0(){ - return (new Date).getTime(); - } - - !Date.now && (Date.now = now_0); -} - -$wnd.goog = $wnd.goog || {}; -$wnd.goog.global = $wnd.goog.global || $wnd; -bootstrap(); -function $equals(this$static, other){ - return maskUndefined(this$static) === maskUndefined(other); -} - -function Object_0(){ -} - -function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ - return instanceOfString(this$static)?$equals_5(this$static, other):instanceOfDouble(this$static)?$equals_4(this$static, other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other)):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?$equals(this$static, other):$equals_3(this$static, other); -} - -function getClass__Ljava_lang_Class___devirtual$(this$static){ - return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; -} - -function hashCode__I__devirtual$(this$static){ - return instanceOfString(this$static)?getHashCode_1(this$static):instanceOfDouble(this$static)?$hashCode_0(this$static):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static)?1231:1237:hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getHashCode_0(this$static):$hashCode(this$static); -} - -defineClass(1, null, {}, Object_0); -_.equals_0 = function equals(other){ - return $equals(this, other); -} -; -_.getClass_0 = function getClass_0(){ - return this.___clazz; -} -; -_.hashCode_1 = function hashCode_0(){ - return getHashCode_0(this); -} -; -_.toString_0 = function toString_1(){ - var number; - return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); -} -; -_.equals = function(other){ - return this.equals_0(other); -} -; -_.hashCode = function(){ - return this.hashCode_1(); -} -; -_.toString = function(){ - return this.toString_0(); -} -; -function canCast(src_0, dstId){ - if (instanceOfString(src_0)) { - return !!stringCastMap[dstId]; - } - else if (src_0.castableTypeMap) { - return !!src_0.castableTypeMap[dstId]; - } - else if (instanceOfDouble(src_0)) { - return !!doubleCastMap[dstId]; - } - else if (instanceOfBoolean(src_0)) { - return !!booleanCastMap[dstId]; - } - return false; -} - -function castTo(src_0, dstId){ - checkCriticalType(src_0 == null || canCast(src_0, dstId)); - return src_0; -} - -function castToArray(src_0){ - var elementTypeCategory; - checkCriticalType(src_0 == null || Array.isArray(src_0) && (elementTypeCategory = getElementTypeCategory(src_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))); - return src_0; -} - -function castToBoolean(src_0){ - checkCriticalType(src_0 == null || instanceOfBoolean(src_0)); - return src_0; -} - -function castToDouble(src_0){ - checkCriticalType(src_0 == null || instanceOfDouble(src_0)); - return src_0; -} - -function castToJso(src_0){ - checkCriticalType(src_0 == null || isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn)); - return src_0; -} - -function castToString(src_0){ - checkCriticalType(src_0 == null || instanceOfString(src_0)); - return src_0; -} - -function charToString(x_0){ - return String.fromCharCode(x_0); -} - -function hasJavaObjectVirtualDispatch(src_0){ - return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; -} - -function instanceOf(src_0, dstId){ - return src_0 != null && canCast(src_0, dstId); -} - -function instanceOfBoolean(src_0){ - return typeof src_0 === 'boolean'; -} - -function instanceOfDouble(src_0){ - return typeof src_0 === 'number'; -} - -function instanceOfJso(src_0){ - return src_0 != null && isJsObjectOrFunction(src_0) && !(src_0.typeMarker === typeMarkerFn); -} - -function instanceOfString(src_0){ - return typeof src_0 === 'string'; -} - -function isJsObjectOrFunction(src_0){ - return typeof src_0 === 'object' || typeof src_0 === 'function'; -} - -function maskUndefined(src_0){ - return src_0 == null?null:src_0; -} - -function round_int(x_0){ - return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; -} - -function throwClassCastExceptionUnlessNull(o){ - checkCriticalType(o == null); - return o; -} - -var booleanCastMap, doubleCastMap, stringCastMap; -function $ensureNamesAreInitialized(this$static){ - if (this$static.typeName != null) { - return; - } - initializeNames(this$static); -} - -function $getEnumConstants(this$static){ - return this$static.enumConstantsFunc && this$static.enumConstantsFunc(); -} - -function $getName(this$static){ - $ensureNamesAreInitialized(this$static); - return this$static.typeName; -} - -function $toString_5(this$static){ - return ((this$static.modifiers & 2) != 0?'interface ':(this$static.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this$static) , this$static.typeName); -} - -function Class(){ - ++nextSequentialId; - this.typeName = null; - this.simpleName = null; - this.packageName = null; - this.compoundName = null; - this.canonicalName = null; - this.typeId = null; - this.arrayLiterals = null; -} - -function createClassObject(packageName, compoundClassName){ - var clazz; - clazz = new Class; - clazz.packageName = packageName; - clazz.compoundName = compoundClassName; - return clazz; -} - -function createForClass(packageName, compoundClassName, typeId){ - var clazz; - clazz = createClassObject(packageName, compoundClassName); - maybeSetClassLiteral(typeId, clazz); - return clazz; -} - -function createForEnum(packageName, compoundClassName, typeId, superclass, enumConstantsFunc, enumValueOfFunc){ - var clazz; - clazz = createClassObject(packageName, compoundClassName); - maybeSetClassLiteral(typeId, clazz); - clazz.modifiers = enumConstantsFunc?8:0; - clazz.enumSuperclass = superclass; - clazz.enumConstantsFunc = enumConstantsFunc; - clazz.enumValueOfFunc = enumValueOfFunc; - return clazz; -} - -function createForInterface(packageName, compoundClassName){ - var clazz; - clazz = createClassObject(packageName, compoundClassName); - clazz.modifiers = 2; - return clazz; -} - -function createForPrimitive(className, primitiveTypeId){ - var clazz; - clazz = createClassObject('', className); - clazz.typeId = primitiveTypeId; - clazz.modifiers = 1; - return clazz; -} - -function getClassLiteralForArray_0(leafClass, dimensions){ - var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; - return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); -} - -function getPrototypeForClass(clazz){ - if (clazz.isPrimitive()) { - return null; - } - var typeId = clazz.typeId; - return prototypesByTypeId_0[typeId]; -} - -function initializeNames(clazz){ - if (clazz.isArray_1()) { - var componentType = clazz.componentType; - componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_1()?(clazz.typeName = '[L' + componentType.getName() + ';'):(clazz.typeName = '[' + componentType.getName()); - clazz.canonicalName = componentType.getCanonicalName() + '[]'; - clazz.simpleName = componentType.getSimpleName() + '[]'; - return; - } - var packageName = clazz.packageName; - var compoundName = clazz.compoundName; - compoundName = compoundName.split('/'); - clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); - clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); - clazz.simpleName = compoundName[compoundName.length - 1]; -} - -function join_0(separator, strings){ - var i = 0; - while (!strings[i] || strings[i] == '') { - i++; - } - var result = strings[i++]; - for (; i < strings.length; i++) { - if (!strings[i] || strings[i] == '') { - continue; - } - result += separator + strings[i]; - } - return result; -} - -function maybeSetClassLiteral(typeId, clazz){ - var proto; - if (!typeId) { - return; - } - clazz.typeId = typeId; - var prototype_0 = getPrototypeForClass(clazz); - if (!prototype_0) { - prototypesByTypeId_0[typeId] = [clazz]; - return; - } - prototype_0.___clazz = clazz; -} - -defineClass(290, 1, {290:1, 2026:1}, Class); -_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ - var clazz; - clazz = new Class; - clazz.modifiers = 4; - dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); - return clazz; -} -; -_.getCanonicalName = function getCanonicalName(){ - $ensureNamesAreInitialized(this); - return this.canonicalName; -} -; -_.getName = function getName(){ - return $getName(this); -} -; -_.getSimpleName = function getSimpleName(){ - return $ensureNamesAreInitialized(this) , this.simpleName; -} -; -_.isArray_1 = function isArray_1(){ - return (this.modifiers & 4) != 0; -} -; -_.isPrimitive = function isPrimitive(){ - return (this.modifiers & 1) != 0; -} -; -_.toString_0 = function toString_44(){ - return $toString_5(this); -} -; -_.modifiers = 0; -var nextSequentialId = 1; -var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); -var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 290); -defineClass(1998, 1, $intern_1); -var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 1998); -function $clinit_Absent(){ - $clinit_Absent = emptyMethod; - INSTANCE = new Absent; -} - -function Absent(){ -} - -defineClass(1170, 1998, $intern_1, Absent); -_.equals_0 = function equals_0(object){ - return object === this; -} -; -_.hashCode_1 = function hashCode_1(){ - return 2040732332; -} -; -_.toString_0 = function toString_2(){ - return 'Optional.absent()'; -} -; -_.transform = function transform(function_0){ - checkNotNull(function_0); - return $clinit_Absent() , INSTANCE; -} -; -var INSTANCE; -var Lcom_google_common_base_Absent_2_classLit = createForClass('com.google.common.base', 'Absent', 1170); -function $appendTo(this$static, appendable, parts){ - checkNotNull(appendable); - if (parts.hasNext_0()) { - $append_7(appendable, $toString(parts.next_1())); - while (parts.hasNext_0()) { - $append_7(appendable, this$static.separator); - $append_7(appendable, $toString(parts.next_1())); - } - } - return appendable; -} - -function $appendTo_0(this$static, builder, parts){ - var impossible; - try { - $appendTo(this$static, builder, parts); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 597)) { - impossible = $e0; - throw toJs(new AssertionError_0(impossible)); - } - else - throw toJs($e0); - } - return builder; -} - -function $join(this$static, parts){ - return $appendTo_0(this$static, new StringBuilder, parts).string; -} - -function $toString(part){ - checkNotNull(part); - return instanceOf(part, 475)?castTo(part, 475):toString_40(part); -} - -function Joiner(){ - this.separator = castToString(checkNotNull(', ')); -} - -defineClass(628, 1, {}, Joiner); -var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 628); -function equal(a, b){ - return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); -} - -function badElementIndex(index_0, size_0){ - if (index_0 < 0) { - return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0)])); - } - else if (size_0 < 0) { - throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); - } - else { - return lenientFormat('%s (%s) must be less than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, ['index', valueOf_4(index_0), valueOf_4(size_0)])); - } -} - -function badPositionIndex(index_0, size_0, desc){ - if (index_0 < 0) { - return lenientFormat('%s (%s) must not be negative', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0)])); - } - else if (size_0 < 0) { - throw toJs(new IllegalArgumentException_0('negative size: ' + size_0)); - } - else { - return lenientFormat('%s (%s) must not be greater than size (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [desc, valueOf_4(index_0), valueOf_4(size_0)])); - } -} - -function badPositionIndexes(start_0, end, size_0){ - if (start_0 < 0 || start_0 > size_0) { - return badPositionIndex(start_0, size_0, 'start index'); - } - if (end < 0 || end > size_0) { - return badPositionIndex(end, size_0, 'end index'); - } - return lenientFormat('end index (%s) must not be less than start index (%s)', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(end), valueOf_4(start_0)])); -} - -function checkArgument(expression){ - if (!expression) { - throw toJs(new IllegalArgumentException); - } -} - -function checkArgument_0(expression, errorMessage){ - if (!expression) { - throw toJs(new IllegalArgumentException_0(errorMessage)); - } -} - -function checkArgument_1(b, p1){ - if (!b) { - throw toJs(new IllegalArgumentException_0(lenientFormat('value already present: %s', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1])))); - } -} - -function checkArgument_2(b, errorMessageTemplate, p1, p2){ - if (!b) { - throw toJs(new IllegalArgumentException_0(lenientFormat(errorMessageTemplate, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [p1, p2])))); - } -} - -function checkElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new IndexOutOfBoundsException_0(badElementIndex(index_0, size_0))); - } - return index_0; -} - -function checkNotNull(reference){ - if (reference == null) { - throw toJs(new NullPointerException); - } - return reference; -} - -function checkNotNull_0(reference, errorMessage){ - if (reference == null) { - throw toJs(new NullPointerException_0(errorMessage)); - } - return reference; -} - -function checkPositionIndex(index_0, size_0){ - if (index_0 < 0 || index_0 > size_0) { - throw toJs(new IndexOutOfBoundsException_0(badPositionIndex(index_0, size_0, 'index'))); - } - return index_0; -} - -function checkPositionIndexes(start_0, end, size_0){ - if (start_0 < 0 || end < start_0 || end > size_0) { - throw toJs(new IndexOutOfBoundsException_0(badPositionIndexes(start_0, end, size_0))); - } -} - -function checkState(expression){ - if (!expression) { - throw toJs(new IllegalStateException); - } -} - -function checkState_0(expression){ - if (!expression) { - throw toJs(new IllegalStateException_0('no calls to next() since the last call to remove()')); - } -} - -var Lcom_google_common_base_Predicate_2_classLit = createForInterface('com.google.common.base', 'Predicate'); -function toStringHelper(components){ - var builder, first, o, o$iterator; - builder = $append_5($append_11(new StringBuilder_1('Predicates.'), 'and'), 40); - first = true; - for (o$iterator = new AbstractList$IteratorImpl(components); o$iterator.i < o$iterator.this$01_0.size_1();) { - o = (checkCriticalElement(o$iterator.i < o$iterator.this$01_0.size_1()) , o$iterator.this$01_0.get_0(o$iterator.last = o$iterator.i++)); - first || (builder.string += ',' , builder); - builder.string += '' + o; - first = false; - } - return (builder.string += ')' , builder).string; -} - -function $apply(this$static, t){ - var i; - for (i = 0; i < this$static.components.array.length; i++) { - if (!castTo($get_12(this$static.components, i), 169).apply_1(t)) { - return false; - } - } - return true; -} - -function Predicates$AndPredicate(components){ - this.components = components; -} - -defineClass(582, 1, {169:1, 582:1, 3:1, 45:1}, Predicates$AndPredicate); -_.test_0 = function test_0(input_0){ - return $apply(this, input_0); -} -; -_.apply_1 = function apply_1(t){ - return $apply(this, t); -} -; -_.equals_0 = function equals_1(obj){ - var that; - if (instanceOf(obj, 582)) { - that = castTo(obj, 582); - return $equals_2(this.components, that.components); - } - return false; -} -; -_.hashCode_1 = function hashCode_2(){ - return hashCode_48(this.components) + 306654252; -} -; -_.toString_0 = function toString_3(){ - return toStringHelper(this.components); -} -; -var Lcom_google_common_base_Predicates$AndPredicate_2_classLit = createForClass('com.google.common.base', 'Predicates/AndPredicate', 582); -function Present(reference){ - this.reference = reference; -} - -defineClass(408, 1998, {408:1, 3:1}, Present); -_.equals_0 = function equals_2(object){ - var other; - if (instanceOf(object, 408)) { - other = castTo(object, 408); - return equals_Ljava_lang_Object__Z__devirtual$(this.reference, other.reference); - } - return false; -} -; -_.hashCode_1 = function hashCode_3(){ - return 1502476572 + hashCode__I__devirtual$(this.reference); -} -; -_.toString_0 = function toString_4(){ - return 'Optional.of(' + this.reference + ')'; -} -; -_.transform = function transform_0(function_0){ - return new Present(checkNotNull_0(function_0.apply_0(this.reference), 'the Function passed to Optional.transform() must not return null.')); -} -; -var Lcom_google_common_base_Present_2_classLit = createForClass('com.google.common.base', 'Present', 408); -function lenientFormat(template, args){ - var builder, i, i0, placeholderStart, templateStart; - template = template == null?'null':(checkCriticalNotNull(template) , template); - for (i0 = 0; i0 < args.length; i0++) { - args[i0] = lenientToString(args[i0]); - } - builder = new StringBuilder_0; - templateStart = 0; - i = 0; - while (i < args.length) { - placeholderStart = template.indexOf('%s', templateStart); - if (placeholderStart == -1) { - break; - } - builder.string += '' + $substring_1(template == null?'null':(checkCriticalNotNull(template) , template), templateStart, placeholderStart); - $append_10(builder, args[i++]); - templateStart = placeholderStart + 2; - } - $append_9(builder, template, templateStart, template.length); - if (i < args.length) { - builder.string += ' ['; - $append_10(builder, args[i++]); - while (i < args.length) { - builder.string += ', '; - $append_10(builder, args[i++]); - } - builder.string += ']'; - } - return builder.string; -} - -function lenientToString(o){ - var e, number, objectToString; - try { - return o == null?'null':toString_40(o); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - e = $e0; - objectToString = $getName(getClass__Ljava_lang_Class___devirtual$(o)) + '@' + (number = ($clinit_System() , getIdentityHashCode(o)) >>> 0 , number.toString(16)); - $log(getLogger(), ($clinit_Level() , 'Exception during lenientFormat for ' + objectToString), e); - return '<' + objectToString + ' threw ' + $getName(e.___clazz) + '>'; - } - else - throw toJs($e0); - } -} - -function $forEachRemaining(this$static, consumer){ - checkCriticalNotNull(consumer); - while (this$static.hasNext_0()) { - consumer.accept(this$static.next_1()); - } -} - -function $remove_21(){ - throw toJs(new UnsupportedOperationException); -} - -function $remove(){ - throw toJs(new UnsupportedOperationException); -} - -defineClass(198, 1, $intern_3); -_.forEachRemaining = function forEachRemaining(consumer){ - $forEachRemaining(this, consumer); -} -; -_.remove = function remove_0(){ - $remove(); -} -; -var Lcom_google_common_collect_UnmodifiableIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableIterator', 198); -defineClass(1978, 198, $intern_4); -_.remove = function remove_1(){ - $remove(); -} -; -_.add_1 = function add_1(e){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_1 = function set_1(e){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_UnmodifiableListIterator_2_classLit = createForClass('com.google.common.collect', 'UnmodifiableListIterator', 1978); -function AbstractIndexedListIterator(size_0){ - AbstractIndexedListIterator_0.call(this, size_0, 0); -} - -function AbstractIndexedListIterator_0(size_0, position){ - checkPositionIndex(position, size_0); - this.size_0 = size_0; - this.position = position; -} - -defineClass(386, 1978, $intern_4); -_.hasNext_0 = function hasNext(){ - return this.position < this.size_0; -} -; -_.hasPrevious = function hasPrevious(){ - return this.position > 0; -} -; -_.next_1 = function next_0(){ - if (this.position >= this.size_0) { - throw toJs(new NoSuchElementException); - } - return this.get_0(this.position++); -} -; -_.nextIndex_0 = function nextIndex_0(){ - return this.position; -} -; -_.previous_0 = function previous_0(){ - if (this.position <= 0) { - throw toJs(new NoSuchElementException); - } - return this.get_0(--this.position); -} -; -_.previousIndex = function previousIndex(){ - return this.position - 1; -} -; -_.position = 0; -_.size_0 = 0; -var Lcom_google_common_collect_AbstractIndexedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIndexedListIterator', 386); -function $hasNext(this$static){ - checkState(this$static.state != 3); - switch (this$static.state) { - case 2: - return false; - case 0: - return true; - } - return $tryToComputeNext(this$static); -} - -function $next(this$static){ - var result; - if (!$hasNext(this$static)) { - throw toJs(new NoSuchElementException); - } - this$static.state = 1; - result = this$static.next_0; - this$static.next_0 = null; - return result; -} - -function $tryToComputeNext(this$static){ - this$static.state = 3; - this$static.next_0 = this$static.computeNext(); - if (this$static.state != 2) { - this$static.state = 0; - return true; - } - return false; -} - -defineClass(699, 198, $intern_3); -_.hasNext_0 = function hasNext_0(){ - return $hasNext(this); -} -; -_.next_1 = function next_1(){ - return $next(this); -} -; -_.state = 1; -var Lcom_google_common_collect_AbstractIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractIterator', 699); -function $containsEntry(this$static, key, value_0){ - var collection; - collection = castTo(this$static.asMap_0().get_3(key), 14); - return !!collection && collection.contains(value_0); -} - -function $containsValue(this$static, value_0){ - var collection, collection$iterator; - for (collection$iterator = this$static.asMap_0().values_0().iterator_0(); collection$iterator.hasNext_0();) { - collection = castTo(collection$iterator.next_1(), 14); - if (collection.contains(value_0)) { - return true; - } - } - return false; -} - -function $keySet(this$static){ - var result; - result = this$static.keySet; - return !result?(this$static.keySet = this$static.createKeySet()):result; -} - -function $keys(this$static){ - var result; - result = this$static.keys_0; - return !result?(this$static.keys_0 = new Multimaps$Keys(this$static)):result; -} - -function $remove_0(this$static, key, value_0){ - var collection; - collection = castTo(this$static.asMap_0().get_3(key), 14); - return !!collection && collection.remove_1(value_0); -} - -defineClass(1986, 1, {224:1}); -_.asMap_0 = function asMap(){ - var result; - return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; -} -; -_.equals_0 = function equals_3(object){ - return equalsImpl_1(this, object); -} -; -_.hashCode_1 = function hashCode_4(){ - return hashCode__I__devirtual$(this.asMap_0()); -} -; -_.isEmpty = function isEmpty(){ - return this.size_1() == 0; -} -; -_.keySet_0 = function keySet(){ - return $keySet(this); -} -; -_.toString_0 = function toString_5(){ - return toString_40(this.asMap_0()); -} -; -var Lcom_google_common_collect_AbstractMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap', 1986); -function $clear(this$static){ - var collection, collection$iterator; - for (collection$iterator = this$static.map_0.values_0().iterator_0(); collection$iterator.hasNext_0();) { - collection = castTo(collection$iterator.next_1(), 14); - collection.clear_0(); - } - this$static.map_0.clear_0(); - this$static.totalSize = 0; -} - -function $containsKey(this$static, key){ - return this$static.map_0.containsKey(key); -} - -function $entries(this$static){ - var result; - return result = this$static.entries_0 , !result?(this$static.entries_0 = new AbstractMultimap$Entries(this$static)):result; -} - -function $get(this$static, key){ - var collection; - collection = castTo(this$static.map_0.get_3(key), 14); - !collection && (collection = this$static.createCollection_0(key)); - return this$static.wrapCollection(key, collection); -} - -function $put(this$static, key, value_0){ - var collection; - collection = castTo(this$static.map_0.get_3(key), 14); - if (!collection) { - collection = this$static.createCollection_0(key); - if (collection.add_2(value_0)) { - ++this$static.totalSize; - this$static.map_0.put(key, collection); - return true; - } - else { - throw toJs(new AssertionError_0('New Collection violated the Collection spec')); - } - } - else if (collection.add_2(value_0)) { - ++this$static.totalSize; - return true; - } - else { - return false; - } -} - -function $removeAll(this$static, key){ - var collection, output; - collection = castTo(this$static.map_0.remove_0(key), 14); - if (!collection) { - return this$static.createUnmodifiableEmptyCollection(); - } - output = this$static.createCollection(); - output.addAll(collection); - this$static.totalSize -= collection.size_1(); - collection.clear_0(); - return this$static.unmodifiableCollectionSubclass(output); -} - -function $removeValuesForKey(this$static, key){ - var collection, count; - collection = castTo(safeRemove_0(this$static.map_0, key), 14); - if (collection) { - count = collection.size_1(); - collection.clear_0(); - this$static.totalSize -= count; - } -} - -function $values(this$static){ - var result; - return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; -} - -function $wrapList(this$static, key, list, ancestor){ - return instanceOf(list, 54)?new AbstractMapBasedMultimap$RandomAccessWrappedList(this$static, key, list, ancestor):new AbstractMapBasedMultimap$WrappedList(this$static, key, list, ancestor); -} - -function AbstractMapBasedMultimap(map_0){ - checkArgument(map_0.isEmpty()); - this.map_0 = map_0; -} - -function iteratorOrListIterator(collection){ - return instanceOf(collection, 15)?castTo(collection, 15).listIterator_0():collection.iterator_0(); -} - -function lambda$1(keyToValueCollectionEntry_0){ - var key, valueCollection; - key = keyToValueCollectionEntry_0.getKey(); - valueCollection = castTo(keyToValueCollectionEntry_0.getValue(), 14); - return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); -} - -defineClass(726, 1986, $intern_5); -_.clear_0 = function clear_0(){ - $clear(this); -} -; -_.containsKey = function containsKey(key){ - return $containsKey(this, key); -} -; -_.createAsMap = function createAsMap(){ - return new AbstractMapBasedMultimap$AsMap(this, this.map_0); -} -; -_.createCollection_0 = function createCollection(key){ - return this.createCollection(); -} -; -_.createKeySet = function createKeySet(){ - return new AbstractMapBasedMultimap$KeySet(this, this.map_0); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection(){ - return this.unmodifiableCollectionSubclass(this.createCollection()); -} -; -_.entryIterator = function entryIterator_0(){ - return new AbstractMapBasedMultimap$2(this); -} -; -_.entrySpliterator = function entrySpliterator_0(){ - return flatMap(this.map_0.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$lambda$1$Type, 64, this.totalSize); -} -; -_.get_1 = function get_0(key){ - return $get(this, key); -} -; -_.removeAll = function removeAll(key){ - return $removeAll(this, key); -} -; -_.size_1 = function size_1(){ - return this.totalSize; -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass(collection){ - return $clinit_Collections() , new Collections$UnmodifiableCollection(collection); -} -; -_.valueIterator_0 = function valueIterator(){ - return new AbstractMapBasedMultimap$1(this); -} -; -_.valueSpliterator = function valueSpliterator(){ - return flatMap(this.map_0.values_0().spliterator_0(), new AbstractMapBasedMultimap$1methodref$spliterator$Type, 64, this.totalSize); -} -; -_.wrapCollection = function wrapCollection(key, collection){ - return new AbstractMapBasedMultimap$WrappedCollection(this, key, collection, null); -} -; -_.totalSize = 0; -var Lcom_google_common_collect_AbstractMapBasedMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap', 726); -function $asMap(this$static){ - var result; - return result = this$static.asMap , !result?(this$static.asMap = new AbstractMapBasedMultimap$AsMap(this$static, this$static.map_0)):result; -} - -defineClass(1631, 726, $intern_5); -_.createCollection = function createCollection_0(){ - return new ArrayList_0(this.expectedValuesPerKey); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_0(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.get_1 = function get_1(key){ - return castTo($get(this, key), 15); -} -; -_.removeAll = function removeAll_0(key){ - return castTo($removeAll(this, key), 15); -} -; -_.asMap_0 = function asMap_0(){ - return $asMap(this); -} -; -_.equals_0 = function equals_4(object){ - return equalsImpl_1(this, object); -} -; -_.get_2 = function get_2(key){ - return castTo($get(this, key), 15); -} -; -_.removeAll_0 = function removeAll_1(key){ - return castTo($removeAll(this, key), 15); -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_0(collection){ - return unmodifiableList(castTo(collection, 15)); -} -; -_.wrapCollection = function wrapCollection_0(key, collection){ - return $wrapList(this, key, castTo(collection, 15), null); -} -; -var Lcom_google_common_collect_AbstractListMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractListMultimap', 1631); -function AbstractMapBasedMultimap$Itr(this$0){ - this.this$01 = this$0; - this.keyIterator = this$0.map_0.entrySet_0().iterator_0(); - this.key = null; - this.collection = null; - this.valueIterator = ($clinit_Iterators$EmptyModifiableIterator() , INSTANCE_2); -} - -defineClass(732, 1, $intern_6); -_.forEachRemaining = function forEachRemaining_0(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_1(){ - return this.keyIterator.hasNext_0() || this.valueIterator.hasNext_0(); -} -; -_.next_1 = function next_2(){ - var mapEntry; - if (!this.valueIterator.hasNext_0()) { - mapEntry = castTo(this.keyIterator.next_1(), 42); - this.key = mapEntry.getKey(); - this.collection = castTo(mapEntry.getValue(), 14); - this.valueIterator = this.collection.iterator_0(); - } - return this.output(this.key, this.valueIterator.next_1()); -} -; -_.remove = function remove_2(){ - this.valueIterator.remove(); - this.collection.isEmpty() && this.keyIterator.remove(); - --this.this$01.totalSize; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 732); -function AbstractMapBasedMultimap$1(this$0){ - AbstractMapBasedMultimap$Itr.call(this, this$0); -} - -defineClass(1099, 732, $intern_6, AbstractMapBasedMultimap$1); -_.output = function output_0(key, value_0){ - return value_0; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1', 1099); -function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ -} - -defineClass(1100, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); -_.apply_0 = function apply_2(arg0){ - return castTo(arg0, 14).spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1100); -function AbstractMapBasedMultimap$2(this$0){ - AbstractMapBasedMultimap$Itr.call(this, this$0); -} - -defineClass(1101, 732, $intern_6, AbstractMapBasedMultimap$2); -_.output = function output_1(key, value_0){ - return new ImmutableEntry(key, value_0); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$2_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/2', 1101); -function $forEach_2(this$static, consumer){ - var entry, entry$iterator; - checkCriticalNotNull(consumer); - for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - consumer.accept_1(entry.getKey(), entry.getValue()); - } -} - -function $merge(this$static, key, value_0, remappingFunction){ - var currentValue, newValue; - checkCriticalNotNull(remappingFunction); - checkCriticalNotNull(value_0); - currentValue = this$static.get_3(key); - newValue = currentValue == null?value_0:addAll_21(castTo(currentValue, 15), castTo(value_0, 14)); - newValue == null?this$static.remove_0(key):this$static.put(key, newValue); - return newValue; -} - -var Ljava_util_Map_2_classLit = createForInterface('java.util', 'Map'); -function $containsEntry_0(this$static, entry){ - var key, ourValue, value_0; - key = entry.getKey(); - value_0 = entry.getValue(); - ourValue = this$static.get_3(key); - if (!(maskUndefined(value_0) === maskUndefined(ourValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, ourValue))) { - return false; - } - if (ourValue == null && !this$static.containsKey(key)) { - return false; - } - return true; -} - -function $implFindEntry(this$static, key, remove){ - var entry, iter, k; - for (iter = this$static.entrySet_0().iterator_0(); iter.hasNext_0();) { - entry = castTo(iter.next_1(), 42); - k = entry.getKey(); - if (maskUndefined(key) === maskUndefined(k) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, k)) { - if (remove) { - entry = new AbstractMap$SimpleEntry(entry.getKey(), entry.getValue()); - iter.remove(); - } - return entry; - } - } - return null; -} - -function $putAll(this$static, map_0){ - var e, e$iterator; - checkCriticalNotNull(map_0); - for (e$iterator = map_0.entrySet_0().iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 42); - this$static.put(e.getKey(), e.getValue()); - } -} - -function $toString_0(this$static){ - var entry, entry$iterator, joiner; - joiner = new StringJoiner(', ', '{', '}'); - for (entry$iterator = this$static.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - $add_9(joiner, $toString_1(this$static, entry.getKey()) + '=' + $toString_1(this$static, entry.getValue())); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function $toString_1(this$static, o){ - return maskUndefined(o) === maskUndefined(this$static)?'(this Map)':o == null?'null':toString_40(o); -} - -function getEntryKeyOrNull(entry){ - return !entry?null:entry.key; -} - -function getEntryValueOrNull(entry){ - return !entry?null:entry.getValue(); -} - -defineClass(1967, 1, $intern_7); -_.forEach = function forEach(consumer){ - $forEach_2(this, consumer); -} -; -_.merge = function merge(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.clear_0 = function clear_1(){ - this.entrySet_0().clear_0(); -} -; -_.containsEntry = function containsEntry(entry){ - return $containsEntry_0(this, entry); -} -; -_.containsKey = function containsKey_0(key){ - return !!$implFindEntry(this, key, false); -} -; -_.containsValue = function containsValue(value_0){ - var entry, entry$iterator, v; - for (entry$iterator = this.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - v = entry.getValue(); - if (maskUndefined(value_0) === maskUndefined(v) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, v)) { - return true; - } - } - return false; -} -; -_.equals_0 = function equals_5(obj){ - var entry, entry$iterator, otherMap; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 83)) { - return false; - } - otherMap = castTo(obj, 83); - if (this.size_1() != otherMap.size_1()) { - return false; - } - for (entry$iterator = otherMap.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if (!this.containsEntry(entry)) { - return false; - } - } - return true; -} -; -_.get_3 = function get_3(key){ - return getEntryValueOrNull($implFindEntry(this, key, false)); -} -; -_.hashCode_1 = function hashCode_5(){ - return hashCode_47(this.entrySet_0()); -} -; -_.isEmpty = function isEmpty_0(){ - return this.size_1() == 0; -} -; -_.keySet_0 = function keySet_0(){ - return new AbstractMap$1(this); -} -; -_.put = function put(key, value_0){ - throw toJs(new UnsupportedOperationException_0('Put not supported on this map')); -} -; -_.putAll = function putAll(map_0){ - $putAll(this, map_0); -} -; -_.remove_0 = function remove_3(key){ - return getEntryValueOrNull($implFindEntry(this, key, true)); -} -; -_.size_1 = function size_2(){ - return this.entrySet_0().size_1(); -} -; -_.toString_0 = function toString_6(){ - return $toString_0(this); -} -; -_.values_0 = function values_1(){ - return new AbstractMap$2(this); -} -; -var Ljava_util_AbstractMap_2_classLit = createForClass('java.util', 'AbstractMap', 1967); -function $entrySet(this$static){ - var result; - result = this$static.entrySet; - return !result?(this$static.entrySet = this$static.createEntrySet()):result; -} - -defineClass(1987, 1967, $intern_7); -_.createKeySet = function createKeySet_0(){ - return new Maps$KeySet(this); -} -; -_.entrySet_0 = function entrySet(){ - return $entrySet(this); -} -; -_.keySet_0 = function keySet_1(){ - var result; - result = this.keySet; - return !result?(this.keySet = this.createKeySet()):result; -} -; -_.values_0 = function values_2(){ - var result; - result = this.values; - return !result?(this.values = new Maps$Values(this)):result; -} -; -var Lcom_google_common_collect_Maps$ViewCachingAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/ViewCachingAbstractMap', 1987); -function $get_0(this$static, key){ - var collection, k; - collection = castTo(safeGet(this$static.submap, key), 14); - if (!collection) { - return null; - } - k = key; - return this$static.this$01_1.wrapCollection(k, collection); -} - -function $remove_1(this$static, key){ - var collection, output; - collection = castTo(this$static.submap.remove_0(key), 14); - if (!collection) { - return null; - } - output = this$static.this$01_1.createCollection(); - output.addAll(collection); - this$static.this$01_1.totalSize -= collection.size_1(); - collection.clear_0(); - return output; -} - -function $wrapEntry(this$static, entry){ - var key; - key = entry.getKey(); - return new ImmutableEntry(key, this$static.this$01_1.wrapCollection(key, castTo(entry.getValue(), 14))); -} - -function AbstractMapBasedMultimap$AsMap(this$0, submap){ - this.this$01_1 = this$0; - this.submap = submap; -} - -defineClass(389, 1987, $intern_7, AbstractMapBasedMultimap$AsMap); -_.get_3 = function get_4(key){ - return $get_0(this, key); -} -; -_.remove_0 = function remove_4(key){ - return $remove_1(this, key); -} -; -_.clear_0 = function clear_2(){ - this.submap == this.this$01_1.map_0?this.this$01_1.clear_0():clear_20(new AbstractMapBasedMultimap$AsMap$AsMapIterator(this)); -} -; -_.containsKey = function containsKey_1(key){ - return safeContainsKey(this.submap, key); -} -; -_.createEntrySet_0 = function createEntrySet(){ - return new AbstractMapBasedMultimap$AsMap$AsMapEntries(this); -} -; -_.createEntrySet = function(){ - return this.createEntrySet_0(); -} -; -_.equals_0 = function equals_6(object){ - return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.submap, object); -} -; -_.hashCode_1 = function hashCode_6(){ - return hashCode__I__devirtual$(this.submap); -} -; -_.keySet_0 = function keySet_2(){ - return this.this$01_1.keySet_0(); -} -; -_.size_1 = function size_3(){ - return this.submap.size_1(); -} -; -_.toString_0 = function toString_7(){ - return toString_40(this.submap); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap', 389); -function $forEach_0(this$static, action){ - var t, t$iterator; - checkCriticalNotNull(action); - for (t$iterator = this$static.iterator_0(); t$iterator.hasNext_0();) { - t = t$iterator.next_1(); - action.accept(t); - } -} - -var Ljava_lang_Iterable_2_classLit = createForInterface('java.lang', 'Iterable'); -function $addAll(this$static, c){ - var changed, e, e$iterator; - checkCriticalNotNull(c); - changed = false; - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - changed = changed | this$static.add_2(e); - } - return changed; -} - -function $advanceToFind(this$static, o, remove){ - var e, iter; - for (iter = this$static.iterator_0(); iter.hasNext_0();) { - e = iter.next_1(); - if (maskUndefined(o) === maskUndefined(e) || o != null && equals_Ljava_lang_Object__Z__devirtual$(o, e)) { - remove && iter.remove(); - return true; - } - } - return false; -} - -function $clear_0(this$static){ - var iter; - for (iter = this$static.iterator_0(); iter.hasNext_0();) { - iter.next_1(); - iter.remove(); - } -} - -function $containsAll(this$static, c){ - var e, e$iterator; - checkCriticalNotNull(c); - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - if (!this$static.contains(e)) { - return false; - } - } - return true; -} - -function $removeAll_0(this$static, c){ - var changed, iter, o; - checkCriticalNotNull(c); - changed = false; - for (iter = new ArrayList$1(this$static); iter.i < iter.this$01.array.length;) { - o = $next_7(iter); - if ($advanceToFind(c, o, false)) { - $remove_13(iter); - changed = true; - } - } - return changed; -} - -function $toArray(this$static){ - return this$static.toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.size_1(), 5, 1)); -} - -function $toArray_0(this$static, a){ - var i, it, result, size_0; - size_0 = this$static.size_1(); - a.length < size_0 && (a = stampJavaTypeInfo_1(new Array(size_0), a)); - result = a; - it = this$static.iterator_0(); - for (i = 0; i < size_0; ++i) { - setCheck(result, i, it.next_1()); - } - a.length > size_0 && setCheck(a, size_0, null); - return a; -} - -function $toString_2(this$static){ - var e, e$iterator, joiner; - joiner = new StringJoiner(', ', '[', ']'); - for (e$iterator = this$static.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - $add_9(joiner, maskUndefined(e) === maskUndefined(this$static)?'(this Collection)':e == null?'null':toString_40(e)); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -defineClass(28, 1, $intern_8); -_.forEach_0 = function forEach_0(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream(){ - return this.stream(); -} -; -_.spliterator_0 = function spliterator_0(){ - return new Spliterators$IteratorSpliterator(this, 0); -} -; -_.stream = function stream_0(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.add_2 = function add_2(o){ - throw toJs(new UnsupportedOperationException_0('Add not supported on this collection')); -} -; -_.addAll = function addAll(c){ - return $addAll(this, c); -} -; -_.clear_0 = function clear_3(){ - $clear_0(this); -} -; -_.contains = function contains(o){ - return $advanceToFind(this, o, false); -} -; -_.containsAll = function containsAll(c){ - return $containsAll(this, c); -} -; -_.isEmpty = function isEmpty_1(){ - return this.size_1() == 0; -} -; -_.remove_1 = function remove_5(o){ - return $advanceToFind(this, o, true); -} -; -_.toArray = function toArray(){ - return $toArray(this); -} -; -_.toArray_0 = function toArray_0(a){ - return $toArray_0(this, a); -} -; -_.toString_0 = function toString_8(){ - return $toString_2(this); -} -; -var Ljava_util_AbstractCollection_2_classLit = createForClass('java.util', 'AbstractCollection', 28); -var Ljava_util_Set_2_classLit = createForInterface('java.util', 'Set'); -function $equals_0(this$static, o){ - var other; - if (maskUndefined(o) === maskUndefined(this$static)) { - return true; - } - if (!instanceOf(o, 21)) { - return false; - } - other = castTo(o, 21); - if (other.size_1() != this$static.size_1()) { - return false; - } - return this$static.containsAll(other); -} - -function $removeAll_1(this$static, c){ - var iter, o, o$iterator, size_0; - checkCriticalNotNull(c); - size_0 = this$static.map_0.size_1(); - if (size_0 < c.size_1()) { - for (iter = this$static.map_0.keySet_0().iterator_0(); iter.hasNext_0();) { - o = iter.next_1(); - c.contains(o) && iter.remove(); - } - } - else { - for (o$iterator = c.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - this$static.map_0.remove_0(o) != null; - } - } - return size_0 != this$static.map_0.size_1(); -} - -defineClass($intern_9, 28, $intern_10); -_.spliterator_0 = function spliterator_1(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_7(o){ - return $equals_0(this, o); -} -; -_.hashCode_1 = function hashCode_7(){ - return hashCode_47(this); -} -; -var Ljava_util_AbstractSet_2_classLit = createForClass('java.util', 'AbstractSet', $intern_9); -defineClass(1970, $intern_9, $intern_10); -var Lcom_google_common_collect_Sets$ImprovedAbstractSet_2_classLit = createForClass('com.google.common.collect', 'Sets/ImprovedAbstractSet', 1970); -function $contains(this$static, o){ - var entry, key, value_0; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - key = entry.getKey(); - value_0 = safeGet(this$static.map_1(), key); - return equal(value_0, entry.getValue()) && (value_0 != null || this$static.map_1().containsKey(key)); - } - return false; -} - -defineClass(1971, 1970, $intern_10); -_.clear_0 = function clear_4(){ - this.map_1().clear_0(); -} -; -_.contains = function contains_0(o){ - return $contains(this, o); -} -; -_.isEmpty = function isEmpty_2(){ - return this.map_1().isEmpty(); -} -; -_.remove_1 = function remove_6(o){ - var entry; - if (this.contains(o)) { - entry = castTo(o, 42); - return this.map_1().keySet_0().remove_1(entry.getKey()); - } - return false; -} -; -_.size_1 = function size_4(){ - return this.map_1().size_1(); -} -; -var Lcom_google_common_collect_Maps$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Maps/EntrySet', 1971); -function AbstractMapBasedMultimap$AsMap$AsMapEntries(this$1){ - this.this$11 = this$1; -} - -defineClass(1097, 1971, $intern_10, AbstractMapBasedMultimap$AsMap$AsMapEntries); -_.contains = function contains_1(o){ - return safeContains(this.this$11.submap.entrySet_0(), o); -} -; -_.iterator_0 = function iterator_0(){ - return new AbstractMapBasedMultimap$AsMap$AsMapIterator(this.this$11); -} -; -_.map_1 = function map_1(){ - return this.this$11; -} -; -_.remove_1 = function remove_7(o){ - var entry; - if (!safeContains(this.this$11.submap.entrySet_0(), o)) { - return false; - } - entry = castTo(o, 42); - $removeValuesForKey(this.this$11.this$01_1, entry.getKey()); - return true; -} -; -_.spliterator_0 = function spliterator_2(){ - return map_2(this.this$11.submap.entrySet_0().spliterator_0(), new AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type(this.this$11)); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries', 1097); -function AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1098, 1, {}, AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type); -_.apply_0 = function apply_3(arg0){ - return $wrapEntry(this.$$outer_0, castTo(arg0, 42)); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type', 1098); -function AbstractMapBasedMultimap$AsMap$AsMapIterator(this$1){ - this.this$11 = this$1; - this.delegateIterator = this.this$11.submap.entrySet_0().iterator_0(); -} - -defineClass(730, 1, $intern_6, AbstractMapBasedMultimap$AsMap$AsMapIterator); -_.forEachRemaining = function forEachRemaining_1(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_3(){ - var entry; - return entry = castTo(this.delegateIterator.next_1(), 42) , this.collection = castTo(entry.getValue(), 14) , $wrapEntry(this.this$11, entry); -} -; -_.hasNext_0 = function hasNext_2(){ - return this.delegateIterator.hasNext_0(); -} -; -_.remove = function remove_8(){ - checkState_0(!!this.collection); - this.delegateIterator.remove(); - this.this$11.this$01_1.totalSize -= this.collection.size_1(); - this.collection.clear_0(); - this.collection = null; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapIterator', 730); -function Maps$KeySet(map_0){ - this.map_0 = castTo(checkNotNull(map_0), 83); -} - -defineClass(532, 1970, $intern_10, Maps$KeySet); -_.clear_0 = function clear_5(){ - this.map_0.clear_0(); -} -; -_.contains = function contains_2(o){ - return this.map_0.containsKey(o); -} -; -_.forEach_0 = function forEach_1(action){ - checkNotNull(action); - this.map_0.forEach(new Maps$KeySet$lambda$0$Type(action)); -} -; -_.isEmpty = function isEmpty_3(){ - return this.map_0.isEmpty(); -} -; -_.iterator_0 = function iterator_1(){ - return new Maps$1(this.map_0.entrySet_0().iterator_0()); -} -; -_.remove_1 = function remove_9(o){ - if (this.map_0.containsKey(o)) { - this.map_0.remove_0(o); - return true; - } - return false; -} -; -_.size_1 = function size_5(){ - return this.map_0.size_1(); -} -; -var Lcom_google_common_collect_Maps$KeySet_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet', 532); -function AbstractMapBasedMultimap$KeySet(this$0, subMap){ - this.this$01 = this$0; - Maps$KeySet.call(this, subMap); -} - -defineClass(318, 532, $intern_10, AbstractMapBasedMultimap$KeySet); -_.clear_0 = function clear_6(){ - var entryIterator; - clear_20((entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator))); -} -; -_.containsAll = function containsAll_0(c){ - return this.map_0.keySet_0().containsAll(c); -} -; -_.equals_0 = function equals_8(object){ - return this === object || equals_Ljava_lang_Object__Z__devirtual$(this.map_0.keySet_0(), object); -} -; -_.hashCode_1 = function hashCode_8(){ - return hashCode__I__devirtual$(this.map_0.keySet_0()); -} -; -_.iterator_0 = function iterator_2(){ - var entryIterator; - return entryIterator = this.map_0.entrySet_0().iterator_0() , new AbstractMapBasedMultimap$KeySet$1(this, entryIterator); -} -; -_.remove_1 = function remove_10(key){ - var collection, count; - count = 0; - collection = castTo(this.map_0.remove_0(key), 14); - if (collection) { - count = collection.size_1(); - collection.clear_0(); - this.this$01.totalSize -= count; - } - return count > 0; -} -; -_.spliterator_0 = function spliterator_3(){ - return this.map_0.keySet_0().spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet', 318); -function AbstractMapBasedMultimap$KeySet$1(this$1, val$entryIterator){ - this.this$11 = this$1; - this.val$entryIterator2 = val$entryIterator; -} - -defineClass(731, 1, $intern_6, AbstractMapBasedMultimap$KeySet$1); -_.forEachRemaining = function forEachRemaining_2(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_3(){ - return this.val$entryIterator2.hasNext_0(); -} -; -_.next_1 = function next_4(){ - this.entry = castTo(this.val$entryIterator2.next_1(), 42); - return this.entry.getKey(); -} -; -_.remove = function remove_11(){ - var collection; - checkState_0(!!this.entry); - collection = castTo(this.entry.getValue(), 14); - this.val$entryIterator2.remove(); - this.this$11.this$01.totalSize -= collection.size_1(); - collection.clear_0(); - this.entry = null; -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/KeySet/1', 731); -function AbstractMapBasedMultimap$SortedAsMap(this$0, submap){ - this.this$01_0 = this$0; - AbstractMapBasedMultimap$AsMap.call(this, this$0, submap); -} - -defineClass(491, 389, {83:1, 161:1}, AbstractMapBasedMultimap$SortedAsMap); -_.createKeySet = function createKeySet_1(){ - return this.createKeySet_0(); -} -; -_.keySet_0 = function keySet_3(){ - return this.keySet_1(); -} -; -_.createKeySet_0 = function createKeySet_2(){ - return new AbstractMapBasedMultimap$SortedKeySet(this.this$01_0, this.sortedMap()); -} -; -_.keySet_1 = function keySet_4(){ - var result; - return result = this.sortedKeySet , !result?(this.sortedKeySet = this.createKeySet_0()):result; -} -; -_.sortedMap = function sortedMap(){ - return castTo(this.submap, 161); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedAsMap', 491); -function AbstractMapBasedMultimap$NavigableAsMap(this$0, submap){ - this.this$01 = this$0; - AbstractMapBasedMultimap$SortedAsMap.call(this, this$0, submap); -} - -defineClass(542, 491, $intern_11, AbstractMapBasedMultimap$NavigableAsMap); -_.createKeySet = function createKeySet_3(){ - return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); -} -; -_.createKeySet_0 = function createKeySet_4(){ - return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); -} -; -_.keySet_0 = function keySet_5(){ - var result; - return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); -} -; -_.keySet_1 = function keySet_6(){ - var result; - return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); -} -; -_.sortedMap = function sortedMap_0(){ - return castTo(castTo(this.submap, 161), 171); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableAsMap', 542); -function AbstractMapBasedMultimap$SortedKeySet(this$0, subMap){ - AbstractMapBasedMultimap$KeySet.call(this, this$0, subMap); -} - -defineClass(490, 318, $intern_12, AbstractMapBasedMultimap$SortedKeySet); -_.spliterator_0 = function spliterator_4(){ - return this.map_0.keySet_0().spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedKeySet', 490); -function AbstractMapBasedMultimap$NavigableKeySet(this$0, subMap){ - AbstractMapBasedMultimap$SortedKeySet.call(this, this$0, subMap); -} - -defineClass(388, 490, $intern_13, AbstractMapBasedMultimap$NavigableKeySet); -var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableKeySet', 388); -function $addToMap(this$static){ - this$static.ancestor?$addToMap(this$static.ancestor):this$static.this$01_0.map_0.put(this$static.key, this$static.delegate); -} - -function $refreshIfEmpty(this$static){ - var newDelegate; - if (this$static.ancestor) { - $refreshIfEmpty(this$static.ancestor); - if (this$static.ancestor.delegate != this$static.ancestorDelegate) { - throw toJs(new ConcurrentModificationException); - } - } - else if (this$static.delegate.isEmpty()) { - newDelegate = castTo(this$static.this$01_0.map_0.get_3(this$static.key), 14); - !!newDelegate && (this$static.delegate = newDelegate); - } -} - -function $removeIfEmpty(this$static){ - this$static.ancestor?$removeIfEmpty(this$static.ancestor):this$static.delegate.isEmpty() && this$static.this$01_0.map_0.remove_0(this$static.key); -} - -function $size(this$static){ - $refreshIfEmpty(this$static); - return this$static.delegate.size_1(); -} - -function AbstractMapBasedMultimap$WrappedCollection(this$0, key, delegate, ancestor){ - this.this$01_0 = this$0; - this.key = key; - this.delegate = delegate; - this.ancestor = ancestor; - this.ancestorDelegate = !ancestor?null:ancestor.delegate; -} - -defineClass(541, 28, $intern_8, AbstractMapBasedMultimap$WrappedCollection); -_.add_2 = function add_3(value_0){ - var changed, wasEmpty; - $refreshIfEmpty(this); - wasEmpty = this.delegate.isEmpty(); - changed = this.delegate.add_2(value_0); - if (changed) { - ++this.this$01_0.totalSize; - wasEmpty && $addToMap(this); - } - return changed; -} -; -_.addAll = function addAll_0(collection){ - var changed, newSize, oldSize; - if (collection.isEmpty()) { - return false; - } - oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); - changed = this.delegate.addAll(collection); - if (changed) { - newSize = this.delegate.size_1(); - this.this$01_0.totalSize += newSize - oldSize; - oldSize == 0 && $addToMap(this); - } - return changed; -} -; -_.clear_0 = function clear_7(){ - var oldSize; - oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); - if (oldSize == 0) { - return; - } - this.delegate.clear_0(); - this.this$01_0.totalSize -= oldSize; - $removeIfEmpty(this); -} -; -_.contains = function contains_3(o){ - $refreshIfEmpty(this); - return this.delegate.contains(o); -} -; -_.containsAll = function containsAll_1(c){ - $refreshIfEmpty(this); - return this.delegate.containsAll(c); -} -; -_.equals_0 = function equals_9(object){ - if (object === this) { - return true; - } - $refreshIfEmpty(this); - return equals_Ljava_lang_Object__Z__devirtual$(this.delegate, object); -} -; -_.hashCode_1 = function hashCode_9(){ - $refreshIfEmpty(this); - return hashCode__I__devirtual$(this.delegate); -} -; -_.iterator_0 = function iterator_3(){ - $refreshIfEmpty(this); - return new AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this); -} -; -_.remove_1 = function remove_12(o){ - var changed; - $refreshIfEmpty(this); - changed = this.delegate.remove_1(o); - if (changed) { - --this.this$01_0.totalSize; - $removeIfEmpty(this); - } - return changed; -} -; -_.size_1 = function size_6(){ - return $size(this); -} -; -_.spliterator_0 = function spliterator_5(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -_.toString_0 = function toString_9(){ - $refreshIfEmpty(this); - return toString_40(this.delegate); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection', 541); -function $sort_0(this$static, c){ - var a, i; - a = this$static.toArray(); - mergeSort(a, 0, a.length, c); - for (i = 0; i < a.length; i++) { - this$static.set_2(i, a[i]); - } -} - -var Ljava_util_List_2_classLit = createForInterface('java.util', 'List'); -function AbstractMapBasedMultimap$WrappedList(this$0, key, delegate, ancestor){ - this.this$01 = this$0; - AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, ancestor); -} - -defineClass(728, 541, {20:1, 28:1, 14:1, 15:1}, AbstractMapBasedMultimap$WrappedList); -_.sort_0 = function sort_0(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_6(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -_.add_3 = function add_4(index_0, element){ - var wasEmpty; - $refreshIfEmpty(this); - wasEmpty = this.delegate.isEmpty(); - castTo(this.delegate, 15).add_3(index_0, element); - ++this.this$01.totalSize; - wasEmpty && $addToMap(this); -} -; -_.addAll_0 = function addAll_1(index_0, c){ - var changed, newSize, oldSize; - if (c.isEmpty()) { - return false; - } - oldSize = ($refreshIfEmpty(this) , this.delegate.size_1()); - changed = castTo(this.delegate, 15).addAll_0(index_0, c); - if (changed) { - newSize = this.delegate.size_1(); - this.this$01.totalSize += newSize - oldSize; - oldSize == 0 && $addToMap(this); - } - return changed; -} -; -_.get_0 = function get_5(index_0){ - $refreshIfEmpty(this); - return castTo(this.delegate, 15).get_0(index_0); -} -; -_.indexOf_0 = function indexOf(o){ - $refreshIfEmpty(this); - return castTo(this.delegate, 15).indexOf_0(o); -} -; -_.listIterator_0 = function listIterator(){ - $refreshIfEmpty(this); - return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this); -} -; -_.listIterator_1 = function listIterator_0(index_0){ - $refreshIfEmpty(this); - return new AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this, index_0); -} -; -_.remove_2 = function remove_13(index_0){ - var value_0; - $refreshIfEmpty(this); - value_0 = castTo(this.delegate, 15).remove_2(index_0); - --this.this$01.totalSize; - $removeIfEmpty(this); - return value_0; -} -; -_.set_2 = function set_2(index_0, element){ - $refreshIfEmpty(this); - return castTo(this.delegate, 15).set_2(index_0, element); -} -; -_.subList = function subList_0(fromIndex, toIndex){ - $refreshIfEmpty(this); - return $wrapList(this.this$01, this.key, castTo(this.delegate, 15).subList(fromIndex, toIndex), !this.ancestor?this:this.ancestor); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList', 728); -function AbstractMapBasedMultimap$RandomAccessWrappedList(this$0, key, delegate, ancestor){ - AbstractMapBasedMultimap$WrappedList.call(this, this$0, key, delegate, ancestor); -} - -defineClass(1096, 728, {20:1, 28:1, 14:1, 15:1, 54:1}, AbstractMapBasedMultimap$RandomAccessWrappedList); -var Lcom_google_common_collect_AbstractMapBasedMultimap$RandomAccessWrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/RandomAccessWrappedList', 1096); -function $$init(this$static){ - this$static.originalDelegate = this$static.this$11_0.delegate; -} - -function $remove_2(this$static){ - this$static.delegateIterator.remove(); - --this$static.this$11_0.this$01_0.totalSize; - $removeIfEmpty(this$static.this$11_0); -} - -function $validateIterator(this$static){ - $refreshIfEmpty(this$static.this$11_0); - if (this$static.this$11_0.delegate != this$static.originalDelegate) { - throw toJs(new ConcurrentModificationException); - } -} - -function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator(this$1){ - this.this$11_0 = this$1; - $$init(this); - this.delegateIterator = iteratorOrListIterator(this$1.delegate); -} - -function AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0(this$1, delegateIterator){ - this.this$11_0 = this$1; - $$init(this); - this.delegateIterator = delegateIterator; -} - -defineClass(620, 1, $intern_6, AbstractMapBasedMultimap$WrappedCollection$WrappedIterator); -_.forEachRemaining = function forEachRemaining_3(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_4(){ - $validateIterator(this); - return this.delegateIterator.hasNext_0(); -} -; -_.next_1 = function next_5(){ - $validateIterator(this); - return this.delegateIterator.next_1(); -} -; -_.remove = function remove_14(){ - $remove_2(this); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator', 620); -function AbstractMapBasedMultimap$WrappedList$WrappedListIterator(this$1){ - this.this$11 = this$1; - AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.call(this, this$1); -} - -function AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0(this$1, index_0){ - this.this$11 = this$1; - AbstractMapBasedMultimap$WrappedCollection$WrappedIterator_0.call(this, this$1, castTo(this$1.delegate, 15).listIterator_1(index_0)); -} - -defineClass(729, 620, $intern_14, AbstractMapBasedMultimap$WrappedList$WrappedListIterator, AbstractMapBasedMultimap$WrappedList$WrappedListIterator_0); -_.remove = function remove_15(){ - $remove_2(this); -} -; -_.add_1 = function add_5(value_0){ - var wasEmpty; - wasEmpty = $size(this.this$11) == 0; - ($validateIterator(this) , castTo(this.delegateIterator, 125)).add_1(value_0); - ++this.this$11.this$01.totalSize; - wasEmpty && $addToMap(this.this$11); -} -; -_.hasPrevious = function hasPrevious_0(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).hasPrevious(); -} -; -_.nextIndex_0 = function nextIndex_1(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).nextIndex_0(); -} -; -_.previous_0 = function previous_1(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previous_0(); -} -; -_.previousIndex = function previousIndex_0(){ - return ($validateIterator(this) , castTo(this.delegateIterator, 125)).previousIndex(); -} -; -_.set_1 = function set_3(value_0){ - ($validateIterator(this) , castTo(this.delegateIterator, 125)).set_1(value_0); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList$WrappedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList/WrappedListIterator', 729); -function AbstractMapBasedMultimap$WrappedSortedSet(this$0, key, delegate){ - AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); -} - -defineClass(727, 541, $intern_12, AbstractMapBasedMultimap$WrappedSortedSet); -_.spliterator_0 = function spliterator_7(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSortedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSortedSet', 727); -function AbstractMapBasedMultimap$WrappedNavigableSet(this$0, key, delegate){ - AbstractMapBasedMultimap$WrappedSortedSet.call(this, this$0, key, delegate); -} - -defineClass(1095, 727, $intern_13, AbstractMapBasedMultimap$WrappedNavigableSet); -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedNavigableSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedNavigableSet', 1095); -function AbstractMapBasedMultimap$WrappedSet(this$0, key, delegate){ - AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); -} - -defineClass(1094, 541, $intern_10, AbstractMapBasedMultimap$WrappedSet); -_.spliterator_0 = function spliterator_8(){ - return $refreshIfEmpty(this) , this.delegate.spliterator_0(); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedSet', 1094); -function AbstractMapBasedMultimap$lambda$1$Type(){ -} - -defineClass(1103, 1, {}, AbstractMapBasedMultimap$lambda$1$Type); -_.apply_0 = function apply_4(arg0){ - return lambda$1(castTo(arg0, 42)); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$1$Type', 1103); -function AbstractMapBasedMultimap$lambda$2$Type(key_0){ - this.key_0 = key_0; -} - -defineClass(1102, 1, {}, AbstractMapBasedMultimap$lambda$2$Type); -_.apply_0 = function apply_5(arg0){ - return new ImmutableEntry(this.key_0, arg0); -} -; -var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$2$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$2$Type', 1102); -var Ljava_util_Map$Entry_2_classLit = createForInterface('java.util', 'Map/Entry'); -defineClass(345, 1, $intern_15); -_.equals_0 = function equals_10(object){ - var that; - if (instanceOf(object, 42)) { - that = castTo(object, 42); - return equal(this.getKey(), that.getKey()) && equal(this.getValue(), that.getValue()); - } - return false; -} -; -_.hashCode_1 = function hashCode_10(){ - var k, v; - k = this.getKey(); - v = this.getValue(); - return (k == null?0:hashCode__I__devirtual$(k)) ^ (v == null?0:hashCode__I__devirtual$(v)); -} -; -_.setValue = function setValue(value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.toString_0 = function toString_10(){ - return this.getKey() + '=' + this.getValue(); -} -; -var Lcom_google_common_collect_AbstractMapEntry_2_classLit = createForClass('com.google.common.collect', 'AbstractMapEntry', 345); -defineClass(1988, 28, $intern_8); -_.clear_0 = function clear_8(){ - this.multimap_0().clear_0(); -} -; -_.contains = function contains_4(o){ - var entry; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - return $containsEntry(this.multimap_0(), entry.getKey(), entry.getValue()); - } - return false; -} -; -_.remove_1 = function remove_16(o){ - var entry; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - return $remove_0(this.multimap_0(), entry.getKey(), entry.getValue()); - } - return false; -} -; -_.size_1 = function size_7(){ - return this.multimap_0().totalSize; -} -; -var Lcom_google_common_collect_Multimaps$Entries_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Entries', 1988); -function AbstractMultimap$Entries(this$0){ - this.this$01 = this$0; -} - -defineClass(733, 1988, $intern_8, AbstractMultimap$Entries); -_.iterator_0 = function iterator_4(){ - return this.this$01.entryIterator(); -} -; -_.multimap_0 = function multimap_0(){ - return this.this$01; -} -; -_.spliterator_0 = function spliterator_9(){ - return this.this$01.entrySpliterator(); -} -; -var Lcom_google_common_collect_AbstractMultimap$Entries_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Entries', 733); -function AbstractMultimap$EntrySet(this$0){ - AbstractMultimap$Entries.call(this, this$0); -} - -defineClass(734, 733, $intern_10, AbstractMultimap$EntrySet); -_.spliterator_0 = function spliterator_10(){ - return this.this$01.entrySpliterator(); -} -; -_.equals_0 = function equals_11(obj){ - return equalsImpl_3(this, obj); -} -; -_.hashCode_1 = function hashCode_11(){ - return hashCodeImpl_0(this); -} -; -var Lcom_google_common_collect_AbstractMultimap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/EntrySet', 734); -function AbstractMultimap$Values(this$0){ - this.this$01 = this$0; -} - -defineClass(735, 28, $intern_8, AbstractMultimap$Values); -_.clear_0 = function clear_9(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_5(o){ - return $containsValue(this.this$01, o); -} -; -_.iterator_0 = function iterator_5(){ - return this.this$01.valueIterator_0(); -} -; -_.size_1 = function size_8(){ - return this.this$01.totalSize; -} -; -_.spliterator_0 = function spliterator_11(){ - return this.this$01.valueSpliterator(); -} -; -var Lcom_google_common_collect_AbstractMultimap$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractMultimap/Values', 735); -function lambda$0_1(entry_1){ - entry_1.val$backingEntry2.getKey(); - castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); - $add(); -} - -function lambda$1_1(action_0, entry_1){ - var count, elem, i; - elem = entry_1.val$backingEntry2.getKey(); - count = castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); - for (i = 0; i < count; i++) { - action_0.accept(elem); - } -} - -function $add(){ - throw toJs(new UnsupportedOperationException); -} - -function $entrySet_0(this$static){ - var result; - result = this$static.entrySet; - !result && (this$static.entrySet = result = new AbstractMultiset$EntrySet(this$static)); - return result; -} - -function $forEachEntry(this$static, action){ - checkNotNull(action); - $entrySet_0(this$static).forEach_0(new Multiset$lambda$0$Type); -} - -defineClass(1989, 28, {835:1, 20:1, 28:1, 14:1}); -_.forEach_0 = function forEach_2(action){ - checkNotNull(action); - $entrySet_0(this).forEach_0(new Multiset$lambda$1$Type(action)); -} -; -_.spliterator_0 = function spliterator_12(){ - var entrySpliterator; - return entrySpliterator = $entrySet_0(this).spliterator_0() , flatMap(entrySpliterator, new Multisets$lambda$3$Type, 64 | entrySpliterator.characteristics_0() & 1296, this.multimap.totalSize); -} -; -_.add_2 = function add_6(element){ - $add(); - return true; -} -; -_.addAll = function addAll_2(elementsToAdd){ - return checkNotNull(this) , checkNotNull(elementsToAdd) , instanceOf(elementsToAdd, 543)?addAllImpl(castTo(elementsToAdd, 835)):!elementsToAdd.isEmpty() && addAll_7(this, elementsToAdd.iterator_0()); -} -; -_.contains = function contains_6(element){ - var values; - return values = castTo(safeGet($asMap(this.multimap), element), 14) , (!values?0:values.size_1()) > 0; -} -; -_.equals_0 = function equals_12(object){ - return equalsImpl_2(this, object); -} -; -_.hashCode_1 = function hashCode_12(){ - return hashCode__I__devirtual$($entrySet_0(this)); -} -; -_.isEmpty = function isEmpty_4(){ - return $entrySet_0(this).isEmpty(); -} -; -_.remove_1 = function remove_17(element){ - return $remove_5(this, element, 1) > 0; -} -; -_.toString_0 = function toString_11(){ - return toString_40($entrySet_0(this)); -} -; -var Lcom_google_common_collect_AbstractMultiset_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset', 1989); -defineClass(1991, 1970, $intern_10); -_.clear_0 = function clear_10(){ - $clear(this.this$01.multimap); -} -; -_.contains = function contains_7(o){ - var count, entry; - if (instanceOf(o, 492)) { - entry = castTo(o, 416); - if (castTo(entry.val$backingEntry2.getValue(), 14).size_1() <= 0) { - return false; - } - count = $count(this.this$01, entry.val$backingEntry2.getKey()); - return count == castTo(entry.val$backingEntry2.getValue(), 14).size_1(); - } - return false; -} -; -_.remove_1 = function remove_18(object){ - var element, entry, entryCount, multiset; - if (instanceOf(object, 492)) { - entry = castTo(object, 416); - element = entry.val$backingEntry2.getKey(); - entryCount = castTo(entry.val$backingEntry2.getValue(), 14).size_1(); - if (entryCount != 0) { - multiset = this.this$01; - return setCountImpl(multiset, element, entryCount); - } - } - return false; -} -; -var Lcom_google_common_collect_Multisets$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multisets/EntrySet', 1991); -function AbstractMultiset$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(1109, 1991, $intern_10, AbstractMultiset$EntrySet); -_.iterator_0 = function iterator_6(){ - return new Multimaps$Keys$1($entrySet($asMap(this.this$01.multimap)).iterator_0()); -} -; -_.size_1 = function size_9(){ - return $asMap(this.this$01.multimap).size_1(); -} -; -var Lcom_google_common_collect_AbstractMultiset$EntrySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMultiset/EntrySet', 1109); -function AbstractSetMultimap(map_0){ - AbstractMapBasedMultimap.call(this, map_0); -} - -defineClass(619, 726, $intern_5); -_.createCollection = function createCollection_1(){ - return this.createCollection_1(); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_1(){ - return this.createUnmodifiableEmptyCollection_0(); -} -; -_.get_1 = function get_6(key){ - return this.get_4(key); -} -; -_.removeAll = function removeAll_2(key){ - return this.removeAll_1(key); -} -; -_.asMap_0 = function asMap_1(){ - var result; - return result = this.asMap , !result?(this.asMap = this.createAsMap()):result; -} -; -_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_2(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_SET; -} -; -_.equals_0 = function equals_13(object){ - return equalsImpl_1(this, object); -} -; -_.get_4 = function get_7(key){ - return castTo($get(this, key), 21); -} -; -_.removeAll_1 = function removeAll_3(key){ - return castTo($removeAll(this, key), 21); -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_1(collection){ - return $clinit_Collections() , new Collections$UnmodifiableSet(castTo(collection, 21)); -} -; -_.wrapCollection = function wrapCollection_1(key, collection){ - return new AbstractMapBasedMultimap$WrappedSet(this, key, castTo(collection, 21)); -} -; -var Lcom_google_common_collect_AbstractSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSetMultimap', 619); -function $values_0(this$static){ - var result; - return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; -} - -defineClass(1657, 619, $intern_5); -_.createCollection = function createCollection_2(){ - return new TreeSet_0(this.valueComparator); -} -; -_.createCollection_1 = function createCollection_3(){ - return new TreeSet_0(this.valueComparator); -} -; -_.createUnmodifiableEmptyCollection = function createUnmodifiableEmptyCollection_3(){ - return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); -} -; -_.createUnmodifiableEmptyCollection_0 = function createUnmodifiableEmptyCollection_4(){ - return unmodifiableNavigableSet(new TreeSet_0(this.valueComparator)); -} -; -_.get_1 = function get_8(key){ - return castTo(castTo($get(this, key), 21), 84); -} -; -_.get_4 = function get_9(key){ - return castTo(castTo($get(this, key), 21), 84); -} -; -_.removeAll = function removeAll_4(key){ - return castTo(castTo($removeAll(this, key), 21), 84); -} -; -_.removeAll_1 = function removeAll_5(key){ - return castTo(castTo($removeAll(this, key), 21), 84); -} -; -_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_2(collection){ - return instanceOf(collection, 271)?unmodifiableNavigableSet(castTo(collection, 271)):($clinit_Collections() , new Collections$UnmodifiableSortedSet(castTo(collection, 84))); -} -; -_.asMap_0 = function asMap_2(){ - var result; - return result = this.asMap , !result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result; -} -; -_.wrapCollection = function wrapCollection_2(key, collection){ - return instanceOf(collection, 271)?new AbstractMapBasedMultimap$WrappedNavigableSet(this, key, castTo(collection, 271)):new AbstractMapBasedMultimap$WrappedSortedSet(this, key, castTo(collection, 84)); -} -; -var Lcom_google_common_collect_AbstractSortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedSetMultimap', 1657); -function AbstractSortedKeySortedSetMultimap(map_0){ - AbstractSetMultimap.call(this, map_0); -} - -defineClass(1658, 1657, $intern_5); -_.asMap_0 = function asMap_3(){ - var result; - return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); -} -; -_.keySet_0 = function keySet_7(){ - var result; - return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); -} -; -_.createKeySet = function createKeySet_5(){ - return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0); -} -; -var Lcom_google_common_collect_AbstractSortedKeySortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedKeySortedSetMultimap', 1658); -defineClass(2010, 1, {1947:1}); -_.equals_0 = function equals_14(obj){ - return equalsImpl_4(this, obj); -} -; -_.hashCode_1 = function hashCode_13(){ - var result; - return hashCode_47((result = this.cellSet , !result?(this.cellSet = new AbstractTable$CellSet(this)):result)); -} -; -_.toString_0 = function toString_12(){ - var map_0; - return $toString_0((map_0 = this.rowMap , !map_0?(this.rowMap = new ArrayTable$RowMap(this)):map_0)); -} -; -var Lcom_google_common_collect_AbstractTable_2_classLit = createForClass('com.google.common.collect', 'AbstractTable', 2010); -function AbstractTable$CellSet(this$0){ - this.this$01 = this$0; -} - -defineClass(665, $intern_9, $intern_10, AbstractTable$CellSet); -_.clear_0 = function clear_11(){ - $clear_1(); -} -; -_.contains = function contains_8(o){ - var cell, row; - if (instanceOf(o, 468)) { - cell = castTo(o, 682); - row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); - return !!row && safeContains(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); - } - return false; -} -; -_.iterator_0 = function iterator_7(){ - return $cellIterator(this.this$01); -} -; -_.remove_1 = function remove_19(o){ - var cell, row; - if (instanceOf(o, 468)) { - cell = castTo(o, 682); - row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); - return !!row && safeRemove(row.entrySet_0(), new ImmutableEntry($get_2(cell.this$01.columnList, cell.columnIndex), $at(cell.this$01, cell.rowIndex, cell.columnIndex))); - } - return false; -} -; -_.size_1 = function size_10(){ - return $size_0(this.this$01); -} -; -_.spliterator_0 = function spliterator_13(){ - return $cellSpliterator(this.this$01); -} -; -var Lcom_google_common_collect_AbstractTable$CellSet_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/CellSet', 665); -function AbstractTable$Values(this$0){ - this.this$01 = this$0; -} - -defineClass(1928, 28, $intern_8, AbstractTable$Values); -_.clear_0 = function clear_12(){ - $clear_1(); -} -; -_.contains = function contains_9(o){ - return $containsValue_0(this.this$01, o); -} -; -_.iterator_0 = function iterator_8(){ - return $valuesIterator(this.this$01); -} -; -_.size_1 = function size_11(){ - return $size_0(this.this$01); -} -; -_.spliterator_0 = function spliterator_14(){ - return $valuesSpliterator(this.this$01); -} -; -var Lcom_google_common_collect_AbstractTable$Values_2_classLit = createForClass('com.google.common.collect', 'AbstractTable/Values', 1928); -function ArrayListMultimapGwtSerializationDependencies(map_0){ - AbstractMapBasedMultimap.call(this, map_0); -} - -defineClass(1632, 1631, $intern_5); -var Lcom_google_common_collect_ArrayListMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimapGwtSerializationDependencies', 1632); -function ArrayListMultimap(){ - ArrayListMultimap_0.call(this, 12, 3); -} - -function ArrayListMultimap_0(expectedKeys, expectedValuesPerKey){ - ArrayListMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(expectedKeys))); - checkNonnegative(expectedValuesPerKey, 'expectedValuesPerKey'); - this.expectedValuesPerKey = expectedValuesPerKey; -} - -defineClass(513, 1632, $intern_5, ArrayListMultimap, ArrayListMultimap_0); -_.createCollection = function createCollection_4(){ - return new ArrayList_0(this.expectedValuesPerKey); -} -; -_.expectedValuesPerKey = 0; -var Lcom_google_common_collect_ArrayListMultimap_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimap', 513); -function $at(this$static, rowIndex, columnIndex){ - checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); - checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); - return this$static.array[rowIndex][columnIndex]; -} - -function $cellIterator(this$static){ - return new ArrayTable$1(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); -} - -function $cellSpliterator(this$static){ - return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 273, new ArrayTable$1methodref$getCell$Type(this$static)); -} - -function $clear_1(){ - throw toJs(new UnsupportedOperationException); -} - -function $containsValue_0(this$static, value_0){ - var element, element$array, element$index, element$max, row, row$array, row$index, row$max; - for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - for (element$array = row , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - if (maskUndefined(value_0) === maskUndefined(element) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, element)) { - return true; - } - } - } - return false; -} - -function $eraseAll(this$static){ - var row, row$array, row$index, row$max; - for (row$array = this$static.array , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - fill0_2(row, row.length, null); - } -} - -function $get_1(this$static, rowKey, columnKey){ - var columnIndex, rowIndex; - rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); - columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); - return !rowIndex || !columnIndex?null:$at(this$static, rowIndex.value_0, columnIndex.value_0); -} - -function $getValue(this$static, index_0){ - var columnIndex, rowIndex; - rowIndex = index_0 / this$static.columnList.delegateList_0().size_1() | 0; - columnIndex = index_0 % this$static.columnList.delegateList_0().size_1(); - return $at(this$static, rowIndex, columnIndex); -} - -function $put_0(this$static, rowKey, columnKey, value_0){ - var columnIndex, rowIndex; - checkNotNull(rowKey); - checkNotNull(columnKey); - rowIndex = castTo($get_3(this$static.rowKeyToIndex, rowKey), 19); - checkArgument_2(!!rowIndex, 'Row %s not in %s', rowKey, this$static.rowList); - columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); - checkArgument_2(!!columnIndex, 'Column %s not in %s', columnKey, this$static.columnList); - return $set(this$static, rowIndex.value_0, columnIndex.value_0, value_0); -} - -function $rowMap(this$static){ - var map_0; - map_0 = this$static.rowMap; - return !map_0?(this$static.rowMap = new ArrayTable$RowMap(this$static)):map_0; -} - -function $set(this$static, rowIndex, columnIndex, value_0){ - var oldValue; - checkElementIndex(rowIndex, this$static.rowList.delegateList_0().size_1()); - checkElementIndex(columnIndex, this$static.columnList.delegateList_0().size_1()); - oldValue = this$static.array[rowIndex][columnIndex]; - setCheck(this$static.array[rowIndex], columnIndex, value_0); - return oldValue; -} - -function $size_0(this$static){ - return this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(); -} - -function $values_1(this$static){ - var result; - return result = this$static.values , !result?(this$static.values = new AbstractTable$Values(this$static)):result; -} - -function $valuesIterator(this$static){ - return new ArrayTable$3(this$static, this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1()); -} - -function $valuesSpliterator(this$static){ - return indexed(this$static.rowList.delegateList_0().size_1() * this$static.columnList.delegateList_0().size_1(), 16, new ArrayTable$2methodref$getValue$Type(this$static)); -} - -function ArrayTable(rowKeys, columnKeys){ - var tmpArray; - this.rowList = ($clinit_ImmutableList() , checkNotNull(rowKeys) , $clinit_ImmutableList() , copyFromCollection(rowKeys)); - this.columnList = (checkNotNull(columnKeys) , copyFromCollection(columnKeys)); - checkArgument(this.rowList.delegateList_0().isEmpty() == this.columnList.delegateList_0().isEmpty()); - this.rowKeyToIndex = indexMap(this.rowList); - this.columnKeyToIndex = indexMap(this.columnList); - tmpArray = initMultidimensionalArray(Ljava_lang_Object_2_classLit, [$intern_16, $intern_2], [5, 1], 5, [this.rowList.delegateList_0().size_1(), this.columnList.delegateList_0().size_1()], 2); - this.array = tmpArray; - $eraseAll(this); -} - -defineClass(664, 2010, {664:1, 1947:1, 3:1}, ArrayTable); -var Lcom_google_common_collect_ArrayTable_2_classLit = createForClass('com.google.common.collect', 'ArrayTable', 664); -function ArrayTable$1(this$0, $anonymous0){ - this.this$01 = this$0; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(1924, 386, $intern_4, ArrayTable$1); -_.get_0 = function get_10(index_0){ - return new ArrayTable$2(this.this$01, index_0); -} -; -var Lcom_google_common_collect_ArrayTable$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1', 1924); -function ArrayTable$1methodref$getCell$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1925, 1, {}, ArrayTable$1methodref$getCell$Type); -_.apply_2 = function apply_6(arg0){ - return new ArrayTable$2(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_ArrayTable$1methodref$getCell$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/1methodref$getCell$Type', 1925); -defineClass(2011, 1, {682:1}); -_.equals_0 = function equals_15(obj){ - var other; - if (obj === this) { - return true; - } - if (instanceOf(obj, 468)) { - other = castTo(obj, 682); - return equal($get_2(this.this$01.rowList, this.rowIndex), $get_2(other.this$01.rowList, other.rowIndex)) && equal($get_2(this.this$01.columnList, this.columnIndex), $get_2(other.this$01.columnList, other.columnIndex)) && equal($at(this.this$01, this.rowIndex, this.columnIndex), $at(other.this$01, other.rowIndex, other.columnIndex)); - } - return false; -} -; -_.hashCode_1 = function hashCode_14(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [$get_2(this.this$01.rowList, this.rowIndex), $get_2(this.this$01.columnList, this.columnIndex), $at(this.this$01, this.rowIndex, this.columnIndex)])); -} -; -_.toString_0 = function toString_13(){ - return '(' + $get_2(this.this$01.rowList, this.rowIndex) + ',' + $get_2(this.this$01.columnList, this.columnIndex) + ')=' + $at(this.this$01, this.rowIndex, this.columnIndex); -} -; -var Lcom_google_common_collect_Tables$AbstractCell_2_classLit = createForClass('com.google.common.collect', 'Tables/AbstractCell', 2011); -function ArrayTable$2(this$0, val$index){ - this.this$01 = this$0; - this.val$index2 = val$index; - this.rowIndex = this.val$index2 / this.this$01.columnList.delegateList_0().size_1() | 0; - this.columnIndex = this.val$index2 % this.this$01.columnList.delegateList_0().size_1(); -} - -defineClass(468, 2011, {468:1, 682:1}, ArrayTable$2); -_.columnIndex = 0; -_.rowIndex = 0; -_.val$index2 = 0; -var Lcom_google_common_collect_ArrayTable$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2', 468); -function ArrayTable$2methodref$getValue$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1927, 1, {}, ArrayTable$2methodref$getValue$Type); -_.apply_2 = function apply_7(arg0){ - return $getValue(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_ArrayTable$2methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/2methodref$getValue$Type', 1927); -function ArrayTable$3(this$0, $anonymous0){ - this.this$01 = this$0; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(1926, 386, $intern_4, ArrayTable$3); -_.get_0 = function get_11(index_0){ - return $getValue(this.this$01, index_0); -} -; -var Lcom_google_common_collect_ArrayTable$3_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/3', 1926); -function $forEachEntry_0(this$static, action){ - this$static.entryIterator().forEachRemaining(action); -} - -defineClass(1979, 1967, $intern_7); -_.clear_0 = function clear_13(){ - clear_20(this.entryIterator()); -} -; -_.entrySet_0 = function entrySet_0(){ - return new Maps$IteratorBasedAbstractMap$1(this); -} -; -_.entrySpliterator = function entrySpliterator_1(){ - return new Spliterators$IteratorSpliterator_1(this.entryIterator(), this.size_1()); -} -; -var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap', 1979); -function $getEntry(this$static, index_0){ - checkElementIndex(index_0, this$static.keyIndex.delegate.map_0.size_1()); - return new ArrayTable$ArrayMap$1(this$static, index_0); -} - -function $getKey(this$static, index_0){ - return $asList($keySet_0(this$static.keyIndex)).get_0(index_0); -} - -function ArrayTable$ArrayMap(keyIndex){ - this.keyIndex = keyIndex; -} - -defineClass(828, 1979, $intern_7); -_.clear_0 = function clear_14(){ - throw toJs(new UnsupportedOperationException); -} -; -_.containsKey = function containsKey_2(key){ - return $containsKey_0(this.keyIndex, key); -} -; -_.entryIterator = function entryIterator_1(){ - return new ArrayTable$ArrayMap$2(this, this.keyIndex.delegate.map_0.size_1()); -} -; -_.entrySpliterator = function entrySpliterator_2(){ - return indexed(this.keyIndex.delegate.map_0.size_1(), 16, new ArrayTable$ArrayMap$0methodref$getEntry$Type(this)); -} -; -_.get_3 = function get_12(key){ - var index_0; - index_0 = castTo($get_3(this.keyIndex, key), 19); - return !index_0?null:this.getValue_0(index_0.value_0); -} -; -_.isEmpty = function isEmpty_5(){ - return this.keyIndex.delegate.map_0.isEmpty(); -} -; -_.keySet_0 = function keySet_8(){ - return $keySet_0(this.keyIndex); -} -; -_.put = function put_0(key, value_0){ - var index_0; - index_0 = castTo($get_3(this.keyIndex, key), 19); - if (!index_0) { - throw toJs(new IllegalArgumentException_0(this.getKeyRole() + ' ' + key + ' not in ' + $keySet_0(this.keyIndex))); - } - return this.setValue_0(index_0.value_0, value_0); -} -; -_.remove_0 = function remove_20(key){ - throw toJs(new UnsupportedOperationException); -} -; -_.size_1 = function size_12(){ - return this.keyIndex.delegate.map_0.size_1(); -} -; -var Lcom_google_common_collect_ArrayTable$ArrayMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap', 828); -function ArrayTable$ArrayMap$0methodref$getEntry$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1923, 1, {}, ArrayTable$ArrayMap$0methodref$getEntry$Type); -_.apply_2 = function apply_8(arg0){ - return $getEntry(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_ArrayTable$ArrayMap$0methodref$getEntry$Type_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/0methodref$getEntry$Type', 1923); -function ArrayTable$ArrayMap$1(this$1, val$index){ - this.this$11 = this$1; - this.val$index2 = val$index; -} - -defineClass(1921, 345, $intern_15, ArrayTable$ArrayMap$1); -_.getKey = function getKey(){ - return $getKey(this.this$11, this.val$index2); -} -; -_.getValue = function getValue(){ - return this.this$11.getValue_0(this.val$index2); -} -; -_.setValue = function setValue_0(value_0){ - return this.this$11.setValue_0(this.val$index2, value_0); -} -; -_.val$index2 = 0; -var Lcom_google_common_collect_ArrayTable$ArrayMap$1_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/1', 1921); -function ArrayTable$ArrayMap$2(this$1, $anonymous0){ - this.this$11 = this$1; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(1922, 386, $intern_4, ArrayTable$ArrayMap$2); -_.get_0 = function get_13(index_0){ - return $getEntry(this.this$11, index_0); -} -; -var Lcom_google_common_collect_ArrayTable$ArrayMap$2_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/ArrayMap/2', 1922); -function ArrayTable$Row(this$0, rowIndex){ - this.this$01 = this$0; - ArrayTable$ArrayMap.call(this, this$0.columnKeyToIndex); - this.rowIndex = rowIndex; -} - -defineClass(1920, 828, $intern_7, ArrayTable$Row); -_.getKeyRole = function getKeyRole(){ - return 'Column'; -} -; -_.getValue_0 = function getValue_0(index_0){ - return $at(this.this$01, this.rowIndex, index_0); -} -; -_.setValue_0 = function setValue_1(index_0, newValue){ - return $set(this.this$01, this.rowIndex, index_0, newValue); -} -; -_.rowIndex = 0; -var Lcom_google_common_collect_ArrayTable$Row_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/Row', 1920); -function $put_1(){ - throw toJs(new UnsupportedOperationException); -} - -function $setValue(){ - throw toJs(new UnsupportedOperationException); -} - -function ArrayTable$RowMap(this$0){ - this.this$01 = this$0; - ArrayTable$ArrayMap.call(this, this$0.rowKeyToIndex); -} - -defineClass(829, 828, $intern_7, ArrayTable$RowMap); -_.getValue_0 = function getValue_1(index_0){ - return new ArrayTable$Row(this.this$01, index_0); -} -; -_.put = function put_1(key, value_0){ - return castTo(value_0, 83) , $put_1(); -} -; -_.setValue_0 = function setValue_2(index_0, newValue){ - return castTo(newValue, 83) , $setValue(); -} -; -_.getKeyRole = function getKeyRole_0(){ - return 'Row'; -} -; -var Lcom_google_common_collect_ArrayTable$RowMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/RowMap', 829); -function checkEntryNotNull(key, value_0){ - if (key == null) { - throw toJs(new NullPointerException_0('null key in entry: null=' + value_0)); - } - else if (value_0 == null) { - throw toJs(new NullPointerException_0('null value in entry: ' + key + '=null')); - } -} - -function checkNonnegative(value_0, name_0){ - if (value_0 < 0) { - throw toJs(new IllegalArgumentException_0(name_0 + ' cannot be negative but was: ' + value_0)); - } - return value_0; -} - -function flatMap(fromSpliterator, function_0, topCharacteristics, topSize){ - checkArgument_0((topCharacteristics & $intern_17) == 0, 'flatMap does not support SUBSIZED characteristic'); - checkArgument_0((topCharacteristics & 4) == 0, 'flatMap does not support SORTED characteristic'); - checkNotNull(fromSpliterator); - checkNotNull(function_0); - return new CollectSpliterators$1FlatMapSpliterator(fromSpliterator, topCharacteristics, topSize, function_0); -} - -function indexed(size_0, extraCharacteristics, function_0){ - return new CollectSpliterators$1WithCharacteristics(range_0(size_0).spliterator_1(), function_0, extraCharacteristics); -} - -function map_2(fromSpliterator, function_0){ - checkNotNull(fromSpliterator); - checkNotNull(function_0); - return new CollectSpliterators$1(fromSpliterator, function_0); -} - -function $forEachRemaining_0(this$static, consumer){ - while (this$static.tryAdvance(consumer)) - ; -} - -function CollectSpliterators$1(val$fromSpliterator, val$function){ - this.val$fromSpliterator1 = val$fromSpliterator; - this.val$function2 = val$function; -} - -defineClass(1120, 1, $intern_18, CollectSpliterators$1); -_.characteristics_0 = function characteristics_0(){ - return this.val$fromSpliterator1.characteristics_0() & -262; -} -; -_.estimateSize_0 = function estimateSize(){ - return this.val$fromSpliterator1.estimateSize_0(); -} -; -_.forEachRemaining = function forEachRemaining_4(action){ - this.val$fromSpliterator1.forEachRemaining(new CollectSpliterators$1$lambda$1$Type(action, this.val$function2)); -} -; -_.tryAdvance = function tryAdvance(action){ - return this.val$fromSpliterator1.tryAdvance(new CollectSpliterators$1$lambda$0$Type(action, this.val$function2)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1', 1120); -function CollectSpliterators$1$lambda$0$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1121, 1, $intern_19, CollectSpliterators$1$lambda$0$Type); -_.accept = function accept_0(arg0){ - this.action_0.accept(this.function_1.apply_0(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$0$Type', 1121); -function CollectSpliterators$1$lambda$1$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1122, 1, $intern_19, CollectSpliterators$1$lambda$1$Type); -_.accept = function accept_1(arg0){ - this.action_0.accept(this.function_1.apply_0(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1/lambda$1$Type', 1122); -function $lambda$0(this$static, function_1, fromElement_1){ - return this$static.prefix = castTo(function_1.apply_0(fromElement_1), 164); -} - -function CollectSpliterators$1FlatMapSpliterator(from, characteristics, estimatedSize, val$function){ - this.val$function6 = val$function; - this.prefix = null; - this.from = from; - this.characteristics = characteristics; - this.estimatedSize = estimatedSize; -} - -function lambda$1_0(function_0, action_1, fromElement_2){ - castTo(function_0.apply_0(fromElement_2), 164).forEachRemaining(action_1); -} - -defineClass(1123, 1, $intern_18, CollectSpliterators$1FlatMapSpliterator); -_.characteristics_0 = function characteristics_1(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_0(){ - !!this.prefix && (this.estimatedSize = max_1(this.estimatedSize, this.prefix.estimateSize_0())); - return max_1(this.estimatedSize, 0); -} -; -_.forEachRemaining = function forEachRemaining_5(action){ - if (this.prefix) { - this.prefix.forEachRemaining(action); - this.prefix = null; - } - this.from.forEachRemaining(new CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(this.val$function6, action)); - this.estimatedSize = 0; -} -; -_.tryAdvance = function tryAdvance_0(action){ - while (true) { - if (!!this.prefix && this.prefix.tryAdvance(action)) { - neq(this.estimatedSize, $intern_20) && (this.estimatedSize = sub_2(this.estimatedSize, 1)); - return true; - } - else { - this.prefix = null; - } - if (!this.from.tryAdvance(new CollectSpliterators$1FlatMapSpliterator$lambda$0$Type(this, this.val$function6))) { - return false; - } - } -} -; -_.characteristics = 0; -_.estimatedSize = 0; -var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator', 1123); -function CollectSpliterators$1FlatMapSpliterator$lambda$0$Type($$outer_0, function_1){ - this.$$outer_0 = $$outer_0; - this.function_1 = function_1; -} - -defineClass(1124, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$0$Type); -_.accept = function accept_2(arg0){ - $lambda$0(this.$$outer_0, this.function_1, arg0); -} -; -var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type', 1124); -function CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(function_0, action_1){ - this.function_0 = function_0; - this.action_1 = action_1; -} - -defineClass(1125, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$1$Type); -_.accept = function accept_3(arg0){ - lambda$1_0(this.function_0, this.action_1, arg0); -} -; -var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type', 1125); -function CollectSpliterators$1WithCharacteristics(delegate, val$function, val$extraCharacteristics){ - this.val$function2 = val$function; - this.val$extraCharacteristics3 = val$extraCharacteristics; - this.delegate = delegate; -} - -defineClass(1117, 1, $intern_18, CollectSpliterators$1WithCharacteristics); -_.characteristics_0 = function characteristics_2(){ - return 16464 | this.val$extraCharacteristics3; -} -; -_.estimateSize_0 = function estimateSize_1(){ - return this.delegate.estimateSize_0(); -} -; -_.forEachRemaining = function forEachRemaining_6(action){ - this.delegate.forEachRemaining_0(new CollectSpliterators$1WithCharacteristics$lambda$1$Type(action, this.val$function2)); -} -; -_.tryAdvance = function tryAdvance_1(action){ - return this.delegate.tryAdvance_0(new CollectSpliterators$1WithCharacteristics$lambda$0$Type(action, this.val$function2)); -} -; -_.val$extraCharacteristics3 = 0; -var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics', 1117); -function CollectSpliterators$1WithCharacteristics$lambda$0$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1118, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$0$Type); -_.accept_0 = function accept_4(arg0){ - this.action_0.accept(this.function_1.apply_2(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$0$Type', 1118); -function CollectSpliterators$1WithCharacteristics$lambda$1$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1119, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$1$Type); -_.accept_0 = function accept_5(arg0){ - this.action_0.accept(this.function_1.apply_2(arg0)); -} -; -var Lcom_google_common_collect_CollectSpliterators$1WithCharacteristics$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1WithCharacteristics/lambda$1$Type', 1119); -function safeContains(collection, object){ - checkNotNull(collection); - try { - return collection.contains(object); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return false; - } - else - throw toJs($e0); - } -} - -function safeRemove(collection, object){ - checkNotNull(collection); - try { - return collection.remove_1(object); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return false; - } - else - throw toJs($e0); - } -} - -function $equals_1(this$static, obj){ - var compareResult, that; - if (instanceOf(obj, 245)) { - that = castTo(obj, 245); - try { - compareResult = this$static.compareTo(that); - return compareResult == 0; - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 205)) - throw toJs($e0); - } - } - return false; -} - -function Cut(endpoint){ - this.endpoint = endpoint; -} - -defineClass(245, 1, $intern_22); -_.compareTo_0 = function compareTo_0(that){ - return this.compareTo(castTo(that, 245)); -} -; -_.compareTo = function compareTo(that){ - var result; - if (that == ($clinit_Cut$BelowAll() , INSTANCE_1)) { - return 1; - } - if (that == ($clinit_Cut$AboveAll() , INSTANCE_0)) { - return -1; - } - result = ($clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, that.endpoint)); - if (result != 0) { - return result; - } - return instanceOf(this, 519) == instanceOf(that, 519)?0:instanceOf(this, 519)?1:-1; -} -; -_.endpoint_0 = function endpoint_0(){ - return this.endpoint; -} -; -_.equals_0 = function equals_16(obj){ - return $equals_1(this, obj); -} -; -var Lcom_google_common_collect_Cut_2_classLit = createForClass('com.google.common.collect', 'Cut', 245); -function $clinit_Cut$AboveAll(){ - $clinit_Cut$AboveAll = emptyMethod; - INSTANCE_0 = new Cut$AboveAll; -} - -function Cut$AboveAll(){ - Cut.call(this, null); -} - -defineClass(1761, 245, $intern_22, Cut$AboveAll); -_.compareTo = function compareTo_1(o){ - return o == this?0:1; -} -; -_.describeAsLowerBound = function describeAsLowerBound(sb){ - throw toJs(new AssertionError); -} -; -_.describeAsUpperBound = function describeAsUpperBound(sb){ - sb.string += '+\u221E)'; -} -; -_.endpoint_0 = function endpoint_1(){ - throw toJs(new IllegalStateException_0('range unbounded on this side')); -} -; -_.hashCode_1 = function hashCode_15(){ - return $clinit_System() , getIdentityHashCode(this); -} -; -_.isLessThan = function isLessThan(value_0){ - return false; -} -; -_.toString_0 = function toString_14(){ - return '+\u221E'; -} -; -var INSTANCE_0; -var Lcom_google_common_collect_Cut$AboveAll_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveAll', 1761); -function Cut$AboveValue(endpoint){ - Cut.call(this, castTo(checkNotNull(endpoint), 35)); -} - -defineClass(519, 245, {245:1, 519:1, 3:1, 35:1}, Cut$AboveValue); -_.describeAsLowerBound = function describeAsLowerBound_0(sb){ - $append_10((sb.string += '(' , sb), this.endpoint); -} -; -_.describeAsUpperBound = function describeAsUpperBound_0(sb){ - $append_5($append_10(sb, this.endpoint), 93); -} -; -_.hashCode_1 = function hashCode_16(){ - return ~hashCode__I__devirtual$(this.endpoint); -} -; -_.isLessThan = function isLessThan_0(value_0){ - return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) < 0; -} -; -_.toString_0 = function toString_15(){ - return '/' + this.endpoint + '\\'; -} -; -var Lcom_google_common_collect_Cut$AboveValue_2_classLit = createForClass('com.google.common.collect', 'Cut/AboveValue', 519); -function $clinit_Cut$BelowAll(){ - $clinit_Cut$BelowAll = emptyMethod; - INSTANCE_1 = new Cut$BelowAll; -} - -function Cut$BelowAll(){ - Cut.call(this, null); -} - -defineClass(1760, 245, $intern_22, Cut$BelowAll); -_.compareTo = function compareTo_2(o){ - return o == this?0:-1; -} -; -_.describeAsLowerBound = function describeAsLowerBound_1(sb){ - sb.string += '(-\u221E'; -} -; -_.describeAsUpperBound = function describeAsUpperBound_1(sb){ - throw toJs(new AssertionError); -} -; -_.endpoint_0 = function endpoint_2(){ - throw toJs(new IllegalStateException_0('range unbounded on this side')); -} -; -_.hashCode_1 = function hashCode_17(){ - return $clinit_System() , getIdentityHashCode(this); -} -; -_.isLessThan = function isLessThan_1(value_0){ - return true; -} -; -_.toString_0 = function toString_16(){ - return '-\u221E'; -} -; -var INSTANCE_1; -var Lcom_google_common_collect_Cut$BelowAll_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowAll', 1760); -function Cut$BelowValue(endpoint){ - Cut.call(this, castTo(checkNotNull(endpoint), 35)); -} - -defineClass(1762, 245, $intern_22, Cut$BelowValue); -_.describeAsLowerBound = function describeAsLowerBound_2(sb){ - $append_10((sb.string += '[' , sb), this.endpoint); -} -; -_.describeAsUpperBound = function describeAsUpperBound_2(sb){ - $append_5($append_10(sb, this.endpoint), 41); -} -; -_.hashCode_1 = function hashCode_18(){ - return hashCode__I__devirtual$(this.endpoint); -} -; -_.isLessThan = function isLessThan_2(value_0){ - return $clinit_Range() , compareTo_Ljava_lang_Object__I__devirtual$(this.endpoint, value_0) <= 0; -} -; -_.toString_0 = function toString_17(){ - return '\\' + this.endpoint + '/'; -} -; -var Lcom_google_common_collect_Cut$BelowValue_2_classLit = createForClass('com.google.common.collect', 'Cut/BelowValue', 1762); -function FluentIterable(){ - $clinit_Absent(); -} - -function concatNoDefensiveCopy(inputs){ - var input_0, input$array, input$index, input$max; - for (input$array = inputs , input$index = 0 , input$max = input$array.length; input$index < input$max; ++input$index) { - input_0 = input$array[input$index]; - checkNotNull(input_0); - } - return new FluentIterable$3(inputs); -} - -defineClass(537, 1, $intern_23); -_.forEach_0 = function forEach_3(action){ - $forEach_0(this, action); -} -; -_.toString_0 = function toString_18(){ - return toString_25(castTo(checkNotNull_0(this, 'use Optional.orNull() instead of Optional.or(null)'), 20).iterator_0()); -} -; -var Lcom_google_common_collect_FluentIterable_2_classLit = createForClass('com.google.common.collect', 'FluentIterable', 537); -function FluentIterable$2(val$inputs){ - this.val$inputs1 = val$inputs; - FluentIterable.call(this); -} - -defineClass(433, 537, $intern_23, FluentIterable$2); -_.iterator_0 = function iterator_9(){ - return new Iterators$ConcatenatedIterator(transform_2(this.val$inputs1.iterator_0(), new Iterables$10)); -} -; -var Lcom_google_common_collect_FluentIterable$2_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/2', 433); -function $iterator(this$static){ - return new Iterators$ConcatenatedIterator(new FluentIterable$3$1(this$static.val$inputs1.length, this$static.val$inputs1)); -} - -function FluentIterable$3(val$inputs){ - this.val$inputs1 = val$inputs; - FluentIterable.call(this); -} - -defineClass(1046, 537, $intern_23, FluentIterable$3); -_.iterator_0 = function iterator_10(){ - return $iterator(this); -} -; -var Lcom_google_common_collect_FluentIterable$3_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3', 1046); -function FluentIterable$3$1($anonymous0, val$inputs){ - this.val$inputs3 = val$inputs; - AbstractIndexedListIterator.call(this, $anonymous0); -} - -defineClass(708, 386, $intern_4, FluentIterable$3$1); -_.get_0 = function get_14(i){ - return this.val$inputs3[i].iterator_0(); -} -; -var Lcom_google_common_collect_FluentIterable$3$1_2_classLit = createForClass('com.google.common.collect', 'FluentIterable/3/1', 708); -defineClass(1972, 1, {}); -_.toString_0 = function toString_19(){ - return toString_40(this.delegate_0().coll); -} -; -var Lcom_google_common_collect_ForwardingObject_2_classLit = createForClass('com.google.common.collect', 'ForwardingObject', 1972); -defineClass(1973, 1972, $intern_24); -_.delegate_0 = function delegate_0(){ - return this.delegate_1(); -} -; -_.forEach_0 = function forEach_4(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream_0(){ - return this.stream(); -} -; -_.spliterator_0 = function spliterator_15(){ - return new Spliterators$IteratorSpliterator(this, 0); -} -; -_.stream = function stream_1(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.add_2 = function add_7(element){ - return this.delegate_1() , $add_4(); -} -; -_.addAll = function addAll_3(collection){ - return this.delegate_1() , $addAll_3(); -} -; -_.clear_0 = function clear_15(){ - this.delegate_1() , $clear_5(); -} -; -_.contains = function contains_10(object){ - return this.delegate_1().contains(object); -} -; -_.containsAll = function containsAll_2(collection){ - return this.delegate_1().containsAll(collection); -} -; -_.isEmpty = function isEmpty_6(){ - return this.delegate_1().coll.isEmpty(); -} -; -_.iterator_0 = function iterator_11(){ - return this.delegate_1().iterator_0(); -} -; -_.remove_1 = function remove_21(object){ - return this.delegate_1() , $remove_14(); -} -; -_.size_1 = function size_13(){ - return this.delegate_1().coll.size_1(); -} -; -_.toArray = function toArray_1(){ - return this.delegate_1().toArray(); -} -; -_.toArray_0 = function toArray_2(array){ - return this.delegate_1().toArray_0(array); -} -; -var Lcom_google_common_collect_ForwardingCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingCollection', 1973); -function $clinit_ImmutableCollection(){ - $clinit_ImmutableCollection = emptyMethod; - new ForwardingImmutableCollection(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); -} - -function $asList(this$static){ - var list; - list = this$static.asList; - return !list?(this$static.asList = this$static.createAsList()):list; -} - -defineClass(1980, 28, $intern_25); -_.iterator_0 = function iterator_12(){ - return this.iterator_1(); -} -; -_.add_2 = function add_8(e){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll = function addAll_4(newElements){ - throw toJs(new UnsupportedOperationException); -} -; -_.clear_0 = function clear_16(){ - throw toJs(new UnsupportedOperationException); -} -; -_.contains = function contains_11(object){ - return object != null && $advanceToFind(this, object, false); -} -; -_.createAsList = function createAsList(){ - switch (this.size_1()) { - case 0: - return $clinit_ImmutableList() , $clinit_ImmutableList() , EMPTY; - case 1: - return $clinit_ImmutableList() , new SingletonImmutableList(checkNotNull(this.iterator_1().next_1())); - default:return new RegularImmutableAsList_0(this, this.toArray()); - } -} -; -_.remove_1 = function remove_22(object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_ImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection', 1980); -function ForwardingImmutableCollection(delegate){ - $clinit_ImmutableCollection(); - this.delegate = delegate; -} - -defineClass(712, 1980, $intern_25, ForwardingImmutableCollection); -_.iterator_0 = function iterator_14(){ - return unmodifiableIterator(this.delegate.iterator_0()); -} -; -_.contains = function contains_12(object){ - return object != null && this.delegate.contains(object); -} -; -_.containsAll = function containsAll_3(targets){ - return this.delegate.containsAll(targets); -} -; -_.isEmpty = function isEmpty_7(){ - return this.delegate.isEmpty(); -} -; -_.iterator_1 = function iterator_13(){ - return unmodifiableIterator(this.delegate.iterator_0()); -} -; -_.size_1 = function size_14(){ - return this.delegate.size_1(); -} -; -_.toArray = function toArray_3(){ - return this.delegate.toArray(); -} -; -_.toArray_0 = function toArray_4(other){ - return this.delegate.toArray_0(other); -} -; -_.toString_0 = function toString_20(){ - return toString_40(this.delegate); -} -; -var Lcom_google_common_collect_ForwardingImmutableCollection_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableCollection', 712); -function $clinit_ImmutableList(){ - $clinit_ImmutableList = emptyMethod; - $clinit_ImmutableCollection(); - EMPTY = new RegularImmutableList(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); -} - -function $listIterator(this$static, index_0){ - return new ImmutableList$1(this$static, this$static.size_1(), index_0); -} - -function $reverse(this$static){ - var list; - list = (checkNotNull(this$static) , this$static?new ArrayList_1(this$static):newArrayList_0(this$static.iterator_0())); - reverse_2(list); - return unsafeDelegateList(list); -} - -function copyFromCollection(collection){ - $clinit_ImmutableList(); - var elements; - elements = collection.toArray(); - switch (elements.length) { - case 0: - return EMPTY; - case 1: - return new SingletonImmutableList(checkNotNull(elements[0])); - default:return new RegularImmutableList(nullCheckedList(elements)); - } -} - -function nullCheckedList(array){ - var castedArray, i, len; - for (i = 0 , len = array.length; i < len; i++) { - if (array[i] == null) { - throw toJs(new NullPointerException_0('at index ' + i)); - } - } - castedArray = array; - return new Arrays$ArrayList(castedArray); -} - -function unsafeDelegateList(list){ - var castedList; - switch (list.size_1()) { - case 0: - return EMPTY; - case 1: - return new SingletonImmutableList(checkNotNull(list.get_0(0))); - default:castedList = list; - return new RegularImmutableList(castedList); - } -} - -defineClass(152, 1980, $intern_26); -_.iterator_0 = function iterator_16(){ - return this.iterator_1(); -} -; -_.listIterator_0 = function listIterator_1(){ - return this.listIterator_2(0); -} -; -_.listIterator_1 = function listIterator_3(index_0){ - return this.listIterator_2(index_0); -} -; -_.sort_0 = function sort_1(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_16(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.subList = function subList_2(fromIndex, toIndex){ - return this.subList_0(fromIndex, toIndex); -} -; -_.add_3 = function add_9(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll_0 = function addAll_5(index_0, newElements){ - throw toJs(new UnsupportedOperationException); -} -; -_.equals_0 = function equals_17(obj){ - return equalsImpl(this, obj); -} -; -_.hashCode_1 = function hashCode_19(){ - return hashCodeImpl(this); -} -; -_.indexOf_0 = function indexOf_0(object){ - return object == null?-1:indexOfRandomAccess(this, object); -} -; -_.iterator_1 = function iterator_15(){ - return this.listIterator_2(0); -} -; -_.listIterator_2 = function listIterator_2(index_0){ - return $listIterator(this, index_0); -} -; -_.remove_2 = function remove_23(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_2 = function set_4(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.subList_0 = function subList_1(fromIndex, toIndex){ - var wrapper; - return unsafeDelegateList((wrapper = new Lists$1(this) , new AbstractList$SubList(wrapper, fromIndex, toIndex))); -} -; -var EMPTY; -var Lcom_google_common_collect_ImmutableList_2_classLit = createForClass('com.google.common.collect', 'ImmutableList', 152); -function $get_2(this$static, index_0){ - return this$static.delegateList_0().get_0(index_0); -} - -defineClass(2006, 152, $intern_26); -_.iterator_0 = function iterator_18(){ - return unmodifiableIterator(this.delegateList_0().iterator_0()); -} -; -_.subList = function subList_4(fromIndex, toIndex){ - return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); -} -; -_.contains = function contains_13(object){ - return object != null && this.delegateList_0().contains(object); -} -; -_.containsAll = function containsAll_4(targets){ - return this.delegateList_0().containsAll(targets); -} -; -_.equals_0 = function equals_18(obj){ - return equals_Ljava_lang_Object__Z__devirtual$(this.delegateList_0(), obj); -} -; -_.get_0 = function get_15(index_0){ - return $get_2(this, index_0); -} -; -_.hashCode_1 = function hashCode_20(){ - return hashCode__I__devirtual$(this.delegateList_0()); -} -; -_.indexOf_0 = function indexOf_1(object){ - return this.delegateList_0().indexOf_0(object); -} -; -_.isEmpty = function isEmpty_8(){ - return this.delegateList_0().isEmpty(); -} -; -_.iterator_1 = function iterator_17(){ - return unmodifiableIterator(this.delegateList_0().iterator_0()); -} -; -_.size_1 = function size_15(){ - return this.delegateList_0().size_1(); -} -; -_.subList_0 = function subList_3(fromIndex, toIndex){ - return unsafeDelegateList(this.delegateList_0().subList(fromIndex, toIndex)); -} -; -_.toArray = function toArray_5(){ - return this.delegateList_0().toArray_0(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.delegateList_0().size_1(), 5, 1)); -} -; -_.toArray_0 = function toArray_6(other){ - return this.delegateList_0().toArray_0(other); -} -; -_.toString_0 = function toString_21(){ - return toString_40(this.delegateList_0()); -} -; -var Lcom_google_common_collect_ForwardingImmutableList_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableList', 2006); -function $clinit_ImmutableMap(){ - $clinit_ImmutableMap = emptyMethod; - EMPTY_0 = new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [])); -} - -function $entrySet_1(this$static){ - if (this$static.cachedEntrySet) { - return this$static.cachedEntrySet; - } - return this$static.cachedEntrySet = this$static.createEntrySet_1(); -} - -function $keySet_0(this$static){ - if (this$static.cachedKeySet) { - return this$static.cachedKeySet; - } - return this$static.cachedKeySet = this$static.createKeySet_1(); -} - -function $put_2(){ - throw toJs(new UnsupportedOperationException); -} - -function fromEntryList(entries){ - $clinit_ImmutableMap(); - var entry, entryArray, size_0; - size_0 = entries.array.length; - switch (size_0) { - case 0: - return EMPTY_0; - case 1: - entry = castTo(getOnlyElement(new ArrayList$1(entries)), 42); - return of(entry.getKey(), entry.getValue()); - default:entryArray = castTo($toArray_2(entries, initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, entries.array.length, 0, 1)), 165); - return new RegularImmutableMap(entryArray); - } -} - -function of(k1, v1){ - return $clinit_ImmutableMap() , checkEntryNotNull(k1, v1) , new SingletonImmutableBiMap(k1, v1); -} - -function of_0(k1, v1, k2, v2){ - $clinit_ImmutableMap(); - return new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [(checkEntryNotNull(k1, v1) , new ImmutableEntry(k1, v1)), (checkEntryNotNull(k2, v2) , new ImmutableEntry(k2, v2))])); -} - -defineClass(714, 1, $intern_28); -_.entrySet_0 = function entrySet_1(){ - return $entrySet_1(this); -} -; -_.forEach = function forEach_5(consumer){ - $forEach_2(this, consumer); -} -; -_.keySet_0 = function keySet_9(){ - return $keySet_0(this); -} -; -_.merge = function merge_0(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.values_0 = function values_4(){ - return this.values_2(); -} -; -_.clear_0 = function clear_17(){ - throw toJs(new UnsupportedOperationException); -} -; -_.containsKey = function containsKey_3(key){ - return this.get_3(key) != null; -} -; -_.containsValue = function containsValue_0(value_0){ - return this.values_2().contains(value_0); -} -; -_.createKeySet_1 = function createKeySet_6(){ - return new ImmutableMapKeySet(this); -} -; -_.createValues = function createValues(){ - return new ImmutableMapValues(this); -} -; -_.equals_0 = function equals_19(object){ - return equalsImpl_0(this, object); -} -; -_.hashCode_1 = function hashCode_21(){ - return $entrySet_1(this).hashCode_1(); -} -; -_.isEmpty = function isEmpty_9(){ - return this.size_1() == 0; -} -; -_.put = function put_2(k, v){ - return $put_2(); -} -; -_.remove_0 = function remove_24(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.toString_0 = function toString_22(){ - return toStringImpl(this); -} -; -_.values_2 = function values_3(){ - if (this.cachedValues) { - return this.cachedValues; - } - return this.cachedValues = this.createValues(); -} -; -_.cachedEntrySet = null; -_.cachedKeySet = null; -_.cachedValues = null; -var EMPTY_0; -var Lcom_google_common_collect_ImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap', 714); -function $containsKey_0(this$static, key){ - return safeContainsKey(this$static.delegate, key); -} - -function $get_3(this$static, key){ - return key == null?null:safeGet(this$static.delegate, key); -} - -function ForwardingImmutableMap(entries){ - var delegate, entry, entry$array, entry$index, entry$max, key, previous; - delegate = new LinkedHashMap; - for (entry$array = entries , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { - entry = entry$array[entry$index]; - key = checkNotNull(entry.getKey()); - previous = $put_11(delegate, key, checkNotNull(entry.getValue())); - if (previous != null) { - throw toJs(new IllegalArgumentException_0('duplicate key: ' + key)); - } - } - this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); -} - -defineClass(715, 714, $intern_28); -_.containsKey = function containsKey_4(key){ - return $containsKey_0(this, key); -} -; -_.containsValue = function containsValue_1(value_0){ - return $containsValue_3(this.delegate, value_0); -} -; -_.createEntrySet_1 = function createEntrySet_0(){ - return unsafeDelegate(new ForwardingImmutableMap$1(this)); -} -; -_.createKeySet_1 = function createKeySet_7(){ - return unsafeDelegate($keySet_1(this.delegate)); -} -; -_.createValues = function createValues_0(){ - return $clinit_ImmutableCollection() , new ForwardingImmutableCollection($values_2(this.delegate)); -} -; -_.equals_0 = function equals_20(object){ - return $equals_7(this.delegate, object); -} -; -_.get_3 = function get_16(key){ - return $get_3(this, key); -} -; -_.hashCode_1 = function hashCode_22(){ - return hashCode__I__devirtual$(this.delegate.map_0); -} -; -_.isEmpty = function isEmpty_10(){ - return this.delegate.map_0.isEmpty(); -} -; -_.size_1 = function size_16(){ - return this.delegate.map_0.size_1(); -} -; -_.toString_0 = function toString_23(){ - return toString_40(this.delegate.map_0); -} -; -var Lcom_google_common_collect_ForwardingImmutableMap_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap', 715); -defineClass(1974, 1973, $intern_29); -_.delegate_0 = function delegate_1(){ - return this.delegate_2(); -} -; -_.delegate_1 = function delegate_2(){ - return this.delegate_2(); -} -; -_.spliterator_0 = function spliterator_17(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_21(object){ - return object === this || this.delegate_2().equals_0(object); -} -; -_.hashCode_1 = function hashCode_23(){ - return this.delegate_2().hashCode_1(); -} -; -var Lcom_google_common_collect_ForwardingSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSet', 1974); -function ForwardingImmutableMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1069, 1974, $intern_29, ForwardingImmutableMap$1); -_.delegate_0 = function delegate_3(){ - return $entrySet_2(this.this$01.delegate); -} -; -_.delegate_1 = function delegate_4(){ - return $entrySet_2(this.this$01.delegate); -} -; -_.contains = function contains_14(object){ - if (instanceOf(object, 42) && castTo(object, 42).getKey() == null) { - return false; - } - try { - return $contains_3($entrySet_2(this.this$01.delegate), object); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205)) { - return false; - } - else - throw toJs($e0); - } -} -; -_.delegate_2 = function delegate_5(){ - return $entrySet_2(this.this$01.delegate); -} -; -_.toArray_0 = function toArray_7(array){ - var result; - result = $toArray_5($entrySet_2(this.this$01.delegate), array); - $entrySet_2(this.this$01.delegate).coll.size_1() < result.length && setCheck(result, $entrySet_2(this.this$01.delegate).coll.size_1(), null); - return result; -} -; -var Lcom_google_common_collect_ForwardingImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableMap/1', 1069); -function unsafeDelegate(delegate){ - $clinit_ImmutableCollection(); - switch (delegate.size_1()) { - case 0: - return $clinit_RegularImmutableSet() , EMPTY_2; - case 1: - return new SingletonImmutableSet(delegate.iterator_0().next_1()); - default:return new RegularImmutableSet(delegate); - } -} - -defineClass(1981, 1980, $intern_30); -_.iterator_0 = function iterator_19(){ - return this.iterator_1(); -} -; -_.spliterator_0 = function spliterator_18(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_22(obj){ - return equalsImpl_3(this, obj); -} -; -_.hashCode_1 = function hashCode_24(){ - return hashCodeImpl_0(this); -} -; -var Lcom_google_common_collect_ImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableSet', 1981); -function ForwardingImmutableSet(delegate){ - $clinit_ImmutableCollection(); - this.delegate = ($clinit_Collections() , new Collections$UnmodifiableSet(delegate)); -} - -defineClass(703, 1981, $intern_30); -_.iterator_0 = function iterator_21(){ - return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); -} -; -_.contains = function contains_15(object){ - return object != null && $contains_2(this.delegate, object); -} -; -_.containsAll = function containsAll_5(targets){ - return $containsAll_0(this.delegate, targets); -} -; -_.hashCode_1 = function hashCode_25(){ - return hashCode__I__devirtual$(this.delegate.coll); -} -; -_.isEmpty = function isEmpty_11(){ - return this.delegate.coll.isEmpty(); -} -; -_.iterator_1 = function iterator_20(){ - return unmodifiableIterator(new Collections$UnmodifiableCollectionIterator(this.delegate.coll.iterator_0())); -} -; -_.size_1 = function size_17(){ - return this.delegate.coll.size_1(); -} -; -_.toArray = function toArray_8(){ - return this.delegate.coll.toArray(); -} -; -_.toArray_0 = function toArray_9(other){ - return $toArray_4(this.delegate, other); -} -; -_.toString_0 = function toString_24(){ - return toString_40(this.delegate.coll); -} -; -var Lcom_google_common_collect_ForwardingImmutableSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingImmutableSet', 703); -defineClass(1975, 1974, $intern_31); -_.delegate_0 = function delegate_6(){ - return this.unmodifiableDelegate; -} -; -_.delegate_1 = function delegate_7(){ - return this.unmodifiableDelegate; -} -; -_.delegate_2 = function delegate_8(){ - return this.unmodifiableDelegate; -} -; -_.spliterator_0 = function spliterator_19(){ - return new SortedSet$1(this); -} -; -var Lcom_google_common_collect_ForwardingSortedSet_2_classLit = createForClass('com.google.common.collect', 'ForwardingSortedSet', 1975); -function $clear_2(this$static){ - this$static.size_0 = 0; - fill_2(this$static.hashTableKToV, null); - fill_2(this$static.hashTableVToK, null); - this$static.firstInKeyInsertionOrder = null; - this$static.lastInKeyInsertionOrder = null; - ++this$static.modCount; -} - -function $containsValue_1(this$static, value_0){ - return !!$seekByValue(this$static, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); -} - -function $delete(this$static, entry){ - var bucketEntry, bucketEntry0, keyBucket, prevBucketEntry, valueBucket; - keyBucket = entry.keyHash & this$static.mask; - prevBucketEntry = null; - for (bucketEntry0 = this$static.hashTableKToV[keyBucket]; true; bucketEntry0 = bucketEntry0.nextInKToVBucket) { - if (bucketEntry0 == entry) { - !prevBucketEntry?(this$static.hashTableKToV[keyBucket] = entry.nextInKToVBucket):(prevBucketEntry.nextInKToVBucket = entry.nextInKToVBucket); - break; - } - prevBucketEntry = bucketEntry0; - } - valueBucket = entry.valueHash & this$static.mask; - prevBucketEntry = null; - for (bucketEntry = this$static.hashTableVToK[valueBucket]; true; bucketEntry = bucketEntry.nextInVToKBucket) { - if (bucketEntry == entry) { - !prevBucketEntry?(this$static.hashTableVToK[valueBucket] = entry.nextInVToKBucket):(prevBucketEntry.nextInVToKBucket = entry.nextInVToKBucket); - break; - } - prevBucketEntry = bucketEntry; - } - !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry.nextInKeyInsertionOrder):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry.nextInKeyInsertionOrder); - !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry.prevInKeyInsertionOrder):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry.prevInKeyInsertionOrder); - --this$static.size_0; - ++this$static.modCount; -} - -function $forEach(this$static, action){ - var entry; - checkNotNull(action); - for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { - action.accept_1(entry.key, entry.value_0); - } -} - -function $get_4(this$static, key){ - return valueOrNull($seekByKey(this$static, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))))); -} - -function $insert(this$static, entry, oldEntryForKey){ - var keyBucket, valueBucket; - keyBucket = entry.keyHash & this$static.mask; - entry.nextInKToVBucket = this$static.hashTableKToV[keyBucket]; - this$static.hashTableKToV[keyBucket] = entry; - valueBucket = entry.valueHash & this$static.mask; - entry.nextInVToKBucket = this$static.hashTableVToK[valueBucket]; - this$static.hashTableVToK[valueBucket] = entry; - if (!oldEntryForKey) { - entry.prevInKeyInsertionOrder = this$static.lastInKeyInsertionOrder; - entry.nextInKeyInsertionOrder = null; - !this$static.lastInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(this$static.lastInKeyInsertionOrder.nextInKeyInsertionOrder = entry); - this$static.lastInKeyInsertionOrder = entry; - } - else { - entry.prevInKeyInsertionOrder = oldEntryForKey.prevInKeyInsertionOrder; - !entry.prevInKeyInsertionOrder?(this$static.firstInKeyInsertionOrder = entry):(entry.prevInKeyInsertionOrder.nextInKeyInsertionOrder = entry); - entry.nextInKeyInsertionOrder = oldEntryForKey.nextInKeyInsertionOrder; - !entry.nextInKeyInsertionOrder?(this$static.lastInKeyInsertionOrder = entry):(entry.nextInKeyInsertionOrder.prevInKeyInsertionOrder = entry); - } - ++this$static.size_0; - ++this$static.modCount; -} - -function $inverse(this$static){ - var result; - result = this$static.inverse; - return !result?(this$static.inverse = new HashBiMap$Inverse(this$static)):result; -} - -function $put_3(this$static, key, value_0){ - var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; - keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); - valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - oldEntryForKey = $seekByKey(this$static, key, keyHash); - if (!!oldEntryForKey && valueHash == oldEntryForKey.valueHash && equal(value_0, oldEntryForKey.value_0)) { - return value_0; - } - oldEntryForValue = $seekByValue(this$static, value_0, valueHash); - if (oldEntryForValue) { - throw toJs(new IllegalArgumentException_0('value already present: ' + value_0)); - } - newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); - if (oldEntryForKey) { - $delete(this$static, oldEntryForKey); - $insert(this$static, newEntry, oldEntryForKey); - oldEntryForKey.prevInKeyInsertionOrder = null; - oldEntryForKey.nextInKeyInsertionOrder = null; - return oldEntryForKey.value_0; - } - else { - $insert(this$static, newEntry, null); - $rehashIfNecessary(this$static); - return null; - } -} - -function $putInverse(this$static, value_0, key, force){ - var keyHash, newEntry, oldEntryForKey, oldEntryForValue, valueHash; - valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); - oldEntryForValue = $seekByValue(this$static, value_0, valueHash); - oldEntryForKey = $seekByKey(this$static, key, keyHash); - if (!!oldEntryForValue && keyHash == oldEntryForValue.keyHash && equal(key, oldEntryForValue.key)) { - return key; - } - else if (!!oldEntryForKey && !force) { - throw toJs(new IllegalArgumentException_0('key already present: ' + key)); - } - !!oldEntryForValue && $delete(this$static, oldEntryForValue); - !!oldEntryForKey && $delete(this$static, oldEntryForKey); - newEntry = new HashBiMap$BiEntry(key, keyHash, value_0, valueHash); - $insert(this$static, newEntry, oldEntryForKey); - if (oldEntryForKey) { - oldEntryForKey.prevInKeyInsertionOrder = null; - oldEntryForKey.nextInKeyInsertionOrder = null; - } - if (oldEntryForValue) { - oldEntryForValue.prevInKeyInsertionOrder = null; - oldEntryForValue.nextInKeyInsertionOrder = null; - } - $rehashIfNecessary(this$static); - return !oldEntryForValue?null:oldEntryForValue.key; -} - -function $rehashIfNecessary(this$static){ - var entry, newTableSize, oldKToV; - oldKToV = this$static.hashTableKToV; - if (needsResizing(this$static.size_0, oldKToV.length)) { - newTableSize = oldKToV.length * 2; - this$static.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); - this$static.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, newTableSize, 0, 1); - this$static.mask = newTableSize - 1; - this$static.size_0 = 0; - for (entry = this$static.firstInKeyInsertionOrder; entry; entry = entry.nextInKeyInsertionOrder) { - $insert(this$static, entry, entry); - } - ++this$static.modCount; - } -} - -function $seekByKey(this$static, key, keyHash){ - var entry; - for (entry = this$static.hashTableKToV[keyHash & this$static.mask]; entry; entry = entry.nextInKToVBucket) { - if (keyHash == entry.keyHash && equal(key, entry.key)) { - return entry; - } - } - return null; -} - -function $seekByValue(this$static, value_0, valueHash){ - var entry; - for (entry = this$static.hashTableVToK[valueHash & this$static.mask]; entry; entry = entry.nextInVToKBucket) { - if (valueHash == entry.valueHash && equal(value_0, entry.value_0)) { - return entry; - } - } - return null; -} - -function HashBiMap(){ - var tableSize; - checkNonnegative(16, 'expectedSize'); - tableSize = closedTableSize(16); - this.hashTableKToV = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); - this.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); - this.firstInKeyInsertionOrder = null; - this.lastInKeyInsertionOrder = null; - this.size_0 = 0; - this.mask = tableSize - 1; - this.modCount = 0; -} - -defineClass(533, 1979, $intern_28, HashBiMap); -_.putAll = function putAll_0(map_0){ - $putAll(this, map_0); -} -; -_.values_0 = function values_5(){ - var result; - return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); -} -; -_.clear_0 = function clear_18(){ - $clear_2(this); -} -; -_.containsKey = function containsKey_5(key){ - return !!$seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); -} -; -_.containsValue = function containsValue_2(value_0){ - return $containsValue_1(this, value_0); -} -; -_.entryIterator = function entryIterator_2(){ - return new HashBiMap$1(this, this); -} -; -_.forEach = function forEach_6(action){ - $forEach(this, action); -} -; -_.get_3 = function get_17(key){ - return $get_4(this, key); -} -; -_.keySet_0 = function keySet_10(){ - return new HashBiMap$KeySet(this); -} -; -_.put = function put_3(key, value_0){ - return $put_3(this, key, value_0); -} -; -_.remove_0 = function remove_25(key){ - var entry; - entry = $seekByKey(this, key, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15)))); - if (!entry) { - return null; - } - else { - $delete(this, entry); - entry.prevInKeyInsertionOrder = null; - entry.nextInKeyInsertionOrder = null; - return entry.value_0; - } -} -; -_.size_1 = function size_18(){ - return this.size_0; -} -; -_.values_1 = function values_6(){ - var result; - return result = this.inverse , new HashBiMap$Inverse$InverseKeySet(!result?(this.inverse = new HashBiMap$Inverse(this)):result); -} -; -_.mask = 0; -_.modCount = 0; -_.size_0 = 0; -var Lcom_google_common_collect_HashBiMap_2_classLit = createForClass('com.google.common.collect', 'HashBiMap', 533); -function $hasNext_0(this$static){ - if (this$static.this$01.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - return !!this$static.next_0 && this$static.remaining > 0; -} - -function HashBiMap$Itr(this$0){ - this.this$01 = this$0; - this.next_0 = this.this$01.firstInKeyInsertionOrder; - this.expectedModCount = this.this$01.modCount; - this.remaining = this.this$01.size_0; -} - -defineClass(534, 1, $intern_6); -_.forEachRemaining = function forEachRemaining_7(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_5(){ - return $hasNext_0(this); -} -; -_.next_1 = function next_6(){ - var entry; - if (!$hasNext_0(this)) { - throw toJs(new NoSuchElementException); - } - entry = this.next_0; - this.next_0 = entry.nextInKeyInsertionOrder; - this.toRemove = entry; - --this.remaining; - return this.output_0(entry); -} -; -_.remove = function remove_26(){ - if (this.this$01.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - checkState_0(!!this.toRemove); - $delete(this.this$01, this.toRemove); - this.expectedModCount = this.this$01.modCount; - this.toRemove = null; -} -; -_.expectedModCount = 0; -_.remaining = 0; -_.toRemove = null; -var Lcom_google_common_collect_HashBiMap$Itr_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Itr', 534); -function HashBiMap$1(this$0, this$0_1){ - this.this$02 = this$0_1; - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1011, 534, $intern_6, HashBiMap$1); -_.output_0 = function output_2(entry){ - return new HashBiMap$1$MapEntry(this, entry); -} -; -var Lcom_google_common_collect_HashBiMap$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1', 1011); -function HashBiMap$1$MapEntry(this$1, entry){ - this.this$11 = this$1; - this.delegate = entry; -} - -defineClass(1012, 345, $intern_15, HashBiMap$1$MapEntry); -_.getKey = function getKey_0(){ - return this.delegate.key; -} -; -_.getValue = function getValue_2(){ - return this.delegate.value_0; -} -; -_.setValue = function setValue_3(value_0){ - var newEntry, oldValue, valueHash; - oldValue = this.delegate.value_0; - valueHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - if (valueHash == this.delegate.valueHash && (maskUndefined(value_0) === maskUndefined(oldValue) || value_0 != null && equals_Ljava_lang_Object__Z__devirtual$(value_0, oldValue))) { - return value_0; - } - checkArgument_1(!$seekByValue(this.this$11.this$02, value_0, valueHash), value_0); - $delete(this.this$11.this$02, this.delegate); - newEntry = new HashBiMap$BiEntry(this.delegate.key, this.delegate.keyHash, value_0, valueHash); - $insert(this.this$11.this$02, newEntry, this.delegate); - this.delegate.prevInKeyInsertionOrder = null; - this.delegate.nextInKeyInsertionOrder = null; - this.this$11.expectedModCount = this.this$11.this$02.modCount; - this.this$11.toRemove == this.delegate && (this.this$11.toRemove = newEntry); - this.delegate = newEntry; - return oldValue; -} -; -var Lcom_google_common_collect_HashBiMap$1$MapEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/1/MapEntry', 1012); -function ImmutableEntry(key, value_0){ - this.key = key; - this.value_0 = value_0; -} - -defineClass(238, 345, {345:1, 238:1, 3:1, 42:1}, ImmutableEntry); -_.getKey = function getKey_1(){ - return this.key; -} -; -_.getValue = function getValue_3(){ - return this.value_0; -} -; -_.setValue = function setValue_4(value_0){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_ImmutableEntry_2_classLit = createForClass('com.google.common.collect', 'ImmutableEntry', 238); -function HashBiMap$BiEntry(key, keyHash, value_0, valueHash){ - ImmutableEntry.call(this, key, value_0); - this.keyHash = keyHash; - this.valueHash = valueHash; -} - -defineClass(317, 238, {345:1, 317:1, 238:1, 3:1, 42:1}, HashBiMap$BiEntry); -_.keyHash = 0; -_.valueHash = 0; -var Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/BiEntry', 317); -function $get_5(this$static, value_0){ - return keyOrNull($seekByValue(this$static.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))))); -} - -function HashBiMap$Inverse(this$0){ - this.this$01 = this$0; -} - -function lambda$0(action_0, k_1, v_2){ - action_0.accept_1(v_2, k_1); -} - -defineClass(610, 1979, $intern_28, HashBiMap$Inverse); -_.putAll = function putAll_1(map_0){ - $putAll(this, map_0); -} -; -_.values_0 = function values_7(){ - return new HashBiMap$KeySet(this.this$01); -} -; -_.clear_0 = function clear_19(){ - $clear_2(this.this$01); -} -; -_.containsKey = function containsKey_6(value_0){ - return $containsValue_1(this.this$01, value_0); -} -; -_.entryIterator = function entryIterator_3(){ - return new HashBiMap$Inverse$1(this, this.this$01); -} -; -_.forEach = function forEach_7(action){ - checkNotNull(action); - $forEach(this.this$01, new HashBiMap$Inverse$lambda$0$Type(action)); -} -; -_.get_3 = function get_18(value_0){ - return $get_5(this, value_0); -} -; -_.keySet_0 = function keySet_11(){ - return new HashBiMap$Inverse$InverseKeySet(this); -} -; -_.put = function put_4(value_0, key){ - return $putInverse(this.this$01, value_0, key, false); -} -; -_.remove_0 = function remove_27(value_0){ - var entry; - entry = $seekByValue(this.this$01, value_0, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15)))); - if (!entry) { - return null; - } - else { - $delete(this.this$01, entry); - entry.prevInKeyInsertionOrder = null; - entry.nextInKeyInsertionOrder = null; - return entry.key; - } -} -; -_.size_1 = function size_19(){ - return this.this$01.size_0; -} -; -_.values_1 = function values_8(){ - return new HashBiMap$KeySet(this.this$01); -} -; -var Lcom_google_common_collect_HashBiMap$Inverse_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse', 610); -function HashBiMap$Inverse$1(this$1, this$0){ - this.this$11 = this$1; - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1008, 534, $intern_6, HashBiMap$Inverse$1); -_.output_0 = function output_3(entry){ - return new HashBiMap$Inverse$1$InverseEntry(this, entry); -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1', 1008); -function HashBiMap$Inverse$1$InverseEntry(this$2, entry){ - this.this$21 = this$2; - this.delegate = entry; -} - -defineClass(1009, 345, $intern_15, HashBiMap$Inverse$1$InverseEntry); -_.getKey = function getKey_2(){ - return this.delegate.value_0; -} -; -_.getValue = function getValue_4(){ - return this.delegate.key; -} -; -_.setValue = function setValue_5(key){ - var keyHash, newEntry, oldKey; - oldKey = this.delegate.key; - keyHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(key == null?0:hashCode__I__devirtual$(key), $intern_33)), 15))); - if (keyHash == this.delegate.keyHash && (maskUndefined(key) === maskUndefined(oldKey) || key != null && equals_Ljava_lang_Object__Z__devirtual$(key, oldKey))) { - return key; - } - checkArgument_1(!$seekByKey(this.this$21.this$11.this$01, key, keyHash), key); - $delete(this.this$21.this$11.this$01, this.delegate); - newEntry = new HashBiMap$BiEntry(key, keyHash, this.delegate.value_0, this.delegate.valueHash); - this.delegate = newEntry; - $insert(this.this$21.this$11.this$01, newEntry, null); - this.this$21.expectedModCount = this.this$21.this$11.this$01.modCount; - return oldKey; -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$1$InverseEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/1/InverseEntry', 1009); -function HashBiMap$Inverse$InverseKeySet(this$1){ - this.this$11 = this$1; - Maps$KeySet.call(this, this$1); -} - -defineClass(611, 532, $intern_10, HashBiMap$Inverse$InverseKeySet); -_.iterator_0 = function iterator_22(){ - return new HashBiMap$Inverse$InverseKeySet$1(this.this$11.this$01); -} -; -_.remove_1 = function remove_28(o){ - var entry; - entry = $seekByValue(this.this$11.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); - if (!entry) { - return false; - } - else { - $delete(this.this$11.this$01, entry); - return true; - } -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet', 611); -function HashBiMap$Inverse$InverseKeySet$1(this$0){ - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1007, 534, $intern_6, HashBiMap$Inverse$InverseKeySet$1); -_.output_0 = function output_4(entry){ - return entry.value_0; -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$InverseKeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/InverseKeySet/1', 1007); -function HashBiMap$Inverse$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(1010, 1, {}, HashBiMap$Inverse$lambda$0$Type); -_.accept_1 = function accept_6(arg0, arg1){ - lambda$0(this.action_0, arg0, arg1); -} -; -var Lcom_google_common_collect_HashBiMap$Inverse$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/Inverse/lambda$0$Type', 1010); -function HashBiMap$KeySet(this$0){ - this.this$01 = this$0; - Maps$KeySet.call(this, this$0); -} - -defineClass(609, 532, $intern_10, HashBiMap$KeySet); -_.iterator_0 = function iterator_23(){ - return new HashBiMap$KeySet$1(this.this$01); -} -; -_.remove_1 = function remove_29(o){ - var entry; - entry = $seekByKey(this.this$01, o, toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15)))); - if (!entry) { - return false; - } - else { - $delete(this.this$01, entry); - entry.prevInKeyInsertionOrder = null; - entry.nextInKeyInsertionOrder = null; - return true; - } -} -; -var Lcom_google_common_collect_HashBiMap$KeySet_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet', 609); -function HashBiMap$KeySet$1(this$0){ - HashBiMap$Itr.call(this, this$0); -} - -defineClass(1006, 534, $intern_6, HashBiMap$KeySet$1); -_.output_0 = function output_5(entry){ - return entry.key; -} -; -var Lcom_google_common_collect_HashBiMap$KeySet$1_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/KeySet/1', 1006); -function HashMultimapGwtSerializationDependencies(map_0){ - AbstractSetMultimap.call(this, map_0); -} - -defineClass(1093, 619, $intern_5); -var Lcom_google_common_collect_HashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'HashMultimapGwtSerializationDependencies', 1093); -function HashMultimap(){ - HashMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(12))); - checkArgument(true); - this.expectedValuesPerKey = 2; -} - -defineClass(265, 1093, $intern_5, HashMultimap); -_.createCollection = function createCollection_5(){ - return new HashSet_0(capacity_0(this.expectedValuesPerKey)); -} -; -_.createCollection_1 = function createCollection_6(){ - return new HashSet_0(capacity_0(this.expectedValuesPerKey)); -} -; -_.expectedValuesPerKey = 2; -var Lcom_google_common_collect_HashMultimap_2_classLit = createForClass('com.google.common.collect', 'HashMultimap', 265); -function closedTableSize(expectedEntries){ - var tableSize; - expectedEntries = $wnd.Math.max(expectedEntries, 2); - tableSize = highestOneBit(expectedEntries); - if (expectedEntries > tableSize) { - tableSize <<= 1; - return tableSize > 0?tableSize:$intern_35; - } - return tableSize; -} - -function needsResizing(size_0, tableSize){ - return size_0 > tableSize && tableSize < $intern_35; -} - -defineClass(1999, 152, $intern_26); -_.contains = function contains_16(target){ - return this.delegateCollection().contains(target); -} -; -_.isEmpty = function isEmpty_12(){ - return this.delegateCollection().isEmpty(); -} -; -_.size_1 = function size_20(){ - return this.delegateCollection().size_1(); -} -; -var Lcom_google_common_collect_ImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'ImmutableAsList', 1999); -function ImmutableBiMap(delegate){ - this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); -} - -defineClass(1931, 715, $intern_28); -_.values_2 = function values_9(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_0 = function values_10(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_1 = function values_11(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -var Lcom_google_common_collect_ImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'ImmutableBiMap', 1931); -defineClass(1977, 1, {}); -var Lcom_google_common_collect_ImmutableCollection$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection/Builder', 1977); -function ImmutableEnumSet(delegate){ - ForwardingImmutableSet.call(this, delegate); -} - -function asImmutable(delegate){ - $clinit_ImmutableCollection(); - switch (delegate.size_0) { - case 0: - return $clinit_RegularImmutableSet() , EMPTY_2; - case 1: - return new SingletonImmutableSet(getOnlyElement(new EnumSet$EnumSetImpl$IteratorImpl(delegate))); - default:return new ImmutableEnumSet(delegate); - } -} - -defineClass(1022, 703, $intern_30, ImmutableEnumSet); -var Lcom_google_common_collect_ImmutableEnumSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableEnumSet', 1022); -function ImmutableList$1(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - AbstractIndexedListIterator_0.call(this, $anonymous0, $anonymous1); -} - -defineClass(969, 386, $intern_4, ImmutableList$1); -_.get_0 = function get_19(index_0){ - return this.this$01.get_0(index_0); -} -; -var Lcom_google_common_collect_ImmutableList$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/1', 969); -function ImmutableList$Builder(capacity){ - this.contents = (checkNonnegative(capacity, 'initialArraySize') , new ArrayList_0(capacity)); -} - -defineClass(968, 1977, {}, ImmutableList$Builder); -var Lcom_google_common_collect_ImmutableList$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/Builder', 968); -function ImmutableMap$1(val$entryIterator){ - this.val$entryIterator2 = val$entryIterator; -} - -defineClass(614, 198, $intern_3, ImmutableMap$1); -_.hasNext_0 = function hasNext_6(){ - return this.val$entryIterator2.hasNext_0(); -} -; -_.next_1 = function next_7(){ - return castTo(this.val$entryIterator2.next_1(), 42).getKey(); -} -; -var Lcom_google_common_collect_ImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/1', 614); -function ImmutableMap$2methodref$getKey$Type(){ -} - -defineClass(1041, 1, {}, ImmutableMap$2methodref$getKey$Type); -_.apply_0 = function apply_9(arg0){ - return castTo(arg0, 42).getKey(); -} -; -var Lcom_google_common_collect_ImmutableMap$2methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/2methodref$getKey$Type', 1041); -function $put_4(this$static, key, value_0){ - $add_3(this$static.entries_0, ($clinit_ImmutableMap() , checkEntryNotNull(key, value_0) , new ImmutableEntry(key, value_0))); - return this$static; -} - -function ImmutableMap$Builder(initCapacity){ - this.entries_0 = (checkNonnegative(initCapacity, 'initialArraySize') , new ArrayList_0(initCapacity)); -} - -defineClass(1040, 1, {}, ImmutableMap$Builder); -var Lcom_google_common_collect_ImmutableMap$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/Builder', 1040); -defineClass(2000, 1981, $intern_30); -_.iterator_0 = function iterator_25(){ - var entryIterator; - return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); -} -; -_.createAsList = function createAsList_0(){ - return new IndexedImmutableSet$1(this); -} -; -_.forEach_0 = function forEach_8(consumer){ - var i, n; - checkNotNull(consumer); - n = this.size_1(); - for (i = 0; i < n; i++) { - consumer.accept(castTo($asList($entrySet_1(this.map_0)).get_0(i), 42).getKey()); - } -} -; -_.iterator_1 = function iterator_24(){ - var list; - return (list = this.asList , !list?(this.asList = new IndexedImmutableSet$1(this)):list).iterator_1(); -} -; -_.spliterator_0 = function spliterator_20(){ - return indexed(this.size_1(), 1296, new IndexedImmutableSet$0methodref$get$Type(this)); -} -; -var Lcom_google_common_collect_IndexedImmutableSet_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet', 2000); -function $get_6(this$static, index_0){ - return castTo($asList($entrySet_1(this$static.map_0)).get_0(index_0), 42).getKey(); -} - -function ImmutableMapKeySet(map_0){ - $clinit_ImmutableCollection(); - this.map_0 = map_0; -} - -defineClass(1180, 2000, $intern_30, ImmutableMapKeySet); -_.iterator_0 = function iterator_27(){ - var entryIterator; - return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); -} -; -_.contains = function contains_17(object){ - return this.map_0.containsKey(object); -} -; -_.forEach_0 = function forEach_9(action){ - checkNotNull(action); - $forEach_2(this.map_0, new ImmutableMapKeySet$lambda$0$Type(action)); -} -; -_.iterator_1 = function iterator_26(){ - var entryIterator; - return entryIterator = $entrySet_1(this.map_0).iterator_1() , new ImmutableMap$1(entryIterator); -} -; -_.size_1 = function size_21(){ - return this.map_0.size_1(); -} -; -_.spliterator_0 = function spliterator_21(){ - return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMap$2methodref$getKey$Type); -} -; -var Lcom_google_common_collect_ImmutableMapKeySet_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet', 1180); -function ImmutableMapKeySet$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(1181, 1, {}, ImmutableMapKeySet$lambda$0$Type); -_.accept_1 = function accept_7(arg0, arg1){ - $clinit_ImmutableCollection(); - this.action_0.accept(arg0); -} -; -var Lcom_google_common_collect_ImmutableMapKeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapKeySet/lambda$0$Type', 1181); -function ImmutableMapValues(map_0){ - $clinit_ImmutableCollection(); - this.map_0 = map_0; -} - -defineClass(1178, 1980, $intern_25, ImmutableMapValues); -_.iterator_0 = function iterator_29(){ - return new ImmutableMapValues$1(this); -} -; -_.contains = function contains_18(object){ - return object != null && contains_19(new ImmutableMapValues$1(this), object); -} -; -_.iterator_1 = function iterator_28(){ - return new ImmutableMapValues$1(this); -} -; -_.size_1 = function size_22(){ - return this.map_0.size_1(); -} -; -_.spliterator_0 = function spliterator_22(){ - return map_2($entrySet_1(this.map_0).spliterator_0(), new ImmutableMapValues$0methodref$getValue$Type); -} -; -var Lcom_google_common_collect_ImmutableMapValues_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues', 1178); -function ImmutableMapValues$0methodref$getValue$Type(){ -} - -defineClass(1179, 1, {}, ImmutableMapValues$0methodref$getValue$Type); -_.apply_0 = function apply_10(arg0){ - return castTo(arg0, 42).getValue(); -} -; -var Lcom_google_common_collect_ImmutableMapValues$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/0methodref$getValue$Type', 1179); -function ImmutableMapValues$1(this$0){ - this.this$01 = this$0; - this.entryItr = $entrySet_1(this.this$01.map_0).iterator_1(); -} - -defineClass(626, 198, $intern_3, ImmutableMapValues$1); -_.hasNext_0 = function hasNext_7(){ - return this.entryItr.hasNext_0(); -} -; -_.next_1 = function next_8(){ - return castTo(this.entryItr.next_1(), 42).getValue(); -} -; -var Lcom_google_common_collect_ImmutableMapValues$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/1', 626); -function IndexedImmutableSet$0methodref$get$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1182, 1, {}, IndexedImmutableSet$0methodref$get$Type); -_.apply_2 = function apply_11(arg0){ - return $get_6(this.$$outer_0, arg0); -} -; -var Lcom_google_common_collect_IndexedImmutableSet$0methodref$get$Type_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/0methodref$get$Type', 1182); -function IndexedImmutableSet$1(this$0){ - $clinit_ImmutableList(); - this.this$01 = this$0; -} - -defineClass(752, 1999, $intern_26, IndexedImmutableSet$1); -_.delegateCollection = function delegateCollection(){ - return this.this$01; -} -; -_.get_0 = function get_20(index_0){ - return $get_6(this.this$01, index_0); -} -; -_.size_1 = function size_23(){ - return this.this$01.map_0.size_1(); -} -; -var Lcom_google_common_collect_IndexedImmutableSet$1_2_classLit = createForClass('com.google.common.collect', 'IndexedImmutableSet/1', 752); -function addAll_6(addTo, elementsToAdd){ - var c; - if (instanceOf(elementsToAdd, 14)) { - c = castTo(elementsToAdd, 14); - return addTo.addAll(c); - } - return addAll_7(addTo, castTo(checkNotNull(elementsToAdd), 20).iterator_0()); -} - -function all_0(iterable, predicate){ - return all_1(iterable.iterator_0(), predicate); -} - -function any_0(iterable, predicate){ - return indexOf_2(iterable.iterator_0(), predicate) != -1; -} - -function concat_0(inputs){ - return checkNotNull(inputs) , new FluentIterable$2(inputs); -} - -function filter_0(unfiltered, retainIfTrue){ - checkNotNull(unfiltered); - checkNotNull(retainIfTrue); - return new Iterables$4(unfiltered, retainIfTrue); -} - -function get_21(iterable){ - checkNotNull(iterable); - return get_22(new Iterators$ConcatenatedIterator(transform_2(iterable.val$inputs1.iterator_0(), new Iterables$10))); -} - -function getLast(iterable){ - var list; - if (iterable) { - list = iterable; - if (list.isEmpty()) { - throw toJs(new NoSuchElementException); - } - return list.get_0(list.size_1() - 1); - } - return getLast_0(iterable.iterator_0()); -} - -function isEmpty_13(iterable){ - if (instanceOf(iterable, 14)) { - return castTo(iterable, 14).isEmpty(); - } - return !iterable.iterator_0().hasNext_0(); -} - -function transform_1(fromIterable, function_0){ - checkNotNull(fromIterable); - checkNotNull(function_0); - return new Iterables$5(fromIterable, function_0); -} - -function Iterables$10(){ -} - -defineClass(44, 1, {}, Iterables$10); -_.apply_0 = function apply_12(iterable){ - return castTo(iterable, 20).iterator_0(); -} -; -_.equals_0 = function equals_23(other){ - return this === other; -} -; -var Lcom_google_common_collect_Iterables$10_2_classLit = createForClass('com.google.common.collect', 'Iterables/10', 44); -function $iterator_0(this$static){ - return filter_1(this$static.val$unfiltered1.iterator_0(), this$static.val$retainIfTrue2); -} - -function Iterables$4(val$unfiltered, val$retainIfTrue){ - this.val$unfiltered1 = val$unfiltered; - this.val$retainIfTrue2 = val$retainIfTrue; - FluentIterable.call(this); -} - -function lambda$0_0(retainIfTrue_0, action_1, a_2){ - retainIfTrue_0.test_0(a_2) && action_1.accept(a_2); -} - -defineClass(1042, 537, $intern_23, Iterables$4); -_.forEach_0 = function forEach_10(action){ - checkNotNull(action); - this.val$unfiltered1.forEach_0(new Iterables$4$lambda$0$Type(this.val$retainIfTrue2, action)); -} -; -_.iterator_0 = function iterator_30(){ - return $iterator_0(this); -} -; -var Lcom_google_common_collect_Iterables$4_2_classLit = createForClass('com.google.common.collect', 'Iterables/4', 1042); -function Iterables$4$lambda$0$Type(retainIfTrue_0, action_1){ - this.retainIfTrue_0 = retainIfTrue_0; - this.action_1 = action_1; -} - -defineClass(1043, 1, $intern_19, Iterables$4$lambda$0$Type); -_.accept = function accept_8(arg0){ - lambda$0_0(this.retainIfTrue_0, this.action_1, arg0); -} -; -var Lcom_google_common_collect_Iterables$4$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/4/lambda$0$Type', 1043); -function Iterables$5(val$fromIterable, val$function){ - this.val$fromIterable1 = val$fromIterable; - this.val$function2 = val$function; - FluentIterable.call(this); -} - -defineClass(1044, 537, $intern_23, Iterables$5); -_.forEach_0 = function forEach_11(action){ - checkNotNull(action); - $forEach_0(this.val$fromIterable1, new Iterables$5$lambda$0$Type(action, this.val$function2)); -} -; -_.iterator_0 = function iterator_31(){ - return transform_2(new AbstractEList$EIterator(this.val$fromIterable1), this.val$function2); -} -; -var Lcom_google_common_collect_Iterables$5_2_classLit = createForClass('com.google.common.collect', 'Iterables/5', 1044); -function Iterables$5$lambda$0$Type(action_0, function_1){ - this.action_0 = action_0; - this.function_1 = function_1; -} - -defineClass(1045, 1, $intern_19, Iterables$5$lambda$0$Type); -_.accept = function accept_9(arg0){ - this.action_0.accept($apply_27(arg0)); -} -; -var Lcom_google_common_collect_Iterables$5$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Iterables/5/lambda$0$Type', 1045); -function addAll_7(addTo, iterator){ - var wasModified; - checkNotNull(addTo); - checkNotNull(iterator); - wasModified = false; - while (iterator.hasNext_0()) { - wasModified = wasModified | addTo.add_2(iterator.next_1()); - } - return wasModified; -} - -function advance(iterator){ - var i; - checkNotNull(iterator); - checkArgument_0(true, 'numberToAdvance must be nonnegative'); - for (i = 0; i < 0 && $hasNext_1(iterator); i++) { - $next_0(iterator); - } - return i; -} - -function all_1(iterator, predicate){ - var element; - checkNotNull(predicate); - while (iterator.hasNext_0()) { - element = iterator.next_1(); - if (!$apply_18(castTo(element, 10))) { - return false; - } - } - return true; -} - -function clear_20(iterator){ - checkNotNull(iterator); - while (iterator.hasNext_0()) { - iterator.next_1(); - iterator.remove(); - } -} - -function contains_19(iterator, element){ - if (element == null) { - while (iterator.entryItr.hasNext_0()) { - if (castTo(iterator.entryItr.next_1(), 42).getValue() == null) { - return true; - } - } - } - else { - while (iterator.entryItr.hasNext_0()) { - if (equals_Ljava_lang_Object__Z__devirtual$(element, castTo(iterator.entryItr.next_1(), 42).getValue())) { - return true; - } - } - } - return false; -} - -function elementsEqual(iterator1, iterator2){ - var o1, o2; - while (iterator1.hasNext_0()) { - if (!iterator2.hasNext_0()) { - return false; - } - o1 = iterator1.next_1(); - o2 = iterator2.next_1(); - if (!(maskUndefined(o1) === maskUndefined(o2) || o1 != null && equals_Ljava_lang_Object__Z__devirtual$(o1, o2))) { - return false; - } - } - return !iterator2.hasNext_0(); -} - -function filter_1(unfiltered, retainIfTrue){ - checkNotNull(unfiltered); - checkNotNull(retainIfTrue); - return new Iterators$5(unfiltered, retainIfTrue); -} - -function get_22(iterator){ - var skipped; - skipped = advance(iterator); - if (!$hasNext_1(iterator)) { - throw toJs(new IndexOutOfBoundsException_0('position (0) must be less than the number of elements that remained (' + skipped + ')')); - } - return $next_0(iterator); -} - -function getLast_0(iterator){ - var current; - while (true) { - current = iterator.next_1(); - if (!iterator.hasNext_0()) { - return current; - } - } -} - -function getLast_1(iterator){ - return $hasNext_5(iterator.val$edgesIter2)?getLast_0(iterator):null; -} - -function getNext(iterator){ - return iterator.hasNext_0()?iterator.next_1():null; -} - -function getOnlyElement(iterator){ - var first, i, sb; - first = iterator.next_1(); - if (!iterator.hasNext_0()) { - return first; - } - sb = $append_10($append_11(new StringBuilder, 'expected one element but was: <'), first); - for (i = 0; i < 4 && iterator.hasNext_0(); i++) { - $append_10((sb.string += ', ' , sb), iterator.next_1()); - } - iterator.hasNext_0() && (sb.string += ', ...' , sb); - sb.string += '>'; - throw toJs(new IllegalArgumentException_0(sb.string)); -} - -function indexOf_2(iterator, predicate){ - var current, i; - checkNotNull_0(predicate, 'predicate'); - for (i = 0; iterator.hasNext_0(); i++) { - current = iterator.next_1(); - if (predicate.apply_1(current)) { - return i; - } - } - return -1; -} - -function size_24(iterator){ - var count; - count = 0; - while (iterator.hasNext_0()) { - iterator.next_1(); - count = add_20(count, 1); - } - return saturatedCast(count); -} - -function toString_25(iterator){ - var first, sb; - sb = $append_5(new StringBuilder, 91); - first = true; - while (iterator.hasNext_0()) { - first || (sb.string += ', ' , sb); - first = false; - $append_10(sb, iterator.next_1()); - } - return (sb.string += ']' , sb).string; -} - -function transform_2(fromIterator, function_0){ - checkNotNull(function_0); - return new Iterators$6(fromIterator, function_0); -} - -function unmodifiableIterator(iterator){ - var result; - checkNotNull(iterator); - if (instanceOf(iterator, 198)) { - result = castTo(iterator, 198); - return result; - } - return new Iterators$1(iterator); -} - -function Iterators$1(val$iterator){ - this.val$iterator1 = val$iterator; -} - -defineClass(1071, 198, $intern_3, Iterators$1); -_.hasNext_0 = function hasNext_8(){ - return this.val$iterator1.hasNext_0(); -} -; -_.next_1 = function next_9(){ - return this.val$iterator1.next_1(); -} -; -var Lcom_google_common_collect_Iterators$1_2_classLit = createForClass('com.google.common.collect', 'Iterators/1', 1071); -function Iterators$5(val$unfiltered, val$retainIfTrue){ - this.val$unfiltered1 = val$unfiltered; - this.val$retainIfTrue2 = val$retainIfTrue; -} - -defineClass(1072, 699, $intern_3, Iterators$5); -_.computeNext = function computeNext(){ - var element; - while (this.val$unfiltered1.hasNext_0()) { - element = this.val$unfiltered1.next_1(); - if (this.val$retainIfTrue2.apply_1(element)) { - return element; - } - } - return this.state = 2 , null; -} -; -var Lcom_google_common_collect_Iterators$5_2_classLit = createForClass('com.google.common.collect', 'Iterators/5', 1072); -function TransformedIterator(backingIterator){ - this.backingIterator = castTo(checkNotNull(backingIterator), 47); -} - -defineClass(487, 1, $intern_6); -_.forEachRemaining = function forEachRemaining_8(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_9(){ - return this.backingIterator.hasNext_0(); -} -; -_.next_1 = function next_10(){ - return this.transform_0(this.backingIterator.next_1()); -} -; -_.remove = function remove_30(){ - this.backingIterator.remove(); -} -; -var Lcom_google_common_collect_TransformedIterator_2_classLit = createForClass('com.google.common.collect', 'TransformedIterator', 487); -function Iterators$6($anonymous0, val$function){ - this.val$function2 = val$function; - TransformedIterator.call(this, $anonymous0); -} - -defineClass(1073, 487, $intern_6, Iterators$6); -_.transform_0 = function transform_3(from){ - return this.val$function2.apply_0(from); -} -; -var Lcom_google_common_collect_Iterators$6_2_classLit = createForClass('com.google.common.collect', 'Iterators/6', 1073); -function Iterators$9(val$value){ - this.val$value1 = val$value; -} - -defineClass(717, 198, $intern_3, Iterators$9); -_.hasNext_0 = function hasNext_10(){ - return !this.done_0; -} -; -_.next_1 = function next_11(){ - if (this.done_0) { - throw toJs(new NoSuchElementException); - } - this.done_0 = true; - return this.val$value1; -} -; -_.done_0 = false; -var Lcom_google_common_collect_Iterators$9_2_classLit = createForClass('com.google.common.collect', 'Iterators/9', 717); -function $clinit_Iterators$ArrayItr(){ - $clinit_Iterators$ArrayItr = emptyMethod; - EMPTY_1 = new Iterators$ArrayItr(initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1)); -} - -function Iterators$ArrayItr(array){ - AbstractIndexedListIterator_0.call(this, 0, 0); - this.array = array; - this.offset = 0; -} - -defineClass(1070, 386, $intern_4, Iterators$ArrayItr); -_.get_0 = function get_23(index_0){ - return this.array[this.offset + index_0]; -} -; -_.offset = 0; -var EMPTY_1; -var Lcom_google_common_collect_Iterators$ArrayItr_2_classLit = createForClass('com.google.common.collect', 'Iterators/ArrayItr', 1070); -function $getTopMetaIterator(this$static){ - while (!this$static.topMetaIterator || !this$static.topMetaIterator.hasNext_0()) { - if (!!this$static.metaIterators && !$isEmpty(this$static.metaIterators)) { - this$static.topMetaIterator = castTo($removeFirst(this$static.metaIterators), 47); - } - else { - return null; - } - } - return this$static.topMetaIterator; -} - -function $hasNext_1(this$static){ - var topConcat; - while (!castTo(checkNotNull(this$static.iterator), 47).hasNext_0()) { - this$static.topMetaIterator = $getTopMetaIterator(this$static); - if (!this$static.topMetaIterator) { - return false; - } - this$static.iterator = castTo(this$static.topMetaIterator.next_1(), 47); - if (instanceOf(this$static.iterator, 39)) { - topConcat = castTo(this$static.iterator, 39); - this$static.iterator = topConcat.iterator; - !this$static.metaIterators && (this$static.metaIterators = new ArrayDeque); - $addFirst(this$static.metaIterators, this$static.topMetaIterator); - if (topConcat.metaIterators) { - while (!$isEmpty(topConcat.metaIterators)) { - $addFirst(this$static.metaIterators, castTo($removeLast(topConcat.metaIterators), 47)); - } - } - this$static.topMetaIterator = topConcat.topMetaIterator; - } - } - return true; -} - -function $next_0(this$static){ - if ($hasNext_1(this$static)) { - this$static.toRemove = this$static.iterator; - return this$static.iterator.next_1(); - } - else { - throw toJs(new NoSuchElementException); - } -} - -function Iterators$ConcatenatedIterator(metaIterator){ - this.iterator = ($clinit_Iterators$ArrayItr() , EMPTY_1); - this.topMetaIterator = castTo(checkNotNull(metaIterator), 47); -} - -defineClass(39, 1, {39:1, 47:1}, Iterators$ConcatenatedIterator); -_.forEachRemaining = function forEachRemaining_9(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_11(){ - return $hasNext_1(this); -} -; -_.next_1 = function next_12(){ - return $next_0(this); -} -; -_.remove = function remove_31(){ - checkState_0(!!this.toRemove); - this.toRemove.remove(); - this.toRemove = null; -} -; -var Lcom_google_common_collect_Iterators$ConcatenatedIterator_2_classLit = createForClass('com.google.common.collect', 'Iterators/ConcatenatedIterator', 39); -function $compareTo(this$static, other){ - return this$static.ordinal - other.ordinal; -} - -function $name(this$static){ - return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; -} - -function $toString_3(this$static){ - return this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal; -} - -function Enum(name_0, ordinal){ - this.name_0 = name_0; - this.ordinal = ordinal; -} - -function createValueOfMap(enumConstants){ - var result, value_0, value$array, value$index, value$max; - result = {}; - for (value$array = enumConstants , value$index = 0 , value$max = value$array.length; value$index < value$max; ++value$index) { - value_0 = value$array[value$index]; - result[':' + (value_0.name_0 != null?value_0.name_0:'' + value_0.ordinal)] = value_0; - } - return result; -} - -function valueOf(map_0, name_0){ - var result; - checkCriticalNotNull(name_0); - result = map_0[':' + name_0]; - checkCriticalArgument_1(!!result, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [name_0])); - return result; -} - -function valueOf_0(enumType, name_0){ - var enumValueOfFunc; - enumValueOfFunc = (checkCriticalNotNull(enumType) , enumType).enumValueOfFunc; - checkCriticalArgument(!!enumValueOfFunc); - checkCriticalNotNull(name_0); - return enumValueOfFunc(name_0); -} - -defineClass(22, 1, {3:1, 35:1, 22:1}); -_.compareTo_0 = function compareTo_3(other){ - return $compareTo(this, castTo(other, 22)); -} -; -_.equals_0 = function equals_24(other){ - return this === other; -} -; -_.hashCode_1 = function hashCode_26(){ - return getHashCode_0(this); -} -; -_.toString_0 = function toString_26(){ - return $toString_3(this); -} -; -_.ordinal = 0; -var Ljava_lang_Enum_2_classLit = createForClass('java.lang', 'Enum', 22); -function $clinit_Iterators$EmptyModifiableIterator(){ - $clinit_Iterators$EmptyModifiableIterator = emptyMethod; - INSTANCE_2 = new Iterators$EmptyModifiableIterator; -} - -function Iterators$EmptyModifiableIterator(){ - Enum.call(this, 'INSTANCE', 0); -} - -function valueOf_1(name_0){ - $clinit_Iterators$EmptyModifiableIterator(); - return valueOf(($clinit_Iterators$EmptyModifiableIterator$Map() , $MAP), name_0); -} - -function values_12(){ - $clinit_Iterators$EmptyModifiableIterator(); - return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]); -} - -defineClass(538, 22, {538:1, 3:1, 35:1, 22:1, 47:1}, Iterators$EmptyModifiableIterator); -_.forEachRemaining = function forEachRemaining_10(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_12(){ - return false; -} -; -_.next_1 = function next_13(){ - throw toJs(new NoSuchElementException); -} -; -_.remove = function remove_32(){ - checkState_0(false); -} -; -var INSTANCE_2; -var Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit = createForEnum('com.google.common.collect', 'Iterators/EmptyModifiableIterator', 538, Ljava_lang_Enum_2_classLit, values_12, valueOf_1); -function $clinit_Iterators$EmptyModifiableIterator$Map(){ - $clinit_Iterators$EmptyModifiableIterator$Map = emptyMethod; - $MAP = createValueOfMap(($clinit_Iterators$EmptyModifiableIterator() , stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_collect_Iterators$EmptyModifiableIterator_2_classLit, 1), $intern_36, 538, 0, [INSTANCE_2]))); -} - -var $MAP; -function LinkedHashMultimapGwtSerializationDependencies(map_0){ - AbstractSetMultimap.call(this, map_0); -} - -defineClass(1834, 619, $intern_5); -var Lcom_google_common_collect_LinkedHashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimapGwtSerializationDependencies', 1834); -function LinkedHashMultimap(){ - LinkedHashMultimapGwtSerializationDependencies.call(this, new LinkedHashMap_0(capacity_0(16))); - checkNonnegative(2, 'expectedValuesPerKey'); - this.valueSetCapacity = 2; - this.multimapHeaderEntry = new LinkedHashMultimap$ValueEntry(null, null, 0, null); - succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); -} - -function succeedsInMultimap(pred, succ){ - pred.successorInMultimap = succ; - succ.predecessorInMultimap = pred; -} - -function succeedsInValueSet(pred, succ){ - pred.setSuccessorInValueSet(succ); - succ.setPredecessorInValueSet(pred); -} - -defineClass(1835, 1834, $intern_5, LinkedHashMultimap); -_.createCollection = function createCollection_7(){ - return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); -} -; -_.clear_0 = function clear_21(){ - $clear(this); - succeedsInMultimap(this.multimapHeaderEntry, this.multimapHeaderEntry); -} -; -_.createCollection_1 = function createCollection_8(){ - return new LinkedHashSet_0(capacity_0(this.valueSetCapacity)); -} -; -_.createCollection_0 = function createCollection_9(key){ - return new LinkedHashMultimap$ValueSet(this, key, this.valueSetCapacity); -} -; -_.entryIterator = function entryIterator_4(){ - return new LinkedHashMultimap$1(this); -} -; -_.entrySpliterator = function entrySpliterator_3(){ - var result; - return new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17); -} -; -_.keySet_0 = function keySet_12(){ - var result; - return result = this.keySet , !result?(this.keySet = new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result; -} -; -_.valueIterator_0 = function valueIterator_0(){ - return new Maps$2(new LinkedHashMultimap$1(this)); -} -; -_.valueSpliterator = function valueSpliterator_0(){ - var result; - return map_2(new Spliterators$IteratorSpliterator((result = this.entries_0 , castTo(!result?(this.entries_0 = new AbstractMultimap$EntrySet(this)):result, 21)), 17), new LinkedHashMultimap$0methodref$getValue$Type); -} -; -_.valueSetCapacity = 2; -var Lcom_google_common_collect_LinkedHashMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap', 1835); -function LinkedHashMultimap$0methodref$getValue$Type(){ -} - -defineClass(1838, 1, {}, LinkedHashMultimap$0methodref$getValue$Type); -_.apply_0 = function apply_13(arg0){ - return castTo(arg0, 42).getValue(); -} -; -var Lcom_google_common_collect_LinkedHashMultimap$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/0methodref$getValue$Type', 1838); -function $next_1(this$static){ - var result; - if (this$static.nextEntry == this$static.this$01.multimapHeaderEntry) { - throw toJs(new NoSuchElementException); - } - result = this$static.nextEntry; - this$static.toRemove = result; - this$static.nextEntry = this$static.nextEntry.successorInMultimap; - return result; -} - -function LinkedHashMultimap$1(this$0){ - this.this$01 = this$0; - this.nextEntry = this.this$01.multimapHeaderEntry.successorInMultimap; -} - -defineClass(824, 1, $intern_6, LinkedHashMultimap$1); -_.forEachRemaining = function forEachRemaining_11(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_14(){ - return $next_1(this); -} -; -_.hasNext_0 = function hasNext_13(){ - return this.nextEntry != this.this$01.multimapHeaderEntry; -} -; -_.remove = function remove_33(){ - checkState_0(!!this.toRemove); - $remove_0(this.this$01, this.toRemove.key, this.toRemove.value_0); - this.toRemove = null; -} -; -var Lcom_google_common_collect_LinkedHashMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/1', 824); -function LinkedHashMultimap$ValueEntry(key, value_0, smearedValueHash, nextInValueBucket){ - ImmutableEntry.call(this, key, value_0); - this.smearedValueHash = smearedValueHash; - this.nextInValueBucket = nextInValueBucket; -} - -defineClass(330, 238, {345:1, 238:1, 330:1, 2020:1, 3:1, 42:1}, LinkedHashMultimap$ValueEntry); -_.getSuccessorInValueSet = function getSuccessorInValueSet(){ - return this.successorInValueSet; -} -; -_.setPredecessorInValueSet = function setPredecessorInValueSet(entry){ - this.predecessorInValueSet = entry; -} -; -_.setSuccessorInValueSet = function setSuccessorInValueSet(entry){ - this.successorInValueSet = entry; -} -; -_.smearedValueHash = 0; -var Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueEntry', 330); -function $rehashIfNecessary_0(this$static){ - var bucket, entry, hashTable, mask, valueEntry; - if (needsResizing(this$static.size_0, this$static.hashTable.length)) { - hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, this$static.hashTable.length * 2, 0, 1); - this$static.hashTable = hashTable; - mask = hashTable.length - 1; - for (entry = this$static.firstEntry; entry != this$static; entry = entry.getSuccessorInValueSet()) { - valueEntry = castTo(entry, 330); - bucket = valueEntry.smearedValueHash & mask; - valueEntry.nextInValueBucket = hashTable[bucket]; - hashTable[bucket] = valueEntry; - } - } -} - -function $remove_3(this$static, o){ - var bucket, entry, prev, smearedHash; - smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); - bucket = smearedHash & this$static.hashTable.length - 1; - prev = null; - for (entry = this$static.hashTable[bucket]; entry; prev = entry , entry = entry.nextInValueBucket) { - if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { - !prev?(this$static.hashTable[bucket] = entry.nextInValueBucket):(prev.nextInValueBucket = entry.nextInValueBucket); - succeedsInValueSet(entry.predecessorInValueSet, entry.successorInValueSet); - succeedsInMultimap(entry.predecessorInMultimap, entry.successorInMultimap); - --this$static.size_0; - ++this$static.modCount; - return true; - } - } - return false; -} - -function LinkedHashMultimap$ValueSet(this$0, key, expectedValues){ - var hashTable, tableSize; - this.this$01 = this$0; - this.key = key; - this.firstEntry = this; - this.lastEntry = this; - tableSize = closedTableSize(expectedValues); - hashTable = initUnidimensionalArray(Lcom_google_common_collect_LinkedHashMultimap$ValueEntry_2_classLit, $intern_34, 330, tableSize, 0, 1); - this.hashTable = hashTable; -} - -defineClass(1836, 1970, {2020:1, 20:1, 28:1, 14:1, 21:1}, LinkedHashMultimap$ValueSet); -_.add_2 = function add_10(value_0){ - var bucket, entry, newEntry, rowHead, smearedHash; - smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(value_0 == null?0:hashCode__I__devirtual$(value_0), $intern_33)), 15))); - bucket = smearedHash & this.hashTable.length - 1; - rowHead = this.hashTable[bucket]; - for (entry = rowHead; entry; entry = entry.nextInValueBucket) { - if (entry.smearedValueHash == smearedHash && equal(entry.value_0, value_0)) { - return false; - } - } - newEntry = new LinkedHashMultimap$ValueEntry(this.key, value_0, smearedHash, rowHead); - succeedsInValueSet(this.lastEntry, newEntry); - newEntry.successorInValueSet = this; - this.lastEntry = newEntry; - succeedsInMultimap(this.this$01.multimapHeaderEntry.predecessorInMultimap, newEntry); - succeedsInMultimap(newEntry, this.this$01.multimapHeaderEntry); - this.hashTable[bucket] = newEntry; - ++this.size_0; - ++this.modCount; - $rehashIfNecessary_0(this); - return true; -} -; -_.clear_0 = function clear_22(){ - var entry, valueEntry; - fill_2(this.hashTable, null); - this.size_0 = 0; - for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { - valueEntry = castTo(entry, 330); - succeedsInMultimap(valueEntry.predecessorInMultimap, valueEntry.successorInMultimap); - } - this.firstEntry = this; - this.lastEntry = this; - ++this.modCount; -} -; -_.contains = function contains_20(o){ - var entry, smearedHash; - smearedHash = toInt_0(mul_0($intern_32, rotateLeft(toInt_0(mul_0(o == null?0:hashCode__I__devirtual$(o), $intern_33)), 15))); - for (entry = this.hashTable[smearedHash & this.hashTable.length - 1]; entry; entry = entry.nextInValueBucket) { - if (entry.smearedValueHash == smearedHash && equal(entry.value_0, o)) { - return true; - } - } - return false; -} -; -_.forEach_0 = function forEach_12(action){ - var entry; - checkNotNull(action); - for (entry = this.firstEntry; entry != this; entry = entry.getSuccessorInValueSet()) { - action.accept(castTo(entry, 330).value_0); - } -} -; -_.getSuccessorInValueSet = function getSuccessorInValueSet_0(){ - return this.firstEntry; -} -; -_.iterator_0 = function iterator_32(){ - return new LinkedHashMultimap$ValueSet$1(this); -} -; -_.remove_1 = function remove_34(o){ - return $remove_3(this, o); -} -; -_.setPredecessorInValueSet = function setPredecessorInValueSet_0(entry){ - this.lastEntry = entry; -} -; -_.setSuccessorInValueSet = function setSuccessorInValueSet_0(entry){ - this.firstEntry = entry; -} -; -_.size_1 = function size_25(){ - return this.size_0; -} -; -_.modCount = 0; -_.size_0 = 0; -var Lcom_google_common_collect_LinkedHashMultimap$ValueSet_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet', 1836); -function $checkForComodification(this$static){ - if (this$static.this$11.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function LinkedHashMultimap$ValueSet$1(this$1){ - this.this$11 = this$1; - this.nextEntry = this.this$11.firstEntry; - this.expectedModCount = this.this$11.modCount; -} - -defineClass(1837, 1, $intern_6, LinkedHashMultimap$ValueSet$1); -_.forEachRemaining = function forEachRemaining_12(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_14(){ - return $checkForComodification(this) , this.nextEntry != this.this$11; -} -; -_.next_1 = function next_15(){ - var entry, result; - $checkForComodification(this); - if (this.nextEntry == this.this$11) { - throw toJs(new NoSuchElementException); - } - entry = castTo(this.nextEntry, 330); - result = entry.value_0; - this.toRemove = entry; - this.nextEntry = entry.successorInValueSet; - return result; -} -; -_.remove = function remove_35(){ - $checkForComodification(this); - checkState_0(!!this.toRemove); - $remove_3(this.this$11, this.toRemove.value_0); - this.expectedModCount = this.this$11.modCount; - this.toRemove = null; -} -; -_.expectedModCount = 0; -var Lcom_google_common_collect_LinkedHashMultimap$ValueSet$1_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/ValueSet/1', 1837); -function $addNode(this$static, key, value_0, nextSibling){ - var keyList, keyTail, node; - node = new LinkedListMultimap$Node(key, value_0); - if (!this$static.head) { - this$static.head = this$static.tail = node; - $put_6(this$static.keyToKeyList, key, new LinkedListMultimap$KeyList(node)); - ++this$static.modCount; - } - else if (!nextSibling) { - this$static.tail.next_0 = node; - node.previous = this$static.tail; - this$static.tail = node; - keyList = castTo($get_10(this$static.keyToKeyList, key), 283); - if (!keyList) { - $put_6(this$static.keyToKeyList, key, keyList = new LinkedListMultimap$KeyList(node)); - ++this$static.modCount; - } - else { - ++keyList.count; - keyTail = keyList.tail; - keyTail.nextSibling = node; - node.previousSibling = keyTail; - keyList.tail = node; - } - } - else { - keyList = castTo($get_10(this$static.keyToKeyList, key), 283); - ++keyList.count; - node.previous = nextSibling.previous; - node.previousSibling = nextSibling.previousSibling; - node.next_0 = nextSibling; - node.nextSibling = nextSibling; - !nextSibling.previousSibling?(castTo($get_10(this$static.keyToKeyList, key), 283).head = node):(nextSibling.previousSibling.nextSibling = node); - !nextSibling.previous?(this$static.head = node):(nextSibling.previous.next_0 = node); - nextSibling.previous = node; - nextSibling.previousSibling = node; - } - ++this$static.size_0; - return node; -} - -function $clear_3(this$static){ - this$static.head = null; - this$static.tail = null; - $reset(this$static.keyToKeyList); - this$static.size_0 = 0; - ++this$static.modCount; -} - -function $containsKey_1(this$static, key){ - return $containsKey_3(this$static.keyToKeyList, key); -} - -function $removeAll_2(this$static, key){ - var oldValues; - oldValues = unmodifiableList(newArrayList_0(new LinkedListMultimap$ValueForKeyIterator(this$static, key))); - clear_20(new LinkedListMultimap$ValueForKeyIterator(this$static, key)); - return oldValues; -} - -function $removeNode(this$static, node){ - var keyList; - node.previous?(node.previous.next_0 = node.next_0):(this$static.head = node.next_0); - node.next_0?(node.next_0.previous = node.previous):(this$static.tail = node.previous); - if (!node.previousSibling && !node.nextSibling) { - keyList = castTo($remove_6(this$static.keyToKeyList, node.key), 283); - keyList.count = 0; - ++this$static.modCount; - } - else { - keyList = castTo($get_10(this$static.keyToKeyList, node.key), 283); - --keyList.count; - !node.previousSibling?(keyList.head = node.nextSibling):(node.previousSibling.nextSibling = node.nextSibling); - !node.nextSibling?(keyList.tail = node.previousSibling):(node.nextSibling.previousSibling = node.previousSibling); - } - --this$static.size_0; -} - -function LinkedListMultimap(){ - this.keyToKeyList = new HashMap_0(capacity_0(12)); -} - -function checkElement(node){ - if (!node) { - throw toJs(new NoSuchElementException); - } -} - -defineClass(766, 1986, $intern_5, LinkedListMultimap); -_.asMap_0 = function asMap_4(){ - var result; - return result = this.asMap , !result?(this.asMap = new Multimaps$AsMap(this)):result; -} -; -_.equals_0 = function equals_25(object){ - return equalsImpl_1(this, object); -} -; -_.get_1 = function get_24(key){ - return new LinkedListMultimap$1(this, key); -} -; -_.removeAll = function removeAll_6(key){ - return $removeAll_2(this, key); -} -; -_.clear_0 = function clear_23(){ - $clear_3(this); -} -; -_.containsKey = function containsKey_7(key){ - return $containsKey_1(this, key); -} -; -_.createAsMap = function createAsMap_0(){ - return new Multimaps$AsMap(this); -} -; -_.createKeySet = function createKeySet_8(){ - return new LinkedListMultimap$1KeySetImpl(this); -} -; -_.get_2 = function get_25(key){ - return new LinkedListMultimap$1(this, key); -} -; -_.isEmpty = function isEmpty_14(){ - return !this.head; -} -; -_.removeAll_0 = function removeAll_7(key){ - return $removeAll_2(this, key); -} -; -_.size_1 = function size_26(){ - return this.size_0; -} -; -_.modCount = 0; -_.size_0 = 0; -var Lcom_google_common_collect_LinkedListMultimap_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap', 766); -function $equals_2(this$static, o){ - var elem, elem$iterator, elemOther, iterOther, other; - if (maskUndefined(o) === maskUndefined(this$static)) { - return true; - } - if (!instanceOf(o, 15)) { - return false; - } - other = castTo(o, 15); - if (this$static.size_1() != other.size_1()) { - return false; - } - iterOther = other.iterator_0(); - for (elem$iterator = this$static.iterator_0(); elem$iterator.hasNext_0();) { - elem = elem$iterator.next_1(); - elemOther = iterOther.next_1(); - if (!(maskUndefined(elem) === maskUndefined(elemOther) || elem != null && equals_Ljava_lang_Object__Z__devirtual$(elem, elemOther))) { - return false; - } - } - return true; -} - -function $indexOf(this$static, toFind){ - var i, n; - for (i = 0 , n = this$static.size_1(); i < n; ++i) { - if (equals_57(toFind, this$static.get_0(i))) { - return i; - } - } - return -1; -} - -defineClass(52, 28, $intern_37); -_.sort_0 = function sort_2(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_23(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.add_3 = function add_11(index_0, element){ - throw toJs(new UnsupportedOperationException_0('Add not supported on this list')); -} -; -_.add_2 = function add_12(obj){ - this.add_3(this.size_1(), obj); - return true; -} -; -_.addAll_0 = function addAll_8(index_0, c){ - var changed, e, e$iterator; - checkCriticalNotNull(c); - changed = false; - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - this.add_3(index_0++, e); - changed = true; - } - return changed; -} -; -_.clear_0 = function clear_24(){ - this.removeRange(0, this.size_1()); -} -; -_.equals_0 = function equals_26(o){ - return $equals_2(this, o); -} -; -_.hashCode_1 = function hashCode_27(){ - return hashCode_48(this); -} -; -_.indexOf_0 = function indexOf_3(toFind){ - return $indexOf(this, toFind); -} -; -_.iterator_0 = function iterator_33(){ - return new AbstractList$IteratorImpl(this); -} -; -_.listIterator_0 = function listIterator_4(){ - return this.listIterator_1(0); -} -; -_.listIterator_1 = function listIterator_5(from){ - return new AbstractList$ListIteratorImpl(this, from); -} -; -_.remove_2 = function remove_36(index_0){ - throw toJs(new UnsupportedOperationException_0('Remove not supported on this list')); -} -; -_.removeRange = function removeRange(fromIndex, endIndex){ - var i, iter; - iter = this.listIterator_1(fromIndex); - for (i = fromIndex; i < endIndex; ++i) { - iter.next_1(); - iter.remove(); - } -} -; -_.set_2 = function set_5(index_0, o){ - throw toJs(new UnsupportedOperationException_0('Set not supported on this list')); -} -; -_.subList = function subList_5(fromIndex, toIndex){ - return new AbstractList$SubList(this, fromIndex, toIndex); -} -; -_.modCount = 0; -var Ljava_util_AbstractList_2_classLit = createForClass('java.util', 'AbstractList', 52); -function $add_0(this$static, index_0, element){ - var iter; - iter = this$static.listIterator_1(index_0); - iter.add_1(element); -} - -function $addAll_0(this$static, index_0, c){ - var e, e$iterator, iter, modified; - checkCriticalNotNull(c); - modified = false; - iter = this$static.listIterator_1(index_0); - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - iter.add_1(e); - modified = true; - } - return modified; -} - -function $get_7(this$static, index_0){ - var iter; - iter = this$static.listIterator_1(index_0); - try { - return iter.next_1(); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 109)) { - throw toJs(new IndexOutOfBoundsException_0("Can't get element " + index_0)); - } - else - throw toJs($e0); - } -} - -function $remove_4(this$static, index_0){ - var iter, old; - iter = this$static.listIterator_1(index_0); - try { - old = iter.next_1(); - iter.remove(); - return old; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 109)) { - throw toJs(new IndexOutOfBoundsException_0("Can't remove element " + index_0)); - } - else - throw toJs($e0); - } -} - -defineClass(1964, 52, $intern_37); -_.add_3 = function add_13(index_0, element){ - $add_0(this, index_0, element); -} -; -_.addAll_0 = function addAll_9(index_0, c){ - return $addAll_0(this, index_0, c); -} -; -_.get_0 = function get_26(index_0){ - return $get_7(this, index_0); -} -; -_.iterator_0 = function iterator_34(){ - return this.listIterator_1(0); -} -; -_.remove_2 = function remove_37(index_0){ - return $remove_4(this, index_0); -} -; -_.set_2 = function set_6(index_0, element){ - var iter, old; - iter = this.listIterator_1(index_0); - try { - old = iter.next_1(); - iter.set_1(element); - return old; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 109)) { - throw toJs(new IndexOutOfBoundsException_0("Can't set element " + index_0)); - } - else - throw toJs($e0); - } -} -; -var Ljava_util_AbstractSequentialList_2_classLit = createForClass('java.util', 'AbstractSequentialList', 1964); -function $listIterator_0(this$static, index_0){ - return new LinkedListMultimap$ValueForKeyIterator_0(this$static.this$01, this$static.val$key2, index_0); -} - -function LinkedListMultimap$1(this$0, val$key){ - this.this$01 = this$0; - this.val$key2 = val$key; -} - -defineClass(636, 1964, $intern_37, LinkedListMultimap$1); -_.listIterator_1 = function listIterator_6(index_0){ - return $listIterator_0(this, index_0); -} -; -_.size_1 = function size_27(){ - var keyList; - keyList = castTo($get_10(this.this$01.keyToKeyList, this.val$key2), 283); - return !keyList?0:keyList.count; -} -; -var Lcom_google_common_collect_LinkedListMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1', 636); -function LinkedListMultimap$1KeySetImpl(this$0){ - this.this$01 = this$0; -} - -defineClass(1297, 1970, $intern_10, LinkedListMultimap$1KeySetImpl); -_.contains = function contains_21(key){ - return $containsKey_1(this.this$01, key); -} -; -_.iterator_0 = function iterator_35(){ - return new LinkedListMultimap$DistinctKeyIterator(this.this$01); -} -; -_.remove_1 = function remove_38(o){ - return !$removeAll_2(this.this$01, o).list.isEmpty(); -} -; -_.size_1 = function size_28(){ - return $size_2(this.this$01.keyToKeyList); -} -; -var Lcom_google_common_collect_LinkedListMultimap$1KeySetImpl_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1KeySetImpl', 1297); -function $checkForConcurrentModification(this$static){ - if (this$static.this$01.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function LinkedListMultimap$DistinctKeyIterator(this$0){ - this.this$01 = this$0; - this.seenKeys = new HashSet_0(capacity_0($keySet(this.this$01).size_1())); - this.next_0 = this.this$01.head; - this.expectedModCount = this.this$01.modCount; -} - -defineClass(1296, 1, $intern_6, LinkedListMultimap$DistinctKeyIterator); -_.forEachRemaining = function forEachRemaining_13(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_15(){ - $checkForConcurrentModification(this); - return !!this.next_0; -} -; -_.next_1 = function next_16(){ - $checkForConcurrentModification(this); - checkElement(this.next_0); - this.current = this.next_0; - $add_6(this.seenKeys, this.current.key); - do { - this.next_0 = this.next_0.next_0; - } - while (!!this.next_0 && !$add_6(this.seenKeys, this.next_0.key)); - return this.current.key; -} -; -_.remove = function remove_39(){ - $checkForConcurrentModification(this); - checkState_0(!!this.current); - clear_20(new LinkedListMultimap$ValueForKeyIterator(this.this$01, this.current.key)); - this.current = null; - this.expectedModCount = this.this$01.modCount; -} -; -_.expectedModCount = 0; -var Lcom_google_common_collect_LinkedListMultimap$DistinctKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/DistinctKeyIterator', 1296); -function LinkedListMultimap$KeyList(firstNode){ - this.head = firstNode; - this.tail = firstNode; - firstNode.previousSibling = null; - firstNode.nextSibling = null; - this.count = 1; -} - -defineClass(283, 1, {283:1}, LinkedListMultimap$KeyList); -_.count = 0; -var Lcom_google_common_collect_LinkedListMultimap$KeyList_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/KeyList', 283); -function LinkedListMultimap$Node(key, value_0){ - this.key = key; - this.value_0 = value_0; -} - -defineClass(1295, 345, $intern_15, LinkedListMultimap$Node); -_.getKey = function getKey_3(){ - return this.key; -} -; -_.getValue = function getValue_5(){ - return this.value_0; -} -; -_.setValue = function setValue_6(newValue){ - var result; - result = this.value_0; - this.value_0 = newValue; - return result; -} -; -var Lcom_google_common_collect_LinkedListMultimap$Node_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/Node', 1295); -function $next_2(this$static){ - checkElement(this$static.next_0); - this$static.previous = this$static.current = this$static.next_0; - this$static.next_0 = this$static.next_0.nextSibling; - ++this$static.nextIndex; - return this$static.current.value_0; -} - -function $previous(this$static){ - checkElement(this$static.previous); - this$static.next_0 = this$static.current = this$static.previous; - this$static.previous = this$static.previous.previousSibling; - --this$static.nextIndex; - return this$static.current.value_0; -} - -function LinkedListMultimap$ValueForKeyIterator(this$0, key){ - var keyList; - this.this$01 = this$0; - this.key = key; - keyList = castTo($get_10(this$0.keyToKeyList, key), 283); - this.next_0 = !keyList?null:keyList.head; -} - -function LinkedListMultimap$ValueForKeyIterator_0(this$0, key, index_0){ - var keyList, size_0; - this.this$01 = this$0; - keyList = castTo($get_10(this$0.keyToKeyList, key), 283); - size_0 = !keyList?0:keyList.count; - checkPositionIndex(index_0, size_0); - if (index_0 >= (size_0 / 2 | 0)) { - this.previous = !keyList?null:keyList.tail; - this.nextIndex = size_0; - while (index_0++ < size_0) { - $previous(this); - } - } - else { - this.next_0 = !keyList?null:keyList.head; - while (index_0-- > 0) { - $next_2(this); - } - } - this.key = key; - this.current = null; -} - -defineClass(560, 1, $intern_14, LinkedListMultimap$ValueForKeyIterator, LinkedListMultimap$ValueForKeyIterator_0); -_.forEachRemaining = function forEachRemaining_14(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_14(value_0){ - this.previous = $addNode(this.this$01, this.key, value_0, this.next_0); - ++this.nextIndex; - this.current = null; -} -; -_.hasNext_0 = function hasNext_16(){ - return !!this.next_0; -} -; -_.hasPrevious = function hasPrevious_1(){ - return !!this.previous; -} -; -_.next_1 = function next_17(){ - return $next_2(this); -} -; -_.nextIndex_0 = function nextIndex_2(){ - return this.nextIndex; -} -; -_.previous_0 = function previous_2(){ - return $previous(this); -} -; -_.previousIndex = function previousIndex_1(){ - return this.nextIndex - 1; -} -; -_.remove = function remove_40(){ - checkState_0(!!this.current); - if (this.current != this.next_0) { - this.previous = this.current.previousSibling; - --this.nextIndex; - } - else { - this.next_0 = this.current.nextSibling; - } - $removeNode(this.this$01, this.current); - this.current = null; -} -; -_.set_1 = function set_7(value_0){ - checkState(!!this.current); - this.current.value_0 = value_0; -} -; -_.nextIndex = 0; -var Lcom_google_common_collect_LinkedListMultimap$ValueForKeyIterator_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/ValueForKeyIterator', 560); -function computeArrayListCapacity(arraySize){ - checkNonnegative(arraySize, 'arraySize'); - return saturatedCast(add_20(add_20(5, arraySize), arraySize / 10 | 0)); -} - -function equalsImpl(thisList, other){ - var i, otherList, size_0; - if (maskUndefined(other) === maskUndefined(checkNotNull(thisList))) { - return true; - } - if (!instanceOf(other, 15)) { - return false; - } - otherList = castTo(other, 15); - size_0 = thisList.size_1(); - if (size_0 != otherList.size_1()) { - return false; - } - if (instanceOf(otherList, 54)) { - for (i = 0; i < size_0; i++) { - if (!equal(thisList.get_0(i), otherList.get_0(i))) { - return false; - } - } - return true; - } - else { - return elementsEqual(thisList.iterator_0(), otherList.iterator_0()); - } -} - -function hashCodeImpl(list){ - var hashCode, o, o$iterator; - hashCode = 1; - for (o$iterator = list.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - hashCode = 31 * hashCode + (o == null?0:hashCode__I__devirtual$(o)); - hashCode = ~~hashCode; - } - return hashCode; -} - -function indexOfRandomAccess(list, element){ - var i, size_0; - size_0 = list.size_1(); - if (element == null) { - for (i = 0; i < size_0; i++) { - if (list.get_0(i) == null) { - return i; - } - } - } - else { - for (i = 0; i < size_0; i++) { - if (equals_Ljava_lang_Object__Z__devirtual$(element, list.get_0(i))) { - return i; - } - } - } - return -1; -} - -function newArrayList(elements){ - checkNotNull(elements); - return instanceOf(elements, 14)?new ArrayList_1(castTo(elements, 14)):newArrayList_0(elements.iterator_0()); -} - -function newArrayList_0(elements){ - var list; - list = new ArrayList; - addAll_7(list, elements); - return list; -} - -function newArrayList_1(elements){ - var capacity, list; - checkNotNull(elements); - capacity = computeArrayListCapacity(elements.length); - list = new ArrayList_0(capacity); - addAll_15(list, elements); - return list; -} - -function newArrayListWithCapacity(initialArraySize){ - checkNonnegative(initialArraySize, 'initialArraySize'); - return new ArrayList_0(initialArraySize); -} - -function newArrayListWithExpectedSize(estimatedSize){ - return new ArrayList_0((checkNonnegative(estimatedSize, 'arraySize') , saturatedCast(add_20(add_20(5, estimatedSize), estimatedSize / 10 | 0)))); -} - -function newLinkedList(elements){ - var list; - list = new LinkedList; - addAll_6(list, elements); - return list; -} - -function reverse_0(list){ - return instanceOf(list, 152)?$reverse(castTo(list, 152)):instanceOf(list, 131)?castTo(list, 131).forwardList:instanceOf(list, 54)?new Lists$RandomAccessReverseList(list):new Lists$ReverseList(list); -} - -defineClass(1018, 52, $intern_37); -_.add_3 = function add_15(index_0, element){ - this.backingList.add_3(index_0, element); -} -; -_.addAll_0 = function addAll_10(index_0, c){ - return this.backingList.addAll_0(index_0, c); -} -; -_.contains = function contains_22(o){ - return this.backingList.contains(o); -} -; -_.get_0 = function get_27(index_0){ - return this.backingList.get_0(index_0); -} -; -_.remove_2 = function remove_41(index_0){ - return this.backingList.remove_2(index_0); -} -; -_.set_2 = function set_8(index_0, element){ - return this.backingList.set_2(index_0, element); -} -; -_.size_1 = function size_29(){ - return this.backingList.size_1(); -} -; -var Lcom_google_common_collect_Lists$AbstractListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/AbstractListWrapper', 1018); -defineClass(1019, 1018, $intern_38); -var Lcom_google_common_collect_Lists$RandomAccessListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessListWrapper', 1019); -function Lists$1($anonymous0){ - this.backingList = castTo(checkNotNull($anonymous0), 15); -} - -defineClass(1021, 1019, $intern_38, Lists$1); -_.listIterator_1 = function listIterator_7(index_0){ - return this.backingList.listIterator_1(index_0); -} -; -var Lcom_google_common_collect_Lists$1_2_classLit = createForClass('com.google.common.collect', 'Lists/1', 1021); -function $listIterator_1(this$static, index_0){ - var forwardIterator, start_0; - start_0 = $reversePosition(this$static, index_0); - forwardIterator = this$static.forwardList.listIterator_1(start_0); - return new Lists$ReverseList$1(this$static, forwardIterator); -} - -function $reverseIndex(this$static, index_0){ - var size_0; - size_0 = this$static.forwardList.size_1(); - checkElementIndex(index_0, size_0); - return size_0 - 1 - index_0; -} - -function $reversePosition(this$static, index_0){ - var size_0; - size_0 = this$static.forwardList.size_1(); - checkPositionIndex(index_0, size_0); - return size_0 - index_0; -} - -function Lists$ReverseList(forwardList){ - this.forwardList = castTo(checkNotNull(forwardList), 15); -} - -defineClass(131, 52, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Lists$ReverseList); -_.add_3 = function add_16(index_0, element){ - this.forwardList.add_3($reversePosition(this, index_0), element); -} -; -_.clear_0 = function clear_25(){ - this.forwardList.clear_0(); -} -; -_.get_0 = function get_28(index_0){ - return this.forwardList.get_0($reverseIndex(this, index_0)); -} -; -_.iterator_0 = function iterator_36(){ - return $listIterator_1(this, 0); -} -; -_.listIterator_1 = function listIterator_8(index_0){ - return $listIterator_1(this, index_0); -} -; -_.remove_2 = function remove_42(index_0){ - return this.forwardList.remove_2($reverseIndex(this, index_0)); -} -; -_.removeRange = function removeRange_0(fromIndex, toIndex){ - (checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex)))).clear_0(); -} -; -_.set_2 = function set_9(index_0, element){ - return this.forwardList.set_2($reverseIndex(this, index_0), element); -} -; -_.size_1 = function size_30(){ - return this.forwardList.size_1(); -} -; -_.subList = function subList_6(fromIndex, toIndex){ - return checkPositionIndexes(fromIndex, toIndex, this.forwardList.size_1()) , reverse_0(this.forwardList.subList($reversePosition(this, toIndex), $reversePosition(this, fromIndex))); -} -; -var Lcom_google_common_collect_Lists$ReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList', 131); -function Lists$RandomAccessReverseList(forwardList){ - Lists$ReverseList.call(this, forwardList); -} - -defineClass(280, 131, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, Lists$RandomAccessReverseList); -var Lcom_google_common_collect_Lists$RandomAccessReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessReverseList', 280); -function $next_3(this$static){ - if (!this$static.val$forwardIterator2.hasPrevious()) { - throw toJs(new NoSuchElementException); - } - this$static.canRemoveOrSet = true; - return this$static.val$forwardIterator2.previous_0(); -} - -function Lists$ReverseList$1(this$1, val$forwardIterator){ - this.this$11 = this$1; - this.val$forwardIterator2 = val$forwardIterator; -} - -defineClass(1020, 1, $intern_14, Lists$ReverseList$1); -_.forEachRemaining = function forEachRemaining_15(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_17(e){ - this.val$forwardIterator2.add_1(e); - this.val$forwardIterator2.previous_0(); - this.canRemoveOrSet = false; -} -; -_.hasNext_0 = function hasNext_17(){ - return this.val$forwardIterator2.hasPrevious(); -} -; -_.hasPrevious = function hasPrevious_2(){ - return this.val$forwardIterator2.hasNext_0(); -} -; -_.next_1 = function next_18(){ - return $next_3(this); -} -; -_.nextIndex_0 = function nextIndex_3(){ - return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()); -} -; -_.previous_0 = function previous_3(){ - if (!this.val$forwardIterator2.hasNext_0()) { - throw toJs(new NoSuchElementException); - } - this.canRemoveOrSet = true; - return this.val$forwardIterator2.next_1(); -} -; -_.previousIndex = function previousIndex_2(){ - return $reversePosition(this.this$11, this.val$forwardIterator2.nextIndex_0()) - 1; -} -; -_.remove = function remove_43(){ - checkState_0(this.canRemoveOrSet); - this.val$forwardIterator2.remove(); - this.canRemoveOrSet = false; -} -; -_.set_1 = function set_10(e){ - checkState(this.canRemoveOrSet); - this.val$forwardIterator2.set_1(e); -} -; -_.canRemoveOrSet = false; -var Lcom_google_common_collect_Lists$ReverseList$1_2_classLit = createForClass('com.google.common.collect', 'Lists/ReverseList/1', 1020); -function asMapEntryIterator(set_0, function_0){ - return new Maps$3(set_0.iterator_0(), function_0); -} - -function capacity_0(expectedSize){ - if (expectedSize < 3) { - checkNonnegative(expectedSize, 'expectedSize'); - return expectedSize + 1; - } - if (expectedSize < $intern_35) { - return round_int(expectedSize / 0.75 + 1); - } - return $intern_0; -} - -function equalsImpl_0(map_0, object){ - var o; - if (map_0 === object) { - return true; - } - else if (instanceOf(object, 83)) { - o = castTo(object, 83); - return equalsImpl_3($entrySet_1(map_0), o.entrySet_0()); - } - return false; -} - -function indexMap(list){ - var builder, e, e$iterator, i; - builder = new ImmutableMap$Builder(list.delegateList_0().size_1()); - i = 0; - for (e$iterator = unmodifiableIterator(list.delegateList_0().iterator_0()); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - $put_4(builder, e, valueOf_4(i++)); - } - return fromEntryList(builder.entries_0); -} - -function keyOrNull(entry){ - return !entry?null:entry.key; -} - -function safeContainsKey(map_0, key){ - checkNotNull(map_0); - try { - return map_0.containsKey(key); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return false; - } - else - throw toJs($e0); - } -} - -function safeGet(map_0, key){ - checkNotNull(map_0); - try { - return map_0.get_3(key); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return null; - } - else - throw toJs($e0); - } -} - -function safeRemove_0(map_0, key){ - checkNotNull(map_0); - try { - return map_0.remove_0(key); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 205) || instanceOf($e0, 173)) { - return null; - } - else - throw toJs($e0); - } -} - -function toStringImpl(map_0){ - var entry, entry$iterator, first, sb; - sb = $append_5((checkNonnegative(map_0.size_1(), 'size') , new StringBuilder_0), 123); - first = true; - for (entry$iterator = $entrySet_1(map_0).iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - first || (sb.string += ', ' , sb); - first = false; - $append_10($append_5($append_10(sb, entry.getKey()), 61), entry.getValue()); - } - return (sb.string += '}' , sb).string; -} - -function valueOrNull(entry){ - return !entry?null:entry.value_0; -} - -function $transform(entry){ - return castTo(entry, 42).getKey(); -} - -function Maps$1($anonymous0){ - TransformedIterator.call(this, $anonymous0); -} - -defineClass(432, 487, $intern_6, Maps$1); -_.transform_0 = function transform_4(entry){ - return $transform(entry); -} -; -var Lcom_google_common_collect_Maps$1_2_classLit = createForClass('com.google.common.collect', 'Maps/1', 432); -function Maps$2($anonymous0){ - TransformedIterator.call(this, $anonymous0); -} - -defineClass(698, 487, $intern_6, Maps$2); -_.transform_0 = function transform_5(entry){ - return castTo(entry, 42).getValue(); -} -; -var Lcom_google_common_collect_Maps$2_2_classLit = createForClass('com.google.common.collect', 'Maps/2', 698); -function Maps$3($anonymous0, val$function){ - this.val$function2 = val$function; - TransformedIterator.call(this, $anonymous0); -} - -defineClass(962, 487, $intern_6, Maps$3); -_.transform_0 = function transform_6(key){ - return new ImmutableEntry(key, $apply_0(this.val$function2, key)); -} -; -var Lcom_google_common_collect_Maps$3_2_classLit = createForClass('com.google.common.collect', 'Maps/3', 962); -function Maps$IteratorBasedAbstractMap$1(this$1){ - this.this$11 = this$1; -} - -defineClass(959, 1971, $intern_10, Maps$IteratorBasedAbstractMap$1); -_.forEach_0 = function forEach_13(action){ - $forEachEntry_0(this.this$11, action); -} -; -_.iterator_0 = function iterator_37(){ - return this.this$11.entryIterator(); -} -; -_.map_1 = function map_3(){ - return this.this$11; -} -; -_.spliterator_0 = function spliterator_24(){ - return this.this$11.entrySpliterator(); -} -; -var Lcom_google_common_collect_Maps$IteratorBasedAbstractMap$1_2_classLit = createForClass('com.google.common.collect', 'Maps/IteratorBasedAbstractMap/1', 959); -function Maps$KeySet$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(960, 1, {}, Maps$KeySet$lambda$0$Type); -_.accept_1 = function accept_10(arg0, arg1){ - this.action_0.accept(arg0); -} -; -var Lcom_google_common_collect_Maps$KeySet$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/KeySet/lambda$0$Type', 960); -function Maps$Values(map_0){ - this.map_0 = castTo(checkNotNull(map_0), 83); -} - -defineClass(958, 28, $intern_8, Maps$Values); -_.clear_0 = function clear_26(){ - this.map_0.clear_0(); -} -; -_.contains = function contains_23(o){ - return this.map_0.containsValue(o); -} -; -_.forEach_0 = function forEach_14(action){ - checkNotNull(action); - this.map_0.forEach(new Maps$Values$lambda$0$Type(action)); -} -; -_.isEmpty = function isEmpty_15(){ - return this.map_0.isEmpty(); -} -; -_.iterator_0 = function iterator_38(){ - return new Maps$2(this.map_0.entrySet_0().iterator_0()); -} -; -_.remove_1 = function remove_44(o){ - var entry, entry$iterator; - try { - return $advanceToFind(this, o, true); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 41)) { - for (entry$iterator = this.map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if (equal(o, entry.getValue())) { - this.map_0.remove_0(entry.getKey()); - return true; - } - } - return false; - } - else - throw toJs($e0); - } -} -; -_.size_1 = function size_31(){ - return this.map_0.size_1(); -} -; -var Lcom_google_common_collect_Maps$Values_2_classLit = createForClass('com.google.common.collect', 'Maps/Values', 958); -function Maps$Values$lambda$0$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(961, 1, {}, Maps$Values$lambda$0$Type); -_.accept_1 = function accept_11(arg0, arg1){ - this.action_0.accept(arg1); -} -; -var Lcom_google_common_collect_Maps$Values$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Maps/Values/lambda$0$Type', 961); -function equalsImpl_1(multimap, object){ - var that; - if (object === multimap) { - return true; - } - if (instanceOf(object, 224)) { - that = castTo(object, 224); - return equals_Ljava_lang_Object__Z__devirtual$(multimap.asMap_0(), that.asMap_0()); - } - return false; -} - -function $removeValuesForKey_0(this$static, key){ - this$static.multimap.keySet_0().remove_1(key); -} - -function Multimaps$AsMap(multimap){ - this.multimap = castTo(checkNotNull(multimap), 224); -} - -defineClass(736, 1987, $intern_7, Multimaps$AsMap); -_.get_3 = function get_29(key){ - return this.multimap.containsKey(key)?this.multimap.get_1(key):null; -} -; -_.remove_0 = function remove_45(key){ - return this.multimap.containsKey(key)?this.multimap.removeAll(key):null; -} -; -_.clear_0 = function clear_27(){ - this.multimap.clear_0(); -} -; -_.containsKey = function containsKey_8(key){ - return this.multimap.containsKey(key); -} -; -_.createEntrySet_0 = function createEntrySet_1(){ - return new Multimaps$AsMap$EntrySet(this); -} -; -_.createEntrySet = function(){ - return this.createEntrySet_0(); -} -; -_.isEmpty = function isEmpty_16(){ - return this.multimap.isEmpty(); -} -; -_.keySet_0 = function keySet_13(){ - return this.multimap.keySet_0(); -} -; -_.size_1 = function size_32(){ - return this.multimap.keySet_0().size_1(); -} -; -var Lcom_google_common_collect_Multimaps$AsMap_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap', 736); -function Multimaps$AsMap$EntrySet(this$1){ - this.this$11 = this$1; -} - -defineClass(1104, 1971, $intern_10, Multimaps$AsMap$EntrySet); -_.iterator_0 = function iterator_39(){ - return asMapEntryIterator(this.this$11.multimap.keySet_0(), new Multimaps$AsMap$EntrySet$1(this)); -} -; -_.map_1 = function map_4(){ - return this.this$11; -} -; -_.remove_1 = function remove_46(o){ - var entry; - if (!$contains(this, o)) { - return false; - } - entry = castTo(o, 42); - $removeValuesForKey_0(this.this$11, entry.getKey()); - return true; -} -; -var Lcom_google_common_collect_Multimaps$AsMap$EntrySet_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet', 1104); -function $apply_0(this$static, key){ - return this$static.this$21.this$11.multimap.get_1(key); -} - -function Multimaps$AsMap$EntrySet$1(this$2){ - this.this$21 = this$2; -} - -defineClass(1108, 1, {}, Multimaps$AsMap$EntrySet$1); -_.apply_0 = function apply_14(key){ - return $apply_0(this, key); -} -; -_.equals_0 = function equals_27(other){ - return this === other; -} -; -var Lcom_google_common_collect_Multimaps$AsMap$EntrySet$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/AsMap/EntrySet/1', 1108); -function $count(this$static, element){ - var values; - values = castTo(safeGet($asMap(this$static.multimap), element), 14); - return !values?0:values.size_1(); -} - -function $remove_5(this$static, element, occurrences){ - var i, iterator, oldCount, values, values0; - checkNonnegative(occurrences, 'occurrences'); - if (occurrences == 0) { - return values0 = castTo(safeGet($asMap(this$static.multimap), element), 14) , !values0?0:values0.size_1(); - } - values = castTo(safeGet($asMap(this$static.multimap), element), 14); - if (!values) { - return 0; - } - oldCount = values.size_1(); - if (occurrences >= oldCount) { - values.clear_0(); - } - else { - iterator = values.iterator_0(); - for (i = 0; i < occurrences; i++) { - iterator.next_1(); - iterator.remove(); - } - } - return oldCount; -} - -function Multimaps$Keys(multimap){ - this.multimap = multimap; -} - -defineClass(543, 1989, {543:1, 835:1, 20:1, 28:1, 14:1}, Multimaps$Keys); -_.clear_0 = function clear_28(){ - $clear(this.multimap); -} -; -_.contains = function contains_24(element){ - return $containsKey(this.multimap, element); -} -; -_.forEach_0 = function forEach_15(consumer){ - checkNotNull(consumer); - $forEach_0($entries(this.multimap), new Multimaps$Keys$lambda$1$Type(consumer)); -} -; -_.iterator_0 = function iterator_40(){ - return new Maps$1($entries(this.multimap).this$01.entryIterator()); -} -; -_.size_1 = function size_33(){ - return this.multimap.totalSize; -} -; -_.spliterator_0 = function spliterator_25(){ - return map_2($entries(this.multimap).spliterator_0(), new Multimaps$Keys$0methodref$getKey$Type); -} -; -var Lcom_google_common_collect_Multimaps$Keys_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys', 543); -function Multimaps$Keys$0methodref$getKey$Type(){ -} - -defineClass(1106, 1, {}, Multimaps$Keys$0methodref$getKey$Type); -_.apply_0 = function apply_15(arg0){ - return castTo(arg0, 42).getKey(); -} -; -var Lcom_google_common_collect_Multimaps$Keys$0methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/0methodref$getKey$Type', 1106); -function Multimaps$Keys$1($anonymous0){ - TransformedIterator.call(this, $anonymous0); -} - -defineClass(1105, 487, $intern_6, Multimaps$Keys$1); -_.transform_0 = function transform_7(backingEntry){ - return new Multimaps$Keys$1$1(castTo(backingEntry, 42)); -} -; -var Lcom_google_common_collect_Multimaps$Keys$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1', 1105); -defineClass(1990, 1, {416:1}); -_.equals_0 = function equals_28(object){ - var that; - if (instanceOf(object, 492)) { - that = castTo(object, 416); - return castTo(this.val$backingEntry2.getValue(), 14).size_1() == castTo(that.val$backingEntry2.getValue(), 14).size_1() && equal(this.val$backingEntry2.getKey(), that.val$backingEntry2.getKey()); - } - return false; -} -; -_.hashCode_1 = function hashCode_28(){ - var e; - e = this.val$backingEntry2.getKey(); - return (e == null?0:hashCode__I__devirtual$(e)) ^ castTo(this.val$backingEntry2.getValue(), 14).size_1(); -} -; -_.toString_0 = function toString_27(){ - var n, text_0; - text_0 = valueOf_7(this.val$backingEntry2.getKey()); - n = castTo(this.val$backingEntry2.getValue(), 14).size_1(); - return n == 1?text_0:text_0 + ' x ' + n; -} -; -var Lcom_google_common_collect_Multisets$AbstractEntry_2_classLit = createForClass('com.google.common.collect', 'Multisets/AbstractEntry', 1990); -function Multimaps$Keys$1$1(val$backingEntry){ - this.val$backingEntry2 = val$backingEntry; -} - -defineClass(492, 1990, {492:1, 416:1}, Multimaps$Keys$1$1); -var Lcom_google_common_collect_Multimaps$Keys$1$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1/1', 492); -function Multimaps$Keys$lambda$1$Type(consumer_0){ - this.consumer_0 = consumer_0; -} - -defineClass(1107, 1, $intern_19, Multimaps$Keys$lambda$1$Type); -_.accept = function accept_12(arg0){ - this.consumer_0.accept(castTo(arg0, 42).getKey()); -} -; -var Lcom_google_common_collect_Multimaps$Keys$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/lambda$1$Type', 1107); -function Multiset$lambda$0$Type(){ -} - -defineClass(1110, 1, $intern_19, Multiset$lambda$0$Type); -_.accept = function accept_13(arg0){ - lambda$0_1(castTo(arg0, 416)); -} -; -var Lcom_google_common_collect_Multiset$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$0$Type', 1110); -function Multiset$lambda$1$Type(action_0){ - this.action_0 = action_0; -} - -defineClass(737, 1, $intern_19, Multiset$lambda$1$Type); -_.accept = function accept_14(arg0){ - lambda$1_1(this.action_0, castTo(arg0, 416)); -} -; -var Lcom_google_common_collect_Multiset$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$1$Type', 737); -function addAllImpl(elements){ - if ($entrySet_0(elements).isEmpty()) { - return false; - } - $forEachEntry(elements, new Multisets$0methodref$add$Type); - return true; -} - -function equalsImpl_2(multiset, object){ - var entry, entry$iterator, that; - if (object === multiset) { - return true; - } - if (instanceOf(object, 543)) { - that = castTo(object, 835); - if (multiset.multimap.totalSize != that.multimap.totalSize || $entrySet_0(multiset).size_1() != $entrySet_0(that).size_1()) { - return false; - } - for (entry$iterator = $entrySet_0(that).iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 416); - if ($count(multiset, entry.val$backingEntry2.getKey()) != castTo(entry.val$backingEntry2.getValue(), 14).size_1()) { - return false; - } - } - return true; - } - return false; -} - -function lambda$3(entry_0){ - return new Spliterators$IteratorSpliterator(nCopies(castTo(entry_0.val$backingEntry2.getValue(), 14).size_1(), entry_0.val$backingEntry2.getKey()), 16); -} - -function setCountImpl(self_0, element, oldCount){ - var values, oldCount_0, values_0, delta; - checkNonnegative(oldCount, 'oldCount'); - checkNonnegative(0, 'newCount'); - values = castTo(safeGet($asMap(self_0.multimap), element), 14); - if ((!values?0:values.size_1()) == oldCount) { - checkNonnegative(0, 'count'); - oldCount_0 = (values_0 = castTo(safeGet($asMap(self_0.multimap), element), 14) , !values_0?0:values_0.size_1()); - delta = -oldCount_0; - delta > 0?$add():delta < 0 && $remove_5(self_0, element, -delta); - return true; - } - else { - return false; - } -} - -function Multisets$0methodref$add$Type(){ -} - -defineClass(1111, 1, {}, Multisets$0methodref$add$Type); -var Lcom_google_common_collect_Multisets$0methodref$add$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/0methodref$add$Type', 1111); -function Multisets$lambda$3$Type(){ -} - -defineClass(738, 1, {}, Multisets$lambda$3$Type); -_.apply_0 = function apply_16(arg0){ - return lambda$3(castTo(arg0, 416)); -} -; -var Lcom_google_common_collect_Multisets$lambda$3$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/lambda$3$Type', 738); -defineClass(2008, 1, $intern_1); -var Lcom_google_common_collect_RangeGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'RangeGwtSerializationDependencies', 2008); -function $clinit_Range(){ - $clinit_Range = emptyMethod; - new Range_0(($clinit_Cut$BelowAll() , INSTANCE_1), ($clinit_Cut$AboveAll() , INSTANCE_0)); -} - -function $apply_1(this$static, input_0){ - return checkNotNull(input_0) , this$static.lowerBound.isLessThan(input_0) && !this$static.upperBound.isLessThan(input_0); -} - -function Range_0(lowerBound, upperBound){ - this.lowerBound = castTo(checkNotNull(lowerBound), 245); - this.upperBound = castTo(checkNotNull(upperBound), 245); - if (lowerBound.compareTo(upperBound) > 0 || lowerBound == ($clinit_Cut$AboveAll() , INSTANCE_0) || upperBound == ($clinit_Cut$BelowAll() , INSTANCE_1)) { - throw toJs(new IllegalArgumentException_0('Invalid range: ' + toString_29(lowerBound, upperBound))); - } -} - -function closed_0(lower, upper){ - $clinit_Range(); - return new Range_0(new Cut$BelowValue(lower), new Cut$AboveValue(upper)); -} - -function toString_29(lowerBound, upperBound){ - var sb; - sb = new StringBuilder_0; - lowerBound.describeAsLowerBound(sb); - sb.string += '..'; - upperBound.describeAsUpperBound(sb); - return sb.string; -} - -defineClass(514, 2008, {169:1, 514:1, 3:1, 45:1}, Range_0); -_.apply_1 = function apply_17(input_0){ - return $apply_1(this, castTo(input_0, 35)); -} -; -_.test_0 = function test_1(input_0){ - return $apply_1(this, castTo(input_0, 35)); -} -; -_.equals_0 = function equals_29(object){ - var other; - if (instanceOf(object, 514)) { - other = castTo(object, 514); - return $equals_1(this.lowerBound, other.lowerBound) && $equals_1(this.upperBound, other.upperBound); - } - return false; -} -; -_.hashCode_1 = function hashCode_29(){ - return this.lowerBound.hashCode_1() * 31 + this.upperBound.hashCode_1(); -} -; -_.toString_0 = function toString_28(){ - return toString_29(this.lowerBound, this.upperBound); -} -; -var Lcom_google_common_collect_Range_2_classLit = createForClass('com.google.common.collect', 'Range', 514); -function RegularImmutableAsList(delegate, delegateList){ - this.delegate = delegate; - this.delegateList = delegateList; -} - -function RegularImmutableAsList_0(delegate, array){ - $clinit_ImmutableList(); - RegularImmutableAsList.call(this, delegate, unsafeDelegateList(new Arrays$ArrayList(array))); -} - -defineClass(778, 1999, $intern_26, RegularImmutableAsList_0); -_.listIterator_1 = function listIterator_10(index_0){ - return $listIterator(this.delegateList, index_0); -} -; -_.delegateCollection = function delegateCollection_0(){ - return this.delegate; -} -; -_.get_0 = function get_30(index_0){ - return $get_2(this.delegateList, index_0); -} -; -_.listIterator_2 = function listIterator_9(index_0){ - return $listIterator(this.delegateList, index_0); -} -; -var Lcom_google_common_collect_RegularImmutableAsList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableAsList', 778); -function RegularImmutableList(delegate){ - this.delegate = ($clinit_Collections() , instanceOf(delegate, 54)?new Collections$UnmodifiableRandomAccessList(delegate):new Collections$UnmodifiableList(delegate)); -} - -defineClass(646, 2006, $intern_26, RegularImmutableList); -_.delegateList_0 = function delegateList_0(){ - return this.delegate; -} -; -var Lcom_google_common_collect_RegularImmutableList_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableList', 646); -function RegularImmutableMap(entries){ - ForwardingImmutableMap.call(this, entries); -} - -defineClass(616, 715, $intern_28, RegularImmutableMap); -var Lcom_google_common_collect_RegularImmutableMap_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableMap', 616); -function $clinit_RegularImmutableSet(){ - $clinit_RegularImmutableSet = emptyMethod; - $clinit_ImmutableCollection(); - EMPTY_2 = new RegularImmutableSet(($clinit_Collections() , $clinit_Collections() , EMPTY_SET)); -} - -function RegularImmutableSet(delegate){ - $clinit_RegularImmutableSet(); - ForwardingImmutableSet.call(this, delegate); -} - -defineClass(716, 703, $intern_30, RegularImmutableSet); -var EMPTY_2; -var Lcom_google_common_collect_RegularImmutableSet_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableSet', 716); -function equalsImpl_3(s, object){ - var o; - if (maskUndefined(s) === maskUndefined(object)) { - return true; - } - if (instanceOf(object, 21)) { - o = castTo(object, 21); - try { - return s.size_1() == o.size_1() && s.containsAll(o); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 173) || instanceOf($e0, 205)) { - return false; - } - else - throw toJs($e0); - } - } - return false; -} - -function hashCodeImpl_0(s){ - var hashCode, o, o$iterator; - hashCode = 0; - for (o$iterator = s.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - hashCode += o != null?hashCode__I__devirtual$(o):0; - hashCode = ~~hashCode; - } - return hashCode; -} - -function intersection_0(set1, set2){ - checkNotNull_0(set1, 'set1'); - checkNotNull_0(set2, 'set2'); - return new Sets$2(set1, set2); -} - -function newHashSet(elements){ - return instanceOf(elements, 14)?new HashSet_1(castTo(elements, 14)):newHashSet_0(elements.iterator_0()); -} - -function newHashSet_0(elements){ - var set_0; - set_0 = new HashSet; - addAll_7(set_0, elements); - return set_0; -} - -function newHashSet_1(elements){ - var set_0; - set_0 = new HashSet_0(capacity_0(elements.length)); - addAll_15(set_0, elements); - return set_0; -} - -function newLinkedHashSet(elements){ - var set_0; - if (elements) { - return new LinkedHashSet_1(elements); - } - set_0 = new LinkedHashSet; - addAll_6(set_0, elements); - return set_0; -} - -function newTreeSet(elements){ - var set_0; - set_0 = new TreeSet; - addAll_6(set_0, elements); - return set_0; -} - -function unmodifiableNavigableSet(set_0){ - if (instanceOf(set_0, 607)) { - return set_0; - } - return new Sets$UnmodifiableNavigableSet(set_0); -} - -defineClass(1976, $intern_9, $intern_10); -_.iterator_0 = function iterator_41(){ - return new Sets$2$1(this.val$set11, this.val$set22); -} -; -_.add_2 = function add_18(e){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll = function addAll_11(newElements){ - throw toJs(new UnsupportedOperationException); -} -; -_.clear_0 = function clear_29(){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_1 = function remove_47(object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lcom_google_common_collect_Sets$SetView_2_classLit = createForClass('com.google.common.collect', 'Sets/SetView', 1976); -function $size_1(this$static){ - var e, e$iterator, size_0; - size_0 = 0; - for (e$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this$static.val$set11); e$iterator.i < e$iterator.this$11.all.length;) { - e = $next_8(e$iterator); - this$static.val$set22.contains(e) && ++size_0; - } - return size_0; -} - -function Sets$2(val$set1, val$set2){ - this.val$set11 = val$set1; - this.val$set22 = val$set2; -} - -defineClass(963, 1976, $intern_10, Sets$2); -_.iterator_0 = function iterator_42(){ - return new Sets$2$1(this.val$set11, this.val$set22); -} -; -_.contains = function contains_25(object){ - return $contains_5(this.val$set11, object) && this.val$set22.contains(object); -} -; -_.containsAll = function containsAll_6(collection){ - return $containsAll(this.val$set11, collection) && this.val$set22.containsAll(collection); -} -; -_.isEmpty = function isEmpty_17(){ - return disjoint(this.val$set22, this.val$set11); -} -; -_.parallelStream = function parallelStream_1(){ - return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$5methodref$contains$Type(this.val$set22)); -} -; -_.size_1 = function size_34(){ - return $size_1(this); -} -; -_.stream = function stream_2(){ - return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.val$set11, 1)), new Sets$2$4methodref$contains$Type(this.val$set22)); -} -; -var Lcom_google_common_collect_Sets$2_2_classLit = createForClass('com.google.common.collect', 'Sets/2', 963); -function Sets$2$1(val$set1, val$set2){ - this.val$set12 = val$set1; - this.val$set23 = val$set2; - this.itr = new EnumSet$EnumSetImpl$IteratorImpl(this.val$set12); -} - -defineClass(700, 699, $intern_3, Sets$2$1); -_.computeNext = function computeNext_0(){ - var e; - while ($hasNext_4(this.itr)) { - e = $next_8(this.itr); - if (this.val$set23.contains(e)) { - return e; - } - } - return this.state = 2 , null; -} -; -var Lcom_google_common_collect_Sets$2$1_2_classLit = createForClass('com.google.common.collect', 'Sets/2/1', 700); -function Sets$2$4methodref$contains$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(964, 1, $intern_39, Sets$2$4methodref$contains$Type); -_.test_0 = function test_2(arg0){ - return this.$$outer_0.contains(arg0); -} -; -var Lcom_google_common_collect_Sets$2$4methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/4methodref$contains$Type', 964); -function Sets$2$5methodref$contains$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(965, 1, $intern_39, Sets$2$5methodref$contains$Type); -_.test_0 = function test_3(arg0){ - return this.$$outer_0.contains(arg0); -} -; -var Lcom_google_common_collect_Sets$2$5methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/5methodref$contains$Type', 965); -function Sets$UnmodifiableNavigableSet(delegate){ - this.delegate = castTo(checkNotNull(delegate), 271); - this.unmodifiableDelegate = ($clinit_Collections() , new Collections$UnmodifiableSortedSet(delegate)); -} - -defineClass(607, 1975, {607:1, 3:1, 20:1, 14:1, 271:1, 21:1, 84:1}, Sets$UnmodifiableNavigableSet); -_.delegate_0 = function delegate_9(){ - return this.unmodifiableDelegate; -} -; -_.delegate_1 = function delegate_10(){ - return this.unmodifiableDelegate; -} -; -_.delegate_2 = function delegate_11(){ - return this.unmodifiableDelegate; -} -; -_.forEach_0 = function forEach_16(action){ - this.delegate.forEach_0(action); -} -; -_.parallelStream = function parallelStream_2(){ - return this.delegate.parallelStream(); -} -; -_.stream = function stream_3(){ - return this.delegate.stream(); -} -; -var Lcom_google_common_collect_Sets$UnmodifiableNavigableSet_2_classLit = createForClass('com.google.common.collect', 'Sets/UnmodifiableNavigableSet', 607); -function SingletonImmutableBiMap(key, value_0){ - ImmutableBiMap.call(this, singletonMap(checkNotNull(key), checkNotNull(value_0))); - this.singleValue = value_0; -} - -defineClass(1932, 1931, $intern_28, SingletonImmutableBiMap); -_.values_2 = function values_13(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_0 = function values_14(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -_.values_1 = function values_15(){ - return $clinit_ImmutableCollection() , new SingletonImmutableSet(this.singleValue); -} -; -var Lcom_google_common_collect_SingletonImmutableBiMap_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableBiMap', 1932); -function SingletonImmutableList(element){ - $clinit_ImmutableList(); - this.delegate = ($clinit_Collections() , new Collections$SingletonList(checkNotNull(element))); -} - -defineClass(647, 2006, $intern_26, SingletonImmutableList); -_.delegateList_0 = function delegateList_1(){ - return this.delegate; -} -; -var Lcom_google_common_collect_SingletonImmutableList_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableList', 647); -function SingletonImmutableSet(element){ - $clinit_ImmutableCollection(); - this.element = checkNotNull(element); -} - -defineClass(350, 1981, $intern_30, SingletonImmutableSet); -_.iterator_0 = function iterator_44(){ - return new Iterators$9(this.element); -} -; -_.contains = function contains_26(object){ - return equals_Ljava_lang_Object__Z__devirtual$(this.element, object); -} -; -_.iterator_1 = function iterator_43(){ - return new Iterators$9(this.element); -} -; -_.size_1 = function size_35(){ - return 1; -} -; -var Lcom_google_common_collect_SingletonImmutableSet_2_classLit = createForClass('com.google.common.collect', 'SingletonImmutableSet', 350); -function concat_1(streams){ - var characteristics, estimatedSize, isParallel, splitr, splitrsBuilder, stream, stream$array, stream$index, stream$max; - isParallel = false; - characteristics = 336; - estimatedSize = 0; - splitrsBuilder = new ImmutableList$Builder(streams.length); - for (stream$array = streams , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { - stream = stream$array[stream$index]; - isParallel = isParallel | ($throwIfTerminated(stream) , false); - splitr = ($terminate(stream) , stream.spliterator); - $add_3(splitrsBuilder.contents, checkNotNull(splitr)); - characteristics &= splitr.characteristics_0(); - estimatedSize = saturatedAdd(estimatedSize, splitr.estimateSize_0()); - } - return castTo(castTo($onClose(new StreamImpl(null, flatMap(new Spliterators$IteratorSpliterator(($clinit_ImmutableList() , copyFromCollection(splitrsBuilder.contents)), 16), new Streams$lambda$0$Type, characteristics, estimatedSize)), new Streams$lambda$1$Type(streams)), 670), 833); -} - -function lambda$1_2(streams_0){ - var stream, stream$array, stream$index, stream$max; - for (stream$array = streams_0 , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { - stream = stream$array[stream$index]; - $close(stream); - } -} - -function Streams$lambda$0$Type(){ -} - -defineClass(1115, 1, {}, Streams$lambda$0$Type); -_.apply_0 = function apply_18(arg0){ - return castTo(arg0, 164); -} -; -var Lcom_google_common_collect_Streams$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$0$Type', 1115); -function Streams$lambda$1$Type(streams_0){ - this.streams_0 = streams_0; -} - -defineClass(1116, 1, $intern_40, Streams$lambda$1$Type); -_.run = function run_0(){ - lambda$1_2(this.streams_0); -} -; -var Lcom_google_common_collect_Streams$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$1$Type', 1116); -function equalsImpl_4(table, obj){ - var result, result0, that; - if (obj === table) { - return true; - } - else if (instanceOf(obj, 664)) { - that = castTo(obj, 1947); - return $equals_0((result0 = table.cellSet , !result0?(table.cellSet = new AbstractTable$CellSet(table)):result0), (result = that.cellSet , !result?(that.cellSet = new AbstractTable$CellSet(that)):result)); - } - else { - return false; - } -} - -function TreeMultimap(keyComparator, valueComparator){ - AbstractSortedKeySortedSetMultimap.call(this, new TreeMap_0(keyComparator)); - this.keyComparator = keyComparator; - this.valueComparator = valueComparator; -} - -function create(keyComparator, valueComparator){ - return new TreeMultimap(castTo(checkNotNull(keyComparator), 62), castTo(checkNotNull(valueComparator), 62)); -} - -defineClass(1659, 1658, $intern_5, TreeMultimap); -_.asMap_0 = function asMap_5(){ - var result; - return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); -} -; -_.createCollection = function createCollection_10(){ - return new TreeSet_0(this.valueComparator); -} -; -_.createCollection_1 = function createCollection_11(){ - return new TreeSet_0(this.valueComparator); -} -; -_.keySet_0 = function keySet_14(){ - var result; - return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); -} -; -_.createAsMap = function createAsMap_1(){ - return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0); -} -; -_.createCollection_0 = function createCollection_12(key){ - key == null && this.keyComparator.compare_1(key, key); - return new TreeSet_0(this.valueComparator); -} -; -var Lcom_google_common_collect_TreeMultimap_2_classLit = createForClass('com.google.common.collect', 'TreeMultimap', 1659); -function $clinit_DoubleMath(){ - $clinit_DoubleMath = emptyMethod; - $wnd.Math.log(2); -} - -function fuzzyCompare(a, b){ - $clinit_DoubleMath(); - return checkNonNegative($intern_41) , $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b)?0:a < b?-1:a > b?1:compare_0(isNaN(a), isNaN(b)); -} - -function fuzzyEquals(a, b){ - $clinit_DoubleMath(); - checkNonNegative($intern_41); - return $wnd.Math.abs(a - b) <= $intern_41 || a == b || isNaN(a) && isNaN(b); -} - -function saturatedAdd(a, b){ - var naiveSum; - naiveSum = add_20(a, b); - if (lt(xor_0(a, b), 0) | gte_0(xor_0(a, naiveSum), 0)) { - return naiveSum; - } - return add_20($intern_20, xor_0(shru_0(naiveSum, 63), 1)); -} - -function checkNonNegative(x_0){ - if (!(x_0 >= 0)) { - throw toJs(new IllegalArgumentException_0('tolerance (' + x_0 + ') must be >= 0')); - } - return x_0; -} - -function compare_0(a, b){ - return a == b?0:a?1:-1; -} - -function saturatedCast(value_0){ - if (compare_2(value_0, $intern_0) > 0) { - return $intern_0; - } - if (compare_2(value_0, $intern_42) < 0) { - return $intern_42; - } - return toInt_0(value_0); -} - -function $$init_0(this$static){ - this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); -} - -function $addSuppressed(this$static, exception){ - checkCriticalNotNull_0(exception, 'Cannot suppress a null exception.'); - checkCriticalArgument_0(exception != this$static, 'Exception can not suppress itself.'); - if (this$static.disableSuppression) { - return; - } - this$static.suppressedExceptions == null?(this$static.suppressedExceptions = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Throwable_2_classLit, 1), $intern_16, 78, 0, [exception])):(this$static.suppressedExceptions[this$static.suppressedExceptions.length] = exception); -} - -function $fillInStackTrace(this$static){ - if (this$static.writableStackTrace) { - this$static.backingJsObject !== '__noinit__' && this$static.initializeBackingError(); - this$static.stackTrace = null; - } - return this$static; -} - -function $linkBack(this$static, error){ - if (error instanceof Object) { - try { - error.__java$exception = this$static; - if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && $doc.documentMode < 9) { - return; - } - var throwable = this$static; - Object.defineProperties(error, {cause:{get:function(){ - var cause = throwable.getCause(); - return cause && cause.getBackingJsObject(); - } - }, suppressed:{get:function(){ - return throwable.getBackingSuppressed(); - } - }}); - } - catch (ignored) { - } - } -} - -function $printStackTraceImpl(this$static, out, ident){ - var t, t$array, t$index, t$max, theCause; - $printStackTraceItems(this$static); - for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this$static.suppressedExceptions) , t$index = 0 , t$max = t$array.length; t$index < t$max; ++t$index) { - t = t$array[t$index]; - $printStackTraceImpl(t, out, '\t' + ident); - } - theCause = this$static.cause_0; - !!theCause && $printStackTraceImpl(theCause, out, ident); -} - -function $printStackTraceItems(this$static){ - var element$array, element$index, element$max, stackTrace; - for (element$array = (this$static.stackTrace == null && (this$static.stackTrace = ($clinit_StackTraceCreator() , stackTrace = collector_1.getStackTrace(this$static) , dropInternalFrames(stackTrace))) , this$static.stackTrace) , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) - ; -} - -function $setBackingJsObject(this$static, backingJsObject){ - this$static.backingJsObject = backingJsObject; - $linkBack(this$static, backingJsObject); -} - -function $toString_4(this$static, message){ - var className; - className = $getName(this$static.___clazz); - return message == null?className:className + ': ' + message; -} - -function Throwable(){ - $$init_0(this); - $fillInStackTrace(this); - this.initializeBackingError(); -} - -function Throwable_0(message){ - $$init_0(this); - this.detailMessage = message; - $fillInStackTrace(this); - this.initializeBackingError(); -} - -function Throwable_1(message, cause){ - $$init_0(this); - this.cause_0 = cause; - this.detailMessage = message; - $fillInStackTrace(this); - this.initializeBackingError(); -} - -function fixIE(e){ - if (!('stack' in e)) { - try { - throw e; - } - catch (ignored) { - } - } - return e; -} - -defineClass(78, 1, {3:1, 78:1}); -_.createError = function createError(msg){ - return new Error(msg); -} -; -_.getBackingJsObject = function getBackingJsObject(){ - return this.backingJsObject; -} -; -_.getBackingSuppressed = function getBackingSuppressed(){ - return $toArray_7($map_0(stream_4((this.suppressedExceptions == null && (this.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this.suppressedExceptions)), new Throwable$lambda$0$Type), new StreamImpl$0methodref$lambda$2$Type); -} -; -_.getCause = function getCause(){ - return this.cause_0; -} -; -_.getMessage = function getMessage(){ - return this.detailMessage; -} -; -_.initializeBackingError = function initializeBackingError(){ - $setBackingJsObject(this, fixIE(this.createError($toString_4(this, this.detailMessage)))); - captureStackTrace(this); -} -; -_.toString_0 = function toString_30(){ - return $toString_4(this, this.getMessage()); -} -; -_.backingJsObject = '__noinit__'; -_.disableSuppression = false; -_.writableStackTrace = true; -var Ljava_lang_Throwable_2_classLit = createForClass('java.lang', 'Throwable', 78); -defineClass(102, 78, {3:1, 102:1, 78:1}); -var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 102); -function RuntimeException(){ - Throwable.call(this); -} - -function RuntimeException_0(message){ - Throwable_0.call(this, message); -} - -defineClass(60, 102, $intern_43, RuntimeException, RuntimeException_0); -var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 60); -defineClass(598, 60, $intern_43); -var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 598); -defineClass(863, 598, $intern_43); -var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 863); -function $clinit_JavaScriptException(){ - $clinit_JavaScriptException = emptyMethod; - NOT_SET = new Object_0; -} - -function $ensureInit(this$static){ - var exception; - if (this$static.message_0 == null) { - exception = maskUndefined(this$static.e) === maskUndefined(NOT_SET)?null:this$static.e; - this$static.name_0 = exception == null?'null':instanceOfJso(exception)?getExceptionName0(castToJso(exception)):instanceOfString(exception)?'String':$getName(getClass__Ljava_lang_Class___devirtual$(exception)); - this$static.description = this$static.description + ': ' + (instanceOfJso(exception)?getExceptionDescription0(castToJso(exception)):exception + ''); - this$static.message_0 = '(' + this$static.name_0 + ') ' + this$static.description; - } -} - -function JavaScriptException(e){ - $clinit_JavaScriptException(); - $$init_0(this); - $fillInStackTrace(this); - this.backingJsObject = e; - $linkBack(this, e); - this.detailMessage = e == null?'null':toString_40(e); - this.description = ''; - this.e = e; - this.description = ''; -} - -function getExceptionDescription0(e){ - return e == null?null:e.message; -} - -function getExceptionName0(e){ - return e == null?null:e.name; -} - -defineClass(477, 863, {477:1, 3:1, 102:1, 60:1, 78:1}, JavaScriptException); -_.getMessage = function getMessage_0(){ - $ensureInit(this); - return this.message_0; -} -; -_.getThrown = function getThrown(){ - return maskUndefined(this.e) === maskUndefined(NOT_SET)?null:this.e; -} -; -var NOT_SET; -var Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptException', 477); -function $equals_3(this$static, other){ - return !!this$static && !!this$static.equals?this$static.equals(other):maskUndefined(this$static) === maskUndefined(other); -} - -function $hashCode(this$static){ - return !!this$static && !!this$static.hashCode?this$static.hashCode():getHashCode_0(this$static); -} - -var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); -function now_1(){ - if (Date.now) { - return Date.now(); - } - return (new Date).getTime(); -} - -function escapeChar(c, escapeTable){ - var lookedUp = escapeTable_0[c.charCodeAt(0)]; - return lookedUp == null?c:lookedUp; -} - -function escapeValue(toEscape){ - var escapeTable = (!escapeTable_0 && (escapeTable_0 = initEscapeTable()) , escapeTable_0); - var s = toEscape.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(x_0){ - return escapeChar(x_0, escapeTable); - } - ); - return '"' + s + '"'; -} - -function initEscapeTable(){ - var out = ['\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', '\\n', '\\u000B', '\\f', '\\r', '\\u000E', '\\u000F', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001A', '\\u001B', '\\u001C', '\\u001D', '\\u001E', '\\u001F']; - out[34] = '\\"'; - out[92] = '\\\\'; - out[173] = '\\u00ad'; - out[1536] = '\\u0600'; - out[1537] = '\\u0601'; - out[1538] = '\\u0602'; - out[1539] = '\\u0603'; - out[1757] = '\\u06dd'; - out[1807] = '\\u070f'; - out[6068] = '\\u17b4'; - out[6069] = '\\u17b5'; - out[8203] = '\\u200b'; - out[8204] = '\\u200c'; - out[8205] = '\\u200d'; - out[8206] = '\\u200e'; - out[8207] = '\\u200f'; - out[8232] = '\\u2028'; - out[8233] = '\\u2029'; - out[8234] = '\\u202a'; - out[8235] = '\\u202b'; - out[8236] = '\\u202c'; - out[8237] = '\\u202d'; - out[8238] = '\\u202e'; - out[8288] = '\\u2060'; - out[8289] = '\\u2061'; - out[8290] = '\\u2062'; - out[8291] = '\\u2063'; - out[8292] = '\\u2064'; - out[8298] = '\\u206a'; - out[8299] = '\\u206b'; - out[8300] = '\\u206c'; - out[8301] = '\\u206d'; - out[8302] = '\\u206e'; - out[8303] = '\\u206f'; - out[65279] = '\\ufeff'; - out[65529] = '\\ufff9'; - out[65530] = '\\ufffa'; - out[65531] = '\\ufffb'; - return out; -} - -var escapeTable_0; -defineClass(1948, 1, {}); -var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 1948); -function $clinit_Impl(){ - $clinit_Impl = emptyMethod; - !!($clinit_StackTraceCreator() , collector_1); -} - -function apply_19(jsFunction, thisObj, args){ - return jsFunction.apply(thisObj, args); - var __0; -} - -function enter_0(){ - var now_0; - if (entryDepth != 0) { - now_0 = now_1(); - if (now_0 - watchdogEntryDepthLastScheduled > 2000) { - watchdogEntryDepthLastScheduled = now_0; - watchdogEntryDepthTimerId = $wnd.setTimeout(watchdogEntryDepthRun, 10); - } - } - if (entryDepth++ == 0) { - $flushEntryCommands(($clinit_SchedulerImpl() , INSTANCE_3)); - return true; - } - return false; -} - -function entry_2(jsFunction){ - $clinit_Impl(); - return function(){ - return entry0_0(jsFunction, this, arguments); - var __0; - } - ; -} - -function entry0_0(jsFunction, thisObj, args){ - var initialEntry; - initialEntry = enter_0(); - try { - return apply_19(jsFunction, thisObj, args); - } - finally { - exit(initialEntry); - } -} - -function exit(initialEntry){ - initialEntry && $flushFinallyCommands(($clinit_SchedulerImpl() , INSTANCE_3)); - --entryDepth; - if (initialEntry) { - if (watchdogEntryDepthTimerId != -1) { - watchdogEntryDepthCancel(watchdogEntryDepthTimerId); - watchdogEntryDepthTimerId = -1; - } - } -} - -function reportToBrowser(e){ - $clinit_Impl(); - $wnd.setTimeout(function(){ - throw e; - } - , 0); -} - -function watchdogEntryDepthCancel(timerId){ - $wnd.clearTimeout(timerId); -} - -function watchdogEntryDepthRun(){ - entryDepth != 0 && (entryDepth = 0); - watchdogEntryDepthTimerId = -1; -} - -var entryDepth = 0, watchdogEntryDepthLastScheduled = 0, watchdogEntryDepthTimerId = -1; -function $clinit_SchedulerImpl(){ - $clinit_SchedulerImpl = emptyMethod; - INSTANCE_3 = new SchedulerImpl; -} - -function $flushEntryCommands(this$static){ - var oldQueue, rescheduled; - if (this$static.entryCommands) { - rescheduled = null; - do { - oldQueue = this$static.entryCommands; - this$static.entryCommands = null; - rescheduled = runScheduledTasks(oldQueue, rescheduled); - } - while (this$static.entryCommands); - this$static.entryCommands = rescheduled; - } -} - -function $flushFinallyCommands(this$static){ - var oldQueue, rescheduled; - if (this$static.finallyCommands) { - rescheduled = null; - do { - oldQueue = this$static.finallyCommands; - this$static.finallyCommands = null; - rescheduled = runScheduledTasks(oldQueue, rescheduled); - } - while (this$static.finallyCommands); - this$static.finallyCommands = rescheduled; - } -} - -function SchedulerImpl(){ -} - -function push_0(queue, task){ - !queue && (queue = []); - queue[queue.length] = task; - return queue; -} - -function runScheduledTasks(tasks, rescheduled){ - var e, i, j, t; - for (i = 0 , j = tasks.length; i < j; i++) { - t = tasks[i]; - try { - t[1]?t[0].$_nullMethod() && (rescheduled = push_0(rescheduled, t)):t[0].$_nullMethod(); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 78)) { - e = $e0; - $clinit_Impl(); - reportToBrowser(instanceOf(e, 477)?castTo(e, 477).getThrown():e); - } - else - throw toJs($e0); - } - } - return rescheduled; -} - -defineClass(890, 1948, {}, SchedulerImpl); -var INSTANCE_3; -var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 890); -function $clinit_StackTraceCreator(){ - $clinit_StackTraceCreator = emptyMethod; - var c, enforceLegacy; - enforceLegacy = !supportsErrorStack(); - c = new StackTraceCreator$CollectorModernNoSourceMap; - collector_1 = enforceLegacy?new StackTraceCreator$CollectorLegacy:c; -} - -function captureStackTrace(error){ - $clinit_StackTraceCreator(); - collector_1.collect(error); -} - -function dropInternalFrames(stackTrace){ - var dropFrameUntilFnName, dropFrameUntilFnName2, i, numberOfFramesToSearch; - dropFrameUntilFnName = 'captureStackTrace'; - dropFrameUntilFnName2 = 'initializeBackingError'; - numberOfFramesToSearch = $wnd.Math.min(stackTrace.length, 5); - for (i = numberOfFramesToSearch - 1; i >= 0; i--) { - if ($equals_5(stackTrace[i].methodName, dropFrameUntilFnName) || $equals_5(stackTrace[i].methodName, dropFrameUntilFnName2)) { - stackTrace.length >= i + 1 && stackTrace.splice(0, i + 1); - break; - } - } - return stackTrace; -} - -function extractFunctionName(fnName){ - var fnRE = /function(?:\s+([\w$]+))?\s*\(/; - var match_0 = fnRE.exec(fnName); - return match_0 && match_0[1] || 'anonymous'; -} - -function parseInt_0(number){ - $clinit_StackTraceCreator(); - return parseInt(number) || -1; -} - -function split_1(t){ - $clinit_StackTraceCreator(); - var e = t.backingJsObject; - if (e && e.stack) { - var stack_0 = e.stack; - var toString_0 = e + '\n'; - stack_0.substring(0, toString_0.length) == toString_0 && (stack_0 = stack_0.substring(toString_0.length)); - return stack_0.split('\n'); - } - return []; -} - -function supportsErrorStack(){ - if (Error.stackTraceLimit > 0) { - $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; - return true; - } - return 'stack' in new Error; -} - -var collector_1; -defineClass(1960, 1, {}); -var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 1960); -function StackTraceCreator$CollectorLegacy(){ -} - -defineClass(864, 1960, {}, StackTraceCreator$CollectorLegacy); -_.collect = function collect(error){ - var seen = {}, name_1; - var fnStack = []; - error['fnStack'] = fnStack; - var callee = arguments.callee.caller; - while (callee) { - var name_0 = ($clinit_StackTraceCreator() , callee.name || (callee.name = extractFunctionName(callee.toString()))); - fnStack.push(name_0); - var keyName = ':' + name_0; - var withThisName = seen[keyName]; - if (withThisName) { - var i, j; - for (i = 0 , j = withThisName.length; i < j; i++) { - if (withThisName[i] === callee) { - return; - } - } - } - (withThisName || (seen[keyName] = [])).push(callee); - callee = callee.caller; - } -} -; -_.getStackTrace = function getStackTrace(t){ - var i, length_0, stack_0, stackTrace; - stack_0 = ($clinit_StackTraceCreator() , t && t['fnStack']?t['fnStack']:[]); - length_0 = stack_0.length; - stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, length_0, 0, 1); - for (i = 0; i < length_0; i++) { - stackTrace[i] = new StackTraceElement(stack_0[i], null, -1); - } - return stackTrace; -} -; -var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorLegacy_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorLegacy', 864); -function $parse(this$static, stString){ - var closeParen, col, endFileUrlIndex, fileName, index_0, lastColonIndex, line, location_0, toReturn; - location_0 = ''; - if (stString.length == 0) { - return this$static.createSte('Unknown', 'anonymous', -1, -1); - } - toReturn = $trim(stString); - $equals_5(toReturn.substr(0, 3), 'at ') && (toReturn = toReturn.substr(3)); - toReturn = toReturn.replace(/\[.*?\]/g, ''); - index_0 = toReturn.indexOf('('); - if (index_0 == -1) { - index_0 = toReturn.indexOf('@'); - if (index_0 == -1) { - location_0 = toReturn; - toReturn = ''; - } - else { - location_0 = $trim(toReturn.substr(index_0 + 1)); - toReturn = $trim(toReturn.substr(0, index_0)); - } - } - else { - closeParen = toReturn.indexOf(')', index_0); - location_0 = toReturn.substr(index_0 + 1, closeParen - (index_0 + 1)); - toReturn = $trim(toReturn.substr(0, index_0)); - } - index_0 = $indexOf_1(toReturn, fromCodePoint(46)); - index_0 != -1 && (toReturn = toReturn.substr(index_0 + 1)); - (toReturn.length == 0 || $equals_5(toReturn, 'Anonymous function')) && (toReturn = 'anonymous'); - lastColonIndex = $lastIndexOf(location_0, fromCodePoint(58)); - endFileUrlIndex = $lastIndexOf_0(location_0, fromCodePoint(58), lastColonIndex - 1); - line = -1; - col = -1; - fileName = 'Unknown'; - if (lastColonIndex != -1 && endFileUrlIndex != -1) { - fileName = location_0.substr(0, endFileUrlIndex); - line = parseInt_0(location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1))); - col = parseInt_0(location_0.substr(lastColonIndex + 1)); - } - return this$static.createSte(fileName, toReturn, line, col); -} - -defineClass(1961, 1960, {}); -_.collect = function collect_0(error){ -} -; -_.createSte = function createSte(fileName, method, line, col){ - return new StackTraceElement(method, fileName + '@' + col, line < 0?-1:line); -} -; -_.getStackTrace = function getStackTrace_0(t){ - var addIndex, i, length_0, stack_0, stackTrace, ste; - stack_0 = split_1(t); - stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 0, 0, 1); - addIndex = 0; - length_0 = stack_0.length; - if (length_0 == 0) { - return stackTrace; - } - ste = $parse(this, stack_0[0]); - $equals_5(ste.methodName, 'anonymous') || (stackTrace[addIndex++] = ste); - for (i = 1; i < length_0; i++) { - stackTrace[addIndex++] = $parse(this, stack_0[i]); - } - return stackTrace; -} -; -var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModern_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModern', 1961); -function StackTraceCreator$CollectorModernNoSourceMap(){ -} - -defineClass(865, 1961, {}, StackTraceCreator$CollectorModernNoSourceMap); -_.createSte = function createSte_0(fileName, method, line, col){ - return new StackTraceElement(method, fileName, -1); -} -; -var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModernNoSourceMap_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModernNoSourceMap', 865); -function $clinit_DateTimeFormat(){ - $clinit_DateTimeFormat = emptyMethod; - new HashMap; -} - -function $addPart(this$static, buf, count){ - var oldLength; - if (buf.string.length > 0) { - $add_3(this$static.patternParts, new DateTimeFormat$PatternPart(buf.string, count)); - oldLength = buf.string.length; - 0 < oldLength?(buf.string = buf.string.substr(0, 0)):0 > oldLength && (buf.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); - } -} - -function $format(this$static, date, timeZone){ - var ch_0, diff, i, j, keepDate, keepTime, n, toAppendTo, trailQuote; - !timeZone && (timeZone = createTimeZone(date.jsdate.getTimezoneOffset())); - diff = (date.jsdate.getTimezoneOffset() - timeZone.standardOffset) * 60000; - keepDate = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); - keepTime = keepDate; - if (keepDate.jsdate.getTimezoneOffset() != date.jsdate.getTimezoneOffset()) { - diff > 0?(diff -= 86400000):(diff += 86400000); - keepTime = new Date_2(add_20(fromDouble_0(date.jsdate.getTime()), diff)); - } - toAppendTo = new StringBuilder_0; - n = this$static.pattern.length; - for (i = 0; i < n;) { - ch_0 = $charAt(this$static.pattern, i); - if (ch_0 >= 97 && ch_0 <= 122 || ch_0 >= 65 && ch_0 <= 90) { - for (j = i + 1; j < n && $charAt(this$static.pattern, j) == ch_0; ++j) - ; - $subFormat(toAppendTo, ch_0, j - i, keepDate, keepTime, timeZone); - i = j; - } - else if (ch_0 == 39) { - ++i; - if (i < n && $charAt(this$static.pattern, i) == 39) { - toAppendTo.string += "'"; - ++i; - continue; - } - trailQuote = false; - while (!trailQuote) { - j = i; - while (j < n && $charAt(this$static.pattern, j) != 39) { - ++j; - } - if (j >= n) { - throw toJs(new IllegalArgumentException_0("Missing trailing '")); - } - j + 1 < n && $charAt(this$static.pattern, j + 1) == 39?++j:(trailQuote = true); - $append_11(toAppendTo, $substring_1(this$static.pattern, i, j)); - i = j + 1; - } - } - else { - toAppendTo.string += String.fromCharCode(ch_0); - ++i; - } - } - return toAppendTo.string; -} - -function $formatFractionalSeconds(buf, count, date){ - var time, value_0; - time = fromDouble_0(date.jsdate.getTime()); - if (compare_2(time, 0) < 0) { - value_0 = $intern_45 - toInt_0(mod(neg_0(time), $intern_45)); - value_0 == $intern_45 && (value_0 = 0); - } - else { - value_0 = toInt_0(mod(time, $intern_45)); - } - if (count == 1) { - value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); - $append_5(buf, 48 + value_0 & $intern_46); - } - else if (count == 2) { - value_0 = $wnd.Math.min((value_0 + 5) / 10 | 0, 99); - $zeroPaddingNumber(buf, value_0, 2); - } - else { - $zeroPaddingNumber(buf, value_0, 3); - count > 3 && $zeroPaddingNumber(buf, 0, count - 3); - } -} - -function $formatMonth(buf, count, date){ - var value_0; - value_0 = date.jsdate.getMonth(); - switch (count) { - case 5: - $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value_0]); - break; - case 4: - $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value_0]); - break; - case 3: - $append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value_0]); - break; - default:$zeroPaddingNumber(buf, value_0 + 1, count); - } -} - -function $formatYear(buf, count, date){ - var value_0; - value_0 = date.jsdate.getFullYear() - $intern_47 + $intern_47; - value_0 < 0 && (value_0 = -value_0); - switch (count) { - case 1: - buf.string += value_0; - break; - case 2: - $zeroPaddingNumber(buf, value_0 % 100, 2); - break; - default:$zeroPaddingNumber(buf, value_0, count); - } -} - -function $getNextCharCountInPattern(pattern, start_0){ - var ch_0, next; - ch_0 = (checkCriticalStringElementIndex(start_0, pattern.length) , pattern.charCodeAt(start_0)); - next = start_0 + 1; - while (next < pattern.length && (checkCriticalStringElementIndex(next, pattern.length) , pattern.charCodeAt(next) == ch_0)) { - ++next; - } - return next - start_0; -} - -function $identifyAbutStart(this$static){ - var abut, i, len; - abut = false; - len = this$static.patternParts.array.length; - for (i = 0; i < len; i++) { - if ($isNumeric(castTo($get_11(this$static.patternParts, i), 434))) { - if (!abut && i + 1 < len && $isNumeric(castTo($get_11(this$static.patternParts, i + 1), 434))) { - abut = true; - castTo($get_11(this$static.patternParts, i), 434).abutStart = true; - } - } - else { - abut = false; - } - } -} - -function $isNumeric(part){ - var i; - if (part.count <= 0) { - return false; - } - i = $indexOf_1('MLydhHmsSDkK', fromCodePoint($charAt(part.text_0, 0))); - return i > 1 || i >= 0 && part.count < 3; -} - -function $matchString(text_0, start_0, data_0, pos){ - var bestMatch, bestMatchLength, count, i, length_0, textInLowerCase; - count = data_0.length; - bestMatchLength = 0; - bestMatch = -1; - textInLowerCase = $toLowerCase(text_0.substr(start_0), ($clinit_Locale() , ROOT)); - for (i = 0; i < count; ++i) { - length_0 = data_0[i].length; - if (length_0 > bestMatchLength && $startsWith(textInLowerCase, $toLowerCase(data_0[i], ROOT))) { - bestMatch = i; - bestMatchLength = length_0; - } - } - bestMatch >= 0 && (pos[0] = start_0 + bestMatchLength); - return bestMatch; -} - -function $parse_0(this$static, text_0, date){ - var abutPass, abutPat, abutStart, cal, count, i, parsePos, part, s; - cal = new DateRecord; - parsePos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); - abutPat = -1; - abutStart = 0; - abutPass = 0; - for (i = 0; i < this$static.patternParts.array.length; ++i) { - part = castTo($get_11(this$static.patternParts, i), 434); - if (part.count > 0) { - if (abutPat < 0 && part.abutStart) { - abutPat = i; - abutStart = parsePos[0]; - abutPass = 0; - } - if (abutPat >= 0) { - count = part.count; - if (i == abutPat) { - count -= abutPass++; - if (count == 0) { - return 0; - } - } - if (!$subParse(text_0, parsePos, part, count, cal)) { - i = abutPat - 1; - parsePos[0] = abutStart; - continue; - } - } - else { - abutPat = -1; - if (!$subParse(text_0, parsePos, part, 0, cal)) { - return 0; - } - } - } - else { - abutPat = -1; - if ($charAt(part.text_0, 0) == 32) { - s = parsePos[0]; - $skipSpace(text_0, parsePos); - if (parsePos[0] > s) { - continue; - } - } - else if ($startsWith_0(text_0, part.text_0, parsePos[0])) { - parsePos[0] += part.text_0.length; - continue; - } - return 0; - } - } - if (!$calcDate(cal, date)) { - return 0; - } - return parsePos[0]; -} - -function $parse_1(this$static, text_0){ - var charsConsumed, curDate, date; - curDate = new Date_0; - date = new Date_1(curDate.jsdate.getFullYear() - $intern_47, curDate.jsdate.getMonth(), curDate.jsdate.getDate()); - charsConsumed = $parse_0(this$static, text_0, date); - if (charsConsumed == 0 || charsConsumed < text_0.length) { - throw toJs(new IllegalArgumentException_0(text_0)); - } - return date; -} - -function $parseInt(text_0, pos){ - var ch_0, ind, ret; - ret = 0; - ind = pos[0]; - if (ind >= text_0.length) { - return -1; - } - ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); - while (ch_0 >= 48 && ch_0 <= 57) { - ret = ret * 10 + (ch_0 - 48); - ++ind; - if (ind >= text_0.length) { - break; - } - ch_0 = (checkCriticalStringElementIndex(ind, text_0.length) , text_0.charCodeAt(ind)); - } - ind > pos[0]?(pos[0] = ind):(ret = -1); - return ret; -} - -function $parsePattern(this$static, pattern){ - var buf, ch_0, count, i, inQuote; - buf = new StringBuilder_0; - inQuote = false; - for (i = 0; i < pattern.length; i++) { - ch_0 = (checkCriticalStringElementIndex(i, pattern.length) , pattern.charCodeAt(i)); - if (ch_0 == 32) { - $addPart(this$static, buf, 0); - buf.string += ' '; - $addPart(this$static, buf, 0); - while (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 32)) { - ++i; - } - continue; - } - if (inQuote) { - if (ch_0 == 39) { - if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { - buf.string += String.fromCharCode(ch_0); - ++i; - } - else { - inQuote = false; - } - } - else { - buf.string += String.fromCharCode(ch_0); - } - continue; - } - if ($indexOf_1('GyMLdkHmsSEcDahKzZv', fromCodePoint(ch_0)) > 0) { - $addPart(this$static, buf, 0); - buf.string += String.fromCharCode(ch_0); - count = $getNextCharCountInPattern(pattern, i); - $addPart(this$static, buf, count); - i += count - 1; - continue; - } - if (ch_0 == 39) { - if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { - buf.string += "'"; - ++i; - } - else { - inQuote = true; - } - } - else { - buf.string += String.fromCharCode(ch_0); - } - } - $addPart(this$static, buf, 0); - $identifyAbutStart(this$static); -} - -function $parseTimeZoneOffset(text_0, pos, cal){ - var offset, sign, st, value_0; - if (pos[0] >= text_0.length) { - cal.tzOffset = 0; - return true; - } - switch ($charAt(text_0, pos[0])) { - case 43: - sign = 1; - break; - case 45: - sign = -1; - break; - default:cal.tzOffset = 0; - return true; - } - ++pos[0]; - st = pos[0]; - value_0 = $parseInt(text_0, pos); - if (value_0 == 0 && pos[0] == st) { - return false; - } - if (pos[0] < text_0.length && $charAt(text_0, pos[0]) == 58) { - offset = value_0 * 60; - ++pos[0]; - st = pos[0]; - value_0 = $parseInt(text_0, pos); - if (value_0 == 0 && pos[0] == st) { - return false; - } - offset += value_0; - } - else { - offset = value_0; - offset < 24 && pos[0] - st <= 2?(offset *= 60):(offset = offset % 100 + (offset / 100 | 0) * 60); - } - offset *= sign; - cal.tzOffset = -offset; - return true; -} - -function $skipSpace(text_0, pos){ - while (pos[0] < text_0.length && $indexOf_1(' \t\r\n', fromCodePoint($charAt(text_0, pos[0]))) >= 0) { - ++pos[0]; - } -} - -function $subFormat(buf, ch_0, count, adjustedDate, adjustedTime, timezone){ - var value_0, value0, value1, value10, value2, value3, value4, value5, value6, value7, value8, value9; - switch (ch_0) { - case 71: - value0 = adjustedDate.jsdate.getFullYear() - $intern_47 >= -1900?1:0; - count >= 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini'])[value0]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['BC', 'AD'])[value0]); - break; - case 121: - $formatYear(buf, count, adjustedDate); - break; - case 77: - $formatMonth(buf, count, adjustedDate); - break; - case 107: - value1 = adjustedTime.jsdate.getHours(); - value1 == 0?$zeroPaddingNumber(buf, 24, count):$zeroPaddingNumber(buf, value1, count); - break; - case 83: - $formatFractionalSeconds(buf, count, adjustedTime); - break; - case 69: - value2 = adjustedDate.jsdate.getDay(); - count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value2]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value2]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value2]); - break; - case 97: - adjustedTime.jsdate.getHours() >= 12 && adjustedTime.jsdate.getHours() < 24?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[1]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM'])[0]); - break; - case 104: - value3 = adjustedTime.jsdate.getHours() % 12; - value3 == 0?$zeroPaddingNumber(buf, 12, count):$zeroPaddingNumber(buf, value3, count); - break; - case 75: - value4 = adjustedTime.jsdate.getHours() % 12; - $zeroPaddingNumber(buf, value4, count); - break; - case 72: - value5 = adjustedTime.jsdate.getHours(); - $zeroPaddingNumber(buf, value5, count); - break; - case 99: - value6 = adjustedDate.jsdate.getDay(); - count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value6]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value6]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value6]):$zeroPaddingNumber(buf, value6, 1); - break; - case 76: - value7 = adjustedDate.jsdate.getMonth(); - count == 5?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value7]):count == 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value7]):count == 3?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value7]):$zeroPaddingNumber(buf, value7 + 1, count); - break; - case 81: - value8 = adjustedDate.jsdate.getMonth() / 3 | 0; - count < 4?$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Q1', 'Q2', 'Q3', 'Q4'])[value8]):$append_11(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'])[value8]); - break; - case 100: - value9 = adjustedDate.jsdate.getDate(); - $zeroPaddingNumber(buf, value9, count); - break; - case 109: - value10 = adjustedTime.jsdate.getMinutes(); - $zeroPaddingNumber(buf, value10, count); - break; - case 115: - value_0 = adjustedTime.jsdate.getSeconds(); - $zeroPaddingNumber(buf, value_0, count); - break; - case 122: - count < 4?$append_11(buf, timezone.tzNames[0]):$append_11(buf, timezone.tzNames[1]); - break; - case 118: - $append_11(buf, timezone.timezoneID); - break; - case 90: - count < 3?$append_11(buf, $getRFCTimeZoneString(timezone)):count == 3?$append_11(buf, $getISOTimeZoneString(timezone)):$append_11(buf, composeGMTString(timezone.standardOffset)); - break; - default:return false; - } - return true; -} - -function $subParse(text_0, pos, part, digitCount, cal){ - var ch_0, start_0, value_0; - $skipSpace(text_0, pos); - start_0 = pos[0]; - ch_0 = $charAt(part.text_0, 0); - value_0 = -1; - if ($isNumeric(part)) { - if (digitCount > 0) { - if (start_0 + digitCount > text_0.length) { - return false; - } - value_0 = $parseInt(text_0.substr(0, start_0 + digitCount), pos); - } - else { - value_0 = $parseInt(text_0, pos); - } - } - switch (ch_0) { - case 71: - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Before Christ', 'Anno Domini']), pos); - cal.era = value_0; - return true; - case 77: - return $subParseMonth(text_0, pos, cal, value_0, start_0); - case 76: - return $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0); - case 69: - return $subParseDayOfWeek(text_0, pos, start_0, cal); - case 99: - return $subParseStandaloneDay(text_0, pos, start_0, cal); - case 97: - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['AM', 'PM']), pos); - cal.ampm = value_0; - return true; - case 121: - return $subParseYear(text_0, pos, start_0, value_0, part, cal); - case 100: - if (value_0 <= 0) { - return false; - } - - cal.dayOfMonth = value_0; - return true; - case 83: - if (value_0 < 0) { - return false; - } - - return $subParseFractionalSeconds(value_0, start_0, pos[0], cal); - case 104: - value_0 == 12 && (value_0 = 0); - case 75: - case 72: - if (value_0 < 0) { - return false; - } - - cal.hours = value_0; - cal.midnightIs24 = false; - return true; - case 107: - if (value_0 < 0) { - return false; - } - - cal.hours = value_0; - cal.midnightIs24 = true; - return true; - case 109: - if (value_0 < 0) { - return false; - } - - cal.minutes = value_0; - return true; - case 115: - if (value_0 < 0) { - return false; - } - - cal.seconds = value_0; - return true; - case 90: - if (start_0 < text_0.length && (checkCriticalStringElementIndex(start_0, text_0.length) , text_0.charCodeAt(start_0) == 90)) { - ++pos[0]; - cal.tzOffset = 0; - return true; - } - - case 122: - case 118: - return $subParseTimeZoneInGMT(text_0, start_0, pos, cal); - default:return false; - } -} - -function $subParseDayOfWeek(text_0, pos, start_0, cal){ - var value_0; - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); - if (value_0 < 0) { - return false; - } - cal.dayOfWeek = value_0; - return true; -} - -function $subParseFractionalSeconds(value_0, start_0, end, cal){ - var a, i; - i = end - start_0; - if (i < 3) { - while (i < 3) { - value_0 *= 10; - ++i; - } - } - else { - a = 1; - while (i > 3) { - a *= 10; - --i; - } - value_0 = (value_0 + (a >> 1)) / a | 0; - } - cal.milliseconds = value_0; - return true; -} - -function $subParseMonth(text_0, pos, cal, value_0, start_0){ - if (value_0 < 0) { - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); - if (value_0 < 0) { - return false; - } - cal.month = value_0; - return true; - } - else if (value_0 > 0) { - cal.month = value_0 - 1; - return true; - } - return false; -} - -function $subParseStandaloneDay(text_0, pos, start_0, cal){ - var value_0; - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']), pos)); - if (value_0 < 0) { - return false; - } - cal.dayOfWeek = value_0; - return true; -} - -function $subParseStandaloneMonth(text_0, pos, cal, value_0, start_0){ - if (value_0 < 0) { - value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']), pos); - value_0 < 0 && (value_0 = $matchString(text_0, start_0, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']), pos)); - if (value_0 < 0) { - return false; - } - cal.month = value_0; - return true; - } - else if (value_0 > 0) { - cal.month = value_0 - 1; - return true; - } - return false; -} - -function $subParseTimeZoneInGMT(text_0, start_0, pos, cal){ - if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'GMT'.length), 'GMT')) { - pos[0] = start_0 + 3; - return $parseTimeZoneOffset(text_0, pos, cal); - } - if (start_0 >= 0 && $equals_5(text_0.substr(start_0, 'UTC'.length), 'UTC')) { - pos[0] = start_0 + 3; - return $parseTimeZoneOffset(text_0, pos, cal); - } - return $parseTimeZoneOffset(text_0, pos, cal); -} - -function $subParseYear(text_0, pos, start_0, value_0, part, cal){ - var ambiguousTwoDigitYear, ch_0, date, defaultCenturyStartYear; - ch_0 = 32; - if (value_0 < 0) { - if (pos[0] >= text_0.length) { - return false; - } - ch_0 = $charAt(text_0, pos[0]); - if (ch_0 != 43 && ch_0 != 45) { - return false; - } - ++pos[0]; - value_0 = $parseInt(text_0, pos); - if (value_0 < 0) { - return false; - } - ch_0 == 45 && (value_0 = -value_0); - } - if (ch_0 == 32 && pos[0] - start_0 == 2 && part.count == 2) { - date = new Date_0; - defaultCenturyStartYear = date.jsdate.getFullYear() - $intern_47 + $intern_47 - 80; - ambiguousTwoDigitYear = defaultCenturyStartYear % 100; - cal.ambiguousYear = value_0 == ambiguousTwoDigitYear; - value_0 += (defaultCenturyStartYear / 100 | 0) * 100 + (value_0 < ambiguousTwoDigitYear?100:0); - } - cal.year = value_0; - return true; -} - -function $zeroPaddingNumber(buf, value_0, minWidth){ - var b, i; - b = 10; - for (i = 0; i < minWidth - 1; i++) { - value_0 < b && (buf.string += '0' , buf); - b *= 10; - } - buf.string += value_0; -} - -defineClass(1050, 1, {}); -var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 1050); -function $clinit_DateTimeFormat_0(){ - $clinit_DateTimeFormat_0 = emptyMethod; - $clinit_DateTimeFormat(); - cache = new HashMap; -} - -function DateTimeFormat(pattern){ - $clinit_DateTimeFormat(); - this.patternParts = new ArrayList; - this.pattern = pattern; - $parsePattern(this, pattern); -} - -function getFormat(pattern, dtfi){ - $clinit_DateTimeFormat_0(); - var defaultDtfi, dtf; - defaultDtfi = $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); - dtf = null; - dtfi == defaultDtfi && (dtf = castTo($getStringValue(cache, pattern), 615)); - if (!dtf) { - dtf = new DateTimeFormat(pattern); - dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); - } - return dtf; -} - -defineClass(615, 1050, {615:1}, DateTimeFormat); -var cache; -var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 615); -defineClass(2001, 1, {}); -var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 2001); -defineClass(2002, 2001, {}); -var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 2002); -function $clinit_LocaleInfo(){ - $clinit_LocaleInfo = emptyMethod; - instance_0 = new LocaleInfo; -} - -function $getDateTimeFormatInfo(this$static){ - !this$static.dateTimeFormatInfo && (this$static.dateTimeFormatInfo = new DateTimeFormatInfoImpl); - return this$static.dateTimeFormatInfo; -} - -function LocaleInfo(){ -} - -defineClass(1090, 1, {}, LocaleInfo); -var instance_0; -var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 1090); -function $getISOTimeZoneString(this$static){ - var data_0, offset; - offset = -this$static.standardOffset; - data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 58, 48, 48]); - if (offset < 0) { - data_0[0] = 45; - offset = -offset; - } - data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; - data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; - data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_46; - data_0[5] = data_0[5] + offset % 10 & $intern_46; - return valueOf_9(data_0, 0, data_0.length); -} - -function $getRFCTimeZoneString(this$static){ - var data_0, offset; - offset = -this$static.standardOffset; - data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [43, 48, 48, 48, 48]); - if (offset < 0) { - data_0[0] = 45; - offset = -offset; - } - data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_46; - data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; - data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_46; - data_0[4] = data_0[4] + offset % 10 & $intern_46; - return valueOf_9(data_0, 0, data_0.length); -} - -function TimeZone(){ -} - -function composeGMTString(offset){ - var data_0; - data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); - if (offset <= 0) { - data_0[3] = 43; - offset = -offset; - } - data_0[4] = data_0[4] + ((offset / 60 | 0) / 10 | 0) & $intern_46; - data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_46; - data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_46; - data_0[8] = data_0[8] + offset % 10 & $intern_46; - return valueOf_9(data_0, 0, data_0.length); -} - -function composePOSIXTimeZoneID(offset){ - var str; - if (offset == 0) { - return 'Etc/GMT'; - } - if (offset < 0) { - offset = -offset; - str = 'Etc/GMT-'; - } - else { - str = 'Etc/GMT+'; - } - return str + offsetDisplay(offset); -} - -function composeUTCString(offset){ - var str; - if (offset == 0) { - return 'UTC'; - } - if (offset < 0) { - offset = -offset; - str = 'UTC+'; - } - else { - str = 'UTC-'; - } - return str + offsetDisplay(offset); -} - -function createTimeZone(timeZoneOffsetInMinutes){ - var tz; - tz = new TimeZone; - tz.standardOffset = timeZoneOffsetInMinutes; - tz.timezoneID = composePOSIXTimeZoneID(timeZoneOffsetInMinutes); - tz.tzNames = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 2, 6, 1); - tz.tzNames[0] = composeUTCString(timeZoneOffsetInMinutes); - tz.tzNames[1] = composeUTCString(timeZoneOffsetInMinutes); - return tz; -} - -function offsetDisplay(offset){ - var hour, mins; - hour = offset / 60 | 0; - mins = offset % 60; - if (mins == 0) { - return '' + hour; - } - return '' + hour + ':' + ('' + mins); -} - -defineClass(1918, 1, {}, TimeZone); -_.standardOffset = 0; -var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 1918); -function DateTimeFormatInfoImpl(){ -} - -defineClass(1258, 2002, {}, DateTimeFormatInfoImpl); -var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 1258); -function DateTimeFormat$PatternPart(txt, cnt){ - this.text_0 = txt; - this.count = cnt; - this.abutStart = false; -} - -defineClass(434, 1, {434:1}, DateTimeFormat$PatternPart); -_.abutStart = false; -_.count = 0; -var Lcom_google_gwt_i18n_shared_DateTimeFormat$PatternPart_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat/PatternPart', 434); -function $compareTo_0(this$static, other){ - return compare_6(fromDouble_0(this$static.jsdate.getTime()), fromDouble_0(other.jsdate.getTime())); -} - -function $fixDaylightSavings(this$static, requestedHours){ - var badHours, copy, day, newTime, originalTimeInMillis, timeDiff, timeDiffHours, timeDiffMinutes; - requestedHours %= 24; - if (this$static.jsdate.getHours() != requestedHours) { - copy = new $wnd.Date(this$static.jsdate.getTime()); - copy.setDate(copy.getDate() + 1); - timeDiff = this$static.jsdate.getTimezoneOffset() - copy.getTimezoneOffset(); - if (timeDiff > 0) { - timeDiffHours = timeDiff / 60 | 0; - timeDiffMinutes = timeDiff % 60; - day = this$static.jsdate.getDate(); - badHours = this$static.jsdate.getHours(); - badHours + timeDiffHours >= 24 && ++day; - newTime = new $wnd.Date(this$static.jsdate.getFullYear(), this$static.jsdate.getMonth(), day, requestedHours + timeDiffHours, this$static.jsdate.getMinutes() + timeDiffMinutes, this$static.jsdate.getSeconds(), this$static.jsdate.getMilliseconds()); - this$static.jsdate.setTime(newTime.getTime()); - } - } - originalTimeInMillis = this$static.jsdate.getTime(); - this$static.jsdate.setTime(originalTimeInMillis + 3600000); - this$static.jsdate.getHours() != requestedHours && this$static.jsdate.setTime(originalTimeInMillis); -} - -function $setDate(this$static, date){ - var hours; - hours = this$static.jsdate.getHours(); - this$static.jsdate.setDate(date); - $fixDaylightSavings(this$static, hours); -} - -function $setHours(this$static, hours){ - this$static.jsdate.setHours(hours); - $fixDaylightSavings(this$static, hours); -} - -function $setMinutes(this$static, minutes){ - var hours; - hours = this$static.jsdate.getHours() + (minutes / 60 | 0); - this$static.jsdate.setMinutes(minutes); - $fixDaylightSavings(this$static, hours); -} - -function $setMonth(this$static, month){ - var hours; - hours = this$static.jsdate.getHours(); - this$static.jsdate.setMonth(month); - $fixDaylightSavings(this$static, hours); -} - -function $setSeconds(this$static, seconds){ - var hours; - hours = this$static.jsdate.getHours() + (seconds / 3600 | 0); - this$static.jsdate.setSeconds(seconds); - $fixDaylightSavings(this$static, hours); -} - -function $setTime(this$static, time){ - this$static.jsdate.setTime(toDouble_0(time)); -} - -function $setYear(this$static, year){ - var hours; - hours = this$static.jsdate.getHours(); - this$static.jsdate.setFullYear(year + $intern_47); - $fixDaylightSavings(this$static, hours); -} - -function Date_0(){ - this.jsdate = new $wnd.Date; -} - -function Date_1(year, month, date){ - this.jsdate = new $wnd.Date; - this.jsdate.setFullYear(year + $intern_47, month, date); - this.jsdate.setHours(0, 0, 0, 0); - $fixDaylightSavings(this, 0); -} - -function Date_2(date){ - this.jsdate = new $wnd.Date(toDouble_0(date)); -} - -function padTwo(number){ - return number < 10?'0' + number:'' + number; -} - -defineClass(199, 1, $intern_49, Date_0, Date_1, Date_2); -_.compareTo_0 = function compareTo_4(other){ - return $compareTo_0(this, castTo(other, 199)); -} -; -_.equals_0 = function equals_30(obj){ - return instanceOf(obj, 199) && eq(fromDouble_0(this.jsdate.getTime()), fromDouble_0(castTo(obj, 199).jsdate.getTime())); -} -; -_.hashCode_1 = function hashCode_30(){ - var time; - time = fromDouble_0(this.jsdate.getTime()); - return toInt_0(xor_0(time, shru_0(time, 32))); -} -; -_.toString_0 = function toString_31(){ - var hourOffset, minuteOffset, offset; - offset = -this.jsdate.getTimezoneOffset(); - hourOffset = (offset >= 0?'+':'') + (offset / 60 | 0); - minuteOffset = padTwo($wnd.Math.abs(offset) % 60); - return ($clinit_Date$StringData() , DAYS)[this.jsdate.getDay()] + ' ' + MONTHS[this.jsdate.getMonth()] + ' ' + padTwo(this.jsdate.getDate()) + ' ' + padTwo(this.jsdate.getHours()) + ':' + padTwo(this.jsdate.getMinutes()) + ':' + padTwo(this.jsdate.getSeconds()) + ' GMT' + hourOffset + minuteOffset + ' ' + this.jsdate.getFullYear(); -} -; -var Ljava_util_Date_2_classLit = createForClass('java.util', 'Date', 199); -function $calcDate(this$static, date){ - var adjustment, daysInCurrentMonth, defaultCenturyStart, offset, orgDayOfMonth, orgMonth, tmp; - this$static.era == 0 && this$static.year > 0 && (this$static.year = -(this$static.year - 1)); - this$static.year > $intern_42 && $setYear(date, this$static.year - $intern_47); - orgDayOfMonth = date.jsdate.getDate(); - $setDate(date, 1); - this$static.month >= 0 && $setMonth(date, this$static.month); - if (this$static.dayOfMonth >= 0) { - $setDate(date, this$static.dayOfMonth); - } - else if (this$static.month >= 0) { - tmp = new Date_1(date.jsdate.getFullYear() - $intern_47, date.jsdate.getMonth(), 35); - daysInCurrentMonth = 35 - tmp.jsdate.getDate(); - $setDate(date, $wnd.Math.min(daysInCurrentMonth, orgDayOfMonth)); - } - else { - $setDate(date, orgDayOfMonth); - } - this$static.hours < 0 && (this$static.hours = date.jsdate.getHours()); - this$static.ampm > 0 && this$static.hours < 12 && (this$static.hours += 12); - $setHours(date, this$static.hours == 24 && this$static.midnightIs24?0:this$static.hours); - this$static.minutes >= 0 && $setMinutes(date, this$static.minutes); - this$static.seconds >= 0 && $setSeconds(date, this$static.seconds); - this$static.milliseconds >= 0 && $setTime(date, add_20(mul_0(div(fromDouble_0(date.jsdate.getTime()), $intern_45), $intern_45), this$static.milliseconds)); - if (this$static.ambiguousYear) { - defaultCenturyStart = new Date_0; - $setYear(defaultCenturyStart, defaultCenturyStart.jsdate.getFullYear() - $intern_47 - 80); - lt(fromDouble_0(date.jsdate.getTime()), fromDouble_0(defaultCenturyStart.jsdate.getTime())) && $setYear(date, defaultCenturyStart.jsdate.getFullYear() - $intern_47 + 100); - } - if (this$static.dayOfWeek >= 0) { - if (this$static.dayOfMonth == -1) { - adjustment = (7 + this$static.dayOfWeek - date.jsdate.getDay()) % 7; - adjustment > 3 && (adjustment -= 7); - orgMonth = date.jsdate.getMonth(); - $setDate(date, date.jsdate.getDate() + adjustment); - date.jsdate.getMonth() != orgMonth && $setDate(date, date.jsdate.getDate() + (adjustment > 0?-7:7)); - } - else { - if (date.jsdate.getDay() != this$static.dayOfWeek) { - return false; - } - } - } - if (this$static.tzOffset > $intern_42) { - offset = date.jsdate.getTimezoneOffset(); - $setTime(date, add_20(fromDouble_0(date.jsdate.getTime()), (this$static.tzOffset - offset) * 60 * $intern_45)); - } - return true; -} - -function DateRecord(){ - Date_0.call(this); - this.era = -1; - this.ambiguousYear = false; - this.year = $intern_42; - this.month = -1; - this.dayOfMonth = -1; - this.ampm = -1; - this.midnightIs24 = false; - this.hours = -1; - this.minutes = -1; - this.seconds = -1; - this.milliseconds = -1; - this.dayOfWeek = -1; - this.tzOffset = $intern_42; -} - -defineClass(1915, 199, $intern_49, DateRecord); -_.ambiguousYear = false; -_.ampm = 0; -_.dayOfMonth = 0; -_.dayOfWeek = 0; -_.era = 0; -_.hours = 0; -_.midnightIs24 = false; -_.milliseconds = 0; -_.minutes = 0; -_.month = 0; -_.seconds = 0; -_.tzOffset = 0; -_.year = 0; -var Lcom_google_gwt_i18n_shared_impl_DateRecord_2_classLit = createForClass('com.google.gwt.i18n.shared.impl', 'DateRecord', 1915); -defineClass(1966, 1, {}); -_.isArray_0 = function isArray(){ - return null; -} -; -_.isBoolean = function isBoolean(){ - return null; -} -; -_.isNumber = function isNumber(){ - return null; -} -; -_.isObject = function isObject(){ - return null; -} -; -_.isString = function isString(){ - return null; -} -; -var Lcom_google_gwt_json_client_JSONValue_2_classLit = createForClass('com.google.gwt.json.client', 'JSONValue', 1966); -function $get_8(this$static, index_0){ - var v = this$static.jsArray[index_0]; - var func = ($clinit_JSONParser() , typeMap)[typeof v]; - return func?func(v):throwUnknownTypeException(typeof v); -} - -function $set_0(this$static, index_0, value_0){ - var previous; - previous = $get_8(this$static, index_0); - $set0(this$static, index_0, value_0); - return previous; -} - -function $set0(this$static, index_0, value_0){ - if (value_0) { - var func = value_0.getUnwrapper(); - value_0 = func(value_0); - } - else { - value_0 = undefined; - } - this$static.jsArray[index_0] = value_0; -} - -function JSONArray(){ - this.jsArray = []; -} - -function JSONArray_0(arr){ - this.jsArray = arr; -} - -function unwrap(value_0){ - return value_0.jsArray; -} - -defineClass(216, 1966, {216:1}, JSONArray, JSONArray_0); -_.equals_0 = function equals_31(other){ - if (!instanceOf(other, 216)) { - return false; - } - return $equals_3(this.jsArray, castTo(other, 216).jsArray); -} -; -_.getUnwrapper = function getUnwrapper(){ - return unwrap; -} -; -_.hashCode_1 = function hashCode_31(){ - return $hashCode(this.jsArray); -} -; -_.isArray_0 = function isArray_0(){ - return this; -} -; -_.toString_0 = function toString_32(){ - var c, i, sb; - sb = new StringBuilder_1('['); - for (i = 0 , c = this.jsArray.length; i < c; i++) { - i > 0 && (sb.string += ',' , sb); - $append_10(sb, $get_8(this, i)); - } - sb.string += ']'; - return sb.string; -} -; -var Lcom_google_gwt_json_client_JSONArray_2_classLit = createForClass('com.google.gwt.json.client', 'JSONArray', 216); -function $clinit_JSONBoolean(){ - $clinit_JSONBoolean = emptyMethod; - FALSE = new JSONBoolean(false); - TRUE = new JSONBoolean(true); -} - -function JSONBoolean(value_0){ - this.value_0 = value_0; -} - -function unwrap_0(value_0){ - return value_0.value_0; -} - -defineClass(483, 1966, {483:1}, JSONBoolean); -_.getUnwrapper = function getUnwrapper_0(){ - return unwrap_0; -} -; -_.isBoolean = function isBoolean_0(){ - return this; -} -; -_.toString_0 = function toString_33(){ - return $clinit_Boolean() , '' + this.value_0; -} -; -_.value_0 = false; -var FALSE, TRUE; -var Lcom_google_gwt_json_client_JSONBoolean_2_classLit = createForClass('com.google.gwt.json.client', 'JSONBoolean', 483); -function JSONException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(985, 60, $intern_43, JSONException); -var Lcom_google_gwt_json_client_JSONException_2_classLit = createForClass('com.google.gwt.json.client', 'JSONException', 985); -function $clinit_JSONNull(){ - $clinit_JSONNull = emptyMethod; - instance_1 = new JSONNull; -} - -function JSONNull(){ -} - -function unwrap_1(){ - return null; -} - -defineClass(1023, 1966, {}, JSONNull); -_.getUnwrapper = function getUnwrapper_1(){ - return unwrap_1; -} -; -_.toString_0 = function toString_34(){ - return 'null'; -} -; -var instance_1; -var Lcom_google_gwt_json_client_JSONNull_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNull', 1023); -function JSONNumber(value_0){ - this.value_0 = value_0; -} - -function unwrap_2(value_0){ - return value_0.value_0; -} - -defineClass(258, 1966, {258:1}, JSONNumber); -_.equals_0 = function equals_32(other){ - if (!instanceOf(other, 258)) { - return false; - } - return this.value_0 == castTo(other, 258).value_0; -} -; -_.getUnwrapper = function getUnwrapper_2(){ - return unwrap_2; -} -; -_.hashCode_1 = function hashCode_32(){ - return $hashCode_0(this.value_0); -} -; -_.isNumber = function isNumber_0(){ - return this; -} -; -_.toString_0 = function toString_35(){ - return this.value_0 + ''; -} -; -_.value_0 = 0; -var Lcom_google_gwt_json_client_JSONNumber_2_classLit = createForClass('com.google.gwt.json.client', 'JSONNumber', 258); -function $computeKeys0(this$static, result){ - var jsObject = this$static.jsObject; - var i = 0; - for (var key in jsObject) { - jsObject.hasOwnProperty(key) && (result[i++] = key); - } - return result; -} - -function $containsKey_2(this$static, key){ - return key in this$static.jsObject; -} - -function $get_9(this$static, key){ - if (key == null) { - throw toJs(new NullPointerException); - } - return $get0(this$static, key); -} - -function $get0(this$static, key){ - var jsObject = this$static.jsObject; - var v; - key = String(key); - jsObject.hasOwnProperty(key) && (v = jsObject[key]); - var func = ($clinit_JSONParser() , typeMap)[typeof v]; - var ret = func?func(v):throwUnknownTypeException(typeof v); - return ret; -} - -function $put_5(this$static, key, jsonValue){ - var previous; - if (key == null) { - throw toJs(new NullPointerException); - } - previous = $get_9(this$static, key); - $put0(this$static, key, jsonValue); - return previous; -} - -function $put0(this$static, key, value_0){ - if (value_0) { - var func = value_0.getUnwrapper(); - this$static.jsObject[key] = func(value_0); - } - else { - delete this$static.jsObject[key]; - } -} - -function JSONObject(){ - JSONObject_0.call(this, {}); -} - -function JSONObject_0(jsValue){ - this.jsObject = jsValue; -} - -function unwrap_3(value_0){ - return value_0.jsObject; -} - -defineClass(183, 1966, {183:1}, JSONObject, JSONObject_0); -_.equals_0 = function equals_33(other){ - if (!instanceOf(other, 183)) { - return false; - } - return $equals_3(this.jsObject, castTo(other, 183).jsObject); -} -; -_.getUnwrapper = function getUnwrapper_3(){ - return unwrap_3; -} -; -_.hashCode_1 = function hashCode_33(){ - return $hashCode(this.jsObject); -} -; -_.isObject = function isObject_0(){ - return this; -} -; -_.toString_0 = function toString_36(){ - var first, key, key$array, key$index, key$max, keys_0, sb; - sb = new StringBuilder_1('{'); - first = true; - keys_0 = $computeKeys0(this, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)); - for (key$array = keys_0 , key$index = 0 , key$max = key$array.length; key$index < key$max; ++key$index) { - key = key$array[key$index]; - first?(first = false):(sb.string += ', ' , sb); - $append_11(sb, escapeValue(key)); - sb.string += ':'; - $append_10(sb, $get_9(this, key)); - } - sb.string += '}'; - return sb.string; -} -; -var Lcom_google_gwt_json_client_JSONObject_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject', 183); -function JSONObject$1(this$0, val$keys){ - this.this$01 = this$0; - this.val$keys2 = val$keys; -} - -defineClass(596, $intern_9, $intern_10, JSONObject$1); -_.contains = function contains_27(o){ - return instanceOfString(o) && $containsKey_2(this.this$01, castToString(o)); -} -; -_.iterator_0 = function iterator_45(){ - return new AbstractList$IteratorImpl(new Arrays$ArrayList(this.val$keys2)); -} -; -_.size_1 = function size_36(){ - return this.val$keys2.length; -} -; -var Lcom_google_gwt_json_client_JSONObject$1_2_classLit = createForClass('com.google.gwt.json.client', 'JSONObject/1', 596); -function $clinit_JSONParser(){ - $clinit_JSONParser = emptyMethod; - typeMap = {'boolean':createBoolean, 'number':createNumber, 'string':createString, 'object':createObject, 'function':createObject, 'undefined':createUndefined}; -} - -function createBoolean(v){ - return $clinit_JSONBoolean() , v?TRUE:FALSE; -} - -function createNumber(v){ - return new JSONNumber(v); -} - -function createObject(o){ - if (!o) { - return $clinit_JSONNull() , instance_1; - } - var v = o.valueOf?o.valueOf():o; - if (v !== o) { - var func = typeMap[typeof v]; - return func?func(v):throwUnknownTypeException(typeof v); - } - else if (o instanceof Array || o instanceof $wnd.Array) { - return new JSONArray_0(o); - } - else { - return new JSONObject_0(o); - } -} - -function createString(v){ - return new JSONString(v); -} - -function createUndefined(){ - return null; -} - -function throwUnknownTypeException(typeString){ - $clinit_JSONParser(); - throw toJs(new JSONException("Unexpected typeof result '" + typeString + "'; please report this bug to the GWT team")); -} - -var typeMap; -function JSONString(value_0){ - if (value_0 == null) { - throw toJs(new NullPointerException); - } - this.value_0 = value_0; -} - -function unwrap_4(value_0){ - return value_0.value_0; -} - -defineClass(204, 1966, {204:1}, JSONString); -_.equals_0 = function equals_34(other){ - if (!instanceOf(other, 204)) { - return false; - } - return $equals_5(this.value_0, castTo(other, 204).value_0); -} -; -_.getUnwrapper = function getUnwrapper_4(){ - return unwrap_4; -} -; -_.hashCode_1 = function hashCode_34(){ - return getHashCode_1(this.value_0); -} -; -_.isString = function isString_0(){ - return this; -} -; -_.toString_0 = function toString_37(){ - return escapeValue(this.value_0); -} -; -var Lcom_google_gwt_json_client_JSONString_2_classLit = createForClass('com.google.gwt.json.client', 'JSONString', 204); -function canSet(array, value_0){ - var elementTypeCategory; - switch (getElementTypeCategory(array)) { - case 6: - return instanceOfString(value_0); - case 7: - return instanceOfDouble(value_0); - case 8: - return instanceOfBoolean(value_0); - case 3: - return Array.isArray(value_0) && (elementTypeCategory = getElementTypeCategory(value_0) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16)); - case 11: - return value_0 != null && typeof value_0 === 'function'; - case 12: - return value_0 != null && (typeof value_0 === 'object' || typeof value_0 == 'function'); - case 0: - return canCast(value_0, array.__elementTypeId$); - case 2: - return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn); - case 1: - return isJsObjectOrFunction(value_0) && !(value_0.typeMarker === typeMarkerFn) || canCast(value_0, array.__elementTypeId$); - default:return true; - } -} - -function getClassLiteralForArray(clazz, dimensions){ - return getClassLiteralForArray_0(clazz, dimensions); -} - -function getElementTypeCategory(array){ - return array.__elementTypeCategory$ == null?10:array.__elementTypeCategory$; -} - -function initMultidimensionalArray(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, count){ - return initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, 0, count); -} - -function initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count){ - var elementTypeCategory, i, isLastDimension, length_0, result; - length_0 = dimExprs[index_0]; - isLastDimension = index_0 == count - 1; - elementTypeCategory = isLastDimension?leafElementTypeCategory:0; - result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); - leafElementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, count - index_0), castableTypeMapExprs[index_0], elementTypeIds[index_0], elementTypeCategory, result); - if (!isLastDimension) { - ++index_0; - for (i = 0; i < length_0; ++i) { - result[i] = initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count); - } - } - return result; -} - -function initUnidimensionalArray(leafClassLiteral, castableTypeMap, elementTypeId, length_0, elementTypeCategory, dimensions){ - var result; - result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); - elementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, dimensions), castableTypeMap, elementTypeId, elementTypeCategory, result); - return result; -} - -function initializeArrayElementsWithDefaults(elementTypeCategory, length_0){ - var array = new Array(length_0); - var initValue; - switch (elementTypeCategory) { - case 14: - case 15: - initValue = 0; - break; - case 16: - initValue = false; - break; - default:return array; - } - for (var i = 0; i < length_0; ++i) { - array[i] = initValue; - } - return array; -} - -function isJavaArray(src_0){ - return Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; -} - -function setCheck(array, index_0, value_0){ - checkCriticalArrayType(value_0 == null || canSet(array, value_0)); - return array[index_0] = value_0; -} - -function stampJavaTypeInfo(arrayClass, castableTypeMap, elementTypeId, elementTypeCategory, array){ - array.___clazz = arrayClass; - array.castableTypeMap = castableTypeMap; - array.typeMarker = typeMarkerFn; - array.__elementTypeId$ = elementTypeId; - array.__elementTypeCategory$ = elementTypeCategory; - return array; -} - -function stampJavaTypeInfo_0(array, referenceType){ - getElementTypeCategory(referenceType) != 10 && stampJavaTypeInfo(getClass__Ljava_lang_Class___devirtual$(referenceType), referenceType.castableTypeMap, referenceType.__elementTypeId$, getElementTypeCategory(referenceType), array); - return array; -} - -function create_0(value_0){ - var a0, a1, a2; - a0 = value_0 & $intern_50; - a1 = value_0 >> 22 & $intern_50; - a2 = value_0 < 0?$intern_51:0; - return create0(a0, a1, a2); -} - -function create_1(a){ - return create0(a.l, a.m, a.h); -} - -function create0(l, m, h){ - return {l:l, m:m, h:h}; -} - -function divMod(a, b, computeRemainder){ - var aIsCopy, aIsMinValue, aIsNegative, bpower, c, negative; - if (b.l == 0 && b.m == 0 && b.h == 0) { - throw toJs(new ArithmeticException('divide by zero')); - } - if (a.l == 0 && a.m == 0 && a.h == 0) { - computeRemainder && (remainder = create0(0, 0, 0)); - return create0(0, 0, 0); - } - if (b.h == $intern_52 && b.m == 0 && b.l == 0) { - return divModByMinValue(a, computeRemainder); - } - negative = false; - if (b.h >> 19 != 0) { - b = neg(b); - negative = !negative; - } - bpower = powerOfTwo(b); - aIsNegative = false; - aIsMinValue = false; - aIsCopy = false; - if (a.h == $intern_52 && a.m == 0 && a.l == 0) { - aIsMinValue = true; - aIsNegative = true; - if (bpower == -1) { - a = create_1(($clinit_BigLongLib$Const() , MAX_VALUE)); - aIsCopy = true; - negative = !negative; - } - else { - c = shr(a, bpower); - negative && negate(c); - computeRemainder && (remainder = create0(0, 0, 0)); - return c; - } - } - else if (a.h >> 19 != 0) { - aIsNegative = true; - a = neg(a); - aIsCopy = true; - negative = !negative; - } - if (bpower != -1) { - return divModByShift(a, bpower, negative, aIsNegative, computeRemainder); - } - if (compare_1(a, b) < 0) { - computeRemainder && (aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h))); - return create0(0, 0, 0); - } - return divModHelper(aIsCopy?a:create0(a.l, a.m, a.h), b, negative, aIsNegative, aIsMinValue, computeRemainder); -} - -function divModByMinValue(a, computeRemainder){ - if (a.h == $intern_52 && a.m == 0 && a.l == 0) { - computeRemainder && (remainder = create0(0, 0, 0)); - return create_1(($clinit_BigLongLib$Const() , ONE)); - } - computeRemainder && (remainder = create0(a.l, a.m, a.h)); - return create0(0, 0, 0); -} - -function divModByShift(a, bpower, negative, aIsNegative, computeRemainder){ - var c; - c = shr(a, bpower); - negative && negate(c); - if (computeRemainder) { - a = maskRight(a, bpower); - aIsNegative?(remainder = neg(a)):(remainder = create0(a.l, a.m, a.h)); - } - return c; -} - -function divModHelper(a, b, negative, aIsNegative, aIsMinValue, computeRemainder){ - var bshift, gte, quotient, shift_0, a1, a2, a0; - shift_0 = numberOfLeadingZeros(b) - numberOfLeadingZeros(a); - bshift = shl(b, shift_0); - quotient = create0(0, 0, 0); - while (shift_0 >= 0) { - gte = trialSubtract(a, bshift); - if (gte) { - shift_0 < 22?(quotient.l |= 1 << shift_0 , undefined):shift_0 < 44?(quotient.m |= 1 << shift_0 - 22 , undefined):(quotient.h |= 1 << shift_0 - 44 , undefined); - if (a.l == 0 && a.m == 0 && a.h == 0) { - break; - } - } - a1 = bshift.m; - a2 = bshift.h; - a0 = bshift.l; - bshift.h = a2 >>> 1; - bshift.m = a1 >>> 1 | (a2 & 1) << 21; - bshift.l = a0 >>> 1 | (a1 & 1) << 21; - --shift_0; - } - negative && negate(quotient); - if (computeRemainder) { - if (aIsNegative) { - remainder = neg(a); - aIsMinValue && (remainder = sub_1(remainder, ($clinit_BigLongLib$Const() , ONE))); - } - else { - remainder = create0(a.l, a.m, a.h); - } - } - return quotient; -} - -function maskRight(a, bits){ - var b0, b1, b2; - if (bits <= 22) { - b0 = a.l & (1 << bits) - 1; - b1 = b2 = 0; - } - else if (bits <= 44) { - b0 = a.l; - b1 = a.m & (1 << bits - 22) - 1; - b2 = 0; - } - else { - b0 = a.l; - b1 = a.m; - b2 = a.h & (1 << bits - 44) - 1; - } - return create0(b0, b1, b2); -} - -function negate(a){ - var neg0, neg1, neg2; - neg0 = ~a.l + 1 & $intern_50; - neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; - neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; - a.l = neg0; - a.m = neg1; - a.h = neg2; -} - -function numberOfLeadingZeros(a){ - var b1, b2; - b2 = numberOfLeadingZeros_0(a.h); - if (b2 == 32) { - b1 = numberOfLeadingZeros_0(a.m); - return b1 == 32?numberOfLeadingZeros_0(a.l) + 32:b1 + 20 - 10; - } - else { - return b2 - 12; - } -} - -function powerOfTwo(a){ - var h, l, m; - l = a.l; - if ((l & l - 1) != 0) { - return -1; - } - m = a.m; - if ((m & m - 1) != 0) { - return -1; - } - h = a.h; - if ((h & h - 1) != 0) { - return -1; - } - if (h == 0 && m == 0 && l == 0) { - return -1; - } - if (h == 0 && m == 0 && l != 0) { - return numberOfTrailingZeros(l); - } - if (h == 0 && m != 0 && l == 0) { - return numberOfTrailingZeros(m) + 22; - } - if (h != 0 && m == 0 && l == 0) { - return numberOfTrailingZeros(h) + 44; - } - return -1; -} - -function toDoubleHelper(a){ - return a.l + a.m * $intern_53 + a.h * $intern_54; -} - -function trialSubtract(a, b){ - var sum0, sum1, sum2; - sum2 = a.h - b.h; - if (sum2 < 0) { - return false; - } - sum0 = a.l - b.l; - sum1 = a.m - b.m + (sum0 >> 22); - sum2 += sum1 >> 22; - if (sum2 < 0) { - return false; - } - a.l = sum0 & $intern_50; - a.m = sum1 & $intern_50; - a.h = sum2 & $intern_51; - return true; -} - -var remainder; -function add_19(a, b){ - var sum0, sum1, sum2; - sum0 = a.l + b.l; - sum1 = a.m + b.m + (sum0 >> 22); - sum2 = a.h + b.h + (sum1 >> 22); - return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); -} - -function and(a, b){ - return create0(a.l & b.l, a.m & b.m, a.h & b.h); -} - -function compare_1(a, b){ - var a0, a1, a2, b0, b1, b2, signA, signB; - signA = a.h >> 19; - signB = b.h >> 19; - if (signA != signB) { - return signB - signA; - } - a2 = a.h; - b2 = b.h; - if (a2 != b2) { - return a2 - b2; - } - a1 = a.m; - b1 = b.m; - if (a1 != b1) { - return a1 - b1; - } - a0 = a.l; - b0 = b.l; - return a0 - b0; -} - -function fromDouble(value_0){ - var a0, a1, a2, negative, result; - if (isNaN(value_0)) { - return $clinit_BigLongLib$Const() , ZERO; - } - if (value_0 < -9223372036854775808) { - return $clinit_BigLongLib$Const() , MIN_VALUE; - } - if (value_0 >= 9223372036854775807) { - return $clinit_BigLongLib$Const() , MAX_VALUE; - } - negative = false; - if (value_0 < 0) { - negative = true; - value_0 = -value_0; - } - a2 = 0; - if (value_0 >= $intern_54) { - a2 = round_int(value_0 / $intern_54); - value_0 -= a2 * $intern_54; - } - a1 = 0; - if (value_0 >= $intern_53) { - a1 = round_int(value_0 / $intern_53); - value_0 -= a1 * $intern_53; - } - a0 = round_int(value_0); - result = create0(a0, a1, a2); - negative && negate(result); - return result; -} - -function mul(a, b){ - var a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c0, c00, c01, c1, c10, c11, c12, c13, c2, c22, c23, c24, p0, p1, p2, p3, p4; - a0 = a.l & 8191; - a1 = a.l >> 13 | (a.m & 15) << 9; - a2 = a.m >> 4 & 8191; - a3 = a.m >> 17 | (a.h & 255) << 5; - a4 = (a.h & 1048320) >> 8; - b0 = b.l & 8191; - b1 = b.l >> 13 | (b.m & 15) << 9; - b2 = b.m >> 4 & 8191; - b3 = b.m >> 17 | (b.h & 255) << 5; - b4 = (b.h & 1048320) >> 8; - p0 = a0 * b0; - p1 = a1 * b0; - p2 = a2 * b0; - p3 = a3 * b0; - p4 = a4 * b0; - if (b1 != 0) { - p1 += a0 * b1; - p2 += a1 * b1; - p3 += a2 * b1; - p4 += a3 * b1; - } - if (b2 != 0) { - p2 += a0 * b2; - p3 += a1 * b2; - p4 += a2 * b2; - } - if (b3 != 0) { - p3 += a0 * b3; - p4 += a1 * b3; - } - b4 != 0 && (p4 += a0 * b4); - c00 = p0 & $intern_50; - c01 = (p1 & 511) << 13; - c0 = c00 + c01; - c10 = p0 >> 22; - c11 = p1 >> 9; - c12 = (p2 & 262143) << 4; - c13 = (p3 & 31) << 17; - c1 = c10 + c11 + c12 + c13; - c22 = p2 >> 18; - c23 = p3 >> 5; - c24 = (p4 & 4095) << 8; - c2 = c22 + c23 + c24; - c1 += c0 >> 22; - c0 &= $intern_50; - c2 += c1 >> 22; - c1 &= $intern_50; - c2 &= $intern_51; - return create0(c0, c1, c2); -} - -function neg(a){ - var neg0, neg1, neg2; - neg0 = ~a.l + 1 & $intern_50; - neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; - neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; - return create0(neg0, neg1, neg2); -} - -function not(a){ - return create0(~a.l & $intern_50, ~a.m & $intern_50, ~a.h & $intern_51); -} - -function or(a, b){ - return create0(a.l | b.l, a.m | b.m, a.h | b.h); -} - -function shl(a, n){ - var res0, res1, res2; - n &= 63; - if (n < 22) { - res0 = a.l << n; - res1 = a.m << n | a.l >> 22 - n; - res2 = a.h << n | a.m >> 22 - n; - } - else if (n < 44) { - res0 = 0; - res1 = a.l << n - 22; - res2 = a.m << n - 22 | a.l >> 44 - n; - } - else { - res0 = 0; - res1 = 0; - res2 = a.l << n - 44; - } - return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); -} - -function shr(a, n){ - var a2, negative, res0, res1, res2; - n &= 63; - a2 = a.h; - negative = (a2 & $intern_52) != 0; - negative && (a2 |= -1048576); - if (n < 22) { - res2 = a2 >> n; - res1 = a.m >> n | a2 << 22 - n; - res0 = a.l >> n | a.m << 22 - n; - } - else if (n < 44) { - res2 = negative?$intern_51:0; - res1 = a2 >> n - 22; - res0 = a.m >> n - 22 | a2 << 44 - n; - } - else { - res2 = negative?$intern_51:0; - res1 = negative?$intern_50:0; - res0 = a2 >> n - 44; - } - return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); -} - -function shru(a, n){ - var a2, res0, res1, res2; - n &= 63; - a2 = a.h & $intern_51; - if (n < 22) { - res2 = a2 >>> n; - res1 = a.m >> n | a2 << 22 - n; - res0 = a.l >> n | a.m << 22 - n; - } - else if (n < 44) { - res2 = 0; - res1 = a2 >>> n - 22; - res0 = a.m >> n - 22 | a.h << 44 - n; - } - else { - res2 = 0; - res1 = 0; - res0 = a2 >>> n - 44; - } - return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); -} - -function sub_1(a, b){ - var sum0, sum1, sum2; - sum0 = a.l - b.l; - sum1 = a.m - b.m + (sum0 >> 22); - sum2 = a.h - b.h + (sum1 >> 22); - return create0(sum0 & $intern_50, sum1 & $intern_50, sum2 & $intern_51); -} - -function toDouble(a){ - if (compare_1(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { - return -toDoubleHelper(neg(a)); - } - return a.l + a.m * $intern_53 + a.h * $intern_54; -} - -function toInt(a){ - return a.l | a.m << 22; -} - -function toString_38(a){ - var digits, rem, res, tenPowerLong, zeroesNeeded; - if (a.l == 0 && a.m == 0 && a.h == 0) { - return '0'; - } - if (a.h == $intern_52 && a.m == 0 && a.l == 0) { - return '-9223372036854775808'; - } - if (a.h >> 19 != 0) { - return '-' + toString_38(neg(a)); - } - rem = a; - res = ''; - while (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { - tenPowerLong = create_0($intern_55); - rem = divMod(rem, tenPowerLong, true); - digits = '' + toInt(remainder); - if (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { - zeroesNeeded = 9 - digits.length; - for (; zeroesNeeded > 0; zeroesNeeded--) { - digits = '0' + digits; - } - } - res = digits + res; - } - return res; -} - -function xor(a, b){ - return create0(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); -} - -function $clinit_BigLongLib$Const(){ - $clinit_BigLongLib$Const = emptyMethod; - MAX_VALUE = create0($intern_50, $intern_50, 524287); - MIN_VALUE = create0(0, 0, $intern_52); - ONE = create_0(1); - create_0(2); - ZERO = create_0(0); -} - -var MAX_VALUE, MIN_VALUE, ONE, ZERO; -function toJava(e){ - var javaException; - if (instanceOf(e, 78)) { - return e; - } - javaException = e && e.__java$exception; - if (!javaException) { - javaException = new JavaScriptException(e); - captureStackTrace(javaException); - } - return javaException; -} - -function toJs(t){ - return t.backingJsObject; -} - -function add_20(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a + b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul(add_19(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function and_0(a, b){ - return createLongEmul(and(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function compare_2(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a - b; - if (!isNaN(result)) { - return result; - } - } - return compare_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b); -} - -function createLongEmul(big_0){ - var a2; - a2 = big_0.h; - if (a2 == 0) { - return big_0.l + big_0.m * $intern_53; - } - if (a2 == $intern_51) { - return big_0.l + big_0.m * $intern_53 - $intern_54; - } - return big_0; -} - -function div(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a / b; - if ($intern_56 < result && result < $intern_54) { - return result < 0?$wnd.Math.ceil(result):$wnd.Math.floor(result); - } - } - return createLongEmul(divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, false)); -} - -function eq(a, b){ - return compare_2(a, b) == 0; -} - -function fromDouble_0(value_0){ - if ($intern_56 < value_0 && value_0 < $intern_54) { - return value_0 < 0?$wnd.Math.ceil(value_0):$wnd.Math.floor(value_0); - } - return createLongEmul(fromDouble(value_0)); -} - -function gt(a, b){ - return compare_2(a, b) > 0; -} - -function gte_0(a, b){ - return compare_2(a, b) >= 0; -} - -function isSmallLong0(value_0){ - return typeof value_0 === 'number'; -} - -function lt(a, b){ - return compare_2(a, b) < 0; -} - -function mod(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a % b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul((divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, true) , remainder)); -} - -function mul_0(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a * b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul(mul(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function neg_0(a){ - var result; - if (isSmallLong0(a)) { - result = 0 - a; - if (!isNaN(result)) { - return result; - } - } - return createLongEmul(neg(a)); -} - -function neq(a, b){ - return compare_2(a, b) != 0; -} - -function not_0(a){ - return createLongEmul(not(isSmallLong0(a)?toBigLong(a):a)); -} - -function or_0(a, b){ - return createLongEmul(or(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function shl_0(a, n){ - return createLongEmul(shl(isSmallLong0(a)?toBigLong(a):a, n)); -} - -function shr_0(a, n){ - return createLongEmul(shr(isSmallLong0(a)?toBigLong(a):a, n)); -} - -function shru_0(a, n){ - return createLongEmul(shru(isSmallLong0(a)?toBigLong(a):a, n)); -} - -function sub_2(a, b){ - var result; - if (isSmallLong0(a) && isSmallLong0(b)) { - result = a - b; - if ($intern_56 < result && result < $intern_54) { - return result; - } - } - return createLongEmul(sub_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function toBigLong(longValue){ - var a0, a1, a3, value_0; - value_0 = longValue; - a3 = 0; - if (value_0 < 0) { - value_0 += $intern_54; - a3 = $intern_51; - } - a1 = round_int(value_0 / $intern_53); - a0 = round_int(value_0 - a1 * $intern_53); - return create0(a0, a1, a3); -} - -function toDouble_0(a){ - var d; - if (isSmallLong0(a)) { - d = a; - return d == -0.?0:d; - } - return toDouble(a); -} - -function toInt_0(a){ - if (isSmallLong0(a)) { - return a | 0; - } - return toInt(a); -} - -function toString_39(a){ - if (isSmallLong0(a)) { - return '' + a; - } - return toString_38(a); -} - -function xor_0(a, b){ - return createLongEmul(xor(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); -} - -function init(){ - $clinit_ElkJs(); - exportLayout(); -} - -function $split(this$static, input_0){ - return input_0.split(this$static); -} - -defineClass(1962, 1, {525:1}); -var Ljava_io_OutputStream_2_classLit = createForClass('java.io', 'OutputStream', 1962); -defineClass(1963, 1962, {525:1}); -var Ljava_io_FilterOutputStream_2_classLit = createForClass('java.io', 'FilterOutputStream', 1963); -function PrintStream(){ -} - -defineClass(866, 1963, {525:1}, PrintStream); -var Ljava_io_PrintStream_2_classLit = createForClass('java.io', 'PrintStream', 866); -function $replace0(this$static, start_0, end, toInsert){ - this$static.string = $substring_1(this$static.string, 0, start_0) + ('' + toInsert) + $substring_0(this$static.string, end); -} - -function $substring(this$static, end){ - return $substring_1(this$static.string, 0, end); -} - -function AbstractStringBuilder(string){ - this.string = string; -} - -defineClass(418, 1, {475:1}); -_.toString_0 = function toString_41(){ - return this.string; -} -; -var Ljava_lang_AbstractStringBuilder_2_classLit = createForClass('java.lang', 'AbstractStringBuilder', 418); -function ArithmeticException(explanation){ - RuntimeException_0.call(this, explanation); -} - -defineClass(529, 60, $intern_43, ArithmeticException); -var Ljava_lang_ArithmeticException_2_classLit = createForClass('java.lang', 'ArithmeticException', 529); -function IndexOutOfBoundsException(){ - RuntimeException.call(this); -} - -function IndexOutOfBoundsException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(73, 60, $intern_57, IndexOutOfBoundsException, IndexOutOfBoundsException_0); -var Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'IndexOutOfBoundsException', 73); -function ArrayIndexOutOfBoundsException(){ - IndexOutOfBoundsException.call(this); -} - -function ArrayIndexOutOfBoundsException_0(msg){ - IndexOutOfBoundsException_0.call(this, msg); -} - -defineClass(320, 73, {3:1, 320:1, 102:1, 73:1, 60:1, 78:1}, ArrayIndexOutOfBoundsException, ArrayIndexOutOfBoundsException_0); -var Ljava_lang_ArrayIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'ArrayIndexOutOfBoundsException', 320); -function ArrayStoreException(){ - RuntimeException.call(this); -} - -function ArrayStoreException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(528, 60, $intern_43, ArrayStoreException, ArrayStoreException_0); -var Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang', 'ArrayStoreException', 528); -function Error_0(message){ - Throwable_0.call(this, message); -} - -function Error_1(message, cause){ - Throwable_1.call(this, message, cause); -} - -defineClass(289, 78, $intern_58, Error_0); -var Ljava_lang_Error_2_classLit = createForClass('java.lang', 'Error', 289); -function AssertionError(){ - Throwable.call(this); -} - -function AssertionError_0(message){ - Error_1.call(this, message == null?'null':toString_40(message), instanceOf(message, 78)?castTo(message, 78):null); -} - -defineClass(194, 289, $intern_58, AssertionError, AssertionError_0); -var Ljava_lang_AssertionError_2_classLit = createForClass('java.lang', 'AssertionError', 194); -function $clinit_Boolean(){ - $clinit_Boolean = emptyMethod; - FALSE_0 = false; - TRUE_0 = true; -} - -function $booleanValue(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $compareTo_1(this$static, b){ - return compare_3((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); -} - -function compare_3(x_0, y_0){ - $clinit_Boolean(); - return x_0 == y_0?0:x_0?1:-1; -} - -function compareTo_Ljava_lang_Object__I__devirtual$(this$static, other){ - $clinit_Boolean(); - return instanceOfString(this$static)?$compareTo_9(this$static, castToString(other)):instanceOfDouble(this$static)?$compareTo_4(this$static, castToDouble(other)):instanceOfBoolean(this$static)?$compareTo_1(this$static, castToBoolean(other)):this$static.compareTo_0(other); -} - -booleanCastMap = {3:1, 476:1, 35:1}; -var FALSE_0, TRUE_0; -var Ljava_lang_Boolean_2_classLit = createForClass('java.lang', 'Boolean', 476); -function __parseAndValidateDouble(s){ - floatRegex == null && (floatRegex = new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$')); - if (!floatRegex.test(s)) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - return parseFloat(s); -} - -function __parseAndValidateInt(s, lowerBound, upperBound){ - var i, isTooLow, length_0, startIndex, toReturn; - if (s == null) { - throw toJs(new NumberFormatException('null')); - } - length_0 = s.length; - startIndex = length_0 > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 45 || (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 43))?1:0; - for (i = startIndex; i < length_0; i++) { - if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - } - toReturn = parseInt(s, 10); - isTooLow = toReturn < lowerBound; - if (isNaN(toReturn)) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - else if (isTooLow || toReturn > upperBound) { - throw toJs(new NumberFormatException('For input string: "' + s + '"')); - } - return toReturn; -} - -function __parseAndValidateLong(s){ - var c, firstTime, head, i, length_0, maxDigits, minValue, negative, orig, radixPower, toReturn; - if (s == null) { - throw toJs(new NumberFormatException('null')); - } - orig = s; - length_0 = s.length; - negative = false; - if (length_0 > 0) { - c = (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0)); - if (c == 45 || c == 43) { - s = s.substr(1); - --length_0; - negative = c == 45; - } - } - if (length_0 == 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - while (s.length > 0 && (checkCriticalStringElementIndex(0, s.length) , s.charCodeAt(0) == 48)) { - s = s.substr(1); - --length_0; - } - if (length_0 > ($clinit_Number$__ParseLong() , maxLengthForRadix)[10]) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - for (i = 0; i < length_0; i++) { - if (digit_0((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i))) == -1) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - } - toReturn = 0; - maxDigits = maxDigitsForRadix[10]; - radixPower = maxDigitsRadixPower[10]; - minValue = neg_0(maxValueForRadix[10]); - firstTime = true; - head = length_0 % maxDigits; - if (head > 0) { - toReturn = -parseInt(s.substr(0, head), 10); - s = s.substr(head); - length_0 -= head; - firstTime = false; - } - while (length_0 >= maxDigits) { - head = parseInt(s.substr(0, maxDigits), 10); - s = s.substr(maxDigits); - length_0 -= maxDigits; - if (firstTime) { - firstTime = false; - } - else { - if (compare_2(toReturn, minValue) < 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - toReturn = mul_0(toReturn, radixPower); - } - toReturn = sub_2(toReturn, head); - } - if (compare_2(toReturn, 0) > 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - if (!negative) { - toReturn = neg_0(toReturn); - if (compare_2(toReturn, 0) < 0) { - throw toJs(new NumberFormatException('For input string: "' + orig + '"')); - } - } - return toReturn; -} - -function doubleValue__D__devirtual$(this$static){ - return instanceOfDouble(this$static)?(checkCriticalNotNull(this$static) , this$static):this$static.doubleValue(); -} - -defineClass(236, 1, {3:1, 236:1}); -var floatRegex; -var Ljava_lang_Number_2_classLit = createForClass('java.lang', 'Number', 236); -function $compareTo_2(this$static, b){ - return this$static.value_0 - b.value_0; -} - -function Byte(value_0){ - this.value_0 = value_0; -} - -function valueOf_2(b){ - var rebase, result; - rebase = b + 128; - result = ($clinit_Byte$BoxedValues() , boxedValues)[rebase]; - !result && (result = boxedValues[rebase] = new Byte(b)); - return result; -} - -defineClass(217, 236, {3:1, 217:1, 35:1, 236:1}, Byte); -_.compareTo_0 = function compareTo_5(b){ - return $compareTo_2(this, castTo(b, 217)); -} -; -_.doubleValue = function doubleValue_0(){ - return this.value_0; -} -; -_.equals_0 = function equals_35(o){ - return instanceOf(o, 217) && castTo(o, 217).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_35(){ - return this.value_0; -} -; -_.toString_0 = function toString_42(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Byte_2_classLit = createForClass('java.lang', 'Byte', 217); -function $clinit_Byte$BoxedValues(){ - $clinit_Byte$BoxedValues = emptyMethod; - boxedValues = initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, 256, 0, 1); -} - -var boxedValues; -function $compareTo_3(this$static, c){ - return this$static.value_0 - c.value_0; -} - -function Character(value_0){ - this.value_0 = value_0; -} - -function digit_0(c){ - if (c >= 48 && c < 48 + $wnd.Math.min(10, 10)) { - return c - 48; - } - if (c >= 97 && c < 97) { - return c - 97 + 10; - } - if (c >= 65 && c < 65) { - return c - 65 + 10; - } - return -1; -} - -function valueOf_3(c){ - var result; - if (c < 128) { - result = ($clinit_Character$BoxedValues() , boxedValues_0)[c]; - !result && (result = boxedValues_0[c] = new Character(c)); - return result; - } - return new Character(c); -} - -defineClass(172, 1, {3:1, 172:1, 35:1}, Character); -_.compareTo_0 = function compareTo_6(c){ - return $compareTo_3(this, castTo(c, 172)); -} -; -_.equals_0 = function equals_36(o){ - return instanceOf(o, 172) && castTo(o, 172).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_36(){ - return this.value_0; -} -; -_.toString_0 = function toString_43(){ - return String.fromCharCode(this.value_0); -} -; -_.value_0 = 0; -var digitRegex; -var Ljava_lang_Character_2_classLit = createForClass('java.lang', 'Character', 172); -function $clinit_Character$BoxedValues(){ - $clinit_Character$BoxedValues = emptyMethod; - boxedValues_0 = initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, 128, 0, 1); -} - -var boxedValues_0; -function ClassCastException(){ - RuntimeException.call(this); -} - -function ClassCastException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(205, 60, {3:1, 205:1, 102:1, 60:1, 78:1}, ClassCastException, ClassCastException_0); -var Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang', 'ClassCastException', 205); -function $compareTo_4(this$static, b){ - return compare_4((checkCriticalNotNull(this$static) , this$static), (checkCriticalNotNull(b) , b)); -} - -function $doubleValue(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $equals_4(this$static, o){ - return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(o); -} - -function $floatValue(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $hashCode_0(this$static){ - return round_int((checkCriticalNotNull(this$static) , this$static)); -} - -function $intValue(this$static){ - return round_int((checkCriticalNotNull(this$static) , this$static)); -} - -function $toString_6(this$static){ - return '' + (checkCriticalNotNull(this$static) , this$static); -} - -function compare_4(x_0, y_0){ - if (x_0 < y_0) { - return -1; - } - if (x_0 > y_0) { - return 1; - } - if (x_0 == y_0) { - return x_0 == 0?compare_4(1 / x_0, 1 / y_0):0; - } - return isNaN(x_0)?isNaN(y_0)?0:1:-1; -} - -function isInfinite(x_0){ - return !isNaN(x_0) && !isFinite(x_0); -} - -doubleCastMap = {3:1, 35:1, 333:1, 236:1}; -var Ljava_lang_Double_2_classLit = createForClass('java.lang', 'Double', 333); -function $compareTo_5(this$static, b){ - return compare_4(this$static.value_0, b.value_0); -} - -function Float(value_0){ - this.value_0 = value_0; -} - -function Float_0(s){ - this.value_0 = parseFloat_0(s); -} - -function parseFloat_0(s){ - var doubleValue; - doubleValue = __parseAndValidateDouble(s); - if (doubleValue > 3.4028234663852886E38) { - return $intern_59; - } - else if (doubleValue < -3.4028234663852886E38) { - return $intern_60; - } - return doubleValue; -} - -defineClass(155, 236, {3:1, 35:1, 155:1, 236:1}, Float, Float_0); -_.compareTo_0 = function compareTo_7(b){ - return $compareTo_5(this, castTo(b, 155)); -} -; -_.doubleValue = function doubleValue_1(){ - return this.value_0; -} -; -_.equals_0 = function equals_37(o){ - return instanceOf(o, 155) && $equals_4(this.value_0, castTo(o, 155).value_0); -} -; -_.hashCode_1 = function hashCode_37(){ - return round_int(this.value_0); -} -; -_.toString_0 = function toString_45(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Float_2_classLit = createForClass('java.lang', 'Float', 155); -function IllegalArgumentException(){ - RuntimeException.call(this); -} - -function IllegalArgumentException_0(message){ - RuntimeException_0.call(this, message); -} - -function IllegalArgumentException_1(cause){ - Throwable_1.call(this, 'The given string does not match the expected format for individual spacings.', cause); -} - -defineClass(32, 60, {3:1, 102:1, 32:1, 60:1, 78:1}, IllegalArgumentException, IllegalArgumentException_0, IllegalArgumentException_1); -var Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang', 'IllegalArgumentException', 32); -function IllegalStateException(){ - RuntimeException.call(this); -} - -function IllegalStateException_0(s){ - RuntimeException_0.call(this, s); -} - -defineClass(71, 60, $intern_43, IllegalStateException, IllegalStateException_0); -var Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang', 'IllegalStateException', 71); -function $compareTo_6(this$static, b){ - return compare_5(this$static.value_0, b.value_0); -} - -function Integer(value_0){ - this.value_0 = value_0; -} - -function bitCount(x_0){ - x_0 -= x_0 >> 1 & 1431655765; - x_0 = (x_0 >> 2 & 858993459) + (x_0 & 858993459); - x_0 = (x_0 >> 4) + x_0 & 252645135; - x_0 += x_0 >> 8; - x_0 += x_0 >> 16; - return x_0 & 63; -} - -function compare_5(x_0, y_0){ - return x_0 < y_0?-1:x_0 > y_0?1:0; -} - -function highestOneBit(i){ - var rtn; - if (i < 0) { - return $intern_42; - } - else if (i == 0) { - return 0; - } - else { - for (rtn = $intern_35; (rtn & i) == 0; rtn >>= 1) - ; - return rtn; - } -} - -function numberOfLeadingZeros_0(i){ - var m, n, y_0; - if (i < 0) { - return 0; - } - else if (i == 0) { - return 32; - } - else { - y_0 = -(i >> 16); - m = y_0 >> 16 & 16; - n = 16 - m; - i = i >> m; - y_0 = i - 256; - m = y_0 >> 16 & 8; - n += m; - i <<= m; - y_0 = i - $intern_61; - m = y_0 >> 16 & 4; - n += m; - i <<= m; - y_0 = i - $intern_17; - m = y_0 >> 16 & 2; - n += m; - i <<= m; - y_0 = i >> 14; - m = y_0 & ~(y_0 >> 1); - return n + 2 - m; - } -} - -function numberOfTrailingZeros(i){ - var r, rtn; - if (i == 0) { - return 32; - } - else { - rtn = 0; - for (r = 1; (r & i) == 0; r <<= 1) { - ++rtn; - } - return rtn; - } -} - -function reverse_1(i){ - var nibbles; - nibbles = ($clinit_Integer$ReverseNibbles() , reverseNibbles); - return nibbles[i >>> 28] | nibbles[i >> 24 & 15] << 4 | nibbles[i >> 20 & 15] << 8 | nibbles[i >> 16 & 15] << 12 | nibbles[i >> 12 & 15] << 16 | nibbles[i >> 8 & 15] << 20 | nibbles[i >> 4 & 15] << 24 | nibbles[i & 15] << 28; -} - -function rotateLeft(i, distance){ - while (distance-- > 0) { - i = i << 1 | (i < 0?1:0); - } - return i; -} - -function valueOf_4(i){ - var rebase, result; - if (i > -129 && i < 128) { - rebase = i + 128; - result = ($clinit_Integer$BoxedValues() , boxedValues_1)[rebase]; - !result && (result = boxedValues_1[rebase] = new Integer(i)); - return result; - } - return new Integer(i); -} - -defineClass(19, 236, {3:1, 35:1, 19:1, 236:1}, Integer); -_.compareTo_0 = function compareTo_8(b){ - return $compareTo_6(this, castTo(b, 19)); -} -; -_.doubleValue = function doubleValue_2(){ - return this.value_0; -} -; -_.equals_0 = function equals_38(o){ - return instanceOf(o, 19) && castTo(o, 19).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_38(){ - return this.value_0; -} -; -_.toString_0 = function toString_46(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Integer_2_classLit = createForClass('java.lang', 'Integer', 19); -function $clinit_Integer$BoxedValues(){ - $clinit_Integer$BoxedValues = emptyMethod; - boxedValues_1 = initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 256, 0, 1); -} - -var boxedValues_1; -function $clinit_Integer$ReverseNibbles(){ - $clinit_Integer$ReverseNibbles = emptyMethod; - reverseNibbles = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); -} - -var reverseNibbles; -function $compareTo_7(this$static, b){ - return compare_6(this$static.value_0, b.value_0); -} - -function Long(value_0){ - this.value_0 = value_0; -} - -function compare_6(x_0, y_0){ - return compare_2(x_0, y_0) < 0?-1:compare_2(x_0, y_0) > 0?1:0; -} - -function valueOf_5(i){ - var rebase, result; - if (compare_2(i, -129) > 0 && compare_2(i, 128) < 0) { - rebase = toInt_0(i) + 128; - result = ($clinit_Long$BoxedValues() , boxedValues_2)[rebase]; - !result && (result = boxedValues_2[rebase] = new Long(i)); - return result; - } - return new Long(i); -} - -defineClass(162, 236, {3:1, 35:1, 162:1, 236:1}, Long); -_.compareTo_0 = function compareTo_9(b){ - return $compareTo_7(this, castTo(b, 162)); -} -; -_.doubleValue = function doubleValue_3(){ - return toDouble_0(this.value_0); -} -; -_.equals_0 = function equals_39(o){ - return instanceOf(o, 162) && eq(castTo(o, 162).value_0, this.value_0); -} -; -_.hashCode_1 = function hashCode_39(){ - return toInt_0(this.value_0); -} -; -_.toString_0 = function toString_47(){ - return '' + toString_39(this.value_0); -} -; -_.value_0 = 0; -var Ljava_lang_Long_2_classLit = createForClass('java.lang', 'Long', 162); -function $clinit_Long$BoxedValues(){ - $clinit_Long$BoxedValues = emptyMethod; - boxedValues_2 = initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 256, 0, 1); -} - -var boxedValues_2; -function max_1(x_0, y_0){ - return compare_2(x_0, y_0) > 0?x_0:y_0; -} - -function signum(d){ - return d == 0 || isNaN(d)?d:d < 0?-1:1; -} - -defineClass(2039, 1, {}); -function NegativeArraySizeException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(1831, 60, $intern_43, NegativeArraySizeException); -var Ljava_lang_NegativeArraySizeException_2_classLit = createForClass('java.lang', 'NegativeArraySizeException', 1831); -function NullPointerException(){ - RuntimeException.call(this); -} - -function NullPointerException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(173, 598, {3:1, 102:1, 173:1, 60:1, 78:1}, NullPointerException, NullPointerException_0); -_.createError = function createError_0(msg){ - return new TypeError(msg); -} -; -var Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang', 'NullPointerException', 173); -function $clinit_Number$__ParseLong(){ - $clinit_Number$__ParseLong = emptyMethod; - var i; - maxDigitsForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); - maxDigitsRadixPower = initUnidimensionalArray(I_classLit, $intern_48, 25, 37, 15, 1); - maxLengthForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); - maxValueForRadix = initUnidimensionalArray(J_classLit, $intern_62, 25, 37, 14, 1); - for (i = 2; i <= 36; i++) { - maxDigitsRadixPower[i] = round_int($wnd.Math.pow(i, maxDigitsForRadix[i])); - maxValueForRadix[i] = div($intern_20, maxDigitsRadixPower[i]); - } -} - -var maxDigitsForRadix, maxDigitsRadixPower, maxLengthForRadix, maxValueForRadix; -function NumberFormatException(message){ - IllegalArgumentException_0.call(this, message); -} - -defineClass(127, 32, {3:1, 102:1, 32:1, 127:1, 60:1, 78:1}, NumberFormatException); -var Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang', 'NumberFormatException', 127); -function $compareTo_8(this$static, b){ - return this$static.value_0 - b.value_0; -} - -function Short(value_0){ - this.value_0 = value_0; -} - -function valueOf_6(s){ - var rebase, result; - if (s > -129 && s < 128) { - rebase = s + 128; - result = ($clinit_Short$BoxedValues() , boxedValues_3)[rebase]; - !result && (result = boxedValues_3[rebase] = new Short(s)); - return result; - } - return new Short(s); -} - -defineClass(184, 236, {3:1, 35:1, 236:1, 184:1}, Short); -_.compareTo_0 = function compareTo_10(b){ - return $compareTo_8(this, castTo(b, 184)); -} -; -_.doubleValue = function doubleValue_4(){ - return this.value_0; -} -; -_.equals_0 = function equals_40(o){ - return instanceOf(o, 184) && castTo(o, 184).value_0 == this.value_0; -} -; -_.hashCode_1 = function hashCode_40(){ - return this.value_0; -} -; -_.toString_0 = function toString_48(){ - return '' + this.value_0; -} -; -_.value_0 = 0; -var Ljava_lang_Short_2_classLit = createForClass('java.lang', 'Short', 184); -function $clinit_Short$BoxedValues(){ - $clinit_Short$BoxedValues = emptyMethod; - boxedValues_3 = initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 256, 0, 1); -} - -var boxedValues_3; -function StackTraceElement(methodName, fileName, lineNumber){ - this.className = 'Unknown'; - this.methodName = methodName; - this.fileName = fileName; - this.lineNumber = lineNumber; -} - -defineClass(310, 1, {3:1, 310:1}, StackTraceElement); -_.equals_0 = function equals_41(other){ - var st; - if (instanceOf(other, 310)) { - st = castTo(other, 310); - return this.lineNumber == st.lineNumber && this.methodName == st.methodName && this.className == st.className && this.fileName == st.fileName; - } - return false; -} -; -_.hashCode_1 = function hashCode_41(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(this.lineNumber), this.className, this.methodName, this.fileName])); -} -; -_.toString_0 = function toString_49(){ - return this.className + '.' + this.methodName + '(' + (this.fileName != null?this.fileName:'Unknown Source') + (this.lineNumber >= 0?':' + this.lineNumber:'') + ')'; -} -; -_.lineNumber = 0; -var Ljava_lang_StackTraceElement_2_classLit = createForClass('java.lang', 'StackTraceElement', 310); -function $charAt(this$static, index_0){ - checkCriticalStringElementIndex(index_0, this$static.length); - return this$static.charCodeAt(index_0); -} - -function $compareTo_9(this$static, other){ - var a, b; - a = (checkCriticalNotNull(this$static) , this$static); - b = (checkCriticalNotNull(other) , other); - return a == b?0:a < b?-1:1; -} - -function $equals_5(this$static, other){ - return checkCriticalNotNull(this$static) , maskUndefined(this$static) === maskUndefined(other); -} - -function $equalsIgnoreCase(this$static, other){ - checkCriticalNotNull(this$static); - if (other == null) { - return false; - } - if ($equals_5(this$static, other)) { - return true; - } - return this$static.length == other.length && $equals_5(this$static.toLowerCase(), other.toLowerCase()); -} - -function $getChars0(this$static, srcBegin, srcEnd, dst, dstBegin){ - while (srcBegin < srcEnd) { - dst[dstBegin++] = $charAt(this$static, srcBegin++); - } -} - -function $indexOf_0(this$static, codePoint, startIndex){ - return $indexOf_2(this$static, fromCodePoint(codePoint), startIndex); -} - -function $indexOf_1(this$static, str){ - return this$static.indexOf(str); -} - -function $indexOf_2(this$static, str, startIndex){ - return this$static.indexOf(str, startIndex); -} - -function $intern(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $lastIndexOf(this$static, str){ - return this$static.lastIndexOf(str); -} - -function $lastIndexOf_0(this$static, str, start_0){ - return this$static.lastIndexOf(str, start_0); -} - -function $split_0(this$static, regex){ - var compiled, count, lastNonEmpty, lastTrail, matchIndex, matchObj, out, trail; - compiled = new RegExp(regex, 'g'); - out = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); - count = 0; - trail = this$static; - lastTrail = null; - while (true) { - matchObj = compiled.exec(trail); - if (matchObj == null || trail == '') { - out[count] = trail; - break; - } - else { - matchIndex = matchObj.index; - out[count] = trail.substr(0, matchIndex); - trail = $substring_1(trail, matchIndex + matchObj[0].length, trail.length); - compiled.lastIndex = 0; - if (lastTrail == trail) { - out[count] = trail.substr(0, 1); - trail = trail.substr(1); - } - lastTrail = trail; - ++count; - } - } - if (this$static.length > 0) { - lastNonEmpty = out.length; - while (lastNonEmpty > 0 && out[lastNonEmpty - 1] == '') { - --lastNonEmpty; - } - lastNonEmpty < out.length && (out.length = lastNonEmpty); - } - return out; -} - -function $startsWith(this$static, prefix){ - return $equals_5(this$static.substr(0, prefix.length), prefix); -} - -function $startsWith_0(this$static, prefix, toffset){ - return toffset >= 0 && $equals_5(this$static.substr(toffset, prefix.length), prefix); -} - -function $substring_0(this$static, beginIndex){ - return this$static.substr(beginIndex); -} - -function $substring_1(this$static, beginIndex, endIndex){ - return this$static.substr(beginIndex, endIndex - beginIndex); -} - -function $toCharArray(this$static){ - var charArr, n; - n = this$static.length; - charArr = initUnidimensionalArray(C_classLit, $intern_44, 25, n, 15, 1); - $getChars0(this$static, 0, n, charArr, 0); - return charArr; -} - -function $toLowerCase(this$static, locale){ - return locale == ($clinit_Locale() , $clinit_Locale() , defaultLocale)?this$static.toLocaleLowerCase():this$static.toLowerCase(); -} - -function $toString_7(this$static){ - return checkCriticalNotNull(this$static) , this$static; -} - -function $trim(this$static){ - var end, length_0, start_0; - length_0 = this$static.length; - start_0 = 0; - while (start_0 < length_0 && (checkCriticalStringElementIndex(start_0, this$static.length) , this$static.charCodeAt(start_0) <= 32)) { - ++start_0; - } - end = length_0; - while (end > start_0 && (checkCriticalStringElementIndex(end - 1, this$static.length) , this$static.charCodeAt(end - 1) <= 32)) { - --end; - } - return start_0 > 0 || end < length_0?this$static.substr(start_0, end - start_0):this$static; -} - -function fromCharCode(array){ - return String.fromCharCode.apply(null, array); -} - -function fromCodePoint(codePoint){ - var hiSurrogate, loSurrogate; - if (codePoint >= $intern_63) { - hiSurrogate = $intern_64 + (codePoint - $intern_63 >> 10 & 1023) & $intern_46; - loSurrogate = 56320 + (codePoint - $intern_63 & 1023) & $intern_46; - return String.fromCharCode(hiSurrogate) + ('' + String.fromCharCode(loSurrogate)); - } - else { - return String.fromCharCode(codePoint & $intern_46); - } -} - -function valueOf_7(x_0){ - return x_0 == null?'null':toString_40(x_0); -} - -function valueOf_8(x_0){ - return valueOf_9(x_0, 0, x_0.length); -} - -function valueOf_9(x_0, offset, count){ - var batchEnd, batchStart, end, s; - end = offset + count; - checkCriticalStringBounds(offset, end, x_0.length); - s = ''; - for (batchStart = offset; batchStart < end;) { - batchEnd = $wnd.Math.min(batchStart + 10000, end); - s += fromCharCode(x_0.slice(batchStart, batchEnd)); - batchStart = batchEnd; - } - return s; -} - -stringCastMap = {3:1, 475:1, 35:1, 2:1}; -var Ljava_lang_String_2_classLit = createForClass('java.lang', 'String', 2); -function $append(this$static, x_0){ - this$static.string += String.fromCharCode(x_0); - return this$static; -} - -function $append_0(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $append_1(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $append_2(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_3(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_4(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $deleteCharAt(this$static, start_0){ - this$static.string = $substring_1(this$static.string, 0, start_0) + '' + $substring_0(this$static.string, start_0 + 1); - return this$static; -} - -function StringBuffer(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuffer_0(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuffer_1(s){ - AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); -} - -defineClass(107, 418, {475:1}, StringBuffer, StringBuffer_0, StringBuffer_1); -var Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang', 'StringBuffer', 107); -function $append_5(this$static, x_0){ - this$static.string += String.fromCharCode(x_0); - return this$static; -} - -function $append_6(this$static, x_0){ - this$static.string += x_0; - return this$static; -} - -function $append_7(this$static, x_0){ - return this$static.string += '' + x_0 , this$static; -} - -function $append_8(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_9(this$static, x_0, start_0, end){ - this$static.string += '' + $substring_1(x_0 == null?'null':toString_40(x_0), start_0, end); - return this$static; -} - -function $append_10(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_11(this$static, x_0){ - this$static.string += '' + x_0; - return this$static; -} - -function $append_12(this$static, x_0){ - this$static.string += valueOf_9(x_0, 0, x_0.length); - return this$static; -} - -function $append_13(this$static, x_0, len){ - this$static.string += valueOf_9(x_0, 0, len); - return this$static; -} - -function $insert_0(this$static, index_0, x_0){ - this$static.string = $substring_1(this$static.string, 0, index_0) + ('' + x_0) + $substring_0(this$static.string, index_0); - return this$static; -} - -function StringBuilder(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuilder_0(){ - AbstractStringBuilder.call(this, ''); -} - -function StringBuilder_1(s){ - AbstractStringBuilder.call(this, (checkCriticalNotNull(s) , s)); -} - -defineClass(100, 418, {475:1}, StringBuilder, StringBuilder_0, StringBuilder_1); -var Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang', 'StringBuilder', 100); -function StringIndexOutOfBoundsException(message){ - IndexOutOfBoundsException_0.call(this, message); -} - -defineClass(687, 73, $intern_57, StringIndexOutOfBoundsException); -var Ljava_lang_StringIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'StringIndexOutOfBoundsException', 687); -function $clinit_System(){ - $clinit_System = emptyMethod; - err_0 = new PrintStream; -} - -function arraycopy(src_0, srcOfs, dest, destOfs, len){ - $clinit_System(); - var destArray, destComp, destEnd, destType, destlen, srcArray, srcComp, srcType, srclen; - checkCriticalNotNull_0(src_0, 'src'); - checkCriticalNotNull_0(dest, 'dest'); - srcType = getClass__Ljava_lang_Class___devirtual$(src_0); - destType = getClass__Ljava_lang_Class___devirtual$(dest); - checkCriticalArrayType_0((srcType.modifiers & 4) != 0, 'srcType is not an array'); - checkCriticalArrayType_0((destType.modifiers & 4) != 0, 'destType is not an array'); - srcComp = srcType.componentType; - destComp = destType.componentType; - checkCriticalArrayType_0((srcComp.modifiers & 1) != 0?srcComp == destComp:(destComp.modifiers & 1) == 0, "Array types don't match"); - srclen = src_0.length; - destlen = dest.length; - if (srcOfs < 0 || destOfs < 0 || len < 0 || srcOfs + len > srclen || destOfs + len > destlen) { - throw toJs(new IndexOutOfBoundsException); - } - if ((srcComp.modifiers & 1) == 0 && srcType != destType) { - srcArray = castToArray(src_0); - destArray = castToArray(dest); - if (maskUndefined(src_0) === maskUndefined(dest) && srcOfs < destOfs) { - srcOfs += len; - for (destEnd = destOfs + len; destEnd-- > destOfs;) { - setCheck(destArray, destEnd, srcArray[--srcOfs]); - } - } - else { - for (destEnd = destOfs + len; destOfs < destEnd;) { - setCheck(destArray, destOfs++, srcArray[srcOfs++]); - } - } - } - else - len > 0 && copy_0(src_0, srcOfs, dest, destOfs, len, true); -} - -defineClass(2043, 1, {}); -var err_0; -function Throwable$lambda$0$Type(){ -} - -defineClass(844, 1, {}, Throwable$lambda$0$Type); -_.apply_0 = function apply_20(arg0){ - return castTo(arg0, 78).backingJsObject; -} -; -var Ljava_lang_Throwable$lambda$0$Type_2_classLit = createForClass('java.lang', 'Throwable/lambda$0$Type', 844); -function UnsupportedOperationException(){ - RuntimeException.call(this); -} - -function UnsupportedOperationException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(41, 60, {3:1, 102:1, 60:1, 78:1, 41:1}, UnsupportedOperationException, UnsupportedOperationException_0); -var Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang', 'UnsupportedOperationException', 41); -function $clinit_BigDecimal(){ - $clinit_BigDecimal = emptyMethod; - var i, j, j0; - new BigDecimal(1, 0); - new BigDecimal(10, 0); - new BigDecimal(0, 0); - BI_SCALED_BY_ZERO = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); - CH_ZEROS = initUnidimensionalArray(C_classLit, $intern_44, 25, 100, 15, 1); - DOUBLE_FIVE_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); - DOUBLE_FIVE_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_FIVE_POW.length, 15, 1); - DOUBLE_TEN_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 10, 100, $intern_45, 10000, $intern_66, 1000000, 10000000, 100000000, $intern_55, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000]); - DOUBLE_TEN_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_TEN_POW.length, 15, 1); - ZERO_SCALED_BY = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 11, 0, 1); - i = 0; - for (; i < ZERO_SCALED_BY.length; i++) { - BI_SCALED_BY_ZERO[i] = new BigDecimal(i, 0); - ZERO_SCALED_BY[i] = new BigDecimal(0, i); - CH_ZEROS[i] = 48; - } - for (; i < CH_ZEROS.length; i++) { - CH_ZEROS[i] = 48; - } - for (j0 = 0; j0 < DOUBLE_FIVE_POW_BIT_LENGTH.length; j0++) { - DOUBLE_FIVE_POW_BIT_LENGTH[j0] = bitLength(DOUBLE_FIVE_POW[j0]); - } - for (j = 0; j < DOUBLE_TEN_POW_BIT_LENGTH.length; j++) { - DOUBLE_TEN_POW_BIT_LENGTH[j] = bitLength(DOUBLE_TEN_POW[j]); - } - $clinit_Multiplication(); -} - -function $compareTo_10(this$static, val){ - var diffPrecision, diffScale, thisSign, thisUnscaled, valUnscaled, valueSign; - thisSign = $signum(this$static); - valueSign = $signum(val); - if (thisSign == valueSign) { - if (this$static.scale == val.scale && this$static.bitLength < 54 && val.bitLength < 54) { - return this$static.smallValue < val.smallValue?-1:this$static.smallValue > val.smallValue?1:0; - } - diffScale = this$static.scale - val.scale; - diffPrecision = (this$static.precision > 0?this$static.precision:$wnd.Math.floor((this$static.bitLength - 1) * $intern_67) + 1) - (val.precision > 0?val.precision:$wnd.Math.floor((val.bitLength - 1) * $intern_67) + 1); - if (diffPrecision > diffScale + 1) { - return thisSign; - } - else if (diffPrecision < diffScale - 1) { - return -thisSign; - } - else { - thisUnscaled = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal); - valUnscaled = (!val.intVal && (val.intVal = valueOf_10(val.smallValue)) , val.intVal); - diffScale < 0?(thisUnscaled = $multiply(thisUnscaled, powerOf10(-diffScale))):diffScale > 0 && (valUnscaled = $multiply(valUnscaled, powerOf10(diffScale))); - return $compareTo_11(thisUnscaled, valUnscaled); - } - } - else - return thisSign < valueSign?-1:1; -} - -function $initFrom(this$static, val){ - var begin, ch_0, i, last, offset, scaleString, unscaled, unscaledBuffer; - begin = 0; - offset = 0; - last = val.length; - scaleString = null; - unscaledBuffer = new StringBuilder_0; - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { - ++offset; - ++begin; - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 45))) { - throw toJs(new NumberFormatException('For input string: "' + val + '"')); - } - } - while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 46) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { - ++offset; - } - unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 46)) { - ++offset; - begin = offset; - while (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 101) && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 69)) { - ++offset; - } - this$static.scale = offset - begin; - unscaledBuffer.string += '' + $substring_1(val == null?'null':(checkCriticalNotNull(val) , val), begin, offset); - } - else { - this$static.scale = 0; - } - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 101 || (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 69))) { - ++offset; - begin = offset; - if (offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) == 43)) { - ++offset; - offset < last && (checkCriticalStringElementIndex(offset, val.length) , val.charCodeAt(offset) != 45) && ++begin; - } - scaleString = val.substr(begin, last - begin); - this$static.scale = this$static.scale - __parseAndValidateInt(scaleString, $intern_42, $intern_0); - if (this$static.scale != round_int(this$static.scale)) { - throw toJs(new NumberFormatException('Scale out of range.')); - } - } - unscaled = unscaledBuffer.string; - if (unscaled.length < 16) { - this$static.smallValue = (unscaledRegex == null && (unscaledRegex = new RegExp('^[+-]?\\d*$', 'i')) , unscaledRegex.test(unscaled)?parseInt(unscaled, 10):NaN); - if (isNaN(this$static.smallValue)) { - throw toJs(new NumberFormatException('For input string: "' + val + '"')); - } - this$static.bitLength = bitLength(this$static.smallValue); - } - else { - $setUnscaledValue(this$static, new BigInteger_4(unscaled)); - } - this$static.precision = unscaledBuffer.string.length; - for (i = 0; i < unscaledBuffer.string.length; ++i) { - ch_0 = $charAt(unscaledBuffer.string, i); - if (ch_0 != 45 && ch_0 != 48) { - break; - } - --this$static.precision; - } - this$static.precision == 0 && (this$static.precision = 1); -} - -function $setUnscaledValue(this$static, unscaledValue){ - var value_0; - this$static.intVal = unscaledValue; - this$static.bitLength = bitLength_1(unscaledValue); - this$static.bitLength < 54 && (this$static.smallValue = (value_0 = unscaledValue.numberLength > 1?or_0(shl_0(unscaledValue.digits[1], 32), and_0(unscaledValue.digits[0], $intern_68)):and_0(unscaledValue.digits[0], $intern_68) , toDouble_0(mul_0(unscaledValue.sign, value_0)))); -} - -function $signum(this$static){ - if (this$static.bitLength < 54) { - return this$static.smallValue < 0?-1:this$static.smallValue > 0?1:0; - } - return (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign; -} - -function $toPlainString(this$static){ - var begin, delta, intStr, result; - intStr = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); - if (this$static.scale == 0 || this$static.bitLength == 0 && this$static.smallValue != -1 && this$static.scale < 0) { - return intStr; - } - begin = $signum(this$static) < 0?1:0; - delta = this$static.scale; - result = (intStr.length + 1 + $wnd.Math.abs(round_int(this$static.scale)) , new StringBuilder_0); - begin == 1 && (result.string += '-' , result); - if (this$static.scale > 0) { - delta -= intStr.length - begin; - if (delta >= 0) { - result.string += '0.'; - for (; delta > CH_ZEROS.length; delta -= CH_ZEROS.length) { - $append_12(result, CH_ZEROS); - } - $append_13(result, CH_ZEROS, round_int(delta)); - $append_11(result, intStr.substr(begin)); - } - else { - delta = begin - delta; - $append_11(result, $substring_1(intStr, begin, round_int(delta))); - result.string += '.'; - $append_11(result, $substring_0(intStr, round_int(delta))); - } - } - else { - $append_11(result, intStr.substr(begin)); - for (; delta < -CH_ZEROS.length; delta += CH_ZEROS.length) { - $append_12(result, CH_ZEROS); - } - $append_13(result, CH_ZEROS, round_int(-delta)); - } - return result.string; -} - -function $toString_8(this$static){ - var begin, end, exponent, intString, result; - if (this$static.toStringImage != null) { - return this$static.toStringImage; - } - if (this$static.bitLength < 32) { - this$static.toStringImage = toDecimalScaledString(fromDouble_0(this$static.smallValue), round_int(this$static.scale)); - return this$static.toStringImage; - } - intString = toDecimalScaledString_0((!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal), 0); - if (this$static.scale == 0) { - return intString; - } - begin = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal).sign < 0?2:1; - end = intString.length; - exponent = -this$static.scale + end - begin; - result = new StringBuilder; - result.string += '' + intString; - if (this$static.scale > 0 && exponent >= -6) { - if (exponent >= 0) { - $insert_0(result, end - round_int(this$static.scale), String.fromCharCode(46)); - } - else { - result.string = $substring_1(result.string, 0, begin - 1) + '0.' + $substring_0(result.string, begin - 1); - $insert_0(result, begin + 1, valueOf_9(CH_ZEROS, 0, -round_int(exponent) - 1)); - } - } - else { - if (end - begin >= 1) { - $insert_0(result, begin, String.fromCharCode(46)); - ++end; - } - $insert_0(result, end, String.fromCharCode(69)); - exponent > 0 && $insert_0(result, ++end, String.fromCharCode(43)); - $insert_0(result, ++end, '' + toString_39(fromDouble_0(exponent))); - } - this$static.toStringImage = result.string; - return this$static.toStringImage; -} - -function BigDecimal(smallValue, scale){ - this.scale = scale; - this.bitLength = bitLength_0(smallValue); - this.bitLength < 54?(this.smallValue = toDouble_0(smallValue)):(this.intVal = valueOf_11(smallValue)); -} - -function BigDecimal_0(val){ - $clinit_BigDecimal(); - $initFrom(this, val); -} - -function bitLength(value_0){ - var negative, result; - if (value_0 > -140737488355328 && value_0 < 140737488355328) { - if (value_0 == 0) { - return 0; - } - negative = value_0 < 0; - negative && (value_0 = -value_0); - result = round_int($wnd.Math.floor($wnd.Math.log(value_0) / 0.6931471805599453)); - (!negative || value_0 != $wnd.Math.pow(2, result)) && ++result; - return result; - } - return bitLength_0(fromDouble_0(value_0)); -} - -function bitLength_0(value_0){ - var high; - compare_2(value_0, 0) < 0 && (value_0 = not_0(value_0)); - return high = toInt_0(shr_0(value_0, 32)) , 64 - (high != 0?numberOfLeadingZeros_0(high):numberOfLeadingZeros_0(toInt_0(value_0)) + 32); -} - -defineClass(240, 236, {3:1, 35:1, 236:1, 240:1}, BigDecimal, BigDecimal_0); -_.compareTo_0 = function compareTo_11(val){ - return $compareTo_10(this, castTo(val, 240)); -} -; -_.doubleValue = function doubleValue_5(){ - return __parseAndValidateDouble($toString_8(this)); -} -; -_.equals_0 = function equals_42(x_0){ - var x1; - if (this === x_0) { - return true; - } - if (instanceOf(x_0, 240)) { - x1 = castTo(x_0, 240); - return this.scale == x1.scale && $compareTo_10(this, x1) == 0; - } - return false; -} -; -_.hashCode_1 = function hashCode_42(){ - var longValue; - if (this.hashCode_0 != 0) { - return this.hashCode_0; - } - if (this.bitLength < 54) { - longValue = fromDouble_0(this.smallValue); - this.hashCode_0 = toInt_0(and_0(longValue, -1)); - this.hashCode_0 = 33 * this.hashCode_0 + toInt_0(and_0(shr_0(longValue, 32), -1)); - this.hashCode_0 = 17 * this.hashCode_0 + round_int(this.scale); - return this.hashCode_0; - } - this.hashCode_0 = 17 * $hashCode_1(this.intVal) + round_int(this.scale); - return this.hashCode_0; -} -; -_.toString_0 = function toString_50(){ - return $toString_8(this); -} -; -_.bitLength = 0; -_.hashCode_0 = 0; -_.precision = 0; -_.scale = 0; -_.smallValue = 0; -var BI_SCALED_BY_ZERO, CH_ZEROS, DOUBLE_FIVE_POW, DOUBLE_FIVE_POW_BIT_LENGTH, DOUBLE_TEN_POW, DOUBLE_TEN_POW_BIT_LENGTH, ZERO_SCALED_BY, unscaledRegex; -var Ljava_math_BigDecimal_2_classLit = createForClass('java.math', 'BigDecimal', 240); -function $clinit_BigInteger(){ - $clinit_BigInteger = emptyMethod; - var i; - ONE_0 = new BigInteger_0(1, 1); - TEN = new BigInteger_0(1, 10); - ZERO_0 = new BigInteger_0(0, 0); - MINUS_ONE = new BigInteger_0(-1, 1); - SMALL_VALUES = stampJavaTypeInfo(getClassLiteralForArray(Ljava_math_BigInteger_2_classLit, 1), $intern_16, 91, 0, [ZERO_0, ONE_0, new BigInteger_0(1, 2), new BigInteger_0(1, 3), new BigInteger_0(1, 4), new BigInteger_0(1, 5), new BigInteger_0(1, 6), new BigInteger_0(1, 7), new BigInteger_0(1, 8), new BigInteger_0(1, 9), TEN]); - TWO_POWS = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); - for (i = 0; i < TWO_POWS.length; i++) { - TWO_POWS[i] = valueOf_11(shl_0(1, i)); - } -} - -function $compareTo_11(this$static, val){ - if (this$static.sign > val.sign) { - return 1; - } - if (this$static.sign < val.sign) { - return -1; - } - if (this$static.numberLength > val.numberLength) { - return this$static.sign; - } - if (this$static.numberLength < val.numberLength) { - return -val.sign; - } - return this$static.sign * compareArrays(this$static.digits, val.digits, this$static.numberLength); -} - -function $cutOffLeadingZeroes(this$static){ - while (this$static.numberLength > 0 && this$static.digits[--this$static.numberLength] == 0) - ; - this$static.digits[this$static.numberLength++] == 0 && (this$static.sign = 0); -} - -function $equals_6(this$static, x_0){ - var x1; - if (maskUndefined(this$static) === maskUndefined(x_0)) { - return true; - } - if (instanceOf(x_0, 91)) { - x1 = castTo(x_0, 91); - return this$static.sign == x1.sign && this$static.numberLength == x1.numberLength && $equalsArrays(this$static, x1.digits); - } - return false; -} - -function $equalsArrays(this$static, b){ - var i; - for (i = this$static.numberLength - 1; i >= 0 && this$static.digits[i] === b[i]; i--) - ; - return i < 0; -} - -function $getFirstNonzeroDigit(this$static){ - var i; - if (this$static.firstNonzeroDigit == -2) { - if (this$static.sign == 0) { - i = -1; - } - else { - for (i = 0; this$static.digits[i] == 0; i++) - ; - } - this$static.firstNonzeroDigit = i; - } - return this$static.firstNonzeroDigit; -} - -function $hashCode_1(this$static){ - var i; - if (this$static.hashCode_0 != 0) { - return this$static.hashCode_0; - } - for (i = 0; i < this$static.digits.length; i++) { - this$static.hashCode_0 = this$static.hashCode_0 * 33 + (this$static.digits[i] & -1); - } - this$static.hashCode_0 = this$static.hashCode_0 * this$static.sign; - return this$static.hashCode_0; -} - -function $multiply(this$static, val){ - if (val.sign == 0) { - return ZERO_0; - } - if (this$static.sign == 0) { - return ZERO_0; - } - return $clinit_Multiplication() , karatsuba(this$static, val); -} - -function $pow(this$static, exp_0){ - var x_0; - if (exp_0 < 0) { - throw toJs(new ArithmeticException('Negative exponent')); - } - if (exp_0 == 0) { - return ONE_0; - } - else if (exp_0 == 1 || $equals_6(this$static, ONE_0) || $equals_6(this$static, ZERO_0)) { - return this$static; - } - if (!$testBit(this$static, 0)) { - x_0 = 1; - while (!$testBit(this$static, x_0)) { - ++x_0; - } - return $multiply(getPowerOfTwo(x_0 * exp_0), $pow($shiftRight(this$static, x_0), exp_0)); - } - return pow_0(this$static, exp_0); -} - -function $shiftLeft(this$static, n){ - if (n == 0 || this$static.sign == 0) { - return this$static; - } - return n > 0?shiftLeft(this$static, n):shiftRight(this$static, -n); -} - -function $shiftRight(this$static, n){ - if (n == 0 || this$static.sign == 0) { - return this$static; - } - return n > 0?shiftRight(this$static, n):shiftLeft(this$static, -n); -} - -function $testBit(this$static, n){ - var digit, firstNonZeroDigit, intCount; - if (n == 0) { - return (this$static.digits[0] & 1) != 0; - } - if (n < 0) { - throw toJs(new ArithmeticException('Negative bit address')); - } - intCount = n >> 5; - if (intCount >= this$static.numberLength) { - return this$static.sign < 0; - } - digit = this$static.digits[intCount]; - n = 1 << (n & 31); - if (this$static.sign < 0) { - firstNonZeroDigit = $getFirstNonzeroDigit(this$static); - if (intCount < firstNonZeroDigit) { - return false; - } - else - firstNonZeroDigit == intCount?(digit = -digit):(digit = ~digit); - } - return (digit & n) != 0; -} - -function BigInteger(sign, val){ - this.sign = sign; - if (val < $intern_69) { - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val | 0]); - } - else { - this.numberLength = 2; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val % $intern_69 | 0, val / $intern_69 | 0]); - } -} - -function BigInteger_0(sign, value_0){ - $clinit_BigInteger(); - this.sign = sign; - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [value_0]); -} - -function BigInteger_1(sign, numberLength, digits){ - $clinit_BigInteger(); - this.sign = sign; - this.numberLength = numberLength; - this.digits = digits; -} - -function BigInteger_2(sign, val){ - this.sign = sign; - if (eq(and_0(val, -4294967296), 0)) { - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val)]); - } - else { - this.numberLength = 2; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val), toInt_0(shr_0(val, 32))]); - } -} - -function BigInteger_3(digits){ - $clinit_BigInteger(); - if (digits.length == 0) { - this.sign = 0; - this.numberLength = 1; - this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); - } - else { - this.sign = 1; - this.numberLength = digits.length; - this.digits = digits; - $cutOffLeadingZeroes(this); - } -} - -function BigInteger_4(val){ - $clinit_BigInteger(); - BigInteger_5.call(this, val); -} - -function BigInteger_5(val){ - checkCriticalNotNull(val); - if (val.length == 0) { - throw toJs(new NumberFormatException('Zero length BigInteger')); - } - setFromString(this, val); -} - -function getPowerOfTwo(exp_0){ - var bitN, intCount, resDigits; - if (exp_0 < TWO_POWS.length) { - return TWO_POWS[exp_0]; - } - intCount = exp_0 >> 5; - bitN = exp_0 & 31; - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, intCount + 1, 15, 1); - resDigits[intCount] = 1 << bitN; - return new BigInteger_1(1, intCount + 1, resDigits); -} - -function setFromString(bi, val){ - var bigRadix, bigRadixDigit, bigRadixDigitsLength, charsPerInt, digitIndex, digits, endChar, newDigit, numberLength, sign, startChar, stringLength, substrEnd, substrStart, topChars; - stringLength = val.length; - endChar = stringLength; - checkCriticalStringElementIndex(0, val.length); - if (val.charCodeAt(0) == 45) { - sign = -1; - startChar = 1; - --stringLength; - } - else { - sign = 1; - startChar = 0; - } - charsPerInt = ($clinit_Conversion() , digitFitInInt)[10]; - bigRadixDigitsLength = stringLength / charsPerInt | 0; - topChars = stringLength % charsPerInt; - topChars != 0 && ++bigRadixDigitsLength; - digits = initUnidimensionalArray(I_classLit, $intern_48, 25, bigRadixDigitsLength, 15, 1); - bigRadix = bigRadices[8]; - digitIndex = 0; - substrEnd = startChar + (topChars == 0?charsPerInt:topChars); - for (substrStart = startChar; substrStart < endChar; substrStart = substrEnd , substrEnd = substrStart + charsPerInt) { - bigRadixDigit = __parseAndValidateInt(val.substr(substrStart, substrEnd - substrStart), $intern_42, $intern_0); - newDigit = ($clinit_Multiplication() , multiplyByInt(digits, digits, digitIndex, bigRadix)); - newDigit += inplaceAdd(digits, digitIndex, bigRadixDigit); - digits[digitIndex++] = newDigit; - } - numberLength = digitIndex; - bi.sign = sign; - bi.numberLength = numberLength; - bi.digits = digits; - $cutOffLeadingZeroes(bi); -} - -function valueOf_10(val){ - $clinit_BigInteger(); - if (val < 0) { - if (val != -1) { - return new BigInteger(-1, -val); - } - return MINUS_ONE; - } - else - return val <= 10?SMALL_VALUES[round_int(val)]:new BigInteger(1, val); -} - -function valueOf_11(val){ - $clinit_BigInteger(); - if (compare_2(val, 0) < 0) { - if (compare_2(val, -1) != 0) { - return new BigInteger_2(-1, neg_0(val)); - } - return MINUS_ONE; - } - else - return compare_2(val, 10) <= 0?SMALL_VALUES[toInt_0(val)]:new BigInteger_2(1, val); -} - -defineClass(91, 236, {3:1, 35:1, 236:1, 91:1}, BigInteger, BigInteger_0, BigInteger_1, BigInteger_2, BigInteger_3, BigInteger_4); -_.compareTo_0 = function compareTo_12(val){ - return $compareTo_11(this, castTo(val, 91)); -} -; -_.doubleValue = function doubleValue_6(){ - return __parseAndValidateDouble(toDecimalScaledString_0(this, 0)); -} -; -_.equals_0 = function equals_43(x_0){ - return $equals_6(this, x_0); -} -; -_.hashCode_1 = function hashCode_43(){ - return $hashCode_1(this); -} -; -_.toString_0 = function toString_51(){ - return toDecimalScaledString_0(this, 0); -} -; -_.firstNonzeroDigit = -2; -_.hashCode_0 = 0; -_.numberLength = 0; -_.sign = 0; -var MINUS_ONE, ONE_0, SMALL_VALUES, TEN, TWO_POWS, ZERO_0; -var Ljava_math_BigInteger_2_classLit = createForClass('java.math', 'BigInteger', 91); -function bitLength_1(val){ - var bLength, highDigit, i; - if (val.sign == 0) { - return 0; - } - bLength = val.numberLength << 5; - highDigit = val.digits[val.numberLength - 1]; - if (val.sign < 0) { - i = $getFirstNonzeroDigit(val); - if (i == val.numberLength - 1) { - --highDigit; - highDigit = highDigit | 0; - } - } - bLength -= numberOfLeadingZeros_0(highDigit); - return bLength; -} - -function shiftLeft(source, count){ - var intCount, resDigits, resLength, result; - intCount = count >> 5; - count &= 31; - resLength = source.numberLength + intCount + (count == 0?0:1); - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); - shiftLeft_0(resDigits, source.digits, intCount, count); - result = new BigInteger_1(source.sign, resLength, resDigits); - $cutOffLeadingZeroes(result); - return result; -} - -function shiftLeft_0(result, source, intCount, count){ - var i, i0, rightShiftCount; - if (count == 0) { - arraycopy(source, 0, result, intCount, result.length - intCount); - } - else { - rightShiftCount = 32 - count; - result[result.length - 1] = 0; - for (i0 = result.length - 1; i0 > intCount; i0--) { - result[i0] |= source[i0 - intCount - 1] >>> rightShiftCount; - result[i0 - 1] = source[i0 - intCount - 1] << count; - } - } - for (i = 0; i < intCount; i++) { - result[i] = 0; - } -} - -function shiftLeftOneBit(result, source, srcLen){ - var carry, i, val; - carry = 0; - for (i = 0; i < srcLen; i++) { - val = source[i]; - result[i] = val << 1 | carry; - carry = val >>> 31; - } - carry != 0 && (result[srcLen] = carry); -} - -function shiftRight(source, count){ - var i, intCount, resDigits, resLength, result; - intCount = count >> 5; - count &= 31; - if (intCount >= source.numberLength) { - return source.sign < 0?($clinit_BigInteger() , MINUS_ONE):($clinit_BigInteger() , ZERO_0); - } - resLength = source.numberLength - intCount; - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength + 1, 15, 1); - shiftRight_0(resDigits, resLength, source.digits, intCount, count); - if (source.sign < 0) { - for (i = 0; i < intCount && source.digits[i] == 0; i++) - ; - if (i < intCount || count > 0 && source.digits[i] << 32 - count != 0) { - for (i = 0; i < resLength && resDigits[i] == -1; i++) { - resDigits[i] = 0; - } - i == resLength && ++resLength; - ++resDigits[i]; - } - } - result = new BigInteger_1(source.sign, resLength, resDigits); - $cutOffLeadingZeroes(result); - return result; -} - -function shiftRight_0(result, resultLen, source, intCount, count){ - var allZero, i, leftShiftCount; - allZero = true; - for (i = 0; i < intCount; i++) { - allZero = allZero & source[i] == 0; - } - if (count == 0) { - arraycopy(source, intCount, result, 0, resultLen); - i = resultLen; - } - else { - leftShiftCount = 32 - count; - allZero = allZero & source[i] << leftShiftCount == 0; - for (i = 0; i < resultLen - 1; i++) { - result[i] = source[i + intCount] >>> count | source[i + intCount + 1] << leftShiftCount; - } - result[i] = source[i + intCount] >>> count; - ++i; - } - return allZero; -} - -function $clinit_Conversion(){ - $clinit_Conversion = emptyMethod; - bigRadices = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [$intern_42, 1162261467, $intern_35, 1220703125, 362797056, 1977326743, $intern_35, 387420489, $intern_55, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, $intern_35, 1291467969, 1544804416, 1838265625, 60466176]); - digitFitInInt = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); -} - -function divideLongByBillion(a){ - var aPos, quot, rem; - if (compare_2(a, 0) >= 0) { - quot = div(a, $intern_55); - rem = mod(a, $intern_55); - } - else { - aPos = shru_0(a, 1); - quot = div(aPos, 500000000); - rem = mod(aPos, 500000000); - rem = add_20(shl_0(rem, 1), and_0(a, 1)); - } - return or_0(shl_0(rem, 32), and_0(quot, $intern_68)); -} - -function toDecimalScaledString(value_0, scale){ - $clinit_Conversion(); - var currentChar, endPoint, exponent, insertPoint, j, j0, negNumber, prev, resLengthInChars, result, result1, result10, startPoint, v; - negNumber = compare_2(value_0, 0) < 0; - negNumber && (value_0 = neg_0(value_0)); - if (compare_2(value_0, 0) == 0) { - switch (scale) { - case 0: - return '0'; - case 1: - return '0.0'; - case 2: - return '0.00'; - case 3: - return '0.000'; - case 4: - return '0.0000'; - case 5: - return '0.00000'; - case 6: - return '0.000000'; - default:result10 = new StringBuilder; - scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); - result10.string += scale == $intern_42?'2147483648':'' + -scale; - return result10.string; - } - } - resLengthInChars = 18; - result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); - currentChar = resLengthInChars; - v = value_0; - do { - prev = v; - v = div(v, 10); - result[--currentChar] = toInt_0(add_20(48, sub_2(prev, mul_0(v, 10)))) & $intern_46; - } - while (compare_2(v, 0) != 0); - exponent = sub_2(sub_2(sub_2(resLengthInChars, currentChar), scale), 1); - if (scale == 0) { - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - if (scale > 0 && compare_2(exponent, -6) >= 0) { - if (compare_2(exponent, 0) >= 0) { - insertPoint = currentChar + toInt_0(exponent); - for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { - result[j0 + 1] = result[j0]; - } - result[++insertPoint] = 46; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); - } - for (j = 2; lt(j, add_20(neg_0(exponent), 1)); j++) { - result[--currentChar] = 48; - } - result[--currentChar] = 46; - result[--currentChar] = 48; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - startPoint = currentChar + 1; - endPoint = resLengthInChars; - result1 = new StringBuilder_0; - negNumber && (result1.string += '-' , result1); - if (endPoint - startPoint >= 1) { - $append_5(result1, result[currentChar]); - result1.string += '.'; - result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); - } - else { - result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - result1.string += 'E'; - compare_2(exponent, 0) > 0 && (result1.string += '+' , result1); - result1.string += '' + toString_39(exponent); - return result1.string; -} - -function toDecimalScaledString_0(val, scale){ - $clinit_Conversion(); - var currentChar, delta, digits, endPoint, exponent, highDigit, i, i1, insertPoint, j, j0, negNumber, numberLength, prev, previous, res, resDigit, resLengthInChars, result, result1, result10, result11, sign, startPoint, temp, temp1, tempLen, v; - sign = val.sign; - numberLength = val.numberLength; - digits = val.digits; - if (sign == 0) { - switch (scale) { - case 0: - return '0'; - case 1: - return '0.0'; - case 2: - return '0.00'; - case 3: - return '0.000'; - case 4: - return '0.0000'; - case 5: - return '0.00000'; - case 6: - return '0.000000'; - default:result10 = new StringBuilder; - scale < 0?(result10.string += '0E+' , result10):(result10.string += '0E' , result10); - result10.string += -scale; - return result10.string; - } - } - resLengthInChars = numberLength * 10 + 1 + 7; - result = initUnidimensionalArray(C_classLit, $intern_44, 25, resLengthInChars + 1, 15, 1); - currentChar = resLengthInChars; - if (numberLength == 1) { - highDigit = digits[0]; - if (highDigit < 0) { - v = and_0(highDigit, $intern_68); - do { - prev = v; - v = div(v, 10); - result[--currentChar] = 48 + toInt_0(sub_2(prev, mul_0(v, 10))) & $intern_46; - } - while (compare_2(v, 0) != 0); - } - else { - v = highDigit; - do { - prev = v; - v = v / 10 | 0; - result[--currentChar] = 48 + (prev - v * 10) & $intern_46; - } - while (v != 0); - } - } - else { - temp = initUnidimensionalArray(I_classLit, $intern_48, 25, numberLength, 15, 1); - tempLen = numberLength; - arraycopy(digits, 0, temp, 0, tempLen); - BIG_LOOP: while (true) { - result11 = 0; - for (i1 = tempLen - 1; i1 >= 0; i1--) { - temp1 = add_20(shl_0(result11, 32), and_0(temp[i1], $intern_68)); - res = divideLongByBillion(temp1); - temp[i1] = toInt_0(res); - result11 = toInt_0(shr_0(res, 32)); - } - resDigit = toInt_0(result11); - previous = currentChar; - do { - result[--currentChar] = 48 + resDigit % 10 & $intern_46; - } - while ((resDigit = resDigit / 10 | 0) != 0 && currentChar != 0); - delta = 9 - previous + currentChar; - for (i = 0; i < delta && currentChar > 0; i++) { - result[--currentChar] = 48; - } - j = tempLen - 1; - for (; temp[j] == 0; j--) { - if (j == 0) { - break BIG_LOOP; - } - } - tempLen = j + 1; - } - while (result[currentChar] == 48) { - ++currentChar; - } - } - negNumber = sign < 0; - exponent = resLengthInChars - currentChar - scale - 1; - if (scale == 0) { - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - if (scale > 0 && exponent >= -6) { - if (exponent >= 0) { - insertPoint = currentChar + exponent; - for (j0 = resLengthInChars - 1; j0 >= insertPoint; j0--) { - result[j0 + 1] = result[j0]; - } - result[++insertPoint] = 46; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar + 1); - } - for (j = 2; j < -exponent + 1; j++) { - result[--currentChar] = 48; - } - result[--currentChar] = 46; - result[--currentChar] = 48; - negNumber && (result[--currentChar] = 45); - return valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - startPoint = currentChar + 1; - endPoint = resLengthInChars; - result1 = new StringBuilder_0; - negNumber && (result1.string += '-' , result1); - if (endPoint - startPoint >= 1) { - $append_5(result1, result[currentChar]); - result1.string += '.'; - result1.string += valueOf_9(result, currentChar + 1, resLengthInChars - currentChar - 1); - } - else { - result1.string += valueOf_9(result, currentChar, resLengthInChars - currentChar); - } - result1.string += 'E'; - exponent > 0 && (result1.string += '+' , result1); - result1.string += '' + exponent; - return result1.string; -} - -var bigRadices, digitFitInInt; -function add_21(op1, op2){ - var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, res0, resDigits, resSign, valueHi, valueLo; - op1Sign = op1.sign; - op2Sign = op2.sign; - if (op1Sign == 0) { - return op2; - } - if (op2Sign == 0) { - return op1; - } - op1Len = op1.numberLength; - op2Len = op2.numberLength; - if (op1Len + op2Len == 2) { - a = and_0(op1.digits[0], $intern_68); - b = and_0(op2.digits[0], $intern_68); - if (op1Sign == op2Sign) { - res0 = add_20(a, b); - valueLo = toInt_0(res0); - valueHi = toInt_0(shru_0(res0, 32)); - return valueHi == 0?new BigInteger_0(op1Sign, valueLo):new BigInteger_1(op1Sign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); - } - return valueOf_11(op1Sign < 0?sub_2(b, a):sub_2(a, b)); - } - else if (op1Sign == op2Sign) { - resSign = op1Sign; - resDigits = op1Len >= op2Len?add_22(op1.digits, op1Len, op2.digits, op2Len):add_22(op2.digits, op2Len, op1.digits, op1Len); - } - else { - cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); - if (cmp == 0) { - return $clinit_BigInteger() , ZERO_0; - } - if (cmp == 1) { - resSign = op1Sign; - resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); - } - else { - resSign = op2Sign; - resDigits = subtract_0(op2.digits, op2Len, op1.digits, op1Len); - } - } - res = new BigInteger_1(resSign, resDigits.length, resDigits); - $cutOffLeadingZeroes(res); - return res; -} - -function add_22(a, aSize, b, bSize){ - var res; - res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize + 1, 15, 1); - add_23(res, a, aSize, b, bSize); - return res; -} - -function add_23(res, a, aSize, b, bSize){ - var carry, i; - carry = add_20(and_0(a[0], $intern_68), and_0(b[0], $intern_68)); - res[0] = toInt_0(carry); - carry = shr_0(carry, 32); - if (aSize >= bSize) { - for (i = 1; i < bSize; i++) { - carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - for (; i < aSize; i++) { - carry = add_20(carry, and_0(a[i], $intern_68)); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - } - else { - for (i = 1; i < aSize; i++) { - carry = add_20(carry, add_20(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - for (; i < bSize; i++) { - carry = add_20(carry, and_0(b[i], $intern_68)); - res[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - } - compare_2(carry, 0) != 0 && (res[i] = toInt_0(carry)); -} - -function compareArrays(a, b, size_0){ - var i; - for (i = size_0 - 1; i >= 0 && a[i] === b[i]; i--) - ; - return i < 0?0:lt(and_0(a[i], $intern_68), and_0(b[i], $intern_68))?-1:1; -} - -function inplaceAdd(a, aSize, addend){ - var carry, i; - carry = and_0(addend, $intern_68); - for (i = 0; compare_2(carry, 0) != 0 && i < aSize; i++) { - carry = add_20(carry, and_0(a[i], $intern_68)); - a[i] = toInt_0(carry); - carry = shr_0(carry, 32); - } - return toInt_0(carry); -} - -function subtract(op1, op2){ - var a, b, cmp, op1Len, op1Sign, op2Len, op2Sign, res, resDigits, resSign; - op1Sign = op1.sign; - op2Sign = op2.sign; - if (op2Sign == 0) { - return op1; - } - if (op1Sign == 0) { - return op2.sign == 0?op2:new BigInteger_1(-op2.sign, op2.numberLength, op2.digits); - } - op1Len = op1.numberLength; - op2Len = op2.numberLength; - if (op1Len + op2Len == 2) { - a = and_0(op1.digits[0], $intern_68); - b = and_0(op2.digits[0], $intern_68); - op1Sign < 0 && (a = neg_0(a)); - op2Sign < 0 && (b = neg_0(b)); - return valueOf_11(sub_2(a, b)); - } - cmp = op1Len != op2Len?op1Len > op2Len?1:-1:compareArrays(op1.digits, op2.digits, op1Len); - if (cmp == -1) { - resSign = -op2Sign; - resDigits = op1Sign == op2Sign?subtract_0(op2.digits, op2Len, op1.digits, op1Len):add_22(op2.digits, op2Len, op1.digits, op1Len); - } - else { - resSign = op1Sign; - if (op1Sign == op2Sign) { - if (cmp == 0) { - return $clinit_BigInteger() , ZERO_0; - } - resDigits = subtract_0(op1.digits, op1Len, op2.digits, op2Len); - } - else { - resDigits = add_22(op1.digits, op1Len, op2.digits, op2Len); - } - } - res = new BigInteger_1(resSign, resDigits.length, resDigits); - $cutOffLeadingZeroes(res); - return res; -} - -function subtract_0(a, aSize, b, bSize){ - var res; - res = initUnidimensionalArray(I_classLit, $intern_48, 25, aSize, 15, 1); - subtract_1(res, a, aSize, b, bSize); - return res; -} - -function subtract_1(res, a, aSize, b, bSize){ - var borrow, i; - borrow = 0; - for (i = 0; i < bSize; i++) { - borrow = add_20(borrow, sub_2(and_0(a[i], $intern_68), and_0(b[i], $intern_68))); - res[i] = toInt_0(borrow); - borrow = shr_0(borrow, 32); - } - for (; i < aSize; i++) { - borrow = add_20(borrow, and_0(a[i], $intern_68)); - res[i] = toInt_0(borrow); - borrow = shr_0(borrow, 32); - } -} - -function $clinit_Multiplication(){ - $clinit_Multiplication = emptyMethod; - var fivePow, i; - bigFivePows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); - bigTenPows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); - fivePow = 1; - for (i = 0; i <= 18; i++) { - bigFivePows[i] = valueOf_11(fivePow); - bigTenPows[i] = valueOf_11(shl_0(fivePow, i)); - fivePow = mul_0(fivePow, 5); - } - for (; i < bigTenPows.length; i++) { - bigFivePows[i] = $multiply(bigFivePows[i - 1], bigFivePows[1]); - bigTenPows[i] = $multiply(bigTenPows[i - 1], ($clinit_BigInteger() , TEN)); - } -} - -function karatsuba(op1, op2){ - $clinit_Multiplication(); - var lower, lowerOp1, lowerOp2, middle, ndiv2, temp, upper, upperOp1, upperOp2; - if (op2.numberLength > op1.numberLength) { - temp = op1; - op1 = op2; - op2 = temp; - } - if (op2.numberLength < 63) { - return multiplyPAP(op1, op2); - } - ndiv2 = (op1.numberLength & -2) << 4; - upperOp1 = $shiftRight(op1, ndiv2); - upperOp2 = $shiftRight(op2, ndiv2); - lowerOp1 = subtract(op1, $shiftLeft(upperOp1, ndiv2)); - lowerOp2 = subtract(op2, $shiftLeft(upperOp2, ndiv2)); - upper = karatsuba(upperOp1, upperOp2); - lower = karatsuba(lowerOp1, lowerOp2); - middle = karatsuba(subtract(upperOp1, lowerOp1), subtract(lowerOp2, upperOp2)); - middle = add_21(add_21(middle, upper), lower); - middle = $shiftLeft(middle, ndiv2); - upper = $shiftLeft(upper, ndiv2 << 1); - return add_21(add_21(upper, middle), lower); -} - -function multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits){ - if (aLen == 0 || bLen == 0) { - return; - } - aLen == 1?(resDigits[bLen] = multiplyByInt(resDigits, bDigits, bLen, aDigits[0])):bLen == 1?(resDigits[aLen] = multiplyByInt(resDigits, aDigits, aLen, bDigits[0])):multPAP(aDigits, bDigits, resDigits, aLen, bLen); -} - -function multPAP(a, b, t, aLen, bLen){ - var aI, carry, i, j; - if (maskUndefined(a) === maskUndefined(b) && aLen == bLen) { - square(a, aLen, t); - return; - } - for (i = 0; i < aLen; i++) { - carry = 0; - aI = a[i]; - for (j = 0; j < bLen; j++) { - carry = add_20(add_20(mul_0(and_0(aI, $intern_68), and_0(b[j], $intern_68)), and_0(t[i + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); - t[i + j] = toInt_0(carry); - carry = shru_0(carry, 32); - } - t[i + bLen] = toInt_0(carry); - } -} - -function multiplyByInt(res, a, aSize, factor){ - $clinit_Multiplication(); - var carry, i; - carry = 0; - for (i = 0; i < aSize; i++) { - carry = add_20(mul_0(and_0(a[i], $intern_68), and_0(factor, $intern_68)), and_0(toInt_0(carry), $intern_68)); - res[i] = toInt_0(carry); - carry = shru_0(carry, 32); - } - return toInt_0(carry); -} - -function multiplyPAP(a, b){ - var aDigits, aLen, bDigits, bLen, resDigits, resLength, resSign, result, val, valueHi, valueLo; - aLen = a.numberLength; - bLen = b.numberLength; - resLength = aLen + bLen; - resSign = a.sign != b.sign?-1:1; - if (resLength == 2) { - val = mul_0(and_0(a.digits[0], $intern_68), and_0(b.digits[0], $intern_68)); - valueLo = toInt_0(val); - valueHi = toInt_0(shru_0(val, 32)); - return valueHi == 0?new BigInteger_0(resSign, valueLo):new BigInteger_1(resSign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); - } - aDigits = a.digits; - bDigits = b.digits; - resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, resLength, 15, 1); - multArraysPAP(aDigits, aLen, bDigits, bLen, resDigits); - result = new BigInteger_1(resSign, resLength, resDigits); - $cutOffLeadingZeroes(result); - return result; -} - -function pow_0(base, exponent){ - $clinit_Multiplication(); - var acc, res; - res = ($clinit_BigInteger() , ONE_0); - acc = base; - for (; exponent > 1; exponent >>= 1) { - (exponent & 1) != 0 && (res = $multiply(res, acc)); - acc.numberLength == 1?(acc = $multiply(acc, acc)):(acc = new BigInteger_3(square(acc.digits, acc.numberLength, initUnidimensionalArray(I_classLit, $intern_48, 25, acc.numberLength << 1, 15, 1)))); - } - res = $multiply(res, acc); - return res; -} - -function powerOf10(exp_0){ - $clinit_Multiplication(); - var intExp, longExp, powerOfFive, res; - intExp = round_int(exp_0); - if (exp_0 < bigTenPows.length) { - return bigTenPows[intExp]; - } - else if (exp_0 <= 50) { - return $pow(($clinit_BigInteger() , TEN), intExp); - } - else if (exp_0 <= $intern_45) { - return $shiftLeft($pow(bigFivePows[1], intExp), intExp); - } - if (exp_0 > 1000000) { - throw toJs(new ArithmeticException('power of ten too big')); - } - if (exp_0 <= $intern_0) { - return $shiftLeft($pow(bigFivePows[1], intExp), intExp); - } - powerOfFive = $pow(bigFivePows[1], $intern_0); - res = powerOfFive; - longExp = fromDouble_0(exp_0 - $intern_0); - intExp = round_int(exp_0 % $intern_0); - while (compare_2(longExp, $intern_0) > 0) { - res = $multiply(res, powerOfFive); - longExp = sub_2(longExp, $intern_0); - } - res = $multiply(res, $pow(bigFivePows[1], intExp)); - res = $shiftLeft(res, $intern_0); - longExp = fromDouble_0(exp_0 - $intern_0); - while (compare_2(longExp, $intern_0) > 0) { - res = $shiftLeft(res, $intern_0); - longExp = sub_2(longExp, $intern_0); - } - res = $shiftLeft(res, intExp); - return res; -} - -function square(a, aLen, res){ - var carry, i, i0, index_0, j; - for (i0 = 0; i0 < aLen; i0++) { - carry = 0; - for (j = i0 + 1; j < aLen; j++) { - carry = add_20(add_20(mul_0(and_0(a[i0], $intern_68), and_0(a[j], $intern_68)), and_0(res[i0 + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); - res[i0 + j] = toInt_0(carry); - carry = shru_0(carry, 32); - } - res[i0 + aLen] = toInt_0(carry); - } - shiftLeftOneBit(res, res, aLen << 1); - carry = 0; - for (i = 0 , index_0 = 0; i < aLen; ++i , index_0++) { - carry = add_20(add_20(mul_0(and_0(a[i], $intern_68), and_0(a[i], $intern_68)), and_0(res[index_0], $intern_68)), and_0(toInt_0(carry), $intern_68)); - res[index_0] = toInt_0(carry); - carry = shru_0(carry, 32); - ++index_0; - carry = add_20(carry, and_0(res[index_0], $intern_68)); - res[index_0] = toInt_0(carry); - carry = shru_0(carry, 32); - } - return res; -} - -var bigFivePows, bigTenPows; -function $containsKey_3(this$static, key){ - return instanceOfString(key)?$hasStringValue(this$static, key):!!$getEntry_0(this$static.hashCodeMap, key); -} - -function $containsValue_2(this$static, value_0, entries){ - var entry, entry$iterator; - for (entry$iterator = entries.iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if (this$static.equals_1(value_0, entry.getValue())) { - return true; - } - } - return false; -} - -function $get_10(this$static, key){ - return instanceOfString(key)?$getStringValue(this$static, key):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, key)); -} - -function $getStringValue(this$static, key){ - return key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key); -} - -function $hasStringValue(this$static, key){ - return key == null?!!$getEntry_0(this$static.hashCodeMap, null):$contains_7(this$static.stringMap, key); -} - -function $put_6(this$static, key, value_0){ - return instanceOfString(key)?$putStringValue(this$static, key, value_0):$put_9(this$static.hashCodeMap, key, value_0); -} - -function $putStringValue(this$static, key, value_0){ - return key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0); -} - -function $remove_6(this$static, key){ - return instanceOfString(key)?key == null?$remove_19(this$static.hashCodeMap, null):$remove_20(this$static.stringMap, key):$remove_19(this$static.hashCodeMap, key); -} - -function $reset(this$static){ - this$static.hashCodeMap = new InternalHashCodeMap(this$static); - this$static.stringMap = new InternalStringMap(this$static); - structureChanged(this$static); -} - -function $size_2(this$static){ - return this$static.hashCodeMap.size_0 + this$static.stringMap.size_0; -} - -function AbstractHashMap(ignored, alsoIgnored){ - checkCriticalArgument_0(ignored >= 0, 'Negative initial capacity'); - checkCriticalArgument_0(alsoIgnored >= 0, 'Non-positive load factor'); - $reset(this); -} - -defineClass(488, 1967, $intern_7); -_.clear_0 = function clear_30(){ - $reset(this); -} -; -_.containsKey = function containsKey_9(key){ - return $containsKey_3(this, key); -} -; -_.containsValue = function containsValue_3(value_0){ - return $containsValue_2(this, value_0, this.stringMap) || $containsValue_2(this, value_0, this.hashCodeMap); -} -; -_.entrySet_0 = function entrySet_2(){ - return new AbstractHashMap$EntrySet(this); -} -; -_.get_3 = function get_31(key){ - return $get_10(this, key); -} -; -_.put = function put_5(key, value_0){ - return $put_6(this, key, value_0); -} -; -_.remove_0 = function remove_48(key){ - return $remove_6(this, key); -} -; -_.size_1 = function size_37(){ - return $size_2(this); -} -; -var Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util', 'AbstractHashMap', 488); -function $contains_0(this$static, o){ - if (instanceOf(o, 42)) { - return $containsEntry_0(this$static.this$01, castTo(o, 42)); - } - return false; -} - -function AbstractHashMap$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(261, $intern_9, $intern_10, AbstractHashMap$EntrySet); -_.clear_0 = function clear_31(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_28(o){ - return $contains_0(this, o); -} -; -_.iterator_0 = function iterator_46(){ - return new AbstractHashMap$EntrySetIterator(this.this$01); -} -; -_.remove_1 = function remove_49(entry){ - var key; - if ($contains_0(this, entry)) { - key = castTo(entry, 42).getKey(); - this.this$01.remove_0(key); - return true; - } - return false; -} -; -_.size_1 = function size_38(){ - return this.this$01.size_1(); -} -; -var Ljava_util_AbstractHashMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySet', 261); -function $computeHasNext(this$static){ - if (this$static.current.hasNext_0()) { - return true; - } - if (this$static.current != this$static.stringMapEntries) { - return false; - } - this$static.current = new InternalHashCodeMap$1(this$static.this$01.hashCodeMap); - return this$static.current.hasNext_0(); -} - -function $next_4(this$static){ - var rv; - checkStructuralChange(this$static.this$01, this$static); - checkCriticalElement(this$static.hasNext); - this$static.last = this$static.current; - rv = castTo(this$static.current.next_1(), 42); - this$static.hasNext = $computeHasNext(this$static); - return rv; -} - -function $remove_7(this$static){ - checkCriticalState(!!this$static.last); - checkStructuralChange(this$static.this$01, this$static); - this$static.last.remove(); - this$static.last = null; - this$static.hasNext = $computeHasNext(this$static); - recordLastKnownStructure(this$static.this$01, this$static); -} - -function AbstractHashMap$EntrySetIterator(this$0){ - this.this$01 = this$0; - this.stringMapEntries = new InternalStringMap$1(this.this$01.stringMap); - this.current = this.stringMapEntries; - this.hasNext = $computeHasNext(this); - this.$modCount = this$0.$modCount; -} - -defineClass(262, 1, $intern_6, AbstractHashMap$EntrySetIterator); -_.forEachRemaining = function forEachRemaining_16(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_19(){ - return $next_4(this); -} -; -_.hasNext_0 = function hasNext_18(){ - return this.hasNext; -} -; -_.remove = function remove_50(){ - $remove_7(this); -} -; -_.hasNext = false; -var Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySetIterator', 262); -function $hasNext_2(this$static){ - return this$static.i < this$static.this$01_0.size_1(); -} - -function $next_5(this$static){ - checkCriticalElement(this$static.i < this$static.this$01_0.size_1()); - return this$static.this$01_0.get_0(this$static.last = this$static.i++); -} - -function $remove_8(this$static){ - checkCriticalState(this$static.last != -1); - this$static.this$01_0.remove_2(this$static.last); - this$static.i = this$static.last; - this$static.last = -1; -} - -function AbstractList$IteratorImpl(this$0){ - this.this$01_0 = this$0; -} - -defineClass(417, 1, $intern_6, AbstractList$IteratorImpl); -_.forEachRemaining = function forEachRemaining_17(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_19(){ - return $hasNext_2(this); -} -; -_.next_1 = function next_20(){ - return $next_5(this); -} -; -_.remove = function remove_51(){ - $remove_8(this); -} -; -_.i = 0; -_.last = -1; -var Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/IteratorImpl', 417); -function $add_1(this$static, o){ - this$static.this$01.add_3(this$static.i, o); - ++this$static.i; - this$static.last = -1; -} - -function AbstractList$ListIteratorImpl(this$0, start_0){ - this.this$01 = this$0; - AbstractList$IteratorImpl.call(this, this$0); - checkCriticalPositionIndex(start_0, this$0.size_1()); - this.i = start_0; -} - -defineClass(96, 417, $intern_14, AbstractList$ListIteratorImpl); -_.remove = function remove_52(){ - $remove_8(this); -} -; -_.add_1 = function add_24(o){ - $add_1(this, o); -} -; -_.hasPrevious = function hasPrevious_3(){ - return this.i > 0; -} -; -_.nextIndex_0 = function nextIndex_4(){ - return this.i; -} -; -_.previous_0 = function previous_4(){ - return checkCriticalElement(this.i > 0) , this.this$01.get_0(this.last = --this.i); -} -; -_.previousIndex = function previousIndex_3(){ - return this.i - 1; -} -; -_.set_1 = function set_11(o){ - checkCriticalState(this.last != -1); - this.this$01.set_2(this.last, o); -} -; -var Ljava_util_AbstractList$ListIteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/ListIteratorImpl', 96); -function AbstractList$SubList(wrapped, fromIndex, toIndex){ - checkCriticalPositionIndexes(fromIndex, toIndex, wrapped.size_1()); - this.wrapped = wrapped; - this.fromIndex = fromIndex; - this.size_0 = toIndex - fromIndex; -} - -defineClass(219, 52, $intern_37, AbstractList$SubList); -_.add_3 = function add_25(index_0, element){ - checkCriticalPositionIndex(index_0, this.size_0); - this.wrapped.add_3(this.fromIndex + index_0, element); - ++this.size_0; -} -; -_.get_0 = function get_32(index_0){ - checkCriticalElementIndex(index_0, this.size_0); - return this.wrapped.get_0(this.fromIndex + index_0); -} -; -_.remove_2 = function remove_53(index_0){ - var result; - checkCriticalElementIndex(index_0, this.size_0); - result = this.wrapped.remove_2(this.fromIndex + index_0); - --this.size_0; - return result; -} -; -_.set_2 = function set_12(index_0, element){ - checkCriticalElementIndex(index_0, this.size_0); - return this.wrapped.set_2(this.fromIndex + index_0, element); -} -; -_.size_1 = function size_39(){ - return this.size_0; -} -; -_.fromIndex = 0; -_.size_0 = 0; -var Ljava_util_AbstractList$SubList_2_classLit = createForClass('java.util', 'AbstractList/SubList', 219); -function AbstractMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(384, $intern_9, $intern_10, AbstractMap$1); -_.clear_0 = function clear_32(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_29(key){ - return this.this$01.containsKey(key); -} -; -_.iterator_0 = function iterator_47(){ - var outerIter; - return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter); -} -; -_.remove_1 = function remove_54(key){ - if (this.this$01.containsKey(key)) { - this.this$01.remove_0(key); - return true; - } - return false; -} -; -_.size_1 = function size_40(){ - return this.this$01.size_1(); -} -; -var Ljava_util_AbstractMap$1_2_classLit = createForClass('java.util', 'AbstractMap/1', 384); -function AbstractMap$1$1(val$outerIter){ - this.val$outerIter2 = val$outerIter; -} - -defineClass(691, 1, $intern_6, AbstractMap$1$1); -_.forEachRemaining = function forEachRemaining_18(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_20(){ - return this.val$outerIter2.hasNext_0(); -} -; -_.next_1 = function next_21(){ - var entry; - return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getKey(); -} -; -_.remove = function remove_55(){ - this.val$outerIter2.remove(); -} -; -var Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util', 'AbstractMap/1/1', 691); -function AbstractMap$2(this$0){ - this.this$01 = this$0; -} - -defineClass(226, 28, $intern_8, AbstractMap$2); -_.clear_0 = function clear_33(){ - this.this$01.clear_0(); -} -; -_.contains = function contains_30(value_0){ - return this.this$01.containsValue(value_0); -} -; -_.iterator_0 = function iterator_48(){ - var outerIter; - return outerIter = this.this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter); -} -; -_.size_1 = function size_41(){ - return this.this$01.size_1(); -} -; -var Ljava_util_AbstractMap$2_2_classLit = createForClass('java.util', 'AbstractMap/2', 226); -function AbstractMap$2$1(val$outerIter){ - this.val$outerIter2 = val$outerIter; -} - -defineClass(294, 1, $intern_6, AbstractMap$2$1); -_.forEachRemaining = function forEachRemaining_19(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_21(){ - return this.val$outerIter2.hasNext_0(); -} -; -_.next_1 = function next_22(){ - var entry; - return entry = castTo(this.val$outerIter2.next_1(), 42) , entry.getValue(); -} -; -_.remove = function remove_56(){ - this.val$outerIter2.remove(); -} -; -var Ljava_util_AbstractMap$2$1_2_classLit = createForClass('java.util', 'AbstractMap/2/1', 294); -function $setValue_0(this$static, value_0){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = value_0; - return oldValue; -} - -defineClass(484, 1, {484:1, 42:1}); -_.equals_0 = function equals_44(other){ - var entry; - if (!instanceOf(other, 42)) { - return false; - } - entry = castTo(other, 42); - return equals_57(this.key, entry.getKey()) && equals_57(this.value_0, entry.getValue()); -} -; -_.getKey = function getKey_4(){ - return this.key; -} -; -_.getValue = function getValue_6(){ - return this.value_0; -} -; -_.hashCode_1 = function hashCode_44(){ - return hashCode_54(this.key) ^ hashCode_54(this.value_0); -} -; -_.setValue = function setValue_7(value_0){ - return $setValue_0(this, value_0); -} -; -_.toString_0 = function toString_52(){ - return this.key + '=' + this.value_0; -} -; -var Ljava_util_AbstractMap$AbstractEntry_2_classLit = createForClass('java.util', 'AbstractMap/AbstractEntry', 484); -function AbstractMap$SimpleEntry(key, value_0){ - this.key = key; - this.value_0 = value_0; -} - -defineClass(383, 484, {484:1, 383:1, 42:1}, AbstractMap$SimpleEntry); -var Ljava_util_AbstractMap$SimpleEntry_2_classLit = createForClass('java.util', 'AbstractMap/SimpleEntry', 383); -defineClass(1984, 1, $intern_70); -_.equals_0 = function equals_45(other){ - var entry; - if (!instanceOf(other, 42)) { - return false; - } - entry = castTo(other, 42); - return equals_57(this.getKey(), entry.getKey()) && equals_57(this.getValue(), entry.getValue()); -} -; -_.hashCode_1 = function hashCode_45(){ - return hashCode_54(this.getKey()) ^ hashCode_54(this.getValue()); -} -; -_.toString_0 = function toString_53(){ - return this.getKey() + '=' + this.getValue(); -} -; -var Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util', 'AbstractMapEntry', 1984); -function $containsEntry_1(this$static, entry){ - var key, lookupEntry; - key = entry.getKey(); - lookupEntry = $getEntry_1(this$static, key); - return !!lookupEntry && equals_57(lookupEntry.value_0, entry.getValue()); -} - -function $containsKey_4(this$static, k){ - var key; - key = k; - return !!$getEntry_1(this$static, key); -} - -function getKeyOrNSE(entry){ - if (!entry) { - throw toJs(new NoSuchElementException); - } - return entry.key; -} - -defineClass(1992, 1967, $intern_11); -_.containsEntry = function containsEntry_0(entry){ - return $containsEntry_1(this, entry); -} -; -_.containsKey = function containsKey_10(k){ - return $containsKey_4(this, k); -} -; -_.entrySet_0 = function entrySet_3(){ - return new AbstractNavigableMap$EntrySet(this); -} -; -_.get_3 = function get_33(k){ - var key; - key = k; - return getEntryValueOrNull($getEntry_1(this, key)); -} -; -_.keySet_0 = function keySet_15(){ - return new AbstractNavigableMap$NavigableKeySet(this); -} -; -var Ljava_util_AbstractNavigableMap_2_classLit = createForClass('java.util', 'AbstractNavigableMap', 1992); -function AbstractNavigableMap$EntrySet(this$0){ - this.this$01_0 = this$0; -} - -defineClass(739, $intern_9, $intern_10, AbstractNavigableMap$EntrySet); -_.contains = function contains_31(o){ - return instanceOf(o, 42) && $containsEntry_1(this.this$01_0, castTo(o, 42)); -} -; -_.iterator_0 = function iterator_49(){ - return new TreeMap$EntryIterator(this.this$01_0); -} -; -_.remove_1 = function remove_57(o){ - var entry; - if (instanceOf(o, 42)) { - entry = castTo(o, 42); - return $removeEntry(this.this$01_0, entry); - } - return false; -} -; -_.size_1 = function size_42(){ - return this.this$01_0.size_0; -} -; -var Ljava_util_AbstractNavigableMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/EntrySet', 739); -function AbstractNavigableMap$NavigableKeySet(map_0){ - this.map_0 = map_0; -} - -defineClass(493, $intern_9, $intern_13, AbstractNavigableMap$NavigableKeySet); -_.spliterator_0 = function spliterator_26(){ - return new SortedSet$1(this); -} -; -_.clear_0 = function clear_34(){ - $clear_8(this.map_0); -} -; -_.contains = function contains_32(o){ - return $containsKey_4(this.map_0, o); -} -; -_.iterator_0 = function iterator_50(){ - var entryIterator; - return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet(this.map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); -} -; -_.remove_1 = function remove_58(o){ - if ($containsKey_4(this.map_0, o)) { - $remove_26(this.map_0, o); - return true; - } - return false; -} -; -_.size_1 = function size_43(){ - return this.map_0.size_0; -} -; -var Ljava_util_AbstractNavigableMap$NavigableKeySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet', 493); -function AbstractNavigableMap$NavigableKeySet$1(val$entryIterator){ - this.val$entryIterator2 = val$entryIterator; -} - -defineClass(494, 1, $intern_6, AbstractNavigableMap$NavigableKeySet$1); -_.forEachRemaining = function forEachRemaining_20(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_22(){ - return $hasNext_2(this.val$entryIterator2.iter); -} -; -_.next_1 = function next_23(){ - var entry; - return entry = $next_11(this.val$entryIterator2) , entry.getKey(); -} -; -_.remove = function remove_59(){ - $remove_27(this.val$entryIterator2); -} -; -var Ljava_util_AbstractNavigableMap$NavigableKeySet$1_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet/1', 494); -defineClass(2004, 28, $intern_8); -_.add_2 = function add_26(o){ - return checkCriticalState_0($offer(this, o)) , true; -} -; -_.addAll = function addAll_12(c){ - checkCriticalNotNull(c); - checkCriticalArgument_0(c != this, "Can't add a queue to itself"); - return $addAll(this, c); -} -; -_.clear_0 = function clear_35(){ - while ($poll_0(this) != null) - ; -} -; -var Ljava_util_AbstractQueue_2_classLit = createForClass('java.util', 'AbstractQueue', 2004); -function $$init_1(this$static){ - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); -} - -function $addFirst(this$static, e){ - checkCriticalNotNull(e); - this$static.head = this$static.head - 1 & this$static.array.length - 1; - setCheck(this$static.array, this$static.head, e); - $ensureCapacity(this$static); -} - -function $addLast(this$static, e){ - checkCriticalNotNull(e); - setCheck(this$static.array, this$static.tail, e); - this$static.tail = this$static.tail + 1 & this$static.array.length - 1; - $ensureCapacity(this$static); -} - -function $clear_4(this$static){ - if (this$static.head == this$static.tail) { - return; - } - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); - this$static.head = 0; - this$static.tail = 0; -} - -function $contains_1(it, o){ - if (o == null) { - return false; - } - while (it.currentIndex != it.fence) { - if (equals_Ljava_lang_Object__Z__devirtual$(o, $next_6(it))) { - return true; - } - } - return false; -} - -function $copyElements(this$static, dest, count){ - var dstIdx, i, mask; - mask = this$static.array.length - 1; - for (i = this$static.head , dstIdx = 0; dstIdx < count; i = i + 1 & mask , ++dstIdx) { - setCheck(dest, dstIdx, this$static.array[i]); - } -} - -function $ensureCapacity(this$static){ - var newArray, newLength, numElements; - if (this$static.head != this$static.tail) { - return; - } - numElements = this$static.array.length; - newLength = highestOneBit($wnd.Math.max(8, numElements)) << 1; - if (this$static.head != 0) { - newArray = createFrom(this$static.array, newLength); - $copyElements(this$static, newArray, numElements); - this$static.array = newArray; - this$static.head = 0; - } - else { - setLength(this$static.array, newLength); - } - this$static.tail = numElements; -} - -function $isEmpty(this$static){ - return this$static.head == this$static.tail; -} - -function $pollFirst(this$static){ - var e; - e = this$static.array[this$static.head]; - if (e == null) { - return null; - } - setCheck(this$static.array, this$static.head, null); - this$static.head = this$static.head + 1 & this$static.array.length - 1; - return e; -} - -function $pollLast(this$static){ - var e; - e = this$static.array[this$static.tail - 1 & this$static.array.length - 1]; - if (e == null) { - return null; - } - this$static.tail = this$static.tail - 1 & this$static.array.length - 1; - setCheck(this$static.array, this$static.tail, null); - return e; -} - -function $remove_9(it, o){ - if ($contains_1(it, o)) { - $remove_10(it); - return true; - } - return false; -} - -function $removeAtIndex(this$static, i){ - var headDistance, mask, size_0, tailDistance; - mask = this$static.array.length - 1; - headDistance = i - this$static.head & mask; - tailDistance = this$static.tail - i & mask; - size_0 = this$static.tail - this$static.head & mask; - checkConcurrentModification(headDistance < size_0); - if (headDistance >= tailDistance) { - $shiftLeftAtIndex(this$static, i); - return -1; - } - else { - $shiftRightAtIndex(this$static, i); - return 1; - } -} - -function $removeFirst(this$static){ - var e; - e = $pollFirst(this$static); - checkCriticalElement(e != null); - return e; -} - -function $removeLast(this$static){ - var e; - e = $pollLast(this$static); - checkCriticalElement(e != null); - return e; -} - -function $shiftLeftAtIndex(this$static, i){ - var mask, nextOffset; - mask = this$static.array.length - 1; - this$static.tail = this$static.tail - 1 & mask; - while (i != this$static.tail) { - nextOffset = i + 1 & mask; - setCheck(this$static.array, i, this$static.array[nextOffset]); - i = nextOffset; - } - setCheck(this$static.array, this$static.tail, null); -} - -function $shiftRightAtIndex(this$static, i){ - var mask, prevOffset; - mask = this$static.array.length - 1; - while (i != this$static.head) { - prevOffset = i - 1 & mask; - setCheck(this$static.array, i, this$static.array[prevOffset]); - i = prevOffset; - } - setCheck(this$static.array, this$static.head, null); - this$static.head = this$static.head + 1 & mask; -} - -function ArrayDeque(){ - $$init_1(this); -} - -function ArrayDeque_0(numElements){ - $$init_1(this); - setLength(this.array, highestOneBit($wnd.Math.max(8, numElements)) << 1); -} - -function checkConcurrentModification(expression){ - if (!expression) { - throw toJs(new ConcurrentModificationException); - } -} - -defineClass(302, 28, {4:1, 20:1, 28:1, 14:1}, ArrayDeque, ArrayDeque_0); -_.add_2 = function add_27(e){ - return $addLast(this, e) , true; -} -; -_.clear_0 = function clear_36(){ - $clear_4(this); -} -; -_.contains = function contains_33(o){ - return $contains_1(new ArrayDeque$IteratorImpl(this), o); -} -; -_.isEmpty = function isEmpty_18(){ - return $isEmpty(this); -} -; -_.iterator_0 = function iterator_51(){ - return new ArrayDeque$IteratorImpl(this); -} -; -_.remove_1 = function remove_60(o){ - return $remove_9(new ArrayDeque$IteratorImpl(this), o); -} -; -_.size_1 = function size_44(){ - return this.tail - this.head & this.array.length - 1; -} -; -_.spliterator_0 = function spliterator_27(){ - return new Spliterators$IteratorSpliterator(this, 272); -} -; -_.toArray_0 = function toArray_10(out){ - var size_0; - size_0 = this.tail - this.head & this.array.length - 1; - out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); - $copyElements(this, out, size_0); - out.length > size_0 && setCheck(out, size_0, null); - return out; -} -; -_.head = 0; -_.tail = 0; -var Ljava_util_ArrayDeque_2_classLit = createForClass('java.util', 'ArrayDeque', 302); -function $next_6(this$static){ - var e; - checkCriticalElement(this$static.currentIndex != this$static.fence); - e = this$static.this$01.array[this$static.currentIndex]; - checkConcurrentModification(this$static.fence == this$static.this$01.tail && e != null); - this$static.lastIndex = this$static.currentIndex; - this$static.currentIndex = this$static.currentIndex + 1 & this$static.this$01.array.length - 1; - return e; -} - -function $remove_10(this$static){ - checkCriticalState(this$static.lastIndex >= 0); - if ($removeAtIndex(this$static.this$01, this$static.lastIndex) < 0) { - this$static.currentIndex = this$static.currentIndex - 1 & this$static.this$01.array.length - 1; - this$static.fence = this$static.this$01.tail; - } - this$static.lastIndex = -1; -} - -function ArrayDeque$IteratorImpl(this$0){ - this.this$01 = this$0; - this.currentIndex = this.this$01.head; - this.fence = this.this$01.tail; -} - -defineClass(446, 1, $intern_6, ArrayDeque$IteratorImpl); -_.forEachRemaining = function forEachRemaining_21(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_23(){ - return this.currentIndex != this.fence; -} -; -_.next_1 = function next_24(){ - return $next_6(this); -} -; -_.remove = function remove_61(){ - $remove_10(this); -} -; -_.currentIndex = 0; -_.fence = 0; -_.lastIndex = -1; -var Ljava_util_ArrayDeque$IteratorImpl_2_classLit = createForClass('java.util', 'ArrayDeque/IteratorImpl', 446); -function $$init_2(this$static){ - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function $add_2(this$static, index_0, o){ - checkCriticalPositionIndex(index_0, this$static.array.length); - insertTo(this$static.array, index_0, o); -} - -function $add_3(this$static, o){ - this$static.array[this$static.array.length] = o; - return true; -} - -function $addAll_1(this$static, index_0, c){ - var cArray, len; - checkCriticalPositionIndex(index_0, this$static.array.length); - cArray = c.toArray(); - len = cArray.length; - if (len == 0) { - return false; - } - insertTo_0(this$static.array, index_0, cArray); - return true; -} - -function $addAll_2(this$static, c){ - var cArray, len; - cArray = c.toArray(); - len = cArray.length; - if (len == 0) { - return false; - } - insertTo_0(this$static.array, this$static.array.length, cArray); - return true; -} - -function $forEach_1(this$static, consumer){ - var e, e$array, e$index, e$max; - checkCriticalNotNull(consumer); - for (e$array = this$static.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - consumer.accept(e); - } -} - -function $get_11(this$static, index_0){ - checkCriticalElementIndex(index_0, this$static.array.length); - return this$static.array[index_0]; -} - -function $indexOf_3(this$static, o, index_0){ - for (; index_0 < this$static.array.length; ++index_0) { - if (equals_57(o, this$static.array[index_0])) { - return index_0; - } - } - return -1; -} - -function $remove_11(this$static, index_0){ - var previous; - previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); - removeFrom(this$static.array, index_0, 1); - return previous; -} - -function $remove_12(this$static, o){ - var i; - i = $indexOf_3(this$static, o, 0); - if (i == -1) { - return false; - } - $remove_11(this$static, i); - return true; -} - -function $removeRange(this$static, fromIndex, endIndex){ - var count; - checkCriticalPositionIndexes(fromIndex, endIndex, this$static.array.length); - count = endIndex - fromIndex; - removeFrom(this$static.array, fromIndex, count); -} - -function $set_1(this$static, index_0, o){ - var previous; - previous = (checkCriticalElementIndex(index_0, this$static.array.length) , this$static.array[index_0]); - this$static.array[index_0] = o; - return previous; -} - -function $sort(this$static, c){ - sort_4(this$static.array, this$static.array.length, c); -} - -function $toArray_1(this$static){ - return clone_0(this$static.array, this$static.array.length); -} - -function $toArray_2(this$static, out){ - var i, size_0; - size_0 = this$static.array.length; - out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); - for (i = 0; i < size_0; ++i) { - setCheck(out, i, this$static.array[i]); - } - out.length > size_0 && setCheck(out, size_0, null); - return out; -} - -function ArrayList(){ - $$init_2(this); -} - -function ArrayList_0(initialCapacity){ - $$init_2(this); - checkCriticalArgument_0(initialCapacity >= 0, 'Initial capacity must not be negative'); -} - -function ArrayList_1(c){ - $$init_2(this); - insertTo_0(this.array, 0, c.toArray()); -} - -defineClass(12, 52, $intern_71, ArrayList, ArrayList_0, ArrayList_1); -_.add_3 = function add_28(index_0, o){ - $add_2(this, index_0, o); -} -; -_.add_2 = function add_29(o){ - return $add_3(this, o); -} -; -_.addAll_0 = function addAll_13(index_0, c){ - return $addAll_1(this, index_0, c); -} -; -_.addAll = function addAll_14(c){ - return $addAll_2(this, c); -} -; -_.clear_0 = function clear_37(){ - this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_34(o){ - return $indexOf_3(this, o, 0) != -1; -} -; -_.forEach_0 = function forEach_17(consumer){ - $forEach_1(this, consumer); -} -; -_.get_0 = function get_34(index_0){ - return $get_11(this, index_0); -} -; -_.indexOf_0 = function indexOf_4(o){ - return $indexOf_3(this, o, 0); -} -; -_.isEmpty = function isEmpty_19(){ - return this.array.length == 0; -} -; -_.iterator_0 = function iterator_52(){ - return new ArrayList$1(this); -} -; -_.remove_2 = function remove_62(index_0){ - return $remove_11(this, index_0); -} -; -_.remove_1 = function remove_63(o){ - return $remove_12(this, o); -} -; -_.removeRange = function removeRange_1(fromIndex, endIndex){ - $removeRange(this, fromIndex, endIndex); -} -; -_.set_2 = function set_13(index_0, o){ - return $set_1(this, index_0, o); -} -; -_.size_1 = function size_45(){ - return this.array.length; -} -; -_.sort_0 = function sort_3(c){ - $sort(this, c); -} -; -_.toArray = function toArray_11(){ - return $toArray_1(this); -} -; -_.toArray_0 = function toArray_12(out){ - return $toArray_2(this, out); -} -; -var Ljava_util_ArrayList_2_classLit = createForClass('java.util', 'ArrayList', 12); -function $hasNext_3(this$static){ - return this$static.i < this$static.this$01.array.length; -} - -function $next_7(this$static){ - checkCriticalElement(this$static.i < this$static.this$01.array.length); - this$static.last = this$static.i++; - return this$static.this$01.array[this$static.last]; -} - -function $remove_13(this$static){ - checkCriticalState(this$static.last != -1); - $remove_11(this$static.this$01, this$static.i = this$static.last); - this$static.last = -1; -} - -function ArrayList$1(this$0){ - this.this$01 = this$0; -} - -defineClass(7, 1, $intern_6, ArrayList$1); -_.forEachRemaining = function forEachRemaining_22(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_24(){ - return $hasNext_3(this); -} -; -_.next_1 = function next_25(){ - return $next_7(this); -} -; -_.remove = function remove_64(){ - $remove_13(this); -} -; -_.i = 0; -_.last = -1; -var Ljava_util_ArrayList$1_2_classLit = createForClass('java.util', 'ArrayList/1', 7); -function copyOf(original, newLength){ - checkCriticalArraySize(newLength); - return copyPrimitiveArray(original, initUnidimensionalArray(I_classLit, $intern_48, 25, newLength, 15, 1), newLength); -} - -function copyOf_0(original, newLength){ - var copy, result; - checkCriticalArraySize(newLength); - return copy = (result = original.slice(0, newLength) , stampJavaTypeInfo_0(result, original)) , copy.length = newLength , copy; -} - -function copyPrimitiveArray(original, copy, to){ - var copyLen, len; - len = original.length; - copyLen = $wnd.Math.min(to, len); - copy_0(original, 0, copy, 0, copyLen, true); - return copy; -} - -function deepToString(a, arraysIveSeen){ - var joiner, obj, obj$array, obj$index, obj$max, objArray, old, tempSet, elementTypeCategory; - if (a == null) { - return 'null'; - } - old = arraysIveSeen.map_0.put(a, arraysIveSeen); - if (old != null) { - return '[...]'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (obj$array = a , obj$index = 0 , obj$max = obj$array.length; obj$index < obj$max; ++obj$index) { - obj = obj$array[obj$index]; - if (obj != null && (getClass__Ljava_lang_Class___devirtual$(obj).modifiers & 4) != 0) { - if (Array.isArray(obj) && (elementTypeCategory = getElementTypeCategory(obj) , !(elementTypeCategory >= 14 && elementTypeCategory <= 16))) { - if (arraysIveSeen.map_0.containsKey(obj)) { - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '[...]'); - } - else { - objArray = castToArray(obj); - tempSet = new HashSet_1(arraysIveSeen); - $add_9(joiner, deepToString(objArray, tempSet)); - } - } - else - instanceOf(obj, 177)?$add_9(joiner, toString_61(castTo(obj, 177))):instanceOf(obj, 190)?$add_9(joiner, toString_54(castTo(obj, 190))):instanceOf(obj, 195)?$add_9(joiner, toString_55(castTo(obj, 195))):instanceOf(obj, 2012)?$add_9(joiner, toString_60(castTo(obj, 2012))):instanceOf(obj, 48)?$add_9(joiner, toString_58(castTo(obj, 48))):instanceOf(obj, 364)?$add_9(joiner, toString_59(castTo(obj, 364))):instanceOf(obj, 832)?$add_9(joiner, toString_57(castTo(obj, 832))):instanceOf(obj, 104) && $add_9(joiner, toString_56(castTo(obj, 104))); - } - else { - $add_9(joiner, obj == null?'null':toString_40(obj)); - } - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function equals_46(array1, array2){ - var i, val1, val2; - if (maskUndefined(array1) === maskUndefined(array2)) { - return true; - } - if (array1 == null || array2 == null) { - return false; - } - if (array1.length != array2.length) { - return false; - } - for (i = 0; i < array1.length; ++i) { - val1 = array1[i]; - val2 = array2[i]; - if (!(maskUndefined(val1) === maskUndefined(val2) || val1 != null && equals_Ljava_lang_Object__Z__devirtual$(val1, val2))) { - return false; - } - } - return true; -} - -function fill_0(a, fromIndex, toIndex, val){ - checkCriticalArrayBounds_0(fromIndex, toIndex, a.length); - fill0(a, fromIndex, toIndex, val); -} - -function fill_1(a, val){ - fill0_0(a, a.length, val); -} - -function fill_2(a, val){ - fill0_2(a, a.length, val); -} - -function fill_3(a){ - fill0_3(a, a.length); -} - -function fill0(a, fromIndex, toIndex, val){ - var i; - for (i = fromIndex; i < toIndex; ++i) { - a[i] = val; - } -} - -function fill0_0(a, toIndex, val){ - var i; - for (i = 0; i < toIndex; ++i) { - a[i] = val; - } -} - -function fill0_1(a, toIndex){ - var i; - for (i = 0; i < toIndex; ++i) { - a[i] = -1; - } -} - -function fill0_2(a, toIndex, val){ - var i; - for (i = 0; i < toIndex; ++i) { - setCheck(a, i, val); - } -} - -function fill0_3(a, toIndex){ - var i; - for (i = 0; i < toIndex; ++i) { - a[i] = false; - } -} - -function hashCode_46(a){ - var e, e$array, e$index, e$max, hashCode; - hashCode = 1; - for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); - hashCode = hashCode | 0; - } - return hashCode; -} - -function insertionSort(array, low, high, comp){ - var i, j, t; - for (i = low + 1; i < high; ++i) { - for (j = i; j > low && comp.compare_1(array[j - 1], array[j]) > 0; --j) { - t = array[j]; - setCheck(array, j, array[j - 1]); - setCheck(array, j - 1, t); - } - } -} - -function merge_1(src_0, srcLow, srcMid, srcHigh, dest, destLow, destHigh, comp){ - var topIdx; - topIdx = srcMid; - while (destLow < destHigh) { - topIdx >= srcHigh || srcLow < srcMid && comp.compare_1(src_0[srcLow], src_0[topIdx]) <= 0?setCheck(dest, destLow++, src_0[srcLow++]):setCheck(dest, destLow++, src_0[topIdx++]); - } -} - -function mergeSort(x_0, fromIndex, toIndex, comp){ - var temp; - comp = ($clinit_Comparators() , !comp?INTERNAL_NATURAL_ORDER:comp); - temp = x_0.slice(fromIndex, toIndex); - mergeSort_0(temp, x_0, fromIndex, toIndex, -fromIndex, comp); -} - -function mergeSort_0(temp, array, low, high, ofs, comp){ - var length_0, tempHigh, tempLow, tempMid; - length_0 = high - low; - if (length_0 < 7) { - insertionSort(array, low, high, comp); - return; - } - tempLow = low + ofs; - tempHigh = high + ofs; - tempMid = tempLow + (tempHigh - tempLow >> 1); - mergeSort_0(array, temp, tempLow, tempMid, -ofs, comp); - mergeSort_0(array, temp, tempMid, tempHigh, -ofs, comp); - if (comp.compare_1(temp[tempMid - 1], temp[tempMid]) <= 0) { - while (low < high) { - setCheck(array, low++, temp[tempLow++]); - } - return; - } - merge_1(temp, tempLow, tempMid, tempHigh, array, low, high, comp); -} - -function sort_4(x_0, toIndex, c){ - checkCriticalArrayBounds_0(0, toIndex, x_0.length); - mergeSort(x_0, 0, toIndex, c); -} - -function sort_5(x_0, c){ - mergeSort(x_0, 0, x_0.length, c); -} - -function spliterator_28(array, endExclusive){ - return checkCriticalArrayBounds(endExclusive, array.length) , new Spliterators$ArraySpliterator(array, endExclusive); -} - -function stream_4(array){ - return new StreamImpl(null, spliterator_28(array, array.length)); -} - -function toString_54(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - $add_9(joiner, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_55(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - $add_9(joiner, String.fromCharCode(element)); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_56(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_57(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_58(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_59(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + toString_39(element)); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_60(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - $add_9(joiner, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function toString_61(a){ - var element, element$array, element$index, element$max, joiner; - if (a == null) { - return 'null'; - } - joiner = new StringJoiner(', ', '[', ']'); - for (element$array = a , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) { - element = element$array[element$index]; - !joiner.builder?(joiner.builder = new StringBuilder_1(joiner.prefix)):$append_11(joiner.builder, joiner.delimiter); - $append_8(joiner.builder, '' + element); - } - return !joiner.builder?joiner.emptyValue:joiner.suffix.length == 0?joiner.builder.string:joiner.builder.string + ('' + joiner.suffix); -} - -function Arrays$0methodref$compare$Type(){ -} - -defineClass(2013, $wnd.Function, {}, Arrays$0methodref$compare$Type); -_.compare_0 = function compare_7(d1, d2){ - return compare_4(d1, d2); -} -; -function $get_12(this$static, index_0){ - checkCriticalElementIndex(index_0, this$static.array.length); - return this$static.array[index_0]; -} - -function $toArray_3(this$static, out){ - var i, size_0; - size_0 = this$static.array.length; - out.length < size_0 && (out = stampJavaTypeInfo_1(new Array(size_0), out)); - for (i = 0; i < size_0; ++i) { - setCheck(out, i, this$static.array[i]); - } - out.length > size_0 && setCheck(out, size_0, null); - return out; -} - -function Arrays$ArrayList(array){ - checkCriticalNotNull(array); - this.array = array; -} - -defineClass(154, 52, $intern_72, Arrays$ArrayList); -_.contains = function contains_35(o){ - return $indexOf(this, o) != -1; -} -; -_.forEach_0 = function forEach_18(consumer){ - var e, e$array, e$index, e$max; - checkCriticalNotNull(consumer); - for (e$array = this.array , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - consumer.accept(e); - } -} -; -_.get_0 = function get_35(index_0){ - return $get_12(this, index_0); -} -; -_.set_2 = function set_14(index_0, value_0){ - var was; - was = (checkCriticalElementIndex(index_0, this.array.length) , this.array[index_0]); - setCheck(this.array, index_0, value_0); - return was; -} -; -_.size_1 = function size_46(){ - return this.array.length; -} -; -_.sort_0 = function sort_6(c){ - sort_4(this.array, this.array.length, c); -} -; -_.toArray = function toArray_13(){ - return $toArray_3(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.array.length, 5, 1)); -} -; -_.toArray_0 = function toArray_14(out){ - return $toArray_3(this, out); -} -; -var Ljava_util_Arrays$ArrayList_2_classLit = createForClass('java.util', 'Arrays/ArrayList', 154); -function $clinit_Collections(){ - $clinit_Collections = emptyMethod; - EMPTY_LIST = new Collections$EmptyList; - EMPTY_MAP = new Collections$EmptyMap; - EMPTY_SET = new Collections$EmptySet; -} - -function addAll_15(c, a){ - $clinit_Collections(); - var e, e$array, e$index, e$max, result; - result = false; - for (e$array = a , e$index = 0 , e$max = e$array.length; e$index < e$max; ++e$index) { - e = e$array[e$index]; - result = result | c.add_2(e); - } - return result; -} - -function disjoint(c1, c2){ - $clinit_Collections(); - var iterating, o, o$iterator, testing; - iterating = c1; - testing = c2; - if (instanceOf(c1, 21) && !instanceOf(c2, 21)) { - iterating = c2; - testing = c1; - } - for (o$iterator = iterating.iterator_0(); o$iterator.hasNext_0();) { - o = o$iterator.next_1(); - if (testing.contains(o)) { - return false; - } - } - return true; -} - -function hashCode_47(collection){ - $clinit_Collections(); - var e, e$iterator, hashCode; - hashCode = 0; - for (e$iterator = collection.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - hashCode = hashCode + (e != null?hashCode__I__devirtual$(e):0); - hashCode = hashCode | 0; - } - return hashCode; -} - -function hashCode_48(list){ - $clinit_Collections(); - var e, e$iterator, hashCode; - hashCode = 1; - for (e$iterator = list.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - hashCode = 31 * hashCode + (e != null?hashCode__I__devirtual$(e):0); - hashCode = hashCode | 0; - } - return hashCode; -} - -function nCopies(n, o){ - $clinit_Collections(); - var i, list; - list = new ArrayList; - for (i = 0; i < n; ++i) { - list.array[list.array.length] = o; - } - return new Collections$UnmodifiableRandomAccessList(list); -} - -function reverse_2(l){ - var t; - $clinit_Collections(); - var head, headElem, iBack, iFront, tail, tailElem; - if (instanceOf(l, 54)) { - for (iFront = 0 , iBack = l.size_1() - 1; iFront < iBack; ++iFront , --iBack) { - t = l.get_0(iFront); - l.set_2(iFront, l.get_0(iBack)); - l.set_2(iBack, t); - } - } - else { - head = l.listIterator_0(); - tail = l.listIterator_1(l.size_1()); - while (head.nextIndex_0() < tail.previousIndex()) { - headElem = head.next_1(); - tailElem = tail.previous_0(); - head.set_1(tailElem); - tail.set_1(headElem); - } - } -} - -function reverseOrder(cmp){ - $clinit_Collections(); - return !cmp?($clinit_Comparators() , $clinit_Comparators() , REVERSE_NATURAL_ORDER):cmp.reversed(); -} - -function singletonMap(key, value_0){ - $clinit_Collections(); - var map_0; - map_0 = new HashMap_0(1); - instanceOfString(key)?$putStringValue(map_0, key, value_0):$put_9(map_0.hashCodeMap, key, value_0); - return new Collections$UnmodifiableMap(map_0); -} - -function unmodifiableList(list){ - $clinit_Collections(); - return instanceOf(list, 54)?new Collections$UnmodifiableRandomAccessList(list):new Collections$UnmodifiableList(list); -} - -var EMPTY_LIST, EMPTY_MAP, EMPTY_SET; -function $get_13(location_0){ - checkCriticalElementIndex(location_0, 0); - return null; -} - -function Collections$EmptyList(){ -} - -defineClass(940, 52, $intern_72, Collections$EmptyList); -_.contains = function contains_36(object){ - return false; -} -; -_.get_0 = function get_36(location_0){ - return $get_13(location_0); -} -; -_.iterator_0 = function iterator_53(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -_.listIterator_0 = function listIterator_11(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -_.size_1 = function size_47(){ - return 0; -} -; -var Ljava_util_Collections$EmptyList_2_classLit = createForClass('java.util', 'Collections/EmptyList', 940); -function $clinit_Collections$EmptyListIterator(){ - $clinit_Collections$EmptyListIterator = emptyMethod; - INSTANCE_4 = new Collections$EmptyListIterator; -} - -function Collections$EmptyListIterator(){ -} - -defineClass(941, 1, $intern_14, Collections$EmptyListIterator); -_.forEachRemaining = function forEachRemaining_23(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_30(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.hasNext_0 = function hasNext_25(){ - return false; -} -; -_.hasPrevious = function hasPrevious_4(){ - return false; -} -; -_.next_1 = function next_26(){ - throw toJs(new NoSuchElementException); -} -; -_.nextIndex_0 = function nextIndex_5(){ - return 0; -} -; -_.previous_0 = function previous_5(){ - throw toJs(new NoSuchElementException); -} -; -_.previousIndex = function previousIndex_4(){ - return -1; -} -; -_.remove = function remove_65(){ - throw toJs(new IllegalStateException); -} -; -_.set_1 = function set_15(o){ - throw toJs(new IllegalStateException); -} -; -var INSTANCE_4; -var Ljava_util_Collections$EmptyListIterator_2_classLit = createForClass('java.util', 'Collections/EmptyListIterator', 941); -function Collections$EmptyMap(){ -} - -defineClass(943, 1967, $intern_28, Collections$EmptyMap); -_.containsKey = function containsKey_11(key){ - return false; -} -; -_.containsValue = function containsValue_4(value_0){ - return false; -} -; -_.entrySet_0 = function entrySet_4(){ - return $clinit_Collections() , EMPTY_SET; -} -; -_.get_3 = function get_37(key){ - return null; -} -; -_.keySet_0 = function keySet_16(){ - return $clinit_Collections() , EMPTY_SET; -} -; -_.size_1 = function size_48(){ - return 0; -} -; -_.values_0 = function values_16(){ - return $clinit_Collections() , EMPTY_LIST; -} -; -var Ljava_util_Collections$EmptyMap_2_classLit = createForClass('java.util', 'Collections/EmptyMap', 943); -function Collections$EmptySet(){ -} - -defineClass(942, $intern_9, $intern_30, Collections$EmptySet); -_.contains = function contains_37(object){ - return false; -} -; -_.iterator_0 = function iterator_54(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -_.size_1 = function size_49(){ - return 0; -} -; -var Ljava_util_Collections$EmptySet_2_classLit = createForClass('java.util', 'Collections/EmptySet', 942); -function Collections$SingletonList(element){ - this.element = element; -} - -defineClass(599, 52, {3:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Collections$SingletonList); -_.contains = function contains_38(item_0){ - return equals_57(this.element, item_0); -} -; -_.get_0 = function get_38(index_0){ - checkCriticalElementIndex(index_0, 1); - return this.element; -} -; -_.size_1 = function size_50(){ - return 1; -} -; -var Ljava_util_Collections$SingletonList_2_classLit = createForClass('java.util', 'Collections/SingletonList', 599); -function $add_4(){ - throw toJs(new UnsupportedOperationException); -} - -function $addAll_3(){ - throw toJs(new UnsupportedOperationException); -} - -function $clear_5(){ - throw toJs(new UnsupportedOperationException); -} - -function $contains_2(this$static, o){ - return this$static.coll.contains(o); -} - -function $containsAll_0(this$static, c){ - return this$static.coll.containsAll(c); -} - -function $remove_14(){ - throw toJs(new UnsupportedOperationException); -} - -function $toArray_4(this$static, a){ - return this$static.coll.toArray_0(a); -} - -function Collections$UnmodifiableCollection(coll){ - this.coll = coll; -} - -defineClass(372, 1, $intern_24, Collections$UnmodifiableCollection); -_.forEach_0 = function forEach_19(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream_3(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.spliterator_0 = function spliterator_29(){ - return new Spliterators$IteratorSpliterator(this, 0); -} -; -_.stream = function stream_5(){ - return new StreamImpl(null, this.spliterator_0()); -} -; -_.add_2 = function add_31(o){ - return $add_4(); -} -; -_.addAll = function addAll_16(c){ - return $addAll_3(); -} -; -_.clear_0 = function clear_38(){ - $clear_5(); -} -; -_.contains = function contains_39(o){ - return $contains_2(this, o); -} -; -_.containsAll = function containsAll_7(c){ - return $containsAll_0(this, c); -} -; -_.isEmpty = function isEmpty_20(){ - return this.coll.isEmpty(); -} -; -_.iterator_0 = function iterator_55(){ - return new Collections$UnmodifiableCollectionIterator(this.coll.iterator_0()); -} -; -_.remove_1 = function remove_66(o){ - return $remove_14(); -} -; -_.size_1 = function size_51(){ - return this.coll.size_1(); -} -; -_.toArray = function toArray_15(){ - return this.coll.toArray(); -} -; -_.toArray_0 = function toArray_16(a){ - return $toArray_4(this, a); -} -; -_.toString_0 = function toString_62(){ - return toString_40(this.coll); -} -; -var Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollection', 372); -function $remove_15(){ - throw toJs(new UnsupportedOperationException); -} - -function Collections$UnmodifiableCollectionIterator(it){ - this.it = it; -} - -defineClass(371, 1, $intern_6, Collections$UnmodifiableCollectionIterator); -_.forEachRemaining = function forEachRemaining_24(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_26(){ - return this.it.hasNext_0(); -} -; -_.next_1 = function next_27(){ - return this.it.next_1(); -} -; -_.remove = function remove_67(){ - $remove_15(); -} -; -var Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollectionIterator', 371); -function Collections$UnmodifiableList(list){ - Collections$UnmodifiableCollection.call(this, list); - this.list = list; -} - -defineClass(531, 372, $intern_73, Collections$UnmodifiableList); -_.spliterator_0 = function spliterator_30(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.add_3 = function add_32(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll_0 = function addAll_17(index_0, c){ - throw toJs(new UnsupportedOperationException); -} -; -_.equals_0 = function equals_47(o){ - return equals_Ljava_lang_Object__Z__devirtual$(this.list, o); -} -; -_.get_0 = function get_39(index_0){ - return this.list.get_0(index_0); -} -; -_.hashCode_1 = function hashCode_49(){ - return hashCode__I__devirtual$(this.list); -} -; -_.indexOf_0 = function indexOf_5(o){ - return this.list.indexOf_0(o); -} -; -_.isEmpty = function isEmpty_21(){ - return this.list.isEmpty(); -} -; -_.listIterator_0 = function listIterator_12(){ - return new Collections$UnmodifiableListIterator(this.list.listIterator_1(0)); -} -; -_.listIterator_1 = function listIterator_13(from){ - return new Collections$UnmodifiableListIterator(this.list.listIterator_1(from)); -} -; -_.remove_2 = function remove_68(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_2 = function set_16(index_0, element){ - throw toJs(new UnsupportedOperationException); -} -; -_.sort_0 = function sort_7(c){ - throw toJs(new UnsupportedOperationException); -} -; -_.subList = function subList_7(fromIndex, toIndex){ - return new Collections$UnmodifiableList(this.list.subList(fromIndex, toIndex)); -} -; -var Ljava_util_Collections$UnmodifiableList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableList', 531); -function Collections$UnmodifiableListIterator(lit){ - Collections$UnmodifiableCollectionIterator.call(this, lit); - this.lit = lit; -} - -defineClass(690, 371, $intern_14, Collections$UnmodifiableListIterator); -_.remove = function remove_69(){ - $remove_15(); -} -; -_.add_1 = function add_33(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.hasPrevious = function hasPrevious_5(){ - return this.lit.hasPrevious(); -} -; -_.nextIndex_0 = function nextIndex_6(){ - return this.lit.nextIndex_0(); -} -; -_.previous_0 = function previous_6(){ - return this.lit.previous_0(); -} -; -_.previousIndex = function previousIndex_5(){ - return this.lit.previousIndex(); -} -; -_.set_1 = function set_17(o){ - throw toJs(new UnsupportedOperationException); -} -; -var Ljava_util_Collections$UnmodifiableListIterator_2_classLit = createForClass('java.util', 'Collections/UnmodifiableListIterator', 690); -function $containsValue_3(this$static, val){ - return this$static.map_0.containsValue(val); -} - -function $entrySet_2(this$static){ - !this$static.entrySet && (this$static.entrySet = new Collections$UnmodifiableMap$UnmodifiableEntrySet(this$static.map_0.entrySet_0())); - return this$static.entrySet; -} - -function $equals_7(this$static, o){ - return equals_Ljava_lang_Object__Z__devirtual$(this$static.map_0, o); -} - -function $keySet_1(this$static){ - !this$static.keySet && (this$static.keySet = new Collections$UnmodifiableSet(this$static.map_0.keySet_0())); - return this$static.keySet; -} - -function $values_2(this$static){ - !this$static.values && (this$static.values = new Collections$UnmodifiableCollection(this$static.map_0.values_0())); - return this$static.values; -} - -function Collections$UnmodifiableMap(map_0){ - this.map_0 = map_0; -} - -defineClass(600, 1, $intern_7, Collections$UnmodifiableMap); -_.forEach = function forEach_20(consumer){ - $forEach_2(this, consumer); -} -; -_.merge = function merge_2(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.clear_0 = function clear_39(){ - throw toJs(new UnsupportedOperationException); -} -; -_.containsKey = function containsKey_12(key){ - return this.map_0.containsKey(key); -} -; -_.containsValue = function containsValue_5(val){ - return $containsValue_3(this, val); -} -; -_.entrySet_0 = function entrySet_5(){ - return $entrySet_2(this); -} -; -_.equals_0 = function equals_48(o){ - return $equals_7(this, o); -} -; -_.get_3 = function get_40(key){ - return this.map_0.get_3(key); -} -; -_.hashCode_1 = function hashCode_50(){ - return hashCode__I__devirtual$(this.map_0); -} -; -_.isEmpty = function isEmpty_22(){ - return this.map_0.isEmpty(); -} -; -_.keySet_0 = function keySet_17(){ - return $keySet_1(this); -} -; -_.put = function put_6(key, value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_0 = function remove_70(key){ - throw toJs(new UnsupportedOperationException); -} -; -_.size_1 = function size_52(){ - return this.map_0.size_1(); -} -; -_.toString_0 = function toString_63(){ - return toString_40(this.map_0); -} -; -_.values_0 = function values_17(){ - return $values_2(this); -} -; -var Ljava_util_Collections$UnmodifiableMap_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap', 600); -function Collections$UnmodifiableSet(set_0){ - Collections$UnmodifiableCollection.call(this, set_0); -} - -defineClass(382, 372, $intern_29, Collections$UnmodifiableSet); -_.spliterator_0 = function spliterator_31(){ - return new Spliterators$IteratorSpliterator(this, 1); -} -; -_.equals_0 = function equals_49(o){ - return equals_Ljava_lang_Object__Z__devirtual$(this.coll, o); -} -; -_.hashCode_1 = function hashCode_51(){ - return hashCode__I__devirtual$(this.coll); -} -; -var Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSet', 382); -function $contains_3(this$static, o){ - return this$static.coll.contains(o); -} - -function $toArray_5(this$static, a){ - var result; - result = this$static.coll.toArray_0(a); - $wrap(result, this$static.coll.size_1()); - return result; -} - -function $wrap(array, size_0){ - var i; - for (i = 0; i < size_0; ++i) { - setCheck(array, i, new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(array[i], 42))); - } -} - -function Collections$UnmodifiableMap$UnmodifiableEntrySet(s){ - Collections$UnmodifiableSet.call(this, s); -} - -defineClass(944, 382, $intern_29, Collections$UnmodifiableMap$UnmodifiableEntrySet); -_.contains = function contains_40(o){ - return $contains_3(this, o); -} -; -_.containsAll = function containsAll_8(o){ - return this.coll.containsAll(o); -} -; -_.iterator_0 = function iterator_56(){ - var it; - it = this.coll.iterator_0(); - return new Collections$UnmodifiableMap$UnmodifiableEntrySet$1(it); -} -; -_.toArray = function toArray_17(){ - var array; - array = this.coll.toArray(); - $wrap(array, array.length); - return array; -} -; -_.toArray_0 = function toArray_18(a){ - return $toArray_5(this, a); -} -; -var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet', 944); -function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(val$it){ - this.val$it2 = val$it; -} - -defineClass(945, 1, $intern_6, Collections$UnmodifiableMap$UnmodifiableEntrySet$1); -_.forEachRemaining = function forEachRemaining_25(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_28(){ - return new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(castTo(this.val$it2.next_1(), 42)); -} -; -_.hasNext_0 = function hasNext_27(){ - return this.val$it2.hasNext_0(); -} -; -_.remove = function remove_71(){ - throw toJs(new UnsupportedOperationException); -} -; -var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/1', 945); -function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(entry){ - this.entry = entry; -} - -defineClass(688, 1, $intern_70, Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry); -_.equals_0 = function equals_50(o){ - return this.entry.equals_0(o); -} -; -_.getKey = function getKey_5(){ - return this.entry.getKey(); -} -; -_.getValue = function getValue_7(){ - return this.entry.getValue(); -} -; -_.hashCode_1 = function hashCode_52(){ - return this.entry.hashCode_1(); -} -; -_.setValue = function setValue_8(value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.toString_0 = function toString_64(){ - return toString_40(this.entry); -} -; -var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry', 688); -function Collections$UnmodifiableRandomAccessList(list){ - Collections$UnmodifiableList.call(this, list); -} - -defineClass(601, 531, {20:1, 14:1, 15:1, 54:1}, Collections$UnmodifiableRandomAccessList); -var Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableRandomAccessList', 601); -function Collections$UnmodifiableSortedSet(sortedSet){ - Collections$UnmodifiableSet.call(this, sortedSet); - this.sortedSet = sortedSet; -} - -defineClass(689, 382, $intern_31, Collections$UnmodifiableSortedSet); -_.spliterator_0 = function spliterator_32(){ - return new SortedSet$1(this); -} -; -_.equals_0 = function equals_51(o){ - return equals_Ljava_lang_Object__Z__devirtual$(this.sortedSet, o); -} -; -_.hashCode_1 = function hashCode_53(){ - return hashCode__I__devirtual$(this.sortedSet); -} -; -var Ljava_util_Collections$UnmodifiableSortedSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSortedSet', 689); -function Comparator$lambda$0$Type(){ -} - -defineClass(847, 1, $intern_74, Comparator$lambda$0$Type); -_.compare_1 = function compare_8(a, b){ - var c; - return c = lambda$2_6(castTo(a, 11), castTo(b, 11)) , c != 0?c:lambda$4_6(castTo(a, 11), castTo(b, 11)); -} -; -_.equals_0 = function equals_52(other){ - return this === other; -} -; -_.reversed = function reversed_0(){ - return new Comparators$ReversedComparator(this); -} -; -var Ljava_util_Comparator$lambda$0$Type_2_classLit = createForClass('java.util', 'Comparator/lambda$0$Type', 847); -function $clinit_Comparators(){ - $clinit_Comparators = emptyMethod; - INTERNAL_NATURAL_ORDER = new Comparators$NaturalOrderComparator; - NATURAL_ORDER = new Comparators$NaturalOrderComparator; - REVERSE_NATURAL_ORDER = new Comparators$ReverseNaturalOrderComparator; -} - -var INTERNAL_NATURAL_ORDER, NATURAL_ORDER, REVERSE_NATURAL_ORDER; -function $compare(a, b){ - return checkCriticalNotNull(a) , compareTo_Ljava_lang_Object__I__devirtual$(a, (checkCriticalNotNull(b) , b)); -} - -function Comparators$NaturalOrderComparator(){ -} - -defineClass(751, 1, $intern_74, Comparators$NaturalOrderComparator); -_.compare_1 = function compare_9(a, b){ - return $compare(castTo(a, 35), castTo(b, 35)); -} -; -_.equals_0 = function equals_53(other){ - return this === other; -} -; -_.reversed = function reversed_1(){ - return $clinit_Comparators() , REVERSE_NATURAL_ORDER; -} -; -var Ljava_util_Comparators$NaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/NaturalOrderComparator', 751); -function $compare_0(a, b){ - return checkCriticalNotNull(b) , compareTo_Ljava_lang_Object__I__devirtual$(b, (checkCriticalNotNull(a) , a)); -} - -function Comparators$ReverseNaturalOrderComparator(){ -} - -defineClass(1177, 1, $intern_74, Comparators$ReverseNaturalOrderComparator); -_.compare_1 = function compare_10(a, b){ - return $compare_0(castTo(a, 35), castTo(b, 35)); -} -; -_.equals_0 = function equals_54(other){ - return this === other; -} -; -_.reversed = function reversed_2(){ - return $clinit_Comparators() , NATURAL_ORDER; -} -; -var Ljava_util_Comparators$ReverseNaturalOrderComparator_2_classLit = createForClass('java.util', 'Comparators/ReverseNaturalOrderComparator', 1177); -function Comparators$ReversedComparator(comparator){ - this.comparator = comparator; -} - -defineClass(64, 1, $intern_74, Comparators$ReversedComparator); -_.equals_0 = function equals_55(other){ - return this === other; -} -; -_.compare_1 = function compare_11(a, b){ - return this.comparator.compare_1(b, a); -} -; -_.reversed = function reversed_3(){ - return this.comparator; -} -; -var Ljava_util_Comparators$ReversedComparator_2_classLit = createForClass('java.util', 'Comparators/ReversedComparator', 64); -function checkStructuralChange(host, iterator){ - if (iterator.$modCount != host.$modCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function recordLastKnownStructure(host, iterator){ - iterator.$modCount = host.$modCount; -} - -function structureChanged(host){ - var modCount, modCountable; - modCountable = host; - modCount = modCountable.$modCount | 0; - modCountable.$modCount = modCount + 1; -} - -function ConcurrentModificationException(){ - RuntimeException.call(this); -} - -defineClass(166, 60, $intern_43, ConcurrentModificationException); -var Ljava_util_ConcurrentModificationException_2_classLit = createForClass('java.util', 'ConcurrentModificationException', 166); -function $clinit_Date$StringData(){ - $clinit_Date$StringData = emptyMethod; - DAYS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']); - MONTHS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); -} - -var DAYS, MONTHS; -function $accept(this$static, value_0){ - var compensatedValue, newSum; - this$static.count = add_20(this$static.count, 1); - this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); - this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); - this$static.naiveSum += value_0; - compensatedValue = value_0 - this$static.sumError; - newSum = this$static.sum + compensatedValue; - this$static.sumError = newSum - this$static.sum - compensatedValue; - this$static.sum = newSum; -} - -function $getSum(this$static){ - var compensatedSum; - compensatedSum = this$static.sum + this$static.sumError; - if (isNaN(compensatedSum) && isInfinite(this$static.naiveSum)) { - return this$static.naiveSum; - } - return compensatedSum; -} - -function DoubleSummaryStatistics(){ -} - -defineClass(1904, 1, $intern_75, DoubleSummaryStatistics); -_.accept_2 = function accept_15(value_0){ - $accept(this, value_0); -} -; -_.toString_0 = function toString_65(){ - return 'DoubleSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?$getSum(this) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + $getSum(this) + ']'; -} -; -_.count = 0; -_.max_0 = $intern_60; -_.min_0 = $intern_59; -_.naiveSum = 0; -_.sum = 0; -_.sumError = 0; -var Ljava_util_DoubleSummaryStatistics_2_classLit = createForClass('java.util', 'DoubleSummaryStatistics', 1904); -function EmptyStackException(){ - RuntimeException.call(this); -} - -defineClass(1805, 60, $intern_43, EmptyStackException); -var Ljava_util_EmptyStackException_2_classLit = createForClass('java.util', 'EmptyStackException', 1805); -function $clear_6(this$static){ - $clear_0(this$static.keySet); - this$static.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this$static.values.length, 5, 1); -} - -function $containsKey_5(this$static, key){ - return $contains_5(this$static.keySet, key); -} - -function $get_14(this$static, k){ - return $contains_5(this$static.keySet, k)?this$static.values[castTo(k, 22).ordinal]:null; -} - -function $put_7(this$static, key, value_0){ - $add_5(this$static.keySet, key); - return $set_2(this$static, key.ordinal, value_0); -} - -function $put_8(this$static, key, value_0){ - return $put_7(this$static, castTo(key, 22), value_0); -} - -function $remove_16(this$static, key){ - return $remove_17(this$static.keySet, key)?$set_2(this$static, castTo(key, 22).ordinal, null):null; -} - -function $set_2(this$static, ordinal, value_0){ - var was; - was = this$static.values[ordinal]; - this$static.values[ordinal] = value_0; - return was; -} - -function EnumMap(type_0){ - var all; - this.keySet = (all = castTo(type_0.enumConstantsFunc && type_0.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - this.values = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.keySet.all.length, 5, 1); -} - -defineClass(451, 1967, $intern_7, EnumMap); -_.put = function put_7(key, value_0){ - return $put_8(this, key, value_0); -} -; -_.clear_0 = function clear_40(){ - $clear_6(this); -} -; -_.containsKey = function containsKey_13(key){ - return $containsKey_5(this, key); -} -; -_.containsValue = function containsValue_6(value_0){ - var key, key$iterator; - for (key$iterator = new EnumSet$EnumSetImpl$IteratorImpl(this.keySet); key$iterator.i < key$iterator.this$11.all.length;) { - key = $next_8(key$iterator); - if (equals_57(value_0, this.values[key.ordinal])) { - return true; - } - } - return false; -} -; -_.entrySet_0 = function entrySet_6(){ - return new EnumMap$EntrySet(this); -} -; -_.get_3 = function get_41(k){ - return $get_14(this, k); -} -; -_.remove_0 = function remove_72(key){ - return $remove_16(this, key); -} -; -_.size_1 = function size_53(){ - return this.keySet.size_0; -} -; -var Ljava_util_EnumMap_2_classLit = createForClass('java.util', 'EnumMap', 451); -function $contains_4(this$static, o){ - if (instanceOf(o, 42)) { - return $containsEntry_0(this$static.this$01, castTo(o, 42)); - } - return false; -} - -function EnumMap$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(1352, $intern_9, $intern_10, EnumMap$EntrySet); -_.clear_0 = function clear_41(){ - $clear_6(this.this$01); -} -; -_.contains = function contains_41(o){ - return $contains_4(this, o); -} -; -_.iterator_0 = function iterator_57(){ - return new EnumMap$EntrySetIterator(this.this$01); -} -; -_.remove_1 = function remove_73(entry){ - var key; - if ($contains_4(this, entry)) { - key = castTo(entry, 42).getKey(); - $remove_16(this.this$01, key); - return true; - } - return false; -} -; -_.size_1 = function size_54(){ - return this.this$01.keySet.size_0; -} -; -var Ljava_util_EnumMap$EntrySet_2_classLit = createForClass('java.util', 'EnumMap/EntrySet', 1352); -function EnumMap$EntrySetIterator(this$0){ - this.this$01 = this$0; - this.it = new EnumSet$EnumSetImpl$IteratorImpl(this.this$01.keySet); -} - -defineClass(1353, 1, $intern_6, EnumMap$EntrySetIterator); -_.forEachRemaining = function forEachRemaining_26(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_29(){ - return this.key = $next_8(this.it) , new EnumMap$MapEntry(this.this$01, this.key); -} -; -_.hasNext_0 = function hasNext_28(){ - return $hasNext_4(this.it); -} -; -_.remove = function remove_74(){ - checkCriticalState(!!this.key); - $remove_16(this.this$01, this.key); - this.key = null; -} -; -var Ljava_util_EnumMap$EntrySetIterator_2_classLit = createForClass('java.util', 'EnumMap/EntrySetIterator', 1353); -function EnumMap$MapEntry(this$0, key){ - this.this$01 = this$0; - this.key = key; -} - -defineClass(1354, 1984, $intern_70, EnumMap$MapEntry); -_.getKey = function getKey_6(){ - return this.key; -} -; -_.getValue = function getValue_8(){ - return this.this$01.values[this.key.ordinal]; -} -; -_.setValue = function setValue_9(value_0){ - return $set_2(this.this$01, this.key.ordinal, value_0); -} -; -var Ljava_util_EnumMap$MapEntry_2_classLit = createForClass('java.util', 'EnumMap/MapEntry', 1354); -function allOf(elementType){ - var all, set_0; - all = castTo(elementType.enumConstantsFunc && elementType.enumConstantsFunc(), 9); - set_0 = castTo(clone_0(all, all.length), 9); - return new EnumSet$EnumSetImpl(all, set_0, all.length); -} - -function of_1(first){ - var all, set_0, clazz, superclass; - set_0 = (all = castTo($getEnumConstants((clazz = first.___clazz , superclass = clazz.enumSuperclass , superclass == Ljava_lang_Enum_2_classLit?clazz:superclass)), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - $add_5(set_0, first); - return set_0; -} - -function of_2(first, rest){ - var set_0; - set_0 = of_1(first); - addAll_15(set_0, rest); - return set_0; -} - -defineClass(174, $intern_9, {20:1, 28:1, 14:1, 174:1, 21:1}); -var Ljava_util_EnumSet_2_classLit = createForClass('java.util', 'EnumSet', 174); -function $add_5(this$static, e){ - var ordinal; - checkCriticalNotNull(e); - ordinal = e.ordinal; - if (!this$static.set_0[ordinal]) { - setCheck(this$static.set_0, ordinal, e); - ++this$static.size_0; - return true; - } - return false; -} - -function $clone(this$static){ - var clonedSet; - clonedSet = castTo(clone_0(this$static.set_0, this$static.set_0.length), 9); - return new EnumSet$EnumSetImpl(this$static.all, clonedSet, this$static.size_0); -} - -function $contains_5(this$static, o){ - return instanceOf(o, 22) && $containsEnum(this$static, castTo(o, 22)); -} - -function $containsEnum(this$static, e){ - return !!e && this$static.set_0[e.ordinal] == e; -} - -function $remove_17(this$static, o){ - return instanceOf(o, 22) && $removeEnum(this$static, castTo(o, 22)); -} - -function $removeEnum(this$static, e){ - if (!!e && this$static.set_0[e.ordinal] == e) { - setCheck(this$static.set_0, e.ordinal, null); - --this$static.size_0; - return true; - } - return false; -} - -function EnumSet$EnumSetImpl(all, set_0, size_0){ - this.all = all; - this.set_0 = set_0; - this.size_0 = size_0; -} - -defineClass(156, 174, {20:1, 28:1, 14:1, 174:1, 156:1, 21:1}, EnumSet$EnumSetImpl); -_.add_2 = function add_34(e){ - return $add_5(this, castTo(e, 22)); -} -; -_.contains = function contains_42(o){ - return $contains_5(this, o); -} -; -_.iterator_0 = function iterator_58(){ - return new EnumSet$EnumSetImpl$IteratorImpl(this); -} -; -_.remove_1 = function remove_75(o){ - return $remove_17(this, o); -} -; -_.size_1 = function size_55(){ - return this.size_0; -} -; -_.size_0 = 0; -var Ljava_util_EnumSet$EnumSetImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl', 156); -function $findNext(this$static){ - var c; - ++this$static.i; - for (c = this$static.this$11.all.length; this$static.i < c; ++this$static.i) { - if (this$static.this$11.set_0[this$static.i]) { - return; - } - } -} - -function $hasNext_4(this$static){ - return this$static.i < this$static.this$11.all.length; -} - -function $next_8(this$static){ - checkCriticalElement(this$static.i < this$static.this$11.all.length); - this$static.last = this$static.i; - $findNext(this$static); - return this$static.this$11.set_0[this$static.last]; -} - -function EnumSet$EnumSetImpl$IteratorImpl(this$1){ - this.this$11 = this$1; - $findNext(this); -} - -defineClass(343, 1, $intern_6, EnumSet$EnumSetImpl$IteratorImpl); -_.forEachRemaining = function forEachRemaining_27(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_30(){ - return $next_8(this); -} -; -_.hasNext_0 = function hasNext_29(){ - return $hasNext_4(this); -} -; -_.remove = function remove_76(){ - checkCriticalState(this.last != -1); - setCheck(this.this$11.set_0, this.last, null); - --this.this$11.size_0; - this.last = -1; -} -; -_.i = -1; -_.last = -1; -var Ljava_util_EnumSet$EnumSetImpl$IteratorImpl_2_classLit = createForClass('java.util', 'EnumSet/EnumSetImpl/IteratorImpl', 343); -function HashMap(){ - $reset(this); -} - -function HashMap_0(ignored){ - AbstractHashMap.call(this, ignored, 0); -} - -function HashMap_1(toBeCopied){ - $reset(this); - $putAll(this, toBeCopied); -} - -defineClass(43, 488, $intern_76, HashMap, HashMap_0, HashMap_1); -_.equals_1 = function equals_56(value1, value2){ - return maskUndefined(value1) === maskUndefined(value2) || value1 != null && equals_Ljava_lang_Object__Z__devirtual$(value1, value2); -} -; -_.getHashCode = function getHashCode(key){ - var hashCode; - hashCode = hashCode__I__devirtual$(key); - return hashCode | 0; -} -; -var Ljava_util_HashMap_2_classLit = createForClass('java.util', 'HashMap', 43); -function $add_6(this$static, o){ - var old; - old = this$static.map_0.put(o, this$static); - return old == null; -} - -function $contains_6(this$static, o){ - return this$static.map_0.containsKey(o); -} - -function $remove_18(this$static, o){ - return this$static.map_0.remove_0(o) != null; -} - -function HashSet(){ - this.map_0 = new HashMap; -} - -function HashSet_0(initialCapacity){ - this.map_0 = new HashMap_0(initialCapacity); -} - -function HashSet_1(c){ - this.map_0 = new HashMap_0(c.size_1()); - $addAll(this, c); -} - -function HashSet_2(map_0){ - this.map_0 = map_0; -} - -defineClass(53, $intern_9, $intern_77, HashSet, HashSet_0, HashSet_1); -_.add_2 = function add_35(o){ - return $add_6(this, o); -} -; -_.clear_0 = function clear_42(){ - this.map_0.clear_0(); -} -; -_.contains = function contains_43(o){ - return $contains_6(this, o); -} -; -_.isEmpty = function isEmpty_23(){ - return this.map_0.size_1() == 0; -} -; -_.iterator_0 = function iterator_59(){ - return this.map_0.keySet_0().iterator_0(); -} -; -_.remove_1 = function remove_77(o){ - return $remove_18(this, o); -} -; -_.size_1 = function size_56(){ - return this.map_0.size_1(); -} -; -var Ljava_util_HashSet_2_classLit = createForClass('java.util', 'HashSet', 53); -function $accept_0(this$static, value_0){ - this$static.count = add_20(this$static.count, 1); - this$static.min_0 = $wnd.Math.min(this$static.min_0, value_0); - this$static.max_0 = $wnd.Math.max(this$static.max_0, value_0); - this$static.sum = add_20(this$static.sum, value_0); -} - -function IntSummaryStatistics(){ -} - -defineClass(1781, 1, $intern_21, IntSummaryStatistics); -_.accept_0 = function accept_16(value_0){ - $accept_0(this, value_0); -} -; -_.toString_0 = function toString_66(){ - return 'IntSummaryStatistics[count = ' + toString_39(this.count) + ', avg = ' + (gt(this.count, 0)?toDouble_0(this.sum) / toDouble_0(this.count):0) + ', min = ' + this.min_0 + ', max = ' + this.max_0 + ', sum = ' + toString_39(this.sum) + ']'; -} -; -_.count = 0; -_.max_0 = $intern_42; -_.min_0 = $intern_0; -_.sum = 0; -var Ljava_util_IntSummaryStatistics_2_classLit = createForClass('java.util', 'IntSummaryStatistics', 1781); -function $findEntryInChain(this$static, key, chain){ - var entry, entry$array, entry$index, entry$max; - for (entry$array = chain , entry$index = 0 , entry$max = entry$array.length; entry$index < entry$max; ++entry$index) { - entry = entry$array[entry$index]; - if (this$static.host.equals_1(key, entry.getKey())) { - return entry; - } - } - return null; -} - -function $getChainOrEmpty(this$static, hashCode){ - var chain; - chain = this$static.backingMap.get(hashCode); - return chain == null?new Array:chain; -} - -function $getEntry_0(this$static, key){ - return $findEntryInChain(this$static, key, $getChainOrEmpty(this$static, key == null?0:this$static.host.getHashCode(key))); -} - -function $put_9(this$static, key, value_0){ - var chain, chain0, entry, hashCode; - hashCode = key == null?0:this$static.host.getHashCode(key); - chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); - if (chain0.length == 0) { - this$static.backingMap.set(hashCode, chain0); - } - else { - entry = $findEntryInChain(this$static, key, chain0); - if (entry) { - return entry.setValue(value_0); - } - } - setCheck(chain0, chain0.length, new AbstractMap$SimpleEntry(key, value_0)); - ++this$static.size_0; - structureChanged(this$static.host); - return null; -} - -function $remove_19(this$static, key){ - var chain, chain0, entry, hashCode, i; - hashCode = key == null?0:this$static.host.getHashCode(key); - chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array:chain); - for (i = 0; i < chain0.length; i++) { - entry = chain0[i]; - if (this$static.host.equals_1(key, entry.getKey())) { - if (chain0.length == 1) { - chain0.length = 0; - $delete_0(this$static.backingMap, hashCode); - } - else { - chain0.splice(i, 1); - } - --this$static.size_0; - structureChanged(this$static.host); - return entry.getValue(); - } - } - return null; -} - -function InternalHashCodeMap(host){ - this.backingMap = newJsMap(); - this.host = host; -} - -defineClass(1049, 1, $intern_23, InternalHashCodeMap); -_.forEach_0 = function forEach_21(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_60(){ - return new InternalHashCodeMap$1(this); -} -; -_.size_0 = 0; -var Ljava_util_InternalHashCodeMap_2_classLit = createForClass('java.util', 'InternalHashCodeMap', 1049); -function InternalHashCodeMap$1(this$0){ - this.this$01 = this$0; - this.chains = this.this$01.backingMap.entries(); - this.chain = new Array; -} - -defineClass(711, 1, $intern_6, InternalHashCodeMap$1); -_.forEachRemaining = function forEachRemaining_28(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_31(){ - return this.lastEntry = this.chain[this.itemIndex++] , this.lastEntry; -} -; -_.hasNext_0 = function hasNext_30(){ - var current; - if (this.itemIndex < this.chain.length) { - return true; - } - current = this.chains.next(); - if (!current.done) { - this.chain = current.value[1]; - this.itemIndex = 0; - return true; - } - return false; -} -; -_.remove = function remove_78(){ - $remove_19(this.this$01, this.lastEntry.getKey()); - this.itemIndex != 0 && --this.itemIndex; -} -; -_.itemIndex = 0; -_.lastEntry = null; -var Ljava_util_InternalHashCodeMap$1_2_classLit = createForClass('java.util', 'InternalHashCodeMap/1', 711); -function $delete_0(this$static, key){ - var fn; - fn = this$static['delete']; - fn.call(this$static, key); -} - -function $delete_1(this$static, key){ - var fn; - fn = this$static['delete']; - fn.call(this$static, key); -} - -function $clinit_InternalJsMapFactory(){ - $clinit_InternalJsMapFactory = emptyMethod; - jsMapCtor = getJsMapConstructor(); -} - -function canHandleObjectCreateAndProto(){ - if (!Object.create || !Object.getOwnPropertyNames) { - return false; - } - var protoField = '__proto__'; - var map_0 = Object.create(null); - if (map_0[protoField] !== undefined) { - return false; - } - var keys_0 = Object.getOwnPropertyNames(map_0); - if (keys_0.length != 0) { - return false; - } - map_0[protoField] = 42; - if (map_0[protoField] !== 42) { - return false; - } - if (Object.getOwnPropertyNames(map_0).length == 0) { - return false; - } - return true; -} - -function getJsMapConstructor(){ - function isCorrectIterationProtocol(){ - try { - return (new Map).entries().next().done; - } - catch (e) { - return false; - } - } - - if (typeof Map === 'function' && Map.prototype.entries && isCorrectIterationProtocol()) { - return Map; - } - else { - return getJsMapPolyFill(); - } -} - -function getJsMapPolyFill(){ - function Stringmap(){ - this.obj = this.createObject(); - } - - ; - Stringmap.prototype.createObject = function(key){ - return Object.create(null); - } - ; - Stringmap.prototype.get = function(key){ - return this.obj[key]; - } - ; - Stringmap.prototype.set = function(key, value_0){ - this.obj[key] = value_0; - } - ; - Stringmap.prototype['delete'] = function(key){ - delete this.obj[key]; - } - ; - Stringmap.prototype.keys = function(){ - return Object.getOwnPropertyNames(this.obj); - } - ; - Stringmap.prototype.entries = function(){ - var keys_0 = this.keys(); - var map_0 = this; - var nextIndex = 0; - return {next:function(){ - if (nextIndex >= keys_0.length) - return {done:true}; - var key = keys_0[nextIndex++]; - return {value:[key, map_0.get(key)], done:false}; - } - }; - } - ; - if (!canHandleObjectCreateAndProto()) { - Stringmap.prototype.createObject = function(){ - return {}; - } - ; - Stringmap.prototype.get = function(key){ - return this.obj[':' + key]; - } - ; - Stringmap.prototype.set = function(key, value_0){ - this.obj[':' + key] = value_0; - } - ; - Stringmap.prototype['delete'] = function(key){ - delete this.obj[':' + key]; - } - ; - Stringmap.prototype.keys = function(){ - var result = []; - for (var key in this.obj) { - key.charCodeAt(0) == 58 && result.push(key.substring(1)); - } - return result; - } - ; - } - return Stringmap; -} - -function newJsMap(){ - $clinit_InternalJsMapFactory(); - return new jsMapCtor; -} - -var jsMapCtor; -function $contains_7(this$static, key){ - return !(this$static.backingMap.get(key) === undefined); -} - -function $get_15(this$static, key){ - return this$static.backingMap.get(key); -} - -function $put_10(this$static, key, value_0){ - var oldValue; - oldValue = this$static.backingMap.get(key); - this$static.backingMap.set(key, value_0 === undefined?null:value_0); - if (oldValue === undefined) { - ++this$static.size_0; - structureChanged(this$static.host); - } - else { - ++this$static.valueMod; - } - return oldValue; -} - -function $remove_20(this$static, key){ - var value_0; - value_0 = this$static.backingMap.get(key); - if (value_0 === undefined) { - ++this$static.valueMod; - } - else { - $delete_1(this$static.backingMap, key); - --this$static.size_0; - structureChanged(this$static.host); - } - return value_0; -} - -function InternalStringMap(host){ - this.backingMap = newJsMap(); - this.host = host; -} - -defineClass(1047, 1, $intern_23, InternalStringMap); -_.forEach_0 = function forEach_22(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_61(){ - return new InternalStringMap$1(this); -} -; -_.size_0 = 0; -_.valueMod = 0; -var Ljava_util_InternalStringMap_2_classLit = createForClass('java.util', 'InternalStringMap', 1047); -function InternalStringMap$1(this$0){ - this.this$01 = this$0; - this.entries_0 = this.this$01.backingMap.entries(); - this.current = this.entries_0.next(); -} - -defineClass(710, 1, $intern_6, InternalStringMap$1); -_.forEachRemaining = function forEachRemaining_29(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_32(){ - return this.last = this.current , this.current = this.entries_0.next() , new InternalStringMap$2(this.this$01, this.last, this.this$01.valueMod); -} -; -_.hasNext_0 = function hasNext_31(){ - return !this.current.done; -} -; -_.remove = function remove_79(){ - $remove_20(this.this$01, this.last.value[0]); -} -; -var Ljava_util_InternalStringMap$1_2_classLit = createForClass('java.util', 'InternalStringMap/1', 710); -function InternalStringMap$2(this$0, val$entry, val$lastValueMod){ - this.this$01 = this$0; - this.val$entry2 = val$entry; - this.val$lastValueMod3 = val$lastValueMod; -} - -defineClass(1048, 1984, $intern_70, InternalStringMap$2); -_.getKey = function getKey_7(){ - return this.val$entry2.value[0]; -} -; -_.getValue = function getValue_9(){ - if (this.this$01.valueMod != this.val$lastValueMod3) { - return $get_15(this.this$01, this.val$entry2.value[0]); - } - return this.val$entry2.value[1]; -} -; -_.setValue = function setValue_10(object){ - return $put_10(this.this$01, this.val$entry2.value[0], object); -} -; -_.val$lastValueMod3 = 0; -var Ljava_util_InternalStringMap$2_2_classLit = createForClass('java.util', 'InternalStringMap/2', 1048); -function $$init_3(this$static){ - this$static.head = new LinkedHashMap$ChainEntry(this$static); - this$static.map_0 = new HashMap; -} - -function $clear_7(this$static){ - $reset(this$static.map_0); - this$static.head.prev = this$static.head; - this$static.head.next_0 = this$static.head; -} - -function $containsKey_6(this$static, key){ - return $containsKey_3(this$static.map_0, key); -} - -function $get_16(this$static, key){ - var entry; - entry = castTo($get_10(this$static.map_0, key), 387); - if (entry) { - $recordAccess(this$static, entry); - return entry.value_0; - } - return null; -} - -function $put_11(this$static, key, value_0){ - var newEntry, old, oldValue; - old = castTo($get_10(this$static.map_0, key), 387); - if (!old) { - newEntry = new LinkedHashMap$ChainEntry_0(this$static, key, value_0); - $put_6(this$static.map_0, key, newEntry); - $addToEnd(newEntry); - return null; - } - else { - oldValue = $setValue_0(old, value_0); - $recordAccess(this$static, old); - return oldValue; - } -} - -function $recordAccess(this$static, entry){ - if (this$static.accessOrder) { - $remove_23(entry); - $addToEnd(entry); - } -} - -function $remove_22(this$static, key){ - var entry; - entry = castTo($remove_6(this$static.map_0, key), 387); - if (entry) { - $remove_23(entry); - return entry.value_0; - } - return null; -} - -function LinkedHashMap(){ - HashMap.call(this); - $$init_3(this); - this.head.prev = this.head; - this.head.next_0 = this.head; -} - -function LinkedHashMap_0(ignored){ - AbstractHashMap.call(this, ignored, 0); - $$init_3(this); - this.head.prev = this.head; - this.head.next_0 = this.head; -} - -defineClass(228, 43, $intern_76, LinkedHashMap, LinkedHashMap_0); -_.clear_0 = function clear_43(){ - $clear_7(this); -} -; -_.containsKey = function containsKey_14(key){ - return $containsKey_6(this, key); -} -; -_.containsValue = function containsValue_7(value_0){ - var node; - node = this.head.next_0; - while (node != this.head) { - if (equals_57(node.value_0, value_0)) { - return true; - } - node = node.next_0; - } - return false; -} -; -_.entrySet_0 = function entrySet_7(){ - return new LinkedHashMap$EntrySet(this); -} -; -_.get_3 = function get_42(key){ - return $get_16(this, key); -} -; -_.put = function put_8(key, value_0){ - return $put_11(this, key, value_0); -} -; -_.remove_0 = function remove_80(key){ - return $remove_22(this, key); -} -; -_.size_1 = function size_57(){ - return $size_2(this.map_0); -} -; -_.accessOrder = false; -var Ljava_util_LinkedHashMap_2_classLit = createForClass('java.util', 'LinkedHashMap', 228); -function $addToEnd(this$static){ - var tail; - tail = this$static.this$01.head.prev; - this$static.prev = tail; - this$static.next_0 = this$static.this$01.head; - tail.next_0 = this$static.this$01.head.prev = this$static; -} - -function $remove_23(this$static){ - this$static.next_0.prev = this$static.prev; - this$static.prev.next_0 = this$static.next_0; - this$static.next_0 = this$static.prev = null; -} - -function LinkedHashMap$ChainEntry(this$0){ - LinkedHashMap$ChainEntry_0.call(this, this$0, null, null); -} - -function LinkedHashMap$ChainEntry_0(this$0, key, value_0){ - this.this$01 = this$0; - AbstractMap$SimpleEntry.call(this, key, value_0); -} - -defineClass(387, 383, {484:1, 383:1, 387:1, 42:1}, LinkedHashMap$ChainEntry, LinkedHashMap$ChainEntry_0); -var Ljava_util_LinkedHashMap$ChainEntry_2_classLit = createForClass('java.util', 'LinkedHashMap/ChainEntry', 387); -function $contains_8(this$static, o){ - if (instanceOf(o, 42)) { - return $containsEntry_0(this$static.this$01, castTo(o, 42)); - } - return false; -} - -function LinkedHashMap$EntrySet(this$0){ - this.this$01 = this$0; -} - -defineClass(701, $intern_9, $intern_10, LinkedHashMap$EntrySet); -_.clear_0 = function clear_44(){ - $clear_7(this.this$01); -} -; -_.contains = function contains_44(o){ - return $contains_8(this, o); -} -; -_.iterator_0 = function iterator_62(){ - return new LinkedHashMap$EntrySet$EntryIterator(this); -} -; -_.remove_1 = function remove_81(entry){ - var key; - if ($contains_8(this, entry)) { - key = castTo(entry, 42).getKey(); - $remove_22(this.this$01, key); - return true; - } - return false; -} -; -_.size_1 = function size_58(){ - return $size_2(this.this$01.map_0); -} -; -var Ljava_util_LinkedHashMap$EntrySet_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet', 701); -function $next_9(this$static){ - checkStructuralChange(this$static.this$11.this$01.map_0, this$static); - checkCriticalElement(this$static.next_0 != this$static.this$11.this$01.head); - this$static.last = this$static.next_0; - this$static.next_0 = this$static.next_0.next_0; - return this$static.last; -} - -function LinkedHashMap$EntrySet$EntryIterator(this$1){ - this.this$11 = this$1; - this.next_0 = this$1.this$01.head.next_0; - recordLastKnownStructure(this$1.this$01.map_0, this); -} - -defineClass(702, 1, $intern_6, LinkedHashMap$EntrySet$EntryIterator); -_.forEachRemaining = function forEachRemaining_30(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_33(){ - return $next_9(this); -} -; -_.hasNext_0 = function hasNext_32(){ - return this.next_0 != this.this$11.this$01.head; -} -; -_.remove = function remove_82(){ - checkCriticalState(!!this.last); - checkStructuralChange(this.this$11.this$01.map_0, this); - $remove_23(this.last); - $remove_6(this.this$11.this$01.map_0, this.last.key); - recordLastKnownStructure(this.this$11.this$01.map_0, this); - this.last = null; -} -; -var Ljava_util_LinkedHashMap$EntrySet$EntryIterator_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet/EntryIterator', 702); -function LinkedHashSet(){ - HashSet_2.call(this, new LinkedHashMap); -} - -function LinkedHashSet_0(ignored){ - HashSet_2.call(this, new LinkedHashMap_0(ignored)); -} - -function LinkedHashSet_1(c){ - HashSet_2.call(this, new LinkedHashMap); - $addAll(this, c); -} - -defineClass(178, 53, $intern_77, LinkedHashSet, LinkedHashSet_0, LinkedHashSet_1); -var Ljava_util_LinkedHashSet_2_classLit = createForClass('java.util', 'LinkedHashSet', 178); -function $$init_4(this$static){ - this$static.header = new LinkedList$Node; - this$static.tail = new LinkedList$Node; -} - -function $add_7(this$static, o){ - $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); - return true; -} - -function $addFirst_0(this$static, o){ - $addNode_0(this$static, o, this$static.header, this$static.header.next_0); -} - -function $addLast_0(this$static, o){ - $addNode_0(this$static, o, this$static.tail.prev, this$static.tail); -} - -function $addNode_0(this$static, o, prev, next){ - var node; - node = new LinkedList$Node; - node.value_0 = o; - node.prev = prev; - node.next_0 = next; - next.prev = prev.next_0 = node; - ++this$static.size_0; -} - -function $getFirst(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return this$static.header.next_0.value_0; -} - -function $getLast(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return this$static.tail.prev.value_0; -} - -function $listIterator_2(this$static, index_0){ - var i, node; - checkCriticalPositionIndex(index_0, this$static.size_0); - if (index_0 >= this$static.size_0 >> 1) { - node = this$static.tail; - for (i = this$static.size_0; i > index_0; --i) { - node = node.prev; - } - } - else { - node = this$static.header.next_0; - for (i = 0; i < index_0; ++i) { - node = node.next_0; - } - } - return new LinkedList$ListIteratorImpl(this$static, index_0, node); -} - -function $poll(this$static){ - return this$static.size_0 == 0?null:(checkCriticalElement(this$static.size_0 != 0) , $removeNode_0(this$static, this$static.header.next_0)); -} - -function $removeFirst_0(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return $removeNode_0(this$static, this$static.header.next_0); -} - -function $removeLast_0(this$static){ - checkCriticalElement(this$static.size_0 != 0); - return $removeNode_0(this$static, this$static.tail.prev); -} - -function $removeNode_0(this$static, node){ - var oldValue; - oldValue = node.value_0; - node.next_0.prev = node.prev; - node.prev.next_0 = node.next_0; - node.next_0 = node.prev = null; - node.value_0 = null; - --this$static.size_0; - return oldValue; -} - -function $reset_0(this$static){ - this$static.header.next_0 = this$static.tail; - this$static.tail.prev = this$static.header; - this$static.header.prev = this$static.tail.next_0 = null; - this$static.size_0 = 0; -} - -function LinkedList(){ - $$init_4(this); - $reset_0(this); -} - -function LinkedList_0(c){ - $$init_4(this); - $reset_0(this); - $addAll(this, c); -} - -defineClass(68, 1964, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1}, LinkedList, LinkedList_0); -_.add_2 = function add_36(o){ - return $add_7(this, o); -} -; -_.clear_0 = function clear_45(){ - $reset_0(this); -} -; -_.listIterator_1 = function listIterator_14(index_0){ - return $listIterator_2(this, index_0); -} -; -_.size_1 = function size_59(){ - return this.size_0; -} -; -_.size_0 = 0; -var Ljava_util_LinkedList_2_classLit = createForClass('java.util', 'LinkedList', 68); -function $add_8(this$static, o){ - $addNode_0(this$static.this$01, o, this$static.currentNode.prev, this$static.currentNode); - ++this$static.currentIndex; - this$static.lastNode = null; -} - -function $hasNext_5(this$static){ - return this$static.currentNode != this$static.this$01.tail; -} - -function $next_10(this$static){ - checkCriticalElement(this$static.currentNode != this$static.this$01.tail); - this$static.lastNode = this$static.currentNode; - this$static.currentNode = this$static.currentNode.next_0; - ++this$static.currentIndex; - return this$static.lastNode.value_0; -} - -function $previous_0(this$static){ - checkCriticalElement(this$static.currentNode.prev != this$static.this$01.header); - this$static.lastNode = this$static.currentNode = this$static.currentNode.prev; - --this$static.currentIndex; - return this$static.lastNode.value_0; -} - -function $remove_24(this$static){ - var nextNode; - checkCriticalState(!!this$static.lastNode); - nextNode = this$static.lastNode.next_0; - $removeNode_0(this$static.this$01, this$static.lastNode); - this$static.currentNode == this$static.lastNode?(this$static.currentNode = nextNode):--this$static.currentIndex; - this$static.lastNode = null; -} - -function LinkedList$ListIteratorImpl(this$0, index_0, startNode){ - this.this$01 = this$0; - this.currentNode = startNode; - this.currentIndex = index_0; -} - -defineClass(970, 1, $intern_14, LinkedList$ListIteratorImpl); -_.forEachRemaining = function forEachRemaining_31(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_37(o){ - $add_8(this, o); -} -; -_.hasNext_0 = function hasNext_33(){ - return $hasNext_5(this); -} -; -_.hasPrevious = function hasPrevious_6(){ - return this.currentNode.prev != this.this$01.header; -} -; -_.next_1 = function next_34(){ - return $next_10(this); -} -; -_.nextIndex_0 = function nextIndex_7(){ - return this.currentIndex; -} -; -_.previous_0 = function previous_7(){ - return $previous_0(this); -} -; -_.previousIndex = function previousIndex_6(){ - return this.currentIndex - 1; -} -; -_.remove = function remove_83(){ - $remove_24(this); -} -; -_.set_1 = function set_18(o){ - checkCriticalState(!!this.lastNode); - this.lastNode.value_0 = o; -} -; -_.currentIndex = 0; -_.lastNode = null; -var Ljava_util_LinkedList$ListIteratorImpl_2_classLit = createForClass('java.util', 'LinkedList/ListIteratorImpl', 970); -function LinkedList$Node(){ -} - -defineClass(608, 1, {}, LinkedList$Node); -var Ljava_util_LinkedList$Node_2_classLit = createForClass('java.util', 'LinkedList/Node', 608); -function $clinit_Locale(){ - $clinit_Locale = emptyMethod; - ROOT = new Locale$1; - defaultLocale = new Locale$4; -} - -defineClass(1959, 1, {}); -var ROOT, defaultLocale; -var Ljava_util_Locale_2_classLit = createForClass('java.util', 'Locale', 1959); -function Locale$1(){ -} - -defineClass(861, 1959, {}, Locale$1); -_.toString_0 = function toString_67(){ - return ''; -} -; -var Ljava_util_Locale$1_2_classLit = createForClass('java.util', 'Locale/1', 861); -function Locale$4(){ -} - -defineClass(862, 1959, {}, Locale$4); -_.toString_0 = function toString_68(){ - return 'unknown'; -} -; -var Ljava_util_Locale$4_2_classLit = createForClass('java.util', 'Locale/4', 862); -function NoSuchElementException(){ - RuntimeException.call(this); -} - -function NoSuchElementException_0(){ - RuntimeException_0.call(this, 'There is no more element.'); -} - -defineClass(109, 60, {3:1, 102:1, 60:1, 78:1, 109:1}, NoSuchElementException, NoSuchElementException_0); -var Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util', 'NoSuchElementException', 109); -function equals_57(a, b){ - return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); -} - -function hashCode_54(o){ - return o != null?hashCode__I__devirtual$(o):0; -} - -function requireNonNull(obj, message){ - if (obj == null) { - throw toJs(new NullPointerException_0(message)); - } - return obj; -} - -function $clinit_Optional(){ - $clinit_Optional = emptyMethod; - EMPTY_3 = new Optional(null); -} - -function $get_17(this$static){ - checkCriticalElement(this$static.ref != null); - return this$static.ref; -} - -function $ifPresent(this$static, consumer){ - this$static.ref != null && $accept_4(consumer, this$static.ref); -} - -function $map(this$static, mapper){ - checkCriticalNotNull(mapper); - if (this$static.ref != null) { - return ofNullable(mapper.apply_0(this$static.ref)); - } - return EMPTY_3; -} - -function $orElse(this$static){ - return this$static.ref != null?this$static.ref:null; -} - -function Optional(ref){ - $clinit_Optional(); - this.ref = ref; -} - -function ofNullable(value_0){ - return value_0 == null?EMPTY_3:new Optional(checkCriticalNotNull(value_0)); -} - -defineClass(404, 1, {404:1}, Optional); -_.equals_0 = function equals_58(obj){ - var other; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 404)) { - return false; - } - other = castTo(obj, 404); - return equals_57(this.ref, other.ref); -} -; -_.hashCode_1 = function hashCode_55(){ - return hashCode_54(this.ref); -} -; -_.toString_0 = function toString_69(){ - return this.ref != null?'Optional.of(' + valueOf_7(this.ref) + ')':'Optional.empty()'; -} -; -var EMPTY_3; -var Ljava_util_Optional_2_classLit = createForClass('java.util', 'Optional', 404); -function $clinit_OptionalDouble(){ - $clinit_OptionalDouble = emptyMethod; - EMPTY_4 = new OptionalDouble; -} - -function $orElse_0(this$static){ - return this$static.present?this$static.ref:0; -} - -function $orElseGet(this$static, other){ - return this$static.present?this$static.ref:other.getAsDouble(); -} - -function OptionalDouble(){ - this.ref = 0; - this.present = false; -} - -function OptionalDouble_0(value_0){ - $clinit_OptionalDouble(); - this.ref = value_0; - this.present = true; -} - -defineClass(463, 1, {463:1}, OptionalDouble, OptionalDouble_0); -_.equals_0 = function equals_59(obj){ - var other; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 463)) { - return false; - } - other = castTo(obj, 463); - return this.present == other.present && compare_4(this.ref, other.ref) == 0; -} -; -_.hashCode_1 = function hashCode_56(){ - return this.present?round_int(this.ref):0; -} -; -_.toString_0 = function toString_70(){ - return this.present?'OptionalDouble.of(' + ('' + this.ref) + ')':'OptionalDouble.empty()'; -} -; -_.present = false; -_.ref = 0; -var EMPTY_4; -var Ljava_util_OptionalDouble_2_classLit = createForClass('java.util', 'OptionalDouble', 463); -function $clinit_OptionalInt(){ - $clinit_OptionalInt = emptyMethod; - EMPTY_5 = new OptionalInt; -} - -function $orElse_1(this$static){ - return this$static.present?this$static.ref:0; -} - -function OptionalInt(){ - this.ref = 0; - this.present = false; -} - -function OptionalInt_0(value_0){ - $clinit_OptionalInt(); - this.ref = value_0; - this.present = true; -} - -defineClass(517, 1, {517:1}, OptionalInt, OptionalInt_0); -_.equals_0 = function equals_60(obj){ - var other; - if (obj === this) { - return true; - } - if (!instanceOf(obj, 517)) { - return false; - } - other = castTo(obj, 517); - return this.present == other.present && compare_5(this.ref, other.ref) == 0; -} -; -_.hashCode_1 = function hashCode_57(){ - return this.present?this.ref:0; -} -; -_.toString_0 = function toString_71(){ - return this.present?'OptionalInt.of(' + ('' + this.ref) + ')':'OptionalInt.empty()'; -} -; -_.present = false; -_.ref = 0; -var EMPTY_5; -var Ljava_util_OptionalInt_2_classLit = createForClass('java.util', 'OptionalInt', 517); -function $addAll_4(this$static, c){ - var e, e$iterator, oldSize; - checkCriticalNotNull(c); - checkCriticalArgument(c != this$static); - oldSize = this$static.heap.array.length; - for (e$iterator = c.iterator_0(); e$iterator.hasNext_0();) { - e = e$iterator.next_1(); - $add_3(this$static.heap, checkCriticalNotNull(e)); - } - if (oldSize != this$static.heap.array.length) { - $makeHeap(this$static, 0); - return true; - } - return false; -} - -function $makeHeap(this$static, node){ - var rightChild; - if (node * 2 + 1 >= this$static.heap.array.length) { - return; - } - $makeHeap(this$static, 2 * node + 1); - rightChild = 2 * node + 2; - rightChild < this$static.heap.array.length && $makeHeap(this$static, rightChild); - $mergeHeaps(this$static, node); -} - -function $mergeHeaps(this$static, node){ - var heapSize, smallestChild, value_0, leftChild, rightChild, smallestChild_0; - heapSize = this$static.heap.array.length; - value_0 = $get_11(this$static.heap, node); - while (node * 2 + 1 < heapSize) { - smallestChild = (leftChild = 2 * node + 1 , rightChild = leftChild + 1 , smallestChild_0 = leftChild , rightChild < heapSize && this$static.cmp.compare_1($get_11(this$static.heap, rightChild), $get_11(this$static.heap, leftChild)) < 0 && (smallestChild_0 = rightChild) , smallestChild_0); - if (this$static.cmp.compare_1(value_0, $get_11(this$static.heap, smallestChild)) < 0) { - break; - } - $set_1(this$static.heap, node, $get_11(this$static.heap, smallestChild)); - node = smallestChild; - } - $set_1(this$static.heap, node, value_0); -} - -function $offer(this$static, e){ - var childNode, node; - checkCriticalNotNull(e); - node = this$static.heap.array.length; - $add_3(this$static.heap, e); - while (node > 0) { - childNode = node; - node = (node - 1) / 2 | 0; - if (this$static.cmp.compare_1($get_11(this$static.heap, node), e) <= 0) { - $set_1(this$static.heap, childNode, e); - return true; - } - $set_1(this$static.heap, childNode, $get_11(this$static.heap, node)); - } - $set_1(this$static.heap, node, e); - return true; -} - -function $poll_0(this$static){ - var value_0; - value_0 = this$static.heap.array.length == 0?null:$get_11(this$static.heap, 0); - value_0 != null && $removeAtIndex_0(this$static, 0); - return value_0; -} - -function $remove_25(this$static, o){ - var index_0; - index_0 = o == null?-1:$indexOf_3(this$static.heap, o, 0); - if (index_0 < 0) { - return false; - } - $removeAtIndex_0(this$static, index_0); - return true; -} - -function $removeAtIndex_0(this$static, index_0){ - var lastValue; - lastValue = $remove_11(this$static.heap, this$static.heap.array.length - 1); - if (index_0 < this$static.heap.array.length) { - $set_1(this$static.heap, index_0, lastValue); - $mergeHeaps(this$static, index_0); - } -} - -function PriorityQueue(comparator){ - this.heap = new ArrayList_0(11); - this.cmp = ($clinit_Comparators() , comparator); -} - -defineClass(503, 2004, $intern_8, PriorityQueue); -_.addAll = function addAll_18(c){ - return $addAll_4(this, c); -} -; -_.clear_0 = function clear_46(){ - this.heap.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_45(o){ - return (o == null?-1:$indexOf_3(this.heap, o, 0)) != -1; -} -; -_.iterator_0 = function iterator_63(){ - return new PriorityQueue$1(this); -} -; -_.remove_1 = function remove_84(o){ - return $remove_25(this, o); -} -; -_.size_1 = function size_60(){ - return this.heap.array.length; -} -; -_.spliterator_0 = function spliterator_33(){ - return new Spliterators$IteratorSpliterator(this, 256); -} -; -_.toArray = function toArray_19(){ - return $toArray_1(this.heap); -} -; -_.toArray_0 = function toArray_20(a){ - return $toArray_2(this.heap, a); -} -; -var Ljava_util_PriorityQueue_2_classLit = createForClass('java.util', 'PriorityQueue', 503); -function PriorityQueue$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1277, 1, $intern_6, PriorityQueue$1); -_.forEachRemaining = function forEachRemaining_32(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_34(){ - return this.i < this.this$01.heap.array.length; -} -; -_.next_1 = function next_35(){ - checkCriticalElement(this.i < this.this$01.heap.array.length); - this.last = this.i++; - return $get_11(this.this$01.heap, this.last); -} -; -_.remove = function remove_85(){ - checkCriticalState(this.last != -1); - $removeAtIndex_0(this.this$01, this.i = this.last); - this.last = -1; -} -; -_.i = 0; -_.last = -1; -var Ljava_util_PriorityQueue$1_2_classLit = createForClass('java.util', 'PriorityQueue/1', 1277); -function $clinit_Random(){ - $clinit_Random = emptyMethod; - var i, i0, twoToTheXMinus24Tmp, twoToTheXMinus48Tmp; - twoToTheXMinus24 = initUnidimensionalArray(D_classLit, $intern_65, 25, 25, 15, 1); - twoToTheXMinus48 = initUnidimensionalArray(D_classLit, $intern_65, 25, 33, 15, 1); - twoToTheXMinus48Tmp = 1.52587890625E-5; - for (i0 = 32; i0 >= 0; i0--) { - twoToTheXMinus48[i0] = twoToTheXMinus48Tmp; - twoToTheXMinus48Tmp *= 0.5; - } - twoToTheXMinus24Tmp = 1; - for (i = 24; i >= 0; i--) { - twoToTheXMinus24[i] = twoToTheXMinus24Tmp; - twoToTheXMinus24Tmp *= 0.5; - } -} - -function $nextDouble(this$static){ - return $nextInternal(this$static, 26) * $intern_78 + $nextInternal(this$static, 27) * $intern_79; -} - -function $nextInt(this$static, n){ - var bits, val; - checkCriticalArgument(n > 0); - if ((n & -n) == n) { - return round_int(n * $nextInternal(this$static, 31) * 4.6566128730773926E-10); - } - do { - bits = $nextInternal(this$static, 31); - val = bits % n; - } - while (bits - val + (n - 1) < 0); - return round_int(val); -} - -function $nextInternal(this$static, bits){ - var carry, dval, h, hi, l, lo; - hi = this$static.seedhi * $intern_80 + this$static.seedlo * 1502; - lo = this$static.seedlo * $intern_80 + 11; - carry = $wnd.Math.floor(lo * $intern_81); - hi += carry; - lo -= carry * $intern_82; - hi %= $intern_82; - this$static.seedhi = hi; - this$static.seedlo = lo; - if (bits <= 24) { - return $wnd.Math.floor(this$static.seedhi * twoToTheXMinus24[bits]); - } - else { - h = this$static.seedhi * (1 << bits - 24); - l = $wnd.Math.floor(this$static.seedlo * twoToTheXMinus48[bits]); - dval = h + l; - dval >= 2147483648 && (dval -= $intern_69); - return dval; - } -} - -function $nextLong(this$static){ - return add_20(shl_0(fromDouble_0($nextInternal(this$static, 32)), 32), fromDouble_0($nextInternal(this$static, 32))); -} - -function $setSeed(this$static, seedhi, seedlo){ - this$static.seedhi = seedhi ^ 1502; - this$static.seedlo = seedlo ^ $intern_80; -} - -function $setSeed_0(this$static, seed){ - $setSeed(this$static, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); -} - -function Random(){ - $clinit_Random(); - var hi, lo, seed; - seed = uniqueSeed++ + Date.now(); - hi = round_int($wnd.Math.floor(seed * $intern_81)) & $intern_83; - lo = round_int(seed - hi * $intern_82); - this.seedhi = hi ^ 1502; - this.seedlo = lo ^ $intern_80; -} - -function Random_0(seed){ - $clinit_Random(); - $setSeed(this, toInt_0(and_0(shr_0(seed, 24), $intern_83)), toInt_0(and_0(seed, $intern_83))); -} - -defineClass(230, 1, {230:1}, Random, Random_0); -_.seedhi = 0; -_.seedlo = 0; -var twoToTheXMinus24, twoToTheXMinus48, uniqueSeed = 0; -var Ljava_util_Random_2_classLit = createForClass('java.util', 'Random', 230); -function $initIterator(this$static){ - if (!this$static.it) { - this$static.it = this$static.collection.iterator_0(); - this$static.estimateSize = this$static.collection.size_1(); - } -} - -function $tryAdvance(this$static, consumer){ - checkCriticalNotNull(consumer); - $initIterator(this$static); - if (this$static.it.hasNext_0()) { - consumer.accept(this$static.it.next_1()); - return true; - } - return false; -} - -function Spliterators$IteratorSpliterator(collection, characteristics){ - this.collection = (checkCriticalNotNull(collection) , collection); - this.characteristics = (characteristics & $intern_61) == 0?characteristics | 64 | $intern_17:characteristics; -} - -function Spliterators$IteratorSpliterator_0(it){ - this.it = (checkCriticalNotNull(it) , it); - this.characteristics = 0; - this.estimateSize = $intern_20; -} - -function Spliterators$IteratorSpliterator_1(it, size_0){ - this.it = (checkCriticalNotNull(it) , it); - this.characteristics = 16449; - this.estimateSize = size_0; -} - -defineClass(27, 1, $intern_18, Spliterators$IteratorSpliterator, Spliterators$IteratorSpliterator_0, Spliterators$IteratorSpliterator_1); -_.characteristics_0 = function characteristics_3(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_2(){ - $initIterator(this); - return this.estimateSize; -} -; -_.forEachRemaining = function forEachRemaining_33(consumer){ - $initIterator(this); - this.it.forEachRemaining(consumer); -} -; -_.tryAdvance = function tryAdvance_2(consumer){ - return $tryAdvance(this, consumer); -} -; -_.characteristics = 0; -_.estimateSize = 0; -var Ljava_util_Spliterators$IteratorSpliterator_2_classLit = createForClass('java.util', 'Spliterators/IteratorSpliterator', 27); -function SortedSet$1($anonymous0){ - Spliterators$IteratorSpliterator.call(this, $anonymous0, 21); -} - -defineClass(485, 27, $intern_18, SortedSet$1); -var Ljava_util_SortedSet$1_2_classLit = createForClass('java.util', 'SortedSet/1', 485); -function $forEachRemaining_1(this$static, consumer){ - while (this$static.tryAdvance_0(consumer)) - ; -} - -function Spliterator$OfDouble$0methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(602, 1, $intern_75, Spliterator$OfDouble$0methodref$accept$Type); -_.accept_2 = function accept_17(arg0){ - this.$$outer_0.accept(arg0); -} -; -var Ljava_util_Spliterator$OfDouble$0methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/0methodref$accept$Type', 602); -function Spliterator$OfDouble$1methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(603, 1, $intern_75, Spliterator$OfDouble$1methodref$accept$Type); -_.accept_2 = function accept_18(arg0){ - this.$$outer_0.accept(arg0); -} -; -var Ljava_util_Spliterator$OfDouble$1methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfDouble/1methodref$accept$Type', 603); -function Spliterator$OfInt$2methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(604, 1, $intern_21, Spliterator$OfInt$2methodref$accept$Type); -_.accept_0 = function accept_19(arg0){ - this.$$outer_0.accept(valueOf_4(arg0)); -} -; -var Ljava_util_Spliterator$OfInt$2methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/2methodref$accept$Type', 604); -function Spliterator$OfInt$3methodref$accept$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(605, 1, $intern_21, Spliterator$OfInt$3methodref$accept$Type); -_.accept_0 = function accept_20(arg0){ - this.$$outer_0.accept(valueOf_4(arg0)); -} -; -var Ljava_util_Spliterator$OfInt$3methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/3methodref$accept$Type', 605); -function checkCriticalArrayBounds(end, length_0){ - if (0 > end || end > length_0) { - throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: 0, toIndex: ' + end + ', length: ' + length_0)); - } -} - -function Spliterators$BaseSpliterator(size_0, characteristics){ - this.sizeEstimate = size_0; - this.characteristics = (characteristics & 64) != 0?characteristics | $intern_17:characteristics; -} - -defineClass(617, 1, $intern_18); -_.forEachRemaining = function forEachRemaining_34(consumer){ - $forEachRemaining_0(this, consumer); -} -; -_.characteristics_0 = function characteristics_4(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_3(){ - return this.sizeEstimate; -} -; -_.characteristics = 0; -_.sizeEstimate = 0; -var Ljava_util_Spliterators$BaseSpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseSpliterator', 617); -function Spliterators$AbstractDoubleSpliterator(size_0, characteristics){ - Spliterators$BaseSpliterator.call(this, size_0, characteristics); -} - -defineClass(721, 617, $intern_18); -_.forEachRemaining_0 = function forEachRemaining_35(consumer){ - $forEachRemaining_1(this, consumer); -} -; -_.forEachRemaining = function forEachRemaining_36(consumer){ - instanceOf(consumer, 182)?$forEachRemaining_1(this, castTo(consumer, 182)):$forEachRemaining_1(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); -} -; -_.tryAdvance = function tryAdvance_3(consumer){ - return instanceOf(consumer, 182)?this.tryAdvance_0(castTo(consumer, 182)):this.tryAdvance_0(new Spliterator$OfDouble$0methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$AbstractDoubleSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractDoubleSpliterator', 721); -function Spliterators$AbstractIntSpliterator(size_0, characteristics){ - Spliterators$BaseSpliterator.call(this, size_0, characteristics); -} - -defineClass(720, 617, $intern_18); -_.forEachRemaining_0 = function forEachRemaining_37(consumer){ - $forEachRemaining_1(this, consumer); -} -; -_.forEachRemaining = function forEachRemaining_38(consumer){ - instanceOf(consumer, 196)?$forEachRemaining_1(this, castTo(consumer, 196)):$forEachRemaining_1(this, new Spliterator$OfInt$3methodref$accept$Type(consumer)); -} -; -_.tryAdvance = function tryAdvance_4(consumer){ - return instanceOf(consumer, 196)?this.tryAdvance_0(castTo(consumer, 196)):this.tryAdvance_0(new Spliterator$OfInt$2methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$AbstractIntSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractIntSpliterator', 720); -function Spliterators$AbstractSpliterator(size_0, characteristics){ - Spliterators$BaseSpliterator.call(this, size_0, characteristics); -} - -defineClass(540, 617, $intern_18); -var Ljava_util_Spliterators$AbstractSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractSpliterator', 540); -function $forEachRemaining_2(this$static, consumer){ - checkCriticalNotNull(consumer); - while (this$static.index_0 < this$static.limit) { - this$static.consume(consumer, this$static.index_0++); - } -} - -function $tryAdvance_0(this$static, consumer){ - checkCriticalNotNull(consumer); - if (this$static.index_0 < this$static.limit) { - this$static.consume(consumer, this$static.index_0++); - return true; - } - return false; -} - -function Spliterators$BaseArraySpliterator(limit, characteristics){ - this.index_0 = 0; - this.limit = limit; - this.characteristics = characteristics | 64 | $intern_17; -} - -defineClass(692, 1, $intern_18); -_.forEachRemaining = function forEachRemaining_39(consumer){ - $forEachRemaining_0(this, consumer); -} -; -_.characteristics_0 = function characteristics_5(){ - return this.characteristics; -} -; -_.estimateSize_0 = function estimateSize_4(){ - return this.limit - this.index_0; -} -; -_.characteristics = 0; -_.index_0 = 0; -_.limit = 0; -var Ljava_util_Spliterators$BaseArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/BaseArraySpliterator', 692); -function $consume(this$static, consumer, index_0){ - consumer.accept(this$static.array[index_0]); -} - -function Spliterators$ArraySpliterator(array, limit){ - Spliterators$BaseArraySpliterator.call(this, limit, 1040); - this.array = array; -} - -defineClass(947, 692, $intern_18, Spliterators$ArraySpliterator); -_.consume = function consume(consumer, index_0){ - $consume(this, castTo(consumer, 38), index_0); -} -; -_.forEachRemaining = function forEachRemaining_40(consumer){ - $forEachRemaining_2(this, consumer); -} -; -_.tryAdvance = function tryAdvance_5(consumer){ - return $tryAdvance_0(this, consumer); -} -; -var Ljava_util_Spliterators$ArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/ArraySpliterator', 947); -function $consume_0(this$static, consumer, index_0){ - consumer.accept_2(this$static.array[index_0]); -} - -function Spliterators$DoubleArraySpliterator(array, characteristics){ - Spliterators$DoubleArraySpliterator_0.call(this, array, array.length, characteristics); -} - -function Spliterators$DoubleArraySpliterator_0(array, limit, characteristics){ - Spliterators$BaseArraySpliterator.call(this, limit, characteristics); - this.array = array; -} - -defineClass(693, 692, $intern_18, Spliterators$DoubleArraySpliterator); -_.consume = function consume_0(consumer, index_0){ - $consume_0(this, castTo(consumer, 182), index_0); -} -; -_.forEachRemaining_0 = function forEachRemaining_41(consumer){ - $forEachRemaining_2(this, consumer); -} -; -_.forEachRemaining = function forEachRemaining_42(consumer){ - instanceOf(consumer, 182)?$forEachRemaining_2(this, castTo(consumer, 182)):$forEachRemaining_2(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); -} -; -_.tryAdvance_0 = function tryAdvance_6(consumer){ - return $tryAdvance_0(this, consumer); -} -; -_.tryAdvance = function tryAdvance_7(consumer){ - return instanceOf(consumer, 182)?$tryAdvance_0(this, castTo(consumer, 182)):$tryAdvance_0(this, new Spliterator$OfDouble$0methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$DoubleArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/DoubleArraySpliterator', 693); -function $clinit_Spliterators$EmptySpliterator(){ - $clinit_Spliterators$EmptySpliterator = emptyMethod; - $clinit_Spliterators$EmptySpliterator(); - OF_INT = new Spliterators$EmptySpliterator$OfInt; -} - -defineClass(1968, 1, $intern_18); -_.forEachRemaining = function forEachRemaining_43(consumer){ - $forEachRemaining_0(this, consumer); -} -; -_.characteristics_0 = function characteristics_6(){ - return 16448; -} -; -_.estimateSize_0 = function estimateSize_5(){ - return 0; -} -; -var OF_INT; -var Ljava_util_Spliterators$EmptySpliterator_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator', 1968); -function $forEachRemaining_3(consumer){ - checkCriticalNotNull(consumer); -} - -function $tryAdvance_1(consumer){ - return checkCriticalNotNull(consumer) , false; -} - -function Spliterators$EmptySpliterator$OfInt(){ -} - -defineClass(946, 1968, $intern_18, Spliterators$EmptySpliterator$OfInt); -_.forEachRemaining_0 = function forEachRemaining_44(consumer){ - $forEachRemaining_3(consumer); -} -; -_.forEachRemaining = function forEachRemaining_45(consumer){ - instanceOf(consumer, 196)?$forEachRemaining_3(castTo(consumer, 196)):$forEachRemaining_3(new Spliterator$OfInt$3methodref$accept$Type(consumer)); -} -; -_.tryAdvance_0 = function tryAdvance_8(consumer){ - return $tryAdvance_1(consumer); -} -; -_.tryAdvance = function tryAdvance_9(consumer){ - return instanceOf(consumer, 196)?$tryAdvance_1(castTo(consumer, 196)):$tryAdvance_1(new Spliterator$OfInt$2methodref$accept$Type(consumer)); -} -; -var Ljava_util_Spliterators$EmptySpliterator$OfInt_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator/OfInt', 946); -function $addElement(this$static, o){ - $add_3(this$static.arrayList, o); -} - -function $elementAt(this$static, index_0){ - return checkArrayElementIndex(index_0, this$static.arrayList.array.length) , $get_11(this$static.arrayList, index_0); -} - -function $setElementAt(this$static, o, index_0){ - checkArrayElementIndex(index_0, this$static.arrayList.array.length); - $set_1(this$static.arrayList, index_0, o); -} - -function Vector(){ - this.arrayList = new ArrayList; -} - -function checkArrayElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new ArrayIndexOutOfBoundsException); - } -} - -defineClass(580, 52, $intern_84, Vector); -_.add_3 = function add_38(index_0, o){ - checkArrayElementIndex(index_0, this.arrayList.array.length + 1); - $add_2(this.arrayList, index_0, o); -} -; -_.add_2 = function add_39(o){ - return $add_3(this.arrayList, o); -} -; -_.addAll_0 = function addAll_19(index_0, c){ - checkArrayElementIndex(index_0, this.arrayList.array.length + 1); - return $addAll_1(this.arrayList, index_0, c); -} -; -_.addAll = function addAll_20(c){ - return $addAll_2(this.arrayList, c); -} -; -_.clear_0 = function clear_47(){ - this.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_46(elem){ - return $indexOf_3(this.arrayList, elem, 0) != -1; -} -; -_.containsAll = function containsAll_9(c){ - return $containsAll(this.arrayList, c); -} -; -_.forEach_0 = function forEach_23(consumer){ - $forEach_1(this.arrayList, consumer); -} -; -_.get_0 = function get_43(index_0){ - return checkArrayElementIndex(index_0, this.arrayList.array.length) , $get_11(this.arrayList, index_0); -} -; -_.indexOf_0 = function indexOf_6(elem){ - return $indexOf_3(this.arrayList, elem, 0); -} -; -_.isEmpty = function isEmpty_24(){ - return this.arrayList.array.length == 0; -} -; -_.iterator_0 = function iterator_64(){ - return new ArrayList$1(this.arrayList); -} -; -_.remove_2 = function remove_86(index_0){ - return checkArrayElementIndex(index_0, this.arrayList.array.length) , $remove_11(this.arrayList, index_0); -} -; -_.removeRange = function removeRange_2(fromIndex, endIndex){ - $removeRange(this.arrayList, fromIndex, endIndex); -} -; -_.set_2 = function set_19(index_0, elem){ - return checkArrayElementIndex(index_0, this.arrayList.array.length) , $set_1(this.arrayList, index_0, elem); -} -; -_.size_1 = function size_61(){ - return this.arrayList.array.length; -} -; -_.sort_0 = function sort_8(c){ - $sort(this.arrayList, c); -} -; -_.subList = function subList_8(fromIndex, toIndex){ - return new AbstractList$SubList(this.arrayList, fromIndex, toIndex); -} -; -_.toArray = function toArray_21(){ - return $toArray_1(this.arrayList); -} -; -_.toArray_0 = function toArray_22(a){ - return $toArray_2(this.arrayList, a); -} -; -_.toString_0 = function toString_72(){ - return $toString_2(this.arrayList); -} -; -var Ljava_util_Vector_2_classLit = createForClass('java.util', 'Vector', 580); -function $pop(this$static){ - var sz; - sz = this$static.arrayList.array.length; - if (sz > 0) { - return checkArrayElementIndex(sz - 1, this$static.arrayList.array.length) , $remove_11(this$static.arrayList, sz - 1); - } - else { - throw toJs(new EmptyStackException); - } -} - -function $push(this$static, o){ - $add_3(this$static.arrayList, o); - return o; -} - -function Stack(){ - Vector.call(this); -} - -defineClass(809, 580, $intern_84, Stack); -var Ljava_util_Stack_2_classLit = createForClass('java.util', 'Stack', 809); -function $add_9(this$static, newElement){ - !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); - $append_8(this$static.builder, newElement); - return this$static; -} - -function $merge_0(this$static, other){ - var otherLength; - if (other.builder) { - otherLength = other.builder.string.length; - !this$static.builder?(this$static.builder = new StringBuilder_1(this$static.prefix)):$append_11(this$static.builder, this$static.delimiter); - $append_9(this$static.builder, other.builder, other.prefix.length, otherLength); - } - return this$static; -} - -function $toString_9(this$static){ - return !this$static.builder?this$static.emptyValue:this$static.suffix.length == 0?this$static.builder.string:this$static.builder.string + ('' + this$static.suffix); -} - -function StringJoiner(delimiter, prefix, suffix){ - this.delimiter = (checkCriticalNotNull(delimiter) , delimiter); - this.prefix = (checkCriticalNotNull(prefix) , prefix); - this.suffix = (checkCriticalNotNull(suffix) , suffix); - this.emptyValue = this.prefix + ('' + this.suffix); -} - -defineClass(206, 1, {206:1}, StringJoiner); -_.toString_0 = function toString_73(){ - return $toString_9(this); -} -; -var Ljava_util_StringJoiner_2_classLit = createForClass('java.util', 'StringJoiner', 206); -function $clear_8(this$static){ - this$static.root = null; - this$static.size_0 = 0; -} - -function $getEntry_1(this$static, key){ - var c, childNum, tree; - tree = this$static.root; - while (tree) { - c = this$static.cmp.compare_1(key, tree.key); - if (c == 0) { - return tree; - } - childNum = c < 0?0:1; - tree = tree.child[childNum]; - } - return null; -} - -function $getFirstEntry(this$static){ - var nextNode, node; - if (!this$static.root) { - return null; - } - node = this$static.root; - while (nextNode = node.child[0]) { - node = nextNode; - } - return node; -} - -function $getNodeAfter(this$static, key, inclusive){ - var c, foundNode, node; - foundNode = null; - node = this$static.root; - while (node) { - c = this$static.cmp.compare_1(key, node.key); - if (inclusive && c == 0) { - return node; - } - if (c >= 0) { - node = node.child[1]; - } - else { - foundNode = node; - node = node.child[0]; - } - } - return foundNode; -} - -function $getNodeBefore(this$static, key, inclusive){ - var c, foundNode, node; - foundNode = null; - node = this$static.root; - while (node) { - c = this$static.cmp.compare_1(key, node.key); - if (inclusive && c == 0) { - return node; - } - if (c <= 0) { - node = node.child[0]; - } - else { - foundNode = node; - node = node.child[1]; - } - } - return foundNode; -} - -function $inOrderAdd(this$static, list, type_0, current, fromKey, fromInclusive, toKey, toInclusive){ - var leftNode, rightNode; - if (!current) { - return; - } - leftNode = current.child[0]; - !!leftNode && $inOrderAdd(this$static, list, type_0, leftNode, fromKey, fromInclusive, toKey, toInclusive); - $inRange(this$static, type_0, current.key, fromKey, fromInclusive, toKey, toInclusive) && list.add_2(current); - rightNode = current.child[1]; - !!rightNode && $inOrderAdd(this$static, list, type_0, rightNode, fromKey, fromInclusive, toKey, toInclusive); -} - -function $inRange(this$static, type_0, key, fromKey, fromInclusive, toKey, toInclusive){ - var compare, compare0; - if (type_0.fromKeyValid() && (compare0 = this$static.cmp.compare_1(key, fromKey) , compare0 < 0 || !fromInclusive && compare0 == 0)) { - return false; - } - if (type_0.toKeyValid() && (compare = this$static.cmp.compare_1(key, toKey) , compare > 0 || !toInclusive && compare == 0)) { - return false; - } - return true; -} - -function $insert_1(this$static, tree, newNode, state){ - var c, childNum; - if (!tree) { - return newNode; - } - else { - c = this$static.cmp.compare_1(newNode.key, tree.key); - if (c == 0) { - state.value_0 = $setValue_0(tree, newNode.value_0); - state.found = true; - return tree; - } - childNum = c < 0?0:1; - tree.child[childNum] = $insert_1(this$static, tree.child[childNum], newNode, state); - if ($isRed(tree.child[childNum])) { - if ($isRed(tree.child[1 - childNum])) { - tree.isRed = true; - tree.child[0].isRed = false; - tree.child[1].isRed = false; - } - else { - $isRed(tree.child[childNum].child[childNum])?(tree = $rotateSingle(tree, 1 - childNum)):$isRed(tree.child[childNum].child[1 - childNum]) && (tree = $rotateDouble(tree, 1 - childNum)); - } - } - } - return tree; -} - -function $isRed(node){ - return !!node && node.isRed; -} - -function $put_12(this$static, key, value_0){ - var node, state; - node = new TreeMap$Node(key, value_0); - state = new TreeMap$State; - this$static.root = $insert_1(this$static, this$static.root, node, state); - state.found || ++this$static.size_0; - this$static.root.isRed = false; - return state.value_0; -} - -function $remove_26(this$static, k){ - var key, state; - key = k; - state = new TreeMap$State; - $removeWithState(this$static, key, state); - return state.value_0; -} - -function $removeEntry(this$static, entry){ - var state; - state = new TreeMap$State; - state.matchValue = true; - state.value_0 = entry.getValue(); - return $removeWithState(this$static, entry.getKey(), state); -} - -function $removeWithState(this$static, key, state){ - var c, dir_0, dir2, found, grandparent, head, last, newNode, node, parent_0, sibling; - if (!this$static.root) { - return false; - } - found = null; - parent_0 = null; - head = new TreeMap$Node(null, null); - dir_0 = 1; - head.child[1] = this$static.root; - node = head; - while (node.child[dir_0]) { - last = dir_0; - grandparent = parent_0; - parent_0 = node; - node = node.child[dir_0]; - c = this$static.cmp.compare_1(key, node.key); - dir_0 = c < 0?0:1; - c == 0 && (!state.matchValue || equals_57(node.value_0, state.value_0)) && (found = node); - if (!(!!node && node.isRed) && !$isRed(node.child[dir_0])) { - if ($isRed(node.child[1 - dir_0])) { - parent_0 = parent_0.child[last] = $rotateSingle(node, dir_0); - } - else if (!$isRed(node.child[1 - dir_0])) { - sibling = parent_0.child[1 - last]; - if (sibling) { - if (!$isRed(sibling.child[1 - last]) && !$isRed(sibling.child[last])) { - parent_0.isRed = false; - sibling.isRed = true; - node.isRed = true; - } - else { - dir2 = grandparent.child[1] == parent_0?1:0; - $isRed(sibling.child[last])?(grandparent.child[dir2] = $rotateDouble(parent_0, last)):$isRed(sibling.child[1 - last]) && (grandparent.child[dir2] = $rotateSingle(parent_0, last)); - node.isRed = grandparent.child[dir2].isRed = true; - grandparent.child[dir2].child[0].isRed = false; - grandparent.child[dir2].child[1].isRed = false; - } - } - } - } - } - if (found) { - state.found = true; - state.value_0 = found.value_0; - if (node != found) { - newNode = new TreeMap$Node(node.key, node.value_0); - $replaceNode(this$static, head, found, newNode); - parent_0 == found && (parent_0 = newNode); - } - parent_0.child[parent_0.child[1] == node?1:0] = node.child[!node.child[0]?1:0]; - --this$static.size_0; - } - this$static.root = head.child[1]; - !!this$static.root && (this$static.root.isRed = false); - return state.found; -} - -function $replaceNode(this$static, head, node, newNode){ - var direction, parent_0; - parent_0 = head; - direction = parent_0.key == null || this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; - while (parent_0.child[direction] != node) { - parent_0 = parent_0.child[direction]; - direction = this$static.cmp.compare_1(node.key, parent_0.key) > 0?1:0; - } - parent_0.child[direction] = newNode; - newNode.isRed = node.isRed; - newNode.child[0] = node.child[0]; - newNode.child[1] = node.child[1]; - node.child[0] = null; - node.child[1] = null; -} - -function $rotateDouble(tree, rotateDirection){ - var otherChildDir; - otherChildDir = 1 - rotateDirection; - tree.child[otherChildDir] = $rotateSingle(tree.child[otherChildDir], otherChildDir); - return $rotateSingle(tree, rotateDirection); -} - -function $rotateSingle(tree, rotateDirection){ - var otherChildDir, save; - otherChildDir = 1 - rotateDirection; - save = tree.child[otherChildDir]; - tree.child[otherChildDir] = save.child[rotateDirection]; - save.child[rotateDirection] = tree; - tree.isRed = true; - save.isRed = false; - return save; -} - -function TreeMap(){ - TreeMap_0.call(this, null); -} - -function TreeMap_0(c){ - this.root = null; - this.cmp = ($clinit_Comparators() , !c?INTERNAL_NATURAL_ORDER:c); -} - -defineClass(544, 1992, {3:1, 83:1, 171:1, 161:1}, TreeMap, TreeMap_0); -_.clear_0 = function clear_48(){ - $clear_8(this); -} -; -_.entrySet_0 = function entrySet_8(){ - return new TreeMap$EntrySet(this); -} -; -_.put = function put_9(key, value_0){ - return $put_12(this, key, value_0); -} -; -_.remove_0 = function remove_87(k){ - return $remove_26(this, k); -} -; -_.size_1 = function size_62(){ - return this.size_0; -} -; -_.size_0 = 0; -var Ljava_util_TreeMap_2_classLit = createForClass('java.util', 'TreeMap', 544); -function $next_11(this$static){ - return this$static.last = castTo($next_5(this$static.iter), 42); -} - -function $remove_27(this$static){ - $remove_8(this$static.iter); - $removeEntry(this$static.this$01, this$static.last); - this$static.last = null; -} - -function TreeMap$EntryIterator(this$0){ - TreeMap$EntryIterator_0.call(this, this$0, ($clinit_TreeMap$SubMapType() , All)); -} - -function TreeMap$EntryIterator_0(this$0, type_0){ - var list; - this.this$01 = this$0; - list = new ArrayList; - $inOrderAdd(this$0, list, type_0, this$0.root, null, false, null, false); - this.iter = new AbstractList$ListIteratorImpl(list, 0); -} - -defineClass(390, 1, $intern_6, TreeMap$EntryIterator); -_.forEachRemaining = function forEachRemaining_46(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_36(){ - return $next_11(this); -} -; -_.hasNext_0 = function hasNext_35(){ - return $hasNext_2(this.iter); -} -; -_.remove = function remove_88(){ - $remove_27(this); -} -; -var Ljava_util_TreeMap$EntryIterator_2_classLit = createForClass('java.util', 'TreeMap/EntryIterator', 390); -function TreeMap$EntrySet(this$0){ - this.this$01 = this$0; - AbstractNavigableMap$EntrySet.call(this, this$0); -} - -defineClass(435, 739, $intern_10, TreeMap$EntrySet); -_.clear_0 = function clear_49(){ - $clear_8(this.this$01); -} -; -var Ljava_util_TreeMap$EntrySet_2_classLit = createForClass('java.util', 'TreeMap/EntrySet', 435); -function TreeMap$Node(key, value_0){ - AbstractMap$SimpleEntry.call(this, key, value_0); - this.child = initUnidimensionalArray(Ljava_util_TreeMap$Node_2_classLit, $intern_27, 436, 2, 0, 1); - this.isRed = true; -} - -defineClass(436, 383, {484:1, 383:1, 42:1, 436:1}, TreeMap$Node); -_.isRed = false; -var Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util', 'TreeMap/Node', 436); -function TreeMap$State(){ -} - -defineClass(621, 1, {}, TreeMap$State); -_.toString_0 = function toString_74(){ - return 'State: mv=' + this.matchValue + ' value=' + this.value_0 + ' done=' + this.done_0 + ' found=' + this.found; -} -; -_.done_0 = false; -_.found = false; -_.matchValue = false; -var Ljava_util_TreeMap$State_2_classLit = createForClass('java.util', 'TreeMap/State', 621); -function $clinit_TreeMap$SubMapType(){ - $clinit_TreeMap$SubMapType = emptyMethod; - All = new TreeMap$SubMapType('All', 0); - Head = new TreeMap$SubMapType$1; - Range_1 = new TreeMap$SubMapType$2; - Tail = new TreeMap$SubMapType$3; -} - -function TreeMap$SubMapType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_12(name_0){ - $clinit_TreeMap$SubMapType(); - return valueOf(($clinit_TreeMap$SubMapType$Map() , $MAP_0), name_0); -} - -function values_18(){ - $clinit_TreeMap$SubMapType(); - return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]); -} - -defineClass(297, 22, $intern_85, TreeMap$SubMapType); -_.fromKeyValid = function fromKeyValid(){ - return false; -} -; -_.toKeyValid = function toKeyValid(){ - return false; -} -; -var All, Head, Range_1, Tail; -var Ljava_util_TreeMap$SubMapType_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType', 297, Ljava_lang_Enum_2_classLit, values_18, valueOf_12); -function TreeMap$SubMapType$1(){ - TreeMap$SubMapType.call(this, 'Head', 1); -} - -defineClass(1112, 297, $intern_85, TreeMap$SubMapType$1); -_.toKeyValid = function toKeyValid_0(){ - return true; -} -; -var Ljava_util_TreeMap$SubMapType$1_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/1', 1112, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); -function TreeMap$SubMapType$2(){ - TreeMap$SubMapType.call(this, 'Range', 2); -} - -defineClass(1113, 297, $intern_85, TreeMap$SubMapType$2); -_.fromKeyValid = function fromKeyValid_0(){ - return true; -} -; -_.toKeyValid = function toKeyValid_1(){ - return true; -} -; -var Ljava_util_TreeMap$SubMapType$2_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/2', 1113, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); -function TreeMap$SubMapType$3(){ - TreeMap$SubMapType.call(this, 'Tail', 3); -} - -defineClass(1114, 297, $intern_85, TreeMap$SubMapType$3); -_.fromKeyValid = function fromKeyValid_1(){ - return true; -} -; -var Ljava_util_TreeMap$SubMapType$3_2_classLit = createForEnum('java.util', 'TreeMap/SubMapType/3', 1114, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); -function $clinit_TreeMap$SubMapType$Map(){ - $clinit_TreeMap$SubMapType$Map = emptyMethod; - $MAP_0 = createValueOfMap(($clinit_TreeMap$SubMapType() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_TreeMap$SubMapType_2_classLit, 1), $intern_36, 297, 0, [All, Head, Range_1, Tail]))); -} - -var $MAP_0; -function $add_10(this$static, o){ - return $put_12(this$static.map_0, o, ($clinit_Boolean() , FALSE_0)) == null; -} - -function $ceiling(this$static, e){ - return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, true)); -} - -function $floor(this$static, e){ - return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, true)); -} - -function $higher(this$static, e){ - return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, false)); -} - -function $lower(this$static, e){ - return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, false)); -} - -function $remove_28(this$static, o){ - return $remove_26(this$static.map_0, o) != null; -} - -function TreeSet(){ - this.map_0 = new TreeMap; -} - -function TreeSet_0(c){ - this.map_0 = new TreeMap_0(c); -} - -defineClass(208, $intern_9, {3:1, 20:1, 28:1, 14:1, 271:1, 21:1, 84:1, 208:1}, TreeSet, TreeSet_0); -_.spliterator_0 = function spliterator_34(){ - return new SortedSet$1(this); -} -; -_.add_2 = function add_40(o){ - return $add_10(this, o); -} -; -_.clear_0 = function clear_50(){ - $clear_8(this.map_0); -} -; -_.contains = function contains_47(o){ - return $containsKey_4(this.map_0, o); -} -; -_.iterator_0 = function iterator_65(){ - var entryIterator; - return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); -} -; -_.remove_1 = function remove_89(o){ - return $remove_28(this, o); -} -; -_.size_1 = function size_63(){ - return this.map_0.size_0; -} -; -var Ljava_util_TreeSet_2_classLit = createForClass('java.util', 'TreeSet', 208); -function lambda$0_2(comparator_0, t_1, u_2){ - return comparator_0.compare_1(t_1, u_2) <= 0?u_2:t_1; -} - -function lambda$1_3(comparator_0, t_1, u_2){ - return comparator_0.compare_1(t_1, u_2) <= 0?t_1:u_2; -} - -function BinaryOperator$lambda$0$Type(comparator_0){ - this.comparator_0 = comparator_0; -} - -defineClass(966, 1, {}, BinaryOperator$lambda$0$Type); -_.apply_3 = function apply_21(arg0, arg1){ - return lambda$0_2(this.comparator_0, arg0, arg1); -} -; -var Ljava_util_function_BinaryOperator$lambda$0$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$0$Type', 966); -function BinaryOperator$lambda$1$Type(comparator_0){ - this.comparator_0 = comparator_0; -} - -defineClass(967, 1, {}, BinaryOperator$lambda$1$Type); -_.apply_3 = function apply_22(arg0, arg1){ - return lambda$1_3(this.comparator_0, arg0, arg1); -} -; -var Ljava_util_function_BinaryOperator$lambda$1$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$1$Type', 967); -function Function$lambda$0$Type(){ -} - -defineClass(846, 1, {}, Function$lambda$0$Type); -_.apply_0 = function apply_23(t){ - return t; -} -; -var Ljava_util_function_Function$lambda$0$Type_2_classLit = createForClass('java.util.function', 'Function/lambda$0$Type', 846); -function Predicate$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(431, 1, $intern_39, Predicate$lambda$2$Type); -_.test_0 = function test_4(t){ - return !this.$$outer_0.test_0(t); -} -; -var Ljava_util_function_Predicate$lambda$2$Type_2_classLit = createForClass('java.util.function', 'Predicate/lambda$2$Type', 431); -defineClass(572, 1, {572:1}); -var Ljava_util_logging_Handler_2_classLit = createForClass('java.util.logging', 'Handler', 572); -function $clinit_Level(){ - $clinit_Level = emptyMethod; - INFO = new Level$LevelInfo; -} - -defineClass(2007, 1, $intern_1); -_.getName = function getName_0(){ - return 'DUMMY'; -} -; -_.toString_0 = function toString_75(){ - return this.getName(); -} -; -var INFO; -var Ljava_util_logging_Level_2_classLit = createForClass('java.util.logging', 'Level', 2007); -function Level$LevelInfo(){ -} - -defineClass(1621, 2007, $intern_1, Level$LevelInfo); -_.getName = function getName_1(){ - return 'INFO'; -} -; -var Ljava_util_logging_Level$LevelInfo_2_classLit = createForClass('java.util.logging', 'Level/LevelInfo', 1621); -function $addLoggerImpl(this$static, logger){ - (($clinit_Logger() , LOGGING_OFF)?null:logger.name_0).length == 0 && $addHandler(logger, new SimpleConsoleLogHandler); - $putStringValue(this$static.loggerMap, LOGGING_OFF?null:logger.name_0, logger); -} - -function $ensureLogger(this$static, name_0){ - var logger, newLogger, name_1, parentName; - logger = castTo($getStringValue(this$static.loggerMap, name_0), 512); - if (!logger) { - newLogger = new Logger(name_0); - name_1 = ($clinit_Logger() , LOGGING_OFF)?null:newLogger.name_0; - parentName = $substring_1(name_1, 0, $wnd.Math.max(0, $lastIndexOf(name_1, fromCodePoint(46)))); - $setParent(newLogger, $ensureLogger(this$static, parentName)); - (LOGGING_OFF?null:newLogger.name_0).length == 0 && $addHandler(newLogger, new SimpleConsoleLogHandler); - $putStringValue(this$static.loggerMap, LOGGING_OFF?null:newLogger.name_0, newLogger); - return newLogger; - } - return logger; -} - -function LogManager(){ - this.loggerMap = new HashMap; -} - -function getLogManager(){ - var rootLogger; - if (!singleton) { - singleton = new LogManager; - rootLogger = new Logger(''); - $setLevel(rootLogger, ($clinit_Level() , INFO)); - $addLoggerImpl(singleton, rootLogger); - } - return singleton; -} - -defineClass(1640, 1, {}, LogManager); -var singleton; -var Ljava_util_logging_LogManager_2_classLit = createForClass('java.util.logging', 'LogManager', 1640); -function LogRecord(msg){ - this.msg = msg; - $clinit_System(); - fromDouble_0(Date.now()); -} - -defineClass(1780, 1, $intern_1, LogRecord); -_.thrown = null; -var Ljava_util_logging_LogRecord_2_classLit = createForClass('java.util.logging', 'LogRecord', 1780); -function $clinit_Logger(){ - $clinit_Logger = emptyMethod; - LOGGING_OFF = true; - ALL_ENABLED = false; - INFO_ENABLED = false; - WARNING_ENABLED = false; - SEVERE_ENABLED = false; -} - -function $actuallyLog(this$static, record){ - var handler$array, handler$array0, handler$index, handler$index0, handler$max, handler$max0, logger; - for (handler$array0 = $getHandlers(this$static) , handler$index0 = 0 , handler$max0 = handler$array0.length; handler$index0 < handler$max0; ++handler$index0) { - $publish(record); - } - logger = !LOGGING_OFF && this$static.useParentHandlers?LOGGING_OFF?null:this$static.parent_0:null; - while (logger) { - for (handler$array = $getHandlers(logger) , handler$index = 0 , handler$max = handler$array.length; handler$index < handler$max; ++handler$index) { - $publish(record); - } - logger = !LOGGING_OFF && logger.useParentHandlers?LOGGING_OFF?null:logger.parent_0:null; - } -} - -function $addHandler(this$static, handler){ - if (LOGGING_OFF) { - return; - } - $add_3(this$static.handlers, handler); -} - -function $getEffectiveLevel(this$static){ - var effectiveLevel, logger; - if (this$static.level) { - return this$static.level; - } - logger = LOGGING_OFF?null:this$static.parent_0; - while (logger) { - effectiveLevel = LOGGING_OFF?null:logger.level; - if (effectiveLevel) { - return effectiveLevel; - } - logger = LOGGING_OFF?null:logger.parent_0; - } - return $clinit_Level() , INFO; -} - -function $getHandlers(this$static){ - if (LOGGING_OFF) { - return initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, 0, 0, 1); - } - return castTo($toArray_2(this$static.handlers, initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, this$static.handlers.array.length, 0, 1)), 842); -} - -function $log(this$static, msg, thrown){ - var record; - (ALL_ENABLED?($getEffectiveLevel(this$static) , true):INFO_ENABLED?($clinit_Level() , true):WARNING_ENABLED?($clinit_Level() , true):SEVERE_ENABLED && ($clinit_Level() , false)) && (record = new LogRecord(msg) , record.thrown = thrown , $actuallyLog(this$static, record) , undefined); -} - -function $setLevel(this$static, newLevel){ - if (LOGGING_OFF) { - return; - } - this$static.level = newLevel; -} - -function $setParent(this$static, newParent){ - if (LOGGING_OFF) { - return; - } - !!newParent && (this$static.parent_0 = newParent); -} - -function Logger(name_0){ - $clinit_Logger(); - if (LOGGING_OFF) { - return; - } - this.name_0 = name_0; - this.useParentHandlers = true; - this.handlers = new ArrayList; -} - -function getLogger(){ - $clinit_Logger(); - if (LOGGING_OFF) { - return new Logger(null); - } - return $ensureLogger(getLogManager(), 'com.google.common.base.Strings'); -} - -defineClass(512, 1, {512:1}, Logger); -_.useParentHandlers = false; -var ALL_ENABLED = false, INFO_ENABLED = false, LOGGING_OFF = false, SEVERE_ENABLED = false, WARNING_ENABLED = false; -var Ljava_util_logging_Logger_2_classLit = createForClass('java.util.logging', 'Logger', 512); -function $publish(record){ - var console_0, level, val; - console_0 = $equals_5(typeof(console_0), 'undefined')?null:new ConsoleLogger; - if (!console_0) { - return; - } - $clinit_Level(); - level = (val = 900 , val >= $intern_45?'error':val >= 900?'warn':val >= 800?'info':'log'); - $log_0(level, record.msg); - !!record.thrown && $log_1(console_0, level, record.thrown, 'Exception: ', true); -} - -function SimpleConsoleLogHandler(){ -} - -defineClass(819, 572, {572:1}, SimpleConsoleLogHandler); -var Ljava_util_logging_SimpleConsoleLogHandler_2_classLit = createForClass('java.util.logging', 'SimpleConsoleLogHandler', 819); -function of_3(supplier, accumulator, combiner, finisher, characteristics){ - checkCriticalNotNull(supplier); - checkCriticalNotNull(accumulator); - checkCriticalNotNull(combiner); - checkCriticalNotNull(finisher); - checkCriticalNotNull(characteristics); - return new CollectorImpl(supplier, accumulator, finisher); -} - -function of_4(supplier, accumulator, combiner, characteristics){ - checkCriticalNotNull(supplier); - checkCriticalNotNull(accumulator); - checkCriticalNotNull(combiner); - checkCriticalNotNull(characteristics); - return new CollectorImpl(supplier, accumulator, new Function$lambda$0$Type); -} - -function $clinit_Collector$Characteristics(){ - $clinit_Collector$Characteristics = emptyMethod; - CONCURRENT = new Collector$Characteristics('CONCURRENT', 0); - IDENTITY_FINISH = new Collector$Characteristics('IDENTITY_FINISH', 1); - UNORDERED = new Collector$Characteristics('UNORDERED', 2); -} - -function Collector$Characteristics(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_13(name_0){ - $clinit_Collector$Characteristics(); - return valueOf(($clinit_Collector$Characteristics$Map() , $MAP_1), name_0); -} - -function values_19(){ - $clinit_Collector$Characteristics(); - return stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]); -} - -defineClass(132, 22, {3:1, 35:1, 22:1, 132:1}, Collector$Characteristics); -var CONCURRENT, IDENTITY_FINISH, UNORDERED; -var Ljava_util_stream_Collector$Characteristics_2_classLit = createForEnum('java.util.stream', 'Collector/Characteristics', 132, Ljava_lang_Enum_2_classLit, values_19, valueOf_13); -function $clinit_Collector$Characteristics$Map(){ - $clinit_Collector$Characteristics$Map = emptyMethod; - $MAP_1 = createValueOfMap(($clinit_Collector$Characteristics() , stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]))); -} - -var $MAP_1; -function CollectorImpl(supplier, accumulator, finisher){ - this.supplier = supplier; - this.accumulator = accumulator; - $clinit_Collections(); - this.finisher = finisher; -} - -defineClass(744, 1, {}, CollectorImpl); -var Ljava_util_stream_CollectorImpl_2_classLit = createForClass('java.util.stream', 'CollectorImpl', 744); -function addAll_21(collection, items){ - collection.addAll(items); - return collection; -} - -function groupingBy0(supplier, classifier, downstream){ - return of_3(supplier, new Collectors$lambda$7$Type(classifier), new Collectors$lambda$8$Type, new Collectors$lambda$9$Type(downstream), stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); -} - -function lambda$26(op_0, u_2){ - return setCheck(u_2, 0, $apply_2(u_2[0], valueOf_5(1))); -} - -function lambda$27(op_0, u1_1, u2_2){ - setCheck(u1_1, 0, $apply_2(u1_1[0], u2_2[0])); - return u1_1; -} - -function lambda$4(a_0, b_1){ - return valueOf_5(add_20(valueOf_5(a_0.value_0).value_0, b_1.value_0)); -} - -function lambda$42(c1_0, c2_1){ - return c1_0.addAll(c2_1) , c1_0; -} - -function lambda$50(c1_0, c2_1){ - return $addAll(c1_0, c2_1) , c1_0; -} - -function lambda$7(classifier_0, m_1, o_2){ - var k, l; - k = ($clinit_Boolean() , $test(o_2)?true:false); - l = castTo(m_1.get_3(k), 15); - if (!l) { - l = new ArrayList; - m_1.put(k, l); - } - l.add_2(o_2); -} - -function lambda$9(downstream_1, m_2){ - var entry, entry$iterator, result; - result = new HashMap; - for (entry$iterator = m_2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - $put_6(result, entry.getKey(), streamAndCollect(downstream_1, castTo(entry.getValue(), 15))); - } - return result; -} - -function mergeAll(m1, m2, mergeFunction){ - var entry, entry$iterator; - for (entry$iterator = m2.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - m1.merge(entry.getKey(), entry.getValue(), mergeFunction); - } - return m1; -} - -function partitioningBy(predicate, downstream){ - return groupingBy0(new Collectors$lambda$22$Type, new Collectors$12methodref$test$Type(predicate), downstream); -} - -function reducing(identity, op){ - return of_3(new Collectors$lambda$25$Type(identity), new Collectors$lambda$26$Type(op), new Collectors$lambda$27$Type(op), new Collectors$lambda$28$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])); -} - -function streamAndCollect(downstream, list){ - var a, t, t$iterator; - a = downstream.supplier.get_5(); - for (t$iterator = list.iterator_0(); t$iterator.hasNext_0();) { - t = t$iterator.next_1(); - downstream.accumulator.accept_1(a, t); - } - return downstream.finisher.apply_0(a); -} - -function Collectors$10methodref$merge$Type(){ -} - -defineClass(1060, 1, {}, Collectors$10methodref$merge$Type); -_.apply_3 = function apply_24(arg0, arg1){ - return $merge_0(castTo(arg0, 206), castTo(arg1, 206)); -} -; -var Ljava_util_stream_Collectors$10methodref$merge$Type_2_classLit = createForClass('java.util.stream', 'Collectors/10methodref$merge$Type', 1060); -function Collectors$11methodref$toString$Type(){ -} - -defineClass(1061, 1, {}, Collectors$11methodref$toString$Type); -_.apply_0 = function apply_25(arg0){ - return $toString_9(castTo(arg0, 206)); -} -; -var Ljava_util_stream_Collectors$11methodref$toString$Type_2_classLit = createForClass('java.util.stream', 'Collectors/11methodref$toString$Type', 1061); -function Collectors$12methodref$test$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1062, 1, {}, Collectors$12methodref$test$Type); -_.apply_0 = function apply_26(arg0){ - return $clinit_Boolean() , $test(arg0)?true:false; -} -; -var Ljava_util_stream_Collectors$12methodref$test$Type_2_classLit = createForClass('java.util.stream', 'Collectors/12methodref$test$Type', 1062); -function Collectors$20methodref$add$Type(){ -} - -defineClass(251, 1, {}, Collectors$20methodref$add$Type); -_.accept_1 = function accept_21(arg0, arg1){ - castTo(arg0, 14).add_2(arg1); -} -; -var Ljava_util_stream_Collectors$20methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/20methodref$add$Type', 251); -function Collectors$21methodref$ctor$Type(){ -} - -defineClass(253, 1, {}, Collectors$21methodref$ctor$Type); -_.get_5 = function get_44(){ - return new ArrayList; -} -; -var Ljava_util_stream_Collectors$21methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/21methodref$ctor$Type', 253); -function Collectors$23methodref$ctor$Type(){ -} - -defineClass(346, 1, {}, Collectors$23methodref$ctor$Type); -_.get_5 = function get_45(){ - return new HashSet; -} -; -var Ljava_util_stream_Collectors$23methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/23methodref$ctor$Type', 346); -function Collectors$24methodref$add$Type(){ -} - -defineClass(347, 1, {}, Collectors$24methodref$add$Type); -_.accept_1 = function accept_22(arg0, arg1){ - $add_6(castTo(arg0, 53), arg1); -} -; -var Ljava_util_stream_Collectors$24methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/24methodref$add$Type', 347); -function Collectors$4methodref$addAll$Type(){ -} - -defineClass(1055, 1, {}, Collectors$4methodref$addAll$Type); -_.apply_3 = function apply_27(arg0, arg1){ - return addAll_21(castTo(arg0, 15), castTo(arg1, 14)); -} -; -var Ljava_util_stream_Collectors$4methodref$addAll$Type_2_classLit = createForClass('java.util.stream', 'Collectors/4methodref$addAll$Type', 1055); -function Collectors$9methodref$add$Type(){ -} - -defineClass(1059, 1, {}, Collectors$9methodref$add$Type); -_.accept_1 = function accept_23(arg0, arg1){ - $add_9(castTo(arg0, 206), castTo(arg1, 475)); -} -; -var Ljava_util_stream_Collectors$9methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/9methodref$add$Type', 1059); -function Collectors$lambda$15$Type(){ - this.delimiter_0 = ';,;'; - this.prefix_1 = ''; - this.suffix_2 = ''; -} - -defineClass(1058, 1, {}, Collectors$lambda$15$Type); -_.get_5 = function get_46(){ - return new StringJoiner(this.delimiter_0, this.prefix_1, this.suffix_2); -} -; -var Ljava_util_stream_Collectors$lambda$15$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$15$Type', 1058); -function Collectors$lambda$22$Type(){ -} - -defineClass(1063, 1, {}, Collectors$lambda$22$Type); -_.get_5 = function get_47(){ - var partition; - return partition = new LinkedHashMap , $put_11(partition, ($clinit_Boolean() , false), new ArrayList) , $put_11(partition, true, new ArrayList) , partition; -} -; -var Ljava_util_stream_Collectors$lambda$22$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$22$Type', 1063); -function Collectors$lambda$25$Type(identity_0){ - this.identity_0 = identity_0; -} - -defineClass(1064, 1, {}, Collectors$lambda$25$Type); -_.get_5 = function get_48(){ - return stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.identity_0]); -} -; -var Ljava_util_stream_Collectors$lambda$25$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$25$Type', 1064); -function Collectors$lambda$26$Type(op_0){ - this.op_0 = op_0; -} - -defineClass(1065, 1, {}, Collectors$lambda$26$Type); -_.accept_1 = function accept_24(arg0, arg1){ - lambda$26(this.op_0, castToArray(arg0)); -} -; -var Ljava_util_stream_Collectors$lambda$26$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$26$Type', 1065); -function Collectors$lambda$27$Type(op_0){ - this.op_0 = op_0; -} - -defineClass(1066, 1, {}, Collectors$lambda$27$Type); -_.apply_3 = function apply_28(arg0, arg1){ - return lambda$27(this.op_0, castToArray(arg0), castToArray(arg1)); -} -; -var Ljava_util_stream_Collectors$lambda$27$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$27$Type', 1066); -function Collectors$lambda$28$Type(){ -} - -defineClass(1067, 1, {}, Collectors$lambda$28$Type); -_.apply_0 = function apply_29(arg0){ - return castToArray(arg0)[0]; -} -; -var Ljava_util_stream_Collectors$lambda$28$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$28$Type', 1067); -function $apply_2(arg0, arg1){ - return lambda$4(castTo(arg0, 162), castTo(arg1, 162)); -} - -function Collectors$lambda$4$Type(){ -} - -defineClass(713, 1, {}, Collectors$lambda$4$Type); -_.apply_3 = function apply_30(arg0, arg1){ - return $apply_2(arg0, arg1); -} -; -var Ljava_util_stream_Collectors$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$4$Type', 713); -function Collectors$lambda$42$Type(){ -} - -defineClass(252, 1, {}, Collectors$lambda$42$Type); -_.apply_3 = function apply_31(arg0, arg1){ - return lambda$42(castTo(arg0, 14), castTo(arg1, 14)); -} -; -var Ljava_util_stream_Collectors$lambda$42$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$42$Type', 252); -function Collectors$lambda$50$Type(){ -} - -defineClass(348, 1, {}, Collectors$lambda$50$Type); -_.apply_3 = function apply_32(arg0, arg1){ - return lambda$50(castTo(arg0, 53), castTo(arg1, 53)); -} -; -var Ljava_util_stream_Collectors$lambda$50$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$50$Type', 348); -function Collectors$lambda$51$Type(){ -} - -defineClass(349, 1, {}, Collectors$lambda$51$Type); -_.apply_0 = function apply_33(arg0){ - return castTo(arg0, 53); -} -; -var Ljava_util_stream_Collectors$lambda$51$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$51$Type', 349); -function Collectors$lambda$7$Type(classifier_0){ - this.classifier_0 = classifier_0; -} - -defineClass(1054, 1, {}, Collectors$lambda$7$Type); -_.accept_1 = function accept_25(arg0, arg1){ - lambda$7(this.classifier_0, castTo(arg0, 83), arg1); -} -; -var Ljava_util_stream_Collectors$lambda$7$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$7$Type', 1054); -function Collectors$lambda$8$Type(){ -} - -defineClass(1056, 1, {}, Collectors$lambda$8$Type); -_.apply_3 = function apply_34(arg0, arg1){ - return mergeAll(castTo(arg0, 83), castTo(arg1, 83), new Collectors$4methodref$addAll$Type); -} -; -var Ljava_util_stream_Collectors$lambda$8$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$8$Type', 1056); -function Collectors$lambda$9$Type(downstream_1){ - this.downstream_1 = downstream_1; -} - -defineClass(1057, 1, {}, Collectors$lambda$9$Type); -_.apply_0 = function apply_35(arg0){ - return lambda$9(this.downstream_1, castTo(arg0, 83)); -} -; -var Ljava_util_stream_Collectors$lambda$9$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$9$Type', 1057); -function $close(this$static){ - if (!this$static.root) { - this$static.terminated = true; - $runClosers(this$static); - } - else { - this$static.root.close_0(); - } -} - -function $onClose(this$static, closeHandler){ - !this$static.root?$add_3(this$static.onClose, closeHandler):$onClose(this$static.root, closeHandler); - return this$static; -} - -function $runClosers(this$static){ - var e, i, size_0, suppressed, throwables; - throwables = new ArrayList; - $forEach_1(this$static.onClose, new TerminatableStream$lambda$0$Type(throwables)); - this$static.onClose.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - if (throwables.array.length != 0) { - e = (checkCriticalElementIndex(0, throwables.array.length) , castTo(throwables.array[0], 78)); - for (i = 1 , size_0 = throwables.array.length; i < size_0; ++i) { - suppressed = (checkCriticalElementIndex(i, throwables.array.length) , castTo(throwables.array[i], 78)); - suppressed != e && $addSuppressed(e, suppressed); - } - if (instanceOf(e, 60)) { - throw toJs(castTo(e, 60)); - } - if (instanceOf(e, 289)) { - throw toJs(castTo(e, 289)); - } - } -} - -function $terminate(this$static){ - if (!this$static.root) { - $throwIfTerminated(this$static); - this$static.terminated = true; - } - else { - $terminate(this$static.root); - } -} - -function $throwIfTerminated(this$static){ - if (this$static.root) { - $throwIfTerminated(this$static.root); - } - else if (this$static.terminated) { - throw toJs(new IllegalStateException_0("Stream already terminated, can't be modified or used")); - } -} - -function TerminatableStream(previous){ - if (!previous) { - this.root = null; - this.onClose = new ArrayList; - } - else { - this.root = previous; - this.onClose = null; - } -} - -function lambda$0_3(throwables_0, runnable_1){ - var e; - try { - runnable_1.run(); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 78)) { - e = $e0; - throwables_0.array[throwables_0.array.length] = e; - } - else - throw toJs($e0); - } -} - -defineClass(539, 1, {}); -_.close_0 = function close_0(){ - $close(this); -} -; -_.terminated = false; -var Ljava_util_stream_TerminatableStream_2_classLit = createForClass('java.util.stream', 'TerminatableStream', 539); -function $collect(this$static){ - var acc; - $terminate(this$static); - acc = new DoubleSummaryStatistics; - $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$2$Type(acc)); - return acc; -} - -function $max(this$static){ - var stats; - stats = $collect(this$static); - if (eq(stats.count, 0)) { - return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; - } - return $clinit_OptionalDouble() , new OptionalDouble_0(stats.max_0); -} - -function $min(this$static){ - var stats; - stats = $collect(this$static); - if (eq(stats.count, 0)) { - return $clinit_OptionalDouble() , $clinit_OptionalDouble() , EMPTY_4; - } - return $clinit_OptionalDouble() , new OptionalDouble_0(stats.min_0); -} - -function $sorted(this$static){ - var sortingSpliterator; - $throwIfTerminated(this$static); - sortingSpliterator = new DoubleStreamImpl$2(this$static, this$static.spliterator.sizeEstimate, this$static.spliterator.characteristics | 4); - return new DoubleStreamImpl(this$static, sortingSpliterator); -} - -function $toArray_6(this$static){ - var entries; - $terminate(this$static); - entries = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); - $forEachRemaining_1(this$static.spliterator, new DoubleStreamImpl$lambda$0$Type(entries)); - return entries; -} - -function DoubleStreamImpl(previous, spliterator){ - TerminatableStream.call(this, previous); - this.spliterator = spliterator; -} - -function lambda$0_4(entries_0, value_1){ - return entries_0[entries_0.length] = value_1; -} - -defineClass(812, 539, $intern_87, DoubleStreamImpl); -_.close_0 = function close_1(){ - $close(this); -} -; -var Ljava_util_stream_DoubleStreamImpl_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl', 812); -function $tryAdvance_2(this$static, action){ - var list; - if (!this$static.ordered) { - list = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); - $forEachRemaining_1(this$static.this$01.spliterator, new DoubleStreamImpl$2$lambda$0$Type(list)); - list.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); - this$static.ordered = new Spliterators$DoubleArraySpliterator(list, this$static.characteristics); - } - return $tryAdvance_0(this$static.ordered, action); -} - -function DoubleStreamImpl$2(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - Spliterators$AbstractDoubleSpliterator.call(this, $anonymous0, $anonymous1); -} - -function lambda$0_5(list_0, item_1){ - return list_0[list_0.length] = item_1; -} - -defineClass(1784, 721, $intern_18, DoubleStreamImpl$2); -_.tryAdvance_0 = function tryAdvance_10(action){ - return $tryAdvance_2(this, castTo(action, 182)); -} -; -_.ordered = null; -var Ljava_util_stream_DoubleStreamImpl$2_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2', 1784); -function DoubleStreamImpl$2$lambda$0$Type(list_0){ - this.list_0 = list_0; -} - -defineClass(1785, 1, $intern_75, DoubleStreamImpl$2$lambda$0$Type); -_.accept_2 = function accept_26(arg0){ - lambda$0_5(this.list_0, arg0); -} -; -var Ljava_util_stream_DoubleStreamImpl$2$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2/lambda$0$Type', 1785); -function DoubleStreamImpl$lambda$0$Type(entries_0){ - this.entries_0 = entries_0; -} - -defineClass(1782, 1, $intern_75, DoubleStreamImpl$lambda$0$Type); -_.accept_2 = function accept_27(arg0){ - lambda$0_4(this.entries_0, arg0); -} -; -var Ljava_util_stream_DoubleStreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$0$Type', 1782); -function DoubleStreamImpl$lambda$2$Type(acc_1){ - this.acc_1 = acc_1; -} - -defineClass(1783, 1, $intern_75, DoubleStreamImpl$lambda$2$Type); -_.accept_2 = function accept_28(arg0){ - $accept(this.acc_1, arg0); -} -; -var Ljava_util_stream_DoubleStreamImpl$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/lambda$2$Type', 1783); -function range_0(endExclusive){ - if (0 >= endExclusive) { - return new IntStreamImpl$Empty; - } - return rangeClosed(endExclusive - 1); -} - -function rangeClosed(endInclusive){ - var count, spliterator; - if (0 > endInclusive) { - return new IntStreamImpl$Empty; - } - count = endInclusive + 1; - spliterator = new IntStream$5(count, endInclusive); - return new IntStreamImpl(null, spliterator); -} - -function $tryAdvance_3(this$static, action){ - if (this$static.next_0 <= this$static.val$endInclusive5) { - action.accept_0(this$static.next_0++); - return true; - } - return false; -} - -function IntStream$5($anonymous0, val$endInclusive){ - this.val$startInclusive4 = 0; - this.val$endInclusive5 = val$endInclusive; - Spliterators$AbstractIntSpliterator.call(this, $anonymous0, 17493); - this.next_0 = this.val$startInclusive4; -} - -defineClass(1358, 720, $intern_18, IntStream$5); -_.tryAdvance_0 = function tryAdvance_11(action){ - return $tryAdvance_3(this, castTo(action, 196)); -} -; -_.next_0 = 0; -_.val$endInclusive5 = 0; -_.val$startInclusive4 = 0; -var Ljava_util_stream_IntStream$5_2_classLit = createForClass('java.util.stream', 'IntStream/5', 1358); -function $collect_0(this$static){ - var acc; - $terminate(this$static); - acc = new IntSummaryStatistics; - $forEachRemaining_1(this$static.spliterator, new IntStreamImpl$lambda$4$Type(acc)); - return acc; -} - -function $max_0(this$static){ - var stats; - stats = $collect_0(this$static); - if (eq(stats.count, 0)) { - return $clinit_OptionalInt() , $clinit_OptionalInt() , EMPTY_5; - } - return $clinit_OptionalInt() , new OptionalInt_0(stats.max_0); -} - -function IntStreamImpl(previous, spliterator){ - TerminatableStream.call(this, previous); - this.spliterator = spliterator; -} - -defineClass(787, 539, $intern_87, IntStreamImpl); -_.close_0 = function close_2(){ - $close(this); -} -; -_.spliterator_1 = function spliterator_35(){ - return $terminate(this) , this.spliterator; -} -; -var Ljava_util_stream_IntStreamImpl_2_classLit = createForClass('java.util.stream', 'IntStreamImpl', 787); -function IntStreamImpl$Empty(){ - TerminatableStream.call(this, null); -} - -defineClass(788, 539, $intern_87, IntStreamImpl$Empty); -_.close_0 = function close_3(){ - $close(this); -} -; -_.spliterator_1 = function spliterator_36(){ - return $terminate(this) , $clinit_Spliterators$EmptySpliterator() , OF_INT; -} -; -var Ljava_util_stream_IntStreamImpl$Empty_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/Empty', 788); -function IntStreamImpl$lambda$4$Type(acc_1){ - this.acc_1 = acc_1; -} - -defineClass(1463, 1, $intern_21, IntStreamImpl$lambda$4$Type); -_.accept_0 = function accept_29(arg0){ - $accept_0(this.acc_1, arg0); -} -; -var Ljava_util_stream_IntStreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'IntStreamImpl/lambda$4$Type', 1463); -var Ljava_util_stream_Stream_2_classLit = createForInterface('java.util.stream', 'Stream'); -function $clinit_StreamImpl(){ - $clinit_StreamImpl = emptyMethod; - NULL_CONSUMER = new StreamImpl$lambda$0$Type; -} - -function $anyMatch(this$static, predicate){ - return ($throwIfTerminated(this$static) , $spliterator(new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)))).tryAdvance(NULL_CONSUMER); -} - -function $collect_1(this$static, collector){ - var lastArg; - return collector.finisher.apply_0($reduce(this$static, collector.supplier.get_5(), (lastArg = new StreamImpl$lambda$4$Type(collector) , lastArg))); -} - -function $count_0(this$static){ - var count; - $terminate(this$static); - count = 0; - while (this$static.spliterator.tryAdvance(new StreamImpl$lambda$1$Type)) { - count = add_20(count, 1); - } - return count; -} - -function $distinct(this$static){ - var seen; - $throwIfTerminated(this$static); - seen = new HashSet; - return $filter(this$static, new StreamImpl$1methodref$add$Type(seen)); -} - -function $filter(this$static, predicate){ - $throwIfTerminated(this$static); - return new StreamImpl(this$static, new StreamImpl$FilterSpliterator(predicate, this$static.spliterator)); -} - -function $findFirst(this$static){ - var holder; - $terminate(this$static); - holder = new StreamImpl$ValueConsumer; - if (this$static.spliterator.tryAdvance(holder)) { - return $clinit_Optional() , new Optional(checkCriticalNotNull(holder.value_0)); - } - return $clinit_Optional() , $clinit_Optional() , EMPTY_3; -} - -function $flatMap(this$static, mapper){ - var flatMapSpliterator, spliteratorOfStreams; - $throwIfTerminated(this$static); - spliteratorOfStreams = new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator); - flatMapSpliterator = new StreamImpl$1(spliteratorOfStreams); - return new StreamImpl(this$static, flatMapSpliterator); -} - -function $forEach_3(this$static, action){ - $terminate(this$static); - this$static.spliterator.forEachRemaining(action); -} - -function $map_0(this$static, mapper){ - $throwIfTerminated(this$static); - return new StreamImpl(this$static, new StreamImpl$MapToObjSpliterator(mapper, this$static.spliterator)); -} - -function $mapToDouble(this$static, mapper){ - $throwIfTerminated(this$static); - return new DoubleStreamImpl(this$static, new StreamImpl$MapToDoubleSpliterator(mapper, this$static.spliterator)); -} - -function $mapToInt(this$static, mapper){ - $throwIfTerminated(this$static); - return new IntStreamImpl(this$static, new StreamImpl$MapToIntSpliterator(mapper, this$static.spliterator)); -} - -function $max_1(this$static, comparator){ - return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$0$Type(comparator))); -} - -function $min_0(this$static, comparator){ - return $reduce_0(this$static, (checkCriticalNotNull(comparator) , new BinaryOperator$lambda$1$Type(comparator))); -} - -function $reduce(this$static, identity, accumulator){ - var consumer; - $terminate(this$static); - consumer = new StreamImpl$ValueConsumer; - consumer.value_0 = identity; - this$static.spliterator.forEachRemaining(new StreamImpl$lambda$5$Type(consumer, accumulator)); - return consumer.value_0; -} - -function $reduce_0(this$static, accumulator){ - var consumer; - consumer = new StreamImpl$ValueConsumer; - if (!this$static.spliterator.tryAdvance(consumer)) { - $terminate(this$static); - return $clinit_Optional() , $clinit_Optional() , EMPTY_3; - } - return $clinit_Optional() , new Optional(checkCriticalNotNull($reduce(this$static, consumer.value_0, accumulator))); -} - -function $sorted_0(this$static){ - var c; - $throwIfTerminated(this$static); - c = ($clinit_Comparators() , $clinit_Comparators() , NATURAL_ORDER); - return $sorted_1(this$static, c); -} - -function $sorted_1(this$static, comparator){ - var sortedSpliterator; - $throwIfTerminated(this$static); - sortedSpliterator = new StreamImpl$5(this$static, this$static.spliterator.estimateSize_0(), this$static.spliterator.characteristics_0() | 4, comparator); - return new StreamImpl(this$static, sortedSpliterator); -} - -function $spliterator(this$static){ - $terminate(this$static); - return this$static.spliterator; -} - -function $toArray_7(this$static, generator){ - var collected; - collected = castTo($collect_1(this$static, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - return collected.toArray_0($apply_3(collected.size_1())); -} - -function StreamImpl(prev, spliterator){ - $clinit_StreamImpl(); - TerminatableStream.call(this, prev); - this.spliterator = spliterator; -} - -function lambda$4_0(collector_0, a_1, t_2){ - $clinit_StreamImpl(); - collector_0.accumulator.accept_1(a_1, t_2); - return a_1; -} - -function lambda$5(consumer_0, accumulator_1, item_2){ - $clinit_StreamImpl(); - $accept_1(consumer_0, accumulator_1.apply_3(consumer_0.value_0, item_2)); -} - -defineClass(30, 539, {525:1, 670:1, 833:1}, StreamImpl); -_.close_0 = function close_4(){ - $close(this); -} -; -var NULL_CONSUMER; -var Ljava_util_stream_StreamImpl_2_classLit = createForClass('java.util.stream', 'StreamImpl', 30); -function $apply_3(arg0){ - return $clinit_StreamImpl() , initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, arg0, 5, 1); -} - -function StreamImpl$0methodref$lambda$2$Type(){ -} - -defineClass(845, 1, {}, StreamImpl$0methodref$lambda$2$Type); -_.apply_2 = function apply_36(arg0){ - return $apply_3(arg0); -} -; -var Ljava_util_stream_StreamImpl$0methodref$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/0methodref$lambda$2$Type', 845); -function $advanceToNextSpliterator(this$static){ - while (!this$static.next_0) { - if (!$tryAdvance_6(this$static.val$spliteratorOfStreams5, new StreamImpl$1$lambda$0$Type(this$static))) { - return false; - } - } - return true; -} - -function $lambda$0_0(this$static, n_0){ - if (n_0) { - this$static.nextStream = n_0; - this$static.next_0 = ($terminate(n_0) , n_0.spliterator); - } -} - -function StreamImpl$1(val$spliteratorOfStreams){ - this.val$spliteratorOfStreams5 = val$spliteratorOfStreams; - Spliterators$AbstractSpliterator.call(this, $intern_20, 0); -} - -defineClass(1084, 540, $intern_18, StreamImpl$1); -_.tryAdvance = function tryAdvance_12(action){ - while ($advanceToNextSpliterator(this)) { - if (this.next_0.tryAdvance(action)) { - return true; - } - else { - $close(this.nextStream); - this.nextStream = null; - this.next_0 = null; - } - } - return false; -} -; -var Ljava_util_stream_StreamImpl$1_2_classLit = createForClass('java.util.stream', 'StreamImpl/1', 1084); -function StreamImpl$1$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1085, 1, $intern_19, StreamImpl$1$lambda$0$Type); -_.accept = function accept_30(arg0){ - $lambda$0_0(this.$$outer_0, castTo(arg0, 833)); -} -; -var Ljava_util_stream_StreamImpl$1$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1/lambda$0$Type', 1085); -function StreamImpl$1methodref$add$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1086, 1, $intern_39, StreamImpl$1methodref$add$Type); -_.test_0 = function test_5(arg0){ - return $add_6(this.$$outer_0, arg0); -} -; -var Ljava_util_stream_StreamImpl$1methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1methodref$add$Type', 1086); -function StreamImpl$5(this$0, $anonymous0, $anonymous1, val$comparator){ - this.this$01 = this$0; - this.val$comparator5 = val$comparator; - Spliterators$AbstractSpliterator.call(this, $anonymous0, $anonymous1); -} - -defineClass(1087, 540, $intern_18, StreamImpl$5); -_.tryAdvance = function tryAdvance_13(action){ - var list; - if (!this.ordered) { - list = new ArrayList; - this.this$01.spliterator.forEachRemaining(new StreamImpl$5$2methodref$add$Type(list)); - $clinit_Collections(); - $sort(list, this.val$comparator5); - this.ordered = new Spliterators$IteratorSpliterator(list, 16); - } - return $tryAdvance(this.ordered, action); -} -; -_.ordered = null; -var Ljava_util_stream_StreamImpl$5_2_classLit = createForClass('java.util.stream', 'StreamImpl/5', 1087); -function StreamImpl$5$2methodref$add$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1088, 1, $intern_19, StreamImpl$5$2methodref$add$Type); -_.accept = function accept_31(arg0){ - $add_3(this.$$outer_0, arg0); -} -; -var Ljava_util_stream_StreamImpl$5$2methodref$add$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/5/2methodref$add$Type', 1088); -function $lambda$0_1(this$static, action_1, item_1){ - if (this$static.filter.test_0(item_1)) { - this$static.found = true; - action_1.accept(item_1); - } -} - -function StreamImpl$FilterSpliterator(filter, original){ - Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -16449); - checkCriticalNotNull(filter); - this.filter = filter; - this.original = original; -} - -defineClass(722, 540, $intern_18, StreamImpl$FilterSpliterator); -_.tryAdvance = function tryAdvance_14(action){ - this.found = false; - while (!this.found && this.original.tryAdvance(new StreamImpl$FilterSpliterator$lambda$0$Type(this, action))) - ; - return this.found; -} -; -_.found = false; -var Ljava_util_stream_StreamImpl$FilterSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator', 722); -function StreamImpl$FilterSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1079, 1, $intern_19, StreamImpl$FilterSpliterator$lambda$0$Type); -_.accept = function accept_32(arg0){ - $lambda$0_1(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$FilterSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/FilterSpliterator/lambda$0$Type', 1079); -function $lambda$0_2(this$static, action_1, u_1){ - action_1.accept_2(this$static.map_0.applyAsDouble(u_1)); -} - -function $tryAdvance_4(this$static, action){ - return this$static.original.tryAdvance(new StreamImpl$MapToDoubleSpliterator$lambda$0$Type(this$static, action)); -} - -function StreamImpl$MapToDoubleSpliterator(map_0, original){ - Spliterators$AbstractDoubleSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); - checkCriticalNotNull(map_0); - this.map_0 = map_0; - this.original = original; -} - -defineClass(1075, 721, $intern_18, StreamImpl$MapToDoubleSpliterator); -_.tryAdvance_0 = function tryAdvance_15(action){ - return $tryAdvance_4(this, castTo(action, 182)); -} -; -var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator', 1075); -function StreamImpl$MapToDoubleSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1078, 1, $intern_19, StreamImpl$MapToDoubleSpliterator$lambda$0$Type); -_.accept = function accept_33(arg0){ - $lambda$0_2(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator/lambda$0$Type', 1078); -function $lambda$0_3(this$static, action_1, u_1){ - action_1.accept_0(this$static.map_0.applyAsInt(u_1)); -} - -function $tryAdvance_5(this$static, action){ - return this$static.original.tryAdvance(new StreamImpl$MapToIntSpliterator$lambda$0$Type(this$static, action)); -} - -function StreamImpl$MapToIntSpliterator(map_0, original){ - Spliterators$AbstractIntSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); - checkCriticalNotNull(map_0); - this.map_0 = map_0; - this.original = original; -} - -defineClass(1074, 720, $intern_18, StreamImpl$MapToIntSpliterator); -_.tryAdvance_0 = function tryAdvance_16(action){ - return $tryAdvance_5(this, castTo(action, 196)); -} -; -var Ljava_util_stream_StreamImpl$MapToIntSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator', 1074); -function StreamImpl$MapToIntSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1077, 1, $intern_19, StreamImpl$MapToIntSpliterator$lambda$0$Type); -_.accept = function accept_34(arg0){ - $lambda$0_3(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$MapToIntSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator/lambda$0$Type', 1077); -function $lambda$0_4(this$static, action_1, u_1){ - action_1.accept(this$static.map_0.apply_0(u_1)); -} - -function $tryAdvance_6(this$static, action){ - return this$static.original.tryAdvance(new StreamImpl$MapToObjSpliterator$lambda$0$Type(this$static, action)); -} - -function StreamImpl$MapToObjSpliterator(map_0, original){ - Spliterators$AbstractSpliterator.call(this, original.estimateSize_0(), original.characteristics_0() & -6); - checkCriticalNotNull(map_0); - this.map_0 = map_0; - this.original = original; -} - -defineClass(719, 540, $intern_18, StreamImpl$MapToObjSpliterator); -_.tryAdvance = function tryAdvance_17(action){ - return $tryAdvance_6(this, action); -} -; -var Ljava_util_stream_StreamImpl$MapToObjSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator', 719); -function StreamImpl$MapToObjSpliterator$lambda$0$Type($$outer_0, action_1){ - this.$$outer_0 = $$outer_0; - this.action_1 = action_1; -} - -defineClass(1076, 1, $intern_19, StreamImpl$MapToObjSpliterator$lambda$0$Type); -_.accept = function accept_35(arg0){ - $lambda$0_4(this.$$outer_0, this.action_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$MapToObjSpliterator$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToObjSpliterator/lambda$0$Type', 1076); -function $accept_1(this$static, value_0){ - this$static.value_0 = value_0; -} - -function StreamImpl$ValueConsumer(){ -} - -defineClass(618, 1, $intern_19, StreamImpl$ValueConsumer); -_.accept = function accept_36(value_0){ - $accept_1(this, value_0); -} -; -var Ljava_util_stream_StreamImpl$ValueConsumer_2_classLit = createForClass('java.util.stream', 'StreamImpl/ValueConsumer', 618); -function StreamImpl$lambda$0$Type(){ -} - -defineClass(1080, 1, $intern_19, StreamImpl$lambda$0$Type); -_.accept = function accept_37(arg0){ - $clinit_StreamImpl(); -} -; -var Ljava_util_stream_StreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$0$Type', 1080); -function StreamImpl$lambda$1$Type(){ -} - -defineClass(1081, 1, $intern_19, StreamImpl$lambda$1$Type); -_.accept = function accept_38(arg0){ - $clinit_StreamImpl(); -} -; -var Ljava_util_stream_StreamImpl$lambda$1$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$1$Type', 1081); -function StreamImpl$lambda$4$Type(collector_0){ - this.collector_0 = collector_0; -} - -defineClass(1082, 1, {}, StreamImpl$lambda$4$Type); -_.apply_3 = function apply_37(arg0, arg1){ - return lambda$4_0(this.collector_0, arg0, arg1); -} -; -var Ljava_util_stream_StreamImpl$lambda$4$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$4$Type', 1082); -function StreamImpl$lambda$5$Type(consumer_0, accumulator_1){ - this.consumer_0 = consumer_0; - this.accumulator_1 = accumulator_1; -} - -defineClass(1083, 1, $intern_19, StreamImpl$lambda$5$Type); -_.accept = function accept_39(arg0){ - lambda$5(this.consumer_0, this.accumulator_1, arg0); -} -; -var Ljava_util_stream_StreamImpl$lambda$5$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$5$Type', 1083); -function TerminatableStream$lambda$0$Type(throwables_0){ - this.throwables_0 = throwables_0; -} - -defineClass(1089, 1, $intern_19, TerminatableStream$lambda$0$Type); -_.accept = function accept_40(arg0){ - lambda$0_3(this.throwables_0, castTo(arg0, 365)); -} -; -var Ljava_util_stream_TerminatableStream$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'TerminatableStream/lambda$0$Type', 1089); -function clone_0(array, toIndex){ - var result; - result = array.slice(0, toIndex); - return stampJavaTypeInfo_0(result, array); -} - -function copy_0(src_0, srcOfs, dest, destOfs, len, overwrite){ - var batchEnd, batchStart, destArray, end, spliceArgs; - if (maskUndefined(src_0) === maskUndefined(dest)) { - src_0 = src_0.slice(srcOfs, srcOfs + len); - srcOfs = 0; - } - destArray = dest; - for (batchStart = srcOfs , end = srcOfs + len; batchStart < end;) { - batchEnd = $wnd.Math.min(batchStart + 10000, end); - len = batchEnd - batchStart; - spliceArgs = src_0.slice(batchStart, batchEnd); - spliceArgs.splice(0, 0, destOfs, overwrite?len:0); - Array.prototype.splice.apply(destArray, spliceArgs); - batchStart = batchEnd; - destOfs += len; - } -} - -function createFrom(array, length_0){ - return stampJavaTypeInfo_1(new Array(length_0), array); -} - -function insertTo(array, index_0, value_0){ - array.splice(index_0, 0, value_0); -} - -function insertTo_0(array, index_0, values){ - copy_0(values, 0, array, index_0, values.length, false); -} - -function removeFrom(array, index_0, deleteCount){ - array.splice(index_0, deleteCount); -} - -function setLength(array, length_0){ - array.length = length_0; -} - -defineClass(2041, 1, {}); -function stampJavaTypeInfo_1(array, referenceType){ - return stampJavaTypeInfo_0(array, referenceType); -} - -function $groupStart(msg, expanded){ - (!expanded && console.groupCollapsed != null?console.groupCollapsed:console.group != null?console.group:console.log).call(console, msg); -} - -function $log_0(level, message){ - var logFn; - logFn = console[level]; - logFn.call(console, message); -} - -function $log_1(this$static, level, t, label_0, expanded){ - var cause, suppressed, suppressed$array, suppressed$index, suppressed$max; - $groupStart(label_0 + $toString_4(t, t.getMessage()), expanded); - $log_0(level, getBackingErrorStack(t)); - cause = t.cause_0; - !!cause && $log_1(this$static, level, cause, 'Caused by: ', false); - for (suppressed$array = (t.suppressedExceptions == null && (t.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , t.suppressedExceptions) , suppressed$index = 0 , suppressed$max = suppressed$array.length; suppressed$index < suppressed$max; ++suppressed$index) { - suppressed = suppressed$array[suppressed$index]; - $log_1(this$static, level, suppressed, 'Suppressed: ', false); - } - console.groupEnd != null && console.groupEnd.call(console); -} - -function ConsoleLogger(){ -} - -function getBackingErrorStack(t){ - var backingError = t.backingJsObject; - function stringify(fnStack){ - if (!fnStack || fnStack.length == 0) { - return ''; - } - return '\t' + fnStack.join('\n\t'); - } - - return backingError && (backingError.stack || stringify(t['fnStack'])); -} - -defineClass(1914, 1, {}, ConsoleLogger); -var Ljavaemul_internal_ConsoleLogger_2_classLit = createForClass('javaemul.internal', 'ConsoleLogger', 1914); -function getIdentityHashCode(o){ - switch (typeof(o)) { - case 'string': - return getHashCode_1(o); - case 'number': - return round_int(o); - case 'boolean': - return $clinit_Boolean() , o?1231:1237; - default:return o == null?0:getHashCode_0(o); - } -} - -function checkCriticalArgument(expression){ - if (!expression) { - throw toJs(new IllegalArgumentException); - } -} - -function checkCriticalArgument_0(expression, errorMessage){ - if (!expression) { - throw toJs(new IllegalArgumentException_0(errorMessage)); - } -} - -function checkCriticalArgument_1(expression, errorMessageArgs){ - if (!expression) { - throw toJs(new IllegalArgumentException_0(format('Enum constant undefined: %s', errorMessageArgs))); - } -} - -function checkCriticalArrayBounds_0(start_0, end, length_0){ - if (start_0 > end) { - throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); - } - if (start_0 < 0 || end > length_0) { - throw toJs(new ArrayIndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); - } -} - -function checkCriticalArraySize(size_0){ - if (size_0 < 0) { - throw toJs(new NegativeArraySizeException('Negative array size: ' + size_0)); - } -} - -function checkCriticalArrayType(expression){ - if (!expression) { - throw toJs(new ArrayStoreException); - } -} - -function checkCriticalArrayType_0(expression, errorMessage){ - if (!expression) { - throw toJs(new ArrayStoreException_0(errorMessage)); - } -} - -function checkCriticalElement(expression){ - if (!expression) { - throw toJs(new NoSuchElementException); - } -} - -function checkCriticalElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); - } -} - -function checkCriticalNotNull(reference){ - if (reference == null) { - throw toJs(new NullPointerException); - } - return reference; -} - -function checkCriticalNotNull_0(reference, errorMessage){ - if (reference == null) { - throw toJs(new NullPointerException_0(errorMessage)); - } -} - -function checkCriticalPositionIndex(index_0, size_0){ - if (index_0 < 0 || index_0 > size_0) { - throw toJs(new IndexOutOfBoundsException_0('Index: ' + index_0 + ', Size: ' + size_0)); - } -} - -function checkCriticalPositionIndexes(start_0, end, size_0){ - if (start_0 < 0 || end > size_0) { - throw toJs(new IndexOutOfBoundsException_0('fromIndex: ' + start_0 + ', toIndex: ' + end + ', size: ' + size_0)); - } - if (start_0 > end) { - throw toJs(new IllegalArgumentException_0('fromIndex: ' + start_0 + ' > toIndex: ' + end)); - } -} - -function checkCriticalState(expression){ - if (!expression) { - throw toJs(new IllegalStateException); - } -} - -function checkCriticalState_0(expression){ - if (!expression) { - throw toJs(new IllegalStateException_0('Unable to add element to queue')); - } -} - -function checkCriticalStringBounds(start_0, end, length_0){ - if (start_0 < 0 || end > length_0 || end < start_0) { - throw toJs(new StringIndexOutOfBoundsException('fromIndex: ' + start_0 + ', toIndex: ' + end + ', length: ' + length_0)); - } -} - -function checkCriticalStringElementIndex(index_0, size_0){ - if (index_0 < 0 || index_0 >= size_0) { - throw toJs(new StringIndexOutOfBoundsException('Index: ' + index_0 + ', Size: ' + size_0)); - } -} - -function checkCriticalType(expression){ - if (!expression) { - throw toJs(new ClassCastException_0(null)); - } -} - -function format(template, args){ - var builder, i, placeholderStart, templateStart; - template = template == null?'null':(checkCriticalNotNull(template) , template); - builder = new StringBuilder_0; - templateStart = 0; - i = 0; - while (i < args.length) { - placeholderStart = template.indexOf('%s', templateStart); - if (placeholderStart == -1) { - break; - } - $append_11(builder, template.substr(templateStart, placeholderStart - templateStart)); - $append_10(builder, args[i++]); - templateStart = placeholderStart + 2; - } - $append_11(builder, template.substr(templateStart)); - if (i < args.length) { - builder.string += ' ['; - $append_10(builder, args[i++]); - while (i < args.length) { - builder.string += ', '; - $append_10(builder, args[i++]); - } - builder.string += ']'; - } - return builder.string; -} - -defineClass(2038, 1, {}); -function getHashCode_0(o){ - return o.$H || (o.$H = ++nextHashId); -} - -var nextHashId = 0; -function $clinit_StringHashCache(){ - $clinit_StringHashCache = emptyMethod; - back_0 = new Object_0; - front = new Object_0; -} - -function compute(str){ - var hashCode, i, n, nBatch; - hashCode = 0; - n = str.length; - nBatch = n - 4; - i = 0; - while (i < nBatch) { - hashCode = (checkCriticalStringElementIndex(i + 3, str.length) , str.charCodeAt(i + 3) + (checkCriticalStringElementIndex(i + 2, str.length) , 31 * (str.charCodeAt(i + 2) + (checkCriticalStringElementIndex(i + 1, str.length) , 31 * (str.charCodeAt(i + 1) + (checkCriticalStringElementIndex(i, str.length) , 31 * (str.charCodeAt(i) + 31 * hashCode))))))); - hashCode = hashCode | 0; - i += 4; - } - while (i < n) { - hashCode = hashCode * 31 + $charAt(str, i++); - } - hashCode = hashCode | 0; - return hashCode; -} - -function getHashCode_1(str){ - $clinit_StringHashCache(); - var hashCode, key, result; - key = ':' + str; - result = front[key]; - if (result != null) { - return round_int((checkCriticalNotNull(result) , result)); - } - result = back_0[key]; - hashCode = result == null?compute(str):round_int((checkCriticalNotNull(result) , result)); - increment_0(); - front[key] = hashCode; - return hashCode; -} - -function increment_0(){ - if (count_0 == 256) { - back_0 = front; - front = new Object_0; - count_0 = 0; - } - ++count_0; -} - -var back_0, count_0 = 0, front; -function triangulate(vertices){ - var bottomright, boundary, c, i, invalidTriangles, onBoundary, other, other$iterator, sa, sb, sc, size_0, superTriangle, tEdge, tEdge$iterator, tEdge$iterator0, tEdges, topleft, triangle, triangle$iterator, triangle$iterator0, triangulation, v, v$iterator, vertex, vertex$iterator; - topleft = new KVector_1($intern_59, $intern_59); - bottomright = new KVector_1($intern_60, $intern_60); - for (v$iterator = new ArrayList$1(vertices); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 8); - topleft.x_0 = $wnd.Math.min(topleft.x_0, v.x_0); - topleft.y_0 = $wnd.Math.min(topleft.y_0, v.y_0); - bottomright.x_0 = $wnd.Math.max(bottomright.x_0, v.x_0); - bottomright.y_0 = $wnd.Math.max(bottomright.y_0, v.y_0); - } - size_0 = new KVector_1(bottomright.x_0 - topleft.x_0, bottomright.y_0 - topleft.y_0); - sa = new KVector_1(topleft.x_0 - 50, topleft.y_0 - size_0.x_0 - 50); - sb = new KVector_1(topleft.x_0 - 50, bottomright.y_0 + size_0.x_0 + 50); - sc = new KVector_1(bottomright.x_0 + size_0.y_0 / 2 + 50, topleft.y_0 + size_0.y_0 / 2); - superTriangle = new TTriangle(sa, sb, sc); - triangulation = new HashSet; - invalidTriangles = new ArrayList; - boundary = new ArrayList; - triangulation.map_0.put(superTriangle, triangulation); - for (vertex$iterator = new ArrayList$1(vertices); vertex$iterator.i < vertex$iterator.this$01.array.length;) { - vertex = castTo($next_7(vertex$iterator), 8); - invalidTriangles.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (triangle$iterator0 = triangulation.map_0.keySet_0().iterator_0(); triangle$iterator0.hasNext_0();) { - triangle = castTo(triangle$iterator0.next_1(), 308); - c = triangle.circumcenter; - $distance_0(c, triangle.a); - fuzzyCompare($distance_0(triangle.circumcenter, vertex), $distance_0(triangle.circumcenter, triangle.a)) < 0 && (invalidTriangles.array[invalidTriangles.array.length] = triangle , true); - } - boundary.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (triangle$iterator = new ArrayList$1(invalidTriangles); triangle$iterator.i < triangle$iterator.this$01.array.length;) { - triangle = castTo($next_7(triangle$iterator), 308); - for (tEdge$iterator0 = new ArrayList$1(triangle.tEdges); tEdge$iterator0.i < tEdge$iterator0.this$01.array.length;) { - tEdge = castTo($next_7(tEdge$iterator0), 168); - onBoundary = true; - for (other$iterator = new ArrayList$1(invalidTriangles); other$iterator.i < other$iterator.this$01.array.length;) { - other = castTo($next_7(other$iterator), 308); - other != triangle && (equals_57(tEdge, $get_11(other.tEdges, 0)) || equals_57(tEdge, $get_11(other.tEdges, 1)) || equals_57(tEdge, $get_11(other.tEdges, 2))) && (onBoundary = false); - } - onBoundary && (boundary.array[boundary.array.length] = tEdge , true); - } - } - $removeAll_1(triangulation, invalidTriangles); - $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$0$Type); - for (tEdge$iterator = new ArrayList$1(boundary); tEdge$iterator.i < tEdge$iterator.this$01.array.length;) { - tEdge = castTo($next_7(tEdge$iterator), 168); - $add_6(triangulation, new TTriangle(vertex, tEdge.u, tEdge.v)); - } - } - tEdges = new HashSet; - $forEach_0(triangulation, new BowyerWatsonTriangulation$lambda$1$Type(tEdges)); - i = tEdges.map_0.keySet_0().iterator_0(); - while (i.hasNext_0()) { - tEdge = castTo(i.next_1(), 168); - ($contains_9(superTriangle, tEdge.u) || $contains_9(superTriangle, tEdge.v)) && i.remove(); - } - $forEach_0(tEdges, new BowyerWatsonTriangulation$lambda$2$Type); - return tEdges; -} - -function BowyerWatsonTriangulation$lambda$0$Type(){ -} - -defineClass(1768, 1, $intern_19, BowyerWatsonTriangulation$lambda$0$Type); -_.accept = function accept_41(arg0){ - castTo(arg0, 308); -} -; -var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$0$Type', 1768); -function BowyerWatsonTriangulation$lambda$1$Type(tEdges_0){ - this.tEdges_0 = tEdges_0; -} - -defineClass(1769, 1, $intern_19, BowyerWatsonTriangulation$lambda$1$Type); -_.accept = function accept_42(arg0){ - $addAll(this.tEdges_0, castTo(arg0, 308).tEdges); -} -; -var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$1$Type', 1769); -function BowyerWatsonTriangulation$lambda$2$Type(){ -} - -defineClass(1770, 1, $intern_19, BowyerWatsonTriangulation$lambda$2$Type); -_.accept = function accept_43(arg0){ - castTo(arg0, 168); -} -; -var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$2$Type', 1770); -function createSpanningTree(tEdges, root, costFunction){ - var edge, edge$iterator, edge$iterator0, edgeList, edges, minST, nextEdge, nextNode, nodeInTree, subTree, treeNodes, weight; - weight = new HashMap; - for (edge$iterator0 = tEdges.map_0.keySet_0().iterator_0(); edge$iterator0.hasNext_0();) { - edge = castTo(edge$iterator0.next_1(), 168); - $put_6(weight, edge, costFunction.cost(edge)); - } - edgeList = (checkNotNull(tEdges) , tEdges?new ArrayList_1(tEdges):newArrayList_0(tEdges.map_0.keySet_0().iterator_0())); - $sort(edgeList, new NaiveMinST$lambda$0$Type(weight)); - edges = newLinkedHashSet(edgeList); - minST = new Tree(root); - treeNodes = new HashMap; - $put_9(treeNodes.hashCodeMap, root, minST); - while (edges.map_0.size_1() != 0) { - nextEdge = null; - nextNode = null; - nodeInTree = null; - for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 168); - if ($doubleValue(castToDouble(getEntryValueOrNull($getEntry_0(weight.hashCodeMap, edge)))) <= $intern_59) { - if ($containsKey_3(treeNodes, edge.u) && !$containsKey_3(treeNodes, edge.v)) { - nextNode = edge.v; - nodeInTree = edge.u; - nextEdge = edge; - break; - } - if ($containsKey_3(treeNodes, edge.v)) { - if (!$containsKey_3(treeNodes, edge.u)) { - nextNode = edge.u; - nodeInTree = edge.v; - nextEdge = edge; - break; - } - } - } - } - if (!nextEdge) { - break; - } - subTree = new Tree(nextNode); - $add_3(castTo(getEntryValueOrNull($getEntry_0(treeNodes.hashCodeMap, nodeInTree)), 221).children, subTree); - $put_9(treeNodes.hashCodeMap, nextNode, subTree); - edges.map_0.remove_0(nextEdge) != null; - } - return minST; -} - -function lambda$0_6(weight_0, e1_1, e2_2){ - return $compareTo_4(castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e1_1))), castToDouble(getEntryValueOrNull($getEntry_0(weight_0.hashCodeMap, e2_2)))); -} - -function NaiveMinST$lambda$0$Type(weight_0){ - this.weight_0 = weight_0; -} - -defineClass(1765, 1, $intern_88, NaiveMinST$lambda$0$Type); -_.compare_1 = function compare_12(arg0, arg1){ - return lambda$0_6(this.weight_0, castTo(arg0, 168), castTo(arg1, 168)); -} -; -_.equals_0 = function equals_61(other){ - return this === other; -} -; -_.reversed = function reversed_4(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_NaiveMinST$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NaiveMinST/lambda$0$Type', 1765); -function $execute(this$static){ - var calcu; - sortPortLists(this$static.adapter); - calculateLabelAndNodeSizes(this$static.adapter); - calcu = new NodeMarginCalculator(this$static.adapter); - $process(calcu); -} - -function NodeMicroLayout(adapter){ - this.adapter = adapter; -} - -defineClass(499, 1, {}, NodeMicroLayout); -var Lorg_eclipse_elk_alg_common_NodeMicroLayout_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NodeMicroLayout', 499); -function TEdge(u, v){ - this.u = u; - this.v = v; -} - -defineClass(168, 1, {168:1}, TEdge); -_.equals_0 = function equals_62(obj){ - var other; - if (instanceOf(obj, 168)) { - other = castTo(obj, 168); - return equals_57(this.u, other.u) && equals_57(this.v, other.v) || equals_57(this.u, other.v) && equals_57(this.v, other.u); - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_58(){ - return hashCode_54(this.u) + hashCode_54(this.v); -} -; -var Lorg_eclipse_elk_alg_common_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TEdge', 168); -function $contains_9(this$static, vertex){ - return equals_57(vertex, $get_11(this$static.vertices, 0)) || equals_57(vertex, $get_11(this$static.vertices, 1)) || equals_57(vertex, $get_11(this$static.vertices, 2)); -} - -function TTriangle(a, b, c){ - var ab, ac, bc, e, f, g, px, py; - this.a = a; - this.b = b; - this.c = c; - this.tEdges = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_TEdge_2_classLit, 1), $intern_2, 168, 0, [new TEdge(a, b), new TEdge(b, c), new TEdge(c, a)])); - this.vertices = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [a, b, c])); - this.circumcenter = (ab = $sub_0($clone_0(this.b), this.a) , ac = $sub_0($clone_0(this.c), this.a) , bc = $sub_0($clone_0(this.c), this.b) , e = ab.x_0 * (this.a.x_0 + this.b.x_0) + ab.y_0 * (this.a.y_0 + this.b.y_0) , f = ac.x_0 * (this.a.x_0 + this.c.x_0) + ac.y_0 * (this.a.y_0 + this.c.y_0) , g = 2 * (ab.x_0 * bc.y_0 - ab.y_0 * bc.x_0) , px = (ac.y_0 * e - ab.y_0 * f) / g , py = (ab.x_0 * f - ac.x_0 * e) / g , new KVector_1(px, py)); -} - -defineClass(308, 1, {308:1}, TTriangle); -_.equals_0 = function equals_63(obj){ - var other; - if (instanceOf(obj, 308)) { - other = castTo(obj, 308); - return $contains_9(this, other.a) && $contains_9(this, other.b) && $contains_9(this, other.c); - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_59(){ - return hashCode_54(this.a) + hashCode_54(this.b) + hashCode_54(this.c); -} -; -var Lorg_eclipse_elk_alg_common_TTriangle_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TTriangle', 308); -function Tree(n){ - this.node = n; - this.children = new ArrayList; -} - -defineClass(221, 1, {221:1}, Tree); -var Lorg_eclipse_elk_alg_common_Tree_2_classLit = createForClass('org.eclipse.elk.alg.common', 'Tree', 221); -function $go(this$static){ - var h, h$iterator, p, p$iterator; - $clinit_Collections(); - $sort(this$static.points, this$static.comparator); - for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { - p = $next_7(p$iterator); - for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { - h = castTo($next_7(h$iterator), 679); - h.handle(p); - } - } -} - -function Scanline(points, comparator, eventHandlers){ - this.comparator = comparator; - this.points = points; - this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); -} - -function execute(points, comparator, eventHandlers){ - var copy; - copy = (checkNotNull(points) , new ArrayList_1(points)); - $go(new Scanline(copy, comparator, eventHandlers)); -} - -defineClass(1254, 1, {}, Scanline); -var Lorg_eclipse_elk_alg_common_compaction_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction', 'Scanline', 1254); -var Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.common.compaction', 'Scanline/EventHandler'); -function $supports(this$static, direction){ - return $containsEnum(this$static.supportedDirections, direction); -} - -function CGraph(supportedDirections){ - this.cNodes = new ArrayList; - this.cGroups = new ArrayList; - this.predefinedHorizontalConstraints = new ArrayList; - this.predefinedVerticalConstraints = new ArrayList; - this.supportedDirections = supportedDirections; -} - -defineClass(1692, 1, {}, CGraph); -var Lorg_eclipse_elk_alg_common_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGraph', 1692); -function $addCNode(this$static, cNode){ - if (cNode.cGroup) { - throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); - } - $add_6(this$static.cNodes, cNode); - cNode.cGroup = this$static; - !this$static.reference && (this$static.reference = cNode); -} - -function CGroup(){ - this.cNodes = new LinkedHashSet; - this.incomingConstraints = new HashSet; - this.outDegree = 0; - this.outDegreeReal = 0; -} - -defineClass(307, 1, {307:1}, CGroup); -_.delta = 0; -_.deltaNormalized = 0; -_.id_0 = 0; -_.outDegree = 0; -_.outDegreeReal = 0; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup', 307); -function $create(this$static, graph){ - $add_3(graph.cGroups, this$static.group_0); - return this$static.group_0; -} - -function $master(this$static, master){ - this$static.group_0.master = master; - return this$static; -} - -function $nodes(this$static, nodes){ - var n, n$array, n$index, n$max; - for (n$array = nodes , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { - n = n$array[n$index]; - $addCNode(this$static.group_0, n); - } - return this$static; -} - -function CGroup$CGroupBuilder(){ - this.group_0 = new CGroup; -} - -defineClass(815, 1, {}, CGroup$CGroupBuilder); -var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup$CGroupBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup/CGroupBuilder', 815); -function CNode(){ - this.cGroupOffset = new KVector; - this.constraints = new ArrayList; -} - -defineClass(57, 1, {57:1}, CNode); -_.toString_0 = function toString_76(){ - var number; - if (this.toStringDelegate) { - return castToString(this.toStringDelegate.apply_0(this)); - } - return $ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit) , Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit.typeName + '@' + (number = getHashCode_0(this) >>> 0 , number.toString(16)); -} -; -_.id_0 = 0; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode', 57); -function $create_0(this$static, graph){ - $add_3(graph.cNodes, this$static.node); - return this$static.node; -} - -function $hitbox(this$static, hitbox){ - this$static.node.hitbox = hitbox; - return this$static; -} - -function $origin(this$static, origin_0){ - this$static.node.origin_0 = origin_0; - return this$static; -} - -function $toStringDelegate(this$static, delegate){ - this$static.node.toStringDelegate = delegate; - return this$static; -} - -function CNode$CNodeBuilder(){ - this.node = new CNode; -} - -defineClass(814, 1, {}, CNode$CNodeBuilder); -var Lorg_eclipse_elk_alg_common_compaction_oned_CNode$CNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode/CNodeBuilder', 814); -function eq_0(d1, d2){ - return $clinit_DoubleMath() , checkNonNegative($intern_41) , $wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2); -} - -function gt_0(d1, d2){ - return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) > 0; -} - -function le(d1, d2){ - return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) <= 0; -} - -function lt_0(d1, d2){ - return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2)?0:d1 < d2?-1:d1 > d2?1:compare_0(isNaN(d1), isNaN(d2))) < 0; -} - -function $clinit_ISpacingsHandler(){ - $clinit_ISpacingsHandler = emptyMethod; - DEFAULT_SPACING_HANDLER = new ISpacingsHandler$1; -} - -var DEFAULT_SPACING_HANDLER; -function ISpacingsHandler$1(){ -} - -defineClass(1525, 1, {}, ISpacingsHandler$1); -_.getHorizontalSpacing = function getHorizontalSpacing(cNode1, cNode2){ - return 0; -} -; -_.getVerticalSpacing = function getVerticalSpacing(cNode1, cNode2){ - return 0; -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ISpacingsHandler/1', 1525); -function LongestPathCompaction(){ -} - -defineClass(1790, 1, {}, LongestPathCompaction); -_.compact = function compact(compactor){ - var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; - minStartPos = $intern_59; - for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 57); - minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); - } - sinks = new LinkedList; - for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 307); - group.startPos = minStartPos; - group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); - } - while (sinks.size_0 != 0) { - group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 307); - diff = group.reference.hitbox.x_0; - for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { - node = castTo(node$iterator0.next_1(), 57); - suggestedX = group.startPos + node.cGroupOffset.x_0; - !$isLocked(compactor, group, compactor.direction) || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); - } - diff -= group.reference.startPos; - group.delta += diff; - compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); - for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 57); - for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { - incNode = castTo(incNode$iterator.next_1(), 57); - $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing(node, incNode)); - incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); - $isLocked_0(compactor, incNode, compactor.direction) && (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); - --incNode.cGroup.outDegree; - incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); - } - } - } - for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.hitbox.x_0 = cNode.startPos; - } -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_LongestPathCompaction_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'LongestPathCompaction', 1790); -function $clinit_OneDimensionalCompactor(){ - $clinit_OneDimensionalCompactor = emptyMethod; - LONGEST_PATH_COMPACTION = new LongestPathCompaction; - SCANLINE_CONSTRAINTS = new ScanlineConstraintCalculator; - QUADRATIC_CONSTRAINTS = new QuadraticConstraintCalculation; -} - -function $calculateConstraints(this$static){ - var cNode, cNode$iterator, cstrs; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.constraints.clear_0(); - } - $isHorizontal(this$static.direction)?(cstrs = this$static.cGraph.predefinedHorizontalConstraints):(cstrs = this$static.cGraph.predefinedVerticalConstraints); - $forEach_1(cstrs, new OneDimensionalCompactor$lambda$0$Type(this$static)); - this$static.constraintAlgorithm.calculateConstraints(this$static); - $calculateConstraintsForCGroups(this$static); -} - -function $calculateConstraintsForCGroups(this$static){ - var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; - for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 307); - group.outDegree = 0; - group.outDegreeReal = 0; - group.incomingConstraints.map_0.clear_0(); - } - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 307); - for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { - cNode = castTo(cNode$iterator.next_1(), 57); - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 57); - if (inc.cGroup != group) { - $add_6(group.incomingConstraints, inc); - ++inc.cGroup.outDegree; - ++inc.cGroup.outDegreeReal; - } - } - } - } -} - -function $calculateGroupOffsets(this$static){ - var group, group$iterator, n, n$iterator, n$iterator0; - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 307); - group.reference = null; - for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { - n = castTo(n$iterator0.next_1(), 57); - $reset_5(n.cGroupOffset); - (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); - } - for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; - n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; - } - } - return this$static; -} - -function $changeDirection(this$static, dir_0){ - var oldDirection; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - if (!$supports(this$static.cGraph, dir_0)) { - throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); - } - if (dir_0 == this$static.direction) { - return this$static; - } - oldDirection = this$static.direction; - this$static.direction = dir_0; - switch (oldDirection.ordinal) { - case 0: - switch (dir_0.ordinal) { - case 2: - $calculateConstraints(this$static); - break; - case 1: - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 4: - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - } - - break; - case 2: - switch (dir_0.ordinal) { - case 1: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - break; - case 4: - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - } - - break; - case 1: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - break; - case 4: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - } - - break; - case 4: - switch (dir_0.ordinal) { - case 2: - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 1: - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 3: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - } - - break; - case 3: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 1: - $mirrorHitboxes(this$static); - $transposeHitboxes(this$static); - $mirrorHitboxes(this$static); - $calculateConstraints(this$static); - break; - case 4: - $mirrorHitboxes(this$static); - $reverseConstraints(this$static); - } - - } - return this$static; -} - -function $compact(this$static){ - var g, g$iterator, n, n$iterator; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection(this$static, LEFT_6); - for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 307); - g.outDegree = g.outDegreeReal; - } - for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - n.startPos = $intern_60; - } - this$static.compactionAlgorithm.compact(this$static); - return this$static; -} - -function $isLocked(this$static, group, dir_0){ - var n, n$iterator; - for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if ($isLocked_0(this$static, n, dir_0)) { - return true; - } - } - return false; -} - -function $isLocked_0(this$static, node, dir_0){ - if (this$static.lockFun) { - return this$static.lockFun.isLocked(node, dir_0); - } - return false; -} - -function $lambda$0_5(this$static, p_0){ - this$static.direction == ($clinit_Direction_0() , LEFT_6) || this$static.direction == UP_1?castTo(p_0.first, 57).constraints.add_2(castTo(p_0.second, 57)):castTo(p_0.second, 57).constraints.add_2(castTo(p_0.first, 57)); -} - -function $mirrorHitboxes(this$static){ - var cNode, cNode$iterator; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; - } - $calculateGroupOffsets(this$static); -} - -function $reverseConstraints(this$static){ - var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; - incMap = new HashMap; - for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 57); - $put_6(incMap, cNode, new ArrayList); - } - for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator1), 57); - cNode.startPos = $intern_60; - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 57); - castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); - } - } - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.constraints.clear_0(); - cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); - } - $calculateConstraintsForCGroups(this$static); -} - -function $setCompactionAlgorithm(this$static, compactor){ - this$static.compactionAlgorithm = compactor; - return this$static; -} - -function $setConstraintAlgorithm(this$static, theConstraintAlgorithm){ - this$static.constraintAlgorithm = theConstraintAlgorithm; - return this$static; -} - -function $setLockFunction(this$static, fun){ - this$static.lockFun = fun; - return this$static; -} - -function $setSpacingsHandler(this$static, handler){ - this$static.spacingsHandler = handler; - return this$static; -} - -function $transposeHitboxes(this$static){ - var cNode, cNode$iterator, tmp; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - tmp = cNode.hitbox.x_0; - cNode.hitbox.x_0 = cNode.hitbox.y_0; - cNode.hitbox.y_0 = tmp; - tmp = cNode.hitbox.width_0; - cNode.hitbox.width_0 = cNode.hitbox.height; - cNode.hitbox.height = tmp; - tmp = cNode.cGroupOffset.x_0; - cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; - cNode.cGroupOffset.y_0 = tmp; - } - $calculateGroupOffsets(this$static); -} - -function OneDimensionalCompactor(cGraph){ - $clinit_OneDimensionalCompactor(); - var n, n$iterator; - this.compactionAlgorithm = LONGEST_PATH_COMPACTION; - this.constraintAlgorithm = SCANLINE_CONSTRAINTS; - this.spacingsHandler = ($clinit_ISpacingsHandler() , DEFAULT_SPACING_HANDLER); - this.direction = ($clinit_Direction_0() , UNDEFINED_2); - this.cGraph = cGraph; - $calculateGroupOffsets(this); - for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - !n.cGroup && $create($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [n])), cGraph); - n.hitboxPreCompaction = new ElkRectangle_1(n.hitbox); - } -} - -defineClass(1690, 1, {}, OneDimensionalCompactor); -_.finished = false; -var LONGEST_PATH_COMPACTION, QUADRATIC_CONSTRAINTS, SCANLINE_CONSTRAINTS; -var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor', 1690); -function OneDimensionalCompactor$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1691, 1, $intern_19, OneDimensionalCompactor$lambda$0$Type); -_.accept = function accept_44(arg0){ - $lambda$0_5(this.$$outer_0, castTo(arg0, 46)); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1691); -function QuadraticConstraintCalculation(){ -} - -defineClass(1791, 1, {}, QuadraticConstraintCalculation); -_.calculateConstraints = function calculateConstraints(compactor){ - var cNode, cNode$iterator, cNode1, cNode1$iterator, cNode2, cNode2$iterator, spacing; - for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.constraints.clear_0(); - } - for (cNode1$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode1$iterator.i < cNode1$iterator.this$01.array.length;) { - cNode1 = castTo($next_7(cNode1$iterator), 57); - for (cNode2$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode2$iterator.i < cNode2$iterator.this$01.array.length;) { - cNode2 = castTo($next_7(cNode2$iterator), 57); - if (cNode1 == cNode2) { - continue; - } - if (!!cNode1.cGroup && cNode1.cGroup == cNode2.cGroup) { - continue; - } - $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getVerticalSpacing(cNode1, cNode2)):(spacing = compactor.spacingsHandler.getHorizontalSpacing(cNode1, cNode2)); - (cNode2.hitbox.x_0 > cNode1.hitbox.x_0 || cNode1.hitbox.x_0 == cNode2.hitbox.x_0 && cNode1.hitbox.width_0 < cNode2.hitbox.width_0) && gt_0(cNode2.hitbox.y_0 + cNode2.hitbox.height + spacing, cNode1.hitbox.y_0) && lt_0(cNode2.hitbox.y_0, cNode1.hitbox.y_0 + cNode1.hitbox.height + spacing) && cNode1.constraints.add_2(cNode2); - } - } -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_QuadraticConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'QuadraticConstraintCalculation', 1791); -function $applyOr(this$static, other){ - this$static.left = this$static.left | other.left; - this$static.right = this$static.right | other.right; - this$static.up = this$static.up | other.up; - this$static.down = this$static.down | other.down; -} - -function $get_18(this$static, direction){ - switch (direction.ordinal) { - case 2: - return this$static.left; - case 1: - return this$static.right; - case 4: - return this$static.up; - case 3: - return this$static.down; - default:return false; - } -} - -function $set_3(this$static, value_0, direction){ - switch (direction.ordinal) { - case 2: - this$static.left = value_0; - break; - case 1: - this$static.right = value_0; - break; - case 4: - this$static.up = value_0; - break; - case 3: - this$static.down = value_0; - } -} - -function $set_4(this$static){ - this$static.left = false; - this$static.right = false; - this$static.up = false; - this$static.down = false; -} - -function Quadruplet(){ - $set_4(this); -} - -defineClass(522, 1, {522:1}, Quadruplet); -_.down = false; -_.left = false; -_.right = false; -_.up = false; -var Lorg_eclipse_elk_alg_common_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'Quadruplet', 522); -function $overlap(n1, n2){ - if (!n1 || !n2 || n1 == n2) { - return false; - } - return le(n1.hitbox.x_0, n2.hitbox.x_0 + n2.hitbox.width_0) && le(n2.hitbox.x_0, n1.hitbox.x_0 + n1.hitbox.width_0); -} - -function $sweep(this$static, filterFun){ - var n, n$iterator, points; - points = new ArrayList; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - if (filterFun.apply_1(n)) { - $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, true)); - $add_3(points, new ScanlineConstraintCalculator$Timestamp(n, false)); - } - } - $reset_1(this$static.constraintsScanlineHandler); - execute(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [this$static.constraintsScanlineHandler]))); -} - -function ScanlineConstraintCalculator(){ - this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type; - this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler(this); -} - -function lambda$0_7(p1_0, p2_1){ - var cmp, y1, y2; - y1 = p1_0.node.hitbox.y_0; - p1_0.low || (y1 += p1_0.node.hitbox.height); - y2 = p2_1.node.hitbox.y_0; - p2_1.low || (y2 += p2_1.node.hitbox.height); - cmp = compare_4(y1, y2); - if (cmp == 0) { - if (!p1_0.low && p2_1.low) { - return -1; - } - else if (!p2_1.low && p1_0.low) { - return 1; - } - } - return cmp; -} - -defineClass(803, 1, {}, ScanlineConstraintCalculator); -_.calculateConstraints = function calculateConstraints_0(theCompactor){ - this.compactor = theCompactor; - $sweep(this, new ScanlineConstraintCalculator$lambda$1$Type); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator', 803); -function $handle(this$static, p){ - var left, right; - p.low?$insert_2(this$static, p):(left = castTo($lower(this$static.intervals, p.node), 57) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right = castTo($higher(this$static.intervals, p.node), 57) , !!right && this$static.cand[right.id_0] == p.node && !!right.cGroup && right.cGroup != p.node.cGroup && p.node.constraints.add_2(right) , $remove_28(this$static.intervals, p.node) , undefined); -} - -function $insert_2(this$static, p){ - var right, success; - success = $add_10(this$static.intervals, p.node); - if (!success) { - throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline constraint calculation.')); - } - ($overlap(p.node, castTo($floor(this$static.intervals, p.node), 57)) || $overlap(p.node, castTo($ceiling(this$static.intervals, p.node), 57))) && ($clinit_System() , p.node + ' has overlap.'); - this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 57); - right = castTo($higher(this$static.intervals, p.node), 57); - !!right && (this$static.cand[right.id_0] = p.node); -} - -function $reset_1(this$static){ - var index_0, n, n$iterator; - $clear_8(this$static.intervals.map_0); - this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, $intern_2, 57, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); - index_0 = 0; - for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 57); - n.id_0 = index_0++; - } -} - -function ScanlineConstraintCalculator$ConstraintsScanlineHandler(this$0){ - this.this$01 = this$0; - this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type), 62)); -} - -function lambda$0_8(c1_0, c2_1){ - return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); -} - -defineClass(1718, 1, {679:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler); -_.handle = function handle(p){ - $handle(this, castTo(p, 464)); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1718); -function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type(){ -} - -defineClass(1719, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type); -_.compare_1 = function compare_13(arg0, arg1){ - return lambda$0_8(castTo(arg0, 57), castTo(arg1, 57)); -} -; -_.equals_0 = function equals_64(other){ - return this === other; -} -; -_.reversed = function reversed_5(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1719); -function ScanlineConstraintCalculator$Timestamp(node, low){ - this.node = node; - this.low = low; -} - -defineClass(464, 1, {464:1}, ScanlineConstraintCalculator$Timestamp); -_.low = false; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/Timestamp', 464); -function ScanlineConstraintCalculator$lambda$0$Type(){ -} - -defineClass(1720, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type); -_.compare_1 = function compare_14(arg0, arg1){ - return lambda$0_7(castTo(arg0, 464), castTo(arg1, 464)); -} -; -_.equals_0 = function equals_65(other){ - return this === other; -} -; -_.reversed = function reversed_6(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$0$Type', 1720); -function ScanlineConstraintCalculator$lambda$1$Type(){ -} - -defineClass(1721, 1, $intern_89, ScanlineConstraintCalculator$lambda$1$Type); -_.apply_1 = function apply_38(arg0){ - return castTo(arg0, 57) , true; -} -; -_.equals_0 = function equals_66(other){ - return this === other; -} -; -_.test_0 = function test_6(input_0){ - return castTo(input_0, 57) , true; -} -; -var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/lambda$1$Type', 1721); -function $clinit_HighLevelSortingCriterion(){ - $clinit_HighLevelSortingCriterion = emptyMethod; - NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST = new HighLevelSortingCriterion('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST', 0); - CORNER_CASES_THAN_SINGLE_SIDE_LAST = new HighLevelSortingCriterion('CORNER_CASES_THAN_SINGLE_SIDE_LAST', 1); -} - -function HighLevelSortingCriterion(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_14(name_0){ - $clinit_HighLevelSortingCriterion(); - return valueOf(($clinit_HighLevelSortingCriterion$Map() , $MAP_2), name_0); -} - -function values_20(){ - $clinit_HighLevelSortingCriterion(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]); -} - -defineClass(428, 22, {3:1, 35:1, 22:1, 428:1}, HighLevelSortingCriterion); -var CORNER_CASES_THAN_SINGLE_SIDE_LAST, NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST; -var Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'HighLevelSortingCriterion', 428, Ljava_lang_Enum_2_classLit, values_20, valueOf_14); -function $clinit_HighLevelSortingCriterion$Map(){ - $clinit_HighLevelSortingCriterion$Map = emptyMethod; - $MAP_2 = createValueOfMap(($clinit_HighLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit, 1), $intern_36, 428, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]))); -} - -var $MAP_2; -function $clinit_LowLevelSortingCriterion(){ - $clinit_LowLevelSortingCriterion = emptyMethod; - BY_SIZE = new LowLevelSortingCriterion('BY_SIZE', 0); - BY_SIZE_AND_SHAPE = new LowLevelSortingCriterion('BY_SIZE_AND_SHAPE', 1); -} - -function LowLevelSortingCriterion(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_15(name_0){ - $clinit_LowLevelSortingCriterion(); - return valueOf(($clinit_LowLevelSortingCriterion$Map() , $MAP_3), name_0); -} - -function values_21(){ - $clinit_LowLevelSortingCriterion(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]); -} - -defineClass(427, 22, {3:1, 35:1, 22:1, 427:1}, LowLevelSortingCriterion); -var BY_SIZE, BY_SIZE_AND_SHAPE; -var Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'LowLevelSortingCriterion', 427, Ljava_lang_Enum_2_classLit, values_21, valueOf_15); -function $clinit_LowLevelSortingCriterion$Map(){ - $clinit_LowLevelSortingCriterion$Map = emptyMethod; - $MAP_3 = createValueOfMap(($clinit_LowLevelSortingCriterion() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit, 1), $intern_36, 427, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]))); -} - -var $MAP_3; -var Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit = createForInterface('org.eclipse.elk.core.data', 'ILayoutMetaDataProvider'); -function $clinit_PolyominoOptions(){ - $clinit_PolyominoOptions = emptyMethod; - POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT = ($clinit_TraversalStrategy() , QUADRANTS_LINE_BY_LINE); - POLYOMINO_TRAVERSAL_STRATEGY = new Property_1('org.eclipse.elk.polyomino.traversalStrategy', POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT); - POLYOMINO_LOW_LEVEL_SORT_DEFAULT = ($clinit_LowLevelSortingCriterion() , BY_SIZE_AND_SHAPE); - POLYOMINO_LOW_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.lowLevelSort', POLYOMINO_LOW_LEVEL_SORT_DEFAULT); - POLYOMINO_HIGH_LEVEL_SORT_DEFAULT = ($clinit_HighLevelSortingCriterion() , NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST); - POLYOMINO_HIGH_LEVEL_SORT = new Property_1('org.eclipse.elk.polyomino.highLevelSort', POLYOMINO_HIGH_LEVEL_SORT_DEFAULT); - POLYOMINO_FILL = new Property_1('org.eclipse.elk.polyomino.fill', ($clinit_Boolean() , true)); -} - -function PolyominoOptions(){ - $clinit_PolyominoOptions(); -} - -defineClass(853, 1, $intern_90, PolyominoOptions); -_.apply_4 = function apply_39(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.traversalStrategy'), 'polyomino'), 'Polyomino Traversal Strategy'), 'Traversal strategy for trying different candidate positions for polyominoes.'), POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.lowLevelSort'), 'polyomino'), 'Polyomino Secondary Sorting Criterion'), 'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'), POLYOMINO_LOW_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_LowLevelSortingCriterion_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.highLevelSort'), 'polyomino'), 'Polyomino Primary Sorting Criterion'), 'Possible primary sorting criteria for the processing order of polyominoes.'), POLYOMINO_HIGH_LEVEL_SORT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_common_compaction_options_HighLevelSortingCriterion_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.polyomino.fill'), 'polyomino'), 'Fill Polyominoes'), 'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); -} -; -var POLYOMINO_FILL, POLYOMINO_HIGH_LEVEL_SORT, POLYOMINO_HIGH_LEVEL_SORT_DEFAULT, POLYOMINO_LOW_LEVEL_SORT, POLYOMINO_LOW_LEVEL_SORT_DEFAULT, POLYOMINO_TRAVERSAL_STRATEGY, POLYOMINO_TRAVERSAL_STRATEGY_DEFAULT; -var Lorg_eclipse_elk_alg_common_compaction_options_PolyominoOptions_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.options', 'PolyominoOptions', 853); -function $clinit_TraversalStrategy(){ - $clinit_TraversalStrategy = emptyMethod; - SPIRAL = new TraversalStrategy('SPIRAL', 0); - LINE_BY_LINE = new TraversalStrategy('LINE_BY_LINE', 1); - MANHATTAN = new TraversalStrategy('MANHATTAN', 2); - JITTER = new TraversalStrategy('JITTER', 3); - QUADRANTS_LINE_BY_LINE = new TraversalStrategy('QUADRANTS_LINE_BY_LINE', 4); - QUADRANTS_MANHATTAN = new TraversalStrategy('QUADRANTS_MANHATTAN', 5); - QUADRANTS_JITTER = new TraversalStrategy('QUADRANTS_JITTER', 6); - COMBINE_LINE_BY_LINE_MANHATTAN = new TraversalStrategy('COMBINE_LINE_BY_LINE_MANHATTAN', 7); - COMBINE_JITTER_MANHATTAN = new TraversalStrategy('COMBINE_JITTER_MANHATTAN', 8); -} - -function TraversalStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_16(name_0){ - $clinit_TraversalStrategy(); - return valueOf(($clinit_TraversalStrategy$Map() , $MAP_4), name_0); -} - -function values_22(){ - $clinit_TraversalStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]); -} - -defineClass(250, 22, {3:1, 35:1, 22:1, 250:1}, TraversalStrategy); -var COMBINE_JITTER_MANHATTAN, COMBINE_LINE_BY_LINE_MANHATTAN, JITTER, LINE_BY_LINE, MANHATTAN, QUADRANTS_JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, SPIRAL; -var Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.common.compaction.options', 'TraversalStrategy', 250, Ljava_lang_Enum_2_classLit, values_22, valueOf_16); -function $clinit_TraversalStrategy$Map(){ - $clinit_TraversalStrategy$Map = emptyMethod; - $MAP_4 = createValueOfMap(($clinit_TraversalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_options_TraversalStrategy_2_classLit, 1), $intern_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]))); -} - -var $MAP_4; -function $getOther(this$static, some_0){ - if (some_0 == this$static.source) { - return this$static.target; - } - else if (some_0 == this$static.target) { - return this$static.source; - } - else { - throw toJs(new IllegalArgumentException_0('Node ' + some_0 + ' not part of edge ' + this$static)); - } -} - -function NEdge(){ -} - -defineClass(213, 1, {213:1}, NEdge); -_.toString_0 = function toString_77(){ - return 'NEdge[id=' + this.id_0 + ' w=' + this.weight + ' d=' + this.delta + ']'; -} -; -_.delta = 1; -_.id_0 = 0; -_.internalId = 0; -_.treeEdge = false; -_.weight = 0; -var Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge', 213); -function $create_1(this$static){ - if (!this$static.edge.source || !this$static.edge.target) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NEdge_2_classLit.simpleName + ' must have a source and target ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit) , Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit.simpleName) + ' specified.'))); - } - if (this$static.edge.source == this$static.edge.target) { - throw toJs(new IllegalStateException_0('Network simplex does not support self-loops: ' + this$static.edge + ' ' + this$static.edge.source + ' ' + this$static.edge.target)); - } - $add_11(this$static.edge.source.outgoingEdges, this$static.edge); - $add_11(this$static.edge.target.incomingEdges, this$static.edge); - return this$static.edge; -} - -function $delta(this$static, delta){ - this$static.edge.delta = delta; - return this$static; -} - -function $source(this$static, source){ - this$static.edge.source = source; - return this$static; -} - -function $target(this$static, target){ - this$static.edge.target = target; - return this$static; -} - -function $weight(this$static, weight){ - this$static.edge.weight = weight; - return this$static; -} - -function NEdge$NEdgeBuilder(){ - this.edge = new NEdge; -} - -defineClass(176, 1, {}, NEdge$NEdgeBuilder); -var Lorg_eclipse_elk_alg_common_networksimplex_NEdge$NEdgeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge/NEdgeBuilder', 176); -function $createArtificialRootAndConnect(this$static, nodesToConnect){ - var root, src_0, src$iterator; - root = $create_2(new NNode$NNodeBuilder, this$static); - for (src$iterator = new ArrayList$1(nodesToConnect); src$iterator.i < src$iterator.this$01.array.length;) { - src_0 = castTo($next_7(src$iterator), 121); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0), root), src_0)); - } - return root; -} - -function $dfs(this$static, node, mark){ - var edge, edge$iterator, other; - if (mark[node.internalId]) { - return; - } - mark[node.internalId] = true; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - other = $getOther(edge, node); - $dfs(this$static, other, mark); - } -} - -function $findConCompRepresentatives(this$static){ - var ccRep, mark, node, node$iterator; - ccRep = new ArrayList; - mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.nodes.array.length, 16, 1); - fill0_3(mark, mark.length); - for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - if (!mark[node.internalId]) { - ccRep.array[ccRep.array.length] = node; - $dfs(this$static, node, mark); - } - } - return ccRep; -} - -function $makeConnected(this$static){ - var ccRep, id_0, n, n$iterator, root; - id_0 = 0; - for (n$iterator = new ArrayList$1(this$static.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 121); - n.internalId = id_0++; - } - ccRep = $findConCompRepresentatives(this$static); - root = null; - ccRep.array.length > 1 && (root = $createArtificialRootAndConnect(this$static, ccRep)); - return root; -} - -function NGraph(){ - this.nodes = new ArrayList; -} - -defineClass(653, 1, {}, NGraph); -var Lorg_eclipse_elk_alg_common_networksimplex_NGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NGraph', 653); -function $getConnectedEdges(this$static){ - if (this$static.incomingEdgesModCnt != this$static.incomingEdges.modCount || this$static.outgoingEdgesModCnt != this$static.outgoingEdges.modCount) { - this$static.allEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(this$static.allEdges, this$static.incomingEdges); - $addAll_2(this$static.allEdges, this$static.outgoingEdges); - this$static.incomingEdgesModCnt = this$static.incomingEdges.modCount; - this$static.outgoingEdgesModCnt = this$static.outgoingEdges.modCount; - } - return this$static.allEdges; -} - -function NNode(){ - this.outgoingEdges = new NNode$ChangeAwareArrayList; - this.incomingEdges = new NNode$ChangeAwareArrayList; - this.allEdges = new ArrayList; - this.unknownCutvalues = new ArrayList; -} - -defineClass(121, 1, {121:1}, NNode); -_.incomingEdgesModCnt = -1; -_.internalId = 0; -_.layer = 0; -_.outgoingEdgesModCnt = -1; -_.treeNode = false; -var Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode', 121); -function $add_11(this$static, e){ - ++this$static.modCount; - return $add_3(this$static.list, e); -} - -function $remove_29(this$static, o){ - ++this$static.modCount; - return $remove_12(this$static.list, o); -} - -function NNode$ChangeAwareArrayList(){ - this.list = new ArrayList; -} - -defineClass(795, 1, $intern_73, NNode$ChangeAwareArrayList); -_.forEach_0 = function forEach_24(action){ - $forEach_0(this, action); -} -; -_.parallelStream = function parallelStream_4(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.sort_0 = function sort_9(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_37(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_6(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.add_3 = function add_41(index_0, element){ - ++this.modCount; - $add_2(this.list, index_0, element); -} -; -_.add_2 = function add_42(e){ - return $add_11(this, e); -} -; -_.addAll_0 = function addAll_22(index_0, c){ - ++this.modCount; - return $addAll_1(this.list, index_0, c); -} -; -_.addAll = function addAll_23(c){ - ++this.modCount; - return $addAll_2(this.list, c); -} -; -_.clear_0 = function clear_51(){ - ++this.modCount; - this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} -; -_.contains = function contains_48(o){ - return $indexOf_3(this.list, o, 0) != -1; -} -; -_.containsAll = function containsAll_10(c){ - return $containsAll(this.list, c); -} -; -_.get_0 = function get_49(index_0){ - return $get_11(this.list, index_0); -} -; -_.indexOf_0 = function indexOf_7(o){ - return $indexOf_3(this.list, o, 0); -} -; -_.isEmpty = function isEmpty_25(){ - return this.list.array.length == 0; -} -; -_.iterator_0 = function iterator_66(){ - return unmodifiableIterator(new ArrayList$1(this.list)); -} -; -_.listIterator_0 = function listIterator_15(){ - throw toJs(new UnsupportedOperationException); -} -; -_.listIterator_1 = function listIterator_16(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_2 = function remove_90(index_0){ - ++this.modCount; - return $remove_11(this.list, index_0); -} -; -_.remove_1 = function remove_91(o){ - return $remove_29(this, o); -} -; -_.set_2 = function set_20(index_0, element){ - ++this.modCount; - return $set_1(this.list, index_0, element); -} -; -_.size_1 = function size_64(){ - return this.list.array.length; -} -; -_.subList = function subList_9(fromIndex, toIndex){ - return new AbstractList$SubList(this.list, fromIndex, toIndex); -} -; -_.toArray = function toArray_23(){ - return $toArray_1(this.list); -} -; -_.toArray_0 = function toArray_24(a){ - return $toArray_2(this.list, a); -} -; -_.modCount = 0; -var Lorg_eclipse_elk_alg_common_networksimplex_NNode$ChangeAwareArrayList_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/ChangeAwareArrayList', 795); -function $create_2(this$static, graph){ - $add_3(graph.nodes, this$static.node); - return this$static.node; -} - -function $origin_0(this$static, origin_0){ - this$static.node.origin_0 = origin_0; - return this$static; -} - -function NNode$NNodeBuilder(){ - this.node = new NNode; -} - -defineClass(269, 1, {}, NNode$NNodeBuilder); -var Lorg_eclipse_elk_alg_common_networksimplex_NNode$NNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/NNodeBuilder', 269); -function $balance(this$static, filling){ - var i, newLayer, node, node$iterator, range; - range = null; - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - if (node.incomingEdges.list.array.length == node.outgoingEdges.list.array.length) { - newLayer = node.layer; - range = $minimalSpan(node); - for (i = node.layer - castTo(range.first, 19).value_0 + 1; i < node.layer + castTo(range.second, 19).value_0; i++) { - filling[i] < filling[newLayer] && (newLayer = i); - } - if (filling[newLayer] < filling[node.layer]) { - --filling[node.layer]; - ++filling[newLayer]; - node.layer = newLayer; - } - } - } -} - -function $cutvalues(this$static){ - var edge, edge$iterator, leafs, node, node$iterator, node$iterator0, source, target, toDetermine, treeEdgeCount; - leafs = new ArrayList; - for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 121); - treeEdgeCount = 0; - node.unknownCutvalues.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (edge.treeEdge) { - $add_3(node.unknownCutvalues, edge); - ++treeEdgeCount; - } - } - treeEdgeCount == 1 && (leafs.array[leafs.array.length] = node , true); - } - for (node$iterator = new ArrayList$1(leafs); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - while (node.unknownCutvalues.array.length == 1) { - toDetermine = castTo($next_7(new ArrayList$1(node.unknownCutvalues)), 213); - this$static.cutvalue[toDetermine.internalId] = toDetermine.weight; - source = toDetermine.source; - target = toDetermine.target; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - equals_Ljava_lang_Object__Z__devirtual$(edge, toDetermine) || (edge.treeEdge?source == edge.source || target == edge.target?(this$static.cutvalue[toDetermine.internalId] -= this$static.cutvalue[edge.internalId] - edge.weight):(this$static.cutvalue[toDetermine.internalId] += this$static.cutvalue[edge.internalId] - edge.weight):node == source?edge.source == node?(this$static.cutvalue[toDetermine.internalId] += edge.weight):(this$static.cutvalue[toDetermine.internalId] -= edge.weight):edge.source == node?(this$static.cutvalue[toDetermine.internalId] -= edge.weight):(this$static.cutvalue[toDetermine.internalId] += edge.weight)); - } - $remove_12(source.unknownCutvalues, toDetermine); - $remove_12(target.unknownCutvalues, toDetermine); - source == node?(node = toDetermine.target):(node = toDetermine.source); - } - } -} - -function $enterEdge(this$static, leave){ - var edge, edge$iterator, repSlack, replace, slack, source, target; - if (!leave.treeEdge) { - throw toJs(new IllegalArgumentException_0('The input edge is not a tree edge.')); - } - replace = null; - repSlack = $intern_0; - for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - source = edge.source; - target = edge.target; - if ($isInHead(this$static, source, leave) && !$isInHead(this$static, target, leave)) { - slack = target.layer - source.layer - edge.delta; - if (slack < repSlack) { - repSlack = slack; - replace = edge; - } - } - } - return replace; -} - -function $exchange(this$static, leave, enter){ - var delta, node, node$iterator; - if (!leave.treeEdge) { - throw toJs(new IllegalArgumentException_0('Given leave edge is no tree edge.')); - } - if (enter.treeEdge) { - throw toJs(new IllegalArgumentException_0('Given enter edge is a tree edge already.')); - } - leave.treeEdge = false; - $remove_18(this$static.treeEdges, leave); - enter.treeEdge = true; - $add_6(this$static.treeEdges, enter); - delta = enter.target.layer - enter.source.layer - enter.delta; - $isInHead(this$static, enter.target, leave) || (delta = -delta); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - $isInHead(this$static, node, leave) || (node.layer += delta); - } - this$static.postOrder = 1; - fill_3(this$static.edgeVisited); - $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); - $cutvalues(this$static); -} - -function $execute_0(this$static, monitor){ - var e, iter, node, node$iterator, removeSubtrees; - $begin(monitor, 'Network simplex', 1); - if (this$static.graph_0.nodes.array.length < 1) { - $done_0(monitor); - return; - } - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.layer = 0; - } - removeSubtrees = this$static.graph_0.nodes.array.length >= 40; - removeSubtrees && $removeSubtrees(this$static); - $initialize(this$static); - $feasibleTree(this$static); - e = $leaveEdge(this$static); - iter = 0; - while (!!e && iter < this$static.iterationLimit) { - $exchange(this$static, e, $enterEdge(this$static, e)); - e = $leaveEdge(this$static); - ++iter; - } - removeSubtrees && $reattachSubtrees(this$static); - this$static.balance?$balance(this$static, $normalize(this$static)):$normalize(this$static); - this$static.cutvalue = null; - this$static.edges = null; - this$static.treeEdges = null; - this$static.edgeVisited = null; - this$static.lowestPoID = null; - this$static.poID = null; - this$static.sources = null; - this$static.subtreeNodesStack = null; - $done_0(monitor); -} - -function $feasibleTree(this$static){ - var e, node, node$iterator, slack; - $layeringTopologicalNumbering(this$static, this$static.sources); - if (this$static.edges.array.length > 0) { - fill_3(this$static.edgeVisited); - while ($tightTreeDFS(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)) < this$static.graph_0.nodes.array.length) { - e = $minimalSlack(this$static); - slack = e.target.layer - e.source.layer - e.delta; - e.target.treeNode && (slack = -slack); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.treeNode && (node.layer += slack); - } - fill_3(this$static.edgeVisited); - } - fill_3(this$static.edgeVisited); - $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); - $cutvalues(this$static); - } -} - -function $initialize(this$static){ - var counter, edge, edge$iterator, index_0, n, n$iterator, node, node$iterator, numEdges, numNodes, theEdges; - numNodes = this$static.graph_0.nodes.array.length; - for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 121); - n.treeNode = false; - } - this$static.poID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); - this$static.lowestPoID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); - this$static.sources = new ArrayList; - index_0 = 0; - theEdges = new ArrayList; - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.internalId = index_0++; - node.incomingEdges.list.array.length == 0 && $add_3(this$static.sources, node); - $addAll_2(theEdges, node.outgoingEdges); - } - counter = 0; - for (edge$iterator = new ArrayList$1(theEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - edge.internalId = counter++; - edge.treeEdge = false; - } - numEdges = theEdges.array.length; - if (this$static.cutvalue == null || this$static.cutvalue.length < numEdges) { - this$static.cutvalue = initUnidimensionalArray(D_classLit, $intern_65, 25, numEdges, 15, 1); - this$static.edgeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, numEdges, 16, 1); - } - else { - fill_3(this$static.edgeVisited); - } - this$static.edges = theEdges; - this$static.treeEdges = new LinkedHashSet_0(capacity_0(this$static.edges.array.length)); - this$static.postOrder = 1; -} - -function $isInHead(this$static, node, edge){ - var source, target; - source = edge.source; - target = edge.target; - if (this$static.lowestPoID[source.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[source.internalId] && this$static.lowestPoID[target.internalId] <= this$static.poID[node.internalId] && this$static.poID[node.internalId] <= this$static.poID[target.internalId]) { - if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { - return false; - } - return true; - } - if (this$static.poID[source.internalId] < this$static.poID[target.internalId]) { - return true; - } - return false; -} - -function $layeringTopologicalNumbering(this$static, initialRootNodes){ - var edge, edge$iterator, incident, node, node$iterator, roots, target; - incident = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.graph_0.nodes.array.length, 15, 1); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - incident[node.internalId] += node.incomingEdges.list.array.length; - } - roots = newLinkedList(initialRootNodes); - while (roots.size_0 != 0) { - node = castTo(roots.size_0 == 0?null:(checkCriticalElement(roots.size_0 != 0) , $removeNode_0(roots, roots.header.next_0)), 121); - for (edge$iterator = unmodifiableIterator(new ArrayList$1(node.outgoingEdges.list)); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 213); - target = edge.target; - target.layer = $wnd.Math.max(target.layer, node.layer + edge.delta); - --incident[target.internalId]; - incident[target.internalId] == 0 && ($addNode_0(roots, target, roots.tail.prev, roots.tail) , true); - } - } -} - -function $leaveEdge(this$static){ - var edge, edge$iterator; - for (edge$iterator = this$static.treeEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 213); - if (edge.treeEdge && this$static.cutvalue[edge.internalId] < -1.0E-10) { - return edge; - } - } - return null; -} - -function $minimalSlack(this$static){ - var curSlack, edge, edge$iterator, minSlack, minSlackEdge; - minSlack = $intern_0; - minSlackEdge = null; - for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (edge.source.treeNode ^ edge.target.treeNode) { - curSlack = edge.target.layer - edge.source.layer - edge.delta; - if (curSlack < minSlack) { - minSlack = curSlack; - minSlackEdge = edge; - } - } - } - return minSlackEdge; -} - -function $minimalSpan(node){ - var currentSpan, edge, edge$iterator, minSpanIn, minSpanOut; - minSpanOut = $intern_0; - minSpanIn = $intern_0; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - currentSpan = edge.target.layer - edge.source.layer; - edge.target == node && currentSpan < minSpanIn?(minSpanIn = currentSpan):currentSpan < minSpanOut && (minSpanOut = currentSpan); - } - minSpanIn == $intern_0 && (minSpanIn = -1); - minSpanOut == $intern_0 && (minSpanOut = -1); - return new Pair(valueOf_4(minSpanIn), valueOf_4(minSpanOut)); -} - -function $normalize(this$static){ - var filling, highest, layerID, lowest, node, node$iterator, node$iterator0, nodeCntInLayer, nodeCntInLayer$array, nodeCntInLayer$index, nodeCntInLayer$max; - highest = $intern_42; - lowest = $intern_0; - for (node$iterator0 = new ArrayList$1(this$static.graph_0.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 121); - lowest = $wnd.Math.min(lowest, node.layer); - highest = $wnd.Math.max(highest, node.layer); - } - filling = initUnidimensionalArray(I_classLit, $intern_48, 25, highest - lowest + 1, 15, 1); - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - node.layer -= lowest; - ++filling[node.layer]; - } - layerID = 0; - if (this$static.previousLayeringNodeCounts != null) { - for (nodeCntInLayer$array = this$static.previousLayeringNodeCounts , nodeCntInLayer$index = 0 , nodeCntInLayer$max = nodeCntInLayer$array.length; nodeCntInLayer$index < nodeCntInLayer$max; ++nodeCntInLayer$index) { - nodeCntInLayer = nodeCntInLayer$array[nodeCntInLayer$index]; - filling[layerID++] += nodeCntInLayer; - if (filling.length == layerID) { - break; - } - } - } - return filling; -} - -function $postorderTraversal(this$static, node){ - var edge, edge$iterator, lowest; - lowest = $intern_0; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (edge.treeEdge && !this$static.edgeVisited[edge.internalId]) { - this$static.edgeVisited[edge.internalId] = true; - lowest = $wnd.Math.min(lowest, $postorderTraversal(this$static, $getOther(edge, node))); - } - } - this$static.poID[node.internalId] = this$static.postOrder; - this$static.lowestPoID[node.internalId] = $wnd.Math.min(lowest, this$static.postOrder++); - return this$static.lowestPoID[node.internalId]; -} - -function $reattachSubtrees(this$static){ - var edge, leafy, node, placed; - while (!$isEmpty(this$static.subtreeNodesStack)) { - leafy = castTo($removeFirst(this$static.subtreeNodesStack), 46); - node = castTo(leafy.first, 121); - edge = castTo(leafy.second, 213); - placed = $getOther(edge, node); - if (edge.target == node) { - $add_11(placed.outgoingEdges, edge); - node.layer = placed.layer + edge.delta; - } - else { - $add_11(placed.incomingEdges, edge); - node.layer = placed.layer - edge.delta; - } - $add_3(this$static.graph_0.nodes, node); - } -} - -function $removeSubtrees(this$static){ - var edge, isOutEdge, leafs, leafy, node, node$iterator, other; - this$static.subtreeNodesStack = new ArrayDeque; - leafs = new LinkedList; - for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 121); - $getConnectedEdges(node).array.length == 1 && ($addNode_0(leafs, node, leafs.tail.prev, leafs.tail) , true); - } - while (leafs.size_0 != 0) { - node = castTo(leafs.size_0 == 0?null:(checkCriticalElement(leafs.size_0 != 0) , $removeNode_0(leafs, leafs.header.next_0)), 121); - if ($getConnectedEdges(node).array.length == 0) { - continue; - } - edge = castTo($get_11($getConnectedEdges(node), 0), 213); - isOutEdge = node.outgoingEdges.list.array.length > 0; - other = $getOther(edge, node); - isOutEdge?$remove_29(other.incomingEdges, edge):$remove_29(other.outgoingEdges, edge); - $getConnectedEdges(other).array.length == 1 && ($addNode_0(leafs, other, leafs.tail.prev, leafs.tail) , true); - leafy = new Pair(node, edge); - $addFirst(this$static.subtreeNodesStack, leafy); - $remove_12(this$static.graph_0.nodes, node); - } -} - -function $tightTreeDFS(this$static, node){ - var edge, edge$iterator, nodeCount, opposite; - nodeCount = 1; - node.treeNode = true; - opposite = null; - for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 213); - if (!this$static.edgeVisited[edge.internalId]) { - this$static.edgeVisited[edge.internalId] = true; - opposite = $getOther(edge, node); - if (edge.treeEdge) { - nodeCount += $tightTreeDFS(this$static, opposite); - } - else if (!opposite.treeNode && edge.delta == edge.target.layer - edge.source.layer) { - edge.treeEdge = true; - $add_6(this$static.treeEdges, edge); - nodeCount += $tightTreeDFS(this$static, opposite); - } - } - } - return nodeCount; -} - -function $withBalancing(this$static, doBalance){ - this$static.balance = doBalance; - return this$static; -} - -function $withIterationLimit(this$static, limit){ - this$static.iterationLimit = limit; - return this$static; -} - -function $withPreviousLayering(this$static, considerPreviousLayering){ - this$static.previousLayeringNodeCounts = considerPreviousLayering; - return this$static; -} - -function NetworkSimplex(){ -} - -function forGraph(graph){ - var ns; - ns = new NetworkSimplex; - ns.graph_0 = graph; - return ns; -} - -defineClass(1630, 1, {}, NetworkSimplex); -_.balance = false; -_.iterationLimit = $intern_0; -_.postOrder = 0; -var Lorg_eclipse_elk_alg_common_networksimplex_NetworkSimplex_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NetworkSimplex', 1630); -function calculateLabelAndNodeSizes(adapter){ - $forEach_1(adapter.getNodes(), new NodeLabelAndSizeCalculator$lambda$0$Type(adapter)); -} - -function sortPortLists(adapter){ - var node, node$iterator; - for (node$iterator = new ArrayList$1($getNodes(adapter)); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 680); - node.sortPortList(); - } -} - -function computeInsideNodeLabelPadding(node, layoutDirection){ - var col, col$array, col$array0, col$index, col$index0, col$max, col$max0, labelCell, labelCellContainer, nodeContext, padding, row, row$array, row$array0, row$index, row$index0, row$max, row$max0; - nodeContext = new NodeContext(node); - createNodeLabelCells(nodeContext, !(layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1)); - labelCellContainer = nodeContext.insideNodeLabelContainer; - padding = new ElkPadding; - for (col$array0 = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , col$index0 = 0 , col$max0 = col$array0.length; col$index0 < col$max0; ++col$index0) { - col = col$array0[col$index0]; - labelCell = $getCell(labelCellContainer, BEGIN, col); - !!labelCell && (padding.top_0 = $wnd.Math.max(padding.top_0, labelCell.getMinimumHeight())); - } - for (col$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , col$index = 0 , col$max = col$array.length; col$index < col$max; ++col$index) { - col = col$array[col$index]; - labelCell = $getCell(labelCellContainer, END, col); - !!labelCell && (padding.bottom = $wnd.Math.max(padding.bottom, labelCell.getMinimumHeight())); - } - for (row$array0 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index0 = 0 , row$max0 = row$array0.length; row$index0 < row$max0; ++row$index0) { - row = row$array0[row$index0]; - labelCell = $getCell(labelCellContainer, row, BEGIN); - !!labelCell && (padding.left = $wnd.Math.max(padding.left, labelCell.getMinimumWidth())); - } - for (row$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - labelCell = $getCell(labelCellContainer, row, END); - !!labelCell && (padding.right = $wnd.Math.max(padding.right, labelCell.getMinimumWidth())); - } - if (padding.top_0 > 0) { - padding.top_0 += labelCellContainer.padding.top_0; - padding.top_0 += labelCellContainer.gap; - } - if (padding.bottom > 0) { - padding.bottom += labelCellContainer.padding.bottom; - padding.bottom += labelCellContainer.gap; - } - if (padding.left > 0) { - padding.left += labelCellContainer.padding.left; - padding.left += labelCellContainer.gap; - } - if (padding.right > 0) { - padding.right += labelCellContainer.padding.right; - padding.right += labelCellContainer.gap; - } - return padding; -} - -function process(graph, node, applyStuff, ignoreInsidePortLabels){ - var horizontalLayoutMode, layoutDirection, minSize, nodeContext, outerNodeLabelsOverhang; - nodeContext = new NodeContext(node); - createPortContexts(nodeContext, ignoreInsidePortLabels); - horizontalLayoutMode = true; - if (!!graph && graph.hasProperty(($clinit_CoreOptions() , DIRECTION_0))) { - layoutDirection = castTo(graph.getProperty(($clinit_CoreOptions() , DIRECTION_0)), 103); - horizontalLayoutMode = layoutDirection == ($clinit_Direction_0() , UNDEFINED_2) || layoutDirection == LEFT_6 || layoutDirection == RIGHT_6; - } - createNodeLabelCellContainers(nodeContext, false); - $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, false, horizontalLayoutMode)); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, ($clinit_ContainerArea() , BEGIN), ($clinit_PortSide() , NORTH_3)); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainer, END, SOUTH_2); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, BEGIN, WEST_2); - createInsidePortLabelCell(nodeContext, nodeContext.nodeContainerMiddleRow, END, EAST_2); - setupNorthOrSouthPortLabelCell(nodeContext, NORTH_3); - setupNorthOrSouthPortLabelCell(nodeContext, SOUTH_2); - setupEastOrWestPortLabelCell(nodeContext, EAST_2); - setupEastOrWestPortLabelCell(nodeContext, WEST_2); - $clinit_NodeLabelAndSizeUtilities(); - minSize = nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE)) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))?getMinimumNodeOrClientAreaSize(nodeContext):null; - !!minSize && $setCenterCellMinimumSize(nodeContext.insideNodeLabelContainer, minSize); - setupNodePaddingForPortsWithOffset(nodeContext); - calculateHorizontalPortPlacementSize(nodeContext); - calculateVerticalPortPlacementSize(nodeContext); - configureCellSystemSizeContributions(nodeContext); - setNodeWidth(nodeContext); - placeHorizontalPorts(nodeContext); - placePortLabels(nodeContext, NORTH_3); - placePortLabels(nodeContext, SOUTH_2); - updateVerticalInsidePortLabelCellPadding(nodeContext); - setNodeHeight(nodeContext); - if (!applyStuff) { - return nodeContext.nodeSize; - } - offsetSouthernPortsByNodeSize(nodeContext); - placeVerticalPorts(nodeContext); - placePortLabels(nodeContext, EAST_2); - placePortLabels(nodeContext, WEST_2); - outerNodeLabelsOverhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); - placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, NORTH_3); - placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, SOUTH_2); - placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, EAST_2); - placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, WEST_2); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$2(nodeContext.nodeLabelCells), 0)), new LabelPlacer$lambda$0$Type); - $forEach_3($filter(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new LabelPlacer$lambda$1$Type), new LabelPlacer$lambda$2$Type); - setNodePadding(nodeContext); - nodeContext.node.setSize(nodeContext.nodeSize); - $forEach_3(new StreamImpl(null, $values_0(nodeContext.portContexts).this$01.valueSpliterator()), new NodeLabelAndSizeUtilities$lambda$0$Type); - return nodeContext.nodeSize; -} - -function NodeLabelAndSizeCalculator$lambda$0$Type(graph_0){ - this.graph_0 = graph_0; -} - -defineClass(1294, 1, $intern_19, NodeLabelAndSizeCalculator$lambda$0$Type); -_.accept = function accept_45(arg0){ - process(this.graph_0, castTo(arg0, 680), true, false); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_NodeLabelAndSizeCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeLabelAndSizeCalculator/lambda$0$Type', 1294); -function $computeLabelBox(labelBox, label_0, incomingEdge, node, port, portLabelSpace, labelSpacing){ - labelBox.x_0 = node.getPosition().x_0; - labelBox.y_0 = node.getPosition().y_0; - if (port) { - labelBox.x_0 += port.getPosition().x_0; - labelBox.y_0 += port.getPosition().y_0; - } - labelBox.width_0 = label_0.getSize().x_0; - labelBox.height = label_0.getSize().y_0; - if (!port) { - incomingEdge?(labelBox.x_0 -= labelSpacing + label_0.getSize().x_0):(labelBox.x_0 += node.getSize().x_0 + labelSpacing); - } - else { - switch (port.getSide().ordinal) { - case 0: - case 2: - labelBox.x_0 += port.getSize().x_0 + labelSpacing + portLabelSpace.x_0 + labelSpacing; - break; - case 4: - labelBox.x_0 -= labelSpacing + portLabelSpace.x_0 + labelSpacing + label_0.getSize().x_0; - break; - case 1: - labelBox.x_0 += port.getSize().x_0 + labelSpacing; - labelBox.y_0 -= labelSpacing + portLabelSpace.y_0 + labelSpacing + label_0.getSize().y_0; - break; - case 3: - labelBox.x_0 += port.getSize().x_0 + labelSpacing; - labelBox.y_0 += port.getSize().y_0 + labelSpacing + portLabelSpace.y_0 + labelSpacing; - } - } -} - -function $excludeEdgeHeadTailLabels(this$static){ - this$static.includeEdgeHeadTailLabels = false; - return this$static; -} - -function $process(this$static){ - var node, node$iterator, spacing; - spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); - for (node$iterator = new ArrayList$1(this$static.adapter.getNodes()); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 680); - $processNode_0(this$static, node, spacing); - } -} - -function $processEdgeHeadTailLabels(boundingBox, outgoingEdges, incomingEdges, node, port, portLabelSpace, labelSpacing){ - var edge, edge$iterator, edge$iterator0, label_0, label$iterator, labelBox; - labelBox = new ElkRectangle; - for (edge$iterator0 = outgoingEdges.iterator_0(); edge$iterator0.hasNext_0();) { - edge = castTo(edge$iterator0.next_1(), 839); - for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL))) { - $computeLabelBox(labelBox, label_0, false, node, port, portLabelSpace, labelSpacing); - $union(boundingBox, labelBox); - } - } - } - for (edge$iterator = incomingEdges.iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 839); - for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - if (maskUndefined(label_0.getProperty(($clinit_CoreOptions() , EDGE_LABELS_PLACEMENT_0))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { - $computeLabelBox(labelBox, label_0, true, node, port, portLabelSpace, labelSpacing); - $union(boundingBox, labelBox); - } - } - } -} - -function $processNode(this$static, node){ - var spacing; - spacing = $doubleValue(castToDouble(this$static.adapter.getProperty(($clinit_CoreOptions() , SPACING_LABEL_NODE_0)))); - $processNode_0(this$static, node, spacing); -} - -function $processNode_0(this$static, node, labelSpacing){ - var boundingBox, elementBox, label_0, label$iterator, margin, port, port$iterator, portX, portY, requiredPortLabelSpace; - boundingBox = new ElkRectangle_0(node.getPosition().x_0, node.getPosition().y_0, node.getSize().x_0, node.getSize().y_0); - elementBox = new ElkRectangle; - if (this$static.includeLabels) { - for (label$iterator = new ArrayList$1(node.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - elementBox.x_0 = label_0.getPosition().x_0 + node.getPosition().x_0; - elementBox.y_0 = label_0.getPosition().y_0 + node.getPosition().y_0; - elementBox.width_0 = label_0.getSize().x_0; - elementBox.height = label_0.getSize().y_0; - $union(boundingBox, elementBox); - } - } - for (port$iterator = new ArrayList$1(node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 838); - portX = port.getPosition().x_0 + node.getPosition().x_0; - portY = port.getPosition().y_0 + node.getPosition().y_0; - if (this$static.includePorts) { - elementBox.x_0 = portX; - elementBox.y_0 = portY; - elementBox.width_0 = port.getSize().x_0; - elementBox.height = port.getSize().y_0; - $union(boundingBox, elementBox); - } - if (this$static.includePortLabels) { - for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - elementBox.x_0 = label_0.getPosition().x_0 + portX; - elementBox.y_0 = label_0.getPosition().y_0 + portY; - elementBox.width_0 = label_0.getSize().x_0; - elementBox.height = label_0.getSize().y_0; - $union(boundingBox, elementBox); - } - } - if (this$static.includeEdgeHeadTailLabels) { - requiredPortLabelSpace = new KVector_1(-labelSpacing, -labelSpacing); - if (castTo(node.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).contains(($clinit_PortLabelPlacement() , OUTSIDE_0))) { - for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - requiredPortLabelSpace.x_0 += label_0.getSize().x_0 + labelSpacing; - requiredPortLabelSpace.y_0 += label_0.getSize().y_0 + labelSpacing; - } - } - requiredPortLabelSpace.x_0 = $wnd.Math.max(requiredPortLabelSpace.x_0, 0); - requiredPortLabelSpace.y_0 = $wnd.Math.max(requiredPortLabelSpace.y_0, 0); - $processEdgeHeadTailLabels(boundingBox, port.getOutgoingEdges(), port.getIncomingEdges(), node, port, requiredPortLabelSpace, labelSpacing); - } - } - this$static.includeEdgeHeadTailLabels && $processEdgeHeadTailLabels(boundingBox, node.getOutgoingEdges(), node.getIncomingEdges(), node, null, null, labelSpacing); - margin = new ElkMargin_2(node.getMargin()); - margin.top_0 = $wnd.Math.max(0, node.getPosition().y_0 - boundingBox.y_0); - margin.bottom = $wnd.Math.max(0, boundingBox.y_0 + boundingBox.height - (node.getPosition().y_0 + node.getSize().y_0)); - margin.left = $wnd.Math.max(0, node.getPosition().x_0 - boundingBox.x_0); - margin.right = $wnd.Math.max(0, boundingBox.x_0 + boundingBox.width_0 - (node.getPosition().x_0 + node.getSize().x_0)); - node.setMargin(margin); -} - -function NodeMarginCalculator(adapter){ - this.adapter = adapter; -} - -defineClass(558, 1, {}, NodeMarginCalculator); -_.includeEdgeHeadTailLabels = true; -_.includeLabels = true; -_.includePortLabels = true; -_.includePorts = true; -var Lorg_eclipse_elk_alg_common_nodespacing_NodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing', 'NodeMarginCalculator', 558); -function $setContributesToMinimumHeight(this$static, contributesToMinimumHeight){ - this$static.contributesToMinimumHeight = contributesToMinimumHeight; -} - -function Cell(){ - this.padding = new ElkPadding; - this.cellRectangle = new ElkRectangle; -} - -defineClass(212, 1, {212:1}); -_.contributesToMinimumHeight = false; -_.contributesToMinimumWidth = false; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'Cell', 212); -function $getMinimumHeight(this$static){ - var padding; - padding = this$static.padding; - return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; -} - -function AtomicCell(){ - Cell.call(this); - this.minimumContentAreaSize = new KVector; -} - -defineClass(124, 212, {124:1, 212:1}, AtomicCell); -_.getMinimumHeight = function getMinimumHeight(){ - return $getMinimumHeight(this); -} -; -_.getMinimumWidth = function getMinimumWidth(){ - var padding; - padding = this.padding; - return this.minimumContentAreaSize.x_0 + padding.left + padding.right; -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_AtomicCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'AtomicCell', 124); -function $clinit_ContainerArea(){ - $clinit_ContainerArea = emptyMethod; - BEGIN = new ContainerArea('BEGIN', 0); - CENTER = new ContainerArea('CENTER', 1); - END = new ContainerArea('END', 2); -} - -function ContainerArea(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_17(name_0){ - $clinit_ContainerArea(); - return valueOf(($clinit_ContainerArea$Map() , $MAP_5), name_0); -} - -function values_23(){ - $clinit_ContainerArea(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]); -} - -defineClass(232, 22, {3:1, 35:1, 22:1, 232:1}, ContainerArea); -var BEGIN, CENTER, END; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerArea', 232, Ljava_lang_Enum_2_classLit, values_23, valueOf_17); -function $clinit_ContainerArea$Map(){ - $clinit_ContainerArea$Map = emptyMethod; - $MAP_5 = createValueOfMap(($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END]))); -} - -var $MAP_5; -function $applyHorizontalLayout(cell, x_0, width_0){ - var cellRect; - if (cell) { - cellRect = cell.cellRectangle; - cellRect.x_0 = x_0; - cellRect.width_0 = width_0; - } -} - -function $applyVerticalLayout(cell, y_0, height){ - var cellRect; - if (cell) { - cellRect = cell.cellRectangle; - cellRect.y_0 = y_0; - cellRect.height = height; - } -} - -function ContainerCell(){ - Cell.call(this); -} - -function minHeightOfCell(cell, respectContributionFlag){ - if (!cell) { - return 0; - } - if (respectContributionFlag && !cell.contributesToMinimumHeight) { - return 0; - } - if (instanceOf(cell, 124)) { - if (castTo(cell, 124).minimumContentAreaSize.y_0 == 0) { - return 0; - } - } - return cell.getMinimumHeight(); -} - -function minWidthOfCell(cell, respectContributionFlag){ - if (!cell) { - return 0; - } - if (respectContributionFlag && !cell.contributesToMinimumWidth) { - return 0; - } - if (instanceOf(cell, 124)) { - if (castTo(cell, 124).minimumContentAreaSize.x_0 == 0) { - return 0; - } - } - return cell.getMinimumWidth(); -} - -defineClass(326, 212, $intern_92); -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerCell', 326); -function $clinit_GridContainerCell(){ - $clinit_GridContainerCell = emptyMethod; - ROWS = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length; - COLUMNS = ROWS; -} - -function $applyHeightToRow(this$static, row, y_0, rowHeights){ - var column; - for (column = 0; column < COLUMNS; column++) { - $applyVerticalLayout(this$static.cells_0[row.ordinal][column], y_0, rowHeights[row.ordinal]); - } -} - -function $applyWidthToColumn(this$static, column, x_0, colWidths){ - var row; - for (row = 0; row < ROWS; row++) { - $applyHorizontalLayout(this$static.cells_0[row][column.ordinal], x_0, colWidths[column.ordinal]); - } -} - -function $applyWidthsToRow(this$static, row, colWidths){ - var cellPadding, cellRectangle, centerWidth, freeContentAreaWidth; - cellRectangle = this$static.cellRectangle; - cellPadding = this$static.padding; - $applyWidthToColumn(this$static, ($clinit_ContainerArea() , BEGIN), cellRectangle.x_0 + cellPadding.left, colWidths); - $applyWidthToColumn(this$static, END, cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - colWidths[2], colWidths); - freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; - if (colWidths[0] > 0) { - colWidths[0] += this$static.gap; - freeContentAreaWidth -= colWidths[0]; - } - if (colWidths[2] > 0) { - colWidths[2] += this$static.gap; - freeContentAreaWidth -= colWidths[2]; - } - centerWidth = $wnd.Math.max(0, freeContentAreaWidth); - colWidths[1] = $wnd.Math.max(colWidths[1], freeContentAreaWidth); - $applyWidthToColumn(this$static, CENTER, cellRectangle.x_0 + cellPadding.left + colWidths[0] - (colWidths[1] - freeContentAreaWidth) / 2, colWidths); - if (row == CENTER) { - this$static.centerCellRect.width_0 = centerWidth; - this$static.centerCellRect.x_0 = cellRectangle.x_0 + cellPadding.left + (centerWidth - freeContentAreaWidth) / 2; - } -} - -function $getCell(this$static, row, col){ - return this$static.cells_0[row.ordinal][col.ordinal]; -} - -function $minColumnWidths(this$static, row, respectContributionFlag){ - var colWidths; - colWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minWidthOfColumn(this$static, ($clinit_ContainerArea() , BEGIN), row, respectContributionFlag), $minWidthOfColumn(this$static, CENTER, row, respectContributionFlag), $minWidthOfColumn(this$static, END, row, respectContributionFlag)]); - if (this$static.symmetrical) { - colWidths[0] = $wnd.Math.max(colWidths[0], colWidths[2]); - colWidths[2] = colWidths[0]; - } - return colWidths; -} - -function $minHeightOfRow(this$static, row, respectContributionFlag){ - var column, maxMinHeight; - maxMinHeight = 0; - for (column = 0; column < COLUMNS; column++) { - maxMinHeight = $wnd.Math.max(maxMinHeight, minHeightOfCell(this$static.cells_0[row.ordinal][column], respectContributionFlag)); - } - row == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinHeight = $wnd.Math.max(maxMinHeight, this$static.centerCellMinimumSize.y_0)); - return maxMinHeight; -} - -function $minRowHeights(this$static, respectContributionFlag){ - var rowHeights; - rowHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [$minHeightOfRow(this$static, ($clinit_ContainerArea() , BEGIN), respectContributionFlag), $minHeightOfRow(this$static, CENTER, respectContributionFlag), $minHeightOfRow(this$static, END, respectContributionFlag)]); - if (this$static.symmetrical) { - rowHeights[0] = $wnd.Math.max(rowHeights[0], rowHeights[2]); - rowHeights[2] = rowHeights[0]; - } - return rowHeights; -} - -function $minWidthOfColumn(this$static, column, row, respectContributionFlag){ - var maxMinWidth, rowIndex; - maxMinWidth = 0; - if (!row) { - for (rowIndex = 0; rowIndex < ROWS; rowIndex++) { - maxMinWidth = $wnd.Math.max(maxMinWidth, minWidthOfCell(this$static.cells_0[rowIndex][column.ordinal], respectContributionFlag)); - } - } - else { - maxMinWidth = minWidthOfCell(this$static.cells_0[row.ordinal][column.ordinal], respectContributionFlag); - } - column == ($clinit_ContainerArea() , CENTER) && !!this$static.centerCellMinimumSize && (maxMinWidth = $wnd.Math.max(maxMinWidth, this$static.centerCellMinimumSize.x_0)); - return maxMinWidth; -} - -function $setCell(this$static, row, col, cell){ - setCheck(this$static.cells_0[row.ordinal], col.ordinal, cell); -} - -function $setCenterCellMinimumSize(this$static, minimumSize){ - this$static.centerCellMinimumSize = new KVector_2(minimumSize); -} - -function $sumWithGaps(this$static, values){ - var activeComponents, sum, val, val$array, val$index, val$max; - sum = 0; - activeComponents = 0; - for (val$array = values , val$index = 0 , val$max = val$array.length; val$index < val$max; ++val$index) { - val = val$array[val$index]; - if (val > 0) { - sum += val; - ++activeComponents; - } - } - activeComponents > 1 && (sum += this$static.gap * (activeComponents - 1)); - return sum; -} - -function GridContainerCell(tabular, symmetrical, gap){ - $clinit_GridContainerCell(); - ContainerCell.call(this); - this.cells_0 = initMultidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, [$intern_16, $intern_93], [595, 212], 0, [ROWS, COLUMNS], 2); - this.centerCellRect = new ElkRectangle; - this.tabular = tabular; - this.symmetrical = symmetrical; - this.gap = gap; -} - -defineClass(1473, 326, $intern_92, GridContainerCell); -_.getMinimumHeight = function getMinimumHeight_0(){ - var height; - height = 0; - this.onlyCenterCellContributesToMinimumSize?this.centerCellMinimumSize?(height = this.centerCellMinimumSize.y_0):!!this.cells_0[1][1] && (height = this.cells_0[1][1].getMinimumHeight()):(height = $sumWithGaps(this, $minRowHeights(this, true))); - return height > 0?height + this.padding.top_0 + this.padding.bottom:0; -} -; -_.getMinimumWidth = function getMinimumWidth_0(){ - var area, area$array, area$index, area$max, width_0; - width_0 = 0; - if (this.onlyCenterCellContributesToMinimumSize) { - this.centerCellMinimumSize?(width_0 = this.centerCellMinimumSize.x_0):!!this.cells_0[1][1] && (width_0 = this.cells_0[1][1].getMinimumWidth()); - } - else if (this.tabular) { - width_0 = $sumWithGaps(this, $minColumnWidths(this, null, true)); - } - else { - for (area$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { - area = area$array[area$index]; - width_0 = $wnd.Math.max(width_0, $sumWithGaps(this, $minColumnWidths(this, area, true))); - } - } - return width_0 > 0?width_0 + this.padding.left + this.padding.right:0; -} -; -_.layoutChildrenHorizontally = function layoutChildrenHorizontally(){ - var colWidths, row, row$array, row$index, row$max; - if (this.tabular) { - colWidths = $minColumnWidths(this, null, false); - for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - $applyWidthsToRow(this, row, colWidths); - } - } - else { - for (row$array = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])) , row$index = 0 , row$max = row$array.length; row$index < row$max; ++row$index) { - row = row$array[row$index]; - colWidths = $minColumnWidths(this, row, false); - $applyWidthsToRow(this, row, colWidths); - } - } -} -; -_.layoutChildrenVertically = function layoutChildrenVertically(){ - var cellPadding, cellRectangle, freeContentAreaHeight, rowHeights; - cellRectangle = this.cellRectangle; - cellPadding = this.padding; - rowHeights = $minRowHeights(this, false); - $applyHeightToRow(this, ($clinit_ContainerArea() , BEGIN), cellRectangle.y_0 + cellPadding.top_0, rowHeights); - $applyHeightToRow(this, END, cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - rowHeights[2], rowHeights); - freeContentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; - if (rowHeights[0] > 0) { - rowHeights[0] += this.gap; - freeContentAreaHeight -= rowHeights[0]; - } - if (rowHeights[2] > 0) { - rowHeights[2] += this.gap; - freeContentAreaHeight -= rowHeights[2]; - } - this.centerCellRect.height = $wnd.Math.max(0, freeContentAreaHeight); - this.centerCellRect.y_0 = cellRectangle.y_0 + cellPadding.top_0 + (this.centerCellRect.height - freeContentAreaHeight) / 2; - rowHeights[1] = $wnd.Math.max(rowHeights[1], freeContentAreaHeight); - $applyHeightToRow(this, CENTER, cellRectangle.y_0 + cellPadding.top_0 + rowHeights[0] - (rowHeights[1] - freeContentAreaHeight) / 2, rowHeights); -} -; -_.centerCellMinimumSize = null; -_.gap = 0; -_.onlyCenterCellContributesToMinimumSize = false; -_.symmetrical = false; -_.tabular = false; -var COLUMNS = 0, ROWS = 0; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_GridContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'GridContainerCell', 1473); -function $clinit_HorizontalLabelAlignment(){ - $clinit_HorizontalLabelAlignment = emptyMethod; - LEFT = new HorizontalLabelAlignment('LEFT', 0); - CENTER_0 = new HorizontalLabelAlignment('CENTER', 1); - RIGHT = new HorizontalLabelAlignment('RIGHT', 2); -} - -function HorizontalLabelAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_18(name_0){ - $clinit_HorizontalLabelAlignment(); - return valueOf(($clinit_HorizontalLabelAlignment$Map() , $MAP_6), name_0); -} - -function values_24(){ - $clinit_HorizontalLabelAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]); -} - -defineClass(461, 22, {3:1, 35:1, 22:1, 461:1}, HorizontalLabelAlignment); -var CENTER_0, LEFT, RIGHT; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'HorizontalLabelAlignment', 461, Ljava_lang_Enum_2_classLit, values_24, valueOf_18); -function $clinit_HorizontalLabelAlignment$Map(){ - $clinit_HorizontalLabelAlignment$Map = emptyMethod; - $MAP_6 = createValueOfMap(($clinit_HorizontalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_HorizontalLabelAlignment_2_classLit, 1), $intern_36, 461, 0, [LEFT, CENTER_0, RIGHT]))); -} - -var $MAP_6; -function $$init_5(this$static){ - this$static.horizontalAlignment = ($clinit_HorizontalLabelAlignment() , CENTER_0); - this$static.verticalAlignment = ($clinit_VerticalLabelAlignment() , CENTER_1); - this$static.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); - this$static.minimumContentAreaSize = new KVector; -} - -function $addLabel(this$static, label_0){ - var labelSize; - $add_3(this$static.labels, label_0); - labelSize = label_0.getSize(); - if (this$static.horizontalLayoutMode) { - this$static.minimumContentAreaSize.x_0 = $wnd.Math.max(this$static.minimumContentAreaSize.x_0, labelSize.x_0); - this$static.minimumContentAreaSize.y_0 += labelSize.y_0; - this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.y_0 += this$static.gap); - } - else { - this$static.minimumContentAreaSize.x_0 += labelSize.x_0; - this$static.minimumContentAreaSize.y_0 = $wnd.Math.max(this$static.minimumContentAreaSize.y_0, labelSize.y_0); - this$static.labels.array.length > 1 && (this$static.minimumContentAreaSize.x_0 += this$static.gap); - } -} - -function $applyHorizontalModeLabelLayout(this$static){ - var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, yPos; - cellRect = this$static.cellRectangle; - cellPadding = this$static.padding; - yPos = cellRect.y_0; - this$static.verticalAlignment == ($clinit_VerticalLabelAlignment() , CENTER_1)?(yPos += (cellRect.height - this$static.minimumContentAreaSize.y_0) / 2):this$static.verticalAlignment == BOTTOM && (yPos += cellRect.height - this$static.minimumContentAreaSize.y_0); - for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - labelSize = label_0.getSize(); - labelPos = new KVector; - labelPos.y_0 = yPos; - yPos += labelSize.y_0 + this$static.gap; - switch (this$static.horizontalAlignment.ordinal) { - case 0: - labelPos.x_0 = cellRect.x_0 + cellPadding.left; - break; - case 1: - labelPos.x_0 = cellRect.x_0 + cellPadding.left + (cellRect.width_0 - labelSize.x_0) / 2; - break; - case 2: - labelPos.x_0 = cellRect.x_0 + cellRect.width_0 - cellPadding.right - labelSize.x_0; - } - label_0.setPosition(labelPos); - } -} - -function $applyLabelLayout(this$static){ - this$static.horizontalLayoutMode?$applyHorizontalModeLabelLayout(this$static):$applyVerticalModeLabelLayout(this$static); -} - -function $applyVerticalModeLabelLayout(this$static){ - var cellPadding, cellRect, label_0, label$iterator, labelPos, labelSize, xPos; - cellRect = this$static.cellRectangle; - cellPadding = this$static.padding; - xPos = cellRect.x_0; - this$static.horizontalAlignment == ($clinit_HorizontalLabelAlignment() , CENTER_0)?(xPos += (cellRect.width_0 - this$static.minimumContentAreaSize.x_0) / 2):this$static.horizontalAlignment == RIGHT && (xPos += cellRect.width_0 - this$static.minimumContentAreaSize.x_0); - for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - labelSize = label_0.getSize(); - labelPos = new KVector; - labelPos.x_0 = xPos; - xPos += labelSize.x_0 + this$static.gap; - switch (this$static.verticalAlignment.ordinal) { - case 0: - labelPos.y_0 = cellRect.y_0 + cellPadding.top_0; - break; - case 1: - labelPos.y_0 = cellRect.y_0 + cellPadding.top_0 + (cellRect.height - labelSize.y_0) / 2; - break; - case 2: - labelPos.y_0 = cellRect.y_0 + cellRect.height - cellPadding.bottom - labelSize.y_0; - } - label_0.setPosition(labelPos); - } -} - -function $getMinimumHeight_0(this$static){ - var padding; - padding = this$static.padding; - return this$static.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom; -} - -function $getMinimumWidth(this$static){ - var padding; - padding = this$static.padding; - return this$static.minimumContentAreaSize.x_0 + padding.left + padding.right; -} - -function $setHorizontalAlignment(this$static, newHorizontalAlignment){ - requireNonNull(newHorizontalAlignment, 'Horizontal alignment cannot be null'); - this$static.horizontalAlignment = newHorizontalAlignment; - return this$static; -} - -function $setVerticalAlignment(this$static, newVerticalAlignment){ - requireNonNull(newVerticalAlignment, 'Vertical alignment cannot be null'); - this$static.verticalAlignment = newVerticalAlignment; - return this$static; -} - -function LabelCell(gap){ - Cell.call(this); - $$init_5(this); - this.gap = gap; - this.horizontalLayoutMode = true; -} - -function LabelCell_0(gap, nodeLabelLocation, horizontalLayoutMode){ - Cell.call(this); - $$init_5(this); - this.gap = gap; - this.horizontalLayoutMode = horizontalLayoutMode; - this.horizontalAlignment = nodeLabelLocation.horizontalAlignment; - this.verticalAlignment = nodeLabelLocation.verticalAlignment; -} - -function LabelCell_1(gap, horizontalLayoutMode){ - Cell.call(this); - $$init_5(this); - this.gap = gap; - this.horizontalLayoutMode = horizontalLayoutMode; -} - -defineClass(306, 212, {212:1, 306:1}, LabelCell, LabelCell_0, LabelCell_1); -_.getMinimumHeight = function getMinimumHeight_1(){ - return $getMinimumHeight_0(this); -} -; -_.getMinimumWidth = function getMinimumWidth_1(){ - return $getMinimumWidth(this); -} -; -_.gap = 0; -_.horizontalLayoutMode = false; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'LabelCell', 306); -function $getMinimumHeight_1(this$static){ - var activeCells, cellHeight, cellHeight$array, cellHeight$index, cellHeight$max, cellHeights, height; - height = 0; - if (this$static.containerMode == 0) { - cellHeights = $minCellHeights(this$static, true); - activeCells = 0; - for (cellHeight$array = cellHeights , cellHeight$index = 0 , cellHeight$max = cellHeight$array.length; cellHeight$index < cellHeight$max; ++cellHeight$index) { - cellHeight = cellHeight$array[cellHeight$index]; - if (cellHeight > 0) { - height += cellHeight; - ++activeCells; - } - } - activeCells > 1 && (height += this$static.gap * (activeCells - 1)); - } - else { - height = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$2$Type), new StripContainerCell$lambda$3$Type))); - } - return height > 0?height + this$static.padding.top_0 + this$static.padding.bottom:0; -} - -function $getMinimumWidth_0(this$static){ - var activeCells, cellWidth, cellWidth$array, cellWidth$index, cellWidth$max, cellWidths, width_0; - width_0 = 0; - if (this$static.containerMode == 0) { - width_0 = $orElse_0($max($mapToDouble($filter(stream_4(this$static.cells_0), new StripContainerCell$lambda$0$Type), new StripContainerCell$lambda$1$Type))); - } - else { - cellWidths = $minCellWidths(this$static, true); - activeCells = 0; - for (cellWidth$array = cellWidths , cellWidth$index = 0 , cellWidth$max = cellWidth$array.length; cellWidth$index < cellWidth$max; ++cellWidth$index) { - cellWidth = cellWidth$array[cellWidth$index]; - if (cellWidth > 0) { - width_0 += cellWidth; - ++activeCells; - } - } - activeCells > 1 && (width_0 += this$static.gap * (activeCells - 1)); - } - return width_0 > 0?width_0 + this$static.padding.left + this$static.padding.right:0; -} - -function $layoutChildrenHorizontally(this$static){ - var cellPadding, cellRectangle, cellWidths, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, freeContentAreaWidth, width_0, xPos; - cellRectangle = this$static.cellRectangle; - cellPadding = this$static.padding; - if (this$static.containerMode == 0) { - xPos = cellRectangle.x_0 + cellPadding.left; - width_0 = cellRectangle.width_0 - cellPadding.left - cellPadding.right; - for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { - childCell = childCell$array0[childCell$index0]; - $applyHorizontalLayout(childCell, xPos, width_0); - } - } - else { - cellWidths = $minCellWidths(this$static, false); - $applyHorizontalLayout(this$static.cells_0[0], cellRectangle.x_0 + cellPadding.left, cellWidths[0]); - $applyHorizontalLayout(this$static.cells_0[2], cellRectangle.x_0 + cellRectangle.width_0 - cellPadding.right - cellWidths[2], cellWidths[2]); - freeContentAreaWidth = cellRectangle.width_0 - cellPadding.left - cellPadding.right; - if (cellWidths[0] > 0) { - freeContentAreaWidth -= cellWidths[0] + this$static.gap; - cellWidths[0] += this$static.gap; - } - cellWidths[2] > 0 && (freeContentAreaWidth -= cellWidths[2] + this$static.gap); - cellWidths[1] = $wnd.Math.max(cellWidths[1], freeContentAreaWidth); - $applyHorizontalLayout(this$static.cells_0[1], cellRectangle.x_0 + cellPadding.left + cellWidths[0] - (cellWidths[1] - freeContentAreaWidth) / 2, cellWidths[1]); - } - for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { - childCell = childCell$array[childCell$index]; - instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenHorizontally(); - } -} - -function $layoutChildrenVertically(this$static){ - var cellHeights, cellPadding, cellRectangle, childCell, childCell$array, childCell$array0, childCell$index, childCell$index0, childCell$max, childCell$max0, contentAreaFreeHeight, contentAreaHeight, height, yPos; - cellRectangle = this$static.cellRectangle; - cellPadding = this$static.padding; - if (this$static.containerMode == 0) { - cellHeights = $minCellHeights(this$static, false); - $applyVerticalLayout(this$static.cells_0[0], cellRectangle.y_0 + cellPadding.top_0, cellHeights[0]); - $applyVerticalLayout(this$static.cells_0[2], cellRectangle.y_0 + cellRectangle.height - cellPadding.bottom - cellHeights[2], cellHeights[2]); - contentAreaHeight = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; - contentAreaFreeHeight = contentAreaHeight; - if (cellHeights[0] > 0) { - cellHeights[0] += this$static.gap; - contentAreaFreeHeight -= cellHeights[0]; - } - cellHeights[2] > 0 && (contentAreaFreeHeight -= cellHeights[2] + this$static.gap); - cellHeights[1] = $wnd.Math.max(cellHeights[1], contentAreaFreeHeight); - $applyVerticalLayout(this$static.cells_0[1], cellRectangle.y_0 + cellPadding.top_0 + cellHeights[0] - (cellHeights[1] - contentAreaFreeHeight) / 2, cellHeights[1]); - } - else { - yPos = cellRectangle.y_0 + cellPadding.top_0; - height = cellRectangle.height - cellPadding.top_0 - cellPadding.bottom; - for (childCell$array0 = this$static.cells_0 , childCell$index0 = 0 , childCell$max0 = childCell$array0.length; childCell$index0 < childCell$max0; ++childCell$index0) { - childCell = childCell$array0[childCell$index0]; - $applyVerticalLayout(childCell, yPos, height); - } - } - for (childCell$array = this$static.cells_0 , childCell$index = 0 , childCell$max = childCell$array.length; childCell$index < childCell$max; ++childCell$index) { - childCell = childCell$array[childCell$index]; - instanceOf(childCell, 326) && castTo(childCell, 326).layoutChildrenVertically(); - } -} - -function $minCellHeights(this$static, respectContributionFlag){ - var cellHeights; - cellHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minHeightOfCell(this$static.cells_0[0], respectContributionFlag), minHeightOfCell(this$static.cells_0[1], respectContributionFlag), minHeightOfCell(this$static.cells_0[2], respectContributionFlag)]); - if (this$static.symmetrical) { - cellHeights[0] = $wnd.Math.max(cellHeights[0], cellHeights[2]); - cellHeights[2] = cellHeights[0]; - } - return cellHeights; -} - -function $minCellWidths(this$static, respectContributionFlag){ - var cellWidths; - cellWidths = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [minWidthOfCell(this$static.cells_0[0], respectContributionFlag), minWidthOfCell(this$static.cells_0[1], respectContributionFlag), minWidthOfCell(this$static.cells_0[2], respectContributionFlag)]); - if (this$static.symmetrical) { - cellWidths[0] = $wnd.Math.max(cellWidths[0], cellWidths[2]); - cellWidths[2] = cellWidths[0]; - } - return cellWidths; -} - -function $setCell_0(this$static, area, cell){ - this$static.cells_0[area.ordinal] = cell; -} - -function StripContainerCell(mode, symmetrical, gap){ - ContainerCell.call(this); - this.cells_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_Cell_2_classLit, $intern_93, 212, ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 0, [BEGIN, CENTER, END])).length, 0, 1); - this.containerMode = mode; - this.symmetrical = symmetrical; - this.gap = gap; -} - -function lambda$0_9(cell_0){ - return !!cell_0 && cell_0.contributesToMinimumWidth; -} - -function lambda$2(cell_0){ - return !!cell_0 && cell_0.contributesToMinimumHeight; -} - -defineClass(244, 326, {212:1, 326:1, 244:1}, StripContainerCell); -_.getMinimumHeight = function getMinimumHeight_2(){ - return $getMinimumHeight_1(this); -} -; -_.getMinimumWidth = function getMinimumWidth_2(){ - return $getMinimumWidth_0(this); -} -; -_.layoutChildrenHorizontally = function layoutChildrenHorizontally_0(){ - $layoutChildrenHorizontally(this); -} -; -_.layoutChildrenVertically = function layoutChildrenVertically_0(){ - $layoutChildrenVertically(this); -} -; -_.containerMode = 0; -_.gap = 0; -_.symmetrical = false; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell', 244); -function StripContainerCell$lambda$0$Type(){ -} - -defineClass(1626, 1, $intern_39, StripContainerCell$lambda$0$Type); -_.test_0 = function test_7(arg0){ - return lambda$0_9(castTo(arg0, 212)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$0$Type', 1626); -function StripContainerCell$lambda$1$Type(){ -} - -defineClass(1627, 1, {}, StripContainerCell$lambda$1$Type); -_.applyAsDouble = function applyAsDouble(arg0){ - return castTo(arg0, 212).getMinimumWidth(); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$1$Type', 1627); -function StripContainerCell$lambda$2$Type(){ -} - -defineClass(1628, 1, $intern_39, StripContainerCell$lambda$2$Type); -_.test_0 = function test_8(arg0){ - return lambda$2(castTo(arg0, 212)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$2$Type', 1628); -function StripContainerCell$lambda$3$Type(){ -} - -defineClass(1629, 1, {}, StripContainerCell$lambda$3$Type); -_.applyAsDouble = function applyAsDouble_0(arg0){ - return castTo(arg0, 212).getMinimumHeight(); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_StripContainerCell$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'StripContainerCell/lambda$3$Type', 1629); -function $clinit_VerticalLabelAlignment(){ - $clinit_VerticalLabelAlignment = emptyMethod; - TOP = new VerticalLabelAlignment('TOP', 0); - CENTER_1 = new VerticalLabelAlignment('CENTER', 1); - BOTTOM = new VerticalLabelAlignment('BOTTOM', 2); -} - -function VerticalLabelAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_19(name_0){ - $clinit_VerticalLabelAlignment(); - return valueOf(($clinit_VerticalLabelAlignment$Map() , $MAP_7), name_0); -} - -function values_25(){ - $clinit_VerticalLabelAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]); -} - -defineClass(462, 22, {3:1, 35:1, 22:1, 462:1}, VerticalLabelAlignment); -var BOTTOM, CENTER_1, TOP; -var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'VerticalLabelAlignment', 462, Ljava_lang_Enum_2_classLit, values_25, valueOf_19); -function $clinit_VerticalLabelAlignment$Map(){ - $clinit_VerticalLabelAlignment$Map = emptyMethod; - $MAP_7 = createValueOfMap(($clinit_VerticalLabelAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_VerticalLabelAlignment_2_classLit, 1), $intern_36, 462, 0, [TOP, CENTER_1, BOTTOM]))); -} - -var $MAP_7; -function $getPortAlignment(this$static, portSide){ - var alignment; - alignment = null; - switch (portSide.ordinal) { - case 1: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_NORTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_NORTH_0), 249)); - break; - case 3: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_SOUTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_SOUTH_0), 249)); - break; - case 2: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_EAST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_EAST_0), 249)); - break; - case 4: - this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_WEST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_WEST_0), 249)); - } - !alignment && (alignment = castTo(this$static.node.getProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_DEFAULT)), 249)); - return alignment; -} - -function NodeContext(node){ - var symmetry; - this.portContexts = create(new NodeContext$0methodref$comparePortSides$Type, new NodeContext$1methodref$comparePortContexts$Type); - this.insidePortLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); - this.outsideNodeLabelContainers = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); - this.nodeLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit), 290)); - this.node = node; - this.nodeSize = new KVector_2(node.getSize()); - this.treatAsCompoundNode = node.isCompoundNode() || $booleanValue(castToBoolean(node.getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); - this.sizeConstraints = castTo(node.getProperty(($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); - this.sizeOptions = castTo(node.getProperty(NODE_SIZE_OPTIONS_6), 21); - this.portConstraints = castTo(node.getProperty(PORT_CONSTRAINTS_1), 98); - this.portLabelsPlacement = castTo(node.getProperty(PORT_LABELS_PLACEMENT_5), 21); - if (!isValid_1(this.portLabelsPlacement)) { - throw toJs(new UnsupportedConfigurationException_0('Invalid port label placement: ' + this.portLabelsPlacement)); - } - this.portLabelsTreatAsGroup = $booleanValue(castToBoolean(node.getProperty(PORT_LABELS_TREAT_AS_GROUP_0))); - this.nodeLabelPlacement = castTo(node.getProperty(NODE_LABELS_PLACEMENT_5), 21); - if (!isValid_0(this.nodeLabelPlacement)) { - throw toJs(new UnsupportedConfigurationException_0('Invalid node label placement: ' + this.nodeLabelPlacement)); - } - this.nodeLabelsPadding = castTo(getIndividualOrInherited_0(node, NODE_LABELS_PADDING_0), 116); - this.nodeLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_NODE_0))); - this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_LABEL_0))); - this.portPortSpacing = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_PORT_PORT_0))); - this.portLabelSpacingHorizontal = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_HORIZONTAL_0))); - this.portLabelSpacingVertical = $doubleValue(castToDouble(getIndividualOrInherited_0(node, SPACING_LABEL_PORT_VERTICAL_0))); - this.surroundingPortMargins = castTo(getIndividualOrInherited_0(node, SPACING_PORTS_SURROUNDING_0), 142); - this.labelCellSpacing = 2 * this.labelLabelSpacing; - symmetry = !this.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); - this.nodeContainer = new StripContainerCell(0, symmetry, 0); - this.nodeContainerMiddleRow = new StripContainerCell(1, symmetry, 0); - $setCell_0(this.nodeContainer, ($clinit_ContainerArea() , CENTER), this.nodeContainerMiddleRow); -} - -function comparePortContexts(portContext1, portContext2){ - var portSideComparison; - portSideComparison = comparePortSides(portContext1.port.getSide(), portContext2.port.getSide()); - if (portSideComparison != 0) { - return portSideComparison; - } - switch (portContext1.port.getSide().ordinal) { - case 1: - case 2: - return compare_5(portContext1.port.getVolatileId(), portContext2.port.getVolatileId()); - case 3: - case 4: - return compare_5(portContext2.port.getVolatileId(), portContext1.port.getVolatileId()); - } - return 0; -} - -function comparePortSides(portSide1, portSide2){ - return compare_5(portSide1.ordinal, portSide2.ordinal); -} - -defineClass(789, 1, {}, NodeContext); -_.labelCellSpacing = 0; -_.labelLabelSpacing = 0; -_.nodeLabelSpacing = 0; -_.portLabelSpacingHorizontal = 0; -_.portLabelSpacingVertical = 0; -_.portLabelsTreatAsGroup = false; -_.portPortSpacing = 0; -_.treatAsCompoundNode = false; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext', 789); -function NodeContext$0methodref$comparePortSides$Type(){ -} - -defineClass(1471, 1, $intern_88, NodeContext$0methodref$comparePortSides$Type); -_.compare_1 = function compare_15(arg0, arg1){ - return comparePortSides(castTo(arg0, 61), castTo(arg1, 61)); -} -; -_.equals_0 = function equals_67(other){ - return this === other; -} -; -_.reversed = function reversed_7(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$0methodref$comparePortSides$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/0methodref$comparePortSides$Type', 1471); -function NodeContext$1methodref$comparePortContexts$Type(){ -} - -defineClass(1472, 1, $intern_88, NodeContext$1methodref$comparePortContexts$Type); -_.compare_1 = function compare_16(arg0, arg1){ - return comparePortContexts(castTo(arg0, 111), castTo(arg1, 111)); -} -; -_.equals_0 = function equals_68(other){ - return this === other; -} -; -_.reversed = function reversed_8(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext$1methodref$comparePortContexts$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext/1methodref$comparePortContexts$Type', 1472); -function $clinit_NodeLabelLocation(){ - $clinit_NodeLabelLocation = emptyMethod; - OUT_T_L = new NodeLabelLocation('OUT_T_L', 0, ($clinit_HorizontalLabelAlignment() , LEFT), ($clinit_VerticalLabelAlignment() , BOTTOM), ($clinit_ContainerArea() , BEGIN), BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(($clinit_NodeLabelPlacement() , OUTSIDE), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0]))])); - OUT_T_C = new NodeLabelLocation('OUT_T_C', 1, CENTER_0, BOTTOM, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); - OUT_T_R = new NodeLabelLocation('OUT_T_R', 2, RIGHT, BOTTOM, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0]))])); - OUT_B_L = new NodeLabelLocation('OUT_B_L', 3, LEFT, TOP, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0]))])); - OUT_B_C = new NodeLabelLocation('OUT_B_C', 4, CENTER_0, TOP, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); - OUT_B_R = new NodeLabelLocation('OUT_B_R', 5, RIGHT, TOP, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0]))])); - OUT_L_T = new NodeLabelLocation('OUT_L_T', 6, RIGHT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_TOP_0, H_PRIORITY]))])); - OUT_L_C = new NodeLabelLocation('OUT_L_C', 7, RIGHT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_CENTER_0, H_PRIORITY]))])); - OUT_L_B = new NodeLabelLocation('OUT_L_B', 8, RIGHT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, V_BOTTOM_0, H_PRIORITY]))])); - OUT_R_T = new NodeLabelLocation('OUT_R_T', 9, LEFT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_TOP_0, H_PRIORITY]))])); - OUT_R_C = new NodeLabelLocation('OUT_R_C', 10, LEFT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_CENTER_0, H_PRIORITY]))])); - OUT_R_B = new NodeLabelLocation('OUT_R_B', 11, LEFT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_RIGHT_0, V_BOTTOM_0, H_PRIORITY]))])); - IN_T_L = new NodeLabelLocation('IN_T_L', 12, LEFT, TOP, BEGIN, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_LEFT_0, H_PRIORITY]))])); - IN_T_C = new NodeLabelLocation('IN_T_C', 13, CENTER_0, TOP, BEGIN, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_CENTER_0, H_PRIORITY]))])); - IN_T_R = new NodeLabelLocation('IN_T_R', 14, RIGHT, TOP, BEGIN, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_TOP_0, H_RIGHT_0, H_PRIORITY]))])); - IN_C_L = new NodeLabelLocation('IN_C_L', 15, LEFT, CENTER_1, CENTER, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_LEFT_0, H_PRIORITY]))])); - IN_C_C = new NodeLabelLocation('IN_C_C', 16, CENTER_0, CENTER_1, CENTER, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_CENTER_0, H_PRIORITY]))])); - IN_C_R = new NodeLabelLocation('IN_C_R', 17, RIGHT, CENTER_1, CENTER, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, H_RIGHT_0, H_PRIORITY]))])); - IN_B_L = new NodeLabelLocation('IN_B_L', 18, LEFT, BOTTOM, END, BEGIN, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_LEFT_0, H_PRIORITY]))])); - IN_B_C = new NodeLabelLocation('IN_B_C', 19, CENTER_0, BOTTOM, END, CENTER, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_CENTER_0, H_PRIORITY]))])); - IN_B_R = new NodeLabelLocation('IN_B_R', 20, RIGHT, BOTTOM, END, END, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0, H_PRIORITY]))])); - UNDEFINED = new NodeLabelLocation('UNDEFINED', 21, null, null, null, null, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Set_2_classLit, 1), $intern_2, 21, 0, [])); -} - -function $getOutsideSide(this$static){ - switch (this$static.ordinal) { - case 0: - case 1: - case 2: - return $clinit_PortSide() , NORTH_3; - case 3: - case 4: - case 5: - return $clinit_PortSide() , SOUTH_2; - case 6: - case 7: - case 8: - return $clinit_PortSide() , WEST_2; - case 9: - case 10: - case 11: - return $clinit_PortSide() , EAST_2; - default:return $clinit_PortSide() , UNDEFINED_5; - } -} - -function $isInsideLocation(this$static){ - switch (this$static.ordinal) { - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - return true; - default:return false; - } -} - -function NodeLabelLocation(enum$name, enum$ordinal, horizontalAlignment, verticalAlignment, row, column, assignedPlacements){ - Enum.call(this, enum$name, enum$ordinal); - this.horizontalAlignment = horizontalAlignment; - this.verticalAlignment = verticalAlignment; - this.containerRow = row; - this.containerColumn = column; - this.assignedPlacements = newArrayList_1(assignedPlacements); -} - -function fromNodeLabelPlacement(labelPlacement){ - $clinit_NodeLabelLocation(); - var location_0, location$array, location$index, location$max; - for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { - location_0 = location$array[location$index]; - if ($indexOf_3(location_0.assignedPlacements, labelPlacement, 0) != -1) { - return location_0; - } - } - return UNDEFINED; -} - -function valueOf_20(name_0){ - $clinit_NodeLabelLocation(); - return valueOf(($clinit_NodeLabelLocation$Map() , $MAP_8), name_0); -} - -function values_26(){ - $clinit_NodeLabelLocation(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit, 1), $intern_36, 159, 0, [OUT_T_L, OUT_T_C, OUT_T_R, OUT_B_L, OUT_B_C, OUT_B_R, OUT_L_T, OUT_L_C, OUT_L_B, OUT_R_T, OUT_R_C, OUT_R_B, IN_T_L, IN_T_C, IN_T_R, IN_C_L, IN_C_C, IN_C_R, IN_B_L, IN_B_C, IN_B_R, UNDEFINED]); -} - -defineClass(159, 22, {3:1, 35:1, 22:1, 159:1}, NodeLabelLocation); -var IN_B_C, IN_B_L, IN_B_R, IN_C_C, IN_C_L, IN_C_R, IN_T_C, IN_T_L, IN_T_R, OUT_B_C, OUT_B_L, OUT_B_R, OUT_L_B, OUT_L_C, OUT_L_T, OUT_R_B, OUT_R_C, OUT_R_T, OUT_T_C, OUT_T_L, OUT_T_R, UNDEFINED; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit = createForEnum('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeLabelLocation', 159, Ljava_lang_Enum_2_classLit, values_26, valueOf_20); -function $clinit_NodeLabelLocation$Map(){ - $clinit_NodeLabelLocation$Map = emptyMethod; - $MAP_8 = createValueOfMap(values_26()); -} - -var $MAP_8; -function $applyPortPosition(this$static){ - this$static.port.setPosition(this$static.portPosition); -} - -function PortContext(parentNodeContext, port){ - var portLabelsNextToPort; - this.portMargin = new ElkMargin; - this.port = port; - this.portPosition = new KVector_2(port.getPosition()); - portLabelsNextToPort = parentNodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); - parentNodeContext.portLabelsPlacement.contains(INSIDE_0)?parentNodeContext.treatAsCompoundNode?(this.labelsNextToPort = portLabelsNextToPort && !port.hasCompoundConnections()):(this.labelsNextToPort = true):parentNodeContext.portLabelsPlacement.contains(OUTSIDE_0)?portLabelsNextToPort?(this.labelsNextToPort = !(port.getIncomingEdges().iterator_0().hasNext_0() || port.getOutgoingEdges().iterator_0().hasNext_0())):(this.labelsNextToPort = false):(this.labelsNextToPort = false); -} - -defineClass(111, 1, {111:1}, PortContext); -_.labelsNextToPort = false; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_PortContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'PortContext', 111); -function configureCellSystemSizeContributions(nodeContext){ - var freePortPlacement, labelCell, location_0, location$array, location$index, location$max, overhang; - if (nodeContext.sizeConstraints.isEmpty()) { - return; - } - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORTS_0))) { - castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124).contributesToMinimumWidth = true; - castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumWidth = true; - freePortPlacement = nodeContext.portConstraints != ($clinit_PortConstraints() , FIXED_RATIO) && nodeContext.portConstraints != FIXED_POS; - $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124), freePortPlacement); - $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124), freePortPlacement); - $setContributesToMinimumHeight(nodeContext.nodeContainerMiddleRow, freePortPlacement); - if (nodeContext.sizeConstraints.contains(PORT_LABELS)) { - castTo($get_14(nodeContext.insidePortLabelCells, NORTH_3), 124).contributesToMinimumHeight = true; - castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124).contributesToMinimumHeight = true; - castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124).contributesToMinimumWidth = true; - castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124).contributesToMinimumWidth = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; - } - } - if (nodeContext.sizeConstraints.contains(NODE_LABELS)) { - nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; - nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumWidth = true; - overhang = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG)); - for (location$array = values_26() , location$index = 0 , location$max = location$array.length; location$index < location$max; ++location$index) { - location_0 = location$array[location$index]; - labelCell = castTo($get_14(nodeContext.nodeLabelCells, location_0), 306); - if (labelCell) { - if ($isInsideLocation(location_0)) { - labelCell.contributesToMinimumHeight = true; - labelCell.contributesToMinimumWidth = true; - } - else { - labelCell.contributesToMinimumHeight = !overhang; - labelCell.contributesToMinimumWidth = !overhang; - } - } - } - } - if (nodeContext.sizeConstraints.contains(MINIMUM_SIZE) && nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { - nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; - nodeContext.nodeContainerMiddleRow.contributesToMinimumHeight = true; - if (!nodeContext.insideNodeLabelContainer.contributesToMinimumHeight) { - nodeContext.insideNodeLabelContainer.contributesToMinimumHeight = true; - nodeContext.insideNodeLabelContainer.contributesToMinimumWidth = true; - nodeContext.insideNodeLabelContainer.onlyCenterCellContributesToMinimumSize = true; - } - } -} - -function updateVerticalInsidePortLabelCellPadding(nodeContext){ - var bottomBorderOffset, bottomPadding, eastCell, topBorderOffset, topPadding, westCell; - if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { - return; - } - topBorderOffset = nodeContext.nodeContainer.padding.top_0 + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , NORTH_3)), 124)) + nodeContext.labelCellSpacing; - bottomBorderOffset = nodeContext.nodeContainer.padding.bottom + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 124)) + nodeContext.labelCellSpacing; - eastCell = castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 124); - westCell = castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124); - topPadding = $wnd.Math.max(0, eastCell.padding.top_0 - topBorderOffset); - topPadding = $wnd.Math.max(topPadding, westCell.padding.top_0 - topBorderOffset); - bottomPadding = $wnd.Math.max(0, eastCell.padding.bottom - bottomBorderOffset); - bottomPadding = $wnd.Math.max(bottomPadding, westCell.padding.bottom - bottomBorderOffset); - eastCell.padding.top_0 = topPadding; - westCell.padding.top_0 = topPadding; - eastCell.padding.bottom = bottomPadding; - westCell.padding.bottom = bottomPadding; -} - -function calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ - var cell, portContext, portContext$iterator, rightmostPortBorder; - rightmostPortBorder = 0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - rightmostPortBorder = $wnd.Math.max(rightmostPortBorder, portContext.portPosition.x_0 + portContext.port.getSize().x_0); - } - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - cell.padding.left = 0; - cell.minimumContentAreaSize.x_0 = rightmostPortBorder; -} - -function calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ - var cell, currentPortContext, currentPortRatio, currentPortWidth, minWidth, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortRatio, previousPortWidth, requiredSpace; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.isEmpty()) { - cell.padding.left = 0; - cell.padding.right = 0; - return; - } - portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); - minWidth = 0; - portContextIterator = portContexts.iterator_0(); - previousPortContext = null; - previousPortRatio = 0; - previousPortWidth = 0; - while (portContextIterator.hasNext_0()) { - currentPortContext = castTo(portContextIterator.next_1(), 111); - currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); - currentPortWidth = currentPortContext.port.getSize().x_0; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); - if (!previousPortContext) { - !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.left > 0 && (minWidth = $wnd.Math.max(minWidth, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.left + currentPortContext.portMargin.left, currentPortRatio))); - } - else { - requiredSpace = previousPortWidth + previousPortContext.portMargin.right + nodeContext.portPortSpacing + currentPortContext.portMargin.left; - minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); - } - previousPortContext = currentPortContext; - previousPortRatio = currentPortRatio; - previousPortWidth = currentPortWidth; - } - if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.right > 0) { - requiredSpace = previousPortWidth + nodeContext.surroundingPortMargins.right; - portLabelsInside && (requiredSpace += previousPortContext.portMargin.right); - minWidth = $wnd.Math.max(minWidth, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); - } - cell.padding.left = 0; - cell.minimumContentAreaSize.x_0 = minWidth; -} - -function calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, portSide){ - var cell, width_0; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - cell.padding.left = 0; - cell.padding.right = 0; - return; - } - cell.padding.left = nodeContext.surroundingPortMargins.left; - cell.padding.right = nodeContext.surroundingPortMargins.right; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins(nodeContext, portSide); - width_0 = portWidthPlusPortPortSpacing(nodeContext, portSide); - $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (width_0 += 2 * nodeContext.portPortSpacing); - cell.minimumContentAreaSize.x_0 = width_0; -} - -function calculateHorizontalPortPlacementSize(nodeContext){ - switch (nodeContext.portConstraints.ordinal) { - case 5: - calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - calculateHorizontalNodeSizeRequiredByFixedPosPorts(nodeContext, SOUTH_2); - break; - case 4: - calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - calculateHorizontalNodeSizeRequiredByFixedRatioPorts(nodeContext, SOUTH_2); - break; - default:calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - calculateHorizontalNodeSizeRequiredByFreePorts(nodeContext, SOUTH_2); - } -} - -function computeHorizontalPortMargins(nodeContext, portSide){ - var labelWidth, labelsBounds, overhang, portContext, portContext$iterator, portWidth; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - labelWidth = portContext.portLabelCell?$getMinimumWidth(portContext.portLabelCell):0; - if (labelWidth > 0) { - if (portContext.labelsNextToPort) { - portWidth = portContext.port.getSize().x_0; - if (labelWidth > portWidth) { - overhang = (labelWidth - portWidth) / 2; - portContext.portMargin.left = overhang; - portContext.portMargin.right = overhang; - } - } - else { - portContext.portMargin.right = nodeContext.portLabelSpacingHorizontal + labelWidth; - } - } - else if (isFixed(nodeContext.portLabelsPlacement)) { - labelsBounds = getLabelsBounds(portContext.port); - labelsBounds.x_0 < 0 && (portContext.portMargin.left = -labelsBounds.x_0); - labelsBounds.x_0 + labelsBounds.width_0 > portContext.port.getSize().x_0 && (portContext.portMargin.right = labelsBounds.x_0 + labelsBounds.width_0 - portContext.port.getSize().x_0); - } - } -} - -function minSizeRequiredToRespectSpacing(spacing, secondRatio){ - return $clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(0 - secondRatio) <= $intern_94 || 0 == secondRatio || isNaN(0) && isNaN(secondRatio)?0:spacing / secondRatio; -} - -function portWidthPlusPortPortSpacing(nodeContext, portSide){ - var portContext, portContextIterator, result; - result = 0; - portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); - while (portContextIterator.hasNext_0()) { - portContext = castTo(portContextIterator.next_1(), 111); - result += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right; - portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); - } - return result; -} - -function setupPortMargins(nodeContext, portSide){ - var alwaysSameSide, alwaysSameSideAbove, leftmostPortContext, portContextIterator, portContexts, portLabelsOutside, rightmostPortContext, spaceEfficient, spaceEfficientPortLabels, uniformPortSpacing; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); - alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); - alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); - spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); - uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); - spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); - computeHorizontalPortMargins(nodeContext, portSide); - leftmostPortContext = null; - rightmostPortContext = null; - if (portLabelsOutside) { - portContextIterator = portContexts.iterator_0(); - leftmostPortContext = castTo(portContextIterator.next_1(), 111); - rightmostPortContext = leftmostPortContext; - while (portContextIterator.hasNext_0()) { - rightmostPortContext = castTo(portContextIterator.next_1(), 111); - } - leftmostPortContext.portMargin.left = 0; - rightmostPortContext.portMargin.right = 0; - spaceEfficientPortLabels && !leftmostPortContext.labelsNextToPort && (leftmostPortContext.portMargin.right = 0); - } - if (uniformPortSpacing) { - unifyPortMargins(portContexts); - if (portLabelsOutside) { - leftmostPortContext.portMargin.left = 0; - rightmostPortContext.portMargin.right = 0; - } - } -} - -function unifyPortMargins(portContexts){ - var maxLeft, maxRight, portContext, portContext$iterator, portContext$iterator0; - maxLeft = 0; - maxRight = 0; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - maxLeft = $wnd.Math.max(maxLeft, portContext.portMargin.left); - maxRight = $wnd.Math.max(maxRight, portContext.portMargin.right); - } - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portMargin.left = maxLeft; - portContext.portMargin.right = maxRight; - } -} - -function calculateWidthDueToLabels(nodeContext, portSide){ - var minCellSize, portContext, portContext$iterator, theAppropriateCell; - theAppropriateCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - minCellSize = theAppropriateCell.minimumContentAreaSize; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - !!portContext.portLabelCell && (minCellSize.x_0 = $wnd.Math.max(minCellSize.x_0, $getMinimumWidth(portContext.portLabelCell))); - } - if (minCellSize.x_0 > 0) { - switch (portSide.ordinal) { - case 2: - theAppropriateCell.padding.right = nodeContext.portLabelSpacingHorizontal; - break; - case 4: - theAppropriateCell.padding.left = nodeContext.portLabelSpacingHorizontal; - } - } -} - -function createInsidePortLabelCell(nodeContext, container, containerArea, portSide){ - var portLabelCell; - portLabelCell = new AtomicCell; - container.cells_0[containerArea.ordinal] = portLabelCell; - $put_7(nodeContext.insidePortLabelCells, portSide, portLabelCell); -} - -function setupEastOrWestPortLabelCell(nodeContext, portSide){ - nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && calculateWidthDueToLabels(nodeContext, portSide); - setupTopAndBottomPadding(nodeContext, portSide); -} - -function setupNorthOrSouthPortLabelCell(nodeContext, portSide){ - var padding; - padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; - switch (portSide.ordinal) { - case 1: - nodeContext.portLabelSpacingVertical >= 0 && (padding.top_0 = nodeContext.portLabelSpacingVertical); - break; - case 3: - nodeContext.portLabelSpacingVertical >= 0 && (padding.bottom = nodeContext.portLabelSpacingVertical); - } - if (nodeContext.surroundingPortMargins) { - padding.left = nodeContext.surroundingPortMargins.left; - padding.right = nodeContext.surroundingPortMargins.right; - } -} - -function setupTopAndBottomPadding(nodeContext, portSide){ - var padding; - if (nodeContext.surroundingPortMargins) { - padding = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).padding; - padding.top_0 = nodeContext.surroundingPortMargins.top_0; - padding.bottom = nodeContext.surroundingPortMargins.bottom; - } -} - -function placeHorizontalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ - var nodeLabelContainer, nodeLabelContainerRect, nodeSize; - nodeSize = nodeContext.nodeSize; - nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); - nodeLabelContainerRect = nodeLabelContainer.cellRectangle; - nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); - nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); - nodeLabelContainerRect.width_0 = $wnd.Math.max(nodeLabelContainerRect.width_0, nodeSize.x_0); - nodeLabelContainerRect.width_0 > nodeSize.x_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.width_0 = nodeSize.x_0); - nodeLabelContainerRect.x_0 = -(nodeLabelContainerRect.width_0 - nodeSize.x_0) / 2; - switch (portSide.ordinal) { - case 1: - nodeLabelContainerRect.y_0 = -nodeLabelContainerRect.height; - break; - case 3: - nodeLabelContainerRect.y_0 = nodeSize.y_0; - } - $layoutChildrenHorizontally(nodeLabelContainer); - $layoutChildrenVertically(nodeLabelContainer); -} - -function placeVerticalOuterNodeLabelContainer(nodeContext, outerNodeLabelsOverhang, portSide){ - var nodeLabelContainer, nodeLabelContainerRect, nodeSize; - nodeSize = nodeContext.nodeSize; - nodeLabelContainer = castTo($get_14(nodeContext.outsideNodeLabelContainers, portSide), 244); - nodeLabelContainerRect = nodeLabelContainer.cellRectangle; - nodeLabelContainerRect.width_0 = $getMinimumWidth_0(nodeLabelContainer); - nodeLabelContainerRect.height = $getMinimumHeight_1(nodeLabelContainer); - nodeLabelContainerRect.height = $wnd.Math.max(nodeLabelContainerRect.height, nodeSize.y_0); - nodeLabelContainerRect.height > nodeSize.y_0 && !outerNodeLabelsOverhang && (nodeLabelContainerRect.height = nodeSize.y_0); - nodeLabelContainerRect.y_0 = -(nodeLabelContainerRect.height - nodeSize.y_0) / 2; - switch (portSide.ordinal) { - case 4: - nodeLabelContainerRect.x_0 = -nodeLabelContainerRect.width_0; - break; - case 2: - nodeLabelContainerRect.x_0 = nodeSize.x_0; - } - $layoutChildrenHorizontally(nodeLabelContainer); - $layoutChildrenVertically(nodeLabelContainer); -} - -function LabelPlacer$lambda$0$Type(){ -} - -defineClass(1476, 1, $intern_19, LabelPlacer$lambda$0$Type); -_.accept = function accept_46(arg0){ - $applyLabelLayout(castTo(arg0, 306)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$0$Type', 1476); -function LabelPlacer$lambda$1$Type(){ -} - -defineClass(1477, 1, $intern_39, LabelPlacer$lambda$1$Type); -_.test_0 = function test_9(arg0){ - return !!castTo(arg0, 111).portLabelCell; -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$1$Type', 1477); -function LabelPlacer$lambda$2$Type(){ -} - -defineClass(1478, 1, $intern_19, LabelPlacer$lambda$2$Type); -_.accept = function accept_47(arg0){ - $applyLabelLayout(castTo(arg0, 111).portLabelCell); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_LabelPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'LabelPlacer/lambda$2$Type', 1478); -function $clinit_NodeLabelAndSizeUtilities(){ - $clinit_NodeLabelAndSizeUtilities = emptyMethod; - EFFECTIVELY_FIXED_SIZE_CONSTRAINTS = of_1(($clinit_SizeConstraint() , PORT_LABELS)); -} - -function getMinimumNodeOrClientAreaSize(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var minSize; - minSize = new KVector_2(castTo(nodeContext.node.getProperty(($clinit_CoreOptions() , NODE_SIZE_MINIMUM_5)), 8)); - if (nodeContext.sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - return minSize; -} - -function getMinimumNodeSize(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , MINIMUM_SIZE_ACCOUNTS_FOR_PADDING))) { - return getMinimumNodeOrClientAreaSize(nodeContext); - } - } - return null; -} - -function isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide){ - $clinit_NodeLabelAndSizeUtilities(); - var alwaysSameSide, firstPort, portContexts, spaceEfficient; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.size_1() >= 2) { - firstPort = castTo(portContexts.iterator_0().next_1(), 111); - alwaysSameSide = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_SAME_SIDE)); - spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); - return !firstPort.labelsNextToPort && !alwaysSameSide && (portContexts.size_1() == 2 || spaceEfficient); - } - else { - return false; - } -} - -function offsetSouthernPortsByNodeSize(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var nodeHeight, portContext, portContext$iterator, portPosition; - nodeHeight = nodeContext.nodeSize.y_0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, ($clinit_PortSide() , SOUTH_2)), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portPosition = portContext.portPosition; - portPosition.y_0 += nodeHeight; - } -} - -function setNodePadding(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var clientArea, nodePadding, nodeRect; - if (!nodeContext.sizeOptions.contains(($clinit_SizeOptions() , COMPUTE_PADDING))) { - return; - } - nodeRect = nodeContext.nodeContainer.cellRectangle; - clientArea = new ElkRectangle_1(nodeContext.insideNodeLabelContainer.centerCellRect); - nodePadding = new ElkPadding; - nodePadding.left = clientArea.x_0 - nodeRect.x_0; - nodePadding.top_0 = clientArea.y_0 - nodeRect.y_0; - nodePadding.right = nodeRect.x_0 + nodeRect.width_0 - (clientArea.x_0 + clientArea.width_0); - nodePadding.bottom = nodeRect.y_0 + nodeRect.height - (clientArea.y_0 + clientArea.height); - nodeContext.node.setPadding(nodePadding); -} - -function setupNodePaddingForPortsWithOffset(nodeContext){ - $clinit_NodeLabelAndSizeUtilities(); - var insidePart, insidePartIsBigger, nodeCellPadding, portBorderOffset, portContext, portContext$iterator, symmetry; - nodeCellPadding = nodeContext.nodeContainer.padding; - for (portContext$iterator = $values_0(nodeContext.portContexts).this$01.valueIterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portBorderOffset = 0; - if (portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { - portBorderOffset = $doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))); - if (portBorderOffset < 0) { - switch (portContext.port.getSide().ordinal) { - case 1: - nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, -portBorderOffset); - break; - case 3: - nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, -portBorderOffset); - break; - case 2: - nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, -portBorderOffset); - break; - case 4: - nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, -portBorderOffset); - } - } - } - if (isFixed(nodeContext.portLabelsPlacement)) { - insidePart = computeInsidePart_0(portContext.port, portBorderOffset); - symmetry = !castTo(nodeContext.node.getProperty(NODE_SIZE_OPTIONS_6), 174).contains(($clinit_SizeOptions() , ASYMMETRICAL)); - insidePartIsBigger = false; - switch (portContext.port.getSide().ordinal) { - case 1: - insidePartIsBigger = insidePart > nodeCellPadding.top_0; - nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.top_0 = $wnd.Math.max(nodeCellPadding.top_0, nodeCellPadding.bottom); - nodeCellPadding.bottom = nodeCellPadding.top_0 + portBorderOffset; - } - - break; - case 3: - insidePartIsBigger = insidePart > nodeCellPadding.bottom; - nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.bottom = $wnd.Math.max(nodeCellPadding.bottom, nodeCellPadding.top_0); - nodeCellPadding.top_0 = nodeCellPadding.bottom + portBorderOffset; - } - - break; - case 2: - insidePartIsBigger = insidePart > nodeCellPadding.right; - nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.right, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.right = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); - nodeCellPadding.left = nodeCellPadding.right + portBorderOffset; - } - - break; - case 4: - insidePartIsBigger = insidePart > nodeCellPadding.left; - nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, insidePart); - if (symmetry && insidePartIsBigger) { - nodeCellPadding.left = $wnd.Math.max(nodeCellPadding.left, nodeCellPadding.right); - nodeCellPadding.right = nodeCellPadding.left + portBorderOffset; - } - - } - } - } -} - -var EFFECTIVELY_FIXED_SIZE_CONSTRAINTS; -function NodeLabelAndSizeUtilities$lambda$0$Type(){ -} - -defineClass(1475, 1, $intern_19, NodeLabelAndSizeUtilities$lambda$0$Type); -_.accept = function accept_48(arg0){ - $clinit_NodeLabelAndSizeUtilities(); - $applyPortPosition(castTo(arg0, 111)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelAndSizeUtilities$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelAndSizeUtilities/lambda$0$Type', 1475); -function createNodeLabelCellContainers(nodeContext, onlyInside){ - var eastContainer, northContainer, southContainer, symmetry, tabularNodeLabels, westContainer; - symmetry = !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , ASYMMETRICAL)); - tabularNodeLabels = nodeContext.sizeOptions.contains(FORCE_TABULAR_NODE_LABELS); - nodeContext.insideNodeLabelContainer = new GridContainerCell(tabularNodeLabels, symmetry, nodeContext.labelCellSpacing); - !!nodeContext.nodeLabelsPadding && $copy(nodeContext.insideNodeLabelContainer.padding, nodeContext.nodeLabelsPadding); - $setCell_0(nodeContext.nodeContainerMiddleRow, ($clinit_ContainerArea() , CENTER), nodeContext.insideNodeLabelContainer); - if (!onlyInside) { - northContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); - northContainer.padding.bottom = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3), northContainer); - southContainer = new StripContainerCell(1, symmetry, nodeContext.labelCellSpacing); - southContainer.padding.top_0 = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, SOUTH_2, southContainer); - westContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); - westContainer.padding.right = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, WEST_2, westContainer); - eastContainer = new StripContainerCell(0, symmetry, nodeContext.labelCellSpacing); - eastContainer.padding.left = nodeContext.nodeLabelSpacing; - $put_7(nodeContext.outsideNodeLabelContainers, EAST_2, eastContainer); - } -} - -function createNodeLabelCells(nodeContext, horizontalLayoutMode){ - createNodeLabelCellContainers(nodeContext, true); - $forEach_1(nodeContext.node.getLabels(), new NodeLabelCellCreator$lambda$0$Type(nodeContext, true, horizontalLayoutMode)); -} - -function handleNodeLabel(nodeContext, label_0, onlyInside, horizontalLayoutMode){ - var labelLocation, labelPlacement; - labelPlacement = label_0.hasProperty(($clinit_CoreOptions() , NODE_LABELS_PLACEMENT_5))?castTo(label_0.getProperty(NODE_LABELS_PLACEMENT_5), 21):nodeContext.nodeLabelPlacement; - labelLocation = fromNodeLabelPlacement(labelPlacement); - if (labelLocation == ($clinit_NodeLabelLocation() , UNDEFINED)) { - return; - } - if (onlyInside && !$isInsideLocation(labelLocation)) { - return; - } - $addLabel(retrieveNodeLabelCell(nodeContext, labelLocation, horizontalLayoutMode), label_0); -} - -function lambda$0_10(nodeContext_0, onlyInside_1, horizontalLayoutMode_2, label_3){ - handleNodeLabel(nodeContext_0, label_3, onlyInside_1, horizontalLayoutMode_2); -} - -function retrieveNodeLabelCell(nodeContext, nodeLabelLocation, horizontalLayoutMode){ - var containerCell, nodeLabelCell, outsideSide; - nodeLabelCell = castTo($get_14(nodeContext.nodeLabelCells, nodeLabelLocation), 306); - if (!nodeLabelCell) { - nodeLabelCell = new LabelCell_0(nodeContext.labelLabelSpacing, nodeLabelLocation, horizontalLayoutMode); - $put_7(nodeContext.nodeLabelCells, nodeLabelLocation, nodeLabelCell); - if ($isInsideLocation(nodeLabelLocation)) { - $setCell(nodeContext.insideNodeLabelContainer, nodeLabelLocation.containerRow, nodeLabelLocation.containerColumn, nodeLabelCell); - } - else { - outsideSide = $getOutsideSide(nodeLabelLocation); - containerCell = castTo($get_14(nodeContext.outsideNodeLabelContainers, outsideSide), 244); - switch (outsideSide.ordinal) { - case 1: - case 3: - nodeLabelCell.contributesToMinimumHeight = true; - $setCell_0(containerCell, nodeLabelLocation.containerColumn, nodeLabelCell); - break; - case 4: - case 2: - nodeLabelCell.contributesToMinimumWidth = true; - $setCell_0(containerCell, nodeLabelLocation.containerRow, nodeLabelCell); - } - } - } - return nodeLabelCell; -} - -function NodeLabelCellCreator$lambda$0$Type(nodeContext_0, onlyInside_1, horizontalLayoutMode_2){ - this.nodeContext_0 = nodeContext_0; - this.onlyInside_1 = onlyInside_1; - this.horizontalLayoutMode_2 = horizontalLayoutMode_2; -} - -defineClass(790, 1, $intern_19, NodeLabelCellCreator$lambda$0$Type); -_.accept = function accept_49(arg0){ - lambda$0_10(this.nodeContext_0, this.onlyInside_1, this.horizontalLayoutMode_2, castTo(arg0, 181)); -} -; -_.horizontalLayoutMode_2 = false; -_.onlyInside_1 = false; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_NodeLabelCellCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'NodeLabelCellCreator/lambda$0$Type', 790); -function setNodeHeight(nodeContext){ - var height, minNodeSize, nodeCellRectangle, nodeSize; - nodeSize = nodeContext.nodeSize; - $clinit_NodeLabelAndSizeUtilities(); - if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { - height = nodeSize.y_0; - } - else { - height = $getMinimumHeight_1(nodeContext.nodeContainer); - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { - height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , EAST_2)), 244))); - height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, WEST_2), 244))); - } - minNodeSize = getMinimumNodeSize(nodeContext); - !!minNodeSize && (height = $wnd.Math.max(height, minNodeSize.y_0)); - if (nodeContext.sizeConstraints.contains(PORTS_0)) { - if (nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || nodeContext.portConstraints == FIXED_POS) { - height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, ($clinit_PortSide() , EAST_2)), 124))); - height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 124))); - } - } - } - $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.y_0 = $wnd.Math.max(nodeSize.y_0, height)):(nodeSize.y_0 = height); - nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; - nodeCellRectangle.y_0 = 0; - nodeCellRectangle.height = height; - $layoutChildrenVertically(nodeContext.nodeContainer); -} - -function setNodeWidth(nodeContext){ - var minNodeSize, nodeCellRectangle, nodeSize, width_0; - nodeSize = nodeContext.nodeSize; - $clinit_NodeLabelAndSizeUtilities(); - if (nodeContext.sizeConstraints.isEmpty() || equals_Ljava_lang_Object__Z__devirtual$(nodeContext.sizeConstraints, EFFECTIVELY_FIXED_SIZE_CONSTRAINTS)) { - width_0 = nodeSize.x_0; - } - else { - width_0 = $getMinimumWidth_0(nodeContext.nodeContainer); - if (nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , NODE_LABELS)) && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , OUTSIDE_NODE_LABELS_OVERHANG))) { - width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, ($clinit_PortSide() , NORTH_3)), 244))); - width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, SOUTH_2), 244))); - } - minNodeSize = getMinimumNodeSize(nodeContext); - !!minNodeSize && (width_0 = $wnd.Math.max(width_0, minNodeSize.x_0)); - } - $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(nodeSize.x_0 = $wnd.Math.max(nodeSize.x_0, width_0)):(nodeSize.x_0 = width_0); - nodeCellRectangle = nodeContext.nodeContainer.cellRectangle; - nodeCellRectangle.x_0 = 0; - nodeCellRectangle.width_0 = width_0; - $layoutChildrenHorizontally(nodeContext.nodeContainer); -} - -function createPortContext(nodeContext, port, imPortLabels){ - var portContext; - portContext = new PortContext(nodeContext, port); - $put(nodeContext.portContexts, port.getSide(), portContext); - if (imPortLabels && !isFixed(nodeContext.portLabelsPlacement)) { - portContext.portLabelCell = new LabelCell(nodeContext.labelLabelSpacing); - $forEach_1(port.getLabels(), new PortContextCreator$lambda$0$Type(portContext)); - } -} - -function createPortContexts(nodeContext, ignoreInsidePortLabels){ - var imPortLabels, port, port$iterator, volatileId; - imPortLabels = !ignoreInsidePortLabels || !nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); - volatileId = 0; - for (port$iterator = new ArrayList$1(nodeContext.node.getPorts()); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 838); - if (port.getSide() == ($clinit_PortSide() , UNDEFINED_5)) { - throw toJs(new IllegalArgumentException_0('Label and node size calculator can only be used with ports that have port sides assigned.')); - } - port.setVolatileId(volatileId++); - createPortContext(nodeContext, port, imPortLabels); - } -} - -function lambda$0_11(portContext_0, label_1){ - $addLabel(portContext_0.portLabelCell, label_1); -} - -function PortContextCreator$lambda$0$Type(portContext_0){ - this.portContext_0 = portContext_0; -} - -defineClass(1474, 1, $intern_19, PortContextCreator$lambda$0$Type); -_.accept = function accept_50(arg0){ - lambda$0_11(this.portContext_0, castTo(arg0, 181)); -} -; -var Lorg_eclipse_elk_alg_common_nodespacing_internal_algorithm_PortContextCreator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal.algorithm', 'PortContextCreator/lambda$0$Type', 1474); -function constrainedInsidePortLabelPlacement(nodeContext, portSide){ - var insidePortLabelContainer, labelContainerRect, leftBorder, overlapRemovalDirection, overlapRemover, padding, padding0, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, rightBorder, startCoordinate, stripHeight, verticalLabelAlignment, actualMinX, actualMaxX; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) { - simpleInsidePortLabelPlacement(nodeContext, portSide); - return; - } - overlapRemovalDirection = portSide == NORTH_3?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP); - verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , TOP):($clinit_VerticalLabelAlignment() , BOTTOM); - insidePortLabelContainer = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - labelContainerRect = insidePortLabelContainer.cellRectangle; - leftBorder = labelContainerRect.x_0 + maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.left, nodeContext.surroundingPortMargins.left, nodeContext.nodeLabelSpacing])); - rightBorder = labelContainerRect.x_0 + labelContainerRect.width_0 - maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.right, nodeContext.surroundingPortMargins.right, nodeContext.nodeLabelSpacing])); - overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingVertical); - startCoordinate = portSide == NORTH_3?$intern_60:$intern_59; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portPosition = portContext.portPosition; - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); - requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); - portLabelCell.verticalAlignment = verticalLabelAlignment; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - portLabelCellRect.x_0 = portPosition.x_0 - (portLabelCellRect.width_0 - portSize.x_0) / 2; - actualMinX = $wnd.Math.min(leftBorder, portPosition.x_0); - actualMaxX = $wnd.Math.max(rightBorder, portPosition.x_0 + portSize.x_0); - portLabelCellRect.x_0 < actualMinX?(portLabelCellRect.x_0 = actualMinX):portLabelCellRect.x_0 + portLabelCellRect.width_0 > actualMaxX && (portLabelCellRect.x_0 = actualMaxX - portLabelCellRect.width_0); - $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); - startCoordinate = portSide == NORTH_3?$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0):$wnd.Math.min(startCoordinate, portPosition.y_0); - } - startCoordinate += portSide == NORTH_3?nodeContext.portLabelSpacingVertical:-nodeContext.portLabelSpacingVertical; - stripHeight = $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); - stripHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = stripHeight); - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portLabelCellRect = portContext.portLabelCell.cellRectangle; - portLabelCellRect.x_0 -= portContext.portPosition.x_0; - portLabelCellRect.y_0 -= portContext.portPosition.y_0; - } -} - -function constrainedOutsidePortLabelPlacement(nodeContext, portSide){ - var overlapRemovalDirection, overlapRemover, padding, padding0, padding1, portContext, portContext$iterator, portContext$iterator0, portContexts, portLabelCell, portLabelCellRect, portPosition, portSize, portWithSpecialNeeds, startCoordinate, verticalLabelAlignment; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.size_1() <= 2 || portSide == ($clinit_PortSide() , EAST_2) || portSide == ($clinit_PortSide() , WEST_2)) { - simpleOutsidePortLabelPlacement(nodeContext, portSide); - return; - } - portWithSpecialNeeds = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); - overlapRemovalDirection = portSide == ($clinit_PortSide() , NORTH_3)?($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP):($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN); - verticalLabelAlignment = portSide == NORTH_3?($clinit_VerticalLabelAlignment() , BOTTOM):($clinit_VerticalLabelAlignment() , TOP); - overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingHorizontal); - startCoordinate = portSide == NORTH_3?$intern_59:$intern_60; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portPosition = portContext.portPosition; - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding1 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding1.top_0 + padding1.bottom); - if (portWithSpecialNeeds) { - portLabelCellRect.x_0 = portPosition.x_0 - (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding.left + padding.right) - nodeContext.portLabelSpacingHorizontal; - portWithSpecialNeeds = false; - } - else { - portLabelCellRect.x_0 = portPosition.x_0 + portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - } - requireNonNull(verticalLabelAlignment, 'Vertical alignment cannot be null'); - portLabelCell.verticalAlignment = verticalLabelAlignment; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(portLabelCellRect, $importRectangle(overlapRemover, portLabelCellRect))); - startCoordinate = portSide == NORTH_3?$wnd.Math.min(startCoordinate, portPosition.y_0):$wnd.Math.max(startCoordinate, portPosition.y_0 + portContext.port.getSize().y_0); - } - startCoordinate += portSide == NORTH_3?-nodeContext.portLabelSpacingVertical:nodeContext.portLabelSpacingVertical; - $removeOverlaps_0((overlapRemover.startCoordinate = startCoordinate , overlapRemover)); - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portLabelCellRect = portContext.portLabelCell.cellRectangle; - portLabelCellRect.x_0 -= portContext.portPosition.x_0; - portLabelCellRect.y_0 -= portContext.portPosition.y_0; - } -} - -function placePortLabels(nodeContext, portSide){ - var constrainedPlacement; - constrainedPlacement = !nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) || nodeContext.portConstraints == ($clinit_PortConstraints() , FIXED_POS); - nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))?constrainedPlacement?constrainedInsidePortLabelPlacement(nodeContext, portSide):simpleInsidePortLabelPlacement(nodeContext, portSide):nodeContext.portLabelsPlacement.contains(OUTSIDE_0) && (constrainedPlacement?constrainedOutsidePortLabelPlacement(nodeContext, portSide):simpleOutsidePortLabelPlacement(nodeContext, portSide)); -} - -function portLabelBorderOffsetForPortSide(nodeContext, portSide){ - switch (portSide.ordinal) { - case 1: - return nodeContext.nodeContainer.padding.top_0 + nodeContext.portLabelSpacingVertical; - case 3: - return nodeContext.nodeContainer.padding.bottom + nodeContext.portLabelSpacingVertical; - case 2: - return nodeContext.nodeContainer.padding.right + nodeContext.portLabelSpacingHorizontal; - case 4: - return nodeContext.nodeContainer.padding.left + nodeContext.portLabelSpacingHorizontal; - default:return 0; - } -} - -function simpleInsidePortLabelPlacement(nodeContext, portSide){ - var insideNorthOrSouthPortLabelAreaHeight, labelBorderOffset, labelHeight, padding, padding0, portBorderOffset, portContext, portContext$iterator, portLabelCell, portLabelCellRect, portLabelSpacingHorizontal, portLabelSpacingVertical, portSize; - insideNorthOrSouthPortLabelAreaHeight = 0; - labelBorderOffset = portLabelBorderOffsetForPortSide(nodeContext, portSide); - portLabelSpacingHorizontal = nodeContext.portLabelSpacingHorizontal; - portLabelSpacingVertical = nodeContext.portLabelSpacingVertical; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portBorderOffset = portContext.port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?$doubleValue(castToDouble(portContext.port.getProperty(PORT_BORDER_OFFSET_0))):0; - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); - switch (portSide.ordinal) { - case 1: - portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; - portLabelCellRect.y_0 = portSize.y_0 + portBorderOffset + labelBorderOffset; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - break; - case 3: - portLabelCellRect.x_0 = portContext.labelsNextToPort?(portSize.x_0 - portLabelCellRect.width_0) / 2:portSize.x_0 + portLabelSpacingHorizontal; - portLabelCellRect.y_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.height; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - break; - case 2: - portLabelCellRect.x_0 = -portBorderOffset - labelBorderOffset - portLabelCellRect.width_0; - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - } - else { - portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; - } - - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - break; - case 4: - portLabelCellRect.x_0 = portSize.x_0 + portBorderOffset + labelBorderOffset; - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - } - else { - portLabelCellRect.y_0 = portSize.y_0 + portLabelSpacingVertical; - } - - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - } - (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && (insideNorthOrSouthPortLabelAreaHeight = $wnd.Math.max(insideNorthOrSouthPortLabelAreaHeight, portLabelCellRect.height)); - } - insideNorthOrSouthPortLabelAreaHeight > 0 && (castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124).minimumContentAreaSize.y_0 = insideNorthOrSouthPortLabelAreaHeight); -} - -function simpleOutsidePortLabelPlacement(nodeContext, portSide){ - var alwaysAbove, labelHeight, padding, padding0, placeFirstPortDifferently, portContext, portContext$iterator, portContexts, portLabelCell, portLabelCellRect, portSize; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - placeFirstPortDifferently = isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide); - alwaysAbove = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , ALWAYS_OTHER_SAME_SIDE)); - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - if (!portContext.portLabelCell || portContext.portLabelCell.labels.array.length <= 0) { - continue; - } - portSize = portContext.port.getSize(); - portLabelCell = portContext.portLabelCell; - portLabelCellRect = portLabelCell.cellRectangle; - portLabelCellRect.width_0 = (padding0 = portLabelCell.padding , portLabelCell.minimumContentAreaSize.x_0 + padding0.left + padding0.right); - portLabelCellRect.height = (padding = portLabelCell.padding , portLabelCell.minimumContentAreaSize.y_0 + padding.top_0 + padding.bottom); - switch (portSide.ordinal) { - case 1: - if (portContext.labelsNextToPort) { - portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - } - else { - portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - } - - portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - break; - case 3: - if (portContext.labelsNextToPort) { - portLabelCellRect.x_0 = (portSize.x_0 - portLabelCellRect.width_0) / 2; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , CENTER_0)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - } - else { - portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - } - - portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - break; - case 2: - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - } - else { - portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - } - - portLabelCellRect.x_0 = portSize.x_0 + nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - break; - case 4: - if (portContext.labelsNextToPort) { - labelHeight = nodeContext.portLabelsTreatAsGroup?portLabelCellRect.height:castTo($get_11(portLabelCell.labels, 0), 181).getSize().y_0; - portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); - } - else if (placeFirstPortDifferently || alwaysAbove) { - portLabelCellRect.y_0 = -portLabelCellRect.height - nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - } - else { - portLabelCellRect.y_0 = portSize.y_0 + nodeContext.portLabelSpacingVertical; - $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , TOP)); - } - - portLabelCellRect.x_0 = -portLabelCellRect.width_0 - nodeContext.portLabelSpacingHorizontal; - $setHorizontalAlignment(portLabelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - } - placeFirstPortDifferently = false; - } -} - -function $clinit_PortPlacementCalculator(){ - $clinit_PortPlacementCalculator = emptyMethod; - PORT_RATIO_OR_POSITION = new Property_0('portRatioOrPosition', 0); -} - -function calculateVerticalPortXCoordinate(portContext, nodeWidth){ - var port; - port = portContext.port; - return port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth; -} - -function placeHorizontalFixedPosPorts(nodeContext, portSide){ - var port, portContext, portContext$iterator; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); - } -} - -function placeHorizontalFixedRatioPorts(nodeContext, portSide){ - var nodeWidth, port, portContext, portContext$iterator; - nodeWidth = nodeContext.nodeSize.x_0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = nodeWidth * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); - portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); - } -} - -function placeHorizontalFreePorts(nodeContext, portSide){ - var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementWidth, currentXPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - return; - } - insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; - insidePortLabelCellPadding = insidePortLabelCell.padding; - portAlignment = $getPortAlignment(nodeContext, portSide); - availableSpace = insidePortLabelCellRectangle.width_0 - insidePortLabelCellPadding.left - insidePortLabelCellPadding.right; - calculatedPortPlacementWidth = insidePortLabelCell.minimumContentAreaSize.x_0; - currentXPos = insidePortLabelCellRectangle.x_0 + insidePortLabelCellPadding.left; - spaceBetweenPorts = nodeContext.portPortSpacing; - if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { - calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; - portAlignment = CENTER_6; - } - if (availableSpace < calculatedPortPlacementWidth && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { - if (portAlignment == DISTRIBUTED) { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - currentXPos += spaceBetweenPorts; - } - else { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - } - } - else { - if (availableSpace < calculatedPortPlacementWidth) { - calculatedPortPlacementWidth = portAlignment == DISTRIBUTED?calculatedPortPlacementWidth - 2 * nodeContext.portPortSpacing:calculatedPortPlacementWidth; - portAlignment = CENTER_6; - } - switch (portAlignment.ordinal) { - case 3: - currentXPos += (availableSpace - calculatedPortPlacementWidth) / 2; - break; - case 4: - currentXPos += availableSpace - calculatedPortPlacementWidth; - break; - case 0: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - currentXPos += spaceBetweenPorts; - break; - case 1: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - } - } - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = currentXPos + portContext.portMargin.left; - portContext.portPosition.y_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):$doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , NORTH_3)?-port.getSize().y_0:0); - currentXPos += portContext.portMargin.left + portContext.port.getSize().x_0 + portContext.portMargin.right + spaceBetweenPorts; - } -} - -function placeHorizontalPorts(nodeContext){ - $clinit_PortPlacementCalculator(); - switch (nodeContext.portConstraints.ordinal) { - case 5: - placeHorizontalFixedPosPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - placeHorizontalFixedPosPorts(nodeContext, SOUTH_2); - break; - case 4: - placeHorizontalFixedRatioPorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - placeHorizontalFixedRatioPorts(nodeContext, SOUTH_2); - break; - default:placeHorizontalFreePorts(nodeContext, ($clinit_PortSide() , NORTH_3)); - placeHorizontalFreePorts(nodeContext, SOUTH_2); - } -} - -function placeVerticalFixedPosPorts(nodeContext, portSide){ - var nodeWidth, port, portContext, portContext$iterator; - nodeWidth = nodeContext.nodeSize.x_0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); - } -} - -function placeVerticalFixedRatioPorts(nodeContext, portSide){ - var nodeSize, portContext, portContext$iterator; - nodeSize = nodeContext.nodeSize; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = calculateVerticalPortXCoordinate(portContext, nodeSize.x_0); - portContext.portPosition.y_0 = nodeSize.y_0 * $doubleValue(castToDouble(portContext.port.getProperty(PORT_RATIO_OR_POSITION))); - } -} - -function placeVerticalFreePorts(nodeContext, portSide){ - var additionalSpaceBetweenPorts, availableSpace, calculatedPortPlacementHeight, currentYPos, insidePortLabelCell, insidePortLabelCellPadding, insidePortLabelCellRectangle, nodeWidth, port, portAlignment, portContext, portContext$iterator, spaceBetweenPorts; - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - return; - } - insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - insidePortLabelCellRectangle = insidePortLabelCell.cellRectangle; - insidePortLabelCellPadding = insidePortLabelCell.padding; - portAlignment = $getPortAlignment(nodeContext, portSide); - availableSpace = insidePortLabelCellRectangle.height - insidePortLabelCellPadding.top_0 - insidePortLabelCellPadding.bottom; - calculatedPortPlacementHeight = insidePortLabelCell.minimumContentAreaSize.y_0; - currentYPos = insidePortLabelCellRectangle.y_0 + insidePortLabelCellPadding.top_0; - spaceBetweenPorts = nodeContext.portPortSpacing; - nodeWidth = nodeContext.nodeSize.x_0; - if ((portAlignment == ($clinit_PortAlignment() , DISTRIBUTED) || portAlignment == JUSTIFIED) && castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() == 1) { - calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; - portAlignment = CENTER_6; - } - if (availableSpace < calculatedPortPlacementHeight && !nodeContext.sizeOptions.contains(($clinit_SizeOptions() , PORTS_OVERHANG))) { - if (portAlignment == DISTRIBUTED) { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - currentYPos += spaceBetweenPorts; - } - else { - spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - } - } - else { - if (availableSpace < calculatedPortPlacementHeight) { - calculatedPortPlacementHeight = portAlignment == DISTRIBUTED?calculatedPortPlacementHeight - 2 * nodeContext.portPortSpacing:calculatedPortPlacementHeight; - portAlignment = CENTER_6; - } - switch (portAlignment.ordinal) { - case 3: - currentYPos += (availableSpace - calculatedPortPlacementHeight) / 2; - break; - case 4: - currentYPos += availableSpace - calculatedPortPlacementHeight; - break; - case 0: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() + 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - currentYPos += spaceBetweenPorts; - break; - case 1: - additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); - spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); - } - } - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portPosition.x_0 = (port = portContext.port , port.hasProperty(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))?port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0 - $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):nodeWidth + $doubleValue(castToDouble(port.getProperty(PORT_BORDER_OFFSET_0))):port.getSide() == ($clinit_PortSide() , WEST_2)?-port.getSize().x_0:nodeWidth); - portContext.portPosition.y_0 = currentYPos + portContext.portMargin.top_0; - currentYPos += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom + spaceBetweenPorts; - } -} - -function placeVerticalPorts(nodeContext){ - $clinit_PortPlacementCalculator(); - switch (nodeContext.portConstraints.ordinal) { - case 5: - placeVerticalFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - placeVerticalFixedPosPorts(nodeContext, WEST_2); - break; - case 4: - placeVerticalFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - placeVerticalFixedRatioPorts(nodeContext, WEST_2); - break; - default:placeVerticalFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); - placeVerticalFreePorts(nodeContext, WEST_2); - } -} - -var PORT_RATIO_OR_POSITION; -function calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, portSide){ - var bottommostPortBorder, cell, portContext, portContext$iterator; - bottommostPortBorder = 0; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - bottommostPortBorder = $wnd.Math.max(bottommostPortBorder, portContext.portPosition.y_0 + portContext.port.getSize().y_0); - } - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - cell.padding.top_0 = 0; - cell.minimumContentAreaSize.y_0 = bottommostPortBorder; -} - -function calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, portSide){ - var cell, currentPortContext, currentPortHeight, currentPortRatio, minHeight, portContextIterator, portContexts, portLabelsInside, previousPortContext, previousPortHeight, previousPortRatio, requiredSpace; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - if (portContexts.isEmpty()) { - cell.padding.top_0 = 0; - cell.padding.bottom = 0; - return; - } - portLabelsInside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)); - minHeight = 0; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); - portContextIterator = portContexts.iterator_0(); - previousPortContext = null; - previousPortRatio = 0; - previousPortHeight = 0; - while (portContextIterator.hasNext_0()) { - currentPortContext = castTo(portContextIterator.next_1(), 111); - currentPortRatio = $doubleValue(castToDouble(currentPortContext.port.getProperty(($clinit_PortPlacementCalculator() , PORT_RATIO_OR_POSITION)))); - currentPortHeight = currentPortContext.port.getSize().y_0; - if (!previousPortContext) { - !!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.top_0 > 0 && (minHeight = $wnd.Math.max(minHeight, minSizeRequiredToRespectSpacing(nodeContext.surroundingPortMargins.top_0 + currentPortContext.portMargin.top_0, currentPortRatio))); - } - else { - requiredSpace = previousPortHeight + previousPortContext.portMargin.bottom + nodeContext.portPortSpacing + currentPortContext.portMargin.top_0; - minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - currentPortRatio) <= $intern_94 || previousPortRatio == currentPortRatio || isNaN(previousPortRatio) && isNaN(currentPortRatio)?0:requiredSpace / (currentPortRatio - previousPortRatio))); - } - previousPortContext = currentPortContext; - previousPortRatio = currentPortRatio; - previousPortHeight = currentPortHeight; - } - if (!!nodeContext.surroundingPortMargins && nodeContext.surroundingPortMargins.bottom > 0) { - requiredSpace = previousPortHeight + nodeContext.surroundingPortMargins.bottom; - portLabelsInside && (requiredSpace += previousPortContext.portMargin.bottom); - minHeight = $wnd.Math.max(minHeight, ($clinit_DoubleMath() , checkNonNegative($intern_94) , $wnd.Math.abs(previousPortRatio - 1) <= $intern_94 || previousPortRatio == 1 || isNaN(previousPortRatio) && isNaN(1)?0:requiredSpace / (1 - previousPortRatio))); - } - cell.padding.top_0 = 0; - cell.minimumContentAreaSize.y_0 = minHeight; -} - -function calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, portSide){ - var cell, height; - cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 124); - if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).isEmpty()) { - cell.padding.top_0 = 0; - cell.padding.bottom = 0; - return; - } - cell.padding.top_0 = nodeContext.surroundingPortMargins.top_0; - cell.padding.bottom = nodeContext.surroundingPortMargins.bottom; - nodeContext.sizeConstraints.contains(($clinit_SizeConstraint() , PORT_LABELS)) && setupPortMargins_0(nodeContext, portSide); - height = portHeightPlusPortPortSpacing(nodeContext, portSide); - $getPortAlignment(nodeContext, portSide) == ($clinit_PortAlignment() , DISTRIBUTED) && (height += 2 * nodeContext.portPortSpacing); - cell.minimumContentAreaSize.y_0 = height; -} - -function calculateVerticalPortPlacementSize(nodeContext){ - switch (nodeContext.portConstraints.ordinal) { - case 5: - calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - calculateVerticalNodeSizeRequiredByFixedPosPorts(nodeContext, WEST_2); - break; - case 4: - calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, ($clinit_PortSide() , EAST_2)); - calculateVerticalNodeSizeRequiredByFixedRatioPorts(nodeContext, WEST_2); - break; - default:calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, ($clinit_PortSide() , EAST_2)); - calculateVerticalNodeSizeRequiredByFreePorts(nodeContext, WEST_2); - } -} - -function computeVerticalPortMargins(nodeContext, portSide){ - var firstLabelHeight, firstLabelOverhang, labelHeight, labelsBounds, overhang, portContext, portContext$iterator, portHeight; - for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - labelHeight = portContext.portLabelCell?$getMinimumHeight_0(portContext.portLabelCell):0; - if (labelHeight > 0) { - if (portContext.labelsNextToPort) { - portHeight = portContext.port.getSize().y_0; - if (labelHeight > portHeight) { - if (nodeContext.portLabelsTreatAsGroup || portContext.portLabelCell.labels.array.length == 1) { - overhang = (labelHeight - portHeight) / 2; - portContext.portMargin.top_0 = overhang; - portContext.portMargin.bottom = overhang; - } - else { - firstLabelHeight = castTo($get_11(portContext.portLabelCell.labels, 0), 181).getSize().y_0; - firstLabelOverhang = (firstLabelHeight - portHeight) / 2; - portContext.portMargin.top_0 = $wnd.Math.max(0, firstLabelOverhang); - portContext.portMargin.bottom = labelHeight - firstLabelOverhang - portHeight; - } - } - } - else { - portContext.portMargin.bottom = nodeContext.portLabelSpacingVertical + labelHeight; - } - } - else if (isFixed(nodeContext.portLabelsPlacement)) { - labelsBounds = getLabelsBounds(portContext.port); - labelsBounds.y_0 < 0 && (portContext.portMargin.top_0 = -labelsBounds.y_0); - labelsBounds.y_0 + labelsBounds.height > portContext.port.getSize().y_0 && (portContext.portMargin.bottom = labelsBounds.y_0 + labelsBounds.height - portContext.port.getSize().y_0); - } - } -} - -function portHeightPlusPortPortSpacing(nodeContext, portSide){ - var portContext, portContextIterator, result; - result = 0; - portContextIterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); - while (portContextIterator.hasNext_0()) { - portContext = castTo(portContextIterator.next_1(), 111); - result += portContext.portMargin.top_0 + portContext.port.getSize().y_0 + portContext.portMargin.bottom; - portContextIterator.hasNext_0() && (result += nodeContext.portPortSpacing); - } - return result; -} - -function setupPortMargins_0(nodeContext, portSide){ - var alwaysSameSide, alwaysSameSideAbove, bottommostPortContext, portContextIterator, portContexts, portLabelsOutside, spaceEfficient, spaceEfficientPortLabels, topmostPortContext, uniformPortSpacing; - portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); - portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); - alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); - alwaysSameSideAbove = nodeContext.portLabelsPlacement.contains(ALWAYS_OTHER_SAME_SIDE); - spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); - uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); - spaceEfficientPortLabels = !alwaysSameSide && !alwaysSameSideAbove && (spaceEfficient || portContexts.size_1() == 2); - computeVerticalPortMargins(nodeContext, portSide); - topmostPortContext = null; - bottommostPortContext = null; - if (portLabelsOutside) { - portContextIterator = portContexts.iterator_0(); - topmostPortContext = castTo(portContextIterator.next_1(), 111); - bottommostPortContext = topmostPortContext; - while (portContextIterator.hasNext_0()) { - bottommostPortContext = castTo(portContextIterator.next_1(), 111); - } - topmostPortContext.portMargin.top_0 = 0; - bottommostPortContext.portMargin.bottom = 0; - spaceEfficientPortLabels && !topmostPortContext.labelsNextToPort && (topmostPortContext.portMargin.bottom = 0); - } - if (uniformPortSpacing) { - unifyPortMargins_0(portContexts); - if (portLabelsOutside) { - topmostPortContext.portMargin.top_0 = 0; - bottommostPortContext.portMargin.bottom = 0; - } - } -} - -function unifyPortMargins_0(portContexts){ - var maxBottom, maxTop, portContext, portContext$iterator, portContext$iterator0; - maxTop = 0; - maxBottom = 0; - for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { - portContext = castTo(portContext$iterator0.next_1(), 111); - maxTop = $wnd.Math.max(maxTop, portContext.portMargin.top_0); - maxBottom = $wnd.Math.max(maxBottom, portContext.portMargin.bottom); - } - for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { - portContext = castTo(portContext$iterator.next_1(), 111); - portContext.portMargin.top_0 = maxTop; - portContext.portMargin.bottom = maxBottom; - } -} - -function $removeOverlaps(overlapRemover){ - var alreadyPlacedNodes, currNode, currNode$iterator, currRect, overlapNode, overlapNode$iterator, overlapRect, stripSize, verticalGap, yPos; - verticalGap = overlapRemover.gapVertical; - alreadyPlacedNodes = new HashSet; - stripSize = 0; - for (currNode$iterator = new ArrayList$1(overlapRemover.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { - currNode = castTo($next_7(currNode$iterator), 222); - yPos = 0; - $sort_0(currNode.overlappingNodes, new GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); - for (overlapNode$iterator = $listIterator_2(currNode.overlappingNodes, 0); overlapNode$iterator.currentNode != overlapNode$iterator.this$01.tail;) { - overlapNode = castTo($next_10(overlapNode$iterator), 222); - if (alreadyPlacedNodes.map_0.containsKey(overlapNode)) { - currRect = currNode.rectangle; - overlapRect = overlapNode.rectangle; - yPos < overlapRect.y_0 + overlapRect.height + verticalGap && yPos + currRect.height + verticalGap > overlapRect.y_0 && (yPos = overlapRect.y_0 + overlapRect.height + verticalGap); - } - } - currNode.rectangle.y_0 = yPos; - alreadyPlacedNodes.map_0.put(currNode, alreadyPlacedNodes); - stripSize = $wnd.Math.max(stripSize, currNode.rectangle.y_0 + currNode.rectangle.height); - } - return stripSize; -} - -function GreedyRectangleStripOverlapRemover(){ -} - -function compareByYCoordinate(node1, node2){ - return compare_4(node1.rectangle.y_0, node2.rectangle.y_0); -} - -defineClass(1829, 1, {}, GreedyRectangleStripOverlapRemover); -var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover', 1829); -function GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type(){ -} - -defineClass(1830, 1, $intern_88, GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); -_.compare_1 = function compare_17(arg0, arg1){ - return compareByYCoordinate(castTo(arg0, 222), castTo(arg1, 222)); -} -; -_.equals_0 = function equals_69(other){ - return this === other; -} -; -_.reversed = function reversed_9(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type', 1830); -function $computeOverlaps(this$static){ - var currNode, currNode$iterator, entry, entryIterator, intersectingNode, intersectingNode$iterator, intersectingNodes, intersectingRectangle, scanlinePos; - intersectingNodes = new TreeSet_0(castTo(checkNotNull(new RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type), 62)); - scanlinePos = $intern_60; - for (currNode$iterator = new ArrayList$1(this$static.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { - currNode = castTo($next_7(currNode$iterator), 222); - scanlinePos = currNode.rectangle.x_0; - while (intersectingNodes.map_0.size_0 != 0) { - intersectingRectangle = castTo(getKeyOrNSE($getFirstEntry(intersectingNodes.map_0)), 222); - if (intersectingRectangle.rectangle.x_0 + intersectingRectangle.rectangle.width_0 < scanlinePos) { - $remove_26(intersectingNodes.map_0, intersectingRectangle) != null; - } - else { - break; - } - } - for (intersectingNode$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(intersectingNodes.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(intersectingNode$iterator.val$entryIterator2.iter);) { - intersectingNode = (entry = $next_11(intersectingNode$iterator.val$entryIterator2) , castTo(entry.getKey(), 222)); - $add_7(intersectingNode.overlappingNodes, currNode); - $add_7(currNode.overlappingNodes, intersectingNode); - } - $put_12(intersectingNodes.map_0, currNode, ($clinit_Boolean() , FALSE_0)) == null; - } -} - -function $exportRectangle(this$static, rectangleNode){ - var originalRectangle, rectangle; - rectangle = rectangleNode.rectangle; - originalRectangle = rectangleNode.originalRectangle; - switch (this$static.overlapRemovalDirection.ordinal) { - case 0: - originalRectangle.y_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; - break; - case 1: - originalRectangle.y_0 += this$static.startCoordinate; - break; - case 2: - originalRectangle.x_0 = this$static.startCoordinate - rectangle.height - rectangle.y_0; - break; - case 3: - originalRectangle.x_0 = this$static.startCoordinate + rectangle.y_0; - } -} - -function $importRectangle(this$static, rectangle){ - switch (this$static.overlapRemovalDirection.ordinal) { - case 0: - case 1: - return rectangle; - case 2: - case 3: - return new ElkRectangle_0(rectangle.y_0, 0, rectangle.height, rectangle.width_0); - default:return null; - } -} - -function $removeOverlaps_0(this$static){ - var stripSize; - !this$static.overlapRemovalStrategy && (this$static.overlapRemovalStrategy = new GreedyRectangleStripOverlapRemover); - $sort(this$static.rectangleNodes, new RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); - $computeOverlaps(this$static); - stripSize = $removeOverlaps(this$static); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.rectangleNodes, 16)), new RectangleStripOverlapRemover$lambda$1$Type(this$static)); - return stripSize; -} - -function $withGap(this$static, theVerticalGap){ - this$static.gapVertical = theVerticalGap; - return this$static; -} - -function $withStartCoordinate(this$static, coordinate){ - this$static.startCoordinate = coordinate; - return this$static; -} - -function RectangleStripOverlapRemover(){ - this.rectangleNodes = new ArrayList; -} - -function compareLeftRectangleBorders(rn1, rn2){ - return compare_4(rn1.rectangle.x_0, rn2.rectangle.x_0); -} - -function compareRightRectangleBorders(rn1, rn2){ - return compare_4(rn1.rectangle.x_0 + rn1.rectangle.width_0, rn2.rectangle.x_0 + rn2.rectangle.width_0); -} - -function createForDirection(direction){ - var remover; - remover = new RectangleStripOverlapRemover; - remover.overlapRemovalDirection = direction; - return remover; -} - -defineClass(1786, 1, {}, RectangleStripOverlapRemover); -_.gapVertical = 5; -_.startCoordinate = 0; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover', 1786); -function RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type(){ -} - -defineClass(1787, 1, $intern_88, RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); -_.compare_1 = function compare_18(arg0, arg1){ - return compareLeftRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); -} -; -_.equals_0 = function equals_70(other){ - return this === other; -} -; -_.reversed = function reversed_10(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type', 1787); -function RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type(){ -} - -defineClass(1789, 1, $intern_88, RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type); -_.compare_1 = function compare_19(arg0, arg1){ - return compareRightRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); -} -; -_.equals_0 = function equals_71(other){ - return this === other; -} -; -_.reversed = function reversed_11(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type', 1789); -function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection = emptyMethod; - UP = new RectangleStripOverlapRemover$OverlapRemovalDirection('UP', 0); - DOWN = new RectangleStripOverlapRemover$OverlapRemovalDirection('DOWN', 1); - LEFT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('LEFT', 2); - RIGHT_0 = new RectangleStripOverlapRemover$OverlapRemovalDirection('RIGHT', 3); -} - -function RectangleStripOverlapRemover$OverlapRemovalDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_21(name_0){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); - return valueOf(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map() , $MAP_9), name_0); -} - -function values_27(){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]); -} - -defineClass(406, 22, {3:1, 35:1, 22:1, 406:1}, RectangleStripOverlapRemover$OverlapRemovalDirection); -var DOWN, LEFT_0, RIGHT_0, UP; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit = createForEnum('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/OverlapRemovalDirection', 406, Ljava_lang_Enum_2_classLit, values_27, valueOf_21); -function $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map(){ - $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection$Map = emptyMethod; - $MAP_9 = createValueOfMap(($clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$OverlapRemovalDirection_2_classLit, 1), $intern_36, 406, 0, [UP, DOWN, LEFT_0, RIGHT_0]))); -} - -var $MAP_9; -function RectangleStripOverlapRemover$RectangleNode(originalRectangle, rectangle){ - this.overlappingNodes = new LinkedList; - this.originalRectangle = originalRectangle; - this.rectangle = rectangle; -} - -defineClass(222, 1, {222:1}, RectangleStripOverlapRemover$RectangleNode); -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$RectangleNode_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/RectangleNode', 222); -function RectangleStripOverlapRemover$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1788, 1, $intern_19, RectangleStripOverlapRemover$lambda$1$Type); -_.accept = function accept_51(arg0){ - $exportRectangle(this.$$outer_0, castTo(arg0, 222)); -} -; -var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/lambda$1$Type', 1788); -function $packPolyominoes(polyHolder){ - var grid, next, offX, offY, poly, poly$iterator, polys, successorBasedOnCost; - polys = polyHolder.polys; - grid = polyHolder.grid; - switch (castTo($getProperty(polyHolder, ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT)), 427).ordinal) { - case 0: - $sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparator)); - break; - case 1: - default:$sort(polys, new Comparators$ReversedComparator(new PolyominoCompactor$MinPerimeterComparatorWithShape)); - } - switch (castTo($getProperty(polyHolder, POLYOMINO_HIGH_LEVEL_SORT), 428).ordinal) { - case 1: - $sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); - $sort(polys, new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); - $sort(polys, new PolyominoCompactor$CornerCasesGreaterThanRestComparator); - break; - case 0: - default:$sort(polys, new PolyominoCompactor$MinNumOfExtensionsComparator); - $sort(polys, new PolyominoCompactor$MinNumOfExtensionDirectionsComparator); - } - switch (castTo($getProperty(polyHolder, POLYOMINO_TRAVERSAL_STRATEGY), 250).ordinal) { - case 0: - successorBasedOnCost = new SuccessorMaxNormWindingInMathPosSense; - break; - case 1: - successorBasedOnCost = new SuccessorLineByLine; - break; - case 2: - successorBasedOnCost = new SuccessorManhattan; - break; - case 3: - successorBasedOnCost = new SuccessorJitter; - break; - case 5: - successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorManhattan); - break; - case 4: - successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorLineByLine); - break; - case 7: - successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorLineByLine), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); - break; - case 8: - successorBasedOnCost = new SuccessorCombination(new SuccessorQuadrantsGeneric(new SuccessorJitter), new SuccessorQuadrantsGeneric(new SuccessorManhattan)); - break; - case 6: - default:successorBasedOnCost = new SuccessorQuadrantsGeneric(new SuccessorJitter); - } - for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - poly = castTo($next_7(poly$iterator), 167); - offX = 0; - offY = 0; - next = new Pair(valueOf_4(offX), valueOf_4(offY)); - while ($intersectsWithCenterBased_0(grid, poly, offX, offY)) { - next = castTo(successorBasedOnCost.apply_3(next, poly), 46); - offX = castTo(next.first, 19).value_0; - offY = castTo(next.second, 19).value_0; - } - $addFilledCellsFrom_0(grid, poly, offX, offY); - } -} - -function $compare_1(o1, o2){ - var detectDirections, dirSet, numDir1, numDir2; - detectDirections = new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - numDir1 = dirSet.size_1(); - numDir1 = numDir1 == 2?1:0; - numDir1 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir1 = 0); - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); - numDir2 = dirSet.size_1(); - numDir2 = numDir2 == 2?1:0; - numDir2 == 1 && eq(mod(castTo($collect_1($filter(dirSet.parallelStream(), new PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type), reducing(valueOf_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir2 = 0); - if (numDir1 < numDir2) { - return -1; - } - if (numDir1 == numDir2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$CornerCasesGreaterThanRestComparator(){ -} - -defineClass(1304, 1, $intern_88, PolyominoCompactor$CornerCasesGreaterThanRestComparator); -_.compare_1 = function compare_20(o1, o2){ - return $compare_1(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_72(other){ - return this === other; -} -; -_.reversed = function reversed_12(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator', 1304); -function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type(){ -} - -defineClass(1307, 1, {}, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type); -_.apply_0 = function apply_40(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type', 1307); -function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type(){ -} - -defineClass(1308, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type); -_.test_0 = function test_10(arg0){ - return castTo(arg0, 323).horizontal; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type', 1308); -function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type(){ -} - -defineClass(1309, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type); -_.test_0 = function test_11(arg0){ - return castTo(arg0, 323).horizontal; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type', 1309); -function $compare_2(o1, o2){ - var detectDirections, dirSet, numDir1, numDir2; - detectDirections = new PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - numDir1 = dirSet.size_1(); - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); - numDir2 = dirSet.size_1(); - if (numDir1 < numDir2) { - return -1; - } - if (numDir1 == numDir2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinNumOfExtensionDirectionsComparator(){ -} - -defineClass(1302, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionDirectionsComparator); -_.compare_1 = function compare_21(o1, o2){ - return $compare_2(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_73(other){ - return this === other; -} -; -_.reversed = function reversed_13(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator', 1302); -function PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type(){ -} - -defineClass(1305, 1, {}, PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type); -_.apply_0 = function apply_41(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type', 1305); -function $compare_3(o1, o2){ - var numExt1, numExt2; - numExt1 = o1.polyominoExtensions.array.length; - numExt2 = o2.polyominoExtensions.array.length; - if (numExt1 < numExt2) { - return -1; - } - if (numExt1 == numExt2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinNumOfExtensionsComparator(){ -} - -defineClass(767, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionsComparator); -_.compare_1 = function compare_22(o1, o2){ - return $compare_3(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_74(other){ - return this === other; -} -; -_.reversed = function reversed_14(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinNumOfExtensionsComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinNumOfExtensionsComparator', 767); -function $compare_4(o1, o2){ - var halfPeri1, halfPeri2; - halfPeri1 = o1.xSize + o1.ySize; - halfPeri2 = o2.xSize + o2.ySize; - if (halfPeri1 < halfPeri2) { - return -1; - } - if (halfPeri1 == halfPeri2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinPerimeterComparator(){ -} - -defineClass(1300, 1, $intern_88, PolyominoCompactor$MinPerimeterComparator); -_.compare_1 = function compare_23(o1, o2){ - return $compare_4(castTo(o1, 321), castTo(o2, 321)); -} -; -_.equals_0 = function equals_75(other){ - return this === other; -} -; -_.reversed = function reversed_15(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparator', 1300); -function $compare_5(o1, o2){ - var height, val1, val2, width_0; - width_0 = o1.xSize; - height = o1.ySize; - width_0 < height?(width_0 *= width_0):(height *= height); - val1 = width_0 + height; - width_0 = o2.xSize; - height = o2.ySize; - width_0 < height?(width_0 *= width_0):(height *= height); - val2 = width_0 + height; - if (val1 < val2) { - return -1; - } - if (val1 == val2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$MinPerimeterComparatorWithShape(){ -} - -defineClass(1301, 1, $intern_88, PolyominoCompactor$MinPerimeterComparatorWithShape); -_.compare_1 = function compare_24(o1, o2){ - return $compare_5(castTo(o1, 321), castTo(o2, 321)); -} -; -_.equals_0 = function equals_76(other){ - return this === other; -} -; -_.reversed = function reversed_16(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$MinPerimeterComparatorWithShape_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/MinPerimeterComparatorWithShape', 1301); -function $compare_6(o1, o2){ - var detectDirections, dirSet, numDir1, numDir2; - detectDirections = new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o1.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - numDir1 = dirSet.size_1(); - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(o2.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [UNORDERED, IDENTITY_FINISH]))), 21); - numDir2 = dirSet.size_1(); - numDir1 = numDir1 == 1?1:0; - numDir2 = numDir2 == 1?1:0; - if (numDir1 < numDir2) { - return -1; - } - if (numDir1 == numDir2) { - return 0; - } - return 1; -} - -function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator(){ -} - -defineClass(1303, 1, $intern_88, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); -_.compare_1 = function compare_25(o1, o2){ - return $compare_6(castTo(o1, 167), castTo(o2, 167)); -} -; -_.equals_0 = function equals_77(other){ - return this === other; -} -; -_.reversed = function reversed_17(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator', 1303); -function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type(){ -} - -defineClass(1306, 1, {}, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type); -_.apply_0 = function apply_42(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type', 1306); -function fillPolyomino(poly){ - var eastProfile, height, northProfile, southProfile, westProfile, width_0, x_0, xi, xi0, xi1, y_0, yi, yi0, yi1; - width_0 = poly.xSize; - northProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); - southProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); - height = poly.ySize; - eastProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); - westProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); - for (xi0 = 0; xi0 < width_0; xi0++) { - y_0 = 0; - while (y_0 < height && !$isBlocked(poly, xi0, y_0)) { - ++y_0; - } - northProfile[xi0] = y_0; - } - for (xi1 = 0; xi1 < width_0; xi1++) { - y_0 = height - 1; - while (y_0 >= 0 && !$isBlocked(poly, xi1, y_0)) { - --y_0; - } - southProfile[xi1] = y_0; - } - for (yi0 = 0; yi0 < height; yi0++) { - x_0 = 0; - while (x_0 < width_0 && !$isBlocked(poly, x_0, yi0)) { - ++x_0; - } - eastProfile[yi0] = x_0; - } - for (yi1 = 0; yi1 < height; yi1++) { - x_0 = width_0 - 1; - while (x_0 >= 0 && !$isBlocked(poly, x_0, yi1)) { - --x_0; - } - westProfile[yi1] = x_0; - } - for (xi = 0; xi < width_0; xi++) { - for (yi = 0; yi < height; yi++) { - xi < westProfile[yi] && xi > eastProfile[yi] && yi < southProfile[xi] && yi > northProfile[xi] && $set_5(poly, xi, yi, false, true); - } - } -} - -function $apply_4(this$static, coords, poly){ - return poly.polyominoExtensions.array.length > 0?$apply_9(this$static.externalFun, coords, poly):$apply_9(this$static.normalFun, coords, poly); -} - -function SuccessorCombination(normalFun, externalFun){ - this.normalFun = normalFun; - this.externalFun = externalFun; -} - -defineClass(777, 1, {}, SuccessorCombination); -_.apply_3 = function apply_43(coords, poly){ - return $apply_4(this, castTo(coords, 46), castTo(poly, 167)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorCombination_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorCombination', 777); -function $apply_5(coords){ - var cost, newX, newY, x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - newX = x_0; - newY = y_0; - cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); - if (x_0 <= 0 && x_0 == y_0) { - newX = 0; - newY = y_0 - 1; - } - else { - if (x_0 == -cost && y_0 != cost) { - newX = y_0; - newY = x_0; - y_0 >= 0 && ++newX; - } - else { - newX = -y_0; - newY = x_0; - } - } - return new Pair(valueOf_4(newX), valueOf_4(newY)); -} - -function SuccessorJitter(){ -} - -defineClass(644, 1, {}, SuccessorJitter); -_.apply_3 = function apply_44(coords, poly){ - var lastArg; - return $apply_5((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorJitter_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorJitter', 644); -function $apply_6(coords){ - var x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - if (x_0 >= 0) { - if (x_0 == y_0) { - return new Pair(valueOf_4(-x_0 - 1), valueOf_4(-x_0 - 1)); - } - if (x_0 == -y_0) { - return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); - } - } - if ($wnd.Math.abs(x_0) > $wnd.Math.abs(y_0)) { - if (x_0 < 0) { - return new Pair(valueOf_4(-x_0), valueOf_4(y_0)); - } - return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); - } - return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); -} - -function SuccessorLineByLine(){ -} - -defineClass(643, 1, {}, SuccessorLineByLine); -_.apply_3 = function apply_45(coords, poly){ - var lastArg; - return $apply_6((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorLineByLine_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorLineByLine', 643); -function $apply_7(coords){ - var newX, newY, x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - newX = x_0; - newY = y_0; - if (x_0 == 0 && y_0 == 0) { - newY -= 1; - } - else { - if (x_0 == -1 && y_0 <= 0) { - newX = 0; - newY -= 2; - } - else { - if (x_0 <= 0 && y_0 > 0) { - newX -= 1; - newY -= 1; - } - else { - if (x_0 >= 0 && y_0 < 0) { - newX += 1; - newY += 1; - } - else { - if (x_0 > 0 && y_0 >= 0) { - newX -= 1; - newY += 1; - } - else { - newX += 1; - newY -= 1; - } - } - } - } - } - return new Pair(valueOf_4(newX), valueOf_4(newY)); -} - -function SuccessorManhattan(){ -} - -defineClass(568, 1, {}, SuccessorManhattan); -_.apply_3 = function apply_46(coords, poly){ - var lastArg; - return $apply_7((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorManhattan_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorManhattan', 568); -function $apply_8(coords){ - var cost, x_0, y_0; - x_0 = castTo(coords.first, 19).value_0; - y_0 = castTo(coords.second, 19).value_0; - cost = $wnd.Math.max($wnd.Math.abs(x_0), $wnd.Math.abs(y_0)); - if (x_0 < cost && y_0 == -cost) { - return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); - } - if (x_0 == cost && y_0 < cost) { - return new Pair(valueOf_4(x_0), valueOf_4(y_0 + 1)); - } - if (x_0 >= -cost && y_0 == cost) { - return new Pair(valueOf_4(x_0 - 1), valueOf_4(y_0)); - } - return new Pair(valueOf_4(x_0), valueOf_4(y_0 - 1)); -} - -function SuccessorMaxNormWindingInMathPosSense(){ -} - -defineClass(1356, 1, {}, SuccessorMaxNormWindingInMathPosSense); -_.apply_3 = function apply_47(coords, poly){ - var lastArg; - return $apply_8((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorMaxNormWindingInMathPosSense_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorMaxNormWindingInMathPosSense', 1356); -function $apply_9(this$static, coords, poly){ - return $apply_10(this$static, castTo(coords, 46), castTo(poly, 167)); -} - -function $apply_10(this$static, coords, poly){ - var containsNeg, containsPos, detectDirections, dirSet, invalid, newX, newY, nextCoords; - if (!equals_Ljava_lang_Object__Z__devirtual$(poly, this$static.lastPoly)) { - this$static.lastPoly = poly; - detectDirections = new SuccessorQuadrantsGeneric$lambda$0$Type; - dirSet = castTo($collect_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(poly.polyominoExtensions, 16)), detectDirections), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); - this$static.posX = true; - this$static.posY = true; - this$static.negX = true; - this$static.negY = true; - containsPos = dirSet.contains(($clinit_Direction() , NORTH)); - containsNeg = dirSet.contains(SOUTH); - containsPos && !containsNeg && (this$static.posY = false); - !containsPos && containsNeg && (this$static.negY = false); - containsPos = dirSet.contains(EAST); - containsNeg = dirSet.contains(WEST); - containsPos && !containsNeg && (this$static.negX = false); - !containsPos && containsNeg && (this$static.posX = false); - } - nextCoords = castTo(this$static.costFun.apply_3(coords, poly), 46); - newX = castTo(nextCoords.first, 19).value_0; - newY = castTo(nextCoords.second, 19).value_0; - invalid = false; - newX < 0?this$static.negX || (invalid = true):this$static.posX || (invalid = true); - newY < 0?this$static.negY || (invalid = true):this$static.posY || (invalid = true); - return invalid?$apply_10(this$static, nextCoords, poly):nextCoords; -} - -function SuccessorQuadrantsGeneric(costFun){ - this.costFun = costFun; -} - -defineClass(400, 1, {}, SuccessorQuadrantsGeneric); -_.apply_3 = function apply_48(coords, poly){ - return $apply_9(this, coords, poly); -} -; -_.negX = false; -_.negY = false; -_.posX = false; -_.posY = false; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric', 400); -function SuccessorQuadrantsGeneric$lambda$0$Type(){ -} - -defineClass(1357, 1, {}, SuccessorQuadrantsGeneric$lambda$0$Type); -_.apply_0 = function apply_49(arg0){ - return castTo(arg0, 324).first; -} -; -var Lorg_eclipse_elk_alg_common_polyomino_SuccessorQuadrantsGeneric$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorQuadrantsGeneric/lambda$0$Type', 1357); -function $clinit_Direction(){ - $clinit_Direction = emptyMethod; - NORTH = new Direction('NORTH', 0); - EAST = new Direction('EAST', 1); - SOUTH = new Direction('SOUTH', 2); - WEST = new Direction('WEST', 3); - NORTH.horizontal = false; - EAST.horizontal = true; - SOUTH.horizontal = false; - WEST.horizontal = true; -} - -function Direction(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_22(name_0){ - $clinit_Direction(); - return valueOf(($clinit_Direction$Map() , $MAP_10), name_0); -} - -function values_28(){ - $clinit_Direction(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]); -} - -defineClass(323, 22, {3:1, 35:1, 22:1, 323:1}, Direction); -_.horizontal = false; -var EAST, NORTH, SOUTH, WEST; -var Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit = createForEnum('org.eclipse.elk.alg.common.polyomino.structures', 'Direction', 323, Ljava_lang_Enum_2_classLit, values_28, valueOf_22); -function $clinit_Direction$Map(){ - $clinit_Direction$Map = emptyMethod; - $MAP_10 = createValueOfMap(($clinit_Direction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_polyomino_structures_Direction_2_classLit, 1), $intern_36, 323, 0, [NORTH, EAST, SOUTH, WEST]))); -} - -var $MAP_10; -function $incModTen(num){ - if (num > 8) { - return 0; - } - return num + 1; -} - -function $isBlocked(this$static, x_0, y_0){ - try { - return eq($retrieve(this$static, x_0, y_0), 1); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -function $isEmpty_0(this$static, x_0, y_0){ - try { - return eq($retrieve(this$static, x_0, y_0), 0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -function $isWeaklyBlocked(this$static, x_0, y_0){ - try { - return eq($retrieve(this$static, x_0, y_0), 2); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -function $retrieve(this$static, x_0, y_0){ - var value_0, xRest, xWord; - xWord = x_0 >> 5; - xRest = x_0 & 31; - value_0 = and_0(shru_0(this$static.grid[y_0][xWord], toInt_0(shl_0(xRest, 1))), 3); - return value_0; -} - -function $set_5(this$static, x_0, y_0, msb, lsb){ - var mask, xRest, xWord; - try { - if (x_0 >= this$static.xSize) { - throw toJs(new ArrayIndexOutOfBoundsException); - } - xWord = x_0 >> 5; - xRest = x_0 & 31; - mask = shl_0(1, toInt_0(shl_0(xRest, 1))); - lsb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); - mask = shl_0(mask, 1); - msb?(this$static.grid[y_0][xWord] = or_0(this$static.grid[y_0][xWord], mask)):(this$static.grid[y_0][xWord] = and_0(this$static.grid[y_0][xWord], not_0(mask))); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 320)) { - throw toJs(new IndexOutOfBoundsException_0('Grid is only of size ' + this$static.xSize + '*' + this$static.ySize + '. Requested point (' + x_0 + ', ' + y_0 + ') is out of bounds.')); - } - else - throw toJs($e0); - } -} - -defineClass(1298, 1, {}); -_.toString_0 = function toString_78(){ - var count, item_0, output, x_0, x0, y_0; - output = ' '; - count = valueOf_4(0); - for (x0 = 0; x0 < this.xSize; x0++) { - output += '' + count.value_0; - count = valueOf_4($incModTen(count.value_0)); - } - output += '\n'; - count = valueOf_4(0); - for (y_0 = 0; y_0 < this.ySize; y_0++) { - output += '' + count.value_0; - count = valueOf_4($incModTen(count.value_0)); - for (x_0 = 0; x_0 < this.xSize; x_0++) { - item_0 = $retrieve(this, x_0, y_0); - compare_2(item_0, 0) == 0?(output += '_'):compare_2(item_0, 1) == 0?(output += 'X'):(output += '0'); - } - output += '\n'; - } - return $substring_1(output, 0, output.length - 1); -} -; -_.xSize = 0; -_.ySize = 0; -var Lorg_eclipse_elk_alg_common_polyomino_structures_TwoBitGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'TwoBitGrid', 1298); -function $addFilledCellsFrom(this$static, other, xOffset, yOffset){ - var x_0, xTranslated, y_0, yTranslated; - for (x_0 = 0; x_0 < other.xSize; x_0++) { - xTranslated = x_0 - other.xCenter + xOffset; - for (y_0 = 0; y_0 < other.ySize; y_0++) { - yTranslated = y_0 - other.yCenter + yOffset; - $isBlocked(other, x_0, y_0)?$isWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated) || $setBlockedCenterBased(this$static, xTranslated, yTranslated):$isWeaklyBlocked(other, x_0, y_0) && ($isBlockedCenterBased(this$static, xTranslated, yTranslated) || $setWeaklyBlockedCenterBased(this$static, xTranslated, yTranslated)); - } - } -} - -function $addFilledCellsFrom_0(this$static, other, xOffset, yOffset){ - var ext, ext$iterator; - $addFilledCellsFrom(this$static, other, xOffset, yOffset); - $setX(other, this$static.xCenter - other.xCenter + xOffset); - $setY(other, this$static.yCenter - other.yCenter + yOffset); - for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { - ext = castTo($next_7(ext$iterator), 324); - switch (ext.first.ordinal) { - case 0: - $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, 0, other.x_0 + ext.third.value_0, other.y_0 - 1); - break; - case 1: - $weaklyBlockArea(this$static, other.x_0 + other.xSize, other.y_0 + ext.second.value_0, this$static.xSize - 1, other.y_0 + ext.third.value_0); - break; - case 2: - $weaklyBlockArea(this$static, other.x_0 + ext.second.value_0, other.y_0 + other.ySize, other.x_0 + ext.third.value_0, this$static.ySize - 1); - break; - default:$weaklyBlockArea(this$static, 0, other.y_0 + ext.second.value_0, other.x_0 - 1, other.y_0 + ext.third.value_0); - } - } -} - -function $getFilledBounds(this$static){ - var gridHeight, gridWidth, height, maxX, maxY, minX, minY, width_0, xi, yi; - gridWidth = this$static.xSize; - gridHeight = this$static.ySize; - minX = $intern_0; - maxX = $intern_42; - minY = $intern_0; - maxY = $intern_42; - for (xi = 0; xi < gridWidth; ++xi) { - for (yi = 0; yi < gridHeight; ++yi) { - if ($isBlocked(this$static, xi, yi)) { - minX = $wnd.Math.min(minX, xi); - maxX = $wnd.Math.max(maxX, xi); - minY = $wnd.Math.min(minY, yi); - maxY = $wnd.Math.max(maxY, yi); - } - } - } - width_0 = maxX - minX + 1; - height = maxY - minY + 1; - return new Quadruple(valueOf_4(minX), valueOf_4(minY), valueOf_4(width_0), valueOf_4(height)); -} - -function $intersectsWithCenterBased(this$static, other, xOffset, yOffset){ - var x_0, xTranslated, y_0, yTranslated, xt, yt; - for (x_0 = 0; x_0 < other.xSize; x_0++) { - xTranslated = x_0 - other.xCenter + xOffset; - for (y_0 = 0; y_0 < other.ySize; y_0++) { - yTranslated = y_0 - other.yCenter + yOffset; - if ((xt = xTranslated , yt = yTranslated , xt += this$static.xCenter , yt += this$static.yCenter , xt >= 0 && yt >= 0 && xt < this$static.xSize && yt < this$static.ySize) && (!$isEmpty_0(other, x_0, y_0) && $isBlockedCenterBased(this$static, xTranslated, yTranslated) || $isBlocked(other, x_0, y_0) && !$isEmptyCenterBased(this$static, xTranslated, yTranslated))) { - return true; - } - } - } - return false; -} - -function $intersectsWithCenterBased_0(this$static, other, xOffset, yOffset){ - var bottomY, ext, ext$iterator, intersects, leftX, rightX, topY; - if ($intersectsWithCenterBased(this$static, other, xOffset, yOffset)) { - return true; - } - else { - for (ext$iterator = new ArrayList$1(other.polyominoExtensions); ext$iterator.i < ext$iterator.this$01.array.length;) { - ext = castTo($next_7(ext$iterator), 324); - intersects = false; - leftX = this$static.xCenter - other.xCenter + xOffset; - rightX = leftX + other.xSize; - topY = this$static.yCenter - other.yCenter + yOffset; - bottomY = topY + other.ySize; - switch (ext.first.ordinal) { - case 0: - intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, 0, leftX + ext.third.value_0, topY - 1); - break; - case 1: - intersects = $weaklyIntersectsArea(this$static, rightX, topY + ext.second.value_0, this$static.xSize - 1, topY + ext.third.value_0); - break; - case 2: - intersects = $weaklyIntersectsArea(this$static, leftX + ext.second.value_0, bottomY, leftX + ext.third.value_0, this$static.ySize - 1); - break; - default:intersects = $weaklyIntersectsArea(this$static, 0, topY + ext.second.value_0, leftX - 1, topY + ext.third.value_0); - } - if (intersects) { - return true; - } - } - } - return false; -} - -function $isBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - return $isBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $isEmptyCenterBased(this$static, x_0, y_0){ - var e; - try { - return $isEmpty_0(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $isWeaklyBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - return $isWeaklyBlocked(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $reinitialize(this$static, width_0, height){ - this$static.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); - this$static.xSize = width_0; - this$static.ySize = height; - this$static.xCenter = width_0 - 1 >> 1; - this$static.yCenter = height - 1 >> 1; -} - -function $setBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, false, true); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $setWeaklyBlockedCenterBased(this$static, x_0, y_0){ - var e; - try { - $set_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, true, false); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - e = $e0; - throw toJs(new IndexOutOfBoundsException_0(e.detailMessage + ' Given center based coordinates were (' + x_0 + ', ' + y_0 + ').')); - } - else - throw toJs($e0); - } -} - -function $weaklyBlockArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ - var xi, yi; - for (yi = yUpperleft; yi <= yBottomRight; yi++) { - for (xi = xUpperLeft; xi <= xBottomRight; xi++) { - $isBlocked(this$static, xi, yi) || $set_5(this$static, xi, yi, true, false); - } - } -} - -function $weaklyIntersectsArea(this$static, xUpperLeft, yUpperleft, xBottomRight, yBottomRight){ - var xi, yi; - for (yi = yUpperleft; yi <= yBottomRight; yi++) { - for (xi = xUpperLeft; xi <= xBottomRight; xi++) { - if ($isBlocked(this$static, xi, yi)) { - return true; - } - } - } - return false; -} - -function PlanarGrid(width_0, height){ - this.grid = initMultidimensionalArray(J_classLit, [$intern_16, $intern_62], [364, 25], 14, [height, round_int($wnd.Math.ceil(width_0 / 32))], 2); - this.xSize = width_0; - this.ySize = height; - this.xCenter = width_0 - 1 >> 1; - this.yCenter = height - 1 >> 1; -} - -defineClass(321, 1298, {321:1}, PlanarGrid); -_.xCenter = 0; -_.yCenter = 0; -var Lorg_eclipse_elk_alg_common_polyomino_structures_PlanarGrid_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'PlanarGrid', 321); -function $setX(this$static, val){ - this$static.x_0 = val; -} - -function $setY(this$static, val){ - this$static.y_0 = val; -} - -function Polyomino(extensions){ - PlanarGrid.call(this, 0, 0); - this.polyominoExtensions = extensions; -} - -defineClass(167, 321, {321:1, 167:1}); -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyomino_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyomino', 167); -var Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IPropertyHolder'); -function $copyProperties(this$static, other){ - var otherMap; - if (!other) { - return this$static; - } - otherMap = other.getAllProperties(); - otherMap.isEmpty() || (!this$static.propertyMap?(this$static.propertyMap = new HashMap_1(otherMap)):$putAll(this$static.propertyMap, otherMap)); - return this$static; -} - -function $getAllProperties(this$static){ - return !this$static.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this$static.propertyMap; -} - -function $getProperty(this$static, property){ - var defaultValue, value_0; - value_0 = (!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $get_10(this$static.propertyMap, property)); - if (value_0 != null) { - return value_0; - } - defaultValue = property.getDefault(); - instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, defaultValue)) , this$static); - return defaultValue; -} - -function $hasProperty(this$static, property){ - return !!this$static.propertyMap && $containsKey_3(this$static.propertyMap, property); -} - -function $setProperty(this$static, property, value_0){ - return value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)) , this$static; -} - -function $setProperty_0(this$static, property, value_0){ - value_0 == null?(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $remove_6(this$static.propertyMap, property)):(!this$static.propertyMap && (this$static.propertyMap = new HashMap) , $put_6(this$static.propertyMap, property, value_0)); - return this$static; -} - -function MapPropertyHolder(){ -} - -defineClass(134, 1, $intern_95, MapPropertyHolder); -_.setProperty = function setProperty(property, value_0){ - return $setProperty(this, property, value_0); -} -; -_.getAllProperties = function getAllProperties(){ - return $getAllProperties(this); -} -; -_.getProperty = function getProperty(property){ - return $getProperty(this, property); -} -; -_.hasProperty = function hasProperty(property){ - return $hasProperty(this, property); -} -; -var Lorg_eclipse_elk_graph_properties_MapPropertyHolder_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'MapPropertyHolder', 134); -function Polyominoes(polys, aspectRatio, fill){ - var gridHeight, gridWidth, poly, poly$iterator; - this.polys = new ArrayList; - gridWidth = 0; - gridHeight = 0; - for (poly$iterator = new ArrayList$1(polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - poly = castTo($next_7(poly$iterator), 167); - fill && fillPolyomino(poly); - $add_3(this.polys, poly); - gridWidth += poly.xSize; - gridHeight += poly.ySize; - } - if (this.polys.array.length > 0) { - poly = castTo($get_11(this.polys, 0), 167); - gridWidth += poly.xSize; - gridHeight += poly.ySize; - } - gridWidth *= 2; - gridHeight *= 2; - aspectRatio > 1?(gridWidth = round_int($wnd.Math.ceil(gridWidth * aspectRatio))):(gridHeight = round_int($wnd.Math.ceil(gridHeight / aspectRatio))); - this.grid = new PlanarGrid(gridWidth, gridHeight); -} - -defineClass(1299, 134, $intern_95, Polyominoes); -var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyominoes_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyominoes', 1299); -function compact_0(tree, orthogonal){ - svg_0 = new SVGImage; - orthogonalCompaction = orthogonal; - root_0 = tree; - castTo(root_0.node, 65); - drawTree(root_0, svg_0, null); - compactTree(root_0); -} - -function compactTree(tree){ - var child, child$iterator, compactionVector, minUnderlap, rc, rt; - $forEach_1(tree.children, new DepthFirstCompaction$0methodref$compactTree$Type); - for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 221); - compactionVector = $sub_0($clone_0(castTo(tree.node, 65).vertex), castTo(child.node, 65).vertex); - if (orthogonalCompaction) { - rt = castTo(tree.node, 65).rect; - rc = castTo(child.node, 65).rect; - if ($wnd.Math.abs(compactionVector.x_0) >= $wnd.Math.abs(compactionVector.y_0)) { - compactionVector.y_0 = 0; - rc.y_0 + rc.height > rt.y_0 && rc.y_0 < rt.y_0 + rt.height && $scaleToLength(compactionVector, $wnd.Math.max(rt.x_0 - (rc.x_0 + rc.width_0), rc.x_0 - (rt.x_0 + rt.width_0))); - } - else { - compactionVector.x_0 = 0; - rc.x_0 + rc.width_0 > rt.x_0 && rc.x_0 < rt.x_0 + rt.width_0 && $scaleToLength(compactionVector, $wnd.Math.max(rt.y_0 - (rc.y_0 + rc.height), rc.y_0 - (rt.y_0 + rt.height))); - } - } - else { - $scaleToLength(compactionVector, $underlap(castTo(tree.node, 65), castTo(child.node, 65))); - } - minUnderlap = $wnd.Math.sqrt(compactionVector.x_0 * compactionVector.x_0 + compactionVector.y_0 * compactionVector.y_0); - minUnderlap = getMinUnderlap(root_0, child, minUnderlap, compactionVector); - $scaleToLength(compactionVector, minUnderlap); - $translate(castTo(child.node, 65), compactionVector); - $forEach_1(child.children, new DepthFirstCompaction$lambda$1$Type(compactionVector)); - castTo(root_0.node, 65); - drawTree(root_0, svg_0, child); - } -} - -function drawTree(t, svgImage, mark){ - castTo(t.node, 65); - castTo(t.node, 65); - castTo(t.node, 65); - $forEach_1(t.children, new DepthFirstCompaction$lambda$2$Type(mark, svgImage, t)); -} - -function getMinUnderlap(tree, child, currentMinUnderlap, compactionVector){ - var c, c$iterator, minUnderlap; - minUnderlap = $wnd.Math.min(currentMinUnderlap, minUnderlapWithSubtree(castTo(tree.node, 65), child, currentMinUnderlap, compactionVector)); - for (c$iterator = new ArrayList$1(tree.children); c$iterator.i < c$iterator.this$01.array.length;) { - c = castTo($next_7(c$iterator), 221); - c != child && (minUnderlap = $wnd.Math.min(minUnderlap, getMinUnderlap(c, child, minUnderlap, compactionVector))); - } - return minUnderlap; -} - -function lambda$1_4(compactionVector_0, c_1){ - $translate(castTo(c_1.node, 65), compactionVector_0); - $forEach_1(c_1.children, new DepthFirstCompaction$lambda$1$Type(compactionVector_0)); -} - -function lambda$2_0(mark_0, svgImage_1, t_2, c_3){ - c_3 == mark_0?(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0):(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0); - drawTree(c_3, svgImage_1, mark_0); -} - -function minUnderlapWithSubtree(r, tree, currentMinUnderlap, compactionVector){ - var c, child, child$iterator, minUnderlap; - minUnderlap = currentMinUnderlap; - for (child$iterator = new ArrayList$1(tree.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 221); - c = castTo(child.node, 65); - if (fuzzyCompare(r.rect.x_0, c.rect.x_0 + c.rect.width_0) <= 0 && fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) <= 0 && fuzzyCompare(r.rect.y_0, c.rect.y_0 + c.rect.height) <= 0 && fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) <= 0) { - if (fuzzyCompare(c.rect.x_0, r.rect.x_0 + r.rect.width_0) == 0 && compactionVector.x_0 < 0 || fuzzyCompare(c.rect.x_0 + c.rect.width_0, r.rect.x_0) == 0 && compactionVector.x_0 > 0 || fuzzyCompare(c.rect.y_0, r.rect.y_0 + r.rect.height) == 0 && compactionVector.y_0 < 0 || fuzzyCompare(c.rect.y_0 + c.rect.height, r.rect.y_0) == 0 && compactionVector.y_0 > 0) { - minUnderlap = 0; - break; - } - } - else { - minUnderlap = $wnd.Math.min(minUnderlap, $distance(r, c, compactionVector)); - } - minUnderlap = $wnd.Math.min(minUnderlap, minUnderlapWithSubtree(r, child, minUnderlap, compactionVector)); - } - return minUnderlap; -} - -var orthogonalCompaction = false, root_0, svg_0; -function DepthFirstCompaction$0methodref$compactTree$Type(){ -} - -defineClass(1766, 1, $intern_19, DepthFirstCompaction$0methodref$compactTree$Type); -_.accept = function accept_52(arg0){ - compactTree(castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$0methodref$compactTree$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/0methodref$compactTree$Type', 1766); -function DepthFirstCompaction$lambda$1$Type(compactionVector_0){ - this.compactionVector_0 = compactionVector_0; -} - -defineClass(810, 1, $intern_19, DepthFirstCompaction$lambda$1$Type); -_.accept = function accept_53(arg0){ - lambda$1_4(this.compactionVector_0, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$1$Type', 810); -function DepthFirstCompaction$lambda$2$Type(mark_0, svgImage_1, t_2){ - this.mark_0 = mark_0; - this.svgImage_1 = svgImage_1; - this.t_2 = t_2; -} - -defineClass(1767, 1, $intern_19, DepthFirstCompaction$lambda$2$Type); -_.accept = function accept_54(arg0){ - lambda$2_0(this.mark_0, this.svgImage_1, this.t_2, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$2$Type', 1767); -function $clinit_InternalProperties(){ - $clinit_InternalProperties = emptyMethod; - DEBUG_SVG = new Property_0('debugSVG', ($clinit_Boolean() , false)); - OVERLAPS_EXISTED = new Property_0('overlapsExisted', true); -} - -var DEBUG_SVG, OVERLAPS_EXISTED; -function $distance(this$static, other, v){ - var distance, e1, e1$iterator, e2, e2$iterator, result; - result = $intern_59; - for (e1$iterator = new ArrayList$1(getRectEdges(this$static.rect)); e1$iterator.i < e1$iterator.this$01.array.length;) { - e1 = castTo($next_7(e1$iterator), 168); - for (e2$iterator = new ArrayList$1(getRectEdges(other.rect)); e2$iterator.i < e2$iterator.this$01.array.length;) { - e2 = castTo($next_7(e2$iterator), 168); - distance = distance_0(e1.u, e1.v, e2.u, e2.v, v); - result = $wnd.Math.min(result, distance); - } - } - return result; -} - -function $setCenterPosition(this$static, p){ - $translate(this$static, $sub_0(new KVector_1(p.x_0, p.y_0), this$static.vertex)); -} - -function $translate(this$static, v){ - $add_19(this$static.vertex, v); - this$static.rect.x_0 += v.x_0; - this$static.rect.y_0 += v.y_0; -} - -function $underlap(this$static, other){ - var hScale, horizontalCenterDistance, horizontalUnderlap, scale, vScale, verticalCenterDistance, verticalUnderlap; - horizontalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).x_0 - $getCenter(other.rect).x_0); - verticalCenterDistance = $wnd.Math.abs($getCenter(this$static.rect).y_0 - $getCenter(other.rect).y_0); - horizontalUnderlap = 0; - verticalUnderlap = 0; - hScale = 1; - vScale = 1; - if (horizontalCenterDistance > this$static.rect.width_0 / 2 + other.rect.width_0 / 2) { - horizontalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.x_0 - (other.rect.x_0 + other.rect.width_0)), $wnd.Math.abs(this$static.rect.x_0 + this$static.rect.width_0 - other.rect.x_0)); - hScale = 1 - horizontalUnderlap / horizontalCenterDistance; - } - if (verticalCenterDistance > this$static.rect.height / 2 + other.rect.height / 2) { - verticalUnderlap = $wnd.Math.min($wnd.Math.abs(this$static.rect.y_0 - (other.rect.y_0 + other.rect.height)), $wnd.Math.abs(this$static.rect.y_0 + this$static.rect.height - other.rect.y_0)); - vScale = 1 - verticalUnderlap / verticalCenterDistance; - } - scale = $wnd.Math.min(hScale, vScale); - return (1 - scale) * $wnd.Math.sqrt(horizontalCenterDistance * horizontalCenterDistance + verticalCenterDistance * verticalCenterDistance); -} - -function Node_0(v, r){ - this.originalVertex = v; - this.vertex = $clone_0(this.originalVertex); - this.rect = new ElkRectangle_1(r); -} - -defineClass(65, 1, {65:1}, Node_0); -var Lorg_eclipse_elk_alg_common_spore_Node_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'Node', 65); -function $overlap_0(n1, n2){ - if (!n1 || !n2 || n1 == n2) { - return false; - } - return fuzzyCompare(n1.rect.x_0, n2.rect.x_0 + n2.rect.width_0) < 0 && fuzzyCompare(n2.rect.x_0, n1.rect.x_0 + n1.rect.width_0) < 0; -} - -function $sweep_0(this$static, nodes){ - var n, n$iterator, overlapsScanlineHandler, points; - points = new ArrayList; - for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 65); - $add_3(points, new ScanlineOverlapCheck$Timestamp(n, true)); - $add_3(points, new ScanlineOverlapCheck$Timestamp(n, false)); - } - overlapsScanlineHandler = new ScanlineOverlapCheck$OverlapsScanlineHandler(this$static); - $clear_8(overlapsScanlineHandler.intervalsSortLeft.map_0); - execute(points, this$static.overlapsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 0, [overlapsScanlineHandler]))); -} - -function ScanlineOverlapCheck(oh){ - this.overlapsScanlineComparator = new ScanlineOverlapCheck$lambda$0$Type; - this.overlapHandler = oh; -} - -function lambda$0_12(p1_0, p2_1){ - var cmp, y1, y2; - y1 = p1_0.node.rect.y_0; - p1_0.low || (y1 += p1_0.node.rect.height); - y2 = p2_1.node.rect.y_0; - p2_1.low || (y2 += p2_1.node.rect.height); - cmp = compare_4(y1, y2); - if (cmp == 0) { - if (!p1_0.low && p2_1.low) { - return -1; - } - else if (!p2_1.low && p1_0.low) { - return 1; - } - } - return cmp; -} - -defineClass(1250, 1, {}, ScanlineOverlapCheck); -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck', 1250); -function $handle_0(this$static, p){ - p.low?$insert_3(this$static, p):$remove_28(this$static.intervalsSortLeft, p.node); -} - -function $insert_3(this$static, p){ - var entry, entryIterator, other, other$iterator, overlapsFound, success; - success = $add_10(this$static.intervalsSortLeft, p.node); - if (!success) { - throw toJs(new IllegalStateException_0('Invalid hitboxes for scanline overlap calculation.')); - } - overlapsFound = false; - for (other$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this$static.intervalsSortLeft.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(other$iterator.val$entryIterator2.iter);) { - other = (entry = $next_11(other$iterator.val$entryIterator2) , castTo(entry.getKey(), 65)); - if ($overlap_0(p.node, other)) { - $handle_4(this$static.this$01.overlapHandler, p.node, other); - overlapsFound = true; - } - else { - if (overlapsFound) { - break; - } - } - } -} - -function ScanlineOverlapCheck$OverlapsScanlineHandler(this$0){ - this.this$01 = this$0; - this.intervalsSortLeft = new TreeSet_0(castTo(checkNotNull(new ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type), 62)); -} - -function lambda$0_13(n1_0, n2_1){ - var cmp; - cmp = compare_4(n1_0.rect.x_0, n2_1.rect.x_0); - if (cmp != 0) { - return cmp; - } - cmp = compare_4(n1_0.originalVertex.x_0, n2_1.originalVertex.x_0); - if (cmp != 0) { - return cmp; - } - return compare_4(n1_0.originalVertex.y_0, n2_1.originalVertex.y_0); -} - -defineClass(1251, 1, {679:1}, ScanlineOverlapCheck$OverlapsScanlineHandler); -_.handle = function handle_0(p){ - $handle_0(this, castTo(p, 440)); -} -; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler', 1251); -function ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type(){ -} - -defineClass(1252, 1, $intern_88, ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type); -_.compare_1 = function compare_26(arg0, arg1){ - return lambda$0_13(castTo(arg0, 65), castTo(arg1, 65)); -} -; -_.equals_0 = function equals_78(other){ - return this === other; -} -; -_.reversed = function reversed_18(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type', 1252); -function ScanlineOverlapCheck$Timestamp(node, low){ - this.node = node; - this.low = low; -} - -defineClass(440, 1, {440:1}, ScanlineOverlapCheck$Timestamp); -_.low = false; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/Timestamp', 440); -function ScanlineOverlapCheck$lambda$0$Type(){ -} - -defineClass(1253, 1, $intern_88, ScanlineOverlapCheck$lambda$0$Type); -_.compare_1 = function compare_27(arg0, arg1){ - return lambda$0_12(castTo(arg0, 440), castTo(arg1, 440)); -} -; -_.equals_0 = function equals_79(other){ - return this === other; -} -; -_.reversed = function reversed_19(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/lambda$0$Type', 1253); -function SVGImage(){ -} - -defineClass(550, 1, {}, SVGImage); -var Lorg_eclipse_elk_alg_common_utils_SVGImage_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'SVGImage', 550); -function UniqueTriple(f, s, t){ - this.first = f; - this.second = s; - this.third = t; -} - -defineClass(324, 1, {324:1}, UniqueTriple); -_.toString_0 = function toString_79(){ - return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; -} -; -var Lorg_eclipse_elk_alg_common_utils_UniqueTriple_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'UniqueTriple', 324); -function getRectEdges(r){ - var rectEdegs; - rectEdegs = new ArrayList; - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0 + r.width_0, r.y_0))); - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0, r.y_0), new KVector_1(r.x_0, r.y_0 + r.height))); - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0 + r.width_0, r.y_0))); - $add_3(rectEdegs, new TEdge(new KVector_1(r.x_0 + r.width_0, r.y_0 + r.height), new KVector_1(r.x_0, r.y_0 + r.height))); - return rectEdegs; -} - -function overlap_0(r1, r2){ - var horizontalCenterDistance, horizontalOverlap, verticalCenterDistance, verticalOverlap; - horizontalOverlap = $wnd.Math.min($wnd.Math.abs(r1.x_0 - (r2.x_0 + r2.width_0)), $wnd.Math.abs(r1.x_0 + r1.width_0 - r2.x_0)); - verticalOverlap = $wnd.Math.min($wnd.Math.abs(r1.y_0 - (r2.y_0 + r2.height)), $wnd.Math.abs(r1.y_0 + r1.height - r2.y_0)); - horizontalCenterDistance = $wnd.Math.abs(r1.x_0 + r1.width_0 / 2 - (r2.x_0 + r2.width_0 / 2)); - if (horizontalCenterDistance > r1.width_0 / 2 + r2.width_0 / 2) { - return 1; - } - verticalCenterDistance = $wnd.Math.abs(r1.y_0 + r1.height / 2 - (r2.y_0 + r2.height / 2)); - if (verticalCenterDistance > r1.height / 2 + r2.height / 2) { - return 1; - } - if (horizontalCenterDistance == 0 && verticalCenterDistance == 0) { - return 0; - } - if (horizontalCenterDistance == 0) { - return verticalOverlap / verticalCenterDistance + 1; - } - if (verticalCenterDistance == 0) { - return horizontalOverlap / horizontalCenterDistance + 1; - } - return $wnd.Math.min(horizontalOverlap / horizontalCenterDistance, verticalOverlap / verticalCenterDistance) + 1; -} - -defineClass(209, 1, $intern_96); -var Lorg_eclipse_elk_core_AbstractLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core', 'AbstractLayoutProvider', 209); -function DisCoLayoutProvider(){ -} - -defineClass(1132, 209, $intern_96, DisCoLayoutProvider); -_.layout = function layout(layoutGraph, progressMonitor){ - var lad, layoutProvider, requestedAlgorithm, transformer; - $begin(progressMonitor, 'Connected Components Compaction', 1); - this.componentSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_DisCoOptions() , SPACING_COMPONENT_COMPONENT)))); - if ($hasProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)) { - requestedAlgorithm = castToString($getProperty_0(layoutGraph, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); - lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); - if (lad) { - layoutProvider = castTo($fetch(lad.providerPool), 209); - layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); - } - } - transformer = new ElkGraphTransformer(this.componentSpacing); - this.result = $importGraph(transformer, layoutGraph); - switch (castTo($getProperty_0(layoutGraph, ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY)), 481).ordinal) { - case 0: - $compact_0(new DisCoPolyominoCompactor, this.result); - $setProperty_1(layoutGraph, DEBUG_DISCO_POLYS_0, $getProperty(this.result, DEBUG_DISCO_POLYS_0)); - break; - default:$clinit_System(); - } - $applyLayout(transformer); - $setProperty_1(layoutGraph, DEBUG_DISCO_GRAPH_0, this.result); - $done_0(progressMonitor); -} -; -_.componentSpacing = 0; -var Lorg_eclipse_elk_alg_disco_DisCoLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoLayoutProvider', 1132); -function $applyToDCGraph(this$static){ - var absoluteIntPositionX, absoluteIntPositionY, absolutePositionOnCanvas, gridCrop, originalCoordinates, padding, paddingHori, paddingVert, parentHeight, parentWidth, poly, poly$iterator; - gridCrop = $getFilledBounds(this$static.grid); - padding = castTo($getProperty(this$static.cmpGraph, ($clinit_DisCoOptions() , PADDING)), 116); - paddingHori = padding.left + padding.right; - paddingVert = padding.top_0 + padding.bottom; - parentWidth = gridCrop.third.value_0 * this$static.gridCellSizeX + paddingHori; - parentHeight = gridCrop.fourth.value_0 * this$static.gridCellSizeY + paddingVert; - $setDimensions(this$static.cmpGraph, new KVector_1(parentWidth, parentHeight)); - for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - poly = castTo($next_7(poly$iterator), 562); - absoluteIntPositionX = poly.x_0 - gridCrop.first.value_0; - absoluteIntPositionY = poly.y_0 - gridCrop.second.value_0; - absolutePositionOnCanvas = $add_19($scale_0(new KVector_1(absoluteIntPositionX, absoluteIntPositionY), poly.cellSizeX, poly.cellSizeY), $scale($sub($clone_0($getDimensionsOfBoundingRectangle(poly.representee)), poly.pWidth * poly.cellSizeX, poly.pHeight * poly.cellSizeY), -0.5)); - originalCoordinates = $getMinCorner(poly.representee); - $setOffset(poly.representee, $sub_0(absolutePositionOnCanvas, originalCoordinates)); - } -} - -function $compact_0(this$static, graph){ - var gridCellRecommendation; - this$static.cmpGraph = graph; - this$static.polys = new ArrayList; - gridCellRecommendation = $computeCellSize(this$static.cmpGraph); - this$static.gridCellSizeX = gridCellRecommendation; - this$static.gridCellSizeY = gridCellRecommendation; - this$static.fill = $booleanValue(castToBoolean($getProperty(this$static.cmpGraph, ($clinit_PolyominoOptions() , POLYOMINO_FILL)))); - this$static.aspectRatio = castToDouble($getProperty(this$static.cmpGraph, ($clinit_CoreOptions() , ASPECT_RATIO_5))); - this$static.aspectRatio == null && (this$static.aspectRatio = 1); - $doubleValue(this$static.aspectRatio) > 1?(this$static.gridCellSizeX *= $doubleValue(this$static.aspectRatio)):(this$static.gridCellSizeY /= $doubleValue(this$static.aspectRatio)); - $createPolyominoes(this$static); - $packPolyominoes_0(this$static); - $applyToDCGraph(this$static); - $setProperty_0(this$static.cmpGraph, ($clinit_DisCoOptions() , DEBUG_DISCO_POLYS_0), this$static.polys); -} - -function $computeCellSize(graph){ - var bounds, comp, comp$iterator, comps, denominator, height, numOfComps, numerator, prodTerm, sumTerm, width_0; - sumTerm = 0; - prodTerm = 0; - comps = graph.components; - numOfComps = comps.map_0.size_1(); - for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 561); - bounds = (comp.changed && $update(comp) , comp.bounds); - width_0 = bounds.x_0; - height = bounds.y_0; - sumTerm += width_0 + height; - prodTerm += width_0 * height; - } - numerator = $wnd.Math.sqrt(400 * numOfComps * prodTerm - 4 * prodTerm + sumTerm * sumTerm) + sumTerm; - denominator = 2 * (100 * numOfComps - 1); - if (denominator == 0) { - return numerator; - } - return numerator / denominator; -} - -function $createPolyominoes(this$static){ - var comp, comp$iterator, comps, poly; - comps = this$static.cmpGraph.components; - for (comp$iterator = comps.map_0.keySet_0().iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 561); - poly = new DCPolyomino(comp, this$static.gridCellSizeX, this$static.gridCellSizeY); - $add_3(this$static.polys, poly); - } -} - -function $packPolyominoes_0(this$static){ - var id_0, poly$iterator, polyHolder; - id_0 = 0; - for (poly$iterator = new ArrayList$1(this$static.polys); poly$iterator.i < poly$iterator.this$01.array.length;) { - castTo($next_7(poly$iterator), 562); - ++id_0; - } - polyHolder = new Polyominoes(this$static.polys, $doubleValue(this$static.aspectRatio), this$static.fill); - $packPolyominoes(polyHolder); - this$static.polys = polyHolder.polys; - this$static.grid = polyHolder.grid; -} - -function DisCoPolyominoCompactor(){ -} - -defineClass(1244, 1, {}, DisCoPolyominoCompactor); -_.fill = false; -_.gridCellSizeX = 0; -_.gridCellSizeY = 0; -var Lorg_eclipse_elk_alg_disco_DisCoPolyominoCompactor_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoPolyominoCompactor', 1244); -function $addElements(this$static, elements){ - var elem, elem$iterator; - for (elem$iterator = elements.iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - this$static.changed = true; - $add_6(this$static.shapes, elem); - elem.cp = this$static; - } -} - -function $getDimensionsOfBoundingRectangle(this$static){ - this$static.changed && $update(this$static); - return this$static.bounds; -} - -function $getMinCorner(this$static){ - this$static.changed && $update(this$static); - return this$static.minCornerOfBoundingRectangle; -} - -function $intersects(this$static, rect){ - var elem, elem$iterator; - for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - if (intersects_1(rect, elem.shape_0) || contains_51(rect, elem.shape_0)) { - return true; - } - } - return false; -} - -function $setOffset(this$static, offset){ - this$static.changed = true; - this$static.offset = offset; -} - -function $update(this$static){ - var dir_0, elem, elem$iterator, elemBounds, ext, ext$iterator, maxPos, maxX, maxY, minPos, minX, minY; - this$static.changed = false; - minX = $intern_59; - maxX = $intern_60; - minY = $intern_59; - maxY = $intern_60; - for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - elemBounds = elem.bounds; - minX = $wnd.Math.min(minX, elemBounds.x_0); - maxX = $wnd.Math.max(maxX, elemBounds.x_0 + elemBounds.width_0); - minY = $wnd.Math.min(minY, elemBounds.y_0); - maxY = $wnd.Math.max(maxY, elemBounds.y_0 + elemBounds.height); - for (ext$iterator = new ArrayList$1(elem.extensions); ext$iterator.i < ext$iterator.this$01.array.length;) { - ext = castTo($next_7(ext$iterator), 395); - dir_0 = ext.direction; - if (dir_0.horizontal) { - minPos = elemBounds.y_0 + ext.offset.y_0; - maxPos = minPos + ext.width_0; - minY = $wnd.Math.min(minY, minPos); - maxY = $wnd.Math.max(maxY, maxPos); - } - else { - minPos = elemBounds.x_0 + ext.offset.x_0; - maxPos = minPos + ext.width_0; - minX = $wnd.Math.min(minX, minPos); - maxX = $wnd.Math.max(maxX, maxPos); - } - } - } - this$static.bounds = new KVector_1(maxX - minX, maxY - minY); - this$static.minCornerOfBoundingRectangle = new KVector_1(minX + this$static.offset.x_0, minY + this$static.offset.y_0); -} - -function DCComponent(){ - this.offset = new KVector_1(0, 0); - this.shapes = new HashSet; -} - -defineClass(561, 1, {561:1}, DCComponent); -_.changed = true; -var Lorg_eclipse_elk_alg_disco_graph_DCComponent_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCComponent', 561); -function $clinit_DCDirection(){ - $clinit_DCDirection = emptyMethod; - NORTH_0 = new DCDirection('NORTH', 0); - EAST_0 = new DCDirection('EAST', 1); - SOUTH_0 = new DCDirection('SOUTH', 2); - WEST_0 = new DCDirection('WEST', 3); - NORTH_0.horizontal = false; - EAST_0.horizontal = true; - SOUTH_0.horizontal = false; - WEST_0.horizontal = true; -} - -function DCDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_23(name_0){ - $clinit_DCDirection(); - return valueOf(($clinit_DCDirection$Map() , $MAP_11), name_0); -} - -function values_29(){ - $clinit_DCDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]); -} - -defineClass(394, 22, {3:1, 35:1, 22:1, 394:1}, DCDirection); -_.horizontal = false; -var EAST_0, NORTH_0, SOUTH_0, WEST_0; -var Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit = createForEnum('org.eclipse.elk.alg.disco.graph', 'DCDirection', 394, Ljava_lang_Enum_2_classLit, values_29, valueOf_23); -function $clinit_DCDirection$Map(){ - $clinit_DCDirection$Map = emptyMethod; - $MAP_11 = createValueOfMap(($clinit_DCDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_graph_DCDirection_2_classLit, 1), $intern_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]))); -} - -var $MAP_11; -function DCElement(polyPath){ - var maxX, maxY, minX, minY, v, v$iterator; - this.extensions = new ArrayList; - this.shape_0 = polyPath; - minX = $intern_59; - minY = $intern_59; - maxX = $intern_60; - maxY = $intern_60; - for (v$iterator = $listIterator_2(polyPath, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { - v = castTo($next_10(v$iterator), 8); - minX = $wnd.Math.min(minX, v.x_0); - minY = $wnd.Math.min(minY, v.y_0); - maxX = $wnd.Math.max(maxX, v.x_0); - maxY = $wnd.Math.max(maxY, v.y_0); - } - this.bounds = new ElkRectangle_0(minX, minY, maxX - minX, maxY - minY); -} - -defineClass(266, 134, {3:1, 266:1, 94:1, 134:1}, DCElement); -var Lorg_eclipse_elk_alg_disco_graph_DCElement_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCElement', 266); -function $setOffset_0(this$static, offset){ - this$static.offset = offset; -} - -function DCExtension(parent_0, direction, middlePos, width_0){ - var bounds, halfWidth; - this.direction = direction; - this.width_0 = width_0; - bounds = parent_0.bounds; - $setOffset_0(this, new KVector_1(-bounds.x_0, -bounds.y_0)); - $add_19(this.offset, middlePos); - halfWidth = width_0 / 2; - direction.horizontal?$sub(this.offset, 0, halfWidth):$sub(this.offset, halfWidth, 0); - $add_3(parent_0.extensions, this); -} - -defineClass(395, 1, {395:1}, DCExtension); -_.width_0 = 0; -var Lorg_eclipse_elk_alg_disco_graph_DCExtension_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCExtension', 395); -function $setDimensions(this$static, dimensions){ - this$static.dimensions = dimensions; -} - -function DCGraph(components){ - var component, elements, elements$iterator; - this.components = new LinkedHashSet; - for (elements$iterator = new ArrayList$1(components); elements$iterator.i < elements$iterator.this$01.array.length;) { - elements = castTo($next_7(elements$iterator), 14); - component = new DCComponent; - $addElements(component, elements); - $add_6(this.components, component); - } -} - -function DCGraph_0(components){ - DCGraph.call(this, components); -} - -defineClass(755, 134, $intern_95, DCGraph_0); -var Lorg_eclipse_elk_alg_disco_graph_DCGraph_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCGraph', 755); -function $clinit_CompactionStrategy(){ - $clinit_CompactionStrategy = emptyMethod; - POLYOMINO = new CompactionStrategy; -} - -function CompactionStrategy(){ - Enum.call(this, 'POLYOMINO', 0); -} - -function valueOf_24(name_0){ - $clinit_CompactionStrategy(); - return valueOf(($clinit_CompactionStrategy$Map() , $MAP_12), name_0); -} - -function values_30(){ - $clinit_CompactionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]); -} - -defineClass(481, 22, {3:1, 35:1, 22:1, 481:1}, CompactionStrategy); -var POLYOMINO; -var Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.disco.options', 'CompactionStrategy', 481, Ljava_lang_Enum_2_classLit, values_30, valueOf_24); -function $clinit_CompactionStrategy$Map(){ - $clinit_CompactionStrategy$Map = emptyMethod; - $MAP_12 = createValueOfMap(($clinit_CompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit, 1), $intern_36, 481, 0, [POLYOMINO]))); -} - -var $MAP_12; -function $clinit_DisCoMetaDataProvider(){ - $clinit_DisCoMetaDataProvider = emptyMethod; - COMPONENT_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy() , POLYOMINO); - COMPONENT_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.disco.componentCompaction.strategy', COMPONENT_COMPACTION_STRATEGY_DEFAULT); - COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM = new Property('org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'); - DEBUG_DISCO_GRAPH = new Property('org.eclipse.elk.disco.debug.discoGraph'); - DEBUG_DISCO_POLYS = new Property('org.eclipse.elk.disco.debug.discoPolys'); -} - -function DisCoMetaDataProvider(){ - $clinit_DisCoMetaDataProvider(); -} - -defineClass(854, 1, $intern_90, DisCoMetaDataProvider); -_.apply_4 = function apply_50(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.strategy'), 'componentCompaction'), 'Connected Components Compaction Strategy'), 'Strategy for packing different connected components in order to save space and enhance readability of a graph.'), COMPONENT_COMPACTION_STRATEGY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm'), 'componentCompaction'), 'Connected Components Layout Algorithm'), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoGraph'), 'debug'), 'DCGraph'), 'Access to the DCGraph is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.disco.debug.discoPolys'), 'debug'), 'List of Polyominoes'), 'Access to the polyominoes is intended for the debug view,'), OBJECT), Ljava_lang_Object_2_classLit), of_1(PARENTS)))); - $apply_11((new DisCoOptions , registry)); -} -; -var COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM, COMPONENT_COMPACTION_STRATEGY, COMPONENT_COMPACTION_STRATEGY_DEFAULT, DEBUG_DISCO_GRAPH, DEBUG_DISCO_POLYS; -var Lorg_eclipse_elk_alg_disco_options_DisCoMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoMetaDataProvider', 854); -function $clinit_DisCoOptions(){ - $clinit_DisCoOptions = emptyMethod; - SPACING_COMPONENT_COMPONENT = ($clinit_CoreOptions() , SPACING_COMPONENT_COMPONENT_1); - EDGE_THICKNESS = EDGE_THICKNESS_1; - ASPECT_RATIO = ASPECT_RATIO_5; - PADDING = PADDING_6; - POLYOMINO_LOW_LEVEL_SORT_0 = ($clinit_PolyominoOptions() , POLYOMINO_LOW_LEVEL_SORT); - POLYOMINO_HIGH_LEVEL_SORT_0 = POLYOMINO_HIGH_LEVEL_SORT; - POLYOMINO_TRAVERSAL_STRATEGY_0 = POLYOMINO_TRAVERSAL_STRATEGY; - POLYOMINO_FILL_0 = POLYOMINO_FILL; - COMPONENT_COMPACTION_STRATEGY_0 = ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY); - COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0 = COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM; - DEBUG_DISCO_GRAPH_0 = DEBUG_DISCO_GRAPH; - DEBUG_DISCO_POLYS_0 = DEBUG_DISCO_POLYS; -} - -function $apply_11(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.disco'), 'ELK DisCo'), 'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'), new DisCoOptions$DiscoFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.aspectRatio', $getDefault(ASPECT_RATIO)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.padding', $getDefault(PADDING)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.lowLevelSort', $getDefault(POLYOMINO_LOW_LEVEL_SORT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.highLevelSort', $getDefault(POLYOMINO_HIGH_LEVEL_SORT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.traversalStrategy', $getDefault(POLYOMINO_TRAVERSAL_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.polyomino.fill', $getDefault(POLYOMINO_FILL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.strategy', $getDefault(COMPONENT_COMPACTION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm', $getDefault(COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoGraph', $getDefault(DEBUG_DISCO_GRAPH_0)); - $addOptionSupport(registry, 'org.eclipse.elk.disco', 'org.eclipse.elk.disco.debug.discoPolys', $getDefault(DEBUG_DISCO_POLYS_0)); -} - -function DisCoOptions(){ - $clinit_DisCoOptions(); -} - -defineClass(998, 1, $intern_90, DisCoOptions); -_.apply_4 = function apply_51(registry){ - $apply_11(registry); -} -; -var ASPECT_RATIO, COMPONENT_COMPACTION_COMPONENT_LAYOUT_ALGORITHM_0, COMPONENT_COMPACTION_STRATEGY_0, DEBUG_DISCO_GRAPH_0, DEBUG_DISCO_POLYS_0, EDGE_THICKNESS, PADDING, POLYOMINO_FILL_0, POLYOMINO_HIGH_LEVEL_SORT_0, POLYOMINO_LOW_LEVEL_SORT_0, POLYOMINO_TRAVERSAL_STRATEGY_0, SPACING_COMPONENT_COMPONENT; -var Lorg_eclipse_elk_alg_disco_options_DisCoOptions_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions', 998); -function DisCoOptions$DiscoFactory(){ -} - -defineClass(999, 1, {}, DisCoOptions$DiscoFactory); -_.create_0 = function create_2(){ - var provider; - return provider = new DisCoLayoutProvider , provider; -} -; -_.destroy = function destroy(obj){ -} -; -var Lorg_eclipse_elk_alg_disco_options_DisCoOptions$DiscoFactory_2_classLit = createForClass('org.eclipse.elk.alg.disco.options', 'DisCoOptions/DiscoFactory', 999); -function $addExtensionsToPoly(this$static, elem){ - var baseX, baseY, compCorner, dir_0, elemPos, extension, extension$iterator, extensions, polyDir, polyoOffset, pos, xe, xp, xpPlusWidth, ye, yp, ypPlusWidth; - extensions = elem.extensions; - compCorner = $getMinCorner(this$static.representee); - polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); - baseX = compCorner.x_0 - polyoOffset.x_0; - baseY = compCorner.y_0 - polyoOffset.y_0; - elemPos = elem.bounds; - baseX = elemPos.x_0 - baseX; - baseY = elemPos.y_0 - baseY; - for (extension$iterator = new ArrayList$1(extensions); extension$iterator.i < extension$iterator.this$01.array.length;) { - extension = castTo($next_7(extension$iterator), 395); - pos = extension.offset; - xe = baseX + pos.x_0; - ye = baseY + pos.y_0; - xp = round_int(xe / this$static.cellSizeX); - yp = round_int(ye / this$static.cellSizeY); - dir_0 = extension.direction; - switch (dir_0.ordinal) { - case 0: - polyDir = ($clinit_Direction() , NORTH); - break; - case 1: - polyDir = ($clinit_Direction() , EAST); - break; - case 2: - polyDir = ($clinit_Direction() , SOUTH); - break; - default:polyDir = ($clinit_Direction() , WEST); - } - if (dir_0.horizontal) { - ypPlusWidth = round_int((ye + extension.width_0) / this$static.cellSizeY); - $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(yp), valueOf_4(ypPlusWidth))); - dir_0 == ($clinit_DCDirection() , WEST_0)?$weaklyBlockArea(this$static, 0, yp, xp, ypPlusWidth):$weaklyBlockArea(this$static, xp, yp, this$static.pWidth - 1, ypPlusWidth); - } - else { - xpPlusWidth = round_int((xe + extension.width_0) / this$static.cellSizeX); - $add_3(this$static.polyominoExtensions, new UniqueTriple(polyDir, valueOf_4(xp), valueOf_4(xpPlusWidth))); - dir_0 == ($clinit_DCDirection() , NORTH_0)?$weaklyBlockArea(this$static, xp, 0, xpPlusWidth, yp):$weaklyBlockArea(this$static, xp, yp, xpPlusWidth, this$static.pHeight - 1); - } - } -} - -function $computeLowResDimension(dim, cellSize){ - var cellFit, fitTruncated; - cellFit = dim / cellSize; - fitTruncated = round_int(cellFit); - cellFit > fitTruncated && ++fitTruncated; - return fitTruncated; -} - -function $fillCells(this$static){ - var baseX, compCorner, curX, curY, polyoOffset, x_0, y_0; - compCorner = $getMinCorner(this$static.representee); - polyoOffset = $scale($sub($clone_0($getDimensionsOfBoundingRectangle(this$static.representee)), this$static.pWidth * this$static.cellSizeX, this$static.pHeight * this$static.cellSizeY), -0.5); - baseX = compCorner.x_0 - polyoOffset.x_0; - curY = compCorner.y_0 - polyoOffset.y_0; - for (y_0 = 0; y_0 < this$static.pHeight; y_0++) { - curX = baseX; - for (x_0 = 0; x_0 < this$static.pWidth; x_0++) { - $intersects(this$static.representee, new ElkRectangle_0(curX, curY, this$static.cellSizeX, this$static.cellSizeY)) && $set_5(this$static, x_0, y_0, false, true); - curX += this$static.cellSizeX; - } - curY += this$static.cellSizeY; - } -} - -function DCPolyomino(comp, csX, csY){ - var compDims, elem, elem$iterator; - Polyomino.call(this, new ArrayList); - this.cellSizeX = csX; - this.cellSizeY = csY; - this.representee = comp; - compDims = (comp.changed && $update(comp) , comp.bounds); - this.pWidth = $computeLowResDimension(compDims.x_0, this.cellSizeX); - this.pHeight = $computeLowResDimension(compDims.y_0, this.cellSizeY); - $reinitialize(this, this.pWidth, this.pHeight); - $fillCells(this); - for (elem$iterator = this.representee.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { - elem = castTo(elem$iterator.next_1(), 266); - elem.extensions.array.length > 0 && $addExtensionsToPoly(this, elem); - } -} - -defineClass(562, 167, {321:1, 167:1, 562:1}, DCPolyomino); -_.cellSizeX = 0; -_.cellSizeY = 0; -_.pHeight = 0; -_.pWidth = 0; -var Lorg_eclipse_elk_alg_disco_structures_DCPolyomino_2_classLit = createForClass('org.eclipse.elk.alg.disco.structures', 'DCPolyomino', 562); -function $clinit_ElkGraphComponentsProcessor(){ - $clinit_ElkGraphComponentsProcessor = emptyMethod; - visited_0 = new ArrayList; - incidenceMap = new HashMap; - components_0 = new ArrayList; -} - -function addNodesToIncidenceSet(incidentNodes, edges, chooseNode){ - var edge, edge$iterator; - for (edge$iterator = edges.iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 79); - $add_6(incidentNodes, castTo(chooseNode.apply_0(edge), 33)); - } -} - -function computeIncidences(nodes){ - var adjacentAndInsideParent, adjacentNodes, connectedToParentPort, edges, incomingEdge, incomingEdge$iterator, node, node$iterator, nodesAtPort, outgoingEdge, outgoingEdge$iterator, port, sameHierarchyLevel; - adjacentAndInsideParent = new HashMap; - for (node$iterator = new AbstractEList$EIterator(nodes); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - adjacentNodes = new HashSet; - $put_6(incidenceMap, node, adjacentNodes); - sameHierarchyLevel = new ElkGraphComponentsProcessor$lambda$0$Type; - edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)])))), 83); - addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(($clinit_Boolean() , true)), 14), new ElkGraphComponentsProcessor$lambda$1$Type); - connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); - for (incomingEdge$iterator = connectedToParentPort.iterator_0(); incomingEdge$iterator.hasNext_0();) { - incomingEdge = castTo(incomingEdge$iterator.next_1(), 79); - port = getSourcePort(incomingEdge); - if (port) { - nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); - if (!nodesAtPort) { - nodesAtPort = getInnerNeighborsOfPort(port); - $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); - } - $addAll(adjacentNodes, nodesAtPort); - } - } - edges = castTo($collect_1(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))), partitioningBy(sameHierarchyLevel, of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH])))), 83); - addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(true), 14), new ElkGraphComponentsProcessor$lambda$3$Type); - connectedToParentPort = castTo($collect_1($filter(castTo(edges.get_3(false), 15).parallelStream(), new ElkGraphComponentsProcessor$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [IDENTITY_FINISH]))), 15); - for (outgoingEdge$iterator = connectedToParentPort.iterator_0(); outgoingEdge$iterator.hasNext_0();) { - outgoingEdge = castTo(outgoingEdge$iterator.next_1(), 79); - port = getTargetPort(outgoingEdge); - if (port) { - nodesAtPort = castTo(getEntryValueOrNull($getEntry_0(adjacentAndInsideParent.hashCodeMap, port)), 21); - if (!nodesAtPort) { - nodesAtPort = getInnerNeighborsOfPort(port); - $put_9(adjacentAndInsideParent.hashCodeMap, port, nodesAtPort); - } - $addAll(adjacentNodes, nodesAtPort); - } - } - } -} - -function dfs(start_0, component){ - var adjacentNodes, node, node$iterator; - $add_3(visited_0, start_0); - component.add_2(start_0); - adjacentNodes = castTo($get_10(incidenceMap, start_0), 21); - if (adjacentNodes) { - for (node$iterator = adjacentNodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - $indexOf_3(visited_0, node, 0) != -1 || dfs(node, component); - } - } -} - -function getInnerNeighborsOfPort(port){ - var allEdges, inwardsPredicate, nodeMapper, portParent; - portParent = $getParent_3(port); - inwardsPredicate = new ElkGraphComponentsProcessor$lambda$5$Type(portParent); - nodeMapper = new ElkGraphComponentsProcessor$lambda$6$Type(portParent); - allEdges = new ArrayList; - $addAll_2(allEdges, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); - $addAll_2(allEdges, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); - return castTo($collect_1($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(allEdges, 16)), inwardsPredicate), nodeMapper), of_3(new Collectors$23methodref$ctor$Type, new Collectors$24methodref$add$Type, new Collectors$lambda$50$Type, new Collectors$lambda$51$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); -} - -function lambda$0_14(edge_0){ - $clinit_ElkGraphComponentsProcessor(); - return $getParent_2(getSourceNode(edge_0)) == $getParent_2(getTargetNode_0(edge_0)); -} - -function lambda$2_1(edge_0){ - $clinit_ElkGraphComponentsProcessor(); - return getSourceNode(edge_0) == $getParent_2(getTargetNode_0(edge_0)); -} - -function lambda$4_1(edge_0){ - $clinit_ElkGraphComponentsProcessor(); - return getTargetNode_0(edge_0) == $getParent_2(getSourceNode(edge_0)); -} - -function lambda$5_0(portParent_0, edge_1){ - $clinit_ElkGraphComponentsProcessor(); - return portParent_0 == $getParent_2(getSourceNode(edge_1)) || portParent_0 == $getParent_2(getTargetNode_0(edge_1)); -} - -function lambda$6(portParent_0, edge_1){ - $clinit_ElkGraphComponentsProcessor(); - return portParent_0 == getSourceNode(edge_1)?getTargetNode_0(edge_1):getSourceNode(edge_1); -} - -function split_2(graph){ - $clinit_ElkGraphComponentsProcessor(); - var children, component, node, node$iterator; - visited_0 = new ArrayList; - incidenceMap = new HashMap; - components_0 = new ArrayList; - children = (!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children); - computeIncidences(children); - for (node$iterator = new AbstractEList$EIterator(children); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - if ($indexOf_3(visited_0, node, 0) == -1) { - component = new ArrayList; - $add_3(components_0, component); - dfs(node, component); - } - } - return components_0; -} - -var components_0, incidenceMap, visited_0; -function $test(arg0){ - return lambda$0_14(castTo(arg0, 79)); -} - -function ElkGraphComponentsProcessor$lambda$0$Type(){ -} - -defineClass(1268, 1, $intern_39, ElkGraphComponentsProcessor$lambda$0$Type); -_.test_0 = function test_12(arg0){ - return $test(arg0); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$0$Type', 1268); -function ElkGraphComponentsProcessor$lambda$1$Type(){ -} - -defineClass(1269, 1, {}, ElkGraphComponentsProcessor$lambda$1$Type); -_.apply_0 = function apply_52(arg0){ - return $clinit_ElkGraphComponentsProcessor() , getSourceNode(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$1$Type', 1269); -function ElkGraphComponentsProcessor$lambda$2$Type(){ -} - -defineClass(1270, 1, $intern_39, ElkGraphComponentsProcessor$lambda$2$Type); -_.test_0 = function test_13(arg0){ - return lambda$2_1(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$2$Type', 1270); -function ElkGraphComponentsProcessor$lambda$3$Type(){ -} - -defineClass(1271, 1, {}, ElkGraphComponentsProcessor$lambda$3$Type); -_.apply_0 = function apply_53(arg0){ - return $clinit_ElkGraphComponentsProcessor() , getTargetNode_0(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$3$Type', 1271); -function ElkGraphComponentsProcessor$lambda$4$Type(){ -} - -defineClass(1272, 1, $intern_39, ElkGraphComponentsProcessor$lambda$4$Type); -_.test_0 = function test_14(arg0){ - return lambda$4_1(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$4$Type', 1272); -function ElkGraphComponentsProcessor$lambda$5$Type(portParent_0){ - this.portParent_0 = portParent_0; -} - -defineClass(1273, 1, $intern_39, ElkGraphComponentsProcessor$lambda$5$Type); -_.test_0 = function test_15(arg0){ - return lambda$5_0(this.portParent_0, castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$5$Type', 1273); -function ElkGraphComponentsProcessor$lambda$6$Type(portParent_0){ - this.portParent_0 = portParent_0; -} - -defineClass(1274, 1, {}, ElkGraphComponentsProcessor$lambda$6$Type); -_.apply_0 = function apply_54(arg0){ - return lambda$6(this.portParent_0, castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$6$Type', 1274); -function $adjustFirstSegment(source, chain, dir_0){ - var firstPoint, iter; - firstPoint = (checkCriticalElement(chain.size_0 != 0) , castTo($removeNode_0(chain, chain.header.next_0), 8)); - switch (dir_0.ordinal) { - case 0: - firstPoint.y_0 = 0; - break; - case 2: - firstPoint.y_0 = source.height; - break; - case 3: - firstPoint.x_0 = 0; - break; - default:firstPoint.x_0 = source.width_0; - } - iter = $listIterator_2(chain, 0); - $add_8(iter, firstPoint); - return chain; -} - -function $adjustRelatedPort(port, edgePoint, dir_0){ - dir_0.horizontal?$setY_3(port, edgePoint.y_0 - port.height / 2):$setX_2(port, edgePoint.x_0 - port.width_0 / 2); -} - -function $applyLayout(this$static){ - var adjustedPorts, dir_0, edge, edgeSection, graphDimensions, inEntry, inEntry$iterator, label_0, label$iterator, newHeight, newPoints, newWidth, oldHeight, oldWidth, outEntry, outEntry$iterator, port, port$iterator, portToAdjust, px, py, xFactor, yFactor; - graphDimensions = this$static.transformedGraph.dimensions; - newWidth = graphDimensions.x_0; - newHeight = graphDimensions.y_0; - oldWidth = this$static.parent_0.width_0; - oldHeight = this$static.parent_0.height; - $setDimensions_0(this$static.parent_0, graphDimensions.x_0, graphDimensions.y_0); - xFactor = newWidth / oldWidth; - yFactor = newHeight / oldHeight; - for (label$iterator = new AbstractEList$EIterator($getLabels_1(this$static.parent_0)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - $setX_2(label_0, label_0.x_0 * xFactor); - $setY_3(label_0, label_0.y_0 * yFactor); - } - for (port$iterator = new AbstractEList$EIterator($getPorts_3(this$static.parent_0)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - px = port.x_0; - py = port.y_0; - px > 0 && $setX_2(port, px * xFactor); - py > 0 && $setY_3(port, py * yFactor); - } - $forEach_2(this$static.elementMapping, new ElkGraphTransformer$OffsetApplier); - adjustedPorts = new ArrayList; - for (inEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.incomingExtensionsMapping)).this$01); inEntry$iterator.hasNext;) { - inEntry = $next_4(inEntry$iterator); - edge = castTo(inEntry.getKey(), 79); - dir_0 = castTo(inEntry.getValue(), 395).direction; - edgeSection = firstEdgeSection(edge, false, false); - newPoints = $adjustFirstSegment(getSourceNode(edge), createVectorChain(edgeSection), dir_0); - applyVectorChain(newPoints, edgeSection); - portToAdjust = getSourcePort(edge); - if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { - adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; - $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.header.next_0.value_0, 8)), dir_0); - } - } - for (outEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.outgoingExtensionsMapping)).this$01); outEntry$iterator.hasNext;) { - outEntry = $next_4(outEntry$iterator); - edge = castTo(outEntry.getKey(), 79); - dir_0 = castTo(outEntry.getValue(), 395).direction; - edgeSection = firstEdgeSection(edge, false, false); - newPoints = $adjustFirstSegment(getTargetNode_0(edge), reverse_3(createVectorChain(edgeSection)), dir_0); - newPoints = reverse_3(newPoints); - applyVectorChain(newPoints, edgeSection); - portToAdjust = getTargetPort(edge); - if (!!portToAdjust && $indexOf_3(adjustedPorts, portToAdjust, 0) == -1) { - adjustedPorts.array[adjustedPorts.array.length] = portToAdjust; - $adjustRelatedPort(portToAdjust, (checkCriticalElement(newPoints.size_0 != 0) , castTo(newPoints.tail.prev.value_0, 8)), dir_0); - } - } -} - -function $computeIntersection(p1, p2, p3, p4){ - var denominator, factor1, factor2, x_0, x1, x2, x3, x4, y_0, y1, y2, y3, y4; - x1 = p1.x_0; - y1 = p1.y_0; - x2 = p2.x_0; - y2 = p2.y_0; - x3 = p3.x_0; - y3 = p3.y_0; - x4 = p4.x_0; - y4 = p4.y_0; - factor1 = x1 * y2 - y1 * x2; - factor2 = x3 * y4 - y3 * x4; - denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4); - x_0 = (factor1 * (x3 - x4) - factor2 * (x1 - x2)) / denominator; - y_0 = (factor1 * (y3 - y4) - factor2 * (y1 - y2)) / denominator; - return new KVector_1(x_0, y_0); -} - -function $getContour(edgePoints, thickness){ - var ccwMerged, ccwPoints, current, currentPoint, cwMerged, cwPoints, i, i0, i1, i2, intersectionPoint, numberOfPoints, orthPoints, predecessor, radius, successor; - ccwPoints = new ArrayList; - cwPoints = new ArrayList; - radius = thickness / 2; - numberOfPoints = edgePoints.size_1(); - current = castTo(edgePoints.get_0(0), 8); - successor = castTo(edgePoints.get_0(1), 8); - orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - for (i0 = 2; i0 < numberOfPoints; i0++) { - predecessor = current; - current = successor; - successor = castTo(edgePoints.get_0(i0), 8); - orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, predecessor.x_0, predecessor.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - orthPoints = $getOrthogonalPoints(current.x_0, current.y_0, successor.x_0, successor.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - } - orthPoints = $getOrthogonalPoints(successor.x_0, successor.y_0, current.x_0, current.y_0, radius); - $add_3(ccwPoints, (checkCriticalElementIndex(1, orthPoints.array.length) , castTo(orthPoints.array[1], 8))); - $add_3(cwPoints, (checkCriticalElementIndex(0, orthPoints.array.length) , castTo(orthPoints.array[0], 8))); - ccwMerged = new KVectorChain; - cwMerged = new ArrayList; - $add_7(ccwMerged, (checkCriticalElementIndex(0, ccwPoints.array.length) , castTo(ccwPoints.array[0], 8))); - for (i1 = 1; i1 < ccwPoints.array.length - 2; i1 += 2) { - currentPoint = (checkCriticalElementIndex(i1, ccwPoints.array.length) , castTo(ccwPoints.array[i1], 8)); - intersectionPoint = $computeIntersection((checkCriticalElementIndex(i1 - 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 - 1], 8)), currentPoint, (checkCriticalElementIndex(i1 + 1, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 1], 8)), (checkCriticalElementIndex(i1 + 2, ccwPoints.array.length) , castTo(ccwPoints.array[i1 + 2], 8))); - !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?($addNode_0(ccwMerged, currentPoint, ccwMerged.tail.prev, ccwMerged.tail) , true):($addNode_0(ccwMerged, intersectionPoint, ccwMerged.tail.prev, ccwMerged.tail) , true); - } - $add_7(ccwMerged, castTo($get_11(ccwPoints, ccwPoints.array.length - 1), 8)); - $add_3(cwMerged, (checkCriticalElementIndex(0, cwPoints.array.length) , castTo(cwPoints.array[0], 8))); - for (i2 = 1; i2 < cwPoints.array.length - 2; i2 += 2) { - currentPoint = (checkCriticalElementIndex(i2, cwPoints.array.length) , castTo(cwPoints.array[i2], 8)); - intersectionPoint = $computeIntersection((checkCriticalElementIndex(i2 - 1, cwPoints.array.length) , castTo(cwPoints.array[i2 - 1], 8)), currentPoint, (checkCriticalElementIndex(i2 + 1, cwPoints.array.length) , castTo(cwPoints.array[i2 + 1], 8)), (checkCriticalElementIndex(i2 + 2, cwPoints.array.length) , castTo(cwPoints.array[i2 + 2], 8))); - !isFinite(intersectionPoint.x_0) || !isFinite(intersectionPoint.y_0)?(cwMerged.array[cwMerged.array.length] = currentPoint , true):(cwMerged.array[cwMerged.array.length] = intersectionPoint , true); - } - $add_3(cwMerged, castTo($get_11(cwPoints, cwPoints.array.length - 1), 8)); - for (i = cwMerged.array.length - 1; i >= 0; i--) { - $add_7(ccwMerged, (checkCriticalElementIndex(i, cwMerged.array.length) , castTo(cwMerged.array[i], 8))); - } - return ccwMerged; -} - -function $getOrthogonalPoints(curX, curY, nxtX, nxtY, radius){ - var angleRadians, difX, difY, orthAngleCCW, orthAngleCW, xCCW, xCW, yCCW, yCW; - difX = nxtX - curX; - difY = nxtY - curY; - angleRadians = $wnd.Math.atan2(difX, difY); - orthAngleCCW = angleRadians + $intern_97; - orthAngleCW = angleRadians - $intern_97; - xCCW = radius * $wnd.Math.sin(orthAngleCCW) + curX; - yCCW = radius * $wnd.Math.cos(orthAngleCCW) + curY; - xCW = radius * $wnd.Math.sin(orthAngleCW) + curX; - yCW = radius * $wnd.Math.cos(orthAngleCW) + curY; - return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [new KVector_1(xCCW, yCCW), new KVector_1(xCW, yCW)])); -} - -function $importElkEdge(this$static, edge, newComponent){ - var componentLabel, contour, edgeSection, label_0, label$iterator, labels, points, shape_0, thickness; - edgeSection = firstEdgeSection(edge, false, false); - points = createVectorChain(edgeSection); - thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); - contour = $getContour(points, thickness + this$static.componentSpacing); - shape_0 = new DCElement(contour); - $copyProperties(shape_0, edge); - $put_6(this$static.elementMapping, edge, shape_0); - newComponent.array[newComponent.array.length] = shape_0; - labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); - for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - componentLabel = $importElkShape(this$static, label_0, true, 0, 0); - newComponent.array[newComponent.array.length] = componentLabel; - } - return shape_0; -} - -function $importElkEdges(this$static, edges, newComponent){ - var componentEdge, edge, edge$iterator; - for (edge$iterator = edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 79); - componentEdge = castTo($get_10(this$static.elementMapping, edge), 266); - !componentEdge && ($getParent_2(getSourceNode(edge)) == $getParent_2(getTargetNode_0(edge))?$importElkEdge(this$static, edge, newComponent):getSourceNode(edge) == $getParent_2(getTargetNode_0(edge))?$get_10(this$static.incomingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getTargetNode_0(edge)) != null && $importExtension(this$static, edge, newComponent, false):$get_10(this$static.outgoingExtensionsMapping, edge) == null && $get_10(this$static.elementMapping, getSourceNode(edge)) != null && $importExtension(this$static, edge, newComponent, true)); - } -} - -function $importElkShape(this$static, element, considerWhenApplyingOffset, offsetX, offsetY){ - var coords, halfComponentSpacing, shape_0, x0, x1, y0, y1; - if (!(instanceOf(element, 239) || instanceOf(element, 354) || instanceOf(element, 186))) { - throw toJs(new IllegalArgumentException_0('Method only works for ElkNode-, ElkLabel and ElkPort-objects.')); - } - halfComponentSpacing = this$static.componentSpacing / 2; - x0 = element.x_0 + offsetX - halfComponentSpacing; - y0 = element.y_0 + offsetY - halfComponentSpacing; - x1 = x0 + element.width_0 + this$static.componentSpacing; - y1 = y0 + element.height + this$static.componentSpacing; - coords = new KVectorChain; - $add_7(coords, new KVector_1(x0, y0)); - $add_7(coords, new KVector_1(x0, y1)); - $add_7(coords, new KVector_1(x1, y1)); - $add_7(coords, new KVector_1(x1, y0)); - shape_0 = new DCElement(coords); - $copyProperties(shape_0, element); - considerWhenApplyingOffset && $put_6(this$static.elementMapping, element, shape_0); - return shape_0; -} - -function $importExtension(this$static, edge, newComponent, outgoingExtension){ - var componentLabel, contour, dir_0, edgeSection, extParent, extensionWidth, fixedEdgePoints, innerPoint, label_0, label$iterator, labels, middlePos, outerPoint, points, shape_0, thickness; - edgeSection = firstEdgeSection(edge, false, false); - points = createVectorChain(edgeSection); - outgoingExtension && (points = reverse_3(points)); - thickness = $doubleValue(castToDouble($getProperty_0(edge, ($clinit_DisCoOptions() , EDGE_THICKNESS)))); - outerPoint = (checkCriticalElement(points.size_0 != 0) , castTo(points.header.next_0.value_0, 8)); - innerPoint = castTo($get_7(points, 1), 8); - if (points.size_0 > 2) { - fixedEdgePoints = new ArrayList; - $addAll_2(fixedEdgePoints, new AbstractList$SubList(points, 1, points.size_0)); - contour = $getContour(fixedEdgePoints, thickness + this$static.componentSpacing); - shape_0 = new DCElement(contour); - $copyProperties(shape_0, edge); - newComponent.array[newComponent.array.length] = shape_0; - } - else { - outgoingExtension?(shape_0 = castTo($get_10(this$static.elementMapping, getSourceNode(edge)), 266)):(shape_0 = castTo($get_10(this$static.elementMapping, getTargetNode_0(edge)), 266)); - } - extParent = getSourceNode(edge); - outgoingExtension && (extParent = getTargetNode_0(edge)); - dir_0 = $nearestSide(outerPoint, extParent); - extensionWidth = thickness + this$static.componentSpacing; - if (dir_0.horizontal) { - extensionWidth += $wnd.Math.abs(outerPoint.y_0 - innerPoint.y_0); - middlePos = new KVector_1(innerPoint.x_0, (innerPoint.y_0 + outerPoint.y_0) / 2); - } - else { - extensionWidth += $wnd.Math.abs(outerPoint.x_0 - innerPoint.x_0); - middlePos = new KVector_1((innerPoint.x_0 + outerPoint.x_0) / 2, innerPoint.y_0); - } - outgoingExtension?$put_6(this$static.outgoingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)):$put_6(this$static.incomingExtensionsMapping, edge, new DCExtension(shape_0, dir_0, middlePos, extensionWidth)); - $put_6(this$static.elementMapping, edge, shape_0); - labels = (!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels); - for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - componentLabel = $importElkShape(this$static, label_0, true, 0, 0); - newComponent.array[newComponent.array.length] = componentLabel; - } -} - -function $importGraph(this$static, graph){ - var component, component$iterator, componentLabel, componentNode, componentPort, components, edgeSet, label_0, label$iterator, label$iterator0, labels, node, node$iterator, nodeX, nodeY, port, port$iterator, portX, portY, ports, result, subResult; - this$static.parent_0 = graph; - components = split_2(graph); - result = new ArrayList; - for (component$iterator = new ArrayList$1(components); component$iterator.i < component$iterator.this$01.array.length;) { - component = castTo($next_7(component$iterator), 15); - subResult = new ArrayList; - result.array[result.array.length] = subResult; - edgeSet = new HashSet; - for (node$iterator = component.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - componentNode = $importElkShape(this$static, node, true, 0, 0); - subResult.array[subResult.array.length] = componentNode; - nodeX = node.x_0; - nodeY = node.y_0; - new KVector_1(nodeX, nodeY); - labels = (!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels); - for (label$iterator0 = new AbstractEList$EIterator(labels); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator0), 137); - componentLabel = $importElkShape(this$static, label_0, false, nodeX, nodeY); - subResult.array[subResult.array.length] = componentLabel; - } - ports = (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports); - for (port$iterator = new AbstractEList$EIterator(ports); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - componentPort = $importElkShape(this$static, port, false, nodeX, nodeY); - subResult.array[subResult.array.length] = componentPort; - portX = port.x_0 + nodeX; - portY = port.y_0 + nodeY; - labels = (!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels); - for (label$iterator = new AbstractEList$EIterator(labels); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - componentLabel = $importElkShape(this$static, label_0, false, portX, portY); - subResult.array[subResult.array.length] = componentLabel; - } - } - $addAll(edgeSet, newHashSet(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [allOutgoingEdges(node), allIncomingEdges(node)])))); - } - $importElkEdges(this$static, edgeSet, subResult); - } - this$static.transformedGraph = new DCGraph_0(result); - $copyProperties(this$static.transformedGraph, graph); - return this$static.transformedGraph; -} - -function $nearestSide(point, node){ - var distance, result, shortestDistance; - shortestDistance = $intern_98; - result = ($clinit_DCDirection() , NORTH_0); - shortestDistance = $wnd.Math.abs(point.y_0); - distance = $wnd.Math.abs(node.height - point.y_0); - if (distance < shortestDistance) { - shortestDistance = distance; - result = SOUTH_0; - } - distance = $wnd.Math.abs(point.x_0); - if (distance < shortestDistance) { - shortestDistance = distance; - result = WEST_0; - } - distance = $wnd.Math.abs(node.width_0 - point.x_0); - if (distance < shortestDistance) { - shortestDistance = distance; - result = EAST_0; - } - return result; -} - -function ElkGraphTransformer(componentSpacing){ - this.elementMapping = new HashMap; - this.incomingExtensionsMapping = new HashMap; - this.outgoingExtensionsMapping = new HashMap; - this.componentSpacing = componentSpacing; -} - -defineClass(1241, 1, {}, ElkGraphTransformer); -_.componentSpacing = 0; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer', 1241); -function $accept_2(this$static, elem, poly){ - var applier, edgeSection, points, shape_0; - this$static.offset = poly.cp.offset; - if (instanceOf(elem, 352)) { - edgeSection = firstEdgeSection(castTo(elem, 79), false, false); - points = createVectorChain(edgeSection); - applier = new ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$static); - $forEach_0(points, applier); - applyVectorChain(points, edgeSection); - elem.getProperty(($clinit_CoreOptions() , JUNCTION_POINTS_0)) != null && $forEach_0(castTo(elem.getProperty(JUNCTION_POINTS_0), 74), applier); - } - else { - shape_0 = castTo(elem, 470); - shape_0.setX(shape_0.getX() + this$static.offset.x_0); - shape_0.setY(shape_0.getY() + this$static.offset.y_0); - } -} - -function ElkGraphTransformer$OffsetApplier(){ -} - -defineClass(1242, 1, {}, ElkGraphTransformer$OffsetApplier); -_.accept_1 = function accept_55(elem, poly){ - $accept_2(this, castTo(elem, 160), castTo(poly, 266)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier', 1242); -function $accept_3(this$static, point){ - $add_18(point, this$static.this$11.offset.x_0, this$static.this$11.offset.y_0); -} - -function ElkGraphTransformer$OffsetApplier$OffSetToChainApplier(this$1){ - this.this$11 = this$1; -} - -defineClass(1243, 1, $intern_19, ElkGraphTransformer$OffsetApplier$OffSetToChainApplier); -_.accept = function accept_56(point){ - $accept_3(this, castTo(point, 8)); -} -; -var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier$OffSetToChainApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier', 1243); -function $buildIncidenceLists(graph){ - var edge, edge$iterator, incidence, n, node, node$iterator; - n = graph.nodes.array.length; - incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); - for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - incidence[node.id_0] = new LinkedList; - } - for (edge$iterator = new ArrayList$1(graph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - incidence[edge.source.id_0].add_2(edge); - incidence[edge.target.id_0].add_2(edge); - } - return incidence; -} - -function $dfs_0(this$static, node, last, graph, visited, incidence){ - var component, edge, edge$iterator; - if (!visited[node.id_0]) { - visited[node.id_0] = true; - component = graph; - !component && (component = new FGraph); - $add_3(component.nodes, node); - for (edge$iterator = incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 282); - if (edge.target == last || edge.source == last) { - continue; - } - edge.source != node && $dfs_0(this$static, edge.source, node, component, visited, incidence); - edge.target != node && $dfs_0(this$static, edge.target, node, component, visited, incidence); - $add_3(component.edges, edge); - $addAll_2(component.labels, edge.labels); - } - return component; - } - return null; -} - -function $moveGraph(destGraph, sourceGraph, offsetx, offsety){ - var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, label_0, label$iterator, node, node$iterator; - graphOffset = new KVector_1(offsetx, offsety); - $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_0() , BB_UPLEFT)), 8)); - for (node$iterator = new ArrayList$1(sourceGraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - $add_19(node.position, graphOffset); - $add_3(destGraph.nodes, node); - } - for (edge$iterator = new ArrayList$1(sourceGraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - for (bendpoint$iterator = new ArrayList$1(edge.bendpoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { - bendpoint = castTo($next_7(bendpoint$iterator), 559); - $add_19(bendpoint.position, graphOffset); - } - $add_3(destGraph.edges, edge); - } - for (label$iterator = new ArrayList$1(sourceGraph.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 447); - $add_19(label_0.position, graphOffset); - $add_3(destGraph.labels, label_0); - } -} - -function $recombine(components){ - var broadestRow, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, result, size_0, spacing, totalArea, xpos, ypos; - if (components.size_1() == 1) { - return castTo(components.get_0(0), 231); - } - else if (components.size_1() <= 0) { - return new FGraph; - } - for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { - graph = castTo(graph$iterator0.next_1(), 231); - priority = 0; - minx = $intern_0; - miny = $intern_0; - maxx = $intern_42; - maxy = $intern_42; - for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - priority += castTo($getProperty(node, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; - minx = $wnd.Math.min(minx, node.position.x_0 - node.size_0.x_0 / 2); - miny = $wnd.Math.min(miny, node.position.y_0 - node.size_0.y_0 / 2); - maxx = $wnd.Math.max(maxx, node.position.x_0 + node.size_0.x_0 / 2); - maxy = $wnd.Math.max(maxy, node.position.y_0 + node.size_0.y_0 / 2); - } - $setProperty_0(graph, ($clinit_ForceOptions() , PRIORITY), valueOf_4(priority)); - $setProperty_0(graph, ($clinit_InternalProperties_0() , BB_UPLEFT), new KVector_1(minx, miny)); - $setProperty_0(graph, BB_LOWRIGHT, new KVector_1(maxx, maxy)); - } - $clinit_Collections(); - components.sort_0(new ComponentsProcessor$1); - result = new FGraph; - $copyProperties(result, castTo(components.get_0(0), 94)); - maxRowWidth = 0; - totalArea = 0; - for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { - graph = castTo(graph$iterator1.next_1(), 231); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); - maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); - totalArea += size_0.x_0 * size_0.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_ForceOptions() , ASPECT_RATIO_0))))); - spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = spacing; - for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 231); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph, BB_UPLEFT), 8)); - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + spacing; - highestBox = 0; - } - $moveGraph(result, graph, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + spacing; - } - return result; -} - -function $split_1(this$static, graph){ - var comp, comp$iterator, components, id_0, incidence, node, node$iterator, node$iterator0, separate, visited; - separate = castToBoolean($getProperty(graph, ($clinit_ForceOptions() , SEPARATE_CONNECTED_COMPONENTS))); - if (separate == null || (checkCriticalNotNull(separate) , separate)) { - visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.nodes.array.length, 16, 1); - incidence = $buildIncidenceLists(graph); - components = new LinkedList; - for (node$iterator0 = new ArrayList$1(graph.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 144); - comp = $dfs_0(this$static, node, null, null, visited, incidence); - if (comp) { - $copyProperties(comp, graph); - $addNode_0(components, comp, components.tail.prev, components.tail); - } - } - if (components.size_0 > 1) { - for (comp$iterator = $listIterator_2(components, 0); comp$iterator.currentNode != comp$iterator.this$01.tail;) { - comp = castTo($next_10(comp$iterator), 231); - id_0 = 0; - for (node$iterator = new ArrayList$1(comp.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - node.id_0 = id_0++; - } - } - } - return components; - } - return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit, 1), $intern_100, 231, 0, [graph])); -} - -function ComponentsProcessor(){ -} - -defineClass(753, 1, {}, ComponentsProcessor); -var Lorg_eclipse_elk_alg_force_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor', 753); -function $compare_7(graph1, graph2){ - var prio, size1, size2; - prio = castTo($getProperty(graph2, ($clinit_ForceOptions() , PRIORITY)), 19).value_0 - castTo($getProperty(graph1, PRIORITY), 19).value_0; - if (prio == 0) { - size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph1, BB_UPLEFT), 8)); - size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT), 8)), castTo($getProperty(graph2, BB_UPLEFT), 8)); - return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); - } - return prio; -} - -function ComponentsProcessor$1(){ -} - -defineClass(1232, 1, $intern_88, ComponentsProcessor$1); -_.compare_1 = function compare_28(graph1, graph2){ - return $compare_7(castTo(graph1, 231), castTo(graph2, 231)); -} -; -_.equals_0 = function equals_80(other){ - return this === other; -} -; -_.reversed = function reversed_20(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_force_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor/1', 1232); -function $applyLayout_0(fgraph){ - var endLocation, fedge, fedge$iterator, flabel, flabel$iterator, fnode, fnode$iterator, height, kedge, kedgeSection, kgraph, klabel, knode, labelPos, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, nodePos, object, offset, padding, pos, size_0, startLocation, width_0, v, v_0; - kgraph = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , ORIGIN)), 33); - minXPos = $intern_0; - minYPos = $intern_0; - maxXPos = $intern_42; - maxYPos = $intern_42; - for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - pos = node.position; - size_0 = node.size_0; - minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); - minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); - maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); - maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); - } - padding = castTo($getProperty_0(kgraph, ($clinit_ForceOptions() , PADDING_0)), 116); - offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); - for (fnode$iterator = new ArrayList$1(fgraph.nodes); fnode$iterator.i < fnode$iterator.this$01.array.length;) { - fnode = castTo($next_7(fnode$iterator), 144); - object = $getProperty(fnode, ORIGIN); - if (instanceOf(object, 239)) { - knode = castTo(object, 33); - nodePos = $add_19(fnode.position, offset); - $setLocation_1(knode, nodePos.x_0 - knode.width_0 / 2, nodePos.y_0 - knode.height / 2); - } - } - for (fedge$iterator = new ArrayList$1(fgraph.edges); fedge$iterator.i < fedge$iterator.this$01.array.length;) { - fedge = castTo($next_7(fedge$iterator), 282); - kedge = castTo($getProperty(fedge, ORIGIN), 79); - kedgeSection = firstEdgeSection(kedge, true, true); - startLocation = (v = $sub_0($clone_0(fedge.target.position), fedge.source.position) , clipVector(v, fedge.source.size_0.x_0, fedge.source.size_0.y_0) , $add_19(v, fedge.source.position)); - $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); - endLocation = (v_0 = $sub_0($clone_0(fedge.source.position), fedge.target.position) , clipVector(v_0, fedge.target.size_0.x_0, fedge.target.size_0.y_0) , $add_19(v_0, fedge.target.position)); - $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); - } - for (flabel$iterator = new ArrayList$1(fgraph.labels); flabel$iterator.i < flabel$iterator.this$01.array.length;) { - flabel = castTo($next_7(flabel$iterator), 447); - klabel = castTo($getProperty(flabel, ORIGIN), 137); - labelPos = $add_19(flabel.position, offset); - $setLocation_1(klabel, labelPos.x_0, labelPos.y_0); - } - width_0 = maxXPos - minXPos + (padding.left + padding.right); - height = maxYPos - minYPos + (padding.top_0 + padding.bottom); - resizeNode_1(kgraph, width_0, height, false, true); -} - -function $importGraph_0(kgraph){ - var elemMap, fgraph; - fgraph = new FGraph; - $copyProperties(fgraph, kgraph); - $setProperty_0(fgraph, ($clinit_InternalProperties_0() , ORIGIN), kgraph); - elemMap = new HashMap; - $transformNodes(kgraph, fgraph, elemMap); - $transformEdges(kgraph, fgraph, elemMap); - return fgraph; -} - -function $transformEdges(parentNode, fgraph, elemMap){ - var kedge, kedge$iterator, klabel, klabel$iterator, knode, knode$iterator, newEdge, newLabel; - for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { - knode = castTo($doNext(knode$iterator), 33); - for (kedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(knode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(kedge$iterator);) { - kedge = castTo($next_0(kedge$iterator), 79); - !kedge.sources && (kedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 4, 7)); - if (!(kedge.sources.size_0 <= 1 && (!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets.size_0 <= 1))) { - throw toJs(new UnsupportedGraphException('Graph must not contain hyperedges.')); - } - if (!$isHierarchical(kedge) && knode != connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))) { - newEdge = new FEdge; - $copyProperties(newEdge, kedge); - $setProperty_0(newEdge, ($clinit_InternalProperties_0() , ORIGIN), kedge); - $setSource(newEdge, castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, knode)), 144)); - $setTarget(newEdge, castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!kedge.targets && (kedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, kedge, 5, 8)) , kedge.targets), 0), 82))), 144)); - $add_3(fgraph.edges, newEdge); - for (klabel$iterator = new AbstractEList$EIterator((!kedge.labels && (kedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, kedge, 1, 7)) , kedge.labels)); klabel$iterator.cursor != klabel$iterator.this$01_2.size_1();) { - klabel = castTo($doNext(klabel$iterator), 137); - newLabel = new FLabel(newEdge, klabel.text_0); - $copyProperties(newLabel, klabel); - $setProperty_0(newLabel, ORIGIN, klabel); - newLabel.size_0.x_0 = $wnd.Math.max(klabel.width_0, 1); - newLabel.size_0.y_0 = $wnd.Math.max(klabel.height, 1); - $refreshPosition(newLabel); - $add_3(fgraph.labels, newLabel); - } - } - } - } -} - -function $transformNodes(parentNode, fgraph, elemMap){ - var index_0, knode, knode$iterator, label_0, newNode, portConstraints; - index_0 = 0; - for (knode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); knode$iterator.cursor != knode$iterator.this$01_2.size_1();) { - knode = castTo($doNext(knode$iterator), 33); - label_0 = ''; - (!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels).size_0 == 0 || (label_0 = castTo($get_20((!knode.labels && (knode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, knode, 1, 7)) , knode.labels), 0), 137).text_0); - newNode = new FNode(label_0); - $copyProperties(newNode, knode); - $setProperty_0(newNode, ($clinit_InternalProperties_0() , ORIGIN), knode); - newNode.id_0 = index_0++; - newNode.position.x_0 = knode.x_0 + knode.width_0 / 2; - newNode.position.y_0 = knode.y_0 + knode.height / 2; - newNode.size_0.x_0 = $wnd.Math.max(knode.width_0, 1); - newNode.size_0.y_0 = $wnd.Math.max(knode.height, 1); - $add_3(fgraph.nodes, newNode); - $put_9(elemMap.hashCodeMap, knode, newNode); - portConstraints = castTo($getProperty_0(knode, ($clinit_ForceOptions() , PORT_CONSTRAINTS)), 98); - portConstraints == ($clinit_PortConstraints() , UNDEFINED_4) && (portConstraints = FREE); - } -} - -function $layout(this$static, elkGraph, progressMonitor){ - var builder, comp, comp$iterator, components, fgraph; - $begin(progressMonitor, 'ELK Force', 1); - $booleanValue(castToBoolean($getProperty_0(elkGraph, ($clinit_ForceOptions() , OMIT_NODE_MICRO_LAYOUT)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(elkGraph))) , builder)); - fgraph = $importGraph_0(elkGraph); - $setOptions(fgraph); - $updateModel(this$static, castTo($getProperty(fgraph, MODEL_0), 424)); - components = $split_1(this$static.componentsProcessor, fgraph); - for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 231); - $layout_0(this$static.forceModel, comp, $subTask(progressMonitor, 1 / components.size_1())); - } - fgraph = $recombine(components); - $applyLayout_0(fgraph); - $done_0(progressMonitor); -} - -function $setOptions(fgraph){ - var randomSeed, val; - randomSeed = castTo($getProperty(fgraph, ($clinit_ForceOptions() , RANDOM_SEED)), 19); - if (randomSeed) { - val = randomSeed.value_0; - val == 0?$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random):$setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(val)); - } - else { - $setProperty_0(fgraph, ($clinit_InternalProperties_0() , RANDOM), new Random_0(1)); - } -} - -function $updateModel(this$static, strategy){ - switch (strategy.ordinal) { - case 0: - instanceOf(this$static.forceModel, 631) || (this$static.forceModel = new EadesModel); - break; - case 1: - instanceOf(this$static.forceModel, 632) || (this$static.forceModel = new FruchtermanReingoldModel); - } -} - -function ForceLayoutProvider(){ - this.componentsProcessor = new ComponentsProcessor; -} - -defineClass(740, 209, $intern_96, ForceLayoutProvider); -_.layout = function layout_0(elkGraph, progressMonitor){ - $layout(this, elkGraph, progressMonitor); -} -; -var Lorg_eclipse_elk_alg_force_ForceLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ForceLayoutProvider', 740); -function FParticle(){ - this.position = new KVector; - this.size_0 = new KVector; -} - -defineClass(357, 134, {3:1, 357:1, 94:1, 134:1}); -var Lorg_eclipse_elk_alg_force_graph_FParticle_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FParticle', 357); -function FBendpoint(edge){ - FParticle.call(this); - this.edge = edge; - $add_3(edge.bendpoints, this); -} - -defineClass(559, 357, {3:1, 559:1, 357:1, 94:1, 134:1}, FBendpoint); -_.toString_0 = function toString_80(){ - var index_0; - if (this.edge) { - index_0 = $indexOf_3(this.edge.bendpoints, this, 0); - return index_0 >= 0?'b' + index_0 + '[' + $toString_10(this.edge) + ']':'b[' + $toString_10(this.edge) + ']'; - } - return 'b_' + getHashCode_0(this); -} -; -var Lorg_eclipse_elk_alg_force_graph_FBendpoint_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FBendpoint', 559); -function $distributeBendpoints(this$static){ - var bendPoint, bendPoint$iterator, count, incr, pos, sourcePos, targetPos; - count = this$static.bendpoints.array.length; - if (count > 0) { - sourcePos = this$static.source.position; - targetPos = this$static.target.position; - incr = $scale($sub_0(new KVector_1(targetPos.x_0, targetPos.y_0), sourcePos), 1 / (count + 1)); - pos = new KVector_1(sourcePos.x_0, sourcePos.y_0); - for (bendPoint$iterator = new ArrayList$1(this$static.bendpoints); bendPoint$iterator.i < bendPoint$iterator.this$01.array.length;) { - bendPoint = castTo($next_7(bendPoint$iterator), 559); - bendPoint.position.x_0 = pos.x_0; - bendPoint.position.y_0 = pos.y_0; - $add_19(pos, incr); - } - } -} - -function $setSource(this$static, theSource){ - this$static.source = theSource; -} - -function $setTarget(this$static, theTarget){ - this$static.target = theTarget; -} - -function $toString_10(this$static){ - return !!this$static.source && !!this$static.target?$toString_11(this$static.source) + '->' + $toString_11(this$static.target):'e_' + getHashCode_0(this$static); -} - -function FEdge(){ - this.bendpoints = new ArrayList; - this.labels = new ArrayList; -} - -defineClass(282, 134, {3:1, 282:1, 94:1, 134:1}, FEdge); -_.toString_0 = function toString_81(){ - return $toString_10(this); -} -; -var Lorg_eclipse_elk_alg_force_graph_FEdge_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FEdge', 282); -function $calcAdjacency(this$static){ - var edge, edge$iterator, n; - n = this$static.nodes.array.length; - this$static.adjacency = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [n, n], 2); - for (edge$iterator = new ArrayList$1(this$static.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - this$static.adjacency[edge.source.id_0][edge.target.id_0] += castTo($getProperty(edge, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; - } -} - -function $getConnection(this$static, particle1, particle2){ - var node1, node2; - if (instanceOf(particle1, 144) && !!particle2) { - node1 = castTo(particle1, 144); - node2 = particle2; - return this$static.adjacency[node1.id_0][node2.id_0] + this$static.adjacency[node2.id_0][node1.id_0]; - } - return 0; -} - -function FGraph(){ - this.nodes = new ArrayList; - this.edges = new ArrayList; - this.labels = new ArrayList; - this.bendPoints = new ArrayList; -} - -defineClass(231, 134, {3:1, 231:1, 94:1, 134:1}, FGraph); -var Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FGraph', 231); -function $refreshPosition(this$static){ - var newLabelPosition, placeInline, pos, spacing, src_0, srcToTgt, tgt, toLabelCenter; - placeInline = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_ForceOptions() , EDGE_LABELS_INLINE)))); - src_0 = this$static.edge.source.position; - tgt = this$static.edge.target.position; - if (placeInline) { - srcToTgt = $scale($sub_0(new KVector_1(tgt.x_0, tgt.y_0), src_0), 0.5); - toLabelCenter = $scale($clone_0(this$static.size_0), 0.5); - newLabelPosition = $sub_0($add_19(new KVector_1(src_0.x_0, src_0.y_0), srcToTgt), toLabelCenter); - $set_9(this$static.position, newLabelPosition); - } - else { - spacing = $doubleValue(castToDouble($getProperty(this$static.edge, SPACING_EDGE_LABEL))); - pos = this$static.position; - if (src_0.x_0 >= tgt.x_0) { - if (src_0.y_0 >= tgt.y_0) { - pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; - pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 - spacing - this$static.size_0.y_0; - } - else { - pos.x_0 = tgt.x_0 + (src_0.x_0 - tgt.x_0) / 2 + spacing; - pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 + spacing; - } - } - else { - if (src_0.y_0 >= tgt.y_0) { - pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; - pos.y_0 = tgt.y_0 + (src_0.y_0 - tgt.y_0) / 2 + spacing; - } - else { - pos.x_0 = src_0.x_0 + (tgt.x_0 - src_0.x_0) / 2 + spacing; - pos.y_0 = src_0.y_0 + (tgt.y_0 - src_0.y_0) / 2 - spacing - this$static.size_0.y_0; - } - } - } -} - -function FLabel(fedge, text_0){ - FParticle.call(this); - this.edge = fedge; - this.text_0 = text_0; - $add_3(this.edge.labels, this); -} - -defineClass(447, 357, {3:1, 447:1, 357:1, 94:1, 134:1}, FLabel); -_.toString_0 = function toString_82(){ - return this.text_0 == null || this.text_0.length == 0?'l[' + $toString_10(this.edge) + ']':'l_' + this.text_0; -} -; -var Lorg_eclipse_elk_alg_force_graph_FLabel_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FLabel', 447); -function $toString_11(this$static){ - return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; -} - -function FNode(label_0){ - FParticle.call(this); - this.displacement = new KVector; - this.label_0 = label_0; -} - -defineClass(144, 357, {3:1, 144:1, 357:1, 94:1, 134:1}, FNode); -_.toString_0 = function toString_83(){ - return $toString_11(this); -} -; -_.id_0 = 0; -var Lorg_eclipse_elk_alg_force_graph_FNode_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FNode', 144); -function $initialize_0(this$static, fgraph){ - var bends, count, edge, edge$iterator, i, node, node$iterator, pos, posScale; - this$static.graph_0 = fgraph; - this$static.random_0 = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , RANDOM)), 230); - $calcAdjacency(fgraph); - this$static.dispBound = $wnd.Math.max(fgraph.nodes.array.length * 16 + fgraph.edges.array.length, 256); - if (!$booleanValue(castToBoolean($getProperty(fgraph, ($clinit_ForceOptions() , INTERACTIVE))))) { - posScale = this$static.graph_0.nodes.array.length; - for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 144); - pos = node.position; - pos.x_0 = $nextDouble(this$static.random_0) * posScale; - pos.y_0 = $nextDouble(this$static.random_0) * posScale; - } - } - bends = fgraph.bendPoints; - for (edge$iterator = new ArrayList$1(fgraph.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - count = castTo($getProperty(edge, REPULSIVE_POWER_0), 19).value_0; - if (count > 0) { - for (i = 0; i < count; i++) { - $add_3(bends, new FBendpoint(edge)); - } - $distributeBendpoints(edge); - } - } -} - -function $iterationDone(this$static){ - var edge, edge$iterator, label_0, label$iterator; - for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 447); - $refreshPosition(label_0); - } - $distributeBendpoints(edge); - } -} - -function $layout_0(this$static, fgraph, monitor){ - var d, displacement, iterations, u, u$iterator, v, v$iterator, v$iterator0; - $begin(monitor, 'Component Layout', 1); - this$static.initialize(fgraph); - iterations = 0; - while (this$static.moreIterations(iterations)) { - for (v$iterator0 = new ArrayList$1(fgraph.nodes); v$iterator0.i < v$iterator0.this$01.array.length;) { - v = castTo($next_7(v$iterator0), 144); - for (u$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [fgraph.nodes, fgraph.labels, fgraph.bendPoints]))); $hasNext_1(u$iterator);) { - u = castTo($next_0(u$iterator), 357); - if (u != v) { - displacement = this$static.calcDisplacement(u, v); - !!displacement && $add_19(v.displacement, displacement); - } - } - } - for (v$iterator = new ArrayList$1(fgraph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 144); - d = v.displacement; - $bound(d, -this$static.dispBound, -this$static.dispBound, this$static.dispBound, this$static.dispBound); - $add_19(v.position, d); - $reset_5(d); - } - this$static.iterationDone(); - ++iterations; - } - $done_0(monitor); -} - -function avoidSamePosition(random, u, v){ - var pu, pv; - pu = u.position; - pv = v.position; - while (pu.x_0 - pv.x_0 == 0 && pu.y_0 - pv.y_0 == 0) { - pu.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - pu.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - pv.x_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - pv.y_0 += $nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79 - 0.5; - } -} - -defineClass(2003, 1, {}); -_.initialize = function initialize(fgraph){ - $initialize_0(this, fgraph); -} -; -_.iterationDone = function iterationDone(){ - $iterationDone(this); -} -; -_.dispBound = 0; -var Lorg_eclipse_elk_alg_force_model_AbstractForceModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'AbstractForceModel', 2003); -function EadesModel(){ - this.maxIterations = castTo($getDefault(($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; - this.springLength = $doubleValue(castToDouble($getDefault(SPACING_NODE_NODE))); - this.repulsionFactor = $doubleValue(castToDouble($getDefault(REPULSION_0))); -} - -function attractive(d, s){ - return d > 0?$wnd.Math.log(d / s):-100; -} - -function repulsive(d, r){ - return d > 0?r / (d * d):r * 100; -} - -defineClass(631, 2003, {631:1}, EadesModel); -_.calcDisplacement = function calcDisplacement(forcer, forcee){ - var connection, d, displacement, force, length_0; - avoidSamePosition(this.random_0, forcer, forcee); - displacement = $sub_0($clone_0(forcee.position), forcer.position); - length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); - d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); - connection = $getConnection(this.graph_0, forcer, forcee); - connection > 0?(force = -attractive(d, this.springLength) * connection):(force = repulsive(d, this.repulsionFactor) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0); - $scale(displacement, force / length_0); - return displacement; -} -; -_.initialize = function initialize_0(graph){ - $initialize_0(this, graph); - this.maxIterations = castTo($getProperty(graph, ($clinit_ForceOptions() , ITERATIONS_0)), 19).value_0; - this.springLength = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))); - this.repulsionFactor = $doubleValue(castToDouble($getProperty(graph, REPULSION_0))); -} -; -_.moreIterations = function moreIterations(count){ - return count < this.maxIterations; -} -; -_.maxIterations = 0; -_.repulsionFactor = 0; -_.springLength = 0; -var Lorg_eclipse_elk_alg_force_model_EadesModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'EadesModel', 631); -function FruchtermanReingoldModel(){ - this.temperature = $doubleValue(castToDouble($getDefault(($clinit_ForceOptions() , TEMPERATURE_0)))); -} - -function attractive_0(d, k){ - return d * d / k; -} - -function repulsive_0(d, k){ - return d > 0?k * k / d:k * k * 100; -} - -defineClass(632, 2003, {632:1}, FruchtermanReingoldModel); -_.calcDisplacement = function calcDisplacement_0(forcer, forcee){ - var connection, d, displacement, force, length_0; - avoidSamePosition(this.random_0, forcer, forcee); - displacement = $sub_0($clone_0(forcee.position), forcer.position); - length_0 = $wnd.Math.sqrt(displacement.x_0 * displacement.x_0 + displacement.y_0 * displacement.y_0); - d = $wnd.Math.max(0, length_0 - $length(forcer.size_0) / 2 - $length(forcee.size_0) / 2); - force = repulsive_0(d, this.k) * castTo($getProperty(forcer, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; - connection = $getConnection(this.graph_0, forcer, forcee); - connection > 0 && (force -= attractive_0(d, this.k) * connection); - $scale(displacement, force * this.temperature / length_0); - return displacement; -} -; -_.initialize = function initialize_1(graph){ - var area, c, n, totalHeight, totalWidth, v, v$iterator; - $initialize_0(this, graph); - this.temperature = $doubleValue(castToDouble($getProperty(graph, ($clinit_ForceOptions() , TEMPERATURE_0)))); - this.threshold = this.temperature / castTo($getProperty(graph, ITERATIONS_0), 19).value_0; - n = graph.nodes.array.length; - totalWidth = 0; - totalHeight = 0; - for (v$iterator = new ArrayList$1(graph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 144); - totalWidth += v.size_0.x_0; - totalHeight += v.size_0.y_0; - } - area = totalWidth * totalHeight; - c = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE))) * $intern_94; - this.k = $wnd.Math.sqrt(area / (2 * n)) * c; -} -; -_.iterationDone = function iterationDone_0(){ - $iterationDone(this); - this.temperature -= this.threshold; -} -; -_.moreIterations = function moreIterations_0(count){ - return this.temperature > 0; -} -; -_.k = 0; -_.temperature = 0; -_.threshold = 0; -var Lorg_eclipse_elk_alg_force_model_FruchtermanReingoldModel_2_classLit = createForClass('org.eclipse.elk.alg.force.model', 'FruchtermanReingoldModel', 632); -function $clinit_ForceMetaDataProvider(){ - $clinit_ForceMetaDataProvider = emptyMethod; - MODEL_DEFAULT = ($clinit_ForceModelStrategy() , FRUCHTERMAN_REINGOLD); - MODEL = new Property_1('org.eclipse.elk.force.model', MODEL_DEFAULT); - valueOf_4(1); - ITERATIONS = new Property_1('org.eclipse.elk.force.iterations', valueOf_4(300)); - valueOf_4(0); - REPULSIVE_POWER = new Property_1('org.eclipse.elk.force.repulsivePower', valueOf_4(0)); - new ExclusiveBounds$ExclusiveLowerBound; - TEMPERATURE = new Property_1('org.eclipse.elk.force.temperature', $intern_101); - new ExclusiveBounds$ExclusiveLowerBound; - REPULSION = new Property_1('org.eclipse.elk.force.repulsion', 5); - TEMPERATURE_DEP_MODEL_0 = FRUCHTERMAN_REINGOLD; - REPULSION_DEP_MODEL_0 = EADES; -} - -function ForceMetaDataProvider(){ - $clinit_ForceMetaDataProvider(); -} - -defineClass(849, 1, $intern_90, ForceMetaDataProvider); -_.apply_4 = function apply_55(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.model'), ''), 'Force Model'), 'Determines the model for force calculation.'), MODEL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.iterations'), ''), 'Iterations'), 'The number of iterations on the force model.'), valueOf_4(300)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsivePower'), ''), 'Repulsive Power'), 'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.temperature'), ''), 'FR Temperature'), 'The temperature is used as a scaling factor for particle displacements.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.force.temperature', 'org.eclipse.elk.force.model', TEMPERATURE_DEP_MODEL_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.force.repulsion'), ''), 'Eades Repulsion'), "Factor for repulsive forces in Eades' model."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.force.repulsion', 'org.eclipse.elk.force.model', REPULSION_DEP_MODEL_0); - $apply_12((new ForceOptions , registry)); -} -; -var ITERATIONS, MODEL, MODEL_DEFAULT, REPULSION, REPULSION_DEP_MODEL_0, REPULSIVE_POWER, TEMPERATURE, TEMPERATURE_DEP_MODEL_0; -var Lorg_eclipse_elk_alg_force_options_ForceMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceMetaDataProvider', 849); -function $clinit_ForceModelStrategy(){ - $clinit_ForceModelStrategy = emptyMethod; - EADES = new ForceModelStrategy('EADES', 0); - FRUCHTERMAN_REINGOLD = new ForceModelStrategy('FRUCHTERMAN_REINGOLD', 1); -} - -function ForceModelStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_25(name_0){ - $clinit_ForceModelStrategy(); - return valueOf(($clinit_ForceModelStrategy$Map() , $MAP_13), name_0); -} - -function values_31(){ - $clinit_ForceModelStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]); -} - -defineClass(424, 22, {3:1, 35:1, 22:1, 424:1}, ForceModelStrategy); -var EADES, FRUCHTERMAN_REINGOLD; -var Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.force.options', 'ForceModelStrategy', 424, Ljava_lang_Enum_2_classLit, values_31, valueOf_25); -function $clinit_ForceModelStrategy$Map(){ - $clinit_ForceModelStrategy$Map = emptyMethod; - $MAP_13 = createValueOfMap(($clinit_ForceModelStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit, 1), $intern_36, 424, 0, [EADES, FRUCHTERMAN_REINGOLD]))); -} - -var $MAP_13; -function $clinit_ForceOptions(){ - $clinit_ForceOptions = emptyMethod; - PRIORITY = new Property_2(($clinit_CoreOptions() , PRIORITY_3), valueOf_4(1)); - SPACING_NODE_NODE = new Property_2(SPACING_NODE_NODE_6, 80); - SPACING_EDGE_LABEL = new Property_2(SPACING_EDGE_LABEL_1, 5); - ASPECT_RATIO_0 = new Property_2(ASPECT_RATIO_5, $intern_102); - RANDOM_SEED = new Property_2(RANDOM_SEED_1, valueOf_4(1)); - SEPARATE_CONNECTED_COMPONENTS = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); - PADDING_DEFAULT = new ElkPadding_0(50); - PADDING_0 = new Property_2(PADDING_6, PADDING_DEFAULT); - INTERACTIVE = INTERACTIVE_7; - PORT_CONSTRAINTS = PORT_CONSTRAINTS_1; - EDGE_LABELS_INLINE = new Property_2(EDGE_LABELS_INLINE_1, false); - OMIT_NODE_MICRO_LAYOUT = OMIT_NODE_MICRO_LAYOUT_4; - NODE_SIZE_OPTIONS = NODE_SIZE_OPTIONS_6; - NODE_SIZE_CONSTRAINTS = NODE_SIZE_CONSTRAINTS_6; - NODE_LABELS_PLACEMENT = NODE_LABELS_PLACEMENT_5; - PORT_LABELS_PLACEMENT = PORT_LABELS_PLACEMENT_5; - MODEL_0 = ($clinit_ForceMetaDataProvider() , MODEL); - TEMPERATURE_0 = TEMPERATURE; - ITERATIONS_0 = ITERATIONS; - REPULSION_0 = REPULSION; - REPULSIVE_POWER_0 = REPULSIVE_POWER; -} - -function $apply_12(registry){ - $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.force'), 'ELK Force'), 'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'), new ForceOptions$ForceFactory), 'org.eclipse.elk.force'), of_2(($clinit_GraphFeature() , MULTI_EDGES), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [EDGE_LABELS]))))); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.priority', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.nodeNode', 80); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.spacing.edgeLabel', 5); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.aspectRatio', $intern_102); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.randomSeed', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.padding', PADDING_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.edgeLabels.inline', false); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.model', $getDefault(MODEL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.temperature', $getDefault(TEMPERATURE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.iterations', $getDefault(ITERATIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsion', $getDefault(REPULSION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.force.repulsivePower', $getDefault(REPULSIVE_POWER_0)); -} - -function ForceOptions(){ - $clinit_ForceOptions(); -} - -defineClass(988, 1, $intern_90, ForceOptions); -_.apply_4 = function apply_56(registry){ - $apply_12(registry); -} -; -var ASPECT_RATIO_0, EDGE_LABELS_INLINE, INTERACTIVE, ITERATIONS_0, MODEL_0, NODE_LABELS_PLACEMENT, NODE_SIZE_CONSTRAINTS, NODE_SIZE_OPTIONS, OMIT_NODE_MICRO_LAYOUT, PADDING_0, PADDING_DEFAULT, PORT_CONSTRAINTS, PORT_LABELS_PLACEMENT, PRIORITY, RANDOM_SEED, REPULSION_0, REPULSIVE_POWER_0, SEPARATE_CONNECTED_COMPONENTS, SPACING_EDGE_LABEL, SPACING_NODE_NODE, TEMPERATURE_0; -var Lorg_eclipse_elk_alg_force_options_ForceOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions', 988); -function ForceOptions$ForceFactory(){ -} - -defineClass(989, 1, {}, ForceOptions$ForceFactory); -_.create_0 = function create_3(){ - var provider; - return provider = new ForceLayoutProvider , provider; -} -; -_.destroy = function destroy_0(obj){ -} -; -var Lorg_eclipse_elk_alg_force_options_ForceOptions$ForceFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions/ForceFactory', 989); -function $clinit_InternalProperties_0(){ - $clinit_InternalProperties_0 = emptyMethod; - ORIGIN = new Property('origin'); - RANDOM = new Property('random'); - BB_UPLEFT = new Property('boundingBox.upLeft'); - BB_LOWRIGHT = new Property('boundingBox.lowRight'); -} - -var BB_LOWRIGHT, BB_UPLEFT, ORIGIN, RANDOM; -function $clinit_StressMetaDataProvider(){ - $clinit_StressMetaDataProvider = emptyMethod; - FIXED = new Property_1('org.eclipse.elk.stress.fixed', ($clinit_Boolean() , false)); - DESIRED_EDGE_LENGTH = new Property_1('org.eclipse.elk.stress.desiredEdgeLength', 100); - DIMENSION_DEFAULT = ($clinit_StressMajorization$Dimension() , XY); - DIMENSION = new Property_1('org.eclipse.elk.stress.dimension', DIMENSION_DEFAULT); - EPSILON = new Property_1('org.eclipse.elk.stress.epsilon', $intern_101); - ITERATION_LIMIT = new Property_1('org.eclipse.elk.stress.iterationLimit', valueOf_4($intern_0)); -} - -function StressMetaDataProvider(){ - $clinit_StressMetaDataProvider(); -} - -defineClass(850, 1, $intern_90, StressMetaDataProvider); -_.apply_4 = function apply_57(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.fixed'), ''), 'Fixed Position'), 'Prevent that the node is moved by the layout algorithm.'), ($clinit_Boolean() , false)), ($clinit_LayoutOptionData$Type() , BOOLEAN)), Ljava_lang_Boolean_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.desiredEdgeLength'), ''), 'Desired Edge Length'), 'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'), 100), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.dimension'), ''), 'Layout Dimension'), 'Dimensions that are permitted to be altered during layout.'), DIMENSION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.epsilon'), ''), 'Stress Epsilon'), 'Termination criterion for the iterative process.'), $intern_101), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.stress.iterationLimit'), ''), 'Iteration Limit'), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $apply_13((new StressOptions , registry)); -} -; -var DESIRED_EDGE_LENGTH, DIMENSION, DIMENSION_DEFAULT, EPSILON, FIXED, ITERATION_LIMIT; -var Lorg_eclipse_elk_alg_force_options_StressMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressMetaDataProvider', 850); -function $clinit_StressOptions(){ - $clinit_StressOptions = emptyMethod; - INTERACTIVE_0 = ($clinit_CoreOptions() , INTERACTIVE_7); - new Property_2(EDGE_LABELS_INLINE_1, ($clinit_Boolean() , true)); - NODE_SIZE_CONSTRAINTS_0 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_0 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_0 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_0 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_0 = PORT_LABELS_PLACEMENT_5; - FIXED_0 = ($clinit_StressMetaDataProvider() , FIXED); - DIMENSION_0 = DIMENSION; - EPSILON_0 = EPSILON; - ITERATION_LIMIT_0 = ITERATION_LIMIT; - DESIRED_EDGE_LENGTH_0 = DESIRED_EDGE_LENGTH; -} - -function $apply_13(registry){ - $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.stress'), 'ELK Stress'), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new StressOptions$StressFactory), 'org.eclipse.elk.force'))); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.edgeLabels.inline', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.fixed', $getDefault(FIXED_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.dimension', $getDefault(DIMENSION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.epsilon', $getDefault(EPSILON_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.iterationLimit', $getDefault(ITERATION_LIMIT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.stress', 'org.eclipse.elk.stress.desiredEdgeLength', $getDefault(DESIRED_EDGE_LENGTH_0)); -} - -function StressOptions(){ - $clinit_StressOptions(); -} - -defineClass(992, 1, $intern_90, StressOptions); -_.apply_4 = function apply_58(registry){ - $apply_13(registry); -} -; -var DESIRED_EDGE_LENGTH_0, DIMENSION_0, EPSILON_0, FIXED_0, INTERACTIVE_0, ITERATION_LIMIT_0, NODE_LABELS_PLACEMENT_0, NODE_SIZE_CONSTRAINTS_0, NODE_SIZE_MINIMUM, NODE_SIZE_OPTIONS_0, OMIT_NODE_MICRO_LAYOUT_0, PORT_LABELS_PLACEMENT_0; -var Lorg_eclipse_elk_alg_force_options_StressOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions', 992); -function StressOptions$StressFactory(){ -} - -defineClass(993, 1, {}, StressOptions$StressFactory); -_.create_0 = function create_4(){ - var provider; - return provider = new StressLayoutProvider , provider; -} -; -_.destroy = function destroy_1(obj){ -} -; -var Lorg_eclipse_elk_alg_force_options_StressOptions$StressFactory_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'StressOptions/StressFactory', 993); -function StressLayoutProvider(){ - this.componentsProcessor = new ComponentsProcessor; - this.stressMajorization = new StressMajorization; -} - -defineClass(1128, 209, $intern_96, StressLayoutProvider); -_.layout = function layout_1(layoutGraph, progressMonitor){ - var builder, components, fgraph, subGraph, subGraph$iterator; - $begin(progressMonitor, 'ELK Stress', 1); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_StressOptions() , INTERACTIVE_0))))?$booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_0))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)):$layout(new ForceLayoutProvider, layoutGraph, $subTask(progressMonitor, 1)); - fgraph = $importGraph_0(layoutGraph); - components = $split_1(this.componentsProcessor, fgraph); - for (subGraph$iterator = components.iterator_0(); subGraph$iterator.hasNext_0();) { - subGraph = castTo(subGraph$iterator.next_1(), 231); - if (subGraph.nodes.array.length <= 1) { - continue; - } - $initialize_1(this.stressMajorization, subGraph); - $execute_1(this.stressMajorization); - $forEach_1(subGraph.labels, new StressLayoutProvider$lambda$0$Type); - } - fgraph = $recombine(components); - $applyLayout_0(fgraph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider', 1128); -function StressLayoutProvider$lambda$0$Type(){ -} - -defineClass(1129, 1, $intern_19, StressLayoutProvider$lambda$0$Type); -_.accept = function accept_57(arg0){ - $refreshPosition(castTo(arg0, 447)); -} -; -var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider/lambda$0$Type', 1129); -function $computeNewPosition(this$static, u){ - var eucDist, v, v$iterator, weightSum, wij, xDisp, yDisp; - weightSum = 0; - xDisp = 0; - yDisp = 0; - for (v$iterator = new ArrayList$1(this$static.graph_0.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 144); - if (u == v) { - continue; - } - wij = this$static.w[u.id_0][v.id_0]; - weightSum += wij; - eucDist = $distance_0(u.position, v.position); - eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , Y) && (xDisp += wij * (v.position.x_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.x_0 - v.position.x_0) / eucDist)); - eucDist > 0 && this$static.dim != ($clinit_StressMajorization$Dimension() , X) && (yDisp += wij * (v.position.y_0 + this$static.apsp[u.id_0][v.id_0] * (u.position.y_0 - v.position.y_0) / eucDist)); - } - switch (this$static.dim.ordinal) { - case 1: - return new KVector_1(xDisp / weightSum, u.position.y_0); - case 2: - return new KVector_1(u.position.x_0, yDisp / weightSum); - default:return new KVector_1(xDisp / weightSum, yDisp / weightSum); - } -} - -function $computeStress(this$static){ - var eucDisplacement, eucDist, i, j, nodes, stress, u, v; - stress = 0; - nodes = this$static.graph_0.nodes; - for (i = 0; i < nodes.array.length; ++i) { - u = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 144)); - for (j = i + 1; j < nodes.array.length; ++j) { - v = (checkCriticalElementIndex(j, nodes.array.length) , castTo(nodes.array[j], 144)); - eucDist = $distance_0(u.position, v.position); - eucDisplacement = eucDist - this$static.apsp[u.id_0][v.id_0]; - stress += this$static.w[u.id_0][v.id_0] * eucDisplacement * eucDisplacement; - } - } - return stress; -} - -function $dijkstra(this$static, source, dist){ - var d, e, e$iterator, el, mark, n, n$iterator, nodes, u, v; - nodes = new PriorityQueue(new StressMajorization$lambda$0$Type(dist)); - mark = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.nodes.array.length, 16, 1); - fill0_3(mark, mark.length); - dist[source.id_0] = 0; - for (n$iterator = new ArrayList$1(this$static.graph_0.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 144); - n.id_0 != source.id_0 && (dist[n.id_0] = $intern_0); - checkCriticalState_0($offer(nodes, n)); - } - while (nodes.heap.array.length != 0) { - u = castTo($poll_0(nodes), 144); - mark[u.id_0] = true; - for (e$iterator = $listIterator_0(new LinkedListMultimap$1(this$static.connectedEdges, u), 0); e$iterator.next_0;) { - e = castTo($next_2(e$iterator), 282); - v = $getOther_0(e, u); - if (mark[v.id_0]) { - continue; - } - $hasProperty(e, ($clinit_StressOptions() , DESIRED_EDGE_LENGTH_0))?(el = $doubleValue(castToDouble($getProperty(e, DESIRED_EDGE_LENGTH_0)))):(el = this$static.desiredEdgeLength); - d = dist[u.id_0] + el; - if (d < dist[v.id_0]) { - dist[v.id_0] = d; - $remove_25(nodes, v); - checkCriticalState_0($offer(nodes, v)); - } - } - } -} - -function $done(this$static, count, prevStress, curStress){ - return prevStress == 0 || (prevStress - curStress) / prevStress < this$static.epsilon || count >= this$static.iterationLimit; -} - -function $execute_1(this$static){ - var count, curStress, newPos, prevStress, u, u$iterator; - if (this$static.graph_0.nodes.array.length <= 1) { - return; - } - count = 0; - prevStress = $computeStress(this$static); - curStress = $intern_59; - do { - count > 0 && (prevStress = curStress); - for (u$iterator = new ArrayList$1(this$static.graph_0.nodes); u$iterator.i < u$iterator.this$01.array.length;) { - u = castTo($next_7(u$iterator), 144); - if ($booleanValue(castToBoolean($getProperty(u, ($clinit_StressOptions() , FIXED_0))))) { - continue; - } - newPos = $computeNewPosition(this$static, u); - $add_19($reset_5(u.position), newPos); - } - curStress = $computeStress(this$static); - } - while (!$done(this$static, count++, prevStress, curStress)); -} - -function $getOther_0(edge, one){ - if (edge.source == one) { - return edge.target; - } - else if (edge.target == one) { - return edge.source; - } - else { - throw toJs(new IllegalArgumentException_0("Node 'one' must be either source or target of edge 'edge'.")); - } -} - -function $initialize_1(this$static, fgraph){ - var dij, edge, edge$iterator, i, j, n, source, source$iterator, wij; - if (fgraph.nodes.array.length <= 1) { - return; - } - this$static.graph_0 = fgraph; - this$static.dim = castTo($getProperty(this$static.graph_0, ($clinit_StressOptions() , DIMENSION_0)), 379); - this$static.iterationLimit = castTo($getProperty(this$static.graph_0, ITERATION_LIMIT_0), 19).value_0; - this$static.epsilon = $doubleValue(castToDouble($getProperty(this$static.graph_0, EPSILON_0))); - this$static.desiredEdgeLength = $doubleValue(castToDouble($getProperty(this$static.graph_0, DESIRED_EDGE_LENGTH_0))); - $clear_3(this$static.connectedEdges); - for (edge$iterator = new ArrayList$1(this$static.graph_0.edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 282); - $addNode(this$static.connectedEdges, edge.source, edge, null); - $addNode(this$static.connectedEdges, edge.target, edge, null); - } - n = this$static.graph_0.nodes.array.length; - this$static.apsp = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); - for (source$iterator = new ArrayList$1(this$static.graph_0.nodes); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 144); - $dijkstra(this$static, source, this$static.apsp[source.id_0]); - } - this$static.w = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 15, [n, n], 2); - for (i = 0; i < n; ++i) { - for (j = 0; j < n; ++j) { - dij = this$static.apsp[i][j]; - wij = 1 / (dij * dij); - this$static.w[i][j] = wij; - } - } -} - -function StressMajorization(){ - this.connectedEdges = new LinkedListMultimap; -} - -function lambda$0_15(dist_0, n1_1, n2_2){ - return compare_4(dist_0[n1_1.id_0], dist_0[n2_2.id_0]); -} - -defineClass(990, 1, {}, StressMajorization); -_.desiredEdgeLength = 0; -_.epsilon = 0; -_.iterationLimit = 0; -var Lorg_eclipse_elk_alg_force_stress_StressMajorization_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization', 990); -function $clinit_StressMajorization$Dimension(){ - $clinit_StressMajorization$Dimension = emptyMethod; - XY = new StressMajorization$Dimension('XY', 0); - X = new StressMajorization$Dimension('X', 1); - Y = new StressMajorization$Dimension('Y', 2); -} - -function StressMajorization$Dimension(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_26(name_0){ - $clinit_StressMajorization$Dimension(); - return valueOf(($clinit_StressMajorization$Dimension$Map() , $MAP_14), name_0); -} - -function values_32(){ - $clinit_StressMajorization$Dimension(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]); -} - -defineClass(379, 22, {3:1, 35:1, 22:1, 379:1}, StressMajorization$Dimension); -var X, XY, Y; -var Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit = createForEnum('org.eclipse.elk.alg.force.stress', 'StressMajorization/Dimension', 379, Ljava_lang_Enum_2_classLit, values_32, valueOf_26); -function $clinit_StressMajorization$Dimension$Map(){ - $clinit_StressMajorization$Dimension$Map = emptyMethod; - $MAP_14 = createValueOfMap(($clinit_StressMajorization$Dimension() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_stress_StressMajorization$Dimension_2_classLit, 1), $intern_36, 379, 0, [XY, X, Y]))); -} - -var $MAP_14; -function StressMajorization$lambda$0$Type(dist_0){ - this.dist_0 = dist_0; -} - -defineClass(991, 1, $intern_88, StressMajorization$lambda$0$Type); -_.compare_1 = function compare_29(arg0, arg1){ - return lambda$0_15(this.dist_0, castTo(arg0, 144), castTo(arg1, 144)); -} -; -_.equals_0 = function equals_81(other){ - return this === other; -} -; -_.reversed = function reversed_21(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_force_stress_StressMajorization$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressMajorization/lambda$0$Type', 991); -function $collectAllGraphsBottomUp(root){ - var collectedGraphs, continueSearchingTheseGraphs, nestedGraph, nextGraph, node, node$iterator; - collectedGraphs = new ArrayDeque; - continueSearchingTheseGraphs = new ArrayDeque; - $addFirst(collectedGraphs, root); - $addFirst(continueSearchingTheseGraphs, root); - while (continueSearchingTheseGraphs.head != continueSearchingTheseGraphs.tail) { - nextGraph = castTo($removeFirst(continueSearchingTheseGraphs), 37); - for (node$iterator = new ArrayList$1(nextGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.nestedGraph) { - nestedGraph = node.nestedGraph; - $addFirst(collectedGraphs, nestedGraph); - $addFirst(continueSearchingTheseGraphs, nestedGraph); - } - } - } - return collectedGraphs; -} - -function $doCompoundLayout(this$static, lgraph, monitor){ - var theMonitor; - theMonitor = monitor; - !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); - $begin(theMonitor, 'Layered layout', 2); - $process_1(this$static.compoundGraphPreprocessor, lgraph, $subTask(theMonitor, 1)); - $hierarchicalLayout(this$static, lgraph, $subTask(theMonitor, 1)); - $process_0(lgraph, $subTask(theMonitor, 1)); - $done_0(theMonitor); -} - -function $doLayout(this$static, lgraph, monitor){ - var comp, comp$iterator, compWork, components, theMonitor; - theMonitor = monitor; - !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); - $begin(theMonitor, 'Layered layout', 1); - $prepareGraphForLayout(this$static.graphConfigurator, lgraph); - components = $split_2(this$static.componentsProcessor, lgraph); - if (components.size_1() == 1) { - $layout_1(castTo(components.get_0(0), 37), theMonitor); - } - else { - compWork = 1 / components.size_1(); - for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { - comp = castTo(comp$iterator.next_1(), 37); - $layout_1(comp, $subTask(theMonitor, compWork)); - } - } - $combine(this$static.componentsProcessor, components, lgraph); - $resizeGraph(lgraph); - $done_0(theMonitor); -} - -function $hierarchicalLayout(this$static, lgraph, monitor){ - var algorithm, g, g$iterator, graph, graphAndAlgorithm, graphAndAlgorithm$iterator, graphs, graphsAndAlgorithms, processor, processors, rootProcessors, slotIndex, work, parentCms, rootType; - graphs = $collectAllGraphsBottomUp(lgraph); - parentCms = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); - parentCms != ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP) && $forEach_0(graphs, new ElkLayered$lambda$0$Type); - rootType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292); - $forEach_0(graphs, new ElkLayered$lambda$1$Type(rootType)); - work = 0; - graphsAndAlgorithms = new ArrayList; - for (g$iterator = new ArrayDeque$IteratorImpl(graphs); g$iterator.currentIndex != g$iterator.fence;) { - g = castTo($next_6(g$iterator), 37); - $prepareGraphForLayout(this$static.graphConfigurator, g); - processors = castTo($getProperty(g, ($clinit_InternalProperties_1() , PROCESSORS)), 15); - work += processors.size_1(); - algorithm = processors.iterator_0(); - $add_3(graphsAndAlgorithms, new Pair(g, algorithm)); - } - $begin(monitor, 'Recursive hierarchical layout', work); - slotIndex = 0; - rootProcessors = castTo(castTo($get_11(graphsAndAlgorithms, graphsAndAlgorithms.array.length - 1), 46).second, 47); - while (rootProcessors.hasNext_0()) { - for (graphAndAlgorithm$iterator = new ArrayList$1(graphsAndAlgorithms); graphAndAlgorithm$iterator.i < graphAndAlgorithm$iterator.this$01.array.length;) { - graphAndAlgorithm = castTo($next_7(graphAndAlgorithm$iterator), 46); - processors = castTo(graphAndAlgorithm.second, 47); - graph = castTo(graphAndAlgorithm.first, 37); - while (processors.hasNext_0()) { - processor = castTo(processors.next_1(), 51); - if (instanceOf(processor, 507)) { - if (!graph.parentNode) { - processor.process(graph, $subTask(monitor, 1)); - ++slotIndex; - break; - } - else { - break; - } - } - else { - processor.process(graph, $subTask(monitor, 1)); - ++slotIndex; - } - } - } - } - $done_0(monitor); -} - -function $layout_1(lgraph, monitor){ - var algorithm, gwtDoesntSupportPrintf, layer, layer$iterator, monitorProgress, monitorWasAlreadyRunning, node, node$iterator, processor, processor$iterator, processor$iterator0, slot, slotIndex; - monitorWasAlreadyRunning = monitor.taskName != null && !monitor.closed_0; - monitorWasAlreadyRunning || $begin(monitor, 'Component Layout', 1); - algorithm = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , PROCESSORS)), 15); - monitorProgress = 1 / algorithm.size_1(); - if (monitor.recordLogs) { - $log_2(monitor, 'ELK Layered uses the following ' + algorithm.size_1() + ' modules:'); - slot = 0; - for (processor$iterator0 = algorithm.iterator_0(); processor$iterator0.hasNext_0();) { - processor = castTo(processor$iterator0.next_1(), 51); - gwtDoesntSupportPrintf = (slot < 10?'0':'') + slot++; - $log_2(monitor, ' Slot ' + gwtDoesntSupportPrintf + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(processor))); - } - } - slotIndex = 0; - for (processor$iterator = algorithm.iterator_0(); processor$iterator.hasNext_0();) { - processor = castTo(processor$iterator.next_1(), 51); - processor.process(lgraph, $subTask(monitor, monitorProgress)); - ++slotIndex; - } - for (layer$iterator = new ArrayList$1(lgraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $addAll_2(lgraph.layerlessNodes, layer.nodes); - layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - } - lgraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - monitorWasAlreadyRunning || $done_0(monitor); -} - -function $resizeGraph(lgraph){ - var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; - sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); - sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); - calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - adjustedSize = new KVector_2(calculatedSize); - if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); - if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); - adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); - } - $booleanValue(castToBoolean($getProperty(lgraph, NODE_SIZE_FIXED_GRAPH_SIZE))) || $resizeGraphNoReallyIMeanIt(lgraph, calculatedSize, adjustedSize); -} - -function $resizeGraphNoReallyIMeanIt(lgraph, oldSize, newSize){ - var contentAlignment, extPortSide, lPadding, node, node$iterator; - contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); - newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); - newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); - if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { - for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); - extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); - } - } - } - lPadding = lgraph.padding; - lgraph.size_0.x_0 = newSize.x_0 - lPadding.left - lPadding.right; - lgraph.size_0.y_0 = newSize.y_0 - lPadding.top_0 - lPadding.bottom; -} - -function ElkLayered(){ - this.graphConfigurator = new GraphConfigurator; - this.componentsProcessor = new ComponentsProcessor_0; - this.compoundGraphPreprocessor = new CompoundGraphPreprocessor; - $clinit_CompoundGraphPostprocessor(); -} - -function lambda$0_16(child_0){ - var childCms; - childCms = castTo($getProperty(child_0, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); - if (childCms == ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP)) { - throw toJs(new UnsupportedGraphException('The hierarchy aware processor ' + childCms + ' in child node ' + child_0 + ' is only allowed if the root node specifies the same hierarchical processor.')); - } -} - -function lambda$1_5(rootType_0, g_1){ - return $setProperty_0(g_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), rootType_0); -} - -defineClass(1229, 1, {}, ElkLayered); -var Lorg_eclipse_elk_alg_layered_ElkLayered_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered', 1229); -function ElkLayered$lambda$0$Type(){ -} - -defineClass(1230, 1, $intern_19, ElkLayered$lambda$0$Type); -_.accept = function accept_58(arg0){ - lambda$0_16(castTo(arg0, 37)); -} -; -var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$0$Type', 1230); -function ElkLayered$lambda$1$Type(rootType_0){ - this.rootType_0 = rootType_0; -} - -defineClass(1231, 1, $intern_19, ElkLayered$lambda$1$Type); -_.accept = function accept_59(arg0){ - lambda$1_5(this.rootType_0, castTo(arg0, 37)); -} -; -var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$1$Type', 1231); -function $clinit_GraphConfigurator(){ - $clinit_GraphConfigurator = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , INNERMOST_NODE_MARGIN_CALCULATOR)), P4_NODE_PLACEMENT, LABEL_AND_NODE_SIZE_PROCESSOR), P5_EDGE_ROUTING, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR), P5_EDGE_ROUTING, END_LABEL_SORTER); - LABEL_MANAGEMENT_ADDITIONS = $addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, CENTER_LABEL_MANAGEMENT_PROCESSOR), P4_NODE_PLACEMENT, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR); - HIERARCHICAL_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HIERARCHICAL_NODE_RESIZER); -} - -function $copyPortConstraints(this$static, node){ - var nestedGraph, originalPortconstraints; - originalPortconstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS), originalPortconstraints); - nestedGraph = node.nestedGraph; - !!nestedGraph && ($forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)) , $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(nestedGraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static))); -} - -function $getPhaseIndependentLayoutProcessorConfiguration(lgraph){ - var configuration, graphProperties, greedySwitchType, hierarchyHandling, internalGreedyType; - graphProperties = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - configuration = createFrom_0(BASELINE_PROCESSING_CONFIGURATION); - hierarchyHandling = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING)), 334); - hierarchyHandling == ($clinit_HierarchyHandling() , INCLUDE_CHILDREN) && $addAll_6(configuration, HIERARCHICAL_ADDITIONS); - $booleanValue(castToBoolean($getProperty(lgraph, FEEDBACK_EDGES_0)))?$addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)):$addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_SIDE_PROCESSOR)); - $getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) != null && $addAll_6(configuration, LABEL_MANAGEMENT_ADDITIONS); - ($booleanValue(castToBoolean($getProperty(lgraph, INTERACTIVE_LAYOUT))) || $booleanValue(castToBoolean($getProperty(lgraph, GENERATE_POSITION_AND_LAYER_IDS_0)))) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , CONSTRAINTS_POSTPROCESSOR)); - switch (castTo($getProperty(lgraph, DIRECTION), 103).ordinal) { - case 2: - case 3: - case 4: - $addAfter($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , DIRECTION_PREPROCESSOR)), P5_EDGE_ROUTING, DIRECTION_POSTPROCESSOR); - } - graphProperties.contains(($clinit_GraphProperties() , COMMENTS)) && $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , COMMENT_PREPROCESSOR)), P4_NODE_PLACEMENT, COMMENT_NODE_MARGIN_CALCULATOR), P5_EDGE_ROUTING, COMMENT_POSTPROCESSOR); - maskUndefined($getProperty(lgraph, LAYERING_NODE_PROMOTION_STRATEGY_0)) !== maskUndefined(($clinit_NodePromotionStrategy() , NONE_9)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , NODE_PROMOTION)); - if (graphProperties.contains(PARTITIONS)) { - $addBefore(configuration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , PARTITION_PREPROCESSOR)); - $addBefore(configuration, P2_LAYERING, PARTITION_MIDPROCESSOR); - $addBefore(configuration, P3_NODE_ORDERING, PARTITION_POSTPROCESSOR); - } - maskUndefined($getProperty(lgraph, COMPACTION_POST_COMPACTION_STRATEGY_0)) !== maskUndefined(($clinit_GraphCompactionStrategy() , NONE_5)) && maskUndefined($getProperty(lgraph, EDGE_ROUTING)) !== maskUndefined(($clinit_EdgeRouting() , POLYLINE)) && $addAfter(configuration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HORIZONTAL_COMPACTOR)); - $booleanValue(castToBoolean($getProperty(lgraph, HIGH_DEGREE_NODES_TREATMENT_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , HIGH_DEGREE_NODE_LAYER_PROCESSOR)); - $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SEMI_INTERACTIVE_CROSSMIN_PROCESSOR)); - if (activateGreedySwitchFor(lgraph)) { - maskUndefined($getProperty(lgraph, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN)?(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292)):(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292)); - internalGreedyType = greedySwitchType == ($clinit_GreedySwitchType() , ONE_SIDED)?($clinit_IntermediateProcessorStrategy() , ONE_SIDED_GREEDY_SWITCH):($clinit_IntermediateProcessorStrategy() , TWO_SIDED_GREEDY_SWITCH); - $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), internalGreedyType); - } - switch (castTo($getProperty(lgraph, WRAPPING_STRATEGY_0), 377).ordinal) { - case 1: - $addBefore(configuration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , SINGLE_EDGE_GRAPH_WRAPPER)); - break; - case 2: - $addAfter($addBefore($addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , BREAKING_POINT_INSERTER)), P4_NODE_PLACEMENT, BREAKING_POINT_PROCESSOR), P5_EDGE_ROUTING, BREAKING_POINT_REMOVER); - } - maskUndefined($getProperty(lgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , SORT_BY_INPUT_ORDER_OF_MODEL)); - return configuration; -} - -function $prepareGraphForLayout(this$static, lgraph){ - var edgeSpacing, direction, randomSeed, favorStraightness, spacings; - edgeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - edgeSpacing < 2 && $setProperty_0(lgraph, SPACING_EDGE_EDGE, 2); - direction = castTo($getProperty(lgraph, DIRECTION), 103); - direction == ($clinit_Direction_0() , UNDEFINED_2) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); - randomSeed = castTo($getProperty(lgraph, RANDOM_SEED_0), 19); - randomSeed.value_0 == 0?$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random):$setProperty_0(lgraph, ($clinit_InternalProperties_1() , RANDOM_0), new Random_0(randomSeed.value_0)); - favorStraightness = castToBoolean($getProperty(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); - favorStraightness == null && $setProperty_0(lgraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, ($clinit_Boolean() , maskUndefined($getProperty(lgraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))?true:false)); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layerlessNodes, 16)), new GraphConfigurator$lambda$0$Type(this$static)); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lgraph.layers, 16)), new GraphConfigurator$lambda$1$Type), new GraphConfigurator$lambda$2$Type(this$static)); - spacings = new Spacings(lgraph); - $setProperty_0(lgraph, ($clinit_InternalProperties_1() , SPACINGS), spacings); - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), castTo($getProperty(lgraph, CYCLE_BREAKING_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P2_LAYERING, castTo($getProperty(lgraph, LAYERING_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P3_NODE_ORDERING, castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P4_NODE_PLACEMENT, castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 246)); - $setPhase(this$static.algorithmAssembler, P5_EDGE_ROUTING, factoryFor(castTo($getProperty(lgraph, EDGE_ROUTING), 218))); - $addProcessorConfiguration(this$static.algorithmAssembler, $getPhaseIndependentLayoutProcessorConfiguration(lgraph)); - $setProperty_0(lgraph, PROCESSORS, $build_0(this$static.algorithmAssembler, lgraph)); -} - -function GraphConfigurator(){ - $clinit_GraphConfigurator(); - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit); -} - -function activateGreedySwitchFor(lgraph){ - var activationThreshold, graphSize, greedySwitchType, interactiveCrossMin; - if (maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))) { - return !lgraph.parentNode && maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)) !== maskUndefined(($clinit_GreedySwitchType() , OFF)); - } - greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292); - interactiveCrossMin = $booleanValue(castToBoolean($getProperty(lgraph, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0))) || maskUndefined($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0)) === maskUndefined(($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1)); - activationThreshold = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0), 19).value_0; - graphSize = lgraph.layerlessNodes.array.length; - return !interactiveCrossMin && greedySwitchType != ($clinit_GreedySwitchType() , OFF) && (activationThreshold == 0 || activationThreshold > graphSize); -} - -defineClass(1263, 1, {}, GraphConfigurator); -var BASELINE_PROCESSING_CONFIGURATION, HIERARCHICAL_ADDITIONS, LABEL_MANAGEMENT_ADDITIONS; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator', 1263); -function GraphConfigurator$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(759, 1, $intern_19, GraphConfigurator$lambda$0$Type); -_.accept = function accept_60(arg0){ - $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$0$Type', 759); -function GraphConfigurator$lambda$1$Type(){ -} - -defineClass(760, 1, {}, GraphConfigurator$lambda$1$Type); -_.apply_0 = function apply_59(arg0){ - return $clinit_GraphConfigurator() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$1$Type', 760); -function GraphConfigurator$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(761, 1, $intern_19, GraphConfigurator$lambda$2$Type); -_.accept = function accept_61(arg0){ - $copyPortConstraints(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$2$Type', 761); -function LayeredLayoutProvider(){ - this.elkLayered = new ElkLayered; -} - -defineClass(1127, 209, $intern_96, LayeredLayoutProvider); -_.layout = function layout_2(elkgraph, progressMonitor){ - var layeredGraph; - layeredGraph = $importGraph_1(new ElkGraphImporter, elkgraph); - maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$doCompoundLayout(this.elkLayered, layeredGraph, progressMonitor):$doLayout(this.elkLayered, layeredGraph, progressMonitor); - $applyLayout_2(new ElkGraphLayoutTransferrer, layeredGraph); -} -; -var Lorg_eclipse_elk_alg_layered_LayeredLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'LayeredLayoutProvider', 1127); -function $clinit_LayeredPhases(){ - $clinit_LayeredPhases = emptyMethod; - P1_CYCLE_BREAKING = new LayeredPhases('P1_CYCLE_BREAKING', 0); - P2_LAYERING = new LayeredPhases('P2_LAYERING', 1); - P3_NODE_ORDERING = new LayeredPhases('P3_NODE_ORDERING', 2); - P4_NODE_PLACEMENT = new LayeredPhases('P4_NODE_PLACEMENT', 3); - P5_EDGE_ROUTING = new LayeredPhases('P5_EDGE_ROUTING', 4); -} - -function LayeredPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_27(name_0){ - $clinit_LayeredPhases(); - return valueOf(($clinit_LayeredPhases$Map() , $MAP_15), name_0); -} - -function values_33(){ - $clinit_LayeredPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]); -} - -defineClass(356, 22, {3:1, 35:1, 22:1, 356:1}, LayeredPhases); -var P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING; -var Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit = createForEnum('org.eclipse.elk.alg.layered', 'LayeredPhases', 356, Ljava_lang_Enum_2_classLit, values_33, valueOf_27); -function $clinit_LayeredPhases$Map(){ - $clinit_LayeredPhases$Map = emptyMethod; - $MAP_15 = createValueOfMap(($clinit_LayeredPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_LayeredPhases_2_classLit, 1), $intern_36, 356, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]))); -} - -var $MAP_15; -function $clinit_ComponentsToCGraphTransformer(){ - $clinit_ComponentsToCGraphTransformer = emptyMethod; - SPACING_HANDLER = new ComponentsToCGraphTransformer$1; -} - -function $applyLayout_1(this$static){ - var bottomRight, cNode, cNode$iterator, n, n$iterator, placeholder, placeholder$iterator, topLeft; - for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - n.rect.x_0 = n.hitbox.x_0; - n.rect.y_0 = n.hitbox.y_0; - } - topLeft = new KVector_1($intern_59, $intern_59); - bottomRight = new KVector_1($intern_60, $intern_60); - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); - topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); - bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - for (placeholder$iterator = $values(this$static.externalPlaceholder).this$01.valueIterator_0(); placeholder$iterator.hasNext_0();) { - placeholder = castTo(placeholder$iterator.next_1(), 46); - cNode = castTo(placeholder.second, 81); - topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); - topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); - bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - this$static.globalOffset = $negate(new KVector_1(topLeft.x_0, topLeft.y_0)); - this$static.graphSize = $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft); - this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function $getOffset(this$static, c){ - var cOffset; - cOffset = $sub_0($clone_0(castTo($get_10(this$static.oldPosition, c), 8)), $getPosition(castTo($get_10(this$static.offsets, c), 460).rect)); - return cOffset; -} - -function $setLock(cNode, portSides){ - portSides.isEmpty() && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, ($clinit_PortSide() , SIDES_NORTH)) && $set_6(cNode.lock, true, true, true, false); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST) && $set_6(cNode.lock, false, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH) && $set_6(cNode.lock, true, true, false, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_WEST) && $set_6(cNode.lock, true, false, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST) && $set_6(cNode.lock, false, true, true, false); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH) && $set_6(cNode.lock, false, true, false, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH_WEST) && $set_6(cNode.lock, true, false, false, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_WEST) && $set_6(cNode.lock, true, false, true, false); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); - equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); -} - -function $transform_0(this$static, ccs){ - var comp, comp$iterator, dummyGroup, ee, ee$iterator, group, rect, rect$iterator, rectNode, rectPlaceholder; - this$static.cGraph = new CGraph_0(allOf(Lorg_eclipse_elk_core_options_Direction_2_classLit)); - for (comp$iterator = new ArrayList$1(ccs.components); comp$iterator.i < comp$iterator.this$01.array.length;) { - comp = castTo($next_7(comp$iterator), 841); - group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); - $add_3(this$static.cGraph.cGroups, group); - for (rect$iterator = new ArrayList$1(comp.rectilinearConvexHull); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 110); - rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, rect); - $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); - if (!$containsKey_3(this$static.oldPosition, comp)) { - $put_6(this$static.oldPosition, comp, new KVector_1(rect.x_0, rect.y_0)); - $put_6(this$static.offsets, comp, rectNode); - } - $add_3(this$static.cGraph.cNodes, rectNode); - $addCNode_0(group, rectNode); - } - for (ee$iterator = new ArrayList$1(comp.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { - ee = castTo($next_7(ee$iterator), 594); - rectNode = new ComponentsToCGraphTransformer$CRectNode(this$static, ee.getRepresentor()); - $put_6(this$static.externalExtensions, ee, new Pair(group, rectNode)); - $setLock(rectNode, castTo($getProperty(comp.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21)); - if (ee.getPlaceholder()) { - rectPlaceholder = new ComponentsToCGraphTransformer$CRectNode_0(this$static, ee.getPlaceholder(), 1); - $setLock(rectPlaceholder, castTo($getProperty(comp.graph_0, EXT_PORT_CONNECTIONS), 21)); - dummyGroup = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [])); - $addCNode_0(dummyGroup, rectPlaceholder); - $put(this$static.externalPlaceholder, ee.getDirection(), new Pair(group, rectPlaceholder)); - } - } - } - return this$static.cGraph; -} - -function ComponentsToCGraphTransformer(spacing){ - $clinit_ComponentsToCGraphTransformer(); - this.oldPosition = new HashMap; - this.offsets = new HashMap; - this.externalExtensions = new HashMap; - this.externalPlaceholder = new HashMultimap; - this.spacing = spacing; -} - -defineClass(1651, 1, {}, ComponentsToCGraphTransformer); -_.spacing = 0; -var SPACING_HANDLER; -var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer', 1651); -function $clinit_ISpacingsHandler_0(){ - $clinit_ISpacingsHandler_0 = emptyMethod; - DEFAULT_SPACING_HANDLER_0 = new ISpacingsHandler$1_0; -} - -var DEFAULT_SPACING_HANDLER_0; -function ComponentsToCGraphTransformer$1(){ -} - -defineClass(1652, 1, {}, ComponentsToCGraphTransformer$1); -_.getHorizontalSpacing_0 = function getHorizontalSpacing_0(cNode1, cNode2){ - return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -_.getVerticalSpacing_0 = function getVerticalSpacing_0(cNode1, cNode2){ - return $wnd.Math.min(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/1', 1652); -defineClass(81, 1, {81:1}); -_.id_0 = 0; -_.reposition = true; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CNode', 81); -function ComponentsToCGraphTransformer$CRectNode(this$0, rect){ - ComponentsToCGraphTransformer$CRectNode_0.call(this, this$0, rect, null); -} - -function ComponentsToCGraphTransformer$CRectNode_0(this$0, rect, spacing){ - this.this$01 = this$0; - this.constraints = new ArrayList; - this.cGroupOffset = new KVector; - this.lock = new Quadruplet_0; - this.spacingIgnore = new Quadruplet_0; - this.rect = rect; - this.hitbox = new ElkRectangle_0(rect.x_0, rect.y_0, rect.width_0, rect.height); - this.individualSpacing = spacing; -} - -defineClass(460, 81, {460:1, 81:1}, ComponentsToCGraphTransformer$CRectNode, ComponentsToCGraphTransformer$CRectNode_0); -_.toString_0 = function toString_84(){ - return ''; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_ComponentsToCGraphTransformer$CRectNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'ComponentsToCGraphTransformer/CRectNode', 460); -function $clinit_OneDimensionalComponentsCompaction(){ - $clinit_OneDimensionalComponentsCompaction = emptyMethod; - LEFT_RIGHT = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [($clinit_Direction_0() , LEFT_6), RIGHT_6])); - UP_DOWN = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UP_1, DOWN_1])); -} - -function $addExternalEdgeRepresentations(this$static, ees){ - var p, p$iterator; - for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 46); - $add_3(this$static.compactionGraph.cNodes, castTo(p.second, 81)); - $addCNode_0(castTo(p.first, 189), castTo(p.second, 81)); - } -} - -function $addPlaceholders(this$static, dir_0){ - var d, d$iterator, dirs, pair, pair$iterator; - dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; - for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { - d = castTo(d$iterator.next_1(), 103); - for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $add_3(this$static.compactionGraph.cNodes, castTo(pair.second, 81)); - $add_3(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); - } - } -} - -function $compact_1(this$static){ - var delta, direction, g, g$iterator, g$iterator0, g$iterator1, g$iterator2; - delta = 0; - for (g$iterator0 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator0.i < g$iterator0.this$01.array.length;) { - g = castTo($next_7(g$iterator0), 189); - g.delta = 0; - g.deltaNormalized = 0; - } - $addPlaceholders(this$static, 0); - $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - $calculateGroupOffsets_0(this$static.compactor); - $forceConstraintsRecalculation(this$static.compactor); - direction = ($clinit_Direction_0() , LEFT_6); - $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($changeDirection_0(this$static.compactor, direction)), $opposite(direction)))), direction))); - $changeDirection_0(this$static.compactor, LEFT_6); - $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - $removePlaceholders(this$static, 0); - $updateExternalExtensionDimensions(this$static, 0); - $updatePlaceholders(this$static, 1); - $addPlaceholders(this$static, 1); - $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $calculateGroupOffsets_0(this$static.compactor); - for (g$iterator1 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator1.i < g$iterator1.this$01.array.length;) { - g = castTo($next_7(g$iterator1), 189); - delta += $wnd.Math.abs(g.deltaNormalized); - } - for (g$iterator2 = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator2.i < g$iterator2.this$01.array.length;) { - g = castTo($next_7(g$iterator2), 189); - g.delta = 0; - g.deltaNormalized = 0; - } - direction = UP_1; - $compact_3($applyLockingStrategy($changeDirection_0($compact_3($applyLockingStrategy($changeDirection_0($compact_3($forceConstraintsRecalculation($changeDirection_0(this$static.compactor, direction))), $opposite(direction)))), direction))); - $changeDirection_0(this$static.compactor, LEFT_6); - $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $removePlaceholders(this$static, 1); - $updateExternalExtensionDimensions(this$static, 1); - $updatePlaceholders(this$static, 0); - $forceConstraintsRecalculation(this$static.compactor); - for (g$iterator = new ArrayList$1(this$static.compactionGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 189); - delta += $wnd.Math.abs(g.deltaNormalized); - } - return delta; -} - -function $compact_2(this$static){ - var allNodes, cNode, cNode$iterator, delta, entry, entry$iterator, run; - allNodes = new ArrayList; - this$static.verticalExternalExtensions = new ArrayList; - this$static.horizontalExternalExtensions = new ArrayList; - for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { - entry = $next_4(entry$iterator); - $add_3(allNodes, castTo(castTo(entry.getValue(), 46).second, 81)); - $isHorizontal(castTo(entry.getKey(), 594).getDirection())?$add_3(this$static.horizontalExternalExtensions, castTo(entry.getValue(), 46)):$add_3(this$static.verticalExternalExtensions, castTo(entry.getValue(), 46)); - } - $addExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $addExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - this$static.compactor = new OneDimensionalCompactor_0(this$static.compactionGraph); - $setSpacingsHandler_0(this$static.compactor, ($clinit_ComponentsToCGraphTransformer() , SPACING_HANDLER)); - $removeExternalEdgeRepresentations(this$static, this$static.horizontalExternalExtensions); - $removeExternalEdgeRepresentations(this$static, this$static.verticalExternalExtensions); - $addAll_2(allNodes, this$static.compactor.cGraph.cNodes); - this$static.topLeft = new KVector_1($intern_59, $intern_59); - this$static.bottomRight = new KVector_1($intern_60, $intern_60); - for (cNode$iterator = new ArrayList$1(allNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, cNode.hitbox.x_0); - this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, cNode.hitbox.y_0); - this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$0$Type); - run = 0; - do { - delta = $compact_1(this$static); - ++run; - } - while ((run < 2 || delta > $intern_41) && run < 10); - $setLockingStrategy(this$static.compactor, new OneDimensionalComponentsCompaction$lambda$1$Type); - $compact_1(this$static); - $finish(this$static.compactor); - $applyLayout_1(this$static.transformer); -} - -function $getOffset_0(this$static, c){ - var individual; - individual = $getOffset(this$static.transformer, c); - return $add_19($negate(individual), this$static.transformer.globalOffset); -} - -function $removeExternalEdgeRepresentations(this$static, ees){ - var p, p$iterator; - for (p$iterator = new ArrayList$1(ees); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 46); - $remove_12(this$static.compactionGraph.cNodes, p.second); - $removeCNode(castTo(p.first, 189), castTo(p.second, 81)); - } -} - -function $removePlaceholders(this$static, dir_0){ - var d, d$iterator, dirs, pair, pair$iterator; - dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; - for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { - d = castTo(d$iterator.next_1(), 103); - for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $remove_12(this$static.compactionGraph.cNodes, pair.second); - $remove_12(this$static.compactionGraph.cGroups, castTo(pair.second, 81).cGroup); - } - } -} - -function $updateExternalExtensionDimensions(this$static, dir_0){ - var adelta, cNode, ee, entry, entry$iterator, group; - for (entry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.transformer.externalExtensions)).this$01); entry$iterator.hasNext;) { - entry = $next_4(entry$iterator); - ee = castTo(entry.getKey(), 594); - if (dir_0 == 1) { - if (ee.getDirection() != ($clinit_Direction_0() , UP_1) && ee.getDirection() != DOWN_1) { - continue; - } - } - else { - if (ee.getDirection() != ($clinit_Direction_0() , LEFT_6) && ee.getDirection() != RIGHT_6) { - continue; - } - } - cNode = castTo(castTo(entry.getValue(), 46).second, 81); - group = castTo(castTo(entry.getValue(), 46).first, 189); - adelta = group.deltaNormalized; - switch (ee.getDirection().ordinal) { - case 2: - cNode.hitbox.x_0 = this$static.topLeft.x_0; - cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 + adelta); - break; - case 1: - cNode.hitbox.x_0 = cNode.hitbox.x_0 + adelta; - cNode.hitbox.width_0 = $wnd.Math.max(1, cNode.hitbox.width_0 - adelta); - break; - case 4: - cNode.hitbox.y_0 = this$static.topLeft.y_0; - cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height + adelta); - break; - case 3: - cNode.hitbox.y_0 = cNode.hitbox.y_0 + adelta; - cNode.hitbox.height = $wnd.Math.max(1, cNode.hitbox.height - adelta); - } - } -} - -function $updatePlaceholders(this$static, dir_0){ - var adelta, cNode, d, d$iterator, dirs, pair, pair$iterator, parentComponentGroup; - dirs = dir_0 == 1?UP_DOWN:LEFT_RIGHT; - for (d$iterator = dirs.map_0.keySet_0().iterator_0(); d$iterator.hasNext_0();) { - d = castTo(d$iterator.next_1(), 103); - for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - cNode = castTo(pair.second, 81); - parentComponentGroup = castTo(pair.first, 189); - adelta = parentComponentGroup.deltaNormalized; - switch (d.ordinal) { - case 2: - case 1: - cNode.hitbox.y_0 += adelta; - break; - case 4: - case 3: - cNode.hitbox.x_0 += adelta; - } - } - } -} - -function OneDimensionalComponentsCompaction(){ -} - -function lambda$0_17(pair_0){ - $clinit_OneDimensionalComponentsCompaction(); - return $clinit_Boolean() , castTo(pair_0.first, 81).cGroup.outDegree != 0?true:false; -} - -function lambda$1_6(pair_0){ - $clinit_OneDimensionalComponentsCompaction(); - return $clinit_Boolean() , $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103)) || castTo(pair_0.first, 81).cGroup.outDegree != 0 && $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103))?true:false; -} - -defineClass(1623, 1, {}, OneDimensionalComponentsCompaction); -var LEFT_RIGHT, UP_DOWN; -var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction', 1623); -function OneDimensionalComponentsCompaction$lambda$0$Type(){ -} - -defineClass(1624, 1, {}, OneDimensionalComponentsCompaction$lambda$0$Type); -_.apply_0 = function apply_60(arg0){ - return lambda$0_17(castTo(arg0, 46)); -} -; -_.equals_0 = function equals_82(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$0$Type', 1624); -function OneDimensionalComponentsCompaction$lambda$1$Type(){ -} - -defineClass(1625, 1, {}, OneDimensionalComponentsCompaction$lambda$1$Type); -_.apply_0 = function apply_61(arg0){ - return lambda$1_6(castTo(arg0, 46)); -} -; -_.equals_0 = function equals_83(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_components_OneDimensionalComponentsCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.components', 'OneDimensionalComponentsCompaction/lambda$1$Type', 1625); -function $supports_0(this$static, direction){ - return $containsEnum(this$static.supportedDirections, direction); -} - -function CGraph_0(supportedDirections){ - this.cNodes = new ArrayList; - this.cGroups = new ArrayList; - this.supportedDirections = supportedDirections; -} - -defineClass(1654, 1, {}, CGraph_0); -var Lorg_eclipse_elk_alg_layered_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGraph', 1654); -function $addCNode_0(this$static, cNode){ - $add_6(this$static.cNodes, cNode); - if (cNode.cGroup) { - throw toJs(new RuntimeException_0('CNode belongs to another CGroup.')); - } - cNode.cGroup = this$static; -} - -function $removeCNode(this$static, cNode){ - var removed; - removed = $remove_18(this$static.cNodes, cNode); - removed && (cNode.cGroup = null); - return removed; -} - -function CGroup_0(inputCNodes){ - var cNode, cNode$array, cNode$index, cNode$max; - this.cNodes = new LinkedHashSet; - this.incomingConstraints = new HashSet; - this.outDegree = 0; - for (cNode$array = inputCNodes , cNode$index = 0 , cNode$max = cNode$array.length; cNode$index < cNode$max; ++cNode$index) { - cNode = cNode$array[cNode$index]; - !this.reference && (this.reference = cNode); - $addCNode_0(this, cNode); - } -} - -defineClass(189, 1, {189:1}, CGroup_0); -_.delta = 0; -_.deltaNormalized = 0; -_.outDegree = 0; -_.reposition = true; -_.startPos = $intern_60; -var Lorg_eclipse_elk_alg_layered_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGroup', 189); -function ISpacingsHandler$1_0(){ -} - -defineClass(1653, 1, {}, ISpacingsHandler$1_0); -_.getHorizontalSpacing_0 = function getHorizontalSpacing_1(cNode1, cNode2){ - return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -_.getVerticalSpacing_0 = function getVerticalSpacing_1(cNode1, cNode2){ - return $wnd.Math.max(cNode1.individualSpacing != null?$doubleValue(cNode1.individualSpacing):cNode1.this$01.spacing, cNode2.individualSpacing != null?$doubleValue(cNode2.individualSpacing):cNode2.this$01.spacing); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_ISpacingsHandler$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'ISpacingsHandler/1', 1653); -function $clinit_OneDimensionalCompactor_0(){ - $clinit_OneDimensionalCompactor_0 = emptyMethod; - SCANLINE_CONSTRAINTS_0 = new ScanlineConstraintCalculator_0; -} - -function $applyLockingStrategy(this$static){ - $applyLockingStrategy_0(this$static, this$static.direction); - return this$static; -} - -function $applyLockingStrategy_0(this$static, dir_0){ - var cGroup, cGroup$iterator, cNode, cNode$iterator; - for (cGroup$iterator = new ArrayList$1(this$static.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { - cGroup = castTo($next_7(cGroup$iterator), 189); - cGroup.reposition = true; - } - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.reposition = $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); - cNode.cGroup.reposition = cNode.cGroup.reposition & $booleanValue(castToBoolean(this$static.lockingStrategy.apply_0(new Pair(cNode, dir_0)))); - } - return this$static; -} - -function $calculateConstraints_0(this$static){ - var cNode, cNode$iterator; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.constraints.clear_0(); - } - $calculateConstraints_1(this$static.constraintAlgorithm, this$static); - $calculateConstraintsForCGroups_0(this$static); -} - -function $calculateConstraintsForCGroups_0(this$static){ - var cNode, cNode$iterator, group, group$iterator, group$iterator0, inc, inc$iterator; - for (group$iterator0 = new ArrayList$1(this$static.cGraph.cGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 189); - group.outDegree = 0; - group.incomingConstraints.map_0.clear_0(); - } - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 189); - for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { - cNode = castTo(cNode$iterator.next_1(), 81); - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 81); - if (inc.cGroup != group) { - $add_6(group.incomingConstraints, inc); - ++inc.cGroup.outDegree; - } - } - } - } -} - -function $calculateGroupOffsets_0(this$static){ - var group, group$iterator, n, n$iterator, n$iterator0; - for (group$iterator = new ArrayList$1(this$static.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 189); - group.reference = null; - for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { - n = castTo(n$iterator0.next_1(), 81); - $reset_5(n.cGroupOffset); - (!group.reference || n.hitbox.x_0 < group.reference.hitbox.x_0) && (group.reference = n); - } - for (n$iterator = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 81); - n.cGroupOffset.x_0 = n.hitbox.x_0 - group.reference.hitbox.x_0; - n.cGroupOffset.y_0 = n.hitbox.y_0 - group.reference.hitbox.y_0; - } - } - return this$static; -} - -function $changeDirection_0(this$static, dir_0){ - var oldDirection; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - if (!$supports_0(this$static.cGraph, dir_0)) { - throw toJs(new RuntimeException_0('The direction ' + dir_0 + ' is not supported by the CGraph instance.')); - } - if (dir_0 == this$static.direction) { - return this$static; - } - oldDirection = this$static.direction; - this$static.direction = dir_0; - switch (oldDirection.ordinal) { - case 0: - switch (dir_0.ordinal) { - case 2: - $calculateConstraints_0(this$static); - break; - case 1: - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 4: - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - } - - break; - case 2: - switch (dir_0.ordinal) { - case 1: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - break; - case 4: - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - } - - break; - case 1: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - break; - case 4: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - } - - break; - case 4: - switch (dir_0.ordinal) { - case 2: - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 1: - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 3: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - } - - break; - case 3: - switch (dir_0.ordinal) { - case 2: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 1: - $mirrorHitboxes_0(this$static); - $transposeHitboxes_0(this$static); - $mirrorHitboxes_0(this$static); - $calculateConstraints_0(this$static); - break; - case 4: - $mirrorHitboxes_0(this$static); - $reverseConstraints_0(this$static); - } - - } - return this$static; -} - -function $compact_3(this$static){ - var g, g$iterator, incN, incN$iterator, n, n$iterator, node, node$iterator; - if (this$static.finished) { - throw toJs(new IllegalStateException_0(($ensureNamesAreInitialized(Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit) , 'The ' + Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit.simpleName + ' instance has been finished already.'))); - } - this$static.direction == ($clinit_Direction_0() , UNDEFINED_2) && $changeDirection_0(this$static, LEFT_6); - for (g$iterator = new ArrayList$1(this$static.cGraph.cGroups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 189); - g.outDegree = 0; - } - for (n$iterator = new ArrayList$1(this$static.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - n.startPos = $intern_60; - for (incN$iterator = n.constraints.iterator_0(); incN$iterator.hasNext_0();) { - incN = castTo(incN$iterator.next_1(), 81); - ++incN.cGroup.outDegree; - } - } - $compact_4(this$static); - for (node$iterator = new ArrayList$1(this$static.cGraph.cNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 81); - node.reposition = true; - } - return this$static; -} - -function $finish(this$static){ - $changeDirection_0(this$static, ($clinit_Direction_0() , LEFT_6)); - this$static.finished = true; - return this$static; -} - -function $forceConstraintsRecalculation(this$static){ - $calculateConstraints_0(this$static); - return this$static; -} - -function $mirrorHitboxes_0(this$static){ - var cNode, cNode$iterator; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.hitbox.x_0 = -cNode.hitbox.x_0 - cNode.hitbox.width_0; - } - $calculateGroupOffsets_0(this$static); -} - -function $reverseConstraints_0(this$static){ - var cNode, cNode$iterator, cNode$iterator0, cNode$iterator1, inc, inc$iterator, incMap; - incMap = new HashMap; - for (cNode$iterator0 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 81); - $put_6(incMap, cNode, new ArrayList); - } - for (cNode$iterator1 = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator1.i < cNode$iterator1.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator1), 81); - cNode.startPos = $intern_60; - for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { - inc = castTo(inc$iterator.next_1(), 81); - castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, inc)), 15).add_2(cNode); - } - } - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.constraints.clear_0(); - cNode.constraints = castTo(getEntryValueOrNull($getEntry_0(incMap.hashCodeMap, cNode)), 15); - } - $calculateConstraintsForCGroups_0(this$static); -} - -function $setLockingStrategy(this$static, strategy){ - this$static.lockingStrategy = strategy; - return this$static; -} - -function $setSpacingsHandler_0(this$static, handler){ - this$static.spacingsHandler = handler; - return this$static; -} - -function $transposeHitboxes_0(this$static){ - var cNode, cNode$iterator, tmp; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - tmp = cNode.hitbox.x_0; - cNode.hitbox.x_0 = cNode.hitbox.y_0; - cNode.hitbox.y_0 = tmp; - tmp = cNode.hitbox.width_0; - cNode.hitbox.width_0 = cNode.hitbox.height; - cNode.hitbox.height = tmp; - tmp = cNode.cGroupOffset.x_0; - cNode.cGroupOffset.x_0 = cNode.cGroupOffset.y_0; - cNode.cGroupOffset.y_0 = tmp; - } - $calculateGroupOffsets_0(this$static); -} - -function OneDimensionalCompactor_0(cGraph){ - $clinit_OneDimensionalCompactor_0(); - var group, n, n$iterator; - this.constraintAlgorithm = SCANLINE_CONSTRAINTS_0; - this.direction = ($clinit_Direction_0() , UNDEFINED_2); - this.spacingsHandler = ($clinit_ISpacingsHandler_0() , DEFAULT_SPACING_HANDLER_0); - this.cGraph = cGraph; - $setLockingStrategy(this, new OneDimensionalCompactor$lambda$0$Type_0); - $calculateGroupOffsets_0(this); - for (n$iterator = new ArrayList$1(cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - if (!n.cGroup) { - group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [n])); - $add_3(cGraph.cGroups, group); - } - } -} - -defineClass(1655, 1, {}, OneDimensionalCompactor_0); -_.finished = false; -var SCANLINE_CONSTRAINTS_0; -var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor', 1655); -function OneDimensionalCompactor$lambda$0$Type_0(){ -} - -defineClass(1656, 1, {}, OneDimensionalCompactor$lambda$0$Type_0); -_.apply_0 = function apply_62(arg0){ - return $clinit_OneDimensionalCompactor_0() , $clinit_Boolean() , castTo(castTo(arg0, 46).first, 81).cGroup.outDegree != 0?true:false; -} -; -_.equals_0 = function equals_84(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_OneDimensionalCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'OneDimensionalCompactor/lambda$0$Type', 1656); -function $get_19(this$static, direction){ - switch (direction.ordinal) { - case 2: - return this$static.left; - case 1: - return this$static.right; - case 4: - return this$static.up; - case 3: - return this$static.down; - default:return false; - } -} - -function $set_6(this$static, l, r, u, d){ - this$static.left = l; - this$static.right = r; - this$static.up = u; - this$static.down = d; -} - -function Quadruplet_0(){ - $set_6(this, false, false, false, false); -} - -defineClass(823, 1, {}, Quadruplet_0); -_.down = false; -_.left = false; -_.right = false; -_.up = false; -var Lorg_eclipse_elk_alg_layered_compaction_oned_Quadruplet_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'Quadruplet', 823); -function $compact_4(compactor){ - var cNode, cNode$iterator, cNode$iterator0, diff, group, group$iterator, incNode, incNode$iterator, minStartPos, node, node$iterator, node$iterator0, sinks, spacing, suggestedX; - minStartPos = $intern_59; - for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 81); - minStartPos = $wnd.Math.min(minStartPos, cNode.cGroup.reference.hitbox.x_0 + cNode.cGroupOffset.x_0); - } - sinks = new LinkedList; - for (group$iterator = new ArrayList$1(compactor.cGraph.cGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 189); - group.startPos = minStartPos; - group.outDegree == 0 && ($addNode_0(sinks, group, sinks.tail.prev, sinks.tail) , true); - } - while (sinks.size_0 != 0) { - group = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 189); - diff = group.reference.hitbox.x_0; - for (node$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator0.hasNext_0();) { - node = castTo(node$iterator0.next_1(), 81); - suggestedX = group.startPos + node.cGroupOffset.x_0; - node.cGroup.reposition || node.hitbox.x_0 < suggestedX?(node.startPos = suggestedX):(node.startPos = node.hitbox.x_0); - } - diff -= group.reference.startPos; - group.delta += diff; - compactor.direction == ($clinit_Direction_0() , RIGHT_6) || compactor.direction == DOWN_1?(group.deltaNormalized += diff):(group.deltaNormalized -= diff); - for (node$iterator = group.cNodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 81); - for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { - incNode = castTo(incNode$iterator.next_1(), 81); - $isHorizontal(compactor.direction)?(spacing = compactor.spacingsHandler.getHorizontalSpacing_0(node, incNode)):(spacing = compactor.spacingsHandler.getVerticalSpacing_0(node, incNode)); - incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, node.startPos + node.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0); - incNode.reposition || (incNode.cGroup.startPos = $wnd.Math.max(incNode.cGroup.startPos, incNode.hitbox.x_0 - incNode.cGroupOffset.x_0)); - --incNode.cGroup.outDegree; - incNode.cGroup.outDegree == 0 && $add_7(sinks, incNode.cGroup); - } - } - } - for (cNode$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 81); - cNode.hitbox.x_0 = cNode.startPos; - } -} - -function $blowUpHitboxes(this$static){ - var n, n$iterator, spacing; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - spacing = (checkCriticalNotNull(0) , 0); - if (spacing > 0) { - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 -= $wnd.Math.max(0, spacing / 2 - 0.5)); - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height += $wnd.Math.max(0, spacing - 1)); - } - } -} - -function $calculateConstraints_1(this$static, theCompactor){ - this$static.compactor = theCompactor; - $sweep_1(this$static); -} - -function $normalizeHitboxes(this$static){ - var n, n$iterator, spacing; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - spacing = (checkCriticalNotNull(0) , 0); - if (spacing > 0) { - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.up) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.left) && (n.hitbox.y_0 += $wnd.Math.max(0, spacing / 2 - 0.5)); - !($isHorizontal(this$static.compactor.direction) && n.spacingIgnore.down) && !($isVertical(this$static.compactor.direction) && n.spacingIgnore.right) && (n.hitbox.height -= spacing - 1); - } - } -} - -function $sweep_1(this$static){ - var n, n$iterator, points; - $blowUpHitboxes(this$static); - points = new ArrayList; - for (n$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, true)); - $add_3(points, new ScanlineConstraintCalculator$Timestamp_0(n, false)); - } - $reset_2(this$static.constraintsScanlineHandler); - execute_0(points, this$static.constraintsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [this$static.constraintsScanlineHandler]))); - $normalizeHitboxes(this$static); -} - -function ScanlineConstraintCalculator_0(){ - this.constraintsScanlineComparator = new ScanlineConstraintCalculator$lambda$0$Type_0; - this.constraintsScanlineHandler = new ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this); -} - -function lambda$0_18(p1_0, p2_1){ - var cmp, y1, y2; - y1 = p1_0.node.hitbox.y_0; - p1_0.low || (y1 += p1_0.node.hitbox.height); - y2 = p2_1.node.hitbox.y_0; - p2_1.low || (y2 += p2_1.node.hitbox.height); - cmp = compare_4(y1, y2); - if (cmp == 0) { - if (!p1_0.low && p2_1.low) { - return -1; - } - else if (!p2_1.low && p1_0.low) { - return 1; - } - } - return cmp; -} - -defineClass(1825, 1, {}, ScanlineConstraintCalculator_0); -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator', 1825); -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit = createForInterface('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline/EventHandler'); -function $handle_1(this$static, p){ - var right, left, right_0; - p.low?($add_10(this$static.intervals, p.node) , this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 81) , right = castTo($higher(this$static.intervals, p.node), 81) , !!right && (this$static.cand[right.id_0] = p.node) , undefined):(left = castTo($lower(this$static.intervals, p.node), 81) , !!left && left == this$static.cand[p.node.id_0] && !!left.cGroup && left.cGroup != p.node.cGroup && left.constraints.add_2(p.node) , right_0 = castTo($higher(this$static.intervals, p.node), 81) , !!right_0 && this$static.cand[right_0.id_0] == p.node && !!right_0.cGroup && right_0.cGroup != p.node.cGroup && p.node.constraints.add_2(right_0) , $remove_28(this$static.intervals, p.node) , undefined); -} - -function $reset_2(this$static){ - var index_0, n, n$iterator; - $clear_8(this$static.intervals.map_0); - this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, $intern_2, 81, this$static.this$01.compactor.cGraph.cNodes.array.length, 0, 1); - index_0 = 0; - for (n$iterator = new ArrayList$1(this$static.this$01.compactor.cGraph.cNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 81); - n.id_0 = index_0++; - } -} - -function ScanlineConstraintCalculator$ConstraintsScanlineHandler_0(this$0){ - this.this$01 = this$0; - this.intervals = new TreeSet_0(castTo(checkNotNull(new ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0), 62)); -} - -function lambda$0_19(c1_0, c2_1){ - return compare_4(c1_0.hitbox.x_0 + c1_0.hitbox.width_0 / 2, c2_1.hitbox.x_0 + c2_1.hitbox.width_0 / 2); -} - -defineClass(1826, 1, {369:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler_0); -_.handle = function handle_1(p){ - $handle_1(this, castTo(p, 466)); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1826); -function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0(){ -} - -defineClass(1827, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0); -_.compare_1 = function compare_30(arg0, arg1){ - return lambda$0_19(castTo(arg0, 81), castTo(arg1, 81)); -} -; -_.equals_0 = function equals_85(other){ - return this === other; -} -; -_.reversed = function reversed_22(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type', 1827); -function ScanlineConstraintCalculator$Timestamp_0(node, low){ - this.node = node; - this.low = low; -} - -defineClass(466, 1, {466:1}, ScanlineConstraintCalculator$Timestamp_0); -_.low = false; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$Timestamp_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/Timestamp', 466); -function ScanlineConstraintCalculator$lambda$0$Type_0(){ -} - -defineClass(1828, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type_0); -_.compare_1 = function compare_31(arg0, arg1){ - return lambda$0_18(castTo(arg0, 466), castTo(arg1, 466)); -} -; -_.equals_0 = function equals_86(other){ - return this === other; -} -; -_.reversed = function reversed_23(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/lambda$0$Type', 1828); -function Point(x_0, y_0){ - this.x_0 = x_0; - this.y_0 = y_0; -} - -function Point_0(x_0, y_0, quadrant){ - Point.call(this, x_0, y_0); - this.quadrant = quadrant; -} - -defineClass(140, 1, {140:1}, Point, Point_0); -_.equals_0 = function equals_87(obj){ - var p2; - if (obj == null) { - return false; - } - if (Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit != getClass__Ljava_lang_Class___devirtual$(obj)) { - return false; - } - p2 = castTo(obj, 140); - return equals_57(this.x_0, p2.x_0) && equals_57(this.y_0, p2.y_0); -} -; -_.hashCode_1 = function hashCode_60(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0])); -} -; -_.toString_0 = function toString_85(){ - return '(' + this.x_0 + ', ' + this.y_0 + (this.convex?'cx':'') + this.quadrant + ')'; -} -; -_.convex = true; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Point', 140); -function $clinit_Point$Quadrant(){ - $clinit_Point$Quadrant = emptyMethod; - Q1 = new Point$Quadrant('Q1', 0); - Q4 = new Point$Quadrant('Q4', 1); - Q2 = new Point$Quadrant('Q2', 2); - Q3 = new Point$Quadrant('Q3', 3); -} - -function $isLeft(this$static){ - return this$static == Q1 || this$static == Q4; -} - -function $isUpper(this$static){ - return this$static == Q1 || this$static == Q2; -} - -function Point$Quadrant(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function isBothLeftOrBothRight(q1, q2){ - $clinit_Point$Quadrant(); - return q1 == Q1 && q2 == Q4 || q1 == Q4 && q2 == Q1 || q1 == Q3 && q2 == Q2 || q1 == Q2 && q2 == Q3; -} - -function isOneLeftOneRight(q1, q2){ - $clinit_Point$Quadrant(); - return q1 == Q1 && q2 == Q2 || q1 == Q1 && q2 == Q3 || q1 == Q4 && q2 == Q3 || q1 == Q4 && q2 == Q2; -} - -function valueOf_28(name_0){ - $clinit_Point$Quadrant(); - return valueOf(($clinit_Point$Quadrant$Map() , $MAP_16), name_0); -} - -function values_34(){ - $clinit_Point$Quadrant(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]); -} - -defineClass(405, 22, {3:1, 35:1, 22:1, 405:1}, Point$Quadrant); -var Q1, Q2, Q3, Q4; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit = createForEnum('org.eclipse.elk.alg.layered.compaction.recthull', 'Point/Quadrant', 405, Ljava_lang_Enum_2_classLit, values_34, valueOf_28); -function $clinit_Point$Quadrant$Map(){ - $clinit_Point$Quadrant$Map = emptyMethod; - $MAP_16 = createValueOfMap(($clinit_Point$Quadrant() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Point$Quadrant_2_classLit, 1), $intern_36, 405, 0, [Q1, Q4, Q2, Q3]))); -} - -var $MAP_16; -function $clinit_RectilinearConvexHull(){ - $clinit_RectilinearConvexHull = emptyMethod; - RIGHT_HIGH_FIRST = new RectilinearConvexHull$lambda$0$Type; - RIGHT_LOW_FIRST = new RectilinearConvexHull$lambda$1$Type; - LEFT_HIGH_FIRST = new RectilinearConvexHull$lambda$2$Type; - LEFT_LOW_FIRST = new RectilinearConvexHull$lambda$3$Type; - RIGHT_SPECIAL_ORDER = new RectilinearConvexHull$lambda$4$Type; -} - -function $splitIntoRectangles(this$static){ - var handler; - handler = new RectilinearConvexHull$RectangleEventHandler(this$static); - execute_0(this$static.hull, RIGHT_SPECIAL_ORDER, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [handler]))); - !!handler.queued && $add_3(handler.rects, handler.queued); - return handler.rects; -} - -function RectilinearConvexHull(){ - this.hull = new ArrayList; -} - -function addConcaveCorners(pts, q){ - var last, next, p, pIt; - pIt = new AbstractList$ListIteratorImpl(pts, 0); - last = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); - while (pIt.i < pIt.this$01_0.size_1()) { - next = (checkCriticalElement(pIt.i < pIt.this$01_0.size_1()) , castTo(pIt.this$01_0.get_0(pIt.last = pIt.i++), 140)); - p = new Point_0(next.x_0, last.y_0, q); - checkCriticalElement(pIt.i > 0); - pIt.this$01.get_0(pIt.last = --pIt.i); - $add_1(pIt, p); - checkCriticalElement(pIt.i < pIt.this$01_0.size_1()); - pIt.this$01_0.get_0(pIt.last = pIt.i++); - p.convex = false; - last = next; - } -} - -function lambda$0_20(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p1_0.x_0, p2_1.x_0); -} - -function lambda$1_7(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p1_0.x_0, p2_1.x_0); -} - -function lambda$2_2(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p2_1.y_0, p1_0.y_0):compare_4(p2_1.x_0, p1_0.x_0); -} - -function lambda$3_0(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - return p1_0.x_0 == p2_1.x_0?compare_4(p1_0.y_0, p2_1.y_0):compare_4(p2_1.x_0, p1_0.x_0); -} - -function lambda$4_2(p1_0, p2_1){ - $clinit_RectilinearConvexHull(); - var val; - if (p1_0.x_0 == p2_1.x_0) { - if (p1_0.quadrant == p2_1.quadrant || isBothLeftOrBothRight(p1_0.quadrant, p2_1.quadrant)) { - val = $isLeft(p1_0.quadrant)?1:-1; - if (p1_0.convex && !p2_1.convex) { - return val; - } - else if (!p1_0.convex && p2_1.convex) { - return -val; - } - } - return compare_5(p1_0.quadrant.ordinal, p2_1.quadrant.ordinal); - } - else { - return compare_4(p1_0.x_0, p2_1.x_0); - } -} - -function of_5(points){ - $clinit_RectilinearConvexHull(); - var p, p$iterator, q1, q2, q3, q4, rch; - rch = new RectilinearConvexHull; - for (p$iterator = new ArrayList$1(points); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 140); - (!rch.xMax1 || p.x_0 >= rch.xMax1.x_0) && (rch.xMax1 = p); - if (!rch.xMin1 || p.x_0 <= rch.xMin1.x_0) { - rch.xMin2 = rch.xMin1; - rch.xMin1 = p; - } - (!rch.yMax1 || p.y_0 >= rch.yMax1.y_0) && (rch.yMax1 = p); - (!rch.yMin1 || p.y_0 <= rch.yMin1.y_0) && (rch.yMin1 = p); - } - q1 = new RectilinearConvexHull$MaximalElementsEventHandler(($clinit_Point$Quadrant() , Q1)); - execute_0(points, RIGHT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q1]))); - q4 = new RectilinearConvexHull$MaximalElementsEventHandler(Q4); - execute_0(points, RIGHT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q4]))); - q2 = new RectilinearConvexHull$MaximalElementsEventHandler(Q2); - execute_0(points, LEFT_LOW_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q2]))); - q3 = new RectilinearConvexHull$MaximalElementsEventHandler(Q3); - execute_0(points, LEFT_HIGH_FIRST, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline$EventHandler_2_classLit, 1), $intern_2, 369, 0, [q3]))); - addConcaveCorners(q1.points, Q1); - addConcaveCorners(q2.points, Q2); - addConcaveCorners(q3.points, Q3); - addConcaveCorners(q4.points, Q4); - rch.hull.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(rch.hull, q1.points); - $addAll_2(rch.hull, reverse_0(q2.points)); - $addAll_2(rch.hull, q3.points); - $addAll_2(rch.hull, reverse_0(q4.points)); - return rch; -} - -defineClass(1642, 1, {}, RectilinearConvexHull); -_.xMax1 = null; -_.xMin1 = null; -_.xMin2 = null; -_.yMax1 = null; -_.yMin1 = null; -var LEFT_HIGH_FIRST, LEFT_LOW_FIRST, RIGHT_HIGH_FIRST, RIGHT_LOW_FIRST, RIGHT_SPECIAL_ORDER; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull', 1642); -function $clinit_RectilinearConvexHull$MaximalElementsEventHandler(){ - $clinit_RectilinearConvexHull$MaximalElementsEventHandler = emptyMethod; - DBL_CMP = new RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type; -} - -function $handle_2(this$static, p){ - if (this$static.compare.compare_1(p.y_0, this$static.maximalY) > 0) { - $add_3(this$static.points, new Point_0(p.x_0, p.y_0, this$static.quadrant)); - this$static.maximalY = p.y_0; - } -} - -function RectilinearConvexHull$MaximalElementsEventHandler(quadrant){ - $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); - this.points = new ArrayList; - this.quadrant = quadrant; - switch (quadrant.ordinal) { - case 0: - case 2: - this.compare = reverseOrder(DBL_CMP); - this.maximalY = $intern_59; - break; - case 3: - case 1: - this.compare = DBL_CMP; - this.maximalY = $intern_60; - } -} - -function lambda$0_21(d1_0, d2_1){ - $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); - return compare_4((checkCriticalNotNull(d1_0) , d1_0), (checkCriticalNotNull(d2_1) , d2_1)); -} - -defineClass(574, 1, {369:1}, RectilinearConvexHull$MaximalElementsEventHandler); -_.handle = function handle_2(p){ - $handle_2(this, castTo(p, 140)); -} -; -_.maximalY = 0; -var DBL_CMP; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler', 574); -function RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type(){ -} - -defineClass(1644, 1, $intern_88, RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type); -_.compare_1 = function compare_32(arg0, arg1){ - return lambda$0_21(castToDouble(arg0), castToDouble(arg1)); -} -; -_.equals_0 = function equals_88(other){ - return this === other; -} -; -_.reversed = function reversed_24(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type', 1644); -function $handle_3(this$static, p){ - var r; - if (!!this$static.queued && (p.x_0 != this$static.queuedPnt.x_0 || isOneLeftOneRight(this$static.queuedPnt.quadrant, p.quadrant))) { - $add_3(this$static.rects, this$static.queued); - this$static.lastX = this$static.queued.x_0 + this$static.queued.width_0; - this$static.queued = null; - this$static.queuedPnt = null; - } - $isUpper(p.quadrant)?(this$static.minY = p):(this$static.maxY = p); - if (p.quadrant == ($clinit_Point$Quadrant() , Q1) && !p.convex || p.quadrant == Q2 && p.convex || p.quadrant == Q3 && p.convex || p.quadrant == Q4 && !p.convex) { - if (!!this$static.minY && !!this$static.maxY) { - r = new ElkRectangle_0(this$static.lastX, this$static.minY.y_0, p.x_0 - this$static.lastX, this$static.maxY.y_0 - this$static.minY.y_0); - this$static.queued = r; - this$static.queuedPnt = p; - } - } -} - -function RectilinearConvexHull$RectangleEventHandler(this$0){ - this.this$01 = this$0; - this.rects = new ArrayList; - this.lastX = $wnd.Math.min(this.this$01.xMin1.x_0, this.this$01.xMin2.x_0); -} - -defineClass(1643, 1, {369:1}, RectilinearConvexHull$RectangleEventHandler); -_.handle = function handle_3(p){ - $handle_3(this, castTo(p, 140)); -} -; -_.lastX = 0; -_.maxY = null; -_.minY = null; -_.queued = null; -_.queuedPnt = null; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$RectangleEventHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/RectangleEventHandler', 1643); -function RectilinearConvexHull$lambda$0$Type(){ -} - -defineClass(1645, 1, $intern_88, RectilinearConvexHull$lambda$0$Type); -_.compare_1 = function compare_33(arg0, arg1){ - return lambda$0_20(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_89(other){ - return this === other; -} -; -_.reversed = function reversed_25(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$0$Type', 1645); -function RectilinearConvexHull$lambda$1$Type(){ -} - -defineClass(1646, 1, $intern_88, RectilinearConvexHull$lambda$1$Type); -_.compare_1 = function compare_34(arg0, arg1){ - return lambda$1_7(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_90(other){ - return this === other; -} -; -_.reversed = function reversed_26(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$1$Type', 1646); -function RectilinearConvexHull$lambda$2$Type(){ -} - -defineClass(1647, 1, $intern_88, RectilinearConvexHull$lambda$2$Type); -_.compare_1 = function compare_35(arg0, arg1){ - return lambda$2_2(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_91(other){ - return this === other; -} -; -_.reversed = function reversed_27(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$2$Type', 1647); -function RectilinearConvexHull$lambda$3$Type(){ -} - -defineClass(1648, 1, $intern_88, RectilinearConvexHull$lambda$3$Type); -_.compare_1 = function compare_36(arg0, arg1){ - return lambda$3_0(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_92(other){ - return this === other; -} -; -_.reversed = function reversed_28(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$3$Type', 1648); -function RectilinearConvexHull$lambda$4$Type(){ -} - -defineClass(1649, 1, $intern_88, RectilinearConvexHull$lambda$4$Type); -_.compare_1 = function compare_37(arg0, arg1){ - return lambda$4_2(castTo(arg0, 140), castTo(arg1, 140)); -} -; -_.equals_0 = function equals_93(other){ - return this === other; -} -; -_.reversed = function reversed_29(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compaction_recthull_RectilinearConvexHull$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'RectilinearConvexHull/lambda$4$Type', 1649); -function $go_0(this$static){ - var h, h$iterator, p, p$iterator; - $clinit_Collections(); - $sort(this$static.points, this$static.comparator); - for (p$iterator = new ArrayList$1(this$static.points); p$iterator.i < p$iterator.this$01.array.length;) { - p = $next_7(p$iterator); - for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { - h = castTo($next_7(h$iterator), 369); - h.handle(p); - } - } -} - -function Scanline_0(points, comparator, eventHandlers){ - this.comparator = comparator; - this.points = points; - this.eventHandlers = (checkNotNull(eventHandlers) , new ArrayList_1(eventHandlers)); -} - -function execute_0(points, comparator, eventHandlers){ - var copy; - copy = (checkNotNull(points) , new ArrayList_1(points)); - $go_0(new Scanline_0(copy, comparator, eventHandlers)); -} - -defineClass(1650, 1, {}, Scanline_0); -var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline', 1650); -function $moveGraph_0(destGraph, sourceGraph, offsetx, offsety){ - var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; - graphOffset = $add_18(sourceGraph.offset, offsetx, offsety); - for (node$iterator = new ArrayList$1(sourceGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_19(node.pos, graphOffset); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $offset_2(edge.bendPoints, graphOffset); - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $offset_2(junctionPoints, graphOffset); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $add_19(label_0.pos, graphOffset); - } - } - } - $add_3(destGraph.layerlessNodes, node); - node.graph_0 = destGraph; - } -} - -function $moveGraphs(destGraph, sourceGraphs){ - var sourceGraph, sourceGraph$iterator; - for (sourceGraph$iterator = sourceGraphs.iterator_0(); sourceGraph$iterator.hasNext_0();) { - sourceGraph = castTo(sourceGraph$iterator.next_1(), 37); - $moveGraph_0(destGraph, sourceGraph, 0, 0); - } -} - -function $offsetGraph(graph, offsetx, offsety){ - var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; - graphOffset = new KVector_1(offsetx, offsety); - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_19(node.pos, graphOffset); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $offset_2(edge.bendPoints, graphOffset); - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $offset_2(junctionPoints, graphOffset); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $add_19(label_0.pos, graphOffset); - } - } - } - } -} - -function $offsetGraphs(graphs, offsetx, offsety){ - var graph, graph$iterator; - for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - $offsetGraph(graph, offsetx, offsety); - } -} - -defineClass(2005, 1, {}); -var Lorg_eclipse_elk_alg_layered_components_AbstractGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'AbstractGraphPlacer', 2005); -function $clinit_ComponentGroup(){ - $clinit_ComponentGroup = emptyMethod; - CONSTRAINTS = new HashMultimap; - $put(CONSTRAINTS, ($clinit_PortSide() , SIDES_NONE), SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NONE); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_SOUTH_WEST); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH); - $put(CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); -} - -function $$init_6(this$static){ - this$static.components = new ArrayListMultimap; -} - -function $getComponents(this$static, connections){ - return castTo($get(this$static.components, connections), 15); -} - -function ComponentGroup(component){ - $clinit_ComponentGroup(); - $$init_6(this); - this.add_4(component); -} - -defineClass(325, 1, {325:1}, ComponentGroup); -_.add_4 = function add_43(component){ - if (this.canAdd(component)) { - $put(this.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); - return true; - } - else { - return false; - } -} -; -_.canAdd = function canAdd(component){ - var candidateSides, constraint, constraint$iterator, constraints; - candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); - constraints = castTo($get(CONSTRAINTS, candidateSides), 21); - for (constraint$iterator = constraints.iterator_0(); constraint$iterator.hasNext_0();) { - constraint = castTo(constraint$iterator.next_1(), 21); - if (!castTo($get(this.components, constraint), 15).isEmpty()) { - return false; - } - } - return true; -} -; -var CONSTRAINTS; -var Lorg_eclipse_elk_alg_layered_components_ComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroup', 325); -function $placeComponents(group, spacing){ - var colLeftWidth, colMidWidth, colNsWidth, colRightWidth, componentSize, rowBottomHeight, rowMidHeight, rowTopHeight, rowWeHeight, sizeC, sizeE, sizeENS, sizeN, sizeNE, sizeNESW, sizeNS, sizeNW, sizeNWE, sizeS, sizeSE, sizeSW, sizeSWE, sizeW, sizeWE, sizeWNS; - sizeC = $placeComponentsInRows($getComponents(group, ($clinit_PortSide() , SIDES_NONE)), spacing); - sizeN = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH), spacing); - sizeS = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH), spacing); - sizeW = $placeComponentsVertically($getComponents(group, SIDES_WEST), spacing); - sizeE = $placeComponentsVertically($getComponents(group, SIDES_EAST), spacing); - sizeNW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_WEST), spacing); - sizeNE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST), spacing); - sizeSW = $placeComponentsHorizontally($getComponents(group, SIDES_SOUTH_WEST), spacing); - sizeSE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH), spacing); - sizeWE = $placeComponentsVertically($getComponents(group, SIDES_EAST_WEST), spacing); - sizeNS = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_SOUTH), spacing); - sizeNWE = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_WEST), spacing); - sizeSWE = $placeComponentsHorizontally($getComponents(group, SIDES_EAST_SOUTH_WEST), spacing); - sizeWNS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_SOUTH_WEST), spacing); - sizeENS = $placeComponentsVertically($getComponents(group, SIDES_NORTH_EAST_SOUTH), spacing); - sizeNESW = $placeComponentsHorizontally($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), spacing); - colLeftWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.x_0, sizeW.x_0, sizeSW.x_0, sizeWNS.x_0])); - colMidWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeN.x_0, sizeC.x_0, sizeS.x_0, sizeNESW.x_0])); - colNsWidth = sizeNS.x_0; - colRightWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNE.x_0, sizeE.x_0, sizeSE.x_0, sizeENS.x_0])); - rowTopHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.y_0, sizeN.y_0, sizeNE.y_0, sizeNWE.y_0])); - rowMidHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeW.y_0, sizeC.y_0, sizeE.y_0, sizeNESW.y_0])); - rowWeHeight = sizeWE.y_0; - rowBottomHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeSW.y_0, sizeS.y_0, sizeSE.y_0, sizeSWE.y_0])); - $offsetGraphs($getComponents(group, SIDES_NONE), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH_WEST), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH), colLeftWidth + colNsWidth, 0); - $offsetGraphs($getComponents(group, SIDES_SOUTH), colLeftWidth + colNsWidth, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_WEST), 0, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_EAST), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_EAST), colLeftWidth + colNsWidth + colMidWidth, 0); - $offsetGraphs($getComponents(group, SIDES_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_EAST_WEST), 0, rowTopHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_SOUTH), colLeftWidth, 0); - $offsetGraphs($getComponents(group, SIDES_EAST_SOUTH_WEST), 0, rowTopHeight + rowWeHeight + rowMidHeight); - $offsetGraphs($getComponents(group, SIDES_NORTH_EAST_SOUTH), colLeftWidth + colNsWidth + colMidWidth, 0); - componentSize = new KVector; - componentSize.x_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [colLeftWidth + colMidWidth + colNsWidth + colRightWidth, sizeWE.x_0, sizeNWE.x_0, sizeSWE.x_0])); - componentSize.y_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [rowTopHeight + rowMidHeight + rowWeHeight + rowBottomHeight, sizeNS.y_0, sizeWNS.y_0, sizeENS.y_0])); - return componentSize; -} - -function $placeComponentsHorizontally(components, spacing){ - var component, component$iterator, size_0; - size_0 = new KVector; - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - $offsetGraph(component, size_0.x_0, 0); - size_0.x_0 += component.size_0.x_0 + spacing; - size_0.y_0 = $wnd.Math.max(size_0.y_0, component.size_0.y_0); - } - size_0.y_0 > 0 && (size_0.y_0 += spacing); - return size_0; -} - -function $placeComponentsInRows(components, spacing){ - var broadestRow, component, component$iterator, componentSize, graph, graph$iterator, highestBox, maxRowWidth, size_0, totalArea, xpos, ypos; - if (components.isEmpty()) { - return new KVector; - } - maxRowWidth = 0; - totalArea = 0; - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - componentSize = component.size_0; - maxRowWidth = $wnd.Math.max(maxRowWidth, componentSize.x_0); - totalArea += componentSize.x_0 * componentSize.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(castTo(components.iterator_0().next_1(), 37), ($clinit_LayeredOptions() , ASPECT_RATIO_1))))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = spacing; - for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - size_0 = graph.size_0; - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + spacing; - highestBox = 0; - } - $offsetGraph(graph, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + spacing; - } - return new KVector_1(broadestRow + spacing, ypos + highestBox + spacing); -} - -function $placeComponentsVertically(components, spacing){ - var component, component$iterator, size_0; - size_0 = new KVector; - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - $offsetGraph(component, 0, size_0.y_0); - size_0.y_0 += component.size_0.y_0 + spacing; - size_0.x_0 = $wnd.Math.max(size_0.x_0, component.size_0.x_0); - } - size_0.x_0 > 0 && (size_0.x_0 += spacing); - return size_0; -} - -function ComponentGroupGraphPlacer(){ - this.componentGroups = new ArrayList; -} - -defineClass(765, 2005, {}, ComponentGroupGraphPlacer); -_.addComponent = function addComponent(component){ - var group, group$iterator; - for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 325); - if (group.add_4(component)) { - return; - } - } - $add_3(this.componentGroups, new ComponentGroup(component)); -} -; -_.combine = function combine(components, target){ - var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, offset; - this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - if (components.isEmpty()) { - target.size_0.x_0 = 0; - target.size_0.y_0 = 0; - return; - } - firstComponent = castTo(components.get_0(0), 37); - $copyProperties(target, firstComponent); - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - this.addComponent(component); - } - offset = new KVector; - componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); - for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 325); - groupSize = $placeComponents(group, componentSpacing); - $offsetGraphs($values(group.components), offset.x_0, offset.y_0); - offset.x_0 += groupSize.x_0; - offset.y_0 += groupSize.y_0; - } - target.size_0.x_0 = offset.x_0 - componentSpacing; - target.size_0.y_0 = offset.y_0 - componentSpacing; - if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { - for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { - h = castTo(h$iterator0.next_1(), 37); - $offsetGraph(h, h.offset.x_0, h.offset.y_0); - } - compactor = new ComponentsCompactor; - $compact_5(compactor, components, componentSpacing); - for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { - h = castTo(h$iterator.next_1(), 37); - $add_19($reset_5(h.offset), compactor.yetAnotherOffset); - } - $add_19($reset_5(target.size_0), compactor.compactedGraphSize); - } - for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 325); - $moveGraphs(target, $values(group.components)); - } -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentGroupGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupGraphPlacer', 765); -function $addComponent(this$static, component){ - var group; - if (this$static.componentGroups.array.length > 0) { - group = castTo($get_11(this$static.componentGroups, this$static.componentGroups.array.length - 1), 570); - if ($add_14(group, component)) { - return; - } - } - $add_3(this$static.componentGroups, new ModelOrderComponentGroup(component)); -} - -function ComponentGroupModelOrderGraphPlacer(){ - ComponentGroupGraphPlacer.call(this); -} - -defineClass(1293, 765, {}, ComponentGroupModelOrderGraphPlacer); -_.addComponent = function addComponent_0(component){ - $addComponent(this, component); -} -; -_.combine = function combine_0(components, target){ - var compactor, component, component$iterator, componentSpacing, firstComponent, group, group$iterator, group$iterator0, groupSize, h, h$iterator, h$iterator0, maxSize, offset, side, side$iterator, spaceBlockedByComponents, spaceBlockedBySouthEdges; - this.componentGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - if (components.isEmpty()) { - target.size_0.x_0 = 0; - target.size_0.y_0 = 0; - return; - } - firstComponent = castTo(components.get_0(0), 37); - $copyProperties(target, firstComponent); - for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { - component = castTo(component$iterator.next_1(), 37); - $addComponent(this, component); - } - spaceBlockedBySouthEdges = new KVector; - spaceBlockedByComponents = new KVector; - offset = new KVector; - maxSize = new KVector; - componentSpacing = $doubleValue(castToDouble($getProperty(firstComponent, ($clinit_LayeredOptions() , SPACING_COMPONENT_COMPONENT_0)))); - for (group$iterator0 = new ArrayList$1(this.componentGroups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 325); - if ($isHorizontal(castTo($getProperty(target, ($clinit_CoreOptions() , DIRECTION_0)), 103))) { - offset.x_0 = spaceBlockedBySouthEdges.x_0; - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , NORTH_3))) { - offset.x_0 = spaceBlockedByComponents.x_0; - break; - } - } - } - else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { - offset.y_0 = spaceBlockedBySouthEdges.y_0; - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , WEST_2))) { - offset.y_0 = spaceBlockedByComponents.y_0; - break; - } - } - } - groupSize = $placeComponents(castTo(group, 570), componentSpacing); - $offsetGraphs($values(group.components), offset.x_0, offset.y_0); - if ($isHorizontal(castTo($getProperty(target, DIRECTION_0), 103))) { - spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; - maxSize.x_0 = $wnd.Math.max(maxSize.x_0, spaceBlockedByComponents.x_0); - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , SOUTH_2))) { - spaceBlockedBySouthEdges.x_0 = offset.x_0 + groupSize.x_0; - break; - } - } - spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; - offset.y_0 = spaceBlockedByComponents.y_0; - maxSize.y_0 = $wnd.Math.max(maxSize.y_0, offset.y_0); - } - else if ($isVertical(castTo($getProperty(target, DIRECTION_0), 103))) { - spaceBlockedByComponents.y_0 = offset.y_0 + groupSize.y_0; - maxSize.y_0 = $wnd.Math.max(maxSize.y_0, spaceBlockedByComponents.y_0); - for (side$iterator = new Maps$1($entries($keys(group.components).multimap).this$01.entryIterator()); side$iterator.backingIterator.hasNext_0();) { - side = castTo($transform(side$iterator.backingIterator.next_1()), 21); - if (side.contains(($clinit_PortSide() , EAST_2))) { - spaceBlockedBySouthEdges.y_0 = offset.y_0 + groupSize.y_0; - break; - } - } - spaceBlockedByComponents.x_0 = offset.x_0 + groupSize.x_0; - offset.x_0 = spaceBlockedByComponents.x_0; - maxSize.x_0 = $wnd.Math.max(maxSize.x_0, offset.x_0); - } - } - target.size_0.x_0 = maxSize.x_0 - componentSpacing; - target.size_0.y_0 = maxSize.y_0 - componentSpacing; - if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0))) && maskUndefined($getProperty(firstComponent, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , ORTHOGONAL))) { - for (h$iterator0 = components.iterator_0(); h$iterator0.hasNext_0();) { - h = castTo(h$iterator0.next_1(), 37); - $offsetGraph(h, h.offset.x_0, h.offset.y_0); - } - compactor = new ComponentsCompactor; - $compact_5(compactor, components, componentSpacing); - for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { - h = castTo(h$iterator.next_1(), 37); - $add_19($reset_5(h.offset), compactor.yetAnotherOffset); - } - $add_19($reset_5(target.size_0), compactor.compactedGraphSize); - } - for (group$iterator = new ArrayList$1(this.componentGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 325); - $moveGraphs(target, $values(group.components)); - } -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentGroupModelOrderGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupModelOrderGraphPlacer', 1293); -function $clinit_ComponentOrderingStrategy(){ - $clinit_ComponentOrderingStrategy = emptyMethod; - NONE = new ComponentOrderingStrategy('NONE', 0); - INSIDE_PORT_SIDE_GROUPS = new ComponentOrderingStrategy('INSIDE_PORT_SIDE_GROUPS', 1); - FORCE_MODEL_ORDER = new ComponentOrderingStrategy('FORCE_MODEL_ORDER', 2); -} - -function ComponentOrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_29(name_0){ - $clinit_ComponentOrderingStrategy(); - return valueOf(($clinit_ComponentOrderingStrategy$Map() , $MAP_17), name_0); -} - -function values_35(){ - $clinit_ComponentOrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]); -} - -defineClass(423, 22, {3:1, 35:1, 22:1, 423:1}, ComponentOrderingStrategy); -var FORCE_MODEL_ORDER, INSIDE_PORT_SIDE_GROUPS, NONE; -var Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.components', 'ComponentOrderingStrategy', 423, Ljava_lang_Enum_2_classLit, values_35, valueOf_29); -function $clinit_ComponentOrderingStrategy$Map(){ - $clinit_ComponentOrderingStrategy$Map = emptyMethod; - $MAP_17 = createValueOfMap(($clinit_ComponentOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit, 1), $intern_36, 423, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]))); -} - -var $MAP_17; -function $addLGraphElementBounds(pts, element, offset){ - var margins; - margins = null; - !!element && (margins = element.margin); - $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); - $add_12(pts, new Point(element.pos.x_0 - margins.left + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); - $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 - margins.top_0 + offset.y_0)); - $add_12(pts, new Point(element.pos.x_0 + element.size_0.x_0 + margins.right + offset.x_0, element.pos.y_0 + element.size_0.y_0 + margins.bottom + offset.y_0)); -} - -function $compact_5(this$static, graphs, spacing){ - var c, cc, cc$iterator, cc$iterator0, ccs, e, e$iterator, graph, graph$iterator, graph$iterator0, last, lastArg, n, n$iterator, newPos, node, node$iterator, offset, v, v$iterator, vc, compaction; - this$static.graphTopLeft = new KVector_1($intern_59, $intern_59); - this$static.graphBottomRight = new KVector_1($intern_60, $intern_60); - for (graph$iterator0 = graphs.iterator_0(); graph$iterator0.hasNext_0();) { - graph = castTo(graph$iterator0.next_1(), 37); - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.graphTopLeft.x_0 = $wnd.Math.min(this$static.graphTopLeft.x_0, node.pos.x_0 - node.margin.left); - this$static.graphTopLeft.y_0 = $wnd.Math.min(this$static.graphTopLeft.y_0, node.pos.y_0 - node.margin.top_0); - this$static.graphBottomRight.x_0 = $wnd.Math.max(this$static.graphBottomRight.x_0, node.pos.x_0 + node.size_0.x_0 + node.margin.right); - this$static.graphBottomRight.y_0 = $wnd.Math.max(this$static.graphBottomRight.y_0, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); - } - } - ccs = new ComponentsCompactor$InternalConnectedComponents; - for (graph$iterator = graphs.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - c = $transformLGraph(this$static, graph); - $add_3(ccs.components, c); - c.containsRegularNodes = c.containsRegularNodes | !castTo($getProperty(c.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).isEmpty(); - } - this$static.compactor = ($clinit_OneDimensionalComponentsCompaction() , compaction = new OneDimensionalComponentsCompaction , compaction.transformer = new ComponentsToCGraphTransformer(spacing) , compaction.compactionGraph = $transform_0(compaction.transformer, ccs) , compaction); - $compact_2((lastArg = this$static.compactor , new BasicProgressMonitor , lastArg)); - this$static.yetAnotherOffset = new KVector; - this$static.compactedGraphSize = this$static.compactor.transformer.graphSize; - for (cc$iterator0 = new ArrayList$1(ccs.components); cc$iterator0.i < cc$iterator0.this$01.array.length;) { - cc = castTo($next_7(cc$iterator0), 841); - offset = $getOffset_0(this$static.compactor, cc); - offsetGraph(cc.graph_0, offset.x_0, offset.y_0); - for (n$iterator = new ArrayList$1(cc.graph_0.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - newPos = $getExternalPortPosition(this$static, n.pos, castTo($getProperty(n, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); - $add_19($reset_5(n.pos), newPos); - } - } - } - for (cc$iterator = new ArrayList$1(ccs.components); cc$iterator.i < cc$iterator.this$01.array.length;) { - cc = castTo($next_7(cc$iterator), 841); - for (e$iterator = new ArrayList$1($getExternalEdges(cc)); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - vc = new KVectorChain_0(e.bendPoints); - $add_0(vc, 0, $getAbsoluteAnchor(e.source)); - $add_7(vc, $getAbsoluteAnchor(e.target)); - last = null; - for (v$iterator = $listIterator_2(vc, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { - v = castTo($next_10(v$iterator), 8); - if (!last) { - last = v; - continue; - } - if (fuzzyEquals(last.x_0, v.x_0)) { - this$static.yetAnotherOffset.x_0 = $wnd.Math.min(this$static.yetAnotherOffset.x_0, last.x_0); - this$static.compactedGraphSize.x_0 = $wnd.Math.max(this$static.compactedGraphSize.x_0, last.x_0); - } - else if (fuzzyEquals(last.y_0, v.y_0)) { - this$static.yetAnotherOffset.y_0 = $wnd.Math.min(this$static.yetAnotherOffset.y_0, last.y_0); - this$static.compactedGraphSize.y_0 = $wnd.Math.max(this$static.compactedGraphSize.y_0, last.y_0); - } - last = v; - } - } - } - $negate(this$static.yetAnotherOffset); - $add_19(this$static.compactedGraphSize, this$static.yetAnotherOffset); -} - -function $componentHullPoints(graph){ - var absolute, bp, bp$iterator, edge, edge$iterator, n, n$iterator, pts; - pts = new ComponentsCompactor$Hullpoints; - for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (n.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - $addLGraphElementBounds(pts, n, new KVector); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.source.owner.type_0 == EXTERNAL_PORT || edge.target.owner.type_0 == EXTERNAL_PORT) { - continue; - } - for (bp$iterator = $listIterator_2(edge.bendPoints, 0); bp$iterator.currentNode != bp$iterator.this$01.tail;) { - bp = castTo($next_10(bp$iterator), 8); - absolute = bp; - $add_12(pts, new Point(absolute.x_0, absolute.y_0)); - } - } - } - return pts; -} - -function $createDummyNode(graph){ - var dummy, dummyEdge, dummyPort, extPortDummy, extPortDummyPort; - extPortDummy = castTo($get_11(graph.layerlessNodes, 0), 10); - dummy = new LNode(graph); - $add_3(graph.layerlessNodes, dummy); - dummy.size_0.x_0 = $wnd.Math.max(1, extPortDummy.size_0.x_0); - dummy.size_0.y_0 = $wnd.Math.max(1, extPortDummy.size_0.y_0); - dummy.pos.x_0 = extPortDummy.pos.x_0; - dummy.pos.y_0 = extPortDummy.pos.y_0; - switch (castTo($getProperty(extPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 4: - dummy.pos.x_0 += 2; - break; - case 1: - dummy.pos.y_0 += 2; - break; - case 2: - dummy.pos.x_0 -= 2; - break; - case 3: - dummy.pos.y_0 -= 2; - } - dummyPort = new LPort; - $setNode(dummyPort, dummy); - dummyEdge = new LEdge; - extPortDummyPort = castTo($get_11(extPortDummy.ports, 0), 11); - $setSource_0(dummyEdge, extPortDummyPort); - $setTarget_0(dummyEdge, dummyPort); - $add_19($reset_5(dummyPort.pos), extPortDummyPort.pos); - $add_19($reset_5(dummyPort.anchor), extPortDummyPort.anchor); - return dummy; -} - -function $edgeToSegments(this$static, edge, externalExtension){ - var externalPort, externalPortSide, i, outerSegmentIsFirst, p1, p2, points, segment, segments; - externalPort = externalExtension.externalPort; - externalPortSide = externalExtension.externalPortSide; - p1 = $getAbsoluteAnchor(edge.source); - p2 = $getAbsoluteAnchor(edge.target); - if (externalPort == edge.source) { - p1 = $getExternalPortPosition(this$static, p1, externalPortSide); - p2 = $getPortPositionOnMargin(edge.target); - } - else { - p1 = $getPortPositionOnMargin(edge.source); - p2 = $getExternalPortPosition(this$static, p2, externalPortSide); - } - points = new KVectorChain_0(edge.bendPoints); - $addNode_0(points, p1, points.header, points.header.next_0); - $addNode_0(points, p2, points.tail.prev, points.tail); - outerSegmentIsFirst = edge.source == externalPort; - segments = new ComponentsCompactor$Segments; - for (i = 0; i < points.size_0 - 1; ++i) { - segment = new Pair(castTo($get_7(points, i), 8), castTo($get_7(points, i + 1), 8)); - outerSegmentIsFirst && i == 0 || !outerSegmentIsFirst && i == points.size_0 - 2?(segments.outerSegment = segment):$add_3(segments.innerSegments, segment); - } - return segments; -} - -function $getExternalPortPosition(this$static, pos, ps){ - switch (ps.ordinal) { - case 1: - return new KVector_1(pos.x_0, $wnd.Math.min(this$static.graphTopLeft.y_0, pos.y_0)); - case 2: - return new KVector_1($wnd.Math.max(this$static.graphBottomRight.x_0, pos.x_0), pos.y_0); - case 3: - return new KVector_1(pos.x_0, $wnd.Math.max(this$static.graphBottomRight.y_0, pos.y_0)); - case 4: - return new KVector_1($wnd.Math.min(pos.x_0, this$static.graphTopLeft.x_0), pos.y_0); - } - return new KVector_1(pos.x_0, pos.y_0); -} - -function $getPortPositionOnMargin(port){ - var margins, pos; - pos = $clone_0(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor]))); - margins = port.owner.margin; - switch (port.side.ordinal) { - case 1: - pos.y_0 -= margins.top_0; - break; - case 2: - pos.x_0 += margins.right; - break; - case 3: - pos.y_0 += margins.bottom; - break; - case 4: - pos.x_0 -= margins.left; - } - return pos; -} - -function $portSideToDirection(side){ - switch (side.ordinal) { - case 1: - return $clinit_Direction_0() , UP_1; - case 4: - return $clinit_Direction_0() , LEFT_6; - case 2: - return $clinit_Direction_0() , RIGHT_6; - case 3: - return $clinit_Direction_0() , DOWN_1; - } - return $clinit_Direction_0() , UNDEFINED_2; -} - -function $segmentToRectangle(p1, p2, extent){ - return new ElkRectangle_0($wnd.Math.min(p1.x_0, p2.x_0) - extent / 2, $wnd.Math.min(p1.y_0, p2.y_0) - extent / 2, $wnd.Math.abs(p1.x_0 - p2.x_0) + extent, $wnd.Math.abs(p1.y_0 - p2.y_0) + extent); -} - -function $transformLEdge(this$static, externalEdge, hullPoints, outerSegments){ - var extent, externalExtension, margins, outerSegmentRect, rect, segment, segment$iterator, segments, side, thickness; - externalExtension = new ComponentsCompactor$InternalExternalExtension(externalEdge); - segments = $edgeToSegments(this$static, externalEdge, externalExtension); - thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))), 1); - for (segment$iterator = new ArrayList$1(segments.innerSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 46); - rect = $segmentToRectangle(castTo(segment.first, 8), castTo(segment.second, 8), thickness); - returnVal = true; - returnVal = returnVal & $add_13(hullPoints, new KVector_1(rect.x_0, rect.y_0)); - returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, 0)); - returnVal = returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), 0, rect.height)); - returnVal & $add_13(hullPoints, $add_18(new KVector_1(rect.x_0, rect.y_0), rect.width_0, rect.height)); - } - side = externalExtension.externalPortSide; - outerSegmentRect = $segmentToRectangle(castTo(segments.outerSegment.first, 8), castTo(segments.outerSegment.second, 8), thickness); - if (side == ($clinit_PortSide() , WEST_2) || side == EAST_2) { - outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.y_0); - outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.y_0 + outerSegmentRect.height); - } - else { - outerSegments.min_0[side.ordinal] = $wnd.Math.min(outerSegments.min_0[side.ordinal], outerSegmentRect.x_0); - outerSegments.max_0[side.ordinal] = $wnd.Math.max(outerSegments.max_0[side.ordinal], outerSegmentRect.x_0 + outerSegmentRect.width_0); - } - extent = $intern_60; - margins = externalExtension.externalPort.owner.margin; - switch (side.ordinal) { - case 4: - extent = margins.right; - break; - case 2: - extent = margins.left; - break; - case 1: - extent = margins.bottom; - break; - case 3: - extent = margins.top_0; - } - outerSegments.extent[side.ordinal] = $wnd.Math.max(outerSegments.extent[side.ordinal], extent); - return externalExtension; -} - -function $transformLGraph(this$static, graph){ - var component, edge, edge$iterator, extension, extensions, extent, externalExtensions, hullPoints, iee, iuee, max_0, min_0, node, node$iterator, outerSegments, placeholder, ps, ps$iterator; - component = new ComponentsCompactor$InternalComponent(graph); - component.containsRegularNodes || $createDummyNode(graph); - hullPoints = $componentHullPoints(graph); - externalExtensions = new HashMultimap; - outerSegments = new ComponentsCompactor$OuterSegments; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || edge.target.owner.type_0 == EXTERNAL_PORT) { - iee = $transformLEdge(this$static, edge, hullPoints, outerSegments); - $put(externalExtensions, $portSideToDirection(iee.externalPortSide), iee.edge); - } - } - } - extensions = new ArrayList; - for (ps$iterator = castTo($getProperty(component.graph_0, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21).iterator_0(); ps$iterator.hasNext_0();) { - ps = castTo(ps$iterator.next_1(), 61); - min_0 = outerSegments.min_0[ps.ordinal]; - max_0 = outerSegments.max_0[ps.ordinal]; - extent = outerSegments.extent[ps.ordinal]; - extension = null; - placeholder = null; - switch (ps.ordinal) { - case 4: - extension = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, hullPoints.topLeft.x_0 - this$static.graphTopLeft.x_0, max_0 - min_0); - placeholder = new ElkRectangle_0(this$static.graphTopLeft.x_0, min_0, extent, max_0 - min_0); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); - break; - case 2: - extension = new ElkRectangle_0(hullPoints.bottomRight.x_0, min_0, this$static.graphBottomRight.x_0 - hullPoints.bottomRight.x_0, max_0 - min_0); - placeholder = new ElkRectangle_0(this$static.graphBottomRight.x_0 - extent, min_0, extent, max_0 - min_0); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); - break; - case 1: - extension = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, hullPoints.topLeft.y_0 - this$static.graphTopLeft.y_0); - placeholder = new ElkRectangle_0(min_0, this$static.graphTopLeft.y_0, max_0 - min_0, extent); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0 + extension.height)); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0 + extension.height)); - break; - case 3: - extension = new ElkRectangle_0(min_0, hullPoints.bottomRight.y_0, max_0 - min_0, this$static.graphBottomRight.y_0 - hullPoints.bottomRight.y_0); - placeholder = new ElkRectangle_0(min_0, this$static.graphBottomRight.y_0 - extent, max_0 - min_0, extent); - $add_13(hullPoints, new KVector_1(extension.x_0, extension.y_0)); - $add_13(hullPoints, new KVector_1(extension.x_0 + extension.width_0, extension.y_0)); - } - if (extension) { - iuee = new ComponentsCompactor$InternalUnionExternalExtension; - iuee.side = ps; - iuee.extension = extension; - iuee.placeholder = placeholder; - iuee.edges = newHashSet(castTo($get(externalExtensions, $portSideToDirection(ps)), 21)); - extensions.array[extensions.array.length] = iuee; - } - } - $addAll_2(component.externalExtensions, extensions); - component.rectilinearConvexHull = $splitIntoRectangles(of_5(hullPoints)); - return component; -} - -function ComponentsCompactor(){ -} - -defineClass(650, 1, {}, ComponentsCompactor); -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor', 650); -function $add_12(this$static, e){ - this$static.topLeft.x_0 = $wnd.Math.min(this$static.topLeft.x_0, e.x_0); - this$static.topLeft.y_0 = $wnd.Math.min(this$static.topLeft.y_0, e.y_0); - this$static.bottomRight.x_0 = $wnd.Math.max(this$static.bottomRight.x_0, e.x_0); - this$static.bottomRight.y_0 = $wnd.Math.max(this$static.bottomRight.y_0, e.y_0); - return this$static.array[this$static.array.length] = e , true; -} - -function $add_13(this$static, e){ - return $add_12(this$static, new Point(e.x_0, e.y_0)); -} - -function ComponentsCompactor$Hullpoints(){ - $$init_2(this); - this.topLeft = new KVector_1($intern_59, $intern_59); - this.bottomRight = new KVector_1($intern_60, $intern_60); -} - -defineClass(1468, 12, $intern_71, ComponentsCompactor$Hullpoints); -_.add_2 = function add_44(e){ - return $add_12(this, castTo(e, 140)); -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Hullpoints_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Hullpoints', 1468); -function $getExternalEdges(this$static){ - var edges, ee, ee$iterator; - edges = new ArrayList; - for (ee$iterator = new ArrayList$1(this$static.externalExtensions); ee$iterator.i < ee$iterator.this$01.array.length;) { - ee = castTo($next_7(ee$iterator), 594); - $addAll_2(edges, castTo(ee.getRepresentative(), 14)); - } - return edges; -} - -function ComponentsCompactor$InternalComponent(graph){ - var n, n$iterator; - this.externalExtensions = new ArrayList; - this.graph_0 = graph; - this.containsRegularNodes = false; - for (n$iterator = new ArrayList$1(graph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - this.containsRegularNodes = this.containsRegularNodes | n.type_0 == ($clinit_LNode$NodeType() , NORMAL); - } -} - -defineClass(1465, 1, {841:1}, ComponentsCompactor$InternalComponent); -_.containsRegularNodes = false; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalComponent_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalComponent', 1465); -function ComponentsCompactor$InternalConnectedComponents(){ - this.components = new ArrayList; -} - -defineClass(1464, 1, $intern_23, ComponentsCompactor$InternalConnectedComponents); -_.forEach_0 = function forEach_25(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_67(){ - return new ArrayList$1(this.components); -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalConnectedComponents_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalConnectedComponents', 1464); -function ComponentsCompactor$InternalExternalExtension(edge){ - this.edge = edge; - if (edge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - this.externalPort = edge.source; - this.externalPortSide = castTo($getProperty(edge.source.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - } - else if (edge.target.owner.type_0 == EXTERNAL_PORT) { - this.externalPort = edge.target; - this.externalPortSide = castTo($getProperty(edge.target.owner, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - } - else { - throw toJs(new IllegalArgumentException_0('Edge ' + edge + ' is not an external edge.')); - } -} - -defineClass(1467, 1, {594:1}, ComponentsCompactor$InternalExternalExtension); -_.getPlaceholder = function getPlaceholder(){ - return null; -} -; -_.getRepresentative = function getRepresentative(){ - return this.edge; -} -; -_.getDirection = function getDirection(){ - return $portSideToDirection(this.externalPortSide); -} -; -_.getRepresentor = function getRepresentor(){ - return this.externalExtension; -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalExternalExtension', 1467); -function ComponentsCompactor$InternalUnionExternalExtension(){ - this.edges = new HashSet; -} - -defineClass(1466, 1, {594:1}, ComponentsCompactor$InternalUnionExternalExtension); -_.getRepresentative = function getRepresentative_0(){ - return this.edges; -} -; -_.getDirection = function getDirection_0(){ - return $portSideToDirection(this.side); -} -; -_.getPlaceholder = function getPlaceholder_0(){ - return this.placeholder; -} -; -_.getRepresentor = function getRepresentor_0(){ - return this.extension; -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$InternalUnionExternalExtension_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/InternalUnionExternalExtension', 1466); -function ComponentsCompactor$OuterSegments(){ - this.min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); - this.max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); - this.extent = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); - fill_1(this.min_0, $intern_59); - fill_1(this.max_0, $intern_60); - fill_1(this.extent, $intern_60); -} - -defineClass(1470, 1, {}, ComponentsCompactor$OuterSegments); -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$OuterSegments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/OuterSegments', 1470); -function ComponentsCompactor$Segments(){ - this.innerSegments = new ArrayList; -} - -defineClass(1469, 1, {}, ComponentsCompactor$Segments); -var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Segments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Segments', 1469); -function $combine(this$static, components, target){ - this$static.graphPlacer.combine(components, target); -} - -function $dfs_1(this$static, node, data_0){ - var all, component, extPortSides, mutableData, port1, port1$iterator, port2, port2$iterator; - if (node.id_0 == 0) { - node.id_0 = 1; - mutableData = data_0; - if (!mutableData) { - component = new ArrayList; - extPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - mutableData = new Pair(component, extPortSides); - } - castTo(mutableData.first, 15).add_2(node); - node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && castTo(mutableData.second, 21).add_2(castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61)); - for (port1$iterator = new ArrayList$1(node.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { - port1 = castTo($next_7(port1$iterator), 11); - for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { - port2 = castTo($next_0(port2$iterator), 11); - $dfs_1(this$static, port2.owner, mutableData); - } - } - return mutableData; - } - return null; -} - -function $split_2(this$static, graph){ - var compatiblePortConstraints, componentData, extPortConstraints, extPorts, n, n$iterator, newGraph, node, node$iterator, node$iterator0, result, separate, separateProperty; - this$static.graphPlacer = this$static.simpleRowGraphPlacer; - separateProperty = castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , SEPARATE_CONNECTED_COMPONENTS_0))); - separate = separateProperty == null || (checkCriticalNotNull(separateProperty) , separateProperty); - extPorts = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); - extPortConstraints = castTo($getProperty(graph, PORT_CONSTRAINTS_0), 98); - compatiblePortConstraints = !(extPortConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || extPortConstraints == FIXED_RATIO || extPortConstraints == FIXED_POS); - if (separate && (compatiblePortConstraints || !extPorts)) { - for (node$iterator0 = new ArrayList$1(graph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = 0; - } - result = new ArrayList; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - componentData = $dfs_1(this$static, node, null); - if (componentData) { - newGraph = new LGraph; - $copyProperties(newGraph, graph); - $setProperty_0(newGraph, EXT_PORT_CONNECTIONS, castTo(componentData.second, 21)); - $copy(newGraph.padding, graph.padding); - $setProperty_0(newGraph, NODE_SIZE_MINIMUM_0, null); - for (n$iterator = castTo(componentData.first, 15).iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 10); - $add_3(newGraph.layerlessNodes, n); - n.graph_0 = newGraph; - } - result.add_2(newGraph); - } - } - extPorts && (maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) === maskUndefined(($clinit_ComponentOrderingStrategy() , FORCE_MODEL_ORDER))?(this$static.graphPlacer = this$static.componentGroupModelOrderGraphPlacer):(this$static.graphPlacer = this$static.componentGroupGraphPlacer)); - } - else { - result = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [graph])); - } - maskUndefined($getProperty(graph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE)) && ($clinit_Collections() , result.sort_0(new ComponentsProcessor$lambda$0$Type)); - return result; -} - -function ComponentsProcessor_0(){ - this.componentGroupGraphPlacer = new ComponentGroupGraphPlacer; - this.componentGroupModelOrderGraphPlacer = new ComponentGroupModelOrderGraphPlacer; - this.simpleRowGraphPlacer = new SimpleRowGraphPlacer; -} - -function lambda$0_22(g1_0, g2_1){ - var g1Order, g2Order; - g1Order = getMinimalModelOrder(g1_0); - g2Order = getMinimalModelOrder(g2_1); - return g1Order < g2Order?-1:g1Order > g2Order?1:0; -} - -defineClass(1264, 1, {}, ComponentsProcessor_0); -var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor', 1264); -function ComponentsProcessor$lambda$0$Type(){ -} - -defineClass(1265, 1, $intern_88, ComponentsProcessor$lambda$0$Type); -_.compare_1 = function compare_38(arg0, arg1){ - return lambda$0_22(castTo(arg0, 37), castTo(arg1, 37)); -} -; -_.equals_0 = function equals_94(other){ - return this === other; -} -; -_.reversed = function reversed_30(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor/lambda$0$Type', 1265); -function $clinit_ModelOrderComponentGroup(){ - $clinit_ModelOrderComponentGroup = emptyMethod; - $clinit_ComponentGroup(); - MODEL_ORDER_CONSTRAINTS = new HashMultimap; - $put(MODEL_ORDER_CONSTRAINTS, ($clinit_PortSide() , SIDES_NORTH), SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH_WEST, SIDES_EAST_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST_WEST, SIDES_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NONE, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_WEST, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_WEST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_WEST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_EAST_WEST, SIDES_EAST); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NONE); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_NORTH); - $put(MODEL_ORDER_CONSTRAINTS, SIDES_NORTH_SOUTH, SIDES_SOUTH); -} - -function $add_14(this$static, component){ - if ($canAdd(this$static, component)) { - $put(this$static.components, castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21), component); - $add_7(this$static.componentOrder, component); - return true; - } - else { - return false; - } -} - -function $canAdd(this$static, component){ - var candidateSides, constraint, constraint$iterator, constraint$iterator0, constraints, modelOrderConstraints; - candidateSides = castTo($getProperty(component, ($clinit_InternalProperties_1() , EXT_PORT_CONNECTIONS)), 21); - constraints = castTo($get(($clinit_ComponentGroup() , CONSTRAINTS), candidateSides), 21); - modelOrderConstraints = castTo($get(MODEL_ORDER_CONSTRAINTS, candidateSides), 21); - for (constraint$iterator0 = constraints.iterator_0(); constraint$iterator0.hasNext_0();) { - constraint = castTo(constraint$iterator0.next_1(), 21); - if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { - return false; - } - } - for (constraint$iterator = modelOrderConstraints.iterator_0(); constraint$iterator.hasNext_0();) { - constraint = castTo(constraint$iterator.next_1(), 21); - if (!castTo($get(this$static.components, constraint), 15).isEmpty()) { - return false; - } - } - return true; -} - -function ModelOrderComponentGroup(component){ - $clinit_ModelOrderComponentGroup(); - $$init_6(this); - this.componentOrder = new LinkedList; - $add_14(this, component); - $add_7(this.componentOrder, component); -} - -defineClass(570, 325, {325:1, 570:1}, ModelOrderComponentGroup); -_.add_4 = function add_45(component){ - return $add_14(this, component); -} -; -_.canAdd = function canAdd_0(component){ - return $canAdd(this, component); -} -; -var MODEL_ORDER_CONSTRAINTS; -var Lorg_eclipse_elk_alg_layered_components_ModelOrderComponentGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ModelOrderComponentGroup', 570); -function SimpleRowGraphPlacer(){ -} - -defineClass(1291, 2005, {}, SimpleRowGraphPlacer); -_.combine = function combine_1(components, target){ - var broadestRow, compactor, componentSpacing, firstComponent, graph, graph$iterator, graph$iterator0, graph$iterator1, h, h$iterator, highestBox, maxRowWidth, node, node$iterator, offset, priority, size_0, source, totalArea, xpos, ypos; - if (components.size_1() == 1) { - source = castTo(components.get_0(0), 37); - if (source != target) { - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $moveGraph_0(target, source, 0, 0); - $copyProperties(target, source); - $copy(target.padding, source.padding); - target.size_0.x_0 = source.size_0.x_0; - target.size_0.y_0 = source.size_0.y_0; - } - return; - } - else if (components.isEmpty()) { - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - target.size_0.x_0 = 0; - target.size_0.y_0 = 0; - return; - } - if (maskUndefined($getProperty(target, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_COMPONENTS_0))) === maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { - for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { - graph = castTo(graph$iterator0.next_1(), 37); - priority = 0; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - priority += castTo($getProperty(node, PRIORITY_0), 19).value_0; - } - graph.id_0 = priority; - } - $clinit_Collections(); - components.sort_0(new SimpleRowGraphPlacer$1); - } - firstComponent = castTo(components.get_0(0), 37); - target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $copyProperties(target, firstComponent); - maxRowWidth = 0; - totalArea = 0; - for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { - graph = castTo(graph$iterator1.next_1(), 37); - size_0 = graph.size_0; - maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); - totalArea += size_0.x_0 * size_0.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(target, ASPECT_RATIO_1)))); - componentSpacing = $doubleValue(castToDouble($getProperty(target, SPACING_COMPONENT_COMPONENT_0))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = componentSpacing; - for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 37); - size_0 = graph.size_0; - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + componentSpacing; - highestBox = 0; - } - offset = graph.offset; - $offsetGraph(graph, xpos + offset.x_0, ypos + offset.y_0); - $reset_5(offset); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + componentSpacing; - } - target.size_0.x_0 = broadestRow; - target.size_0.y_0 = ypos + highestBox; - if ($booleanValue(castToBoolean($getProperty(firstComponent, COMPACTION_CONNECTED_COMPONENTS_0)))) { - compactor = new ComponentsCompactor; - $compact_5(compactor, components, componentSpacing); - for (h$iterator = components.iterator_0(); h$iterator.hasNext_0();) { - h = castTo(h$iterator.next_1(), 37); - $add_19($reset_5(h.offset), compactor.yetAnotherOffset); - } - $add_19($reset_5(target.size_0), compactor.compactedGraphSize); - } - $moveGraphs(target, components); -} -; -var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer', 1291); -function $compare_8(graph1, graph2){ - var prio, size1, size2; - prio = graph2.id_0 - graph1.id_0; - if (prio == 0) { - size1 = graph1.size_0.x_0 * graph1.size_0.y_0; - size2 = graph2.size_0.x_0 * graph2.size_0.y_0; - return compare_4(size1, size2); - } - return prio; -} - -function SimpleRowGraphPlacer$1(){ -} - -defineClass(1292, 1, $intern_88, SimpleRowGraphPlacer$1); -_.compare_1 = function compare_39(graph1, graph2){ - return $compare_8(castTo(graph1, 37), castTo(graph2, 37)); -} -; -_.equals_0 = function equals_95(other){ - return this === other; -} -; -_.reversed = function reversed_31(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer/1', 1292); -function $clinit_CompoundGraphPostprocessor(){ - $clinit_CompoundGraphPostprocessor = emptyMethod; - HAS_JUNCTION_POINTS_PREDICATE = new CompoundGraphPostprocessor$1; -} - -function $process_0(graph, monitor){ - var addUnnecessaryBendpoints, bendPoints, chEdge, chEdge$iterator, crossHierarchyEdges, crossHierarchyMap, dummyEdge, dummyEdge$iterator, dummyEdges, junctionPoints, lastPoint, ledge, nextPoint, offset, origEdge, origEdge$iterator, referenceGraph, referenceNode, sourcePoint, sourcePort, targetPoint, targetPort, xDiffEnough, yDiffEnough; - $begin(monitor, 'Compound graph postprocessor', 1); - addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); - crossHierarchyMap = castTo($getProperty(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP)), 224); - dummyEdges = new HashSet; - for (origEdge$iterator = crossHierarchyMap.keySet_0().iterator_0(); origEdge$iterator.hasNext_0();) { - origEdge = castTo(origEdge$iterator.next_1(), 17); - crossHierarchyEdges = new ArrayList_1(crossHierarchyMap.get_1(origEdge)); - $clinit_Collections(); - $sort(crossHierarchyEdges, new CrossHierarchyEdgeComparator(graph)); - sourcePort = $getActualSource((checkCriticalElementIndex(0, crossHierarchyEdges.array.length) , castTo(crossHierarchyEdges.array[0], 243))); - targetPort = $getActualTarget(castTo($get_11(crossHierarchyEdges, crossHierarchyEdges.array.length - 1), 243)); - referenceNode = sourcePort.owner; - isDescendant(targetPort.owner, referenceNode)?(referenceGraph = referenceNode.nestedGraph):(referenceGraph = $getGraph(referenceNode)); - junctionPoints = clearJunctionPoints(origEdge, crossHierarchyEdges); - $reset_0(origEdge.bendPoints); - lastPoint = null; - for (chEdge$iterator = new ArrayList$1(crossHierarchyEdges); chEdge$iterator.i < chEdge$iterator.this$01.array.length;) { - chEdge = castTo($next_7(chEdge$iterator), 243); - offset = new KVector; - changeCoordSystem(offset, chEdge.graph_0, referenceGraph); - ledge = chEdge.newEdge; - bendPoints = new KVectorChain; - $addAllAsCopies(bendPoints, 0, ledge.bendPoints); - $offset_2(bendPoints, offset); - sourcePoint = new KVector_2($getAbsoluteAnchor(ledge.source)); - targetPoint = new KVector_2($getAbsoluteAnchor(ledge.target)); - $add_19(sourcePoint, offset); - $add_19(targetPoint, offset); - if (lastPoint) { - bendPoints.size_0 == 0?(nextPoint = targetPoint):(nextPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8))); - xDiffEnough = $wnd.Math.abs(lastPoint.x_0 - nextPoint.x_0) > $intern_101; - yDiffEnough = $wnd.Math.abs(lastPoint.y_0 - nextPoint.y_0) > $intern_101; - (!addUnnecessaryBendpoints && xDiffEnough && yDiffEnough || addUnnecessaryBendpoints && (xDiffEnough || yDiffEnough)) && $add_7(origEdge.bendPoints, sourcePoint); - } - $addAll(origEdge.bendPoints, bendPoints); - bendPoints.size_0 == 0?(lastPoint = sourcePoint):(lastPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8))); - copyJunctionPoints(ledge, junctionPoints, offset); - if ($getActualTarget(chEdge) == targetPort) { - if ($getGraph(targetPort.owner) != chEdge.graph_0) { - offset = new KVector; - changeCoordSystem(offset, $getGraph(targetPort.owner), referenceGraph); - } - $setProperty_0(origEdge, TARGET_OFFSET, offset); - } - copyLabelsBack(ledge, origEdge, referenceGraph); - dummyEdges.map_0.put(ledge, dummyEdges); - } - $setSource_0(origEdge, sourcePort); - $setTarget_0(origEdge, targetPort); - } - for (dummyEdge$iterator = dummyEdges.map_0.keySet_0().iterator_0(); dummyEdge$iterator.hasNext_0();) { - dummyEdge = castTo(dummyEdge$iterator.next_1(), 17); - $setSource_0(dummyEdge, null); - $setTarget_0(dummyEdge, null); - } - $done_0(monitor); -} - -function clearJunctionPoints(origEdge, crossHierarchyEdges){ - var junctionPoints; - junctionPoints = castTo($getProperty(origEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (any_0(crossHierarchyEdges, HAS_JUNCTION_POINTS_PREDICATE)) { - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(origEdge, JUNCTION_POINTS, junctionPoints); - } - else { - $reset_0(junctionPoints); - } - } - else - !!junctionPoints && $setProperty_0(origEdge, JUNCTION_POINTS, null); - return junctionPoints; -} - -function copyJunctionPoints(source, target, offset){ - var jpCopies, ledgeJPs; - ledgeJPs = castTo($getProperty(source, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (ledgeJPs) { - jpCopies = new KVectorChain; - $addAllAsCopies(jpCopies, 0, ledgeJPs); - $offset_2(jpCopies, offset); - $addAll(target, jpCopies); - } -} - -function copyLabelsBack(hierarchySegment, origEdge, referenceGraph){ - var currLabel, labelIterator; - labelIterator = new AbstractList$ListIteratorImpl(hierarchySegment.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - if (maskUndefined($getProperty(currLabel, ($clinit_InternalProperties_1() , ORIGINAL_LABEL_EDGE))) !== maskUndefined(origEdge)) { - continue; - } - changeCoordSystem(currLabel.pos, $getGraph(hierarchySegment.source.owner), referenceGraph); - $remove_8(labelIterator); - $add_3(origEdge.labels, currLabel); - } -} - -var HAS_JUNCTION_POINTS_PREDICATE; -function CompoundGraphPostprocessor$1(){ -} - -defineClass(1262, 1, $intern_89, CompoundGraphPostprocessor$1); -_.apply_1 = function apply_63(chEdge){ - var jps; - return jps = castTo($getProperty(castTo(chEdge, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; -} -; -_.equals_0 = function equals_96(other){ - return this === other; -} -; -_.test_0 = function test_16(input_0){ - var jps; - return jps = castTo($getProperty(castTo(input_0, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!jps && jps.size_0 != 0; -} -; -var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPostprocessor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPostprocessor/1', 1262); -function $calculateNetFlow(port){ - var incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, node, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; - node = port.owner; - insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); - outputPortVote = 0; - inputPortVote = 0; - for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { - outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); - isSelfLoop = $isSelfLoop(outgoingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(outgoingEdge, INSIDE_SELF_LOOPS_YO))); - targetNode = outgoingEdge.target.owner; - isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getGraph(targetNode).parentNode == node?++inputPortVote:++outputPortVote; - } - for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { - incomingEdge = castTo($next_7(incomingEdge$iterator), 17); - isSelfLoop = $isSelfLoop(incomingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty(incomingEdge, INSIDE_SELF_LOOPS_YO))); - sourceNode = incomingEdge.source.owner; - isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getGraph(sourceNode).parentNode == node?++outputPortVote:++inputPortVote; - } - return outputPortVote - inputPortVote; -} - -function $connectChild(this$static, graph, externalPort, origEdge, sourcePort, targetPort){ - var dummyEdge; - dummyEdge = $createDummyEdge(origEdge); - $setSource_0(dummyEdge, sourcePort); - $setTarget_0(dummyEdge, targetPort); - $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalPort.type_0)); -} - -function $connectSiblings(this$static, graph, externalOutputPort, containedExternalPorts, origEdge){ - var dummyEdge, externalPort2, externalPort2$iterator, targetExternalPort; - targetExternalPort = null; - for (externalPort2$iterator = new ArrayList$1(containedExternalPorts); externalPort2$iterator.i < externalPort2$iterator.this$01.array.length;) { - externalPort2 = castTo($next_7(externalPort2$iterator), 441); - if (externalPort2 != externalOutputPort && $indexOf_3(externalPort2.origEdges, origEdge, 0) != -1) { - targetExternalPort = externalPort2; - break; - } - } - dummyEdge = $createDummyEdge(origEdge); - $setSource_0(dummyEdge, externalOutputPort.dummyPort); - $setTarget_0(dummyEdge, targetExternalPort.dummyPort); - $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(dummyEdge, graph, externalOutputPort.type_0)); -} - -function $createDummyEdge(origEdge){ - var dummyEdge; - dummyEdge = new LEdge; - $copyProperties(dummyEdge, origEdge); - $setProperty_0(dummyEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); - return dummyEdge; -} - -function $createExternalPortDummy(this$static, graph, parentNode, portType, portSide, edge){ - var dummyNode, dummyPort, layoutDirection, outsidePort, propertyHolder, offset; - dummyNode = null; - outsidePort = portType == ($clinit_PortType() , INPUT)?edge.source:edge.target; - layoutDirection = getDirection_1(graph); - if (outsidePort.owner == parentNode) { - dummyNode = castTo($get_10(this$static.dummyNodeMap, outsidePort), 10); - if (!dummyNode) { - dummyNode = createExternalPortDummy(outsidePort, castTo($getProperty(parentNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98), portSide, $calculateNetFlow(outsidePort), null, outsidePort.pos, outsidePort.size_0, layoutDirection, graph); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), outsidePort); - $put_6(this$static.dummyNodeMap, outsidePort, dummyNode); - } - } - else { - dummyNode = createExternalPortDummy((propertyHolder = new MapPropertyHolder , offset = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))) / 2 , $setProperty(propertyHolder, PORT_BORDER_OFFSET, offset) , propertyHolder), castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98), portSide, portType == INPUT?-1:1, null, new KVector, new KVector_1(0, 0), layoutDirection, graph); - dummyPort = $createPortForDummy(dummyNode, parentNode, portType); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), dummyPort); - $put_6(this$static.dummyNodeMap, dummyPort, dummyNode); - } - castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); - $isSideFixed(castTo($getProperty(graph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))?$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)):$setProperty_0(graph, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FREE)); - return dummyNode; -} - -function $createPortForDummy(dummyNode, parentNode, type_0){ - var graph, layoutDirection, port; - graph = $getGraph(parentNode); - layoutDirection = getDirection_1(graph); - port = new LPort; - $setNode(port, parentNode); - switch (type_0.ordinal) { - case 1: - $setSide(port, $opposed(fromDirection(layoutDirection))); - break; - case 2: - $setSide(port, fromDirection(layoutDirection)); - } - $setProperty_0(port, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET), castToDouble($getProperty(dummyNode, PORT_BORDER_OFFSET))); - return port; -} - -function $getShallowestEdgeSegment(edgeSegments){ - var crossHierarchyEdge, crossHierarchyEdge$iterator, index_0, result; - result = -1; - index_0 = 0; - for (crossHierarchyEdge$iterator = new ArrayList$1(edgeSegments); crossHierarchyEdge$iterator.i < crossHierarchyEdge$iterator.this$01.array.length;) { - crossHierarchyEdge = castTo($next_7(crossHierarchyEdge$iterator), 243); - if (crossHierarchyEdge.type_0 == ($clinit_PortType() , INPUT)) { - result = index_0 == 0?0:index_0 - 1; - break; - } - else - index_0 == edgeSegments.array.length - 1 && (result = index_0); - index_0 += 1; - } - return result; -} - -function $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, origEdge, oppositePort, portType, defaultExternalPort){ - var dummyEdge, dummyNode, externalPort, externalPortSide, mergeExternalPorts, parentEndPort, thickness; - mergeExternalPorts = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , MERGE_HIERARCHY_EDGES_0)))); - parentEndPort = null; - portType == ($clinit_PortType() , INPUT) && origEdge.source.owner == parentNode?(parentEndPort = origEdge.source):portType == OUTPUT && origEdge.target.owner == parentNode && (parentEndPort = origEdge.target); - externalPort = defaultExternalPort; - if (!externalPort || !mergeExternalPorts || !!parentEndPort) { - externalPortSide = ($clinit_PortSide() , UNDEFINED_5); - parentEndPort?(externalPortSide = parentEndPort.side):$isSideFixed(castTo($getProperty(parentNode, PORT_CONSTRAINTS_0), 98)) && (externalPortSide = portType == INPUT?WEST_2:EAST_2); - dummyNode = $createExternalPortDummy(this$static, graph, parentNode, portType, externalPortSide, origEdge); - dummyEdge = $createDummyEdge(($getGraph(parentNode) , origEdge)); - if (portType == INPUT) { - $setSource_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); - $setTarget_0(dummyEdge, oppositePort); - } - else { - $setSource_0(dummyEdge, oppositePort); - $setTarget_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); - } - externalPort = new CompoundGraphPreprocessor$ExternalPort(origEdge, dummyEdge, dummyNode, castTo($getProperty(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11), portType, !parentEndPort); - } - else { - $add_3(externalPort.origEdges, origEdge); - thickness = $wnd.Math.max($doubleValue(castToDouble($getProperty(externalPort.newEdge, EDGE_THICKNESS_0))), $doubleValue(castToDouble($getProperty(origEdge, EDGE_THICKNESS_0)))); - $setProperty_0(externalPort.newEdge, EDGE_THICKNESS_0, thickness); - } - $put(this$static.crossHierarchyMap, origEdge, new CrossHierarchyEdge(externalPort.newEdge, graph, portType)); - return externalPort; -} - -function $moveLabelsAndRemoveOriginalEdges(this$static, graph){ - var currLabel, edgeSegments, labelIterator, origEdge, origEdge$iterator, targetDummyEdgeIndex, targetSegment; - for (origEdge$iterator = $keySet(this$static.crossHierarchyMap).iterator_0(); origEdge$iterator.hasNext_0();) { - origEdge = castTo(origEdge$iterator.next_1(), 17); - if (origEdge.labels.array.length > 0) { - edgeSegments = new ArrayList_1(castTo($get(this$static.crossHierarchyMap, origEdge), 21)); - $clinit_Collections(); - $sort(edgeSegments, new CrossHierarchyEdgeComparator(graph)); - labelIterator = new AbstractList$ListIteratorImpl(origEdge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - currLabel = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - targetDummyEdgeIndex = -1; - switch (castTo($getProperty(currLabel, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272).ordinal) { - case 1: - targetDummyEdgeIndex = edgeSegments.array.length - 1; - break; - case 0: - targetDummyEdgeIndex = $getShallowestEdgeSegment(edgeSegments); - break; - case 2: - targetDummyEdgeIndex = 0; - } - if (targetDummyEdgeIndex != -1) { - targetSegment = (checkCriticalElementIndex(targetDummyEdgeIndex, edgeSegments.array.length) , castTo(edgeSegments.array[targetDummyEdgeIndex], 243)); - $add_3(targetSegment.newEdge.labels, currLabel); - castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , END_LABELS)); - castTo($getProperty($getGraph(targetSegment.newEdge.source.owner), GRAPH_PROPERTIES), 21).add_2(CENTER_LABELS); - $remove_8(labelIterator); - $setProperty_0(currLabel, ORIGINAL_LABEL_EDGE, origEdge); - } - } - } - $setSource_0(origEdge, null); - $setTarget_0(origEdge, null); - } -} - -function $process_1(this$static, graph, monitor){ - $begin(monitor, 'Compound graph preprocessor', 1); - this$static.crossHierarchyMap = new HashMultimap; - $transformHierarchyEdges(this$static, graph, null); - $moveLabelsAndRemoveOriginalEdges(this$static, graph); - $setSidesOfPortsToSidesOfDummyNodes(this$static); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP), this$static.crossHierarchyMap); - this$static.crossHierarchyMap = null; - $reset(this$static.dummyNodeMap); - $done_0(monitor); -} - -function $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts){ - var createdExternalPorts, currentExternalPort, externalPort, externalPort$iterator, externalPort$iterator0, inEdge, inEdge$iterator, newExternalPort, outEdge, outEdge$iterator, sourceNode, targetNode; - createdExternalPorts = new ArrayList; - for (externalPort$iterator0 = new ArrayList$1(containedExternalPorts); externalPort$iterator0.i < externalPort$iterator0.this$01.array.length;) { - externalPort = castTo($next_7(externalPort$iterator0), 441); - currentExternalPort = null; - if (externalPort.type_0 == ($clinit_PortType() , OUTPUT)) { - for (outEdge$iterator = new ArrayList$1(externalPort.origEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { - outEdge = castTo($next_7(outEdge$iterator), 17); - targetNode = outEdge.target.owner; - if ($getGraph(targetNode) == graph) { - $connectChild(this$static, graph, externalPort, outEdge, externalPort.dummyPort, outEdge.target); - } - else if (!parentNode || isDescendant(targetNode, parentNode)) { - $connectSiblings(this$static, graph, externalPort, containedExternalPorts, outEdge); - } - else { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, externalPort.dummyPort, OUTPUT, currentExternalPort); - newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalPort = newExternalPort); - } - } - } - else { - for (inEdge$iterator = new ArrayList$1(externalPort.origEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { - inEdge = castTo($next_7(inEdge$iterator), 17); - sourceNode = inEdge.source.owner; - if ($getGraph(sourceNode) == graph) { - $connectChild(this$static, graph, externalPort, inEdge, inEdge.source, externalPort.dummyPort); - } - else if (!parentNode || isDescendant(sourceNode, parentNode)) { - continue; - } - else { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, externalPort.dummyPort, INPUT, currentExternalPort); - newExternalPort != currentExternalPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalPort = newExternalPort); - } - } - } - } - for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { - externalPort = castTo($next_7(externalPort$iterator), 441); - $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); - externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); - } -} - -function $processInsideSelfLoops(this$static, nestedGraph, node){ - var dummyEdge, isInsideSelfLoop, isSelfLoop, lport, lport$iterator, outEdge, outEdge$array, outEdge$index, outEdge$max, outEdges, sourceExtPortDummy, sourcePort, targetExtPortDummy, targetPort; - if (!$booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { - return; - } - for (lport$iterator = new ArrayList$1(node.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { - lport = castTo($next_7(lport$iterator), 11); - outEdges = toEdgeArray(lport.outgoingEdges); - for (outEdge$array = outEdges , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - isSelfLoop = outEdge.target.owner == node; - isInsideSelfLoop = isSelfLoop && $booleanValue(castToBoolean($getProperty(outEdge, INSIDE_SELF_LOOPS_YO))); - if (isInsideSelfLoop) { - sourcePort = outEdge.source; - sourceExtPortDummy = castTo($get_10(this$static.dummyNodeMap, sourcePort), 10); - if (!sourceExtPortDummy) { - sourceExtPortDummy = createExternalPortDummy(sourcePort, ($clinit_PortConstraints() , FREE), sourcePort.side, -1, null, null, sourcePort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); - $setProperty_0(sourceExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), sourcePort); - $put_6(this$static.dummyNodeMap, sourcePort, sourceExtPortDummy); - $add_3(nestedGraph.layerlessNodes, sourceExtPortDummy); - } - targetPort = outEdge.target; - targetExtPortDummy = castTo($get_10(this$static.dummyNodeMap, targetPort), 10); - if (!targetExtPortDummy) { - targetExtPortDummy = createExternalPortDummy(targetPort, ($clinit_PortConstraints() , FREE), targetPort.side, 1, null, null, targetPort.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); - $setProperty_0(targetExtPortDummy, ($clinit_InternalProperties_1() , ORIGIN_0), targetPort); - $put_6(this$static.dummyNodeMap, targetPort, targetExtPortDummy); - $add_3(nestedGraph.layerlessNodes, targetExtPortDummy); - } - dummyEdge = $createDummyEdge(outEdge); - $setSource_0(dummyEdge, castTo($get_11(sourceExtPortDummy.ports, 0), 11)); - $setTarget_0(dummyEdge, castTo($get_11(targetExtPortDummy.ports, 0), 11)); - $put(this$static.crossHierarchyMap, outEdge, new CrossHierarchyEdge(dummyEdge, nestedGraph, ($clinit_PortType() , OUTPUT))); - castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); - } - } - } -} - -function $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts){ - var childNode, childNode$iterator, childPort, childPort$iterator, createdExternalPorts, currentExternalInputPort, currentExternalOutputPort, externalPort, externalPort$iterator, inEdge, inEdge$array, inEdge$index, inEdge$max, newExternalPort, outEdge, outEdge$array, outEdge$index, outEdge$max; - createdExternalPorts = new ArrayList; - for (childNode$iterator = new ArrayList$1(graph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { - childNode = castTo($next_7(childNode$iterator), 10); - for (childPort$iterator = new ArrayList$1(childNode.ports); childPort$iterator.i < childPort$iterator.this$01.array.length;) { - childPort = castTo($next_7(childPort$iterator), 11); - currentExternalOutputPort = null; - for (outEdge$array = toEdgeArray(childPort.outgoingEdges) , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - if (!isDescendant(outEdge.target.owner, parentNode)) { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, outEdge, outEdge.source, ($clinit_PortType() , OUTPUT), currentExternalOutputPort); - newExternalPort != currentExternalOutputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalOutputPort = newExternalPort); - } - } - currentExternalInputPort = null; - for (inEdge$array = toEdgeArray(childPort.incomingEdges) , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { - inEdge = inEdge$array[inEdge$index]; - if (!isDescendant(inEdge.source.owner, parentNode)) { - newExternalPort = $introduceHierarchicalEdgeSegment(this$static, graph, parentNode, inEdge, inEdge.target, ($clinit_PortType() , INPUT), currentExternalInputPort); - newExternalPort != currentExternalInputPort && (createdExternalPorts.array[createdExternalPorts.array.length] = newExternalPort , true); - newExternalPort.exported && (currentExternalInputPort = newExternalPort); - } - } - } - } - for (externalPort$iterator = new ArrayList$1(createdExternalPorts); externalPort$iterator.i < externalPort$iterator.this$01.array.length;) { - externalPort = castTo($next_7(externalPort$iterator), 441); - $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); - externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = externalPort , true); - } -} - -function $setSidesOfPortsToSidesOfDummyNodes(this$static){ - var dummyNode, e, e$iterator, externalPort; - for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.dummyNodeMap)).this$01); e$iterator.hasNext;) { - e = $next_4(e$iterator); - externalPort = castTo(e.getKey(), 11); - dummyNode = castTo(e.getValue(), 10); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), externalPort); - $setProperty_0(externalPort, PORT_DUMMY, dummyNode); - $setProperty_0(externalPort, INSIDE_CONNECTIONS, ($clinit_Boolean() , true)); - $setSide(externalPort, castTo($getProperty(dummyNode, EXT_PORT_SIDE), 61)); - $getProperty(dummyNode, EXT_PORT_SIDE); - $setProperty_0(externalPort.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); - castTo($getProperty($getGraph(externalPort.owner), GRAPH_PROPERTIES), 21).add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); - } -} - -function $transformHierarchyEdges(this$static, graph, parentNode){ - var childPorts, containedExternalPorts, dummyNode, dummyNodePort, dummyPortLabel, exportedExternalPorts, extPortLabel, extPortLabel$iterator, insidePart, insidePortLabels, nestedGraph, node, node$iterator, port, port$iterator, portConstraints, side; - containedExternalPorts = new ArrayList; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nestedGraph = node.nestedGraph; - if (nestedGraph) { - childPorts = $transformHierarchyEdges(this$static, nestedGraph, node); - $addAll_2(containedExternalPorts, childPorts); - $processInsideSelfLoops(this$static, nestedGraph, node); - if (castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - portConstraints = castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - insidePortLabels = castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 174).contains(($clinit_PortLabelPlacement() , INSIDE_0)); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - dummyNode = castTo($get_10(this$static.dummyNodeMap, port), 10); - if (!dummyNode) { - dummyNode = createExternalPortDummy(port, portConstraints, port.side, -(port.incomingEdges.array.length - port.outgoingEdges.array.length), null, new KVector, port.size_0, castTo($getProperty(nestedGraph, DIRECTION), 103), nestedGraph); - $setProperty_0(dummyNode, ORIGIN_0, port); - $put_6(this$static.dummyNodeMap, port, dummyNode); - $add_3(nestedGraph.layerlessNodes, dummyNode); - } - dummyNodePort = castTo($get_11(dummyNode.ports, 0), 11); - for (extPortLabel$iterator = new ArrayList$1(port.labels); extPortLabel$iterator.i < extPortLabel$iterator.this$01.array.length;) { - extPortLabel = castTo($next_7(extPortLabel$iterator), 70); - dummyPortLabel = new LLabel; - dummyPortLabel.size_0.x_0 = extPortLabel.size_0.x_0; - dummyPortLabel.size_0.y_0 = extPortLabel.size_0.y_0; - $add_3(dummyNodePort.labels, dummyPortLabel); - if (!insidePortLabels) { - side = port.side; - insidePart = 0; - isFixed(castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(extPortLabel.pos, extPortLabel.size_0, port.size_0, 0, side)); - portConstraints == ($clinit_PortConstraints() , FREE) || ($clinit_PortSide() , SIDES_EAST_WEST).contains(side)?(dummyPortLabel.size_0.x_0 = insidePart):(dummyPortLabel.size_0.y_0 = insidePart); - } - } - } - } - } - } - exportedExternalPorts = new ArrayList; - $processInnerHierarchicalEdgeSegments(this$static, graph, parentNode, containedExternalPorts, exportedExternalPorts); - !!parentNode && $processOuterHierarchicalEdgeSegments(this$static, graph, parentNode, exportedExternalPorts); - return exportedExternalPorts; -} - -function CompoundGraphPreprocessor(){ - this.dummyNodeMap = new HashMap; -} - -defineClass(1261, 1, $intern_105, CompoundGraphPreprocessor); -_.process = function process_0(graph, monitor){ - $process_1(this, castTo(graph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor', 1261); -function CompoundGraphPreprocessor$ExternalPort(origEdge, newEdge, dummyNode, dummyPort, portType, exported){ - this.origEdges = new ArrayList; - this.type_0 = ($clinit_PortType() , UNDEFINED_0); - $add_3(this.origEdges, origEdge); - this.newEdge = newEdge; - this.dummyNode = dummyNode; - this.dummyPort = dummyPort; - this.type_0 = portType; - this.exported = exported; -} - -defineClass(441, 1, {441:1}, CompoundGraphPreprocessor$ExternalPort); -_.exported = false; -var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor$ExternalPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor/ExternalPort', 441); -function $getActualSource(this$static){ - if (this$static.newEdge.source.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return castTo($getProperty(this$static.newEdge.source.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - } - return this$static.newEdge.source; -} - -function $getActualTarget(this$static){ - if (this$static.newEdge.target.owner.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return castTo($getProperty(this$static.newEdge.target.owner, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - } - return this$static.newEdge.target; -} - -function CrossHierarchyEdge(newEdge, graph, type_0){ - this.newEdge = newEdge; - this.graph_0 = graph; - this.type_0 = type_0; -} - -defineClass(243, 1, {243:1}, CrossHierarchyEdge); -_.toString_0 = function toString_86(){ - return $toString_3(this.type_0) + ':' + $toString_12(this.newEdge); -} -; -var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdge', 243); -function $compare_9(this$static, edge1, edge2){ - var level1, level2; - if (edge1.type_0 == ($clinit_PortType() , OUTPUT) && edge2.type_0 == INPUT) { - return -1; - } - else if (edge1.type_0 == INPUT && edge2.type_0 == OUTPUT) { - return 1; - } - level1 = hierarchyLevel(edge1.graph_0, this$static.graph_0); - level2 = hierarchyLevel(edge2.graph_0, this$static.graph_0); - return edge1.type_0 == OUTPUT?level2 - level1:level1 - level2; -} - -function CrossHierarchyEdgeComparator(graph){ - this.graph_0 = graph; -} - -function hierarchyLevel(nestedGraph, topLevelGraph){ - var currentGraph, currentNode, level; - currentGraph = nestedGraph; - level = 0; - do { - if (currentGraph == topLevelGraph) { - return level; - } - currentNode = currentGraph.parentNode; - if (!currentNode) { - throw toJs(new IllegalArgumentException); - } - currentGraph = $getGraph(currentNode); - ++level; - } - while (true); -} - -defineClass(763, 1, $intern_88, CrossHierarchyEdgeComparator); -_.compare_1 = function compare_40(edge1, edge2){ - return $compare_9(this, castTo(edge1, 243), castTo(edge2, 243)); -} -; -_.equals_0 = function equals_97(other){ - return this === other; -} -; -_.reversed = function reversed_32(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_compound_CrossHierarchyEdgeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CrossHierarchyEdgeComparator', 763); -function $getDesignation(this$static){ - var identifier; - identifier = getOriginIdentifier(this$static); - if (identifier) { - return identifier; - } - return null; -} - -defineClass(299, 134, {3:1, 299:1, 94:1, 134:1}); -_.id_0 = 0; -var Lorg_eclipse_elk_alg_layered_graph_LGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphElement', 299); -function $getDesignation_0(this$static){ - if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { - return castTo($get_11(this$static.labels, 0), 70).text_0; - } - return $getDesignation(this$static); -} - -function $getOther_1(this$static, node){ - if (node == this$static.source.owner) { - return this$static.target.owner; - } - else if (node == this$static.target.owner) { - return this$static.source.owner; - } - else { - throw toJs(new IllegalArgumentException_0("'node' must either be the source node or target node of the edge.")); - } -} - -function $getOther_2(this$static, port){ - if (port == this$static.source) { - return this$static.target; - } - else if (port == this$static.target) { - return this$static.source; - } - else { - throw toJs(new IllegalArgumentException_0("'port' must be either the source port or target port of the edge.")); - } -} - -function $isInLayerEdge(this$static){ - return !$isSelfLoop(this$static) && this$static.source.owner.layer == this$static.target.owner.layer; -} - -function $isSelfLoop(this$static){ - if (!this$static.source || !this$static.target) { - return false; - } - return !!this$static.source.owner && this$static.source.owner == this$static.target.owner; -} - -function $reverse_0(this$static, adaptPorts){ - var label_0, label$iterator, labelPlacement, oldSource, oldTarget, reversed; - oldSource = this$static.source; - oldTarget = this$static.target; - $setSource_0(this$static, null); - $setTarget_0(this$static, null); - adaptPorts && $booleanValue(castToBoolean($getProperty(oldTarget, ($clinit_InternalProperties_1() , INPUT_COLLECT))))?$setSource_0(this$static, provideCollectorPort(oldTarget.owner, ($clinit_PortType() , OUTPUT), ($clinit_PortSide() , EAST_2))):$setSource_0(this$static, oldTarget); - adaptPorts && $booleanValue(castToBoolean($getProperty(oldSource, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))?$setTarget_0(this$static, provideCollectorPort(oldSource.owner, ($clinit_PortType() , INPUT), ($clinit_PortSide() , WEST_2))):$setTarget_0(this$static, oldSource); - for (label$iterator = new ArrayList$1(this$static.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); - labelPlacement == ($clinit_EdgeLabelPlacement() , TAIL)?$setProperty_0(label_0, EDGE_LABELS_PLACEMENT, HEAD):labelPlacement == HEAD && $setProperty_0(label_0, EDGE_LABELS_PLACEMENT, TAIL); - } - reversed = $booleanValue(castToBoolean($getProperty(this$static, ($clinit_InternalProperties_1() , REVERSED)))); - $setProperty_0(this$static, REVERSED, ($clinit_Boolean() , reversed?false:true)); - this$static.bendPoints = reverse_3(this$static.bendPoints); -} - -function $setSource_0(this$static, source){ - !!this$static.source && $remove_12(this$static.source.outgoingEdges, this$static); - this$static.source = source; - !!this$static.source && $add_3(this$static.source.outgoingEdges, this$static); -} - -function $setTarget_0(this$static, target){ - !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); - this$static.target = target; - !!this$static.target && $add_3(this$static.target.incomingEdges, this$static); -} - -function $setTargetAndInsertAtIndex(this$static, targetPort, index_0){ - !!this$static.target && $remove_12(this$static.target.incomingEdges, this$static); - this$static.target = targetPort; - !!this$static.target && $add_2(this$static.target.incomingEdges, index_0, this$static); -} - -function $toString_12(this$static){ - var designation, result; - result = new StringBuilder; - result.string += 'e_'; - designation = $getDesignation_0(this$static); - designation != null && (result.string += '' + designation , result); - if (!!this$static.source && !!this$static.target) { - $append_11((result.string += ' ' , result), $getDesignation_3(this$static.source)); - $append_11($append_10((result.string += '[' , result), this$static.source.owner), ']'); - $append_11((result.string += ' -> ' , result), $getDesignation_3(this$static.target)); - $append_11($append_10((result.string += '[' , result), this$static.target.owner), ']'); - } - return result.string; -} - -function LEdge(){ - this.bendPoints = new KVectorChain; - this.labels = (checkNonnegative(3, 'initialArraySize') , new ArrayList_0(3)); -} - -defineClass(17, 299, {3:1, 17:1, 299:1, 94:1, 134:1}, LEdge); -_.toString_0 = function toString_87(){ - return $toString_12(this); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LEdge', 17); -function $toNodeArray(this$static){ - var layer, layerIndex, layerIter, lgraphArray; - lgraphArray = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, this$static.layers.array.length, 0, 2); - layerIter = new AbstractList$ListIteratorImpl(this$static.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - layerIndex = layerIter.i - 1; - lgraphArray[layerIndex] = toNodeArray(layer.nodes); - } - return lgraphArray; -} - -function LGraph(){ - this.size_0 = new KVector; - this.padding = new LPadding; - this.offset = new KVector; - this.layerlessNodes = new ArrayList; - this.layers = new ArrayList; -} - -defineClass(37, 299, {3:1, 20:1, 37:1, 299:1, 94:1, 134:1}, LGraph); -_.forEach_0 = function forEach_26(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_68(){ - return new ArrayList$1(this.layers); -} -; -_.toString_0 = function toString_88(){ - if (this.layers.array.length == 0) { - return 'G-unlayered' + $toString_2(this.layerlessNodes); - } - else if (this.layerlessNodes.array.length == 0) { - return 'G-layered' + $toString_2(this.layers); - } - return 'G[layerless' + $toString_2(this.layerlessNodes) + ', layers' + $toString_2(this.layers) + ']'; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraph', 37); -function $clinit_LGraphAdapters(){ - $clinit_LGraphAdapters = emptyMethod; - DEFAULT_PORTLIST_SORTER = new LGraphAdapters$PortComparator; -} - -var DEFAULT_PORTLIST_SORTER; -defineClass(657, 1, {}); -_.getPosition = function getPosition(){ - return this.element.pos; -} -; -_.getProperty = function getProperty_0(prop){ - return $getProperty(this.element, prop); -} -; -_.getSize = function getSize(){ - return this.element.size_0; -} -; -_.getVolatileId = function getVolatileId(){ - return this.element.id_0; -} -; -_.hasProperty = function hasProperty_0(prop){ - return $hasProperty(this.element, prop); -} -; -_.setPosition = function setPosition(pos){ - this.element.pos.x_0 = pos.x_0; - this.element.pos.y_0 = pos.y_0; -} -; -_.setSize = function setSize(size_0){ - this.element.size_0.x_0 = size_0.x_0; - this.element.size_0.y_0 = size_0.y_0; -} -; -_.setVolatileId = function setVolatileId(volatileId){ - this.element.id_0 = volatileId; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$AbstractLShapeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/AbstractLShapeAdapter', 657); -function LGraphAdapters$LEdgeAdapter(edge){ - this.element = edge; -} - -defineClass(577, 1, {839:1}, LGraphAdapters$LEdgeAdapter); -_.getLabels = function getLabels(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithCapacity(this.element.labels.array.length); - for (l$iterator = new ArrayList$1(this.element.labels); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 70); - $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.labelAdapters = null; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LEdgeAdapter', 577); -function LGraphAdapters$LGraphAdapter(element, transparentNorthSouthEdges, transparentCommentNodes, nodeFilter){ - this.element = element; - this.transparentNorthSouthEdges = transparentNorthSouthEdges; - this.transparentCommentNodes = transparentCommentNodes; - this.nodeFilter = nodeFilter; -} - -defineClass(656, 1, {}, LGraphAdapters$LGraphAdapter); -_.getNodes = function getNodes(){ - var comment, comment$iterator, l, l$iterator, n, n$iterator; - if (!this.nodeAdapters) { - this.nodeAdapters = new ArrayList; - for (l$iterator = new ArrayList$1(this.element.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (this.nodeFilter.test_0(n)) { - $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, n, this.transparentNorthSouthEdges)); - if (this.transparentCommentNodes) { - if ($hasProperty(n, ($clinit_InternalProperties_1() , TOP_COMMENTS))) { - for (comment$iterator = castTo($getProperty(n, TOP_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { - comment = castTo(comment$iterator.next_1(), 10); - $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); - } - } - if ($hasProperty(n, BOTTOM_COMMENTS)) { - for (comment$iterator = castTo($getProperty(n, BOTTOM_COMMENTS), 15).iterator_0(); comment$iterator.hasNext_0();) { - comment = castTo(comment$iterator.next_1(), 10); - $add_3(this.nodeAdapters, new LGraphAdapters$LNodeAdapter(this, comment, false)); - } - } - } - } - } - } - } - return this.nodeAdapters; -} -; -_.getPosition = function getPosition_0(){ - throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); -} -; -_.getProperty = function getProperty_1(prop){ - return $getProperty(this.element, prop); -} -; -_.getSize = function getSize_0(){ - return this.element.size_0; -} -; -_.getVolatileId = function getVolatileId_0(){ - return this.element.id_0; -} -; -_.hasProperty = function hasProperty_1(prop){ - return $hasProperty(this.element, prop); -} -; -_.setPosition = function setPosition_0(pos){ - throw toJs(new UnsupportedOperationException_0('Not supported by LGraph')); -} -; -_.setSize = function setSize_0(size_0){ - this.element.size_0.x_0 = size_0.x_0; - this.element.size_0.y_0 = size_0.y_0; -} -; -_.setVolatileId = function setVolatileId_0(volatileId){ - this.element.id_0 = volatileId; -} -; -_.nodeAdapters = null; -_.transparentCommentNodes = false; -_.transparentNorthSouthEdges = false; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LGraphAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LGraphAdapter', 656); -function LGraphAdapters$LLabelAdapter(element){ - this.element = element; -} - -defineClass(576, 657, {181:1}, LGraphAdapters$LLabelAdapter); -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LLabelAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LLabelAdapter', 576); -function $sortPortList(this$static, comparator){ - $isOrderFixed(castTo($getProperty(castTo(this$static.element, 10), ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) && ($clinit_Collections() , $sort(castTo(this$static.element, 10).ports, comparator)); -} - -function LGraphAdapters$LNodeAdapter(parent_0, element, transparentNorthSouthEdges){ - this.element = element; - this.parentGraphAdapter = parent_0; - this.transparentNorthSouthEdges = transparentNorthSouthEdges; -} - -defineClass(575, 657, {680:1}, LGraphAdapters$LNodeAdapter); -_.getGraph = function getGraph(){ - return this.parentGraphAdapter; -} -; -_.getIncomingEdges = function getIncomingEdges(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.getLabels = function getLabels_0(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 10).labels.array.length); - for (l$iterator = new ArrayList$1(castTo(this.element, 10).labels); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 70); - $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.getMargin = function getMargin(){ - var lmargins; - lmargins = castTo(this.element, 10).margin; - return new ElkMargin_1(lmargins.top_0, lmargins.right, lmargins.bottom, lmargins.left); -} -; -_.getOutgoingEdges = function getOutgoingEdges(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.getPorts = function getPorts(){ - var p, p$iterator; - if (!this.portAdapters) { - this.portAdapters = newArrayListWithCapacity(castTo(this.element, 10).ports.array.length); - for (p$iterator = new ArrayList$1(castTo(this.element, 10).ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - $add_3(this.portAdapters, new LGraphAdapters$LPortAdapter(p, this.transparentNorthSouthEdges)); - } - } - return this.portAdapters; -} -; -_.isCompoundNode = function isCompoundNode(){ - return $booleanValue(castToBoolean($getProperty(castTo(this.element, 10), ($clinit_InternalProperties_1() , COMPOUND_NODE)))); -} -; -_.setMargin = function setMargin(margin){ - castTo(this.element, 10).margin.left = margin.left; - castTo(this.element, 10).margin.top_0 = margin.top_0; - castTo(this.element, 10).margin.right = margin.right; - castTo(this.element, 10).margin.bottom = margin.bottom; -} -; -_.setPadding = function setPadding(padding){ - castTo(this.element, 10).padding.left = padding.left; - castTo(this.element, 10).padding.top_0 = padding.top_0; - castTo(this.element, 10).padding.right = padding.right; - castTo(this.element, 10).padding.bottom = padding.bottom; -} -; -_.sortPortList = function sortPortList(){ - $sortPortList(this, ($clinit_LGraphAdapters() , DEFAULT_PORTLIST_SORTER)); -} -; -_.labelAdapters = null; -_.parentGraphAdapter = null; -_.portAdapters = null; -_.transparentNorthSouthEdges = false; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LNodeAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LNodeAdapter', 575); -function LGraphAdapters$LPortAdapter(element, transparentNorthSouthEdges){ - this.element = element; - this.transparentNorthSouthEdges = transparentNorthSouthEdges; -} - -defineClass(1722, 657, {838:1}, LGraphAdapters$LPortAdapter); -_.getIncomingEdges = function getIncomingEdges_0(){ - var e, e$iterator, e$iterator0, portDummy; - if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - else if (!this.incomingEdgeAdapters) { - this.incomingEdgeAdapters = new ArrayList; - for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).incomingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { - e = castTo($next_7(e$iterator0), 17); - $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - if (this.transparentNorthSouthEdges) { - portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (portDummy) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - } - } - } - return this.incomingEdgeAdapters; -} -; -_.getLabels = function getLabels_1(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 11).labels.array.length); - for (l$iterator = new ArrayList$1(castTo(this.element, 11).labels); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 70); - $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.getOutgoingEdges = function getOutgoingEdges_0(){ - var e, e$iterator, e$iterator0, portDummy; - if (this.transparentNorthSouthEdges && castTo(this.element, 11).owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - else if (!this.outgoingEdgeAdapters) { - this.outgoingEdgeAdapters = new ArrayList; - for (e$iterator0 = new ArrayList$1(castTo(this.element, 11).outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { - e = castTo($next_7(e$iterator0), 17); - $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - if (this.transparentNorthSouthEdges) { - portDummy = castTo($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (portDummy) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(portDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); - } - } - } - } - return this.outgoingEdgeAdapters; -} -; -_.getSide = function getSide(){ - return castTo(this.element, 11).side; -} -; -_.hasCompoundConnections = function hasCompoundConnections(){ - return $booleanValue(castToBoolean($getProperty(castTo(this.element, 11), ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))); -} -; -_.incomingEdgeAdapters = null; -_.labelAdapters = null; -_.outgoingEdgeAdapters = null; -_.transparentNorthSouthEdges = false; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LPortAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LPortAdapter', 1722); -function $compare_10(port1, port2){ - var index1, index2, indexDifference, ordinalDifference; - ordinalDifference = port1.side.ordinal - port2.side.ordinal; - if (ordinalDifference != 0) { - return ordinalDifference; - } - index1 = castTo($getProperty(port1, ($clinit_LayeredOptions() , PORT_INDEX)), 19); - index2 = castTo($getProperty(port2, PORT_INDEX), 19); - if (!!index1 && !!index2) { - indexDifference = index1.value_0 - index2.value_0; - if (indexDifference != 0) { - return indexDifference; - } - } - switch (port1.side.ordinal) { - case 1: - return compare_4(port1.pos.x_0, port2.pos.x_0); - case 2: - return compare_4(port1.pos.y_0, port2.pos.y_0); - case 3: - return compare_4(port2.pos.x_0, port1.pos.x_0); - case 4: - return compare_4(port2.pos.y_0, port1.pos.y_0); - default:throw toJs(new IllegalStateException_0('Port side is undefined')); - } -} - -function LGraphAdapters$PortComparator(){ -} - -defineClass(1723, 1, $intern_88, LGraphAdapters$PortComparator); -_.compare_1 = function compare_41(port1, port2){ - return $compare_10(castTo(port1, 11), castTo(port2, 11)); -} -; -_.equals_0 = function equals_98(other){ - return this === other; -} -; -_.reversed = function reversed_33(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/PortComparator', 1723); -function LGraphAdapters$lambda$0$Type(){ -} - -defineClass(804, 1, $intern_39, LGraphAdapters$lambda$0$Type); -_.test_0 = function test_17(arg0){ - return castTo(arg0, 10) , $clinit_LGraphAdapters() , true; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/lambda$0$Type', 804); -function calcPortOffset(port, side){ - var node; - node = port.owner; - switch (side.ordinal) { - case 1: - return -(port.pos.y_0 + port.size_0.y_0); - case 2: - return port.pos.x_0 - node.size_0.x_0; - case 3: - return port.pos.y_0 - node.size_0.y_0; - case 4: - return -(port.pos.x_0 + port.size_0.x_0); - } - return 0; -} - -function calcPortSide(port, direction){ - var height, heightPercent, node, nodeHeight, nodeWidth, width_0, widthPercent, xpos, ypos; - node = port.owner; - nodeWidth = node.size_0.x_0; - nodeHeight = node.size_0.y_0; - if (nodeWidth <= 0 && nodeHeight <= 0) { - return $clinit_PortSide() , UNDEFINED_5; - } - xpos = port.pos.x_0; - ypos = port.pos.y_0; - width_0 = port.size_0.x_0; - height = port.size_0.y_0; - switch (direction.ordinal) { - case 2: - case 1: - if (xpos < 0) { - return $clinit_PortSide() , WEST_2; - } - else if (xpos + width_0 > nodeWidth) { - return $clinit_PortSide() , EAST_2; - } - - break; - case 4: - case 3: - if (ypos < 0) { - return $clinit_PortSide() , NORTH_3; - } - else if (ypos + height > nodeHeight) { - return $clinit_PortSide() , SOUTH_2; - } - - } - widthPercent = (xpos + width_0 / 2) / nodeWidth; - heightPercent = (ypos + height / 2) / nodeHeight; - return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); -} - -function centerPoint(point, boundary, side){ - switch (side.ordinal) { - case 1: - point.x_0 = boundary.x_0 / 2; - point.y_0 = 0; - break; - case 2: - point.x_0 = boundary.x_0; - point.y_0 = boundary.y_0 / 2; - break; - case 3: - point.x_0 = boundary.x_0 / 2; - point.y_0 = boundary.y_0; - break; - case 4: - point.x_0 = 0; - point.y_0 = boundary.y_0 / 2; - } -} - -function changeCoordSystem(point, oldGraph, newGraph){ - var graph, node, padding; - if (oldGraph == newGraph) { - return; - } - graph = oldGraph; - do { - $add_19(point, graph.offset); - node = graph.parentNode; - if (node) { - padding = graph.padding; - $add_18(point, padding.left, padding.top_0); - $add_19(point, node.pos); - graph = $getGraph(node); - } - } - while (node); - graph = newGraph; - do { - $sub_0(point, graph.offset); - node = graph.parentNode; - if (node) { - padding = graph.padding; - $sub(point, padding.left, padding.top_0); - $sub_0(point, node.pos); - graph = $getGraph(node); - } - } - while (node); -} - -function createExternalPortDummy(propertyHolder, portConstraints, portSide, netFlow, portNodeSize, portPosition, portSize, layoutDirection, layeredGraph){ - var anchor, dummy, dummyPort, explicitAnchor, finalExternalPortSide, informationAboutIt, portBorderOffset; - finalExternalPortSide = portSide; - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIZE), portSize); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - portBorderOffset = $doubleValue(castToDouble(propertyHolder.getProperty(PORT_BORDER_OFFSET))); - $setProperty_0(dummy, PORT_BORDER_OFFSET, portBorderOffset); - dummyPort = new LPort; - $setNode(dummyPort, dummy); - if (!(portConstraints != FREE && portConstraints != UNDEFINED_4)) { - netFlow >= 0?(finalExternalPortSide = fromDirection(layoutDirection)):(finalExternalPortSide = $opposed(fromDirection(layoutDirection))); - propertyHolder.setProperty(PORT_SIDE, finalExternalPortSide); - } - anchor = new KVector; - explicitAnchor = false; - if (propertyHolder.hasProperty(PORT_ANCHOR)) { - $set_9(anchor, castTo(propertyHolder.getProperty(PORT_ANCHOR), 8)); - explicitAnchor = true; - } - else { - $set_8(anchor, portSize.x_0 / 2, portSize.y_0 / 2); - } - switch (finalExternalPortSide.ordinal) { - case 4: - $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); - $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , OUTGOING_ONLY)); - dummy.size_0.y_0 = portSize.y_0; - portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , EAST_2)); - explicitAnchor || (anchor.x_0 = portSize.x_0); - anchor.x_0 -= portSize.x_0; - break; - case 2: - $setProperty_0(dummy, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); - $setProperty_0(dummy, EDGE_CONSTRAINT, ($clinit_EdgeConstraint() , INCOMING_ONLY)); - dummy.size_0.y_0 = portSize.y_0; - portBorderOffset < 0 && (dummy.size_0.x_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , WEST_2)); - explicitAnchor || (anchor.x_0 = 0); - break; - case 1: - $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); - dummy.size_0.x_0 = portSize.x_0; - portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , SOUTH_2)); - explicitAnchor || (anchor.y_0 = portSize.y_0); - anchor.y_0 -= portSize.y_0; - break; - case 3: - $setProperty_0(dummy, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); - dummy.size_0.x_0 = portSize.x_0; - portBorderOffset < 0 && (dummy.size_0.y_0 = -portBorderOffset); - $setSide(dummyPort, ($clinit_PortSide() , NORTH_3)); - explicitAnchor || (anchor.y_0 = 0); - } - $set_9(dummyPort.pos, anchor); - $setProperty_0(dummy, PORT_ANCHOR, anchor); - if (portConstraints == FIXED_ORDER || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { - informationAboutIt = 0; - if (portConstraints == FIXED_ORDER && propertyHolder.hasProperty(PORT_INDEX)) { - switch (finalExternalPortSide.ordinal) { - case 1: - case 2: - informationAboutIt = castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; - break; - case 3: - case 4: - informationAboutIt = -castTo(propertyHolder.getProperty(PORT_INDEX), 19).value_0; - } - } - else { - switch (finalExternalPortSide.ordinal) { - case 4: - case 2: - informationAboutIt = portPosition.y_0; - portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.y_0); - break; - case 1: - case 3: - informationAboutIt = portPosition.x_0; - portConstraints == FIXED_RATIO && (informationAboutIt /= portNodeSize.x_0); - } - } - $setProperty_0(dummy, PORT_RATIO_OR_POSITION_0, informationAboutIt); - } - $setProperty_0(dummy, EXT_PORT_SIDE, finalExternalPortSide); - return dummy; -} - -function createPort(node, endPoint, type_0, layeredGraph){ - var defaultSide, direction, graphProperties, mergePorts, port, portSide, pos; - direction = getDirection_1(layeredGraph); - mergePorts = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , MERGE_EDGES_0)))); - if ((mergePorts || $booleanValue(castToBoolean($getProperty(node, HYPERNODE)))) && !$isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98))) { - defaultSide = fromDirection(direction); - port = provideCollectorPort(node, type_0, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); - } - else { - port = new LPort; - $setNode(port, node); - if (endPoint) { - pos = port.pos; - pos.x_0 = endPoint.x_0 - node.pos.x_0; - pos.y_0 = endPoint.y_0 - node.pos.y_0; - $bound(pos, 0, 0, node.size_0.x_0, node.size_0.y_0); - $setSide(port, calcPortSide(port, direction)); - } - else { - defaultSide = fromDirection(direction); - $setSide(port, type_0 == ($clinit_PortType() , OUTPUT)?defaultSide:$opposed(defaultSide)); - } - graphProperties = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - portSide = port.side; - switch (direction.ordinal) { - case 2: - case 1: - (portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - break; - case 4: - case 3: - (portSide == ($clinit_PortSide() , EAST_2) || portSide == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - } - } - return port; -} - -function findMaxNonDummyNodeWidth(layer){ - var maxWidth, node, node$iterator, width_0; - if ($isVertical(castTo($getProperty(layer.owner, ($clinit_LayeredOptions() , DIRECTION)), 103))) { - return 0; - } - maxWidth = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - width_0 = node.size_0.x_0; - maxWidth = $wnd.Math.max(maxWidth, width_0); - } - } - return maxWidth; -} - -function getDirection_1(graph){ - var aspectRatio, direction; - direction = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); - if (direction == ($clinit_Direction_0() , UNDEFINED_2)) { - aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); - return aspectRatio >= 1?RIGHT_6:DOWN_1; - } - return direction; -} - -function getExternalPortPosition(graph, portDummy, portWidth, portHeight){ - var graphOffset, graphSize, padding, portOffset, portPosition; - portPosition = new KVector_2(portDummy.pos); - portPosition.x_0 += portDummy.size_0.x_0 / 2; - portPosition.y_0 += portDummy.size_0.y_0 / 2; - portOffset = $doubleValue(castToDouble($getProperty(portDummy, ($clinit_LayeredOptions() , PORT_BORDER_OFFSET)))); - graphSize = graph.size_0; - padding = graph.padding; - graphOffset = graph.offset; - switch (castTo($getProperty(portDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; - portPosition.y_0 = -portHeight - portOffset; - portDummy.pos.y_0 = -(padding.top_0 + portOffset + graphOffset.y_0); - break; - case 2: - portPosition.x_0 = graphSize.x_0 + padding.left + padding.right + portOffset; - portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; - portDummy.pos.x_0 = graphSize.x_0 + padding.right + portOffset - graphOffset.x_0; - break; - case 3: - portPosition.x_0 += padding.left + graphOffset.x_0 - portWidth / 2; - portPosition.y_0 = graphSize.y_0 + padding.top_0 + padding.bottom + portOffset; - portDummy.pos.y_0 = graphSize.y_0 + padding.bottom + portOffset - graphOffset.y_0; - break; - case 4: - portPosition.x_0 = -portWidth - portOffset; - portPosition.y_0 += padding.top_0 + graphOffset.y_0 - portHeight / 2; - portDummy.pos.x_0 = -(padding.left + portOffset + graphOffset.x_0); - } - return portPosition; -} - -function getIndividualOrInherited(node, property){ - var individualSpacings, result; - result = null; - if ($hasProperty(node, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { - individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL_0), 94); - individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); - } - result == null && !!$getGraph(node) && (result = $getProperty($getGraph(node), property)); - return result; -} - -function getMinimalModelOrder(graph){ - var node, node$iterator, order; - order = $intern_0; - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (order = $wnd.Math.min(order, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0)); - } - return order; -} - -function initializePort(port, portConstraints, direction, anchorPos){ - var nodeHeight, nodeWidth, portAnchor, portSide, portSize, ratio; - portSide = port.side; - if (portSide == ($clinit_PortSide() , UNDEFINED_5) && portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != ($clinit_PortConstraints() , UNDEFINED_4)) { - portSide = calcPortSide(port, direction); - $setSide(port, portSide); - !(!port.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):port.propertyMap).containsKey(($clinit_LayeredOptions() , PORT_BORDER_OFFSET)) && portSide != UNDEFINED_5 && (port.pos.x_0 != 0 || port.pos.y_0 != 0) && $setProperty_0(port, PORT_BORDER_OFFSET, calcPortOffset(port, portSide)); - } - if (portConstraints == ($clinit_PortConstraints() , FIXED_RATIO)) { - ratio = 0; - switch (portSide.ordinal) { - case 1: - case 3: - nodeWidth = port.owner.size_0.x_0; - nodeWidth > 0 && (ratio = port.pos.x_0 / nodeWidth); - break; - case 2: - case 4: - nodeHeight = port.owner.size_0.y_0; - nodeHeight > 0 && (ratio = port.pos.y_0 / nodeHeight); - } - $setProperty_0(port, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0), ratio); - } - portSize = port.size_0; - portAnchor = port.anchor; - if (anchorPos) { - portAnchor.x_0 = anchorPos.x_0; - portAnchor.y_0 = anchorPos.y_0; - port.explicitlySuppliedPortAnchor = true; - } - else if (portConstraints != FREE && portConstraints != UNDEFINED_4 && portSide != UNDEFINED_5) { - switch (portSide.ordinal) { - case 1: - portAnchor.x_0 = portSize.x_0 / 2; - break; - case 2: - portAnchor.x_0 = portSize.x_0; - portAnchor.y_0 = portSize.y_0 / 2; - break; - case 3: - portAnchor.x_0 = portSize.x_0 / 2; - portAnchor.y_0 = portSize.y_0; - break; - case 4: - portAnchor.y_0 = portSize.y_0 / 2; - } - } - else { - portAnchor.x_0 = portSize.x_0 / 2; - portAnchor.y_0 = portSize.y_0 / 2; - } -} - -function isDescendant(child, parent_0){ - var current, next; - current = child; - next = $getGraph(current).parentNode; - while (next) { - current = next; - if (current == parent_0) { - return true; - } - next = $getGraph(current).parentNode; - } - return false; -} - -function offsetGraph(graph, offsetx, offsety){ - var edge, edge$iterator, graphOffset, junctionPoints, label_0, label$iterator, node, node$iterator, port, port$iterator; - graphOffset = new KVector_1(offsetx, offsety); - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_19(node.pos, graphOffset); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $offset_2(edge.bendPoints, graphOffset); - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $offset_2(junctionPoints, graphOffset); - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $add_19(label_0.pos, graphOffset); - } - } - } - } -} - -function placeNodesHorizontally(layer, xoffset){ - var alignment, inports, leftMargin, maxLeftMargin, maxRightMargin, node, node$iterator, node$iterator0, nodeSize, outports, port, port$iterator, ratio, rightMargin, size_0, xpos; - maxLeftMargin = 0; - maxRightMargin = 0; - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - maxLeftMargin = $wnd.Math.max(maxLeftMargin, node.margin.left); - maxRightMargin = $wnd.Math.max(maxRightMargin, node.margin.right); - } - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - alignment = castTo($getProperty(node, ($clinit_LayeredOptions() , ALIGNMENT)), 248); - switch (alignment.ordinal) { - case 1: - ratio = 0; - break; - case 2: - ratio = 1; - break; - case 5: - ratio = 0.5; - break; - default:inports = 0; - outports = 0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.incomingEdges.array.length == 0 || ++inports; - port.outgoingEdges.array.length == 0 || ++outports; - } - - inports + outports == 0?(ratio = 0.5):(ratio = outports / (inports + outports)); - } - size_0 = layer.size_0; - nodeSize = node.size_0.x_0; - xpos = (size_0.x_0 - nodeSize) * ratio; - ratio > 0.5?(xpos -= maxRightMargin * 2 * (ratio - 0.5)):ratio < 0.5 && (xpos += maxLeftMargin * 2 * (0.5 - ratio)); - leftMargin = node.margin.left; - xpos < leftMargin && (xpos = leftMargin); - rightMargin = node.margin.right; - xpos > size_0.x_0 - rightMargin - nodeSize && (xpos = size_0.x_0 - rightMargin - nodeSize); - node.pos.x_0 = xoffset + xpos; - } -} - -function provideCollectorPort(node, type_0, side){ - var inport, inport$iterator, outport, outport$iterator, port; - port = null; - switch (type_0.ordinal) { - case 1: - for (inport$iterator = new ArrayList$1(node.ports); inport$iterator.i < inport$iterator.this$01.array.length;) { - inport = castTo($next_7(inport$iterator), 11); - if ($booleanValue(castToBoolean($getProperty(inport, ($clinit_InternalProperties_1() , INPUT_COLLECT))))) { - return inport; - } - } - - port = new LPort; - $setProperty_0(port, ($clinit_InternalProperties_1() , INPUT_COLLECT), ($clinit_Boolean() , true)); - break; - case 2: - for (outport$iterator = new ArrayList$1(node.ports); outport$iterator.i < outport$iterator.this$01.array.length;) { - outport = castTo($next_7(outport$iterator), 11); - if ($booleanValue(castToBoolean($getProperty(outport, ($clinit_InternalProperties_1() , OUTPUT_COLLECT))))) { - return outport; - } - } - - port = new LPort; - $setProperty_0(port, ($clinit_InternalProperties_1() , OUTPUT_COLLECT), ($clinit_Boolean() , true)); - } - if (port) { - $setNode(port, node); - $setSide(port, side); - centerPoint(port.pos, node.size_0, side); - } - return port; -} - -function resizeNode(node, newSize, movePorts){ - var all, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, oldSize, port, port$iterator, widthDiff, widthPercent, widthRatio; - oldSize = new KVector_2(node.size_0); - widthRatio = newSize.x_0 / oldSize.x_0; - heightRatio = newSize.y_0 / oldSize.y_0; - widthDiff = newSize.x_0 - oldSize.x_0; - heightDiff = newSize.y_0 - oldSize.y_0; - if (movePorts) { - fixedPorts = maskUndefined($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 1: - fixedPorts || (port.pos.x_0 *= widthRatio); - break; - case 2: - port.pos.x_0 += widthDiff; - fixedPorts || (port.pos.y_0 *= heightRatio); - break; - case 3: - fixedPorts || (port.pos.x_0 *= widthRatio); - port.pos.y_0 += heightDiff; - break; - case 4: - fixedPorts || (port.pos.y_0 *= heightRatio); - } - } - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - midx = label_0.pos.x_0 + label_0.size_0.x_0 / 2; - midy = label_0.pos.y_0 + label_0.size_0.y_0 / 2; - widthPercent = midx / oldSize.x_0; - heightPercent = midy / oldSize.y_0; - if (widthPercent + heightPercent >= 1) { - if (widthPercent - heightPercent > 0 && midy >= 0) { - label_0.pos.x_0 += widthDiff; - label_0.pos.y_0 += heightDiff * heightPercent; - } - else if (widthPercent - heightPercent < 0 && midx >= 0) { - label_0.pos.x_0 += widthDiff * widthPercent; - label_0.pos.y_0 += heightDiff; - } - } - } - node.size_0.x_0 = newSize.x_0; - node.size_0.y_0 = newSize.y_0; - $setProperty_0(node, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); -} - -function toEdgeArray(edges){ - return castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); -} - -function toNodeArray(nodes){ - return castTo($toArray_2(nodes, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodes.array.length, 0, 1)), 193); -} - -function toPortArray(ports){ - return castTo($toArray_2(ports, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, $intern_108, 11, ports.array.length, 0, 1)), 1943); -} - -function LShape(){ - this.pos = new KVector; - this.size_0 = new KVector; -} - -defineClass(392, 299, {3:1, 299:1, 392:1, 94:1, 134:1}); -var Lorg_eclipse_elk_alg_layered_graph_LShape_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LShape', 392); -function $getDesignation_1(this$static){ - if (this$static.text_0) { - return this$static.text_0; - } - return $getDesignation(this$static); -} - -function LLabel(){ - LLabel_0.call(this, ''); -} - -function LLabel_0(thetext){ - LShape.call(this); - this.text_0 = thetext; -} - -defineClass(70, 392, {3:1, 299:1, 70:1, 392:1, 94:1, 134:1}, LLabel, LLabel_0); -_.toString_0 = function toString_89(){ - var designation; - designation = $getDesignation_1(this); - return designation == null?'label':'l_' + designation; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LLabel_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LLabel', 70); -function $$init_7(this$static){ -} - -function $add_15(this$static, other){ - this$static.left += other.left; - this$static.right += other.right; - this$static.top_0 += other.top_0; - this$static.bottom += other.bottom; - return this$static; -} - -function $copy(this$static, other){ - this$static.left = other.left; - this$static.right = other.right; - this$static.top_0 = other.top_0; - this$static.bottom = other.bottom; - return this$static; -} - -function $set_7(this$static, newTop, newRight, newBottom, newLeft){ - this$static.top_0 = newTop; - this$static.right = newRight; - this$static.bottom = newBottom; - this$static.left = newLeft; -} - -function $setBottom(this$static, bottom){ - this$static.bottom = bottom; -} - -function $setLeft(this$static, left){ - this$static.left = left; -} - -function $setRight(this$static, right){ - this$static.right = right; -} - -function $setTop(this$static, top_0){ - this$static.top_0 = top_0; -} - -function Spacing(){ - $$init_7(this); -} - -function Spacing_0(top_0, right, bottom, left){ - $$init_7(this); - $set_7(this, top_0, right, bottom, left); -} - -function isdelim(c, delims){ - var i; - for (i = 0; i < delims.length; i++) { - if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { - return true; - } - } - return false; -} - -defineClass(207, 1, {3:1, 4:1, 207:1, 414:1}); -_.equals_0 = function equals_99(obj){ - var other; - if (instanceOf(obj, 207)) { - other = castTo(obj, 207); - return this.top_0 == other.top_0 && this.bottom == other.bottom && this.left == other.left && this.right == other.right; - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_61(){ - var code1, code2; - code1 = $hashCode_0(this.left) << 16; - code1 |= $hashCode_0(this.bottom) & $intern_46; - code2 = $hashCode_0(this.right) << 16; - code2 |= $hashCode_0(this.top_0) & $intern_46; - return code1 ^ code2; -} -; -_.parse_0 = function parse_0(string){ - var end, exception, key, keyandvalue, start_0, token, token$array, token$index, token$max, tokens, value_0; - start_0 = 0; - while (start_0 < string.length && isdelim((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { - ++start_0; - } - end = string.length; - while (end > 0 && isdelim((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { - --end; - } - if (start_0 < end) { - tokens = $split_0(string.substr(start_0, end - start_0), ',|;'); - try { - for (token$array = tokens , token$index = 0 , token$max = token$array.length; token$index < token$max; ++token$index) { - token = token$array[token$index]; - keyandvalue = $split_0(token, '='); - if (keyandvalue.length != 2) { - throw toJs(new IllegalArgumentException_0('Expecting a list of key-value pairs.')); - } - key = $trim(keyandvalue[0]); - value_0 = __parseAndValidateDouble($trim(keyandvalue[1])); - $equals_5(key, 'top')?(this.top_0 = value_0):$equals_5(key, 'left')?(this.left = value_0):$equals_5(key, 'bottom')?(this.bottom = value_0):$equals_5(key, 'right') && (this.right = value_0); - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); - } - else - throw toJs($e0); - } - } -} -; -_.toString_0 = function toString_90(){ - return '[top=' + this.top_0 + ',left=' + this.left + ',bottom=' + this.bottom + ',right=' + this.right + ']'; -} -; -_.bottom = 0; -_.left = 0; -_.right = 0; -_.top_0 = 0; -var Lorg_eclipse_elk_core_math_Spacing_2_classLit = createForClass('org.eclipse.elk.core.math', 'Spacing', 207); -function ElkMargin(){ - Spacing.call(this); -} - -function ElkMargin_0(){ - Spacing_0.call(this, 0, 0, 0, 0); -} - -function ElkMargin_1(top_0, right, bottom, left){ - Spacing_0.call(this, top_0, right, bottom, left); -} - -function ElkMargin_2(other){ - Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); -} - -defineClass(142, 207, $intern_109, ElkMargin, ElkMargin_0, ElkMargin_1, ElkMargin_2); -var Lorg_eclipse_elk_core_math_ElkMargin_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkMargin', 142); -function LMargin(){ - ElkMargin.call(this); -} - -defineClass(651, 142, $intern_109, LMargin); -var Lorg_eclipse_elk_alg_layered_graph_LMargin_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LMargin', 651); -function $borderToContentAreaCoordinates(this$static, horizontal, vertical){ - var graphPadding, offset, pos, thegraph; - thegraph = $getGraph(this$static); - graphPadding = thegraph.padding; - offset = thegraph.offset; - pos = this$static.pos; - horizontal && (pos.x_0 = pos.x_0 - graphPadding.left - offset.x_0); - vertical && (pos.y_0 = pos.y_0 - graphPadding.top_0 - offset.y_0); -} - -function $findPortIndices(this$static){ - var currentIndex, currentSide, firstIndexForCurrentSide, port; - this$static.portSideIndices = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 290)); - firstIndexForCurrentSide = 0; - currentSide = ($clinit_PortSide() , NORTH_3); - currentIndex = 0; - for (; currentIndex < this$static.ports.array.length; currentIndex++) { - port = castTo($get_11(this$static.ports, currentIndex), 11); - if (port.side != currentSide) { - firstIndexForCurrentSide != currentIndex && $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); - currentSide = port.side; - firstIndexForCurrentSide = currentIndex; - } - } - $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); -} - -function $getConnectedEdges_0(this$static){ - var iterables, port, port$iterator; - iterables = new ArrayList; - for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $add_3(iterables, port.connectedEdges); - } - return checkNotNull(iterables) , new FluentIterable$2(iterables); -} - -function $getDesignation_2(this$static){ - var id_0; - if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { - return castTo($get_11(this$static.labels, 0), 70).text_0; - } - id_0 = $getDesignation(this$static); - if (id_0 != null) { - return id_0; - } - return '' + (!this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0)); -} - -function $getGraph(this$static){ - if (!this$static.graph_0 && !!this$static.layer) { - return this$static.layer.owner; - } - return this$static.graph_0; -} - -function $getIncomingEdges(this$static){ - var iterables, port, port$iterator; - iterables = new ArrayList; - for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $add_3(iterables, port.incomingEdges); - } - return checkNotNull(iterables) , new FluentIterable$2(iterables); -} - -function $getIndex(this$static){ - return !this$static.layer?-1:$indexOf_3(this$static.layer.nodes, this$static, 0); -} - -function $getInteractiveReferencePoint(this$static){ - var nodePos, nodeSize; - switch (castTo($getProperty($getGraph(this$static), ($clinit_LayeredOptions() , INTERACTIVE_REFERENCE_POINT_0)), 420).ordinal) { - case 0: - nodePos = this$static.pos; - nodeSize = this$static.size_0; - return new KVector_1(nodePos.x_0 + nodeSize.x_0 / 2, nodePos.y_0 + nodeSize.y_0 / 2); - case 1: - return new KVector_2(this$static.pos); - default:return null; - } -} - -function $getOutgoingEdges(this$static){ - var iterables, port, port$iterator; - iterables = new ArrayList; - for (port$iterator = new ArrayList$1(this$static.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $add_3(iterables, port.outgoingEdges); - } - return checkNotNull(iterables) , new FluentIterable$2(iterables); -} - -function $getPortSideView(this$static, side){ - var indices; - this$static.portSidesCached || $findPortIndices(this$static); - indices = castTo($get_14(this$static.portSideIndices, side), 46); - return !indices?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):new AbstractList$SubList(this$static.ports, castTo(indices.first, 19).value_0, castTo(indices.second, 19).value_0); -} - -function $getPorts(this$static, portType){ - switch (portType.ordinal) { - case 1: - return filter_0(this$static.ports, ($clinit_LPort() , INPUT_PREDICATE)); - case 2: - return filter_0(this$static.ports, ($clinit_LPort() , OUTPUT_PREDICATE)); - default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $getPorts_0(this$static, portType, side){ - var sidePredicate, typePredicate; - typePredicate = null; - switch (portType.ordinal) { - case 1: - typePredicate = ($clinit_LPort() , INPUT_PREDICATE); - break; - case 2: - typePredicate = ($clinit_LPort() , OUTPUT_PREDICATE); - } - sidePredicate = null; - switch (side.ordinal) { - case 1: - sidePredicate = ($clinit_LPort() , NORTH_PREDICATE); - break; - case 2: - sidePredicate = ($clinit_LPort() , EAST_PREDICATE); - break; - case 3: - sidePredicate = ($clinit_LPort() , SOUTH_PREDICATE); - break; - case 4: - sidePredicate = ($clinit_LPort() , WEST_PREDICATE); - } - return !!typePredicate && !!sidePredicate?filter_0(this$static.ports, new Predicates$AndPredicate(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_common_base_Predicate_2_classLit, 1), $intern_2, 169, 0, [castTo(checkNotNull(typePredicate), 169), castTo(checkNotNull(sidePredicate), 169)])))):($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); -} - -function $getPorts_1(this$static, side){ - switch (side.ordinal) { - case 1: - return filter_0(this$static.ports, ($clinit_LPort() , NORTH_PREDICATE)); - case 2: - return filter_0(this$static.ports, ($clinit_LPort() , EAST_PREDICATE)); - case 3: - return filter_0(this$static.ports, ($clinit_LPort() , SOUTH_PREDICATE)); - case 4: - return filter_0(this$static.ports, ($clinit_LPort() , WEST_PREDICATE)); - default:return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $setLayer(this$static, index_0, newlayer){ - if (!!newlayer && (index_0 < 0 || index_0 > newlayer.nodes.array.length)) { - throw toJs(new IllegalArgumentException_0('index must be >= 0 and <= layer node count')); - } - !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); - this$static.layer = newlayer; - !!newlayer && $add_2(newlayer.nodes, index_0, this$static); -} - -function $setLayer_0(this$static, thelayer){ - !!this$static.layer && $remove_12(this$static.layer.nodes, this$static); - this$static.layer = thelayer; - !!this$static.layer && $add_3(this$static.layer.nodes, this$static); -} - -function $setType(this$static, type_0){ - this$static.type_0 = type_0; -} - -function $toString_13(this$static){ - var result; - result = new StringBuilder; - result.string += 'n'; - this$static.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $append_11($append_11((result.string += '(' , result), $toString_3(this$static.type_0).toLowerCase()), ')'); - $append_11((result.string += '_' , result), $getDesignation_2(this$static)); - return result.string; -} - -function LNode(graph){ - LShape.call(this); - this.type_0 = ($clinit_LNode$NodeType() , NORMAL); - this.ports = (checkNonnegative(6, 'initialArraySize') , new ArrayList_0(6)); - this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); - this.margin = new LMargin; - this.padding = new LPadding; - this.graph_0 = graph; -} - -defineClass(10, 392, {3:1, 299:1, 10:1, 392:1, 94:1, 134:1}, LNode); -_.toString_0 = function toString_91(){ - return $toString_13(this); -} -; -_.portSidesCached = false; -var Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LNode', 10); -function $clinit_LNode$NodeType(){ - $clinit_LNode$NodeType = emptyMethod; - NORMAL = new LNode$NodeType('NORMAL', 0); - LONG_EDGE = new LNode$NodeType('LONG_EDGE', 1); - EXTERNAL_PORT = new LNode$NodeType('EXTERNAL_PORT', 2); - NORTH_SOUTH_PORT = new LNode$NodeType('NORTH_SOUTH_PORT', 3); - LABEL = new LNode$NodeType('LABEL', 4); - BREAKING_POINT = new LNode$NodeType('BREAKING_POINT', 5); -} - -function LNode$NodeType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_30(name_0){ - $clinit_LNode$NodeType(); - return valueOf(($clinit_LNode$NodeType$Map() , $MAP_18), name_0); -} - -function values_36(){ - $clinit_LNode$NodeType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]); -} - -defineClass(267, 22, {3:1, 35:1, 22:1, 267:1}, LNode$NodeType); -var BREAKING_POINT, EXTERNAL_PORT, LABEL, LONG_EDGE, NORMAL, NORTH_SOUTH_PORT; -var Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.graph', 'LNode/NodeType', 267, Ljava_lang_Enum_2_classLit, values_36, valueOf_30); -function $clinit_LNode$NodeType$Map(){ - $clinit_LNode$NodeType$Map = emptyMethod; - $MAP_18 = createValueOfMap(($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]))); -} - -var $MAP_18; -function ElkPadding(){ - Spacing.call(this); -} - -function ElkPadding_0(any){ - Spacing_0.call(this, any, any, any, any); -} - -function ElkPadding_1(other){ - Spacing_0.call(this, other.top_0, other.right, other.bottom, other.left); -} - -defineClass(116, 207, $intern_110, ElkPadding, ElkPadding_0, ElkPadding_1); -var Lorg_eclipse_elk_core_math_ElkPadding_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkPadding', 116); -function LPadding(){ - ElkPadding.call(this); -} - -defineClass(764, 116, $intern_110, LPadding); -var Lorg_eclipse_elk_alg_layered_graph_LPadding_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPadding', 764); -function $clinit_LPort(){ - $clinit_LPort = emptyMethod; - OUTPUT_PREDICATE = new LPort$lambda$1$Type; - INPUT_PREDICATE = new LPort$lambda$0$Type; - NORTH_PREDICATE = new LPort$lambda$2$Type; - EAST_PREDICATE = new LPort$lambda$3$Type; - SOUTH_PREDICATE = new LPort$lambda$4$Type; - WEST_PREDICATE = new LPort$lambda$5$Type; -} - -function $getAbsoluteAnchor(this$static){ - return sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [this$static.owner.pos, this$static.pos, this$static.anchor])); -} - -function $getDegree(this$static){ - return this$static.incomingEdges.array.length + this$static.outgoingEdges.array.length; -} - -function $getDesignation_3(this$static){ - var id_0; - if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { - return castTo($get_11(this$static.labels, 0), 70).text_0; - } - id_0 = $getDesignation(this$static); - if (id_0 != null) { - return id_0; - } - return '' + (!this$static.owner?-1:$indexOf_3(this$static.owner.ports, this$static, 0)); -} - -function $getNetFlow(this$static){ - return this$static.incomingEdges.array.length - this$static.outgoingEdges.array.length; -} - -function $setConnectedToExternalNodes(this$static, conn){ - this$static.connectedToExternalNodes = conn; -} - -function $setNode(this$static, node){ - !!this$static.owner && $remove_12(this$static.owner.ports, this$static); - this$static.owner = node; - !!this$static.owner && $add_3(this$static.owner.ports, this$static); -} - -function $setSide(this$static, theside){ - if (!theside) { - throw toJs(new NullPointerException); - } - this$static.side = theside; - if (!this$static.explicitlySuppliedPortAnchor) { - switch (this$static.side.ordinal) { - case 1: - this$static.anchor.x_0 = this$static.size_0.x_0 / 2; - this$static.anchor.y_0 = 0; - break; - case 2: - this$static.anchor.x_0 = this$static.size_0.x_0; - this$static.anchor.y_0 = this$static.size_0.y_0 / 2; - break; - case 3: - this$static.anchor.x_0 = this$static.size_0.x_0 / 2; - this$static.anchor.y_0 = this$static.size_0.y_0; - break; - case 4: - this$static.anchor.x_0 = 0; - this$static.anchor.y_0 = this$static.size_0.y_0 / 2; - } - } -} - -function LPort(){ - $clinit_LPort(); - LShape.call(this); - this.side = ($clinit_PortSide() , UNDEFINED_5); - this.anchor = new KVector; - new LMargin; - this.labels = (checkNonnegative(2, 'initialArraySize') , new ArrayList_0(2)); - this.incomingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); - this.outgoingEdges = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); - this.connectedEdges = new LPort$CombineIter(this.incomingEdges, this.outgoingEdges); -} - -defineClass(11, 392, {3:1, 299:1, 11:1, 392:1, 94:1, 134:1}, LPort); -_.toString_0 = function toString_92(){ - var result, source, target; - result = new StringBuilder; - $append_11((result.string += 'p_' , result), $getDesignation_3(this)); - !!this.owner && $append_11($append_10((result.string += '[' , result), this.owner), ']'); - if (this.incomingEdges.array.length == 1 && this.outgoingEdges.array.length == 0 && castTo($get_11(this.incomingEdges, 0), 17).source != this) { - source = castTo($get_11(this.incomingEdges, 0), 17).source; - $append_11((result.string += ' << ' , result), $getDesignation_3(source)); - $append_11($append_10((result.string += '[' , result), source.owner), ']'); - } - if (this.incomingEdges.array.length == 0 && this.outgoingEdges.array.length == 1 && castTo($get_11(this.outgoingEdges, 0), 17).target != this) { - target = castTo($get_11(this.outgoingEdges, 0), 17).target; - $append_11((result.string += ' >> ' , result), $getDesignation_3(target)); - $append_11($append_10((result.string += '[' , result), target.owner), ']'); - } - return result.string; -} -; -_.connectedToExternalNodes = true; -_.explicitlySuppliedPortAnchor = false; -var EAST_PREDICATE, INPUT_PREDICATE, NORTH_PREDICATE, OUTPUT_PREDICATE, SOUTH_PREDICATE, WEST_PREDICATE; -var Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort', 11); -function LPort$1(this$0){ - this.this$01 = this$0; -} - -defineClass(397, 1, $intern_23, LPort$1); -_.forEach_0 = function forEach_27(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_69(){ - var edgesIter; - edgesIter = new ArrayList$1(this.this$01.incomingEdges); - return new LPort$1$1(edgesIter); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1', 397); -function LPort$1$1(val$edgesIter){ - this.val$edgesIter2 = val$edgesIter; -} - -defineClass(1290, 1, $intern_6, LPort$1$1); -_.forEachRemaining = function forEachRemaining_47(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_37(){ - return castTo($next_7(this.val$edgesIter2), 17).source; -} -; -_.hasNext_0 = function hasNext_36(){ - return $hasNext_3(this.val$edgesIter2); -} -; -_.remove = function remove_92(){ - $remove_13(this.val$edgesIter2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$1$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/1/1', 1290); -function LPort$2(this$0){ - this.this$01 = this$0; -} - -defineClass(359, 1, $intern_23, LPort$2); -_.forEach_0 = function forEach_28(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_70(){ - var edgesIter; - return edgesIter = new ArrayList$1(this.this$01.outgoingEdges) , new LPort$2$1(edgesIter); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2', 359); -function LPort$2$1(val$edgesIter){ - this.val$edgesIter2 = val$edgesIter; -} - -defineClass(762, 1, $intern_6, LPort$2$1); -_.forEachRemaining = function forEachRemaining_48(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_38(){ - return castTo($next_7(this.val$edgesIter2), 17).target; -} -; -_.hasNext_0 = function hasNext_37(){ - return $hasNext_3(this.val$edgesIter2); -} -; -_.remove = function remove_93(){ - $remove_13(this.val$edgesIter2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$2$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/2/1', 762); -function LPort$CombineIter(firstIterable, secondIterable){ - this.firstIterable = firstIterable; - this.secondIterable = secondIterable; -} - -defineClass(1283, 1, $intern_23, LPort$CombineIter); -_.forEach_0 = function forEach_29(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_71(){ - return new LPort$CombineIter$1(this); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter', 1283); -function $hasNext_6(this$static){ - return $hasNext_3(this$static.firstIterator) || $hasNext_3(this$static.secondIterator); -} - -function LPort$CombineIter$1(this$1){ - this.this$11 = this$1; - this.firstIterator = new ArrayList$1(this.this$11.firstIterable); - this.secondIterator = new ArrayList$1(this.this$11.secondIterable); -} - -defineClass(201, 1, $intern_6, LPort$CombineIter$1); -_.forEachRemaining = function forEachRemaining_49(consumer){ - $forEachRemaining(this, consumer); -} -; -_.remove = function remove_94(){ - $remove_21(); -} -; -_.hasNext_0 = function hasNext_38(){ - return $hasNext_6(this); -} -; -_.next_1 = function next_39(){ - return $hasNext_3(this.firstIterator)?$next_7(this.firstIterator):$next_7(this.secondIterator); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter/1', 201); -function $apply_14(arg0){ - return $clinit_LPort() , castTo(arg0, 11).incomingEdges.array.length != 0; -} - -function LPort$lambda$0$Type(){ -} - -defineClass(1285, 1, $intern_89, LPort$lambda$0$Type); -_.apply_1 = function apply_64(arg0){ - return $apply_14(arg0); -} -; -_.equals_0 = function equals_100(other){ - return this === other; -} -; -_.test_0 = function test_18(input_0){ - return $clinit_LPort() , castTo(input_0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$0$Type', 1285); -function $apply_15(arg0){ - return $clinit_LPort() , castTo(arg0, 11).outgoingEdges.array.length != 0; -} - -function LPort$lambda$1$Type(){ -} - -defineClass(1284, 1, $intern_89, LPort$lambda$1$Type); -_.apply_1 = function apply_65(arg0){ - return $apply_15(arg0); -} -; -_.equals_0 = function equals_101(other){ - return this === other; -} -; -_.test_0 = function test_19(input_0){ - return $clinit_LPort() , castTo(input_0, 11).outgoingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$1$Type', 1284); -function LPort$lambda$2$Type(){ -} - -defineClass(1286, 1, $intern_89, LPort$lambda$2$Type); -_.apply_1 = function apply_66(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); -} -; -_.equals_0 = function equals_102(other){ - return this === other; -} -; -_.test_0 = function test_20(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , NORTH_3); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$2$Type', 1286); -function LPort$lambda$3$Type(){ -} - -defineClass(1287, 1, $intern_89, LPort$lambda$3$Type); -_.apply_1 = function apply_67(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); -} -; -_.equals_0 = function equals_103(other){ - return this === other; -} -; -_.test_0 = function test_21(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , EAST_2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$3$Type', 1287); -function LPort$lambda$4$Type(){ -} - -defineClass(1288, 1, $intern_89, LPort$lambda$4$Type); -_.apply_1 = function apply_68(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); -} -; -_.equals_0 = function equals_104(other){ - return this === other; -} -; -_.test_0 = function test_22(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , SOUTH_2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$4$Type', 1288); -function LPort$lambda$5$Type(){ -} - -defineClass(1289, 1, $intern_89, LPort$lambda$5$Type); -_.apply_1 = function apply_69(arg0){ - return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); -} -; -_.equals_0 = function equals_105(other){ - return this === other; -} -; -_.test_0 = function test_23(input_0){ - return $clinit_LPort() , castTo(input_0, 11).side == ($clinit_PortSide() , WEST_2); -} -; -var Lorg_eclipse_elk_alg_layered_graph_LPort$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/lambda$5$Type', 1289); -function $getIndex_0(this$static){ - return $indexOf_3(this$static.owner.layers, this$static, 0); -} - -function Layer(graph){ - this.size_0 = new KVector; - this.nodes = new ArrayList; - this.owner = graph; -} - -defineClass(29, 299, {3:1, 20:1, 299:1, 29:1, 94:1, 134:1}, Layer); -_.forEach_0 = function forEach_30(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_72(){ - return new ArrayList$1(this.nodes); -} -; -_.toString_0 = function toString_93(){ - return 'L_' + $indexOf_3(this.owner.layers, this, 0) + $toString_2(this.nodes); -} -; -var Lorg_eclipse_elk_alg_layered_graph_Layer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'Layer', 29); -function $calculateMinimumGraphSize(elkgraph, lgraph){ - var configuredMinSize, graphAdapter, minSize, nodeAdapter, sizeConstraints; - if (!$getParent_2(elkgraph)) { - return; - } - sizeConstraints = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174); - maskUndefined($getProperty_0(elkgraph, PORT_CONSTRAINTS_0)) === maskUndefined(($clinit_PortConstraints() , UNDEFINED_4)) && $setProperty_1(elkgraph, PORT_CONSTRAINTS_0, FREE); - graphAdapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))); - nodeAdapter = new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph); - minSize = process(graphAdapter, nodeAdapter, false, true); - $add_5(sizeConstraints, ($clinit_SizeConstraint() , MINIMUM_SIZE)); - configuredMinSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); - configuredMinSize.x_0 = $wnd.Math.max(minSize.x_0, configuredMinSize.x_0); - configuredMinSize.y_0 = $wnd.Math.max(minSize.y_0, configuredMinSize.y_0); -} - -function $calculateNetFlow_0(elkport){ - var elkgraph, incomingEdge, incomingEdge$iterator, inputPortVote, insideSelfLoopsEnabled, isInsideSelfLoop, isSelfLoop, outgoingEdge, outgoingEdge$iterator, outputPortVote, sourceNode, targetNode; - elkgraph = $getParent_3(elkport); - insideSelfLoopsEnabled = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); - outputPortVote = 0; - inputPortVote = 0; - for (outgoingEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outgoingEdge$iterator.cursor != outgoingEdge$iterator.this$01_2.size_1();) { - outgoingEdge = castTo($doNext(outgoingEdge$iterator), 79); - isSelfLoop = $isSelfloop(outgoingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(outgoingEdge, INSIDE_SELF_LOOPS_YO))); - targetNode = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); - isSelfLoop && isInsideSelfLoop?++inputPortVote:isSelfLoop && !isInsideSelfLoop?++outputPortVote:$getParent_2(targetNode) == elkgraph || targetNode == elkgraph?++inputPortVote:++outputPortVote; - } - for (incomingEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); incomingEdge$iterator.cursor != incomingEdge$iterator.this$01_2.size_1();) { - incomingEdge = castTo($doNext(incomingEdge$iterator), 79); - isSelfLoop = $isSelfloop(incomingEdge); - isInsideSelfLoop = isSelfLoop && insideSelfLoopsEnabled && $booleanValue(castToBoolean($getProperty_0(incomingEdge, INSIDE_SELF_LOOPS_YO))); - sourceNode = connectableShapeToNode(castTo($get_20((!incomingEdge.sources && (incomingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, incomingEdge, 4, 7)) , incomingEdge.sources), 0), 82)); - isSelfLoop && isInsideSelfLoop?++outputPortVote:isSelfLoop && !isInsideSelfLoop?++inputPortVote:$getParent_2(sourceNode) == elkgraph || sourceNode == elkgraph?++outputPortVote:++inputPortVote; - } - return outputPortVote - inputPortVote; -} - -function $checkEdgeValidity(edge){ - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0) { - throw toJs(new UnsupportedGraphException('Edges must have a source.')); - } - else if ((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { - throw toJs(new UnsupportedGraphException('Edges must have a target.')); - } - else { - !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); - if (!(edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1))) { - throw toJs(new UnsupportedGraphException('Hyperedges are not supported.')); - } - } -} - -function $checkExternalPorts(elkgraph, graphProperties){ - var connectsToChild, elkedge, elkedge$iterator, elkport, enableSelfLoops, externalPortEdges, hasExternalPorts, hasHyperedges, isInsideSelfLoop, portIterator, portLabelPlacement; - enableSelfLoops = $booleanValue(castToBoolean($getProperty_0(elkgraph, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))); - portLabelPlacement = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21); - hasExternalPorts = false; - hasHyperedges = false; - portIterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); - while (portIterator.cursor != portIterator.this$01_2.size_1() && (!hasExternalPorts || !hasHyperedges)) { - elkport = castTo($doNext(portIterator), 118); - externalPortEdges = 0; - for (elkedge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges), (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)]))); $hasNext_1(elkedge$iterator);) { - elkedge = castTo($next_0(elkedge$iterator), 79); - isInsideSelfLoop = enableSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - connectsToChild = $contains_11((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), elkport)?elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))):elkgraph == $getParent_2(connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82))); - if (isInsideSelfLoop || connectsToChild) { - ++externalPortEdges; - if (externalPortEdges > 1) { - break; - } - } - } - externalPortEdges > 0?(hasExternalPorts = true):portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0)) && (!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels).size_0 > 0 && (hasExternalPorts = true); - externalPortEdges > 1 && (hasHyperedges = true); - } - hasExternalPorts && graphProperties.add_2(($clinit_GraphProperties() , EXTERNAL_PORTS)); - hasHyperedges && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); -} - -function $createLGraph(elkgraph){ - var all, lPadding, lgraph, nodeLabelpadding, nodePadding, root; - lgraph = new LGraph; - $copyProperties(lgraph, elkgraph); - maskUndefined($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION))) === maskUndefined(($clinit_Direction_0() , UNDEFINED_2)) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); - if ($getProperty(lgraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER)) == null) { - root = castTo(getRootContainer(elkgraph), 160); - $setProperty_0(lgraph, LABEL_MANAGER, throwClassCastExceptionUnlessNull(root.getProperty(LABEL_MANAGER))); - } - $setProperty_0(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0), elkgraph); - $setProperty_0(lgraph, GRAPH_PROPERTIES, (all = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); - nodeLabelpadding = computeInsideNodeLabelPadding((!$getParent_2(elkgraph)?null:($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph))) , $clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkNodeAdapter(!$getParent_2(elkgraph)?null:new ElkGraphAdapters$ElkGraphAdapter($getParent_2(elkgraph)), elkgraph)), RIGHT_6); - nodePadding = castTo($getProperty(lgraph, PADDING_1), 116); - lPadding = lgraph.padding; - $add_15(lPadding, nodePadding); - $add_15(lPadding, nodeLabelpadding); - return lgraph; -} - -function $ensureDefinedPortSide(lgraph, elkport){ - var layoutDirection, netFlow, portConstraints, portSide; - layoutDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); - portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); - portConstraints = castTo($getProperty(lgraph, PORT_CONSTRAINTS_0), 98); - if (portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4) { - if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { - portSide = calcPortSide_0(elkport, layoutDirection); - portSide == UNDEFINED_5 && (portSide = fromDirection(layoutDirection)); - } - } - else { - netFlow = $calculateNetFlow_0(elkport); - netFlow > 0?(portSide = fromDirection(layoutDirection)):(portSide = $opposed(fromDirection(layoutDirection))); - } - $setProperty_1(elkport, PORT_SIDE, portSide); -} - -function $findCoordinateSystemOrigin(this$static, elkedge, topLevelElkGraph, topLevelLGraph){ - var lgraph, lnode, origin_0, source, target; - source = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); - target = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); - if ($getParent_2(source) == $getParent_2(target)) { - return null; - } - if (isDescendant_0(target, source)) { - return null; - } - origin_0 = $getContainingNode(elkedge); - if (origin_0 == topLevelElkGraph) { - return topLevelLGraph; - } - else { - lnode = castTo($get_10(this$static.nodeAndPortMap, origin_0), 10); - if (lnode) { - lgraph = lnode.nestedGraph; - if (lgraph) { - return lgraph; - } - } - } - return null; -} - -function $hasInsideSelfLoops(elknode){ - var edge, edge$iterator; - if ($booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) { - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - if ($isSelfloop(edge)) { - if ($booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO)))) { - return true; - } - } - } - } - return false; -} - -function $importFlatGraph(this$static, elkgraph, lgraph){ - var child, child$iterator, connectsSiblings, connectsToGraph, elkedge, elkedge$iterator, elkedge$iterator0, enableInsideSelfLoops, index_0, isInsideSelfLoop, isToBeLaidOut, source, target; - index_0 = 0; - for (child$iterator = new AbstractEList$EIterator((!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - if (!$booleanValue(castToBoolean($getProperty_0(child, ($clinit_LayeredOptions() , NO_LAYOUT))))) { - if ((maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(child, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)))) { - $setProperty_1(child, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); - ++index_0; - } - $transformNode(this$static, child, lgraph); - } - } - index_0 = 0; - for (elkedge$iterator0 = new AbstractEList$EIterator((!elkgraph.containedEdges && (elkgraph.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkgraph, 12, 3)) , elkgraph.containedEdges)); elkedge$iterator0.cursor != elkedge$iterator0.this$01_2.size_1();) { - elkedge = castTo($doNext(elkedge$iterator0), 79); - if (maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { - $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); - ++index_0; - } - source = getSourceNode(elkedge); - target = getTargetNode_0(elkedge); - enableInsideSelfLoops = $booleanValue(castToBoolean($getProperty_0(source, INSIDE_SELF_LOOPS_ACTIVATE))); - isToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))); - isInsideSelfLoop = enableInsideSelfLoops && $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - connectsSiblings = $getParent_2(source) == elkgraph && $getParent_2(source) == $getParent_2(target); - connectsToGraph = ($getParent_2(source) == elkgraph && target == elkgraph) ^ ($getParent_2(target) == elkgraph && source == elkgraph); - isToBeLaidOut && !isInsideSelfLoop && (connectsToGraph || connectsSiblings) && $transformEdge(this$static, elkedge, elkgraph, lgraph); - } - if ($getParent_2(elkgraph)) { - for (elkedge$iterator = new AbstractEList$EIterator($getContainedEdges($getParent_2(elkgraph))); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { - elkedge = castTo($doNext(elkedge$iterator), 79); - source = getSourceNode(elkedge); - if (source == elkgraph && $isSelfloop(elkedge)) { - isInsideSelfLoop = $booleanValue(castToBoolean($getProperty_0(source, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE)))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - isInsideSelfLoop && $transformEdge(this$static, elkedge, elkgraph, lgraph); - } - } - } -} - -function $importGraph_1(this$static, elkgraph){ - var elkport, elkport$iterator, graphProperties, topLevelGraph; - topLevelGraph = $createLGraph(elkgraph); - $forEach_3(new StreamImpl(null, (!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , new Spliterators$IteratorSpliterator(elkgraph.ports, 16))), new ElkGraphImporter$lambda$0$Type(topLevelGraph)); - graphProperties = castTo($getProperty(topLevelGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - $checkExternalPorts(elkgraph, graphProperties); - if (graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - for (elkport$iterator = new AbstractEList$EIterator((!elkgraph.ports && (elkgraph.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elkgraph, 9, 9)) , elkgraph.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { - elkport = castTo($doNext(elkport$iterator), 118); - $transformExternalPort(this$static, elkgraph, topLevelGraph, elkport); - } - } - castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).size_1() != 0 && $calculateMinimumGraphSize(elkgraph, topLevelGraph); - $booleanValue(castToBoolean($getProperty(topLevelGraph, PARTITIONING_ACTIVATE))) && graphProperties.add_2(PARTITIONS); - $hasProperty(topLevelGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(topLevelGraph, SPACING_BASE_VALUE_0)))), topLevelGraph); - maskUndefined($getProperty_0(elkgraph, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN))?$importHierarchicalGraph(this$static, elkgraph, topLevelGraph):$importFlatGraph(this$static, elkgraph, topLevelGraph); - return topLevelGraph; -} - -function $importHierarchicalGraph(this$static, elkgraph, lgraph){ - var elkChildGraphNode, elkChildGraphNode$iterator, elkGraphNode, elkGraphQueue, elkedge, elkedge$iterator, elknode, finalNestedGraph, hasChildren, hasHierarchyHandlingEnabled, hasInsideSelfLoops, index_0, isInsideSelfLoop, isNodeToBeLaidOut, ledge, lnode, nestedGraph, parentElkGraph, parentGraphDirection, parentLGraph, parentLNode, partOfSameLayoutRun, sourceNode, targetNode, usesElkLayered; - elkGraphQueue = new LinkedList; - parentGraphDirection = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , DIRECTION)), 103); - index_0 = 0; - $addAll(elkGraphQueue, (!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); - while (elkGraphQueue.size_0 != 0) { - elknode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); - (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elknode, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); - isNodeToBeLaidOut = !$booleanValue(castToBoolean($getProperty_0(elknode, NO_LAYOUT))); - if (isNodeToBeLaidOut) { - hasChildren = (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0; - hasInsideSelfLoops = $hasInsideSelfLoops(elknode); - hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elknode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); - usesElkLayered = !$hasProperty_0(elknode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elknode, ALGORITHM)), 'org.eclipse.elk.layered'); - nestedGraph = null; - if (usesElkLayered && hasHierarchyHandlingEnabled && (hasChildren || hasInsideSelfLoops)) { - nestedGraph = $createLGraph(elknode); - $setProperty_0(nestedGraph, DIRECTION, parentGraphDirection); - $hasProperty(nestedGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(nestedGraph, SPACING_BASE_VALUE_0)))), nestedGraph); - if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0) { - finalNestedGraph = nestedGraph; - $forEach_3(new StreamImpl(null, (!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , new Spliterators$IteratorSpliterator(elknode.ports, 16))), new ElkGraphImporter$lambda$1$Type(finalNestedGraph)); - $calculateMinimumGraphSize(elknode, nestedGraph); - } - } - parentLGraph = lgraph; - parentLNode = castTo($get_10(this$static.nodeAndPortMap, $getParent_2(elknode)), 10); - !!parentLNode && (parentLGraph = parentLNode.nestedGraph); - lnode = $transformNode(this$static, elknode, parentLGraph); - if (nestedGraph) { - lnode.nestedGraph = nestedGraph; - nestedGraph.parentNode = lnode; - $addAll(elkGraphQueue, (!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children)); - } - } - } - index_0 = 0; - $addNode_0(elkGraphQueue, elkgraph, elkGraphQueue.tail.prev, elkGraphQueue.tail); - while (elkGraphQueue.size_0 != 0) { - elkGraphNode = castTo(elkGraphQueue.size_0 == 0?null:(checkCriticalElement(elkGraphQueue.size_0 != 0) , $removeNode_0(elkGraphQueue, elkGraphQueue.header.next_0)), 33); - for (elkedge$iterator = new AbstractEList$EIterator((!elkGraphNode.containedEdges && (elkGraphNode.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkGraphNode, 12, 3)) , elkGraphNode.containedEdges)); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { - elkedge = castTo($doNext(elkedge$iterator), 79); - $checkEdgeValidity(elkedge); - (maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , MODEL_ORDER)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , GREEDY_MODEL_ORDER)) || $booleanValue(castToBoolean($getProperty_0(elkgraph, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || maskUndefined($getProperty_0(elkgraph, CONSIDER_MODEL_ORDER_COMPONENTS_0)) !== maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) && $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0++)); - sourceNode = connectableShapeToNode(castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); - targetNode = connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); - if ($booleanValue(castToBoolean($getProperty_0(elkedge, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(sourceNode, NO_LAYOUT))) || $booleanValue(castToBoolean($getProperty_0(targetNode, NO_LAYOUT)))) { - continue; - } - isInsideSelfLoop = $isSelfloop(elkedge) && $booleanValue(castToBoolean($getProperty_0(sourceNode, INSIDE_SELF_LOOPS_ACTIVATE))) && $booleanValue(castToBoolean($getProperty_0(elkedge, INSIDE_SELF_LOOPS_YO))); - parentElkGraph = elkGraphNode; - isInsideSelfLoop || isDescendant_0(targetNode, sourceNode)?(parentElkGraph = sourceNode):isDescendant_0(sourceNode, targetNode) && (parentElkGraph = targetNode); - parentLGraph = lgraph; - parentLNode = castTo($get_10(this$static.nodeAndPortMap, parentElkGraph), 10); - !!parentLNode && (parentLGraph = parentLNode.nestedGraph); - ledge = $transformEdge(this$static, elkedge, parentElkGraph, parentLGraph); - $setProperty_0(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN), $findCoordinateSystemOrigin(this$static, elkedge, elkgraph, lgraph)); - } - hasHierarchyHandlingEnabled = maskUndefined($getProperty_0(elkGraphNode, HIERARCHY_HANDLING)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); - if (hasHierarchyHandlingEnabled) { - for (elkChildGraphNode$iterator = new AbstractEList$EIterator((!elkGraphNode.children && (elkGraphNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkGraphNode, 10, 11)) , elkGraphNode.children)); elkChildGraphNode$iterator.cursor != elkChildGraphNode$iterator.this$01_2.size_1();) { - elkChildGraphNode = castTo($doNext(elkChildGraphNode$iterator), 33); - usesElkLayered = !$hasProperty_0(elkChildGraphNode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elkChildGraphNode, ALGORITHM)), 'org.eclipse.elk.layered'); - partOfSameLayoutRun = maskUndefined($getProperty_0(elkChildGraphNode, HIERARCHY_HANDLING)) === maskUndefined(INCLUDE_CHILDREN); - usesElkLayered && partOfSameLayoutRun && ($addNode_0(elkGraphQueue, elkChildGraphNode, elkGraphQueue.tail.prev, elkGraphQueue.tail) , true); - } - } - } -} - -function $isConnectedToExternalNodes(elkport){ - var inEdge, inEdge$iterator, outEdge, outEdge$iterator, parent_0, sourceNode, targetNode; - parent_0 = $getParent_3(elkport); - for (outEdge$iterator = new AbstractEList$EIterator((!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , elkport.outgoingEdges)); outEdge$iterator.cursor != outEdge$iterator.this$01_2.size_1();) { - outEdge = castTo($doNext(outEdge$iterator), 79); - targetNode = connectableShapeToNode(castTo($get_20((!outEdge.targets && (outEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outEdge, 5, 8)) , outEdge.targets), 0), 82)); - if (!isDescendant_0(targetNode, parent_0)) { - return true; - } - } - for (inEdge$iterator = new AbstractEList$EIterator((!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , elkport.incomingEdges)); inEdge$iterator.cursor != inEdge$iterator.this$01_2.size_1();) { - inEdge = castTo($doNext(inEdge$iterator), 79); - sourceNode = connectableShapeToNode(castTo($get_20((!inEdge.sources && (inEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, inEdge, 4, 7)) , inEdge.sources), 0), 82)); - if (!isDescendant_0(sourceNode, parent_0)) { - return true; - } - } - return false; -} - -function $transformEdge(this$static, elkedge, elkparent, lgraph){ - var bendPointsRequired, crossMinStrat, edgeSection, elkSourceNode, elkSourceShape, elkTargetNode, elkTargetShape, elklabel, elklabel$iterator, graphProperties, importedBendpoints, ledge, llabel, nodePlaceStrat, originalBendpoints, point, point$iterator, portType, sourceElem, sourceLNode, sourceLPort, sourcePoint, targetElem, targetLNode, targetLPort, targetPoint; - $checkEdgeValidity(elkedge); - elkSourceShape = castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82); - elkTargetShape = castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82); - elkSourceNode = connectableShapeToNode(elkSourceShape); - elkTargetNode = connectableShapeToNode(elkTargetShape); - edgeSection = (!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections).size_0 == 0?null:castTo($get_20((!elkedge.sections && (elkedge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkedge, 6, 6)) , elkedge.sections), 0), 202); - sourceLNode = castTo($get_10(this$static.nodeAndPortMap, elkSourceNode), 10); - targetLNode = castTo($get_10(this$static.nodeAndPortMap, elkTargetNode), 10); - sourceLPort = null; - targetLPort = null; - if (instanceOf(elkSourceShape, 186)) { - sourceElem = castTo($get_10(this$static.nodeAndPortMap, elkSourceShape), 299); - if (instanceOf(sourceElem, 11)) { - sourceLPort = castTo(sourceElem, 11); - } - else if (instanceOf(sourceElem, 10)) { - sourceLNode = castTo(sourceElem, 10); - sourceLPort = castTo($get_11(sourceLNode.ports, 0), 11); - } - } - if (instanceOf(elkTargetShape, 186)) { - targetElem = castTo($get_10(this$static.nodeAndPortMap, elkTargetShape), 299); - if (instanceOf(targetElem, 11)) { - targetLPort = castTo(targetElem, 11); - } - else if (instanceOf(targetElem, 10)) { - targetLNode = castTo(targetElem, 10); - targetLPort = castTo($get_11(targetLNode.ports, 0), 11); - } - } - if (!sourceLNode || !targetLNode) { - throw toJs(new UnsupportedGraphException('The source or the target of edge ' + elkedge + ' could not be found. ' + 'This usually happens when an edge connects a node laid out by ELK Layered to a node in ' + 'another level of hierarchy laid out by either another instance of ELK Layered or another ' + 'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling ' + 'option to INCLUDE_CHILDREN.')); - } - ledge = new LEdge; - $copyProperties(ledge, elkedge); - $setProperty_0(ledge, ($clinit_InternalProperties_1() , ORIGIN_0), elkedge); - $setProperty_0(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS), null); - graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); - sourceLNode == targetLNode && graphProperties.add_2(($clinit_GraphProperties() , SELF_LOOPS)); - if (!sourceLPort) { - portType = ($clinit_PortType() , OUTPUT); - sourcePoint = null; - if (!!edgeSection && $isSideFixed(castTo($getProperty(sourceLNode, PORT_CONSTRAINTS_0), 98))) { - sourcePoint = new KVector_1(edgeSection.startX, edgeSection.startY); - toAbsolute(sourcePoint, $getContainingNode(elkedge)); - toRelative(sourcePoint, elkparent); - if (isDescendant_0(elkTargetNode, elkSourceNode)) { - portType = INPUT; - $add_19(sourcePoint, sourceLNode.pos); - } - } - sourceLPort = createPort(sourceLNode, sourcePoint, portType, lgraph); - } - if (!targetLPort) { - portType = ($clinit_PortType() , INPUT); - targetPoint = null; - if (!!edgeSection && $isSideFixed(castTo($getProperty(targetLNode, PORT_CONSTRAINTS_0), 98))) { - targetPoint = new KVector_1(edgeSection.endX, edgeSection.endY); - toAbsolute(targetPoint, $getContainingNode(elkedge)); - toRelative(targetPoint, elkparent); - } - targetLPort = createPort(targetLNode, targetPoint, portType, $getGraph(targetLNode)); - } - $setSource_0(ledge, sourceLPort); - $setTarget_0(ledge, targetLPort); - (sourceLPort.incomingEdges.array.length > 1 || sourceLPort.outgoingEdges.array.length > 1 || targetLPort.incomingEdges.array.length > 1 || targetLPort.outgoingEdges.array.length > 1) && graphProperties.add_2(($clinit_GraphProperties() , HYPEREDGES)); - for (elklabel$iterator = new AbstractEList$EIterator((!elkedge.labels && (elkedge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkedge, 1, 7)) , elkedge.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { - llabel = $transformLabel(elklabel); - $add_3(ledge.labels, llabel); - switch (castTo($getProperty(llabel, EDGE_LABELS_PLACEMENT), 272).ordinal) { - case 1: - case 2: - graphProperties.add_2(($clinit_GraphProperties() , END_LABELS)); - break; - case 0: - graphProperties.add_2(($clinit_GraphProperties() , CENTER_LABELS)); - $setProperty_0(llabel, EDGE_LABELS_PLACEMENT, ($clinit_EdgeLabelPlacement() , CENTER_5)); - } - } - } - crossMinStrat = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 314); - nodePlaceStrat = castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 315); - bendPointsRequired = crossMinStrat == ($clinit_CrossingMinimizationStrategy() , INTERACTIVE_1) || nodePlaceStrat == ($clinit_NodePlacementStrategy() , INTERACTIVE_4); - if (!!edgeSection && (!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints).size_0 != 0 && bendPointsRequired) { - originalBendpoints = createVectorChain(edgeSection); - importedBendpoints = new KVectorChain; - for (point$iterator = $listIterator_2(originalBendpoints, 0); point$iterator.currentNode != point$iterator.this$01.tail;) { - point = castTo($next_10(point$iterator), 8); - $add_7(importedBendpoints, new KVector_2(point)); - } - $setProperty_0(ledge, ORIGINAL_BENDPOINTS, importedBendpoints); - } - return ledge; -} - -function $transformExternalPort(this$static, elkgraph, lgraph, elkport){ - var dummy, dummyPort, elklabel, elklabel$iterator, elkportPosition, graphSize, insidePart, insidePortLabels, llabel, netFlow, portConstraints, portOffset, portSide; - elkportPosition = new KVector_1(elkport.x_0 + elkport.width_0 / 2, elkport.y_0 + elkport.height / 2); - netFlow = $calculateNetFlow_0(elkport); - portConstraints = castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); - if (!$containsKey_8($getAllProperties_0(elkport), PORT_BORDER_OFFSET)) { - elkport.x_0 == 0 && elkport.y_0 == 0?(portOffset = 0):(portOffset = calcPortOffset_0(elkport, portSide)); - $setProperty_1(elkport, PORT_BORDER_OFFSET, portOffset); - } - graphSize = new KVector_1(elkgraph.width_0, elkgraph.height); - dummy = createExternalPortDummy(elkport, portConstraints, portSide, netFlow, graphSize, elkportPosition, new KVector_1(elkport.width_0, elkport.height), castTo($getProperty(lgraph, DIRECTION), 103), lgraph); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - $setConnectedToExternalNodes(dummyPort, $isConnectedToExternalNodes(elkport)); - $setProperty_0(dummy, PORT_LABELS_PLACEMENT_1, ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0))); - insidePortLabels = castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 174).contains(INSIDE_0); - for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - if (!$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0) { - llabel = $transformLabel(elklabel); - $add_3(dummyPort.labels, llabel); - if (!insidePortLabels) { - insidePart = 0; - isFixed(castTo($getProperty_0(elkgraph, PORT_LABELS_PLACEMENT_1), 21)) && (insidePart = computeInsidePart(new KVector_1(elklabel.x_0, elklabel.y_0), new KVector_1(elklabel.width_0, elklabel.height), new KVector_1(elkport.width_0, elkport.height), 0, portSide)); - switch (portSide.ordinal) { - case 2: - case 4: - llabel.size_0.x_0 = insidePart; - break; - case 1: - case 3: - llabel.size_0.y_0 = insidePart; - } - } - } - } - $setProperty_0(dummy, SPACING_LABEL_PORT_HORIZONTAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_HORIZONTAL))); - $setProperty_0(dummy, SPACING_LABEL_PORT_VERTICAL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_PORT_VERTICAL))); - $setProperty_0(dummy, SPACING_LABEL_LABEL, castToDouble($getProperty_0($getParent_2(elkgraph), SPACING_LABEL_LABEL))); - $add_3(lgraph.layerlessNodes, dummy); - $put_6(this$static.nodeAndPortMap, elkport, dummy); -} - -function $transformLabel(elklabel){ - var newLabel; - newLabel = new LLabel_0(elklabel.text_0); - $copyProperties(newLabel, elklabel); - $setProperty_0(newLabel, ($clinit_InternalProperties_1() , ORIGIN_0), elklabel); - newLabel.size_0.x_0 = elklabel.width_0; - newLabel.size_0.y_0 = elklabel.height; - newLabel.pos.x_0 = elklabel.x_0; - newLabel.pos.y_0 = elklabel.y_0; - return newLabel; -} - -function $transformNode(this$static, elknode, lgraph){ - var direction, elklabel, elklabel$iterator, elkport, elkport$iterator, graphProperties, lnode, portConstraints; - lnode = new LNode(lgraph); - $copyProperties(lnode, elknode); - $setProperty_0(lnode, ($clinit_InternalProperties_1() , ORIGIN_0), elknode); - lnode.size_0.x_0 = elknode.width_0; - lnode.size_0.y_0 = elknode.height; - lnode.pos.x_0 = elknode.x_0; - lnode.pos.y_0 = elknode.y_0; - $add_3(lgraph.layerlessNodes, lnode); - $put_6(this$static.nodeAndPortMap, elknode, lnode); - ((!elknode.children && (elknode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elknode, 10, 11)) , elknode.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(elknode, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_ACTIVATE))))) && $setProperty_0(lnode, COMPOUND_NODE, ($clinit_Boolean() , true)); - graphProperties = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); - portConstraints = castTo($getProperty(lnode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - portConstraints == ($clinit_PortConstraints() , UNDEFINED_4)?$setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE):portConstraints != FREE && graphProperties.add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); - direction = castTo($getProperty(lgraph, DIRECTION), 103); - for (elkport$iterator = new AbstractEList$EIterator((!elknode.ports && (elknode.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, elknode, 9, 9)) , elknode.ports)); elkport$iterator.cursor != elkport$iterator.this$01_2.size_1();) { - elkport = castTo($doNext(elkport$iterator), 118); - $booleanValue(castToBoolean($getProperty_0(elkport, NO_LAYOUT))) || $transformPort(this$static, elkport, lnode, graphProperties, direction, portConstraints); - } - for (elklabel$iterator = new AbstractEList$EIterator((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lnode.labels, $transformLabel(elklabel)); - } - $booleanValue(castToBoolean($getProperty(lnode, COMMENT_BOX))) && graphProperties.add_2(($clinit_GraphProperties() , COMMENTS)); - if ($booleanValue(castToBoolean($getProperty(lnode, HYPERNODE)))) { - graphProperties.add_2(($clinit_GraphProperties() , HYPERNODES)); - graphProperties.add_2(HYPEREDGES); - $setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE); - } - return lnode; -} - -function $transformPort(this$static, elkport, parentLNode, graphProperties, layoutDirection, portConstraints){ - var connectionsToDescendants, elklabel, elklabel$iterator, lport, portPos, portSize; - lport = new LPort; - $copyProperties(lport, elkport); - $setSide(lport, castTo($getProperty_0(elkport, ($clinit_LayeredOptions() , PORT_SIDE)), 61)); - $setProperty_0(lport, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); - $setNode(lport, parentLNode); - portSize = lport.size_0; - portSize.x_0 = elkport.width_0; - portSize.y_0 = elkport.height; - portPos = lport.pos; - portPos.x_0 = elkport.x_0; - portPos.y_0 = elkport.y_0; - $put_6(this$static.nodeAndPortMap, elkport, lport); - connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$2$Type), new ElkGraphImporter$0methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$4$Type(elkport)); - connectionsToDescendants || (connectionsToDescendants = $anyMatch($map_0($flatMap(new StreamImpl(null, (!elkport.incomingEdges && (elkport.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 8, 5)) , new Spliterators$IteratorSpliterator(elkport.incomingEdges, 16))), new ElkGraphImporter$lambda$5$Type), new ElkGraphImporter$1methodref$connectableShapeToNode$Type), new ElkGraphImporter$lambda$7$Type(elkport))); - connectionsToDescendants || (connectionsToDescendants = $anyMatch(new StreamImpl(null, (!elkport.outgoingEdges && (elkport.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkport, 7, 4)) , new Spliterators$IteratorSpliterator(elkport.outgoingEdges, 16))), new ElkGraphImporter$lambda$8$Type)); - $setProperty_0(lport, INSIDE_CONNECTIONS, ($clinit_Boolean() , connectionsToDescendants?true:false)); - initializePort(lport, portConstraints, layoutDirection, castTo($getProperty_0(elkport, PORT_ANCHOR), 8)); - for (elklabel$iterator = new AbstractEList$EIterator((!elkport.labels && (elkport.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elkport, 1, 7)) , elkport.labels)); elklabel$iterator.cursor != elklabel$iterator.this$01_2.size_1();) { - elklabel = castTo($doNext(elklabel$iterator), 137); - !$booleanValue(castToBoolean($getProperty_0(elklabel, NO_LAYOUT))) && !!elklabel.text_0 && $add_3(lport.labels, $transformLabel(elklabel)); - } - switch (layoutDirection.ordinal) { - case 2: - case 1: - (lport.side == ($clinit_PortSide() , NORTH_3) || lport.side == SOUTH_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - break; - case 4: - case 3: - (lport.side == ($clinit_PortSide() , EAST_2) || lport.side == WEST_2) && graphProperties.add_2(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)); - } - return lport; -} - -function ElkGraphImporter(){ - this.nodeAndPortMap = new HashMap; -} - -function lambda$4_3(elkport_0, targetNode_1){ - return isDescendant_0(targetNode_1, $getParent_3(elkport_0)); -} - -function lambda$7_0(elkport_0, sourceNode_1){ - return isDescendant_0(sourceNode_1, $getParent_3(elkport_0)); -} - -function lambda$8(edge_0){ - return $isSelfloop(edge_0) && $booleanValue(castToBoolean($getProperty_0(edge_0, ($clinit_LayeredOptions() , INSIDE_SELF_LOOPS_YO)))); -} - -defineClass(1342, 1, {}, ElkGraphImporter); -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter', 1342); -function ElkGraphImporter$0methodref$connectableShapeToNode$Type(){ -} - -defineClass(1346, 1, {}, ElkGraphImporter$0methodref$connectableShapeToNode$Type); -_.apply_0 = function apply_70(arg0){ - return connectableShapeToNode(castTo(arg0, 82)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$0methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/0methodref$connectableShapeToNode$Type', 1346); -function ElkGraphImporter$1methodref$connectableShapeToNode$Type(){ -} - -defineClass(1349, 1, {}, ElkGraphImporter$1methodref$connectableShapeToNode$Type); -_.apply_0 = function apply_71(arg0){ - return connectableShapeToNode(castTo(arg0, 82)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$1methodref$connectableShapeToNode$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/1methodref$connectableShapeToNode$Type', 1349); -function ElkGraphImporter$lambda$0$Type(topLevelGraph_1){ - this.topLevelGraph_1 = topLevelGraph_1; -} - -defineClass(1343, 1, $intern_19, ElkGraphImporter$lambda$0$Type); -_.accept = function accept_62(arg0){ - $ensureDefinedPortSide(this.topLevelGraph_1, castTo(arg0, 118)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$0$Type', 1343); -function ElkGraphImporter$lambda$1$Type(finalNestedGraph_1){ - this.finalNestedGraph_1 = finalNestedGraph_1; -} - -defineClass(1344, 1, $intern_19, ElkGraphImporter$lambda$1$Type); -_.accept = function accept_63(arg0){ - $ensureDefinedPortSide(this.finalNestedGraph_1, castTo(arg0, 118)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$1$Type', 1344); -function ElkGraphImporter$lambda$2$Type(){ -} - -defineClass(1345, 1, {}, ElkGraphImporter$lambda$2$Type); -_.apply_0 = function apply_72(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator($getTargets(castTo(arg0, 79)), 16)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$2$Type', 1345); -function ElkGraphImporter$lambda$4$Type(elkport_0){ - this.elkport_0 = elkport_0; -} - -defineClass(1347, 1, $intern_39, ElkGraphImporter$lambda$4$Type); -_.test_0 = function test_24(arg0){ - return lambda$4_3(this.elkport_0, castTo(arg0, 33)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$4$Type', 1347); -function ElkGraphImporter$lambda$5$Type(){ -} - -defineClass(1348, 1, {}, ElkGraphImporter$lambda$5$Type); -_.apply_0 = function apply_73(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator($getSources(castTo(arg0, 79)), 16)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$5$Type', 1348); -function ElkGraphImporter$lambda$7$Type(elkport_0){ - this.elkport_0 = elkport_0; -} - -defineClass(1350, 1, $intern_39, ElkGraphImporter$lambda$7$Type); -_.test_0 = function test_25(arg0){ - return lambda$7_0(this.elkport_0, castTo(arg0, 33)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$7$Type', 1350); -function ElkGraphImporter$lambda$8$Type(){ -} - -defineClass(1351, 1, $intern_39, ElkGraphImporter$lambda$8$Type); -_.test_0 = function test_26(arg0){ - return lambda$8(castTo(arg0, 79)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter/lambda$8$Type', 1351); -function $clinit_ElkGraphLayoutTransferrer(){ - $clinit_ElkGraphLayoutTransferrer = emptyMethod; - ZERO_OFFSET = new KVector; -} - -function $applyEdgeLayout(ledge, routing, offset){ - var bendPoints, edgeOffset, elkedge, elkedgeSection, elklabel, junctionPoints, llabel, llabel$iterator, sourcePoint, sourcePort, targetPoint; - elkedge = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , ORIGIN_0)), 79); - if (!elkedge) { - return; - } - bendPoints = ledge.bendPoints; - edgeOffset = new KVector_2(offset); - $add_19(edgeOffset, $calculateHierarchicalOffset(ledge)); - if (isDescendant(ledge.target.owner, ledge.source.owner)) { - sourcePort = ledge.source; - sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.pos, sourcePort.anchor])); - $sub_0(sourcePoint, offset); - } - else { - sourcePoint = $getAbsoluteAnchor(ledge.source); - } - $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); - targetPoint = $getAbsoluteAnchor(ledge.target); - $getProperty(ledge, TARGET_OFFSET) != null && $add_19(targetPoint, castTo($getProperty(ledge, TARGET_OFFSET), 8)); - $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); - $offset_2(bendPoints, edgeOffset); - elkedgeSection = firstEdgeSection(elkedge, true, true); - $setIncomingShape(elkedgeSection, castTo($get_20((!elkedge.sources && (elkedge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 4, 7)) , elkedge.sources), 0), 82)); - $setOutgoingShape(elkedgeSection, castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82)); - applyVectorChain(bendPoints, elkedgeSection); - for (llabel$iterator = new ArrayList$1(ledge.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { - llabel = castTo($next_7(llabel$iterator), 70); - elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); - $setWidth_0(elklabel, llabel.size_0.x_0); - $setHeight_0(elklabel, llabel.size_0.y_0); - $setLocation_1(elklabel, llabel.pos.x_0 + edgeOffset.x_0, llabel.pos.y_0 + edgeOffset.y_0); - $setProperty_1(elklabel, ($clinit_LabelDummySwitcher() , INCLUDE_LABEL), castToBoolean($getProperty(llabel, INCLUDE_LABEL))); - } - junctionPoints = castTo($getProperty(ledge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (junctionPoints) { - $offset_2(junctionPoints, edgeOffset); - $setProperty_1(elkedge, JUNCTION_POINTS, junctionPoints); - } - else { - $setProperty_1(elkedge, JUNCTION_POINTS, null); - } - routing == ($clinit_EdgeRouting() , SPLINES)?$setProperty_1(elkedge, EDGE_ROUTING, SPLINES):$setProperty_1(elkedge, EDGE_ROUTING, null); -} - -function $applyLayout_2(this$static, lgraph){ - var edgeList, elkport, graphOrigin, lPadding, ledge, ledge$iterator, lnode, lnode$iterator, lnode$iterator0, nestedGraph, offset, padding, parentElkNode, parentLNode, port, port$iterator, portPosition, routing, sizeOptions; - graphOrigin = $getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)); - if (!instanceOf(graphOrigin, 239)) { - return; - } - parentElkNode = castTo(graphOrigin, 33); - parentLNode = lgraph.parentNode; - offset = new KVector_2(lgraph.offset); - lPadding = lgraph.padding; - offset.x_0 += lPadding.left; - offset.y_0 += lPadding.top_0; - sizeOptions = castTo($getProperty_0(parentElkNode, ($clinit_LayeredOptions() , NODE_SIZE_OPTIONS_1)), 174); - if ($containsEnum(sizeOptions, ($clinit_SizeOptions() , COMPUTE_PADDING))) { - padding = castTo($getProperty_0(parentElkNode, PADDING_1), 116); - $setBottom(padding, lPadding.bottom); - $setTop(padding, lPadding.top_0); - $setLeft(padding, lPadding.left); - $setRight(padding, lPadding.right); - } - edgeList = new ArrayList; - for (lnode$iterator0 = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator0.i < lnode$iterator0.this$01.array.length;) { - lnode = castTo($next_7(lnode$iterator0), 10); - if (instanceOf($getProperty(lnode, ORIGIN_0), 239)) { - $applyNodeLayout(lnode, offset); - } - else if (instanceOf($getProperty(lnode, ORIGIN_0), 186) && !parentLNode) { - elkport = castTo($getProperty(lnode, ORIGIN_0), 118); - portPosition = getExternalPortPosition(lgraph, lnode, elkport.width_0, elkport.height); - $setLocation_1(elkport, portPosition.x_0, portPosition.y_0); - } - for (port$iterator = new ArrayList$1(lnode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$0$Type(lnode)), new ElkGraphLayoutTransferrer$lambda$1$Type(edgeList)); - } - } - if (parentLNode) { - for (port$iterator = new ArrayList$1(parentLNode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.outgoingEdges, 16)), new ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode)), new ElkGraphLayoutTransferrer$lambda$3$Type(edgeList)); - } - } - routing = castTo($getProperty_0(parentElkNode, EDGE_ROUTING), 218); - for (ledge$iterator = new ArrayList$1(edgeList); ledge$iterator.i < ledge$iterator.this$01.array.length;) { - ledge = castTo($next_7(ledge$iterator), 17); - $applyEdgeLayout(ledge, routing, offset); - } - $applyParentNodeLayout(lgraph); - for (lnode$iterator = new ArrayList$1(lgraph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { - lnode = castTo($next_7(lnode$iterator), 10); - nestedGraph = lnode.nestedGraph; - !!nestedGraph && $applyLayout_2(this$static, nestedGraph); - } -} - -function $applyNodeLayout(lnode, offset){ - var elklabel, elknode, elkport, layerID, llabel, llabel$iterator, llabel$iterator0, lport, lport$iterator, lport$iterator0, nf, nodeHasLabelPlacement, nodeID, origin_0; - elknode = castTo($getProperty(lnode, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); - nodeID = castTo($getProperty(lnode, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_POSITION_ID_0)), 19).value_0; - layerID = castTo($getProperty(lnode, LAYERING_LAYER_ID_0), 19).value_0; - $setProperty_1(elknode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(nodeID)); - $setProperty_1(elknode, LAYERING_LAYER_ID_0, valueOf_4(layerID)); - $setX_2(elknode, lnode.pos.x_0 + offset.x_0); - $setY_3(elknode, lnode.pos.y_0 + offset.y_0); - if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).size_1() != 0 || !!lnode.nestedGraph || maskUndefined($getProperty($getGraph(lnode), NODE_PLACEMENT_STRATEGY_0)) === maskUndefined(($clinit_NodePlacementStrategy() , NETWORK_SIMPLEX_0)) && $isFlexibleSizeWhereSpacePermits(($clinit_NodeFlexibility() , (!lnode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lnode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lnode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lnode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf))) { - $setWidth_0(elknode, lnode.size_0.x_0); - $setHeight_0(elknode, lnode.size_0.y_0); - } - for (lport$iterator0 = new ArrayList$1(lnode.ports); lport$iterator0.i < lport$iterator0.this$01.array.length;) { - lport = castTo($next_7(lport$iterator0), 11); - origin_0 = $getProperty(lport, ORIGIN_0); - if (instanceOf(origin_0, 186)) { - elkport = castTo(origin_0, 118); - $setLocation_1(elkport, lport.pos.x_0, lport.pos.y_0); - $setProperty_1(elkport, PORT_SIDE, lport.side); - } - } - nodeHasLabelPlacement = castTo($getProperty(lnode, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0; - for (llabel$iterator0 = new ArrayList$1(lnode.labels); llabel$iterator0.i < llabel$iterator0.this$01.array.length;) { - llabel = castTo($next_7(llabel$iterator0), 70); - if (nodeHasLabelPlacement || castTo($getProperty(llabel, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0) { - elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); - $setDimensions_0(elklabel, llabel.size_0.x_0, llabel.size_0.y_0); - $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); - } - } - if (!isFixed(castTo($getProperty(lnode, PORT_LABELS_PLACEMENT_1), 21))) { - for (lport$iterator = new ArrayList$1(lnode.ports); lport$iterator.i < lport$iterator.this$01.array.length;) { - lport = castTo($next_7(lport$iterator), 11); - for (llabel$iterator = new ArrayList$1(lport.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { - llabel = castTo($next_7(llabel$iterator), 70); - elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); - $setWidth_0(elklabel, llabel.size_0.x_0); - $setHeight_0(elklabel, llabel.size_0.y_0); - $setLocation_1(elklabel, llabel.pos.x_0, llabel.pos.y_0); - } - } - } -} - -function $applyParentNodeLayout(lgraph){ - var actualGraphSize, all, elknode, graphProps, sizeConstraintsIncludedPortLabels; - elknode = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , ORIGIN_0)), 33); - sizeConstraintsIncludedPortLabels = castTo($getProperty_0(elknode, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS)); - if (!lgraph.parentNode) { - graphProps = castTo($getProperty(lgraph, GRAPH_PROPERTIES), 21); - actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - if (graphProps.contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - $setProperty_1(elknode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); - resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, false, true); - } - else { - $booleanValue(castToBoolean($getProperty_0(elknode, NODE_SIZE_FIXED_GRAPH_SIZE))) || resizeNode_1(elknode, actualGraphSize.x_0, actualGraphSize.y_0, true, true); - } - } - sizeConstraintsIncludedPortLabels?$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, of_1(PORT_LABELS)):$setProperty_1(elknode, NODE_SIZE_CONSTRAINTS_1, (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); -} - -function $calculateHierarchicalOffset(ledge){ - var currentGraph, representingNode, result, targetCoordinateSystem; - targetCoordinateSystem = castTo($getProperty(ledge, ($clinit_InternalProperties_1() , COORDINATE_SYSTEM_ORIGIN)), 37); - if (targetCoordinateSystem) { - result = new KVector; - currentGraph = $getGraph(ledge.source.owner); - while (currentGraph != targetCoordinateSystem) { - representingNode = currentGraph.parentNode; - currentGraph = $getGraph(representingNode); - $add_18($add_19($add_19(result, representingNode.pos), currentGraph.offset), currentGraph.padding.left, currentGraph.padding.top_0); - } - return result; - } - return ZERO_OFFSET; -} - -function ElkGraphLayoutTransferrer(){ - $clinit_ElkGraphLayoutTransferrer(); -} - -function lambda$0_23(lnode_0, edge_1){ - $clinit_ElkGraphLayoutTransferrer(); - return !isDescendant(edge_1.target.owner, lnode_0); -} - -function lambda$2_3(parentLNode_0, edge_1){ - $clinit_ElkGraphLayoutTransferrer(); - return isDescendant(edge_1.target.owner, parentLNode_0); -} - -defineClass(1278, 1, {}, ElkGraphLayoutTransferrer); -var ZERO_OFFSET; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer', 1278); -function ElkGraphLayoutTransferrer$lambda$0$Type(lnode_0){ - this.lnode_0 = lnode_0; -} - -defineClass(1279, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$0$Type); -_.test_0 = function test_27(arg0){ - return lambda$0_23(this.lnode_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$0$Type', 1279); -function ElkGraphLayoutTransferrer$lambda$1$Type(edgeList_0){ - this.edgeList_0 = edgeList_0; -} - -defineClass(1280, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$1$Type); -_.accept = function accept_64(arg0){ - $clinit_ElkGraphLayoutTransferrer(); - $add_3(this.edgeList_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$1$Type', 1280); -function ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode_0){ - this.parentLNode_0 = parentLNode_0; -} - -defineClass(1281, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$2$Type); -_.test_0 = function test_28(arg0){ - return lambda$2_3(this.parentLNode_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$2$Type', 1281); -function ElkGraphLayoutTransferrer$lambda$3$Type(edgeList_0){ - this.edgeList_0 = edgeList_0; -} - -defineClass(1282, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$3$Type); -_.accept = function accept_65(arg0){ - $clinit_ElkGraphLayoutTransferrer(); - $add_3(this.edgeList_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphLayoutTransferrer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphLayoutTransferrer/lambda$3$Type', 1282); -function getIdentifier(element){ - var container, id_0, parentId; - id_0 = element.getIdentifier(); - if (id_0) { - container = element.eContainer_0(); - if (instanceOf(container, 160)) { - parentId = getIdentifier(castTo(container, 160)); - if (parentId != null) { - return parentId + '.' + id_0; - } - } - return id_0; - } - return null; -} - -function getOriginIdentifier(element){ - var origin_0; - origin_0 = $getProperty(element, ($clinit_InternalProperties_1() , ORIGIN_0)); - if (instanceOf(origin_0, 160)) { - return getIdentifier(castTo(origin_0, 160)); - } - return null; -} - -function $process_2(layeredGraph, monitor){ - $begin(monitor, 'Node margin calculation', 1); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new CommentNodeMarginCalculator$lambda$0$Type), new CommentNodeMarginCalculator$lambda$1$Type); - $done_0(monitor); -} - -function $processComments(node){ - var bottomBoxes, bottomWidth, commentBox, commentBox$iterator, commentCommentSpacing, commentNodeSpacing, margin, maxCommentWidth, maxHeight, protrusion, topBoxes, topWidth; - margin = node.margin; - topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); - bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); - if (!topBoxes && !bottomBoxes) { - return; - } - commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); - commentNodeSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, SPACING_COMMENT_NODE))); - topWidth = 0; - if (topBoxes) { - maxHeight = 0; - for (commentBox$iterator = topBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { - commentBox = castTo(commentBox$iterator.next_1(), 10); - maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); - topWidth += commentBox.size_0.x_0; - } - topWidth += commentCommentSpacing * (topBoxes.size_1() - 1); - margin.top_0 += maxHeight + commentNodeSpacing; - } - bottomWidth = 0; - if (bottomBoxes) { - maxHeight = 0; - for (commentBox$iterator = bottomBoxes.iterator_0(); commentBox$iterator.hasNext_0();) { - commentBox = castTo(commentBox$iterator.next_1(), 10); - maxHeight = $wnd.Math.max(maxHeight, commentBox.size_0.y_0); - bottomWidth += commentBox.size_0.x_0; - } - bottomWidth += commentCommentSpacing * (bottomBoxes.size_1() - 1); - margin.bottom += maxHeight + commentNodeSpacing; - } - maxCommentWidth = $wnd.Math.max(topWidth, bottomWidth); - if (maxCommentWidth > node.size_0.x_0) { - protrusion = (maxCommentWidth - node.size_0.x_0) / 2; - margin.left = $wnd.Math.max(margin.left, protrusion); - margin.right = $wnd.Math.max(margin.right, protrusion); - } -} - -function CommentNodeMarginCalculator(){ -} - -defineClass(1485, 1, $intern_105, CommentNodeMarginCalculator); -_.process = function process_1(layeredGraph, monitor){ - $process_2(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator', 1485); -function CommentNodeMarginCalculator$lambda$0$Type(){ -} - -defineClass(1486, 1, {}, CommentNodeMarginCalculator$lambda$0$Type); -_.apply_0 = function apply_74(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$0$Type', 1486); -function CommentNodeMarginCalculator$lambda$1$Type(){ -} - -defineClass(1487, 1, $intern_19, CommentNodeMarginCalculator$lambda$1$Type); -_.accept = function accept_66(arg0){ - $processComments(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator/lambda$1$Type', 1487); -function $getBoxPort(commentBox){ - var edge, edge$iterator, edge$iterator0, nodePort, port, port$iterator; - nodePort = castTo($getProperty(commentBox, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); - for (port$iterator = new ArrayList$1(commentBox.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - $setTarget_0(edge, nodePort); - return port; - } - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $setSource_0(edge, nodePort); - return port; - } - } - return null; -} - -function $process_3(layeredGraph, monitor){ - var bottomBoxes, boxes, layer, layer$iterator, node, node$iterator, topBoxes; - $begin(monitor, 'Comment post-processing', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - boxes = new ArrayList; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - topBoxes = castTo($getProperty(node, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); - bottomBoxes = castTo($getProperty(node, BOTTOM_COMMENTS), 15); - if (!!topBoxes || !!bottomBoxes) { - $process_4(node, topBoxes, bottomBoxes); - !!topBoxes && $addAll_2(boxes, topBoxes); - !!bottomBoxes && $addAll_2(boxes, bottomBoxes); - } - } - $addAll_2(layer.nodes, boxes); - } - $done_0(monitor); -} - -function $process_4(node, topBoxes, bottomBoxes){ - var anchorInc, anchorX, baseLine, box, box$iterator, box$iterator0, boxPort, boxesWidth, commentCommentSpacing, margin, maxHeight, nodePort, nodePos, nodeSize, x_0; - nodePos = node.pos; - nodeSize = node.size_0; - margin = node.margin; - commentCommentSpacing = $doubleValue(castToDouble(getIndividualOrDefault(node, ($clinit_LayeredOptions() , SPACING_COMMENT_COMMENT)))); - if (topBoxes) { - boxesWidth = commentCommentSpacing * (topBoxes.size_1() - 1); - maxHeight = 0; - for (box$iterator0 = topBoxes.iterator_0(); box$iterator0.hasNext_0();) { - box = castTo(box$iterator0.next_1(), 10); - boxesWidth += box.size_0.x_0; - maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); - } - x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; - baseLine = nodePos.y_0 - margin.top_0 + maxHeight; - anchorInc = nodeSize.x_0 / (topBoxes.size_1() + 1); - anchorX = anchorInc; - for (box$iterator = topBoxes.iterator_0(); box$iterator.hasNext_0();) { - box = castTo(box$iterator.next_1(), 10); - box.pos.x_0 = x_0; - box.pos.y_0 = baseLine - box.size_0.y_0; - x_0 += box.size_0.x_0 + commentCommentSpacing; - boxPort = $getBoxPort(box); - boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; - boxPort.pos.y_0 = box.size_0.y_0; - nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); - if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { - nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; - nodePort.pos.y_0 = 0; - $setNode(nodePort, node); - } - anchorX += anchorInc; - } - } - if (bottomBoxes) { - boxesWidth = commentCommentSpacing * (bottomBoxes.size_1() - 1); - maxHeight = 0; - for (box$iterator0 = bottomBoxes.iterator_0(); box$iterator0.hasNext_0();) { - box = castTo(box$iterator0.next_1(), 10); - boxesWidth += box.size_0.x_0; - maxHeight = $wnd.Math.max(maxHeight, box.size_0.y_0); - } - x_0 = nodePos.x_0 - (boxesWidth - nodeSize.x_0) / 2; - baseLine = nodePos.y_0 + nodeSize.y_0 + margin.bottom - maxHeight; - anchorInc = nodeSize.x_0 / (bottomBoxes.size_1() + 1); - anchorX = anchorInc; - for (box$iterator = bottomBoxes.iterator_0(); box$iterator.hasNext_0();) { - box = castTo(box$iterator.next_1(), 10); - box.pos.x_0 = x_0; - box.pos.y_0 = baseLine; - x_0 += box.size_0.x_0 + commentCommentSpacing; - boxPort = $getBoxPort(box); - boxPort.pos.x_0 = box.size_0.x_0 / 2 - boxPort.anchor.x_0; - boxPort.pos.y_0 = 0; - nodePort = castTo($getProperty(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); - if (nodePort.incomingEdges.array.length + nodePort.outgoingEdges.array.length == 1) { - nodePort.pos.x_0 = anchorX - nodePort.anchor.x_0; - nodePort.pos.y_0 = nodeSize.y_0; - $setNode(nodePort, node); - } - anchorX += anchorInc; - } - } -} - -function CommentPostprocessor(){ -} - -defineClass(1488, 1, $intern_105, CommentPostprocessor); -_.process = function process_2(layeredGraph, monitor){ - $process_3(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPostprocessor', 1488); -function $process_5(layeredGraph, monitor){ - var commentBoxCount, edge, edgeCount, inedge, inedge$iterator, node, nodeIter, oppositePort, outedge, outedge$iterator, port, port$iterator, port$iterator0, re, re$iterator, revEdges; - $begin(monitor, 'Comment pre-processing', 1); - commentBoxCount = 0; - nodeIter = new ArrayList$1(layeredGraph.layerlessNodes); - while (nodeIter.i < nodeIter.this$01.array.length) { - node = castTo($next_7(nodeIter), 10); - if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { - ++commentBoxCount; - edgeCount = 0; - edge = null; - oppositePort = null; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - edgeCount += port.incomingEdges.array.length + port.outgoingEdges.array.length; - if (port.incomingEdges.array.length == 1) { - edge = castTo($get_11(port.incomingEdges, 0), 17); - oppositePort = edge.source; - } - if (port.outgoingEdges.array.length == 1) { - edge = castTo($get_11(port.outgoingEdges, 0), 17); - oppositePort = edge.target; - } - } - if (edgeCount == 1 && oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 1 && !$booleanValue(castToBoolean($getProperty(oppositePort.owner, COMMENT_BOX)))) { - $processBox(node, edge, oppositePort, oppositePort.owner); - $remove_13(nodeIter); - } - else { - revEdges = new ArrayList; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (outedge$iterator = new ArrayList$1(port.outgoingEdges); outedge$iterator.i < outedge$iterator.this$01.array.length;) { - outedge = castTo($next_7(outedge$iterator), 17); - outedge.target.outgoingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = outedge , true); - } - for (inedge$iterator = new ArrayList$1(port.incomingEdges); inedge$iterator.i < inedge$iterator.this$01.array.length;) { - inedge = castTo($next_7(inedge$iterator), 17); - inedge.source.incomingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = inedge , true); - } - } - for (re$iterator = new ArrayList$1(revEdges); re$iterator.i < re$iterator.this$01.array.length;) { - re = castTo($next_7(re$iterator), 17); - $reverse_0(re, true); - } - } - } - } - monitor.recordLogs && $log_2(monitor, 'Found ' + commentBoxCount + ' comment boxes'); - $done_0(monitor); -} - -function $processBox(box, edge, oppositePort, realNode){ - var bottomBoxes, boxList, hasNorth, hasSouth, label_0, label$iterator, labelPos, onlyBottom, onlyTop, port1, port1$iterator, port2, port2$iterator, topBoxes, topFirst; - onlyTop = false; - onlyBottom = false; - if ($isSideFixed(castTo($getProperty(realNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - hasNorth = false; - hasSouth = false; - portLoop: for (port1$iterator = new ArrayList$1(realNode.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { - port1 = castTo($next_7(port1$iterator), 11); - for (port2$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port1), new LPort$2(port1)]))); $hasNext_1(port2$iterator);) { - port2 = castTo($next_0(port2$iterator), 11); - if (!$booleanValue(castToBoolean($getProperty(port2.owner, COMMENT_BOX)))) { - if (port1.side == ($clinit_PortSide() , NORTH_3)) { - hasNorth = true; - break portLoop; - } - if (port1.side == SOUTH_2) { - hasSouth = true; - break portLoop; - } - } - } - } - onlyTop = hasSouth && !hasNorth; - onlyBottom = hasNorth && !hasSouth; - } - if (!onlyTop && !onlyBottom && realNode.labels.array.length != 0) { - labelPos = 0; - for (label$iterator = new ArrayList$1(realNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelPos += label_0.pos.y_0 + label_0.size_0.y_0 / 2; - } - labelPos /= realNode.labels.array.length; - topFirst = labelPos >= realNode.size_0.y_0 / 2; - } - else { - topFirst = !onlyBottom; - } - if (topFirst) { - topBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , TOP_COMMENTS)), 15); - if (!topBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, TOP_COMMENTS, boxList); - } - else if (onlyTop) { - boxList = topBoxes; - } - else { - bottomBoxes = castTo($getProperty(realNode, BOTTOM_COMMENTS), 15); - if (!bottomBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); - } - else { - topBoxes.size_1() <= bottomBoxes.size_1()?(boxList = topBoxes):(boxList = bottomBoxes); - } - } - } - else { - bottomBoxes = castTo($getProperty(realNode, ($clinit_InternalProperties_1() , BOTTOM_COMMENTS)), 15); - if (!bottomBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, BOTTOM_COMMENTS, boxList); - } - else if (onlyBottom) { - boxList = bottomBoxes; - } - else { - topBoxes = castTo($getProperty(realNode, TOP_COMMENTS), 15); - if (!topBoxes) { - boxList = new ArrayList; - $setProperty_0(realNode, TOP_COMMENTS, boxList); - } - else { - bottomBoxes.size_1() <= topBoxes.size_1()?(boxList = bottomBoxes):(boxList = topBoxes); - } - } - } - boxList.add_2(box); - $setProperty_0(box, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT), oppositePort); - if (edge.target == oppositePort) { - $setTarget_0(edge, null); - oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); - $removeHierarchicalPortDummyNode(oppositePort); - } - else { - $setSource_0(edge, null); - oppositePort.incomingEdges.array.length + oppositePort.outgoingEdges.array.length == 0 && $setNode(oppositePort, null); - } - $reset_0(edge.bendPoints); -} - -function $removeHierarchicalPortDummyNode(oppositePort){ - var dummy, layer; - dummy = castTo($getProperty(oppositePort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (dummy) { - layer = dummy.layer; - $remove_12(layer.nodes, dummy); - layer.nodes.array.length == 0 && $remove_12($getGraph(dummy).layers, layer); - } -} - -function CommentPreprocessor(){ -} - -defineClass(1489, 1, $intern_105, CommentPreprocessor); -_.process = function process_3(layeredGraph, monitor){ - $process_5(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_CommentPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPreprocessor', 1489); -function $process_6(graph, progressMonitor){ - var currentNode, currentNode$iterator, layer, layer$iterator, layerIndex, posIndex; - $begin(progressMonitor, 'Constraints Postprocessor', 1); - layerIndex = 0; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - posIndex = 0; - for (currentNode$iterator = new ArrayList$1(layer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { - currentNode = castTo($next_7(currentNode$iterator), 10); - if (currentNode.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - $setProperty_0(currentNode, ($clinit_LayeredOptions() , LAYERING_LAYER_ID_0), valueOf_4(layerIndex)); - $setProperty_0(currentNode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(posIndex)); - ++posIndex; - } - } - ++layerIndex; - } - $done_0(progressMonitor); -} - -function ConstraintsPostprocessor(){ -} - -defineClass(1490, 1, $intern_105, ConstraintsPostprocessor); -_.process = function process_4(graph, progressMonitor){ - $process_6(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_ConstraintsPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ConstraintsPostprocessor', 1490); -function $canReverseIncomingEdge(targetNodeLayerConstraint, edge){ - var sourceLayerConstraint, sourceNode; - if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { - return false; - } - sourceNode = edge.source.owner; - if (targetNodeLayerConstraint == ($clinit_LayerConstraint() , FIRST)) { - if (sourceNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - return false; - } - } - sourceLayerConstraint = castTo($getProperty(sourceNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (sourceLayerConstraint == FIRST_SEPARATE_0) { - return false; - } - return true; -} - -function $canReverseOutgoingEdge(sourceNodeLayerConstraint, edge){ - var targetLayerConstraint, targetNode; - if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))) { - return false; - } - targetNode = edge.target.owner; - if (sourceNodeLayerConstraint == ($clinit_LayerConstraint() , LAST)) { - if (targetNode.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - return false; - } - } - targetLayerConstraint = castTo($getProperty(targetNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (targetLayerConstraint == LAST_SEPARATE_0) { - return false; - } - return true; -} - -function $handleInnerNodes(remainingNodes){ - var allPortsReversed, e, e$iterator, e$iterator0, edgeConstraint, layerConstraint, lc, node, node$iterator, port, port$iterator; - for (node$iterator = new ArrayList$1(remainingNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - edgeConstraint = null; - switch (layerConstraint.ordinal) { - case 1: - case 2: - edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); - break; - case 3: - case 4: - edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); - } - if (edgeConstraint) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); - edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); - } - else { - if ($isSideFixed(castTo($getProperty(node, PORT_CONSTRAINTS_0), 98)) && node.ports.array.length != 0) { - allPortsReversed = true; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (!(port.side == ($clinit_PortSide() , EAST_2) && port.incomingEdges.array.length - port.outgoingEdges.array.length > 0 || port.side == WEST_2 && port.incomingEdges.array.length - port.outgoingEdges.array.length < 0)) { - allPortsReversed = false; - break; - } - for (e$iterator0 = new ArrayList$1(port.outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { - e = castTo($next_7(e$iterator0), 17); - lc = castTo($getProperty(e.target.owner, LAYERING_LAYER_CONSTRAINT_0), 163); - if (lc == ($clinit_LayerConstraint() , LAST) || lc == LAST_SEPARATE_0) { - allPortsReversed = false; - break; - } - } - for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - lc = castTo($getProperty(e.source.owner, LAYERING_LAYER_CONSTRAINT_0), 163); - if (lc == ($clinit_LayerConstraint() , FIRST) || lc == FIRST_SEPARATE_0) { - allPortsReversed = false; - break; - } - } - } - allPortsReversed && $reverseEdges(node, layerConstraint, ($clinit_PortType() , UNDEFINED_0)); - } - } - } -} - -function $handleOuterNodes(layeredGraph){ - var edgeConstraint, layerConstraint, node, node$iterator, remainingNodes; - remainingNodes = new ArrayList_0(layeredGraph.layerlessNodes.array.length); - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - edgeConstraint = null; - switch (layerConstraint.ordinal) { - case 1: - case 2: - edgeConstraint = ($clinit_EdgeConstraint() , OUTGOING_ONLY); - break; - case 3: - case 4: - edgeConstraint = ($clinit_EdgeConstraint() , INCOMING_ONLY); - } - if (edgeConstraint) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EDGE_CONSTRAINT), ($clinit_EdgeConstraint() , OUTGOING_ONLY)); - edgeConstraint == INCOMING_ONLY?$reverseEdges(node, layerConstraint, ($clinit_PortType() , INPUT)):edgeConstraint == OUTGOING_ONLY && $reverseEdges(node, layerConstraint, ($clinit_PortType() , OUTPUT)); - } - else { - remainingNodes.array[remainingNodes.array.length] = node; - } - } - return remainingNodes; -} - -function $process_7(layeredGraph, monitor){ - var remainingNodes; - $begin(monitor, 'Edge and layer constraint edge reversal', 1); - remainingNodes = $handleOuterNodes(layeredGraph); - $handleInnerNodes(remainingNodes); - $done_0(monitor); -} - -function $reverseEdges(node, nodeLayerConstraint, targetPortType){ - var edge, edge$array, edge$index, edge$max, incoming, outgoing, port, port$array, port$index, port$max; - for (port$array = toPortArray(node.ports) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { - port = port$array[port$index]; - if (targetPortType == ($clinit_PortType() , INPUT) || targetPortType == UNDEFINED_0) { - outgoing = toEdgeArray(port.outgoingEdges); - for (edge$array = outgoing , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $canReverseOutgoingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); - } - } - if (targetPortType == OUTPUT || targetPortType == UNDEFINED_0) { - incoming = toEdgeArray(port.incomingEdges); - for (edge$array = incoming , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $canReverseIncomingEdge(nodeLayerConstraint, edge) && $reverse_0(edge, true); - } - } - } -} - -function EdgeAndLayerConstraintEdgeReverser(){ -} - -defineClass(1491, 1, $intern_105, EdgeAndLayerConstraintEdgeReverser); -_.process = function process_5(layeredGraph, monitor){ - $process_7(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EdgeAndLayerConstraintEdgeReverser_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EdgeAndLayerConstraintEdgeReverser', 1491); -function $process_8(layeredGraph, monitor){ - $begin(monitor, 'End label post-processing', 1); - $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPostprocessor$lambda$0$Type), new EndLabelPostprocessor$lambda$1$Type), new EndLabelPostprocessor$lambda$2$Type); - $done_0(monitor); -} - -function $processNode_1(node){ - var endLabelCells, labelCell, labelCell$iterator, labelCellRect, nodePos; - endLabelCells = castTo($getProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0)), 83); - nodePos = node.pos; - for (labelCell$iterator = endLabelCells.values_0().iterator_0(); labelCell$iterator.hasNext_0();) { - labelCell = castTo(labelCell$iterator.next_1(), 306); - labelCellRect = labelCell.cellRectangle; - labelCellRect.x_0 += nodePos.x_0; - labelCellRect.y_0 += nodePos.y_0; - labelCell.horizontalLayoutMode?$applyHorizontalModeLabelLayout(labelCell):$applyVerticalModeLabelLayout(labelCell); - } - $setProperty_0(node, END_LABELS_0, null); -} - -function EndLabelPostprocessor(){ -} - -function lambda$1_8(node_0){ - return node_0.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $hasProperty(node_0, ($clinit_InternalProperties_1() , END_LABELS_0)); -} - -defineClass(1492, 1, $intern_105, EndLabelPostprocessor); -_.process = function process_6(layeredGraph, monitor){ - $process_8(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor', 1492); -function EndLabelPostprocessor$lambda$0$Type(){ -} - -defineClass(1493, 1, {}, EndLabelPostprocessor$lambda$0$Type); -_.apply_0 = function apply_75(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$0$Type', 1493); -function EndLabelPostprocessor$lambda$1$Type(){ -} - -defineClass(1494, 1, $intern_39, EndLabelPostprocessor$lambda$1$Type); -_.test_0 = function test_29(arg0){ - return lambda$1_8(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$1$Type', 1494); -function EndLabelPostprocessor$lambda$2$Type(){ -} - -defineClass(1495, 1, $intern_19, EndLabelPostprocessor$lambda$2$Type); -_.accept = function accept_67(arg0){ - $processNode_1(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor/lambda$2$Type', 1495); -function $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing){ - var nodeMargin, nodeSize; - nodeSize = node.size_0; - nodeMargin = node.margin; - switch (portSide.ordinal) { - case 1: - return -nodeMargin.top_0 - edgeLabelSpacing; - case 3: - return nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; - case 2: - return nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; - case 4: - return -nodeMargin.left - edgeLabelSpacing; - default:return 0; - } -} - -function $createConfiguredLabelCell(labels, labelLabelSpacing, verticalLayout){ - var label_0, label$iterator, labelCell, labelCellRect, padding, padding0; - if (!labels || labels.array.length == 0) { - return null; - } - labelCell = new LabelCell_1(labelLabelSpacing, !verticalLayout); - for (label$iterator = new ArrayList$1(labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $addLabel(labelCell, ($clinit_LGraphAdapters() , new LGraphAdapters$LLabelAdapter(label_0))); - } - labelCellRect = labelCell.cellRectangle; - labelCellRect.height = (padding0 = labelCell.padding , labelCell.minimumContentAreaSize.y_0 + padding0.top_0 + padding0.bottom); - labelCellRect.width_0 = (padding = labelCell.padding , labelCell.minimumContentAreaSize.x_0 + padding.left + padding.right); - return labelCell; -} - -function $lambda$1(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5, node_3){ - $processNode_2(node_3, edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5); -} - -function $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout){ - var all, port, port$iterator, portSidesWithLabels; - portSidesWithLabels = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (portLabelCells[port.id_0]) { - $placeLabels_0(port, portLabelCells[port.id_0], edgeLabelSpacing); - $add_5(portSidesWithLabels, port.side); - } - } - if (verticalLayout) { - $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , EAST_2), 2 * labelLabelSpacing, edgeLabelSpacing); - $removeLabelOverlaps(node, portLabelCells, WEST_2, 2 * labelLabelSpacing, edgeLabelSpacing); - } - else { - $removeLabelOverlaps(node, portLabelCells, ($clinit_PortSide() , NORTH_3), 2 * labelLabelSpacing, edgeLabelSpacing); - $removeLabelOverlaps(node, portLabelCells, SOUTH_2, 2 * labelLabelSpacing, edgeLabelSpacing); - } -} - -function $placeLabels_0(port, labelCell, edgeLabelSpacing){ - var labelCellRect, nodeMargin, nodeSize, portAnchor, portPos; - labelCellRect = labelCell.cellRectangle; - nodeSize = port.owner.size_0; - nodeMargin = port.owner.margin; - portPos = port.pos; - portAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [portPos, port.anchor])); - switch (port.side.ordinal) { - case 1: - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - labelCellRect.y_0 = -nodeMargin.top_0 - edgeLabelSpacing - labelCellRect.height; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; - } - else { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - break; - case 2: - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - labelCellRect.x_0 = nodeSize.x_0 + nodeMargin.right + edgeLabelSpacing; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; - } - else { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); - labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - break; - case 3: - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); - labelCellRect.y_0 = nodeSize.y_0 + nodeMargin.bottom + edgeLabelSpacing; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - labelCellRect.x_0 = portAnchor.x_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.width_0; - } - else { - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , LEFT)); - labelCellRect.x_0 = portAnchor.x_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - break; - case 4: - $setHorizontalAlignment(labelCell, ($clinit_HorizontalLabelAlignment() , RIGHT)); - labelCellRect.x_0 = -nodeMargin.left - edgeLabelSpacing - labelCellRect.width_0; - if (castTo(castTo($get_11(labelCell.labels, 0), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 285) == ($clinit_LabelSide() , ABOVE)) { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , BOTTOM)); - labelCellRect.y_0 = portAnchor.y_0 - $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) - edgeLabelSpacing - labelCellRect.height; - } - else { - $setVerticalAlignment(labelCell, ($clinit_VerticalLabelAlignment() , TOP)); - labelCellRect.y_0 = portAnchor.y_0 + $doubleValue(castToDouble($getProperty(port, MAX_EDGE_THICKNESS))) + edgeLabelSpacing; - } - - } -} - -function $portSideToOverlapRemovalDirection(portSide){ - switch (portSide.ordinal) { - case 1: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , UP; - case 3: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , DOWN; - case 2: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , RIGHT_0; - case 4: - return $clinit_RectangleStripOverlapRemover$OverlapRemovalDirection() , LEFT_0; - default:return null; - } -} - -function $process_9(layeredGraph, monitor){ - var edgeLabelSpacing, labelLabelSpacing, verticalLayout; - $begin(monitor, 'End label pre-processing', 1); - edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); - verticalLayout = $isVertical(castTo($getProperty(layeredGraph, DIRECTION), 103)); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelPreprocessor$lambda$0$Type), new EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing, labelLabelSpacing, verticalLayout)); - $done_0(monitor); -} - -function $processNode_2(node, edgeLabelSpacing, labelLabelSpacing, verticalLayout){ - var index_0, port, portCount, portIndex, portLabelCells, portToLabelCellMap; - portCount = node.ports.array.length; - portLabelCells = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_LabelCell_2_classLit, $intern_93, 306, portCount, 0, 1); - for (portIndex = 0; portIndex < portCount; portIndex++) { - port = castTo($get_11(node.ports, portIndex), 11); - port.id_0 = portIndex; - portLabelCells[portIndex] = $createConfiguredLabelCell(gatherLabels(port), labelLabelSpacing, verticalLayout); - } - $placeLabels(node, portLabelCells, labelLabelSpacing, edgeLabelSpacing, verticalLayout); - portToLabelCellMap = new HashMap; - for (index_0 = 0; index_0 < portLabelCells.length; index_0++) { - !!portLabelCells[index_0] && $put_6(portToLabelCellMap, castTo($get_11(node.ports, index_0), 11), portLabelCells[index_0]); - } - if (portToLabelCellMap.hashCodeMap.size_0 + portToLabelCellMap.stringMap.size_0 != 0) { - $setProperty_0(node, ($clinit_InternalProperties_1() , END_LABELS_0), portToLabelCellMap); - $updateNodeMargins(node, portLabelCells); - } -} - -function $removeLabelOverlaps(node, portLabelCells, portSide, labelLabelSpacing, edgeLabelSpacing){ - var labelCellRect, overlapRemover, port, port$iterator; - overlapRemover = $withStartCoordinate($withGap(createForDirection($portSideToOverlapRemovalDirection(portSide)), labelLabelSpacing), $calculateOverlapStartCoordinate(node, portSide, edgeLabelSpacing)); - for (port$iterator = $getPorts_1(node, portSide).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if (portLabelCells[port.id_0]) { - labelCellRect = portLabelCells[port.id_0].cellRectangle; - $add_3(overlapRemover.rectangleNodes, new RectangleStripOverlapRemover$RectangleNode(labelCellRect, $importRectangle(overlapRemover, labelCellRect))); - } - } - $removeOverlaps_0(overlapRemover); -} - -function $updateNodeMargins(node, labelCells){ - var labelCell, labelCell$array, labelCell$index, labelCell$max, nodeMargin, nodeMarginRectangle, nodeSize; - nodeMargin = node.margin; - nodeSize = node.size_0; - nodeMarginRectangle = new ElkRectangle_0(-nodeMargin.left, -nodeMargin.top_0, nodeMargin.left + nodeSize.x_0 + nodeMargin.right, nodeMargin.top_0 + nodeSize.y_0 + nodeMargin.bottom); - for (labelCell$array = labelCells , labelCell$index = 0 , labelCell$max = labelCell$array.length; labelCell$index < labelCell$max; ++labelCell$index) { - labelCell = labelCell$array[labelCell$index]; - !!labelCell && $union(nodeMarginRectangle, labelCell.cellRectangle); - } - nodeMargin.left = -nodeMarginRectangle.x_0; - nodeMargin.top_0 = -nodeMarginRectangle.y_0; - nodeMargin.right = nodeMarginRectangle.width_0 - nodeMargin.left - nodeSize.x_0; - nodeMargin.bottom = nodeMarginRectangle.height - nodeMargin.top_0 - nodeSize.y_0; -} - -function EndLabelPreprocessor(){ -} - -function gatherLabels(port){ - var dummyNode, dummyPort, dummyPort$iterator, labels, maxEdgeThickness; - labels = new ArrayList; - maxEdgeThickness = gatherLabels_0(port, labels); - dummyNode = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (dummyNode) { - for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { - dummyPort = castTo($next_7(dummyPort$iterator), 11); - maskUndefined($getProperty(dummyPort, ORIGIN_0)) === maskUndefined(port) && (maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, gatherLabels_0(dummyPort, labels))); - } - } - labels.array.length == 0 || $setProperty_0(port, MAX_EDGE_THICKNESS, maxEdgeThickness); - return maxEdgeThickness != -1?labels:null; -} - -function gatherLabels_0(port, targetList){ - var incidentEdge, incidentEdge$iterator, label_0, label$iterator, labels, maxEdgeThickness; - maxEdgeThickness = -1; - labels = new LinkedList; - for (incidentEdge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(incidentEdge$iterator.firstIterator) || $hasNext_3(incidentEdge$iterator.secondIterator);) { - incidentEdge = castTo($hasNext_3(incidentEdge$iterator.firstIterator)?$next_7(incidentEdge$iterator.firstIterator):$next_7(incidentEdge$iterator.secondIterator), 17); - maxEdgeThickness = $wnd.Math.max(maxEdgeThickness, $doubleValue(castToDouble($getProperty(incidentEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0))))); - incidentEdge.source == port?$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$2$Type), new EndLabelPreprocessor$lambda$3$Type(labels)):$forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(incidentEdge.labels, 16)), new EndLabelPreprocessor$lambda$4$Type), new EndLabelPreprocessor$lambda$5$Type(labels)); - for (label$iterator = $listIterator_2(labels, 0); label$iterator.currentNode != label$iterator.this$01.tail;) { - label_0 = castTo($next_10(label$iterator), 70); - $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, incidentEdge); - } - $addAll_2(targetList, labels); - $reset_0(labels); - } - return maxEdgeThickness; -} - -defineClass(1496, 1, $intern_105, EndLabelPreprocessor); -_.process = function process_7(layeredGraph, monitor){ - $process_9(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor', 1496); -function EndLabelPreprocessor$lambda$0$Type(){ -} - -defineClass(1497, 1, {}, EndLabelPreprocessor$lambda$0$Type); -_.apply_0 = function apply_76(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$0$Type', 1497); -function EndLabelPreprocessor$lambda$1$Type(edgeLabelSpacing_1, labelLabelSpacing_3, verticalLayout_5){ - this.edgeLabelSpacing_1 = edgeLabelSpacing_1; - this.labelLabelSpacing_3 = labelLabelSpacing_3; - this.verticalLayout_5 = verticalLayout_5; -} - -defineClass(1498, 1, $intern_19, EndLabelPreprocessor$lambda$1$Type); -_.accept = function accept_68(arg0){ - $lambda$1(this.edgeLabelSpacing_1, this.labelLabelSpacing_3, this.verticalLayout_5, castTo(arg0, 10)); -} -; -_.edgeLabelSpacing_1 = 0; -_.labelLabelSpacing_3 = 0; -_.verticalLayout_5 = false; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$1$Type', 1498); -function EndLabelPreprocessor$lambda$2$Type(){ -} - -defineClass(1499, 1, $intern_39, EndLabelPreprocessor$lambda$2$Type); -_.test_0 = function test_30(arg0){ - return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$2$Type', 1499); -function EndLabelPreprocessor$lambda$3$Type(labels_0){ - this.labels_0 = labels_0; -} - -defineClass(1500, 1, $intern_19, EndLabelPreprocessor$lambda$3$Type); -_.accept = function accept_69(arg0){ - $add_7(this.labels_0, castTo(arg0, 70)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$3$Type', 1500); -function EndLabelPreprocessor$lambda$4$Type(){ -} - -defineClass(1501, 1, $intern_39, EndLabelPreprocessor$lambda$4$Type); -_.test_0 = function test_31(arg0){ - return maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$4$Type', 1501); -function EndLabelPreprocessor$lambda$5$Type(labels_0){ - this.labels_0 = labels_0; -} - -defineClass(1502, 1, $intern_19, EndLabelPreprocessor$lambda$5$Type); -_.accept = function accept_70(arg0){ - $add_7(this.labels_0, castTo(arg0, 70)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$5$Type', 1502); -function $clinit_EndLabelSorter(){ - $clinit_EndLabelSorter = emptyMethod; - LABEL_GROUP_COMPARATOR = new EndLabelSorter$1; -} - -function $createLabelGroups(portLabelCell){ - var edge, edgeToGroupMap, label_0, label$iterator; - edgeToGroupMap = new HashMap; - for (label$iterator = new ArrayList$1(portLabelCell.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - edge = castTo(label_0.getProperty(($clinit_InternalProperties_1() , END_LABEL_EDGE)), 17); - !!$getEntry_0(edgeToGroupMap.hashCodeMap, edge) || $put_6(edgeToGroupMap, edge, new EndLabelSorter$LabelGroup(edge)); - $add_3(castTo(getEntryValueOrNull($getEntry_0(edgeToGroupMap.hashCodeMap, edge)), 456).labels, label_0); - } - return new ArrayList_1(new AbstractMap$2(edgeToGroupMap)); -} - -function $initialize_2(lGraph){ - var layer, layer$iterator, nextElementID, node, node$iterator, port, port$iterator; - nextElementID = 0; - for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = nextElementID++; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.id_0 = nextElementID++; - } - } - } -} - -function $needsSorting(port){ - var edgesWithEndLabels, headLabels, inEdge, inEdge$iterator, outEdge, outEdge$iterator, tailLabels; - edgesWithEndLabels = 0; - for (inEdge$iterator = new ArrayList$1(port.incomingEdges); inEdge$iterator.i < inEdge$iterator.this$01.array.length;) { - inEdge = castTo($next_7(inEdge$iterator), 17); - headLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(inEdge.labels, 16)), new EndLabelSorter$lambda$3$Type); - headLabels && ++edgesWithEndLabels; - } - for (outEdge$iterator = new ArrayList$1(port.outgoingEdges); outEdge$iterator.i < outEdge$iterator.this$01.array.length;) { - outEdge = castTo($next_7(outEdge$iterator), 17); - tailLabels = $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator(outEdge.labels, 16)), new EndLabelSorter$lambda$4$Type); - tailLabels && ++edgesWithEndLabels; - } - return edgesWithEndLabels >= 2; -} - -function $process_10(layeredGraph, monitor){ - $begin(monitor, 'Sort end labels', 1); - $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new EndLabelSorter$lambda$0$Type), new EndLabelSorter$lambda$1$Type), new EndLabelSorter$lambda$2$Type); - $done_0(monitor); -} - -function $processNode_3(node){ - var initializeMethodCalled, labelCellMap, port, port$iterator; - initializeMethodCalled = false; - if ($hasProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0))) { - labelCellMap = castTo($getProperty(node, END_LABELS_0), 83); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if ($needsSorting(port)) { - if (!initializeMethodCalled) { - $initialize_2($getGraph(node)); - initializeMethodCalled = true; - } - $sort_1(castTo(labelCellMap.get_3(port), 306)); - } - } - } -} - -function $sort_1(portLabelCell){ - var group, group$iterator, labelGroups, portLabelCellLabels; - labelGroups = $createLabelGroups(portLabelCell); - $sort(labelGroups, LABEL_GROUP_COMPARATOR); - portLabelCellLabels = portLabelCell.labels; - portLabelCellLabels.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (group$iterator = new ArrayList$1(labelGroups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 456); - $addAll_2(portLabelCellLabels, group.labels); - } -} - -function EndLabelSorter(){ - $clinit_EndLabelSorter(); -} - -defineClass(1551, 1, $intern_105, EndLabelSorter); -_.process = function process_8(layeredGraph, monitor){ - $process_10(castTo(layeredGraph, 37), monitor); -} -; -var LABEL_GROUP_COMPARATOR; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter', 1551); -function $compare_11(group1, group2){ - var sourcePortDiff, targetNodeDiff; - sourcePortDiff = compare_5(group1.edge.source.id_0, group2.edge.source.id_0); - if (sourcePortDiff != 0) { - return sourcePortDiff; - } - targetNodeDiff = compare_5(group1.edge.target.owner.id_0, group2.edge.target.owner.id_0); - if (targetNodeDiff != 0) { - return targetNodeDiff; - } - return compare_5(group2.edge.target.id_0, group1.edge.target.id_0); -} - -function EndLabelSorter$1(){ -} - -defineClass(1552, 1, $intern_88, EndLabelSorter$1); -_.compare_1 = function compare_42(group1, group2){ - return $compare_11(castTo(group1, 456), castTo(group2, 456)); -} -; -_.equals_0 = function equals_106(other){ - return this === other; -} -; -_.reversed = function reversed_34(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/1', 1552); -function EndLabelSorter$LabelGroup(edge){ - this.labels = new ArrayList; - $addAll_2(this.labels, this.labels); - this.edge = edge; -} - -defineClass(456, 1, {456:1}, EndLabelSorter$LabelGroup); -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$LabelGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/LabelGroup', 456); -function EndLabelSorter$lambda$0$Type(){ -} - -defineClass(1553, 1, {}, EndLabelSorter$lambda$0$Type); -_.apply_0 = function apply_77(arg0){ - return $clinit_EndLabelSorter() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$0$Type', 1553); -function EndLabelSorter$lambda$1$Type(){ -} - -defineClass(1554, 1, $intern_39, EndLabelSorter$lambda$1$Type); -_.test_0 = function test_32(arg0){ - return $clinit_EndLabelSorter() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$1$Type', 1554); -function EndLabelSorter$lambda$2$Type(){ -} - -defineClass(1555, 1, $intern_19, EndLabelSorter$lambda$2$Type); -_.accept = function accept_71(arg0){ - $processNode_3(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$2$Type', 1555); -function EndLabelSorter$lambda$3$Type(){ -} - -defineClass(1556, 1, $intern_39, EndLabelSorter$lambda$3$Type); -_.test_0 = function test_33(arg0){ - return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$3$Type', 1556); -function EndLabelSorter$lambda$4$Type(){ -} - -defineClass(1557, 1, $intern_39, EndLabelSorter$lambda$4$Type); -_.test_0 = function test_34(arg0){ - return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , TAIL)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/lambda$4$Type', 1557); -function $absMin(d1, d2){ - return $wnd.Math.abs(d1) < $wnd.Math.abs(d2)?d1:d2; -} - -function $calculateBezierBendPoints(this$static, edgeChain, survivingEdge){ - var addMidPoint, allCP, currentBendPoints, currentEdge, edge, edgeIterator, halfway, lastCP, northSouthCP, nt, nubSpline, sourcePort, targetPort, y_0, first, second, v, v2, straightenBeginning, iter, last, secondLast, straightenEnding; - if (edgeChain.isEmpty()) { - return; - } - allCP = new KVectorChain; - edge = survivingEdge?survivingEdge:castTo(edgeChain.get_0(0), 17); - sourcePort = edge.source; - $clinit_SplineEdgeRouter(); - nt = sourcePort.owner.type_0; - if (!(nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT)) { - throw toJs(new IllegalArgumentException_0('The target node of the edge must be a normal node or a northSouthPort.')); - } - $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor]))); - if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(sourcePort.side)) { - y_0 = $doubleValue(castToDouble($getProperty(sourcePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); - northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).x_0, y_0); - $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); - } - lastCP = null; - addMidPoint = false; - edgeIterator = edgeChain.iterator_0(); - while (edgeIterator.hasNext_0()) { - currentEdge = castTo(edgeIterator.next_1(), 17); - currentBendPoints = currentEdge.bendPoints; - if (currentBendPoints.size_0 != 0) { - if (addMidPoint) { - halfway = $scale($add_19(lastCP, (checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.header.next_0.value_0, 8))), 0.5); - $addNode_0(allCP, halfway, allCP.tail.prev, allCP.tail); - addMidPoint = false; - } - else { - addMidPoint = true; - } - lastCP = $clone_0((checkCriticalElement(currentBendPoints.size_0 != 0) , castTo(currentBendPoints.tail.prev.value_0, 8))); - $addAll(allCP, currentBendPoints); - $reset_0(currentBendPoints); - } - } - targetPort = edge.target; - if (SIDES_NORTH_SOUTH.contains(targetPort.side)) { - y_0 = $doubleValue(castToDouble($getProperty(targetPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))); - northSouthCP = new KVector_1(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).x_0, y_0); - $addNode_0(allCP, northSouthCP, allCP.tail.prev, allCP.tail); - } - $addLast_0(allCP, sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor]))); - this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , CONSERVATIVE) && (first = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.header.next_0.value_0, 8)) , second = castTo($get_7(allCP, 1), 8) , v = new KVector_0(portSideToDirection(sourcePort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(second.x_0, second.y_0), first) , straightenBeginning = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenBeginning, first) , iter = $listIterator_2(allCP, 1) , $add_8(iter, straightenBeginning) , last = (checkCriticalElement(allCP.size_0 != 0) , castTo(allCP.tail.prev.value_0, 8)) , secondLast = castTo($get_7(allCP, allCP.size_0 - 2), 8) , v = new KVector_0(portSideToDirection(targetPort.side)) , v.x_0 *= 5 , v.y_0 *= 5 , v2 = $sub_0(new KVector_1(secondLast.x_0, secondLast.y_0), last) , straightenEnding = new KVector_1($absMin(v.x_0, v2.x_0), $absMin(v.y_0, v2.y_0)) , $add_19(straightenEnding, last) , $add_0(allCP, allCP.size_0 - 1, straightenEnding) , undefined); - nubSpline = new NubSpline(allCP); - $addAll(edge.bendPoints, $getBezierCP(nubSpline)); -} - -function $calculateControlPoints(this$static, segment){ - var edge, edge$iterator, ei, sloppy, xStartPos, xEndPos, halfway; - if (segment.handled) { - return; - } - segment.handled = true; - for (edge$iterator = segment.edges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 17); - if (segment.isStraight && segment.edges.map_0.size_1() <= 1) { - xStartPos = segment.boundingBox.x_0; - xEndPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; - halfway = new KVector_1(xStartPos + (xEndPos - xStartPos) / 2, segment.centerControlPointY); - $add_7(castTo(segment.edges.map_0.keySet_0().iterator_0().next_1(), 17).bendPoints, halfway); - continue; - } - ei = castTo($get_10(segment.edgeInformation, edge), 459); - if (ei.invertedLeft || ei.invertedRight) { - $calculateControlPointsInvertedEdge(this$static, edge, segment); - continue; - } - sloppy = this$static.splineRoutingMode == ($clinit_SplineRoutingMode() , SLOPPY) && (ei.normalSourceNode || ei.normalTargetNode) && $segmentAllowsSloppyRouting(this$static, segment) && segment.edges.map_0.size_1() <= 1; - sloppy?$calculateControlPointsSloppy(edge, segment):$calculateControlPointsConservative(this$static, edge, segment); - } - segment.inverseOrder && $forEach_0(segment.edges, new FinalSplineBendpointsCalculator$lambda$5$Type); -} - -function $calculateControlPointsConservative(this$static, edge, containingSegment){ - var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; - startXPos = containingSegment.boundingBox.x_0; - endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; - ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); - ySourceAnchor = ei.startY; - yTargetAnchor = ei.endY; - sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); - targetStraightCP = new KVector_1(endXPos, yTargetAnchor); - centerXPos = startXPos; - containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); - centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; - sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); - targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); - isHyperedge = containingSegment.edges.map_0.size_1() > 1; - if (isHyperedge) { - center = new KVector_1(centerXPos, containingSegment.centerControlPointY); - $add_7(edge.bendPoints, center); - } - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); -} - -function $calculateControlPointsInvertedEdge(this$static, edge, containingSegment){ - var center, centerXPos, ei, endXPos, isHyperedge, sourceStraightCP, sourceVerticalCP, startXPos, targetStraightCP, targetVerticalCP, ySourceAnchor, yTargetAnchor; - startXPos = containingSegment.boundingBox.x_0; - endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; - ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); - ySourceAnchor = ei.startY; - yTargetAnchor = ei.endY; - ei.invertedLeft?(sourceStraightCP = new KVector_1(endXPos, ySourceAnchor)):(sourceStraightCP = new KVector_1(startXPos, ySourceAnchor)); - ei.invertedRight?(targetStraightCP = new KVector_1(startXPos, yTargetAnchor)):(targetStraightCP = new KVector_1(endXPos, yTargetAnchor)); - centerXPos = startXPos; - containingSegment.isWestOfInitialLayer || (centerXPos += this$static.edgeNodeSpacing); - centerXPos += containingSegment.xDelta + containingSegment.rank * this$static.edgeEdgeSpacing; - sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); - targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); - isHyperedge = containingSegment.edges.map_0.size_1() > 1; - if (isHyperedge) { - center = new KVector_1(centerXPos, containingSegment.centerControlPointY); - $add_7(edge.bendPoints, center); - } - $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); -} - -function $calculateControlPointsSloppy(edge, containingSegment){ - var approx, box, centerXPos, centerYPos, edgePointsDownwards, ei, endXPos, needToCheckSrc, needToCheckTgt, neighbor, neighborIndex, shortCutSource, shortCutTarget, sourceStraightCP, sourceVerticalCP, src_0, startXPos, targetStraightCP, targetVerticalCP, tgt, v1, v2, v3, ySourceAnchor, yTargetAnchor; - ei = castTo($get_10(containingSegment.edgeInformation, edge), 459); - startXPos = containingSegment.boundingBox.x_0; - endXPos = containingSegment.boundingBox.x_0 + containingSegment.boundingBox.width_0; - ySourceAnchor = ei.startY; - yTargetAnchor = ei.endY; - edgePointsDownwards = ySourceAnchor < yTargetAnchor; - sourceStraightCP = new KVector_1(startXPos, ySourceAnchor); - targetStraightCP = new KVector_1(endXPos, yTargetAnchor); - centerXPos = (startXPos + endXPos) / 2; - sourceVerticalCP = new KVector_1(centerXPos, ySourceAnchor); - targetVerticalCP = new KVector_1(centerXPos, yTargetAnchor); - centerYPos = $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor); - v1 = $getAbsoluteAnchor(containingSegment.sourcePort); - v2 = new KVector_1(centerXPos, centerYPos); - v3 = $getAbsoluteAnchor(containingSegment.targetPort); - approx = approximateBezierSegment(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [v1, v2, v3])); - shortCutSource = false; - src_0 = containingSegment.sourcePort.owner; - if (!!src_0 && !!src_0.layer && ei.normalSourceNode) { - needToCheckSrc = edgePointsDownwards && src_0.id_0 < src_0.layer.nodes.array.length - 1 || !edgePointsDownwards && src_0.id_0 > 0; - if (needToCheckSrc) { - if (needToCheckSrc) { - neighborIndex = src_0.id_0; - edgePointsDownwards?++neighborIndex:--neighborIndex; - neighbor = castTo($get_11(src_0.layer.nodes, neighborIndex), 10); - box = $nodeToBoundingBox(neighbor); - shortCutSource = !(intersects_0(box, v1, approx[0]) || contains_50(box, v1, approx[0])); - } - } - else { - shortCutSource = true; - } - } - shortCutTarget = false; - tgt = containingSegment.targetPort.owner; - if (!!tgt && !!tgt.layer && ei.normalTargetNode) { - needToCheckTgt = edgePointsDownwards && tgt.id_0 > 0 || !edgePointsDownwards && tgt.id_0 < tgt.layer.nodes.array.length - 1; - if (needToCheckTgt) { - neighborIndex = tgt.id_0; - edgePointsDownwards?--neighborIndex:++neighborIndex; - neighbor = castTo($get_11(tgt.layer.nodes, neighborIndex), 10); - box = $nodeToBoundingBox(neighbor); - shortCutTarget = !(intersects_0(box, approx[0], v3) || contains_50(box, approx[0], v3)); - } - else { - shortCutTarget = true; - } - } - shortCutSource && shortCutTarget && $add_7(edge.bendPoints, v2); - shortCutSource || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourceStraightCP, sourceVerticalCP])); - shortCutTarget || $addAll_7(edge.bendPoints, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetVerticalCP, targetStraightCP])); -} - -function $computeSloppyCenterY(edge, ySourceAnchor, yTargetAnchor){ - var centerYPos, degreeDiff, indegree, outdegree, port, port$iterator; - indegree = 0; - outdegree = 0; - if (edge.source) { - for (port$iterator = new ArrayList$1(edge.target.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - indegree += port.incomingEdges.array.length; - } - } - else { - indegree = 1; - } - if (edge.target) { - for (port$iterator = new ArrayList$1(edge.source.owner.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - outdegree += port.outgoingEdges.array.length; - } - } - else { - outdegree = 1; - } - degreeDiff = round_int(signum(outdegree - indegree)); - centerYPos = (yTargetAnchor + ySourceAnchor) / 2 + (yTargetAnchor - ySourceAnchor) * (0.4 * degreeDiff); - return centerYPos; -} - -function $indexNodesPerLayer(graph){ - var index_0, l, l$iterator, n, n$iterator; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - index_0 = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = index_0++; - } - } -} - -function $nodeToBoundingBox(node){ - var m, pos, size_0; - pos = node.pos; - size_0 = node.size_0; - m = node.margin; - return new ElkRectangle_0(pos.x_0 - m.left, pos.y_0 - m.top_0, size_0.x_0 + (m.left + m.right), size_0.y_0 + (m.top_0 + m.bottom)); -} - -function $process_11(this$static, graph){ - var e, e$iterator, e$iterator0, edgeChain, spline, startEdges, survivingEdge; - this$static.edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); - this$static.edgeNodeSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - this$static.splineRoutingMode = castTo($getProperty(graph, EDGE_ROUTING_SPLINES_MODE_0), 336); - this$static.compactionStrategy = castTo($getProperty(graph, COMPACTION_POST_COMPACTION_STRATEGY_0), 275); - $indexNodesPerLayer(graph); - startEdges = castTo($collect_1($filter($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new FinalSplineBendpointsCalculator$lambda$0$Type), new FinalSplineBendpointsCalculator$lambda$1$Type), new FinalSplineBendpointsCalculator$lambda$2$Type), new FinalSplineBendpointsCalculator$lambda$3$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - for (e$iterator0 = startEdges.iterator_0(); e$iterator0.hasNext_0();) { - e = castTo(e$iterator0.next_1(), 17); - spline = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); - spline.forEach_0(new FinalSplineBendpointsCalculator$lambda$4$Type(this$static)); - $setProperty_0(e, SPLINE_ROUTE_START, null); - } - for (e$iterator = startEdges.iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - survivingEdge = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_SURVIVING_EDGE)), 17); - edgeChain = castTo($getProperty(e, SPLINE_EDGE_CHAIN), 15); - $calculateBezierBendPoints(this$static, edgeChain, survivingEdge); - $setProperty_0(e, SPLINE_EDGE_CHAIN, null); - } -} - -function $segmentAllowsSloppyRouting(this$static, segment){ - var endXPos, n, nodeSegmentDistance, startXPos, t; - if (this$static.compactionStrategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { - return true; - } - startXPos = segment.boundingBox.x_0; - endXPos = segment.boundingBox.x_0 + segment.boundingBox.width_0; - if (segment.initialSegment) { - n = segment.sourceNode; - t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; - nodeSegmentDistance = startXPos - (n.pos.x_0 + n.size_0.x_0); - if (nodeSegmentDistance > t) { - return false; - } - } - if (segment.lastSegment) { - n = segment.targetNode; - t = n.layer.size_0.x_0 - n.size_0.x_0 / 2; - nodeSegmentDistance = n.pos.x_0 - endXPos; - if (nodeSegmentDistance > t) { - return false; - } - } - return true; -} - -function FinalSplineBendpointsCalculator(){ -} - -defineClass(1503, 1, $intern_105, FinalSplineBendpointsCalculator); -_.process = function process_9(graph, progressMonitor){ - $process_11(this, castTo(graph, 37)); -} -; -_.edgeEdgeSpacing = 0; -_.edgeNodeSpacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator', 1503); -function FinalSplineBendpointsCalculator$lambda$0$Type(){ -} - -defineClass(1504, 1, {}, FinalSplineBendpointsCalculator$lambda$0$Type); -_.apply_0 = function apply_78(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$0$Type', 1504); -function FinalSplineBendpointsCalculator$lambda$1$Type(){ -} - -defineClass(1505, 1, {}, FinalSplineBendpointsCalculator$lambda$1$Type); -_.apply_0 = function apply_79(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$1$Type', 1505); -function FinalSplineBendpointsCalculator$lambda$2$Type(){ -} - -defineClass(1506, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$2$Type); -_.test_0 = function test_35(arg0){ - return !$isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$2$Type', 1506); -function FinalSplineBendpointsCalculator$lambda$3$Type(){ -} - -defineClass(1507, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$3$Type); -_.test_0 = function test_36(arg0){ - return $hasProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$3$Type', 1507); -function FinalSplineBendpointsCalculator$lambda$4$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1508, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$4$Type); -_.accept = function accept_72(arg0){ - $calculateControlPoints(this.$$outer_0, castTo(arg0, 128)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$4$Type', 1508); -function FinalSplineBendpointsCalculator$lambda$5$Type(){ -} - -defineClass(1509, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$5$Type); -_.accept = function accept_73(arg0){ - reverse_2(castTo(arg0, 17).bendPoints); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$5$Type', 1509); -function $getMirroredPortSideX(side){ - switch (side.ordinal) { - case 2: - return $clinit_PortSide() , WEST_2; - case 4: - return $clinit_PortSide() , EAST_2; - default:return side; - } -} - -function $getMirroredPortSideY(side){ - switch (side.ordinal) { - case 1: - return $clinit_PortSide() , SOUTH_2; - case 3: - return $clinit_PortSide() , NORTH_3; - default:return side; - } -} - -function $mirrorAllX(layeredGraph, nodes){ - $mirrorX(nodes, layeredGraph); - $mirrorX_1(layeredGraph.padding); - $mirrorX_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); -} - -function $mirrorAllY(layeredGraph, nodes){ - $mirrorY(nodes, layeredGraph); - $mirrorY_1(layeredGraph.padding); - $mirrorY_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); -} - -function $mirrorInLayerConstraintY(node){ - switch (castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303).ordinal) { - case 1: - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); - break; - case 2: - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); - } -} - -function $mirrorLayerConstraintX(node){ - switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 1: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); - break; - case 2: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST_SEPARATE_0)); - break; - case 3: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); - break; - case 4: - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST_SEPARATE_0)); - } -} - -function $mirrorNodeLabelPlacementX(shape_0){ - var oldPlacement; - if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { - return; - } - oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); - if (oldPlacement.contains(($clinit_NodeLabelPlacement() , H_LEFT_0))) { - oldPlacement.remove_1(H_LEFT_0); - oldPlacement.add_2(H_RIGHT_0); - } - else if (oldPlacement.contains(H_RIGHT_0)) { - oldPlacement.remove_1(H_RIGHT_0); - oldPlacement.add_2(H_LEFT_0); - } -} - -function $mirrorNodeLabelPlacementY(shape_0){ - var oldPlacement; - if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { - return; - } - oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); - if (oldPlacement.contains(($clinit_NodeLabelPlacement() , V_TOP_0))) { - oldPlacement.remove_1(V_TOP_0); - oldPlacement.add_2(V_BOTTOM_0); - } - else if (oldPlacement.contains(V_BOTTOM_0)) { - oldPlacement.remove_1(V_BOTTOM_0); - oldPlacement.add_2(V_TOP_0); - } -} - -function $mirrorX(nodes, graph){ - var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; - offset = 0; - if (graph.size_0.x_0 == 0) { - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - offset = $wnd.Math.max(offset, node.pos.x_0 + node.size_0.x_0 + node.margin.right); - } - } - else { - offset = graph.size_0.x_0 - graph.offset.x_0; - } - offset -= graph.offset.x_0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $mirrorX_0(node.pos, offset - node.size_0.x_0); - $mirrorX_1(node.padding); - $mirrorNodeLabelPlacementX(node); - (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorX_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.x_0); - switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { - case 1: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); - break; - case 2: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); - } - nodeSize = node.size_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $mirrorX_0(port.pos, nodeSize.x_0 - port.size_0.x_0); - $mirrorX_0(port.anchor, port.size_0.x_0); - $setSide(port, $getMirroredPortSideX(port.side)); - index_0 = castTo($getProperty(port, PORT_INDEX), 19); - !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - bendPoint.x_0 = offset - bendPoint.x_0; - } - junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); - if (junctionPoints) { - for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - jp.x_0 = offset - jp.x_0; - } - } - for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator0), 70); - $mirrorX_0(label_0.pos, offset - label_0.size_0.x_0); - } - } - for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator1), 70); - $mirrorX_0(label_0.pos, port.size_0.x_0 - label_0.size_0.x_0); - } - } - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideX(castTo($getProperty(node, EXT_PORT_SIDE), 61))); - $mirrorLayerConstraintX(node); - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $mirrorNodeLabelPlacementX(label_0); - $mirrorX_0(label_0.pos, nodeSize.x_0 - label_0.size_0.x_0); - } - } -} - -function $mirrorX_0(v, offset){ - v.x_0 = offset - v.x_0; -} - -function $mirrorX_1(spacing){ - var oldLeft, oldRight; - oldLeft = spacing.left; - oldRight = spacing.right; - spacing.left = oldRight; - spacing.right = oldLeft; -} - -function $mirrorY(nodes, graph){ - var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, node$iterator0, nodeSize, offset, port, port$iterator; - offset = 0; - if (graph.size_0.y_0 == 0) { - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - offset = $wnd.Math.max(offset, node.pos.y_0 + node.size_0.y_0 + node.margin.bottom); - } - } - else { - offset = graph.size_0.y_0 - graph.offset.y_0; - } - offset -= graph.offset.y_0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $mirrorY_0(node.pos, offset - node.size_0.y_0); - $mirrorY_1(node.padding); - $mirrorNodeLabelPlacementY(node); - (!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(($clinit_LayeredOptions() , POSITION)) && $mirrorY_0(castTo($getProperty(node, POSITION), 8), offset - node.size_0.y_0); - switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { - case 3: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); - break; - case 4: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); - } - nodeSize = node.size_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $mirrorY_0(port.pos, nodeSize.y_0 - port.size_0.y_0); - $mirrorY_0(port.anchor, port.size_0.y_0); - $setSide(port, $getMirroredPortSideY(port.side)); - index_0 = castTo($getProperty(port, PORT_INDEX), 19); - !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - bendPoint.y_0 = offset - bendPoint.y_0; - } - junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); - if (junctionPoints) { - for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - jp.y_0 = offset - jp.y_0; - } - } - for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator0), 70); - $mirrorY_0(label_0.pos, offset - label_0.size_0.y_0); - } - } - for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator1), 70); - $mirrorY_0(label_0.pos, port.size_0.y_0 - label_0.size_0.y_0); - } - } - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $getMirroredPortSideY(castTo($getProperty(node, EXT_PORT_SIDE), 61))); - $mirrorInLayerConstraintY(node); - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $mirrorNodeLabelPlacementY(label_0); - $mirrorY_0(label_0.pos, nodeSize.y_0 - label_0.size_0.y_0); - } - } -} - -function $mirrorY_0(v, offset){ - v.y_0 = offset - v.y_0; -} - -function $mirrorY_1(spacing){ - var oldBottom, oldTop; - oldTop = spacing.top_0; - oldBottom = spacing.bottom; - spacing.top_0 = oldBottom; - spacing.bottom = oldTop; -} - -function $process_12(this$static, layeredGraph, monitor){ - var congruency, layer, layer$iterator, nodes; - $begin(monitor, 'Graph transformation (' + this$static.mode + ')', 1); - nodes = newArrayList(layeredGraph.layerlessNodes); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $addAll_2(nodes, layer.nodes); - } - congruency = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , DIRECTION_CONGRUENCY_0)), 419); - if (congruency == ($clinit_DirectionCongruency() , READING_DIRECTION)) { - switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { - case 2: - $mirrorAllX(layeredGraph, nodes); - break; - case 3: - $transposeAll(layeredGraph, nodes); - break; - case 4: - if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { - $transposeAll(layeredGraph, nodes); - $mirrorAllY(layeredGraph, nodes); - } - else { - $mirrorAllY(layeredGraph, nodes); - $transposeAll(layeredGraph, nodes); - } - - } - } - else { - if (this$static.mode == ($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)) { - switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { - case 2: - $mirrorAllX(layeredGraph, nodes); - $mirrorAllY(layeredGraph, nodes); - break; - case 3: - $transposeAll(layeredGraph, nodes); - $mirrorAllX(layeredGraph, nodes); - break; - case 4: - $mirrorAllX(layeredGraph, nodes); - $transposeAll(layeredGraph, nodes); - } - } - else { - switch (castTo($getProperty(layeredGraph, DIRECTION), 103).ordinal) { - case 2: - $mirrorAllX(layeredGraph, nodes); - $mirrorAllY(layeredGraph, nodes); - break; - case 3: - $mirrorAllX(layeredGraph, nodes); - $transposeAll(layeredGraph, nodes); - break; - case 4: - $transposeAll(layeredGraph, nodes); - $mirrorAllX(layeredGraph, nodes); - } - } - } - $done_0(monitor); -} - -function $transpose(nodes){ - var bendPoint, bendPoint$iterator, edge, edge$iterator, index_0, jp, jp$iterator, junctionPoints, label_0, label$iterator, label$iterator0, label$iterator1, node, node$iterator, port, port$iterator; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $transpose_0(node.pos); - $transpose_0(node.size_0); - $transpose_1(node.padding); - $transposeNodeLabelPlacement(node); - $transposeProperties(node); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $transpose_0(port.pos); - $transpose_0(port.anchor); - $transpose_0(port.size_0); - $setSide(port, $transposePortSide(port.side)); - index_0 = castTo($getProperty(port, ($clinit_LayeredOptions() , PORT_INDEX)), 19); - !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - $transpose_0(bendPoint); - } - junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); - if (junctionPoints) { - for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - $transpose_0(jp); - } - } - for (label$iterator0 = new ArrayList$1(edge.labels); label$iterator0.i < label$iterator0.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator0), 70); - $transpose_0(label_0.pos); - $transpose_0(label_0.size_0); - } - } - for (label$iterator1 = new ArrayList$1(port.labels); label$iterator1.i < label$iterator1.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator1), 70); - $transpose_0(label_0.pos); - $transpose_0(label_0.size_0); - } - } - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - $setProperty_0(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE), $transposePortSide(castTo($getProperty(node, EXT_PORT_SIDE), 61))); - $transposeLayerConstraint(node); - } - for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $transposeNodeLabelPlacement(label_0); - $transpose_0(label_0.size_0); - $transpose_0(label_0.pos); - } - } -} - -function $transpose_0(v){ - var temp; - temp = v.x_0; - v.x_0 = v.y_0; - v.y_0 = temp; -} - -function $transpose_1(spacing){ - var oldBottom, oldLeft, oldRight, oldTop; - oldTop = spacing.top_0; - oldBottom = spacing.bottom; - oldLeft = spacing.left; - oldRight = spacing.right; - spacing.top_0 = oldLeft; - spacing.bottom = oldRight; - spacing.left = oldTop; - spacing.right = oldBottom; -} - -function $transposeAll(layeredGraph, nodes){ - var oldSide; - $transpose(nodes); - oldSide = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); - !!oldSide && $setProperty_0(layeredGraph, EDGE_LABELS_SIDE_SELECTION_0, $transpose_2(oldSide)); - $transpose_0(layeredGraph.offset); - $transpose_0(layeredGraph.size_0); - $transpose_1(layeredGraph.padding); - $transpose_1(castTo($getProperty(layeredGraph, NODE_LABELS_PADDING), 207)); -} - -function $transposeLayerConstraint(node){ - var inLayerConstraint, layerConstraint; - layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - inLayerConstraint = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); - if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , TOP_1)); - } - else if (layerConstraint == LAST_SEPARATE_0) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, NONE_7); - $setProperty_0(node, IN_LAYER_CONSTRAINT, ($clinit_InLayerConstraint() , BOTTOM_0)); - } - else if (inLayerConstraint == ($clinit_InLayerConstraint() , TOP_1)) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, FIRST_SEPARATE_0); - $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); - } - else if (inLayerConstraint == BOTTOM_0) { - $setProperty_0(node, LAYERING_LAYER_CONSTRAINT_0, LAST_SEPARATE_0); - $setProperty_0(node, IN_LAYER_CONSTRAINT, NONE_6); - } -} - -function $transposeNodeLabelPlacement(shape_0){ - var all, newPlacement, oldPlacement; - if (!$hasProperty(shape_0, ($clinit_LayeredOptions() , NODE_LABELS_PLACEMENT_1))) { - return; - } - oldPlacement = castTo($getProperty(shape_0, NODE_LABELS_PLACEMENT_1), 21); - if (oldPlacement.isEmpty()) { - return; - } - newPlacement = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - oldPlacement.contains(($clinit_NodeLabelPlacement() , INSIDE))?$add_5(newPlacement, INSIDE):$add_5(newPlacement, OUTSIDE); - oldPlacement.contains(H_PRIORITY) || $add_5(newPlacement, H_PRIORITY); - oldPlacement.contains(H_LEFT_0)?$add_5(newPlacement, V_TOP_0):oldPlacement.contains(H_CENTER_0)?$add_5(newPlacement, V_CENTER_0):oldPlacement.contains(H_RIGHT_0) && $add_5(newPlacement, V_BOTTOM_0); - oldPlacement.contains(V_TOP_0)?$add_5(newPlacement, H_LEFT_0):oldPlacement.contains(V_CENTER_0)?$add_5(newPlacement, H_CENTER_0):oldPlacement.contains(V_BOTTOM_0) && $add_5(newPlacement, H_RIGHT_0); - $setProperty_0(shape_0, NODE_LABELS_PLACEMENT_1, newPlacement); -} - -function $transposePortSide(side){ - switch (side.ordinal) { - case 1: - return $clinit_PortSide() , WEST_2; - case 4: - return $clinit_PortSide() , NORTH_3; - case 3: - return $clinit_PortSide() , EAST_2; - case 2: - return $clinit_PortSide() , SOUTH_2; - default:return $clinit_PortSide() , UNDEFINED_5; - } -} - -function $transposeProperties(node){ - var minSize, pos, tmp; - minSize = castTo($getProperty(node, ($clinit_LayeredOptions() , NODE_SIZE_MINIMUM_0)), 8); - $setProperty_0(node, NODE_SIZE_MINIMUM_0, new KVector_1(minSize.y_0, minSize.x_0)); - switch (castTo($getProperty(node, ALIGNMENT), 248).ordinal) { - case 1: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , TOP_2)); - break; - case 2: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , BOTTOM_1)); - break; - case 3: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , LEFT_5)); - break; - case 4: - $setProperty_0(node, ALIGNMENT, ($clinit_Alignment() , RIGHT_5)); - } - if ((!node.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):node.propertyMap).containsKey(POSITION)) { - pos = castTo($getProperty(node, POSITION), 8); - tmp = pos.x_0; - pos.x_0 = pos.y_0; - pos.y_0 = tmp; - } -} - -function GraphTransformer(themode){ - this.mode = themode; -} - -defineClass(792, 1, $intern_105, GraphTransformer); -_.process = function process_10(layeredGraph, monitor){ - $process_12(this, castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer', 792); -function $clinit_GraphTransformer$Mode(){ - $clinit_GraphTransformer$Mode = emptyMethod; - TO_INTERNAL_LTR = new GraphTransformer$Mode('TO_INTERNAL_LTR', 0); - TO_INPUT_DIRECTION = new GraphTransformer$Mode('TO_INPUT_DIRECTION', 1); -} - -function GraphTransformer$Mode(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_31(name_0){ - $clinit_GraphTransformer$Mode(); - return valueOf(($clinit_GraphTransformer$Mode$Map() , $MAP_19), name_0); -} - -function values_37(){ - $clinit_GraphTransformer$Mode(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]); -} - -defineClass(511, 22, {3:1, 35:1, 22:1, 511:1}, GraphTransformer$Mode); -var TO_INPUT_DIRECTION, TO_INTERNAL_LTR; -var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer/Mode', 511, Ljava_lang_Enum_2_classLit, values_37, valueOf_31); -function $clinit_GraphTransformer$Mode$Map(){ - $clinit_GraphTransformer$Mode$Map = emptyMethod; - $MAP_19 = createValueOfMap(($clinit_GraphTransformer$Mode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer$Mode_2_classLit, 1), $intern_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]))); -} - -var $MAP_19; -function $graphLayoutToNode(node, lgraph){ - var actualGraphSize, childNode, childNode$iterator, origin_0, port, portPosition; - for (childNode$iterator = new ArrayList$1(lgraph.layerlessNodes); childNode$iterator.i < childNode$iterator.this$01.array.length;) { - childNode = castTo($next_7(childNode$iterator), 10); - origin_0 = $getProperty(childNode, ($clinit_InternalProperties_1() , ORIGIN_0)); - if (instanceOf(origin_0, 11)) { - port = castTo(origin_0, 11); - portPosition = getExternalPortPosition(lgraph, childNode, port.size_0.x_0, port.size_0.y_0); - port.pos.x_0 = portPosition.x_0; - port.pos.y_0 = portPosition.y_0; - $setSide(port, castTo($getProperty(childNode, EXT_PORT_SIDE), 61)); - } - } - actualGraphSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - $setProperty_0(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - castTo($getProperty($getGraph(node), GRAPH_PROPERTIES), 21).add_2(NON_FREE_PORTS); - resizeNode(node, actualGraphSize, false); - } - else { - resizeNode(node, actualGraphSize, true); - } -} - -function $process_13(graph, progressMonitor){ - var layer, layer$iterator, node, node$iterator; - $begin(progressMonitor, 'Resize child graph to fit parent.', 1); - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $addAll_2(graph.layerlessNodes, layer.nodes); - layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - } - graph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $resizeGraph_0(graph); - !!graph.parentNode && $graphLayoutToNode(graph.parentNode, graph); - $done_0(progressMonitor); -} - -function $resizeGraph_0(lgraph){ - var adjustedSize, calculatedSize, minSize, sizeConstraint, sizeOptions; - sizeConstraint = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 21); - sizeOptions = castTo($getProperty(lgraph, NODE_SIZE_OPTIONS_1), 21); - calculatedSize = new KVector_1(lgraph.size_0.x_0 + lgraph.padding.left + lgraph.padding.right, lgraph.size_0.y_0 + lgraph.padding.top_0 + lgraph.padding.bottom); - adjustedSize = new KVector_2(calculatedSize); - if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - minSize = castTo($getProperty(lgraph, NODE_SIZE_MINIMUM_0), 8); - if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - adjustedSize.x_0 = $wnd.Math.max(calculatedSize.x_0, minSize.x_0); - adjustedSize.y_0 = $wnd.Math.max(calculatedSize.y_0, minSize.y_0); - } - $resizeGraphNoReallyIMeanIt_0(lgraph, calculatedSize, adjustedSize); -} - -function $resizeGraphNoReallyIMeanIt_0(lgraph, oldSize, newSize){ - var contentAlignment, extPortSide, node, node$iterator, padding; - contentAlignment = castTo($getProperty(lgraph, ($clinit_LayeredOptions() , CONTENT_ALIGNMENT)), 21); - newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(lgraph.offset.x_0 += (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (lgraph.offset.x_0 += newSize.x_0 - oldSize.x_0)); - newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(lgraph.offset.y_0 += (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (lgraph.offset.y_0 += newSize.y_0 - oldSize.y_0)); - if (castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)) && (newSize.x_0 > oldSize.x_0 || newSize.y_0 > oldSize.y_0)) { - for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); - extPortSide == ($clinit_PortSide() , EAST_2)?(node.pos.x_0 += newSize.x_0 - oldSize.x_0):extPortSide == SOUTH_2 && (node.pos.y_0 += newSize.y_0 - oldSize.y_0); - } - } - } - padding = lgraph.padding; - lgraph.size_0.x_0 = newSize.x_0 - padding.left - padding.right; - lgraph.size_0.y_0 = newSize.y_0 - padding.top_0 - padding.bottom; -} - -function HierarchicalNodeResizingProcessor(){ -} - -defineClass(1510, 1, $intern_105, HierarchicalNodeResizingProcessor); -_.process = function process_11(graph, progressMonitor){ - $process_13(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalNodeResizingProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalNodeResizingProcessor', 1510); -function $createDummy(layeredGraph, originalDummy){ - var inputPort, newDummy, outputPort; - newDummy = new LNode(layeredGraph); - $copyProperties(newDummy, originalDummy); - $setProperty_0(newDummy, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY), originalDummy); - $setProperty_0(newDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(newDummy, ALIGNMENT, ($clinit_Alignment() , CENTER_4)); - $setType(newDummy, ($clinit_LNode$NodeType() , EXTERNAL_PORT)); - inputPort = new LPort; - $setNode(inputPort, newDummy); - $setSide(inputPort, ($clinit_PortSide() , WEST_2)); - outputPort = new LPort; - $setNode(outputPort, newDummy); - $setSide(outputPort, EAST_2); - return newDummy; -} - -function $isNorthernOrSouthernDummy(node){ - var nodeType, portSide; - nodeType = node.type_0; - if (nodeType == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - portSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - return portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2; - } - return false; -} - -function $process_14(layeredGraph, monitor){ - $begin(monitor, 'Hierarchical port constraint processing', 1); - $processEasternAndWesternPortDummies(layeredGraph); - $processNorthernAndSouthernPortDummies(layeredGraph); - $done_0(monitor); -} - -function $processEasternAndWesternPortDummies(layeredGraph){ - var layers; - if (!$isOrderFixed(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - return; - } - layers = layeredGraph.layers; - $processEasternAndWesternPortDummies_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29))); - $processEasternAndWesternPortDummies_0(castTo($get_11(layers, layers.array.length - 1), 29)); -} - -function $processEasternAndWesternPortDummies_0(layer){ - var externalPortSide, lastHierarchicalDummy, node, node$array, node$index, node$max, nodes; - nodes = toNodeArray(layer.nodes); - sort_5(nodes, new HierarchicalPortConstraintProcessor$NodeComparator); - lastHierarchicalDummy = null; - for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - break; - } - externalPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (externalPortSide != ($clinit_PortSide() , WEST_2) && externalPortSide != EAST_2) { - continue; - } - !!lastHierarchicalDummy && castTo($getProperty(lastHierarchicalDummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(node); - lastHierarchicalDummy = node; - } -} - -function $processNorthernAndSouthernPortDummies(layeredGraph){ - var currLayerIdx, currentLayer, currentNode, currentNode$iterator, dummy, dummy$iterator, edge, edge$iterator, edge$iterator0, extPortToDummyNodeMap, i, layer, layerCount, layers, newDummyNodes, nextExtPortToDummyNodesMap, nextLayerDummy, nextNewDummyNodes, nodeList, originalDummy, originalDummy$iterator, originalExternalPortDummies, portConstraints, prevExtPortToDummyNodesMap, prevLayerDummy, prevNewDummyNodes, sourceNode, targetNode; - portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - if (!(portConstraints != ($clinit_PortConstraints() , FREE) && portConstraints != UNDEFINED_4)) { - return; - } - layers = layeredGraph.layers; - layerCount = layers.array.length; - extPortToDummyNodeMap = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); - newDummyNodes = new ArrayList_0((checkNonnegative(layerCount + 2, 'arraySize') , saturatedCast(add_20(add_20(5, layerCount + 2), (layerCount + 2) / 10 | 0)))); - $add_3(extPortToDummyNodeMap, new HashMap); - $add_3(extPortToDummyNodeMap, new HashMap); - $add_3(newDummyNodes, new ArrayList); - $add_3(newDummyNodes, new ArrayList); - originalExternalPortDummies = new ArrayList; - for (currLayerIdx = 0; currLayerIdx < layerCount; currLayerIdx++) { - currentLayer = (checkCriticalElementIndex(currLayerIdx, layers.array.length) , castTo(layers.array[currLayerIdx], 29)); - prevExtPortToDummyNodesMap = (checkCriticalElementIndex(currLayerIdx, extPortToDummyNodeMap.array.length) , castTo(extPortToDummyNodeMap.array[currLayerIdx], 83)); - nextExtPortToDummyNodesMap = new HashMap; - extPortToDummyNodeMap.array[extPortToDummyNodeMap.array.length] = nextExtPortToDummyNodesMap; - prevNewDummyNodes = (checkCriticalElementIndex(currLayerIdx, newDummyNodes.array.length) , castTo(newDummyNodes.array[currLayerIdx], 15)); - nextNewDummyNodes = new ArrayList; - newDummyNodes.array[newDummyNodes.array.length] = nextNewDummyNodes; - for (currentNode$iterator = new ArrayList$1(currentLayer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { - currentNode = castTo($next_7(currentNode$iterator), 10); - if ($isNorthernOrSouthernDummy(currentNode)) { - originalExternalPortDummies.array[originalExternalPortDummies.array.length] = currentNode; - continue; - } - for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { - edge = castTo($next_0(edge$iterator0), 17); - sourceNode = edge.source.owner; - if (!$isNorthernOrSouthernDummy(sourceNode)) { - continue; - } - prevLayerDummy = castTo(prevExtPortToDummyNodesMap.get_3($getProperty(sourceNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); - if (!prevLayerDummy) { - prevLayerDummy = $createDummy(layeredGraph, sourceNode); - prevExtPortToDummyNodesMap.put($getProperty(sourceNode, ORIGIN_0), prevLayerDummy); - prevNewDummyNodes.add_2(prevLayerDummy); - } - $setSource_0(edge, castTo($get_11(prevLayerDummy.ports, 1), 11)); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(currentNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - targetNode = edge.target.owner; - if (!$isNorthernOrSouthernDummy(targetNode)) { - continue; - } - nextLayerDummy = castTo($get_10(nextExtPortToDummyNodesMap, $getProperty(targetNode, ($clinit_InternalProperties_1() , ORIGIN_0))), 10); - if (!nextLayerDummy) { - nextLayerDummy = $createDummy(layeredGraph, targetNode); - $put_6(nextExtPortToDummyNodesMap, $getProperty(targetNode, ORIGIN_0), nextLayerDummy); - nextNewDummyNodes.array[nextNewDummyNodes.array.length] = nextLayerDummy; - } - $setTarget_0(edge, castTo($get_11(nextLayerDummy.ports, 0), 11)); - } - } - } - for (i = 0; i < newDummyNodes.array.length; i++) { - nodeList = (checkCriticalElementIndex(i, newDummyNodes.array.length) , castTo(newDummyNodes.array[i], 15)); - if (nodeList.isEmpty()) { - continue; - } - layer = null; - if (i == 0) { - layer = new Layer(layeredGraph); - checkCriticalPositionIndex(0, layers.array.length); - insertTo(layers.array, 0, layer); - } - else if (i == extPortToDummyNodeMap.array.length - 1) { - layer = new Layer(layeredGraph); - layers.array[layers.array.length] = layer; - } - else { - layer = (checkCriticalElementIndex(i - 1, layers.array.length) , castTo(layers.array[i - 1], 29)); - } - for (dummy$iterator = nodeList.iterator_0(); dummy$iterator.hasNext_0();) { - dummy = castTo(dummy$iterator.next_1(), 10); - $setLayer_0(dummy, layer); - } - } - for (originalDummy$iterator = new ArrayList$1(originalExternalPortDummies); originalDummy$iterator.i < originalDummy$iterator.this$01.array.length;) { - originalDummy = castTo($next_7(originalDummy$iterator), 10); - $setLayer_0(originalDummy, null); - } - $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES), originalExternalPortDummies); -} - -function HierarchicalPortConstraintProcessor(){ -} - -defineClass(1511, 1, $intern_105, HierarchicalPortConstraintProcessor); -_.process = function process_12(layeredGraph, monitor){ - $process_14(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor', 1511); -function $compare_12(node1, node2){ - var nodePos1, nodePos2, nodeType1, nodeType2; - nodeType1 = node1.type_0; - nodePos1 = $doubleValue(castToDouble($getProperty(node1, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))); - nodeType2 = node2.type_0; - nodePos2 = $doubleValue(castToDouble($getProperty(node2, PORT_RATIO_OR_POSITION_0))); - return nodeType2 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)?-1:nodeType1 != EXTERNAL_PORT?1:nodePos1 == nodePos2?0:nodePos1 < nodePos2?-1:1; -} - -function HierarchicalPortConstraintProcessor$NodeComparator(){ -} - -defineClass(1512, 1, $intern_88, HierarchicalPortConstraintProcessor$NodeComparator); -_.compare_1 = function compare_43(node1, node2){ - return $compare_12(castTo(node1, 10), castTo(node2, 10)); -} -; -_.equals_0 = function equals_107(other){ - return this === other; -} -; -_.reversed = function reversed_35(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor$NodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor/NodeComparator', 1512); -function $process_15(layeredGraph, monitor){ - var delta, edgeSpacing, layer, layer$iterator, node, node$iterator, northernDummies, side, southernDummies; - $begin(monitor, 'Hierarchical port dummy size processing', 1); - northernDummies = new ArrayList; - southernDummies = new ArrayList; - edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)))); - delta = edgeSpacing * 2; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - northernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - southernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - side = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - side == ($clinit_PortSide() , NORTH_3)?(northernDummies.array[northernDummies.array.length] = node , true):side == SOUTH_2 && (southernDummies.array[southernDummies.array.length] = node , true); - } - } - $setWidths(northernDummies, true, delta); - $setWidths(southernDummies, false, delta); - } - $done_0(monitor); -} - -function $setWidths(nodes, topDown, delta){ - var currentWidth, node, node$iterator, port, port$iterator, step; - currentWidth = 0; - step = delta; - if (!topDown) { - currentWidth = delta * (nodes.array.length - 1); - step *= -1; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setProperty_0(node, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , CENTER_4)); - node.size_0.x_0 = currentWidth; - for (port$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - port.pos.x_0 = currentWidth; - } - currentWidth += step; - } -} - -function HierarchicalPortDummySizeProcessor(){ -} - -defineClass(1513, 1, $intern_105, HierarchicalPortDummySizeProcessor); -_.process = function process_13(layeredGraph, monitor){ - $process_15(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortDummySizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortDummySizeProcessor', 1513); -function $assignAscendingCoordinates(dummies, graph){ - var currentMargin, currentPosition, currentSize, delta, graphSize, index_0, nextValidCoordinate, spacing; - spacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); - nextValidCoordinate = dummies[0].pos.x_0 + dummies[0].size_0.x_0 + dummies[0].margin.right + spacing; - for (index_0 = 1; index_0 < dummies.length; index_0++) { - currentPosition = dummies[index_0].pos; - currentSize = dummies[index_0].size_0; - currentMargin = dummies[index_0].margin; - delta = currentPosition.x_0 - currentMargin.left - nextValidCoordinate; - delta < 0 && (currentPosition.x_0 -= delta); - graphSize = graph.size_0; - graphSize.x_0 = $wnd.Math.max(graphSize.x_0, currentPosition.x_0 + currentSize.x_0); - nextValidCoordinate = currentPosition.x_0 + currentSize.x_0 + currentMargin.right + spacing; - } -} - -function $calculateNorthSouthDummyPositions(dummy){ - var anchor, connectedPort, connectedPort$iterator, dummyInPort, offset, posSum; - dummyInPort = castTo($get_11(dummy.ports, 0), 11); - if (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length == 0) { - dummy.pos.x_0 = 0; - } - else { - posSum = 0; - for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(dummyInPort), new LPort$2(dummyInPort)]))); $hasNext_1(connectedPort$iterator);) { - connectedPort = castTo($next_0(connectedPort$iterator), 11); - posSum += connectedPort.owner.pos.x_0 + connectedPort.pos.x_0 + connectedPort.anchor.x_0; - } - anchor = castTo($getProperty(dummy, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8); - offset = !anchor?0:anchor.x_0; - dummy.pos.x_0 = posSum / (dummyInPort.incomingEdges.array.length + dummyInPort.outgoingEdges.array.length) - offset; - } -} - -function $correctSlantedEdgeSegments(layer){ - var bendPoints, edge, edge$iterator, extPortSide, firstBendPoint, lastBendPoint, node, node$iterator, sourcePort, targetPort; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (extPortSide == ($clinit_PortSide() , EAST_2) || extPortSide == WEST_2) { - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - bendPoints = edge.bendPoints; - if (bendPoints.size_0 == 0) { - continue; - } - sourcePort = edge.source; - if (sourcePort.owner == node) { - firstBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.header.next_0.value_0, 8)); - firstBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; - } - targetPort = edge.target; - if (targetPort.owner == node) { - lastBendPoint = (checkCriticalElement(bendPoints.size_0 != 0) , castTo(bendPoints.tail.prev.value_0, 8)); - lastBendPoint.y_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; - } - } - } - } -} - -function $ensureUniquePositions(dummies, graph){ - var dummyArray; - if (dummies.array.length == 0) { - return; - } - dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); - sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$1); - $assignAscendingCoordinates(dummyArray, graph); -} - -function $fixCoordinates(layer, constraints, graph){ - var extPortSide, extPortSize, graphActualSize, newActualGraphHeight, node, node$iterator, node$iterator0, nodePosition, offset, padding, ratio, requiredActualGraphHeight; - padding = graph.padding; - offset = graph.offset; - graphActualSize = new KVector_1(graph.size_0.x_0 + graph.padding.left + graph.padding.right, graph.size_0.y_0 + graph.padding.top_0 + graph.padding.bottom); - newActualGraphHeight = graphActualSize.y_0; - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - extPortSize = castTo($getProperty(node, EXT_PORT_SIZE), 8); - nodePosition = node.pos; - switch (extPortSide.ordinal) { - case 2: - nodePosition.x_0 = graph.size_0.x_0 + padding.right - offset.x_0; - break; - case 4: - nodePosition.x_0 = -offset.x_0 - padding.left; - } - requiredActualGraphHeight = 0; - switch (extPortSide.ordinal) { - case 2: - case 4: - if (constraints == ($clinit_PortConstraints() , FIXED_RATIO)) { - ratio = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); - nodePosition.y_0 = graphActualSize.y_0 * ratio - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; - requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; - $borderToContentAreaCoordinates(node, false, true); - } - else if (constraints == FIXED_POS) { - nodePosition.y_0 = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))) - castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_ANCHOR)), 8).y_0; - requiredActualGraphHeight = nodePosition.y_0 + extPortSize.y_0; - $borderToContentAreaCoordinates(node, false, true); - } - - } - newActualGraphHeight = $wnd.Math.max(newActualGraphHeight, requiredActualGraphHeight); - } - graph.size_0.y_0 += newActualGraphHeight - graphActualSize.y_0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - nodePosition = node.pos; - switch (extPortSide.ordinal) { - case 1: - nodePosition.y_0 = -offset.y_0 - padding.top_0; - break; - case 3: - nodePosition.y_0 = graph.size_0.y_0 + padding.bottom - offset.y_0; - } - } -} - -function $process_16(this$static, layeredGraph, monitor){ - var northSouthDummies, constraints, layers, layers_0; - $begin(monitor, 'Orthogonally routing hierarchical port edges', 1); - this$static.northernExtPortEdgeRoutingHeight = 0; - northSouthDummies = $restoreNorthSouthDummies(layeredGraph); - $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies); - $routeEdges(this$static, layeredGraph, northSouthDummies); - $removeTemporaryNorthSouthDummies(layeredGraph); - constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - layers = layeredGraph.layers; - $fixCoordinates((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), constraints, layeredGraph); - $fixCoordinates(castTo($get_11(layers, layers.array.length - 1), 29), constraints, layeredGraph); - layers_0 = layeredGraph.layers; - $correctSlantedEdgeSegments((checkCriticalElementIndex(0, layers_0.array.length) , castTo(layers_0.array[0], 29))); - $correctSlantedEdgeSegments(castTo($get_11(layers_0, layers_0.array.length - 1), 29)); - $done_0(monitor); -} - -function $removeTemporaryNorthSouthDummies(layeredGraph){ - var edge, edge$array, edge$array0, edge$index, edge$index0, edge$max, edge$max0, edges, firstBendPoint, incomingEdgeBendPoints, iter, lastBendPoint, layer, layer$iterator, node, node$iterator, node$iterator0, nodeInPort, nodeOriginPort, nodeOutPort, nodeToOriginEdge, nodesToRemove, outgoingEdgeBendPoints, port, port$iterator, replacedDummy, replacedDummyPort; - nodesToRemove = new ArrayList; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - if (!$hasProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMY))) { - continue; - } - nodeInPort = null; - nodeOutPort = null; - nodeOriginPort = null; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 4: - nodeInPort = port; - break; - case 2: - nodeOutPort = port; - break; - default:nodeOriginPort = port; - } - } - nodeToOriginEdge = castTo($get_11(nodeOriginPort.outgoingEdges, 0), 17); - incomingEdgeBendPoints = new KVectorChain_0(nodeToOriginEdge.bendPoints); - firstBendPoint = new KVector_2(nodeOriginPort.pos); - $add_19(firstBendPoint, node.pos); - iter = $listIterator_2(incomingEdgeBendPoints, 0); - $add_8(iter, firstBendPoint); - outgoingEdgeBendPoints = reverse_3(nodeToOriginEdge.bendPoints); - lastBendPoint = new KVector_2(nodeOriginPort.pos); - $add_19(lastBendPoint, node.pos); - $addNode_0(outgoingEdgeBendPoints, lastBendPoint, outgoingEdgeBendPoints.tail.prev, outgoingEdgeBendPoints.tail); - replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); - replacedDummyPort = castTo($get_11(replacedDummy.ports, 0), 11); - edges = castTo($toArray_2(nodeInPort.incomingEdges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, 0, 0, 1)), 474); - for (edge$array0 = edges , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { - edge = edge$array0[edge$index0]; - $setTarget_0(edge, replacedDummyPort); - $addAllAsCopies(edge.bendPoints, edge.bendPoints.size_0, incomingEdgeBendPoints); - } - edges = toEdgeArray(nodeOutPort.outgoingEdges); - for (edge$array = edges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setSource_0(edge, replacedDummyPort); - $addAllAsCopies(edge.bendPoints, 0, outgoingEdgeBendPoints); - } - $setSource_0(nodeToOriginEdge, null); - $setTarget_0(nodeToOriginEdge, null); - nodesToRemove.array[nodesToRemove.array.length] = node; - } - } - for (node$iterator = new ArrayList$1(nodesToRemove); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - } -} - -function $restoreDummy(dummy, graph){ - var currentY, dummyPort, label_0, label$iterator, labelLabelSpacing, portLabelPlacement, portLabelSpacingHorizontal, portLabelSpacingVertical, portSide, xCenterRelativeToPort; - portSide = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - portSide == ($clinit_PortSide() , NORTH_3)?$setSide(dummyPort, SOUTH_2):portSide == SOUTH_2 && $setSide(dummyPort, NORTH_3); - if (castTo($getProperty(graph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).contains(($clinit_SizeConstraint() , PORT_LABELS))) { - portLabelSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_HORIZONTAL))); - portLabelSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); - portLabelPlacement = castTo($getProperty(graph, PORT_LABELS_PLACEMENT_1), 21); - if (portLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { - currentY = portLabelSpacingVertical; - xCenterRelativeToPort = dummy.size_0.x_0 / 2 - dummyPort.pos.x_0; - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - label_0.pos.y_0 = currentY; - label_0.pos.x_0 = xCenterRelativeToPort - label_0.size_0.x_0 / 2; - currentY += label_0.size_0.y_0 + labelLabelSpacing; - } - } - else if (portLabelPlacement.contains(OUTSIDE_0)) { - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - label_0.pos.x_0 = portLabelSpacingHorizontal + dummy.size_0.x_0 - dummyPort.pos.x_0; - } - } - $processNode(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(graph, false, false, new LGraphAdapters$lambda$0$Type))), new LGraphAdapters$LNodeAdapter(null, dummy, false)); - } -} - -function $restoreNorthSouthDummies(layeredGraph){ - var dummy, dummy$iterator, dummy$iterator0, layer, layer$iterator, node, node$iterator, replacedDummy, restoredDummies, outPort, extPortSide, inPort, edge; - restoredDummies = new ArrayList; - if (!$hasProperty(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES))) { - return restoredDummies; - } - for (dummy$iterator0 = castTo($getProperty(layeredGraph, EXT_PORT_REPLACED_DUMMIES), 15).iterator_0(); dummy$iterator0.hasNext_0();) { - dummy = castTo(dummy$iterator0.next_1(), 10); - $restoreDummy(dummy, layeredGraph); - restoredDummies.array[restoredDummies.array.length] = dummy; - } - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - replacedDummy = castTo($getProperty(node, EXT_PORT_REPLACED_DUMMY), 10); - !!replacedDummy && (outPort = new LPort , $setNode(outPort, node) , extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61) , $setSide(outPort, extPortSide) , inPort = castTo($get_11(replacedDummy.ports, 0), 11) , edge = new LEdge , $setSource_0(edge, outPort) , $setTarget_0(edge, inPort) , undefined); - } - } - for (dummy$iterator = new ArrayList$1(restoredDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - $setLayer_0(dummy, castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29)); - } - return restoredDummies; -} - -function $restoreProperOrder(dummies, graph){ - var dummyArray; - if (dummies.array.length == 0) { - return; - } - dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); - sort_5(dummyArray, new HierarchicalPortOrthogonalEdgeRouter$2); - $assignAscendingCoordinates(dummyArray, graph); -} - -function $routeEdges(this$static, layeredGraph, northSouthDummies){ - var edge, edge$iterator, edgeSpacing, hierarchicalPortDummy, hierarchicalPortDummy$iterator, nodeSpacing, northernSourceLayer, northernTargetLayer, portSide, routingGenerator, slots, southernSourceLayer, southernTargetLayer; - northernSourceLayer = new LinkedHashSet; - northernTargetLayer = new LinkedHashSet; - southernSourceLayer = new LinkedHashSet; - southernTargetLayer = new LinkedHashSet; - nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); - for (hierarchicalPortDummy$iterator = new ArrayList$1(northSouthDummies); hierarchicalPortDummy$iterator.i < hierarchicalPortDummy$iterator.this$01.array.length;) { - hierarchicalPortDummy = castTo($next_7(hierarchicalPortDummy$iterator), 10); - portSide = castTo($getProperty(hierarchicalPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (portSide == ($clinit_PortSide() , NORTH_3)) { - northernTargetLayer.map_0.put(hierarchicalPortDummy, northernTargetLayer); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $add_6(northernSourceLayer, edge.source.owner); - } - } - else if (portSide == SOUTH_2) { - southernTargetLayer.map_0.put(hierarchicalPortDummy, southernTargetLayer); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hierarchicalPortDummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $add_6(southernSourceLayer, edge.source.owner); - } - } - } - if (northernSourceLayer.map_0.size_1() != 0) { - routingGenerator = new OrthogonalRoutingGenerator(2, edgeSpacing); - slots = $routeEdges_0(routingGenerator, layeredGraph, northernSourceLayer, northernTargetLayer, -nodeSpacing - layeredGraph.offset.y_0); - if (slots > 0) { - this$static.northernExtPortEdgeRoutingHeight = nodeSpacing + (slots - 1) * edgeSpacing; - layeredGraph.offset.y_0 += this$static.northernExtPortEdgeRoutingHeight; - layeredGraph.size_0.y_0 += this$static.northernExtPortEdgeRoutingHeight; - } - } - if (southernSourceLayer.map_0.size_1() != 0) { - routingGenerator = new OrthogonalRoutingGenerator(1, edgeSpacing); - slots = $routeEdges_0(routingGenerator, layeredGraph, southernSourceLayer, southernTargetLayer, layeredGraph.size_0.y_0 + nodeSpacing - layeredGraph.offset.y_0); - slots > 0 && (layeredGraph.size_0.y_0 += nodeSpacing + (slots - 1) * edgeSpacing); - } -} - -function $setNorthSouthDummyCoordinates(layeredGraph, northSouthDummies){ - var constraints, dummy, dummy$iterator, graphPadding, graphSize, graphWidth, northY, northernDummies, southY, southernDummies, anchor, offset, anchor_0, offset_0; - constraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - graphSize = layeredGraph.size_0; - graphPadding = layeredGraph.padding; - graphWidth = graphSize.x_0 + graphPadding.left + graphPadding.right; - northY = 0 - graphPadding.top_0 - layeredGraph.offset.y_0; - southY = graphSize.y_0 + graphPadding.top_0 + graphPadding.bottom - layeredGraph.offset.y_0; - northernDummies = new ArrayList; - southernDummies = new ArrayList; - for (dummy$iterator = new ArrayList$1(northSouthDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - switch (constraints.ordinal) { - case 1: - case 2: - case 3: - $calculateNorthSouthDummyPositions(dummy); - break; - case 4: - anchor = castTo($getProperty(dummy, PORT_ANCHOR), 8); - offset = !anchor?0:anchor.x_0; - dummy.pos.x_0 = graphWidth * $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset; - $borderToContentAreaCoordinates(dummy, true, false); - break; - case 5: - anchor_0 = castTo($getProperty(dummy, PORT_ANCHOR), 8); - offset_0 = !anchor_0?0:anchor_0.x_0; - dummy.pos.x_0 = $doubleValue(castToDouble($getProperty(dummy, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))) - offset_0; - $borderToContentAreaCoordinates(dummy, true, false); - graphSize.x_0 = $wnd.Math.max(graphSize.x_0, dummy.pos.x_0 + dummy.size_0.x_0 / 2); - } - switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - dummy.pos.y_0 = northY; - northernDummies.array[northernDummies.array.length] = dummy; - break; - case 3: - dummy.pos.y_0 = southY; - southernDummies.array[southernDummies.array.length] = dummy; - } - } - switch (constraints.ordinal) { - case 1: - case 2: - $ensureUniquePositions(northernDummies, layeredGraph); - $ensureUniquePositions(southernDummies, layeredGraph); - break; - case 3: - $restoreProperOrder(northernDummies, layeredGraph); - $restoreProperOrder(southernDummies, layeredGraph); - } -} - -function HierarchicalPortOrthogonalEdgeRouter(){ -} - -defineClass(1514, 1, $intern_105, HierarchicalPortOrthogonalEdgeRouter); -_.process = function process_14(layeredGraph, monitor){ - $process_16(this, castTo(layeredGraph, 37), monitor); -} -; -_.northernExtPortEdgeRoutingHeight = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter', 1514); -function $compare_13(a, b){ - return compare_4(a.pos.x_0, b.pos.x_0); -} - -function HierarchicalPortOrthogonalEdgeRouter$1(){ -} - -defineClass(1515, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$1); -_.compare_1 = function compare_44(a, b){ - return $compare_13(castTo(a, 10), castTo(b, 10)); -} -; -_.equals_0 = function equals_108(other){ - return this === other; -} -; -_.reversed = function reversed_36(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/1', 1515); -function $compare_14(a, b){ - return compare_4($doubleValue(castToDouble($getProperty(a, ($clinit_InternalProperties_1() , PORT_RATIO_OR_POSITION_0)))), $doubleValue(castToDouble($getProperty(b, PORT_RATIO_OR_POSITION_0)))); -} - -function HierarchicalPortOrthogonalEdgeRouter$2(){ -} - -defineClass(1516, 1, $intern_88, HierarchicalPortOrthogonalEdgeRouter$2); -_.compare_1 = function compare_45(a, b){ - return $compare_14(castTo(a, 10), castTo(b, 10)); -} -; -_.equals_0 = function equals_109(other){ - return this === other; -} -; -_.reversed = function reversed_37(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter$2_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter/2', 1516); -function $fixCoordinates_0(layer, layeredGraph){ - var extPortSide, finalYCoordinate, graphHeight, node, node$iterator, portConstraints; - portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - if (!(portConstraints == ($clinit_PortConstraints() , FIXED_RATIO) || portConstraints == FIXED_POS)) { - return; - } - graphHeight = (new KVector_1(layeredGraph.size_0.x_0 + layeredGraph.padding.left + layeredGraph.padding.right, layeredGraph.size_0.y_0 + layeredGraph.padding.top_0 + layeredGraph.padding.bottom)).y_0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - continue; - } - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - if (extPortSide != ($clinit_PortSide() , EAST_2) && extPortSide != WEST_2) { - continue; - } - finalYCoordinate = $doubleValue(castToDouble($getProperty(node, PORT_RATIO_OR_POSITION_0))); - portConstraints == FIXED_RATIO && (finalYCoordinate *= graphHeight); - node.pos.y_0 = finalYCoordinate - castTo($getProperty(node, PORT_ANCHOR), 8).y_0; - $borderToContentAreaCoordinates(node, false, true); - } -} - -function $process_17(layeredGraph, monitor){ - var layers; - $begin(monitor, 'Hierarchical port position processing', 1); - layers = layeredGraph.layers; - layers.array.length > 0 && $fixCoordinates_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), layeredGraph); - layers.array.length > 1 && $fixCoordinates_0(castTo($get_11(layers, layers.array.length - 1), 29), layeredGraph); - $done_0(monitor); -} - -function HierarchicalPortPositionProcessor(){ -} - -defineClass(1517, 1, $intern_105, HierarchicalPortPositionProcessor); -_.process = function process_15(layeredGraph, monitor){ - $process_17(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortPositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortPositionProcessor', 1517); -function $clinit_HighDegreeNodeLayeringProcessor(){ - $clinit_HighDegreeNodeLayeringProcessor = emptyMethod; - INCOMING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$0$Type; - OUTGOING_EDGES = new HighDegreeNodeLayeringProcessor$lambda$1$Type; -} - -function $calculateInformation(this$static, hdn){ - var hdni, incEdge, incEdge$iterator, outEdge, outEdge$iterator, src_0, tgt, treeHeight; - hdni = new HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation; - for (incEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incEdge$iterator);) { - incEdge = castTo($next_0(incEdge$iterator), 17); - if ($isSelfLoop(incEdge)) { - continue; - } - src_0 = incEdge.source.owner; - if ($hasSingleConnection(src_0, OUTGOING_EDGES)) { - treeHeight = $isTreeRoot(this$static, src_0, OUTGOING_EDGES, INCOMING_EDGES); - if (treeHeight == -1) { - continue; - } - hdni.incTreesMaxHeight = $wnd.Math.max(hdni.incTreesMaxHeight, treeHeight); - !hdni.incTreeRoots && (hdni.incTreeRoots = new ArrayList); - $add_3(hdni.incTreeRoots, src_0); - } - } - for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(hdn).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { - outEdge = castTo($next_0(outEdge$iterator), 17); - if ($isSelfLoop(outEdge)) { - continue; - } - tgt = outEdge.target.owner; - if ($hasSingleConnection(tgt, INCOMING_EDGES)) { - treeHeight = $isTreeRoot(this$static, tgt, INCOMING_EDGES, OUTGOING_EDGES); - if (treeHeight == -1) { - continue; - } - hdni.outTreesMaxHeight = $wnd.Math.max(hdni.outTreesMaxHeight, treeHeight); - !hdni.outTreeRoots && (hdni.outTreeRoots = new ArrayList); - $add_3(hdni.outTreeRoots, tgt); - } - } - return hdni; -} - -function $hasSingleConnection(node, edgeSelector){ - var connection, e, e$iterator; - connection = null; - for (e$iterator = castTo(edgeSelector.apply_0(node), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - if (!connection) { - connection = e.source.owner == node?e.target.owner:e.source.owner; - } - else { - if ((e.source.owner == node?e.target.owner:e.source.owner) != connection) { - return false; - } - } - } - return true; -} - -function $isTreeRoot(this$static, root, ancestorEdges, descendantEdges){ - var currentHeight, e, e$iterator, height, other; - if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(root).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { - return -1; - } - if (!$hasSingleConnection(root, ancestorEdges)) { - return -1; - } - if (isEmpty_13(castTo(descendantEdges.apply_0(root), 20))) { - return 1; - } - currentHeight = 0; - for (e$iterator = castTo(descendantEdges.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - other = e.source.owner == root?e.target.owner:e.source.owner; - height = $isTreeRoot(this$static, other, ancestorEdges, descendantEdges); - if (height == -1) { - return -1; - } - currentHeight = $wnd.Math.max(currentHeight, height); - if (currentHeight > this$static.treeHeightThreshold - 1) { - return -1; - } - } - return currentHeight + 1; -} - -function $moveTree(this$static, root, edgesFun, layers){ - var e, e$iterator, other, subList; - $setLayer_0(root, castTo(layers.get_0(0), 29)); - subList = layers.subList(1, layers.size_1()); - for (e$iterator = castTo(edgesFun.apply_0(root), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - other = e.source.owner == root?e.target.owner:e.source.owner; - $moveTree(this$static, other, edgesFun, subList); - } -} - -function $process_18(this$static, graph){ - var afterLayers, hdni, highDegreeNode, highDegreeNode$iterator, highDegreeNode$iterator0, highDegreeNodes, i, i0, incMax, incRoot, incRoot$iterator, incRoots, l, lay, layerIt, layerIt2, n, n$iterator, outMax, outRoot, outRoot$iterator, outRoots, preLayers, l_0, l_1; - this$static.layeredGraph = graph; - this$static.degreeThreshold = castTo($getProperty(graph, ($clinit_LayeredOptions() , HIGH_DEGREE_NODES_THRESHOLD_0)), 19).value_0; - this$static.treeHeightThreshold = castTo($getProperty(graph, HIGH_DEGREE_NODES_TREE_HEIGHT_0), 19).value_0; - this$static.treeHeightThreshold == 0 && (this$static.treeHeightThreshold = $intern_0); - layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (layerIt.i < layerIt.this$01_0.size_1()) { - lay = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); - highDegreeNodes = new ArrayList; - incMax = -1; - outMax = -1; - for (n$iterator = new ArrayList$1(lay.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (size_24(($clinit_HighDegreeNodeLayeringProcessor() , new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(n).val$inputs1.iterator_0(), new Iterables$10)))) >= this$static.degreeThreshold) { - hdni = $calculateInformation(this$static, n); - incMax = $wnd.Math.max(incMax, hdni.incTreesMaxHeight); - outMax = $wnd.Math.max(outMax, hdni.outTreesMaxHeight); - $add_3(highDegreeNodes, new Pair(n, hdni)); - } - } - preLayers = new ArrayList; - for (i0 = 0; i0 < incMax; ++i0) { - $add_2(preLayers, 0, (checkCriticalElement(layerIt.i > 0) , layerIt.this$01.get_0(layerIt.last = --layerIt.i) , l_0 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_0) , checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , layerIt.this$01_0.get_0(layerIt.last = layerIt.i++) , l_0)); - } - for (highDegreeNode$iterator0 = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator0.i < highDegreeNode$iterator0.this$01.array.length;) { - highDegreeNode = castTo($next_7(highDegreeNode$iterator0), 46); - incRoots = castTo(highDegreeNode.second, 571).incTreeRoots; - if (!incRoots) { - continue; - } - for (incRoot$iterator = new ArrayList$1(incRoots); incRoot$iterator.i < incRoot$iterator.this$01.array.length;) { - incRoot = castTo($next_7(incRoot$iterator), 10); - $moveTree(this$static, incRoot, INCOMING_EDGES, preLayers); - } - } - afterLayers = new ArrayList; - for (i = 0; i < outMax; ++i) { - $add_3(afterLayers, (l_1 = new Layer(this$static.layeredGraph) , $add_1(layerIt, l_1) , l_1)); - } - for (highDegreeNode$iterator = new ArrayList$1(highDegreeNodes); highDegreeNode$iterator.i < highDegreeNode$iterator.this$01.array.length;) { - highDegreeNode = castTo($next_7(highDegreeNode$iterator), 46); - outRoots = castTo(highDegreeNode.second, 571).outTreeRoots; - if (!outRoots) { - continue; - } - for (outRoot$iterator = new ArrayList$1(outRoots); outRoot$iterator.i < outRoot$iterator.this$01.array.length;) { - outRoot = castTo($next_7(outRoot$iterator), 10); - $moveTree(this$static, outRoot, OUTGOING_EDGES, afterLayers); - } - } - } - layerIt2 = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (layerIt2.i < layerIt2.this$01_0.size_1()) { - l = (checkCriticalElement(layerIt2.i < layerIt2.this$01_0.size_1()) , castTo(layerIt2.this$01_0.get_0(layerIt2.last = layerIt2.i++), 29)); - l.nodes.array.length == 0 && $remove_8(layerIt2); - } -} - -function HighDegreeNodeLayeringProcessor(){ - $clinit_HighDegreeNodeLayeringProcessor(); -} - -defineClass(1518, 1, $intern_105, HighDegreeNodeLayeringProcessor); -_.process = function process_16(graph, progressMonitor){ - $process_18(this, castTo(graph, 37)); -} -; -_.degreeThreshold = 0; -_.treeHeightThreshold = 0; -var INCOMING_EDGES, OUTGOING_EDGES; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor', 1518); -function HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation(){ -} - -defineClass(571, 1, {571:1}, HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation); -_.incTreesMaxHeight = -1; -_.outTreesMaxHeight = -1; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation', 571); -function HighDegreeNodeLayeringProcessor$lambda$0$Type(){ -} - -defineClass(1519, 1, {}, HighDegreeNodeLayeringProcessor$lambda$0$Type); -_.apply_0 = function apply_80(arg0){ - return $clinit_HighDegreeNodeLayeringProcessor() , $getIncomingEdges(castTo(arg0, 10)); -} -; -_.equals_0 = function equals_110(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$0$Type', 1519); -function HighDegreeNodeLayeringProcessor$lambda$1$Type(){ -} - -defineClass(1520, 1, {}, HighDegreeNodeLayeringProcessor$lambda$1$Type); -_.apply_0 = function apply_81(arg0){ - return $clinit_HighDegreeNodeLayeringProcessor() , $getOutgoingEdges(castTo(arg0, 10)); -} -; -_.equals_0 = function equals_111(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HighDegreeNodeLayeringProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HighDegreeNodeLayeringProcessor/lambda$1$Type', 1520); -function $checkMergeAllowed(currNode, lastNode){ - var currHasLabelDummies, currNodeSource, currNodeTarget, eligibleForSourceMerging, eligibleForTargetMerging, lastHasLabelDummies, lastNodeSource, lastNodeTarget, sameSource, sameTarget; - currHasLabelDummies = $booleanValue(castToBoolean($getProperty(currNode, ($clinit_InternalProperties_1() , LONG_EDGE_HAS_LABEL_DUMMIES)))); - lastHasLabelDummies = $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))); - currNodeSource = castTo($getProperty(currNode, LONG_EDGE_SOURCE), 11); - lastNodeSource = castTo($getProperty(lastNode, LONG_EDGE_SOURCE), 11); - currNodeTarget = castTo($getProperty(currNode, LONG_EDGE_TARGET), 11); - lastNodeTarget = castTo($getProperty(lastNode, LONG_EDGE_TARGET), 11); - sameSource = !!currNodeSource && currNodeSource == lastNodeSource; - sameTarget = !!currNodeTarget && currNodeTarget == lastNodeTarget; - if (!currHasLabelDummies && !lastHasLabelDummies) { - return new HyperedgeDummyMerger$MergeState(castTo($next_7(new ArrayList$1(currNode.ports)), 11).id_0 == castTo($next_7(new ArrayList$1(lastNode.ports)), 11).id_0, sameSource, sameTarget); - } - eligibleForSourceMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || $booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); - eligibleForTargetMerging = (!$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(currNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))) && (!$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_HAS_LABEL_DUMMIES))) || !$booleanValue(castToBoolean($getProperty(lastNode, LONG_EDGE_BEFORE_LABEL_DUMMY)))); - return new HyperedgeDummyMerger$MergeState(sameSource && eligibleForSourceMerging || sameTarget && eligibleForTargetMerging, sameSource, sameTarget); -} - -function $dfs_2(this$static, p, index_0){ - var p2, p2$iterator, p2$iterator0; - p.id_0 = index_0; - for (p2$iterator0 = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(p), new LPort$2(p)]))); $hasNext_1(p2$iterator0);) { - p2 = castTo($next_0(p2$iterator0), 11); - p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); - } - if (p.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (p2$iterator = new ArrayList$1(p.owner.ports); p2$iterator.i < p2$iterator.this$01.array.length;) { - p2 = castTo($next_7(p2$iterator), 11); - p2 != p && p2.id_0 == -1 && $dfs_2(this$static, p2, index_0); - } - } -} - -function $identifyHyperedges(this$static, lGraph){ - var index_0, p, p$iterator, ports; - ports = castTo($collect_1($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layers, 16)), new HyperedgeDummyMerger$lambda$0$Type), new HyperedgeDummyMerger$lambda$1$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - ports.forEach_0(new HyperedgeDummyMerger$lambda$2$Type); - index_0 = 0; - for (p$iterator = ports.iterator_0(); p$iterator.hasNext_0();) { - p = castTo(p$iterator.next_1(), 11); - p.id_0 == -1 && $dfs_2(this$static, p, index_0++); - } -} - -function $mergeNodes(mergeSource, mergeTarget, keepSourcePort, keepTargetPort){ - var mergeTargetInputPort, mergeTargetOutputPort, port, port$iterator; - mergeTargetInputPort = castTo($getPorts_1(mergeTarget, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); - mergeTargetOutputPort = castTo($getPorts_1(mergeTarget, EAST_2).iterator_0().next_1(), 11); - for (port$iterator = new ArrayList$1(mergeSource.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - while (port.incomingEdges.array.length != 0) { - $setTarget_0(castTo($get_11(port.incomingEdges, 0), 17), mergeTargetInputPort); - } - while (port.outgoingEdges.array.length != 0) { - $setSource_0(castTo($get_11(port.outgoingEdges, 0), 17), mergeTargetOutputPort); - } - } - keepSourcePort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), null); - keepTargetPort || $setProperty_0(mergeTarget, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), null); -} - -function $process_19(this$static, layeredGraph, monitor){ - var currNode, currNodeType, lastNode, lastNodeType, layer, layerIter, nodeIndex, nodes, state; - $begin(monitor, 'Hyperedge merging', 1); - $identifyHyperedges(this$static, layeredGraph); - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - nodes = layer.nodes; - if (nodes.array.length == 0) { - continue; - } - currNode = null; - currNodeType = null; - lastNode = null; - lastNodeType = null; - for (nodeIndex = 0; nodeIndex < nodes.array.length; nodeIndex++) { - currNode = (checkCriticalElementIndex(nodeIndex, nodes.array.length) , castTo(nodes.array[nodeIndex], 10)); - currNodeType = currNode.type_0; - if (currNodeType == ($clinit_LNode$NodeType() , LONG_EDGE) && lastNodeType == LONG_EDGE) { - state = $checkMergeAllowed(currNode, lastNode); - if (state.allowMerge) { - $mergeNodes(currNode, lastNode, state.sameSource, state.sameTarget); - checkCriticalElementIndex(nodeIndex, nodes.array.length); - removeFrom(nodes.array, nodeIndex, 1); - --nodeIndex; - currNode = lastNode; - currNodeType = lastNodeType; - } - } - lastNode = currNode; - lastNodeType = currNodeType; - } - } - $done_0(monitor); -} - -function HyperedgeDummyMerger(){ -} - -defineClass(1526, 1, $intern_105, HyperedgeDummyMerger); -_.process = function process_17(layeredGraph, monitor){ - $process_19(this, castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger', 1526); -function HyperedgeDummyMerger$MergeState(allowMerge, sameSource, sameTarget){ - this.allowMerge = allowMerge; - this.sameSource = sameSource; - this.sameTarget = sameTarget; -} - -defineClass(793, 1, {}, HyperedgeDummyMerger$MergeState); -_.allowMerge = false; -_.sameSource = false; -_.sameTarget = false; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$MergeState_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/MergeState', 793); -function HyperedgeDummyMerger$lambda$0$Type(){ -} - -defineClass(1527, 1, {}, HyperedgeDummyMerger$lambda$0$Type); -_.apply_0 = function apply_82(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$0$Type', 1527); -function HyperedgeDummyMerger$lambda$1$Type(){ -} - -defineClass(1528, 1, {}, HyperedgeDummyMerger$lambda$1$Type); -_.apply_0 = function apply_83(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 10).ports, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$1$Type', 1528); -function HyperedgeDummyMerger$lambda$2$Type(){ -} - -defineClass(1529, 1, $intern_19, HyperedgeDummyMerger$lambda$2$Type); -_.accept = function accept_74(arg0){ - castTo(arg0, 11).id_0 = -1; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger/lambda$2$Type', 1529); -function $moveHypernode(layeredGraph, hypernode, right){ - var bendEdges, bendx, diffx, diffy, edge, edge$iterator, first, firstPoint, junctionPoints, lastPoint, northPort, port, port$iterator, second, southPort; - bendEdges = new ArrayList; - bendx = $intern_0; - diffx = $intern_0; - diffy = $intern_0; - if (right) { - bendx = layeredGraph.size_0.x_0; - for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (edge.bendPoints.size_0 != 0) { - firstPoint = castTo($getFirst(edge.bendPoints), 8); - if (firstPoint.x_0 < bendx) { - diffx = bendx - firstPoint.x_0; - diffy = $intern_0; - bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - bendx = firstPoint.x_0; - } - if (firstPoint.x_0 <= bendx) { - bendEdges.array[bendEdges.array.length] = edge; - edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, 1), 8).y_0 - firstPoint.y_0))); - } - } - } - } - } - else { - for (port$iterator = new ArrayList$1(hypernode.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (edge.bendPoints.size_0 != 0) { - lastPoint = castTo($getLast(edge.bendPoints), 8); - if (lastPoint.x_0 > bendx) { - diffx = lastPoint.x_0 - bendx; - diffy = $intern_0; - bendEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - bendx = lastPoint.x_0; - } - if (lastPoint.x_0 >= bendx) { - bendEdges.array[bendEdges.array.length] = edge; - edge.bendPoints.size_0 > 1 && (diffy = $wnd.Math.min(diffy, $wnd.Math.abs(castTo($get_7(edge.bendPoints, edge.bendPoints.size_0 - 2), 8).y_0 - lastPoint.y_0))); - } - } - } - } - } - if (bendEdges.array.length != 0 && diffx > hypernode.size_0.x_0 / 2 && diffy > hypernode.size_0.y_0 / 2) { - northPort = new LPort; - $setNode(northPort, hypernode); - $setSide(northPort, ($clinit_PortSide() , NORTH_3)); - northPort.pos.x_0 = hypernode.size_0.x_0 / 2; - southPort = new LPort; - $setNode(southPort, hypernode); - $setSide(southPort, SOUTH_2); - southPort.pos.x_0 = hypernode.size_0.x_0 / 2; - southPort.pos.y_0 = hypernode.size_0.y_0; - for (edge$iterator = new ArrayList$1(bendEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (right) { - first = castTo($removeFirst_0(edge.bendPoints), 8); - second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.target):castTo($getFirst(edge.bendPoints), 8); - second.y_0 >= first.y_0?$setSource_0(edge, southPort):$setSource_0(edge, northPort); - } - else { - first = castTo($removeLast_0(edge.bendPoints), 8); - second = edge.bendPoints.size_0 == 0?$getAbsoluteAnchor(edge.source):castTo($getLast(edge.bendPoints), 8); - second.y_0 >= first.y_0?$setTarget_0(edge, southPort):$setTarget_0(edge, northPort); - } - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - !!junctionPoints && $advanceToFind(junctionPoints, first, true); - } - hypernode.pos.x_0 = bendx - hypernode.size_0.x_0 / 2; - } -} - -function $process_20(layeredGraph, monitor){ - var bottomEdges, layer, layer$iterator, leftEdges, node, node$iterator, port, port$iterator, rightEdges, topEdges; - $begin(monitor, 'Hypernodes processing', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , HYPERNODE)))) && node.ports.array.length <= 2) { - topEdges = 0; - rightEdges = 0; - bottomEdges = 0; - leftEdges = 0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 1: - ++topEdges; - break; - case 2: - ++rightEdges; - break; - case 3: - ++bottomEdges; - break; - case 4: - ++leftEdges; - } - } - topEdges == 0 && bottomEdges == 0 && $moveHypernode(layeredGraph, node, leftEdges <= rightEdges); - } - } - } - $done_0(monitor); -} - -function HypernodesProcessor(){ -} - -defineClass(1530, 1, $intern_105, HypernodesProcessor); -_.process = function process_18(layeredGraph, monitor){ - $process_20(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_HypernodesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HypernodesProcessor', 1530); -function $process_21(layeredGraph, monitor){ - var bottomConstrainedNodes, constraint, i, layer, layer$iterator, node, node$iterator, nodes, topInsertionIndex; - $begin(monitor, 'Layer constraint edge reversal', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - topInsertionIndex = -1; - bottomConstrainedNodes = new ArrayList; - nodes = toNodeArray(layer.nodes); - for (i = 0; i < nodes.length; i++) { - constraint = castTo($getProperty(nodes[i], ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); - if (topInsertionIndex == -1) { - constraint != ($clinit_InLayerConstraint() , TOP_1) && (topInsertionIndex = i); - } - else { - if (constraint == ($clinit_InLayerConstraint() , TOP_1)) { - $setLayer_0(nodes[i], null); - $setLayer(nodes[i], topInsertionIndex++, layer); - } - } - constraint == ($clinit_InLayerConstraint() , BOTTOM_0) && $add_3(bottomConstrainedNodes, nodes[i]); - } - for (node$iterator = new ArrayList$1(bottomConstrainedNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, null); - $setLayer_0(node, layer); - } - } - $done_0(monitor); -} - -function InLayerConstraintProcessor(){ -} - -defineClass(1531, 1, $intern_105, InLayerConstraintProcessor); -_.process = function process_19(layeredGraph, monitor){ - $process_21(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InLayerConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InLayerConstraintProcessor', 1531); -function $process_22(layeredGraph, monitor){ - $begin(monitor, 'Node margin calculation', 1); - $process($excludeEdgeHeadTailLabels(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, false, false, new LGraphAdapters$lambda$0$Type))))); - $done_0(monitor); -} - -function InnermostNodeMarginCalculator(){ -} - -defineClass(1532, 1, $intern_105, InnermostNodeMarginCalculator); -_.process = function process_20(layeredGraph, monitor){ - $process_22(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InnermostNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InnermostNodeMarginCalculator', 1532); -function $findNorthSouthPortXCoordinate(dummy){ - var e, e$iterator, margins, max_0, min_0, n, port; - port = castTo($get_11(dummy.ports, 0), 11); - if (port.outgoingEdges.array.length != 0 && port.incomingEdges.array.length != 0) { - throw toJs(new IllegalStateException_0('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.')); - } - if (port.outgoingEdges.array.length != 0) { - min_0 = $intern_59; - for (e$iterator = new ArrayList$1(port.outgoingEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - n = e.target.owner; - margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); - min_0 = $wnd.Math.min(min_0, n.pos.x_0 - margins.left); - } - return new Present(checkNotNull(min_0)); - } - if (port.incomingEdges.array.length != 0) { - max_0 = $intern_60; - for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - n = e.source.owner; - margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); - max_0 = $wnd.Math.max(max_0, n.pos.x_0 + n.size_0.x_0 + margins.right); - } - return new Present(checkNotNull(max_0)); - } - return $clinit_Absent() , $clinit_Absent() , INSTANCE; -} - -function $findYCoordinate(dummy, funGetOtherNode){ - var e, e$iterator, other; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(dummy).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - other = castTo(funGetOtherNode.apply_0(e), 10); - return new Present(checkNotNull(other.pos.y_0 + other.size_0.y_0 / 2)); - } - return $clinit_Absent() , $clinit_Absent() , INSTANCE; -} - -function $process_23(this$static, layeredGraph){ - var ilc, lc, margins, node, node$iterator, node$iterator0; - if (!castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - return; - } - for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - margins = castTo($getProperty(node, ($clinit_LayeredOptions() , MARGINS)), 142); - this$static.minX = $wnd.Math.min(this$static.minX, node.pos.x_0 - margins.left); - this$static.maxX = $wnd.Math.max(this$static.maxX, node.pos.x_0 + node.size_0.x_0 + margins.right); - this$static.minY = $wnd.Math.min(this$static.minY, node.pos.y_0 - margins.top_0); - this$static.maxY = $wnd.Math.max(this$static.maxY, node.pos.y_0 + node.size_0.y_0 + margins.bottom); - } - } - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - switch (node.type_0.ordinal) { - case 2: - lc = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (lc == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { - node.pos.x_0 = this$static.minX - 10; - $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$0$Type).transform(new InteractiveExternalPortPositioner$lambda$1$Type(node)); - break; - } - - if (lc == LAST_SEPARATE_0) { - node.pos.x_0 = this$static.maxX + 10; - $findYCoordinate(node, new InteractiveExternalPortPositioner$lambda$2$Type).transform(new InteractiveExternalPortPositioner$lambda$3$Type(node)); - break; - } - - ilc = castTo($getProperty(node, IN_LAYER_CONSTRAINT), 303); - if (ilc == ($clinit_InLayerConstraint() , TOP_1)) { - $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$4$Type(node)); - node.pos.y_0 = this$static.minY - 10; - break; - } - - if (ilc == BOTTOM_0) { - $findNorthSouthPortXCoordinate(node).transform(new InteractiveExternalPortPositioner$lambda$5$Type(node)); - node.pos.y_0 = this$static.maxY + 10; - break; - } - - break; - default:throw toJs(new IllegalArgumentException_0('The node type ' + node.type_0 + ' is not supported by the ' + Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit)); - } - } - } -} - -function InteractiveExternalPortPositioner(){ -} - -function lambda$1_9(node_0, d_1){ - return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); -} - -function lambda$3_1(node_0, d_1){ - return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); -} - -function lambda$4_4(node_0, x_1){ - return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; -} - -function lambda$5_1(node_0, x_1){ - return node_0.pos.x_0 = (checkCriticalNotNull(x_1) , x_1) + 10; -} - -defineClass(1533, 1, $intern_105, InteractiveExternalPortPositioner); -_.process = function process_21(layeredGraph, progressMonitor){ - $process_23(this, castTo(layeredGraph, 37)); -} -; -_.maxX = $intern_60; -_.maxY = $intern_60; -_.minX = $intern_59; -_.minY = $intern_59; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner', 1533); -function InteractiveExternalPortPositioner$lambda$0$Type(){ -} - -defineClass(1534, 1, {}, InteractiveExternalPortPositioner$lambda$0$Type); -_.apply_0 = function apply_84(arg0){ - return castTo(arg0, 17).target.owner; -} -; -_.equals_0 = function equals_112(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$0$Type', 1534); -function InteractiveExternalPortPositioner$lambda$1$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1535, 1, {}, InteractiveExternalPortPositioner$lambda$1$Type); -_.apply_0 = function apply_85(arg0){ - return lambda$1_9(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_113(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$1$Type', 1535); -function InteractiveExternalPortPositioner$lambda$2$Type(){ -} - -defineClass(1536, 1, {}, InteractiveExternalPortPositioner$lambda$2$Type); -_.apply_0 = function apply_86(arg0){ - return castTo(arg0, 17).source.owner; -} -; -_.equals_0 = function equals_114(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$2$Type', 1536); -function InteractiveExternalPortPositioner$lambda$3$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1537, 1, {}, InteractiveExternalPortPositioner$lambda$3$Type); -_.apply_0 = function apply_87(arg0){ - return lambda$3_1(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_115(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$3$Type', 1537); -function InteractiveExternalPortPositioner$lambda$4$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1538, 1, {}, InteractiveExternalPortPositioner$lambda$4$Type); -_.apply_0 = function apply_88(arg0){ - return lambda$4_4(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_116(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$4$Type', 1538); -function InteractiveExternalPortPositioner$lambda$5$Type(node_0){ - this.node_0 = node_0; -} - -defineClass(1539, 1, {}, InteractiveExternalPortPositioner$lambda$5$Type); -_.apply_0 = function apply_89(arg0){ - return lambda$5_1(this.node_0, castToDouble(arg0)); -} -; -_.equals_0 = function equals_117(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner/lambda$5$Type', 1539); -function $clinit_IntermediateProcessorStrategy(){ - $clinit_IntermediateProcessorStrategy = emptyMethod; - DIRECTION_PREPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_PREPROCESSOR', 0); - COMMENT_PREPROCESSOR = new IntermediateProcessorStrategy('COMMENT_PREPROCESSOR', 1); - EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER = new IntermediateProcessorStrategy('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER', 2); - INTERACTIVE_EXTERNAL_PORT_POSITIONER = new IntermediateProcessorStrategy('INTERACTIVE_EXTERNAL_PORT_POSITIONER', 3); - PARTITION_PREPROCESSOR = new IntermediateProcessorStrategy('PARTITION_PREPROCESSOR', 4); - LABEL_DUMMY_INSERTER = new IntermediateProcessorStrategy('LABEL_DUMMY_INSERTER', 5); - SELF_LOOP_PREPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_PREPROCESSOR', 6); - LAYER_CONSTRAINT_PREPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_PREPROCESSOR', 7); - PARTITION_MIDPROCESSOR = new IntermediateProcessorStrategy('PARTITION_MIDPROCESSOR', 8); - HIGH_DEGREE_NODE_LAYER_PROCESSOR = new IntermediateProcessorStrategy('HIGH_DEGREE_NODE_LAYER_PROCESSOR', 9); - NODE_PROMOTION = new IntermediateProcessorStrategy('NODE_PROMOTION', 10); - LAYER_CONSTRAINT_POSTPROCESSOR = new IntermediateProcessorStrategy('LAYER_CONSTRAINT_POSTPROCESSOR', 11); - PARTITION_POSTPROCESSOR = new IntermediateProcessorStrategy('PARTITION_POSTPROCESSOR', 12); - HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR', 13); - SEMI_INTERACTIVE_CROSSMIN_PROCESSOR = new IntermediateProcessorStrategy('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR', 14); - BREAKING_POINT_INSERTER = new IntermediateProcessorStrategy('BREAKING_POINT_INSERTER', 15); - LONG_EDGE_SPLITTER = new IntermediateProcessorStrategy('LONG_EDGE_SPLITTER', 16); - PORT_SIDE_PROCESSOR = new IntermediateProcessorStrategy('PORT_SIDE_PROCESSOR', 17); - INVERTED_PORT_PROCESSOR = new IntermediateProcessorStrategy('INVERTED_PORT_PROCESSOR', 18); - PORT_LIST_SORTER = new IntermediateProcessorStrategy('PORT_LIST_SORTER', 19); - SORT_BY_INPUT_ORDER_OF_MODEL = new IntermediateProcessorStrategy('SORT_BY_INPUT_ORDER_OF_MODEL', 20); - NORTH_SOUTH_PORT_PREPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_PREPROCESSOR', 21); - BREAKING_POINT_PROCESSOR = new IntermediateProcessorStrategy('BREAKING_POINT_PROCESSOR', 22); - ONE_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('ONE_SIDED_GREEDY_SWITCH', 23); - TWO_SIDED_GREEDY_SWITCH = new IntermediateProcessorStrategy('TWO_SIDED_GREEDY_SWITCH', 24); - SELF_LOOP_PORT_RESTORER = new IntermediateProcessorStrategy('SELF_LOOP_PORT_RESTORER', 25); - SINGLE_EDGE_GRAPH_WRAPPER = new IntermediateProcessorStrategy('SINGLE_EDGE_GRAPH_WRAPPER', 26); - IN_LAYER_CONSTRAINT_PROCESSOR = new IntermediateProcessorStrategy('IN_LAYER_CONSTRAINT_PROCESSOR', 27); - END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR', 28); - LABEL_AND_NODE_SIZE_PROCESSOR = new IntermediateProcessorStrategy('LABEL_AND_NODE_SIZE_PROCESSOR', 29); - INNERMOST_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('INNERMOST_NODE_MARGIN_CALCULATOR', 30); - SELF_LOOP_ROUTER = new IntermediateProcessorStrategy('SELF_LOOP_ROUTER', 31); - COMMENT_NODE_MARGIN_CALCULATOR = new IntermediateProcessorStrategy('COMMENT_NODE_MARGIN_CALCULATOR', 32); - END_LABEL_PREPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_PREPROCESSOR', 33); - LABEL_DUMMY_SWITCHER = new IntermediateProcessorStrategy('LABEL_DUMMY_SWITCHER', 34); - CENTER_LABEL_MANAGEMENT_PROCESSOR = new IntermediateProcessorStrategy('CENTER_LABEL_MANAGEMENT_PROCESSOR', 35); - LABEL_SIDE_SELECTOR = new IntermediateProcessorStrategy('LABEL_SIDE_SELECTOR', 36); - HYPEREDGE_DUMMY_MERGER = new IntermediateProcessorStrategy('HYPEREDGE_DUMMY_MERGER', 37); - HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR', 38); - LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR = new IntermediateProcessorStrategy('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR', 39); - HIERARCHICAL_PORT_POSITION_PROCESSOR = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_POSITION_PROCESSOR', 40); - CONSTRAINTS_POSTPROCESSOR = new IntermediateProcessorStrategy('CONSTRAINTS_POSTPROCESSOR', 41); - COMMENT_POSTPROCESSOR = new IntermediateProcessorStrategy('COMMENT_POSTPROCESSOR', 42); - HYPERNODE_PROCESSOR = new IntermediateProcessorStrategy('HYPERNODE_PROCESSOR', 43); - HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER = new IntermediateProcessorStrategy('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER', 44); - LONG_EDGE_JOINER = new IntermediateProcessorStrategy('LONG_EDGE_JOINER', 45); - SELF_LOOP_POSTPROCESSOR = new IntermediateProcessorStrategy('SELF_LOOP_POSTPROCESSOR', 46); - BREAKING_POINT_REMOVER = new IntermediateProcessorStrategy('BREAKING_POINT_REMOVER', 47); - NORTH_SOUTH_PORT_POSTPROCESSOR = new IntermediateProcessorStrategy('NORTH_SOUTH_PORT_POSTPROCESSOR', 48); - HORIZONTAL_COMPACTOR = new IntermediateProcessorStrategy('HORIZONTAL_COMPACTOR', 49); - LABEL_DUMMY_REMOVER = new IntermediateProcessorStrategy('LABEL_DUMMY_REMOVER', 50); - FINAL_SPLINE_BENDPOINTS_CALCULATOR = new IntermediateProcessorStrategy('FINAL_SPLINE_BENDPOINTS_CALCULATOR', 51); - END_LABEL_SORTER = new IntermediateProcessorStrategy('END_LABEL_SORTER', 52); - REVERSED_EDGE_RESTORER = new IntermediateProcessorStrategy('REVERSED_EDGE_RESTORER', 53); - END_LABEL_POSTPROCESSOR = new IntermediateProcessorStrategy('END_LABEL_POSTPROCESSOR', 54); - HIERARCHICAL_NODE_RESIZER = new IntermediateProcessorStrategy('HIERARCHICAL_NODE_RESIZER', 55); - DIRECTION_POSTPROCESSOR = new IntermediateProcessorStrategy('DIRECTION_POSTPROCESSOR', 56); -} - -function IntermediateProcessorStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_32(name_0){ - $clinit_IntermediateProcessorStrategy(); - return valueOf(($clinit_IntermediateProcessorStrategy$Map() , $MAP_20), name_0); -} - -function values_38(){ - $clinit_IntermediateProcessorStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 77, 0, [DIRECTION_PREPROCESSOR, COMMENT_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, INTERACTIVE_EXTERNAL_PORT_POSITIONER, PARTITION_PREPROCESSOR, LABEL_DUMMY_INSERTER, SELF_LOOP_PREPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, PARTITION_MIDPROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, NODE_PROMOTION, LAYER_CONSTRAINT_POSTPROCESSOR, PARTITION_POSTPROCESSOR, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, BREAKING_POINT_INSERTER, LONG_EDGE_SPLITTER, PORT_SIDE_PROCESSOR, INVERTED_PORT_PROCESSOR, PORT_LIST_SORTER, SORT_BY_INPUT_ORDER_OF_MODEL, NORTH_SOUTH_PORT_PREPROCESSOR, BREAKING_POINT_PROCESSOR, ONE_SIDED_GREEDY_SWITCH, TWO_SIDED_GREEDY_SWITCH, SELF_LOOP_PORT_RESTORER, SINGLE_EDGE_GRAPH_WRAPPER, IN_LAYER_CONSTRAINT_PROCESSOR, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, SELF_LOOP_ROUTER, COMMENT_NODE_MARGIN_CALCULATOR, END_LABEL_PREPROCESSOR, LABEL_DUMMY_SWITCHER, CENTER_LABEL_MANAGEMENT_PROCESSOR, LABEL_SIDE_SELECTOR, HYPEREDGE_DUMMY_MERGER, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, HIERARCHICAL_PORT_POSITION_PROCESSOR, CONSTRAINTS_POSTPROCESSOR, COMMENT_POSTPROCESSOR, HYPERNODE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, LONG_EDGE_JOINER, SELF_LOOP_POSTPROCESSOR, BREAKING_POINT_REMOVER, NORTH_SOUTH_PORT_POSTPROCESSOR, HORIZONTAL_COMPACTOR, LABEL_DUMMY_REMOVER, FINAL_SPLINE_BENDPOINTS_CALCULATOR, END_LABEL_SORTER, REVERSED_EDGE_RESTORER, END_LABEL_POSTPROCESSOR, HIERARCHICAL_NODE_RESIZER, DIRECTION_POSTPROCESSOR]); -} - -defineClass(77, 22, {3:1, 35:1, 22:1, 77:1, 234:1}, IntermediateProcessorStrategy); -_.create_1 = function create_5(){ - switch (this.ordinal) { - case 15: - return new BreakingPointInserter; - case 22: - return new BreakingPointProcessor; - case 47: - return new BreakingPointRemover; - case 28: - case 35: - return new LabelManagementProcessor; - case 32: - return new CommentNodeMarginCalculator; - case 42: - return new CommentPostprocessor; - case 1: - return new CommentPreprocessor; - case 41: - return new ConstraintsPostprocessor; - case 56: - return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INTERNAL_LTR)); - case 0: - return new GraphTransformer(($clinit_GraphTransformer$Mode() , TO_INPUT_DIRECTION)); - case 2: - return new EdgeAndLayerConstraintEdgeReverser; - case 54: - return new EndLabelPostprocessor; - case 33: - return new EndLabelPreprocessor; - case 51: - return new FinalSplineBendpointsCalculator; - case 55: - return new HierarchicalNodeResizingProcessor; - case 13: - return new HierarchicalPortConstraintProcessor; - case 38: - return new HierarchicalPortDummySizeProcessor; - case 44: - return new HierarchicalPortOrthogonalEdgeRouter; - case 40: - return new HierarchicalPortPositionProcessor; - case 9: - return new HighDegreeNodeLayeringProcessor; - case 49: - return new HorizontalGraphCompactor; - case 37: - return new HyperedgeDummyMerger; - case 43: - return new HypernodesProcessor; - case 27: - return new InLayerConstraintProcessor; - case 30: - return new InnermostNodeMarginCalculator; - case 3: - return new InteractiveExternalPortPositioner; - case 18: - return new InvertedPortProcessor; - case 29: - return new LabelAndNodeSizeProcessor; - case 5: - return new LabelDummyInserter; - case 50: - return new LabelDummyRemover; - case 34: - return new LabelDummySwitcher; - case 36: - return new LabelSideSelector; - case 52: - return new EndLabelSorter; - case 11: - return new LayerConstraintPostprocessor; - case 7: - return new LayerConstraintPreprocessor; - case 39: - return new LayerSizeAndGraphHeightCalculator; - case 45: - return new LongEdgeJoiner; - case 16: - return new LongEdgeSplitter; - case 10: - return new NodePromotion; - case 48: - return new NorthSouthPortPostprocessor; - case 21: - return new NorthSouthPortPreprocessor; - case 23: - return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0)); - case 8: - return new PartitionMidprocessor; - case 12: - return new PartitionPostprocessor; - case 4: - return new PartitionPreprocessor; - case 19: - return new PortListSorter; - case 17: - return new PortSideProcessor; - case 53: - return new ReversedEdgeRestorer; - case 6: - return new SelfLoopPreProcessor; - case 25: - return new SelfLoopPortRestorer; - case 46: - return new SelfLoopPostProcessor; - case 31: - return new SelfLoopRouter; - case 14: - return new SemiInteractiveCrossMinProcessor; - case 26: - return new SingleEdgeGraphWrapper; - case 20: - return new SortByInputModelProcessor; - case 24: - return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)); - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); - } -} -; -var BREAKING_POINT_INSERTER, BREAKING_POINT_PROCESSOR, BREAKING_POINT_REMOVER, CENTER_LABEL_MANAGEMENT_PROCESSOR, COMMENT_NODE_MARGIN_CALCULATOR, COMMENT_POSTPROCESSOR, COMMENT_PREPROCESSOR, CONSTRAINTS_POSTPROCESSOR, DIRECTION_POSTPROCESSOR, DIRECTION_PREPROCESSOR, EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER, END_LABEL_POSTPROCESSOR, END_LABEL_PREPROCESSOR, END_LABEL_SORTER, END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR, FINAL_SPLINE_BENDPOINTS_CALCULATOR, HIERARCHICAL_NODE_RESIZER, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER, HIERARCHICAL_PORT_POSITION_PROCESSOR, HIGH_DEGREE_NODE_LAYER_PROCESSOR, HORIZONTAL_COMPACTOR, HYPEREDGE_DUMMY_MERGER, HYPERNODE_PROCESSOR, INNERMOST_NODE_MARGIN_CALCULATOR, INTERACTIVE_EXTERNAL_PORT_POSITIONER, INVERTED_PORT_PROCESSOR, IN_LAYER_CONSTRAINT_PROCESSOR, LABEL_AND_NODE_SIZE_PROCESSOR, LABEL_DUMMY_INSERTER, LABEL_DUMMY_REMOVER, LABEL_DUMMY_SWITCHER, LABEL_SIDE_SELECTOR, LAYER_CONSTRAINT_POSTPROCESSOR, LAYER_CONSTRAINT_PREPROCESSOR, LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR, LONG_EDGE_JOINER, LONG_EDGE_SPLITTER, NODE_PROMOTION, NORTH_SOUTH_PORT_POSTPROCESSOR, NORTH_SOUTH_PORT_PREPROCESSOR, ONE_SIDED_GREEDY_SWITCH, PARTITION_MIDPROCESSOR, PARTITION_POSTPROCESSOR, PARTITION_PREPROCESSOR, PORT_LIST_SORTER, PORT_SIDE_PROCESSOR, REVERSED_EDGE_RESTORER, SELF_LOOP_PORT_RESTORER, SELF_LOOP_POSTPROCESSOR, SELF_LOOP_PREPROCESSOR, SELF_LOOP_ROUTER, SEMI_INTERACTIVE_CROSSMIN_PROCESSOR, SINGLE_EDGE_GRAPH_WRAPPER, SORT_BY_INPUT_ORDER_OF_MODEL, TWO_SIDED_GREEDY_SWITCH; -var Lorg_eclipse_elk_alg_layered_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'IntermediateProcessorStrategy', 77, Ljava_lang_Enum_2_classLit, values_38, valueOf_32); -function $clinit_IntermediateProcessorStrategy$Map(){ - $clinit_IntermediateProcessorStrategy$Map = emptyMethod; - $MAP_20 = createValueOfMap(values_38()); -} - -var $MAP_20; -function $createEastPortSideDummies(layeredGraph, eastwardPort, edge, layerNodeList){ - var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, labelPlacement; - if (edge.source.owner == eastwardPort.owner) { - return; - } - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - layerNodeList.array[layerNodeList.array.length] = dummy; - dummyInput = new LPort; - $setNode(dummyInput, dummy); - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - dummyOutput = new LPort; - $setNode(dummyOutput, dummy); - $setSide(dummyOutput, EAST_2); - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, eastwardPort); - $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); - labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - labelPlacement = castTo($getProperty(label_0, EDGE_LABELS_PLACEMENT), 272); - if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { - $hasProperty(label_0, END_LABEL_EDGE) || $setProperty_0(label_0, END_LABEL_EDGE, edge); - $remove_8(labelIterator); - $add_3(dummyEdge.labels, label_0); - } - } -} - -function $createWestPortSideDummies(layeredGraph, westwardPort, edge, layerNodeList){ - var dummy, dummyEdge, dummyInput, dummyOutput, label_0, labelIterator, originalTarget; - if (edge.target.owner == westwardPort.owner) { - return; - } - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , LONG_EDGE)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - layerNodeList.array[layerNodeList.array.length] = dummy; - dummyInput = new LPort; - $setNode(dummyInput, dummy); - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - dummyOutput = new LPort; - $setNode(dummyOutput, dummy); - $setSide(dummyOutput, EAST_2); - originalTarget = edge.target; - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, originalTarget); - labelIterator = new AbstractList$ListIteratorImpl(edge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , HEAD))) { - $setProperty_0(label_0, END_LABEL_EDGE, edge); - $remove_8(labelIterator); - $add_3(dummyEdge.labels, label_0); - } - } - $setLongEdgeSourceAndTarget(dummy, dummyInput, dummyOutput); -} - -function $process_24(layeredGraph, monitor){ - var currentLayer, edge, edge$array, edge$index, edge$max, edgeArray, edges, layerIterator, layers, node, node$iterator, node$iterator0, node$iterator1, port, port$iterator, port$iterator0, previousLayer, unassignedNodes; - $begin(monitor, 'Inverted port preprocessing', 1); - layers = layeredGraph.layers; - layerIterator = new AbstractList$ListIteratorImpl(layers, 0); - currentLayer = null; - unassignedNodes = new ArrayList; - while (layerIterator.i < layerIterator.this$01_0.size_1()) { - previousLayer = currentLayer; - currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); - for (node$iterator0 = new ArrayList$1(unassignedNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - $setLayer_0(node, previousLayer); - } - unassignedNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator1 = new ArrayList$1(currentLayer.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - if (!$isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - continue; - } - for (port$iterator0 = $getPorts_0(node, ($clinit_PortType() , INPUT), ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator0.hasNext_0();) { - port = castTo(port$iterator0.next_1(), 11); - edges = port.incomingEdges; - edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $createEastPortSideDummies(layeredGraph, port, edge, unassignedNodes); - } - } - for (port$iterator = $getPorts_0(node, OUTPUT, WEST_2).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - edges = port.outgoingEdges; - edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $createWestPortSideDummies(layeredGraph, port, edge, unassignedNodes); - } - } - } - } - for (node$iterator = new ArrayList$1(unassignedNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, currentLayer); - } - $done_0(monitor); -} - -function $setLongEdgeSourceAndTarget(longEdgeDummy, dummyInputPort, dummyOutputPort){ - var sourceNode, sourceNodeType, sourcePort, targetNode, targetNodeType, targetPort; - sourcePort = castTo($get_11(dummyInputPort.incomingEdges, 0), 17).source; - sourceNode = sourcePort.owner; - sourceNodeType = sourceNode.type_0; - targetPort = castTo($get_11(dummyOutputPort.outgoingEdges, 0), 17).target; - targetNode = targetPort.owner; - targetNodeType = targetNode.type_0; - sourceNodeType == ($clinit_LNode$NodeType() , LONG_EDGE)?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(sourceNode, LONG_EDGE_SOURCE), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), sourcePort); - targetNodeType == LONG_EDGE?$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), castTo($getProperty(targetNode, LONG_EDGE_TARGET), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), targetPort); -} - -function InvertedPortProcessor(){ -} - -defineClass(1540, 1, $intern_105, InvertedPortProcessor); -_.process = function process_22(layeredGraph, monitor){ - $process_24(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_InvertedPortProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InvertedPortProcessor', 1540); -function $computePortLabelBox(dummyPort, labelLabelSpacing){ - var label_0, label$iterator, labelSize, result; - if (dummyPort.labels.array.length == 0) { - return null; - } - else { - result = new ElkRectangle; - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelSize = label_0.size_0; - result.width_0 = $wnd.Math.max(result.width_0, labelSize.x_0); - result.height += labelSize.y_0; - } - result.height += (dummyPort.labels.array.length - 1) * labelLabelSpacing; - return result; - } -} - -function $lambda$2(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3, dummy_3){ - $placeExternalPortDummyLabels(dummy_3, portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3); -} - -function $placeExternalPortDummyLabels(dummy, graphPortLabelPlacement, placeNextToPortIfPossible, treatAsGroup){ - var currentY, dummyPort, dummyPortPos, dummySize, label_0, label$iterator, labelHeight, labelLabelSpacing, labelPortSpacingHorizontal, labelPortSpacingVertical, labelPos, portLabelBox; - labelPortSpacingHorizontal = $doubleValue(castToDouble($getProperty(dummy, ($clinit_LayeredOptions() , SPACING_LABEL_PORT_HORIZONTAL)))); - labelPortSpacingVertical = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_PORT_VERTICAL))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(dummy, SPACING_LABEL_LABEL))); - dummySize = dummy.size_0; - dummyPort = castTo($get_11(dummy.ports, 0), 11); - dummyPortPos = dummyPort.pos; - portLabelBox = $computePortLabelBox(dummyPort, labelLabelSpacing); - if (!portLabelBox) { - return; - } - if (graphPortLabelPlacement.contains(($clinit_PortLabelPlacement() , INSIDE_0))) { - switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; - portLabelBox.y_0 = labelPortSpacingVertical; - break; - case 3: - portLabelBox.x_0 = (dummySize.x_0 - portLabelBox.width_0) / 2 - dummyPortPos.x_0; - portLabelBox.y_0 = -labelPortSpacingVertical - portLabelBox.height; - break; - case 2: - if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { - labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; - portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; - } - else { - portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; - } - - portLabelBox.x_0 = -labelPortSpacingHorizontal - portLabelBox.width_0; - break; - case 4: - if (placeNextToPortIfPossible && dummyPort.incomingEdges.array.length == 0 && dummyPort.outgoingEdges.array.length == 0) { - labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; - portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; - } - else { - portLabelBox.y_0 = dummySize.y_0 + labelPortSpacingVertical - dummyPortPos.y_0; - } - - portLabelBox.x_0 = labelPortSpacingHorizontal; - } - } - else if (graphPortLabelPlacement.contains(OUTSIDE_0)) { - switch (castTo($getProperty(dummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 1: - case 3: - portLabelBox.x_0 = dummyPortPos.x_0 + labelPortSpacingHorizontal; - break; - case 2: - case 4: - if (placeNextToPortIfPossible && !dummyPort.connectedToExternalNodes) { - labelHeight = treatAsGroup?portLabelBox.height:castTo($get_11(dummyPort.labels, 0), 70).size_0.y_0; - portLabelBox.y_0 = (dummySize.y_0 - labelHeight) / 2 - dummyPortPos.y_0; - } - else { - portLabelBox.y_0 = dummyPortPos.y_0 + labelPortSpacingVertical; - } - - } - } - currentY = portLabelBox.y_0; - for (label$iterator = new ArrayList$1(dummyPort.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - labelPos = label_0.pos; - labelPos.x_0 = portLabelBox.x_0; - labelPos.y_0 = currentY; - currentY += label_0.size_0.y_0 + labelLabelSpacing; - } -} - -function $process_25(layeredGraph, monitor){ - var layer, layer$iterator, placeNextToPort, portLabelPlacement, treatAsGroup; - $begin(monitor, 'Node and Port Label Placement and Node Sizing', 1); - calculateLabelAndNodeSizes(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, true, true, new LabelAndNodeSizeProcessor$lambda$0$Type))); - if (castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))) { - portLabelPlacement = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_LABELS_PLACEMENT_1)), 21); - placeNextToPort = portLabelPlacement.contains(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); - treatAsGroup = $booleanValue(castToBoolean($getProperty(layeredGraph, PORT_LABELS_TREAT_AS_GROUP))); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layer.nodes, 16)), new LabelAndNodeSizeProcessor$lambda$1$Type), new LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement, placeNextToPort, treatAsGroup)); - } - } - $done_0(monitor); -} - -function LabelAndNodeSizeProcessor(){ -} - -defineClass(1541, 1, $intern_105, LabelAndNodeSizeProcessor); -_.process = function process_23(layeredGraph, monitor){ - $process_25(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor', 1541); -function LabelAndNodeSizeProcessor$lambda$0$Type(){ -} - -defineClass(1542, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$0$Type); -_.test_0 = function test_37(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$0$Type', 1542); -function LabelAndNodeSizeProcessor$lambda$1$Type(){ -} - -defineClass(1543, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$1$Type); -_.test_0 = function test_38(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$1$Type', 1543); -function LabelAndNodeSizeProcessor$lambda$2$Type(portLabelPlacement_1, placeNextToPort_2, treatAsGroup_3){ - this.portLabelPlacement_1 = portLabelPlacement_1; - this.placeNextToPort_2 = placeNextToPort_2; - this.treatAsGroup_3 = treatAsGroup_3; -} - -defineClass(1544, 1, $intern_19, LabelAndNodeSizeProcessor$lambda$2$Type); -_.accept = function accept_75(arg0){ - $lambda$2(this.portLabelPlacement_1, this.placeNextToPort_2, this.treatAsGroup_3, castTo(arg0, 10)); -} -; -_.placeNextToPort_2 = false; -_.treatAsGroup_3 = false; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor/lambda$2$Type', 1544); -function $clinit_LabelDummyInserter(){ - $clinit_LabelDummyInserter = emptyMethod; - CENTER_LABEL = new LabelDummyInserter$1; -} - -function $createLabelDummy(layeredGraph, edge, thickness, representedLabels){ - var dummyNode, dummyPort, dummyPort$iterator, portPos; - dummyNode = new LNode(layeredGraph); - $setType(dummyNode, ($clinit_LNode$NodeType() , LABEL)); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummyNode, REPRESENTED_LABELS, representedLabels); - $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(dummyNode, LONG_EDGE_SOURCE, edge.source); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, edge.target); - splitEdge(edge, dummyNode); - portPos = $wnd.Math.floor(thickness / 2); - for (dummyPort$iterator = new ArrayList$1(dummyNode.ports); dummyPort$iterator.i < dummyPort$iterator.this$01.array.length;) { - dummyPort = castTo($next_7(dummyPort$iterator), 11); - dummyPort.pos.y_0 = portPos; - } - return dummyNode; -} - -function $process_26(layeredGraph, monitor){ - var dummyNode, dummySize, edge, edge$iterator, edgeLabelSpacing, iterator, label_0, labelLabelSpacing, layoutDirection, newDummyNodes, node, node$iterator, representedLabels, thickness; - $begin(monitor, 'Label dummy insertions', 1); - newDummyNodes = new ArrayList; - edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); - layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.source.owner != edge.target.owner && any_0(edge.labels, CENTER_LABEL)) { - thickness = $retrieveThickness(edge); - representedLabels = newArrayListWithCapacity(edge.labels.array.length); - dummyNode = $createLabelDummy(layeredGraph, edge, thickness, representedLabels); - newDummyNodes.array[newDummyNodes.array.length] = dummyNode; - dummySize = dummyNode.size_0; - iterator = new AbstractList$ListIteratorImpl(edge.labels, 0); - while (iterator.i < iterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 70)); - if (maskUndefined($getProperty(label_0, EDGE_LABELS_PLACEMENT)) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5))) { - if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { - dummySize.x_0 += label_0.size_0.x_0 + labelLabelSpacing; - dummySize.y_0 = $wnd.Math.max(dummySize.y_0, label_0.size_0.y_0); - } - else { - dummySize.x_0 = $wnd.Math.max(dummySize.x_0, label_0.size_0.x_0); - dummySize.y_0 += label_0.size_0.y_0 + labelLabelSpacing; - } - representedLabels.array[representedLabels.array.length] = label_0; - $remove_8(iterator); - } - } - if (layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1) { - dummySize.x_0 -= labelLabelSpacing; - dummySize.y_0 += edgeLabelSpacing + thickness; - } - else { - dummySize.y_0 += edgeLabelSpacing - labelLabelSpacing + thickness; - } - } - } - } - $addAll_2(layeredGraph.layerlessNodes, newDummyNodes); - $done_0(monitor); -} - -function $retrieveThickness(edge){ - var thickness; - thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); - if (thickness < 0) { - thickness = 0; - $setProperty_0(edge, EDGE_THICKNESS_0, thickness); - } - return thickness; -} - -function LabelDummyInserter(){ - $clinit_LabelDummyInserter(); -} - -defineClass(1545, 1, $intern_105, LabelDummyInserter); -_.process = function process_24(layeredGraph, monitor){ - $process_26(castTo(layeredGraph, 37), monitor); -} -; -var CENTER_LABEL; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter', 1545); -function LabelDummyInserter$1(){ -} - -defineClass(1546, 1, $intern_89, LabelDummyInserter$1); -_.apply_1 = function apply_90(label_0){ - return maskUndefined($getProperty(castTo(label_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); -} -; -_.equals_0 = function equals_118(other){ - return this === other; -} -; -_.test_0 = function test_39(input_0){ - return maskUndefined($getProperty(castTo(input_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter/1', 1546); -function $placeLabelsForHorizontalLayout(labels, labelPos, labelSpacing, labelSpace){ - var label_0, label$iterator; - for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - label_0.pos.x_0 = labelPos.x_0 + (labelSpace.x_0 - label_0.size_0.x_0) / 2; - label_0.pos.y_0 = labelPos.y_0; - labelPos.y_0 += label_0.size_0.y_0 + labelSpacing; - } -} - -function $placeLabelsForVerticalLayout(labels, labelPos, labelSpacing, labelSpace, leftAligned, layoutDirection){ - var effectiveLabels, inline, label_0, label$iterator; - inline = !$spliterator($filter(labels.stream(), new Predicate$lambda$2$Type(new LabelDummyRemover$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); - effectiveLabels = labels; - layoutDirection == ($clinit_Direction_0() , UP_1) && (effectiveLabels = instanceOf(effectiveLabels, 152)?$reverse(castTo(effectiveLabels, 152)):instanceOf(effectiveLabels, 131)?castTo(effectiveLabels, 131).forwardList:instanceOf(effectiveLabels, 54)?new Lists$RandomAccessReverseList(effectiveLabels):new Lists$ReverseList(effectiveLabels)); - for (label$iterator = effectiveLabels.iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - label_0.pos.x_0 = labelPos.x_0; - inline?(label_0.pos.y_0 = labelPos.y_0 + (labelSpace.y_0 - label_0.size_0.y_0) / 2):leftAligned?(label_0.pos.y_0 = labelPos.y_0):(label_0.pos.y_0 = labelPos.y_0 + labelSpace.y_0 - label_0.size_0.y_0); - labelPos.x_0 += label_0.size_0.x_0 + labelSpacing; - } -} - -function $process_27(layeredGraph, monitor){ - var currLabelPos, edgeLabelSpacing, labelLabelSpacing, labelSpace, labelsBelowEdge, layer, layer$iterator, layoutDirection, node, nodeIterator, originEdge, representedLabels, thickness; - $begin(monitor, 'Label dummy removal', 1); - edgeLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - labelLabelSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_LABEL_LABEL))); - layoutDirection = castTo($getProperty(layeredGraph, DIRECTION), 103); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); - while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { - node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); - if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - originEdge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); - thickness = $doubleValue(castToDouble($getProperty(originEdge, EDGE_THICKNESS_0))); - labelsBelowEdge = maskUndefined($getProperty(node, LABEL_SIDE)) === maskUndefined(($clinit_LabelSide() , BELOW)); - currLabelPos = new KVector_2(node.pos); - labelsBelowEdge && (currLabelPos.y_0 += thickness + edgeLabelSpacing); - labelSpace = new KVector_1(node.size_0.x_0, node.size_0.y_0 - thickness - edgeLabelSpacing); - representedLabels = castTo($getProperty(node, REPRESENTED_LABELS), 15); - layoutDirection == ($clinit_Direction_0() , UP_1) || layoutDirection == DOWN_1?$placeLabelsForVerticalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace, labelsBelowEdge, layoutDirection):$placeLabelsForHorizontalLayout(representedLabels, currLabelPos, labelLabelSpacing, labelSpace); - $addAll_2(originEdge.labels, representedLabels); - joinAt(node, maskUndefined($getProperty(layeredGraph, EDGE_ROUTING)) === maskUndefined(($clinit_EdgeRouting() , POLYLINE))); - $remove_8(nodeIterator); - } - } - } - $done_0(monitor); -} - -function LabelDummyRemover(){ -} - -defineClass(1547, 1, $intern_105, LabelDummyRemover); -_.process = function process_25(layeredGraph, monitor){ - $process_27(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover', 1547); -function LabelDummyRemover$lambda$0$Type(){ -} - -defineClass(1548, 1, $intern_39, LabelDummyRemover$lambda$0$Type); -_.test_0 = function test_40(arg0){ - return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover/lambda$0$Type', 1548); -function $clinit_LabelDummySwitcher(){ - $clinit_LabelDummySwitcher = emptyMethod; - INCLUDE_LABEL = new Property_0('edgelabelcenterednessanalysis.includelabel', ($clinit_Boolean() , FALSE_0)); -} - -function $assignIdsToLayers(layeredGraph){ - var layer, layer$iterator, layerIndex; - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layer.id_0 = layerIndex; - ++layerIndex; - } -} - -function $assignLayer(this$static, labelDummyInfo, targetLayerIndex){ - var label_0, label$iterator, newLayerId; - targetLayerIndex != labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1() && $swapNodes(labelDummyInfo.labelDummy, $ithDummyNode(labelDummyInfo, targetLayerIndex - labelDummyInfo.leftmostLayerId)); - newLayerId = labelDummyInfo.labelDummy.layer.id_0; - this$static.layerWidths[newLayerId] = $wnd.Math.max(this$static.layerWidths[newLayerId], labelDummyInfo.labelDummy.size_0.x_0); - for (label$iterator = castTo($getProperty(labelDummyInfo.labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - $setProperty_0(label_0, INCLUDE_LABEL, ($clinit_Boolean() , true)); - } -} - -function $assignToWiderLayer(this$static, labelDummyInfo){ - var dummyWidth, layer, layer$iterator, validLayers; - dummyWidth = labelDummyInfo.labelDummy.size_0.x_0; - validLayers = new AbstractList$SubList($getGraph(labelDummyInfo.labelDummy).layers, labelDummyInfo.leftmostLayerId, labelDummyInfo.rightmostLayerId + 1); - for (layer$iterator = new AbstractList$IteratorImpl(validLayers); layer$iterator.i < layer$iterator.this$01_0.size_1();) { - layer = (checkCriticalElement(layer$iterator.i < layer$iterator.this$01_0.size_1()) , castTo(layer$iterator.this$01_0.get_0(layer$iterator.last = layer$iterator.i++), 29)); - if (layer.size_0.x_0 >= dummyWidth) { - $assignLayer(this$static, labelDummyInfo, layer.id_0); - return true; - } - } - return false; -} - -function $calculateLayerWidths(this$static, layeredGraph){ - var layer, layer$iterator; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - this$static.layerWidths[layer.id_0] = findMaxNonDummyNodeWidth(layer); - } -} - -function $computeLayerWidthSums(this$static, labelDummyInfo){ - var currentIndex, currentWidthSum, edgeNodeSpacing, layerWidthSums, leftDummy, leftDummy$iterator, lgraph, minSpaceBetweenLayers, nodeNodeSpacing, rightDummy, rightDummy$iterator; - lgraph = $getGraph(labelDummyInfo.labelDummy); - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE_BETWEEN_LAYERS_0)))) * 2; - nodeNodeSpacing = $doubleValue(castToDouble($getProperty(lgraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); - minSpaceBetweenLayers = $wnd.Math.max(edgeNodeSpacing, nodeNodeSpacing); - layerWidthSums = initUnidimensionalArray(D_classLit, $intern_65, 25, labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1, 15, 1); - currentWidthSum = -minSpaceBetweenLayers; - currentIndex = 0; - for (leftDummy$iterator = labelDummyInfo.leftLongEdgeDummies.iterator_0(); leftDummy$iterator.hasNext_0();) { - leftDummy = castTo(leftDummy$iterator.next_1(), 10); - currentWidthSum += this$static.layerWidths[leftDummy.layer.id_0] + minSpaceBetweenLayers; - layerWidthSums[currentIndex++] = currentWidthSum; - } - currentWidthSum += this$static.layerWidths[labelDummyInfo.labelDummy.layer.id_0] + minSpaceBetweenLayers; - layerWidthSums[currentIndex++] = currentWidthSum; - for (rightDummy$iterator = new ArrayList$1(labelDummyInfo.rightLongEdgeDummies); rightDummy$iterator.i < rightDummy$iterator.this$01.array.length;) { - rightDummy = castTo($next_7(rightDummy$iterator), 10); - currentWidthSum += this$static.layerWidths[rightDummy.layer.id_0] + minSpaceBetweenLayers; - layerWidthSums[currentIndex++] = currentWidthSum; - } - return layerWidthSums; -} - -function $computeSpaceEfficientAssignment(this$static, labelDummyInfos){ - var labelCount, labelIndex, nonTrivialLabels; - nonTrivialLabels = $performTrivialAssignments(this$static, labelDummyInfos); - if (nonTrivialLabels.array.length == 0) { - return; - } - $sort(nonTrivialLabels, new LabelDummySwitcher$lambda$4$Type); - labelCount = nonTrivialLabels.array.length; - for (labelIndex = 0; labelIndex < labelCount; labelIndex++) { - $assignLayer(this$static, (checkCriticalElementIndex(labelIndex, nonTrivialLabels.array.length) , castTo(nonTrivialLabels.array[labelIndex], 286)), $findPotentiallyWidestLayer(this$static, nonTrivialLabels, labelIndex)); - } -} - -function $doUpdateLongEdgeLabelDummyInfo(labelDummy){ - var longEdgeDummy; - longEdgeDummy = ($clinit_LabelDummySwitcher() , castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner); - while (longEdgeDummy.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - $setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_BEFORE_LABEL_DUMMY), ($clinit_Boolean() , true)); - longEdgeDummy = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(longEdgeDummy).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; - } -} - -function $findCenterLayerTargetId(this$static, labelDummyInfo){ - var i, layerWidthSums, threshold; - layerWidthSums = $computeLayerWidthSums(this$static, labelDummyInfo); - threshold = layerWidthSums[layerWidthSums.length - 1] / 2; - for (i = 0; i < layerWidthSums.length; i++) { - if (layerWidthSums[i] >= threshold) { - return labelDummyInfo.leftmostLayerId + i; - } - } - return labelDummyInfo.leftmostLayerId + labelDummyInfo.leftLongEdgeDummies.size_1(); -} - -function $findPotentiallyWidestLayer(this$static, labelDummyInfos, labelIndex){ - var currLabelInfo, label_0, labelCount, labelDummyInfo, labelDummyWidth, largestUnassignedLabel, layer, potentialWidth, widestLayerIndex, widestLayerWidth; - labelCount = labelDummyInfos.array.length; - labelDummyInfo = (checkCriticalElementIndex(labelIndex, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[labelIndex], 286)); - labelDummyWidth = labelDummyInfo.labelDummy.size_0.x_0; - widestLayerIndex = labelDummyInfo.leftmostLayerId; - widestLayerWidth = 0; - for (layer = labelDummyInfo.leftmostLayerId; layer <= labelDummyInfo.rightmostLayerId; layer++) { - if (labelDummyWidth <= this$static.layerWidths[layer]) { - return layer; - } - potentialWidth = this$static.layerWidths[layer]; - largestUnassignedLabel = null; - for (label_0 = labelIndex + 1; label_0 < labelCount; label_0++) { - currLabelInfo = (checkCriticalElementIndex(label_0, labelDummyInfos.array.length) , castTo(labelDummyInfos.array[label_0], 286)); - currLabelInfo.leftmostLayerId <= layer && currLabelInfo.rightmostLayerId >= layer && (largestUnassignedLabel = currLabelInfo); - } - !!largestUnassignedLabel && (potentialWidth = $wnd.Math.max(potentialWidth, largestUnassignedLabel.labelDummy.size_0.x_0)); - if (potentialWidth > widestLayerWidth) { - widestLayerIndex = layer; - widestLayerWidth = potentialWidth; - } - } - return widestLayerIndex; -} - -function $findWidestLayerTargetId(this$static, labelDummyInfo){ - var index_0, widestLayerIndex; - widestLayerIndex = labelDummyInfo.leftmostLayerId; - for (index_0 = widestLayerIndex + 1; index_0 <= labelDummyInfo.rightmostLayerId; index_0++) { - this$static.layerWidths[index_0] > this$static.layerWidths[widestLayerIndex] && (widestLayerIndex = index_0); - } - return widestLayerIndex; -} - -function $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy){ - var infos, strategy, strategy$array, strategy$index, strategy$max; - infos = new EnumMap(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit); - for (strategy$array = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { - strategy = strategy$array[strategy$index]; - $put_8(infos, strategy, new ArrayList); - } - $forEach_3($map_0($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new LabelDummySwitcher$lambda$0$Type), new LabelDummySwitcher$lambda$1$Type), new LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy)), new LabelDummySwitcher$lambda$3$Type(infos)); - return infos; -} - -function $isPartOfReversedEdge(labelDummyInfo){ - var incoming, outgoing; - incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); - outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); - return $booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || $booleanValue(castToBoolean($getProperty(outgoing, REVERSED))); -} - -function $performTrivialAssignments(this$static, labelDummyInfos){ - var labelDummyInfo, labelDummyInfo$iterator, remainingLabels; - remainingLabels = new ArrayList_0(labelDummyInfos.size_1()); - for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { - labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); - labelDummyInfo.leftmostLayerId == labelDummyInfo.rightmostLayerId?$assignLayer(this$static, labelDummyInfo, labelDummyInfo.leftmostLayerId):$assignToWiderLayer(this$static, labelDummyInfo) || (remainingLabels.array[remainingLabels.array.length] = labelDummyInfo , true); - } - return remainingLabels; -} - -function $process_28(this$static, layeredGraph, monitor){ - var defaultPlacementStrategy, labelDummyInfos, strategy, strategy$array, strategy$array0, strategy$array1, strategy$index, strategy$index0, strategy$index1, strategy$max, strategy$max0, strategy$max1; - $begin(monitor, 'Label dummy switching', 1); - defaultPlacementStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)), 227); - $assignIdsToLayers(layeredGraph); - labelDummyInfos = $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy); - this$static.layerWidths = initUnidimensionalArray(D_classLit, $intern_65, 25, layeredGraph.layers.array.length, 15, 1); - for (strategy$array0 = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER])) , strategy$index0 = 0 , strategy$max0 = strategy$array0.length; strategy$index0 < strategy$max0; ++strategy$index0) { - strategy = strategy$array0[strategy$index0]; - if ((strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && !castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15).isEmpty()) { - $calculateLayerWidths(this$static, layeredGraph); - break; - } - } - for (strategy$array1 = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index1 = 0 , strategy$max1 = strategy$array1.length; strategy$index1 < strategy$max1; ++strategy$index1) { - strategy = strategy$array1[strategy$index1]; - strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER || $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); - } - for (strategy$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]) , strategy$index = 0 , strategy$max = strategy$array.length; strategy$index < strategy$max; ++strategy$index) { - strategy = strategy$array[strategy$index]; - (strategy == WIDEST_LAYER || strategy == CENTER_LAYER || strategy == SPACE_EFFICIENT_LAYER) && $processStrategy(this$static, castTo($containsEnum(labelDummyInfos.keySet, strategy)?labelDummyInfos.values[strategy.ordinal]:null, 15)); - } - this$static.layerWidths = null; - $done_0(monitor); -} - -function $processStrategy(this$static, labelDummyInfos){ - var labelDummyInfo, labelDummyInfo$iterator, reversed, reversed0, layers, lowerMedian; - if (labelDummyInfos.isEmpty()) { - return; - } - if (castTo(labelDummyInfos.get_0(0), 286).placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , SPACE_EFFICIENT_LAYER)) { - $computeSpaceEfficientAssignment(this$static, labelDummyInfos); - } - else { - for (labelDummyInfo$iterator = labelDummyInfos.iterator_0(); labelDummyInfo$iterator.hasNext_0();) { - labelDummyInfo = castTo(labelDummyInfo$iterator.next_1(), 286); - switch (labelDummyInfo.placementStrategy.ordinal) { - case 5: - $assignLayer(this$static, labelDummyInfo, $findCenterLayerTargetId(this$static, labelDummyInfo)); - break; - case 0: - $assignLayer(this$static, labelDummyInfo, (layers = labelDummyInfo.rightmostLayerId - labelDummyInfo.leftmostLayerId + 1 , lowerMedian = (layers - 1) / 2 | 0 , labelDummyInfo.leftmostLayerId + lowerMedian)); - break; - case 4: - $assignLayer(this$static, labelDummyInfo, $findWidestLayerTargetId(this$static, labelDummyInfo)); - break; - case 2: - $setEndLayerNodeAlignment(labelDummyInfo); - $assignLayer(this$static, labelDummyInfo, (reversed0 = $isPartOfReversedEdge(labelDummyInfo) , reversed0?labelDummyInfo.leftmostLayerId:labelDummyInfo.rightmostLayerId)); - break; - case 1: - $setEndLayerNodeAlignment(labelDummyInfo); - $assignLayer(this$static, labelDummyInfo, (reversed = $isPartOfReversedEdge(labelDummyInfo) , reversed?labelDummyInfo.rightmostLayerId:labelDummyInfo.leftmostLayerId)); - } - $doUpdateLongEdgeLabelDummyInfo(labelDummyInfo.labelDummy); - } - } -} - -function $setEndLayerNodeAlignment(labelDummyInfo){ - var isHeadLabel, isPartOfReversedEdge; - isHeadLabel = labelDummyInfo.placementStrategy == ($clinit_CenterEdgeLabelPlacementStrategy() , HEAD_LAYER); - isPartOfReversedEdge = $isPartOfReversedEdge(labelDummyInfo); - isHeadLabel && !isPartOfReversedEdge || !isHeadLabel && isPartOfReversedEdge?$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , RIGHT_5)):$setProperty_0(labelDummyInfo.labelDummy, ($clinit_LayeredOptions() , ALIGNMENT), ($clinit_Alignment() , LEFT_5)); -} - -function $swapNodes(labelDummy, longEdgeDummy){ - var dummy1LayerPosition, dummy2LayerPosition, edge, edge$array, edge$array0, edge$array1, edge$array2, edge$index, edge$index0, edge$index1, edge$index2, edge$max, edge$max0, edge$max1, edge$max2, incomingEdges1, incomingEdges2, inputPort1, inputPort2, layer1, layer2, outgoingEdges1, outgoingEdges2, outputPort1, outputPort2; - layer1 = labelDummy.layer; - layer2 = longEdgeDummy.layer; - dummy1LayerPosition = $indexOf_3(layer1.nodes, labelDummy, 0); - dummy2LayerPosition = $indexOf_3(layer2.nodes, longEdgeDummy, 0); - inputPort1 = castTo($getPorts(labelDummy, ($clinit_PortType() , INPUT)).iterator_0().next_1(), 11); - outputPort1 = castTo($getPorts(labelDummy, OUTPUT).iterator_0().next_1(), 11); - inputPort2 = castTo($getPorts(longEdgeDummy, INPUT).iterator_0().next_1(), 11); - outputPort2 = castTo($getPorts(longEdgeDummy, OUTPUT).iterator_0().next_1(), 11); - incomingEdges1 = toEdgeArray(inputPort1.incomingEdges); - outgoingEdges1 = toEdgeArray(outputPort1.outgoingEdges); - incomingEdges2 = toEdgeArray(inputPort2.incomingEdges); - outgoingEdges2 = toEdgeArray(outputPort2.outgoingEdges); - $setLayer(labelDummy, dummy2LayerPosition, layer2); - for (edge$array0 = incomingEdges2 , edge$index0 = 0 , edge$max0 = edge$array0.length; edge$index0 < edge$max0; ++edge$index0) { - edge = edge$array0[edge$index0]; - $setTarget_0(edge, inputPort1); - } - for (edge$array1 = outgoingEdges2 , edge$index1 = 0 , edge$max1 = edge$array1.length; edge$index1 < edge$max1; ++edge$index1) { - edge = edge$array1[edge$index1]; - $setSource_0(edge, outputPort1); - } - $setLayer(longEdgeDummy, dummy1LayerPosition, layer1); - for (edge$array2 = incomingEdges1 , edge$index2 = 0 , edge$max2 = edge$array2.length; edge$index2 < edge$max2; ++edge$index2) { - edge = edge$array2[edge$index2]; - $setTarget_0(edge, inputPort2); - } - for (edge$array = outgoingEdges1 , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setSource_0(edge, outputPort2); - } -} - -function LabelDummySwitcher(){ - $clinit_LabelDummySwitcher(); -} - -function lambda$2_4(defaultPlacementStrategy_0, labelDummy_1){ - $clinit_LabelDummySwitcher(); - return new LabelDummySwitcher$LabelDummyInfo(labelDummy_1, defaultPlacementStrategy_0); -} - -function lambda$3_2(infos_0, dummyInfo_1){ - $clinit_LabelDummySwitcher(); - return castTo($get_14(infos_0, dummyInfo_1.placementStrategy), 15).add_2(dummyInfo_1); -} - -function lambda$4_5(info1_0, info2_1){ - $clinit_LabelDummySwitcher(); - return compare_4(info2_1.labelDummy.size_0.x_0, info1_0.labelDummy.size_0.x_0); -} - -defineClass(1359, 1, $intern_105, LabelDummySwitcher); -_.process = function process_26(layeredGraph, monitor){ - $process_28(this, castTo(layeredGraph, 37), monitor); -} -; -_.layerWidths = null; -var INCLUDE_LABEL; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher', 1359); -function $gatherLeftLongEdgeDummies(this$static){ - var source; - source = this$static.labelDummy; - do { - source = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(source).val$inputs1.iterator_0(), new Iterables$10))), 17).source.owner; - source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && this$static.leftLongEdgeDummies.add_2(source); - } - while (source.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); - this$static.leftLongEdgeDummies = reverse_0(this$static.leftLongEdgeDummies); -} - -function $gatherRightLongEdgeDummies(this$static){ - var target; - target = this$static.labelDummy; - do { - target = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(target).val$inputs1.iterator_0(), new Iterables$10))), 17).target.owner; - target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $add_3(this$static.rightLongEdgeDummies, target); - } - while (target.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)); -} - -function $ithDummyNode(this$static, i){ - return i < this$static.leftLongEdgeDummies.size_1()?castTo(this$static.leftLongEdgeDummies.get_0(i), 10):i == this$static.leftLongEdgeDummies.size_1()?this$static.labelDummy:castTo($get_11(this$static.rightLongEdgeDummies, i - this$static.leftLongEdgeDummies.size_1() - 1), 10); -} - -function LabelDummySwitcher$LabelDummyInfo(labelDummy, defaultPlacementStrategy){ - var label_0, label$iterator; - this.leftLongEdgeDummies = new ArrayList; - this.rightLongEdgeDummies = new ArrayList; - this.labelDummy = labelDummy; - this.placementStrategy = defaultPlacementStrategy; - $gatherLeftLongEdgeDummies(this); - $gatherRightLongEdgeDummies(this); - this.leftLongEdgeDummies.isEmpty()?(this.leftmostLayerId = labelDummy.layer.id_0):(this.leftmostLayerId = castTo(this.leftLongEdgeDummies.get_0(0), 10).layer.id_0); - this.rightLongEdgeDummies.array.length == 0?(this.rightmostLayerId = labelDummy.layer.id_0):(this.rightmostLayerId = castTo($get_11(this.rightLongEdgeDummies, this.rightLongEdgeDummies.array.length - 1), 10).layer.id_0); - for (label$iterator = castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - if ($hasProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0))) { - this.placementStrategy = castTo($getProperty(label_0, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0), 227); - break; - } - } -} - -defineClass(286, 1, {286:1}, LabelDummySwitcher$LabelDummyInfo); -_.leftmostLayerId = 0; -_.placementStrategy = null; -_.rightmostLayerId = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$LabelDummyInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/LabelDummyInfo', 286); -function LabelDummySwitcher$lambda$0$Type(){ -} - -defineClass(1360, 1, {}, LabelDummySwitcher$lambda$0$Type); -_.apply_0 = function apply_91(arg0){ - return $clinit_LabelDummySwitcher() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$0$Type', 1360); -function LabelDummySwitcher$lambda$1$Type(){ -} - -defineClass(1361, 1, $intern_39, LabelDummySwitcher$lambda$1$Type); -_.test_0 = function test_41(arg0){ - return $clinit_LabelDummySwitcher() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , LABEL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$1$Type', 1361); -function LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy_0){ - this.defaultPlacementStrategy_0 = defaultPlacementStrategy_0; -} - -defineClass(1362, 1, {}, LabelDummySwitcher$lambda$2$Type); -_.apply_0 = function apply_92(arg0){ - return lambda$2_4(this.defaultPlacementStrategy_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$2$Type', 1362); -function LabelDummySwitcher$lambda$3$Type(infos_0){ - this.infos_0 = infos_0; -} - -defineClass(1363, 1, $intern_19, LabelDummySwitcher$lambda$3$Type); -_.accept = function accept_76(arg0){ - lambda$3_2(this.infos_0, castTo(arg0, 286)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$3$Type', 1363); -function LabelDummySwitcher$lambda$4$Type(){ -} - -defineClass(1364, 1, $intern_88, LabelDummySwitcher$lambda$4$Type); -_.compare_1 = function compare_46(arg0, arg1){ - return lambda$4_5(castTo(arg0, 286), castTo(arg1, 286)); -} -; -_.equals_0 = function equals_119(other){ - return this === other; -} -; -_.reversed = function reversed_38(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$4$Type', 1364); -function $process_29(layeredGraph, monitor){ - $begin(monitor, 'Label management', 1); - throwClassCastExceptionUnlessNull($getProperty(layeredGraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); - $done_0(monitor); -} - -function LabelManagementProcessor(){ -} - -defineClass(791, 1, $intern_105, LabelManagementProcessor); -_.process = function process_27(layeredGraph, monitor){ - $process_29(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelManagementProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelManagementProcessor', 791); -function $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide){ - var currLongEdgeSource, currLongEdgeTarget, currentDummy, currentDummy$iterator, endPort, endPort0, labelDummyRun, prevLongEdgeSource, prevLongEdgeTarget; - labelDummyRun = newArrayListWithCapacity(dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1); - prevLongEdgeSource = null; - prevLongEdgeTarget = null; - for (currentDummy$iterator = new ArrayDeque$IteratorImpl(dummyNodes); currentDummy$iterator.currentIndex != currentDummy$iterator.fence;) { - currentDummy = castTo($next_6(currentDummy$iterator), 10); - currLongEdgeSource = (endPort0 = castTo($getProperty(currentDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE)), 11) , !endPort0?null:endPort0.owner); - currLongEdgeTarget = (endPort = castTo($getProperty(currentDummy, LONG_EDGE_TARGET), 11) , !endPort?null:endPort.owner); - if (prevLongEdgeSource != currLongEdgeSource || prevLongEdgeTarget != currLongEdgeTarget) { - $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); - prevLongEdgeSource = currLongEdgeSource; - prevLongEdgeTarget = currLongEdgeTarget; - } - labelDummyRun.array[labelDummyRun.array.length] = currentDummy; - } - $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); -} - -function $applyLabelSide(labels, side){ - var label_0, label$iterator; - for (label$iterator = labels.iterator_0(); label$iterator.hasNext_0();) { - label_0 = castTo(label$iterator.next_1(), 70); - $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); - } -} - -function $applyLabelSide_0(edge, side){ - var label_0, label$iterator; - for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - $setProperty_0(label_0, ($clinit_InternalProperties_1() , LABEL_SIDE), side); - } -} - -function $applyLabelSide_1(labelDummy, side){ - var effectiveSide, originEdge, port, port$iterator, portPos, thickness; - if (labelDummy.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - effectiveSide = $spliterator($filter(castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).stream(), new Predicate$lambda$2$Type(new LabelSideSelector$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?side:($clinit_LabelSide() , INLINE); - $setProperty_0(labelDummy, LABEL_SIDE, effectiveSide); - if (effectiveSide != ($clinit_LabelSide() , BELOW)) { - originEdge = castTo($getProperty(labelDummy, ORIGIN_0), 17); - thickness = $doubleValue(castToDouble($getProperty(originEdge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); - portPos = 0; - if (effectiveSide == ABOVE) { - portPos = labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness / 2); - } - else if (effectiveSide == INLINE) { - labelDummy.size_0.y_0 -= $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))); - portPos = (labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness)) / 2; - } - for (port$iterator = new ArrayList$1(labelDummy.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.pos.y_0 = portPos; - } - } - } -} - -function $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide){ - var dummyNode, dummyNode$iterator; - if (labelDummyRun.array.length != 0) { - if (labelDummyRun.array.length == 2) { - $applyLabelSide_1((checkCriticalElementIndex(0, labelDummyRun.array.length) , castTo(labelDummyRun.array[0], 10)), ($clinit_LabelSide() , ABOVE)); - $applyLabelSide_1((checkCriticalElementIndex(1, labelDummyRun.array.length) , castTo(labelDummyRun.array[1], 10)), BELOW); - } - else { - for (dummyNode$iterator = new ArrayList$1(labelDummyRun); dummyNode$iterator.i < dummyNode$iterator.this$01.array.length;) { - dummyNode = castTo($next_7(dummyNode$iterator), 10); - $applyLabelSide_1(dummyNode, defaultSide); - } - } - labelDummyRun.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } -} - -function $basedOnDirection(graph, sideForRightwardEdges){ - var edge, edge$iterator, layer, layer$iterator, node, node$iterator, side, incoming, outgoing; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 == ($clinit_LNode$NodeType() , LABEL)) { - side = (incoming = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , !$booleanValue(castToBoolean($getProperty(incoming, ($clinit_InternalProperties_1() , REVERSED)))) || !$booleanValue(castToBoolean($getProperty(outgoing, REVERSED))))?sideForRightwardEdges:$opposite_0(sideForRightwardEdges); - $applyLabelSide_1(node, side); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - side = $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED))))?$opposite_0(sideForRightwardEdges):sideForRightwardEdges; - $applyLabelSide_0(edge, side); - } - } - } -} - -function $process_30(layeredGraph, monitor){ - var mode; - mode = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_SIDE_SELECTION_0)), 276); - $begin(monitor, 'Label side selection (' + mode + ')', 1); - switch (mode.ordinal) { - case 0: - $sameSide(layeredGraph, ($clinit_LabelSide() , ABOVE)); - break; - case 1: - $sameSide(layeredGraph, ($clinit_LabelSide() , BELOW)); - break; - case 2: - $basedOnDirection(layeredGraph, ($clinit_LabelSide() , ABOVE)); - break; - case 3: - $basedOnDirection(layeredGraph, ($clinit_LabelSide() , BELOW)); - break; - case 4: - $smart(layeredGraph, ($clinit_LabelSide() , ABOVE)); - break; - case 5: - $smart(layeredGraph, ($clinit_LabelSide() , BELOW)); - } - $done_0(monitor); -} - -function $sameSide(graph, labelSide){ - var edge, edge$iterator, layer, layer$iterator, node, node$iterator; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.type_0 == ($clinit_LNode$NodeType() , LABEL) && $applyLabelSide_1(node, labelSide); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $applyLabelSide_0(edge, labelSide); - } - } - } -} - -function $smart(graph, defaultSide){ - var dummyNodeQueue, labelDummiesInQueue, layer, layer$iterator, node, node$iterator, topGroup; - dummyNodeQueue = new ArrayDeque; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - topGroup = true; - labelDummiesInQueue = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - switch (node.type_0.ordinal) { - case 4: - ++labelDummiesInQueue; - case 1: - $addLast(dummyNodeQueue, node); - break; - case 0: - $smartForRegularNode(node, defaultSide); - default:dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, false, defaultSide); - topGroup = false; - labelDummiesInQueue = 0; - } - } - dummyNodeQueue.head == dummyNodeQueue.tail || $smartForConsecutiveDummyNodeRun(dummyNodeQueue, labelDummiesInQueue, topGroup, true, defaultSide); - } -} - -function $smartForConsecutiveDummyNodeRun(dummyNodes, labelDummyCount, topGroup, bottomGroup, defaultSide){ - if (topGroup && (!bottomGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.head], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { - $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.head], 10), ($clinit_LabelSide() , ABOVE)); - } - else if (bottomGroup && (!topGroup || (dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) > 1) && labelDummyCount == 1 && castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10).type_0 == ($clinit_LNode$NodeType() , LABEL)) { - $applyLabelSide_1(castTo(dummyNodes.array[dummyNodes.tail - 1 & dummyNodes.array.length - 1], 10), ($clinit_LabelSide() , BELOW)); - } - else if ((dummyNodes.tail - dummyNodes.head & dummyNodes.array.length - 1) == 2) { - $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), ($clinit_LabelSide() , ABOVE)); - $applyLabelSide_1(castTo($pollFirst(dummyNodes), 10), BELOW); - } - else { - $applyForDummyNodeRunWithSimpleLoops(dummyNodes, defaultSide); - } - $clear_4(dummyNodes); -} - -function $smartForRegularNode(node, defaultSide){ - var currentPortSide, endLabelQueue, port, port$iterator, portEndLabels; - endLabelQueue = new ArrayDeque_0(node.ports.array.length); - currentPortSide = null; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (port.side != currentPortSide) { - endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); - $clear_4(endLabelQueue); - currentPortSide = port.side; - } - portEndLabels = gatherLabels(port); - !!portEndLabels && ($addLast(endLabelQueue, portEndLabels) , true); - } - endLabelQueue.head == endLabelQueue.tail || $smartForRegularNodePortEndLabels(endLabelQueue, currentPortSide, defaultSide); -} - -function $smartForRegularNodePortEndLabels(endLabelQueue, portSide, defaultSide){ - var labelList, labelList$iterator; - if ((endLabelQueue.tail - endLabelQueue.head & endLabelQueue.array.length - 1) == 2) { - if (portSide == ($clinit_PortSide() , NORTH_3) || portSide == EAST_2) { - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , ABOVE)); - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), BELOW); - } - else { - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ($clinit_LabelSide() , BELOW)); - $applyLabelSide(castTo($pollFirst(endLabelQueue), 15), ABOVE); - } - } - else { - for (labelList$iterator = new ArrayDeque$IteratorImpl(endLabelQueue); labelList$iterator.currentIndex != labelList$iterator.fence;) { - labelList = castTo($next_6(labelList$iterator), 15); - $applyLabelSide(labelList, defaultSide); - } - } -} - -function LabelSideSelector(){ -} - -defineClass(1549, 1, $intern_105, LabelSideSelector); -_.process = function process_28(layeredGraph, monitor){ - $process_30(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector', 1549); -function LabelSideSelector$lambda$0$Type(){ -} - -defineClass(1550, 1, $intern_39, LabelSideSelector$lambda$0$Type); -_.test_0 = function test_42(arg0){ - return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector/lambda$0$Type', 1550); -function $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer){ - var layer, layer$iterator, layerIter, node, node$array, node$index, node$max, nodes; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodes = toNodeArray(layer.nodes); - for (node$array = nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 1: - $throwUpUnlessNoIncomingEdges(node); - $setLayer_0(node, firstLayer); - $moveLabelsToLabelLayer(node, true, firstLabelLayer); - break; - case 3: - $throwUpUnlessNoOutgoingEdges(node); - $setLayer_0(node, lastLayer); - $moveLabelsToLabelLayer(node, false, lastLabelLayer); - } - } - } - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)).nodes.array.length == 0 && $remove_8(layerIter); - } -} - -function $moveLabelsToLabelLayer(node, incoming, labelLayer){ - var edge, edge$iterator, possibleLableDummy; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2((incoming?$getIncomingEdges(node):$getOutgoingEdges(node)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - possibleLableDummy = incoming?edge.source.owner:edge.target.owner; - possibleLableDummy.type_0 == ($clinit_LNode$NodeType() , LABEL) && $setLayer_0(possibleLableDummy, labelLayer); - } -} - -function $process_31(layeredGraph, monitor){ - var firstLabelLayer, firstLayer, firstSeparateLayer, lastLabelLayer, lastLayer, lastSeparateLayer, layers; - $begin(monitor, 'Layer constraint postprocessing', 1); - layers = layeredGraph.layers; - if (layers.array.length != 0) { - firstLayer = (checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)); - lastLayer = castTo($get_11(layers, layers.array.length - 1), 29); - firstLabelLayer = new Layer(layeredGraph); - lastLabelLayer = new Layer(layeredGraph); - $moveFirstAndLastNodes(layeredGraph, firstLayer, lastLayer, firstLabelLayer, lastLabelLayer); - firstLabelLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstLabelLayer)); - lastLabelLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastLabelLayer , true); - } - if ($hasProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES))) { - firstSeparateLayer = new Layer(layeredGraph); - lastSeparateLayer = new Layer(layeredGraph); - $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer); - firstSeparateLayer.nodes.array.length == 0 || (checkCriticalPositionIndex(0, layers.array.length) , insertTo(layers.array, 0, firstSeparateLayer)); - lastSeparateLayer.nodes.array.length == 0 || (layers.array[layers.array.length] = lastSeparateLayer , true); - } - $done_0(monitor); -} - -function $restoreHiddenNodes(layeredGraph, firstSeparateLayer, lastSeparateLayer){ - var hiddenEdge, hiddenEdge$iterator, hiddenNode, hiddenNode$iterator, isOutgoing, originalOppositePort; - for (hiddenNode$iterator = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES)), 15).iterator_0(); hiddenNode$iterator.hasNext_0();) { - hiddenNode = castTo(hiddenNode$iterator.next_1(), 10); - switch (castTo($getProperty(hiddenNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 2: - $setLayer_0(hiddenNode, firstSeparateLayer); - break; - case 4: - $setLayer_0(hiddenNode, lastSeparateLayer); - } - for (hiddenEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(hiddenNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(hiddenEdge$iterator);) { - hiddenEdge = castTo($next_0(hiddenEdge$iterator), 17); - if (!!hiddenEdge.source && !!hiddenEdge.target) { - continue; - } - isOutgoing = !hiddenEdge.target; - originalOppositePort = castTo($getProperty(hiddenEdge, ORIGINAL_OPPOSITE_PORT), 11); - isOutgoing?$setTarget_0(hiddenEdge, originalOppositePort):$setSource_0(hiddenEdge, originalOppositePort); - } - } -} - -function $throwUpUnlessNoIncomingEdges(node){ - var incoming, incoming$iterator; - for (incoming$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incoming$iterator);) { - incoming = castTo($next_0(incoming$iterator), 17); - if (incoming.source.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to FIRST, but has at least one incoming edge that " + ' does not come from a FIRST_SEPARATE node. That must not happen.')); - } - } -} - -function $throwUpUnlessNoOutgoingEdges(node){ - var outgoing, outgoing$iterator; - for (outgoing$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoing$iterator);) { - outgoing = castTo($next_0(outgoing$iterator), 17); - if (outgoing.target.owner.type_0 != ($clinit_LNode$NodeType() , LABEL)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(node) + "' has its layer constraint set to LAST, but has at least one outgoing edge that " + ' does not go to a LAST_SEPARATE node. That must not happen.')); - } - } -} - -function LayerConstraintPostprocessor(){ -} - -defineClass(1558, 1, $intern_105, LayerConstraintPostprocessor); -_.process = function process_29(layeredGraph, monitor){ - $process_31(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPostprocessor', 1558); -function $clinit_LayerConstraintPreprocessor(){ - $clinit_LayerConstraintPreprocessor = emptyMethod; - HIDDEN_NODE_CONNECTIONS = new Property_0('separateLayerConnections', ($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , NONE_0)); -} - -function $ensureNoInacceptableEdges(lNode){ - var inEdge, inEdge$iterator, layerConstraint, outEdge, outEdge$iterator; - layerConstraint = castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); - if (layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)) { - for (inEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inEdge$iterator);) { - inEdge = castTo($next_0(inEdge$iterator), 17); - if (!$isAcceptableIncidentEdge(inEdge)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. " + 'FIRST_SEPARATE nodes must not have incoming edges.')); - } - } - } - else if (layerConstraint == LAST_SEPARATE_0) { - for (outEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outEdge$iterator);) { - outEdge = castTo($next_0(outEdge$iterator), 17); - if (!$isAcceptableIncidentEdge(outEdge)) { - throw toJs(new UnsupportedConfigurationException_0("Node '" + $getDesignation_2(lNode) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. " + 'LAST_SEPARATE nodes must not have outgoing edges.')); - } - } - } -} - -function $hide(lNode){ - var lEdge, lEdge$iterator, isOutgoing, oppositePort; - $ensureNoInacceptableEdges(lNode); - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - isOutgoing = lEdge.source.owner == lNode; - oppositePort = isOutgoing?lEdge.target:lEdge.source; - isOutgoing?$setTarget_0(lEdge, null):$setSource_0(lEdge, null); - $setProperty_0(lEdge, ($clinit_InternalProperties_1() , ORIGINAL_OPPOSITE_PORT), oppositePort); - $updateOppositeNodeLayerConstraints(lNode, oppositePort.owner); - } -} - -function $isAcceptableIncidentEdge(edge){ - var sourceNode, targetNode; - sourceNode = edge.source.owner; - targetNode = edge.target.owner; - return sourceNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && targetNode.type_0 == EXTERNAL_PORT; -} - -function $isRelevantNode(lNode){ - switch (castTo($getProperty(lNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 2: - case 4: - return true; - default:return false; - } -} - -function $process_32(layeredGraph, monitor){ - var hiddenNodes, lNode, nodeIterator; - $begin(monitor, 'Layer constraint preprocessing', 1); - hiddenNodes = new ArrayList; - nodeIterator = new AbstractList$ListIteratorImpl(layeredGraph.layerlessNodes, 0); - while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { - lNode = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); - if ($isRelevantNode(lNode)) { - $hide(lNode); - hiddenNodes.array[hiddenNodes.array.length] = lNode; - $remove_8(nodeIterator); - } - } - hiddenNodes.array.length == 0 || $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES), hiddenNodes); - $done_0(monitor); -} - -function $updateOppositeNodeLayerConstraints(hiddenNode, oppositeNode){ - var connections; - if ($hasProperty(oppositeNode, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0))) { - return; - } - connections = $combine_0(castTo($getProperty(oppositeNode, HIDDEN_NODE_CONNECTIONS), 360), castTo($getProperty(hiddenNode, LAYERING_LAYER_CONSTRAINT_0), 163)); - $setProperty_0(oppositeNode, HIDDEN_NODE_CONNECTIONS, connections); - if ($hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(oppositeNode).val$inputs1.iterator_0(), new Iterables$10)))) { - return; - } - switch (connections.ordinal) { - case 1: - $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , FIRST)); - break; - case 2: - $setProperty_0(oppositeNode, LAYERING_LAYER_CONSTRAINT_0, ($clinit_LayerConstraint() , LAST)); - } -} - -function LayerConstraintPreprocessor(){ - $clinit_LayerConstraintPreprocessor(); -} - -defineClass(1559, 1, $intern_105, LayerConstraintPreprocessor); -_.process = function process_30(layeredGraph, monitor){ - $process_32(castTo(layeredGraph, 37), monitor); -} -; -var HIDDEN_NODE_CONNECTIONS; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor', 1559); -function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections = emptyMethod; - NONE_0 = new LayerConstraintPreprocessor$HiddenNodeConnections('NONE', 0); - FIRST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('FIRST_SEPARATE', 1); - LAST_SEPARATE = new LayerConstraintPreprocessor$HiddenNodeConnections('LAST_SEPARATE', 2); - BOTH = new LayerConstraintPreprocessor$HiddenNodeConnections('BOTH', 3); -} - -function $combine_0(this$static, layerConstraint){ - switch (this$static.ordinal) { - case 0: - return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:LAST_SEPARATE; - case 1: - return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?FIRST_SEPARATE:BOTH; - case 2: - return layerConstraint == ($clinit_LayerConstraint() , FIRST_SEPARATE_0)?BOTH:LAST_SEPARATE; - default:return BOTH; - } -} - -function LayerConstraintPreprocessor$HiddenNodeConnections(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_33(name_0){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); - return valueOf(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map() , $MAP_21), name_0); -} - -function values_39(){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]); -} - -defineClass(360, 22, {3:1, 35:1, 22:1, 360:1}, LayerConstraintPreprocessor$HiddenNodeConnections); -var BOTH, FIRST_SEPARATE, LAST_SEPARATE, NONE_0; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor/HiddenNodeConnections', 360, Ljava_lang_Enum_2_classLit, values_39, valueOf_33); -function $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map(){ - $clinit_LayerConstraintPreprocessor$HiddenNodeConnections$Map = emptyMethod; - $MAP_21 = createValueOfMap(($clinit_LayerConstraintPreprocessor$HiddenNodeConnections() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor$HiddenNodeConnections_2_classLit, 1), $intern_36, 360, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]))); -} - -var $MAP_21; -function $process_33(layeredGraph, monitor){ - var bottom, firstNode, foundNodes, lastNode, layer, layer$iterator, layerSize, maxY, minY, node, node$iterator, nodeMargin, nodeSize, top_0; - $begin(monitor, 'Layer size calculation', 1); - minY = $intern_59; - maxY = $intern_60; - foundNodes = false; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerSize = layer.size_0; - layerSize.x_0 = 0; - layerSize.y_0 = 0; - if (layer.nodes.array.length == 0) { - continue; - } - foundNodes = true; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeSize = node.size_0; - nodeMargin = node.margin; - layerSize.x_0 = $wnd.Math.max(layerSize.x_0, nodeSize.x_0 + nodeMargin.left + nodeMargin.right); - } - firstNode = castTo($get_11(layer.nodes, 0), 10); - top_0 = firstNode.pos.y_0 - firstNode.margin.top_0; - firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (top_0 -= castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).top_0); - lastNode = castTo($get_11(layer.nodes, layer.nodes.array.length - 1), 10); - bottom = lastNode.pos.y_0 + lastNode.size_0.y_0 + lastNode.margin.bottom; - lastNode.type_0 == EXTERNAL_PORT && (bottom += castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_PORTS_SURROUNDING)), 142).bottom); - layerSize.y_0 = bottom - top_0; - minY = $wnd.Math.min(minY, top_0); - maxY = $wnd.Math.max(maxY, bottom); - } - if (!foundNodes) { - minY = 0; - maxY = 0; - } - layeredGraph.size_0.y_0 = maxY - minY; - layeredGraph.offset.y_0 -= minY; - $done_0(monitor); -} - -function LayerSizeAndGraphHeightCalculator(){ -} - -defineClass(1560, 1, $intern_105, LayerSizeAndGraphHeightCalculator); -_.process = function process_31(layeredGraph, monitor){ - $process_33(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LayerSizeAndGraphHeightCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerSizeAndGraphHeightCalculator', 1560); -function $process_34(layeredGraph, monitor){ - var addUnnecessaryBendpoints, layer, layer$iterator, node, nodeIterator; - $begin(monitor, 'Edge joining', 1); - addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(layeredGraph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeIterator = new AbstractList$ListIteratorImpl(layer.nodes, 0); - while (nodeIterator.i < nodeIterator.this$01_0.size_1()) { - node = (checkCriticalElement(nodeIterator.i < nodeIterator.this$01_0.size_1()) , castTo(nodeIterator.this$01_0.get_0(nodeIterator.last = nodeIterator.i++), 10)); - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - joinAt(node, addUnnecessaryBendpoints); - $remove_8(nodeIterator); - } - } - } - $done_0(monitor); -} - -function LongEdgeJoiner(){ -} - -function joinAt(longEdgeDummy, addUnnecessaryBendpoints){ - var bendPoint, bendPoint$iterator, droppedEdge, droppedEdgeListIndex, droppedJunctionsPoints, edgeCount, inputPortEdges, jp, jp$iterator, label_0, label$iterator, outputPortEdges, survivingBendPoints, survivingEdge, survivingJunctionPoints, survivingLabels, targetIncomingEdges, unnecessaryBendpoint; - inputPortEdges = castTo($getPorts_1(longEdgeDummy, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11).incomingEdges; - outputPortEdges = castTo($getPorts_1(longEdgeDummy, EAST_2).iterator_0().next_1(), 11).outgoingEdges; - edgeCount = inputPortEdges.array.length; - unnecessaryBendpoint = $getAbsoluteAnchor(castTo($get_11(longEdgeDummy.ports, 0), 11)); - while (edgeCount-- > 0) { - survivingEdge = (checkCriticalElementIndex(0, inputPortEdges.array.length) , castTo(inputPortEdges.array[0], 17)); - droppedEdge = (checkCriticalElementIndex(0, outputPortEdges.array.length) , castTo(outputPortEdges.array[0], 17)); - targetIncomingEdges = droppedEdge.target.incomingEdges; - droppedEdgeListIndex = $indexOf_3(targetIncomingEdges, droppedEdge, 0); - $setTargetAndInsertAtIndex(survivingEdge, droppedEdge.target, droppedEdgeListIndex); - $setSource_0(droppedEdge, null); - $setTarget_0(droppedEdge, null); - survivingBendPoints = survivingEdge.bendPoints; - addUnnecessaryBendpoints && $add_7(survivingBendPoints, new KVector_2(unnecessaryBendpoint)); - for (bendPoint$iterator = $listIterator_2(droppedEdge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { - bendPoint = castTo($next_10(bendPoint$iterator), 8); - $add_7(survivingBendPoints, new KVector_2(bendPoint)); - } - survivingLabels = survivingEdge.labels; - for (label$iterator = new ArrayList$1(droppedEdge.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - survivingLabels.array[survivingLabels.array.length] = label_0; - } - survivingJunctionPoints = castTo($getProperty(survivingEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - droppedJunctionsPoints = castTo($getProperty(droppedEdge, JUNCTION_POINTS), 74); - if (droppedJunctionsPoints) { - if (!survivingJunctionPoints) { - survivingJunctionPoints = new KVectorChain; - $setProperty_0(survivingEdge, JUNCTION_POINTS, survivingJunctionPoints); - } - for (jp$iterator = $listIterator_2(droppedJunctionsPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - $add_7(survivingJunctionPoints, new KVector_2(jp)); - } - } - } -} - -defineClass(1561, 1, $intern_105, LongEdgeJoiner); -_.process = function process_32(layeredGraph, monitor){ - $process_34(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeJoiner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeJoiner', 1561); -function $process_35(layeredGraph, monitor){ - var edge, edge$iterator, layer, layerIter, nextLayer, node, node$iterator, port, port$iterator, targetLayer, targetPort, dummyNode; - $begin(monitor, 'Edge splitting', 1); - if (layeredGraph.layers.array.length <= 2) { - $done_0(monitor); - return; - } - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = nextLayer; - nextLayer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - targetPort = edge.target; - targetLayer = targetPort.owner.layer; - targetLayer != layer && targetLayer != nextLayer && splitEdge(edge, (dummyNode = new LNode(layeredGraph) , $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)) , $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge) , $setProperty_0(dummyNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)) , $setLayer_0(dummyNode, nextLayer) , dummyNode)); - } - } - } - } - $done_0(monitor); -} - -function LongEdgeSplitter(){ -} - -function moveHeadLabels(oldEdge, newEdge){ - var label_0, labelIterator, labelPlacement; - labelIterator = new AbstractList$ListIteratorImpl(oldEdge.labels, 0); - while (labelIterator.i < labelIterator.this$01_0.size_1()) { - label_0 = (checkCriticalElement(labelIterator.i < labelIterator.this$01_0.size_1()) , castTo(labelIterator.this$01_0.get_0(labelIterator.last = labelIterator.i++), 70)); - labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); - if (labelPlacement == ($clinit_EdgeLabelPlacement() , HEAD)) { - $remove_8(labelIterator); - $add_3(newEdge.labels, label_0); - $hasProperty(label_0, ($clinit_InternalProperties_1() , END_LABEL_EDGE)) || $setProperty_0(label_0, END_LABEL_EDGE, oldEdge); - } - } -} - -function setDummyNodeProperties(dummyNode, inEdge, outEdge){ - var inEdgeSourceNode, outEdgeTargetNode; - inEdgeSourceNode = inEdge.source.owner; - outEdgeTargetNode = outEdge.target.owner; - if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); - $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, castToBoolean($getProperty(inEdgeSourceNode, LONG_EDGE_HAS_LABEL_DUMMIES))); - } - else if (inEdgeSourceNode.type_0 == LABEL) { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); - $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); - } - else if (outEdgeTargetNode.type_0 == LABEL) { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(outEdgeTargetNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(outEdgeTargetNode, LONG_EDGE_TARGET), 11)); - $setProperty_0(dummyNode, LONG_EDGE_HAS_LABEL_DUMMIES, ($clinit_Boolean() , true)); - } - else { - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); - $setProperty_0(dummyNode, LONG_EDGE_TARGET, outEdge.target); - } -} - -function splitEdge(edge, dummyNode){ - var dummyEdge, dummyInput, dummyOutput, oldEdgeTarget, portPos, thickness; - oldEdgeTarget = edge.target; - thickness = $doubleValue(castToDouble($getProperty(edge, ($clinit_LayeredOptions() , EDGE_THICKNESS_0)))); - if (thickness < 0) { - thickness = 0; - $setProperty_0(edge, EDGE_THICKNESS_0, thickness); - } - dummyNode.size_0.y_0 = thickness; - portPos = $wnd.Math.floor(thickness / 2); - dummyInput = new LPort; - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInput, dummyNode); - dummyInput.pos.y_0 = portPos; - dummyOutput = new LPort; - $setSide(dummyOutput, EAST_2); - $setNode(dummyOutput, dummyNode); - dummyOutput.pos.y_0 = portPos; - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, oldEdgeTarget); - setDummyNodeProperties(dummyNode, edge, dummyEdge); - moveHeadLabels(edge, dummyEdge); - return dummyEdge; -} - -defineClass(1562, 1, $intern_105, LongEdgeSplitter); -_.process = function process_33(layeredGraph, monitor){ - $process_35(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeSplitter', 1562); -function $precalculateAndSetInformation(this$static){ - var dummyBaggage, inDegree, incoming, layer, layer$iterator, layer$iterator0, layerID, layerSize, layerSizePixel, node, node$iterator, nodeID, nodesNdummies, outDegree, outcoming; - this$static.nodeSizeAffix = $doubleValue(castToDouble($getProperty(this$static.masterGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - this$static.dummySize = $doubleValue(castToDouble($getProperty(this$static.masterGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - this$static.maxHeight = this$static.masterGraph.layers.array.length; - layerID = this$static.maxHeight - 1; - nodeID = 0; - this$static.maxWidth = 0; - this$static.maxWidthPixel = 0; - this$static.currentWidth = newArrayList_1(initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, this$static.maxHeight, 0, 1)); - this$static.currentWidthPixel = newArrayList_1(initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, this$static.maxHeight, 7, 1)); - for (layer$iterator0 = new ArrayList$1(this$static.masterGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - layer.id_0 = layerID; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = nodeID; - ++nodeID; - } - --layerID; - } - this$static.layers = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeID, 15, 1); - this$static.degreeDiff = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [nodeID, 3], 2); - this$static.nodes = new ArrayList; - this$static.nodesWithIncomingEdges = new ArrayList; - dummyBaggage = 0; - this$static.dummyNodeCount = 0; - for (layer$iterator = new ArrayList$1(this$static.masterGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerID = layer.id_0; - incoming = 0; - outcoming = 0; - layerSize = layer.nodes.array.length; - layerSizePixel = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeID = node.id_0; - this$static.layers[nodeID] = node.layer.id_0; - layerSizePixel += node.size_0.y_0 + this$static.nodeSizeAffix; - inDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - outDegree = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - this$static.degreeDiff[nodeID][0] = outDegree - inDegree; - this$static.degreeDiff[nodeID][1] = inDegree; - this$static.degreeDiff[nodeID][2] = outDegree; - incoming += inDegree; - outcoming += outDegree; - inDegree > 0 && $add_3(this$static.nodesWithIncomingEdges, node); - $add_3(this$static.nodes, node); - } - dummyBaggage -= incoming; - nodesNdummies = layerSize + dummyBaggage; - layerSizePixel += dummyBaggage * this$static.dummySize; - $set_1(this$static.currentWidth, layerID, valueOf_4(nodesNdummies)); - $set_1(this$static.currentWidthPixel, layerID, layerSizePixel); - this$static.maxWidth = $wnd.Math.max(this$static.maxWidth, nodesNdummies); - this$static.maxWidthPixel = $wnd.Math.max(this$static.maxWidthPixel, layerSizePixel); - this$static.dummyNodeCount += dummyBaggage; - dummyBaggage += outcoming; - } -} - -function $process_36(this$static, layeredGraph, progressMonitor){ - var donna, donna$iterator, funFunction, martha, martha$iterator, newMaxWidth, newMaxWidthPixel, promoteUntil, promoteUntilD, promoteUntilN; - $begin(progressMonitor, 'Node promotion heuristic', 1); - this$static.masterGraph = layeredGraph; - $precalculateAndSetInformation(this$static); - this$static.promotionStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_NODE_PROMOTION_STRATEGY_0)), 260); - promoteUntil = castTo($getProperty(this$static.masterGraph, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0), 19).value_0; - funFunction = new NodePromotion$lambda$0$Type; - switch (this$static.promotionStrategy.ordinal) { - case 2: - case 1: - $promotionMagic(this$static, funFunction); - break; - case 3: - this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); - $promotionMagic(this$static, funFunction); - newMaxWidth = 0; - for (martha$iterator = new ArrayList$1(this$static.currentWidth); martha$iterator.i < martha$iterator.this$01.array.length;) { - martha = castTo($next_7(martha$iterator), 19); - newMaxWidth = $wnd.Math.max(newMaxWidth, martha.value_0); - } - - if (newMaxWidth > this$static.maxWidth) { - this$static.promotionStrategy = NIKOLOV; - $promotionMagic(this$static, funFunction); - } - - break; - case 4: - this$static.promotionStrategy = ($clinit_NodePromotionStrategy() , NO_BOUNDARY); - $promotionMagic(this$static, funFunction); - newMaxWidthPixel = 0; - for (donna$iterator = new ArrayList$1(this$static.currentWidthPixel); donna$iterator.i < donna$iterator.this$01.array.length;) { - donna = castToDouble($next_7(donna$iterator)); - newMaxWidthPixel = $wnd.Math.max(newMaxWidthPixel, (checkCriticalNotNull(donna) , donna)); - } - - if (newMaxWidthPixel > this$static.maxWidthPixel) { - this$static.promotionStrategy = NIKOLOV_PIXEL; - $promotionMagic(this$static, funFunction); - } - - break; - case 6: - promoteUntilN = round_int($wnd.Math.ceil(this$static.layers.length * promoteUntil / 100)); - $promotionMagic(this$static, new NodePromotion$lambda$1$Type(promoteUntilN)); - break; - case 5: - promoteUntilD = round_int($wnd.Math.ceil(this$static.dummyNodeCount * promoteUntil / 100)); - $promotionMagic(this$static, new NodePromotion$lambda$2$Type(promoteUntilD)); - break; - default:$promotionMagic(this$static, funFunction); - } - $setNewLayering(this$static, layeredGraph); - $done_0(progressMonitor); -} - -function $promoteNode(this$static, node){ - var dummiesBuilt, dummiesReduced, dummydiff, edge, edge$iterator, masterNode, maxWidthNotExceeded, nodeLayerPos, nodeSize, promotion; - maxWidthNotExceeded = true; - dummydiff = 0; - nodeLayerPos = this$static.layers[node.id_0]; - nodeSize = node.size_0.y_0 + this$static.nodeSizeAffix; - dummiesBuilt = this$static.degreeDiff[node.id_0][2]; - $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 - 1 + dummiesBuilt)); - $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) - nodeSize + dummiesBuilt * this$static.dummySize); - ++nodeLayerPos; - if (nodeLayerPos >= this$static.maxHeight) { - ++this$static.maxHeight; - $add_3(this$static.currentWidth, valueOf_4(1)); - $add_3(this$static.currentWidthPixel, nodeSize); - } - else { - dummiesReduced = this$static.degreeDiff[node.id_0][1]; - $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 + 1 - dummiesReduced)); - $set_1(this$static.currentWidthPixel, nodeLayerPos, $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) + nodeSize - dummiesReduced * this$static.dummySize); - } - (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) && (castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).value_0 > this$static.maxWidth || castTo($get_11(this$static.currentWidth, nodeLayerPos - 1), 19).value_0 > this$static.maxWidth) || this$static.promotionStrategy == NIKOLOV_PIXEL && ($doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos))) > this$static.maxWidthPixel || $doubleValue(castToDouble($get_11(this$static.currentWidthPixel, nodeLayerPos - 1))) > this$static.maxWidthPixel)) && (maxWidthNotExceeded = false); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - masterNode = edge.source.owner; - if (this$static.layers[masterNode.id_0] == nodeLayerPos) { - promotion = $promoteNode(this$static, masterNode); - dummydiff = dummydiff + castTo(promotion.first, 19).value_0; - maxWidthNotExceeded = maxWidthNotExceeded && $booleanValue(castToBoolean(promotion.second)); - } - } - this$static.layers[node.id_0] = nodeLayerPos; - dummydiff = dummydiff + this$static.degreeDiff[node.id_0][0]; - return new Pair(valueOf_4(dummydiff), ($clinit_Boolean() , maxWidthNotExceeded?true:false)); -} - -function $promotionMagic(this$static, funky){ - var apply_0, currentWidthBackup, currentWidthPixelBackup, dummyBackup, heightBackup, iterationCounter, layeringBackup, node, node$iterator, promotionFlag, promotionPair, promotions, reducedDummies; - iterationCounter = 0; - reducedDummies = 0; - layeringBackup = copyOf(this$static.layers, this$static.layers.length); - dummyBackup = this$static.dummyNodeCount; - heightBackup = this$static.maxHeight; - currentWidthBackup = this$static.currentWidth; - currentWidthPixelBackup = this$static.currentWidthPixel; - do { - promotions = 0; - for (node$iterator = new ArrayList$1(this$static.nodesWithIncomingEdges); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - promotionPair = $promoteNode(this$static, node); - apply_0 = true; - (this$static.promotionStrategy == ($clinit_NodePromotionStrategy() , NIKOLOV) || this$static.promotionStrategy == NIKOLOV_PIXEL) && (apply_0 = $booleanValue(castToBoolean(promotionPair.second))); - if (castTo(promotionPair.first, 19).value_0 < 0 && apply_0) { - ++promotions; - layeringBackup = copyOf(this$static.layers, this$static.layers.length); - this$static.dummyNodeCount = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; - reducedDummies += dummyBackup - this$static.dummyNodeCount; - dummyBackup = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; - heightBackup = this$static.maxHeight; - currentWidthBackup = newArrayList(this$static.currentWidth); - currentWidthPixelBackup = newArrayList(this$static.currentWidthPixel); - } - else { - this$static.layers = copyOf(layeringBackup, layeringBackup.length); - this$static.dummyNodeCount = dummyBackup; - this$static.currentWidth = (checkNotNull(currentWidthBackup) , currentWidthBackup?new ArrayList_1(currentWidthBackup):newArrayList_0(new ArrayList$1(currentWidthBackup))); - this$static.currentWidthPixel = (checkNotNull(currentWidthPixelBackup) , currentWidthPixelBackup?new ArrayList_1(currentWidthPixelBackup):newArrayList_0(new ArrayList$1(currentWidthPixelBackup))); - this$static.maxHeight = heightBackup; - } - } - ++iterationCounter; - promotionFlag = promotions != 0 && $booleanValue(castToBoolean(funky.apply_0(new Pair(valueOf_4(reducedDummies), valueOf_4(iterationCounter))))); - } - while (promotionFlag); -} - -function $setNewLayering(this$static, layeredGraph){ - var i, laLaLayer, layList, layerIt, node, node$iterator, possiblyEvilLayer; - layList = new ArrayList; - for (i = 0; i <= this$static.maxHeight; i++) { - laLaLayer = new Layer(layeredGraph); - laLaLayer.id_0 = this$static.maxHeight - i; - layList.array[layList.array.length] = laLaLayer; - } - for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $setLayer_0(node, castTo($get_11(layList, this$static.maxHeight - this$static.layers[node.id_0]), 29)); - } - layerIt = new ArrayList$1(layList); - while (layerIt.i < layerIt.this$01.array.length) { - possiblyEvilLayer = castTo($next_7(layerIt), 29); - possiblyEvilLayer.nodes.array.length == 0 && $remove_13(layerIt); - } - layeredGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(layeredGraph.layers, layList); -} - -function NodePromotion(){ -} - -function lambda$1_10(promoteUntilN_0, pair_1){ - return $clinit_Boolean() , castTo(pair_1.second, 19).value_0 < promoteUntilN_0?true:false; -} - -function lambda$2_5(promoteUntilD_0, pair_1){ - return $clinit_Boolean() , castTo(pair_1.first, 19).value_0 < promoteUntilD_0?true:false; -} - -defineClass(1563, 1, $intern_105, NodePromotion); -_.process = function process_34(layeredGraph, progressMonitor){ - $process_36(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.dummyNodeCount = 0; -_.dummySize = 0; -_.maxHeight = 0; -_.maxWidth = 0; -_.maxWidthPixel = 0; -_.nodeSizeAffix = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion', 1563); -function NodePromotion$lambda$0$Type(){ -} - -defineClass(1564, 1, {}, NodePromotion$lambda$0$Type); -_.apply_0 = function apply_93(arg0){ - return castTo(arg0, 46) , $clinit_Boolean() , true; -} -; -_.equals_0 = function equals_120(other){ - return this === other; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$0$Type', 1564); -function NodePromotion$lambda$1$Type(promoteUntilN_0){ - this.promoteUntilN_0 = promoteUntilN_0; -} - -defineClass(1565, 1, {}, NodePromotion$lambda$1$Type); -_.apply_0 = function apply_94(arg0){ - return lambda$1_10(this.promoteUntilN_0, castTo(arg0, 46)); -} -; -_.equals_0 = function equals_121(other){ - return this === other; -} -; -_.promoteUntilN_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$1$Type', 1565); -function NodePromotion$lambda$2$Type(promoteUntilD_0){ - this.promoteUntilD_0 = promoteUntilD_0; -} - -defineClass(1566, 1, {}, NodePromotion$lambda$2$Type); -_.apply_0 = function apply_95(arg0){ - return lambda$2_5(this.promoteUntilD_0, castTo(arg0, 46)); -} -; -_.equals_0 = function equals_122(other){ - return this === other; -} -; -_.promoteUntilD_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion/lambda$2$Type', 1566); -function $process_37(layeredGraph, monitor){ - var currentPort, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, port, port$iterator, portIterator, previousPort, routing, sameOriginPort, selfLoop, inputPort, outputPort, originInputPort, originOutputPort, bendPoint; - $begin(monitor, 'Odd port side processing', 1); - routing = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeArray = toNodeArray(layer.nodes); - for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if (node.type_0 != ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - continue; - } - if (routing == ($clinit_EdgeRouting() , SPLINES)) { - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.incomingEdges.array.length == 0 || $processSplineInputPort(port); - port.outgoingEdges.array.length == 0 || $processSplineOutputPort(port); - } - } - else if (instanceOf($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17)) { - selfLoop = castTo($getProperty(node, ORIGIN_0), 17); - inputPort = castTo($getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); - outputPort = castTo($getPorts_1(node, EAST_2).iterator_0().next_1(), 11); - originInputPort = castTo($getProperty(inputPort, ORIGIN_0), 11); - originOutputPort = castTo($getProperty(outputPort, ORIGIN_0), 11); - $setSource_0(selfLoop, originOutputPort); - $setTarget_0(selfLoop, originInputPort); - bendPoint = new KVector_2(outputPort.owner.pos); - bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originOutputPort.owner.pos, originOutputPort.pos, originOutputPort.anchor])).x_0; - $add_7(selfLoop.bendPoints, bendPoint); - bendPoint = new KVector_2(inputPort.owner.pos); - bendPoint.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originInputPort.owner.pos, originInputPort.pos, originInputPort.anchor])).x_0; - $add_7(selfLoop.bendPoints, bendPoint); - } - else { - if (node.ports.array.length >= 2) { - sameOriginPort = true; - portIterator = new ArrayList$1(node.ports); - currentPort = castTo($next_7(portIterator), 11); - previousPort = null; - while (portIterator.i < portIterator.this$01.array.length) { - previousPort = currentPort; - currentPort = castTo($next_7(portIterator), 11); - if (!equals_Ljava_lang_Object__Z__devirtual$($getProperty(previousPort, ORIGIN_0), $getProperty(currentPort, ORIGIN_0))) { - sameOriginPort = false; - break; - } - } - } - else { - sameOriginPort = false; - } - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.incomingEdges.array.length == 0 || $processInputPort(port, sameOriginPort); - port.outgoingEdges.array.length == 0 || $processOutputPort(port, sameOriginPort); - } - } - $setLayer_0(node, null); - } - } - $done_0(monitor); -} - -function $processInputPort(inputPort, addJunctionPoints){ - var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, junctionPoints, originPort, x_0, y_0; - originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; - y_0 = inputPort.owner.pos.y_0; - edgeArray = toEdgeArray(inputPort.incomingEdges); - for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { - inEdge = inEdge$array[inEdge$index]; - $setTarget_0(inEdge, originPort); - $addLast_0(inEdge.bendPoints, new KVector_1(x_0, y_0)); - if (addJunctionPoints) { - junctionPoints = castTo($getProperty(inEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(inEdge, JUNCTION_POINTS, junctionPoints); - } - $add_7(junctionPoints, new KVector_1(x_0, y_0)); - } - } -} - -function $processOutputPort(outputPort, addJunctionPoints){ - var edgeArray, junctionPoints, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max, x_0, y_0; - originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [originPort.owner.pos, originPort.pos, originPort.anchor])).x_0; - y_0 = outputPort.owner.pos.y_0; - edgeArray = toEdgeArray(outputPort.outgoingEdges); - for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - $setSource_0(outEdge, originPort); - $addFirst_0(outEdge.bendPoints, new KVector_1(x_0, y_0)); - if (addJunctionPoints) { - junctionPoints = castTo($getProperty(outEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(outEdge, JUNCTION_POINTS, junctionPoints); - } - $add_7(junctionPoints, new KVector_1(x_0, y_0)); - } - } -} - -function $processSplineInputPort(inputPort){ - var edgeArray, inEdge, inEdge$array, inEdge$index, inEdge$max, originPort; - originPort = castTo($getProperty(inputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, inputPort.owner.pos.y_0); - edgeArray = toEdgeArray(inputPort.incomingEdges); - for (inEdge$array = edgeArray , inEdge$index = 0 , inEdge$max = inEdge$array.length; inEdge$index < inEdge$max; ++inEdge$index) { - inEdge = inEdge$array[inEdge$index]; - $setTarget_0(inEdge, originPort); - } -} - -function $processSplineOutputPort(outputPort){ - var edgeArray, originPort, outEdge, outEdge$array, outEdge$index, outEdge$max; - originPort = castTo($getProperty(outputPort, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - $setProperty_0(originPort, SPLINE_NS_PORT_Y_COORD, outputPort.owner.pos.y_0); - edgeArray = toEdgeArray(outputPort.outgoingEdges); - for (outEdge$array = edgeArray , outEdge$index = 0 , outEdge$max = outEdge$array.length; outEdge$index < outEdge$max; ++outEdge$index) { - outEdge = outEdge$array[outEdge$index]; - $setSource_0(outEdge, originPort); - } -} - -function NorthSouthPortPostprocessor(){ -} - -defineClass(1567, 1, $intern_105, NorthSouthPortPostprocessor); -_.process = function process_35(layeredGraph, monitor){ - $process_37(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPostprocessor', 1567); -function $createDummyNode_0(layeredGraph, inPort, outPort, dummyNodes){ - var crossingHint, dummy, dummyInputPort, dummyOutputPort, edge, edge$array, edge$index, edge$max, edgeArray; - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - crossingHint = 0; - if (inPort) { - dummyInputPort = new LPort; - $setProperty_0(dummyInputPort, ($clinit_InternalProperties_1() , ORIGIN_0), inPort); - $setProperty_0(dummy, ORIGIN_0, inPort.owner); - $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInputPort, dummy); - edgeArray = toEdgeArray(inPort.incomingEdges); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setTarget_0(edge, dummyInputPort); - } - $setProperty_0(inPort, PORT_DUMMY, dummy); - ++crossingHint; - } - if (outPort) { - dummyOutputPort = new LPort; - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), outPort.owner); - $setProperty_0(dummyOutputPort, ORIGIN_0, outPort); - $setSide(dummyOutputPort, ($clinit_PortSide() , EAST_2)); - $setNode(dummyOutputPort, dummy); - edgeArray = toEdgeArray(outPort.outgoingEdges); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $setSource_0(edge, dummyOutputPort); - } - $setProperty_0(outPort, PORT_DUMMY, dummy); - ++crossingHint; - } - $setProperty_0(dummy, ($clinit_InternalProperties_1() , CROSSING_HINT), valueOf_4(crossingHint)); - dummyNodes.array[dummyNodes.array.length] = dummy; - return dummy; -} - -function $createDummyNodes(layeredGraph, ports, dummyNodes, opposingSideDummyNodes, barycenterAssociates){ - var edge, edge$iterator, edge$iterator0, edge$iterator1, in_0, inOutPort, inOutPort$iterator, inOutPorts, inPort, inPort$iterator, inPorts, northSouthSelfLoopEdges, out, outPort, outPort$iterator, outPorts, port, port$iterator, port$iterator0, sameSideSelfLoopEdges, dummy, dummyInputPort, dummyOutputPort; - inPorts = new ArrayList_0(ports.size_0); - outPorts = new ArrayList_0(ports.size_0); - inOutPorts = new ArrayList_0(ports.size_0); - sameSideSelfLoopEdges = new ArrayList_0(ports.size_0); - northSouthSelfLoopEdges = new ArrayList_0(ports.size_0); - for (port$iterator0 = $listIterator_2(ports, 0); port$iterator0.currentNode != port$iterator0.this$01.tail;) { - port = castTo($next_10(port$iterator0), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - if (edge.source.owner == edge.target.owner) { - if (port.side == edge.target.side) { - sameSideSelfLoopEdges.array[sameSideSelfLoopEdges.array.length] = edge; - continue; - } - else if (port.side == ($clinit_PortSide() , NORTH_3) && edge.target.side == SOUTH_2) { - northSouthSelfLoopEdges.array[northSouthSelfLoopEdges.array.length] = edge; - continue; - } - } - } - } - for (edge$iterator1 = new ArrayList$1(northSouthSelfLoopEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { - edge = castTo($next_7(edge$iterator1), 17); - $createNorthSouthSelfLoopDummyNodes(layeredGraph, edge, dummyNodes, opposingSideDummyNodes, ($clinit_PortSide() , EAST_2)); - } - for (edge$iterator = new ArrayList$1(sameSideSelfLoopEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - dummy = new LNode(layeredGraph); - $setType(dummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); - $setProperty_0(dummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - dummyInputPort = new LPort; - $setProperty_0(dummyInputPort, ORIGIN_0, edge.target); - $setSide(dummyInputPort, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInputPort, dummy); - dummyOutputPort = new LPort; - $setProperty_0(dummyOutputPort, ORIGIN_0, edge.source); - $setSide(dummyOutputPort, EAST_2); - $setNode(dummyOutputPort, dummy); - $setProperty_0(edge.source, PORT_DUMMY, dummy); - $setProperty_0(edge.target, PORT_DUMMY, dummy); - $setSource_0(edge, null); - $setTarget_0(edge, null); - dummyNodes.array[dummyNodes.array.length] = dummy; - $setProperty_0(dummy, CROSSING_HINT, valueOf_4(2)); - } - for (port$iterator = $listIterator_2(ports, 0); port$iterator.currentNode != port$iterator.this$01.tail;) { - port = castTo($next_10(port$iterator), 11); - in_0 = port.incomingEdges.array.length > 0; - out = port.outgoingEdges.array.length > 0; - in_0 && out?(inOutPorts.array[inOutPorts.array.length] = port , true):in_0?(inPorts.array[inPorts.array.length] = port , true):out && (outPorts.array[outPorts.array.length] = port , true); - } - for (inPort$iterator = new ArrayList$1(inPorts); inPort$iterator.i < inPort$iterator.this$01.array.length;) { - inPort = castTo($next_7(inPort$iterator), 11); - $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inPort, null, dummyNodes)); - } - for (outPort$iterator = new ArrayList$1(outPorts); outPort$iterator.i < outPort$iterator.this$01.array.length;) { - outPort = castTo($next_7(outPort$iterator), 11); - $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, null, outPort, dummyNodes)); - } - for (inOutPort$iterator = new ArrayList$1(inOutPorts); inOutPort$iterator.i < inOutPort$iterator.this$01.array.length;) { - inOutPort = castTo($next_7(inOutPort$iterator), 11); - $add_3(barycenterAssociates, $createDummyNode_0(layeredGraph, inOutPort, inOutPort, dummyNodes)); - } -} - -function $createNorthSouthSelfLoopDummyNodes(layeredGraph, selfLoop, northDummyNodes, southDummyNodes, portSide){ - var northDummy, northDummyOutputPort, southDummy, southDummyInputPort; - northDummy = new LNode(layeredGraph); - $setType(northDummy, ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)); - $setProperty_0(northDummy, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(northDummy, ($clinit_InternalProperties_1() , ORIGIN_0), selfLoop.source.owner); - northDummyOutputPort = new LPort; - $setProperty_0(northDummyOutputPort, ORIGIN_0, selfLoop.source); - $setSide(northDummyOutputPort, portSide); - $setNode(northDummyOutputPort, northDummy); - $setProperty_0(selfLoop.source, PORT_DUMMY, northDummy); - southDummy = new LNode(layeredGraph); - $setType(southDummy, NORTH_SOUTH_PORT); - $setProperty_0(southDummy, PORT_CONSTRAINTS_0, FIXED_POS); - $setProperty_0(southDummy, ORIGIN_0, selfLoop.target.owner); - southDummyInputPort = new LPort; - $setProperty_0(southDummyInputPort, ORIGIN_0, selfLoop.target); - $setSide(southDummyInputPort, portSide); - $setNode(southDummyInputPort, southDummy); - $setProperty_0(selfLoop.target, PORT_DUMMY, southDummy); - $setSource_0(selfLoop, northDummyOutputPort); - $setTarget_0(selfLoop, southDummyInputPort); - checkCriticalPositionIndex(0, northDummyNodes.array.length); - insertTo(northDummyNodes.array, 0, northDummy); - southDummyNodes.array[southDummyNodes.array.length] = southDummy; - $setProperty_0(northDummy, CROSSING_HINT, valueOf_4(1)); - $setProperty_0(southDummy, CROSSING_HINT, valueOf_4(1)); -} - -function $process_38(layeredGraph, monitor){ - var barycenterAssociates, dummy, dummy$iterator, dummy$iterator0, dummyPort, insertPoint, layer, layer$iterator, node, node$array, node$index, node$max, nodeArray, northDummyNodes, originPort, pointer, port, port$iterator, portList, predecessor, southDummyNodes, successor; - $begin(monitor, 'Odd port side processing', 1); - northDummyNodes = new ArrayList; - southDummyNodes = new ArrayList; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - pointer = -1; - nodeArray = toNodeArray(layer.nodes); - for (node$array = nodeArray , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - ++pointer; - if (!(node.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)))) { - continue; - } - $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $sortPortList_0(node); - $setProperty_0(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT), node); - northDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - southDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - barycenterAssociates = new ArrayList; - portList = new LinkedList; - addAll_6(portList, $getPorts_1(node, ($clinit_PortSide() , NORTH_3))); - $createDummyNodes(layeredGraph, portList, northDummyNodes, southDummyNodes, barycenterAssociates); - insertPoint = pointer; - successor = node; - for (dummy$iterator0 = new ArrayList$1(northDummyNodes); dummy$iterator0.i < dummy$iterator0.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator0), 10); - $setLayer(dummy, insertPoint, layer); - ++pointer; - $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); - $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(dummy, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(successor); - } - $reset_0(portList); - for (port$iterator = $getPorts_1(node, SOUTH_2).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $addNode_0(portList, port, portList.header, portList.header.next_0); - } - $createDummyNodes(layeredGraph, portList, southDummyNodes, null, barycenterAssociates); - predecessor = node; - for (dummy$iterator = new ArrayList$1(southDummyNodes); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - $setLayer(dummy, ++pointer, layer); - $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); - dummyPort = castTo($get_11(dummy.ports, 0), 11); - originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); - $booleanValue(castToBoolean($getProperty(originPort, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0))) || castTo($getProperty(predecessor, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15).add_2(dummy); - } - barycenterAssociates.array.length == 0 || $setProperty_0(node, BARYCENTER_ASSOCIATES, barycenterAssociates); - } - } - $done_0(monitor); -} - -function $sortPortList_0(node){ - var inOutPorts, inPorts, incoming, outPorts, outgoing, port, port$iterator, ports; - ports = node.ports.array.length; - inPorts = 0; - inOutPorts = ports; - outPorts = 2 * ports; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - switch (port.side.ordinal) { - case 2: - case 4: - port.id_0 = -1; - break; - case 1: - case 3: - incoming = port.incomingEdges.array.length; - outgoing = port.outgoingEdges.array.length; - incoming > 0 && outgoing > 0?(port.id_0 = inOutPorts++):incoming > 0?(port.id_0 = inPorts++):outgoing > 0?(port.id_0 = outPorts++):(port.id_0 = inPorts++); - } - } - $clinit_Collections(); - $sort(node.ports, new NorthSouthPortPreprocessor$lambda$0$Type); -} - -function NorthSouthPortPreprocessor(){ -} - -function lambda$0_24(port1_0, port2_1){ - var side1, side2; - side1 = port1_0.side; - side2 = port2_1.side; - return side1 != side2?side1.ordinal - side2.ordinal:port1_0.id_0 == port2_1.id_0?0:side1 == ($clinit_PortSide() , NORTH_3)?port1_0.id_0 - port2_1.id_0:port2_1.id_0 - port1_0.id_0; -} - -defineClass(1568, 1, $intern_105, NorthSouthPortPreprocessor); -_.process = function process_36(layeredGraph, monitor){ - $process_38(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor', 1568); -function NorthSouthPortPreprocessor$lambda$0$Type(){ -} - -defineClass(1569, 1, $intern_88, NorthSouthPortPreprocessor$lambda$0$Type); -_.compare_1 = function compare_47(arg0, arg1){ - return lambda$0_24(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_123(other){ - return this === other; -} -; -_.reversed = function reversed_39(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor/lambda$0$Type', 1569); -function $connectNodes(firstPartition, secondPartition){ - var edge, node, node$iterator, otherNode, otherNode$iterator, sourcePort, targetPort; - for (node$iterator = firstPartition.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - sourcePort = new LPort; - $setNode(sourcePort, node); - $setSide(sourcePort, ($clinit_PortSide() , EAST_2)); - $setProperty_0(sourcePort, ($clinit_InternalProperties_1() , PARTITION_DUMMY), ($clinit_Boolean() , true)); - for (otherNode$iterator = secondPartition.iterator_0(); otherNode$iterator.hasNext_0();) { - otherNode = castTo(otherNode$iterator.next_1(), 10); - targetPort = new LPort; - $setNode(targetPort, otherNode); - $setSide(targetPort, WEST_2); - $setProperty_0(targetPort, PARTITION_DUMMY, true); - edge = new LEdge; - $setProperty_0(edge, PARTITION_DUMMY, true); - $setSource_0(edge, sourcePort); - $setTarget_0(edge, targetPort); - } - } -} - -function $process_39(lGraph, monitor){ - var firstId, idIterator, partitionToNodesMap, result, secondId, sortedPartitionIDs; - $begin(monitor, 'Partition midprocessing', 1); - partitionToNodesMap = new HashMultimap; - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionMidprocessor$lambda$0$Type), new PartitionMidprocessor$lambda$1$Type(partitionToNodesMap)); - if (partitionToNodesMap.totalSize == 0) { - return; - } - sortedPartitionIDs = castTo($collect_1($sorted_0((result = partitionToNodesMap.keySet , new StreamImpl(null, (!result?(partitionToNodesMap.keySet = new AbstractMapBasedMultimap$KeySet(partitionToNodesMap, partitionToNodesMap.map_0)):result).spliterator_0()))), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - idIterator = sortedPartitionIDs.iterator_0(); - firstId = castTo(idIterator.next_1(), 19); - while (idIterator.hasNext_0()) { - secondId = castTo(idIterator.next_1(), 19); - $connectNodes(castTo($get(partitionToNodesMap, firstId), 21), castTo($get(partitionToNodesMap, secondId), 21)); - firstId = secondId; - } - $done_0(monitor); -} - -function PartitionMidprocessor(){ -} - -function lambda$1_11(partitionToNodesMap_0, node_1){ - return $put(partitionToNodesMap_0, castTo($getProperty(node_1, ($clinit_LayeredOptions() , PARTITIONING_PARTITION)), 19), node_1); -} - -defineClass(1570, 1, $intern_105, PartitionMidprocessor); -_.process = function process_37(lGraph, monitor){ - $process_39(castTo(lGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor', 1570); -function PartitionMidprocessor$lambda$0$Type(){ -} - -defineClass(1571, 1, $intern_39, PartitionMidprocessor$lambda$0$Type); -_.test_0 = function test_43(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$0$Type', 1571); -function PartitionMidprocessor$lambda$1$Type(partitionToNodesMap_0){ - this.partitionToNodesMap_0 = partitionToNodesMap_0; -} - -defineClass(1572, 1, $intern_19, PartitionMidprocessor$lambda$1$Type); -_.accept = function accept_77(arg0){ - lambda$1_11(this.partitionToNodesMap_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor/lambda$1$Type', 1572); -function $process_40(lGraph, monitor){ - var layer, layer$iterator, node, node$iterator, port, ports; - $begin(monitor, 'Partition postprocessing', 1); - for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - ports = new ArrayList$1(node.ports); - while (ports.i < ports.this$01.array.length) { - port = castTo($next_7(ports), 11); - $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , PARTITION_DUMMY)))) && $remove_13(ports); - } - } - } - $done_0(monitor); -} - -function PartitionPostprocessor(){ -} - -defineClass(1573, 1, $intern_105, PartitionPostprocessor); -_.process = function process_38(lGraph, monitor){ - $process_40(castTo(lGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPostprocessor', 1573); -function $mustBeReversed(lEdge){ - var sourcePartition, targetPartition; - if ($hasProperty(lEdge.target.owner, ($clinit_LayeredOptions() , PARTITIONING_PARTITION))) { - sourcePartition = castTo($getProperty(lEdge.source.owner, PARTITIONING_PARTITION), 19); - targetPartition = castTo($getProperty(lEdge.target.owner, PARTITIONING_PARTITION), 19); - return compare_5(sourcePartition.value_0, targetPartition.value_0) > 0; - } - else { - return false; - } -} - -function $process_41(lGraph, monitor){ - var edgesToBeReversed; - $begin(monitor, 'Partition preprocessing', 1); - edgesToBeReversed = castTo($collect_1($filter($flatMap($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lGraph.layerlessNodes, 16)), new PartitionPreprocessor$lambda$0$Type), new PartitionPreprocessor$lambda$1$Type), new PartitionPreprocessor$lambda$2$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - $forEach_3(edgesToBeReversed.stream(), new PartitionPreprocessor$lambda$3$Type); - $done_0(monitor); -} - -function $reverse_1(lEdge){ - var priority; - $reverse_0(lEdge, true); - priority = $intern_45; - $hasProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)) && (priority += castTo($getProperty(lEdge, PRIORITY_DIRECTION_0), 19).value_0); - $setProperty_0(lEdge, PRIORITY_DIRECTION_0, valueOf_4(priority)); -} - -function PartitionPreprocessor(){ -} - -defineClass(1574, 1, $intern_105, PartitionPreprocessor); -_.process = function process_39(lGraph, monitor){ - $process_41(castTo(lGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor', 1574); -function PartitionPreprocessor$lambda$0$Type(){ -} - -defineClass(1575, 1, $intern_39, PartitionPreprocessor$lambda$0$Type); -_.test_0 = function test_44(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_LayeredOptions() , PARTITIONING_PARTITION)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$0$Type', 1575); -function PartitionPreprocessor$lambda$1$Type(){ -} - -defineClass(1576, 1, {}, PartitionPreprocessor$lambda$1$Type); -_.apply_0 = function apply_96(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$1$Type', 1576); -function PartitionPreprocessor$lambda$2$Type(){ -} - -defineClass(1577, 1, $intern_39, PartitionPreprocessor$lambda$2$Type); -_.test_0 = function test_45(arg0){ - return $mustBeReversed(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$2$Type', 1577); -function PartitionPreprocessor$lambda$3$Type(){ -} - -defineClass(1578, 1, $intern_19, PartitionPreprocessor$lambda$3$Type); -_.accept = function accept_78(arg0){ - $reverse_1(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$3$Type', 1578); -function $clinit_PortListSorter(){ - $clinit_PortListSorter = emptyMethod; - IN_EDGES = new PortListSorter$lambda$0$Type; - OUT_EDGES = new PortListSorter$lambda$1$Type; - CMP_PORT_SIDE = new PortListSorter$lambda$2$Type; - CMP_PORT_DEGREE_EAST_WEST = new PortListSorter$lambda$3$Type; - CMP_FIXED_ORDER_AND_FIXED_POS = new PortListSorter$lambda$4$Type; - CMP_COMBINED = (checkCriticalNotNull(CMP_FIXED_ORDER_AND_FIXED_POS) , new Comparator$lambda$0$Type); -} - -function $findPortSideRange(ports, side){ - var currentSide, hb, highIdx, lb, lowIdx; - if (ports.array.length == 0) { - return new Pair(valueOf_4(0), valueOf_4(0)); - } - currentSide = (checkCriticalElementIndex(0, ports.array.length) , castTo(ports.array[0], 11)).side; - lowIdx = 0; - lb = side.ordinal; - hb = side.ordinal + 1; - while (lowIdx < ports.array.length - 1 && currentSide.ordinal < lb) { - ++lowIdx; - currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; - } - highIdx = lowIdx; - while (highIdx < ports.array.length - 1 && currentSide.ordinal < hb) { - ++highIdx; - currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; - } - return new Pair(valueOf_4(lowIdx), valueOf_4(highIdx)); -} - -function $process_42(layeredGraph, monitor){ - var layer, layer$iterator, node, node$iterator, portConstraints, ports, pss; - $begin(monitor, 'Port order processing', 1); - pss = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_SORTING_STRATEGY_0)), 421); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - portConstraints = castTo($getProperty(node, PORT_CONSTRAINTS_0), 98); - ports = node.ports; - if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS) { - $clinit_Collections(); - $sort(ports, CMP_COMBINED); - } - else if (portConstraints != FREE && portConstraints != UNDEFINED_4) { - $clinit_Collections(); - $sort(ports, CMP_PORT_SIDE); - $reverseWestAndSouthSide(ports); - pss == ($clinit_PortSortingStrategy() , PORT_DEGREE) && $sort(ports, CMP_PORT_DEGREE_EAST_WEST); - } - node.portSidesCached = true; - $findPortIndices(node); - } - } - $done_0(monitor); -} - -function $reverse_2(ports, lowIdx, highIdx){ - var i, n, tmp; - if (highIdx <= lowIdx + 2) { - return; - } - n = (highIdx - lowIdx) / 2 | 0; - for (i = 0; i < n; ++i) { - tmp = (checkCriticalElementIndex(lowIdx + i, ports.array.length) , castTo(ports.array[lowIdx + i], 11)); - $set_1(ports, lowIdx + i, (checkCriticalElementIndex(highIdx - i - 1, ports.array.length) , castTo(ports.array[highIdx - i - 1], 11))); - checkCriticalElementIndex(highIdx - i - 1, ports.array.length); - ports.array[highIdx - i - 1] = tmp; - } -} - -function $reverseWestAndSouthSide(ports){ - var southIndices, westIndices; - if (ports.array.length <= 1) { - return; - } - southIndices = $findPortSideRange(ports, ($clinit_PortSide() , SOUTH_2)); - $reverse_2(ports, castTo(southIndices.first, 19).value_0, castTo(southIndices.second, 19).value_0); - westIndices = $findPortSideRange(ports, WEST_2); - $reverse_2(ports, castTo(westIndices.first, 19).value_0, castTo(westIndices.second, 19).value_0); -} - -function PortListSorter(){ - $clinit_PortListSorter(); -} - -function lambda$2_6(p1_0, p2_1){ - $clinit_PortListSorter(); - var ordinalDifference; - ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; - if (ordinalDifference != 0) { - return ordinalDifference; - } - return 0; -} - -function lambda$3_3(p1_0, p2_1){ - $clinit_PortListSorter(); - var ordinalDifference; - ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; - if (ordinalDifference != 0) { - return 0; - } - switch (p1_0.side.ordinal) { - case 2: - return realDegree_0(p2_1, OUT_EDGES) - realDegree_0(p1_0, OUT_EDGES); - case 4: - return realDegree_0(p1_0, IN_EDGES) - realDegree_0(p2_1, IN_EDGES); - } - return 0; -} - -function lambda$4_6(p1_0, p2_1){ - $clinit_PortListSorter(); - var index1, index2, indexDifference, ordinalDifference, portConstraints; - portConstraints = castTo($getProperty(p1_0.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - ordinalDifference = p1_0.side.ordinal - p2_1.side.ordinal; - if (ordinalDifference != 0 || !(portConstraints == ($clinit_PortConstraints() , FIXED_ORDER) || portConstraints == FIXED_RATIO || portConstraints == FIXED_POS)) { - return 0; - } - if (portConstraints == ($clinit_PortConstraints() , FIXED_ORDER)) { - index1 = castTo($getProperty(p1_0, PORT_INDEX), 19); - index2 = castTo($getProperty(p2_1, PORT_INDEX), 19); - if (!!index1 && !!index2) { - indexDifference = index1.value_0 - index2.value_0; - if (indexDifference != 0) { - return indexDifference; - } - } - } - switch (p1_0.side.ordinal) { - case 1: - return compare_4(p1_0.pos.x_0, p2_1.pos.x_0); - case 2: - return compare_4(p1_0.pos.y_0, p2_1.pos.y_0); - case 3: - return compare_4(p2_1.pos.x_0, p1_0.pos.x_0); - case 4: - return compare_4(p2_1.pos.y_0, p1_0.pos.y_0); - default:throw toJs(new IllegalStateException_0('Port side is undefined')); - } -} - -function realDegree_0(p, edgesFun){ - var e, e$iterator, realDegree; - realDegree = 0; - for (e$iterator = castTo(edgesFun.apply_0(p), 20).iterator_0(); e$iterator.hasNext_0();) { - e = castTo(e$iterator.next_1(), 17); - $booleanValue(castToBoolean($getProperty(e, ($clinit_InternalProperties_1() , REVERSED)))) || ++realDegree; - } - return realDegree; -} - -defineClass(1579, 1, $intern_105, PortListSorter); -_.process = function process_40(layeredGraph, monitor){ - $process_42(castTo(layeredGraph, 37), monitor); -} -; -var CMP_COMBINED, CMP_FIXED_ORDER_AND_FIXED_POS, CMP_PORT_DEGREE_EAST_WEST, CMP_PORT_SIDE, IN_EDGES, OUT_EDGES; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter', 1579); -function PortListSorter$lambda$0$Type(){ -} - -defineClass(1580, 1, {}, PortListSorter$lambda$0$Type); -_.apply_0 = function apply_97(arg0){ - return $clinit_PortListSorter() , castTo(arg0, 11).incomingEdges; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$0$Type', 1580); -function PortListSorter$lambda$1$Type(){ -} - -defineClass(1581, 1, {}, PortListSorter$lambda$1$Type); -_.apply_0 = function apply_98(arg0){ - return $clinit_PortListSorter() , castTo(arg0, 11).outgoingEdges; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$1$Type', 1581); -function PortListSorter$lambda$2$Type(){ -} - -defineClass(1582, 1, $intern_88, PortListSorter$lambda$2$Type); -_.compare_1 = function compare_48(arg0, arg1){ - return lambda$2_6(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_124(other){ - return this === other; -} -; -_.reversed = function reversed_40(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$2$Type', 1582); -function PortListSorter$lambda$3$Type(){ -} - -defineClass(1583, 1, $intern_88, PortListSorter$lambda$3$Type); -_.compare_1 = function compare_49(arg0, arg1){ - return lambda$3_3(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_125(other){ - return this === other; -} -; -_.reversed = function reversed_41(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$3$Type', 1583); -function PortListSorter$lambda$4$Type(){ -} - -defineClass(1584, 1, $intern_88, PortListSorter$lambda$4$Type); -_.compare_1 = function compare_50(arg0, arg1){ - return lambda$4_6(castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_126(other){ - return this === other; -} -; -_.reversed = function reversed_42(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortListSorter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$4$Type', 1584); -function $process_43(layeredGraph, monitor){ - var layer, layer$iterator, node, node$iterator, node$iterator0; - $begin(monitor, 'Port side processing', 1); - for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - $process_44(node); - } - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $process_44(node); - } - } - $done_0(monitor); -} - -function $process_44(node){ - var port, port$iterator, portDummy; - if ($isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.side == ($clinit_PortSide() , UNDEFINED_5) && (portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10) , portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, EAST_2):$setSide(port, WEST_2)); - } - } - else { - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):port.incomingEdges.array.length - port.outgoingEdges.array.length < 0?$setSide(port, ($clinit_PortSide() , EAST_2)):$setSide(port, ($clinit_PortSide() , WEST_2)); - } - $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_SIDE)); - } -} - -function PortSideProcessor(){ -} - -defineClass(1585, 1, $intern_105, PortSideProcessor); -_.process = function process_41(layeredGraph, monitor){ - $process_43(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_PortSideProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortSideProcessor', 1585); -function $process_45(layeredGraph, monitor){ - var edge, edge$array, edge$index, edge$max, edgeArray, layer, layer$iterator, node, node$iterator, port, port$iterator; - $begin(monitor, 'Restoring reversed edges', 1); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - edgeArray = toEdgeArray(port.outgoingEdges); - for (edge$array = edgeArray , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - $booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) && $reverse_0(edge, false); - } - } - } - } - $done_0(monitor); -} - -function ReversedEdgeRestorer(){ -} - -defineClass(1586, 1, $intern_105, ReversedEdgeRestorer); -_.process = function process_42(layeredGraph, monitor){ - $process_45(castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_ReversedEdgeRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ReversedEdgeRestorer', 1586); -function $process_46(this$static, graph, progressMonitor){ - $begin(progressMonitor, 'Self-Loop ordering', 1); - $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPortRestorer$lambda$0$Type), new SelfLoopPortRestorer$lambda$1$Type), new SelfLoopPortRestorer$lambda$2$Type), new SelfLoopPortRestorer$lambda$3$Type), new SelfLoopPortRestorer$lambda$4$Type(this$static)); - $done_0(progressMonitor); -} - -function $processNode_4(this$static, slHolder){ - if (slHolder.arePortsHidden) { - switch (castTo($getProperty(slHolder.lNode, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS)), 98).ordinal) { - case 0: - case 1: - $assignPortSides(slHolder); - case 2: - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); - $restorePorts_0(this$static.portRestorer, slHolder); - } - } - else { - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPortRestorer$lambda$5$Type); - } -} - -function SelfLoopPortRestorer(){ - this.portRestorer = new PortRestorer; -} - -defineClass(1591, 1, $intern_105, SelfLoopPortRestorer); -_.process = function process_43(graph, progressMonitor){ - $process_46(this, castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer', 1591); -function SelfLoopPortRestorer$lambda$0$Type(){ -} - -defineClass(1592, 1, {}, SelfLoopPortRestorer$lambda$0$Type); -_.apply_0 = function apply_99(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$0$Type', 1592); -function SelfLoopPortRestorer$lambda$1$Type(){ -} - -defineClass(1593, 1, $intern_39, SelfLoopPortRestorer$lambda$1$Type); -_.test_0 = function test_46(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$1$Type', 1593); -function SelfLoopPortRestorer$lambda$2$Type(){ -} - -defineClass(1594, 1, $intern_39, SelfLoopPortRestorer$lambda$2$Type); -_.test_0 = function test_47(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$2$Type', 1594); -function SelfLoopPortRestorer$lambda$3$Type(){ -} - -defineClass(1595, 1, {}, SelfLoopPortRestorer$lambda$3$Type); -_.apply_0 = function apply_100(arg0){ - return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$3$Type', 1595); -function SelfLoopPortRestorer$lambda$4$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1596, 1, $intern_19, SelfLoopPortRestorer$lambda$4$Type); -_.accept = function accept_79(arg0){ - $processNode_4(this.$$outer_0, castTo(arg0, 403)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$4$Type', 1596); -function SelfLoopPortRestorer$lambda$5$Type(){ -} - -defineClass(794, 1, $intern_19, SelfLoopPortRestorer$lambda$5$Type); -_.accept = function accept_80(arg0){ - $computePortsPerSide(castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$5$Type', 794); -function $process_47(graph, progressMonitor){ - $begin(progressMonitor, 'Self-Loop post-processing', 1); - $forEach_3($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopPostProcessor$lambda$0$Type), new SelfLoopPostProcessor$lambda$1$Type), new SelfLoopPostProcessor$lambda$2$Type), new SelfLoopPostProcessor$lambda$3$Type); - $done_0(progressMonitor); -} - -function $processNode_5(lNode){ - var slHolder; - slHolder = castTo($getProperty(lNode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$4$Type), new SelfLoopPostProcessor$lambda$5$Type(lNode)); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPostProcessor$lambda$6$Type), new SelfLoopPostProcessor$lambda$7$Type(lNode)); -} - -function $restoreEdge(lNode, slEdge){ - var lEdge; - lEdge = slEdge.lEdge; - $setSource_0(lEdge, slEdge.slSource.lPort); - $setTarget_0(lEdge, slEdge.slTarget.lPort); - $offset_2(lEdge.bendPoints, lNode.pos); -} - -function SelfLoopPostProcessor(){ -} - -function lambda$7_1(lNode_0, slLoop_1){ - $applyPlacement(slLoop_1.slLabels, lNode_0.pos); -} - -defineClass(1597, 1, $intern_105, SelfLoopPostProcessor); -_.process = function process_44(graph, progressMonitor){ - $process_47(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor', 1597); -function SelfLoopPostProcessor$lambda$0$Type(){ -} - -defineClass(1598, 1, {}, SelfLoopPostProcessor$lambda$0$Type); -_.apply_0 = function apply_101(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$0$Type', 1598); -function SelfLoopPostProcessor$lambda$1$Type(){ -} - -defineClass(1599, 1, $intern_39, SelfLoopPostProcessor$lambda$1$Type); -_.test_0 = function test_48(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$1$Type', 1599); -function SelfLoopPostProcessor$lambda$2$Type(){ -} - -defineClass(1600, 1, $intern_39, SelfLoopPostProcessor$lambda$2$Type); -_.test_0 = function test_49(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$2$Type', 1600); -function SelfLoopPostProcessor$lambda$3$Type(){ -} - -defineClass(1601, 1, $intern_19, SelfLoopPostProcessor$lambda$3$Type); -_.accept = function accept_81(arg0){ - $processNode_5(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$3$Type', 1601); -function SelfLoopPostProcessor$lambda$4$Type(){ -} - -defineClass(1602, 1, {}, SelfLoopPostProcessor$lambda$4$Type); -_.apply_0 = function apply_102(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$4$Type', 1602); -function SelfLoopPostProcessor$lambda$5$Type(lNode_1){ - this.lNode_1 = lNode_1; -} - -defineClass(1603, 1, $intern_19, SelfLoopPostProcessor$lambda$5$Type); -_.accept = function accept_82(arg0){ - $restoreEdge(this.lNode_1, castTo(arg0, 409)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$5$Type', 1603); -function SelfLoopPostProcessor$lambda$6$Type(){ -} - -defineClass(1604, 1, $intern_39, SelfLoopPostProcessor$lambda$6$Type); -_.test_0 = function test_50(arg0){ - return !!castTo(arg0, 101).slLabels; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$6$Type', 1604); -function SelfLoopPostProcessor$lambda$7$Type(lNode_0){ - this.lNode_0 = lNode_0; -} - -defineClass(1605, 1, $intern_19, SelfLoopPostProcessor$lambda$7$Type); -_.accept = function accept_83(arg0){ - lambda$7_1(this.lNode_0, castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$7$Type', 1605); -function $hidePorts(slHolder){ - var entry, hierarchyMode, lNode, lPort, nestedGraph, orderFixed, outerIter, slPort, slPort$iterator; - lNode = slHolder.lNode; - nestedGraph = lNode.nestedGraph; - orderFixed = $isOrderFixed(castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)); - hierarchyMode = !!nestedGraph && castTo($getProperty(nestedGraph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); - if (orderFixed || hierarchyMode) { - return; - } - for (slPort$iterator = (outerIter = (new AbstractMap$2(slHolder.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { - slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); - if (slPort.hadOnlySelfLoops) { - lPort = slPort.lPort; - $setNode(lPort, null); - slPort.isHidden = true; - slHolder.arePortsHidden = true; - } - } -} - -function $lambda$2_0(lEdge_0){ - $setSource_0(lEdge_0, null); - $setTarget_0(lEdge_0, null); -} - -function $process_48(graph, progressMonitor){ - var lnode, lnode$iterator, slHolder, holder; - $begin(progressMonitor, 'Self-Loop pre-processing', 1); - for (lnode$iterator = new ArrayList$1(graph.layerlessNodes); lnode$iterator.i < lnode$iterator.this$01.array.length;) { - lnode = castTo($next_7(lnode$iterator), 10); - if (needsSelfLoopProcessing(lnode)) { - slHolder = (holder = new SelfLoopHolder(lnode) , $setProperty_0(lnode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER), holder) , $initialize_3(holder) , holder); - $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new SelfLoopPreProcessor$lambda$0$Type), new SelfLoopPreProcessor$lambda$1$Type), new SelfLoopPreProcessor$lambda$2$Type); - $hidePorts(slHolder); - } - } - $done_0(progressMonitor); -} - -function SelfLoopPreProcessor(){ -} - -defineClass(1587, 1, $intern_105, SelfLoopPreProcessor); -_.process = function process_45(graph, progressMonitor){ - $process_48(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor', 1587); -function SelfLoopPreProcessor$lambda$0$Type(){ -} - -defineClass(1588, 1, {}, SelfLoopPreProcessor$lambda$0$Type); -_.apply_0 = function apply_103(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slEdges, 1)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$0$Type', 1588); -function SelfLoopPreProcessor$lambda$1$Type(){ -} - -defineClass(1589, 1, {}, SelfLoopPreProcessor$lambda$1$Type); -_.apply_0 = function apply_104(arg0){ - return castTo(arg0, 409).lEdge; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$1$Type', 1589); -function SelfLoopPreProcessor$lambda$2$Type(){ -} - -defineClass(1590, 1, $intern_19, SelfLoopPreProcessor$lambda$2$Type); -_.accept = function accept_84(arg0){ - $lambda$2_0(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$2$Type', 1590); -function $lambda$4(this$static, router_2, slHolder_3){ - $determineLoopRoutes(this$static.routingDirector, slHolder_3); - $placeLabels_1(slHolder_3); - $assignRoutingSlots(this$static.routingSlotAssigner, slHolder_3); - $routeSelfLoops(router_2, slHolder_3); -} - -function $process_49(this$static, graph, progressMonitor){ - var router; - $begin(progressMonitor, 'Self-Loop routing', 1); - router = $routerForGraph(graph); - throwClassCastExceptionUnlessNull($getProperty(graph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); - $forEach_3($map_0($filter($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(graph.layers, 16)), new SelfLoopRouter$lambda$0$Type), new SelfLoopRouter$lambda$1$Type), new SelfLoopRouter$lambda$2$Type), new SelfLoopRouter$lambda$3$Type), new SelfLoopRouter$lambda$4$Type(this$static, router)); - $done_0(progressMonitor); -} - -function $routerForGraph(graph){ - switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218).ordinal) { - case 1: - return new PolylineSelfLoopRouter; - case 3: - return new SplineSelfLoopRouter; - default:return new OrthogonalSelfLoopRouter; - } -} - -function SelfLoopRouter(){ - this.routingDirector = new RoutingDirector; - this.routingSlotAssigner = new RoutingSlotAssigner; -} - -defineClass(1606, 1, $intern_105, SelfLoopRouter); -_.process = function process_46(graph, progressMonitor){ - $process_49(this, castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter', 1606); -function SelfLoopRouter$lambda$0$Type(){ -} - -defineClass(1607, 1, {}, SelfLoopRouter$lambda$0$Type); -_.apply_0 = function apply_105(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$0$Type', 1607); -function SelfLoopRouter$lambda$1$Type(){ -} - -defineClass(1608, 1, $intern_39, SelfLoopRouter$lambda$1$Type); -_.test_0 = function test_51(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$1$Type', 1608); -function SelfLoopRouter$lambda$2$Type(){ -} - -defineClass(1609, 1, $intern_39, SelfLoopRouter$lambda$2$Type); -_.test_0 = function test_52(arg0){ - return $hasProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$2$Type', 1609); -function SelfLoopRouter$lambda$3$Type(){ -} - -defineClass(1610, 1, {}, SelfLoopRouter$lambda$3$Type); -_.apply_0 = function apply_106(arg0){ - return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 403); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$3$Type', 1610); -function SelfLoopRouter$lambda$4$Type($$outer_0, router_2){ - this.$$outer_0 = $$outer_0; - this.router_2 = router_2; -} - -defineClass(1611, 1, $intern_19, SelfLoopRouter$lambda$4$Type); -_.accept = function accept_85(arg0){ - $lambda$4(this.$$outer_0, this.router_2, castTo(arg0, 403)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$4$Type', 1611); -function $process_50(layeredGraph, progressMonitor){ - var addedConstraints, l, l$iterator, reduced; - $begin(progressMonitor, 'Semi-Interactive Crossing Minimization Processor', 1); - addedConstraints = false; - for (l$iterator = new ArrayList$1(layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - reduced = $reduce_0($sorted_1($filter($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(l.nodes, 16)), new SemiInteractiveCrossMinProcessor$lambda$0$Type), new SemiInteractiveCrossMinProcessor$lambda$1$Type), new SemiInteractiveCrossMinProcessor$lambda$2$Type), new SemiInteractiveCrossMinProcessor$lambda$3$Type); - addedConstraints = addedConstraints | reduced.ref != null; - } - addedConstraints && $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES), ($clinit_Boolean() , true)); - $done_0(progressMonitor); -} - -function SemiInteractiveCrossMinProcessor(){ -} - -function lambda$2_7(n1_0, n2_1){ - var origPos1, origPos2; - origPos1 = castTo($getProperty(n1_0, ($clinit_LayeredOptions() , POSITION)), 8); - origPos2 = castTo($getProperty(n2_1, POSITION), 8); - return compare_4(origPos1.y_0, origPos2.y_0); -} - -function lambda$3_4(prev_0, cur_1){ - castTo($getProperty(prev_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).add_2(cur_1); - return cur_1; -} - -defineClass(1612, 1, $intern_105, SemiInteractiveCrossMinProcessor); -_.process = function process_47(layeredGraph, progressMonitor){ - $process_50(castTo(layeredGraph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor', 1612); -function SemiInteractiveCrossMinProcessor$lambda$0$Type(){ -} - -defineClass(1613, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$0$Type); -_.test_0 = function test_53(arg0){ - return castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$0$Type', 1613); -function SemiInteractiveCrossMinProcessor$lambda$1$Type(){ -} - -defineClass(1614, 1, $intern_39, SemiInteractiveCrossMinProcessor$lambda$1$Type); -_.test_0 = function test_54(arg0){ - return $getAllProperties(castTo(arg0, 10)).containsKey(($clinit_LayeredOptions() , POSITION)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$1$Type', 1614); -function SemiInteractiveCrossMinProcessor$lambda$2$Type(){ -} - -defineClass(1615, 1, $intern_88, SemiInteractiveCrossMinProcessor$lambda$2$Type); -_.compare_1 = function compare_51(arg0, arg1){ - return lambda$2_7(castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_127(other){ - return this === other; -} -; -_.reversed = function reversed_43(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$2$Type', 1615); -function SemiInteractiveCrossMinProcessor$lambda$3$Type(){ -} - -defineClass(1616, 1, {}, SemiInteractiveCrossMinProcessor$lambda$3$Type); -_.apply_3 = function apply_107(arg0, arg1){ - return lambda$3_4(castTo(arg0, 10), castTo(arg1, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$3$Type', 1616); -function $process_51(graph, progressMonitor){ - var layer, layer$iterator, layerIndex, node, node$iterator, previousLayer, previousLayerIndex; - $begin(progressMonitor, 'Sort By Input Model ' + $getProperty(graph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 1); - layerIndex = 0; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - previousLayerIndex = layerIndex == 0?0:layerIndex - 1; - previousLayer = castTo($get_11(graph.layers, previousLayerIndex), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(($clinit_PortConstraints() , FIXED_ORDER)) && maskUndefined($getProperty(node, PORT_CONSTRAINTS_0)) !== maskUndefined(FIXED_POS)) { - $clinit_Collections(); - $sort(node.ports, new ModelOrderPortComparator(previousLayer, longEdgeTargetNodePreprocessing(node))); - $log_2(progressMonitor, 'Node ' + node + ' ports: ' + node.ports); - } - } - $clinit_Collections(); - $sort(layer.nodes, new ModelOrderNodeComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 339), castTo($getProperty(graph, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0), 378))); - $log_2(progressMonitor, 'Layer ' + layerIndex + ': ' + layer); - ++layerIndex; - } - $done_0(progressMonitor); -} - -function SortByInputModelProcessor(){ -} - -function getTargetNode(port){ - var edge, node; - node = null; - edge = castTo($get_11(port.outgoingEdges, 0), 17); - do { - node = edge.target.owner; - if ($hasProperty(node, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET))) { - return castTo($getProperty(node, LONG_EDGE_TARGET), 11).owner; - } - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL) && $hasNext_1(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)))) { - edge = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17); - } - else if (node.type_0 != NORMAL) { - return null; - } - } - while (!!node && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)); - return node; -} - -function lambda$1_12(targetNodeModelOrder_0, p_1){ - var edge, previousOrder, targetNode; - targetNode = getTargetNode(p_1); - $setProperty_0(p_1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE), targetNode); - if (targetNode) { - previousOrder = $intern_0; - !!$getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode) && (previousOrder = castTo(getEntryValueOrNull($getEntry_0(targetNodeModelOrder_0.hashCodeMap, targetNode)), 19).value_0); - edge = castTo($get_11(p_1.outgoingEdges, 0), 17); - $booleanValue(castToBoolean($getProperty(edge, REVERSED))) || $put_6(targetNodeModelOrder_0, targetNode, valueOf_4($wnd.Math.min(castTo($getProperty(edge, MODEL_ORDER_0), 19).value_0, previousOrder))); - } -} - -function longEdgeTargetNodePreprocessing(node){ - var targetNodeModelOrder; - targetNodeModelOrder = new HashMap; - if ($hasProperty(node, ($clinit_InternalProperties_1() , TARGET_NODE_MODEL_ORDER))) { - return castTo($getProperty(node, TARGET_NODE_MODEL_ORDER), 83); - } - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(node.ports, 16)), new SortByInputModelProcessor$lambda$0$Type), new SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder)); - $setProperty_0(node, TARGET_NODE_MODEL_ORDER, targetNodeModelOrder); - return targetNodeModelOrder; -} - -defineClass(1618, 1, $intern_105, SortByInputModelProcessor); -_.process = function process_48(graph, progressMonitor){ - $process_51(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor', 1618); -function SortByInputModelProcessor$lambda$0$Type(){ -} - -defineClass(1619, 1, $intern_39, SortByInputModelProcessor$lambda$0$Type); -_.test_0 = function test_55(arg0){ - return castTo(arg0, 11).outgoingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$0$Type', 1619); -function SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder_0){ - this.targetNodeModelOrder_0 = targetNodeModelOrder_0; -} - -defineClass(1620, 1, $intern_19, SortByInputModelProcessor$lambda$1$Type); -_.accept = function accept_86(arg0){ - lambda$1_12(this.targetNodeModelOrder_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$1$Type', 1620); -function $alterGroupedHitboxOrthogonal(g, spacing, fac){ - var delta, master, n, n$iterator, vs; - master = g.master; - !master && (master = castTo(g.cNodes.map_0.keySet_0().iterator_0().next_1(), 57)); - $alterHitbox(master, spacing, fac); - if (g.cNodes.map_0.size_1() == 1) { - return; - } - delta = spacing * fac; - for (n$iterator = g.cNodes.map_0.keySet_0().iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if (n != master) { - vs = getVerticalSegmentOrNull(n); - if (vs.ignoreSpacing.up) { - n.hitbox.y_0 += delta + $intern_94; - n.hitbox.height -= delta + $intern_94; - } - else - vs.ignoreSpacing.down && (n.hitbox.height -= delta + $intern_94); - } - } -} - -function $alterHitbox(n, spacing, fac){ - var delta, vs; - delta = spacing * fac; - if (instanceOf(n.origin_0, 145)) { - vs = getVerticalSegmentOrNull(n); - if (vs.ignoreSpacing.up) { - vs.ignoreSpacing.down || (n.hitbox.height += delta + $intern_94); - } - else { - n.hitbox.y_0 -= delta + $intern_94; - n.hitbox.height += delta + $intern_94; - } - } - else if (instanceOf(n.origin_0, 10)) { - n.hitbox.y_0 -= delta; - n.hitbox.height += 2 * delta; - } -} - -function $lambda$1_0(this$static, n_0){ - var lNode, spacing, vs; - if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return $intern_59; - } - vs = getVerticalSegmentOrNull(n_0); - if (vs) { - return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); - } - lNode = getLNodeOrNull(n_0); - if (lNode) { - spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - return $wnd.Math.max(0, spacing / 2 - 0.5); - } - return $intern_59; -} - -function $lambda$14(schedule_1, n_1){ - var finalSpacing, lNode, spacing; - lNode = getLNodeOrNull(n_1); - spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - finalSpacing = $wnd.Math.max(0, spacing / 2 - 0.5); - $alterHitbox(n_1, finalSpacing, 1); - $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing)); -} - -function $lambda$18(this$static, n_0){ - var lNode, spacing, vs; - if (instanceOf(n_0.origin_0, 10) && castTo(n_0.origin_0, 10).type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return $intern_59; - } - vs = getVerticalSegmentOrNull(n_0); - if (vs) { - return $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); - } - lNode = getLNodeOrNull(n_0); - if (lNode) { - spacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - return $wnd.Math.max(0, spacing / 2 - 0.5); - } - return $intern_59; -} - -function $lambda$20(minSpacing_1, schedule_3, g_2){ - $alterGroupedHitboxOrthogonal(g_2, minSpacing_1, 1); - $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_2, minSpacing_1)); -} - -function $lambda$4_0(minSpacing_1, schedule_3, n_2){ - $alterHitbox(n_2, minSpacing_1, 1); - $add_3(schedule_3, new EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_2, minSpacing_1)); -} - -function $lambda$9(this$static, schedule_1, n_1){ - var spacing; - spacing = $wnd.Math.max(0, this$static.verticalEdgeEdgeSpacing / 2 - 0.5); - $alterHitbox(n_1, spacing, 1); - $add_3(schedule_1, new EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing)); -} - -function EdgeAwareScanlineConstraintCalculation(graph){ - ScanlineConstraintCalculator.call(this); - this.verticalEdgeEdgeSpacing = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - this.edgeRouting = castTo($getProperty(graph, EDGE_ROUTING), 218); -} - -defineClass(1693, 803, {}, EdgeAwareScanlineConstraintCalculation); -_.calculateConstraints = function calculateConstraints_1(theCompactor){ - var schedule, minSpacing, schedule_0, minSpacing_0; - this.compactor = theCompactor; - switch (this.edgeRouting.ordinal) { - case 2: - schedule = new ArrayList; - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$8$Type), new EdgeAwareScanlineConstraintCalculation$lambda$9$Type(this, schedule)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$11$Type); - $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$12$Type); - schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$13$Type), new EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$16$Type); - $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$17$Type); - schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - minSpacing = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$18$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$19$Type); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cGroups, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing, schedule)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$22$Type); - $forEach_1(schedule, new EdgeAwareScanlineConstraintCalculation$lambda$23$Type); - schedule.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - break; - case 3: - schedule_0 = new ArrayList; - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$0$Type); - minSpacing_0 = $orElseGet($min($mapToDouble(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$1$Type(this))), new EdgeAwareScanlineConstraintCalculation$lambda$2$Type); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this.compactor.cGraph.cNodes, 16)), new EdgeAwareScanlineConstraintCalculation$lambda$3$Type), new EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_0, schedule_0)); - $sweep(this, new EdgeAwareScanlineConstraintCalculation$lambda$6$Type); - $forEach_1(schedule_0, new EdgeAwareScanlineConstraintCalculation$lambda$7$Type); - schedule_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - break; - default:throw toJs(new UnsupportedConfigurationException); - } -} -; -_.verticalEdgeEdgeSpacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation', 1693); -function EdgeAwareScanlineConstraintCalculation$lambda$0$Type(){ -} - -defineClass(1694, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$0$Type); -_.apply_1 = function apply_108(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -_.equals_0 = function equals_128(other){ - return this === other; -} -; -_.test_0 = function test_56(input_0){ - return instanceOf(castTo(input_0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$0$Type', 1694); -function EdgeAwareScanlineConstraintCalculation$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1695, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$1$Type); -_.applyAsDouble = function applyAsDouble_1(arg0){ - return $lambda$1_0(this.$$outer_0, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$1$Type', 1695); -function EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing_2){ - this.n_1 = n_1; - this.spacing_2 = spacing_2; -} - -defineClass(1703, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$10$Type); -_.run = function run_1(){ - $alterHitbox(this.n_1, this.spacing_2, -1); -} -; -_.spacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$10$Type', 1703); -function EdgeAwareScanlineConstraintCalculation$lambda$11$Type(){ -} - -defineClass(1705, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$11$Type); -_.apply_1 = function apply_109(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -_.equals_0 = function equals_129(other){ - return this === other; -} -; -_.test_0 = function test_57(input_0){ - return instanceOf(castTo(input_0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$11$Type', 1705); -function EdgeAwareScanlineConstraintCalculation$lambda$12$Type(){ -} - -defineClass(1706, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$12$Type); -_.accept = function accept_87(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$12$Type', 1706); -function EdgeAwareScanlineConstraintCalculation$lambda$13$Type(){ -} - -defineClass(1707, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$13$Type); -_.test_0 = function test_58(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$13$Type', 1707); -function EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule_1){ - this.schedule_1 = schedule_1; -} - -defineClass(1709, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$14$Type); -_.accept = function accept_88(arg0){ - $lambda$14(this.schedule_1, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$14$Type', 1709); -function EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing_2){ - this.n_1 = n_1; - this.finalSpacing_2 = finalSpacing_2; -} - -defineClass(1708, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$15$Type); -_.run = function run_2(){ - $alterHitbox(this.n_1, this.finalSpacing_2, -1); -} -; -_.finalSpacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$15$Type', 1708); -function EdgeAwareScanlineConstraintCalculation$lambda$16$Type(){ -} - -defineClass(1710, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$16$Type); -_.apply_1 = function apply_110(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -_.equals_0 = function equals_130(other){ - return this === other; -} -; -_.test_0 = function test_59(input_0){ - return instanceOf(castTo(input_0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$16$Type', 1710); -function EdgeAwareScanlineConstraintCalculation$lambda$17$Type(){ -} - -defineClass(1711, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$17$Type); -_.accept = function accept_89(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$17$Type', 1711); -function EdgeAwareScanlineConstraintCalculation$lambda$18$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1712, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$18$Type); -_.applyAsDouble = function applyAsDouble_2(arg0){ - return $lambda$18(this.$$outer_0, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$18$Type', 1712); -function EdgeAwareScanlineConstraintCalculation$lambda$19$Type(){ -} - -defineClass(1713, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$19$Type); -_.getAsDouble = function getAsDouble(){ - return 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$19$Type', 1713); -function EdgeAwareScanlineConstraintCalculation$lambda$2$Type(){ -} - -defineClass(1696, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$2$Type); -_.getAsDouble = function getAsDouble_0(){ - return 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$2$Type', 1696); -function EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing_1, schedule_3){ - this.minSpacing_1 = minSpacing_1; - this.schedule_3 = schedule_3; -} - -defineClass(1715, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$20$Type); -_.accept = function accept_90(arg0){ - $lambda$20(this.minSpacing_1, this.schedule_3, castTo(arg0, 307)); -} -; -_.minSpacing_1 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$20$Type', 1715); -function EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_1, minSpacing_2){ - this.g_1 = g_1; - this.minSpacing_2 = minSpacing_2; -} - -defineClass(1714, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$21$Type); -_.run = function run_3(){ - $alterGroupedHitboxOrthogonal(this.g_1, this.minSpacing_2, -1); -} -; -_.minSpacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$21$Type', 1714); -function EdgeAwareScanlineConstraintCalculation$lambda$22$Type(){ -} - -defineClass(1716, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$22$Type); -_.apply_1 = function apply_111(arg0){ - return castTo(arg0, 57) , true; -} -; -_.equals_0 = function equals_131(other){ - return this === other; -} -; -_.test_0 = function test_60(input_0){ - return castTo(input_0, 57) , true; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$22$Type', 1716); -function EdgeAwareScanlineConstraintCalculation$lambda$23$Type(){ -} - -defineClass(1717, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$23$Type); -_.accept = function accept_91(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$23$Type', 1717); -function EdgeAwareScanlineConstraintCalculation$lambda$3$Type(){ -} - -defineClass(1697, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$3$Type); -_.test_0 = function test_61(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$3$Type', 1697); -function EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_1, schedule_3){ - this.minSpacing_1 = minSpacing_1; - this.schedule_3 = schedule_3; -} - -defineClass(1699, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$4$Type); -_.accept = function accept_92(arg0){ - $lambda$4_0(this.minSpacing_1, this.schedule_3, castTo(arg0, 57)); -} -; -_.minSpacing_1 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$4$Type', 1699); -function EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_1, minSpacing_2){ - this.n_1 = n_1; - this.minSpacing_2 = minSpacing_2; -} - -defineClass(1698, 1, $intern_40, EdgeAwareScanlineConstraintCalculation$lambda$5$Type); -_.run = function run_4(){ - $alterHitbox(this.n_1, this.minSpacing_2, -1); -} -; -_.minSpacing_2 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$5$Type', 1698); -function EdgeAwareScanlineConstraintCalculation$lambda$6$Type(){ -} - -defineClass(1700, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$6$Type); -_.apply_1 = function apply_112(arg0){ - return castTo(arg0, 57) , true; -} -; -_.equals_0 = function equals_132(other){ - return this === other; -} -; -_.test_0 = function test_62(input_0){ - return castTo(input_0, 57) , true; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$6$Type', 1700); -function EdgeAwareScanlineConstraintCalculation$lambda$7$Type(){ -} - -defineClass(1701, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$7$Type); -_.accept = function accept_93(arg0){ - castTo(arg0, 365).run(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$7$Type', 1701); -function EdgeAwareScanlineConstraintCalculation$lambda$8$Type(){ -} - -defineClass(1702, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$8$Type); -_.test_0 = function test_63(arg0){ - return instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$8$Type', 1702); -function EdgeAwareScanlineConstraintCalculation$lambda$9$Type($$outer_0, schedule_1){ - this.$$outer_0 = $$outer_0; - this.schedule_1 = schedule_1; -} - -defineClass(1704, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$9$Type); -_.accept = function accept_94(arg0){ - $lambda$9(this.$$outer_0, this.schedule_1, castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_EdgeAwareScanlineConstraintCalculation$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'EdgeAwareScanlineConstraintCalculation/lambda$9$Type', 1704); -function $clinit_HorizontalGraphCompactor(){ - $clinit_HorizontalGraphCompactor = emptyMethod; - NETWORK_SIMPLEX_COMPACTION = new NetworkSimplexCompaction; -} - -function $process_52(this$static, layeredGraph, progressMonitor){ - var odc, strategy, transformer; - strategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , COMPACTION_POST_COMPACTION_STRATEGY_0)), 275); - if (strategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { - return; - } - $begin(progressMonitor, 'Horizontal Compaction', 1); - this$static.lGraph = layeredGraph; - transformer = new LGraphToCGraphTransformer; - odc = new OneDimensionalCompactor((transformer.layeredGraph = layeredGraph , transformer.edgeRouting = castTo($getProperty(transformer.layeredGraph, EDGE_ROUTING), 218) , $init(transformer) , $transformNodes_0(transformer) , $transformEdges_0(transformer) , transformer.cGraph)); - $setSpacingsHandler(odc, this$static.specialSpacingsHandler); - switch (castTo($getProperty(layeredGraph, COMPACTION_POST_COMPACTION_CONSTRAINTS_0), 422).ordinal) { - case 1: - $setConstraintAlgorithm(odc, new EdgeAwareScanlineConstraintCalculation(this$static.lGraph)); - break; - default:$setConstraintAlgorithm(odc, ($clinit_OneDimensionalCompactor() , QUADRATIC_CONSTRAINTS)); - } - switch (strategy.ordinal) { - case 1: - $compact(odc); - break; - case 2: - $compact($changeDirection(odc, ($clinit_Direction_0() , RIGHT_6))); - break; - case 3: - $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$0$Type)); - break; - case 4: - $compact($setLockFunction($changeDirection($compact(odc), ($clinit_Direction_0() , RIGHT_6)), new HorizontalGraphCompactor$lambda$1$Type(transformer))); - break; - case 5: - $compact($setCompactionAlgorithm(odc, NETWORK_SIMPLEX_COMPACTION)); - } - $changeDirection(odc, ($clinit_Direction_0() , LEFT_6)); - odc.finished = true; - $applyLayout_3(transformer); - $done_0(progressMonitor); -} - -function HorizontalGraphCompactor(){ - $clinit_HorizontalGraphCompactor(); - this.specialSpacingsHandler = new HorizontalGraphCompactor$1(this); -} - -function getLNodeOrNull(cNode){ - $clinit_HorizontalGraphCompactor(); - if (instanceOf(cNode.origin_0, 10)) { - return castTo(cNode.origin_0, 10); - } - return null; -} - -function getVerticalSegmentOrNull(cNode){ - $clinit_HorizontalGraphCompactor(); - if (instanceOf(cNode.origin_0, 145)) { - return castTo(cNode.origin_0, 145); - } - return null; -} - -function isVerticalSegmentsOfSameEdge(cNode1, cNode2){ - $clinit_HorizontalGraphCompactor(); - var v1, v2; - v1 = getVerticalSegmentOrNull(cNode1); - v2 = getVerticalSegmentOrNull(cNode2); - return !!v1 && !!v2 && !disjoint(v1.representedLEdges, v2.representedLEdges); -} - -function lambda$1_13(transformer_0, node_1, dir_2){ - $clinit_HorizontalGraphCompactor(); - return $get_18(castTo($get_10(transformer_0.lockMap, node_1), 522), dir_2); -} - -defineClass(1521, 1, $intern_105, HorizontalGraphCompactor); -_.process = function process_49(layeredGraph, progressMonitor){ - $process_52(this, castTo(layeredGraph, 37), progressMonitor); -} -; -var NETWORK_SIMPLEX_COMPACTION; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor', 1521); -function HorizontalGraphCompactor$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1522, 1, {}, HorizontalGraphCompactor$1); -_.getHorizontalSpacing = function getHorizontalSpacing_2(cNode1, cNode2){ - var node1, node2, spacings; - if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { - return 0; - } - node1 = getLNodeOrNull(cNode1); - node2 = getLNodeOrNull(cNode2); - if (!!node1 && node1.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) || !!node2 && node2.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return 0; - } - spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - return $getHorizontalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); -} -; -_.getVerticalSpacing = function getVerticalSpacing_2(cNode1, cNode2){ - var node1, node2, spacings; - if (isVerticalSegmentsOfSameEdge(cNode1, cNode2)) { - return 1; - } - node1 = getLNodeOrNull(cNode1); - node2 = getLNodeOrNull(cNode2); - spacings = castTo($getProperty(this.this$01.lGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - return $getVerticalSpacing(spacings, node1?node1.type_0:($clinit_LNode$NodeType() , LONG_EDGE), node2?node2.type_0:($clinit_LNode$NodeType() , LONG_EDGE)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/1', 1522); -function HorizontalGraphCompactor$lambda$0$Type(){ -} - -defineClass(1523, 1, {}, HorizontalGraphCompactor$lambda$0$Type); -_.isLocked = function isLocked(arg0, arg1){ - return $clinit_HorizontalGraphCompactor() , arg0.cGroup.outDegreeReal == 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$0$Type', 1523); -function HorizontalGraphCompactor$lambda$1$Type(transformer_0){ - this.transformer_0 = transformer_0; -} - -defineClass(1524, 1, {}, HorizontalGraphCompactor$lambda$1$Type); -_.isLocked = function isLocked_0(arg0, arg1){ - return lambda$1_13(this.transformer_0, arg0, arg1); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_HorizontalGraphCompactor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'HorizontalGraphCompactor/lambda$1$Type', 1524); -function $clinit_LGraphToCGraphTransformer(){ - $clinit_LGraphToCGraphTransformer = emptyMethod; - NODE_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$0$Type; - VS_TO_STRING_DELEGATE = new LGraphToCGraphTransformer$lambda$1$Type; -} - -function $adjustControlPointBetweenSegments(this$static, left, right, leftIdx, rightIdx, spline){ - var adjust, chunk, chunks, endX, idx1, idx2, k, n, newPos, startX, strip, width_0; - idx1 = leftIdx; - if (left.initialSegment && left.isStraight) { - n = castTo($get_10(this$static.nodesMap, left.sourceNode), 57); - startX = n.hitbox.x_0 + n.hitbox.width_0; - --idx1; - } - else { - startX = left.boundingBox.x_0 + left.boundingBox.width_0; - } - idx2 = rightIdx; - if (right.lastSegment && right.isStraight) { - n = castTo($get_10(this$static.nodesMap, right.targetNode), 57); - endX = n.hitbox.x_0; - ++idx2; - } - else { - endX = right.boundingBox.x_0; - } - strip = endX - startX; - chunks = $wnd.Math.max(2, idx2 - idx1); - chunk = strip / chunks; - newPos = startX + chunk; - for (k = idx1; k < idx2; ++k) { - adjust = castTo(spline.get_0(k), 128); - width_0 = adjust.boundingBox.width_0; - adjust.boundingBox.x_0 = newPos - width_0 / 2; - newPos += chunk; - } -} - -function $adjustSplineControlPoints(this$static, spline){ - var i, j, lastSeg, needle, nextSeg; - if (spline.isEmpty()) { - return; - } - lastSeg = castTo(spline.get_0(0), 128); - if (spline.size_1() == 1) { - $adjustControlPointBetweenSegments(this$static, lastSeg, lastSeg, 1, 0, spline); - return; - } - i = 1; - while (i < spline.size_1()) { - if (lastSeg.initialSegment || !lastSeg.isStraight) { - needle = $firstNonStraightSegment(spline, i); - if (needle) { - j = castTo(needle.first, 19).value_0; - nextSeg = castTo(needle.second, 128); - $adjustControlPointBetweenSegments(this$static, lastSeg, nextSeg, i, j, spline); - i = j + 1; - lastSeg = nextSeg; - } - } - } -} - -function $applyCommentPositions(this$static){ - var comment, e, e$iterator, offset, other; - for (e$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this$static.commentOffsets)).this$01); e$iterator.hasNext;) { - e = $next_4(e$iterator); - comment = castTo(e.getKey(), 10); - other = castTo(castTo(e.getValue(), 46).first, 10); - offset = castTo(castTo(e.getValue(), 46).second, 8); - $add_19($reset_5(comment.pos), $add_19($clone_0(other.pos), offset)); - } -} - -function $applyExternalPortPositions(this$static, topLeft, bottomRight){ - var cNode, cNode$iterator, lNode; - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - lNode = getLNodeOrNull(cNode); - if (lNode) { - if (lNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - switch (castTo($getProperty(lNode, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).ordinal) { - case 4: - lNode.pos.x_0 = topLeft.x_0; - break; - case 2: - lNode.pos.x_0 = bottomRight.x_0 - (lNode.size_0.x_0 + lNode.margin.right); - break; - case 1: - lNode.pos.y_0 = topLeft.y_0; - break; - case 3: - lNode.pos.y_0 = bottomRight.y_0 - (lNode.size_0.y_0 + lNode.margin.bottom); - } - } - } - } -} - -function $applyLayout_3(this$static){ - var bottomRight, cNode, cNode$iterator, topLeft; - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$10$Type), new LGraphToCGraphTransformer$lambda$11$Type); - $applyCommentPositions(this$static); - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.cGraph.cNodes, 16)), new LGraphToCGraphTransformer$lambda$12$Type), new LGraphToCGraphTransformer$lambda$13$Type); - if (this$static.edgeRouting == ($clinit_EdgeRouting() , SPLINES)) { - $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.nodesMap), 1)), new LGraphToCGraphTransformer$lambda$17$Type), new LGraphToCGraphTransformer$lambda$18$Type), new LGraphToCGraphTransformer$lambda$19$Type(this$static)); - $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$20$Type), new LGraphToCGraphTransformer$lambda$21$Type), new LGraphToCGraphTransformer$lambda$22$Type), new LGraphToCGraphTransformer$lambda$23$Type), new LGraphToCGraphTransformer$lambda$24$Type(this$static)); - } - topLeft = new KVector_1($intern_59, $intern_59); - bottomRight = new KVector_1($intern_60, $intern_60); - for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - topLeft.x_0 = $wnd.Math.min(topLeft.x_0, cNode.hitbox.x_0); - topLeft.y_0 = $wnd.Math.min(topLeft.y_0, cNode.hitbox.y_0); - bottomRight.x_0 = $wnd.Math.max(bottomRight.x_0, cNode.hitbox.x_0 + cNode.hitbox.width_0); - bottomRight.y_0 = $wnd.Math.max(bottomRight.y_0, cNode.hitbox.y_0 + cNode.hitbox.height); - } - $add_19($reset_5(this$static.layeredGraph.offset), $negate(new KVector_1(topLeft.x_0, topLeft.y_0))); - $add_19($reset_5(this$static.layeredGraph.size_0), $sub_0(new KVector_1(bottomRight.x_0, bottomRight.y_0), topLeft)); - $applyExternalPortPositions(this$static, topLeft, bottomRight); - $reset(this$static.nodesMap); - $reset(this$static.commentOffsets); - $reset(this$static.verticalSegmentsMap); - $reset(this$static.lockMap); - this$static.cGraph.cGroups.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.cGraph = null; - this$static.layeredGraph = null; -} - -function $collectVerticalSegmentsOrthogonal(this$static){ - var bend1, bend2, bends, cNode, cTargetNode, edge, edge$iterator, edge$iterator0, first, lastSegment, layer, layer$iterator, node, node$iterator, verticalSegments, vs; - verticalSegments = new ArrayList; - for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - cNode = castTo($get_10(this$static.nodesMap, node), 57); - for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { - edge = castTo($next_0(edge$iterator0), 17); - bends = $listIterator_2(edge.bendPoints, 0); - first = true; - lastSegment = null; - if (bends.currentNode != bends.this$01.tail) { - bend1 = castTo($next_10(bends), 8); - bend2 = null; - if (edge.source.side == ($clinit_PortSide() , NORTH_3)) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); - vs.ignoreSpacing.down = true; - vs.aPort = edge.source; - verticalSegments.array[verticalSegments.array.length] = vs; - } - if (edge.source.side == SOUTH_2) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); - vs.ignoreSpacing.up = true; - vs.aPort = edge.source; - verticalSegments.array[verticalSegments.array.length] = vs; - } - while (bends.currentNode != bends.this$01.tail) { - bend2 = castTo($next_10(bends), 8); - if (!eq_0(bend1.y_0, bend2.y_0)) { - lastSegment = new VerticalSegment(bend1, bend2, null, edge); - verticalSegments.array[verticalSegments.array.length] = lastSegment; - if (first) { - first = false; - if (bend2.y_0 < cNode.hitbox.y_0) { - lastSegment.ignoreSpacing.down = true; - } - else if (bend2.y_0 > cNode.hitbox.y_0 + cNode.hitbox.height) { - lastSegment.ignoreSpacing.up = true; - } - else { - lastSegment.ignoreSpacing.up = true; - lastSegment.ignoreSpacing.down = true; - } - } - } - bends.currentNode != bends.this$01.tail && (bend1 = bend2); - } - if (lastSegment) { - cTargetNode = castTo($get_10(this$static.nodesMap, edge.target.owner), 57); - if (bend1.y_0 < cTargetNode.hitbox.y_0) { - lastSegment.ignoreSpacing.down = true; - } - else if (bend1.y_0 > cTargetNode.hitbox.y_0 + cTargetNode.hitbox.height) { - lastSegment.ignoreSpacing.up = true; - } - else { - lastSegment.ignoreSpacing.up = true; - lastSegment.ignoreSpacing.down = true; - } - } - } - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.bendPoints.size_0 != 0) { - bend1 = castTo($getLast(edge.bendPoints), 8); - if (edge.target.side == ($clinit_PortSide() , NORTH_3)) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0), cNode, edge); - vs.ignoreSpacing.down = true; - vs.aPort = edge.target; - verticalSegments.array[verticalSegments.array.length] = vs; - } - if (edge.target.side == SOUTH_2) { - vs = new VerticalSegment(bend1, new KVector_1(bend1.x_0, cNode.hitbox.y_0 + cNode.hitbox.height), cNode, edge); - vs.ignoreSpacing.up = true; - vs.aPort = edge.target; - verticalSegments.array[verticalSegments.array.length] = vs; - } - } - } - } - } - return verticalSegments; -} - -function $firstNonStraightSegment(spline, index_0){ - var i, seg; - if (index_0 < 0 || index_0 >= spline.size_1()) { - return null; - } - for (i = index_0; i < spline.size_1(); ++i) { - seg = castTo(spline.get_0(i), 128); - if (i == spline.size_1() - 1 || !seg.isStraight) { - return new Pair(valueOf_4(i), seg); - } - } - return null; -} - -function $init(this$static){ - var hasEdges, index_0, l, l$iterator, n, n$iterator, supportedDirections; - hasEdges = false; - index_0 = 0; - for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - l.id_0 = index_0++; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - !hasEdges && !isEmpty_13($getConnectedEdges_0(n)) && (hasEdges = true); - } - } - supportedDirections = of_2(($clinit_Direction_0() , UNDEFINED_2), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [LEFT_6, RIGHT_6])); - if (!hasEdges) { - $add_5(supportedDirections, UP_1); - $add_5(supportedDirections, DOWN_1); - } - this$static.cGraph = new CGraph(supportedDirections); - $reset(this$static.nodesMap); - $reset(this$static.commentOffsets); - $reset(this$static.lockMap); - $reset(this$static.verticalSegmentsMap); -} - -function $lambda$19(this$static, sl_0){ - var cNode, deltaX, lNode; - lNode = sl_0.source.owner; - cNode = castTo($get_10(this$static.nodesMap, lNode), 57); - deltaX = cNode.hitbox.x_0 - cNode.hitboxPreCompaction.x_0; - $offset_1(sl_0.bendPoints, deltaX, 0); -} - -function $lambda$2_1(this$static, vs_0){ - var vsNode; - vsNode = castTo($get_10(this$static.verticalSegmentsMap, vs_0), 57); - $forEach_1(vs_0.constraints, new LGraphToCGraphTransformer$lambda$3$Type(this$static, vsNode)); -} - -function $lambda$3(this$static, vsNode_1, other_1){ - var otherNode; - otherNode = castTo($get_10(this$static.verticalSegmentsMap, other_1), 57); - $add_3(this$static.cGraph.predefinedHorizontalConstraints, new Pair(vsNode_1, otherNode)); -} - -function $lambda$9_0(this$static, cNode_1, other_1){ - return $put_6(this$static.verticalSegmentsMap, other_1, cNode_1); -} - -function $mergeVerticalSegments(this$static, verticalSegments){ - var next, survivor, vsIt, newX, newY, maxX, newW, maxY, newH; - if (verticalSegments.array.length == 0) { - return; - } - $clinit_Collections(); - sort_4(verticalSegments.array, verticalSegments.array.length, null); - vsIt = new ArrayList$1(verticalSegments); - survivor = castTo($next_7(vsIt), 145); - while (vsIt.i < vsIt.this$01.array.length) { - next = castTo($next_7(vsIt), 145); - if (eq_0(survivor.hitbox.x_0, next.hitbox.x_0) && !(lt_0($getBottomLeft(survivor.hitbox).y_0, next.hitbox.y_0) || lt_0($getBottomLeft(next.hitbox).y_0, survivor.hitbox.y_0))) { - survivor = ($addAll_2(survivor.representedLEdges, next.representedLEdges) , $addAll_2(survivor.affectedBends, next.affectedBends) , $addAll_2(survivor.affectedBoundingBoxes, next.affectedBoundingBoxes) , $addAll(survivor.junctionPoints, next.junctionPoints) , $addAll_2(survivor.constraints, next.constraints) , $addAll_2(survivor.potentialGroupParents, next.potentialGroupParents) , newX = $wnd.Math.min(survivor.hitbox.x_0, next.hitbox.x_0) , newY = $wnd.Math.min(survivor.hitbox.y_0, next.hitbox.y_0) , maxX = $wnd.Math.max(survivor.hitbox.x_0 + survivor.hitbox.width_0, next.hitbox.x_0 + next.hitbox.width_0) , newW = maxX - newX , maxY = $wnd.Math.max(survivor.hitbox.y_0 + survivor.hitbox.height, next.hitbox.y_0 + next.hitbox.height) , newH = maxY - newY , $setRect(survivor.hitbox, newX, newY, newW, newH) , $applyOr(survivor.ignoreSpacing, next.ignoreSpacing) , !survivor.aPort && (survivor.aPort = next.aPort) , $addAll_2(survivor.joined, next.joined) , $add_3(survivor.joined, next) , survivor); - } - else { - $verticalSegmentToCNode(this$static, survivor); - survivor = next; - } - } - $verticalSegmentToCNode(this$static, survivor); -} - -function $transformEdges_0(this$static){ - var style, verticalSegments, verticalSegments_0; - style = castTo($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); - switch (style.ordinal) { - case 2: - verticalSegments = $collectVerticalSegmentsOrthogonal(this$static); - break; - case 3: - verticalSegments = (verticalSegments_0 = new ArrayList , $forEach_3($filter($map_0($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.layeredGraph.layers, 16)), new LGraphToCGraphTransformer$lambda$4$Type), new LGraphToCGraphTransformer$lambda$5$Type), new LGraphToCGraphTransformer$lambda$6$Type), new LGraphToCGraphTransformer$0methodref$nonNull$Type), new LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0)) , verticalSegments_0); - break; - default:throw toJs(new IllegalStateException_0('Compaction not supported for ' + style + ' edges.')); - } - $mergeVerticalSegments(this$static, verticalSegments); - $forEach_0(new AbstractMap$1(this$static.verticalSegmentsMap), new LGraphToCGraphTransformer$lambda$2$Type(this$static)); -} - -function $transformNodes_0(this$static){ - var cNode, difference, e, hitbox, layer, layer$iterator, node, node$iterator, nodeLock, other, p; - for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { - if (!isEmpty_13($getConnectedEdges_0(node))) { - e = castTo(get_21($getConnectedEdges_0(node)), 17); - other = e.source.owner; - other == node && (other = e.target.owner); - p = new Pair(other, $sub_0($clone_0(node.pos), other.pos)); - $put_6(this$static.commentOffsets, node, p); - continue; - } - } - hitbox = new ElkRectangle_0(node.pos.x_0 - node.margin.left, node.pos.y_0 - node.margin.top_0, node.size_0.x_0 + node.margin.left + node.margin.right, node.size_0.y_0 + node.margin.top_0 + node.margin.bottom); - cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, node), hitbox), NODE_TO_STRING_DELEGATE), this$static.cGraph); - $create($master($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [cNode])), cNode), this$static.cGraph); - nodeLock = new Quadruplet; - $put_6(this$static.lockMap, cNode, nodeLock); - difference = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))) - size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - difference < 0?$set_3(nodeLock, true, ($clinit_Direction_0() , LEFT_6)):difference > 0 && $set_3(nodeLock, true, ($clinit_Direction_0() , RIGHT_6)); - node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && $set_4(nodeLock); - $put_6(this$static.nodesMap, node, cNode); - } - } -} - -function $verticalSegmentToCNode(this$static, verticalSegment){ - var cNode, difference, e, e$iterator, inc, out, vsLock; - cNode = $create_0($toStringDelegate($hitbox($origin(new CNode$CNodeBuilder, verticalSegment), new ElkRectangle_1(verticalSegment.hitbox)), VS_TO_STRING_DELEGATE), this$static.cGraph); - verticalSegment.potentialGroupParents.array.length == 0 || $addCNode(castTo($get_11(verticalSegment.potentialGroupParents, 0), 57).cGroup, cNode); - vsLock = new Quadruplet; - $put_6(this$static.lockMap, cNode, vsLock); - inc = new HashSet; - out = new HashSet; - for (e$iterator = new ArrayList$1(verticalSegment.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $add_6(inc, e.source); - $add_6(out, e.target); - } - difference = inc.map_0.size_1() - out.map_0.size_1(); - if (difference < 0) { - $set_3(vsLock, true, ($clinit_Direction_0() , LEFT_6)); - $set_3(vsLock, false, RIGHT_6); - } - else if (difference > 0) { - $set_3(vsLock, false, ($clinit_Direction_0() , LEFT_6)); - $set_3(vsLock, true, RIGHT_6); - } - $forEach_1(verticalSegment.joined, new LGraphToCGraphTransformer$lambda$9$Type(this$static, cNode)); - $put_6(this$static.verticalSegmentsMap, verticalSegment, cNode); -} - -function LGraphToCGraphTransformer(){ - $clinit_LGraphToCGraphTransformer(); - this.commentOffsets = new HashMap; - this.nodesMap = new HashMap; - this.verticalSegmentsMap = new HashMap; - this.lockMap = new HashMap; -} - -function lambda$11(cNode_0){ - $clinit_LGraphToCGraphTransformer(); - var lNode; - lNode = castTo(cNode_0.origin_0, 10); - lNode.pos.x_0 = cNode_0.hitbox.x_0 + lNode.margin.left; -} - -function lambda$13(cNode_0){ - $clinit_LGraphToCGraphTransformer(); - var deltaX, vs; - deltaX = cNode_0.hitbox.x_0 - cNode_0.hitboxPreCompaction.x_0; - vs = castTo(cNode_0.origin_0, 145); - $forEach_1(vs.affectedBends, new LGraphToCGraphTransformer$lambda$14$Type(deltaX)); - $forEach_1(vs.affectedBoundingBoxes, new LGraphToCGraphTransformer$lambda$15$Type(deltaX)); - $forEach_0(vs.junctionPoints, new LGraphToCGraphTransformer$lambda$16$Type(deltaX)); -} - -function lambda$14(deltaX_0, b_1){ - $clinit_LGraphToCGraphTransformer(); - return b_1.x_0 += deltaX_0; -} - -function lambda$15(deltaX_0, bb_1){ - $clinit_LGraphToCGraphTransformer(); - return bb_1.x_0 += deltaX_0; -} - -function lambda$16(deltaX_0, jp_1){ - $clinit_LGraphToCGraphTransformer(); - return jp_1.x_0 += deltaX_0; -} - -function lambda$23(chain_0){ - $clinit_LGraphToCGraphTransformer(); - return !!chain_0 && !chain_0.isEmpty(); -} - -function lambda$8_0(verticalSegments_0, spline_1){ - $clinit_LGraphToCGraphTransformer(); - var lastVs, leftTop, rightBottom, s, s$iterator, vs; - lastVs = null; - for (s$iterator = spline_1.iterator_0(); s$iterator.hasNext_0();) { - s = castTo(s$iterator.next_1(), 128); - if (s.isStraight) { - continue; - } - leftTop = $getTopLeft(s.boundingBox); - rightBottom = $getBottomRight(s.boundingBox); - vs = new VerticalSegment(leftTop, rightBottom, null, castTo(s.edges.map_0.keySet_0().iterator_0().next_1(), 17)); - $add_3(vs.affectedBoundingBoxes, s.boundingBox); - verticalSegments_0.array[verticalSegments_0.array.length] = vs; - !!lastVs && $add_3(lastVs.constraints, vs); - lastVs = vs; - } -} - -defineClass(1664, 1, {}, LGraphToCGraphTransformer); -var NODE_TO_STRING_DELEGATE, VS_TO_STRING_DELEGATE; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer', 1664); -function LGraphToCGraphTransformer$0methodref$nonNull$Type(){ -} - -defineClass(1672, 1, $intern_39, LGraphToCGraphTransformer$0methodref$nonNull$Type); -_.test_0 = function test_64(arg0){ - return arg0 != null; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$0methodref$nonNull$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/0methodref$nonNull$Type', 1672); -function LGraphToCGraphTransformer$lambda$0$Type(){ -} - -defineClass(1665, 1, {}, LGraphToCGraphTransformer$lambda$0$Type); -_.apply_0 = function apply_113(arg0){ - return $clinit_LGraphToCGraphTransformer() , toString_40($getProperty(castTo(castTo(arg0, 57).origin_0, 10), ($clinit_InternalProperties_1() , ORIGIN_0))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$0$Type', 1665); -function LGraphToCGraphTransformer$lambda$1$Type(){ -} - -defineClass(1666, 1, {}, LGraphToCGraphTransformer$lambda$1$Type); -_.apply_0 = function apply_114(arg0){ - return $clinit_LGraphToCGraphTransformer() , $toString_14(castTo(castTo(arg0, 57).origin_0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$1$Type', 1666); -function LGraphToCGraphTransformer$lambda$10$Type(){ -} - -defineClass(1675, 1, $intern_39, LGraphToCGraphTransformer$lambda$10$Type); -_.test_0 = function test_65(arg0){ - return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 10); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$10$Type', 1675); -function LGraphToCGraphTransformer$lambda$11$Type(){ -} - -defineClass(1676, 1, $intern_19, LGraphToCGraphTransformer$lambda$11$Type); -_.accept = function accept_95(arg0){ - lambda$11(castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$11$Type', 1676); -function LGraphToCGraphTransformer$lambda$12$Type(){ -} - -defineClass(1677, 1, $intern_39, LGraphToCGraphTransformer$lambda$12$Type); -_.test_0 = function test_66(arg0){ - return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 145); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$12$Type', 1677); -function LGraphToCGraphTransformer$lambda$13$Type(){ -} - -defineClass(1681, 1, $intern_19, LGraphToCGraphTransformer$lambda$13$Type); -_.accept = function accept_96(arg0){ - lambda$13(castTo(arg0, 57)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$13$Type', 1681); -function LGraphToCGraphTransformer$lambda$14$Type(deltaX_0){ - this.deltaX_0 = deltaX_0; -} - -defineClass(1678, 1, $intern_19, LGraphToCGraphTransformer$lambda$14$Type); -_.accept = function accept_97(arg0){ - lambda$14(this.deltaX_0, castTo(arg0, 8)); -} -; -_.deltaX_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$14$Type', 1678); -function LGraphToCGraphTransformer$lambda$15$Type(deltaX_0){ - this.deltaX_0 = deltaX_0; -} - -defineClass(1679, 1, $intern_19, LGraphToCGraphTransformer$lambda$15$Type); -_.accept = function accept_98(arg0){ - lambda$15(this.deltaX_0, castTo(arg0, 110)); -} -; -_.deltaX_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$15$Type', 1679); -function LGraphToCGraphTransformer$lambda$16$Type(deltaX_0){ - this.deltaX_0 = deltaX_0; -} - -defineClass(1680, 1, $intern_19, LGraphToCGraphTransformer$lambda$16$Type); -_.accept = function accept_99(arg0){ - lambda$16(this.deltaX_0, castTo(arg0, 8)); -} -; -_.deltaX_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$16$Type', 1680); -function LGraphToCGraphTransformer$lambda$17$Type(){ -} - -defineClass(1682, 1, {}, LGraphToCGraphTransformer$lambda$17$Type); -_.apply_0 = function apply_115(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$17$Type', 1682); -function LGraphToCGraphTransformer$lambda$18$Type(){ -} - -defineClass(1683, 1, $intern_39, LGraphToCGraphTransformer$lambda$18$Type); -_.test_0 = function test_67(arg0){ - return $clinit_LGraphToCGraphTransformer() , $isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$18$Type', 1683); -function LGraphToCGraphTransformer$lambda$19$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1684, 1, $intern_19, LGraphToCGraphTransformer$lambda$19$Type); -_.accept = function accept_100(arg0){ - $lambda$19(this.$$outer_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$19$Type', 1684); -function LGraphToCGraphTransformer$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1668, 1, $intern_19, LGraphToCGraphTransformer$lambda$2$Type); -_.accept = function accept_101(arg0){ - $lambda$2_1(this.$$outer_0, castTo(arg0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$2$Type', 1668); -function LGraphToCGraphTransformer$lambda$20$Type(){ -} - -defineClass(1685, 1, {}, LGraphToCGraphTransformer$lambda$20$Type); -_.apply_0 = function apply_116(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$20$Type', 1685); -function LGraphToCGraphTransformer$lambda$21$Type(){ -} - -defineClass(1686, 1, {}, LGraphToCGraphTransformer$lambda$21$Type); -_.apply_0 = function apply_117(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$21$Type', 1686); -function LGraphToCGraphTransformer$lambda$22$Type(){ -} - -defineClass(1687, 1, {}, LGraphToCGraphTransformer$lambda$22$Type); -_.apply_0 = function apply_118(arg0){ - return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$22$Type', 1687); -function LGraphToCGraphTransformer$lambda$23$Type(){ -} - -defineClass(1688, 1, $intern_39, LGraphToCGraphTransformer$lambda$23$Type); -_.test_0 = function test_68(arg0){ - return lambda$23(castTo(arg0, 15)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$23$Type', 1688); -function LGraphToCGraphTransformer$lambda$24$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1689, 1, $intern_19, LGraphToCGraphTransformer$lambda$24$Type); -_.accept = function accept_102(arg0){ - $adjustSplineControlPoints(this.$$outer_0, castTo(arg0, 15)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$24$Type', 1689); -function LGraphToCGraphTransformer$lambda$3$Type($$outer_0, vsNode_1){ - this.$$outer_0 = $$outer_0; - this.vsNode_1 = vsNode_1; -} - -defineClass(1667, 1, $intern_19, LGraphToCGraphTransformer$lambda$3$Type); -_.accept = function accept_103(arg0){ - $lambda$3(this.$$outer_0, this.vsNode_1, castTo(arg0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$3$Type', 1667); -function LGraphToCGraphTransformer$lambda$4$Type(){ -} - -defineClass(1669, 1, {}, LGraphToCGraphTransformer$lambda$4$Type); -_.apply_0 = function apply_119(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$4$Type', 1669); -function LGraphToCGraphTransformer$lambda$5$Type(){ -} - -defineClass(1670, 1, {}, LGraphToCGraphTransformer$lambda$5$Type); -_.apply_0 = function apply_120(arg0){ - return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$5$Type', 1670); -function LGraphToCGraphTransformer$lambda$6$Type(){ -} - -defineClass(1671, 1, {}, LGraphToCGraphTransformer$lambda$6$Type); -_.apply_0 = function apply_121(arg0){ - return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$6$Type', 1671); -function LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0){ - this.verticalSegments_0 = verticalSegments_0; -} - -defineClass(1673, 1, $intern_19, LGraphToCGraphTransformer$lambda$8$Type); -_.accept = function accept_104(arg0){ - lambda$8_0(this.verticalSegments_0, castTo(arg0, 15)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$8$Type', 1673); -function LGraphToCGraphTransformer$lambda$9$Type($$outer_0, cNode_1){ - this.$$outer_0 = $$outer_0; - this.cNode_1 = cNode_1; -} - -defineClass(1674, 1, $intern_19, LGraphToCGraphTransformer$lambda$9$Type); -_.accept = function accept_105(arg0){ - $lambda$9_0(this.$$outer_0, this.cNode_1, castTo(arg0, 145)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_LGraphToCGraphTransformer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$9$Type', 1674); -function $addArtificialSourceNode(this$static){ - var dummySource, lastArg, n, n$iterator, sources, src_0, src$iterator; - sources = new LinkedList; - for (n$iterator = new ArrayList$1(this$static.networkSimplexGraph.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 121); - n.incomingEdges.list.array.length == 0 && ($addNode_0(sources, n, sources.tail.prev, sources.tail) , true); - } - if (sources.size_0 > 1) { - dummySource = $create_2((lastArg = new NNode$NNodeBuilder , ++this$static.index_0 , lastArg), this$static.networkSimplexGraph); - for (src$iterator = $listIterator_2(sources, 0); src$iterator.currentNode != src$iterator.this$01.tail;) { - src_0 = castTo($next_10(src$iterator), 121); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 0), dummySource), src_0)); - } - } -} - -function $addEdgeConstraints(this$static){ - var cNode, cNode$iterator, cNode$iterator0, e, e$iterator, lEdge, lEdge$iterator, lEdgeMap, lNode, lNodeMap, n, n$iterator, src_0, srcPort, target, tgt, tgtPort, vs; - lNodeMap = new HashMap; - lEdgeMap = new HashMultimap; - for (cNode$iterator0 = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator0), 57); - lNode = getLNodeOrNull(cNode); - if (lNode) { - $put_9(lNodeMap.hashCodeMap, lNode, cNode); - } - else { - vs = getVerticalSegmentOrNull(cNode); - if (vs) { - for (e$iterator = new ArrayList$1(vs.representedLEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $put(lEdgeMap, e, cNode); - } - } - } - } - for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - lNode = getLNodeOrNull(cNode); - if (lNode) { - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - if ($isSelfLoop(lEdge)) { - continue; - } - srcPort = lEdge.source; - tgtPort = lEdge.target; - if (($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(lEdge.source.side) && SIDES_NORTH_SOUTH.contains(lEdge.target.side)) { - continue; - } - target = castTo($get_10(lNodeMap, lEdge.target.owner), 57); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 100), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[target.cGroup.id_0])); - if (srcPort.side == WEST_2 && $apply_15(($clinit_LPort() , OUTPUT_PREDICATE , srcPort))) { - for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if (n.hitbox.x_0 < cNode.hitbox.x_0) { - src_0 = this$static.nNodes[n.cGroup.id_0]; - tgt = this$static.nNodes[cNode.cGroup.id_0]; - if (src_0 == tgt) { - continue; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); - } - } - } - if (tgtPort.side == EAST_2 && $apply_14(($clinit_LPort() , INPUT_PREDICATE , tgtPort))) { - for (n$iterator = castTo($get(lEdgeMap, lEdge), 21).iterator_0(); n$iterator.hasNext_0();) { - n = castTo(n$iterator.next_1(), 57); - if (n.hitbox.x_0 > cNode.hitbox.x_0) { - src_0 = this$static.nNodes[cNode.cGroup.id_0]; - tgt = this$static.nNodes[n.cGroup.id_0]; - if (src_0 == tgt) { - continue; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 1), 100), src_0), tgt)); - } - } - } - } - } - } -} - -function $addSeparationConstraints(this$static){ - var adjust, alterOffset, cNode, cNode$iterator, delta, helper, incNode, incNode$iterator, offsetDelta, port, spacing, weight; - for (cNode$iterator = new ArrayList$1(this$static.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - for (incNode$iterator = cNode.constraints.iterator_0(); incNode$iterator.hasNext_0();) { - incNode = castTo(incNode$iterator.next_1(), 57); - if (cNode.cGroup == incNode.cGroup) { - continue; - } - $isHorizontal(this$static.compactor.direction)?(spacing = this$static.compactor.spacingsHandler.getHorizontalSpacing(cNode, incNode)):(spacing = this$static.compactor.spacingsHandler.getVerticalSpacing(cNode, incNode)); - delta = cNode.cGroupOffset.x_0 + cNode.hitbox.width_0 + spacing - incNode.cGroupOffset.x_0; - delta = $wnd.Math.ceil(delta); - delta = $wnd.Math.max(0, delta); - if (isVerticalSegmentsOfSameEdge(cNode, incNode)) { - helper = $create_2(new NNode$NNodeBuilder, this$static.networkSimplexGraph); - offsetDelta = round_int($wnd.Math.ceil(incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0)); - adjust = offsetDelta - (incNode.cGroupOffset.x_0 - cNode.cGroupOffset.x_0); - port = getVerticalSegmentOrNull(cNode).aPort; - alterOffset = cNode; - if (!port) { - port = getVerticalSegmentOrNull(incNode).aPort; - adjust = -adjust; - alterOffset = incNode; - } - if (port) { - alterOffset.cGroupOffset.x_0 -= adjust; - port.pos.x_0 -= adjust; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, offsetDelta)), 1), helper), this$static.nNodes[cNode.cGroup.id_0])); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, $wnd.Math.max(0, -offsetDelta)), 1), helper), this$static.nNodes[incNode.cGroup.id_0])); - } - else { - weight = 1; - (instanceOf(cNode.origin_0, 145) && instanceOf(incNode.origin_0, 10) || instanceOf(incNode.origin_0, 145) && instanceOf(cNode.origin_0, 10)) && (weight = 2); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int(delta)), weight), this$static.nNodes[cNode.cGroup.id_0]), this$static.nNodes[incNode.cGroup.id_0])); - } - } - } -} - -function NetworkSimplexCompaction(){ -} - -defineClass(1663, 1, {}, NetworkSimplexCompaction); -_.compact = function compact_1(theCompactor){ - var cGroup, cGroup$iterator, cNode, cNode$iterator, nNode; - this.compactor = theCompactor; - this.networkSimplexGraph = new NGraph; - this.nNodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_networksimplex_NNode_2_classLit, $intern_2, 121, this.compactor.cGraph.cGroups.array.length, 0, 1); - this.index_0 = 0; - for (cGroup$iterator = new ArrayList$1(this.compactor.cGraph.cGroups); cGroup$iterator.i < cGroup$iterator.this$01.array.length;) { - cGroup = castTo($next_7(cGroup$iterator), 307); - cGroup.id_0 = this.index_0; - nNode = $create_2($origin_0(new NNode$NNodeBuilder, cGroup), this.networkSimplexGraph); - this.nNodes[this.index_0] = nNode; - ++this.index_0; - } - $addSeparationConstraints(this); - $addEdgeConstraints(this); - $addArtificialSourceNode(this); - $execute_0(forGraph(this.networkSimplexGraph), new BasicProgressMonitor); - for (cNode$iterator = new ArrayList$1(this.compactor.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { - cNode = castTo($next_7(cNode$iterator), 57); - cNode.hitbox.x_0 = this.nNodes[cNode.cGroup.id_0].layer + cNode.cGroupOffset.x_0; - } -} -; -_.index_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_NetworkSimplexCompaction_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'NetworkSimplexCompaction', 1663); -function $compareTo_12(this$static, o){ - var d; - d = fuzzyCompare(this$static.hitbox.x_0, o.hitbox.x_0); - if (d == 0) { - return compare_4(this$static.hitbox.y_0, o.hitbox.y_0); - } - return d; -} - -function $toString_14(this$static){ - var sb; - sb = new StringBuilder; - sb.string += 'VerticalSegment '; - $append_10(sb, this$static.hitbox); - sb.string += ' '; - $append_11(sb, $join(new Joiner, new ArrayList$1(this$static.representedLEdges))); - return sb.string; -} - -function VerticalSegment(bend1, bend2, cNode, lEdge){ - var inJPs, jp, jp$iterator; - this.potentialGroupParents = new ArrayList; - this.representedLEdges = new ArrayList; - this.affectedBends = new ArrayList; - this.affectedBoundingBoxes = new ArrayList; - this.hitbox = new ElkRectangle; - this.junctionPoints = new KVectorChain; - this.ignoreSpacing = new Quadruplet; - this.constraints = new ArrayList; - this.joined = new ArrayList; - $add_3(this.affectedBends, bend1); - $add_3(this.affectedBends, bend2); - this.hitbox.x_0 = $wnd.Math.min(bend1.x_0, bend2.x_0); - this.hitbox.y_0 = $wnd.Math.min(bend1.y_0, bend2.y_0); - this.hitbox.width_0 = $wnd.Math.abs(bend1.x_0 - bend2.x_0); - this.hitbox.height = $wnd.Math.abs(bend1.y_0 - bend2.y_0); - inJPs = castTo($getProperty(lEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (inJPs) { - for (jp$iterator = $listIterator_2(inJPs, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { - jp = castTo($next_10(jp$iterator), 8); - eq_0(jp.x_0, bend1.x_0) && $add_7(this.junctionPoints, jp); - } - } - !!cNode && $add_3(this.potentialGroupParents, cNode); - $add_3(this.representedLEdges, lEdge); -} - -defineClass(145, 1, {35:1, 145:1}, VerticalSegment); -_.compareTo_0 = function compareTo_13(o){ - return $compareTo_12(this, castTo(o, 145)); -} -; -_.toString_0 = function toString_94(){ - return $toString_14(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_compaction_VerticalSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'VerticalSegment', 145); -function $addEasternCrossings(this$static, upperNode, lowerNode){ - this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , EAST_2), this$static.easternAdjacencies); - this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, EAST_2, this$static.easternAdjacencies); - if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { - return; - } - $countCrossingsByMergingAdjacencyLists(this$static); -} - -function $addWesternCrossings(this$static, upperNode, lowerNode){ - this$static.upperAdjacencies = $getAdjacencyFor(this$static, upperNode, ($clinit_PortSide() , WEST_2), this$static.westernAdjacencies); - this$static.lowerAdjacencies = $getAdjacencyFor(this$static, lowerNode, WEST_2, this$static.westernAdjacencies); - if (this$static.upperAdjacencies.currentSize == 0 || this$static.lowerAdjacencies.currentSize == 0) { - return; - } - $countCrossingsByMergingAdjacencyLists(this$static); -} - -function $countBothSideCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - if (upperNode == lowerNode) { - return; - } - $addWesternCrossings(this$static, upperNode, lowerNode); - $addEasternCrossings(this$static, upperNode, lowerNode); -} - -function $countCrossingsByMergingAdjacencyLists(this$static){ - while (this$static.upperAdjacencies.currentSize != 0 && this$static.lowerAdjacencies.currentSize != 0) { - if ($currentAdjacency(this$static.upperAdjacencies).position > $currentAdjacency(this$static.lowerAdjacencies).position) { - this$static.upperLowerCrossings += this$static.upperAdjacencies.currentSize; - $removeFirst_1(this$static.lowerAdjacencies); - } - else if ($currentAdjacency(this$static.lowerAdjacencies).position > $currentAdjacency(this$static.upperAdjacencies).position) { - this$static.lowerUpperCrossings += this$static.lowerAdjacencies.currentSize; - $removeFirst_1(this$static.upperAdjacencies); - } - else { - this$static.upperLowerCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.upperAdjacencies); - this$static.lowerUpperCrossings += $countAdjacenciesBelowNodeOfFirstPort(this$static.lowerAdjacencies); - $removeFirst_1(this$static.upperAdjacencies); - $removeFirst_1(this$static.lowerAdjacencies); - } - } -} - -function $countEasternEdgeCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - if (upperNode == lowerNode) { - return; - } - $addEasternCrossings(this$static, upperNode, lowerNode); -} - -function $countWesternEdgeCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - if (upperNode == lowerNode) { - return; - } - $addWesternCrossings(this$static, upperNode, lowerNode); -} - -function $getAdjacencyFor(this$static, node, side, adjacencies){ - var aL, n, n$array, n$index, n$max; - if (adjacencies.hashCodeMap.size_0 + adjacencies.stringMap.size_0 == 0) { - for (n$array = this$static.currentNodeOrder[this$static.freeLayerIndex] , n$index = 0 , n$max = n$array.length; n$index < n$max; ++n$index) { - n = n$array[n$index]; - $put_6(adjacencies, n, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$static, n, side)); - } - } - aL = castTo(getEntryValueOrNull($getEntry_0(adjacencies.hashCodeMap, node)), 663); - aL.currentIndex = 0; - aL.currentSize = aL.size_0; - aL.currentSize == 0 || $reset_3(castTo($get_11(aL.adjacencyList, aL.currentIndex), 287)); - return aL; -} - -function $setPortPositionsForLayer(this$static, layerIndex, portSide){ - var node, node$array, node$index, node$max, port, port$iterator, portId, ports; - portId = 0; - for (node$array = this$static.currentNodeOrder[layerIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - ports = inNorthSouthEastWestOrder(node, portSide); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $put_6(this$static.portPositions, port, valueOf_4(portId++)); - } - } -} - -function BetweenLayerEdgeTwoNodeCrossingsCounter(currentNodeOrder, freeLayerIndex){ - this.portPositions = new HashMap; - this.easternAdjacencies = new HashMap; - this.westernAdjacencies = new HashMap; - this.currentNodeOrder = currentNodeOrder; - this.freeLayerIndex = freeLayerIndex; - this.freeLayerIndex > 0 && $setPortPositionsForLayer(this, this.freeLayerIndex - 1, ($clinit_PortSide() , EAST_2)); - this.freeLayerIndex < this.currentNodeOrder.length - 1 && $setPortPositionsForLayer(this, this.freeLayerIndex + 1, ($clinit_PortSide() , WEST_2)); -} - -defineClass(827, 1, {}, BetweenLayerEdgeTwoNodeCrossingsCounter); -_.freeLayerIndex = 0; -_.lowerUpperCrossings = 0; -_.upperLowerCrossings = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter', 827); -function $addAdjacencyOf(this$static, edge){ - var adjacentPort, adjacentPortPosition, lastIndex; - adjacentPort = $adjacentPortOf(edge, this$static.side); - adjacentPortPosition = castTo($get_10(this$static.this$01.portPositions, adjacentPort), 19).value_0; - lastIndex = this$static.adjacencyList.array.length - 1; - if (this$static.adjacencyList.array.length != 0 && castTo($get_11(this$static.adjacencyList, lastIndex), 287).position == adjacentPortPosition) { - ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).cardinality; - ++castTo($get_11(this$static.adjacencyList, lastIndex), 287).currentCardinality; - } - else { - $add_3(this$static.adjacencyList, new BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition)); - } -} - -function $adjacentPortOf(e, s){ - return s == ($clinit_PortSide() , WEST_2)?e.source:e.target; -} - -function $countAdjacenciesBelowNodeOfFirstPort(this$static){ - return this$static.currentSize - castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287).currentCardinality; -} - -function $currentAdjacency(this$static){ - return castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); -} - -function $iterateTroughEdgesCollectingAdjacencies(this$static){ - var edge, edge$iterator, edges, port, port$iterator, ports; - ports = inNorthSouthEastWestOrder(this$static.node, this$static.side); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - edges = this$static.side == ($clinit_PortSide() , WEST_2)?port.incomingEdges:port.outgoingEdges; - for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge) && edge.source.owner.layer != edge.target.owner.layer) { - $addAdjacencyOf(this$static, edge); - ++this$static.size_0; - ++this$static.currentSize; - } - } - } -} - -function $removeFirst_1(this$static){ - var currentEntry; - if (this$static.currentSize == 0) { - return; - } - currentEntry = castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287); - currentEntry.currentCardinality == 1?(++this$static.currentIndex , this$static.currentIndex < this$static.adjacencyList.array.length && $reset_3(castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 287))):--currentEntry.currentCardinality; - --this$static.currentSize; -} - -function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList(this$0, node, side){ - this.this$01 = this$0; - this.node = node; - this.side = side; - this.adjacencyList = new ArrayList; - $iterateTroughEdgesCollectingAdjacencies(this); - $clinit_Collections(); - $sort(this.adjacencyList, null); -} - -defineClass(663, 1, {663:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList); -_.toString_0 = function toString_95(){ - return 'AdjacencyList [node=' + this.node + ', adjacencies= ' + this.adjacencyList + ']'; -} -; -_.currentIndex = 0; -_.currentSize = 0; -_.size_0 = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList', 663); -function $compareTo_13(this$static, o){ - return this$static.position < o.position?-1:this$static.position == o.position?0:1; -} - -function $reset_3(this$static){ - this$static.currentCardinality = this$static.cardinality; -} - -function BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency(adjacentPortPosition){ - this.position = adjacentPortPosition; - this.cardinality = 1; - this.currentCardinality = 1; -} - -defineClass(287, 1, {35:1, 287:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency); -_.compareTo_0 = function compareTo_14(o){ - return $compareTo_13(this, castTo(o, 287)); -} -; -_.toString_0 = function toString_96(){ - return 'Adjacency [position=' + this.position + ', cardinality=' + this.cardinality + ', currentCardinality=' + this.currentCardinality + ']'; -} -; -_.cardinality = 0; -_.currentCardinality = 0; -_.position = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency', 287); -function $fillCrossingMatrix(this$static, upperNode, lowerNode){ - if (this$static.oneSided) { - switch (this$static.direction) { - case 1: - $countEasternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); - break; - case 0: - $countWesternEdgeCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); - } - } - else { - $countBothSideCrossings(this$static.inBetweenLayerCrossingCounter, upperNode, lowerNode); - } - this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0] = this$static.inBetweenLayerCrossingCounter.upperLowerCrossings; - this$static.crossingMatrix[lowerNode.id_0][upperNode.id_0] = this$static.inBetweenLayerCrossingCounter.lowerUpperCrossings; -} - -function $getCrossingMatrixEntry(this$static, upperNode, lowerNode){ - if (!this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0]) { - $fillCrossingMatrix(this$static, upperNode, lowerNode); - this$static.isCrossingMatrixFilled[upperNode.id_0][lowerNode.id_0] = true; - this$static.isCrossingMatrixFilled[lowerNode.id_0][upperNode.id_0] = true; - } - return this$static.crossingMatrix[upperNode.id_0][lowerNode.id_0]; -} - -function CrossingMatrixFiller(greedySwitchType, graph, freeLayerIndex, direction){ - var freeLayer; - this.direction = direction; - this.oneSided = greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); - freeLayer = graph[freeLayerIndex]; - this.isCrossingMatrixFilled = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [freeLayer.length, freeLayer.length], 2); - this.crossingMatrix = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [freeLayer.length, freeLayer.length], 2); - this.inBetweenLayerCrossingCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(graph, freeLayerIndex); -} - -defineClass(1929, 1, {}, CrossingMatrixFiller); -_.direction = 0; -_.oneSided = false; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_CrossingMatrixFiller_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'CrossingMatrixFiller', 1929); -function init_0(initializables, order){ - var e, edge, edge$iterator, i, i$iterator, i$iterator0, i$iterator1, i$iterator2, i$iterator3, l, n, p, port, ports; - for (l = 0; l < order.length; l++) { - for (i$iterator0 = initializables.iterator_0(); i$iterator0.hasNext_0();) { - i = castTo(i$iterator0.next_1(), 225); - i.initAtLayerLevel(l, order); - } - for (n = 0; n < order[l].length; n++) { - for (i$iterator1 = initializables.iterator_0(); i$iterator1.hasNext_0();) { - i = castTo(i$iterator1.next_1(), 225); - i.initAtNodeLevel(l, n, order); - } - ports = order[l][n].ports; - for (p = 0; p < ports.array.length; p++) { - for (i$iterator2 = initializables.iterator_0(); i$iterator2.hasNext_0();) { - i = castTo(i$iterator2.next_1(), 225); - i.initAtPortLevel(l, n, p, order); - } - port = (checkCriticalElementIndex(p, ports.array.length) , castTo(ports.array[p], 11)); - e = 0; - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - for (i$iterator3 = initializables.iterator_0(); i$iterator3.hasNext_0();) { - i = castTo(i$iterator3.next_1(), 225); - i.initAtEdgeLevel(l, n, p, e++, edge, order); - } - } - } - } - } - for (i$iterator = initializables.iterator_0(); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 225); - i.initAfterTraversal(); - } -} - -var Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit = createForInterface('org.eclipse.elk.alg.layered.p3order.counting', 'IInitializable'); -function $continueSwitchingUntilNoImprovementInLayer(this$static, freeLayerIndex){ - var continueSwitching, improved; - improved = false; - do { - continueSwitching = $sweepDownwardInLayer(this$static, freeLayerIndex); - improved = improved | continueSwitching; - } - while (continueSwitching); - return improved; -} - -function $setUp(this$static, order, freeLayerIndex, forwardSweep){ - var crossingMatrixFiller, side; - this$static.currentNodeOrder = order; - side = forwardSweep?0:1; - this$static.switchDecider = (crossingMatrixFiller = new CrossingMatrixFiller(this$static.greedySwitchType, this$static.currentNodeOrder, freeLayerIndex, side) , new SwitchDecider(freeLayerIndex, this$static.currentNodeOrder, crossingMatrixFiller, this$static.portPositions, this$static.graphData, this$static.greedySwitchType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0))); -} - -function $startIndex(isForwardSweep, length_0){ - return isForwardSweep?0:length_0 - 1; -} - -function $sweepDownwardInLayer(this$static, layerIndex){ - var continueSwitching, lengthOfFreeLayer, lowerNodeIndex, upperNodeIndex; - continueSwitching = false; - lengthOfFreeLayer = this$static.currentNodeOrder[layerIndex].length; - for (upperNodeIndex = 0; upperNodeIndex < lengthOfFreeLayer - 1; upperNodeIndex++) { - lowerNodeIndex = upperNodeIndex + 1; - continueSwitching = continueSwitching | $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex); - } - return continueSwitching; -} - -function $switchIfImproves(this$static, layerIndex, upperNodeIndex, lowerNodeIndex){ - var continueSwitching, layer, temp; - continueSwitching = false; - if ($doesSwitchReduceCrossings(this$static.switchDecider, upperNodeIndex, lowerNodeIndex)) { - $notifyOfSwitch(this$static.switchDecider, this$static.currentNodeOrder[layerIndex][upperNodeIndex], this$static.currentNodeOrder[layerIndex][lowerNodeIndex]); - layer = this$static.currentNodeOrder[layerIndex]; - temp = layer[lowerNodeIndex]; - layer[lowerNodeIndex] = layer[upperNodeIndex]; - layer[upperNodeIndex] = temp; - continueSwitching = true; - } - return continueSwitching; -} - -function GreedySwitchHeuristic(greedyType, graphData){ - this.graphData = graphData; - this.greedySwitchType = greedyType; -} - -defineClass(1804, 1, $intern_111, GreedySwitchHeuristic); -_.initAtEdgeLevel = function initAtEdgeLevel(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtNodeLevel = function initAtNodeLevel(l, n, nodeOrder){ -} -; -_.alwaysImproves = function alwaysImproves(){ - return this.greedySwitchType != ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , ONE_SIDED_GREEDY_SWITCH_0); -} -; -_.initAfterTraversal = function initAfterTraversal(){ - this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); -} -; -_.initAtLayerLevel = function initAtLayerLevel(l, nodeOrder){ - nodeOrder[l][0].layer.id_0 = l; -} -; -_.initAtPortLevel = function initAtPortLevel(l, n, p, nodeOrder){ - ++this.nPorts; -} -; -_.isDeterministic = function isDeterministic(){ - return true; -} -; -_.minimizeCrossings = function minimizeCrossings(order, freeLayerIndex, forwardSweep, isFirstSweep){ - $setUp(this, order, freeLayerIndex, forwardSweep); - return $continueSwitchingUntilNoImprovementInLayer(this, freeLayerIndex); -} -; -_.setFirstLayerOrder = function setFirstLayerOrder(currentOrder, isForwardSweep){ - var startIndex; - startIndex = $startIndex(isForwardSweep, currentOrder.length); - $setUp(this, currentOrder, startIndex, isForwardSweep); - return $sweepDownwardInLayer(this, startIndex); -} -; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_GreedySwitchHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'GreedySwitchHeuristic', 1804); -function $countCrossings(this$static, upperNode, lowerNode){ - this$static.upperLowerCrossings = 0; - this$static.lowerUpperCrossings = 0; - upperNode.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode.type_0 == NORTH_SOUTH_PORT && castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 10) == castTo($getProperty(lowerNode, ORIGIN_0), 10) && ($originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?$countCrossingsOfTwoNorthSouthDummies(this$static, upperNode, lowerNode):$countCrossingsOfTwoNorthSouthDummies(this$static, lowerNode, upperNode)); - upperNode.type_0 == NORTH_SOUTH_PORT && lowerNode.type_0 == LONG_EDGE?$originPortOf(upperNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.upperLowerCrossings = 1):(this$static.lowerUpperCrossings = 1):lowerNode.type_0 == NORTH_SOUTH_PORT && upperNode.type_0 == LONG_EDGE && ($originPortOf(lowerNode).side == ($clinit_PortSide() , NORTH_3)?(this$static.lowerUpperCrossings = 1):(this$static.upperLowerCrossings = 1)); - $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode); -} - -function $countCrossingsOfTwoNorthSouthDummies(this$static, furtherFromNormalNode, closerToNormalNode){ - var closerEastPorts, closerWestPorts, furtherEastPorts, furtherWestPorts; - if ($originPortPositionOf(this$static, furtherFromNormalNode) > $originPortPositionOf(this$static, closerToNormalNode)) { - closerEastPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , EAST_2)); - this$static.upperLowerCrossings = closerEastPorts.isEmpty()?0:$getDegree(castTo(closerEastPorts.get_0(0), 11)); - furtherWestPorts = $getPortSideView(furtherFromNormalNode, WEST_2); - this$static.lowerUpperCrossings = furtherWestPorts.isEmpty()?0:$getDegree(castTo(furtherWestPorts.get_0(0), 11)); - } - else { - closerWestPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , WEST_2)); - this$static.upperLowerCrossings = closerWestPorts.isEmpty()?0:$getDegree(castTo(closerWestPorts.get_0(0), 11)); - furtherEastPorts = $getPortSideView(furtherFromNormalNode, EAST_2); - this$static.lowerUpperCrossings = furtherEastPorts.isEmpty()?0:$getDegree(castTo(furtherEastPorts.get_0(0), 11)); - } -} - -function $initializePortPositions(this$static){ - var node, node$array, node$index, node$max; - for (node$array = this$static.layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $setPortIdsOn(this$static, node, ($clinit_PortSide() , SOUTH_2)); - $setPortIdsOn(this$static, node, NORTH_3); - } -} - -function $numberOfNorthSouthEdges(node, side){ - var numberOfEdges, port, port$iterator; - numberOfEdges = 0; - for (port$iterator = $getPortSideView(node, side).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - numberOfEdges += $getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null?1:0; - } - return numberOfEdges; -} - -function $originPortOf(node){ - var origin_0, port; - port = castTo($get_11(node.ports, 0), 11); - origin_0 = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - return origin_0; -} - -function $originPortPositionOf(this$static, node){ - var origin_0, port; - origin_0 = $originPortOf(node); - port = origin_0; - return castTo($get_10(this$static.portPositions, port), 19).value_0; -} - -function $processIfNormalNodeWithNSPortsAndLongEdgeDummy(this$static, upperNode, lowerNode){ - if (upperNode.type_0 == ($clinit_LNode$NodeType() , NORMAL) && lowerNode.type_0 == LONG_EDGE) { - this$static.upperLowerCrossings = $numberOfNorthSouthEdges(upperNode, ($clinit_PortSide() , SOUTH_2)); - this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(upperNode, NORTH_3); - } - if (lowerNode.type_0 == NORMAL && upperNode.type_0 == LONG_EDGE) { - this$static.upperLowerCrossings = $numberOfNorthSouthEdges(lowerNode, ($clinit_PortSide() , NORTH_3)); - this$static.lowerUpperCrossings = $numberOfNorthSouthEdges(lowerNode, SOUTH_2); - } -} - -function $setPortIdsOn(this$static, node, side){ - var port, port$iterator, portId, ports; - ports = inNorthSouthEastWestOrder(node, side); - portId = 0; - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $put_6(this$static.portPositions, port, valueOf_4(portId++)); - } -} - -function NorthSouthEdgeNeighbouringNodeCrossingsCounter(nodes){ - this.layer = nodes; - this.portPositions = new HashMap; - $initializePortPositions(this); -} - -defineClass(1930, 1, {}, NorthSouthEdgeNeighbouringNodeCrossingsCounter); -_.lowerUpperCrossings = 0; -_.upperLowerCrossings = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_NorthSouthEdgeNeighbouringNodeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'NorthSouthEdgeNeighbouringNodeCrossingsCounter', 1930); -function $doesSwitchReduceCrossings(this$static, upperNodeIndex, lowerNodeIndex){ - var crossingNumbers, leftInlayer, lowerNode, lowerPort, lowerUpperCrossings, rightInlayer, upperLowerCrossings, upperNode, upperPort, upperNode_0, lowerNode_0, constraints, neitherNodeIsLongEdgeDummy, upperLayoutUnit, lowerLayoutUnit, areInDifferentLayoutUnits, nodesHaveLayoutUnits, upperNodeHasNorthernEdges, lowerNodeHasSouthernEdges, hasLayoutUnitConstraint; - if (upperNode_0 = this$static.freeLayer[upperNodeIndex] , lowerNode_0 = this$static.freeLayer[lowerNodeIndex] , (constraints = castTo($getProperty(upperNode_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15) , !!constraints && constraints.size_1() != 0 && constraints.contains(lowerNode_0)) || (neitherNodeIsLongEdgeDummy = upperNode_0.type_0 != ($clinit_LNode$NodeType() , LONG_EDGE) && lowerNode_0.type_0 != LONG_EDGE , upperLayoutUnit = castTo($getProperty(upperNode_0, IN_LAYER_LAYOUT_UNIT), 10) , lowerLayoutUnit = castTo($getProperty(lowerNode_0, IN_LAYER_LAYOUT_UNIT), 10) , areInDifferentLayoutUnits = upperLayoutUnit != lowerLayoutUnit , nodesHaveLayoutUnits = !!upperLayoutUnit && upperLayoutUnit != upperNode_0 || !!lowerLayoutUnit && lowerLayoutUnit != lowerNode_0 , upperNodeHasNorthernEdges = $hasEdgesOnSide(upperNode_0, ($clinit_PortSide() , NORTH_3)) , lowerNodeHasSouthernEdges = $hasEdgesOnSide(lowerNode_0, SOUTH_2) , nodesHaveLayoutUnits = nodesHaveLayoutUnits | ($hasEdgesOnSide(upperNode_0, SOUTH_2) || $hasEdgesOnSide(lowerNode_0, NORTH_3)) , hasLayoutUnitConstraint = nodesHaveLayoutUnits && areInDifferentLayoutUnits || upperNodeHasNorthernEdges || lowerNodeHasSouthernEdges , neitherNodeIsLongEdgeDummy && hasLayoutUnitConstraint) || upperNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && lowerNode_0.type_0 == NORMAL || lowerNode_0.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && upperNode_0.type_0 == NORMAL) { - return false; - } - upperNode = this$static.freeLayer[upperNodeIndex]; - lowerNode = this$static.freeLayer[lowerNodeIndex]; - leftInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); - rightInlayer = $countInLayerCrossingsBetweenNodesInBothOrders(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); - $countCrossings(this$static.northSouthCounter, upperNode, lowerNode); - upperLowerCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, upperNode, lowerNode) + castTo(leftInlayer.first, 19).value_0 + castTo(rightInlayer.first, 19).value_0 + this$static.northSouthCounter.upperLowerCrossings; - lowerUpperCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, lowerNode, upperNode) + castTo(leftInlayer.second, 19).value_0 + castTo(rightInlayer.second, 19).value_0 + this$static.northSouthCounter.lowerUpperCrossings; - if (this$static.countCrossingsCausedByPortSwitch) { - upperPort = castTo($getProperty(upperNode, ORIGIN_0), 11); - lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); - crossingNumbers = $countCrossingsBetweenPortsInBothOrders(this$static.parentCrossCounter, upperPort, lowerPort); - upperLowerCrossings += castTo(crossingNumbers.first, 19).value_0; - lowerUpperCrossings += castTo(crossingNumbers.second, 19).value_0; - } - return upperLowerCrossings > lowerUpperCrossings; -} - -function $hasEdgesOnSide(node, side){ - var port, port$iterator, ports; - ports = $getPortSideView(node, side); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if ($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)) != null || $hasNext_6(new LPort$CombineIter$1(port.connectedEdges))) { - return true; - } - } - return false; -} - -function $initParentCrossingsCounters(this$static, freeLayerIndex, length_0){ - var leftLayer, middleLayer, parentGraphData, parentNodeLayerPos, parentNodeOrder, portPos, rightLayer, rightMostLayer; - parentGraphData = this$static.graphData.parentGraphData; - parentNodeOrder = parentGraphData.currentNodeOrder; - portPos = parentGraphData.portPositions; - this$static.parentCrossCounter = new CrossingsCounter(portPos); - parentNodeLayerPos = this$static.graphData.parent_0.layer.id_0; - leftLayer = parentNodeLayerPos > 0?parentNodeOrder[parentNodeLayerPos - 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); - middleLayer = parentNodeOrder[parentNodeLayerPos]; - rightLayer = parentNodeLayerPos < parentNodeOrder.length - 1?parentNodeOrder[parentNodeLayerPos + 1]:initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, 0, 0, 1); - rightMostLayer = freeLayerIndex == length_0 - 1; - rightMostLayer?$initForCountingBetween(this$static.parentCrossCounter, middleLayer, rightLayer):$initForCountingBetween(this$static.parentCrossCounter, leftLayer, middleLayer); -} - -function $notifyOfSwitch(this$static, upperNode, lowerNode){ - var lowerPort, upperPort; - $switchNodes(this$static.leftInLayerCounter, upperNode, lowerNode, ($clinit_PortSide() , WEST_2)); - $switchNodes(this$static.rightInLayerCounter, upperNode, lowerNode, EAST_2); - if (this$static.countCrossingsCausedByPortSwitch) { - upperPort = castTo($getProperty(upperNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); - $switchPorts(this$static.parentCrossCounter, upperPort, lowerPort); - } -} - -function SwitchDecider(freeLayerIndex, graph, crossingMatrixFiller, portPositions, graphData, oneSided){ - this.crossingMatrixFiller = crossingMatrixFiller; - this.graphData = graphData; - if (freeLayerIndex >= graph.length) { - throw toJs(new IndexOutOfBoundsException_0('Greedy SwitchDecider: Free layer not in graph.')); - } - this.freeLayer = graph[freeLayerIndex]; - this.leftInLayerCounter = new CrossingsCounter(portPositions); - $initPortPositionsForInLayerCrossings(this.leftInLayerCounter, this.freeLayer, ($clinit_PortSide() , WEST_2)); - this.rightInLayerCounter = new CrossingsCounter(portPositions); - $initPortPositionsForInLayerCrossings(this.rightInLayerCounter, this.freeLayer, EAST_2); - this.northSouthCounter = new NorthSouthEdgeNeighbouringNodeCrossingsCounter(this.freeLayer); - this.countCrossingsCausedByPortSwitch = !oneSided && graphData.hasParent && !graphData.useBottomUp && this.freeLayer[0].type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); - this.countCrossingsCausedByPortSwitch && $initParentCrossingsCounters(this, freeLayerIndex, graph.length); -} - -defineClass(1917, 1, {}, SwitchDecider); -_.countCrossingsCausedByPortSwitch = false; -var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_SwitchDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'SwitchDecider', 1917); -function $addSelfLoopEdge(this$static, slEdge){ - var lLabels, slSource, slTarget; - if ($add_6(this$static.slEdges, slEdge)) { - slEdge.slHyperLoop = this$static; - slSource = slEdge.slSource; - $indexOf_3(this$static.slPorts, slSource, 0) != -1 || $add_3(this$static.slPorts, slSource); - slTarget = slEdge.slTarget; - $indexOf_3(this$static.slPorts, slTarget, 0) != -1 || $add_3(this$static.slPorts, slTarget); - lLabels = slEdge.lEdge.labels; - if (lLabels.array.length != 0) { - !this$static.slLabels && (this$static.slLabels = new SelfHyperLoopLabels(this$static)); - $addLLabels(this$static.slLabels, lLabels); - } - } -} - -function $computePortsPerSide(this$static){ - var portSide, slPort, slPort$iterator; - this$static.slPortsBySide = new ArrayListMultimap_0(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, this$static.slPorts.array.length); - for (slPort$iterator = new ArrayList$1(this$static.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { - slPort = castTo($next_7(slPort$iterator), 113); - portSide = slPort.lPort.side; - $put(this$static.slPortsBySide, portSide, slPort); - } - this$static.selfLoopType = fromPortSides($keySet(this$static.slPortsBySide)); -} - -function $setLeftmostPort(this$static, leftmostPort){ - this$static.leftmostPort = leftmostPort; -} - -function $setRightmostPort(this$static, rightmostPort){ - this$static.rightmostPort = rightmostPort; -} - -function $setRoutingSlot(this$static, portSide, slot){ - var slotCount; - this$static.routingSlot[portSide.ordinal] = slot; - slotCount = this$static.slHolder.routingSlotCount; - slotCount[portSide.ordinal] = $wnd.Math.max(slotCount[portSide.ordinal], slot + 1); -} - -function SelfHyperLoop(slHolder){ - var all; - this.slPorts = new ArrayList; - this.slEdges = new HashSet; - this.occupiedPortSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - this.routingSlot = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); - this.slHolder = slHolder; -} - -defineClass(101, 1, {101:1}, SelfHyperLoop); -_.leftmostPort = null; -_.rightmostPort = null; -_.slLabels = null; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoop_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoop', 101); -function $addLLabels(this$static, newLLabels){ - var newLLabel, newLLabel$iterator; - for (newLLabel$iterator = new ArrayList$1(newLLabels); newLLabel$iterator.i < newLLabel$iterator.this$01.array.length;) { - newLLabel = castTo($next_7(newLLabel$iterator), 70); - $add_3(this$static.lLabels, newLLabel); - $updateSize(this$static, newLLabel); - } -} - -function $applyPlacement(this$static, offset){ - $isHorizontal(this$static.layoutDirection)?$applyPlacementForHorizontalLayout(this$static, offset):$applyPlacementVerticalForVerticalLayout(this$static, offset); -} - -function $applyPlacementForHorizontalLayout(this$static, offset){ - var lLabel, lLabel$iterator, labelPos, x_0, y_0; - x_0 = this$static.position.x_0; - y_0 = this$static.position.y_0; - for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { - lLabel = castTo($next_7(lLabel$iterator), 70); - labelPos = lLabel.pos; - this$static.alignment == ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1) || this$static.side == ($clinit_PortSide() , EAST_2)?(labelPos.x_0 = x_0):this$static.alignment == RIGHT_1 || this$static.side == ($clinit_PortSide() , WEST_2)?(labelPos.x_0 = x_0 + this$static.size_0.x_0 - lLabel.size_0.x_0):(labelPos.x_0 = x_0 + (this$static.size_0.x_0 - lLabel.size_0.x_0) / 2); - labelPos.y_0 = y_0; - $add_19(labelPos, offset); - y_0 += lLabel.size_0.y_0 + this$static.labelLabelSpacing; - } -} - -function $applyPlacementVerticalForVerticalLayout(this$static, offset){ - var lLabel, lLabel$iterator, labelPos, x_0, y_0; - x_0 = this$static.position.x_0; - y_0 = this$static.position.y_0; - for (lLabel$iterator = new ArrayList$1(this$static.lLabels); lLabel$iterator.i < lLabel$iterator.this$01.array.length;) { - lLabel = castTo($next_7(lLabel$iterator), 70); - labelPos = lLabel.pos; - labelPos.x_0 = x_0; - this$static.side == ($clinit_PortSide() , NORTH_3)?(labelPos.y_0 = y_0 + this$static.size_0.y_0 - lLabel.size_0.y_0):(labelPos.y_0 = y_0); - $add_19(labelPos, offset); - x_0 += lLabel.size_0.x_0 + this$static.labelLabelSpacing; - } -} - -function $updateSize(this$static, newLLabel){ - var newLLabelSize; - newLLabelSize = newLLabel.size_0; - if ($isHorizontal(this$static.layoutDirection)) { - this$static.size_0.x_0 = $wnd.Math.max(this$static.size_0.x_0, newLLabelSize.x_0); - this$static.size_0.y_0 += newLLabelSize.y_0; - this$static.lLabels.array.length > 1 && (this$static.size_0.y_0 += this$static.labelLabelSpacing); - } - else { - this$static.size_0.x_0 += newLLabelSize.x_0; - this$static.size_0.y_0 = $wnd.Math.max(this$static.size_0.y_0, newLLabelSize.y_0); - this$static.lLabels.array.length > 1 && (this$static.size_0.x_0 += this$static.labelLabelSpacing); - } -} - -function SelfHyperLoopLabels(slLoop){ - var lNode; - this.lLabels = new ArrayList; - this.size_0 = new KVector; - this.position = new KVector; - lNode = slLoop.slHolder.lNode; - this.layoutDirection = castTo($getProperty($getGraph(lNode), ($clinit_LayeredOptions() , DIRECTION)), 103); - this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_LABEL_LABEL))); -} - -defineClass(1916, 1, {}, SelfHyperLoopLabels); -_.id_0 = 0; -_.labelLabelSpacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels', 1916); -function $clinit_SelfHyperLoopLabels$Alignment(){ - $clinit_SelfHyperLoopLabels$Alignment = emptyMethod; - CENTER_2 = new SelfHyperLoopLabels$Alignment('CENTER', 0); - LEFT_1 = new SelfHyperLoopLabels$Alignment('LEFT', 1); - RIGHT_1 = new SelfHyperLoopLabels$Alignment('RIGHT', 2); - TOP_0 = new SelfHyperLoopLabels$Alignment('TOP', 3); -} - -function SelfHyperLoopLabels$Alignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_34(name_0){ - $clinit_SelfHyperLoopLabels$Alignment(); - return valueOf(($clinit_SelfHyperLoopLabels$Alignment$Map() , $MAP_22), name_0); -} - -function values_40(){ - $clinit_SelfHyperLoopLabels$Alignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]); -} - -defineClass(411, 22, {3:1, 35:1, 22:1, 411:1}, SelfHyperLoopLabels$Alignment); -var CENTER_2, LEFT_1, RIGHT_1, TOP_0; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfHyperLoopLabels/Alignment', 411, Ljava_lang_Enum_2_classLit, values_40, valueOf_34); -function $clinit_SelfHyperLoopLabels$Alignment$Map(){ - $clinit_SelfHyperLoopLabels$Alignment$Map = emptyMethod; - $MAP_22 = createValueOfMap(($clinit_SelfHyperLoopLabels$Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfHyperLoopLabels$Alignment_2_classLit, 1), $intern_36, 411, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]))); -} - -var $MAP_22; -function SelfLoopEdge(lEdge, slSource, slTarget){ - this.lEdge = lEdge; - this.slSource = slSource; - this.slTarget = slTarget; - $add_3(slSource.outgoingSLEdges, this); - $add_3(slTarget.incomingSLEdges, this); -} - -defineClass(409, 1, {409:1}, SelfLoopEdge); -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopEdge', 409); -function $initialize_3(this$static){ - var entry, lEdge, lEdge$iterator, outerIter, outerIter0, slEdges, slPort, slPort$iterator, slPort$iterator0; - slEdges = new ArrayList; - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(this$static.lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - $isSelfLoop(lEdge) && $add_3(slEdges, new SelfLoopEdge(lEdge, $selfLoopPortFor(this$static, lEdge.source), $selfLoopPortFor(this$static, lEdge.target))); - } - for (slPort$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); slPort$iterator0.val$outerIter2.hasNext_0();) { - slPort = (entry = castTo(slPort$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); - slPort.lPort.id_0 = 0; - } - for (slPort$iterator = (outerIter = (new AbstractMap$2(this$static.slPorts)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); slPort$iterator.val$outerIter2.hasNext_0();) { - slPort = (entry = castTo(slPort$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 113)); - slPort.lPort.id_0 == 0 && $add_3(this$static.slHyperLoops, $initializeHyperLoop(this$static, slPort)); - } -} - -function $initializeHyperLoop(this$static, slPort){ - var bfsQueue, currentSLPort, slEdge, slEdge$iterator, slEdge$iterator0, slLoop, slSourcePort, slTargetPort; - slLoop = new SelfHyperLoop(this$static); - bfsQueue = new LinkedList; - $addNode_0(bfsQueue, slPort, bfsQueue.tail.prev, bfsQueue.tail); - while (bfsQueue.size_0 != 0) { - currentSLPort = castTo(bfsQueue.size_0 == 0?null:(checkCriticalElement(bfsQueue.size_0 != 0) , $removeNode_0(bfsQueue, bfsQueue.header.next_0)), 113); - currentSLPort.lPort.id_0 = 1; - for (slEdge$iterator0 = new ArrayList$1(currentSLPort.outgoingSLEdges); slEdge$iterator0.i < slEdge$iterator0.this$01.array.length;) { - slEdge = castTo($next_7(slEdge$iterator0), 409); - $addSelfLoopEdge(slLoop, slEdge); - slTargetPort = slEdge.slTarget; - slTargetPort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slTargetPort, bfsQueue.tail.prev, bfsQueue.tail) , true); - } - for (slEdge$iterator = new ArrayList$1(currentSLPort.incomingSLEdges); slEdge$iterator.i < slEdge$iterator.this$01.array.length;) { - slEdge = castTo($next_7(slEdge$iterator), 409); - $addSelfLoopEdge(slLoop, slEdge); - slSourcePort = slEdge.slSource; - slSourcePort.lPort.id_0 == 0 && ($addNode_0(bfsQueue, slSourcePort, bfsQueue.tail.prev, bfsQueue.tail) , true); - } - } - return slLoop; -} - -function $selfLoopPortFor(this$static, lport){ - $containsKey_6(this$static.slPorts, lport) || $put_11(this$static.slPorts, lport, new SelfLoopPort(lport)); - return castTo($get_16(this$static.slPorts, lport), 113); -} - -function SelfLoopHolder(node){ - this.slHyperLoops = new ArrayList; - this.slPorts = new LinkedHashMap; - this.routingSlotCount = initUnidimensionalArray(I_classLit, $intern_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); - this.lNode = node; -} - -function needsSelfLoopProcessing(lNode){ - if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - return false; - } - return $anyMatch(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)))), new SelfLoopHolder$lambda$0$Type); -} - -defineClass(403, 1, {403:1}, SelfLoopHolder); -_.arePortsHidden = false; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder', 403); -function SelfLoopHolder$lambda$0$Type(){ -} - -defineClass(1724, 1, $intern_39, SelfLoopHolder$lambda$0$Type); -_.test_0 = function test_69(arg0){ - return $isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder/lambda$0$Type', 1724); -function $getSLNetFlow(this$static){ - return this$static.incomingSLEdges.array.length - this$static.outgoingSLEdges.array.length; -} - -function SelfLoopPort(lPort){ - this.incomingSLEdges = new ArrayList; - this.outgoingSLEdges = new ArrayList; - this.lPort = lPort; - this.hadOnlySelfLoops = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new LPort$CombineIter$1(lPort.connectedEdges))), new Predicate$lambda$2$Type(new SelfLoopPort$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); -} - -defineClass(113, 1, {113:1}, SelfLoopPort); -_.hadOnlySelfLoops = false; -_.isHidden = false; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort', 113); -function SelfLoopPort$lambda$0$Type(){ -} - -defineClass(1792, 1, $intern_39, SelfLoopPort$lambda$0$Type); -_.test_0 = function test_70(arg0){ - return $isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopPort$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopPort/lambda$0$Type', 1792); -function $clinit_SelfLoopType(){ - $clinit_SelfLoopType = emptyMethod; - ONE_SIDE = new SelfLoopType('ONE_SIDE', 0); - TWO_SIDES_CORNER = new SelfLoopType('TWO_SIDES_CORNER', 1); - TWO_SIDES_OPPOSING = new SelfLoopType('TWO_SIDES_OPPOSING', 2); - THREE_SIDES = new SelfLoopType('THREE_SIDES', 3); - FOUR_SIDES = new SelfLoopType('FOUR_SIDES', 4); -} - -function SelfLoopType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function fromPortSides(portSides){ - $clinit_SelfLoopType(); - var eastWest, northSouth; - if (portSides.contains(($clinit_PortSide() , UNDEFINED_5))) { - throw toJs(new IllegalArgumentException_0('Port sides must not contain UNDEFINED')); - } - switch (portSides.size_1()) { - case 1: - return ONE_SIDE; - case 2: - eastWest = portSides.contains(EAST_2) && portSides.contains(WEST_2); - northSouth = portSides.contains(NORTH_3) && portSides.contains(SOUTH_2); - return eastWest || northSouth?TWO_SIDES_OPPOSING:TWO_SIDES_CORNER; - case 3: - return THREE_SIDES; - case 4: - return FOUR_SIDES; - default:return null; - } -} - -function valueOf_35(name_0){ - $clinit_SelfLoopType(); - return valueOf(($clinit_SelfLoopType$Map() , $MAP_23), name_0); -} - -function values_41(){ - $clinit_SelfLoopType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]); -} - -defineClass(363, 22, {3:1, 35:1, 22:1, 363:1}, SelfLoopType); -var FOUR_SIDES, ONE_SIDE, THREE_SIDES, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopType', 363, Ljava_lang_Enum_2_classLit, values_41, valueOf_35); -function $clinit_SelfLoopType$Map(){ - $clinit_SelfLoopType$Map = emptyMethod; - $MAP_23 = createValueOfMap(($clinit_SelfLoopType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopType_2_classLit, 1), $intern_36, 363, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]))); -} - -var $MAP_23; -function $clinit_PortRestorer(){ - $clinit_PortRestorer = emptyMethod; - NES = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [($clinit_PortSide() , NORTH_3), EAST_2, SOUTH_2]); - ESW = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]); - SWN = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2, NORTH_3]); - WNE = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2, NORTH_3, EAST_2]); -} - -function $addAll_5(slPorts, lNode){ - $forEach_3($map_0(slPorts.stream(), new PortRestorer$lambda$11$Type), new PortRestorer$lambda$12$Type(lNode)); -} - -function $addAllThat(lPorts, fromIndex, condition, target){ - var i, lPort; - for (i = fromIndex; i < lPorts.array.length; i++) { - lPort = (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)); - if (condition.test_0(lPort)) { - target.array[target.array.length] = lPort; - } - else { - return i; - } - } - return lPorts.array.length; -} - -function $addToTargetArea(this$static, slPorts, portSide, area, addMode){ - var hiddenPorts, targetArea; - hiddenPorts = castTo($collect_1($filter(slPorts.stream(), new PortRestorer$lambda$4$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - targetArea = castTo($get_1(this$static.targetAreas, portSide, area), 15); - addMode == 0?targetArea.addAll_0(0, hiddenPorts):targetArea.addAll(hiddenPorts); -} - -function $addToTargetArea_0(this$static, slLoop, portSide, area, addMode){ - $addToTargetArea(this$static, castTo($get(slLoop.slPortsBySide, portSide), 15), portSide, area, addMode); -} - -function $computePortListSplitIndex(sortedPorts){ - var nonNegativeNetFlowIndex, positiveNetFlowIndex; - positiveNetFlowIndex = 0; - for (; positiveNetFlowIndex < sortedPorts.array.length; positiveNetFlowIndex++) { - if ($getSLNetFlow((checkCriticalElementIndex(positiveNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[positiveNetFlowIndex], 113))) > 0) { - break; - } - } - if (positiveNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { - return positiveNetFlowIndex; - } - nonNegativeNetFlowIndex = 0; - for (; nonNegativeNetFlowIndex < sortedPorts.array.length; nonNegativeNetFlowIndex++) { - if ($getSLNetFlow((checkCriticalElementIndex(nonNegativeNetFlowIndex, sortedPorts.array.length) , castTo(sortedPorts.array[nonNegativeNetFlowIndex], 113))) > 0) { - break; - } - } - if (nonNegativeNetFlowIndex > 0 && positiveNetFlowIndex < sortedPorts.array.length - 1) { - return nonNegativeNetFlowIndex; - } - return sortedPorts.array.length / 2 | 0; -} - -function $initTargetAreas(this$static){ - var area, area$array, area$index, area$max, side, side$array, side$index, side$max; - this$static.targetAreas = new ArrayTable(new Arrays$ArrayList(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))), new Arrays$ArrayList(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0])))); - for (side$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { - side = side$array[side$index]; - for (area$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]) , area$index = 0 , area$max = area$array.length; area$index < area$max; ++area$index) { - area = area$array[area$index]; - $put_0(this$static.targetAreas, side, area, new ArrayList); - } - } -} - -function $lambda$5(lPort_0){ - var connections, eastConnections, westConnections; - return lPort_0.side == ($clinit_PortSide() , NORTH_3) && (connections = $northSouthPortConnectionSides(lPort_0) , eastConnections = $containsEnum(connections, EAST_2) , westConnections = $containsEnum(connections, WEST_2) , westConnections || westConnections && eastConnections); -} - -function $lambda$8(lPort_0){ - var connections; - return lPort_0.side == ($clinit_PortSide() , SOUTH_2) && (connections = $northSouthPortConnectionSides(lPort_0) , $containsEnum(connections, EAST_2)); -} - -function $northSouthPortConnectionSides(lPort){ - var all, connectionSides, dummyLPort, dummyLPort$iterator, portDummy; - connectionSides = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - portDummy = castTo($getProperty(lPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (portDummy) { - for (dummyLPort$iterator = new ArrayList$1(portDummy.ports); dummyLPort$iterator.i < dummyLPort$iterator.this$01.array.length;) { - dummyLPort = castTo($next_7(dummyLPort$iterator), 11); - maskUndefined($getProperty(dummyLPort, ORIGIN_0)) === maskUndefined(lPort) && $hasNext_6(new LPort$CombineIter$1(dummyLPort.connectedEdges)) && $add_5(connectionSides, dummyLPort.side); - } - } - return connectionSides; -} - -function $processFourSideLoops(this$static){ - var side, side$iterator, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , FOUR_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - for (side$iterator = $keySet(slLoop.slPortsBySide).iterator_0(); side$iterator.hasNext_0();) { - side = castTo(side$iterator.next_1(), 61); - $addToTargetArea_0(this$static, slLoop, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); - } - } -} - -function $processOneSideLoops(this$static, ordering){ - var side, slLoop, slLoop$iterator, sortedPorts, splitIndex; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , ONE_SIDE)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; - sortedPorts = new ArrayList_1(slLoop.slPorts); - $sort(sortedPorts, new PortRestorer$lambda$3$Type); - switch (ordering.ordinal) { - case 1: - $addToTargetArea(this$static, sortedPorts, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); - break; - case 0: - splitIndex = $computePortListSplitIndex(sortedPorts); - $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, 0, splitIndex), side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 0); - $addToTargetArea(this$static, new AbstractList$SubList(sortedPorts, splitIndex, sortedPorts.array.length), side, MIDDLE, 1); - } - } -} - -function $processThreeSideLoops(this$static){ - var portSides, sides, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , THREE_SIDES)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - sides = (portSides = $keySet(slLoop.slPortsBySide) , portSides.contains(($clinit_PortSide() , NORTH_3))?portSides.contains(EAST_2)?portSides.contains(SOUTH_2)?portSides.contains(WEST_2)?null:NES:WNE:SWN:ESW); - $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); - $addToTargetArea_0(this$static, slLoop, sides[1], MIDDLE, 1); - $addToTargetArea_0(this$static, slLoop, sides[2], START, 1); - } -} - -function $processTwoSideCornerLoops(this$static){ - var sides, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_CORNER)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - sides = sortedTwoSideLoopPortSides(slLoop); - $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); - $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); - } -} - -function $processTwoSideOpposingLoops(this$static){ - var sides, slLoop, slLoop$iterator; - for (slLoop$iterator = castTo($get(this$static.slLoopsByType, ($clinit_SelfLoopType() , TWO_SIDES_OPPOSING)), 15).iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - sides = sortedTwoSideLoopPortSides(slLoop); - $addToTargetArea_0(this$static, slLoop, sides[0], ($clinit_PortRestorer$PortSideArea() , END_0), 0); - $addToTargetArea_0(this$static, slLoop, sides[1], START, 1); - } -} - -function $restorePorts(this$static, slHolder){ - var lNode, newPortList, nextOldPortIndex, oldPortList; - lNode = slHolder.lNode; - oldPortList = new ArrayList_1(lNode.ports); - nextOldPortIndex = 0; - newPortList = lNode.ports; - newPortList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_5(castTo($get_1(this$static.targetAreas, ($clinit_PortSide() , NORTH_3), ($clinit_PortRestorer$PortSideArea() , START)), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$5$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, MIDDLE), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$6$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, NORTH_3, END_0), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, START), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, MIDDLE), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$7$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, EAST_2, END_0), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, START), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$8$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, MIDDLE), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$9$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, SOUTH_2, END_0), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, START), 15), lNode); - nextOldPortIndex = $addAllThat(oldPortList, nextOldPortIndex, new PortRestorer$lambda$10$Type, newPortList); - $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, MIDDLE), 15), lNode); - $addAll_5(castTo($get_1(this$static.targetAreas, WEST_2, END_0), 15), lNode); -} - -function $restorePorts_0(this$static, slHolder){ - var loops; - $initTargetAreas(this$static); - this$static.slLoopsByType = (loops = new ArrayListMultimap , $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortRestorer$lambda$2$Type(loops)) , loops); - $processOneSideLoops(this$static, castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376)); - $processTwoSideCornerLoops(this$static); - $processThreeSideLoops(this$static); - $processFourSideLoops(this$static); - $processTwoSideOpposingLoops(this$static); - $restorePorts(this$static, slHolder); - $forEach_3($flatMap(new StreamImpl(null, $valuesSpliterator($values_1(this$static.targetAreas).this$01)), new PortRestorer$lambda$0$Type), new PortRestorer$lambda$1$Type); - slHolder.arePortsHidden = false; - this$static.slLoopsByType = null; -} - -function PortRestorer(){ - $clinit_PortRestorer(); -} - -function lambda$12(lNode_0, lPort_1){ - $clinit_PortRestorer(); - $setNode(lPort_1, lNode_0); -} - -function lambda$2_8(loops_0, slLoop_1){ - $clinit_PortRestorer(); - return $put(loops_0, slLoop_1.selfLoopType, slLoop_1); -} - -function lambda$3_5(slPort1_0, slPort2_1){ - $clinit_PortRestorer(); - return compare_5(slPort1_0.incomingSLEdges.array.length - slPort1_0.outgoingSLEdges.array.length, slPort2_1.incomingSLEdges.array.length - slPort2_1.outgoingSLEdges.array.length); -} - -function sortedTwoSideLoopPortSides(slLoop){ - $clinit_PortRestorer(); - var sides; - sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); - mergeSort(sides, 0, sides.length, null); - if (sides[0] == ($clinit_PortSide() , NORTH_3) && sides[1] == WEST_2) { - setCheck(sides, 0, WEST_2); - setCheck(sides, 1, NORTH_3); - } - return sides; -} - -defineClass(1732, 1, {}, PortRestorer); -var ESW, NES, SWN, WNE; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer', 1732); -function $clinit_PortRestorer$PortSideArea(){ - $clinit_PortRestorer$PortSideArea = emptyMethod; - START = new PortRestorer$PortSideArea('START', 0); - MIDDLE = new PortRestorer$PortSideArea('MIDDLE', 1); - END_0 = new PortRestorer$PortSideArea('END', 2); -} - -function PortRestorer$PortSideArea(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_36(name_0){ - $clinit_PortRestorer$PortSideArea(); - return valueOf(($clinit_PortRestorer$PortSideArea$Map() , $MAP_24), name_0); -} - -function values_42(){ - $clinit_PortRestorer$PortSideArea(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]); -} - -defineClass(361, 22, {3:1, 35:1, 22:1, 361:1}, PortRestorer$PortSideArea); -var END_0, MIDDLE, START; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/PortSideArea', 361, Ljava_lang_Enum_2_classLit, values_42, valueOf_36); -function $clinit_PortRestorer$PortSideArea$Map(){ - $clinit_PortRestorer$PortSideArea$Map = emptyMethod; - $MAP_24 = createValueOfMap(($clinit_PortRestorer$PortSideArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$PortSideArea_2_classLit, 1), $intern_36, 361, 0, [START, MIDDLE, END_0]))); -} - -var $MAP_24; -function PortRestorer$lambda$0$Type(){ -} - -defineClass(1733, 1, {}, PortRestorer$lambda$0$Type); -_.apply_0 = function apply_122(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 15).stream(); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$0$Type', 1733); -function PortRestorer$lambda$1$Type(){ -} - -defineClass(1734, 1, $intern_19, PortRestorer$lambda$1$Type); -_.accept = function accept_106(arg0){ - $clinit_PortRestorer(); - castTo(arg0, 113).isHidden = false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$1$Type', 1734); -function PortRestorer$lambda$10$Type(){ -} - -defineClass(1743, 1, $intern_39, PortRestorer$lambda$10$Type); -_.test_0 = function test_71(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$10$Type', 1743); -function PortRestorer$lambda$11$Type(){ -} - -defineClass(1744, 1, {}, PortRestorer$lambda$11$Type); -_.apply_0 = function apply_123(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 113).lPort; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$11$Type', 1744); -function PortRestorer$lambda$12$Type(lNode_0){ - this.lNode_0 = lNode_0; -} - -defineClass(1745, 1, $intern_19, PortRestorer$lambda$12$Type); -_.accept = function accept_107(arg0){ - lambda$12(this.lNode_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$12$Type', 1745); -function PortRestorer$lambda$2$Type(loops_0){ - this.loops_0 = loops_0; -} - -defineClass(1735, 1, $intern_19, PortRestorer$lambda$2$Type); -_.accept = function accept_108(arg0){ - lambda$2_8(this.loops_0, castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$2$Type', 1735); -function PortRestorer$lambda$3$Type(){ -} - -defineClass(1736, 1, $intern_88, PortRestorer$lambda$3$Type); -_.compare_1 = function compare_52(arg0, arg1){ - return lambda$3_5(castTo(arg0, 113), castTo(arg1, 113)); -} -; -_.equals_0 = function equals_133(other){ - return this === other; -} -; -_.reversed = function reversed_44(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$3$Type', 1736); -function PortRestorer$lambda$4$Type(){ -} - -defineClass(1737, 1, $intern_39, PortRestorer$lambda$4$Type); -_.test_0 = function test_72(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 113).isHidden; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$4$Type', 1737); -function PortRestorer$lambda$5$Type(){ -} - -defineClass(1738, 1, $intern_39, PortRestorer$lambda$5$Type); -_.test_0 = function test_73(arg0){ - return $lambda$5(castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$5$Type', 1738); -function PortRestorer$lambda$6$Type(){ -} - -defineClass(1739, 1, $intern_39, PortRestorer$lambda$6$Type); -_.test_0 = function test_74(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$6$Type', 1739); -function PortRestorer$lambda$7$Type(){ -} - -defineClass(1740, 1, $intern_39, PortRestorer$lambda$7$Type); -_.test_0 = function test_75(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$7$Type', 1740); -function PortRestorer$lambda$8$Type(){ -} - -defineClass(1741, 1, $intern_39, PortRestorer$lambda$8$Type); -_.test_0 = function test_76(arg0){ - return $lambda$8(castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$8$Type', 1741); -function PortRestorer$lambda$9$Type(){ -} - -defineClass(1742, 1, $intern_39, PortRestorer$lambda$9$Type); -_.test_0 = function test_77(arg0){ - return $clinit_PortRestorer() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortRestorer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortRestorer/lambda$9$Type', 1742); -function $assignPortSides(slHolder){ - switch (castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)), 375).ordinal) { - case 1: - $forEach_3($map_0($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new PortSideAssigner$lambda$1$Type), new PortSideAssigner$lambda$2$Type), new PortSideAssigner$lambda$3$Type); - break; - case 2: - $assignToNorthOrSouthSide(slHolder); - break; - case 0: - $assignToAllSides(slHolder); - } -} - -function $assignToAllSides(slHolder){ - var assignmentTargets, currLoop, currTarget, slLoop, slLoop$iterator, slSortedLoops; - slSortedLoops = new ArrayList_1(slHolder.slHyperLoops); - $sort(slSortedLoops, new PortSideAssigner$lambda$6$Type); - assignmentTargets = ($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER])); - currLoop = 0; - for (slLoop$iterator = new ArrayList$1(slSortedLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - currTarget = assignmentTargets[currLoop % assignmentTargets.length]; - $assignToTarget(slLoop, currTarget); - ++currLoop; - } -} - -function $assignToNorthOrSouthSide(slHolder){ - var finalNewPortSide, newPortSide, northPorts, slHiddenPorts, slLoop, slLoop$iterator, southPorts; - northPorts = 0; - southPorts = 0; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slHiddenPorts = castTo($collect_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slLoop.slPorts, 16)), new PortSideAssigner$lambda$8$Type), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - newPortSide = null; - if (northPorts <= southPorts) { - newPortSide = ($clinit_PortSide() , NORTH_3); - northPorts += slHiddenPorts.size_1(); - } - else if (southPorts < northPorts) { - newPortSide = ($clinit_PortSide() , SOUTH_2); - southPorts += slHiddenPorts.size_1(); - } - finalNewPortSide = newPortSide; - $forEach_3($map_0(slHiddenPorts.stream(), new PortSideAssigner$lambda$4$Type), new PortSideAssigner$lambda$5$Type(finalNewPortSide)); - } -} - -function $assignToTarget(slLoop, target){ - var i, i0, secondHalfStartIndex, slPort, slPorts; - slPorts = slLoop.slPorts; - target.firstSide != target.secondSide && $sort(slPorts, new PortSideAssigner$lambda$7$Type); - secondHalfStartIndex = slPorts.array.length / 2 | 0; - for (i0 = 0; i0 < secondHalfStartIndex; i0++) { - slPort = (checkCriticalElementIndex(i0, slPorts.array.length) , castTo(slPorts.array[i0], 113)); - slPort.isHidden && $setSide(slPort.lPort, target.firstSide); - } - for (i = secondHalfStartIndex; i < slPorts.array.length; i++) { - slPort = (checkCriticalElementIndex(i, slPorts.array.length) , castTo(slPorts.array[i], 113)); - slPort.isHidden && $setSide(slPort.lPort, target.secondSide); - } -} - -function lambda$5_2(finalNewPortSide_0, lPort_1){ - $setSide(lPort_1, finalNewPortSide_0); -} - -function lambda$6_0(slLoop1_0, slLoop2_1){ - return compare_5(slLoop2_1.slPorts.array.length, slLoop1_0.slPorts.array.length); -} - -function lambda$7_2(slPort1_0, slPort2_1){ - return compare_5($getNetFlow(slPort1_0.lPort), $getNetFlow(slPort2_1.lPort)); -} - -function $clinit_PortSideAssigner$Target(){ - $clinit_PortSideAssigner$Target = emptyMethod; - NORTH_1 = new PortSideAssigner$Target('NORTH', 0, ($clinit_PortSide() , NORTH_3), NORTH_3); - SOUTH_1 = new PortSideAssigner$Target('SOUTH', 1, SOUTH_2, SOUTH_2); - EAST_1 = new PortSideAssigner$Target('EAST', 2, EAST_2, EAST_2); - WEST_1 = new PortSideAssigner$Target('WEST', 3, WEST_2, WEST_2); - NORTH_WEST_CORNER = new PortSideAssigner$Target('NORTH_WEST_CORNER', 4, WEST_2, NORTH_3); - NORTH_EAST_CORNER = new PortSideAssigner$Target('NORTH_EAST_CORNER', 5, NORTH_3, EAST_2); - SOUTH_WEST_CORNER = new PortSideAssigner$Target('SOUTH_WEST_CORNER', 6, SOUTH_2, WEST_2); - SOUTH_EAST_CORNER = new PortSideAssigner$Target('SOUTH_EAST_CORNER', 7, EAST_2, SOUTH_2); -} - -function PortSideAssigner$Target(enum$name, enum$ordinal, firstSide, secondSide){ - Enum.call(this, enum$name, enum$ordinal); - this.firstSide = firstSide; - this.secondSide = secondSide; -} - -function valueOf_37(name_0){ - $clinit_PortSideAssigner$Target(); - return valueOf(($clinit_PortSideAssigner$Target$Map() , $MAP_25), name_0); -} - -function values_43(){ - $clinit_PortSideAssigner$Target(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]); -} - -defineClass(270, 22, {3:1, 35:1, 22:1, 270:1}, PortSideAssigner$Target); -var EAST_1, NORTH_1, NORTH_EAST_CORNER, NORTH_WEST_CORNER, SOUTH_1, SOUTH_EAST_CORNER, SOUTH_WEST_CORNER, WEST_1; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit = createForEnum('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/Target', 270, Ljava_lang_Enum_2_classLit, values_43, valueOf_37); -function $clinit_PortSideAssigner$Target$Map(){ - $clinit_PortSideAssigner$Target$Map = emptyMethod; - $MAP_25 = createValueOfMap(($clinit_PortSideAssigner$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$Target_2_classLit, 1), $intern_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]))); -} - -var $MAP_25; -function PortSideAssigner$lambda$1$Type(){ -} - -defineClass(1725, 1, {}, PortSideAssigner$lambda$1$Type); -_.apply_0 = function apply_124(arg0){ - return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).slPorts, 16)), new PortSideAssigner$lambda$8$Type); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$1$Type', 1725); -function PortSideAssigner$lambda$2$Type(){ -} - -defineClass(1726, 1, {}, PortSideAssigner$lambda$2$Type); -_.apply_0 = function apply_125(arg0){ - return castTo(arg0, 113).lPort; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$2$Type', 1726); -function PortSideAssigner$lambda$3$Type(){ -} - -defineClass(1727, 1, $intern_19, PortSideAssigner$lambda$3$Type); -_.accept = function accept_109(arg0){ - $setSide(castTo(arg0, 11), ($clinit_PortSide() , NORTH_3)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$3$Type', 1727); -function PortSideAssigner$lambda$4$Type(){ -} - -defineClass(1728, 1, {}, PortSideAssigner$lambda$4$Type); -_.apply_0 = function apply_126(arg0){ - return castTo(arg0, 113).lPort; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$4$Type', 1728); -function PortSideAssigner$lambda$5$Type(finalNewPortSide_0){ - this.finalNewPortSide_0 = finalNewPortSide_0; -} - -defineClass(1729, 1, $intern_19, PortSideAssigner$lambda$5$Type); -_.accept = function accept_110(arg0){ - lambda$5_2(this.finalNewPortSide_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$5$Type', 1729); -function PortSideAssigner$lambda$6$Type(){ -} - -defineClass(1730, 1, $intern_88, PortSideAssigner$lambda$6$Type); -_.compare_1 = function compare_53(arg0, arg1){ - return lambda$6_0(castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_134(other){ - return this === other; -} -; -_.reversed = function reversed_45(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$6$Type', 1730); -function PortSideAssigner$lambda$7$Type(){ -} - -defineClass(1731, 1, $intern_88, PortSideAssigner$lambda$7$Type); -_.compare_1 = function compare_54(arg0, arg1){ - return lambda$7_2(castTo(arg0, 113), castTo(arg1, 113)); -} -; -_.equals_0 = function equals_135(other){ - return this === other; -} -; -_.reversed = function reversed_46(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$7$Type', 1731); -function PortSideAssigner$lambda$8$Type(){ -} - -defineClass(805, 1, $intern_39, PortSideAssigner$lambda$8$Type); -_.test_0 = function test_78(arg0){ - return castTo(arg0, 113).isHidden; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_ordering_PortSideAssigner$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$8$Type', 805); -defineClass(2009, 1, {}); -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_AbstractSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'AbstractSelfLoopRouter', 2009); -function $assignOneSidedSequencedSideAndAlignment(slLoops, portSide){ - var id_0, lPort, lPort$iterator, leftLoopAlignmentReference, leftSlLoop, leftSlLoopIdx, rightLoopAlignmentReference, rightSlLoop, rightSlLoopIdx; - id_0 = 0; - for (lPort$iterator = new ArrayList$1((checkCriticalElementIndex(0, slLoops.array.length) , castTo(slLoops.array[0], 101)).slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { - lPort = castTo($next_7(lPort$iterator), 11); - lPort.id_0 = id_0++; - } - portSide == ($clinit_PortSide() , NORTH_3)?$sort(slLoops, new LabelPlacer$lambda$0$Type_0):$sort(slLoops, new LabelPlacer$lambda$1$Type_0); - leftSlLoopIdx = 0; - rightSlLoopIdx = slLoops.array.length - 1; - while (leftSlLoopIdx < rightSlLoopIdx) { - leftSlLoop = (checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)); - rightSlLoop = (checkCriticalElementIndex(rightSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[rightSlLoopIdx], 101)); - leftLoopAlignmentReference = portSide == NORTH_3?leftSlLoop.rightmostPort:leftSlLoop.leftmostPort; - rightLoopAlignmentReference = portSide == NORTH_3?rightSlLoop.leftmostPort:rightSlLoop.rightmostPort; - $assignSideAndAlignment(leftSlLoop, portSide, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), leftLoopAlignmentReference); - $assignSideAndAlignment(rightSlLoop, portSide, LEFT_1, rightLoopAlignmentReference); - ++leftSlLoopIdx; - --rightSlLoopIdx; - } - leftSlLoopIdx == rightSlLoopIdx && $assignSideAndAlignment((checkCriticalElementIndex(leftSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[leftSlLoopIdx], 101)), portSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); -} - -function $assignOneSidedSimpleSideAndAlignment(slLoop, loopSide){ - var topmostPort; - switch (loopSide.ordinal) { - case 2: - case 4: - topmostPort = slLoop.leftmostPort; - slLoop.rightmostPort.lPort.pos.y_0 < topmostPort.lPort.pos.y_0 && (topmostPort = slLoop.rightmostPort); - $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , TOP_0), topmostPort); - break; - case 1: - case 3: - $assignSideAndAlignment(slLoop, loopSide, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); - } -} - -function $assignSideAndAlignment(slLoop, side, alignment, alignmentReference){ - var slLabels; - slLabels = slLoop.slLabels; - slLabels.side = side; - slLabels.alignment = alignment; - slLabels.alignmentReferenceSLPort = alignmentReference; -} - -function $assignSideAndAlignment_0(slHolder){ - var loopSide, northernOneSidedSLLoops, occupiedSides, orderingStrategy, slLabels, slLoop, slLoop$iterator, southernOneSidedSLLoops, leftmostPortSide, rightmostPortSide, leftmostPortSide_0, rightmostPortSide_0; - northernOneSidedSLLoops = null; - southernOneSidedSLLoops = null; - orderingStrategy = castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_ORDERING_0)), 376); - if (orderingStrategy == ($clinit_SelfLoopOrderingStrategy() , SEQUENCED)) { - northernOneSidedSLLoops = new ArrayList; - southernOneSidedSLLoops = new ArrayList; - } - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slLabels = slLoop.slLabels; - if (!slLabels) { - continue; - } - switch (slLoop.selfLoopType.ordinal) { - case 0: - loopSide = castTo($next_8(new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides)), 61); - orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , NORTH_3)?(northernOneSidedSLLoops.array[northernOneSidedSLLoops.array.length] = slLoop , true):orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , SOUTH_2)?(southernOneSidedSLLoops.array[southernOneSidedSLLoops.array.length] = slLoop , true):$assignOneSidedSimpleSideAndAlignment(slLoop, loopSide); - break; - case 1: - leftmostPortSide = slLoop.leftmostPort.lPort.side; - rightmostPortSide = slLoop.rightmostPort.lPort.side; - leftmostPortSide == ($clinit_PortSide() , NORTH_3)?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):rightmostPortSide == NORTH_3?$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):leftmostPortSide == SOUTH_2?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.leftmostPort):rightmostPortSide == SOUTH_2 && $assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.rightmostPort); - break; - case 2: - case 3: - occupiedSides = slLoop.occupiedPortSides; - $containsEnum(occupiedSides, ($clinit_PortSide() , NORTH_3))?$containsEnum(occupiedSides, SOUTH_2)?$containsEnum(occupiedSides, WEST_2)?$containsEnum(occupiedSides, EAST_2) || $assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , RIGHT_1), slLoop.rightmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , LEFT_1), slLoop.leftmostPort):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); - break; - case 4: - leftmostPortSide_0 = slLoop.leftmostPort.lPort.side; - rightmostPortSide_0 = slLoop.leftmostPort.lPort.side; - leftmostPortSide_0 == ($clinit_PortSide() , NORTH_3) || rightmostPortSide_0 == NORTH_3?$assignSideAndAlignment(slLoop, SOUTH_2, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null):$assignSideAndAlignment(slLoop, NORTH_3, ($clinit_SelfHyperLoopLabels$Alignment() , CENTER_2), null); - } - } - if (northernOneSidedSLLoops) { - northernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(northernOneSidedSLLoops, ($clinit_PortSide() , NORTH_3)); - southernOneSidedSLLoops.array.length == 0 || $assignOneSidedSequencedSideAndAlignment(southernOneSidedSLLoops, ($clinit_PortSide() , SOUTH_2)); - } -} - -function $computeCoordinates(slLoop){ - var alignRef, pos, size_0, slLabels; - slLabels = slLoop.slLabels; - alignRef = slLabels.alignmentReferenceSLPort; - size_0 = slLabels.size_0; - pos = slLabels.position; - switch (slLabels.alignment.ordinal) { - case 0: - pos.x_0 = (slLoop.slHolder.lNode.size_0.x_0 - size_0.x_0) / 2; - break; - case 1: - pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0; - break; - case 2: - pos.x_0 = alignRef.lPort.pos.x_0 + alignRef.lPort.anchor.x_0 - size_0.x_0; - break; - case 3: - pos.y_0 = alignRef.lPort.pos.y_0 + alignRef.lPort.anchor.y_0; - } -} - -function $placeLabels_1(slHolder){ - var slLoop, slLoop$iterator; - $assignSideAndAlignment_0(slHolder); - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - !!slLoop.slLabels && $computeCoordinates(slLoop); - } -} - -function lambda$0_25(slLoop1_0, slLoop2_1){ - return compare_5(slLoop1_0.leftmostPort.lPort.id_0, slLoop2_1.leftmostPort.lPort.id_0); -} - -function lambda$1_14(slLoop1_0, slLoop2_1){ - return compare_5(slLoop2_1.leftmostPort.lPort.id_0, slLoop1_0.leftmostPort.lPort.id_0); -} - -function LabelPlacer$lambda$0$Type_0(){ -} - -defineClass(1750, 1, $intern_88, LabelPlacer$lambda$0$Type_0); -_.compare_1 = function compare_55(arg0, arg1){ - return lambda$0_25(castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_136(other){ - return this === other; -} -; -_.reversed = function reversed_47(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$0$Type', 1750); -function LabelPlacer$lambda$1$Type_0(){ -} - -defineClass(1751, 1, $intern_88, LabelPlacer$lambda$1$Type_0); -_.compare_1 = function compare_56(arg0, arg1){ - return lambda$1_14(castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_137(other){ - return this === other; -} -; -_.reversed = function reversed_48(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$1$Type', 1751); -function $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints){ - var currPortSide, currPortSideComponent, lSourcePort, lTargetPort, nextPortSide, nextPortSideComponent, slLoop; - lSourcePort = slEdge.slSource.lPort; - lTargetPort = slEdge.slTarget.lPort; - if (lSourcePort.side == lTargetPort.side) { - return; - } - slLoop = slEdge.slHyperLoop; - currPortSide = lSourcePort.side; - nextPortSide = null; - while (currPortSide != lTargetPort.side) { - nextPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); - currPortSideComponent = $getBaseVector(currPortSide, slLoop.routingSlot[currPortSide.ordinal], routingSlotPositions); - nextPortSideComponent = $getBaseVector(nextPortSide, slLoop.routingSlot[nextPortSide.ordinal], routingSlotPositions); - $add_7(bendPoints, $add_19(currPortSideComponent, nextPortSideComponent)); - currPortSide = nextPortSide; - } -} - -function $addOuterBendPoint(slEdge, slPort, routingSlotPositions, bendPoints){ - var anchor, lPort, portSide, result, slLoop; - slLoop = slEdge.slHyperLoop; - lPort = slPort.lPort; - portSide = lPort.side; - result = $getBaseVector(portSide, slLoop.routingSlot[portSide.ordinal], routingSlotPositions); - anchor = $add_19($clone_0(lPort.pos), lPort.anchor); - switch (lPort.side.ordinal) { - case 1: - case 3: - result.x_0 += anchor.x_0; - break; - case 2: - case 4: - result.y_0 += anchor.y_0; - } - $addNode_0(bendPoints, result, bendPoints.tail.prev, bendPoints.tail); -} - -function $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance){ - var lMargins, lNode; - lNode = slHolder.lNode; - lMargins = lNode.margin; - switch (portSide.ordinal) { - case 1: - return -lMargins.top_0 - nodeSelfLoopDistance; - case 2: - return lNode.size_0.x_0 + lMargins.right + nodeSelfLoopDistance; - case 3: - return lNode.size_0.y_0 + lMargins.bottom + nodeSelfLoopDistance; - case 4: - return -lMargins.left - nodeSelfLoopDistance; - default:return -1; - } -} - -function $computeEdgeRoutingDirection(slEdge){ - var slLoop, sourceLPort, sourcePortSide, targetLPort, targetPortSide; - sourceLPort = slEdge.slSource.lPort; - sourcePortSide = sourceLPort.side; - targetLPort = slEdge.slTarget.lPort; - targetPortSide = targetLPort.side; - if (sourcePortSide == targetPortSide) { - return sourceLPort.id_0 < targetLPort.id_0?0:1; - } - else if ($right(sourcePortSide) == targetPortSide) { - return 0; - } - else if ($left(sourcePortSide) == targetPortSide) { - return 1; - } - else { - slLoop = slEdge.slHyperLoop; - return $containsEnum(slLoop.occupiedPortSides, $right(sourcePortSide))?0:1; - } -} - -function $computePositions(positions, slHolder, portSide, edgeEdgeDistance, edgeLabelDistance, nodeSelfLoopDistance){ - var currPos, factor, largestLabelSize, sidePositions, slot; - currPos = $computeBaselinePosition(slHolder, portSide, nodeSelfLoopDistance); - factor = portSide == ($clinit_PortSide() , NORTH_3) || portSide == WEST_2?-1:1; - sidePositions = positions[portSide.ordinal]; - for (slot = 0; slot < sidePositions.length; slot++) { - largestLabelSize = sidePositions[slot]; - largestLabelSize > 0 && (largestLabelSize += edgeLabelDistance); - sidePositions[slot] = currPos; - currPos += factor * (largestLabelSize + edgeEdgeDistance); - } -} - -function $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance){ - var portSide, portSide$array, portSide$index, portSide$max, positions; - positions = initUnidimensionalArray(D_classLit, $intern_16, 104, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 0, 2); - for (portSide$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]) , portSide$index = 0 , portSide$max = portSide$array.length; portSide$index < portSide$max; ++portSide$index) { - portSide = portSide$array[portSide$index]; - positions[portSide.ordinal] = initUnidimensionalArray(D_classLit, $intern_65, 25, slHolder.routingSlotCount[portSide.ordinal], 15, 1); - } - $initializeWithMaxLabelHeight(positions, slHolder, NORTH_3); - $initializeWithMaxLabelHeight(positions, slHolder, SOUTH_2); - $computePositions(positions, slHolder, NORTH_3, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - $computePositions(positions, slHolder, EAST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - $computePositions(positions, slHolder, SOUTH_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - $computePositions(positions, slHolder, WEST_2, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - return positions; -} - -function $getBaseVector(portSide, routingSlot, routingSlotPositions){ - var position; - position = routingSlotPositions[portSide.ordinal][routingSlot]; - switch (portSide.ordinal) { - case 1: - case 3: - return new KVector_1(0, position); - case 2: - case 4: - return new KVector_1(position, 0); - default:return null; - } -} - -function $initializeWithMaxLabelHeight(positions, slHolder, portSide){ - var routingSlot, sidePositions, slLabels, slLoop, slLoop$iterator; - sidePositions = positions[portSide.ordinal]; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slLabels = slLoop.slLabels; - if (!!slLabels && slLabels.side == portSide) { - routingSlot = slLoop.routingSlot[portSide.ordinal]; - sidePositions[routingSlot] = $wnd.Math.max(sidePositions[routingSlot], slLabels.size_0.y_0); - } - } -} - -function $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance){ - var labelPosition, labelSide; - labelSide = slLabels.side; - labelPosition = routingSlotPositions[labelSide.ordinal][slLoop.routingSlot[labelSide.ordinal]]; - switch (labelSide.ordinal) { - case 1: - labelPosition -= edgeLabelDistance + slLabels.size_0.y_0; - slLabels.position.y_0 = labelPosition; - break; - case 3: - labelPosition += edgeLabelDistance; - slLabels.position.y_0 = labelPosition; - break; - case 4: - labelPosition -= edgeLabelDistance + slLabels.size_0.x_0; - slLabels.position.x_0 = labelPosition; - break; - case 2: - labelPosition += edgeLabelDistance; - slLabels.position.x_0 = labelPosition; - } -} - -function $routeSelfLoops(this$static, slHolder){ - var bendPoints, edgeEdgeDistance, edgeLabelDistance, lEdge, lNode, newNodeMargins, nodeMargins, nodeSLDistance, nodeSize, routingDirection, routingSlotPositions, slEdge, slEdge$iterator, slLabels, slLoop, slLoop$iterator, bendPoints_0, pos; - lNode = slHolder.lNode; - nodeSize = lNode.size_0; - nodeMargins = lNode.margin; - edgeEdgeDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_EDGE_LABEL_0))); - nodeSLDistance = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_NODE_SELF_LOOP))); - newNodeMargins = new LMargin; - $set_7(newNodeMargins, nodeMargins.top_0, nodeMargins.right, nodeMargins.bottom, nodeMargins.left); - routingSlotPositions = $computeRoutingSlotPositions(slHolder, edgeEdgeDistance, edgeLabelDistance, nodeSLDistance); - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - for (slEdge$iterator = slLoop.slEdges.map_0.keySet_0().iterator_0(); slEdge$iterator.hasNext_0();) { - slEdge = castTo(slEdge$iterator.next_1(), 409); - lEdge = slEdge.lEdge; - routingDirection = $computeEdgeRoutingDirection(slEdge); - bendPoints = (bendPoints_0 = new KVectorChain , $addOuterBendPoint(slEdge, slEdge.slSource, routingSlotPositions, bendPoints_0) , $addCornerBendPoints(slEdge, routingDirection, routingSlotPositions, bendPoints_0) , $addOuterBendPoint(slEdge, slEdge.slTarget, routingSlotPositions, bendPoints_0) , bendPoints_0); - bendPoints = this$static.modifyBendPoints(slEdge, routingDirection, bendPoints); - $reset_0(lEdge.bendPoints); - $addAll(lEdge.bendPoints, bendPoints); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(bendPoints, 16)), new OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize, newNodeMargins)); - } - slLabels = slLoop.slLabels; - if (slLabels) { - $placeLabels_2(slLoop, slLabels, routingSlotPositions, edgeLabelDistance); - pos = new KVector_2(slLabels.position); - $updateNewNodeMargins(nodeSize, newNodeMargins, pos); - $add_19(pos, slLabels.size_0); - $updateNewNodeMargins(nodeSize, newNodeMargins, pos); - } - } - $set_7(nodeMargins, newNodeMargins.top_0, newNodeMargins.right, newNodeMargins.bottom, newNodeMargins.left); -} - -function $updateNewNodeMargins(nodeSize, newNodeMargins, bendPoint){ - newNodeMargins.left = $wnd.Math.max(newNodeMargins.left, -bendPoint.x_0); - newNodeMargins.right = $wnd.Math.max(newNodeMargins.right, bendPoint.x_0 - nodeSize.x_0); - newNodeMargins.top_0 = $wnd.Math.max(newNodeMargins.top_0, -bendPoint.y_0); - newNodeMargins.bottom = $wnd.Math.max(newNodeMargins.bottom, bendPoint.y_0 - nodeSize.y_0); -} - -function OrthogonalSelfLoopRouter(){ -} - -defineClass(1793, 2009, {}, OrthogonalSelfLoopRouter); -_.modifyBendPoints = function modifyBendPoints(slEdge, routingDirection, bendPoints){ - return bendPoints; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter', 1793); -function OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize_1, newNodeMargins_2){ - this.nodeSize_1 = nodeSize_1; - this.newNodeMargins_2 = newNodeMargins_2; -} - -defineClass(1795, 1, $intern_19, OrthogonalSelfLoopRouter$lambda$0$Type); -_.accept = function accept_111(arg0){ - $updateNewNodeMargins(this.nodeSize_1, this.newNodeMargins_2, castTo(arg0, 8)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_OrthogonalSelfLoopRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'OrthogonalSelfLoopRouter/lambda$0$Type', 1795); -function $cutCorners(bendPoints){ - var bpIterator, corner, effectiveDistance, next, offset1, offset2, previous, result; - result = new KVectorChain; - bpIterator = $listIterator_2(bendPoints, 0); - previous = null; - corner = castTo($next_10(bpIterator), 8); - next = castTo($next_10(bpIterator), 8); - while (bpIterator.currentNode != bpIterator.this$01.tail) { - previous = corner; - corner = next; - next = castTo($next_10(bpIterator), 8); - offset1 = $nearZeroToZero($sub_0(new KVector_1(previous.x_0, previous.y_0), corner)); - offset2 = $nearZeroToZero($sub_0(new KVector_1(next.x_0, next.y_0), corner)); - effectiveDistance = 10; - effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset1.x_0 + offset1.y_0) / 2); - effectiveDistance = $wnd.Math.min(effectiveDistance, $wnd.Math.abs(offset2.x_0 + offset2.y_0) / 2); - offset1.x_0 = signum(offset1.x_0) * effectiveDistance; - offset1.y_0 = signum(offset1.y_0) * effectiveDistance; - offset2.x_0 = signum(offset2.x_0) * effectiveDistance; - offset2.y_0 = signum(offset2.y_0) * effectiveDistance; - $add_7(result, $add_19(offset1, corner)); - $add_7(result, $add_19(offset2, corner)); - } - return result; -} - -function $nearZeroToZero(vector){ - vector.x_0 >= -0.01 && vector.x_0 <= $intern_94 && (vector.x_0 = 0); - vector.y_0 >= -0.01 && vector.y_0 <= $intern_94 && (vector.y_0 = 0); - return vector; -} - -function PolylineSelfLoopRouter(){ -} - -defineClass(1794, 1793, {}, PolylineSelfLoopRouter); -_.modifyBendPoints = function modifyBendPoints_0(slEdge, routingDirection, bendPoints){ - var lSourcePort, lTargetPort; - lSourcePort = slEdge.slSource.lPort; - $add_0(bendPoints, 0, $add_19($clone_0(lSourcePort.pos), lSourcePort.anchor)); - lTargetPort = slEdge.slTarget.lPort; - $add_7(bendPoints, $add_19($clone_0(lTargetPort.pos), lTargetPort.anchor)); - return $cutCorners(bendPoints); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_PolylineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'PolylineSelfLoopRouter', 1794); -function $clinit_RoutingDirector(){ - $clinit_RoutingDirector = emptyMethod; - COMPARE_BY_ID = new RoutingDirector$lambda$0$Type; -} - -function $assignPortIds(lPorts){ - var i; - for (i = 0; i < lPorts.array.length; i++) { - (checkCriticalElementIndex(i, lPorts.array.length) , castTo(lPorts.array[i], 11)).id_0 = i; - } -} - -function $computeEdgePenalty(this$static, slHolder, leftmostPort, rightmostPort){ - var leftOfRightmostPortId, leftmostPortId, portCount, rightmostPortId; - this$static.portPenalties == null && $computePenalties(this$static, slHolder); - portCount = slHolder.lNode.ports.array.length; - leftmostPortId = leftmostPort.lPort.id_0; - rightmostPortId = rightmostPort.lPort.id_0; - leftOfRightmostPortId = rightmostPortId - 1; - leftOfRightmostPortId < 0 && (leftOfRightmostPortId = portCount - 1); - return leftmostPortId <= leftOfRightmostPortId?this$static.portPenalties[leftOfRightmostPortId] - this$static.portPenalties[leftmostPortId]:this$static.portPenalties[portCount - 1] - this$static.portPenalties[leftmostPortId] + this$static.portPenalties[leftOfRightmostPortId]; -} - -function $computeMissingPortSide(slLoop){ - var side, side$array, side$index, side$max, sides; - sides = $keySet(slLoop.slPortsBySide); - for (side$array = ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])) , side$index = 0 , side$max = side$array.length; side$index < side$max; ++side$index) { - side = side$array[side$index]; - if (side != UNDEFINED_5 && !sides.contains(side)) { - return side; - } - } - return null; -} - -function $computeOccupiedPortSides(slLoop){ - var currPortSide, targetSide; - currPortSide = slLoop.leftmostPort.lPort.side; - targetSide = slLoop.rightmostPort.lPort.side; - while (currPortSide != targetSide) { - $add_5(slLoop.occupiedPortSides, currPortSide); - currPortSide = $right(currPortSide); - } - $add_5(slLoop.occupiedPortSides, currPortSide); -} - -function $computePenalties(this$static, slHolder){ - var currPort, i, penaltySum, ports; - ports = slHolder.lNode.ports; - this$static.portPenalties = initUnidimensionalArray(I_classLit, $intern_48, 25, ports.array.length, 15, 1); - penaltySum = 0; - for (i = 0; i < ports.array.length; i++) { - currPort = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); - currPort.incomingEdges.array.length == 0 && currPort.outgoingEdges.array.length == 0?(penaltySum += 1):(penaltySum += 3); - this$static.portPenalties[i] = penaltySum; - } -} - -function $determineFourSideLoopRoutes(this$static, slLoop){ - var currLeftPort, currPenalty, currRightPort, rightPortIndex, slHolder, sortedSLPorts, worstLeftPort, worstPenalty, worstRightPort; - sortedSLPorts = slLoop.slPorts; - slHolder = slLoop.slHolder; - worstLeftPort = castTo($get_11(sortedSLPorts, sortedSLPorts.array.length - 1), 113); - worstRightPort = (checkCriticalElementIndex(0, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[0], 113)); - worstPenalty = $computeEdgePenalty(this$static, slHolder, worstLeftPort, worstRightPort); - for (rightPortIndex = 1; rightPortIndex < sortedSLPorts.array.length; rightPortIndex++) { - currLeftPort = (checkCriticalElementIndex(rightPortIndex - 1, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex - 1], 113)); - currRightPort = (checkCriticalElementIndex(rightPortIndex, sortedSLPorts.array.length) , castTo(sortedSLPorts.array[rightPortIndex], 113)); - currPenalty = $computeEdgePenalty(this$static, slHolder, currLeftPort, currRightPort); - if (currPenalty > worstPenalty) { - worstLeftPort = currLeftPort; - worstRightPort = currRightPort; - worstPenalty = currPenalty; - } - } - slLoop.leftmostPort = worstRightPort; - slLoop.rightmostPort = worstLeftPort; -} - -function $determineLoopRoutes(this$static, slHolder){ - var side, sides, slLoop, slLoop$iterator; - $assignPortIds(slHolder.lNode.ports); - $forEach_3($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingDirector$lambda$1$Type), new RoutingDirector$lambda$2$Type); - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - switch (slLoop.selfLoopType.ordinal) { - case 0: - side = castTo($get_11(slLoop.slPorts, 0), 113).lPort.side; - $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); - $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113)); - break; - case 1: - sides = sortedTwoSideLoopPortSides(slLoop); - $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, sides[0]), 15).stream(), COMPARE_BY_ID)), 113)); - $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, sides[1]), 15).stream(), COMPARE_BY_ID)), 113)); - break; - case 2: - $determineTwoSideOpposingLoopRoutes(this$static, slLoop); - break; - case 3: - $determineThreeSideLoopRoutes(slLoop); - break; - case 4: - $determineFourSideLoopRoutes(this$static, slLoop); - } - $computeOccupiedPortSides(slLoop); - } - this$static.portPenalties = null; -} - -function $determineThreeSideLoopRoutes(slLoop){ - var leftmostSide, rightmostSide; - leftmostSide = null; - rightmostSide = null; - switch ($computeMissingPortSide(slLoop).ordinal) { - case 1: - leftmostSide = ($clinit_PortSide() , EAST_2); - rightmostSide = WEST_2; - break; - case 2: - leftmostSide = ($clinit_PortSide() , SOUTH_2); - rightmostSide = NORTH_3; - break; - case 3: - leftmostSide = ($clinit_PortSide() , WEST_2); - rightmostSide = EAST_2; - break; - case 4: - leftmostSide = ($clinit_PortSide() , NORTH_3); - rightmostSide = SOUTH_2; - } - $setLeftmostPort(slLoop, castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, leftmostSide), 15).stream(), COMPARE_BY_ID)), 113)); - $setRightmostPort(slLoop, castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, rightmostSide), 15).stream(), COMPARE_BY_ID)), 113)); -} - -function $determineTwoSideOpposingLoopRoutes(this$static, slLoop){ - var option1LeftmostPort, option1Penalty, option1RightmostPort, option2LeftmostPort, option2Penalty, option2RightmostPort, sides, slHolder; - sides = castTo($toArray_0($keySet(slLoop.slPortsBySide), initUnidimensionalArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, $intern_103, 61, 2, 0, 1)), 122); - slHolder = slLoop.slHolder; - option1LeftmostPort = $lowestPortOnSide(slLoop, sides[0]); - option1RightmostPort = $highestPortOnSide(slLoop, sides[1]); - option1Penalty = $computeEdgePenalty(this$static, slHolder, option1LeftmostPort, option1RightmostPort); - option2LeftmostPort = $lowestPortOnSide(slLoop, sides[1]); - option2RightmostPort = $highestPortOnSide(slLoop, sides[0]); - option2Penalty = $computeEdgePenalty(this$static, slHolder, option2LeftmostPort, option2RightmostPort); - if (option1Penalty <= option2Penalty) { - slLoop.leftmostPort = option1LeftmostPort; - slLoop.rightmostPort = option1RightmostPort; - } - else { - slLoop.leftmostPort = option2LeftmostPort; - slLoop.rightmostPort = option2RightmostPort; - } -} - -function $highestPortOnSide(slLoop, side){ - return castTo($get_17($max_1(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); -} - -function $lowestPortOnSide(slLoop, side){ - return castTo($get_17($min_0(castTo($get(slLoop.slPortsBySide, side), 15).stream(), COMPARE_BY_ID)), 113); -} - -function RoutingDirector(){ - $clinit_RoutingDirector(); -} - -function lambda$0_26(slPort1_0, slPort2_1){ - $clinit_RoutingDirector(); - return compare_5(slPort1_0.lPort.id_0, slPort2_1.lPort.id_0); -} - -defineClass(1746, 1, {}, RoutingDirector); -_.portPenalties = null; -var COMPARE_BY_ID; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector', 1746); -function RoutingDirector$lambda$0$Type(){ -} - -defineClass(1747, 1, $intern_88, RoutingDirector$lambda$0$Type); -_.compare_1 = function compare_57(arg0, arg1){ - return lambda$0_26(castTo(arg0, 113), castTo(arg1, 113)); -} -; -_.equals_0 = function equals_138(other){ - return this === other; -} -; -_.reversed = function reversed_49(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$0$Type', 1747); -function RoutingDirector$lambda$1$Type(){ -} - -defineClass(1748, 1, {}, RoutingDirector$lambda$1$Type); -_.apply_0 = function apply_127(arg0){ - return $clinit_RoutingDirector() , castTo(arg0, 101).slPorts; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$1$Type', 1748); -function RoutingDirector$lambda$2$Type(){ -} - -defineClass(1749, 1, $intern_19, RoutingDirector$lambda$2$Type); -_.accept = function accept_112(arg0){ - $clinit_RoutingDirector(); - castTo(arg0, 15).sort_0(COMPARE_BY_ID); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingDirector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$2$Type', 1749); -function $assignRawRoutingSlotsToLoops(this$static, slHolder){ - var portSide, portSide$iterator, slLoop, slLoop$iterator, slot; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - slot = castTo($get_10(this$static.slLoopToSegmentMap, slLoop), 112).routingSlot; - for (portSide$iterator = new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides); portSide$iterator.i < portSide$iterator.this$11.all.length;) { - portSide = castTo($next_8(portSide$iterator), 61); - $setRoutingSlot(slLoop, portSide, slot); - } - } -} - -function $assignRawRoutingSlotsToSegments(this$static){ - var inDependency, inDependency$iterator, nextRoutingSlot, segment, segment$iterator, sinks, sourceSegment; - sinks = new LinkedList; - for (segment$iterator = new ArrayList$1(this$static.hyperEdgeSegments); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 112); - $setInWeight(segment, segment.incomingSegmentDependencies.array.length); - $setOutWeight(segment, segment.outgoingSegmentDependencies.array.length); - if (segment.outDepWeight == 0) { - segment.routingSlot = 0; - $addNode_0(sinks, segment, sinks.tail.prev, sinks.tail); - } - } - while (sinks.size_0 != 0) { - segment = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 112); - nextRoutingSlot = segment.routingSlot + 1; - for (inDependency$iterator = new ArrayList$1(segment.incomingSegmentDependencies); inDependency$iterator.i < inDependency$iterator.this$01.array.length;) { - inDependency = castTo($next_7(inDependency$iterator), 129); - sourceSegment = inDependency.source; - $setRoutingSlot_0(sourceSegment, $wnd.Math.max(sourceSegment.routingSlot, nextRoutingSlot)); - $setOutWeight(sourceSegment, sourceSegment.outDepWeight - 1); - sourceSegment.outDepWeight == 0 && ($addNode_0(sinks, sourceSegment, sinks.tail.prev, sinks.tail) , true); - } - } -} - -function $assignRoutingSlots(this$static, slHolder){ - var labelCrossingMatrix, nextFreeRoutingSlotAtPort; - labelCrossingMatrix = $computeLabelCrossingMatrix(slHolder); - $createCrossingGraph(this$static, slHolder, labelCrossingMatrix); - breakNonCriticalCycles(this$static.hyperEdgeSegments, castTo($getProperty($getGraph(slHolder.lNode), ($clinit_InternalProperties_1() , RANDOM_0)), 230)); - $assignRawRoutingSlotsToSegments(this$static); - $assignRawRoutingSlotsToLoops(this$static, slHolder); - nextFreeRoutingSlotAtPort = initUnidimensionalArray(I_classLit, $intern_48, 25, slHolder.lNode.ports.array.length, 15, 1); - $shiftTowardsNodeOnSide(this$static, slHolder, ($clinit_PortSide() , NORTH_3), nextFreeRoutingSlotAtPort, labelCrossingMatrix); - $shiftTowardsNodeOnSide(this$static, slHolder, EAST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); - $shiftTowardsNodeOnSide(this$static, slHolder, SOUTH_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); - $shiftTowardsNodeOnSide(this$static, slHolder, WEST_2, nextFreeRoutingSlotAtPort, labelCrossingMatrix); - this$static.hyperEdgeSegments = null; - this$static.slLoopToSegmentMap = null; - this$static.slLoopActivityOverPorts = null; -} - -function $computeLabelCrossingMatrix(slHolder){ - var crossingMatrix, labelID, overlap, sl1Idx, sl2Idx, slLoop, slLoop$iterator, slLoop1, slLoop2, slLoops; - labelID = 0; - for (slLoop$iterator = new ArrayList$1(slHolder.slHyperLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - !!slLoop.slLabels && (slLoop.slLabels.id_0 = labelID++); - } - crossingMatrix = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 16, [labelID, labelID], 2); - slLoops = slHolder.slHyperLoops; - for (sl1Idx = 0; sl1Idx < slLoops.array.length; sl1Idx++) { - slLoop1 = (checkCriticalElementIndex(sl1Idx, slLoops.array.length) , castTo(slLoops.array[sl1Idx], 101)); - if (slLoop1.slLabels) { - for (sl2Idx = sl1Idx + 1; sl2Idx < slLoops.array.length; sl2Idx++) { - slLoop2 = (checkCriticalElementIndex(sl2Idx, slLoops.array.length) , castTo(slLoops.array[sl2Idx], 101)); - if (slLoop2.slLabels) { - overlap = $labelsOverlap(slLoop1, slLoop2); - crossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0] = overlap; - crossingMatrix[slLoop2.slLabels.id_0][slLoop1.slLabels.id_0] = overlap; - } - } - } - } - return crossingMatrix; -} - -function $computeLoopActivity(this$static, slHolder){ - var lPortIdx, lPortTargetIdx, lPorts, loopActivity, slLoop, slLoop$iterator, slLoops; - slLoops = slHolder.slHyperLoops; - lPorts = slHolder.lNode.ports; - for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - loopActivity = initUnidimensionalArray(Z_classLit, $intern_91, 25, lPorts.array.length, 16, 1); - $put_6(this$static.slLoopActivityOverPorts, slLoop, loopActivity); - lPortIdx = slLoop.leftmostPort.lPort.id_0 - 1; - lPortTargetIdx = slLoop.rightmostPort.lPort.id_0; - while (lPortIdx != lPortTargetIdx) { - lPortIdx = (lPortIdx + 1) % lPorts.array.length; - loopActivity[lPortIdx] = true; - } - } -} - -function $countCrossings_0(this$static, slUpperLoop, slLowerLoop){ - var crossings, lowerLoopActivity, slPort, slPort$iterator; - lowerLoopActivity = castTo($get_10(this$static.slLoopActivityOverPorts, slLowerLoop), 177); - crossings = 0; - for (slPort$iterator = new ArrayList$1(slUpperLoop.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { - slPort = castTo($next_7(slPort$iterator), 113); - lowerLoopActivity[slPort.lPort.id_0] && ++crossings; - } - return crossings; -} - -function $createCrossingGraph(this$static, slHolder, labelCrossingMatrix){ - var firstIdx, secondIdx, segment, slLoop, slLoop$iterator, slLoop1, slLoops; - slLoops = slHolder.slHyperLoops; - this$static.hyperEdgeSegments = new ArrayList_0(slLoops.array.length); - this$static.slLoopToSegmentMap = new HashMap; - for (slLoop$iterator = new ArrayList$1(slLoops); slLoop$iterator.i < slLoop$iterator.this$01.array.length;) { - slLoop = castTo($next_7(slLoop$iterator), 101); - segment = new HyperEdgeSegment(null); - $add_3(this$static.hyperEdgeSegments, segment); - $put_6(this$static.slLoopToSegmentMap, slLoop, segment); - } - this$static.slLoopActivityOverPorts = new HashMap; - $computeLoopActivity(this$static, slHolder); - for (firstIdx = 0; firstIdx < slLoops.array.length - 1; firstIdx++) { - slLoop1 = castTo($get_11(slHolder.slHyperLoops, firstIdx), 101); - for (secondIdx = firstIdx + 1; secondIdx < slLoops.array.length; secondIdx++) { - $createDependencies(this$static, slLoop1, castTo($get_11(slHolder.slHyperLoops, secondIdx), 101), labelCrossingMatrix); - } - } -} - -function $createDependencies(this$static, slLoop1, slLoop2, labelCrossingMatrix){ - var firstAboveSecondCrossings, secondAboveFirstCrossings, segment1, segment2; - firstAboveSecondCrossings = $countCrossings_0(this$static, slLoop1, slLoop2); - secondAboveFirstCrossings = $countCrossings_0(this$static, slLoop2, slLoop1); - segment1 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop1), 112); - segment2 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop2), 112); - if (firstAboveSecondCrossings < secondAboveFirstCrossings) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, secondAboveFirstCrossings - firstAboveSecondCrossings); - } - else if (secondAboveFirstCrossings < firstAboveSecondCrossings) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment2, segment1, firstAboveSecondCrossings - secondAboveFirstCrossings); - } - else if (firstAboveSecondCrossings != 0 || !(!slLoop1.slLabels || !slLoop2.slLabels) && labelCrossingMatrix[slLoop1.slLabels.id_0][slLoop2.slLabels.id_0]) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), segment1, segment2, 0); - new HyperEdgeSegmentDependency(REGULAR, segment2, segment1, 0); - } -} - -function $labelsOverlap(slLoop1, slLoop2){ - var end1, end2, slLabels1, slLabels2, start1, start2; - slLabels1 = slLoop1.slLabels; - slLabels2 = slLoop2.slLabels; - if (!slLabels1 || !slLabels2) { - return false; - } - if (slLabels1.side != slLabels2.side || slLabels1.side == ($clinit_PortSide() , EAST_2) || slLabels1.side == ($clinit_PortSide() , WEST_2)) { - return false; - } - start1 = slLabels1.position.x_0; - end1 = start1 + slLabels1.size_0.x_0; - start2 = slLabels2.position.x_0; - end2 = start2 + slLabels2.size_0.x_0; - return start1 <= end2 && end1 >= start2; -} - -function $shiftTowardsNodeOnSide(this$static, slHolder, side, nextFreeRoutingSlotAtPort, labelCrossingMatrix){ - var activeAtPort, i, lPort, lPort$iterator, lowestAvailableSlot, maxLPortIndex, minLPortIndex, otherLabelIdx, ourLabelIdx, portIndex, portIndex0, slLoop, slLoop$iterator, slLoops, slotAssignedToLabel, slotsWithLabelConflicts; - slLoops = castTo($collect_1($sorted_1($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(slHolder.slHyperLoops, 16)), new RoutingSlotAssigner$lambda$0$Type(side)), new RoutingSlotAssigner$lambda$1$Type(side)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - minLPortIndex = $intern_0; - maxLPortIndex = $intern_42; - for (lPort$iterator = new ArrayList$1(slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { - lPort = castTo($next_7(lPort$iterator), 11); - if (lPort.side == side) { - minLPortIndex = $wnd.Math.min(minLPortIndex, lPort.id_0); - maxLPortIndex = $wnd.Math.max(maxLPortIndex, lPort.id_0); - } - } - if (minLPortIndex == $intern_0) { - for (i = 0; i < slLoops.size_1(); i++) { - $setRoutingSlot(castTo(slLoops.get_0(i), 101), side, i); - } - } - else { - slotAssignedToLabel = initUnidimensionalArray(I_classLit, $intern_48, 25, labelCrossingMatrix.length, 15, 1); - fill0_1(slotAssignedToLabel, slotAssignedToLabel.length); - for (slLoop$iterator = slLoops.iterator_0(); slLoop$iterator.hasNext_0();) { - slLoop = castTo(slLoop$iterator.next_1(), 101); - activeAtPort = castTo($get_10(this$static.slLoopActivityOverPorts, slLoop), 177); - lowestAvailableSlot = 0; - for (portIndex0 = minLPortIndex; portIndex0 <= maxLPortIndex; portIndex0++) { - activeAtPort[portIndex0] && (lowestAvailableSlot = $wnd.Math.max(lowestAvailableSlot, nextFreeRoutingSlotAtPort[portIndex0])); - } - if (slLoop.slLabels) { - ourLabelIdx = slLoop.slLabels.id_0; - slotsWithLabelConflicts = new HashSet; - for (otherLabelIdx = 0; otherLabelIdx < labelCrossingMatrix.length; otherLabelIdx++) { - labelCrossingMatrix[ourLabelIdx][otherLabelIdx] && $add_6(slotsWithLabelConflicts, valueOf_4(slotAssignedToLabel[otherLabelIdx])); - } - while ($contains_6(slotsWithLabelConflicts, valueOf_4(lowestAvailableSlot))) { - ++lowestAvailableSlot; - } - } - $setRoutingSlot(slLoop, side, lowestAvailableSlot); - for (portIndex = minLPortIndex; portIndex <= maxLPortIndex; portIndex++) { - activeAtPort[portIndex] && (nextFreeRoutingSlotAtPort[portIndex] = lowestAvailableSlot + 1); - } - !!slLoop.slLabels && (slotAssignedToLabel[slLoop.slLabels.id_0] = lowestAvailableSlot); - } - } -} - -function RoutingSlotAssigner(){ -} - -function lambda$0_27(side_0, slLoop_1){ - return $containsEnum(slLoop_1.occupiedPortSides, side_0); -} - -function lambda$1_15(side_0, sl1_1, sl2_2){ - return compare_5(sl1_1.routingSlot[side_0.ordinal], sl2_2.routingSlot[side_0.ordinal]); -} - -defineClass(1752, 1, {}, RoutingSlotAssigner); -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner', 1752); -function RoutingSlotAssigner$lambda$0$Type(side_0){ - this.side_0 = side_0; -} - -defineClass(1753, 1, $intern_39, RoutingSlotAssigner$lambda$0$Type); -_.test_0 = function test_79(arg0){ - return lambda$0_27(this.side_0, castTo(arg0, 101)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$0$Type', 1753); -function RoutingSlotAssigner$lambda$1$Type(side_0){ - this.side_0 = side_0; -} - -defineClass(1754, 1, $intern_88, RoutingSlotAssigner$lambda$1$Type); -_.compare_1 = function compare_58(arg0, arg1){ - return lambda$1_15(this.side_0, castTo(arg0, 101), castTo(arg1, 101)); -} -; -_.equals_0 = function equals_139(other){ - return this === other; -} -; -_.reversed = function reversed_50(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$1$Type', 1754); -function $addSplineControlPoints(slEdge, routingDirection, orthoBendPoints, newBendPoints, edgeLabelDistance){ - var currPortSide, firstBP, midBP, offset, secondBP, secondBPIndex; - currPortSide = slEdge.slSource.lPort.side; - firstBP = castTo($get_7(orthoBendPoints, 0), 8); - for (secondBPIndex = 1; secondBPIndex < orthoBendPoints.size_0; secondBPIndex++) { - secondBP = castTo($get_7(orthoBendPoints, secondBPIndex), 8); - $addNode_0(newBendPoints, firstBP, newBendPoints.tail.prev, newBendPoints.tail); - midBP = $scale($add_19(new KVector_2(firstBP), secondBP), 0.5); - offset = $scale(new KVector_0(portSideToDirection(currPortSide)), edgeLabelDistance); - $add_19(midBP, offset); - $addNode_0(newBendPoints, midBP, newBendPoints.tail.prev, newBendPoints.tail); - firstBP = secondBP; - currPortSide = routingDirection == 0?$right(currPortSide):$left(currPortSide); - } - $add_7(newBendPoints, (checkCriticalElement(orthoBendPoints.size_0 != 0) , castTo(orthoBendPoints.tail.prev.value_0, 8))); -} - -function SplineSelfLoopRouter(){ -} - -defineClass(1796, 1793, {}, SplineSelfLoopRouter); -_.modifyBendPoints = function modifyBendPoints_1(slEdge, routingDirection, bendPoints){ - var edgeLabelDistance, lPort, lPort0, splineBendPoints; - edgeLabelDistance = $doubleValue(castToDouble(getIndividualOrInherited(slEdge.slHyperLoop.slHolder.lNode, ($clinit_LayeredOptions() , SPACING_EDGE_LABEL_0)))); - splineBendPoints = new KVectorChain_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [(lPort0 = slEdge.slSource.lPort , $add_19(new KVector_2(lPort0.pos), lPort0.anchor))])); - $addSplineControlPoints(slEdge, routingDirection, bendPoints, splineBendPoints, edgeLabelDistance); - $add_7(splineBendPoints, (lPort = slEdge.slTarget.lPort , $add_19(new KVector_2(lPort.pos), lPort.anchor))); - return $getBezierCP(new NubSpline(splineBendPoints)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_SplineSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'SplineSelfLoopRouter', 1796); -function $compare_15(this$static, n1, n2){ - var n1ModelOrder, n1ModelOrder0, n2ModelOrder, n2ModelOrder0, p1Node, p1SourcePort, p2Node, p2SourcePort, port, port$iterator, previousNode, previousNode$array, previousNode$index, previousNode$max; - if ($containsKey_3(this$static.biggerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { - return 1; - } - } - else { - $put_6(this$static.biggerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.biggerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { - return -1; - } - } - else { - $put_6(this$static.biggerThan, n2, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { - return -1; - } - } - else { - $put_6(this$static.smallerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { - return 1; - } - } - else { - $put_6(this$static.smallerThan, n2, new HashSet); - } - if (this$static.orderingStrategy == ($clinit_OrderingStrategy() , PREFER_EDGES) || !$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, ($clinit_InternalProperties_1() , MODEL_ORDER_0))) { - p1SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n1.ports, 16)), new ModelOrderNodeComparator$lambda$0$Type)), new ModelOrderNodeComparator$lambda$1$Type)), 11); - p2SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n2.ports, 16)), new ModelOrderNodeComparator$lambda$2$Type)), new ModelOrderNodeComparator$lambda$3$Type)), 11); - if (!!p1SourcePort && !!p2SourcePort) { - p1Node = p1SourcePort.owner; - p2Node = p2SourcePort.owner; - if (!!p1Node && p1Node == p2Node) { - for (port$iterator = new ArrayList$1(p1Node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (port == p1SourcePort) { - $updateBiggerAndSmallerAssociations(this$static, n2, n1); - return -1; - } - else if (port == p2SourcePort) { - $updateBiggerAndSmallerAssociations(this$static, n1, n2); - return 1; - } - } - return compare_5($getModelOrderFromConnectedEdges(this$static, n1), $getModelOrderFromConnectedEdges(this$static, n2)); - } - for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { - previousNode = previousNode$array[previousNode$index]; - if (previousNode == p1Node) { - $updateBiggerAndSmallerAssociations(this$static, n2, n1); - return -1; - } - else if (previousNode == p2Node) { - $updateBiggerAndSmallerAssociations(this$static, n1, n2); - return 1; - } - } - } - if (!$hasProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) || !$hasProperty(n2, MODEL_ORDER_0)) { - n1ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n1); - n2ModelOrder0 = $getModelOrderFromConnectedEdges(this$static, n2); - n1ModelOrder0 > n2ModelOrder0?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); - return n1ModelOrder0 < n2ModelOrder0?-1:n1ModelOrder0 > n2ModelOrder0?1:0; - } - } - n1ModelOrder = castTo($getProperty(n1, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; - n2ModelOrder = castTo($getProperty(n2, MODEL_ORDER_0), 19).value_0; - n1ModelOrder > n2ModelOrder?$updateBiggerAndSmallerAssociations(this$static, n1, n2):$updateBiggerAndSmallerAssociations(this$static, n2, n1); - return n1ModelOrder < n2ModelOrder?-1:n1ModelOrder > n2ModelOrder?1:0; -} - -function $getModelOrderFromConnectedEdges(this$static, n){ - var edge, sourcePort; - sourcePort = castTo($orElse($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n.ports, 16)), new ModelOrderNodeComparator$lambda$4$Type))), 11); - if (sourcePort) { - edge = castTo($get_11(sourcePort.incomingEdges, 0), 17); - if (edge) { - return castTo($getProperty(edge, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0; - } - } - return $returnValue(this$static.longEdgeNodeOrder); -} - -function $updateBiggerAndSmallerAssociations(this$static, bigger, smaller){ - var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; - biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); - smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); - biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); - smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); - biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); - smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); - for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { - verySmall = castTo(verySmall$iterator.next_1(), 10); - biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); - $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); - $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); - } - for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { - veryBig = castTo(veryBig$iterator.next_1(), 10); - smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); - $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); - $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); - } -} - -function ModelOrderNodeComparator(thePreviousLayer, orderingStrategy, longEdgeOrderingStrategy){ - ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); - this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, thePreviousLayer.nodes.array.length, 0, 1); - $toArray_2(thePreviousLayer.nodes, this.previousLayer); -} - -function ModelOrderNodeComparator_0(orderingStrategy, longEdgeOrderingStrategy){ - this.biggerThan = new HashMap; - this.smallerThan = new HashMap; - this.longEdgeNodeOrder = ($clinit_LongEdgeOrderingStrategy() , EQUAL); - this.orderingStrategy = orderingStrategy; - this.longEdgeNodeOrder = longEdgeOrderingStrategy; -} - -function ModelOrderNodeComparator_1(previousLayer, orderingStrategy, longEdgeOrderingStrategy){ - ModelOrderNodeComparator_0.call(this, orderingStrategy, longEdgeOrderingStrategy); - this.previousLayer = previousLayer; -} - -defineClass(578, 1, $intern_88, ModelOrderNodeComparator, ModelOrderNodeComparator_1); -_.compare_1 = function compare_59(n1, n2){ - return $compare_15(this, castTo(n1, 10), castTo(n2, 10)); -} -; -_.equals_0 = function equals_140(other){ - return this === other; -} -; -_.reversed = function reversed_51(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator', 578); -function ModelOrderNodeComparator$lambda$0$Type(){ -} - -defineClass(1755, 1, $intern_39, ModelOrderNodeComparator$lambda$0$Type); -_.test_0 = function test_80(arg0){ - return castTo(arg0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$0$Type', 1755); -function ModelOrderNodeComparator$lambda$1$Type(){ -} - -defineClass(1756, 1, {}, ModelOrderNodeComparator$lambda$1$Type); -_.apply_0 = function apply_128(arg0){ - return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$1$Type', 1756); -function ModelOrderNodeComparator$lambda$2$Type(){ -} - -defineClass(1757, 1, $intern_39, ModelOrderNodeComparator$lambda$2$Type); -_.test_0 = function test_81(arg0){ - return castTo(arg0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$2$Type', 1757); -function ModelOrderNodeComparator$lambda$3$Type(){ -} - -defineClass(1758, 1, {}, ModelOrderNodeComparator$lambda$3$Type); -_.apply_0 = function apply_129(arg0){ - return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$3$Type', 1758); -function ModelOrderNodeComparator$lambda$4$Type(){ -} - -defineClass(1759, 1, $intern_39, ModelOrderNodeComparator$lambda$4$Type); -_.test_0 = function test_82(arg0){ - return castTo(arg0, 11).incomingEdges.array.length != 0; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$4$Type', 1759); -function $compare_16(this$static, p1, p2){ - return $compare_17(this$static, castTo(p1, 11), castTo(p2, 11)); -} - -function $compare_17(this$static, p1, p2){ - var p1Node, p1Order, p1TargetNode, p2Node, p2Order, p2TargetNode, previousNode, previousNode$array, previousNode$index, previousNode$max; - if (p1.incomingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { - p1Node = castTo($get_11(p1.incomingEdges, 0), 17).source.owner; - p2Node = castTo($get_11(p2.incomingEdges, 0), 17).source.owner; - if (p1Node == p2Node) { - return compare_5(castTo($getProperty(castTo($get_11(p1.incomingEdges, 0), 17), ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0, castTo($getProperty(castTo($get_11(p2.incomingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); - } - for (previousNode$array = this$static.previousLayer , previousNode$index = 0 , previousNode$max = previousNode$array.length; previousNode$index < previousNode$max; ++previousNode$index) { - previousNode = previousNode$array[previousNode$index]; - if (previousNode == p1Node) { - return 1; - } - else if (previousNode == p2Node) { - return -1; - } - } - } - if (p1.outgoingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0) { - p1TargetNode = castTo($getProperty(p1, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET_NODE)), 10); - p2TargetNode = castTo($getProperty(p2, LONG_EDGE_TARGET_NODE), 10); - p1Order = 0; - p2Order = 0; - $hasProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p1Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); - $hasProperty(castTo($get_11(p2.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p2Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); - if (!!p1TargetNode && p1TargetNode == p2TargetNode) { - if ($booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && !$booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { - return 1; - } - else if (!$booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && $booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { - return -1; - } - return p1Order < p2Order?-1:p1Order > p2Order?1:0; - } - if (this$static.targetNodeModelOrder) { - this$static.targetNodeModelOrder.containsKey(p1TargetNode) && (p1Order = castTo(this$static.targetNodeModelOrder.get_3(p1TargetNode), 19).value_0); - this$static.targetNodeModelOrder.containsKey(p2TargetNode) && (p2Order = castTo(this$static.targetNodeModelOrder.get_3(p2TargetNode), 19).value_0); - } - return p1Order < p2Order?-1:p1Order > p2Order?1:0; - } - return p1.incomingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0?1:-1; -} - -function ModelOrderPortComparator(previousLayer, targetNodeModelOrder){ - this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, previousLayer.nodes.array.length, 0, 1); - $toArray_2(previousLayer.nodes, this.previousLayer); - this.targetNodeModelOrder = targetNodeModelOrder; -} - -function ModelOrderPortComparator_0(previousLayer, targetNodeModelOrder){ - this.previousLayer = previousLayer; - this.targetNodeModelOrder = targetNodeModelOrder; -} - -defineClass(806, 1, $intern_88, ModelOrderPortComparator, ModelOrderPortComparator_0); -_.compare_1 = function compare_60(p1, p2){ - return $compare_16(this, p1, p2); -} -; -_.equals_0 = function equals_141(other){ - return this === other; -} -; -_.reversed = function reversed_52(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderPortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderPortComparator', 806); -function ARDCutIndexHeuristic(){ -} - -function getChunkCount(gs){ - var rows_0, rowsd; - rowsd = $wnd.Math.sqrt((gs.sumWidth == null && (gs.sumWidth = $determineWidth(gs, new GraphStats$lambda$1$Type)) , $doubleValue(gs.sumWidth) / (gs.dar * (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight))))); - rows_0 = toInt_0(fromDouble_0($wnd.Math.round(rowsd))); - rows_0 = $wnd.Math.min(rows_0, gs.longestPath); - return rows_0; -} - -defineClass(801, 1, {}, ARDCutIndexHeuristic); -_.getCutIndexes = function getCutIndexes(graph, gs){ - var cuts, idx, rows_0, step; - rows_0 = getChunkCount(gs); - cuts = new ArrayList; - step = gs.longestPath / rows_0; - for (idx = 1; idx < rows_0; ++idx) { - $add_3(cuts, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(idx * step))))); - } - return cuts; -} -; -_.guaranteeValid = function guaranteeValid(){ - return false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ARDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ARDCutIndexHeuristic', 801); -function $applyCuts(graph, cuts){ - var alreadySplit, bpEndMarker, bpLayer1, bpLayer2, bpStartMarker, bpi, bpiPrev, cut, cutIt, e, e$iterator, e$iterator0, idx, inPortBp1, inPortBp2, layer, layerIt, n, n$iterator, noSplitEdges, nodeStartEdge, openEdges, originalEdge, originalEdge$iterator, outPortBp1, outPortBp2, prevNode, startEndEdge; - layerIt = new AbstractList$ListIteratorImpl(graph.layers, 0); - cutIt = cuts.iterator_0(); - idx = 0; - cut = castTo(cutIt.next_1(), 19).value_0; - noSplitEdges = 0; - alreadySplit = new HashSet; - openEdges = new LinkedHashSet; - while (layerIt.i < layerIt.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); - for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - for (e$iterator0 = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator0);) { - e = castTo($next_0(e$iterator0), 17); - openEdges.map_0.put(e, openEdges); - } - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - openEdges.map_0.remove_0(e) != null; - } - } - if (idx + 1 == cut) { - bpLayer1 = new Layer(graph); - $add_1(layerIt, bpLayer1); - bpLayer2 = new Layer(graph); - $add_1(layerIt, bpLayer2); - for (originalEdge$iterator = openEdges.map_0.keySet_0().iterator_0(); originalEdge$iterator.hasNext_0();) { - originalEdge = castTo(originalEdge$iterator.next_1(), 17); - if (!alreadySplit.map_0.containsKey(originalEdge)) { - ++noSplitEdges; - alreadySplit.map_0.put(originalEdge, alreadySplit); - } - bpStartMarker = new LNode(graph); - $setProperty_0(bpStartMarker, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_SIDE)); - $setLayer_0(bpStartMarker, bpLayer1); - $setType(bpStartMarker, ($clinit_LNode$NodeType() , BREAKING_POINT)); - inPortBp1 = new LPort; - $setNode(inPortBp1, bpStartMarker); - $setSide(inPortBp1, ($clinit_PortSide() , WEST_2)); - outPortBp1 = new LPort; - $setNode(outPortBp1, bpStartMarker); - $setSide(outPortBp1, EAST_2); - bpEndMarker = new LNode(graph); - $setProperty_0(bpEndMarker, PORT_CONSTRAINTS_0, FIXED_SIDE); - $setLayer_0(bpEndMarker, bpLayer2); - $setType(bpEndMarker, BREAKING_POINT); - inPortBp2 = new LPort; - $setNode(inPortBp2, bpEndMarker); - $setSide(inPortBp2, WEST_2); - outPortBp2 = new LPort; - $setNode(outPortBp2, bpEndMarker); - $setSide(outPortBp2, EAST_2); - nodeStartEdge = new LEdge; - $setSource_0(nodeStartEdge, originalEdge.source); - $setTarget_0(nodeStartEdge, inPortBp1); - startEndEdge = new LEdge; - $setSource_0(startEndEdge, outPortBp1); - $setTarget_0(startEndEdge, inPortBp2); - $setSource_0(originalEdge, outPortBp2); - bpi = new BreakingPointInserter$BPInfo(bpStartMarker, bpEndMarker, nodeStartEdge, startEndEdge, originalEdge); - $setProperty_0(bpStartMarker, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO), bpi); - $setProperty_0(bpEndMarker, BREAKING_POINT_INFO, bpi); - prevNode = nodeStartEdge.source.owner; - if (prevNode.type_0 == BREAKING_POINT) { - bpiPrev = castTo($getProperty(prevNode, BREAKING_POINT_INFO), 305); - bpiPrev.next_0 = bpi; - bpi.prev = bpiPrev; - } - } - if (cutIt.hasNext_0()) { - cut = castTo(cutIt.next_1(), 19).value_0; - } - else { - break; - } - } - ++idx; - } - return valueOf_4(noSplitEdges); -} - -function $computeEdgeSpans(graph){ - var e, e$iterator, i, l, l$iterator, n, n$iterator, n$iterator0, open_0, spans; - spans = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length + 1, 15, 1); - open_0 = new HashSet; - i = 0; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - spans[i++] = open_0.map_0.size_1(); - for (n$iterator0 = new ArrayList$1(l.nodes); n$iterator0.i < n$iterator0.this$01.array.length;) { - n = castTo($next_7(n$iterator0), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - open_0.map_0.put(e, open_0); - } - } - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - open_0.map_0.remove_0(e) != null; - } - } - } - return spans; -} - -function $improveCuts(graph, cuts){ - var bestCut, bestScore, ccuts, cut, cutIdx, cutIdx$iterator, dist, hit, i, idx, improvedCuts, lCut, lDist, lastCut, rCut, rDist, score, spans, distancePenalty; - improvedCuts = new ArrayList; - ccuts = new ArrayList; - lastCut = null; - for (cutIdx$iterator = cuts.iterator_0(); cutIdx$iterator.hasNext_0();) { - cutIdx = castTo(cutIdx$iterator.next_1(), 19); - cut = new BreakingPointInserter$Cut(cutIdx.value_0); - ccuts.array[ccuts.array.length] = cut; - if (lastCut) { - cut.prev = lastCut; - lastCut.suc = cut; - } - lastCut = cut; - } - spans = $computeEdgeSpans(graph); - for (i = 0; i < ccuts.array.length; ++i) { - lCut = null; - rCut = $selfOrNext((checkCriticalElementIndex(0, ccuts.array.length) , castTo(ccuts.array[0], 652))); - bestCut = null; - bestScore = $intern_59; - for (idx = 1; idx < graph.layers.array.length; ++idx) { - rDist = rCut?$wnd.Math.abs(rCut.index_0 - idx):$wnd.Math.abs(idx - lCut.index_0) + 1; - lDist = lCut?$wnd.Math.abs(idx - lCut.index_0):rDist + 1; - if (lDist < rDist) { - hit = lCut; - dist = lDist; - } - else { - hit = rCut; - dist = rDist; - } - score = (distancePenalty = $doubleValue(castToDouble($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)))) , spans[idx] + $wnd.Math.pow(dist, distancePenalty)); - if (score < bestScore) { - bestScore = score; - bestCut = hit; - bestCut.newIndex = idx; - } - if (!!rCut && idx == rCut.index_0) { - lCut = rCut; - rCut = $next_12(rCut); - } - } - if (bestCut) { - $add_3(improvedCuts, valueOf_4(bestCut.newIndex)); - bestCut.assigned = true; - $offset(bestCut); - } - } - $clinit_Collections(); - sort_4(improvedCuts.array, improvedCuts.array.length, null); - return improvedCuts; -} - -function $process_53(graph, progressMonitor){ - var cuts, gs, icic; - $begin(progressMonitor, 'Breaking Point Insertion', 1); - gs = new GraphStats(graph); - switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { - case 2: - icic = new ICutIndexCalculator$ManualCutIndexCalculator; - case 0: - icic = new ARDCutIndexHeuristic; - break; - default:icic = new MSDCutIndexHeuristic; - } - cuts = icic.getCutIndexes(graph, gs); - $booleanValue(castToBoolean($getProperty(graph, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0))) && (cuts = $improveCuts(graph, cuts)); - if (!icic.guaranteeValid() && $hasProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0)) { - switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { - case 2: - cuts = validifyIndexesLookingBack_0(gs, cuts); - break; - case 1: - cuts = validifyIndexesGreedily(gs, cuts); - } - } - if (cuts.isEmpty()) { - $done_0(progressMonitor); - return; - } - $applyCuts(graph, cuts); - $done_0(progressMonitor); -} - -function BreakingPointInserter(){ -} - -defineClass(1479, 1, $intern_105, BreakingPointInserter); -_.process = function process_50(graph, progressMonitor){ - $process_53(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter', 1479); -function BreakingPointInserter$BPInfo(startDummy, endDummy, nodeStartEdge, startEndEdge, originalEdge){ - this.start_0 = startDummy; - this.end = endDummy; - this.nodeStartEdge = nodeStartEdge; - this.startEndEdge = startEndEdge; - this.originalEdge = originalEdge; -} - -function isEnd(n){ - var bpi; - bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - if (bpi) { - return bpi.end == n; - } - return false; -} - -function isStart(n){ - var bpi; - bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - if (bpi) { - return bpi.start_0 == n; - } - return false; -} - -defineClass(305, 1, {305:1}, BreakingPointInserter$BPInfo); -_.toString_0 = function toString_97(){ - var sb; - sb = new StringBuilder; - sb.string += 'BPInfo['; - sb.string += '\n\tstart='; - $append_10(sb, this.start_0); - sb.string += '\n\tend='; - $append_10(sb, this.end); - sb.string += '\n\tnodeStartEdge='; - $append_10(sb, this.nodeStartEdge); - sb.string += '\n\tstartEndEdge='; - $append_10(sb, this.startEndEdge); - sb.string += '\n\toriginalEdge='; - $append_10(sb, this.originalEdge); - sb.string += '\n\tstartInLayerDummy='; - $append_10(sb, this.startInLayerDummy); - sb.string += '\n\tstartInLayerEdge='; - $append_10(sb, this.startInLayerEdge); - sb.string += '\n\tendInLayerDummy='; - $append_10(sb, this.endInLayerDummy); - sb.string += '\n\tendInLayerEdge='; - $append_10(sb, this.endInLayerEdge); - return sb.string; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$BPInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/BPInfo', 305); -function $next_12(this$static){ - if (this$static.suc) { - return $selfOrNext(this$static.suc); - } - return null; -} - -function $offset(this$static){ - var offset; - if (!this$static.assigned) { - throw toJs(new IllegalStateException_0('Cannot offset an unassigned cut.')); - } - offset = this$static.newIndex - this$static.index_0; - this$static.index_0 += offset; - $offsetPrev(this$static, offset); - $offsetSuc(this$static, offset); -} - -function $offset_0(this$static, offset){ - this$static.index_0 += offset; -} - -function $offsetPrev(this$static, offset){ - if (!!this$static.prev && !this$static.prev.assigned) { - $offset_0(this$static.prev, offset); - $offsetPrev(this$static.prev, offset); - } -} - -function $offsetSuc(this$static, offset){ - if (!!this$static.suc && !this$static.suc.assigned) { - $offset_0(this$static.suc, offset); - $offsetSuc(this$static.suc, offset); - } -} - -function $selfOrNext(this$static){ - if (this$static.assigned) { - if (this$static.suc) { - return $selfOrNext(this$static.suc); - } - } - else { - return this$static; - } - return null; -} - -function BreakingPointInserter$Cut(index_0){ - this.index_0 = index_0; -} - -defineClass(652, 1, {652:1}, BreakingPointInserter$Cut); -_.assigned = false; -_.index_0 = 0; -_.newIndex = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter$Cut_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter/Cut', 652); -function $dropDummies(bpNode, inLayerDummy, forwards, force){ - var didsome, newLayer, nextOne, nextTwo, predOne, predTwo; - predOne = $nextLongEdgeDummy(bpNode, forwards); - predTwo = $nextLongEdgeDummy(inLayerDummy, forwards); - didsome = false; - while (!!predOne && !!predTwo) { - if (force || $isAdjacentOrSeparatedByBreakingpoints(predOne, predTwo, forwards)) { - nextOne = $nextLongEdgeDummy(predOne, forwards); - nextTwo = $nextLongEdgeDummy(predTwo, forwards); - $updateIndexesAfter(inLayerDummy); - $updateIndexesAfter(bpNode); - newLayer = predOne.layer; - joinAt(predOne, false); - joinAt(predTwo, false); - if (forwards) { - $setLayer(inLayerDummy, predTwo.id_0, newLayer); - inLayerDummy.id_0 = predTwo.id_0; - $setLayer(bpNode, predOne.id_0 + 1, newLayer); - bpNode.id_0 = predOne.id_0; - } - else { - $setLayer(bpNode, predOne.id_0, newLayer); - bpNode.id_0 = predOne.id_0; - $setLayer(inLayerDummy, predTwo.id_0 + 1, newLayer); - inLayerDummy.id_0 = predTwo.id_0; - } - $setLayer_0(predOne, null); - $setLayer_0(predTwo, null); - predOne = nextOne; - predTwo = nextTwo; - didsome = true; - } - else { - break; - } - } - return didsome; -} - -function $improveMultiCutIndexEdges(graph){ - var current, info, l, l$iterator, n, n$iterator, newInfo, next; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(newArrayList(l.nodes)); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (isStart(n)) { - info = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - if (!info.prev && !!info.next_0) { - current = info; - next = info.next_0; - while (next) { - $dropDummies(next.start_0, next.startInLayerDummy, false, true); - $updateIndexesAfter(current.end); - $updateIndexesAfter(next.start_0); - $updateIndexesAfter(next.startInLayerDummy); - $updateIndexesAfter(next.endInLayerDummy); - $setTarget_0(next.endInLayerEdge, current.endInLayerEdge.target); - $setTarget_0(current.endInLayerEdge, null); - $setLayer_0(current.end, null); - $setLayer_0(next.start_0, null); - $setLayer_0(next.startInLayerDummy, null); - $setLayer_0(next.endInLayerDummy, null); - newInfo = new BreakingPointInserter$BPInfo(current.start_0, next.end, current.nodeStartEdge, next.startEndEdge, next.originalEdge); - newInfo.startInLayerDummy = current.startInLayerDummy; - newInfo.startInLayerEdge = current.startInLayerEdge; - newInfo.endInLayerDummy = current.endInLayerDummy; - newInfo.endInLayerEdge = next.endInLayerEdge; - newInfo.prev = current.prev; - newInfo.next_0 = next.next_0; - $setProperty_0(current.start_0, BREAKING_POINT_INFO, newInfo); - $setProperty_0(next.end, BREAKING_POINT_INFO, newInfo); - next = next.next_0; - current = newInfo; - } - } - } - } - } -} - -function $improveUnneccesarilyLongEdges(graph, forwards){ - var bpInfo, bpNode, check, didsome, dummy, layer, layer$iterator, layers, n, n$iterator, nodes; - check = forwards?new BreakingPointProcessor$0methodref$isEnd$Type:new BreakingPointProcessor$1methodref$isStart$Type; - didsome = false; - do { - didsome = false; - layers = forwards?reverse_0(graph.layers):graph.layers; - for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { - layer = castTo(layer$iterator.next_1(), 29); - nodes = newArrayList(layer.nodes); - forwards || new Lists$RandomAccessReverseList(nodes); - for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - if (check.test_0(n)) { - bpNode = n; - bpInfo = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - dummy = forwards?bpInfo.endInLayerDummy:bpInfo.startInLayerDummy; - didsome = $dropDummies(bpNode, dummy, forwards, false); - } - } - } - } - while (didsome); -} - -function $isAdjacentOrSeparatedByBreakingpoints(dummy1, dummy2, forwards){ - var end, i, layer, node, start_0; - layer = dummy1.layer; - start_0 = forwards?dummy2:dummy1; - end = forwards?dummy1:dummy2; - for (i = start_0.id_0 + 1; i < end.id_0; ++i) { - node = castTo($get_11(layer.nodes, i), 10); - if (!(node.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT) || $isInLayerDummy(node))) { - return false; - } - } - return true; -} - -function $isInLayerDummy(node){ - var e, e$iterator; - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!$isSelfLoop(e) && node.layer == $getOther_1(e, node).layer) { - return true; - } - } - } - return false; -} - -function $nextLongEdgeDummy(start_0, forwards){ - var e, e$iterator, edges, other; - edges = forwards?$getOutgoingEdges(start_0):$getIncomingEdges(start_0); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - other = $getOther_1(e, start_0); - if (other.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && other.layer != start_0.layer) { - return other; - } - } - return null; -} - -function $performWrapping(graph){ - var aNode, bpi, dummyEdges, e, e$iterator, idx, it, l, layer, layerIt, layers, n, n$iterator, n$iterator0, newLayer, nodesToMove, offset, reverse, startInLayerEdge; - layers = graph.layers; - layerIt = new AbstractList$ListIteratorImpl(layers, 0); - $add_1(layerIt, new Layer(graph)); - reverse = false; - idx = 1; - while (layerIt.i < layerIt.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIt.i < layerIt.this$01_0.size_1()) , castTo(layerIt.this$01_0.get_0(layerIt.last = layerIt.i++), 29)); - newLayer = (checkCriticalElementIndex(idx, layers.array.length) , castTo(layers.array[idx], 29)); - nodesToMove = newArrayList(layer.nodes); - offset = nodesToMove.array.length; - for (n$iterator0 = new ArrayList$1(nodesToMove); n$iterator0.i < n$iterator0.this$01.array.length;) { - n = castTo($next_7(n$iterator0), 10); - $setLayer_0(n, newLayer); - } - if (reverse) { - for (n$iterator = $listIterator_1(new Lists$RandomAccessReverseList(nodesToMove), 0); n$iterator.val$forwardIterator2.hasPrevious();) { - n = castTo($next_3(n$iterator), 10); - for (e$iterator = new ArrayList$1(newArrayList($getIncomingEdges(n))); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $reverse_0(e, true); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - dummyEdges = insertDummies(graph, e, offset); - bpi = castTo($getProperty(n, BREAKING_POINT_INFO), 305); - startInLayerEdge = castTo($get_11(dummyEdges, dummyEdges.array.length - 1), 17); - bpi.startInLayerDummy = startInLayerEdge.source.owner; - bpi.startInLayerEdge = startInLayerEdge; - bpi.endInLayerDummy = e.target.owner; - bpi.endInLayerEdge = e; - } - } - reverse = false; - } - else { - if (nodesToMove.array.length != 0) { - aNode = (checkCriticalElementIndex(0, nodesToMove.array.length) , castTo(nodesToMove.array[0], 10)); - if (aNode.type_0 == ($clinit_LNode$NodeType() , BREAKING_POINT)) { - reverse = true; - idx = -1; - } - } - } - ++idx; - } - it = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (it.i < it.this$01_0.size_1()) { - l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); - l.nodes.array.length == 0 && $remove_8(it); - } -} - -function $process_54(graph, progressMonitor){ - var index_0, l, l$iterator, n, n$iterator; - $begin(progressMonitor, 'Breaking Point Processor', 1); - $performWrapping(graph); - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0))))) { - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - index_0 = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = index_0++; - } - } - $improveMultiCutIndexEdges(graph); - $improveUnneccesarilyLongEdges(graph, true); - $improveUnneccesarilyLongEdges(graph, false); - } - $done_0(progressMonitor); -} - -function $updateIndexesAfter(node){ - var i; - for (i = node.id_0 + 1; i < node.layer.nodes.array.length; ++i) { - --castTo($get_11(node.layer.nodes, i), 10).id_0; - } -} - -function BreakingPointProcessor(){ -} - -defineClass(1480, 1, $intern_105, BreakingPointProcessor); -_.process = function process_51(graph, progressMonitor){ - $process_54(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor', 1480); -function BreakingPointProcessor$0methodref$isEnd$Type(){ -} - -defineClass(1481, 1, $intern_39, BreakingPointProcessor$0methodref$isEnd$Type); -_.test_0 = function test_83(arg0){ - return isEnd(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$0methodref$isEnd$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/0methodref$isEnd$Type', 1481); -function BreakingPointProcessor$1methodref$isStart$Type(){ -} - -defineClass(1482, 1, $intern_39, BreakingPointProcessor$1methodref$isStart$Type); -_.test_0 = function test_84(arg0){ - return isStart(castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor$1methodref$isStart$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor/1methodref$isStart$Type', 1482); -function $addNullSafe(container, toAdd){ - if (!toAdd) { - return false; - } - return $addAll(container, toAdd); -} - -function $process_55(this$static, graph, progressMonitor){ - var bpi, l, l$iterator, node, node$iterator; - $begin(progressMonitor, 'Breaking Point Removing', 1); - this$static.edgeRouting = castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (node$iterator = new ArrayList$1(newArrayList(l.nodes)); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (isEnd(node)) { - bpi = castTo($getProperty(node, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); - !bpi.next_0 && $remove_30(this$static, bpi); - } - } - } - $done_0(progressMonitor); -} - -function $remove_30(this$static, bpi){ - var e1, e2, e3, joinedEdges, joinedSegments, junctionPointsOne, junctionPointsThree, junctionPointsTwo, newBends, newJunctionPoints, s1, s2, s3; - newBends = new KVectorChain; - switch (this$static.edgeRouting.ordinal) { - case 3: - s1 = castTo($getProperty(bpi.nodeStartEdge, ($clinit_InternalProperties_1() , SPLINE_ROUTE_START)), 15); - s2 = castTo($getProperty(bpi.startEndEdge, SPLINE_ROUTE_START), 15); - s3 = castTo($getProperty(bpi.originalEdge, SPLINE_ROUTE_START), 15); - e1 = castTo($getProperty(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN), 15); - e2 = castTo($getProperty(bpi.startEndEdge, SPLINE_EDGE_CHAIN), 15); - e3 = castTo($getProperty(bpi.originalEdge, SPLINE_EDGE_CHAIN), 15); - joinedSegments = new ArrayList; - $addAll_2(joinedSegments, s1); - s2.forEach_0(new BreakingPointRemover$lambda$0$Type); - $addAll_2(joinedSegments, instanceOf(s2, 152)?$reverse(castTo(s2, 152)):instanceOf(s2, 131)?castTo(s2, 131).forwardList:instanceOf(s2, 54)?new Lists$RandomAccessReverseList(s2):new Lists$ReverseList(s2)); - $addAll_2(joinedSegments, s3); - joinedEdges = new ArrayList; - $addAll_2(joinedEdges, e1); - $addAll_2(joinedEdges, instanceOf(e2, 152)?$reverse(castTo(e2, 152)):instanceOf(e2, 131)?castTo(e2, 131).forwardList:instanceOf(e2, 54)?new Lists$RandomAccessReverseList(e2):new Lists$ReverseList(e2)); - $addAll_2(joinedEdges, e3); - $setProperty_0(bpi.originalEdge, SPLINE_ROUTE_START, joinedSegments); - $setProperty_0(bpi.originalEdge, SPLINE_EDGE_CHAIN, joinedEdges); - $setProperty_0(bpi.originalEdge, SPLINE_SURVIVING_EDGE, bpi.originalEdge); - $setProperty_0(bpi.nodeStartEdge, SPLINE_ROUTE_START, null); - $setProperty_0(bpi.nodeStartEdge, SPLINE_EDGE_CHAIN, null); - $setProperty_0(bpi.startEndEdge, SPLINE_ROUTE_START, null); - $setProperty_0(bpi.startEndEdge, SPLINE_EDGE_CHAIN, null); - break; - case 1: - $addAll(newBends, bpi.nodeStartEdge.bendPoints); - $add_7(newBends, bpi.start_0.pos); - $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); - $add_7(newBends, bpi.end.pos); - $addAll(newBends, bpi.originalEdge.bendPoints); - break; - default:$addAll(newBends, bpi.nodeStartEdge.bendPoints); - $addAll(newBends, reverse_0(bpi.startEndEdge.bendPoints)); - $addAll(newBends, bpi.originalEdge.bendPoints); - } - $reset_0(bpi.originalEdge.bendPoints); - $addAll(bpi.originalEdge.bendPoints, newBends); - $setSource_0(bpi.originalEdge, bpi.nodeStartEdge.source); - junctionPointsOne = castTo($getProperty(bpi.nodeStartEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - junctionPointsTwo = castTo($getProperty(bpi.startEndEdge, JUNCTION_POINTS), 74); - junctionPointsThree = castTo($getProperty(bpi.originalEdge, JUNCTION_POINTS), 74); - if (!!junctionPointsOne || !!junctionPointsTwo || !!junctionPointsThree) { - newJunctionPoints = new KVectorChain; - $addNullSafe(newJunctionPoints, junctionPointsThree); - $addNullSafe(newJunctionPoints, junctionPointsTwo); - $addNullSafe(newJunctionPoints, junctionPointsOne); - $setProperty_0(bpi.originalEdge, JUNCTION_POINTS, newJunctionPoints); - } - $setSource_0(bpi.startEndEdge, null); - $setTarget_0(bpi.startEndEdge, null); - $setSource_0(bpi.nodeStartEdge, null); - $setTarget_0(bpi.nodeStartEdge, null); - $setLayer_0(bpi.end, null); - $setLayer_0(bpi.start_0, null); - !!bpi.prev && $remove_30(this$static, bpi.prev); -} - -function BreakingPointRemover(){ -} - -defineClass(1483, 1, $intern_105, BreakingPointRemover); -_.process = function process_52(graph, progressMonitor){ - $process_55(this, castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover', 1483); -function BreakingPointRemover$lambda$0$Type(){ -} - -defineClass(1484, 1, $intern_19, BreakingPointRemover$lambda$0$Type); -_.accept = function accept_113(arg0){ - castTo(arg0, 128).inverseOrder = true; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover/lambda$0$Type', 1484); -function insertDummies(layeredGraph, originalEdge, offsetFirstInLayerDummy){ - var additionalSpacing, createdEdges, dummyEdge, dummyInput, dummyNode, dummyOutput, edge, edgeNodeSpacing, i, is, nextLayer, portPos, src_0, srcIndex, targetPort, tgt, tgtIndex, thickness; - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_NODE)))); - additionalSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, WRAPPING_ADDITIONAL_EDGE_SPACING_0))); - is = new IndividualSpacings; - $setProperty_0(is, SPACING_EDGE_NODE, edgeNodeSpacing + additionalSpacing); - edge = originalEdge; - targetPort = edge.target; - src_0 = edge.source.owner; - tgt = edge.target.owner; - srcIndex = $getIndex_0(src_0.layer); - tgtIndex = $getIndex_0(tgt.layer); - createdEdges = new ArrayList; - for (i = srcIndex; i <= tgtIndex; i++) { - dummyNode = new LNode(layeredGraph); - $setType(dummyNode, ($clinit_LNode$NodeType() , LONG_EDGE)); - $setProperty_0(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0), edge); - $setProperty_0(dummyNode, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_POS)); - $setProperty_0(dummyNode, SPACING_INDIVIDUAL, is); - nextLayer = castTo($get_11(layeredGraph.layers, i), 29); - i == srcIndex?$setLayer(dummyNode, nextLayer.nodes.array.length - offsetFirstInLayerDummy, nextLayer):$setLayer_0(dummyNode, nextLayer); - thickness = $doubleValue(castToDouble($getProperty(edge, EDGE_THICKNESS_0))); - if (thickness < 0) { - thickness = 0; - $setProperty_0(edge, EDGE_THICKNESS_0, thickness); - } - dummyNode.size_0.y_0 = thickness; - portPos = $wnd.Math.floor(thickness / 2); - dummyInput = new LPort; - $setSide(dummyInput, ($clinit_PortSide() , WEST_2)); - $setNode(dummyInput, dummyNode); - dummyInput.pos.y_0 = portPos; - dummyOutput = new LPort; - $setSide(dummyOutput, EAST_2); - $setNode(dummyOutput, dummyNode); - dummyOutput.pos.y_0 = portPos; - $setTarget_0(edge, dummyInput); - dummyEdge = new LEdge; - $copyProperties(dummyEdge, edge); - $setProperty_0(dummyEdge, JUNCTION_POINTS, null); - $setSource_0(dummyEdge, dummyOutput); - $setTarget_0(dummyEdge, targetPort); - setDummyProperties(dummyNode, edge, dummyEdge); - createdEdges.array[createdEdges.array.length] = dummyEdge; - edge = dummyEdge; - } - return createdEdges; -} - -function setDummyProperties(dummy, inEdge, outEdge){ - var inEdgeSourceNode; - inEdgeSourceNode = inEdge.source.owner; - if (inEdgeSourceNode.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), castTo($getProperty(inEdgeSourceNode, LONG_EDGE_SOURCE), 11)); - $setProperty_0(dummy, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); - } - else { - $setProperty_0(dummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE), inEdge.source); - $setProperty_0(dummy, LONG_EDGE_TARGET, outEdge.target); - } -} - -function $determineHeight(this$static, fun){ - return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$6$Type(this$static)), fun)))); -} - -function $determineLayerHeight(this$static, layer){ - var inc, inc$iterator, lH, n, n$iterator, origin_0, src_0; - lH = 0; - for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - lH += n.size_0.y_0 + n.margin.bottom + n.margin.top_0 + this$static.inLayerSpacing; - for (inc$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(inc$iterator);) { - inc = castTo($next_0(inc$iterator), 17); - if (inc.source.owner.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - src_0 = inc.source.owner; - origin_0 = castTo($getProperty(src_0, ($clinit_InternalProperties_1() , ORIGIN_0)), 10); - lH += origin_0.size_0.y_0 + origin_0.margin.bottom + origin_0.margin.top_0; - } - } - } - return lH; -} - -function $determineLayerWidth(this$static, l){ - var maxW, n, n$iterator, nW; - maxW = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - nW = n.size_0.x_0 + n.margin.right + n.margin.left + this$static.spacing; - maxW = $wnd.Math.max(maxW, nW); - } - return maxW; -} - -function $determineWidth(this$static, fun){ - return $doubleValue(castToDouble($get_17($reduce_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.graph_0.layers, 16)), new GraphStats$lambda$2$Type(this$static)), fun)))); -} - -function $initCutAllowed(this$static){ - var f, f$iterator, forbidden, i, layer, layerIt; - if (this$static.cutsAllowed != null) { - return; - } - this$static.cutsAllowed = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.graph_0.layers.array.length, 16, 1); - this$static.cutsAllowed[0] = false; - if ($hasProperty(this$static.graph_0, ($clinit_LayeredOptions() , WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0))) { - forbidden = castTo($getProperty(this$static.graph_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0), 15); - for (f$iterator = forbidden.iterator_0(); f$iterator.hasNext_0();) { - f = castTo(f$iterator.next_1(), 19).value_0; - f > 0 && f < this$static.cutsAllowed.length && (this$static.cutsAllowed[f] = false); - } - } - else { - layerIt = new ArrayList$1(this$static.graph_0.layers); - layerIt.i < layerIt.this$01.array.length && $next_7(layerIt); - i = 1; - while (layerIt.i < layerIt.this$01.array.length) { - layer = castTo($next_7(layerIt), 29); - this$static.cutsAllowed[i++] = $isCutAllowed_0(layer); - } - } -} - -function $initWidthsAndHeights(this$static){ - var i, l, n; - n = this$static.longestPath; - this$static.widths = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); - this$static.heights = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); - for (i = 0; i < n; i++) { - l = castTo($get_11(this$static.graph_0.layers, i), 29); - this$static.widths[i] = $determineLayerWidth(this$static, l); - this$static.heights[i] = $determineLayerHeight(this$static, l); - } -} - -function $isCutAllowed(this$static, layerIndex){ - this$static.cutsAllowed == null && $initCutAllowed(this$static); - return this$static.cutsAllowed[layerIndex]; -} - -function $isCutAllowed_0(layer){ - var cutAllowed, e, e$iterator, n1, n2, src_0, tgt, tgt$iterator; - cutAllowed = true; - n1 = null; - n2 = null; - check: for (tgt$iterator = new ArrayList$1(layer.nodes); tgt$iterator.i < tgt$iterator.this$01.array.length;) { - tgt = castTo($next_7(tgt$iterator), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(tgt).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!!n1 && n1 != tgt) { - cutAllowed = false; - break check; - } - n1 = tgt; - src_0 = e.source.owner; - if (!!n2 && n2 != src_0) { - cutAllowed = false; - break check; - } - n2 = src_0; - } - } - return cutAllowed; -} - -function GraphStats(graph){ - var aspectRatio, correction, dir_0; - this.graph_0 = graph; - dir_0 = castTo($getProperty(graph, ($clinit_LayeredOptions() , DIRECTION)), 103); - aspectRatio = $doubleValue(castToDouble($getProperty(graph, ASPECT_RATIO_1))); - correction = $doubleValue(castToDouble($getProperty(graph, WRAPPING_CORRECTION_FACTOR_0))); - dir_0 == ($clinit_Direction_0() , LEFT_6) || dir_0 == RIGHT_6 || dir_0 == UNDEFINED_2?(this.dar = aspectRatio * correction):(this.dar = 1 / (aspectRatio * correction)); - this.spacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); - this.inLayerSpacing = $doubleValue(castToDouble($getProperty(graph, SPACING_NODE_NODE_0))); - this.longestPath = graph.layers.array.length; -} - -function lambda$1_16(a_0, b_1){ - return (checkCriticalNotNull(a_0) , a_0) + (checkCriticalNotNull(b_1) , b_1); -} - -defineClass(797, 1, {}, GraphStats); -_.dar = 0; -_.inLayerSpacing = 0; -_.longestPath = 0; -_.spacing = 0; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats', 797); -function GraphStats$0methodref$max$Type(){ -} - -defineClass(798, 1, {}, GraphStats$0methodref$max$Type); -_.apply_3 = function apply_130(arg0, arg1){ - return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$0methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/0methodref$max$Type', 798); -function GraphStats$2methodref$max$Type(){ -} - -defineClass(799, 1, {}, GraphStats$2methodref$max$Type); -_.apply_3 = function apply_131(arg0, arg1){ - return $wnd.Math.max($doubleValue(castToDouble(arg0)), $doubleValue(castToDouble(arg1))); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$2methodref$max$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/2methodref$max$Type', 799); -function GraphStats$lambda$1$Type(){ -} - -defineClass(1660, 1, {}, GraphStats$lambda$1$Type); -_.apply_3 = function apply_132(arg0, arg1){ - return lambda$1_16(castToDouble(arg0), castToDouble(arg1)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$1$Type', 1660); -function GraphStats$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1661, 1, {}, GraphStats$lambda$2$Type); -_.apply_0 = function apply_133(arg0){ - return $determineLayerWidth(this.$$outer_0, castTo(arg0, 29)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$2$Type', 1661); -function GraphStats$lambda$6$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1662, 1, {}, GraphStats$lambda$6$Type); -_.apply_0 = function apply_134(arg0){ - return $determineLayerHeight(this.$$outer_0, castTo(arg0, 29)); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_GraphStats$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'GraphStats/lambda$6$Type', 1662); -function ICutIndexCalculator$ManualCutIndexCalculator(){ -} - -defineClass(800, 1, {}, ICutIndexCalculator$ManualCutIndexCalculator); -_.getCutIndexes = function getCutIndexes_0(graph, gs){ - var cuts; - cuts = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_CUTS_0)), 15); - return cuts?cuts:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); -} -; -_.guaranteeValid = function guaranteeValid_0(){ - return false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_ICutIndexCalculator$ManualCutIndexCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'ICutIndexCalculator/ManualCutIndexCalculator', 800); -function MSDCutIndexHeuristic(){ -} - -defineClass(802, 1, {}, MSDCutIndexHeuristic); -_.getCutIndexes = function getCutIndexes_1(graph, gs){ - var bestCuts, bestMaxScale, cutCnt, cuts, freedom, height, heights, i, index_0, lastCutWidth, m, maxScale, rowHeightMax, rowSum, sumSoFar, total, width_0, widthAtIndex, widths; - widths = (gs.widths == null && $initWidthsAndHeights(gs) , gs.widths); - heights = (gs.heights == null && $initWidthsAndHeights(gs) , gs.heights); - widthAtIndex = initUnidimensionalArray(D_classLit, $intern_65, 25, widths.length, 15, 1); - widthAtIndex[0] = widths[0]; - total = widths[0]; - for (i = 1; i < widths.length; i++) { - widthAtIndex[i] = widthAtIndex[i - 1] + widths[i]; - total += widths[i]; - } - cutCnt = getChunkCount(gs) - 1; - freedom = castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_MSD_FREEDOM_0)), 19).value_0; - bestMaxScale = $intern_60; - bestCuts = new ArrayList; - for (m = $wnd.Math.max(0, cutCnt - freedom); m <= $wnd.Math.min(gs.longestPath - 1, cutCnt + freedom); m++) { - rowSum = total / (m + 1); - sumSoFar = 0; - index_0 = 1; - cuts = new ArrayList; - width_0 = $intern_60; - lastCutWidth = 0; - height = 0; - rowHeightMax = heights[0]; - if (m == 0) { - width_0 = total; - height = (gs.maxHeight == null && (gs.maxHeight = $determineHeight(gs, new GraphStats$2methodref$max$Type)) , $doubleValue(gs.maxHeight)); - } - else { - while (index_0 < gs.longestPath) { - if (widthAtIndex[index_0 - 1] - sumSoFar >= rowSum) { - $add_3(cuts, valueOf_4(index_0)); - width_0 = $wnd.Math.max(width_0, widthAtIndex[index_0 - 1] - lastCutWidth); - height += rowHeightMax; - sumSoFar += widthAtIndex[index_0 - 1] - sumSoFar; - lastCutWidth = widthAtIndex[index_0 - 1]; - rowHeightMax = heights[index_0]; - } - rowHeightMax = $wnd.Math.max(rowHeightMax, heights[index_0]); - ++index_0; - } - height += rowHeightMax; - } - maxScale = $wnd.Math.min(1 / width_0, 1 / gs.dar / height); - if (maxScale > bestMaxScale) { - bestMaxScale = maxScale; - bestCuts = cuts; - } - } - return bestCuts; -} -; -_.guaranteeValid = function guaranteeValid_1(){ - return false; -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_MSDCutIndexHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'MSDCutIndexHeuristic', 802); -function $performCuts(graph, gs, cuts){ - var cutIt, e, e$iterator, incEdges, index_0, it, l, n, n$iterator, newIndex, newLayer, nextCut, nodesToMove, oldLayer; - if (cuts.isEmpty()) { - return; - } - index_0 = 0; - newIndex = 0; - cutIt = cuts.iterator_0(); - nextCut = castTo(cutIt.next_1(), 19).value_0; - while (index_0 < gs.longestPath) { - if (index_0 == nextCut) { - newIndex = 0; - cutIt.hasNext_0()?(nextCut = castTo(cutIt.next_1(), 19).value_0):(nextCut = gs.longestPath + 1); - } - if (index_0 != newIndex) { - oldLayer = castTo($get_11(graph.layers, index_0), 29); - newLayer = castTo($get_11(graph.layers, newIndex), 29); - nodesToMove = newArrayList(oldLayer.nodes); - for (n$iterator = new ArrayList$1(nodesToMove); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - $setLayer(n, newLayer.nodes.array.length, newLayer); - if (newIndex == 0) { - incEdges = newArrayList($getIncomingEdges(n)); - for (e$iterator = new ArrayList$1(incEdges); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 17); - $reverse_0(e, true); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - insertDummies(graph, e, 1); - } - } - } - } - ++newIndex; - ++index_0; - } - it = new AbstractList$ListIteratorImpl(graph.layers, 0); - while (it.i < it.this$01_0.size_1()) { - l = (checkCriticalElement(it.i < it.this$01_0.size_1()) , castTo(it.this$01_0.get_0(it.last = it.i++), 29)); - l.nodes.array.length == 0 && $remove_8(it); - } -} - -function $process_56(graph, progressMonitor){ - var currentAR, cuts, gs, icic, sumWidth; - $begin(progressMonitor, 'Path-Like Graph Wrapping', 1); - if (graph.layers.array.length == 0) { - $done_0(progressMonitor); - return; - } - gs = new GraphStats(graph); - sumWidth = (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth) * gs.longestPath); - currentAR = sumWidth / (gs.maxWidth == null && (gs.maxWidth = $determineWidth(gs, new GraphStats$0methodref$max$Type)) , $doubleValue(gs.maxWidth)); - if (gs.dar > currentAR) { - $done_0(progressMonitor); - return; - } - switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 337).ordinal) { - case 2: - icic = new ICutIndexCalculator$ManualCutIndexCalculator; - break; - case 0: - icic = new ARDCutIndexHeuristic; - break; - default:icic = new MSDCutIndexHeuristic; - } - cuts = icic.getCutIndexes(graph, gs); - if (!icic.guaranteeValid()) { - switch (castTo($getProperty(graph, WRAPPING_VALIDIFY_STRATEGY_0), 338).ordinal) { - case 2: - cuts = validifyIndexesLookingBack_0(gs, cuts); - break; - case 1: - cuts = validifyIndexesGreedily(gs, cuts); - } - } - $performCuts(graph, gs, cuts); - $done_0(progressMonitor); -} - -function SingleEdgeGraphWrapper(){ -} - -function validifyIndexesGreedily(gs, cuts){ - var cut, cutIt, offset, validCuts; - validCuts = new ArrayList; - offset = 0; - cutIt = cuts.iterator_0(); - while (cutIt.hasNext_0()) { - cut = valueOf_4(castTo(cutIt.next_1(), 19).value_0 + offset); - while (cut.value_0 < gs.longestPath && !$isCutAllowed(gs, cut.value_0)) { - cut = valueOf_4(cut.value_0 + 1); - ++offset; - } - if (cut.value_0 >= gs.longestPath) { - break; - } - validCuts.array[validCuts.array.length] = cut; - } - return validCuts; -} - -function validifyIndexesLookingBack(desiredCuts, validCuts){ - var cIdx, current, distHigher, distLower, finalCuts, iIdx, offset, select; - finalCuts = new ArrayList; - iIdx = 0; - cIdx = 0; - offset = 0; - while (iIdx < validCuts.array.length - 1 && cIdx < desiredCuts.size_1()) { - current = castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset; - while ((checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 < current) { - ++iIdx; - } - select = 0; - distLower = current - (checkCriticalElementIndex(iIdx, validCuts.array.length) , castTo(validCuts.array[iIdx], 19)).value_0; - distHigher = (checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 - current; - distLower > distHigher && ++select; - $add_3(finalCuts, (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19))); - offset += (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0 - current; - ++cIdx; - while (cIdx < desiredCuts.size_1() && castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset <= (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0) { - ++cIdx; - } - iIdx += 1 + select; - } - return finalCuts; -} - -function validifyIndexesLookingBack_0(gs, desiredCuts){ - var i, validCuts; - if (desiredCuts.isEmpty()) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - validCuts = new ArrayList; - $add_3(validCuts, valueOf_4($intern_42)); - for (i = 1; i < gs.longestPath; ++i) { - gs.cutsAllowed == null && $initCutAllowed(gs); - gs.cutsAllowed[i] && $add_3(validCuts, valueOf_4(i)); - } - if (validCuts.array.length == 1) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - $add_3(validCuts, valueOf_4($intern_0)); - return validifyIndexesLookingBack(desiredCuts, validCuts); -} - -defineClass(1617, 1, $intern_105, SingleEdgeGraphWrapper); -_.process = function process_53(graph, progressMonitor){ - $process_56(castTo(graph, 37), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_SingleEdgeGraphWrapper_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'SingleEdgeGraphWrapper', 1617); -function $clinit_CenterEdgeLabelPlacementStrategy(){ - $clinit_CenterEdgeLabelPlacementStrategy = emptyMethod; - MEDIAN_LAYER = new CenterEdgeLabelPlacementStrategy('MEDIAN_LAYER', 0); - TAIL_LAYER = new CenterEdgeLabelPlacementStrategy('TAIL_LAYER', 1); - HEAD_LAYER = new CenterEdgeLabelPlacementStrategy('HEAD_LAYER', 2); - SPACE_EFFICIENT_LAYER = new CenterEdgeLabelPlacementStrategy('SPACE_EFFICIENT_LAYER', 3); - WIDEST_LAYER = new CenterEdgeLabelPlacementStrategy('WIDEST_LAYER', 4); - CENTER_LAYER = new CenterEdgeLabelPlacementStrategy('CENTER_LAYER', 5); -} - -function CenterEdgeLabelPlacementStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_38(name_0){ - $clinit_CenterEdgeLabelPlacementStrategy(); - return valueOf(($clinit_CenterEdgeLabelPlacementStrategy$Map() , $MAP_26), name_0); -} - -function values_44(){ - $clinit_CenterEdgeLabelPlacementStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]); -} - -defineClass(227, 22, {3:1, 35:1, 22:1, 227:1}, CenterEdgeLabelPlacementStrategy); -var CENTER_LAYER, HEAD_LAYER, MEDIAN_LAYER, SPACE_EFFICIENT_LAYER, TAIL_LAYER, WIDEST_LAYER; -var Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CenterEdgeLabelPlacementStrategy', 227, Ljava_lang_Enum_2_classLit, values_44, valueOf_38); -function $clinit_CenterEdgeLabelPlacementStrategy$Map(){ - $clinit_CenterEdgeLabelPlacementStrategy$Map = emptyMethod; - $MAP_26 = createValueOfMap(($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]))); -} - -var $MAP_26; -function $clinit_ConstraintCalculationStrategy(){ - $clinit_ConstraintCalculationStrategy = emptyMethod; - QUADRATIC = new ConstraintCalculationStrategy('QUADRATIC', 0); - SCANLINE = new ConstraintCalculationStrategy('SCANLINE', 1); -} - -function ConstraintCalculationStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_39(name_0){ - $clinit_ConstraintCalculationStrategy(); - return valueOf(($clinit_ConstraintCalculationStrategy$Map() , $MAP_27), name_0); -} - -function values_45(){ - $clinit_ConstraintCalculationStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]); -} - -defineClass(422, 22, {3:1, 35:1, 22:1, 422:1}, ConstraintCalculationStrategy); -var QUADRATIC, SCANLINE; -var Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ConstraintCalculationStrategy', 422, Ljava_lang_Enum_2_classLit, values_45, valueOf_39); -function $clinit_ConstraintCalculationStrategy$Map(){ - $clinit_ConstraintCalculationStrategy$Map = emptyMethod; - $MAP_27 = createValueOfMap(($clinit_ConstraintCalculationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit, 1), $intern_36, 422, 0, [QUADRATIC, SCANLINE]))); -} - -var $MAP_27; -function $clinit_CrossingMinimizationStrategy(){ - $clinit_CrossingMinimizationStrategy = emptyMethod; - LAYER_SWEEP = new CrossingMinimizationStrategy('LAYER_SWEEP', 0); - INTERACTIVE_1 = new CrossingMinimizationStrategy('INTERACTIVE', 1); - NONE_1 = new CrossingMinimizationStrategy('NONE', 2); -} - -function $create_3(this$static){ - switch (this$static.ordinal) { - case 0: - return new LayerSweepCrossingMinimizer(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER)); - case 1: - return new InteractiveCrossingMinimizer; - case 2: - return new NoCrossingMinimizer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the crossing minimizer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CrossingMinimizationStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_40(name_0){ - $clinit_CrossingMinimizationStrategy(); - return valueOf(($clinit_CrossingMinimizationStrategy$Map() , $MAP_28), name_0); -} - -function values_46(){ - $clinit_CrossingMinimizationStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]); -} - -defineClass(314, 22, {3:1, 35:1, 22:1, 314:1, 246:1, 234:1}, CrossingMinimizationStrategy); -_.create_1 = function create_7(){ - return $create_3(this); -} -; -_.create_2 = function create_6(){ - return $create_3(this); -} -; -var INTERACTIVE_1, LAYER_SWEEP, NONE_1; -var Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CrossingMinimizationStrategy', 314, Ljava_lang_Enum_2_classLit, values_46, valueOf_40); -function $clinit_CrossingMinimizationStrategy$Map(){ - $clinit_CrossingMinimizationStrategy$Map = emptyMethod; - $MAP_28 = createValueOfMap(($clinit_CrossingMinimizationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit, 1), $intern_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]))); -} - -var $MAP_28; -function $clinit_CuttingStrategy(){ - $clinit_CuttingStrategy = emptyMethod; - ARD = new CuttingStrategy('ARD', 0); - MSD = new CuttingStrategy('MSD', 1); - MANUAL = new CuttingStrategy('MANUAL', 2); -} - -function CuttingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_41(name_0){ - $clinit_CuttingStrategy(); - return valueOf(($clinit_CuttingStrategy$Map() , $MAP_29), name_0); -} - -function values_47(){ - $clinit_CuttingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]); -} - -defineClass(337, 22, {3:1, 35:1, 22:1, 337:1}, CuttingStrategy); -var ARD, MANUAL, MSD; -var Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CuttingStrategy', 337, Ljava_lang_Enum_2_classLit, values_47, valueOf_41); -function $clinit_CuttingStrategy$Map(){ - $clinit_CuttingStrategy$Map = emptyMethod; - $MAP_29 = createValueOfMap(($clinit_CuttingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit, 1), $intern_36, 337, 0, [ARD, MSD, MANUAL]))); -} - -var $MAP_29; -function $clinit_CycleBreakingStrategy(){ - $clinit_CycleBreakingStrategy = emptyMethod; - GREEDY = new CycleBreakingStrategy('GREEDY', 0); - DEPTH_FIRST = new CycleBreakingStrategy('DEPTH_FIRST', 1); - INTERACTIVE_2 = new CycleBreakingStrategy('INTERACTIVE', 2); - MODEL_ORDER = new CycleBreakingStrategy('MODEL_ORDER', 3); - GREEDY_MODEL_ORDER = new CycleBreakingStrategy('GREEDY_MODEL_ORDER', 4); -} - -function $create_4(this$static){ - switch (this$static.ordinal) { - case 0: - return new GreedyCycleBreaker; - case 1: - return new DepthFirstCycleBreaker; - case 2: - return new InteractiveCycleBreaker; - case 3: - return new ModelOrderCycleBreaker; - case 4: - return new GreedyModelOrderCycleBreaker; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the cycle breaker ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CycleBreakingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_42(name_0){ - $clinit_CycleBreakingStrategy(); - return valueOf(($clinit_CycleBreakingStrategy$Map() , $MAP_30), name_0); -} - -function values_48(){ - $clinit_CycleBreakingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]); -} - -defineClass(335, 22, {3:1, 35:1, 22:1, 335:1, 246:1, 234:1}, CycleBreakingStrategy); -_.create_1 = function create_9(){ - return $create_4(this); -} -; -_.create_2 = function create_8(){ - return $create_4(this); -} -; -var DEPTH_FIRST, GREEDY, GREEDY_MODEL_ORDER, INTERACTIVE_2, MODEL_ORDER; -var Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CycleBreakingStrategy', 335, Ljava_lang_Enum_2_classLit, values_48, valueOf_42); -function $clinit_CycleBreakingStrategy$Map(){ - $clinit_CycleBreakingStrategy$Map = emptyMethod; - $MAP_30 = createValueOfMap(($clinit_CycleBreakingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit, 1), $intern_36, 335, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER, GREEDY_MODEL_ORDER]))); -} - -var $MAP_30; -function $clinit_DirectionCongruency(){ - $clinit_DirectionCongruency = emptyMethod; - READING_DIRECTION = new DirectionCongruency('READING_DIRECTION', 0); - ROTATION = new DirectionCongruency('ROTATION', 1); -} - -function DirectionCongruency(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_43(name_0){ - $clinit_DirectionCongruency(); - return valueOf(($clinit_DirectionCongruency$Map() , $MAP_31), name_0); -} - -function values_49(){ - $clinit_DirectionCongruency(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]); -} - -defineClass(419, 22, {3:1, 35:1, 22:1, 419:1}, DirectionCongruency); -var READING_DIRECTION, ROTATION; -var Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'DirectionCongruency', 419, Ljava_lang_Enum_2_classLit, values_49, valueOf_43); -function $clinit_DirectionCongruency$Map(){ - $clinit_DirectionCongruency$Map = emptyMethod; - $MAP_31 = createValueOfMap(($clinit_DirectionCongruency() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit, 1), $intern_36, 419, 0, [READING_DIRECTION, ROTATION]))); -} - -var $MAP_31; -function $clinit_EdgeConstraint(){ - $clinit_EdgeConstraint = emptyMethod; - NONE_2 = new EdgeConstraint('NONE', 0); - INCOMING_ONLY = new EdgeConstraint('INCOMING_ONLY', 1); - OUTGOING_ONLY = new EdgeConstraint('OUTGOING_ONLY', 2); -} - -function EdgeConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_44(name_0){ - $clinit_EdgeConstraint(); - return valueOf(($clinit_EdgeConstraint$Map() , $MAP_32), name_0); -} - -function values_50(){ - $clinit_EdgeConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]); -} - -defineClass(450, 22, {3:1, 35:1, 22:1, 450:1}, EdgeConstraint); -var INCOMING_ONLY, NONE_2, OUTGOING_ONLY; -var Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeConstraint', 450, Ljava_lang_Enum_2_classLit, values_50, valueOf_44); -function $clinit_EdgeConstraint$Map(){ - $clinit_EdgeConstraint$Map = emptyMethod; - $MAP_32 = createValueOfMap(($clinit_EdgeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeConstraint_2_classLit, 1), $intern_36, 450, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]))); -} - -var $MAP_32; -function $clinit_EdgeLabelSideSelection(){ - $clinit_EdgeLabelSideSelection = emptyMethod; - ALWAYS_UP = new EdgeLabelSideSelection('ALWAYS_UP', 0); - ALWAYS_DOWN = new EdgeLabelSideSelection('ALWAYS_DOWN', 1); - DIRECTION_UP = new EdgeLabelSideSelection('DIRECTION_UP', 2); - DIRECTION_DOWN = new EdgeLabelSideSelection('DIRECTION_DOWN', 3); - SMART_UP = new EdgeLabelSideSelection('SMART_UP', 4); - SMART_DOWN = new EdgeLabelSideSelection('SMART_DOWN', 5); -} - -function $transpose_2(this$static){ - switch (this$static.ordinal) { - case 0: - return ALWAYS_DOWN; - case 1: - return ALWAYS_UP; - case 2: - return DIRECTION_DOWN; - case 3: - return DIRECTION_UP; - case 4: - return SMART_DOWN; - case 5: - return SMART_UP; - default:return null; - } -} - -function EdgeLabelSideSelection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_45(name_0){ - $clinit_EdgeLabelSideSelection(); - return valueOf(($clinit_EdgeLabelSideSelection$Map() , $MAP_33), name_0); -} - -function values_51(){ - $clinit_EdgeLabelSideSelection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]); -} - -defineClass(276, 22, {3:1, 35:1, 22:1, 276:1}, EdgeLabelSideSelection); -var ALWAYS_DOWN, ALWAYS_UP, DIRECTION_DOWN, DIRECTION_UP, SMART_DOWN, SMART_UP; -var Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeLabelSideSelection', 276, Ljava_lang_Enum_2_classLit, values_51, valueOf_45); -function $clinit_EdgeLabelSideSelection$Map(){ - $clinit_EdgeLabelSideSelection$Map = emptyMethod; - $MAP_33 = createValueOfMap(($clinit_EdgeLabelSideSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit, 1), $intern_36, 276, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]))); -} - -var $MAP_33; -function $clinit_EdgeStraighteningStrategy(){ - $clinit_EdgeStraighteningStrategy = emptyMethod; - NONE_3 = new EdgeStraighteningStrategy('NONE', 0); - IMPROVE_STRAIGHTNESS = new EdgeStraighteningStrategy('IMPROVE_STRAIGHTNESS', 1); -} - -function EdgeStraighteningStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_46(name_0){ - $clinit_EdgeStraighteningStrategy(); - return valueOf(($clinit_EdgeStraighteningStrategy$Map() , $MAP_34), name_0); -} - -function values_52(){ - $clinit_EdgeStraighteningStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]); -} - -defineClass(479, 22, {3:1, 35:1, 22:1, 479:1}, EdgeStraighteningStrategy); -var IMPROVE_STRAIGHTNESS, NONE_3; -var Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'EdgeStraighteningStrategy', 479, Ljava_lang_Enum_2_classLit, values_52, valueOf_46); -function $clinit_EdgeStraighteningStrategy$Map(){ - $clinit_EdgeStraighteningStrategy$Map = emptyMethod; - $MAP_34 = createValueOfMap(($clinit_EdgeStraighteningStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit, 1), $intern_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]))); -} - -var $MAP_34; -function $clinit_FixedAlignment(){ - $clinit_FixedAlignment = emptyMethod; - NONE_4 = new FixedAlignment('NONE', 0); - LEFTUP = new FixedAlignment('LEFTUP', 1); - RIGHTUP = new FixedAlignment('RIGHTUP', 2); - LEFTDOWN = new FixedAlignment('LEFTDOWN', 3); - RIGHTDOWN = new FixedAlignment('RIGHTDOWN', 4); - BALANCED = new FixedAlignment('BALANCED', 5); -} - -function FixedAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_47(name_0){ - $clinit_FixedAlignment(); - return valueOf(($clinit_FixedAlignment$Map() , $MAP_35), name_0); -} - -function values_53(){ - $clinit_FixedAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]); -} - -defineClass(274, 22, {3:1, 35:1, 22:1, 274:1}, FixedAlignment); -var BALANCED, LEFTDOWN, LEFTUP, NONE_4, RIGHTDOWN, RIGHTUP; -var Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'FixedAlignment', 274, Ljava_lang_Enum_2_classLit, values_53, valueOf_47); -function $clinit_FixedAlignment$Map(){ - $clinit_FixedAlignment$Map = emptyMethod; - $MAP_35 = createValueOfMap(($clinit_FixedAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit, 1), $intern_36, 274, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]))); -} - -var $MAP_35; -function $clinit_GraphCompactionStrategy(){ - $clinit_GraphCompactionStrategy = emptyMethod; - NONE_5 = new GraphCompactionStrategy('NONE', 0); - LEFT_2 = new GraphCompactionStrategy('LEFT', 1); - RIGHT_2 = new GraphCompactionStrategy('RIGHT', 2); - LEFT_RIGHT_CONSTRAINT_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONSTRAINT_LOCKING', 3); - LEFT_RIGHT_CONNECTION_LOCKING = new GraphCompactionStrategy('LEFT_RIGHT_CONNECTION_LOCKING', 4); - EDGE_LENGTH = new GraphCompactionStrategy('EDGE_LENGTH', 5); -} - -function GraphCompactionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_48(name_0){ - $clinit_GraphCompactionStrategy(); - return valueOf(($clinit_GraphCompactionStrategy$Map() , $MAP_36), name_0); -} - -function values_54(){ - $clinit_GraphCompactionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]); -} - -defineClass(275, 22, {3:1, 35:1, 22:1, 275:1}, GraphCompactionStrategy); -var EDGE_LENGTH, LEFT_2, LEFT_RIGHT_CONNECTION_LOCKING, LEFT_RIGHT_CONSTRAINT_LOCKING, NONE_5, RIGHT_2; -var Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphCompactionStrategy', 275, Ljava_lang_Enum_2_classLit, values_54, valueOf_48); -function $clinit_GraphCompactionStrategy$Map(){ - $clinit_GraphCompactionStrategy$Map = emptyMethod; - $MAP_36 = createValueOfMap(($clinit_GraphCompactionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit, 1), $intern_36, 275, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]))); -} - -var $MAP_36; -function $clinit_GraphProperties(){ - $clinit_GraphProperties = emptyMethod; - COMMENTS = new GraphProperties('COMMENTS', 0); - EXTERNAL_PORTS = new GraphProperties('EXTERNAL_PORTS', 1); - HYPEREDGES = new GraphProperties('HYPEREDGES', 2); - HYPERNODES = new GraphProperties('HYPERNODES', 3); - NON_FREE_PORTS = new GraphProperties('NON_FREE_PORTS', 4); - NORTH_SOUTH_PORTS = new GraphProperties('NORTH_SOUTH_PORTS', 5); - SELF_LOOPS = new GraphProperties('SELF_LOOPS', 6); - CENTER_LABELS = new GraphProperties('CENTER_LABELS', 7); - END_LABELS = new GraphProperties('END_LABELS', 8); - PARTITIONS = new GraphProperties('PARTITIONS', 9); -} - -function GraphProperties(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_49(name_0){ - $clinit_GraphProperties(); - return valueOf(($clinit_GraphProperties$Map() , $MAP_37), name_0); -} - -function values_55(){ - $clinit_GraphProperties(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]); -} - -defineClass(256, 22, {3:1, 35:1, 22:1, 256:1}, GraphProperties); -var CENTER_LABELS, COMMENTS, END_LABELS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, PARTITIONS, SELF_LOOPS; -var Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GraphProperties', 256, Ljava_lang_Enum_2_classLit, values_55, valueOf_49); -function $clinit_GraphProperties$Map(){ - $clinit_GraphProperties$Map = emptyMethod; - $MAP_37 = createValueOfMap(($clinit_GraphProperties() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit, 1), $intern_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]))); -} - -var $MAP_37; -function $clinit_GreedySwitchType(){ - $clinit_GreedySwitchType = emptyMethod; - ONE_SIDED = new GreedySwitchType('ONE_SIDED', 0); - TWO_SIDED = new GreedySwitchType('TWO_SIDED', 1); - OFF = new GreedySwitchType('OFF', 2); -} - -function GreedySwitchType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_50(name_0){ - $clinit_GreedySwitchType(); - return valueOf(($clinit_GreedySwitchType$Map() , $MAP_38), name_0); -} - -function values_56(){ - $clinit_GreedySwitchType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]); -} - -defineClass(292, 22, {3:1, 35:1, 22:1, 292:1}, GreedySwitchType); -var OFF, ONE_SIDED, TWO_SIDED; -var Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'GreedySwitchType', 292, Ljava_lang_Enum_2_classLit, values_56, valueOf_50); -function $clinit_GreedySwitchType$Map(){ - $clinit_GreedySwitchType$Map = emptyMethod; - $MAP_38 = createValueOfMap(($clinit_GreedySwitchType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit, 1), $intern_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]))); -} - -var $MAP_38; -function $clinit_InLayerConstraint(){ - $clinit_InLayerConstraint = emptyMethod; - NONE_6 = new InLayerConstraint('NONE', 0); - TOP_1 = new InLayerConstraint('TOP', 1); - BOTTOM_0 = new InLayerConstraint('BOTTOM', 2); -} - -function InLayerConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_51(name_0){ - $clinit_InLayerConstraint(); - return valueOf(($clinit_InLayerConstraint$Map() , $MAP_39), name_0); -} - -function values_57(){ - $clinit_InLayerConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]); -} - -defineClass(303, 22, {3:1, 35:1, 22:1, 303:1}, InLayerConstraint); -var BOTTOM_0, NONE_6, TOP_1; -var Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InLayerConstraint', 303, Ljava_lang_Enum_2_classLit, values_57, valueOf_51); -function $clinit_InLayerConstraint$Map(){ - $clinit_InLayerConstraint$Map = emptyMethod; - $MAP_39 = createValueOfMap(($clinit_InLayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InLayerConstraint_2_classLit, 1), $intern_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]))); -} - -var $MAP_39; -function $clinit_InteractiveReferencePoint(){ - $clinit_InteractiveReferencePoint = emptyMethod; - CENTER_3 = new InteractiveReferencePoint('CENTER', 0); - TOP_LEFT = new InteractiveReferencePoint('TOP_LEFT', 1); -} - -function InteractiveReferencePoint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_52(name_0){ - $clinit_InteractiveReferencePoint(); - return valueOf(($clinit_InteractiveReferencePoint$Map() , $MAP_40), name_0); -} - -function values_58(){ - $clinit_InteractiveReferencePoint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]); -} - -defineClass(420, 22, {3:1, 35:1, 22:1, 420:1}, InteractiveReferencePoint); -var CENTER_3, TOP_LEFT; -var Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'InteractiveReferencePoint', 420, Ljava_lang_Enum_2_classLit, values_58, valueOf_52); -function $clinit_InteractiveReferencePoint$Map(){ - $clinit_InteractiveReferencePoint$Map = emptyMethod; - $MAP_40 = createValueOfMap(($clinit_InteractiveReferencePoint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit, 1), $intern_36, 420, 0, [CENTER_3, TOP_LEFT]))); -} - -var $MAP_40; -function $clinit_InternalProperties_1(){ - $clinit_InternalProperties_1 = emptyMethod; - var all, all0; - ORIGIN_0 = new Property('origin'); - COORDINATE_SYSTEM_ORIGIN = new Property('coordinateOrigin'); - PROCESSORS = new Property('processors'); - COMPOUND_NODE = new Property_0('compoundNode', ($clinit_Boolean() , false)); - INSIDE_CONNECTIONS = new Property_0('insideConnections', false); - ORIGINAL_BENDPOINTS = new Property('originalBendpoints'); - ORIGINAL_DUMMY_NODE_POSITION = new Property('originalDummyNodePosition'); - ORIGINAL_LABEL_EDGE = new Property('originalLabelEdge'); - REPRESENTED_LABELS = new Property('representedLabels'); - END_LABELS_0 = new Property('endLabels'); - END_LABEL_EDGE = new Property('endLabel.origin'); - LABEL_SIDE = new Property_0('labelSide', ($clinit_LabelSide() , UNKNOWN)); - MAX_EDGE_THICKNESS = new Property_0('maxEdgeThickness', 0); - REVERSED = new Property_0('reversed', false); - RANDOM_0 = new Property('random'); - LONG_EDGE_SOURCE = new Property_0('longEdgeSource', null); - LONG_EDGE_TARGET = new Property_0('longEdgeTarget', null); - LONG_EDGE_HAS_LABEL_DUMMIES = new Property_0('longEdgeHasLabelDummies', false); - LONG_EDGE_BEFORE_LABEL_DUMMY = new Property_0('longEdgeBeforeLabelDummy', false); - EDGE_CONSTRAINT = new Property_0('edgeConstraint', ($clinit_EdgeConstraint() , NONE_2)); - IN_LAYER_LAYOUT_UNIT = new Property('inLayerLayoutUnit'); - IN_LAYER_CONSTRAINT = new Property_0('inLayerConstraint', ($clinit_InLayerConstraint() , NONE_6)); - IN_LAYER_SUCCESSOR_CONSTRAINTS = new Property_0('inLayerSuccessorConstraint', new ArrayList); - IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES = new Property_0('inLayerSuccessorConstraintBetweenNonDummies', false); - PORT_DUMMY = new Property('portDummy'); - CROSSING_HINT = new Property_0('crossingHint', valueOf_4(0)); - GRAPH_PROPERTIES = new Property_0('graphProperties', (all0 = castTo($getEnumConstants(Lorg_eclipse_elk_alg_layered_options_GraphProperties_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0))); - EXT_PORT_SIDE = new Property_0('externalPortSide', ($clinit_PortSide() , UNDEFINED_5)); - EXT_PORT_SIZE = new Property_0('externalPortSize', new KVector); - EXT_PORT_REPLACED_DUMMIES = new Property('externalPortReplacedDummies'); - EXT_PORT_REPLACED_DUMMY = new Property('externalPortReplacedDummy'); - EXT_PORT_CONNECTIONS = new Property_0('externalPortConnections', (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); - PORT_RATIO_OR_POSITION_0 = new Property_0('portRatioOrPosition', 0); - BARYCENTER_ASSOCIATES = new Property('barycenterAssociates'); - TOP_COMMENTS = new Property('TopSideComments'); - BOTTOM_COMMENTS = new Property('BottomSideComments'); - COMMENT_CONN_PORT = new Property('CommentConnectionPort'); - INPUT_COLLECT = new Property_0('inputCollect', false); - OUTPUT_COLLECT = new Property_0('outputCollect', false); - CYCLIC = new Property_0('cyclic', false); - CROSS_HIERARCHY_MAP = new Property('crossHierarchyMap'); - TARGET_OFFSET = new Property('targetOffset'); - new Property_0('splineLabelSize', new KVector); - SPACINGS = new Property('spacings'); - PARTITION_DUMMY = new Property_0('partitionConstraint', false); - BREAKING_POINT_INFO = new Property('breakingPoint.info'); - SPLINE_SURVIVING_EDGE = new Property('splines.survivingEdge'); - SPLINE_ROUTE_START = new Property('splines.route.start'); - SPLINE_EDGE_CHAIN = new Property('splines.edgeChain'); - ORIGINAL_PORT_CONSTRAINTS = new Property('originalPortConstraints'); - SELF_LOOP_HOLDER = new Property('selfLoopHolder'); - SPLINE_NS_PORT_Y_COORD = new Property('splines.nsPortY'); - MODEL_ORDER_0 = new Property('modelOrder'); - LONG_EDGE_TARGET_NODE = new Property('longEdgeTargetNode'); - FIRST_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); - SECOND_TRY_WITH_INITIAL_ORDER = new Property_0('firstTryWithInitialOrder', false); - HIDDEN_NODES = new Property('layerConstraints.hiddenNodes'); - ORIGINAL_OPPOSITE_PORT = new Property('layerConstraints.opposidePort'); - TARGET_NODE_MODEL_ORDER = new Property('targetNode.modelOrder'); -} - -var BARYCENTER_ASSOCIATES, BOTTOM_COMMENTS, BREAKING_POINT_INFO, COMMENT_CONN_PORT, COMPOUND_NODE, COORDINATE_SYSTEM_ORIGIN, CROSSING_HINT, CROSS_HIERARCHY_MAP, CYCLIC, EDGE_CONSTRAINT, END_LABELS_0, END_LABEL_EDGE, EXT_PORT_CONNECTIONS, EXT_PORT_REPLACED_DUMMIES, EXT_PORT_REPLACED_DUMMY, EXT_PORT_SIDE, EXT_PORT_SIZE, FIRST_TRY_WITH_INITIAL_ORDER, GRAPH_PROPERTIES, HIDDEN_NODES, INPUT_COLLECT, INSIDE_CONNECTIONS, IN_LAYER_CONSTRAINT, IN_LAYER_LAYOUT_UNIT, IN_LAYER_SUCCESSOR_CONSTRAINTS, IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES, LABEL_SIDE, LONG_EDGE_BEFORE_LABEL_DUMMY, LONG_EDGE_HAS_LABEL_DUMMIES, LONG_EDGE_SOURCE, LONG_EDGE_TARGET, LONG_EDGE_TARGET_NODE, MAX_EDGE_THICKNESS, MODEL_ORDER_0, ORIGIN_0, ORIGINAL_BENDPOINTS, ORIGINAL_DUMMY_NODE_POSITION, ORIGINAL_LABEL_EDGE, ORIGINAL_OPPOSITE_PORT, ORIGINAL_PORT_CONSTRAINTS, OUTPUT_COLLECT, PARTITION_DUMMY, PORT_DUMMY, PORT_RATIO_OR_POSITION_0, PROCESSORS, RANDOM_0, REPRESENTED_LABELS, REVERSED, SECOND_TRY_WITH_INITIAL_ORDER, SELF_LOOP_HOLDER, SPACINGS, SPLINE_EDGE_CHAIN, SPLINE_NS_PORT_Y_COORD, SPLINE_ROUTE_START, SPLINE_SURVIVING_EDGE, TARGET_NODE_MODEL_ORDER, TARGET_OFFSET, TOP_COMMENTS; -function $clinit_LayerConstraint(){ - $clinit_LayerConstraint = emptyMethod; - NONE_7 = new LayerConstraint('NONE', 0); - FIRST = new LayerConstraint('FIRST', 1); - FIRST_SEPARATE_0 = new LayerConstraint('FIRST_SEPARATE', 2); - LAST = new LayerConstraint('LAST', 3); - LAST_SEPARATE_0 = new LayerConstraint('LAST_SEPARATE', 4); -} - -function LayerConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_53(name_0){ - $clinit_LayerConstraint(); - return valueOf(($clinit_LayerConstraint$Map() , $MAP_41), name_0); -} - -function values_59(){ - $clinit_LayerConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]); -} - -defineClass(163, 22, {3:1, 35:1, 22:1, 163:1}, LayerConstraint); -var FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0, NONE_7; -var Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayerConstraint', 163, Ljava_lang_Enum_2_classLit, values_59, valueOf_53); -function $clinit_LayerConstraint$Map(){ - $clinit_LayerConstraint$Map = emptyMethod; - $MAP_41 = createValueOfMap(($clinit_LayerConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit, 1), $intern_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]))); -} - -var $MAP_41; -function $clinit_LayeredMetaDataProvider(){ - $clinit_LayeredMetaDataProvider = emptyMethod; - DIRECTION_CONGRUENCY_DEFAULT = ($clinit_DirectionCongruency() , READING_DIRECTION); - DIRECTION_CONGRUENCY = new Property_1('org.eclipse.elk.layered.directionCongruency', DIRECTION_CONGRUENCY_DEFAULT); - FEEDBACK_EDGES = new Property_1('org.eclipse.elk.layered.feedbackEdges', ($clinit_Boolean() , false)); - INTERACTIVE_REFERENCE_POINT_DEFAULT = ($clinit_InteractiveReferencePoint() , CENTER_3); - INTERACTIVE_REFERENCE_POINT = new Property_1('org.eclipse.elk.layered.interactiveReferencePoint', INTERACTIVE_REFERENCE_POINT_DEFAULT); - MERGE_EDGES = new Property_1('org.eclipse.elk.layered.mergeEdges', false); - MERGE_HIERARCHY_EDGES = new Property_1('org.eclipse.elk.layered.mergeHierarchyEdges', true); - ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES = new Property_1('org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', false); - PORT_SORTING_STRATEGY_DEFAULT = ($clinit_PortSortingStrategy() , INPUT_ORDER); - PORT_SORTING_STRATEGY = new Property_1('org.eclipse.elk.layered.portSortingStrategy', PORT_SORTING_STRATEGY_DEFAULT); - valueOf_4(1); - THOROUGHNESS = new Property_1('org.eclipse.elk.layered.thoroughness', valueOf_4(7)); - UNNECESSARY_BENDPOINTS = new Property_1('org.eclipse.elk.layered.unnecessaryBendpoints', false); - GENERATE_POSITION_AND_LAYER_IDS = new Property_1('org.eclipse.elk.layered.generatePositionAndLayerIds', false); - CYCLE_BREAKING_STRATEGY_DEFAULT = ($clinit_CycleBreakingStrategy() , GREEDY); - CYCLE_BREAKING_STRATEGY = new Property_1('org.eclipse.elk.layered.cycleBreaking.strategy', CYCLE_BREAKING_STRATEGY_DEFAULT); - LAYERING_STRATEGY_DEFAULT = ($clinit_LayeringStrategy() , NETWORK_SIMPLEX); - LAYERING_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.strategy', LAYERING_STRATEGY_DEFAULT); - LAYERING_LAYER_CONSTRAINT_DEFAULT = ($clinit_LayerConstraint() , NONE_7); - LAYERING_LAYER_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerConstraint', LAYERING_LAYER_CONSTRAINT_DEFAULT); - valueOf_4(-1); - LAYERING_LAYER_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerChoiceConstraint', valueOf_4(-1)); - valueOf_4(-1); - LAYERING_LAYER_ID = new Property_1('org.eclipse.elk.layered.layering.layerId', valueOf_4(-1)); - valueOf_4(-1); - LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', valueOf_4(4)); - valueOf_4(-1); - LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', valueOf_4(2)); - LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT = ($clinit_NodePromotionStrategy() , NONE_9); - LAYERING_NODE_PROMOTION_STRATEGY = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.strategy', LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT); - valueOf_4(0); - LAYERING_NODE_PROMOTION_MAX_ITERATIONS = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.maxIterations', valueOf_4(0)); - LAYERING_COFFMAN_GRAHAM_LAYER_BOUND = new Property_1('org.eclipse.elk.layered.layering.coffmanGraham.layerBound', valueOf_4($intern_0)); - CROSSING_MINIMIZATION_STRATEGY_DEFAULT = ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP); - CROSSING_MINIMIZATION_STRATEGY = new Property_1('org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_STRATEGY_DEFAULT); - CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', false); - CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS = new Property_1('org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 0.1); - CROSSING_MINIMIZATION_SEMI_INTERACTIVE = new Property_1('org.eclipse.elk.layered.crossingMinimization.semiInteractive', false); - valueOf_4(-1); - CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', valueOf_4(-1)); - valueOf_4(-1); - CROSSING_MINIMIZATION_POSITION_ID = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionId', valueOf_4(-1)); - valueOf_4(0); - CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', valueOf_4(40)); - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT = ($clinit_GreedySwitchType() , TWO_SIDED); - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT); - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT = OFF; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT); - NODE_PLACEMENT_STRATEGY_DEFAULT = ($clinit_NodePlacementStrategy() , BRANDES_KOEPF); - NODE_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_STRATEGY_DEFAULT); - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES = new Property('org.eclipse.elk.layered.nodePlacement.favorStraightEdges'); - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT = ($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS); - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT); - NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT = ($clinit_FixedAlignment() , NONE_4); - NODE_PLACEMENT_BK_FIXED_ALIGNMENT = new Property_1('org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT); - new ExclusiveBounds$ExclusiveLowerBound; - NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING = new Property_1('org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 0.3); - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY = new Property('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'); - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT = ($clinit_NodeFlexibility() , NONE_8); - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT = new Property_1('org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT); - EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT = ($clinit_SelfLoopDistributionStrategy() , NORTH_2); - EDGE_ROUTING_SELF_LOOP_DISTRIBUTION = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT); - EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT = ($clinit_SelfLoopOrderingStrategy() , STACKED); - EDGE_ROUTING_SELF_LOOP_ORDERING = new Property_1('org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT); - EDGE_ROUTING_SPLINES_MODE_DEFAULT = ($clinit_SplineRoutingMode() , SLOPPY); - EDGE_ROUTING_SPLINES_MODE = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_MODE_DEFAULT); - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR = new Property_1('org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 0.2); - EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH = new Property_1('org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 2); - SPACING_BASE_VALUE = new Property_1('org.eclipse.elk.layered.spacing.baseValue', null); - SPACING_EDGE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', 10); - SPACING_EDGE_EDGE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', 10); - SPACING_NODE_NODE_BETWEEN_LAYERS = new Property_1('org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', 20); - valueOf_4(0); - PRIORITY_DIRECTION = new Property_1('org.eclipse.elk.layered.priority.direction', valueOf_4(0)); - valueOf_4(0); - PRIORITY_SHORTNESS = new Property_1('org.eclipse.elk.layered.priority.shortness', valueOf_4(0)); - valueOf_4(0); - PRIORITY_STRAIGHTNESS = new Property_1('org.eclipse.elk.layered.priority.straightness', valueOf_4(0)); - COMPACTION_CONNECTED_COMPONENTS = new Property_1('org.eclipse.elk.layered.compaction.connectedComponents', false); - COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT = ($clinit_GraphCompactionStrategy() , NONE_5); - COMPACTION_POST_COMPACTION_STRATEGY = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.strategy', COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT); - COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT = ($clinit_ConstraintCalculationStrategy() , SCANLINE); - COMPACTION_POST_COMPACTION_CONSTRAINTS = new Property_1('org.eclipse.elk.layered.compaction.postCompaction.constraints', COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT); - HIGH_DEGREE_NODES_TREATMENT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treatment', false); - valueOf_4(0); - HIGH_DEGREE_NODES_THRESHOLD = new Property_1('org.eclipse.elk.layered.highDegreeNodes.threshold', valueOf_4(16)); - valueOf_4(0); - HIGH_DEGREE_NODES_TREE_HEIGHT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treeHeight', valueOf_4(5)); - WRAPPING_STRATEGY_DEFAULT = ($clinit_WrappingStrategy() , OFF_0); - WRAPPING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.strategy', WRAPPING_STRATEGY_DEFAULT); - WRAPPING_ADDITIONAL_EDGE_SPACING = new Property_1('org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 10); - WRAPPING_CORRECTION_FACTOR = new Property_1('org.eclipse.elk.layered.wrapping.correctionFactor', 1); - WRAPPING_CUTTING_STRATEGY_DEFAULT = ($clinit_CuttingStrategy() , MSD); - WRAPPING_CUTTING_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_STRATEGY_DEFAULT); - WRAPPING_CUTTING_CUTS = new Property('org.eclipse.elk.layered.wrapping.cutting.cuts'); - WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT = valueOf_4(1); - valueOf_4(0); - WRAPPING_CUTTING_MSD_FREEDOM = new Property_1('org.eclipse.elk.layered.wrapping.cutting.msd.freedom', WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT); - WRAPPING_VALIDIFY_STRATEGY_DEFAULT = ($clinit_ValidifyStrategy() , GREEDY_0); - WRAPPING_VALIDIFY_STRATEGY = new Property_1('org.eclipse.elk.layered.wrapping.validify.strategy', WRAPPING_VALIDIFY_STRATEGY_DEFAULT); - WRAPPING_VALIDIFY_FORBIDDEN_INDICES = new Property('org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'); - WRAPPING_MULTI_EDGE_IMPROVE_CUTS = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); - WRAPPING_MULTI_EDGE_DISTANCE_PENALTY = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 2); - WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES = new Property_1('org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', true); - EDGE_LABELS_SIDE_SELECTION_DEFAULT = ($clinit_EdgeLabelSideSelection() , SMART_DOWN); - EDGE_LABELS_SIDE_SELECTION = new Property_1('org.eclipse.elk.layered.edgeLabels.sideSelection', EDGE_LABELS_SIDE_SELECTION_DEFAULT); - EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT = ($clinit_CenterEdgeLabelPlacementStrategy() , MEDIAN_LAYER); - EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY = new Property_1('org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT); - CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT = ($clinit_OrderingStrategy() , NONE_10); - CONSIDER_MODEL_ORDER_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.strategy', CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT); - CONSIDER_MODEL_ORDER_NO_MODEL_ORDER = new Property_1('org.eclipse.elk.layered.considerModelOrder.noModelOrder', false); - CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT = ($clinit_ComponentOrderingStrategy() , NONE); - CONSIDER_MODEL_ORDER_COMPONENTS = new Property_1('org.eclipse.elk.layered.considerModelOrder.components', CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT); - CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT = ($clinit_LongEdgeOrderingStrategy() , DUMMY_NODE_OVER); - CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY = new Property_1('org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT); - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 0); - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE = new Property_1('org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 0); - INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0 = INTERACTIVE_2; - INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1 = INTERACTIVE_1; - LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; - LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0 = MIN_WIDTH; - LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0 = COFFMAN_GRAHAM; - CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0 = ($clinit_HierarchyHandling() , INCLUDE_CHILDREN); - CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0 = LAYER_SWEEP; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1 = INCLUDE_CHILDREN; - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1 = BRANDES_KOEPF; - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; - NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0 = BRANDES_KOEPF; - NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0 = LINEAR_SEGMENTS; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0 = NETWORK_SIMPLEX_0; - EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0 = ($clinit_EdgeRouting() , SPLINES); - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0 = SPLINES; - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1 = SLOPPY; - EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0 = POLYLINE; - WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0 = MANUAL; - WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0 = MSD; - WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0 = SINGLE_EDGE; - WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1 = MULTI_EDGE; - WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; - WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; - WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0 = MULTI_EDGE; -} - -function LayeredMetaDataProvider(){ - $clinit_LayeredMetaDataProvider(); -} - -defineClass(848, 1, $intern_90, LayeredMetaDataProvider); -_.apply_4 = function apply_135(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.directionCongruency'), ''), 'Direction Congruency'), 'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'), DIRECTION_CONGRUENCY_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.feedbackEdges'), ''), 'Feedback Edges'), 'Whether feedback edges should be highlighted by routing around the nodes.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.interactiveReferencePoint'), ''), 'Interactive Reference Point'), 'Determines which point of a node is considered by interactive layout phases.'), INTERACTIVE_REFERENCE_POINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_InteractiveReferencePoint_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.cycleBreaking.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.interactiveReferencePoint', 'org.eclipse.elk.layered.crossingMinimization.strategy', INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeEdges'), ''), 'Merge Edges'), 'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.mergeHierarchyEdges'), ''), 'Merge Hierarchy-Crossing Edges'), 'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($legacyIds($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides'), ''), 'Allow Non-Flow Ports To Switch Sides'), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PORTS)), stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['org.eclipse.elk.layered.northOrSouthPort'])))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.portSortingStrategy'), ''), 'Port Sorting Strategy'), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), PORT_SORTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.thoroughness'), ''), 'Thoroughness'), 'How much effort should be spent to produce a nice layout.'), valueOf_4(7)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.unnecessaryBendpoints'), ''), 'Add Unnecessary Bendpoints'), 'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.generatePositionAndLayerIds'), ''), 'Generate Position and Layer IDs'), 'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.cycleBreaking.strategy'), 'cycleBreaking'), 'Cycle Breaking Strategy'), 'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'), CYCLE_BREAKING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.strategy'), 'layering'), 'Node Layering Strategy'), 'Strategy for node layering.'), LAYERING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerConstraint'), 'layering'), 'Layer Constraint'), 'Determines a constraint on the placement of the node regarding the layering.'), LAYERING_LAYER_CONSTRAINT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LayerConstraint_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerChoiceConstraint'), 'layering'), 'Layer Choice Constraint'), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.layerId'), 'layering'), 'Layer ID'), 'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth'), 'layering.minWidth'), 'Upper Bound On Width [MinWidth Layerer]'), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(4)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor'), 'layering.minWidth'), 'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), valueOf_4(2)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', 'org.eclipse.elk.layered.layering.strategy', LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.strategy'), 'layering.nodePromotion'), 'Node Promotion Strategy'), 'Reduces number of dummy nodes after layering phase (if possible).'), LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations'), 'layering.nodePromotion'), 'Max Node Promotion Iterations'), 'Limits the number of iterations for node promotion.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound'), 'layering.coffmanGraham'), 'Layer Bound'), 'The maximum number of nodes allowed per layer.'), valueOf_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', 'org.eclipse.elk.layered.layering.strategy', LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.strategy'), 'crossingMinimization'), 'Crossing Minimization Strategy'), 'Strategy for crossing minimization.'), CROSSING_MINIMIZATION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CrossingMinimizationStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder'), 'crossingMinimization'), 'Force Node Model Order'), 'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness'), 'crossingMinimization'), 'Hierarchical Sweepiness'), 'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'), 0.1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive'), 'crossingMinimization'), 'Semi-Interactive Crossing Minimization'), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint'), 'crossingMinimization'), 'Position Choice Constraint'), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.positionId'), 'crossingMinimization'), 'Position ID'), 'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Activation Threshold'), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), valueOf_4(40)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type'), 'crossingMinimization.greedySwitch'), 'Greedy Switch Crossing Minimization'), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type'), 'crossingMinimization.greedySwitchHierarchical'), 'Greedy Switch Crossing Minimization (hierarchical)'), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GreedySwitchType_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.layered.crossingMinimization.strategy', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', 'org.eclipse.elk.hierarchyHandling', CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.strategy'), 'nodePlacement'), 'Node Placement Strategy'), 'Strategy for node placement.'), NODE_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges'), 'nodePlacement'), 'Favor Straight Edges Over Balancing'), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening'), 'nodePlacement.bk'), 'BK Edge Straightening'), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeStraighteningStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment'), 'nodePlacement.bk'), 'BK Fixed Alignment'), 'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'), NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_FixedAlignment_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening'), 'nodePlacement.linearSegments'), 'Linear Segments Deflection Dampening'), 'Dampens the movement of nodes to keep the diagram from getting too large.'), 0.3), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility'), 'nodePlacement.networkSimplex'), 'Node Flexibility'), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(NODES)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default'), 'nodePlacement.networkSimplex.nodeFlexibility'), 'Node Flexibility Default'), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', 'org.eclipse.elk.layered.nodePlacement.strategy', NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution'), 'edgeRouting'), 'Self-Loop Distribution'), 'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering'), 'edgeRouting'), 'Self-Loop Ordering'), 'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'), EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.mode'), 'edgeRouting.splines'), 'Spline Routing Mode'), 'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'), EDGE_ROUTING_SPLINES_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.mode', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor'), 'edgeRouting.splines.sloppy'), 'Sloppy Spline Layer Spacing Factor'), 'Spacing factor for routing area between layers when using sloppy spline routing.'), 0.2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', 'org.eclipse.elk.layered.edgeRouting.splines.mode', EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth'), 'edgeRouting.polyline'), 'Sloped Edge Zone Width'), 'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.baseValue'), 'spacing'), 'Spacing Base Value'), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers'), 'spacing'), 'Edge Node Between Layers Spacing'), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers'), 'spacing'), 'Edge Edge Between Layer Spacing'), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers'), 'spacing'), 'Node Node Between Layers Spacing'), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.direction'), 'priority'), 'Direction Priority'), 'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.shortness'), 'priority'), 'Shortness Priority'), 'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.priority.straightness'), 'priority'), 'Straightness Priority'), 'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'), valueOf_4(0)), INT), Ljava_lang_Integer_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.connectedComponents'), 'compaction'), 'Connected Components Compaction'), 'Tries to further compact components (disconnected sub-graphs).'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.compaction.connectedComponents', 'org.eclipse.elk.separateConnectedComponents', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.strategy'), 'compaction.postCompaction'), 'Post Compaction Strategy'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_GraphCompactionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.compaction.postCompaction.constraints'), 'compaction.postCompaction'), 'Post Compaction Constraint Calculation'), 'Specifies whether and how post-process compaction is applied.'), COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treatment'), 'highDegreeNodes'), 'High Degree Node Treatment'), 'Makes room around high degree nodes to place leafs and trees.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.threshold'), 'highDegreeNodes'), 'High Degree Node Threshold'), 'Whether a node is considered to have a high degree.'), valueOf_4(16)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.threshold', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight'), 'highDegreeNodes'), 'High Degree Node Maximum Tree Height'), 'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'), valueOf_4(5)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', 'org.eclipse.elk.layered.highDegreeNodes.treatment', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.strategy'), 'wrapping'), 'Graph Wrapping Strategy'), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), WRAPPING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing'), 'wrapping'), 'Additional Wrapped Edges Spacing'), 'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.correctionFactor'), 'wrapping'), 'Correction Factor for Wrapping'), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.correctionFactor', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.strategy'), 'wrapping.cutting'), 'Cutting Strategy'), 'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'), WRAPPING_CUTTING_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.cuts'), 'wrapping.cutting'), 'Manually Specified Cuts'), 'Allows the user to specify her own cuts for a certain graph.'), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.cuts', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom'), 'wrapping.cutting.msd'), 'MSD Freedom'), 'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'), WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', 'org.eclipse.elk.layered.wrapping.cutting.strategy', WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.strategy'), 'wrapping.validify'), 'Validification Strategy'), 'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'), WRAPPING_VALIDIFY_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.strategy', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices'), 'wrapping.validify'), 'Valid Indices for Wrapping'), null), OBJECT), Ljava_util_List_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts'), 'wrapping.multiEdge'), 'Improve Cuts'), 'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty'), 'wrapping.multiEdge'), 'Distance Penalty When Improving Cuts'), null), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', true); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges'), 'wrapping.multiEdge'), 'Improve Wrapped Edges'), 'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', 'org.eclipse.elk.layered.wrapping.strategy', WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.sideSelection'), 'edgeLabels'), 'Edge Label Side Selection'), 'Method to decide on edge label sides.'), EDGE_LABELS_SIDE_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_EdgeLabelSideSelection_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy'), 'edgeLabels'), 'Edge Center Label Placement Strategy'), 'Determines in which layer center labels of long edges should be placed.'), EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.strategy'), 'considerModelOrder'), 'Consider Model Order'), 'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'), CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.noModelOrder'), 'considerModelOrder'), 'No Model Order'), 'Set on a node to not set a model order for this node even though it is a real node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.components'), 'considerModelOrder'), 'Consider Model Order for Components'), 'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'), CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.components', 'org.eclipse.elk.separateConnectedComponents', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy'), 'considerModelOrder'), 'Long Edge Ordering Strategy'), 'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'), CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence'), 'considerModelOrder'), 'Crossing Counter Node Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence'), 'considerModelOrder'), 'Crossing Counter Port Order Influence'), 'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', 'org.eclipse.elk.layered.considerModelOrder.strategy', null); - $apply_16((new LayeredOptions , registry)); -} -; -var ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES, COMPACTION_CONNECTED_COMPONENTS, COMPACTION_POST_COMPACTION_CONSTRAINTS, COMPACTION_POST_COMPACTION_CONSTRAINTS_DEFAULT, COMPACTION_POST_COMPACTION_STRATEGY, COMPACTION_POST_COMPACTION_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_COMPONENTS, CONSIDER_MODEL_ORDER_COMPONENTS_DEFAULT, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_DEFAULT, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER, CONSIDER_MODEL_ORDER_STRATEGY, CONSIDER_MODEL_ORDER_STRATEGY_DEFAULT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_DEP_HIERARCHY_HANDLING_1, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEFAULT, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_DEP_HIERARCHY_HANDLING_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT, CROSSING_MINIMIZATION_POSITION_ID, CROSSING_MINIMIZATION_SEMI_INTERACTIVE, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_DEP_CROSSING_MINIMIZATION_STRATEGY_0, CROSSING_MINIMIZATION_STRATEGY, CROSSING_MINIMIZATION_STRATEGY_DEFAULT, CYCLE_BREAKING_STRATEGY, CYCLE_BREAKING_STRATEGY_DEFAULT, DIRECTION_CONGRUENCY, DIRECTION_CONGRUENCY_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_DEFAULT, EDGE_LABELS_SIDE_SELECTION, EDGE_LABELS_SIDE_SELECTION_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_DEFAULT, EDGE_ROUTING_SELF_LOOP_ORDERING, EDGE_ROUTING_SELF_LOOP_ORDERING_DEFAULT, EDGE_ROUTING_SPLINES_MODE, EDGE_ROUTING_SPLINES_MODE_DEFAULT, EDGE_ROUTING_SPLINES_MODE_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_DEP_EDGE_ROUTING_SPLINES_MODE_1, FEEDBACK_EDGES, GENERATE_POSITION_AND_LAYER_IDS, HIGH_DEGREE_NODES_THRESHOLD, HIGH_DEGREE_NODES_TREATMENT, HIGH_DEGREE_NODES_TREE_HEIGHT, INTERACTIVE_REFERENCE_POINT, INTERACTIVE_REFERENCE_POINT_DEFAULT, INTERACTIVE_REFERENCE_POINT_DEP_CROSSING_MINIMIZATION_STRATEGY_1, INTERACTIVE_REFERENCE_POINT_DEP_CYCLE_BREAKING_STRATEGY_0, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_DEP_LAYERING_STRATEGY_0, LAYERING_LAYER_CHOICE_CONSTRAINT, LAYERING_LAYER_CONSTRAINT, LAYERING_LAYER_CONSTRAINT_DEFAULT, LAYERING_LAYER_ID, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_DEP_LAYERING_STRATEGY_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_DEP_LAYERING_STRATEGY_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS, LAYERING_NODE_PROMOTION_STRATEGY, LAYERING_NODE_PROMOTION_STRATEGY_DEFAULT, LAYERING_STRATEGY, LAYERING_STRATEGY_DEFAULT, MERGE_EDGES, MERGE_HIERARCHY_EDGES, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEFAULT, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEFAULT, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_DEP_NODE_PLACEMENT_STRATEGY_1, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEFAULT, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEP_NODE_PLACEMENT_STRATEGY_0, NODE_PLACEMENT_STRATEGY, NODE_PLACEMENT_STRATEGY_DEFAULT, PORT_SORTING_STRATEGY, PORT_SORTING_STRATEGY_DEFAULT, PRIORITY_DIRECTION, PRIORITY_SHORTNESS, PRIORITY_STRAIGHTNESS, SPACING_BASE_VALUE, SPACING_EDGE_EDGE_BETWEEN_LAYERS, SPACING_EDGE_NODE_BETWEEN_LAYERS, SPACING_NODE_NODE_BETWEEN_LAYERS, THOROUGHNESS, UNNECESSARY_BENDPOINTS, WRAPPING_ADDITIONAL_EDGE_SPACING, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_0, WRAPPING_ADDITIONAL_EDGE_SPACING_DEP_WRAPPING_STRATEGY_1, WRAPPING_CORRECTION_FACTOR, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_0, WRAPPING_CORRECTION_FACTOR_DEP_WRAPPING_STRATEGY_1, WRAPPING_CUTTING_CUTS, WRAPPING_CUTTING_CUTS_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_MSD_FREEDOM, WRAPPING_CUTTING_MSD_FREEDOM_DEFAULT, WRAPPING_CUTTING_MSD_FREEDOM_DEP_WRAPPING_CUTTING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY, WRAPPING_CUTTING_STRATEGY_DEFAULT, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_CUTTING_STRATEGY_DEP_WRAPPING_STRATEGY_1, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_DEP_WRAPPING_STRATEGY_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_DEP_WRAPPING_STRATEGY_0, WRAPPING_STRATEGY, WRAPPING_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_FORBIDDEN_INDICES, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_DEP_WRAPPING_STRATEGY_1, WRAPPING_VALIDIFY_STRATEGY, WRAPPING_VALIDIFY_STRATEGY_DEFAULT, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_STRATEGY_DEP_WRAPPING_STRATEGY_1; -var Lorg_eclipse_elk_alg_layered_options_LayeredMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredMetaDataProvider', 848); -function $clinit_LayeredOptions(){ - $clinit_LayeredOptions = emptyMethod; - SPACING_COMMENT_COMMENT = ($clinit_CoreOptions() , SPACING_COMMENT_COMMENT_0); - SPACING_COMMENT_NODE = SPACING_COMMENT_NODE_0; - SPACING_COMPONENT_COMPONENT_0 = SPACING_COMPONENT_COMPONENT_1; - SPACING_EDGE_EDGE = SPACING_EDGE_EDGE_0; - SPACING_EDGE_LABEL_0 = SPACING_EDGE_LABEL_1; - SPACING_EDGE_NODE = SPACING_EDGE_NODE_0; - SPACING_LABEL_LABEL = SPACING_LABEL_LABEL_0; - SPACING_LABEL_PORT_HORIZONTAL = SPACING_LABEL_PORT_HORIZONTAL_0; - SPACING_LABEL_PORT_VERTICAL = SPACING_LABEL_PORT_VERTICAL_0; - SPACING_LABEL_NODE = SPACING_LABEL_NODE_0; - SPACING_NODE_NODE_0 = SPACING_NODE_NODE_6; - SPACING_NODE_SELF_LOOP = SPACING_NODE_SELF_LOOP_0; - SPACING_PORT_PORT = SPACING_PORT_PORT_0; - SPACING_INDIVIDUAL = SPACING_INDIVIDUAL_0; - SPACING_BASE_VALUE_0 = ($clinit_LayeredMetaDataProvider() , SPACING_BASE_VALUE); - SPACING_EDGE_EDGE_BETWEEN_LAYERS_0 = SPACING_EDGE_EDGE_BETWEEN_LAYERS; - SPACING_EDGE_NODE_BETWEEN_LAYERS_0 = SPACING_EDGE_NODE_BETWEEN_LAYERS; - SPACING_NODE_NODE_BETWEEN_LAYERS_0 = SPACING_NODE_NODE_BETWEEN_LAYERS; - PRIORITY_0 = new Property_2(PRIORITY_3, valueOf_4(0)); - PRIORITY_DIRECTION_0 = PRIORITY_DIRECTION; - PRIORITY_SHORTNESS_0 = PRIORITY_SHORTNESS; - PRIORITY_STRAIGHTNESS_0 = PRIORITY_STRAIGHTNESS; - WRAPPING_STRATEGY_0 = WRAPPING_STRATEGY; - WRAPPING_ADDITIONAL_EDGE_SPACING_0 = WRAPPING_ADDITIONAL_EDGE_SPACING; - WRAPPING_CORRECTION_FACTOR_0 = WRAPPING_CORRECTION_FACTOR; - WRAPPING_CUTTING_STRATEGY_0 = WRAPPING_CUTTING_STRATEGY; - WRAPPING_CUTTING_CUTS_0 = WRAPPING_CUTTING_CUTS; - WRAPPING_CUTTING_MSD_FREEDOM_0 = WRAPPING_CUTTING_MSD_FREEDOM; - WRAPPING_VALIDIFY_STRATEGY_0 = WRAPPING_VALIDIFY_STRATEGY; - WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0 = WRAPPING_VALIDIFY_FORBIDDEN_INDICES; - WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0 = WRAPPING_MULTI_EDGE_IMPROVE_CUTS; - WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0 = WRAPPING_MULTI_EDGE_DISTANCE_PENALTY; - WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0 = WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY; - NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0 = NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT; - EDGE_ROUTING_SPLINES_MODE_0 = EDGE_ROUTING_SPLINES_MODE; - EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0 = EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR; - PADDING_DEFAULT_0 = new ElkPadding_0(12); - PADDING_1 = new Property_2(PADDING_6, PADDING_DEFAULT_0); - EDGE_ROUTING_DEFAULT = ($clinit_EdgeRouting() , ORTHOGONAL); - EDGE_ROUTING = new Property_2(EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT); - PORT_BORDER_OFFSET = new Property_2(PORT_BORDER_OFFSET_0, 0); - RANDOM_SEED_0 = new Property_2(RANDOM_SEED_1, valueOf_4(1)); - ASPECT_RATIO_1 = new Property_2(ASPECT_RATIO_5, $intern_102); - NO_LAYOUT = NO_LAYOUT_0; - PORT_CONSTRAINTS_0 = PORT_CONSTRAINTS_1; - PORT_SIDE = PORT_SIDE_0; - DEBUG_MODE = DEBUG_MODE_3; - ALIGNMENT = ALIGNMENT_0; - HIERARCHY_HANDLING = HIERARCHY_HANDLING_0; - SEPARATE_CONNECTED_COMPONENTS_0 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); - INSIDE_SELF_LOOPS_ACTIVATE = INSIDE_SELF_LOOPS_ACTIVATE_0; - INSIDE_SELF_LOOPS_YO = INSIDE_SELF_LOOPS_YO_0; - NODE_SIZE_CONSTRAINTS_1 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_OPTIONS_1 = NODE_SIZE_OPTIONS_6; - NODE_SIZE_FIXED_GRAPH_SIZE = NODE_SIZE_FIXED_GRAPH_SIZE_0; - DIRECTION_DEFAULT = ($clinit_Direction_0() , UNDEFINED_2); - DIRECTION = new Property_2(DIRECTION_0, DIRECTION_DEFAULT); - NODE_LABELS_PLACEMENT_1 = NODE_LABELS_PLACEMENT_5; - NODE_LABELS_PADDING = NODE_LABELS_PADDING_0; - PORT_LABELS_PLACEMENT_1 = PORT_LABELS_PLACEMENT_5; - PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE = PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0; - PORT_LABELS_TREAT_AS_GROUP = PORT_LABELS_TREAT_AS_GROUP_0; - PORT_ALIGNMENT_DEFAULT_DEFAULT = ($clinit_PortAlignment() , JUSTIFIED); - new Property_2(PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT); - PORT_ALIGNMENT_NORTH = PORT_ALIGNMENT_NORTH_0; - PORT_ALIGNMENT_SOUTH = PORT_ALIGNMENT_SOUTH_0; - PORT_ALIGNMENT_WEST = PORT_ALIGNMENT_WEST_0; - PORT_ALIGNMENT_EAST = PORT_ALIGNMENT_EAST_0; - UNNECESSARY_BENDPOINTS_0 = UNNECESSARY_BENDPOINTS; - LAYERING_STRATEGY_0 = LAYERING_STRATEGY; - LAYERING_NODE_PROMOTION_STRATEGY_0 = LAYERING_NODE_PROMOTION_STRATEGY; - THOROUGHNESS_0 = THOROUGHNESS; - LAYERING_LAYER_CONSTRAINT_0 = LAYERING_LAYER_CONSTRAINT; - CYCLE_BREAKING_STRATEGY_0 = CYCLE_BREAKING_STRATEGY; - CROSSING_MINIMIZATION_STRATEGY_0 = CROSSING_MINIMIZATION_STRATEGY; - CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0 = CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER; - CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD; - CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE; - CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0 = CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE; - CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0 = CROSSING_MINIMIZATION_SEMI_INTERACTIVE; - MERGE_EDGES_0 = MERGE_EDGES; - MERGE_HIERARCHY_EDGES_0 = MERGE_HIERARCHY_EDGES; - INTERACTIVE_REFERENCE_POINT_0 = INTERACTIVE_REFERENCE_POINT; - NODE_PLACEMENT_STRATEGY_0 = NODE_PLACEMENT_STRATEGY; - NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0 = NODE_PLACEMENT_BK_FIXED_ALIGNMENT; - FEEDBACK_EDGES_0 = FEEDBACK_EDGES; - NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0 = NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING; - EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0 = EDGE_ROUTING_SELF_LOOP_DISTRIBUTION; - EDGE_ROUTING_SELF_LOOP_ORDERING_0 = EDGE_ROUTING_SELF_LOOP_ORDERING; - CONTENT_ALIGNMENT = CONTENT_ALIGNMENT_2; - NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0 = NODE_PLACEMENT_BK_EDGE_STRAIGHTENING; - COMPACTION_POST_COMPACTION_STRATEGY_0 = COMPACTION_POST_COMPACTION_STRATEGY; - COMPACTION_POST_COMPACTION_CONSTRAINTS_0 = COMPACTION_POST_COMPACTION_CONSTRAINTS; - COMPACTION_CONNECTED_COMPONENTS_0 = COMPACTION_CONNECTED_COMPONENTS; - HIGH_DEGREE_NODES_TREATMENT_0 = HIGH_DEGREE_NODES_TREATMENT; - HIGH_DEGREE_NODES_THRESHOLD_0 = HIGH_DEGREE_NODES_THRESHOLD; - HIGH_DEGREE_NODES_TREE_HEIGHT_0 = HIGH_DEGREE_NODES_TREE_HEIGHT; - NODE_SIZE_MINIMUM_0 = NODE_SIZE_MINIMUM_5; - JUNCTION_POINTS = JUNCTION_POINTS_0; - EDGE_THICKNESS_0 = EDGE_THICKNESS_1; - EDGE_LABELS_PLACEMENT = EDGE_LABELS_PLACEMENT_0; - EDGE_LABELS_INLINE_0 = EDGE_LABELS_INLINE_1; - CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0 = CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS; - PORT_INDEX = PORT_INDEX_0; - COMMENT_BOX = COMMENT_BOX_0; - HYPERNODE = HYPERNODE_0; - PORT_ANCHOR = PORT_ANCHOR_0; - PARTITIONING_ACTIVATE = PARTITIONING_ACTIVATE_0; - PARTITIONING_PARTITION = PARTITIONING_PARTITION_0; - LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0 = LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH; - LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0 = LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR; - POSITION = POSITION_2; - ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0 = ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES; - LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0 = LAYERING_NODE_PROMOTION_MAX_ITERATIONS; - EDGE_LABELS_SIDE_SELECTION_0 = EDGE_LABELS_SIDE_SELECTION; - EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0 = EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY; - MARGINS = MARGINS_0; - LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0 = LAYERING_COFFMAN_GRAHAM_LAYER_BOUND; - NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0 = NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES; - SPACING_PORTS_SURROUNDING = SPACING_PORTS_SURROUNDING_0; - DIRECTION_CONGRUENCY_0 = DIRECTION_CONGRUENCY; - PORT_SORTING_STRATEGY_0 = PORT_SORTING_STRATEGY; - EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0 = EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH; - LAYERING_LAYER_CHOICE_CONSTRAINT_0 = LAYERING_LAYER_CHOICE_CONSTRAINT; - CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0 = CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT; - INTERACTIVE_LAYOUT = INTERACTIVE_LAYOUT_1; - LAYERING_LAYER_ID_0 = LAYERING_LAYER_ID; - CROSSING_MINIMIZATION_POSITION_ID_0 = CROSSING_MINIMIZATION_POSITION_ID; - CONSIDER_MODEL_ORDER_STRATEGY_0 = CONSIDER_MODEL_ORDER_STRATEGY; - CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0 = CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY; - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE; - CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0 = CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE; - CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0 = CONSIDER_MODEL_ORDER_NO_MODEL_ORDER; - CONSIDER_MODEL_ORDER_COMPONENTS_0 = CONSIDER_MODEL_ORDER_COMPONENTS; - GENERATE_POSITION_AND_LAYER_IDS_0 = GENERATE_POSITION_AND_LAYER_IDS; -} - -function $apply_16(registry){ - $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.layered'), 'ELK Layered'), 'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'), new LayeredOptions$LayeredFactory), 'org.eclipse.elk.layered'), of_2(($clinit_GraphFeature() , SELF_LOOPS_0), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS]))))); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentComment', $getDefault(SPACING_COMMENT_COMMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.commentNode', $getDefault(SPACING_COMMENT_NODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.componentComponent', $getDefault(SPACING_COMPONENT_COMPONENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeEdge', $getDefault(SPACING_EDGE_EDGE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeLabel', $getDefault(SPACING_EDGE_LABEL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.edgeNode', $getDefault(SPACING_EDGE_NODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelLabel', $getDefault(SPACING_LABEL_LABEL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortHorizontal', $getDefault(SPACING_LABEL_PORT_HORIZONTAL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelPortVertical', $getDefault(SPACING_LABEL_PORT_VERTICAL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.labelNode', $getDefault(SPACING_LABEL_NODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.nodeSelfLoop', $getDefault(SPACING_NODE_SELF_LOOP)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portPort', $getDefault(SPACING_PORT_PORT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.individual', $getDefault(SPACING_INDIVIDUAL)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.baseValue', $getDefault(SPACING_BASE_VALUE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers', $getDefault(SPACING_EDGE_EDGE_BETWEEN_LAYERS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers', $getDefault(SPACING_EDGE_NODE_BETWEEN_LAYERS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers', $getDefault(SPACING_NODE_NODE_BETWEEN_LAYERS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.priority', valueOf_4(0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.direction', $getDefault(PRIORITY_DIRECTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.shortness', $getDefault(PRIORITY_SHORTNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.priority.straightness', $getDefault(PRIORITY_STRAIGHTNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.strategy', $getDefault(WRAPPING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.additionalEdgeSpacing', $getDefault(WRAPPING_ADDITIONAL_EDGE_SPACING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.correctionFactor', $getDefault(WRAPPING_CORRECTION_FACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.strategy', $getDefault(WRAPPING_CUTTING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.cuts', $getDefault(WRAPPING_CUTTING_CUTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.cutting.msd.freedom', $getDefault(WRAPPING_CUTTING_MSD_FREEDOM_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.strategy', $getDefault(WRAPPING_VALIDIFY_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.validify.forbiddenIndices', $getDefault(WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveCuts', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty', $getDefault(WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges', $getDefault(WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default', $getDefault(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.mode', $getDefault(EDGE_ROUTING_SPLINES_MODE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor', $getDefault(EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.padding', PADDING_DEFAULT_0); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.borderOffset', 0); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.randomSeed', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.aspectRatio', $intern_102); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.noLayout', $getDefault(NO_LAYOUT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portConstraints', $getDefault(PORT_CONSTRAINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.side', $getDefault(PORT_SIDE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.alignment', $getDefault(ALIGNMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hierarchyHandling', $getDefault(HIERARCHY_HANDLING)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.activate', $getDefault(INSIDE_SELF_LOOPS_ACTIVATE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.insideSelfLoops.yo', $getDefault(INSIDE_SELF_LOOPS_YO)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.direction', DIRECTION_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeLabels.padding', $getDefault(NODE_LABELS_PADDING)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_1)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.nextToPortIfPossible', $getDefault(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portLabels.treatAsGroup', $getDefault(PORT_LABELS_TREAT_AS_GROUP)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.north', $getDefault(PORT_ALIGNMENT_NORTH)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.south', $getDefault(PORT_ALIGNMENT_SOUTH)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.west', $getDefault(PORT_ALIGNMENT_WEST)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.portAlignment.east', $getDefault(PORT_ALIGNMENT_EAST)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.unnecessaryBendpoints', $getDefault(UNNECESSARY_BENDPOINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.strategy', $getDefault(LAYERING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.strategy', $getDefault(LAYERING_NODE_PROMOTION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.thoroughness', $getDefault(THOROUGHNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerConstraint', $getDefault(LAYERING_LAYER_CONSTRAINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.cycleBreaking.strategy', $getDefault(CYCLE_BREAKING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.strategy', $getDefault(CROSSING_MINIMIZATION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder', $getDefault(CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitch.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type', $getDefault(CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.semiInteractive', $getDefault(CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeEdges', $getDefault(MERGE_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.mergeHierarchyEdges', $getDefault(MERGE_HIERARCHY_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.interactiveReferencePoint', $getDefault(INTERACTIVE_REFERENCE_POINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.strategy', $getDefault(NODE_PLACEMENT_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment', $getDefault(NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.feedbackEdges', $getDefault(FEEDBACK_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening', $getDefault(NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopDistribution', $getDefault(EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.selfLoopOrdering', $getDefault(EDGE_ROUTING_SELF_LOOP_ORDERING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening', $getDefault(NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.strategy', $getDefault(COMPACTION_POST_COMPACTION_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.postCompaction.constraints', $getDefault(COMPACTION_POST_COMPACTION_CONSTRAINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.compaction.connectedComponents', $getDefault(COMPACTION_CONNECTED_COMPONENTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treatment', $getDefault(HIGH_DEGREE_NODES_TREATMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.threshold', $getDefault(HIGH_DEGREE_NODES_THRESHOLD_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.highDegreeNodes.treeHeight', $getDefault(HIGH_DEGREE_NODES_TREE_HEIGHT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.junctionPoints', $getDefault(JUNCTION_POINTS)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edge.thickness', $getDefault(EDGE_THICKNESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.placement', $getDefault(EDGE_LABELS_PLACEMENT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.edgeLabels.inline', $getDefault(EDGE_LABELS_INLINE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness', $getDefault(CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.index', $getDefault(PORT_INDEX)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.commentBox', $getDefault(COMMENT_BOX)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.hypernode', $getDefault(HYPERNODE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.port.anchor', $getDefault(PORT_ANCHOR)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.activate', $getDefault(PARTITIONING_ACTIVATE)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.partitioning.partition', $getDefault(PARTITIONING_PARTITION)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', $getDefault(LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', $getDefault(LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.position', $getDefault(POSITION)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides', $getDefault(ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.nodePromotion.maxIterations', $getDefault(LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.sideSelection', $getDefault(EDGE_LABELS_SIDE_SELECTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy', $getDefault(EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.margins', $getDefault(MARGINS)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.coffmanGraham.layerBound', $getDefault(LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.nodePlacement.favorStraightEdges', $getDefault(NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.spacing.portsSurrounding', $getDefault(SPACING_PORTS_SURROUNDING)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.directionCongruency', $getDefault(DIRECTION_CONGRUENCY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.portSortingStrategy', $getDefault(PORT_SORTING_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth', $getDefault(EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerChoiceConstraint', $getDefault(LAYERING_LAYER_CHOICE_CONSTRAINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', $getDefault(CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.layering.layerId', $getDefault(LAYERING_LAYER_ID_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.crossingMinimization.positionId', $getDefault(CROSSING_MINIMIZATION_POSITION_ID_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.strategy', $getDefault(CONSIDER_MODEL_ORDER_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy', $getDefault(CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence', $getDefault(CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.noModelOrder', $getDefault(CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.considerModelOrder.components', $getDefault(CONSIDER_MODEL_ORDER_COMPONENTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.layered', 'org.eclipse.elk.layered.generatePositionAndLayerIds', $getDefault(GENERATE_POSITION_AND_LAYER_IDS_0)); -} - -function LayeredOptions(){ - $clinit_LayeredOptions(); -} - -defineClass(986, 1, $intern_90, LayeredOptions); -_.apply_4 = function apply_136(registry){ - $apply_16(registry); -} -; -var ALIGNMENT, ALLOW_NON_FLOW_PORTS_TO_SWITCH_SIDES_0, ASPECT_RATIO_1, COMMENT_BOX, COMPACTION_CONNECTED_COMPONENTS_0, COMPACTION_POST_COMPACTION_CONSTRAINTS_0, COMPACTION_POST_COMPACTION_STRATEGY_0, CONSIDER_MODEL_ORDER_COMPONENTS_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0, CONSIDER_MODEL_ORDER_STRATEGY_0, CONTENT_ALIGNMENT, CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0, CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0, CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0, CROSSING_MINIMIZATION_POSITION_ID_0, CROSSING_MINIMIZATION_SEMI_INTERACTIVE_0, CROSSING_MINIMIZATION_STRATEGY_0, CYCLE_BREAKING_STRATEGY_0, DEBUG_MODE, DIRECTION, DIRECTION_CONGRUENCY_0, DIRECTION_DEFAULT, EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0, EDGE_LABELS_INLINE_0, EDGE_LABELS_PLACEMENT, EDGE_LABELS_SIDE_SELECTION_0, EDGE_ROUTING, EDGE_ROUTING_DEFAULT, EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0, EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0, EDGE_ROUTING_SELF_LOOP_ORDERING_0, EDGE_ROUTING_SPLINES_MODE_0, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0, EDGE_THICKNESS_0, FEEDBACK_EDGES_0, GENERATE_POSITION_AND_LAYER_IDS_0, HIERARCHY_HANDLING, HIGH_DEGREE_NODES_THRESHOLD_0, HIGH_DEGREE_NODES_TREATMENT_0, HIGH_DEGREE_NODES_TREE_HEIGHT_0, HYPERNODE, INSIDE_SELF_LOOPS_ACTIVATE, INSIDE_SELF_LOOPS_YO, INTERACTIVE_LAYOUT, INTERACTIVE_REFERENCE_POINT_0, JUNCTION_POINTS, LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0, LAYERING_LAYER_CHOICE_CONSTRAINT_0, LAYERING_LAYER_CONSTRAINT_0, LAYERING_LAYER_ID_0, LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0, LAYERING_NODE_PROMOTION_STRATEGY_0, LAYERING_STRATEGY_0, MARGINS, MERGE_EDGES_0, MERGE_HIERARCHY_EDGES_0, NODE_LABELS_PADDING, NODE_LABELS_PLACEMENT_1, NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0, NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0, NODE_PLACEMENT_STRATEGY_0, NODE_SIZE_CONSTRAINTS_1, NODE_SIZE_FIXED_GRAPH_SIZE, NODE_SIZE_MINIMUM_0, NODE_SIZE_OPTIONS_1, NO_LAYOUT, PADDING_1, PADDING_DEFAULT_0, PARTITIONING_ACTIVATE, PARTITIONING_PARTITION, PORT_ALIGNMENT_DEFAULT_DEFAULT, PORT_ALIGNMENT_EAST, PORT_ALIGNMENT_NORTH, PORT_ALIGNMENT_SOUTH, PORT_ALIGNMENT_WEST, PORT_ANCHOR, PORT_BORDER_OFFSET, PORT_CONSTRAINTS_0, PORT_INDEX, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE, PORT_LABELS_PLACEMENT_1, PORT_LABELS_TREAT_AS_GROUP, PORT_SIDE, PORT_SORTING_STRATEGY_0, POSITION, PRIORITY_0, PRIORITY_DIRECTION_0, PRIORITY_SHORTNESS_0, PRIORITY_STRAIGHTNESS_0, RANDOM_SEED_0, SEPARATE_CONNECTED_COMPONENTS_0, SPACING_BASE_VALUE_0, SPACING_COMMENT_COMMENT, SPACING_COMMENT_NODE, SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_INDIVIDUAL, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_SELF_LOOP, SPACING_PORTS_SURROUNDING, SPACING_PORT_PORT, THOROUGHNESS_0, UNNECESSARY_BENDPOINTS_0, WRAPPING_ADDITIONAL_EDGE_SPACING_0, WRAPPING_CORRECTION_FACTOR_0, WRAPPING_CUTTING_CUTS_0, WRAPPING_CUTTING_MSD_FREEDOM_0, WRAPPING_CUTTING_STRATEGY_0, WRAPPING_MULTI_EDGE_DISTANCE_PENALTY_0, WRAPPING_MULTI_EDGE_IMPROVE_CUTS_0, WRAPPING_MULTI_EDGE_IMPROVE_WRAPPED_EDGES_0, WRAPPING_STRATEGY_0, WRAPPING_VALIDIFY_FORBIDDEN_INDICES_0, WRAPPING_VALIDIFY_STRATEGY_0; -var Lorg_eclipse_elk_alg_layered_options_LayeredOptions_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions', 986); -function LayeredOptions$LayeredFactory(){ -} - -defineClass(987, 1, {}, LayeredOptions$LayeredFactory); -_.create_0 = function create_10(){ - var provider; - return provider = new LayeredLayoutProvider , provider; -} -; -_.destroy = function destroy_2(obj){ -} -; -var Lorg_eclipse_elk_alg_layered_options_LayeredOptions$LayeredFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredOptions/LayeredFactory', 987); -function $clinit_ElkSpacings$AbstractSpacingsBuilder(){ - $clinit_ElkSpacings$AbstractSpacingsBuilder = emptyMethod; - ELK_OPTION_TARGET_FILTER = new ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type; -} - -function $apply_17(this$static, holder){ - $build(this$static).accept(holder); -} - -function $build(this$static){ - $add_3(this$static.filters, ($clinit_LayoutConfigurator() , NO_OVERWRITE_HOLDER)); - if (fuzzyEquals(this$static.baseSpacing, $doubleValue(castToDouble($getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)))))) { - return new ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type; - } - return new ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type(this$static); -} - -function $lambda$1_1(this$static, option_0){ - var factor; - factor = $getDefault(($clinit_LayeredSpacings$LayeredSpacingsBuilder() , BASE_SPACING_OPTION)) != null && option_0.getDefault() != null?$doubleValue(castToDouble(option_0.getDefault())) / $doubleValue(castToDouble($getDefault(BASE_SPACING_OPTION))):1; - $put_6(this$static.factorMap, option_0, factor); -} - -function $lambda$3_0(this$static, element_0){ - $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(new AbstractMap$1(this$static.factorMap), 1)), new ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type(this$static, element_0)), new ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type(this$static, element_0)); -} - -function $lambda$4_1(this$static, element_1, p_1){ - return !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.filters, 16)), new Predicate$lambda$2$Type(new ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_1, p_1)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); -} - -function $lambda$6(this$static, element_1, p_1){ - element_1.setProperty(p_1, $doubleValue(castToDouble($get_10(this$static.factorMap, p_1))) * this$static.baseSpacing); -} - -function lambda$5_3(element_0, p_1, filter_2){ - $clinit_ElkSpacings$AbstractSpacingsBuilder(); - return filter_2.accept_4(element_0, p_1); -} - -defineClass(1372, 1, {}); -_.baseSpacing = 0; -var ELK_OPTION_TARGET_FILTER; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder', 1372); -function $clinit_LayeredSpacings$LayeredSpacingsBuilder(){ - $clinit_LayeredSpacings$LayeredSpacingsBuilder = emptyMethod; - $clinit_ElkSpacings$AbstractSpacingsBuilder(); - BASE_SPACING_OPTION = ($clinit_LayeredOptions() , SPACING_NODE_NODE_0); - DEPENDENT_SPACING_OPTIONS = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 1), $intern_112, 146, 0, [SPACING_COMPONENT_COMPONENT_0, SPACING_EDGE_EDGE, SPACING_EDGE_LABEL_0, SPACING_EDGE_NODE, SPACING_LABEL_LABEL, SPACING_LABEL_NODE, SPACING_LABEL_PORT_HORIZONTAL, SPACING_LABEL_PORT_VERTICAL, SPACING_NODE_SELF_LOOP, SPACING_PORT_PORT, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0, SPACING_EDGE_NODE_BETWEEN_LAYERS_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0])); -} - -function LayeredSpacings$LayeredSpacingsBuilder(d){ - $clinit_LayeredSpacings$LayeredSpacingsBuilder(); - this.filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit, 1), $intern_2, 831, 0, [ELK_OPTION_TARGET_FILTER])); - this.factorMap = new HashMap; - this.baseSpacing = d; - $put_6(this.factorMap, BASE_SPACING_OPTION, 1); - $forEach_1(DEPENDENT_SPACING_OPTIONS, new ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type(this)); -} - -defineClass(779, 1372, {}, LayeredSpacings$LayeredSpacingsBuilder); -var BASE_SPACING_OPTION, DEPENDENT_SPACING_OPTIONS; -var Lorg_eclipse_elk_alg_layered_options_LayeredSpacings$LayeredSpacingsBuilder_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'LayeredSpacings/LayeredSpacingsBuilder', 779); -function $clinit_LayeringStrategy(){ - $clinit_LayeringStrategy = emptyMethod; - NETWORK_SIMPLEX = new LayeringStrategy('NETWORK_SIMPLEX', 0); - LONGEST_PATH = new LayeringStrategy('LONGEST_PATH', 1); - COFFMAN_GRAHAM = new LayeringStrategy('COFFMAN_GRAHAM', 2); - INTERACTIVE_3 = new LayeringStrategy('INTERACTIVE', 3); - STRETCH_WIDTH = new LayeringStrategy('STRETCH_WIDTH', 4); - MIN_WIDTH = new LayeringStrategy('MIN_WIDTH', 5); -} - -function $create_5(this$static){ - switch (this$static.ordinal) { - case 0: - return new NetworkSimplexLayerer; - case 1: - return new LongestPathLayerer; - case 2: - return new CoffmanGrahamLayerer; - case 3: - return new InteractiveLayerer; - case 4: - return new StretchWidthLayerer; - case 5: - return new MinWidthLayerer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layerer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function LayeringStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_54(name_0){ - $clinit_LayeringStrategy(); - return valueOf(($clinit_LayeringStrategy$Map() , $MAP_42), name_0); -} - -function values_60(){ - $clinit_LayeringStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]); -} - -defineClass(313, 22, {3:1, 35:1, 22:1, 313:1, 246:1, 234:1}, LayeringStrategy); -_.create_1 = function create_12(){ - return $create_5(this); -} -; -_.create_2 = function create_11(){ - return $create_5(this); -} -; -var COFFMAN_GRAHAM, INTERACTIVE_3, LONGEST_PATH, MIN_WIDTH, NETWORK_SIMPLEX, STRETCH_WIDTH; -var Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayeringStrategy', 313, Ljava_lang_Enum_2_classLit, values_60, valueOf_54); -function $clinit_LayeringStrategy$Map(){ - $clinit_LayeringStrategy$Map = emptyMethod; - $MAP_42 = createValueOfMap(($clinit_LayeringStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit, 1), $intern_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]))); -} - -var $MAP_42; -function $clinit_LongEdgeOrderingStrategy(){ - $clinit_LongEdgeOrderingStrategy = emptyMethod; - DUMMY_NODE_OVER = new LongEdgeOrderingStrategy('DUMMY_NODE_OVER', 0); - DUMMY_NODE_UNDER = new LongEdgeOrderingStrategy('DUMMY_NODE_UNDER', 1); - EQUAL = new LongEdgeOrderingStrategy('EQUAL', 2); -} - -function $returnValue(this$static){ - switch (this$static.ordinal) { - case 0: - return $intern_0; - case 1: - return -1; - default:return 0; - } -} - -function LongEdgeOrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_55(name_0){ - $clinit_LongEdgeOrderingStrategy(); - return valueOf(($clinit_LongEdgeOrderingStrategy$Map() , $MAP_43), name_0); -} - -function values_61(){ - $clinit_LongEdgeOrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]); -} - -defineClass(378, 22, {3:1, 35:1, 22:1, 378:1}, LongEdgeOrderingStrategy); -var DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL; -var Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LongEdgeOrderingStrategy', 378, Ljava_lang_Enum_2_classLit, values_61, valueOf_55); -function $clinit_LongEdgeOrderingStrategy$Map(){ - $clinit_LongEdgeOrderingStrategy$Map = emptyMethod; - $MAP_43 = createValueOfMap(($clinit_LongEdgeOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_LongEdgeOrderingStrategy_2_classLit, 1), $intern_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]))); -} - -var $MAP_43; -function $clinit_NodeFlexibility(){ - $clinit_NodeFlexibility = emptyMethod; - NONE_8 = new NodeFlexibility('NONE', 0); - PORT_POSITION = new NodeFlexibility('PORT_POSITION', 1); - NODE_SIZE_WHERE_SPACE_PERMITS = new NodeFlexibility('NODE_SIZE_WHERE_SPACE_PERMITS', 2); - NODE_SIZE = new NodeFlexibility('NODE_SIZE', 3); -} - -function $isFlexibleSizeWhereSpacePermits(this$static){ - return this$static == NODE_SIZE_WHERE_SPACE_PERMITS || this$static == NODE_SIZE; -} - -function NodeFlexibility(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function getNodeFlexibility(lNode){ - $clinit_NodeFlexibility(); - var nf; - (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)); - return nf; -} - -function valueOf_56(name_0){ - $clinit_NodeFlexibility(); - return valueOf(($clinit_NodeFlexibility$Map() , $MAP_44), name_0); -} - -function values_62(){ - $clinit_NodeFlexibility(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]); -} - -defineClass(197, 22, {3:1, 35:1, 22:1, 197:1}, NodeFlexibility); -var NODE_SIZE, NODE_SIZE_WHERE_SPACE_PERMITS, NONE_8, PORT_POSITION; -var Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodeFlexibility', 197, Ljava_lang_Enum_2_classLit, values_62, valueOf_56); -function $clinit_NodeFlexibility$Map(){ - $clinit_NodeFlexibility$Map = emptyMethod; - $MAP_44 = createValueOfMap(($clinit_NodeFlexibility() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodeFlexibility_2_classLit, 1), $intern_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]))); -} - -var $MAP_44; -function $clinit_NodePlacementStrategy(){ - $clinit_NodePlacementStrategy = emptyMethod; - SIMPLE = new NodePlacementStrategy('SIMPLE', 0); - INTERACTIVE_4 = new NodePlacementStrategy('INTERACTIVE', 1); - LINEAR_SEGMENTS = new NodePlacementStrategy('LINEAR_SEGMENTS', 2); - BRANDES_KOEPF = new NodePlacementStrategy('BRANDES_KOEPF', 3); - NETWORK_SIMPLEX_0 = new NodePlacementStrategy('NETWORK_SIMPLEX', 4); -} - -function $create_6(this$static){ - switch (this$static.ordinal) { - case 0: - return new SimpleNodePlacer; - case 1: - return new InteractiveNodePlacer; - case 2: - return new LinearSegmentsNodePlacer; - case 3: - return new BKNodePlacer; - case 4: - return new NetworkSimplexPlacer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the node placer ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function NodePlacementStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_57(name_0){ - $clinit_NodePlacementStrategy(); - return valueOf(($clinit_NodePlacementStrategy$Map() , $MAP_45), name_0); -} - -function values_63(){ - $clinit_NodePlacementStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]); -} - -defineClass(315, 22, {3:1, 35:1, 22:1, 315:1, 246:1, 234:1}, NodePlacementStrategy); -_.create_1 = function create_14(){ - return $create_6(this); -} -; -_.create_2 = function create_13(){ - return $create_6(this); -} -; -var BRANDES_KOEPF, INTERACTIVE_4, LINEAR_SEGMENTS, NETWORK_SIMPLEX_0, SIMPLE; -var Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePlacementStrategy', 315, Ljava_lang_Enum_2_classLit, values_63, valueOf_57); -function $clinit_NodePlacementStrategy$Map(){ - $clinit_NodePlacementStrategy$Map = emptyMethod; - $MAP_45 = createValueOfMap(($clinit_NodePlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePlacementStrategy_2_classLit, 1), $intern_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]))); -} - -var $MAP_45; -function $clinit_NodePromotionStrategy(){ - $clinit_NodePromotionStrategy = emptyMethod; - NONE_9 = new NodePromotionStrategy('NONE', 0); - NIKOLOV = new NodePromotionStrategy('NIKOLOV', 1); - NIKOLOV_PIXEL = new NodePromotionStrategy('NIKOLOV_PIXEL', 2); - NIKOLOV_IMPROVED = new NodePromotionStrategy('NIKOLOV_IMPROVED', 3); - NIKOLOV_IMPROVED_PIXEL = new NodePromotionStrategy('NIKOLOV_IMPROVED_PIXEL', 4); - DUMMYNODE_PERCENTAGE = new NodePromotionStrategy('DUMMYNODE_PERCENTAGE', 5); - NODECOUNT_PERCENTAGE = new NodePromotionStrategy('NODECOUNT_PERCENTAGE', 6); - NO_BOUNDARY = new NodePromotionStrategy('NO_BOUNDARY', 7); -} - -function NodePromotionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_58(name_0){ - $clinit_NodePromotionStrategy(); - return valueOf(($clinit_NodePromotionStrategy$Map() , $MAP_46), name_0); -} - -function values_64(){ - $clinit_NodePromotionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]); -} - -defineClass(260, 22, {3:1, 35:1, 22:1, 260:1}, NodePromotionStrategy); -var DUMMYNODE_PERCENTAGE, NIKOLOV, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, NIKOLOV_PIXEL, NODECOUNT_PERCENTAGE, NONE_9, NO_BOUNDARY; -var Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'NodePromotionStrategy', 260, Ljava_lang_Enum_2_classLit, values_64, valueOf_58); -function $clinit_NodePromotionStrategy$Map(){ - $clinit_NodePromotionStrategy$Map = emptyMethod; - $MAP_46 = createValueOfMap(($clinit_NodePromotionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_NodePromotionStrategy_2_classLit, 1), $intern_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]))); -} - -var $MAP_46; -function $clinit_OrderingStrategy(){ - $clinit_OrderingStrategy = emptyMethod; - NONE_10 = new OrderingStrategy('NONE', 0); - NODES_AND_EDGES = new OrderingStrategy('NODES_AND_EDGES', 1); - PREFER_EDGES = new OrderingStrategy('PREFER_EDGES', 2); -} - -function OrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_59(name_0){ - $clinit_OrderingStrategy(); - return valueOf(($clinit_OrderingStrategy$Map() , $MAP_47), name_0); -} - -function values_65(){ - $clinit_OrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]); -} - -defineClass(339, 22, {3:1, 35:1, 22:1, 339:1}, OrderingStrategy); -var NODES_AND_EDGES, NONE_10, PREFER_EDGES; -var Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'OrderingStrategy', 339, Ljava_lang_Enum_2_classLit, values_65, valueOf_59); -function $clinit_OrderingStrategy$Map(){ - $clinit_OrderingStrategy$Map = emptyMethod; - $MAP_47 = createValueOfMap(($clinit_OrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]))); -} - -var $MAP_47; -function $clinit_PortSortingStrategy(){ - $clinit_PortSortingStrategy = emptyMethod; - INPUT_ORDER = new PortSortingStrategy('INPUT_ORDER', 0); - PORT_DEGREE = new PortSortingStrategy('PORT_DEGREE', 1); -} - -function PortSortingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_60(name_0){ - $clinit_PortSortingStrategy(); - return valueOf(($clinit_PortSortingStrategy$Map() , $MAP_48), name_0); -} - -function values_66(){ - $clinit_PortSortingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]); -} - -defineClass(421, 22, {3:1, 35:1, 22:1, 421:1}, PortSortingStrategy); -var INPUT_ORDER, PORT_DEGREE; -var Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortSortingStrategy', 421, Ljava_lang_Enum_2_classLit, values_66, valueOf_60); -function $clinit_PortSortingStrategy$Map(){ - $clinit_PortSortingStrategy$Map = emptyMethod; - $MAP_48 = createValueOfMap(($clinit_PortSortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortSortingStrategy_2_classLit, 1), $intern_36, 421, 0, [INPUT_ORDER, PORT_DEGREE]))); -} - -var $MAP_48; -function $clinit_PortType(){ - $clinit_PortType = emptyMethod; - UNDEFINED_0 = new PortType('UNDEFINED', 0); - INPUT = new PortType('INPUT', 1); - OUTPUT = new PortType('OUTPUT', 2); -} - -function PortType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_61(name_0){ - $clinit_PortType(); - return valueOf(($clinit_PortType$Map() , $MAP_49), name_0); -} - -function values_67(){ - $clinit_PortType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]); -} - -defineClass(452, 22, {3:1, 35:1, 22:1, 452:1}, PortType); -var INPUT, OUTPUT, UNDEFINED_0; -var Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'PortType', 452, Ljava_lang_Enum_2_classLit, values_67, valueOf_61); -function $clinit_PortType$Map(){ - $clinit_PortType$Map = emptyMethod; - $MAP_49 = createValueOfMap(($clinit_PortType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_PortType_2_classLit, 1), $intern_36, 452, 0, [UNDEFINED_0, INPUT, OUTPUT]))); -} - -var $MAP_49; -function $clinit_SelfLoopDistributionStrategy(){ - $clinit_SelfLoopDistributionStrategy = emptyMethod; - EQUALLY = new SelfLoopDistributionStrategy('EQUALLY', 0); - NORTH_2 = new SelfLoopDistributionStrategy('NORTH', 1); - NORTH_SOUTH = new SelfLoopDistributionStrategy('NORTH_SOUTH', 2); -} - -function SelfLoopDistributionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_62(name_0){ - $clinit_SelfLoopDistributionStrategy(); - return valueOf(($clinit_SelfLoopDistributionStrategy$Map() , $MAP_50), name_0); -} - -function values_68(){ - $clinit_SelfLoopDistributionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]); -} - -defineClass(375, 22, {3:1, 35:1, 22:1, 375:1}, SelfLoopDistributionStrategy); -var EQUALLY, NORTH_2, NORTH_SOUTH; -var Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopDistributionStrategy', 375, Ljava_lang_Enum_2_classLit, values_68, valueOf_62); -function $clinit_SelfLoopDistributionStrategy$Map(){ - $clinit_SelfLoopDistributionStrategy$Map = emptyMethod; - $MAP_50 = createValueOfMap(($clinit_SelfLoopDistributionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopDistributionStrategy_2_classLit, 1), $intern_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]))); -} - -var $MAP_50; -function $clinit_SelfLoopOrderingStrategy(){ - $clinit_SelfLoopOrderingStrategy = emptyMethod; - STACKED = new SelfLoopOrderingStrategy('STACKED', 0); - SEQUENCED = new SelfLoopOrderingStrategy('SEQUENCED', 1); -} - -function SelfLoopOrderingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_63(name_0){ - $clinit_SelfLoopOrderingStrategy(); - return valueOf(($clinit_SelfLoopOrderingStrategy$Map() , $MAP_51), name_0); -} - -function values_69(){ - $clinit_SelfLoopOrderingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]); -} - -defineClass(376, 22, {3:1, 35:1, 22:1, 376:1}, SelfLoopOrderingStrategy); -var SEQUENCED, STACKED; -var Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopOrderingStrategy', 376, Ljava_lang_Enum_2_classLit, values_69, valueOf_63); -function $clinit_SelfLoopOrderingStrategy$Map(){ - $clinit_SelfLoopOrderingStrategy$Map = emptyMethod; - $MAP_51 = createValueOfMap(($clinit_SelfLoopOrderingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit, 1), $intern_36, 376, 0, [STACKED, SEQUENCED]))); -} - -var $MAP_51; -function $getHorizontalSpacing(this$static, nt1, nt2){ - return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsHorizontal); -} - -function $getLocalSpacing(this$static, nt1, nt2, nodeTypeSpacingMapping){ - var layoutOption; - layoutOption = nodeTypeSpacingMapping[nt1.ordinal][nt2.ordinal]; - return $doubleValue(castToDouble($getProperty(this$static.graph_0, layoutOption))); -} - -function $getLocalSpacing_0(n1, n2, nodeTypeSpacingMapping){ - var layoutOption, s1, s2, t1, t2; - t1 = n1.type_0; - t2 = n2.type_0; - layoutOption = nodeTypeSpacingMapping[t1.ordinal][t2.ordinal]; - s1 = castToDouble(getIndividualOrDefault(n1, layoutOption)); - s2 = castToDouble(getIndividualOrDefault(n2, layoutOption)); - return $wnd.Math.max((checkCriticalNotNull(s1) , s1), (checkCriticalNotNull(s2) , s2)); -} - -function $getVerticalSpacing(this$static, nt1, nt2){ - return $getLocalSpacing(this$static, nt1, nt2, this$static.nodeTypeSpacingOptionsVertical); -} - -function $getVerticalSpacing_0(this$static, n1, n2){ - return $getLocalSpacing_0(n1, n2, this$static.nodeTypeSpacingOptionsVertical); -} - -function $nodeTypeSpacing(this$static, n1, n2, spacing){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacing); - setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacing); -} - -function $nodeTypeSpacing_0(this$static, n1, n2, spacingVert, spacingHorz){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[n1.ordinal], n2.ordinal, spacingVert); - setCheck(this$static.nodeTypeSpacingOptionsVertical[n2.ordinal], n1.ordinal, spacingVert); - setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n1.ordinal], n2.ordinal, spacingHorz); - setCheck(this$static.nodeTypeSpacingOptionsHorizontal[n2.ordinal], n1.ordinal, spacingHorz); -} - -function $nodeTypeSpacing_1(this$static, nt, spacing){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacing); -} - -function $nodeTypeSpacing_2(this$static, nt, spacingVert, spacingHorz){ - setCheck(this$static.nodeTypeSpacingOptionsVertical[nt.ordinal], nt.ordinal, spacingVert); - setCheck(this$static.nodeTypeSpacingOptionsHorizontal[nt.ordinal], nt.ordinal, spacingHorz); -} - -function Spacings(graph){ - var n; - this.graph_0 = graph; - n = ($clinit_LNode$NodeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, 1), $intern_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT])).length; - this.nodeTypeSpacingOptionsHorizontal = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); - this.nodeTypeSpacingOptionsVertical = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 0, [n, n], 2); - $nodeTypeSpacing_2(this, NORMAL, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0), SPACING_NODE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, NORMAL, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing(this, NORMAL, NORTH_SOUTH_PORT, SPACING_EDGE_NODE); - $nodeTypeSpacing(this, NORMAL, EXTERNAL_PORT, SPACING_EDGE_NODE); - $nodeTypeSpacing_0(this, NORMAL, LABEL, SPACING_NODE_NODE_0, SPACING_NODE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_2(this, LONG_EDGE, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); - $nodeTypeSpacing(this, LONG_EDGE, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing(this, LONG_EDGE, EXTERNAL_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing_0(this, LONG_EDGE, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_1(this, NORTH_SOUTH_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing(this, NORTH_SOUTH_PORT, EXTERNAL_PORT, SPACING_EDGE_EDGE); - $nodeTypeSpacing(this, NORTH_SOUTH_PORT, LABEL, SPACING_LABEL_NODE); - $nodeTypeSpacing_1(this, EXTERNAL_PORT, SPACING_PORT_PORT); - $nodeTypeSpacing_0(this, EXTERNAL_PORT, LABEL, SPACING_LABEL_PORT_VERTICAL, SPACING_LABEL_PORT_HORIZONTAL); - $nodeTypeSpacing_2(this, LABEL, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE); - $nodeTypeSpacing_2(this, BREAKING_POINT, SPACING_EDGE_EDGE, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, BREAKING_POINT, NORMAL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, BREAKING_POINT, LABEL, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); - $nodeTypeSpacing_0(this, BREAKING_POINT, LONG_EDGE, SPACING_EDGE_NODE, SPACING_EDGE_NODE_BETWEEN_LAYERS_0); -} - -function getIndividualOrDefault(node, property){ - var individualSpacings, result; - result = null; - if ($hasProperty(node, ($clinit_LayeredOptions() , SPACING_INDIVIDUAL))) { - individualSpacings = castTo($getProperty(node, SPACING_INDIVIDUAL), 94); - individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); - } - result == null && (result = $getProperty($getGraph(node), property)); - return result; -} - -defineClass(304, 1, {304:1}, Spacings); -var Lorg_eclipse_elk_alg_layered_options_Spacings_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'Spacings', 304); -function $clinit_SplineRoutingMode(){ - $clinit_SplineRoutingMode = emptyMethod; - CONSERVATIVE = new SplineRoutingMode('CONSERVATIVE', 0); - CONSERVATIVE_SOFT = new SplineRoutingMode('CONSERVATIVE_SOFT', 1); - SLOPPY = new SplineRoutingMode('SLOPPY', 2); -} - -function SplineRoutingMode(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_64(name_0){ - $clinit_SplineRoutingMode(); - return valueOf(($clinit_SplineRoutingMode$Map() , $MAP_52), name_0); -} - -function values_70(){ - $clinit_SplineRoutingMode(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]); -} - -defineClass(336, 22, {3:1, 35:1, 22:1, 336:1}, SplineRoutingMode); -var CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY; -var Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SplineRoutingMode', 336, Ljava_lang_Enum_2_classLit, values_70, valueOf_64); -function $clinit_SplineRoutingMode$Map(){ - $clinit_SplineRoutingMode$Map = emptyMethod; - $MAP_52 = createValueOfMap(($clinit_SplineRoutingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_SplineRoutingMode_2_classLit, 1), $intern_36, 336, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]))); -} - -var $MAP_52; -function $clinit_ValidifyStrategy(){ - $clinit_ValidifyStrategy = emptyMethod; - NO = new ValidifyStrategy('NO', 0); - GREEDY_0 = new ValidifyStrategy('GREEDY', 1); - LOOK_BACK = new ValidifyStrategy('LOOK_BACK', 2); -} - -function ValidifyStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_65(name_0){ - $clinit_ValidifyStrategy(); - return valueOf(($clinit_ValidifyStrategy$Map() , $MAP_53), name_0); -} - -function values_71(){ - $clinit_ValidifyStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]); -} - -defineClass(338, 22, {3:1, 35:1, 22:1, 338:1}, ValidifyStrategy); -var GREEDY_0, LOOK_BACK, NO; -var Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ValidifyStrategy', 338, Ljava_lang_Enum_2_classLit, values_71, valueOf_65); -function $clinit_ValidifyStrategy$Map(){ - $clinit_ValidifyStrategy$Map = emptyMethod; - $MAP_53 = createValueOfMap(($clinit_ValidifyStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_ValidifyStrategy_2_classLit, 1), $intern_36, 338, 0, [NO, GREEDY_0, LOOK_BACK]))); -} - -var $MAP_53; -function $clinit_WrappingStrategy(){ - $clinit_WrappingStrategy = emptyMethod; - OFF_0 = new WrappingStrategy('OFF', 0); - SINGLE_EDGE = new WrappingStrategy('SINGLE_EDGE', 1); - MULTI_EDGE = new WrappingStrategy('MULTI_EDGE', 2); -} - -function WrappingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_66(name_0){ - $clinit_WrappingStrategy(); - return valueOf(($clinit_WrappingStrategy$Map() , $MAP_54), name_0); -} - -function values_72(){ - $clinit_WrappingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]); -} - -defineClass(377, 22, {3:1, 35:1, 22:1, 377:1}, WrappingStrategy); -var MULTI_EDGE, OFF_0, SINGLE_EDGE; -var Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'WrappingStrategy', 377, Ljava_lang_Enum_2_classLit, values_72, valueOf_66); -function $clinit_WrappingStrategy$Map(){ - $clinit_WrappingStrategy$Map = emptyMethod; - $MAP_54 = createValueOfMap(($clinit_WrappingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_WrappingStrategy_2_classLit, 1), $intern_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]))); -} - -var $MAP_54; -function $clinit_DepthFirstCycleBreaker(){ - $clinit_DepthFirstCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); -} - -function $dfs_3(this$static, n){ - var out, out$iterator, target; - if (this$static.visited[n.id_0]) { - return; - } - this$static.visited[n.id_0] = true; - this$static.active[n.id_0] = true; - for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { - out = castTo($next_0(out$iterator), 17); - if ($isSelfLoop(out)) { - continue; - } - target = out.target.owner; - this$static.active[target.id_0]?$add_3(this$static.edgesToBeReversed, out):$dfs_3(this$static, target); - } - this$static.active[n.id_0] = false; -} - -function $process_57(this$static, graph, monitor){ - var edge, edge$iterator, i, index_0, n, node, node$iterator, nodeCount, nodes, source, source$iterator; - $begin(monitor, 'Depth-first cycle removal', 1); - nodes = graph.layerlessNodes; - nodeCount = nodes.array.length; - this$static.sources = new ArrayList; - this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); - this$static.active = initUnidimensionalArray(Z_classLit, $intern_91, 25, nodeCount, 16, 1); - this$static.edgesToBeReversed = new ArrayList; - index_0 = 0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = index_0; - isEmpty_13($getIncomingEdges(node)) && $add_3(this$static.sources, node); - ++index_0; - } - for (source$iterator = new ArrayList$1(this$static.sources); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 10); - $dfs_3(this$static, source); - } - for (i = 0; i < nodeCount; i++) { - if (!this$static.visited[i]) { - n = (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 10)); - $dfs_3(this$static, n); - } - } - for (edge$iterator = new ArrayList$1(this$static.edgesToBeReversed); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $reverse_0(edge, true); - $setProperty_0(graph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - } - this$static.sources = null; - this$static.visited = null; - this$static.active = null; - this$static.edgesToBeReversed = null; - $done_0(monitor); -} - -function DepthFirstCycleBreaker(){ - $clinit_DepthFirstCycleBreaker(); -} - -defineClass(1383, 1, $intern_113, DepthFirstCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION; -} -; -_.process = function process_54(graph, monitor){ - $process_57(this, castTo(graph, 37), monitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION; -var Lorg_eclipse_elk_alg_layered_p1cycles_DepthFirstCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'DepthFirstCycleBreaker', 1383); -function $clinit_GreedyCycleBreaker(){ - $clinit_GreedyCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_0 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); -} - -function $process_58(this$static, layeredGraph, monitor){ - var edge, edge$array, edge$index, edge$iterator, edge$iterator0, edge$max, index_0, maxNode, maxNodes, maxOutflow, nextLeft, nextRight, node, node$iterator, node$iterator0, node$iterator1, nodes, outflow, outgoingEdges, port, port$array, port$index, port$iterator, port$max, ports, priority, shiftBase, sink, source, targetIx, unprocessedNodeCount; - $begin(monitor, 'Greedy cycle removal', 1); - nodes = layeredGraph.layerlessNodes; - unprocessedNodeCount = nodes.array.length; - this$static.indeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); - this$static.outdeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); - this$static.mark = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); - index_0 = 0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = index_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - if (edge.source.owner == node) { - continue; - } - priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; - this$static.indeg[index_0] += priority > 0?priority + 1:1; - } - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (edge.target.owner == node) { - continue; - } - priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; - this$static.outdeg[index_0] += priority > 0?priority + 1:1; - } - } - this$static.outdeg[index_0] == 0?$add_7(this$static.sinks, node):this$static.indeg[index_0] == 0 && $add_7(this$static.sources, node); - ++index_0; - } - nextRight = -1; - nextLeft = 1; - maxNodes = new ArrayList; - this$static.random_0 = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); - while (unprocessedNodeCount > 0) { - while (this$static.sinks.size_0 != 0) { - sink = castTo($removeFirst_0(this$static.sinks), 10); - this$static.mark[sink.id_0] = nextRight--; - $updateNeighbors(this$static, sink); - --unprocessedNodeCount; - } - while (this$static.sources.size_0 != 0) { - source = castTo($removeFirst_0(this$static.sources), 10); - this$static.mark[source.id_0] = nextLeft++; - $updateNeighbors(this$static, source); - --unprocessedNodeCount; - } - if (unprocessedNodeCount > 0) { - maxOutflow = $intern_42; - for (node$iterator1 = new ArrayList$1(nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - if (this$static.mark[node.id_0] == 0) { - outflow = this$static.outdeg[node.id_0] - this$static.indeg[node.id_0]; - if (outflow >= maxOutflow) { - if (outflow > maxOutflow) { - maxNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxOutflow = outflow; - } - maxNodes.array[maxNodes.array.length] = node; - } - } - } - maxNode = this$static.chooseNodeWithMaxOutflow(maxNodes); - this$static.mark[maxNode.id_0] = nextLeft++; - $updateNeighbors(this$static, maxNode); - --unprocessedNodeCount; - } - } - shiftBase = nodes.array.length + 1; - for (index_0 = 0; index_0 < nodes.array.length; index_0++) { - this$static.mark[index_0] < 0 && (this$static.mark[index_0] += shiftBase); - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - ports = toPortArray(node.ports); - for (port$array = ports , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { - port = port$array[port$index]; - outgoingEdges = toEdgeArray(port.outgoingEdges); - for (edge$array = outgoingEdges , edge$index = 0 , edge$max = edge$array.length; edge$index < edge$max; ++edge$index) { - edge = edge$array[edge$index]; - targetIx = edge.target.owner.id_0; - if (this$static.mark[node.id_0] > this$static.mark[targetIx]) { - $reverse_0(edge, true); - $setProperty_0(layeredGraph, CYCLIC, ($clinit_Boolean() , true)); - } - } - } - } - this$static.indeg = null; - this$static.outdeg = null; - this$static.mark = null; - $reset_0(this$static.sources); - $reset_0(this$static.sinks); - $done_0(monitor); -} - -function $updateNeighbors(this$static, node){ - var connectedPort, edge, edge$iterator, endpoint, index_0, port, port$iterator, priority; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - connectedPort = edge.source == port?edge.target:edge.source; - endpoint = connectedPort.owner; - if (node == endpoint) { - continue; - } - priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).value_0; - priority < 0 && (priority = 0); - index_0 = endpoint.id_0; - if (this$static.mark[index_0] == 0) { - if (edge.target == connectedPort) { - this$static.indeg[index_0] -= priority + 1; - this$static.indeg[index_0] <= 0 && this$static.outdeg[index_0] > 0 && $add_7(this$static.sources, endpoint); - } - else { - this$static.outdeg[index_0] -= priority + 1; - this$static.outdeg[index_0] <= 0 && this$static.indeg[index_0] > 0 && $add_7(this$static.sinks, endpoint); - } - } - } - } -} - -function GreedyCycleBreaker(){ - $clinit_GreedyCycleBreaker(); - this.sources = new LinkedList; - this.sinks = new LinkedList; -} - -defineClass(782, 1, $intern_113, GreedyCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_0(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_0; -} -; -_.process = function process_55(layeredGraph, monitor){ - $process_58(this, castTo(layeredGraph, 37), monitor); -} -; -_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow(nodes){ - return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_0; -var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyCycleBreaker', 782); -function GreedyModelOrderCycleBreaker(){ - $clinit_GreedyCycleBreaker(); - GreedyCycleBreaker.call(this); -} - -defineClass(1386, 782, $intern_113, GreedyModelOrderCycleBreaker); -_.chooseNodeWithMaxOutflow = function chooseNodeWithMaxOutflow_0(nodes){ - var minimumModelOrder, node, node$iterator, returnNode; - returnNode = null; - minimumModelOrder = $intern_0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if ($hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 < minimumModelOrder) { - minimumModelOrder = castTo($getProperty(node, MODEL_ORDER_0), 19).value_0; - returnNode = node; - } - } - if (!returnNode) { - return castTo($get_11(nodes, $nextInt(this.random_0, nodes.array.length)), 10); - } - return returnNode; -} -; -var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyModelOrderCycleBreaker', 1386); -function $clinit_InteractiveCycleBreaker(){ - $clinit_InteractiveCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_1 = $addAfter($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P5_EDGE_ROUTING, REVERSED_EDGE_RESTORER); -} - -function $findCycles(this$static, node1, revEdges){ - var edge, edge$iterator, node2, port, port$iterator; - node1.id_0 = -1; - for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node2 = edge.target.owner; - node1 != node2 && (node2.id_0 < 0?revEdges.add_2(edge):node2.id_0 > 0 && $findCycles(this$static, node2, revEdges)); - } - } - node1.id_0 = 0; -} - -function $process_59(this$static, layeredGraph, monitor){ - var edge, edge$iterator, edge$iterator0, edge$iterator1, node, node$iterator, port, port$iterator, revEdges, source, source$iterator, sourcex, target, targetx; - $begin(monitor, 'Interactive cycle breaking', 1); - revEdges = new ArrayList; - for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 10); - source.id_0 = 1; - sourcex = $getInteractiveReferencePoint(source).x_0; - for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - target = edge.target.owner; - if (target != source) { - targetx = $getInteractiveReferencePoint(target).x_0; - targetx < sourcex && (revEdges.array[revEdges.array.length] = edge , true); - } - } - } - } - for (edge$iterator1 = new ArrayList$1(revEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { - edge = castTo($next_7(edge$iterator1), 17); - $reverse_0(edge, true); - } - revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 > 0 && $findCycles(this$static, node, revEdges); - } - for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $reverse_0(edge, true); - } - revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(monitor); -} - -function InteractiveCycleBreaker(){ - $clinit_InteractiveCycleBreaker(); -} - -defineClass(1384, 1, $intern_113, InteractiveCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_1(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_1; -} -; -_.process = function process_56(layeredGraph, monitor){ - $process_59(this, castTo(layeredGraph, 37), monitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_1; -var Lorg_eclipse_elk_alg_layered_p1cycles_InteractiveCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'InteractiveCycleBreaker', 1384); -function $clinit_ModelOrderCycleBreaker(){ - $clinit_ModelOrderCycleBreaker = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_2 = $addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , REVERSED_EDGE_RESTORER)); -} - -function $computeConstraintModelOrder(this$static, node, offset){ - var modelOrder; - modelOrder = 0; - switch (castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163).ordinal) { - case 2: - modelOrder = 2 * -offset + this$static.firstSeparateModelOrder; - ++this$static.firstSeparateModelOrder; - break; - case 1: - modelOrder = -offset; - break; - case 3: - modelOrder = offset; - break; - case 4: - modelOrder = 2 * offset + this$static.lastSeparateModelOrder; - ++this$static.lastSeparateModelOrder; - } - $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (modelOrder += castTo($getProperty(node, MODEL_ORDER_0), 19).value_0); - return modelOrder; -} - -function $process_60(this$static, layeredGraph, monitor){ - var edge, edge$iterator, edge$iterator0, modelOrderSource, modelOrderTarget, node, node$iterator, offset, port, port$iterator, revEdges, source, source$iterator, target; - $begin(monitor, 'Model order cycle breaking', 1); - this$static.firstSeparateModelOrder = 0; - this$static.lastSeparateModelOrder = 0; - revEdges = new ArrayList; - offset = layeredGraph.layerlessNodes.array.length; - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (offset = $wnd.Math.max(offset, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 + 1)); - } - for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 10); - modelOrderSource = $computeConstraintModelOrder(this$static, source, offset); - for (port$iterator = $getPorts(source, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - target = edge.target.owner; - modelOrderTarget = $computeConstraintModelOrder(this$static, target, offset); - modelOrderTarget < modelOrderSource && (revEdges.array[revEdges.array.length] = edge , true); - } - } - } - for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $reverse_0(edge, true); - $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); - } - revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(monitor); -} - -function ModelOrderCycleBreaker(){ - $clinit_ModelOrderCycleBreaker(); -} - -defineClass(1385, 1, $intern_113, ModelOrderCycleBreaker); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_2(graph){ - return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_2; -} -; -_.process = function process_57(layeredGraph, monitor){ - $process_60(this, castTo(layeredGraph, 37), monitor); -} -; -_.firstSeparateModelOrder = 0; -_.lastSeparateModelOrder = 0; -var INTERMEDIATE_PROCESSING_CONFIGURATION_2; -var Lorg_eclipse_elk_alg_layered_p1cycles_ModelOrderCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'ModelOrderCycleBreaker', 1385); -function $clinit_CoffmanGrahamLayerer(){ - $clinit_CoffmanGrahamLayerer = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION_0 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} - -function $canAdd_0(n, l){ - var e, e$iterator, v; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - v = e.target.owner; - if (v.layer == l) { - return false; - } - } - return true; -} - -function $compareNodesInTopo(this$static, u, v){ - var inListU, inLsitV, itU, itV, iu, iv; - inListU = castTo($get(this$static.inTopo, u), 15); - inLsitV = castTo($get(this$static.inTopo, v), 15); - itU = inListU.listIterator_1(inListU.size_1()); - itV = inLsitV.listIterator_1(inLsitV.size_1()); - while (itU.hasPrevious() && itV.hasPrevious()) { - iu = castTo(itU.previous_0(), 19); - iv = castTo(itV.previous_0(), 19); - if (iu != iv) { - return compare_5(iu.value_0, iv.value_0); - } - } - return !itU.hasNext_0() && !itV.hasNext_0()?0:itU.hasNext_0()?1:-1; -} - -function $createLayer(graph, layers){ - var aLayer; - aLayer = new Layer(graph); - layers.array[layers.array.length] = aLayer; - return aLayer; -} - -function $dfs_4(this$static, start_0, v){ - var out, out$iterator, transitive, transitive$iterator, w; - if (this$static.nodeMark[v.id_0]) { - return; - } - for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { - out = castTo($next_0(out$iterator), 17); - w = out.target.owner; - for (transitive$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(w).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(transitive$iterator);) { - transitive = castTo($next_0(transitive$iterator), 17); - transitive.source.owner == start_0 && (this$static.edgeMark[transitive.id_0] = true); - } - $dfs_4(this$static, start_0, w); - } - this$static.nodeMark[v.id_0] = true; -} - -function $lambda$1_2(this$static, n1_0, n2_1){ - return -compare_5(this$static.topoOrd[n1_0.id_0], this$static.topoOrd[n2_1.id_0]); -} - -function $process_61(this$static, layeredGraph, progressMonitor){ - var currentLayer, e, e$iterator, edgeIndex, i, index_0, j, layers, n, n$iterator, sinks, sources, src_0, tgt, u, v, v$iterator, v$iterator0, w; - $begin(progressMonitor, 'Coffman-Graham Layering', 1); - if (layeredGraph.layerlessNodes.array.length == 0) { - $done_0(progressMonitor); - return; - } - w = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)), 19).value_0; - index_0 = 0; - edgeIndex = 0; - for (n$iterator = new ArrayList$1(layeredGraph.layerlessNodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = index_0++; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - e.id_0 = edgeIndex++; - } - } - this$static.nodeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, index_0, 16, 1); - this$static.edgeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, edgeIndex, 16, 1); - this$static.inDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); - this$static.outDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); - this$static.topoOrd = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); - $clear(this$static.inTopo); - $transitiveReduction(this$static, layeredGraph); - sources = new PriorityQueue(new CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type(this$static)); - for (v$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator0.i < v$iterator0.this$01.array.length;) { - v = castTo($next_7(v$iterator0), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - this$static.edgeMark[e.id_0] || ++this$static.inDeg[v.id_0]; - } - this$static.inDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sources, v)) , true); - } - i = 0; - while (sources.heap.array.length != 0) { - v = castTo($poll_0(sources), 10); - this$static.topoOrd[v.id_0] = i++; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (this$static.edgeMark[e.id_0]) { - continue; - } - tgt = e.target.owner; - --this$static.inDeg[tgt.id_0]; - $put(this$static.inTopo, tgt, valueOf_4(this$static.topoOrd[v.id_0])); - this$static.inDeg[tgt.id_0] == 0 && (checkCriticalState_0($offer(sources, tgt)) , true); - } - } - sinks = new PriorityQueue(new CoffmanGrahamLayerer$lambda$1$Type(this$static)); - for (v$iterator = new ArrayList$1(layeredGraph.layerlessNodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 10); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(v).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - this$static.edgeMark[e.id_0] || ++this$static.outDeg[v.id_0]; - } - this$static.outDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sinks, v)) , true); - } - layers = new ArrayList; - currentLayer = $createLayer(layeredGraph, layers); - while (sinks.heap.array.length != 0) { - u = castTo($poll_0(sinks), 10); - (currentLayer.nodes.array.length >= w || !$canAdd_0(u, currentLayer)) && (currentLayer = $createLayer(layeredGraph, layers)); - $setLayer_0(u, currentLayer); - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(u).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (this$static.edgeMark[e.id_0]) { - continue; - } - src_0 = e.source.owner; - --this$static.outDeg[src_0.id_0]; - this$static.outDeg[src_0.id_0] == 0 && (checkCriticalState_0($offer(sinks, src_0)) , true); - } - } - for (j = layers.array.length - 1; j >= 0; --j) { - $add_3(layeredGraph.layers, (checkCriticalElementIndex(j, layers.array.length) , castTo(layers.array[j], 29))); - } - layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(progressMonitor); -} - -function $transitiveReduction(this$static, graph){ - var out, out$iterator, start_0, start$iterator; - for (start$iterator = new ArrayList$1(graph.layerlessNodes); start$iterator.i < start$iterator.this$01.array.length;) { - start_0 = castTo($next_7(start$iterator), 10); - fill_3(this$static.nodeMark); - for (out$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(start_0).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(out$iterator);) { - out = castTo($next_0(out$iterator), 17); - $dfs_4(this$static, start_0, out.target.owner); - } - } -} - -function CoffmanGrahamLayerer(){ - $clinit_CoffmanGrahamLayerer(); - this.inTopo = new ArrayListMultimap; -} - -defineClass(1389, 1, $intern_113, CoffmanGrahamLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_3(graph){ - return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_0; -} -; -_.process = function process_58(layeredGraph, progressMonitor){ - $process_61(this, castTo(layeredGraph, 37), progressMonitor); -} -; -var BASELINE_PROCESSING_CONFIGURATION_0; -var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer', 1389); -function CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1390, 1, $intern_88, CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type); -_.compare_1 = function compare_61(arg0, arg1){ - return $compareNodesInTopo(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_142(other){ - return this === other; -} -; -_.reversed = function reversed_53(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type', 1390); -function CoffmanGrahamLayerer$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1391, 1, $intern_88, CoffmanGrahamLayerer$lambda$1$Type); -_.compare_1 = function compare_62(arg0, arg1){ - return $lambda$1_2(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_143(other){ - return this === other; -} -; -_.reversed = function reversed_54(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/lambda$1$Type', 1391); -function $checkNode(this$static, node1, graph){ - var edge, edge$iterator, layer1, layer2, newIndex, newLayer, node2, port, port$iterator; - node1.id_0 = 1; - layer1 = node1.layer; - for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node2 = edge.target.owner; - if (node1 != node2) { - layer2 = node2.layer; - if (layer2.id_0 <= layer1.id_0) { - newIndex = layer1.id_0 + 1; - if (newIndex == graph.layers.array.length) { - newLayer = new Layer(graph); - newLayer.id_0 = newIndex; - $add_3(graph.layers, newLayer); - $setLayer_0(node2, newLayer); - } - else { - newLayer = castTo($get_11(graph.layers, newIndex), 29); - $setLayer_0(node2, newLayer); - } - $checkNode(this$static, node2, graph); - } - } - } - } -} - -function $process_62(this$static, layeredGraph, monitor){ - var currentSpans, foundSpan, layer, layerIterator, layers, maxx, minx, nextIndex, node, node$iterator, node$iterator0, node$iterator1, span_0, span$iterator, spanIter; - $begin(monitor, 'Interactive node layering', 1); - currentSpans = new ArrayList; - for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - minx = node.pos.x_0; - maxx = minx + node.size_0.x_0; - maxx = $wnd.Math.max(minx + 1, maxx); - spanIter = new AbstractList$ListIteratorImpl(currentSpans, 0); - foundSpan = null; - while (spanIter.i < spanIter.this$01_0.size_1()) { - span_0 = (checkCriticalElement(spanIter.i < spanIter.this$01_0.size_1()) , castTo(spanIter.this$01_0.get_0(spanIter.last = spanIter.i++), 569)); - if (span_0.start_0 >= maxx) { - checkCriticalElement(spanIter.i > 0); - spanIter.this$01.get_0(spanIter.last = --spanIter.i); - break; - } - else if (span_0.end > minx) { - if (!foundSpan) { - $add_3(span_0.nodes, node); - span_0.start_0 = $wnd.Math.min(span_0.start_0, minx); - span_0.end = $wnd.Math.max(span_0.end, maxx); - foundSpan = span_0; - } - else { - $addAll_2(foundSpan.nodes, span_0.nodes); - foundSpan.end = $wnd.Math.max(foundSpan.end, span_0.end); - $remove_8(spanIter); - } - } - } - if (!foundSpan) { - foundSpan = new InteractiveLayerer$LayerSpan; - foundSpan.start_0 = minx; - foundSpan.end = maxx; - $add_1(spanIter, foundSpan); - $add_3(foundSpan.nodes, node); - } - } - layers = layeredGraph.layers; - nextIndex = 0; - for (span$iterator = new ArrayList$1(currentSpans); span$iterator.i < span$iterator.this$01.array.length;) { - span_0 = castTo($next_7(span$iterator), 569); - layer = new Layer(layeredGraph); - layer.id_0 = nextIndex++; - layers.array[layers.array.length] = layer; - for (node$iterator1 = new ArrayList$1(span_0.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - $setLayer_0(node, layer); - node.id_0 = 0; - } - } - for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 == 0 && $checkNode(this$static, node, layeredGraph); - } - layerIterator = new AbstractList$ListIteratorImpl(layers, 0); - while (layerIterator.i < layerIterator.this$01_0.size_1()) { - (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)).nodes.array.length == 0 && $remove_8(layerIterator); - } - layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(monitor); -} - -function InteractiveLayerer(){ -} - -defineClass(1392, 1, $intern_113, InteractiveLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_4(graph){ - return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , INTERACTIVE_EXTERNAL_PORT_POSITIONER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} -; -_.process = function process_59(layeredGraph, monitor){ - $process_62(this, castTo(layeredGraph, 37), monitor); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer', 1392); -function InteractiveLayerer$LayerSpan(){ - this.nodes = new ArrayList; -} - -defineClass(569, 1, {569:1}, InteractiveLayerer$LayerSpan); -_.end = 0; -_.start_0 = 0; -var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer$LayerSpan_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer/LayerSpan', 569); -function $clinit_LongestPathLayerer(){ - $clinit_LongestPathLayerer = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION_1 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} - -function $process_63(this$static, thelayeredGraph, monitor){ - var index_0, node, node$iterator, node$iterator0, nodes; - $begin(monitor, 'Longest path layering', 1); - this$static.layeredGraph = thelayeredGraph; - nodes = this$static.layeredGraph.layerlessNodes; - this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.array.length, 15, 1); - index_0 = 0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = index_0; - this$static.nodeHeights[index_0] = -1; - ++index_0; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $visit(this$static, node); - } - nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.layeredGraph = null; - this$static.nodeHeights = null; - $done_0(monitor); -} - -function $putNode(this$static, node, height){ - var i, layers; - layers = this$static.layeredGraph.layers; - for (i = layers.array.length; i < height; i++) { - $add_2(layers, 0, new Layer(this$static.layeredGraph)); - } - $setLayer_0(node, castTo($get_11(layers, layers.array.length - height), 29)); - this$static.nodeHeights[node.id_0] = height; -} - -function $visit(this$static, node){ - var edge, edge$iterator, height, maxHeight, port, port$iterator, targetHeight, targetNode; - height = this$static.nodeHeights[node.id_0]; - if (height >= 0) { - return height; - } - else { - maxHeight = 1; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - targetNode = edge.target.owner; - if (node != targetNode) { - targetHeight = $visit(this$static, targetNode); - maxHeight = $wnd.Math.max(maxHeight, targetHeight + 1); - } - } - } - $putNode(this$static, node, maxHeight); - return maxHeight; - } -} - -function LongestPathLayerer(){ - $clinit_LongestPathLayerer(); -} - -defineClass(1388, 1, $intern_113, LongestPathLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_5(graph){ - return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_1; -} -; -_.process = function process_60(thelayeredGraph, monitor){ - $process_63(this, castTo(thelayeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSING_CONFIGURATION_1; -var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathLayerer', 1388); -function $clinit_MinWidthLayerer(){ - $clinit_MinWidthLayerer = emptyMethod; - UPPERBOUND_ON_WIDTH_RANGE = closed_0(valueOf_4(1), valueOf_4(4)); - COMPENSATOR_RANGE = closed_0(valueOf_4(1), valueOf_4(2)); -} - -function $computeMinWidthLayering(this$static, upperBoundOnWidth, compensator, nodes, nodeSuccessors){ - var alreadyPlacedInCurrentLayer, alreadyPlacedInOtherLayers, currentLayer, currentNode, currentSpanningEdges, goingOutFromThisLayer, inDeg, layers, maxWidth, outDeg, realWidth, ubwConsiderSize, unplacedNodes, widthCurrent, widthUp; - layers = new ArrayList; - unplacedNodes = newLinkedHashSet(nodes); - ubwConsiderSize = upperBoundOnWidth * this$static.avgSize; - inDeg = 0; - outDeg = 0; - alreadyPlacedInCurrentLayer = new HashSet; - alreadyPlacedInOtherLayers = new HashSet; - currentLayer = new ArrayList; - widthCurrent = 0; - widthUp = 0; - maxWidth = 0; - realWidth = 0; - currentSpanningEdges = 0; - goingOutFromThisLayer = 0; - while (unplacedNodes.map_0.size_1() != 0) { - currentNode = $selectNode(unplacedNodes, nodeSuccessors, alreadyPlacedInOtherLayers); - if (currentNode) { - unplacedNodes.map_0.remove_0(currentNode) != null; - currentLayer.array[currentLayer.array.length] = currentNode; - alreadyPlacedInCurrentLayer.map_0.put(currentNode, alreadyPlacedInCurrentLayer); - outDeg = this$static.outDegree[currentNode.id_0]; - widthCurrent += this$static.normSize[currentNode.id_0] - outDeg * this$static.dummySize; - inDeg = this$static.inDegree[currentNode.id_0]; - widthUp += inDeg * this$static.dummySize; - goingOutFromThisLayer += outDeg * this$static.dummySize; - realWidth += this$static.normSize[currentNode.id_0]; - } - if (!currentNode || unplacedNodes.map_0.size_1() == 0 || widthCurrent >= ubwConsiderSize && this$static.normSize[currentNode.id_0] > outDeg * this$static.dummySize || widthUp >= compensator * ubwConsiderSize) { - layers.array[layers.array.length] = currentLayer; - currentLayer = new ArrayList; - $addAll(alreadyPlacedInOtherLayers, alreadyPlacedInCurrentLayer); - alreadyPlacedInCurrentLayer.map_0.clear_0(); - currentSpanningEdges -= goingOutFromThisLayer; - maxWidth = $wnd.Math.max(maxWidth, currentSpanningEdges * this$static.dummySize + realWidth); - currentSpanningEdges += widthUp; - widthCurrent = widthUp; - widthUp = 0; - goingOutFromThisLayer = 0; - realWidth = 0; - } - } - return new Pair(maxWidth, layers); -} - -function $countEdgesExceptSelfLoops(edges){ - var edge, edge$iterator, i; - i = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - edge.source.owner == edge.target.owner || ++i; - } - return i; -} - -function $precalcSuccessors(nodes){ - var edge, edge$iterator, node, node$iterator, outEdges, outNodes, successors; - successors = newArrayListWithCapacity(nodes.array.length); - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - outNodes = new HashSet; - outEdges = $getOutgoingEdges(node); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(outEdges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - edge.source.owner == edge.target.owner || $add_6(outNodes, edge.target.owner); - } - successors.array[successors.array.length] = outNodes; - } - return successors; -} - -function $process_64(this$static, layeredGraph, progressMonitor){ - var c, cEnd, cStart, candidateLayering, compensator, currentLayer, i, layerList, layerList$iterator, layering, layers, minNumOfLayers, minWidth, newNumOfLayers, newWidth, node, node$iterator, node$iterator0, node$iterator1, nodeSuccessors, notInserted, numOfNodes, result, size_0, ubw, ubwEnd, ubwStart, upperBoundOnWidth; - $begin(progressMonitor, 'MinWidth layering', 1); - layers = layeredGraph.layers; - notInserted = layeredGraph.layerlessNodes; - upperBoundOnWidth = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)), 19).value_0; - compensator = castTo($getProperty(layeredGraph, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0), 19).value_0; - this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); - this$static.minimumNodeSize = $intern_59; - for (node$iterator0 = new ArrayList$1(notInserted); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - size_0 = node.size_0.y_0; - this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); - } - this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); - numOfNodes = notInserted.array.length; - this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); - this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); - this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, numOfNodes, 15, 1); - i = 0; - this$static.avgSize = 0; - for (node$iterator1 = new ArrayList$1(notInserted); node$iterator1.i < node$iterator1.this$01.array.length;) { - node = castTo($next_7(node$iterator1), 10); - node.id_0 = i++; - this$static.inDegree[node.id_0] = $countEdgesExceptSelfLoops($getIncomingEdges(node)); - this$static.outDegree[node.id_0] = $countEdgesExceptSelfLoops($getOutgoingEdges(node)); - this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; - this$static.avgSize += this$static.normSize[node.id_0]; - } - this$static.dummySize /= this$static.minimumNodeSize; - this$static.avgSize /= numOfNodes; - nodeSuccessors = $precalcSuccessors(notInserted); - $sort(notInserted, reverseOrder(new MinWidthLayerer$MinOutgoingEdgesComparator(this$static))); - minWidth = $intern_59; - minNumOfLayers = $intern_0; - candidateLayering = null; - ubwStart = upperBoundOnWidth; - ubwEnd = upperBoundOnWidth; - cStart = compensator; - cEnd = compensator; - if (upperBoundOnWidth < 0) { - ubwStart = castTo(UPPERBOUND_ON_WIDTH_RANGE.lowerBound.endpoint_0(), 19).value_0; - ubwEnd = castTo(UPPERBOUND_ON_WIDTH_RANGE.upperBound.endpoint_0(), 19).value_0; - } - if (compensator < 0) { - cStart = castTo(COMPENSATOR_RANGE.lowerBound.endpoint_0(), 19).value_0; - cEnd = castTo(COMPENSATOR_RANGE.upperBound.endpoint_0(), 19).value_0; - } - for (ubw = ubwStart; ubw <= ubwEnd; ubw++) { - for (c = cStart; c <= cEnd; c++) { - result = $computeMinWidthLayering(this$static, ubw, c, notInserted, nodeSuccessors); - newWidth = $doubleValue(castToDouble(result.first)); - layering = castTo(result.second, 15); - newNumOfLayers = layering.size_1(); - if (newWidth < minWidth || newWidth == minWidth && newNumOfLayers < minNumOfLayers) { - minWidth = newWidth; - minNumOfLayers = newNumOfLayers; - candidateLayering = layering; - } - } - } - for (layerList$iterator = candidateLayering.iterator_0(); layerList$iterator.hasNext_0();) { - layerList = castTo(layerList$iterator.next_1(), 15); - currentLayer = new Layer(layeredGraph); - for (node$iterator = layerList.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - $setLayer_0(node, currentLayer); - } - layers.array[layers.array.length] = currentLayer; - } - reverse_2(layers); - notInserted.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $done_0(progressMonitor); -} - -function $selectNode(nodes, successors, targets){ - var node, node$iterator; - for (node$iterator = nodes.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - if ($containsAll(targets, castTo($get_11(successors, node.id_0), 14))) { - return node; - } - } - return null; -} - -function MinWidthLayerer(){ - $clinit_MinWidthLayerer(); -} - -defineClass(1395, 1, $intern_113, MinWidthLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_6(graph){ - return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} -; -_.process = function process_61(layeredGraph, progressMonitor){ - $process_64(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.avgSize = 0; -_.dummySize = 0; -_.minimumNodeSize = 0; -var COMPENSATOR_RANGE, UPPERBOUND_ON_WIDTH_RANGE; -var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer', 1395); -function $compare_18(this$static, o1, o2){ - var outs1, outs2; - outs1 = this$static.this$01.outDegree[o1.id_0]; - outs2 = this$static.this$01.outDegree[o2.id_0]; - if (outs1 < outs2) { - return -1; - } - if (outs1 == outs2) { - return 0; - } - return 1; -} - -function MinWidthLayerer$MinOutgoingEdgesComparator(this$0){ - this.this$01 = this$0; -} - -defineClass(1396, 1, $intern_88, MinWidthLayerer$MinOutgoingEdgesComparator); -_.compare_1 = function compare_63(o1, o2){ - return $compare_18(this, castTo(o1, 10), castTo(o2, 10)); -} -; -_.equals_0 = function equals_144(other){ - return this === other; -} -; -_.reversed = function reversed_55(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_MinWidthLayerer$MinOutgoingEdgesComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer/MinOutgoingEdgesComparator', 1396); -function $clinit_NetworkSimplexLayerer(){ - $clinit_NetworkSimplexLayerer = emptyMethod; - BASELINE_PROCESSING_CONFIGURATION_2 = $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} - -function $connectedComponents(this$static, theNodes){ - var components, counter, node, node$iterator, node$iterator0; - this$static.nodeVisited == null || this$static.nodeVisited.length < theNodes.array.length?(this$static.nodeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, theNodes.array.length, 16, 1)):fill_3(this$static.nodeVisited); - this$static.componentNodes = new ArrayList; - counter = 0; - for (node$iterator0 = new ArrayList$1(theNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - node.id_0 = counter++; - } - components = new LinkedList; - for (node$iterator = new ArrayList$1(theNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (!this$static.nodeVisited[node.id_0]) { - $connectedComponentsDFS(this$static, node); - components.size_0 == 0 || (checkCriticalElement(components.size_0 != 0) , castTo(components.header.next_0.value_0, 15)).size_1() < this$static.componentNodes.array.length?$addFirst_0(components, this$static.componentNodes):$addLast_0(components, this$static.componentNodes); - this$static.componentNodes = new ArrayList; - } - } - return components; -} - -function $connectedComponentsDFS(this$static, node){ - var edge, edge$iterator, opposite, port, port$iterator; - this$static.nodeVisited[node.id_0] = true; - $add_3(this$static.componentNodes, node); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - opposite = $getOpposite(port, edge).owner; - this$static.nodeVisited[opposite.id_0] || $connectedComponentsDFS(this$static, opposite); - } - } -} - -function $getOpposite(port, edge){ - if (edge.source == port) { - return edge.target; - } - else if (edge.target == port) { - return edge.source; - } - throw toJs(new IllegalArgumentException_0('Input edge is not connected to the input port.')); -} - -function $initialize_4(theNodes){ - var graph, lEdge, lEdge$iterator, lNode, lNode$iterator, lNode$iterator0, nNode, nodeMap; - nodeMap = new HashMap; - graph = new NGraph; - for (lNode$iterator0 = theNodes.iterator_0(); lNode$iterator0.hasNext_0();) { - lNode = castTo(lNode$iterator0.next_1(), 10); - nNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), graph); - $put_9(nodeMap.hashCodeMap, lNode, nNode); - } - for (lNode$iterator = theNodes.iterator_0(); lNode$iterator.hasNext_0();) { - lNode = castTo(lNode$iterator.next_1(), 10); - for (lEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(lEdge$iterator);) { - lEdge = castTo($next_0(lEdge$iterator), 17); - if ($isSelfLoop(lEdge)) { - continue; - } - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_SHORTNESS_0)), 19).value_0)), 1), castTo($get_10(nodeMap, lEdge.source.owner), 121)), castTo($get_10(nodeMap, lEdge.target.owner), 121))); - } - } - return graph; -} - -function $process_65(this$static, theLayeredGraph, monitor){ - var connComp, connComp$iterator, connectedComponents, graph, iterLimit, l, l$iterator, lNode, layerIdx, layers, nNode, nNode$iterator, previousLayeringNodeCounts, theNodes, thoroughness; - $begin(monitor, 'Network simplex layering', 1); - this$static.layeredGraph = theLayeredGraph; - thoroughness = castTo($getProperty(theLayeredGraph, ($clinit_LayeredOptions() , THOROUGHNESS_0)), 19).value_0 * 4; - theNodes = this$static.layeredGraph.layerlessNodes; - if (theNodes.array.length < 1) { - $done_0(monitor); - return; - } - connectedComponents = $connectedComponents(this$static, theNodes); - previousLayeringNodeCounts = null; - for (connComp$iterator = $listIterator_2(connectedComponents, 0); connComp$iterator.currentNode != connComp$iterator.this$01.tail;) { - connComp = castTo($next_10(connComp$iterator), 15); - iterLimit = thoroughness * round_int($wnd.Math.sqrt(connComp.size_1())); - graph = $initialize_4(connComp); - $execute_0($withBalancing($withPreviousLayering($withIterationLimit(forGraph(graph), iterLimit), previousLayeringNodeCounts), true), $subTask(monitor, 1)); - layers = this$static.layeredGraph.layers; - for (nNode$iterator = new ArrayList$1(graph.nodes); nNode$iterator.i < nNode$iterator.this$01.array.length;) { - nNode = castTo($next_7(nNode$iterator), 121); - while (layers.array.length <= nNode.layer) { - $add_2(layers, layers.array.length, new Layer(this$static.layeredGraph)); - } - lNode = castTo(nNode.origin_0, 10); - $setLayer_0(lNode, castTo($get_11(layers, nNode.layer), 29)); - } - if (connectedComponents.size_0 > 1) { - previousLayeringNodeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.layeredGraph.layers.array.length, 15, 1); - layerIdx = 0; - for (l$iterator = new ArrayList$1(this$static.layeredGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - previousLayeringNodeCounts[layerIdx++] = l.nodes.array.length; - } - } - } - theNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.componentNodes = null; - this$static.layeredGraph = null; - this$static.nodeVisited = null; - $done_0(monitor); -} - -function NetworkSimplexLayerer(){ - $clinit_NetworkSimplexLayerer(); -} - -defineClass(1387, 1, $intern_113, NetworkSimplexLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_7(graph){ - return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_2; -} -; -_.process = function process_62(theLayeredGraph, monitor){ - $process_65(this, castTo(theLayeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSING_CONFIGURATION_2; -var Lorg_eclipse_elk_alg_layered_p2layers_NetworkSimplexLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'NetworkSimplexLayerer', 1387); -function $computeDegrees(this$static){ - var node, node$iterator; - this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); - this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.inDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - this$static.outDegree[node.id_0] = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - } -} - -function $computeNormalizedSize(this$static){ - var node, node$iterator; - this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.normSize[node.id_0] = node.size_0.y_0 / this$static.minimumNodeSize; - } -} - -function $computeSortedNodes(this$static){ - var node, node$iterator, unsortedNodes; - unsortedNodes = this$static.currentGraph.layerlessNodes; - this$static.sortedLayerlessNodes = (checkNotNull(unsortedNodes) , new ArrayList_1(unsortedNodes)); - for (node$iterator = new ArrayList$1(unsortedNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = $getRank(node).value_0; - } - $clinit_Collections(); - $sort(this$static.sortedLayerlessNodes, new StretchWidthLayerer$1); -} - -function $computeSuccessors(this$static){ - var currSucc, edge, edge$iterator, i, node, node$iterator; - i = 0; - this$static.successors = new ArrayList; - currSucc = new HashSet; - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = i; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - $add_6(currSucc, edge.target.owner); - } - currSucc.map_0.remove_0(node) != null; - $add_3(this$static.successors, new HashSet_1(currSucc)); - currSucc.map_0.clear_0(); - ++i; - } -} - -function $conditionGoUp(this$static){ - var a, b; - a = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0] > this$static.maxWidth; - b = this$static.widthUp + this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize > this$static.maxWidth * this$static.upperLayerInfluence * this$static.dummySize; - return a || b; -} - -function $getAverageOutDegree(this$static){ - var allOut, node, node$iterator; - allOut = 0; - for (node$iterator = new ArrayList$1(this$static.currentGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - allOut += size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - } - return allOut / this$static.currentGraph.layerlessNodes.array.length; -} - -function $getRank(node){ - var max_0, pre, preEdge, preEdge$iterator, temp; - max_0 = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - for (preEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(preEdge$iterator);) { - preEdge = castTo($next_0(preEdge$iterator), 17); - pre = preEdge.source.owner; - temp = size_24(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(pre).val$inputs1.iterator_0(), new Iterables$10))); - max_0 = $wnd.Math.max(max_0, temp); - } - return valueOf_4(max_0); -} - -function $minMaxNodeSize(this$static){ - var node, node$iterator, size_0; - for (node$iterator = new ArrayList$1(this$static.sortedLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - size_0 = node.size_0.y_0; - this$static.minimumNodeSize = $wnd.Math.min(this$static.minimumNodeSize, size_0); - this$static.maximumNodeSize = $wnd.Math.max(this$static.maximumNodeSize, size_0); - } -} - -function $process_66(this$static, layeredGraph, progressMonitor){ - var currentLayer; - $begin(progressMonitor, 'StretchWidth layering', 1); - if (layeredGraph.layerlessNodes.array.length == 0) { - $done_0(progressMonitor); - return; - } - this$static.currentGraph = layeredGraph; - this$static.widthCurrent = 0; - this$static.widthUp = 0; - this$static.minimumNodeSize = $intern_59; - this$static.maximumNodeSize = $intern_60; - this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - $computeSortedNodes(this$static); - $computeSuccessors(this$static); - $computeDegrees(this$static); - $minMaxNodeSize(this$static); - $computeNormalizedSize(this$static); - this$static.minimumNodeSize = $wnd.Math.max(1, this$static.minimumNodeSize); - this$static.maximumNodeSize = $wnd.Math.max(1, this$static.maximumNodeSize); - this$static.dummySize = this$static.dummySize / this$static.minimumNodeSize; - this$static.maxWidth = this$static.maximumNodeSize / this$static.minimumNodeSize; - this$static.upperLayerInfluence = $getAverageOutDegree(this$static); - currentLayer = new Layer(this$static.currentGraph); - $add_3(this$static.currentGraph.layers, currentLayer); - this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); - this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); - while (this$static.tempLayerlessNodes.array.length != 0) { - this$static.selectedNode = $selectNode_0(this$static); - if (!this$static.selectedNode || $conditionGoUp(this$static) && this$static.alreadyPlacedNodes.map_0.size_1() != 0) { - $updateOutGoing(this$static, currentLayer); - currentLayer = new Layer(this$static.currentGraph); - $add_3(this$static.currentGraph.layers, currentLayer); - $addAll(this$static.alreadyPlacedInOtherLayers, this$static.alreadyPlacedNodes); - this$static.alreadyPlacedNodes.map_0.clear_0(); - this$static.widthCurrent = this$static.widthUp; - this$static.widthUp = 0; - } - else { - if ($conditionGoUp(this$static)) { - this$static.currentGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - currentLayer = new Layer(this$static.currentGraph); - $add_3(this$static.currentGraph.layers, currentLayer); - this$static.widthCurrent = 0; - this$static.widthUp = 0; - this$static.alreadyPlacedNodes.map_0.clear_0(); - this$static.alreadyPlacedInOtherLayers.map_0.clear_0(); - ++this$static.maxWidth; - this$static.tempLayerlessNodes = newArrayList(this$static.sortedLayerlessNodes); - this$static.remainingOutGoing = copyOf(this$static.outDegree, this$static.outDegree.length); - } - else { - $setLayer_0(this$static.selectedNode, currentLayer); - $remove_12(this$static.tempLayerlessNodes, this$static.selectedNode); - $add_6(this$static.alreadyPlacedNodes, this$static.selectedNode); - this$static.widthCurrent = this$static.widthCurrent - this$static.outDegree[this$static.selectedNode.id_0] * this$static.dummySize + this$static.normSize[this$static.selectedNode.id_0]; - this$static.widthUp += this$static.inDegree[this$static.selectedNode.id_0] * this$static.dummySize; - } - } - } - layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - reverse_2(layeredGraph.layers); - $done_0(progressMonitor); -} - -function $selectNode_0(this$static){ - var node, node$iterator; - for (node$iterator = new ArrayList$1(this$static.tempLayerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (this$static.remainingOutGoing[node.id_0] <= 0) { - return node; - } - } - return null; -} - -function $updateOutGoing(this$static, currentLayer){ - var edge, edge$iterator, node, node$iterator, pos; - for (node$iterator = new ArrayList$1(currentLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - pos = edge.source.owner.id_0; - this$static.remainingOutGoing[pos] = this$static.remainingOutGoing[pos] - 1; - } - } -} - -function StretchWidthLayerer(){ - this.alreadyPlacedNodes = new HashSet; - this.alreadyPlacedInOtherLayers = new HashSet; -} - -defineClass(1393, 1, $intern_113, StretchWidthLayerer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_8(graph){ - return castTo(graph, 37) , $addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P1_CYCLE_BREAKING), ($clinit_IntermediateProcessorStrategy() , EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER)), P2_LAYERING, LAYER_CONSTRAINT_PREPROCESSOR), P3_NODE_ORDERING, LAYER_CONSTRAINT_POSTPROCESSOR); -} -; -_.process = function process_63(layeredGraph, progressMonitor){ - $process_66(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.dummySize = 0; -_.maxWidth = 0; -_.maximumNodeSize = 0; -_.minimumNodeSize = 0; -_.upperLayerInfluence = 0; -_.widthCurrent = 0; -_.widthUp = 0; -var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer', 1393); -function $compare_19(o1, o2){ - if (o1.id_0 < o2.id_0) { - return 1; - } - else if (o1.id_0 > o2.id_0) { - return -1; - } - return 0; -} - -function StretchWidthLayerer$1(){ -} - -defineClass(1394, 1, $intern_88, StretchWidthLayerer$1); -_.compare_1 = function compare_64(o1, o2){ - return $compare_19(castTo(o1, 10), castTo(o2, 10)); -} -; -_.equals_0 = function equals_145(other){ - return this === other; -} -; -_.reversed = function reversed_56(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p2layers_StretchWidthLayerer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer/1', 1394); -function create_15(cmt, r, currentOrder){ - return cmt == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , TWO_SIDED_GREEDY_SWITCH_0)?new GreedyPortDistributor:$nextInternal(r, 1) != 0?new NodeRelativePortDistributor(currentOrder.length):new LayerTotalPortDistributor(currentOrder.length); -} - -function $calculateInLayerPortsBarycenterValues(this$static, node){ - var barycenter, connectedPort, connectedPort$iterator, inLayerConnections, inLayerPort, inLayerPort$iterator, layerSize, nodeIndexInLayer, portSide, sum; - nodeIndexInLayer = this$static.nodePositions[node.layer.id_0][node.id_0] + 1; - layerSize = node.layer.nodes.array.length + 1; - for (inLayerPort$iterator = new ArrayList$1(this$static.inLayerPorts); inLayerPort$iterator.i < inLayerPort$iterator.this$01.array.length;) { - inLayerPort = castTo($next_7(inLayerPort$iterator), 11); - sum = 0; - inLayerConnections = 0; - for (connectedPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(inLayerPort), new LPort$2(inLayerPort)]))); $hasNext_1(connectedPort$iterator);) { - connectedPort = castTo($next_0(connectedPort$iterator), 11); - if (connectedPort.owner.layer == node.layer) { - sum += $positionOf(this$static, connectedPort.owner) + 1; - ++inLayerConnections; - } - } - barycenter = sum / inLayerConnections; - portSide = inLayerPort.side; - portSide == ($clinit_PortSide() , EAST_2)?barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + (layerSize - barycenter)):portSide == WEST_2 && (barycenter < nodeIndexInLayer?(this$static.portBarycenter[inLayerPort.id_0] = this$static.maxBarycenter + barycenter):(this$static.portBarycenter[inLayerPort.id_0] = this$static.minBarycenter - (layerSize - barycenter))); - } -} - -function $calculatePortRanks(this$static, layer, portType){ - var consumedRank, nodeIx; - consumedRank = 0; - for (nodeIx = 0; nodeIx < layer.length; nodeIx++) { - consumedRank += this$static.calculatePortRanks(layer[nodeIx], consumedRank, portType); - } -} - -function $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy){ - var input_0, output, portDummyPort, portDummyPort$iterator, sum; - input_0 = false; - output = false; - for (portDummyPort$iterator = new ArrayList$1(portDummy.ports); portDummyPort$iterator.i < portDummyPort$iterator.this$01.array.length;) { - portDummyPort = castTo($next_7(portDummyPort$iterator), 11); - maskUndefined($getProperty(portDummyPort, ($clinit_InternalProperties_1() , ORIGIN_0))) === maskUndefined(port) && (portDummyPort.outgoingEdges.array.length == 0?portDummyPort.incomingEdges.array.length == 0 || (input_0 = true):(output = true)); - } - sum = 0; - input_0 && input_0 ^ output?(sum = port.side == ($clinit_PortSide() , NORTH_3)?-this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]:absurdlyLargeFloat - this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0]):output && input_0 ^ output?(sum = this$static.nodePositions[portDummy.layer.id_0][portDummy.id_0] + 1):input_0 && output && (sum = port.side == ($clinit_PortSide() , NORTH_3)?0:absurdlyLargeFloat / 2); - return sum; -} - -function $distributePorts(this$static, node, ports){ - this$static.inLayerPorts.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $iteratePortsAndCollectInLayerPorts(this$static, node, ports); - this$static.inLayerPorts.array.length == 0 || $calculateInLayerPortsBarycenterValues(this$static, node); -} - -function $distributePorts_0(this$static, node, side){ - if (!$isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - $distributePorts(this$static, node, $getPorts_1(node, side)); - $distributePorts(this$static, node, $getPorts_1(node, ($clinit_PortSide() , SOUTH_2))); - $distributePorts(this$static, node, $getPorts_1(node, NORTH_3)); - $clinit_Collections(); - $sort(node.ports, new AbstractBarycenterPortDistributor$lambda$0$Type(this$static)); - } -} - -function $distributePortsWhileSweeping(this$static, nodeOrder, currentIndex, isForwardSweep){ - var fixedLayer, freeLayer, node, node$array, node$array0, node$index, node$index0, node$max, node$max0, side; - $updateNodePositions(this$static, nodeOrder, currentIndex); - freeLayer = nodeOrder[currentIndex]; - side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); - if ($isNotFirstLayer(nodeOrder.length, currentIndex, isForwardSweep)) { - fixedLayer = nodeOrder[isForwardSweep?currentIndex - 1:currentIndex + 1]; - $calculatePortRanks(this$static, fixedLayer, isForwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); - for (node$array0 = freeLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { - node = node$array0[node$index0]; - $distributePorts_0(this$static, node, side); - } - $calculatePortRanks(this$static, freeLayer, isForwardSweep?($clinit_PortType() , INPUT):($clinit_PortType() , OUTPUT)); - for (node$array = fixedLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - !!node.nestedGraph || $distributePorts_0(this$static, node, $opposed(side)); - } - } - else { - for (node$array = freeLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $distributePorts_0(this$static, node, side); - } - } - return false; -} - -function $isNotFirstLayer(length_0, currentIndex, isForwardSweep){ - return isForwardSweep?currentIndex != 0:currentIndex != length_0 - 1; -} - -function $iteratePortsAndCollectInLayerPorts(this$static, node, ports){ - var absurdlyLargeFloat, connectedPort, incomingEdge, incomingEdge$iterator, northSouthPort, outgoingEdge, outgoingEdge$iterator, port, port$iterator, portDummy, sum; - this$static.minBarycenter = 0; - this$static.maxBarycenter = 0; - absurdlyLargeFloat = 2 * node.layer.nodes.array.length + 1; - PortIteration: for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - northSouthPort = port.side == ($clinit_PortSide() , NORTH_3) || port.side == SOUTH_2; - sum = 0; - if (northSouthPort) { - portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (!portDummy) { - continue; - } - sum += $dealWithNorthSouthPorts(this$static, absurdlyLargeFloat, port, portDummy); - } - else { - for (outgoingEdge$iterator = new ArrayList$1(port.outgoingEdges); outgoingEdge$iterator.i < outgoingEdge$iterator.this$01.array.length;) { - outgoingEdge = castTo($next_7(outgoingEdge$iterator), 17); - connectedPort = outgoingEdge.target; - if (connectedPort.owner.layer == node.layer) { - $add_3(this$static.inLayerPorts, port); - continue PortIteration; - } - else { - sum += this$static.portRanks[connectedPort.id_0]; - } - } - for (incomingEdge$iterator = new ArrayList$1(port.incomingEdges); incomingEdge$iterator.i < incomingEdge$iterator.this$01.array.length;) { - incomingEdge = castTo($next_7(incomingEdge$iterator), 17); - connectedPort = incomingEdge.source; - if (connectedPort.owner.layer == node.layer) { - $add_3(this$static.inLayerPorts, port); - continue PortIteration; - } - else { - sum -= this$static.portRanks[connectedPort.id_0]; - } - } - } - if (port.incomingEdges.array.length + port.outgoingEdges.array.length > 0) { - this$static.portBarycenter[port.id_0] = sum / (port.incomingEdges.array.length + port.outgoingEdges.array.length); - this$static.minBarycenter = $wnd.Math.min(this$static.minBarycenter, this$static.portBarycenter[port.id_0]); - this$static.maxBarycenter = $wnd.Math.max(this$static.maxBarycenter, this$static.portBarycenter[port.id_0]); - } - else - northSouthPort && (this$static.portBarycenter[port.id_0] = sum); - } -} - -function $lambda$0_6(this$static, port1_0, port2_1){ - var port1Bary, port2Bary, side1, side2; - side1 = port1_0.side; - side2 = port2_1.side; - if (side1 != side2) { - return side1.ordinal - side2.ordinal; - } - else { - port1Bary = this$static.portBarycenter[port1_0.id_0]; - port2Bary = this$static.portBarycenter[port2_1.id_0]; - return port1Bary == 0 && port2Bary == 0?0:port1Bary == 0?-1:port2Bary == 0?1:compare_4(port1Bary, port2Bary); - } -} - -function $positionOf(this$static, node){ - return this$static.nodePositions[node.layer.id_0][node.id_0]; -} - -function $updateNodePositions(this$static, nodeOrder, currentIndex){ - var i, layer, node; - layer = nodeOrder[currentIndex]; - for (i = 0; i < layer.length; i++) { - node = layer[i]; - this$static.nodePositions[node.layer.id_0][node.id_0] = i; - } -} - -function AbstractBarycenterPortDistributor(numLayers){ - this.inLayerPorts = new ArrayList; - this.nodePositions = initUnidimensionalArray(I_classLit, $intern_16, 48, numLayers, 0, 2); -} - -defineClass(402, 1, $intern_114); -_.initAtEdgeLevel = function initAtEdgeLevel_0(l, n, p, e, edge, nodeOrder){ -} -; -_.distributePortsWhileSweeping = function distributePortsWhileSweeping(nodeOrder, currentIndex, isForwardSweep){ - return $distributePortsWhileSweeping(this, nodeOrder, currentIndex, isForwardSweep); -} -; -_.initAfterTraversal = function initAfterTraversal_0(){ - this.portRanks = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); - this.portBarycenter = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); -} -; -_.initAtLayerLevel = function initAtLayerLevel_0(l, nodeOrder){ - this.nodePositions[l] = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeOrder[l].length, 15, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_0(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - node.id_0 = n; - this.nodePositions[l][n] = n; -} -; -_.initAtPortLevel = function initAtPortLevel_0(l, n, p, nodeOrder){ - castTo($get_11(nodeOrder[l][n].ports, p), 11).id_0 = this.nPorts++; -} -; -_.maxBarycenter = 0; -_.minBarycenter = 0; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor', 402); -function AbstractBarycenterPortDistributor$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1633, 1, $intern_88, AbstractBarycenterPortDistributor$lambda$0$Type); -_.compare_1 = function compare_65(arg0, arg1){ - return $lambda$0_6(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_146(other){ - return this === other; -} -; -_.reversed = function reversed_57(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_AbstractBarycenterPortDistributor$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'AbstractBarycenterPortDistributor/lambda$0$Type', 1633); -function $calculateBarycenter(this$static, node, forward_0){ - var associate, associate$iterator, barycenterAssociates, fixedNode, fixedPort, fixedPort$iterator, freePort, freePort$iterator, portIterable; - if (this$static.barycenterState[node.layer.id_0][node.id_0].visited) { - return; - } - else { - this$static.barycenterState[node.layer.id_0][node.id_0].visited = true; - } - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 0; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = 0; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = null; - for (freePort$iterator = new ArrayList$1(node.ports); freePort$iterator.i < freePort$iterator.this$01.array.length;) { - freePort = castTo($next_7(freePort$iterator), 11); - portIterable = forward_0?new LPort$1(freePort):new LPort$2(freePort); - for (fixedPort$iterator = portIterable.iterator_0(); fixedPort$iterator.hasNext_0();) { - fixedPort = castTo(fixedPort$iterator.next_1(), 11); - fixedNode = fixedPort.owner; - if (fixedNode.layer == node.layer) { - if (fixedNode != node) { - $calculateBarycenter(this$static, fixedNode, forward_0); - this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].degree; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[fixedNode.layer.id_0][fixedNode.id_0].summedWeight; - } - } - else { - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.portRanks[fixedPort.id_0]; - ++this$static.barycenterState[node.layer.id_0][node.id_0].degree; - } - } - } - barycenterAssociates = castTo($getProperty(node, ($clinit_InternalProperties_1() , BARYCENTER_ASSOCIATES)), 15); - if (barycenterAssociates) { - for (associate$iterator = barycenterAssociates.iterator_0(); associate$iterator.hasNext_0();) { - associate = castTo(associate$iterator.next_1(), 10); - if (node.layer == associate.layer) { - $calculateBarycenter(this$static, associate, forward_0); - this$static.barycenterState[node.layer.id_0][node.id_0].degree += this$static.barycenterState[associate.layer.id_0][associate.id_0].degree; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += this$static.barycenterState[associate.layer.id_0][associate.id_0].summedWeight; - } - } - } - if (this$static.barycenterState[node.layer.id_0][node.id_0].degree > 0) { - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight += $nextInternal(this$static.random_0, 24) * $intern_81 * 0.07000000029802322 - 0.03500000014901161; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight / this$static.barycenterState[node.layer.id_0][node.id_0].degree; - } -} - -function $calculateBarycenters(this$static, nodes, forward_0){ - var node, node$iterator, node$iterator0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - this$static.barycenterState[node.layer.id_0][node.id_0].visited = false; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $calculateBarycenter(this$static, node, forward_0); - } -} - -function $fillInUnknownBarycenters(this$static, nodes, preOrdered){ - var lastValue, maxBary, nextNodeIterator, nextValue, node, node$iterator, node$iterator0, nodesIterator, value_0, x_0; - if (preOrdered) { - lastValue = -1; - nodesIterator = new AbstractList$ListIteratorImpl(nodes, 0); - while (nodesIterator.i < nodesIterator.this$01_0.size_1()) { - node = (checkCriticalElement(nodesIterator.i < nodesIterator.this$01_0.size_1()) , castTo(nodesIterator.this$01_0.get_0(nodesIterator.last = nodesIterator.i++), 10)); - value_0 = this$static.barycenterState[node.layer.id_0][node.id_0].barycenter; - if (value_0 == null) { - nextValue = lastValue + 1; - nextNodeIterator = new AbstractList$ListIteratorImpl(nodes, nodesIterator.i); - while (nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) { - x_0 = $stateOf(this$static, (checkCriticalElement(nextNodeIterator.i < nextNodeIterator.this$01_0.size_1()) , castTo(nextNodeIterator.this$01_0.get_0(nextNodeIterator.last = nextNodeIterator.i++), 10))).barycenter; - if (x_0 != null) { - nextValue = (checkCriticalNotNull(x_0) , x_0); - break; - } - } - value_0 = (lastValue + nextValue) / 2; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = (checkCriticalNotNull(value_0) , value_0); - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; - } - lastValue = (checkCriticalNotNull(value_0) , value_0); - } - } - else { - maxBary = 0; - for (node$iterator0 = new ArrayList$1(nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter != null && (maxBary = $wnd.Math.max(maxBary, $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter))); - } - maxBary += 2; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (this$static.barycenterState[node.layer.id_0][node.id_0].barycenter == null) { - value_0 = $nextInternal(this$static.random_0, 24) * $intern_81 * maxBary - 1; - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = value_0; - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = value_0; - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; - } - } - } -} - -function $lambda$0_7(this$static, n1_0, n2_1){ - var s1, s2; - s1 = this$static.barycenterState[n1_0.layer.id_0][n1_0.id_0]; - s2 = this$static.barycenterState[n2_1.layer.id_0][n2_1.id_0]; - if (s1.barycenter != null && s2.barycenter != null) { - return $compareTo_4(s1.barycenter, s2.barycenter); - } - else if (s1.barycenter != null) { - return -1; - } - else if (s2.barycenter != null) { - return 1; - } - return 0; -} - -function $randomizeBarycenters(this$static, nodes){ - var node, node$iterator; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - this$static.barycenterState[node.layer.id_0][node.id_0].barycenter = $nextDouble(this$static.random_0); - this$static.barycenterState[node.layer.id_0][node.id_0].summedWeight = $doubleValue(this$static.barycenterState[node.layer.id_0][node.id_0].barycenter); - this$static.barycenterState[node.layer.id_0][node.id_0].degree = 1; - } -} - -function $startIndex_0(dir_0, length_0){ - return dir_0?0:$wnd.Math.max(0, length_0 - 1); -} - -function $stateOf(this$static, node){ - return this$static.barycenterState[node.layer.id_0][node.id_0]; -} - -function BarycenterHeuristic(constraintResolver, random, portDistributor){ - this.barycenterStateComparator = new BarycenterHeuristic$lambda$0$Type(this); - this.constraintResolver = constraintResolver; - this.random_0 = random; - this.portDistributor = portDistributor; -} - -defineClass(817, 1, $intern_111, BarycenterHeuristic); -_.initAtEdgeLevel = function initAtEdgeLevel_1(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtNodeLevel = function initAtNodeLevel_1(l, n, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_1(l, n, p, nodeOrder){ -} -; -_.alwaysImproves = function alwaysImproves_0(){ - return false; -} -; -_.initAfterTraversal = function initAfterTraversal_1(){ - this.barycenterState = this.constraintResolver.barycenterStates; - this.portRanks = this.portDistributor.portRanks; -} -; -_.initAtLayerLevel = function initAtLayerLevel_1(l, nodeOrder){ - nodeOrder[l][0].layer.id_0 = l; -} -; -_.isDeterministic = function isDeterministic_0(){ - return false; -} -; -_.minimizeCrossings_0 = function minimizeCrossings_0(layer, preOrdered, randomize, forward_0){ - if (randomize) { - $randomizeBarycenters(this, layer); - } - else { - $calculateBarycenters(this, layer, forward_0); - $fillInUnknownBarycenters(this, layer, preOrdered); - } - if (layer.array.length > 1) { - $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, castTo(this, 660)):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); - $processConstraints(this.constraintResolver, layer); - } -} -; -_.minimizeCrossings = function minimizeCrossings_1(order, freeLayerIndex, forwardSweep, isFirstSweep){ - var firstNodeInLayer, fixedLayer, index_0, nodeGroup, nodeGroup$iterator, nodes, preOrdered; - if (freeLayerIndex != $startIndex_0(forwardSweep, order.length)) { - fixedLayer = order[freeLayerIndex - (forwardSweep?1:-1)]; - $calculatePortRanks(this.portDistributor, fixedLayer, forwardSweep?($clinit_PortType() , OUTPUT):($clinit_PortType() , INPUT)); - } - firstNodeInLayer = order[freeLayerIndex][0]; - preOrdered = !isFirstSweep || firstNodeInLayer.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT); - nodes = newArrayList_1(order[freeLayerIndex]); - this.minimizeCrossings_0(nodes, preOrdered, false, forwardSweep); - index_0 = 0; - for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { - nodeGroup = castTo($next_7(nodeGroup$iterator), 10); - order[freeLayerIndex][index_0++] = nodeGroup; - } - return false; -} -; -_.setFirstLayerOrder = function setFirstLayerOrder_0(order, isForwardSweep){ - var index_0, nodeGroup, nodeGroup$iterator, nodes, startIndex; - startIndex = $startIndex_0(isForwardSweep, order.length); - nodes = newArrayList_1(order[startIndex]); - this.minimizeCrossings_0(nodes, false, true, isForwardSweep); - index_0 = 0; - for (nodeGroup$iterator = new ArrayList$1(nodes); nodeGroup$iterator.i < nodeGroup$iterator.this$01.array.length;) { - nodeGroup = castTo($next_7(nodeGroup$iterator), 10); - order[startIndex][index_0++] = nodeGroup; - } - return false; -} -; -var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic', 817); -function BarycenterHeuristic$BarycenterState(node){ - this.node = node; -} - -defineClass(658, 1, {658:1}, BarycenterHeuristic$BarycenterState); -_.toString_0 = function toString_98(){ - return 'BarycenterState [node=' + this.node + ', summedWeight=' + this.summedWeight + ', degree=' + this.degree + ', barycenter=' + this.barycenter + ', visited=' + this.visited + ']'; -} -; -_.degree = 0; -_.summedWeight = 0; -_.visited = false; -var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/BarycenterState', 658); -function BarycenterHeuristic$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1802, 1, $intern_88, BarycenterHeuristic$lambda$0$Type); -_.compare_1 = function compare_66(arg0, arg1){ - return $lambda$0_7(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_147(other){ - return this === other; -} -; -_.reversed = function reversed_58(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/lambda$0$Type', 1802); -function $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes){ - var currentUnitNode, currentUnitNode$iterator, group, group$iterator, group$iterator0, lastNonDummyNode, lastUnitNode, lastUnitNode$iterator, node, successor, successor$iterator; - for (group$iterator0 = new ArrayList$1(groups); group$iterator0.i < group$iterator0.this$01.array.length;) { - group = castTo($next_7(group$iterator0), 233); - group.outgoingConstraints = null; - group.incomingConstraintsCount = 0; - } - lastNonDummyNode = null; - for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 233); - node = group.nodes[0]; - if (onlyBetweenNormalNodes && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - continue; - } - for (successor$iterator = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).iterator_0(); successor$iterator.hasNext_0();) { - successor = castTo(successor$iterator.next_1(), 10); - if (!onlyBetweenNormalNodes || successor.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).add_2(this$static.constraintGroups[successor.layer.id_0][successor.id_0]); - ++this$static.constraintGroups[successor.layer.id_0][successor.id_0].incomingConstraintsCount; - } - } - if (!onlyBetweenNormalNodes && node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { - if (lastNonDummyNode) { - for (lastUnitNode$iterator = castTo($get(this$static.layoutUnits, lastNonDummyNode), 21).iterator_0(); lastUnitNode$iterator.hasNext_0();) { - lastUnitNode = castTo(lastUnitNode$iterator.next_1(), 10); - for (currentUnitNode$iterator = castTo($get(this$static.layoutUnits, node), 21).iterator_0(); currentUnitNode$iterator.hasNext_0();) { - currentUnitNode = castTo(currentUnitNode$iterator.next_1(), 10); - $getOutgoingConstraints(this$static.constraintGroups[lastUnitNode.layer.id_0][lastUnitNode.id_0]).add_2(this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0]); - ++this$static.constraintGroups[currentUnitNode.layer.id_0][currentUnitNode.id_0].incomingConstraintsCount; - } - } - } - lastNonDummyNode = node; - } - } -} - -function $findViolatedConstraint(groups){ - var activeGroups, group, group$iterator, predecessor, predecessor$iterator, successor, successor$iterator, successorIncomingList; - activeGroups = null; - for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 233); - $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter); - group.incomingConstraints = null; - if (!!group.outgoingConstraints && group.outgoingConstraints.size_1() > 0 && group.incomingConstraintsCount == 0) { - !activeGroups && (activeGroups = new ArrayList); - activeGroups.array[activeGroups.array.length] = group; - } - } - if (activeGroups) { - while (activeGroups.array.length != 0) { - group = castTo($remove_11(activeGroups, 0), 233); - if (!!group.incomingConstraints && group.incomingConstraints.array.length > 0) { - for (predecessor$iterator = (!group.incomingConstraints && (group.incomingConstraints = new ArrayList) , new ArrayList$1(group.incomingConstraints)); predecessor$iterator.i < predecessor$iterator.this$01.array.length;) { - predecessor = castTo($next_7(predecessor$iterator), 233); - if ($floatValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) == $floatValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { - if ($indexOf_3(groups, predecessor, 0) > $indexOf_3(groups, group, 0)) { - return new Pair(predecessor, group); - } - } - else if ($doubleValue($stateOf_0(predecessor.this$01, predecessor.nodes[0]).barycenter) > $doubleValue($stateOf_0(group.this$01, group.nodes[0]).barycenter)) { - return new Pair(predecessor, group); - } - } - } - for (successor$iterator = (!group.outgoingConstraints && (group.outgoingConstraints = new ArrayList) , group.outgoingConstraints).iterator_0(); successor$iterator.hasNext_0();) { - successor = castTo(successor$iterator.next_1(), 233); - successorIncomingList = (!successor.incomingConstraints && (successor.incomingConstraints = new ArrayList) , successor.incomingConstraints); - checkCriticalPositionIndex(0, successorIncomingList.array.length); - insertTo(successorIncomingList.array, 0, group); - successor.incomingConstraintsCount == successorIncomingList.array.length && (activeGroups.array[activeGroups.array.length] = successor , true); - } - } - } - return null; -} - -function $handleViolatedConstraint(this$static, firstNodeGroup, secondNodeGroup, nodeGroups){ - var alreadyInserted, firstNodeGroupConstraint, newNodeGroup, nodeGroup, nodeGroupIterator, secondNodeGroupConstraint; - newNodeGroup = new ForsterConstraintResolver$ConstraintGroup_0(this$static, firstNodeGroup, secondNodeGroup); - nodeGroupIterator = new AbstractList$ListIteratorImpl(nodeGroups, 0); - alreadyInserted = false; - while (nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) { - nodeGroup = (checkCriticalElement(nodeGroupIterator.i < nodeGroupIterator.this$01_0.size_1()) , castTo(nodeGroupIterator.this$01_0.get_0(nodeGroupIterator.last = nodeGroupIterator.i++), 233)); - if (nodeGroup == firstNodeGroup || nodeGroup == secondNodeGroup) { - $remove_8(nodeGroupIterator); - } - else if (!alreadyInserted && $doubleValue($stateOf_0(nodeGroup.this$01, nodeGroup.nodes[0]).barycenter) > $doubleValue($stateOf_0(newNodeGroup.this$01, newNodeGroup.nodes[0]).barycenter)) { - checkCriticalElement(nodeGroupIterator.i > 0); - nodeGroupIterator.this$01.get_0(nodeGroupIterator.last = --nodeGroupIterator.i); - $add_1(nodeGroupIterator, newNodeGroup); - alreadyInserted = true; - } - else if (!!nodeGroup.outgoingConstraints && nodeGroup.outgoingConstraints.size_1() > 0) { - firstNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(firstNodeGroup); - secondNodeGroupConstraint = (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).remove_1(secondNodeGroup); - if (firstNodeGroupConstraint || secondNodeGroupConstraint) { - (!nodeGroup.outgoingConstraints && (nodeGroup.outgoingConstraints = new ArrayList) , nodeGroup.outgoingConstraints).add_2(newNodeGroup); - ++newNodeGroup.incomingConstraintsCount; - } - } - } - alreadyInserted || (nodeGroups.array[nodeGroups.array.length] = newNodeGroup , true); -} - -function $initAtNodeLevel(this$static, node, fullInit){ - var layerIndex, layoutUnit, nodeIndex; - layerIndex = node.layer.id_0; - nodeIndex = node.id_0; - this$static.constraintGroups[layerIndex][nodeIndex] = new ForsterConstraintResolver$ConstraintGroup(this$static, node); - if (fullInit) { - this$static.barycenterStates[layerIndex][nodeIndex] = new BarycenterHeuristic$BarycenterState(node); - layoutUnit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); - !!layoutUnit && $put(this$static.layoutUnits, layoutUnit, node); - } -} - -function $processConstraints(this$static, nodes){ - if (this$static.constraintsBetweenNonDummies) { - $processConstraints_0(this$static, nodes, true); - $forEach_3(new StreamImpl(null, new Spliterators$IteratorSpliterator(nodes, 16)), new ForsterConstraintResolver$lambda$0$Type(this$static)); - } - $processConstraints_0(this$static, nodes, false); -} - -function $processConstraints_0(this$static, nodes, onlyBetweenNormalNodes){ - var group, group$iterator, groups, node, node$array, node$index, node$iterator, node$max, violatedConstraint; - groups = new ArrayList_0(nodes.array.length); - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - $add_3(groups, this$static.constraintGroups[node.layer.id_0][node.id_0]); - } - $buildConstraintsGraph(this$static, groups, onlyBetweenNormalNodes); - violatedConstraint = null; - while (violatedConstraint = $findViolatedConstraint(groups)) { - $handleViolatedConstraint(this$static, castTo(violatedConstraint.first, 233), castTo(violatedConstraint.second, 233), groups); - } - nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { - group = castTo($next_7(group$iterator), 233); - for (node$array = group.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - nodes.array[nodes.array.length] = node; - this$static.barycenterStates[node.layer.id_0][node.id_0].barycenter = $stateOf_0(group.this$01, group.nodes[0]).barycenter; - } - } -} - -function $stateOf_0(this$static, node){ - return this$static.barycenterStates[node.layer.id_0][node.id_0]; -} - -function ForsterConstraintResolver(currentNodeOrder){ - currentNodeOrder.length > 0 && currentNodeOrder[0].length > 0 && (this.constraintsBetweenNonDummies = $booleanValue(castToBoolean($getProperty($getGraph(currentNodeOrder[0][0]), ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS_BETWEEN_NON_DUMMIES))))); - this.barycenterStates = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, $intern_16, 2018, currentNodeOrder.length, 0, 2); - this.constraintGroups = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, $intern_16, 2019, currentNodeOrder.length, 0, 2); - this.layoutUnits = new LinkedHashMultimap; -} - -defineClass(816, 1, $intern_111, ForsterConstraintResolver); -_.initAfterTraversal = function initAfterTraversal_2(){ -} -; -_.initAtEdgeLevel = function initAtEdgeLevel_2(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_2(l, n, p, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_2(l, nodeOrder){ - this.barycenterStates[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_BarycenterHeuristic$BarycenterState_2_classLit, {3:1, 4:1, 5:1, 2018:1}, 658, nodeOrder[l].length, 0, 1); - this.constraintGroups[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, {3:1, 4:1, 5:1, 2019:1}, 233, nodeOrder[l].length, 0, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_2(l, n, nodeOrder){ - $initAtNodeLevel(this, nodeOrder[l][n], true); -} -; -_.constraintsBetweenNonDummies = false; -var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver', 816); -function $getOutgoingConstraints(this$static){ - !this$static.outgoingConstraints && (this$static.outgoingConstraints = new ArrayList); - return this$static.outgoingConstraints; -} - -function $setBarycenter(this$static, barycenter){ - var node, node$array, node$index, node$max; - for (node$array = this$static.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $stateOf_0(this$static.this$01, node).barycenter = barycenter; - } -} - -function ForsterConstraintResolver$ConstraintGroup(this$0, node){ - this.this$01 = this$0; - this.nodes = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [node]); -} - -function ForsterConstraintResolver$ConstraintGroup_0(this$0, nodeGroup1, nodeGroup2){ - var candidate, candidate$iterator, i, i0, length1, length2; - this.this$01 = this$0; - length1 = nodeGroup1.nodes.length; - length2 = nodeGroup2.nodes.length; - this.nodes = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, length1 + length2, 0, 1); - for (i0 = 0; i0 < length1; i0++) { - this.nodes[i0] = nodeGroup1.nodes[i0]; - } - for (i = 0; i < length2; i++) { - this.nodes[length1 + i] = nodeGroup2.nodes[i]; - } - if (nodeGroup1.outgoingConstraints) { - this.outgoingConstraints = newLinkedList(nodeGroup1.outgoingConstraints); - this.outgoingConstraints.remove_1(nodeGroup2); - if (nodeGroup2.outgoingConstraints) { - for (candidate$iterator = nodeGroup2.outgoingConstraints.iterator_0(); candidate$iterator.hasNext_0();) { - candidate = castTo(candidate$iterator.next_1(), 233); - if (candidate == nodeGroup1) { - continue; - } - else - this.outgoingConstraints.contains(candidate)?--candidate.incomingConstraintsCount:this.outgoingConstraints.add_2(candidate); - } - } - } - else if (nodeGroup2.outgoingConstraints) { - this.outgoingConstraints = newLinkedList(nodeGroup2.outgoingConstraints); - this.outgoingConstraints.remove_1(nodeGroup1); - } - this.summedWeight = nodeGroup1.summedWeight + nodeGroup2.summedWeight; - this.degree = nodeGroup1.degree + nodeGroup2.degree; - this.degree > 0?$setBarycenter(this, this.summedWeight / this.degree):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null && $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null?$setBarycenter(this, ($doubleValue($stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter) + $doubleValue($stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter)) / 2):$stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter != null?$setBarycenter(this, $stateOf_0(nodeGroup1.this$01, nodeGroup1.nodes[0]).barycenter):$stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter != null && $setBarycenter(this, $stateOf_0(nodeGroup2.this$01, nodeGroup2.nodes[0]).barycenter); -} - -defineClass(233, 1, {233:1}, ForsterConstraintResolver$ConstraintGroup, ForsterConstraintResolver$ConstraintGroup_0); -_.toString_0 = function toString_99(){ - var i, sb; - sb = new StringBuilder; - sb.string += '['; - for (i = 0; i < this.nodes.length; i++) { - $append_11(sb, $toString_13(this.nodes[i])); - $stateOf_0(this.this$01, this.nodes[0]).barycenter != null && $append_11($append_11((sb.string += '<' , sb), $toString_6($stateOf_0(this.this$01, this.nodes[0]).barycenter)), '>'); - i < this.nodes.length - 1 && (sb.string += ', ' , sb); - } - return (sb.string += ']' , sb).string; -} -; -_.degree = 0; -_.incomingConstraintsCount = 0; -_.summedWeight = 0; -var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/ConstraintGroup', 233); -function ForsterConstraintResolver$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1797, 1, $intern_19, ForsterConstraintResolver$lambda$0$Type); -_.accept = function accept_114(arg0){ - $initAtNodeLevel(this.$$outer_0, castTo(arg0, 10), false); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ForsterConstraintResolver/lambda$0$Type', 1797); -function $setBestNodeNPortOrder(this$static, bestNodeNPortOrder){ - this$static.bestNodeAndPortOrder = bestNodeNPortOrder; -} - -function $setCurrentlyBestNodeAndPortOrder(this$static, currentlyBestNodeAndPortOrder){ - this$static.currentlyBestNodeAndPortOrder = currentlyBestNodeAndPortOrder; -} - -function GraphInfoHolder(graph, crossMinType, graphs){ - var constraintResolver, graphProperties, initializables, random; - this.lGraph = graph; - this.currentNodeOrder = $toNodeArray(graph); - this.parent_0 = this.lGraph.parentNode; - this.hasParent = !!this.parent_0; - this.parentGraphData = this.hasParent?castTo($get_11(graphs, $getGraph(this.parent_0).id_0), 214):null; - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - this.hasExternalPorts = graphProperties.contains(($clinit_GraphProperties() , EXTERNAL_PORTS)); - this.childGraphs = new ArrayList; - this.crossingsCounter = new AllCrossingsCounter(this.currentNodeOrder); - random = castTo($getProperty(this.lGraph, RANDOM_0), 230); - this.portDistributor = create_15(crossMinType, random, this.currentNodeOrder); - this.layerSweepTypeDecider = new LayerSweepTypeDecider(this); - initializables = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [this, this.crossingsCounter, this.layerSweepTypeDecider, this.portDistributor])); - if (crossMinType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER) && !$booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { - constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); - initializables.array[initializables.array.length] = constraintResolver; - this.crossMinimizer = new BarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); - } - else if (crossMinType == BARYCENTER && $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))) { - constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); - initializables.array[initializables.array.length] = constraintResolver; - this.crossMinimizer = new ModelOrderBarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 402)); - } - else { - this.crossMinimizer = new GreedySwitchHeuristic(crossMinType, this); - } - $add_3(initializables, this.crossMinimizer); - init_0(initializables, this.currentNodeOrder); - this.useBottomUp = $useBottomUp(this.layerSweepTypeDecider); -} - -defineClass(214, 1, {214:1, 225:1}, GraphInfoHolder); -_.initAtEdgeLevel = function initAtEdgeLevel_3(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_3(l, nodeOrder){ -} -; -_.initAfterTraversal = function initAfterTraversal_3(){ - this.portPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_3(l, n, nodeOrder){ - var nestedGraph, node; - node = nodeOrder[l][n]; - nestedGraph = node.nestedGraph; - !!nestedGraph && $add_3(this.childGraphs, nestedGraph); -} -; -_.initAtPortLevel = function initAtPortLevel_3(l, n, p, nodeOrder){ - ++this.nPorts; -} -; -_.toString_0 = function toString_100(){ - return deepToString(this.currentNodeOrder, new HashSet); -} -; -_.hasExternalPorts = false; -_.hasParent = false; -_.nPorts = 0; -_.useBottomUp = false; -var Lorg_eclipse_elk_alg_layered_p3order_GraphInfoHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GraphInfoHolder', 214); -function $distributePortsInLayer(this$static, nodeOrder, currentIndex, isForwardSweep){ - var improved, innerGraph, nestedGraph, node, node$array, node$index, node$max, side, useHierarchicalCrossCounter; - side = isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2); - improved = false; - for (node$array = nodeOrder[currentIndex] , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if ($isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { - continue; - } - nestedGraph = node.nestedGraph; - useHierarchicalCrossCounter = !$getPortSideView(node, side).isEmpty() && !!nestedGraph; - if (useHierarchicalCrossCounter) { - innerGraph = $toNodeArray(nestedGraph); - this$static.hierarchicalCrossingsCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(innerGraph, isForwardSweep?0:innerGraph.length - 1); - } - improved = improved | $distributePortsOnNode(this$static, node, side, useHierarchicalCrossCounter); - } - return improved; -} - -function $distributePortsOnNode(this$static, node, side, useHierarchicalCrosscounter){ - var continueSwitching, i, improved, lowerPort, ports, upperPort, lower; - ports = $getPortSideView(node, side); - (side == ($clinit_PortSide() , SOUTH_2) || side == WEST_2) && (ports = instanceOf(ports, 152)?$reverse(castTo(ports, 152)):instanceOf(ports, 131)?castTo(ports, 131).forwardList:instanceOf(ports, 54)?new Lists$RandomAccessReverseList(ports):new Lists$ReverseList(ports)); - improved = false; - do { - continueSwitching = false; - for (i = 0; i < ports.size_1() - 1; i++) { - upperPort = castTo(ports.get_0(i), 11); - lowerPort = castTo(ports.get_0(i + 1), 11); - if ($switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter)) { - improved = true; - $switchPorts(this$static.crossingsCounter, castTo(ports.get_0(i), 11), castTo(ports.get_0(i + 1), 11)); - lower = castTo(ports.get_0(i + 1), 11); - ports.set_2(i + 1, castTo(ports.get_0(i), 11)); - ports.set_2(i, lower); - continueSwitching = true; - } - } - } - while (continueSwitching); - return improved; -} - -function $switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter){ - var lowerNode, lowerUpperCrossings, originalNSwitchedCrossings, upperLowerCrossings, upperNode; - originalNSwitchedCrossings = $countCrossingsBetweenPortsInBothOrders(this$static.crossingsCounter, upperPort, lowerPort); - upperLowerCrossings = castTo(originalNSwitchedCrossings.first, 19).value_0; - lowerUpperCrossings = castTo(originalNSwitchedCrossings.second, 19).value_0; - if (useHierarchicalCrosscounter) { - upperNode = castTo($getProperty(upperPort, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - lowerNode = castTo($getProperty(lowerPort, PORT_DUMMY), 10); - if (!!upperNode && !!lowerNode) { - $countBothSideCrossings(this$static.hierarchicalCrossingsCounter, upperNode, lowerNode); - upperLowerCrossings += this$static.hierarchicalCrossingsCounter.upperLowerCrossings; - lowerUpperCrossings += this$static.hierarchicalCrossingsCounter.lowerUpperCrossings; - } - } - return upperLowerCrossings > lowerUpperCrossings; -} - -function GreedyPortDistributor(){ -} - -defineClass(1832, 1, $intern_111, GreedyPortDistributor); -_.initAtEdgeLevel = function initAtEdgeLevel_4(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_4(l, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_4(l, n, p, nodeOrder){ -} -; -_.distributePortsWhileSweeping = function distributePortsWhileSweeping_0(nodeOrder, currentIndex, isForwardSweep){ - isForwardSweep && currentIndex > 0?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex - 1], nodeOrder[currentIndex]) , undefined):!isForwardSweep && currentIndex < nodeOrder.length - 1?($initForCountingBetween(this.crossingsCounter, nodeOrder[currentIndex], nodeOrder[currentIndex + 1]) , undefined):$initPortPositionsForInLayerCrossings(this.crossingsCounter, nodeOrder[currentIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2)); - return $distributePortsInLayer(this, nodeOrder, currentIndex, isForwardSweep); -} -; -_.initAfterTraversal = function initAfterTraversal_4(){ - this.portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); - this.crossingsCounter = new CrossingsCounter(this.portPos); -} -; -_.initAtNodeLevel = function initAtNodeLevel_4(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - this.nPorts += node.ports.array.length; -} -; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_p3order_GreedyPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'GreedyPortDistributor', 1832); -function $clinit_InteractiveCrossingMinimizer(){ - $clinit_InteractiveCrossingMinimizer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_3 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING, LONG_EDGE_JOINER); -} - -function $getLayoutProcessorConfiguration(graph){ - var configuration; - configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_3); - castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , NON_FREE_PORTS)) && $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)); - return configuration; -} - -function $getPos(node, horizPos){ - var bendpoints, edge, originNode, originPort, point1, point2, pointIter, source, sourcePoint, target, targetPoint; - switch (node.type_0.ordinal) { - case 1: - edge = castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17); - bendpoints = castTo($getProperty(edge, ORIGINAL_BENDPOINTS), 74); - !bendpoints?(bendpoints = new KVectorChain):$booleanValue(castToBoolean($getProperty(edge, REVERSED))) && (bendpoints = reverse_3(bendpoints)); - source = castTo($getProperty(node, LONG_EDGE_SOURCE), 11); - if (source) { - sourcePoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [source.owner.pos, source.pos, source.anchor])); - if (horizPos <= sourcePoint.x_0) { - return sourcePoint.y_0; - } - $addNode_0(bendpoints, sourcePoint, bendpoints.header, bendpoints.header.next_0); - } - - target = castTo($getProperty(node, LONG_EDGE_TARGET), 11); - if (target) { - targetPoint = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])); - if (targetPoint.x_0 <= horizPos) { - return targetPoint.y_0; - } - $addNode_0(bendpoints, targetPoint, bendpoints.tail.prev, bendpoints.tail); - } - - if (bendpoints.size_0 >= 2) { - pointIter = $listIterator_2(bendpoints, 0); - point1 = castTo($next_10(pointIter), 8); - point2 = castTo($next_10(pointIter), 8); - while (point2.x_0 < horizPos && pointIter.currentNode != pointIter.this$01.tail) { - point1 = point2; - point2 = castTo($next_10(pointIter), 8); - } - return point1.y_0 + (horizPos - point1.x_0) / (point2.x_0 - point1.x_0) * (point2.y_0 - point1.y_0); - } - - break; - case 3: - originPort = castTo($getProperty(castTo($get_11(node.ports, 0), 11), ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - originNode = originPort.owner; - switch (originPort.side.ordinal) { - case 1: - return originNode.pos.y_0; - case 3: - return originNode.pos.y_0 + originNode.size_0.y_0; - } - - } - return $getInteractiveReferencePoint(node).y_0; -} - -function $process_67(layeredGraph, monitor){ - var horizPos, layer, layer$iterator, layer$iterator0, layerIndex, nextIndex, node, node$iterator, node$iterator0, nodeCount, nodeOrder, port, port$iterator, portCount, portDistributor, pos; - $begin(monitor, 'Interactive crossing minimization', 1); - layerIndex = 0; - for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - layer.id_0 = layerIndex++; - } - nodeOrder = $toNodeArray(layeredGraph); - portDistributor = new NodeRelativePortDistributor(nodeOrder.length); - init_0(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_IInitializable_2_classLit, 1), $intern_2, 225, 0, [portDistributor])), nodeOrder); - portCount = 0; - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - horizPos = 0; - nodeCount = 0; - for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - if (node.pos.x_0 > 0) { - horizPos += node.pos.x_0 + node.size_0.x_0 / 2; - ++nodeCount; - } - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - port.id_0 = portCount++; - } - } - nodeCount > 0 && (horizPos /= nodeCount); - pos = initUnidimensionalArray(D_classLit, $intern_65, 25, layer.nodes.array.length, 15, 1); - nextIndex = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = nextIndex++; - pos[node.id_0] = $getPos(node, horizPos); - node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE) && $setProperty_0(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION), pos[node.id_0]); - } - $clinit_Collections(); - $sort(layer.nodes, new InteractiveCrossingMinimizer$1(pos)); - $distributePortsWhileSweeping(portDistributor, nodeOrder, layerIndex, true); - ++layerIndex; - } - $done_0(monitor); -} - -function InteractiveCrossingMinimizer(){ - $clinit_InteractiveCrossingMinimizer(); -} - -defineClass(1401, 1, $intern_113, InteractiveCrossingMinimizer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_9(graph){ - return $getLayoutProcessorConfiguration(castTo(graph, 37)); -} -; -_.process = function process_64(layeredGraph, monitor){ - $process_67(castTo(layeredGraph, 37), monitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_3; -var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer', 1401); -function $compare_20(this$static, node1, node2){ - var compare, node1Successors, node2Successors; - compare = compare_4(this$static.val$pos2[node1.id_0], this$static.val$pos2[node2.id_0]); - if (compare == 0) { - node1Successors = castTo($getProperty(node1, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15); - node2Successors = castTo($getProperty(node2, IN_LAYER_SUCCESSOR_CONSTRAINTS), 15); - if (node1Successors.contains(node2)) { - return -1; - } - else if (node2Successors.contains(node1)) { - return 1; - } - } - return compare; -} - -function InteractiveCrossingMinimizer$1(val$pos){ - this.val$pos2 = val$pos; -} - -defineClass(1402, 1, $intern_88, InteractiveCrossingMinimizer$1); -_.compare_1 = function compare_67(node1, node2){ - return $compare_20(this, castTo(node1, 10), castTo(node2, 10)); -} -; -_.equals_0 = function equals_148(other){ - return this === other; -} -; -_.reversed = function reversed_59(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer/1', 1402); -function $clinit_LayerSweepCrossingMinimizer(){ - $clinit_LayerSweepCrossingMinimizer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_4 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); -} - -function $compareDifferentRandomizedLayouts(this$static, gData){ - var bestCrossings, crossings, i, thouroughness; - $setSeed_0(this$static.random_0, this$static.randomSeed); - this$static.graphsWhoseNodeOrderChanged.map_0.clear_0(); - if ($doubleValue(castToDouble($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0)))) != 0 || $doubleValue(castToDouble($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))) != 0) { - bestCrossings = $intern_98; - maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); - thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; - for (i = 0; i < thouroughness; i++) { - crossings = $minimizeCrossingsNodePortOrderWithCounter(this$static, gData); - if (crossings < bestCrossings) { - bestCrossings = crossings; - $saveAllNodeOrdersOfChangedGraphs(this$static); - if (bestCrossings == 0) { - break; - } - } - } - } - else { - bestCrossings = $intern_0; - maskUndefined($getProperty(gData.lGraph, CONSIDER_MODEL_ORDER_STRATEGY_0)) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) && $setProperty_0(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER), ($clinit_Boolean() , true)); - thouroughness = castTo($getProperty(gData.lGraph, THOROUGHNESS_0), 19).value_0; - for (i = 0; i < thouroughness; i++) { - crossings = $minimizeCrossingsWithCounter(this$static, gData); - if (crossings < bestCrossings) { - bestCrossings = crossings; - $saveAllNodeOrdersOfChangedGraphs(this$static); - if (bestCrossings == 0) { - break; - } - } - } - } -} - -function $countCurrentNumberOfCrossings(this$static, currentGraph){ - var child, childLGraph, childLGraph$iterator, countCrossingsIn, gD, totalCrossings; - totalCrossings = 0; - countCrossingsIn = new ArrayDeque; - $addFirst(countCrossingsIn, currentGraph); - while (countCrossingsIn.head != countCrossingsIn.tail) { - gD = castTo($removeFirst(countCrossingsIn), 214); - totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder); - for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { - childLGraph = castTo($next_7(childLGraph$iterator), 37); - child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); - child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); - } - } - return totalCrossings; -} - -function $countCurrentNumberOfCrossingsNodePortOrder(this$static, currentGraph){ - var child, childLGraph, childLGraph$iterator, countCrossingsIn, crossingCounterNodeInfluence, crossingCounterPortInfluence, gD, modelOrderInfluence, modelOrderStrategy, totalCrossings; - totalCrossings = 0; - countCrossingsIn = new ArrayDeque; - $addFirst(countCrossingsIn, currentGraph); - while (countCrossingsIn.head != countCrossingsIn.tail) { - gD = castTo($removeFirst(countCrossingsIn), 214); - modelOrderInfluence = 0; - modelOrderStrategy = castTo($getProperty(currentGraph.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 339); - crossingCounterNodeInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_NODE_INFLUENCE_0))); - crossingCounterPortInfluence = $doubleValue(castToDouble($getProperty(currentGraph.lGraph, CONSIDER_MODEL_ORDER_CROSSING_COUNTER_PORT_INFLUENCE_0))); - if (modelOrderStrategy != ($clinit_OrderingStrategy() , NONE_10)) { - modelOrderInfluence += crossingCounterNodeInfluence * $countModelOrderNodeChanges(gD.currentNodeOrder, modelOrderStrategy); - modelOrderInfluence += crossingCounterPortInfluence * $countModelOrderPortChanges(gD.currentNodeOrder); - } - totalCrossings += $countAllCrossings(gD.crossingsCounter, gD.currentNodeOrder) + modelOrderInfluence; - for (childLGraph$iterator = new ArrayList$1(gD.childGraphs); childLGraph$iterator.i < childLGraph$iterator.this$01.array.length;) { - childLGraph = castTo($next_7(childLGraph$iterator), 37); - child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); - child.useBottomUp || (totalCrossings += $countCurrentNumberOfCrossings(this$static, child)); - } - } - return totalCrossings; -} - -function $countModelOrderNodeChanges(layers, strategy){ - var comp, i, j, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; - previousLayer = -1; - wrongModelOrder = 0; - for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { - layer = layer$array[layer$index]; - comp = new ModelOrderNodeComparator_1(previousLayer == -1?layers[0]:layers[previousLayer], strategy, ($clinit_LongEdgeOrderingStrategy() , EQUAL)); - for (i = 0; i < layer.length; i++) { - for (j = i + 1; j < layer.length; j++) { - $hasProperty(layer[i], ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(layer[j], MODEL_ORDER_0) && $compare_15(comp, layer[i], layer[j]) > 0 && ++wrongModelOrder; - } - } - ++previousLayer; - } - return wrongModelOrder; -} - -function $countModelOrderPortChanges(layers){ - var comp, i, j, lNode, lNode$array, lNode$index, lNode$max, layer, layer$array, layer$index, layer$max, previousLayer, wrongModelOrder; - previousLayer = -1; - wrongModelOrder = 0; - for (layer$array = layers , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { - layer = layer$array[layer$index]; - for (lNode$array = layer , lNode$index = 0 , lNode$max = lNode$array.length; lNode$index < lNode$max; ++lNode$index) { - lNode = lNode$array[lNode$index]; - comp = new ModelOrderPortComparator_0(previousLayer == -1?layers[0]:layers[previousLayer], longEdgeTargetNodePreprocessing(lNode)); - for (i = 0; i < lNode.ports.array.length; i++) { - for (j = i + 1; j < lNode.ports.array.length; j++) { - $compare_16(comp, castTo($get_11(lNode.ports, i), 11), castTo($get_11(lNode.ports, j), 11)) > 0 && ++wrongModelOrder; - } - } - } - ++previousLayer; - } - return wrongModelOrder; -} - -function $endIndex(isForwardSweep, length_0){ - return isForwardSweep?length_0 - 1:0; -} - -function $firstIndex(isForwardSweep, length_0){ - return isForwardSweep?0:length_0 - 1; -} - -function $initialize_5(this$static, rootGraph){ - var gData, graph, graphs, graphsToSweepOn, i, iter; - this$static.graphInfoHolders = new ArrayList; - this$static.random_0 = castTo($getProperty(rootGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); - this$static.randomSeed = $nextLong(this$static.random_0); - graphsToSweepOn = new LinkedList; - graphs = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LGraph_2_classLit, 1), $intern_104, 37, 0, [rootGraph])); - i = 0; - while (i < graphs.array.length) { - graph = (checkCriticalElementIndex(i, graphs.array.length) , castTo(graphs.array[i], 37)); - graph.id_0 = i++; - gData = new GraphInfoHolder(graph, this$static.crossMinType, this$static.graphInfoHolders); - $addAll_2(graphs, gData.childGraphs); - $add_3(this$static.graphInfoHolders, gData); - gData.useBottomUp && (iter = $listIterator_2(graphsToSweepOn, 0) , $add_8(iter, gData)); - } - this$static.graphsWhoseNodeOrderChanged = new HashSet; - return graphsToSweepOn; -} - -function $minimizeCrossings(graphsToSweepOn, minimizingMethod){ - var gData, gData$iterator; - for (gData$iterator = $listIterator_2(graphsToSweepOn, 0); gData$iterator.currentNode != gData$iterator.this$01.tail;) { - gData = castTo($next_10(gData$iterator), 214); - if (gData.currentNodeOrder.length > 0) { - minimizingMethod.accept(gData); - gData.hasParent && $setPortOrderOnParentGraph(gData); - } - } -} - -function $minimizeCrossingsNoCounter(this$static, gData){ - var improved, isForwardSweep; - isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; - improved = true; - while (improved) { - improved = false; - improved = gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep); - improved = improved | $sweepReducingCrossings(this$static, gData, isForwardSweep, false); - isForwardSweep = !isForwardSweep; - } - $setCurrentlyBestNodeOrders(this$static); -} - -function $minimizeCrossingsNodePortOrderWithCounter(this$static, gData){ - var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; - isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; - !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); - $sweepReducingCrossings(this$static, gData, isForwardSweep, true); - $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { - $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); - } - crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); - do { - $setCurrentlyBestNodeOrders(this$static); - if (crossingsInGraph == 0) { - return 0; - } - isForwardSweep = !isForwardSweep; - oldNumberOfCrossings = crossingsInGraph; - $sweepReducingCrossings(this$static, gData, isForwardSweep, false); - crossingsInGraph = $countCurrentNumberOfCrossingsNodePortOrder(this$static, gData); - } - while (oldNumberOfCrossings > crossingsInGraph); - return oldNumberOfCrossings; -} - -function $minimizeCrossingsWithCounter(this$static, gData){ - var crossingsInGraph, isForwardSweep, oldNumberOfCrossings; - isForwardSweep = $nextInternal(this$static.random_0, 1) != 0; - !$booleanValue(castToBoolean($getProperty(gData.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) || maskUndefined($getProperty(gData.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) === maskUndefined(($clinit_OrderingStrategy() , NONE_10))?gData.crossMinimizer.setFirstLayerOrder(gData.currentNodeOrder, isForwardSweep):(isForwardSweep = $booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))); - $sweepReducingCrossings(this$static, gData, isForwardSweep, true); - $booleanValue(castToBoolean($getProperty(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER))) && $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - if ($booleanValue(castToBoolean($getProperty(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER)))) { - $setProperty_0(gData.lGraph, FIRST_TRY_WITH_INITIAL_ORDER, ($clinit_Boolean() , false)); - $setProperty_0(gData.lGraph, SECOND_TRY_WITH_INITIAL_ORDER, true); - } - crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); - do { - $setCurrentlyBestNodeOrders(this$static); - if (crossingsInGraph == 0) { - return 0; - } - isForwardSweep = !isForwardSweep; - oldNumberOfCrossings = crossingsInGraph; - $sweepReducingCrossings(this$static, gData, isForwardSweep, false); - crossingsInGraph = $countCurrentNumberOfCrossings(this$static, gData); - } - while (oldNumberOfCrossings > crossingsInGraph); - return oldNumberOfCrossings; -} - -function $process_68(this$static, layeredGraph, progressMonitor){ - var emptyGraph, graphsToSweepOn, hierarchicalLayout, minimizingMethod, parent_0, singleNode; - $begin(progressMonitor, 'Minimize Crossings ' + this$static.crossMinType, 1); - emptyGraph = layeredGraph.layers.array.length == 0 || !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(layeredGraph.layers, 16)), new Predicate$lambda$2$Type(new LayerSweepCrossingMinimizer$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); - singleNode = layeredGraph.layers.array.length == 1 && castTo($get_11(layeredGraph.layers, 0), 29).nodes.array.length == 1; - hierarchicalLayout = maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); - if (emptyGraph || singleNode && !hierarchicalLayout) { - $done_0(progressMonitor); - return; - } - graphsToSweepOn = $initialize_5(this$static, layeredGraph); - minimizingMethod = (parent_0 = castTo($get_7(graphsToSweepOn, 0), 214) , parent_0.crossMinimizer.isDeterministic()?parent_0.crossMinimizer.alwaysImproves()?new LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type(this$static):new LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type(this$static):new LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type(this$static)); - $minimizeCrossings(graphsToSweepOn, minimizingMethod); - $transferNodeAndPortOrdersToGraph(this$static); - $done_0(progressMonitor); -} - -function $saveAllNodeOrdersOfChangedGraphs(this$static){ - var graph, graph$iterator; - for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 214); - $setBestNodeNPortOrder(graph, new SweepCopy(graph.currentlyBestNodeAndPortOrder)); - } -} - -function $setCurrentlyBestNodeOrders(this$static){ - var graph, graph$iterator; - for (graph$iterator = this$static.graphsWhoseNodeOrderChanged.map_0.keySet_0().iterator_0(); graph$iterator.hasNext_0();) { - graph = castTo(graph$iterator.next_1(), 214); - $setCurrentlyBestNodeAndPortOrder(graph, new SweepCopy_0(graph.currentNodeOrder)); - } -} - -function $setPortOrderOnParentGraph(gData){ - var bestSweep; - if (gData.hasExternalPorts) { - bestSweep = gData.crossMinimizer.isDeterministic()?gData.currentlyBestNodeAndPortOrder:gData.bestNodeAndPortOrder; - $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, true); - $sortPortsByDummyPositionsInLastLayer(bestSweep.nodeOrder, gData.parent_0, false); - $setProperty_0(gData.parent_0, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0), ($clinit_PortConstraints() , FIXED_ORDER)); - } -} - -function $sortPortDummiesByPortPositions(parentNode, layerCloseToNodeEdge, side){ - var i, port, port$iterator, ports, sortedDummies; - ports = inNorthSouthEastWestOrder(parentNode, side); - sortedDummies = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layerCloseToNodeEdge.length, 0, 1); - i = 0; - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS)))) && (sortedDummies[i++] = castTo($getProperty(port, PORT_DUMMY), 10)); - } - if (i < layerCloseToNodeEdge.length) { - throw toJs(new IllegalStateException_0('Expected ' + layerCloseToNodeEdge.length + ' hierarchical ports, but found only ' + i + '.')); - } - return sortedDummies; -} - -function $sortPortsByDummyPositionsInLastLayer(nodeOrder, parent_0, onRightMostLayer){ - var endIndex, i, j, lastLayer, port, ports; - endIndex = $endIndex(onRightMostLayer, nodeOrder.length); - lastLayer = nodeOrder[endIndex]; - if (lastLayer[0].type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { - return; - } - j = $firstIndex(onRightMostLayer, lastLayer.length); - ports = parent_0.ports; - for (i = 0; i < ports.array.length; i++) { - port = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); - if ((onRightMostLayer?port.side == ($clinit_PortSide() , EAST_2):port.side == ($clinit_PortSide() , WEST_2)) && $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , INSIDE_CONNECTIONS))))) { - $set_1(ports, i, castTo($getProperty(lastLayer[j], ($clinit_InternalProperties_1() , ORIGIN_0)), 11)); - j += onRightMostLayer?1:-1; - } - } -} - -function $sweepInHierarchicalNodes(this$static, layer, isForwardSweep, isFirstSweep){ - var improved, node, node$array, node$index, node$max, nestedLGraph, nestedGraph, nestedGraphNodeOrder, startIndex, firstNode, improved_0; - improved = false; - for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $booleanValue(($clinit_Boolean() , node.nestedGraph?true:false)) && !castTo($get_11(this$static.graphInfoHolders, node.nestedGraph.id_0), 214).useBottomUp && (improved = improved | (nestedLGraph = node.nestedGraph , nestedGraph = castTo($get_11(this$static.graphInfoHolders, nestedLGraph.id_0), 214) , nestedGraphNodeOrder = nestedGraph.currentNodeOrder , startIndex = $firstIndex(isForwardSweep, nestedGraphNodeOrder.length) , firstNode = nestedGraphNodeOrder[startIndex][0] , firstNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)?(nestedGraphNodeOrder[startIndex] = $sortPortDummiesByPortPositions(node, nestedGraphNodeOrder[startIndex], isForwardSweep?($clinit_PortSide() , WEST_2):($clinit_PortSide() , EAST_2))):nestedGraph.crossMinimizer.setFirstLayerOrder(nestedGraphNodeOrder, isForwardSweep) , improved_0 = $sweepReducingCrossings(this$static, nestedGraph, isForwardSweep, isFirstSweep) , $sortPortsByDummyPositionsInLastLayer(nestedGraph.currentNodeOrder, nestedGraph.parent_0, isForwardSweep) , improved_0)); - } - return improved; -} - -function $sweepReducingCrossings(this$static, graph, forward_0, firstSweep){ - var firstLayer, i, improved, length_0, nodes; - nodes = graph.currentNodeOrder; - length_0 = nodes.length; - improved = graph.portDistributor.distributePortsWhileSweeping(nodes, forward_0?0:length_0 - 1, forward_0); - firstLayer = nodes[forward_0?0:length_0 - 1]; - improved = improved | $sweepInHierarchicalNodes(this$static, firstLayer, forward_0, firstSweep); - for (i = forward_0?1:length_0 - 2; forward_0?i < length_0:i >= 0; i += forward_0?1:-1) { - improved = improved | graph.crossMinimizer.minimizeCrossings(nodes, i, forward_0, firstSweep && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , FIRST_TRY_WITH_INITIAL_ORDER)))) && !$booleanValue(castToBoolean($getProperty(graph.lGraph, ($clinit_InternalProperties_1() , SECOND_TRY_WITH_INITIAL_ORDER))))); - improved = improved | graph.portDistributor.distributePortsWhileSweeping(nodes, i, forward_0); - improved = improved | $sweepInHierarchicalNodes(this$static, nodes[i], forward_0, firstSweep); - } - $add_6(this$static.graphsWhoseNodeOrderChanged, graph); - return improved; -} - -function $transferNodeAndPortOrdersToGraph(this$static){ - var bestSweep, gD, gD$iterator; - for (gD$iterator = new ArrayList$1(this$static.graphInfoHolders); gD$iterator.i < gD$iterator.this$01.array.length;) { - gD = castTo($next_7(gD$iterator), 214); - bestSweep = gD.crossMinimizer.isDeterministic()?gD.currentlyBestNodeAndPortOrder:gD.bestNodeAndPortOrder; - !!bestSweep && $transferNodeAndPortOrdersToGraph_0(bestSweep, gD.lGraph); - } -} - -function LayerSweepCrossingMinimizer(cT){ - $clinit_LayerSweepCrossingMinimizer(); - this.crossMinType = cT; -} - -defineClass(507, 1, {507:1, 123:1, 51:1}, LayerSweepCrossingMinimizer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_10(graph){ - var configuration; - return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_4) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; -} -; -_.process = function process_65(layeredGraph, progressMonitor){ - $process_68(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.randomSeed = 0; -var INTERMEDIATE_PROCESSING_CONFIGURATION_4; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer', 507); -function LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1398, 1, $intern_19, LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type); -_.accept = function accept_115(arg0){ - $compareDifferentRandomizedLayouts(this.$$outer_0, castTo(arg0, 214)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type', 1398); -function LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1399, 1, $intern_19, LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type); -_.accept = function accept_116(arg0){ - $minimizeCrossingsNoCounter(this.$$outer_0, castTo(arg0, 214)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type', 1399); -function LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1400, 1, $intern_19, LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type); -_.accept = function accept_117(arg0){ - $minimizeCrossingsWithCounter(this.$$outer_0, castTo(arg0, 214)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type', 1400); -function $clinit_LayerSweepCrossingMinimizer$CrossMinType(){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType = emptyMethod; - BARYCENTER = new LayerSweepCrossingMinimizer$CrossMinType('BARYCENTER', 0); - ONE_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('ONE_SIDED_GREEDY_SWITCH', 1); - TWO_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('TWO_SIDED_GREEDY_SWITCH', 2); -} - -function LayerSweepCrossingMinimizer$CrossMinType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_67(name_0){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType(); - return valueOf(($clinit_LayerSweepCrossingMinimizer$CrossMinType$Map() , $MAP_55), name_0); -} - -function values_73(){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]); -} - -defineClass(454, 22, {3:1, 35:1, 22:1, 454:1}, LayerSweepCrossingMinimizer$CrossMinType); -var BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/CrossMinType', 454, Ljava_lang_Enum_2_classLit, values_73, valueOf_67); -function $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map(){ - $clinit_LayerSweepCrossingMinimizer$CrossMinType$Map = emptyMethod; - $MAP_55 = createValueOfMap(($clinit_LayerSweepCrossingMinimizer$CrossMinType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$CrossMinType_2_classLit, 1), $intern_36, 454, 0, [BARYCENTER, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]))); -} - -var $MAP_55; -function LayerSweepCrossingMinimizer$lambda$0$Type(){ -} - -defineClass(1397, 1, $intern_39, LayerSweepCrossingMinimizer$lambda$0$Type); -_.test_0 = function test_85(arg0){ - return $clinit_LayerSweepCrossingMinimizer() , castTo(arg0, 29).nodes.array.length == 0; -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/lambda$0$Type', 1397); -function $transferInfoTo(this$static, currentNode, target){ - var targetNodeInfo; - targetNodeInfo = this$static.nodeInfo[target.layer.id_0][target.id_0]; - targetNodeInfo.hierarchicalInfluence += currentNode.hierarchicalInfluence; - targetNodeInfo.randomInfluence += currentNode.randomInfluence; - targetNodeInfo.connectedEdges += currentNode.connectedEdges; - ++targetNodeInfo.connectedEdges; -} - -function $useBottomUp(this$static){ - var allPaths, boundary, currentNode, eastPorts, edge, edge$iterator, layer, layer$array, layer$index, layer$max, node, node$array, node$index, node$iterator, node$max, normalized, northSouthPorts, nsDummy, nsPortDummies, pathsToHierarchical, pathsToRandom, port, port$iterator, target, westPorts; - boundary = $doubleValue(castToDouble($getProperty(this$static.graphData.lGraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_HIERARCHICAL_SWEEPINESS_0)))); - if (boundary < -1 || !this$static.graphData.hasParent || $isOrderFixed(castTo($getProperty(this$static.graphData.parent_0, PORT_CONSTRAINTS_0), 98)) || $getPortSideView(this$static.graphData.parent_0, ($clinit_PortSide() , EAST_2)).size_1() < 2 && $getPortSideView(this$static.graphData.parent_0, WEST_2).size_1() < 2) { - return true; - } - if (this$static.graphData.crossMinimizer.isDeterministic()) { - return false; - } - pathsToRandom = 0; - pathsToHierarchical = 0; - nsPortDummies = new ArrayList; - for (layer$array = this$static.graphData.currentNodeOrder , layer$index = 0 , layer$max = layer$array.length; layer$index < layer$max; ++layer$index) { - layer = layer$array[layer$index]; - for (node$array = layer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - nsPortDummies.array[nsPortDummies.array.length] = node; - continue; - } - currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; - if (node.type_0 == EXTERNAL_PORT) { - currentNode.hierarchicalInfluence = 1; - castTo($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 11).side == ($clinit_PortSide() , EAST_2) && (pathsToHierarchical += currentNode.connectedEdges); - } - else { - westPorts = $getPortSideView(node, ($clinit_PortSide() , WEST_2)); - westPorts.isEmpty() || !any_0(westPorts, new LayerSweepTypeDecider$lambda$1$Type)?(currentNode.randomInfluence = 1):(eastPorts = $getPortSideView(node, EAST_2) , (eastPorts.isEmpty() || !any_0(eastPorts, new LayerSweepTypeDecider$lambda$0$Type)) && (pathsToRandom += currentNode.connectedEdges)); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - pathsToRandom += currentNode.randomInfluence; - pathsToHierarchical += currentNode.hierarchicalInfluence; - target = edge.target.owner; - $transferInfoTo(this$static, currentNode, target); - } - northSouthPorts = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [$getPortSideView(node, ($clinit_PortSide() , NORTH_3)), $getPortSideView(node, SOUTH_2)])); - for (port$iterator = new Iterators$ConcatenatedIterator(new FluentIterable$3$1(northSouthPorts.val$inputs1.length, northSouthPorts.val$inputs1)); $hasNext_1(port$iterator);) { - port = castTo($next_0(port$iterator), 11); - nsDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - if (nsDummy) { - pathsToRandom += currentNode.randomInfluence; - pathsToHierarchical += currentNode.hierarchicalInfluence; - $transferInfoTo(this$static, currentNode, nsDummy); - } - } - } - for (node$iterator = new ArrayList$1(nsPortDummies); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - currentNode = this$static.nodeInfo[node.layer.id_0][node.id_0]; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - pathsToRandom += currentNode.randomInfluence; - pathsToHierarchical += currentNode.hierarchicalInfluence; - target = edge.target.owner; - $transferInfoTo(this$static, currentNode, target); - } - } - nsPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - allPaths = pathsToRandom + pathsToHierarchical; - normalized = allPaths == 0?$intern_59:(pathsToRandom - pathsToHierarchical) / allPaths; - return normalized >= boundary; -} - -function LayerSweepTypeDecider(graphData){ - this.graphData = graphData; - this.nodeInfo = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, $intern_16, 1944, graphData.currentNodeOrder.length, 0, 2); -} - -defineClass(1799, 1, $intern_111, LayerSweepTypeDecider); -_.initAfterTraversal = function initAfterTraversal_5(){ -} -; -_.initAtEdgeLevel = function initAtEdgeLevel_5(l, n, p, e, edge, nodeOrder){ -} -; -_.initAtPortLevel = function initAtPortLevel_5(l, n, p, nodeOrder){ -} -; -_.initAtLayerLevel = function initAtLayerLevel_5(l, nodeOrder){ - nodeOrder[l][0].layer.id_0 = l; - this.nodeInfo[l] = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit, {3:1, 4:1, 5:1, 1944:1}, 659, nodeOrder[l].length, 0, 1); -} -; -_.initAtNodeLevel = function initAtNodeLevel_5(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - node.id_0 = n; - setCheck(this.nodeInfo[l], n, new LayerSweepTypeDecider$NodeInfo); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider', 1799); -function LayerSweepTypeDecider$NodeInfo(){ -} - -defineClass(659, 1, {659:1}, LayerSweepTypeDecider$NodeInfo); -_.toString_0 = function toString_101(){ - return 'NodeInfo [connectedEdges=' + this.connectedEdges + ', hierarchicalInfluence=' + this.hierarchicalInfluence + ', randomInfluence=' + this.randomInfluence + ']'; -} -; -_.connectedEdges = 0; -_.hierarchicalInfluence = 0; -_.randomInfluence = 0; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$NodeInfo_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/NodeInfo', 659); -function LayerSweepTypeDecider$lambda$0$Type(){ -} - -defineClass(1800, 1, $intern_89, LayerSweepTypeDecider$lambda$0$Type); -_.apply_1 = function apply_137(arg0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); -} -; -_.equals_0 = function equals_149(other){ - return this === other; -} -; -_.test_0 = function test_86(input_0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$0$Type', 1800); -function LayerSweepTypeDecider$lambda$1$Type(){ -} - -defineClass(1801, 1, $intern_89, LayerSweepTypeDecider$lambda$1$Type); -_.apply_1 = function apply_138(arg0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); -} -; -_.equals_0 = function equals_150(other){ - return this === other; -} -; -_.test_0 = function test_87(input_0){ - return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).connectedEdges)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepTypeDecider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepTypeDecider/lambda$1$Type', 1801); -function LayerTotalPortDistributor(numLayers){ - AbstractBarycenterPortDistributor.call(this, numLayers); -} - -defineClass(1833, 402, $intern_114, LayerTotalPortDistributor); -_.calculatePortRanks = function calculatePortRanks(node, rankSum, type_0){ - var inputCount, northInputCount, northPos, port, port$iterator, port$iterator0, portRanks, pos, restPos; - portRanks = this.portRanks; - switch (type_0.ordinal) { - case 1: - { - inputCount = 0; - northInputCount = 0; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - if (port.incomingEdges.array.length != 0) { - ++inputCount; - port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; - } - } - northPos = rankSum + northInputCount; - restPos = rankSum + inputCount; - for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if (port.side == ($clinit_PortSide() , NORTH_3)) { - portRanks[port.id_0] = northPos; - --northPos; - } - else { - portRanks[port.id_0] = restPos; - --restPos; - } - } - return inputCount; - } - - case 2: - { - pos = 0; - for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - ++pos; - portRanks[port.id_0] = rankSum + pos; - } - return pos; - } - - default:throw toJs(new IllegalArgumentException); - } -} -; -var Lorg_eclipse_elk_alg_layered_p3order_LayerTotalPortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerTotalPortDistributor', 1833); -function $compareBasedOnBarycenter(this$static, n1, n2){ - var s1, s2, value_0; - s1 = this$static.barycenterState[n1.layer.id_0][n1.id_0]; - s2 = this$static.barycenterState[n2.layer.id_0][n2.id_0]; - if (s1.barycenter != null && s2.barycenter != null) { - value_0 = $compareTo_4(s1.barycenter, s2.barycenter); - value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1, n2):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); - return value_0; - } - else if (s1.barycenter != null) { - $updateBiggerAndSmallerAssociations_0(this$static, n1, n2); - return -1; - } - else if (s2.barycenter != null) { - $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); - return 1; - } - return 0; -} - -function $compareBasedOnTansitiveDependencies(this$static, n1, n2){ - if ($containsKey_3(this$static.biggerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n1), 53), n2)) { - return 1; - } - } - else { - $put_6(this$static.biggerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.biggerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.biggerThan, n2), 53), n1)) { - return -1; - } - } - else { - $put_6(this$static.biggerThan, n2, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n1)) { - if ($contains_6(castTo($get_10(this$static.smallerThan, n1), 53), n2)) { - return -1; - } - } - else { - $put_6(this$static.smallerThan, n1, new HashSet); - } - if ($containsKey_3(this$static.smallerThan, n2)) { - if ($contains_6(castTo($get_10(this$static.smallerThan, n2), 53), n1)) { - return 1; - } - } - else { - $put_6(this$static.smallerThan, n2, new HashSet); - } - return 0; -} - -function $lambda$0_8(this$static, n1_0, n2_1){ - var transitiveComparison, value_0; - transitiveComparison = $compareBasedOnTansitiveDependencies(this$static, n1_0, n2_1); - if (transitiveComparison != 0) { - return transitiveComparison; - } - if ($hasProperty(n1_0, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && $hasProperty(n2_1, MODEL_ORDER_0)) { - value_0 = compare_5(castTo($getProperty(n1_0, MODEL_ORDER_0), 19).value_0, castTo($getProperty(n2_1, MODEL_ORDER_0), 19).value_0); - value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1_0, n2_1):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2_1, n1_0); - return value_0; - } - return $compareBasedOnBarycenter(this$static, n1_0, n2_1); -} - -function $updateBiggerAndSmallerAssociations_0(this$static, bigger, smaller){ - var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; - biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); - smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); - biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); - smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); - biggerNodeBiggerThan.map_0.put(smaller, biggerNodeBiggerThan); - smallerNodeSmallerThan.map_0.put(bigger, smallerNodeSmallerThan); - for (verySmall$iterator = smallerNodeBiggerThan.map_0.keySet_0().iterator_0(); verySmall$iterator.hasNext_0();) { - verySmall = castTo(verySmall$iterator.next_1(), 10); - biggerNodeBiggerThan.map_0.put(verySmall, biggerNodeBiggerThan); - $add_6(castTo($get_10(this$static.smallerThan, verySmall), 53), bigger); - $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), biggerNodeSmallerThan); - } - for (veryBig$iterator = biggerNodeSmallerThan.map_0.keySet_0().iterator_0(); veryBig$iterator.hasNext_0();) { - veryBig = castTo(veryBig$iterator.next_1(), 10); - smallerNodeSmallerThan.map_0.put(veryBig, smallerNodeSmallerThan); - $add_6(castTo($get_10(this$static.biggerThan, veryBig), 53), smaller); - $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), smallerNodeBiggerThan); - } -} - -function ModelOrderBarycenterHeuristic(constraintResolver, random, portDistributor){ - BarycenterHeuristic.call(this, constraintResolver, random, portDistributor); - this.biggerThan = new HashMap; - this.smallerThan = new HashMap; - this.barycenterStateComparator = new ModelOrderBarycenterHeuristic$lambda$0$Type(this); -} - -function insertionSort_0(layer, comparator, barycenterHeuristic){ - var i, j, temp; - for (i = 1; i < layer.array.length; i++) { - temp = (checkCriticalElementIndex(i, layer.array.length) , castTo(layer.array[i], 10)); - j = i; - while (j > 0 && comparator.compare_1((checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10)), temp) > 0) { - $set_1(layer, j, (checkCriticalElementIndex(j - 1, layer.array.length) , castTo(layer.array[j - 1], 10))); - --j; - } - checkCriticalElementIndex(j, layer.array.length); - layer.array[j] = temp; - } - barycenterHeuristic.biggerThan = new HashMap; - barycenterHeuristic.smallerThan = new HashMap; -} - -defineClass(660, 817, {660:1, 225:1}, ModelOrderBarycenterHeuristic); -_.minimizeCrossings_0 = function minimizeCrossings_2(layer, preOrdered, randomize, forward_0){ - if (randomize) { - $randomizeBarycenters(this, layer); - } - else { - $calculateBarycenters(this, layer, forward_0); - $fillInUnknownBarycenters(this, layer, preOrdered); - } - if (layer.array.length > 1) { - $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))))?insertionSort_0(layer, this.barycenterStateComparator, this):($clinit_Collections() , $sort(layer, this.barycenterStateComparator)); - $booleanValue(castToBoolean($getProperty($getGraph((checkCriticalElementIndex(0, layer.array.length) , castTo(layer.array[0], 10))), CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0))) || $processConstraints(this.constraintResolver, layer); - } -} -; -var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic', 660); -function ModelOrderBarycenterHeuristic$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1803, 1, $intern_88, ModelOrderBarycenterHeuristic$lambda$0$Type); -_.compare_1 = function compare_68(arg0, arg1){ - return $lambda$0_8(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); -} -; -_.equals_0 = function equals_151(other){ - return this === other; -} -; -_.reversed = function reversed_60(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_ModelOrderBarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'ModelOrderBarycenterHeuristic/lambda$0$Type', 1803); -function $clinit_NoCrossingMinimizer(){ - $clinit_NoCrossingMinimizer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIGURATION_5 = $add_17($after($addBefore($addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , LONG_EDGE_SPLITTER)), P4_NODE_PLACEMENT, IN_LAYER_CONSTRAINT_PROCESSOR), P5_EDGE_ROUTING), LONG_EDGE_JOINER); -} - -function $process_69(progressMonitor){ - $begin(progressMonitor, 'No crossing minimization', 1); - $done_0(progressMonitor); -} - -function NoCrossingMinimizer(){ - $clinit_NoCrossingMinimizer(); -} - -defineClass(1403, 1, $intern_113, NoCrossingMinimizer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_11(graph){ - var configuration; - return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_5) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; -} -; -_.process = function process_66(graph, progressMonitor){ - $process_69((castTo(graph, 37) , progressMonitor)); -} -; -var INTERMEDIATE_PROCESSING_CONFIGURATION_5; -var Lorg_eclipse_elk_alg_layered_p3order_NoCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NoCrossingMinimizer', 1403); -function NodeRelativePortDistributor(numLayers){ - AbstractBarycenterPortDistributor.call(this, numLayers); -} - -defineClass(796, 402, $intern_114, NodeRelativePortDistributor); -_.calculatePortRanks = function calculatePortRanks_0(node, rankSum, type_0){ - var incr, inputCount, northInputCount, northPos, outputCount, port, port$iterator, port$iterator0, portRanks, pos, restPos; - portRanks = this.portRanks; - switch (type_0.ordinal) { - case 1: - { - inputCount = 0; - northInputCount = 0; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - if (port.incomingEdges.array.length != 0) { - ++inputCount; - port.side == ($clinit_PortSide() , NORTH_3) && ++northInputCount; - } - } - incr = 1 / (inputCount + 1); - northPos = rankSum + northInputCount * incr; - restPos = rankSum + 1 - incr; - for (port$iterator = $getPorts(node, ($clinit_PortType() , INPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - if (port.side == ($clinit_PortSide() , NORTH_3)) { - portRanks[port.id_0] = northPos; - northPos -= incr; - } - else { - portRanks[port.id_0] = restPos; - restPos -= incr; - } - } - break; - } - - case 2: - { - outputCount = 0; - for (port$iterator0 = new ArrayList$1(node.ports); port$iterator0.i < port$iterator0.this$01.array.length;) { - port = castTo($next_7(port$iterator0), 11); - port.outgoingEdges.array.length == 0 || ++outputCount; - } - incr = 1 / (outputCount + 1); - pos = rankSum + incr; - for (port$iterator = $getPorts(node, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - portRanks[port.id_0] = pos; - pos += incr; - } - break; - } - - default:throw toJs(new IllegalArgumentException_0('Port type is undefined')); - } - return 1; -} -; -var Lorg_eclipse_elk_alg_layered_p3order_NodeRelativePortDistributor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NodeRelativePortDistributor', 796); -function $assertCorrectPortSides(dummy){ - var anchorY, dummyPort, dummyPorts, origin_0, port, port$iterator, portHeight; - origin_0 = castTo($getProperty(dummy, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); - dummyPorts = dummy.ports; - dummyPort = (checkCriticalElementIndex(0, dummyPorts.array.length) , castTo(dummyPorts.array[0], 11)); - for (port$iterator = new ArrayList$1(origin_0.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (maskUndefined(port) === maskUndefined($getProperty(dummyPort, ORIGIN_0))) { - if (port.side == ($clinit_PortSide() , NORTH_3) && dummy.id_0 > origin_0.id_0) { - $setSide(port, SOUTH_2); - if (port.explicitlySuppliedPortAnchor) { - portHeight = port.size_0.y_0; - anchorY = port.anchor.y_0; - port.anchor.y_0 = portHeight - anchorY; - } - } - else if (port.side == SOUTH_2 && origin_0.id_0 > dummy.id_0) { - $setSide(port, NORTH_3); - if (port.explicitlySuppliedPortAnchor) { - portHeight = port.size_0.y_0; - anchorY = port.anchor.y_0; - port.anchor.y_0 = -(portHeight - anchorY); - } - } - break; - } - } - return origin_0; -} - -function $deepCopy(currentlyBestNodeOrder){ - var i, result; - if (currentlyBestNodeOrder == null) { - return null; - } - result = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, currentlyBestNodeOrder.length, 0, 2); - for (i = 0; i < result.length; i++) { - result[i] = castTo(copyOf_0(currentlyBestNodeOrder[i], currentlyBestNodeOrder[i].length), 193); - } - return result; -} - -function $transferNodeAndPortOrdersToGraph_0(this$static, lGraph){ - var dummy, dummy$iterator, i, j, layers, node, node$iterator, nodes, northSouthPortDummies, origin_0, updatePortOrder; - northSouthPortDummies = new ArrayList; - updatePortOrder = new HashSet; - layers = lGraph.layers; - for (i = 0; i < layers.array.length; i++) { - nodes = (checkCriticalElementIndex(i, layers.array.length) , castTo(layers.array[i], 29)).nodes; - northSouthPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (j = 0; j < nodes.array.length; j++) { - node = this$static.nodeOrder[i][j]; - node.id_0 = j; - node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT) && (northSouthPortDummies.array[northSouthPortDummies.array.length] = node , true); - $set_1(castTo($get_11(lGraph.layers, i), 29).nodes, j, node); - node.ports.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $addAll_2(node.ports, castTo(castTo($get_11(this$static.portOrders, i), 15).get_0(j), 14)); - $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $setProperty_0(node, PORT_CONSTRAINTS_0, ($clinit_PortConstraints() , FIXED_ORDER)); - } - for (dummy$iterator = new ArrayList$1(northSouthPortDummies); dummy$iterator.i < dummy$iterator.this$01.array.length;) { - dummy = castTo($next_7(dummy$iterator), 10); - origin_0 = $assertCorrectPortSides(dummy); - updatePortOrder.map_0.put(origin_0, updatePortOrder); - updatePortOrder.map_0.put(dummy, updatePortOrder); - } - } - for (node$iterator = updatePortOrder.map_0.keySet_0().iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - $clinit_Collections(); - $sort(node.ports, ($clinit_PortListSorter() , CMP_COMBINED)); - node.portSidesCached = true; - $findPortIndices(node); - } -} - -function SweepCopy(sc){ - this.nodeOrder = $deepCopy(sc.nodeOrder); - this.portOrders = new ArrayList_1(sc.portOrders); -} - -function SweepCopy_0(nodeOrderIn){ - var lNodes, lNodes$array, lNodes$index, lNodes$max, layer, node, node$array, node$index, node$max; - this.nodeOrder = $deepCopy(nodeOrderIn); - this.portOrders = new ArrayList; - for (lNodes$array = nodeOrderIn , lNodes$index = 0 , lNodes$max = lNodes$array.length; lNodes$index < lNodes$max; ++lNodes$index) { - lNodes = lNodes$array[lNodes$index]; - layer = new ArrayList; - $add_3(this.portOrders, layer); - for (node$array = lNodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - $add_3(layer, new ArrayList_1(node.ports)); - } - } -} - -defineClass(807, 1, {}, SweepCopy, SweepCopy_0); -var Lorg_eclipse_elk_alg_layered_p3order_SweepCopy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'SweepCopy', 807); -function $countAllCrossings(this$static, currentOrder){ - var crossings, layerIndex; - if (currentOrder.length == 0) { - return 0; - } - crossings = $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[0], ($clinit_PortSide() , WEST_2)); - crossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, currentOrder[currentOrder.length - 1], EAST_2); - for (layerIndex = 0; layerIndex < currentOrder.length; layerIndex++) { - crossings += $countCrossingsAt(this$static, layerIndex, currentOrder); - } - return crossings; -} - -function $countCrossingsAt(this$static, layerIndex, currentOrder){ - var leftLayer, rightLayer, totalCrossings; - totalCrossings = 0; - leftLayer = currentOrder[layerIndex]; - if (layerIndex < currentOrder.length - 1) { - rightLayer = currentOrder[layerIndex + 1]; - if (this$static.hasHyperEdgesEastOfIndex[layerIndex]) { - totalCrossings = $countCrossings_1(this$static.hyperedgeCrossingsCounter, leftLayer, rightLayer); - totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, leftLayer, ($clinit_PortSide() , EAST_2)); - totalCrossings += $countInLayerCrossingsOnSide(this$static.crossingCounter, rightLayer, WEST_2); - } - else { - totalCrossings = $countCrossingsBetweenLayers(this$static.crossingCounter, leftLayer, rightLayer); - } - } - this$static.hasNorthSouthPorts[layerIndex] && (totalCrossings += $countNorthSouthPortCrossingsInLayer(this$static.crossingCounter, leftLayer)); - return totalCrossings; -} - -function AllCrossingsCounter(graph){ - this.inLayerEdgeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.length, 15, 1); - this.hasNorthSouthPorts = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); - this.hasHyperEdgesEastOfIndex = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); - this.nPorts = 0; -} - -defineClass(1798, 1, $intern_111, AllCrossingsCounter); -_.initAtLayerLevel = function initAtLayerLevel_6(l, nodeOrder){ -} -; -_.initAfterTraversal = function initAfterTraversal_6(){ - var portPos; - portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, this.nPorts, 15, 1); - this.hyperedgeCrossingsCounter = new HyperedgeCrossingsCounter(portPos); - this.crossingCounter = new CrossingsCounter(portPos); -} -; -_.initAtEdgeLevel = function initAtEdgeLevel_6(l, n, p, e, edge, nodeOrder){ - var port; - port = castTo($get_11(nodeOrder[l][n].ports, p), 11); - edge.source == port && edge.source.owner.layer == edge.target.owner.layer && ++this.inLayerEdgeCounts[l]; -} -; -_.initAtNodeLevel = function initAtNodeLevel_6(l, n, nodeOrder){ - var node; - node = nodeOrder[l][n]; - this.hasNorthSouthPorts[l] = this.hasNorthSouthPorts[l] | node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT); -} -; -_.initAtPortLevel = function initAtPortLevel_6(l, n, p, nodeOrder){ - var port; - port = castTo($get_11(nodeOrder[l][n].ports, p), 11); - port.id_0 = this.nPorts++; - port.outgoingEdges.array.length + port.incomingEdges.array.length > 1 && (port.side == ($clinit_PortSide() , EAST_2)?(this.hasHyperEdgesEastOfIndex[l] = true):port.side == WEST_2 && l > 0 && (this.hasHyperEdgesEastOfIndex[l - 1] = true)); -} -; -_.nPorts = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_AllCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'AllCrossingsCounter', 1798); -function $add_16(this$static, index_0){ - var i; - ++this$static.size_0; - ++this$static.numsPerIndex[index_0]; - i = index_0 + 1; - while (i < this$static.binarySums.length) { - ++this$static.binarySums[i]; - i += i & -i; - } -} - -function $clear_9(this$static){ - this$static.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum + 1, 15, 1); - this$static.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.maxNum, 15, 1); - this$static.size_0 = 0; -} - -function $rank(this$static, index_0){ - var i, sum; - i = index_0; - sum = 0; - while (i > 0) { - sum += this$static.binarySums[i]; - i -= i & -i; - } - return sum; -} - -function $removeAll_3(this$static, index_0){ - var i, numEntries; - numEntries = this$static.numsPerIndex[index_0]; - if (numEntries == 0) { - return; - } - this$static.numsPerIndex[index_0] = 0; - this$static.size_0 -= numEntries; - i = index_0 + 1; - while (i < this$static.binarySums.length) { - this$static.binarySums[i] -= numEntries; - i += i & -i; - } -} - -function BinaryIndexedTree(maxNum){ - this.maxNum = maxNum; - this.binarySums = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum + 1, 15, 1); - this.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum, 15, 1); - this.size_0 = 0; -} - -defineClass(587, 1, {}, BinaryIndexedTree); -_.maxNum = 0; -_.size_0 = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_BinaryIndexedTree_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'BinaryIndexedTree', 587); -function inNorthSouthEastWestOrder(node, side){ - switch (side.ordinal) { - case 2: - case 1: - return $getPortSideView(node, side); - case 3: - case 4: - return reverse_0($getPortSideView(node, side)); - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function $clinit_CrossingsCounter(){ - $clinit_CrossingsCounter = emptyMethod; - INDEXING_SIDE = ($clinit_PortSide() , WEST_2); - STACK_SIDE = EAST_2; -} - -function $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side){ - var edge, edge$iterator, node, node$array, node$index, node$max, port, port$iterator, ports; - ports = new TreeSet_0(new CrossingsCounter$lambda$2$Type(this$static)); - for (node$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, 1), $intern_107, 10, 0, [upperNode, lowerNode]) , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - for (port$iterator = inNorthSouthEastWestOrder(node, side).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - if (!$isSelfLoop(edge)) { - $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; - $isInLayer(edge) && $add_10(ports, port == edge.source?edge.target:edge.source); - } - } - } - } - return checkNotNull(ports) , new ArrayList_1(ports); -} - -function $connectedPortsSortedByPosition(this$static, upperPort, lowerPort){ - var edge, edge$iterator, port, port$array, port$index, port$max, ports; - ports = new TreeSet_0(new CrossingsCounter$lambda$3$Type(this$static)); - for (port$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, 1), $intern_108, 11, 0, [upperPort, lowerPort]) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { - port = port$array[port$index]; - $put_12(ports.map_0, port, ($clinit_Boolean() , FALSE_0)) == null; - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - edge.source == edge.target || $add_10(ports, port == edge.source?edge.target:edge.source); - } - } - return checkNotNull(ports) , new ArrayList_1(ports); -} - -function $countCrossingsBetweenLayers(this$static, leftLayerNodes, rightLayerNodes){ - var ports; - ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); - return $countCrossingsOnPorts(this$static, ports); -} - -function $countCrossingsBetweenPortsInBothOrders(this$static, upperPort, lowerPort){ - var lowerUpperCrossings, ports, upperLowerCrossings; - ports = $connectedPortsSortedByPosition(this$static, upperPort, lowerPort); - upperLowerCrossings = $countCrossingsOnPorts(this$static, ports); - $clear_9(this$static.indexTree); - $switchPorts(this$static, upperPort, lowerPort); - $clinit_Collections(); - $sort(ports, new CrossingsCounter$lambda$0$Type(this$static)); - lowerUpperCrossings = $countCrossingsOnPorts(this$static, ports); - $clear_9(this$static.indexTree); - $switchPorts(this$static, lowerPort, upperPort); - return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); -} - -function $countCrossingsOnPorts(this$static, ports){ - var crossings, edge, edge$iterator, endPosition, port, port$iterator; - crossings = 0; - for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); - if (endPosition > this$static.portPositions[port.id_0]) { - crossings += $rank(this$static.indexTree, endPosition); - $addFirst(this$static.ends, valueOf_4(endPosition)); - } - } - while (!$isEmpty(this$static.ends)) { - $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); - } - } - return crossings; -} - -function $countInLayerCrossingsBetweenNodesInBothOrders(this$static, upperNode, lowerNode, side){ - var lowerUpperCrossings, ports, upperLowerCrossings; - ports = $connectedInLayerPortsSortedByPosition(this$static, upperNode, lowerNode, side); - upperLowerCrossings = $countInLayerCrossingsOnPorts(this$static, ports); - $switchNodes(this$static, upperNode, lowerNode, side); - $clear_9(this$static.indexTree); - $clinit_Collections(); - $sort(ports, new CrossingsCounter$lambda$1$Type(this$static)); - lowerUpperCrossings = $countInLayerCrossingsOnPorts(this$static, ports); - $switchNodes(this$static, lowerNode, upperNode, side); - $clear_9(this$static.indexTree); - return new Pair(valueOf_4(upperLowerCrossings), valueOf_4(lowerUpperCrossings)); -} - -function $countInLayerCrossingsOnPorts(this$static, ports){ - var crossings, edge, edge$iterator, endPosition, numBetweenLayerEdges, port, port$iterator; - crossings = 0; - for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); - numBetweenLayerEdges = 0; - for (edge$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - if ($isInLayer(edge)) { - endPosition = $positionOf_0(this$static, port == edge.source?edge.target:edge.source); - if (endPosition > this$static.portPositions[port.id_0]) { - crossings += $rank(this$static.indexTree, endPosition); - $addFirst(this$static.ends, valueOf_4(endPosition)); - } - } - else { - ++numBetweenLayerEdges; - } - } - crossings += this$static.indexTree.size_0 * numBetweenLayerEdges; - while (!$isEmpty(this$static.ends)) { - $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); - } - } - return crossings; -} - -function $countInLayerCrossingsOnSide(this$static, nodes, side){ - var ports; - ports = $initPortPositionsForInLayerCrossings(this$static, nodes, side); - return $countInLayerCrossingsOnPorts(this$static, ports); -} - -function $countNorthSouthCrossingsOnPorts(this$static, ports){ - var crossings, dummy, dummyPort, endPosition, port, port$iterator, targetAndDegree, targetAndDegree$iterator, targetsAndDegrees; - crossings = 0; - targetsAndDegrees = new ArrayList; - for (port$iterator = new ArrayList$1(ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); - targetsAndDegrees.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - switch (port.owner.type_0.ordinal) { - case 0: - dummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - $forEach_1(dummy.ports, new CrossingsCounter$lambda$4$Type(targetsAndDegrees)); - break; - case 1: - $ifPresent($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(port.owner.ports, 16)), new CrossingsCounter$lambda$5$Type(port))), new CrossingsCounter$lambda$6$Type(targetsAndDegrees)); - break; - case 3: - dummyPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - $add_3(targetsAndDegrees, new Pair(dummyPort, valueOf_4(port.incomingEdges.array.length + port.outgoingEdges.array.length))); - } - for (targetAndDegree$iterator = new ArrayList$1(targetsAndDegrees); targetAndDegree$iterator.i < targetAndDegree$iterator.this$01.array.length;) { - targetAndDegree = castTo($next_7(targetAndDegree$iterator), 46); - endPosition = $positionOf_0(this$static, castTo(targetAndDegree.first, 11)); - if (endPosition > this$static.portPositions[port.id_0]) { - crossings += $rank(this$static.indexTree, endPosition) * castTo(targetAndDegree.second, 19).value_0; - $addFirst(this$static.ends, valueOf_4(endPosition)); - } - } - while (!$isEmpty(this$static.ends)) { - $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).value_0); - } - } - return crossings; -} - -function $countNorthSouthPortCrossingsInLayer(this$static, layer){ - var ports; - ports = $initPositionsForNorthSouthCounting(this$static, layer); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); - return $countNorthSouthCrossingsOnPorts(this$static, ports); -} - -function $emptyStack(this$static, stack_0, ports, side, startIndex){ - var dummy, index_0, p; - index_0 = startIndex; - while (stack_0.head != stack_0.tail) { - dummy = castTo($removeFirst(stack_0), 10); - p = castTo($getPortSideView(dummy, side).get_0(0), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - return index_0; -} - -function $initForCountingBetween(this$static, leftLayerNodes, rightLayerNodes){ - var ports; - ports = $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); -} - -function $initPortPositionsCounterClockwise(this$static, leftLayerNodes, rightLayerNodes){ - var ports; - ports = new ArrayList; - $initPositions(this$static, leftLayerNodes, ports, ($clinit_PortSide() , EAST_2), true, false); - $initPositions(this$static, rightLayerNodes, ports, WEST_2, false, false); - return ports; -} - -function $initPortPositionsForInLayerCrossings(this$static, nodes, side){ - var ports; - ports = new ArrayList; - $initPositions(this$static, nodes, ports, side, true, true); - this$static.indexTree = new BinaryIndexedTree(ports.array.length); - return ports; -} - -function $initPositions(this$static, nodes, ports, side, topDown, getCardinalities){ - var i, node, nodePorts, numPorts, port, port$iterator; - numPorts = ports.array.length; - getCardinalities && (this$static.nodeCardinalities = initUnidimensionalArray(I_classLit, $intern_48, 25, nodes.length, 15, 1)); - for (i = topDown?0:nodes.length - 1; topDown?i < nodes.length:i >= 0; i += topDown?1:-1) { - node = nodes[i]; - nodePorts = side == ($clinit_PortSide() , EAST_2)?topDown?$getPortSideView(node, side):reverse_0($getPortSideView(node, side)):topDown?reverse_0($getPortSideView(node, side)):$getPortSideView(node, side); - getCardinalities && (this$static.nodeCardinalities[node.id_0] = nodePorts.size_1()); - for (port$iterator = nodePorts.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - this$static.portPositions[port.id_0] = numPorts++; - } - $addAll_2(ports, nodePorts); - } -} - -function $initPositionsForNorthSouthCounting(this$static, nodes){ - var current, i, index_0, lastLayoutUnit, p, p$iterator, p$iterator0, p$iterator1, ports, stack_0; - ports = new ArrayList; - stack_0 = new ArrayDeque; - lastLayoutUnit = null; - index_0 = 0; - for (i = 0; i < nodes.length; ++i) { - current = nodes[i]; - $isLayoutUnitChanged(lastLayoutUnit, current) && (index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0)); - $hasProperty(current, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)) && (lastLayoutUnit = castTo($getProperty(current, IN_LAYER_LAYOUT_UNIT), 10)); - switch (current.type_0.ordinal) { - case 0: - for (p$iterator0 = $iterator_0(filter_0($getPortSideView(current, ($clinit_PortSide() , NORTH_3)), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator0);) { - p = castTo($next(p$iterator0), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - index_0 = $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); - for (p$iterator1 = $iterator_0(filter_0($getPortSideView(current, SOUTH_2), new CrossingsCounter$lambda$8$Type)); $hasNext(p$iterator1);) { - p = castTo($next(p$iterator1), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - break; - case 3: - if (!$getPortSideView(current, INDEXING_SIDE).isEmpty()) { - p = castTo($getPortSideView(current, INDEXING_SIDE).get_0(0), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - $getPortSideView(current, STACK_SIDE).isEmpty() || $addFirst(stack_0, current); - break; - case 1: - for (p$iterator = $getPortSideView(current, ($clinit_PortSide() , WEST_2)).iterator_0(); p$iterator.hasNext_0();) { - p = castTo(p$iterator.next_1(), 11); - this$static.portPositions[p.id_0] = index_0++; - ports.array[ports.array.length] = p; - } - - $getPortSideView(current, EAST_2).forEach_0(new CrossingsCounter$lambda$7$Type(stack_0, current)); - } - } - $emptyStack(this$static, stack_0, ports, STACK_SIDE, index_0); - return ports; -} - -function $isInLayer(edge){ - var sourceLayer, targetLayer; - sourceLayer = edge.source.owner.layer; - targetLayer = edge.target.owner.layer; - return sourceLayer == targetLayer; -} - -function $isLayoutUnitChanged(lastUnit, node){ - var unit; - if (!lastUnit || lastUnit == node || !$hasProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT))) { - return false; - } - unit = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT)), 10); - return unit != lastUnit; -} - -function $lambda$0_9(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $lambda$1_3(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $lambda$2_2(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $lambda$3_1(this$static, a_0, b_1){ - return compare_5(this$static.portPositions[a_0.id_0], this$static.portPositions[b_1.id_0]); -} - -function $positionOf_0(this$static, port){ - return this$static.portPositions[port.id_0]; -} - -function $switchNodes(this$static, wasUpperNode, wasLowerNode, side){ - var port, port$iterator, port$iterator0, ports; - ports = inNorthSouthEastWestOrder(wasUpperNode, side); - for (port$iterator0 = ports.iterator_0(); port$iterator0.hasNext_0();) { - port = castTo(port$iterator0.next_1(), 11); - this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] + this$static.nodeCardinalities[wasLowerNode.id_0]; - } - ports = inNorthSouthEastWestOrder(wasLowerNode, side); - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - this$static.portPositions[port.id_0] = this$static.portPositions[port.id_0] - this$static.nodeCardinalities[wasUpperNode.id_0]; - } -} - -function $switchPorts(this$static, topPort, bottomPort){ - var topPortPos; - topPortPos = this$static.portPositions[topPort.id_0]; - this$static.portPositions[topPort.id_0] = this$static.portPositions[bottomPort.id_0]; - this$static.portPositions[bottomPort.id_0] = topPortPos; -} - -function CrossingsCounter(portPositions){ - $clinit_CrossingsCounter(); - this.portPositions = portPositions; - this.ends = new ArrayDeque; -} - -function lambda$4_7(targetsAndDegrees_0, p_1){ - $clinit_CrossingsCounter(); - return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); -} - -function lambda$5_4(port_0, p_1){ - $clinit_CrossingsCounter(); - return p_1 != port_0; -} - -function lambda$6_1(targetsAndDegrees_0, p_1){ - $clinit_CrossingsCounter(); - return $add_3(targetsAndDegrees_0, new Pair(p_1, valueOf_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); -} - -defineClass(524, 1, {}, CrossingsCounter); -var INDEXING_SIDE, STACK_SIDE; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter', 524); -function CrossingsCounter$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1906, 1, $intern_88, CrossingsCounter$lambda$0$Type); -_.compare_1 = function compare_69(arg0, arg1){ - return $lambda$0_9(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_152(other){ - return this === other; -} -; -_.reversed = function reversed_61(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$0$Type', 1906); -function CrossingsCounter$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1907, 1, $intern_88, CrossingsCounter$lambda$1$Type); -_.compare_1 = function compare_70(arg0, arg1){ - return $lambda$1_3(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_153(other){ - return this === other; -} -; -_.reversed = function reversed_62(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$1$Type', 1907); -function CrossingsCounter$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1908, 1, $intern_88, CrossingsCounter$lambda$2$Type); -_.compare_1 = function compare_71(arg0, arg1){ - return $lambda$2_2(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_154(other){ - return this === other; -} -; -_.reversed = function reversed_63(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$2$Type', 1908); -function CrossingsCounter$lambda$3$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1909, 1, $intern_88, CrossingsCounter$lambda$3$Type); -_.compare_1 = function compare_72(arg0, arg1){ - return $lambda$3_1(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); -} -; -_.equals_0 = function equals_155(other){ - return this === other; -} -; -_.reversed = function reversed_64(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$3$Type', 1909); -function CrossingsCounter$lambda$4$Type(targetsAndDegrees_0){ - this.targetsAndDegrees_0 = targetsAndDegrees_0; -} - -defineClass(1910, 1, $intern_19, CrossingsCounter$lambda$4$Type); -_.accept = function accept_118(arg0){ - lambda$4_7(this.targetsAndDegrees_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$4$Type', 1910); -function CrossingsCounter$lambda$5$Type(port_0){ - this.port_0 = port_0; -} - -defineClass(1911, 1, $intern_39, CrossingsCounter$lambda$5$Type); -_.test_0 = function test_88(arg0){ - return lambda$5_4(this.port_0, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$5$Type', 1911); -function $accept_4(this$static, arg0){ - lambda$6_1(this$static.targetsAndDegrees_0, castTo(arg0, 11)); -} - -function CrossingsCounter$lambda$6$Type(targetsAndDegrees_0){ - this.targetsAndDegrees_0 = targetsAndDegrees_0; -} - -defineClass(1912, 1, $intern_19, CrossingsCounter$lambda$6$Type); -_.accept = function accept_119(arg0){ - $accept_4(this, arg0); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$6$Type', 1912); -function CrossingsCounter$lambda$7$Type(stack_0, current_1){ - this.stack_0 = stack_0; - this.current_1 = current_1; -} - -defineClass(1913, 1, $intern_19, CrossingsCounter$lambda$7$Type); -_.accept = function accept_120(arg0){ - var lastArg; - $clinit_CrossingsCounter(); - $addFirst(this.stack_0, (lastArg = this.current_1 , castTo(arg0, 11) , lastArg)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$7$Type', 1913); -function CrossingsCounter$lambda$8$Type(){ -} - -defineClass(826, 1, $intern_89, CrossingsCounter$lambda$8$Type); -_.apply_1 = function apply_139(arg0){ - return $clinit_CrossingsCounter() , $hasProperty(castTo(arg0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); -} -; -_.equals_0 = function equals_156(other){ - return this === other; -} -; -_.test_0 = function test_89(input_0){ - return $clinit_CrossingsCounter() , $hasProperty(castTo(input_0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); -} -; -var Lorg_eclipse_elk_alg_layered_p3order_counting_CrossingsCounter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$8$Type', 826); -function $countCrossings_1(this$static, leftLayer, rightLayer){ - var compressDeltas, crossings, delta, edge, edge$iterator, firstIndex, he, he$array, he$index, he$max, hyperedge, hyperedgeSet, hyperedges, i, i0, i1, i2, i3, i4, i5, index_0, k, leftCorners, leftLayerRef, node, node$array, node$array0, node$array1, node$index, node$index0, node$index1, node$max, node$max0, node$max1, northInputPorts, openHyperedges, otherInputPorts, p, p$iterator, port, port$iterator, port2HyperedgeMap, portEdges, portIter, pos, q, rightCorners, rightLayerRef, sourceCount, sourceHE, sourcePort, sourcePort$iterator, southSequence, targetCount, targetHE, targetPort, tree, treeSize; - sourceCount = 0; - for (node$array0 = leftLayer , node$index0 = 0 , node$max0 = node$array0.length; node$index0 < node$max0; ++node$index0) { - node = node$array0[node$index0]; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - portEdges = 0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node.layer != edge.target.owner.layer && ++portEdges; - } - portEdges > 0 && (this$static.portPos[port.id_0] = sourceCount++); - } - } - targetCount = 0; - for (node$array1 = rightLayer , node$index1 = 0 , node$max1 = node$array1.length; node$index1 < node$max1; ++node$index1) { - node = node$array1[node$index1]; - northInputPorts = 0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - if (port.side == ($clinit_PortSide() , NORTH_3)) { - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (node.layer != edge.source.owner.layer) { - ++northInputPorts; - break; - } - } - } - else { - break; - } - } - otherInputPorts = 0; - portIter = new AbstractList$ListIteratorImpl(node.ports, node.ports.array.length); - while (portIter.i > 0) { - port = (checkCriticalElement(portIter.i > 0) , castTo(portIter.this$01.get_0(portIter.last = --portIter.i), 11)); - portEdges = 0; - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - node.layer != edge.source.owner.layer && ++portEdges; - } - if (portEdges > 0) { - if (port.side == ($clinit_PortSide() , NORTH_3)) { - this$static.portPos[port.id_0] = targetCount; - ++targetCount; - } - else { - this$static.portPos[port.id_0] = targetCount + northInputPorts + otherInputPorts; - ++otherInputPorts; - } - } - } - targetCount += otherInputPorts; - } - port2HyperedgeMap = new HashMap; - hyperedgeSet = new LinkedHashSet; - for (node$array = leftLayer , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { - node = node$array[node$index]; - for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { - sourcePort = castTo($next_7(sourcePort$iterator), 11); - for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - targetPort = edge.target; - if (node.layer != targetPort.owner.layer) { - sourceHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, sourcePort)), 467); - targetHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, targetPort)), 467); - if (!sourceHE && !targetHE) { - hyperedge = new HyperedgeCrossingsCounter$Hyperedge; - hyperedgeSet.map_0.put(hyperedge, hyperedgeSet); - $add_3(hyperedge.edges, edge); - $add_3(hyperedge.ports, sourcePort); - $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, hyperedge); - $add_3(hyperedge.ports, targetPort); - $put_9(port2HyperedgeMap.hashCodeMap, targetPort, hyperedge); - } - else if (!sourceHE) { - $add_3(targetHE.edges, edge); - $add_3(targetHE.ports, sourcePort); - $put_9(port2HyperedgeMap.hashCodeMap, sourcePort, targetHE); - } - else if (!targetHE) { - $add_3(sourceHE.edges, edge); - $add_3(sourceHE.ports, targetPort); - $put_9(port2HyperedgeMap.hashCodeMap, targetPort, sourceHE); - } - else if (sourceHE == targetHE) { - $add_3(sourceHE.edges, edge); - } - else { - $add_3(sourceHE.edges, edge); - for (p$iterator = new ArrayList$1(targetHE.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - $put_9(port2HyperedgeMap.hashCodeMap, p, sourceHE); - } - $addAll_2(sourceHE.edges, targetHE.edges); - $addAll_2(sourceHE.ports, targetHE.ports); - hyperedgeSet.map_0.remove_0(targetHE) != null; - } - } - } - } - } - hyperedges = castTo($toArray_0(hyperedgeSet, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit, {3:1, 4:1, 5:1, 1946:1}, 467, hyperedgeSet.map_0.size_1(), 0, 1)), 1946); - leftLayerRef = leftLayer[0].layer; - rightLayerRef = rightLayer[0].layer; - for (he$array = hyperedges , he$index = 0 , he$max = he$array.length; he$index < he$max; ++he$index) { - he = he$array[he$index]; - he.upperLeft = sourceCount; - he.upperRight = targetCount; - for (port$iterator = new ArrayList$1(he.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - pos = this$static.portPos[port.id_0]; - if (port.owner.layer == leftLayerRef) { - pos < he.upperLeft && (he.upperLeft = pos); - pos > he.lowerLeft && (he.lowerLeft = pos); - } - else if (port.owner.layer == rightLayerRef) { - pos < he.upperRight && (he.upperRight = pos); - pos > he.lowerRight && (he.lowerRight = pos); - } - } - } - mergeSort(hyperedges, 0, hyperedges.length, null); - southSequence = initUnidimensionalArray(I_classLit, $intern_48, 25, hyperedges.length, 15, 1); - compressDeltas = initUnidimensionalArray(I_classLit, $intern_48, 25, targetCount + 1, 15, 1); - for (i0 = 0; i0 < hyperedges.length; i0++) { - southSequence[i0] = hyperedges[i0].upperRight; - compressDeltas[southSequence[i0]] = 1; - } - delta = 0; - for (i1 = 0; i1 < compressDeltas.length; i1++) { - compressDeltas[i1] == 1?(compressDeltas[i1] = delta):--delta; - } - q = 0; - for (i2 = 0; i2 < southSequence.length; i2++) { - southSequence[i2] += compressDeltas[southSequence[i2]]; - q = $wnd.Math.max(q, southSequence[i2] + 1); - } - firstIndex = 1; - while (firstIndex < q) { - firstIndex *= 2; - } - treeSize = 2 * firstIndex - 1; - firstIndex -= 1; - tree = initUnidimensionalArray(I_classLit, $intern_48, 25, treeSize, 15, 1); - crossings = 0; - for (k = 0; k < southSequence.length; k++) { - index_0 = southSequence[k] + firstIndex; - ++tree[index_0]; - while (index_0 > 0) { - index_0 % 2 > 0 && (crossings += tree[index_0 + 1]); - index_0 = (index_0 - 1) / 2 | 0; - ++tree[index_0]; - } - } - leftCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); - for (i3 = 0; i3 < hyperedges.length; i3++) { - leftCorners[2 * i3] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].upperLeft, hyperedges[i3].lowerLeft, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); - leftCorners[2 * i3 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i3], hyperedges[i3].lowerLeft, hyperedges[i3].upperLeft, LOWER); - } - mergeSort(leftCorners, 0, leftCorners.length, null); - openHyperedges = 0; - for (i4 = 0; i4 < leftCorners.length; i4++) { - switch (leftCorners[i4].type_0.ordinal) { - case 0: - ++openHyperedges; - break; - case 1: - --openHyperedges; - crossings += openHyperedges; - } - } - rightCorners = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit, $intern_2, 362, hyperedges.length * 2, 0, 1); - for (i5 = 0; i5 < hyperedges.length; i5++) { - rightCorners[2 * i5] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].upperRight, hyperedges[i5].lowerRight, ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER)); - rightCorners[2 * i5 + 1] = new HyperedgeCrossingsCounter$HyperedgeCorner(hyperedges[i5], hyperedges[i5].lowerRight, hyperedges[i5].upperRight, LOWER); - } - mergeSort(rightCorners, 0, rightCorners.length, null); - openHyperedges = 0; - for (i = 0; i < rightCorners.length; i++) { - switch (rightCorners[i].type_0.ordinal) { - case 0: - ++openHyperedges; - break; - case 1: - --openHyperedges; - crossings += openHyperedges; - } - } - return crossings; -} - -function HyperedgeCrossingsCounter(portPos){ - this.portPos = portPos; -} - -defineClass(1905, 1, {}, HyperedgeCrossingsCounter); -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter', 1905); -function $compareTo_14(this$static, other){ - if (this$static.upperLeft < other.upperLeft) { - return -1; - } - else if (this$static.upperLeft > other.upperLeft) { - return 1; - } - else if (this$static.upperRight < other.upperRight) { - return -1; - } - else if (this$static.upperRight > other.upperRight) { - return 1; - } - return hashCode__I__devirtual$(this$static) - hashCode__I__devirtual$(other); -} - -function HyperedgeCrossingsCounter$Hyperedge(){ - this.edges = new ArrayList; - this.ports = new ArrayList; -} - -defineClass(467, 1, {35:1, 467:1}, HyperedgeCrossingsCounter$Hyperedge); -_.compareTo_0 = function compareTo_15(other){ - return $compareTo_14(this, castTo(other, 467)); -} -; -_.lowerLeft = 0; -_.lowerRight = 0; -_.upperLeft = 0; -_.upperRight = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$Hyperedge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/Hyperedge', 467); -function $compareTo_15(this$static, other){ - if (this$static.position < other.position) { - return -1; - } - else if (this$static.position > other.position) { - return 1; - } - else if (this$static.oppositePosition < other.oppositePosition) { - return -1; - } - else if (this$static.oppositePosition > other.oppositePosition) { - return 1; - } - else if (this$static.hyperedge != other.hyperedge) { - return hashCode__I__devirtual$(this$static.hyperedge) - hashCode__I__devirtual$(other.hyperedge); - } - else if (this$static.type_0 == ($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , UPPER) && other.type_0 == LOWER) { - return -1; - } - else if (this$static.type_0 == LOWER && other.type_0 == UPPER) { - return 1; - } - return 0; -} - -function HyperedgeCrossingsCounter$HyperedgeCorner(hyperedge, position, oppositePosition, type_0){ - this.hyperedge = hyperedge; - this.position = position; - this.oppositePosition = oppositePosition; - this.type_0 = type_0; -} - -defineClass(362, 1, {35:1, 362:1}, HyperedgeCrossingsCounter$HyperedgeCorner); -_.compareTo_0 = function compareTo_16(other){ - return $compareTo_15(this, castTo(other, 362)); -} -; -_.oppositePosition = 0; -_.position = 0; -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner', 362); -function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type = emptyMethod; - UPPER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('UPPER', 0); - LOWER = new HyperedgeCrossingsCounter$HyperedgeCorner$Type('LOWER', 1); -} - -function HyperedgeCrossingsCounter$HyperedgeCorner$Type(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_68(name_0){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); - return valueOf(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map() , $MAP_56), name_0); -} - -function values_74(){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]); -} - -defineClass(523, 22, {3:1, 35:1, 22:1, 523:1}, HyperedgeCrossingsCounter$HyperedgeCorner$Type); -var LOWER, UPPER; -var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter/HyperedgeCorner/Type', 523, Ljava_lang_Enum_2_classLit, values_74, valueOf_68); -function $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map(){ - $clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type$Map = emptyMethod; - $MAP_56 = createValueOfMap(($clinit_HyperedgeCrossingsCounter$HyperedgeCorner$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter$HyperedgeCorner$Type_2_classLit, 1), $intern_36, 523, 0, [UPPER, LOWER]))); -} - -var $MAP_56; -function $clinit_InteractiveNodePlacer(){ - $clinit_InteractiveNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $placeNodes(this$static, layer){ - var minValidY, node, node$iterator, nodeType, originalYCoordinate, prevNodeType, spacing; - minValidY = $intern_60; - prevNodeType = ($clinit_LNode$NodeType() , NORMAL); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeType = node.type_0; - if (nodeType != NORMAL) { - originalYCoordinate = castToDouble($getProperty(node, ($clinit_InternalProperties_1() , ORIGINAL_DUMMY_NODE_POSITION))); - if (originalYCoordinate == null) { - minValidY = $wnd.Math.max(minValidY, 0); - node.pos.y_0 = minValidY + $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); - } - else { - node.pos.y_0 = (checkCriticalNotNull(originalYCoordinate) , originalYCoordinate); - } - } - spacing = $getVerticalSpacing(this$static.spacings, nodeType, prevNodeType); - node.pos.y_0 < minValidY + spacing + node.margin.top_0 && (node.pos.y_0 = minValidY + spacing + node.margin.top_0); - minValidY = node.pos.y_0 + node.size_0.y_0 + node.margin.bottom; - prevNodeType = nodeType; - } -} - -function $process_70(this$static, layeredGraph, monitor){ - var layer, layer$iterator; - $begin(monitor, 'Interactive node placement', 1); - this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - $placeNodes(this$static, layer); - } - $done_0(monitor); -} - -function InteractiveNodePlacer(){ - $clinit_InteractiveNodePlacer(); -} - -defineClass(1405, 1, $intern_113, InteractiveNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_12(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS:null; -} -; -_.process = function process_67(layeredGraph, monitor){ - $process_70(this, castTo(layeredGraph, 37), monitor); -} -; -var HIERARCHY_PROCESSING_ADDITIONS; -var Lorg_eclipse_elk_alg_layered_p4nodes_InteractiveNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'InteractiveNodePlacer', 1405); -function $clinit_LinearSegmentsNodePlacer(){ - $clinit_LinearSegmentsNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_0 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); - INPUT_PRIO = new Property_0('linearSegments.inputPrio', valueOf_4(0)); - OUTPUT_PRIO = new Property_0('linearSegments.outputPrio', valueOf_4(0)); -} - -function $balancePlacement(this$static, layeredGraph){ - var deflection, deflectionDampening, finalIters, incoming, lastTotalDeflection, merged, mode, node, node$iterator, outgoing, pendulumIters, ready, segment, segment$array, segment$array0, segment$index, segment$index0, segment$max, segment$max0, thoroughness, threshold, totalDeflection; - deflectionDampening = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_LINEAR_SEGMENTS_DEFLECTION_DAMPENING_0)))); - thoroughness = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0; - pendulumIters = 4; - finalIters = 3; - threshold = 20 / thoroughness; - ready = false; - mode = 0; - lastTotalDeflection = $intern_0; - do { - incoming = mode != 1; - outgoing = mode != 0; - totalDeflection = 0; - for (segment$array0 = this$static.linearSegments , segment$index0 = 0 , segment$max0 = segment$array0.length; segment$index0 < segment$max0; ++segment$index0) { - segment = segment$array0[segment$index0]; - segment.refSegment = null; - $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening); - totalDeflection += $wnd.Math.abs(segment.deflection); - } - do { - merged = $mergeRegions(this$static, layeredGraph); - } - while (merged); - for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { - segment = segment$array[segment$index]; - deflection = $region(segment).deflection; - if (deflection != 0) { - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 += deflection; - } - } - } - if (mode == 0 || mode == 1) { - --pendulumIters; - if (pendulumIters <= 0 && (totalDeflection < lastTotalDeflection || -pendulumIters > thoroughness)) { - mode = 2; - lastTotalDeflection = $intern_0; - } - else if (mode == 0) { - mode = 1; - lastTotalDeflection = totalDeflection; - } - else { - mode = 0; - lastTotalDeflection = totalDeflection; - } - } - else { - ready = totalDeflection >= lastTotalDeflection || lastTotalDeflection - totalDeflection < threshold; - lastTotalDeflection = totalDeflection; - ready && --finalIters; - } - } - while (!(ready && finalIters <= 0)); -} - -function $calcDeflection(this$static, segment, incoming, outgoing, deflectionDampening){ - var edge, edge$iterator, edgeWeightSum, inputPrio, minPrio, node, node$iterator, nodeDeflection, nodeWeightSum, otherNode, otherPort, otherPrio, outputPrio, port, port$iterator, portpos, prio, segmentDeflection; - segmentDeflection = 0; - nodeWeightSum = 0; - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - nodeDeflection = 0; - edgeWeightSum = 0; - inputPrio = incoming?castTo($getProperty(node, INPUT_PRIO), 19).value_0:$intern_42; - outputPrio = outgoing?castTo($getProperty(node, OUTPUT_PRIO), 19).value_0:$intern_42; - minPrio = $wnd.Math.max(inputPrio, outputPrio); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - portpos = node.pos.y_0 + port.pos.y_0 + port.anchor.y_0; - if (outgoing) { - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - otherPort = edge.target; - otherNode = otherPort.owner; - if (segment != this$static.linearSegments[otherNode.id_0]) { - otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (prio >= minPrio && prio >= otherPrio) { - nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; - ++edgeWeightSum; - } - } - } - } - if (incoming) { - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - otherPort = edge.source; - otherNode = otherPort.owner; - if (segment != this$static.linearSegments[otherNode.id_0]) { - otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (prio >= minPrio && prio >= otherPrio) { - nodeDeflection += otherNode.pos.y_0 + otherPort.pos.y_0 + otherPort.anchor.y_0 - portpos; - ++edgeWeightSum; - } - } - } - } - } - if (edgeWeightSum > 0) { - segmentDeflection += nodeDeflection / edgeWeightSum; - ++nodeWeightSum; - } - } - if (nodeWeightSum > 0) { - segment.deflection = deflectionDampening * segmentDeflection / nodeWeightSum; - segment.weight = nodeWeightSum; - } - else { - segment.deflection = 0; - segment.weight = 0; - } -} - -function $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList){ - var currentNode, currentSegment, cycleNode, cycleNodesIter, cycleSegment, indexInLayer, layer, layer$iterator, layerIndex, nextLinearSegmentID, nextNode, nextSegment, nodeIter, nodes, previousNode; - nextLinearSegmentID = segmentList.array.length; - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodes = layer.nodes; - if (nodes.array.length == 0) { - continue; - } - nodeIter = new ArrayList$1(nodes); - indexInLayer = 0; - previousNode = null; - currentNode = castTo($next_7(nodeIter), 10); - currentSegment = null; - while (currentNode) { - currentSegment = castTo($get_11(segmentList, currentNode.id_0), 257); - if (currentSegment.indexInLastLayer >= 0) { - cycleSegment = null; - cycleNodesIter = new AbstractList$ListIteratorImpl(layer.nodes, indexInLayer + 1); - while (cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) { - cycleNode = (checkCriticalElement(cycleNodesIter.i < cycleNodesIter.this$01_0.size_1()) , castTo(cycleNodesIter.this$01_0.get_0(cycleNodesIter.last = cycleNodesIter.i++), 10)); - cycleSegment = castTo($get_11(segmentList, cycleNode.id_0), 257); - if (cycleSegment.lastLayer == currentSegment.lastLayer && cycleSegment.indexInLastLayer < currentSegment.indexInLastLayer) { - break; - } - else { - cycleSegment = null; - } - } - if (cycleSegment) { - if (previousNode) { - $set_1(incomingCountList, currentNode.id_0, valueOf_4(castTo($get_11(incomingCountList, currentNode.id_0), 19).value_0 - 1)); - castTo($get_11(outgoingList, previousNode.id_0), 15).remove_1(currentSegment); - } - currentSegment = $split_3(currentSegment, currentNode, nextLinearSegmentID++); - segmentList.array[segmentList.array.length] = currentSegment; - $add_3(outgoingList, new ArrayList); - if (previousNode) { - castTo($get_11(outgoingList, previousNode.id_0), 15).add_2(currentSegment); - $add_3(incomingCountList, valueOf_4(1)); - } - else { - $add_3(incomingCountList, valueOf_4(0)); - } - } - } - nextNode = null; - if (nodeIter.i < nodeIter.this$01.array.length) { - nextNode = castTo($next_7(nodeIter), 10); - nextSegment = castTo($get_11(segmentList, nextNode.id_0), 257); - castTo($get_11(outgoingList, currentNode.id_0), 15).add_2(nextSegment); - $set_1(incomingCountList, nextNode.id_0, valueOf_4(castTo($get_11(incomingCountList, nextNode.id_0), 19).value_0 + 1)); - } - currentSegment.lastLayer = layerIndex; - currentSegment.indexInLastLayer = indexInLayer++; - previousNode = currentNode; - currentNode = nextNode; - } - ++layerIndex; - } -} - -function $createUnbalancedPlacement(this$static, layeredGraph){ - var layer, layerIndex, node, node$iterator, node$iterator0, nodeCount, recentNode, recentNodeType, segment, segment$array, segment$index, segment$max, spacing, uppermostPlace; - nodeCount = initUnidimensionalArray(I_classLit, $intern_48, 25, layeredGraph.layers.array.length, 15, 1); - recentNodeType = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, $intern_36, 267, layeredGraph.layers.array.length, 0, 1); - recentNode = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, layeredGraph.layers.array.length, 0, 1); - for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { - segment = segment$array[segment$index]; - uppermostPlace = 0; - for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - layerIndex = $getIndex_0(node.layer); - ++nodeCount[layerIndex]; - spacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_EDGE_EDGE)))); - nodeCount[layerIndex] > 0 && !!recentNode[layerIndex] && (spacing = $getVerticalSpacing_0(this$static.spacings, recentNode[layerIndex], node)); - uppermostPlace = $wnd.Math.max(uppermostPlace, node.layer.size_0.y_0 + spacing); - } - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 = uppermostPlace + node.margin.top_0; - layer = node.layer; - layer.size_0.y_0 = uppermostPlace + node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; - recentNodeType[$indexOf_3(layer.owner.layers, layer, 0)] = node.type_0; - recentNode[$indexOf_3(layer.owner.layers, layer, 0)] = node; - } - } -} - -function $fillSegment(this$static, node, segment){ - var edgesIter, nodeType, sourcePort, sourcePort$iterator, targetNode, targetNodeType, targetPort, targetPort$iterator; - nodeType = node.type_0; - if (node.id_0 >= 0) { - return false; - } - else { - node.id_0 = segment.id_0; - $add_3(segment.nodes, node); - } - if (nodeType == ($clinit_LNode$NodeType() , LONG_EDGE) || nodeType == NORTH_SOUTH_PORT) { - for (sourcePort$iterator = new ArrayList$1(node.ports); sourcePort$iterator.i < sourcePort$iterator.this$01.array.length;) { - sourcePort = castTo($next_7(sourcePort$iterator), 11); - for (targetPort$iterator = (edgesIter = new ArrayList$1((new LPort$2(sourcePort)).this$01.outgoingEdges) , new LPort$2$1(edgesIter)); $hasNext_3(targetPort$iterator.val$edgesIter2);) { - targetPort = castTo($next_7(targetPort$iterator.val$edgesIter2), 17).target; - targetNode = targetPort.owner; - targetNodeType = targetNode.type_0; - if (node.layer != targetNode.layer) { - if (targetNodeType == LONG_EDGE || targetNodeType == NORTH_SOUTH_PORT) { - if ($fillSegment(this$static, targetNode, segment)) { - return true; - } - } - } - } - } - } - return true; -} - -function $mergeRegions(this$static, layeredGraph){ - var changed, layer, layer$iterator, node1, node1Extent, node2, node2Extent, nodeIter, nodeSpacing, region1, region2, spacing, threshold, weightSum; - changed = false; - nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - threshold = $intern_41 * nodeSpacing; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - nodeIter = new ArrayList$1(layer.nodes); - node1 = castTo($next_7(nodeIter), 10); - region1 = $region(this$static.linearSegments[node1.id_0]); - while (nodeIter.i < nodeIter.this$01.array.length) { - node2 = castTo($next_7(nodeIter), 10); - region2 = $region(this$static.linearSegments[node2.id_0]); - if (region1 != region2) { - spacing = $getVerticalSpacing_0(this$static.spacings, node1, node2); - node1Extent = node1.pos.y_0 + node1.size_0.y_0 + node1.margin.bottom + region1.deflection + spacing; - node2Extent = node2.pos.y_0 - node2.margin.top_0 + region2.deflection; - if (node1Extent > node2Extent + threshold) { - weightSum = region1.weight + region2.weight; - region2.deflection = (region2.weight * region2.deflection + region1.weight * region1.deflection) / weightSum; - region2.weight = weightSum; - region1.refSegment = region2; - changed = true; - } - } - node1 = node2; - region1 = region2; - } - } - return changed; -} - -function $postProcess(this$static){ - var d, edge, edge$iterator, firstNode, foundPlace, index_0, lastNode, minDisplacement, minRoomAbove, minRoomBelow, neighbor, node, node$iterator, node$iterator0, pos, roomAbove, roomBelow, segment, segment$array, segment$index, segment$max, source, source$iterator, spacing, target, target$iterator; - for (segment$array = this$static.linearSegments , segment$index = 0 , segment$max = segment$array.length; segment$index < segment$max; ++segment$index) { - segment = segment$array[segment$index]; - minRoomAbove = $intern_0; - minRoomBelow = $intern_0; - for (node$iterator0 = new ArrayList$1(segment.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - index_0 = !node.layer?-1:$indexOf_3(node.layer.nodes, node, 0); - if (index_0 > 0) { - neighbor = castTo($get_11(node.layer.nodes, index_0 - 1), 10); - spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); - roomAbove = node.pos.y_0 - node.margin.top_0 - (neighbor.pos.y_0 + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing); - } - else { - roomAbove = node.pos.y_0 - node.margin.top_0; - } - minRoomAbove = $wnd.Math.min(roomAbove, minRoomAbove); - if (index_0 < node.layer.nodes.array.length - 1) { - neighbor = castTo($get_11(node.layer.nodes, index_0 + 1), 10); - spacing = $getVerticalSpacing_0(this$static.spacings, node, neighbor); - roomBelow = neighbor.pos.y_0 - neighbor.margin.top_0 - (node.pos.y_0 + node.size_0.y_0 + node.margin.bottom + spacing); - } - else { - roomBelow = 2 * node.pos.y_0; - } - minRoomBelow = $wnd.Math.min(roomBelow, minRoomBelow); - } - minDisplacement = $intern_0; - foundPlace = false; - firstNode = castTo($get_11(segment.nodes, 0), 10); - for (target$iterator = new ArrayList$1(firstNode.ports); target$iterator.i < target$iterator.this$01.array.length;) { - target = castTo($next_7(target$iterator), 11); - pos = firstNode.pos.y_0 + target.pos.y_0 + target.anchor.y_0; - for (edge$iterator = new ArrayList$1(target.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - source = edge.source; - d = source.owner.pos.y_0 + source.pos.y_0 + source.anchor.y_0 - pos; - if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { - minDisplacement = d; - foundPlace = true; - } - } - } - lastNode = castTo($get_11(segment.nodes, segment.nodes.array.length - 1), 10); - for (source$iterator = new ArrayList$1(lastNode.ports); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 11); - pos = lastNode.pos.y_0 + source.pos.y_0 + source.anchor.y_0; - for (edge$iterator = new ArrayList$1(source.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - target = edge.target; - d = target.owner.pos.y_0 + target.pos.y_0 + target.anchor.y_0 - pos; - if ($wnd.Math.abs(d) < $wnd.Math.abs(minDisplacement) && $wnd.Math.abs(d) < (d < 0?minRoomAbove:minRoomBelow)) { - minDisplacement = d; - foundPlace = true; - } - } - } - if (foundPlace && minDisplacement != 0) { - for (node$iterator = new ArrayList$1(segment.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 += minDisplacement; - } - } - } -} - -function $process_71(this$static, layeredGraph, monitor){ - $begin(monitor, 'Linear segments node placement', 1); - this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - $sortLinearSegments(this$static, layeredGraph); - $createUnbalancedPlacement(this$static, layeredGraph); - $balancePlacement(this$static, layeredGraph); - $postProcess(this$static); - this$static.linearSegments = null; - this$static.spacings = null; - $done_0(monitor); -} - -function $sortLinearSegments(this$static, layeredGraph){ - var edge, edge$iterator, edge$iterator0, i, i0, i1, i2, incomingCount, incomingCountList, inprio, layer, layer$iterator, layer$iterator0, ls, newRanks, nextLinearSegmentID, nextRank, noIncoming, node, node$iterator, outgoing, outgoingList, outprio, port, port$iterator, prio, rank, segment, segmentList, segments, target; - segmentList = new ArrayList; - for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = -1; - inprio = $intern_42; - outprio = $intern_42; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 17); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - inprio = $wnd.Math.max(inprio, prio); - } - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - outprio = $wnd.Math.max(outprio, prio); - } - } - $setProperty_0(node, INPUT_PRIO, valueOf_4(inprio)); - $setProperty_0(node, OUTPUT_PRIO, valueOf_4(outprio)); - } - } - nextLinearSegmentID = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - if (node.id_0 < 0) { - segment = new LinearSegmentsNodePlacer$LinearSegment; - segment.id_0 = nextLinearSegmentID++; - $fillSegment(this$static, node, segment); - segmentList.array[segmentList.array.length] = segment; - } - } - } - outgoingList = newArrayListWithCapacity(segmentList.array.length); - incomingCountList = newArrayListWithCapacity(segmentList.array.length); - for (i0 = 0; i0 < segmentList.array.length; i0++) { - $add_3(outgoingList, new ArrayList); - $add_3(incomingCountList, valueOf_4(0)); - } - $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList); - segments = castTo($toArray_2(segmentList, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segmentList.array.length, 0, 1)), 840); - outgoing = castTo($toArray_2(outgoingList, initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, outgoingList.array.length, 0, 1)), 192); - incomingCount = initUnidimensionalArray(I_classLit, $intern_48, 25, incomingCountList.array.length, 15, 1); - for (i1 = 0; i1 < incomingCount.length; i1++) { - incomingCount[i1] = (checkCriticalElementIndex(i1, incomingCountList.array.length) , castTo(incomingCountList.array[i1], 19)).value_0; - } - nextRank = 0; - noIncoming = new ArrayList; - for (i2 = 0; i2 < segments.length; i2++) { - incomingCount[i2] == 0 && $add_3(noIncoming, segments[i2]); - } - newRanks = initUnidimensionalArray(I_classLit, $intern_48, 25, segments.length, 15, 1); - while (noIncoming.array.length != 0) { - segment = castTo($remove_11(noIncoming, 0), 257); - newRanks[segment.id_0] = nextRank++; - while (!outgoing[segment.id_0].isEmpty()) { - target = castTo(outgoing[segment.id_0].remove_2(0), 257); - --incomingCount[target.id_0]; - incomingCount[target.id_0] == 0 && (noIncoming.array[noIncoming.array.length] = target , true); - } - } - this$static.linearSegments = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segments.length, 0, 1); - for (i = 0; i < segments.length; i++) { - ls = segments[i]; - rank = newRanks[i]; - this$static.linearSegments[rank] = ls; - ls.id_0 = rank; - for (node$iterator = new ArrayList$1(ls.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.id_0 = rank; - } - } - return this$static.linearSegments; -} - -function LinearSegmentsNodePlacer(){ - $clinit_LinearSegmentsNodePlacer(); -} - -defineClass(1406, 1, $intern_113, LinearSegmentsNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_13(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_0:null; -} -; -_.process = function process_68(layeredGraph, monitor){ - $process_71(this, castTo(layeredGraph, 37), monitor); -} -; -var HIERARCHY_PROCESSING_ADDITIONS_0, INPUT_PRIO, OUTPUT_PRIO; -var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer', 1406); -function $compareTo_16(this$static, other){ - return this$static.id_0 - other.id_0; -} - -function $region(this$static){ - var seg; - seg = this$static; - while (seg.refSegment) { - seg = seg.refSegment; - } - return seg; -} - -function $split_3(this$static, node, newId){ - var iterator, movedNode, newSegment, nodeIndex; - nodeIndex = $indexOf_3(this$static.nodes, node, 0); - newSegment = new LinearSegmentsNodePlacer$LinearSegment; - newSegment.id_0 = newId; - iterator = new AbstractList$ListIteratorImpl(this$static.nodes, nodeIndex); - while (iterator.i < iterator.this$01_0.size_1()) { - movedNode = (checkCriticalElement(iterator.i < iterator.this$01_0.size_1()) , castTo(iterator.this$01_0.get_0(iterator.last = iterator.i++), 10)); - movedNode.id_0 = newId; - $add_3(newSegment.nodes, movedNode); - $remove_8(iterator); - } - return newSegment; -} - -function LinearSegmentsNodePlacer$LinearSegment(){ - this.nodes = new ArrayList; -} - -defineClass(257, 1, {35:1, 257:1}, LinearSegmentsNodePlacer$LinearSegment); -_.compareTo_0 = function compareTo_17(other){ - return $compareTo_16(this, castTo(other, 257)); -} -; -_.equals_0 = function equals_157(object){ - var other; - if (instanceOf(object, 257)) { - other = castTo(object, 257); - return this.id_0 == other.id_0; - } - return false; -} -; -_.hashCode_1 = function hashCode_62(){ - return this.id_0; -} -; -_.toString_0 = function toString_102(){ - return 'ls' + $toString_2(this.nodes); -} -; -_.deflection = 0; -_.id_0 = 0; -_.indexInLastLayer = -1; -_.lastLayer = -1; -_.weight = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'LinearSegmentsNodePlacer/LinearSegment', 257); -function $clinit_NetworkSimplexPlacer(){ - $clinit_NetworkSimplexPlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_1 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $applyPositions(this$static){ - var flexibleNode, l, l$iterator, lNode, lNode$iterator, label_0, label$iterator, maxY, minY, nNode, nf, nf0, nodeRep, p, p$iterator, placement, sizeDelta; - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { - lNode = castTo($next_7(lNode$iterator), 10); - nodeRep = this$static.nodeReps[lNode.id_0]; - minY = nodeRep.head.layer; - maxY = nodeRep.tail.layer; - lNode.pos.y_0 = minY; - sizeDelta = maxY - minY - lNode.size_0.y_0; - flexibleNode = isFlexibleNode(lNode); - nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); - flexibleNode && (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && (lNode.size_0.y_0 += sizeDelta); - if (flexibleNode && (nf0 == PORT_POSITION || nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { - for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - if (($clinit_PortSide() , SIDES_EAST_WEST).contains(p.side)) { - nNode = castTo($get_10(this$static.portMap, p), 121); - p.pos.y_0 = nNode.layer - minY; - } - } - for (label$iterator = new ArrayList$1(lNode.labels); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 70); - placement = castTo($getProperty(lNode, NODE_LABELS_PLACEMENT_1), 21); - placement.contains(($clinit_NodeLabelPlacement() , V_BOTTOM_0))?(label_0.pos.y_0 += sizeDelta):placement.contains(V_CENTER_0) && (label_0.pos.y_0 += sizeDelta / 2); - } - (nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE) && $getPortSideView(lNode, ($clinit_PortSide() , SOUTH_2)).forEach_0(new NetworkSimplexPlacer$lambda$20$Type(sizeDelta)); - } - } - } -} - -function $buildInitialAuxiliaryGraph(this$static){ - var l, l$iterator; - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - $transformLayer(this$static, l); - } - $forEach_3($filter($flatMap($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$2$Type), new NetworkSimplexPlacer$lambda$3$Type), new NetworkSimplexPlacer$lambda$4$Type), new NetworkSimplexPlacer$lambda$5$Type(this$static)); -} - -function $follow(this$static, edge, current, path){ - var incident, incident$iterator, other; - other = $getOther_1(edge, current); - path.array[path.array.length] = edge; - if (this$static.nodeState[other.id_0] == -1 || this$static.nodeState[other.id_0] == 2 || this$static.crossing[edge.id_0]) { - return path; - } - this$static.nodeState[other.id_0] = -1; - for (incident$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(other).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incident$iterator);) { - incident = castTo($next_0(incident$iterator), 17); - if (!(!$isSelfLoop(incident) && !(!$isSelfLoop(incident) && incident.source.owner.layer == incident.target.owner.layer)) || incident == edge) { - continue; - } - return $follow(this$static, incident, other, path); - } - return path; -} - -function $getEdgeWeight(nodeType1, nodeType2){ - return nodeType1 == ($clinit_LNode$NodeType() , NORMAL) && nodeType2 == NORMAL?4:nodeType1 == NORMAL || nodeType2 == NORMAL?8:32; -} - -function $improveTwoPath(this$static, path, probe){ - var a, above, aboveDist, aboveRep, b, below, belowDist, belowRep, c, caseA, caseB, caseC, caseD, centerNode, centerOrigin, d, leftEdge, move, nNode, nodeIndex, rightEdge, spacing; - leftEdge = this$static.edgeReps[(checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).id_0]; - rightEdge = this$static.edgeReps[(checkCriticalElementIndex(1, path.array.length) , castTo(path.array[1], 17)).id_0]; - if (leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) == 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) == 0) { - return false; - } - centerOrigin = leftEdge.right.target.origin_0; - if (!instanceOf(centerOrigin, 10)) { - return false; - } - centerNode = castTo(centerOrigin, 10); - nNode = this$static.nodeReps[centerNode.id_0]; - nodeIndex = !centerNode.layer?-1:$indexOf_3(centerNode.layer.nodes, centerNode, 0); - aboveDist = $intern_59; - if (nodeIndex > 0) { - above = castTo($get_11(centerNode.layer.nodes, nodeIndex - 1), 10); - aboveRep = this$static.nodeReps[above.id_0]; - spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, above, centerNode)); - aboveDist = nNode.head.layer - centerNode.margin.top_0 - (aboveRep.head.layer + above.size_0.y_0 + above.margin.bottom) - spacing; - } - belowDist = $intern_59; - if (nodeIndex < centerNode.layer.nodes.array.length - 1) { - below = castTo($get_11(centerNode.layer.nodes, nodeIndex + 1), 10); - belowRep = this$static.nodeReps[below.id_0]; - spacing = $wnd.Math.ceil($getVerticalSpacing_0(this$static.spacings, below, centerNode)); - belowDist = belowRep.head.layer - below.margin.top_0 - (nNode.head.layer + centerNode.size_0.y_0 + centerNode.margin.bottom) - spacing; - } - if (probe && ($clinit_DoubleMath() , checkNonNegative($intern_117) , $wnd.Math.abs(aboveDist - belowDist) <= $intern_117 || aboveDist == belowDist || isNaN(aboveDist) && isNaN(belowDist))) { - return true; - } - a = length_1(leftEdge.left); - b = -length_1(leftEdge.right); - c = -length_1(rightEdge.left); - d = length_1(rightEdge.right); - caseD = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) > 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) < 0; - caseC = leftEdge.left.target.layer - leftEdge.left.delta - (leftEdge.right.target.layer - leftEdge.right.delta) < 0 && rightEdge.left.target.layer - rightEdge.left.delta - (rightEdge.right.target.layer - rightEdge.right.delta) > 0; - caseB = leftEdge.left.target.layer + leftEdge.right.delta < rightEdge.right.target.layer + rightEdge.left.delta; - caseA = leftEdge.left.target.layer + leftEdge.right.delta > rightEdge.right.target.layer + rightEdge.left.delta; - move = 0; - !caseD && !caseC && (caseA?aboveDist + c > 0?(move = c):belowDist - a > 0 && (move = a):caseB && (aboveDist + b > 0?(move = b):belowDist - d > 0 && (move = d))); - nNode.head.layer += move; - nNode.isFlexible && (nNode.tail.layer += move); - return false; -} - -function $lambda$1_4(this$static, singleNode_1, p_1){ - return $put_6(this$static.portMap, p_1, singleNode_1); -} - -function $lambda$10(this$static, inLayerEdge_0){ - var dummyNode, dummyRep, portRep, src_0, srcIsDummy, tgt, thePort; - srcIsDummy = inLayerEdge_0.source.owner.type_0 != ($clinit_LNode$NodeType() , NORMAL); - thePort = srcIsDummy?inLayerEdge_0.target:inLayerEdge_0.source; - dummyNode = $getOther_2(inLayerEdge_0, thePort).owner; - portRep = castTo($get_10(this$static.portMap, thePort), 121); - dummyRep = this$static.nodeReps[dummyNode.id_0].head; - if ($getIndex(thePort.owner) < (!dummyNode.layer?-1:$indexOf_3(dummyNode.layer.nodes, dummyNode, 0))) { - src_0 = portRep; - tgt = dummyRep; - } - else { - src_0 = dummyRep; - tgt = portRep; - } - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 4), src_0), tgt)); -} - -function $lambda$12(this$static, n_0){ - var other, sp, sp$iterator, sp$iterator0; - for (sp$iterator0 = $getPortSideView(n_0, ($clinit_PortSide() , SOUTH_2)).iterator_0(); sp$iterator0.hasNext_0();) { - sp = castTo(sp$iterator0.next_1(), 11); - other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[n_0.id_0].tail), this$static.nodeReps[other.id_0].head)); - } - for (sp$iterator = $getPortSideView(n_0, NORTH_3).iterator_0(); sp$iterator.hasNext_0();) { - sp = castTo(sp$iterator.next_1(), 11); - other = castTo($getProperty(sp, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); - !!other && $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, 0), 0.1), this$static.nodeReps[other.id_0].tail), this$static.nodeReps[n_0.id_0].head)); - } -} - -function $lambda$22(this$static, n_0){ - return this$static.nodeState[n_0.id_0] = getNodeState(n_0); -} - -function $lambda$25(this$static, n_0){ - return this$static.nodeState[n_0.id_0] == 2; -} - -function $lambda$26(this$static, paths_1, junction_1){ - var e, e$iterator, path; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(junction_1).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!(!$isSelfLoop(e) && !(!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer))) { - continue; - } - path = $follow(this$static, e, junction_1, new NetworkSimplexPlacer$Path); - path.array.length > 1 && (paths_1.array[paths_1.array.length] = path , true); - } -} - -function $lambda$29(this$static, left_0, right_1){ - $markCrossingEdges(this$static, left_0, right_1); - return right_1; -} - -function $markCrossingEdges(this$static, left, right){ - var edge, edge$iterator, last, node, node$iterator, node$iterator0, openEdges, openEdgesIt, port, port$iterator; - openEdges = new ArrayList; - for (node$iterator0 = new ArrayList$1(left.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 10); - for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.target.owner.layer != right) { - continue; - } - openEdges.array[openEdges.array.length] = edge; - } - } - } - for (node$iterator = reverse_0(right.nodes).iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , WEST_2)).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.source.owner.layer != left) { - continue; - } - openEdgesIt = new AbstractList$ListIteratorImpl(openEdges, openEdges.array.length); - last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); - while (last != edge && openEdgesIt.i > 0) { - this$static.crossing[last.id_0] = true; - this$static.crossing[edge.id_0] = true; - last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); - } - openEdgesIt.i > 0 && $remove_8(openEdgesIt); - } - } - } -} - -function $postProcessTwoPaths(this$static){ - var path, q, s, tryAgain; - q = new LinkedList; - $addAll(q, this$static.twoPaths); - s = new Stack; - while (q.size_0 != 0) { - path = castTo(q.size_0 == 0?null:(checkCriticalElement(q.size_0 != 0) , $removeNode_0(q, q.header.next_0)), 508); - tryAgain = $improveTwoPath(this$static, path, true); - tryAgain && $add_3(s.arrayList, path); - } - while (s.arrayList.array.length != 0) { - path = castTo($pop(s), 508); - $improveTwoPath(this$static, path, false); - } -} - -function $preferStraightEdges(this$static){ - var cur, curRep, identifiedPaths, last, oldLeftWeight, oldRightWeight, path, path$iterator, pathIt, weight, paths; - this$static.nodeState = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.nodeCount, 15, 1); - this$static.twoPaths = new ArrayList; - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$21$Type), new NetworkSimplexPlacer$lambda$22$Type(this$static)); - this$static.crossing = initUnidimensionalArray(Z_classLit, $intern_91, 25, this$static.edgeCount, 16, 1); - $reduce_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$29$Type(this$static)); - identifiedPaths = (paths = new ArrayList , $forEach_3($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$24$Type), new NetworkSimplexPlacer$lambda$25$Type(this$static)), new NetworkSimplexPlacer$lambda$26$Type(this$static, paths)) , paths); - for (path$iterator = new ArrayList$1(identifiedPaths); path$iterator.i < path$iterator.this$01.array.length;) { - path = castTo($next_7(path$iterator), 508); - if (path.array.length <= 1) { - continue; - } - if (path.array.length == 2) { - $orderTwoPath(path); - isFlexibleNode((checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).target.owner) || $add_3(this$static.twoPaths, path); - continue; - } - if ($containsLongEdgeDummy(path) || $containsFlexibleNode(path, new NetworkSimplexPlacer$lambda$23$Type)) { - continue; - } - pathIt = new ArrayList$1(path); - last = null; - while (pathIt.i < pathIt.this$01.array.length) { - cur = castTo($next_7(pathIt), 17); - curRep = this$static.edgeReps[cur.id_0]; - !last || pathIt.i >= pathIt.this$01.array.length?(weight = $getEdgeWeight(($clinit_LNode$NodeType() , NORMAL), LONG_EDGE)):(weight = $getEdgeWeight(($clinit_LNode$NodeType() , LONG_EDGE), LONG_EDGE)); - weight *= 2; - oldLeftWeight = curRep.left.weight; - curRep.left.weight = $wnd.Math.max(oldLeftWeight, oldLeftWeight + (weight - oldLeftWeight)); - oldRightWeight = curRep.right.weight; - curRep.right.weight = $wnd.Math.max(oldRightWeight, oldRightWeight + (weight - oldRightWeight)); - last = cur; - } - } -} - -function $prepare(this$static){ - var anchorMustBeInteger, e, e$iterator, edgeIdx, l, l$iterator, lNode, lNode$iterator, nodeIdx, offset, p, p$iterator, y_0, y0; - this$static.nGraph = new NGraph; - nodeIdx = 0; - edgeIdx = 0; - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { - lNode = castTo($next_7(lNode$iterator), 10); - lNode.id_0 = nodeIdx++; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(lNode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - e.id_0 = edgeIdx++; - } - anchorMustBeInteger = isFlexibleNode(lNode); - for (p$iterator = new ArrayList$1(lNode.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - if (anchorMustBeInteger) { - y0 = p.anchor.y_0; - if (y0 != $wnd.Math.floor(y0)) { - offset = y0 - toDouble_0(fromDouble_0($wnd.Math.round(y0))); - p.anchor.y_0 -= offset; - } - } - y_0 = p.pos.y_0 + p.anchor.y_0; - if (y_0 != $wnd.Math.floor(y_0)) { - offset = y_0 - toDouble_0(fromDouble_0($wnd.Math.round(y_0))); - p.pos.y_0 -= offset; - } - } - } - } - this$static.nodeCount = nodeIdx; - this$static.edgeCount = edgeIdx; - this$static.nodeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit, $intern_2, 401, nodeIdx, 0, 1); - this$static.edgeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit, $intern_2, 649, edgeIdx, 0, 1); - this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); -} - -function $process_72(this$static, layeredGraph, progressMonitor){ - var edge, edge$iterator, iterLimit, pm, minLayer, maxLayer, usedLayers, globalSource, globalSink; - $begin(progressMonitor, 'Network simplex node placement', 1); - this$static.lGraph = layeredGraph; - this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - $prepare(this$static); - $buildInitialAuxiliaryGraph(this$static); - $forEach_3($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$11$Type), new NetworkSimplexPlacer$lambda$12$Type(this$static)); - $forEach_3($filter($flatMap($filter($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.lGraph.layers, 16)), new NetworkSimplexPlacer$lambda$6$Type), new NetworkSimplexPlacer$lambda$7$Type), new NetworkSimplexPlacer$lambda$8$Type), new NetworkSimplexPlacer$lambda$9$Type), new NetworkSimplexPlacer$lambda$10$Type(this$static)); - if ($booleanValue(castToBoolean($getProperty(this$static.lGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))))) { - pm = $subTask(progressMonitor, 1); - $begin(pm, 'Straight Edges Pre-Processing', 1); - $preferStraightEdges(this$static); - $done_0(pm); - } - $makeConnected(this$static.nGraph); - iterLimit = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0 * this$static.nGraph.nodes.array.length; - $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(progressMonitor, 1)); - if (this$static.flexibleWhereSpacePermitsEdges.map_0.size_1() != 0) { - pm = $subTask(progressMonitor, 1); - $begin(pm, 'Flexible Where Space Processing', 1); - minLayer = castTo($get_17($min_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$13$Type), new NetworkSimplexPlacer$0methodref$compare$Type)), 19).value_0; - maxLayer = castTo($get_17($max_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$15$Type), new NetworkSimplexPlacer$1methodref$compare$Type)), 19).value_0; - usedLayers = maxLayer - minLayer; - globalSource = $create_2(new NNode$NNodeBuilder, this$static.nGraph); - globalSink = $create_2(new NNode$NNodeBuilder, this$static.nGraph); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 20000), usedLayers), globalSource), globalSink)); - $forEach_3($filter($filter(stream_4(this$static.nodeReps), new NetworkSimplexPlacer$lambda$17$Type), new NetworkSimplexPlacer$lambda$18$Type), new NetworkSimplexPlacer$lambda$19$Type(minLayer, globalSource, usedLayers, globalSink)); - for (edge$iterator = this$static.flexibleWhereSpacePermitsEdges.map_0.keySet_0().iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 213); - edge.weight = 1; - } - $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(pm, 1)); - $done_0(pm); - } - if ($booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)))) { - pm = $subTask(progressMonitor, 1); - $begin(pm, 'Straight Edges Post-Processing', 1); - $postProcessTwoPaths(this$static); - $done_0(pm); - } - $applyPositions(this$static); - this$static.lGraph = null; - this$static.nGraph = null; - this$static.nodeReps = null; - this$static.edgeReps = null; - $reset(this$static.portMap); - this$static.nodeState = null; - this$static.crossing = null; - this$static.twoPaths = null; - this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); - $done_0(progressMonitor); -} - -function $transformEdge_0(this$static, lEdge){ - var dummy, edgeRep, left, right, srcDelta, srcOffset, srcPort, srcRep, tgtDelta, tgtOffset, tgtPort, tgtRep, weight, priority, edgeTypeWeight; - dummy = $create_2(new NNode$NNodeBuilder, this$static.nGraph); - srcRep = this$static.nodeReps[lEdge.source.owner.id_0]; - tgtRep = this$static.nodeReps[lEdge.target.owner.id_0]; - srcPort = lEdge.source; - tgtPort = lEdge.target; - srcOffset = srcPort.anchor.y_0; - tgtOffset = tgtPort.anchor.y_0; - srcRep.isFlexible || (srcOffset += srcPort.pos.y_0); - tgtRep.isFlexible || (tgtOffset += tgtPort.pos.y_0); - tgtDelta = round_int($wnd.Math.max(0, srcOffset - tgtOffset)); - srcDelta = round_int($wnd.Math.max(0, tgtOffset - srcOffset)); - weight = (priority = $wnd.Math.max(1, castTo($getProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0) , edgeTypeWeight = $getEdgeWeight(lEdge.source.owner.type_0, lEdge.target.owner.type_0) , priority * edgeTypeWeight); - left = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), srcDelta), dummy), castTo($get_10(this$static.portMap, lEdge.source), 121))); - right = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), tgtDelta), dummy), castTo($get_10(this$static.portMap, lEdge.target), 121))); - edgeRep = new NetworkSimplexPlacer$EdgeRep(left, right); - this$static.edgeReps[lEdge.id_0] = edgeRep; -} - -function $transformLayer(this$static, layer){ - var lNode, lNode$iterator, lastRep, nodeRep, spacing, topLeft, bottomLeft, corners, minHeight, nf0, nf, sizeWeight, nodeSizeEdge, singleNode; - lastRep = null; - for (lNode$iterator = new ArrayList$1(layer.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { - lNode = castTo($next_7(lNode$iterator), 10); - isFlexibleNode(lNode)?(nodeRep = (topLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , bottomLeft = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , corners = new NetworkSimplexPlacer$NodeRep(lNode, true, topLeft, bottomLeft) , minHeight = lNode.size_0.y_0 , nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(($clinit_LayeredOptions() , NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0))?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf) , sizeWeight = 10000 , nf0 == NODE_SIZE && (sizeWeight = 1) , nodeSizeEdge = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, sizeWeight), round_int($wnd.Math.ceil(minHeight))), topLeft), bottomLeft)) , nf0 == NODE_SIZE_WHERE_SPACE_PERMITS && $add_6(this$static.flexibleWhereSpacePermitsEdges, nodeSizeEdge) , $transformPorts(this$static, reverse_0($getPortSideView(lNode, ($clinit_PortSide() , WEST_2))), corners) , $transformPorts(this$static, $getPortSideView(lNode, EAST_2), corners) , corners)):(nodeRep = (singleNode = $create_2($origin_0(new NNode$NNodeBuilder, lNode), this$static.nGraph) , $forEach_3($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(lNode.ports, 16)), new NetworkSimplexPlacer$lambda$0$Type), new NetworkSimplexPlacer$lambda$1$Type(this$static, singleNode)) , new NetworkSimplexPlacer$NodeRep(lNode, false, singleNode, singleNode))); - this$static.nodeReps[lNode.id_0] = nodeRep; - if (lastRep) { - spacing = lastRep.origin_0.margin.bottom + $getVerticalSpacing_0(this$static.spacings, lastRep.origin_0, lNode) + lNode.margin.top_0; - lastRep.isFlexible || (spacing += lastRep.origin_0.size_0.y_0); - $create_1($target($source($weight($delta(new NEdge$NEdgeBuilder, round_int($wnd.Math.ceil(spacing))), 0), lastRep.tail), nodeRep.head)); - } - lastRep = nodeRep; - } -} - -function $transformPorts(this$static, ports, corners){ - var lastNNode, lastPort, nNode, port, port$iterator, portSpacing, portSurrounding, spacing; - if (isEmpty_13(ports)) { - return; - } - portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(corners.origin_0, ($clinit_LayeredOptions() , SPACING_PORT_PORT)))); - portSurrounding = castTo(getIndividualOrDefault(corners.origin_0, SPACING_PORTS_SURROUNDING), 142); - !portSurrounding && (portSurrounding = new ElkMargin); - lastNNode = corners.head; - lastPort = null; - for (port$iterator = ports.iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - spacing = 0; - if (!lastPort) { - spacing = portSurrounding.top_0; - } - else { - spacing = portSpacing; - spacing += lastPort.size_0.y_0; - } - nNode = $create_2($origin_0(new NNode$NNodeBuilder, port), this$static.nGraph); - $put_6(this$static.portMap, port, nNode); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(spacing))), lastNNode), nNode)); - lastPort = port; - lastNNode = nNode; - } - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), round_int($wnd.Math.ceil(portSurrounding.bottom + lastPort.size_0.y_0))), lastNNode), corners.tail)); -} - -function NetworkSimplexPlacer(){ - $clinit_NetworkSimplexPlacer(); - this.portMap = new HashMap; - this.flexibleWhereSpacePermitsEdges = new HashSet; -} - -function getNodeState(node){ - var inco, ouco, p, p$iterator; - inco = 0; - ouco = 0; - for (p$iterator = new ArrayList$1(node.ports); p$iterator.i < p$iterator.this$01.array.length;) { - p = castTo($next_7(p$iterator), 11); - inco = toInt_0(add_20(inco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.incomingEdges, 16)), new NetworkSimplexPlacer$lambda$27$Type)))); - ouco = toInt_0(add_20(ouco, $count_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(p.outgoingEdges, 16)), new NetworkSimplexPlacer$lambda$28$Type)))); - if (inco > 1 || ouco > 1) { - return 2; - } - } - if (inco + ouco == 1) { - return 2; - } - return 0; -} - -function isFlexibleNode(lNode){ - var additionalPortSpacing, eastPorts, nf, nf0, pc, portSpacing, requiredEastHeight, requiredWestHeight, westPorts; - if (lNode.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { - return false; - } - if (lNode.ports.array.length <= 1) { - return false; - } - pc = castTo($getProperty(lNode, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); - if (pc == ($clinit_PortConstraints() , FIXED_POS)) { - return false; - } - nf0 = ($clinit_NodeFlexibility() , (!lNode.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):lNode.propertyMap).containsKey(NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0)?(nf = castTo($getProperty(lNode, NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_0), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , nf); - if (nf0 == NONE_8) { - return false; - } - if (!(nf0 == NODE_SIZE_WHERE_SPACE_PERMITS || nf0 == NODE_SIZE)) { - portSpacing = $doubleValue(castToDouble(getIndividualOrDefault(lNode, SPACING_PORT_PORT))); - additionalPortSpacing = castTo($getProperty(lNode, SPACING_PORTS_SURROUNDING), 142); - !additionalPortSpacing && (additionalPortSpacing = new ElkMargin_1(portSpacing, portSpacing, portSpacing, portSpacing)); - westPorts = $getPortSideView(lNode, ($clinit_PortSide() , WEST_2)); - requiredWestHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (westPorts.size_1() - 1) * portSpacing; - if (requiredWestHeight > lNode.size_0.y_0) { - return false; - } - eastPorts = $getPortSideView(lNode, EAST_2); - requiredEastHeight = additionalPortSpacing.top_0 + additionalPortSpacing.bottom + (eastPorts.size_1() - 1) * portSpacing; - if (requiredEastHeight > lNode.size_0.y_0) { - return false; - } - } - return true; -} - -function isHandledEdge(edge){ - $clinit_NetworkSimplexPlacer(); - return !$isSelfLoop(edge) && !(!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer); -} - -function lambda$0_28(p_0){ - $clinit_NetworkSimplexPlacer(); - return ($clinit_PortSide() , SIDES_EAST_WEST).contains(p_0.side); -} - -function lambda$19(minLayer_0, globalSource_1, usedLayers_2, globalSink_3, nr_4){ - $clinit_NetworkSimplexPlacer(); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), nr_4.tail.layer - minLayer_0), globalSource_1), nr_4.tail)); - $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, 0), usedLayers_2 - nr_4.head.layer), nr_4.head), globalSink_3)); -} - -function lambda$20(sizeDelta_0, p_1){ - $clinit_NetworkSimplexPlacer(); - return p_1.pos.y_0 += sizeDelta_0; -} - -function length_1(edge){ - return $wnd.Math.abs(edge.source.layer - edge.target.layer) - edge.delta; -} - -defineClass(1408, 1, $intern_113, NetworkSimplexPlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_14(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_1:null; -} -; -_.process = function process_69(layeredGraph, progressMonitor){ - $process_72(this, castTo(layeredGraph, 37), progressMonitor); -} -; -_.edgeCount = 0; -_.nodeCount = 0; -var HIERARCHY_PROCESSING_ADDITIONS_1; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer', 1408); -function NetworkSimplexPlacer$0methodref$compare$Type(){ -} - -defineClass(1427, 1, $intern_88, NetworkSimplexPlacer$0methodref$compare$Type); -_.compare_1 = function compare_73(arg0, arg1){ - return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); -} -; -_.equals_0 = function equals_158(other){ - return this === other; -} -; -_.reversed = function reversed_65(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$0methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/0methodref$compare$Type', 1427); -function NetworkSimplexPlacer$1methodref$compare$Type(){ -} - -defineClass(1429, 1, $intern_88, NetworkSimplexPlacer$1methodref$compare$Type); -_.compare_1 = function compare_74(arg0, arg1){ - return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); -} -; -_.equals_0 = function equals_159(other){ - return this === other; -} -; -_.reversed = function reversed_66(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$1methodref$compare$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/1methodref$compare$Type', 1429); -function NetworkSimplexPlacer$EdgeRep(left, right){ - this.left = left; - this.right = right; -} - -defineClass(649, 1, {649:1}, NetworkSimplexPlacer$EdgeRep); -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/EdgeRep', 649); -function NetworkSimplexPlacer$NodeRep(origin_0, isFlexible, top_0, bottom){ - this.origin_0 = origin_0; - this.isFlexible = isFlexible; - this.head = top_0; - this.tail = bottom; -} - -defineClass(401, 1, {401:1}, NetworkSimplexPlacer$NodeRep); -_.isFlexible = false; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$NodeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/NodeRep', 401); -function $containsFlexibleNode(this$static, p){ - var nf; - if (this$static.array.length == 0) { - return false; - } - nf = getNodeFlexibility((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner); - $clinit_NetworkSimplexPlacer(); - if (nf == ($clinit_NodeFlexibility() , NODE_SIZE_WHERE_SPACE_PERMITS) || nf == NODE_SIZE) { - return true; - } - return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$2$Type), new NetworkSimplexPlacer$Path$lambda$3$Type(p)); -} - -function $containsLongEdgeDummy(this$static){ - if (this$static.array.length == 0) { - return false; - } - if ((checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)).source.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - return true; - } - return $anyMatch($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static, 16)), new NetworkSimplexPlacer$Path$lambda$0$Type), new NetworkSimplexPlacer$Path$lambda$1$Type); -} - -function $orderTwoPath(this$static){ - var first, second; - if (this$static.array.length != 2) { - throw toJs(new IllegalStateException_0('Order only allowed for two paths.')); - } - first = (checkCriticalElementIndex(0, this$static.array.length) , castTo(this$static.array[0], 17)); - second = (checkCriticalElementIndex(1, this$static.array.length) , castTo(this$static.array[1], 17)); - if (first.target.owner != second.source.owner) { - this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.array[this$static.array.length] = second; - this$static.array[this$static.array.length] = first; - } -} - -function NetworkSimplexPlacer$Path(){ - ArrayList.call(this); -} - -defineClass(508, 12, {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1, 508:1}, NetworkSimplexPlacer$Path); -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path', 508); -function NetworkSimplexPlacer$Path$lambda$0$Type(){ -} - -defineClass(1409, 1, {}, NetworkSimplexPlacer$Path$lambda$0$Type); -_.apply_0 = function apply_140(arg0){ - return castTo(arg0, 17).target.owner.type_0; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$0$Type', 1409); -function NetworkSimplexPlacer$Path$lambda$1$Type(){ -} - -defineClass(1410, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$1$Type); -_.test_0 = function test_90(arg0){ - return castTo(arg0, 267) == ($clinit_LNode$NodeType() , LONG_EDGE); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$1$Type', 1410); -function NetworkSimplexPlacer$Path$lambda$2$Type(){ -} - -defineClass(1411, 1, {}, NetworkSimplexPlacer$Path$lambda$2$Type); -_.apply_0 = function apply_141(arg0){ - return castTo(arg0, 17).target.owner; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$2$Type', 1411); -function NetworkSimplexPlacer$Path$lambda$3$Type(p_0){ - this.p_0 = p_0; -} - -defineClass(1412, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$3$Type); -_.test_0 = function test_91(arg0){ - return $test_0(getNodeFlexibility(castTo(arg0, 10))); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path/lambda$3$Type', 1412); -function NetworkSimplexPlacer$lambda$0$Type(){ -} - -defineClass(1413, 1, $intern_39, NetworkSimplexPlacer$lambda$0$Type); -_.test_0 = function test_92(arg0){ - return lambda$0_28(castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$0$Type', 1413); -function NetworkSimplexPlacer$lambda$1$Type($$outer_0, singleNode_1){ - this.$$outer_0 = $$outer_0; - this.singleNode_1 = singleNode_1; -} - -defineClass(1414, 1, $intern_19, NetworkSimplexPlacer$lambda$1$Type); -_.accept = function accept_121(arg0){ - $lambda$1_4(this.$$outer_0, this.singleNode_1, castTo(arg0, 11)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$1$Type', 1414); -function NetworkSimplexPlacer$lambda$10$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1423, 1, $intern_19, NetworkSimplexPlacer$lambda$10$Type); -_.accept = function accept_122(arg0){ - $lambda$10(this.$$outer_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$10$Type', 1423); -function NetworkSimplexPlacer$lambda$11$Type(){ -} - -defineClass(1424, 1, {}, NetworkSimplexPlacer$lambda$11$Type); -_.apply_0 = function apply_142(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$11$Type', 1424); -function NetworkSimplexPlacer$lambda$12$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1425, 1, $intern_19, NetworkSimplexPlacer$lambda$12$Type); -_.accept = function accept_123(arg0){ - $lambda$12(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$12$Type', 1425); -function NetworkSimplexPlacer$lambda$13$Type(){ -} - -defineClass(1426, 1, {}, NetworkSimplexPlacer$lambda$13$Type); -_.apply_0 = function apply_143(arg0){ - return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$13$Type', 1426); -function NetworkSimplexPlacer$lambda$15$Type(){ -} - -defineClass(1428, 1, {}, NetworkSimplexPlacer$lambda$15$Type); -_.apply_0 = function apply_144(arg0){ - return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).layer); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$15$Type', 1428); -function NetworkSimplexPlacer$lambda$17$Type(){ -} - -defineClass(1430, 1, $intern_39, NetworkSimplexPlacer$lambda$17$Type); -_.test_0 = function test_93(arg0){ - return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$17$Type', 1430); -function NetworkSimplexPlacer$lambda$18$Type(){ -} - -defineClass(1431, 1, $intern_39, NetworkSimplexPlacer$lambda$18$Type); -_.test_0 = function test_94(arg0){ - return $clinit_NetworkSimplexPlacer() , castTo(arg0, 401).origin_0.ports.array.length > 1; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$18$Type', 1431); -function NetworkSimplexPlacer$lambda$19$Type(minLayer_0, globalSource_1, usedLayers_2, globalSink_3){ - this.minLayer_0 = minLayer_0; - this.globalSource_1 = globalSource_1; - this.usedLayers_2 = usedLayers_2; - this.globalSink_3 = globalSink_3; -} - -defineClass(1432, 1, $intern_19, NetworkSimplexPlacer$lambda$19$Type); -_.accept = function accept_124(arg0){ - lambda$19(this.minLayer_0, this.globalSource_1, this.usedLayers_2, this.globalSink_3, castTo(arg0, 401)); -} -; -_.minLayer_0 = 0; -_.usedLayers_2 = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$19$Type', 1432); -function NetworkSimplexPlacer$lambda$2$Type(){ -} - -defineClass(1415, 1, {}, NetworkSimplexPlacer$lambda$2$Type); -_.apply_0 = function apply_145(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$2$Type', 1415); -function NetworkSimplexPlacer$lambda$20$Type(sizeDelta_0){ - this.sizeDelta_0 = sizeDelta_0; -} - -defineClass(1433, 1, $intern_19, NetworkSimplexPlacer$lambda$20$Type); -_.accept = function accept_125(arg0){ - lambda$20(this.sizeDelta_0, castTo(arg0, 11)); -} -; -_.sizeDelta_0 = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$20$Type', 1433); -function NetworkSimplexPlacer$lambda$21$Type(){ -} - -defineClass(1434, 1, {}, NetworkSimplexPlacer$lambda$21$Type); -_.apply_0 = function apply_146(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$21$Type', 1434); -function NetworkSimplexPlacer$lambda$22$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1435, 1, $intern_19, NetworkSimplexPlacer$lambda$22$Type); -_.accept = function accept_126(arg0){ - $lambda$22(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$22$Type', 1435); -function $test_0(arg0){ - return $clinit_NetworkSimplexPlacer() , $isFlexibleSizeWhereSpacePermits(castTo(arg0, 197)); -} - -function NetworkSimplexPlacer$lambda$23$Type(){ -} - -defineClass(1436, 1, $intern_39, NetworkSimplexPlacer$lambda$23$Type); -_.test_0 = function test_95(arg0){ - return $test_0(arg0); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$23$Type', 1436); -function NetworkSimplexPlacer$lambda$24$Type(){ -} - -defineClass(1437, 1, {}, NetworkSimplexPlacer$lambda$24$Type); -_.apply_0 = function apply_147(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$24$Type', 1437); -function NetworkSimplexPlacer$lambda$25$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1438, 1, $intern_39, NetworkSimplexPlacer$lambda$25$Type); -_.test_0 = function test_96(arg0){ - return $lambda$25(this.$$outer_0, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$25$Type', 1438); -function NetworkSimplexPlacer$lambda$26$Type($$outer_0, paths_1){ - this.$$outer_0 = $$outer_0; - this.paths_1 = paths_1; -} - -defineClass(1439, 1, $intern_19, NetworkSimplexPlacer$lambda$26$Type); -_.accept = function accept_127(arg0){ - $lambda$26(this.$$outer_0, this.paths_1, castTo(arg0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$26$Type', 1439); -function NetworkSimplexPlacer$lambda$27$Type(){ -} - -defineClass(1440, 1, $intern_39, NetworkSimplexPlacer$lambda$27$Type); -_.test_0 = function test_97(arg0){ - return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$27$Type', 1440); -function NetworkSimplexPlacer$lambda$28$Type(){ -} - -defineClass(1441, 1, $intern_39, NetworkSimplexPlacer$lambda$28$Type); -_.test_0 = function test_98(arg0){ - return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$28$Type', 1441); -function NetworkSimplexPlacer$lambda$29$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1442, 1, {}, NetworkSimplexPlacer$lambda$29$Type); -_.apply_3 = function apply_148(arg0, arg1){ - return $lambda$29(this.$$outer_0, castTo(arg0, 29), castTo(arg1, 29)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$29$Type', 1442); -function NetworkSimplexPlacer$lambda$3$Type(){ -} - -defineClass(1416, 1, {}, NetworkSimplexPlacer$lambda$3$Type); -_.apply_0 = function apply_149(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$3$Type', 1416); -function NetworkSimplexPlacer$lambda$4$Type(){ -} - -defineClass(1417, 1, $intern_39, NetworkSimplexPlacer$lambda$4$Type); -_.test_0 = function test_99(arg0){ - return $clinit_NetworkSimplexPlacer() , isHandledEdge(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$4$Type', 1417); -function NetworkSimplexPlacer$lambda$5$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1418, 1, $intern_19, NetworkSimplexPlacer$lambda$5$Type); -_.accept = function accept_128(arg0){ - $transformEdge_0(this.$$outer_0, castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$5$Type', 1418); -function NetworkSimplexPlacer$lambda$6$Type(){ -} - -defineClass(1419, 1, {}, NetworkSimplexPlacer$lambda$6$Type); -_.apply_0 = function apply_150(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$6$Type', 1419); -function NetworkSimplexPlacer$lambda$7$Type(){ -} - -defineClass(1420, 1, $intern_39, NetworkSimplexPlacer$lambda$7$Type); -_.test_0 = function test_100(arg0){ - return $clinit_NetworkSimplexPlacer() , castTo(arg0, 10).type_0 == ($clinit_LNode$NodeType() , NORMAL); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$7$Type', 1420); -function NetworkSimplexPlacer$lambda$8$Type(){ -} - -defineClass(1421, 1, {}, NetworkSimplexPlacer$lambda$8$Type); -_.apply_0 = function apply_151(arg0){ - return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator_0(new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(castTo(arg0, 10)).val$inputs1.iterator_0(), new Iterables$10)))); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$8$Type', 1421); -function NetworkSimplexPlacer$lambda$9$Type(){ -} - -defineClass(1422, 1, $intern_39, NetworkSimplexPlacer$lambda$9$Type); -_.test_0 = function test_101(arg0){ - return $clinit_NetworkSimplexPlacer() , $isInLayerEdge(castTo(arg0, 17)); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$9$Type', 1422); -function $clinit_SimpleNodePlacer(){ - $clinit_SimpleNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_2 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $process_73(layeredGraph, monitor){ - var lastNode, layer, layer$iterator, layer$iterator0, layerSize, maxHeight, node, node$iterator, pos, spacings; - $begin(monitor, 'Simple node placement', 1); - spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - maxHeight = 0; - for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - layerSize = layer.size_0; - layerSize.y_0 = 0; - lastNode = null; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - !!lastNode && (layerSize.y_0 += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); - layerSize.y_0 += node.margin.top_0 + node.size_0.y_0 + node.margin.bottom; - lastNode = node; - } - maxHeight = $wnd.Math.max(maxHeight, layerSize.y_0); - } - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerSize = layer.size_0; - pos = (maxHeight - layerSize.y_0) / 2; - lastNode = null; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - !!lastNode && (pos += $getLocalSpacing_0(node, lastNode, spacings.nodeTypeSpacingOptionsVertical)); - pos += node.margin.top_0; - node.pos.y_0 = pos; - pos += node.size_0.y_0 + node.margin.bottom; - lastNode = node; - } - } - $done_0(monitor); -} - -function SimpleNodePlacer(){ - $clinit_SimpleNodePlacer(); -} - -defineClass(1404, 1, $intern_113, SimpleNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_15(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_2:null; -} -; -_.process = function process_70(layeredGraph, monitor){ - $process_73(castTo(layeredGraph, 37), monitor); -} -; -var HIERARCHY_PROCESSING_ADDITIONS_2; -var Lorg_eclipse_elk_alg_layered_p4nodes_SimpleNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'SimpleNodePlacer', 1404); -function $calculateDelta(this$static, src_0, tgt){ - var srcPos, tgtPos; - srcPos = $doubleValue(this$static.y_0[src_0.owner.id_0]) + $doubleValue(this$static.innerShift[src_0.owner.id_0]) + src_0.pos.y_0 + src_0.anchor.y_0; - tgtPos = $doubleValue(this$static.y_0[tgt.owner.id_0]) + $doubleValue(this$static.innerShift[tgt.owner.id_0]) + tgt.pos.y_0 + tgt.anchor.y_0; - return tgtPos - srcPos; -} - -function $checkSpaceAbove(this$static, blockRoot, delta, ni){ - var availableSpace, current, maxYNeighbor, minYCurrent, neighbor, rootNode, rootNode0, rootNode1; - availableSpace = delta; - rootNode0 = blockRoot; - current = rootNode0; - do { - current = this$static.align_0[current.id_0]; - minYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) - current.margin.top_0); - neighbor = $getUpperNeighbor(current, ni); - if (neighbor) { - maxYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom); - availableSpace = $wnd.Math.min(availableSpace, minYCurrent - (maxYNeighbor + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); - } - } - while (rootNode0 != current); - return availableSpace; -} - -function $checkSpaceBelow(this$static, blockRoot, delta, ni){ - var availableSpace, current, maxYCurrent, minYNeighbor, neighbor, rootNode, rootNode0, rootNode1; - availableSpace = delta; - rootNode0 = blockRoot; - current = rootNode0; - do { - current = this$static.align_0[current.id_0]; - maxYCurrent = (rootNode1 = this$static.root[current.id_0] , $doubleValue(this$static.y_0[rootNode1.id_0]) + $doubleValue(this$static.innerShift[current.id_0]) + current.size_0.y_0 + current.margin.bottom); - neighbor = $getLowerNeighbor(current, ni); - if (neighbor) { - minYNeighbor = (rootNode = this$static.root[neighbor.id_0] , $doubleValue(this$static.y_0[rootNode.id_0]) + $doubleValue(this$static.innerShift[neighbor.id_0]) - neighbor.margin.top_0); - availableSpace = $wnd.Math.min(availableSpace, minYNeighbor - (maxYCurrent + $getVerticalSpacing_0(this$static.spacings, current, neighbor))); - } - } - while (rootNode0 != current); - return availableSpace; -} - -function $getLowerNeighbor(n, ni){ - var l, layerIndex; - l = n.layer; - layerIndex = ni.nodeIndex[n.id_0]; - if (layerIndex < l.nodes.array.length - 1) { - return castTo($get_11(l.nodes, layerIndex + 1), 10); - } - return null; -} - -function $getUpperNeighbor(n, ni){ - var l, layerIndex; - l = n.layer; - layerIndex = ni.nodeIndex[n.id_0]; - if (layerIndex > 0) { - return castTo($get_11(l.nodes, layerIndex - 1), 10); - } - return null; -} - -function $layoutSize(this$static){ - var layer, layer$iterator, max_0, min_0, n, n$iterator, yMax, yMin; - min_0 = $intern_59; - max_0 = $intern_60; - for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - yMin = $doubleValue(this$static.y_0[n.id_0]); - yMax = yMin + $doubleValue(this$static.blockSize[this$static.root[n.id_0].id_0]); - min_0 = $wnd.Math.min(min_0, yMin); - max_0 = $wnd.Math.max(max_0, yMax); - } - } - return max_0 - min_0; -} - -function $shiftBlock(this$static, rootNode, delta){ - var current, newPos; - current = rootNode; - do { - newPos = $doubleValue(this$static.y_0[current.id_0]) + delta; - this$static.y_0[current.id_0] = newPos; - current = this$static.align_0[current.id_0]; - } - while (current != rootNode); -} - -function BKAlignedLayout(layeredGraph, nodeCount, vdir, hdir){ - this.layeredGraph = layeredGraph; - this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - this.root = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); - this.blockSize = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.align_0 = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); - this.innerShift = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.sink = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodeCount, 0, 1); - this.shift_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.y_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); - this.su = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); - fill_2(this.su, ($clinit_Boolean() , false)); - this.od = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); - fill_2(this.od, true); - this.vdir = vdir; - this.hdir = hdir; -} - -defineClass(180, 1, {180:1}, BKAlignedLayout); -_.toString_0 = function toString_103(){ - var result; - result = ''; - this.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?(result += 'RIGHT'):this.hdir == LEFT_3 && (result += 'LEFT'); - this.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(result += 'DOWN'):this.vdir == UP_0?(result += 'UP'):(result += 'BALANCED'); - return result; -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout', 180); -function $clinit_BKAlignedLayout$HDirection(){ - $clinit_BKAlignedLayout$HDirection = emptyMethod; - RIGHT_3 = new BKAlignedLayout$HDirection('RIGHT', 0); - LEFT_3 = new BKAlignedLayout$HDirection('LEFT', 1); -} - -function BKAlignedLayout$HDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_69(name_0){ - $clinit_BKAlignedLayout$HDirection(); - return valueOf(($clinit_BKAlignedLayout$HDirection$Map() , $MAP_57), name_0); -} - -function values_75(){ - $clinit_BKAlignedLayout$HDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]); -} - -defineClass(516, 22, {3:1, 35:1, 22:1, 516:1}, BKAlignedLayout$HDirection); -var LEFT_3, RIGHT_3; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/HDirection', 516, Ljava_lang_Enum_2_classLit, values_75, valueOf_69); -function $clinit_BKAlignedLayout$HDirection$Map(){ - $clinit_BKAlignedLayout$HDirection$Map = emptyMethod; - $MAP_57 = createValueOfMap(($clinit_BKAlignedLayout$HDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$HDirection_2_classLit, 1), $intern_36, 516, 0, [RIGHT_3, LEFT_3]))); -} - -var $MAP_57; -function $clinit_BKAlignedLayout$VDirection(){ - $clinit_BKAlignedLayout$VDirection = emptyMethod; - DOWN_0 = new BKAlignedLayout$VDirection('DOWN', 0); - UP_0 = new BKAlignedLayout$VDirection('UP', 1); -} - -function BKAlignedLayout$VDirection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_70(name_0){ - $clinit_BKAlignedLayout$VDirection(); - return valueOf(($clinit_BKAlignedLayout$VDirection$Map() , $MAP_58), name_0); -} - -function values_76(){ - $clinit_BKAlignedLayout$VDirection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]); -} - -defineClass(515, 22, {3:1, 35:1, 22:1, 515:1}, BKAlignedLayout$VDirection); -var DOWN_0, UP_0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAlignedLayout/VDirection', 515, Ljava_lang_Enum_2_classLit, values_76, valueOf_70); -function $clinit_BKAlignedLayout$VDirection$Map(){ - $clinit_BKAlignedLayout$VDirection$Map = emptyMethod; - $MAP_58 = createValueOfMap(($clinit_BKAlignedLayout$VDirection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAlignedLayout$VDirection_2_classLit, 1), $intern_36, 515, 0, [DOWN_0, UP_0]))); -} - -var $MAP_58; -function $insideBlockShift(bal){ - var blocks, current, edge, entry, next, nextInnerShift, outerIter, portPosDiff, root, root$iterator, spaceAbove, spaceBelow; - blocks = getBlocks(bal); - for (root$iterator = (outerIter = (new AbstractMap$1(blocks)).this$01.entrySet_0().iterator_0() , new AbstractMap$1$1(outerIter)); root$iterator.val$outerIter2.hasNext_0();) { - root = (entry = castTo(root$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getKey(), 10)); - spaceAbove = 0; - spaceBelow = 0; - spaceAbove = root.margin.top_0; - spaceBelow = root.size_0.y_0 + root.margin.bottom; - bal.innerShift[root.id_0] = 0; - current = root; - while ((next = bal.align_0[current.id_0]) != root) { - edge = getEdge(current, next); - portPosDiff = 0; - bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?(portPosDiff = edge.target.pos.y_0 + edge.target.anchor.y_0 - edge.source.pos.y_0 - edge.source.anchor.y_0):(portPosDiff = edge.source.pos.y_0 + edge.source.anchor.y_0 - edge.target.pos.y_0 - edge.target.anchor.y_0); - nextInnerShift = $doubleValue(bal.innerShift[current.id_0]) + portPosDiff; - bal.innerShift[next.id_0] = nextInnerShift; - spaceAbove = $wnd.Math.max(spaceAbove, next.margin.top_0 - nextInnerShift); - spaceBelow = $wnd.Math.max(spaceBelow, nextInnerShift + next.size_0.y_0 + next.margin.bottom); - current = next; - } - current = root; - do { - bal.innerShift[current.id_0] = $doubleValue(bal.innerShift[current.id_0]) + spaceAbove; - current = bal.align_0[current.id_0]; - } - while (current != root); - bal.blockSize[root.id_0] = spaceAbove + spaceBelow; - } -} - -function $verticalAlignment(this$static, bal, markedEdges){ - var d, high, layer, layer$iterator, layer$iterator0, layers, low, m, neighbors, nodes, r, u_m, u_m_pair, um, um_pair, v, v$iterator, v_i_k, v_i_k$iterator; - for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 10); - bal.root[v.id_0] = v; - bal.align_0[v.id_0] = v; - bal.innerShift[v.id_0] = 0; - } - } - layers = this$static.layeredGraph.layers; - bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); - for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { - layer = castTo(layer$iterator.next_1(), 29); - r = -1; - nodes = layer.nodes; - if (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)) { - r = $intern_0; - nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes); - } - for (v_i_k$iterator = nodes.iterator_0(); v_i_k$iterator.hasNext_0();) { - v_i_k = castTo(v_i_k$iterator.next_1(), 10); - neighbors = null; - bal.hdir == LEFT_3?(neighbors = castTo($get_11(this$static.ni.rightNeighbors, v_i_k.id_0), 15)):(neighbors = castTo($get_11(this$static.ni.leftNeighbors, v_i_k.id_0), 15)); - if (neighbors.size_1() > 0) { - d = neighbors.size_1(); - low = round_int($wnd.Math.floor((d + 1) / 2)) - 1; - high = round_int($wnd.Math.ceil((d + 1) / 2)) - 1; - if (bal.vdir == UP_0) { - for (m = high; m >= low; m--) { - if (bal.align_0[v_i_k.id_0] == v_i_k) { - u_m_pair = castTo(neighbors.get_0(m), 46); - u_m = castTo(u_m_pair.first, 10); - if (!$contains_6(markedEdges, u_m_pair.second) && r > this$static.ni.nodeIndex[u_m.id_0]) { - bal.align_0[u_m.id_0] = v_i_k; - bal.root[v_i_k.id_0] = bal.root[u_m.id_0]; - bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; - bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); - r = this$static.ni.nodeIndex[u_m.id_0]; - } - } - } - } - else { - for (m = low; m <= high; m++) { - if (bal.align_0[v_i_k.id_0] == v_i_k) { - um_pair = castTo(neighbors.get_0(m), 46); - um = castTo(um_pair.first, 10); - if (!$contains_6(markedEdges, um_pair.second) && r < this$static.ni.nodeIndex[um.id_0]) { - bal.align_0[um.id_0] = v_i_k; - bal.root[v_i_k.id_0] = bal.root[um.id_0]; - bal.align_0[v_i_k.id_0] = bal.root[v_i_k.id_0]; - bal.od[bal.root[v_i_k.id_0].id_0] = ($clinit_Boolean() , $booleanValue(bal.od[bal.root[v_i_k.id_0].id_0]) & v_i_k.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)?true:false); - r = this$static.ni.nodeIndex[um.id_0]; - } - } - } - } - } - } - } -} - -function BKAligner(layeredGraph, ni){ - this.layeredGraph = layeredGraph; - this.ni = ni; -} - -defineClass(1634, 1, {}, BKAligner); -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAligner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAligner', 1634); -function $getOrCreateClassNode(this$static, sinkNode){ - var node; - node = castTo($get_10(this$static.sinkNodes, sinkNode), 458); - if (!node) { - node = new BKCompactor$ClassNode; - node.node = sinkNode; - $put_6(this$static.sinkNodes, node.node, node); - } - return node; -} - -function $horizontalCompaction(this$static, bal){ - var layer, layer$iterator, layer$iterator0, layer$iterator1, layers, node, node$iterator, nodes, sinkShift, v, v$iterator; - for (layer$iterator0 = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { - layer = castTo($next_7(layer$iterator0), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - bal.sink[node.id_0] = node; - bal.shift_0[node.id_0] = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_59; - } - } - $reset(this$static.sinkNodes); - layers = this$static.layeredGraph.layers; - bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); - $init_0(this$static.threshStrategy, bal, this$static.ni); - fill_2(bal.y_0, null); - for (layer$iterator1 = layers.iterator_0(); layer$iterator1.hasNext_0();) { - layer = castTo(layer$iterator1.next_1(), 29); - nodes = layer.nodes; - bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && (nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(nodes)); - for (v$iterator = nodes.iterator_0(); v$iterator.hasNext_0();) { - v = castTo(v$iterator.next_1(), 10); - bal.root[v.id_0] == v && $placeBlock(this$static, v, bal); - } - } - $placeClasses(this$static, bal); - for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { - layer = castTo(layer$iterator.next_1(), 29); - for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { - v = castTo($next_7(v$iterator), 10); - bal.y_0[v.id_0] = bal.y_0[bal.root[v.id_0].id_0]; - if (v == bal.root[v.id_0]) { - sinkShift = $doubleValue(bal.shift_0[bal.sink[v.id_0].id_0]); - (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && sinkShift > $intern_60 || bal.vdir == DOWN_0 && sinkShift < $intern_59) && (bal.y_0[v.id_0] = $doubleValue(bal.y_0[v.id_0]) + sinkShift); - } - } - } - this$static.threshStrategy.postProcess(); -} - -function $placeBlock(this$static, root, bal){ - var currentBlockPosition, currentIndexInLayer, currentLayerSize, currentNode, isInitialAssignment, neighbor, neighborRoot, neighborSink, newPosition, requiredSpace, sinkNode, spacing, thresh; - if (bal.y_0[root.id_0] != null) { - return; - } - isInitialAssignment = true; - bal.y_0[root.id_0] = 0; - currentNode = root; - thresh = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?$intern_60:$intern_59; - do { - currentIndexInLayer = this$static.ni.nodeIndex[currentNode.id_0]; - currentLayerSize = currentNode.layer.nodes.array.length; - if (bal.vdir == DOWN_0 && currentIndexInLayer > 0 || bal.vdir == UP_0 && currentIndexInLayer < currentLayerSize - 1) { - neighbor = null; - neighborRoot = null; - bal.vdir == UP_0?(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer + 1), 10)):(neighbor = castTo($get_11(currentNode.layer.nodes, currentIndexInLayer - 1), 10)); - neighborRoot = bal.root[neighbor.id_0]; - $placeBlock(this$static, neighborRoot, bal); - thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); - bal.sink[root.id_0] == root && (bal.sink[root.id_0] = bal.sink[neighborRoot.id_0]); - if (bal.sink[root.id_0] == bal.sink[neighborRoot.id_0]) { - spacing = $getVerticalSpacing_0(this$static.spacings, currentNode, neighbor); - if (bal.vdir == UP_0) { - currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); - newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0 - spacing - currentNode.margin.bottom - currentNode.size_0.y_0 - $doubleValue(bal.innerShift[currentNode.id_0]); - if (isInitialAssignment) { - isInitialAssignment = false; - bal.y_0[root.id_0] = $wnd.Math.min(newPosition, thresh); - } - else { - bal.y_0[root.id_0] = $wnd.Math.min(currentBlockPosition, $wnd.Math.min(newPosition, thresh)); - } - } - else { - currentBlockPosition = $doubleValue(bal.y_0[root.id_0]); - newPosition = $doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) + neighbor.size_0.y_0 + neighbor.margin.bottom + spacing + currentNode.margin.top_0 - $doubleValue(bal.innerShift[currentNode.id_0]); - if (isInitialAssignment) { - isInitialAssignment = false; - bal.y_0[root.id_0] = $wnd.Math.max(newPosition, thresh); - } - else { - bal.y_0[root.id_0] = $wnd.Math.max(currentBlockPosition, $wnd.Math.max(newPosition, thresh)); - } - } - } - else { - spacing = $doubleValue(castToDouble($getProperty(this$static.layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_0)))); - sinkNode = $getOrCreateClassNode(this$static, bal.sink[root.id_0]); - neighborSink = $getOrCreateClassNode(this$static, bal.sink[neighborRoot.id_0]); - if (bal.vdir == UP_0) { - requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) + currentNode.size_0.y_0 + currentNode.margin.bottom + spacing - ($doubleValue(bal.y_0[neighborRoot.id_0]) + $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.margin.top_0); - $addEdge(sinkNode, neighborSink, requiredSpace); - } - else { - requiredSpace = $doubleValue(bal.y_0[root.id_0]) + $doubleValue(bal.innerShift[currentNode.id_0]) - currentNode.margin.top_0 - $doubleValue(bal.y_0[neighborRoot.id_0]) - $doubleValue(bal.innerShift[neighbor.id_0]) - neighbor.size_0.y_0 - neighbor.margin.bottom - spacing; - $addEdge(sinkNode, neighborSink, requiredSpace); - } - } - } - else { - thresh = this$static.threshStrategy.calculateThreshold(thresh, root, currentNode); - } - currentNode = bal.align_0[currentNode.id_0]; - } - while (currentNode != root); - $finishBlock(this$static.threshStrategy, root); -} - -function $placeClasses(this$static, bal){ - var e, e$iterator, entry, n, n$iterator, n$iterator0, outerIter, outerIter0, sinks; - sinks = new LinkedList; - for (n$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); n$iterator0.val$outerIter2.hasNext_0();) { - n = (entry = castTo(n$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); - n.indegree == 0 && ($addNode_0(sinks, n, sinks.tail.prev, sinks.tail) , true); - } - while (sinks.size_0 != 0) { - n = castTo(sinks.size_0 == 0?null:(checkCriticalElement(sinks.size_0 != 0) , $removeNode_0(sinks, sinks.header.next_0)), 458); - n.classShift == null && (n.classShift = 0); - for (e$iterator = new ArrayList$1(n.outgoing); e$iterator.i < e$iterator.this$01.array.length;) { - e = castTo($next_7(e$iterator), 654); - e.target.classShift == null?(e.target.classShift = $doubleValue(n.classShift) + e.separation):bal.vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(e.target.classShift = $wnd.Math.min($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)):(e.target.classShift = $wnd.Math.max($doubleValue(e.target.classShift), $doubleValue(n.classShift) + e.separation)); - --e.target.indegree; - e.target.indegree == 0 && $add_7(sinks, e.target); - } - } - for (n$iterator = (outerIter = (new AbstractMap$2(this$static.sinkNodes)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); n$iterator.val$outerIter2.hasNext_0();) { - n = (entry = castTo(n$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 458)); - bal.shift_0[n.node.id_0] = n.classShift; - } -} - -function BKCompactor(layeredGraph, ni){ - this.sinkNodes = new HashMap; - this.layeredGraph = layeredGraph; - this.ni = ni; - this.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); - maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_EDGE_STRAIGHTENING_0))) === maskUndefined(($clinit_EdgeStraighteningStrategy() , IMPROVE_STRAIGHTNESS))?(this.threshStrategy = new ThresholdStrategy$SimpleThresholdStrategy):(this.threshStrategy = new ThresholdStrategy$NullThresholdStrategy); -} - -defineClass(1637, 1, {}, BKCompactor); -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor', 1637); -function BKCompactor$ClassEdge(){ -} - -defineClass(654, 1, {654:1}, BKCompactor$ClassEdge); -_.separation = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassEdge', 654); -function $addEdge(this$static, target, separation){ - var se; - se = new BKCompactor$ClassEdge; - se.target = target; - se.separation = separation; - ++target.indegree; - $add_3(this$static.outgoing, se); -} - -function BKCompactor$ClassNode(){ - this.outgoing = new ArrayList; -} - -defineClass(458, 1, {458:1}, BKCompactor$ClassNode); -_.classShift = null; -_.indegree = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor$ClassNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor/ClassNode', 458); -function $clinit_BKNodePlacer(){ - $clinit_BKNodePlacer = emptyMethod; - HIERARCHY_PROCESSING_ADDITIONS_3 = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , HIERARCHICAL_PORT_POSITION_PROCESSOR)); -} - -function $checkOrderConstraint(layeredGraph, bal, monitor){ - var bottom, feasible, layer, layer$iterator, node, node$iterator, pos, previous, top_0; - feasible = true; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - pos = $intern_60; - previous = null; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - top_0 = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) - node.margin.top_0; - bottom = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; - if (top_0 > pos && bottom > pos) { - previous = node; - pos = $doubleValue(bal.y_0[node.id_0]) + $doubleValue(bal.innerShift[node.id_0]) + node.size_0.y_0 + node.margin.bottom; - } - else { - feasible = false; - monitor.recordLogs && $log_2(monitor, 'bk node placement breaks on ' + node + ' which should have been after ' + previous); - break; - } - } - if (!feasible) { - break; - } - } - monitor.recordLogs && $log_2(monitor, bal + ' is feasible: ' + feasible); - return feasible; -} - -function $createBalancedLayout(this$static, layouts, nodeCount){ - var bal, balanced, calculatedYs, i, i0, i1, i2, l, l$iterator, layer, layer$iterator, max_0, min_0, minWidthLayout, n, n$iterator, noOfLayouts, node, node$iterator, nodePosY, shift_0, width_0; - noOfLayouts = layouts.array.length; - balanced = new BKAlignedLayout(this$static.lGraph, nodeCount, null, null); - width_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - minWidthLayout = 0; - for (i0 = 0; i0 < noOfLayouts; i0++) { - min_0[i0] = $intern_0; - max_0[i0] = $intern_42; - } - for (i1 = 0; i1 < noOfLayouts; i1++) { - bal = (checkCriticalElementIndex(i1, layouts.array.length) , castTo(layouts.array[i1], 180)); - width_0[i1] = $layoutSize(bal); - width_0[minWidthLayout] > width_0[i1] && (minWidthLayout = i1); - for (l$iterator = new ArrayList$1(this$static.lGraph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - nodePosY = $doubleValue(bal.y_0[n.id_0]) + $doubleValue(bal.innerShift[n.id_0]); - min_0[i1] = $wnd.Math.min(min_0[i1], nodePosY); - max_0[i1] = $wnd.Math.max(max_0[i1], nodePosY + n.size_0.y_0); - } - } - } - shift_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - for (i2 = 0; i2 < noOfLayouts; i2++) { - (checkCriticalElementIndex(i2, layouts.array.length) , castTo(layouts.array[i2], 180)).vdir == ($clinit_BKAlignedLayout$VDirection() , DOWN_0)?(shift_0[i2] = min_0[minWidthLayout] - min_0[i2]):(shift_0[i2] = max_0[minWidthLayout] - max_0[i2]); - } - calculatedYs = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); - for (layer$iterator = new ArrayList$1(this$static.lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (i = 0; i < noOfLayouts; i++) { - calculatedYs[i] = $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).y_0[node.id_0]) + $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).innerShift[node.id_0]) + shift_0[i]; - } - calculatedYs.sort(makeLambdaFunction(Arrays$0methodref$compare$Type.prototype.compare_0, Arrays$0methodref$compare$Type, [])); - balanced.y_0[node.id_0] = (calculatedYs[1] + calculatedYs[2]) / 2; - balanced.innerShift[node.id_0] = 0; - } - } - return balanced; -} - -function $incidentToInnerSegment(this$static, node, layer1, layer2){ - var edge, edge$iterator, sourceNodeType; - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - sourceNodeType = edge.source.owner.type_0; - if (sourceNodeType == LONG_EDGE && this$static.ni.layerIndex[edge.source.owner.layer.id_0] == layer2 && this$static.ni.layerIndex[node.layer.id_0] == layer1) { - return true; - } - } - } - return false; -} - -function $markConflicts(this$static, layeredGraph){ - var currentLayer, i, k, k_0, k_1, l, l_1, layer, layer$iterator, layerIndex, layerIterator, layerSize, nodeIterator, numberOfLayers, upperNeighbor, upperNeighbor$iterator, v_l, v_l_i; - numberOfLayers = layeredGraph.layers.array.length; - if (numberOfLayers < 3) { - return; - } - layerSize = initUnidimensionalArray(I_classLit, $intern_48, 25, numberOfLayers, 15, 1); - layerIndex = 0; - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - layerSize[layerIndex++] = layer.nodes.array.length; - } - layerIterator = new AbstractList$ListIteratorImpl(layeredGraph.layers, 2); - for (i = 1; i < numberOfLayers - 1; i++) { - currentLayer = (checkCriticalElement(layerIterator.i < layerIterator.this$01_0.size_1()) , castTo(layerIterator.this$01_0.get_0(layerIterator.last = layerIterator.i++), 29)); - nodeIterator = new ArrayList$1(currentLayer.nodes); - k_0 = 0; - l = 0; - for (l_1 = 0; l_1 < layerSize[i + 1]; l_1++) { - v_l_i = castTo($next_7(nodeIterator), 10); - if (l_1 == layerSize[i + 1] - 1 || $incidentToInnerSegment(this$static, v_l_i, i + 1, i)) { - k_1 = layerSize[i] - 1; - $incidentToInnerSegment(this$static, v_l_i, i + 1, i) && (k_1 = this$static.ni.nodeIndex[castTo(castTo(castTo($get_11(this$static.ni.leftNeighbors, v_l_i.id_0), 15).get_0(0), 46).first, 10).id_0]); - while (l <= l_1) { - v_l = castTo($get_11(currentLayer.nodes, l), 10); - if (!$incidentToInnerSegment(this$static, v_l, i + 1, i)) { - for (upperNeighbor$iterator = castTo($get_11(this$static.ni.leftNeighbors, v_l.id_0), 15).iterator_0(); upperNeighbor$iterator.hasNext_0();) { - upperNeighbor = castTo(upperNeighbor$iterator.next_1(), 46); - k = this$static.ni.nodeIndex[castTo(upperNeighbor.first, 10).id_0]; - (k < k_0 || k > k_1) && $add_6(this$static.markedEdges, castTo(upperNeighbor.second, 17)); - } - } - ++l; - } - k_0 = k_1; - } - } - } -} - -function $process_74(this$static, layeredGraph, monitor){ - var align_0, aligner, bal, bal$iterator, bal$iterator0, bal$iterator1, bal$iterator2, balanced, chosenLayout, compacter, favorStraightEdges, layer, layer$iterator, layouts, leftdown, leftup, node, node$iterator, rightdown, rightup; - $begin(monitor, 'Brandes & Koepf node placement', 1); - this$static.lGraph = layeredGraph; - this$static.ni = buildFor(layeredGraph); - align_0 = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0)), 274); - favorStraightEdges = $booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0))); - this$static.produceBalancedLayout = align_0 == ($clinit_FixedAlignment() , NONE_4) && !favorStraightEdges || align_0 == BALANCED; - $markConflicts(this$static, layeredGraph); - rightdown = null; - rightup = null; - leftdown = null; - leftup = null; - layouts = (checkNonnegative(4, 'initialArraySize') , new ArrayList_0(4)); - switch (castTo($getProperty(layeredGraph, NODE_PLACEMENT_BK_FIXED_ALIGNMENT_0), 274).ordinal) { - case 3: - leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); - layouts.array[layouts.array.length] = leftdown; - break; - case 1: - leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); - layouts.array[layouts.array.length] = leftup; - break; - case 4: - rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); - layouts.array[layouts.array.length] = rightdown; - break; - case 2: - rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); - layouts.array[layouts.array.length] = rightup; - break; - default:leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); - leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, LEFT_3); - rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, DOWN_0, RIGHT_3); - rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, UP_0, RIGHT_3); - layouts.array[layouts.array.length] = rightdown; - layouts.array[layouts.array.length] = rightup; - layouts.array[layouts.array.length] = leftdown; - layouts.array[layouts.array.length] = leftup; - } - aligner = new BKAligner(layeredGraph, this$static.ni); - for (bal$iterator0 = new ArrayList$1(layouts); bal$iterator0.i < bal$iterator0.this$01.array.length;) { - bal = castTo($next_7(bal$iterator0), 180); - $verticalAlignment(aligner, bal, this$static.markedEdges); - $insideBlockShift(bal); - } - compacter = new BKCompactor(layeredGraph, this$static.ni); - for (bal$iterator1 = new ArrayList$1(layouts); bal$iterator1.i < bal$iterator1.this$01.array.length;) { - bal = castTo($next_7(bal$iterator1), 180); - $horizontalCompaction(compacter, bal); - } - if (monitor.recordLogs) { - for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { - bal = castTo($next_7(bal$iterator2), 180); - $log_2(monitor, bal + ' size is ' + $layoutSize(bal)); - } - } - chosenLayout = null; - if (this$static.produceBalancedLayout) { - balanced = $createBalancedLayout(this$static, layouts, this$static.ni.nodeCount); - $checkOrderConstraint(layeredGraph, balanced, monitor) && (chosenLayout = balanced); - } - if (!chosenLayout) { - for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { - bal = castTo($next_7(bal$iterator2), 180); - $checkOrderConstraint(layeredGraph, bal, monitor) && (!chosenLayout || $layoutSize(chosenLayout) > $layoutSize(bal)) && (chosenLayout = bal); - } - } - !chosenLayout && (chosenLayout = (checkCriticalElementIndex(0, layouts.array.length) , castTo(layouts.array[0], 180))); - for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - node.pos.y_0 = $doubleValue(chosenLayout.y_0[node.id_0]) + $doubleValue(chosenLayout.innerShift[node.id_0]); - } - } - if (monitor.recordLogs) { - $log_2(monitor, 'Chosen node placement: ' + chosenLayout); - $log_2(monitor, 'Blocks: ' + getBlocks(chosenLayout)); - $log_2(monitor, 'Classes: ' + getClasses(chosenLayout, monitor)); - $log_2(monitor, 'Marked edges: ' + this$static.markedEdges); - } - for (bal$iterator = new ArrayList$1(layouts); bal$iterator.i < bal$iterator.this$01.array.length;) { - bal = castTo($next_7(bal$iterator), 180); - bal.root = null; - bal.blockSize = null; - bal.align_0 = null; - bal.innerShift = null; - bal.sink = null; - bal.shift_0 = null; - bal.y_0 = null; - } - $cleanup(this$static.ni); - this$static.markedEdges.map_0.clear_0(); - $done_0(monitor); -} - -function BKNodePlacer(){ - $clinit_BKNodePlacer(); - this.markedEdges = new HashSet; -} - -function getBlocks(bal){ - $clinit_BKNodePlacer(); - var blockContents, blocks, layer, layer$iterator, node, node$iterator, root; - blocks = new LinkedHashMap; - for (layer$iterator = new ArrayList$1(bal.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - root = bal.root[node.id_0]; - blockContents = castTo($get_16(blocks, root), 15); - if (!blockContents) { - blockContents = new ArrayList; - $put_11(blocks, root, blockContents); - } - blockContents.add_2(node); - } - } - return blocks; -} - -function getClasses(bal, monitor){ - var classContents, classes, root, root$iterator, roots, sink; - classes = new LinkedHashMap; - roots = newLinkedHashSet(new Arrays$ArrayList(bal.root)); - for (root$iterator = roots.map_0.keySet_0().iterator_0(); root$iterator.hasNext_0();) { - root = castTo(root$iterator.next_1(), 10); - if (!root) { - $log_2(monitor, 'There are no classes in a balanced layout.'); - break; - } - sink = bal.sink[root.id_0]; - classContents = castTo($get_16(classes, sink), 15); - if (!classContents) { - classContents = new ArrayList; - $put_11(classes, sink, classContents); - } - classContents.add_2(root); - } - return classes; -} - -function getEdge(source, target){ - $clinit_BKNodePlacer(); - var edge, edge$iterator; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if (edge.target.owner == target || edge.source.owner == target) { - return edge; - } - } - return null; -} - -defineClass(1407, 1, $intern_113, BKNodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_16(graph){ - return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_3:null; -} -; -_.process = function process_71(layeredGraph, monitor){ - $process_74(this, castTo(layeredGraph, 37), monitor); -} -; -_.produceBalancedLayout = false; -var HIERARCHY_PROCESSING_ADDITIONS_3; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKNodePlacer', 1407); -function $cleanup(this$static){ - this$static.layerIndex = null; - this$static.nodeIndex = null; - this$static.leftNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.rightNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.neighborComparator = null; -} - -function NeighborhoodInformation(){ -} - -function buildFor(graph){ - var l, l$iterator, lId, lIndex, layer, layer$iterator, n, n$iterator, nId, nIndex, ni; - ni = new NeighborhoodInformation; - ni.nodeCount = 0; - for (layer$iterator = new ArrayList$1(graph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { - layer = castTo($next_7(layer$iterator), 29); - ni.nodeCount += layer.nodes.array.length; - } - lId = 0; - lIndex = 0; - ni.layerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length, 15, 1); - nId = 0; - nIndex = 0; - ni.nodeIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, ni.nodeCount, 15, 1); - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - l.id_0 = lId++; - ni.layerIndex[l.id_0] = lIndex++; - nIndex = 0; - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - n.id_0 = nId++; - ni.nodeIndex[n.id_0] = nIndex++; - } - } - ni.neighborComparator = new NeighborhoodInformation$NeighborComparator(ni); - ni.leftNeighbors = newArrayListWithCapacity(ni.nodeCount); - determineAllLeftNeighbors(ni, graph); - ni.rightNeighbors = newArrayListWithCapacity(ni.nodeCount); - determineAllRightNeighbors(ni, graph); - return ni; -} - -function determineAllLeftNeighbors(ni, graph){ - var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - result = new ArrayList; - maxPriority = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { - continue; - } - edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (edgePrio > maxPriority) { - maxPriority = edgePrio; - result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - edgePrio == maxPriority && $add_3(result, new Pair(edge.source.owner, edge)); - } - $clinit_Collections(); - $sort(result, ni.neighborComparator); - $add_2(ni.leftNeighbors, n.id_0, result); - } - } -} - -function determineAllRightNeighbors(ni, graph){ - var edge, edge$iterator, edgePrio, l, l$iterator, maxPriority, n, n$iterator, result; - for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { - l = castTo($next_7(l$iterator), 29); - for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 10); - result = new ArrayList; - maxPriority = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(n).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 17); - if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { - continue; - } - edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; - if (edgePrio > maxPriority) { - maxPriority = edgePrio; - result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - edgePrio == maxPriority && $add_3(result, new Pair(edge.target.owner, edge)); - } - $clinit_Collections(); - $sort(result, ni.neighborComparator); - $add_2(ni.rightNeighbors, n.id_0, result); - } - } -} - -defineClass(1635, 1, {}, NeighborhoodInformation); -_.nodeCount = 0; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation', 1635); -function $compare_21(this$static, o1, o2){ - var cmp; - cmp = this$static.this$01.nodeIndex[castTo(o1.first, 10).id_0] - this$static.this$01.nodeIndex[castTo(o2.first, 10).id_0]; - return round_int(signum(cmp)); -} - -function NeighborhoodInformation$NeighborComparator(this$0){ - this.this$01 = this$0; -} - -defineClass(1636, 1, $intern_88, NeighborhoodInformation$NeighborComparator); -_.compare_1 = function compare_75(o1, o2){ - return $compare_21(this, castTo(o1, 46), castTo(o2, 46)); -} -; -_.equals_0 = function equals_160(other){ - return this === other; -} -; -_.reversed = function reversed_67(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation$NeighborComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation/NeighborComparator', 1636); -function $finishBlock(this$static, n){ - $add_6(this$static.blockFinished, n); -} - -function $getOther_3(edge, n){ - if (edge.source.owner == n) { - return edge.target.owner; - } - else if (edge.target.owner == n) { - return edge.source.owner; - } - else { - throw toJs(new IllegalArgumentException_0('Node ' + n + ' is neither source nor target of edge ' + edge)); - } -} - -function $init_0(this$static, theBal, theNi){ - this$static.bal = theBal; - this$static.ni = theNi; - this$static.blockFinished.map_0.clear_0(); - $reset_0(this$static.postProcessablesQueue); - this$static.postProcessablesStack.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function ThresholdStrategy(){ - this.blockFinished = new HashSet; - this.postProcessablesQueue = new LinkedList; - this.postProcessablesStack = new Stack; -} - -defineClass(808, 1, {}); -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy', 808); -function ThresholdStrategy$NullThresholdStrategy(){ - ThresholdStrategy.call(this); -} - -defineClass(1763, 808, {}, ThresholdStrategy$NullThresholdStrategy); -_.calculateThreshold = function calculateThreshold(oldThresh, blockRoot, currentNode){ - return this.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; -} -; -_.postProcess = function postProcess(){ -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$NullThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/NullThresholdStrategy', 1763); -function ThresholdStrategy$Postprocessable(free, isRoot){ - this.free = free; - this.isRoot = isRoot; -} - -defineClass(579, 1, {579:1}, ThresholdStrategy$Postprocessable); -_.hasEdges = false; -_.isRoot = false; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$Postprocessable_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/Postprocessable', 579); -function $getBound(this$static, blockNode, isRoot){ - var invalid, left, otherPort, otherRoot, pick, right, rootPort, threshold; - invalid = this$static.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; - pick = $pickEdge(this$static, new ThresholdStrategy$Postprocessable(blockNode, isRoot)); - if (!pick.edge && pick.hasEdges) { - $add_7(this$static.postProcessablesQueue, pick); - return invalid; - } - else if (pick.edge) { - left = pick.edge.source; - right = pick.edge.target; - if (isRoot) { - rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?right:left; - otherPort = this$static.bal.hdir == RIGHT_3?left:right; - otherRoot = this$static.bal.root[otherPort.owner.id_0]; - threshold = $doubleValue(this$static.bal.y_0[otherRoot.id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; - } - else { - rootPort = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?right:left; - otherPort = this$static.bal.hdir == LEFT_3?left:right; - threshold = $doubleValue(this$static.bal.y_0[this$static.bal.root[otherPort.owner.id_0].id_0]) + $doubleValue(this$static.bal.innerShift[otherPort.owner.id_0]) + otherPort.pos.y_0 + otherPort.anchor.y_0 - $doubleValue(this$static.bal.innerShift[rootPort.owner.id_0]) - rootPort.pos.y_0 - rootPort.anchor.y_0; - } - this$static.bal.su[this$static.bal.root[left.owner.id_0].id_0] = ($clinit_Boolean() , true); - this$static.bal.su[this$static.bal.root[right.owner.id_0].id_0] = true; - return threshold; - } - return invalid; -} - -function $pickEdge(this$static, pp){ - var e, e$iterator, edges, hasEdges, onlyDummies; - pp.isRoot?(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)):(edges = this$static.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3)?$getIncomingEdges(pp.free):$getOutgoingEdges(pp.free)); - hasEdges = false; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(edges.val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - onlyDummies = $booleanValue(this$static.bal.od[this$static.bal.root[pp.free.id_0].id_0]); - if (!onlyDummies && !$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { - continue; - } - if ($booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0]) || $booleanValue(this$static.bal.su[this$static.bal.root[pp.free.id_0].id_0])) { - continue; - } - hasEdges = true; - if ($contains_6(this$static.blockFinished, this$static.bal.root[$getOther_3(e, pp.free).id_0])) { - pp.hasEdges = true; - pp.edge = e; - return pp; - } - } - pp.hasEdges = hasEdges; - pp.edge = null; - return pp; -} - -function $process_75(this$static, pp){ - var availableSpace, block, delta, edge, fix; - edge = pp.edge; - edge.source.owner == pp.free?(fix = edge.target):(fix = edge.source); - edge.source.owner == pp.free?(block = edge.source):(block = edge.target); - delta = $calculateDelta(this$static.bal, fix, block); - if (delta > 0 && delta < $intern_98) { - availableSpace = $checkSpaceAbove(this$static.bal, block.owner, delta, this$static.ni); - $shiftBlock(this$static.bal, block.owner, -availableSpace); - return availableSpace > 0; - } - else if (delta < 0 && -delta < $intern_98) { - availableSpace = $checkSpaceBelow(this$static.bal, block.owner, -delta, this$static.ni); - $shiftBlock(this$static.bal, block.owner, availableSpace); - return availableSpace > 0; - } - return false; -} - -function ThresholdStrategy$SimpleThresholdStrategy(){ - ThresholdStrategy.call(this); -} - -defineClass(1764, 808, {}, ThresholdStrategy$SimpleThresholdStrategy); -_.calculateThreshold = function calculateThreshold_0(oldThresh, blockRoot, currentNode){ - var isLast, isRoot, t; - isRoot = blockRoot == currentNode; - isLast = this.bal.align_0[currentNode.id_0] == blockRoot; - if (!(isRoot || isLast)) { - return oldThresh; - } - t = oldThresh; - if (this.bal.hdir == ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)) { - isRoot && (t = $getBound(this, blockRoot, true)); - !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); - } - else { - isRoot && (t = $getBound(this, blockRoot, true)); - !isNaN(t) && !isFinite(t) && isLast && (t = $getBound(this, currentNode, false)); - } - return t; -} -; -_.postProcess = function postProcess_0(){ - var edge, moved, onlyDummies, pick, pp; - while (this.postProcessablesQueue.size_0 != 0) { - pp = castTo($poll(this.postProcessablesQueue), 579); - pick = $pickEdge(this, pp); - if (!pick.edge) { - continue; - } - edge = pick.edge; - onlyDummies = $booleanValue(this.bal.od[this.bal.root[pp.free.id_0].id_0]); - if (!onlyDummies && !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { - continue; - } - moved = $process_75(this, pp); - moved || $push(this.postProcessablesStack, pp); - } - while (this.postProcessablesStack.arrayList.array.length != 0) { - $process_75(this, castTo($pop(this.postProcessablesStack), 579)); - } -} -; -var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$SimpleThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/SimpleThresholdStrategy', 1764); -function $clinit_EdgeRouterFactory(){ - $clinit_EdgeRouterFactory = emptyMethod; - factoryCache = new EnumMap(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit); -} - -function $create_7(this$static){ - switch (this$static.edgeRoutingStrategy.ordinal) { - case 1: - return new PolylineEdgeRouter; - case 3: - return new SplineEdgeRouter; - default:return new OrthogonalEdgeRouter; - } -} - -function EdgeRouterFactory(){ -} - -function factoryFor(edgeRoutingStrategy){ - $clinit_EdgeRouterFactory(); - var factory; - if (!$containsKey_5(factoryCache, edgeRoutingStrategy)) { - factory = new EdgeRouterFactory; - factory.edgeRoutingStrategy = edgeRoutingStrategy; - $put_8(factoryCache, edgeRoutingStrategy, factory); - } - return castTo($get_14(factoryCache, edgeRoutingStrategy), 635); -} - -defineClass(635, 1, {635:1, 246:1, 234:1}, EdgeRouterFactory); -_.create_1 = function create_17(){ - return $create_7(this); -} -; -_.create_2 = function create_16(){ - return $create_7(this); -} -; -var factoryCache; -var Lorg_eclipse_elk_alg_layered_p5edges_EdgeRouterFactory_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'EdgeRouterFactory', 635); -function $clinit_OrthogonalEdgeRouter(){ - $clinit_OrthogonalEdgeRouter = emptyMethod; - HYPEREDGE_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P4_NODE_PLACEMENT), ($clinit_IntermediateProcessorStrategy() , HYPEREDGE_DUMMY_MERGER)); - INVERTED_PORT_PROCESSING_ADDITIONS = $addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); - NORTH_SOUTH_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); - HIERARCHICAL_PORT_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR), P4_NODE_PLACEMENT, HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR), P5_EDGE_ROUTING, HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER); - SELF_LOOP_PROCESSING_ADDITIONS = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); - HYPERNODE_PROCESSING_ADDITIONS = $addAfter(new LayoutProcessorConfiguration, P5_EDGE_ROUTING, HYPERNODE_PROCESSOR); - CENTER_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); - END_EDGE_LABEL_PROCESSING_ADDITIONS = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); -} - -function $getLayoutProcessorConfiguration_0(graph){ - var configuration, graphProperties; - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - configuration = new LayoutProcessorConfiguration; - if (graphProperties.contains(($clinit_GraphProperties() , HYPEREDGES))) { - $addAll_6(configuration, HYPEREDGE_PROCESSING_ADDITIONS); - $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); - } - if (graphProperties.contains(NON_FREE_PORTS) || $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , FEEDBACK_EDGES_0))))) { - $addAll_6(configuration, INVERTED_PORT_PROCESSING_ADDITIONS); - graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS); - } - graphProperties.contains(EXTERNAL_PORTS) && $addAll_6(configuration, HIERARCHICAL_PORT_PROCESSING_ADDITIONS); - graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS); - graphProperties.contains(HYPERNODES) && $addAll_6(configuration, HYPERNODE_PROCESSING_ADDITIONS); - graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS); - graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS); - return configuration; -} - -function $process_76(layeredGraph, monitor){ - var edgeEdgeSpacing, edgeNodeSpacing, isLeftLayerExternal, isRightLayerExternal, layerIter, leftLayer, leftLayerNodes, nodeNodeSpacing, rightLayer, rightLayerNodes, routingGenerator, routingWidth, slotsCount, startPos, xpos; - $begin(monitor, 'Orthogonal edge routing', 1); - nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); - edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - routingGenerator = new OrthogonalRoutingGenerator(0, edgeEdgeSpacing); - xpos = 0; - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - leftLayer = null; - rightLayer = null; - leftLayerNodes = null; - rightLayerNodes = null; - do { - rightLayer = layerIter.i < layerIter.this$01_0.size_1()?(checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)):null; - rightLayerNodes = !rightLayer?null:rightLayer.nodes; - if (leftLayer) { - placeNodesHorizontally(leftLayer, xpos); - xpos += leftLayer.size_0.x_0; - } - startPos = !leftLayer?xpos:xpos + edgeNodeSpacing; - slotsCount = $routeEdges_0(routingGenerator, layeredGraph, leftLayerNodes, rightLayerNodes, startPos); - isLeftLayerExternal = !leftLayer || all_0(leftLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); - isRightLayerExternal = !rightLayer || all_0(rightLayerNodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); - if (slotsCount > 0) { - routingWidth = (slotsCount - 1) * edgeEdgeSpacing; - !!leftLayer && (routingWidth += edgeNodeSpacing); - !!rightLayer && (routingWidth += edgeNodeSpacing); - routingWidth < nodeNodeSpacing && !isLeftLayerExternal && !isRightLayerExternal && (routingWidth = nodeNodeSpacing); - xpos += routingWidth; - } - else - !isLeftLayerExternal && !isRightLayerExternal && (xpos += nodeNodeSpacing); - leftLayer = rightLayer; - leftLayerNodes = rightLayerNodes; - } - while (rightLayer); - layeredGraph.size_0.x_0 = xpos; - $done_0(monitor); -} - -function OrthogonalEdgeRouter(){ - $clinit_OrthogonalEdgeRouter(); -} - -defineClass(1458, 1, $intern_113, OrthogonalEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_17(graph){ - return $getLayoutProcessorConfiguration_0(castTo(graph, 37)); -} -; -_.process = function process_72(layeredGraph, monitor){ - $process_76(castTo(layeredGraph, 37), monitor); -} -; -var CENTER_EDGE_LABEL_PROCESSING_ADDITIONS, END_EDGE_LABEL_PROCESSING_ADDITIONS, HIERARCHICAL_PORT_PROCESSING_ADDITIONS, HYPEREDGE_PROCESSING_ADDITIONS, HYPERNODE_PROCESSING_ADDITIONS, INVERTED_PORT_PROCESSING_ADDITIONS, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS, SELF_LOOP_PROCESSING_ADDITIONS; -var Lorg_eclipse_elk_alg_layered_p5edges_OrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'OrthogonalEdgeRouter', 1458); -function $clinit_PolylineEdgeRouter(){ - $clinit_PolylineEdgeRouter = emptyMethod; - PRED_EXTERNAL_WEST_OR_EAST_PORT = new PolylineEdgeRouter$1; - BASELINE_PROCESSOR_CONFIGURATION = $addBefore(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , INVERTED_PORT_PROCESSOR)); - NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0 = $addAfter($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); - SELF_LOOP_PROCESSING_ADDITIONS_0 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); - CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); - END_EDGE_LABEL_PROCESSING_ADDITIONS_0 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); -} - -function $addBendPoint(this$static, edge, bendPoint, addJunctionPoint, currPort){ - var jpoint, junctionPoints; - if ((!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || !$equals_9(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [currPort.owner.pos, currPort.pos, currPort.anchor])), bendPoint)) && !$isSelfLoop(edge)) { - edge.source == currPort?$add_0(edge.bendPoints, 0, new KVector_2(bendPoint)):$add_7(edge.bendPoints, new KVector_2(bendPoint)); - if (addJunctionPoint && !$contains_6(this$static.createdJunctionPoints, bendPoint)) { - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); - } - jpoint = new KVector_2(bendPoint); - $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); - $add_6(this$static.createdJunctionPoints, jpoint); - } - } -} - -function $calculateWestInLayerEdgeYDiff(layer){ - var maxYDiff, node, node$iterator, outgoingEdge, outgoingEdge$iterator, sourcePos, targetPos; - maxYDiff = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); - if (layer == outgoingEdge.target.owner.layer && outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { - sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; - targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; - maxYDiff = $wnd.Math.max(maxYDiff, $wnd.Math.abs(targetPos - sourcePos)); - } - } - } - return maxYDiff; -} - -function $getLayoutProcessorConfiguration_1(graph){ - var configuration, graphProperties; - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - configuration = createFrom_0(BASELINE_PROCESSOR_CONFIGURATION); - graphProperties.contains(($clinit_GraphProperties() , NORTH_SOUTH_PORTS)) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0); - graphProperties.contains(SELF_LOOPS) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_0); - graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0); - graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_0); - return configuration; -} - -function $isInLayerDummy_0(node){ - var e, e$iterator; - if (node.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2($getConnectedEdges_0(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 17); - if (!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { - return true; - } - } - } - return false; -} - -function $process_77(this$static, layeredGraph, monitor){ - var edgeSpaceFac, edgeSpacing, externalLayer, layer, layerIter, layerSpacing, maxCurrOutputYDiff, maxVertDiff, node, node$iterator, nodeSpacing, outgoingEdge, outgoingEdge$iterator, slopedEdgeZoneWidth, sourcePos, targetPos, xpos, yDiff; - $begin(monitor, 'Polyline edge routing', 1); - slopedEdgeZoneWidth = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING_POLYLINE_SLOPED_EDGE_ZONE_WIDTH_0)))); - nodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_NODE_NODE_BETWEEN_LAYERS_0))); - edgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); - edgeSpaceFac = $wnd.Math.min(1, edgeSpacing / nodeSpacing); - xpos = 0; - layerSpacing = 0; - if (layeredGraph.layers.array.length != 0) { - yDiff = $calculateWestInLayerEdgeYDiff(castTo($get_11(layeredGraph.layers, 0), 29)); - xpos = 0.4 * edgeSpaceFac * yDiff; - } - layerIter = new AbstractList$ListIteratorImpl(layeredGraph.layers, 0); - while (layerIter.i < layerIter.this$01_0.size_1()) { - layer = (checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29)); - externalLayer = all_0(layer, PRED_EXTERNAL_WEST_OR_EAST_PORT); - externalLayer && xpos > 0 && (xpos -= nodeSpacing); - placeNodesHorizontally(layer, xpos); - maxVertDiff = 0; - for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - maxCurrOutputYDiff = 0; - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 17); - sourcePos = $getAbsoluteAnchor(outgoingEdge.source).y_0; - targetPos = $getAbsoluteAnchor(outgoingEdge.target).y_0; - if (layer == outgoingEdge.target.owner.layer && !$isSelfLoop(outgoingEdge)) { - $processInLayerEdge(outgoingEdge, xpos, 0.4 * edgeSpaceFac * $wnd.Math.abs(sourcePos - targetPos)); - if (outgoingEdge.source.side == ($clinit_PortSide() , WEST_2)) { - sourcePos = 0; - targetPos = 0; - } - } - maxCurrOutputYDiff = $wnd.Math.max(maxCurrOutputYDiff, $wnd.Math.abs(targetPos - sourcePos)); - } - switch (node.type_0.ordinal) { - case 0: - case 4: - case 1: - case 3: - case 5: - $processNode_6(this$static, node, xpos, slopedEdgeZoneWidth); - } - maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrOutputYDiff); - } - if (layerIter.i < layerIter.this$01_0.size_1()) { - yDiff = $calculateWestInLayerEdgeYDiff((checkCriticalElement(layerIter.i < layerIter.this$01_0.size_1()) , castTo(layerIter.this$01_0.get_0(layerIter.last = layerIter.i++), 29))); - maxVertDiff = $wnd.Math.max(maxVertDiff, yDiff); - checkCriticalElement(layerIter.i > 0); - layerIter.this$01.get_0(layerIter.last = --layerIter.i); - } - layerSpacing = 0.4 * edgeSpaceFac * maxVertDiff; - !externalLayer && layerIter.i < layerIter.this$01_0.size_1() && (layerSpacing += nodeSpacing); - xpos += layer.size_0.x_0 + layerSpacing; - } - this$static.createdJunctionPoints.map_0.clear_0(); - layeredGraph.size_0.x_0 = xpos; - $done_0(monitor); -} - -function $processInLayerEdge(edge, layerXPos, edgeSpacing){ - var bendPoint, midY, sourceAnchorY, sourcePort, targetPort; - sourcePort = edge.source; - targetPort = edge.target; - sourceAnchorY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [sourcePort.owner.pos, sourcePort.pos, sourcePort.anchor])).y_0; - midY = (sourceAnchorY + sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0) / 2; - bendPoint = null; - sourcePort.side == ($clinit_PortSide() , EAST_2)?(bendPoint = new KVector_1(layerXPos + sourcePort.owner.layer.size_0.x_0 + edgeSpacing, midY)):(bendPoint = new KVector_1(layerXPos - edgeSpacing, midY)); - $add_0(edge.bendPoints, 0, bendPoint); -} - -function $processNode_6(this$static, node, layerLeftXPos, maxAcceptableXDiff){ - var absolutePortAnchor, addJunctionPoint, bendPoint, correspondingPort, e, e$iterator, layerRightXPos, otherPort, port, port$iterator, xDistance; - layerRightXPos = layerLeftXPos + node.layer.size_0.x_0; - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - absolutePortAnchor = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])); - if (node.type_0 == ($clinit_LNode$NodeType() , NORTH_SOUTH_PORT)) { - correspondingPort = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); - absolutePortAnchor.x_0 = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [correspondingPort.owner.pos, correspondingPort.pos, correspondingPort.anchor])).x_0; - node.pos.x_0 = absolutePortAnchor.x_0; - } - bendPoint = new KVector_1(0, absolutePortAnchor.y_0); - if (port.side == ($clinit_PortSide() , EAST_2)) { - bendPoint.x_0 = layerRightXPos; - } - else if (port.side == WEST_2) { - bendPoint.x_0 = layerLeftXPos; - } - else { - continue; - } - xDistance = $wnd.Math.abs(absolutePortAnchor.x_0 - bendPoint.x_0); - if (xDistance <= maxAcceptableXDiff && !$isInLayerDummy_0(node)) { - continue; - } - addJunctionPoint = port.outgoingEdges.array.length + port.incomingEdges.array.length > 1; - for (e$iterator = new LPort$CombineIter$1(port.connectedEdges); $hasNext_3(e$iterator.firstIterator) || $hasNext_3(e$iterator.secondIterator);) { - e = castTo($hasNext_3(e$iterator.firstIterator)?$next_7(e$iterator.firstIterator):$next_7(e$iterator.secondIterator), 17); - otherPort = e.source == port?e.target:e.source; - $wnd.Math.abs(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [otherPort.owner.pos, otherPort.pos, otherPort.anchor])).y_0 - bendPoint.y_0) > 1 && $addBendPoint(this$static, e, bendPoint, addJunctionPoint, port); - } - } -} - -function PolylineEdgeRouter(){ - $clinit_PolylineEdgeRouter(); - this.createdJunctionPoints = new HashSet; -} - -defineClass(1451, 1, $intern_113, PolylineEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_18(graph){ - return $getLayoutProcessorConfiguration_1(castTo(graph, 37)); -} -; -_.process = function process_73(layeredGraph, monitor){ - $process_77(this, castTo(layeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSOR_CONFIGURATION, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_0, END_EDGE_LABEL_PROCESSING_ADDITIONS_0, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_0, PRED_EXTERNAL_WEST_OR_EAST_PORT, SELF_LOOP_PROCESSING_ADDITIONS_0; -var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter', 1451); -function $apply_18(node){ - var extPortSide; - extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); - return node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (extPortSide == ($clinit_PortSide() , WEST_2) || extPortSide == EAST_2); -} - -function PolylineEdgeRouter$1(){ -} - -defineClass(1452, 1, $intern_89, PolylineEdgeRouter$1); -_.apply_1 = function apply_152(node){ - return $apply_18(castTo(node, 10)); -} -; -_.equals_0 = function equals_161(other){ - return this === other; -} -; -_.test_0 = function test_102(input_0){ - return $apply_18(castTo(input_0, 10)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter/1', 1452); -function computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random){ - var entry, entryIterator, markBase, maxNode, maxOutflow, maxSegments, nextSinkMark, nextSourceMark, node, node$iterator, outflow, segment, segment$iterator, shiftBase, sink, source, unprocessed; - unprocessed = newTreeSet(segments); - maxSegments = new ArrayList; - markBase = segments.array.length; - nextSinkMark = markBase - 1; - nextSourceMark = markBase + 1; - while (unprocessed.map_0.size_0 != 0) { - while (sinks.size_0 != 0) { - sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 112)); - $remove_26(unprocessed.map_0, sink) != null; - sink.mark = nextSinkMark--; - updateNeighbors(sink, sources, sinks, criticalOnly); - } - while (sources.size_0 != 0) { - source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 112)); - $remove_26(unprocessed.map_0, source) != null; - source.mark = nextSourceMark++; - updateNeighbors(source, sources, sinks, criticalOnly); - } - maxOutflow = $intern_42; - for (segment$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(unprocessed.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(segment$iterator.val$entryIterator2.iter);) { - segment = (entry = $next_11(segment$iterator.val$entryIterator2) , castTo(entry.getKey(), 112)); - if (!criticalOnly && segment.criticalOutDepWeight > 0 && segment.criticalInDepWeight <= 0) { - maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxSegments.array[maxSegments.array.length] = segment; - break; - } - outflow = segment.outDepWeight - segment.inDepWeight; - if (outflow >= maxOutflow) { - if (outflow > maxOutflow) { - maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxOutflow = outflow; - } - maxSegments.array[maxSegments.array.length] = segment; - } - } - if (maxSegments.array.length != 0) { - maxNode = castTo($get_11(maxSegments, $nextInt(random, maxSegments.array.length)), 112); - $remove_26(unprocessed.map_0, maxNode) != null; - maxNode.mark = nextSourceMark++; - updateNeighbors(maxNode, sources, sinks, criticalOnly); - maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - } - shiftBase = segments.array.length + 1; - for (node$iterator = new ArrayList$1(segments); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 112); - node.mark < markBase && (node.mark = node.mark + shiftBase); - } -} - -function detectCycles(segments, criticalOnly, random){ - var outDependency, outDependency$iterator, result, sinks, source, source$iterator, sources; - result = new ArrayList; - sources = new LinkedList; - sinks = new LinkedList; - initialize_2(segments, sources, sinks, criticalOnly); - computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random); - for (source$iterator = new ArrayList$1(segments); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 112); - for (outDependency$iterator = new ArrayList$1(source.outgoingSegmentDependencies); outDependency$iterator.i < outDependency$iterator.this$01.array.length;) { - outDependency = castTo($next_7(outDependency$iterator), 129); - (!criticalOnly || outDependency.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) && source.mark > outDependency.target.mark && (result.array[result.array.length] = outDependency , true); - } - } - return result; -} - -function initialize_2(segments, sources, sinks, criticalOnly){ - var criticalInWeight, criticalOutWeight, inWeight, nextMark, outWeight, segment, segment$iterator; - nextMark = -1; - for (segment$iterator = new ArrayList$1(segments); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 112); - segment.mark = nextMark--; - criticalInWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$0$Type), new HyperEdgeCycleDetector$lambda$1$Type)).sum); - criticalOutWeight = toInt_0($collect_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$2$Type), new HyperEdgeCycleDetector$lambda$3$Type)).sum); - inWeight = criticalInWeight; - outWeight = criticalOutWeight; - if (!criticalOnly) { - inWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.incomingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$4$Type)).sum); - outWeight = toInt_0($collect_0($mapToInt(new StreamImpl(null, new Spliterators$IteratorSpliterator(segment.outgoingSegmentDependencies, 16)), new HyperEdgeCycleDetector$lambda$5$Type)).sum); - } - segment.inDepWeight = inWeight; - segment.criticalInDepWeight = criticalInWeight; - segment.outDepWeight = outWeight; - segment.criticalOutDepWeight = criticalOutWeight; - outWeight == 0?($addNode_0(sinks, segment, sinks.tail.prev, sinks.tail) , true):inWeight == 0 && ($addNode_0(sources, segment, sources.tail.prev, sources.tail) , true); - } -} - -function updateNeighbors(node, sources, sinks, criticalOnly){ - var dep, dep$iterator, dep$iterator0, source, target; - for (dep$iterator0 = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator0.i < dep$iterator0.this$01.array.length;) { - dep = castTo($next_7(dep$iterator0), 129); - if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { - target = dep.target; - if (target.mark < 0 && dep.weight > 0) { - $setInWeight(target, target.inDepWeight - dep.weight); - dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalInWeight(target, target.criticalInDepWeight - dep.weight); - target.inDepWeight <= 0 && target.outDepWeight > 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); - } - } - } - for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 129); - if (!criticalOnly || dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) { - source = dep.source; - if (source.mark < 0 && dep.weight > 0) { - $setOutWeight(source, source.outDepWeight - dep.weight); - dep.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL) && $setCriticalOutWeight(source, source.criticalOutDepWeight - dep.weight); - source.outDepWeight <= 0 && source.inDepWeight > 0 && ($addNode_0(sinks, source, sinks.tail.prev, sinks.tail) , true); - } - } - } -} - -function HyperEdgeCycleDetector$lambda$0$Type(){ -} - -defineClass(1809, 1, $intern_39, HyperEdgeCycleDetector$lambda$0$Type); -_.test_0 = function test_103(arg0){ - return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$0$Type', 1809); -function HyperEdgeCycleDetector$lambda$1$Type(){ -} - -defineClass(1810, 1, {}, HyperEdgeCycleDetector$lambda$1$Type); -_.applyAsInt = function applyAsInt(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$1$Type', 1810); -function HyperEdgeCycleDetector$lambda$2$Type(){ -} - -defineClass(1811, 1, $intern_39, HyperEdgeCycleDetector$lambda$2$Type); -_.test_0 = function test_104(arg0){ - return castTo(arg0, 129).type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$2$Type', 1811); -function HyperEdgeCycleDetector$lambda$3$Type(){ -} - -defineClass(1812, 1, {}, HyperEdgeCycleDetector$lambda$3$Type); -_.applyAsInt = function applyAsInt_0(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$3$Type', 1812); -function HyperEdgeCycleDetector$lambda$4$Type(){ -} - -defineClass(1813, 1, {}, HyperEdgeCycleDetector$lambda$4$Type); -_.applyAsInt = function applyAsInt_1(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$4$Type', 1813); -function HyperEdgeCycleDetector$lambda$5$Type(){ -} - -defineClass(1814, 1, {}, HyperEdgeCycleDetector$lambda$5$Type); -_.applyAsInt = function applyAsInt_2(arg0){ - return castTo(arg0, 129).weight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeCycleDetector$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeCycleDetector/lambda$5$Type', 1814); -function $addPortPositions(this$static, port, hyperEdgeSegmentMap){ - var otherPort, otherPort$iterator, portPos; - hyperEdgeSegmentMap.put(port, this$static); - $add_3(this$static.ports, port); - portPos = this$static.routingStrategy.getPortPositionOnHyperNode(port); - port.side == this$static.routingStrategy.getSourcePortSide()?insertSorted(this$static.incomingConnectionCoordinates, portPos):insertSorted(this$static.outgoingConnectionCoordinates, portPos); - $recomputeExtent(this$static); - for (otherPort$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [new LPort$1(port), new LPort$2(port)]))); $hasNext_1(otherPort$iterator);) { - otherPort = castTo($next_0(otherPort$iterator), 11); - hyperEdgeSegmentMap.containsKey(otherPort) || $addPortPositions(this$static, otherPort, hyperEdgeSegmentMap); - } -} - -function $compareTo_17(this$static, other){ - return this$static.mark - other.mark; -} - -function $recomputeExtent(this$static){ - this$static.startPosition = NaN; - this$static.endPosition = NaN; - $recomputeExtent_0(this$static, this$static.incomingConnectionCoordinates); - $recomputeExtent_0(this$static, this$static.outgoingConnectionCoordinates); -} - -function $recomputeExtent_0(this$static, positions){ - if (positions.size_0 != 0) { - isNaN(this$static.startPosition)?(this$static.startPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0)))):(this$static.startPosition = $wnd.Math.min(this$static.startPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.header.next_0.value_0))))); - isNaN(this$static.endPosition)?(this$static.endPosition = $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0)))):(this$static.endPosition = $wnd.Math.max(this$static.endPosition, $doubleValue((checkCriticalElement(positions.size_0 != 0) , castToDouble(positions.tail.prev.value_0))))); - } -} - -function $setCriticalInWeight(this$static, inWeight){ - this$static.criticalInDepWeight = inWeight; -} - -function $setCriticalOutWeight(this$static, outWeight){ - this$static.criticalOutDepWeight = outWeight; -} - -function $setInWeight(this$static, inWeight){ - this$static.inDepWeight = inWeight; -} - -function $setOutWeight(this$static, outWeight){ - this$static.outDepWeight = outWeight; -} - -function $setRoutingSlot_0(this$static, slot){ - this$static.routingSlot = slot; -} - -function $setSplitPartner(this$static, splitPartner){ - this$static.splitPartner = splitPartner; -} - -function $splitAt(this$static, splitPosition){ - this$static.splitPartner = new HyperEdgeSegment(this$static.routingStrategy); - $setSplitPartner(this$static.splitPartner, this$static); - $addAll(this$static.splitPartner.outgoingConnectionCoordinates, this$static.outgoingConnectionCoordinates); - $reset_0(this$static.outgoingConnectionCoordinates); - $add_7(this$static.outgoingConnectionCoordinates, splitPosition); - $add_7(this$static.splitPartner.incomingConnectionCoordinates, splitPosition); - $recomputeExtent(this$static); - $recomputeExtent(this$static.splitPartner); - while (this$static.incomingSegmentDependencies.array.length != 0) { - $remove_31(castTo($get_11(this$static.incomingSegmentDependencies, 0), 129)); - } - while (this$static.outgoingSegmentDependencies.array.length != 0) { - $remove_31(castTo($get_11(this$static.outgoingSegmentDependencies, 0), 129)); - } - return this$static.splitPartner; -} - -function HyperEdgeSegment(routingStrategy){ - this.ports = new ArrayList; - this.incomingConnectionCoordinates = new LinkedList; - this.outgoingConnectionCoordinates = new LinkedList; - this.outgoingSegmentDependencies = new ArrayList; - this.incomingSegmentDependencies = new ArrayList; - this.routingStrategy = routingStrategy; -} - -function insertSorted(list, value_0){ - var listIter, next; - listIter = $listIterator_2(list, 0); - while (listIter.currentNode != listIter.this$01.tail) { - next = $floatValue(castToDouble($next_10(listIter))); - if (next == value_0) { - return; - } - else if (next > value_0) { - $previous_0(listIter); - break; - } - } - $add_8(listIter, value_0); -} - -defineClass(112, 1, {35:1, 112:1}, HyperEdgeSegment); -_.compareTo_0 = function compareTo_18(other){ - return $compareTo_17(this, castTo(other, 112)); -} -; -_.equals_0 = function equals_162(object){ - var other; - if (instanceOf(object, 112)) { - other = castTo(object, 112); - return this.mark == other.mark; - } - return false; -} -; -_.hashCode_1 = function hashCode_63(){ - return this.mark; -} -; -_.toString_0 = function toString_104(){ - var builder, name_0, port, portIter; - builder = new StringBuilder_1('{'); - portIter = new ArrayList$1(this.ports); - while (portIter.i < portIter.this$01.array.length) { - port = castTo($next_7(portIter), 11); - name_0 = $getDesignation_2(port.owner); - name_0 == null && (name_0 = 'n' + $getIndex(port.owner)); - builder.string += '' + name_0; - portIter.i < portIter.this$01.array.length && (builder.string += ',' , builder); - } - builder.string += '}'; - return builder.string; -} -; -_.criticalInDepWeight = 0; -_.criticalOutDepWeight = 0; -_.endPosition = NaN; -_.inDepWeight = 0; -_.mark = 0; -_.outDepWeight = 0; -_.routingSlot = 0; -_.startPosition = NaN; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegment', 112); -function $remove_31(this$static){ - $setSource_1(this$static, null); - $setTarget_1(this$static, null); -} - -function $setSource_1(this$static, newSource){ - !!this$static.source && $remove_12(this$static.source.outgoingSegmentDependencies, this$static); - this$static.source = newSource; - !!this$static.source && $add_3(this$static.source.outgoingSegmentDependencies, this$static); -} - -function $setTarget_1(this$static, newTarget){ - !!this$static.target && $remove_12(this$static.target.incomingSegmentDependencies, this$static); - this$static.target = newTarget; - !!this$static.target && $add_3(this$static.target.incomingSegmentDependencies, this$static); -} - -function HyperEdgeSegmentDependency(type_0, source, target, weight){ - this.type_0 = type_0; - this.weight = weight; - $setSource_1(this, source); - $setTarget_1(this, target); -} - -defineClass(129, 1, {129:1}, HyperEdgeSegmentDependency); -_.toString_0 = function toString_105(){ - return this.source + '->' + this.target + ' (' + $name(this.type_0) + ')'; -} -; -_.weight = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency', 129); -function $clinit_HyperEdgeSegmentDependency$DependencyType(){ - $clinit_HyperEdgeSegmentDependency$DependencyType = emptyMethod; - REGULAR = new HyperEdgeSegmentDependency$DependencyType('REGULAR', 0); - CRITICAL = new HyperEdgeSegmentDependency$DependencyType('CRITICAL', 1); -} - -function HyperEdgeSegmentDependency$DependencyType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_71(name_0){ - $clinit_HyperEdgeSegmentDependency$DependencyType(); - return valueOf(($clinit_HyperEdgeSegmentDependency$DependencyType$Map() , $MAP_59), name_0); -} - -function values_77(){ - $clinit_HyperEdgeSegmentDependency$DependencyType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]); -} - -defineClass(520, 22, {3:1, 35:1, 22:1, 520:1}, HyperEdgeSegmentDependency$DependencyType); -var CRITICAL, REGULAR; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentDependency/DependencyType', 520, Ljava_lang_Enum_2_classLit, values_77, valueOf_71); -function $clinit_HyperEdgeSegmentDependency$DependencyType$Map(){ - $clinit_HyperEdgeSegmentDependency$DependencyType$Map = emptyMethod; - $MAP_59 = createValueOfMap(($clinit_HyperEdgeSegmentDependency$DependencyType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentDependency$DependencyType_2_classLit, 1), $intern_36, 520, 0, [REGULAR, CRITICAL]))); -} - -var $MAP_59; -function $chooseBestAreaIndex(segment, freeAreas, fromIndex, toIndex){ - var bestArea, bestAreaIndex, bestRating, currArea, currRating, i, splitPartner, splitSegment, splitSegments, newSplit, newSplitPartner; - bestAreaIndex = fromIndex; - if (fromIndex < toIndex) { - splitSegments = (newSplit = new HyperEdgeSegment(segment.routingStrategy) , newSplitPartner = new HyperEdgeSegment(segment.routingStrategy) , $addAll(newSplit.incomingConnectionCoordinates, segment.incomingConnectionCoordinates) , newSplit.splitBy = segment.splitBy , newSplit.splitPartner = newSplitPartner , $recomputeExtent(newSplit) , $addAll(newSplitPartner.outgoingConnectionCoordinates, segment.outgoingConnectionCoordinates) , newSplitPartner.splitPartner = newSplit , $recomputeExtent(newSplitPartner) , new Pair(newSplit, newSplitPartner)); - splitSegment = castTo(splitSegments.first, 112); - splitPartner = castTo(splitSegments.second, 112); - bestArea = (checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329)); - bestRating = $rateArea(segment, splitSegment, splitPartner, bestArea); - for (i = fromIndex + 1; i <= toIndex; i++) { - currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); - currRating = $rateArea(segment, splitSegment, splitPartner, currArea); - if ($isBetter(currArea, currRating, bestArea, bestRating)) { - bestArea = currArea; - bestRating = currRating; - } - } - } - return bestAreaIndex; -} - -function $computePositionToSplitAndUpdateFreeAreas(segment, freeAreas, criticalConflictThreshold){ - var bestAreaIndex, currArea, firstPossibleAreaIndex, i, lastPossibleAreaIndex, splitPosition; - firstPossibleAreaIndex = -1; - lastPossibleAreaIndex = -1; - for (i = 0; i < freeAreas.array.length; i++) { - currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); - if (currArea.startPosition > segment.endPosition) { - break; - } - else if (currArea.endPosition >= segment.startPosition) { - firstPossibleAreaIndex < 0 && (firstPossibleAreaIndex = i); - lastPossibleAreaIndex = i; - } - } - splitPosition = (segment.startPosition + segment.endPosition) / 2; - if (firstPossibleAreaIndex >= 0) { - bestAreaIndex = $chooseBestAreaIndex(segment, freeAreas, firstPossibleAreaIndex, lastPossibleAreaIndex); - splitPosition = center_0((checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329))); - $useArea(freeAreas, bestAreaIndex, criticalConflictThreshold); - } - return splitPosition; -} - -function $countCrossingsForSingleOrdering(left, right){ - return countCrossings(left.outgoingConnectionCoordinates, right.startPosition, right.endPosition) + countCrossings(right.incomingConnectionCoordinates, left.startPosition, left.endPosition); -} - -function $decideWhichSegmentsToSplit(dependencies){ - var dependency, dependency$iterator, segmentCausingSplit, segmentToSplit, segmentsToSplit, sourceSegment, targetSegment; - segmentsToSplit = new LinkedHashSet; - for (dependency$iterator = new ArrayList$1(dependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator), 129); - sourceSegment = dependency.source; - targetSegment = dependency.target; - if (segmentsToSplit.map_0.containsKey(sourceSegment) || segmentsToSplit.map_0.containsKey(targetSegment)) { - continue; - } - segmentToSplit = sourceSegment; - segmentCausingSplit = targetSegment; - if (sourceSegment.incomingConnectionCoordinates.size_0 + sourceSegment.outgoingConnectionCoordinates.size_0 > 2 && targetSegment.incomingConnectionCoordinates.size_0 + targetSegment.outgoingConnectionCoordinates.size_0 <= 2) { - segmentToSplit = targetSegment; - segmentCausingSplit = sourceSegment; - } - segmentsToSplit.map_0.put(segmentToSplit, segmentsToSplit); - segmentToSplit.splitBy = segmentCausingSplit; - } - return segmentsToSplit; -} - -function $findFreeAreas(segments, criticalConflictThreshold){ - var freeAreas, i, inCoordinates, outCoordinates, sortedCoordinates; - freeAreas = new ArrayList; - inCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$2$Type); - outCoordinates = $flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(segments, 16)), new HyperEdgeSegmentSplitter$lambda$3$Type); - sortedCoordinates = $toArray_6($sorted($mapToDouble(concat_1(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Stream_2_classLit, 1), $intern_2, 833, 0, [inCoordinates, outCoordinates])), new HyperEdgeSegmentSplitter$lambda$4$Type))); - for (i = 1; i < sortedCoordinates.length; i++) { - sortedCoordinates[i] - sortedCoordinates[i - 1] >= 2 * criticalConflictThreshold && $add_3(freeAreas, new HyperEdgeSegmentSplitter$FreeArea(sortedCoordinates[i - 1] + criticalConflictThreshold, sortedCoordinates[i] - criticalConflictThreshold)); - } - return freeAreas; -} - -function $isBetter(currArea, currRating, bestArea, bestRating){ - if (currRating.crossings < bestRating.crossings) { - return true; - } - else if (currRating.crossings == bestRating.crossings) { - if (currRating.dependencies < bestRating.dependencies) { - return true; - } - else if (currRating.dependencies == bestRating.dependencies) { - if (currArea.size_0 > bestArea.size_0) { - return true; - } - } - } - return false; -} - -function $lambda$1_5(this$static, segments_1, freeAreas_2, criticalConflictThreshold_3, segment_3){ - var splitPosition; - splitPosition = $computePositionToSplitAndUpdateFreeAreas(segment_3, freeAreas_2, criticalConflictThreshold_3); - $add_3(segments_1, $splitAt(segment_3, splitPosition)); - $updateDependencies(this$static, segment_3, segments_1); -} - -function $rateArea(segment, splitSegment, splitPartner, area){ - var areaCentre, dependency, dependency$iterator, dependency$iterator0, otherSegment, rating; - areaCentre = (area.startPosition + area.endPosition) / 2; - $reset_0(splitSegment.outgoingConnectionCoordinates); - $add_7(splitSegment.outgoingConnectionCoordinates, areaCentre); - $reset_0(splitPartner.incomingConnectionCoordinates); - $add_7(splitPartner.incomingConnectionCoordinates, areaCentre); - rating = new HyperEdgeSegmentSplitter$AreaRating; - for (dependency$iterator0 = new ArrayList$1(segment.incomingSegmentDependencies); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator0), 129); - otherSegment = dependency.source; - $updateConsideringBothOrderings(rating, splitSegment, otherSegment); - $updateConsideringBothOrderings(rating, splitPartner, otherSegment); - } - for (dependency$iterator = new ArrayList$1(segment.outgoingSegmentDependencies); dependency$iterator.i < dependency$iterator.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator), 129); - otherSegment = dependency.target; - $updateConsideringBothOrderings(rating, splitSegment, otherSegment); - $updateConsideringBothOrderings(rating, splitPartner, otherSegment); - } - rating.dependencies += 2; - rating.crossings += $countCrossingsForSingleOrdering(splitSegment, segment.splitBy); - rating.crossings += $countCrossingsForSingleOrdering(segment.splitBy, splitPartner); - return rating; -} - -function $splitSegments(this$static, dependenciesToResolve, segments, criticalConflictThreshold){ - var freeAreas, segmentsToSplit; - if (dependenciesToResolve.array.length == 0) { - return; - } - freeAreas = $findFreeAreas(segments, criticalConflictThreshold); - segmentsToSplit = $decideWhichSegmentsToSplit(dependenciesToResolve); - $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(segmentsToSplit, 1)), new HyperEdgeSegmentSplitter$lambda$0$Type), new HyperEdgeSegmentSplitter$lambda$1$Type(this$static, segments, freeAreas, criticalConflictThreshold)); -} - -function $updateConsideringBothOrderings(rating, s1, s2){ - var crossingsS1LeftOfS2, crossingsS2LeftOfS1; - crossingsS1LeftOfS2 = countCrossings(s1.outgoingConnectionCoordinates, s2.startPosition, s2.endPosition) + countCrossings(s2.incomingConnectionCoordinates, s1.startPosition, s1.endPosition); - crossingsS2LeftOfS1 = countCrossings(s2.outgoingConnectionCoordinates, s1.startPosition, s1.endPosition) + countCrossings(s1.incomingConnectionCoordinates, s2.startPosition, s2.endPosition); - if (crossingsS1LeftOfS2 == crossingsS2LeftOfS1) { - if (crossingsS1LeftOfS2 > 0) { - rating.dependencies += 2; - rating.crossings += crossingsS1LeftOfS2; - } - } - else { - rating.dependencies += 1; - rating.crossings += $wnd.Math.min(crossingsS1LeftOfS2, crossingsS2LeftOfS1); - } -} - -function $updateDependencies(this$static, segment, segments){ - var otherSegment, otherSegment$iterator, splitCausingSegment, splitPartner; - splitCausingSegment = segment.splitBy; - splitPartner = segment.splitPartner; - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), segment, splitCausingSegment, 1); - new HyperEdgeSegmentDependency(CRITICAL, splitCausingSegment, splitPartner, 1); - for (otherSegment$iterator = new ArrayList$1(segments); otherSegment$iterator.i < otherSegment$iterator.this$01.array.length;) { - otherSegment = castTo($next_7(otherSegment$iterator), 112); - if (otherSegment != splitCausingSegment && otherSegment != segment && otherSegment != splitPartner) { - $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, segment); - $createDependencyIfNecessary(this$static.routingGenerator, otherSegment, splitPartner); - } - } -} - -function $useArea(freeAreas, usedAreaIndex, criticalConflictThreshold){ - var insertIndex, newArea1, newArea2, newEnd1, newStart2, oldArea, oldAreaCentre; - oldArea = (checkCriticalElementIndex(usedAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[usedAreaIndex], 329)); - $remove_11(freeAreas, usedAreaIndex); - if (oldArea.size_0 / 2 >= criticalConflictThreshold) { - insertIndex = usedAreaIndex; - oldAreaCentre = (oldArea.startPosition + oldArea.endPosition) / 2; - newEnd1 = oldAreaCentre - criticalConflictThreshold; - if (oldArea.startPosition <= oldAreaCentre - criticalConflictThreshold) { - newArea1 = new HyperEdgeSegmentSplitter$FreeArea(oldArea.startPosition, newEnd1); - $add_2(freeAreas, insertIndex++, newArea1); - } - newStart2 = oldAreaCentre + criticalConflictThreshold; - if (newStart2 <= oldArea.endPosition) { - newArea2 = new HyperEdgeSegmentSplitter$FreeArea(newStart2, oldArea.endPosition); - checkCriticalPositionIndex(insertIndex, freeAreas.array.length); - insertTo(freeAreas.array, insertIndex, newArea2); - } - } -} - -function HyperEdgeSegmentSplitter(routingGenerator){ - this.routingGenerator = routingGenerator; -} - -function center_0(a){ - return (a.startPosition + a.endPosition) / 2; -} - -function lambda$0_29(hes1_0, hes2_1){ - return compare_4(hes1_0.endPosition - hes1_0.startPosition, hes2_1.endPosition - hes2_1.startPosition); -} - -defineClass(1815, 1, {}, HyperEdgeSegmentSplitter); -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter', 1815); -function HyperEdgeSegmentSplitter$AreaRating(){ - this.dependencies = 0; - this.crossings = 0; -} - -defineClass(1816, 1, {}, HyperEdgeSegmentSplitter$AreaRating); -_.crossings = 0; -_.dependencies = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$AreaRating_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/AreaRating', 1816); -function HyperEdgeSegmentSplitter$FreeArea(startPosition, endPosition){ - this.startPosition = startPosition; - this.endPosition = endPosition; - this.size_0 = endPosition - startPosition; -} - -defineClass(329, 1, {329:1}, HyperEdgeSegmentSplitter$FreeArea); -_.endPosition = 0; -_.size_0 = 0; -_.startPosition = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$FreeArea_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/FreeArea', 329); -function HyperEdgeSegmentSplitter$lambda$0$Type(){ -} - -defineClass(1817, 1, $intern_88, HyperEdgeSegmentSplitter$lambda$0$Type); -_.compare_1 = function compare_76(arg0, arg1){ - return lambda$0_29(castTo(arg0, 112), castTo(arg1, 112)); -} -; -_.equals_0 = function equals_163(other){ - return this === other; -} -; -_.reversed = function reversed_68(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$0$Type', 1817); -function HyperEdgeSegmentSplitter$lambda$1$Type($$outer_0, segments_1, freeAreas_2, criticalConflictThreshold_3){ - this.$$outer_0 = $$outer_0; - this.segments_1 = segments_1; - this.freeAreas_2 = freeAreas_2; - this.criticalConflictThreshold_3 = criticalConflictThreshold_3; -} - -defineClass(1818, 1, $intern_19, HyperEdgeSegmentSplitter$lambda$1$Type); -_.accept = function accept_129(arg0){ - $lambda$1_5(this.$$outer_0, this.segments_1, this.freeAreas_2, this.criticalConflictThreshold_3, castTo(arg0, 112)); -} -; -_.criticalConflictThreshold_3 = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$1$Type', 1818); -function HyperEdgeSegmentSplitter$lambda$2$Type(){ -} - -defineClass(1819, 1, {}, HyperEdgeSegmentSplitter$lambda$2$Type); -_.apply_0 = function apply_153(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$2$Type', 1819); -function HyperEdgeSegmentSplitter$lambda$3$Type(){ -} - -defineClass(1820, 1, {}, HyperEdgeSegmentSplitter$lambda$3$Type); -_.apply_0 = function apply_154(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$3$Type', 1820); -function HyperEdgeSegmentSplitter$lambda$4$Type(){ -} - -defineClass(1821, 1, {}, HyperEdgeSegmentSplitter$lambda$4$Type); -_.applyAsDouble = function applyAsDouble_3(arg0){ - return $doubleValue(castToDouble(arg0)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter/lambda$4$Type', 1821); -function $countConflicts(this$static, posis1, posis2){ - var conflicts, hasMore, iter1, iter2, pos1, pos2; - conflicts = 0; - if (posis1.size_0 != 0 && posis2.size_0 != 0) { - iter1 = $listIterator_2(posis1, 0); - iter2 = $listIterator_2(posis2, 0); - pos1 = $doubleValue(castToDouble($next_10(iter1))); - pos2 = $doubleValue(castToDouble($next_10(iter2))); - hasMore = true; - do { - if (pos1 > pos2 - this$static.criticalConflictThreshold && pos1 < pos2 + this$static.criticalConflictThreshold) { - return -1; - } - else - pos1 > pos2 - this$static.conflictThreshold && pos1 < pos2 + this$static.conflictThreshold && ++conflicts; - pos1 <= pos2 && iter1.currentNode != iter1.this$01.tail?(pos1 = $doubleValue(castToDouble($next_10(iter1)))):pos2 <= pos1 && iter2.currentNode != iter2.this$01.tail?(pos2 = $doubleValue(castToDouble($next_10(iter2)))):(hasMore = false); - } - while (hasMore); - } - return conflicts; -} - -function $createDependencyIfNecessary(this$static, he1, he2){ - var conflicts1, conflicts2, criticalConflictsDetected, criticalDependencyCount, crossings1, crossings2, depValue1, depValue2; - if ($wnd.Math.abs(he1.startPosition - he1.endPosition) < $intern_101 || $wnd.Math.abs(he2.startPosition - he2.endPosition) < $intern_101) { - return 0; - } - conflicts1 = $countConflicts(this$static, he1.outgoingConnectionCoordinates, he2.incomingConnectionCoordinates); - conflicts2 = $countConflicts(this$static, he2.outgoingConnectionCoordinates, he1.incomingConnectionCoordinates); - criticalConflictsDetected = conflicts1 == -1 || conflicts2 == -1; - criticalDependencyCount = 0; - if (criticalConflictsDetected) { - if (conflicts1 == -1) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he2, he1, 1); - ++criticalDependencyCount; - } - if (conflicts2 == -1) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL), he1, he2, 1); - ++criticalDependencyCount; - } - } - else { - crossings1 = countCrossings(he1.outgoingConnectionCoordinates, he2.startPosition, he2.endPosition); - crossings1 += countCrossings(he2.incomingConnectionCoordinates, he1.startPosition, he1.endPosition); - crossings2 = countCrossings(he2.outgoingConnectionCoordinates, he1.startPosition, he1.endPosition); - crossings2 += countCrossings(he1.incomingConnectionCoordinates, he2.startPosition, he2.endPosition); - depValue1 = conflicts1 + 16 * crossings1; - depValue2 = conflicts2 + 16 * crossings2; - if (depValue1 < depValue2) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, depValue2 - depValue1); - } - else if (depValue1 > depValue2) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he2, he1, depValue1 - depValue2); - } - else if (depValue1 > 0 && depValue2 > 0) { - new HyperEdgeSegmentDependency(($clinit_HyperEdgeSegmentDependency$DependencyType() , REGULAR), he1, he2, 0); - new HyperEdgeSegmentDependency(REGULAR, he2, he1, 0); - } - } - return criticalDependencyCount; -} - -function $createHyperEdgeSegments(this$static, nodes, portSide, hyperEdges, portToHyperEdgeSegmentMap){ - var hyperEdge, node, node$iterator, port, port$iterator; - if (nodes) { - for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 10); - for (port$iterator = $getPorts_0(node, ($clinit_PortType() , OUTPUT), portSide).iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - hyperEdge = castTo(getEntryValueOrNull($getEntry_0(portToHyperEdgeSegmentMap.hashCodeMap, port)), 112); - if (!hyperEdge) { - hyperEdge = new HyperEdgeSegment(this$static.routingStrategy); - hyperEdges.array[hyperEdges.array.length] = hyperEdge; - $addPortPositions(hyperEdge, port, portToHyperEdgeSegmentMap); - } - } - } - } -} - -function $minimumDifference(numberStream){ - var currentNumber, iter, minDifference, numbers, previousNumber; - numbers = castTo($collect_1($distinct($sorted_0(numberStream)), of_4(new Collectors$21methodref$ctor$Type, new Collectors$20methodref$add$Type, new Collectors$lambda$42$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); - minDifference = $intern_98; - if (numbers.size_1() >= 2) { - iter = numbers.iterator_0(); - currentNumber = castToDouble(iter.next_1()); - while (iter.hasNext_0()) { - previousNumber = currentNumber; - currentNumber = castToDouble(iter.next_1()); - minDifference = $wnd.Math.min(minDifference, (checkCriticalNotNull(currentNumber) , currentNumber) - (checkCriticalNotNull(previousNumber) , previousNumber)); - } - } - return minDifference; -} - -function $routeEdges_0(this$static, layeredGraph, sourceLayerNodes, targetLayerNodes, startPos){ - var criticalDependencyCount, edgeSegments, firstIdx, firstSegment, node, node$iterator, portToEdgeSegmentMap, random, rankCount, secondIdx, minIncomingDistance, minOutgoingDistance, cycleDependencies; - portToEdgeSegmentMap = new HashMap; - edgeSegments = new ArrayList; - $createHyperEdgeSegments(this$static, sourceLayerNodes, this$static.routingStrategy.getSourcePortSide(), edgeSegments, portToEdgeSegmentMap); - $createHyperEdgeSegments(this$static, targetLayerNodes, this$static.routingStrategy.getTargetPortSide(), edgeSegments, portToEdgeSegmentMap); - this$static.criticalConflictThreshold = 0.2 * (minIncomingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$0$Type)) , minOutgoingDistance = $minimumDifference($flatMap(new StreamImpl(null, new Spliterators$IteratorSpliterator(edgeSegments, 16)), new OrthogonalRoutingGenerator$lambda$1$Type)) , $wnd.Math.min(minIncomingDistance, minOutgoingDistance)); - criticalDependencyCount = 0; - for (firstIdx = 0; firstIdx < edgeSegments.array.length - 1; firstIdx++) { - firstSegment = (checkCriticalElementIndex(firstIdx, edgeSegments.array.length) , castTo(edgeSegments.array[firstIdx], 112)); - for (secondIdx = firstIdx + 1; secondIdx < edgeSegments.array.length; secondIdx++) { - criticalDependencyCount += $createDependencyIfNecessary(this$static, firstSegment, (checkCriticalElementIndex(secondIdx, edgeSegments.array.length) , castTo(edgeSegments.array[secondIdx], 112))); - } - } - random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); - criticalDependencyCount >= 2 && (cycleDependencies = detectCycles(edgeSegments, true, random) , !this$static.segmentSplitter && (this$static.segmentSplitter = new HyperEdgeSegmentSplitter(this$static)) , $splitSegments(this$static.segmentSplitter, cycleDependencies, edgeSegments, this$static.criticalConflictThreshold) , undefined); - breakNonCriticalCycles(edgeSegments, random); - topologicalNumbering(edgeSegments); - rankCount = -1; - for (node$iterator = new ArrayList$1(edgeSegments); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 112); - if ($wnd.Math.abs(node.startPosition - node.endPosition) < $intern_101) { - continue; - } - rankCount = $wnd.Math.max(rankCount, node.routingSlot); - this$static.routingStrategy.calculateBendPoints(node, startPos, this$static.edgeSpacing); - } - this$static.routingStrategy.createdJunctionPoints.map_0.clear_0(); - return rankCount + 1; -} - -function OrthogonalRoutingGenerator(direction, edgeSpacing){ - this.routingStrategy = forRoutingDirection(direction); - this.edgeSpacing = edgeSpacing; - this.conflictThreshold = 0.5 * edgeSpacing; -} - -function breakNonCriticalCycles(edgeSegments, random){ - var cycleDependencies, cycleDependency, cycleDependency$iterator, oldSource, oldTarget; - cycleDependencies = detectCycles(edgeSegments, false, random); - for (cycleDependency$iterator = new ArrayList$1(cycleDependencies); cycleDependency$iterator.i < cycleDependency$iterator.this$01.array.length;) { - cycleDependency = castTo($next_7(cycleDependency$iterator), 129); - cycleDependency.weight == 0?($setSource_1(cycleDependency, null) , $setTarget_1(cycleDependency, null)):(oldSource = cycleDependency.source , oldTarget = cycleDependency.target , $setSource_1(cycleDependency, oldTarget) , $setTarget_1(cycleDependency, oldSource) , undefined); - } -} - -function countCrossings(posis, start_0, end){ - var crossings, pos, pos$iterator; - crossings = 0; - for (pos$iterator = $listIterator_2(posis, 0); pos$iterator.currentNode != pos$iterator.this$01.tail;) { - pos = $doubleValue(castToDouble($next_10(pos$iterator))); - if (pos > end) { - break; - } - else - pos >= start_0 && ++crossings; - } - return crossings; -} - -function topologicalNumbering(segments){ - var dep, dep$iterator, maxRank, node, node$iterator, node$iterator0, rightwardTargets, source, sources, target; - sources = new ArrayList; - rightwardTargets = new ArrayList; - for (node$iterator0 = new ArrayList$1(segments); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 112); - $setInWeight(node, node.incomingSegmentDependencies.array.length); - $setOutWeight(node, node.outgoingSegmentDependencies.array.length); - node.inDepWeight == 0 && (sources.array[sources.array.length] = node , true); - node.outDepWeight == 0 && node.incomingConnectionCoordinates.size_0 == 0 && (rightwardTargets.array[rightwardTargets.array.length] = node , true); - } - maxRank = -1; - while (sources.array.length != 0) { - node = castTo($remove_11(sources, 0), 112); - for (dep$iterator = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 129); - target = dep.target; - $setRoutingSlot_0(target, $wnd.Math.max(target.routingSlot, node.routingSlot + 1)); - maxRank = $wnd.Math.max(maxRank, target.routingSlot); - $setInWeight(target, target.inDepWeight - 1); - target.inDepWeight == 0 && (sources.array[sources.array.length] = target , true); - } - } - if (maxRank > -1) { - for (node$iterator = new ArrayList$1(rightwardTargets); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 112); - node.routingSlot = maxRank; - } - while (rightwardTargets.array.length != 0) { - node = castTo($remove_11(rightwardTargets, 0), 112); - for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 129); - source = dep.source; - if (source.incomingConnectionCoordinates.size_0 > 0) { - continue; - } - $setRoutingSlot_0(source, $wnd.Math.min(source.routingSlot, node.routingSlot - 1)); - $setOutWeight(source, source.outDepWeight - 1); - source.outDepWeight == 0 && (rightwardTargets.array[rightwardTargets.array.length] = source , true); - } - } - } -} - -defineClass(655, 1, {}, OrthogonalRoutingGenerator); -_.conflictThreshold = 0; -_.criticalConflictThreshold = 0; -_.edgeSpacing = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator', 655); -function OrthogonalRoutingGenerator$lambda$0$Type(){ -} - -defineClass(1638, 1, {}, OrthogonalRoutingGenerator$lambda$0$Type); -_.apply_0 = function apply_155(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).incomingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$0$Type', 1638); -function OrthogonalRoutingGenerator$lambda$1$Type(){ -} - -defineClass(1639, 1, {}, OrthogonalRoutingGenerator$lambda$1$Type); -_.apply_0 = function apply_156(arg0){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).outgoingConnectionCoordinates, 16)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_OrthogonalRoutingGenerator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'OrthogonalRoutingGenerator/lambda$1$Type', 1639); -function $addJunctionPointIfNecessary(this$static, edge, segment, pos, vertical){ - var jpoint, junctionPoints, p, pointAtSegmentBoundary, pointInsideEdgeSegment; - p = vertical?pos.y_0:pos.x_0; - if ($contains_6(this$static.createdJunctionPoints, pos)) { - return; - } - pointInsideEdgeSegment = p > segment.startPosition && p < segment.endPosition; - pointAtSegmentBoundary = false; - if (segment.incomingConnectionCoordinates.size_0 != 0 && segment.outgoingConnectionCoordinates.size_0 != 0) { - pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getFirst(segment.outgoingConnectionCoordinates)))) < $intern_101); - pointAtSegmentBoundary = pointAtSegmentBoundary | ($wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.incomingConnectionCoordinates)))) < $intern_101 && $wnd.Math.abs(p - $doubleValue(castToDouble($getLast(segment.outgoingConnectionCoordinates)))) < $intern_101); - } - if (pointInsideEdgeSegment || pointAtSegmentBoundary) { - junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); - if (!junctionPoints) { - junctionPoints = new KVectorChain; - $setProperty_0(edge, JUNCTION_POINTS, junctionPoints); - } - jpoint = new KVector_2(pos); - $addNode_0(junctionPoints, jpoint, junctionPoints.tail.prev, junctionPoints.tail); - $add_6(this$static.createdJunctionPoints, jpoint); - } -} - -function BaseRoutingDirectionStrategy(){ - this.createdJunctionPoints = new HashSet; -} - -function forRoutingDirection(direction){ - switch (direction) { - case 0: - return new WestToEastRoutingStrategy; - case 1: - return new NorthToSouthRoutingStrategy; - case 2: - return new SouthToNorthRoutingStrategy; - default:throw toJs(new IllegalArgumentException); - } -} - -defineClass(661, 1, {}); -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_BaseRoutingDirectionStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'BaseRoutingDirectionStrategy', 661); -function NorthToSouthRoutingStrategy(){ - BaseRoutingDirectionStrategy.call(this); -} - -defineClass(1807, 661, {}, NorthToSouthRoutingStrategy); -_.calculateBendPoints = function calculateBendPoints(segment, startPos, edgeSpacing){ - var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; - if (!!segment.splitPartner && !segment.splitBy) { - return; - } - segmentY = startPos + segment.routingSlot * edgeSpacing; - for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge)) { - target = edge.target; - targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; - if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { - currentY = segmentY; - currentSegment = segment; - bend = new KVector_1(sourceX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - splitPartner = segment.splitPartner; - if (splitPartner) { - splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - currentY = startPos + splitPartner.routingSlot * edgeSpacing; - currentSegment = splitPartner; - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - bend = new KVector_1(targetX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - } - } - } -} -; -_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode(port){ - return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; -} -; -_.getSourcePortSide = function getSourcePortSide(){ - return $clinit_PortSide() , SOUTH_2; -} -; -_.getTargetPortSide = function getTargetPortSide(){ - return $clinit_PortSide() , NORTH_3; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_NorthToSouthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'NorthToSouthRoutingStrategy', 1807); -function SouthToNorthRoutingStrategy(){ - BaseRoutingDirectionStrategy.call(this); -} - -defineClass(1808, 661, {}, SouthToNorthRoutingStrategy); -_.calculateBendPoints = function calculateBendPoints_0(segment, startPos, edgeSpacing){ - var bend, currentSegment, currentY, edge, edge$iterator, port, port$iterator, segmentY, sourceX, splitPartner, splitX, target, targetX; - if (!!segment.splitPartner && !segment.splitBy) { - return; - } - segmentY = startPos - segment.routingSlot * edgeSpacing; - for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - sourceX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).x_0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge)) { - target = edge.target; - targetX = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).x_0; - if ($wnd.Math.abs(sourceX - targetX) > $intern_101) { - currentY = segmentY; - currentSegment = segment; - bend = new KVector_1(sourceX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - splitPartner = segment.splitPartner; - if (splitPartner) { - splitX = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - currentY = startPos - splitPartner.routingSlot * edgeSpacing; - currentSegment = splitPartner; - bend = new KVector_1(splitX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - bend = new KVector_1(targetX, currentY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, false); - } - } - } - } -} -; -_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_0(port){ - return port.owner.pos.x_0 + port.pos.x_0 + port.anchor.x_0; -} -; -_.getSourcePortSide = function getSourcePortSide_0(){ - return $clinit_PortSide() , NORTH_3; -} -; -_.getTargetPortSide = function getTargetPortSide_0(){ - return $clinit_PortSide() , SOUTH_2; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_SouthToNorthRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'SouthToNorthRoutingStrategy', 1808); -function WestToEastRoutingStrategy(){ - BaseRoutingDirectionStrategy.call(this); -} - -defineClass(1806, 661, {}, WestToEastRoutingStrategy); -_.calculateBendPoints = function calculateBendPoints_1(segment, startPos, edgeSpacing){ - var bend, currentSegment, currentX, edge, edge$iterator, port, port$iterator, segmentX, sourceY, splitPartner, splitY, target, targetY; - if (!!segment.splitPartner && !segment.splitBy) { - return; - } - segmentX = startPos + segment.routingSlot * edgeSpacing; - for (port$iterator = new ArrayList$1(segment.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - sourceY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0; - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if (!$isSelfLoop(edge)) { - target = edge.target; - targetY = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [target.owner.pos, target.pos, target.anchor])).y_0; - if ($wnd.Math.abs(sourceY - targetY) > $intern_101) { - currentX = segmentX; - currentSegment = segment; - bend = new KVector_1(currentX, sourceY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - splitPartner = segment.splitPartner; - if (splitPartner) { - splitY = $doubleValue(castToDouble($get_7(splitPartner.incomingConnectionCoordinates, 0))); - bend = new KVector_1(currentX, splitY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - currentX = startPos + splitPartner.routingSlot * edgeSpacing; - currentSegment = splitPartner; - bend = new KVector_1(currentX, splitY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - } - bend = new KVector_1(currentX, targetY); - $add_7(edge.bendPoints, bend); - $addJunctionPointIfNecessary(this, edge, currentSegment, bend, true); - } - } - } - } -} -; -_.getPortPositionOnHyperNode = function getPortPositionOnHyperNode_1(port){ - return port.owner.pos.y_0 + port.pos.y_0 + port.anchor.y_0; -} -; -_.getSourcePortSide = function getSourcePortSide_1(){ - return $clinit_PortSide() , EAST_2; -} -; -_.getTargetPortSide = function getTargetPortSide_1(){ - return $clinit_PortSide() , WEST_2; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_WestToEastRoutingStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'WestToEastRoutingStrategy', 1806); -function $createUniformKnotVector(this$static, size_0){ - var fraction, i, i0, i1, mySize; - if (size_0 < 2 * this$static.dimNUBS) { - throw toJs(new IllegalArgumentException_0('The knot vector must have at least two time the dimension elements.')); - } - this$static.maxKnot = 1; - for (i0 = 0; i0 < this$static.dimNUBS; i0++) { - $add_3(this$static.knotVector, 0); - } - mySize = size_0 + 1 - 2 * this$static.dimNUBS; - fraction = mySize; - for (i1 = 1; i1 < mySize; i1++) { - $add_3(this$static.knotVector, i1 / fraction); - } - if (this$static.isClamped) { - for (i = 0; i < this$static.dimNUBS; i++) { - $add_3(this$static.knotVector, 1); - } - } -} - -function $getBezierCP(this$static){ - var iter, retVal; - this$static.isBezier || $toBezier(this$static); - retVal = new KVectorChain; - iter = new ArrayList$1(this$static.controlPoints); - $next_7(iter); - while (iter.i < iter.this$01.array.length) { - $add_7(retVal, castTo($next_7(iter), 407).cp); - } - checkCriticalElement(retVal.size_0 != 0); - $removeNode_0(retVal, retVal.tail.prev); - return retVal; -} - -function $getMultiplicity(this$static, knotToCheck){ - var count, currentKnot, diff, iter; - iter = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); - count = 0; - while (iter.i < iter.this$01_0.size_1()) { - currentKnot = $doubleValue((checkCriticalElement(iter.i < iter.this$01_0.size_1()) , castToDouble(iter.this$01_0.get_0(iter.last = iter.i++)))); - diff = currentKnot - knotToCheck; - if (diff > $intern_118) { - return count; - } - else - diff > -1.0E-6 && ++count; - } - return count; -} - -function $insertKnotAtCurrentPosition(this$static, insertions, knotToInsert, iterCP, iterKnot){ - var cp, cp$iterator, firstCP, i, j, j0, j1, multiplicity, newCPs, secondCP; - multiplicity = $getMultiplicity(this$static, knotToInsert); - for (i = 0; i < insertions; i++) { - $add_1(iterKnot, knotToInsert); - newCPs = new ArrayList; - secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); - for (j0 = multiplicity + i; j0 < this$static.dimNUBS; j0++) { - firstCP = secondCP; - secondCP = (checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()) , castTo(iterCP.this$01_0.get_0(iterCP.last = iterCP.i++), 407)); - $add_3(newCPs, new NubSpline$PolarCP(firstCP, secondCP, knotToInsert)); - } - for (j1 = multiplicity + i; j1 < this$static.dimNUBS; j1++) { - checkCriticalElement(iterCP.i > 0); - iterCP.this$01.get_0(iterCP.last = --iterCP.i); - j1 > multiplicity + i && $remove_8(iterCP); - } - for (cp$iterator = new ArrayList$1(newCPs); cp$iterator.i < cp$iterator.this$01.array.length;) { - cp = castTo($next_7(cp$iterator), 407); - $add_1(iterCP, cp); - } - if (i < insertions - 1) { - for (j = multiplicity + i; j < this$static.dimNUBS; j++) { - checkCriticalElement(iterCP.i > 0); - iterCP.this$01.get_0(iterCP.last = --iterCP.i); - } - } - } -} - -function $toBezier(this$static){ - var currentKnot, i, iterCP, iterKnot, knotToCount, occurrence; - iterKnot = new AbstractList$ListIteratorImpl(this$static.knotVector, 0); - iterCP = new AbstractList$ListIteratorImpl(this$static.controlPoints, 0); - if (this$static.isClamped) { - for (i = 0; i < this$static.dimNUBS; i++) { - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - } - } - else { - for (i = 0; i < this$static.dimNUBS - 1; i++) { - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - $remove_8(iterKnot); - } - } - currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); - while (this$static.maxKnot - currentKnot > $intern_118) { - knotToCount = currentKnot; - occurrence = 0; - while ($wnd.Math.abs(currentKnot - knotToCount) < $intern_118) { - ++occurrence; - currentKnot = $doubleValue((checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()) , castToDouble(iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++)))); - checkCriticalElement(iterCP.i < iterCP.this$01_0.size_1()); - iterCP.this$01_0.get_0(iterCP.last = iterCP.i++); - } - if (occurrence < this$static.dimNUBS) { - checkCriticalElement(iterKnot.i > 0); - iterKnot.this$01.get_0(iterKnot.last = --iterKnot.i); - $insertKnotAtCurrentPosition(this$static, this$static.dimNUBS - occurrence, knotToCount, iterCP, iterKnot); - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - } - checkCriticalElement(iterCP.i > 0); - iterCP.this$01.get_0(iterCP.last = --iterCP.i); - } - if (!this$static.isClamped) { - for (i = 0; i < this$static.dimNUBS - 1; i++) { - checkCriticalElement(iterKnot.i < iterKnot.this$01_0.size_1()); - iterKnot.this$01_0.get_0(iterKnot.last = iterKnot.i++); - $remove_8(iterKnot); - } - } - this$static.isClamped = true; - this$static.isBezier = true; -} - -function NubSpline(kVectors){ - var i, i0, kVector, kVector$iterator, knotIter, polarCoordinate; - this.knotVector = new ArrayList; - this.controlPoints = new ArrayList; - for (i0 = kVectors.size_0 - 1; i0 < 3; i0++) { - $add_0(kVectors, 0, castTo($get_7(kVectors, 0), 8)); - } - if (kVectors.size_0 < 4) { - throw toJs(new IllegalArgumentException_0('At (least dimension + 1) control points are necessary!')); - } - else { - this.dimNUBS = 3; - this.isClamped = true; - this.isBezier = false; - $createUniformKnotVector(this, kVectors.size_0 + this.dimNUBS - 1); - polarCoordinate = new ArrayList; - knotIter = new ArrayList$1(this.knotVector); - for (i = 0; i < this.dimNUBS - 1; i++) { - $add_3(polarCoordinate, castToDouble($next_7(knotIter))); - } - for (kVector$iterator = $listIterator_2(kVectors, 0); kVector$iterator.currentNode != kVector$iterator.this$01.tail;) { - kVector = castTo($next_10(kVector$iterator), 8); - $add_3(polarCoordinate, castToDouble($next_7(knotIter))); - $add_3(this.controlPoints, new NubSpline$PolarCP_0(kVector, polarCoordinate)); - checkCriticalElementIndex(0, polarCoordinate.array.length); - polarCoordinate.array.splice(0, 1); - } - } -} - -defineClass(813, 1, {}, NubSpline); -_.toString_0 = function toString_106(){ - return $toString_2(this.controlPoints); -} -; -_.dimNUBS = 0; -_.isBezier = false; -_.isClamped = false; -_.maxKnot = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline', 813); -function $setCp(this$static, cp){ - this$static.cp = cp; -} - -function $setPolarCoordinate(this$static, polarCoordinate){ - this$static.polarCoordinate = polarCoordinate; -} - -function NubSpline$PolarCP(firstCP, secondCP, newKnot){ - var aScaled, bScaled, firstFactor, iter, needsToBeAdded, nextKnot, secondFactor, total; - firstFactor = $doubleValue(castToDouble(firstCP.polarCoordinate.iterator_0().next_1())); - secondFactor = $doubleValue(castToDouble(getLast(secondCP.polarCoordinate))); - aScaled = $scale($clone_0(firstCP.cp), secondFactor - newKnot); - bScaled = $scale($clone_0(secondCP.cp), newKnot - firstFactor); - total = $add_19(aScaled, bScaled); - $scale(total, 1 / (secondFactor - firstFactor)); - this.cp = total; - this.polarCoordinate = new ArrayList; - needsToBeAdded = true; - iter = firstCP.polarCoordinate.iterator_0(); - iter.next_1(); - while (iter.hasNext_0()) { - nextKnot = $doubleValue(castToDouble(iter.next_1())); - if (needsToBeAdded && nextKnot - newKnot > $intern_118) { - this.polarCoordinate.add_2(newKnot); - needsToBeAdded = false; - } - this.polarCoordinate.add_2(nextKnot); - } - needsToBeAdded && this.polarCoordinate.add_2(newKnot); -} - -function NubSpline$PolarCP_0(controlPoint, polarCoordinate){ - $setCp(this, new KVector_1(controlPoint.x_0, controlPoint.y_0)); - $setPolarCoordinate(this, newLinkedList(polarCoordinate)); -} - -defineClass(407, 1, {407:1}, NubSpline$PolarCP, NubSpline$PolarCP_0); -var Lorg_eclipse_elk_alg_layered_p5edges_splines_NubSpline$PolarCP_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'NubSpline/PolarCP', 407); -function $clinit_SplineEdgeRouter(){ - $clinit_SplineEdgeRouter = emptyMethod; - BASELINE_PROCESSING_ADDITIONS = $addBefore($addAfter(new LayoutProcessorConfiguration, ($clinit_LayeredPhases() , P5_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy() , FINAL_SPLINE_BENDPOINTS_CALCULATOR)), P3_NODE_ORDERING, INVERTED_PORT_PROCESSOR); - SELF_LOOP_PROCESSING_ADDITIONS_1 = $add_17($add_17($before($addAfter($addBefore(new LayoutProcessorConfiguration, P1_CYCLE_BREAKING, SELF_LOOP_PREPROCESSOR), P5_EDGE_ROUTING, SELF_LOOP_POSTPROCESSOR), P4_NODE_PLACEMENT), SELF_LOOP_PORT_RESTORER), SELF_LOOP_ROUTER); - CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore($addBefore(new LayoutProcessorConfiguration, P2_LAYERING, LABEL_DUMMY_INSERTER), P4_NODE_PLACEMENT, LABEL_DUMMY_SWITCHER), P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P5_EDGE_ROUTING, LABEL_DUMMY_REMOVER); - NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1 = $addBefore($addBefore(new LayoutProcessorConfiguration, P3_NODE_ORDERING, NORTH_SOUTH_PORT_PREPROCESSOR), P5_EDGE_ROUTING, NORTH_SOUTH_PORT_POSTPROCESSOR); - END_EDGE_LABEL_PROCESSING_ADDITIONS_1 = $addAfter($addBefore($addBefore(new LayoutProcessorConfiguration, P4_NODE_PLACEMENT, LABEL_SIDE_SELECTOR), P4_NODE_PLACEMENT, END_LABEL_PREPROCESSOR), P5_EDGE_ROUTING, END_LABEL_POSTPROCESSOR); -} - -function $clearThenFillMappings(this$static, leftLayer, rightLayer){ - var edge, edge$iterator, node, node$iterator, nt, port, port$iterator, sourcePort, sourcePort$iterator, targetLayer, targetPort; - this$static.leftPortsLayer.map_0.clear_0(); - this$static.rightPortsLayer.map_0.clear_0(); - this$static.edgesRemainingLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.splineSegmentsLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.selfLoopsLayer.map_0.clear_0(); - if (leftLayer) { - for (node$iterator = new ArrayList$1(leftLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , EAST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { - sourcePort = castTo(sourcePort$iterator.next_1(), 11); - $add_6(this$static.leftPortsLayer, sourcePort); - for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if ($isSelfLoop(edge)) { - continue; - } - $add_3(this$static.edgesRemainingLayer, edge); - $findAndAddSuccessor(this$static, edge); - nt = edge.source.owner.type_0; - (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); - targetPort = edge.target; - targetLayer = targetPort.owner.layer; - targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); - } - } - } - } - if (rightLayer) { - for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { - port = castTo($next_7(port$iterator), 11); - for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - $isSelfLoop(edge) && $add_6(this$static.selfLoopsLayer, edge); - } - } - for (sourcePort$iterator = $getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0(); sourcePort$iterator.hasNext_0();) { - sourcePort = castTo(sourcePort$iterator.next_1(), 11); - $add_6(this$static.rightPortsLayer, sourcePort); - for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - if ($isSelfLoop(edge)) { - continue; - } - $add_3(this$static.edgesRemainingLayer, edge); - $findAndAddSuccessor(this$static, edge); - nt = edge.source.owner.type_0; - (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == NORTH_SOUTH_PORT || nt == EXTERNAL_PORT || nt == BREAKING_POINT) && $add_3(this$static.startEdges, edge); - targetPort = edge.target; - targetLayer = targetPort.owner.layer; - targetLayer == rightLayer?$add_6(this$static.rightPortsLayer, targetPort):targetLayer == leftLayer?$add_6(this$static.leftPortsLayer, targetPort):$remove_12(this$static.edgesRemainingLayer, edge); - } - } - } - } -} - -function $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor){ - var incomingEdge, incomingEdge$iterator, layerSpacing, maxCurrInputYDiff, maxVertDiff, node, node$iterator, sourcePos, targetPos; - maxVertDiff = 0; - for (node$iterator = new ArrayList$1(rightLayer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 10); - maxCurrInputYDiff = 0; - for (incomingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2($getIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(incomingEdge$iterator);) { - incomingEdge = castTo($next_0(incomingEdge$iterator), 17); - sourcePos = $getAbsoluteAnchor(incomingEdge.source).y_0; - targetPos = $getAbsoluteAnchor(incomingEdge.target).y_0; - maxCurrInputYDiff = $wnd.Math.max(maxCurrInputYDiff, $wnd.Math.abs(targetPos - sourcePos)); - } - maxVertDiff = $wnd.Math.max(maxVertDiff, maxCurrInputYDiff); - } - layerSpacing = sloppyLayerSpacingFactor * $wnd.Math.min(1, edgeEdgeSpacing / nodeNodeSpacing) * maxVertDiff; - return layerSpacing; -} - -function $createDependency(edge0, edge1){ - var edge0Counter, edge1Counter, port, port$iterator, port$iterator0, port$iterator1, port$iterator2; - if (edge0.hyperEdgeTopYPos > edge1.hyperEdgeBottomYPos || edge1.hyperEdgeTopYPos > edge0.hyperEdgeBottomYPos) { - return; - } - edge0Counter = 0; - edge1Counter = 0; - for (port$iterator0 = edge0.rightPorts.map_0.keySet_0().iterator_0(); port$iterator0.hasNext_0();) { - port = castTo(port$iterator0.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && ++edge0Counter; - } - for (port$iterator1 = edge0.leftPorts.map_0.keySet_0().iterator_0(); port$iterator1.hasNext_0();) { - port = castTo(port$iterator1.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge1.hyperEdgeTopYPos, edge1.hyperEdgeBottomYPos) && --edge0Counter; - } - for (port$iterator2 = edge1.rightPorts.map_0.keySet_0().iterator_0(); port$iterator2.hasNext_0();) { - port = castTo(port$iterator2.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && ++edge1Counter; - } - for (port$iterator = edge1.leftPorts.map_0.keySet_0().iterator_0(); port$iterator.hasNext_0();) { - port = castTo(port$iterator.next_1(), 11); - isBetween(sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [port.owner.pos, port.pos, port.anchor])).y_0, edge0.hyperEdgeTopYPos, edge0.hyperEdgeBottomYPos) && --edge1Counter; - } - if (edge0Counter < edge1Counter) { - new SplineEdgeRouter$Dependency(edge0, edge1, edge1Counter - edge0Counter); - } - else if (edge1Counter < edge0Counter) { - new SplineEdgeRouter$Dependency(edge1, edge0, edge0Counter - edge1Counter); - } - else { - new SplineEdgeRouter$Dependency(edge1, edge0, 0); - new SplineEdgeRouter$Dependency(edge0, edge1, 0); - } -} - -function $createSegmentsAndComputeRanking(this$static){ - var hyperEdge1, hyperEdge2, sourceIter, targetIter; - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4), true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, LEFT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, true, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegmentsForHyperEdges(this$static, this$static.leftPortsLayer, this$static.rightPortsLayer, RIGHT_4, false, this$static.edgesRemainingLayer, this$static.splineSegmentsLayer); - $createSplineSegments(this$static, this$static.edgesRemainingLayer, this$static.leftPortsLayer, this$static.rightPortsLayer, this$static.splineSegmentsLayer); - sourceIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, 0); - while (sourceIter.i < sourceIter.this$01_0.size_1()) { - hyperEdge1 = (checkCriticalElement(sourceIter.i < sourceIter.this$01_0.size_1()) , castTo(sourceIter.this$01_0.get_0(sourceIter.last = sourceIter.i++), 128)); - targetIter = new AbstractList$ListIteratorImpl(this$static.splineSegmentsLayer, sourceIter.i); - while (targetIter.i < targetIter.this$01_0.size_1()) { - hyperEdge2 = (checkCriticalElement(targetIter.i < targetIter.this$01_0.size_1()) , castTo(targetIter.this$01_0.get_0(targetIter.last = targetIter.i++), 128)); - $createDependency(hyperEdge1, hyperEdge2); - } - } - breakCycles(this$static.splineSegmentsLayer, castTo($getProperty(this$static.lGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230)); - topologicalNumbering_0(this$static.splineSegmentsLayer); -} - -function $createSplineSegments(this$static, edges, leftPorts, rightPorts, hyperEdges){ - var edge, edge$iterator, seg, sourcePort, sourceSide, targetPort, targetSide; - for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - sourcePort = edge.source; - if (leftPorts.map_0.containsKey(sourcePort)) { - sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); - } - else if (rightPorts.map_0.containsKey(sourcePort)) { - sourceSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); - } - else { - throw toJs(new IllegalArgumentException_0('Source port must be in one of the port sets.')); - } - targetPort = edge.target; - if (leftPorts.map_0.containsKey(targetPort)) { - targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4); - } - else if (rightPorts.map_0.containsKey(targetPort)) { - targetSide = ($clinit_SplineEdgeRouter$SideToProcess() , RIGHT_4); - } - else { - throw toJs(new IllegalArgumentException_0('Target port must be in one of the port sets.')); - } - seg = new SplineSegment(edge, sourceSide, targetSide); - $put_6(this$static.edgeToSegmentMap, edge, seg); - hyperEdges.array[hyperEdges.array.length] = seg; - } -} - -function $createSplineSegmentsForHyperEdges(this$static, leftPorts, rightPorts, sideToProcess, reversed, edgesRemaining, hyperEdges){ - var downEdges, edge, edge$iterator, pair, pair$iterator, portsToProcess, seg, singlePort, singlePort$iterator, singlePortPosition, targetPort, targetPortPosition, upEdges; - portsToProcess = null; - sideToProcess == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?(portsToProcess = leftPorts):sideToProcess == RIGHT_4 && (portsToProcess = rightPorts); - for (singlePort$iterator = portsToProcess.map_0.keySet_0().iterator_0(); singlePort$iterator.hasNext_0();) { - singlePort = castTo(singlePort$iterator.next_1(), 11); - singlePortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; - upEdges = new HashSet; - downEdges = new HashSet; - for (edge$iterator = new LPort$CombineIter$1(singlePort.connectedEdges); $hasNext_3(edge$iterator.firstIterator) || $hasNext_3(edge$iterator.secondIterator);) { - edge = castTo($hasNext_3(edge$iterator.firstIterator)?$next_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); - if ($booleanValue(castToBoolean($getProperty(edge, ($clinit_InternalProperties_1() , REVERSED)))) != reversed) { - continue; - } - if ($indexOf_3(edgesRemaining, edge, 0) != -1) { - edge.target == singlePort?(targetPort = edge.source):(targetPort = edge.target); - targetPortPosition = sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [targetPort.owner.pos, targetPort.pos, targetPort.anchor])).y_0; - if ($wnd.Math.abs(targetPortPosition - singlePortPosition) < 0.2) { - continue; - } - targetPortPosition < singlePortPosition?leftPorts.map_0.containsKey(targetPort)?$add_6(upEdges, new Pair(LEFT_4, edge)):$add_6(upEdges, new Pair(RIGHT_4, edge)):leftPorts.map_0.containsKey(targetPort)?$add_6(downEdges, new Pair(LEFT_4, edge)):$add_6(downEdges, new Pair(RIGHT_4, edge)); - } - } - if (upEdges.map_0.size_1() > 1) { - seg = new SplineSegment_0(singlePort, upEdges, sideToProcess); - $forEach_0(upEdges, new SplineEdgeRouter$lambda$2$Type(this$static, seg)); - hyperEdges.array[hyperEdges.array.length] = seg; - for (pair$iterator = upEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $remove_12(edgesRemaining, pair.second); - } - } - if (downEdges.map_0.size_1() > 1) { - seg = new SplineSegment_0(singlePort, downEdges, sideToProcess); - $forEach_0(downEdges, new SplineEdgeRouter$lambda$3$Type(this$static, seg)); - hyperEdges.array[hyperEdges.array.length] = seg; - for (pair$iterator = downEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $remove_12(edgesRemaining, pair.second); - } - } - } -} - -function $findAndAddSuccessor(this$static, edge){ - var iter, nt, targetNode; - targetNode = edge.target.owner; - nt = targetNode.type_0; - if (nt == ($clinit_LNode$NodeType() , NORMAL) || nt == BREAKING_POINT) { - return; - } - iter = new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(targetNode).val$inputs1.iterator_0(), new Iterables$10)); - $hasNext_1(iter) && $put_6(this$static.successingEdge, edge, castTo($next_0(iter), 17)); -} - -function $getEdgeChain(this$static, start_0){ - var current, edgeChain; - edgeChain = new ArrayList; - current = start_0; - do { - edgeChain.array[edgeChain.array.length] = current; - current = castTo($get_10(this$static.successingEdge, current), 17); - } - while (current); - return edgeChain; -} - -function $getLayoutProcessorConfiguration_2(graph){ - var configuration, graphProperties; - configuration = new LayoutProcessorConfiguration; - $addAll_6(configuration, BASELINE_PROCESSING_ADDITIONS); - graphProperties = castTo($getProperty(graph, ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21); - graphProperties.contains(($clinit_GraphProperties() , SELF_LOOPS)) && $addAll_6(configuration, SELF_LOOP_PROCESSING_ADDITIONS_1); - graphProperties.contains(CENTER_LABELS) && $addAll_6(configuration, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1); - graphProperties.contains(NORTH_SOUTH_PORTS) && $addAll_6(configuration, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1); - graphProperties.contains(END_LABELS) && $addAll_6(configuration, END_EDGE_LABEL_PROCESSING_ADDITIONS_1); - return configuration; -} - -function $getSplinePath(this$static, start_0){ - var current, initialSegment, lastSegment, segment, segmentChain; - segmentChain = new ArrayList; - current = start_0; - do { - segment = castTo($get_10(this$static.edgeToSegmentMap, current), 128); - segment.sourcePort = current.source; - segment.targetPort = current.target; - segmentChain.array[segmentChain.array.length] = segment; - current = castTo($get_10(this$static.successingEdge, current), 17); - } - while (current); - initialSegment = (checkCriticalElementIndex(0, segmentChain.array.length) , castTo(segmentChain.array[0], 128)); - initialSegment.initialSegment = true; - initialSegment.sourceNode = castTo(initialSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).source.owner; - lastSegment = castTo($get_11(segmentChain, segmentChain.array.length - 1), 128); - lastSegment.lastSegment = true; - lastSegment.targetNode = castTo(lastSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).target.owner; - return segmentChain; -} - -function $lambda$2_3(this$static, seg_1, e_1){ - return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); -} - -function $lambda$3_2(this$static, seg_1, e_1){ - return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); -} - -function $process_78(this$static, layeredGraph, monitor){ - var edge, edge$iterator, edgeChain, edgeEdgeSpacing, edgeNodeSpacing, firstLayer, increment, isLeftLayerExternal, isRightLayerExternal, isSpecialLeftLayer, isSpecialRightLayer, lastLayer, layerIterator, leftLayer, mode, nodeNodeSpacing, rightLayer, rightLayerPosition, segment, segment$iterator, sloppyLayerSpacingFactor, sloppyRouting, slotCount, spline, xSegmentDelta, xpos; - $begin(monitor, 'Spline edge routing', 1); - if (layeredGraph.layers.array.length == 0) { - layeredGraph.size_0.x_0 = 0; - $done_0(monitor); - return; - } - nodeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, ($clinit_LayeredOptions() , SPACING_NODE_NODE_BETWEEN_LAYERS_0)))); - edgeNodeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_NODE_BETWEEN_LAYERS_0))); - edgeEdgeSpacing = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE_BETWEEN_LAYERS_0))); - mode = castTo($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_MODE_0), 336); - sloppyRouting = mode == ($clinit_SplineRoutingMode() , SLOPPY); - sloppyLayerSpacingFactor = $doubleValue(castToDouble($getProperty(layeredGraph, EDGE_ROUTING_SPLINES_SLOPPY_LAYER_SPACING_FACTOR_0))); - this$static.lGraph = layeredGraph; - this$static.startEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.allSplineSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $reset(this$static.successingEdge); - firstLayer = castTo($get_11(layeredGraph.layers, 0), 29); - isLeftLayerExternal = all_0(firstLayer.nodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); - lastLayer = castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29); - isRightLayerExternal = all_0(lastLayer.nodes, PRED_EXTERNAL_WEST_OR_EAST_PORT); - layerIterator = new ArrayList$1(layeredGraph.layers); - leftLayer = null; - xpos = 0; - do { - rightLayer = layerIterator.i < layerIterator.this$01.array.length?castTo($next_7(layerIterator), 29):null; - $clearThenFillMappings(this$static, leftLayer, rightLayer); - $createSegmentsAndComputeRanking(this$static); - slotCount = $orElse_1($max_0($mapToInt($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.splineSegmentsLayer, 16)), new SplineEdgeRouter$lambda$0$Type), new SplineEdgeRouter$lambda$1$Type))); - xSegmentDelta = 0; - rightLayerPosition = xpos; - isSpecialLeftLayer = !leftLayer || isLeftLayerExternal && leftLayer == firstLayer; - isSpecialRightLayer = !rightLayer || isRightLayerExternal && rightLayer == lastLayer; - if (slotCount > 0) { - increment = 0; - !!leftLayer && (increment += edgeNodeSpacing); - increment += (slotCount - 1) * edgeEdgeSpacing; - !!rightLayer && (increment += edgeNodeSpacing); - sloppyRouting && !!rightLayer && (increment = $wnd.Math.max(increment, $computeSloppySpacing(rightLayer, edgeEdgeSpacing, nodeNodeSpacing, sloppyLayerSpacingFactor))); - if (increment < nodeNodeSpacing && !isSpecialLeftLayer && !isSpecialRightLayer) { - xSegmentDelta = (nodeNodeSpacing - increment) / 2; - increment = nodeNodeSpacing; - } - rightLayerPosition += increment; - } - else - !isSpecialLeftLayer && !isSpecialRightLayer && (rightLayerPosition += nodeNodeSpacing); - !!rightLayer && placeNodesHorizontally(rightLayer, rightLayerPosition); - for (segment$iterator = new ArrayList$1(this$static.splineSegmentsLayer); segment$iterator.i < segment$iterator.this$01.array.length;) { - segment = castTo($next_7(segment$iterator), 128); - segment.boundingBox.x_0 = xpos; - segment.boundingBox.width_0 = rightLayerPosition - xpos; - segment.xDelta = xSegmentDelta; - segment.isWestOfInitialLayer = !leftLayer; - } - $addAll_2(this$static.allSplineSegments, this$static.splineSegmentsLayer); - xpos = rightLayerPosition; - !!rightLayer && (xpos += rightLayer.size_0.x_0); - leftLayer = rightLayer; - isSpecialLeftLayer = isSpecialRightLayer; - } - while (rightLayer); - for (edge$iterator = new ArrayList$1(this$static.startEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 17); - edgeChain = $getEdgeChain(this$static, edge); - $setProperty_0(edge, ($clinit_InternalProperties_1() , SPLINE_EDGE_CHAIN), edgeChain); - spline = $getSplinePath(this$static, edge); - $setProperty_0(edge, SPLINE_ROUTE_START, spline); - } - layeredGraph.size_0.x_0 = xpos; - this$static.lGraph = null; - $done_0(monitor); -} - -function SplineEdgeRouter(){ - $clinit_SplineEdgeRouter(); - this.edgesRemainingLayer = new ArrayList; - this.splineSegmentsLayer = new ArrayList; - this.leftPortsLayer = new LinkedHashSet; - this.rightPortsLayer = new LinkedHashSet; - this.selfLoopsLayer = new LinkedHashSet; - this.startEdges = new ArrayList; - this.allSplineSegments = new ArrayList; - this.edgeToSegmentMap = new HashMap; - this.successingEdge = new HashMap; -} - -function breakCycles(edges, random){ - var depIter, dependency, dependency$iterator, dependency$iterator0, edge, edge$iterator, edge$iterator0, edge$iterator1, inweight, markBase, maxEdge, maxEdges, maxOutflow, nextLeft, nextMark, nextRight, outflow, outweight, shiftBase, sink, sinks, source, source$iterator, sources, target, unprocessed; - sources = new LinkedList; - sinks = new LinkedList; - nextMark = -1; - for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 128); - edge.mark = nextMark--; - inweight = 0; - outweight = 0; - for (dependency$iterator0 = new ArrayList$1(edge.outgoing); dependency$iterator0.i < dependency$iterator0.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator0), 268); - outweight += dependency.weight; - } - for (dependency$iterator = new ArrayList$1(edge.incoming); dependency$iterator.i < dependency$iterator.this$01.array.length;) { - dependency = castTo($next_7(dependency$iterator), 268); - inweight += dependency.weight; - } - edge.inweight = inweight; - edge.outweight = outweight; - outweight == 0?($addNode_0(sinks, edge, sinks.tail.prev, sinks.tail) , true):inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); - } - unprocessed = newLinkedHashSet(edges); - markBase = edges.array.length; - nextLeft = markBase + 1; - nextRight = markBase - 1; - maxEdges = new ArrayList; - while (unprocessed.map_0.size_1() != 0) { - while (sinks.size_0 != 0) { - sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 128)); - unprocessed.map_0.remove_0(sink) != null; - sink.mark = nextRight--; - updateNeighbors_0(sink, sources, sinks); - } - while (sources.size_0 != 0) { - source = (checkCriticalElement(sources.size_0 != 0) , castTo($removeNode_0(sources, sources.header.next_0), 128)); - unprocessed.map_0.remove_0(source) != null; - source.mark = nextLeft++; - updateNeighbors_0(source, sources, sinks); - } - maxOutflow = $intern_42; - for (edge$iterator1 = unprocessed.map_0.keySet_0().iterator_0(); edge$iterator1.hasNext_0();) { - edge = castTo(edge$iterator1.next_1(), 128); - outflow = edge.outweight - edge.inweight; - if (outflow >= maxOutflow) { - if (outflow > maxOutflow) { - maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - maxOutflow = outflow; - } - maxEdges.array[maxEdges.array.length] = edge; - } - } - if (maxEdges.array.length != 0) { - maxEdge = castTo($get_11(maxEdges, $nextInt(random, maxEdges.array.length)), 128); - unprocessed.map_0.remove_0(maxEdge) != null; - maxEdge.mark = nextLeft++; - updateNeighbors_0(maxEdge, sources, sinks); - maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - } - shiftBase = edges.array.length + 1; - for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { - edge = castTo($next_7(edge$iterator), 128); - edge.mark < markBase && (edge.mark += shiftBase); - } - for (source$iterator = new ArrayList$1(edges); source$iterator.i < source$iterator.this$01.array.length;) { - source = castTo($next_7(source$iterator), 128); - depIter = new AbstractList$ListIteratorImpl(source.outgoing, 0); - while (depIter.i < depIter.this$01_0.size_1()) { - dependency = (checkCriticalElement(depIter.i < depIter.this$01_0.size_1()) , castTo(depIter.this$01_0.get_0(depIter.last = depIter.i++), 268)); - target = dependency.target; - if (source.mark > target.mark) { - $remove_8(depIter); - $remove_12(target.incoming, dependency); - if (dependency.weight > 0) { - dependency.source = target; - $add_3(target.outgoing, dependency); - dependency.target = source; - $add_3(source.incoming, dependency); - } - } - } - } -} - -function topologicalNumbering_0(edges){ - var dep, dep$iterator, edge, edge$iterator, edge$iterator0, maxRank, rightwardTargets, source, sources, target; - sources = new LinkedList; - rightwardTargets = new LinkedList; - for (edge$iterator0 = new ArrayList$1(edges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { - edge = castTo($next_7(edge$iterator0), 128); - edge.rank = 0; - edge.inweight = edge.incoming.array.length; - edge.outweight = edge.outgoing.array.length; - edge.inweight == 0 && ($addNode_0(sources, edge, sources.tail.prev, sources.tail) , true); - edge.outweight == 0 && edge.leftPorts.map_0.size_1() == 0 && ($addNode_0(rightwardTargets, edge, rightwardTargets.tail.prev, rightwardTargets.tail) , true); - } - maxRank = -1; - while (sources.size_0 != 0) { - edge = castTo($remove_4(sources, 0), 128); - for (dep$iterator = new ArrayList$1(edge.outgoing); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 268); - target = dep.target; - target.rank = $wnd.Math.max(target.rank, edge.rank + 1); - maxRank = $wnd.Math.max(maxRank, target.rank); - --target.inweight; - target.inweight == 0 && ($addNode_0(sources, target, sources.tail.prev, sources.tail) , true); - } - } - if (maxRank > -1) { - for (edge$iterator = $listIterator_2(rightwardTargets, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { - edge = castTo($next_10(edge$iterator), 128); - edge.rank = maxRank; - } - while (rightwardTargets.size_0 != 0) { - edge = castTo($remove_4(rightwardTargets, 0), 128); - for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 268); - source = dep.source; - if (source.leftPorts.map_0.size_1() != 0) { - continue; - } - source.rank = $wnd.Math.min(source.rank, edge.rank - 1); - --source.outweight; - source.outweight == 0 && ($addNode_0(rightwardTargets, source, rightwardTargets.tail.prev, rightwardTargets.tail) , true); - } - } - } -} - -function updateNeighbors_0(edge, sources, sinks){ - var dep, dep$iterator, dep$iterator0; - for (dep$iterator0 = new ArrayList$1(edge.outgoing); dep$iterator0.i < dep$iterator0.this$01.array.length;) { - dep = castTo($next_7(dep$iterator0), 268); - if (dep.target.mark < 0 && dep.weight > 0) { - dep.target.inweight -= dep.weight; - dep.target.inweight <= 0 && dep.target.outweight > 0 && $add_7(sources, dep.target); - } - } - for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { - dep = castTo($next_7(dep$iterator), 268); - if (dep.source.mark < 0 && dep.weight > 0) { - dep.source.outweight -= dep.weight; - dep.source.outweight <= 0 && dep.source.inweight > 0 && $add_7(sinks, dep.source); - } - } -} - -defineClass(1453, 1, $intern_113, SplineEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_19(graph){ - return $getLayoutProcessorConfiguration_2(castTo(graph, 37)); -} -; -_.process = function process_74(layeredGraph, monitor){ - $process_78(this, castTo(layeredGraph, 37), monitor); -} -; -var BASELINE_PROCESSING_ADDITIONS, CENTER_EDGE_LABEL_PROCESSING_ADDITIONS_1, END_EDGE_LABEL_PROCESSING_ADDITIONS_1, NORTH_SOUTH_PORT_PROCESSING_ADDITIONS_1, SELF_LOOP_PROCESSING_ADDITIONS_1; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter', 1453); -function SplineEdgeRouter$Dependency(source, target, weight){ - this.source = source; - this.target = target; - this.weight = weight; - $add_3(source.outgoing, this); - $add_3(target.incoming, this); -} - -defineClass(268, 1, {268:1}, SplineEdgeRouter$Dependency); -_.toString_0 = function toString_107(){ - return this.source + ' ->(' + this.weight + ') ' + this.target; -} -; -_.weight = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$Dependency_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/Dependency', 268); -function $clinit_SplineEdgeRouter$SideToProcess(){ - $clinit_SplineEdgeRouter$SideToProcess = emptyMethod; - LEFT_4 = new SplineEdgeRouter$SideToProcess('LEFT', 0); - RIGHT_4 = new SplineEdgeRouter$SideToProcess('RIGHT', 1); -} - -function SplineEdgeRouter$SideToProcess(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_72(name_0){ - $clinit_SplineEdgeRouter$SideToProcess(); - return valueOf(($clinit_SplineEdgeRouter$SideToProcess$Map() , $MAP_60), name_0); -} - -function values_78(){ - $clinit_SplineEdgeRouter$SideToProcess(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]); -} - -defineClass(455, 22, {3:1, 35:1, 22:1, 455:1}, SplineEdgeRouter$SideToProcess); -var LEFT_4, RIGHT_4; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit = createForEnum('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/SideToProcess', 455, Ljava_lang_Enum_2_classLit, values_78, valueOf_72); -function $clinit_SplineEdgeRouter$SideToProcess$Map(){ - $clinit_SplineEdgeRouter$SideToProcess$Map = emptyMethod; - $MAP_60 = createValueOfMap(($clinit_SplineEdgeRouter$SideToProcess() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$SideToProcess_2_classLit, 1), $intern_36, 455, 0, [LEFT_4, RIGHT_4]))); -} - -var $MAP_60; -function SplineEdgeRouter$lambda$0$Type(){ -} - -defineClass(1454, 1, $intern_39, SplineEdgeRouter$lambda$0$Type); -_.test_0 = function test_105(arg0){ - return $clinit_SplineEdgeRouter() , !castTo(arg0, 128).isStraight; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$0$Type', 1454); -function SplineEdgeRouter$lambda$1$Type(){ -} - -defineClass(1455, 1, {}, SplineEdgeRouter$lambda$1$Type); -_.applyAsInt = function applyAsInt_3(arg0){ - return $clinit_SplineEdgeRouter() , castTo(arg0, 128).rank + 1; -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$1$Type', 1455); -function SplineEdgeRouter$lambda$2$Type($$outer_0, seg_1){ - this.$$outer_0 = $$outer_0; - this.seg_1 = seg_1; -} - -defineClass(1456, 1, $intern_19, SplineEdgeRouter$lambda$2$Type); -_.accept = function accept_130(arg0){ - $lambda$2_3(this.$$outer_0, this.seg_1, castTo(arg0, 46)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$2$Type', 1456); -function SplineEdgeRouter$lambda$3$Type($$outer_0, seg_1){ - this.$$outer_0 = $$outer_0; - this.seg_1 = seg_1; -} - -defineClass(1457, 1, $intern_19, SplineEdgeRouter$lambda$3$Type); -_.accept = function accept_131(arg0){ - $lambda$3_2(this.$$outer_0, this.seg_1, castTo(arg0, 46)); -} -; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineEdgeRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineEdgeRouter/lambda$3$Type', 1457); -function $$init_8(this$static){ - this$static.leftPorts = new HashSet; - this$static.rightPorts = new HashSet; - this$static.outgoing = new ArrayList; - this$static.incoming = new ArrayList; - this$static.edges = new HashSet; - this$static.boundingBox = new ElkRectangle; - this$static.edgeInformation = new HashMap; -} - -function $addEdge_0(this$static, edge){ - var ei, nt, nt0; - $add_6(this$static.edges, edge); - ei = new SplineSegment$EdgeInformation; - $put_6(this$static.edgeInformation, edge, ei); - ei.startY = $anchorY(edge.source); - ei.endY = $anchorY(edge.target); - ei.normalSourceNode = ($clinit_SplineEdgeRouter() , nt0 = edge.source.owner.type_0 , nt0 == ($clinit_LNode$NodeType() , NORMAL) || nt0 == BREAKING_POINT); - ei.normalTargetNode = (nt = edge.target.owner.type_0 , nt == NORMAL || nt == BREAKING_POINT); - ei.invertedLeft = edge.source.side == ($clinit_PortSide() , WEST_2); - ei.invertedRight = edge.target.side == EAST_2; -} - -function $anchorY(p){ - return ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(p.side)?$doubleValue(castToDouble($getProperty(p, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [p.owner.pos, p.pos, p.anchor])).y_0; -} - -function $compareTo_18(this$static, other){ - return this$static.mark - other.mark; -} - -function $setRelevantPositions(this$static, sourceY, targetYMin, targetYMax){ - this$static.boundingBox.y_0 = $wnd.Math.min(sourceY, targetYMin); - this$static.boundingBox.height = $wnd.Math.max(sourceY, targetYMax) - this$static.boundingBox.y_0; - if (sourceY < targetYMin) { - this$static.centerControlPointY = 0.5 * (sourceY + targetYMin); - this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; - this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMin; - } - else { - this$static.centerControlPointY = 0.5 * (sourceY + targetYMax); - this$static.hyperEdgeTopYPos = $intern_119 * this$static.centerControlPointY + 0.9 * targetYMax; - this$static.hyperEdgeBottomYPos = $intern_119 * this$static.centerControlPointY + 0.9 * sourceY; - } -} - -function SplineSegment(edge, sourceSide, targetSide){ - var sourceY, targetY; - $$init_8(this); - sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, edge.source):$add_6(this.rightPorts, edge.source); - targetSide == LEFT_4?$add_6(this.leftPorts, edge.target):$add_6(this.rightPorts, edge.target); - $addEdge_0(this, edge); - sourceY = $anchorY(edge.source); - targetY = $anchorY(edge.target); - $setRelevantPositions(this, sourceY, targetY, targetY); - this.isStraight = ($clinit_SplineEdgeRouter() , $wnd.Math.abs(sourceY - targetY) < 0.2); -} - -function SplineSegment_0(singlePort, edges, sourceSide){ - var edge, pair, pair$iterator, pair$iterator0, side, tgtPort, yMaxPosOfTarget, yMinPosOfTarget, yPosOfSingleSide, yPosOfTarget; - $$init_8(this); - sourceSide == ($clinit_SplineEdgeRouter$SideToProcess() , LEFT_4)?$add_6(this.leftPorts, singlePort):$add_6(this.rightPorts, singlePort); - yMinPosOfTarget = $intern_59; - yMaxPosOfTarget = $intern_60; - for (pair$iterator0 = edges.map_0.keySet_0().iterator_0(); pair$iterator0.hasNext_0();) { - pair = castTo(pair$iterator0.next_1(), 46); - side = castTo(pair.first, 455); - edge = castTo(pair.second, 17); - tgtPort = edge.source; - tgtPort == singlePort && (tgtPort = edge.target); - side == LEFT_4?$add_6(this.leftPorts, tgtPort):$add_6(this.rightPorts, tgtPort); - yPosOfTarget = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(tgtPort.side)?$doubleValue(castToDouble($getProperty(tgtPort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [tgtPort.owner.pos, tgtPort.pos, tgtPort.anchor])).y_0; - yMinPosOfTarget = $wnd.Math.min(yMinPosOfTarget, yPosOfTarget); - yMaxPosOfTarget = $wnd.Math.max(yMaxPosOfTarget, yPosOfTarget); - } - yPosOfSingleSide = ($clinit_PortSide() , SIDES_NORTH_SOUTH).contains(singlePort.side)?$doubleValue(castToDouble($getProperty(singlePort, ($clinit_InternalProperties_1() , SPLINE_NS_PORT_Y_COORD)))):sum_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, 1), $intern_16, 8, 0, [singlePort.owner.pos, singlePort.pos, singlePort.anchor])).y_0; - $setRelevantPositions(this, yPosOfSingleSide, yMinPosOfTarget, yMaxPosOfTarget); - for (pair$iterator = edges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { - pair = castTo(pair$iterator.next_1(), 46); - $addEdge_0(this, castTo(pair.second, 17)); - } - this.isStraight = false; -} - -defineClass(128, 1, {35:1, 128:1}, SplineSegment, SplineSegment_0); -_.compareTo_0 = function compareTo_19(other){ - return $compareTo_18(this, castTo(other, 128)); -} -; -_.centerControlPointY = 0; -_.handled = false; -_.hyperEdgeBottomYPos = 0; -_.hyperEdgeTopYPos = 0; -_.initialSegment = false; -_.inverseOrder = false; -_.inweight = 0; -_.isStraight = false; -_.isWestOfInitialLayer = false; -_.lastSegment = false; -_.mark = 0; -_.outweight = 0; -_.rank = 0; -_.xDelta = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment', 128); -function SplineSegment$EdgeInformation(){ -} - -defineClass(459, 1, {459:1}, SplineSegment$EdgeInformation); -_.endY = 0; -_.invertedLeft = false; -_.invertedRight = false; -_.normalSourceNode = false; -_.normalTargetNode = false; -_.startY = 0; -var Lorg_eclipse_elk_alg_layered_p5edges_splines_SplineSegment$EdgeInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.splines', 'SplineSegment/EdgeInformation', 459); -function isBetween(value_0, boundary0, boundary1){ - if ($wnd.Math.abs(boundary0 - value_0) < $intern_120 || $wnd.Math.abs(boundary1 - value_0) < $intern_120) { - return true; - } - return boundary0 - value_0 > $intern_120?value_0 - boundary1 > $intern_120:boundary1 - value_0 > $intern_120; -} - -function portSideToDirection(side){ - switch (side.ordinal) { - case 1: - return $intern_121; - default:case 2: - return 0; - case 3: - return $intern_97; - case 4: - return $intern_122; - } -} - -function $dfs_5(this$static, node, graph){ - var component, edge, edge$iterator; - if (!this$static.visited[node.id_0]) { - this$static.visited[node.id_0] = true; - component = graph; - !component && (component = new TGraph); - $add_7(component.nodes, node); - for (edge$iterator = this$static.incidence[node.id_0].iterator_0(); edge$iterator.hasNext_0();) { - edge = castTo(edge$iterator.next_1(), 188); - edge.source != node && $dfs_5(this$static, edge.source, component); - edge.target != node && $dfs_5(this$static, edge.target, component); - $add_7(component.edges, edge); - } - return component; - } - return null; -} - -function $initialize_6(this$static, graph){ - var edge, edge$iterator, n, node, node$iterator; - n = graph.nodes.size_0; - this$static.incidence = initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, n, 0, 1); - this$static.visited = initUnidimensionalArray(Z_classLit, $intern_91, 25, n, 16, 1); - for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - this$static.incidence[node.id_0] = new LinkedList; - } - for (edge$iterator = $listIterator_2(graph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { - edge = castTo($next_10(edge$iterator), 188); - this$static.incidence[edge.source.id_0].add_2(edge); - this$static.incidence[edge.target.id_0].add_2(edge); - } -} - -function $moveGraph_1(destGraph, sourceGraph, offsetx, offsety){ - var bendpoint, bendpoint$iterator, edge, edge$iterator, graphOffset, node, node$iterator; - graphOffset = new KVector_1(offsetx, offsety); - $sub_0(graphOffset, castTo($getProperty(sourceGraph, ($clinit_InternalProperties_2() , BB_UPLEFT_0)), 8)); - for (node$iterator = $listIterator_2(sourceGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - $add_19(node.pos, graphOffset); - $add_7(destGraph.nodes, node); - } - for (edge$iterator = $listIterator_2(sourceGraph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { - edge = castTo($next_10(edge$iterator), 188); - for (bendpoint$iterator = $listIterator_2(edge.bendPoints, 0); bendpoint$iterator.currentNode != bendpoint$iterator.this$01.tail;) { - bendpoint = castTo($next_10(bendpoint$iterator), 8); - $add_19(bendpoint, graphOffset); - } - $add_7(destGraph.edges, edge); - } -} - -function $pack(components){ - var broadestRow, debug, debugMode, entry, entry$iterator, graph, graph$iterator, graph$iterator0, graph$iterator1, highestBox, maxRowWidth, maxx, maxy, minx, miny, node, node$iterator, priority, propComp, propMerge, result, size_0, spacing, tGraph, tGraph$iterator, totalArea, xpos, ypos; - if (components.array.length == 1) { - return checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 135); - } - else if (components.array.length <= 0) { - return new TGraph; - } - for (graph$iterator0 = new ArrayList$1(components); graph$iterator0.i < graph$iterator0.this$01.array.length;) { - graph = castTo($next_7(graph$iterator0), 135); - priority = 0; - minx = $intern_0; - miny = $intern_0; - maxx = $intern_42; - maxy = $intern_42; - for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - priority += castTo($getProperty(node, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0; - minx = $wnd.Math.min(minx, node.pos.x_0); - miny = $wnd.Math.min(miny, node.pos.y_0); - maxx = $wnd.Math.max(maxx, node.pos.x_0 + node.size_0.x_0); - maxy = $wnd.Math.max(maxy, node.pos.y_0 + node.size_0.y_0); - } - $setProperty_0(graph, ($clinit_MrTreeOptions() , PRIORITY_1), valueOf_4(priority)); - $setProperty_0(graph, ($clinit_InternalProperties_2() , BB_UPLEFT_0), new KVector_1(minx, miny)); - $setProperty_0(graph, BB_LOWRIGHT_0, new KVector_1(maxx, maxy)); - } - $clinit_Collections(); - $sort(components, new ComponentsProcessor$1_0); - result = new TGraph; - $copyProperties(result, (checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 94))); - maxRowWidth = 0; - totalArea = 0; - for (graph$iterator1 = new ArrayList$1(components); graph$iterator1.i < graph$iterator1.this$01.array.length;) { - graph = castTo($next_7(graph$iterator1), 135); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); - maxRowWidth = $wnd.Math.max(maxRowWidth, size_0.x_0); - totalArea += size_0.x_0 * size_0.y_0; - } - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea) * $doubleValue(castToDouble($getProperty(result, ($clinit_MrTreeOptions() , ASPECT_RATIO_2))))); - spacing = $doubleValue(castToDouble($getProperty(result, SPACING_NODE_NODE_1))); - xpos = 0; - ypos = 0; - highestBox = 0; - broadestRow = spacing; - for (graph$iterator = new ArrayList$1(components); graph$iterator.i < graph$iterator.this$01.array.length;) { - graph = castTo($next_7(graph$iterator), 135); - size_0 = $sub_0($clone_0(castTo($getProperty(graph, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph, BB_UPLEFT_0), 8)); - if (xpos + size_0.x_0 > maxRowWidth) { - xpos = 0; - ypos += highestBox + spacing; - highestBox = 0; - } - $moveGraph_1(result, graph, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + size_0.x_0); - highestBox = $wnd.Math.max(highestBox, size_0.y_0); - xpos += size_0.x_0 + spacing; - } - propMerge = new HashMap; - debug = new HashMap; - for (tGraph$iterator = new ArrayList$1(components); tGraph$iterator.i < tGraph$iterator.this$01.array.length;) { - tGraph = castTo($next_7(tGraph$iterator), 135); - debugMode = $booleanValue(castToBoolean($getProperty(tGraph, ($clinit_CoreOptions() , DEBUG_MODE_3)))); - propComp = !tGraph.propertyMap?(null , EMPTY_MAP):tGraph.propertyMap; - for (entry$iterator = propComp.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - if ($containsKey_3(propMerge, entry.getKey())) { - if (maskUndefined(castTo(entry.getKey(), 146).getDefault()) !== maskUndefined(entry.getValue())) { - if (debugMode && $containsKey_3(debug, entry.getKey())) { - $clinit_System(); - 'Found different values for property ' + castTo(entry.getKey(), 146).getId() + ' in components.'; - } - else { - $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); - $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); - debugMode && $put_6(debug, castTo(entry.getKey(), 146), entry.getValue()); - } - } - } - else { - $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); - $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); - } - } - } - return result; -} - -function $split_4(this$static, graph){ - var comp, comp$iterator, components, id_0, node, node$iterator, node$iterator0, separate; - separate = castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , SEPARATE_CONNECTED_COMPONENTS_1))); - if (separate == null || (checkCriticalNotNull(separate) , separate)) { - $initialize_6(this$static, graph); - components = new ArrayList; - for (node$iterator0 = $listIterator_2(graph.nodes, 0); node$iterator0.currentNode != node$iterator0.this$01.tail;) { - node = castTo($next_10(node$iterator0), 86); - comp = $dfs_5(this$static, node, null); - if (comp) { - $copyProperties(comp, graph); - components.array[components.array.length] = comp; - } - } - this$static.incidence = null; - this$static.visited = null; - if (components.array.length > 1) { - for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { - comp = castTo($next_7(comp$iterator), 135); - id_0 = 0; - for (node$iterator = $listIterator_2(comp.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - node.id_0 = id_0++; - } - } - } - return components; - } - return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit, 1), $intern_100, 135, 0, [graph])); -} - -function ComponentsProcessor_1(){ -} - -defineClass(1234, 1, {}, ComponentsProcessor_1); -var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor', 1234); -function $compare_22(graph1, graph2){ - var prio, size1, size2; - prio = castTo($getProperty(graph2, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0 - castTo($getProperty(graph1, PRIORITY_1), 19).value_0; - if (prio == 0) { - size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph1, BB_UPLEFT_0), 8)); - size2 = $sub_0($clone_0(castTo($getProperty(graph2, BB_LOWRIGHT_0), 8)), castTo($getProperty(graph2, BB_UPLEFT_0), 8)); - return compare_4(size1.x_0 * size1.y_0, size2.x_0 * size2.y_0); - } - return prio; -} - -function ComponentsProcessor$1_0(){ -} - -defineClass(1235, 1, $intern_88, ComponentsProcessor$1_0); -_.compare_1 = function compare_77(graph1, graph2){ - return $compare_22(castTo(graph1, 135), castTo(graph2, 135)); -} -; -_.equals_0 = function equals_164(other){ - return this === other; -} -; -_.reversed = function reversed_69(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor/1', 1235); -function $applyLayout_4(tGraph){ - var bendPoints, edgeSection, elkedge, elkgraph, elknode, height, maxXPos, maxYPos, minXPos, minYPos, nodePos, object, offset, padding, pos, size_0, sourcePoint, tEdge, tEdge$iterator, tNode, tNode$iterator, tNode$iterator0, targetPoint, width_0; - elkgraph = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , ORIGIN_1)), 33); - minXPos = $intern_0; - minYPos = $intern_0; - maxXPos = $intern_42; - maxYPos = $intern_42; - for (tNode$iterator0 = $listIterator_2(tGraph.nodes, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator0), 86); - pos = tNode.pos; - size_0 = tNode.size_0; - minXPos = $wnd.Math.min(minXPos, pos.x_0 - size_0.x_0 / 2); - minYPos = $wnd.Math.min(minYPos, pos.y_0 - size_0.y_0 / 2); - maxXPos = $wnd.Math.max(maxXPos, pos.x_0 + size_0.x_0 / 2); - maxYPos = $wnd.Math.max(maxYPos, pos.y_0 + size_0.y_0 / 2); - } - padding = castTo($getProperty_0(elkgraph, ($clinit_MrTreeOptions() , PADDING_2)), 116); - offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - object = $getProperty(tNode, ORIGIN_1); - if (instanceOf(object, 239)) { - elknode = castTo(object, 33); - nodePos = $add_19(tNode.pos, offset); - $setLocation_1(elknode, nodePos.x_0 - elknode.width_0 / 2, nodePos.y_0 - elknode.height / 2); - } - } - for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - elkedge = castTo($getProperty(tEdge, ORIGIN_1), 79); - if (elkedge) { - bendPoints = tEdge.bendPoints; - sourcePoint = new KVector_2(tEdge.source.pos); - $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); - targetPoint = new KVector_2(tEdge.target.pos); - $addNode_0(bendPoints, targetPoint, bendPoints.tail.prev, bendPoints.tail); - toNodeBorder(sourcePoint, castTo($get_7(bendPoints, 1), 8), tEdge.source.size_0); - toNodeBorder(targetPoint, castTo($get_7(bendPoints, bendPoints.size_0 - 2), 8), tEdge.target.size_0); - edgeSection = firstEdgeSection(elkedge, true, true); - applyVectorChain(bendPoints, edgeSection); - } - } - width_0 = maxXPos - minXPos + (padding.left + padding.right); - height = maxYPos - minYPos + (padding.top_0 + padding.bottom); - resizeNode_1(elkgraph, width_0, height, false, false); -} - -function $transformEdges_1(parentNode, tGraph, elemMap){ - var elkedge, elkedge$iterator, elknode, elknode$iterator, newEdge, source, target; - for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { - elknode = castTo($doNext(elknode$iterator), 33); - for (elkedge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(elknode).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(elkedge$iterator);) { - elkedge = castTo($next_0(elkedge$iterator), 79); - if (!$isHierarchical(elkedge) && !$isHierarchical(elkedge) && !$isSelfloop(elkedge)) { - source = castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, elknode)), 86); - target = castTo($get_10(elemMap, connectableShapeToNode(castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82))), 86); - if (!!source && !!target) { - newEdge = new TEdge_0(source, target); - $setProperty_0(newEdge, ($clinit_InternalProperties_2() , ORIGIN_1), elkedge); - $copyProperties(newEdge, elkedge); - $add_7(source.outgoingEdges, newEdge); - $add_7(target.incomingEdges, newEdge); - $add_7(tGraph.edges, newEdge); - } - } - } - } -} - -function $transformNodes_1(parentNode, tGraph, elemMap){ - var elknode, elknode$iterator, index_0, label_0, newNode; - index_0 = 0; - for (elknode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); elknode$iterator.cursor != elknode$iterator.this$01_2.size_1();) { - elknode = castTo($doNext(elknode$iterator), 33); - label_0 = ''; - (!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels).size_0 == 0 || (label_0 = castTo($get_20((!elknode.labels && (elknode.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, elknode, 1, 7)) , elknode.labels), 0), 137).text_0); - newNode = new TNode(index_0++, tGraph, label_0); - $copyProperties(newNode, elknode); - $setProperty_0(newNode, ($clinit_InternalProperties_2() , ORIGIN_1), elknode); - newNode.pos.y_0 = elknode.y_0 + elknode.height / 2; - newNode.size_0.x_0 = $wnd.Math.max(elknode.width_0, 1); - newNode.pos.x_0 = elknode.x_0 + elknode.width_0 / 2; - newNode.size_0.y_0 = $wnd.Math.max(elknode.height, 1); - $add_7(tGraph.nodes, newNode); - $put_9(elemMap.hashCodeMap, elknode, newNode); - } -} - -function toNodeBorder(center, next, size_0){ - var absx, absy, hh, scale, wh, xscale, yscale; - wh = size_0.x_0 / 2; - hh = size_0.y_0 / 2; - absx = $wnd.Math.abs(next.x_0 - center.x_0); - absy = $wnd.Math.abs(next.y_0 - center.y_0); - xscale = 1; - yscale = 1; - absx > wh && (xscale = wh / absx); - absy > hh && (yscale = hh / absy); - scale = $wnd.Math.min(xscale, yscale); - center.x_0 += scale * (next.x_0 - center.x_0); - center.y_0 += scale * (next.y_0 - center.y_0); -} - -function $doLayout_0(this$static, tgraph, progressMonitor){ - $begin(progressMonitor, 'Tree layout', 1); - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_TreeLayoutPhases() , P1_TREEIFICATION), P1_TREEIFICATION); - $setPhase(this$static.algorithmAssembler, P2_NODE_ORDERING, P2_NODE_ORDERING); - $setPhase(this$static.algorithmAssembler, P3_NODE_PLACEMENT, P3_NODE_PLACEMENT); - $setPhase(this$static.algorithmAssembler, P4_EDGE_ROUTING, P4_EDGE_ROUTING); - this$static.algorithm = $build_0(this$static.algorithmAssembler, tgraph); - $layout_2(this$static, tgraph, $subTask(progressMonitor, 1)); - $done_0(progressMonitor); - return tgraph; -} - -function $layout_2(this$static, graph, themonitor){ - var i, monitor, processor, processor$iterator, slot; - monitor = themonitor; - !monitor && (monitor = new BasicProgressMonitor); - $begin(monitor, 'Layout', this$static.algorithm.array.length); - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , DEBUG_MODE_0))))) { - $clinit_System(); - for (i = 0; i < this$static.algorithm.array.length; i++) { - slot = (i < 10?'0':'') + i++; - ' Slot ' + slot + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(castTo($get_11(this$static.algorithm, i), 51))); - } - } - for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(graph, $subTask(monitor, 1)); - } - $done_0(monitor); -} - -function MrTree(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit); -} - -defineClass(1233, 1, {}, MrTree); -var Lorg_eclipse_elk_alg_mrtree_MrTree_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'MrTree', 1233); -function $clinit_TreeLayoutPhases(){ - $clinit_TreeLayoutPhases = emptyMethod; - P1_TREEIFICATION = new TreeLayoutPhases('P1_TREEIFICATION', 0); - P2_NODE_ORDERING = new TreeLayoutPhases('P2_NODE_ORDERING', 1); - P3_NODE_PLACEMENT = new TreeLayoutPhases('P3_NODE_PLACEMENT', 2); - P4_EDGE_ROUTING = new TreeLayoutPhases('P4_EDGE_ROUTING', 3); -} - -function $create_8(this$static){ - switch (this$static.ordinal) { - case 0: - return new DFSTreeifyer; - case 1: - return new NodeOrderer; - case 2: - return new NodePlacer; - case 3: - return new EdgeRouter; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout phase ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function TreeLayoutPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_73(name_0){ - $clinit_TreeLayoutPhases(); - return valueOf(($clinit_TreeLayoutPhases$Map() , $MAP_61), name_0); -} - -function values_79(){ - $clinit_TreeLayoutPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]); -} - -defineClass(393, 22, {3:1, 35:1, 22:1, 393:1, 246:1, 234:1}, TreeLayoutPhases); -_.create_1 = function create_19(){ - return $create_8(this); -} -; -_.create_2 = function create_18(){ - return $create_8(this); -} -; -var P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING; -var Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree', 'TreeLayoutPhases', 393, Ljava_lang_Enum_2_classLit, values_79, valueOf_73); -function $clinit_TreeLayoutPhases$Map(){ - $clinit_TreeLayoutPhases$Map = emptyMethod; - $MAP_61 = createValueOfMap(($clinit_TreeLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit, 1), $intern_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]))); -} - -var $MAP_61; -function TreeLayoutProvider(){ - this.klayTree = new MrTree; - this.componentsProcessor = new ComponentsProcessor_1; -} - -defineClass(1130, 209, $intern_96, TreeLayoutProvider); -_.layout = function layout_3(layoutGraph, progressMonitor){ - var builder, comp, comp$iterator, components, tGraph, tGraph_0, elemMap; - $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_MrTreeOptions() , OMIT_NODE_MICRO_LAYOUT_1)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); - tGraph = (tGraph_0 = new TGraph , $copyProperties(tGraph_0, layoutGraph) , $setProperty_0(tGraph_0, ($clinit_InternalProperties_2() , ORIGIN_1), layoutGraph) , elemMap = new HashMap , $transformNodes_1(layoutGraph, tGraph_0, elemMap) , $transformEdges_1(layoutGraph, tGraph_0, elemMap) , tGraph_0); - components = $split_4(this.componentsProcessor, tGraph); - for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { - comp = castTo($next_7(comp$iterator), 135); - $doLayout_0(this.klayTree, comp, $subTask(progressMonitor, 1 / components.array.length)); - } - tGraph = $pack(components); - $applyLayout_4(tGraph); -} -; -var Lorg_eclipse_elk_alg_mrtree_TreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeLayoutProvider', 1130); -function getLeftMost(currentlevel, depth){ - var cN, cN$iterator, d, nextLevel; - if (0 < (instanceOf(currentlevel, 14)?castTo(currentlevel, 14).size_1():size_24(currentlevel.iterator_0()))) { - d = depth; - if (1 < d) { - --d; - nextLevel = new TreeUtil$1; - for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - } - return getLeftMost(nextLevel, d); - } - if (d < 0) { - nextLevel = new TreeUtil$2; - for (cN$iterator = currentlevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - } - if (0 < (instanceOf(nextLevel, 14)?castTo(nextLevel, 14).size_1():size_24(nextLevel.iterator_0()))) { - return getLeftMost(nextLevel, d); - } - } - } - return castTo(getNext(currentlevel.iterator_0()), 86); -} - -function TreeUtil$1(){ -} - -defineClass(1847, 1, $intern_23, TreeUtil$1); -_.forEach_0 = function forEach_31(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_73(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_TreeUtil$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/1', 1847); -function TreeUtil$2(){ -} - -defineClass(1848, 1, $intern_23, TreeUtil$2); -_.forEach_0 = function forEach_32(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_74(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_TreeUtil$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeUtil/2', 1848); -defineClass(502, 134, {3:1, 502:1, 94:1, 134:1}); -_.id_0 = 0; -var Lorg_eclipse_elk_alg_mrtree_graph_TGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraphElement', 502); -function TEdge_0(source, target){ - new LinkedList; - this.bendPoints = new KVectorChain; - this.source = source; - this.target = target; -} - -defineClass(188, 502, {3:1, 188:1, 502:1, 94:1, 134:1}, TEdge_0); -_.toString_0 = function toString_108(){ - return !!this.source && !!this.target?$toString_15(this.source) + '->' + $toString_15(this.target):'e_' + hashCode__I__devirtual$(this); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TEdge', 188); -function TGraph(){ - this.nodes = new LinkedList; - this.edges = new LinkedList; - this.nodes = new LinkedList; - this.edges = new LinkedList; -} - -defineClass(135, 134, {3:1, 135:1, 94:1, 134:1}, TGraph); -_.toString_0 = function toString_109(){ - var tEdge, tEdge$iterator, tNode, tNode$iterator, tmp; - tmp = null; - for (tNode$iterator = $listIterator_2(this.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - tmp += (tNode.label_0 == null || tNode.label_0.length == 0?'n_' + tNode.id_0:'n_' + tNode.label_0) + '\n'; - } - for (tEdge$iterator = $listIterator_2(this.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - tmp += (!!tEdge.source && !!tEdge.target?$toString_15(tEdge.source) + '->' + $toString_15(tEdge.target):'e_' + hashCode__I__devirtual$(tEdge)) + '\n'; - } - return tmp; -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraph', 135); -defineClass(633, 502, {3:1, 502:1, 633:1, 94:1, 134:1}); -var Lorg_eclipse_elk_alg_mrtree_graph_TShape_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TShape', 633); -function $getChildrenCopy(this$static){ - var children, iEdge, iEdge$iterator; - children = new LinkedList; - for (iEdge$iterator = $listIterator_2(this$static.outgoingEdges, 0); iEdge$iterator.currentNode != iEdge$iterator.this$01.tail;) { - iEdge = castTo($next_10(iEdge$iterator), 188); - $add_7(children, iEdge.target); - } - return children; -} - -function $getParent(this$static){ - var edges; - edges = this$static.incomingEdges; - if (edges.size_0 == 0) { - return null; - } - return castTo($get_7(edges, 0), 188).source; -} - -function $toString_15(this$static){ - return this$static.label_0 == null || this$static.label_0.length == 0?'n_' + this$static.id_0:'n_' + this$static.label_0; -} - -function TNode(id_0, graph, label_0){ - this.id_0 = id_0; - this.pos = new KVector; - this.size_0 = new KVector; - this.outgoingEdges = new LinkedList; - this.incomingEdges = new LinkedList; - this.graph_0 = graph; - this.label_0 = label_0; -} - -defineClass(86, 633, {3:1, 502:1, 86:1, 633:1, 94:1, 134:1}, TNode); -_.toString_0 = function toString_110(){ - return $toString_15(this); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode', 86); -function TNode$2(this$0){ - this.this$01 = this$0; -} - -defineClass(255, 1, $intern_23, TNode$2); -_.forEach_0 = function forEach_33(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_75(){ - var edgesIter; - return edgesIter = $listIterator_2(this.this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2', 255); -function TNode$2$1(val$edgesIter){ - this.val$edgesIter2 = val$edgesIter; -} - -defineClass(358, 1, $intern_6, TNode$2$1); -_.forEachRemaining = function forEachRemaining_50(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_40(){ - return castTo($next_10(this.val$edgesIter2), 188).target; -} -; -_.hasNext_0 = function hasNext_39(){ - return $hasNext_5(this.val$edgesIter2); -} -; -_.remove = function remove_95(){ - $remove_24(this.val$edgesIter2); -} -; -var Lorg_eclipse_elk_alg_mrtree_graph_TNode$2$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TNode/2/1', 358); -function $calculateFan(this$static, currentLevel){ - var blockSize, digits, edgesIter, gloValue, i, id_0, index_0, key, locEntry, locEntry$iterator, locFanMap, nextLevel, pId, tChild, tChild$iterator, tNode, tNode$iterator, tNode$iterator0; - if (currentLevel.size_0 != 0) { - nextLevel = new LinkedList; - id_0 = null; - pId = null; - digits = round_int($wnd.Math.floor($wnd.Math.log(currentLevel.size_0) * $wnd.Math.LOG10E) + 1); - index_0 = 0; - for (tNode$iterator0 = $listIterator_2(currentLevel, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator0), 86); - if (maskUndefined(pId) !== maskUndefined($getProperty(tNode, ($clinit_InternalProperties_2() , ID)))) { - pId = castToString($getProperty(tNode, ID)); - index_0 = 0; - } - pId != null?(id_0 = pId + formatRight(index_0++, digits)):(id_0 = formatRight(index_0++, digits)); - $setProperty_0(tNode, ID, id_0); - for (tChild$iterator = (edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter)); $hasNext_5(tChild$iterator.val$edgesIter2);) { - tChild = castTo($next_10(tChild$iterator.val$edgesIter2), 188).target; - $addNode_0(nextLevel, tChild, nextLevel.tail.prev, nextLevel.tail); - $setProperty_0(tChild, ID, id_0); - } - } - locFanMap = new HashMap; - for (i = 0; i < id_0.length - digits; i++) { - for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - key = $substring_1(castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))), 0, i + 1); - blockSize = (key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key)) != null?castTo(key == null?getEntryValueOrNull($getEntry_0(locFanMap.hashCodeMap, null)):$get_15(locFanMap.stringMap, key), 19).value_0 + 1:1; - $putStringValue(locFanMap, key, valueOf_4(blockSize)); - } - } - for (locEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(locFanMap)).this$01); locEntry$iterator.hasNext;) { - locEntry = $next_4(locEntry$iterator); - gloValue = valueOf_4($get_10(this$static.gloDescMap, locEntry.getKey()) != null?castTo($get_10(this$static.gloDescMap, locEntry.getKey()), 19).value_0:0); - $putStringValue(this$static.gloDescMap, castToString(locEntry.getKey()), valueOf_4(castTo(locEntry.getValue(), 19).value_0 + gloValue.value_0)); - gloValue = castTo($get_10(this$static.gloFanMap, locEntry.getKey()), 19); - (!gloValue || gloValue.value_0 < castTo(locEntry.getValue(), 19).value_0) && $putStringValue(this$static.gloFanMap, castToString(locEntry.getKey()), castTo(locEntry.getValue(), 19)); - } - $calculateFan(this$static, nextLevel); - } -} - -function $process_79(this$static, tGraph, progressMonitor){ - var desc, fan, it, key, root, rootLevel, tNode, tNode$iterator; - $begin(progressMonitor, 'Processor compute fanout', 1); - $reset(this$static.gloFanMap); - $reset(this$static.gloDescMap); - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - rootLevel = new LinkedList; - $addNode_0(rootLevel, root, rootLevel.tail.prev, rootLevel.tail); - $calculateFan(this$static, rootLevel); - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - key = castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))); - fan = $getStringValue(this$static.gloFanMap, key) != null?castTo($getStringValue(this$static.gloFanMap, key), 19).value_0:0; - $setProperty_0(tNode, FAN, valueOf_4(fan)); - desc = 1 + ($getStringValue(this$static.gloDescMap, key) != null?castTo($getStringValue(this$static.gloDescMap, key), 19).value_0:0); - $setProperty_0(tNode, DESCENDANTS, valueOf_4(desc)); - } - $done_0(progressMonitor); -} - -function FanProcessor(){ - this.gloFanMap = new HashMap; - this.gloDescMap = new HashMap; -} - -function formatRight(value_0, len){ - var s; - s = value_0 + ''; - while (s.length < len) { - s = '0' + s; - } - return s; -} - -defineClass(1840, 1, $intern_105, FanProcessor); -_.process = function process_75(tGraph, progressMonitor){ - $process_79(this, castTo(tGraph, 135), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_FanProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'FanProcessor', 1840); -function $clinit_IntermediateProcessorStrategy_0(){ - $clinit_IntermediateProcessorStrategy_0 = emptyMethod; - ROOT_PROC = new IntermediateProcessorStrategy_0('ROOT_PROC', 0); - FAN_PROC = new IntermediateProcessorStrategy_0('FAN_PROC', 1); - NEIGHBORS_PROC = new IntermediateProcessorStrategy_0('NEIGHBORS_PROC', 2); - LEVEL_HEIGHT = new IntermediateProcessorStrategy_0('LEVEL_HEIGHT', 3); - NODE_POSITION_PROC = new IntermediateProcessorStrategy_0('NODE_POSITION_PROC', 4); - DETREEIFYING_PROC = new IntermediateProcessorStrategy_0('DETREEIFYING_PROC', 5); -} - -function IntermediateProcessorStrategy_0(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_74(name_0){ - $clinit_IntermediateProcessorStrategy_0(); - return valueOf(($clinit_IntermediateProcessorStrategy$Map_0() , $MAP_62), name_0); -} - -function values_80(){ - $clinit_IntermediateProcessorStrategy_0(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]); -} - -defineClass(327, 22, {3:1, 35:1, 22:1, 327:1, 234:1}, IntermediateProcessorStrategy_0); -_.create_1 = function create_20(){ - switch (this.ordinal) { - case 0: - return new RootProcessor; - case 1: - return new FanProcessor; - case 2: - return new NeighborsProcessor; - case 3: - return new LevelHeightProcessor; - case 4: - return new NodePositionProcessor; - case 5: - return new Untreeifyer; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); - } -} -; -var DETREEIFYING_PROC, FAN_PROC, LEVEL_HEIGHT, NEIGHBORS_PROC, NODE_POSITION_PROC, ROOT_PROC; -var Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.intermediate', 'IntermediateProcessorStrategy', 327, Ljava_lang_Enum_2_classLit, values_80, valueOf_74); -function $clinit_IntermediateProcessorStrategy$Map_0(){ - $clinit_IntermediateProcessorStrategy$Map_0 = emptyMethod; - $MAP_62 = createValueOfMap(($clinit_IntermediateProcessorStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]))); -} - -var $MAP_62; -function $process_80(this$static, tGraph, progressMonitor){ - var it, root, tNode; - $begin(progressMonitor, 'Processor determine the height for each level', 1); - this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - !!root && $setNeighbors(this$static, newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TNode_2_classLit, 1), $intern_100, 86, 0, [root])), progressMonitor); - $done_0(progressMonitor); -} - -function $setNeighbors(this$static, currentLevel, progressMonitor){ - var cN, cN$iterator, cN$iterator0, height, nextLevel, sT; - if (!isEmpty_13(currentLevel)) { - sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); - $begin(sT, 'Set neighbors in level', 1); - nextLevel = new LevelHeightProcessor$1; - height = 0; - for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { - cN = castTo(cN$iterator0.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - height < cN.size_0.y_0 && (height = cN.size_0.y_0); - } - for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - $setProperty_0(cN, ($clinit_InternalProperties_2() , LEVELHEIGHT), height); - } - $done_0(sT); - $setNeighbors(this$static, nextLevel, progressMonitor); - } -} - -function LevelHeightProcessor(){ -} - -defineClass(1843, 1, $intern_105, LevelHeightProcessor); -_.process = function process_76(tGraph, progressMonitor){ - $process_80(this, castTo(tGraph, 135), progressMonitor); -} -; -_.numberOfNodes = 0; -var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor', 1843); -function LevelHeightProcessor$1(){ -} - -defineClass(1844, 1, $intern_23, LevelHeightProcessor$1); -_.forEach_0 = function forEach_34(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_76(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor/1', 1844); -function $process_81(this$static, tGraph, progressMonitor){ - var it, root, tNode; - $begin(progressMonitor, 'Processor set neighbors', 1); - this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - !!root && $setNeighbors_0(this$static, new TNode$2(root), progressMonitor); - $done_0(progressMonitor); -} - -function $setNeighbors_0(this$static, currentLevel, progressMonitor){ - var cN, cN$iterator, lN, nextLevel, sT; - if (!isEmpty_13(currentLevel)) { - sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); - $begin(sT, 'Set neighbors in level', 1); - nextLevel = new NeighborsProcessor$1; - lN = null; - for (cN$iterator = currentLevel.iterator_0(); cN$iterator.hasNext_0();) { - cN = castTo(cN$iterator.next_1(), 86); - nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); - if (lN) { - $setProperty_0(lN, ($clinit_InternalProperties_2() , RIGHTNEIGHBOR), cN); - $setProperty_0(cN, LEFTNEIGHBOR, lN); - if ($getParent(cN) == $getParent(lN)) { - $setProperty_0(lN, RIGHTSIBLING, cN); - $setProperty_0(cN, LEFTSIBLING, lN); - } - } - lN = cN; - } - $done_0(sT); - $setNeighbors_0(this$static, nextLevel, progressMonitor); - } -} - -function NeighborsProcessor(){ -} - -defineClass(1841, 1, $intern_105, NeighborsProcessor); -_.process = function process_77(tGraph, progressMonitor){ - $process_81(this, castTo(tGraph, 135), progressMonitor); -} -; -_.numberOfNodes = 0; -var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor', 1841); -function NeighborsProcessor$1(){ -} - -defineClass(1842, 1, $intern_23, NeighborsProcessor$1); -_.forEach_0 = function forEach_35(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_77(){ - return $clinit_Collections() , $clinit_Collections$EmptyListIterator() , INSTANCE_4; -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor/1', 1842); -function $process_82(this$static, tGraph, progressMonitor){ - var it, pos, root, tNode; - $begin(progressMonitor, 'Processor set coordinates', 1); - this$static.numberOfNodes = tGraph.nodes.size_0 == 0?1:tGraph.nodes.size_0; - root = null; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - if ($booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0))))) { - root = tNode; - pos = tNode.pos; - pos.x_0 = castTo($getProperty(tNode, XCOOR), 19).value_0; - pos.y_0 = 0; - } - } - $setCoordinates(this$static, $getChildrenCopy(root), $subTask(progressMonitor, 1)); - $done_0(progressMonitor); -} - -function $setCoordinates(this$static, currentLevel, progressMonitor){ - var nextLevel, pos, tNode, tNode$iterator; - if (currentLevel.size_0 != 0) { - nextLevel = new LinkedList; - for (tNode$iterator = $listIterator_2(currentLevel, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - $addAll(nextLevel, $getChildrenCopy(tNode)); - pos = tNode.pos; - pos.x_0 = castTo($getProperty(tNode, ($clinit_InternalProperties_2() , XCOOR)), 19).value_0; - pos.y_0 = castTo($getProperty(tNode, YCOOR), 19).value_0; - } - $setCoordinates(this$static, nextLevel, $subTask(progressMonitor, nextLevel.size_0 / this$static.numberOfNodes | 0)); - } -} - -function NodePositionProcessor(){ -} - -defineClass(1845, 1, $intern_105, NodePositionProcessor); -_.process = function process_78(tGraph, progressMonitor){ - $process_82(this, castTo(tGraph, 135), progressMonitor); -} -; -_.numberOfNodes = 0; -var Lorg_eclipse_elk_alg_mrtree_intermediate_NodePositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NodePositionProcessor', 1845); -function $process_83(this$static, tGraph){ - var node, node$iterator, root, superRoot, tRoot, tRoot$iterator, newEdge; - this$static.roots.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - if (node.incomingEdges.size_0 == 0) { - $setProperty_0(node, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); - $add_3(this$static.roots, node); - } - } - switch (this$static.roots.array.length) { - case 0: - root = new TNode(0, tGraph, 'DUMMY_ROOT'); - $setProperty_0(root, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); - $setProperty_0(root, DUMMY, true); - $add_7(tGraph.nodes, root); - break; - case 1: - break; - default:superRoot = new TNode(0, tGraph, 'SUPER_ROOT'); - for (tRoot$iterator = new ArrayList$1(this$static.roots); tRoot$iterator.i < tRoot$iterator.this$01.array.length;) { - tRoot = castTo($next_7(tRoot$iterator), 86); - newEdge = new TEdge_0(superRoot, tRoot); - $setProperty_0(newEdge, ($clinit_InternalProperties_2() , DUMMY), ($clinit_Boolean() , true)); - $add_7(superRoot.graph_0.edges, newEdge); - $add_7(superRoot.outgoingEdges, newEdge); - $add_7(tRoot.incomingEdges, newEdge); - $setProperty_0(tRoot, ROOT_0, false); - } - - $setProperty_0(superRoot, ($clinit_InternalProperties_2() , ROOT_0), ($clinit_Boolean() , true)); - $setProperty_0(superRoot, DUMMY, true); - $add_7(tGraph.nodes, superRoot); - } -} - -function RootProcessor(){ - this.roots = new ArrayList; -} - -defineClass(1839, 1, $intern_105, RootProcessor); -_.process = function process_79(tGraph, progressMonitor){ - $process_83(this, castTo(tGraph, 135)); -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_RootProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'RootProcessor', 1839); -function $process_84(tGraph){ - var edges, tEdge, tEdge$iterator; - edges = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES)), 15); - for (tEdge$iterator = edges.iterator_0(); tEdge$iterator.hasNext_0();) { - tEdge = castTo(tEdge$iterator.next_1(), 188); - $add_7(tEdge.source.outgoingEdges, tEdge); - $add_7(tEdge.target.incomingEdges, tEdge); - } -} - -function Untreeifyer(){ -} - -defineClass(1846, 1, $intern_105, Untreeifyer); -_.process = function process_80(tGraph, progressMonitor){ - $process_84(castTo(tGraph, 135)); -} -; -var Lorg_eclipse_elk_alg_mrtree_intermediate_Untreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'Untreeifyer', 1846); -function $clinit_InternalProperties_2(){ - $clinit_InternalProperties_2 = emptyMethod; - ORIGIN_1 = new Property('origin'); - new Property('random'); - new Property_0('DEPTH', valueOf_4(0)); - FAN = new Property_0('FAN', valueOf_4(0)); - DESCENDANTS = new Property_0('DESCENDANTS', valueOf_4(0)); - ROOT_0 = new Property_0('ROOT', ($clinit_Boolean() , false)); - LEFTNEIGHBOR = new Property_0('LEFTNEIGHBOR', null); - RIGHTNEIGHBOR = new Property_0('RIGHTNEIGHBOR', null); - LEFTSIBLING = new Property_0('LEFTSIBLING', null); - RIGHTSIBLING = new Property_0('RIGHTSIBLING', null); - DUMMY = new Property_0('DUMMY', false); - new Property_0('LEVEL', valueOf_4(0)); - REMOVABLE_EDGES = new Property_0('REMOVABLE_EDGES', new LinkedList); - XCOOR = new Property_0('XCOOR', valueOf_4(0)); - YCOOR = new Property_0('YCOOR', valueOf_4(0)); - LEVELHEIGHT = new Property_0('LEVELHEIGHT', 0); - ID = new Property_0('ID', ''); - POSITION_0 = new Property_0('POSITION', valueOf_4(0)); - PRELIM = new Property_0('PRELIM', 0); - MODIFIER = new Property_0('MODIFIER', 0); - BB_UPLEFT_0 = new Property('boundingBox.upLeft'); - BB_LOWRIGHT_0 = new Property('boundingBox.lowRight'); -} - -var BB_LOWRIGHT_0, BB_UPLEFT_0, DESCENDANTS, DUMMY, FAN, ID, LEFTNEIGHBOR, LEFTSIBLING, LEVELHEIGHT, MODIFIER, ORIGIN_1, POSITION_0, PRELIM, REMOVABLE_EDGES, RIGHTNEIGHBOR, RIGHTSIBLING, ROOT_0, XCOOR, YCOOR; -function $clinit_MrTreeMetaDataProvider(){ - $clinit_MrTreeMetaDataProvider = emptyMethod; - WEIGHTING_DEFAULT = ($clinit_OrderWeighting() , DESCENDANTS_0); - WEIGHTING = new Property_1('org.eclipse.elk.mrtree.weighting', WEIGHTING_DEFAULT); - SEARCH_ORDER_DEFAULT = ($clinit_TreeifyingOrder() , DFS); - SEARCH_ORDER = new Property_1('org.eclipse.elk.mrtree.searchOrder', SEARCH_ORDER_DEFAULT); -} - -function MrTreeMetaDataProvider(){ - $clinit_MrTreeMetaDataProvider(); -} - -defineClass(851, 1, $intern_90, MrTreeMetaDataProvider); -_.apply_4 = function apply_157(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.weighting'), ''), 'Weighting of Nodes'), 'Which weighting to use when computing a node order.'), WEIGHTING_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.mrtree.searchOrder'), ''), 'Search Order'), 'Which search order to use when computing a spanning tree.'), SEARCH_ORDER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit), of_1(PARENTS)))); - $apply_19((new MrTreeOptions , registry)); -} -; -var SEARCH_ORDER, SEARCH_ORDER_DEFAULT, WEIGHTING, WEIGHTING_DEFAULT; -var Lorg_eclipse_elk_alg_mrtree_options_MrTreeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeMetaDataProvider', 851); -function $clinit_MrTreeOptions(){ - $clinit_MrTreeOptions = emptyMethod; - PADDING_DEFAULT_1 = new ElkPadding_0(20); - PADDING_2 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_1); - SPACING_NODE_NODE_1 = new Property_2(SPACING_NODE_NODE_6, 20); - ASPECT_RATIO_2 = new Property_2(ASPECT_RATIO_5, $intern_102); - PRIORITY_1 = new Property_2(PRIORITY_3, valueOf_4(1)); - SEPARATE_CONNECTED_COMPONENTS_1 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); - DEBUG_MODE_0 = DEBUG_MODE_3; - NODE_SIZE_CONSTRAINTS_2 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_1 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_2 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_2 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_1 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_2 = PORT_LABELS_PLACEMENT_5; - WEIGHTING_0 = ($clinit_MrTreeMetaDataProvider() , WEIGHTING); - SEARCH_ORDER_0 = SEARCH_ORDER; -} - -function $apply_19(registry){ - $register(registry, new LayoutAlgorithmData($supportedFeatures($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.mrtree'), 'ELK Mr. Tree'), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new MrTreeOptions$MrtreeFactory), 'org.eclipse.elk.tree'), of_1(($clinit_GraphFeature() , DISCONNECTED))))); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.padding', PADDING_DEFAULT_1); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.spacing.nodeNode', 20); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.aspectRatio', $intern_102); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.priority', valueOf_4(1)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.separateConnectedComponents', ($clinit_Boolean() , true)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.debugMode', $getDefault(DEBUG_MODE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_1)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_1)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_2)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.weighting', $getDefault(WEIGHTING_0)); - $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.mrtree.searchOrder', $getDefault(SEARCH_ORDER_0)); -} - -function MrTreeOptions(){ - $clinit_MrTreeOptions(); -} - -defineClass(994, 1, $intern_90, MrTreeOptions); -_.apply_4 = function apply_158(registry){ - $apply_19(registry); -} -; -var ASPECT_RATIO_2, DEBUG_MODE_0, NODE_LABELS_PLACEMENT_2, NODE_SIZE_CONSTRAINTS_2, NODE_SIZE_MINIMUM_1, NODE_SIZE_OPTIONS_2, OMIT_NODE_MICRO_LAYOUT_1, PADDING_2, PADDING_DEFAULT_1, PORT_LABELS_PLACEMENT_2, PRIORITY_1, SEARCH_ORDER_0, SEPARATE_CONNECTED_COMPONENTS_1, SPACING_NODE_NODE_1, WEIGHTING_0; -var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions', 994); -function MrTreeOptions$MrtreeFactory(){ -} - -defineClass(995, 1, {}, MrTreeOptions$MrtreeFactory); -_.create_0 = function create_21(){ - var provider; - return provider = new TreeLayoutProvider , provider; -} -; -_.destroy = function destroy_3(obj){ -} -; -var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions$MrtreeFactory_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions/MrtreeFactory', 995); -function $clinit_OrderWeighting(){ - $clinit_OrderWeighting = emptyMethod; - DESCENDANTS_0 = new OrderWeighting('DESCENDANTS', 0); - FAN_0 = new OrderWeighting('FAN', 1); -} - -function OrderWeighting(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_75(name_0){ - $clinit_OrderWeighting(); - return valueOf(($clinit_OrderWeighting$Map() , $MAP_63), name_0); -} - -function values_81(){ - $clinit_OrderWeighting(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]); -} - -defineClass(480, 22, {3:1, 35:1, 22:1, 480:1}, OrderWeighting); -var DESCENDANTS_0, FAN_0; -var Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'OrderWeighting', 480, Ljava_lang_Enum_2_classLit, values_81, valueOf_75); -function $clinit_OrderWeighting$Map(){ - $clinit_OrderWeighting$Map = emptyMethod; - $MAP_63 = createValueOfMap(($clinit_OrderWeighting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]))); -} - -var $MAP_63; -function $clinit_TreeifyingOrder(){ - $clinit_TreeifyingOrder = emptyMethod; - DFS = new TreeifyingOrder('DFS', 0); - BFS = new TreeifyingOrder('BFS', 1); -} - -function TreeifyingOrder(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_76(name_0){ - $clinit_TreeifyingOrder(); - return valueOf(($clinit_TreeifyingOrder$Map() , $MAP_64), name_0); -} - -function values_82(){ - $clinit_TreeifyingOrder(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]); -} - -defineClass(425, 22, {3:1, 35:1, 22:1, 425:1}, TreeifyingOrder); -var BFS, DFS; -var Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'TreeifyingOrder', 425, Ljava_lang_Enum_2_classLit, values_82, valueOf_76); -function $clinit_TreeifyingOrder$Map(){ - $clinit_TreeifyingOrder$Map = emptyMethod; - $MAP_64 = createValueOfMap(($clinit_TreeifyingOrder() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 425, 0, [DFS, BFS]))); -} - -var $MAP_64; -function $clinit_DFSTreeifyer(){ - $clinit_DFSTreeifyer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG = $addAfter(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P4_EDGE_ROUTING), ($clinit_IntermediateProcessorStrategy_0() , DETREEIFYING_PROC)); -} - -function $bfs(this$static, startNode){ - var node, nodeQueue, tEdge, tEdge$iterator, target; - nodeQueue = new LinkedList; - $addNode_0(nodeQueue, startNode, nodeQueue.tail.prev, nodeQueue.tail); - do { - node = (checkCriticalElement(nodeQueue.size_0 != 0) , castTo($removeNode_0(nodeQueue, nodeQueue.header.next_0), 86)); - this$static.visited[node.id_0] = 1; - for (tEdge$iterator = $listIterator_2(node.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - target = tEdge.target; - this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$addNode_0(nodeQueue, target, nodeQueue.tail.prev, nodeQueue.tail); - } - } - while (nodeQueue.size_0 != 0); -} - -function $collectEdges(this$static, tGraph){ - var tEdge, tEdge$iterator, tNode, tNode$iterator, treeifyingOrder; - treeifyingOrder = castTo($getProperty(tGraph, ($clinit_MrTreeOptions() , SEARCH_ORDER_0)), 425); - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - if (this$static.visited[tNode.id_0] == 0) { - switch (treeifyingOrder.ordinal) { - case 0: - $dfs_6(this$static, tNode); - break; - case 1: - $bfs(this$static, tNode); - } - this$static.visited[tNode.id_0] = 2; - } - } - for (tEdge$iterator = $listIterator_2(this$static.eliminated, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - $advanceToFind(tEdge.source.outgoingEdges, tEdge, true); - $advanceToFind(tEdge.target.incomingEdges, tEdge, true); - } - $setProperty_0(tGraph, ($clinit_InternalProperties_2() , REMOVABLE_EDGES), this$static.eliminated); -} - -function $dfs_6(this$static, tNode){ - var tEdge, tEdge$iterator, target; - this$static.visited[tNode.id_0] = 1; - for (tEdge$iterator = $listIterator_2(tNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - target = tEdge.target; - this$static.visited[target.id_0] == 1?$add_7(this$static.eliminated, tEdge):this$static.visited[target.id_0] == 2?(this$static.visited[target.id_0] = 1):$dfs_6(this$static, target); - } -} - -function $init_1(this$static, tGraph){ - var id_0, node, node$iterator, size_0; - size_0 = tGraph.nodes.size_0; - this$static.eliminated = new LinkedList; - this$static.visited = initUnidimensionalArray(I_classLit, $intern_48, 25, size_0, 15, 1); - id_0 = 0; - for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { - node = castTo($next_10(node$iterator), 86); - node.id_0 = id_0++; - } -} - -function $process_85(this$static, tGraph, progressMonitor){ - $begin(progressMonitor, 'DFS Treeifying phase', 1); - $init_1(this$static, tGraph); - $collectEdges(this$static, tGraph); - this$static.eliminated = null; - this$static.visited = null; - $done_0(progressMonitor); -} - -function DFSTreeifyer(){ - $clinit_DFSTreeifyer(); -} - -defineClass(1459, 1, $intern_113, DFSTreeifyer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_20(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG; -} -; -_.process = function process_81(tGraph, progressMonitor){ - $process_85(this, castTo(tGraph, 135), progressMonitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIG; -var Lorg_eclipse_elk_alg_mrtree_p1treeify_DFSTreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p1treeify', 'DFSTreeifyer', 1459); -function $clinit_NodeOrderer(){ - $clinit_NodeOrderer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG_0 = $add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING)), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), FAN_PROC); -} - -function $orderLevel(this$static, currentLevel, progressMonitor){ - var children, fillGap, firstOcc, inners, it, leaves, notNull, pos, size_0, sortedOutEdges, tENode, tENode$iterator, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$iterator, tmp; - $begin(progressMonitor, 'Processor arrange level', 1); - pos = 0; - $clinit_Collections(); - $sort_0(currentLevel, new PropertyHolderComparator(($clinit_InternalProperties_2() , FAN))); - firstOcc = currentLevel.size_0; - it = $listIterator_2(currentLevel, currentLevel.size_0); - notNull = true; - while (notNull && it.currentNode.prev != it.this$01.header) { - tNode = castTo($previous_0(it), 86); - castTo($getProperty(tNode, FAN), 19).value_0 == 0?--firstOcc:(notNull = false); - } - tmp = new AbstractList$SubList(currentLevel, 0, firstOcc); - inners = new LinkedList_0(tmp); - tmp = new AbstractList$SubList(currentLevel, firstOcc, currentLevel.size_0); - leaves = new LinkedList_0(tmp); - if (inners.size_0 == 0) { - for (tENode$iterator = $listIterator_2(leaves, 0); tENode$iterator.currentNode != tENode$iterator.this$01.tail;) { - tENode = castTo($next_10(tENode$iterator), 86); - $setProperty_0(tENode, POSITION_0, valueOf_4(pos++)); - } - } - else { - size_0 = inners.size_0; - for (tPNode$iterator = $listIterator_2(inners, 0); tPNode$iterator.currentNode != tPNode$iterator.this$01.tail;) { - tPNode = castTo($next_10(tPNode$iterator), 86); - $setProperty_0(tPNode, POSITION_0, valueOf_4(pos++)); - children = $getChildrenCopy(tPNode); - $orderLevel(this$static, children, $subTask(progressMonitor, 1 / size_0 | 0)); - $sort_0(children, reverseOrder(new PropertyHolderComparator(POSITION_0))); - sortedOutEdges = new LinkedList; - for (tNode$iterator = $listIterator_2(children, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { - tEdge = castTo($next_10(tEdge$iterator), 188); - tEdge.target == tNode && ($addNode_0(sortedOutEdges, tEdge, sortedOutEdges.tail.prev, sortedOutEdges.tail) , true); - } - } - $reset_0(tPNode.outgoingEdges); - $addAll(tPNode.outgoingEdges, sortedOutEdges); - it = $listIterator_2(leaves, leaves.size_0); - fillGap = tPNode.outgoingEdges.size_0; - notNull = true; - while (0 < fillGap && notNull && it.currentNode.prev != it.this$01.header) { - tNode = castTo($previous_0(it), 86); - if (castTo($getProperty(tNode, FAN), 19).value_0 == 0) { - $setProperty_0(tNode, POSITION_0, valueOf_4(pos++)); - --fillGap; - $remove_24(it); - } - else { - notNull = false; - } - } - } - } - $done_0(progressMonitor); -} - -function $process_86(this$static, tGraph, progressMonitor){ - var it, root, roots, tNode; - $begin(progressMonitor, 'Processor arrange node', 1); - root = null; - roots = new LinkedList; - it = $listIterator_2(tGraph.nodes, 0); - while (!root && it.currentNode != it.this$01.tail) { - tNode = castTo($next_10(it), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); - } - $addNode_0(roots, root, roots.tail.prev, roots.tail); - $orderLevel(this$static, roots, $subTask(progressMonitor, 1)); - $done_0(progressMonitor); -} - -function NodeOrderer(){ - $clinit_NodeOrderer(); -} - -defineClass(1460, 1, $intern_113, NodeOrderer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_21(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_0; -} -; -_.process = function process_82(tGraph, progressMonitor){ - $process_86(this, castTo(tGraph, 135), progressMonitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIG_0; -var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer', 1460); -function $clinit_NodePlacer(){ - $clinit_NodePlacer = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG_1 = $addBefore($add_17($add_17($before($addBefore(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), P3_NODE_PLACEMENT), LEVEL_HEIGHT), NEIGHBORS_PROC), P4_EDGE_ROUTING, NODE_POSITION_PROC); -} - -function $apportion(this$static, cN){ - var ancestorLeftmost, ancestorNeighbor, compareDepth, edgesIter, edgesIter0, i, leftModSum, leftSibling, leftSiblings, leftmost, mean, moveDistance, neighbor, newMod, newPr, portion, prL, prN, rightModSum; - leftmost = castTo(getNext((edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0))), 86); - neighbor = leftmost?castTo($getProperty(leftmost, ($clinit_InternalProperties_2() , LEFTNEIGHBOR)), 86):null; - compareDepth = 1; - while (!!leftmost && !!neighbor) { - leftModSum = 0; - rightModSum = 0; - ancestorLeftmost = leftmost; - ancestorNeighbor = neighbor; - for (i = 0; i < compareDepth; i++) { - ancestorLeftmost = $getParent(ancestorLeftmost); - ancestorNeighbor = $getParent(ancestorNeighbor); - rightModSum += $doubleValue(castToDouble($getProperty(ancestorLeftmost, ($clinit_InternalProperties_2() , MODIFIER)))); - leftModSum += $doubleValue(castToDouble($getProperty(ancestorNeighbor, MODIFIER))); - } - prN = $doubleValue(castToDouble($getProperty(neighbor, ($clinit_InternalProperties_2() , PRELIM)))); - prL = $doubleValue(castToDouble($getProperty(leftmost, PRELIM))); - mean = $meanNodeWidth(leftmost, neighbor); - moveDistance = prN + leftModSum + this$static.spacing + mean - prL - rightModSum; - if (0 < moveDistance) { - leftSibling = cN; - leftSiblings = 0; - while (!!leftSibling && leftSibling != ancestorNeighbor) { - ++leftSiblings; - leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); - } - if (leftSibling) { - portion = moveDistance / leftSiblings; - leftSibling = cN; - while (leftSibling != ancestorNeighbor) { - newPr = $doubleValue(castToDouble($getProperty(leftSibling, PRELIM))) + moveDistance; - $setProperty_0(leftSibling, PRELIM, newPr); - newMod = $doubleValue(castToDouble($getProperty(leftSibling, MODIFIER))) + moveDistance; - $setProperty_0(leftSibling, MODIFIER, newMod); - moveDistance -= portion; - leftSibling = castTo($getProperty(leftSibling, LEFTSIBLING), 86); - } - } - else { - return; - } - } - ++compareDepth; - leftmost.outgoingEdges.size_0 == 0?(leftmost = getLeftMost(new TNode$2(cN), compareDepth)):(leftmost = castTo(getNext((edgesIter = $listIterator_2((new TNode$2(leftmost)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86)); - neighbor = leftmost?castTo($getProperty(leftmost, LEFTNEIGHBOR), 86):null; - } -} - -function $firstWalk(this$static, cN){ - var child, child$iterator, edgesIter, edgesIter0, edgesIter1, lM, lS, midPoint, p, rM; - $setProperty_0(cN, ($clinit_InternalProperties_2() , MODIFIER), 0); - lS = castTo($getProperty(cN, LEFTSIBLING), 86); - if (cN.outgoingEdges.size_0 == 0) { - if (lS) { - p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); - $setProperty_0(cN, PRELIM, p); - } - else { - $setProperty_0(cN, PRELIM, 0); - } - } - else { - for (child$iterator = (edgesIter0 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter0)); $hasNext_5(child$iterator.val$edgesIter2);) { - child = castTo($next_10(child$iterator.val$edgesIter2), 188).target; - $firstWalk(this$static, child); - } - lM = castTo(getNext((edgesIter1 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter1))), 86); - rM = castTo(getLast_1((edgesIter = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86); - midPoint = ($doubleValue(castToDouble($getProperty(rM, PRELIM))) + $doubleValue(castToDouble($getProperty(lM, PRELIM)))) / 2; - if (lS) { - p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(lS, cN); - $setProperty_0(cN, PRELIM, p); - $setProperty_0(cN, MODIFIER, $doubleValue(castToDouble($getProperty(cN, PRELIM))) - midPoint); - $apportion(this$static, cN); - } - else { - $setProperty_0(cN, PRELIM, midPoint); - } - } -} - -function $meanNodeWidth(leftNode, rightNode){ - var nodeWidth; - nodeWidth = 0; - !!leftNode && (nodeWidth += leftNode.size_0.x_0 / 2); - !!rightNode && (nodeWidth += rightNode.size_0.x_0 / 2); - return nodeWidth; -} - -function $process_87(this$static, tGraph, progressMonitor){ - var root, roots, tNode, tNode$iterator; - $begin(progressMonitor, 'Processor order nodes', 2); - this$static.spacing = $doubleValue(castToDouble($getProperty(tGraph, ($clinit_MrTreeOptions() , SPACING_NODE_NODE_1)))); - roots = new LinkedList; - for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { - tNode = castTo($next_10(tNode$iterator), 86); - $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && ($addNode_0(roots, tNode, roots.tail.prev, roots.tail) , true); - } - root = (checkCriticalElement(roots.size_0 != 0) , castTo(roots.header.next_0.value_0, 86)); - $firstWalk(this$static, root); - !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); - $secondWalk(this$static, root, 0 - $doubleValue(castToDouble($getProperty(root, ($clinit_InternalProperties_2() , LEVELHEIGHT)))) / 2, 0); - !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); - $done_0(progressMonitor); -} - -function $secondWalk(this$static, tNode, yCoor, modsum){ - var edgesIter, xTemp, yTemp; - if (tNode) { - xTemp = $doubleValue(castToDouble($getProperty(tNode, ($clinit_InternalProperties_2() , PRELIM)))) + modsum; - yTemp = yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) / 2; - $setProperty_0(tNode, XCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(xTemp))))); - $setProperty_0(tNode, YCOOR, valueOf_4(toInt_0(fromDouble_0($wnd.Math.round(yTemp))))); - tNode.outgoingEdges.size_0 == 0 || $secondWalk(this$static, castTo(getNext((edgesIter = $listIterator_2((new TNode$2(tNode)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86), yCoor + $doubleValue(castToDouble($getProperty(tNode, LEVELHEIGHT))) + this$static.spacing, modsum + $doubleValue(castToDouble($getProperty(tNode, MODIFIER)))); - $getProperty(tNode, RIGHTSIBLING) != null && $secondWalk(this$static, castTo($getProperty(tNode, RIGHTSIBLING), 86), yCoor, modsum); - } -} - -function NodePlacer(){ - $clinit_NodePlacer(); -} - -defineClass(1461, 1, $intern_113, NodePlacer); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_22(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_1; -} -; -_.process = function process_83(tGraph, progressMonitor){ - $process_87(this, castTo(tGraph, 135), progressMonitor); -} -; -_.spacing = 0; -var INTERMEDIATE_PROCESSING_CONFIG_1; -var Lorg_eclipse_elk_alg_mrtree_p3place_NodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p3place', 'NodePlacer', 1461); -function $clinit_EdgeRouter(){ - $clinit_EdgeRouter = emptyMethod; - INTERMEDIATE_PROCESSING_CONFIG_2 = new LayoutProcessorConfiguration; -} - -function $process_88(tGraph, progressMonitor){ - var tedge, tedge$iterator, tnode, tnode$iterator; - $begin(progressMonitor, 'Dull edge routing', 1); - for (tnode$iterator = $listIterator_2(tGraph.nodes, 0); tnode$iterator.currentNode != tnode$iterator.this$01.tail;) { - tnode = castTo($next_10(tnode$iterator), 86); - for (tedge$iterator = $listIterator_2(tnode.outgoingEdges, 0); tedge$iterator.currentNode != tedge$iterator.this$01.tail;) { - tedge = castTo($next_10(tedge$iterator), 188); - $reset_0(tedge.bendPoints); - } - } -} - -function EdgeRouter(){ - $clinit_EdgeRouter(); -} - -defineClass(1462, 1, $intern_113, EdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_23(graph){ - return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_2; -} -; -_.process = function process_84(tGraph, progressMonitor){ - $process_88(castTo(tGraph, 135), progressMonitor); -} -; -var INTERMEDIATE_PROCESSING_CONFIG_2; -var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter', 1462); -function $clinit_InternalProperties_3(){ - $clinit_InternalProperties_3 = emptyMethod; - ROOT_NODE = new Property('root'); -} - -var ROOT_NODE; -function $clinit_RadialLayoutPhases(){ - $clinit_RadialLayoutPhases = emptyMethod; - P1_NODE_PLACEMENT = new RadialLayoutPhases('P1_NODE_PLACEMENT', 0); - P2_EDGE_ROUTING = new RadialLayoutPhases('P2_EDGE_ROUTING', 1); -} - -function $create_9(this$static){ - switch (this$static.ordinal) { - case 0: - return new EadesRadial; - case 1: - return new StraightLineEdgeRouter; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function RadialLayoutPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_77(name_0){ - $clinit_RadialLayoutPhases(); - return valueOf(($clinit_RadialLayoutPhases$Map() , $MAP_65), name_0); -} - -function values_83(){ - $clinit_RadialLayoutPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]); -} - -defineClass(495, 22, {3:1, 35:1, 22:1, 495:1, 246:1, 234:1}, RadialLayoutPhases); -_.create_1 = function create_23(){ - return $create_9(this); -} -; -_.create_2 = function create_22(){ - return $create_9(this); -} -; -var P1_NODE_PLACEMENT, P2_EDGE_ROUTING; -var Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit = createForEnum('org.eclipse.elk.alg.radial', 'RadialLayoutPhases', 495, Ljava_lang_Enum_2_classLit, values_83, valueOf_77); -function $clinit_RadialLayoutPhases$Map(){ - $clinit_RadialLayoutPhases$Map = emptyMethod; - $MAP_65 = createValueOfMap(($clinit_RadialLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]))); -} - -var $MAP_65; -function $assembleAlgorithm(this$static, layoutGraph){ - var algorithm, configuration; - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_RadialLayoutPhases() , P1_NODE_PLACEMENT), P1_NODE_PLACEMENT); - $setPhase(this$static.algorithmAssembler, P2_EDGE_ROUTING, P2_EDGE_ROUTING); - configuration = new LayoutProcessorConfiguration; - $addBefore(configuration, P2_EDGE_ROUTING, ($clinit_IntermediateProcessorStrategy_1() , OVERLAP_REMOVAL)); - maskUndefined($getProperty_0(layoutGraph, ($clinit_RadialOptions() , COMPACTOR_0))) !== maskUndefined(($clinit_CompactionStrategy_0() , NONE_11)) && $addBefore(configuration, P2_EDGE_ROUTING, COMPACTION); - $addBefore(configuration, P2_EDGE_ROUTING, GRAPH_SIZE_CALCULATION); - $addProcessorConfiguration(this$static.algorithmAssembler, configuration); - algorithm = $build_0(this$static.algorithmAssembler, layoutGraph); - return algorithm; -} - -function RadialLayoutProvider(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit); -} - -defineClass(1131, 209, $intern_96, RadialLayoutProvider); -_.layout = function layout_4(layoutGraph, progressMonitor){ - var algorithm, builder, layoutRadius, processor, processor$iterator, root; - algorithm = $assembleAlgorithm(this, layoutGraph); - $begin(progressMonitor, 'Radial layout', algorithm.array.length); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, ($clinit_RadialOptions() , OMIT_NODE_MICRO_LAYOUT_2)))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); - root = findRoot(layoutGraph); - $setProperty_1(layoutGraph, ($clinit_InternalProperties_3() , ROOT_NODE), root); - if (!root) { - throw toJs(new IllegalArgumentException_0('The given graph is not a tree!')); - } - layoutRadius = $doubleValue(castToDouble($getProperty_0(layoutGraph, RADIUS_0))); - layoutRadius == 0 && (layoutRadius = findLargestNodeInGraph(layoutGraph)); - $setProperty_1(layoutGraph, RADIUS_0, layoutRadius); - for (processor$iterator = new ArrayList$1($assembleAlgorithm(this, layoutGraph)); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(layoutGraph, $subTask(progressMonitor, 1)); - } - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_RadialLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialLayoutProvider', 1131); -function findLargestNodeInGraph(graph){ - var child, child$iterator, diameter, height, largestChild, largestChildSize, width_0; - largestChildSize = 0; - for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - width_0 = child.width_0; - height = child.height; - diameter = $wnd.Math.sqrt(width_0 * width_0 + height * height); - largestChildSize = $wnd.Math.max(diameter, largestChildSize); - largestChild = findLargestNodeInGraph(child); - largestChildSize = $wnd.Math.max(largestChild, largestChildSize); - } - return largestChildSize; -} - -function findRoot(graph){ - var child, child$iterator, incomingEdges; - for (child$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - incomingEdges = allIncomingEdges(child); - if (!$hasNext_1(new Iterators$ConcatenatedIterator(transform_2(incomingEdges.val$inputs1.iterator_0(), new Iterables$10)))) { - return child; - } - } - return null; -} - -function findRootOfNode(elkNode){ - var parent_0; - parent_0 = getTreeParent(elkNode); - return !parent_0?elkNode:findRootOfNode(parent_0); -} - -function getNextLevelNodeSet(nodes){ - var nextLevelSet, node, node$iterator, successors; - successors = new HashSet; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - nextLevelSet = getSuccessorSet(node); - $addAll(successors, nextLevelSet); - } - return successors; -} - -function getNextLevelNodes(nodes){ - var nextLevelNodes, node, node$iterator, successors; - successors = new ArrayList; - for (node$iterator = nodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - nextLevelNodes = getSuccessors(node); - $addAll_2(successors, nextLevelNodes); - } - return successors; -} - -function getNumberOfLeaves(node){ - var child, child$iterator, leafs, successors; - leafs = 0; - successors = getSuccessors(node); - if (successors.array.length == 0) { - return 1; - } - else { - for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 33); - leafs += getNumberOfLeaves(child); - } - } - return leafs; -} - -function getSuccessorSet(node){ - var children, old, outgoingEdge, outgoingEdge$iterator, successors, target; - successors = new HashSet; - children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); - if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { - target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); - children.map_0.containsKey(target) || (old = successors.map_0.put(target, successors) , old == null); - } - } - return successors; -} - -function getSuccessors(node){ - var children, outgoingEdge, outgoingEdge$iterator, successors, target; - successors = new ArrayList; - children = new HashSet_1((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); - for (outgoingEdge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(outgoingEdge$iterator);) { - outgoingEdge = castTo($next_0(outgoingEdge$iterator), 79); - if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { - target = connectableShapeToNode(castTo($get_20((!outgoingEdge.targets && (outgoingEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 5, 8)) , outgoingEdge.targets), 0), 82)); - children.map_0.containsKey(target) || (successors.array[successors.array.length] = target , true); - } - } - return successors; -} - -function getTreeParent(node){ - var edgeFromParent, iterator; - iterator = allIncomingEdges(node); - if (isEmpty_13(iterator)) { - return null; - } - else { - edgeFromParent = (checkNotNull(iterator) , castTo(get_22(new Iterators$ConcatenatedIterator(transform_2(iterator.val$inputs1.iterator_0(), new Iterables$10))), 79)); - return connectableShapeToNode(castTo($get_20((!edgeFromParent.sources && (edgeFromParent.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edgeFromParent, 4, 7)) , edgeFromParent.sources), 0), 82)); - } -} - -function lambda$0_30(nodeOffsetY_0, radialOffset_2, node1_2, node2_3){ - var arc1, arc2, position1, position2, xPos1, xPos2, yPos1, yPos2; - position1 = castTo($getProperty_0(node1_2, ($clinit_CoreOptions() , POSITION_2)), 8); - xPos1 = position1.x_0; - yPos1 = position1.y_0 + nodeOffsetY_0; - arc1 = $wnd.Math.atan2(yPos1, xPos1); - arc1 < 0 && (arc1 += $intern_123); - arc1 += radialOffset_2; - arc1 > $intern_123 && (arc1 -= $intern_123); - position2 = castTo($getProperty_0(node2_3, POSITION_2), 8); - xPos2 = position2.x_0; - yPos2 = position2.y_0 + nodeOffsetY_0; - arc2 = $wnd.Math.atan2(yPos2, xPos2); - arc2 < 0 && (arc2 += $intern_123); - arc2 += radialOffset_2; - arc2 > $intern_123 && (arc2 -= $intern_123); - return $clinit_DoubleMath() , checkNonNegative(1.0E-10) , $wnd.Math.abs(arc1 - arc2) <= 1.0E-10 || arc1 == arc2 || isNaN(arc1) && isNaN(arc2)?0:arc1 < arc2?-1:arc1 > arc2?1:compare_0(isNaN(arc1), isNaN(arc2)); -} - -function RadialUtil$lambda$0$Type(radialOffset_2){ - this.nodeOffsetY_0 = 0; - this.radialOffset_2 = radialOffset_2; -} - -defineClass(549, 1, $intern_88, RadialUtil$lambda$0$Type); -_.compare_1 = function compare_78(arg0, arg1){ - return lambda$0_30(this.nodeOffsetY_0, this.radialOffset_2, castTo(arg0, 33), castTo(arg1, 33)); -} -; -_.equals_0 = function equals_165(other){ - return this === other; -} -; -_.reversed = function reversed_70(){ - return new Comparators$ReversedComparator(this); -} -; -_.nodeOffsetY_0 = 0; -_.radialOffset_2 = 0; -var Lorg_eclipse_elk_alg_radial_RadialUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialUtil/lambda$0$Type', 549); -function $process_89(graph, progressMonitor){ - var height, height0, margins, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, node$iterator0, offset, padding, posX, posY, width_0, width0; - $begin(progressMonitor, 'Calculate Graph Size', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - minXPos = $intern_98; - minYPos = $intern_98; - maxXPos = $intern_124; - maxYPos = $intern_124; - for (node$iterator0 = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { - node = castTo($doNext(node$iterator0), 33); - posX = node.x_0; - posY = node.y_0; - width0 = node.width_0; - height0 = node.height; - margins = castTo($getProperty_0(node, ($clinit_CoreOptions() , MARGINS_0)), 142); - minXPos = $wnd.Math.min(minXPos, posX - margins.left); - minYPos = $wnd.Math.min(minYPos, posY - margins.top_0); - maxXPos = $wnd.Math.max(maxXPos, posX + width0 + margins.right); - maxYPos = $wnd.Math.max(maxYPos, posY + height0 + margins.bottom); - } - padding = castTo($getProperty_0(graph, ($clinit_CoreOptions() , PADDING_6)), 116); - offset = new KVector_1(minXPos - padding.left, minYPos - padding.top_0); - for (node$iterator = new AbstractEList$EIterator((!graph.children && (graph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, graph, 10, 11)) , graph.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - $setX_2(node, node.x_0 - offset.x_0); - $setY_3(node, node.y_0 - offset.y_0); - } - width_0 = maxXPos - minXPos + (padding.left + padding.right); - height = maxYPos - minYPos + (padding.top_0 + padding.bottom); - $setWidth_0(graph, width_0); - $setHeight_0(graph, height); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function CalculateGraphSize(){ -} - -defineClass(1375, 1, $intern_105, CalculateGraphSize); -_.process = function process_85(graph, progressMonitor){ - $process_89(castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_CalculateGraphSize_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'CalculateGraphSize', 1375); -function $clinit_IntermediateProcessorStrategy_1(){ - $clinit_IntermediateProcessorStrategy_1 = emptyMethod; - OVERLAP_REMOVAL = new IntermediateProcessorStrategy_1('OVERLAP_REMOVAL', 0); - COMPACTION = new IntermediateProcessorStrategy_1('COMPACTION', 1); - GRAPH_SIZE_CALCULATION = new IntermediateProcessorStrategy_1('GRAPH_SIZE_CALCULATION', 2); -} - -function IntermediateProcessorStrategy_1(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_78(name_0){ - $clinit_IntermediateProcessorStrategy_1(); - return valueOf(($clinit_IntermediateProcessorStrategy$Map_1() , $MAP_66), name_0); -} - -function values_84(){ - $clinit_IntermediateProcessorStrategy_1(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]); -} - -defineClass(442, 22, {3:1, 35:1, 22:1, 442:1, 234:1}, IntermediateProcessorStrategy_1); -_.create_1 = function create_24(){ - switch (this.ordinal) { - case 0: - return new RadiusExtensionOverlapRemoval; - case 1: - return new GeneralCompactor; - case 2: - return new CalculateGraphSize; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout processor ' + (this.name_0 != null?this.name_0:'' + this.ordinal))); - } -} -; -var COMPACTION, GRAPH_SIZE_CALCULATION, OVERLAP_REMOVAL; -var Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.intermediate', 'IntermediateProcessorStrategy', 442, Ljava_lang_Enum_2_classLit, values_84, valueOf_78); -function $clinit_IntermediateProcessorStrategy$Map_1(){ - $clinit_IntermediateProcessorStrategy$Map_1 = emptyMethod; - $MAP_66 = createValueOfMap(($clinit_IntermediateProcessorStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 442, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]))); -} - -var $MAP_66; -function $contractLayer(this$static, layerNodes, isContracting){ - var length_0, node, node$iterator, parentX, parentY, treeParent, x_0, xPos, y_0, yPos; - for (node$iterator = layerNodes.iterator_0(); node$iterator.hasNext_0();) { - node = castTo(node$iterator.next_1(), 33); - xPos = node.x_0 + node.width_0 / 2; - yPos = node.y_0 + node.height / 2; - treeParent = this$static.root_0; - parentX = treeParent.x_0 + treeParent.width_0 / 2; - parentY = treeParent.y_0 + treeParent.height / 2; - x_0 = xPos - parentX; - y_0 = yPos - parentY; - length_0 = $wnd.Math.sqrt(x_0 * x_0 + y_0 * y_0); - x_0 *= this$static.compactionStep / length_0; - y_0 *= this$static.compactionStep / length_0; - if (isContracting) { - xPos -= x_0; - yPos -= y_0; - } - else { - xPos += x_0; - yPos += y_0; - } - $setX_2(node, xPos - node.width_0 / 2); - $setY_3(node, yPos - node.height / 2); - } -} - -function $overlap_1(this$static, node1, node2){ - var height1, height2, width1, width2, x1, x2, y1, y2; - x1 = node1.x_0 - this$static.spacing / 2; - x2 = node2.x_0 - this$static.spacing / 2; - y1 = node1.y_0 - this$static.spacing / 2; - y2 = node2.y_0 - this$static.spacing / 2; - width1 = node1.width_0 + this$static.spacing / 2; - width2 = node2.width_0 + this$static.spacing / 2; - height1 = node1.height + this$static.spacing / 2; - height2 = node2.height + this$static.spacing / 2; - if (x1 < x2 + width2 && x2 < x1 && y1 < y2 + height2 && y2 < y1) { - return true; - } - else if (x2 < x1 + width1 && x1 < x2 && y2 < y1 + height1 && y1 < y2) { - return true; - } - else if (x1 < x2 + width2 && x2 < x1 && y1 < y2 && y2 < y1 + height1) { - return true; - } - else if (x2 < x1 + width1 && x1 < x2 && y1 < y2 + height2 && y2 < y1) { - return true; - } - return false; -} - -function $overlapLayer(this$static, nodes){ - var i, overlapping; - overlapping = false; - if (nodes.size_1() < 2) { - return false; - } - for (i = 0; i < nodes.size_1(); i++) { - i < nodes.size_1() - 1?(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(i + 1), 33))):(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(0), 33))); - } - return overlapping; -} - -function $setCompactionStep(this$static, compactionStep){ - this$static.compactionStep = compactionStep; -} - -function $setRoot(this$static, root){ - this$static.root_0 = root; -} - -function $setSpacing(this$static, spacing){ - this$static.spacing = spacing; -} - -defineClass(645, 1, {}); -_.compactionStep = 1; -_.spacing = 0; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AbstractRadiusExtensionCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AbstractRadiusExtensionCompaction', 645); -function $constructContour(this$static, nodes){ - var node, node$iterator, successors; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - $put(this$static.leftContour, node, node); - $put(this$static.rightContour, node, node); - successors = getSuccessors(node); - if (successors.array.length != 0) { - !!this$static.sorter && this$static.sorter.sort_1(successors); - $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); - $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); - while (getNextLevelNodes(successors).array.length != 0) { - successors = getNextLevelNodes(successors); - !!this$static.sorter && this$static.sorter.sort_1(successors); - $put(this$static.leftContour, node, (checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33))); - $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); - } - } - } -} - -function $contourOverlap(this$static, neighbourWedgeParent, node, left){ - var contour, contourNode, contourNode$iterator; - contour = left?castTo($get(this$static.leftContour, neighbourWedgeParent), 21):castTo($get(this$static.rightContour, neighbourWedgeParent), 21); - for (contourNode$iterator = contour.iterator_0(); contourNode$iterator.hasNext_0();) { - contourNode = castTo(contourNode$iterator.next_1(), 33); - if ($overlap_1(this$static, node, contourNode)) { - return true; - } - } - return false; -} - -function $contractWedge(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes){ - var isOverlapping, nextLevelNodes, wasContracted; - isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); - wasContracted = false; - while (!isOverlapping) { - $contractLayer(this$static, currentRadiusNodes, true); - wasContracted = true; - isOverlapping = $overlapping(this$static, predecessors, radialPredecessor, radialSuccessor, currentRadiusNodes); - } - wasContracted && $contractLayer(this$static, currentRadiusNodes, false); - nextLevelNodes = getNextLevelNodes(currentRadiusNodes); - if (nextLevelNodes.array.length != 0) { - !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); - $contractWedge(this$static, currentRadiusNodes, radialPredecessor, radialSuccessor, nextLevelNodes); - } -} - -function $overlapping(this$static, predecessors, leftParent, rightParent, layerNodes){ - var firstNode, lastNode, predecessor, predecessor$iterator, sortedNode, sortedNode$iterator; - !!this$static.sorter && this$static.sorter.sort_1(layerNodes); - firstNode = castTo(layerNodes.get_0(0), 33); - if ($contourOverlap(this$static, leftParent, firstNode, false)) { - return true; - } - lastNode = castTo(layerNodes.get_0(layerNodes.size_1() - 1), 33); - if ($contourOverlap(this$static, rightParent, lastNode, true)) { - return true; - } - if ($overlapLayer(this$static, layerNodes)) { - return true; - } - for (sortedNode$iterator = layerNodes.iterator_0(); sortedNode$iterator.hasNext_0();) { - sortedNode = castTo(sortedNode$iterator.next_1(), 33); - for (predecessor$iterator = predecessors.iterator_0(); predecessor$iterator.hasNext_0();) { - predecessor = castTo(predecessor$iterator.next_1(), 33); - if ($overlap_1(this$static, sortedNode, predecessor)) { - return true; - } - } - } - return false; -} - -function AnnulusWedgeCompaction(){ - this.leftContour = new HashMultimap; - this.rightContour = new HashMultimap; -} - -defineClass(1772, 645, {}, AnnulusWedgeCompaction); -_.compact_0 = function compact_2(graph){ - var i, k, leftParent, nodeAsList, rightParent, rootList, spacing, stepSize, successors; - this.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - $setRoot(this, this.root); - this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); - stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); - !!stepSize && $setCompactionStep(this, stepSize.value_0); - spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); - $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); - successors = getSuccessors(this.root); - !!this.sorter && this.sorter.sort_1(successors); - $constructContour(this, successors); - rootList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [this.root])); - for (k = 0; k < 2; k++) { - for (i = 0; i < successors.array.length; i++) { - nodeAsList = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_ElkNode_2_classLit, 1), $intern_125, 33, 0, [(checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33))])); - rightParent = i < successors.array.length - 1?(checkCriticalElementIndex(i + 1, successors.array.length) , castTo(successors.array[i + 1], 33)):(checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33)); - leftParent = i == 0?castTo($get_11(successors, successors.array.length - 1), 33):(checkCriticalElementIndex(i - 1, successors.array.length) , castTo(successors.array[i - 1], 33)); - $contractWedge(this, (checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33) , rootList), leftParent, rightParent, nodeAsList); - } - } -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AnnulusWedgeCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AnnulusWedgeCompaction', 1772); -function $process_90(graph, progressMonitor){ - var compactor; - $begin(progressMonitor, 'General Compactor', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - compactor = $create_11(castTo($getProperty_0(graph, ($clinit_RadialOptions() , COMPACTOR_0)), 380)); - compactor.compact_0(graph); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function GeneralCompactor(){ -} - -defineClass(1374, 1, $intern_105, GeneralCompactor); -_.process = function process_86(graph, progressMonitor){ - $process_90(castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_GeneralCompactor_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'GeneralCompactor', 1374); -function $calculateRadius(this$static, node){ - var radius, root, rootX, rootY, vectorX, vectorY, xPos, yPos; - xPos = node.x_0; - yPos = node.y_0; - root = this$static.root_0; - rootX = root.x_0; - rootY = root.y_0; - vectorX = xPos - rootX; - vectorY = yPos - rootY; - radius = $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); - return radius; -} - -function $contract(this$static, nodes){ - var isOverlapping, nextLevelNodes, wasContracted; - if (nodes.array.length != 0) { - isOverlapping = $overlapping_0(this$static, nodes); - wasContracted = false; - while (!isOverlapping) { - $contractLayer(this$static, nodes, true); - wasContracted = true; - isOverlapping = $overlapping_0(this$static, nodes); - } - wasContracted && $contractLayer(this$static, nodes, false); - nextLevelNodes = getNextLevelNodes(nodes); - !!this$static.sorter && this$static.sorter.sort_1(nextLevelNodes); - this$static.lastRadius = $calculateRadius(this$static, (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33))); - $contract(this$static, nextLevelNodes); - } -} - -function $overlapping_0(this$static, nodes){ - var node, node$iterator, parent_0; - if ($overlapLayer(this$static, nodes)) { - return true; - } - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - parent_0 = getTreeParent(node); - if ($overlap_1(this$static, node, parent_0)) { - return true; - } - if ($calculateRadius(this$static, node) - this$static.spacing <= this$static.lastRadius) { - return true; - } - } - return false; -} - -function RadialCompaction(){ -} - -defineClass(1771, 645, {}, RadialCompaction); -_.compact_0 = function compact_3(graph){ - var firstLevelNodes, root, spacing, stepSize; - root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - this.root_0 = root; - this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); - stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); - !!stepSize && $setCompactionStep(this, stepSize.value_0); - spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); - $setSpacing(this, (checkCriticalNotNull(spacing) , spacing)); - firstLevelNodes = getSuccessors(root); - !!this.sorter && this.sorter.sort_1(firstLevelNodes); - $contract(this, firstLevelNodes); -} -; -_.lastRadius = 0; -var Lorg_eclipse_elk_alg_radial_intermediate_compaction_RadialCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'RadialCompaction', 1771); -function $isCrossing(this$static, node1, node2){ - var b1, b2, m1, m2, node1Vector, node2Vector, position1, position2, rootX, rootY, xCut, xPos1, xPos2, yPos1, yPos2; - rootX = this$static.root.x_0 + this$static.root.width_0 / 2; - rootY = this$static.root.x_0 + this$static.root.width_0 / 2; - xPos1 = node1.x_0 + node1.width_0 / 2; - yPos1 = node1.y_0 + node1.height / 2; - node1Vector = new KVector_1(xPos1, yPos1); - position1 = castTo($getProperty_0(node1, ($clinit_CoreOptions() , POSITION_2)), 8); - position1.x_0 = position1.x_0 + rootX; - position1.y_0 = position1.y_0 + rootY; - m1 = (node1Vector.y_0 - position1.y_0) / (node1Vector.x_0 - position1.x_0); - b1 = node1Vector.y_0 - m1 * node1Vector.x_0; - xPos2 = node2.x_0 + node2.width_0 / 2; - yPos2 = node2.y_0 + node2.height / 2; - node2Vector = new KVector_1(xPos2, yPos2); - position2 = castTo($getProperty_0(node2, POSITION_2), 8); - position2.x_0 = position2.x_0 + rootX; - position2.y_0 = position2.y_0 + rootY; - m2 = (node2Vector.y_0 - position2.y_0) / (node2Vector.x_0 - position2.x_0); - b2 = node2Vector.y_0 - m2 * node2Vector.x_0; - xCut = (b1 - b2) / (m2 - m1); - if (position1.x_0 < xCut && node1Vector.x_0 < xCut || xCut < position1.x_0 && xCut < node1Vector.x_0) { - return false; - } - else if (position2.x_0 < xCut && node2Vector.x_0 < xCut || xCut < position2.x_0 && xCut < node2Vector.x_0) { - return false; - } - return true; -} - -function CrossingMinimizationPosition(){ -} - -defineClass(1779, 1, {}, CrossingMinimizationPosition); -_.evaluate = function evaluate(rootNode){ - var crossings, i, k, node1, node1$iterator, nodes; - this.root = rootNode; - crossings = 0; - nodes = getSuccessors(rootNode); - k = 0; - for (node1$iterator = new ArrayList$1(nodes); node1$iterator.i < node1$iterator.this$01.array.length;) { - node1 = castTo($next_7(node1$iterator), 33); - ++k; - for (i = k; i < nodes.array.length; i++) { - $isCrossing(this, node1, (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 33))) && (crossings += 1); - } - } - return crossings; -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_optimization_CrossingMinimizationPosition_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'CrossingMinimizationPosition', 1779); -function EdgeLengthOptimization(){ -} - -defineClass(1777, 1, {}, EdgeLengthOptimization); -_.evaluate = function evaluate_0(root){ - var edge, edge$iterator, edgeLength, rootX, rootY, sourceClip, target, targetClip, targetX, targetY, vector, vectorX, vectorY; - edgeLength = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - targetX = target.x_0 + target.width_0 / 2; - targetY = target.y_0 + target.height / 2; - rootX = root.x_0 + root.width_0 / 2; - rootY = root.y_0 + root.height / 2; - vector = new KVector; - vector.x_0 = targetX - rootX; - vector.y_0 = targetY - rootY; - sourceClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(sourceClip, root.width_0, root.height); - vector.x_0 -= sourceClip.x_0; - vector.y_0 -= sourceClip.y_0; - rootX = targetX - vector.x_0; - rootY = targetY - vector.y_0; - targetClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(targetClip, target.width_0, target.height); - vector.x_0 -= targetClip.x_0; - vector.y_0 -= targetClip.y_0; - targetX = rootX + vector.x_0; - targetY = rootY + vector.y_0; - vectorX = targetX - rootX; - vectorY = targetY - rootY; - edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); - } - return edgeLength; -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthOptimization', 1777); -function EdgeLengthPositionOptimization(){ -} - -defineClass(1778, 1, {}, EdgeLengthPositionOptimization); -_.evaluate = function evaluate_1(root){ - var edge, edge$iterator, edgeLength, position, rootX, rootY, target, targetX, targetY, vectorX, vectorY; - edgeLength = 0; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(root).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - targetX = target.x_0 + target.width_0 / 2; - targetY = target.y_0 + target.height / 2; - position = castTo($getProperty_0(target, ($clinit_CoreOptions() , POSITION_2)), 8); - rootX = root.x_0 + position.x_0 + root.width_0 / 2; - rootY = root.y_0 + position.y_0 + root.height; - vectorX = targetX - rootX; - vectorY = targetY - rootY; - edgeLength += $wnd.Math.sqrt(vectorX * vectorX + vectorY * vectorY); - } - return edgeLength; -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_optimization_EdgeLengthPositionOptimization_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'EdgeLengthPositionOptimization', 1778); -function $extend(this$static, graph, nodes, progressMonitor){ - var firstNode, index_0, movedDistance, movedX, movedY, nextLevelNode, nextLevelNode$iterator, nextLevelNodes, node, node$iterator, oldPositions, root, rootX, rootY, nodeX, nodeY, differenceX, differenceY, length_0, unitX, unitY; - if (nodes.array.length != 0) { - oldPositions = new ArrayList; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - $add_3(oldPositions, new KVector_1(node.x_0, node.y_0)); - } - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - while ($overlapLayer(this$static, nodes)) { - $contractLayer(this$static, nodes, false); - } - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - movedX = 0; - movedY = 0; - firstNode = null; - if (nodes.array.length != 0) { - firstNode = (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33)); - movedX = firstNode.x_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).x_0; - movedY = firstNode.y_0 - (checkCriticalElementIndex(0, oldPositions.array.length) , castTo(oldPositions.array[0], 8)).y_0; - } - movedDistance = $wnd.Math.sqrt(movedX * movedX + movedY * movedY); - nextLevelNodes = getNextLevelNodeSet(nodes); - index_0 = 1; - while (nextLevelNodes.map_0.size_1() != 0) { - for (nextLevelNode$iterator = nextLevelNodes.map_0.keySet_0().iterator_0(); nextLevelNode$iterator.hasNext_0();) { - nextLevelNode = castTo(nextLevelNode$iterator.next_1(), 33); - root = this$static.root_0; - rootX = root.x_0 + root.width_0 / 2; - rootY = root.y_0 + root.height / 2; - nodeX = nextLevelNode.x_0 + nextLevelNode.width_0 / 2; - nodeY = nextLevelNode.y_0 + nextLevelNode.height / 2; - differenceX = nodeX - rootX; - differenceY = nodeY - rootY; - length_0 = $wnd.Math.sqrt(differenceX * differenceX + differenceY * differenceY); - unitX = differenceX / length_0; - unitY = differenceY / length_0; - $setX_2(nextLevelNode, nextLevelNode.x_0 + unitX * movedDistance); - $setY_3(nextLevelNode, nextLevelNode.y_0 + unitY * movedDistance); - } - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - nextLevelNodes = getNextLevelNodeSet(new ArrayList_1(nextLevelNodes)); - ++index_0; - } - !!this$static.sorter && this$static.sorter.sort_1(new ArrayList_1(nextLevelNodes)); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - $extend(this$static, graph, new ArrayList_1(nextLevelNodes), progressMonitor); - } -} - -function $process_91(this$static, graph, progressMonitor){ - var root, spacing, successors; - $begin(progressMonitor, 'Remove overlaps', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - this$static.root_0 = root; - this$static.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); - spacing = castToDouble($getProperty_0(graph, ($clinit_CoreOptions() , SPACING_NODE_NODE_6))); - $setSpacing(this$static, (checkCriticalNotNull(spacing) , spacing)); - successors = getSuccessors(root); - $extend(this$static, graph, successors, progressMonitor); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function RadiusExtensionOverlapRemoval(){ -} - -defineClass(1373, 645, $intern_105, RadiusExtensionOverlapRemoval); -_.process = function process_87(graph, progressMonitor){ - $process_91(this, castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_intermediate_overlaps_RadiusExtensionOverlapRemoval_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.overlaps', 'RadiusExtensionOverlapRemoval', 1373); -function $clinit_AnnulusWedgeCriteria(){ - $clinit_AnnulusWedgeCriteria = emptyMethod; - LEAF_NUMBER = new AnnulusWedgeCriteria('LEAF_NUMBER', 0); - NODE_SIZE_0 = new AnnulusWedgeCriteria('NODE_SIZE', 1); -} - -function $create_10(this$static){ - switch (this$static.ordinal) { - case 0: - return new AnnulusWedgeByLeafs; - case 1: - return new AnnulusWedgeByNodeSpace; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function AnnulusWedgeCriteria(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_79(name_0){ - $clinit_AnnulusWedgeCriteria(); - return valueOf(($clinit_AnnulusWedgeCriteria$Map() , $MAP_67), name_0); -} - -function values_85(){ - $clinit_AnnulusWedgeCriteria(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]); -} - -defineClass(426, 22, {3:1, 35:1, 22:1, 426:1}, AnnulusWedgeCriteria); -var LEAF_NUMBER, NODE_SIZE_0; -var Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'AnnulusWedgeCriteria', 426, Ljava_lang_Enum_2_classLit, values_85, valueOf_79); -function $clinit_AnnulusWedgeCriteria$Map(){ - $clinit_AnnulusWedgeCriteria$Map = emptyMethod; - $MAP_67 = createValueOfMap(($clinit_AnnulusWedgeCriteria() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 426, 0, [LEAF_NUMBER, NODE_SIZE_0]))); -} - -var $MAP_67; -function $clinit_CompactionStrategy_0(){ - $clinit_CompactionStrategy_0 = emptyMethod; - NONE_11 = new CompactionStrategy_0('NONE', 0); - RADIAL_COMPACTION = new CompactionStrategy_0('RADIAL_COMPACTION', 1); - WEDGE_COMPACTION = new CompactionStrategy_0('WEDGE_COMPACTION', 2); -} - -function $create_11(this$static){ - switch (this$static.ordinal) { - case 1: - return new RadialCompaction; - case 2: - return new AnnulusWedgeCompaction; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CompactionStrategy_0(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_80(name_0){ - $clinit_CompactionStrategy_0(); - return valueOf(($clinit_CompactionStrategy$Map_0() , $MAP_68), name_0); -} - -function values_86(){ - $clinit_CompactionStrategy_0(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]); -} - -defineClass(380, 22, {3:1, 35:1, 22:1, 380:1}, CompactionStrategy_0); -var NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION; -var Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'CompactionStrategy', 380, Ljava_lang_Enum_2_classLit, values_86, valueOf_80); -function $clinit_CompactionStrategy$Map_0(){ - $clinit_CompactionStrategy$Map_0 = emptyMethod; - $MAP_68 = createValueOfMap(($clinit_CompactionStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]))); -} - -var $MAP_68; -function $clinit_RadialMetaDataProvider(){ - $clinit_RadialMetaDataProvider = emptyMethod; - ORDER_ID = new Property_1('org.eclipse.elk.radial.orderId', valueOf_4(0)); - RADIUS = new Property_1('org.eclipse.elk.radial.radius', 0); - COMPACTOR_DEFAULT = ($clinit_CompactionStrategy_0() , NONE_11); - COMPACTOR = new Property_1('org.eclipse.elk.radial.compactor', COMPACTOR_DEFAULT); - valueOf_4(0); - COMPACTION_STEP_SIZE = new Property_1('org.eclipse.elk.radial.compactionStepSize', valueOf_4(1)); - SORTER_DEFAULT = ($clinit_SortingStrategy() , NONE_13); - SORTER = new Property_1('org.eclipse.elk.radial.sorter', SORTER_DEFAULT); - WEDGE_CRITERIA_DEFAULT = ($clinit_AnnulusWedgeCriteria() , NODE_SIZE_0); - WEDGE_CRITERIA = new Property_1('org.eclipse.elk.radial.wedgeCriteria', WEDGE_CRITERIA_DEFAULT); - OPTIMIZATION_CRITERIA_DEFAULT = ($clinit_RadialTranslationStrategy() , NONE_12); - OPTIMIZATION_CRITERIA = new Property_1('org.eclipse.elk.radial.optimizationCriteria', OPTIMIZATION_CRITERIA_DEFAULT); -} - -function RadialMetaDataProvider(){ - $clinit_RadialMetaDataProvider(); -} - -defineClass(852, 1, $intern_90, RadialMetaDataProvider); -_.apply_4 = function apply_159(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.orderId'), ''), 'Order ID'), 'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'), valueOf_4(0)), ($clinit_LayoutOptionData$Type() , INT)), Ljava_lang_Integer_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.radius'), ''), 'Radius'), 'The radius option can be used to set the initial radius for the radial layouter.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactor'), ''), 'Compaction'), 'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'), COMPACTOR_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.compactionStepSize'), ''), 'Compaction Step Size'), 'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'), valueOf_4(1)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.radial.compactionStepSize', 'org.eclipse.elk.radial.compactor', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.sorter'), ''), 'Sorter'), 'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'), SORTER_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.wedgeCriteria'), ''), 'Annulus Wedge Criteria'), 'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'), WEDGE_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.radial.optimizationCriteria'), ''), 'Translation Optimization'), 'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'), OPTIMIZATION_CRITERIA_DEFAULT), ENUM), Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit), of_1(PARENTS)))); - $apply_20((new RadialOptions , registry)); -} -; -var COMPACTION_STEP_SIZE, COMPACTOR, COMPACTOR_DEFAULT, OPTIMIZATION_CRITERIA, OPTIMIZATION_CRITERIA_DEFAULT, ORDER_ID, RADIUS, SORTER, SORTER_DEFAULT, WEDGE_CRITERIA, WEDGE_CRITERIA_DEFAULT; -var Lorg_eclipse_elk_alg_radial_options_RadialMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialMetaDataProvider', 852); -function $clinit_RadialOptions(){ - $clinit_RadialOptions = emptyMethod; - POSITION_1 = ($clinit_CoreOptions() , POSITION_2); - SPACING_NODE_NODE_2 = SPACING_NODE_NODE_6; - NODE_SIZE_CONSTRAINTS_3 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_2 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_3 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_3 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_2 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_3 = PORT_LABELS_PLACEMENT_5; - COMPACTION_STEP_SIZE_0 = ($clinit_RadialMetaDataProvider() , COMPACTION_STEP_SIZE); - COMPACTOR_0 = COMPACTOR; - OPTIMIZATION_CRITERIA_0 = OPTIMIZATION_CRITERIA; - ORDER_ID_0 = ORDER_ID; - RADIUS_0 = RADIUS; - SORTER_0 = SORTER; - WEDGE_CRITERIA_0 = WEDGE_CRITERIA; -} - -function $apply_20(registry){ - $register(registry, new LayoutAlgorithmData($category($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.radial'), 'ELK Radial'), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new RadialOptions$RadialFactory), 'org.eclipse.elk.radial'))); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.position', $getDefault(POSITION_1)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.spacing.nodeNode', $getDefault(SPACING_NODE_NODE_2)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_2)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_2)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_3)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactionStepSize', $getDefault(COMPACTION_STEP_SIZE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.compactor', $getDefault(COMPACTOR_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.optimizationCriteria', $getDefault(OPTIMIZATION_CRITERIA_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.orderId', $getDefault(ORDER_ID_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.radius', $getDefault(RADIUS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.sorter', $getDefault(SORTER_0)); - $addOptionSupport(registry, 'org.eclipse.elk.radial', 'org.eclipse.elk.radial.wedgeCriteria', $getDefault(WEDGE_CRITERIA_0)); -} - -function RadialOptions(){ - $clinit_RadialOptions(); -} - -defineClass(996, 1, $intern_90, RadialOptions); -_.apply_4 = function apply_160(registry){ - $apply_20(registry); -} -; -var COMPACTION_STEP_SIZE_0, COMPACTOR_0, NODE_LABELS_PLACEMENT_3, NODE_SIZE_CONSTRAINTS_3, NODE_SIZE_MINIMUM_2, NODE_SIZE_OPTIONS_3, OMIT_NODE_MICRO_LAYOUT_2, OPTIMIZATION_CRITERIA_0, ORDER_ID_0, PORT_LABELS_PLACEMENT_3, POSITION_1, RADIUS_0, SORTER_0, SPACING_NODE_NODE_2, WEDGE_CRITERIA_0; -var Lorg_eclipse_elk_alg_radial_options_RadialOptions_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions', 996); -function RadialOptions$RadialFactory(){ -} - -defineClass(997, 1, {}, RadialOptions$RadialFactory); -_.create_0 = function create_25(){ - var provider; - return provider = new RadialLayoutProvider , provider; -} -; -_.destroy = function destroy_4(obj){ -} -; -var Lorg_eclipse_elk_alg_radial_options_RadialOptions$RadialFactory_2_classLit = createForClass('org.eclipse.elk.alg.radial.options', 'RadialOptions/RadialFactory', 997); -function $clinit_RadialTranslationStrategy(){ - $clinit_RadialTranslationStrategy = emptyMethod; - NONE_12 = new RadialTranslationStrategy('NONE', 0); - EDGE_LENGTH_0 = new RadialTranslationStrategy('EDGE_LENGTH', 1); - EDGE_LENGTH_BY_POSITION = new RadialTranslationStrategy('EDGE_LENGTH_BY_POSITION', 2); - CROSSING_MINIMIZATION_BY_POSITION = new RadialTranslationStrategy('CROSSING_MINIMIZATION_BY_POSITION', 3); -} - -function $create_12(this$static){ - switch (this$static.ordinal) { - case 1: - return new EdgeLengthOptimization; - case 2: - return new EdgeLengthPositionOptimization; - case 3: - return new CrossingMinimizationPosition; - case 0: - return null; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function RadialTranslationStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_81(name_0){ - $clinit_RadialTranslationStrategy(); - return valueOf(($clinit_RadialTranslationStrategy$Map() , $MAP_69), name_0); -} - -function values_87(){ - $clinit_RadialTranslationStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]); -} - -defineClass(340, 22, {3:1, 35:1, 22:1, 340:1}, RadialTranslationStrategy); -var CROSSING_MINIMIZATION_BY_POSITION, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, NONE_12; -var Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'RadialTranslationStrategy', 340, Ljava_lang_Enum_2_classLit, values_87, valueOf_81); -function $clinit_RadialTranslationStrategy$Map(){ - $clinit_RadialTranslationStrategy$Map = emptyMethod; - $MAP_69 = createValueOfMap(($clinit_RadialTranslationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 340, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]))); -} - -var $MAP_69; -function $clinit_SortingStrategy(){ - $clinit_SortingStrategy = emptyMethod; - NONE_13 = new SortingStrategy('NONE', 0); - POLAR_COORDINATE = new SortingStrategy('POLAR_COORDINATE', 1); - ID_0 = new SortingStrategy('ID', 2); -} - -function $create_13(this$static){ - switch (this$static.ordinal) { - case 0: - return null; - case 1: - return new PolarCoordinateSorter; - case 2: - return new IDSorter; - default:throw toJs(new IllegalArgumentException_0('No implementation is available for the layout option ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function SortingStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_82(name_0){ - $clinit_SortingStrategy(); - return valueOf(($clinit_SortingStrategy$Map() , $MAP_70), name_0); -} - -function values_88(){ - $clinit_SortingStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]); -} - -defineClass(293, 22, {3:1, 35:1, 22:1, 293:1}, SortingStrategy); -var ID_0, NONE_13, POLAR_COORDINATE; -var Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'SortingStrategy', 293, Ljava_lang_Enum_2_classLit, values_88, valueOf_82); -function $clinit_SortingStrategy$Map(){ - $clinit_SortingStrategy$Map = emptyMethod; - $MAP_70 = createValueOfMap(($clinit_SortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]))); -} - -var $MAP_70; -function $positionNodes(this$static, node, currentRadius, minAlpha, maxAlpha, optimalOffset){ - var alpha_0, alphaPoint, child, child$iterator, numberOfChildLeafs, numberOfLeafs, radOffest, s, successors, tau, xPos, yPos, xPosition, yPosition; - radOffest = optimalOffset; - alphaPoint = (minAlpha + maxAlpha) / 2 + radOffest; - xPos = currentRadius * $wnd.Math.cos(alphaPoint); - yPos = currentRadius * $wnd.Math.sin(alphaPoint); - xPosition = xPos - node.width_0 / 2; - yPosition = yPos - node.height / 2; - $setX_2(node, xPosition); - $setY_3(node, yPosition); - numberOfLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(node); - tau = 2 * $wnd.Math.acos(currentRadius / currentRadius + this$static.radius); - if (tau < maxAlpha - minAlpha) { - s = tau / numberOfLeafs; - alpha_0 = (minAlpha + maxAlpha - tau) / 2; - } - else { - s = (maxAlpha - minAlpha) / numberOfLeafs; - alpha_0 = minAlpha; - } - successors = getSuccessors(node); - if (this$static.sorter) { - this$static.sorter.initialize_0(this$static.root); - this$static.sorter.sort_1(successors); - } - for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 33); - numberOfChildLeafs = this$static.annulusWedgeCriteria.calculateWedgeSpace(child); - $positionNodes(this$static, child, currentRadius + this$static.radius, alpha_0, alpha_0 + s * numberOfChildLeafs, optimalOffset); - alpha_0 += s * numberOfChildLeafs; - } -} - -function $process_92(this$static, graph, progressMonitor){ - $begin(progressMonitor, 'Eades radial', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - this$static.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - this$static.radius = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , RADIUS_0)))); - this$static.sorter = $create_13(castTo($getProperty_0(graph, SORTER_0), 293)); - this$static.annulusWedgeCriteria = $create_10(castTo($getProperty_0(graph, WEDGE_CRITERIA_0), 426)); - this$static.optimizer = $create_12(castTo($getProperty_0(graph, OPTIMIZATION_CRITERIA_0), 340)); - $translate_0(this$static); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function $translate_0(this$static){ - var i, offset, optimalOffset, optimalValue, translatedValue; - optimalOffset = 0; - optimalValue = $intern_98; - if (this$static.optimizer) { - for (i = 0; i < 360; i++) { - offset = i * 0.017453292519943295; - $positionNodes(this$static, this$static.root, 0, 0, $intern_123, offset); - translatedValue = this$static.optimizer.evaluate(this$static.root); - if (translatedValue < optimalValue) { - optimalOffset = offset; - optimalValue = translatedValue; - } - } - } - $positionNodes(this$static, this$static.root, 0, 0, $intern_123, optimalOffset); -} - -function EadesRadial(){ -} - -defineClass(1449, 1, $intern_113, EadesRadial); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_24(graph){ - return castTo(graph, 33) , null; -} -; -_.process = function process_88(graph, progressMonitor){ - $process_92(this, castTo(graph, 33), progressMonitor); -} -; -_.radius = 0; -var Lorg_eclipse_elk_alg_radial_p1position_EadesRadial_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position', 'EadesRadial', 1449); -function AnnulusWedgeByLeafs(){ -} - -defineClass(1775, 1, {}, AnnulusWedgeByLeafs); -_.calculateWedgeSpace = function calculateWedgeSpace(node){ - return getNumberOfLeaves(node); -} -; -var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByLeafs_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByLeafs', 1775); -function $calculateWedgeSpace(this$static, node){ - var child, child$iterator, childSpace, height, nodeSize, successors, width_0; - successors = getSuccessors(node); - height = node.height; - width_0 = node.width_0; - nodeSize = $wnd.Math.sqrt(height * height + width_0 * width_0); - childSpace = 0; - for (child$iterator = new ArrayList$1(successors); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 33); - childSpace += $calculateWedgeSpace(this$static, child); - } - return $wnd.Math.max(childSpace, nodeSize); -} - -function AnnulusWedgeByNodeSpace(){ -} - -defineClass(1776, 1, {}, AnnulusWedgeByNodeSpace); -_.calculateWedgeSpace = function calculateWedgeSpace_0(node){ - return $calculateWedgeSpace(this, node); -} -; -var Lorg_eclipse_elk_alg_radial_p1position_wedge_AnnulusWedgeByNodeSpace_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position.wedge', 'AnnulusWedgeByNodeSpace', 1776); -function $process_93(this$static, graph, progressMonitor){ - var root; - $begin(progressMonitor, 'Straight Line Edge Routing', 1); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); - root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); - $routeEdges_1(this$static, root); - progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); -} - -function $routeEdges_1(this$static, node){ - var edge, edge$iterator, section, sourceClip, sourceX, sourceY, target, targetClip, targetX, targetY, vector; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - if (!instanceOf($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 186)) { - target = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - if (!$isHierarchical(edge)) { - sourceX = node.x_0 + node.width_0 / 2; - sourceY = node.y_0 + node.height / 2; - targetX = target.x_0 + target.width_0 / 2; - targetY = target.y_0 + target.height / 2; - vector = new KVector; - vector.x_0 = targetX - sourceX; - vector.y_0 = targetY - sourceY; - sourceClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(sourceClip, node.width_0, node.height); - vector.x_0 -= sourceClip.x_0; - vector.y_0 -= sourceClip.y_0; - sourceX = targetX - vector.x_0; - sourceY = targetY - vector.y_0; - targetClip = new KVector_1(vector.x_0, vector.y_0); - clipVector(targetClip, target.width_0, target.height); - vector.x_0 -= targetClip.x_0; - vector.y_0 -= targetClip.y_0; - targetX = sourceX + vector.x_0; - targetY = sourceY + vector.y_0; - section = firstEdgeSection(edge, true, true); - $setStartX(section, sourceX); - $setStartY(section, sourceY); - $setEndX(section, targetX); - $setEndY(section, targetY); - $routeEdges_1(this$static, target); - } - } - } -} - -function StraightLineEdgeRouter(){ -} - -defineClass(1450, 1, $intern_113, StraightLineEdgeRouter); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_25(graph){ - return castTo(graph, 33) , null; -} -; -_.process = function process_89(graph, progressMonitor){ - $process_93(this, castTo(graph, 33), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_radial_p2routing_StraightLineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.radial.p2routing', 'StraightLineEdgeRouter', 1450); -function $sort_2(this$static, nodes){ - nodes.sort_0(this$static.idSorter); -} - -function IDSorter(){ - this.idSorter = new IDSorter$lambda$0$Type; -} - -function lambda$0_31(node1_0, node2_1){ - var orderID1, orderID2; - orderID1 = castTo($getProperty_0(node1_0, ($clinit_RadialOptions() , ORDER_ID_0)), 19); - orderID2 = castTo($getProperty_0(node2_1, ORDER_ID_0), 19); - return compare_5(orderID1.value_0, orderID2.value_0); -} - -defineClass(811, 1, {}, IDSorter); -_.initialize_0 = function initialize_3(root){ -} -; -_.sort_1 = function sort_10(nodes){ - $sort_2(this, nodes); -} -; -var Lorg_eclipse_elk_alg_radial_sorting_IDSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter', 811); -function IDSorter$lambda$0$Type(){ -} - -defineClass(1774, 1, $intern_88, IDSorter$lambda$0$Type); -_.compare_1 = function compare_79(arg0, arg1){ - return lambda$0_31(castTo(arg0, 33), castTo(arg1, 33)); -} -; -_.equals_0 = function equals_166(other){ - return this === other; -} -; -_.reversed = function reversed_71(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_radial_sorting_IDSorter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter/lambda$0$Type', 1774); -function $initialize_7(this$static, root){ - var successors; - this$static.idSorter = new IDSorter; - successors = getSuccessors(root); - $sort(successors, this$static.compRight); - $setIDForNodes(this$static, successors, 0); -} - -function $setIDForNodes(this$static, nodes, idOffset){ - var arc, id_0, nextLayerId, node, node$iterator, nodeSuccessors; - id_0 = idOffset; - nextLayerId = 0; - for (node$iterator = new ArrayList$1(nodes); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 33); - $setProperty_1(node, ($clinit_RadialOptions() , ORDER_ID_0), valueOf_4(id_0++)); - nodeSuccessors = getSuccessors(node); - arc = $wnd.Math.atan2(node.y_0 + node.height / 2, node.x_0 + node.width_0 / 2); - arc += arc < 0?$intern_123:0; - arc < 0.7853981633974483 || arc > $intern_126?$sort(nodeSuccessors, this$static.compLeft):arc <= $intern_126 && arc > $intern_127?$sort(nodeSuccessors, this$static.compTop):arc <= $intern_127 && arc > $intern_128?$sort(nodeSuccessors, this$static.compRight):arc <= $intern_128 && $sort(nodeSuccessors, this$static.compBottom); - nextLayerId = $setIDForNodes(this$static, nodeSuccessors, nextLayerId); - } - return id_0; -} - -function PolarCoordinateSorter(){ - this.compRight = new RadialUtil$lambda$0$Type(0); - this.compLeft = new RadialUtil$lambda$0$Type($intern_122); - this.compTop = new RadialUtil$lambda$0$Type($intern_121); - this.compBottom = new RadialUtil$lambda$0$Type($intern_97); -} - -defineClass(1773, 1, {}, PolarCoordinateSorter); -_.initialize_0 = function initialize_4(root){ - $initialize_7(this, root); -} -; -_.sort_1 = function sort_11(nodes){ - var root; - if (!nodes.isEmpty()) { - if (!this.idSorter) { - root = findRootOfNode(castTo(nodes.get_0(0), 33)); - $initialize_7(this, root); - } - $sort_2(this.idSorter, nodes); - } -} -; -var Lorg_eclipse_elk_alg_radial_sorting_PolarCoordinateSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'PolarCoordinateSorter', 1773); -function RectPackingLayoutProvider(){ -} - -function applyPadding(rectangles, padding){ - var rect, rect$iterator; - for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { - rect = castTo($doNext(rect$iterator), 33); - $setLocation_1(rect, rect.x_0 + padding.left, rect.y_0 + padding.top_0); - } -} - -function lambda$0_32(a_0, b_1){ - var positionA, positionB; - positionA = castTo($getProperty_0(a_0, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 19).value_0; - positionB = castTo($getProperty_0(b_1, DESIRED_POSITION_0), 19).value_0; - return positionA == positionB?-1:positionA < positionB?-1:positionA > positionB?1:0; -} - -defineClass(1136, 209, $intern_96, RectPackingLayoutProvider); -_.layout = function layout_5(layoutGraph, progressMonitor){ - var aspectRatio, builder, compaction, drawing, elkNode, elkNode$iterator, elkNode$iterator0, elkNode$iterator1, elkNode$iterator2, expandNodes, expandToAspectRatio, firstIt, fixedNodes, goal, index_0, interactive, lastPlaceShift, maxWidth, minSize, nodeNodeSpacing, onlyFirstIteration, padding, position, rectangles, secondIt, targetWidth; - $begin(progressMonitor, 'Rectangle Packing', 1); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - aspectRatio = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); - goal = castTo($getProperty_0(layoutGraph, OPTIMIZATION_GOAL_0), 381); - lastPlaceShift = $booleanValue(castToBoolean($getProperty_0(layoutGraph, LAST_PLACE_SHIFT_0))); - onlyFirstIteration = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ONLY_FIRST_ITERATION_0))); - expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_NODES))); - padding = castTo($getProperty_0(layoutGraph, PADDING_3), 116); - nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, SPACING_NODE_NODE_3))); - compaction = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROW_COMPACTION_0))); - expandToAspectRatio = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_TO_ASPECT_RATIO_0))); - interactive = $booleanValue(castToBoolean($getProperty_0(layoutGraph, INTERACTIVE_5))); - targetWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, TARGET_WIDTH_0))); - rectangles = (!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children); - resetCoordinates(rectangles); - if (interactive) { - fixedNodes = new ArrayList; - for (elkNode$iterator0 = new AbstractEList$EIterator(rectangles); elkNode$iterator0.cursor != elkNode$iterator0.this$01_2.size_1();) { - elkNode = castTo($doNext(elkNode$iterator0), 33); - $hasProperty_0(elkNode, DESIRED_POSITION_0) && (fixedNodes.array[fixedNodes.array.length] = elkNode , true); - } - for (elkNode$iterator1 = new ArrayList$1(fixedNodes); elkNode$iterator1.i < elkNode$iterator1.this$01.array.length;) { - elkNode = castTo($next_7(elkNode$iterator1), 33); - $remove_32(rectangles, elkNode); - } - $clinit_Collections(); - $sort(fixedNodes, new RectPackingLayoutProvider$lambda$0$Type); - for (elkNode$iterator2 = new ArrayList$1(fixedNodes); elkNode$iterator2.i < elkNode$iterator2.this$01.array.length;) { - elkNode = castTo($next_7(elkNode$iterator2), 33); - position = castTo($getProperty_0(elkNode, DESIRED_POSITION_0), 19).value_0; - position = $wnd.Math.min(position, rectangles.size_0); - $add_20(rectangles, position, elkNode); - } - index_0 = 0; - for (elkNode$iterator = new AbstractEList$EIterator(rectangles); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { - elkNode = castTo($doNext(elkNode$iterator), 33); - $setProperty_1(elkNode, CURRENT_POSITION_0, valueOf_4(index_0)); - ++index_0; - } - } - minSize = effectiveMinSizeConstraintFor(layoutGraph); - minSize.x_0 -= padding.left + padding.right; - minSize.y_0 -= padding.top_0 + padding.bottom; - maxWidth = minSize.x_0; - if (targetWidth < 0 || targetWidth < minSize.x_0) { - firstIt = new AreaApproximation(aspectRatio, goal, lastPlaceShift); - drawing = $approxBoundingBox(firstIt, rectangles, nodeNodeSpacing, padding); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - } - else { - drawing = new DrawingData(aspectRatio, targetWidth, 0, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); - } - minSize.x_0 += padding.left + padding.right; - minSize.y_0 += padding.top_0 + padding.bottom; - if (!onlyFirstIteration) { - resetCoordinates(rectangles); - secondIt = new RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing); - maxWidth = $wnd.Math.max(minSize.x_0, drawing.drawingWidth); - drawing = $start(secondIt, rectangles, maxWidth, minSize, progressMonitor, layoutGraph, padding); - } - applyPadding(rectangles, padding); - resizeNode_1(layoutGraph, drawing.drawingWidth + (padding.left + padding.right), drawing.drawingHeight + (padding.top_0 + padding.bottom), false, true); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, OMIT_NODE_MICRO_LAYOUT_3))) || $execute((builder = new NodeMicroLayout(($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(layoutGraph))) , builder)); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider', 1136); -function RectPackingLayoutProvider$lambda$0$Type(){ -} - -defineClass(1137, 1, $intern_88, RectPackingLayoutProvider$lambda$0$Type); -_.compare_1 = function compare_80(arg0, arg1){ - return lambda$0_32(castTo(arg0, 33), castTo(arg1, 33)); -} -; -_.equals_0 = function equals_167(other){ - return this === other; -} -; -_.reversed = function reversed_72(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider/lambda$0$Type', 1137); -function $approxBoundingBox(this$static, rectangles, nodeNodeSpacing, padding){ - var bestOpt, currentValues, firstRect, lastPlaced, opt1, opt2, opt3, opt4, placedRects, rectangleIdx, toPlace; - firstRect = castTo($get_20(rectangles, 0), 33); - $setX_2(firstRect, 0); - $setY_3(firstRect, 0); - placedRects = new ArrayList; - placedRects.array[placedRects.array.length] = firstRect; - lastPlaced = firstRect; - currentValues = new DrawingData(this$static.aspectRatio, firstRect.width_0, firstRect.height, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); - for (rectangleIdx = 1; rectangleIdx < rectangles.size_0; rectangleIdx++) { - toPlace = castTo($get_20(rectangles, rectangleIdx), 33); - opt1 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - opt2 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_LAST_PLACED_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - opt3 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - opt4 = $calcValuesForOpt(this$static, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, toPlace, lastPlaced, currentValues, placedRects, nodeNodeSpacing); - bestOpt = $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding); - $setX_2(toPlace, bestOpt.nextXcoordinate); - $setY_3(toPlace, bestOpt.nextYcoordinate); - $setPlacementOption(bestOpt, WHOLE_DRAWING); - currentValues = bestOpt; - lastPlaced = toPlace; - placedRects.array[placedRects.array.length] = toPlace; - } - return currentValues; -} - -function $calcValuesForOpt(this$static, option, toPlace, lastPlaced, drawing, placedRects, nodeNodeSpacing){ - var drawingHeight, drawingWidth, height, heightToPlace, newDrawing, width_0, widthToPlace, x_0, y_0; - x_0 = 0; - y_0 = 0; - drawingWidth = drawing.drawingWidth; - drawingHeight = drawing.drawingHeight; - heightToPlace = toPlace.height; - widthToPlace = toPlace.width_0; - switch (option.ordinal) { - case 0: - x_0 = lastPlaced.x_0 + lastPlaced.width_0 + nodeNodeSpacing; - this$static.lpShift?(y_0 = calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing)):(y_0 = lastPlaced.y_0); - width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); - height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); - break; - case 1: - y_0 = lastPlaced.y_0 + lastPlaced.height + nodeNodeSpacing; - this$static.lpShift?(x_0 = calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing)):(x_0 = lastPlaced.x_0); - width_0 = $wnd.Math.max(drawingWidth, x_0 + widthToPlace); - height = $wnd.Math.max(drawingHeight, y_0 + heightToPlace); - break; - case 2: - x_0 = drawingWidth + nodeNodeSpacing; - y_0 = 0; - width_0 = drawingWidth + nodeNodeSpacing + widthToPlace; - height = $wnd.Math.max(drawingHeight, heightToPlace); - break; - case 3: - x_0 = 0; - y_0 = drawingHeight + nodeNodeSpacing; - width_0 = $wnd.Math.max(drawingWidth, widthToPlace); - height = drawingHeight + nodeNodeSpacing + heightToPlace; - break; - default:throw toJs(new IllegalArgumentException_0('IllegalPlacementOption.')); - } - newDrawing = new DrawingData_0(this$static.aspectRatio, width_0, height, option, x_0, y_0); - return newDrawing; -} - -function $checkSpecialCases(drawing1, drawing2, lastPlaced, toPlace){ - var areaLPB, areaLPR, firstOpt, firstOptLPBorCDB, firstOptLPRorCDR, firstOptLPRorLPB, lpbOpt, lprOpt, secondOpt, secondOptLPBorCDB, secondOptLPRorCDR, secondOptLPRorLPB, lastPlacedBottomBorder, toPlaceBottomBorder, maxYLPR, heightLPR, widthLPR, lastPlacedRightBorder, toPlaceRightBorder, maxXLPB, widthLPB, heightLPB; - firstOpt = drawing1.placementOption; - secondOpt = drawing2.placementOption; - firstOptLPBorCDB = firstOpt == ($clinit_DrawingDataDescriptor() , CANDIDATE_POSITION_LAST_PLACED_BELOW) || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; - secondOptLPBorCDB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW; - firstOptLPRorCDR = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; - secondOptLPRorCDR = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT; - firstOptLPRorLPB = firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || firstOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; - secondOptLPRorLPB = secondOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT || secondOpt == CANDIDATE_POSITION_LAST_PLACED_BELOW; - if (firstOptLPBorCDB && secondOptLPBorCDB) { - return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_BELOW?drawing1:drawing2; - } - else if (firstOptLPRorCDR && secondOptLPRorCDR) { - return drawing1.placementOption == CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT?drawing1:drawing2; - } - else if (firstOptLPRorLPB && secondOptLPRorLPB) { - if (firstOpt == CANDIDATE_POSITION_LAST_PLACED_RIGHT) { - lprOpt = drawing1; - lpbOpt = drawing2; - } - else { - lprOpt = drawing2; - lpbOpt = drawing1; - } - areaLPR = (lastPlacedBottomBorder = lastPlaced.y_0 + lastPlaced.height , toPlaceBottomBorder = lprOpt.nextYcoordinate + toPlace.height , maxYLPR = $wnd.Math.max(lastPlacedBottomBorder, toPlaceBottomBorder) , heightLPR = maxYLPR - $wnd.Math.min(lastPlaced.y_0, lprOpt.nextYcoordinate) , widthLPR = lprOpt.nextXcoordinate + toPlace.width_0 - lastPlaced.x_0 , widthLPR * heightLPR); - areaLPB = (lastPlacedRightBorder = lastPlaced.x_0 + lastPlaced.width_0 , toPlaceRightBorder = lpbOpt.nextXcoordinate + toPlace.width_0 , maxXLPB = $wnd.Math.max(lastPlacedRightBorder, toPlaceRightBorder) , widthLPB = maxXLPB - $wnd.Math.min(lastPlaced.x_0, lpbOpt.nextXcoordinate) , heightLPB = lpbOpt.nextYcoordinate + toPlace.height - lastPlaced.y_0 , widthLPB * heightLPB); - return areaLPR <= areaLPB?drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_RIGHT?drawing1:drawing2:drawing1.placementOption == CANDIDATE_POSITION_LAST_PLACED_BELOW?drawing1:drawing2; - } - return drawing1; -} - -function $findBestCandidate(this$static, opt1, opt2, opt3, opt4, toPlace, lastPlaced, padding){ - var candidates, filter, filter$iterator, filters; - candidates = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit, 1), $intern_2, 220, 0, [opt1, opt2, opt3, opt4])); - filters = null; - switch (this$static.goal.ordinal) { - case 1: - filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new ScaleMeasureFilter, new AreaFilter, new AspectRatioFilter])); - break; - case 0: - filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AspectRatioFilter, new AreaFilter, new ScaleMeasureFilter])); - break; - case 2: - filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AreaFilter, new ScaleMeasureFilter, new AspectRatioFilter])); - } - for (filter$iterator = new ArrayList$1(filters); filter$iterator.i < filter$iterator.this$01.array.length;) { - filter = castTo($next_7(filter$iterator), 526); - candidates.array.length > 1 && (candidates = filter.filterList(candidates, this$static.aspectRatio, padding)); - } - if (candidates.array.length == 1) { - return castTo($get_11(candidates, candidates.array.length - 1), 220); - } - if (candidates.array.length == 2) { - return $checkSpecialCases((checkCriticalElementIndex(0, candidates.array.length) , castTo(candidates.array[0], 220)), (checkCriticalElementIndex(1, candidates.array.length) , castTo(candidates.array[1], 220)), lastPlaced, toPlace); - } - return null; -} - -function AreaApproximation(aspectRatio, goal, lpShift){ - this.aspectRatio = aspectRatio; - this.goal = goal; - this.lpShift = lpShift; -} - -defineClass(1256, 1, {}, AreaApproximation); -_.aspectRatio = 0; -_.lpShift = false; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaApproximation_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaApproximation', 1256); -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit = createForInterface('org.eclipse.elk.alg.rectpacking.firstiteration', 'BestCandidateFilter'); -function AreaFilter(){ -} - -defineClass(638, 1, {526:1}, AreaFilter); -_.filterList = function filterList(candidates, aspectRatio, padding){ - var candidate, candidate$iterator, minArea, opt, opt$iterator, remainingCandidates; - remainingCandidates = new ArrayList; - minArea = $intern_59; - for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { - opt = castTo($next_7(opt$iterator), 220); - minArea = $wnd.Math.min(minArea, (opt.drawingWidth + (padding.left + padding.right)) * (opt.drawingHeight + (padding.top_0 + padding.bottom))); - } - for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { - candidate = castTo($next_7(candidate$iterator), 220); - (candidate.drawingWidth + (padding.left + padding.right)) * (candidate.drawingHeight + (padding.top_0 + padding.bottom)) == minArea && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); - } - return remainingCandidates; -} -; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaFilter', 638); -function AspectRatioFilter(){ -} - -defineClass(639, 1, {526:1}, AspectRatioFilter); -_.filterList = function filterList_0(candidates, aspectRatio, padding){ - var candidate, candidate$iterator, opt, opt$iterator, remainingCandidates, smallestDeviation; - remainingCandidates = new ArrayList; - smallestDeviation = $intern_59; - for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { - opt = castTo($next_7(opt$iterator), 220); - smallestDeviation = $wnd.Math.min(smallestDeviation, $wnd.Math.abs((opt.drawingWidth + (padding.left + padding.right)) / (opt.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio)); - } - for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { - candidate = castTo($next_7(candidate$iterator), 220); - $wnd.Math.abs((candidate.drawingWidth + (padding.left + padding.right)) / (candidate.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio) == smallestDeviation && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); - } - return remainingCandidates; -} -; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AspectRatioFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AspectRatioFilter', 639); -function calculateXforLPB(y_0, placedRects, lastPlaced, nodeNodeSpacing){ - var closestLeftNeighbour, closestNeighborRightBorder, placedRect, placedRect$iterator, placedRectRightBorder; - closestLeftNeighbour = null; - closestNeighborRightBorder = 0; - for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { - placedRect = castTo($next_7(placedRect$iterator), 33); - placedRectRightBorder = placedRect.x_0 + placedRect.width_0; - if (y_0 < placedRect.y_0 + placedRect.height + nodeNodeSpacing) { - !closestLeftNeighbour?(closestLeftNeighbour = placedRect):lastPlaced.x_0 - placedRectRightBorder < lastPlaced.x_0 - closestNeighborRightBorder && (closestLeftNeighbour = placedRect); - closestNeighborRightBorder = closestLeftNeighbour.x_0 + closestLeftNeighbour.width_0; - } - } - return !closestLeftNeighbour?0:closestNeighborRightBorder + nodeNodeSpacing; -} - -function calculateYforLPR(x_0, placedRects, lastPlaced, nodeNodeSpacing){ - var closestNeighborBottomBorder, closestUpperNeighbor, placedRect, placedRect$iterator, placedRectBottomBorder; - closestUpperNeighbor = null; - closestNeighborBottomBorder = 0; - for (placedRect$iterator = new ArrayList$1(placedRects); placedRect$iterator.i < placedRect$iterator.this$01.array.length;) { - placedRect = castTo($next_7(placedRect$iterator), 33); - placedRectBottomBorder = placedRect.y_0 + placedRect.height; - if (x_0 < placedRect.x_0 + placedRect.width_0 + nodeNodeSpacing) { - !closestUpperNeighbor?(closestUpperNeighbor = placedRect):lastPlaced.y_0 - placedRectBottomBorder < lastPlaced.y_0 - closestNeighborBottomBorder && (closestUpperNeighbor = placedRect); - closestNeighborBottomBorder = closestUpperNeighbor.y_0 + closestUpperNeighbor.height; - } - } - return !closestUpperNeighbor?0:closestNeighborBottomBorder + nodeNodeSpacing; -} - -function ScaleMeasureFilter(){ -} - -defineClass(637, 1, {526:1}, ScaleMeasureFilter); -_.filterList = function filterList_1(candidates, aspectRatio, padding){ - var candidate, candidate$iterator, maxScale, opt, opt$iterator, remainingCandidates; - remainingCandidates = new ArrayList; - maxScale = $intern_60; - for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { - opt = castTo($next_7(opt$iterator), 220); - maxScale = $wnd.Math.max(maxScale, computeScaleMeasure(opt.drawingWidth + (padding.left + padding.right), opt.drawingHeight + (padding.top_0 + padding.bottom), opt.dar)); - } - for (candidate$iterator = new ArrayList$1(candidates); candidate$iterator.i < candidate$iterator.this$01.array.length;) { - candidate = castTo($next_7(candidate$iterator), 220); - computeScaleMeasure(candidate.drawingWidth + (padding.left + padding.right), candidate.drawingHeight + (padding.top_0 + padding.bottom), candidate.dar) == maxScale && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); - } - return remainingCandidates; -} -; -var Lorg_eclipse_elk_alg_rectpacking_firstiteration_ScaleMeasureFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'ScaleMeasureFilter', 637); -function $clinit_OptimizationGoal(){ - $clinit_OptimizationGoal = emptyMethod; - ASPECT_RATIO_DRIVEN = new OptimizationGoal('ASPECT_RATIO_DRIVEN', 0); - MAX_SCALE_DRIVEN = new OptimizationGoal('MAX_SCALE_DRIVEN', 1); - AREA_DRIVEN = new OptimizationGoal('AREA_DRIVEN', 2); -} - -function OptimizationGoal(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_83(name_0){ - $clinit_OptimizationGoal(); - return valueOf(($clinit_OptimizationGoal$Map() , $MAP_71), name_0); -} - -function values_89(){ - $clinit_OptimizationGoal(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]); -} - -defineClass(381, 22, {3:1, 35:1, 22:1, 381:1}, OptimizationGoal); -var AREA_DRIVEN, ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN; -var Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.options', 'OptimizationGoal', 381, Ljava_lang_Enum_2_classLit, values_89, valueOf_83); -function $clinit_OptimizationGoal$Map(){ - $clinit_OptimizationGoal$Map = emptyMethod; - $MAP_71 = createValueOfMap(($clinit_OptimizationGoal() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]))); -} - -var $MAP_71; -function $clinit_RectPackingMetaDataProvider(){ - $clinit_RectPackingMetaDataProvider = emptyMethod; - OPTIMIZATION_GOAL_DEFAULT = ($clinit_OptimizationGoal() , MAX_SCALE_DRIVEN); - OPTIMIZATION_GOAL = new Property_1('org.eclipse.elk.rectpacking.optimizationGoal', OPTIMIZATION_GOAL_DEFAULT); - LAST_PLACE_SHIFT = new Property_1('org.eclipse.elk.rectpacking.lastPlaceShift', ($clinit_Boolean() , true)); - valueOf_4(-1); - CURRENT_POSITION = new Property_1('org.eclipse.elk.rectpacking.currentPosition', valueOf_4(-1)); - valueOf_4(-1); - DESIRED_POSITION = new Property_1('org.eclipse.elk.rectpacking.desiredPosition', valueOf_4(-1)); - ONLY_FIRST_ITERATION = new Property_1('org.eclipse.elk.rectpacking.onlyFirstIteration', false); - ROW_COMPACTION = new Property_1('org.eclipse.elk.rectpacking.rowCompaction', true); - EXPAND_TO_ASPECT_RATIO = new Property_1('org.eclipse.elk.rectpacking.expandToAspectRatio', false); - TARGET_WIDTH = new Property_1('org.eclipse.elk.rectpacking.targetWidth', -1); -} - -function RectPackingMetaDataProvider(){ - $clinit_RectPackingMetaDataProvider(); -} - -defineClass(856, 1, $intern_90, RectPackingMetaDataProvider); -_.apply_4 = function apply_161(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.optimizationGoal'), ''), 'Optimization Goal'), 'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'), OPTIMIZATION_GOAL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit), of_1(($clinit_LayoutOptionData$Target() , NODES))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.lastPlaceShift'), ''), 'Shift Last Placed.'), 'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'), ($clinit_Boolean() , true)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.currentPosition'), ''), 'Current position of a node in the order of nodes'), 'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.desiredPosition'), ''), 'Desired index of node'), 'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'), valueOf_4(-1)), INT), Ljava_lang_Integer_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.onlyFirstIteration'), ''), 'Only Area Approximation'), 'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.rowCompaction'), ''), 'Compact Rows'), 'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.expandToAspectRatio'), ''), 'Fit Aspect Ratio'), 'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $addDependency(registry, 'org.eclipse.elk.rectpacking.expandToAspectRatio', 'org.eclipse.elk.expandNodes', null); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.targetWidth'), ''), 'Target Width'), 'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'), -1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); - $apply_21((new RectPackingOptions , registry)); -} -; -var CURRENT_POSITION, DESIRED_POSITION, EXPAND_TO_ASPECT_RATIO, LAST_PLACE_SHIFT, ONLY_FIRST_ITERATION, OPTIMIZATION_GOAL, OPTIMIZATION_GOAL_DEFAULT, ROW_COMPACTION, TARGET_WIDTH; -var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingMetaDataProvider', 856); -function $clinit_RectPackingOptions(){ - $clinit_RectPackingOptions = emptyMethod; - ASPECT_RATIO_3 = new Property_2(($clinit_CoreOptions() , ASPECT_RATIO_5), 1.3); - EXPAND_NODES = EXPAND_NODES_1; - PADDING_DEFAULT_2 = new ElkPadding_0(15); - PADDING_3 = new Property_2(PADDING_6, PADDING_DEFAULT_2); - SPACING_NODE_NODE_3 = new Property_2(SPACING_NODE_NODE_6, 15); - CONTENT_ALIGNMENT_0 = CONTENT_ALIGNMENT_2; - NODE_SIZE_CONSTRAINTS_4 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_3 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_OPTIONS_4 = NODE_SIZE_OPTIONS_6; - NODE_LABELS_PLACEMENT_4 = NODE_LABELS_PLACEMENT_5; - OMIT_NODE_MICRO_LAYOUT_3 = OMIT_NODE_MICRO_LAYOUT_4; - PORT_LABELS_PLACEMENT_4 = PORT_LABELS_PLACEMENT_5; - OPTIMIZATION_GOAL_0 = ($clinit_RectPackingMetaDataProvider() , OPTIMIZATION_GOAL); - LAST_PLACE_SHIFT_0 = LAST_PLACE_SHIFT; - ONLY_FIRST_ITERATION_0 = ONLY_FIRST_ITERATION; - ROW_COMPACTION_0 = ROW_COMPACTION; - EXPAND_TO_ASPECT_RATIO_0 = EXPAND_TO_ASPECT_RATIO; - INTERACTIVE_5 = INTERACTIVE_7; - INTERACTIVE_LAYOUT_0 = INTERACTIVE_LAYOUT_1; - DESIRED_POSITION_0 = DESIRED_POSITION; - CURRENT_POSITION_0 = CURRENT_POSITION; - TARGET_WIDTH_0 = TARGET_WIDTH; -} - -function $apply_21(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.rectpacking'), 'ELK Rectangle Packing'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'), new RectPackingOptions$RectpackingFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.aspectRatio', 1.3); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.padding', PADDING_DEFAULT_2); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.spacing.nodeNode', 15); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_3)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.nodeLabels.placement', $getDefault(NODE_LABELS_PLACEMENT_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.omitNodeMicroLayout', $getDefault(OMIT_NODE_MICRO_LAYOUT_3)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.portLabels.placement', $getDefault(PORT_LABELS_PLACEMENT_4)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.optimizationGoal', $getDefault(OPTIMIZATION_GOAL_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.lastPlaceShift', $getDefault(LAST_PLACE_SHIFT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.onlyFirstIteration', $getDefault(ONLY_FIRST_ITERATION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.rowCompaction', $getDefault(ROW_COMPACTION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.expandToAspectRatio', $getDefault(EXPAND_TO_ASPECT_RATIO_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_5)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.desiredPosition', $getDefault(DESIRED_POSITION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.currentPosition', $getDefault(CURRENT_POSITION_0)); - $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.targetWidth', $getDefault(TARGET_WIDTH_0)); -} - -function RectPackingOptions(){ - $clinit_RectPackingOptions(); -} - -defineClass(1004, 1, $intern_90, RectPackingOptions); -_.apply_4 = function apply_162(registry){ - $apply_21(registry); -} -; -var ASPECT_RATIO_3, CONTENT_ALIGNMENT_0, CURRENT_POSITION_0, DESIRED_POSITION_0, EXPAND_NODES, EXPAND_TO_ASPECT_RATIO_0, INTERACTIVE_5, INTERACTIVE_LAYOUT_0, LAST_PLACE_SHIFT_0, NODE_LABELS_PLACEMENT_4, NODE_SIZE_CONSTRAINTS_4, NODE_SIZE_MINIMUM_3, NODE_SIZE_OPTIONS_4, OMIT_NODE_MICRO_LAYOUT_3, ONLY_FIRST_ITERATION_0, OPTIMIZATION_GOAL_0, PADDING_3, PADDING_DEFAULT_2, PORT_LABELS_PLACEMENT_4, ROW_COMPACTION_0, SPACING_NODE_NODE_3, TARGET_WIDTH_0; -var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions', 1004); -function RectPackingOptions$RectpackingFactory(){ -} - -defineClass(1005, 1, {}, RectPackingOptions$RectpackingFactory); -_.create_0 = function create_26(){ - var provider; - return provider = new RectPackingLayoutProvider , provider; -} -; -_.destroy = function destroy_5(obj){ -} -; -var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions$RectpackingFactory_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions/RectpackingFactory', 1005); -function absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing){ - var rect, somethingWasChanged; - somethingWasChanged = false; - rect = castTo($get_11(nextBlock.children, 0), 33); - while (placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing)) { - somethingWasChanged = true; - $removeChild(nextBlock, rect); - if (nextBlock.children.array.length == 0) { - break; - } - rect = castTo($get_11(nextBlock.children, 0), 33); - } - nextBlock.children.array.length == 0 && $removeBlock(nextBlock.parentRow, nextBlock); - somethingWasChanged && $updateDimension(block.stack_0); - return somethingWasChanged; -} - -function compact_4(rowIdx, rows_0, boundingWidth, nodeNodeSpacing){ - var block, blockId, blocks, currentStack, nextBlock, nextRowIndex, row, somethingWasChanged, wasFromNextRow, nextBlock_0; - somethingWasChanged = false; - nextRowIndex = rowIdx + 1; - row = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); - blocks = row.children; - currentStack = null; - for (blockId = 0; blockId < row.children.array.length; blockId++) { - block = (checkCriticalElementIndex(blockId, blocks.array.length) , castTo(blocks.array[blockId], 187)); - if (block.fixed_0) { - continue; - } - if (block.children.array.length == 0) { - $clinit_System(); - $removeBlock(row, block); - --blockId; - somethingWasChanged = true; - continue; - } - if (!block.positionFixed) { - !!currentStack && $updateDimension(currentStack); - currentStack = new BlockStack(!currentStack?0:currentStack.x_0 + currentStack.width_0 + nodeNodeSpacing, row.y_0, nodeNodeSpacing); - $setLocation(block, currentStack.x_0 + currentStack.width_0, row.y_0); - $add_3(row.stacks, currentStack); - $addBlock(currentStack, block); - block.positionFixed = true; - } - nextBlock = null; - nextBlock = (nextBlock_0 = null , blockId < row.children.array.length - 1?(nextBlock_0 = castTo($get_11(row.children, blockId + 1), 187)):nextRowIndex < rows_0.array.length && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length != 0 && (nextBlock_0 = castTo($get_11((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children, 0), 187)) , nextBlock_0); - wasFromNextRow = false; - !!nextBlock && (wasFromNextRow = !equals_Ljava_lang_Object__Z__devirtual$(nextBlock.parentRow, row)); - if (nextBlock) { - if (nextBlock.children.array.length == 0) { - $removeBlock(row, nextBlock); - break; - } - else { - $placeRectsIn(block, boundingWidth - block.x_0); - $updateDimension(block.stack_0); - somethingWasChanged = somethingWasChanged | absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing); - } - if (nextBlock.children.array.length == 0) { - $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); - nextBlock = null; - while (rows_0.array.length > nextRowIndex && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0) { - $remove_12(rows_0, (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , rows_0.array[nextRowIndex])); - } - } - if (!nextBlock) { - --blockId; - continue; - } - if (placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing)) { - somethingWasChanged = true; - continue; - } - if (wasFromNextRow) { - if (placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing)) { - somethingWasChanged = true; - continue; - } - else if (useRowHeight(row, block)) { - block.fixed_0 = true; - somethingWasChanged = true; - continue; - } - } - else if (useRowHeight(row, block)) { - block.fixed_0 = true; - somethingWasChanged = true; - continue; - } - if (somethingWasChanged) { - continue; - } - } - if (useRowHeight(row, block)) { - block.fixed_0 = true; - somethingWasChanged = true; - !!nextBlock && (nextBlock.positionFixed = false); - continue; - } - else { - $updateDimension(block.stack_0); - } - } - return somethingWasChanged; -} - -function placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing){ - var bounds, bounds0, currentBlockMinHeight, nextBlockMinHeight, remainingWidth, somethingWasChanged; - somethingWasChanged = false; - remainingWidth = boundingWidth - block.x_0; - currentBlockMinHeight = block.y_0 - row.y_0 + (bounds0 = $placeRectsIn_1(block, remainingWidth, false) , bounds0.height); - if (nextBlock.minWidth + nodeNodeSpacing > remainingWidth) { - return false; - } - nextBlockMinHeight = (bounds = $placeRectsIn_1(nextBlock, remainingWidth, false) , bounds.height); - if (currentBlockMinHeight + nodeNodeSpacing + nextBlockMinHeight <= row.height) { - $placeRectsIn(block, boundingWidth - block.x_0); - block.fixed_0 = true; - $placeRectsIn(nextBlock, boundingWidth - block.x_0); - $setLocation(nextBlock, block.x_0, block.y_0 + block.height + nodeNodeSpacing); - nextBlock.positionFixed = true; - $addBlock(block.stack_0, nextBlock); - somethingWasChanged = true; - if (wasFromNextRow) { - $addBlock_0(row, nextBlock); - nextBlock.parentRow = row; - if (rows_0.array.length > nextRowIndex) { - $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); - (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); - } - } - } - return somethingWasChanged; -} - -function placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing){ - var bounds, currentBlockMinWidth, lastRowOptimization, nextBlockHeight, somethingWasChanged, targetWidthOfNextBlock; - somethingWasChanged = false; - currentBlockMinWidth = $getWidthForFixedHeight(block.stack_0, row.y_0 + row.height - block.stack_0.y_0); - targetWidthOfNextBlock = boundingWidth - (block.stack_0.x_0 + currentBlockMinWidth - nodeNodeSpacing); - if (targetWidthOfNextBlock < nextBlock.minWidth) { - return false; - } - lastRowOptimization = nextRowIndex == rows_0.array.length - 1 && targetWidthOfNextBlock >= (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).width_0; - nextBlockHeight = (bounds = $placeRectsIn_1(nextBlock, targetWidthOfNextBlock, false) , bounds.height); - if (nextBlockHeight > row.height && !lastRowOptimization) { - return false; - } - if (lastRowOptimization || nextBlockHeight <= row.height) { - if (lastRowOptimization && nextBlockHeight > row.height) { - block.height = nextBlockHeight; - $placeRectsIn(block, $getWidthForTargetHeight(block, nextBlockHeight)); - } - else { - $placeRectsIn_2(block.stack_0, currentBlockMinWidth); - block.fixed_0 = true; - } - $placeRectsIn(nextBlock, boundingWidth - (block.x_0 + block.width_0)); - $setLocation(nextBlock, block.stack_0.x_0 + block.stack_0.width_0, row.y_0); - $addBlock_0(row, nextBlock); - if (rows_0.array.length > nextRowIndex) { - $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); - (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); - } - somethingWasChanged = true; - } - return somethingWasChanged; -} - -function useRowHeight(row, block){ - var previousWidth, somethingWasChanged, targetWidth; - somethingWasChanged = false; - previousWidth = block.stack_0.width_0; - if (block.height < row.height) { - targetWidth = $getWidthForFixedHeight(block.stack_0, row.height); - if (block.stack_0.width_0 > targetWidth) { - $placeRectsIn_2(block.stack_0, targetWidth); - somethingWasChanged = previousWidth != block.stack_0.width_0; - } - } - return somethingWasChanged; -} - -function place(rectangles, boundingWidth, nodeNodeSpacing){ - var block, currentWidth, drawingHeight, newBlock, potentialRowWidth, rect, rect$iterator, row, rows_0; - rows_0 = new ArrayList; - row = new RectRow(0, nodeNodeSpacing); - drawingHeight = 0; - $addBlock_0(row, new Block(0, 0, row, nodeNodeSpacing)); - currentWidth = 0; - for (rect$iterator = new AbstractEList$EIterator(rectangles); rect$iterator.cursor != rect$iterator.this$01_2.size_1();) { - rect = castTo($doNext(rect$iterator), 33); - block = castTo($get_11(row.children, row.children.array.length - 1), 187); - potentialRowWidth = currentWidth + rect.width_0 + (castTo($get_11(row.children, 0), 187).children.array.length == 0?0:nodeNodeSpacing); - if (potentialRowWidth > boundingWidth) { - currentWidth = 0; - drawingHeight += row.height + nodeNodeSpacing; - rows_0.array[rows_0.array.length] = row; - row = new RectRow(drawingHeight, nodeNodeSpacing); - block = new Block(0, row.y_0, row, nodeNodeSpacing); - $addBlock_0(row, block); - currentWidth = 0; - } - if (block.children.array.length == 0 || rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { - $addChild(block, rect); - } - else { - newBlock = new Block(block.x_0 + block.width_0 + nodeNodeSpacing, row.y_0, row, nodeNodeSpacing); - $addBlock_0(row, newBlock); - $addChild(newBlock, rect); - } - currentWidth = rect.x_0 + rect.width_0; - } - rows_0.array[rows_0.array.length] = row; - return rows_0; -} - -function placeRectInBlock(row, block, rect, boundingWidth, nodeNodeSpacing){ - var lastRow, lastRow0, lastRow_0; - if (rect.height >= block.smallestRectHeight && rect.height <= block.minHeight || block.averageHeight * 0.5 <= rect.height && block.averageHeight * 1.5 >= rect.height) { - lastRow0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); - if (lastRow0.x_0 + lastRow0.width_0 + rect.width_0 + nodeNodeSpacing <= boundingWidth && (lastRow = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211) , lastRow.y_0 - row.y_0 + rect.height <= row.height || row.children.array.length == 1)) { - $addChild(block, rect); - return true; - } - else if (block.x_0 + rect.width_0 <= boundingWidth && (block.y_0 + block.height + rect.height + nodeNodeSpacing <= row.height || row.children.array.length == 1)) { - $add_3(block.children, rect); - lastRow_0 = castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211); - $add_3(block.rows_0, new BlockRow(block.x_0, lastRow_0.y_0 + lastRow_0.height + block.nodeNodeSpacing, block.nodeNodeSpacing)); - $addRectangle(castTo($get_11(block.rows_0, block.rows_0.array.length - 1), 211), rect); - $adjustSizeAdd(block, rect); - return true; - } - } - return false; -} - -function expand(rows_0, drawingWidth, additionalHeight){ - var heightPerRow, index_0, row, row$iterator; - heightPerRow = additionalHeight / rows_0.array.length; - index_0 = 0; - for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 200); - $setY_1(row, row.y_0 + heightPerRow * index_0); - $expand_2(row, drawingWidth, heightPerRow); - ++index_0; - } -} - -function $adjustWidthAndHeight(this$static, row){ - var index_0, maxHeight, maxWidth, stack_0, stack$iterator; - maxHeight = 0; - maxWidth = 0; - index_0 = 0; - for (stack$iterator = new ArrayList$1(row.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { - stack_0 = castTo($next_7(stack$iterator), 443); - $updateDimension(stack_0); - maxHeight = $wnd.Math.max(maxHeight, stack_0.height); - maxWidth += stack_0.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - row.height = maxHeight; - row.width_0 = maxWidth; -} - -function $calculateDimensions(this$static, rows_0){ - var index_0, maxWidth, newHeight, row, row$iterator; - maxWidth = 0; - newHeight = 0; - index_0 = 0; - for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 200); - maxWidth = $wnd.Math.max(maxWidth, row.width_0); - newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - this$static.drawingHeight = newHeight; - this$static.drawingWidth = maxWidth; -} - -function $start(this$static, rectangles, maxWidth, minParentSize, progressMonitor, layoutGraph, padding){ - var additionalHeight, aspectRatio, block, block$iterator, currentRow, minHeight, previousRow, row, row$iterator, rowIdx, rows_0, stack_0, totalWidth; - rows_0 = place(rectangles, maxWidth, this$static.nodeNodeSpacing); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - if (this$static.compaction) { - for (rowIdx = 0; rowIdx < rows_0.array.length; rowIdx++) { - currentRow = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); - if (rowIdx != 0) { - previousRow = (checkCriticalElementIndex(rowIdx - 1, rows_0.array.length) , castTo(rows_0.array[rowIdx - 1], 200)); - $setY_1(currentRow, previousRow.y_0 + previousRow.height + this$static.nodeNodeSpacing); - } - compact_4(rowIdx, rows_0, maxWidth, this$static.nodeNodeSpacing); - $adjustWidthAndHeight(this$static, currentRow); - progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - } - } - else { - for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 200); - for (block$iterator = new ArrayList$1(row.children); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - stack_0 = new BlockStack(block.x_0, block.y_0, this$static.nodeNodeSpacing); - $addBlock(stack_0, block); - $add_3(row.stacks, stack_0); - } - } - } - $calculateDimensions(this$static, rows_0); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - totalWidth = $wnd.Math.max(this$static.drawingWidth, minParentSize.x_0 - (padding.left + padding.right)); - minHeight = $wnd.Math.max(this$static.drawingHeight, minParentSize.y_0 - (padding.top_0 + padding.bottom)); - additionalHeight = minHeight - this$static.drawingHeight; - if (this$static.expandNodes && this$static.expandToAspectRatio) { - aspectRatio = totalWidth / minHeight; - aspectRatio < this$static.aspectRatio?(totalWidth = minHeight * this$static.aspectRatio):(additionalHeight += totalWidth / this$static.aspectRatio - minHeight); - } - this$static.expandNodes && expand(rows_0, totalWidth, additionalHeight); - progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); - return new DrawingData(this$static.aspectRatio, totalWidth, this$static.drawingHeight + additionalHeight, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); -} - -function RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing){ - this.aspectRatio = aspectRatio; - this.expandNodes = expandNodes; - this.expandToAspectRatio = expandToAspectRatio; - this.compaction = compaction; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(1257, 1, {}, RowFillingAndCompaction); -_.aspectRatio = 0; -_.compaction = false; -_.drawingHeight = 0; -_.drawingWidth = 0; -_.expandNodes = false; -_.expandToAspectRatio = false; -_.nodeNodeSpacing = 0; -var Lorg_eclipse_elk_alg_rectpacking_seconditeration_RowFillingAndCompaction_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.seconditeration', 'RowFillingAndCompaction', 1257); -function $addChild(this$static, rect){ - this$static.rows_0.array.length == 0 && $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); - $add_3(this$static.children, rect); - $addRectangle(castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211), rect); - $adjustSizeAdd(this$static, rect); -} - -function $adjustChildrensXandY(this$static, xChange, yChange){ - var rect, rect$iterator; - for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - $setLocation_1(rect, rect.x_0 + xChange, rect.y_0 + yChange); - } -} - -function $adjustSizeAdd(this$static, rect){ - var row, row$iterator, totalHeight, widthOflastRow; - widthOflastRow = castTo($get_11(this$static.rows_0, this$static.rows_0.array.length - 1), 211).width_0; - this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); - this$static.width_0 = $wnd.Math.max(this$static.width_0, widthOflastRow); - this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0 + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing)); - this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); - this$static.maxHeight += rect.height + (this$static.children.array.length == 1?0:this$static.nodeNodeSpacing); - this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); - totalHeight = this$static.rows_0.array.length > 0?(this$static.rows_0.array.length - 1) * this$static.nodeNodeSpacing:0; - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - totalHeight += row.height; - } - this$static.height = totalHeight; - this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); - $notifyAboutNodeChange(this$static.parentRow); -} - -function $adjustSizeAfterRemove(this$static){ - var index_0, newHeight, newWidth, rect, rect$iterator, row, row$iterator, rowsToDelete; - newWidth = 0; - newHeight = 0; - rowsToDelete = new LinkedList; - index_0 = 0; - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - if (row.rects.array.length == 0) { - $addNode_0(rowsToDelete, row, rowsToDelete.tail.prev, rowsToDelete.tail); - } - else { - newWidth = $wnd.Math.max(newWidth, row.width_0); - newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); - } - ++index_0; - } - $removeAll_0(this$static.rows_0, rowsToDelete); - this$static.height = newHeight; - this$static.width_0 = newWidth; - this$static.minWidth = 0; - this$static.minHeight = 0; - this$static.maxHeight = 0; - this$static.smallestRectHeight = $intern_59; - this$static.smallestRectWidth = $intern_59; - for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - this$static.smallestRectWidth = $wnd.Math.min(this$static.smallestRectWidth, rect.width_0); - this$static.minWidth = $wnd.Math.max(this$static.minWidth, rect.width_0); - this$static.minHeight = $wnd.Math.max(this$static.minHeight, rect.height); - this$static.smallestRectHeight = $wnd.Math.min(this$static.smallestRectHeight, rect.height); - this$static.maxHeight += rect.height + this$static.nodeNodeSpacing; - } - this$static.averageHeight = this$static.maxHeight / this$static.children.array.length - this$static.nodeNodeSpacing * ((this$static.children.array.length - 1) / this$static.children.array.length); - $notifyAboutNodeChange(this$static.parentRow); -} - -function $expand(this$static, additionalWidthPerBlock, additionalHeightForBlock){ - var additionalHeightForRow, index_0, row, row$iterator, widthForRow; - widthForRow = this$static.width_0 + additionalWidthPerBlock; - this$static.width_0 += additionalWidthPerBlock; - this$static.height += additionalHeightForBlock; - additionalHeightForRow = additionalHeightForBlock / this$static.rows_0.array.length; - index_0 = 0; - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - $expand_0(row, widthForRow, additionalHeightForRow, index_0); - ++index_0; - } -} - -function $getWidthForTargetHeight(this$static, height){ - var bounds, lowerBound, newWidth, upperBound, viableWidth; - if (this$static.maxHeight <= height) { - return this$static.minWidth; - } - if ($placeRectsIn_0(this$static, this$static.minWidth, height)) { - return this$static.minWidth; - } - upperBound = this$static.width_0; - lowerBound = this$static.minWidth; - viableWidth = this$static.width_0; - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - while (lowerBound + 1 < upperBound) { - bounds = $placeRectsIn_1(this$static, newWidth, false); - if (bounds.width_0 <= newWidth && bounds.height <= height) { - viableWidth = newWidth; - upperBound = newWidth; - } - else { - lowerBound = newWidth; - } - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - } - return viableWidth; -} - -function $placeRectsIn(this$static, width_0){ - var bounds, oldHeight, oldWidth; - oldWidth = this$static.width_0; - oldHeight = this$static.height; - bounds = $placeRectsIn_1(this$static, width_0, true); - return bounds.width_0 != oldWidth || bounds.height != oldHeight; -} - -function $placeRectsIn_0(this$static, width_0, height){ - var bounds; - bounds = $placeRectsIn_1(this$static, width_0, false); - return bounds.width_0 <= width_0 && bounds.height <= height; -} - -function $placeRectsIn_1(this$static, width_0, placeRects){ - var currentHeight, currentWidth, currentX, currentY, index_0, maxHeightInRow, rect, rect$iterator, row, widthInRow; - currentX = 0; - currentY = this$static.y_0; - currentWidth = 0; - currentHeight = 0; - maxHeightInRow = 0; - widthInRow = 0; - row = 0; - if (placeRects) { - this$static.rows_0.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $add_3(this$static.rows_0, new BlockRow(this$static.x_0, this$static.y_0, this$static.nodeNodeSpacing)); - } - index_0 = 0; - for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - if (currentX + rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0) > width_0 && maxHeightInRow > 0) { - currentX = 0; - currentY += maxHeightInRow + this$static.nodeNodeSpacing; - currentWidth = $wnd.Math.max(currentWidth, widthInRow); - currentHeight += maxHeightInRow + this$static.nodeNodeSpacing; - maxHeightInRow = 0; - widthInRow = 0; - if (placeRects) { - ++row; - $add_3(this$static.rows_0, new BlockRow(this$static.x_0, currentY, this$static.nodeNodeSpacing)); - } - index_0 = 0; - } - widthInRow += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - maxHeightInRow = $wnd.Math.max(maxHeightInRow, rect.height); - placeRects && $addRectangle(castTo($get_11(this$static.rows_0, row), 211), rect); - currentX += rect.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - currentWidth = $wnd.Math.max(currentWidth, widthInRow); - currentHeight += maxHeightInRow; - if (placeRects) { - this$static.width_0 = currentWidth; - this$static.height = currentHeight; - $notifyAboutNodeChange(this$static.parentRow); - } - return new ElkRectangle_0(this$static.x_0, this$static.y_0, currentWidth, currentHeight); -} - -function $removeChild(this$static, rect){ - var row, row$iterator; - $remove_12(this$static.children, rect); - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - if ($indexOf_3(row.rects, rect, 0) != -1) { - $remove_12(row.rects, rect); - $updateRow(row); - row.rects.array.length == 0 && $remove_12(this$static.rows_0, row); - break; - } - } - $adjustSizeAfterRemove(this$static); -} - -function $setLocation(this$static, xCoord, yCoord){ - var row, row$iterator; - $adjustChildrensXandY(this$static, xCoord - this$static.x_0, yCoord - this$static.y_0); - for (row$iterator = new ArrayList$1(this$static.rows_0); row$iterator.i < row$iterator.this$01.array.length;) { - row = castTo($next_7(row$iterator), 211); - $setX_0(row, row.x_0 + xCoord - this$static.x_0); - $setY_0(row, row.y_0 + yCoord - this$static.y_0); - } - this$static.x_0 = xCoord; - this$static.y_0 = yCoord; -} - -function Block(xCoord, yCoord, parentRow, nodeNodeSpacing){ - this.children = new ArrayList; - this.rows_0 = new ArrayList; - this.nodeNodeSpacing = nodeNodeSpacing; - this.parentRow = parentRow; - this.x_0 = xCoord; - this.y_0 = yCoord; - this.width_0 = 0; - this.height = 0; -} - -defineClass(187, 1, {187:1}, Block); -_.averageHeight = 0; -_.fixed_0 = false; -_.height = 0; -_.maxHeight = 0; -_.minHeight = 0; -_.minWidth = 0; -_.nodeNodeSpacing = 0; -_.positionFixed = false; -_.smallestRectHeight = $intern_59; -_.smallestRectWidth = $intern_59; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_Block_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'Block', 187); -function $addRectangle(this$static, rect){ - $setX_2(rect, this$static.x_0 + this$static.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing)); - $setY_3(rect, this$static.y_0); - this$static.height = $wnd.Math.max(this$static.height, rect.height); - this$static.width_0 += rect.width_0 + (this$static.rects.array.length == 0?0:this$static.nodeNodeSpacing); - $add_3(this$static.rects, rect); - return true; -} - -function $expand_0(this$static, widthForRow, additionalHeightForRow, index_0){ - var additionalWidthForRect, i, newHeight, newWidth, oldHeight, oldWidth, rect, rect$iterator; - additionalWidthForRect = (widthForRow - this$static.width_0) / this$static.rects.array.length; - i = 0; - this$static.height += additionalHeightForRow; - this$static.width_0 = widthForRow; - for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - oldWidth = rect.width_0; - oldHeight = rect.height; - $setX_2(rect, rect.x_0 + i * additionalWidthForRect); - $setY_3(rect, rect.y_0 + index_0 * additionalHeightForRow); - $setWidth_0(rect, rect.width_0 + additionalWidthForRect); - $setHeight_0(rect, this$static.height); - ++i; - newWidth = rect.width_0; - newHeight = rect.height; - translate_1(rect, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); - } -} - -function $setX_0(this$static, x_0){ - this$static.x_0 = x_0; -} - -function $setY_0(this$static, y_0){ - this$static.y_0 = y_0; -} - -function $updateRow(this$static){ - var height, rect, rect$iterator, width_0; - width_0 = 0; - height = 0; - for (rect$iterator = new ArrayList$1(this$static.rects); rect$iterator.i < rect$iterator.this$01.array.length;) { - rect = castTo($next_7(rect$iterator), 33); - $setX_2(rect, this$static.x_0 + width_0); - $setY_3(rect, this$static.y_0); - width_0 += rect.width_0 + this$static.nodeNodeSpacing; - height = $wnd.Math.max(height, rect.height + this$static.nodeNodeSpacing); - } - this$static.width_0 = width_0 - this$static.nodeNodeSpacing; - this$static.height = height - this$static.nodeNodeSpacing; -} - -function BlockRow(x_0, y_0, nodeNodeSpacing){ - this.rects = new ArrayList; - this.x_0 = x_0; - this.y_0 = y_0; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(211, 1, {211:1}, BlockRow); -_.height = 0; -_.nodeNodeSpacing = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_BlockRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockRow', 211); -function $addBlock(this$static, block){ - block.stack_0 = this$static; - this$static.width_0 = $wnd.Math.max(this$static.width_0, block.width_0); - this$static.height += block.height + (this$static.blocks.array.length == 0?0:this$static.nodeNodeSpacing); - $add_3(this$static.blocks, block); -} - -function $expand_1(this$static, additionalWidth, additionalHeight){ - var additionalHeightPerBlock, block, block$iterator, index_0; - index_0 = 0; - additionalHeightPerBlock = additionalHeight / this$static.blocks.array.length; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - $setLocation(block, block.x_0, block.y_0 + index_0 * additionalHeightPerBlock); - $expand(block, this$static.width_0 - block.width_0 + additionalWidth, additionalHeightPerBlock); - ++index_0; - } -} - -function $getMinimumWidth_1(this$static){ - var block, block$iterator, minWidth; - minWidth = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - minWidth = $wnd.Math.max(minWidth, block.minWidth); - } - return minWidth; -} - -function $getWidthForFixedHeight(this$static, height){ - var block, block$iterator, bounds, lowerBound, minWidth, newWidth, totalHeight, upperBound, viableWidth; - if (this$static.blocks.array.length == 1) { - return $getWidthForTargetHeight(castTo($get_11(this$static.blocks, 0), 187), height); - } - minWidth = $getMinimumWidth_1(this$static); - totalHeight = 0; - upperBound = this$static.width_0; - lowerBound = minWidth; - viableWidth = this$static.width_0; - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - while (lowerBound + 1 < upperBound) { - totalHeight = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - totalHeight += (bounds = $placeRectsIn_1(block, newWidth, false) , bounds.height); - } - if (totalHeight < height) { - viableWidth = newWidth; - upperBound = newWidth; - } - else { - lowerBound = newWidth; - } - newWidth = (upperBound - lowerBound) / 2 + lowerBound; - } - return viableWidth; -} - -function $placeRectsIn_2(this$static, targetWidth){ - var block, block$iterator, currentHeight, currentWidth, currentY; - currentY = this$static.y_0; - currentHeight = 0; - currentWidth = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - $setLocation(block, this$static.x_0, currentY); - $placeRectsIn(block, targetWidth); - currentWidth = $wnd.Math.max(currentWidth, block.width_0); - currentY += block.height + this$static.nodeNodeSpacing; - currentHeight = currentY; - } - this$static.width_0 = currentWidth; - this$static.height = currentHeight; -} - -function $setLocation_0(this$static, x_0, y_0){ - var block, block$iterator, xDiff, yDiff; - xDiff = x_0 - this$static.x_0; - yDiff = y_0 - this$static.y_0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - $setLocation(block, block.x_0 + xDiff, block.y_0 + yDiff); - } - this$static.x_0 = x_0; - this$static.y_0 = y_0; -} - -function $updateDimension(this$static){ - var block, block$iterator, height, index_0, width_0; - height = 0; - width_0 = 0; - index_0 = 0; - for (block$iterator = new ArrayList$1(this$static.blocks); block$iterator.i < block$iterator.this$01.array.length;) { - block = castTo($next_7(block$iterator), 187); - width_0 = $wnd.Math.max(width_0, block.width_0); - height += block.height + (index_0 > 0?this$static.nodeNodeSpacing:0); - ++index_0; - } - this$static.height = height; - this$static.width_0 = width_0; -} - -function BlockStack(x_0, y_0, nodeNodeSpacing){ - this.blocks = new ArrayList; - this.x_0 = x_0; - this.y_0 = y_0; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(443, 1, {443:1}, BlockStack); -_.height = 0; -_.nodeNodeSpacing = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_BlockStack_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'BlockStack', 443); -function $setPlacementOption(this$static, placementOption){ - this$static.placementOption = placementOption; -} - -function DrawingData(dar, drawingWidth, drawingHeight, placementOption){ - DrawingData_0.call(this, dar, drawingWidth, drawingHeight, placementOption, 0, 0); -} - -function DrawingData_0(dar, drawingWidth, drawingHeight, placementOption, nextXcoord, nextYcoord){ - this.dar = dar; - this.drawingWidth = drawingWidth; - this.drawingHeight = drawingHeight; - this.placementOption = placementOption; - this.nextXcoordinate = nextXcoord; - this.nextYcoordinate = nextYcoord; - this.drawingWidth > 0 && this.drawingHeight > 0 && computeScaleMeasure(this.drawingWidth, this.drawingHeight, this.dar); -} - -defineClass(220, 1, {220:1}, DrawingData, DrawingData_0); -_.dar = 0; -_.drawingHeight = 0; -_.drawingWidth = 0; -_.nextXcoordinate = 0; -_.nextYcoordinate = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'DrawingData', 220); -function $clinit_DrawingDataDescriptor(){ - $clinit_DrawingDataDescriptor = emptyMethod; - CANDIDATE_POSITION_LAST_PLACED_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_RIGHT', 0); - CANDIDATE_POSITION_LAST_PLACED_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_LAST_PLACED_BELOW', 1); - CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT', 2); - CANDIDATE_POSITION_WHOLE_DRAWING_BELOW = new DrawingDataDescriptor('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW', 3); - WHOLE_DRAWING = new DrawingDataDescriptor('WHOLE_DRAWING', 4); -} - -function DrawingDataDescriptor(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_84(name_0){ - $clinit_DrawingDataDescriptor(); - return valueOf(($clinit_DrawingDataDescriptor$Map() , $MAP_72), name_0); -} - -function values_90(){ - $clinit_DrawingDataDescriptor(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]); -} - -defineClass(355, 22, {3:1, 35:1, 22:1, 355:1}, DrawingDataDescriptor); -var CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, WHOLE_DRAWING; -var Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit = createForEnum('org.eclipse.elk.alg.rectpacking.util', 'DrawingDataDescriptor', 355, Ljava_lang_Enum_2_classLit, values_90, valueOf_84); -function $clinit_DrawingDataDescriptor$Map(){ - $clinit_DrawingDataDescriptor$Map = emptyMethod; - $MAP_72 = createValueOfMap(($clinit_DrawingDataDescriptor() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 355, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]))); -} - -var $MAP_72; -function computeScaleMeasure(width_0, height, dar){ - return $wnd.Math.min(dar / width_0, 1 / height); -} - -function resetCoordinates(graph){ - var node, node$iterator; - for (node$iterator = new AbstractEList$EIterator(graph); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - $setX_2(node, 0); - $setY_3(node, 0); - } -} - -function $addBlock_0(this$static, block){ - this$static.height = $wnd.Math.max(this$static.height, block.height); - this$static.width_0 += block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); - $add_3(this$static.children, block); -} - -function $expand_2(this$static, width_0, additionalHeight){ - var additionalHeightForStack, additionalWidth, additionalWidthPerStack, index_0, stack_0, stack$iterator; - additionalWidth = width_0 - this$static.width_0; - additionalWidthPerStack = additionalWidth / this$static.stacks.array.length; - index_0 = 0; - for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { - stack_0 = castTo($next_7(stack$iterator), 443); - additionalHeightForStack = this$static.height - stack_0.height + additionalHeight; - $setLocation_0(stack_0, stack_0.x_0 + index_0 * additionalWidthPerStack, stack_0.y_0); - $expand_1(stack_0, additionalWidthPerStack, additionalHeightForStack); - ++index_0; - } -} - -function $notifyAboutNodeChange(this$static){ - var child, child$iterator, index_0, newMaxHeight, totalStackWidth; - totalStackWidth = 0; - newMaxHeight = $intern_60; - index_0 = 0; - for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 187); - totalStackWidth += child.width_0 + (index_0 > 0?this$static.nodeNodeSpacing:0); - newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); - ++index_0; - } - this$static.width_0 = totalStackWidth; - this$static.height = newMaxHeight; -} - -function $removeBlock(this$static, block){ - var child, child$iterator, newMaxHeight; - $remove_12(this$static.children, block); - this$static.width_0 -= block.width_0 + (this$static.children.array.length == 0?0:this$static.nodeNodeSpacing); - newMaxHeight = $intern_124; - for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { - child = castTo($next_7(child$iterator), 187); - newMaxHeight = $wnd.Math.max(newMaxHeight, child.height); - } - this$static.height = newMaxHeight; -} - -function $setY_1(this$static, y_0){ - var stack_0, stack$iterator, yChange; - yChange = y_0 - this$static.y_0; - for (stack$iterator = new ArrayList$1(this$static.stacks); stack$iterator.i < stack$iterator.this$01.array.length;) { - stack_0 = castTo($next_7(stack$iterator), 443); - $setLocation_0(stack_0, stack_0.x_0, stack_0.y_0 + yChange); - } - this$static.y_0 = y_0; -} - -function RectRow(y_0, nodeNodeSpacing){ - this.children = new ArrayList; - this.stacks = new ArrayList; - this.y_0 = y_0; - this.nodeNodeSpacing = nodeNodeSpacing; -} - -defineClass(200, 1, {200:1}, RectRow); -_.height = 0; -_.nodeNodeSpacing = 0; -_.width_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_alg_rectpacking_util_RectRow_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'RectRow', 200); -function $applyPositions_0(this$static, g){ - var e, e$iterator, elkNode, endLocation, kedgeSection, maxX, maxY, minX, minY, node, node$iterator, padding, source, startLocation, target, uv, vu; - minX = $intern_59; - minY = $intern_59; - maxX = $intern_60; - maxY = $intern_60; - for (node$iterator = new ArrayList$1(g.vertices); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 65); - elkNode = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33); - $setLocation_1(elkNode, node.rect.x_0, node.rect.y_0); - minX = $wnd.Math.min(minX, elkNode.x_0); - minY = $wnd.Math.min(minY, elkNode.y_0); - maxX = $wnd.Math.max(maxX, elkNode.x_0 + elkNode.width_0); - maxY = $wnd.Math.max(maxY, elkNode.y_0 + elkNode.height); - } - padding = castTo($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PADDING_4)), 116); - resizeNode_1(this$static.elkGraph, maxX - minX + (padding.left + padding.right), maxY - minY + (padding.top_0 + padding.bottom), true, true); - translate_0(this$static.elkGraph, -minX + padding.left, -minY + padding.top_0); - for (e$iterator = new AbstractEList$EIterator($getContainedEdges(this$static.elkGraph)); e$iterator.cursor != e$iterator.this$01_2.size_1();) { - e = castTo($doNext(e$iterator), 79); - kedgeSection = firstEdgeSection(e, true, true); - source = getSourceNode(e); - target = getTargetNode_0(e); - startLocation = new KVector_1(source.x_0 + source.width_0 / 2, source.y_0 + source.height / 2); - endLocation = new KVector_1(target.x_0 + target.width_0 / 2, target.y_0 + target.height / 2); - uv = $sub_0(new KVector_1(endLocation.x_0, endLocation.y_0), startLocation); - clipVector(uv, source.width_0, source.height); - $add_19(startLocation, uv); - vu = $sub_0(new KVector_1(startLocation.x_0, startLocation.y_0), endLocation); - clipVector(vu, target.width_0, target.height); - $add_19(endLocation, vu); - $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); - $setEndLocation(kedgeSection, endLocation.x_0, endLocation.y_0); - } -} - -function $importGraph_2(this$static, inputGraph){ - var adapter, calcu, center, closest, compactionStrategy, costFunction, costFunctionID, distance, elkNode, elkNode$iterator, halfHeight, halfWidth, id_0, margin, node, node$iterator, node$iterator0, preferredRootID, rootSelection, treeConstructionStrategy, vertex; - this$static.elkGraph = inputGraph; - this$static.nodeMap = new HashMap; - adapter = ($clinit_ElkGraphAdapters() , new ElkGraphAdapters$ElkGraphAdapter(this$static.elkGraph)); - calcu = new NodeMarginCalculator(adapter); - $process(calcu); - preferredRootID = castToString($getProperty_0(this$static.elkGraph, ($clinit_SporeCompactionOptions() , PROCESSING_ORDER_PREFERRED_ROOT))); - costFunctionID = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION), 316); - treeConstructionStrategy = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_TREE_CONSTRUCTION), 429); - compactionStrategy = castTo($getProperty_0(this$static.elkGraph, COMPACTION_COMPACTION_STRATEGY), 482); - rootSelection = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_ROOT_SELECTION), 430); - this$static.spacingNodeNode = $doubleValue(castToDouble($getProperty_0(this$static.elkGraph, SPACING_NODE_NODE_4))); - costFunction = this$static.centerDistance; - switch (costFunctionID.ordinal) { - case 0: - costFunction = this$static.centerDistance; - break; - case 1: - costFunction = this$static.circleUnderlap; - break; - case 2: - costFunction = this$static.rectangleUnderlap; - break; - case 3: - costFunction = this$static.invertedOverlap; - break; - case 4: - costFunction = this$static.minimumRootDistance; - break; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (costFunctionID.name_0 != null?costFunctionID.name_0:'' + costFunctionID.ordinal))); - } - this$static.graph_0 = new Graph(costFunction, treeConstructionStrategy, compactionStrategy); - $setProperty_0(this$static.graph_0, ($clinit_InternalProperties() , DEBUG_SVG), castToBoolean($getProperty_0(this$static.elkGraph, DEBUG_MODE_1))); - this$static.graph_0.orthogonalCompaction = $booleanValue(castToBoolean($getProperty_0(this$static.elkGraph, COMPACTION_ORTHOGONAL))); - if ($getChildren(this$static.elkGraph).size_0 == 0) { - return this$static.graph_0; - } - for (elkNode$iterator = new AbstractEList$EIterator($getChildren(this$static.elkGraph)); elkNode$iterator.cursor != elkNode$iterator.this$01_2.size_1();) { - elkNode = castTo($doNext(elkNode$iterator), 33); - halfWidth = elkNode.width_0 / 2; - halfHeight = elkNode.height / 2; - vertex = new KVector_1(elkNode.x_0 + halfWidth, elkNode.y_0 + halfHeight); - while ($containsKey_3(this$static.nodeMap, vertex)) { - $add_18(vertex, ($wnd.Math.random() - 0.5) * $intern_101, ($wnd.Math.random() - 0.5) * $intern_101); - } - margin = castTo($getProperty_0(elkNode, ($clinit_CoreOptions() , MARGINS_0)), 142); - node = new Node_0(vertex, new ElkRectangle_0(vertex.x_0 - halfWidth - this$static.spacingNodeNode / 2 - margin.left, vertex.y_0 - halfHeight - this$static.spacingNodeNode / 2 - margin.top_0, elkNode.width_0 + this$static.spacingNodeNode + (margin.left + margin.right), elkNode.height + this$static.spacingNodeNode + (margin.top_0 + margin.bottom))); - $add_3(this$static.graph_0.vertices, node); - $put_6(this$static.nodeMap, vertex, new Pair(node, elkNode)); - } - switch (rootSelection.ordinal) { - case 0: - if (preferredRootID == null) { - this$static.graph_0.preferredRoot = castTo($get_11(this$static.graph_0.vertices, 0), 65); - } - else { - for (node$iterator0 = new ArrayList$1(this$static.graph_0.vertices); node$iterator0.i < node$iterator0.this$01.array.length;) { - node = castTo($next_7(node$iterator0), 65); - id_0 = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33).getIdentifier(); - id_0 != null && $equals_5(id_0, preferredRootID) && (this$static.graph_0.preferredRoot = node); - } - } - - break; - case 1: - center = new KVector_1(this$static.elkGraph.width_0, this$static.elkGraph.height); - center.x_0 *= 0.5; - center.y_0 *= 0.5; - $add_18(center, this$static.elkGraph.x_0, this$static.elkGraph.y_0); - closest = $intern_59; - for (node$iterator = new ArrayList$1(this$static.graph_0.vertices); node$iterator.i < node$iterator.this$01.array.length;) { - node = castTo($next_7(node$iterator), 65); - distance = $distance_0(node.originalVertex, center); - if (distance < closest) { - closest = distance; - this$static.graph_0.preferredRoot = node; - } - } - - break; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (rootSelection.name_0 != null?rootSelection.name_0:'' + rootSelection.ordinal))); - } - return this$static.graph_0; -} - -function $lambda$1_6(this$static, e_0){ - return $wnd.Math.min($distance_0(e_0.u, this$static.graph_0.preferredRoot.vertex), $distance_0(e_0.v, this$static.graph_0.preferredRoot.vertex)); -} - -function $lambda$2_4(this$static, e_0){ - var n1, n2; - n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); - n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); - return $distance_0(e_0.u, e_0.v) - $distance_0(e_0.u, $getPosition(n1.rect)) - $distance_0(e_0.v, $getPosition(n2.rect)); -} - -function $lambda$3_3(this$static, e_0){ - var n1, n2; - n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); - n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); - return $underlap(n1, n2); -} - -function $lambda$4_2(this$static, e_0){ - var dist, n1, n2, r1, r2, s; - n1 = castTo(castTo($get_10(this$static.nodeMap, e_0.u), 46).first, 65); - n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); - r1 = n1.rect; - r2 = n2.rect; - dist = shortestDistance_0(r1, r2); - if (dist >= 0) { - return dist; - } - s = $length($sub_0(new KVector_1(r2.x_0 + r2.width_0 / 2, r2.y_0 + r2.height / 2), new KVector_1(r1.x_0 + r1.width_0 / 2, r1.y_0 + r1.height / 2))); - return -(overlap_0(r1, r2) - 1) * s; -} - -function $updateGraph(this$static, g){ - var n, n$iterator, original, updatedNodeMap; - updatedNodeMap = new HashMap; - g.tEdges = null; - g.tree = null; - for (n$iterator = new ArrayList$1(g.vertices); n$iterator.i < n$iterator.this$01.array.length;) { - n = castTo($next_7(n$iterator), 65); - original = castTo($get_10(this$static.nodeMap, n.originalVertex), 46); - n.originalVertex = $getCenter(n.rect); - $put_6(updatedNodeMap, n.originalVertex, original); - } - this$static.nodeMap = updatedNodeMap; -} - -function ElkGraphImporter_0(){ - this.centerDistance = new ElkGraphImporter$lambda$0$Type_0; - this.minimumRootDistance = new ElkGraphImporter$lambda$1$Type_0(this); - this.circleUnderlap = new ElkGraphImporter$lambda$2$Type_0(this); - this.rectangleUnderlap = new ElkGraphImporter$lambda$3$Type(this); - this.invertedOverlap = new ElkGraphImporter$lambda$4$Type_0(this); -} - -defineClass(756, 1, {}, ElkGraphImporter_0); -_.spacingNodeNode = 0; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter', 756); -function ElkGraphImporter$lambda$0$Type_0(){ -} - -defineClass(1245, 1, {}, ElkGraphImporter$lambda$0$Type_0); -_.cost = function cost_0(arg0){ - return $distance_0(arg0.u, arg0.v); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$0$Type', 1245); -function ElkGraphImporter$lambda$1$Type_0($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1246, 1, {}, ElkGraphImporter$lambda$1$Type_0); -_.cost = function cost_1(arg0){ - return $lambda$1_6(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$1$Type', 1246); -function ElkGraphImporter$lambda$2$Type_0($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1247, 1, {}, ElkGraphImporter$lambda$2$Type_0); -_.cost = function cost_2(arg0){ - return $lambda$2_4(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$2$Type', 1247); -function ElkGraphImporter$lambda$3$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1248, 1, {}, ElkGraphImporter$lambda$3$Type); -_.cost = function cost_3(arg0){ - return $lambda$3_3(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$3$Type', 1248); -function ElkGraphImporter$lambda$4$Type_0($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1249, 1, {}, ElkGraphImporter$lambda$4$Type_0); -_.cost = function cost_4(arg0){ - return $lambda$4_2(this.$$outer_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_ElkGraphImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter/lambda$4$Type', 1249); -function OverlapRemovalLayoutProvider(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); -} - -function lambda$0_33(overlapEdges_0, n1_1, n2_2){ - return $add_6(overlapEdges_0, new TEdge(n1_1.originalVertex, n2_2.originalVertex)); -} - -defineClass(1133, 209, $intern_96, OverlapRemovalLayoutProvider); -_.layout = function layout_6(layoutGraph, progressMonitor){ - var graph, graphImporter, iteration, lad, layoutProvider, maxIterations, overlapEdges, overlapHandler, overlapsExisted, processor, processor$iterator, requestedAlgorithm; - if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { - requestedAlgorithm = castToString($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , UNDERLYING_LAYOUT_ALGORITHM_1))); - lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); - if (lad) { - layoutProvider = castTo($fetch(lad.providerPool), 209); - layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); - } - } - $setProperty_1(layoutGraph, PROCESSING_ORDER_ROOT_SELECTION, ($clinit_RootSelection() , CENTER_NODE)); - $setProperty_1(layoutGraph, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, ($clinit_SpanningTreeCostFunction() , INVERTED_OVERLAP)); - $setProperty_1(layoutGraph, PROCESSING_ORDER_TREE_CONSTRUCTION, ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE)); - maxIterations = castTo($getProperty_0(layoutGraph, ($clinit_SporeOverlapRemovalOptions() , OVERLAP_REMOVAL_MAX_ITERATIONS_0)), 19).value_0; - $begin(progressMonitor, 'Overlap removal', 1); - $booleanValue(castToBoolean($getProperty_0(layoutGraph, DEBUG_MODE_2))) && 'null45scanlineOverlaps'; - overlapEdges = new HashSet; - overlapHandler = new OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges); - graphImporter = new ElkGraphImporter_0; - graph = $importGraph_2(graphImporter, layoutGraph); - overlapsExisted = true; - iteration = 0; - while (iteration < maxIterations && overlapsExisted) { - if ($booleanValue(castToBoolean($getProperty_0(layoutGraph, OVERLAP_REMOVAL_RUN_SCANLINE_0)))) { - overlapEdges.map_0.clear_0(); - $sweep_0(new ScanlineOverlapCheck(overlapHandler), graph.vertices); - if (overlapEdges.map_0.size_1() == 0) { - break; - } - graph.tEdges = overlapEdges; - } - $reset_4(this.algorithmAssembler); - $setPhase(this.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); - $setPhase(this.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); - $setPhase(this.algorithmAssembler, P3_EXECUTION, ($clinit_OverlapRemovalStrategy() , GROW_TREE)); - this.algorithm = $build_0(this.algorithmAssembler, graph); - for (processor$iterator = new ArrayList$1(this.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(graph, $subTask(progressMonitor, 1)); - } - $updateGraph(graphImporter, graph); - overlapsExisted = $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , OVERLAPS_EXISTED)))); - ++iteration; - } - $applyPositions_0(graphImporter, graph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider', 1133); -function $handle_4(this$static, arg0, arg1){ - lambda$0_33(this$static.overlapEdges_0, arg0, arg1); -} - -function OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges_0){ - this.overlapEdges_0 = overlapEdges_0; -} - -defineClass(1134, 1, {}, OverlapRemovalLayoutProvider$lambda$0$Type); -var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider/lambda$0$Type', 1134); -function $clinit_SPOrEPhases(){ - $clinit_SPOrEPhases = emptyMethod; - P1_STRUCTURE = new SPOrEPhases('P1_STRUCTURE', 0); - P2_PROCESSING_ORDER = new SPOrEPhases('P2_PROCESSING_ORDER', 1); - P3_EXECUTION = new SPOrEPhases('P3_EXECUTION', 2); -} - -function SPOrEPhases(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_85(name_0){ - $clinit_SPOrEPhases(); - return valueOf(($clinit_SPOrEPhases$Map() , $MAP_73), name_0); -} - -function values_91(){ - $clinit_SPOrEPhases(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]); -} - -defineClass(437, 22, {3:1, 35:1, 22:1, 437:1}, SPOrEPhases); -var P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION; -var Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit = createForEnum('org.eclipse.elk.alg.spore', 'SPOrEPhases', 437, Ljava_lang_Enum_2_classLit, values_91, valueOf_85); -function $clinit_SPOrEPhases$Map(){ - $clinit_SPOrEPhases$Map = emptyMethod; - $MAP_73 = createValueOfMap(($clinit_SPOrEPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 437, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]))); -} - -var $MAP_73; -function $shrink(this$static, graph, progressMonitor){ - var processor, processor$iterator; - $reset_4(this$static.algorithmAssembler); - $setPhase(this$static.algorithmAssembler, ($clinit_SPOrEPhases() , P1_STRUCTURE), ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION)); - $setPhase(this$static.algorithmAssembler, P2_PROCESSING_ORDER, graph.treeConstructionStrategy); - $setPhase(this$static.algorithmAssembler, P3_EXECUTION, graph.compactionStrategy); - this$static.algorithm = $build_0(this$static.algorithmAssembler, graph); - $begin(progressMonitor, 'Compaction by shrinking a tree', this$static.algorithm.array.length); - if (graph.vertices.array.length > 1) { - for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { - processor = castTo($next_7(processor$iterator), 51); - processor.process(graph, $subTask(progressMonitor, 1)); - } - } - $done_0(progressMonitor); -} - -function ShrinkTree(){ - this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); -} - -defineClass(1255, 1, {}, ShrinkTree); -var Lorg_eclipse_elk_alg_spore_ShrinkTree_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTree', 1255); -function ShrinkTreeLayoutProvider(){ - this.shrinktree = new ShrinkTree; -} - -defineClass(1135, 209, $intern_96, ShrinkTreeLayoutProvider); -_.layout = function layout_7(layoutGraph, progressMonitor){ - var graph, graphImporter, lad, layoutProvider, requestedAlgorithm; - if ($hasProperty_0(layoutGraph, ($clinit_SporeCompactionOptions() , UNDERLYING_LAYOUT_ALGORITHM))) { - requestedAlgorithm = castToString($getProperty_0(layoutGraph, UNDERLYING_LAYOUT_ALGORITHM)); - lad = $getAlgorithmDataBySuffix(getInstance(), requestedAlgorithm); - if (lad) { - layoutProvider = castTo($fetch(lad.providerPool), 209); - layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); - } - } - graphImporter = new ElkGraphImporter_0; - graph = $importGraph_2(graphImporter, layoutGraph); - $shrink(this.shrinktree, graph, $subTask(progressMonitor, 1)); - $applyPositions_0(graphImporter, graph); -} -; -var Lorg_eclipse_elk_alg_spore_ShrinkTreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTreeLayoutProvider', 1135); -function Graph(costFun, treeStrategy, compStrategy){ - this.vertices = new ArrayList; - this.costFunction = costFun; - this.treeConstructionStrategy = treeStrategy; - this.compactionStrategy = compStrategy; -} - -defineClass(300, 134, {3:1, 300:1, 94:1, 134:1}, Graph); -_.orthogonalCompaction = false; -var Lorg_eclipse_elk_alg_spore_graph_Graph_2_classLit = createForClass('org.eclipse.elk.alg.spore.graph', 'Graph', 300); -function $clinit_CompactionStrategy_1(){ - $clinit_CompactionStrategy_1 = emptyMethod; - DEPTH_FIRST_0 = new CompactionStrategy_1; -} - -function $create_14(this$static){ - switch (this$static.ordinal) { - case 0: - return new ShrinkTreeCompactionPhase; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function CompactionStrategy_1(){ - Enum.call(this, 'DEPTH_FIRST', 0); -} - -function valueOf_86(name_0){ - $clinit_CompactionStrategy_1(); - return valueOf(($clinit_CompactionStrategy$Map_1() , $MAP_74), name_0); -} - -function values_92(){ - $clinit_CompactionStrategy_1(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]); -} - -defineClass(482, 22, {3:1, 35:1, 22:1, 482:1, 246:1, 234:1}, CompactionStrategy_1); -_.create_1 = function create_28(){ - return $create_14(this); -} -; -_.create_2 = function create_27(){ - return $create_14(this); -} -; -var DEPTH_FIRST_0; -var Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'CompactionStrategy', 482, Ljava_lang_Enum_2_classLit, values_92, valueOf_86); -function $clinit_CompactionStrategy$Map_1(){ - $clinit_CompactionStrategy$Map_1 = emptyMethod; - $MAP_74 = createValueOfMap(($clinit_CompactionStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]))); -} - -var $MAP_74; -function $clinit_OverlapRemovalStrategy(){ - $clinit_OverlapRemovalStrategy = emptyMethod; - GROW_TREE = new OverlapRemovalStrategy; -} - -function OverlapRemovalStrategy(){ - Enum.call(this, 'GROW_TREE', 0); -} - -function valueOf_87(name_0){ - $clinit_OverlapRemovalStrategy(); - return valueOf(($clinit_OverlapRemovalStrategy$Map() , $MAP_75), name_0); -} - -function values_93(){ - $clinit_OverlapRemovalStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]); -} - -defineClass(551, 22, {3:1, 35:1, 22:1, 551:1, 246:1, 234:1}, OverlapRemovalStrategy); -_.create_1 = function create_30(){ - return new GrowTreePhase; -} -; -_.create_2 = function create_29(){ - return new GrowTreePhase; -} -; -var GROW_TREE; -var Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'OverlapRemovalStrategy', 551, Ljava_lang_Enum_2_classLit, values_93, valueOf_87); -function $clinit_OverlapRemovalStrategy$Map(){ - $clinit_OverlapRemovalStrategy$Map = emptyMethod; - $MAP_75 = createValueOfMap(($clinit_OverlapRemovalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]))); -} - -var $MAP_75; -function $clinit_RootSelection(){ - $clinit_RootSelection = emptyMethod; - FIXED_1 = new RootSelection('FIXED', 0); - CENTER_NODE = new RootSelection('CENTER_NODE', 1); -} - -function RootSelection(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_88(name_0){ - $clinit_RootSelection(); - return valueOf(($clinit_RootSelection$Map() , $MAP_76), name_0); -} - -function values_94(){ - $clinit_RootSelection(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]); -} - -defineClass(430, 22, {3:1, 35:1, 22:1, 430:1}, RootSelection); -var CENTER_NODE, FIXED_1; -var Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'RootSelection', 430, Ljava_lang_Enum_2_classLit, values_94, valueOf_88); -function $clinit_RootSelection$Map(){ - $clinit_RootSelection$Map = emptyMethod; - $MAP_76 = createValueOfMap(($clinit_RootSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 430, 0, [FIXED_1, CENTER_NODE]))); -} - -var $MAP_76; -function $clinit_SpanningTreeCostFunction(){ - $clinit_SpanningTreeCostFunction = emptyMethod; - CENTER_DISTANCE = new SpanningTreeCostFunction('CENTER_DISTANCE', 0); - CIRCLE_UNDERLAP = new SpanningTreeCostFunction('CIRCLE_UNDERLAP', 1); - RECTANGLE_UNDERLAP = new SpanningTreeCostFunction('RECTANGLE_UNDERLAP', 2); - INVERTED_OVERLAP = new SpanningTreeCostFunction('INVERTED_OVERLAP', 3); - MINIMUM_ROOT_DISTANCE = new SpanningTreeCostFunction('MINIMUM_ROOT_DISTANCE', 4); -} - -function SpanningTreeCostFunction(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_89(name_0){ - $clinit_SpanningTreeCostFunction(); - return valueOf(($clinit_SpanningTreeCostFunction$Map() , $MAP_77), name_0); -} - -function values_95(){ - $clinit_SpanningTreeCostFunction(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]); -} - -defineClass(316, 22, {3:1, 35:1, 22:1, 316:1}, SpanningTreeCostFunction); -var CENTER_DISTANCE, CIRCLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE, RECTANGLE_UNDERLAP; -var Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'SpanningTreeCostFunction', 316, Ljava_lang_Enum_2_classLit, values_95, valueOf_89); -function $clinit_SpanningTreeCostFunction$Map(){ - $clinit_SpanningTreeCostFunction$Map = emptyMethod; - $MAP_77 = createValueOfMap(($clinit_SpanningTreeCostFunction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]))); -} - -var $MAP_77; -function $clinit_SporeCompactionOptions(){ - $clinit_SporeCompactionOptions = emptyMethod; - UNDERLYING_LAYOUT_ALGORITHM = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); - PROCESSING_ORDER_TREE_CONSTRUCTION = PROCESSING_ORDER_TREE_CONSTRUCTION_0; - PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION = PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0; - PROCESSING_ORDER_PREFERRED_ROOT = PROCESSING_ORDER_PREFERRED_ROOT_0; - PROCESSING_ORDER_ROOT_SELECTION = PROCESSING_ORDER_ROOT_SELECTION_0; - PADDING_DEFAULT_3 = new ElkPadding_0(8); - PADDING_4 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_3); - SPACING_NODE_NODE_4 = new Property_2(SPACING_NODE_NODE_6, 8); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; - COMPACTION_COMPACTION_STRATEGY = COMPACTION_COMPACTION_STRATEGY_0; - COMPACTION_ORTHOGONAL = COMPACTION_ORTHOGONAL_0; - DEBUG_MODE_1 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); -} - -function $apply_22(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeCompaction'), 'ELK SPOrE Compaction'), 'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'), new SporeCompactionOptions$SporeCompactionFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.treeConstruction', $getDefault(PROCESSING_ORDER_TREE_CONSTRUCTION)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.spanningTreeCostFunction', $getDefault(PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.preferredRoot', $getDefault(PROCESSING_ORDER_PREFERRED_ROOT)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.processingOrder.rootSelection', $getDefault(PROCESSING_ORDER_ROOT_SELECTION)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.padding', PADDING_DEFAULT_3); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.spacing.nodeNode', 8); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.compactionStrategy', $getDefault(COMPACTION_COMPACTION_STRATEGY)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.compaction.orthogonal', $getDefault(COMPACTION_ORTHOGONAL)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeCompaction', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); -} - -function SporeCompactionOptions(){ - $clinit_SporeCompactionOptions(); -} - -defineClass(1002, 1, $intern_90, SporeCompactionOptions); -_.apply_4 = function apply_163(registry){ - $apply_22(registry); -} -; -var COMPACTION_COMPACTION_STRATEGY, COMPACTION_ORTHOGONAL, DEBUG_MODE_1, PADDING_4, PADDING_DEFAULT_3, PROCESSING_ORDER_PREFERRED_ROOT, PROCESSING_ORDER_ROOT_SELECTION, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION, PROCESSING_ORDER_TREE_CONSTRUCTION, SPACING_NODE_NODE_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY, UNDERLYING_LAYOUT_ALGORITHM; -var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions', 1002); -function SporeCompactionOptions$SporeCompactionFactory(){ -} - -defineClass(1003, 1, {}, SporeCompactionOptions$SporeCompactionFactory); -_.create_0 = function create_31(){ - var provider; - return provider = new ShrinkTreeLayoutProvider , provider; -} -; -_.destroy = function destroy_6(obj){ -} -; -var Lorg_eclipse_elk_alg_spore_options_SporeCompactionOptions$SporeCompactionFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeCompactionOptions/SporeCompactionFactory', 1003); -function $clinit_SporeMetaDataProvider(){ - $clinit_SporeMetaDataProvider = emptyMethod; - UNDERLYING_LAYOUT_ALGORITHM_0 = new Property('org.eclipse.elk.underlyingLayoutAlgorithm'); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT = ($clinit_StructureExtractionStrategy() , DELAUNAY_TRIANGULATION); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.structure.structureExtractionStrategy', STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT); - PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT = ($clinit_TreeConstructionStrategy() , MINIMUM_SPANNING_TREE); - PROCESSING_ORDER_TREE_CONSTRUCTION_0 = new Property_1('org.eclipse.elk.processingOrder.treeConstruction', PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT); - PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT = ($clinit_SpanningTreeCostFunction() , CIRCLE_UNDERLAP); - PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0 = new Property_1('org.eclipse.elk.processingOrder.spanningTreeCostFunction', PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT); - PROCESSING_ORDER_PREFERRED_ROOT_0 = new Property_1('org.eclipse.elk.processingOrder.preferredRoot', null); - PROCESSING_ORDER_ROOT_SELECTION_DEFAULT = ($clinit_RootSelection() , CENTER_NODE); - PROCESSING_ORDER_ROOT_SELECTION_0 = new Property_1('org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_ROOT_SELECTION_DEFAULT); - COMPACTION_COMPACTION_STRATEGY_DEFAULT = ($clinit_CompactionStrategy_1() , DEPTH_FIRST_0); - COMPACTION_COMPACTION_STRATEGY_0 = new Property_1('org.eclipse.elk.compaction.compactionStrategy', COMPACTION_COMPACTION_STRATEGY_DEFAULT); - COMPACTION_ORTHOGONAL_0 = new Property_1('org.eclipse.elk.compaction.orthogonal', ($clinit_Boolean() , false)); - OVERLAP_REMOVAL_MAX_ITERATIONS = new Property_1('org.eclipse.elk.overlapRemoval.maxIterations', valueOf_4(64)); - OVERLAP_REMOVAL_RUN_SCANLINE = new Property_1('org.eclipse.elk.overlapRemoval.runScanline', true); - PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0 = FIXED_1; -} - -function SporeMetaDataProvider(){ - $clinit_SporeMetaDataProvider(); -} - -defineClass(855, 1, $intern_90, SporeMetaDataProvider); -_.apply_4 = function apply_164(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.underlyingLayoutAlgorithm'), ''), 'Underlying Layout Algorithm'), 'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.structure.structureExtractionStrategy'), 'structure'), 'Structure Extraction Strategy'), 'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'), STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.treeConstruction'), 'processingOrder'), 'Tree Construction Strategy'), 'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'), PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.spanningTreeCostFunction'), 'processingOrder'), 'Cost Function for Spanning Tree'), 'The cost function is used in the creation of the spanning tree.'), PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.preferredRoot'), 'processingOrder'), 'Root node for spanning tree construction'), 'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'), null), STRING), Ljava_lang_String_2_classLit), of_1(PARENTS)))); - $addDependency(registry, 'org.eclipse.elk.processingOrder.preferredRoot', 'org.eclipse.elk.processingOrder.rootSelection', PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.processingOrder.rootSelection'), 'processingOrder'), 'Root selection for spanning tree'), 'This sets the method used to select a root node for the construction of a spanning tree'), PROCESSING_ORDER_ROOT_SELECTION_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.compactionStrategy'), 'compaction'), 'Compaction Strategy'), 'This option defines how the compaction is applied.'), COMPACTION_COMPACTION_STRATEGY_DEFAULT), ENUM), Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.compaction.orthogonal'), 'compaction'), 'Orthogonal Compaction'), 'Restricts the translation of nodes to orthogonal directions in the compaction phase.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.maxIterations'), 'overlapRemoval'), 'Upper limit for iterations of overlap removal'), null), valueOf_4(64)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.overlapRemoval.runScanline'), 'overlapRemoval'), 'Whether to run a supplementary scanline overlap check.'), null), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $apply_23((new SporeOverlapRemovalOptions , registry)); - $apply_22((new SporeCompactionOptions , registry)); -} -; -var COMPACTION_COMPACTION_STRATEGY_0, COMPACTION_COMPACTION_STRATEGY_DEFAULT, COMPACTION_ORTHOGONAL_0, OVERLAP_REMOVAL_MAX_ITERATIONS, OVERLAP_REMOVAL_RUN_SCANLINE, PROCESSING_ORDER_PREFERRED_ROOT_0, PROCESSING_ORDER_PREFERRED_ROOT_DEP_PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_0, PROCESSING_ORDER_ROOT_SELECTION_DEFAULT, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_0, PROCESSING_ORDER_SPANNING_TREE_COST_FUNCTION_DEFAULT, PROCESSING_ORDER_TREE_CONSTRUCTION_0, PROCESSING_ORDER_TREE_CONSTRUCTION_DEFAULT, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_DEFAULT, UNDERLYING_LAYOUT_ALGORITHM_0; -var Lorg_eclipse_elk_alg_spore_options_SporeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeMetaDataProvider', 855); -function $clinit_SporeOverlapRemovalOptions(){ - $clinit_SporeOverlapRemovalOptions = emptyMethod; - UNDERLYING_LAYOUT_ALGORITHM_1 = ($clinit_SporeMetaDataProvider() , UNDERLYING_LAYOUT_ALGORITHM_0); - PADDING_DEFAULT_4 = new ElkPadding_0(8); - new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_4); - new Property_2(SPACING_NODE_NODE_6, 8); - STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1 = STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_0; - OVERLAP_REMOVAL_MAX_ITERATIONS_0 = OVERLAP_REMOVAL_MAX_ITERATIONS; - OVERLAP_REMOVAL_RUN_SCANLINE_0 = OVERLAP_REMOVAL_RUN_SCANLINE; - DEBUG_MODE_2 = new Property_2(DEBUG_MODE_3, ($clinit_Boolean() , false)); -} - -function $apply_23(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.sporeOverlap'), 'ELK SPOrE Overlap Removal'), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new SporeOverlapRemovalOptions$SporeOverlapFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.underlyingLayoutAlgorithm', $getDefault(UNDERLYING_LAYOUT_ALGORITHM_1)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.padding', PADDING_DEFAULT_4); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.spacing.nodeNode', 8); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.structure.structureExtractionStrategy', $getDefault(STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.maxIterations', $getDefault(OVERLAP_REMOVAL_MAX_ITERATIONS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.overlapRemoval.runScanline', $getDefault(OVERLAP_REMOVAL_RUN_SCANLINE_0)); - $addOptionSupport(registry, 'org.eclipse.elk.sporeOverlap', 'org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); -} - -function SporeOverlapRemovalOptions(){ - $clinit_SporeOverlapRemovalOptions(); -} - -defineClass($intern_45, 1, $intern_90, SporeOverlapRemovalOptions); -_.apply_4 = function apply_165(registry){ - $apply_23(registry); -} -; -var DEBUG_MODE_2, OVERLAP_REMOVAL_MAX_ITERATIONS_0, OVERLAP_REMOVAL_RUN_SCANLINE_0, PADDING_DEFAULT_4, STRUCTURE_STRUCTURE_EXTRACTION_STRATEGY_1, UNDERLYING_LAYOUT_ALGORITHM_1; -var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions', $intern_45); -function SporeOverlapRemovalOptions$SporeOverlapFactory(){ -} - -defineClass(1001, 1, {}, SporeOverlapRemovalOptions$SporeOverlapFactory); -_.create_0 = function create_32(){ - var provider; - return provider = new OverlapRemovalLayoutProvider , provider; -} -; -_.destroy = function destroy_7(obj){ -} -; -var Lorg_eclipse_elk_alg_spore_options_SporeOverlapRemovalOptions$SporeOverlapFactory_2_classLit = createForClass('org.eclipse.elk.alg.spore.options', 'SporeOverlapRemovalOptions/SporeOverlapFactory', 1001); -function $clinit_StructureExtractionStrategy(){ - $clinit_StructureExtractionStrategy = emptyMethod; - DELAUNAY_TRIANGULATION = new StructureExtractionStrategy; -} - -function $create_15(this$static){ - switch (this$static.ordinal) { - case 0: - return new DelaunayTriangulationPhase; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function StructureExtractionStrategy(){ - Enum.call(this, 'DELAUNAY_TRIANGULATION', 0); -} - -function valueOf_90(name_0){ - $clinit_StructureExtractionStrategy(); - return valueOf(($clinit_StructureExtractionStrategy$Map() , $MAP_78), name_0); -} - -function values_96(){ - $clinit_StructureExtractionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]); -} - -defineClass(530, 22, {3:1, 35:1, 22:1, 530:1, 246:1, 234:1}, StructureExtractionStrategy); -_.create_1 = function create_34(){ - return $create_15(this); -} -; -_.create_2 = function create_33(){ - return $create_15(this); -} -; -var DELAUNAY_TRIANGULATION; -var Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'StructureExtractionStrategy', 530, Ljava_lang_Enum_2_classLit, values_96, valueOf_90); -function $clinit_StructureExtractionStrategy$Map(){ - $clinit_StructureExtractionStrategy$Map = emptyMethod; - $MAP_78 = createValueOfMap(($clinit_StructureExtractionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]))); -} - -var $MAP_78; -function $clinit_TreeConstructionStrategy(){ - $clinit_TreeConstructionStrategy = emptyMethod; - MINIMUM_SPANNING_TREE = new TreeConstructionStrategy('MINIMUM_SPANNING_TREE', 0); - MAXIMUM_SPANNING_TREE = new TreeConstructionStrategy('MAXIMUM_SPANNING_TREE', 1); -} - -function $create_16(this$static){ - switch (this$static.ordinal) { - case 0: - return new MinSTPhase; - case 1: - return new MaxSTPhase; - default:throw toJs(new IllegalArgumentException_0('No implementation available for ' + (this$static.name_0 != null?this$static.name_0:'' + this$static.ordinal))); - } -} - -function TreeConstructionStrategy(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_91(name_0){ - $clinit_TreeConstructionStrategy(); - return valueOf(($clinit_TreeConstructionStrategy$Map() , $MAP_79), name_0); -} - -function values_97(){ - $clinit_TreeConstructionStrategy(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]); -} - -defineClass(429, 22, {3:1, 35:1, 22:1, 429:1, 246:1, 234:1}, TreeConstructionStrategy); -_.create_1 = function create_36(){ - return $create_16(this); -} -; -_.create_2 = function create_35(){ - return $create_16(this); -} -; -var MAXIMUM_SPANNING_TREE, MINIMUM_SPANNING_TREE; -var Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'TreeConstructionStrategy', 429, Ljava_lang_Enum_2_classLit, values_97, valueOf_91); -function $clinit_TreeConstructionStrategy$Map(){ - $clinit_TreeConstructionStrategy$Map = emptyMethod; - $MAP_79 = createValueOfMap(($clinit_TreeConstructionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 429, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]))); -} - -var $MAP_79; -function $process_94(graph, progressMonitor){ - var vertices; - $begin(progressMonitor, 'Delaunay triangulation', 1); - vertices = new ArrayList; - $forEach_1(graph.vertices, new DelaunayTriangulationPhase$lambda$0$Type(vertices)); - $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG)))) && 'null10bw'; - !graph.tEdges?(graph.tEdges = triangulate(vertices)):$addAll(graph.tEdges, triangulate(vertices)); - $done_0(progressMonitor); -} - -function DelaunayTriangulationPhase(){ -} - -defineClass(1443, 1, $intern_113, DelaunayTriangulationPhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_26(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_90(graph, progressMonitor){ - $process_94(castTo(graph, 300), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase', 1443); -function DelaunayTriangulationPhase$lambda$0$Type(vertices_0){ - this.vertices_0 = vertices_0; -} - -defineClass(1444, 1, $intern_19, DelaunayTriangulationPhase$lambda$0$Type); -_.accept = function accept_132(arg0){ - $add_3(this.vertices_0, castTo(arg0, 65).originalVertex); -} -; -var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase/lambda$0$Type', 1444); -function $addNode_1(this$static, s, t){ - var child, tTree, tTree$iterator; - for (tTree$iterator = new ArrayList$1(t.children); tTree$iterator.i < tTree$iterator.this$01.array.length;) { - tTree = castTo($next_7(tTree$iterator), 221); - child = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); - $add_3(s.children, child); - $addNode_1(this$static, child, tTree); - } -} - -function $convert(this$static, tTree, graph){ - var root; - $reset(this$static.nodeMap); - $forEach_1(graph.vertices, new MinSTPhase$lambda$0$Type(this$static)); - root = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); - $addNode_1(this$static, root, tTree); - graph.tree = root; -} - -function $lambda$0_10(this$static, n_0){ - return $put_6(this$static.nodeMap, n_0.originalVertex, n_0); -} - -function MinSTPhase(){ - this.nodeMap = new HashMap; -} - -defineClass(783, 1, $intern_113, MinSTPhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_27(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_91(graph, progressMonitor){ - this.process_0(castTo(graph, 300), progressMonitor); -} -; -_.process_0 = function process_92(graph, progressMonitor){ - var lastArg, root, tTree; - $begin(progressMonitor, 'Minimum spanning tree construction', 1); - graph.preferredRoot?(root = graph.preferredRoot.originalVertex):(root = castTo($get_11(graph.vertices, 0), 65).originalVertex); - $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tTree = createSpanningTree(graph.tEdges, root, (lastArg = graph.costFunction , lastArg))):(tTree = createSpanningTree(graph.tEdges, root, graph.costFunction)); - $convert(this, tTree, graph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase', 783); -function MaxSTPhase(){ - MinSTPhase.call(this); -} - -function lambda$0_34(graph_0, e_1){ - return -graph_0.costFunction.cost(e_1); -} - -defineClass(1446, 783, $intern_113, MaxSTPhase); -_.process_0 = function process_93(graph, progressMonitor){ - var invertedCF, lastArg, root, tree; - $begin(progressMonitor, 'Maximum spanning tree construction', 1); - invertedCF = new MaxSTPhase$lambda$0$Type(graph); - graph.preferredRoot?(root = graph.preferredRoot.vertex):(root = castTo($get_11(graph.vertices, 0), 65).vertex); - $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))?(tree = createSpanningTree(graph.tEdges, root, (lastArg = invertedCF , lastArg))):(tree = createSpanningTree(graph.tEdges, root, invertedCF)); - $convert(this, tree, graph); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase', 1446); -function MaxSTPhase$lambda$0$Type(graph_0){ - this.graph_0 = graph_0; -} - -defineClass(1447, 1, {}, MaxSTPhase$lambda$0$Type); -_.cost = function cost_5(arg0){ - return lambda$0_34(this.graph_0, arg0); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase/lambda$0$Type', 1447); -function MinSTPhase$lambda$0$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1445, 1, $intern_19, MinSTPhase$lambda$0$Type); -_.accept = function accept_133(arg0){ - $lambda$0_10(this.$$outer_0, castTo(arg0, 65)); -} -; -var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase/lambda$0$Type', 1445); -function $debugOut(this$static, c){ - $drawTree(this$static, this$static.root, this$static.svg); - castTo(this$static.root.node, 65); - !!c && castTo(c.node, 65).rect; -} - -function $drawTree(this$static, t, img){ - castTo(t.node, 65); - $forEach_1(t.children, new GrowTreePhase$lambda$0$Type(this$static, img, t)); -} - -function $growAt(this$static, r){ - var c, c$iterator, t; - for (c$iterator = new ArrayList$1(r.children); c$iterator.i < c$iterator.this$01.array.length;) { - c = castTo($next_7(c$iterator), 221); - $translate(castTo(c.node, 65), $sub_0($clone_0(castTo(r.node, 65).vertex), castTo(r.node, 65).originalVertex)); - t = overlap_0(castTo(r.node, 65).rect, castTo(c.node, 65).rect); - t > 1 && (this$static.overlapsExisted = true); - $setCenterPosition(castTo(c.node, 65), $add_19($clone_0(castTo(r.node, 65).vertex), $scale($sub_0($clone_0(castTo(c.node, 65).originalVertex), castTo(r.node, 65).originalVertex), t))); - $debugOut(this$static, r); - $growAt(this$static, c); - } -} - -function $lambda$0_11(this$static, img_1, t_2, c_2){ - castTo(t_2.node, 65); - castTo(t_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - $forEach_1(c_2.children, new GrowTreePhase$lambda$0$Type(this$static, img_1, c_2)); -} - -function $process_95(this$static, graph, progressMonitor){ - $begin(progressMonitor, 'Grow Tree', 1); - this$static.root = graph.tree; - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { - this$static.svg = new SVGImage; - $debugOut(this$static, null); - } - else { - this$static.svg = new SVGImage; - } - this$static.overlapsExisted = false; - $growAt(this$static, graph.tree); - $setProperty_0(graph, OVERLAPS_EXISTED, ($clinit_Boolean() , this$static.overlapsExisted?true:false)); - $done_0(progressMonitor); -} - -function GrowTreePhase(){ -} - -defineClass(785, 1, $intern_113, GrowTreePhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_28(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_94(graph, progressMonitor){ - $process_95(this, castTo(graph, 300), progressMonitor); -} -; -_.overlapsExisted = false; -var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase', 785); -function GrowTreePhase$lambda$0$Type($$outer_0, img_1, t_2){ - this.$$outer_0 = $$outer_0; - this.img_1 = img_1; - this.t_2 = t_2; -} - -defineClass(786, 1, $intern_19, GrowTreePhase$lambda$0$Type); -_.accept = function accept_134(arg0){ - $lambda$0_11(this.$$outer_0, this.img_1, this.t_2, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase/lambda$0$Type', 786); -function $debugOut_0(this$static, tree){ - var svg; - svg = new SVGImage; - castTo(tree.node, 65); - castTo(tree.node, 65); - castTo(tree.node, 65); - $forEach_1(tree.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg, tree)); -} - -function $lambda$0_12(this$static, svg_1, t_2, c_2){ - var cv; - castTo(t_2.node, 65); - castTo(t_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - cv = $sub_0($clone_0(castTo(t_2.node, 65).vertex), castTo(c_2.node, 65).vertex); - $scaleToLength(cv, $distance(castTo(t_2.node, 65), castTo(c_2.node, 65), cv)); - castTo(c_2.node, 65); - castTo(c_2.node, 65); - castTo(c_2.node, 65).vertex.x_0 + cv.x_0; - castTo(c_2.node, 65).vertex.y_0 + cv.y_0; - castTo(c_2.node, 65); - $forEach_1(c_2.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg_1, c_2)); -} - -function $process_96(this$static, graph, progressMonitor){ - var lastArg; - $begin(progressMonitor, 'Shrinking tree compaction', 1); - if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , DEBUG_SVG))))) { - $debugOut_0(this$static, graph.tree); - compact_0(graph.tree, (lastArg = graph.orthogonalCompaction , lastArg)); - } - else { - compact_0(graph.tree, graph.orthogonalCompaction); - } - $done_0(progressMonitor); -} - -function ShrinkTreeCompactionPhase(){ -} - -defineClass(1448, 1, $intern_113, ShrinkTreeCompactionPhase); -_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_29(graph){ - return castTo(graph, 300) , new LayoutProcessorConfiguration; -} -; -_.process = function process_95(graph, progressMonitor){ - $process_96(this, castTo(graph, 300), progressMonitor); -} -; -var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase', 1448); -function ShrinkTreeCompactionPhase$lambda$0$Type($$outer_0, svg_1, t_2){ - this.$$outer_0 = $$outer_0; - this.svg_1 = svg_1; - this.t_2 = t_2; -} - -defineClass(784, 1, $intern_19, ShrinkTreeCompactionPhase$lambda$0$Type); -_.accept = function accept_135(arg0){ - $lambda$0_12(this.$$outer_0, this.svg_1, this.t_2, castTo(arg0, 221)); -} -; -var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase/lambda$0$Type', 784); -var Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit = createForInterface('org.eclipse.elk.core.util', 'IGraphElementVisitor'); -function $clinit_LayoutConfigurator(){ - $clinit_LayoutConfigurator = emptyMethod; - new Property('org.eclipse.elk.addLayoutConfig'); - NO_OVERWRITE_HOLDER = new LayoutConfigurator$lambda$2$Type; - NO_OVERWRITE = new LayoutConfigurator$lambda$0$Type; - OPTION_TARGET_FILTER = new LayoutConfigurator$lambda$1$Type; -} - -function $addFilter(this$static, filter){ - $add_3(this$static.optionFilters, filter); - return this$static; -} - -function $applyProperties(this$static, element, properties){ - var accept, clone, entry, entry$iterator, filters, value_0; - filters = this$static.optionFilters; - for (entry$iterator = (!properties.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):properties.propertyMap).entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - accept = !$spliterator($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(filters, 16)), new Predicate$lambda$2$Type(new LayoutConfigurator$lambda$3$Type(element, entry)))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER)); - if (accept) { - value_0 = entry.getValue(); - if (instanceOf(value_0, 4)) { - clone = clone_11(value_0); - clone != null && (value_0 = clone); - } - element.setProperty(castTo(entry.getKey(), 146), value_0); - } - } -} - -function $configure(this$static, elementClass){ - var result; - result = castTo($get_10(this$static.classOptionMap, elementClass), 134); - if (!result) { - result = new MapPropertyHolder; - $put_6(this$static.classOptionMap, elementClass, result); - } - return result; -} - -function $findClassOptions(this$static, element){ - var combined; - combined = new MapPropertyHolder; - !!element && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit), 94)); - instanceOf(element, 470) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkShape_2_classLit), 94)); - if (instanceOf(element, 354)) { - $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), 94)); - return combined; - } - instanceOf(element, 82) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit), 94)); - if (instanceOf(element, 239)) { - $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkNode_2_classLit), 94)); - return combined; - } - if (instanceOf(element, 186)) { - $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkPort_2_classLit), 94)); - return combined; - } - instanceOf(element, 352) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), 94)); - return combined; -} - -function LayoutConfigurator(){ - $clinit_LayoutConfigurator(); - this.elementOptionMap = new HashMap; - this.classOptionMap = new HashMap; - this.optionFilters = new ArrayList; -} - -function lambda$1_17(e_0, property_1){ - $clinit_LayoutConfigurator(); - var optionData, targets; - optionData = $getOptionData(getInstance(), property_1.getId()); - if (optionData) { - targets = optionData.targets; - if (instanceOf(e_0, 239)) { - return $isHierarchical_0(castTo(e_0, 33))?$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(targets, PARENTS):$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)); - } - else if (instanceOf(e_0, 352)) { - return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , EDGES)); - } - else if (instanceOf(e_0, 186)) { - return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , PORTS)); - } - else if (instanceOf(e_0, 354)) { - return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , LABELS)); - } - } - return true; -} - -function lambda$3_6(element_0, entry_1, filter_2){ - $clinit_LayoutConfigurator(); - return filter_2.accept_3(element_0, castTo(entry_1.getKey(), 146)); -} - -defineClass(860, 1, {527:1}, LayoutConfigurator); -_.visit = function visit(element){ - var combined; - combined = $findClassOptions(this, element); - $copyProperties(combined, castTo($get_10(this.elementOptionMap, element), 94)); - $applyProperties(this, element, combined); -} -; -var NO_OVERWRITE, NO_OVERWRITE_HOLDER, OPTION_TARGET_FILTER; -var Lorg_eclipse_elk_core_LayoutConfigurator_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator', 860); -var Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit = createForInterface('org.eclipse.elk.core', 'LayoutConfigurator/IPropertyHolderOptionFilter'); -function LayoutConfigurator$lambda$0$Type(){ -} - -defineClass(932, 1, {1933:1}, LayoutConfigurator$lambda$0$Type); -_.accept_3 = function accept_136(e, p){ - return $clinit_LayoutConfigurator() , !e.hasProperty(p); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$0$Type', 932); -function $accept_5(e, p){ - return lambda$1_17(e, p); -} - -function LayoutConfigurator$lambda$1$Type(){ -} - -defineClass(933, 1, {1933:1}, LayoutConfigurator$lambda$1$Type); -_.accept_3 = function accept_137(e, p){ - return $accept_5(e, p); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$1$Type', 933); -function LayoutConfigurator$lambda$2$Type(){ -} - -defineClass(931, 1, {831:1}, LayoutConfigurator$lambda$2$Type); -_.accept_4 = function accept_138(holder, property){ - return $clinit_LayoutConfigurator() , !holder.hasProperty(property); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$2$Type', 931); -function LayoutConfigurator$lambda$3$Type(element_0, entry_1){ - this.element_0 = element_0; - this.entry_1 = entry_1; -} - -defineClass(934, 1, $intern_39, LayoutConfigurator$lambda$3$Type); -_.test_0 = function test_106(arg0){ - return lambda$3_6(this.element_0, this.entry_1, castTo(arg0, 1933)); -} -; -var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$3$Type', 934); -function $countNodesRecursively(this$static, layoutNode, countAncestors){ - var childNode, childNode$iterator, count, parent_0; - count = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; - for (childNode$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { - childNode = castTo($doNext(childNode$iterator), 33); - (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 == 0 || (count += $countNodesRecursively(this$static, childNode, false)); - } - if (countAncestors) { - parent_0 = $getParent_2(layoutNode); - while (parent_0) { - count += (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; - parent_0 = $getParent_2(parent_0); - } - } - return count; -} - -function $countNodesWithHierarchy(this$static, parentNode){ - var childData, childNode, childNode$iterator, count, parentData; - count = (!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0; - for (childNode$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); childNode$iterator.cursor != childNode$iterator.this$01_2.size_1();) { - childNode = castTo($doNext(childNode$iterator), 33); - if (maskUndefined($getProperty_0(childNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) !== maskUndefined(($clinit_HierarchyHandling() , SEPARATE_CHILDREN))) { - parentData = castTo($getProperty_0(parentNode, RESOLVED_ALGORITHM), 149); - childData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 149); - (parentData == childData || !!parentData && $equals_8(parentData, childData)) && (!childNode.children && (childNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, childNode, 10, 11)) , childNode.children).size_0 != 0 && (count += $countNodesWithHierarchy(this$static, childNode)); - } - } - return count; -} - -function $evaluateHierarchyHandlingInheritance(layoutNode){ - var parentHandling; - if (maskUndefined($getProperty_0(layoutNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) === maskUndefined(($clinit_HierarchyHandling() , INHERIT))) { - if (!$getParent_2(layoutNode)) { - $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); - } - else { - parentHandling = castTo($getProperty_0($getParent_2(layoutNode), HIERARCHY_HANDLING_0), 334); - $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, parentHandling); - } - } -} - -function $executeAlgorithm(layoutNode, algorithmData, progressMonitor){ - var exception, layoutProvider; - layoutProvider = castTo($fetch(algorithmData.providerPool), 209); - try { - layoutProvider.layout(layoutNode, progressMonitor); - $release(algorithmData.providerPool, layoutProvider); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - throw toJs(exception); - } - else - throw toJs($e0); - } -} - -function $gatherInsideSelfLoops(node){ - var edge, edge$iterator, insideSelfLoops; - if ($booleanValue(castToBoolean($getProperty_0(node, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0))))) { - insideSelfLoops = new ArrayList; - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - $isSelfloop(edge) && $booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO_0))) && (insideSelfLoops.array[insideSelfLoops.array.length] = edge , true); - } - return insideSelfLoops; - } - else { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $layout_3(this$static, layoutGraph, progressMonitor){ - var nodeCount; - nodeCount = $countNodesRecursively(this$static, layoutGraph, true); - $begin(progressMonitor, 'Recursive Graph Layout', nodeCount); - applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new DeprecatedLayoutOptionReplacer])); - $hasProperty_0(layoutGraph, ($clinit_CoreOptions() , RESOLVED_ALGORITHM)) || applyVisitors(layoutGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [new LayoutAlgorithmResolver])); - $layoutRecursively(this$static, layoutGraph, null, progressMonitor); - $done_0(progressMonitor); -} - -function $layoutRecursively(this$static, layoutNode, testController, progressMonitor){ - var algorithmData, child, child$iterator, childLayoutSelfLoops, childrenInsideSelfLoops, hasChildren, hasInsideSelfLoops, insideSelfLoops, node, nodeCount, nodeQueue, selfLoop, selfLoop$iterator, stopHierarchy, supportsInsideSelfLoops; - if ($booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_CoreOptions() , NO_LAYOUT_0))))) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - hasChildren = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0 != 0; - insideSelfLoops = $gatherInsideSelfLoops(layoutNode); - hasInsideSelfLoops = !insideSelfLoops.isEmpty(); - if (hasChildren || hasInsideSelfLoops) { - algorithmData = castTo($getProperty_0(layoutNode, RESOLVED_ALGORITHM), 149); - if (!algorithmData) { - throw toJs(new UnsupportedConfigurationException_0('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.')); - } - supportsInsideSelfLoops = $supportsFeature(algorithmData, ($clinit_GraphFeature() , INSIDE_SELF_LOOPS)); - $evaluateHierarchyHandlingInheritance(layoutNode); - if (!hasChildren && hasInsideSelfLoops && !supportsInsideSelfLoops) { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } - childrenInsideSelfLoops = new ArrayList; - if (maskUndefined($getProperty_0(layoutNode, HIERARCHY_HANDLING_0)) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)) && ($supportsFeature(algorithmData, COMPOUND) || $supportsFeature(algorithmData, CLUSTERS))) { - nodeCount = $countNodesWithHierarchy(this$static, layoutNode); - nodeQueue = new LinkedList; - $addAll(nodeQueue, (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); - while (nodeQueue.size_0 != 0) { - node = castTo(nodeQueue.size_0 == 0?null:(checkCriticalElement(nodeQueue.size_0 != 0) , $removeNode_0(nodeQueue, nodeQueue.header.next_0)), 33); - $evaluateHierarchyHandlingInheritance(node); - stopHierarchy = maskUndefined($getProperty_0(node, HIERARCHY_HANDLING_0)) === maskUndefined(SEPARATE_CHILDREN); - if (stopHierarchy || $hasProperty_0(node, ALGORITHM) && !$equals_8(algorithmData, $getProperty_0(node, RESOLVED_ALGORITHM))) { - childLayoutSelfLoops = $layoutRecursively(this$static, node, testController, progressMonitor); - $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); - $setProperty_1(node, HIERARCHY_HANDLING_0, SEPARATE_CHILDREN); - applyConfiguredNodeScaling(node); - } - else { - $addAll(nodeQueue, (!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children)); - } - } - } - else { - nodeCount = (!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children).size_0; - for (child$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - childLayoutSelfLoops = $layoutRecursively(this$static, child, testController, progressMonitor); - $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); - applyConfiguredNodeScaling(child); - } - } - for (selfLoop$iterator = new ArrayList$1(childrenInsideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { - selfLoop = castTo($next_7(selfLoop$iterator), 79); - $setProperty_1(selfLoop, NO_LAYOUT_0, ($clinit_Boolean() , true)); - } - $executeAlgorithm(layoutNode, algorithmData, $subTask(progressMonitor, nodeCount)); - $postProcessInsideSelfLoops(childrenInsideSelfLoops); - return hasInsideSelfLoops && supportsInsideSelfLoops?insideSelfLoops:($clinit_Collections() , $clinit_Collections() , EMPTY_LIST); - } - else { - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; - } -} - -function $postProcessInsideSelfLoops(insideSelfLoops){ - var bend, bend$iterator, node, section, selfLoop, selfLoop$iterator, xOffset, yOffset; - for (selfLoop$iterator = new ArrayList$1(insideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { - selfLoop = castTo($next_7(selfLoop$iterator), 79); - node = connectableShapeToNode(castTo($get_20((!selfLoop.sources && (selfLoop.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, selfLoop, 4, 7)) , selfLoop.sources), 0), 82)); - xOffset = node.x_0; - yOffset = node.y_0; - section = castTo($get_20((!selfLoop.sections && (selfLoop.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, selfLoop, 6, 6)) , selfLoop.sections), 0), 202); - $setStartLocation(section, section.startX + xOffset, section.startY + yOffset); - $setEndLocation(section, section.endX + xOffset, section.endY + yOffset); - for (bend$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bend$iterator.cursor != bend$iterator.this$01_2.size_1();) { - bend = castTo($doNext(bend$iterator), 469); - $set_10(bend, bend.x_0 + xOffset, bend.y_0 + yOffset); - } - $offset_1(castTo($getProperty_0(selfLoop, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74), xOffset, yOffset); - } -} - -function RecursiveGraphLayoutEngine(){ -} - -defineClass(858, 1, {}, RecursiveGraphLayoutEngine); -var Lorg_eclipse_elk_core_RecursiveGraphLayoutEngine_2_classLit = createForClass('org.eclipse.elk.core', 'RecursiveGraphLayoutEngine', 858); -function UnsupportedConfigurationException(){ - RuntimeException.call(this); -} - -function UnsupportedConfigurationException_0(message){ - RuntimeException_0.call(this, message); -} - -defineClass(296, 60, $intern_43, UnsupportedConfigurationException, UnsupportedConfigurationException_0); -var Lorg_eclipse_elk_core_UnsupportedConfigurationException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedConfigurationException', 296); -function UnsupportedGraphException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(453, 60, $intern_43, UnsupportedGraphException); -var Lorg_eclipse_elk_core_UnsupportedGraphException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedGraphException', 453); -function $ensureListSize(this$static, size_0){ - var i; - for (i = this$static.list.array.length; i < size_0; i++) { - $add_3(this$static.list, this$static.provideDefault()); - } -} - -function $getListItem(this$static, index_0){ - if (index_0 < 0) { - throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); - } - $ensureListSize(this$static, index_0 + 1); - return $get_11(this$static.list, index_0); -} - -function $setListItem(this$static, index_0, value_0){ - if (index_0 < 0) { - throw toJs(new IndexOutOfBoundsException_0('Invalid index: ' + index_0)); - } - if (index_0 < this$static.list.array.length) { - $set_1(this$static.list, index_0, value_0); - } - else { - $ensureListSize(this$static, index_0); - $add_3(this$static.list, value_0); - } -} - -function AbstractRandomListAccessor(){ - this.list = new ArrayList; -} - -defineClass(754, 1, {}); -var Lorg_eclipse_elk_core_util_AbstractRandomListAccessor_2_classLit = createForClass('org.eclipse.elk.core.util', 'AbstractRandomListAccessor', 754); -function $addProcessorConfiguration(this$static, config){ - $addAll_6(this$static.additionalProcessors, config); - return this$static; -} - -function $build_0(this$static, graph){ - var algorithm, phase, phase$array, phase$array0, phase$index, phase$index0, phase$max, phase$max0, phaseEnumConstants, phaseFactory, phaseImplementation, phaseImplementations, processorConfiguration; - if (this$static.failOnMissingPhase && this$static.configuredPhases.size_0 < this$static.numberOfPhases) { - throw toJs(new IllegalStateException_0('Expected ' + this$static.numberOfPhases + ' phases to be configured; ' + 'only found ' + this$static.configuredPhases.size_0)); - } - phaseEnumConstants = castTo($getEnumConstants(this$static.phasesEnumClass), 9); - phaseImplementations = newArrayListWithCapacity(this$static.numberOfPhases); - for (phase$array0 = phaseEnumConstants , phase$index0 = 0 , phase$max0 = phase$array0.length; phase$index0 < phase$max0; ++phase$index0) { - phase = phase$array0[phase$index0]; - phaseFactory = castTo($getListItem(this$static, phase.ordinal), 246); - phaseFactory?$add_3(phaseImplementations, castTo($retrieveProcessor(this$static, phaseFactory), 123)):(phaseImplementations.array[phaseImplementations.array.length] = null , true); - } - processorConfiguration = new LayoutProcessorConfiguration; - $forEach_3($filter($map_0($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(phaseImplementations, 16)), new AlgorithmAssembler$lambda$0$Type), new AlgorithmAssembler$lambda$1$Type(graph)), new AlgorithmAssembler$lambda$2$Type), new AlgorithmAssembler$lambda$3$Type(processorConfiguration)); - $addAll_6(processorConfiguration, this$static.additionalProcessors); - algorithm = new ArrayList; - for (phase$array = phaseEnumConstants , phase$index = 0 , phase$max = phase$array.length; phase$index < phase$max; ++phase$index) { - phase = phase$array[phase$index]; - $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phase.ordinal), 20)))); - phaseImplementation = castTo($get_11(phaseImplementations, phase.ordinal), 123); - !!phaseImplementation && (algorithm.array[algorithm.array.length] = phaseImplementation , true); - } - $addAll_2(algorithm, $retrieveProcessors(this$static, newHashSet(castTo($getListItem(processorConfiguration, phaseEnumConstants[phaseEnumConstants.length - 1].ordinal + 1), 20)))); - return algorithm; -} - -function $lambda$4_3(this$static, processors_1, factory_1){ - return $add_3(processors_1, $retrieveProcessor(this$static, factory_1)); -} - -function $reset_4(this$static){ - this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - $clear_0(this$static.configuredPhases); - $clear_10(this$static.additionalProcessors); - return this$static; -} - -function $retrieveProcessor(this$static, factory){ - var processor; - if (this$static.enableCaching) { - if ($containsKey_3(this$static.cache, factory)) { - return castTo($get_10(this$static.cache, factory), 51); - } - else { - processor = factory.create_1(); - $put_6(this$static.cache, factory, processor); - return processor; - } - } - else { - return factory.create_1(); - } -} - -function $retrieveProcessors(this$static, factories){ - var processors; - processors = newArrayListWithCapacity(factories.map_0.size_1()); - $forEach_3($sorted_1(new StreamImpl(null, new Spliterators$IteratorSpliterator(factories, 1)), this$static.processorComparator), new AlgorithmAssembler$lambda$4$Type(this$static, processors)); - return processors; -} - -function $setPhase(this$static, phase, phaseFactory){ - $setListItem(this$static, phase.ordinal, phaseFactory); - $add_5(this$static.configuredPhases, phase); - return this$static; -} - -function AlgorithmAssembler(phaseEnum){ - var all; - AbstractRandomListAccessor.call(this); - this.processorComparator = new EnumBasedFactoryComparator; - this.phasesEnumClass = phaseEnum; - this.numberOfPhases = castTo(phaseEnum.enumConstantsFunc && phaseEnum.enumConstantsFunc(), 9).length; - if (this.numberOfPhases == 0) { - throw toJs(new IllegalArgumentException_0('There must be at least one phase in the phase enumeration.')); - } - this.configuredPhases = (all = castTo($getEnumConstants(this.phasesEnumClass), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - this.additionalProcessors = new LayoutProcessorConfiguration; - this.cache = new HashMap; -} - -function lambda$1_18(graph_0, phase_1){ - return phase_1.getLayoutProcessorConfiguration(graph_0); -} - -defineClass(500, 754, {}, AlgorithmAssembler); -_.provideDefault = function provideDefault(){ - return null; -} -; -_.enableCaching = true; -_.failOnMissingPhase = true; -_.numberOfPhases = 0; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler', 500); -function AlgorithmAssembler$lambda$0$Type(){ -} - -defineClass(1236, 1, $intern_39, AlgorithmAssembler$lambda$0$Type); -_.test_0 = function test_107(arg0){ - return !!castTo(arg0, 123); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$0$Type', 1236); -function AlgorithmAssembler$lambda$1$Type(graph_0){ - this.graph_0 = graph_0; -} - -defineClass(1237, 1, {}, AlgorithmAssembler$lambda$1$Type); -_.apply_0 = function apply_166(arg0){ - return lambda$1_18(this.graph_0, castTo(arg0, 123)); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$1$Type', 1237); -function AlgorithmAssembler$lambda$2$Type(){ -} - -defineClass(1238, 1, $intern_39, AlgorithmAssembler$lambda$2$Type); -_.test_0 = function test_108(arg0){ - return !!castTo(arg0, 80); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$2$Type', 1238); -function AlgorithmAssembler$lambda$3$Type(processorConfiguration_0){ - this.processorConfiguration_0 = processorConfiguration_0; -} - -defineClass(1239, 1, $intern_19, AlgorithmAssembler$lambda$3$Type); -_.accept = function accept_139(arg0){ - $addAll_6(this.processorConfiguration_0, castTo(arg0, 80)); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$3$Type', 1239); -function AlgorithmAssembler$lambda$4$Type($$outer_0, processors_1){ - this.$$outer_0 = $$outer_0; - this.processors_1 = processors_1; -} - -defineClass(1240, 1, $intern_19, AlgorithmAssembler$lambda$4$Type); -_.accept = function accept_140(arg0){ - $lambda$4_3(this.$$outer_0, this.processors_1, castTo(arg0, 234)); -} -; -var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$4$Type', 1240); -function $compare_23(factory1, factory2){ - getClass__Ljava_lang_Class___devirtual$(factory1); - getClass__Ljava_lang_Class___devirtual$(factory2); - return $compareTo(castTo(factory1, 22), castTo(factory2, 22)); -} - -function EnumBasedFactoryComparator(){ -} - -defineClass(1355, 1, $intern_88, EnumBasedFactoryComparator); -_.compare_1 = function compare_81(factory1, factory2){ - return $compare_23(castTo(factory1, 234), castTo(factory2, 234)); -} -; -_.equals_0 = function equals_168(other){ - return this === other; -} -; -_.reversed = function reversed_73(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_alg_EnumBasedFactoryComparator_2_classLit = createForClass('org.eclipse.elk.core.alg', 'EnumBasedFactoryComparator', 1355); -function $add_17(this$static, processor){ - if (this$static.currentIndex < 0) { - throw toJs(new IllegalStateException_0('Did not call before(...) or after(...) before calling add(...).')); - } - $doAdd(this$static, this$static.currentIndex, processor); - return this$static; -} - -function $addAfter(this$static, phase, processor){ - this$static.currentIndex = -1; - $doAdd(this$static, phase.ordinal + 1, processor); - return this$static; -} - -function $addAll_6(this$static, configuration){ - var i; - for (i = 0; i < configuration.list.array.length; i++) { - castTo($getListItem(this$static, i), 21).addAll(castTo($getListItem(configuration, i), 14)); - } - return this$static; -} - -function $addBefore(this$static, phase, processor){ - this$static.currentIndex = -1; - $doAdd(this$static, phase.ordinal, processor); - return this$static; -} - -function $after(this$static, phase){ - this$static.currentIndex = phase.ordinal + 1; - return this$static; -} - -function $before(this$static, phase){ - this$static.currentIndex = phase.ordinal; - return this$static; -} - -function $clear_10(this$static){ - this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this$static.currentIndex = -1; - return this$static; -} - -function $doAdd(this$static, index_0, processor){ - castTo($getListItem(this$static, index_0), 21).add_2(processor); -} - -function LayoutProcessorConfiguration(){ - AbstractRandomListAccessor.call(this); - this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - this.currentIndex = -1; -} - -function createFrom_0(source){ - return $addAll_6(new LayoutProcessorConfiguration, source); -} - -defineClass(80, 754, {80:1}, LayoutProcessorConfiguration); -_.provideDefault = function provideDefault_0(){ - return new HashSet; -} -; -_.currentIndex = 0; -var Lorg_eclipse_elk_core_alg_LayoutProcessorConfiguration_2_classLit = createForClass('org.eclipse.elk.core.alg', 'LayoutProcessorConfiguration', 80); -function $clinit_DeprecatedLayoutOptionReplacer(){ - $clinit_DeprecatedLayoutOptionReplacer = emptyMethod; - NEXT_TO_PORT_IF_POSSIBLE = new DeprecatedLayoutOptionReplacer$lambda$0$Type; - SPACE_EFFICIENT = new DeprecatedLayoutOptionReplacer$lambda$1$Type; - RULES = of_0(($clinit_CoreOptions() , PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0), NEXT_TO_PORT_IF_POSSIBLE, NODE_SIZE_OPTIONS_6, SPACE_EFFICIENT); -} - -function DeprecatedLayoutOptionReplacer(){ - $clinit_DeprecatedLayoutOptionReplacer(); -} - -function lambda$0_35(e_0){ - $clinit_DeprecatedLayoutOptionReplacer(); - castTo(e_0.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).add_2(($clinit_PortLabelPlacement() , NEXT_TO_PORT_IF_POSSIBLE_0)); - e_0.setProperty(PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, null); -} - -function lambda$1_19(e_0){ - $clinit_DeprecatedLayoutOptionReplacer(); - if (castTo(e_0.getProperty(($clinit_CoreOptions() , NODE_SIZE_OPTIONS_6)), 174).contains(($clinit_SizeOptions() , SPACE_EFFICIENT_PORT_LABELS))) { - castTo(e_0.getProperty(PORT_LABELS_PLACEMENT_5), 174).add_2(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); - castTo(e_0.getProperty(NODE_SIZE_OPTIONS_6), 174).remove_1(SPACE_EFFICIENT_PORT_LABELS); - } -} - -function lambda$2_9(element_0, option_1, replacer_2){ - $clinit_DeprecatedLayoutOptionReplacer(); - element_0.hasProperty(option_1) && replacer_2.accept(element_0); -} - -defineClass(1013, 1, {527:1}, DeprecatedLayoutOptionReplacer); -_.visit = function visit_0(element){ - $forEach_2(RULES, new DeprecatedLayoutOptionReplacer$lambda$2$Type(element)); -} -; -var NEXT_TO_PORT_IF_POSSIBLE, RULES, SPACE_EFFICIENT; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer', 1013); -function DeprecatedLayoutOptionReplacer$lambda$0$Type(){ -} - -defineClass(1014, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$0$Type); -_.accept = function accept_141(arg0){ - lambda$0_35(castTo(arg0, 160)); -} -; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$0$Type', 1014); -function DeprecatedLayoutOptionReplacer$lambda$1$Type(){ -} - -defineClass(1015, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$1$Type); -_.accept = function accept_142(arg0){ - lambda$1_19(castTo(arg0, 160)); -} -; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$1$Type', 1015); -function DeprecatedLayoutOptionReplacer$lambda$2$Type(element_0){ - this.element_0 = element_0; -} - -defineClass(1016, 1, {}, DeprecatedLayoutOptionReplacer$lambda$2$Type); -_.accept_1 = function accept_143(arg0, arg1){ - lambda$2_9(this.element_0, castTo(arg0, 146), castTo(arg1, 38)); -} -; -var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$2$Type', 1016); -function $addKnownOption(this$static, property, defaultValue){ - $putStringValue(this$static.knownOptions, property.id_0, defaultValue); -} - -function $equals_8(this$static, obj){ - if (instanceOf(obj, 149)) { - return $equals_5(this$static.id_0, castTo(obj, 149).id_0); - } - return false; -} - -function $supportsFeature(this$static, graphFeature){ - return $containsEnum(this$static.supportedFeatures, graphFeature); -} - -function LayoutAlgorithmData(builder){ - var all; - this.knownOptions = new HashMap; - this.id_0 = builder.id_0; - this.name_0 = builder.name_0; - this.description = builder.description; - this.providerPool = new InstancePool(builder.providerFactory); - this.category = builder.category; - !builder.supportedFeatures?(this.supportedFeatures = (all = castTo($getEnumConstants(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.supportedFeatures = builder.supportedFeatures); -} - -defineClass(149, 1, {686:1, 149:1}, LayoutAlgorithmData); -_.equals_0 = function equals_169(obj){ - return $equals_8(this, obj); -} -; -_.getDescription = function getDescription(){ - return this.description; -} -; -_.getId = function getId(){ - return this.id_0; -} -; -_.getName = function getName_2(){ - return this.name_0; -} -; -_.hashCode_1 = function hashCode_64(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_111(){ - return 'Layout Algorithm: ' + this.id_0; -} -; -var Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData', 149); -function $category(this$static, acategory){ - this$static.category = acategory; - return this$static; -} - -function $description(this$static, adescription){ - this$static.description = adescription; - return this$static; -} - -function $id(this$static, aid){ - this$static.id_0 = aid; - return this$static; -} - -function $name_0(this$static, aname){ - this$static.name_0 = aname; - return this$static; -} - -function $providerFactory(this$static, aproviderFactory){ - this$static.providerFactory = aproviderFactory; - return this$static; -} - -function $supportedFeatures(this$static, asupportedFeatures){ - this$static.supportedFeatures = asupportedFeatures; - return this$static; -} - -function LayoutAlgorithmData$Builder(){ -} - -defineClass(263, 1, {}, LayoutAlgorithmData$Builder); -var Lorg_eclipse_elk_core_data_LayoutAlgorithmData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData/Builder', 263); -function $resolveAlgorithm(node){ - var algorithmId, message; - algorithmId = castToString($getProperty_0(node, ($clinit_CoreOptions() , ALGORITHM))); - if ($resolveAndSetAlgorithm(algorithmId, node)) { - return; - } - if (!$hasProperty_0(node, RESOLVED_ALGORITHM) && ((!node.children && (node.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, node, 10, 11)) , node.children).size_0 != 0 || $booleanValue(castToBoolean($getProperty_0(node, INSIDE_SELF_LOOPS_ACTIVATE_0))))) { - if (algorithmId == null || $trim(algorithmId).length == 0) { - if (!$resolveAndSetAlgorithm('org.eclipse.elk.layered', node)) { - message = $append_11($append_11(new StringBuilder_1('Unable to load default layout algorithm '), 'org.eclipse.elk.layered'), ' for unconfigured node '); - printElementPath(node, message); - throw toJs(new UnsupportedConfigurationException_0(message.string)); - } - } - else { - message = $append_11($append_11(new StringBuilder_1("Layout algorithm '"), algorithmId), "' not found for "); - printElementPath(node, message); - throw toJs(new UnsupportedConfigurationException_0(message.string)); - } - } -} - -function $resolveAndSetAlgorithm(algorithmId, node){ - var algorithmData; - algorithmData = $getAlgorithmDataBySuffix(getInstance(), algorithmId); - if (algorithmData) { - $setProperty_1(node, ($clinit_CoreOptions() , RESOLVED_ALGORITHM), algorithmData); - return true; - } - else { - return false; - } -} - -function LayoutAlgorithmResolver(){ -} - -defineClass(1017, 1, {527:1}, LayoutAlgorithmResolver); -_.visit = function visit_1(element){ - instanceOf(element, 239) && !$booleanValue(castToBoolean(element.getProperty(($clinit_CoreOptions() , NO_LAYOUT_0)))) && $resolveAlgorithm(castTo(element, 33)); -} -; -var Lorg_eclipse_elk_core_data_LayoutAlgorithmResolver_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmResolver', 1017); -function LayoutCategoryData(builder){ - this.layouters = new LinkedList; - this.id_0 = builder.id_0; - this.name_0 = builder.name_0; - this.description = builder.description; -} - -defineClass(229, 1, {686:1, 229:1}, LayoutCategoryData); -_.equals_0 = function equals_170(obj){ - if (instanceOf(obj, 229)) { - return $equals_5(this.id_0, castTo(obj, 229).id_0); - } - return false; -} -; -_.getDescription = function getDescription_0(){ - return this.description; -} -; -_.getId = function getId_0(){ - return this.id_0; -} -; -_.getName = function getName_3(){ - return this.name_0; -} -; -_.hashCode_1 = function hashCode_65(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_112(){ - return 'Layout Type: ' + this.id_0; -} -; -var Lorg_eclipse_elk_core_data_LayoutCategoryData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData', 229); -function $description_0(this$static, adescription){ - this$static.description = adescription; - return this$static; -} - -function $id_0(this$static, aid){ - this$static.id_0 = aid; - return this$static; -} - -function $name_1(this$static, aname){ - this$static.name_0 = aname; - return this$static; -} - -function LayoutCategoryData$Builder(){ -} - -defineClass(344, 1, {}, LayoutCategoryData$Builder); -var Lorg_eclipse_elk_core_data_LayoutCategoryData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData/Builder', 344); -function $getAlgorithmData(this$static, id_0){ - return castTo($get_16(this$static.layoutAlgorithmMap, id_0), 149); -} - -function $getAlgorithmDataBySuffix(this$static, suffix){ - var d, d$iterator, data_0, entry, id_0, outerIter, suffixlength; - if (suffix == null || suffix.length == 0) { - return null; - } - data_0 = castTo($getStringValue(this$static.algorithmSuffixMap, suffix), 149); - if (!data_0) { - for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { - d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); - id_0 = d.id_0; - suffixlength = suffix.length; - if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { - if (data_0) { - return null; - } - data_0 = d; - } - } - !!data_0 && $putStringValue(this$static.algorithmSuffixMap, suffix, data_0); - } - return data_0; -} - -function $getCategoryData(this$static, id_0){ - return castTo($get_16(this$static.layoutCategoryMap, id_0), 229); -} - -function $getOptionData(this$static, id_0){ - var data_0; - data_0 = castTo($get_16(this$static.layoutOptionMap, id_0), 23); - return data_0?data_0:castTo($get_16(this$static.legacyLayoutOptionMap, id_0), 23); -} - -function $getOptionDataBySuffix(this$static, suffix){ - var d, d$iterator, d$iterator0, data_0, entry, id_0, id$array, id$index, id$max, legacyIds, outerIter, outerIter0, suffixlength; - if (suffix == null || suffix.length == 0) { - return null; - } - data_0 = castTo($getStringValue(this$static.optionSuffixMap, suffix), 23); - if (!data_0) { - for (d$iterator0 = (outerIter0 = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter0)); d$iterator0.val$outerIter2.hasNext_0();) { - d = (entry = castTo(d$iterator0.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); - id_0 = d.id_0; - suffixlength = suffix.length; - if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { - if (data_0) { - return null; - } - data_0 = d; - } - } - if (!data_0) { - for (d$iterator = (outerIter = (new AbstractMap$2(this$static.layoutOptionMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); d$iterator.val$outerIter2.hasNext_0();) { - d = (entry = castTo(d$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 23)); - legacyIds = d.legacyIds; - if (legacyIds != null) { - for (id$array = legacyIds , id$index = 0 , id$max = id$array.length; id$index < id$max; ++id$index) { - id_0 = id$array[id$index]; - suffixlength = suffix.length; - if ($equals_5(id_0.substr(id_0.length - suffixlength, suffixlength), suffix) && (suffix.length == id_0.length || $charAt(id_0, id_0.length - suffix.length - 1) == 46)) { - if (data_0) { - return null; - } - data_0 = d; - } - } - } - } - } - !!data_0 && $putStringValue(this$static.optionSuffixMap, suffix, data_0); - } - return data_0; -} - -function $registerLayoutMetaDataProviders(this$static, providers){ - var provider, provider$array, provider$index, provider$max, registry; - for (provider$array = providers , provider$index = 0 , provider$max = provider$array.length; provider$index < provider$max; ++provider$index) { - provider = provider$array[provider$index]; - registry = new LayoutMetaDataService$Registry(this$static); - provider.apply_4(registry); - $applyDependencies(registry); - } - $reset(this$static.optionSuffixMap); -} - -function LayoutMetaDataService(){ - this.layoutAlgorithmMap = new LinkedHashMap; - this.layoutOptionMap = new LinkedHashMap; - this.legacyLayoutOptionMap = new LinkedHashMap; - this.layoutCategoryMap = new LinkedHashMap; - this.algorithmSuffixMap = new HashMap; - this.optionSuffixMap = new HashMap; - register(Lorg_eclipse_elk_core_math_KVector_2_classLit, new LayoutMetaDataService$lambda$0$Type, new LayoutMetaDataService$lambda$1$Type); - register(Lorg_eclipse_elk_core_math_KVectorChain_2_classLit, new LayoutMetaDataService$lambda$2$Type, new LayoutMetaDataService$lambda$3$Type); - register(Lorg_eclipse_elk_core_math_ElkMargin_2_classLit, new LayoutMetaDataService$lambda$4$Type, new LayoutMetaDataService$lambda$5$Type); - register(Lorg_eclipse_elk_core_math_ElkPadding_2_classLit, new LayoutMetaDataService$lambda$6$Type, new LayoutMetaDataService$lambda$7$Type); - register(Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit, new LayoutMetaDataService$lambda$8$Type, new LayoutMetaDataService$lambda$9$Type); - register(Ljava_util_ArrayList_2_classLit, new LayoutMetaDataService$lambda$10$Type, new LayoutMetaDataService$lambda$11$Type); - register(Ljava_util_LinkedList_2_classLit, new LayoutMetaDataService$lambda$12$Type, new LayoutMetaDataService$lambda$13$Type); - register(Ljava_util_HashSet_2_classLit, new LayoutMetaDataService$lambda$14$Type, new LayoutMetaDataService$lambda$15$Type); - register(Ljava_util_LinkedHashSet_2_classLit, new LayoutMetaDataService$lambda$16$Type, new LayoutMetaDataService$lambda$17$Type); - register(Ljava_util_TreeSet_2_classLit, new LayoutMetaDataService$lambda$18$Type, new LayoutMetaDataService$lambda$19$Type); -} - -function getInstance(){ - if (!instance_2) { - instance_2 = new LayoutMetaDataService; - $registerLayoutMetaDataProviders(instance_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); - } - return instance_2; -} - -defineClass(867, 1, {}, LayoutMetaDataService); -var instance_2; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService', 867); -function $addDependency(this$static, sourceOption, targetOption, requiredValue){ - var dep; - dep = new LayoutMetaDataService$Registry$Triple; - dep.firstId = sourceOption; - dep.secondId = targetOption; - dep.value_0 = requiredValue; - $add_7(this$static.optionDependencies, dep); -} - -function $addOptionSupport(this$static, algorithm, option, defaultValue){ - var sup_0; - sup_0 = new LayoutMetaDataService$Registry$Triple; - sup_0.firstId = algorithm; - sup_0.secondId = option; - sup_0.value_0 = defaultValue; - $add_7(this$static.optionSupport, sup_0); -} - -function $applyDependencies(this$static){ - var algorithm, algorithm$iterator, category, categoryId, dep, dep$iterator, entry, option, outerIter, source, sup_0, sup$iterator, target; - for (algorithm$iterator = (outerIter = (new AbstractMap$2(this$static.this$01.layoutAlgorithmMap)).this$01.entrySet_0().iterator_0() , new AbstractMap$2$1(outerIter)); algorithm$iterator.val$outerIter2.hasNext_0();) { - algorithm = (entry = castTo(algorithm$iterator.val$outerIter2.next_1(), 42) , castTo(entry.getValue(), 149)); - categoryId = algorithm.category; - categoryId == null && (categoryId = ''); - category = $getCategoryData(this$static.this$01, categoryId); - !category && categoryId.length == 0 && (category = $retrieveBackupCategory(this$static)); - !!category && !$advanceToFind(category.layouters, algorithm, false) && $add_7(category.layouters, algorithm); - } - for (dep$iterator = $listIterator_2(this$static.optionDependencies, 0); dep$iterator.currentNode != dep$iterator.this$01.tail;) { - dep = castTo($next_10(dep$iterator), 478); - source = $getOptionData(this$static.this$01, dep.firstId); - target = $getOptionData(this$static.this$01, dep.secondId); - !!source && !!target && $add_7(source.dependencies, new Pair(target, dep.value_0)); - } - $reset_0(this$static.optionDependencies); - for (sup$iterator = $listIterator_2(this$static.optionSupport, 0); sup$iterator.currentNode != sup$iterator.this$01.tail;) { - sup_0 = castTo($next_10(sup$iterator), 478); - algorithm = $getAlgorithmData(this$static.this$01, sup_0.firstId); - option = $getOptionData(this$static.this$01, sup_0.secondId); - !!algorithm && !!option && $addKnownOption(algorithm, option, sup_0.value_0); - } - $reset_0(this$static.optionSupport); -} - -function $register(this$static, algorithmData){ - $put_11(this$static.this$01.layoutAlgorithmMap, algorithmData.id_0, algorithmData); -} - -function $register_0(this$static, categoryData){ - $put_11(this$static.this$01.layoutCategoryMap, categoryData.id_0, categoryData); -} - -function $register_1(this$static, optionData){ - var id_0, legacyId, legacyId$array, legacyId$index, legacyId$max; - id_0 = optionData.id_0; - $put_11(this$static.this$01.layoutOptionMap, id_0, optionData); - if (optionData.legacyIds != null) { - for (legacyId$array = optionData.legacyIds , legacyId$index = 0 , legacyId$max = legacyId$array.length; legacyId$index < legacyId$max; ++legacyId$index) { - legacyId = legacyId$array[legacyId$index]; - $put_11(this$static.this$01.legacyLayoutOptionMap, legacyId, optionData); - } - } -} - -function $retrieveBackupCategory(this$static){ - var otherCategory; - otherCategory = castTo($get_16(this$static.this$01.layoutCategoryMap, ''), 229); - if (!otherCategory) { - otherCategory = new LayoutCategoryData($name_1($id_0(new LayoutCategoryData$Builder, ''), 'Other')); - $put_11(this$static.this$01.layoutCategoryMap, '', otherCategory); - } - return otherCategory; -} - -function LayoutMetaDataService$Registry(this$0){ - this.this$01 = this$0; - this.optionDependencies = new LinkedList; - this.optionSupport = new LinkedList; -} - -defineClass(868, 1, {}, LayoutMetaDataService$Registry); -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry', 868); -function LayoutMetaDataService$Registry$Triple(){ -} - -defineClass(478, 1, {478:1}, LayoutMetaDataService$Registry$Triple); -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry$Triple_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry/Triple', 478); -function LayoutMetaDataService$lambda$0$Type(){ -} - -defineClass(869, 1, $intern_129, LayoutMetaDataService$lambda$0$Type); -_.newInstance = function newInstance_0(){ - return new KVector; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$0$Type', 869); -function LayoutMetaDataService$lambda$1$Type(){ -} - -defineClass(870, 1, $intern_130, LayoutMetaDataService$lambda$1$Type); -_.clone = function clone_1(arg0){ - return $clone_0(castTo(arg0, 8)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$1$Type', 870); -function LayoutMetaDataService$lambda$10$Type(){ -} - -defineClass(879, 1, $intern_129, LayoutMetaDataService$lambda$10$Type); -_.newInstance = function newInstance_1(){ - return new ArrayList; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$10$Type', 879); -function LayoutMetaDataService$lambda$11$Type(){ -} - -defineClass(880, 1, $intern_130, LayoutMetaDataService$lambda$11$Type); -_.clone = function clone_2(arg0){ - return new ArrayList_1(castTo(arg0, 12)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$11$Type', 880); -function LayoutMetaDataService$lambda$12$Type(){ -} - -defineClass(881, 1, $intern_129, LayoutMetaDataService$lambda$12$Type); -_.newInstance = function newInstance_2(){ - return new LinkedList; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$12$Type', 881); -function LayoutMetaDataService$lambda$13$Type(){ -} - -defineClass(882, 1, $intern_130, LayoutMetaDataService$lambda$13$Type); -_.clone = function clone_3(arg0){ - return newLinkedList(castTo(arg0, 68)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$13$Type', 882); -function LayoutMetaDataService$lambda$14$Type(){ -} - -defineClass(883, 1, $intern_129, LayoutMetaDataService$lambda$14$Type); -_.newInstance = function newInstance_3(){ - return new HashSet; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$14$Type', 883); -function LayoutMetaDataService$lambda$15$Type(){ -} - -defineClass(884, 1, $intern_130, LayoutMetaDataService$lambda$15$Type); -_.clone = function clone_4(arg0){ - return newHashSet(castTo(arg0, 53)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$15$Type', 884); -function LayoutMetaDataService$lambda$16$Type(){ -} - -defineClass(885, 1, $intern_129, LayoutMetaDataService$lambda$16$Type); -_.newInstance = function newInstance_4(){ - return new LinkedHashSet; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$16$Type', 885); -function LayoutMetaDataService$lambda$17$Type(){ -} - -defineClass(886, 1, $intern_130, LayoutMetaDataService$lambda$17$Type); -_.clone = function clone_5(arg0){ - return newLinkedHashSet(castTo(arg0, 53)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$17$Type', 886); -function LayoutMetaDataService$lambda$18$Type(){ -} - -defineClass(887, 1, $intern_129, LayoutMetaDataService$lambda$18$Type); -_.newInstance = function newInstance_5(){ - return new TreeSet; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$18$Type', 887); -function LayoutMetaDataService$lambda$19$Type(){ -} - -defineClass(888, 1, $intern_130, LayoutMetaDataService$lambda$19$Type); -_.clone = function clone_6(arg0){ - return newTreeSet(castTo(arg0, 208)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$19$Type', 888); -function LayoutMetaDataService$lambda$2$Type(){ -} - -defineClass(871, 1, $intern_129, LayoutMetaDataService$lambda$2$Type); -_.newInstance = function newInstance_6(){ - return new KVectorChain; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$2$Type', 871); -function LayoutMetaDataService$lambda$3$Type(){ -} - -defineClass(872, 1, $intern_130, LayoutMetaDataService$lambda$3$Type); -_.clone = function clone_7(arg0){ - return new KVectorChain_0(castTo(arg0, 74)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$3$Type', 872); -function LayoutMetaDataService$lambda$4$Type(){ -} - -defineClass(873, 1, $intern_129, LayoutMetaDataService$lambda$4$Type); -_.newInstance = function newInstance_7(){ - return new ElkMargin; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$4$Type', 873); -function LayoutMetaDataService$lambda$5$Type(){ -} - -defineClass(874, 1, $intern_130, LayoutMetaDataService$lambda$5$Type); -_.clone = function clone_8(arg0){ - return new ElkMargin_2(castTo(arg0, 142)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$5$Type', 874); -function LayoutMetaDataService$lambda$6$Type(){ -} - -defineClass(875, 1, $intern_129, LayoutMetaDataService$lambda$6$Type); -_.newInstance = function newInstance_8(){ - return new ElkPadding; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$6$Type', 875); -function LayoutMetaDataService$lambda$7$Type(){ -} - -defineClass(876, 1, $intern_130, LayoutMetaDataService$lambda$7$Type); -_.clone = function clone_9(arg0){ - return new ElkPadding_1(castTo(arg0, 116)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$7$Type', 876); -function LayoutMetaDataService$lambda$8$Type(){ -} - -defineClass(877, 1, $intern_129, LayoutMetaDataService$lambda$8$Type); -_.newInstance = function newInstance_9(){ - return new IndividualSpacings; -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$8$Type', 877); -function LayoutMetaDataService$lambda$9$Type(){ -} - -defineClass(878, 1, $intern_130, LayoutMetaDataService$lambda$9$Type); -_.clone = function clone_10(arg0){ - return new IndividualSpacings_0(castTo(arg0, 373)); -} -; -var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$9$Type', 878); -var Lorg_eclipse_elk_graph_properties_IProperty_2_classLit = createForInterface('org.eclipse.elk.graph.properties', 'IProperty'); -function $checkEnumClass(this$static){ - if (!this$static.clazz || (this$static.clazz.modifiers & 8) == 0) { - throw toJs(new IllegalStateException_0('Enumeration class expected for layout option ' + this$static.id_0)); - } -} - -function $compareTo_19(this$static, other){ - return $compareTo_9(this$static.id_0, other.getId()); -} - -function $createDataInstance(this$static){ - var instance; - if (!this$static.clazz) { - throw toJs(new IllegalStateException_0('IDataType class expected for layout option ' + this$static.id_0)); - } - instance = newInstance_10(this$static.clazz); - if (instance == null) { - throw toJs(new IllegalStateException_0("Couldn't create new instance of property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); - } - return castTo(instance, 414); -} - -function $enumForString(this$static, leString){ - var constants, index_0, value_0; - try { - value_0 = valueOf_0(this$static.clazz, leString); - return value_0; - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 32)) { - try { - index_0 = __parseAndValidateInt(leString, $intern_42, $intern_0); - constants = $getEnumConstants(this$static.clazz); - if (index_0 >= 0 && index_0 < constants.length) { - return constants[index_0]; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 127)) - throw toJs($e0); - } - return null; - } - else - throw toJs($e1); - } -} - -function $enumSetForStringArray(this$static, leClazz, leString){ - var all, component, component$array, component$index, component$max, components, o, set_0; - set_0 = (all = castTo(leClazz.enumConstantsFunc && leClazz.enumConstantsFunc(), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - components = $split_0(leString, '[\\[\\]\\s,]+'); - for (component$array = components , component$index = 0 , component$max = component$array.length; component$index < component$max; ++component$index) { - component = component$array[component$index]; - if ($trim(component).length == 0) { - continue; - } - o = $enumForString(this$static, component); - if (o == null) { - return null; - } - else { - $add_5(set_0, castTo(o, 22)); - } - } - return set_0; -} - -function $parseValue(this$static, valueString){ - var value_0; - if (valueString == null || $equals_5(valueString, 'null')) { - return null; - } - if (valueString.length == 0 && this$static.type_0 != ($clinit_LayoutOptionData$Type() , ENUMSET)) { - return null; - } - switch (this$static.type_0.ordinal) { - case 1: - return $equalsIgnoreCase(valueString, 'true')?($clinit_Boolean() , TRUE_0):$equalsIgnoreCase(valueString, 'false')?($clinit_Boolean() , FALSE_0):null; - case 2: - try { - return valueOf_4(__parseAndValidateInt(valueString, $intern_42, $intern_0)); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - return null; - } - else - throw toJs($e0); - } - - case 4: - try { - return __parseAndValidateDouble(valueString); - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 127)) { - return null; - } - else - throw toJs($e1); - } - - case 3: - return valueString; - case 5: - $checkEnumClass(this$static); - return $enumForString(this$static, valueString); - case 6: - $checkEnumClass(this$static); - return $enumSetForStringArray(this$static, this$static.clazz, valueString); - case 7: - try { - value_0 = $createDataInstance(this$static); - value_0.parse_0(valueString); - return value_0; - } - catch ($e2) { - $e2 = toJava($e2); - if (instanceOf($e2, 32)) { - return null; - } - else - throw toJs($e2); - } - - default:throw toJs(new IllegalStateException_0('Invalid type set for this layout option.')); - } -} - -function LayoutOptionData(builder){ - var all; - this.dependencies = new LinkedList; - this.id_0 = builder.id_0; - this.group_0 = builder.group_0; - this.name_0 = builder.name_0; - this.description = builder.description; - this.defaultValue = builder.defaultValue; - this.type_0 = builder.type_0; - this.clazz = builder.clazz; - !builder.targets?(this.targets = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))):(this.targets = builder.targets); - this.legacyIds = builder.legacyIds; -} - -defineClass(23, 1, {35:1, 686:1, 23:1, 146:1}, LayoutOptionData); -_.compareTo_0 = function compareTo_20(other){ - return $compareTo_19(this, castTo(other, 146)); -} -; -_.equals_0 = function equals_171(obj){ - return instanceOf(obj, 23)?$equals_5(this.id_0, castTo(obj, 23).id_0):instanceOf(obj, 146) && $equals_5(this.id_0, castTo(obj, 146).getId()); -} -; -_.getDefault = function getDefault(){ - var clone; - if (instanceOf(this.defaultValue, 4)) { - clone = clone_11(this.defaultValue); - if (clone == null) { - throw toJs(new IllegalStateException_0("Couldn't clone property '" + this.id_0 + "'. " + "Make sure it's type is registered with the " + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); - } - return clone; - } - else { - return this.defaultValue; - } -} -; -_.getDescription = function getDescription_1(){ - return this.description; -} -; -_.getId = function getId_1(){ - return this.id_0; -} -; -_.getName = function getName_4(){ - return this.name_0; -} -; -_.hashCode_1 = function hashCode_66(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_113(){ - return 'Layout Option: ' + this.id_0; -} -; -var Lorg_eclipse_elk_core_data_LayoutOptionData_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData', 23); -function $defaultValue(this$static, adefaultValue){ - this$static.defaultValue = adefaultValue; - return this$static; -} - -function $description_1(this$static, adescription){ - this$static.description = adescription; - return this$static; -} - -function $group(this$static, agroup){ - this$static.group_0 = agroup; - return this$static; -} - -function $id_1(this$static, aid){ - this$static.id_0 = aid; - return this$static; -} - -function $legacyIds(this$static, alegacyIds){ - this$static.legacyIds = alegacyIds; - return this$static; -} - -function $name_2(this$static, aname){ - this$static.name_0 = aname; - return this$static; -} - -function $optionClass(this$static, aclazz){ - this$static.clazz = aclazz; - return this$static; -} - -function $targets(this$static, atargets){ - this$static.targets = atargets; - return this$static; -} - -function $type(this$static, atype){ - this$static.type_0 = atype; - return this$static; -} - -function LayoutOptionData$Builder(){ -} - -defineClass(24, 1, {}, LayoutOptionData$Builder); -var Lorg_eclipse_elk_core_data_LayoutOptionData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutOptionData/Builder', 24); -function $clinit_LayoutOptionData$Target(){ - $clinit_LayoutOptionData$Target = emptyMethod; - PARENTS = new LayoutOptionData$Target('PARENTS', 0); - NODES = new LayoutOptionData$Target('NODES', 1); - EDGES = new LayoutOptionData$Target('EDGES', 2); - PORTS = new LayoutOptionData$Target('PORTS', 3); - LABELS = new LayoutOptionData$Target('LABELS', 4); -} - -function LayoutOptionData$Target(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_92(name_0){ - $clinit_LayoutOptionData$Target(); - return valueOf(($clinit_LayoutOptionData$Target$Map() , $MAP_80), name_0); -} - -function values_98(){ - $clinit_LayoutOptionData$Target(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]); -} - -defineClass(175, 22, {3:1, 35:1, 22:1, 175:1}, LayoutOptionData$Target); -var EDGES, LABELS, NODES, PARENTS, PORTS; -var Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Target', 175, Ljava_lang_Enum_2_classLit, values_98, valueOf_92); -function $clinit_LayoutOptionData$Target$Map(){ - $clinit_LayoutOptionData$Target$Map = emptyMethod; - $MAP_80 = createValueOfMap(($clinit_LayoutOptionData$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]))); -} - -var $MAP_80; -function $clinit_LayoutOptionData$Type(){ - $clinit_LayoutOptionData$Type = emptyMethod; - UNDEFINED_1 = new LayoutOptionData$Type('UNDEFINED', 0); - BOOLEAN = new LayoutOptionData$Type('BOOLEAN', 1); - INT = new LayoutOptionData$Type('INT', 2); - STRING = new LayoutOptionData$Type('STRING', 3); - DOUBLE = new LayoutOptionData$Type('DOUBLE', 4); - ENUM = new LayoutOptionData$Type('ENUM', 5); - ENUMSET = new LayoutOptionData$Type('ENUMSET', 6); - OBJECT = new LayoutOptionData$Type('OBJECT', 7); -} - -function LayoutOptionData$Type(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_93(name_0){ - $clinit_LayoutOptionData$Type(); - return valueOf(($clinit_LayoutOptionData$Type$Map() , $MAP_81), name_0); -} - -function values_99(){ - $clinit_LayoutOptionData$Type(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]); -} - -defineClass(277, 22, {3:1, 35:1, 22:1, 277:1}, LayoutOptionData$Type); -var BOOLEAN, DOUBLE, ENUM, ENUMSET, INT, OBJECT, STRING, UNDEFINED_1; -var Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit = createForEnum('org.eclipse.elk.core.data', 'LayoutOptionData/Type', 277, Ljava_lang_Enum_2_classLit, values_99, valueOf_93); -function $clinit_LayoutOptionData$Type$Map(){ - $clinit_LayoutOptionData$Type$Map = emptyMethod; - $MAP_81 = createValueOfMap(($clinit_LayoutOptionData$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 277, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]))); -} - -var $MAP_81; -function $clinit_LabelManagementOptions(){ - $clinit_LabelManagementOptions = emptyMethod; - LABEL_MANAGER = new Property('org.eclipse.elk.labels.labelManager'); -} - -var LABEL_MANAGER; -function $clinit_ElkMath(){ - $clinit_ElkMath = emptyMethod; - FACT_TABLE = stampJavaTypeInfo(getClassLiteralForArray(J_classLit, 1), $intern_62, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, {l:3506176, m:794077, h:1}, {l:884736, m:916411, h:20}, {l:3342336, m:3912489, h:363}, {l:589824, m:3034138, h:6914}, {l:3407872, m:1962506, h:138294}]); - $wnd.Math.pow(2, -65); -} - -function approximateBezierSegment(controlPoints){ - $clinit_ElkMath(); - var i, result, t; - result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, 2, 0, 1); - t = 0; - for (i = 0; i < 2; i++) { - t += 0.5; - result[i] = getPointOnBezierSegment(t, controlPoints); - } - return result; -} - -function binomiald(n, k){ - if (n < 0 || k < 0) { - throw toJs(new IllegalArgumentException_0('k and n must be positive')); - } - else if (k > n) { - throw toJs(new IllegalArgumentException_0('k must be smaller than n')); - } - else - return k == 0 || k == n?1:n == 0?0:factd(n) / (factd(k) * factd(n - k)); -} - -function clipVector(v, width_0, height){ - $clinit_ElkMath(); - var absx, absy, hh, wh, xscale, yscale; - wh = width_0 / 2; - hh = height / 2; - absx = $wnd.Math.abs(v.x_0); - absy = $wnd.Math.abs(v.y_0); - xscale = 1; - yscale = 1; - absx > wh && (xscale = wh / absx); - absy > hh && (yscale = hh / absy); - $scale(v, $wnd.Math.min(xscale, yscale)); - return v; -} - -function contains_49(rect, p){ - var maxX, maxY, minX, minY; - minX = rect.x_0; - maxX = rect.x_0 + rect.width_0; - minY = rect.y_0; - maxY = rect.y_0 + rect.height; - return p.x_0 > minX && p.x_0 < maxX && p.y_0 > minY && p.y_0 < maxY; -} - -function contains_50(rect, p1, p2){ - $clinit_ElkMath(); - return contains_49(rect, p1) && contains_49(rect, p2); -} - -function contains_51(rect, path){ - $clinit_ElkMath(); - var first, p1, p2, pathIt; - if (path.size_0 < 2) { - return false; - } - pathIt = $listIterator_2(path, 0); - first = castTo($next_10(pathIt), 8); - p1 = first; - while (pathIt.currentNode != pathIt.this$01.tail) { - p2 = castTo($next_10(pathIt), 8); - if (!(contains_49(rect, p1) && contains_49(rect, p2))) { - return false; - } - p1 = p2; - } - if (!(contains_49(rect, p1) && contains_49(rect, first))) { - return false; - } - return true; -} - -function distance_0(a1, a2, b1, b2, v){ - $clinit_ElkMath(); - return $wnd.Math.min(traceRays(a1, a2, b1, b2, v), traceRays(b1, b2, a1, a2, $negate(new KVector_1(v.x_0, v.y_0)))); -} - -function factd(x_0){ - if (x_0 < 0) { - throw toJs(new IllegalArgumentException_0('The input must be positive')); - } - else - return x_0 < FACT_TABLE.length?toDouble_0(FACT_TABLE[x_0]):$wnd.Math.sqrt($intern_123 * x_0) * (powf(x_0, x_0) / powd(2.718281828459045, x_0)); -} - -function getPointOnBezierSegment(t, controlPoints){ - var factor, j, n, p, px, py; - n = controlPoints.length - 1; - px = 0; - py = 0; - for (j = 0; j <= n; j++) { - p = controlPoints[j]; - factor = binomiald(n, j) * powd(1 - t, n - j) * powd(t, j); - px += p.x_0 * factor; - py += p.y_0 * factor; - } - return new KVector_1(px, py); -} - -function intersects_0(rect, p1, p2){ - $clinit_ElkMath(); - if (contains_49(rect, p1) && contains_49(rect, p2)) { - return false; - } - return intersects_2(new KVector_1(rect.x_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0), new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0 + rect.width_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0 + rect.height), p1, p2) || intersects_2(new KVector_1(rect.x_0, rect.y_0 + rect.height), new KVector_1(rect.x_0, rect.y_0), p1, p2); -} - -function intersects_1(rect, path){ - $clinit_ElkMath(); - var first, p1, p2, pathIt; - if (path.size_0 < 2) { - return false; - } - pathIt = $listIterator_2(path, 0); - first = castTo($next_10(pathIt), 8); - p1 = first; - while (pathIt.currentNode != pathIt.this$01.tail) { - p2 = castTo($next_10(pathIt), 8); - if (intersects_0(rect, p1, p2)) { - return true; - } - p1 = p2; - } - if (intersects_0(rect, p1, first)) { - return true; - } - return false; -} - -function intersects_2(l11, l12, l21, l22){ - var d, intersects, s, t, u0, u1, v0, v1, x00, x01, x10, x11, y00, y01, y10, y11; - u0 = l11; - v0 = $sub_0(new KVector_1(l12.x_0, l12.y_0), l11); - u1 = l21; - v1 = $sub_0(new KVector_1(l22.x_0, l22.y_0), l21); - x00 = u0.x_0; - y00 = u0.y_0; - x10 = u1.x_0; - y10 = u1.y_0; - x01 = v0.x_0; - y01 = v0.y_0; - x11 = v1.x_0; - y11 = v1.y_0; - d = x11 * y01 - x01 * y11; - $clinit_DoubleMath(); - checkNonNegative($intern_117); - if ($wnd.Math.abs(0 - d) <= $intern_117 || 0 == d || isNaN(0) && isNaN(d)) { - return false; - } - s = 1 / d * ((x00 - x10) * y01 - (y00 - y10) * x01); - t = 1 / d * -(-(x00 - x10) * y11 + (y00 - y10) * x11); - intersects = (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - s) <= $intern_117 || 0 == s || isNaN(0) && isNaN(s)?0:0 < s?-1:0 > s?1:compare_0(isNaN(0), isNaN(s))) < 0 && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(s - 1) <= $intern_117 || s == 1 || isNaN(s) && isNaN(1)?0:s < 1?-1:s > 1?1:compare_0(isNaN(s), isNaN(1))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(0 - t) <= $intern_117 || 0 == t || isNaN(0) && isNaN(t)?0:0 < t?-1:0 > t?1:compare_0(isNaN(0), isNaN(t))) < 0) && (null , checkNonNegative($intern_117) , ($wnd.Math.abs(t - 1) <= $intern_117 || t == 1 || isNaN(t) && isNaN(1)?0:t < 1?-1:t > 1?1:compare_0(isNaN(t), isNaN(1))) < 0)); - return intersects; -} - -function intersects2(p, r, q, s){ - var center, d1, d2, l, pq, pqXr, rXs, t, u; - pq = $sub_0(new KVector_1(q.x_0, q.y_0), p); - pqXr = pq.x_0 * r.y_0 - pq.y_0 * r.x_0; - rXs = r.x_0 * s.y_0 - r.y_0 * s.x_0; - t = (pq.x_0 * s.y_0 - pq.y_0 * s.x_0) / rXs; - u = pqXr / rXs; - if (rXs == 0) { - if (pqXr == 0) { - center = $add_19(new KVector_1(q.x_0, q.y_0), $scale(new KVector_1(s.x_0, s.y_0), 0.5)); - d1 = $distance_0(p, center); - d2 = $distance_0($add_19(new KVector_1(p.x_0, p.y_0), r), center); - l = $wnd.Math.sqrt(s.x_0 * s.x_0 + s.y_0 * s.y_0) * 0.5; - if (d1 < d2 && d1 <= l) { - return new KVector_1(p.x_0, p.y_0); - } - if (d2 <= l) { - return $add_19(new KVector_1(p.x_0, p.y_0), r); - } - return null; - } - else { - return null; - } - } - else { - return t >= 0 && t <= 1 && u >= 0 && u <= 1?$add_19(new KVector_1(p.x_0, p.y_0), $scale(new KVector_1(r.x_0, r.y_0), t)):null; - } -} - -function maxd(values){ - $clinit_ElkMath(); - var i, max_0; - max_0 = -1.7976931348623157E308; - for (i = 0; i < values.length; i++) { - values[i] > max_0 && (max_0 = values[i]); - } - return max_0; -} - -function powd(a, b){ - var base, exp_0, result; - result = 1; - base = a; - exp_0 = b >= 0?b:-b; - while (exp_0 > 0) { - if (exp_0 % 2 == 0) { - base *= base; - exp_0 = exp_0 / 2 | 0; - } - else { - result *= base; - exp_0 -= 1; - } - } - return b < 0?1 / result:result; -} - -function powf(a, b){ - var base, exp_0, result; - result = 1; - base = a; - exp_0 = b >= 0?b:-b; - while (exp_0 > 0) { - if (exp_0 % 2 == 0) { - base *= base; - exp_0 = exp_0 / 2 | 0; - } - else { - result *= base; - exp_0 -= 1; - } - } - return b < 0?1 / result:result; -} - -function shortestDistance_0(r1, r2){ - $clinit_ElkMath(); - var bottomDist, horzDist, leftDist, rightDist, topDist, vertDist; - rightDist = r2.x_0 - (r1.x_0 + r1.width_0); - leftDist = r1.x_0 - (r2.x_0 + r2.width_0); - topDist = r1.y_0 - (r2.y_0 + r2.height); - bottomDist = r2.y_0 - (r1.y_0 + r1.height); - horzDist = $wnd.Math.max(leftDist, rightDist); - vertDist = $wnd.Math.max(topDist, bottomDist); - $clinit_DoubleMath(); - checkNonNegative($intern_117); - if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) >= 0 ^ (null , checkNonNegative($intern_117) , ($wnd.Math.abs(vertDist) <= $intern_117 || vertDist == 0 || isNaN(vertDist) && isNaN(0)?0:vertDist < 0?-1:vertDist > 0?1:compare_0(isNaN(vertDist), isNaN(0))) >= 0)) { - return $wnd.Math.max(vertDist, horzDist); - } - checkNonNegative($intern_117); - if (($wnd.Math.abs(horzDist) <= $intern_117 || horzDist == 0 || isNaN(horzDist) && isNaN(0)?0:horzDist < 0?-1:horzDist > 0?1:compare_0(isNaN(horzDist), isNaN(0))) > 0) { - return $wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); - } - return -$wnd.Math.sqrt(vertDist * vertDist + horzDist * horzDist); -} - -function traceRays(a1, a2, b1, b2, v){ - var edgeCase, endpointHit, intersection, result; - result = $intern_59; - endpointHit = false; - intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), $add_19(new KVector_1(b1.x_0, b1.y_0), v), $sub_0(new KVector_1(b2.x_0, b2.y_0), b1)); - edgeCase = !!intersection && !($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131 || $wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131); - intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b1, v); - !!intersection && (($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase?(result = $wnd.Math.min(result, $length($sub_0(intersection, b1)))):(endpointHit = true)); - intersection = intersects2(a1, $sub_0(new KVector_1(a2.x_0, a2.y_0), a1), b2, v); - !!intersection && (endpointHit || ($wnd.Math.abs(intersection.x_0 - a1.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || edgeCase) && (result = $wnd.Math.min(result, $length($sub_0(intersection, b2)))); - return result; -} - -var FACT_TABLE; -function $getBottomLeft(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0 + this$static.height); -} - -function $getBottomRight(this$static){ - return new KVector_1(this$static.x_0 + this$static.width_0, this$static.y_0 + this$static.height); -} - -function $getCenter(this$static){ - return new KVector_1(this$static.x_0 + this$static.width_0 / 2, this$static.y_0 + this$static.height / 2); -} - -function $getPosition(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0); -} - -function $getTopLeft(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0); -} - -function $setRect(this$static, nx, ny, nw, nh){ - this$static.x_0 = nx; - this$static.y_0 = ny; - this$static.width_0 = nw; - this$static.height = nh; -} - -function $union(this$static, other){ - var t, x1, x2, y1, y2; - x1 = $wnd.Math.min(this$static.x_0, other.x_0); - y1 = $wnd.Math.min(this$static.y_0, other.y_0); - x2 = $wnd.Math.max(this$static.x_0 + this$static.width_0, other.x_0 + other.width_0); - y2 = $wnd.Math.max(this$static.y_0 + this$static.height, other.y_0 + other.height); - if (x2 < x1) { - t = x1; - x1 = x2; - x2 = t; - } - if (y2 < y1) { - t = y1; - y1 = y2; - y2 = t; - } - $setRect(this$static, x1, y1, x2 - x1, y2 - y1); -} - -function ElkRectangle(){ - ElkRectangle_0.call(this, 0, 0, 0, 0); -} - -function ElkRectangle_0(x_0, y_0, w, h){ - this.x_0 = x_0; - this.y_0 = y_0; - this.width_0 = w; - this.height = h; -} - -function ElkRectangle_1(rect){ - this.x_0 = rect.x_0; - this.y_0 = rect.y_0; - this.width_0 = rect.width_0; - this.height = rect.height; -} - -defineClass(110, 1, {110:1}, ElkRectangle, ElkRectangle_0, ElkRectangle_1); -_.equals_0 = function equals_172(obj){ - var other; - if (obj == null || !instanceOf(obj, 110)) { - return false; - } - other = castTo(obj, 110); - return equals_57(this.x_0, other.x_0) && equals_57(this.y_0, other.y_0) && equals_57(this.width_0, other.width_0) && equals_57(this.height, other.height); -} -; -_.hashCode_1 = function hashCode_67(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.x_0, this.y_0, this.width_0, this.height])); -} -; -_.toString_0 = function toString_114(){ - return 'Rect[x=' + this.x_0 + ',y=' + this.y_0 + ',w=' + this.width_0 + ',h=' + this.height + ']'; -} -; -_.height = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_core_math_ElkRectangle_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkRectangle', 110); -function $add_18(this$static, dx, dy){ - this$static.x_0 += dx; - this$static.y_0 += dy; - return this$static; -} - -function $add_19(this$static, v){ - this$static.x_0 += v.x_0; - this$static.y_0 += v.y_0; - return this$static; -} - -function $bound(this$static, lowx, lowy, highx, highy){ - if (highx < lowx || highy < lowy) { - throw toJs(new IllegalArgumentException_0('The highx must be bigger then lowx and the highy must be bigger then lowy')); - } - this$static.x_0 < lowx?(this$static.x_0 = lowx):this$static.x_0 > highx && (this$static.x_0 = highx); - this$static.y_0 < lowy?(this$static.y_0 = lowy):this$static.y_0 > highy && (this$static.y_0 = highy); - return this$static; -} - -function $clone_0(this$static){ - return new KVector_1(this$static.x_0, this$static.y_0); -} - -function $distance_0(this$static, v2){ - var dx, dy; - dx = this$static.x_0 - v2.x_0; - dy = this$static.y_0 - v2.y_0; - return $wnd.Math.sqrt(dx * dx + dy * dy); -} - -function $equals_9(this$static, obj){ - var other; - if (instanceOf(obj, 8)) { - other = castTo(obj, 8); - return this$static.x_0 == other.x_0 && this$static.y_0 == other.y_0; - } - else { - return false; - } -} - -function $length(this$static){ - return $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); -} - -function $negate(this$static){ - this$static.x_0 = -this$static.x_0; - this$static.y_0 = -this$static.y_0; - return this$static; -} - -function $normalize_0(this$static){ - var length_0; - length_0 = $wnd.Math.sqrt(this$static.x_0 * this$static.x_0 + this$static.y_0 * this$static.y_0); - if (length_0 > 0) { - this$static.x_0 /= length_0; - this$static.y_0 /= length_0; - } - return this$static; -} - -function $reset_5(this$static){ - this$static.x_0 = 0; - this$static.y_0 = 0; - return this$static; -} - -function $scale(this$static, scale){ - this$static.x_0 *= scale; - this$static.y_0 *= scale; - return this$static; -} - -function $scale_0(this$static, scalex, scaley){ - this$static.x_0 *= scalex; - this$static.y_0 *= scaley; - return this$static; -} - -function $scaleToLength(this$static, length_0){ - $normalize_0(this$static); - this$static.x_0 *= length_0; - this$static.y_0 *= length_0; - return this$static; -} - -function $set_8(this$static, newX, newY){ - this$static.x_0 = newX; - this$static.y_0 = newY; - return this$static; -} - -function $set_9(this$static, other){ - this$static.x_0 = other.x_0; - this$static.y_0 = other.y_0; - return this$static; -} - -function $sub(this$static, dx, dy){ - this$static.x_0 -= dx; - this$static.y_0 -= dy; - return this$static; -} - -function $sub_0(this$static, v){ - this$static.x_0 -= v.x_0; - this$static.y_0 -= v.y_0; - return this$static; -} - -function KVector(){ - this.x_0 = 0; - this.y_0 = 0; -} - -function KVector_0(angle){ - this.x_0 = $wnd.Math.cos(angle); - this.y_0 = $wnd.Math.sin(angle); -} - -function KVector_1(thex, they){ - this.x_0 = thex; - this.y_0 = they; -} - -function KVector_2(v){ - this.x_0 = v.x_0; - this.y_0 = v.y_0; -} - -function isdelim_0(c, delims){ - var i; - for (i = 0; i < delims.length; i++) { - if (c == (checkCriticalStringElementIndex(i, delims.length) , delims.charCodeAt(i))) { - return true; - } - } - return false; -} - -function sum_0(vs){ - var sum, v, v$array, v$index, v$max; - sum = new KVector; - for (v$array = vs , v$index = 0 , v$max = v$array.length; v$index < v$max; ++v$index) { - v = v$array[v$index]; - sum.x_0 += v.x_0; - sum.y_0 += v.y_0; - } - return sum; -} - -defineClass(8, 1, {3:1, 4:1, 8:1, 414:1}, KVector, KVector_0, KVector_1, KVector_2); -_.equals_0 = function equals_173(obj){ - return $equals_9(this, obj); -} -; -_.hashCode_1 = function hashCode_68(){ - return $hashCode_0(this.x_0) + reverse_1($hashCode_0(this.y_0)); -} -; -_.parse_0 = function parse_1(string){ - var end, exception, start_0, tokens; - start_0 = 0; - while (start_0 < string.length && isdelim_0((checkCriticalStringElementIndex(start_0, string.length) , string.charCodeAt(start_0)), '([{"\' \t\r\n')) { - ++start_0; - } - end = string.length; - while (end > 0 && isdelim_0((checkCriticalStringElementIndex(end - 1, string.length) , string.charCodeAt(end - 1)), ')]}"\' \t\r\n')) { - --end; - } - if (start_0 >= end) { - throw toJs(new IllegalArgumentException_0('The given string does not contain any numbers.')); - } - tokens = $split_0(string.substr(start_0, end - start_0), ',|;|\r|\n'); - if (tokens.length != 2) { - throw toJs(new IllegalArgumentException_0('Exactly two numbers are expected, ' + tokens.length + ' were found.')); - } - try { - this.x_0 = __parseAndValidateDouble($trim(tokens[0])); - this.y_0 = __parseAndValidateDouble($trim(tokens[1])); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new IllegalArgumentException_0('The given string contains parts that cannot be parsed as numbers.' + exception)); - } - else - throw toJs($e0); - } -} -; -_.toString_0 = function toString_115(){ - return '(' + this.x_0 + ',' + this.y_0 + ')'; -} -; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_core_math_KVector_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVector', 8); -function $addAll_7(this$static, vectors){ - var vector, vector$array, vector$index, vector$max; - for (vector$array = vectors , vector$index = 0 , vector$max = vector$array.length; vector$index < vector$max; ++vector$index) { - vector = vector$array[vector$index]; - $addNode_0(this$static, vector, this$static.tail.prev, this$static.tail); - } -} - -function $addAllAsCopies(this$static, index_0, chain){ - var copies, v, v$iterator; - copies = new LinkedList; - for (v$iterator = $listIterator_2(chain, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { - v = castTo($next_10(v$iterator), 8); - $add_7(copies, new KVector_2(v)); - } - $addAll_0(this$static, index_0, copies); -} - -function $offset_1(this$static, dx, dy){ - var vector, vector$iterator; - for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { - vector = castTo($next_10(vector$iterator), 8); - vector.x_0 += dx; - vector.y_0 += dy; - } - return this$static; -} - -function $offset_2(this$static, offset){ - var vector, vector$iterator; - for (vector$iterator = $listIterator_2(this$static, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { - vector = castTo($next_10(vector$iterator), 8); - $add_19(vector, offset); - } - return this$static; -} - -function $toArray_8(this$static){ - var i, iter, result; - i = 0; - result = initUnidimensionalArray(Lorg_eclipse_elk_core_math_KVector_2_classLit, $intern_16, 8, this$static.size_0, 0, 1); - iter = $listIterator_2(this$static, 0); - while (iter.currentNode != iter.this$01.tail) { - result[i++] = castTo($next_10(iter), 8); - } - return result; -} - -function KVectorChain(){ - LinkedList.call(this); -} - -function KVectorChain_0(collection){ - LinkedList_0.call(this, collection); -} - -function KVectorChain_1(vectors){ - LinkedList.call(this); - $addAll_7(this, vectors); -} - -function reverse_3(chain){ - var result, vector, vector$iterator; - result = new KVectorChain; - for (vector$iterator = $listIterator_2(chain, 0); vector$iterator.currentNode != vector$iterator.this$01.tail;) { - vector = castTo($next_10(vector$iterator), 8); - $add_0(result, 0, new KVector_2(vector)); - } - return result; -} - -defineClass(74, 68, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1, 74:1, 414:1}, KVectorChain, KVectorChain_0, KVectorChain_1); -_.toArray = function toArray_25(){ - return $toArray_8(this); -} -; -_.parse_0 = function parse_2(string){ - var exception, i, tokens, x_0, xy, y_0; - tokens = $split_0(string, ',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n'); - $reset_0(this); - try { - i = 0; - xy = 0; - x_0 = 0; - y_0 = 0; - while (i < tokens.length) { - if (tokens[i] != null && $trim(tokens[i]).length > 0) { - xy % 2 == 0?(x_0 = __parseAndValidateDouble(tokens[i])):(y_0 = __parseAndValidateDouble(tokens[i])); - xy > 0 && xy % 2 != 0 && $add_7(this, new KVector_1(x_0, y_0)); - ++xy; - } - ++i; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new IllegalArgumentException_0('The given string does not match the expected format for vectors.' + exception)); - } - else - throw toJs($e0); - } -} -; -_.toString_0 = function toString_116(){ - var builder, iter, vector; - builder = new StringBuilder_1('('); - iter = $listIterator_2(this, 0); - while (iter.currentNode != iter.this$01.tail) { - vector = castTo($next_10(iter), 8); - $append_11(builder, vector.x_0 + ',' + vector.y_0); - iter.currentNode != iter.this$01.tail && (builder.string += '; ' , builder); - } - return (builder.string += ')' , builder).string; -} -; -var Lorg_eclipse_elk_core_math_KVectorChain_2_classLit = createForClass('org.eclipse.elk.core.math', 'KVectorChain', 74); -function $clinit_Alignment(){ - $clinit_Alignment = emptyMethod; - AUTOMATIC = new Alignment('AUTOMATIC', 0); - LEFT_5 = new Alignment('LEFT', 1); - RIGHT_5 = new Alignment('RIGHT', 2); - TOP_2 = new Alignment('TOP', 3); - BOTTOM_1 = new Alignment('BOTTOM', 4); - CENTER_4 = new Alignment('CENTER', 5); -} - -function Alignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_94(name_0){ - $clinit_Alignment(); - return valueOf(($clinit_Alignment$Map() , $MAP_82), name_0); -} - -function values_100(){ - $clinit_Alignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]); -} - -defineClass(248, 22, {3:1, 35:1, 22:1, 248:1}, Alignment); -var AUTOMATIC, BOTTOM_1, CENTER_4, LEFT_5, RIGHT_5, TOP_2; -var Lorg_eclipse_elk_core_options_Alignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Alignment', 248, Ljava_lang_Enum_2_classLit, values_100, valueOf_94); -function $clinit_Alignment$Map(){ - $clinit_Alignment$Map = emptyMethod; - $MAP_82 = createValueOfMap(($clinit_Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]))); -} - -var $MAP_82; -function $clinit_BoxLayouterOptions(){ - $clinit_BoxLayouterOptions = emptyMethod; - PADDING_DEFAULT_5 = new ElkPadding_0(15); - PADDING_5 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_5); - SPACING_NODE_NODE_5 = new Property_2(SPACING_NODE_NODE_6, 15); - PRIORITY_2 = new Property_2(PRIORITY_3, valueOf_4(0)); - EXPAND_NODES_0 = EXPAND_NODES_1; - NODE_SIZE_CONSTRAINTS_5 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_OPTIONS_5 = NODE_SIZE_OPTIONS_6; - ASPECT_RATIO_4 = new Property_2(ASPECT_RATIO_5, $intern_132); - INTERACTIVE_6 = INTERACTIVE_7; - NODE_SIZE_MINIMUM_4 = NODE_SIZE_MINIMUM_5; - BOX_PACKING_MODE = BOX_PACKING_MODE_0; - CONTENT_ALIGNMENT_1 = CONTENT_ALIGNMENT_2; -} - -function $apply_24(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.box'), 'ELK Box'), 'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'), new BoxLayouterOptions$BoxFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.padding', PADDING_DEFAULT_5); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.spacing.nodeNode', 15); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.priority', valueOf_4(0)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES_0)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_5)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.options', $getDefault(NODE_SIZE_OPTIONS_5)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.aspectRatio', $intern_132); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_6)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_4)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.box.packingMode', $getDefault(BOX_PACKING_MODE)); - $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.contentAlignment', $getDefault(CONTENT_ALIGNMENT_1)); -} - -function BoxLayouterOptions(){ - $clinit_BoxLayouterOptions(); -} - -defineClass(979, 1, $intern_90, BoxLayouterOptions); -_.apply_4 = function apply_167(registry){ - $apply_24(registry); -} -; -var ASPECT_RATIO_4, BOX_PACKING_MODE, CONTENT_ALIGNMENT_1, EXPAND_NODES_0, INTERACTIVE_6, NODE_SIZE_CONSTRAINTS_5, NODE_SIZE_MINIMUM_4, NODE_SIZE_OPTIONS_5, PADDING_5, PADDING_DEFAULT_5, PRIORITY_2, SPACING_NODE_NODE_5; -var Lorg_eclipse_elk_core_options_BoxLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions', 979); -function BoxLayouterOptions$BoxFactory(){ -} - -defineClass(980, 1, {}, BoxLayouterOptions$BoxFactory); -_.create_0 = function create_37(){ - var provider; - return provider = new BoxLayoutProvider , provider; -} -; -_.destroy = function destroy_8(obj){ -} -; -var Lorg_eclipse_elk_core_options_BoxLayouterOptions$BoxFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'BoxLayouterOptions/BoxFactory', 980); -function $clinit_ContentAlignment(){ - $clinit_ContentAlignment = emptyMethod; - V_TOP = new ContentAlignment('V_TOP', 0); - V_CENTER = new ContentAlignment('V_CENTER', 1); - V_BOTTOM = new ContentAlignment('V_BOTTOM', 2); - H_LEFT = new ContentAlignment('H_LEFT', 3); - H_CENTER = new ContentAlignment('H_CENTER', 4); - H_RIGHT = new ContentAlignment('H_RIGHT', 5); -} - -function ContentAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_95(name_0){ - $clinit_ContentAlignment(); - return valueOf(($clinit_ContentAlignment$Map() , $MAP_83), name_0); -} - -function values_101(){ - $clinit_ContentAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]); -} - -defineClass(291, 22, {3:1, 35:1, 22:1, 291:1}, ContentAlignment); -var H_CENTER, H_LEFT, H_RIGHT, V_BOTTOM, V_CENTER, V_TOP; -var Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'ContentAlignment', 291, Ljava_lang_Enum_2_classLit, values_101, valueOf_95); -function $clinit_ContentAlignment$Map(){ - $clinit_ContentAlignment$Map = emptyMethod; - $MAP_83 = createValueOfMap(($clinit_ContentAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]))); -} - -var $MAP_83; -function $clinit_CoreOptions(){ - $clinit_CoreOptions = emptyMethod; - var all, all0; - ALGORITHM = new Property('org.eclipse.elk.algorithm'); - RESOLVED_ALGORITHM = new Property('org.eclipse.elk.resolvedAlgorithm'); - ALIGNMENT_DEFAULT = ($clinit_Alignment() , AUTOMATIC); - ALIGNMENT_0 = new Property_1('org.eclipse.elk.alignment', ALIGNMENT_DEFAULT); - new ExclusiveBounds$ExclusiveLowerBound; - ASPECT_RATIO_5 = new Property_1('org.eclipse.elk.aspectRatio', null); - BEND_POINTS = new Property('org.eclipse.elk.bendPoints'); - CONTENT_ALIGNMENT_DEFAULT = ($clinit_ContentAlignment() , of_2(V_TOP, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 291, 0, [H_LEFT]))); - CONTENT_ALIGNMENT_2 = new Property_1('org.eclipse.elk.contentAlignment', CONTENT_ALIGNMENT_DEFAULT); - DEBUG_MODE_3 = new Property_1('org.eclipse.elk.debugMode', ($clinit_Boolean() , false)); - DIRECTION_DEFAULT_0 = ($clinit_Direction_0() , UNDEFINED_2); - DIRECTION_0 = new Property_1('org.eclipse.elk.direction', DIRECTION_DEFAULT_0); - EDGE_ROUTING_DEFAULT_0 = ($clinit_EdgeRouting() , UNDEFINED_3); - EDGE_ROUTING_0 = new Property_1('org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT_0); - EXPAND_NODES_1 = new Property_1('org.eclipse.elk.expandNodes', false); - HIERARCHY_HANDLING_DEFAULT = ($clinit_HierarchyHandling() , INHERIT); - HIERARCHY_HANDLING_0 = new Property_1('org.eclipse.elk.hierarchyHandling', HIERARCHY_HANDLING_DEFAULT); - PADDING_DEFAULT_6 = new ElkPadding_0(12); - PADDING_6 = new Property_1('org.eclipse.elk.padding', PADDING_DEFAULT_6); - INTERACTIVE_7 = new Property_1('org.eclipse.elk.interactive', false); - INTERACTIVE_LAYOUT_1 = new Property_1('org.eclipse.elk.interactiveLayout', false); - OMIT_NODE_MICRO_LAYOUT_4 = new Property_1('org.eclipse.elk.omitNodeMicroLayout', false); - PORT_CONSTRAINTS_DEFAULT = ($clinit_PortConstraints() , UNDEFINED_4); - PORT_CONSTRAINTS_1 = new Property_1('org.eclipse.elk.portConstraints', PORT_CONSTRAINTS_DEFAULT); - POSITION_2 = new Property('org.eclipse.elk.position'); - PRIORITY_3 = new Property('org.eclipse.elk.priority'); - RANDOM_SEED_1 = new Property('org.eclipse.elk.randomSeed'); - SEPARATE_CONNECTED_COMPONENTS_2 = new Property('org.eclipse.elk.separateConnectedComponents'); - JUNCTION_POINTS_DEFAULT = new KVectorChain; - JUNCTION_POINTS_0 = new Property_1('org.eclipse.elk.junctionPoints', JUNCTION_POINTS_DEFAULT); - COMMENT_BOX_0 = new Property_1('org.eclipse.elk.commentBox', false); - HYPERNODE_0 = new Property_1('org.eclipse.elk.hypernode', false); - new Property('org.eclipse.elk.labelManager'); - MARGINS_DEFAULT = new ElkMargin; - MARGINS_0 = new Property_1('org.eclipse.elk.margins', MARGINS_DEFAULT); - NO_LAYOUT_0 = new Property_1('org.eclipse.elk.noLayout', false); - new ExclusiveBounds$ExclusiveLowerBound; - SCALE_FACTOR = new Property_1('org.eclipse.elk.scaleFactor', 1); - new Property_1('org.eclipse.elk.animate', true); - valueOf_4(0); - new Property_1('org.eclipse.elk.animTimeFactor', valueOf_4(100)); - new Property_1('org.eclipse.elk.layoutAncestors', false); - valueOf_4(0); - new Property_1('org.eclipse.elk.maxAnimTime', valueOf_4(4000)); - valueOf_4(0); - new Property_1('org.eclipse.elk.minAnimTime', valueOf_4(400)); - new Property_1('org.eclipse.elk.progressBar', false); - new Property_1('org.eclipse.elk.validateGraph', false); - new Property_1('org.eclipse.elk.validateOptions', true); - new Property_1('org.eclipse.elk.zoomToFit', false); - BOX_PACKING_MODE_DEFAULT = ($clinit_BoxLayoutProvider$PackingMode() , SIMPLE_0); - BOX_PACKING_MODE_0 = new Property_1('org.eclipse.elk.box.packingMode', BOX_PACKING_MODE_DEFAULT); - SPACING_COMMENT_COMMENT_0 = new Property_1('org.eclipse.elk.spacing.commentComment', 10); - SPACING_COMMENT_NODE_0 = new Property_1('org.eclipse.elk.spacing.commentNode', 10); - SPACING_COMPONENT_COMPONENT_1 = new Property_1('org.eclipse.elk.spacing.componentComponent', 20); - SPACING_EDGE_EDGE_0 = new Property_1('org.eclipse.elk.spacing.edgeEdge', 10); - SPACING_EDGE_LABEL_1 = new Property_1('org.eclipse.elk.spacing.edgeLabel', 2); - SPACING_EDGE_NODE_0 = new Property_1('org.eclipse.elk.spacing.edgeNode', 10); - SPACING_LABEL_LABEL_0 = new Property_1('org.eclipse.elk.spacing.labelLabel', 0); - SPACING_LABEL_NODE_0 = new Property_1('org.eclipse.elk.spacing.labelNode', 5); - SPACING_LABEL_PORT_HORIZONTAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortHorizontal', 1); - SPACING_LABEL_PORT_VERTICAL_0 = new Property_1('org.eclipse.elk.spacing.labelPortVertical', 1); - SPACING_NODE_NODE_6 = new Property_1('org.eclipse.elk.spacing.nodeNode', 20); - SPACING_NODE_SELF_LOOP_0 = new Property_1('org.eclipse.elk.spacing.nodeSelfLoop', 10); - SPACING_PORT_PORT_0 = new Property_1('org.eclipse.elk.spacing.portPort', 10); - SPACING_INDIVIDUAL_0 = new Property('org.eclipse.elk.spacing.individual'); - SPACING_PORTS_SURROUNDING_DEFAULT = new ElkMargin_0; - SPACING_PORTS_SURROUNDING_0 = new Property_1('org.eclipse.elk.spacing.portsSurrounding', SPACING_PORTS_SURROUNDING_DEFAULT); - PARTITIONING_PARTITION_0 = new Property('org.eclipse.elk.partitioning.partition'); - PARTITIONING_ACTIVATE_DEFAULT = false; - PARTITIONING_ACTIVATE_0 = new Property_1('org.eclipse.elk.partitioning.activate', PARTITIONING_ACTIVATE_DEFAULT); - NODE_LABELS_PADDING_DEFAULT = new ElkPadding_0(5); - NODE_LABELS_PADDING_0 = new Property_1('org.eclipse.elk.nodeLabels.padding', NODE_LABELS_PADDING_DEFAULT); - NODE_LABELS_PLACEMENT_DEFAULT = ($clinit_NodeLabelPlacement() , all0 = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), 9) , new EnumSet$EnumSetImpl(all0, castTo(createFrom(all0, all0.length), 9), 0)); - NODE_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.nodeLabels.placement', NODE_LABELS_PLACEMENT_DEFAULT); - PORT_ALIGNMENT_DEFAULT_DEFAULT_0 = ($clinit_PortAlignment() , DISTRIBUTED); - PORT_ALIGNMENT_DEFAULT = new Property_1('org.eclipse.elk.portAlignment.default', PORT_ALIGNMENT_DEFAULT_DEFAULT_0); - PORT_ALIGNMENT_NORTH_0 = new Property('org.eclipse.elk.portAlignment.north'); - PORT_ALIGNMENT_SOUTH_0 = new Property('org.eclipse.elk.portAlignment.south'); - PORT_ALIGNMENT_WEST_0 = new Property('org.eclipse.elk.portAlignment.west'); - PORT_ALIGNMENT_EAST_0 = new Property('org.eclipse.elk.portAlignment.east'); - NODE_SIZE_CONSTRAINTS_DEFAULT = (all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)); - NODE_SIZE_CONSTRAINTS_6 = new Property_1('org.eclipse.elk.nodeSize.constraints', NODE_SIZE_CONSTRAINTS_DEFAULT); - NODE_SIZE_OPTIONS_DEFAULT = of_1(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE)); - NODE_SIZE_OPTIONS_6 = new Property_1('org.eclipse.elk.nodeSize.options', NODE_SIZE_OPTIONS_DEFAULT); - NODE_SIZE_MINIMUM_DEFAULT = new KVector_1(0, 0); - NODE_SIZE_MINIMUM_5 = new Property_1('org.eclipse.elk.nodeSize.minimum', NODE_SIZE_MINIMUM_DEFAULT); - NODE_SIZE_FIXED_GRAPH_SIZE_0 = new Property_1('org.eclipse.elk.nodeSize.fixedGraphSize', false); - EDGE_LABELS_PLACEMENT_DEFAULT = ($clinit_EdgeLabelPlacement() , CENTER_5); - EDGE_LABELS_PLACEMENT_0 = new Property_1('org.eclipse.elk.edgeLabels.placement', EDGE_LABELS_PLACEMENT_DEFAULT); - EDGE_LABELS_INLINE_1 = new Property_1('org.eclipse.elk.edgeLabels.inline', false); - new Property('org.eclipse.elk.font.name'); - valueOf_4(1); - new Property_1('org.eclipse.elk.font.size', null); - PORT_ANCHOR_0 = new Property('org.eclipse.elk.port.anchor'); - PORT_INDEX_0 = new Property('org.eclipse.elk.port.index'); - PORT_SIDE_DEFAULT = ($clinit_PortSide() , UNDEFINED_5); - PORT_SIDE_0 = new Property_1('org.eclipse.elk.port.side', PORT_SIDE_DEFAULT); - PORT_BORDER_OFFSET_0 = new Property('org.eclipse.elk.port.borderOffset'); - PORT_LABELS_PLACEMENT_DEFAULT = ($clinit_PortLabelPlacement() , of_1(OUTSIDE_0)); - PORT_LABELS_PLACEMENT_5 = new Property_1('org.eclipse.elk.portLabels.placement', PORT_LABELS_PLACEMENT_DEFAULT); - PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0 = new Property_1('org.eclipse.elk.portLabels.nextToPortIfPossible', false); - PORT_LABELS_TREAT_AS_GROUP_0 = new Property_1('org.eclipse.elk.portLabels.treatAsGroup', true); - INSIDE_SELF_LOOPS_ACTIVATE_0 = new Property_1('org.eclipse.elk.insideSelfLoops.activate', false); - INSIDE_SELF_LOOPS_YO_0 = new Property_1('org.eclipse.elk.insideSelfLoops.yo', false); - EDGE_THICKNESS_1 = new Property_1('org.eclipse.elk.edge.thickness', 1); - EDGE_TYPE_DEFAULT = ($clinit_EdgeType() , NONE_14); - new Property_1('org.eclipse.elk.edge.type', EDGE_TYPE_DEFAULT); - PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0 = true; -} - -function CoreOptions(){ - $clinit_CoreOptions(); -} - -defineClass(684, 1, $intern_90, CoreOptions); -_.apply_4 = function apply_168(registry){ - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.algorithm'), ''), 'Layout Algorithm'), 'Select a specific layout algorithm.'), ($clinit_LayoutOptionData$Type() , STRING)), Ljava_lang_String_2_classLit), of_1(($clinit_LayoutOptionData$Target() , PARENTS))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.resolvedAlgorithm'), ''), 'Resolved Layout Algorithm'), 'Meta data associated with the selected algorithm.'), OBJECT), Lorg_eclipse_elk_core_data_LayoutAlgorithmData_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.alignment'), ''), 'Alignment'), 'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'), ALIGNMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_Alignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.aspectRatio'), ''), 'Aspect Ratio'), 'The desired aspect ratio of the drawing, that is the quotient of width by height.'), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.bendPoints'), ''), 'Bend Points'), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.contentAlignment'), ''), 'Content Alignment'), 'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'), CONTENT_ALIGNMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.debugMode'), ''), 'Debug Mode'), 'Whether additional debug information shall be generated.'), ($clinit_Boolean() , false)), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.direction'), ''), 'Direction'), 'Overall direction of edges: horizontal (right / left) or vertical (down / up).'), DIRECTION_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_Direction_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeRouting'), ''), 'Edge Routing'), 'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'), EDGE_ROUTING_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.expandNodes'), ''), 'Expand Nodes'), 'If active, nodes are expanded to fill the area of their parent.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hierarchyHandling'), ''), 'Hierarchy Handling'), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), HIERARCHY_HANDLING_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.padding'), ''), 'Padding'), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), PADDING_DEFAULT_6), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactive'), ''), 'Interactive'), 'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.interactiveLayout'), ''), 'interactive Layout'), 'Whether the graph should be changeable interactively and by setting constraints'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.omitNodeMicroLayout'), ''), 'Omit Node Micro Layout'), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portConstraints'), ''), 'Port Constraints'), 'Defines constraints of the position of the ports of a node.'), PORT_CONSTRAINTS_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortConstraints_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.position'), ''), 'Position'), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PORTS, LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.priority'), ''), 'Priority'), 'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'), INT), Ljava_lang_Integer_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.randomSeed'), ''), 'Randomization Seed'), 'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.separateConnectedComponents'), ''), 'Separate Connected Components'), 'Whether each connected component should be processed separately.'), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.junctionPoints'), ''), 'Junction Points'), 'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'), JUNCTION_POINTS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVectorChain_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.commentBox'), ''), 'Comment Box'), 'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.hypernode'), ''), 'Hypernode'), 'Whether the node should be handled as a hypernode.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.labelManager'), ''), 'Label Manager'), "Label managers can shorten labels upon a layout algorithm's request."), OBJECT), Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.margins'), ''), 'Margins'), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), MARGINS_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.noLayout'), ''), 'No Layout'), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.scaleFactor'), ''), 'Scale Factor'), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animate'), ''), 'Animate'), 'Whether the shift from the old layout to the new computed layout shall be animated.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.animTimeFactor'), ''), 'Animation Time Factor'), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), valueOf_4(100)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.layoutAncestors'), ''), 'Layout Ancestors'), 'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.maxAnimTime'), ''), 'Maximal Animation Time'), 'The maximal time for animations, in milliseconds.'), valueOf_4(4000)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.minAnimTime'), ''), 'Minimal Animation Time'), 'The minimal time for animations, in milliseconds.'), valueOf_4(400)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.progressBar'), ''), 'Progress Bar'), 'Whether a progress bar shall be displayed during layout computations.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateGraph'), ''), 'Validate Graph'), 'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.validateOptions'), ''), 'Validate Options'), 'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.zoomToFit'), ''), 'Zoom to Fit'), 'Whether the zoom level shall be set to view the whole diagram after layout.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.box.packingMode'), 'box'), 'Box Layout Mode'), 'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'), BOX_PACKING_MODE_DEFAULT), ENUM), Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentComment'), 'spacing'), 'Comment Comment Spacing'), 'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.commentNode'), 'spacing'), 'Comment Node Spacing'), 'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.componentComponent'), 'spacing'), 'Components Spacing'), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeEdge'), 'spacing'), 'Edge Spacing'), 'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeLabel'), 'spacing'), 'Edge Label Spacing'), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.edgeNode'), 'spacing'), 'Edge Node Spacing'), 'Spacing to be preserved between nodes and edges.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelLabel'), 'spacing'), 'Label Spacing'), 'Determines the amount of space to be left between two labels of the same graph element.'), 0), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelNode'), 'spacing'), 'Label Node Spacing'), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortHorizontal'), 'spacing'), 'Horizontal spacing between Label and Port'), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.labelPortVertical'), 'spacing'), 'Vertical spacing between Label and Port'), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeNode'), 'spacing'), 'Node Spacing'), 'The minimal distance to be preserved between each two nodes.'), 20), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.nodeSelfLoop'), 'spacing'), 'Node Self Loop Spacing'), 'Spacing to be preserved between a node and its self loops.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portPort'), 'spacing'), 'Port Spacing'), 'Spacing between pairs of ports of the same node.'), 10), DOUBLE), Ljava_lang_Double_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.individual'), 'spacing'), 'Individual Spacing'), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), OBJECT), Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [EDGES, PORTS, LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.spacing.portsSurrounding'), 'spacing'), 'Additional Port Space'), 'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'), SPACING_PORTS_SURROUNDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkMargin_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.partition'), 'partitioning'), 'Layout Partition'), 'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'), INT), Ljava_lang_Integer_2_classLit), of_2(PARENTS, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [NODES]))))); - $addDependency(registry, 'org.eclipse.elk.partitioning.partition', 'org.eclipse.elk.partitioning.activate', PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.partitioning.activate'), 'partitioning'), 'Layout Partitioning'), 'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'), PARTITIONING_ACTIVATE_DEFAULT), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.padding'), 'nodeLabels'), 'Node Label Padding'), 'Define padding for node labels that are placed inside of a node.'), NODE_LABELS_PADDING_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_ElkPadding_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeLabels.placement'), 'nodeLabels'), 'Node Label Placement'), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), NODE_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit), of_2(NODES, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [LABELS]))))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.default'), 'portAlignment'), 'Port Alignment'), 'Defines the default port distribution for a node. May be overridden for each side individually.'), PORT_ALIGNMENT_DEFAULT_DEFAULT_0), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.north'), 'portAlignment'), 'Port Alignment (North)'), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.south'), 'portAlignment'), 'Port Alignment (South)'), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.west'), 'portAlignment'), 'Port Alignment (West)'), "Defines how ports on the western side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portAlignment.east'), 'portAlignment'), 'Port Alignment (East)'), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), ENUM), Lorg_eclipse_elk_core_options_PortAlignment_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.constraints'), 'nodeSize'), 'Node Size Constraints'), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), NODE_SIZE_CONSTRAINTS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.options'), 'nodeSize'), 'Node Size Options'), 'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'), NODE_SIZE_OPTIONS_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_SizeOptions_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.minimum'), 'nodeSize'), 'Node Size Minimum'), 'The minimal size to which a node can be reduced.'), NODE_SIZE_MINIMUM_DEFAULT), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.nodeSize.fixedGraphSize'), 'nodeSize'), 'Fixed Graph Size'), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(PARENTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.placement'), 'edgeLabels'), 'Edge Label Placement'), 'Gives a hint on where to put edge labels.'), EDGE_LABELS_PLACEMENT_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edgeLabels.inline'), 'edgeLabels'), 'Inline Edge Labels'), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.name'), 'font'), 'Font Name'), 'Font name used for a label.'), STRING), Ljava_lang_String_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.font.size'), 'font'), 'Font Size'), 'Font size used for a label.'), INT), Ljava_lang_Integer_2_classLit), of_1(LABELS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.anchor'), 'port'), 'Port Anchor Offset'), 'The offset to the port position where connections shall be attached.'), OBJECT), Lorg_eclipse_elk_core_math_KVector_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.index'), 'port'), 'Port Index'), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), INT), Ljava_lang_Integer_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.side'), 'port'), 'Port Side'), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), PORT_SIDE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_PortSide_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.port.borderOffset'), 'port'), 'Port Border Offset'), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), DOUBLE), Ljava_lang_Double_2_classLit), of_1(PORTS)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.placement'), 'portLabels'), 'Port Label Placement'), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), PORT_LABELS_PLACEMENT_DEFAULT), ENUMSET), Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.nextToPortIfPossible'), 'portLabels'), 'Port Labels Next to Port'), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.portLabels.treatAsGroup'), 'portLabels'), 'Treat Port Labels as Group'), 'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'), true), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.activate'), 'insideSelfLoops'), 'Activate Inside Self Loops'), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.insideSelfLoops.yo'), 'insideSelfLoops'), 'Inside Self Loop'), 'Whether a self loop should be routed inside a node instead of around that node.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.thickness'), 'edge'), 'Edge Thickness'), 'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'), 1), DOUBLE), Ljava_lang_Double_2_classLit), of_1(EDGES)))); - $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.edge.type'), 'edge'), 'Edge Type'), 'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'), EDGE_TYPE_DEFAULT), ENUM), Lorg_eclipse_elk_core_options_EdgeType_2_classLit), of_1(EDGES)))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.layered'), 'Layered'), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.orthogonal'), 'Orthogonal'), 'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.force'), 'Force'), 'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.circle'), 'Circle'), 'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.tree'), 'Tree'), 'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.planar'), 'Planar'), 'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.'))); - $register_0(registry, new LayoutCategoryData($description_0($name_1($id_0(new LayoutCategoryData$Builder, 'org.eclipse.elk.radial'), 'Radial'), 'Radial layout algorithms usually position the nodes of the graph on concentric circles.'))); - $apply_25((new FixedLayouterOptions , registry)); - $apply_24((new BoxLayouterOptions , registry)); - $apply_26((new RandomLayouterOptions , registry)); -} -; -var ALGORITHM, ALIGNMENT_0, ALIGNMENT_DEFAULT, ASPECT_RATIO_5, BEND_POINTS, BOX_PACKING_MODE_0, BOX_PACKING_MODE_DEFAULT, COMMENT_BOX_0, CONTENT_ALIGNMENT_2, CONTENT_ALIGNMENT_DEFAULT, DEBUG_MODE_3, DIRECTION_0, DIRECTION_DEFAULT_0, EDGE_LABELS_INLINE_1, EDGE_LABELS_PLACEMENT_0, EDGE_LABELS_PLACEMENT_DEFAULT, EDGE_ROUTING_0, EDGE_ROUTING_DEFAULT_0, EDGE_THICKNESS_1, EDGE_TYPE_DEFAULT, EXPAND_NODES_1, HIERARCHY_HANDLING_0, HIERARCHY_HANDLING_DEFAULT, HYPERNODE_0, INSIDE_SELF_LOOPS_ACTIVATE_0, INSIDE_SELF_LOOPS_YO_0, INTERACTIVE_7, INTERACTIVE_LAYOUT_1, JUNCTION_POINTS_0, JUNCTION_POINTS_DEFAULT, MARGINS_0, MARGINS_DEFAULT, NODE_LABELS_PADDING_0, NODE_LABELS_PADDING_DEFAULT, NODE_LABELS_PLACEMENT_5, NODE_LABELS_PLACEMENT_DEFAULT, NODE_SIZE_CONSTRAINTS_6, NODE_SIZE_CONSTRAINTS_DEFAULT, NODE_SIZE_FIXED_GRAPH_SIZE_0, NODE_SIZE_MINIMUM_5, NODE_SIZE_MINIMUM_DEFAULT, NODE_SIZE_OPTIONS_6, NODE_SIZE_OPTIONS_DEFAULT, NO_LAYOUT_0, OMIT_NODE_MICRO_LAYOUT_4, PADDING_6, PADDING_DEFAULT_6, PARTITIONING_ACTIVATE_0, PARTITIONING_ACTIVATE_DEFAULT, PARTITIONING_PARTITION_0, PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0, PORT_ALIGNMENT_DEFAULT, PORT_ALIGNMENT_DEFAULT_DEFAULT_0, PORT_ALIGNMENT_EAST_0, PORT_ALIGNMENT_NORTH_0, PORT_ALIGNMENT_SOUTH_0, PORT_ALIGNMENT_WEST_0, PORT_ANCHOR_0, PORT_BORDER_OFFSET_0, PORT_CONSTRAINTS_1, PORT_CONSTRAINTS_DEFAULT, PORT_INDEX_0, PORT_LABELS_NEXT_TO_PORT_IF_POSSIBLE_0, PORT_LABELS_PLACEMENT_5, PORT_LABELS_PLACEMENT_DEFAULT, PORT_LABELS_TREAT_AS_GROUP_0, PORT_SIDE_0, PORT_SIDE_DEFAULT, POSITION_2, PRIORITY_3, RANDOM_SEED_1, RESOLVED_ALGORITHM, SCALE_FACTOR, SEPARATE_CONNECTED_COMPONENTS_2, SPACING_COMMENT_COMMENT_0, SPACING_COMMENT_NODE_0, SPACING_COMPONENT_COMPONENT_1, SPACING_EDGE_EDGE_0, SPACING_EDGE_LABEL_1, SPACING_EDGE_NODE_0, SPACING_INDIVIDUAL_0, SPACING_LABEL_LABEL_0, SPACING_LABEL_NODE_0, SPACING_LABEL_PORT_HORIZONTAL_0, SPACING_LABEL_PORT_VERTICAL_0, SPACING_NODE_NODE_6, SPACING_NODE_SELF_LOOP_0, SPACING_PORTS_SURROUNDING_0, SPACING_PORTS_SURROUNDING_DEFAULT, SPACING_PORT_PORT_0; -var Lorg_eclipse_elk_core_options_CoreOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'CoreOptions', 684); -function $clinit_Direction_0(){ - $clinit_Direction_0 = emptyMethod; - UNDEFINED_2 = new Direction_0('UNDEFINED', 0); - RIGHT_6 = new Direction_0('RIGHT', 1); - LEFT_6 = new Direction_0('LEFT', 2); - DOWN_1 = new Direction_0('DOWN', 3); - UP_1 = new Direction_0('UP', 4); -} - -function $isHorizontal(this$static){ - return this$static == LEFT_6 || this$static == RIGHT_6; -} - -function $isVertical(this$static){ - return this$static == UP_1 || this$static == DOWN_1; -} - -function $opposite(this$static){ - switch (this$static.ordinal) { - case 2: - return RIGHT_6; - case 1: - return LEFT_6; - case 4: - return DOWN_1; - case 3: - return UP_1; - default:return UNDEFINED_2; - } -} - -function Direction_0(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_96(name_0){ - $clinit_Direction_0(); - return valueOf(($clinit_Direction$Map_0() , $MAP_84), name_0); -} - -function values_102(){ - $clinit_Direction_0(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]); -} - -defineClass(103, 22, {3:1, 35:1, 22:1, 103:1}, Direction_0); -var DOWN_1, LEFT_6, RIGHT_6, UNDEFINED_2, UP_1; -var Lorg_eclipse_elk_core_options_Direction_2_classLit = createForEnum('org.eclipse.elk.core.options', 'Direction', 103, Ljava_lang_Enum_2_classLit, values_102, valueOf_96); -function $clinit_Direction$Map_0(){ - $clinit_Direction$Map_0 = emptyMethod; - $MAP_84 = createValueOfMap(($clinit_Direction_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]))); -} - -var $MAP_84; -function $clinit_EdgeLabelPlacement(){ - $clinit_EdgeLabelPlacement = emptyMethod; - CENTER_5 = new EdgeLabelPlacement('CENTER', 0); - HEAD = new EdgeLabelPlacement('HEAD', 1); - TAIL = new EdgeLabelPlacement('TAIL', 2); -} - -function EdgeLabelPlacement(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_97(name_0){ - $clinit_EdgeLabelPlacement(); - return valueOf(($clinit_EdgeLabelPlacement$Map() , $MAP_85), name_0); -} - -function values_103(){ - $clinit_EdgeLabelPlacement(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]); -} - -defineClass(272, 22, {3:1, 35:1, 22:1, 272:1}, EdgeLabelPlacement); -var CENTER_5, HEAD, TAIL; -var Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeLabelPlacement', 272, Ljava_lang_Enum_2_classLit, values_103, valueOf_97); -function $clinit_EdgeLabelPlacement$Map(){ - $clinit_EdgeLabelPlacement$Map = emptyMethod; - $MAP_85 = createValueOfMap(($clinit_EdgeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]))); -} - -var $MAP_85; -function $clinit_EdgeRouting(){ - $clinit_EdgeRouting = emptyMethod; - UNDEFINED_3 = new EdgeRouting('UNDEFINED', 0); - POLYLINE = new EdgeRouting('POLYLINE', 1); - ORTHOGONAL = new EdgeRouting('ORTHOGONAL', 2); - SPLINES = new EdgeRouting('SPLINES', 3); -} - -function EdgeRouting(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_98(name_0){ - $clinit_EdgeRouting(); - return valueOf(($clinit_EdgeRouting$Map() , $MAP_86), name_0); -} - -function values_104(){ - $clinit_EdgeRouting(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]); -} - -defineClass(218, 22, {3:1, 35:1, 22:1, 218:1}, EdgeRouting); -var ORTHOGONAL, POLYLINE, SPLINES, UNDEFINED_3; -var Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeRouting', 218, Ljava_lang_Enum_2_classLit, values_104, valueOf_98); -function $clinit_EdgeRouting$Map(){ - $clinit_EdgeRouting$Map = emptyMethod; - $MAP_86 = createValueOfMap(($clinit_EdgeRouting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]))); -} - -var $MAP_86; -function $clinit_EdgeType(){ - $clinit_EdgeType = emptyMethod; - NONE_14 = new EdgeType('NONE', 0); - DIRECTED = new EdgeType('DIRECTED', 1); - UNDIRECTED = new EdgeType('UNDIRECTED', 2); - ASSOCIATION = new EdgeType('ASSOCIATION', 3); - GENERALIZATION = new EdgeType('GENERALIZATION', 4); - DEPENDENCY = new EdgeType('DEPENDENCY', 5); -} - -function EdgeType(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_99(name_0){ - $clinit_EdgeType(); - return valueOf(($clinit_EdgeType$Map() , $MAP_87), name_0); -} - -function values_105(){ - $clinit_EdgeType(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]); -} - -defineClass(312, 22, {3:1, 35:1, 22:1, 312:1}, EdgeType); -var ASSOCIATION, DEPENDENCY, DIRECTED, GENERALIZATION, NONE_14, UNDIRECTED; -var Lorg_eclipse_elk_core_options_EdgeType_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeType', 312, Ljava_lang_Enum_2_classLit, values_105, valueOf_99); -function $clinit_EdgeType$Map(){ - $clinit_EdgeType$Map = emptyMethod; - $MAP_87 = createValueOfMap(($clinit_EdgeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]))); -} - -var $MAP_87; -function $clinit_FixedLayouterOptions(){ - $clinit_FixedLayouterOptions = emptyMethod; - PADDING_DEFAULT_7 = new ElkPadding_0(15); - PADDING_7 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_7); - POSITION_3 = POSITION_2; - BEND_POINTS_0 = BEND_POINTS; - NODE_SIZE_CONSTRAINTS_7 = NODE_SIZE_CONSTRAINTS_6; - NODE_SIZE_MINIMUM_6 = NODE_SIZE_MINIMUM_5; - NODE_SIZE_FIXED_GRAPH_SIZE_1 = NODE_SIZE_FIXED_GRAPH_SIZE_0; -} - -function $apply_25(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.fixed'), 'ELK Fixed'), 'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'), new FixedLayouterOptions$FixedFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.padding', PADDING_DEFAULT_7); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.position', $getDefault(POSITION_3)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.bendPoints', $getDefault(BEND_POINTS_0)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_7)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.minimum', $getDefault(NODE_SIZE_MINIMUM_6)); - $addOptionSupport(registry, 'org.eclipse.elk.fixed', 'org.eclipse.elk.nodeSize.fixedGraphSize', $getDefault(NODE_SIZE_FIXED_GRAPH_SIZE_1)); -} - -function FixedLayouterOptions(){ - $clinit_FixedLayouterOptions(); -} - -defineClass(977, 1, $intern_90, FixedLayouterOptions); -_.apply_4 = function apply_169(registry){ - $apply_25(registry); -} -; -var BEND_POINTS_0, NODE_SIZE_CONSTRAINTS_7, NODE_SIZE_FIXED_GRAPH_SIZE_1, NODE_SIZE_MINIMUM_6, PADDING_7, PADDING_DEFAULT_7, POSITION_3; -var Lorg_eclipse_elk_core_options_FixedLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions', 977); -function FixedLayouterOptions$FixedFactory(){ -} - -defineClass(978, 1, {}, FixedLayouterOptions$FixedFactory); -_.create_0 = function create_38(){ - var provider; - return provider = new FixedLayoutProvider , provider; -} -; -_.destroy = function destroy_9(obj){ -} -; -var Lorg_eclipse_elk_core_options_FixedLayouterOptions$FixedFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'FixedLayouterOptions/FixedFactory', 978); -function $clinit_HierarchyHandling(){ - $clinit_HierarchyHandling = emptyMethod; - INHERIT = new HierarchyHandling('INHERIT', 0); - INCLUDE_CHILDREN = new HierarchyHandling('INCLUDE_CHILDREN', 1); - SEPARATE_CHILDREN = new HierarchyHandling('SEPARATE_CHILDREN', 2); -} - -function HierarchyHandling(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_100(name_0){ - $clinit_HierarchyHandling(); - return valueOf(($clinit_HierarchyHandling$Map() , $MAP_88), name_0); -} - -function values_106(){ - $clinit_HierarchyHandling(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]); -} - -defineClass(334, 22, {3:1, 35:1, 22:1, 334:1}, HierarchyHandling); -var INCLUDE_CHILDREN, INHERIT, SEPARATE_CHILDREN; -var Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit = createForEnum('org.eclipse.elk.core.options', 'HierarchyHandling', 334, Ljava_lang_Enum_2_classLit, values_106, valueOf_100); -function $clinit_HierarchyHandling$Map(){ - $clinit_HierarchyHandling$Map = emptyMethod; - $MAP_88 = createValueOfMap(($clinit_HierarchyHandling() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]))); -} - -var $MAP_88; -function $clinit_LabelSide(){ - $clinit_LabelSide = emptyMethod; - UNKNOWN = new LabelSide('UNKNOWN', 0); - ABOVE = new LabelSide('ABOVE', 1); - BELOW = new LabelSide('BELOW', 2); - INLINE = new LabelSide('INLINE', 3); - new Property_0('org.eclipse.elk.labelSide', UNKNOWN); -} - -function $opposite_0(this$static){ - switch (this$static.ordinal) { - case 1: - return BELOW; - case 2: - return ABOVE; - case 3: - return INLINE; - default:return UNKNOWN; - } -} - -function LabelSide(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_101(name_0){ - $clinit_LabelSide(); - return valueOf(($clinit_LabelSide$Map() , $MAP_89), name_0); -} - -function values_107(){ - $clinit_LabelSide(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]); -} - -defineClass(285, 22, {3:1, 35:1, 22:1, 285:1}, LabelSide); -var ABOVE, BELOW, INLINE, UNKNOWN; -var Lorg_eclipse_elk_core_options_LabelSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'LabelSide', 285, Ljava_lang_Enum_2_classLit, values_107, valueOf_101); -function $clinit_LabelSide$Map(){ - $clinit_LabelSide$Map = emptyMethod; - $MAP_89 = createValueOfMap(($clinit_LabelSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 285, 0, [UNKNOWN, ABOVE, BELOW, INLINE]))); -} - -var $MAP_89; -function $clinit_NodeLabelPlacement(){ - $clinit_NodeLabelPlacement = emptyMethod; - H_LEFT_0 = new NodeLabelPlacement('H_LEFT', 0); - H_CENTER_0 = new NodeLabelPlacement('H_CENTER', 1); - H_RIGHT_0 = new NodeLabelPlacement('H_RIGHT', 2); - V_TOP_0 = new NodeLabelPlacement('V_TOP', 3); - V_CENTER_0 = new NodeLabelPlacement('V_CENTER', 4); - V_BOTTOM_0 = new NodeLabelPlacement('V_BOTTOM', 5); - INSIDE = new NodeLabelPlacement('INSIDE', 6); - OUTSIDE = new NodeLabelPlacement('OUTSIDE', 7); - H_PRIORITY = new NodeLabelPlacement('H_PRIORITY', 8); -} - -function NodeLabelPlacement(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function isValid_0(placement){ - $clinit_NodeLabelPlacement(); - var validHorizontal, validInsideOutside, validVertical; - validInsideOutside = of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [OUTSIDE])); - if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { - return false; - } - validHorizontal = of_2(H_LEFT_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_CENTER_0, H_RIGHT_0])); - if ($size_1(intersection_0(validHorizontal, placement)) > 1) { - return false; - } - validVertical = of_2(V_TOP_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [V_CENTER_0, V_BOTTOM_0])); - if ($size_1(intersection_0(validVertical, placement)) > 1) { - return false; - } - return true; -} - -function valueOf_102(name_0){ - $clinit_NodeLabelPlacement(); - return valueOf(($clinit_NodeLabelPlacement$Map() , $MAP_90), name_0); -} - -function values_108(){ - $clinit_NodeLabelPlacement(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]); -} - -defineClass(93, 22, {3:1, 35:1, 22:1, 93:1}, NodeLabelPlacement); -var H_CENTER_0, H_LEFT_0, H_PRIORITY, H_RIGHT_0, INSIDE, OUTSIDE, V_BOTTOM_0, V_CENTER_0, V_TOP_0; -var Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'NodeLabelPlacement', 93, Ljava_lang_Enum_2_classLit, values_108, valueOf_102); -function $clinit_NodeLabelPlacement$Map(){ - $clinit_NodeLabelPlacement$Map = emptyMethod; - $MAP_90 = createValueOfMap(($clinit_NodeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]))); -} - -var $MAP_90; -function $clinit_PortAlignment(){ - $clinit_PortAlignment = emptyMethod; - DISTRIBUTED = new PortAlignment('DISTRIBUTED', 0); - JUSTIFIED = new PortAlignment('JUSTIFIED', 1); - BEGIN_0 = new PortAlignment('BEGIN', 2); - CENTER_6 = new PortAlignment('CENTER', 3); - END_1 = new PortAlignment('END', 4); -} - -function PortAlignment(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_103(name_0){ - $clinit_PortAlignment(); - return valueOf(($clinit_PortAlignment$Map() , $MAP_91), name_0); -} - -function values_109(){ - $clinit_PortAlignment(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]); -} - -defineClass(249, 22, {3:1, 35:1, 22:1, 249:1}, PortAlignment); -var BEGIN_0, CENTER_6, DISTRIBUTED, END_1, JUSTIFIED; -var Lorg_eclipse_elk_core_options_PortAlignment_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortAlignment', 249, Ljava_lang_Enum_2_classLit, values_109, valueOf_103); -function $clinit_PortAlignment$Map(){ - $clinit_PortAlignment$Map = emptyMethod; - $MAP_91 = createValueOfMap(($clinit_PortAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]))); -} - -var $MAP_91; -function $clinit_PortConstraints(){ - $clinit_PortConstraints = emptyMethod; - UNDEFINED_4 = new PortConstraints('UNDEFINED', 0); - FREE = new PortConstraints('FREE', 1); - FIXED_SIDE = new PortConstraints('FIXED_SIDE', 2); - FIXED_ORDER = new PortConstraints('FIXED_ORDER', 3); - FIXED_RATIO = new PortConstraints('FIXED_RATIO', 4); - FIXED_POS = new PortConstraints('FIXED_POS', 5); -} - -function $isOrderFixed(this$static){ - return this$static == FIXED_ORDER || this$static == FIXED_RATIO || this$static == FIXED_POS; -} - -function $isSideFixed(this$static){ - return this$static != FREE && this$static != UNDEFINED_4; -} - -function PortConstraints(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_104(name_0){ - $clinit_PortConstraints(); - return valueOf(($clinit_PortConstraints$Map() , $MAP_92), name_0); -} - -function values_110(){ - $clinit_PortConstraints(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]); -} - -defineClass(98, 22, {3:1, 35:1, 22:1, 98:1}, PortConstraints); -var FIXED_ORDER, FIXED_POS, FIXED_RATIO, FIXED_SIDE, FREE, UNDEFINED_4; -var Lorg_eclipse_elk_core_options_PortConstraints_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortConstraints', 98, Ljava_lang_Enum_2_classLit, values_110, valueOf_104); -function $clinit_PortConstraints$Map(){ - $clinit_PortConstraints$Map = emptyMethod; - $MAP_92 = createValueOfMap(($clinit_PortConstraints() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]))); -} - -var $MAP_92; -function $clinit_PortLabelPlacement(){ - $clinit_PortLabelPlacement = emptyMethod; - OUTSIDE_0 = new PortLabelPlacement('OUTSIDE', 0); - INSIDE_0 = new PortLabelPlacement('INSIDE', 1); - NEXT_TO_PORT_IF_POSSIBLE_0 = new PortLabelPlacement('NEXT_TO_PORT_IF_POSSIBLE', 2); - ALWAYS_SAME_SIDE = new PortLabelPlacement('ALWAYS_SAME_SIDE', 3); - ALWAYS_OTHER_SAME_SIDE = new PortLabelPlacement('ALWAYS_OTHER_SAME_SIDE', 4); - SPACE_EFFICIENT_0 = new PortLabelPlacement('SPACE_EFFICIENT', 5); -} - -function PortLabelPlacement(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function isFixed(placement){ - $clinit_PortLabelPlacement(); - return !placement.contains(INSIDE_0) && !placement.contains(OUTSIDE_0); -} - -function isValid_1(placement){ - $clinit_PortLabelPlacement(); - var validInsideOutside, validPosition; - validInsideOutside = of_2(INSIDE_0, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0])); - if ($size_1(intersection_0(validInsideOutside, placement)) > 1) { - return false; - } - validPosition = of_2(ALWAYS_SAME_SIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0])); - if ($size_1(intersection_0(validPosition, placement)) > 1) { - return false; - } - return true; -} - -function valueOf_105(name_0){ - $clinit_PortLabelPlacement(); - return valueOf(($clinit_PortLabelPlacement$Map() , $MAP_93), name_0); -} - -function values_111(){ - $clinit_PortLabelPlacement(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]); -} - -defineClass(273, 22, {3:1, 35:1, 22:1, 273:1}, PortLabelPlacement); -var ALWAYS_OTHER_SAME_SIDE, ALWAYS_SAME_SIDE, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, OUTSIDE_0, SPACE_EFFICIENT_0; -var Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortLabelPlacement', 273, Ljava_lang_Enum_2_classLit, values_111, valueOf_105); -function $clinit_PortLabelPlacement$Map(){ - $clinit_PortLabelPlacement$Map = emptyMethod; - $MAP_93 = createValueOfMap(($clinit_PortLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 273, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, ALWAYS_OTHER_SAME_SIDE, SPACE_EFFICIENT_0]))); -} - -var $MAP_93; -function $clinit_PortSide(){ - $clinit_PortSide = emptyMethod; - var all; - UNDEFINED_5 = new PortSide('UNDEFINED', 0); - NORTH_3 = new PortSide('NORTH', 1); - EAST_2 = new PortSide('EAST', 2); - SOUTH_2 = new PortSide('SOUTH', 3); - WEST_2 = new PortSide('WEST', 4); - SIDES_NONE = ($clinit_Collections() , new Collections$UnmodifiableSet((all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0)))); - SIDES_NORTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_EAST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_SOUTH = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_WEST = asImmutable(of_2(WEST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); - SIDES_NORTH_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); - SIDES_EAST_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); - SIDES_NORTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); - SIDES_NORTH_EAST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2]))); - SIDES_SOUTH_WEST = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); - SIDES_EAST_SOUTH = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); - SIDES_NORTH_EAST_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, WEST_2]))); - SIDES_EAST_SOUTH_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); - SIDES_NORTH_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2]))); - SIDES_NORTH_EAST_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2]))); - SIDES_NORTH_EAST_SOUTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]))); -} - -function $left(this$static){ - switch (this$static.ordinal) { - case 1: - return WEST_2; - case 2: - return NORTH_3; - case 3: - return EAST_2; - case 4: - return SOUTH_2; - default:return UNDEFINED_5; - } -} - -function $opposed(this$static){ - switch (this$static.ordinal) { - case 1: - return SOUTH_2; - case 2: - return WEST_2; - case 3: - return NORTH_3; - case 4: - return EAST_2; - default:return UNDEFINED_5; - } -} - -function $right(this$static){ - switch (this$static.ordinal) { - case 1: - return EAST_2; - case 2: - return SOUTH_2; - case 3: - return WEST_2; - case 4: - return NORTH_3; - default:return UNDEFINED_5; - } -} - -function PortSide(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function fromDirection(direction){ - $clinit_PortSide(); - switch (direction.ordinal) { - case 4: - return NORTH_3; - case 1: - return EAST_2; - case 3: - return SOUTH_2; - case 2: - return WEST_2; - default:return UNDEFINED_5; - } -} - -function valueOf_106(name_0){ - $clinit_PortSide(); - return valueOf(($clinit_PortSide$Map() , $MAP_94), name_0); -} - -function values_112(){ - $clinit_PortSide(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]); -} - -defineClass(61, 22, {3:1, 35:1, 22:1, 61:1}, PortSide); -var EAST_2, NORTH_3, SIDES_EAST, SIDES_EAST_SOUTH, SIDES_EAST_SOUTH_WEST, SIDES_EAST_WEST, SIDES_NONE, SIDES_NORTH, SIDES_NORTH_EAST, SIDES_NORTH_EAST_SOUTH, SIDES_NORTH_EAST_SOUTH_WEST, SIDES_NORTH_EAST_WEST, SIDES_NORTH_SOUTH, SIDES_NORTH_SOUTH_WEST, SIDES_NORTH_WEST, SIDES_SOUTH, SIDES_SOUTH_WEST, SIDES_WEST, SOUTH_2, UNDEFINED_5, WEST_2; -var Lorg_eclipse_elk_core_options_PortSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'PortSide', 61, Ljava_lang_Enum_2_classLit, values_112, valueOf_106); -function $clinit_PortSide$Map(){ - $clinit_PortSide$Map = emptyMethod; - $MAP_94 = createValueOfMap(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))); -} - -var $MAP_94; -function $clinit_RandomLayouterOptions(){ - $clinit_RandomLayouterOptions = emptyMethod; - PADDING_DEFAULT_8 = new ElkPadding_0(15); - PADDING_8 = new Property_2(($clinit_CoreOptions() , PADDING_6), PADDING_DEFAULT_8); - SPACING_NODE_NODE_7 = new Property_2(SPACING_NODE_NODE_6, 15); - RANDOM_SEED_2 = new Property_2(RANDOM_SEED_1, valueOf_4(0)); - ASPECT_RATIO_6 = new Property_2(ASPECT_RATIO_5, $intern_102); -} - -function $apply_26(registry){ - $register(registry, new LayoutAlgorithmData($providerFactory($description($name_0($id(new LayoutAlgorithmData$Builder, 'org.eclipse.elk.random'), 'ELK Randomizer'), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new RandomLayouterOptions$RandomFactory))); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.padding', PADDING_DEFAULT_8); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.spacing.nodeNode', 15); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.randomSeed', valueOf_4(0)); - $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.aspectRatio', $intern_102); -} - -function RandomLayouterOptions(){ - $clinit_RandomLayouterOptions(); -} - -defineClass(981, 1, $intern_90, RandomLayouterOptions); -_.apply_4 = function apply_170(registry){ - $apply_26(registry); -} -; -var ASPECT_RATIO_6, PADDING_8, PADDING_DEFAULT_8, RANDOM_SEED_2, SPACING_NODE_NODE_7; -var Lorg_eclipse_elk_core_options_RandomLayouterOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions', 981); -function RandomLayouterOptions$RandomFactory(){ -} - -defineClass(982, 1, {}, RandomLayouterOptions$RandomFactory); -_.create_0 = function create_39(){ - var provider; - return provider = new RandomLayoutProvider , provider; -} -; -_.destroy = function destroy_10(obj){ -} -; -var Lorg_eclipse_elk_core_options_RandomLayouterOptions$RandomFactory_2_classLit = createForClass('org.eclipse.elk.core.options', 'RandomLayouterOptions/RandomFactory', 982); -function $clinit_SizeConstraint(){ - $clinit_SizeConstraint = emptyMethod; - PORTS_0 = new SizeConstraint('PORTS', 0); - PORT_LABELS = new SizeConstraint('PORT_LABELS', 1); - NODE_LABELS = new SizeConstraint('NODE_LABELS', 2); - MINIMUM_SIZE = new SizeConstraint('MINIMUM_SIZE', 3); -} - -function SizeConstraint(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_107(name_0){ - $clinit_SizeConstraint(); - return valueOf(($clinit_SizeConstraint$Map() , $MAP_95), name_0); -} - -function values_113(){ - $clinit_SizeConstraint(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]); -} - -defineClass(374, 22, {3:1, 35:1, 22:1, 374:1}, SizeConstraint); -var MINIMUM_SIZE, NODE_LABELS, PORTS_0, PORT_LABELS; -var Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeConstraint', 374, Ljava_lang_Enum_2_classLit, values_113, valueOf_107); -function $clinit_SizeConstraint$Map(){ - $clinit_SizeConstraint$Map = emptyMethod; - $MAP_95 = createValueOfMap(($clinit_SizeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 374, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]))); -} - -var $MAP_95; -function $clinit_SizeOptions(){ - $clinit_SizeOptions = emptyMethod; - DEFAULT_MINIMUM_SIZE = new SizeOptions('DEFAULT_MINIMUM_SIZE', 0); - MINIMUM_SIZE_ACCOUNTS_FOR_PADDING = new SizeOptions('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING', 1); - COMPUTE_PADDING = new SizeOptions('COMPUTE_PADDING', 2); - OUTSIDE_NODE_LABELS_OVERHANG = new SizeOptions('OUTSIDE_NODE_LABELS_OVERHANG', 3); - PORTS_OVERHANG = new SizeOptions('PORTS_OVERHANG', 4); - UNIFORM_PORT_SPACING = new SizeOptions('UNIFORM_PORT_SPACING', 5); - SPACE_EFFICIENT_PORT_LABELS = new SizeOptions('SPACE_EFFICIENT_PORT_LABELS', 6); - FORCE_TABULAR_NODE_LABELS = new SizeOptions('FORCE_TABULAR_NODE_LABELS', 7); - ASYMMETRICAL = new SizeOptions('ASYMMETRICAL', 8); -} - -function SizeOptions(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_108(name_0){ - $clinit_SizeOptions(); - return valueOf(($clinit_SizeOptions$Map() , $MAP_96), name_0); -} - -function values_114(){ - $clinit_SizeOptions(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]); -} - -defineClass(259, 22, {3:1, 35:1, 22:1, 259:1}, SizeOptions); -var ASYMMETRICAL, COMPUTE_PADDING, DEFAULT_MINIMUM_SIZE, FORCE_TABULAR_NODE_LABELS, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, SPACE_EFFICIENT_PORT_LABELS, UNIFORM_PORT_SPACING; -var Lorg_eclipse_elk_core_options_SizeOptions_2_classLit = createForEnum('org.eclipse.elk.core.options', 'SizeOptions', 259, Ljava_lang_Enum_2_classLit, values_114, valueOf_108); -function $clinit_SizeOptions$Map(){ - $clinit_SizeOptions$Map = emptyMethod; - $MAP_96 = createValueOfMap(($clinit_SizeOptions() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 0, [DEFAULT_MINIMUM_SIZE, MINIMUM_SIZE_ACCOUNTS_FOR_PADDING, COMPUTE_PADDING, OUTSIDE_NODE_LABELS_OVERHANG, PORTS_OVERHANG, UNIFORM_PORT_SPACING, SPACE_EFFICIENT_PORT_LABELS, FORCE_TABULAR_NODE_LABELS, ASYMMETRICAL]))); -} - -var $MAP_96; -function $begin(this$static, name_0, thetotalWork){ - if (this$static.closed_0) { - throw toJs(new IllegalStateException_0('The task is already done.')); - } - else if (this$static.taskName != null) { - return false; - } - else { - this$static.taskName = name_0; - this$static.totalWork = thetotalWork; - this$static.recordExecutionTime && (this$static.startTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45))); - return true; - } -} - -function $doSubTask(this$static, maxHierarchyLevels){ - var newMaxHierarchyLevels; - newMaxHierarchyLevels = maxHierarchyLevels > 0?maxHierarchyLevels - 1:maxHierarchyLevels; - return $withExecutionTimeMeasurement($withLogPersistence($withLogging($withMaxHierarchyLevels(new BasicProgressMonitor, newMaxHierarchyLevels), this$static.recordLogs), this$static.persistLogs), this$static.recordExecutionTime); -} - -function $done_0(this$static){ - var endTime; - if (this$static.taskName == null) { - throw toJs(new IllegalStateException_0('The task has not begun yet.')); - } - if (!this$static.closed_0) { - if (this$static.recordExecutionTime) { - endTime = ($clinit_System() , mul_0(fromDouble_0(Date.now()), $intern_45)); - this$static.totalTime = toDouble_0(sub_2(endTime, this$static.startTime)) * 1.0E-9; - } - this$static.completedWork < this$static.totalWork && $internalWorked(this$static, this$static.totalWork - this$static.completedWork); - this$static.closed_0 = true; - } -} - -function $internalWorked(this$static, work){ - if (this$static.totalWork > 0 && this$static.completedWork < this$static.totalWork) { - this$static.completedWork += work; - !!this$static.parentMonitor && this$static.parentMonitor.currentChildWork > 0 && this$static.maxLevels != 0 && $internalWorked(this$static.parentMonitor, work / this$static.totalWork * this$static.parentMonitor.currentChildWork); - } -} - -function $log_2(this$static, object){ - var logMessage; - if (this$static.recordLogs) { - logMessage = object; - $add_3(this$static.logMessages, logMessage); - } -} - -function $logGraph(this$static, object, graphType){ - var loggedGraph; - if (this$static.recordLogs && !!object && !!graphType) { - loggedGraph = new LoggedGraph; - $add_3(this$static.logGraphs, loggedGraph); - } -} - -function $subTask(this$static, work){ - var subMonitor; - if (this$static.closed_0) { - return null; - } - else { - subMonitor = $doSubTask(this$static, this$static.maxLevels); - $add_7(this$static.children, subMonitor); - subMonitor.parentMonitor = this$static; - this$static.currentChildWork = work; - return subMonitor; - } -} - -function $withExecutionTimeMeasurement(this$static, enabled){ - this$static.recordExecutionTime = enabled; - return this$static; -} - -function $withLogPersistence(this$static, enabled){ - this$static.persistLogs = enabled; - return this$static; -} - -function $withLogging(this$static, enabled){ - this$static.recordLogs = enabled; - if (this$static.recordLogs) { - this$static.logMessages = new ArrayList; - this$static.logGraphs = new ArrayList; - } - else { - this$static.logMessages = null; - this$static.logGraphs = null; - } - return this$static; -} - -function $withMaxHierarchyLevels(this$static, levels){ - levels < 0?(this$static.maxLevels = -1):(this$static.maxLevels = levels); - return this$static; -} - -function BasicProgressMonitor(){ - this.children = new LinkedList; -} - -defineClass(370, 1, {1949:1}, BasicProgressMonitor); -_.closed_0 = false; -_.completedWork = 0; -_.currentChildWork = -1; -_.logGraphs = null; -_.logMessages = null; -_.maxLevels = -1; -_.persistLogs = false; -_.recordExecutionTime = false; -_.recordLogs = false; -_.startTime = 0; -_.totalTime = 0; -_.totalWork = 0; -var Lorg_eclipse_elk_core_util_BasicProgressMonitor_2_classLit = createForClass('org.eclipse.elk.core.util', 'BasicProgressMonitor', 370); -function $areaStdDev(boxes, mean){ - var box, box$iterator, stddev, variance; - variance = 0; - for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 33); - variance += $wnd.Math.pow(box.width_0 * box.height - mean, 2); - } - stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); - return stddev; -} - -function $areaStdDev2(boxes, mean){ - var box, box$iterator, stddev, variance; - variance = 0; - for (box$iterator = new ArrayList$1(boxes); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 157); - variance += $wnd.Math.pow($getWidth(box) * $getHeight(box) - mean, 2); - } - stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); - return stddev; -} - -function $mergeAndPlaceDec(groups, objSpacing, minWidth, minHeight, expandNodes){ - var box, boxQueue, boxToBeat, collectedArea, groupSize, innerAspectRatio, innerGroup, maybeGroup, toBePlaced; - $clinit_Collections(); - $sort(groups, new BoxLayoutProvider$lambda$0$Type); - boxQueue = newLinkedList(groups); - toBePlaced = new ArrayList; - maybeGroup = new ArrayList; - boxToBeat = null; - collectedArea = 0; - while (boxQueue.size_0 != 0) { - box = castTo(boxQueue.size_0 == 0?null:(checkCriticalElement(boxQueue.size_0 != 0) , $removeNode_0(boxQueue, boxQueue.header.next_0)), 157); - if (!boxToBeat || $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 < $getWidth(box) * $getHeight(box)) { - boxToBeat = box; - toBePlaced.array[toBePlaced.array.length] = box; - } - else { - collectedArea += $getWidth(box) * $getHeight(box); - maybeGroup.array[maybeGroup.array.length] = box; - if (maybeGroup.array.length > 1 && (collectedArea > $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 || boxQueue.size_0 == 0)) { - innerGroup = new BoxLayoutProvider$Group(maybeGroup); - innerAspectRatio = $getWidth(boxToBeat) / $getHeight(boxToBeat); - groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); - $add_19($reset_5(innerGroup.size_0), groupSize); - boxToBeat = innerGroup; - toBePlaced.array[toBePlaced.array.length] = innerGroup; - collectedArea = 0; - maybeGroup.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - } - } - $addAll_2(toBePlaced, maybeGroup); - return toBePlaced; -} - -function $mergeAndPlaceInc(groups, objSpacing, minWidth, minHeight, expandNodes){ - var commonArea, g, groupIterator, groupSize, innerAspectRatio, merged, toBePlaced; - $clinit_Collections(); - $sort(groups, new BoxLayoutProvider$lambda$2$Type); - groupIterator = new AbstractList$ListIteratorImpl(groups, 0); - toBePlaced = new ArrayList; - commonArea = 0; - while (groupIterator.i < groupIterator.this$01_0.size_1()) { - g = (checkCriticalElement(groupIterator.i < groupIterator.this$01_0.size_1()) , castTo(groupIterator.this$01_0.get_0(groupIterator.last = groupIterator.i++), 157)); - if (toBePlaced.array.length != 0 && $getWidth(g) * $getHeight(g) > commonArea * 2) { - merged = new BoxLayoutProvider$Group(toBePlaced); - innerAspectRatio = $getWidth(g) / $getHeight(g); - groupSize = $placeInnerBoxes(merged, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); - $add_19($reset_5(merged.size_0), groupSize); - toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - commonArea = 0; - toBePlaced.array[toBePlaced.array.length] = merged; - toBePlaced.array[toBePlaced.array.length] = g; - commonArea = $getWidth(merged) * $getHeight(merged) + $getWidth(g) * $getHeight(g); - } - else { - toBePlaced.array[toBePlaced.array.length] = g; - commonArea += $getWidth(g) * $getHeight(g); - } - } - return toBePlaced; -} - -function $mergeAndPlaceMixed(groups, objSpacing, minWidth, minHeight, expandNodes){ - var anIndex, box, cumAreaArray, groupSize, index_0, innerAspectRatio, innerGroup, pq, remain, select, toBePlaced, value_0; - cumAreaArray = initUnidimensionalArray(D_classLit, $intern_65, 25, groups.array.length, 15, 1); - pq = new PriorityQueue(new BoxLayoutProvider$lambda$1$Type); - $addAll_4(pq, groups); - index_0 = 0; - toBePlaced = new ArrayList; - while (pq.heap.array.length != 0) { - box = castTo(pq.heap.array.length == 0?null:$get_11(pq.heap, 0), 157); - if (index_0 > 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[0]) { - anIndex = 0; - while (anIndex < toBePlaced.array.length - 1 && $getWidth(box) * $getHeight(box) / 2 > cumAreaArray[anIndex]) { - ++anIndex; - } - select = new AbstractList$SubList(toBePlaced, 0, anIndex + 1); - innerGroup = new BoxLayoutProvider$Group(select); - innerAspectRatio = $getWidth(box) / $getHeight(box); - groupSize = $placeInnerBoxes(innerGroup, objSpacing, new ElkPadding, minWidth, minHeight, expandNodes, innerAspectRatio); - $add_19($reset_5(innerGroup.size_0), groupSize); - checkCriticalState_0($offer(pq, innerGroup)); - remain = new AbstractList$SubList(toBePlaced, anIndex + 1, toBePlaced.array.length); - $addAll_4(pq, remain); - toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - index_0 = 0; - fill0_0(cumAreaArray, cumAreaArray.length, 0); - } - else { - value_0 = pq.heap.array.length == 0?null:$get_11(pq.heap, 0); - value_0 != null && $removeAtIndex_0(pq, 0); - index_0 > 0 && (cumAreaArray[index_0] = cumAreaArray[index_0 - 1]); - cumAreaArray[index_0] += $getWidth(box) * $getHeight(box); - ++index_0; - toBePlaced.array[toBePlaced.array.length] = box; - } - } - return toBePlaced; -} - -function $placeBoxes(sortedBoxes, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ - var box, box$iterator, boxIter, broadestRow, height, highestBox, maxRowWidth, mean, newHeight, newWidth, nextRowIndex, oldHeight, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; - maxRowWidth = 0; - totalArea = 0; - for (box$iterator = new ArrayList$1(sortedBoxes); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 33); - resizeNode_0(box); - maxRowWidth = $wnd.Math.max(maxRowWidth, box.width_0); - totalArea += box.width_0 * box.height; - } - mean = totalArea / sortedBoxes.array.length; - stddev = $areaStdDev(sortedBoxes, mean); - totalArea += sortedBoxes.array.length * stddev; - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; - xpos = padding.left; - ypos = padding.top_0; - highestBox = 0; - broadestRow = padding.left + padding.right; - rowIndices = new LinkedList; - $add_7(rowIndices, valueOf_4(0)); - rowHeights = new LinkedList; - boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); - while (boxIter.i < boxIter.this$01_0.size_1()) { - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); - width_0 = box.width_0; - height = box.height; - if (xpos + width_0 > maxRowWidth) { - if (expandNodes) { - $addLast_0(rowHeights, highestBox); - $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); - } - xpos = padding.left; - ypos += highestBox + minSpacing; - highestBox = 0; - broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); - } - $setX_2(box, xpos); - $setY_3(box, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); - highestBox = $wnd.Math.max(highestBox, height); - xpos += width_0 + minSpacing; - } - broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); - totalHeight = ypos + highestBox + padding.bottom; - if (totalHeight < minTotalHeight) { - highestBox += minTotalHeight - totalHeight; - totalHeight = minTotalHeight; - } - if (expandNodes) { - xpos = padding.left; - boxIter = new AbstractList$ListIteratorImpl(sortedBoxes, 0); - $addLast_0(rowIndices, valueOf_4(sortedBoxes.array.length)); - rowIndexIter = $listIterator_2(rowIndices, 0); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - $addLast_0(rowHeights, highestBox); - rowHeightIter = $listIterator_2(rowHeights, 0); - rowHeight = 0; - while (boxIter.i < boxIter.this$01_0.size_1()) { - if (boxIter.i == nextRowIndex) { - xpos = padding.left; - rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - } - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); - oldHeight = box.height; - $setHeight_0(box, rowHeight); - newHeight = rowHeight; - if (boxIter.i == nextRowIndex) { - newWidth = broadestRow - xpos - padding.right; - oldWidth = box.width_0; - $setWidth_0(box, newWidth); - translate_1(box, new KVector_1(newWidth, newHeight), new KVector_1(oldWidth, oldHeight)); - } - xpos += box.width_0 + minSpacing; - } - } - return new KVector_1(broadestRow, totalHeight); -} - -function $placeBoxesGrouping(parentNode, objSpacing, padding, expandNodes){ - var aspectRatio, finalGroup, g, groups, lastArg, lastArg0, lastArg1, minSize, mode, node, node$iterator, parentSize, toBePlaced; - minSize = new KVector_2(castTo($getProperty_0(parentNode, ($clinit_BoxLayouterOptions() , NODE_SIZE_MINIMUM_4)), 8)); - minSize.x_0 = $wnd.Math.max(minSize.x_0 - padding.left - padding.right, 0); - minSize.y_0 = $wnd.Math.max(minSize.y_0 - padding.top_0 - padding.bottom, 0); - aspectRatio = castToDouble($getProperty_0(parentNode, ASPECT_RATIO_4)); - (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); - groups = new ArrayList; - for (node$iterator = new AbstractEList$EIterator((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - g = new BoxLayoutProvider$Group_0(node); - groups.array[groups.array.length] = g; - } - mode = castTo($getProperty_0(parentNode, BOX_PACKING_MODE), 311); - switch (mode.ordinal) { - case 3: - toBePlaced = $mergeAndPlaceInc(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg0 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg0)); - break; - case 1: - toBePlaced = $mergeAndPlaceDec(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg1 = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg1)); - break; - default:toBePlaced = $mergeAndPlaceMixed(groups, objSpacing, minSize.x_0, minSize.y_0, (lastArg = expandNodes , checkCriticalNotNull(aspectRatio) , aspectRatio , lastArg)); - } - finalGroup = new BoxLayoutProvider$Group(toBePlaced); - parentSize = $placeInnerBoxes(finalGroup, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); - resizeNode_1(parentNode, parentSize.x_0, parentSize.y_0, false, true); -} - -function $placeInnerBoxes(group, minSpacing, padding, minTotalWidth, minTotalHeight, expandNodes, aspectRatio){ - var bottoms, box, box$iterator, boxIter, broadestRow, height, highestBox, last, maxRowWidth, mean, newWidth, nextRowIndex, oldWidth, rowHeight, rowHeightIter, rowHeights, rowIndexIter, rowIndices, stddev, totalArea, totalHeight, width_0, xpos, ypos; - maxRowWidth = 0; - totalArea = 0; - for (box$iterator = new ArrayList$1(group.groups); box$iterator.i < box$iterator.this$01.array.length;) { - box = castTo($next_7(box$iterator), 157); - !!box.node && resizeNode_0(box.node); - maxRowWidth = $wnd.Math.max(maxRowWidth, $getWidth(box)); - totalArea += $getWidth(box) * $getHeight(box); - } - mean = totalArea / group.groups.array.length; - stddev = $areaStdDev2(group.groups, mean); - totalArea += group.groups.array.length * stddev; - maxRowWidth = $wnd.Math.max(maxRowWidth, $wnd.Math.sqrt(totalArea * aspectRatio)) + padding.left; - xpos = padding.left; - ypos = padding.top_0; - highestBox = 0; - broadestRow = padding.left + padding.right; - rowIndices = new LinkedList; - $add_7(rowIndices, valueOf_4(0)); - rowHeights = new LinkedList; - boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); - last = null; - bottoms = new ArrayList; - while (boxIter.i < boxIter.this$01_0.size_1()) { - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); - width_0 = $getWidth(box); - height = $getHeight(box); - if (xpos + width_0 > maxRowWidth) { - if (expandNodes) { - $addLast_0(rowHeights, highestBox); - $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); - $add_3(group.right, last); - bottoms.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - xpos = padding.left; - ypos += highestBox + minSpacing; - highestBox = 0; - broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); - } - bottoms.array[bottoms.array.length] = box; - $translate_1(box, xpos, ypos); - broadestRow = $wnd.Math.max(broadestRow, xpos + width_0 + padding.right); - highestBox = $wnd.Math.max(highestBox, height); - xpos += width_0 + minSpacing; - last = box; - } - $addAll_2(group.bottom, bottoms); - $add_3(group.right, castTo($get_11(bottoms, bottoms.array.length - 1), 157)); - broadestRow = $wnd.Math.max(broadestRow, minTotalWidth); - totalHeight = ypos + highestBox + padding.bottom; - if (totalHeight < minTotalHeight) { - highestBox += minTotalHeight - totalHeight; - totalHeight = minTotalHeight; - } - if (expandNodes) { - xpos = padding.left; - boxIter = new AbstractList$ListIteratorImpl(group.groups, 0); - $addLast_0(rowIndices, valueOf_4(group.groups.array.length)); - rowIndexIter = $listIterator_2(rowIndices, 0); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - $addLast_0(rowHeights, highestBox); - rowHeightIter = $listIterator_2(rowHeights, 0); - rowHeight = 0; - while (boxIter.i < boxIter.this$01_0.size_1()) { - if (boxIter.i == nextRowIndex) { - xpos = padding.left; - rowHeight = $doubleValue(castToDouble($next_10(rowHeightIter))); - nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; - } - box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); - $setHeight(box, rowHeight); - if (boxIter.i == nextRowIndex) { - newWidth = broadestRow - xpos - padding.right; - oldWidth = $getWidth(box); - $setWidth(box, newWidth); - $translateInnerNodes(box, (newWidth - oldWidth) / 2, 0); - } - xpos += $getWidth(box) + minSpacing; - } - } - return new KVector_1(broadestRow, totalHeight); -} - -function BoxLayoutProvider(){ -} - -function lambda$0_36(g1_0, g2_1){ - return -compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); -} - -function lambda$1_20(g1_0, g2_1){ - return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); -} - -function lambda$2_10(g1_0, g2_1){ - return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); -} - -defineClass(972, 209, $intern_96, BoxLayoutProvider); -_.layout = function layout_8(layoutNode, progressMonitor){ - var expandNodes, interactive, objSpacing, padding, sortedBoxes, sortedBoxes_0, minSize, aspectRatio, parentSize; - $begin(progressMonitor, 'Box layout', 2); - objSpacing = $floatValue(castToDouble($getProperty_0(layoutNode, ($clinit_BoxLayouterOptions() , SPACING_NODE_NODE_5)))); - padding = castTo($getProperty_0(layoutNode, PADDING_5), 116); - expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutNode, EXPAND_NODES_0))); - interactive = $booleanValue(castToBoolean($getProperty_0(layoutNode, INTERACTIVE_6))); - switch (castTo($getProperty_0(layoutNode, BOX_PACKING_MODE), 311).ordinal) { - case 0: - sortedBoxes = (sortedBoxes_0 = new ArrayList_1((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)) , $clinit_Collections() , $sort(sortedBoxes_0, new BoxLayoutProvider$1(interactive)) , sortedBoxes_0); - minSize = effectiveMinSizeConstraintFor(layoutNode); - aspectRatio = castToDouble($getProperty_0(layoutNode, ASPECT_RATIO_4)); - (aspectRatio == null || (checkCriticalNotNull(aspectRatio) , aspectRatio) <= 0) && (aspectRatio = 1.3); - parentSize = $placeBoxes(sortedBoxes, objSpacing, padding, minSize.x_0, minSize.y_0, expandNodes, (checkCriticalNotNull(aspectRatio) , aspectRatio)); - resizeNode_1(layoutNode, parentSize.x_0, parentSize.y_0, false, true); - break; - default:$placeBoxesGrouping(layoutNode, objSpacing, padding, expandNodes); - } - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider', 972); -function $compare_24(this$static, child1, child2){ - var c, prio1, prio2, size1, size2; - prio1 = castTo($getProperty_0(child1, ($clinit_BoxLayouterOptions() , PRIORITY_2)), 19); - !prio1 && (prio1 = valueOf_4(0)); - prio2 = castTo($getProperty_0(child2, PRIORITY_2), 19); - !prio2 && (prio2 = valueOf_4(0)); - if (prio1.value_0 > prio2.value_0) { - return -1; - } - else if (prio1.value_0 < prio2.value_0) { - return 1; - } - else { - if (this$static.val$interactive2) { - c = compare_4(child1.y_0, child2.y_0); - if (c != 0) { - return c; - } - c = compare_4(child1.x_0, child2.x_0); - if (c != 0) { - return c; - } - } - size1 = child1.width_0 * child1.height; - size2 = child2.width_0 * child2.height; - return compare_4(size1, size2); - } -} - -function BoxLayoutProvider$1(val$interactive){ - this.val$interactive2 = val$interactive; -} - -defineClass(973, 1, $intern_88, BoxLayoutProvider$1); -_.compare_1 = function compare_82(child1, child2){ - return $compare_24(this, castTo(child1, 33), castTo(child2, 33)); -} -; -_.equals_0 = function equals_174(other){ - return this === other; -} -; -_.reversed = function reversed_74(){ - return new Comparators$ReversedComparator(this); -} -; -_.val$interactive2 = false; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/1', 973); -function $getHeight(this$static){ - if (this$static.node) { - return this$static.node.height; - } - return this$static.size_0.y_0; -} - -function $getWidth(this$static){ - if (this$static.node) { - return this$static.node.width_0; - } - return this$static.size_0.x_0; -} - -function $setHeight(this$static, h){ - var delta, g, g$iterator; - if (this$static.node) { - $setHeight_0(this$static.node, h); - } - else { - delta = h - $getHeight(this$static); - for (g$iterator = new ArrayList$1(this$static.bottom); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $setHeight(g, $getHeight(g) + delta); - } - } -} - -function $setWidth(this$static, w){ - var delta, g, g$iterator; - if (this$static.node) { - $setWidth_0(this$static.node, w); - } - else { - delta = w - $getWidth(this$static); - for (g$iterator = new ArrayList$1(this$static.right); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $setWidth(g, $getWidth(g) + delta); - } - } -} - -function $translate_1(this$static, x_0, y_0){ - var g, g$iterator; - if (this$static.node) { - $setX_2(this$static.node, this$static.node.x_0 + x_0); - $setY_3(this$static.node, this$static.node.y_0 + y_0); - } - else { - for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $translate_1(g, x_0, y_0); - } - } -} - -function $translateInnerNodes(this$static, x_0, y_0){ - var g, g$iterator; - if (this$static.node) { - translate_0(this$static.node, x_0, y_0); - } - else { - for (g$iterator = new ArrayList$1(this$static.groups); g$iterator.i < g$iterator.this$01.array.length;) { - g = castTo($next_7(g$iterator), 157); - $translateInnerNodes(g, x_0, y_0); - } - } -} - -function BoxLayoutProvider$Group(groups){ - this.groups = (checkNotNull(groups) , new ArrayList_1(groups)); - this.bottom = new ArrayList; - this.right = new ArrayList; - this.size_0 = new KVector; -} - -function BoxLayoutProvider$Group_0(node){ - this.node = node; - $setX_2(node, 0); - $setY_3(node, 0); -} - -defineClass(157, 1, {157:1}, BoxLayoutProvider$Group, BoxLayoutProvider$Group_0); -_.toString_0 = function toString_117(){ - return this.node?$toString_23(this.node):$toString_2(this.groups); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$Group_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/Group', 157); -function $clinit_BoxLayoutProvider$PackingMode(){ - $clinit_BoxLayoutProvider$PackingMode = emptyMethod; - SIMPLE_0 = new BoxLayoutProvider$PackingMode('SIMPLE', 0); - GROUP_DEC = new BoxLayoutProvider$PackingMode('GROUP_DEC', 1); - GROUP_MIXED = new BoxLayoutProvider$PackingMode('GROUP_MIXED', 2); - GROUP_INC = new BoxLayoutProvider$PackingMode('GROUP_INC', 3); -} - -function BoxLayoutProvider$PackingMode(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_109(name_0){ - $clinit_BoxLayoutProvider$PackingMode(); - return valueOf(($clinit_BoxLayoutProvider$PackingMode$Map() , $MAP_97), name_0); -} - -function values_115(){ - $clinit_BoxLayoutProvider$PackingMode(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]); -} - -defineClass(311, 22, {3:1, 35:1, 22:1, 311:1}, BoxLayoutProvider$PackingMode); -var GROUP_DEC, GROUP_INC, GROUP_MIXED, SIMPLE_0; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit = createForEnum('org.eclipse.elk.core.util', 'BoxLayoutProvider/PackingMode', 311, Ljava_lang_Enum_2_classLit, values_115, valueOf_109); -function $clinit_BoxLayoutProvider$PackingMode$Map(){ - $clinit_BoxLayoutProvider$PackingMode$Map = emptyMethod; - $MAP_97 = createValueOfMap(($clinit_BoxLayoutProvider$PackingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]))); -} - -var $MAP_97; -function BoxLayoutProvider$lambda$0$Type(){ -} - -defineClass(974, 1, $intern_88, BoxLayoutProvider$lambda$0$Type); -_.compare_1 = function compare_83(arg0, arg1){ - return lambda$0_36(castTo(arg0, 157), castTo(arg1, 157)); -} -; -_.equals_0 = function equals_175(other){ - return this === other; -} -; -_.reversed = function reversed_75(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$0$Type', 974); -function BoxLayoutProvider$lambda$1$Type(){ -} - -defineClass(975, 1, $intern_88, BoxLayoutProvider$lambda$1$Type); -_.compare_1 = function compare_84(arg0, arg1){ - return lambda$1_20(castTo(arg0, 157), castTo(arg1, 157)); -} -; -_.equals_0 = function equals_176(other){ - return this === other; -} -; -_.reversed = function reversed_76(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$1$Type', 975); -function BoxLayoutProvider$lambda$2$Type(){ -} - -defineClass(976, 1, $intern_88, BoxLayoutProvider$lambda$2$Type); -_.compare_1 = function compare_85(arg0, arg1){ - return lambda$2_10(castTo(arg0, 157), castTo(arg1, 157)); -} -; -_.equals_0 = function equals_177(other){ - return this === other; -} -; -_.reversed = function reversed_77(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_BoxLayoutProvider$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider/lambda$2$Type', 976); -function ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type(){ -} - -defineClass(1365, 1, {831:1}, ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type); -_.accept_4 = function accept_144(arg0, arg1){ - return $clinit_ElkSpacings$AbstractSpacingsBuilder() , !instanceOf(arg1, 160) || $accept_5(($clinit_LayoutConfigurator() , OPTION_TARGET_FILTER , castTo(arg0, 160)), arg1); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type', 1365); -function ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1366, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type); -_.accept = function accept_145(arg0){ - $lambda$1_1(this.$$outer_0, castTo(arg0, 146)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type', 1366); -function ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type(){ -} - -defineClass(1367, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type); -_.accept = function accept_146(arg0){ - castTo(arg0, 94); - $clinit_ElkSpacings$AbstractSpacingsBuilder(); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type', 1367); -function ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(1371, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type); -_.accept = function accept_147(arg0){ - $lambda$3_0(this.$$outer_0, castTo(arg0, 94)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type', 1371); -function ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type($$outer_0, element_1){ - this.$$outer_0 = $$outer_0; - this.element_1 = element_1; -} - -defineClass(1369, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type); -_.test_0 = function test_109(arg0){ - return $lambda$4_1(this.$$outer_0, this.element_1, castTo(arg0, 146)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type', 1369); -function ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_0, p_1){ - this.element_0 = element_0; - this.p_1 = p_1; -} - -defineClass(1368, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type); -_.test_0 = function test_110(arg0){ - return lambda$5_3(this.element_0, this.p_1, castTo(arg0, 831)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type', 1368); -function ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type($$outer_0, element_1){ - this.$$outer_0 = $$outer_0; - this.element_1 = element_1; -} - -defineClass(1370, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type); -_.accept = function accept_148(arg0){ - $lambda$6(this.$$outer_0, this.element_1, castTo(arg0, 146)); -} -; -var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type', 1370); -function applyConfiguredNodeScaling(node){ - var anchor, portLabels, scalingFactor, shape_0, shape$iterator; - scalingFactor = $doubleValue(castToDouble($getProperty_0(node, ($clinit_CoreOptions() , SCALE_FACTOR)))); - if (scalingFactor == 1) { - return; - } - $setDimensions_0(node, scalingFactor * node.width_0, scalingFactor * node.height); - portLabels = concat_0(transform_1((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), new ElkUtil$lambda$0$Type)); - for (shape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels), (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports), portLabels]))); $hasNext_1(shape$iterator);) { - shape_0 = castTo($next_0(shape$iterator), 470); - shape_0.setLocation(scalingFactor * shape_0.getX(), scalingFactor * shape_0.getY()); - shape_0.setDimensions(scalingFactor * shape_0.getWidth(), scalingFactor * shape_0.getHeight()); - anchor = castTo(shape_0.getProperty(PORT_ANCHOR_0), 8); - if (anchor) { - anchor.x_0 *= scalingFactor; - anchor.y_0 *= scalingFactor; - } - } -} - -function applyVectorChain(vectorChain, section){ - var bendpoint, elkBendPoint, firstPoint, lastPoint, newPointIter, nextPoint, oldPointIter; - if (vectorChain.size_0 < 2) { - throw toJs(new IllegalArgumentException_0('The vector chain must contain at least a source and a target point.')); - } - firstPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.header.next_0.value_0, 8)); - $setStartLocation(section, firstPoint.x_0, firstPoint.y_0); - oldPointIter = new AbstractEList$EListIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); - newPointIter = $listIterator_2(vectorChain, 1); - while (newPointIter.currentIndex < vectorChain.size_0 - 1) { - nextPoint = castTo($next_10(newPointIter), 8); - if (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { - bendpoint = castTo($doNext(oldPointIter), 469); - } - else { - bendpoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); - $doAdd_0(oldPointIter, bendpoint); - } - $set_10(bendpoint, nextPoint.x_0, nextPoint.y_0); - } - while (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { - $doNext(oldPointIter); - $remove_36(oldPointIter); - } - lastPoint = (checkCriticalElement(vectorChain.size_0 != 0) , castTo(vectorChain.tail.prev.value_0, 8)); - $setEndLocation(section, lastPoint.x_0, lastPoint.y_0); -} - -function applyVisitors(graph, visitors){ - var allElements, graphElement, i, nextElement; - allElements = new ElkGraphUtil$PropertiesSkippingTreeIterator(graph); - while (allElements.data_0 == null && !allElements.includeRoot?$hasAnyChildren(allElements):allElements.data_0 == null || allElements.size_0 != 0 && castTo(allElements.data_0[allElements.size_0 - 1], 47).hasNext_0()) { - nextElement = castTo($next_14(allElements), 56); - if (instanceOf(nextElement, 160)) { - graphElement = castTo(nextElement, 160); - for (i = 0; i < visitors.length; i++) { - visitors[i].visit(graphElement); - } - } - } -} - -function calcPortOffset_0(port, side){ - var node; - if (!$getParent_3(port)) { - throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); - } - node = $getParent_3(port); - switch (side.ordinal) { - case 1: - return -(port.y_0 + port.height); - case 2: - return port.x_0 - node.width_0; - case 3: - return port.y_0 - node.height; - case 4: - return -(port.x_0 + port.width_0); - } - return 0; -} - -function calcPortSide_0(port, direction){ - var heightPercent, node, nodeHeight, nodeWidth, widthPercent, xpos, ypos; - if (!$getParent_3(port)) { - throw toJs(new IllegalStateException_0('port must have a parent node to calculate the port side')); - } - node = $getParent_3(port); - nodeWidth = node.width_0; - nodeHeight = node.height; - if (nodeWidth <= 0 && nodeHeight <= 0) { - return $clinit_PortSide() , UNDEFINED_5; - } - xpos = port.x_0; - ypos = port.y_0; - switch (direction.ordinal) { - case 2: - case 1: - if (xpos < 0) { - return $clinit_PortSide() , WEST_2; - } - else if (xpos + port.width_0 > nodeWidth) { - return $clinit_PortSide() , EAST_2; - } - - break; - case 4: - case 3: - if (ypos < 0) { - return $clinit_PortSide() , NORTH_3; - } - else if (ypos + port.height > nodeHeight) { - return $clinit_PortSide() , SOUTH_2; - } - - } - widthPercent = (xpos + port.width_0 / 2) / nodeWidth; - heightPercent = (ypos + port.height / 2) / nodeHeight; - return widthPercent + heightPercent <= 1 && widthPercent - heightPercent <= 0?($clinit_PortSide() , WEST_2):widthPercent + heightPercent >= 1 && widthPercent - heightPercent >= 0?($clinit_PortSide() , EAST_2):heightPercent < 0.5?($clinit_PortSide() , NORTH_3):($clinit_PortSide() , SOUTH_2); -} - -function computeInsidePart(labelPosition, labelSize, portSize, portBorderOffset, portSide){ - var insidePart; - insidePart = 0; - switch (portSide.ordinal) { - case 1: - insidePart = $wnd.Math.max(0, labelSize.y_0 + labelPosition.y_0 - (portSize.y_0 + portBorderOffset)); - break; - case 3: - insidePart = $wnd.Math.max(0, -labelPosition.y_0 - portBorderOffset); - break; - case 2: - insidePart = $wnd.Math.max(0, -labelPosition.x_0 - portBorderOffset); - break; - case 4: - insidePart = $wnd.Math.max(0, labelSize.x_0 + labelPosition.x_0 - (portSize.x_0 + portBorderOffset)); - } - return insidePart; -} - -function computeInsidePart_0(port, portBorderOffset){ - var labelBounds; - labelBounds = getLabelsBounds(port); - return computeInsidePart(new KVector_1(labelBounds.x_0, labelBounds.y_0), new KVector_1(labelBounds.width_0, labelBounds.height), port.getSize(), portBorderOffset, port.getSide()); -} - -function createVectorChain(edgeSection){ - var bendPoint, bendPoint$iterator, chain; - chain = new KVectorChain; - $add_7(chain, new KVector_1(edgeSection.startX, edgeSection.startY)); - for (bendPoint$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { - bendPoint = castTo($doNext(bendPoint$iterator), 469); - $add_7(chain, new KVector_1(bendPoint.x_0, bendPoint.y_0)); - } - $add_7(chain, new KVector_1(edgeSection.endX, edgeSection.endY)); - return chain; -} - -function determineJunctionPoints(edge){ - var junctionPoints; - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { - throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); - } - junctionPoints = new KVectorChain; - !!connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)), false)); - !!connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)) && $addAll(junctionPoints, determineJunctionPoints_0(edge, connectableShapeToPort(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)), true)); - return junctionPoints; -} - -function determineJunctionPoints_0(edge, port, reverse){ - var allConnectedSections, allSectIter, dx2, dx3, dy2, dy3, i, junctionPoints, offset, offsetMap, otherEdge, otherEdge$iterator, otherPoints, otherSection, p1, p2, p3, pointsMap, section, sectionPoints; - section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - junctionPoints = new KVectorChain; - pointsMap = new HashMap; - sectionPoints = getPoints(section); - $put_9(pointsMap.hashCodeMap, section, sectionPoints); - offsetMap = new HashMap; - allConnectedSections = new LinkedList; - for (otherEdge$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges), (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)]))); $hasNext_1(otherEdge$iterator);) { - otherEdge = castTo($next_0(otherEdge$iterator), 79); - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 != 1) { - throw toJs(new IllegalArgumentException_0('The edge needs to have exactly one edge section. Found: ' + (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0)); - } - if (otherEdge != edge) { - otherSection = castTo($get_20((!otherEdge.sections && (otherEdge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, otherEdge, 6, 6)) , otherEdge.sections), 0), 202); - $addNode_0(allConnectedSections, otherSection, allConnectedSections.tail.prev, allConnectedSections.tail); - otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); - if (!otherPoints) { - otherPoints = getPoints(otherSection); - $put_9(pointsMap.hashCodeMap, otherSection, otherPoints); - } - offset = reverse?$sub_0(new KVector_2(castTo($get_11(sectionPoints, sectionPoints.array.length - 1), 8)), castTo($get_11(otherPoints, otherPoints.array.length - 1), 8)):$sub_0(new KVector_2((checkCriticalElementIndex(0, sectionPoints.array.length) , castTo(sectionPoints.array[0], 8))), (checkCriticalElementIndex(0, otherPoints.array.length) , castTo(otherPoints.array[0], 8))); - $put_9(offsetMap.hashCodeMap, otherSection, offset); - } - } - if (allConnectedSections.size_0 != 0) { - p1 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1:0), 8); - for (i = 1; i < sectionPoints.array.length; i++) { - p2 = castTo($get_11(sectionPoints, reverse?sectionPoints.array.length - 1 - i:i), 8); - allSectIter = $listIterator_2(allConnectedSections, 0); - while (allSectIter.currentNode != allSectIter.this$01.tail) { - otherSection = castTo($next_10(allSectIter), 202); - otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); - if (otherPoints.array.length <= i) { - $remove_24(allSectIter); - } - else { - p3 = $add_19(new KVector_2(castTo($get_11(otherPoints, reverse?otherPoints.array.length - 1 - i:i), 8)), castTo(getEntryValueOrNull($getEntry_0(offsetMap.hashCodeMap, otherSection)), 8)); - if (p2.x_0 != p3.x_0 || p2.y_0 != p3.y_0) { - dx2 = p2.x_0 - p1.x_0; - dy2 = p2.y_0 - p1.y_0; - dx3 = p3.x_0 - p1.x_0; - dy3 = p3.y_0 - p1.y_0; - dx3 * dy2 == dy3 * dx2 && (dx2 == 0 || isNaN(dx2)?dx2:dx2 < 0?-1:1) == (dx3 == 0 || isNaN(dx3)?dx3:dx3 < 0?-1:1) && (dy2 == 0 || isNaN(dy2)?dy2:dy2 < 0?-1:1) == (dy3 == 0 || isNaN(dy3)?dy3:dy3 < 0?-1:1)?($wnd.Math.abs(dx2) < $wnd.Math.abs(dx3) || $wnd.Math.abs(dy2) < $wnd.Math.abs(dy3)) && ($addNode_0(junctionPoints, p2, junctionPoints.tail.prev, junctionPoints.tail) , true):i > 1 && ($addNode_0(junctionPoints, p1, junctionPoints.tail.prev, junctionPoints.tail) , true); - $remove_24(allSectIter); - } - } - } - p1 = p2; - } - } - return junctionPoints; -} - -function effectiveMinSizeConstraintFor(node){ - var minSize, sizeConstraint, sizeOptions; - sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); - if (sizeConstraint.contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - sizeOptions = castTo($getProperty_0(node, NODE_SIZE_OPTIONS_6), 21); - minSize = new KVector_2(castTo($getProperty_0(node, NODE_SIZE_MINIMUM_5), 8)); - if (sizeOptions.contains(($clinit_SizeOptions() , DEFAULT_MINIMUM_SIZE))) { - minSize.x_0 <= 0 && (minSize.x_0 = 20); - minSize.y_0 <= 0 && (minSize.y_0 = 20); - } - return minSize; - } - else { - return new KVector; - } -} - -function getLabelsBounds(port){ - var bounds, currentLabelBounds, label_0, label$iterator; - bounds = null; - for (label$iterator = new ArrayList$1(port.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { - label_0 = castTo($next_7(label$iterator), 181); - currentLabelBounds = new ElkRectangle_0(label_0.getPosition().x_0, label_0.getPosition().y_0, label_0.getSize().x_0, label_0.getSize().y_0); - !bounds?(bounds = currentLabelBounds):$union(bounds, currentLabelBounds); - } - !bounds && (bounds = new ElkRectangle); - return bounds; -} - -function getPoints(section){ - var i, n, p1, p2, p3, points; - n = (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints).size_0 + 2; - points = new ArrayList_0(n); - $add_3(points, new KVector_1(section.startX, section.startY)); - $forEach_3(new StreamImpl(null, (!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , new Spliterators$IteratorSpliterator(section.bendPoints, 16))), new ElkUtil$lambda$4$Type(points)); - $add_3(points, new KVector_1(section.endX, section.endY)); - i = 1; - while (i < points.array.length - 1) { - p1 = (checkCriticalElementIndex(i - 1, points.array.length) , castTo(points.array[i - 1], 8)); - p2 = (checkCriticalElementIndex(i, points.array.length) , castTo(points.array[i], 8)); - p3 = (checkCriticalElementIndex(i + 1, points.array.length) , castTo(points.array[i + 1], 8)); - p1.x_0 == p2.x_0 && p2.x_0 == p3.x_0 || p1.y_0 == p2.y_0 && p2.y_0 == p3.y_0?$remove_11(points, i):++i; - } - return points; -} - -function lambda$1_21(xoffset_0, yoffset_2, edge_2){ - var junctionPoints; - $forEach_3(new StreamImpl(null, (!edge_2.sections && (edge_2.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge_2, 6, 6)) , new Spliterators$IteratorSpliterator(edge_2.sections, 16))), new ElkUtil$lambda$2$Type(xoffset_0, yoffset_2)); - $forEach_3(new StreamImpl(null, (!edge_2.labels && (edge_2.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge_2, 1, 7)) , new Spliterators$IteratorSpliterator(edge_2.labels, 16))), new ElkUtil$lambda$3$Type(xoffset_0, yoffset_2)); - junctionPoints = castTo($getProperty_0(edge_2, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74); - !!junctionPoints && $offset_1(junctionPoints, xoffset_0, yoffset_2); -} - -function lambda$2_11(xoffset_0, yoffset_2, s_2){ - translate(s_2, xoffset_0, yoffset_2); -} - -function lambda$3_7(xoffset_0, yoffset_2, label_2){ - $setLocation_1(label_2, label_2.x_0 + xoffset_0, label_2.y_0 + yoffset_2); -} - -function lambda$4_8(points_0, bendPoint_1){ - return $add_3(points_0, new KVector_1(bendPoint_1.x_0, bendPoint_1.y_0)); -} - -function printElementPath(element, builder){ - var className, edge, identifier, label_0, label$iterator, sourceIter, targetIter, text_0; - if (instanceOf(element.eContainer_0(), 160)) { - printElementPath(castTo(element.eContainer_0(), 160), builder); - builder.string += ' > '; - } - else { - builder.string += 'Root '; - } - className = element.eClass_0().name_0; - $equals_5(className.substr(0, 3), 'Elk')?$append_11(builder, className.substr(3)):(builder.string += '' + className , builder); - identifier = element.getIdentifier(); - if (identifier) { - $append_11((builder.string += ' ' , builder), identifier); - return; - } - if (instanceOf(element, 354)) { - text_0 = castTo(element, 137).text_0; - if (text_0) { - $append_11((builder.string += ' ' , builder), text_0); - return; - } - } - for (label$iterator = new AbstractEList$EIterator(element.getLabels_0()); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - text_0 = label_0.text_0; - if (text_0) { - $append_11((builder.string += ' ' , builder), text_0); - return; - } - } - if (instanceOf(element, 352)) { - edge = castTo(element, 79); - !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); - if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0)) { - builder.string += ' ('; - sourceIter = new AbstractEList$EListIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); - while (sourceIter.cursor != sourceIter.this$01_2.size_1()) { - sourceIter.cursor > 0 && (builder.string += ', ' , builder); - printElementPath(castTo($doNext(sourceIter), 160), builder); - } - builder.string += ' -> '; - targetIter = new AbstractEList$EListIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); - while (targetIter.cursor != targetIter.this$01_2.size_1()) { - targetIter.cursor > 0 && (builder.string += ', ' , builder); - printElementPath(castTo($doNext(targetIter), 160), builder); - } - builder.string += ')'; - } - } -} - -function resizeNode_0(node){ - var direction, minEast, minNorth, minSouth, minWest, newHeight, newWidth, port, port$iterator, portConstraints, portSide, sizeConstraint; - sizeConstraint = castTo($getProperty_0(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); - if (sizeConstraint.isEmpty()) { - return null; - } - newWidth = 0; - newHeight = 0; - if (sizeConstraint.contains(($clinit_SizeConstraint() , PORTS_0))) { - portConstraints = castTo($getProperty_0(node, PORT_CONSTRAINTS_1), 98); - minNorth = 2; - minEast = 2; - minSouth = 2; - minWest = 2; - direction = !$getParent_2(node)?castTo($getProperty_0(node, DIRECTION_0), 103):castTo($getProperty_0($getParent_2(node), DIRECTION_0), 103); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); - if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { - portSide = calcPortSide_0(port, direction); - $setProperty_1(port, PORT_SIDE_0, portSide); - } - if (portConstraints == ($clinit_PortConstraints() , FIXED_POS)) { - switch (portSide.ordinal) { - case 1: - minNorth = $wnd.Math.max(minNorth, port.x_0 + port.width_0); - break; - case 2: - minEast = $wnd.Math.max(minEast, port.y_0 + port.height); - break; - case 3: - minSouth = $wnd.Math.max(minSouth, port.x_0 + port.width_0); - break; - case 4: - minWest = $wnd.Math.max(minWest, port.y_0 + port.height); - } - } - else { - switch (portSide.ordinal) { - case 1: - minNorth += port.width_0 + 2; - break; - case 2: - minEast += port.height + 2; - break; - case 3: - minSouth += port.width_0 + 2; - break; - case 4: - minWest += port.height + 2; - } - } - } - newWidth = $wnd.Math.max(minNorth, minSouth); - newHeight = $wnd.Math.max(minEast, minWest); - } - return resizeNode_1(node, newWidth, newHeight, true, true); -} - -function resizeNode_1(node, newWidth, newHeight, movePorts, moveLabels){ - var all, direction, fixedPorts, heightDiff, heightPercent, heightRatio, label_0, label$iterator, midx, midy, newSize, oldSize, port, port$iterator, portSide, widthDiff, widthPercent, widthRatio; - oldSize = new KVector_1(node.width_0, node.height); - newSize = effectiveMinSizeConstraintFor(node); - newSize.x_0 = $wnd.Math.max(newSize.x_0, newWidth); - newSize.y_0 = $wnd.Math.max(newSize.y_0, newHeight); - widthRatio = newSize.x_0 / oldSize.x_0; - heightRatio = newSize.y_0 / oldSize.y_0; - widthDiff = newSize.x_0 - oldSize.x_0; - heightDiff = newSize.y_0 - oldSize.y_0; - if (movePorts) { - direction = !$getParent_2(node)?castTo($getProperty_0(node, ($clinit_CoreOptions() , DIRECTION_0)), 103):castTo($getProperty_0($getParent_2(node), ($clinit_CoreOptions() , DIRECTION_0)), 103); - fixedPorts = maskUndefined($getProperty_0(node, ($clinit_CoreOptions() , PORT_CONSTRAINTS_1))) === maskUndefined(($clinit_PortConstraints() , FIXED_POS)); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); - if (portSide == ($clinit_PortSide() , UNDEFINED_5)) { - portSide = calcPortSide_0(port, direction); - $setProperty_1(port, PORT_SIDE_0, portSide); - } - switch (portSide.ordinal) { - case 1: - fixedPorts || $setX_2(port, port.x_0 * widthRatio); - break; - case 2: - $setX_2(port, port.x_0 + widthDiff); - fixedPorts || $setY_3(port, port.y_0 * heightRatio); - break; - case 3: - fixedPorts || $setX_2(port, port.x_0 * widthRatio); - $setY_3(port, port.y_0 + heightDiff); - break; - case 4: - fixedPorts || $setY_3(port, port.y_0 * heightRatio); - } - } - } - $setDimensions_0(node, newSize.x_0, newSize.y_0); - if (moveLabels) { - for (label$iterator = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - midx = label_0.x_0 + label_0.width_0 / 2; - midy = label_0.y_0 + label_0.height / 2; - widthPercent = midx / oldSize.x_0; - heightPercent = midy / oldSize.y_0; - if (widthPercent + heightPercent >= 1) { - if (widthPercent - heightPercent > 0 && midy >= 0) { - $setX_2(label_0, label_0.x_0 + widthDiff); - $setY_3(label_0, label_0.y_0 + heightDiff * heightPercent); - } - else if (widthPercent - heightPercent < 0 && midx >= 0) { - $setX_2(label_0, label_0.x_0 + widthDiff * widthPercent); - $setY_3(label_0, label_0.y_0 + heightDiff); - } - } - } - } - $setProperty_1(node, ($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6), ($clinit_SizeConstraint() , all = castTo($getEnumConstants(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit), 9) , new EnumSet$EnumSetImpl(all, castTo(createFrom(all, all.length), 9), 0))); - return new KVector_1(widthRatio, heightRatio); -} - -function toAbsolute(point, parent_0){ - var node; - node = parent_0; - while (node) { - $add_18(point, node.x_0, node.y_0); - node = $getParent_2(node); - } - return point; -} - -function toRelative(point, parent_0){ - var node; - node = parent_0; - while (node) { - $add_18(point, -node.x_0, -node.y_0); - node = $getParent_2(node); - } - return point; -} - -function translate(section, xoffset, yoffset){ - var bendPoint, bendPoint$iterator; - $setStartLocation(section, section.startX + xoffset, section.startY + yoffset); - for (bendPoint$iterator = new AbstractEList$EIterator((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); bendPoint$iterator.cursor != bendPoint$iterator.this$01_2.size_1();) { - bendPoint = castTo($doNext(bendPoint$iterator), 469); - $set_10(bendPoint, bendPoint.x_0 + xoffset, bendPoint.y_0 + yoffset); - } - $setEndLocation(section, section.endX + xoffset, section.endY + yoffset); -} - -function translate_0(parent_0, xoffset, yoffset){ - var child, child$iterator; - for (child$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { - child = castTo($doNext(child$iterator), 33); - $setLocation_1(child, child.x_0 + xoffset, child.y_0 + yoffset); - } - $forEach_0((!parent_0.containedEdges && (parent_0.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, parent_0, 12, 3)) , parent_0.containedEdges), new ElkUtil$lambda$1$Type(xoffset, yoffset)); -} - -function translate_1(parent_0, newSize, oldSize){ - var contentAlignment, xTranslate, yTranslate; - contentAlignment = castTo($getProperty_0(parent_0, ($clinit_CoreOptions() , CONTENT_ALIGNMENT_2)), 21); - xTranslate = 0; - yTranslate = 0; - newSize.x_0 > oldSize.x_0 && (contentAlignment.contains(($clinit_ContentAlignment() , H_CENTER))?(xTranslate = (newSize.x_0 - oldSize.x_0) / 2):contentAlignment.contains(H_RIGHT) && (xTranslate = newSize.x_0 - oldSize.x_0)); - newSize.y_0 > oldSize.y_0 && (contentAlignment.contains(($clinit_ContentAlignment() , V_CENTER))?(yTranslate = (newSize.y_0 - oldSize.y_0) / 2):contentAlignment.contains(V_BOTTOM) && (yTranslate = newSize.y_0 - oldSize.y_0)); - translate_0(parent_0, xTranslate, yTranslate); -} - -function $apply_27(arg0){ - return $getLabels_1(castTo(arg0, 118)); -} - -function ElkUtil$lambda$0$Type(){ -} - -defineClass(935, 1, {}, ElkUtil$lambda$0$Type); -_.apply_0 = function apply_171(arg0){ - return $apply_27(arg0); -} -; -_.equals_0 = function equals_178(other){ - return this === other; -} -; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$0$Type', 935); -function ElkUtil$lambda$1$Type(xoffset_0, yoffset_2){ - this.xoffset_0 = xoffset_0; - this.yoffset_2 = yoffset_2; -} - -defineClass(936, 1, $intern_19, ElkUtil$lambda$1$Type); -_.accept = function accept_149(arg0){ - lambda$1_21(this.xoffset_0, this.yoffset_2, castTo(arg0, 79)); -} -; -_.xoffset_0 = 0; -_.yoffset_2 = 0; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$1$Type', 936); -function ElkUtil$lambda$2$Type(xoffset_0, yoffset_2){ - this.xoffset_0 = xoffset_0; - this.yoffset_2 = yoffset_2; -} - -defineClass(937, 1, $intern_19, ElkUtil$lambda$2$Type); -_.accept = function accept_150(arg0){ - lambda$2_11(this.xoffset_0, this.yoffset_2, castTo(arg0, 202)); -} -; -_.xoffset_0 = 0; -_.yoffset_2 = 0; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$2$Type', 937); -function ElkUtil$lambda$3$Type(xoffset_0, yoffset_2){ - this.xoffset_0 = xoffset_0; - this.yoffset_2 = yoffset_2; -} - -defineClass(938, 1, $intern_19, ElkUtil$lambda$3$Type); -_.accept = function accept_151(arg0){ - lambda$3_7(this.xoffset_0, this.yoffset_2, castTo(arg0, 137)); -} -; -_.xoffset_0 = 0; -_.yoffset_2 = 0; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$3$Type', 938); -function ElkUtil$lambda$4$Type(points_0){ - this.points_0 = points_0; -} - -defineClass(939, 1, $intern_19, ElkUtil$lambda$4$Type); -_.accept = function accept_152(arg0){ - lambda$4_8(this.points_0, castTo(arg0, 469)); -} -; -var Lorg_eclipse_elk_core_util_ElkUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$4$Type', 939); -function $compareTo_20(this$static, x_0){ - return this$static.exclusiveLowerBound < doubleValue__D__devirtual$(x_0)?-1:1; -} - -function ExclusiveBounds$ExclusiveLowerBound(){ - this.exclusiveLowerBound = 0; -} - -defineClass(342, 1, {35:1, 342:1}, ExclusiveBounds$ExclusiveLowerBound); -_.compareTo_0 = function compareTo_21(x_0){ - return $compareTo_20(this, castTo(x_0, 236)); -} -; -_.equals_0 = function equals_179(obj){ - var other; - if (instanceOf(obj, 342)) { - other = castTo(obj, 342); - return this.exclusiveLowerBound == other.exclusiveLowerBound; - } - return false; -} -; -_.hashCode_1 = function hashCode_69(){ - return round_int(this.exclusiveLowerBound); -} -; -_.toString_0 = function toString_118(){ - return this.exclusiveLowerBound + ' (exclusive)'; -} -; -_.exclusiveLowerBound = 0; -var Lorg_eclipse_elk_core_util_ExclusiveBounds$ExclusiveLowerBound_2_classLit = createForClass('org.eclipse.elk.core.util', 'ExclusiveBounds/ExclusiveLowerBound', 342); -function $processEdge(edge){ - var bendPoints, edgeSection, edgeSection$iterator, elkEdgeSection, label_0, label$iterator, maxv, point, point$iterator, pos, sameHierarchy, sections, sourceParent, targetParent; - sourceParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); - targetParent = $getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))); - sameHierarchy = sourceParent == targetParent; - maxv = new KVector; - bendPoints = castTo($getProperty_0(edge, ($clinit_FixedLayouterOptions() , BEND_POINTS_0)), 74); - if (!!bendPoints && bendPoints.size_0 >= 2) { - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { - edgeSection = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); - $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection); - } - else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { - sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); - while (sections.cursor != sections.this$01_2.size_1()) { - $remove_36(sections); - } - } - applyVectorChain(bendPoints, castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202)); - } - if (sameHierarchy) { - for (edgeSection$iterator = new AbstractEList$EIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); edgeSection$iterator.cursor != edgeSection$iterator.this$01_2.size_1();) { - edgeSection = castTo($doNext(edgeSection$iterator), 202); - for (point$iterator = new AbstractEList$EIterator((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); point$iterator.cursor != point$iterator.this$01_2.size_1();) { - point = castTo($doNext(point$iterator), 469); - maxv.x_0 = $wnd.Math.max(maxv.x_0, point.x_0); - maxv.y_0 = $wnd.Math.max(maxv.y_0, point.y_0); - } - } - } - for (label$iterator = new AbstractEList$EIterator((!edge.labels && (edge.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, edge, 1, 7)) , edge.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - pos = castTo($getProperty_0(label_0, POSITION_3), 8); - !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); - if (sameHierarchy) { - maxv.x_0 = $wnd.Math.max(maxv.x_0, label_0.x_0 + label_0.width_0); - maxv.y_0 = $wnd.Math.max(maxv.y_0, label_0.y_0 + label_0.height); - } - } - return maxv; -} - -function FixedLayoutProvider(){ -} - -defineClass(1138, 209, $intern_96, FixedLayoutProvider); -_.layout = function layout_9(layoutNode, progressMonitor){ - var edge, edge$iterator, edge$iterator0, edgeRouting, junctionPoints, label_0, label$iterator, label$iterator0, maxv, maxx, maxy, minSize, newHeight, newWidth, node, node$iterator, node$iterator0, padding, port, port$iterator, portx, porty, pos; - $begin(progressMonitor, 'Fixed Layout', 1); - edgeRouting = castTo($getProperty_0(layoutNode, ($clinit_CoreOptions() , EDGE_ROUTING_0)), 218); - maxx = 0; - maxy = 0; - for (node$iterator0 = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { - node = castTo($doNext(node$iterator0), 33); - pos = castTo($getProperty_0(node, ($clinit_FixedLayouterOptions() , POSITION_3)), 8); - if (pos) { - $setLocation_1(node, pos.x_0, pos.y_0); - if (castTo($getProperty_0(node, NODE_SIZE_CONSTRAINTS_7), 174).contains(($clinit_SizeConstraint() , MINIMUM_SIZE))) { - minSize = castTo($getProperty_0(node, NODE_SIZE_MINIMUM_6), 8); - minSize.x_0 > 0 && minSize.y_0 > 0 && resizeNode_1(node, minSize.x_0, minSize.y_0, true, true); - } - } - maxx = $wnd.Math.max(maxx, node.x_0 + node.width_0); - maxy = $wnd.Math.max(maxy, node.y_0 + node.height); - for (label$iterator0 = new AbstractEList$EIterator((!node.labels && (node.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, node, 1, 7)) , node.labels)); label$iterator0.cursor != label$iterator0.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator0), 137); - pos = castTo($getProperty_0(label_0, POSITION_3), 8); - !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); - maxx = $wnd.Math.max(maxx, node.x_0 + label_0.x_0 + label_0.width_0); - maxy = $wnd.Math.max(maxy, node.y_0 + label_0.y_0 + label_0.height); - } - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - pos = castTo($getProperty_0(port, POSITION_3), 8); - !!pos && $setLocation_1(port, pos.x_0, pos.y_0); - portx = node.x_0 + port.x_0; - porty = node.y_0 + port.y_0; - maxx = $wnd.Math.max(maxx, portx + port.width_0); - maxy = $wnd.Math.max(maxy, porty + port.height); - for (label$iterator = new AbstractEList$EIterator((!port.labels && (port.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, port, 1, 7)) , port.labels)); label$iterator.cursor != label$iterator.this$01_2.size_1();) { - label_0 = castTo($doNext(label$iterator), 137); - pos = castTo($getProperty_0(label_0, POSITION_3), 8); - !!pos && $setLocation_1(label_0, pos.x_0, pos.y_0); - maxx = $wnd.Math.max(maxx, portx + label_0.x_0 + label_0.width_0); - maxy = $wnd.Math.max(maxy, porty + label_0.y_0 + label_0.height); - } - } - for (edge$iterator0 = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator0);) { - edge = castTo($next_0(edge$iterator0), 79); - maxv = $processEdge(edge); - maxx = $wnd.Math.max(maxx, maxv.x_0); - maxy = $wnd.Math.max(maxy, maxv.y_0); - } - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - if ($getParent_2(getSourceNode(edge)) != layoutNode) { - maxv = $processEdge(edge); - maxx = $wnd.Math.max(maxx, maxv.x_0); - maxy = $wnd.Math.max(maxy, maxv.y_0); - } - } - } - if (edgeRouting == ($clinit_EdgeRouting() , ORTHOGONAL)) { - for (node$iterator = new AbstractEList$EIterator((!layoutNode.children && (layoutNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutNode, 10, 11)) , layoutNode.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - junctionPoints = determineJunctionPoints(edge); - junctionPoints.size_0 == 0?$setProperty_1(edge, JUNCTION_POINTS_0, null):$setProperty_1(edge, JUNCTION_POINTS_0, junctionPoints); - } - } - } - if (!$booleanValue(castToBoolean($getProperty_0(layoutNode, ($clinit_FixedLayouterOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_1))))) { - padding = castTo($getProperty_0(layoutNode, PADDING_7), 116); - newWidth = maxx + padding.left + padding.right; - newHeight = maxy + padding.top_0 + padding.bottom; - resizeNode_1(layoutNode, newWidth, newHeight, true, true); - } - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_core_util_FixedLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'FixedLayoutProvider', 1138); -function IndividualSpacings(){ -} - -function IndividualSpacings_0(other){ - (!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).putAll(!other.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):other.propertyMap); -} - -function getIndividualOrInherited_0(node, property){ - var individualSpacings, result; - result = null; - if (node.hasProperty(($clinit_CoreOptions() , SPACING_INDIVIDUAL_0))) { - individualSpacings = castTo(node.getProperty(SPACING_INDIVIDUAL_0), 94); - individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); - } - result == null && !!node.getGraph() && (result = node.getGraph().getProperty(property)); - result == null && (result = $getDefault(property)); - return result; -} - -function lambda$0_37(entry_0){ - return castTo(entry_0.getKey(), 146).getId() + ':' + toString_40(entry_0.getValue()); -} - -defineClass(373, 134, {3:1, 414:1, 373:1, 94:1, 134:1}, IndividualSpacings, IndividualSpacings_0); -_.parse_0 = function parse_3(string){ - var e, option, optionData, optionString, optionString$array, optionString$index, optionString$max, options, value_0; - if (!string) { - return; - } - try { - options = $split_0(string, ';,;'); - for (optionString$array = options , optionString$index = 0 , optionString$max = optionString$array.length; optionString$index < optionString$max; ++optionString$index) { - optionString = optionString$array[optionString$index]; - option = $split_0(optionString, '\\:'); - optionData = $getOptionDataBySuffix(getInstance(), option[0]); - if (!optionData) { - throw toJs(new IllegalArgumentException_0('Invalid option id: ' + option[0])); - } - value_0 = $parseValue(optionData, option[1]); - if (value_0 == null) { - throw toJs(new IllegalArgumentException_0('Invalid option value: ' + option[1])); - } - value_0 == null?(!this.propertyMap && (this.propertyMap = new HashMap) , $remove_6(this.propertyMap, optionData)):(!this.propertyMap && (this.propertyMap = new HashMap) , $put_6(this.propertyMap, optionData, value_0)); - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - e = $e0; - throw toJs(new IllegalArgumentException_1(e)); - } - else - throw toJs($e0); - } -} -; -_.toString_0 = function toString_119(){ - var serialized; - serialized = castToString($collect_1($map_0((!this.propertyMap?($clinit_Collections() , $clinit_Collections() , EMPTY_MAP):this.propertyMap).entrySet_0().stream(), new IndividualSpacings$lambda$0$Type), of_3(new Collectors$lambda$15$Type, new Collectors$9methodref$add$Type, new Collectors$10methodref$merge$Type, new Collectors$11methodref$toString$Type, stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Collector$Characteristics_2_classLit, 1), $intern_36, 132, 0, [])))); - return serialized; -} -; -var Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings', 373); -function IndividualSpacings$lambda$0$Type(){ -} - -defineClass(971, 1, {}, IndividualSpacings$lambda$0$Type); -_.apply_0 = function apply_172(arg0){ - return lambda$0_37(castTo(arg0, 42)); -} -; -var Lorg_eclipse_elk_core_util_IndividualSpacings$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings/lambda$0$Type', 971); -function $fetch(this$static){ - if (this$static.instances.size_0 == 0) { - return this$static.factory.create_0(); - } - return $removeFirst_0(this$static.instances); -} - -function $release(this$static, obj){ - this$static.limit < 0 || this$static.instances.size_0 < this$static.limit?$addLast_0(this$static.instances, obj):this$static.factory.destroy(obj); -} - -function InstancePool(thefactory){ - this.instances = new LinkedList; - this.factory = thefactory; - this.limit = -1; -} - -defineClass(709, 1, {}, InstancePool); -_.limit = 0; -var Lorg_eclipse_elk_core_util_InstancePool_2_classLit = createForClass('org.eclipse.elk.core.util', 'InstancePool', 709); -function LoggedGraph(){ -} - -defineClass(1275, 1, {}, LoggedGraph); -var Lorg_eclipse_elk_core_util_LoggedGraph_2_classLit = createForClass('org.eclipse.elk.core.util', 'LoggedGraph', 1275); -function $clinit_LoggedGraph$Type(){ - $clinit_LoggedGraph$Type = emptyMethod; - ELK = new LoggedGraph$Type('ELK', 0); - JSON_0 = new LoggedGraph$Type('JSON', 1); - DOT = new LoggedGraph$Type('DOT', 2); - SVG = new LoggedGraph$Type('SVG', 3); -} - -function LoggedGraph$Type(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_110(name_0){ - $clinit_LoggedGraph$Type(); - return valueOf(($clinit_LoggedGraph$Type$Map() , $MAP_98), name_0); -} - -function values_116(){ - $clinit_LoggedGraph$Type(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]); -} - -defineClass(396, 22, {3:1, 35:1, 22:1, 396:1}, LoggedGraph$Type); -var DOT, ELK, JSON_0, SVG; -var Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit = createForEnum('org.eclipse.elk.core.util', 'LoggedGraph/Type', 396, Ljava_lang_Enum_2_classLit, values_116, valueOf_110); -function $clinit_LoggedGraph$Type$Map(){ - $clinit_LoggedGraph$Type$Map = emptyMethod; - $MAP_98 = createValueOfMap(($clinit_LoggedGraph$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]))); -} - -var $MAP_98; -function Pair(thefirst, thesecond){ - this.first = thefirst; - this.second = thesecond; -} - -defineClass(46, 1, {20:1, 46:1}, Pair); -_.forEach_0 = function forEach_36(action){ - $forEach_0(this, action); -} -; -_.equals_0 = function equals_180(obj){ - var firstEqual, other, secondEqual; - if (instanceOf(obj, 46)) { - other = castTo(obj, 46); - firstEqual = this.first == null?other.first == null:equals_Ljava_lang_Object__Z__devirtual$(this.first, other.first); - secondEqual = this.second == null?other.second == null:equals_Ljava_lang_Object__Z__devirtual$(this.second, other.second); - return firstEqual && secondEqual; - } - else { - return false; - } -} -; -_.hashCode_1 = function hashCode_70(){ - var first1, first2, firstCode, second1, second2, secondCode; - firstCode = this.first == null?0:hashCode__I__devirtual$(this.first); - first1 = firstCode & $intern_46; - first2 = firstCode & -65536; - secondCode = this.second == null?0:hashCode__I__devirtual$(this.second); - second1 = secondCode & $intern_46; - second2 = secondCode & -65536; - return first1 ^ second2 >> 16 & $intern_46 | first2 ^ second1 << 16; -} -; -_.iterator_0 = function iterator_78(){ - return new Pair$1(this); -} -; -_.toString_0 = function toString_120(){ - return this.first == null && this.second == null?'pair(null,null)':this.first == null?'pair(null,' + toString_40(this.second) + ')':this.second == null?'pair(' + toString_40(this.first) + ',null)':'pair(' + toString_40(this.first) + ',' + toString_40(this.second) + ')'; -} -; -var Lorg_eclipse_elk_core_util_Pair_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair', 46); -function Pair$1(this$0){ - this.this$01 = this$0; -} - -defineClass(983, 1, $intern_6, Pair$1); -_.forEachRemaining = function forEachRemaining_51(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_40(){ - return !this.visitedSecond && (!this.visitedFirst && this.this$01.first != null || this.this$01.second != null); -} -; -_.next_1 = function next_41(){ - if (!this.visitedSecond && !this.visitedFirst && this.this$01.first != null) { - this.visitedFirst = true; - return this.this$01.first; - } - else if (!this.visitedSecond && this.this$01.second != null) { - this.visitedSecond = true; - return this.this$01.second; - } - throw toJs(new NoSuchElementException); -} -; -_.remove = function remove_96(){ - this.visitedSecond && this.this$01.second != null?(this.this$01.second = null):this.visitedFirst && this.this$01.first != null && (this.this$01.first = null); - throw toJs(new IllegalStateException); -} -; -_.visitedFirst = false; -_.visitedSecond = false; -var Lorg_eclipse_elk_core_util_Pair$1_2_classLit = createForClass('org.eclipse.elk.core.util', 'Pair/1', 983); -function Quadruple(a, b, c, d){ - this.first = a; - this.second = b; - this.third = c; - this.fourth = d; -} - -defineClass(448, 1, {448:1}, Quadruple); -_.equals_0 = function equals_181(obj){ - return equals_57(this.first, castTo(obj, 448).first) && equals_57(this.second, castTo(obj, 448).second) && equals_57(this.third, castTo(obj, 448).third) && equals_57(this.fourth, castTo(obj, 448).fourth); -} -; -_.hashCode_1 = function hashCode_71(){ - return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [this.first, this.second, this.third, this.fourth])); -} -; -_.toString_0 = function toString_121(){ - return '(' + this.first + ', ' + this.second + ', ' + this.third + ', ' + this.fourth + ')'; -} -; -var Lorg_eclipse_elk_core_util_Quadruple_2_classLit = createForClass('org.eclipse.elk.core.util', 'Quadruple', 448); -function $randomize(edge, random, drawWidth, drawHeight){ - var bendPoint, bendsNum, edgeSection, edgeSection0, elkBendPoint, elkEdgeSection, i, maxRand, randx, randy, sections, sourceHeight, sourcePX, sourcePY, sourcePort, sourceShape, sourceWidth, sourceX, sourceY, targetHeight, targetPX, targetPY, targetPort, targetShape, targetWidth, targetX, targetY, totalDist, x_0, xdiff, xincr, y_0, ydiff, yincr; - sourceShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); - sourceX = sourceShape.getX(); - sourceY = sourceShape.getY(); - sourceWidth = sourceShape.getWidth() / 2; - sourceHeight = sourceShape.getHeight() / 2; - if (instanceOf(sourceShape, 186)) { - sourcePort = castTo(sourceShape, 118); - sourceX += $getParent_3(sourcePort).x_0; - sourceX += $getParent_3(sourcePort).x_0; - } - sourceX += sourceWidth; - sourceY += sourceHeight; - targetShape = castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82); - targetX = targetShape.getX(); - targetY = targetShape.getY(); - targetWidth = targetShape.getWidth() / 2; - targetHeight = targetShape.getHeight() / 2; - if (instanceOf(targetShape, 186)) { - targetPort = castTo(targetShape, 118); - targetX += $getParent_3(targetPort).x_0; - targetX += $getParent_3(targetPort).x_0; - } - targetX += targetWidth; - targetY += targetHeight; - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { - edgeSection0 = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); - $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), edgeSection0); - } - else if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 > 1) { - sections = new AbstractEList$EListIterator((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); - while (sections.cursor != sections.this$01_2.size_1()) { - $remove_36(sections); - } - } - edgeSection = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - sourcePX = targetX; - targetX > sourceX + sourceWidth?(sourcePX = sourceX + sourceWidth):targetX < sourceX - sourceWidth && (sourcePX = sourceX - sourceWidth); - sourcePY = targetY; - targetY > sourceY + sourceHeight?(sourcePY = sourceY + sourceHeight):targetY < sourceY - sourceHeight && (sourcePY = sourceY - sourceHeight); - sourcePX > sourceX - sourceWidth && sourcePX < sourceX + sourceWidth && sourcePY > sourceY - sourceHeight && sourcePY < sourceY + sourceHeight && (sourcePX = sourceX + sourceWidth); - $setStartX(edgeSection, sourcePX); - $setStartY(edgeSection, sourcePY); - targetPX = sourceX; - sourceX > targetX + targetWidth?(targetPX = targetX + targetWidth):sourceX < targetX - targetWidth && (targetPX = targetX - targetWidth); - targetPY = sourceY; - sourceY > targetY + targetHeight?(targetPY = targetY + targetHeight):sourceY < targetY - targetHeight && (targetPY = targetY - targetHeight); - targetPX > targetX - targetWidth && targetPX < targetX + targetWidth && targetPY > targetY - targetHeight && targetPY < targetY + targetHeight && (targetPY = targetY + targetHeight); - $setEndX(edgeSection, targetPX); - $setEndY(edgeSection, targetPY); - $clear_13((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints)); - bendsNum = $nextInt(random, 5); - sourceShape == targetShape && ++bendsNum; - xdiff = targetPX - sourcePX; - ydiff = targetPY - sourcePY; - totalDist = $wnd.Math.sqrt(xdiff * xdiff + ydiff * ydiff); - maxRand = totalDist * 0.20000000298023224; - xincr = xdiff / (bendsNum + 1); - yincr = ydiff / (bendsNum + 1); - x_0 = sourcePX; - y_0 = sourcePY; - for (i = 0; i < bendsNum; i++) { - x_0 += xincr; - y_0 += yincr; - randx = x_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; - randx < 0?(randx = 1):randx > drawWidth && (randx = drawWidth - 1); - randy = y_0 + $nextInternal(random, 24) * $intern_81 * maxRand - maxRand / 2; - randy < 0?(randy = 1):randy > drawHeight && (randy = drawHeight - 1); - bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); - $setX_1(bendPoint, randx); - $setY_2(bendPoint, randy); - $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); - } -} - -function $randomize_0(parent_0, random, aspectRatio, spacing, padding){ - var areaSqrt, drawArea, drawHeight, drawWidth, edge, edge$iterator, height, m, maxHeight, maxWidth, n, node, node$iterator, node$iterator0, nodesArea, source, source$iterator, totalHeight, totalWidth, width_0, x_0, y_0; - nodesArea = 0; - maxWidth = 0; - maxHeight = 0; - m = 1; - for (node$iterator0 = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator0.cursor != node$iterator0.this$01_2.size_1();) { - node = castTo($doNext(node$iterator0), 33); - m += size_24(new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))); - width_0 = node.width_0; - maxWidth = $wnd.Math.max(maxWidth, width_0); - height = node.height; - maxHeight = $wnd.Math.max(maxHeight, height); - nodesArea += width_0 * height; - } - n = (!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children).size_0; - drawArea = nodesArea + 2 * spacing * spacing * m * n; - areaSqrt = $wnd.Math.sqrt(drawArea); - drawWidth = $wnd.Math.max(areaSqrt * aspectRatio, maxWidth); - drawHeight = $wnd.Math.max(areaSqrt / aspectRatio, maxHeight); - for (node$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); node$iterator.cursor != node$iterator.this$01_2.size_1();) { - node = castTo($doNext(node$iterator), 33); - x_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawWidth - node.width_0); - y_0 = padding.left + ($nextInternal(random, 26) * $intern_78 + $nextInternal(random, 27) * $intern_79) * (drawHeight - node.height); - $setX_2(node, x_0); - $setY_3(node, y_0); - } - totalWidth = drawWidth + (padding.left + padding.right); - totalHeight = drawHeight + (padding.top_0 + padding.bottom); - for (source$iterator = new AbstractEList$EIterator((!parent_0.children && (parent_0.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parent_0, 10, 11)) , parent_0.children)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { - source = castTo($doNext(source$iterator), 33); - for (edge$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(source).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(edge$iterator);) { - edge = castTo($next_0(edge$iterator), 79); - $isHierarchical(edge) || $randomize(edge, random, totalWidth, totalHeight); - } - } - totalWidth += padding.left + padding.right; - totalHeight += padding.top_0 + padding.bottom; - resizeNode_1(parent_0, totalWidth, totalHeight, false, true); -} - -function RandomLayoutProvider(){ -} - -defineClass(1126, 209, $intern_96, RandomLayoutProvider); -_.layout = function layout_10(parentNode, progressMonitor){ - var aspectRatio, padding, random, randomSeed, spacing; - $begin(progressMonitor, 'Random Layout', 1); - if ((!parentNode.children && (parentNode.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, parentNode, 10, 11)) , parentNode.children).size_0 == 0) { - $done_0(progressMonitor); - return; - } - randomSeed = castTo($getProperty_0(parentNode, ($clinit_RandomLayouterOptions() , RANDOM_SEED_2)), 19); - !!randomSeed && randomSeed.value_0 != 0?(random = new Random_0(randomSeed.value_0)):(random = new Random); - aspectRatio = $floatValue(castToDouble($getProperty_0(parentNode, ASPECT_RATIO_6))); - spacing = $floatValue(castToDouble($getProperty_0(parentNode, SPACING_NODE_NODE_7))); - padding = castTo($getProperty_0(parentNode, PADDING_8), 116); - $randomize_0(parentNode, random, aspectRatio, spacing, padding); - $done_0(progressMonitor); -} -; -var Lorg_eclipse_elk_core_util_RandomLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'RandomLayoutProvider', 1126); -function $clinit_ElkGraphAdapters(){ - $clinit_ElkGraphAdapters = emptyMethod; - DEFAULT_PORTLIST_SORTER_0 = new ElkGraphAdapters$PortComparator; -} - -var DEFAULT_PORTLIST_SORTER_0; -function $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter = emptyMethod; - OFFSET_PROXY = new Property_2(($clinit_CoreOptions() , PORT_BORDER_OFFSET_0), 0); -} - -defineClass(553, 1, {}); -_.getPosition = function getPosition_1(){ - return new KVector_1(this.element.x_0, this.element.y_0); -} -; -_.getProperty = function getProperty_2(prop){ - if ($equals_10(prop, ($clinit_CoreOptions() , PORT_BORDER_OFFSET_0))) { - return $getProperty_0(this.element, OFFSET_PROXY); - } - return $getProperty_0(this.element, prop); -} -; -_.getSize = function getSize_1(){ - return new KVector_1(this.element.width_0, this.element.height); -} -; -_.getVolatileId = function getVolatileId_1(){ - return this.id_0; -} -; -_.hasProperty = function hasProperty_2(prop){ - return $hasProperty_0(this.element, prop); -} -; -_.setPosition = function setPosition_1(pos){ - $setX_2(this.element, pos.x_0); - $setY_3(this.element, pos.y_0); -} -; -_.setSize = function setSize_1(size_0){ - $setWidth_0(this.element, size_0.x_0); - $setHeight_0(this.element, size_0.y_0); -} -; -_.setVolatileId = function setVolatileId_1(volatileId){ - this.id_0 = volatileId; -} -; -_.id_0 = 0; -var OFFSET_PROXY; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$AbstractElkGraphElementAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/AbstractElkGraphElementAdapter', 553); -function ElkGraphAdapters$ElkEdgeAdapter(edge){ - this.element = edge; -} - -defineClass(554, 1, {839:1}, ElkGraphAdapters$ElkEdgeAdapter); -_.getLabels = function getLabels_2(){ - var l, l$iterator; - if (!this.labelAdapters) { - this.labelAdapters = newArrayListWithExpectedSize($getLabels_1(this.element).size_0); - for (l$iterator = new AbstractEList$EIterator($getLabels_1(this.element)); l$iterator.cursor != l$iterator.this$01_2.size_1();) { - l = castTo($doNext(l$iterator), 137); - $add_3(this.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); - } - } - return this.labelAdapters; -} -; -_.labelAdapters = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkEdgeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkEdgeAdapter', 554); -function $getNodes(this$static){ - var n, n$iterator; - if (!this$static.childNodes) { - this$static.childNodes = newArrayListWithExpectedSize($getChildren(castTo(this$static.element, 33)).size_0); - for (n$iterator = new AbstractEList$EIterator($getChildren(castTo(this$static.element, 33))); n$iterator.cursor != n$iterator.this$01_2.size_1();) { - n = castTo($doNext(n$iterator), 33); - $add_3(this$static.childNodes, new ElkGraphAdapters$ElkNodeAdapter(this$static, n)); - } - } - return this$static.childNodes; -} - -function ElkGraphAdapters$ElkGraphAdapter(node){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); - this.element = node; -} - -defineClass(301, 553, {}, ElkGraphAdapters$ElkGraphAdapter); -_.getNodes = function getNodes_0(){ - return $getNodes(this); -} -; -_.childNodes = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkGraphAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkGraphAdapter', 301); -function ElkGraphAdapters$ElkLabelAdapter(label_0){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); - this.element = label_0; -} - -defineClass(630, 553, {181:1}, ElkGraphAdapters$ElkLabelAdapter); -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkLabelAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkLabelAdapter', 630); -function $getLabels(this$static){ - var l, l$iterator; - if (!this$static.labelAdapters) { - this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 33).getLabels_0().size_0); - for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 33).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { - l = castTo($doNext(l$iterator), 137); - $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); - } - } - return this$static.labelAdapters; -} - -function $getPorts_2(this$static){ - var p, p$iterator; - if (!this$static.portAdapters) { - this$static.portAdapters = newArrayListWithExpectedSize($getPorts_3(castTo(this$static.element, 33)).size_0); - for (p$iterator = new AbstractEList$EIterator($getPorts_3(castTo(this$static.element, 33))); p$iterator.cursor != p$iterator.this$01_2.size_1();) { - p = castTo($doNext(p$iterator), 118); - $add_3(this$static.portAdapters, new ElkGraphAdapters$ElkPortAdapter(p)); - } - } - return this$static.portAdapters; -} - -function $sortPortList_1(this$static, comparator){ - $isOrderFixed(castTo(castTo(this$static.element, 33).getProperty(($clinit_CoreOptions() , PORT_CONSTRAINTS_1)), 98)) && sort_13($getPorts_3(castTo(this$static.element, 33)), comparator); -} - -function ElkGraphAdapters$ElkNodeAdapter(parent_0, node){ - $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); - this.element = node; - this.parentGraphAdapter = parent_0; -} - -defineClass(629, 553, {680:1}, ElkGraphAdapters$ElkNodeAdapter); -_.getLabels = function getLabels_3(){ - return $getLabels(this); -} -; -_.getMargin = function getMargin_0(){ - var margins; - return margins = castTo($getProperty_0(this.element, ($clinit_CoreOptions() , MARGINS_0)), 142) , !margins && (margins = new ElkMargin) , margins; -} -; -_.getPorts = function getPorts_0(){ - return $getPorts_2(this); -} -; -_.setMargin = function setMargin_0(margin){ - var newMargin; - newMargin = new ElkMargin_2(margin); - $setProperty_1(this.element, ($clinit_CoreOptions() , MARGINS_0), newMargin); -} -; -_.setPadding = function setPadding_0(padding){ - $setProperty_1(this.element, ($clinit_CoreOptions() , PADDING_6), new ElkPadding_1(padding)); -} -; -_.getGraph = function getGraph_0(){ - return this.parentGraphAdapter; -} -; -_.getIncomingEdges = function getIncomingEdges_1(){ - var e, e$iterator; - if (!this.incomingEdgeAdapters) { - this.incomingEdgeAdapters = new ArrayList; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allIncomingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 79); - $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.incomingEdgeAdapters; -} -; -_.getOutgoingEdges = function getOutgoingEdges_1(){ - var e, e$iterator; - if (!this.outgoingEdgeAdapters) { - this.outgoingEdgeAdapters = new ArrayList; - for (e$iterator = new Iterators$ConcatenatedIterator(transform_2(allOutgoingEdges(castTo(this.element, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { - e = castTo($next_0(e$iterator), 79); - $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.outgoingEdgeAdapters; -} -; -_.isCompoundNode = function isCompoundNode_0(){ - return $getChildren(castTo(this.element, 33)).size_0 != 0 || $booleanValue(castToBoolean(castTo(this.element, 33).getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); -} -; -_.sortPortList = function sortPortList_0(){ - $sortPortList_1(this, ($clinit_ElkGraphAdapters() , DEFAULT_PORTLIST_SORTER_0)); -} -; -_.incomingEdgeAdapters = null; -_.labelAdapters = null; -_.outgoingEdgeAdapters = null; -_.parentGraphAdapter = null; -_.portAdapters = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkNodeAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkNodeAdapter', 629); -function $getLabels_0(this$static){ - var l, l$iterator; - if (!this$static.labelAdapters) { - this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 118).getLabels_0().size_0); - for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 118).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { - l = castTo($doNext(l$iterator), 137); - $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); - } - } - return this$static.labelAdapters; -} - -function ElkGraphAdapters$ElkPortAdapter(port){ - this.element = port; -} - -defineClass(1266, 553, {838:1}, ElkGraphAdapters$ElkPortAdapter); -_.getLabels = function getLabels_4(){ - return $getLabels_0(this); -} -; -_.getIncomingEdges = function getIncomingEdges_2(){ - var e, e$iterator; - if (!this.incomingEdgeAdapters) { - this.incomingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getIncomingEdges_0().size_0); - for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { - e = castTo($doNext(e$iterator), 79); - $add_3(this.incomingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.incomingEdgeAdapters; -} -; -_.getOutgoingEdges = function getOutgoingEdges_2(){ - var e, e$iterator; - if (!this.outgoingEdgeAdapters) { - this.outgoingEdgeAdapters = newArrayListWithCapacity(castTo(this.element, 118).getOutgoingEdges_0().size_0); - for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { - e = castTo($doNext(e$iterator), 79); - $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); - } - } - return this.outgoingEdgeAdapters; -} -; -_.getSide = function getSide_0(){ - return castTo(castTo(this.element, 118).getProperty(($clinit_CoreOptions() , PORT_SIDE_0)), 61); -} -; -_.hasCompoundConnections = function hasCompoundConnections_0(){ - var edge, edge$iterator, edge$iterator0, node, source, source$iterator, target, target$iterator; - node = $getParent_3(castTo(this.element, 118)); - for (edge$iterator0 = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { - edge = castTo($doNext(edge$iterator0), 79); - for (target$iterator = new AbstractEList$EIterator((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)); target$iterator.cursor != target$iterator.this$01_2.size_1();) { - target = castTo($doNext(target$iterator), 82); - if (isDescendant_0(connectableShapeToNode(target), node)) { - return true; - } - else if (connectableShapeToNode(target) == node && $booleanValue(castToBoolean($getProperty_0(edge, ($clinit_CoreOptions() , INSIDE_SELF_LOOPS_YO_0))))) { - return true; - } - } - } - for (edge$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { - edge = castTo($doNext(edge$iterator), 79); - for (source$iterator = new AbstractEList$EIterator((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources)); source$iterator.cursor != source$iterator.this$01_2.size_1();) { - source = castTo($doNext(source$iterator), 82); - if (isDescendant_0(connectableShapeToNode(source), node)) { - return true; - } - } - } - return false; -} -; -_.incomingEdgeAdapters = null; -_.labelAdapters = null; -_.outgoingEdgeAdapters = null; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkPortAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkPortAdapter', 1266); -function $compare_25(port1, port2){ - var index1, index2, indexDifference, ordinalDifference; - ordinalDifference = castTo($getProperty_0(port1, ($clinit_CoreOptions() , PORT_SIDE_0)), 61).ordinal - castTo($getProperty_0(port2, PORT_SIDE_0), 61).ordinal; - if (ordinalDifference != 0) { - return ordinalDifference; - } - index1 = castTo($getProperty_0(port1, PORT_INDEX_0), 19); - index2 = castTo($getProperty_0(port2, PORT_INDEX_0), 19); - if (!!index1 && !!index2) { - indexDifference = index1.value_0 - index2.value_0; - if (indexDifference != 0) { - return indexDifference; - } - } - switch (castTo($getProperty_0(port1, PORT_SIDE_0), 61).ordinal) { - case 1: - return compare_4(port1.x_0, port2.x_0); - case 2: - return compare_4(port1.y_0, port2.y_0); - case 3: - return compare_4(port2.x_0, port1.x_0); - case 4: - return compare_4(port2.y_0, port1.y_0); - default:throw toJs(new IllegalStateException_0('Port side is undefined')); - } -} - -function ElkGraphAdapters$PortComparator(){ -} - -defineClass(1267, 1, $intern_88, ElkGraphAdapters$PortComparator); -_.compare_1 = function compare_86(port1, port2){ - return $compare_25(castTo(port1, 118), castTo(port2, 118)); -} -; -_.equals_0 = function equals_182(other){ - return this === other; -} -; -_.reversed = function reversed_78(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$PortComparator_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/PortComparator', 1267); -var Lorg_eclipse_emf_ecore_EObject_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EObject'); -var Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit = createForInterface('org.eclipse.elk.graph', 'EMapPropertyHolder'); -var Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkBendPoint'); -var Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkGraphElement'); -var Lorg_eclipse_elk_graph_ElkShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkShape'); -var Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkConnectableShape'); -var Lorg_eclipse_elk_graph_ElkEdge_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdge'); -var Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkEdgeSection'); -var Lorg_eclipse_emf_ecore_EModelElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EModelElement'); -var Lorg_eclipse_emf_ecore_EFactory_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EFactory'); -function $clinit_ElkGraphFactory(){ - $clinit_ElkGraphFactory = emptyMethod; - eINSTANCE = init_1(); -} - -var eINSTANCE; -var Lorg_eclipse_emf_ecore_ENamedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ENamedElement'); -var Lorg_eclipse_emf_ecore_EPackage_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EPackage'); -function $clinit_ElkGraphPackage(){ - $clinit_ElkGraphPackage = emptyMethod; - eINSTANCE_0 = init_2(); -} - -var eINSTANCE_0; -function $clinit_ElkGraphPackage$Literals(){ - $clinit_ElkGraphPackage$Literals = emptyMethod; - $clinit_ElkGraphPackage(); - EMAP_PROPERTY_HOLDER = eINSTANCE_0.eMapPropertyHolderEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.eMapPropertyHolderEClass), 0), 18); - ELK_GRAPH_ELEMENT = eINSTANCE_0.elkGraphElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 1), 34); - ELK_SHAPE = eINSTANCE_0.elkShapeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 3), 34); - ELK_LABEL = eINSTANCE_0.elkLabelEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 1), 34); - ELK_CONNECTABLE_SHAPE = eINSTANCE_0.elkConnectableShapeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 1), 18); - ELK_NODE = eINSTANCE_0.elkNodeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 4), 34); - ELK_PORT = eINSTANCE_0.elkPortEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPortEClass), 0), 18); - ELK_EDGE = eINSTANCE_0.elkEdgeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 4), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 5), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 6), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 7), 34); - ELK_BEND_POINT = eINSTANCE_0.elkBendPointEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 1), 34); - ELK_EDGE_SECTION = eINSTANCE_0.elkEdgeSectionEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 5), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 6), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 7), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 8), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 9), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 10), 34); - ELK_PROPERTY_TO_VALUE_MAP_ENTRY = eINSTANCE_0.elkPropertyToValueMapEntryEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 1), 34); -} - -var ELK_BEND_POINT, ELK_CONNECTABLE_SHAPE, ELK_EDGE, ELK_EDGE_SECTION, ELK_GRAPH_ELEMENT, ELK_LABEL, ELK_NODE, ELK_PORT, ELK_PROPERTY_TO_VALUE_MAP_ENTRY, ELK_SHAPE, EMAP_PROPERTY_HOLDER; -var Lorg_eclipse_elk_graph_ElkLabel_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkLabel'); -var Lorg_eclipse_elk_graph_ElkNode_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkNode'); -var Lorg_eclipse_elk_graph_ElkPort_2_classLit = createForInterface('org.eclipse.elk.graph', 'ElkPort'); -function $eNotify(this$static, notification){ - var eAdapters, i, size_0; - eAdapters = this$static.eBasicAdapterArray(); - if (eAdapters != null && this$static.eDeliver()) { - for (i = 0 , size_0 = eAdapters.length; i < size_0; ++i) { - eAdapters[i].notifyChanged(notification); - } - } -} - -defineClass(90, 1, $intern_133); -_.eBasicAdapterArray = function eBasicAdapterArray(){ - this.eBasicAdapters(); - return null; -} -; -_.eBasicAdapters = function eBasicAdapters(){ - return null; -} -; -_.eBasicHasAdapters = function eBasicHasAdapters(){ - return this.eBasicAdapters() , false; -} -; -_.eDeliver = function eDeliver(){ - return false; -} -; -_.eNotify = function eNotify(notification){ - $eNotify(this, notification); -} -; -var Lorg_eclipse_emf_common_notify_impl_BasicNotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'BasicNotifierImpl', 90); -function $eAttribute(eClass, name_0){ - var eStructuralFeature; - eStructuralFeature = $getEStructuralFeature_0(eClass, name_0); - if (instanceOf(eStructuralFeature, 322)) { - return castTo(eStructuralFeature, 34); - } - throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid attribute")); -} - -function $eBasicSetContainer(this$static, newContainer, newContainerFeatureID, msgs){ - var newResource, notification, oldContainer, oldContainerFeatureID, oldResource; - oldContainer = this$static.eInternalContainer(); - oldResource = this$static.eDirectResource(); - newResource = null; - if (oldResource) { - if (!!newContainer && (eContainmentFeature(this$static, newContainer, newContainerFeatureID).eFlags & $intern_63) == 0) { - msgs = $basicRemove_0(oldResource.getContents(), this$static, msgs); - this$static.eSetDirectResource(null); - newResource = newContainer.eInternalResource(); - } - else { - oldResource = null; - } - } - else { - !!oldContainer && (oldResource = oldContainer.eInternalResource()); - !!newContainer && (newResource = newContainer.eInternalResource()); - } - oldResource != newResource && !!oldResource && oldResource.detached(this$static); - oldContainerFeatureID = this$static.eContainerFeatureID_0(); - this$static.eBasicSetContainer(newContainer, newContainerFeatureID); - oldResource != newResource && !!newResource && newResource.attached(this$static); - if (this$static.eBasicHasAdapters() && this$static.eDeliver()) { - if (!!oldContainer && oldContainerFeatureID >= 0 && oldContainerFeatureID != newContainerFeatureID) { - notification = new ENotificationImpl_1(this$static, 1, oldContainerFeatureID, oldContainer, null); - !msgs?(msgs = notification):msgs.add_5(notification); - } - if (newContainerFeatureID >= 0) { - notification = new ENotificationImpl_1(this$static, 1, newContainerFeatureID, oldContainerFeatureID == newContainerFeatureID?oldContainer:null, newContainer); - !msgs?(msgs = notification):msgs.add_5(notification); - } - } - return msgs; -} - -function $eContainer(this$static){ - var eContainerFeatureID, eContainerFeatureID0, notificationChain, resolved, result; - result = this$static.eInternalContainer(); - if (result) { - if (result.eIsProxy()) { - resolved = $eResolveProxy(this$static, result); - if (resolved != result) { - eContainerFeatureID0 = this$static.eContainerFeatureID_0(); - notificationChain = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(null):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, null)); - this$static.eBasicSetContainer(castTo(resolved, 49), eContainerFeatureID0); - !!notificationChain && notificationChain.dispatch_0(); - this$static.eBasicHasAdapters() && this$static.eDeliver() && eContainerFeatureID0 > -1 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, eContainerFeatureID0, result, resolved)); - return resolved; - } - } - } - return result; -} - -function $eDynamicGet(this$static, dynamicFeatureID, eFeature, resolve, coreType){ - return dynamicFeatureID < 0?$eOpenGet(this$static, eFeature, resolve):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); -} - -function $eDynamicIsSet(this$static, dynamicFeatureID, eFeature){ - return dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); -} - -function $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue){ - if (dynamicFeatureID < 0) { - $eOpenSet(this$static, eFeature, newValue); - } - else { - if (!eFeature.isChangeable()) { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - castTo(eFeature, 66).getSettingDelegate().dynamicSet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, newValue); - } -} - -function $eDynamicUnset(this$static, dynamicFeatureID, eFeature){ - if (dynamicFeatureID < 0) { - $eOpenUnset(this$static, eFeature); - } - else { - if (!eFeature.isChangeable()) { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - castTo(eFeature, 66).getSettingDelegate().dynamicUnset_0(this$static, this$static.eSettings_0(), dynamicFeatureID); - } -} - -function $eGet(this$static, featureID0, resolve, coreType){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve)):castTo(eFeature, 66).getSettingDelegate().dynamicGet_0(this$static, this$static.eSettings_0(), dynamicFeatureID, resolve, coreType); -} - -function $eGet_0(this$static, eFeature){ - var featureID; - return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, eFeature, true); -} - -function $eGet_1(this$static, eFeature, resolve){ - var featureID; - return featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eGet(featureID, resolve, true):$eOpenGet(this$static, eFeature, resolve); -} - -function $eGet_2(this$static, eFeature){ - var featureID; - featureID = $getFeatureID(this$static.eClass, eFeature); - return featureID >= 0?$eGet(this$static, featureID, true, true):$eOpenGet(this$static, eFeature, true); -} - -function $eInternalResource(this$static){ - var count, eContainer, result; - result = this$static.eDirectResource(); - if (!result) { - count = 0; - for (eContainer = this$static.eInternalContainer(); eContainer; eContainer = eContainer.eInternalContainer()) { - if (++count > $intern_66) { - return eContainer.eInternalResource(); - } - result = eContainer.eDirectResource(); - if (!!result || eContainer == this$static) { - break; - } - } - } - return result; -} - -function $eInverseAdd(this$static, otherEnd, featureID, msgs){ - var eContainerFeatureID; - if (featureID >= 0) { - return this$static.eInverseAdd_0(otherEnd, featureID, msgs); - } - else { - !!this$static.eInternalContainer() && (msgs = (eContainerFeatureID = this$static.eContainerFeatureID_0() , eContainerFeatureID >= 0?this$static.eBasicRemoveFromContainerFeature(msgs):this$static.eInternalContainer().eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - return this$static.eBasicSetContainer_0(otherEnd, featureID, msgs); - } -} - -function $eInverseRemove(this$static, otherEnd, featureID, msgs){ - return featureID >= 0?this$static.eInverseRemove_0(otherEnd, featureID, msgs):this$static.eBasicSetContainer_0(null, featureID, msgs); -} - -function $eIsSet(this$static, featureID0){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - return dynamicFeatureID < 0?(featureID = this$static.eDerivedStructuralFeatureID_0(eFeature) , featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature)):dynamicFeatureID < 0?$eOpenIsSet(this$static, eFeature):castTo(eFeature, 66).getSettingDelegate().dynamicIsSet(this$static, this$static.eSettings_0(), dynamicFeatureID); -} - -function $eIsSet_0(this$static, eFeature){ - var featureID; - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - return featureID >= 0?this$static.eIsSet(featureID):$eOpenIsSet(this$static, eFeature); -} - -function $eNotificationRequired(this$static){ - return this$static.eBasicHasAdapters() && this$static.eDeliver(); -} - -function $eObjectForURIFragmentPredicate(this$static, predicate, eReference){ - var eAttribute, eDataType, eFactory, eReferenceType, end, featureMapEntries, i, index_0, length_0, values; - featureMapEntries = new ArrayList; - length_0 = predicate.length; - eReferenceType = $getEReferenceType(eReference); - for (i = 0; i < length_0; ++i) { - index_0 = $indexOf_2(predicate, fromCodePoint(61), i); - eAttribute = $eAttribute(eReferenceType, predicate.substr(i, index_0 - i)); - eDataType = $getEAttributeType(eAttribute); - eFactory = eDataType.getEPackage().getEFactoryInstance(); - switch ($charAt(predicate, ++index_0)) { - case 39: - { - end = $indexOf_0(predicate, 39, ++index_0); - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); - i = end + 1; - break; - } - - case 34: - { - end = $indexOf_0(predicate, 34, ++index_0); - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType))); - i = end + 1; - break; - } - - case 91: - { - values = new ArrayList; - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, values)); - LOOP: for (;;) { - switch ($charAt(predicate, ++index_0)) { - case 39: - { - end = $indexOf_0(predicate, 39, ++index_0); - $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); - index_0 = end + 1; - break; - } - - case 34: - { - end = $indexOf_0(predicate, 34, ++index_0); - $add_3(values, eDecodeValue(predicate.substr(index_0, end - index_0), eFactory, eDataType)); - index_0 = end + 1; - break; - } - - case 110: - { - ++index_0; - if (predicate.indexOf('ull', index_0) == index_0) { - values.array[values.array.length] = null; - } - else { - throw toJs(new RuntimeException_0('Expecting null')); - } - index_0 += 3; - break; - } - - } - if (index_0 < length_0) { - switch (checkCriticalStringElementIndex(index_0, predicate.length) , predicate.charCodeAt(index_0)) { - case 44: - { - break; - } - - case 93: - { - break LOOP; - } - - default:{ - throw toJs(new RuntimeException_0('Expecting , or ]')); - } - - } - } - else { - break; - } - } - i = index_0 + 1; - break; - } - - case 110: - { - ++index_0; - if (predicate.indexOf('ull', index_0) == index_0) { - $add_3(featureMapEntries, new BasicEObjectImpl$1(eAttribute, null)); - } - else { - throw toJs(new RuntimeException_0('Expecting null')); - } - i = index_0 + 3; - break; - } - - } - if (i < length_0) { - checkCriticalStringElementIndex(i, predicate.length); - if (predicate.charCodeAt(i) != 44) { - throw toJs(new RuntimeException_0('Expecting ,')); - } - } - else { - break; - } - } - return $eObjectForURIFragmentPredicate_0(this$static, featureMapEntries, eReference); -} - -function $eObjectForURIFragmentPredicate_0(this$static, predicate, eReference){ - var actualValue, eObject, eObject$iterator, entry, entryFeature, entryValue, featureID, i, list, size_0; - size_0 = predicate.array.length; - list = (featureID = this$static.eDerivedStructuralFeatureID_0(eReference) , castTo(featureID >= 0?this$static.eGet(featureID, false, true):$eOpenGet(this$static, eReference, false), 58)); - LOOP: for (eObject$iterator = list.iterator_0(); eObject$iterator.hasNext_0();) { - eObject = castTo(eObject$iterator.next_1(), 56); - for (i = 0; i < size_0; ++i) { - entry = (checkCriticalElementIndex(i, predicate.array.length) , castTo(predicate.array[i], 72)); - entryValue = entry.getValue(); - entryFeature = entry.getEStructuralFeature(); - actualValue = eObject.eGet_1(entryFeature, false); - if (entryValue == null?actualValue != null:!equals_Ljava_lang_Object__Z__devirtual$(entryValue, actualValue)) { - continue LOOP; - } - } - return eObject; - } - return null; -} - -function $eObjectForURIFragmentSegment(this$static, uriFragmentSegment){ - var dotIndex, eList, eReference, exception, index_0, lastChar, lastIndex, position, predicate, result; - lastIndex = uriFragmentSegment.length - 1; - lastChar = (checkCriticalStringElementIndex(lastIndex, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(lastIndex)); - if (lastChar == 93) { - index_0 = $indexOf_1(uriFragmentSegment, fromCodePoint(91)); - if (index_0 >= 0) { - eReference = $eReference(this$static, uriFragmentSegment.substr(1, index_0 - 1)); - predicate = uriFragmentSegment.substr(index_0 + 1, lastIndex - (index_0 + 1)); - return $eObjectForURIFragmentPredicate(this$static, predicate, eReference); - } - } - else { - dotIndex = -1; - digitRegex == null && (digitRegex = new RegExp('\\d')); - if (digitRegex.test(String.fromCharCode(lastChar))) { - dotIndex = $lastIndexOf_0(uriFragmentSegment, fromCodePoint(46), lastIndex - 1); - if (dotIndex >= 0) { - eList = castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1, dotIndex - 1)), false), 58); - position = 0; - try { - position = __parseAndValidateInt(uriFragmentSegment.substr(dotIndex + 1), $intern_42, $intern_0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new WrappedException(exception)); - } - else - throw toJs($e0); - } - if (position < eList.size_1()) { - result = eList.get_0(position); - instanceOf(result, 72) && (result = castTo(result, 72).getValue()); - return castTo(result, 56); - } - } - } - if (dotIndex < 0) { - return castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1)), false), 56); - } - } - return null; -} - -function $eOpenGet(this$static, eFeature, resolve){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - return castTo(featureMap, 215).get_7(eFeature, resolve); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); - } -} - -function $eOpenIsSet(this$static, eFeature){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - return castTo(featureMap, 215).isSet_1(eFeature); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); - } -} - -function $eOpenSet(this$static, eFeature, newValue){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - if (!castTo(openFeature, 66).isFeatureMap_0()) { - openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature)); - if (!openFeature) { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - } - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - castTo(featureMap, 215).set_3(eFeature, newValue); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } -} - -function $eOpenUnset(this$static, eFeature){ - var featureID, featureMap, openFeature; - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.eClass_0(), eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this$static.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this$static.eGet(featureID, true, true):$eOpenGet(this$static, openFeature, true), 153)); - castTo(featureMap, 215).unset_0(eFeature); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } -} - -function $eReference(this$static, name_0){ - var eStructuralFeature; - eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); - if (instanceOf(eStructuralFeature, 99)) { - return castTo(eStructuralFeature, 18); - } - throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid reference")); -} - -function $eResolveProxy(this$static, proxy){ - var eResource, lastArg, resourceContext, result; - result = (resourceContext = this$static?$eInternalResource(this$static):null , resolve_20((lastArg = proxy , resourceContext?resourceContext.getResourceSet():null , lastArg))); - if (result == proxy) { - eResource = $eInternalResource(this$static); - !!eResource && eResource.getResourceSet(); - } - return result; -} - -function $eSet(this$static, featureID0, newValue){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - if (dynamicFeatureID < 0) { - if (!eFeature) { - throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); - } - else if (eFeature.isChangeable()) { - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - } - else { - $eDynamicSet(this$static, dynamicFeatureID, eFeature, newValue); - } -} - -function $eSet_0(this$static, eFeature, newValue){ - var featureID; - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eSet(featureID, newValue):$eOpenSet(this$static, eFeature, newValue); -} - -function $eSettings(this$static){ - var size_0; - if (!this$static.eHasSettings()) { - size_0 = $getFeatureCount(this$static.eClass_0()) - this$static.eStaticFeatureCount(); - this$static.eProperties_0().allocateSettings(size_0); - } - return this$static.eBasicProperties(); -} - -function $eStructuralFeature(this$static, name_0){ - var eStructuralFeature; - eStructuralFeature = $getEStructuralFeature_0(this$static.eClass_0(), name_0); - if (!eStructuralFeature) { - throw toJs(new IllegalArgumentException_0("The feature '" + name_0 + "' is not a valid feature")); - } - return eStructuralFeature; -} - -function $eUnset(this$static, featureID0){ - var dynamicFeatureID, eFeature, featureID; - eFeature = $getEStructuralFeature(this$static.eClass_0(), featureID0); - dynamicFeatureID = featureID0 - this$static.eStaticFeatureCount(); - if (dynamicFeatureID < 0) { - if (!eFeature) { - throw toJs(new IllegalArgumentException_0('The feature ID' + featureID0 + ' is not a valid feature ID')); - } - else if (eFeature.isChangeable()) { - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid changeable feature")); - } - } - else { - $eDynamicUnset(this$static, dynamicFeatureID, eFeature); - } -} - -function $eUnset_0(this$static, eFeature){ - var featureID; - featureID = this$static.eDerivedStructuralFeatureID_0(eFeature); - featureID >= 0?this$static.eUnset(featureID):$eOpenUnset(this$static, eFeature); -} - -function $toString_16(this$static){ - var number, result; - result = new StringBuilder_1($getName(this$static.___clazz)); - result.string += '@'; - $append_11(result, (number = hashCode__I__devirtual$(this$static) >>> 0 , number.toString(16))); - if (this$static.eIsProxy()) { - result.string += ' (eProxyURI: '; - $append_10(result, this$static.eProxyURI_0()); - if (this$static.eDynamicClass()) { - result.string += ' eClass: '; - $append_10(result, this$static.eDynamicClass()); - } - result.string += ')'; - } - else if (this$static.eDynamicClass()) { - result.string += ' (eClass: '; - $append_10(result, this$static.eDynamicClass()); - result.string += ')'; - } - return result.string; -} - -function eContainmentFeature(eObject, eContainer, eContainerFeatureID){ - var eFeature, entryFeature, entryReference, featureMap, i, size_0; - if (!eContainer) { - return null; - } - else { - if (eContainerFeatureID <= -1) { - eFeature = $getEStructuralFeature(eContainer.eClass_0(), -1 - eContainerFeatureID); - if (instanceOf(eFeature, 99)) { - return castTo(eFeature, 18); - } - else { - featureMap = castTo(eContainer.eGet_0(eFeature), 153); - for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { - if (maskUndefined(featureMap.getValue_1(i)) === maskUndefined(eObject)) { - entryFeature = featureMap.getEStructuralFeature_0(i); - if (instanceOf(entryFeature, 99)) { - entryReference = castTo(entryFeature, 18); - if ((entryReference.eFlags & $intern_134) != 0) { - return entryReference; - } - } - } - } - throw toJs(new IllegalStateException_0('The containment feature could not be located')); - } - } - else { - return $getEOpposite(castTo($getEStructuralFeature(eObject.eClass_0(), eContainerFeatureID), 18)); - } - } -} - -function eDecodeValue(encodedValue, eFactory, eDataType){ - var literal, value_0; - literal = decode(encodedValue); - value_0 = eFactory.createFromString(eDataType, literal); - return value_0; -} - -defineClass(97, 90, $intern_135); -_.eNotificationRequired = function eNotificationRequired(){ - return $eNotificationRequired(this); -} -; -_.eBaseStructuralFeatureID = function eBaseStructuralFeatureID(derivedFeatureID, baseClass){ - return derivedFeatureID; -} -; -_.eBasicProperties = function eBasicProperties(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature(msgs){ - var inverseFeature; - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature(this.eClass_0(), this.eContainerFeatureID_0()), 18)) , this.eInternalContainer().eInverseRemove(this, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} -; -_.eBasicSetContainer = function eBasicSetContainer(newContainer, newContainerFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicSetContainer_0 = function eBasicSetContainer_0(newContainer, newContainerFeatureID, msgs){ - return $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); -} -; -_.eClass_0 = function eClass_0(){ - var result; - if (this.eBasicProperties()) { - result = this.eBasicProperties().getEClass(); - if (result) { - return result; - } - } - return this.eStaticClass(); -} -; -_.eContainer_0 = function eContainer_0(){ - return $eContainer(this); -} -; -_.eContainerFeatureID_0 = function eContainerFeatureID_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eContents_0 = function eContents_0(){ - var eStructuralFeatures, result; - result = this.eProperties_0().getEContents(); - !result && this.eBasicProperties().setEContents(result = ($clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures(this.eClass_0())) , eStructuralFeatures == null?EMPTY_CONTENTS_ELIST:new EContentsEList(this, eStructuralFeatures))); - return result; -} -; -_.eDerivedStructuralFeatureID = function eDerivedStructuralFeatureID(baseFeatureID, baseClass){ - return baseFeatureID; -} -; -_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_0(eStructuralFeature){ - var containerClass; - containerClass = eStructuralFeature.getContainerClass(); - return !containerClass?$getFeatureID(this.eClass_0(), eStructuralFeature):eStructuralFeature.getFeatureID_0(); -} -; -_.eDirectResource = function eDirectResource(){ - var eProperties; - eProperties = this.eBasicProperties(); - return !eProperties?null:eProperties.getEResource(); -} -; -_.eDynamicClass = function eDynamicClass(){ - return !this.eBasicProperties()?null:this.eBasicProperties().getEClass(); -} -; -_.eGet = function eGet(featureID, resolve, coreType){ - return $eGet(this, featureID, resolve, coreType); -} -; -_.eGet_0 = function eGet_0(eFeature){ - return $eGet_0(this, eFeature); -} -; -_.eGet_1 = function eGet_1(eFeature, resolve){ - return $eGet_1(this, eFeature, resolve); -} -; -_.eHasSettings = function eHasSettings(){ - var eProperties; - eProperties = this.eBasicProperties(); - return !!eProperties && eProperties.hasSettings(); -} -; -_.eInternalContainer = function eInternalContainer_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eInternalResource = function eInternalResource(){ - return $eInternalResource(this); -} -; -_.eInverseAdd = function eInverseAdd(otherEnd, featureID, baseClass, msgs){ - return $eInverseAdd(this, otherEnd, featureID, msgs); -} -; -_.eInverseAdd_0 = function eInverseAdd_0(otherEnd, featureID, msgs){ - var feature; - return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); -} -; -_.eInverseRemove = function eInverseRemove(otherEnd, featureID, baseClass, msgs){ - return $eInverseRemove(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_0(otherEnd, featureID, msgs){ - var feature; - return feature = castTo($getEStructuralFeature(this.eClass_0(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, this.eSettings_0(), featureID - this.eStaticFeatureCount(), otherEnd, msgs); -} -; -_.eIsProxy = function eIsProxy(){ - return !!this.eBasicProperties() && !!this.eBasicProperties().getEProxyURI(); -} -; -_.eIsSet = function eIsSet(featureID){ - return $eIsSet(this, featureID); -} -; -_.eIsSet_0 = function eIsSet_0(eFeature){ - return $eIsSet_0(this, eFeature); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment(uriFragmentSegment){ - return $eObjectForURIFragmentSegment(this, uriFragmentSegment); -} -; -_.eProperties_0 = function eProperties_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eProxyURI_0 = function eProxyURI_0(){ - return !this.eBasicProperties()?null:this.eBasicProperties().getEProxyURI(); -} -; -_.eResource_0 = function eResource_0(){ - return $eInternalResource(this); -} -; -_.eSet = function eSet(featureID, newValue){ - $eSet(this, featureID, newValue); -} -; -_.eSetClass = function eSetClass(eClass){ - this.eProperties_0().setEClass(eClass); -} -; -_.eSetDirectResource = function eSetDirectResource(resource){ - this.eProperties_0().setEResource(resource); -} -; -_.eSetProxyURI = function eSetProxyURI(uri_0){ - this.eProperties_0().setEProxyURI(uri_0); -} -; -_.eSetResource = function eSetResource(resource, notifications){ - var eContainerFeatureID, oldContainer, oldContainerResource, oldResource; - oldResource = this.eDirectResource(); - if (!!oldResource && !!resource) { - notifications = $basicRemove_0(oldResource.getContents(), this, notifications); - oldResource.detached(this); - } - oldContainer = this.eInternalContainer(); - if (oldContainer) { - if ((eContainmentFeature(this, this.eInternalContainer(), this.eContainerFeatureID_0()).eFlags & $intern_63) != 0) { - oldContainerResource = oldContainer.eInternalResource(); - !!oldContainerResource && (!resource?oldContainerResource.attached(this):!oldResource && oldContainerResource.detached(this)); - } - else { - notifications = (eContainerFeatureID = this.eContainerFeatureID_0() , eContainerFeatureID >= 0?this.eBasicRemoveFromContainerFeature(notifications):this.eInternalContainer().eInverseRemove(this, -1 - eContainerFeatureID, null, notifications)); - notifications = this.eBasicSetContainer_0(null, -1, notifications); - } - } - this.eSetDirectResource(resource); - return notifications; -} -; -_.eSetting = function eSetting(eFeature){ - var dynamicIndex, eClass, featureID, featureMap, index_0, openFeature, setting, upperBound; - eClass = this.eClass_0(); - index_0 = $getFeatureID(eClass, eFeature); - dynamicIndex = this.eStaticFeatureCount(); - if (index_0 >= dynamicIndex) { - return castTo(eFeature, 66).getSettingDelegate().dynamicSetting(this, this.eSettings_0(), index_0 - dynamicIndex); - } - else if (index_0 <= -1) { - openFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, eFeature); - if (openFeature) { - $clinit_FeatureMapUtil(); - castTo(openFeature, 66).isFeatureMap_0() || (openFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, openFeature))); - featureMap = (featureID = this.eDerivedStructuralFeatureID_0(openFeature) , castTo(featureID >= 0?this.eGet(featureID, true, true):$eOpenGet(this, openFeature, true), 153)); - upperBound = openFeature.getUpperBound(); - if (upperBound > 1 || upperBound == -1) { - return castTo(castTo(featureMap, 215).get_7(eFeature, false), 76); - } - } - else { - throw toJs(new IllegalArgumentException_0("The feature '" + eFeature.getName() + "' is not a valid feature")); - } - } - else if (eFeature.isMany()) { - return featureID = this.eDerivedStructuralFeatureID_0(eFeature) , castTo(featureID >= 0?this.eGet(featureID, false, true):$eOpenGet(this, eFeature, false), 76); - } - setting = new BasicEObjectImpl$4(this, eFeature); - return setting; -} -; -_.eSettings_0 = function eSettings(){ - return $eSettings(this); -} -; -_.eStaticClass = function eStaticClass(){ - return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; -} -; -_.eStaticFeatureCount = function eStaticFeatureCount(){ - return $getFeatureCount(this.eStaticClass()); -} -; -_.eUnset = function eUnset(featureID){ - $eUnset(this, featureID); -} -; -_.toString_0 = function toString_122(){ - return $toString_16(this); -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl', 97); -function $clinit_EStructuralFeature$Internal$DynamicValueHolder(){ - $clinit_EStructuralFeature$Internal$DynamicValueHolder = emptyMethod; - NIL = new EStructuralFeature$Internal$DynamicValueHolder$1; -} - -var NIL; -function $addField(this$static, field, value_0){ - var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; - fieldCount = bitCount(this$static.eFlags_0 & 254); - if (fieldCount == 0) { - this$static.eStorage = value_0; - } - else { - if (fieldCount == 1) { - result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 2, 5, 1); - fieldIndex = $fieldIndex(this$static, field); - if (fieldIndex == 0) { - result[0] = value_0; - result[1] = this$static.eStorage; - } - else { - result[0] = this$static.eStorage; - result[1] = value_0; - } - } - else { - result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount + 1, 5, 1); - oldStorage = castToArray(this$static.eStorage); - for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { - bit == field?(result[targetIndex++] = value_0):(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); - } - } - this$static.eStorage = result; - } - this$static.eFlags_0 |= field; -} - -function $eClass(this$static){ - var eClass; - eClass = castTo($getField(this$static, 16), 26); - return !eClass?this$static.eStaticClass():eClass; -} - -function $eDynamicSettings(this$static){ - var settings; - settings = castToArray($getField(this$static, 32)); - if (settings == null) { - $eSettings_0(this$static); - settings = castToArray($getField(this$static, 32)); - } - return settings; -} - -function $eSettings_0(this$static){ - var eClass, size_0; - if ((this$static.eFlags_0 & 32) == 0) { - size_0 = (eClass = castTo($getField(this$static, 16), 26) , $getFeatureCount(!eClass?this$static.eStaticClass():eClass) - $getFeatureCount(this$static.eStaticClass())); - size_0 != 0 && $setField(this$static, 32, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1)); - } - return this$static; -} - -function $fieldIndex(this$static, field){ - var bit, bit0, result; - result = 0; - for (bit0 = 2; bit0 < field; bit0 <<= 1) { - (this$static.eFlags_0 & bit0) != 0 && ++result; - } - if (result == 0) { - for (bit = field <<= 1; bit <= 128; bit <<= 1) { - if ((this$static.eFlags_0 & bit) != 0) { - return 0; - } - } - return -1; - } - else { - return result; - } -} - -function $getField(this$static, field){ - var fieldIndex; - if ((this$static.eFlags_0 & field) != 0) { - fieldIndex = $fieldIndex(this$static, field); - return fieldIndex == -1?this$static.eStorage:castToArray(this$static.eStorage)[fieldIndex]; - } - else { - return null; - } -} - -function $removeField(this$static, field){ - var bit, fieldCount, fieldIndex, oldStorage, result, sourceIndex, targetIndex; - fieldCount = bitCount(this$static.eFlags_0 & 254); - if (fieldCount == 1) { - this$static.eStorage = null; - } - else { - oldStorage = castToArray(this$static.eStorage); - if (fieldCount == 2) { - fieldIndex = $fieldIndex(this$static, field); - this$static.eStorage = oldStorage[fieldIndex == 0?1:0]; - } - else { - result = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, fieldCount - 1, 5, 1); - for (bit = 2 , sourceIndex = 0 , targetIndex = 0; bit <= 128; bit <<= 1) { - bit == field?++sourceIndex:(this$static.eFlags_0 & bit) != 0 && (result[targetIndex++] = oldStorage[sourceIndex++]); - } - this$static.eStorage = result; - } - } - this$static.eFlags_0 &= ~field; -} - -function $setField(this$static, field, value_0){ - var fieldIndex; - if ((this$static.eFlags_0 & field) != 0) { - if (value_0 == null) { - $removeField(this$static, field); - } - else { - fieldIndex = $fieldIndex(this$static, field); - fieldIndex == -1?(this$static.eStorage = value_0):setCheck(castToArray(this$static.eStorage), fieldIndex, value_0); - } - } - else - value_0 != null && $addField(this$static, field, value_0); -} - -defineClass(114, 97, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1}); -_.dynamicGet = function dynamicGet(dynamicFeatureID){ - var settings; - settings = $eDynamicSettings(this); - return settings[dynamicFeatureID]; -} -; -_.dynamicSet = function dynamicSet(dynamicFeatureID, newValue){ - var settings; - settings = $eDynamicSettings(this); - setCheck(settings, dynamicFeatureID, newValue); -} -; -_.dynamicUnset = function dynamicUnset(dynamicFeatureID){ - var settings; - settings = $eDynamicSettings(this); - setCheck(settings, dynamicFeatureID, null); -} -; -_.eBasicAdapterArray = function eBasicAdapterArray_0(){ - return castTo($getField(this, 4), 126); -} -; -_.eBasicAdapters = function eBasicAdapters_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicHasAdapters = function eBasicHasAdapters_0(){ - return (this.eFlags_0 & 4) != 0; -} -; -_.eBasicProperties = function eBasicProperties_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eBasicSetContainer_1 = function eBasicSetContainer_1(newContainer){ - $setField(this, 2, newContainer); -} -; -_.eBasicSetContainer = function eBasicSetContainer_2(newContainer, newContainerFeatureID){ - this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; - this.eBasicSetContainer_1(newContainer); -} -; -_.eClass_0 = function eClass_1(){ - return $eClass(this); -} -; -_.eContainerFeatureID_0 = function eContainerFeatureID_1(){ - return this.eFlags_0 >> 16; -} -; -_.eContents_0 = function eContents_1(){ - var eClass, eStructuralFeatures; - return $clinit_EContentsEList() , eStructuralFeatures = $containments($getEAllStructuralFeatures((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass))) , eStructuralFeatures == null?(null , EMPTY_CONTENTS_ELIST):new EContentsEList(this, eStructuralFeatures); -} -; -_.eDeliver = function eDeliver_0(){ - return (this.eFlags_0 & 1) == 0; -} -; -_.eDirectResource = function eDirectResource_0(){ - return castTo($getField(this, 128), 1935); -} -; -_.eDynamicClass = function eDynamicClass_0(){ - return castTo($getField(this, 16), 26); -} -; -_.eHasSettings = function eHasSettings_0(){ - return (this.eFlags_0 & 32) != 0; -} -; -_.eInternalContainer = function eInternalContainer_1(){ - return castTo($getField(this, 2), 49); -} -; -_.eIsProxy = function eIsProxy_0(){ - return (this.eFlags_0 & 64) != 0; -} -; -_.eProperties_0 = function eProperties_1(){ - throw toJs(new UnsupportedOperationException); -} -; -_.eProxyURI_0 = function eProxyURI_1(){ - return castTo($getField(this, 64), 281); -} -; -_.eSetClass = function eSetClass_0(eClass){ - $setField(this, 16, eClass); -} -; -_.eSetDirectResource = function eSetDirectResource_0(resource){ - $setField(this, 128, resource); -} -; -_.eSetProxyURI = function eSetProxyURI_0(uri_0){ - $setField(this, 64, uri_0); -} -; -_.eSettings_0 = function eSettings_0(){ - return $eSettings_0(this); -} -; -_.eFlags_0 = 0; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl', 114); -defineClass(115, 114, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eBasicSetContainer_1 = function eBasicSetContainer_3(newContainer){ - this.eContainer = newContainer; -} -; -_.eInternalContainer = function eInternalContainer_2(){ - return this.eContainer; -} -; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$Container_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/Container', 115); -function $eGet_3(this$static, featureID, resolve, coreType){ - if (featureID == 0) { - return coreType?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $map_1(this$static.properties)); - } - return $eGet(this$static, featureID, resolve, coreType); -} - -function $eInverseRemove_0(this$static, otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 0) { - return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $basicRemove_1(this$static.properties, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); -} - -function $eIsSet_1(this$static, featureID){ - if (featureID == 0) { - return !!this$static.properties && this$static.properties.size_0 != 0; - } - return $eIsSet(this$static, featureID); -} - -function $eSet_1(this$static, featureID, newValue){ - switch (featureID) { - case 0: - !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); - $set_14(this$static.properties, newValue); - return; - } - $eSet(this$static, featureID, newValue); -} - -function $eUnset_1(this$static, featureID){ - switch (featureID) { - case 0: - !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)); - this$static.properties.delegateEList.clear_0(); - return; - } - $eUnset(this$static, featureID); -} - -function $getAllProperties_0(this$static){ - var entry, entry$iterator, props; - props = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , this$static.properties); - for (entry$iterator = props.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { - entry = castTo(entry$iterator.doNext(), 42); - entry.getValue(); - } - return $map_1(props); -} - -function $getProperty_0(this$static, property){ - var defaultValue, value_0; - value_0 = (!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $get_21(this$static.properties, property)); - if (value_0 != null) { - return value_0; - } - defaultValue = property.getDefault(); - instanceOf(defaultValue, 4) && (defaultValue == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, defaultValue)) , this$static); - return defaultValue; -} - -function $hasProperty_0(this$static, property){ - return !this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $containsKey_7(this$static.properties, property); -} - -function $setProperty_1(this$static, property, value_0){ - value_0 == null?(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $removeKey(this$static.properties, property)):(!this$static.properties && (this$static.properties = new EcoreEMap(($clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY), Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit, this$static, 0)) , $put_13(this$static.properties, property, value_0)); - return this$static; -} - -defineClass(1985, 115, {105:1, 413:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_2(featureID, resolve, coreType){ - return $eGet_3(this, featureID, resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_1(otherEnd, featureID, msgs){ - return $eInverseRemove_0(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_1(featureID){ - return $eIsSet_1(this, featureID); -} -; -_.eSet = function eSet_0(featureID, newValue){ - $eSet_1(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_0(){ - return $clinit_ElkGraphPackage$Literals() , EMAP_PROPERTY_HOLDER; -} -; -_.eUnset = function eUnset_0(featureID){ - $eUnset_1(this, featureID); -} -; -_.getAllProperties = function getAllProperties_0(){ - return $getAllProperties_0(this); -} -; -_.getProperty = function getProperty_3(property){ - return $getProperty_0(this, property); -} -; -_.hasProperty = function hasProperty_3(property){ - return $hasProperty_0(this, property); -} -; -_.setProperty = function setProperty_0(property, value_0){ - return $setProperty_1(this, property, value_0); -} -; -var Lorg_eclipse_elk_graph_impl_EMapPropertyHolderImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'EMapPropertyHolderImpl', 1985); -function $set_10(this$static, x_0, y_0){ - $setX_1(this$static, x_0); - $setY_2(this$static, y_0); -} - -function $setX_1(this$static, newX){ - var oldX; - oldX = this$static.x_0; - this$static.x_0 = newX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 0, oldX, this$static.x_0)); -} - -function $setY_2(this$static, newY){ - var oldY; - oldY = this$static.y_0; - this$static.y_0 = newY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldY, this$static.y_0)); -} - -function ElkBendPointImpl(){ -} - -defineClass(567, 115, {105:1, 469:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkBendPointImpl); -_.eGet = function eGet_3(featureID, resolve, coreType){ - switch (featureID) { - case 0: - return this.x_0; - case 1: - return this.y_0; - } - return $eGet(this, featureID, resolve, coreType); -} -; -_.eIsSet = function eIsSet_2(featureID){ - switch (featureID) { - case 0: - return this.x_0 != 0; - case 1: - return this.y_0 != 0; - } - return $eIsSet(this, featureID); -} -; -_.eSet = function eSet_1(featureID, newValue){ - switch (featureID) { - case 0: - $setX_1(this, $doubleValue(castToDouble(newValue))); - return; - case 1: - $setY_2(this, $doubleValue(castToDouble(newValue))); - return; - } - $eSet(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_1(){ - return $clinit_ElkGraphPackage$Literals() , ELK_BEND_POINT; -} -; -_.eUnset = function eUnset_1(featureID){ - switch (featureID) { - case 0: - $setX_1(this, 0); - return; - case 1: - $setY_2(this, 0); - return; - } - $eUnset(this, featureID); -} -; -_.toString_0 = function toString_123(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (x: '; - $append_0(result, this.x_0); - result.string += ', y: '; - $append_0(result, this.y_0); - result.string += ')'; - return result.string; -} -; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_graph_impl_ElkBendPointImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkBendPointImpl', 567); -function $eGet_4(this$static, featureID, resolve, coreType){ - switch (featureID) { - case 1: - return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , this$static.labels; - case 2: - return this$static.identifier; - } - return $eGet_3(this$static, featureID, resolve, coreType); -} - -function $eInverseAdd_0(this$static, otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 1) { - return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicAdd_0(this$static.labels, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this$static, $eSettings_0(this$static), featureID - $getFeatureCount(this$static.eStaticClass()), otherEnd, msgs); -} - -function $eInverseRemove_1(this$static, otherEnd, featureID, msgs){ - if (featureID == 1) { - return !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , $basicRemove_0(this$static.labels, otherEnd, msgs); - } - return $eInverseRemove_0(this$static, otherEnd, featureID, msgs); -} - -function $eIsSet_2(this$static, featureID){ - switch (featureID) { - case 1: - return !!this$static.labels && this$static.labels.size_0 != 0; - case 2: - return this$static.identifier != null; - } - return $eIsSet_1(this$static, featureID); -} - -function $eSet_2(this$static, featureID, newValue){ - switch (featureID) { - case 1: - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - $clear_13(this$static.labels); - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - $addAll_9(this$static.labels, castTo(newValue, 14)); - return; - case 2: - $setIdentifier(this$static, castToString(newValue)); - return; - } - $eSet_1(this$static, featureID, newValue); -} - -function $eUnset_2(this$static, featureID){ - switch (featureID) { - case 1: - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - $clear_13(this$static.labels); - return; - case 2: - $setIdentifier(this$static, null); - return; - } - $eUnset_1(this$static, featureID); -} - -function $getLabels_1(this$static){ - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - return this$static.labels; -} - -function $setIdentifier(this$static, newIdentifier){ - var oldIdentifier; - oldIdentifier = this$static.identifier; - this$static.identifier = newIdentifier; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldIdentifier, this$static.identifier)); -} - -function $toString_17(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (identifier: '; - $append_3(result, this$static.identifier); - result.string += ')'; - return result.string; -} - -defineClass(723, 1985, {105:1, 413:1, 160:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_4(featureID, resolve, coreType){ - return $eGet_4(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_1(otherEnd, featureID, msgs){ - return $eInverseAdd_0(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_2(otherEnd, featureID, msgs){ - return $eInverseRemove_1(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_3(featureID){ - return $eIsSet_2(this, featureID); -} -; -_.eSet = function eSet_2(featureID, newValue){ - $eSet_2(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_2(){ - return $clinit_ElkGraphPackage$Literals() , ELK_GRAPH_ELEMENT; -} -; -_.eUnset = function eUnset_2(featureID){ - $eUnset_2(this, featureID); -} -; -_.getIdentifier = function getIdentifier_0(){ - return this.identifier; -} -; -_.getLabels_0 = function getLabels_5(){ - return $getLabels_1(this); -} -; -_.toString_0 = function toString_124(){ - return $toString_17(this); -} -; -_.identifier = null; -var Lorg_eclipse_elk_graph_impl_ElkGraphElementImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphElementImpl', 723); -function $eGet_5(this$static, featureID, resolve, coreType){ - switch (featureID) { - case 3: - return this$static.height; - case 4: - return this$static.width_0; - case 5: - return this$static.x_0; - case 6: - return this$static.y_0; - } - return $eGet_4(this$static, featureID, resolve, coreType); -} - -function $eIsSet_3(this$static, featureID){ - switch (featureID) { - case 3: - return this$static.height != 0; - case 4: - return this$static.width_0 != 0; - case 5: - return this$static.x_0 != 0; - case 6: - return this$static.y_0 != 0; - } - return $eIsSet_2(this$static, featureID); -} - -function $eSet_3(this$static, featureID, newValue){ - switch (featureID) { - case 3: - $setHeight_0(this$static, $doubleValue(castToDouble(newValue))); - return; - case 4: - $setWidth_0(this$static, $doubleValue(castToDouble(newValue))); - return; - case 5: - $setX_2(this$static, $doubleValue(castToDouble(newValue))); - return; - case 6: - $setY_3(this$static, $doubleValue(castToDouble(newValue))); - return; - } - $eSet_2(this$static, featureID, newValue); -} - -function $eUnset_3(this$static, featureID){ - switch (featureID) { - case 3: - $setHeight_0(this$static, 0); - return; - case 4: - $setWidth_0(this$static, 0); - return; - case 5: - $setX_2(this$static, 0); - return; - case 6: - $setY_3(this$static, 0); - return; - } - $eUnset_2(this$static, featureID); -} - -function $setDimensions_0(this$static, width_0, height){ - $setWidth_0(this$static, width_0); - $setHeight_0(this$static, height); -} - -function $setHeight_0(this$static, newHeight){ - var oldHeight; - oldHeight = this$static.height; - this$static.height = newHeight; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldHeight, this$static.height)); -} - -function $setLocation_1(this$static, x_0, y_0){ - $setX_2(this$static, x_0); - $setY_3(this$static, y_0); -} - -function $setWidth_0(this$static, newWidth){ - var oldWidth; - oldWidth = this$static.width_0; - this$static.width_0 = newWidth; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldWidth, this$static.width_0)); -} - -function $setX_2(this$static, newX){ - var oldX; - oldX = this$static.x_0; - this$static.x_0 = newX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 5, oldX, this$static.x_0)); -} - -function $setY_3(this$static, newY){ - var oldY; - oldY = this$static.y_0; - this$static.y_0 = newY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 6, oldY, this$static.y_0)); -} - -function $toString_18(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_17(this$static); - result = new StringBuffer_1($toString_17(this$static)); - result.string += ' (height: '; - $append_0(result, this$static.height); - result.string += ', width: '; - $append_0(result, this$static.width_0); - result.string += ', x: '; - $append_0(result, this$static.x_0); - result.string += ', y: '; - $append_0(result, this$static.y_0); - result.string += ')'; - return result.string; -} - -defineClass(724, 723, {105:1, 413:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_5(featureID, resolve, coreType){ - return $eGet_5(this, featureID, resolve, coreType); -} -; -_.eIsSet = function eIsSet_4(featureID){ - return $eIsSet_3(this, featureID); -} -; -_.eSet = function eSet_3(featureID, newValue){ - $eSet_3(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_3(){ - return $clinit_ElkGraphPackage$Literals() , ELK_SHAPE; -} -; -_.eUnset = function eUnset_3(featureID){ - $eUnset_3(this, featureID); -} -; -_.getHeight = function getHeight(){ - return this.height; -} -; -_.getWidth = function getWidth(){ - return this.width_0; -} -; -_.getX = function getX(){ - return this.x_0; -} -; -_.getY = function getY(){ - return this.y_0; -} -; -_.setDimensions = function setDimensions(width_0, height){ - $setDimensions_0(this, width_0, height); -} -; -_.setLocation = function setLocation(x_0, y_0){ - $setLocation_1(this, x_0, y_0); -} -; -_.setX = function setX(newX){ - $setX_2(this, newX); -} -; -_.setY = function setY(newY){ - $setY_3(this, newY); -} -; -_.toString_0 = function toString_125(){ - return $toString_18(this); -} -; -_.height = 0; -_.width_0 = 0; -_.x_0 = 0; -_.y_0 = 0; -var Lorg_eclipse_elk_graph_impl_ElkShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkShapeImpl', 724); -function $eGet_6(this$static, featureID, resolve, coreType){ - switch (featureID) { - case 7: - return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , this$static.outgoingEdges; - case 8: - return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , this$static.incomingEdges; - } - return $eGet_5(this$static, featureID, resolve, coreType); -} - -function $eInverseAdd_1(this$static, otherEnd, featureID, msgs){ - switch (featureID) { - case 7: - return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicAdd_0(this$static.outgoingEdges, otherEnd, msgs); - case 8: - return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicAdd_0(this$static.incomingEdges, otherEnd, msgs); - } - return $eInverseAdd_0(this$static, otherEnd, featureID, msgs); -} - -function $eInverseRemove_2(this$static, otherEnd, featureID, msgs){ - switch (featureID) { - case 7: - return !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)) , $basicRemove_0(this$static.outgoingEdges, otherEnd, msgs); - case 8: - return !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)) , $basicRemove_0(this$static.incomingEdges, otherEnd, msgs); - } - return $eInverseRemove_1(this$static, otherEnd, featureID, msgs); -} - -function $eIsSet_4(this$static, featureID){ - switch (featureID) { - case 7: - return !!this$static.outgoingEdges && this$static.outgoingEdges.size_0 != 0; - case 8: - return !!this$static.incomingEdges && this$static.incomingEdges.size_0 != 0; - } - return $eIsSet_3(this$static, featureID); -} - -function $eSet_4(this$static, featureID, newValue){ - switch (featureID) { - case 7: - !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); - $clear_13(this$static.outgoingEdges); - !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); - $addAll_9(this$static.outgoingEdges, castTo(newValue, 14)); - return; - case 8: - !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); - $clear_13(this$static.incomingEdges); - !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); - $addAll_9(this$static.incomingEdges, castTo(newValue, 14)); - return; - } - $eSet_3(this$static, featureID, newValue); -} - -function $eUnset_4(this$static, featureID){ - switch (featureID) { - case 7: - !this$static.outgoingEdges && (this$static.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 7, 4)); - $clear_13(this$static.outgoingEdges); - return; - case 8: - !this$static.incomingEdges && (this$static.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 8, 5)); - $clear_13(this$static.incomingEdges); - return; - } - $eUnset_3(this$static, featureID); -} - -function ElkConnectableShapeImpl(){ -} - -defineClass(725, 724, {105:1, 413:1, 82:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}); -_.eGet = function eGet_6(featureID, resolve, coreType){ - return $eGet_6(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_2(otherEnd, featureID, msgs){ - return $eInverseAdd_1(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_3(otherEnd, featureID, msgs){ - return $eInverseRemove_2(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_5(featureID){ - return $eIsSet_4(this, featureID); -} -; -_.eSet = function eSet_4(featureID, newValue){ - $eSet_4(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_4(){ - return $clinit_ElkGraphPackage$Literals() , ELK_CONNECTABLE_SHAPE; -} -; -_.eUnset = function eUnset_4(featureID){ - $eUnset_4(this, featureID); -} -; -_.getIncomingEdges_0 = function getIncomingEdges_3(){ - return !this.incomingEdges && (this.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 8, 5)) , this.incomingEdges; -} -; -_.getOutgoingEdges_0 = function getOutgoingEdges_3(){ - return !this.outgoingEdges && (this.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 7, 4)) , this.outgoingEdges; -} -; -var Lorg_eclipse_elk_graph_impl_ElkConnectableShapeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkConnectableShapeImpl', 725); -function $basicSetContainingNode(this$static, newContainingNode, msgs){ - msgs = $eBasicSetContainer(this$static, newContainingNode, 3, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 3) { - return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getContainingNode(this$static){ - if (this$static.eFlags_0 >> 16 != 3) - return null; - return castTo(this$static.eContainer, 33); -} - -function $getSources(this$static){ - !this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)); - return this$static.sources; -} - -function $getTargets(this$static){ - !this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)); - return this$static.targets; -} - -function $isHierarchical(this$static){ - var commonRepresentingNode, incidentShape, incidentShape$iterator, shapeNode; - commonRepresentingNode = null; - for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { - incidentShape = castTo($next_0(incidentShape$iterator), 82); - shapeNode = connectableShapeToNode(incidentShape); - if (!commonRepresentingNode) { - commonRepresentingNode = $getParent_2(shapeNode); - } - else if (commonRepresentingNode != $getParent_2(shapeNode)) { - return true; - } - } - return false; -} - -function $isSelfloop(this$static){ - var commonNode, incidentShape, incidentShape$iterator, shapeNode; - commonNode = null; - for (incidentShape$iterator = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , this$static.sources), (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets)]))); $hasNext_1(incidentShape$iterator);) { - incidentShape = castTo($next_0(incidentShape$iterator), 82); - shapeNode = connectableShapeToNode(incidentShape); - if (!commonNode) { - commonNode = shapeNode; - } - else if (commonNode != shapeNode) { - return false; - } - } - return true; -} - -function $setContainingNode(this$static, newContainingNode){ - var eContainerFeatureID, msgs; - if (newContainingNode != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newContainingNode) { - if (isAncestor(this$static, newContainingNode)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_19(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newContainingNode && (msgs = $eInverseAdd(newContainingNode, this$static, 12, msgs)); - msgs = $basicSetContainingNode(this$static, newContainingNode, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newContainingNode, newContainingNode)); -} - -function $toString_19(this$static){ - var builder, hyperedge, id_0, text_0; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_17(this$static); - builder = new StringBuilder_1('ElkEdge'); - id_0 = this$static.identifier; - if (!id_0) { - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - if (this$static.labels.size_0 > 0) { - text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; - !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); - } - } - else { - $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); - } - hyperedge = (!this$static.sources && (this$static.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 4, 7)) , !(this$static.sources.size_0 <= 1 && (!this$static.targets && (this$static.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this$static, 5, 8)) , this$static.targets.size_0 <= 1))); - hyperedge?(builder.string += ' [' , builder):(builder.string += ' ' , builder); - $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.sources))); - hyperedge && (builder.string += ']' , builder); - builder.string += ' -> '; - hyperedge && (builder.string += '[' , builder); - $append_11(builder, $join(new Joiner, new AbstractEList$EIterator(this$static.targets))); - hyperedge && (builder.string += ']' , builder); - return builder.string; -} - -function ElkEdgeImpl(){ -} - -defineClass(352, 723, {105:1, 413:1, 79:1, 160:1, 352:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_0(msgs){ - return $eBasicRemoveFromContainerFeature(this, msgs); -} -; -_.eGet = function eGet_7(featureID, resolve, coreType){ - switch (featureID) { - case 3: - return $getContainingNode(this); - case 4: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources; - case 5: - return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets; - case 6: - return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , this.sections; - case 7: - return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)?false:true; - case 8: - return $clinit_Boolean() , $isHierarchical(this)?true:false; - case 9: - return $clinit_Boolean() , $isSelfloop(this)?true:false; - case 10: - return $clinit_Boolean() , !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0)?true:false; - } - return $eGet_4(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_3(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 3: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetContainingNode(this, castTo(otherEnd, 33), msgs); - case 4: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicAdd_0(this.sources, otherEnd, msgs); - case 5: - return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicAdd_0(this.targets, otherEnd, msgs); - case 6: - return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicAdd_0(this.sections, otherEnd, msgs); - } - return $eInverseAdd_0(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_4(otherEnd, featureID, msgs){ - switch (featureID) { - case 3: - return $basicSetContainingNode(this, null, msgs); - case 4: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , $basicRemove_0(this.sources, otherEnd, msgs); - case 5: - return !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , $basicRemove_0(this.targets, otherEnd, msgs); - case 6: - return !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)) , $basicRemove_0(this.sections, otherEnd, msgs); - } - return $eInverseRemove_1(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_6(featureID){ - switch (featureID) { - case 3: - return !!$getContainingNode(this); - case 4: - return !!this.sources && this.sources.size_0 != 0; - case 5: - return !!this.targets && this.targets.size_0 != 0; - case 6: - return !!this.sections && this.sections.size_0 != 0; - case 7: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , !(this.sources.size_0 <= 1 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 <= 1)); - case 8: - return $isHierarchical(this); - case 9: - return $isSelfloop(this); - case 10: - return !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)) , this.sources.size_0 != 0 && (!this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)) , this.targets.size_0 != 0); - } - return $eIsSet_2(this, featureID); -} -; -_.eSet = function eSet_5(featureID, newValue){ - switch (featureID) { - case 3: - $setContainingNode(this, castTo(newValue, 33)); - return; - case 4: - !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); - $clear_13(this.sources); - !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); - $addAll_9(this.sources, castTo(newValue, 14)); - return; - case 5: - !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); - $clear_13(this.targets); - !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); - $addAll_9(this.targets, castTo(newValue, 14)); - return; - case 6: - !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); - $clear_13(this.sections); - !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); - $addAll_9(this.sections, castTo(newValue, 14)); - return; - } - $eSet_2(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_5(){ - return $clinit_ElkGraphPackage$Literals() , ELK_EDGE; -} -; -_.eUnset = function eUnset_5(featureID){ - switch (featureID) { - case 3: - $setContainingNode(this, null); - return; - case 4: - !this.sources && (this.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 4, 7)); - $clear_13(this.sources); - return; - case 5: - !this.targets && (this.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, this, 5, 8)); - $clear_13(this.targets); - return; - case 6: - !this.sections && (this.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 6, 6)); - $clear_13(this.sections); - return; - } - $eUnset_2(this, featureID); -} -; -_.toString_0 = function toString_126(){ - return $toString_19(this); -} -; -var Lorg_eclipse_elk_graph_impl_ElkEdgeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeImpl', 352); -function $basicSetParent(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, newParent, 6, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_0(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 6) { - return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getIncomingShape(this$static){ - var oldIncomingShape; - if (!!this$static.incomingShape && this$static.incomingShape.eIsProxy()) { - oldIncomingShape = castTo(this$static.incomingShape, 49); - this$static.incomingShape = castTo($eResolveProxy(this$static, oldIncomingShape), 82); - this$static.incomingShape != oldIncomingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldIncomingShape, this$static.incomingShape)); - } - return this$static.incomingShape; -} - -function $getOutgoingShape(this$static){ - var oldOutgoingShape; - if (!!this$static.outgoingShape && this$static.outgoingShape.eIsProxy()) { - oldOutgoingShape = castTo(this$static.outgoingShape, 49); - this$static.outgoingShape = castTo($eResolveProxy(this$static, oldOutgoingShape), 82); - this$static.outgoingShape != oldOutgoingShape && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 7, oldOutgoingShape, this$static.outgoingShape)); - } - return this$static.outgoingShape; -} - -function $getParent_0(this$static){ - if (this$static.eFlags_0 >> 16 != 6) - return null; - return castTo(this$static.eContainer, 79); -} - -function $setEndLocation(this$static, x_0, y_0){ - $setEndX(this$static, x_0); - $setEndY(this$static, y_0); -} - -function $setEndX(this$static, newEndX){ - var oldEndX; - oldEndX = this$static.endX; - this$static.endX = newEndX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 3, oldEndX, this$static.endX)); -} - -function $setEndY(this$static, newEndY){ - var oldEndY; - oldEndY = this$static.endY; - this$static.endY = newEndY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 4, oldEndY, this$static.endY)); -} - -function $setIdentifier_0(this$static, newIdentifier){ - var oldIdentifier; - oldIdentifier = this$static.identifier; - this$static.identifier = newIdentifier; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, oldIdentifier, this$static.identifier)); -} - -function $setIncomingShape(this$static, newIncomingShape){ - var oldIncomingShape; - oldIncomingShape = this$static.incomingShape; - this$static.incomingShape = newIncomingShape; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldIncomingShape, this$static.incomingShape)); -} - -function $setOutgoingShape(this$static, newOutgoingShape){ - var oldOutgoingShape; - oldOutgoingShape = this$static.outgoingShape; - this$static.outgoingShape = newOutgoingShape; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, oldOutgoingShape, this$static.outgoingShape)); -} - -function $setParent_0(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 6 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_20(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = $eInverseAdd(newParent, this$static, 6, msgs)); - msgs = $basicSetParent(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 6, newParent, newParent)); -} - -function $setStartLocation(this$static, x_0, y_0){ - $setStartX(this$static, x_0); - $setStartY(this$static, y_0); -} - -function $setStartX(this$static, newStartX){ - var oldStartX; - oldStartX = this$static.startX; - this$static.startX = newStartX; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 1, oldStartX, this$static.startX)); -} - -function $setStartY(this$static, newStartY){ - var oldStartY; - oldStartY = this$static.startY; - this$static.startY = newStartY; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl(this$static, 2, oldStartY, this$static.startY)); -} - -function $toString_20(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (startX: '; - $append_0(result, this$static.startX); - result.string += ', startY: '; - $append_0(result, this$static.startY); - result.string += ', endX: '; - $append_0(result, this$static.endX); - result.string += ', endY: '; - $append_0(result, this$static.endY); - result.string += ', identifier: '; - $append_3(result, this$static.identifier); - result.string += ')'; - return result.string; -} - -function ElkEdgeSectionImpl(){ -} - -defineClass(439, 1985, {105:1, 413:1, 202:1, 439:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkEdgeSectionImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_1(msgs){ - return $eBasicRemoveFromContainerFeature_0(this, msgs); -} -; -_.eGet = function eGet_8(featureID, resolve, coreType){ - switch (featureID) { - case 1: - return this.startX; - case 2: - return this.startY; - case 3: - return this.endX; - case 4: - return this.endY; - case 5: - return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , this.bendPoints; - case 6: - return $getParent_0(this); - case 7: - if (resolve) - return $getOutgoingShape(this); - return this.outgoingShape; - case 8: - if (resolve) - return $getIncomingShape(this); - return this.incomingShape; - case 9: - return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , this.outgoingSections; - case 10: - return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , this.incomingSections; - case 11: - return this.identifier; - } - return $eGet_3(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_4(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_0(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent(this, castTo(otherEnd, 79), msgs); - case 9: - return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicAdd_0(this.outgoingSections, otherEnd, msgs); - case 10: - return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicAdd_0(this.incomingSections, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_5(otherEnd, featureID, msgs){ - switch (featureID) { - case 5: - return !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)) , $basicRemove_0(this.bendPoints, otherEnd, msgs); - case 6: - return $basicSetParent(this, null, msgs); - case 9: - return !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)) , $basicRemove_0(this.outgoingSections, otherEnd, msgs); - case 10: - return !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)) , $basicRemove_0(this.incomingSections, otherEnd, msgs); - } - return $eInverseRemove_0(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_7(featureID){ - switch (featureID) { - case 1: - return this.startX != 0; - case 2: - return this.startY != 0; - case 3: - return this.endX != 0; - case 4: - return this.endY != 0; - case 5: - return !!this.bendPoints && this.bendPoints.size_0 != 0; - case 6: - return !!$getParent_0(this); - case 7: - return !!this.outgoingShape; - case 8: - return !!this.incomingShape; - case 9: - return !!this.outgoingSections && this.outgoingSections.size_0 != 0; - case 10: - return !!this.incomingSections && this.incomingSections.size_0 != 0; - case 11: - return this.identifier != null; - } - return $eIsSet_1(this, featureID); -} -; -_.eSet = function eSet_6(featureID, newValue){ - switch (featureID) { - case 1: - $setStartX(this, $doubleValue(castToDouble(newValue))); - return; - case 2: - $setStartY(this, $doubleValue(castToDouble(newValue))); - return; - case 3: - $setEndX(this, $doubleValue(castToDouble(newValue))); - return; - case 4: - $setEndY(this, $doubleValue(castToDouble(newValue))); - return; - case 5: - !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); - $clear_13(this.bendPoints); - !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); - $addAll_9(this.bendPoints, castTo(newValue, 14)); - return; - case 6: - $setParent_0(this, castTo(newValue, 79)); - return; - case 7: - $setOutgoingShape(this, castTo(newValue, 82)); - return; - case 8: - $setIncomingShape(this, castTo(newValue, 82)); - return; - case 9: - !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); - $clear_13(this.outgoingSections); - !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); - $addAll_9(this.outgoingSections, castTo(newValue, 14)); - return; - case 10: - !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); - $clear_13(this.incomingSections); - !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); - $addAll_9(this.incomingSections, castTo(newValue, 14)); - return; - case 11: - $setIdentifier_0(this, castToString(newValue)); - return; - } - $eSet_1(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_6(){ - return $clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION; -} -; -_.eUnset = function eUnset_6(featureID){ - switch (featureID) { - case 1: - $setStartX(this, 0); - return; - case 2: - $setStartY(this, 0); - return; - case 3: - $setEndX(this, 0); - return; - case 4: - $setEndY(this, 0); - return; - case 5: - !this.bendPoints && (this.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, this, 5)); - $clear_13(this.bendPoints); - return; - case 6: - $setParent_0(this, null); - return; - case 7: - $setOutgoingShape(this, null); - return; - case 8: - $setIncomingShape(this, null); - return; - case 9: - !this.outgoingSections && (this.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 9, 10)); - $clear_13(this.outgoingSections); - return; - case 10: - !this.incomingSections && (this.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, this, 10, 9)); - $clear_13(this.incomingSections); - return; - case 11: - $setIdentifier_0(this, null); - return; - } - $eUnset_1(this, featureID); -} -; -_.toString_0 = function toString_127(){ - return $toString_20(this); -} -; -_.endX = 0; -_.endY = 0; -_.identifier = null; -_.startX = 0; -_.startY = 0; -var Lorg_eclipse_elk_graph_impl_ElkEdgeSectionImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeSectionImpl', 439); -function $eObjectForURIFragmentSegment_0(this$static, uriFragmentSegment){ - var count, count0, eAnnotation, eNamedElement, encodedSource, exception, firstCharacter, hasCount, index_0, index0, length_0, name_0, object, object$iterator, object$iterator0, otherName, otherSource, source; - length_0 = uriFragmentSegment.length; - if (length_0 > 0) { - firstCharacter = (checkCriticalStringElementIndex(0, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(0)); - if (firstCharacter != 64) { - if (firstCharacter == 37) { - index0 = uriFragmentSegment.lastIndexOf('%'); - hasCount = false; - if (index0 != 0 && (index0 == length_0 - 1 || (hasCount = (checkCriticalStringElementIndex(index0 + 1, uriFragmentSegment.length) , uriFragmentSegment.charCodeAt(index0 + 1) == 46)))) { - encodedSource = uriFragmentSegment.substr(1, index0 - 1); - source = $equals_5('%', encodedSource)?null:decode(encodedSource); - count0 = 0; - if (hasCount) { - try { - count0 = __parseAndValidateInt(uriFragmentSegment.substr(index0 + 2), $intern_42, $intern_0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new WrappedException(exception)); - } - else - throw toJs($e0); - } - } - for (object$iterator0 = $iterator_1(this$static.eContents_0()); object$iterator0.hasNext_0();) { - object = $next_15(object$iterator0); - if (instanceOf(object, 510)) { - eAnnotation = castTo(object, 590); - otherSource = eAnnotation.source; - if ((source == null?otherSource == null:$equals_5(source, otherSource)) && count0-- == 0) { - return eAnnotation; - } - } - } - return null; - } - } - index_0 = uriFragmentSegment.lastIndexOf('.'); - name_0 = index_0 == -1?uriFragmentSegment:uriFragmentSegment.substr(0, index_0); - count = 0; - if (index_0 != -1) { - try { - count = __parseAndValidateInt(uriFragmentSegment.substr(index_0 + 1), $intern_42, $intern_0); - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 127)) { - name_0 = uriFragmentSegment; - } - else - throw toJs($e1); - } - } - name_0 = $equals_5('%', name_0)?null:decode(name_0); - for (object$iterator = $iterator_1(this$static.eContents_0()); object$iterator.hasNext_0();) { - object = $next_15(object$iterator); - if (instanceOf(object, 191)) { - eNamedElement = castTo(object, 191); - otherName = eNamedElement.getName(); - if ((name_0 == null?otherName == null:$equals_5(name_0, otherName)) && count-- == 0) { - return eNamedElement; - } - } - } - return null; - } - } - return $eObjectForURIFragmentSegment(this$static, uriFragmentSegment); -} - -function $freeze(eModelElement){ - instanceOf(eModelElement, 150) && castTo(eModelElement, 150).freeze(); -} - -function $getEAnnotation(this$static, source){ - var eAnnotation, eAnnotation$iterator, eAnnotationArray, i, size_0; - if (this$static.eAnnotations) { - if (this$static.eAnnotations) { - size_0 = this$static.eAnnotations.size_0; - if (size_0 > 0) { - eAnnotationArray = castTo(this$static.eAnnotations.data_0, 1934); - if (source == null) { - for (i = 0; i < size_0; ++i) { - eAnnotation = eAnnotationArray[i]; - if (eAnnotation.source == null) { - return eAnnotation; - } - } - } - else { - for (i = 0; i < size_0; ++i) { - eAnnotation = eAnnotationArray[i]; - if ($equals_5(source, eAnnotation.source)) { - return eAnnotation; - } - } - } - } - } - else { - if (source == null) { - for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { - eAnnotation = castTo($doNext(eAnnotation$iterator), 590); - if (eAnnotation.source == null) { - return eAnnotation; - } - } - } - else { - for (eAnnotation$iterator = new AbstractEList$EIterator(this$static.eAnnotations); eAnnotation$iterator.cursor != eAnnotation$iterator.this$01_2.size_1();) { - eAnnotation = castTo($doNext(eAnnotation$iterator), 590); - if ($equals_5(source, eAnnotation.source)) { - return eAnnotation; - } - } - } - } - } - return null; -} - -defineClass(150, 115, {105:1, 92:1, 90:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); -_.eGet = function eGet_9(featureID, resolve, coreType){ - var eClass; - if (featureID == 0) { - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_5(otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 0) { - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_6(otherEnd, featureID, msgs){ - var eClass, feature; - if (featureID == 0) { - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_8(featureID){ - var eClass; - if (featureID == 0) { - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_0(uriFragmentSegment){ - return $eObjectForURIFragmentSegment_0(this, uriFragmentSegment); -} -; -_.eSet = function eSet_7(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eSetDirectResource = function eSetDirectResource_1(resource){ - $setField(this, 128, resource); -} -; -_.eStaticClass = function eStaticClass_7(){ - return $clinit_EcorePackage$Literals() , EMODEL_ELEMENT; -} -; -_.eUnset = function eUnset_7(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze(){ - this.eFlags |= 1; -} -; -_.getEAnnotation = function getEAnnotation(source){ - return $getEAnnotation(this, source); -} -; -_.eFlags = 0; -var Lorg_eclipse_emf_ecore_impl_EModelElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EModelElementImpl', 150); -function $clinit_EFactoryImpl(){ - $clinit_EFactoryImpl = emptyMethod; - HEX_DIGITS = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); - WHITE_SPACE = new RegExp('[ \t\n\r\f]+'); - try { - EDATE_FORMATS = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit, 1), $intern_2, 2015, 0, [new EFactoryImpl$1ClientInternalEDateTimeFormat(($clinit_DateTimeFormat_0() , getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0))))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm:ss", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat("yyyy-MM-dd'T'HH:mm", $getDateTimeFormatInfo((null , instance_0)))), new EFactoryImpl$1ClientInternalEDateTimeFormat(getFormat('yyyy-MM-dd', $getDateTimeFormatInfo((null , instance_0))))]); - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 78)) - throw toJs($e0); - } -} - -function $basicSetEPackage(this$static, newEPackage, msgs){ - var notification, oldEPackage; - oldEPackage = this$static.ePackage; - this$static.ePackage = newEPackage; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 1, oldEPackage, newEPackage); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $bytesToHexString(bytes, count){ - var high, i, j, low, result; - if (bytes == null) { - return null; - } - else { - result = initUnidimensionalArray(C_classLit, $intern_44, 25, 2 * count, 15, 1); - for (i = 0 , j = 0; i < count; ++i) { - high = bytes[i] >> 4 & 15; - low = bytes[i] & 15; - result[j++] = HEX_DIGITS[high]; - result[j++] = HEX_DIGITS[low]; - } - return valueOf_9(result, 0, result.length); - } -} - -function $convertToString(this$static, eDataType, objectValue){ - var baseType, item_0, item$iterator, itemType, list, memberType, memberType$iterator, memberTypes, result; - if (this$static.ePackage != eDataType.getEPackage()) { - throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } - baseType = $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getBaseType(); - if (baseType) { - return baseType.getEPackage().getEFactoryInstance().convertToString(baseType, objectValue); - } - itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); - if (itemType) { - if (objectValue == null) { - return null; - } - list = castTo(objectValue, 15); - if (list.isEmpty()) { - return ''; - } - result = new StringBuffer; - for (item$iterator = list.iterator_0(); item$iterator.hasNext_0();) { - item_0 = item$iterator.next_1(); - $append_3(result, itemType.getEPackage().getEFactoryInstance().convertToString(itemType, item_0)); - result.string += ' '; - } - return $substring(result, result.string.length - 1); - } - memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); - if (!memberTypes.isEmpty()) { - for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { - memberType = castTo(memberType$iterator.next_1(), 148); - if (memberType.isInstance(objectValue)) { - try { - result = memberType.getEPackage().getEFactoryInstance().convertToString(memberType, objectValue); - if (result != null) { - return result; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 102)) - throw toJs($e0); - } - } - } - throw toJs(new IllegalArgumentException_0("Invalid value: '" + objectValue + "' for datatype :" + eDataType.getName())); - } - castTo(eDataType, 834).getConversionDelegate(); - return objectValue == null?null:instanceOf(objectValue, 172)?'' + castTo(objectValue, 172).value_0:getClass__Ljava_lang_Class___devirtual$(objectValue) == Ljava_util_Date_2_classLit?$format_0(EDATE_FORMATS[0], castTo(objectValue, 199)):toString_40(objectValue); -} - -function $createFromString(this$static, eDataType, stringValue){ - var baseType, c, carray, charValue, i, item_0, item$array, item$index, item$max, itemType, memberType, memberType$iterator, memberTypes, result; - if (stringValue == null) { - return null; - } - if (this$static.ePackage != eDataType.getEPackage()) { - throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } - if (instanceOf(eDataType, 457)) { - result = $getEEnumLiteralByLiteral(castTo(eDataType, 671), stringValue); - if (!result) { - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a valid enumerator of '" + eDataType.getName() + "'")); - } - return result; - } - switch ($getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), eDataType).getWhiteSpaceFacet()) { - case 2: - { - stringValue = normalize(stringValue, false); - break; - } - - case 3: - { - stringValue = normalize(stringValue, true); - break; - } - - } - baseType = $getExtendedMetaData(INSTANCE_11, eDataType).getBaseType(); - if (baseType) { - return baseType.getEPackage().getEFactoryInstance().createFromString(baseType, stringValue); - } - itemType = $getExtendedMetaData(INSTANCE_11, eDataType).getItemType(); - if (itemType) { - result = new ArrayList; - for (item$array = $split_5(stringValue) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, itemType.getEPackage().getEFactoryInstance().createFromString(itemType, item_0)); - } - return result; - } - memberTypes = $getExtendedMetaData(INSTANCE_11, eDataType).getMemberTypes(); - if (!memberTypes.isEmpty()) { - for (memberType$iterator = memberTypes.iterator_0(); memberType$iterator.hasNext_0();) { - memberType = castTo(memberType$iterator.next_1(), 148); - try { - result = memberType.getEPackage().getEFactoryInstance().createFromString(memberType, stringValue); - if (result != null) { - return result; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' does not match any member types of the union datatype '" + eDataType.getName() + "'")); - } - castTo(eDataType, 834).getConversionDelegate(); - c = wrapperClassFor(eDataType.getInstanceClass()); - if (!c) - return null; - if (c == Ljava_lang_Character_2_classLit) { - charValue = 0; - try { - charValue = __parseAndValidateInt(stringValue, $intern_42, $intern_0) & $intern_46; - } - catch ($e1) { - $e1 = toJava($e1); - if (instanceOf($e1, 127)) { - carray = $toCharArray(stringValue); - charValue = carray[0]; - } - else - throw toJs($e1); - } - return valueOf_3(charValue); - } - if (c == Ljava_util_Date_2_classLit) { - for (i = 0; i < EDATE_FORMATS.length; ++i) { - try { - return $parse_2(EDATE_FORMATS[i], stringValue); - } - catch ($e2) { - $e2 = toJava($e2); - if (!instanceOf($e2, 32)) - throw toJs($e2); - } - } - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); - } - throw toJs(new IllegalArgumentException_0("The value '" + stringValue + "' is invalid. ")); -} - -function $hexStringToBytes(initialValue){ - var high, i, j, limit, low, result, size_0; - if (initialValue == null) { - return null; - } - size_0 = initialValue.length; - limit = (size_0 + 1) / 2 | 0; - result = initUnidimensionalArray(B_classLit, $intern_136, 25, limit, 15, 1); - size_0 % 2 != 0 && (result[--limit] = hexCharToByte((checkCriticalStringElementIndex(size_0 - 1, initialValue.length) , initialValue.charCodeAt(size_0 - 1)))); - for (i = 0 , j = 0; i < limit; ++i) { - high = hexCharToByte($charAt(initialValue, j++)); - low = hexCharToByte($charAt(initialValue, j++)); - result[i] = (high << 4 | low) << 24 >> 24; - } - return result; -} - -function $setEPackage(this$static, newEPackage){ - var msgs; - if (newEPackage != this$static.ePackage) { - msgs = null; - !!this$static.ePackage && (msgs = castTo(this$static.ePackage, 49).eInverseRemove(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); - !!newEPackage && (msgs = castTo(newEPackage, 49).eInverseAdd(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); - msgs = $basicSetEPackage(this$static, newEPackage, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, newEPackage, newEPackage)); -} - -function $split_5(value_0){ - var i, length_0, result, split_0; - split_0 = $split(WHITE_SPACE, value_0); - length_0 = split_0.length; - result = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, length_0, 6, 1); - for (i = 0; i < length_0; ++i) { - result[i] = split_0[i]; - } - return result; -} - -function EFactoryImpl(){ - $clinit_EFactoryImpl(); -} - -function hexCharToByte(character){ - switch (character) { - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - { - return character - 48 << 24 >> 24; - } - - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - { - return character - 97 + 10 << 24 >> 24; - } - - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - { - return character - 65 + 10 << 24 >> 24; - } - - default:{ - throw toJs(new NumberFormatException('Invalid hexadecimal')); - } - - } -} - -defineClass(704, 150, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EFactoryImpl); -_.convertToString = function convertToString(eDataType, objectValue){ - return $convertToString(this, eDataType, objectValue); -} -; -_.create_3 = function create_40(eClass){ - var eGenericType, eSuperType, eSuperTypes, result, result0; - if (this.ePackage != $getEPackage(eClass) || (eClass.eFlags & 256) != 0) { - throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); - } - for (eSuperTypes = $getESuperTypes(eClass); $getEGenericSuperTypes(eSuperTypes.this$01).size_0 != 0;) { - eSuperType = castTo($resolve_1(eSuperTypes, 0, (eGenericType = castTo($get_20($getEGenericSuperTypes(eSuperTypes.this$01), 0), 87) , result0 = eGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); - if ($getInstanceClass(eSuperType)) { - result = $getEPackage(eSuperType).getEFactoryInstance().create_3(eSuperType); - castTo(result, 49).eSetClass(eClass); - return result; - } - eSuperTypes = $getESuperTypes(eSuperType); - } - return (eClass.instanceClassName != null?eClass.instanceClassName:eClass.generatedInstanceClassName) == 'java.util.Map$Entry'?new DynamicEObjectImpl$BasicEMapEntry(eClass):new DynamicEObjectImpl(eClass); -} -; -_.createFromString = function createFromString(eDataType, stringValue){ - return $createFromString(this, eDataType, stringValue); -} -; -_.eGet = function eGet_10(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.ePackage; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_6(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 1: - !!this.ePackage && (msgs = castTo(this.ePackage, 49).eInverseRemove(this, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); - return $basicSetEPackage(this, castTo(otherEnd, 235), msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_7(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 1: - return $basicSetEPackage(this, null, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_9(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return !!this.ePackage; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); -} -; -_.eSet = function eSet_8(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setEPackage(this, castTo(newValue, 235)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_8(){ - return $clinit_EcorePackage$Literals() , EFACTORY; -} -; -_.eUnset = function eUnset_8(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setEPackage(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EFACTORY:eClass), featureID)); -} -; -var EDATE_FORMATS, HEX_DIGITS, WHITE_SPACE; -var Lorg_eclipse_emf_ecore_impl_EFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl', 704); -function ElkGraphFactoryImpl(){ -} - -function init_1(){ - $clinit_EFactoryImpl(); - var exception, theElkGraphFactory; - try { - theElkGraphFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2014); - if (theElkGraphFactory) { - return theElkGraphFactory; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - $log_3(($clinit_EcorePlugin() , exception)); - } - else - throw toJs($e0); - } - return new ElkGraphFactoryImpl; -} - -defineClass($intern_137, 704, {105:1, 2014:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, ElkGraphFactoryImpl); -_.convertToString = function convertToString_0(eDataType, instanceValue){ - switch (eDataType.getClassifierID()) { - case 12: - return castTo(instanceValue, 146).getId(); - case 13: - return toString_40(instanceValue); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -_.create_3 = function create_41(eClass){ - var ePackage, elkBendPoint, elkEdge, elkEdgeSection, elkLabel, elkNode, elkPort, elkPropertyToValueMapEntry; - switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { - case 4: - return elkLabel = new ElkLabelImpl , elkLabel; - case 6: - return elkNode = new ElkNodeImpl , elkNode; - case 7: - return elkPort = new ElkPortImpl , elkPort; - case 8: - return elkEdge = new ElkEdgeImpl , elkEdge; - case 9: - return elkBendPoint = new ElkBendPointImpl , elkBendPoint; - case 10: - return elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection; - case 11: - return elkPropertyToValueMapEntry = new ElkPropertyToValueMapEntryImpl , elkPropertyToValueMapEntry; - default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); - } -} -; -_.createFromString = function createFromString_0(eDataType, initialValue){ - switch (eDataType.getClassifierID()) { - case 13: - case 12: - return null; - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -var Lorg_eclipse_elk_graph_impl_ElkGraphFactoryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphFactoryImpl', $intern_137); -function $setName(this$static, newName){ - var oldName; - oldName = this$static.name_0; - this$static.name_0 = newName; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldName, this$static.name_0)); -} - -function $toString_21(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (name: '; - $append_3(result, this$static.name_0); - result.string += ')'; - return result.string; -} - -defineClass(438, 150, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); -_.eContents_0 = function eContents_2(){ - var eClass, eStructuralFeatures; - eStructuralFeatures = (eClass = castTo($getField(this, 16), 26) , $containments($getEAllStructuralFeatures(!eClass?this.eStaticClass():eClass))); - return eStructuralFeatures == null?($clinit_EContentsEList() , $clinit_EContentsEList() , EMPTY_CONTENTS_ELIST):new ENamedElementImpl$1(this, eStructuralFeatures); -} -; -_.eGet = function eGet_11(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.getName(); - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_10(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_9(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - this.setName(castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_9(){ - return $clinit_EcorePackage$Literals() , ENAMED_ELEMENT; -} -; -_.eUnset = function eUnset_9(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - this.setName(null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.getName = function getName_5(){ - return this.name_0; -} -; -_.setName = function setName(newName){ - $setName(this, newName); -} -; -_.toString_0 = function toString_128(){ - return $toString_21(this); -} -; -_.name_0 = null; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl', 438); -function $addAnnotation(eNamedElement, source, details){ - var annotations, childAnnotations, eAnnotation, eAnnotation0, i, i0, theDetails; - eAnnotation0 = (eAnnotation = new EAnnotationImpl , eAnnotation); - $setSourceGen(eAnnotation0, (checkCriticalNotNull(source) , source)); - theDetails = (!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details); - for (i0 = 1; i0 < details.length; i0 += 2) { - $put_13(theDetails, details[i0 - 1], details[i0]); - } - annotations = (!eNamedElement.eAnnotations && (eNamedElement.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, eNamedElement, 0, 3)) , eNamedElement.eAnnotations); - for (i = 0; i < 0; ++i) { - childAnnotations = $getContents(castTo($get_20(annotations, annotations.size_0 - 1), 590)); - annotations = childAnnotations; - } - $add_21(annotations, eAnnotation0); -} - -function $addEException(owner, exception){ - $add_21((!owner.eExceptions && (owner.eExceptions = new EOperationImpl$1(owner, owner)) , owner.eExceptions), exception); -} - -function $addEOperation(owner, type_0, name_0){ - var eOperation, o; - o = (eOperation = new EOperationImpl , eOperation); - $initEOperation(o, type_0, name_0); - $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); - return o; -} - -function $addEParameter(owner, type_0, name_0){ - var p, p_0; - p = (p_0 = new EParameterImpl , $setEType(p_0, type_0) , $setName(p_0, name_0) , $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p_0) , p_0); - $setLowerBound(p, 0); - $setUpperBound(p, 1); - $setUnique_2(p, true); - $setOrdered(p, true); - return p; -} - -function $addEParameter_0(owner, type_0, name_0){ - var eParameter, msgs, p; - p = (eParameter = new EParameterImpl , eParameter); - msgs = $setEGenericType(p, type_0, null); - !!msgs && msgs.dispatch_0(); - $setName(p, name_0); - $add_21((!owner.eParameters && (owner.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, owner, 12, 10)) , owner.eParameters), p); - $setLowerBound(p, 0); - $setUpperBound(p, 1); - $setUnique_2(p, true); - $setOrdered(p, true); -} - -function $addETypeParameter(owner, name_0){ - var eTypeParameter, eTypeParameter0; - eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); - $setName(eTypeParameter0, name_0); - $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 7)) , owner.eTypeParameters), eTypeParameter0); - return eTypeParameter0; -} - -function $addETypeParameter_0(owner){ - var eTypeParameter, eTypeParameter0; - eTypeParameter0 = (eTypeParameter = new ETypeParameterImpl , eTypeParameter); - $setName(eTypeParameter0, 'T'); - $add_21((!owner.eTypeParameters && (owner.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, owner, 11)) , owner.eTypeParameters), eTypeParameter0); - return eTypeParameter0; -} - -function $basicGetESuperPackage(this$static){ - if (this$static.eFlags_0 >> 16 != 7) - return null; - return castTo(this$static.eContainer, 235); -} - -function $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs){ - var notification, oldEFactoryInstance; - oldEFactoryInstance = this$static.eFactoryInstance; - this$static.eFactoryInstance = newEFactoryInstance; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 4, oldEFactoryInstance, newEFactoryInstance); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $createEAttribute(owner, id_0){ - var a, eAttribute; - a = (eAttribute = new EAttributeImpl , eAttribute); - a.featureID = id_0; - $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), a); -} - -function $createEClass(this$static, id_0){ - var c, eClass; - c = (eClass = new EClassImpl , eClass); - c.metaObjectID = id_0; - !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); - $add_21(this$static.eClassifiers, c); - return c; -} - -function $createEDataType(this$static, id_0){ - var d, eDataType; - d = (eDataType = new EDataTypeImpl , eDataType); - d.metaObjectID = id_0; - !this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)); - $add_21(this$static.eClassifiers, d); - return d; -} - -function $createEGenericType(eClassifier){ - var eGenericType, eGenericType0; - eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(eGenericType0, eClassifier); - return eGenericType0; -} - -function $createEGenericType_0(eTypeParameter){ - var eGenericType, eGenericType0; - eGenericType0 = (eGenericType = new EGenericTypeImpl , eGenericType); - $setETypeParameter(eGenericType0, eTypeParameter); - return eGenericType0; -} - -function $createEOperation(owner){ - var eOperation, o; - o = (eOperation = new EOperationImpl , eOperation); - $add_21((!owner.eOperations && (owner.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, owner, 11, 10)) , owner.eOperations), o); -} - -function $createEReference(owner, id_0){ - var eReference, r; - r = (eReference = new EReferenceImpl , eReference); - r.featureID = id_0; - $add_21((!owner.eStructuralFeatures && (owner.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, owner, 21, 17)) , owner.eStructuralFeatures), r); -} - -function $createResource(this$static, uri_0){ - var actualURI, resource; - resource = $eInternalResource(this$static); - if (!resource) { - !resourceFactory && (resourceFactory = new EPackageImpl$3); - actualURI = ($clinit_URI() , createURIWithCache(uri_0)); - resource = new BinaryResourceImpl(actualURI); - $add_21(resource.getContents(), this$static); - } - return resource; -} - -function $eBasicRemoveFromContainerFeature_1(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 7) { - return this$static.eContainer.eInverseRemove(this$static, 6, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $freeze_0(this$static){ - var i, size_0; - if (this$static.eClassifiers) { - for (i = 0 , size_0 = this$static.eClassifiers.size_0; i < size_0; ++i) { - $freeze($get_20(this$static.eClassifiers, i)); - } - } - if (this$static.eSubpackages) { - for (i = 0 , size_0 = this$static.eSubpackages.size_0; i < size_0; ++i) { - $freeze($get_20(this$static.eSubpackages, i)); - } - } - $getNamespace(($clinit_ExtendedMetaData() , INSTANCE_11), this$static); - this$static.eFlags |= 1; -} - -function $getEClassifierGen(this$static, name_0){ - var duplicate, eClassifier, eClassifier$iterator, eClassifiers, key, result; - if (!this$static.eNameToEClassifierMap) { - eClassifiers = (!this$static.eClassifiers && (this$static.eClassifiers = new EPackageImpl$2(this$static, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this$static)) , this$static.eClassifiers); - result = new HashMap_0(eClassifiers.size_0); - for (eClassifier$iterator = new AbstractEList$EIterator(eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { - eClassifier = castTo($doNext(eClassifier$iterator), 138); - key = eClassifier.getName(); - duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eClassifier):$put_10(result.stringMap, key, eClassifier), 138); - !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); - } - this$static.eNameToEClassifierMap = result; - } - return castTo($getStringValue(this$static.eNameToEClassifierMap, name_0), 138); -} - -function $initEAttribute(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ - $initEStructuralFeature(a, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived); - $setID(a, false); - return a; -} - -function $initEAttribute_0(a, type_0, name_0, containerClass, isTransient, isVolatile, isChangeable, isDerived){ - var msgs; - instanceOf(a.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(a.eContainer, 88)), 4); - $setName(a, name_0); - a.containerClass = containerClass; - $setTransient(a, isTransient); - $setVolatile(a, isVolatile); - $setChangeable(a, isChangeable); - $setUnsettable(a, false); - $setUnique_2(a, true); - $setDerived(a, isDerived); - $setOrdered(a, true); - $setLowerBound(a, 0); - a.effectiveIsMany = 0; - $setUpperBound(a, 1); - msgs = $setEGenericType(a, type_0, null); - !!msgs && msgs.dispatch_0(); - $setID(a, false); - return a; -} - -function $initEClass(c, instanceClass, name_0, isAbstract, isInterface, isGenerated){ - $initEClassifier(c, instanceClass, name_0, isGenerated); - $setAbstract(c, isAbstract); - $setInterface(c, isInterface); - return c; -} - -function $initEClassifier(o, instanceClass, name_0, isGenerated){ - instanceOf(o.eContainer, 179) && (castTo(o.eContainer, 179).eNameToEClassifierMap = null); - $setName(o, name_0); - !!instanceClass && $setInstanceClass(o, instanceClass); - isGenerated && o.setGeneratedInstanceClass(true); -} - -function $initEDataType(d, instanceClass, name_0, isSerializable){ - $initEClassifier(d, instanceClass, name_0, false); - $setSerializable(d, isSerializable); - return d; -} - -function $initEOperation(eOperation, type_0, name_0){ - $setEType(eOperation, type_0); - $setName(eOperation, name_0); - $setLowerBound(eOperation, 0); - $setUpperBound(eOperation, 1); - $setUnique_2(eOperation, true); - $setOrdered(eOperation, true); - return eOperation; -} - -function $initEReference(r, type_0, otherEnd, name_0, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isContainment, isResolveProxies, isUnsettable, isDerived){ - $initEStructuralFeature(r, type_0, name_0, null, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, true, isDerived); - $setContainmentGen(r, isContainment); - instanceOf(r.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(r.eContainer, 88)), 2); - !!otherEnd && $setEOpposite(r, otherEnd); - $setResolveProxies(r, isResolveProxies); - return r; -} - -function $initEStructuralFeature(s, type_0, name_0, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived){ - instanceOf(s.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(s.eContainer, 88)), 4); - $setName(s, name_0); - s.containerClass = containerClass; - $setTransient(s, isTransient); - $setVolatile(s, isVolatile); - $setChangeable(s, isChangeable); - $setUnsettable(s, isUnsettable); - $setUnique_2(s, isUnique); - $setDerived(s, isDerived); - $setOrdered(s, true); - $setLowerBound(s, lowerBound); - s.setUpperBound(upperBound); - $setEType(s, type_0); - defaultValue != null && (s.defaultValueFactory = null , $setDefaultValueLiteralGen(s, defaultValue)); -} - -function $setEFactoryInstance(this$static, newEFactoryInstance){ - var msgs; - if (newEFactoryInstance != this$static.eFactoryInstance) { - msgs = null; - !!this$static.eFactoryInstance && (msgs = castTo(this$static.eFactoryInstance, 49).eInverseRemove(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); - !!newEFactoryInstance && (msgs = castTo(newEFactoryInstance, 49).eInverseAdd(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); - msgs = $basicSetEFactoryInstance(this$static, newEFactoryInstance, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newEFactoryInstance, newEFactoryInstance)); -} - -function $setNsPrefix(this$static, newNsPrefix){ - var oldNsPrefix; - oldNsPrefix = this$static.nsPrefix; - this$static.nsPrefix = newNsPrefix; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldNsPrefix, this$static.nsPrefix)); -} - -function $setNsURI(this$static, newNsURI){ - var oldNsURI; - oldNsURI = this$static.nsURI; - this$static.nsURI = newNsURI; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldNsURI, this$static.nsURI)); -} - -function EPackageImpl(){ - $setEFactoryInstance(this, new EFactoryImpl); - this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); - $clinit_EcoreFactory(); -} - -function EPackageImpl_0(packageURI, factory){ - var registration; - registration = $getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), packageURI); - instanceOf(registration, 498)?$putStringValue(INSTANCE_6, packageURI, new EPackageImpl$1(this, factory)):$putStringValue(INSTANCE_6, packageURI, this); - $setEFactoryInstance(this, factory); - if (factory == ($clinit_EcoreFactory() , eINSTANCE_1)) { - this.ecorePackage = castTo(this, 1939); - castTo(factory, 1941); - } - else { - this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); - } -} - -defineClass(179, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, EPackageImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_2(msgs){ - return $eBasicRemoveFromContainerFeature_1(this, msgs); -} -; -_.eGet = function eGet_12(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.nsURI; - case 3: - return this.nsPrefix; - case 4: - return this.eFactoryInstance; - case 5: - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; - case 6: - return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , this.eSubpackages; - case 7: - if (resolve) - return this.eFlags_0 >> 16 == 7?castTo(this.eContainer, 235):null; - return $basicGetESuperPackage(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_7(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 4: - !!this.eFactoryInstance && (msgs = castTo(this.eFactoryInstance, 49).eInverseRemove(this, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); - return $basicSetEFactoryInstance(this, castTo(otherEnd, 471), msgs); - case 5: - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicAdd_0(this.eClassifiers, otherEnd, msgs); - case 6: - return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicAdd_0(this.eSubpackages, otherEnd, msgs); - case 7: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_1(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 7, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_8(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 4: - return $basicSetEFactoryInstance(this, null, msgs); - case 5: - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , $basicRemove_0(this.eClassifiers, otherEnd, msgs); - case 6: - return !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)) , $basicRemove_0(this.eSubpackages, otherEnd, msgs); - case 7: - return $eBasicSetContainer(this, null, 7, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_11(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.nsURI != null; - case 3: - return this.nsPrefix != null; - case 4: - return !!this.eFactoryInstance; - case 5: - return !!this.eClassifiers && this.eClassifiers.size_0 != 0; - case 6: - return !!this.eSubpackages && this.eSubpackages.size_0 != 0; - case 7: - return !!$basicGetESuperPackage(this); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_1(uriFragmentSegment){ - var result; - result = $getEClassifierGen(this, uriFragmentSegment); - return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); -} -; -_.eSet = function eSet_10(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - $setNsURI(this, castToString(newValue)); - return; - case 3: - $setNsPrefix(this, castToString(newValue)); - return; - case 4: - $setEFactoryInstance(this, castTo(newValue, 471)); - return; - case 5: - !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); - $clear_13(this.eClassifiers); - !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); - $addAll_9(this.eClassifiers, castTo(newValue, 14)); - return; - case 6: - !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); - $clear_13(this.eSubpackages); - !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); - $addAll_9(this.eSubpackages, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID), newValue); -} -; -_.eSetProxyURI = function eSetProxyURI_1(uri_0){ - var eClassifier, eClassifier$iterator; - if (!!uri_0 && !!this.eClassifiers) { - for (eClassifier$iterator = new AbstractEList$EIterator(this.eClassifiers); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { - eClassifier = $doNext(eClassifier$iterator); - instanceOf(eClassifier, 351) && (castTo(eClassifier, 351).ePackage = null); - } - } - $setField(this, 64, uri_0); -} -; -_.eStaticClass = function eStaticClass_10(){ - return $clinit_EcorePackage$Literals() , EPACKAGE; -} -; -_.eUnset = function eUnset_10(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - $setNsURI(this, null); - return; - case 3: - $setNsPrefix(this, null); - return; - case 4: - $setEFactoryInstance(this, null); - return; - case 5: - !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)); - $clear_13(this.eClassifiers); - return; - case 6: - !this.eSubpackages && (this.eSubpackages = new EObjectContainmentWithInverseEList$Resolving(Lorg_eclipse_emf_ecore_EPackage_2_classLit, this, 6, 7)); - $clear_13(this.eSubpackages); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPACKAGE:eClass), featureID)); -} -; -_.freeze = function freeze_0(){ - $freeze_0(this); -} -; -_.getEClassifiers = function getEClassifiers(){ - return !this.eClassifiers && (this.eClassifiers = new EPackageImpl$2(this, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, this)) , this.eClassifiers; -} -; -_.getEFactoryInstance = function getEFactoryInstance(){ - return this.eFactoryInstance; -} -; -_.getExtendedMetaData = function getExtendedMetaData(){ - return this.ePackageExtendedMetaData; -} -; -_.getNsPrefix = function getNsPrefix(){ - return this.nsPrefix; -} -; -_.getNsURI = function getNsURI(){ - return this.nsURI; -} -; -_.setExtendedMetaData = function setExtendedMetaData(ePackageExtendedMetaData){ - this.ePackageExtendedMetaData = ePackageExtendedMetaData; -} -; -_.toString_0 = function toString_129(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_21(this); - result = new StringBuffer_1($toString_21(this)); - result.string += ' (nsURI: '; - $append_3(result, this.nsURI); - result.string += ', nsPrefix: '; - $append_3(result, this.nsPrefix); - result.string += ')'; - return result.string; -} -; -_.nsPrefix = null; -_.nsURI = null; -var resourceFactory; -var Lorg_eclipse_emf_ecore_impl_EPackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl', 179); -function $createPackageContents(this$static){ - if (this$static.isCreated) - return; - this$static.isCreated = true; - this$static.iPropertyHolderEClass = $createEClass(this$static, 0); - this$static.eMapPropertyHolderEClass = $createEClass(this$static, 1); - $createEReference(this$static.eMapPropertyHolderEClass, 0); - this$static.elkGraphElementEClass = $createEClass(this$static, 2); - $createEReference(this$static.elkGraphElementEClass, 1); - $createEAttribute(this$static.elkGraphElementEClass, 2); - this$static.elkShapeEClass = $createEClass(this$static, 3); - $createEAttribute(this$static.elkShapeEClass, 3); - $createEAttribute(this$static.elkShapeEClass, 4); - $createEAttribute(this$static.elkShapeEClass, 5); - $createEAttribute(this$static.elkShapeEClass, 6); - this$static.elkLabelEClass = $createEClass(this$static, 4); - $createEReference(this$static.elkLabelEClass, 7); - $createEAttribute(this$static.elkLabelEClass, 8); - this$static.elkConnectableShapeEClass = $createEClass(this$static, 5); - $createEReference(this$static.elkConnectableShapeEClass, 7); - $createEReference(this$static.elkConnectableShapeEClass, 8); - this$static.elkNodeEClass = $createEClass(this$static, 6); - $createEReference(this$static.elkNodeEClass, 9); - $createEReference(this$static.elkNodeEClass, 10); - $createEReference(this$static.elkNodeEClass, 11); - $createEReference(this$static.elkNodeEClass, 12); - $createEAttribute(this$static.elkNodeEClass, 13); - this$static.elkPortEClass = $createEClass(this$static, 7); - $createEReference(this$static.elkPortEClass, 9); - this$static.elkEdgeEClass = $createEClass(this$static, 8); - $createEReference(this$static.elkEdgeEClass, 3); - $createEReference(this$static.elkEdgeEClass, 4); - $createEReference(this$static.elkEdgeEClass, 5); - $createEReference(this$static.elkEdgeEClass, 6); - $createEAttribute(this$static.elkEdgeEClass, 7); - $createEAttribute(this$static.elkEdgeEClass, 8); - $createEAttribute(this$static.elkEdgeEClass, 9); - $createEAttribute(this$static.elkEdgeEClass, 10); - this$static.elkBendPointEClass = $createEClass(this$static, 9); - $createEAttribute(this$static.elkBendPointEClass, 0); - $createEAttribute(this$static.elkBendPointEClass, 1); - this$static.elkEdgeSectionEClass = $createEClass(this$static, 10); - $createEAttribute(this$static.elkEdgeSectionEClass, 1); - $createEAttribute(this$static.elkEdgeSectionEClass, 2); - $createEAttribute(this$static.elkEdgeSectionEClass, 3); - $createEAttribute(this$static.elkEdgeSectionEClass, 4); - $createEReference(this$static.elkEdgeSectionEClass, 5); - $createEReference(this$static.elkEdgeSectionEClass, 6); - $createEReference(this$static.elkEdgeSectionEClass, 7); - $createEReference(this$static.elkEdgeSectionEClass, 8); - $createEReference(this$static.elkEdgeSectionEClass, 9); - $createEReference(this$static.elkEdgeSectionEClass, 10); - $createEAttribute(this$static.elkEdgeSectionEClass, 11); - this$static.elkPropertyToValueMapEntryEClass = $createEClass(this$static, 11); - $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 0); - $createEAttribute(this$static.elkPropertyToValueMapEntryEClass, 1); - this$static.iPropertyEDataType = $createEDataType(this$static, 12); - this$static.propertyValueEDataType = $createEDataType(this$static, 13); -} - -function $initializePackageContents(this$static){ - var eGenericType, eGenericType0, eGenericType1, eGenericType2, eGenericType3, eGenericType4, eGenericType5, eGenericType6, g1, g2, g3, msgs, msgs0, op, t1; - if (this$static.isInitialized) - return; - this$static.isInitialized = true; - $setName(this$static, 'graph'); - $setNsPrefix(this$static, 'graph'); - $setNsURI(this$static, 'http://www.eclipse.org/elk/ElkGraph'); - $addETypeParameter(this$static.iPropertyEDataType, 'T'); - $add_21($getESuperTypes(this$static.eMapPropertyHolderEClass), this$static.iPropertyHolderEClass); - $add_21($getESuperTypes(this$static.elkGraphElementEClass), this$static.eMapPropertyHolderEClass); - $add_21($getESuperTypes(this$static.elkShapeEClass), this$static.elkGraphElementEClass); - $add_21($getESuperTypes(this$static.elkLabelEClass), this$static.elkShapeEClass); - $add_21($getESuperTypes(this$static.elkConnectableShapeEClass), this$static.elkShapeEClass); - $add_21($getESuperTypes(this$static.elkNodeEClass), this$static.elkConnectableShapeEClass); - $add_21($getESuperTypes(this$static.elkPortEClass), this$static.elkConnectableShapeEClass); - $add_21($getESuperTypes(this$static.elkEdgeEClass), this$static.elkGraphElementEClass); - $add_21($getESuperTypes(this$static.elkEdgeSectionEClass), this$static.eMapPropertyHolderEClass); - $initEClass(this$static.iPropertyHolderEClass, Lorg_eclipse_elk_graph_properties_IPropertyHolder_2_classLit, 'IPropertyHolder', true, true, false); - op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'setProperty'); - t1 = $addETypeParameter_0(op); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = (eGenericType0 = (eGenericType1 = new EGenericTypeImpl , eGenericType1) , eGenericType0); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - g3 = $createEGenericType_0(t1); - $setELowerBound(g2, g3); - $addEParameter_0(op, g1, 'property'); - g1 = $createEGenericType_0(t1); - $addEParameter_0(op, g1, 'value'); - op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getProperty'); - t1 = $addETypeParameter_0(op); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = $createEGenericType_0(t1); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $addEParameter_0(op, g1, 'property'); - g1 = $createEGenericType_0(t1); - msgs0 = $setEGenericType(op, g1, null); - !!msgs0 && msgs0.dispatch_0(); - op = $addEOperation(this$static.iPropertyHolderEClass, this$static.ecorePackage.eBooleanEDataType, 'hasProperty'); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = (eGenericType2 = (eGenericType3 = new EGenericTypeImpl , eGenericType3) , eGenericType2); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $addEParameter_0(op, g1, 'property'); - op = $addEOperation(this$static.iPropertyHolderEClass, this$static.iPropertyHolderEClass, 'copyProperties'); - $addEParameter(op, this$static.iPropertyHolderEClass, 'source'); - op = $addEOperation(this$static.iPropertyHolderEClass, null, 'getAllProperties'); - g1 = $createEGenericType(this$static.ecorePackage.eMapEDataType); - g2 = $createEGenericType(this$static.iPropertyEDataType); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - g3 = (eGenericType4 = (eGenericType5 = new EGenericTypeImpl , eGenericType5) , eGenericType4); - $add_21((!g2.eTypeArguments && (g2.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g2, 1)) , g2.eTypeArguments), g3); - g2 = $createEGenericType(this$static.ecorePackage.eJavaObjectEDataType); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs = $setEGenericType(op, g1, null); - !!msgs && msgs.dispatch_0(); - $initEClass(this$static.eMapPropertyHolderEClass, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, 'EMapPropertyHolder', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eMapPropertyHolderEClass), 0), 18), this$static.elkPropertyToValueMapEntryEClass, null, 'properties', 0, -1, Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit, false, false, true, true, false, false, false); - $initEClass(this$static.elkGraphElementEClass, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, 'ElkGraphElement', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), this$static.elkLabelEClass, castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), 'labels', 0, -1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.elkShapeEClass, Lorg_eclipse_elk_graph_ElkShape_2_classLit, 'ElkShape', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'height', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'width', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkShapeEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkShape_2_classLit, false, false, true, false, true, false); - op = $addEOperation(this$static.elkShapeEClass, null, 'setDimensions'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'width'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'height'); - op = $addEOperation(this$static.elkShapeEClass, null, 'setLocation'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - $initEClass(this$static.elkLabelEClass, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, 'ElkLabel', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), this$static.elkGraphElementEClass, castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 1), 34), this$static.ecorePackage.eStringEDataType, 'text', '', 0, 1, Lorg_eclipse_elk_graph_ElkLabel_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.elkConnectableShapeEClass, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, 'ElkConnectableShape', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), 'outgoingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), 'incomingEdges', 0, -1, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, false, false, true, false, true, false, false); - $initEClass(this$static.elkNodeEClass, Lorg_eclipse_elk_graph_ElkNode_2_classLit, 'ElkNode', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), this$static.elkPortEClass, castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), 'ports', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), 'children', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), 'containedEdges', 0, -1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, false, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkNode_2_classLit, true, true, false, false, true, true); - $initEClass(this$static.elkPortEClass, Lorg_eclipse_elk_graph_ElkPort_2_classLit, 'ElkPort', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkPort_2_classLit, false, false, true, false, false, false, false); - $initEClass(this$static.elkEdgeEClass, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, 'ElkEdge', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), 'containingNode', 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), 'sources', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), 'targets', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), 'sections', 0, -1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, false, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 4), 34), this$static.ecorePackage.eBooleanEDataType, 'hyperedge', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 5), 34), this$static.ecorePackage.eBooleanEDataType, 'hierarchical', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 6), 34), this$static.ecorePackage.eBooleanEDataType, 'selfloop', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 7), 34), this$static.ecorePackage.eBooleanEDataType, 'connected', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdge_2_classLit, true, true, false, false, true, true); - $initEClass(this$static.elkBendPointEClass, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, 'ElkBendPoint', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'x', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkBendPointEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'y', '0.0', 1, 1, Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, false, false, true, false, true, false); - op = $addEOperation(this$static.elkBendPointEClass, null, 'set'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - $initEClass(this$static.elkEdgeSectionEClass, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, 'ElkEdgeSection', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 0), 34), this$static.ecorePackage.eDoubleEDataType, 'startX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 1), 34), this$static.ecorePackage.eDoubleEDataType, 'startY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 2), 34), this$static.ecorePackage.eDoubleEDataType, 'endX', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 3), 34), this$static.ecorePackage.eDoubleEDataType, 'endY', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 4), 18), this$static.elkBendPointEClass, null, 'bendPoints', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), 'parent', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 6), 18), this$static.elkConnectableShapeEClass, null, 'outgoingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 7), 18), this$static.elkConnectableShapeEClass, null, 'incomingShape', 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), 'outgoingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), 'incomingSections', 0, -1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 10), 34), this$static.ecorePackage.eStringEDataType, 'identifier', null, 0, 1, Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, false, false, true, false, true, false); - op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setStartLocation'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - op = $addEOperation(this$static.elkEdgeSectionEClass, null, 'setEndLocation'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'x'); - $addEParameter(op, this$static.ecorePackage.eDoubleEDataType, 'y'); - $initEClass(this$static.elkPropertyToValueMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'ElkPropertyToValueMapEntry', false, false, false); - g1 = $createEGenericType(this$static.iPropertyEDataType); - g2 = (eGenericType6 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType6); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 0), 34), g1, 'key', Ljava_util_Map$Entry_2_classLit, false, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 1), 34), this$static.propertyValueEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); - $initEDataType(this$static.iPropertyEDataType, Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, 'IProperty', true); - $initEDataType(this$static.propertyValueEDataType, Ljava_lang_Object_2_classLit, 'PropertyValue', true); - $createResource(this$static, 'http://www.eclipse.org/elk/ElkGraph'); -} - -function ElkGraphPackageImpl(){ - EPackageImpl_0.call(this, 'http://www.eclipse.org/elk/ElkGraph', ($clinit_ElkGraphFactory() , eINSTANCE)); - this.iPropertyHolderEClass = null; - this.eMapPropertyHolderEClass = null; - this.elkGraphElementEClass = null; - this.elkShapeEClass = null; - this.elkLabelEClass = null; - this.elkConnectableShapeEClass = null; - this.elkNodeEClass = null; - this.elkPortEClass = null; - this.elkEdgeEClass = null; - this.elkBendPointEClass = null; - this.elkEdgeSectionEClass = null; - this.elkPropertyToValueMapEntryEClass = null; - this.iPropertyEDataType = null; - this.propertyValueEDataType = null; - this.isCreated = false; - this.isInitialized = false; -} - -function init_2(){ - var theElkGraphPackage; - if (isInited) - return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 2016); - theElkGraphPackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 555)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph'):new ElkGraphPackageImpl, 555); - isInited = true; - $createPackageContents(theElkGraphPackage); - $initializePackageContents(theElkGraphPackage); - $freeze_0(theElkGraphPackage); - $putStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph', theElkGraphPackage); - return theElkGraphPackage; -} - -defineClass(555, 179, {105:1, 2016:1, 555:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1}, ElkGraphPackageImpl); -_.isCreated = false; -_.isInitialized = false; -var isInited = false; -var Lorg_eclipse_elk_graph_impl_ElkGraphPackageImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphPackageImpl', 555); -function $basicSetParent_0(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, castTo(newParent, 49), 7, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_2(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 7) { - return this$static.eContainer.eInverseRemove(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_LABEL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getParent_1(this$static){ - if (this$static.eFlags_0 >> 16 != 7) - return null; - return castTo(this$static.eContainer, 160); -} - -function $setParent_1(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 7 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_22(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = castTo(newParent, 49).eInverseAdd(this$static, 1, Lorg_eclipse_elk_graph_ElkGraphElement_2_classLit, msgs)); - msgs = $basicSetParent_0(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 7, newParent, newParent)); -} - -function $setText(this$static, newText){ - var oldText; - oldText = this$static.text_0; - this$static.text_0 = newText; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 8, oldText, this$static.text_0)); -} - -function $toString_22(this$static){ - var builder; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_18(this$static); - builder = new StringBuilder_1('ElkLabel'); - !this$static.text_0 || $append_11($append_11((builder.string += ' "' , builder), this$static.text_0), '"'); - $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); - return builder.string; -} - -function ElkLabelImpl(){ -} - -defineClass(354, 724, {105:1, 413:1, 160:1, 137:1, 470:1, 354:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkLabelImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_3(msgs){ - return $eBasicRemoveFromContainerFeature_2(this, msgs); -} -; -_.eGet = function eGet_13(featureID, resolve, coreType){ - switch (featureID) { - case 7: - return $getParent_1(this); - case 8: - return this.text_0; - } - return $eGet_5(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_8(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 7: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_2(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent_0(this, castTo(otherEnd, 160), msgs); - } - return $eInverseAdd_0(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_9(otherEnd, featureID, msgs){ - if (featureID == 7) { - return $basicSetParent_0(this, null, msgs); - } - return $eInverseRemove_1(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_12(featureID){ - switch (featureID) { - case 7: - return !!$getParent_1(this); - case 8: - return !$equals_5('', this.text_0); - } - return $eIsSet_3(this, featureID); -} -; -_.eSet = function eSet_11(featureID, newValue){ - switch (featureID) { - case 7: - $setParent_1(this, castTo(newValue, 160)); - return; - case 8: - $setText(this, castToString(newValue)); - return; - } - $eSet_3(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_11(){ - return $clinit_ElkGraphPackage$Literals() , ELK_LABEL; -} -; -_.eUnset = function eUnset_11(featureID){ - switch (featureID) { - case 7: - $setParent_1(this, null); - return; - case 8: - $setText(this, ''); - return; - } - $eUnset_3(this, featureID); -} -; -_.toString_0 = function toString_130(){ - return $toString_22(this); -} -; -_.text_0 = ''; -var Lorg_eclipse_elk_graph_impl_ElkLabelImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkLabelImpl', 354); -function $basicSetParent_1(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, newParent, 11, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_3(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 11) { - return this$static.eContainer.eInverseRemove(this$static, 10, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_NODE):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getChildren(this$static){ - !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)); - return this$static.children; -} - -function $getContainedEdges(this$static){ - !this$static.containedEdges && (this$static.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this$static, 12, 3)); - return this$static.containedEdges; -} - -function $getParent_2(this$static){ - if (this$static.eFlags_0 >> 16 != 11) - return null; - return castTo(this$static.eContainer, 33); -} - -function $getPorts_3(this$static){ - !this$static.ports && (this$static.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this$static, 9, 9)); - return this$static.ports; -} - -function $isHierarchical_0(this$static){ - return !this$static.children && (this$static.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this$static, 10, 11)) , this$static.children.size_0 > 0; -} - -function $setParent_2(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 11 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_23(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = $eInverseAdd(newParent, this$static, 10, msgs)); - msgs = $basicSetParent_1(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 11, newParent, newParent)); -} - -function $toString_23(this$static){ - var builder, id_0, text_0; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_18(this$static); - builder = new StringBuilder_1('ElkNode'); - id_0 = this$static.identifier; - if (!id_0) { - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - if (this$static.labels.size_0 > 0) { - text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; - !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); - } - } - else { - $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); - } - $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); - return builder.string; -} - -function ElkNodeImpl(){ - ElkConnectableShapeImpl.call(this); -} - -defineClass(239, 725, {105:1, 413:1, 82:1, 160:1, 33:1, 470:1, 239:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkNodeImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_4(msgs){ - return $eBasicRemoveFromContainerFeature_3(this, msgs); -} -; -_.eGet = function eGet_14(featureID, resolve, coreType){ - switch (featureID) { - case 9: - return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , this.ports; - case 10: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children; - case 11: - return $getParent_2(this); - case 12: - return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , this.containedEdges; - case 13: - return $clinit_Boolean() , !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0?true:false; - } - return $eGet_6(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_9(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 9: - return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicAdd_0(this.ports, otherEnd, msgs); - case 10: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicAdd_0(this.children, otherEnd, msgs); - case 11: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_3(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent_1(this, castTo(otherEnd, 33), msgs); - case 12: - return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicAdd_0(this.containedEdges, otherEnd, msgs); - } - return $eInverseAdd_1(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_10(otherEnd, featureID, msgs){ - switch (featureID) { - case 9: - return !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)) , $basicRemove_0(this.ports, otherEnd, msgs); - case 10: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , $basicRemove_0(this.children, otherEnd, msgs); - case 11: - return $basicSetParent_1(this, null, msgs); - case 12: - return !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)) , $basicRemove_0(this.containedEdges, otherEnd, msgs); - } - return $eInverseRemove_2(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_13(featureID){ - switch (featureID) { - case 9: - return !!this.ports && this.ports.size_0 != 0; - case 10: - return !!this.children && this.children.size_0 != 0; - case 11: - return !!$getParent_2(this); - case 12: - return !!this.containedEdges && this.containedEdges.size_0 != 0; - case 13: - return !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)) , this.children.size_0 > 0; - } - return $eIsSet_4(this, featureID); -} -; -_.eSet = function eSet_12(featureID, newValue){ - switch (featureID) { - case 9: - !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); - $clear_13(this.ports); - !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); - $addAll_9(this.ports, castTo(newValue, 14)); - return; - case 10: - !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); - $clear_13(this.children); - !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); - $addAll_9(this.children, castTo(newValue, 14)); - return; - case 11: - $setParent_2(this, castTo(newValue, 33)); - return; - case 12: - !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); - $clear_13(this.containedEdges); - !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); - $addAll_9(this.containedEdges, castTo(newValue, 14)); - return; - } - $eSet_4(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_12(){ - return $clinit_ElkGraphPackage$Literals() , ELK_NODE; -} -; -_.eUnset = function eUnset_12(featureID){ - switch (featureID) { - case 9: - !this.ports && (this.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, this, 9, 9)); - $clear_13(this.ports); - return; - case 10: - !this.children && (this.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, this, 10, 11)); - $clear_13(this.children); - return; - case 11: - $setParent_2(this, null); - return; - case 12: - !this.containedEdges && (this.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, this, 12, 3)); - $clear_13(this.containedEdges); - return; - } - $eUnset_4(this, featureID); -} -; -_.toString_0 = function toString_131(){ - return $toString_23(this); -} -; -var Lorg_eclipse_elk_graph_impl_ElkNodeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkNodeImpl', 239); -function $basicSetParent_2(this$static, newParent, msgs){ - msgs = $eBasicSetContainer(this$static, newParent, 9, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_4(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 9) { - return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_elk_graph_ElkNode_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_PORT):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getParent_3(this$static){ - if (this$static.eFlags_0 >> 16 != 9) - return null; - return castTo(this$static.eContainer, 33); -} - -function $setParent_3(this$static, newParent){ - var eContainerFeatureID, msgs; - if (newParent != this$static.eContainer || this$static.eFlags_0 >> 16 != 9 && !!newParent) { - if (isAncestor(this$static, newParent)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_24(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newParent && (msgs = $eInverseAdd(newParent, this$static, 9, msgs)); - msgs = $basicSetParent_2(this$static, newParent, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 9, newParent, newParent)); -} - -function $toString_24(this$static){ - var builder, id_0, text_0; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_18(this$static); - builder = new StringBuilder_1('ElkPort'); - id_0 = this$static.identifier; - if (!id_0) { - !this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)); - if (this$static.labels.size_0 > 0) { - text_0 = (!this$static.labels && (this$static.labels = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkLabel_2_classLit, this$static, 1, 7)) , castTo($get_20(this$static.labels, 0), 137)).text_0; - !text_0 || $append_11($append_11((builder.string += ' "' , builder), text_0), '"'); - } - } - else { - $append_11($append_11((builder.string += ' "' , builder), id_0), '"'); - } - $append_11($append_6($append_11($append_6($append_11($append_6($append_11($append_6((builder.string += ' (' , builder), this$static.x_0), ','), this$static.y_0), ' | '), this$static.width_0), ','), this$static.height), ')'); - return builder.string; -} - -function ElkPortImpl(){ - ElkConnectableShapeImpl.call(this); -} - -defineClass(186, 725, {105:1, 413:1, 82:1, 160:1, 118:1, 470:1, 186:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPortImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_5(msgs){ - return $eBasicRemoveFromContainerFeature_4(this, msgs); -} -; -_.eGet = function eGet_15(featureID, resolve, coreType){ - if (featureID == 9) { - return $getParent_3(this); - } - return $eGet_6(this, featureID, resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_10(otherEnd, featureID, msgs){ - var eContainerFeatureID; - switch (featureID) { - case 9: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_4(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetParent_2(this, castTo(otherEnd, 33), msgs); - } - return $eInverseAdd_1(this, otherEnd, featureID, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_11(otherEnd, featureID, msgs){ - if (featureID == 9) { - return $basicSetParent_2(this, null, msgs); - } - return $eInverseRemove_2(this, otherEnd, featureID, msgs); -} -; -_.eIsSet = function eIsSet_14(featureID){ - if (featureID == 9) { - return !!$getParent_3(this); - } - return $eIsSet_4(this, featureID); -} -; -_.eSet = function eSet_13(featureID, newValue){ - switch (featureID) { - case 9: - $setParent_3(this, castTo(newValue, 33)); - return; - } - $eSet_4(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_13(){ - return $clinit_ElkGraphPackage$Literals() , ELK_PORT; -} -; -_.eUnset = function eUnset_13(featureID){ - switch (featureID) { - case 9: - $setParent_3(this, null); - return; - } - $eUnset_4(this, featureID); -} -; -_.toString_0 = function toString_132(){ - return $toString_24(this); -} -; -var Lorg_eclipse_elk_graph_impl_ElkPortImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPortImpl', 186); -var Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit = createForInterface('org.eclipse.emf.common.util', 'BasicEMap/Entry'); -function $setTypedKey(this$static, newKey){ - var oldKey; - oldKey = this$static.key; - this$static.key = newKey; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); -} - -function $setTypedValue(this$static, newValue){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = newValue; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); -} - -function ElkPropertyToValueMapEntryImpl(){ -} - -defineClass(1092, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPropertyToValueMapEntryImpl); -_.equals_0 = function equals_183(other){ - return this === other; -} -; -_.getKey = function getKey_8(){ - return this.key; -} -; -_.hashCode_1 = function hashCode_72(){ - return getHashCode_0(this); -} -; -_.setKey = function setKey(key){ - $setTypedKey(this, castTo(key, 146)); -} -; -_.eGet = function eGet_16(featureID, resolve, coreType){ - switch (featureID) { - case 0: - return this.key; - case 1: - return this.value_0; - } - return $eGet(this, featureID, resolve, coreType); -} -; -_.eIsSet = function eIsSet_15(featureID){ - switch (featureID) { - case 0: - return !!this.key; - case 1: - return this.value_0 != null; - } - return $eIsSet(this, featureID); -} -; -_.eSet = function eSet_14(featureID, newValue){ - switch (featureID) { - case 0: - $setTypedKey(this, castTo(newValue, 146)); - return; - case 1: - $setTypedValue(this, newValue); - return; - } - $eSet(this, featureID, newValue); -} -; -_.eStaticClass = function eStaticClass_14(){ - return $clinit_ElkGraphPackage$Literals() , ELK_PROPERTY_TO_VALUE_MAP_ENTRY; -} -; -_.eUnset = function eUnset_14(featureID){ - switch (featureID) { - case 0: - $setTypedKey(this, null); - return; - case 1: - $setTypedValue(this, null); - return; - } - $eUnset(this, featureID); -} -; -_.getHash = function getHash(){ - var theKey; - if (this.hash == -1) { - theKey = this.key; - this.hash = !theKey?0:hashCode__I__devirtual$(theKey); - } - return this.hash; -} -; -_.getValue = function getValue_10(){ - return this.value_0; -} -; -_.setHash = function setHash(hash){ - this.hash = hash; -} -; -_.setValue = function setValue_11(value_0){ - var oldValue; - oldValue = this.value_0; - $setTypedValue(this, value_0); - return oldValue; -} -; -_.toString_0 = function toString_133(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_16(this); - result = new StringBuilder; - $append_11($append_11($append_11(result, this.key?this.key.getId():'null'), ' -> '), valueOf_7(this.value_0)); - return result.string; -} -; -_.hash = -1; -_.value_0 = null; -var Lorg_eclipse_elk_graph_impl_ElkPropertyToValueMapEntryImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPropertyToValueMapEntryImpl', 1092); -function $addJsonArr(arr, jv){ - var size_0; - size_0 = arr.jsArray.length; - $get_8(arr, size_0); - $set0(arr, size_0, jv); -} - -function $addJsonArr_0(arr, o){ - var _doubleValue, _matched; - _matched = false; - if (instanceOfString(o)) { - _matched = true; - $addJsonArr(arr, new JSONString(castToString(o))); - } - if (!_matched) { - if (instanceOf(o, 236)) { - _matched = true; - $addJsonArr(arr, (_doubleValue = doubleValue__D__devirtual$(castTo(o, 236)) , new JSONNumber(_doubleValue))); - } - } - if (!_matched) { - throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); - } -} - -function $addJsonObj(o, element, n){ - var _doubleValue, _jSONNumber; - _doubleValue = doubleValue__D__devirtual$(n); - _jSONNumber = new JSONNumber(_doubleValue); - $put_5(o, element, _jSONNumber); -} - -function $addJsonObj_0(this$static, o, element, obj){ - var _matched; - _matched = false; - if (instanceOfString(obj)) { - _matched = true; - $addJsonObj_1(o, element, castToString(obj)); - } - if (!_matched) { - if (instanceOfBoolean(obj)) { - _matched = true; - $addJsonObj_0(this$static, o, element, obj); - } - } - if (!_matched) { - if (instanceOf(obj, 236)) { - _matched = true; - $addJsonObj(o, element, castTo(obj, 236)); - } - } - if (!_matched) { - throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); - } -} - -function $addJsonObj_1(o, element, s){ - var _jSONString; - _jSONString = new JSONString(s); - $put_5(o, element, _jSONString); -} - -function $asId(id_0){ - var _isInt, _matched; - _matched = false; - if (instanceOf(id_0, 204)) { - _matched = true; - return castTo(id_0, 204).value_0; - } - if (!_matched) { - if (instanceOf(id_0, 258)) { - _isInt = castTo(id_0, 258).value_0 % 1 == 0; - if (_isInt) { - _matched = true; - return valueOf_4($intValue(castTo(id_0, 258).value_0)); - } - } - } - throw toJs(new JsonImportException("Id must be a string or an integer: '" + id_0 + "'.")); -} - -function $getId(o){ - var _containsKey, _not, _xblockexpression; - _xblockexpression = null; - _containsKey = 'id' in o.jsObject; - _not = !_containsKey; - if (_not) { - throw toJs(new JsonImportException('Every element must have an id.')); - } - _xblockexpression = $asId($get_9(o, 'id')); - return _xblockexpression; -} - -function $optDouble(o, element){ - var _containsKey, num; - _containsKey = element in o.jsObject; - if (_containsKey) { - num = $get_9(o, element).isNumber(); - if (num) { - return num.value_0; - } - } - return null; -} - -function $optJSONArray(arr, element){ - var _get, _isArray; - _get = $get_9(arr, element); - _isArray = null; - !!_get && (_isArray = _get.isArray_0()); - return _isArray; -} - -function $optJSONObject(arr, i){ - var _get, _isObject; - _get = $get_8(arr, i); - _isObject = null; - !!_get && (_isObject = _get.isObject()); - return _isObject; -} - -function $optJSONObject_0(o, element){ - var _get, _isObject; - _get = $get_9(o, element); - _isObject = null; - !!_get && (_isObject = _get.isObject()); - return _isObject; -} - -function $optString(o, element){ - var _get, _stringVal; - _get = $get_9(o, element); - _stringVal = null; - !!_get && (_stringVal = $stringVal(_get)); - return _stringVal; -} - -function $stringVal(v){ - var _matched, _switchResult; - _switchResult = null; - _matched = false; - if (instanceOf(v, 204)) { - _matched = true; - _switchResult = castTo(v, 204).value_0; - } - if (!_matched) { - if (instanceOf(v, 258)) { - _matched = true; - _switchResult = '' + castTo(v, 258).value_0; - } - } - if (!_matched) { - if (instanceOf(v, 483)) { - _matched = true; - _switchResult = '' + castTo(v, 483).value_0; - } - } - if (!_matched) { - throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); - } - return _switchResult; -} - -function JsonAdapter(){ -} - -defineClass(984, 1, {}, JsonAdapter); -var Lorg_eclipse_elk_graph_json_JsonAdapter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonAdapter', 984); -function JsonImportException(message){ - RuntimeException_0.call(this, message); -} - -defineClass(210, 60, $intern_43, JsonImportException); -var Lorg_eclipse_elk_graph_json_JsonImportException_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImportException', 210); -function $_idByElement(this$static, section){ - return $get_5($inverse(this$static.edgeSectionIdMap), section); -} - -function $_idByElement_0(this$static, node){ - return $get_5($inverse(this$static.nodeIdMap), node); -} - -function $_idByElement_1(this$static, port){ - return $get_5($inverse(this$static.portIdMap), port); -} - -function $_transferLayoutInt(this$static, edge){ - var _function, _function_1, _hasProperty, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, edgeId, jps, jsonJPs, jsonObj, sections; - jsonObj = castTo($get_10(this$static.edgeJsonMap, edge), 183); - if (!jsonObj) { - throw toJs(new JsonImportException('Edge did not exist in input.')); - } - edgeId = $getId(jsonObj); - _isNullOrEmpty = isNullOrEmpty((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections)); - _not = !_isNullOrEmpty; - if (_not) { - sections = new JSONArray; - _function = new JsonImporter$lambda$36$Type(this$static, edgeId, sections); - forEach_42((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), _function); - $put_5(jsonObj, 'sections', sections); - } - _hasProperty = $hasProperty_0(edge, ($clinit_CoreOptions() , JUNCTION_POINTS_0)); - if (_hasProperty) { - jps = castTo($getProperty_0(edge, JUNCTION_POINTS_0), 74); - _isNullOrEmpty_1 = !jps || isEmpty_35(jps); - _not_1 = !_isNullOrEmpty_1; - if (_not_1) { - jsonJPs = new JSONArray; - _function_1 = new JsonImporter$lambda$40$Type(jsonJPs); - $forEach_0(jps, _function_1); - $put_5(jsonObj, 'junctionPoints', jsonJPs); - } - } - $addJsonObj_1(jsonObj, 'container', $getContainingNode(edge).identifier); - return null; -} - -function $_transferLayoutInt_0(this$static, label_0){ - var jsonObj; - jsonObj = $get_10(this$static.labelJsonMap, label_0); - $transferShapeLayout(label_0, jsonObj); - return null; -} - -function $_transferLayoutInt_1(this$static, node){ - var jsonObj; - jsonObj = $get_4(this$static.nodeJsonMap, node); - if (jsonObj == null) { - throw toJs(new JsonImportException('Node did not exist in input.')); - } - $transferShapeLayout(node, jsonObj); - return null; -} - -function $_transferLayoutInt_2(this$static, port){ - var jsonObj; - jsonObj = $get_10(this$static.portJsonMap, port); - if (jsonObj == null) { - throw toJs(new JsonImportException('Port did not exist in input.')); - } - $transferShapeLayout(port, jsonObj); - return null; -} - -function $idByElement(this$static, node){ - if (instanceOf(node, 239)) { - return $_idByElement_0(this$static, castTo(node, 33)); - } - else if (instanceOf(node, 186)) { - return $_idByElement_1(this$static, castTo(node, 118)); - } - else if (instanceOf(node, 439)) { - return $_idByElement(this$static, castTo(node, 202)); - } - else { - throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); - } -} - -function $lambda$0_13(this$static, parent_1, children_1){ - var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; - if (children_1) { - _sizeJsonArr = children_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(children_1, i.value_0); - !!_optJSONObject && $transformNode_0(this$static, _optJSONObject, parent_1); - } - } -} - -function $lambda$1_7(this$static, node_1, edges_1){ - var _doubleDotLessThan, _sizeJsonArr, edge, i, i$iterator; - if (edges_1) { - _sizeJsonArr = edges_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - edge = $optJSONObject(edges_1, i.value_0); - 'sources' in edge.jsObject || 'targets' in edge.jsObject?$transformEdge_1(this$static, edge, node_1):$transformPrimitiveEdge(this$static, edge, node_1); - updateContainment(castTo($get_10(this$static.edgeIdMap, $getId(edge)), 79)); - } - } -} - -function $lambda$10_0(section_1, bendPoint_1){ - createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); -} - -function $lambda$11(this$static, edge_1, sources_1){ - var _doubleDotLessThan, _sizeJsonArr, _sources, i, i$iterator, sourceElement; - if (sources_1) { - _sizeJsonArr = sources_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - sourceElement = $shapeById(this$static, $asId($get_8(sources_1, i.value_0))); - if (sourceElement) { - _sources = (!edge_1.sources && (edge_1.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 4, 7)) , edge_1.sources); - $add_21(_sources, sourceElement); - } - } - } -} - -function $lambda$12_0(this$static, edge_1, targets_1){ - var _doubleDotLessThan, _sizeJsonArr, _targets, i, i$iterator, targetElement; - if (targets_1) { - _sizeJsonArr = targets_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - targetElement = $shapeById(this$static, $asId($get_8(targets_1, i.value_0))); - if (targetElement) { - _targets = (!edge_1.targets && (edge_1.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge_1, 5, 8)) , edge_1.targets); - $add_21(_targets, targetElement); - } - } - } -} - -function $lambda$13(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, sections_3){ - var _doubleDotLessThan, _function_1, _optJSONObject, _sizeJsonArr, i, i$iterator; - if (sections_3) { - _sizeJsonArr = sections_3.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(sections_3, i.value_0); - _function_1 = new JsonImporter$lambda$14$Type(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3); - $lambda$14_0(_function_1.$$outer_0, _function_1.edge_1, _function_1.incomingSectionIdentifiers_2, _function_1.outgoingSectionIdentifiers_3, _optJSONObject); - } - } -} - -function $lambda$14_0(this$static, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3, jsonSection_3){ - var _function_2, _function_3, _function_4, _function_5, _optJSONArray_1, _optJSONArray_2, _optString, _optString_1, elkSection, jsonObj, _optJSONObject, _function, _optJSONObject_1, _function_1, _optJSONArray, _function_2_0; - elkSection = $register_3(this$static, createEdgeSection(edge_1), jsonSection_3); - $setIdentifier_0(elkSection, $optString(jsonSection_3, 'id')); - _xblockexpression = null; - jsonObj = jsonSection_3; - _optJSONObject = $optJSONObject_0(jsonObj, 'startPoint'); - _function = new JsonImporter$lambda$19$Type(elkSection); - $lambda$19_0(_function.section_1, _optJSONObject); - _optJSONObject_1 = $optJSONObject_0(jsonObj, 'endPoint'); - _function_1 = new JsonImporter$lambda$22$Type(elkSection); - $lambda$22_0(_function_1.section_1, _optJSONObject_1); - _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); - _function_2_0 = new JsonImporter$lambda$25$Type(elkSection); - $lambda$25_0(_function_2_0.section_1, _optJSONArray); - _optString = $optString(jsonSection_3, 'incomingShape'); - _function_2 = new JsonImporter$lambda$15$Type(this$static, elkSection); - $lambda$15(_function_2.$$outer_0, _function_2.elkSection_1, _optString); - _optString_1 = $optString(jsonSection_3, 'outgoingShape'); - _function_3 = new JsonImporter$lambda$16$Type(this$static, elkSection); - $lambda$16(_function_3.$$outer_0, _function_3.elkSection_1, _optString_1); - _optJSONArray_1 = $optJSONArray(jsonSection_3, 'incomingSections'); - _function_4 = new JsonImporter$lambda$17$Type(incomingSectionIdentifiers_2, elkSection); - $lambda$17(_function_4.incomingSectionIdentifiers_1, _function_4.elkSection_2, _optJSONArray_1); - _optJSONArray_2 = $optJSONArray(jsonSection_3, 'outgoingSections'); - _function_5 = new JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_3, elkSection); - $lambda$18_0(_function_5.outgoingSectionIdentifiers_1, _function_5.elkSection_2, _optJSONArray_2); -} - -function $lambda$15(this$static, elkSection_1, jsonShapeId_1){ - jsonShapeId_1 != null && $setIncomingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); -} - -function $lambda$16(this$static, elkSection_1, jsonShapeId_1){ - jsonShapeId_1 != null && $setOutgoingShape(elkSection_1, $shapeById(this$static, jsonShapeId_1)); -} - -function $lambda$17(incomingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ - var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; - if (jsonSectionIds_2) { - _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; - _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); - for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { - j = castTo(j$iterator.next_1(), 19); - $put(incomingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); - } - } -} - -function $lambda$18_0(outgoingSectionIdentifiers_1, elkSection_2, jsonSectionIds_2){ - var _doubleDotLessThan_1, _sizeJsonArr_1, j, j$iterator; - if (jsonSectionIds_2) { - _sizeJsonArr_1 = jsonSectionIds_2.jsArray.length; - _doubleDotLessThan_1 = new ExclusiveRange(_sizeJsonArr_1); - for (j$iterator = (_doubleDotLessThan_1.last - _doubleDotLessThan_1.first) * _doubleDotLessThan_1.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan_1); j$iterator.hasNext_0();) { - j = castTo(j$iterator.next_1(), 19); - $put(outgoingSectionIdentifiers_1, elkSection_2, $asId($get_8(jsonSectionIds_2, j.value_0))); - } - } -} - -function $lambda$19_0(section_1, startPoint_1){ - var _function_1, _function_2, _optDouble, _optDouble_1; - if (startPoint_1) { - _optDouble = $optDouble(startPoint_1, 'x'); - _function_1 = new JsonImporter$lambda$20$Type(section_1); - $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(startPoint_1, 'y'); - _function_2 = new JsonImporter$lambda$21$Type(section_1); - $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } - else { - throw toJs(new JsonImportException('All edge sections need a start point.')); - } -} - -function $lambda$2_5(this$static, children_0){ - var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator; - if (children_0) { - _sizeJsonArr = children_0.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(children_0, i.value_0); - !!_optJSONObject && $transformEdges_2(this$static, _optJSONObject); - } - } -} - -function $lambda$22_0(section_1, endPoint_1){ - var _function_2, _function_3, _optDouble, _optDouble_1; - if (endPoint_1) { - _optDouble = $optDouble(endPoint_1, 'x'); - _function_2 = new JsonImporter$lambda$23$Type(section_1); - $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(endPoint_1, 'y'); - _function_3 = new JsonImporter$lambda$24$Type(section_1); - $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } - else { - throw toJs(new JsonImportException('All edge sections need an end point.')); - } -} - -function $lambda$25_0(section_1, bendPoints_1){ - var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; - if (bendPoints_1) { - _sizeJsonArr = bendPoints_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); - _function_3 = new JsonImporter$lambda$26$Type(section_1); - $lambda$26_0(_function_3.section_1, _optJSONObject_2); - } - } -} - -function $lambda$26_0(section_1, bendPoint_1){ - createBendPoint(section_1, $doubleValue($optDouble(bendPoint_1, 'x')), $doubleValue($optDouble(bendPoint_1, 'y'))); -} - -function $lambda$27(opts_1, layoutData_2, k_2){ - var _jsonObj, _stringVal, value_0; - _jsonObj = $get_9(opts_1, k_2); - _stringVal = null; - !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); - value_0 = _stringVal; - $setOption(layoutData_2, k_2, value_0); -} - -function $lambda$28(opts_1, individualSpacings_2, k_2){ - var _jsonObj, _stringVal, value_0; - _jsonObj = $get_9(opts_1, k_2); - _stringVal = null; - !!_jsonObj && (_stringVal = $stringVal(_jsonObj)); - value_0 = _stringVal; - $setOption(individualSpacings_2, k_2, value_0); -} - -function $lambda$29_0(this$static, element_1, labels_1){ - var _doubleDotLessThan, _hasJsonObj, _sizeJsonArr, i, i$iterator, jsonLabel, label_0; - if (labels_1) { - _sizeJsonArr = labels_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - jsonLabel = $optJSONObject(labels_1, i.value_0); - if (jsonLabel) { - label_0 = createLabel($optString(jsonLabel, 'text'), element_1); - $put_6(this$static.labelJsonMap, label_0, jsonLabel); - _hasJsonObj = 'id' in jsonLabel.jsObject; - _hasJsonObj && $setIdentifier(label_0, $optString(jsonLabel, 'id')); - $transformProperties(jsonLabel, label_0); - $transformShapeLayout(jsonLabel, label_0); - } - } - } -} - -function $lambda$3_4(section_1, srcPnt_1){ - var _function_1, _function_2, _optDouble, _optDouble_1; - if (srcPnt_1) { - _optDouble = $optDouble(srcPnt_1, 'x'); - _function_1 = new JsonImporter$lambda$4$Type(section_1); - $setStartX(_function_1.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(srcPnt_1, 'y'); - _function_2 = new JsonImporter$lambda$5$Type(section_1); - $setStartY(_function_2.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } -} - -function $lambda$30(this$static, parent_1, ports_1){ - var _doubleDotLessThan, _optJSONObject, _sizeJsonArr, i, i$iterator, port, port_0, elkPort; - if (ports_1) { - _sizeJsonArr = ports_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject = $optJSONObject(ports_1, i.value_0); - !!_optJSONObject && (_xblockexpression = null , port = $register_5(this$static, (port_0 = ($clinit_ElkGraphFactory() , elkPort = new ElkPortImpl , elkPort) , !!parent_1 && $setParent_3(port_0, parent_1) , port_0), _optJSONObject) , $setIdentifier(port, $optString(_optJSONObject, 'id')) , $transformProperties(_optJSONObject, port) , $transformShapeLayout(_optJSONObject, port) , $transformLabels(this$static, _optJSONObject, port)); - } - } -} - -function $lambda$31(shape_1, it_1){ - $setX_2(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$32(shape_1, it_1){ - $setY_3(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$33(shape_1, it_1){ - $setWidth_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$34(shape_1, it_1){ - $setHeight_0(shape_1, it_1 == null || isInfinite((checkCriticalNotNull(it_1) , it_1)) || isNaN((checkCriticalNotNull(it_1) , it_1))?0:(checkCriticalNotNull(it_1) , it_1)); -} - -function $lambda$36(this$static, edgeId_1, sections_2, elkSection_2, i_3){ - var _function_1, _function_2, _function_3, _incomingShape, _isEmpty, _isEmpty_1, _isNullOrEmpty_1, _jSONString, _jsonObject, _not_1, _not_2, _not_3, _outgoingShape, _plus, _plus_1, _tripleNotEquals, _tripleNotEquals_1, bendPoints, endPoint, incomingSections, jsonSection, maybeSection, outgoingSections, startPoint; - maybeSection = $get_10(this$static.edgeSectionJsonMap, elkSection_2); - if (maybeSection == null) { - maybeSection = new JSONObject; - _jsonObject = castTo(maybeSection, 183); - _plus = edgeId_1 + '_s'; - _plus_1 = _plus + i_3; - _jSONString = new JSONString(_plus_1); - $put_5(_jsonObject, 'id', _jSONString); - } - jsonSection = castTo(maybeSection, 183); - $addJsonArr(sections_2, jsonSection); - startPoint = new JSONObject; - $addJsonObj(startPoint, 'x', elkSection_2.startX); - $addJsonObj(startPoint, 'y', elkSection_2.startY); - $put_5(jsonSection, 'startPoint', startPoint); - endPoint = new JSONObject; - $addJsonObj(endPoint, 'x', elkSection_2.endX); - $addJsonObj(endPoint, 'y', elkSection_2.endY); - $put_5(jsonSection, 'endPoint', endPoint); - _isNullOrEmpty_1 = isNullOrEmpty((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints)); - _not_1 = !_isNullOrEmpty_1; - if (_not_1) { - bendPoints = new JSONArray; - _function_1 = new JsonImporter$lambda$37$Type(bendPoints); - $forEach_0((!elkSection_2.bendPoints && (elkSection_2.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, elkSection_2, 5)) , elkSection_2.bendPoints), _function_1); - $put_5(jsonSection, 'bendPoints', bendPoints); - } - _incomingShape = $getIncomingShape(elkSection_2); - _tripleNotEquals = !!_incomingShape; - _tripleNotEquals && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'incomingShape', $idByElement(this$static, $getIncomingShape(elkSection_2))); - _outgoingShape = $getOutgoingShape(elkSection_2); - _tripleNotEquals_1 = !!_outgoingShape; - _tripleNotEquals_1 && $addJsonObj_0(this$static._jsonAdapter, jsonSection, 'outgoingShape', $idByElement(this$static, $getOutgoingShape(elkSection_2))); - _isEmpty = (!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections).size_0 == 0; - _not_2 = !_isEmpty; - if (_not_2) { - incomingSections = new JSONArray; - _function_2 = new JsonImporter$lambda$38$Type(this$static, incomingSections); - $forEach_0((!elkSection_2.incomingSections && (elkSection_2.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 10, 9)) , elkSection_2.incomingSections), _function_2); - $put_5(jsonSection, 'incomingSections', incomingSections); - } - _isEmpty_1 = (!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections).size_0 == 0; - _not_3 = !_isEmpty_1; - if (_not_3) { - outgoingSections = new JSONArray; - _function_3 = new JsonImporter$lambda$39$Type(this$static, outgoingSections); - $forEach_0((!elkSection_2.outgoingSections && (elkSection_2.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, elkSection_2, 9, 10)) , elkSection_2.outgoingSections), _function_3); - $put_5(jsonSection, 'outgoingSections', outgoingSections); - } -} - -function $lambda$37(bendPoints_1, pnt_1){ - var jsonPnt; - jsonPnt = new JSONObject; - $addJsonObj(jsonPnt, 'x', pnt_1.x_0); - $addJsonObj(jsonPnt, 'y', pnt_1.y_0); - $addJsonArr(bendPoints_1, jsonPnt); -} - -function $lambda$38(this$static, incomingSections_1, sec_1){ - $addJsonArr_0(incomingSections_1, $idByElement(this$static, sec_1)); -} - -function $lambda$39(this$static, outgoingSections_1, sec_1){ - $addJsonArr_0(outgoingSections_1, $idByElement(this$static, sec_1)); -} - -function $lambda$40(jsonJPs_1, jp_1){ - var jsonPnt; - jsonPnt = new JSONObject; - $addJsonObj(jsonPnt, 'x', jp_1.x_0); - $addJsonObj(jsonPnt, 'y', jp_1.y_0); - $addJsonArr(jsonJPs_1, jsonPnt); -} - -function $lambda$6_0(section_1, tgtPnt_1){ - var _function_2, _function_3, _optDouble, _optDouble_1; - if (tgtPnt_1) { - _optDouble = $optDouble(tgtPnt_1, 'x'); - _function_2 = new JsonImporter$lambda$7$Type(section_1); - $setEndX(_function_2.section_0, (checkCriticalNotNull(_optDouble) , _optDouble)); - _optDouble_1 = $optDouble(tgtPnt_1, 'y'); - _function_3 = new JsonImporter$lambda$8$Type(section_1); - $setEndY(_function_3.section_0, (checkCriticalNotNull(_optDouble_1) , _optDouble_1)); - } -} - -function $lambda$9_1(section_1, bendPoints_1){ - var _doubleDotLessThan, _function_3, _optJSONObject_2, _sizeJsonArr, i, i$iterator; - if (bendPoints_1) { - _sizeJsonArr = bendPoints_1.jsArray.length; - _doubleDotLessThan = new ExclusiveRange(_sizeJsonArr); - for (i$iterator = (_doubleDotLessThan.last - _doubleDotLessThan.first) * _doubleDotLessThan.step < 0?($clinit_ExclusiveRange() , EMPTY_LIST_ITERATOR):new ExclusiveRange$RangeIterator(_doubleDotLessThan); i$iterator.hasNext_0();) { - i = castTo(i$iterator.next_1(), 19); - _optJSONObject_2 = $optJSONObject(bendPoints_1, i.value_0); - _function_3 = new JsonImporter$lambda$10$Type(section_1); - $lambda$10_0(_function_3.section_1, _optJSONObject_2); - } - } -} - -function $register_2(this$static, edge, obj){ - var id_0; - id_0 = $getId(obj); - $put_6(this$static.edgeIdMap, id_0, edge); - $put_6(this$static.edgeJsonMap, edge, obj); - return edge; -} - -function $register_3(this$static, edgeSection, obj){ - var id_0; - id_0 = $getId(obj); - $put_3(this$static.edgeSectionIdMap, id_0, edgeSection); - $put_6(this$static.edgeSectionJsonMap, edgeSection, obj); - return edgeSection; -} - -function $register_4(this$static, node, obj){ - var id_0; - id_0 = $getId(obj); - $put_3(this$static.nodeIdMap, id_0, node); - $put_3(this$static.nodeJsonMap, node, obj); - return node; -} - -function $register_5(this$static, port, obj){ - var id_0; - id_0 = $getId(obj); - $put_3(this$static.portIdMap, id_0, port); - $put_6(this$static.portJsonMap, port, obj); - return port; -} - -function $setOption(e, id_0, value_0){ - var _xblockexpression, _xblockexpression_1, _xifexpression, _xifexpression_1, optionData, parsed; - _xblockexpression = null; - optionData = $getOptionDataBySuffix(getInstance(), id_0); - _xifexpression = null; - if (optionData) { - _xblockexpression_1 = null; - parsed = $parseValue(optionData, value_0); - _xifexpression_1 = null; - parsed != null && (_xifexpression_1 = e.setProperty(optionData, parsed)); - _xblockexpression_1 = _xifexpression_1; - _xifexpression = _xblockexpression_1; - } - _xblockexpression = _xifexpression; - return _xblockexpression; -} - -function $shapeById(this$static, id_0){ - var node, port; - node = castTo($get_4(this$static.nodeIdMap, id_0), 33); - if (node) { - return node; - } - port = castTo($get_4(this$static.portIdMap, id_0), 118); - if (port) { - return port; - } - throw toJs(new JsonImportException('Referenced shape does not exist: ' + id_0)); -} - -function $transferLayoutInt(this$static, node){ - if (instanceOf(node, 239)) { - return $_transferLayoutInt_1(this$static, castTo(node, 33)); - } - else if (instanceOf(node, 186)) { - return $_transferLayoutInt_2(this$static, castTo(node, 118)); - } - else if (instanceOf(node, 354)) { - return $_transferLayoutInt_0(this$static, castTo(node, 137)); - } - else if (instanceOf(node, 352)) { - return $_transferLayoutInt(this$static, castTo(node, 79)); - } - else if (node) { - return null; - } - else { - throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [node]))))); - } -} - -function $transferShapeLayout(shape_0, jsonObjA){ - var jsonObj; - jsonObj = castTo(jsonObjA, 183); - $addJsonObj(jsonObj, 'x', shape_0.x_0); - $addJsonObj(jsonObj, 'y', shape_0.y_0); - $addJsonObj(jsonObj, 'width', shape_0.width_0); - $addJsonObj(jsonObj, 'height', shape_0.height); -} - -function $transformChildNodes(this$static, jsonNodeA, parent_0){ - var _function, _optJSONArray, _xblockexpression, jsonNode; - _xblockexpression = null; - jsonNode = jsonNodeA; - _optJSONArray = $optJSONArray(jsonNode, 'children'); - _function = new JsonImporter$lambda$0$Type(this$static, parent_0); - _xblockexpression = ($lambda$0_13(_function.$$outer_0, _function.parent_1, _optJSONArray) , _optJSONArray); - return _xblockexpression; -} - -function $transformEdge_1(this$static, jsonObjA, parent_0){ - var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, _xblockexpression, edge, jsonObj; - _xblockexpression = null; - jsonObj = jsonObjA; - edge = $register_2(this$static, createEdge(parent_0), jsonObj); - $setIdentifier(edge, $optString(jsonObj, 'id')); - _optJSONArray = $optJSONArray(jsonObj, 'sources'); - _function = new JsonImporter$lambda$11$Type(this$static, edge); - $lambda$11(_function.$$outer_0, _function.edge_1, _optJSONArray); - _optJSONArray_1 = $optJSONArray(jsonObj, 'targets'); - _function_1 = new JsonImporter$lambda$12$Type(this$static, edge); - $lambda$12_0(_function_1.$$outer_0, _function_1.edge_1, _optJSONArray_1); - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { - _idSave = $optString(jsonObj, 'id'); - _plus = "An edge must have at least one source and one target (edge id: '" + _idSave; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - $transformProperties(jsonObj, edge); - $transformEdgeSections(this$static, jsonObj, edge); - _xblockexpression = $transformLabels(this$static, jsonObj, edge); - return _xblockexpression; -} - -function $transformEdgeSections(this$static, jsonObjA, edge){ - var _function, _get, _get_1, _idSave, _incomingSections, _keySet, _keySet_1, _optJSONArray, _outgoingSections, _plus, _plus_1, id_0, id$iterator, id_1, id_1$iterator, incomingSectionIdentifiers, jsonObj, outgoingSectionIdentifiers, referencedSection, result, result0, section, section$iterator, section_1, section_1$iterator, section_2; - jsonObj = jsonObjA; - incomingSectionIdentifiers = new HashMultimap; - outgoingSectionIdentifiers = new HashMultimap; - _optJSONArray = $optJSONArray(jsonObj, 'sections'); - _function = new JsonImporter$lambda$13$Type(this$static, edge, incomingSectionIdentifiers, outgoingSectionIdentifiers); - $lambda$13(_function.$$outer_0, _function.edge_1, _function.incomingSectionIdentifiers_2, _function.outgoingSectionIdentifiers_3, _optJSONArray); - _keySet = (result0 = incomingSectionIdentifiers.keySet , !result0?(incomingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(incomingSectionIdentifiers, incomingSectionIdentifiers.map_0)):result0); - for (section$iterator = _keySet.iterator_0(); section$iterator.hasNext_0();) { - section = castTo(section$iterator.next_1(), 202); - _get = castTo($get(incomingSectionIdentifiers, section), 21); - for (id$iterator = _get.iterator_0(); id$iterator.hasNext_0();) { - id_0 = id$iterator.next_1(); - referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_0), 202); - if (referencedSection) { - _incomingSections = (!section.incomingSections && (section.incomingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section, 10, 9)) , section.incomingSections); - $add_21(_incomingSections, referencedSection); - } - else { - _idSave = $optString(jsonObj, 'id'); - _plus = 'Referenced edge section does not exist: ' + id_0 + " (edge id: '" + _idSave; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - } - } - _keySet_1 = (result = outgoingSectionIdentifiers.keySet , !result?(outgoingSectionIdentifiers.keySet = new AbstractMapBasedMultimap$KeySet(outgoingSectionIdentifiers, outgoingSectionIdentifiers.map_0)):result); - for (section_1$iterator = _keySet_1.iterator_0(); section_1$iterator.hasNext_0();) { - section_1 = castTo(section_1$iterator.next_1(), 202); - _get_1 = castTo($get(outgoingSectionIdentifiers, section_1), 21); - for (id_1$iterator = _get_1.iterator_0(); id_1$iterator.hasNext_0();) { - id_1 = id_1$iterator.next_1(); - referencedSection = castTo($get_4(this$static.edgeSectionIdMap, id_1), 202); - if (referencedSection) { - _outgoingSections = (!section_1.outgoingSections && (section_1.outgoingSections = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, section_1, 9, 10)) , section_1.outgoingSections); - $add_21(_outgoingSections, referencedSection); - } - else { - _idSave = $optString(jsonObj, 'id'); - _plus = 'Referenced edge section does not exist: ' + id_1 + " (edge id: '" + _idSave; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - } - } - !edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)); - if (edge.sources.size_0 != 0 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 != 0) && (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources.size_0 <= 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets.size_0 <= 1)) && (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 1) { - section_2 = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - if (!$getIncomingShape(section_2) && !$getOutgoingShape(section_2)) { - $setIncomingShape(section_2, castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); - $setOutgoingShape(section_2, castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - } - } -} - -function $transformEdges_2(this$static, jsonObjA){ - var _function, _function_1, _idSave, _optJSONArray, _optJSONArray_1, _plus, _plus_1, jsonObj, node; - jsonObj = jsonObjA; - node = castTo($get_5($inverse(this$static.nodeJsonMap), jsonObj), 33); - if (!node) { - _idSave = $optString(jsonObj, 'id'); - _plus = "Unable to find elk node for json object '" + _idSave; - _plus_1 = _plus + "' Panic!"; - throw toJs(new JsonImportException(_plus_1)); - } - _optJSONArray = $optJSONArray(jsonObj, 'edges'); - _function = new JsonImporter$lambda$1$Type(this$static, node); - $lambda$1_7(_function.$$outer_0, _function.node_1, _optJSONArray); - _optJSONArray_1 = $optJSONArray(jsonObj, 'children'); - _function_1 = new JsonImporter$lambda$2$Type(this$static); - $lambda$2_5(_function_1.$$outer_0, _optJSONArray_1); -} - -function $transformIndividualSpacings(jsonObjA, layoutData){ - var _function, _hasProperty, _individualSpacings, _keysJsonObj, _not, individualSpacings, jsonIndividualSpacings, jsonObj, keys_0, opts; - jsonObj = jsonObjA; - jsonIndividualSpacings = $optJSONObject_0(jsonObj, 'individualSpacings'); - if (jsonIndividualSpacings) { - _hasProperty = $hasProperty_0(layoutData, ($clinit_CoreOptions() , SPACING_INDIVIDUAL_0)); - _not = !_hasProperty; - if (_not) { - _individualSpacings = new IndividualSpacings; - $setProperty_1(layoutData, SPACING_INDIVIDUAL_0, _individualSpacings); - } - individualSpacings = castTo($getProperty_0(layoutData, SPACING_INDIVIDUAL_0), 373); - opts = jsonIndividualSpacings; - _keysJsonObj = null; - !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); - if (_keysJsonObj) { - _function = new JsonImporter$lambda$28$Type(opts, individualSpacings); - $forEach_0(_keysJsonObj, _function); - } - } -} - -function $transformLabels(this$static, jsonObjA, element){ - var _function, _optJSONArray, _xblockexpression, jsonObj; - _xblockexpression = null; - jsonObj = jsonObjA; - _optJSONArray = $optJSONArray(jsonObj, 'labels'); - _function = new JsonImporter$lambda$29$Type(this$static, element); - _xblockexpression = ($lambda$29_0(_function.$$outer_0, _function.element_1, _optJSONArray) , _optJSONArray); - return _xblockexpression; -} - -function $transformNode_0(this$static, jsonNode, parent_0){ - var node, node_0, elkNode, jsonObj, _optJSONArray, _function; - node = $register_4(this$static, (node_0 = ($clinit_ElkGraphFactory() , elkNode = new ElkNodeImpl , elkNode) , !!parent_0 && $setParent_2(node_0, parent_0) , node_0), jsonNode); - $setIdentifier(node, $optString(jsonNode, 'id')); - $transformProperties(jsonNode, node); - $transformIndividualSpacings(jsonNode, node); - $transformShapeLayout(jsonNode, node); - _xblockexpression = null; - jsonObj = jsonNode; - _optJSONArray = $optJSONArray(jsonObj, 'ports'); - _function = new JsonImporter$lambda$30$Type(this$static, node); - $lambda$30(_function.$$outer_0, _function.parent_1, _optJSONArray); - $transformLabels(this$static, jsonNode, node); - $transformChildNodes(this$static, jsonNode, node); - return node; -} - -function $transformPrimitiveEdge(this$static, jsonObjA, parent_0){ - var _asId, _asId_1, _elvis, _elvis_1, _id, _idSave, _idSave_1, _idSave_2, _id_1, _jsonObj, _jsonObj_1, _plus, _plus_1, _plus_2, _plus_3, _plus_4, _plus_5, _plus_6, _plus_7, _plus_8, _plus_9, _sources, _targets, _xblockexpression, edge, jsonObj, srcNode, srcPort, tgtNode, tgtPort; - _xblockexpression = null; - jsonObj = jsonObjA; - edge = $register_2(this$static, createEdge(parent_0), jsonObj); - $setIdentifier(edge, $optString(jsonObj, 'id')); - srcNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'source'))), 33); - _jsonObj = $get_9(jsonObj, 'sourcePort'); - _asId = null; - !!_jsonObj && (_asId = $asId(_jsonObj)); - srcPort = castTo($get_4(this$static.portIdMap, _asId), 118); - if (!srcNode) { - _id = $getId(jsonObj); - _plus = "An edge must have a source node (edge id: '" + _id; - _plus_1 = _plus + "')."; - throw toJs(new JsonImportException(_plus_1)); - } - if (!!srcPort && !equal($getParent_3(srcPort), srcNode)) { - _idSave = $optString(jsonObj, 'id'); - _plus_2 = "The source port of an edge must be a port of the edge's source node (edge id: '" + _idSave; - _plus_3 = _plus_2 + "')."; - throw toJs(new JsonImportException(_plus_3)); - } - _sources = (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources); - _elvis = null; - srcPort?(_elvis = srcPort):(_elvis = srcNode); - $add_21(_sources, _elvis); - tgtNode = castTo($get_4(this$static.nodeIdMap, $asId($get_9(jsonObj, 'target'))), 33); - _jsonObj_1 = $get_9(jsonObj, 'targetPort'); - _asId_1 = null; - !!_jsonObj_1 && (_asId_1 = $asId(_jsonObj_1)); - tgtPort = castTo($get_4(this$static.portIdMap, _asId_1), 118); - if (!tgtNode) { - _id_1 = $getId(jsonObj); - _plus_4 = "An edge must have a target node (edge id: '" + _id_1; - _plus_5 = _plus_4 + "')."; - throw toJs(new JsonImportException(_plus_5)); - } - if (!!tgtPort && !equal($getParent_3(tgtPort), tgtNode)) { - _idSave_1 = $optString(jsonObj, 'id'); - _plus_6 = "The target port of an edge must be a port of the edge's target node (edge id: '" + _idSave_1; - _plus_7 = _plus_6 + "')."; - throw toJs(new JsonImportException(_plus_7)); - } - _targets = (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets); - _elvis_1 = null; - tgtPort?(_elvis_1 = tgtPort):(_elvis_1 = tgtNode); - $add_21(_targets, _elvis_1); - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0 || (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 0) { - _idSave_2 = $optString(jsonObj, 'id'); - _plus_8 = "An edge must have at least one source and one target (edge id: '" + _idSave_2; - _plus_9 = _plus_8 + "')."; - throw toJs(new JsonImportException(_plus_9)); - } - $transformProperties(jsonObj, edge); - $transformPrimitiveEdgeLayout(jsonObj, edge); - _xblockexpression = $transformLabels(this$static, jsonObj, edge); - return _xblockexpression; -} - -function $transformPrimitiveEdgeLayout(jsonObjA, edge){ - var _function, _function_1, _function_2, _optJSONArray, _optJSONObject, _optJSONObject_1, _xblockexpression, _xblockexpression_1, _xifexpression, jsonObj, section; - _xblockexpression = null; - jsonObj = jsonObjA; - _xifexpression = null; - if ('sourcePoint' in jsonObj.jsObject || 'targetPoint' in jsonObj.jsObject || 'bendPoints' in jsonObj.jsObject) { - _xblockexpression_1 = null; - section = createEdgeSection(edge); - _optJSONObject = $optJSONObject_0(jsonObj, 'sourcePoint'); - _function = new JsonImporter$lambda$3$Type(section); - $lambda$3_4(_function.section_1, _optJSONObject); - _optJSONObject_1 = $optJSONObject_0(jsonObj, 'targetPoint'); - _function_1 = new JsonImporter$lambda$6$Type(section); - $lambda$6_0(_function_1.section_1, _optJSONObject_1); - _optJSONArray = $optJSONArray(jsonObj, 'bendPoints'); - _function_2 = new JsonImporter$lambda$9$Type(section); - _xblockexpression_1 = ($lambda$9_1(_function_2.section_1, _optJSONArray) , _optJSONArray); - _xifexpression = _xblockexpression_1; - } - _xblockexpression = _xifexpression; - return _xblockexpression; -} - -function $transformProperties(jsonObjA, layoutData){ - var _function, _keysJsonObj, jsonObj, keys_0, layoutOptions, opts; - jsonObj = jsonObjA; - layoutOptions = $optJSONObject_0(jsonObj, 'layoutOptions'); - !layoutOptions && (layoutOptions = $optJSONObject_0(jsonObj, 'properties')); - if (layoutOptions) { - opts = layoutOptions; - _keysJsonObj = null; - !!opts && (_keysJsonObj = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new JSONObject$1(opts, keys_0))); - if (_keysJsonObj) { - _function = new JsonImporter$lambda$27$Type(opts, layoutData); - $forEach_0(_keysJsonObj, _function); - } - } -} - -function $transformShapeLayout(jsonObjA, shape_0){ - var _function, _function_1, _function_2, _function_3, _optDouble, _optDouble_1, _optDouble_2, _optDouble_3, _xblockexpression, jsonObj; - _xblockexpression = null; - jsonObj = jsonObjA; - _optDouble = $optDouble(jsonObj, 'x'); - _function = new JsonImporter$lambda$31$Type(shape_0); - $lambda$31(_function.shape_1, _optDouble); - _optDouble_1 = $optDouble(jsonObj, 'y'); - _function_1 = new JsonImporter$lambda$32$Type(shape_0); - $lambda$32(_function_1.shape_1, _optDouble_1); - _optDouble_2 = $optDouble(jsonObj, 'width'); - _function_2 = new JsonImporter$lambda$33$Type(shape_0); - $lambda$33(_function_2.shape_1, _optDouble_2); - _optDouble_3 = $optDouble(jsonObj, 'height'); - _function_3 = new JsonImporter$lambda$34$Type(shape_0); - _xblockexpression = ($lambda$34(_function_3.shape_1, _optDouble_3) , _optDouble_3); - return _xblockexpression; -} - -function JsonImporter(){ - this._jsonAdapter = new JsonAdapter; - this.nodeIdMap = new HashBiMap; - this.portIdMap = new HashBiMap; - this.edgeIdMap = new HashMap; - this.edgeSectionIdMap = new HashBiMap; - this.nodeJsonMap = new HashBiMap; - this.portJsonMap = new HashMap; - this.edgeJsonMap = new HashMap; - this.edgeSectionJsonMap = new HashMap; - this.labelJsonMap = new HashMap; -} - -defineClass(857, 1, {}, JsonImporter); -var Lorg_eclipse_elk_graph_json_JsonImporter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter', 857); -function JsonImporter$lambda$0$Type($$outer_0, parent_1){ - this.$$outer_0 = $$outer_0; - this.parent_1 = parent_1; -} - -defineClass(891, 1, {}, JsonImporter$lambda$0$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$0$Type', 891); -function JsonImporter$lambda$1$Type($$outer_0, node_1){ - this.$$outer_0 = $$outer_0; - this.node_1 = node_1; -} - -defineClass(892, 1, {}, JsonImporter$lambda$1$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$1$Type', 892); -function JsonImporter$lambda$10$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(900, 1, {}, JsonImporter$lambda$10$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$10$Type', 900); -function JsonImporter$lambda$11$Type($$outer_0, edge_1){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; -} - -defineClass(902, 1, {}, JsonImporter$lambda$11$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$11$Type', 902); -function JsonImporter$lambda$12$Type($$outer_0, edge_1){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; -} - -defineClass(903, 1, {}, JsonImporter$lambda$12$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$12$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$12$Type', 903); -function JsonImporter$lambda$13$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; - this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; - this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; -} - -defineClass(909, 1, {}, JsonImporter$lambda$13$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$13$Type', 909); -function JsonImporter$lambda$14$Type($$outer_0, edge_1, incomingSectionIdentifiers_2, outgoingSectionIdentifiers_3){ - this.$$outer_0 = $$outer_0; - this.edge_1 = edge_1; - this.incomingSectionIdentifiers_2 = incomingSectionIdentifiers_2; - this.outgoingSectionIdentifiers_3 = outgoingSectionIdentifiers_3; -} - -defineClass(908, 1, {}, JsonImporter$lambda$14$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$14$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$14$Type', 908); -function JsonImporter$lambda$15$Type($$outer_0, elkSection_1){ - this.$$outer_0 = $$outer_0; - this.elkSection_1 = elkSection_1; -} - -defineClass(904, 1, {}, JsonImporter$lambda$15$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$15$Type', 904); -function JsonImporter$lambda$16$Type($$outer_0, elkSection_1){ - this.$$outer_0 = $$outer_0; - this.elkSection_1 = elkSection_1; -} - -defineClass(905, 1, {}, JsonImporter$lambda$16$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$16$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$16$Type', 905); -function JsonImporter$lambda$17$Type(incomingSectionIdentifiers_1, elkSection_2){ - this.incomingSectionIdentifiers_1 = incomingSectionIdentifiers_1; - this.elkSection_2 = elkSection_2; -} - -defineClass(906, 1, {}, JsonImporter$lambda$17$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$17$Type', 906); -function JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_1, elkSection_2){ - this.outgoingSectionIdentifiers_1 = outgoingSectionIdentifiers_1; - this.elkSection_2 = elkSection_2; -} - -defineClass(907, 1, {}, JsonImporter$lambda$18$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$18$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$18$Type', 907); -function JsonImporter$lambda$19$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(912, 1, {}, JsonImporter$lambda$19$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$19$Type', 912); -function JsonImporter$lambda$2$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(893, 1, {}, JsonImporter$lambda$2$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$2$Type', 893); -function JsonImporter$lambda$20$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(910, 1, {}, JsonImporter$lambda$20$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$20$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$20$Type', 910); -function JsonImporter$lambda$21$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(911, 1, {}, JsonImporter$lambda$21$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$21$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$21$Type', 911); -function JsonImporter$lambda$22$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(915, 1, {}, JsonImporter$lambda$22$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$22$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$22$Type', 915); -function JsonImporter$lambda$23$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(913, 1, {}, JsonImporter$lambda$23$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$23$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$23$Type', 913); -function JsonImporter$lambda$24$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(914, 1, {}, JsonImporter$lambda$24$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$24$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$24$Type', 914); -function JsonImporter$lambda$25$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(917, 1, {}, JsonImporter$lambda$25$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$25$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$25$Type', 917); -function JsonImporter$lambda$26$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(916, 1, {}, JsonImporter$lambda$26$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$26$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$26$Type', 916); -function JsonImporter$lambda$27$Type(opts_1, layoutData_2){ - this.opts_1 = opts_1; - this.layoutData_2 = layoutData_2; -} - -defineClass(918, 1, $intern_19, JsonImporter$lambda$27$Type); -_.accept = function accept_153(arg0){ - $lambda$27(this.opts_1, this.layoutData_2, castToString(arg0)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$27$Type', 918); -function JsonImporter$lambda$28$Type(opts_1, individualSpacings_2){ - this.opts_1 = opts_1; - this.individualSpacings_2 = individualSpacings_2; -} - -defineClass(919, 1, $intern_19, JsonImporter$lambda$28$Type); -_.accept = function accept_154(arg0){ - $lambda$28(this.opts_1, this.individualSpacings_2, castToString(arg0)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$28$Type', 919); -function JsonImporter$lambda$29$Type($$outer_0, element_1){ - this.$$outer_0 = $$outer_0; - this.element_1 = element_1; -} - -defineClass(920, 1, {}, JsonImporter$lambda$29$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$29$Type', 920); -function JsonImporter$lambda$3$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(896, 1, {}, JsonImporter$lambda$3$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$3$Type', 896); -function JsonImporter$lambda$30$Type($$outer_0, parent_1){ - this.$$outer_0 = $$outer_0; - this.parent_1 = parent_1; -} - -defineClass(921, 1, {}, JsonImporter$lambda$30$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$30$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$30$Type', 921); -function JsonImporter$lambda$31$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(922, 1, {}, JsonImporter$lambda$31$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$31$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$31$Type', 922); -function JsonImporter$lambda$32$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(923, 1, {}, JsonImporter$lambda$32$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$32$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$32$Type', 923); -function JsonImporter$lambda$33$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(924, 1, {}, JsonImporter$lambda$33$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$33$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$33$Type', 924); -function JsonImporter$lambda$34$Type(shape_1){ - this.shape_1 = shape_1; -} - -defineClass(925, 1, {}, JsonImporter$lambda$34$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$34$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$34$Type', 925); -function $apply_28(this$static, arg0){ - $transferLayoutInt(this$static.$$outer_0, castTo(arg0, 56)); -} - -function JsonImporter$lambda$35$Type($$outer_0){ - this.$$outer_0 = $$outer_0; -} - -defineClass(859, 1, {}, JsonImporter$lambda$35$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$35$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$35$Type', 859); -function $apply_29(this$static, arg0, arg1){ - $lambda$36(this$static.$$outer_0, this$static.edgeId_1, this$static.sections_2, castTo(arg0, 202), arg1); -} - -function JsonImporter$lambda$36$Type($$outer_0, edgeId_1, sections_2){ - this.$$outer_0 = $$outer_0; - this.edgeId_1 = edgeId_1; - this.sections_2 = sections_2; -} - -defineClass(929, 1, {}, JsonImporter$lambda$36$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$36$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$36$Type', 929); -function JsonImporter$lambda$37$Type(bendPoints_1){ - this.bendPoints_1 = bendPoints_1; -} - -defineClass(926, 1, $intern_19, JsonImporter$lambda$37$Type); -_.accept = function accept_155(arg0){ - $lambda$37(this.bendPoints_1, castTo(arg0, 469)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$37$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$37$Type', 926); -function JsonImporter$lambda$38$Type($$outer_0, incomingSections_1){ - this.$$outer_0 = $$outer_0; - this.incomingSections_1 = incomingSections_1; -} - -defineClass(927, 1, $intern_19, JsonImporter$lambda$38$Type); -_.accept = function accept_156(arg0){ - $lambda$38(this.$$outer_0, this.incomingSections_1, castTo(arg0, 202)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$38$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$38$Type', 927); -function JsonImporter$lambda$39$Type($$outer_0, outgoingSections_1){ - this.$$outer_0 = $$outer_0; - this.outgoingSections_1 = outgoingSections_1; -} - -defineClass(928, 1, $intern_19, JsonImporter$lambda$39$Type); -_.accept = function accept_157(arg0){ - $lambda$39(this.$$outer_0, this.outgoingSections_1, castTo(arg0, 202)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$39$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$39$Type', 928); -function JsonImporter$lambda$4$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(894, 1, {}, JsonImporter$lambda$4$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$4$Type', 894); -function JsonImporter$lambda$40$Type(jsonJPs_1){ - this.jsonJPs_1 = jsonJPs_1; -} - -defineClass(930, 1, $intern_19, JsonImporter$lambda$40$Type); -_.accept = function accept_158(arg0){ - $lambda$40(this.jsonJPs_1, castTo(arg0, 8)); -} -; -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$40$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$40$Type', 930); -function JsonImporter$lambda$5$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(895, 1, {}, JsonImporter$lambda$5$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$5$Type', 895); -function JsonImporter$lambda$6$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(899, 1, {}, JsonImporter$lambda$6$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$6$Type', 899); -function JsonImporter$lambda$7$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(897, 1, {}, JsonImporter$lambda$7$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$7$Type', 897); -function JsonImporter$lambda$8$Type(section_0){ - this.section_0 = section_0; -} - -defineClass(898, 1, {}, JsonImporter$lambda$8$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$8$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$8$Type', 898); -function JsonImporter$lambda$9$Type(section_1){ - this.section_1 = section_1; -} - -defineClass(901, 1, {}, JsonImporter$lambda$9$Type); -var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$9$Type', 901); -function _toJson(lad){ - var _categoryId, _function, _function_1, _isNullOrEmpty, _isNullOrEmpty_1, _not, _not_1, _tripleNotEquals, jsonArr, jsonArr_1, jsonObj; - jsonObj = createCommon(lad); - _categoryId = lad.category; - _tripleNotEquals = _categoryId != null; - _tripleNotEquals && $addJsonObj_1(jsonObj, 'category', lad.category); - _isNullOrEmpty = isNullOrEmpty(new AbstractMap$1(lad.knownOptions)); - _not = !_isNullOrEmpty; - if (_not) { - jsonArr = new JSONArray; - $put_5(jsonObj, 'knownOptions', jsonArr); - _function = new JsonMetaDataConverter$lambda$0$Type(jsonArr); - $forEach_0(new AbstractMap$1(lad.knownOptions), _function); - } - _isNullOrEmpty_1 = isNullOrEmpty(lad.supportedFeatures); - _not_1 = !_isNullOrEmpty_1; - if (_not_1) { - jsonArr_1 = new JSONArray; - $put_5(jsonObj, 'supportedFeatures', jsonArr_1); - _function_1 = new JsonMetaDataConverter$lambda$1$Type(jsonArr_1); - $forEach_0(lad.supportedFeatures, _function_1); - } - return jsonObj; -} - -function _toJson_0(lcd){ - var _function, _isNullOrEmpty, _not, jsonArr, jsonObj; - jsonObj = createCommon(lcd); - _isNullOrEmpty = isNullOrEmpty(lcd.layouters); - _not = !_isNullOrEmpty; - if (_not) { - jsonArr = new JSONArray; - $put_5(jsonObj, 'knownLayouters', jsonArr); - _function = new JsonMetaDataConverter$lambda$2$Type(jsonArr); - $forEach_0(lcd.layouters, _function); - } - return jsonObj; -} - -function _toJson_1(lod){ - var _function, _group, _isNullOrEmpty, _not, _tripleNotEquals, _tripleNotEquals_1, _type, jsonArr, jsonObj; - jsonObj = createCommon(lod); - _group = lod.group_0; - _tripleNotEquals = _group != null; - _tripleNotEquals && $addJsonObj_1(jsonObj, 'group', lod.group_0); - _type = lod.type_0; - _tripleNotEquals_1 = !!_type; - _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'type', $toString_3(lod.type_0)); - _isNullOrEmpty = isNullOrEmpty(lod.targets); - _not = !_isNullOrEmpty; - if (_not) { - jsonArr = new JSONArray; - $put_5(jsonObj, 'targets', jsonArr); - _function = new JsonMetaDataConverter$lambda$3$Type(jsonArr); - $forEach_0(lod.targets, _function); - } - return jsonObj; -} - -function createCommon(data_0){ - var _description, _id, _name, _tripleNotEquals, _tripleNotEquals_1, _tripleNotEquals_2, jsonObj; - jsonObj = new JSONObject; - _id = data_0.getId(); - _tripleNotEquals = _id != null; - _tripleNotEquals && $addJsonObj_1(jsonObj, 'id', data_0.getId()); - _name = data_0.getName(); - _tripleNotEquals_1 = _name != null; - _tripleNotEquals_1 && $addJsonObj_1(jsonObj, 'name', data_0.getName()); - _description = data_0.getDescription(); - _tripleNotEquals_2 = _description != null; - _tripleNotEquals_2 && $addJsonObj_1(jsonObj, 'description', data_0.getDescription()); - return jsonObj; -} - -function lambda$1_22(jsonArr_1_0, f_1){ - $addJsonArr(jsonArr_1_0, new JSONString(f_1.name_0 != null?f_1.name_0:'' + f_1.ordinal)); -} - -function lambda$2_12(jsonArr_0, l_1){ - var _id, _tripleNotEquals; - _id = l_1.id_0; - _tripleNotEquals = _id != null; - _tripleNotEquals && $addJsonArr(jsonArr_0, new JSONString(l_1.id_0)); -} - -function lambda$3_8(jsonArr_0, t_1){ - $addJsonArr(jsonArr_0, new JSONString(t_1.name_0 != null?t_1.name_0:'' + t_1.ordinal)); -} - -function toJson(lad){ - if (instanceOf(lad, 149)) { - return _toJson(castTo(lad, 149)); - } - else if (instanceOf(lad, 229)) { - return _toJson_0(castTo(lad, 229)); - } - else if (instanceOf(lad, 23)) { - return _toJson_1(castTo(lad, 23)); - } - else { - throw toJs(new IllegalArgumentException_0('Unhandled parameter types: ' + $toString_2(new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [lad]))))); - } -} - -function JsonMetaDataConverter$lambda$0$Type(jsonArr_0){ - this.jsonArr_0 = jsonArr_0; -} - -defineClass(948, 1, $intern_19, JsonMetaDataConverter$lambda$0$Type); -_.accept = function accept_159(arg0){ - $addJsonArr(this.jsonArr_0, new JSONString(castToString(arg0))); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$0$Type', 948); -function JsonMetaDataConverter$lambda$1$Type(jsonArr_1_0){ - this.jsonArr_1_0 = jsonArr_1_0; -} - -defineClass(949, 1, $intern_19, JsonMetaDataConverter$lambda$1$Type); -_.accept = function accept_160(arg0){ - lambda$1_22(this.jsonArr_1_0, castTo(arg0, 237)); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$1$Type', 949); -function JsonMetaDataConverter$lambda$2$Type(jsonArr_0){ - this.jsonArr_0 = jsonArr_0; -} - -defineClass(950, 1, $intern_19, JsonMetaDataConverter$lambda$2$Type); -_.accept = function accept_161(arg0){ - lambda$2_12(this.jsonArr_0, castTo(arg0, 149)); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$2$Type', 950); -function JsonMetaDataConverter$lambda$3$Type(jsonArr_0){ - this.jsonArr_0 = jsonArr_0; -} - -defineClass(951, 1, $intern_19, JsonMetaDataConverter$lambda$3$Type); -_.accept = function accept_162(arg0){ - lambda$3_8(this.jsonArr_0, castTo(arg0, 175)); -} -; -var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$3$Type', 951); -function $clinit_GraphFeature(){ - $clinit_GraphFeature = emptyMethod; - SELF_LOOPS_0 = new GraphFeature('SELF_LOOPS', 0); - INSIDE_SELF_LOOPS = new GraphFeature('INSIDE_SELF_LOOPS', 1); - MULTI_EDGES = new GraphFeature('MULTI_EDGES', 2); - EDGE_LABELS = new GraphFeature('EDGE_LABELS', 3); - PORTS_1 = new GraphFeature('PORTS', 4); - COMPOUND = new GraphFeature('COMPOUND', 5); - CLUSTERS = new GraphFeature('CLUSTERS', 6); - DISCONNECTED = new GraphFeature('DISCONNECTED', 7); -} - -function GraphFeature(enum$name, enum$ordinal){ - Enum.call(this, enum$name, enum$ordinal); -} - -function valueOf_111(name_0){ - $clinit_GraphFeature(); - return valueOf(($clinit_GraphFeature$Map() , $MAP_99), name_0); -} - -function values_117(){ - $clinit_GraphFeature(); - return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]); -} - -defineClass(237, 22, {3:1, 35:1, 22:1, 237:1}, GraphFeature); -var CLUSTERS, COMPOUND, DISCONNECTED, EDGE_LABELS, INSIDE_SELF_LOOPS, MULTI_EDGES, PORTS_1, SELF_LOOPS_0; -var Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit = createForEnum('org.eclipse.elk.graph.properties', 'GraphFeature', 237, Ljava_lang_Enum_2_classLit, values_117, valueOf_111); -function $clinit_GraphFeature$Map(){ - $clinit_GraphFeature$Map = emptyMethod; - $MAP_99 = createValueOfMap(($clinit_GraphFeature() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]))); -} - -var $MAP_99; -function $compareTo_21(this$static, other){ - return $compareTo_9(this$static.id_0, other.getId()); -} - -function $equals_10(this$static, obj){ - return instanceOf(obj, 146) && $equals_5(this$static.id_0, castTo(obj, 146).getId()); -} - -function $getDefault(this$static){ - var clone; - if (instanceOf(this$static.defaultValue, 4)) { - clone = clone_11(this$static.defaultValue); - if (clone == null) { - throw toJs(new IllegalStateException_0("Couldn't clone property '" + this$static.id_0 + "'. " + 'Make sure its type is registered with the ' + ($ensureNamesAreInitialized(Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit) , Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit.simpleName) + ' utility class.')); - } - return clone; - } - else { - return this$static.defaultValue; - } -} - -function Property(theid){ - this.id_0 = theid; -} - -function Property_0(theid, thedefaultValue){ - Property.call(this, theid); - this.defaultValue = thedefaultValue; -} - -function Property_1(theid, thedefaultValue){ - Property_0.call(this, theid, thedefaultValue); -} - -function Property_2(other, thedefaultValue){ - Property_0.call(this, other.id_0, thedefaultValue); -} - -defineClass(13, 1, {35:1, 146:1}, Property, Property_0, Property_1, Property_2); -_.compareTo_0 = function compareTo_22(other){ - return $compareTo_21(this, castTo(other, 146)); -} -; -_.equals_0 = function equals_184(obj){ - return $equals_10(this, obj); -} -; -_.getDefault = function getDefault_0(){ - return $getDefault(this); -} -; -_.getId = function getId_2(){ - return this.id_0; -} -; -_.hashCode_1 = function hashCode_73(){ - return getHashCode_1(this.id_0); -} -; -_.toString_0 = function toString_134(){ - return this.id_0; -} -; -var Lorg_eclipse_elk_graph_properties_Property_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'Property', 13); -function $compare_26(this$static, ph1, ph2){ - var p1, p2; - p1 = castTo(ph1.getProperty(this$static.property), 35); - p2 = castTo(ph2.getProperty(this$static.property), 35); - return p1 != null && p2 != null?compareTo_Ljava_lang_Object__I__devirtual$(p1, p2):p1 != null?-1:p2 != null?1:0; -} - -function PropertyHolderComparator(property){ - this.property = property; -} - -defineClass(818, 1, $intern_88, PropertyHolderComparator); -_.compare_1 = function compare_87(ph1, ph2){ - return $compare_26(this, castTo(ph1, 94), castTo(ph2, 94)); -} -; -_.equals_0 = function equals_185(other){ - return this === other; -} -; -_.reversed = function reversed_79(){ - return new Comparators$ReversedComparator(this); -} -; -var Lorg_eclipse_elk_graph_properties_PropertyHolderComparator_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'PropertyHolderComparator', 818); -function allIncomingEdges(node){ - var incomingEdgeIterables, port, port$iterator; - incomingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); - $add_3(incomingEdgeIterables, (!node.incomingEdges && (node.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 8, 5)) , node.incomingEdges)); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - $add_3(incomingEdgeIterables, (!port.incomingEdges && (port.incomingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 8, 5)) , port.incomingEdges)); - } - return checkNotNull(incomingEdgeIterables) , new FluentIterable$2(incomingEdgeIterables); -} - -function allOutgoingEdges(node){ - var outgoingEdgeIterables, port, port$iterator; - outgoingEdgeIterables = newArrayListWithCapacity(1 + (!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports).size_0); - $add_3(outgoingEdgeIterables, (!node.outgoingEdges && (node.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, node, 7, 4)) , node.outgoingEdges)); - for (port$iterator = new AbstractEList$EIterator((!node.ports && (node.ports = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkPort_2_classLit, node, 9, 9)) , node.ports)); port$iterator.cursor != port$iterator.this$01_2.size_1();) { - port = castTo($doNext(port$iterator), 118); - $add_3(outgoingEdgeIterables, (!port.outgoingEdges && (port.outgoingEdges = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, port, 7, 4)) , port.outgoingEdges)); - } - return checkNotNull(outgoingEdgeIterables) , new FluentIterable$2(outgoingEdgeIterables); -} - -function connectableShapeToNode(connectableShape){ - if (instanceOf(connectableShape, 239)) { - return castTo(connectableShape, 33); - } - else if (instanceOf(connectableShape, 186)) { - return $getParent_3(castTo(connectableShape, 118)); - } - else if (!connectableShape) { - throw toJs(new NullPointerException_0('connectableShape cannot be null')); - } - else { - throw toJs(new UnsupportedOperationException_0('Only support nodes and ports.')); - } -} - -function connectableShapeToPort(connectableShape){ - if (instanceOf(connectableShape, 186)) { - return castTo(connectableShape, 118); - } - else if (!connectableShape) { - throw toJs(new NullPointerException_0('connectableShape cannot be null')); - } - else { - return null; - } -} - -function createBendPoint(edgeSection, x_0, y_0){ - var bendPoint, elkBendPoint; - bendPoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); - $setX_1(bendPoint, x_0); - $setY_2(bendPoint, y_0); - !!edgeSection && $add_21((!edgeSection.bendPoints && (edgeSection.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, edgeSection, 5)) , edgeSection.bendPoints), bendPoint); - return bendPoint; -} - -function createEdge(containingNode){ - var edge, elkEdge; - edge = ($clinit_ElkGraphFactory() , elkEdge = new ElkEdgeImpl , elkEdge); - !!containingNode && $setContainingNode(edge, containingNode); - return edge; -} - -function createEdgeSection(edge){ - var elkEdgeSection, section; - section = ($clinit_ElkGraphFactory() , elkEdgeSection = new ElkEdgeSectionImpl , elkEdgeSection); - !!edge && $add_21((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), section); - return section; -} - -function createLabel(text_0, parent_0){ - var label_0, label_1, elkLabel; - label_0 = (label_1 = ($clinit_ElkGraphFactory() , elkLabel = new ElkLabelImpl , elkLabel) , !!parent_0 && $setParent_1(label_1, parent_0) , label_1); - $setText(label_0, text_0); - return label_0; -} - -function findBestEdgeContainment(edge){ - var commonAncestor, incidentNode, incidentShapes, sourceNode, targetNode; - requireNonNull(edge, 'edge cannot be null'); - switch ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 + (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0) { - case 0: - throw toJs(new IllegalArgumentException_0('The edge must have at least one source or target.')); - case 1: - return (!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 0?$getParent_2(connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82))):$getParent_2(connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82))); - } - if ((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources).size_0 == 1 && (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets).size_0 == 1) { - sourceNode = connectableShapeToNode(castTo($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 82)); - targetNode = connectableShapeToNode(castTo($get_20((!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets), 0), 82)); - if ($getParent_2(sourceNode) == $getParent_2(targetNode)) { - return $getParent_2(sourceNode); - } - else if (sourceNode == $getParent_2(targetNode)) { - return sourceNode; - } - else if (targetNode == $getParent_2(sourceNode)) { - return targetNode; - } - } - incidentShapes = $iterator(concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [(!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), (!edge.targets && (edge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 5, 8)) , edge.targets)]))); - commonAncestor = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); - while ($hasNext_1(incidentShapes)) { - incidentNode = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); - if (incidentNode != commonAncestor && !isDescendant_0(incidentNode, commonAncestor)) { - if ($getParent_2(incidentNode) == $getParent_2(commonAncestor)) { - commonAncestor = $getParent_2(incidentNode); - } - else { - commonAncestor = findLowestCommonAncestor(commonAncestor, incidentNode); - if (!commonAncestor) { - return null; - } - } - } - } - return commonAncestor; -} - -function findLowestCommonAncestor(node1, node2){ - var ancestor1, ancestor2, ancestors1, ancestors2, commonAncestor, iterator1, iterator2; - ancestors1 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node1)); - iterator1 = new AbstractList$ListIteratorImpl(ancestors1, ancestors1.array.length); - ancestors2 = newArrayList_0(new ElkGraphUtil$AncestorIterator(node2)); - iterator2 = new AbstractList$ListIteratorImpl(ancestors2, ancestors2.array.length); - commonAncestor = null; - while (iterator1.i > 0 && iterator2.i > 0) { - ancestor1 = (checkCriticalElement(iterator1.i > 0) , castTo(iterator1.this$01.get_0(iterator1.last = --iterator1.i), 33)); - ancestor2 = (checkCriticalElement(iterator2.i > 0) , castTo(iterator2.this$01.get_0(iterator2.last = --iterator2.i), 33)); - if (ancestor1 == ancestor2) { - commonAncestor = ancestor1; - } - else { - break; - } - } - return commonAncestor; -} - -function firstEdgeSection(edge, resetSection, removeOtherSections){ - var section, sections; - if ((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections).size_0 == 0) { - return createEdgeSection(edge); - } - else { - section = castTo($get_20((!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections), 0), 202); - if (resetSection) { - $clear_13((!section.bendPoints && (section.bendPoints = new EObjectContainmentEList(Lorg_eclipse_elk_graph_ElkBendPoint_2_classLit, section, 5)) , section.bendPoints)); - $setStartX(section, 0); - $setStartY(section, 0); - $setEndX(section, 0); - $setEndY(section, 0); - } - if (removeOtherSections) { - sections = (!edge.sections && (edge.sections = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdgeSection_2_classLit, edge, 6, 6)) , edge.sections); - while (sections.size_0 > 1) { - $remove_35(sections, sections.size_0 - 1); - } - } - return section; - } -} - -function getSourceNode(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToNode(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); -} - -function getSourcePort(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToPort(castTo($get_20((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources), 0), 82)); -} - -function getTargetNode_0(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToNode(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); -} - -function getTargetPort(simpleEdge){ - if ((!simpleEdge.sources && (simpleEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 4, 7)) , simpleEdge.sources).size_0 != 1 || (!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets).size_0 != 1) { - throw toJs(new IllegalArgumentException_0("Passed edge is not 'simple'.")); - } - return connectableShapeToPort(castTo($get_20((!simpleEdge.targets && (simpleEdge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, simpleEdge, 5, 8)) , simpleEdge.targets), 0), 82)); -} - -function isDescendant_0(child, ancestor){ - var current; - current = child; - while ($getParent_2(current)) { - current = $getParent_2(current); - if (current == ancestor) { - return true; - } - } - return false; -} - -function updateContainment(edge){ - requireNonNull(edge, 'edge cannot be null'); - $setContainingNode(edge, findBestEdgeContainment(edge)); -} - -function $next_13(this$static){ - var next; - if (!this$static.nextNode) { - throw toJs(new NoSuchElementException_0); - } - next = this$static.nextNode; - this$static.nextNode = $getParent_2(this$static.nextNode); - return next; -} - -function ElkGraphUtil$AncestorIterator(startNode){ - this.nextNode = startNode; -} - -defineClass(695, 1, $intern_6, ElkGraphUtil$AncestorIterator); -_.forEachRemaining = function forEachRemaining_52(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_42(){ - return $next_13(this); -} -; -_.remove = function remove_97(){ - $remove_21(); -} -; -_.hasNext_0 = function hasNext_41(){ - return !!this.nextNode; -} -; -var Lorg_eclipse_elk_graph_util_ElkGraphUtil$AncestorIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/AncestorIterator', 695); -var Lorg_eclipse_emf_common_util_EList_2_classLit = createForInterface('org.eclipse.emf.common.util', 'EList'); -function $add_20(this$static, index_0, object){ - var size_0; - size_0 = this$static.size_1(); - if (index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - if (this$static.isUnique() && this$static.contains(object)) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - this$static.addUnique(index_0, object); -} - -function $add_21(this$static, object){ - if (this$static.isUnique() && this$static.contains(object)) { - return false; - } - else { - this$static.addUnique_0(object); - return true; - } -} - -function $addAll_8(this$static, index_0, collection){ - var size_0; - size_0 = this$static.size_1(); - if (index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); - return this$static.addAllUnique(index_0, collection); -} - -function $addAll_9(this$static, collection){ - this$static.isUnique() && (collection = $getNonDuplicates(this$static, collection)); - return this$static.addAllUnique_0(collection); -} - -function $basicListIterator(this$static, index_0){ - var size_0; - size_0 = this$static.size_1(); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new AbstractEList$NonResolvingEListIterator_0(this$static, index_0); -} - -function $didClear(this$static, size_0, oldObjects){ - var i, object; - if (oldObjects != null) { - for (i = 0; i < size_0; ++i) { - object = oldObjects[i]; - this$static.didRemove(i, object); - } - } -} - -function $equals_11(this$static, object){ - var i, list, o1, o2, objects, size_0; - if (maskUndefined(object) === maskUndefined(this$static)) { - return true; - } - if (!instanceOf(object, 15)) { - return false; - } - list = castTo(object, 15); - size_0 = this$static.size_1(); - if (list.size_1() != size_0) { - return false; - } - objects = list.iterator_0(); - if (this$static.useEquals()) { - for (i = 0; i < size_0; ++i) { - o1 = this$static.primitiveGet(i); - o2 = objects.next_1(); - if (o1 == null?o2 != null:!equals_Ljava_lang_Object__Z__devirtual$(o1, o2)) { - return false; - } - } - } - else { - for (i = 0; i < size_0; ++i) { - o1 = this$static.primitiveGet(i); - o2 = objects.next_1(); - if (maskUndefined(o1) !== maskUndefined(o2)) { - return false; - } - } - } - return true; -} - -function $getDuplicates(this$static, collection){ - var filteredResult, object, object$iterator; - if (collection.isEmpty()) { - return $clinit_ECollections() , $clinit_ECollections() , EMPTY_ELIST; - } - else { - filteredResult = new AbstractEList$1(this$static, collection.size_1()); - for (object$iterator = new AbstractEList$EIterator(this$static); object$iterator.cursor != object$iterator.this$01_2.size_1();) { - object = $doNext(object$iterator); - collection.contains(object) && $add_21(filteredResult, object); - } - return filteredResult; - } -} - -function $getNonDuplicates(this$static, collection){ - var result; - result = new LinkedHashSet_1(collection); - $removeAll_1(result, this$static); - return new ArrayList_1(result); -} - -function $hashCode_2(this$static){ - var hashCode, i, object, size_0; - hashCode = 1; - for (i = 0 , size_0 = this$static.size_1(); i < size_0; ++i) { - object = this$static.primitiveGet(i); - hashCode = 31 * hashCode + (object == null?0:hashCode__I__devirtual$(object)); - } - return hashCode; -} - -function $remove_32(this$static, object){ - var index_0; - index_0 = this$static.indexOf_0(object); - if (index_0 >= 0) { - this$static.remove_2(index_0); - return true; - } - else { - return false; - } -} - -function $set_11(this$static, index_0, object){ - var currentIndex, size_0; - size_0 = this$static.size_1(); - if (index_0 >= size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - if (this$static.isUnique()) { - currentIndex = this$static.indexOf_0(object); - if (currentIndex >= 0 && currentIndex != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - return this$static.setUnique(index_0, object); -} - -function $toString_25(this$static){ - var i, size_0, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - for (i = 0 , size_0 = this$static.size_1(); i < size_0;) { - $append_3(stringBuffer, valueOf_7(this$static.primitiveGet(i))); - ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} - -function $validate(this$static, object){ - if (!this$static.canContainNull() && object == null) { - throw toJs(new IllegalArgumentException_0("The 'no null' constraint is violated")); - } - return object; -} - -defineClass(67, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}); -_.add_3 = function add_46(index_0, object){ - $add_20(this, index_0, object); -} -; -_.add_2 = function add_47(object){ - return $add_21(this, object); -} -; -_.addAll_0 = function addAll_24(index_0, collection){ - return $addAll_8(this, index_0, collection); -} -; -_.addAll = function addAll_25(collection){ - return $addAll_9(this, collection); -} -; -_.basicIterator = function basicIterator(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_0(index_0){ - return $basicListIterator(this, index_0); -} -; -_.canContainNull = function canContainNull(){ - return true; -} -; -_.didAdd = function didAdd(index_0, newObject){ -} -; -_.didChange = function didChange(){ -} -; -_.didClear = function didClear(size_0, oldObjects){ - $didClear(this, size_0, oldObjects); -} -; -_.didMove = function didMove(index_0, movedObject, oldIndex){ -} -; -_.didRemove = function didRemove(index_0, oldObject){ -} -; -_.didSet = function didSet(index_0, newObject, oldObject){ -} -; -_.equals_0 = function equals_186(object){ - return $equals_11(this, object); -} -; -_.hashCode_1 = function hashCode_74(){ - return $hashCode_2(this); -} -; -_.isUnique = function isUnique_0(){ - return false; -} -; -_.iterator_0 = function iterator_79(){ - return new AbstractEList$EIterator(this); -} -; -_.listIterator_0 = function listIterator_17(){ - return new AbstractEList$EListIterator(this); -} -; -_.listIterator_1 = function listIterator_18(index_0){ - var size_0; - size_0 = this.size_1(); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new AbstractEList$EListIterator_0(this, index_0); -} -; -_.move_0 = function move_0(index_0, object){ - this.move(index_0, this.indexOf_0(object)); -} -; -_.remove_1 = function remove_98(object){ - return $remove_32(this, object); -} -; -_.resolve = function resolve_0(index_0, object){ - return object; -} -; -_.set_2 = function set_21(index_0, object){ - return $set_11(this, index_0, object); -} -; -_.toString_0 = function toString_135(){ - return $toString_25(this); -} -; -_.useEquals = function useEquals(){ - return true; -} -; -_.validate = function validate(index_0, object){ - return $validate(this, object); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList', 67); -function $addAllUnique(this$static, index_0, collection){ - var growth, i, object, objects, shifted; - growth = collection.size_1(); - this$static.grow(this$static.size_0 + growth); - shifted = this$static.size_0 - index_0; - shifted > 0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + growth, shifted); - objects = collection.iterator_0(); - this$static.size_0 += growth; - for (i = 0; i < growth; ++i) { - object = objects.next_1(); - $assign(this$static, index_0, this$static.validate(index_0, object)); - this$static.didAdd(index_0, object); - this$static.didChange(); - ++index_0; - } - return growth != 0; -} - -function $addAllUnique_0(this$static, collection){ - var growth, i, object, objects, oldSize; - growth = collection.size_1(); - this$static.grow(this$static.size_0 + growth); - objects = collection.iterator_0(); - oldSize = this$static.size_0; - this$static.size_0 += growth; - for (i = oldSize; i < this$static.size_0; ++i) { - object = objects.next_1(); - $assign(this$static, i, this$static.validate(i, object)); - this$static.didAdd(i, object); - this$static.didChange(); - } - return growth != 0; -} - -function $addUnique(this$static, index_0, object){ - var validatedObject; - this$static.grow(this$static.size_0 + 1); - validatedObject = this$static.validate(index_0, object); - index_0 != this$static.size_0 && arraycopy(this$static.data_0, index_0, this$static.data_0, index_0 + 1, this$static.size_0 - index_0); - setCheck(this$static.data_0, index_0, validatedObject); - ++this$static.size_0; - this$static.didAdd(index_0, object); - this$static.didChange(); -} - -function $addUnique_0(this$static, object){ - this$static.grow(this$static.size_0 + 1); - $assign(this$static, this$static.size_0, this$static.validate(this$static.size_0, object)); - this$static.didAdd(this$static.size_0++, object); - this$static.didChange(); -} - -function $assign(this$static, index_0, object){ - setCheck(this$static.data_0, index_0, object); - return object; -} - -function $basicGet(this$static, index_0){ - if (this$static.data_0 == null || index_0 >= this$static.size_0) - throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); - return this$static.data_0[index_0]; -} - -function $clear_11(this$static){ - var oldData, oldSize; - ++this$static.modCount; - oldData = this$static.data_0; - oldSize = this$static.size_0; - this$static.data_0 = null; - this$static.size_0 = 0; - this$static.didClear(oldSize, oldData); - this$static.didChange(); -} - -function $contains_10(this$static, object){ - var i; - if (this$static.useEquals() && object != null) { - for (i = 0; i < this$static.size_0; ++i) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { - return true; - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { - return true; - } - } - } - return false; -} - -function $get_20(this$static, index_0){ - if (this$static.data_0 == null || index_0 >= this$static.size_0) - throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); - return this$static.resolve(index_0, this$static.data_0[index_0]); -} - -function $indexOf_4(this$static, object){ - var i; - if (this$static.useEquals() && object != null) { - for (i = 0; i < this$static.size_0; ++i) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, this$static.data_0[i])) { - return i; - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - if (maskUndefined(this$static.data_0[i]) === maskUndefined(object)) { - return i; - } - } - } - return -1; -} - -function $move(this$static, targetIndex, sourceIndex){ - var object; - ++this$static.modCount; - if (targetIndex >= this$static.size_0) - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + this$static.size_0)); - if (sourceIndex >= this$static.size_0) - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + this$static.size_0)); - object = this$static.data_0[sourceIndex]; - if (targetIndex != sourceIndex) { - targetIndex < sourceIndex?arraycopy(this$static.data_0, targetIndex, this$static.data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(this$static.data_0, sourceIndex + 1, this$static.data_0, sourceIndex, targetIndex - sourceIndex); - setCheck(this$static.data_0, targetIndex, object); - this$static.didMove(targetIndex, object, sourceIndex); - this$static.didChange(); - } - return object; -} - -function $remove_33(this$static, index_0){ - var oldObject, shifted; - if (index_0 >= this$static.size_0) - throw toJs(new BasicEList$BasicIndexOutOfBoundsException(index_0, this$static.size_0)); - ++this$static.modCount; - oldObject = this$static.data_0[index_0]; - shifted = this$static.size_0 - index_0 - 1; - shifted > 0 && arraycopy(this$static.data_0, index_0 + 1, this$static.data_0, index_0, shifted); - setCheck(this$static.data_0, --this$static.size_0, null); - this$static.didRemove(index_0, oldObject); - this$static.didChange(); - return oldObject; -} - -function $setUnique(this$static, index_0, object){ - var oldObject; - oldObject = this$static.data_0[index_0]; - $assign(this$static, index_0, this$static.validate(index_0, object)); - this$static.didSet(index_0, object, oldObject); - this$static.didChange(); - return oldObject; -} - -function $shrink_0(this$static){ - var oldData; - ++this$static.modCount; - if (this$static.size_0 == 0) { - this$static.data_0 = null; - } - else if (this$static.size_0 < this$static.data_0.length) { - oldData = this$static.data_0; - this$static.data_0 = this$static.newData(this$static.size_0); - arraycopy(oldData, 0, this$static.data_0, 0, this$static.size_0); - } -} - -function $toArray_9(this$static){ - var result; - result = this$static.newData(this$static.size_0); - this$static.size_0 > 0 && arraycopy(this$static.data_0, 0, result, 0, this$static.size_0); - return result; -} - -function $toArray_10(this$static, array){ - var newArray; - if (this$static.size_0 > 0) { - if (array.length < this$static.size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, this$static.size_0); - array = newArray; - } - arraycopy(this$static.data_0, 0, array, 0, this$static.size_0); - } - array.length > this$static.size_0 && setCheck(array, this$static.size_0, null); - return array; -} - -function BasicEList(){ -} - -function BasicEList_0(initialCapacity){ - if (initialCapacity < 0) { - throw toJs(new IllegalArgumentException_0('Illegal Capacity: ' + initialCapacity)); - } - this.data_0 = this.newData(initialCapacity); -} - -function BasicEList_1(collection){ - this.size_0 = collection.size_1(); - if (this.size_0 > 0) { - this.data_0 = this.newData(this.size_0 + (this.size_0 / 8 | 0) + 1); - collection.toArray_0(this.data_0); - } -} - -defineClass(63, 67, $intern_138, BasicEList, BasicEList_0, BasicEList_1); -_.addAllUnique = function addAllUnique(index_0, collection){ - return $addAllUnique(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_0(collection){ - return $addAllUnique_0(this, collection); -} -; -_.addUnique = function addUnique(index_0, object){ - $addUnique(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_0(object){ - $addUnique_0(this, object); -} -; -_.basicGet = function basicGet(index_0){ - return $basicGet(this, index_0); -} -; -_.clear_0 = function clear_52(){ - $clear_11(this); -} -; -_.contains = function contains_52(object){ - return $contains_10(this, object); -} -; -_.get_0 = function get_50(index_0){ - return $get_20(this, index_0); -} -; -_.grow = function grow(minimumCapacity){ - var newCapacity, oldCapacity, oldData; - ++this.modCount; - oldCapacity = this.data_0 == null?0:this.data_0.length; - if (minimumCapacity > oldCapacity) { - oldData = this.data_0; - newCapacity = oldCapacity + (oldCapacity / 2 | 0) + 4; - newCapacity < minimumCapacity && (newCapacity = minimumCapacity); - this.data_0 = this.newData(newCapacity); - oldData != null && arraycopy(oldData, 0, this.data_0, 0, this.size_0); - } -} -; -_.indexOf_0 = function indexOf_8(object){ - return $indexOf_4(this, object); -} -; -_.isEmpty = function isEmpty_26(){ - return this.size_0 == 0; -} -; -_.move = function move_1(targetIndex, sourceIndex){ - return $move(this, targetIndex, sourceIndex); -} -; -_.newData = function newData_0(capacity){ - return initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, capacity, 5, 1); -} -; -_.primitiveGet = function primitiveGet(index_0){ - return this.data_0[index_0]; -} -; -_.remove_2 = function remove_99(index_0){ - return $remove_33(this, index_0); -} -; -_.setUnique = function setUnique(index_0, object){ - return $setUnique(this, index_0, object); -} -; -_.size_1 = function size_65(){ - return this.size_0; -} -; -_.toArray = function toArray_26(){ - return $toArray_9(this); -} -; -_.toArray_0 = function toArray_27(array){ - return $toArray_10(this, array); -} -; -_.size_0 = 0; -var Lorg_eclipse_emf_common_util_BasicEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList', 63); -var Lorg_eclipse_emf_common_util_TreeIterator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'TreeIterator'); -function $hasAnyChildren(this$static){ - var nextPruneIterator; - nextPruneIterator = this$static.nextPruneIterator; - nextPruneIterator = this$static.getChildren(this$static.object); - $add_21(this$static, nextPruneIterator); - return nextPruneIterator.hasNext_0(); -} - -function $next_14(this$static){ - var currentIterator, iterator, nextIterator, result, result0; - if (this$static.data_0 == null) { - this$static.nextPruneIterator = this$static.getChildren(this$static.object); - $add_21(this$static, this$static.nextPruneIterator); - if (this$static.includeRoot) { - result0 = this$static.object; - return result0; - } - } - currentIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); - result = currentIterator.next_1(); - this$static.nextRemoveIterator = currentIterator; - iterator = this$static.getChildren(result); - if (iterator.hasNext_0()) { - this$static.nextPruneIterator = iterator; - $add_21(this$static, iterator); - } - else { - this$static.nextPruneIterator = null; - while (!currentIterator.hasNext_0()) { - setCheck(this$static.data_0, --this$static.size_0, null); - if (this$static.size_0 == 0) { - break; - } - nextIterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); - currentIterator = nextIterator; - } - } - return result; -} - -function AbstractTreeIterator(object, includeRoot){ - this.object = object; - this.includeRoot = includeRoot; -} - -defineClass(694, 63, $intern_139); -_.forEachRemaining = function forEachRemaining_53(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_42(){ - return this.data_0 == null && !this.includeRoot?$hasAnyChildren(this):this.data_0 == null || this.size_0 != 0 && castTo(this.data_0[this.size_0 - 1], 47).hasNext_0(); -} -; -_.next_1 = function next_43(){ - return $next_14(this); -} -; -_.remove = function remove_100(){ - if (!this.nextRemoveIterator) { - throw toJs(new IllegalStateException_0('There is no valid object to remove.')); - } - this.nextRemoveIterator.remove(); -} -; -_.includeRoot = false; -var Lorg_eclipse_emf_common_util_AbstractTreeIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractTreeIterator', 694); -function ElkGraphUtil$PropertiesSkippingTreeIterator(object){ - AbstractTreeIterator.call(this, object, true); -} - -defineClass(685, 694, $intern_139, ElkGraphUtil$PropertiesSkippingTreeIterator); -_.getChildren = function getChildren(object){ - var iterator; - iterator = castTo(object, 56).eContents_0().iterator_0(); - instanceOf(iterator, 279) && castTo(iterator, 279).filter_0(new ElkGraphUtil$PropertiesSkippingTreeIterator$1); - return iterator; -} -; -var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator', 685); -function ElkGraphUtil$PropertiesSkippingTreeIterator$1(){ -} - -defineClass(952, 1, {}, ElkGraphUtil$PropertiesSkippingTreeIterator$1); -var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator$1_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator/1', 952); -function $clinit_ElkReflect(){ - $clinit_ElkReflect = emptyMethod; - REGISTRY_NEW = new HashMap; - REGISTRY_CLONE = new HashMap; - registerClone(Ljava_util_EnumSet_2_classLit, new ElkReflect$lambda$0$Type); -} - -function clone_11(clonee){ - $clinit_ElkReflect(); - if (instanceOf(clonee, 156)) { - return castTo($get_10(REGISTRY_CLONE, Ljava_util_EnumSet_2_classLit), 288).clone(clonee); - } - if ($containsKey_3(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee))) { - return castTo($get_10(REGISTRY_CLONE, getClass__Ljava_lang_Class___devirtual$(clonee)), 288).clone(clonee); - } - return null; -} - -function newInstance_10(clazz){ - $clinit_ElkReflect(); - return $containsKey_3(REGISTRY_NEW, clazz)?castTo($get_10(REGISTRY_NEW, clazz), 331).newInstance():null; -} - -function register(clazz, newFun, cloneFun){ - $clinit_ElkReflect(); - !!clazz && $put_6(REGISTRY_NEW, clazz, newFun); - !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); -} - -function registerClone(clazz, cloneFun){ - !!clazz && $put_6(REGISTRY_CLONE, clazz, cloneFun); -} - -var REGISTRY_CLONE, REGISTRY_NEW; -var Lorg_eclipse_elk_graph_util_ElkReflect_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect', null); -function ElkReflect$lambda$0$Type(){ -} - -defineClass(889, 1, $intern_130, ElkReflect$lambda$0$Type); -_.clone = function clone_12(o){ - return $clinit_ElkReflect() , $clone(castTo(o, 174)); -} -; -var Lorg_eclipse_elk_graph_util_ElkReflect$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect/lambda$0$Type', 889); -function $clinit_ElkJs(){ - $clinit_ElkJs = emptyMethod; - SERVICE = getInstance(); -} - -function collectLogs(currentPM, logObject, recordLogs, recordExecutionTime){ - var child, child$iterator, children, i, jsonChild, jsonExecTime, jsonLogs, jsonString, jsonTaskName, s, s$iterator; - jsonTaskName = new JSONString(currentPM.taskName); - $put_5(logObject, 'name', jsonTaskName); - if (recordLogs && !(!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).list.isEmpty()) { - jsonLogs = new JSONArray; - $put_5(logObject, 'logs', jsonLogs); - i = 0; - for (s$iterator = new Collections$UnmodifiableCollectionIterator((!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).coll.iterator_0()); s$iterator.it.hasNext_0();) { - s = castToString(s$iterator.it.next_1()); - jsonString = new JSONString(s); - $get_8(jsonLogs, i); - $set0(jsonLogs, i, jsonString); - ++i; - } - } - if (recordExecutionTime) { - jsonExecTime = new JSONNumber(currentPM.totalTime); - $put_5(logObject, 'executionTime', jsonExecTime); - } - if (!unmodifiableList(currentPM.children).list.isEmpty()) { - children = new JSONArray; - $put_5(logObject, 'children', children); - i = 0; - for (child$iterator = new Collections$UnmodifiableCollectionIterator(unmodifiableList(currentPM.children).coll.iterator_0()); child$iterator.it.hasNext_0();) { - child = castTo(child$iterator.it.next_1(), 1949); - jsonChild = new JSONObject; - $get_8(children, i); - $set0(children, i, jsonChild); - collectLogs(child, jsonChild, recordLogs, recordExecutionTime); - ++i; - } - } -} - -function exportLayout(){ - $clinit_ElkJs(); - function Dispatcher(worker){ - var _this = this; - this.dispatch = function(event_0){ - var data_0 = event_0.data; - switch (data_0.cmd) { - case 'algorithms': - var algs = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutAlgorithmMap)))); - worker.postMessage({id:data_0.id, data:algs}); - break; - case 'categories': - var cats = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutCategoryMap)))); - worker.postMessage({id:data_0.id, data:cats}); - break; - case 'options': - var opts = getLayoutData(($clinit_Collections() , new Collections$UnmodifiableCollection(new AbstractMap$2(SERVICE.layoutOptionMap)))); - worker.postMessage({id:data_0.id, data:opts}); - break; - case 'register': - registerLayoutAlgorithms(data_0.algorithms); - worker.postMessage({id:data_0.id}); - break; - case 'layout': - layout_11(data_0.graph, data_0.layoutOptions || {}, data_0.options || {}); - worker.postMessage({id:data_0.id, data:data_0.graph}); - break; - } - } - ; - this.saveDispatch = function(event_0){ - try { - _this.dispatch(event_0); - } - catch (err) { - worker.postMessage({id:event_0.data.id, error:err}); - } - } - ; - } - - function FakeWorker(url_0){ - var _this = this; - this.dispatcher = new Dispatcher({postMessage:function(msg){ - _this.onmessage({data:msg}); - } - }); - this.postMessage = function(msg){ - setTimeout(function(){ - _this.dispatcher.saveDispatch({data:msg}); - } - , 0); - } - ; - } - - if (typeof document === 'undefined' && typeof self !== 'undefined') { - var dispatcher = new Dispatcher(self); - self.onmessage = dispatcher.saveDispatch; - } - else if (typeof module !== 'undefined' && module.exports) { - Object.defineProperty(exports, '__esModule', {value:true}); - module.exports = {'default':FakeWorker, Worker:FakeWorker}; - } -} - -function getLayoutData(data_0){ - var arr, json, ld, ld$iterator; - arr = new JSONArray; - for (ld$iterator = new Collections$UnmodifiableCollectionIterator(data_0.coll.iterator_0()); ld$iterator.it.hasNext_0();) { - ld = castTo(ld$iterator.it.next_1(), 686); - json = toJson(ld); - $set_0(arr, arr.jsArray.length, json); - } - return arr.jsArray; -} - -function layout_11(graphObj, layoutOptionsObj, optionsObj){ - var _function, elkGraph, graph, importer, lc, logs, options, pm, recordExecutionTime, recordLogs, root; - graph = new JSONObject_0(graphObj); - importer = new JsonImporter; - elkGraph = ($clear_2(importer.nodeIdMap) , $clear_2(importer.portIdMap) , $reset(importer.edgeIdMap) , $clear_2(importer.edgeSectionIdMap) , $clear_2(importer.nodeJsonMap) , $reset(importer.portJsonMap) , $reset(importer.edgeJsonMap) , $reset(importer.edgeSectionJsonMap) , root = $transformNode_0(importer, graph, null) , $transformEdges_2(importer, graph) , root); - if (layoutOptionsObj) { - options = new JSONObject_0(layoutOptionsObj); - lc = optsToCfg(options); - applyVisitors(elkGraph, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_IGraphElementVisitor_2_classLit, 1), $intern_2, 527, 0, [lc])); - } - recordLogs = false; - recordExecutionTime = false; - if (optionsObj) { - options = new JSONObject_0(optionsObj); - 'logging' in options.jsObject && (recordLogs = $get_9(options, 'logging').isBoolean().value_0); - 'measureExecutionTime' in options.jsObject && (recordExecutionTime = $get_9(options, 'measureExecutionTime').isBoolean().value_0); - } - pm = $withExecutionTimeMeasurement($withLogging(new BasicProgressMonitor, recordLogs), recordExecutionTime); - $layout_3(new RecursiveGraphLayoutEngine, elkGraph, pm); - 'logging' in graph.jsObject && $put_5(graph, 'logging', null); - if (recordLogs || recordExecutionTime) { - logs = new JSONObject; - collectLogs(pm, logs, recordLogs, recordExecutionTime); - $put_5(graph, 'logging', logs); - } - _function = new JsonImporter$lambda$35$Type(importer); - forEach_43(new ElkGraphUtil$PropertiesSkippingTreeIterator(elkGraph), _function); -} - -function optsToCfg(opts){ - var jsonVal, key, key$iterator, keys_0, lc, option, serialized, value_0; - lc = new LayoutConfigurator; - $addFilter(lc, ($clinit_LayoutConfigurator() , NO_OVERWRITE)); - for (key$iterator = (keys_0 = $computeKeys0(opts, initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1)) , new AbstractList$IteratorImpl(new Arrays$ArrayList((new JSONObject$1(opts, keys_0)).val$keys2))); key$iterator.i < key$iterator.this$01_0.size_1();) { - key = (checkCriticalElement(key$iterator.i < key$iterator.this$01_0.size_1()) , castToString(key$iterator.this$01_0.get_0(key$iterator.last = key$iterator.i++))); - option = $getOptionDataBySuffix(SERVICE, key); - if (option) { - jsonVal = $get_9(opts, key); - jsonVal.isString()?(serialized = jsonVal.isString().value_0):jsonVal.isBoolean()?(serialized = '' + jsonVal.isBoolean().value_0):jsonVal.isNumber()?(serialized = '' + jsonVal.isNumber().value_0):(serialized = jsonVal.toString_0()); - value_0 = $parseValue(option, serialized); - if (value_0 != null) { - ($containsEnum(option.targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(option.targets, PARENTS)) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkNode_2_classLit), option, value_0); - $containsEnum(option.targets, EDGES) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), option, value_0); - $containsEnum(option.targets, PORTS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkPort_2_classLit), option, value_0); - $containsEnum(option.targets, LABELS) && $setProperty($configure(lc, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), option, value_0); - } - } - } - return lc; -} - -function registerLayoutAlgorithms(arrayObj){ - var alg, arr, i; - $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new CoreOptions])); - arr = new JSONArray_0(arrayObj); - for (i = 0; i < arr.jsArray.length; ++i) { - alg = $get_8(arr, i).isString().value_0; - $equals_5(alg, 'layered')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new LayeredMetaDataProvider])):$equals_5(alg, 'force')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new ForceMetaDataProvider])):$equals_5(alg, 'stress')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new StressMetaDataProvider])):$equals_5(alg, 'mrtree')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new MrTreeMetaDataProvider])):$equals_5(alg, 'radial')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RadialMetaDataProvider])):$equals_5(alg, 'disco')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new PolyominoOptions, new DisCoMetaDataProvider])):$equals_5(alg, 'sporeOverlap') || $equals_5(alg, 'sporeCompaction')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new SporeMetaDataProvider])):$equals_5(alg, 'rectpacking') && $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RectPackingMetaDataProvider])); - } -} - -var SERVICE; -var Lorg_eclipse_emf_common_util_ResourceLocator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'ResourceLocator'); -function $getString(key){ - return $equals_5('_UI_EMFDiagnostic_marker', key)?'EMF Problem':$equals_5('_UI_CircularContainment_diagnostic', key)?'An object may not circularly contain itself':$equals_5('parser.parse.1', key)?'Wrong character.':$equals_5('parser.parse.2', key)?'Invalid reference number.':$equals_5('parser.next.1', key)?'A character is required after \\.':$equals_5('parser.next.2', key)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":$equals_5('parser.next.3', key)?"'(?<' or '(?= size_0 || targetIndex < 0) - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); - if (sourceIndex >= size_0 || sourceIndex < 0) - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); - targetIndex != sourceIndex?(object = (result = this$static.delegateRemove(sourceIndex) , this$static.delegateAdd(targetIndex, result) , result)):(object = this$static.delegateGet(sourceIndex)); - return object; -} - -function $remove_34(this$static, index_0){ - var oldObject; - ++this$static.modCount; - oldObject = this$static.delegateRemove(index_0); - return oldObject; -} - -defineClass(1995, 67, $intern_141); -_.addAllUnique = function addAllUnique_1(index_0, collection){ - return $addAllUnique_1(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_2(collection){ - var i, object, object$iterator; - ++this.modCount; - if (collection.isEmpty()) { - return false; - } - else { - i = this.delegateSize(); - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - this.delegateAdd_0(this.validate(i, object)); - ++i; - } - return true; - } -} -; -_.addUnique = function addUnique_1(index_0, object){ - $addUnique_1(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_2(object){ - $addUnique_2(this, object); -} -; -_.basicList = function basicList(){ - return this.delegateBasicList(); -} -; -_.clear_0 = function clear_53(){ - $doClear(this, this.delegateSize(), this.delegateToArray()); -} -; -_.contains = function contains_53(object){ - return this.delegateContains(object); -} -; -_.containsAll = function containsAll_11(collection){ - return this.delegateContainsAll(collection); -} -; -_.delegateAdd = function delegateAdd(index_0, object){ - this.delegateList_1().$_nullMethod(); -} -; -_.delegateAdd_0 = function delegateAdd_0(object){ - this.delegateList_1().$_nullMethod(); -} -; -_.delegateBasicList = function delegateBasicList(){ - return this.delegateList_1(); -} -; -_.delegateClear = function delegateClear(){ - this.delegateList_1().$_nullMethod(); -} -; -_.delegateContains = function delegateContains(object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateContainsAll = function delegateContainsAll(collection){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateEquals = function delegateEquals(object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateGet = function delegateGet(index_0){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateHashCode = function delegateHashCode(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateIndexOf = function delegateIndexOf(object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateIsEmpty = function delegateIsEmpty(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateRemove = function delegateRemove(index_0){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateSet = function delegateSet(index_0, object){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateSize = function delegateSize(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateToArray = function delegateToArray(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateToArray_0 = function delegateToArray_0(array){ - return this.delegateList_1().$_nullMethod(); -} -; -_.delegateToString = function delegateToString(){ - return this.delegateList_1().$_nullMethod(); -} -; -_.equals_0 = function equals_187(object){ - return this.delegateEquals(object); -} -; -_.get_0 = function get_51(index_0){ - return this.resolve(index_0, this.delegateGet(index_0)); -} -; -_.hashCode_1 = function hashCode_75(){ - return this.delegateHashCode(); -} -; -_.indexOf_0 = function indexOf_9(object){ - return this.delegateIndexOf(object); -} -; -_.isEmpty = function isEmpty_27(){ - return this.delegateIsEmpty(); -} -; -_.move = function move_2(targetIndex, sourceIndex){ - return $move_0(this, targetIndex, sourceIndex); -} -; -_.primitiveGet = function primitiveGet_0(index_0){ - return this.delegateGet(index_0); -} -; -_.remove_2 = function remove_101(index_0){ - return $remove_34(this, index_0); -} -; -_.remove_1 = function remove_102(object){ - var index_0; - index_0 = this.indexOf_0(object); - if (index_0 >= 0) { - this.remove_2(index_0); - return true; - } - else { - return false; - } -} -; -_.setUnique = function setUnique_0(index_0, object){ - return this.delegateSet(index_0, this.validate(index_0, object)); -} -; -_.size_1 = function size_66(){ - return this.delegateSize(); -} -; -_.toArray = function toArray_28(){ - return this.delegateToArray(); -} -; -_.toArray_0 = function toArray_29(array){ - return this.delegateToArray_0(array); -} -; -_.toString_0 = function toString_136(){ - return this.delegateToString(); -} -; -var Lorg_eclipse_emf_common_util_DelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'DelegatingEList', 1995); -function $addAllUnique_2(this$static, index_0, collection){ - var collectionSize, i, lastIndex, notification, notifications, oldIsSet, value_0; - collectionSize = collection.size_1(); - if (collectionSize == 0) { - return false; - } - else { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - $addAllUnique_1(this$static, index_0, collection); - notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - value_0 = this$static.delegateGet(i); - notifications = this$static.inverseAdd(value_0, notifications); - notifications = notifications; - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addAllUnique_1(this$static, index_0, collection); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - notifications = this$static.inverseAdd(this$static.delegateGet(i), notifications); - } - !!notifications && notifications.dispatch_0(); - } - } - return true; - } -} - -function $addUnique_3(this$static, index_0, object){ - var notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $addUnique_4(this$static, object){ - var index_0, notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.delegateSize(); - oldIsSet = this$static.isSet_0(); - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addUnique_2(this$static, object); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $basicAdd(this$static, object, notifications){ - var index_0, notification, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.delegateSize(); - oldIsSet = this$static.isSet_0(); - ++this$static.modCount; - this$static.delegateAdd(index_0, this$static.validate(index_0, object)); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $addUnique_1(this$static, this$static.delegateSize(), object); - } - return notifications; -} - -function $basicRemove(this$static, object, notifications){ - var index_0, notification, oldIsSet, oldObject; - index_0 = this$static.indexOf_0(object); - if (index_0 != -1) { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - oldObject = $remove_34(this$static, index_0); - notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $remove_34(this$static, index_0); - } - } - return notifications; -} - -function $clear_12(this$static){ - var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize, size_0; - if (this$static.isNotificationRequired()) { - size_0 = this$static.delegateSize(); - oldIsSet = this$static.isSet_0(); - if (size_0 > 0) { - collection = new BasicEList_1(this$static.basicList()); - collectionSize = size_0; - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - $doClear(this$static, collectionSize, collection.data_0); - notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); - if (this$static.hasInverse()) { - for (i = new AbstractEList$EIterator(collection); i.cursor != i.this$01_2.size_1();) { - notifications = this$static.inverseRemove($doNext(i), notifications); - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - } - else { - $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); - this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); - } - } - else if (this$static.hasInverse()) { - size_0 = this$static.delegateSize(); - if (size_0 > 0) { - oldData = this$static.delegateToArray(); - oldSize = size_0; - $doClear(this$static, size_0, oldData); - notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); - for (i = 0; i < oldSize; ++i) { - object = oldData[i]; - notifications = this$static.inverseRemove(object, notifications); - } - !!notifications && notifications.dispatch_0(); - } - else { - $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); - } - } - else { - $doClear(this$static, this$static.delegateSize(), this$static.delegateToArray()); - } -} - -function $setUnique_0(this$static, index_0, object){ - var notification, notifications, oldIsSet, oldObject, oldObject0; - if (this$static.isNotificationRequired()) { - notifications = null; - oldIsSet = this$static.isSet_0(); - notification = this$static.createNotification(1, oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject), object, index_0, oldIsSet); - if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { - !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, notifications)); - notifications = this$static.inverseAdd(object, notifications); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject0; - } - else { - oldObject0 = (oldObject = this$static.delegateSet(index_0, this$static.validate(index_0, object)) , oldObject); - if (this$static.hasInverse() && !(this$static.useEquals() && !!oldObject0?equals_Ljava_lang_Object__Z__devirtual$(oldObject0, object):maskUndefined(oldObject0) === maskUndefined(object))) { - notifications = null; - !!oldObject0 && (notifications = this$static.inverseRemove(oldObject0, null)); - notifications = this$static.inverseAdd(object, notifications); - !!notifications && notifications.dispatch_0(); - } - return oldObject0; - } -} - -defineClass(1996, 1995, $intern_141); -_.addAllUnique = function addAllUnique_3(index_0, collection){ - return $addAllUnique_2(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_4(collection){ - return this.addAllUnique(this.delegateSize(), collection); -} -; -_.addUnique = function addUnique_3(index_0, object){ - $addUnique_3(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_4(object){ - $addUnique_4(this, object); -} -; -_.canContainNull = function canContainNull_0(){ - return !this.hasInverse(); -} -; -_.clear_0 = function clear_54(){ - $clear_12(this); -} -; -_.createNotification = function createNotification(eventType, oldObject, newObject, index_0, wasSet){ - return new DelegatingNotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification(notification){ - $eNotify(this.getNotifier(), notification); -} -; -_.getFeature = function getFeature(){ - return null; -} -; -_.getFeatureID_0 = function getFeatureID(){ - return -1; -} -; -_.getNotifier = function getNotifier(){ - return null; -} -; -_.hasInverse = function hasInverse(){ - return false; -} -; -_.inverseAdd = function inverseAdd(object, notifications){ - return notifications; -} -; -_.inverseRemove = function inverseRemove(object, notifications){ - return notifications; -} -; -_.isNotificationRequired = function isNotificationRequired(){ - return false; -} -; -_.isSet_0 = function isSet(){ - return !this.delegateIsEmpty(); -} -; -_.move = function move_3(targetIndex, sourceIndex){ - var object, oldIsSet; - if (this.isNotificationRequired()) { - oldIsSet = this.isSet_0(); - object = $move_0(this, targetIndex, sourceIndex); - this.dispatchNotification(this.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); - return object; - } - else { - return $move_0(this, targetIndex, sourceIndex); - } -} -; -_.remove_2 = function remove_103(index_0){ - var notification, notifications, oldIsSet, oldObject; - if (this.isNotificationRequired()) { - notifications = null; - oldIsSet = this.isSet_0(); - notification = this.createNotification(4, oldObject = $remove_34(this, index_0), null, index_0, oldIsSet); - if (this.hasInverse() && !!oldObject) { - notifications = this.inverseRemove(oldObject, notifications); - if (!notifications) { - this.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject; - } - else { - oldObject = $remove_34(this, index_0); - if (this.hasInverse() && !!oldObject) { - notifications = this.inverseRemove(oldObject, null); - !!notifications && notifications.dispatch_0(); - } - return oldObject; - } -} -; -_.setUnique = function setUnique_1(index_0, object){ - return $setUnique_0(this, index_0, object); -} -; -var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl', 1996); -function $add_22(this$static, newNotification){ - if (!newNotification) { - return false; - } - else { - if (this$static.merge_0(newNotification)) { - return false; - } - if (!this$static.next_0) { - if (instanceOf(newNotification, 143)) { - this$static.next_0 = castTo(newNotification, 143); - return true; - } - else { - this$static.next_0 = new NotificationChainImpl; - return this$static.next_0.add_5(newNotification); - } - } - else { - return this$static.next_0.add_5(newNotification); - } - } -} - -function $dispatch(this$static){ - var notifier; - notifier = this$static.getNotifier(); - notifier != null && this$static.eventType != -1 && castTo(notifier, 92).eNotify(this$static); - !!this$static.next_0 && this$static.next_0.dispatch_0(); -} - -function $getNewBooleanValue(this$static){ - if (this$static.primitiveType != 0) - throw toJs(new IllegalStateException); - return neq(this$static.newSimplePrimitiveValue, 0); -} - -function $getNewByteValue(this$static){ - if (this$static.primitiveType != 1) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue) << 24 >> 24; -} - -function $getNewCharValue(this$static){ - if (this$static.primitiveType != 2) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue) & $intern_46; -} - -function $getNewDoubleValue(this$static){ - if (this$static.primitiveType != 3) - throw toJs(new IllegalStateException); - return this$static.newIEEEPrimitiveValue; -} - -function $getNewFloatValue(this$static){ - if (this$static.primitiveType != 4) - throw toJs(new IllegalStateException); - return this$static.newIEEEPrimitiveValue; -} - -function $getNewIntValue(this$static){ - if (this$static.primitiveType != 5) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue); -} - -function $getNewLongValue(this$static){ - if (this$static.primitiveType != 6) - throw toJs(new IllegalStateException); - return this$static.newSimplePrimitiveValue; -} - -function $getNewShortValue(this$static){ - if (this$static.primitiveType != 7) - throw toJs(new IllegalStateException); - return toInt_0(this$static.newSimplePrimitiveValue) << 16 >> 16; -} - -function $getNewValue(this$static){ - if (this$static.newValue == null) { - switch (this$static.primitiveType) { - case 0: - this$static.newValue = $getNewBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); - break; - case 1: - this$static.newValue = valueOf_2($getNewByteValue(this$static)); - break; - case 2: - this$static.newValue = valueOf_3($getNewCharValue(this$static)); - break; - case 3: - this$static.newValue = $getNewDoubleValue(this$static); - break; - case 4: - this$static.newValue = new Float($getNewFloatValue(this$static)); - break; - case 6: - this$static.newValue = valueOf_5($getNewLongValue(this$static)); - break; - case 5: - this$static.newValue = valueOf_4($getNewIntValue(this$static)); - break; - case 7: - this$static.newValue = valueOf_6($getNewShortValue(this$static)); - } - } - return this$static.newValue; -} - -function $getOldBooleanValue(this$static){ - if (this$static.primitiveType != 0) - throw toJs(new IllegalStateException); - return neq(this$static.oldSimplePrimitiveValue, 0); -} - -function $getOldByteValue(this$static){ - if (this$static.primitiveType != 1) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; -} - -function $getOldCharValue(this$static){ - if (this$static.primitiveType != 2) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46; -} - -function $getOldDoubleValue(this$static){ - if (this$static.primitiveType != 3) - throw toJs(new IllegalStateException); - return this$static.oldIEEEPrimitiveValue; -} - -function $getOldFloatValue(this$static){ - if (this$static.primitiveType != 4) - throw toJs(new IllegalStateException); - return this$static.oldIEEEPrimitiveValue; -} - -function $getOldIntValue(this$static){ - if (this$static.primitiveType != 5) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue); -} - -function $getOldLongValue(this$static){ - if (this$static.primitiveType != 6) - throw toJs(new IllegalStateException); - return this$static.oldSimplePrimitiveValue; -} - -function $getOldShortValue(this$static){ - if (this$static.primitiveType != 7) - throw toJs(new IllegalStateException); - return toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; -} - -function $getOldValue(this$static){ - if (this$static.oldValue == null) { - switch (this$static.primitiveType) { - case 0: - this$static.oldValue = $getOldBooleanValue(this$static)?($clinit_Boolean() , TRUE_0):($clinit_Boolean() , FALSE_0); - break; - case 1: - this$static.oldValue = valueOf_2($getOldByteValue(this$static)); - break; - case 2: - this$static.oldValue = valueOf_3($getOldCharValue(this$static)); - break; - case 3: - this$static.oldValue = $getOldDoubleValue(this$static); - break; - case 4: - this$static.oldValue = new Float($getOldFloatValue(this$static)); - break; - case 6: - this$static.oldValue = valueOf_5($getOldLongValue(this$static)); - break; - case 5: - this$static.oldValue = valueOf_4($getOldIntValue(this$static)); - break; - case 7: - this$static.oldValue = valueOf_6($getOldShortValue(this$static)); - } - } - return this$static.oldValue; -} - -function $isTouch(this$static){ - switch (this$static.eventType) { - case 9: - case 8: - { - return true; - } - - case 3: - case 5: - case 4: - case 6: - { - return false; - } - - case 7: - { - return castTo($getOldValue(this$static), 19).value_0 == this$static.position; - } - - case 1: - case 2: - { - if (this$static.position == -2) { - return false; - } - else { - switch (this$static.primitiveType) { - case 0: - case 1: - case 2: - case 6: - case 5: - case 7: - { - return eq(this$static.oldSimplePrimitiveValue, this$static.newSimplePrimitiveValue); - } - - case 3: - case 4: - { - return this$static.oldIEEEPrimitiveValue == this$static.newIEEEPrimitiveValue; - } - - default:{ - return this$static.oldValue == null?this$static.newValue == null:equals_Ljava_lang_Object__Z__devirtual$(this$static.oldValue, this$static.newValue); - } - - } - } - } - - default:{ - return false; - } - - } -} - -function $wasSet(this$static){ - var defaultValue; - switch (this$static.eventType) { - case 1: - { - if (this$static.isFeatureUnsettable()) { - return this$static.position != -2; - } - break; - } - - case 2: - { - if (this$static.isFeatureUnsettable()) { - return this$static.position == -2; - } - break; - } - - case 3: - case 5: - case 4: - case 6: - case 7: - { - return this$static.position > -2; - } - - default:{ - return false; - } - - } - defaultValue = this$static.getFeatureDefaultValue(); - switch (this$static.primitiveType) { - case 0: - return defaultValue != null && $booleanValue(castToBoolean(defaultValue)) != neq(this$static.oldSimplePrimitiveValue, 0); - case 1: - return defaultValue != null && castTo(defaultValue, 217).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; - case 2: - return defaultValue != null && castTo(defaultValue, 172).value_0 != (toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46); - case 6: - return defaultValue != null && neq(castTo(defaultValue, 162).value_0, this$static.oldSimplePrimitiveValue); - case 5: - return defaultValue != null && castTo(defaultValue, 19).value_0 != toInt_0(this$static.oldSimplePrimitiveValue); - case 7: - return defaultValue != null && castTo(defaultValue, 184).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 16 >> 16; - case 3: - return defaultValue != null && $doubleValue(castToDouble(defaultValue)) != this$static.oldIEEEPrimitiveValue; - case 4: - return defaultValue != null && castTo(defaultValue, 155).value_0 != this$static.oldIEEEPrimitiveValue; - default:return defaultValue == null?this$static.oldValue != null:!equals_Ljava_lang_Object__Z__devirtual$(defaultValue, this$static.oldValue); - } -} - -function NotificationImpl(eventType, oldDoubleValue, newDoubleValue){ - this.eventType = eventType; - this.oldIEEEPrimitiveValue = oldDoubleValue; - this.newIEEEPrimitiveValue = newDoubleValue; - this.position = -1; - this.primitiveType = 3; -} - -function NotificationImpl_0(eventType, oldIntValue, newIntValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldIntValue; - this.newSimplePrimitiveValue = newIntValue; - this.position = -1; - this.primitiveType = 5; -} - -function NotificationImpl_1(eventType, oldValue, newValue, position){ - this.eventType = eventType; - this.oldValue = oldValue; - this.newValue = newValue; - this.position = position; - this.primitiveType = -1; -} - -function NotificationImpl_2(eventType, oldValue, newValue, position, wasSet){ - this.eventType = eventType; - this.oldValue = oldValue; - this.newValue = newValue; - this.position = position; - this.primitiveType = -1; - wasSet || (this.position = -2 - position - 1); -} - -function NotificationImpl_3(eventType, oldBooleanValue, newBooleanValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldBooleanValue?1:0; - this.newSimplePrimitiveValue = newBooleanValue?1:0; - this.position = -1; - this.primitiveType = 0; -} - -defineClass(143, 1, $intern_142); -_.add_5 = function add_48(newNotification){ - return $add_22(this, newNotification); -} -; -_.dispatch_0 = function dispatch(){ - $dispatch(this); -} -; -_.getEventType = function getEventType(){ - return this.eventType; -} -; -_.getFeature = function getFeature_0(){ - return null; -} -; -_.getFeatureDefaultValue = function getFeatureDefaultValue(){ - return null; -} -; -_.getFeatureID = function getFeatureID_0(expectedClass){ - return -1; -} -; -_.getNewValue = function getNewValue(){ - return $getNewValue(this); -} -; -_.getNotifier = function getNotifier_0(){ - return null; -} -; -_.getOldValue = function getOldValue(){ - return $getOldValue(this); -} -; -_.getPosition_0 = function getPosition_2(){ - return this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; -} -; -_.isFeatureUnsettable = function isFeatureUnsettable(){ - return false; -} -; -_.merge_0 = function merge_3(notification){ - var index_0, list, newPositions, notificationEventType, notificationNotifier, notificationPosition, oldPosition, originalPosition, originalWasSet, positions, removedValues; - switch (this.eventType) { - case 1: - case 2: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 1: - case 2: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { - this.newValue = notification.getNewValue(); - notification.getEventType() == 1 && (this.eventType = 1); - return true; - } - } - - } - } - - case 4: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { - originalWasSet = $wasSet(this); - originalPosition = this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position; - notificationPosition = notification.getPosition_0(); - this.eventType = 6; - removedValues = new BasicEList_0(2); - if (originalPosition <= notificationPosition) { - $add_21(removedValues, this.oldValue); - $add_21(removedValues, notification.getOldValue()); - this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = originalPosition, notificationPosition + 1]); - } - else { - $add_21(removedValues, notification.getOldValue()); - $add_21(removedValues, this.oldValue); - this.newValue = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position = notificationPosition, originalPosition]); - } - this.oldValue = removedValues; - originalWasSet || (this.position = -2 - this.position - 1); - return true; - } - break; - } - - } - break; - } - - case 6: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.getNotifier()) && this.getFeatureID(null) == notification.getFeatureID(null)) { - originalWasSet = $wasSet(this); - notificationPosition = notification.getPosition_0(); - positions = castTo(this.newValue, 48); - newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); - index_0 = 0; - while (index_0 < positions.length) { - oldPosition = positions[index_0]; - if (oldPosition <= notificationPosition) { - newPositions[index_0++] = oldPosition; - ++notificationPosition; - } - else { - break; - } - } - list = castTo(this.oldValue, 15); - list.add_3(index_0, notification.getOldValue()); - newPositions[index_0] = notificationPosition; - while (++index_0 < newPositions.length) { - newPositions[index_0] = positions[index_0 - 1]; - } - this.newValue = newPositions; - originalWasSet || (this.position = -2 - newPositions[0]); - return true; - } - break; - } - - } - break; - } - - } - return false; -} -; -_.toString_0 = function toString_137(){ - var i, number, positions, result; - result = new StringBuffer_1($getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16))); - result.string += ' (eventType: '; - switch (this.eventType) { - case 1: - { - result.string += 'SET'; - break; - } - - case 2: - { - result.string += 'UNSET'; - break; - } - - case 3: - { - result.string += 'ADD'; - break; - } - - case 5: - { - result.string += 'ADD_MANY'; - break; - } - - case 4: - { - result.string += 'REMOVE'; - break; - } - - case 6: - { - result.string += 'REMOVE_MANY'; - break; - } - - case 7: - { - result.string += 'MOVE'; - break; - } - - case 8: - { - result.string += 'REMOVING_ADAPTER'; - break; - } - - case 9: - { - result.string += 'RESOLVE'; - break; - } - - default:{ - $append_1(result, this.eventType); - break; - } - - } - $isTouch(this) && (result.string += ', touch: true' , result); - result.string += ', position: '; - $append_1(result, this.position < 0?this.position < -2?-2 - this.position - 1:-1:this.position); - result.string += ', notifier: '; - $append_2(result, this.getNotifier()); - result.string += ', feature: '; - $append_2(result, this.getFeature()); - result.string += ', oldValue: '; - $append_2(result, $getOldValue(this)); - result.string += ', newValue: '; - if (this.eventType == 6 && instanceOf(this.newValue, 48)) { - positions = castTo(this.newValue, 48); - result.string += '['; - for (i = 0; i < positions.length;) { - result.string += positions[i]; - ++i < positions.length && (result.string += ', ' , result); - } - result.string += ']'; - } - else { - $append_2(result, $getNewValue(this)); - } - result.string += ', isTouch: '; - $append_4(result, $isTouch(this)); - result.string += ', wasSet: '; - $append_4(result, $wasSet(this)); - result.string += ')'; - return result.string; -} -; -_.eventType = 0; -_.newIEEEPrimitiveValue = 0; -_.newSimplePrimitiveValue = 0; -_.oldIEEEPrimitiveValue = 0; -_.oldSimplePrimitiveValue = 0; -_.position = 0; -_.primitiveType = 0; -var Lorg_eclipse_emf_common_notify_impl_NotificationImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationImpl', 143); -function DelegatingNotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ - this.this$01 = this$0; - NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); -} - -defineClass(1167, 143, $intern_142, DelegatingNotifyingListImpl$1); -_.getFeature = function getFeature_1(){ - return this.this$01.getFeature(); -} -; -_.getFeatureID = function getFeatureID_1(expectedClass){ - return this.this$01.getFeatureID_0(); -} -; -_.getNotifier = function getNotifier_1(){ - return this.this$01.getNotifier(); -} -; -var Lorg_eclipse_emf_common_notify_impl_DelegatingNotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'DelegatingNotifyingListImpl/1', 1167); -function $add_23(this$static, newNotification){ - var i, notification; - if (!newNotification) { - return false; - } - else { - for (i = 0; i < this$static.size_0; ++i) { - notification = castTo(this$static.data_0[i], 366); - if (notification.merge_0(newNotification)) { - return false; - } - } - return $add_21(this$static, newNotification); - } -} - -function NotificationChainImpl(){ -} - -function NotificationChainImpl_0(initialCapacity){ - BasicEList_0.call(this, initialCapacity); -} - -defineClass(242, 63, $intern_138, NotificationChainImpl, NotificationChainImpl_0); -_.add_2 = function add_49(newNotification){ - return $add_23(this, castTo(newNotification, 366)); -} -; -_.add_5 = function add_50(newNotification){ - return $add_23(this, newNotification); -} -; -_.dispatch_0 = function dispatch_0(){ - var i, notification, notifier; - for (i = 0; i < this.size_0; ++i) { - notification = castTo(this.data_0[i], 366); - notifier = notification.getNotifier(); - notifier != null && notification.getEventType() != -1 && castTo(notifier, 92).eNotify(notification); - } -} -; -_.newData = function newData_1(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Notification_2_classLit, $intern_2, 366, capacity, 0, 1); -} -; -var Lorg_eclipse_emf_common_notify_impl_NotificationChainImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationChainImpl', 242); -defineClass(1378, 90, $intern_133); -_.eBasicAdapters = function eBasicAdapters_1(){ - return this.eAdapters; -} -; -_.eDeliver = function eDeliver_1(){ - return (this.eFlags & 1) != 0; -} -; -_.eFlags = 1; -var Lorg_eclipse_emf_common_notify_impl_NotifierImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifierImpl', 1378); -function $addAllUnique_3(this$static, index_0, collection){ - var collectionSize, i, lastIndex, notification, notifications, object, oldIsSet, value_0; - collectionSize = collection.size_1(); - if (collectionSize == 0) { - return false; - } - else { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - $addAllUnique(this$static, index_0, collection); - notification = collectionSize == 1?this$static.createNotification(3, null, collection.iterator_0().next_1(), index_0, oldIsSet):this$static.createNotification(5, null, collection, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - value_0 = this$static.data_0[i]; - notifications = this$static.inverseAdd(value_0, notifications); - notifications = this$static.shadowAdd(value_0, notifications); - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addAllUnique(this$static, index_0, collection); - if (this$static.hasInverse()) { - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - lastIndex = index_0 + collectionSize; - for (i = index_0; i < lastIndex; ++i) { - object = this$static.data_0[i]; - notifications = this$static.inverseAdd(object, notifications); - } - !!notifications && notifications.dispatch_0(); - } - } - return true; - } -} - -function $addUnique_5(this$static, index_0, object){ - var notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - $addUnique(this$static, index_0, object); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addUnique(this$static, index_0, object); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $addUnique_6(this$static, object){ - var index_0, notification, notifications, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.size_0; - oldIsSet = this$static.isSet_0(); - $addUnique_0(this$static, object); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - this$static.hasShadow() && (notifications = this$static.shadowAdd(object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.dispatchNotification(notification); - } - } - else { - $addUnique_0(this$static, object); - if (this$static.hasInverse()) { - notifications = this$static.inverseAdd(object, null); - !!notifications && notifications.dispatch_0(); - } - } -} - -function $basicAdd_0(this$static, object, notifications){ - var index_0, notification, oldIsSet; - if (this$static.isNotificationRequired()) { - index_0 = this$static.size_0; - oldIsSet = this$static.isSet_0(); - $addUnique(this$static, index_0, object); - notification = this$static.createNotification(3, null, object, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $addUnique(this$static, this$static.size_0, object); - } - return notifications; -} - -function $basicRemove_0(this$static, object, notifications){ - var index_0, notification, oldIsSet, oldObject; - index_0 = this$static.indexOf_0(object); - if (index_0 != -1) { - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - oldObject = $remove_33(this$static, index_0); - notification = this$static.createNotification(4, oldObject, null, index_0, oldIsSet); - !notifications?(notifications = notification):notifications.add_5(notification); - } - else { - $remove_33(this$static, index_0); - } - } - return notifications; -} - -function $clear_13(this$static){ - var collection, collectionSize, i, notification, notifications, object, oldData, oldIsSet, oldSize; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - if (this$static.size_0 > 0) { - collection = new BasicEList$UnmodifiableEList(this$static.size_0, this$static.data_0); - collectionSize = this$static.size_0; - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - if (this$static.hasShadow()) { - for (i = 0; i < this$static.size_0; ++i) { - object = this$static.data_0[i]; - notifications = this$static.shadowRemove(object, notifications); - } - } - $clear_11(this$static); - notification = collectionSize == 1?this$static.createNotification(4, $get_20(collection, 0), null, 0, oldIsSet):this$static.createNotification(6, collection, null, -1, oldIsSet); - if (this$static.hasInverse()) { - for (i = new AbstractEList$NonResolvingEIterator(collection); i.cursor != i.this$01_2.size_1();) { - notifications = this$static.inverseRemove($doNext_0(i), notifications); - } - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - } - else { - $clear_11(this$static); - this$static.dispatchNotification(this$static.createNotification(6, ($clinit_Collections() , EMPTY_LIST), null, -1, oldIsSet)); - } - } - else if (this$static.hasInverse()) { - if (this$static.size_0 > 0) { - oldData = this$static.data_0; - oldSize = this$static.size_0; - $clear_11(this$static); - notifications = oldSize < 100?null:new NotificationChainImpl_0(oldSize); - for (i = 0; i < oldSize; ++i) { - object = oldData[i]; - notifications = this$static.inverseRemove(object, notifications); - } - !!notifications && notifications.dispatch_0(); - } - else { - $clear_11(this$static); - } - } - else { - $clear_11(this$static); - } -} - -function $createNotificationChain(capacity){ - return capacity < 100?null:new NotificationChainImpl_0(capacity); -} - -function $move_1(this$static, targetIndex, sourceIndex){ - var object, oldIsSet; - if (this$static.isNotificationRequired()) { - oldIsSet = this$static.isSet_0(); - object = $move(this$static, targetIndex, sourceIndex); - this$static.dispatchNotification(this$static.createNotification(7, valueOf_4(sourceIndex), object, targetIndex, oldIsSet)); - return object; - } - else { - return $move(this$static, targetIndex, sourceIndex); - } -} - -function $remove_35(this$static, index_0){ - var notification, notifications, oldIsSet, oldObject; - if (this$static.isNotificationRequired()) { - notifications = null; - oldIsSet = this$static.isSet_0(); - this$static.hasShadow() && (notifications = this$static.shadowRemove(this$static.basicGet(index_0), null)); - notification = this$static.createNotification(4, oldObject = $remove_33(this$static, index_0), null, index_0, oldIsSet); - if (this$static.hasInverse() && oldObject != null) { - notifications = this$static.inverseRemove(oldObject, notifications); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject; - } - else { - oldObject = $remove_33(this$static, index_0); - if (this$static.hasInverse() && oldObject != null) { - notifications = this$static.inverseRemove(oldObject, null); - !!notifications && notifications.dispatch_0(); - } - return oldObject; - } -} - -function $removeAll_4(this$static, collection){ - var collectionSize, count, i, i0, i1, initialObject, j, list, listSize, notification, notifications, object, objects, oldIsSet, oldPositions, positions, repeat, result, resultList; - oldIsSet = this$static.size_0 != 0; - result = false; - positions = null; - if ($eNotificationRequired(this$static.owner)) { - listSize = collection.size_1(); - if (listSize > 0) { - notifications = listSize < 100?null:new NotificationChainImpl_0(listSize); - list = new BasicEList_1(collection); - objects = list.data_0; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, listSize, 15, 1); - count = 0; - resultList = new BasicEList_0(listSize); - for (i = 0; i < this$static.size_0; ++i) { - initialObject = this$static.data_0[i]; - object = initialObject; - LOOP: for (repeat = 0; repeat < 2; ++repeat) { - for (j = listSize; --j >= 0;) { - if (object != null?equals_Ljava_lang_Object__Z__devirtual$(object, objects[j]):maskUndefined(object) === maskUndefined(objects[j])) { - if (positions.length <= count) { - oldPositions = positions; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, 2 * positions.length, 15, 1); - arraycopy(oldPositions, 0, positions, 0, count); - } - positions[count++] = i; - $add_21(resultList, objects[j]); - break LOOP; - } - } - object = object; - if (maskUndefined(object) === maskUndefined(initialObject)) { - break; - } - } - } - list = resultList; - objects = resultList.data_0; - listSize = count; - if (count > positions.length) { - oldPositions = positions; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); - arraycopy(oldPositions, 0, positions, 0, count); - } - if (count > 0) { - result = true; - for (i0 = 0; i0 < count; ++i0) { - object = objects[i0]; - notifications = $shadowRemove_2(this$static, castTo(object, 72), notifications); - } - for (i1 = count; --i1 >= 0;) { - $remove_33(this$static, positions[i1]); - } - if (count != listSize) { - for (i = listSize; --i >= count;) { - $remove_33(list, i); - } - oldPositions = positions; - positions = initUnidimensionalArray(I_classLit, $intern_48, 25, count, 15, 1); - arraycopy(oldPositions, 0, positions, 0, count); - } - collection = list; - } - } - } - else { - collection = $getDuplicates(this$static, collection); - for (i = this$static.size_0; --i >= 0;) { - if (collection.contains(this$static.data_0[i])) { - $remove_33(this$static, i); - result = true; - } - } - } - if (result) { - if (positions != null) { - collectionSize = collection.size_1(); - notification = collectionSize == 1?$createNotification(this$static, 4, collection.iterator_0().next_1(), null, positions[0], oldIsSet):$createNotification(this$static, 6, collection, positions, positions[0], oldIsSet); - notifications = collectionSize < 100?null:new NotificationChainImpl_0(collectionSize); - for (i = collection.iterator_0(); i.hasNext_0();) { - object = i.next_1(); - notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); - } - if (!notifications) { - $eNotify(this$static.owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - notifications = $createNotificationChain(collection.size_1()); - for (i = collection.iterator_0(); i.hasNext_0();) { - object = i.next_1(); - notifications = $inverseRemove_3(this$static, castTo(object, 72), notifications); - } - !!notifications && notifications.dispatch_0(); - } - return true; - } - else { - return false; - } -} - -function $setUnique_1(this$static, index_0, object){ - var notification, notifications, oldIsSet, oldObject; - if (this$static.isNotificationRequired()) { - notifications = null; - oldIsSet = this$static.isSet_0(); - notification = this$static.createNotification(1, oldObject = $setUnique(this$static, index_0, object), object, index_0, oldIsSet); - if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { - oldObject != null && (notifications = this$static.inverseRemove(oldObject, notifications)); - notifications = this$static.inverseAdd(object, notifications); - this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - this$static.hasShadow() && (notifications = this$static.shadowSet(oldObject, object, notifications)); - if (!notifications) { - this$static.dispatchNotification(notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - return oldObject; - } - else { - oldObject = $setUnique(this$static, index_0, object); - if (this$static.hasInverse() && !(this$static.useEquals() && oldObject != null?equals_Ljava_lang_Object__Z__devirtual$(oldObject, object):maskUndefined(oldObject) === maskUndefined(object))) { - notifications = null; - oldObject != null && (notifications = this$static.inverseRemove(oldObject, null)); - notifications = this$static.inverseAdd(object, notifications); - !!notifications && notifications.dispatch_0(); - } - return oldObject; - } -} - -defineClass(1993, 63, $intern_138); -_.addAllUnique = function addAllUnique_5(index_0, collection){ - return $addAllUnique_3(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_6(collection){ - return this.addAllUnique(this.size_0, collection); -} -; -_.addUnique = function addUnique_5(index_0, object){ - $addUnique_5(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_6(object){ - $addUnique_6(this, object); -} -; -_.canContainNull = function canContainNull_1(){ - return !this.hasInverse(); -} -; -_.clear_0 = function clear_55(){ - $clear_13(this); -} -; -_.createNotification = function createNotification_0(eventType, oldObject, newObject, index_0, wasSet){ - return new NotifyingListImpl$1(this, eventType, oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification_0(notification){ - $eNotify(this.getNotifier(), notification); -} -; -_.getFeature = function getFeature_2(){ - return null; -} -; -_.getFeatureID_0 = function getFeatureID_2(){ - return -1; -} -; -_.getNotifier = function getNotifier_2(){ - return null; -} -; -_.hasInverse = function hasInverse_0(){ - return false; -} -; -_.hasShadow = function hasShadow(){ - return false; -} -; -_.inverseAdd = function inverseAdd_0(object, notifications){ - return notifications; -} -; -_.inverseRemove = function inverseRemove_0(object, notifications){ - return notifications; -} -; -_.isNotificationRequired = function isNotificationRequired_0(){ - return false; -} -; -_.isSet_0 = function isSet_0(){ - return this.size_0 != 0; -} -; -_.move = function move_4(targetIndex, sourceIndex){ - return $move_1(this, targetIndex, sourceIndex); -} -; -_.remove_2 = function remove_104(index_0){ - return $remove_35(this, index_0); -} -; -_.setUnique = function setUnique_2(index_0, object){ - return $setUnique_1(this, index_0, object); -} -; -_.shadowAdd = function shadowAdd(object, notifications){ - return notifications; -} -; -_.shadowRemove = function shadowRemove(object, notifications){ - return notifications; -} -; -_.shadowSet = function shadowSet(oldObject, newObject, notifications){ - return notifications; -} -; -var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl', 1993); -function NotifyingListImpl$1(this$0, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4){ - this.this$01 = this$0; - NotificationImpl_2.call(this, $anonymous0, $anonymous1, $anonymous2, $anonymous3, $anonymous4); -} - -defineClass(1166, 143, $intern_142, NotifyingListImpl$1); -_.getFeature = function getFeature_3(){ - return this.this$01.getFeature(); -} -; -_.getFeatureID = function getFeatureID_3(expectedClass){ - return this.this$01.getFeatureID_0(); -} -; -_.getNotifier = function getNotifier_3(){ - return this.this$01.getNotifier(); -} -; -var Lorg_eclipse_emf_common_notify_impl_NotifyingListImpl$1_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotifyingListImpl/1', 1166); -function AbstractEList$1(this$0, $anonymous0){ - this.this$01 = this$0; - BasicEList_0.call(this, $anonymous0); -} - -defineClass(953, 63, $intern_138, AbstractEList$1); -_.contains = function contains_54(object){ - if (this.size_0 > 10) { - if (!this.set_0 || this.this$01.modCount != this.expectedModCount) { - this.set_0 = new HashSet_1(this); - this.expectedModCount = this.modCount; - } - return $contains_6(this.set_0, object); - } - else { - return $contains_10(this, object); - } -} -; -_.useEquals = function useEquals_0(){ - return true; -} -; -_.expectedModCount = 0; -var Lorg_eclipse_emf_common_util_AbstractEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/1', 953); -function AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0){ - IndexOutOfBoundsException_0.call(this, 'index=' + index_0 + ', size=' + size_0); -} - -defineClass(295, 73, $intern_57, AbstractEList$BasicIndexOutOfBoundsException); -var Lorg_eclipse_emf_common_util_AbstractEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/BasicIndexOutOfBoundsException', 295); -function $doNext(this$static){ - var next; - try { - next = this$static.this$01_2.get_0(this$static.cursor); - this$static.checkModCount(); - this$static.lastCursor = this$static.cursor++; - return next; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this$static.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} - -function $remove_36(this$static){ - if (this$static.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - this$static.checkModCount(); - try { - this$static.this$01_2.remove_2(this$static.lastCursor); - this$static.expectedModCount = this$static.this$01_2.modCount; - this$static.lastCursor < this$static.cursor && --this$static.cursor; - this$static.lastCursor = -1; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} - -function AbstractEList$EIterator(this$0){ - this.this$01_2 = this$0; - this.expectedModCount = this.this$01_2.modCount; -} - -defineClass(40, 1, $intern_6, AbstractEList$EIterator); -_.forEachRemaining = function forEachRemaining_54(consumer){ - $forEachRemaining(this, consumer); -} -; -_.checkModCount = function checkModCount(){ - if (this.this$01_2.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} -; -_.doNext = function doNext(){ - return $doNext(this); -} -; -_.hasNext_0 = function hasNext_43(){ - return this.cursor != this.this$01_2.size_1(); -} -; -_.next_1 = function next_44(){ - return this.doNext(); -} -; -_.remove = function remove_105(){ - $remove_36(this); -} -; -_.cursor = 0; -_.expectedModCount = 0; -_.lastCursor = -1; -var Lorg_eclipse_emf_common_util_AbstractEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EIterator', 40); -function $doAdd_0(this$static, object){ - this$static.checkModCount(); - try { - this$static.this$01_1.add_3(this$static.cursor++, object); - this$static.expectedModCount = this$static.this$01_1.modCount; - this$static.lastCursor = -1; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} - -function $doSet(this$static, object){ - if (this$static.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - this$static.checkModCount(); - try { - this$static.this$01_1.set_2(this$static.lastCursor, object); - this$static.expectedModCount = this$static.this$01_1.modCount; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} - -function AbstractEList$EListIterator(this$0){ - this.this$01_1 = this$0; - AbstractEList$EIterator.call(this, this$0); -} - -function AbstractEList$EListIterator_0(this$0, index_0){ - this.this$01_1 = this$0; - AbstractEList$EIterator.call(this, this$0); - this.cursor = index_0; -} - -defineClass(278, 40, $intern_14, AbstractEList$EListIterator, AbstractEList$EListIterator_0); -_.remove = function remove_106(){ - $remove_36(this); -} -; -_.add_1 = function add_51(object){ - $doAdd_0(this, object); -} -; -_.doPrevious = function doPrevious(){ - var previous; - try { - previous = this.this$01_1.get_0(--this.cursor); - this.checkModCount(); - this.lastCursor = this.cursor; - return previous; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} -; -_.doSet = function doSet(object){ - $doSet(this, object); -} -; -_.hasPrevious = function hasPrevious_7(){ - return this.cursor != 0; -} -; -_.nextIndex_0 = function nextIndex_8(){ - return this.cursor; -} -; -_.previous_0 = function previous_8(){ - return this.doPrevious(); -} -; -_.previousIndex = function previousIndex_7(){ - return this.cursor - 1; -} -; -_.set_1 = function set_22(object){ - this.doSet(object); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/EListIterator', 278); -function $doNext_0(this$static){ - var next; - try { - next = this$static.this$01_0.primitiveGet(this$static.cursor); - this$static.checkModCount(); - this$static.lastCursor = this$static.cursor++; - return next; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this$static.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} - -function AbstractEList$NonResolvingEIterator(this$0){ - this.this$01_0 = this$0; - AbstractEList$EIterator.call(this, this$0); -} - -defineClass(341, 40, $intern_6, AbstractEList$NonResolvingEIterator); -_.doNext = function doNext_0(){ - return $doNext_0(this); -} -; -_.remove = function remove_107(){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEIterator', 341); -function AbstractEList$NonResolvingEListIterator(this$0){ - this.this$01_0 = this$0; - AbstractEList$EListIterator.call(this, this$0); -} - -function AbstractEList$NonResolvingEListIterator_0(this$0, index_0){ - this.this$01_0 = this$0; - AbstractEList$EListIterator_0.call(this, this$0, index_0); -} - -defineClass(385, 278, $intern_14, AbstractEList$NonResolvingEListIterator, AbstractEList$NonResolvingEListIterator_0); -_.add_1 = function add_52(object){ - throw toJs(new UnsupportedOperationException); -} -; -_.doNext = function doNext_1(){ - var next; - try { - next = this.this$01_0.primitiveGet(this.cursor); - this.checkModCount(); - this.lastCursor = this.cursor++; - return next; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} -; -_.doPrevious = function doPrevious_0(){ - var previous; - try { - previous = this.this$01_0.primitiveGet(--this.cursor); - this.checkModCount(); - this.lastCursor = this.cursor; - return previous; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - this.checkModCount(); - throw toJs(new NoSuchElementException); - } - else - throw toJs($e0); - } -} -; -_.remove = function remove_108(){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_1 = function set_23(object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEListIterator', 385); -function newInstance_11(componentType, size_0){ - var helper; - helper = castTo($get_10(($clinit_Reflect() , HELPER_REGISTRY), componentType), 55); - return helper?helper.newArrayInstance(size_0):initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); -} - -function $clinit_ArrayDelegatingEList(){ - $clinit_ArrayDelegatingEList = emptyMethod; - EMPTY_ARRAY = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function $assign_0(data_0, index_0, object){ - setCheck(data_0, index_0, object); - return object; -} - -function $copy_0(this$static){ - var data_0, newData; - data_0 = castTo($getField(this$static.this$01, 4), 126); - if (data_0 != null) { - newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, data_0.length, 0, 1); - arraycopy(data_0, 0, newData, 0, data_0.length); - return newData; - } - else { - return EMPTY_ARRAY; - } -} - -function $grow(this$static, size_0){ - var data_0, oldData; - oldData = castTo($getField(this$static.this$01, 4), 126); - data_0 = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); - oldData != null && arraycopy(oldData, 0, data_0, 0, oldData.length); - return data_0; -} - -function $remove_37(this$static, index_0){ - var data_0, newData, oldObject, shifted, size_0; - data_0 = castTo($getField(this$static.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - if (index_0 >= size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - oldObject = data_0[index_0]; - if (size_0 == 1) { - newData = null; - } - else { - newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0 - 1, 0, 1); - arraycopy(data_0, 0, newData, 0, index_0); - shifted = size_0 - index_0 - 1; - shifted > 0 && arraycopy(data_0, index_0 + 1, newData, index_0, shifted); - } - $setData(this$static, newData); - $didRemove_0(this$static, index_0, oldObject); - return oldObject; -} - -defineClass(1982, 67, $intern_144); -_.addAllUnique = function addAllUnique_7(index_0, collection){ - var currentIndex, data_0, growth, i, i0, object, objects, oldData, oldSize, shifted, size_0; - growth = collection.size_1(); - if (growth != 0) { - oldData = castTo($getField(this.this$01, 4), 126); - oldSize = oldData == null?0:oldData.length; - size_0 = oldSize + growth; - data_0 = $grow(this, size_0); - shifted = oldSize - index_0; - shifted > 0 && arraycopy(oldData, index_0, data_0, index_0 + growth, shifted); - objects = collection.iterator_0(); - for (i0 = 0; i0 < growth; ++i0) { - object = objects.next_1(); - currentIndex = index_0 + i0; - $assign_0(data_0, currentIndex, $validate(this, object)); - } - $setData(this, data_0); - for (i = 0; i < growth; ++i) { - object = data_0[index_0]; - this.didAdd(index_0, object); - ++index_0; - } - return true; - } - else { - ++this.modCount; - return false; - } -} -; -_.addAllUnique_0 = function addAllUnique_8(collection){ - var data_0, data0, growth, i, i0, object, objects, oldSize, size_0; - growth = collection.size_1(); - if (growth != 0) { - oldSize = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); - size_0 = oldSize + growth; - data_0 = $grow(this, size_0); - objects = collection.iterator_0(); - for (i0 = oldSize; i0 < size_0; ++i0) { - object = objects.next_1(); - $assign_0(data_0, i0, $validate(this, object)); - } - $setData(this, data_0); - for (i = oldSize; i < size_0; ++i) { - object = data_0[i]; - this.didAdd(i, object); - } - return true; - } - else { - ++this.modCount; - return false; - } -} -; -_.addUnique = function addUnique_7(index_0, object){ - var data_0, oldData, size_0, validatedObject; - oldData = castTo($getField(this.this$01, 4), 126); - size_0 = oldData == null?0:oldData.length; - data_0 = $grow(this, size_0 + 1); - validatedObject = $validate(this, object); - index_0 != size_0 && arraycopy(oldData, index_0, data_0, index_0 + 1, size_0 - index_0); - setCheck(data_0, index_0, validatedObject); - $setData(this, data_0); - this.didAdd(index_0, object); -} -; -_.addUnique_0 = function addUnique_8(object){ - var data_0, data0, size_0; - size_0 = (data0 = castTo($getField(this.this$01, 4), 126) , data0 == null?0:data0.length); - data_0 = $grow(this, size_0 + 1); - $assign_0(data_0, size_0, $validate(this, object)); - $setData(this, data_0); - this.didAdd(size_0, object); -} -; -_.basicIterator = function basicIterator_0(){ - return new ArrayDelegatingEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator_1(){ - return new ArrayDelegatingEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_2(index_0){ - var data_0, size_0; - size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new ArrayDelegatingEList$NonResolvingEListIterator_0(this, index_0); -} -; -_.clear_0 = function clear_56(){ - var oldData, oldSize; - ++this.modCount; - oldData = castTo($getField(this.this$01, 4), 126); - oldSize = oldData == null?0:oldData.length; - $setData(this, null); - $didClear(this, oldSize, oldData); -} -; -_.contains = function contains_55(object){ - var data_0, datum, datum$array, datum$index, datum$max; - data_0 = castTo($getField(this.this$01, 4), 126); - if (data_0 != null) { - if (object != null) { - for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { - datum = datum$array[datum$index]; - if (equals_Ljava_lang_Object__Z__devirtual$(object, datum)) { - return true; - } - } - } - else { - for (datum$array = data_0 , datum$index = 0 , datum$max = datum$array.length; datum$index < datum$max; ++datum$index) { - datum = datum$array[datum$index]; - if (maskUndefined(datum) === maskUndefined(object)) { - return true; - } - } - } - } - return false; -} -; -_.get_0 = function get_52(index_0){ - var data_0, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - if (index_0 >= size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return data_0[index_0]; -} -; -_.indexOf_0 = function indexOf_10(object){ - var data_0, i, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - if (data_0 != null) { - if (object != null) { - for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, data_0[i])) { - return i; - } - } - } - else { - for (i = 0 , size_0 = data_0.length; i < size_0; ++i) { - if (maskUndefined(data_0[i]) === maskUndefined(object)) { - return i; - } - } - } - } - return -1; -} -; -_.isEmpty = function isEmpty_28(){ - return castTo($getField(this.this$01, 4), 126) == null; -} -; -_.iterator_0 = function iterator_80(){ - return new ArrayDelegatingEList$EIterator(this); -} -; -_.listIterator_0 = function listIterator_19(){ - return new ArrayDelegatingEList$EListIterator(this); -} -; -_.listIterator_1 = function listIterator_20(index_0){ - var data_0, size_0; - size_0 = (data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length); - if (index_0 < 0 || index_0 > size_0) - throw toJs(new AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0)); - return new ArrayDelegatingEList$EListIterator_0(this, index_0); -} -; -_.move = function move_5(targetIndex, sourceIndex){ - var data_0, object, size_0; - data_0 = $copy_0(this); - size_0 = data_0 == null?0:data_0.length; - if (targetIndex >= size_0) - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + size_0)); - if (sourceIndex >= size_0) - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + size_0)); - object = data_0[sourceIndex]; - if (targetIndex != sourceIndex) { - targetIndex < sourceIndex?arraycopy(data_0, targetIndex, data_0, targetIndex + 1, sourceIndex - targetIndex):arraycopy(data_0, sourceIndex + 1, data_0, sourceIndex, targetIndex - sourceIndex); - setCheck(data_0, targetIndex, object); - $setData(this, data_0); - } - return object; -} -; -_.primitiveGet = function primitiveGet_1(index_0){ - return castTo($getField(this.this$01, 4), 126)[index_0]; -} -; -_.remove_2 = function remove_109(index_0){ - return $remove_37(this, index_0); -} -; -_.setUnique = function setUnique_3(index_0, object){ - var data_0, oldObject; - data_0 = $copy_0(this); - oldObject = data_0[index_0]; - $assign_0(data_0, index_0, $validate(this, object)); - $setData(this, data_0); - return oldObject; -} -; -_.size_1 = function size_67(){ - var data_0; - return data_0 = castTo($getField(this.this$01, 4), 126) , data_0 == null?0:data_0.length; -} -; -_.toArray = function toArray_30(){ - var data_0, result, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - result = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_143, 415, size_0, 0, 1); - size_0 > 0 && arraycopy(data_0, 0, result, 0, size_0); - return result; -} -; -_.toArray_0 = function toArray_31(array){ - var data_0, newArray, size_0; - data_0 = castTo($getField(this.this$01, 4), 126); - size_0 = data_0 == null?0:data_0.length; - if (size_0 > 0) { - if (array.length < size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); - array = newArray; - } - arraycopy(data_0, 0, array, 0, size_0); - } - array.length > size_0 && setCheck(array, size_0, null); - return array; -} -; -var EMPTY_ARRAY; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList', 1982); -function ArrayDelegatingEList$EIterator(this$0){ - this.this$01 = this$0; - AbstractEList$EIterator.call(this, this$0); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} - -defineClass(1038, 40, $intern_6, ArrayDelegatingEList$EIterator); -_.checkModCount = function checkModCount_0(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -_.remove = function remove_110(){ - $remove_36(this); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EIterator', 1038); -function $$init_9(this$static){ - this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); -} - -function ArrayDelegatingEList$EListIterator(this$0){ - this.this$01 = this$0; - AbstractEList$EListIterator.call(this, this$0); - $$init_9(this); -} - -function ArrayDelegatingEList$EListIterator_0(this$0, index_0){ - this.this$01 = this$0; - AbstractEList$EListIterator_0.call(this, this$0, index_0); - $$init_9(this); -} - -defineClass(706, 278, $intern_14, ArrayDelegatingEList$EListIterator, ArrayDelegatingEList$EListIterator_0); -_.checkModCount = function checkModCount_1(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -_.doSet = function doSet_0(object){ - $doSet(this, object); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} -; -_.remove = function remove_111(){ - $remove_36(this); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EListIterator', 706); -function ArrayDelegatingEList$NonResolvingEIterator(this$0){ - this.this$01 = this$0; - AbstractEList$NonResolvingEIterator.call(this, this$0); - this.expectedData = castTo($getField(this.this$01.this$01, 4), 126); -} - -defineClass(1039, 341, $intern_6, ArrayDelegatingEList$NonResolvingEIterator); -_.checkModCount = function checkModCount_2(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEIterator', 1039); -function $$init_10(this$static){ - this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 126); -} - -function ArrayDelegatingEList$NonResolvingEListIterator(this$0){ - this.this$01 = this$0; - AbstractEList$NonResolvingEListIterator.call(this, this$0); - $$init_10(this); -} - -function ArrayDelegatingEList$NonResolvingEListIterator_0(this$0, index_0){ - this.this$01 = this$0; - AbstractEList$NonResolvingEListIterator_0.call(this, this$0, index_0); - $$init_10(this); -} - -defineClass(707, 385, $intern_14, ArrayDelegatingEList$NonResolvingEListIterator, ArrayDelegatingEList$NonResolvingEListIterator_0); -_.checkModCount = function checkModCount_3(){ - if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 126)) !== maskUndefined(this.expectedData)) { - throw toJs(new ConcurrentModificationException); - } -} -; -var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$NonResolvingEListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/NonResolvingEListIterator', 707); -function BasicEList$BasicIndexOutOfBoundsException(index_0, size_0){ - AbstractEList$BasicIndexOutOfBoundsException.call(this, index_0, size_0); -} - -defineClass(606, 295, $intern_57, BasicEList$BasicIndexOutOfBoundsException); -var Lorg_eclipse_emf_common_util_BasicEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/BasicIndexOutOfBoundsException', 606); -function BasicEList$UnmodifiableEList(size_0, data_0){ - this.size_0 = size_0; - this.data_0 = data_0; -} - -defineClass(696, 63, $intern_138, BasicEList$UnmodifiableEList); -_.add_3 = function add_53(index_0, object){ - throw toJs(new UnsupportedOperationException); -} -; -_.add_2 = function add_54(object){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll_0 = function addAll_26(index_0, collection){ - throw toJs(new UnsupportedOperationException); -} -; -_.addAll = function addAll_27(collection){ - throw toJs(new UnsupportedOperationException); -} -; -_.clear_0 = function clear_57(){ - throw toJs(new UnsupportedOperationException); -} -; -_.grow = function grow_0(minimumCapacity){ - throw toJs(new UnsupportedOperationException); -} -; -_.iterator_0 = function iterator_81(){ - return this.basicIterator(); -} -; -_.listIterator_0 = function listIterator_21(){ - return this.basicListIterator(); -} -; -_.listIterator_1 = function listIterator_22(index_0){ - return this.basicListIterator_0(index_0); -} -; -_.move = function move_6(targetIndex, sourceIndex){ - throw toJs(new UnsupportedOperationException); -} -; -_.move_0 = function move_7(index_0, object){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_2 = function remove_112(index_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.remove_1 = function remove_113(object){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_2 = function set_24(index_0, object){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_BasicEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/UnmodifiableEList', 696); -function $add_24(this$static, index_0, object){ - this$static.delegateEList.add_3(index_0, castTo(object, 133)); -} - -function $add_25(this$static, object){ - return this$static.delegateEList.add_2(castTo(object, 133)); -} - -function $containsKey_7(this$static, key){ - var entryIndex, hash, index_0; - if (this$static.size_0 > 0) { - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = (hash & $intern_0) % this$static.entryData.length; - entryIndex = $entryIndexForKey(this$static, index_0, hash, key); - return entryIndex != -1; - } - else { - return false; - } -} - -function $containsValue_4(this$static, value_0){ - var eList, entries, entry, i, j, size_0; - if (this$static.size_0 > 0) { - this$static.ensureEntryDataExists(); - if (value_0 != null) { - for (i = 0; i < this$static.entryData.length; ++i) { - eList = this$static.entryData[i]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue())) { - return true; - } - } - } - } - } - else { - for (i = 0; i < this$static.entryData.length; ++i) { - eList = this$static.entryData[i]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (maskUndefined(value_0) === maskUndefined(entry.getValue())) { - return true; - } - } - } - } - } - } - return false; -} - -function $didClear_0(oldEntryData){ - var eList, i, j, size_0; - if (oldEntryData != null) { - for (i = 0; i < oldEntryData.length; ++i) { - eList = oldEntryData[i]; - if (eList) { - castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) - ; - } - } - } -} - -function $doClear_0(this$static){ - var oldEntryData; - if (this$static.entryData == null) { - ++this$static.modCount; - this$static.size_0 = 0; - $didClear_0(null); - } - else { - ++this$static.modCount; - oldEntryData = this$static.entryData; - this$static.entryData = null; - this$static.size_0 = 0; - $didClear_0(oldEntryData); - } -} - -function $doPut(this$static, entry){ - var eList, hash, index_0; - if (this$static.entryData == null) { - ++this$static.modCount; - ++this$static.size_0; - } - else { - hash = entry.getHash(); - $grow_0(this$static, this$static.size_0 + 1); - index_0 = (hash & $intern_0) % this$static.entryData.length; - eList = this$static.entryData[index_0]; - !eList && (eList = this$static.entryData[index_0] = this$static.newList()); - eList.add_2(entry); - ++this$static.size_0; - } -} - -function $doRemove(this$static, entry){ - var hash, index_0, key; - if (this$static.entryData == null) { - ++this$static.modCount; - --this$static.size_0; - } - else { - key = entry.getKey(); - hash = entry.getHash(); - index_0 = (hash & $intern_0) % this$static.entryData.length; - $removeEntry_0(this$static, index_0, $entryIndexForKey(this$static, index_0, hash, key)); - } -} - -function $entryForKey(this$static, index_0, hash, key){ - var eList, entries, entry, j, size_0; - eList = this$static.entryData[index_0]; - if (eList) { - entries = eList.data_0; - size_0 = eList.size_0; - if (key != null) { - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { - return entry; - } - } - } - else { - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (maskUndefined(entry.getKey()) === maskUndefined(key)) { - return entry; - } - } - } - } - return null; -} - -function $entryIndexForKey(this$static, index_0, hash, key){ - var eList, entries, entry, j, size_0; - if (key != null) { - eList = this$static.entryData[index_0]; - if (eList) { - entries = eList.data_0; - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (entry.getHash() == hash && equals_Ljava_lang_Object__Z__devirtual$(key, entry.getKey())) { - return j; - } - } - } - } - else { - eList = this$static.entryData[index_0]; - if (eList) { - entries = eList.data_0; - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - if (maskUndefined(entry.getKey()) === maskUndefined(key)) { - return j; - } - } - } - } - return -1; -} - -function $entrySet_3(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.entrySet && (this$static.view.entrySet = new BasicEMap$5(this$static)); - return this$static.view.entrySet; -} - -function $equals_12(this$static, object){ - return instanceOf(object, 15) && $equals_11(this$static.delegateEList, object); -} - -function $get_21(this$static, key){ - var entry, hash, index_0; - if (this$static.size_0 > 0) { - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = (hash & $intern_0) % this$static.entryData.length; - entry = $entryForKey(this$static, index_0, hash, key); - if (entry) { - return entry.getValue(); - } - } - return null; -} - -function $grow_0(this$static, minimumCapacity){ - var eList, entries, entry, i, index_0, j, oldCapacity, oldEList, oldEntryData, size_0; - ++this$static.modCount; - oldCapacity = this$static.entryData == null?0:this$static.entryData.length; - if (minimumCapacity > oldCapacity) { - oldEntryData = this$static.entryData; - this$static.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * oldCapacity + 4, 0, 1); - for (i = 0; i < oldCapacity; ++i) { - oldEList = oldEntryData[i]; - if (oldEList) { - entries = oldEList.data_0; - size_0 = oldEList.size_0; - for (j = 0; j < size_0; ++j) { - entry = castTo(entries[j], 133); - index_0 = $indexOf_5(this$static, entry.getHash()); - eList = this$static.entryData[index_0]; - !eList && (eList = this$static.entryData[index_0] = this$static.newList()); - eList.add_2(entry); - } - } - } - return true; - } - else { - return false; - } -} - -function $hashOf(key){ - return key == null?0:hashCode__I__devirtual$(key); -} - -function $indexOf_5(this$static, hash){ - return (hash & $intern_0) % this$static.entryData.length; -} - -function $keySet_2(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.keySet && (this$static.view.keySet = new BasicEMap$3(this$static)); - return this$static.view.keySet; -} - -function $map_1(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.map_0 && (this$static.view.map_0 = new BasicEMap$DelegatingMap(this$static)); - return this$static.view.map_0; -} - -function $move_2(this$static, index_0, object){ - this$static.delegateEList.move_0(index_0, castTo(object, 133)); -} - -function $put_13(this$static, key, value_0){ - var entry, entry0, hash, index_0, result; - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - if (this$static.size_0 > 0) { - index_0 = (hash & $intern_0) % this$static.entryData.length; - entry0 = $entryForKey(this$static, index_0, hash, key); - if (entry0) { - result = entry0.setValue(value_0); - return result; - } - } - entry = this$static.newEntry(hash, key, value_0); - this$static.delegateEList.add_2(entry); - return null; -} - -function $putAll_0(this$static, map_0){ - var entry, entry$iterator; - for (entry$iterator = map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 42); - $put_13(this$static, entry.getKey(), entry.getValue()); - } -} - -function $remove_38(this$static, object){ - var result; - if (instanceOf(object, 42)) { - return this$static.delegateEList.remove_1(object); - } - else { - result = $containsKey_7(this$static, object); - $removeKey(this$static, object); - return result; - } -} - -function $removeEntry_0(this$static, index_0, entryIndex){ - var entry; - ++this$static.modCount; - --this$static.size_0; - entry = castTo(this$static.entryData[index_0].remove_2(entryIndex), 133); - return entry.getValue(); -} - -function $removeKey(this$static, key){ - var entry, hash, index_0; - this$static.ensureEntryDataExists(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = (hash & $intern_0) % this$static.entryData.length; - entry = $entryForKey(this$static, index_0, hash, key); - if (entry) { - $remove_38(this$static, entry); - return entry.getValue(); - } - else { - return null; - } -} - -function $set_12(this$static, index_0, object){ - return castTo(this$static.delegateEList.set_2(index_0, castTo(object, 133)), 42); -} - -function $values_3(this$static){ - !this$static.view && (this$static.view = new BasicEMap$View); - !this$static.view.values && (this$static.view.values = new BasicEMap$4(this$static)); - return this$static.view.values; -} - -defineClass(705, 1, {3:1, 20:1, 14:1, 15:1, 58:1, 589:1}); -_.add_3 = function add_55(index_0, object){ - $add_24(this, index_0, castTo(object, 42)); -} -; -_.add_2 = function add_56(object){ - return $add_25(this, castTo(object, 42)); -} -; -_.forEach_0 = function forEach_37(action){ - $forEach_0(this, action); -} -; -_.get_0 = function get_53(index_0){ - return castTo($get_20(this.delegateEList, index_0), 133); -} -; -_.move = function move_8(targetIndex, sourceIndex){ - return castTo(this.delegateEList.move(targetIndex, sourceIndex), 42); -} -; -_.move_0 = function move_9(index_0, object){ - $move_2(this, index_0, castTo(object, 42)); -} -; -_.parallelStream = function parallelStream_5(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.remove_2 = function remove_114(index_0){ - return castTo(this.delegateEList.remove_2(index_0), 42); -} -; -_.set_2 = function set_25(index_0, object){ - return $set_12(this, index_0, castTo(object, 42)); -} -; -_.sort_0 = function sort_12(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_38(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_7(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.addAll_0 = function addAll_28(index_0, collection){ - return this.delegateEList.addAll_0(index_0, collection); -} -; -_.addAll = function addAll_29(collection){ - return this.delegateEList.addAll(collection); -} -; -_.clear_0 = function clear_58(){ - this.delegateEList.clear_0(); -} -; -_.contains = function contains_56(object){ - return this.delegateEList.contains(object); -} -; -_.containsAll = function containsAll_12(collection){ - return $containsAll(this.delegateEList, collection); -} -; -_.ensureEntryDataExists = function ensureEntryDataExists(){ - var entry, entry$iterator, oldModCount; - if (this.entryData == null) { - this.entryData = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); - oldModCount = this.modCount; - this.size_0 = 0; - for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { - entry = castTo(entry$iterator.doNext(), 133); - $doPut(this, entry); - } - this.modCount = oldModCount; - } -} -; -_.equals_0 = function equals_188(object){ - return $equals_12(this, object); -} -; -_.hashCode_1 = function hashCode_76(){ - return $hashCode_2(this.delegateEList); -} -; -_.indexOf_0 = function indexOf_11(object){ - return this.delegateEList.indexOf_0(object); -} -; -_.initializeDelegateEList = function initializeDelegateEList(){ - this.delegateEList = new BasicEMap$1(this); -} -; -_.isEmpty = function isEmpty_29(){ - return this.size_0 == 0; -} -; -_.iterator_0 = function iterator_82(){ - return this.delegateEList.iterator_0(); -} -; -_.listIterator_0 = function listIterator_23(){ - return this.delegateEList.listIterator_0(); -} -; -_.listIterator_1 = function listIterator_24(index_0){ - return this.delegateEList.listIterator_1(index_0); -} -; -_.map_2 = function map_5(){ - return $map_1(this); -} -; -_.newEntry = function newEntry_0(hash, key, value_0){ - return new BasicEMap$EntryImpl(hash, key, value_0); -} -; -_.newList = function newList(){ - return new BasicEMap$2; -} -; -_.remove_1 = function remove_115(object){ - return $remove_38(this, object); -} -; -_.size_1 = function size_68(){ - return this.size_0; -} -; -_.subList = function subList_10(start_0, end){ - return new AbstractList$SubList(this.delegateEList, start_0, end); -} -; -_.toArray = function toArray_32(){ - return this.delegateEList.toArray(); -} -; -_.toArray_0 = function toArray_33(array){ - return this.delegateEList.toArray_0(array); -} -; -_.toString_0 = function toString_138(){ - return $toString_25(this.delegateEList); -} -; -_.modCount = 0; -_.size_0 = 0; -var Lorg_eclipse_emf_common_util_BasicEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap', 705); -function $didAdd(this$static, newObject){ - $doPut(this$static.this$01, newObject); -} - -function $didRemove(this$static, oldObject){ - $doRemove(this$static.this$01, oldObject); -} - -function $didSet(this$static, newObject, oldObject){ - $doRemove(this$static.this$01, oldObject); - $doPut(this$static.this$01, newObject); -} - -function BasicEMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(1033, 63, $intern_138, BasicEMap$1); -_.didAdd = function didAdd_0(index_0, newObject){ - $didAdd(this, castTo(newObject, 133)); -} -; -_.didMove = function didMove_0(index_0, movedObject, oldIndex){ - var lastArg; - ++(lastArg = this , castTo(movedObject, 133) , lastArg).this$01.modCount; -} -; -_.didRemove = function didRemove_0(index_0, oldObject){ - $didRemove(this, castTo(oldObject, 133)); -} -; -_.didSet = function didSet_0(index_0, newObject, oldObject){ - $didSet(this, castTo(newObject, 133), castTo(oldObject, 133)); -} -; -_.didClear = function didClear_0(size_0, oldObjects){ - $doClear_0(this.this$01); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/1', 1033); -function BasicEMap$2(){ -} - -defineClass(1034, 63, $intern_138, BasicEMap$2); -_.newData = function newData_2(listCapacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit, $intern_146, 612, listCapacity, 0, 1); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$2_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/2', 1034); -function BasicEMap$3(this$0){ - this.this$01 = this$0; -} - -defineClass(1035, $intern_9, $intern_10, BasicEMap$3); -_.clear_0 = function clear_59(){ - this.this$01.delegateEList.clear_0(); -} -; -_.contains = function contains_57(key){ - return $containsKey_7(this.this$01, key); -} -; -_.iterator_0 = function iterator_83(){ - return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapKeyIterator(this.this$01); -} -; -_.remove_1 = function remove_116(key){ - var oldSize; - oldSize = this.this$01.size_0; - $removeKey(this.this$01, key); - return this.this$01.size_0 != oldSize; -} -; -_.size_1 = function size_69(){ - return this.this$01.size_0; -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$3_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/3', 1035); -function BasicEMap$4(this$0){ - this.this$01 = this$0; -} - -defineClass(1036, 28, $intern_8, BasicEMap$4); -_.clear_0 = function clear_60(){ - this.this$01.delegateEList.clear_0(); -} -; -_.contains = function contains_58(value_0){ - return $containsValue_4(this.this$01, value_0); -} -; -_.iterator_0 = function iterator_84(){ - return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapValueIterator(this.this$01); -} -; -_.size_1 = function size_70(){ - return this.this$01.size_0; -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$4_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/4', 1036); -function $remove_39(this$static, object){ - var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; - if (this$static.this$01.size_0 > 0 && instanceOf(object, 42)) { - this$static.this$01.ensureEntryDataExists(); - otherEntry = castTo(object, 42); - key = otherEntry.getKey(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = $indexOf_5(this$static.this$01, hash); - eList = this$static.this$01.entryData[index_0]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (entry.getHash() == hash && entry.equals_0(otherEntry)) { - $remove_39(this$static, otherEntry); - return true; - } - } - } - } - return false; -} - -function BasicEMap$5(this$0){ - this.this$01 = this$0; -} - -defineClass(1037, $intern_9, $intern_10, BasicEMap$5); -_.clear_0 = function clear_61(){ - this.this$01.delegateEList.clear_0(); -} -; -_.contains = function contains_59(object){ - var eList, entries, entry, hash, index_0, j, key, otherEntry, size_0; - if (this.this$01.size_0 > 0 && instanceOf(object, 42)) { - this.this$01.ensureEntryDataExists(); - otherEntry = castTo(object, 42); - key = otherEntry.getKey(); - hash = key == null?0:hashCode__I__devirtual$(key); - index_0 = $indexOf_5(this.this$01, hash); - eList = this.this$01.entryData[index_0]; - if (eList) { - entries = castTo(eList.data_0, 367); - size_0 = eList.size_0; - for (j = 0; j < size_0; ++j) { - entry = entries[j]; - if (entry.getHash() == hash && entry.equals_0(otherEntry)) { - return true; - } - } - } - } - return false; -} -; -_.iterator_0 = function iterator_85(){ - return this.this$01.size_0 == 0?($clinit_ECollections() , EMPTY_ELIST.listIterator):new BasicEMap$BasicEMapIterator(this.this$01); -} -; -_.remove_1 = function remove_117(object){ - return $remove_39(this, object); -} -; -_.size_1 = function size_71(){ - return this.this$01.size_0; -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$5_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/5', 1037); -function $scan(this$static){ - var eList; - this$static.this$01.ensureEntryDataExists(); - if (this$static.entryCursor != -1) { - ++this$static.entryCursor; - eList = this$static.this$01.entryData[this$static.cursor]; - if (this$static.entryCursor < eList.size_0) { - return; - } - ++this$static.cursor; - } - for (; this$static.cursor < this$static.this$01.entryData.length; ++this$static.cursor) { - eList = this$static.this$01.entryData[this$static.cursor]; - if (!!eList && eList.size_0 != 0) { - this$static.entryCursor = 0; - return; - } - } - this$static.entryCursor = -1; -} - -function BasicEMap$BasicEMapIterator(this$0){ - this.this$01 = this$0; - this.expectedModCount = this.this$01.modCount; - this$0.size_0 > 0 && $scan(this); -} - -defineClass(613, 1, $intern_6, BasicEMap$BasicEMapIterator); -_.forEachRemaining = function forEachRemaining_55(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_44(){ - return this.entryCursor != -1; -} -; -_.next_1 = function next_45(){ - var result; - if (this.this$01.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - if (this.entryCursor == -1) { - throw toJs(new NoSuchElementException); - } - this.lastCursor = this.cursor; - this.lastEntryCursor = this.entryCursor; - $scan(this); - result = castTo(this.this$01.entryData[this.lastCursor].data_0[this.lastEntryCursor], 133); - return this.yield_0(result); -} -; -_.remove = function remove_118(){ - if (this.this$01.modCount != this.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } - if (this.lastEntryCursor == -1) { - throw toJs(new IllegalStateException); - } - this.this$01.delegateEList.remove_1($get_20(this.this$01.entryData[this.lastCursor], this.lastEntryCursor)); - this.expectedModCount = this.this$01.modCount; - this.lastEntryCursor = -1; - this.cursor == this.lastCursor && this.entryCursor != -1 && --this.entryCursor; -} -; -_.yield_0 = function yield_0(entry){ - return entry; -} -; -_.cursor = 0; -_.entryCursor = -1; -_.expectedModCount = 0; -_.lastCursor = 0; -_.lastEntryCursor = 0; -var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapIterator', 613); -function BasicEMap$BasicEMapKeyIterator(this$0){ - BasicEMap$BasicEMapIterator.call(this, this$0); -} - -defineClass(1031, 613, $intern_6, BasicEMap$BasicEMapKeyIterator); -_.yield_0 = function yield_1(entry){ - return entry.getKey(); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapKeyIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapKeyIterator', 1031); -function BasicEMap$BasicEMapValueIterator(this$0){ - BasicEMap$BasicEMapIterator.call(this, this$0); -} - -defineClass(1032, 613, $intern_6, BasicEMap$BasicEMapValueIterator); -_.yield_0 = function yield_2(entry){ - return entry.getValue(); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$BasicEMapValueIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/BasicEMapValueIterator', 1032); -function $containsKey_8(this$static, key){ - return $containsKey_7(this$static.this$01, key); -} - -function BasicEMap$DelegatingMap(this$0){ - this.this$01 = this$0; -} - -defineClass(1030, 1, $intern_7, BasicEMap$DelegatingMap); -_.forEach = function forEach_38(consumer){ - $forEach_2(this, consumer); -} -; -_.merge = function merge_4(key, value_0, remappingFunction){ - return $merge(this, key, value_0, remappingFunction); -} -; -_.clear_0 = function clear_62(){ - this.this$01.delegateEList.clear_0(); -} -; -_.containsKey = function containsKey_15(key){ - return $containsKey_8(this, key); -} -; -_.containsValue = function containsValue_8(value_0){ - return $containsValue_4(this.this$01, value_0); -} -; -_.entrySet_0 = function entrySet_9(){ - return $entrySet_3(this.this$01); -} -; -_.equals_0 = function equals_189(object){ - return $equals_12(this.this$01, object); -} -; -_.get_3 = function get_54(key){ - return $get_21(this.this$01, key); -} -; -_.hashCode_1 = function hashCode_77(){ - return $hashCode_2(this.this$01.delegateEList); -} -; -_.isEmpty = function isEmpty_30(){ - return this.this$01.size_0 == 0; -} -; -_.keySet_0 = function keySet_18(){ - return $keySet_2(this.this$01); -} -; -_.put = function put_10(key, value_0){ - return $put_13(this.this$01, key, value_0); -} -; -_.remove_0 = function remove_119(key){ - return $removeKey(this.this$01, key); -} -; -_.size_1 = function size_72(){ - return this.this$01.size_0; -} -; -_.toString_0 = function toString_139(){ - return $toString_25(this.this$01.delegateEList); -} -; -_.values_0 = function values_118(){ - return $values_3(this.this$01); -} -; -var Lorg_eclipse_emf_common_util_BasicEMap$DelegatingMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/DelegatingMap', 1030); -function BasicEMap$EntryImpl(hash, key, value_0){ - this.hash = hash; - this.key = key; - this.value_0 = value_0; -} - -defineClass(612, 1, {42:1, 133:1, 612:1}, BasicEMap$EntryImpl); -_.equals_0 = function equals_190(object){ - var entry; - if (instanceOf(object, 42)) { - entry = castTo(object, 42); - return (this.key != null?equals_Ljava_lang_Object__Z__devirtual$(this.key, entry.getKey()):maskUndefined(this.key) === maskUndefined(entry.getKey())) && (this.value_0 != null?equals_Ljava_lang_Object__Z__devirtual$(this.value_0, entry.getValue()):maskUndefined(this.value_0) === maskUndefined(entry.getValue())); - } - else { - return false; - } -} -; -_.getHash = function getHash_0(){ - return this.hash; -} -; -_.getKey = function getKey_9(){ - return this.key; -} -; -_.getValue = function getValue_11(){ - return this.value_0; -} -; -_.hashCode_1 = function hashCode_78(){ - return this.hash ^ (this.value_0 == null?0:hashCode__I__devirtual$(this.value_0)); -} -; -_.setHash = function setHash_0(hash){ - this.hash = hash; -} -; -_.setKey = function setKey_0(key){ - throw toJs(new RuntimeException); -} -; -_.setValue = function setValue_12(value_0){ - var oldValue; - oldValue = this.value_0; - this.value_0 = value_0; - return oldValue; -} -; -_.toString_0 = function toString_140(){ - return this.key + '->' + this.value_0; -} -; -_.hash = 0; -var Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/EntryImpl', 612); -function BasicEMap$View(){ -} - -defineClass(536, 1, {}, BasicEMap$View); -var Lorg_eclipse_emf_common_util_BasicEMap$View_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/View', 536); -function $clinit_ECollections(){ - $clinit_ECollections = emptyMethod; - EMPTY_ELIST = new ECollections$EmptyUnmodifiableEList; - new ECollections$EmptyUnmodifiableEMap; -} - -function indexOf_12(list, o, fromIndex){ - var element, i, size_0; - fromIndex < 0 && (fromIndex = 0); - size_0 = list.size_0; - for (i = fromIndex; i < size_0; i++) { - element = $get_20(list, i); - if (o == null) { - if (element == null) { - return i; - } - } - else if (maskUndefined(o) === maskUndefined(element) || equals_Ljava_lang_Object__Z__devirtual$(o, element)) { - return i; - } - } - return -1; -} - -function sort_13(list, comparator){ - $clinit_ECollections(); - var i, listAsArray, objectComparator, oldIndex; - listAsArray = $toArray_11(list); - objectComparator = comparator; - mergeSort(listAsArray, 0, listAsArray.length, objectComparator); - for (i = 0; i < listAsArray.length; i++) { - oldIndex = indexOf_12(list, listAsArray[i], i); - i != oldIndex && $move_1(list, i, oldIndex); - } -} - -var EMPTY_ELIST; -function $add_26(){ - throw toJs(new UnsupportedOperationException); -} - -function $add_27(){ - throw toJs(new UnsupportedOperationException); -} - -function $addAll_10(){ - throw toJs(new UnsupportedOperationException); -} - -function $addAll_11(){ - throw toJs(new UnsupportedOperationException); -} - -function $clear_14(){ - throw toJs(new UnsupportedOperationException); -} - -function $move_3(){ - throw toJs(new UnsupportedOperationException); -} - -function $move_4(){ - throw toJs(new UnsupportedOperationException); -} - -function $remove_40(){ - throw toJs(new UnsupportedOperationException); -} - -function $remove_41(){ - throw toJs(new UnsupportedOperationException); -} - -function $set_13(){ - throw toJs(new UnsupportedOperationException); -} - -function ECollections$BasicEmptyUnmodifiableEList(){ - this.listIterator = new ECollections$BasicEmptyUnmodifiableEList$1; -} - -defineClass(768, 1, {}); -_.equals_0 = function equals_191(o){ - return $equals_2(($clinit_Collections() , EMPTY_LIST), o); -} -; -_.hashCode_1 = function hashCode_79(){ - return hashCode_48(($clinit_Collections() , EMPTY_LIST)); -} -; -_.toString_0 = function toString_141(){ - return $toString_2(($clinit_Collections() , EMPTY_LIST)); -} -; -var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList', 768); -function ECollections$BasicEmptyUnmodifiableEList$1(){ -} - -defineClass(1312, 1, $intern_14, ECollections$BasicEmptyUnmodifiableEList$1); -_.forEachRemaining = function forEachRemaining_56(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_57(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.hasNext_0 = function hasNext_45(){ - return false; -} -; -_.hasPrevious = function hasPrevious_8(){ - return false; -} -; -_.next_1 = function next_46(){ - throw toJs(new NoSuchElementException); -} -; -_.nextIndex_0 = function nextIndex_9(){ - return 0; -} -; -_.previous_0 = function previous_9(){ - throw toJs(new NoSuchElementException); -} -; -_.previousIndex = function previousIndex_8(){ - return -1; -} -; -_.remove = function remove_120(){ - throw toJs(new UnsupportedOperationException); -} -; -_.set_1 = function set_26(o){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_common_util_ECollections$BasicEmptyUnmodifiableEList$1_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/BasicEmptyUnmodifiableEList/1', 1312); -function ECollections$EmptyUnmodifiableEList(){ - ECollections$BasicEmptyUnmodifiableEList.call(this); -} - -defineClass(1310, 768, {20:1, 14:1, 15:1, 58:1}, ECollections$EmptyUnmodifiableEList); -_.add_3 = function add_58(index_0, element){ - $add_26(); -} -; -_.add_2 = function add_59(o){ - return $add_27(); -} -; -_.addAll_0 = function addAll_30(index_0, collection){ - return $addAll_10(); -} -; -_.addAll = function addAll_31(coll){ - return $addAll_11(); -} -; -_.clear_0 = function clear_63(){ - $clear_14(); -} -; -_.contains = function contains_60(o){ - return false; -} -; -_.containsAll = function containsAll_13(coll){ - return false; -} -; -_.forEach_0 = function forEach_39(action){ - $forEach_0(this, action); -} -; -_.get_0 = function get_55(index_0){ - return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; -} -; -_.indexOf_0 = function indexOf_13(o){ - return -1; -} -; -_.isEmpty = function isEmpty_31(){ - return true; -} -; -_.iterator_0 = function iterator_86(){ - return this.listIterator; -} -; -_.listIterator_0 = function listIterator_25(){ - return this.listIterator; -} -; -_.listIterator_1 = function listIterator_26(index_0){ - return this.listIterator; -} -; -_.move = function move_10(newPosition, oldPosition){ - return $move_3(); -} -; -_.move_0 = function move_11(newPosition, o){ - $move_4(); -} -; -_.parallelStream = function parallelStream_6(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.remove_2 = function remove_121(index_0){ - return $remove_40(); -} -; -_.remove_1 = function remove_122(o){ - return $remove_41(); -} -; -_.set_2 = function set_27(index_0, element){ - return $set_13(); -} -; -_.size_1 = function size_73(){ - return 0; -} -; -_.sort_0 = function sort_14(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_39(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_8(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.subList = function subList_11(fromIndex, toIndex){ - return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); -} -; -_.toArray = function toArray_34(){ - return $toArray(($clinit_Collections() , EMPTY_LIST)); -} -; -_.toArray_0 = function toArray_35(a){ - return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); -} -; -var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEList', 1310); -function ECollections$EmptyUnmodifiableEMap(){ - ECollections$BasicEmptyUnmodifiableEList.call(this); -} - -defineClass(1311, 768, {20:1, 14:1, 15:1, 58:1, 589:1}, ECollections$EmptyUnmodifiableEMap); -_.add_3 = function add_60(index_0, element){ - $add_26(); -} -; -_.add_2 = function add_61(o){ - return $add_27(); -} -; -_.addAll_0 = function addAll_32(index_0, collection){ - return $addAll_10(); -} -; -_.addAll = function addAll_33(coll){ - return $addAll_11(); -} -; -_.clear_0 = function clear_64(){ - $clear_14(); -} -; -_.contains = function contains_61(o){ - return false; -} -; -_.containsAll = function containsAll_14(coll){ - return false; -} -; -_.forEach_0 = function forEach_40(action){ - $forEach_0(this, action); -} -; -_.get_0 = function get_56(index_0){ - return $get_13(($clinit_Collections() , EMPTY_LIST , index_0)) , null; -} -; -_.indexOf_0 = function indexOf_14(o){ - return -1; -} -; -_.isEmpty = function isEmpty_32(){ - return true; -} -; -_.iterator_0 = function iterator_87(){ - return this.listIterator; -} -; -_.listIterator_0 = function listIterator_27(){ - return this.listIterator; -} -; -_.listIterator_1 = function listIterator_28(index_0){ - return this.listIterator; -} -; -_.move = function move_12(newPosition, oldPosition){ - return $move_3(); -} -; -_.move_0 = function move_13(newPosition, o){ - $move_4(); -} -; -_.parallelStream = function parallelStream_7(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.remove_2 = function remove_123(index_0){ - return $remove_40(); -} -; -_.remove_1 = function remove_124(o){ - return $remove_41(); -} -; -_.set_2 = function set_28(index_0, element){ - return $set_13(); -} -; -_.size_1 = function size_74(){ - return 0; -} -; -_.sort_0 = function sort_15(c){ - $sort_0(this, c); -} -; -_.spliterator_0 = function spliterator_40(){ - return new Spliterators$IteratorSpliterator(this, 16); -} -; -_.stream = function stream_9(){ - return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); -} -; -_.subList = function subList_12(fromIndex, toIndex){ - return $clinit_Collections() , new AbstractList$SubList(EMPTY_LIST, fromIndex, toIndex); -} -; -_.toArray = function toArray_36(){ - return $toArray(($clinit_Collections() , EMPTY_LIST)); -} -; -_.toArray_0 = function toArray_37(a){ - return $clinit_Collections() , $toArray_0(EMPTY_LIST, a); -} -; -_.map_2 = function map_6(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_MAP; -} -; -var Lorg_eclipse_emf_common_util_ECollections$EmptyUnmodifiableEMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'ECollections/EmptyUnmodifiableEMap', 1311); -var Lorg_eclipse_emf_common_util_Enumerator_2_classLit = createForInterface('org.eclipse.emf.common.util', 'Enumerator'); -function $clinit_Reflect(){ - $clinit_Reflect = emptyMethod; - HELPER_REGISTRY = new HashMap; -} - -function isInstance(class_, instance){ - $clinit_Reflect(); - var helper; - helper = castTo($get_10(HELPER_REGISTRY, class_), 55); - return !helper || helper.isInstance(instance); -} - -function register_0(class_, helper){ - $clinit_Reflect(); - $put_6(HELPER_REGISTRY, class_, helper); -} - -var HELPER_REGISTRY; -function $clinit_URI(){ - $clinit_URI = emptyMethod; - var set_0; - uriCache = new URI$URICache; - NO_SEGMENTS = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, 0, 6, 1); - ALPHA_HI = or_0(lowBitmask_0(33, 58), lowBitmask_0(1, 26)); - ALPHA_LO = or_0(lowBitmask_0(97, 122), lowBitmask_0(65, 90)); - DIGIT_LO = lowBitmask_0(48, 57); - ALPHANUM_HI = or_0(ALPHA_HI, 0); - ALPHANUM_LO = or_0(ALPHA_LO, DIGIT_LO); - HEX_HI = or_0(or_0(0, lowBitmask_0(1, 6)), lowBitmask_0(33, 38)); - HEX_LO = or_0(or_0(DIGIT_LO, lowBitmask_0(65, 70)), lowBitmask_0(97, 102)); - UNRESERVED_HI = or_0(ALPHANUM_HI, highBitmask_0("-_.!~*'()")); - UNRESERVED_LO = or_0(ALPHANUM_LO, lowBitmask_1("-_.!~*'()")); - highBitmask_0(';/?:@&=+$,'); - lowBitmask_1(';/?:@&=+$,'); - or_0(UNRESERVED_HI, highBitmask_0(';:@&=+$,')); - or_0(UNRESERVED_LO, lowBitmask_1(';:@&=+$,')); - MAJOR_SEPARATOR_HI = highBitmask_0(':/?#'); - MAJOR_SEPARATOR_LO = lowBitmask_1(':/?#'); - SEGMENT_END_HI = highBitmask_0('/?#'); - SEGMENT_END_LO = lowBitmask_1('/?#'); - set_0 = new HashSet; - set_0.map_0.put('jar', set_0); - set_0.map_0.put('zip', set_0); - set_0.map_0.put('archive', set_0); - archiveSchemes = ($clinit_Collections() , new Collections$UnmodifiableSet(set_0)); -} - -function $appendFragment(this$static, fragment){ - var result; - result = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, fragment); - this$static.fragment != null || (result.cachedTrimFragment = this$static); - return result; -} - -function $segmentsEqual(this$static, uri_0){ - var i, len; - if (this$static.segments.length != uri_0.segments.length) - return false; - for (i = 0 , len = this$static.segments.length; i < len; i++) { - if (!$equals_5(this$static.segments[i], uri_0.segments[i])) - return false; - } - return true; -} - -function $toString_26(this$static){ - var i, len, result; - if (this$static.cachedToString == null) { - result = new StringBuffer; - if (this$static.scheme != null) { - $append_3(result, this$static.scheme); - result.string += ':'; - } - if ((this$static.hashCode_0 & 256) != 0) { - if ((this$static.hashCode_0 & 256) != 0 && this$static.authority != null) { - isArchiveScheme(this$static.scheme) || (result.string += '//' , result); - $append_3(result, this$static.authority); - } - if (this$static.device != null) { - result.string += '/'; - $append_3(result, this$static.device); - } - (this$static.hashCode_0 & 16) != 0 && (result.string += '/' , result); - for (i = 0 , len = this$static.segments.length; i < len; i++) { - i != 0 && (result.string += '/' , result); - $append_3(result, this$static.segments[i]); - } - if (this$static.query != null) { - result.string += '?'; - $append_3(result, this$static.query); - } - } - else { - $append_3(result, this$static.authority); - } - if (this$static.fragment != null) { - result.string += '#'; - $append_3(result, this$static.fragment); - } - this$static.cachedToString = result.string; - } - return this$static.cachedToString; -} - -function $trimFragment(this$static){ - if (this$static.fragment == null) { - return this$static; - } - else - !this$static.cachedTrimFragment && (this$static.cachedTrimFragment = new URI((this$static.hashCode_0 & 256) != 0, this$static.scheme, this$static.authority, this$static.device, (this$static.hashCode_0 & 16) != 0, this$static.segments, this$static.query, null)); - return this$static.cachedTrimFragment; -} - -function URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment){ - var hashCode, i, len; - hashCode = 0; - scheme != null && (hashCode ^= getHashCode_1(scheme.toLowerCase())); - authority != null && (hashCode ^= getHashCode_1(authority)); - device != null && (hashCode ^= getHashCode_1(device)); - query != null && (hashCode ^= getHashCode_1(query)); - fragment != null && (hashCode ^= getHashCode_1(fragment)); - for (i = 0 , len = segments.length; i < len; i++) { - hashCode ^= getHashCode_1(segments[i]); - } - hierarchical?(hashCode |= 256):(hashCode &= -257); - absolutePath?(hashCode |= 16):(hashCode &= -17); - this.hashCode_0 = hashCode; - this.scheme = scheme == null?null:(checkCriticalNotNull(scheme) , scheme); - this.authority = authority; - this.device = device; - this.segments = segments; - this.query = query; - this.fragment = fragment; -} - -function contains_62(s, highBitmask, lowBitmask){ - var i, len; - for (i = 0 , len = s.length; i < len; i++) { - if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) - return true; - } - return false; -} - -function createURIWithCache(uri_0){ - $clinit_URI(); - var base, fragment, i, result; - i = $indexOf_1(uri_0, fromCodePoint(35)); - base = i == -1?uri_0:uri_0.substr(0, i); - fragment = i == -1?null:uri_0.substr(i + 1); - result = $get_22(uriCache, base); - if (!result) { - result = parseIntoURI(base); - $put_14(uriCache, base, result); - fragment != null && (result = $appendFragment(result, fragment)); - } - else - fragment != null && (result = $appendFragment(result, (checkCriticalNotNull(fragment) , fragment))); - return result; -} - -function decode(value_0){ - $clinit_URI(); - var bytes, character, expectedBytes, i, j, len, receivedBytes, result; - if (value_0 == null) - return null; - i = $indexOf_1(value_0, fromCodePoint(37)); - if (i < 0) { - return value_0; - } - else { - result = new StringBuilder_1(value_0.substr(0, i)); - bytes = initUnidimensionalArray(B_classLit, $intern_136, 25, 4, 15, 1); - receivedBytes = 0; - expectedBytes = 0; - for (len = value_0.length; i < len; i++) { - checkCriticalStringElementIndex(i, value_0.length); - if (value_0.charCodeAt(i) == 37 && value_0.length > i + 2 && matches((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), HEX_HI, HEX_LO) && matches((checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2)), HEX_HI, HEX_LO)) { - character = unescape_0((checkCriticalStringElementIndex(i + 1, value_0.length) , value_0.charCodeAt(i + 1)), (checkCriticalStringElementIndex(i + 2, value_0.length) , value_0.charCodeAt(i + 2))); - i += 2; - if (expectedBytes > 0) { - (character & 192) == 128?(bytes[receivedBytes++] = character << 24 >> 24):(expectedBytes = 0); - } - else if (character >= 128) { - if ((character & 224) == 192) { - bytes[receivedBytes++] = character << 24 >> 24; - expectedBytes = 2; - } - else if ((character & 240) == 224) { - bytes[receivedBytes++] = character << 24 >> 24; - expectedBytes = 3; - } - else if ((character & 248) == 240) { - bytes[receivedBytes++] = character << 24 >> 24; - expectedBytes = 4; - } - } - if (expectedBytes > 0) { - if (receivedBytes == expectedBytes) { - switch (receivedBytes) { - case 2: - { - $append_5(result, ((bytes[0] & 31) << 6 | bytes[1] & 63) & $intern_46); - break; - } - - case 3: - { - $append_5(result, ((bytes[0] & 15) << 12 | (bytes[1] & 63) << 6 | bytes[2] & 63) & $intern_46); - break; - } - - } - receivedBytes = 0; - expectedBytes = 0; - } - } - else { - for (j = 0; j < receivedBytes; ++j) { - $append_5(result, bytes[j] & $intern_46); - } - receivedBytes = 0; - result.string += String.fromCharCode(character); - } - } - else { - for (j = 0; j < receivedBytes; ++j) { - $append_5(result, bytes[j] & $intern_46); - } - receivedBytes = 0; - $append_5(result, (checkCriticalStringElementIndex(i, value_0.length) , value_0.charCodeAt(i))); - } - } - return result.string; - } -} - -function equals_193(o1, o2){ - return o1 == null?o2 == null:$equals_5(o1, o2); -} - -function equals_194(s1, s2){ - return s1 == null?s2 == null:$equalsIgnoreCase(s1, s2); -} - -function find_0(s, i, highBitmask, lowBitmask){ - var len; - len = s.length; - if (i >= len) - return len; - for (i = i > 0?i:0; i < len; i++) { - if (matches((checkCriticalStringElementIndex(i, s.length) , s.charCodeAt(i)), highBitmask, lowBitmask)) - break; - } - return i; -} - -function firstInvalidSegment(value_0){ - var i, len; - if (value_0 == null) - return null; - for (i = 0 , len = value_0.length; i < len; i++) { - if (!validSegment(value_0[i])) - return value_0[i]; - } - return null; -} - -function highBitmask_0(chars){ - var c, i, len, result; - result = 0; - for (i = 0 , len = chars.length; i < len; i++) { - c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); - c >= 64 && c < 128 && (result = or_0(result, shl_0(1, c - 64))); - } - return result; -} - -function isArchiveScheme(value_0){ - return value_0 != null && $contains_2(archiveSchemes, value_0.toLowerCase()); -} - -function lowBitmask_0(from, to){ - var c, result; - result = 0; - if (from < 64 && from <= to) { - to = to < 64?to:63; - for (c = from; c <= to; c++) { - result = or_0(result, shl_0(1, c)); - } - } - return result; -} - -function lowBitmask_1(chars){ - var c, i, len, result; - result = 0; - for (i = 0 , len = chars.length; i < len; i++) { - c = (checkCriticalStringElementIndex(i, chars.length) , chars.charCodeAt(i)); - c < 64 && (result = or_0(result, shl_0(1, c))); - } - return result; -} - -function matches(c, highBitmask, lowBitmask){ - if (c >= 128) - return false; - return c < 64?neq(and_0(shl_0(1, c), lowBitmask), 0):neq(and_0(shl_0(1, c - 64), highBitmask), 0); -} - -function parseIntoURI(uri_0){ - var absolutePath, archiveScheme, authority, device, fragment, hierarchical, i, j, query, s, scheme, segmentList, segments; - hierarchical = true; - scheme = null; - authority = null; - device = null; - absolutePath = false; - segments = NO_SEGMENTS; - query = null; - fragment = null; - i = 0; - j = find_0(uri_0, i, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO); - if (j < uri_0.length && (checkCriticalStringElementIndex(j, uri_0.length) , uri_0.charCodeAt(j) == 58)) { - scheme = uri_0.substr(i, j - i); - i = j + 1; - } - archiveScheme = scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()); - if (archiveScheme) { - j = uri_0.lastIndexOf('!/'); - if (j == -1) { - throw toJs(new IllegalArgumentException_0('no archive separator')); - } - hierarchical = true; - authority = $substring_1(uri_0, i, ++j); - i = j; - } - else if (i >= 0 && $equals_5(uri_0.substr(i, '//'.length), '//')) { - i += 2; - j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); - authority = uri_0.substr(i, j - i); - i = j; - } - else if (scheme != null && (i == uri_0.length || (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 47))) { - hierarchical = false; - j = $indexOf_2(uri_0, fromCodePoint(35), i); - j == -1 && (j = uri_0.length); - authority = uri_0.substr(i, j - i); - i = j; - } - if (!archiveScheme && i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { - j = find_0(uri_0, i + 1, SEGMENT_END_HI, SEGMENT_END_LO); - s = uri_0.substr(i + 1, j - (i + 1)); - if (s.length > 0 && $charAt(s, s.length - 1) == 58) { - device = s; - i = j; - } - } - if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47)) { - ++i; - absolutePath = true; - } - if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { - segmentList = new ArrayList; - while (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35)) { - j = find_0(uri_0, i, SEGMENT_END_HI, SEGMENT_END_LO); - $add_3(segmentList, uri_0.substr(i, j - i)); - i = j; - i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 47) && (segmentsRemain(uri_0, ++i) || (segmentList.array[segmentList.array.length] = '' , true)); - } - segments = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, segmentList.array.length, 6, 1); - $toArray_2(segmentList, segments); - } - if (i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) == 63)) { - j = $indexOf_0(uri_0, 35, ++i); - j == -1 && (j = uri_0.length); - query = uri_0.substr(i, j - i); - i = j; - } - i < uri_0.length && (fragment = $substring_0(uri_0, ++i)); - validateURI(hierarchical, scheme, authority, device, segments, query); - return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); -} - -function segmentsRemain(uri_0, i){ - return i < uri_0.length && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 63) && (checkCriticalStringElementIndex(i, uri_0.length) , uri_0.charCodeAt(i) != 35); -} - -function unescape_0(highHexDigit, lowHexDigit){ - return (valueOf_112(highHexDigit) << 4 | valueOf_112(lowHexDigit)) & $intern_46; -} - -function validArchiveAuthority(value_0){ - var archiveURI; - if (value_0 != null && value_0.length > 0 && $charAt(value_0, value_0.length - 1) == 33) { - try { - archiveURI = createURIWithCache($substring_1(value_0, 0, value_0.length - 1)); - return archiveURI.fragment == null; - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 32)) - throw toJs($e0); - } - } - return false; -} - -function validDevice(value_0){ - var len; - if (value_0 == null) - return true; - len = value_0.length; - return len > 0 && (checkCriticalStringElementIndex(len - 1, value_0.length) , value_0.charCodeAt(len - 1) == 58) && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); -} - -function validSegment(value_0){ - return value_0 != null && !contains_62(value_0, SEGMENT_END_HI, SEGMENT_END_LO); -} - -function validSegments(value_0){ - var i, len; - if (value_0 == null) - return false; - for (i = 0 , len = value_0.length; i < len; i++) { - if (!validSegment(value_0[i])) - return false; - } - return true; -} - -function validateURI(hierarchical, scheme, authority, device, segments, query){ - var s; - if (!(scheme == null || !contains_62(scheme, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO))) { - throw toJs(new IllegalArgumentException_0('invalid scheme: ' + scheme)); - } - if (!hierarchical && !(authority != null && $indexOf_1(authority, fromCodePoint(35)) == -1 && authority.length > 0 && (checkCriticalStringElementIndex(0, authority.length) , authority.charCodeAt(0) != 47))) { - throw toJs(new IllegalArgumentException_0('invalid opaquePart: ' + authority)); - } - if (hierarchical && !(scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase())) && !(authority == null || !contains_62(authority, SEGMENT_END_HI, SEGMENT_END_LO))) { - throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); - } - if (hierarchical && scheme != null && $contains_2(archiveSchemes, scheme.toLowerCase()) && !validArchiveAuthority(authority)) { - throw toJs(new IllegalArgumentException_0('invalid authority: ' + authority)); - } - if (!validDevice(device)) { - throw toJs(new IllegalArgumentException_0('invalid device: ' + device)); - } - if (!validSegments(segments)) { - s = segments == null?'invalid segments: null':'invalid segment: ' + firstInvalidSegment(segments); - throw toJs(new IllegalArgumentException_0(s)); - } - if (!(query == null || $indexOf_1(query, fromCodePoint(35)) == -1)) { - throw toJs(new IllegalArgumentException_0('invalid query: ' + query)); - } -} - -function valueOf_112(hexDigit){ - if (hexDigit >= 65 && hexDigit <= 70) { - return hexDigit - 65 + 10; - } - if (hexDigit >= 97 && hexDigit <= 102) { - return hexDigit - 97 + 10; - } - if (hexDigit >= 48 && hexDigit <= 57) { - return hexDigit - 48; - } - return 0; -} - -defineClass(281, 1, {281:1}, URI); -_.equals_0 = function equals_192(object){ - var uri_0; - if (this === object) - return true; - if (!instanceOf(object, 281)) - return false; - uri_0 = castTo(object, 281); - return this.hashCode_0 == uri_0.hashCode_0 && equals_194(this.scheme, uri_0.scheme) && equals_193(this.authority, (this.hashCode_0 & 256) != 0?(uri_0.hashCode_0 & 256) != 0?uri_0.authority:null:(uri_0.hashCode_0 & 256) != 0?null:uri_0.authority) && equals_193(this.device, uri_0.device) && equals_193(this.query, uri_0.query) && equals_193(this.fragment, uri_0.fragment) && $segmentsEqual(this, uri_0); -} -; -_.hashCode_1 = function hashCode_80(){ - return this.hashCode_0; -} -; -_.toString_0 = function toString_142(){ - return $toString_26(this); -} -; -_.hashCode_0 = 0; -var ALPHANUM_HI = 0, ALPHANUM_LO = 0, ALPHA_HI = 0, ALPHA_LO = 0, DIGIT_LO = 0, HEX_HI = 0, HEX_LO = 0, MAJOR_SEPARATOR_HI = 0, MAJOR_SEPARATOR_LO = 0, NO_SEGMENTS, SEGMENT_END_HI = 0, SEGMENT_END_LO = 0, UNRESERVED_HI = 0, UNRESERVED_LO = 0, archiveSchemes, uriCache; -var Lorg_eclipse_emf_common_util_URI_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI', 281); -function $get_22(this$static, key){ - return castTo(key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key), 281); -} - -function $put_14(this$static, key, value_0){ - return castTo(key == null?$put_9(this$static.hashCodeMap, null, value_0):$put_10(this$static.stringMap, key, value_0), 281); -} - -function URI$URICache(){ - HashMap.call(this); -} - -defineClass(1091, 43, $intern_76, URI$URICache); -_.put = function put_11(key, value_0){ - return castTo($putStringValue(this, castToString(key), castTo(value_0, 281)), 281); -} -; -var Lorg_eclipse_emf_common_util_URI$URICache_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI/URICache', 1091); -function UniqueEList(){ -} - -function UniqueEList_0(collection){ - BasicEList_0.call(this, collection.size_1()); - $addAll_9(this, collection); -} - -defineClass(497, 63, $intern_138, UniqueEList, UniqueEList_0); -_.isUnique = function isUnique_1(){ - return true; -} -; -var Lorg_eclipse_emf_common_util_UniqueEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'UniqueEList', 497); -function WrappedException(exception){ - $$init_0(this); - this.detailMessage = !exception?null:$toString_4(exception, exception.getMessage()); - this.cause_0 = exception; - $fillInStackTrace(this); - this.initializeBackingError(); -} - -defineClass(581, 60, $intern_43, WrappedException); -var Lorg_eclipse_emf_common_util_WrappedException_2_classLit = createForClass('org.eclipse.emf.common.util', 'WrappedException', 581); -var Lorg_eclipse_emf_ecore_EAnnotation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAnnotation'); -var Lorg_eclipse_emf_ecore_ETypedElement_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypedElement'); -var Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EStructuralFeature'); -var Lorg_eclipse_emf_ecore_EAttribute_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EAttribute'); -var Lorg_eclipse_emf_ecore_EClassifier_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClassifier'); -var Lorg_eclipse_emf_ecore_EClass_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EClass'); -var Lorg_eclipse_emf_ecore_EDataType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EDataType'); -function $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry(){ - $clinit_EDataType$Internal$ConversionDelegate$Factory$Registry = emptyMethod; - INSTANCE_5 = new EDataType$Internal$ConversionDelegate$Factory$Registry$Impl; -} - -var INSTANCE_5; -function $getFactory(this$static, uri_0){ - var factory; - return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); -} - -function EDataType$Internal$ConversionDelegate$Factory$Registry$Impl(){ - HashMap.call(this); -} - -defineClass(1183, 43, $intern_76, EDataType$Internal$ConversionDelegate$Factory$Registry$Impl); -_.get_3 = function get_57(key){ - return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); -} -; -var Lorg_eclipse_emf_ecore_EDataType$Internal$ConversionDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl', 1183); -var Lorg_eclipse_emf_ecore_EEnum_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnum'); -var Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EEnumLiteral'); -var Lorg_eclipse_emf_ecore_EGenericType_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EGenericType'); -var Lorg_eclipse_emf_ecore_EOperation_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EOperation'); -function $clinit_EPackage$Registry(){ - $clinit_EPackage$Registry = emptyMethod; - INSTANCE_6 = new EPackageRegistryImpl; -} - -var INSTANCE_6; -var Lorg_eclipse_emf_ecore_EParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EParameter'); -var Lorg_eclipse_emf_ecore_EReference_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EReference'); -function EStructuralFeature$Internal$DynamicValueHolder$1(){ -} - -defineClass(1029, 1, {}, EStructuralFeature$Internal$DynamicValueHolder$1); -_.toString_0 = function toString_143(){ - return 'NIL'; -} -; -var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$DynamicValueHolder$1_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/DynamicValueHolder/1', 1029); -function $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry(){ - $clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry = emptyMethod; - INSTANCE_7 = new EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl; -} - -var INSTANCE_7; -function $getFactory_0(this$static, uri_0){ - var factory; - return factory = uri_0 != null?$getStringValue(this$static, uri_0):getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, uri_0)) , throwClassCastExceptionUnlessNull(factory); -} - -function EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl(){ - HashMap.call(this); -} - -defineClass(1028, 43, $intern_76, EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl); -_.get_3 = function get_58(key){ - return instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); -} -; -var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl', 1028); -var Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit = createForInterface('org.eclipse.emf.ecore', 'ETypeParameter'); -var Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit = createForInterface('org.eclipse.emf.ecore', 'EValidator/PatternMatcher'); -function $clinit_EValidator$Registry(){ - $clinit_EValidator$Registry = emptyMethod; - INSTANCE_8 = new EValidatorRegistryImpl; -} - -var INSTANCE_8; -function $clinit_EcoreFactory(){ - $clinit_EcoreFactory = emptyMethod; - eINSTANCE_1 = init_3(); -} - -var eINSTANCE_1; -function $clinit_EcorePackage(){ - $clinit_EcorePackage = emptyMethod; - eINSTANCE_2 = init_4(); - !!($clinit_EcorePackage$Literals() , EATTRIBUTE) && internalBootstrap(); -} - -var eINSTANCE_2; -function $clinit_EcorePackage$Literals(){ - $clinit_EcorePackage$Literals = emptyMethod; - EATTRIBUTE = ($clinit_EcorePackage() , eINSTANCE_2).eAttributeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 1), 18); - EANNOTATION = eINSTANCE_2.eAnnotationEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 4), 18); - ECLASS = eINSTANCE_2.eClassEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 1), 34); - ECLASS__ESUPER_TYPES = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 6), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 7), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 8), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 9), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 10), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 11), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 12), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 13), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 14), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 15), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 2), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 3), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 4), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 5), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 6), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 7), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 8), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 9), 59); - ECLASSIFIER = eINSTANCE_2.eClassifierEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 5), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 1), 59); - EDATA_TYPE = eINSTANCE_2.eDataTypeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eDataTypeEClass), 0), 34); - EENUM = eINSTANCE_2.eEnumEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumEClass), 0), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 2), 59); - EENUM_LITERAL = eINSTANCE_2.eEnumLiteralEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 3), 18); - EFACTORY = eINSTANCE_2.eFactoryEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eFactoryEClass), 0), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 2), 59); - EMODEL_ELEMENT = eINSTANCE_2.eModelElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eModelElementEClass), 0), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eModelElementEClass), 0), 59); - ENAMED_ELEMENT = eINSTANCE_2.eNamedElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eNamedElementEClass), 0), 34); - EOBJECT = eINSTANCE_2.eObjectEClass; - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 1), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 2), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 3), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 4), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 5), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 6), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 7), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 8), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 9), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 10), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 11), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 12), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 13), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 14), 59); - EOPERATION = eINSTANCE_2.eOperationEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 2), 18); - EOPERATION__EEXCEPTIONS = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 4), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 1), 59); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 1), 18); - EPACKAGE = eINSTANCE_2.ePackageEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 5), 18); - castTo($get_20($getEOperations(eINSTANCE_2.ePackageEClass), 0), 59); - EPARAMETER = eINSTANCE_2.eParameterEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eParameterEClass), 0), 18); - EREFERENCE = eINSTANCE_2.eReferenceEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 5), 18); - ESTRUCTURAL_FEATURE = eINSTANCE_2.eStructuralFeatureEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 4), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 5), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 6), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 7), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 0), 59); - castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 1), 59); - ETYPED_ELEMENT = eINSTANCE_2.eTypedElementEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 2), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 3), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 4), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 5), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 6), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 7), 18); - ESTRING_TO_STRING_MAP_ENTRY = eINSTANCE_2.eStringToStringMapEntryEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 1), 34); - EGENERIC_TYPE = eINSTANCE_2.eGenericTypeEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 0), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 2), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 3), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 4), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 5), 18); - castTo($get_20($getEOperations(eINSTANCE_2.eGenericTypeEClass), 0), 59); - ETYPE_PARAMETER = eINSTANCE_2.eTypeParameterEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypeParameterEClass), 0), 18); - EJAVA_OBJECT = eINSTANCE_2.eJavaObjectEDataType; -} - -var EANNOTATION, EATTRIBUTE, ECLASS, ECLASSIFIER, ECLASS__ESUPER_TYPES, EDATA_TYPE, EENUM, EENUM_LITERAL, EFACTORY, EGENERIC_TYPE, EJAVA_OBJECT, EMODEL_ELEMENT, ENAMED_ELEMENT, EOBJECT, EOPERATION, EOPERATION__EEXCEPTIONS, EPACKAGE, EPARAMETER, EREFERENCE, ESTRING_TO_STRING_MAP_ENTRY, ESTRUCTURAL_FEATURE, ETYPED_ELEMENT, ETYPE_PARAMETER; -var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry'); -function BasicEObjectImpl$1(val$eAttribute, val$value){ - this.val$eAttribute1 = val$eAttribute; - this.val$value2 = val$value; -} - -defineClass(535, 1, {72:1}, BasicEObjectImpl$1); -_.getEStructuralFeature = function getEStructuralFeature(){ - return this.val$eAttribute1; -} -; -_.getValue = function getValue_12(){ - return this.val$value2; -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/1', 535); -function BasicEObjectImpl$4(this$0, val$eFeature){ - this.this$01 = this$0; - this.val$eFeature2 = val$eFeature; -} - -defineClass(1027, 1, $intern_147, BasicEObjectImpl$4); -_.get_6 = function get_59(resolve){ - return $eGet_1(this.this$01, this.val$eFeature2, resolve); -} -; -_.isSet_0 = function isSet_1(){ - return $eIsSet_0(this.this$01, this.val$eFeature2); -} -; -_.set_1 = function set_29(newValue){ - $eSet_0(this.this$01, this.val$eFeature2, newValue); -} -; -_.unset = function unset(){ - $eUnset_0(this.this$01, this.val$eFeature2); -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/4', 1027); -function $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(){ - $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl = emptyMethod; - NO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -defineClass(1983, 1, {108:1}); -_.allocateSettings = function allocateSettings(dynamicFeatureCount){ - this.eSettings = dynamicFeatureCount == 0?NO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, dynamicFeatureCount, 5, 1); -} -; -_.dynamicGet = function dynamicGet_0(dynamicFeatureID){ - return this.eSettings[dynamicFeatureID]; -} -; -_.dynamicSet = function dynamicSet_0(dynamicFeatureID, value_0){ - this.eSettings[dynamicFeatureID] = value_0; -} -; -_.dynamicUnset = function dynamicUnset_0(dynamicFeatureID){ - this.eSettings[dynamicFeatureID] = null; -} -; -_.getEClass = function getEClass(){ - return this.eClass; -} -; -_.getEContents = function getEContents(){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEProxyURI = function getEProxyURI(){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEResource = function getEResource(){ - return this.eResource; -} -; -_.hasSettings = function hasSettings(){ - return this.eSettings != null; -} -; -_.setEClass = function setEClass(eClass){ - this.eClass = eClass; -} -; -_.setEContents = function setEContents(eContents){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEProxyURI = function setEProxyURI(eProxyURI){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEResource = function setEResource(eResource){ - this.eResource = eResource; -} -; -var NO_SETTINGS; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderBaseImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderBaseImpl', 1983); -function BasicEObjectImpl$EPropertiesHolderImpl(){ - $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(); -} - -defineClass(185, 1983, {108:1}, BasicEObjectImpl$EPropertiesHolderImpl); -_.getEContents = function getEContents_0(){ - return this.eContents; -} -; -_.getEProxyURI = function getEProxyURI_0(){ - return this.eProxyURI; -} -; -_.setEContents = function setEContents_0(eContents){ - this.eContents = eContents; -} -; -_.setEProxyURI = function setEProxyURI_0(eProxyURI){ - this.eProxyURI = eProxyURI; -} -; -var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl$EPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl/EPropertiesHolderImpl', 185); -function EObjectImpl(){ -} - -defineClass(506, 97, $intern_135, EObjectImpl); -_.eBasicAdapters = function eBasicAdapters_2(){ - return this.eAdapters; -} -; -_.eBasicProperties = function eBasicProperties_1(){ - return this.eProperties; -} -; -_.eBasicSetContainer = function eBasicSetContainer_4(newContainer, newContainerFeatureID){ - this.eContainer = newContainer; - this.eContainerFeatureID = newContainerFeatureID; -} -; -_.eClass_0 = function eClass_2(){ - return (this.eFlags & 2) == 0?this.eStaticClass():this.eProperties_0().getEClass(); -} -; -_.eContainerFeatureID_0 = function eContainerFeatureID_2(){ - return this.eContainerFeatureID; -} -; -_.eDeliver = function eDeliver_2(){ - return (this.eFlags & 1) != 0; -} -; -_.eInternalContainer = function eInternalContainer_3(){ - return this.eContainer; -} -; -_.eIsProxy = function eIsProxy_1(){ - return (this.eFlags & 4) != 0; -} -; -_.eProperties_0 = function eProperties_2(){ - return !this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties; -} -; -_.eSetClass = function eSetClass_1(eClass){ - this.eProperties_0().setEClass(eClass); - eClass?(this.eFlags |= 2):(this.eFlags &= -3); -} -; -_.eSetProxyURI = function eSetProxyURI_2(uri_0){ - this.eProperties_0().setEProxyURI(uri_0); - uri_0?(this.eFlags |= 4):(this.eFlags &= -5); -} -; -_.eStaticClass = function eStaticClass_15(){ - return ($clinit_EcorePackage() , eINSTANCE_2).eObjectEClass; -} -; -_.eContainerFeatureID = 0; -_.eFlags = 1; -var Lorg_eclipse_emf_ecore_impl_EObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EObjectImpl', 506); -function $clinit_DynamicEObjectImpl(){ - $clinit_DynamicEObjectImpl = emptyMethod; - ENO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); -} - -function DynamicEObjectImpl(eClass){ - $clinit_DynamicEObjectImpl(); - EObjectImpl.call(this); - this.eSetClass(eClass); -} - -defineClass(780, 506, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl); -_.dynamicGet = function dynamicGet_1(dynamicFeatureID){ - return this.eSettings[dynamicFeatureID]; -} -; -_.dynamicSet = function dynamicSet_1(dynamicFeatureID, value_0){ - this.eSettings[dynamicFeatureID] = value_0; -} -; -_.dynamicUnset = function dynamicUnset_1(dynamicFeatureID){ - this.eSettings[dynamicFeatureID] = null; -} -; -_.eClass_0 = function eClass_3(){ - return this.eClass; -} -; -_.eDerivedStructuralFeatureID_0 = function eDerivedStructuralFeatureID_1(eStructuralFeature){ - return $getFeatureID(this.eClass, eStructuralFeature); -} -; -_.eDynamicClass = function eDynamicClass_1(){ - return this.eClass; -} -; -_.eHasSettings = function eHasSettings_1(){ - return this.eSettings != null; -} -; -_.eProperties_0 = function eProperties_3(){ - !this.eProperties && (this.eProperties = new DynamicEObjectImpl$DynamicEPropertiesHolderImpl); - return this.eProperties; -} -; -_.eSetClass = function eSetClass_2(eClass){ - this.eClass = eClass; -} -; -_.eSettings_0 = function eSettings_1(){ - var size_0; - if (this.eSettings == null) { - size_0 = $getFeatureCount(this.eClass); - this.eSettings = size_0 == 0?ENO_SETTINGS:initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); - } - return this; -} -; -_.eStaticFeatureCount = function eStaticFeatureCount_0(){ - return 0; -} -; -var ENO_SETTINGS; -var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl', 780); -function DynamicEObjectImpl$BasicEMapEntry(eClass){ - $clinit_DynamicEObjectImpl(); - DynamicEObjectImpl.call(this, eClass); - this.hash = -1; -} - -defineClass(1376, 780, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl$BasicEMapEntry); -_.equals_0 = function equals_195(other){ - return this === other; -} -; -_.hashCode_1 = function hashCode_81(){ - return getHashCode_0(this); -} -; -_.eSetClass = function eSetClass_3(eClass){ - this.eClass = eClass; - this.keyFeature = $getEStructuralFeature_0(eClass, 'key'); - this.valueFeature = $getEStructuralFeature_0(eClass, 'value'); -} -; -_.getHash = function getHash_1(){ - var theKey; - if (this.hash == -1) { - theKey = $eGet_2(this, this.keyFeature); - this.hash = theKey == null?0:hashCode__I__devirtual$(theKey); - } - return this.hash; -} -; -_.getKey = function getKey_10(){ - return $eGet_2(this, this.keyFeature); -} -; -_.getValue = function getValue_13(){ - return $eGet_2(this, this.valueFeature); -} -; -_.setHash = function setHash_1(hash){ - this.hash = hash; -} -; -_.setKey = function setKey_1(key){ - $eSet_0(this, this.keyFeature, key); -} -; -_.setValue = function setValue_13(value_0){ - var result; - result = $eGet_2(this, this.valueFeature); - $eSet_0(this, this.valueFeature, value_0); - return result; -} -; -_.hash = 0; -var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$BasicEMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/BasicEMapEntry', 1376); -function DynamicEObjectImpl$DynamicEPropertiesHolderImpl(){ -} - -defineClass(1377, 1, {108:1}, DynamicEObjectImpl$DynamicEPropertiesHolderImpl); -_.allocateSettings = function allocateSettings_0(maximumDynamicFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicGet = function dynamicGet_2(dynamicFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicSet = function dynamicSet_2(dynamicFeatureID, value_0){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicUnset = function dynamicUnset_2(dynamicFeatureID){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEClass = function getEClass_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.getEContents = function getEContents_1(){ - return this.eContents; -} -; -_.getEProxyURI = function getEProxyURI_1(){ - return this.eProxyURI; -} -; -_.getEResource = function getEResource_0(){ - return this.eResource; -} -; -_.hasSettings = function hasSettings_0(){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEClass = function setEClass_0(eClass){ - throw toJs(new UnsupportedOperationException); -} -; -_.setEContents = function setEContents_1(eContents){ - this.eContents = eContents; -} -; -_.setEProxyURI = function setEProxyURI_1(eProxyURI){ - this.eProxyURI = eProxyURI; -} -; -_.setEResource = function setEResource_0(eResource){ - this.eResource = eResource; -} -; -var Lorg_eclipse_emf_ecore_impl_DynamicEObjectImpl$DynamicEPropertiesHolderImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'DynamicEObjectImpl/DynamicEPropertiesHolderImpl', 1377); -function $basicSetEModelElement(this$static, newEModelElement, msgs){ - msgs = $eBasicSetContainer(this$static, castTo(newEModelElement, 49), 3, msgs); - return msgs; -} - -function $eBasicRemoveFromContainerFeature_5(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 3) { - return this$static.eContainer.eInverseRemove(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getContents(this$static){ - !this$static.contents && (this$static.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this$static, 4)); - return this$static.contents; -} - -function $getEModelElement(this$static){ - if (this$static.eFlags_0 >> 16 != 3) - return null; - return castTo(this$static.eContainer, 147); -} - -function $setEModelElement(this$static, newEModelElement){ - var eContainerFeatureID, msgs; - if (newEModelElement != this$static.eContainer || this$static.eFlags_0 >> 16 != 3 && !!newEModelElement) { - if (isAncestor(this$static, newEModelElement)) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + $toString_27(this$static))); - msgs = null; - !!this$static.eContainer && (msgs = (eContainerFeatureID = this$static.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this$static, msgs):this$static.eContainer.eInverseRemove(this$static, -1 - eContainerFeatureID, null, msgs))); - !!newEModelElement && (msgs = castTo(newEModelElement, 49).eInverseAdd(this$static, 0, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, msgs)); - msgs = $basicSetEModelElement(this$static, newEModelElement, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newEModelElement, newEModelElement)); -} - -function $setSource_2(this$static, newSource){ - $setSourceGen(this$static, newSource == null?null:(checkCriticalNotNull(newSource) , newSource)); -} - -function $setSourceGen(this$static, newSource){ - var oldSource; - oldSource = this$static.source; - this$static.source = newSource; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldSource, this$static.source)); -} - -function $toString_27(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_16(this$static); - result = new StringBuffer_1($toString_16(this$static)); - result.string += ' (source: '; - $append_3(result, this$static.source); - result.string += ')'; - return result.string; -} - -function EAnnotationImpl(){ -} - -defineClass(510, 150, {105:1, 92:1, 90:1, 590:1, 147:1, 56:1, 108:1, 49:1, 97:1, 510:1, 150:1, 114:1, 115:1}, EAnnotationImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_6(msgs){ - return $eBasicRemoveFromContainerFeature_5(this, msgs); -} -; -_.eGet = function eGet_17(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.source; - case 2: - return coreType?(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , this.details):(!this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $map_1(this.details)); - case 3: - return $getEModelElement(this); - case 4: - return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , this.contents; - case 5: - return !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)) , this.references; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_11(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 3: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_5(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $basicSetEModelElement(this, castTo(otherEnd, 147), msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_12(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 2: - return !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)) , $basicRemove_1(this.details, otherEnd, msgs); - case 3: - return $basicSetEModelElement(this, null, msgs); - case 4: - return !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)) , $basicRemove_0(this.contents, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_16(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.source != null; - case 2: - return !!this.details && this.details.size_0 != 0; - case 3: - return !!$getEModelElement(this); - case 4: - return !!this.contents && this.contents.size_0 != 0; - case 5: - return !!this.references && this.references.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); -} -; -_.eSet = function eSet_15(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setSource_2(this, castToString(newValue)); - return; - case 2: - !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); - $set_14(this.details, newValue); - return; - case 3: - $setEModelElement(this, castTo(newValue, 147)); - return; - case 4: - !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); - $clear_13(this.contents); - !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); - $addAll_9(this.contents, castTo(newValue, 14)); - return; - case 5: - !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); - $clear_13(this.references); - !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); - $addAll_9(this.references, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_16(){ - return $clinit_EcorePackage$Literals() , EANNOTATION; -} -; -_.eUnset = function eUnset_15(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setSourceGen(this, null); - return; - case 2: - !this.details && (this.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this)); - this.details.delegateEList.clear_0(); - return; - case 3: - $setEModelElement(this, null); - return; - case 4: - !this.contents && (this.contents = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 4)); - $clear_13(this.contents); - return; - case 5: - !this.references && (this.references = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EObject_2_classLit, this, 5)); - $clear_13(this.references); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EANNOTATION:eClass), featureID)); -} -; -_.toString_0 = function toString_144(){ - return $toString_27(this); -} -; -_.source = null; -var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl', 510); -function $addUnique_7(this$static, index_0, object){ - castTo(this$static.delegateEList, 69).addUnique(index_0, object); -} - -function $basicAdd_1(this$static, object, notifications){ - return castTo(this$static.delegateEList, 69).basicAdd(object, notifications); -} - -function $basicRemove_1(this$static, object, notifications){ - return castTo(this$static.delegateEList, 69).basicRemove(object, notifications); -} - -function $set_14(this$static, value_0){ - var mapValue; - if (instanceOf(value_0, 83)) { - castTo(this$static.delegateEList, 76).unset(); - mapValue = castTo(value_0, 83); - $putAll_0(this$static, mapValue); - } - else { - castTo(this$static.delegateEList, 76).set_1(value_0); - } -} - -function EcoreEMap(entryEClass, entryClass, owner, featureID){ - this.initializeDelegateEList(); - this.entryClass = entryClass; - this.entryEClass = entryEClass; - this.delegateEList = new EcoreEMap$DelegateEObjectContainmentEList(this, entryClass, owner, featureID); -} - -defineClass(151, 705, $intern_148, EcoreEMap); -_.addUnique = function addUnique_9(index_0, object){ - $addUnique_7(this, index_0, castTo(object, 42)); -} -; -_.basicAdd = function basicAdd(object, notifications){ - return $basicAdd_1(this, castTo(object, 42), notifications); -} -; -_.basicGet = function basicGet_0(index_0){ - return castTo(castTo(this.delegateEList, 69).basicGet(index_0), 133); -} -; -_.basicIterator = function basicIterator_1(){ - return castTo(this.delegateEList, 69).basicIterator(); -} -; -_.basicListIterator = function basicListIterator_3(){ - return castTo(this.delegateEList, 69).basicListIterator(); -} -; -_.basicListIterator_0 = function basicListIterator_4(index_0){ - return castTo(this.delegateEList, 69).basicListIterator_0(index_0); -} -; -_.basicRemove = function basicRemove(object, notifications){ - return $basicRemove_1(this, object, notifications); -} -; -_.get_6 = function get_60(resolve){ - return castTo(this.delegateEList, 76).get_6(resolve); -} -; -_.initializeDelegateEList = function initializeDelegateEList_0(){ -} -; -_.isSet_0 = function isSet_2(){ - return castTo(this.delegateEList, 76).isSet_0(); -} -; -_.newEntry = function newEntry_1(hash, key, value_0){ - var entry; - entry = castTo($getEPackage(this.entryEClass).getEFactoryInstance().create_3(this.entryEClass), 133); - entry.setHash(hash); - entry.setKey(key); - entry.setValue(value_0); - return entry; -} -; -_.newList = function newList_0(){ - return new EcoreEMap$1(this); -} -; -_.set_1 = function set_30(value_0){ - $set_14(this, value_0); -} -; -_.unset = function unset_0(){ - castTo(this.delegateEList, 76).unset(); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap', 151); -function EAnnotationImpl$1($anonymous0, $anonymous1, $anonymous2){ - EcoreEMap.call(this, $anonymous0, $anonymous1, $anonymous2, 2); -} - -defineClass(158, 151, $intern_148, EAnnotationImpl$1); -_.ensureEntryDataExists = function ensureEntryDataExists_0(){ - var eList, entry, entry$iterator, hash, index_0, result; - if (this.entryData == null) { - result = initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEList_2_classLit, $intern_145, 63, 2 * this.size_0 + 1, 0, 1); - for (entry$iterator = this.delegateEList.iterator_0(); entry$iterator.cursor != entry$iterator.this$01_2.size_1();) { - entry = castTo(entry$iterator.doNext(), 133); - hash = entry.getHash(); - index_0 = (hash & $intern_0) % result.length; - eList = result[index_0]; - !eList && (eList = result[index_0] = new EcoreEMap$1(this)); - eList.add_2(entry); - } - this.entryData = result; - } -} -; -var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl/1', 158); -function $basicSetEGenericType(this$static, newEGenericType, msgs){ - var newEType, notification, oldEGenericType; - oldEGenericType = this$static.eGenericType; - this$static.eGenericType = newEGenericType; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 9, oldEGenericType, newEGenericType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - if (!newEGenericType) { - !!this$static.eType && (msgs = this$static.setEType(null, msgs)); - } - else { - newEType = newEGenericType.eRawType; - newEType != this$static.eType && (msgs = this$static.setEType(newEType, msgs)); - } - return msgs; -} - -function $basicUnsetEGenericType(this$static, msgs){ - msgs = this$static.setEType(null, msgs); - return $basicSetEGenericType(this$static, null, msgs); -} - -function $getEType(this$static){ - var oldEType; - if ((this$static.eFlags & 1) == 0 && !!this$static.eType && this$static.eType.eIsProxy()) { - oldEType = castTo(this$static.eType, 49); - this$static.eType = castTo($eResolveProxy(this$static, oldEType), 138); - this$static.eType != oldEType && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 8, oldEType, this$static.eType)); - } - return this$static.eType; -} - -function $setEGenericType(this$static, newEGenericType, msgs){ - var notification; - if (newEGenericType != this$static.eGenericType) { - !!this$static.eGenericType && (msgs = $eInverseRemove(this$static.eGenericType, this$static, -10, msgs)); - !!newEGenericType && (msgs = $eInverseAdd(newEGenericType, this$static, -10, msgs)); - msgs = $basicSetEGenericType(this$static, newEGenericType, msgs); - } - else if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 9, newEGenericType, newEGenericType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $setEType(this$static, newEType){ - var eGenericType, msgs, newEGenericType; - msgs = this$static.setEType(newEType, null); - newEGenericType = null; - if (newEType) { - newEGenericType = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(newEGenericType, this$static.eType); - } - msgs = $setEGenericType(this$static, newEGenericType, msgs); - !!msgs && msgs.dispatch_0(); -} - -function $setEType_0(this$static, newEType, msgs){ - var notification, oldEType; - oldEType = this$static.eType; - this$static.eType = newEType; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 8, oldEType, this$static.eType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $setLowerBound(this$static, newLowerBound){ - var oldLowerBound; - oldLowerBound = this$static.lowerBound; - this$static.lowerBound = newLowerBound; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 4, oldLowerBound, this$static.lowerBound)); -} - -function $setOrdered(this$static, newOrdered){ - var oldOrdered; - oldOrdered = (this$static.eFlags & 256) != 0; - newOrdered?(this$static.eFlags |= 256):(this$static.eFlags &= -257); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 2, oldOrdered, newOrdered)); -} - -function $setUnique_2(this$static, newUnique){ - var oldUnique; - oldUnique = (this$static.eFlags & 512) != 0; - newUnique?(this$static.eFlags |= 512):(this$static.eFlags &= -513); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 3, oldUnique, newUnique)); -} - -function $setUpperBound(this$static, newUpperBound){ - var oldUpperBound; - oldUpperBound = this$static.upperBound; - this$static.upperBound = newUpperBound; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 5, oldUpperBound, this$static.upperBound)); -} - -function $toString_28(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_21(this$static); - result = new StringBuffer_1($toString_21(this$static)); - result.string += ' (ordered: '; - $append_4(result, (this$static.eFlags & 256) != 0); - result.string += ', unique: '; - $append_4(result, (this$static.eFlags & 512) != 0); - result.string += ', lowerBound: '; - $append_1(result, this$static.lowerBound); - result.string += ', upperBound: '; - $append_1(result, this$static.upperBound); - result.string += ')'; - return result.string; -} - -function ETypedElementImpl(){ - this.eFlags |= 256; - this.eFlags |= 512; -} - -defineClass(284, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 472:1, 49:1, 97:1, 150:1, 284:1, 114:1, 115:1}); -_.eGet = function eGet_18(featureID, resolve, coreType){ - var eClass, lower; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , this.isMany()?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_13(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_17(featureID){ - var eClass, lower; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return this.isMany(); - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_16(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - this.setName(castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - this.setUpperBound(castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_17(){ - return $clinit_EcorePackage$Literals() , ETYPED_ELEMENT; -} -; -_.eUnset = function eUnset_16(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - this.setName(null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - this.setUpperBound(1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze_1(){ - $getEType(this); - this.eFlags |= 1; -} -; -_.getEType = function getEType(){ - return $getEType(this); -} -; -_.getUpperBound = function getUpperBound(){ - return this.upperBound; -} -; -_.isMany = function isMany(){ - var upper; - return upper = this.upperBound , upper > 1 || upper == -1; -} -; -_.isUnique = function isUnique_2(){ - return (this.eFlags & 512) != 0; -} -; -_.setEType = function setEType(newEType, msgs){ - return $setEType_0(this, newEType, msgs); -} -; -_.setUpperBound = function setUpperBound(newUpperBound){ - $setUpperBound(this, newUpperBound); -} -; -_.toString_0 = function toString_145(){ - return $toString_28(this); -} -; -_.lowerBound = 0; -_.upperBound = 1; -var Lorg_eclipse_emf_ecore_impl_ETypedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypedElementImpl', 284); -function $eBasicRemoveFromContainerFeature_6(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 17) { - return this$static.eContainer.eInverseRemove(this$static, 21, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getDefaultValue(this$static){ - var eDataType, ePackage, eType, factory, literal; - eType = $getEType(this$static); - literal = this$static.defaultValueLiteral; - if (literal == null && !!eType) { - return this$static.isMany()?null:eType.getDefaultValue(); - } - else if (instanceOf(eType, 148)) { - ePackage = eType.getEPackage(); - if (ePackage) { - factory = ePackage.getEFactoryInstance(); - if (factory != this$static.defaultValueFactory) { - eDataType = castTo(eType, 148); - if (eDataType.isSerializable()) { - try { - this$static.defaultValue = factory.createFromString(eDataType, literal); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 78)) { - this$static.defaultValue = null; - } - else - throw toJs($e0); - } - } - this$static.defaultValueFactory = factory; - } - } - return this$static.defaultValue; - } - return null; -} - -function $getEContainingClass(this$static){ - if (this$static.eFlags_0 >> 16 != 17) - return null; - return castTo(this$static.eContainer, 26); -} - -function $getFeatureMapEntryPrototype(this$static){ - var eOpposite; - if (!this$static.prototypeFeatureMapEntry) { - eOpposite = this$static.getEOpposite(); - eOpposite?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$static, this$static, null)):this$static.isContainment()?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this$static, null)):$getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this$static)) == 1?(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleContentFeatureMapEntry(this$static)):(this$static.prototypeFeatureMapEntry = new EStructuralFeatureImpl$SimpleFeatureMapEntry(this$static, null)); - } - return this$static.prototypeFeatureMapEntry; -} - -function $isFeatureMap(this$static){ - var eType; - if (this$static.cachedEType != this$static.eType) { - eType = $getEType(this$static); - this$static.cachedIsFeatureMap = !!eType && eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry'; - this$static.cachedEType = eType; - } - return this$static.cachedIsFeatureMap; -} - -function $setChangeable(this$static, newChangeable){ - var oldChangeable; - oldChangeable = (this$static.eFlags & $intern_137) != 0; - newChangeable?(this$static.eFlags |= $intern_137):(this$static.eFlags &= -1025); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 10, oldChangeable, newChangeable)); -} - -function $setDefaultValueLiteral(this$static, newDefaultValueLiteral){ - this$static.defaultValueFactory = null; - $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral); -} - -function $setDefaultValueLiteralGen(this$static, newDefaultValueLiteral){ - var oldDefaultValueLiteral; - oldDefaultValueLiteral = this$static.defaultValueLiteral; - this$static.defaultValueLiteral = newDefaultValueLiteral; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 13, oldDefaultValueLiteral, this$static.defaultValueLiteral)); -} - -function $setDerived(this$static, newDerived){ - var oldDerived; - oldDerived = (this$static.eFlags & $intern_17) != 0; - newDerived?(this$static.eFlags |= $intern_17):(this$static.eFlags &= -16385); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 16, oldDerived, newDerived)); -} - -function $setFeatureID(this$static, featureID){ - this$static.featureID = featureID; -} - -function $setName_0(this$static, newName){ - instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 4); - $setName(this$static, newName); -} - -function $setTransient(this$static, newTransient){ - var oldTransient; - oldTransient = (this$static.eFlags & $intern_61) != 0; - newTransient?(this$static.eFlags |= $intern_61):(this$static.eFlags &= -4097); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 12, oldTransient, newTransient)); -} - -function $setUnsettable(this$static, newUnsettable){ - var oldUnsettable; - oldUnsettable = (this$static.eFlags & $intern_149) != 0; - newUnsettable?(this$static.eFlags |= $intern_149):(this$static.eFlags &= -8193); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 15, oldUnsettable, newUnsettable)); -} - -function $setVolatile(this$static, newVolatile){ - var oldVolatile; - oldVolatile = (this$static.eFlags & $intern_150) != 0; - newVolatile?(this$static.eFlags |= $intern_150):(this$static.eFlags &= -2049); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 11, oldVolatile, newVolatile)); -} - -function $toString_29(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_28(this$static); - result = new StringBuffer_1($toString_28(this$static)); - result.string += ' (changeable: '; - $append_4(result, (this$static.eFlags & $intern_137) != 0); - result.string += ', volatile: '; - $append_4(result, (this$static.eFlags & $intern_150) != 0); - result.string += ', transient: '; - $append_4(result, (this$static.eFlags & $intern_61) != 0); - result.string += ', defaultValueLiteral: '; - $append_3(result, this$static.defaultValueLiteral); - result.string += ', unsettable: '; - $append_4(result, (this$static.eFlags & $intern_149) != 0); - result.string += ', derived: '; - $append_4(result, (this$static.eFlags & $intern_17) != 0); - result.string += ')'; - return result.string; -} - -function EStructuralFeatureImpl(){ - ETypedElementImpl.call(this); - this.featureID = -1; - this.defaultValue = null; - this.defaultValueFactory = null; - this.defaultValueLiteral = null; - this.eFlags |= $intern_137; -} - -defineClass(449, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_7(msgs){ - return $eBasicRemoveFromContainerFeature_6(this, msgs); -} -; -_.eGet = function eGet_19(featureID, resolve, coreType){ - var eClass, lower; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , this.isMany()?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; - case 11: - return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; - case 12: - return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; - case 13: - return this.defaultValueLiteral; - case 14: - return $getDefaultValue(this); - case 15: - return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; - case 16: - return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; - case 17: - return $getEContainingClass(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_12(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 17: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_6(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 17, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_14(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - case 17: - return $eBasicSetContainer(this, null, 17, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_18(featureID){ - var eClass, lower; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return this.isMany(); - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return (this.eFlags & $intern_137) == 0; - case 11: - return (this.eFlags & $intern_150) != 0; - case 12: - return (this.eFlags & $intern_61) != 0; - case 13: - return this.defaultValueLiteral != null; - case 14: - return $getDefaultValue(this) != null; - case 15: - return (this.eFlags & $intern_149) != 0; - case 16: - return (this.eFlags & $intern_17) != 0; - case 17: - return !!$getEContainingClass(this); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_17(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_0(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - this.setUpperBound(castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, $booleanValue(castToBoolean(newValue))); - return; - case 11: - $setVolatile(this, $booleanValue(castToBoolean(newValue))); - return; - case 12: - $setTransient(this, $booleanValue(castToBoolean(newValue))); - return; - case 13: - $setDefaultValueLiteral(this, castToString(newValue)); - return; - case 15: - $setUnsettable(this, $booleanValue(castToBoolean(newValue))); - return; - case 16: - $setDerived(this, $booleanValue(castToBoolean(newValue))); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_18(){ - return $clinit_EcorePackage$Literals() , ESTRUCTURAL_FEATURE; -} -; -_.eUnset = function eUnset_17(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - this.setUpperBound(1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, true); - return; - case 11: - $setVolatile(this, false); - return; - case 12: - $setTransient(this, false); - return; - case 13: - this.defaultValueFactory = null; - $setDefaultValueLiteralGen(this, null); - return; - case 15: - $setUnsettable(this, false); - return; - case 16: - $setDerived(this, false); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze_2(){ - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); - $getEType(this); - this.eFlags |= 1; -} -; -_.getContainerClass = function getContainerClass(){ - return this.containerClass; -} -; -_.getDefaultValue = function getDefaultValue(){ - return $getDefaultValue(this); -} -; -_.getEContainingClass = function getEContainingClass(){ - return $getEContainingClass(this); -} -; -_.getEOpposite = function getEOpposite(){ - return null; -} -; -_.getExtendedMetaData_0 = function getExtendedMetaData_0(){ - return this.eStructuralFeatureExtendedMetaData; -} -; -_.getFeatureID_0 = function getFeatureID_4(){ - return this.featureID; -} -; -_.getFeatureMapEntryPrototype = function getFeatureMapEntryPrototype(){ - return $getFeatureMapEntryPrototype(this); -} -; -_.getSettingDelegate = function getSettingDelegate(){ - var dataClass, defaultValue, eClass, eOpposite, eType, featureMapFeature, instanceClass, intrinsicDefaultValue, upper; - if (!this.settingDelegate) { - eClass = $getEContainingClass(this); - (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; - eOpposite = this.getEOpposite(); - !!eOpposite && $getFeatureCount($getEContainingClass(eOpposite)); - eType = $getEType(this); - instanceClass = eType.getInstanceClass(); - dataClass = !instanceClass?null:(instanceClass.modifiers & 1) != 0?instanceClass == Z_classLit?Ljava_lang_Boolean_2_classLit:instanceClass == I_classLit?Ljava_lang_Integer_2_classLit:instanceClass == F_classLit?Ljava_lang_Float_2_classLit:instanceClass == D_classLit?Ljava_lang_Double_2_classLit:instanceClass == J_classLit?Ljava_lang_Long_2_classLit:instanceClass == S_classLit?Ljava_lang_Short_2_classLit:instanceClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:instanceClass; - defaultValue = $getDefaultValue(this); - intrinsicDefaultValue = eType.getDefaultValue(); - getSettingDelegateFactory(this); - (this.eFlags & $intern_17) != 0 && (!!(featureMapFeature = $getMixedFeature(($clinit_ExtendedMetaData() , INSTANCE_11), eClass)) && featureMapFeature != this || !!(featureMapFeature = $getGroup($getExtendedMetaData_1(INSTANCE_11, this))))?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(this, featureMapFeature)):this.isMany()?this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(42, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(0, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(50, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(43, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(1, dataClass, this)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(44, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(2, this)):dataClass == Ljava_util_Map$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(41, Lorg_eclipse_emf_common_util_BasicEMap$Entry_2_classLit, this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(45, dataClass, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(3, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(46, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(4, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(47, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(5, dataClass, this, eOpposite)):!dataClass?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(48, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(6, this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(49, dataClass, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(7, dataClass, this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & 512) != 0?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(8, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(9, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(10, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(11, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(12, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(13, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(14, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(15, dataClass, this)):!eOpposite?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(16, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(17, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(18, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(19, dataClass, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(20, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(21, dataClass, this)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(22, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany(23, dataClass, this)):(upper = eOpposite.upperBound , upper > 1 || upper == -1?this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(24, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(25, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(26, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(27, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(28, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(29, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(30, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(31, dataClass, this, eOpposite)):this.isResolveProxies_0()?(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(32, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(33, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(34, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(35, dataClass, this, eOpposite)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(36, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(37, dataClass, this, eOpposite)):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_2(38, this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_0(39, dataClass, this, eOpposite))):this.isContainer()?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(castTo(eType, 26), this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(castTo(eType, 148), defaultValue, intrinsicDefaultValue, this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, this, ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , instanceClass == I_classLit?INT_NOTIFICATION_CREATOR:instanceClass == Z_classLit?BOOLEAN_NOTIFICATION_CREATOR:instanceClass == J_classLit?LONG_NOTIFICATION_CREATOR:instanceClass == F_classLit?FLOAT_NOTIFICATION_CREATOR:instanceClass == D_classLit?DOUBLE_NOTIFICATION_CREATOR:instanceClass == S_classLit?SHORT_NOTIFICATION_CREATOR:instanceClass == B_classLit?BYTE_NOTIFICATION_CREATOR:instanceClass == C_classLit?CHAR_NOTIFICATION_CREATOR:OBJECT_NOTIFICATION_CREATOR))):this.isContainment()?!eOpposite?(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(castTo(eType, 26), this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(castTo(eType, 26), this, eOpposite)):!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(castTo(eType, 26), this, eOpposite)); - } - return this.settingDelegate; -} -; -_.isChangeable = function isChangeable_0(){ - return (this.eFlags & $intern_137) != 0; -} -; -_.isContainer = function isContainer(){ - return false; -} -; -_.isContainment = function isContainment_0(){ - return false; -} -; -_.isDerived = function isDerived_0(){ - return (this.eFlags & $intern_17) != 0; -} -; -_.isFeatureMap_0 = function isFeatureMap_0(){ - return $isFeatureMap(this); -} -; -_.isResolveProxies_0 = function isResolveProxies_0(){ - return false; -} -; -_.isUnsettable = function isUnsettable_0(){ - return (this.eFlags & $intern_149) != 0; -} -; -_.setExtendedMetaData_0 = function setExtendedMetaData_0(eStructuralFeatureExtendedMetaData){ - this.eStructuralFeatureExtendedMetaData = eStructuralFeatureExtendedMetaData; -} -; -_.setName = function setName_0(newName){ - $setName_0(this, newName); -} -; -_.toString_0 = function toString_146(){ - return $toString_29(this); -} -; -_.cachedIsFeatureMap = false; -_.featureID = 0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl', 449); -function $basicGetEAttributeType(this$static){ - var eType; - if (!this$static.eAttributeType) { - eType = this$static.eType; - instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); - } - return this$static.eAttributeType; -} - -function $getEAttributeType(this$static){ - var eType; - if (!this$static.eAttributeType || (this$static.eFlags & 1) == 0 && this$static.eAttributeType.eIsProxy()) { - eType = $getEType(this$static); - instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); - } - return this$static.eAttributeType; -} - -function $isMany(this$static){ - var eType, upper; - switch (this$static.effectiveIsMany) { - case -1: - { - return true; - } - - case 0: - { - upper = this$static.upperBound; - if (upper > 1 || upper == -1) { - this$static.effectiveIsMany = -1; - return true; - } - else { - eType = $getEType(this$static); - if (!!eType && ($clinit_FeatureMapUtil() , eType.getInstanceClassName() == 'org.eclipse.emf.ecore.util.FeatureMap$Entry')) { - this$static.effectiveIsMany = -1; - return true; - } - else { - this$static.effectiveIsMany = 1; - return false; - } - } - } - - default:case 1: - { - return false; - } - - } -} - -function $setID(this$static, newID){ - var oldID; - oldID = (this$static.eFlags & $intern_134) != 0; - newID?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldID, newID)); -} - -function $setUpperBound_0(this$static, upperBound){ - this$static.effectiveIsMany = 0; - $setUpperBound(this$static, upperBound); -} - -function EAttributeImpl(){ - EStructuralFeatureImpl.call(this); -} - -defineClass(322, 449, {105:1, 92:1, 90:1, 34:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 322:1, 150:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EAttributeImpl); -_.eGet = function eGet_20(featureID, resolve, coreType){ - var eClass, lower; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , $isMany(this)?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; - case 11: - return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; - case 12: - return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; - case 13: - return this.defaultValueLiteral; - case 14: - return $getDefaultValue(this); - case 15: - return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; - case 16: - return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; - case 17: - return $getEContainingClass(this); - case 18: - return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; - case 19: - if (resolve) - return $getEAttributeType(this); - return $basicGetEAttributeType(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_19(featureID){ - var eClass, lower; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return $isMany(this); - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return (this.eFlags & $intern_137) == 0; - case 11: - return (this.eFlags & $intern_150) != 0; - case 12: - return (this.eFlags & $intern_61) != 0; - case 13: - return this.defaultValueLiteral != null; - case 14: - return $getDefaultValue(this) != null; - case 15: - return (this.eFlags & $intern_149) != 0; - case 16: - return (this.eFlags & $intern_17) != 0; - case 17: - return !!$getEContainingClass(this); - case 18: - return (this.eFlags & $intern_134) != 0; - case 19: - return !!$basicGetEAttributeType(this); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); -} -; -_.eSet = function eSet_18(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_0(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - $setUpperBound_0(this, castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, $booleanValue(castToBoolean(newValue))); - return; - case 11: - $setVolatile(this, $booleanValue(castToBoolean(newValue))); - return; - case 12: - $setTransient(this, $booleanValue(castToBoolean(newValue))); - return; - case 13: - $setDefaultValueLiteral(this, castToString(newValue)); - return; - case 15: - $setUnsettable(this, $booleanValue(castToBoolean(newValue))); - return; - case 16: - $setDerived(this, $booleanValue(castToBoolean(newValue))); - return; - case 18: - $setID(this, $booleanValue(castToBoolean(newValue))); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_19(){ - return $clinit_EcorePackage$Literals() , EATTRIBUTE; -} -; -_.eUnset = function eUnset_18(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - this.effectiveIsMany = 0; - $setUpperBound(this, 1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, true); - return; - case 11: - $setVolatile(this, false); - return; - case 12: - $setTransient(this, false); - return; - case 13: - this.defaultValueFactory = null; - $setDefaultValueLiteralGen(this, null); - return; - case 15: - $setUnsettable(this, false); - return; - case 16: - $setDerived(this, false); - return; - case 18: - $setID(this, false); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EATTRIBUTE:eClass), featureID)); -} -; -_.freeze = function freeze_3(){ - $getEAttributeType(this); - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); - $getEType(this); - this.eFlags |= 1; -} -; -_.isMany = function isMany_0(){ - return $isMany(this); -} -; -_.setEType = function setEType_0(newEType, msgs){ - this.effectiveIsMany = 0; - this.eAttributeType = null; - return $setEType_0(this, newEType, msgs); -} -; -_.setUpperBound = function setUpperBound_0(upperBound){ - $setUpperBound_0(this, upperBound); -} -; -_.toString_0 = function toString_147(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_29(this); - result = new StringBuffer_1($toString_29(this)); - result.string += ' (iD: '; - $append_4(result, (this.eFlags & $intern_134) != 0); - result.string += ')'; - return result.string; -} -; -_.effectiveIsMany = 0; -var Lorg_eclipse_emf_ecore_impl_EAttributeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAttributeImpl', 322); -function $basicGetEPackage(this$static){ - if (this$static.eFlags_0 >> 16 != 6) - return null; - return castTo(this$static.eContainer, 235); -} - -function $basicSetInstanceClassName(this$static, value_0){ - if (this$static.instanceClassName == null && this$static.generatedInstanceClassName != null) { - this$static.instanceClassName = this$static.generatedInstanceClassName; - this$static.generatedInstanceClassName = null; - } - $setInstanceClassNameGen(this$static, value_0 == null?null:(checkCriticalNotNull(value_0) , value_0)); - !!this$static.instanceClass && this$static.setInstanceClassGen(null); -} - -function $basicSetInstanceTypeName(this$static, newInstanceTypeName){ - var oldInstanceTypeName; - oldInstanceTypeName = this$static.instanceTypeName; - this$static.instanceTypeName = newInstanceTypeName; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); -} - -function $eBasicRemoveFromContainerFeature_7(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 6) { - return this$static.eContainer.eInverseRemove(this$static, 5, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getEPackage(this$static){ - var result; - if (this$static.ePackage) { - return this$static.ePackage; - } - else { - result = $getEPackageGen(this$static); - !!result && !result.eIsProxy() && (this$static.ePackage = result); - return result; - } -} - -function $getEPackageGen(this$static){ - if (this$static.eFlags_0 >> 16 != 6) - return null; - return castTo($eContainer(this$static), 235); -} - -function $getInstanceClass(this$static){ - var primitiveClass; - if (!this$static.instanceClass && (this$static.instanceClassName != null || this$static.generatedInstanceClassName != null)) { - primitiveClass = $getPrimitiveOrArrayClass(this$static); - if (primitiveClass) { - this$static.setInstanceClassGen(primitiveClass); - } - else { - try { - this$static.setInstanceClassGen(null); - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - } - return this$static.instanceClass; -} - -function $getPrimitiveOrArrayClass(this$static){ - var arrayIndex, className, componentClassName, result; - className = this$static.instanceClassName != null?this$static.instanceClassName:this$static.generatedInstanceClassName; - arrayIndex = $indexOf_1(className, fromCodePoint(91)); - if (arrayIndex != -1) { - componentClassName = className.substr(0, arrayIndex); - result = new StringBuffer; - do - result.string += '['; - while ((arrayIndex = $indexOf_0(className, 91, ++arrayIndex)) != -1); - if ($equals_5(componentClassName, 'boolean')) - result.string += 'Z'; - else if ($equals_5(componentClassName, 'byte')) - result.string += 'B'; - else if ($equals_5(componentClassName, 'char')) - result.string += 'C'; - else if ($equals_5(componentClassName, 'double')) - result.string += 'D'; - else if ($equals_5(componentClassName, 'float')) - result.string += 'F'; - else if ($equals_5(componentClassName, 'int')) - result.string += 'I'; - else if ($equals_5(componentClassName, 'long')) - result.string += 'J'; - else if ($equals_5(componentClassName, 'short')) - result.string += 'S'; - else { - result.string += 'L'; - result.string += '' + componentClassName; - result.string += ';'; - } - try { - return null; - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - else if ($indexOf_1(className, fromCodePoint(46)) == -1) { - if ($equals_5(className, 'boolean')) - return Z_classLit; - else if ($equals_5(className, 'byte')) - return B_classLit; - else if ($equals_5(className, 'char')) - return C_classLit; - else if ($equals_5(className, 'double')) - return D_classLit; - else if ($equals_5(className, 'float')) - return F_classLit; - else if ($equals_5(className, 'int')) - return I_classLit; - else if ($equals_5(className, 'long')) - return J_classLit; - else if ($equals_5(className, 'short')) - return S_classLit; - } - return null; -} - -function $isInstance(this$static, object){ - var helper, instanceClass; - if (object != null) { - instanceClass = $getInstanceClass(this$static); - if (instanceClass) { - if ((instanceClass.modifiers & 1) != 0) { - if (instanceClass == Z_classLit) { - return instanceOfBoolean(object); - } - else if (instanceClass == I_classLit) { - return instanceOf(object, 19); - } - else if (instanceClass == F_classLit) { - return instanceOf(object, 155); - } - else if (instanceClass == B_classLit) { - return instanceOf(object, 217); - } - else if (instanceClass == C_classLit) { - return instanceOf(object, 172); - } - else if (instanceClass == D_classLit) { - return instanceOfDouble(object); - } - else if (instanceClass == S_classLit) { - return instanceOf(object, 184); - } - else if (instanceClass == J_classLit) { - return instanceOf(object, 162); - } - } - else { - return $clinit_Reflect() , helper = castTo($get_10(HELPER_REGISTRY, instanceClass), 55) , !helper || helper.isInstance(object); - } - } - else if (instanceOf(object, 56)) { - return this$static.dynamicIsInstance(castTo(object, 56)); - } - } - return false; -} - -function $setGeneratedInstanceClass(this$static, isGenerated){ - if (isGenerated) { - if (this$static.generatedInstanceClassName == null) { - this$static.generatedInstanceClassName = this$static.instanceClassName; - this$static.instanceClassName = null; - } - } - else if (this$static.generatedInstanceClassName != null) { - this$static.instanceClassName = this$static.generatedInstanceClassName; - this$static.generatedInstanceClassName = null; - } -} - -function $setInstanceClass(this$static, value_0){ - var component, indices, name_0; - if (!value_0) { - $setInstanceClassNameGen(this$static, null); - $basicSetInstanceTypeName(this$static, null); - } - else if ((value_0.modifiers & 4) != 0) { - indices = '[]'; - for (component = value_0.componentType;; component = component.componentType) { - if ((component.modifiers & 4) == 0) { - name_0 = $intern(($ensureNamesAreInitialized(component) , component.typeName + indices)); - $setInstanceClassNameGen(this$static, name_0); - $basicSetInstanceTypeName(this$static, name_0); - break; - } - indices += '[]'; - } - } - else { - name_0 = $intern(($ensureNamesAreInitialized(value_0) , value_0.typeName)); - $setInstanceClassNameGen(this$static, name_0); - $basicSetInstanceTypeName(this$static, name_0); - } - this$static.setInstanceClassGen(value_0); -} - -function $setInstanceClassName(this$static, value_0){ - $basicSetInstanceClassName(this$static, value_0); - $basicSetInstanceTypeName(this$static, this$static.instanceClassName); -} - -function $setInstanceClassNameGen(this$static, newInstanceClassName){ - var oldInstanceClassName; - oldInstanceClassName = this$static.instanceClassName; - this$static.instanceClassName = newInstanceClassName; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 2, oldInstanceClassName, this$static.instanceClassName)); -} - -function $setInstanceTypeName(this$static, newInstanceTypeName){ - var end, index_0, newInstanceClassName, oldInstanceTypeName; - oldInstanceTypeName = this$static.instanceTypeName; - if (newInstanceTypeName == null) { - this$static.instanceTypeName = null; - $basicSetInstanceClassName(this$static, null); - } - else { - this$static.instanceTypeName = (checkCriticalNotNull(newInstanceTypeName) , newInstanceTypeName); - index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(60)); - if (index_0 != -1) { - newInstanceClassName = newInstanceTypeName.substr(0, index_0); - $indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1 && !$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short') && (newInstanceClassName = 'java.lang.Object'); - end = $lastIndexOf(newInstanceTypeName, fromCodePoint(62)); - end != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(end + 1)); - $basicSetInstanceClassName(this$static, newInstanceClassName); - } - else { - newInstanceClassName = newInstanceTypeName; - if ($indexOf_1(newInstanceTypeName, fromCodePoint(46)) == -1) { - index_0 = $indexOf_1(newInstanceTypeName, fromCodePoint(91)); - index_0 != -1 && (newInstanceClassName = newInstanceTypeName.substr(0, index_0)); - if (!$equals_5(newInstanceClassName, 'boolean') && !$equals_5(newInstanceClassName, 'byte') && !$equals_5(newInstanceClassName, 'char') && !$equals_5(newInstanceClassName, 'double') && !$equals_5(newInstanceClassName, 'float') && !$equals_5(newInstanceClassName, 'int') && !$equals_5(newInstanceClassName, 'long') && !$equals_5(newInstanceClassName, 'short')) { - newInstanceClassName = 'java.lang.Object'; - index_0 != -1 && (newInstanceClassName += '' + newInstanceTypeName.substr(index_0)); - } - else { - newInstanceClassName = newInstanceTypeName; - } - } - $basicSetInstanceClassName(this$static, newInstanceClassName); - newInstanceClassName == newInstanceTypeName && (this$static.instanceTypeName = this$static.instanceClassName); - } - } - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 5, oldInstanceTypeName, newInstanceTypeName)); -} - -function $setName_1(this$static, newName){ - instanceOf(this$static.eContainer, 179) && (castTo(this$static.eContainer, 179).eNameToEClassifierMap = null); - $setName(this$static, newName); -} - -function $toString_30(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_21(this$static); - result = new StringBuffer_1($toString_21(this$static)); - result.string += ' (instanceClassName: '; - $append_3(result, this$static.instanceClassName); - result.string += ')'; - return result.string; -} - -defineClass(351, 438, {105:1, 92:1, 90:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}); -_.dynamicIsInstance = function dynamicIsInstance(eObject){ - return eObject.eClass_0() == this; -} -; -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_8(msgs){ - return $eBasicRemoveFromContainerFeature_7(this, msgs); -} -; -_.eBasicSetContainer = function eBasicSetContainer_5(newContainer, newContainerFeatureID){ - this.ePackage = null; - this.eFlags_0 = newContainerFeatureID << 16 | this.eFlags_0 & 255; - this.eContainer = newContainer; -} -; -_.eGet = function eGet_21(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return this.getDefaultValue(); - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_13(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 6, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_15(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 6: - return $eBasicSetContainer(this, null, 6, msgs); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_20(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return this.getDefaultValue() != null; - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_19(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_20(){ - return $clinit_EcorePackage$Literals() , ECLASSIFIER; -} -; -_.eUnset = function eUnset_19(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.getClassifierID = function getClassifierID(){ - var ePackage; - return this.metaObjectID == -1 && (this.metaObjectID = (ePackage = $getEPackage(this) , ePackage?$indexOf_6(ePackage.getEClassifiers(), this):-1)) , this.metaObjectID; -} -; -_.getDefaultValue = function getDefaultValue_0(){ - return null; -} -; -_.getEPackage = function getEPackage(){ - return $getEPackage(this); -} -; -_.getExtendedMetaData_1 = function getExtendedMetaData_1(){ - return this.eClassifierExtendedMetaData; -} -; -_.getInstanceClass = function getInstanceClass(){ - return $getInstanceClass(this); -} -; -_.getInstanceClassName = function getInstanceClassName(){ - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; -} -; -_.getInstanceTypeName = function getInstanceTypeName(){ - return this.instanceTypeName; -} -; -_.isInstance = function isInstance_0(object){ - return $isInstance(this, object); -} -; -_.setExtendedMetaData_1 = function setExtendedMetaData_1(eClassifierExtendedMetaData){ - this.eClassifierExtendedMetaData = eClassifierExtendedMetaData; -} -; -_.setGeneratedInstanceClass = function setGeneratedInstanceClass(isGenerated){ - $setGeneratedInstanceClass(this, isGenerated); -} -; -_.setInstanceClassGen = function setInstanceClassGen(newInstanceClass){ - this.instanceClass = newInstanceClass; -} -; -_.setName = function setName_1(newName){ - $setName_1(this, newName); -} -; -_.toString_0 = function toString_148(){ - return $toString_30(this); -} -; -_.instanceClass = null; -_.instanceClassName = null; -_.metaObjectID = -1; -var Lorg_eclipse_emf_ecore_impl_EClassifierImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassifierImpl', 351); -function $clinit_EClassImpl(){ - $clinit_EClassImpl = emptyMethod; - COMPUTATION_IN_PROGRESS = new EClassImpl$MyHashSet; - NO_EALL_STRUCTURE_FEATURES_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, []); - NO_EALL_OPERATIONS_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, 1), $intern_152, 59, 0, []); -} - -function $getEAllAttributes(this$static){ - var attributes, computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, result; - if (!this$static.eAllAttributes) { - this$static.eIDAttribute = null; - result = new EClassImpl$2(this$static); - attributes = new EClassImpl$3; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllAttributes(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { - eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); - instanceOf(eStructuralFeature, 322) && $add_21(attributes, castTo(eStructuralFeature, 34)); - } - $shrink_0(attributes); - this$static.eAttributes = new EClassImpl$4(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 7), 18) , attributes.size_0), attributes.data_0); - $addAll_9(result, this$static.eAttributes); - $shrink_0(result); - this$static.eAllAttributes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -2; - } - return this$static.eAllAttributes; -} - -function $getEAllContainments(this$static){ - var eReference, eReference$iterator, result; - if (!this$static.eAllContainments) { - result = new EClassImpl$7; - for (eReference$iterator = new AbstractEList$NonResolvingEIterator($getEAllReferences(this$static)); eReference$iterator.cursor != eReference$iterator.this$01_2.size_1();) { - eReference = castTo($doNext_0(eReference$iterator), 18); - (eReference.eFlags & $intern_134) != 0 && $add_21(result, eReference); - } - $shrink_0(result); - this$static.eAllContainments = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 8), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -9; - } - return this$static.eAllContainments; -} - -function $getEAllGenericSuperTypes(this$static){ - var computationInProgress, eGenericSuperType, eGenericSuperType$iterator, eSuperType, old, result; - if (!this$static.eAllGenericSuperTypes) { - result = new EClassImpl$1EGenericSuperTypeEList; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eGenericSuperType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this$static)); eGenericSuperType$iterator.cursor != eGenericSuperType$iterator.this$01_2.size_1();) { - eGenericSuperType = castTo($doNext(eGenericSuperType$iterator), 87); - eSuperType = $getERawType(eGenericSuperType); - instanceOf(eSuperType, 88) && $addAll_9(result, $getEAllGenericSuperTypes(castTo(eSuperType, 26))); - $add_21(result, eGenericSuperType); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - $eliminateEquivalentDuplicates(result); - $shrink_0(result); - this$static.eAllGenericSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 15), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -33; - } - return this$static.eAllGenericSuperTypes; -} - -function $getEAllOperations(this$static){ - var computationInProgress, eSuperType, eSuperType$iterator, i, old, operationID, result; - if (!this$static.eAllOperations) { - result = new EClassImpl$6; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllOperations(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - operationID = result.size_0; - for (i = (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , new AbstractEList$EIterator(this$static.eOperations)); i.cursor != i.this$01_2.size_1(); ++operationID) { - castTo($doNext(i), 399); - } - $addAll_9(result, (!this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)) , this$static.eOperations)); - $shrink_0(result); - this$static.eAllOperations = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 9), 18) , result.size_0), result.data_0); - this$static.eAllOperationsData = castTo(result.data_0, 673); - this$static.eAllOperationsData == null && (this$static.eAllOperationsData = NO_EALL_OPERATIONS_DATA); - $getESuperAdapter(this$static).modifiedState &= -17; - } - return this$static.eAllOperations; -} - -function $getEAllReferences(this$static){ - var computationInProgress, eStructuralFeature, eStructuralFeature$iterator, eSuperType, eSuperType$iterator, old, references, result; - if (!this$static.eAllReferences) { - result = new EClassImpl$1ReferenceList; - references = new EClassImpl$1ReferenceList; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllReferences(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - for (eStructuralFeature$iterator = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { - eStructuralFeature = castTo($doNext(eStructuralFeature$iterator), 170); - instanceOf(eStructuralFeature, 99) && $add_21(references, castTo(eStructuralFeature, 18)); - } - $shrink_0(references); - this$static.eReferences = new EClassImpl$5(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 6), 18) , references.size_0), references.data_0); - $addAll_9(result, this$static.eReferences); - $shrink_0(result); - this$static.eAllReferences = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -3; - } - return this$static.eAllReferences; -} - -function $getEAllStructuralFeatures(this$static){ - var computationInProgress, eSuperType, eSuperType$iterator, featureID, i, old, result; - if (!this$static.eAllStructuralFeatures) { - result = new EClassImpl$1EStructuralFeatureUniqueEList; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - $addAll_9(result, $getEAllStructuralFeatures(eSuperType)); - } - computationInProgress.map_0.remove_0(this$static) != null; - computationInProgress.map_0.size_1() == 0 && undefined; - } - featureID = result.size_0; - for (i = (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , new AbstractEList$EIterator(this$static.eStructuralFeatures)); i.cursor != i.this$01_2.size_1(); ++featureID) { - $setFeatureID(castTo($doNext(i), 449), featureID); - } - $addAll_9(result, (!this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)) , this$static.eStructuralFeatures)); - $shrink_0(result); - this$static.eAllStructuralFeatures = new EClassImpl$1EAllStructuralFeaturesList(this$static, result); - this$static.eAllStructuralFeaturesData = castTo(result.data_0, 247); - this$static.eAllStructuralFeaturesData == null && (this$static.eAllStructuralFeaturesData = NO_EALL_STRUCTURE_FEATURES_DATA); - this$static.eNameToFeatureMap = null; - $getESuperAdapter(this$static).modifiedState &= -5; - } - return this$static.eAllStructuralFeatures; -} - -function $getEAllSuperTypes(this$static){ - var computationInProgress, eSuperType, eSuperType$iterator, higherSupers, old, result; - if (!this$static.eAllSuperTypes) { - result = new EClassImpl$9; - computationInProgress = COMPUTATION_IN_PROGRESS; - old = computationInProgress.map_0.put(this$static, computationInProgress); - if (old == null) { - for (eSuperType$iterator = new AbstractEList$EIterator($getESuperTypes(this$static)); eSuperType$iterator.cursor != eSuperType$iterator.this$01_2.size_1();) { - eSuperType = castTo($doNext(eSuperType$iterator), 26); - higherSupers = $getEAllSuperTypes(eSuperType); - $addAll_9(result, higherSupers); - $add_21(result, eSuperType); - } - computationInProgress.map_0.remove_0(this$static) != null; - } - $shrink_0(result); - this$static.eAllSuperTypes = new EcoreEList$UnmodifiableEList$FastCompare((castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 11), 18) , result.size_0), result.data_0); - $getESuperAdapter(this$static).modifiedState &= -33; - } - return this$static.eAllSuperTypes; -} - -function $getEGenericSuperTypes(this$static){ - if (!this$static.eGenericSuperTypes) { - $getESuperAdapter(this$static); - this$static.eGenericSuperTypes = new EClassImpl$1(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); - $getESuperTypes(this$static); - } - return this$static.eGenericSuperTypes; -} - -function $getEOperations(this$static){ - !this$static.eOperations && (this$static.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this$static, 11, 10)); - return this$static.eOperations; -} - -function $getEStructuralFeature(this$static, featureID){ - var eAllStructuralFeaturesData; - eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); - return featureID >= 0 && featureID < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[featureID]:null; -} - -function $getEStructuralFeature_0(this$static, name_0){ - var duplicate, eStructuralFeature, eStructuralFeature$iterator, key, result; - (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; - if (!this$static.eNameToFeatureMap) { - result = new HashMap_0((3 * this$static.eAllStructuralFeatures.size_0 / 2 | 0) + 1); - for (eStructuralFeature$iterator = new AbstractEList$NonResolvingEIterator(this$static.eAllStructuralFeatures); eStructuralFeature$iterator.cursor != eStructuralFeature$iterator.this$01_2.size_1();) { - eStructuralFeature = castTo($doNext_0(eStructuralFeature$iterator), 170); - key = eStructuralFeature.getName(); - duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eStructuralFeature):$put_10(result.stringMap, key, eStructuralFeature), 170); - !!duplicate && (key == null?$put_9(result.hashCodeMap, null, duplicate):$put_10(result.stringMap, key, duplicate)); - } - this$static.eNameToFeatureMap = result; - } - return castTo($getStringValue(this$static.eNameToFeatureMap, name_0), 170); -} - -function $getEStructuralFeatures(this$static){ - !this$static.eStructuralFeatures && (this$static.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this$static, 21, 17)); - return this$static.eStructuralFeatures; -} - -function $getESuperAdapter(this$static){ - if (!this$static.eSuperAdapter) { - this$static.eSuperAdapter = new EClassImpl$10(this$static); - $add_20(new MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$static), 0, this$static.eSuperAdapter); - } - return this$static.eSuperAdapter; -} - -function $getESuperTypes(this$static){ - if (!this$static.eSuperTypes) { - $getESuperAdapter(this$static); - this$static.eSuperTypes = new EClassImpl$8(this$static, this$static); - } - return this$static.eSuperTypes; -} - -function $getFeatureCount(this$static){ - return (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData).length; -} - -function $getFeatureID(this$static, feature){ - var eAllStructuralFeaturesData, index_0, last; - eAllStructuralFeaturesData = (this$static.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(this$static) , this$static.eAllStructuralFeaturesData); - index_0 = feature.getFeatureID_0(); - if (index_0 != -1) { - for (last = eAllStructuralFeaturesData.length; index_0 < last; ++index_0) { - if (eAllStructuralFeaturesData[index_0] == feature) { - return index_0; - } - } - } - return -1; -} - -function $isSetESuperTypes(this$static){ - return !!this$static.eSuperTypes && $getEGenericSuperTypes(this$static.eSuperTypes.this$01).size_0 != 0 && !(!!this$static.eGenericSuperTypes && $isSet(this$static.eGenericSuperTypes)); -} - -function $isSuperTypeOf(this$static, someClass){ - return someClass == this$static || $contains_10($getEAllSuperTypes(someClass), this$static); -} - -function $setAbstract(this$static, newAbstract){ - var oldAbstract; - oldAbstract = (this$static.eFlags & 256) != 0; - newAbstract?(this$static.eFlags |= 256):(this$static.eFlags &= -257); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldAbstract, newAbstract)); -} - -function $setInterface(this$static, newInterface){ - var oldInterface; - oldInterface = (this$static.eFlags & 512) != 0; - newInterface?(this$static.eFlags |= 512):(this$static.eFlags &= -513); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 9, oldInterface, newInterface)); -} - -function $toString_31(this$static){ - var result; - if ((this$static.eFlags_0 & 64) != 0) - return $toString_30(this$static); - result = new StringBuffer_1($toString_30(this$static)); - result.string += ' (abstract: '; - $append_4(result, (this$static.eFlags & 256) != 0); - result.string += ', interface: '; - $append_4(result, (this$static.eFlags & 512) != 0); - result.string += ')'; - return result.string; -} - -function EClassImpl(){ - $clinit_EClassImpl(); -} - -defineClass(88, 351, {105:1, 92:1, 90:1, 26:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 88:1, 351:1, 150:1, 473:1, 114:1, 115:1, 676:1}, EClassImpl); -_.dynamicIsInstance = function dynamicIsInstance_0(eObject){ - return $isSuperTypeOf(this, eObject.eClass_0()); -} -; -_.eGet = function eGet_22(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return null; - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - case 8: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 9: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 10: - return $getESuperTypes(this); - case 11: - return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , this.eOperations; - case 12: - return $getEAllAttributes(this); - case 13: - return $getEAllReferences(this); - case 14: - return $getEAllReferences(this) , this.eReferences; - case 15: - return $getEAllAttributes(this) , this.eAttributes; - case 16: - return $getEAllContainments(this); - case 17: - return $getEAllOperations(this); - case 18: - return $getEAllStructuralFeatures(this); - case 19: - return $getEAllSuperTypes(this); - case 20: - return $getEAllAttributes(this) , this.eIDAttribute; - case 21: - return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , this.eStructuralFeatures; - case 22: - return $getEGenericSuperTypes(this); - case 23: - return $getEAllGenericSuperTypes(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_14(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 6, msgs); - case 11: - return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicAdd_0(this.eOperations, otherEnd, msgs); - case 21: - return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicAdd_0(this.eStructuralFeatures, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_16(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 6: - return $eBasicSetContainer(this, null, 6, msgs); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - case 11: - return !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)) , $basicRemove_0(this.eOperations, otherEnd, msgs); - case 21: - return !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)) , $basicRemove_0(this.eStructuralFeatures, otherEnd, msgs); - case 22: - return $basicRemove_0($getEGenericSuperTypes(this), otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_21(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return false; - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 8: - return (this.eFlags & 256) != 0; - case 9: - return (this.eFlags & 512) != 0; - case 10: - return !!this.eSuperTypes && $getEGenericSuperTypes(this.eSuperTypes.this$01).size_0 != 0 && !(!!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes)); - case 11: - return !!this.eOperations && this.eOperations.size_0 != 0; - case 12: - return $getEAllAttributes(this).size_0 != 0; - case 13: - return $getEAllReferences(this).size_0 != 0; - case 14: - return $getEAllReferences(this) , this.eReferences.size_0 != 0; - case 15: - return $getEAllAttributes(this) , this.eAttributes.size_0 != 0; - case 16: - return $getEAllContainments(this).size_0 != 0; - case 17: - return $getEAllOperations(this).size_0 != 0; - case 18: - return $getEAllStructuralFeatures(this).size_0 != 0; - case 19: - return $getEAllSuperTypes(this).size_0 != 0; - case 20: - return $getEAllAttributes(this) , !!this.eIDAttribute; - case 21: - return !!this.eStructuralFeatures && this.eStructuralFeatures.size_0 != 0; - case 22: - return !!this.eGenericSuperTypes && $isSet(this.eGenericSuperTypes); - case 23: - return $getEAllGenericSuperTypes(this).size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); -} -; -_.eObjectForURIFragmentSegment = function eObjectForURIFragmentSegment_2(uriFragmentSegment){ - var result; - result = this.eAllStructuralFeaturesData == null || !!this.eOperations && this.eOperations.size_0 != 0?null:$getEStructuralFeature_0(this, uriFragmentSegment); - return result?result:$eObjectForURIFragmentSegment_0(this, uriFragmentSegment); -} -; -_.eSet = function eSet_20(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 8: - $setAbstract(this, $booleanValue(castToBoolean(newValue))); - return; - case 9: - $setInterface(this, $booleanValue(castToBoolean(newValue))); - return; - case 10: - $clear_12($getESuperTypes(this)); - $addAll_9($getESuperTypes(this), castTo(newValue, 14)); - return; - case 11: - !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); - $clear_13(this.eOperations); - !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); - $addAll_9(this.eOperations, castTo(newValue, 14)); - return; - case 21: - !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); - $clear_13(this.eStructuralFeatures); - !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); - $addAll_9(this.eStructuralFeatures, castTo(newValue, 14)); - return; - case 22: - $clear_13($getEGenericSuperTypes(this)); - $addAll_9($getEGenericSuperTypes(this), castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_21(){ - return $clinit_EcorePackage$Literals() , ECLASS; -} -; -_.eUnset = function eUnset_20(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - case 8: - $setAbstract(this, false); - return; - case 9: - $setInterface(this, false); - return; - case 10: - !!this.eSuperTypes && $clear_12(this.eSuperTypes); - return; - case 11: - !this.eOperations && (this.eOperations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EOperation_2_classLit, this, 11, 10)); - $clear_13(this.eOperations); - return; - case 21: - !this.eStructuralFeatures && (this.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, this, 21, 17)); - $clear_13(this.eStructuralFeatures); - return; - case 22: - !!this.eGenericSuperTypes && $clear_13(this.eGenericSuperTypes); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ECLASS:eClass), featureID)); -} -; -_.freeze = function freeze_4(){ - var i, size_0; - $getEAllAttributes(this); - $getEAllReferences(this); - $getEAllContainments(this); - $getEAllOperations(this); - $getEAllStructuralFeatures(this); - $getEAllSuperTypes(this); - $getEAllGenericSuperTypes(this); - $clear_11($getSubclasses($getESuperAdapter(this))); - if (this.eStructuralFeatures) { - for (i = 0 , size_0 = this.eStructuralFeatures.size_0; i < size_0; ++i) { - $freeze($get_20(this.eStructuralFeatures, i)); - } - } - if (this.eOperations) { - for (i = 0 , size_0 = this.eOperations.size_0; i < size_0; ++i) { - $freeze($get_20(this.eOperations, i)); - } - } - $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); - this.eFlags |= 1; -} -; -_.toString_0 = function toString_149(){ - return $toString_31(this); -} -; -_.eAttributes = null; -_.eReferences = null; -var COMPUTATION_IN_PROGRESS, NO_EALL_OPERATIONS_DATA, NO_EALL_STRUCTURE_FEATURES_DATA; -var Lorg_eclipse_emf_ecore_impl_EClassImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl', 88); -defineClass(1994, 1993, $intern_153); -_.addAllUnique = function addAllUnique_9(index_0, collection){ - return $addAllUnique_3(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_10(collection){ - return $addAllUnique_3(this, this.size_0, collection); -} -; -_.addUnique = function addUnique_10(index_0, object){ - $addUnique_5(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_11(object){ - $addUnique_6(this, object); -} -; -_.basicAdd = function basicAdd_0(object, notifications){ - return $basicAdd_0(this, object, notifications); -} -; -_.basicGet = function basicGet_1(index_0){ - return $basicGet(this, index_0); -} -; -_.basicRemove = function basicRemove_0(object, notifications){ - return $basicRemove_0(this, object, notifications); -} -; -_.setUnique = function setUnique_4(index_0, object){ - return $setUnique_1(this, index_0, object); -} -; -_.basicIterator = function basicIterator_2(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator_5(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_6(index_0){ - return $basicListIterator(this, index_0); -} -; -var Lorg_eclipse_emf_ecore_util_NotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'NotifyingInternalEListImpl', 1994); -function $contains_11(this$static, object){ - var containedEObject, eContainer, eObject, i, opposite, result, result0; - if (this$static.isEObject()) { - if (this$static.size_0 > 4) { - if (this$static.isInstance(object)) { - if (this$static.isContainment()) { - eObject = castTo(object, 49); - eContainer = eObject.eContainer_0(); - result0 = eContainer == this$static.owner && (this$static.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), this$static.getInverseFeatureClass()) == this$static.getInverseFeatureID():-1 - eObject.eContainerFeatureID_0() == this$static.getFeatureID_0()); - if (this$static.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { - for (i = 0; i < this$static.size_0; ++i) { - containedEObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); - if (maskUndefined(containedEObject) === maskUndefined(object)) { - return true; - } - } - } - return result0; - } - else if (this$static.hasNavigableInverse() && !this$static.hasManyInverse()) { - opposite = castTo(object, 56).eGet_0($getEOpposite(castTo(this$static.getEStructuralFeature(), 18))); - if (maskUndefined(opposite) === maskUndefined(this$static.owner)) { - return true; - } - else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { - return false; - } - } - } - else { - return false; - } - } - result = $contains_10(this$static, object); - if (this$static.hasProxies() && !result) { - for (i = 0; i < this$static.size_0; ++i) { - eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return true; - } - } - } - return result; - } - else { - return $contains_10(this$static, object); - } -} - -function $createNotification(this$static, eventType, oldObject, newObject, index_0, wasSet){ - return new ENotificationImpl_3(this$static.owner, eventType, this$static.getFeatureID_0(), oldObject, newObject, index_0, wasSet); -} - -function $dispatchNotification(this$static, notification){ - $eNotify(this$static.owner, notification); -} - -function $indexOf_6(this$static, object){ - var eObject, i, index_0; - index_0 = $indexOf_4(this$static, object); - if (index_0 >= 0) - return index_0; - if (this$static.isEObject()) { - for (i = 0; i < this$static.size_0; ++i) { - eObject = this$static.resolveProxy(castTo(this$static.data_0[i], 56)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return i; - } - } - } - return -1; -} - -function $resolve(this$static, index_0, eObject){ - var element, notificationChain, oldElement, oldObject, resolved, resolvedElement; - resolved = this$static.resolveProxy(eObject); - if (resolved != eObject) { - oldObject = this$static.data_0[index_0]; - resolvedElement = resolved; - $assign(this$static, index_0, this$static.validate(index_0, resolvedElement)); - oldElement = oldObject; - this$static.didSet(index_0, resolvedElement, oldElement); - if (this$static.isContainment()) { - element = eObject; - notificationChain = this$static.inverseRemove(element, null); - !castTo(resolved, 49).eInternalContainer() && (notificationChain = this$static.inverseAdd(resolvedElement, notificationChain)); - !!notificationChain && notificationChain.dispatch_0(); - } - $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, this$static.createNotification(9, eObject, resolved, index_0, false)); - return resolved; - } - else { - return eObject; - } -} - -function $set_15(this$static, newValue){ - $clear_13(this$static); - this$static.addAll(castTo(newValue, 15)); -} - -function $toArray_11(this$static){ - var i; - if (this$static.hasProxies()) { - for (i = this$static.size_0 - 1; i >= 0; --i) { - $get_20(this$static, i); - } - } - return $toArray_9(this$static); -} - -function $validate_0(this$static, index_0, object){ - $validate(this$static, object); - if (!this$static.hasInstanceClass() && object != null && !this$static.isInstance(object)) { - throw toJs(new ArrayStoreException); - } - return object; -} - -function EcoreEList(dataClass, owner){ - this.dataClass = dataClass; - this.owner = owner; -} - -defineClass(622, 1994, $intern_154); -_.contains = function contains_63(object){ - return $contains_11(this, object); -} -; -_.createNotification = function createNotification_1(eventType, oldObject, newObject, index_0, wasSet){ - return $createNotification(this, eventType, oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification_1(notification){ - $dispatchNotification(this, notification); -} -; -_.get_6 = function get_61(resolve){ - return this; -} -; -_.getEStructuralFeature = function getEStructuralFeature_0(){ - return $getEStructuralFeature(this.owner.eClass_0(), this.getFeatureID_0()); -} -; -_.getFeature = function getFeature_4(){ - return this.getEStructuralFeature(); -} -; -_.getFeatureID_0 = function getFeatureID_5(){ - return $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()); -} -; -_.getInverseFeatureClass = function getInverseFeatureClass(){ - return castTo(this.getEStructuralFeature().getEType(), 26).getInstanceClass(); -} -; -_.getInverseFeatureID = function getInverseFeatureID(){ - return $getEOpposite(castTo(this.getEStructuralFeature(), 18)).featureID; -} -; -_.getNotifier = function getNotifier_4(){ - return this.owner; -} -; -_.hasInstanceClass = function hasInstanceClass(){ - return true; -} -; -_.hasManyInverse = function hasManyInverse(){ - return false; -} -; -_.hasNavigableInverse = function hasNavigableInverse(){ - return false; -} -; -_.hasProxies = function hasProxies(){ - return false; -} -; -_.indexOf_0 = function indexOf_15(object){ - return $indexOf_6(this, object); -} -; -_.inverseAdd = function inverseAdd_1(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.inverseRemove = function inverseRemove_1(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, this.getInverseFeatureID(), this.getInverseFeatureClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo(this.getEStructuralFeature(), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.isContainment = function isContainment_1(){ - return false; -} -; -_.isEObject = function isEObject(){ - return true; -} -; -_.isInstance = function isInstance_1(object){ - return isInstance(this.dataClass, object); -} -; -_.isNotificationRequired = function isNotificationRequired_1(){ - return $eNotificationRequired(this.owner); -} -; -_.isSet_0 = function isSet_3(){ - return this.size_0 != 0; -} -; -_.newData = function newData_3(capacity){ - return newInstance_11(this.dataClass, capacity); -} -; -_.resolve = function resolve_1(index_0, object){ - return this.isEObject() && this.hasProxies()?$resolve(this, index_0, castTo(object, 56)):object; -} -; -_.resolveProxy = function resolveProxy(eObject){ - return eObject.eIsProxy()?$eResolveProxy(this.owner, castTo(eObject, 49)):eObject; -} -; -_.set_1 = function set_31(newValue){ - $set_15(this, newValue); -} -; -_.toArray = function toArray_38(){ - return $toArray_11(this); -} -; -_.toArray_0 = function toArray_39(array){ - var i; - if (this.hasProxies()) { - for (i = this.size_0 - 1; i >= 0; --i) { - $get_20(this, i); - } - } - return $toArray_10(this, array); -} -; -_.unset = function unset_1(){ - $clear_13(this); -} -; -_.validate = function validate_0(index_0, object){ - return $validate_0(this, index_0, object); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList', 622); -function EObjectEList(dataClass, owner, featureID){ - EcoreEList.call(this, dataClass, owner); - this.featureID = featureID; -} - -defineClass(496, 622, $intern_154, EObjectEList); -_.canContainNull = function canContainNull_2(){ - return false; -} -; -_.getFeatureID_0 = function getFeatureID_6(){ - return this.featureID; -} -; -_.hasInverse = function hasInverse_1(){ - return false; -} -; -_.isEObject = function isEObject_0(){ - return true; -} -; -_.isUnique = function isUnique_3(){ - return true; -} -; -_.resolve = function resolve_2(index_0, object){ - return object; -} -; -_.useEquals = function useEquals_1(){ - return false; -} -; -_.featureID = 0; -var Lorg_eclipse_emf_ecore_util_EObjectEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList', 496); -function EObjectContainmentEList(dataClass, owner, featureID){ - EObjectEList.call(this, dataClass, owner, featureID); -} - -defineClass(85, 496, $intern_154, EObjectContainmentEList); -_.hasInverse = function hasInverse_2(){ - return true; -} -; -_.hasNavigableInverse = function hasNavigableInverse_0(){ - return false; -} -; -_.isContainment = function isContainment_2(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList', 85); -function EObjectContainmentEList$Unsettable(dataClass, owner, featureID){ - EObjectContainmentEList.call(this, dataClass, owner, featureID); -} - -defineClass(545, 85, $intern_154, EObjectContainmentEList$Unsettable); -_.didChange = function didChange_0(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_4(){ - return this.isSet; -} -; -_.unset = function unset_2(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable', 545); -function $isSet(this$static){ - var eGenericType, eGenericType$iterator; - for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { - return true; - } - } - return false; -} - -function $shadowAdd(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 3, 10, null, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowRemove(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 4, 10, (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), null, $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowSet(this$static, oldEGenericType, newEGenericType, notifications){ - var notification, result, result0; - notification = new ENotificationImpl_3(this$static.owner, 1, 10, (result0 = oldEGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT)), (result = newEGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)), $indexOf_6(this$static, oldEGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function EClassImpl$1(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 22); -} - -defineClass(1140, 545, $intern_154, EClassImpl$1); -_.move = function move_14(targetIndex, sourceIndex){ - var result0, result; - return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , ECLASS__ESUPER_TYPES), valueOf_4(sourceIndex), (result = result0.eRawType , instanceOf(result, 88)?castTo(result, 26):EOBJECT), targetIndex)) , result0; -} -; -_.shadowAdd = function shadowAdd_0(eGenericType, notifications){ - return $shadowAdd(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowRemove = function shadowRemove_0(eGenericType, notifications){ - return $shadowRemove(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowSet = function shadowSet_0(oldEGenericType, newEGenericType, notifications){ - return $shadowSet(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); -} -; -_.createNotification = function createNotification_2(eventType, oldObject, newObject, index_0, wasSet){ - switch (eventType) { - case 3: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); - } - - case 5: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); - } - - default:{ - return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); - } - - } -} -; -_.hasShadow = function hasShadow_0(){ - return true; -} -; -_.isSet_0 = function isSet_5(){ - return $isSet(this); -} -; -_.unset = function unset_3(){ - $clear_13(this); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1', 1140); -function $getSubclasses(this$static){ - !this$static.subclasses && (this$static.subclasses = new ESuperAdapter$1); - return this$static.subclasses; -} - -function $setFlags(this$static, featureId){ - var eSuperAdapter, i, oldModifiedState, subclass; - oldModifiedState = this$static.modifiedState; - switch (featureId) { - case 1: - { - this$static.modifiedState |= 1; - this$static.modifiedState |= 4; - this$static.modifiedState |= 8; - break; - } - - case 2: - { - this$static.modifiedState |= 2; - this$static.modifiedState |= 4; - this$static.modifiedState |= 8; - break; - } - - case 4: - { - this$static.modifiedState |= 1; - this$static.modifiedState |= 2; - this$static.modifiedState |= 4; - this$static.modifiedState |= 8; - break; - } - - case 3: - { - this$static.modifiedState |= 16; - this$static.modifiedState |= 8; - break; - } - - case 0: - { - this$static.modifiedState |= 32; - this$static.modifiedState |= 16; - this$static.modifiedState |= 8; - this$static.modifiedState |= 1; - this$static.modifiedState |= 2; - this$static.modifiedState |= 4; - break; - } - - } - if (this$static.modifiedState != oldModifiedState && !!this$static.subclasses) { - for (i = new AbstractEList$EIterator(this$static.subclasses); i.cursor != i.this$01_2.size_1();) { - subclass = castTo($doNext(i), 473); - eSuperAdapter = $getESuperAdapter(subclass); - $setFlags_0(eSuperAdapter, featureId); - } - } -} - -function getFeatureID_7(notification){ - var featureID; - featureID = notification.getFeatureID(null); - switch (featureID) { - case 10: - return 0; - case 15: - return 1; - case 14: - return 2; - case 11: - return 3; - case 21: - return 4; - } - return -1; -} - -defineClass(1154, 1153, $intern_140); -_.notifyChanged = function notifyChanged_0(notification){ - var eSuperAdapter, eventType, featureID, holder, i, newValue, oldValue; - eventType = notification.getEventType(); - if (eventType != 8) { - featureID = getFeatureID_7(notification); - if (featureID == 0) { - switch (eventType) { - case 1: - case 9: - { - oldValue = notification.getOldValue(); - if (oldValue != null) { - eSuperAdapter = $getESuperAdapter(castTo(oldValue, 473)); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); - } - newValue = notification.getNewValue(); - if (newValue != null) { - holder = castTo(newValue, 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); - } - } - break; - } - - case 3: - { - newValue = notification.getNewValue(); - if (newValue != null) { - holder = castTo(newValue, 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); - } - } - break; - } - - case 5: - { - newValue = notification.getNewValue(); - if (newValue != null) { - for (i = castTo(newValue, 14).iterator_0(); i.hasNext_0();) { - holder = castTo(i.next_1(), 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); - } - } - } - break; - } - - case 4: - { - oldValue = notification.getOldValue(); - if (oldValue != null) { - holder = castTo(oldValue, 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); - } - } - break; - } - - case 6: - { - oldValue = notification.getOldValue(); - if (oldValue != null) { - for (i = castTo(oldValue, 14).iterator_0(); i.hasNext_0();) { - holder = castTo(i.next_1(), 473); - if ((holder.eFlags & 1) == 0) { - eSuperAdapter = $getESuperAdapter(holder); - !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); - $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); - } - } - } - break; - } - - } - } - this.setFlags(featureID); - } -} -; -_.setFlags = function setFlags(featureId){ - $setFlags(this, featureId); -} -; -_.modifiedState = 63; -var Lorg_eclipse_emf_ecore_impl_ESuperAdapter_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter', 1154); -function $setFlags_0(this$static, featureId){ - $setFlags(this$static, featureId); - (this$static.modifiedState & 1) != 0 && (this$static.this$01.eAllAttributes = null); - (this$static.modifiedState & 2) != 0 && (this$static.this$01.eAllReferences = null); - if ((this$static.modifiedState & 4) != 0) { - this$static.this$01.eAllStructuralFeatures = null; - this$static.this$01.eAllStructuralFeaturesData = null; - } - if ((this$static.modifiedState & 16) != 0) { - this$static.this$01.eAllOperations = null; - this$static.this$01.eAllOperationsData = null; - } - (this$static.modifiedState & 8) != 0 && (this$static.this$01.eAllContainments = null); - if ((this$static.modifiedState & 32) != 0) { - this$static.this$01.eAllSuperTypes = null; - this$static.this$01.eAllGenericSuperTypes = null; - } -} - -function EClassImpl$10(this$0){ - this.this$01 = this$0; -} - -defineClass(1155, 1154, $intern_140, EClassImpl$10); -_.setFlags = function setFlags_0(featureId){ - $setFlags_0(this, featureId); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/10', 1155); -defineClass(1144, 696, $intern_154); -_.addAllUnique = function addAllUnique_11(index_0, collection){ - return $addAllUnique(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_12(collection){ - return $addAllUnique_0(this, collection); -} -; -_.addUnique = function addUnique_12(index_0, object){ - $addUnique(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_13(object){ - $addUnique_0(this, object); -} -; -_.basicGet = function basicGet_2(index_0){ - return $basicGet(this, index_0); -} -; -_.setUnique = function setUnique_5(index_0, object){ - return $setUnique(this, index_0, object); -} -; -_.basicAdd = function basicAdd_1(object, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.basicIterator = function basicIterator_3(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicListIterator = function basicListIterator_7(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_8(index_0){ - return $basicListIterator(this, index_0); -} -; -_.basicRemove = function basicRemove_1(object, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.get_6 = function get_62(resolve){ - return this; -} -; -_.isSet_0 = function isSet_6(){ - return this.size_0 != 0; -} -; -_.set_1 = function set_32(newValue){ - throw toJs(new UnsupportedOperationException); -} -; -_.unset = function unset_4(){ - throw toJs(new UnsupportedOperationException); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList', 1144); -function EcoreEList$UnmodifiableEList$FastCompare(size_0, data_0){ - BasicEList$UnmodifiableEList.call(this, size_0, data_0); -} - -defineClass(319, 1144, $intern_154, EcoreEList$UnmodifiableEList$FastCompare); -_.useEquals = function useEquals_2(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList$UnmodifiableEList$FastCompare_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/UnmodifiableEList/FastCompare', 319); -function $containments(this$static){ - maskUndefined(this$static.containments) === maskUndefined(($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA)) && $init_2(this$static); - return this$static.containments; -} - -function $init_2(this$static){ - var containmentsList, crossReferencesList, eAnnotation, eAnnotation0, eAnnotation1, eReference, eStructuralFeature, i, isMixed, theOpposite; - containmentsList = new EClassImpl$1EStructuralFeatureUniqueEList; - crossReferencesList = new EClassImpl$1EStructuralFeatureUniqueEList; - isMixed = $equals_5('mixed', (eAnnotation0 = $getEAnnotation(this$static.this$01, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , !eAnnotation0?null:castToString($get_21((!eAnnotation0.details && (eAnnotation0.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation0)) , eAnnotation0.details), 'kind')))); - for (i = 0; i < this$static.size_0; ++i) { - eStructuralFeature = castTo(this$static.data_0[i], 170); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - (eReference.eFlags & $intern_134) != 0?((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation1 = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation1?null:castToString($get_21((!eAnnotation1.details && (eAnnotation1.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation1)) , eAnnotation1.details), 'group'))) == null)) && $add_21(containmentsList, eReference):(theOpposite = $getEOpposite(eReference) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0 || ((eReference.eFlags & $intern_17) == 0 || !isMixed && (eAnnotation = $getEAnnotation(eReference, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , (!eAnnotation?null:castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group'))) == null)) && $add_21(crossReferencesList, eReference)); - } - else { - $clinit_FeatureMapUtil(); - if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { - if (!eStructuralFeature.isDerived()) { - $add_21(containmentsList, eStructuralFeature); - $add_21(crossReferencesList, eStructuralFeature); - } - } - } - } - $shrink_0(containmentsList); - $shrink_0(crossReferencesList); - this$static.containments = castTo(containmentsList.data_0, 247); - castTo(crossReferencesList.data_0, 247); -} - -function EClassImpl$1EAllStructuralFeaturesList(this$0, eAllStructuralFeatures){ - this.this$01 = this$0; - EcoreEList$UnmodifiableEList$FastCompare.call(this, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 10), 18) , eAllStructuralFeatures.size_0), eAllStructuralFeatures.data_0); - this.containments = ($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA); -} - -defineClass(1147, 319, $intern_154, EClassImpl$1EAllStructuralFeaturesList); -_.indexOf_0 = function indexOf_16(object){ - var eStructuralFeature, index_0, last; - if (instanceOf(object, 170)) { - eStructuralFeature = castTo(object, 170); - index_0 = eStructuralFeature.getFeatureID_0(); - if (index_0 != -1) { - for (last = this.size_0; index_0 < last; ++index_0) { - if (maskUndefined(this.data_0[index_0]) === maskUndefined(object)) { - return index_0; - } - } - } - } - return -1; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EAllStructuralFeaturesList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EAllStructuralFeaturesList', 1147); -function $eliminateEquivalentDuplicates(this$static){ - var eGenericType, eGenericTypes, i, j, otherEGenericType; - eGenericTypes = castTo(this$static.data_0, 674); - for (i = this$static.size_0 - 1; i >= 0; --i) { - eGenericType = eGenericTypes[i]; - for (j = 0; j < i; ++j) { - otherEGenericType = eGenericTypes[j]; - if ($equivalent(this$static, eGenericType, otherEGenericType)) { - $remove_33(this$static, i); - break; - } - } - } -} - -function $equivalent(this$static, eGenericType, otherEGenericType){ - var eClassifier, eTypeArgument, eTypeArgumentSize, eTypeArguments, eTypeParameter, instanceTypeName, j, otherEClassifier, otherETypeArgument, otherETypeArguments, otherETypeParameter, otherInstanceTypeName; - if (eGenericType == otherEGenericType) { - return true; - } - else { - eGenericType = $resolve_0(this$static, eGenericType); - otherEGenericType = $resolve_0(this$static, otherEGenericType); - eClassifier = $getEClassifier(eGenericType); - if (eClassifier) { - otherEClassifier = $getEClassifier(otherEGenericType); - if (otherEClassifier != eClassifier) { - if (!otherEClassifier) { - return false; - } - else { - instanceTypeName = eClassifier.getInstanceTypeName(); - otherInstanceTypeName = otherEClassifier.getInstanceTypeName(); - return instanceTypeName == otherInstanceTypeName && instanceTypeName != null; - } - } - else { - eTypeArguments = (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments); - eTypeArgumentSize = eTypeArguments.size_0; - otherETypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); - if (eTypeArgumentSize == otherETypeArguments.size_0) { - for (j = 0; j < eTypeArgumentSize; ++j) { - eTypeArgument = castTo($get_20(eTypeArguments, j), 87); - otherETypeArgument = castTo($get_20(otherETypeArguments, j), 87); - if (!$equivalent(this$static, eTypeArgument, otherETypeArgument)) { - return false; - } - } - } - return true; - } - } - else { - eTypeParameter = eGenericType.eTypeParameter; - otherETypeParameter = otherEGenericType.eTypeParameter; - return eTypeParameter == otherETypeParameter; - } - } -} - -function $resolve_0(this$static, eGenericType){ - var eContainer, eGenericTypes, eTypeArguments, eTypeParameter, i, index_0, otherEGenericType; - eTypeParameter = eGenericType.eTypeParameter; - if (eTypeParameter) { - eContainer = $eContainer(eTypeParameter); - eGenericTypes = castTo(this$static.data_0, 674); - for (i = 0; i < this$static.size_0; ++i) { - otherEGenericType = eGenericTypes[i]; - if ($getEClassifier(otherEGenericType) == eContainer) { - eTypeArguments = (!otherEGenericType.eTypeArguments && (otherEGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, otherEGenericType, 1)) , otherEGenericType.eTypeArguments); - index_0 = castTo(eContainer.eGet_0(eContainmentFeature(eTypeParameter, eTypeParameter.eContainer, eTypeParameter.eFlags_0 >> 16)), 15).indexOf_0(eTypeParameter); - if (index_0 < eTypeArguments.size_0) { - return $resolve_0(this$static, castTo($get_20(eTypeArguments, index_0), 87)); - } - } - } - } - return eGenericType; -} - -function EClassImpl$1EGenericSuperTypeEList(){ -} - -defineClass(1141, 497, $intern_138, EClassImpl$1EGenericSuperTypeEList); -_.newData = function newData_4(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, capacity, 0, 1); -} -; -_.useEquals = function useEquals_3(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EGenericSuperTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EGenericSuperTypeEList', 1141); -function EClassImpl$1EStructuralFeatureUniqueEList(){ -} - -defineClass(623, 497, $intern_138, EClassImpl$1EStructuralFeatureUniqueEList); -_.newData = function newData_5(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, capacity, 0, 1); -} -; -_.useEquals = function useEquals_4(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1EStructuralFeatureUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1EStructuralFeatureUniqueEList', 623); -function EClassImpl$1ReferenceList(){ -} - -defineClass(741, 497, $intern_138, EClassImpl$1ReferenceList); -_.newData = function newData_6(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); -} -; -_.useEquals = function useEquals_5(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$1ReferenceList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/1ReferenceList', 741); -function $didAdd_0(this$static, eAttribute){ - (eAttribute.eFlags & $intern_134) != 0 && !this$static.this$01.eIDAttribute && (this$static.this$01.eIDAttribute = eAttribute); -} - -function EClassImpl$2(this$0){ - this.this$01 = this$0; -} - -defineClass(1142, 497, $intern_138, EClassImpl$2); -_.didAdd = function didAdd_1(index_0, eAttribute){ - $didAdd_0(this, castTo(eAttribute, 34)); -} -; -_.newData = function newData_7(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); -} -; -_.useEquals = function useEquals_6(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/2', 1142); -function EClassImpl$3(){ -} - -defineClass(1143, 497, $intern_138, EClassImpl$3); -_.newData = function newData_8(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, capacity, 0, 1); -} -; -_.useEquals = function useEquals_7(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/3', 1143); -function $add_28(this$static, object){ - $clinit_System(); - return $add_21($getEStructuralFeatures(this$static.this$01), object); -} - -function $addUnique_8(this$static, object){ - $addUnique_6($getEStructuralFeatures(this$static.this$01), object); -} - -function EClassImpl$4(this$0, $anonymous2, $anonymous3){ - this.this$01 = this$0; - EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); -} - -defineClass(1145, 319, $intern_154, EClassImpl$4); -_.add_2 = function add_62(object){ - return $add_28(this, castTo(object, 34)); -} -; -_.addUnique_0 = function addUnique_14(object){ - $addUnique_8(this, castTo(object, 34)); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/4', 1145); -function $add_29(this$static, object){ - $clinit_System(); - return $add_21($getEStructuralFeatures(this$static.this$01), object); -} - -function $addUnique_9(this$static, object){ - $addUnique_6($getEStructuralFeatures(this$static.this$01), object); -} - -function EClassImpl$5(this$0, $anonymous2, $anonymous3){ - this.this$01 = this$0; - EcoreEList$UnmodifiableEList$FastCompare.call(this, $anonymous2, $anonymous3); -} - -defineClass(1146, 319, $intern_154, EClassImpl$5); -_.add_2 = function add_63(object){ - return $add_29(this, castTo(object, 18)); -} -; -_.addUnique_0 = function addUnique_15(object){ - $addUnique_9(this, castTo(object, 18)); -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/5', 1146); -function EClassImpl$6(){ -} - -defineClass(1148, 497, $intern_138, EClassImpl$6); -_.newData = function newData_9(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, capacity, 0, 1); -} -; -_.useEquals = function useEquals_8(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/6', 1148); -function EClassImpl$7(){ -} - -defineClass(1149, 497, $intern_138, EClassImpl$7); -_.newData = function newData_10(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, capacity, 0, 1); -} -; -_.useEquals = function useEquals_9(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/7', 1149); -defineClass(1997, 1996, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 69:1}); -_.addAllUnique = function addAllUnique_13(index_0, collection){ - return $addAllUnique_2(this, index_0, collection); -} -; -_.addAllUnique_0 = function addAllUnique_14(collection){ - return $addAllUnique_2(this, this.delegateSize(), collection); -} -; -_.addUnique = function addUnique_16(index_0, object){ - $addUnique_3(this, index_0, object); -} -; -_.addUnique_0 = function addUnique_17(object){ - $addUnique_4(this, object); -} -; -_.basicAdd = function basicAdd_2(object, notifications){ - return $basicAdd(this, object, notifications); -} -; -_.basicRemove = function basicRemove_2(object, notifications){ - return $basicRemove(this, object, notifications); -} -; -_.setUnique = function setUnique_6(index_0, object){ - return $setUnique_0(this, index_0, object); -} -; -_.basicGet = function basicGet_3(index_0){ - return this.delegateGet(index_0); -} -; -_.basicIterator = function basicIterator_4(){ - return new AbstractEList$NonResolvingEIterator(this); -} -; -_.basicList = function basicList_0(){ - return this.delegateBasicList(); -} -; -_.basicListIterator = function basicListIterator_9(){ - return new AbstractEList$NonResolvingEListIterator(this); -} -; -_.basicListIterator_0 = function basicListIterator_10(index_0){ - return $basicListIterator(this, index_0); -} -; -var Lorg_eclipse_emf_ecore_util_DelegatingNotifyingInternalEListImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingNotifyingInternalEListImpl', 1997); -function $resolve_1(this$static, index_0, object){ - var internalEObject, internalEObject0, notificationChain, resolved; - if (this$static.isEObject() && this$static.hasProxies()) { - resolved = $resolveProxy(this$static, castTo(object, 56)); - if (maskUndefined(resolved) !== maskUndefined(object)) { - this$static.delegateGet(index_0); - this$static.delegateSet(index_0, $validate_1(this$static, index_0, resolved)); - if (this$static.isContainment()) { - notificationChain = (internalEObject0 = castTo(object, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject0.eInverseRemove(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), null):internalEObject0.eInverseRemove(this$static.owner, $getFeatureID(internalEObject0.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, null):internalEObject0.eInverseRemove(this$static.owner, -1 - this$static.getFeatureID_0(), null, null)); - !castTo(resolved, 49).eInternalContainer() && (notificationChain = (internalEObject = castTo(resolved, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject.eInverseAdd(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), notificationChain):internalEObject.eInverseAdd(this$static.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, notificationChain):internalEObject.eInverseAdd(this$static.owner, -1 - this$static.getFeatureID_0(), null, notificationChain))); - !!notificationChain && notificationChain.dispatch_0(); - } - $eNotificationRequired(this$static.owner) && this$static.dispatchNotification(this$static.createNotification(9, object, resolved, index_0, false)); - return resolved; - } - } - return object; -} - -function $resolveProxy(this$static, eObject){ - return eObject.eIsProxy()?$eResolveProxy(this$static.owner, castTo(eObject, 49)):eObject; -} - -function $validate_1(this$static, index_0, object){ - $validate(this$static, object); - if (object != null && !this$static.isInstance(object)) { - throw toJs(new ArrayStoreException); - } - return object; -} - -function DelegatingEcoreEList(owner){ - this.owner = owner; -} - -defineClass(742, 1997, $intern_156); -_.canContainNull = function canContainNull_3(){ - var eClassifier; - eClassifier = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(); - return instanceOf(eClassifier, 148) && !instanceOf(eClassifier, 457) && (eClassifier.getInstanceClass().modifiers & 1) == 0; -} -; -_.contains = function contains_64(object){ - var containedEObject, eContainer, eObject, i, opposite, result, result0, size_0; - if (this.isEObject()) { - size_0 = this.delegateSize(); - if (size_0 > 4) { - if (this.isInstance(object)) { - if (this.isContainment()) { - eObject = castTo(object, 49); - eContainer = eObject.eContainer_0(); - result0 = eContainer == this.owner && (this.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass()) == $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID:-1 - eObject.eContainerFeatureID_0() == this.getFeatureID_0()); - if (this.hasProxies() && !result0 && !eContainer && !!eObject.eDirectResource()) { - for (i = 0; i < size_0; ++i) { - containedEObject = $resolveProxy(this, this.delegateGet(i)); - if (maskUndefined(containedEObject) === maskUndefined(object)) { - return true; - } - } - } - return result0; - } - else if (this.hasNavigableInverse() && !this.hasManyInverse()) { - opposite = castTo(object, 56).eGet_0($getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))); - if (maskUndefined(opposite) === maskUndefined(this.owner)) { - return true; - } - else if (opposite == null || !castTo(opposite, 56).eIsProxy()) { - return false; - } - } - } - else { - return false; - } - } - result = this.delegateContains(object); - if (this.hasProxies() && !result) { - for (i = 0; i < size_0; ++i) { - eObject = $resolveProxy(this, this.delegateGet(i)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return true; - } - } - } - return result; - } - else { - return this.delegateContains(object); - } -} -; -_.createNotification = function createNotification_3(eventType, oldObject, newObject, index_0, wasSet){ - return new ENotificationImpl_3(this.owner, eventType, this.getFeatureID_0(), oldObject, newObject, index_0, wasSet); -} -; -_.dispatchNotification = function dispatchNotification_2(notification){ - $eNotify(this.owner, notification); -} -; -_.get_6 = function get_63(resolve){ - return this; -} -; -_.getFeature = function getFeature_5(){ - return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); -} -; -_.getFeatureID_0 = function getFeatureID_8(){ - return $getFeatureID($eClass(this.owner), $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0())); -} -; -_.getNotifier = function getNotifier_5(){ - return this.owner; -} -; -_.hasInstanceClass = function hasInstanceClass_0(){ - return !!$getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().getInstanceClass(); -} -; -_.hasInverse = function hasInverse_3(){ - var eReference, eStructuralFeature; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - return (eReference.eFlags & $intern_134) != 0 || !!$getEOpposite(castTo(eStructuralFeature, 18)); - } - else { - return false; - } -} -; -_.hasManyInverse = function hasManyInverse_0(){ - var eReference, eStructuralFeature, oppositeEReference, upper; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - oppositeEReference = $getEOpposite(eReference); - return !!oppositeEReference && (upper = oppositeEReference.upperBound , upper > 1 || upper == -1); - } - else { - return false; - } -} -; -_.hasNavigableInverse = function hasNavigableInverse_1(){ - var eReference, eStructuralFeature, oppositeEReference; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - oppositeEReference = $getEOpposite(eReference); - return !!oppositeEReference; - } - else { - return false; - } -} -; -_.hasProxies = function hasProxies_0(){ - var eReference, eStructuralFeature; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - return (eReference.eFlags & $intern_63) != 0; - } - else { - return false; - } -} -; -_.indexOf_0 = function indexOf_17(object){ - var eObject, i, index_0, size_0; - index_0 = this.delegateIndexOf(object); - if (index_0 >= 0) - return index_0; - if (this.isEObject()) { - for (i = 0 , size_0 = this.delegateSize(); i < size_0; ++i) { - eObject = $resolveProxy(this, this.delegateGet(i)); - if (maskUndefined(eObject) === maskUndefined(object)) { - return i; - } - } - } - return -1; -} -; -_.inverseAdd = function inverseAdd_2(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.inverseRemove = function inverseRemove_2(object, notifications){ - var internalEObject; - return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseRemove(this.owner, -1 - this.getFeatureID_0(), null, notifications); -} -; -_.isContainment = function isContainment_3(){ - var eReference, eStructuralFeature; - eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - return (eReference.eFlags & $intern_134) != 0; - } - else { - return false; - } -} -; -_.isEObject = function isEObject_1(){ - return instanceOf($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 88); -} -; -_.isInstance = function isInstance_2(object){ - return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType().isInstance(object); -} -; -_.isNotificationRequired = function isNotificationRequired_2(){ - return $eNotificationRequired(this.owner); -} -; -_.isSet_0 = function isSet_7(){ - return !this.delegateIsEmpty(); -} -; -_.isUnique = function isUnique_4(){ - return $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).isUnique(); -} -; -_.resolve = function resolve_3(index_0, object){ - return $resolve_1(this, index_0, object); -} -; -_.set_1 = function set_33(newValue){ - $clear_12(this); - $addAll_9(this, castTo(newValue, 15)); -} -; -_.toArray = function toArray_40(){ - var i; - if (this.hasProxies()) { - for (i = this.delegateSize() - 1; i >= 0; --i) { - $resolve_1(this, i, this.delegateGet(i)); - } - } - return this.delegateToArray(); -} -; -_.toArray_0 = function toArray_41(array){ - var i; - if (this.hasProxies()) { - for (i = this.delegateSize() - 1; i >= 0; --i) { - $resolve_1(this, i, this.delegateGet(i)); - } - } - return this.delegateToArray_0(array); -} -; -_.unset = function unset_5(){ - $clear_12(this); -} -; -_.validate = function validate_1(index_0, object){ - return $validate_1(this, index_0, object); -} -; -var Lorg_eclipse_emf_ecore_util_DelegatingEcoreEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'DelegatingEcoreEList', 742); -function $delegateAdd(this$static, index_0, eClass){ - $add_20($getEGenericSuperTypes(this$static.this$01), index_0, $wrap_0(eClass)); -} - -function $delegateAdd_0(this$static, eClass){ - $add_21($getEGenericSuperTypes(this$static.this$01), $wrap_0(eClass)); -} - -function $delegateContains(this$static, object){ - var eClass, eClass$iterator; - for (eClass$iterator = new AbstractEList$EIterator(this$static); eClass$iterator.cursor != eClass$iterator.this$01_2.size_1();) { - eClass = castTo($doNext(eClass$iterator), 26); - if (maskUndefined(object) === maskUndefined(eClass)) { - return true; - } - } - return false; -} - -function $delegateSet(this$static, index_0, eClass){ - var eGenericType, result, result0; - eGenericType = castTo($get_20($getEGenericSuperTypes(this$static.this$01), index_0), 87); - result0 = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - ((result0.eFlags_0 & 64) != 0?$eResolveProxy(this$static.owner, result0):result0) == eClass?$getERawType(eGenericType):$setEClassifier(eGenericType, eClass); - return result0; -} - -function $wrap_0(eClass){ - var eGenericType, eGenericType0; - eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(eGenericType0, eClass); - return eGenericType0; -} - -function EClassImpl$8(this$0, $anonymous0){ - this.this$01 = this$0; - DelegatingEcoreEList.call(this, $anonymous0); -} - -defineClass(1150, 742, $intern_156, EClassImpl$8); -_.delegateAdd = function delegateAdd_1(index_0, eClass){ - $delegateAdd(this, index_0, castTo(eClass, 26)); -} -; -_.delegateAdd_0 = function delegateAdd_2(eClass){ - $delegateAdd_0(this, castTo(eClass, 26)); -} -; -_.delegateGet = function delegateGet_0(index_0){ - var eGenericType, result; - return eGenericType = castTo($get_20($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); -} -; -_.delegateRemove = function delegateRemove_0(index_0){ - var eGenericType, result; - return eGenericType = castTo($remove_35($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); -} -; -_.delegateSet = function delegateSet_0(index_0, eClass){ - return $delegateSet(this, index_0, castTo(eClass, 26)); -} -; -_.canContainNull = function canContainNull_4(){ - return false; -} -; -_.createNotification = function createNotification_4(eventType, oldObject, newObject, index_0, wasSet){ - return null; -} -; -_.delegateBasicList = function delegateBasicList_0(){ - return new EClassImpl$8$1(this); -} -; -_.delegateClear = function delegateClear_0(){ - $clear_13($getEGenericSuperTypes(this.this$01)); -} -; -_.delegateContains = function delegateContains_0(object){ - return $delegateContains(this, object); -} -; -_.delegateContainsAll = function delegateContainsAll_0(collection){ - var object, object$iterator; - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$delegateContains(this, object)) { - return false; - } - } - return true; -} -; -_.delegateEquals = function delegateEquals_0(object){ - var i, j, list; - if (instanceOf(object, 15)) { - list = castTo(object, 15); - if (list.size_1() == $getEGenericSuperTypes(this.this$01).size_0) { - for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { - if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { - return false; - } - } - return true; - } - } - return false; -} -; -_.delegateHashCode = function delegateHashCode_0(){ - var eGenericType, eGenericType$iterator, hashCode, object, result; - hashCode = 1; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - object = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - hashCode = 31 * hashCode + (!object?0:getHashCode_0(object)); - } - return hashCode; -} -; -_.delegateIndexOf = function delegateIndexOf_0(object){ - var eGenericType, eGenericType$iterator, index_0, result; - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))) { - return index_0; - } - ++index_0; - } - return -1; -} -; -_.delegateIsEmpty = function delegateIsEmpty_0(){ - return $getEGenericSuperTypes(this.this$01).size_0 == 0; -} -; -_.delegateList_1 = function delegateList_2(){ - return null; -} -; -_.delegateSize = function delegateSize_0(){ - return $getEGenericSuperTypes(this.this$01).size_0; -} -; -_.delegateToArray = function delegateToArray_1(){ - var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; - size_0 = $getEGenericSuperTypes(this.this$01).size_0; - result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - result0[index_0++] = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - } - return result0; -} -; -_.delegateToArray_0 = function delegateToArray_2(array){ - var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; - size_0 = $getEGenericSuperTypes(this.this$01).size_0; - if (array.length < size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); - array = newArray; - } - array.length > size_0 && setCheck(array, size_0, null); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericSuperTypes(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - rawType = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); - setCheck(array, index_0++, rawType); - } - return array; -} -; -_.delegateToString = function delegateToString_0(){ - var eGenericSuperTypes, i, result, size_0, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - eGenericSuperTypes = $getEGenericSuperTypes(this.this$01); - for (i = 0 , size_0 = $getEGenericSuperTypes(this.this$01).size_0; i < size_0;) { - $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericSuperTypes, i), 87).eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)))); - ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} -; -_.dispatchNotification = function dispatchNotification_3(notification){ -} -; -_.getFeatureID_0 = function getFeatureID_9(){ - return 10; -} -; -_.hasInstanceClass = function hasInstanceClass_1(){ - return true; -} -; -_.hasInverse = function hasInverse_4(){ - return false; -} -; -_.hasManyInverse = function hasManyInverse_1(){ - return false; -} -; -_.hasNavigableInverse = function hasNavigableInverse_2(){ - return false; -} -; -_.hasProxies = function hasProxies_1(){ - return true; -} -; -_.isContainment = function isContainment_4(){ - return false; -} -; -_.isEObject = function isEObject_2(){ - return true; -} -; -_.isInstance = function isInstance_3(object){ - return instanceOf(object, 88); -} -; -_.isSet_0 = function isSet_8(){ - return $isSetESuperTypes(this.this$01); -} -; -_.isUnique = function isUnique_5(){ - return true; -} -; -_.useEquals = function useEquals_10(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8', 1150); -function EClassImpl$8$1(this$1){ - this.this$11 = this$1; -} - -defineClass(1151, 1964, $intern_37, EClassImpl$8$1); -_.listIterator_1 = function listIterator_29(index_0){ - return $basicListIterator(this.this$11, index_0); -} -; -_.size_1 = function size_75(){ - return $getEGenericSuperTypes(this.this$11.this$01).size_0; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$8$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/8/1', 1151); -function EClassImpl$9(){ -} - -defineClass(1152, 497, $intern_138, EClassImpl$9); -_.newData = function newData_11(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, capacity, 0, 1); -} -; -_.useEquals = function useEquals_11(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EClassImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/9', 1152); -function EClassImpl$MyHashSet(){ - HashSet.call(this); -} - -defineClass(1139, 53, $intern_77, EClassImpl$MyHashSet); -var Lorg_eclipse_emf_ecore_impl_EClassImpl$MyHashSet_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/MyHashSet', 1139); -function $setSerializable(this$static, newSerializable){ - var oldSerializable; - oldSerializable = (this$static.eFlags & 256) != 0; - newSerializable?(this$static.eFlags |= 256):(this$static.eFlags &= -257); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 8, oldSerializable, newSerializable)); -} - -function EDataTypeImpl(){ - this.eFlags |= 256; -} - -defineClass(566, 351, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 150:1, 114:1, 115:1, 676:1}, EDataTypeImpl); -_.eGet = function eGet_23(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return this.getDefaultValue(); - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - case 8: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_22(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return this.getDefaultValue() != null; - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 8: - return (this.eFlags & 256) == 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.eSet = function eSet_21(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 8: - $setSerializable(this, $booleanValue(castToBoolean(newValue))); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_22(){ - return $clinit_EcorePackage$Literals() , EDATA_TYPE; -} -; -_.eUnset = function eUnset_21(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - case 8: - $setSerializable(this, true); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?this.eStaticClass():eClass), featureID)); -} -; -_.freeze = function freeze_5(){ - $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); - this.eFlags |= 1; -} -; -_.getConversionDelegate = function getConversionDelegate(){ - var conversionDelegates, eDataTypeDelegateURI, eDataTypeDelegateURI$iterator; - if (!this.conversionDelegateIsSet) { - conversionDelegates = getConversionDelegates($getEPackage(this)); - if (!conversionDelegates.isEmpty()) { - for (eDataTypeDelegateURI$iterator = conversionDelegates.iterator_0(); eDataTypeDelegateURI$iterator.hasNext_0();) { - eDataTypeDelegateURI = castToString(eDataTypeDelegateURI$iterator.next_1()); - !!$getEAnnotation(this, eDataTypeDelegateURI) && getConversionDelegateFactory(this); - } - } - } - return this.conversionDelegate; -} -; -_.getDefaultValue = function getDefaultValue_1(){ - var instanceClass; - if (!this.defaultValueIsSet) { - instanceClass = null; - try { - instanceClass = $getInstanceClass(this); - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 102)) - throw toJs($e0); - } - this.defaultValue = null; - !!instanceClass && (instanceClass.modifiers & 1) != 0 && (instanceClass == Z_classLit?(this.defaultValue = ($clinit_Boolean() , FALSE_0)):instanceClass == I_classLit?(this.defaultValue = valueOf_4(0)):instanceClass == F_classLit?(this.defaultValue = new Float(0)):instanceClass == D_classLit?(this.defaultValue = 0):instanceClass == J_classLit?(this.defaultValue = valueOf_5(0)):instanceClass == S_classLit?(this.defaultValue = valueOf_6(0)):instanceClass == B_classLit?(this.defaultValue = valueOf_2(0)):(this.defaultValue = valueOf_3(0))); - this.defaultValueIsSet = true; - } - return this.defaultValue; -} -; -_.isSerializable = function isSerializable_0(){ - return (this.eFlags & 256) != 0; -} -; -_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass(isGenerated){ - isGenerated && (this.instanceClassName = 'org.eclipse.emf.common.util.AbstractEnumerator'); -} -; -_.setGeneratedInstanceClass = function setGeneratedInstanceClass_0(isGenerated){ - $setGeneratedInstanceClass(this, isGenerated); - this.setDataTypeGeneratedInstanceClass(isGenerated); -} -; -_.setInstanceClassGen = function setInstanceClassGen_0(instanceClass){ - this.instanceClass = instanceClass; - this.defaultValueIsSet = false; -} -; -_.toString_0 = function toString_150(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_30(this); - result = new StringBuffer_1($toString_30(this)); - result.string += ' (serializable: '; - $append_4(result, (this.eFlags & 256) != 0); - result.string += ')'; - return result.string; -} -; -_.conversionDelegateIsSet = false; -_.defaultValue = null; -_.defaultValueIsSet = false; -var Lorg_eclipse_emf_ecore_impl_EDataTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EDataTypeImpl', 566); -function $getDefaultValue_0(this$static){ - var eLiterals; - eLiterals = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , this$static.eLiterals); - if (eLiterals.size_0 != 0) { - return $getInstance(castTo($get_20(eLiterals, 0), 678)); - } - return null; -} - -function $getEEnumLiteralByLiteral(this$static, literal){ - var eEnumLiteral, eEnumLiteral$iterator, result; - if (literal == null) { - for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { - eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); - result = eEnumLiteral.literal; - if ((result == null?eEnumLiteral.name_0:result) == null) { - return eEnumLiteral; - } - } - } - else { - for (eEnumLiteral$iterator = (!this$static.eLiterals && (this$static.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this$static, 9, 5)) , new AbstractEList$EIterator(this$static.eLiterals)); eEnumLiteral$iterator.cursor != eEnumLiteral$iterator.this$01_2.size_1();) { - eEnumLiteral = castTo($doNext(eEnumLiteral$iterator), 678); - if ($equals_5(literal, (result = eEnumLiteral.literal , result == null?eEnumLiteral.name_0:result))) { - return eEnumLiteral; - } - } - } - return null; -} - -function EEnumImpl(){ - EDataTypeImpl.call(this); -} - -defineClass(457, 566, {105:1, 92:1, 90:1, 138:1, 148:1, 834:1, 671:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 351:1, 457:1, 150:1, 114:1, 115:1, 676:1}, EEnumImpl); -_.eGet = function eGet_24(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return this.instanceClassName != null?this.instanceClassName:this.generatedInstanceClassName; - case 3: - return $getInstanceClass(this); - case 4: - return $getDefaultValue_0(this); - case 5: - return this.instanceTypeName; - case 6: - if (resolve) - return $getEPackage(this); - return $basicGetEPackage(this); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , this.eTypeParameters; - case 8: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 9: - return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , this.eLiterals; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_15(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 6: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_7(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 6, msgs); - case 9: - return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicAdd_0(this.eLiterals, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_17(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 6: - return $eBasicSetContainer(this, null, 6, msgs); - case 7: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - case 9: - return !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)) , $basicRemove_0(this.eLiterals, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_23(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.instanceClassName != null && this.instanceClassName == this.instanceTypeName; - case 3: - return !!$getInstanceClass(this); - case 4: - return !!$getDefaultValue_0(this); - case 5: - return this.instanceTypeName != null && this.instanceTypeName != this.instanceClassName && this.instanceTypeName != this.generatedInstanceClassName; - case 6: - return !!$basicGetEPackage(this); - case 7: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 8: - return (this.eFlags & 256) == 0; - case 9: - return !!this.eLiterals && this.eLiterals.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); -} -; -_.eSet = function eSet_22(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_1(this, castToString(newValue)); - return; - case 2: - $setInstanceClassName(this, castToString(newValue)); - return; - case 5: - $setInstanceTypeName(this, castToString(newValue)); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 8: - $setSerializable(this, $booleanValue(castToBoolean(newValue))); - return; - case 9: - !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); - $clear_13(this.eLiterals); - !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); - $addAll_9(this.eLiterals, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_23(){ - return $clinit_EcorePackage$Literals() , EENUM; -} -; -_.eUnset = function eUnset_22(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 179) && (castTo(this.eContainer, 179).eNameToEClassifierMap = null); - $setName(this, null); - return; - case 2: - $basicSetInstanceClassName(this, null); - $basicSetInstanceTypeName(this, this.instanceClassName); - return; - case 5: - $setInstanceTypeName(this, null); - return; - case 7: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 7)); - $clear_13(this.eTypeParameters); - return; - case 8: - $setSerializable(this, true); - return; - case 9: - !this.eLiterals && (this.eLiterals = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, this, 9, 5)); - $clear_13(this.eLiterals); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM:eClass), featureID)); -} -; -_.freeze = function freeze_6(){ - var i, size_0; - if (this.eLiterals) { - for (i = 0 , size_0 = this.eLiterals.size_0; i < size_0; ++i) { - $freeze($get_20(this.eLiterals, i)); - } - } - $getExtendedMetaData(($clinit_ExtendedMetaData() , INSTANCE_11), this).getName(); - this.eFlags |= 1; -} -; -_.getDefaultValue = function getDefaultValue_2(){ - return $getDefaultValue_0(this); -} -; -_.isInstance = function isInstance_4(object){ - if (object != null) { - return true; - } - return false; -} -; -_.setDataTypeGeneratedInstanceClass = function setDataTypeGeneratedInstanceClass_0(isGenerated){ -} -; -var Lorg_eclipse_emf_ecore_impl_EEnumImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumImpl', 457); -function $eBasicRemoveFromContainerFeature_8(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 5) { - return this$static.eContainer.eInverseRemove(this$static, 9, Lorg_eclipse_emf_ecore_EEnum_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getInstance(this$static){ - return this$static.instance?this$static.instance:this$static.generatedInstance; -} - -function $setInstance(this$static, newInstance){ - var literal, result, oldInstance; - oldInstance = this$static.instance; - this$static.instance = newInstance; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, oldInstance, this$static.instance)); - if (!newInstance) { - $setName(this$static, null); - $setValue_1(this$static, 0); - $setLiteral(this$static, null); - } - else if (newInstance != this$static) { - $setName(this$static, newInstance.name_0); - $setValue_1(this$static, newInstance.value_0); - literal = (result = newInstance.literal , result == null?newInstance.name_0:result); - $setLiteral(this$static, literal == null || $equals_5(literal, newInstance.name_0)?null:literal); - } -} - -function $setLiteral(this$static, newLiteral){ - var oldLiteral; - oldLiteral = this$static.literal; - this$static.literal = newLiteral; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, oldLiteral, this$static.literal)); -} - -function $setValue_1(this$static, newValue){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = newValue; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_0(this$static, 2, oldValue, this$static.value_0)); -} - -function EEnumLiteralImpl(){ - this.generatedInstance = this; -} - -defineClass(573, 438, {105:1, 92:1, 90:1, 1940:1, 678:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 573:1, 150:1, 114:1, 115:1}, EEnumLiteralImpl); -_.getName = function getName_6(){ - return this.name_0; -} -; -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_9(msgs){ - return $eBasicRemoveFromContainerFeature_8(this, msgs); -} -; -_.eGet = function eGet_25(featureID, resolve, coreType){ - var eClass, result; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return valueOf_4(this.value_0); - case 3: - return this.instance?this.instance:this.generatedInstance; - case 4: - return result = this.literal , result == null?this.name_0:result; - case 5: - return this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_16(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 5: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_8(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 5, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_18(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 5: - return $eBasicSetContainer(this, null, 5, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_24(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return this.value_0 != 0; - case 3: - return !!this.instance; - case 4: - return this.literal != null; - case 5: - return !!(this.eFlags_0 >> 16 == 5?castTo(this.eContainer, 671):null); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); -} -; -_.eSet = function eSet_23(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - $setValue_1(this, castTo(newValue, 19).value_0); - return; - case 3: - $setInstance(this, castTo(newValue, 1940)); - return; - case 4: - $setLiteral(this, castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_24(){ - return $clinit_EcorePackage$Literals() , EENUM_LITERAL; -} -; -_.eUnset = function eUnset_23(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - $setValue_1(this, 0); - return; - case 3: - $setInstance(this, null); - return; - case 4: - $setLiteral(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); -} -; -_.toString_0 = function toString_151(){ - var result; - return result = this.literal , result == null?this.name_0:result; -} -; -_.instance = null; -_.literal = null; -_.value_0 = 0; -var Lorg_eclipse_emf_ecore_impl_EEnumLiteralImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EEnumLiteralImpl', 573); -var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$InternalEDateTimeFormat_2_classLit = createForInterface('org.eclipse.emf.ecore.impl', 'EFactoryImpl/InternalEDateTimeFormat'); -function $format_0(this$static, value_0){ - return $format(this$static.dateTimeFormat, value_0, null); -} - -function $parse_2(this$static, value_0){ - return $parse_1(this$static.dateTimeFormat, value_0); -} - -function EFactoryImpl$1ClientInternalEDateTimeFormat(dateTimeFormat){ - this.dateTimeFormat = dateTimeFormat; -} - -defineClass(489, 1, {2015:1}, EFactoryImpl$1ClientInternalEDateTimeFormat); -var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$1ClientInternalEDateTimeFormat_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl/1ClientInternalEDateTimeFormat', 489); -function $basicSetELowerBound(this$static, newELowerBound, msgs){ - var notification, oldELowerBound; - oldELowerBound = this$static.eLowerBound; - this$static.eLowerBound = newELowerBound; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 3, oldELowerBound, newELowerBound); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $basicSetETypeParameter(this$static, newETypeParameter, msgs){ - var notification, oldETypeParameter; - oldETypeParameter = this$static.eTypeParameter; - this$static.eTypeParameter = newETypeParameter; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 4, oldETypeParameter, newETypeParameter); - !msgs?(msgs = notification):msgs.add_5(notification); - } - oldETypeParameter != newETypeParameter && (newETypeParameter?(msgs = $setERawType(this$static, $getErasure(this$static, newETypeParameter), msgs)):(msgs = $setERawType(this$static, this$static.eClassifier, msgs))); - return msgs; -} - -function $basicSetEUpperBound(this$static, newEUpperBound, msgs){ - var notification, oldEUpperBound; - oldEUpperBound = this$static.eUpperBound; - this$static.eUpperBound = newEUpperBound; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 0, oldEUpperBound, newEUpperBound); - !msgs?(msgs = notification):msgs.add_5(notification); - } - return msgs; -} - -function $getEClassifier(this$static){ - var oldEClassifier; - if (!!this$static.eClassifier && this$static.eClassifier.eIsProxy()) { - oldEClassifier = castTo(this$static.eClassifier, 49); - this$static.eClassifier = castTo($eResolveProxy(this$static, oldEClassifier), 138); - this$static.eClassifier != oldEClassifier && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 5, oldEClassifier, this$static.eClassifier)); - } - return this$static.eClassifier; -} - -function $getERawType(this$static){ - var newERawType, oldERawType; - if (!!this$static.eRawType && this$static.eRawType.eIsProxy()) { - oldERawType = castTo(this$static.eRawType, 49); - this$static.eRawType = castTo($eResolveProxy(this$static, oldERawType), 138); - if (this$static.eRawType != oldERawType) { - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 2, oldERawType, this$static.eRawType)); - if (instanceOf(this$static.eContainer, 399)) { - this$static.eFlags_0 >> 16 == -15 && this$static.eContainer.eNotificationRequired() && $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 13, oldERawType, this$static.eRawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static))); - } - else if (instanceOf(this$static.eContainer, 88)) { - if (this$static.eFlags_0 >> 16 == -23 && this$static.eContainer.eNotificationRequired()) { - newERawType = this$static.eRawType; - instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static))); - } - } - } - } - return this$static.eRawType; -} - -function $getETypeArguments(this$static){ - !this$static.eTypeArguments && (this$static.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static, 1)); - return this$static.eTypeArguments; -} - -function $getErasure(this$static, eTypeParameter){ - var eBound, eBound$iterator, eRawType, needEClass, needEDataType; - if (!eTypeParameter) { - return null; - } - else { - needEClass = instanceOf(this$static.eContainer, 88) || instanceOf(this$static.eContainer, 99); - needEDataType = !needEClass && instanceOf(this$static.eContainer, 322); - for (eBound$iterator = new AbstractEList$EIterator((!eTypeParameter.eBounds && (eTypeParameter.eBounds = new ETypeParameterImpl$1(eTypeParameter, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eTypeParameter)) , eTypeParameter.eBounds)); eBound$iterator.cursor != eBound$iterator.this$01_2.size_1();) { - eBound = castTo($doNext(eBound$iterator), 87); - eRawType = $getERawType(eBound); - if (needEClass?instanceOf(eRawType, 88):needEDataType?instanceOf(eRawType, 148):!!eRawType) { - return eRawType; - } - } - return needEClass?($clinit_EcorePackage$Literals() , EOBJECT):($clinit_EcorePackage$Literals() , EJAVA_OBJECT); - } -} - -function $setEClassifier(this$static, newEClassifier){ - var msgs, oldEClassifier; - oldEClassifier = this$static.eClassifier; - msgs = $setEClassifier_0(this$static, newEClassifier, null); - oldEClassifier != newEClassifier && !this$static.eTypeParameter && (msgs = $setERawType(this$static, newEClassifier, msgs)); - !!msgs && msgs.dispatch_0(); -} - -function $setEClassifier_0(this$static, newEClassifier, msgs){ - var notification, oldEClassifier; - oldEClassifier = this$static.eClassifier; - this$static.eClassifier = newEClassifier; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 5, oldEClassifier, this$static.eClassifier); - !msgs?(msgs = notification):$add_22(msgs, notification); - } - return msgs; -} - -function $setELowerBound(this$static, newELowerBound){ - var msgs; - if (newELowerBound != this$static.eLowerBound) { - msgs = null; - !!this$static.eLowerBound && (msgs = $eInverseRemove(this$static.eLowerBound, this$static, -4, msgs)); - !!newELowerBound && (msgs = $eInverseAdd(newELowerBound, this$static, -4, msgs)); - msgs = $basicSetELowerBound(this$static, newELowerBound, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 3, newELowerBound, newELowerBound)); -} - -function $setERawType(this$static, newERawType, msgs){ - var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, eTypeParameter, notification, oldERawType; - oldERawType = this$static.eRawType; - !newERawType && (newERawType = eJavaObject); - this$static.eRawType = newERawType; - if ((this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0) { - notification = new ENotificationImpl_1(this$static, 1, 2, oldERawType, this$static.eRawType); - !msgs?(msgs = notification):msgs.add_5(notification); - } - if (oldERawType != newERawType) { - if (instanceOf(this$static.eContainer, 284)) { - if (this$static.eFlags_0 >> 16 == -10) { - msgs = castTo(this$static.eContainer, 284).setEType(newERawType, msgs); - } - else if (this$static.eFlags_0 >> 16 == -15) { - !newERawType && (newERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - !oldERawType && (oldERawType = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - if (this$static.eContainer.eNotificationRequired()) { - notification = new ENotificationImpl_3(this$static.eContainer, 1, 13, oldERawType, newERawType, $indexOf_6($getEGenericExceptions(castTo(this$static.eContainer, 59)), this$static), false); - !msgs?(msgs = notification):msgs.add_5(notification); - } - } - } - else if (instanceOf(this$static.eContainer, 88)) { - if (this$static.eFlags_0 >> 16 == -23) { - instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); - if (this$static.eContainer.eNotificationRequired()) { - notification = new ENotificationImpl_3(this$static.eContainer, 1, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), this$static), false); - !msgs?(msgs = notification):msgs.add_5(notification); - } - } - } - else if (instanceOf(this$static.eContainer, 444)) { - eTypeParameter = castTo(this$static.eContainer, 836); - eGenericTypes = (!eTypeParameter.eGenericTypes && (eTypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , eTypeParameter.eGenericTypes); - for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { - eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); - msgs = $setERawType(eGenericType, $getErasure(eGenericType, eTypeParameter), msgs); - } - } - } - return msgs; -} - -function $setETypeParameter(this$static, newETypeParameter){ - var msgs; - if (newETypeParameter != this$static.eTypeParameter) { - !!this$static.eTypeParameter && $remove_42($getEGenericTypes(this$static.eTypeParameter), this$static); - !!newETypeParameter && (!newETypeParameter.eGenericTypes && (newETypeParameter.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)) , $add_30(newETypeParameter.eGenericTypes, this$static)); - msgs = $basicSetETypeParameter(this$static, newETypeParameter, null); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 4, newETypeParameter, newETypeParameter)); -} - -function $setEUpperBound(this$static, newEUpperBound){ - var msgs; - if (newEUpperBound != this$static.eUpperBound) { - msgs = null; - !!this$static.eUpperBound && (msgs = $eInverseRemove(this$static.eUpperBound, this$static, -1, msgs)); - !!newEUpperBound && (msgs = $eInverseAdd(newEUpperBound, this$static, -1, msgs)); - msgs = $basicSetEUpperBound(this$static, newEUpperBound, msgs); - !!msgs && msgs.dispatch_0(); - } - else - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, newEUpperBound, newEUpperBound)); -} - -function $toString_32(this$static, result){ - var eTypeArgument, eTypeArgument$iterator, first, index_0, instanceTypeName, label_0, tail; - if (this$static.eClassifier) { - label_0 = this$static.eClassifier.getName(); - tail = null; - if (label_0 != null) { - result.string += '' + label_0; - } - else { - instanceTypeName = this$static.eClassifier.getInstanceTypeName(); - if (instanceTypeName != null) { - index_0 = $indexOf_1(instanceTypeName, fromCodePoint(91)); - if (index_0 != -1) { - tail = instanceTypeName.substr(index_0); - result.string += '' + $substring_1(instanceTypeName == null?'null':(checkCriticalNotNull(instanceTypeName) , instanceTypeName), 0, index_0); - } - else { - result.string += '' + instanceTypeName; - } - } - } - if (!!this$static.eTypeArguments && this$static.eTypeArguments.size_0 != 0) { - first = true; - result.string += '<'; - for (eTypeArgument$iterator = new AbstractEList$EIterator(this$static.eTypeArguments); eTypeArgument$iterator.cursor != eTypeArgument$iterator.this$01_2.size_1();) { - eTypeArgument = castTo($doNext(eTypeArgument$iterator), 87); - first?(first = false):(result.string += ', ' , result); - $toString_32(eTypeArgument, result); - } - result.string += '>'; - } - tail != null && (result.string += '' + tail , result); - } - else if (this$static.eTypeParameter) { - label_0 = this$static.eTypeParameter.name_0; - label_0 != null && (result.string += '' + label_0 , result); - } - else { - result.string += '?'; - if (this$static.eLowerBound) { - result.string += ' super '; - $toString_32(this$static.eLowerBound, result); - } - else { - if (this$static.eUpperBound) { - result.string += ' extends '; - $toString_32(this$static.eUpperBound, result); - } - } - } -} - -function EGenericTypeImpl(){ - this.eRawType = eJavaObject; -} - -defineClass(241, 115, {105:1, 92:1, 90:1, 87:1, 56:1, 108:1, 49:1, 97:1, 241:1, 114:1, 115:1}, EGenericTypeImpl); -_.eBasicSetContainer_0 = function eBasicSetContainer_6(newContainer, newContainerFeatureID, msgs){ - var newERawType; - msgs = $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); - if (!!this.eTypeParameter && instanceOf(newContainer, 170)) { - newERawType = $getErasure(this, this.eTypeParameter); - newERawType != this.eRawType && (msgs = $setERawType(this, newERawType, msgs)); - } - return msgs; -} -; -_.eGet = function eGet_26(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return this.eUpperBound; - case 1: - return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , this.eTypeArguments; - case 2: - if (resolve) - return $getERawType(this); - return this.eRawType; - case 3: - return this.eLowerBound; - case 4: - return this.eTypeParameter; - case 5: - if (resolve) - return $getEClassifier(this); - return this.eClassifier; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_19(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return $basicSetEUpperBound(this, null, msgs); - case 1: - return !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)) , $basicRemove_0(this.eTypeArguments, otherEnd, msgs); - case 3: - return $basicSetELowerBound(this, null, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EGENERIC_TYPE):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_25(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eUpperBound; - case 1: - return !!this.eTypeArguments && this.eTypeArguments.size_0 != 0; - case 2: - return !!this.eRawType; - case 3: - return !!this.eLowerBound; - case 4: - return !!this.eTypeParameter; - case 5: - return !!this.eClassifier; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); -} -; -_.eSet = function eSet_24(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - $setEUpperBound(this, castTo(newValue, 87)); - return; - case 1: - !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); - $clear_13(this.eTypeArguments); - !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); - $addAll_9(this.eTypeArguments, castTo(newValue, 14)); - return; - case 3: - $setELowerBound(this, castTo(newValue, 87)); - return; - case 4: - $setETypeParameter(this, castTo(newValue, 836)); - return; - case 5: - $setEClassifier(this, castTo(newValue, 138)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_25(){ - return $clinit_EcorePackage$Literals() , EGENERIC_TYPE; -} -; -_.eUnset = function eUnset_24(featureID){ - var eClass; - switch (featureID) { - case 0: - $setEUpperBound(this, null); - return; - case 1: - !this.eTypeArguments && (this.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this, 1)); - $clear_13(this.eTypeArguments); - return; - case 3: - $setELowerBound(this, null); - return; - case 4: - $setETypeParameter(this, null); - return; - case 5: - $setEClassifier(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); -} -; -_.toString_0 = function toString_152(){ - var result; - result = new StringBuilder_1($toString_16(this)); - result.string += ' (expression: '; - $toString_32(this, result); - result.string += ')'; - return result.string; -} -; -var eJavaObject; -var Lorg_eclipse_emf_ecore_impl_EGenericTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EGenericTypeImpl', 241); -function $addUnique_10(this$static, index_0, object){ - var iter; - iter = this$static.listIterator_1(index_0); - iter.add_1(object); -} - -defineClass(1969, 1964, $intern_157); -_.addUnique = function addUnique_18(index_0, object){ - $addUnique_10(this, index_0, object); -} -; -_.basicAdd = function basicAdd_3(object, notifications){ - $addUnique_10(this, this.size_1(), object); - return notifications; -} -; -_.basicGet = function basicGet_4(index_0){ - return $get_7(this.basicList(), index_0); -} -; -_.basicIterator = function basicIterator_5(){ - return this.basicListIterator(); -} -; -_.basicList = function basicList_1(){ - return new AbstractSequentialInternalEList$1(this); -} -; -_.basicListIterator = function basicListIterator_11(){ - return this.basicListIterator_0(0); -} -; -_.basicListIterator_0 = function basicListIterator_12(index_0){ - return this.basicList().listIterator_1(index_0); -} -; -_.basicRemove = function basicRemove_3(object, notifications){ - $advanceToFind(this, object, true); - return notifications; -} -; -_.move = function move_15(newPosition, oldPosition){ - var iter, movedObject; - movedObject = $remove_4(this, oldPosition); - iter = this.listIterator_1(newPosition); - iter.add_1(movedObject); - return movedObject; -} -; -_.move_0 = function move_16(newPosition, object){ - var iter; - $advanceToFind(this, object, true); - iter = this.listIterator_1(newPosition); - iter.add_1(object); -} -; -var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList', 1969); -function $clinit_EContentsEList(){ - $clinit_EContentsEList = emptyMethod; - EMPTY_CONTENTS_ELIST = new EContentsEList$1; -} - -function $isIncludedEntry(eStructuralFeature){ - return instanceOf(eStructuralFeature, 99) && (castTo(eStructuralFeature, 18).eFlags & $intern_134) != 0; -} - -function $iterator_1(this$static){ - var result; - if (this$static.eStructuralFeatures == null) { - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - result = this$static.resolve_0()?this$static.newResolvingListIterator():this$static.newNonResolvingListIterator(); - return result; -} - -function EContentsEList(eObject, eStructuralFeatures){ - $clinit_EContentsEList(); - this.eObject = eObject; - this.eStructuralFeatures = eStructuralFeatures; -} - -defineClass(486, 1969, $intern_157, EContentsEList); -_.basicGet = function basicGet_5(index_0){ - return $get_7(this.basicList(), index_0); -} -; -_.basicIterator = function basicIterator_6(){ - if (this.eStructuralFeatures == null) { - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - return this.newNonResolvingListIterator(); -} -; -_.basicList = function basicList_2(){ - return new EContentsEList$2(this.eObject, this.eStructuralFeatures); -} -; -_.basicListIterator = function basicListIterator_13(){ - if (this.eStructuralFeatures == null) { - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - return this.newNonResolvingListIterator(); -} -; -_.basicListIterator_0 = function basicListIterator_14(index_0){ - var i, result; - if (this.eStructuralFeatures == null) { - if (index_0 < 0 || index_0 > 1) { - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); - } - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - result = this.newNonResolvingListIterator(); - for (i = 0; i < index_0; ++i) { - $next_15(result); - } - return result; -} -; -_.isEmpty = function isEmpty_33(){ - var feature, featureMap, i, j, size_0, value_0; - if (this.eStructuralFeatures != null) { - for (i = 0; i < this.eStructuralFeatures.length; ++i) { - feature = this.eStructuralFeatures[i]; - if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { - value_0 = this.eObject.eGet_1(feature, false); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - featureMap = castTo(value_0, 153); - for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { - if ($isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null) { - return false; - } - } - } - else if (feature.isMany()) { - if (!castTo(value_0, 14).isEmpty()) { - return false; - } - } - else if (value_0 != null) { - return false; - } - } - } - } - return true; -} -; -_.iterator_0 = function iterator_88(){ - return $iterator_1(this); -} -; -_.listIterator_1 = function listIterator_30(index_0){ - var i, result; - if (this.eStructuralFeatures == null) { - if (index_0 != 0) { - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=0')); - } - return $clinit_EContentsEList$FeatureIteratorImpl() , $clinit_EContentsEList$FeatureIteratorImpl() , EMPTY_ITERATOR; - } - result = this.resolve_0()?this.newResolvingListIterator():this.newNonResolvingListIterator(); - for (i = 0; i < index_0; ++i) { - $next_15(result); - } - return result; -} -; -_.move = function move_17(newPosition, oldPosition){ - throw toJs(new UnsupportedOperationException); -} -; -_.move_0 = function move_18(newPosition, o){ - throw toJs(new UnsupportedOperationException); -} -; -_.newNonResolvingListIterator = function newNonResolvingListIterator(){ - return new EContentsEList$FeatureIteratorImpl(this.eObject, this.eStructuralFeatures); -} -; -_.newResolvingListIterator = function newResolvingListIterator(){ - return new EContentsEList$ResolvingFeatureIteratorImpl(this.eObject, this.eStructuralFeatures); -} -; -_.resolve_0 = function resolve_4(){ - return true; -} -; -_.size_1 = function size_76(){ - var feature, featureMap, i, j, result, size_0, value_0; - result = 0; - if (this.eStructuralFeatures != null) { - for (i = 0; i < this.eStructuralFeatures.length; ++i) { - feature = this.eStructuralFeatures[i]; - if (!this.useIsSet() || this.eObject.eIsSet_0(feature)) { - value_0 = this.eObject.eGet_1(feature, false); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - featureMap = castTo(value_0, 153); - for (j = 0 , size_0 = featureMap.size_1(); j < size_0; ++j) { - $isIncludedEntry(featureMap.getEStructuralFeature_0(j)) && featureMap.getValue_1(j) != null && ++result; - } - } - else - feature.isMany()?(result += castTo(value_0, 14).size_1()):value_0 != null && ++result; - } - } - } - return result; -} -; -_.useIsSet = function useIsSet(){ - return true; -} -; -var EMPTY_CONTENTS_ELIST; -var Lorg_eclipse_emf_ecore_util_EContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList', 486); -function ENamedElementImpl$1($anonymous0, $anonymous1){ - $clinit_EContentsEList(); - EContentsEList.call(this, $anonymous0, $anonymous1); -} - -defineClass(1156, 486, $intern_157, ENamedElementImpl$1); -_.newNonResolvingListIterator = function newNonResolvingListIterator_0(){ - return new ENamedElementImpl$1$2(this.eObject, this.eStructuralFeatures); -} -; -_.newResolvingListIterator = function newResolvingListIterator_0(){ - return new ENamedElementImpl$1$1(this.eObject, this.eStructuralFeatures); -} -; -_.useIsSet = function useIsSet_0(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1', 1156); -function $clinit_EContentsEList$FeatureIteratorImpl(){ - $clinit_EContentsEList$FeatureIteratorImpl = emptyMethod; - EMPTY_ITERATOR = new EContentsEList$FeatureIteratorImpl$1; -} - -function $next_15(this$static){ - var result; - if (this$static.prepared > 1 || this$static.hasNext_0()) { - ++this$static.cursor; - this$static.prepared = 0; - result = this$static.preparedResult; - this$static.hasNext_0(); - return result; - } - else { - throw toJs(new NoSuchElementException); - } -} - -function $scanNext(this$static){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (this$static.valueListIndex < this$static.valueListSize) { - entry = castTo(!this$static.valueInternalEList?this$static.valueList.get_0(this$static.valueListIndex):this$static.valueInternalEList.basicGet(this$static.valueListIndex), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - return true; - } - else { - ++this$static.valueListIndex; - } - } - return false; - } - else { - return this$static.valueListIndex < this$static.valueListSize; - } -} - -function $scanNext_0(this$static, values){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (values.hasNext_0()) { - entry = castTo(values.next_1(), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - values.previous_0(); - return true; - } - } - return false; - } - else { - return values.hasNext_0(); - } -} - -function $scanPrevious(this$static){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (this$static.valueListIndex > 0) { - entry = castTo(this$static.valueList.get_0(this$static.valueListIndex - 1), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - return true; - } - else { - --this$static.valueListIndex; - } - } - return false; - } - else { - return this$static.valueListIndex > 0; - } -} - -function $scanPrevious_0(this$static, values){ - var entry, entryFeature; - if (this$static.isHandlingFeatureMap) { - while (values.hasPrevious()) { - entry = castTo(values.previous_0(), 72); - entryFeature = entry.getEStructuralFeature(); - if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 0 && (!this$static.featureFilter || entryFeature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || entryFeature.getFeatureID_0() != 0) && entry.getValue() != null) { - values.next_1(); - return true; - } - } - return false; - } - else { - return values.hasPrevious(); - } -} - -function EContentsEList$FeatureIteratorImpl(eObject, eStructuralFeatures){ - $clinit_EContentsEList$FeatureIteratorImpl(); - this.eObject = eObject; - this.eStructuralFeatures = eStructuralFeatures; -} - -defineClass(279, 1, $intern_158, EContentsEList$FeatureIteratorImpl); -_.forEachRemaining = function forEachRemaining_57(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_64(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.filter_0 = function filter_3(featureFilter){ - if (this.prepared != 0 || !!this.featureFilter) { - throw toJs(new IllegalStateException_0('Iterator already in use or already filtered')); - } - this.featureFilter = featureFilter; -} -; -_.hasNext_0 = function hasNext_46(){ - var entry, feature, newPreparedResult, newValueList, result, value_0; - switch (this.prepared) { - case 3: - case 2: - { - return true; - } - - case 1: - { - return false; - } - - case -3: - { - !this.values?++this.valueListIndex:this.values.next_1(); - } - - default:{ - if (!this.valueList || (!this.values?!$scanNext(this):!$scanNext_0(this, this.values))) { - while (this.featureCursor < this.eStructuralFeatures.length) { - feature = this.eStructuralFeatures[this.featureCursor++]; - if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { - value_0 = this.eObject.eGet_1(feature, this.resolve_0()); - this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (this.isHandlingFeatureMap || feature.isMany()) { - if (this.resolve_0()) { - newValueList = castTo(value_0, 15); - this.valueList = newValueList; - } - else { - newValueList = castTo(value_0, 69); - this.valueList = this.valueInternalEList = newValueList; - } - if (instanceOf(this.valueList, 54)) { - this.values = null; - this.valueListSize = this.valueList.size_1(); - this.valueListIndex = 0; - } - else { - this.values = !this.valueInternalEList?this.valueList.listIterator_0():this.valueInternalEList.basicListIterator(); - } - if (!this.values?$scanNext(this):$scanNext_0(this, this.values)) { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = 3; - return true; - } - } - else if (value_0 != null) { - this.valueList = null; - this.values = null; - newPreparedResult = value_0; - this.preparedResult = newPreparedResult; - this.prepared = 2; - return true; - } - } - } - this.valueList = null; - this.values = null; - this.isHandlingFeatureMap = false; - this.prepared = 1; - return false; - } - else { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(this.valueListIndex++):this.valueInternalEList.basicGet(this.valueListIndex++):this.values.next_1(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = 3; - return true; - } - } - - } -} -; -_.hasPrevious = function hasPrevious_9(){ - var entry, feature, newPreparedResult, newValueList, result, value_0; - switch (this.prepared) { - case -3: - case -2: - { - return true; - } - - case -1: - { - return false; - } - - case 3: - { - !this.values?--this.valueListIndex:this.values.previous_0(); - } - - default:{ - if (!this.valueList || (!this.values?!$scanPrevious(this):!$scanPrevious_0(this, this.values))) { - while (this.featureCursor > 0) { - feature = this.eStructuralFeatures[--this.featureCursor]; - if ((!this.featureFilter || feature.getContainerClass() != Lorg_eclipse_elk_graph_EMapPropertyHolder_2_classLit || feature.getFeatureID_0() != 0) && (!this.useIsSet() || this.eObject.eIsSet_0(feature))) { - value_0 = this.eObject.eGet_1(feature, this.resolve_0()); - this.isHandlingFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (this.isHandlingFeatureMap || feature.isMany()) { - if (this.resolve_0()) { - newValueList = castTo(value_0, 15); - this.valueList = newValueList; - } - else { - newValueList = castTo(value_0, 69); - this.valueList = this.valueInternalEList = newValueList; - } - if (instanceOf(this.valueList, 54)) { - this.valueListSize = this.valueList.size_1(); - this.valueListIndex = this.valueListSize; - } - else { - this.values = !this.valueInternalEList?this.valueList.listIterator_1(this.valueList.size_1()):this.valueInternalEList.basicListIterator_0(this.valueList.size_1()); - } - if (!this.values?$scanPrevious(this):$scanPrevious_0(this, this.values)) { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = -3; - return true; - } - } - else if (value_0 != null) { - this.valueList = null; - this.values = null; - newPreparedResult = value_0; - this.preparedResult = newPreparedResult; - this.prepared = -2; - return true; - } - } - } - this.valueList = null; - this.values = null; - this.prepared = -1; - return false; - } - else { - result = !this.values?!this.valueInternalEList?this.valueList.get_0(--this.valueListIndex):this.valueInternalEList.basicGet(--this.valueListIndex):this.values.previous_0(); - if (this.isHandlingFeatureMap) { - entry = castTo(result, 72); - entry.getEStructuralFeature(); - newPreparedResult = entry.getValue(); - this.preparedResult = newPreparedResult; - } - else { - newPreparedResult = result; - this.preparedResult = newPreparedResult; - } - this.prepared = -3; - return true; - } - } - - } -} -; -_.next_1 = function next_47(){ - return $next_15(this); -} -; -_.nextIndex_0 = function nextIndex_10(){ - return this.cursor; -} -; -_.previous_0 = function previous_10(){ - var result; - if (this.prepared < -1 || this.hasPrevious()) { - --this.cursor; - this.prepared = 0; - result = this.preparedResult; - this.hasPrevious(); - return result; - } - else { - throw toJs(new NoSuchElementException); - } -} -; -_.previousIndex = function previousIndex_9(){ - return this.cursor - 1; -} -; -_.remove = function remove_125(){ - throw toJs(new UnsupportedOperationException); -} -; -_.resolve_0 = function resolve_5(){ - return false; -} -; -_.set_1 = function set_34(o){ - throw toJs(new UnsupportedOperationException); -} -; -_.useIsSet = function useIsSet_1(){ - return true; -} -; -_.cursor = 0; -_.featureCursor = 0; -_.isHandlingFeatureMap = false; -_.prepared = 0; -_.valueListIndex = 0; -_.valueListSize = 0; -var EMPTY_ITERATOR; -var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl', 279); -function EContentsEList$ResolvingFeatureIteratorImpl(eObject, eStructuralFeatures){ - $clinit_EContentsEList$FeatureIteratorImpl(); - EContentsEList$FeatureIteratorImpl.call(this, eObject, eStructuralFeatures); -} - -defineClass(697, 279, $intern_158, EContentsEList$ResolvingFeatureIteratorImpl); -_.resolve_0 = function resolve_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$ResolvingFeatureIteratorImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/ResolvingFeatureIteratorImpl', 697); -function ENamedElementImpl$1$1($anonymous0, $anonymous1){ - $clinit_EContentsEList$FeatureIteratorImpl(); - EContentsEList$ResolvingFeatureIteratorImpl.call(this, $anonymous0, $anonymous1); -} - -defineClass(1157, 697, $intern_158, ENamedElementImpl$1$1); -_.useIsSet = function useIsSet_2(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/1', 1157); -function ENamedElementImpl$1$2($anonymous0, $anonymous1){ - $clinit_EContentsEList$FeatureIteratorImpl(); - EContentsEList$FeatureIteratorImpl.call(this, $anonymous0, $anonymous1); -} - -defineClass(1158, 279, $intern_158, ENamedElementImpl$1$2); -_.useIsSet = function useIsSet_3(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl$1$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl/1/2', 1158); -function $$init_11(this$static){ -} - -function $getFeature(this$static){ - var eClass; - if (!this$static.feature && this$static.featureID != -1) { - eClass = this$static.notifier.eClass_0(); - this$static.feature = $getEStructuralFeature(eClass, this$static.featureID); - } - return this$static.feature; -} - -function ENotificationImpl(notifier, featureID, oldDoubleValue, newDoubleValue){ - NotificationImpl.call(this, 1, oldDoubleValue, newDoubleValue); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_0(notifier, featureID, oldIntValue, newIntValue){ - NotificationImpl_0.call(this, 1, oldIntValue, newIntValue); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_1(notifier, eventType, featureID, oldValue, newValue){ - ENotificationImpl_2.call(this, notifier, eventType, featureID, oldValue, newValue, -1); -} - -function ENotificationImpl_2(notifier, eventType, featureID, oldValue, newValue, position){ - NotificationImpl_1.call(this, eventType, oldValue, newValue, position); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_3(notifier, eventType, featureID, oldValue, newValue, position, wasSet){ - NotificationImpl_2.call(this, eventType, oldValue, newValue, position, wasSet); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_4(notifier, eventType, featureID, oldBooleanValue, newBooleanValue){ - NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); - $$init_11(this); - this.notifier = notifier; - this.featureID = featureID; -} - -function ENotificationImpl_5(notifier, eventType, feature, oldByteValue, newByteValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldByteValue; - this.newSimplePrimitiveValue = newByteValue; - this.position = -1; - this.primitiveType = 1; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_6(notifier, eventType, feature, oldByteValue, newByteValue, isSetChange){ - ENotificationImpl_5.call(this, notifier, eventType, feature, oldByteValue, newByteValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_7(notifier, eventType, feature, oldCharValue, newCharValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldCharValue; - this.newSimplePrimitiveValue = newCharValue; - this.position = -1; - this.primitiveType = 2; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_8(notifier, eventType, feature, oldCharValue, newCharValue, isSetChange){ - ENotificationImpl_7.call(this, notifier, eventType, feature, oldCharValue, newCharValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_9(notifier, eventType, feature, oldDoubleValue, newDoubleValue){ - NotificationImpl.call(this, eventType, oldDoubleValue, newDoubleValue); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_10(notifier, eventType, feature, oldDoubleValue, newDoubleValue, isSetChange){ - ENotificationImpl_9.call(this, notifier, eventType, feature, oldDoubleValue, newDoubleValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_11(notifier, eventType, feature, oldFloatValue, newFloatValue){ - this.eventType = eventType; - this.oldIEEEPrimitiveValue = oldFloatValue; - this.newIEEEPrimitiveValue = newFloatValue; - this.position = -1; - this.primitiveType = 4; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_12(notifier, eventType, feature, oldFloatValue, newFloatValue, isSetChange){ - ENotificationImpl_11.call(this, notifier, eventType, feature, oldFloatValue, newFloatValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_13(notifier, eventType, feature, oldIntValue, newIntValue){ - NotificationImpl_0.call(this, eventType, oldIntValue, newIntValue); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_14(notifier, eventType, feature, oldIntValue, newIntValue, isSetChange){ - ENotificationImpl_13.call(this, notifier, eventType, feature, oldIntValue, newIntValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_15(notifier, eventType, feature, oldLongValue, newLongValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldLongValue; - this.newSimplePrimitiveValue = newLongValue; - this.position = -1; - this.primitiveType = 6; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_16(notifier, eventType, feature, oldLongValue, newLongValue, isSetChange){ - ENotificationImpl_15.call(this, notifier, eventType, feature, oldLongValue, newLongValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue){ - ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, -1); -} - -function ENotificationImpl_18(notifier, eventType, feature, oldValue, newValue, position){ - NotificationImpl_1.call(this, eventType, oldValue, newValue, position); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, isSetChange){ - ENotificationImpl_18.call(this, notifier, eventType, feature, oldValue, newValue, isSetChange?-2:-1); -} - -function ENotificationImpl_20(notifier, eventType, feature, oldShortValue, newShortValue){ - this.eventType = eventType; - this.oldSimplePrimitiveValue = oldShortValue; - this.newSimplePrimitiveValue = newShortValue; - this.position = -1; - this.primitiveType = 7; - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_21(notifier, eventType, feature, oldShortValue, newShortValue, isSetChange){ - ENotificationImpl_20.call(this, notifier, eventType, feature, oldShortValue, newShortValue); - isSetChange && (this.position = -2); -} - -function ENotificationImpl_22(notifier, eventType, feature, oldBooleanValue, newBooleanValue){ - NotificationImpl_3.call(this, eventType, oldBooleanValue, newBooleanValue); - $$init_11(this); - this.notifier = notifier; - this.feature = feature; -} - -function ENotificationImpl_23(notifier, eventType, feature, oldBooleanValue, newBooleanValue, isSetChange){ - ENotificationImpl_22.call(this, notifier, eventType, feature, oldBooleanValue, newBooleanValue); - isSetChange && (this.position = -2); -} - -defineClass(36, 143, $intern_142, ENotificationImpl, ENotificationImpl_0, ENotificationImpl_1, ENotificationImpl_2, ENotificationImpl_3, ENotificationImpl_4, ENotificationImpl_5, ENotificationImpl_6, ENotificationImpl_7, ENotificationImpl_8, ENotificationImpl_9, ENotificationImpl_10, ENotificationImpl_11, ENotificationImpl_12, ENotificationImpl_13, ENotificationImpl_14, ENotificationImpl_15, ENotificationImpl_16, ENotificationImpl_17, ENotificationImpl_18, ENotificationImpl_19, ENotificationImpl_20, ENotificationImpl_21, ENotificationImpl_22, ENotificationImpl_23); -_.getFeature = function getFeature_6(){ - return $getFeature(this); -} -; -_.getFeatureDefaultValue = function getFeatureDefaultValue_0(){ - var feature; - feature = $getFeature(this); - if (feature) { - return feature.getDefaultValue(); - } - return null; -} -; -_.getFeatureID = function getFeatureID_10(expectedClass){ - this.featureID == -1 && !!this.feature && (this.featureID = this.notifier.eDerivedStructuralFeatureID(this.feature.getFeatureID_0(), this.feature.getContainerClass())); - return this.notifier.eBaseStructuralFeatureID(this.featureID, expectedClass); -} -; -_.getNotifier = function getNotifier_6(){ - return this.notifier; -} -; -_.isFeatureUnsettable = function isFeatureUnsettable_0(){ - var feature; - feature = $getFeature(this); - if (feature) { - return feature.isUnsettable(); - } - return false; -} -; -_.featureID = -1; -var Lorg_eclipse_emf_ecore_impl_ENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENotificationImpl', 36); -function $eBasicRemoveFromContainerFeature_9(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 10) { - return this$static.eContainer.eInverseRemove(this$static, 11, Lorg_eclipse_emf_ecore_EClass_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function $getEGenericExceptions(this$static){ - if (!this$static.eGenericExceptions) { - this$static.eGenericExceptions = new EOperationImpl$2(this$static, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this$static); - !this$static.eExceptions && (this$static.eExceptions = new EOperationImpl$1(this$static, this$static)); - } - return this$static.eGenericExceptions; -} - -function $isSetEExceptions(this$static){ - return !!this$static.eExceptions && $getEGenericExceptions(this$static.eExceptions.this$01).size_0 != 0 && !(!!this$static.eGenericExceptions && $isSet_0(this$static.eGenericExceptions)); -} - -function EOperationImpl(){ - ETypedElementImpl.call(this); -} - -defineClass(399, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 59:1, 108:1, 472:1, 49:1, 97:1, 150:1, 399:1, 284:1, 114:1, 115:1}, EOperationImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_10(msgs){ - return $eBasicRemoveFromContainerFeature_9(this, msgs); -} -; -_.eGet = function eGet_27(featureID, resolve, coreType){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null; - case 11: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , this.eTypeParameters; - case 12: - return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , this.eParameters; - case 13: - return !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)) , this.eExceptions; - case 14: - return $getEGenericExceptions(this); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_17(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 10: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_9(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 10, msgs); - case 12: - return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicAdd_0(this.eParameters, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_20(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - case 10: - return $eBasicSetContainer(this, null, 10, msgs); - case 11: - return !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)) , $basicRemove_0(this.eTypeParameters, otherEnd, msgs); - case 12: - return !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)) , $basicRemove_0(this.eParameters, otherEnd, msgs); - case 14: - return $basicRemove_0($getEGenericExceptions(this), otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_26(featureID){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return upper = this.upperBound , upper > 1 || upper == -1; - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 26):null); - case 11: - return !!this.eTypeParameters && this.eTypeParameters.size_0 != 0; - case 12: - return !!this.eParameters && this.eParameters.size_0 != 0; - case 13: - return !!this.eExceptions && $getEGenericExceptions(this.eExceptions.this$01).size_0 != 0 && !(!!this.eGenericExceptions && $isSet_0(this.eGenericExceptions)); - case 14: - return !!this.eGenericExceptions && $isSet_0(this.eGenericExceptions); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); -} -; -_.eSet = function eSet_25(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - $setUpperBound(this, castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 11: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); - $clear_13(this.eTypeParameters); - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); - $addAll_9(this.eTypeParameters, castTo(newValue, 14)); - return; - case 12: - !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); - $clear_13(this.eParameters); - !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); - $addAll_9(this.eParameters, castTo(newValue, 14)); - return; - case 13: - !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); - $clear_12(this.eExceptions); - !this.eExceptions && (this.eExceptions = new EOperationImpl$1(this, this)); - $addAll_9(this.eExceptions, castTo(newValue, 14)); - return; - case 14: - $clear_13($getEGenericExceptions(this)); - $addAll_9($getEGenericExceptions(this), castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_26(){ - return $clinit_EcorePackage$Literals() , EOPERATION; -} -; -_.eUnset = function eUnset_25(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - $setUpperBound(this, 1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 11: - !this.eTypeParameters && (this.eTypeParameters = new EObjectContainmentEList$Resolving(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, this, 11)); - $clear_13(this.eTypeParameters); - return; - case 12: - !this.eParameters && (this.eParameters = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EParameter_2_classLit, this, 12, 10)); - $clear_13(this.eParameters); - return; - case 13: - !!this.eExceptions && $clear_12(this.eExceptions); - return; - case 14: - !!this.eGenericExceptions && $clear_13(this.eGenericExceptions); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EOPERATION:eClass), featureID)); -} -; -_.freeze = function freeze_7(){ - var i, size_0; - if (this.eParameters) { - for (i = 0 , size_0 = this.eParameters.size_0; i < size_0; ++i) { - $freeze($get_20(this.eParameters, i)); - } - } - $getEType(this); - this.eFlags |= 1; -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl', 399); -function $delegateAdd_1(this$static, index_0, eClassifier){ - $add_20($getEGenericExceptions(this$static.this$01), index_0, $wrap_1(eClassifier)); -} - -function $delegateAdd_2(this$static, eClassifier){ - $add_21($getEGenericExceptions(this$static.this$01), $wrap_1(eClassifier)); -} - -function $delegateContains_0(this$static, object){ - var eClassifier, eClassifier$iterator; - for (eClassifier$iterator = new AbstractEList$EIterator(this$static); eClassifier$iterator.cursor != eClassifier$iterator.this$01_2.size_1();) { - eClassifier = castTo($doNext(eClassifier$iterator), 138); - if (maskUndefined(object) === maskUndefined(eClassifier)) { - return true; - } - } - return false; -} - -function $delegateSet_0(this$static, index_0, eClassifier){ - var eGenericType, result, result0; - eGenericType = castTo($get_20($getEGenericExceptions(this$static.this$01), index_0), 87); - result0 = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - (result0.eIsProxy()?$eResolveProxy(this$static.owner, castTo(result0, 49)):result0) == eClassifier?$getERawType(eGenericType):$setEClassifier(eGenericType, eClassifier); - return result0; -} - -function $wrap_1(eClassifier){ - var eGenericType, eGenericType0; - eGenericType0 = ($clinit_EcoreFactory() , eGenericType = new EGenericTypeImpl , eGenericType); - $setEClassifier(eGenericType0, eClassifier); - return eGenericType0; -} - -function EOperationImpl$1(this$0, $anonymous0){ - this.this$01 = this$0; - DelegatingEcoreEList.call(this, $anonymous0); -} - -defineClass(505, 742, $intern_156, EOperationImpl$1); -_.delegateAdd = function delegateAdd_3(index_0, eClassifier){ - $delegateAdd_1(this, index_0, castTo(eClassifier, 138)); -} -; -_.delegateAdd_0 = function delegateAdd_4(eClassifier){ - $delegateAdd_2(this, castTo(eClassifier, 138)); -} -; -_.delegateGet = function delegateGet_1(index_0){ - var eGenericType, result; - return eGenericType = castTo($get_20($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); -} -; -_.delegateRemove = function delegateRemove_1(index_0){ - var eGenericType, result; - return eGenericType = castTo($remove_35($getEGenericExceptions(this.this$01), index_0), 87) , result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT); -} -; -_.delegateSet = function delegateSet_1(index_0, eClassifier){ - return $delegateSet_0(this, index_0, castTo(eClassifier, 138)); -} -; -_.canContainNull = function canContainNull_5(){ - return false; -} -; -_.createNotification = function createNotification_5(eventType, oldObject, newObject, index_0, wasSet){ - return null; -} -; -_.delegateBasicList = function delegateBasicList_1(){ - return new EOperationImpl$1$1(this); -} -; -_.delegateClear = function delegateClear_1(){ - $clear_13($getEGenericExceptions(this.this$01)); -} -; -_.delegateContains = function delegateContains_1(object){ - return $delegateContains_0(this, object); -} -; -_.delegateContainsAll = function delegateContainsAll_1(collection){ - var object, object$iterator; - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$delegateContains_0(this, object)) { - return false; - } - } - return true; -} -; -_.delegateEquals = function delegateEquals_1(object){ - var i, j, list; - if (instanceOf(object, 15)) { - list = castTo(object, 15); - if (list.size_1() == $getEGenericExceptions(this.this$01).size_0) { - for (i = list.iterator_0() , j = new AbstractEList$EIterator(this); i.hasNext_0();) { - if (maskUndefined(i.next_1()) !== maskUndefined($doNext(j))) { - return false; - } - } - return true; - } - } - return false; -} -; -_.delegateHashCode = function delegateHashCode_1(){ - var eGenericType, eGenericType$iterator, hashCode, object, result; - hashCode = 1; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - object = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - hashCode = 31 * hashCode + (!object?0:hashCode__I__devirtual$(object)); - } - return hashCode; -} -; -_.delegateIndexOf = function delegateIndexOf_1(object){ - var eGenericType, eGenericType$iterator, index_0, result; - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))) { - return index_0; - } - ++index_0; - } - return -1; -} -; -_.delegateIsEmpty = function delegateIsEmpty_1(){ - return $getEGenericExceptions(this.this$01).size_0 == 0; -} -; -_.delegateList_1 = function delegateList_3(){ - return null; -} -; -_.delegateSize = function delegateSize_1(){ - return $getEGenericExceptions(this.this$01).size_0; -} -; -_.delegateToArray = function delegateToArray_3(){ - var eGenericType, eGenericType$iterator, index_0, result, result0, size_0; - size_0 = $getEGenericExceptions(this.this$01).size_0; - result0 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, size_0, 5, 1); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - result0[index_0++] = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - } - return result0; -} -; -_.delegateToArray_0 = function delegateToArray_4(array){ - var eGenericType, eGenericType$iterator, index_0, newArray, rawType, result, size_0; - size_0 = $getEGenericExceptions(this.this$01).size_0; - if (array.length < size_0) { - newArray = newInstance_11(getClass__Ljava_lang_Class___devirtual$(array).componentType, size_0); - array = newArray; - } - array.length > size_0 && setCheck(array, size_0, null); - index_0 = 0; - for (eGenericType$iterator = new AbstractEList$EIterator($getEGenericExceptions(this.this$01)); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - rawType = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); - setCheck(array, index_0++, rawType); - } - return array; -} -; -_.delegateToString = function delegateToString_1(){ - var eGenericExceptions, i, result, size_0, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - eGenericExceptions = $getEGenericExceptions(this.this$01); - for (i = 0 , size_0 = $getEGenericExceptions(this.this$01).size_0; i < size_0;) { - $append_3(stringBuffer, valueOf_7((result = castTo($get_20(eGenericExceptions, i), 87).eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)))); - ++i < size_0 && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} -; -_.dispatchNotification = function dispatchNotification_4(notification){ -} -; -_.getFeatureID_0 = function getFeatureID_11(){ - return 13; -} -; -_.hasInstanceClass = function hasInstanceClass_2(){ - return true; -} -; -_.hasInverse = function hasInverse_5(){ - return false; -} -; -_.hasManyInverse = function hasManyInverse_2(){ - return false; -} -; -_.hasNavigableInverse = function hasNavigableInverse_3(){ - return false; -} -; -_.hasProxies = function hasProxies_2(){ - return true; -} -; -_.isContainment = function isContainment_5(){ - return false; -} -; -_.isEObject = function isEObject_3(){ - return true; -} -; -_.isInstance = function isInstance_5(object){ - return instanceOf(object, 138); -} -; -_.isSet_0 = function isSet_9(){ - return $isSetEExceptions(this.this$01); -} -; -_.isUnique = function isUnique_6(){ - return true; -} -; -_.useEquals = function useEquals_12(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1', 505); -function EOperationImpl$1$1(this$1){ - this.this$11 = this$1; -} - -defineClass(1340, 1964, $intern_37, EOperationImpl$1$1); -_.listIterator_1 = function listIterator_31(index_0){ - return $basicListIterator(this.this$11, index_0); -} -; -_.size_1 = function size_77(){ - return $getEGenericExceptions(this.this$11.this$01).size_0; -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/1/1', 1340); -function $isSet_0(this$static){ - var eGenericType, eGenericType$iterator; - for (eGenericType$iterator = new AbstractEList$EIterator(this$static); eGenericType$iterator.cursor != eGenericType$iterator.this$01_2.size_1();) { - eGenericType = castTo($doNext(eGenericType$iterator), 87); - if (!!eGenericType.eTypeParameter || (!eGenericType.eTypeArguments && (eGenericType.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, eGenericType, 1)) , eGenericType.eTypeArguments).size_0 != 0) { - return true; - } - } - return false; -} - -function $shadowAdd_0(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 3, 13, null, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowRemove_0(this$static, eGenericType, notifications){ - var notification, result; - notification = new ENotificationImpl_3(this$static.owner, 4, 13, (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), null, $indexOf_6(this$static, eGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function $shadowSet_0(this$static, oldEGenericType, newEGenericType, notifications){ - var notification, result, result0; - notification = new ENotificationImpl_3(this$static.owner, 1, 13, (result0 = oldEGenericType.eRawType , result0?result0:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), (result = newEGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)), $indexOf_6(this$static, oldEGenericType), false); - !notifications?(notifications = notification):notifications.add_5(notification); - return notifications; -} - -function EOperationImpl$2(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentEList$Unsettable.call(this, $anonymous0, $anonymous1, 14); -} - -defineClass(1341, 545, $intern_154, EOperationImpl$2); -_.move = function move_19(targetIndex, sourceIndex){ - var result0, result; - return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , EOPERATION__EEXCEPTIONS), valueOf_4(sourceIndex), (result = result0.eRawType , result?result:EJAVA_OBJECT), targetIndex)) , result0; -} -; -_.shadowAdd = function shadowAdd_1(eGenericType, notifications){ - return $shadowAdd_0(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowRemove = function shadowRemove_1(eGenericType, notifications){ - return $shadowRemove_0(this, castTo(eGenericType, 87), notifications); -} -; -_.shadowSet = function shadowSet_1(oldEGenericType, newEGenericType, notifications){ - return $shadowSet_0(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), notifications); -} -; -_.createNotification = function createNotification_6(eventType, oldObject, newObject, index_0, wasSet){ - switch (eventType) { - case 3: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 > 1); - } - - case 5: - { - return $createNotification(this, eventType, oldObject, newObject, index_0, this.size_0 - castTo(newObject, 15).size_1() > 0); - } - - default:{ - return new ENotificationImpl_3(this.owner, eventType, this.featureID, oldObject, newObject, index_0, true); - } - - } -} -; -_.hasShadow = function hasShadow_1(){ - return true; -} -; -_.isSet_0 = function isSet_10(){ - return $isSet_0(this); -} -; -_.unset = function unset_6(){ - $clear_13(this); -} -; -var Lorg_eclipse_emf_ecore_impl_EOperationImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EOperationImpl/2', 1341); -function EPackageImpl$1(this$0, val$factory){ - this.this$01 = this$0; - this.val$factory2 = val$factory; -} - -defineClass(498, 1, {1938:1, 498:1}, EPackageImpl$1); -var Lorg_eclipse_emf_ecore_impl_EPackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/1', 498); -function EObjectContainmentWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentEList.call(this, dataClass, owner, featureID); - this.inverseFeatureID = inverseFeatureID; -} - -defineClass(16, 85, $intern_154, EObjectContainmentWithInverseEList); -_.getInverseFeatureClass = function getInverseFeatureClass_0(){ - return this.dataClass; -} -; -_.getInverseFeatureID = function getInverseFeatureID_0(){ - return this.inverseFeatureID; -} -; -_.hasNavigableInverse = function hasNavigableInverse_4(){ - return true; -} -; -_.inverseFeatureID = 0; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList', 16); -function EObjectContainmentWithInverseEList$Resolving(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(353, 16, $intern_154, EObjectContainmentWithInverseEList$Resolving); -_.hasProxies = function hasProxies_3(){ - return true; -} -; -_.resolve = function resolve_7(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Resolving', 353); -function EPackageImpl$2(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentWithInverseEList$Resolving.call(this, $anonymous0, $anonymous1, 5, 6); -} - -defineClass(298, 353, $intern_154, EPackageImpl$2); -_.didChange = function didChange_1(){ - this.this$01.eNameToEClassifierMap = null; -} -; -var Lorg_eclipse_emf_ecore_impl_EPackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/2', 298); -function EPackageImpl$3(){ -} - -defineClass(1228, 1, {}, EPackageImpl$3); -var Lorg_eclipse_emf_ecore_impl_EPackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/3', 1228); -function $getEFactory(this$static, nsURI){ - var ePackage, ePackageDescriptor, result; - ePackage = $get_15(this$static.stringMap, nsURI); - if (instanceOf(ePackage, 235)) { - result = castTo(ePackage, 235); - result.getNsURI() == null && undefined; - return result.getEFactoryInstance(); - } - else if (instanceOf(ePackage, 498)) { - ePackageDescriptor = castTo(ePackage, 1938); - result = ePackageDescriptor.val$factory2; - return result; - } - else { - return null; - } -} - -function $getEPackage_0(this$static, nsURI){ - var ePackage, ePackageDescriptor, result; - ePackage = nsURI == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, nsURI); - if (instanceOf(ePackage, 235)) { - result = castTo(ePackage, 235); - result.getNsURI() == null && undefined; - return result; - } - else if (instanceOf(ePackage, 498)) { - ePackageDescriptor = castTo(ePackage, 1938); - result = ePackageDescriptor.this$01; - !!result && (result.nsURI == null?undefined:nsURI == null?$put_9(this$static.hashCodeMap, null, result):$put_10(this$static.stringMap, nsURI, result)); - return result; - } - else { - return null; - } -} - -function EPackageRegistryImpl(){ - HashMap.call(this); -} - -defineClass(718, 43, $intern_76, EPackageRegistryImpl); -_.containsKey = function containsKey_16(key){ - return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); -} -; -var Lorg_eclipse_emf_ecore_impl_EPackageRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageRegistryImpl', 718); -function $eBasicRemoveFromContainerFeature_10(this$static, msgs){ - var eClass, inverseFeature; - if (this$static.eFlags_0 >> 16 == 10) { - return this$static.eContainer.eInverseRemove(this$static, 12, Lorg_eclipse_emf_ecore_EOperation_2_classLit, msgs); - } - return inverseFeature = $getEOpposite(castTo($getEStructuralFeature((eClass = castTo($getField(this$static, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); -} - -function EParameterImpl(){ - ETypedElementImpl.call(this); -} - -defineClass(509, 284, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 2017:1, 108:1, 472:1, 49:1, 97:1, 150:1, 509:1, 284:1, 114:1, 115:1}, EParameterImpl); -_.eBasicRemoveFromContainerFeature = function eBasicRemoveFromContainerFeature_11(msgs){ - return $eBasicRemoveFromContainerFeature_10(this, msgs); -} -; -_.eGet = function eGet_28(featureID, resolve, coreType){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID), resolve, coreType); -} -; -_.eInverseAdd_0 = function eInverseAdd_18(otherEnd, featureID, msgs){ - var eClass, eContainerFeatureID, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicAdd_0(this.eAnnotations, otherEnd, msgs); - case 10: - !!this.eContainer && (msgs = (eContainerFeatureID = this.eFlags_0 >> 16 , eContainerFeatureID >= 0?$eBasicRemoveFromContainerFeature_10(this, msgs):this.eContainer.eInverseRemove(this, -1 - eContainerFeatureID, null, msgs))); - return $eBasicSetContainer(this, otherEnd, 10, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseAdd(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); -} -; -_.eInverseRemove_0 = function eInverseRemove_21(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 9: - return $basicUnsetEGenericType(this, msgs); - case 10: - return $eBasicSetContainer(this, null, 10, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_27(featureID){ - var eClass, lower, upper; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return upper = this.upperBound , upper > 1 || upper == -1; - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return !!(this.eFlags_0 >> 16 == 10?castTo(this.eContainer, 59):null); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EPARAMETER:eClass), featureID)); -} -; -_.eStaticClass = function eStaticClass_27(){ - return $clinit_EcorePackage$Literals() , EPARAMETER; -} -; -var Lorg_eclipse_emf_ecore_impl_EParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EParameterImpl', 509); -function $basicGetEReferenceType(this$static){ - var eType; - if (!this$static.eReferenceType) { - eType = this$static.eType; - instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); - } - return this$static.eReferenceType; -} - -function $getEOpposite(this$static){ - var oldEOpposite; - if (!!this$static.eOpposite && (this$static.eOpposite.eFlags_0 & 64) != 0) { - oldEOpposite = this$static.eOpposite; - this$static.eOpposite = castTo($eResolveProxy(this$static, oldEOpposite), 18); - this$static.eOpposite != oldEOpposite && (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 9, 21, oldEOpposite, this$static.eOpposite)); - } - return this$static.eOpposite; -} - -function $getEReferenceType(this$static){ - var eType; - if (!this$static.eReferenceType || (this$static.eFlags & 1) == 0 && (this$static.eReferenceType.eFlags_0 & 64) != 0) { - eType = $getEType(this$static); - instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); - } - return this$static.eReferenceType; -} - -function $setContainment(this$static, value_0){ - $setContainmentGen(this$static, value_0); - instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 2); -} - -function $setContainmentGen(this$static, newContainment){ - var oldContainment; - oldContainment = (this$static.eFlags & $intern_134) != 0; - newContainment?(this$static.eFlags |= $intern_134):(this$static.eFlags &= -32769); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 18, oldContainment, newContainment)); -} - -function $setEOpposite(this$static, newEOpposite){ - var oldEOpposite; - oldEOpposite = this$static.eOpposite; - this$static.eOpposite = newEOpposite; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 21, oldEOpposite, this$static.eOpposite)); -} - -function $setResolveProxies(this$static, newResolveProxies){ - var oldResolveProxies; - oldResolveProxies = (this$static.eFlags & $intern_63) != 0; - newResolveProxies?(this$static.eFlags |= $intern_63):(this$static.eFlags &= -65537); - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_4(this$static, 1, 20, oldResolveProxies, newResolveProxies)); -} - -function EReferenceImpl(){ - EStructuralFeatureImpl.call(this); - this.eFlags |= $intern_63; -} - -defineClass(99, 449, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 18:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 99:1, 449:1, 284:1, 114:1, 115:1, 677:1}, EReferenceImpl); -_.eGet = function eGet_29(featureID, resolve, coreType){ - var eClass, lower, theOpposite, upper; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return $clinit_Boolean() , (this.eFlags & 256) != 0?true:false; - case 3: - return $clinit_Boolean() , (this.eFlags & 512) != 0?true:false; - case 4: - return valueOf_4(this.lowerBound); - case 5: - return valueOf_4(this.upperBound); - case 6: - return $clinit_Boolean() , upper = this.upperBound , upper > 1 || upper == -1?true:false; - case 7: - return $clinit_Boolean() , lower = this.lowerBound , lower >= 1?true:false; - case 8: - if (resolve) - return $getEType(this); - return this.eType; - case 9: - return this.eGenericType; - case 10: - return $clinit_Boolean() , (this.eFlags & $intern_137) != 0?true:false; - case 11: - return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; - case 12: - return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; - case 13: - return this.defaultValueLiteral; - case 14: - return $getDefaultValue(this); - case 15: - return $clinit_Boolean() , (this.eFlags & $intern_149) != 0?true:false; - case 16: - return $clinit_Boolean() , (this.eFlags & $intern_17) != 0?true:false; - case 17: - return $getEContainingClass(this); - case 18: - return $clinit_Boolean() , (this.eFlags & $intern_134) != 0?true:false; - case 19: - return $clinit_Boolean() , theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0?true:false; - case 20: - return $clinit_Boolean() , (this.eFlags & $intern_63) != 0?true:false; - case 21: - if (resolve) - return $getEOpposite(this); - return this.eOpposite; - case 22: - if (resolve) - return $getEReferenceType(this); - return $basicGetEReferenceType(this); - case 23: - return !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)) , this.eKeys; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_28(featureID){ - var eClass, lower, theOpposite, upper; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return (this.eFlags & 256) == 0; - case 3: - return (this.eFlags & 512) == 0; - case 4: - return this.lowerBound != 0; - case 5: - return this.upperBound != 1; - case 6: - return upper = this.upperBound , upper > 1 || upper == -1; - case 7: - return lower = this.lowerBound , lower >= 1; - case 8: - return !!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0; - case 9: - return !!this.eGenericType && !(!!this.eType && !this.eGenericType.eTypeParameter && $getETypeArguments(this.eGenericType).size_0 == 0); - case 10: - return (this.eFlags & $intern_137) == 0; - case 11: - return (this.eFlags & $intern_150) != 0; - case 12: - return (this.eFlags & $intern_61) != 0; - case 13: - return this.defaultValueLiteral != null; - case 14: - return $getDefaultValue(this) != null; - case 15: - return (this.eFlags & $intern_149) != 0; - case 16: - return (this.eFlags & $intern_17) != 0; - case 17: - return !!$getEContainingClass(this); - case 18: - return (this.eFlags & $intern_134) != 0; - case 19: - return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; - case 20: - return (this.eFlags & $intern_63) == 0; - case 21: - return !!this.eOpposite; - case 22: - return !!$basicGetEReferenceType(this); - case 23: - return !!this.eKeys && this.eKeys.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); -} -; -_.eSet = function eSet_26(featureID, newValue){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName_0(this, castToString(newValue)); - return; - case 2: - $setOrdered(this, $booleanValue(castToBoolean(newValue))); - return; - case 3: - $setUnique_2(this, $booleanValue(castToBoolean(newValue))); - return; - case 4: - $setLowerBound(this, castTo(newValue, 19).value_0); - return; - case 5: - $setUpperBound(this, castTo(newValue, 19).value_0); - return; - case 8: - $setEType(this, castTo(newValue, 138)); - return; - case 9: - msgs = $setEGenericType(this, castTo(newValue, 87), null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, $booleanValue(castToBoolean(newValue))); - return; - case 11: - $setVolatile(this, $booleanValue(castToBoolean(newValue))); - return; - case 12: - $setTransient(this, $booleanValue(castToBoolean(newValue))); - return; - case 13: - $setDefaultValueLiteral(this, castToString(newValue)); - return; - case 15: - $setUnsettable(this, $booleanValue(castToBoolean(newValue))); - return; - case 16: - $setDerived(this, $booleanValue(castToBoolean(newValue))); - return; - case 18: - $setContainment(this, $booleanValue(castToBoolean(newValue))); - return; - case 20: - $setResolveProxies(this, $booleanValue(castToBoolean(newValue))); - return; - case 21: - $setEOpposite(this, castTo(newValue, 18)); - return; - case 23: - !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); - $clear_13(this.eKeys); - !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); - $addAll_9(this.eKeys, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_28(){ - return $clinit_EcorePackage$Literals() , EREFERENCE; -} -; -_.eUnset = function eUnset_26(featureID){ - var eClass, msgs; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 4); - $setName(this, null); - return; - case 2: - $setOrdered(this, true); - return; - case 3: - $setUnique_2(this, true); - return; - case 4: - $setLowerBound(this, 0); - return; - case 5: - $setUpperBound(this, 1); - return; - case 8: - $setEType(this, null); - return; - case 9: - msgs = $setEGenericType(this, null, null); - !!msgs && msgs.dispatch_0(); - return; - case 10: - $setChangeable(this, true); - return; - case 11: - $setVolatile(this, false); - return; - case 12: - $setTransient(this, false); - return; - case 13: - this.defaultValueFactory = null; - $setDefaultValueLiteralGen(this, null); - return; - case 15: - $setUnsettable(this, false); - return; - case 16: - $setDerived(this, false); - return; - case 18: - $setContainmentGen(this, false); - instanceOf(this.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 2); - return; - case 20: - $setResolveProxies(this, true); - return; - case 21: - $setEOpposite(this, null); - return; - case 23: - !this.eKeys && (this.eKeys = new EObjectResolvingEList(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, this, 23)); - $clear_13(this.eKeys); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?EREFERENCE:eClass), featureID)); -} -; -_.freeze = function freeze_8(){ - $getEReferenceType(this); - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), this)); - $getEType(this); - this.eFlags |= 1; -} -; -_.getEOpposite = function getEOpposite_0(){ - return $getEOpposite(this); -} -; -_.isContainer = function isContainer_0(){ - var theOpposite; - return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; -} -; -_.isContainment = function isContainment_6(){ - return (this.eFlags & $intern_134) != 0; -} -; -_.isResolveProxies_0 = function isResolveProxies_1(){ - return (this.eFlags & $intern_63) != 0; -} -; -_.setEType = function setEType_1(newEType, msgs){ - this.eReferenceType = null; - return $setEType_0(this, newEType, msgs); -} -; -_.toString_0 = function toString_153(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_29(this); - result = new StringBuffer_1($toString_29(this)); - result.string += ' (containment: '; - $append_4(result, (this.eFlags & $intern_134) != 0); - result.string += ', resolveProxies: '; - $append_4(result, (this.eFlags & $intern_63) != 0); - result.string += ')'; - return result.string; -} -; -var Lorg_eclipse_emf_ecore_impl_EReferenceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EReferenceImpl', 99); -function $setKey(this$static, key){ - $setTypedKeyGen(this$static, key == null?null:(checkCriticalNotNull(key) , key)); -} - -function $setTypedKey_0(this$static, newKey){ - $setTypedKeyGen(this$static, newKey == null?null:(checkCriticalNotNull(newKey) , newKey)); -} - -function $setTypedKeyGen(this$static, newKey){ - var oldKey; - oldKey = this$static.key; - this$static.key = newKey; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 0, oldKey, this$static.key)); -} - -function $setTypedValue_0(this$static, newValue){ - var oldValue; - oldValue = this$static.value_0; - this$static.value_0 = newValue; - (this$static.eFlags_0 & 4) != 0 && (this$static.eFlags_0 & 1) == 0 && $eNotify(this$static, new ENotificationImpl_1(this$static, 1, 1, oldValue, this$static.value_0)); -} - -function $setValue_2(this$static, value_0){ - var oldValue; - oldValue = this$static.value_0; - $setTypedValue_0(this$static, value_0); - return oldValue; -} - -function EStringToStringMapEntryImpl(){ -} - -defineClass(548, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 548:1, 114:1, 115:1}, EStringToStringMapEntryImpl); -_.equals_0 = function equals_196(other){ - return this === other; -} -; -_.getKey = function getKey_11(){ - return this.key; -} -; -_.getValue = function getValue_14(){ - return this.value_0; -} -; -_.hashCode_1 = function hashCode_82(){ - return getHashCode_0(this); -} -; -_.setKey = function setKey_2(key){ - $setKey(this, castToString(key)); -} -; -_.setValue = function setValue_14(value_0){ - return $setValue_2(this, castToString(value_0)); -} -; -_.eGet = function eGet_30(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return this.key; - case 1: - return this.value_0; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_29(featureID){ - var eClass; - switch (featureID) { - case 0: - return this.key != null; - case 1: - return this.value_0 != null; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); -} -; -_.eSet = function eSet_27(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - $setTypedKey_0(this, castToString(newValue)); - return; - case 1: - $setTypedValue_0(this, castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_29(){ - return $clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY; -} -; -_.eUnset = function eUnset_27(featureID){ - var eClass; - switch (featureID) { - case 0: - $setTypedKeyGen(this, null); - return; - case 1: - $setTypedValue_0(this, null); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ESTRING_TO_STRING_MAP_ENTRY:eClass), featureID)); -} -; -_.getHash = function getHash_2(){ - var theKey; - if (this.hash == -1) { - theKey = this.key; - this.hash = theKey == null?0:getHashCode_1(theKey); - } - return this.hash; -} -; -_.setHash = function setHash_2(hash){ - this.hash = hash; -} -; -_.toString_0 = function toString_154(){ - var result; - if ((this.eFlags_0 & 64) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (key: '; - $append_3(result, this.key); - result.string += ', value: '; - $append_3(result, this.value_0); - result.string += ')'; - return result.string; -} -; -_.hash = -1; -_.key = null; -_.value_0 = null; -var Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStringToStringMapEntryImpl', 548); -var Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap/Entry/Internal'); -function $validate_2(this$static, value_0){ - var valueClass; - if (value_0 != null && !this$static.eStructuralFeature.getEType().isInstance(value_0)) { - valueClass = instanceOf(value_0, 56)?castTo(value_0, 56).eClass_0().name_0:$getName(getClass__Ljava_lang_Class___devirtual$(value_0)); - throw toJs(new ClassCastException_0("The feature '" + this$static.eStructuralFeature.getName() + "'s type '" + this$static.eStructuralFeature.getEType().getName() + "' does not permit a value of type '" + valueClass + "'")); - } -} - -function EStructuralFeatureImpl$BasicFeatureMapEntry(eStructuralFeature){ - this.eStructuralFeature = eStructuralFeature; -} - -defineClass(565, 1, $intern_159); -_.createEntry = function createEntry(value_0){ - return this.createEntry_0(castTo(value_0, 49)); -} -; -_.createEntry_0 = function createEntry_0(value_0){ - return this.createEntry(value_0); -} -; -_.equals_0 = function equals_197(that){ - var entry, value_0; - if (this === that) { - return true; - } - else if (instanceOf(that, 72)) { - entry = castTo(that, 72); - if (entry.getEStructuralFeature() == this.eStructuralFeature) { - value_0 = this.getValue(); - return value_0 == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(value_0, entry.getValue()); - } - else { - return false; - } - } - else { - return false; - } -} -; -_.getEStructuralFeature = function getEStructuralFeature_1(){ - return this.eStructuralFeature; -} -; -_.hashCode_1 = function hashCode_83(){ - var value_0; - value_0 = this.getValue(); - return hashCode__I__devirtual$(this.eStructuralFeature) ^ (value_0 == null?0:hashCode__I__devirtual$(value_0)); -} -; -_.toString_0 = function toString_155(){ - var eStructuralFeature, prefix; - eStructuralFeature = this.eStructuralFeature; - prefix = $getEPackage(eStructuralFeature.getEContainingClass()).getNsPrefix(); - eStructuralFeature.getName(); - return (prefix != null && prefix.length != 0?prefix + ':' + eStructuralFeature.getName():eStructuralFeature.getName()) + '=' + this.getValue(); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$BasicFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/BasicFeatureMapEntry', 565); -function $inverseAdd(this$static, owner, otherEnd, featureID, notifications){ - var containmentFeatureID; - if (otherEnd) { - containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); - notifications = otherEnd.eInverseAdd(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); - } - return notifications; -} - -function $inverseRemove(this$static, owner, otherEnd, featureID, notifications){ - var containmentFeatureID; - if (otherEnd) { - containmentFeatureID = $getFeatureID(owner.eClass_0(), this$static.eStructuralFeature); - notifications = otherEnd.eInverseRemove(owner, -1 - (containmentFeatureID == -1?featureID:containmentFeatureID), null, notifications); - } - return notifications; -} - -function EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(eStructuralFeature, value_0){ - EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); - this.value_0 = value_0; -} - -defineClass(776, 565, $intern_159, EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry); -_.createEntry_0 = function createEntry_1(value_0){ - return new EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry(this.eStructuralFeature, value_0); -} -; -_.getValue = function getValue_15(){ - return this.value_0; -} -; -_.inverseAdd_0 = function inverseAdd_3(owner, featureID, notifications){ - return $inverseAdd(this, owner, this.value_0, featureID, notifications); -} -; -_.inverseRemove_0 = function inverseRemove_3(owner, featureID, notifications){ - return $inverseRemove(this, owner, this.value_0, featureID, notifications); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$ContainmentUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry', 776); -function EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(feature, featureMapFeature){ - this.feature = feature; - this.featureMapFeature = featureMapFeature; -} - -defineClass(1314, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator); -_.dynamicGet_0 = function dynamicGet_3(owner, settings, index_0, resolve, coreType){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.setting(this.feature).get_6(resolve); -} -; -_.dynamicInverseAdd = function dynamicInverseAdd(owner, settings, index_0, otherEnd, notifications){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.basicAdd_0(this.feature, otherEnd, notifications); -} -; -_.dynamicInverseRemove = function dynamicInverseRemove(owner, settings, index_0, otherEnd, notifications){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.basicRemove_0(this.feature, otherEnd, notifications); -} -; -_.dynamicIsSet = function dynamicIsSet(owner, settings, index_0){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - return featureMap.setting(this.feature).isSet_0(); -} -; -_.dynamicSet_0 = function dynamicSet_3(owner, settings, index_0, newValue){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - featureMap.setting(this.feature).set_1(newValue); -} -; -_.dynamicSetting = function dynamicSetting(owner, settings, index_0){ - return castTo($eGet_0(owner, this.featureMapFeature), 215).setting(this.feature); -} -; -_.dynamicUnset_0 = function dynamicUnset_3(owner, settings, index_0){ - var featureMap; - featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); - featureMap.setting(this.feature).unset(); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator', 1314); -function $createDynamicSetting(this$static, owner){ - switch (this$static.style) { - case 0: - case 2: - case 4: - case 6: - case 42: - case 44: - case 46: - case 48: - case 8: - case 10: - case 12: - case 14: - case 16: - case 18: - case 20: - case 22: - case 24: - case 26: - case 28: - case 30: - case 32: - case 34: - case 36: - case 38: - return new EcoreEList$Dynamic(this$static.dynamicKind, this$static.dataClass, owner, this$static.feature); - case 1: - return new EObjectContainmentEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 43: - return new EObjectContainmentEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 3: - return new EObjectContainmentEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 45: - return new EObjectContainmentEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 41: - return new EcoreEMap(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 50: - return new EcoreEMap$Unsettable(castTo($getEType(this$static.feature), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 5: - return new EObjectContainmentWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 47: - return new EObjectContainmentWithInverseEList$Unsettable$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 7: - return new EObjectContainmentWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 49: - return new EObjectContainmentWithInverseEList$Resolving(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 9: - return new EDataTypeUniqueEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 11: - return new EDataTypeUniqueEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 13: - return new EDataTypeEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 15: - return new EDataTypeEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 17: - return new EObjectResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 19: - return new EObjectResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 21: - return new EObjectEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 23: - return new EObjectEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - case 25: - return new EObjectWithInverseResolvingEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 27: - return new EObjectWithInverseResolvingEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 29: - return new EObjectWithInverseEList$Unsettable$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 31: - return new EObjectWithInverseEList$ManyInverse(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 33: - return new EObjectWithInverseResolvingEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 35: - return new EObjectWithInverseResolvingEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 37: - return new EObjectWithInverseEList$Unsettable(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 39: - return new EObjectWithInverseEList(this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature), this$static.inverseFeature.featureID); - case 40: - return new BasicFeatureMap(owner, $getFeatureID(owner.eClass_0(), this$static.feature)); - default:throw toJs(new RuntimeException_0('Unknown feature style: ' + this$static.style)); - } -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany(style, dataClass, feature){ - this.style = style; - this.dataClass = dataClass; - this.feature = feature; -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany_0(style, dataClass, feature, inverseFeature){ - this.style = style; - this.dataClass = dataClass; - this.feature = feature; - this.inverseFeature = inverseFeature; -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany_1(style, feature){ - this.style = style; - this.dataClass = Ljava_lang_Object_2_classLit; - this.dynamicKind = kind_0(feature); - this.feature = feature; -} - -function EStructuralFeatureImpl$InternalSettingDelegateMany_2(style, feature, inverseFeature){ - this.style = style; - this.dataClass = Ljava_lang_Object_2_classLit; - this.dynamicKind = kind_0(feature); - this.feature = feature; - this.inverseFeature = inverseFeature; -} - -defineClass(89, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateMany, EStructuralFeatureImpl$InternalSettingDelegateMany_0, EStructuralFeatureImpl$InternalSettingDelegateMany_1, EStructuralFeatureImpl$InternalSettingDelegateMany_2); -_.dynamicGet_0 = function dynamicGet_4(owner, settings, index_0, resolve, coreType){ - var result; - result = settings.dynamicGet(index_0); - result == null && settings.dynamicSet(index_0, result = $createDynamicSetting(this, owner)); - if (!coreType) { - switch (this.style) { - case 50: - case 41: - return castTo(result, 589).map_2(); - case 40: - return castTo(result, 215).getWrapper(); - } - } - return result; -} -; -_.dynamicInverseAdd = function dynamicInverseAdd_0(owner, settings, index_0, otherEnd, notifications){ - var result, setting; - setting = settings.dynamicGet(index_0); - setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - result = castTo(setting, 69).basicAdd(otherEnd, notifications); - return result; -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_0(owner, settings, index_0, otherEnd, notifications){ - var setting; - setting = settings.dynamicGet(index_0); - setting != null && (notifications = castTo(setting, 69).basicRemove(otherEnd, notifications)); - return notifications; -} -; -_.dynamicIsSet = function dynamicIsSet_0(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null && castTo(setting, 76).isSet_0(); -} -; -_.dynamicSet_0 = function dynamicSet_4(owner, settings, index_0, newValue){ - var setting; - setting = castTo(settings.dynamicGet(index_0), 76); - !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - setting.set_1(newValue); -} -; -_.dynamicSetting = function dynamicSetting_0(owner, settings, index_0){ - var result, setting; - setting = settings.dynamicGet(index_0); - setting == null && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - if (instanceOf(setting, 76)) { - return castTo(setting, 76); - } - else { - result = castTo(settings.dynamicGet(index_0), 15); - return new EStructuralFeatureImpl$SettingMany(result); - } -} -; -_.dynamicUnset_0 = function dynamicUnset_4(owner, settings, index_0){ - var setting; - setting = castTo(settings.dynamicGet(index_0), 76); - !setting && settings.dynamicSet(index_0, setting = $createDynamicSetting(this, owner)); - setting.unset(); -} -; -_.dynamicKind = 0; -_.style = 0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateMany', 89); -function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle = emptyMethod; - NIL_0 = ($clinit_EStructuralFeature$Internal$DynamicValueHolder() , NIL); -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingle(feature){ - this.feature = feature; -} - -defineClass(504, 1, {}); -_.dynamicInverseAdd = function dynamicInverseAdd_1(owner, settings, index_0, otherEnd, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_1(owner, settings, index_0, otherEnd, notifications){ - throw toJs(new UnsupportedOperationException); -} -; -_.dynamicSetting = function dynamicSetting_1(owner, settings, index_0){ - return new EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this, owner, settings, index_0); -} -; -var NIL_0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle', 504); -function EStructuralFeatureImpl$InternalSettingDelegateSingle$1(this$1, val$owner, val$settings, val$index){ - this.this$11 = this$1; - this.val$owner2 = val$owner; - this.val$settings3 = val$settings; - this.val$index4 = val$index; -} - -defineClass(1331, 1, $intern_147, EStructuralFeatureImpl$InternalSettingDelegateSingle$1); -_.get_6 = function get_64(resolve){ - return this.this$11.dynamicGet_0(this.val$owner2, this.val$settings3, this.val$index4, resolve, true); -} -; -_.isSet_0 = function isSet_11(){ - return this.this$11.dynamicIsSet(this.val$owner2, this.val$settings3, this.val$index4); -} -; -_.set_1 = function set_35(newValue){ - this.this$11.dynamicSet_0(this.val$owner2, this.val$settings3, this.val$index4, newValue); -} -; -_.unset = function unset_7(){ - this.this$11.dynamicUnset_0(this.val$owner2, this.val$settings3, this.val$index4); -} -; -_.val$index4 = 0; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingle$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingle/1', 1331); -function EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.eClass = eClass; - this.inverseFeature = inverseFeature; -} - -defineClass(769, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainer); -_.dynamicGet_0 = function dynamicGet_5(owner, settings, index_0, resolve, coreType){ - return eContainmentFeature(owner, owner.eInternalContainer(), owner.eContainerFeatureID_0()) == this.inverseFeature?this.isResolveProxies_0() && resolve?$eContainer(owner):owner.eInternalContainer():null; -} -; -_.dynamicInverseAdd = function dynamicInverseAdd_2(owner, settings, index_0, otherEnd, notifications){ - var eContainerFeatureID, featureID; - !!owner.eInternalContainer() && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); - featureID = $getFeatureID(owner.eClass_0(), this.feature); - return owner.eBasicSetContainer_0(otherEnd, featureID, notifications); -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_2(owner, settings, index_0, otherEnd, notifications){ - var featureID; - featureID = $getFeatureID(owner.eClass_0(), this.feature); - return owner.eBasicSetContainer_0(null, featureID, notifications); -} -; -_.dynamicIsSet = function dynamicIsSet_1(owner, settings, index_0){ - var featureID; - featureID = $getFeatureID(owner.eClass_0(), this.feature); - return !!owner.eInternalContainer() && owner.eContainerFeatureID_0() == featureID; -} -; -_.dynamicSet_0 = function dynamicSet_5(owner, settings, index_0, newValue){ - var eContainer, eContainerFeatureID, featureID, internalEObject, notifications; - if (newValue != null && !$isInstance(this.eClass, newValue)) { - throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); - } - eContainer = owner.eInternalContainer(); - featureID = $getFeatureID(owner.eClass_0(), this.feature); - if (maskUndefined(newValue) !== maskUndefined(eContainer) || owner.eContainerFeatureID_0() != featureID && newValue != null) { - if (isAncestor(owner, castTo(newValue, 56))) - throw toJs(new IllegalArgumentException_0('Recursive containment not allowed for ' + owner.toString_0())); - notifications = null; - !!eContainer && (notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(notifications):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, notifications))); - internalEObject = castTo(newValue, 49); - !!internalEObject && (notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications)); - notifications = owner.eBasicSetContainer_0(internalEObject, featureID, notifications); - !!notifications && notifications.dispatch_0(); - } - else { - owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_1(owner, 1, featureID, newValue, newValue)); - } -} -; -_.dynamicUnset_0 = function dynamicUnset_5(owner, settings, index_0){ - var eContainer, eContainerFeatureID, featureID, notifications; - eContainer = owner.eInternalContainer(); - if (eContainer) { - notifications = (eContainerFeatureID = owner.eContainerFeatureID_0() , eContainerFeatureID >= 0?owner.eBasicRemoveFromContainerFeature(null):owner.eInternalContainer().eInverseRemove(owner, -1 - eContainerFeatureID, null, null)); - featureID = $getFeatureID(owner.eClass_0(), this.feature); - notifications = owner.eBasicSetContainer_0(null, featureID, notifications); - !!notifications && notifications.dispatch_0(); - } - else { - owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 1, this.feature, null, null)); - } -} -; -_.isResolveProxies_0 = function isResolveProxies_2(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainer_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer', 769); -function EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleContainer.call(this, eClass, feature, inverseFeature); -} - -defineClass(1315, 769, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving); -_.isResolveProxies_0 = function isResolveProxies_3(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving', 1315); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData(defaultValue, intrinsicDefaultValue, feature){ - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.defaultValue = defaultValue; - this.intrinsicDefaultValue = intrinsicDefaultValue; - this.notificationCreator = ($clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator() , OBJECT_NOTIFICATION_CREATOR); -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingleData_0(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.defaultValue = defaultValue; - this.intrinsicDefaultValue = intrinsicDefaultValue; - this.notificationCreator = notificationCreator; -} - -defineClass(563, 504, {}); -_.dynamicGet_0 = function dynamicGet_6(owner, settings, index_0, resolve, coreType){ - var result; - return result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result; -} -; -_.dynamicIsSet = function dynamicIsSet_2(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null && (maskUndefined(setting) === maskUndefined(NIL_0) || !equals_Ljava_lang_Object__Z__devirtual$(setting, this.defaultValue)); -} -; -_.dynamicSet_0 = function dynamicSet_6(owner, settings, index_0, newValue){ - var oldValue, result; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); - if (newValue == null) { - if (this.intrinsicDefaultValue != null) { - settings.dynamicSet(index_0, null); - newValue = this.defaultValue; - } - else - this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, newValue)); - } - else { - if (newValue == null) { - this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):this.defaultValue != null?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, null); - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - } -} -; -_.dynamicUnset_0 = function dynamicUnset_6(owner, settings, index_0){ - var oldValue, result; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldValue = (result = settings.dynamicGet(index_0) , result == null?this.defaultValue:maskUndefined(result) === maskUndefined(NIL_0)?null:result); - settings.dynamicUnset(index_0); - $eNotify(owner, this.notificationCreator.createNotification_0(owner, 1, this.feature, oldValue, this.defaultValue)); - } - else { - settings.dynamicUnset(index_0); - } -} -; -_.validate_0 = function validate_2(object){ - throw toJs(new ClassCastException); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData', 563); -function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator = emptyMethod; - OBJECT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator; - BOOLEAN_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1; - BYTE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2; - CHAR_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3; - DOUBLE_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4; - FLOAT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5; - INT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6; - LONG_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7; - SHORT_NOTIFICATION_CREATOR = new EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8; -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator(){ -} - -defineClass($intern_160, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator); -_.createNotification_0 = function createNotification_7(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_17(notifier, eventType, feature, oldValue, newValue); -} -; -_.createNotification_1 = function createNotification_8(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_19(notifier, eventType, feature, oldValue, newValue, wasSet); -} -; -var BOOLEAN_NOTIFICATION_CREATOR, BYTE_NOTIFICATION_CREATOR, CHAR_NOTIFICATION_CREATOR, DOUBLE_NOTIFICATION_CREATOR, FLOAT_NOTIFICATION_CREATOR, INT_NOTIFICATION_CREATOR, LONG_NOTIFICATION_CREATOR, OBJECT_NOTIFICATION_CREATOR, SHORT_NOTIFICATION_CREATOR; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator', $intern_160); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1(){ -} - -defineClass(1332, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1); -_.createNotification_0 = function createNotification_9(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_22(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue))); -} -; -_.createNotification_1 = function createNotification_10(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_23(notifier, eventType, feature, $booleanValue(castToBoolean(oldValue)), $booleanValue(castToBoolean(newValue)), wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1', 1332); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2(){ -} - -defineClass(1333, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2); -_.createNotification_0 = function createNotification_11(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_5(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0); -} -; -_.createNotification_1 = function createNotification_12(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_6(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2', 1333); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3(){ -} - -defineClass(1334, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3); -_.createNotification_0 = function createNotification_13(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_7(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0); -} -; -_.createNotification_1 = function createNotification_14(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_8(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3', 1334); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4(){ -} - -defineClass(1335, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4); -_.createNotification_0 = function createNotification_15(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_9(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue))); -} -; -_.createNotification_1 = function createNotification_16(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_10(notifier, eventType, feature, $doubleValue(castToDouble(oldValue)), $doubleValue(castToDouble(newValue)), wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4', 1335); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5(){ -} - -defineClass(1336, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5); -_.createNotification_0 = function createNotification_17(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_11(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0); -} -; -_.createNotification_1 = function createNotification_18(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_12(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5', 1336); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6(){ -} - -defineClass(1337, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6); -_.createNotification_0 = function createNotification_19(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_13(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0); -} -; -_.createNotification_1 = function createNotification_20(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_14(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6', 1337); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7(){ -} - -defineClass(1338, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7); -_.createNotification_0 = function createNotification_21(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_15(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0); -} -; -_.createNotification_1 = function createNotification_22(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_16(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7', 1338); -function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8(){ -} - -defineClass(1339, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8); -_.createNotification_0 = function createNotification_23(notifier, eventType, feature, oldValue, newValue){ - return new ENotificationImpl_20(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0); -} -; -_.createNotification_1 = function createNotification_24(notifier, eventType, feature, oldValue, newValue, wasSet){ - return new ENotificationImpl_21(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0, wasSet); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8', 1339); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); - this.eDataType = eDataType; -} - -defineClass(1317, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic); -_.validate_0 = function validate_3(object){ - if (!this.eDataType.isInstance(object)) { - throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic', 1317); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); -} - -defineClass(1318, 563, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic); -_.validate_0 = function validate_4(object){ -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic', 1318); -defineClass(770, 563, {}); -_.dynamicIsSet = function dynamicIsSet_3(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null; -} -; -_.dynamicSet_0 = function dynamicSet_7(owner, settings, index_0, newValue){ - var oldIsSet, oldValue; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldIsSet = true; - oldValue = settings.dynamicGet(index_0); - if (oldValue == null) { - oldIsSet = false; - oldValue = this.defaultValue; - } - else - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - if (newValue == null) { - if (this.intrinsicDefaultValue != null) { - settings.dynamicSet(index_0, null); - newValue = this.defaultValue; - } - else { - settings.dynamicSet(index_0, NIL_0); - } - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - $eNotify(owner, this.notificationCreator.createNotification_1(owner, 1, this.feature, oldValue, newValue, !oldIsSet)); - } - else { - if (newValue == null) { - this.intrinsicDefaultValue != null?settings.dynamicSet(index_0, null):settings.dynamicSet(index_0, NIL_0); - } - else { - this.validate_0(newValue); - settings.dynamicSet(index_0, newValue); - } - } -} -; -_.dynamicUnset_0 = function dynamicUnset_7(owner, settings, index_0){ - var oldIsSet, oldValue; - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - oldIsSet = true; - oldValue = settings.dynamicGet(index_0); - if (oldValue == null) { - oldIsSet = false; - oldValue = this.defaultValue; - } - else - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - settings.dynamicUnset(index_0); - $eNotify(owner, this.notificationCreator.createNotification_1(owner, 2, this.feature, oldValue, this.defaultValue, oldIsSet)); - } - else { - settings.dynamicUnset(index_0); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable', 770); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); - this.eDataType = eDataType; -} - -defineClass(1319, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic); -_.validate_0 = function validate_5(object){ - if (!this.eDataType.isInstance(object)) { - throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(object) + "' must be of type '" + this.eDataType + "'")); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic', 1319); -function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); -} - -defineClass(1320, 770, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic); -_.validate_0 = function validate_6(object){ -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic', 1320); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.eClass = eClass; -} - -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0(eClass, feature, inverseFeature){ - EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); - this.eClass = eClass; - this.inverseFeature = inverseFeature; -} - -defineClass(398, 504, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObject); -_.dynamicGet_0 = function dynamicGet_7(owner, settings, index_0, resolve, coreType){ - var newEObject, notificationChain, oldEObject, resolvedEObject, result; - result = settings.dynamicGet(index_0); - if (this.isUnsettable() && maskUndefined(result) === maskUndefined(NIL_0)) { - return null; - } - else if (this.isResolveProxies_0() && resolve && result != null) { - oldEObject = castTo(result, 49); - if (oldEObject.eIsProxy()) { - resolvedEObject = $eResolveProxy(owner, oldEObject); - if (oldEObject != resolvedEObject) { - if (!$isInstance(this.eClass, resolvedEObject)) { - throw toJs(new ClassCastException_0("The value of type '" + getClass__Ljava_lang_Class___devirtual$(resolvedEObject) + "' must be of type '" + this.eClass + "'")); - } - settings.dynamicSet(index_0, result = resolvedEObject); - if (this.isContainment()) { - newEObject = castTo(resolvedEObject, 49); - notificationChain = oldEObject.eInverseRemove(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(oldEObject.eClass_0(), this.inverseFeature), null, null); - !newEObject.eInternalContainer() && (notificationChain = newEObject.eInverseAdd(owner, !this.inverseFeature?-1 - $getFeatureID(owner.eClass_0(), this.feature):$getFeatureID(newEObject.eClass_0(), this.inverseFeature), null, notificationChain)); - !!notificationChain && notificationChain.dispatch_0(); - } - owner.eBasicHasAdapters() && owner.eDeliver() && $eNotify(owner, new ENotificationImpl_17(owner, 9, this.feature, oldEObject, resolvedEObject)); - } - } - return result; - } - else { - return result; - } -} -; -_.dynamicInverseAdd = function dynamicInverseAdd_3(owner, settings, index_0, otherEnd, notifications){ - var internalEObject, oldValue; - oldValue = settings.dynamicGet(index_0); - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - settings.dynamicSet(index_0, otherEnd); - if (this.hasInverse()) { - if (maskUndefined(oldValue) !== maskUndefined(otherEnd) && oldValue != null) { - internalEObject = castTo(oldValue, 49); - notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - } - else - this.isContainment() && oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - !notifications && (notifications = new NotificationChainImpl_0(4)); - notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, otherEnd)); - } - return notifications; -} -; -_.dynamicInverseRemove = function dynamicInverseRemove_3(owner, settings, index_0, otherEnd, notifications){ - var oldValue; - oldValue = settings.dynamicGet(index_0); - maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - settings.dynamicUnset(index_0); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - !notifications && (notifications = new NotificationChainImpl_0(4)); - this.isUnsettable()?notifications.add_5(new ENotificationImpl_17(owner, 2, this.feature, oldValue, null)):notifications.add_5(new ENotificationImpl_17(owner, 1, this.feature, oldValue, null)); - } - return notifications; -} -; -_.dynamicIsSet = function dynamicIsSet_4(owner, settings, index_0){ - var setting; - setting = settings.dynamicGet(index_0); - return setting != null; -} -; -_.dynamicSet_0 = function dynamicSet_8(owner, settings, index_0, newValue){ - var internalEObject, notification, notifications, oldIsSet, oldValue; - if (newValue != null && !$isInstance(this.eClass, newValue)) { - throw toJs(new ClassCastException_0("The value of type '" + (instanceOf(newValue, 56)?$toString_31(castTo(newValue, 56).eClass_0()):$toString_5(getClass__Ljava_lang_Class___devirtual$(newValue))) + "' must be of type '" + this.eClass + "'")); - } - oldValue = settings.dynamicGet(index_0); - oldIsSet = oldValue != null; - this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - notifications = null; - if (this.hasInverse()) { - if (maskUndefined(oldValue) !== maskUndefined(newValue)) { - if (oldValue != null) { - internalEObject = castTo(oldValue, 49); - notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - if (newValue != null) { - internalEObject = castTo(newValue, 49); - notifications = internalEObject.eInverseAdd(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - } - } - else if (this.isContainment()) { - if (maskUndefined(oldValue) !== maskUndefined(newValue)) { - oldValue != null && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - newValue != null && (notifications = castTo(newValue, 49).eInverseAdd(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - } - } - newValue == null && this.isUnsettable()?settings.dynamicSet(index_0, NIL_0):settings.dynamicSet(index_0, newValue); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - notification = new ENotificationImpl_19(owner, 1, this.feature, oldValue, newValue, this.isUnsettable() && !oldIsSet); - if (!notifications) { - $eNotify(owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else - !!notifications && notifications.dispatch_0(); -} -; -_.dynamicUnset_0 = function dynamicUnset_8(owner, settings, index_0){ - var internalEObject, notification, notifications, oldIsSet, oldValue; - oldValue = settings.dynamicGet(index_0); - oldIsSet = oldValue != null; - this.isUnsettable() && maskUndefined(oldValue) === maskUndefined(NIL_0) && (oldValue = null); - notifications = null; - if (oldValue != null) { - if (this.hasInverse()) { - internalEObject = castTo(oldValue, 49); - notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); - } - else - this.isContainment() && (notifications = castTo(oldValue, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); - } - settings.dynamicUnset(index_0); - if (owner.eBasicHasAdapters() && owner.eDeliver()) { - notification = new ENotificationImpl_19(owner, this.isUnsettable()?2:1, this.feature, oldValue, null, oldIsSet); - if (!notifications) { - $eNotify(owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else - !!notifications && notifications.dispatch_0(); -} -; -_.hasInverse = function hasInverse_6(){ - return false; -} -; -_.isContainment = function isContainment_7(){ - return false; -} -; -_.isResolveProxies_0 = function isResolveProxies_4(){ - return false; -} -; -_.isUnsettable = function isUnsettable_1(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject', 398); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); -} - -defineClass(564, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment); -_.isContainment = function isContainment_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment', 564); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); -} - -defineClass(1323, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving); -_.isResolveProxies_0 = function isResolveProxies_5(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving', 1323); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); -} - -defineClass(772, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable); -_.isUnsettable = function isUnsettable_2(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable', 772); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable.call(this, eClass, feature); -} - -defineClass(1325, 772, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving); -_.isResolveProxies_0 = function isResolveProxies_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving', 1325); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); -} - -defineClass(640, 564, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse); -_.hasInverse = function hasInverse_7(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse', 640); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(1324, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving); -_.isResolveProxies_0 = function isResolveProxies_7(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving', 1324); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(773, 640, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable); -_.isUnsettable = function isUnsettable_3(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable', 773); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable.call(this, eClass, feature, inverseFeature); -} - -defineClass(1326, 773, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving); -_.isResolveProxies_0 = function isResolveProxies_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving', 1326); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); -} - -defineClass(641, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving); -_.isResolveProxies_0 = function isResolveProxies_9(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving', 641); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving.call(this, eClass, feature); -} - -defineClass(1327, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable); -_.isUnsettable = function isUnsettable_4(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable', 1327); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); -} - -defineClass(774, 641, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse); -_.hasInverse = function hasInverse_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse', 774); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(1328, 774, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable); -_.isUnsettable = function isUnsettable_5(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable', 1328); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(eClass, feature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); -} - -defineClass(1321, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable); -_.isUnsettable = function isUnsettable_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable', 1321); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); -} - -defineClass(771, 398, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse); -_.hasInverse = function hasInverse_9(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse', 771); -function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(eClass, feature, inverseFeature){ - $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); - EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse.call(this, eClass, feature, inverseFeature); -} - -defineClass(1322, 771, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable); -_.isUnsettable = function isUnsettable_7(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable', 1322); -function $inverseAdd_0(this$static, owner, otherEnd, notifications){ - !!otherEnd && (notifications = otherEnd.eInverseAdd(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); - return notifications; -} - -function $inverseRemove_0(this$static, owner, otherEnd, notifications){ - !!otherEnd && (notifications = otherEnd.eInverseRemove(owner, $getFeatureID(otherEnd.eClass_0(), this$static.eStructuralFeature.getEOpposite()), null, notifications)); - return notifications; -} - -function EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this$0, eStructuralFeature, value_0){ - this.this$01 = this$0; - EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); - this.value_0 = value_0; -} - -defineClass(775, 565, $intern_159, EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry); -_.createEntry_0 = function createEntry_2(value_0){ - return new EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry(this.this$01, this.eStructuralFeature, value_0); -} -; -_.getValue = function getValue_16(){ - return this.value_0; -} -; -_.inverseAdd_0 = function inverseAdd_4(owner, featureID, notifications){ - return $inverseAdd_0(this, owner, this.value_0, notifications); -} -; -_.inverseRemove_0 = function inverseRemove_4(owner, featureID, notifications){ - return $inverseRemove_0(this, owner, this.value_0, notifications); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InverseUpdatingFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry', 775); -function EStructuralFeatureImpl$SettingMany(list){ - this.list = list; -} - -defineClass(1329, 1, $intern_147, EStructuralFeatureImpl$SettingMany); -_.get_6 = function get_65(resolve){ - return this.list; -} -; -_.isSet_0 = function isSet_12(){ - return instanceOf(this.list, 95)?castTo(this.list, 95).isSet_0():!this.list.isEmpty(); -} -; -_.set_1 = function set_36(newValue){ - this.list.clear_0(); - this.list.addAll(castTo(newValue, 15)); -} -; -_.unset = function unset_8(){ - instanceOf(this.list, 95)?castTo(this.list, 95).unset():this.list.clear_0(); -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SettingMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SettingMany', 1329); -function EStructuralFeatureImpl$SimpleContentFeatureMapEntry(eStructuralFeature){ - this.eStructuralFeature = eStructuralFeature; - this.eDataType = castTo($getEType(eStructuralFeature), 148); - this.eFactory = this.eDataType.getEPackage().getEFactoryInstance(); -} - -defineClass(1330, 565, $intern_159, EStructuralFeatureImpl$SimpleContentFeatureMapEntry); -_.createEntry = function createEntry_3(value_0){ - return new EStructuralFeatureImpl$SimpleFeatureMapEntry(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT), this.eFactory.convertToString(this.eDataType, value_0)); -} -; -_.getValue = function getValue_17(){ - return null; -} -; -_.inverseAdd_0 = function inverseAdd_5(owner, featureID, notifications){ - return notifications; -} -; -_.inverseRemove_0 = function inverseRemove_5(owner, featureID, notifications){ - return notifications; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleContentFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleContentFeatureMapEntry', 1330); -function EStructuralFeatureImpl$SimpleFeatureMapEntry(eStructuralFeature, value_0){ - EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); - this.value_0 = value_0; -} - -defineClass(642, 565, $intern_159, EStructuralFeatureImpl$SimpleFeatureMapEntry); -_.createEntry = function createEntry_4(value_0){ - return new EStructuralFeatureImpl$SimpleFeatureMapEntry(this.eStructuralFeature, value_0); -} -; -_.getValue = function getValue_18(){ - return this.value_0; -} -; -_.inverseAdd_0 = function inverseAdd_6(owner, featureID, notifications){ - return notifications; -} -; -_.inverseRemove_0 = function inverseRemove_6(owner, featureID, notifications){ - return notifications; -} -; -var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SimpleFeatureMapEntry_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SimpleFeatureMapEntry', 642); -function ESuperAdapter$1(){ -} - -defineClass(391, 497, $intern_138, ESuperAdapter$1); -_.newData = function newData_12(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, capacity, 0, 1); -} -; -_.useEquals = function useEquals_13(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_impl_ESuperAdapter$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ESuperAdapter/1', 391); -function $getEGenericTypes(this$static){ - !this$static.eGenericTypes && (this$static.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)); - return this$static.eGenericTypes; -} - -function ETypeParameterImpl(){ -} - -defineClass(444, 438, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 836:1, 49:1, 97:1, 150:1, 444:1, 114:1, 115:1}, ETypeParameterImpl); -_.eGet = function eGet_31(featureID, resolve, coreType){ - var eClass; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , this.eAnnotations; - case 1: - return this.name_0; - case 2: - return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , this.eBounds; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_22(otherEnd, featureID, msgs){ - var eClass, feature; - switch (featureID) { - case 0: - return !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)) , $basicRemove_0(this.eAnnotations, otherEnd, msgs); - case 2: - return !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)) , $basicRemove_0(this.eBounds, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , ETYPE_PARAMETER):eClass), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings_0(this), featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_30(featureID){ - var eClass; - switch (featureID) { - case 0: - return !!this.eAnnotations && this.eAnnotations.size_0 != 0; - case 1: - return this.name_0 != null; - case 2: - return !!this.eBounds && this.eBounds.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); -} -; -_.eSet = function eSet_28(featureID, newValue){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $addAll_9(this.eAnnotations, castTo(newValue, 14)); - return; - case 1: - $setName(this, castToString(newValue)); - return; - case 2: - !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); - $clear_13(this.eBounds); - !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); - $addAll_9(this.eBounds, castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_30(){ - return $clinit_EcorePackage$Literals() , ETYPE_PARAMETER; -} -; -_.eUnset = function eUnset_28(featureID){ - var eClass; - switch (featureID) { - case 0: - !this.eAnnotations && (this.eAnnotations = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, this, 0, 3)); - $clear_13(this.eAnnotations); - return; - case 1: - $setName(this, null); - return; - case 2: - !this.eBounds && (this.eBounds = new ETypeParameterImpl$1(this, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, this)); - $clear_13(this.eBounds); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl', 444); -function $inverseAdd_1(this$static, object, notifications){ - var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; - notifications = (internalEObject = object , $eInverseAdd(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); - eGenericTypes = $getEGenericTypes(this$static.this$01); - for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { - eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); - notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); - } - return notifications; -} - -function $inverseRemove_1(this$static, object, notifications){ - var delegateIterator, eGenericType, eGenericType$iterator, eGenericTypes, internalEObject; - notifications = (internalEObject = object , $eInverseRemove(internalEObject, this$static.owner, -1 - this$static.featureID, notifications)); - eGenericTypes = $getEGenericTypes(this$static.this$01); - for (eGenericType$iterator = (delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(eGenericTypes.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator)); eGenericType$iterator.val$delegateIterator2.hasNext;) { - eGenericType = castTo($next_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); - notifications = $setERawType(eGenericType, $getErasure(eGenericType, this$static.this$01), notifications); - } - return notifications; -} - -function ETypeParameterImpl$1(this$0, $anonymous0, $anonymous1){ - this.this$01 = this$0; - EObjectContainmentEList.call(this, $anonymous0, $anonymous1, 2); -} - -defineClass(445, 85, $intern_154, ETypeParameterImpl$1); -_.inverseAdd = function inverseAdd_7(object, notifications){ - return $inverseAdd_1(this, castTo(object, 87), notifications); -} -; -_.inverseRemove = function inverseRemove_7(object, notifications){ - return $inverseRemove_1(this, castTo(object, 87), notifications); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/1', 445); -function ETypeParameterImpl$2(){ - HashMap.call(this); -} - -defineClass(634, 43, $intern_76, ETypeParameterImpl$2); -_.keySet_0 = function keySet_19(){ - return new ETypeParameterImpl$2$1(this); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2', 634); -function $add_30(this$static, eGenericType){ - return $put_6(this$static.this$11, eGenericType, '') == null; -} - -function $remove_42(this$static, object){ - if ($containsKey_3(this$static.this$11, object)) { - $remove_6(this$static.this$11, object); - return true; - } - else { - return false; - } -} - -function ETypeParameterImpl$2$1(this$1){ - this.this$11 = this$1; -} - -defineClass(556, $intern_9, $intern_10, ETypeParameterImpl$2$1); -_.add_2 = function add_65(eGenericType){ - return $add_30(this, castTo(eGenericType, 87)); -} -; -_.addAll = function addAll_34(eGenericTypes){ - var eGenericType, eGenericType$iterator, result; - result = false; - for (eGenericType$iterator = eGenericTypes.iterator_0(); eGenericType$iterator.hasNext_0();) { - eGenericType = castTo(eGenericType$iterator.next_1(), 87); - $put_6(this.this$11, eGenericType, '') == null && (result = true); - } - return result; -} -; -_.clear_0 = function clear_65(){ - $reset(this.this$11); -} -; -_.contains = function contains_65(object){ - return $containsKey_3(this.this$11, object); -} -; -_.iterator_0 = function iterator_89(){ - var delegateIterator; - return delegateIterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(this.this$11)).this$01) , new ETypeParameterImpl$2$1$1(delegateIterator); -} -; -_.remove_1 = function remove_126(object){ - return $remove_42(this, object); -} -; -_.size_1 = function size_78(){ - return $size_2(this.this$11); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1', 556); -function ETypeParameterImpl$2$1$1(val$delegateIterator){ - this.val$delegateIterator2 = val$delegateIterator; -} - -defineClass(557, 1, $intern_6, ETypeParameterImpl$2$1$1); -_.forEachRemaining = function forEachRemaining_58(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_48(){ - return castTo($next_4(this.val$delegateIterator2).getKey(), 87); -} -; -_.hasNext_0 = function hasNext_47(){ - return this.val$delegateIterator2.hasNext; -} -; -_.remove = function remove_127(){ - $remove_7(this.val$delegateIterator2); -} -; -var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2$1$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2/1/1', 557); -function EValidatorRegistryImpl(){ - HashMap.call(this); -} - -defineClass(1276, 43, $intern_76, EValidatorRegistryImpl); -_.containsKey = function containsKey_17(key){ - return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); -} -; -_.get_3 = function get_66(key){ - var eValidator, eValidatorDescriptor; - eValidator = instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); - if (instanceOf(eValidator, 837)) { - eValidatorDescriptor = castTo(eValidator, 837); - eValidator = eValidatorDescriptor.getEValidator(); - $put_6(this, castTo(key, 235), eValidator); - return eValidator; - } - else - return eValidator != null?eValidator:key == null?($clinit_EObjectValidator() , INSTANCE_9):null; -} -; -var Lorg_eclipse_emf_ecore_impl_EValidatorRegistryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EValidatorRegistryImpl', 1276); -function $booleanValueOf(initialValue){ - if ($equalsIgnoreCase('true', initialValue)) { - return $clinit_Boolean() , TRUE_0; - } - else if ($equalsIgnoreCase('false', initialValue)) { - return $clinit_Boolean() , FALSE_0; - } - else { - throw toJs(new IllegalArgumentException_0('Expecting true or false')); - } -} - -function $convertEByteArrayToString(instanceValue){ - var bytes; - if (instanceValue == null) { - return null; - } - else { - bytes = castTo(instanceValue, 190); - return $bytesToHexString(bytes, bytes.length); - } -} - -function $convertECharToString(instanceValue){ - if (instanceOf(instanceValue, 172)) { - return '' + castTo(instanceValue, 172).value_0; - } - return instanceValue == null?null:toString_40(instanceValue); -} - -function $convertECharacterObjectToString(instanceValue){ - if (instanceOf(instanceValue, 172)) { - return '' + castTo(instanceValue, 172).value_0; - } - return instanceValue == null?null:toString_40(instanceValue); -} - -function $createECharFromString(initialValue){ - var carray, charValue; - if (initialValue == null) { - return null; - } - charValue = 0; - try { - charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - carray = $toCharArray(initialValue); - charValue = carray[0]; - } - else - throw toJs($e0); - } - return valueOf_3(charValue); -} - -function $createECharacterObjectFromString(initialValue){ - var carray, charValue; - if (initialValue == null) { - return null; - } - charValue = 0; - try { - charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - carray = $toCharArray(initialValue); - charValue = carray[0]; - } - else - throw toJs($e0); - } - return valueOf_3(charValue); -} - -function $createEDateFromString(initialValue){ - var exception, i, parseException; - if (initialValue == null) { - return null; - } - exception = null; - for (i = 0; i < EDATE_FORMATS.length; ++i) { - try { - return $parse_2(EDATE_FORMATS[i], initialValue); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 32)) { - parseException = $e0; - exception = parseException; - } - else - throw toJs($e0); - } - } - throw toJs(new WrappedException(exception)); -} - -function EcoreFactoryImpl(){ -} - -function init_3(){ - $clinit_EFactoryImpl(); - var exception, theEcoreFactory; - try { - theEcoreFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1941); - if (theEcoreFactory) { - return theEcoreFactory; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - $log_3(($clinit_EcorePlugin() , exception)); - } - else - throw toJs($e0); - } - return new EcoreFactoryImpl; -} - -defineClass(1313, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 1941:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EcoreFactoryImpl); -_.convertToString = function convertToString_1(eDataType, instanceValue){ - switch (eDataType.getClassifierID()) { - case 21: - case 22: - case 23: - case 24: - case 26: - case 31: - case 32: - case 37: - case 38: - case 39: - case 40: - case 43: - case 44: - case 48: - case 49: - case 20: - return instanceValue == null?null:toString_40(instanceValue); - case 25: - return $convertEByteArrayToString(instanceValue); - case 27: - return $convertECharToString(instanceValue); - case 28: - return $convertECharacterObjectToString(instanceValue); - case 29: - return instanceValue == null?null:$format_0(EDATE_FORMATS[0], castTo(instanceValue, 199)); - case 41: - return instanceValue == null?'':$getName(castTo(instanceValue, 290)); - case 42: - return toString_40(instanceValue); - case 50: - return castToString(instanceValue); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -_.create_3 = function create_42(eClass0){ - var eAnnotation, eAttribute, eClass, eDataType, eEnum, eEnumLiteral, eFactory, eGenericType, eObject, eOperation, ePackage, ePackage0, eParameter, eReference, eStringToStringMapEntry, eTypeParameter; - switch (eClass0.metaObjectID == -1 && (eClass0.metaObjectID = (ePackage0 = $getEPackage(eClass0) , ePackage0?$indexOf_6(ePackage0.getEClassifiers(), eClass0):-1)) , eClass0.metaObjectID) { - case 0: - return eAttribute = new EAttributeImpl , eAttribute; - case 1: - return eAnnotation = new EAnnotationImpl , eAnnotation; - case 2: - return eClass = new EClassImpl , eClass; - case 4: - return eDataType = new EDataTypeImpl , eDataType; - case 5: - return eEnum = new EEnumImpl , eEnum; - case 6: - return eEnumLiteral = new EEnumLiteralImpl , eEnumLiteral; - case 7: - return eFactory = new EFactoryImpl , eFactory; - case 10: - return eObject = new EObjectImpl , eObject; - case 11: - return eOperation = new EOperationImpl , eOperation; - case 12: - return ePackage = new EPackageImpl , ePackage; - case 13: - return eParameter = new EParameterImpl , eParameter; - case 14: - return eReference = new EReferenceImpl , eReference; - case 17: - return eStringToStringMapEntry = new EStringToStringMapEntryImpl , eStringToStringMapEntry; - case 18: - return eGenericType = new EGenericTypeImpl , eGenericType; - case 19: - return eTypeParameter = new ETypeParameterImpl , eTypeParameter; - default:throw toJs(new IllegalArgumentException_0("The class '" + eClass0.name_0 + "' is not a valid classifier")); - } -} -; -_.createFromString = function createFromString_1(eDataType, initialValue){ - switch (eDataType.getClassifierID()) { - case 20: - return initialValue == null?null:new BigDecimal_0(initialValue); - case 21: - return initialValue == null?null:new BigInteger_4(initialValue); - case 23: - case 22: - return initialValue == null?null:$booleanValueOf(initialValue); - case 26: - case 24: - return initialValue == null?null:valueOf_2(__parseAndValidateInt(initialValue, -128, 127) << 24 >> 24); - case 25: - return $hexStringToBytes(initialValue); - case 27: - return $createECharFromString(initialValue); - case 28: - return $createECharacterObjectFromString(initialValue); - case 29: - return $createEDateFromString(initialValue); - case 32: - case 31: - return initialValue == null?null:__parseAndValidateDouble(initialValue); - case 38: - case 37: - return initialValue == null?null:new Float_0(initialValue); - case 40: - case 39: - return initialValue == null?null:valueOf_4(__parseAndValidateInt(initialValue, $intern_42, $intern_0)); - case 41: - return null; - case 42: - return initialValue == null?null:null; - case 44: - case 43: - return initialValue == null?null:valueOf_5(__parseAndValidateLong(initialValue)); - case 49: - case 48: - return initialValue == null?null:valueOf_6(__parseAndValidateInt(initialValue, $intern_161, 32767) << 16 >> 16); - case 50: - return initialValue; - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -var Lorg_eclipse_emf_ecore_impl_EcoreFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcoreFactoryImpl', 1313); -function $clinit_EcorePackageImpl(){ - $clinit_EcorePackageImpl = emptyMethod; - eGenericTypes_0 = new ArrayList; -} - -function $$init_12(this$static){ - this$static.eAttributeEClass = null; - this$static.eAnnotationEClass = null; - this$static.eClassEClass = null; - this$static.eDataTypeEClass = null; - this$static.eEnumEClass = null; - this$static.eEnumLiteralEClass = null; - this$static.eFactoryEClass = null; - this$static.eClassifierEClass = null; - this$static.eModelElementEClass = null; - this$static.eNamedElementEClass = null; - this$static.eObjectEClass = null; - this$static.eOperationEClass = null; - this$static.ePackageEClass = null; - this$static.eParameterEClass = null; - this$static.eReferenceEClass = null; - this$static.eStructuralFeatureEClass = null; - this$static.eTypedElementEClass = null; - this$static.eStringToStringMapEntryEClass = null; - this$static.eGenericTypeEClass = null; - this$static.eTypeParameterEClass = null; - this$static.eBigDecimalEDataType = null; - this$static.eBigIntegerEDataType = null; - this$static.eBooleanObjectEDataType = null; - this$static.eCharacterObjectEDataType = null; - this$static.eDateEDataType = null; - this$static.eDiagnosticChainEDataType = null; - this$static.eDoubleObjectEDataType = null; - this$static.eFloatObjectEDataType = null; - this$static.eIntegerObjectEDataType = null; - this$static.eBooleanEDataType = null; - this$static.eByteObjectEDataType = null; - this$static.eByteEDataType = null; - this$static.eByteArrayEDataType = null; - this$static.eCharEDataType = null; - this$static.eDoubleEDataType = null; - this$static.eFloatEDataType = null; - this$static.eIntEDataType = null; - this$static.eJavaClassEDataType = null; - this$static.eJavaObjectEDataType = null; - this$static.eLongObjectEDataType = null; - this$static.eMapEDataType = null; - this$static.eShortObjectEDataType = null; - this$static.eLongEDataType = null; - this$static.eShortEDataType = null; - this$static.eTreeIteratorEDataType = null; - this$static.eInvocationTargetExceptionEDataType = null; - this$static.eFeatureMapEntryEDataType = null; - this$static.eEnumeratorEDataType = null; - this$static.eFeatureMapEDataType = null; - this$static.eStringEDataType = null; - this$static.eeListEDataType = null; - this$static.eResourceEDataType = null; - this$static.eResourceSetEDataType = null; - this$static.isCreated = false; - this$static.isInitialized = false; -} - -function $createEGenericType_1(){ - var eGenericType, eGenericType0, eGenericType1; - eGenericType0 = (eGenericType1 = (eGenericType = new EGenericTypeImpl , eGenericType) , eGenericType1); - $add_3(eGenericTypes_0, eGenericType0); - return eGenericType0; -} - -function $createEcoreAnnotations(this$static){ - $addAnnotation(this$static.eAttributeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentTransient'])); - $addAnnotation(this$static.eAnnotationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedSourceURI'])); - $addAnnotation(this$static.eClassEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures'])); - $addAnnotation(this$static.eClassifierEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedInstanceTypeName UniqueTypeParameterNames'])); - $addAnnotation(this$static.eEnumEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueEnumeratorNames UniqueEnumeratorLiterals'])); - $addAnnotation(this$static.eNamedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedName'])); - $addAnnotation(this$static.eOperationEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid'])); - $addAnnotation(this$static.ePackageEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs'])); - $addAnnotation(this$static.eReferenceEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer'])); - $addAnnotation(this$static.eStructuralFeatureEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidDefaultValueLiteral'])); - $addAnnotation(this$static.eTypedElementEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ValidLowerBound ValidUpperBound ConsistentBounds ValidType'])); - $addAnnotation(this$static.eGenericTypeEClass, 'http://www.eclipse.org/emf/2002/Ecore', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['constraints', 'ConsistentType ConsistentBounds ConsistentArguments'])); -} - -function $createExtendedMetaDataAnnotations(this$static){ - $addAnnotation(this$static.eBigDecimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#decimal'])); - $addAnnotation(this$static.eBigIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#integer'])); - $addAnnotation(this$static.eBooleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#boolean'])); - $addAnnotation(this$static.eBooleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EBoolean', 'name', 'EBoolean:Object'])); - $addAnnotation(this$static.eByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#byte'])); - $addAnnotation(this$static.eByteArrayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#hexBinary'])); - $addAnnotation(this$static.eByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EByte', 'name', 'EByte:Object'])); - $addAnnotation(this$static.eCharacterObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EChar', 'name', 'EChar:Object'])); - $addAnnotation(this$static.eDoubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#double'])); - $addAnnotation(this$static.eDoubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EDouble', 'name', 'EDouble:Object'])); - $addAnnotation(this$static.eFloatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#float'])); - $addAnnotation(this$static.eFloatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EFloat', 'name', 'EFloat:Object'])); - $addAnnotation(this$static.eIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#int'])); - $addAnnotation(this$static.eIntegerObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EInt', 'name', 'EInt:Object'])); - $addAnnotation(this$static.eLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#long'])); - $addAnnotation(this$static.eLongObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'ELong', 'name', 'ELong:Object'])); - $addAnnotation(this$static.eShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#short'])); - $addAnnotation(this$static.eShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'EShort', 'name', 'EShort:Object'])); - $addAnnotation(this$static.eStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['baseType', 'http://www.w3.org/2001/XMLSchema#string'])); -} - -function $createPackageContents_0(this$static){ - if (this$static.isCreated) - return; - this$static.isCreated = true; - this$static.eAttributeEClass = $createEClass(this$static, 0); - $createEAttribute(this$static.eAttributeEClass, 18); - $createEReference(this$static.eAttributeEClass, 19); - this$static.eAnnotationEClass = $createEClass(this$static, 1); - $createEAttribute(this$static.eAnnotationEClass, 1); - $createEReference(this$static.eAnnotationEClass, 2); - $createEReference(this$static.eAnnotationEClass, 3); - $createEReference(this$static.eAnnotationEClass, 4); - $createEReference(this$static.eAnnotationEClass, 5); - this$static.eClassEClass = $createEClass(this$static, 2); - $createEAttribute(this$static.eClassEClass, 8); - $createEAttribute(this$static.eClassEClass, 9); - $createEReference(this$static.eClassEClass, 10); - $createEReference(this$static.eClassEClass, 11); - $createEReference(this$static.eClassEClass, 12); - $createEReference(this$static.eClassEClass, 13); - $createEReference(this$static.eClassEClass, 14); - $createEReference(this$static.eClassEClass, 15); - $createEReference(this$static.eClassEClass, 16); - $createEReference(this$static.eClassEClass, 17); - $createEReference(this$static.eClassEClass, 18); - $createEReference(this$static.eClassEClass, 19); - $createEReference(this$static.eClassEClass, 20); - $createEReference(this$static.eClassEClass, 21); - $createEReference(this$static.eClassEClass, 22); - $createEReference(this$static.eClassEClass, 23); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - $createEOperation(this$static.eClassEClass); - this$static.eClassifierEClass = $createEClass(this$static, 3); - $createEAttribute(this$static.eClassifierEClass, 2); - $createEAttribute(this$static.eClassifierEClass, 3); - $createEAttribute(this$static.eClassifierEClass, 4); - $createEAttribute(this$static.eClassifierEClass, 5); - $createEReference(this$static.eClassifierEClass, 6); - $createEReference(this$static.eClassifierEClass, 7); - $createEOperation(this$static.eClassifierEClass); - $createEOperation(this$static.eClassifierEClass); - this$static.eDataTypeEClass = $createEClass(this$static, 4); - $createEAttribute(this$static.eDataTypeEClass, 8); - this$static.eEnumEClass = $createEClass(this$static, 5); - $createEReference(this$static.eEnumEClass, 9); - $createEOperation(this$static.eEnumEClass); - $createEOperation(this$static.eEnumEClass); - $createEOperation(this$static.eEnumEClass); - this$static.eEnumLiteralEClass = $createEClass(this$static, 6); - $createEAttribute(this$static.eEnumLiteralEClass, 2); - $createEAttribute(this$static.eEnumLiteralEClass, 3); - $createEAttribute(this$static.eEnumLiteralEClass, 4); - $createEReference(this$static.eEnumLiteralEClass, 5); - this$static.eFactoryEClass = $createEClass(this$static, 7); - $createEReference(this$static.eFactoryEClass, 1); - $createEOperation(this$static.eFactoryEClass); - $createEOperation(this$static.eFactoryEClass); - $createEOperation(this$static.eFactoryEClass); - this$static.eModelElementEClass = $createEClass(this$static, 8); - $createEReference(this$static.eModelElementEClass, 0); - $createEOperation(this$static.eModelElementEClass); - this$static.eNamedElementEClass = $createEClass(this$static, 9); - $createEAttribute(this$static.eNamedElementEClass, 1); - this$static.eObjectEClass = $createEClass(this$static, 10); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - $createEOperation(this$static.eObjectEClass); - this$static.eOperationEClass = $createEClass(this$static, 11); - $createEReference(this$static.eOperationEClass, 10); - $createEReference(this$static.eOperationEClass, 11); - $createEReference(this$static.eOperationEClass, 12); - $createEReference(this$static.eOperationEClass, 13); - $createEReference(this$static.eOperationEClass, 14); - $createEOperation(this$static.eOperationEClass); - $createEOperation(this$static.eOperationEClass); - this$static.ePackageEClass = $createEClass(this$static, 12); - $createEAttribute(this$static.ePackageEClass, 2); - $createEAttribute(this$static.ePackageEClass, 3); - $createEReference(this$static.ePackageEClass, 4); - $createEReference(this$static.ePackageEClass, 5); - $createEReference(this$static.ePackageEClass, 6); - $createEReference(this$static.ePackageEClass, 7); - $createEOperation(this$static.ePackageEClass); - this$static.eParameterEClass = $createEClass(this$static, 13); - $createEReference(this$static.eParameterEClass, 10); - this$static.eReferenceEClass = $createEClass(this$static, 14); - $createEAttribute(this$static.eReferenceEClass, 18); - $createEAttribute(this$static.eReferenceEClass, 19); - $createEAttribute(this$static.eReferenceEClass, 20); - $createEReference(this$static.eReferenceEClass, 21); - $createEReference(this$static.eReferenceEClass, 22); - $createEReference(this$static.eReferenceEClass, 23); - this$static.eStructuralFeatureEClass = $createEClass(this$static, 15); - $createEAttribute(this$static.eStructuralFeatureEClass, 10); - $createEAttribute(this$static.eStructuralFeatureEClass, 11); - $createEAttribute(this$static.eStructuralFeatureEClass, 12); - $createEAttribute(this$static.eStructuralFeatureEClass, 13); - $createEAttribute(this$static.eStructuralFeatureEClass, 14); - $createEAttribute(this$static.eStructuralFeatureEClass, 15); - $createEAttribute(this$static.eStructuralFeatureEClass, 16); - $createEReference(this$static.eStructuralFeatureEClass, 17); - $createEOperation(this$static.eStructuralFeatureEClass); - $createEOperation(this$static.eStructuralFeatureEClass); - this$static.eTypedElementEClass = $createEClass(this$static, 16); - $createEAttribute(this$static.eTypedElementEClass, 2); - $createEAttribute(this$static.eTypedElementEClass, 3); - $createEAttribute(this$static.eTypedElementEClass, 4); - $createEAttribute(this$static.eTypedElementEClass, 5); - $createEAttribute(this$static.eTypedElementEClass, 6); - $createEAttribute(this$static.eTypedElementEClass, 7); - $createEReference(this$static.eTypedElementEClass, 8); - $createEReference(this$static.eTypedElementEClass, 9); - this$static.eStringToStringMapEntryEClass = $createEClass(this$static, 17); - $createEAttribute(this$static.eStringToStringMapEntryEClass, 0); - $createEAttribute(this$static.eStringToStringMapEntryEClass, 1); - this$static.eGenericTypeEClass = $createEClass(this$static, 18); - $createEReference(this$static.eGenericTypeEClass, 0); - $createEReference(this$static.eGenericTypeEClass, 1); - $createEReference(this$static.eGenericTypeEClass, 2); - $createEReference(this$static.eGenericTypeEClass, 3); - $createEReference(this$static.eGenericTypeEClass, 4); - $createEReference(this$static.eGenericTypeEClass, 5); - $createEOperation(this$static.eGenericTypeEClass); - this$static.eTypeParameterEClass = $createEClass(this$static, 19); - $createEReference(this$static.eTypeParameterEClass, 2); - this$static.eBigDecimalEDataType = $createEDataType(this$static, 20); - this$static.eBigIntegerEDataType = $createEDataType(this$static, 21); - this$static.eBooleanEDataType = $createEDataType(this$static, 22); - this$static.eBooleanObjectEDataType = $createEDataType(this$static, 23); - this$static.eByteEDataType = $createEDataType(this$static, 24); - this$static.eByteArrayEDataType = $createEDataType(this$static, 25); - this$static.eByteObjectEDataType = $createEDataType(this$static, 26); - this$static.eCharEDataType = $createEDataType(this$static, 27); - this$static.eCharacterObjectEDataType = $createEDataType(this$static, 28); - this$static.eDateEDataType = $createEDataType(this$static, 29); - this$static.eDiagnosticChainEDataType = $createEDataType(this$static, 30); - this$static.eDoubleEDataType = $createEDataType(this$static, 31); - this$static.eDoubleObjectEDataType = $createEDataType(this$static, 32); - this$static.eeListEDataType = $createEDataType(this$static, 33); - this$static.eEnumeratorEDataType = $createEDataType(this$static, 34); - this$static.eFeatureMapEDataType = $createEDataType(this$static, 35); - this$static.eFeatureMapEntryEDataType = $createEDataType(this$static, 36); - this$static.eFloatEDataType = $createEDataType(this$static, 37); - this$static.eFloatObjectEDataType = $createEDataType(this$static, 38); - this$static.eIntEDataType = $createEDataType(this$static, 39); - this$static.eIntegerObjectEDataType = $createEDataType(this$static, 40); - this$static.eJavaClassEDataType = $createEDataType(this$static, 41); - this$static.eJavaObjectEDataType = $createEDataType(this$static, 42); - this$static.eLongEDataType = $createEDataType(this$static, 43); - this$static.eLongObjectEDataType = $createEDataType(this$static, 44); - this$static.eMapEDataType = $createEDataType(this$static, 45); - this$static.eResourceEDataType = $createEDataType(this$static, 46); - this$static.eResourceSetEDataType = $createEDataType(this$static, 47); - this$static.eShortEDataType = $createEDataType(this$static, 48); - this$static.eShortObjectEDataType = $createEDataType(this$static, 49); - this$static.eStringEDataType = $createEDataType(this$static, 50); - this$static.eTreeIteratorEDataType = $createEDataType(this$static, 51); - this$static.eInvocationTargetExceptionEDataType = $createEDataType(this$static, 52); -} - -function $initializePackageContents_0(this$static){ - var g1, g2, msgs, msgs0, msgs1, msgs2, op; - if (this$static.isInitialized) - return; - this$static.isInitialized = true; - $setName(this$static, 'ecore'); - $setNsPrefix(this$static, 'ecore'); - $setNsURI(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); - $addETypeParameter(this$static.eeListEDataType, 'E'); - $addETypeParameter(this$static.eJavaClassEDataType, 'T'); - $addETypeParameter(this$static.eMapEDataType, 'K'); - $addETypeParameter(this$static.eMapEDataType, 'V'); - $addETypeParameter(this$static.eTreeIteratorEDataType, 'E'); - $add_21($getESuperTypes(this$static.eAttributeEClass), this$static.eStructuralFeatureEClass); - $add_21($getESuperTypes(this$static.eAnnotationEClass), this$static.eModelElementEClass); - $add_21($getESuperTypes(this$static.eClassEClass), this$static.eClassifierEClass); - $add_21($getESuperTypes(this$static.eClassifierEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eDataTypeEClass), this$static.eClassifierEClass); - $add_21($getESuperTypes(this$static.eEnumEClass), this$static.eDataTypeEClass); - $add_21($getESuperTypes(this$static.eEnumLiteralEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eFactoryEClass), this$static.eModelElementEClass); - $add_21($getESuperTypes(this$static.eNamedElementEClass), this$static.eModelElementEClass); - $add_21($getESuperTypes(this$static.eOperationEClass), this$static.eTypedElementEClass); - $add_21($getESuperTypes(this$static.ePackageEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eParameterEClass), this$static.eTypedElementEClass); - $add_21($getESuperTypes(this$static.eReferenceEClass), this$static.eStructuralFeatureEClass); - $add_21($getESuperTypes(this$static.eStructuralFeatureEClass), this$static.eTypedElementEClass); - $add_21($getESuperTypes(this$static.eTypedElementEClass), this$static.eNamedElementEClass); - $add_21($getESuperTypes(this$static.eTypeParameterEClass), this$static.eNamedElementEClass); - $initEClass(this$static.eAttributeEClass, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, 'EAttribute', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 0), 34), this$static.eBooleanEDataType, 'iD', null, 0, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAttributeEClass), 1), 18), this$static.eDataTypeEClass, null, 'eAttributeType', 1, 1, Lorg_eclipse_emf_ecore_EAttribute_2_classLit, true, true, false, false, true, false, true); - $initEClass(this$static.eAnnotationEClass, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, 'EAnnotation', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 0), 34), this$static.eStringEDataType, 'source', null, 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 1), 18), this$static.eStringToStringMapEntryEClass, null, 'details', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), this$static.eModelElementEClass, castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), 'eModelElement', 0, 1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, true, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 3), 18), this$static.eObjectEClass, null, 'contents', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 4), 18), this$static.eObjectEClass, null, 'references', 0, -1, Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, false, false, true, false, true, false, false); - $initEClass(this$static.eClassEClass, Lorg_eclipse_emf_ecore_EClass_2_classLit, 'EClass', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 0), 34), this$static.eBooleanEDataType, 'abstract', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 1), 34), this$static.eBooleanEDataType, 'interface', null, 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 2), 18), this$static.eClassEClass, null, 'eSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, false, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), 'eOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 4), 18), this$static.eAttributeEClass, null, 'eAllAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 5), 18), this$static.eReferenceEClass, null, 'eAllReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 6), 18), this$static.eReferenceEClass, null, 'eReferences', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 7), 18), this$static.eAttributeEClass, null, 'eAttributes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 8), 18), this$static.eReferenceEClass, null, 'eAllContainments', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 9), 18), this$static.eOperationEClass, null, 'eAllOperations', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 10), 18), this$static.eStructuralFeatureEClass, null, 'eAllStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 11), 18), this$static.eClassEClass, null, 'eAllSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 12), 18), this$static.eAttributeEClass, null, 'eIDAttribute', 0, 1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), this$static.eStructuralFeatureEClass, castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), 'eStructuralFeatures', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 14), 18), this$static.eGenericTypeEClass, null, 'eGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, false, false, true, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 15), 18), this$static.eGenericTypeEClass, null, 'eAllGenericSuperTypes', 0, -1, Lorg_eclipse_emf_ecore_EClass_2_classLit, true, true, false, false, true, false, true); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 0), 59), this$static.eBooleanEDataType, 'isSuperTypeOf'); - $addEParameter(op, this$static.eClassEClass, 'someClass'); - $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 1), 59), this$static.eIntEDataType, 'getFeatureCount'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 2), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); - $addEParameter(op, this$static.eIntEDataType, 'featureID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 3), 59), this$static.eIntEDataType, 'getFeatureID'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 4), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); - $addEParameter(op, this$static.eStringEDataType, 'featureName'); - $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 5), 59), this$static.eIntEDataType, 'getOperationCount'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 6), 59), this$static.eOperationEClass, 'getEOperation'); - $addEParameter(op, this$static.eIntEDataType, 'operationID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 7), 59), this$static.eIntEDataType, 'getOperationID'); - $addEParameter(op, this$static.eOperationEClass, 'operation'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 8), 59), this$static.eOperationEClass, 'getOverride'); - $addEParameter(op, this$static.eOperationEClass, 'operation'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 9), 59), this$static.eGenericTypeEClass, 'getFeatureType'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - $initEClass(this$static.eClassifierEClass, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, 'EClassifier', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 0), 34), this$static.eStringEDataType, 'instanceClassName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); - g1 = $createEGenericType(this$static.eJavaClassEDataType); - g2 = $createEGenericType_1(); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $initEAttribute_0(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 1), 34), g1, 'instanceClass', Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 2), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 3), 34), this$static.eStringEDataType, 'instanceTypeName', null, 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, true, true, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), 'ePackage', 0, 1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, false, false, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 5), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EClassifier_2_classLit, false, false, true, true, true, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); - $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 1), 59), this$static.eIntEDataType, 'getClassifierID'); - $initEClass(this$static.eDataTypeEClass, Lorg_eclipse_emf_ecore_EDataType_2_classLit, 'EDataType', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eDataTypeEClass), 0), 34), this$static.eBooleanEDataType, 'serializable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EDataType_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.eEnumEClass, Lorg_eclipse_emf_ecore_EEnum_2_classLit, 'EEnum', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), this$static.eEnumLiteralEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), 'eLiterals', 0, -1, Lorg_eclipse_emf_ecore_EEnum_2_classLit, false, false, true, true, false, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 0), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); - $addEParameter(op, this$static.eStringEDataType, 'name'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 1), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); - $addEParameter(op, this$static.eIntEDataType, 'value'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 2), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteralByLiteral'); - $addEParameter(op, this$static.eStringEDataType, 'literal'); - $initEClass(this$static.eEnumLiteralEClass, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, 'EEnumLiteral', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 0), 34), this$static.eIntEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 1), 34), this$static.eEnumeratorEDataType, 'instance', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 2), 34), this$static.eStringEDataType, 'literal', null, 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), this$static.eEnumEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), 'eEnum', 0, 1, Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, true, false, false, false, false, false, false); - $initEClass(this$static.eFactoryEClass, Lorg_eclipse_emf_ecore_EFactory_2_classLit, 'EFactory', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), 'ePackage', 1, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, true, false, true, false, false, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 0), 59), this$static.eObjectEClass, 'create'); - $addEParameter(op, this$static.eClassEClass, 'eClass'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 1), 59), this$static.eJavaObjectEDataType, 'createFromString'); - $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); - $addEParameter(op, this$static.eStringEDataType, 'literalValue'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 2), 59), this$static.eStringEDataType, 'convertToString'); - $addEParameter(op, this$static.eDataTypeEClass, 'eDataType'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'instanceValue'); - $initEClass(this$static.eModelElementEClass, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, 'EModelElement', true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), this$static.eAnnotationEClass, castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), 'eAnnotations', 0, -1, Lorg_eclipse_emf_ecore_EModelElement_2_classLit, false, false, true, true, false, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eModelElementEClass), 0), 59), this$static.eAnnotationEClass, 'getEAnnotation'); - $addEParameter(op, this$static.eStringEDataType, 'source'); - $initEClass(this$static.eNamedElementEClass, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, 'ENamedElement', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eNamedElementEClass), 0), 34), this$static.eStringEDataType, 'name', null, 0, 1, Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.eObjectEClass, Lorg_eclipse_emf_ecore_EObject_2_classLit, 'EObject', false, false, true); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 0), 59), this$static.eClassEClass, 'eClass'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 1), 59), this$static.eBooleanEDataType, 'eIsProxy'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 2), 59), this$static.eResourceEDataType, 'eResource'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 3), 59), this$static.eObjectEClass, 'eContainer'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 4), 59), this$static.eStructuralFeatureEClass, 'eContainingFeature'); - $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 5), 59), this$static.eReferenceEClass, 'eContainmentFeature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 6), 59), null, 'eContents'); - g1 = $createEGenericType(this$static.eeListEDataType); - g2 = $createEGenericType(this$static.eObjectEClass); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs0 = $setEGenericType(op, g1, null); - !!msgs0 && msgs0.dispatch_0(); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 7), 59), null, 'eAllContents'); - g1 = $createEGenericType(this$static.eTreeIteratorEDataType); - g2 = $createEGenericType(this$static.eObjectEClass); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs1 = $setEGenericType(op, g1, null); - !!msgs1 && msgs1.dispatch_0(); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 8), 59), null, 'eCrossReferences'); - g1 = $createEGenericType(this$static.eeListEDataType); - g2 = $createEGenericType(this$static.eObjectEClass); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs2 = $setEGenericType(op, g1, null); - !!msgs2 && msgs2.dispatch_0(); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 9), 59), this$static.eJavaObjectEDataType, 'eGet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 10), 59), this$static.eJavaObjectEDataType, 'eGet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - $addEParameter(op, this$static.eBooleanEDataType, 'resolve'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 11), 59), null, 'eSet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'newValue'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 12), 59), this$static.eBooleanEDataType, 'eIsSet'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 13), 59), null, 'eUnset'); - $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 14), 59), this$static.eJavaObjectEDataType, 'eInvoke'); - $addEParameter(op, this$static.eOperationEClass, 'operation'); - g1 = $createEGenericType(this$static.eeListEDataType); - g2 = $createEGenericType_1(); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - $addEParameter_0(op, g1, 'arguments'); - $addEException(op, this$static.eInvocationTargetExceptionEDataType); - $initEClass(this$static.eOperationEClass, Lorg_eclipse_emf_ecore_EOperation_2_classLit, 'EOperation', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, true, false, false, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 1), 18), this$static.eTypeParameterEClass, null, 'eTypeParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), this$static.eParameterEClass, castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), 'eParameters', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 3), 18), this$static.eClassifierEClass, null, 'eExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, false, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 4), 18), this$static.eGenericTypeEClass, null, 'eGenericExceptions', 0, -1, Lorg_eclipse_emf_ecore_EOperation_2_classLit, false, false, true, true, false, true, false); - $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 0), 59), this$static.eIntEDataType, 'getOperationID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 1), 59), this$static.eBooleanEDataType, 'isOverrideOf'); - $addEParameter(op, this$static.eOperationEClass, 'someOperation'); - $initEClass(this$static.ePackageEClass, Lorg_eclipse_emf_ecore_EPackage_2_classLit, 'EPackage', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 0), 34), this$static.eStringEDataType, 'nsURI', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 1), 34), this$static.eStringEDataType, 'nsPrefix', null, 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), this$static.eFactoryEClass, castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), 'eFactoryInstance', 1, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), this$static.eClassifierEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), 'eClassifiers', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), 'eSubpackages', 0, -1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, false, false, true, true, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), 'eSuperPackage', 0, 1, Lorg_eclipse_emf_ecore_EPackage_2_classLit, true, false, false, false, true, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.ePackageEClass), 0), 59), this$static.eClassifierEClass, 'getEClassifier'); - $addEParameter(op, this$static.eStringEDataType, 'name'); - $initEClass(this$static.eParameterEClass, Lorg_eclipse_emf_ecore_EParameter_2_classLit, 'EParameter', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), 'eOperation', 0, 1, Lorg_eclipse_emf_ecore_EParameter_2_classLit, true, false, false, false, false, false, false); - $initEClass(this$static.eReferenceEClass, Lorg_eclipse_emf_ecore_EReference_2_classLit, 'EReference', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 0), 34), this$static.eBooleanEDataType, 'containment', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 1), 34), this$static.eBooleanEDataType, 'container', null, 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 2), 34), this$static.eBooleanEDataType, 'resolveProxies', 'true', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 3), 18), this$static.eReferenceEClass, null, 'eOpposite', 0, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 4), 18), this$static.eClassEClass, null, 'eReferenceType', 1, 1, Lorg_eclipse_emf_ecore_EReference_2_classLit, true, true, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eReferenceEClass), 5), 18), this$static.eAttributeEClass, null, 'eKeys', 0, -1, Lorg_eclipse_emf_ecore_EReference_2_classLit, false, false, true, false, true, false, false); - $initEClass(this$static.eStructuralFeatureEClass, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 'EStructuralFeature', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 0), 34), this$static.eBooleanEDataType, 'changeable', 'true', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 1), 34), this$static.eBooleanEDataType, 'volatile', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 2), 34), this$static.eBooleanEDataType, 'transient', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 3), 34), this$static.eStringEDataType, 'defaultValueLiteral', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 4), 34), this$static.eJavaObjectEDataType, 'defaultValue', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 5), 34), this$static.eBooleanEDataType, 'unsettable', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 6), 34), this$static.eBooleanEDataType, 'derived', null, 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, false, false, true, false, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), 'eContainingClass', 0, 1, Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, true, false, false, false, false, false, false); - $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 0), 59), this$static.eIntEDataType, 'getFeatureID'); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 1), 59), null, 'getContainerClass'); - g1 = $createEGenericType(this$static.eJavaClassEDataType); - g2 = $createEGenericType_1(); - $add_21((!g1.eTypeArguments && (g1.eTypeArguments = new EObjectContainmentEList(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, g1, 1)) , g1.eTypeArguments), g2); - msgs = $setEGenericType(op, g1, null); - !!msgs && msgs.dispatch_0(); - $initEClass(this$static.eTypedElementEClass, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, 'ETypedElement', true, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 0), 34), this$static.eBooleanEDataType, 'ordered', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 1), 34), this$static.eBooleanEDataType, 'unique', 'true', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 2), 34), this$static.eIntEDataType, 'lowerBound', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 3), 34), this$static.eIntEDataType, 'upperBound', '1', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 4), 34), this$static.eBooleanEDataType, 'many', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 5), 34), this$static.eBooleanEDataType, 'required', null, 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, true, true, false, false, true, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 6), 18), this$static.eClassifierEClass, null, 'eType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, false, true, true, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypedElementEClass), 7), 18), this$static.eGenericTypeEClass, null, 'eGenericType', 0, 1, Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, false, true, true, true, false, true, false); - $initEClass(this$static.eStringToStringMapEntryEClass, Ljava_util_Map$Entry_2_classLit, 'EStringToStringMapEntry', false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 0), 34), this$static.eStringEDataType, 'key', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eStringToStringMapEntryEClass), 1), 34), this$static.eStringEDataType, 'value', null, 0, 1, Ljava_util_Map$Entry_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.eGenericTypeEClass, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, 'EGenericType', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eUpperBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 1), 18), this$static.eGenericTypeEClass, null, 'eTypeArguments', 0, -1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 2), 18), this$static.eClassifierEClass, null, 'eRawType', 1, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, true, false, false, false, true, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 3), 18), this$static.eGenericTypeEClass, null, 'eLowerBound', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 4), 18), this$static.eTypeParameterEClass, null, 'eTypeParameter', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eGenericTypeEClass), 5), 18), this$static.eClassifierEClass, null, 'eClassifier', 0, 1, Lorg_eclipse_emf_ecore_EGenericType_2_classLit, false, false, true, false, true, false, false); - op = $initEOperation(castTo($get_20($getEOperations(this$static.eGenericTypeEClass), 0), 59), this$static.eBooleanEDataType, 'isInstance'); - $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); - $initEClass(this$static.eTypeParameterEClass, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, 'ETypeParameter', false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.eTypeParameterEClass), 0), 18), this$static.eGenericTypeEClass, null, 'eBounds', 0, -1, Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, false, false, true, true, false, false, false); - $initEDataType(this$static.eBigDecimalEDataType, Ljava_math_BigDecimal_2_classLit, 'EBigDecimal', true); - $initEDataType(this$static.eBigIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'EBigInteger', true); - $initEDataType(this$static.eBooleanEDataType, Z_classLit, 'EBoolean', true); - $initEDataType(this$static.eBooleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'EBooleanObject', true); - $initEDataType(this$static.eByteEDataType, B_classLit, 'EByte', true); - $initEDataType(this$static.eByteArrayEDataType, getClassLiteralForArray(B_classLit, 1), 'EByteArray', true); - $initEDataType(this$static.eByteObjectEDataType, Ljava_lang_Byte_2_classLit, 'EByteObject', true); - $initEDataType(this$static.eCharEDataType, C_classLit, 'EChar', true); - $initEDataType(this$static.eCharacterObjectEDataType, Ljava_lang_Character_2_classLit, 'ECharacterObject', true); - $initEDataType(this$static.eDateEDataType, Ljava_util_Date_2_classLit, 'EDate', true); - $initEDataType(this$static.eDiagnosticChainEDataType, Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, 'EDiagnosticChain', false); - $initEDataType(this$static.eDoubleEDataType, D_classLit, 'EDouble', true); - $initEDataType(this$static.eDoubleObjectEDataType, Ljava_lang_Double_2_classLit, 'EDoubleObject', true); - $initEDataType(this$static.eeListEDataType, Lorg_eclipse_emf_common_util_EList_2_classLit, 'EEList', false); - $initEDataType(this$static.eEnumeratorEDataType, Lorg_eclipse_emf_common_util_Enumerator_2_classLit, 'EEnumerator', false); - $initEDataType(this$static.eFeatureMapEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, 'EFeatureMap', false); - $initEDataType(this$static.eFeatureMapEntryEDataType, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, 'EFeatureMapEntry', false); - $initEDataType(this$static.eFloatEDataType, F_classLit, 'EFloat', true); - $initEDataType(this$static.eFloatObjectEDataType, Ljava_lang_Float_2_classLit, 'EFloatObject', true); - $initEDataType(this$static.eIntEDataType, I_classLit, 'EInt', true); - $initEDataType(this$static.eIntegerObjectEDataType, Ljava_lang_Integer_2_classLit, 'EIntegerObject', true); - $initEDataType(this$static.eJavaClassEDataType, Ljava_lang_Class_2_classLit, 'EJavaClass', true); - $initEDataType(this$static.eJavaObjectEDataType, Ljava_lang_Object_2_classLit, 'EJavaObject', true); - $initEDataType(this$static.eLongEDataType, J_classLit, 'ELong', true); - $initEDataType(this$static.eLongObjectEDataType, Ljava_lang_Long_2_classLit, 'ELongObject', true); - $initEDataType(this$static.eMapEDataType, Ljava_util_Map_2_classLit, 'EMap', false); - $initEDataType(this$static.eResourceEDataType, Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, 'EResource', false); - $initEDataType(this$static.eResourceSetEDataType, Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, 'EResourceSet', false); - $initEDataType(this$static.eShortEDataType, S_classLit, 'EShort', true); - $initEDataType(this$static.eShortObjectEDataType, Ljava_lang_Short_2_classLit, 'EShortObject', true); - $initEDataType(this$static.eStringEDataType, Ljava_lang_String_2_classLit, 'EString', true); - $initEDataType(this$static.eTreeIteratorEDataType, Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, 'ETreeIterator', false); - $initEDataType(this$static.eInvocationTargetExceptionEDataType, Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, 'EInvocationTargetException', false); - $createResource(this$static, 'http://www.eclipse.org/emf/2002/Ecore'); -} - -function EcorePackageImpl(){ - EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2002/Ecore', ($clinit_EcoreFactory() , eINSTANCE_1)); - $$init_12(this); -} - -function init_4(){ - $clinit_EcorePackageImpl(); - var theEcorePackage; - if (isInited_0) - return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 1939); - register_0(Ljava_util_Map$Entry_2_classLit, new EcorePackageImpl$44); - initializeRegistryHelpersGen(); - theEcorePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2002/Ecore'), 547)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore'):new EcorePackageImpl, 547); - isInited_0 = true; - $createPackageContents_0(theEcorePackage); - $initializePackageContents_0(theEcorePackage); - $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theEcorePackage, new EcorePackageImpl$1); - $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore', theEcorePackage); - return theEcorePackage; -} - -function initializeRegistryHelpersGen(){ - register_0(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, new EcorePackageImpl$2); - register_0(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, new EcorePackageImpl$3); - register_0(Lorg_eclipse_emf_ecore_EClass_2_classLit, new EcorePackageImpl$4); - register_0(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, new EcorePackageImpl$5); - register_0(Lorg_eclipse_emf_ecore_EDataType_2_classLit, new EcorePackageImpl$6); - register_0(Lorg_eclipse_emf_ecore_EEnum_2_classLit, new EcorePackageImpl$7); - register_0(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, new EcorePackageImpl$8); - register_0(Lorg_eclipse_emf_ecore_EFactory_2_classLit, new EcorePackageImpl$9); - register_0(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, new EcorePackageImpl$10); - register_0(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, new EcorePackageImpl$11); - register_0(Lorg_eclipse_emf_ecore_EObject_2_classLit, new EcorePackageImpl$12); - register_0(Lorg_eclipse_emf_ecore_EOperation_2_classLit, new EcorePackageImpl$13); - register_0(Lorg_eclipse_emf_ecore_EPackage_2_classLit, new EcorePackageImpl$14); - register_0(Lorg_eclipse_emf_ecore_EParameter_2_classLit, new EcorePackageImpl$15); - register_0(Lorg_eclipse_emf_ecore_EReference_2_classLit, new EcorePackageImpl$16); - register_0(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, new EcorePackageImpl$17); - register_0(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, new EcorePackageImpl$18); - register_0(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, new EcorePackageImpl$19); - register_0(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, new EcorePackageImpl$20); - register_0(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, new EcorePackageImpl$21); - register_0(Ljava_lang_Boolean_2_classLit, new EcorePackageImpl$22); - register_0(getClassLiteralForArray(B_classLit, 1), new EcorePackageImpl$23); - register_0(Ljava_lang_Byte_2_classLit, new EcorePackageImpl$24); - register_0(Ljava_lang_Character_2_classLit, new EcorePackageImpl$25); - register_0(Ljava_util_Date_2_classLit, new EcorePackageImpl$26); - register_0(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, new EcorePackageImpl$27); - register_0(Ljava_lang_Double_2_classLit, new EcorePackageImpl$28); - register_0(Lorg_eclipse_emf_common_util_EList_2_classLit, new EcorePackageImpl$29); - register_0(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, new EcorePackageImpl$30); - register_0(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, new EcorePackageImpl$31); - register_0(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, new EcorePackageImpl$32); - register_0(Ljava_lang_Float_2_classLit, new EcorePackageImpl$33); - register_0(Ljava_lang_Integer_2_classLit, new EcorePackageImpl$34); - register_0(Ljava_lang_Class_2_classLit, new EcorePackageImpl$35); - register_0(Ljava_lang_Long_2_classLit, new EcorePackageImpl$36); - register_0(Ljava_util_Map_2_classLit, new EcorePackageImpl$37); - register_0(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, new EcorePackageImpl$38); - register_0(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, new EcorePackageImpl$39); - register_0(Ljava_lang_Short_2_classLit, new EcorePackageImpl$40); - register_0(Ljava_lang_String_2_classLit, new EcorePackageImpl$41); - register_0(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, new EcorePackageImpl$42); - register_0(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, new EcorePackageImpl$43); -} - -function internalBootstrap(){ - $clinit_EcorePackageImpl(); - var eGenericType, eGenericType$iterator; - $createExtendedMetaDataAnnotations(($clinit_EcorePackage() , eINSTANCE_2)); - $createEcoreAnnotations(eINSTANCE_2); - $freeze_0(eINSTANCE_2); - eJavaObject = ($clinit_EcorePackage$Literals() , EJAVA_OBJECT); - for (eGenericType$iterator = new ArrayList$1(eGenericTypes_0); eGenericType$iterator.i < eGenericType$iterator.this$01.array.length;) { - eGenericType = castTo($next_7(eGenericType$iterator), 241); - $setERawType(eGenericType, EJAVA_OBJECT, null); - } - return true; -} - -defineClass(547, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 1939:1, 49:1, 97:1, 150:1, 179:1, 547:1, 114:1, 115:1, 675:1}, EcorePackageImpl); -_.isCreated = false; -_.isInitialized = false; -var eGenericTypes_0, isInited_0 = false; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl', 547); -function EcorePackageImpl$1(){ -} - -defineClass(1184, 1, {837:1}, EcorePackageImpl$1); -_.getEValidator = function getEValidator(){ - return $clinit_EcoreValidator() , INSTANCE_10; -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/1', 1184); -function EcorePackageImpl$10(){ -} - -defineClass(1193, 1, $intern_162, EcorePackageImpl$10); -_.isInstance = function isInstance_6(instance){ - return instanceOf(instance, 147); -} -; -_.newArrayInstance = function newArrayInstance(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, $intern_2, 147, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/10', 1193); -function EcorePackageImpl$11(){ -} - -defineClass(1194, 1, $intern_162, EcorePackageImpl$11); -_.isInstance = function isInstance_7(instance){ - return instanceOf(instance, 191); -} -; -_.newArrayInstance = function newArrayInstance_0(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, $intern_2, 191, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/11', 1194); -function EcorePackageImpl$12(){ -} - -defineClass(1195, 1, $intern_162, EcorePackageImpl$12); -_.isInstance = function isInstance_8(instance){ - return instanceOf(instance, 56); -} -; -_.newArrayInstance = function newArrayInstance_1(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/12', 1195); -function EcorePackageImpl$13(){ -} - -defineClass(1196, 1, $intern_162, EcorePackageImpl$13); -_.isInstance = function isInstance_9(instance){ - return instanceOf(instance, 399); -} -; -_.newArrayInstance = function newArrayInstance_2(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/13', 1196); -function EcorePackageImpl$14(){ -} - -defineClass(1197, 1, $intern_162, EcorePackageImpl$14); -_.isInstance = function isInstance_10(instance){ - return instanceOf(instance, 235); -} -; -_.newArrayInstance = function newArrayInstance_3(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EPackage_2_classLit, $intern_2, 235, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/14', 1197); -function EcorePackageImpl$15(){ -} - -defineClass(1198, 1, $intern_162, EcorePackageImpl$15); -_.isInstance = function isInstance_11(instance){ - return instanceOf(instance, 509); -} -; -_.newArrayInstance = function newArrayInstance_4(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EParameter_2_classLit, $intern_2, 2017, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/15', 1198); -function EcorePackageImpl$16(){ -} - -defineClass(1199, 1, $intern_162, EcorePackageImpl$16); -_.isInstance = function isInstance_12(instance){ - return instanceOf(instance, 99); -} -; -_.newArrayInstance = function newArrayInstance_5(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/16', 1199); -function EcorePackageImpl$17(){ -} - -defineClass(1200, 1, $intern_162, EcorePackageImpl$17); -_.isInstance = function isInstance_13(instance){ - return instanceOf(instance, 170); -} -; -_.newArrayInstance = function newArrayInstance_6(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/17', 1200); -function EcorePackageImpl$18(){ -} - -defineClass(1201, 1, $intern_162, EcorePackageImpl$18); -_.isInstance = function isInstance_14(instance){ - return instanceOf(instance, 472); -} -; -_.newArrayInstance = function newArrayInstance_7(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, $intern_2, 472, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/18', 1201); -function EcorePackageImpl$19(){ -} - -defineClass(1202, 1, $intern_162, EcorePackageImpl$19); -_.isInstance = function isInstance_15(instance){ - return instanceOf(instance, 548); -} -; -_.newArrayInstance = function newArrayInstance_8(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, $intern_146, 548, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/19', 1202); -function EcorePackageImpl$2(){ -} - -defineClass(1185, 1, $intern_162, EcorePackageImpl$2); -_.isInstance = function isInstance_16(instance){ - return instanceOf(instance, 322); -} -; -_.newArrayInstance = function newArrayInstance_9(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/2', 1185); -function EcorePackageImpl$20(){ -} - -defineClass(1203, 1, $intern_162, EcorePackageImpl$20); -_.isInstance = function isInstance_17(instance){ - return instanceOf(instance, 241); -} -; -_.newArrayInstance = function newArrayInstance_10(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/20', 1203); -function EcorePackageImpl$21(){ -} - -defineClass(1204, 1, $intern_162, EcorePackageImpl$21); -_.isInstance = function isInstance_18(instance){ - return instanceOf(instance, 444); -} -; -_.newArrayInstance = function newArrayInstance_11(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, $intern_2, 836, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/21', 1204); -function EcorePackageImpl$22(){ -} - -defineClass(1205, 1, $intern_162, EcorePackageImpl$22); -_.isInstance = function isInstance_19(instance){ - return instanceOfBoolean(instance); -} -; -_.newArrayInstance = function newArrayInstance_12(size_0){ - return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/22', 1205); -function EcorePackageImpl$23(){ -} - -defineClass(1206, 1, $intern_162, EcorePackageImpl$23); -_.isInstance = function isInstance_20(instance){ - return instanceOf(instance, 190); -} -; -_.newArrayInstance = function newArrayInstance_13(size_0){ - return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/23', 1206); -function EcorePackageImpl$24(){ -} - -defineClass(1207, 1, $intern_162, EcorePackageImpl$24); -_.isInstance = function isInstance_21(instance){ - return instanceOf(instance, 217); -} -; -_.newArrayInstance = function newArrayInstance_14(size_0){ - return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/24', 1207); -function EcorePackageImpl$25(){ -} - -defineClass(1208, 1, $intern_162, EcorePackageImpl$25); -_.isInstance = function isInstance_22(instance){ - return instanceOf(instance, 172); -} -; -_.newArrayInstance = function newArrayInstance_15(size_0){ - return initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/25', 1208); -function EcorePackageImpl$26(){ -} - -defineClass(1209, 1, $intern_162, EcorePackageImpl$26); -_.isInstance = function isInstance_23(instance){ - return instanceOf(instance, 199); -} -; -_.newArrayInstance = function newArrayInstance_16(size_0){ - return initUnidimensionalArray(Ljava_util_Date_2_classLit, $intern_16, 199, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/26', 1209); -function EcorePackageImpl$27(){ -} - -defineClass(1210, 1, $intern_162, EcorePackageImpl$27); -_.isInstance = function isInstance_24(instance){ - return false; -} -; -_.newArrayInstance = function newArrayInstance_17(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit, $intern_2, 2110, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/27', 1210); -function EcorePackageImpl$28(){ -} - -defineClass(1211, 1, $intern_162, EcorePackageImpl$28); -_.isInstance = function isInstance_25(instance){ - return instanceOfDouble(instance); -} -; -_.newArrayInstance = function newArrayInstance_18(size_0){ - return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/28', 1211); -function EcorePackageImpl$29(){ -} - -defineClass(1212, 1, $intern_162, EcorePackageImpl$29); -_.isInstance = function isInstance_26(instance){ - return instanceOf(instance, 58); -} -; -_.newArrayInstance = function newArrayInstance_19(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_EList_2_classLit, $intern_99, 58, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/29', 1212); -function EcorePackageImpl$3(){ -} - -defineClass(1186, 1, $intern_162, EcorePackageImpl$3); -_.isInstance = function isInstance_27(instance){ - return instanceOf(instance, 510); -} -; -_.newArrayInstance = function newArrayInstance_20(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, {3:1, 4:1, 5:1, 1934:1}, 590, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/3', 1186); -function EcorePackageImpl$30(){ -} - -defineClass(1213, 1, $intern_162, EcorePackageImpl$30); -_.isInstance = function isInstance_28(instance){ - return instanceOf(instance, 573); -} -; -_.newArrayInstance = function newArrayInstance_21(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, $intern_2, 1940, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/30', 1213); -function EcorePackageImpl$31(){ -} - -defineClass(1214, 1, $intern_162, EcorePackageImpl$31); -_.isInstance = function isInstance_29(instance){ - return instanceOf(instance, 153); -} -; -_.newArrayInstance = function newArrayInstance_22(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, $intern_99, 153, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/31', 1214); -function EcorePackageImpl$32(){ -} - -defineClass(1215, 1, $intern_162, EcorePackageImpl$32); -_.isInstance = function isInstance_30(instance){ - return instanceOf(instance, 72); -} -; -_.newArrayInstance = function newArrayInstance_23(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, $intern_163, 72, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/32', 1215); -function EcorePackageImpl$33(){ -} - -defineClass(1216, 1, $intern_162, EcorePackageImpl$33); -_.isInstance = function isInstance_31(instance){ - return instanceOf(instance, 155); -} -; -_.newArrayInstance = function newArrayInstance_24(size_0){ - return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/33', 1216); -function EcorePackageImpl$34(){ -} - -defineClass(1217, 1, $intern_162, EcorePackageImpl$34); -_.isInstance = function isInstance_32(instance){ - return instanceOf(instance, 19); -} -; -_.newArrayInstance = function newArrayInstance_25(size_0){ - return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/34', 1217); -function EcorePackageImpl$35(){ -} - -defineClass(1218, 1, $intern_162, EcorePackageImpl$35); -_.isInstance = function isInstance_33(instance){ - return instanceOf(instance, 290); -} -; -_.newArrayInstance = function newArrayInstance_26(size_0){ - return initUnidimensionalArray(Ljava_lang_Class_2_classLit, $intern_2, 290, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/35', 1218); -function EcorePackageImpl$36(){ -} - -defineClass(1219, 1, $intern_162, EcorePackageImpl$36); -_.isInstance = function isInstance_34(instance){ - return instanceOf(instance, 162); -} -; -_.newArrayInstance = function newArrayInstance_27(size_0){ - return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/36', 1219); -function EcorePackageImpl$37(){ -} - -defineClass(1220, 1, $intern_162, EcorePackageImpl$37); -_.isInstance = function isInstance_35(instance){ - return instanceOf(instance, 83); -} -; -_.newArrayInstance = function newArrayInstance_28(size_0){ - return initUnidimensionalArray(Ljava_util_Map_2_classLit, $intern_2, 83, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/37', 1220); -function EcorePackageImpl$38(){ -} - -defineClass(1221, 1, $intern_162, EcorePackageImpl$38); -_.isInstance = function isInstance_36(instance){ - return instanceOf(instance, 591); -} -; -_.newArrayInstance = function newArrayInstance_29(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, $intern_2, 591, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/38', 1221); -function EcorePackageImpl$39(){ -} - -defineClass(1222, 1, $intern_162, EcorePackageImpl$39); -_.isInstance = function isInstance_37(instance){ - return false; -} -; -_.newArrayInstance = function newArrayInstance_30(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit, $intern_2, 2111, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/39', 1222); -function EcorePackageImpl$4(){ -} - -defineClass(1187, 1, $intern_162, EcorePackageImpl$4); -_.isInstance = function isInstance_38(instance){ - return instanceOf(instance, 88); -} -; -_.newArrayInstance = function newArrayInstance_31(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/4', 1187); -function EcorePackageImpl$40(){ -} - -defineClass(1223, 1, $intern_162, EcorePackageImpl$40); -_.isInstance = function isInstance_39(instance){ - return instanceOf(instance, 184); -} -; -_.newArrayInstance = function newArrayInstance_32(size_0){ - return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/40', 1223); -function EcorePackageImpl$41(){ -} - -defineClass(1224, 1, $intern_162, EcorePackageImpl$41); -_.isInstance = function isInstance_40(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_33(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/41', 1224); -function EcorePackageImpl$42(){ -} - -defineClass(1225, 1, $intern_162, EcorePackageImpl$42); -_.isInstance = function isInstance_41(instance){ - return instanceOf(instance, 588); -} -; -_.newArrayInstance = function newArrayInstance_34(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, $intern_2, 588, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/42', 1225); -function EcorePackageImpl$43(){ -} - -defineClass(1226, 1, $intern_162, EcorePackageImpl$43); -_.isInstance = function isInstance_42(instance){ - return false; -} -; -_.newArrayInstance = function newArrayInstance_35(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit, $intern_16, 2112, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/43', 1226); -function EcorePackageImpl$44(){ -} - -defineClass(1227, 1, $intern_162, EcorePackageImpl$44); -_.isInstance = function isInstance_43(instance){ - return instanceOf(instance, 42); -} -; -_.newArrayInstance = function newArrayInstance_36(size_0){ - return initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/44', 1227); -function EcorePackageImpl$5(){ -} - -defineClass(1188, 1, $intern_162, EcorePackageImpl$5); -_.isInstance = function isInstance_44(instance){ - return instanceOf(instance, 138); -} -; -_.newArrayInstance = function newArrayInstance_37(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/5', 1188); -function EcorePackageImpl$6(){ -} - -defineClass(1189, 1, $intern_162, EcorePackageImpl$6); -_.isInstance = function isInstance_45(instance){ - return instanceOf(instance, 148); -} -; -_.newArrayInstance = function newArrayInstance_38(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EDataType_2_classLit, $intern_2, 148, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/6', 1189); -function EcorePackageImpl$7(){ -} - -defineClass(1190, 1, $intern_162, EcorePackageImpl$7); -_.isInstance = function isInstance_46(instance){ - return instanceOf(instance, 457); -} -; -_.newArrayInstance = function newArrayInstance_39(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnum_2_classLit, $intern_2, 671, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/7', 1190); -function EcorePackageImpl$8(){ -} - -defineClass(1191, 1, $intern_162, EcorePackageImpl$8); -_.isInstance = function isInstance_47(instance){ - return instanceOf(instance, 573); -} -; -_.newArrayInstance = function newArrayInstance_40(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, $intern_2, 678, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/8', 1191); -function EcorePackageImpl$9(){ -} - -defineClass(1192, 1, $intern_162, EcorePackageImpl$9); -_.isInstance = function isInstance_48(instance){ - return instanceOf(instance, 471); -} -; -_.newArrayInstance = function newArrayInstance_41(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EFactory_2_classLit, $intern_2, 471, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/9', 1192); -function $didAdd_1(this$static, newAdapter){ - var listener$array, listener$index, listener$max, listeners; - newAdapter.setTarget(this$static.this$01); - listeners = castTo($getField(this$static.this$01, 8), 1936); - if (listeners != null) { - for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { - null.$_nullMethod(); - } - } -} - -function $didRemove_0(this$static, index_0, oldAdapter){ - var adapter, listener$array, listener$index, listener$max, listeners, notification; - listeners = castTo($getField(this$static.this$01, 8), 1936); - if (listeners != null) { - for (listener$array = listeners , listener$index = 0 , listener$max = listener$array.length; listener$index < listener$max; ++listener$index) { - null.$_nullMethod(); - } - } - adapter = oldAdapter; - if ((this$static.this$01.eFlags_0 & 1) == 0) { - notification = new MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$static, oldAdapter, index_0); - adapter.notifyChanged(notification); - } - instanceOf(adapter, 672)?castTo(adapter, 672).unsetTarget(this$static.this$01):adapter.getTarget() == this$static.this$01 && adapter.setTarget(null); -} - -function $setData(this$static, data_0){ - var eContainerAdapterArray, eInternalContainer; - ++this$static.modCount; - if (data_0 != null) { - eContainerAdapterArray = (eInternalContainer = this$static.this$01.eContainer , instanceOf(eInternalContainer, 97)?castTo(eInternalContainer, 97).eBasicAdapterArray():null); - if (equals_46(data_0, eContainerAdapterArray)) { - $setField(this$static.this$01, 4, eContainerAdapterArray); - return; - } - } - $setField(this$static.this$01, 4, castTo(data_0, 126)); -} - -function MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$0){ - $clinit_ArrayDelegatingEList(); - this.this$01 = this$0; -} - -defineClass(1025, 1982, $intern_144, MinimalEObjectImpl$1ArrayDelegatingAdapterList); -_.didAdd = function didAdd_2(index_0, newAdapter){ - $didAdd_1(this, castTo(newAdapter, 415)); -} -; -_.didRemove = function didRemove_1(index_0, oldAdapter){ - $didRemove_0(this, index_0, castTo(oldAdapter, 415)); -} -; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList', 1025); -function MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$1, $anonymous1, $anonymous3){ - this.this$11 = this$1; - NotificationImpl_1.call(this, 8, $anonymous1, null, $anonymous3); -} - -defineClass(1026, 143, $intern_142, MinimalEObjectImpl$1ArrayDelegatingAdapterList$1); -_.getNotifier = function getNotifier_7(){ - return this.this$11.this$01; -} -; -var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1', 1026); -function $clinit_EcorePlugin(){ - $clinit_EcorePlugin = emptyMethod; - new EcorePlugin; - new ArrayList; -} - -function EcorePlugin(){ - new HashMap; - new HashMap; - new HashMap; -} - -defineClass(1053, 1052, {}, EcorePlugin); -var Lorg_eclipse_emf_ecore_plugin_EcorePlugin_2_classLit = createForClass('org.eclipse.emf.ecore.plugin', 'EcorePlugin', 1053); -var Lorg_eclipse_emf_ecore_resource_Resource_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'Resource'); -function $getEObject(this$static, uriFragmentPath){ - var eObject, i, size_0; - size_0 = uriFragmentPath.array.length; - eObject = $getEObjectForURIFragmentRootSegment(this$static, size_0 == 0?'':(checkCriticalElementIndex(0, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[0]))); - for (i = 1; i < size_0 && !!eObject; ++i) { - eObject = castTo(eObject, 49).eObjectForURIFragmentSegment((checkCriticalElementIndex(i, uriFragmentPath.array.length) , castToString(uriFragmentPath.array[i]))); - } - return eObject; -} - -function $getEObjectByID(this$static, id_0){ - var eObject, eObjectId, i, result, eClass, eIDAttribute; - result = null; - for (i = new ResourceImpl$5((!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents)); $hasNext_7(i);) { - eObject = castTo($next_14(i), 56); - eObjectId = (eClass = eObject.eClass_0() , eIDAttribute = ($getEAllAttributes(eClass) , eClass.eIDAttribute) , !eIDAttribute || !eObject.eIsSet_0(eIDAttribute)?null:convertToString_2($getEAttributeType(eIDAttribute), eObject.eGet_0(eIDAttribute))); - if (eObjectId != null) { - if ($equals_5(eObjectId, id_0)) { - result = eObject; - break; - } - } - } - return result; -} - -function $getEObjectForURIFragmentRootSegment(this$static, uriFragmentRootSegment){ - var contents, exception, position; - position = 0; - if (uriFragmentRootSegment.length > 0) { - try { - position = __parseAndValidateInt(uriFragmentRootSegment, $intern_42, $intern_0); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 127)) { - exception = $e0; - throw toJs(new WrappedException(exception)); - } - else - throw toJs($e0); - } - } - contents = (!this$static.contents && (this$static.contents = new ResourceImpl$ContentsEList(this$static)) , this$static.contents); - return position < contents.size_0 && position >= 0?castTo($get_20(contents, position), 56):null; -} - -defineClass(781, 1378, $intern_164); -_.attached = function attached(eObject){ -} -; -_.detached = function detached(eObject){ -} -; -_.getContents = function getContents(){ - return !this.contents && (this.contents = new ResourceImpl$ContentsEList(this)) , this.contents; -} -; -_.getEObject = function getEObject(uriFragment){ - var i, index_0, length_0, start_0, uriFragmentPath; - length_0 = uriFragment.length; - if (length_0 > 0) { - checkCriticalStringElementIndex(0, uriFragment.length); - if (uriFragment.charCodeAt(0) == 47) { - uriFragmentPath = new ArrayList_0(4); - start_0 = 1; - for (i = 1; i < length_0; ++i) { - checkCriticalStringElementIndex(i, uriFragment.length); - if (uriFragment.charCodeAt(i) == 47) { - $add_3(uriFragmentPath, start_0 == i?'':uriFragment.substr(start_0, i - start_0)); - start_0 = i + 1; - } - } - $add_3(uriFragmentPath, uriFragment.substr(start_0)); - return $getEObject(this, uriFragmentPath); - } - else { - checkCriticalStringElementIndex(length_0 - 1, uriFragment.length); - if (uriFragment.charCodeAt(length_0 - 1) == 63) { - index_0 = $lastIndexOf_0(uriFragment, fromCodePoint(63), length_0 - 2); - index_0 > 0 && (uriFragment = uriFragment.substr(0, index_0)); - } - } - } - return $getEObjectByID(this, uriFragment); -} -; -_.getResourceSet = function getResourceSet(){ - return this.resourceSet; -} -; -_.toString_0 = function toString_156(){ - var number; - return $getName(this.___clazz) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)) + " uri='" + this.uri_0 + "'"; -} -; -_.isLoaded = false; -var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl', 781); -function BinaryResourceImpl(uri_0){ - this.uri_0 = uri_0; -} - -defineClass(1379, 781, $intern_164, BinaryResourceImpl); -var Lorg_eclipse_emf_ecore_resource_impl_BinaryResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'BinaryResourceImpl', 1379); -function $getEObjectChildren(this$static, eObject){ - return this$static.isResolveProxies?eObject.eContents_0().iterator_0():castTo(eObject.eContents_0(), 69).basicIterator(); -} - -function $hasNext_7(this$static){ - var iterator; - if (!this$static.includeRoot && this$static.data_0 == null) { - this$static.nextPruneIterator = this$static.getChildren(this$static.object); - $add_21(this$static, this$static.nextPruneIterator); - iterator = this$static.nextPruneIterator; - } - else { - if (this$static.data_0 == null) { - return true; - } - else if (this$static.size_0 == 0) { - return false; - } - else { - iterator = castTo(this$static.data_0[this$static.size_0 - 1], 47); - } - } - if (iterator == this$static.resourceSetIterator && null.$_nullField >= null.$_nullMethod()) { - $next_14(this$static); - return $hasNext_7(this$static); - } - else { - return iterator.hasNext_0(); - } -} - -defineClass(1169, 694, $intern_139); -_.getChildren = function getChildren_0(object){ - return instanceOf(object, 56)?$getEObjectChildren(this, castTo(object, 56)):instanceOf(object, 591)?new AbstractEList$EIterator(castTo(object, 591).getContents()):maskUndefined(object) === maskUndefined(this.object)?castTo(object, 14).iterator_0():($clinit_ECollections() , EMPTY_ELIST.listIterator); -} -; -_.hasNext_0 = function hasNext_48(){ - return $hasNext_7(this); -} -; -_.isResolveProxies = false; -var Lorg_eclipse_emf_ecore_util_EcoreUtil$ContentTreeIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ContentTreeIterator', 1169); -function ResourceImpl$5($anonymous0){ - AbstractTreeIterator.call(this, $anonymous0, false); - this.isResolveProxies = false; -} - -defineClass(1380, 1169, $intern_139, ResourceImpl$5); -_.getChildren = function getChildren_1(object){ - return maskUndefined(object) === maskUndefined(this.object)?castTo(object, 15).iterator_0():new EcoreUtil$ProperContentIterator(castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/5', 1380); -function ResourceImpl$ContentsEList(this$0){ - this.this$01 = this$0; -} - -defineClass(648, 1994, $intern_153, ResourceImpl$ContentsEList); -_.contains = function contains_66(object){ - return this.size_0 <= 4?$contains_10(this, object):instanceOf(object, 49) && castTo(object, 49).eDirectResource() == this.this$01; -} -; -_.didAdd = function didAdd_3(index_0, object){ - index_0 == this.size_0 - 1 && (this.this$01.isLoaded || (this.this$01.isLoaded = true , null)); -} -; -_.didClear = function didClear_1(oldSize, oldData){ - oldSize == 0?this.this$01.isLoaded || (this.this$01.isLoaded = true , null):$didClear(this, oldSize, oldData); -} -; -_.didRemove = function didRemove_2(index_0, object){ -} -; -_.didSet = function didSet_1(index_0, newObject, oldObject){ -} -; -_.getFeatureID_0 = function getFeatureID_12(){ - return 2; -} -; -_.getNotifier = function getNotifier_8(){ - return this.this$01; -} -; -_.hasInverse = function hasInverse_10(){ - return true; -} -; -_.inverseAdd = function inverseAdd_8(object, notifications){ - var eObject; - eObject = castTo(object, 49); - notifications = eObject.eSetResource(this.this$01, notifications); - return notifications; -} -; -_.inverseRemove = function inverseRemove_8(object, notifications){ - var eObject; - eObject = castTo(object, 49); - return eObject.eSetResource(null, notifications); -} -; -_.isNotificationRequired = function isNotificationRequired_3(){ - return false; -} -; -_.isUnique = function isUnique_7(){ - return true; -} -; -_.newData = function newData_13(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, capacity, 0, 1); -} -; -_.useEquals = function useEquals_14(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$ContentsEList_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/ContentsEList', 648); -function AbstractSequentialInternalEList$1(this$0){ - this.this$01 = this$0; -} - -defineClass(957, 1964, $intern_37, AbstractSequentialInternalEList$1); -_.listIterator_1 = function listIterator_32(index_0){ - return this.this$01.basicListIterator_0(index_0); -} -; -_.size_1 = function size_79(){ - return this.this$01.size_1(); -} -; -var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList/1', 957); -function $clinit_ExtendedMetaData(){ - $clinit_ExtendedMetaData = emptyMethod; - FEATURE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'simple', 'attribute', 'attributeWildcard', 'element', 'elementWildcard', 'group']); - CONTENT_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'empty', 'simple', 'mixed', 'elementOnly']); - WHITE_SPACE_KINDS = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['unspecified', 'preserve', 'replace', 'collapse']); - INSTANCE_11 = new BasicExtendedMetaData; -} - -var CONTENT_KINDS, FEATURE_KINDS, INSTANCE_11, WHITE_SPACE_KINDS; -function $clinit_BasicExtendedMetaData(){ - $clinit_BasicExtendedMetaData = emptyMethod; - var eAttribute, eDataType; - UNINITIALIZED_EDATA_TYPE = ($clinit_EcoreFactory() , eDataType = new EDataTypeImpl , eDataType); - UNINITIALIZED_ESTRUCTURAL_FEATURE = (eAttribute = new EAttributeImpl , eAttribute); -} - -function $basicGetAffiliation(this$static, eStructuralFeature){ - var eAnnotation, fragmentIndex, qualifiedName; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'affiliation')); - if (qualifiedName != null) { - fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); - return fragmentIndex == -1?$getElement(this$static, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())), qualifiedName):fragmentIndex == 0?$getElement(this$static, null, qualifiedName.substr(1)):$getElement(this$static, qualifiedName.substr(0, fragmentIndex), qualifiedName.substr(fragmentIndex + 1)); - } - } - return null; -} - -function $basicGetBaseType(this$static, eDataType){ - var baseType, details, eAnnotation, index_0, type_0; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); - baseType = castToString($get_21(details, 'baseType')); - if (baseType != null) { - index_0 = baseType.lastIndexOf('#'); - type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), baseType):index_0 == 0?$getType(this$static, null, baseType.substr(1)):$getType(this$static, baseType.substr(0, index_0), baseType.substr(index_0 + 1)); - if (instanceOf(type_0, 148)) { - return castTo(type_0, 148); - } - } - } - return null; -} - -function $basicGetContentKind(this$static, eClass){ - var eAnnotation, i, kind; - eAnnotation = eClass.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); - if (kind != null) { - for (i = 1; i < ($clinit_ExtendedMetaData() , CONTENT_KINDS).length; ++i) { - if ($equals_5(CONTENT_KINDS[i], kind)) { - return i; - } - } - } - } - return 0; -} - -function $basicGetFeatureKind(this$static, eStructuralFeature){ - var eAnnotation, i, kind; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - kind = $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'kind'); - if (kind != null) { - for (i = 1; i < ($clinit_ExtendedMetaData() , FEATURE_KINDS).length; ++i) { - if ($equals_5(FEATURE_KINDS[i], kind)) { - return i; - } - } - } - } - return 0; -} - -function $basicGetGroup(this$static, eStructuralFeature){ - var eAnnotation, eContainingClass, fragmentIndex, name_0, namespace, qualifiedName; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - qualifiedName = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'group')); - if (qualifiedName != null) { - fragmentIndex = $lastIndexOf(qualifiedName, fromCodePoint(35)); - eContainingClass = eStructuralFeature.getEContainingClass(); - if (fragmentIndex == -1) { - namespace = $getNamespace(this$static, $getEPackage(eContainingClass)); - name_0 = qualifiedName; - } - else if (fragmentIndex == 0) { - namespace = null; - name_0 = qualifiedName.substr(1); - } - else { - namespace = qualifiedName.substr(0, fragmentIndex); - name_0 = qualifiedName.substr(fragmentIndex + 1); - } - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 2: - case 3: - { - return $getAttribute_0(this$static, eContainingClass, namespace, name_0); - } - - case 0: - case 4: - case 5: - case 6: - { - return $getElement_0(this$static, eContainingClass, namespace, name_0); - } - - } - } - } - return null; -} - -function $basicGetItemType(this$static, eDataType){ - var details, eAnnotation, index_0, itemType, type_0; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - details = (!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details); - itemType = castToString($get_21(details, 'itemType')); - if (itemType != null) { - index_0 = itemType.lastIndexOf('#'); - type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), itemType):index_0 == 0?$getType(this$static, null, itemType.substr(1)):$getType(this$static, itemType.substr(0, index_0), itemType.substr(index_0 + 1)); - if (instanceOf(type_0, 148)) { - return castTo(type_0, 148); - } - } - } - return null; -} - -function $basicGetMemberTypes(this$static, eDataType){ - var eAnnotation, index_0, member, member$array, member$index, member$max, memberTypes, result, type_0; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - memberTypes = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'memberTypes')); - if (memberTypes != null) { - result = new ArrayList; - for (member$array = $split_0(memberTypes, '\\w') , member$index = 0 , member$max = member$array.length; member$index < member$max; ++member$index) { - member = member$array[member$index]; - index_0 = member.lastIndexOf('#'); - type_0 = index_0 == -1?$getType_0(this$static, eDataType.getEPackage(), member):index_0 == 0?$getType(this$static, null, member.substr(1)):$getType(this$static, member.substr(0, index_0), member.substr(index_0 + 1)); - instanceOf(type_0, 148) && $add_3(result, castTo(type_0, 148)); - } - return result; - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function $basicGetName(this$static, eClassifier){ - var eAnnotation, result; - eAnnotation = eClassifier.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); - if (result != null) { - return result; - } - } - return eClassifier.getName(); -} - -function $basicGetName_0(this$static, eStructuralFeature){ - var eAnnotation, result; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'name')); - if (result != null) { - return result; - } - } - return eStructuralFeature.getName(); -} - -function $basicGetNamespace(this$static, eStructuralFeature){ - var eAnnotation, result; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (!eAnnotation) { - return null; - } - else { - result = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'namespace')); - return $equals_5('##targetNamespace', result)?$getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass())):result; - } -} - -function $basicGetWhiteSpaceFacet(this$static, eDataType){ - var eAnnotation, i, whiteSpaceLiteral; - eAnnotation = eDataType.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - whiteSpaceLiteral = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'whiteSpace')); - for (i = 1; i < ($clinit_ExtendedMetaData() , WHITE_SPACE_KINDS).length; ++i) { - if ($equals_5(WHITE_SPACE_KINDS[i], whiteSpaceLiteral)) { - return i; - } - } - } - return 0; -} - -function $basicGetWildcards(this$static, eStructuralFeature){ - var eAnnotation, result, wildcard, wildcard$array, wildcard$index, wildcard$max, wildcards; - eAnnotation = eStructuralFeature.getEAnnotation(this$static.annotationURI); - if (eAnnotation) { - wildcards = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'wildcards')); - if (wildcards != null) { - result = new ArrayList; - for (wildcard$array = $split_0(wildcards, '\\w') , wildcard$index = 0 , wildcard$max = wildcard$array.length; wildcard$index < wildcard$max; ++wildcard$index) { - wildcard = wildcard$array[wildcard$index]; - $equals_5(wildcard, '##other')?$add_3(result, '!##' + $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):$equals_5(wildcard, '##local')?(result.array[result.array.length] = null , true):$equals_5(wildcard, '##targetNamespace')?$add_3(result, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):(result.array[result.array.length] = wildcard , true); - } - return result; - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function $getAffiliation(this$static, eClass, eStructuralFeature){ - var affiliation, allAttributes, allElements, i, name_0, namespace, namespace0, result, size_0; - if ($getFeatureID(eClass, eStructuralFeature) >= 0) { - return eStructuralFeature; - } - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 2: - { - if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { - namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - name_0 = $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - result = $getLocalAttribute(this$static, eClass, namespace, name_0); - if (result) { - return result; - } - allAttributes = $getAllAttributes(this$static, eClass); - for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { - result = castTo(allAttributes.get_0(i), 170); - if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { - return result; - } - } - } - return null; - } - - case 4: - { - if ($equals_5('', $getExtendedMetaData(this$static, eStructuralFeature.getEContainingClass()).getName())) { - for (affiliation = eStructuralFeature; affiliation; affiliation = $getAffiliation_0($getExtendedMetaData_1(this$static, affiliation))) { - namespace0 = $getNamespace_0($getExtendedMetaData_1(this$static, affiliation)); - name_0 = $getName_0($getExtendedMetaData_1(this$static, affiliation)); - result = $getLocalElement(this$static, eClass, namespace0, name_0); - if (result) { - return result; - } - } - namespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - if ($equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace)) { - return $getMixedFeature(this$static, eClass); - } - else { - allElements = $getAllElements(this$static, eClass); - for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { - result = castTo(allElements.get_0(i), 170); - if ($matches($getWildcards($getExtendedMetaData_1(this$static, result)), namespace)) { - return result; - } - } - } - } - return null; - } - - default:{ - return null; - } - - } -} - -function $getAllAttributes(this$static, eClass){ - var allAttributes, attributes, changeable, eGenericType, eSuperType, i, result, result0, size_0, superTypes; - superTypes = $getESuperTypes(eClass); - result0 = null; - changeable = false; - for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { - eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); - allAttributes = $getAllAttributes(this$static, eSuperType); - if (!allAttributes.isEmpty()) { - if (!result0) { - result0 = allAttributes; - } - else { - if (!changeable) { - changeable = true; - result0 = new UniqueEList_0(result0); - } - result0.addAll(allAttributes); - } - } - } - attributes = $getAttributes(this$static, eClass); - if (attributes.isEmpty()) { - return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; - } - else { - if (!result0) { - return attributes; - } - else { - changeable || (result0 = new UniqueEList_0(result0)); - result0.addAll(attributes); - return result0; - } - } -} - -function $getAllElements(this$static, eClass){ - var allElements, changeable, eGenericType, eSuperType, elements, i, result, result0, size_0, superTypes; - superTypes = $getESuperTypes(eClass); - result0 = null; - changeable = false; - for (i = 0 , size_0 = $getEGenericSuperTypes(superTypes.this$01).size_0; i < size_0; ++i) { - eSuperType = castTo($resolve_1(superTypes, i, (eGenericType = castTo($get_20($getEGenericSuperTypes(superTypes.this$01), i), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); - allElements = $getAllElements(this$static, eSuperType); - if (!allElements.isEmpty()) { - if (!result0) { - result0 = allElements; - } - else { - if (!changeable) { - changeable = true; - result0 = new UniqueEList_0(result0); - } - result0.addAll(allElements); - } - } - } - elements = $getElements(this$static, eClass); - if (elements.isEmpty()) { - return !result0?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result0; - } - else { - if (!result0) { - return elements; - } - else { - changeable || (result0 = new UniqueEList_0(result0)); - result0.addAll(elements); - return result0; - } - } -} - -function $getAnnotation(this$static, eModelElement){ - var result; - result = eModelElement.getEAnnotation(this$static.annotationURI); - return result; -} - -function $getAttribute(this$static, namespace, name_0){ - var documentRoot, ePackage, ePackage0; - ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); - if (ePackage0) { - documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); - if (documentRoot) { - return $getLocalAttribute(this$static, documentRoot, namespace, name_0); - } - } - return null; -} - -function $getAttribute_0(this$static, eClass, namespace, name_0){ - var result; - result = $getLocalAttribute(this$static, eClass, namespace, name_0); - if (!result) { - result = $getAttribute(this$static, namespace, name_0); - if (!!result && !$getAffiliation(this$static, eClass, result)) { - return null; - } - } - return result; -} - -function $getAttributes(this$static, eClass){ - var eStructuralFeature, eStructuralFeatures, i, result, size_0; - eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); - result = null; - for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { - eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 2: - case 3: - { - !result && (result = new ArrayList); - result.array[result.array.length] = eStructuralFeature; - } - - } - } - return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; -} - -function $getElement(this$static, namespace, name_0){ - var documentRoot, ePackage, ePackage0; - ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); - if (ePackage0) { - documentRoot = castTo($getType_1($getExtendedMetaData_0(this$static, ePackage0), ''), 26); - if (documentRoot) { - return $getLocalElement(this$static, documentRoot, namespace, name_0); - } - } - return null; -} - -function $getElement_0(this$static, eClass, namespace, name_0){ - var result; - result = $getLocalElement(this$static, eClass, namespace, name_0); - if (!result) { - result = $getElement(this$static, namespace, name_0); - if (!!result && !$getAffiliation(this$static, eClass, result)) { - return null; - } - } - return result; -} - -function $getElements(this$static, eClass){ - var eStructuralFeature, eStructuralFeatures, i, result, size_0; - eStructuralFeatures = (!eClass.eStructuralFeatures && (eClass.eStructuralFeatures = new EObjectContainmentWithInverseEList(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, eClass, 21, 17)) , eClass.eStructuralFeatures); - result = null; - for (i = 0 , size_0 = eStructuralFeatures.size_0; i < size_0; ++i) { - eStructuralFeature = castTo($get_20(eStructuralFeatures, i), 170); - switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { - case 4: - case 5: - case 6: - { - !result && (result = new ArrayList); - result.array[result.array.length] = eStructuralFeature; - break; - } - - } - } - return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; -} - -function $getExtendedMetaData(this$static, eClassifier){ - var holder, result; - holder = castTo(eClassifier, 676); - result = holder.getExtendedMetaData_1(); - !result && holder.setExtendedMetaData_1(result = instanceOf(eClassifier, 88)?new BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$static, castTo(eClassifier, 26)):new BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$static, castTo(eClassifier, 148))); - return result; -} - -function $getExtendedMetaData_0(this$static, ePackage){ - var holder, result; - holder = castTo(ePackage, 675); - result = holder.getExtendedMetaData(); - !result && holder.setExtendedMetaData(result = new BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$static, ePackage)); - return result; -} - -function $getExtendedMetaData_1(this$static, eStructuralFeature){ - var holder, result; - holder = castTo(eStructuralFeature, 677); - result = holder.getExtendedMetaData_0(); - !result && holder.setExtendedMetaData_0(result = new BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$static, eStructuralFeature)); - return result; -} - -function $getLocalAttribute(this$static, eClass, namespace, name_0){ - var allAttributes, eStructuralFeature, featureNamespace, i, result, size_0; - result = null; - allAttributes = $getAllAttributes(this$static, eClass); - for (i = 0 , size_0 = allAttributes.size_1(); i < size_0; ++i) { - eStructuralFeature = castTo(allAttributes.get_0(i), 170); - if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { - featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - if (namespace == null) { - if (featureNamespace == null) { - return eStructuralFeature; - } - else - !result && (result = eStructuralFeature); - } - else if ($equals_5(namespace, featureNamespace)) { - return eStructuralFeature; - } - else - featureNamespace == null && !result && (result = eStructuralFeature); - } - } - return null; -} - -function $getLocalElement(this$static, eClass, namespace, name_0){ - var allElements, eStructuralFeature, featureNamespace, i, result, size_0; - result = null; - allElements = $getAllElements(this$static, eClass); - for (i = 0 , size_0 = allElements.size_1(); i < size_0; ++i) { - eStructuralFeature = castTo(allElements.get_0(i), 170); - if ($equals_5(name_0, $getName_0($getExtendedMetaData_1(this$static, eStructuralFeature)))) { - featureNamespace = $getNamespace_0($getExtendedMetaData_1(this$static, eStructuralFeature)); - if (namespace == null) { - if (featureNamespace == null) { - return eStructuralFeature; - } - else - !result && (result = eStructuralFeature); - } - else if ($equals_5(namespace, featureNamespace)) { - return eStructuralFeature; - } - else - featureNamespace == null && !result && (result = eStructuralFeature); - } - } - return null; -} - -function $getMixedFeature(this$static, eClass){ - var eAllAttributes, eAttribute, i, size_0; - switch ($getExtendedMetaData(this$static, eClass).getContentKind()) { - case 3: - case 2: - { - eAllAttributes = $getEAllAttributes(eClass); - for (i = 0 , size_0 = eAllAttributes.size_0; i < size_0; ++i) { - eAttribute = castTo($get_20(eAllAttributes, i), 34); - if ($getFeatureKind($getExtendedMetaData_1(this$static, eAttribute)) == 5) { - return eAttribute; - } - } - break; - } - - } - return null; -} - -function $getNamespace(this$static, ePackage){ - return $isQualified($getExtendedMetaData_0(this$static, ePackage))?ePackage.getNsURI():null; -} - -function $getType(this$static, namespace, name_0){ - var ePackage, ePackage0; - ePackage0 = (ePackage = $getEPackage_0(this$static.registry, namespace) , ePackage); - return !ePackage0?null:$getType_1($getExtendedMetaData_0(this$static, ePackage0), name_0); -} - -function $getType_0(this$static, ePackage, name_0){ - return $getType_1($getExtendedMetaData_0(this$static, ePackage), name_0); -} - -function $matches(wildcards, namespace){ - var i, size_0, suffixlength, wildcard; - if (!wildcards.isEmpty()) { - for (i = 0 , size_0 = wildcards.size_1(); i < size_0; ++i) { - wildcard = castToString(wildcards.get_0(i)); - if (wildcard == null?namespace == null:$equals_5(wildcard.substr(0, 3), '!##')?namespace != null && (suffixlength = namespace.length , !$equals_5(wildcard.substr(wildcard.length - suffixlength, suffixlength), namespace) || wildcard.length != namespace.length + 3) && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace):$equals_5(wildcard, '##any') && !$equals_5('http://www.eclipse.org/emf/2003/XMLType', namespace) || $equals_5(wildcard, namespace)) { - return true; - } - } - } - return false; -} - -function BasicExtendedMetaData(){ - $clinit_BasicExtendedMetaData(); - BasicExtendedMetaData_0.call(this, ($clinit_EPackage$Registry() , INSTANCE_6)); -} - -function BasicExtendedMetaData_0(registry){ - this.annotationURI = (checkCriticalNotNull('http:///org/eclipse/emf/ecore/util/ExtendedMetaData') , 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData'); - this.registry = registry; - new EPackageRegistryImpl; -} - -defineClass(624, 1, {}, BasicExtendedMetaData); -var UNINITIALIZED_EDATA_TYPE, UNINITIALIZED_ESTRUCTURAL_FEATURE; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData', 624); -function $setContentKind(this$static, kind){ - this$static.contentKind = kind; -} - -function $setName_2(this$static, name_0){ - this$static.name_0 = name_0; -} - -function BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$0, eClass){ - this.this$01 = this$0; - this.eClass = eClass; -} - -defineClass(1160, 1, {}, BasicExtendedMetaData$EClassExtendedMetaDataImpl); -_.getBaseType = function getBaseType(){ - return null; -} -; -_.getContentKind = function getContentKind(){ - this.contentKind == -2 && $setContentKind(this, $basicGetContentKind(this.this$01, this.eClass)); - return this.contentKind; -} -; -_.getItemType = function getItemType(){ - return null; -} -; -_.getMemberTypes = function getMemberTypes(){ - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} -; -_.getName = function getName_7(){ - this.name_0 == 'uninitialized' && $setName_2(this, $basicGetName(this.this$01, this.eClass)); - return this.name_0; -} -; -_.getWhiteSpaceFacet = function getWhiteSpaceFacet(){ - return 0; -} -; -_.contentKind = -2; -_.name_0 = 'uninitialized'; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EClassExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EClassExtendedMetaDataImpl', 1160); -function $setBaseType(this$static, baseType){ - this$static.baseType = baseType; -} - -function $setItemType(this$static, itemType){ - this$static.itemType = itemType; -} - -function $setMemberTypes(this$static, memberTypes){ - this$static.memberTypes = memberTypes; -} - -function $setName_3(this$static, name_0){ - this$static.name_0 = name_0; -} - -function $setWhiteSpaceFacet(this$static, whiteSpace){ - this$static.whiteSpace = whiteSpace; -} - -function BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$0, eDataType){ - this.this$01 = this$0; - this.baseType = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE); - this.itemType = UNINITIALIZED_EDATA_TYPE; - this.eDataType = eDataType; -} - -defineClass(1161, 1, {}, BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl); -_.getBaseType = function getBaseType_0(){ - this.baseType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setBaseType(this, $basicGetBaseType(this.this$01, this.eDataType)); - return this.baseType; -} -; -_.getContentKind = function getContentKind_0(){ - return 0; -} -; -_.getItemType = function getItemType_0(){ - this.itemType == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_EDATA_TYPE) && $setItemType(this, $basicGetItemType(this.this$01, this.eDataType)); - return this.itemType; -} -; -_.getMemberTypes = function getMemberTypes_0(){ - !this.memberTypes && $setMemberTypes(this, $basicGetMemberTypes(this.this$01, this.eDataType)); - return this.memberTypes; -} -; -_.getName = function getName_8(){ - this.name_0 == 'uninitialized' && $setName_3(this, $basicGetName(this.this$01, this.eDataType)); - return this.name_0; -} -; -_.getWhiteSpaceFacet = function getWhiteSpaceFacet_0(){ - this.whiteSpace == -2 && $setWhiteSpaceFacet(this, $basicGetWhiteSpaceFacet(this.this$01, this.eDataType)); - return this.whiteSpace; -} -; -_.name_0 = 'uninitialized'; -_.whiteSpace = -2; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl', 1161); -function $getType_1(this$static, name_0){ - var conflictingEClassifier, eClassifier, eClassifierName, eClassifiers, i, i0, nameToClassifierMap, originalMapSize, result, size_0; - result = null; - !!this$static.nameToClassifierMap && (result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138)); - if (!result) { - eClassifiers = this$static.ePackage.getEClassifiers(); - size_0 = eClassifiers.size_0; - if (!this$static.nameToClassifierMap || $size_2(this$static.nameToClassifierMap) != size_0) { - nameToClassifierMap = new HashMap; - !!this$static.nameToClassifierMap && $putAll(nameToClassifierMap, this$static.nameToClassifierMap); - originalMapSize = nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0; - for (i0 = originalMapSize; i0 < size_0; ++i0) { - eClassifier = castTo($get_20(eClassifiers, i0), 138); - eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); - conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); - !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); - } - if (nameToClassifierMap.hashCodeMap.size_0 + nameToClassifierMap.stringMap.size_0 != size_0) { - for (i = 0; i < originalMapSize; ++i) { - eClassifier = castTo($get_20(eClassifiers, i), 138); - eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); - conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); - !!conflictingEClassifier && conflictingEClassifier != eClassifier && (eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, conflictingEClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, conflictingEClassifier)); - } - } - this$static.nameToClassifierMap = nameToClassifierMap; - } - result = castTo($getStringValue(this$static.nameToClassifierMap, name_0), 138); - } - return result; -} - -function $isQualified(this$static){ - var eAnnotation; - this$static.isInitialized || $setQualified(this$static, (eAnnotation = $getAnnotation(this$static.this$01, this$static.ePackage) , !eAnnotation || !$equals_5('false', $get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'qualified')))); - return this$static.isQualified; -} - -function $setQualified(this$static, isQualified){ - this$static.isQualified = isQualified; - this$static.isInitialized = true; -} - -function BasicExtendedMetaData$EPackageExtendedMetaDataImpl(this$0, ePackage){ - this.this$01 = this$0; - this.ePackage = ePackage; -} - -defineClass(1159, 1, {}, BasicExtendedMetaData$EPackageExtendedMetaDataImpl); -_.isInitialized = false; -_.isQualified = false; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EPackageExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EPackageExtendedMetaDataImpl', 1159); -function $getAffiliation_0(this$static){ - this$static.affiliation == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setAffiliation(this$static, $basicGetAffiliation(this$static.this$01, this$static.eStructuralFeature)); - return this$static.affiliation; -} - -function $getFeatureKind(this$static){ - this$static.featureKind == -2 && $setFeatureKind(this$static, $basicGetFeatureKind(this$static.this$01, this$static.eStructuralFeature)); - return this$static.featureKind; -} - -function $getGroup(this$static){ - this$static.group_0 == ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE) && $setGroup(this$static, $basicGetGroup(this$static.this$01, this$static.eStructuralFeature)); - return this$static.group_0; -} - -function $getName_0(this$static){ - this$static.name_0 == 'uninitialized' && $setName_4(this$static, $basicGetName_0(this$static.this$01, this$static.eStructuralFeature)); - return this$static.name_0; -} - -function $getNamespace_0(this$static){ - this$static.namespace == 'uninitialized' && $setNamespace(this$static, $basicGetNamespace(this$static.this$01, this$static.eStructuralFeature)); - return this$static.namespace; -} - -function $getWildcards(this$static){ - !this$static.wildcards && $setWildcards(this$static, $basicGetWildcards(this$static.this$01, this$static.eStructuralFeature)); - return this$static.wildcards; -} - -function $setAffiliation(this$static, affiliation){ - this$static.affiliation = affiliation; -} - -function $setFeatureKind(this$static, kind){ - this$static.featureKind = kind; -} - -function $setGroup(this$static, group){ - this$static.group_0 = group; -} - -function $setName_4(this$static, name_0){ - this$static.name_0 = name_0; -} - -function $setNamespace(this$static, namespace){ - this$static.namespace = namespace; -} - -function $setWildcards(this$static, wildcards){ - this$static.wildcards = wildcards; -} - -function BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl(this$0, eStructuralFeature){ - this.this$01 = this$0; - this.group_0 = ($clinit_BasicExtendedMetaData() , UNINITIALIZED_ESTRUCTURAL_FEATURE); - this.affiliation = UNINITIALIZED_ESTRUCTURAL_FEATURE; - this.eStructuralFeature = eStructuralFeature; -} - -defineClass(1162, 1, {}, BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl); -_.featureKind = -2; -_.name_0 = 'uninitialized'; -_.namespace = 'uninitialized'; -var Lorg_eclipse_emf_ecore_util_BasicExtendedMetaData$EStructuralFeatureExtendedMetaDataImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl', 1162); -function EDataTypeEList(dataClass, owner, featureID){ - EcoreEList.call(this, dataClass, owner); - this.featureID = featureID; -} - -defineClass(585, 622, $intern_154, EDataTypeEList); -_.getFeatureID_0 = function getFeatureID_13(){ - return this.featureID; -} -; -_.isEObject = function isEObject_4(){ - return false; -} -; -_.resolve = function resolve_8(index_0, object){ - return object; -} -; -_.featureID = 0; -var Lorg_eclipse_emf_ecore_util_EDataTypeEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList', 585); -var Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMap'); -function $add_31(this$static, index_0, object){ - var entries, entry, entryFeature, i, otherEntry, validator; - entry = object; - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this$static.owner, entryFeature)) { - if (entryFeature.isUnique()) { - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), entryFeature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - } - $add_20(this$static, index_0, object); -} - -function $add_32(this$static, feature, index_0, object){ - var entries, entry, i, isFeatureMap, validator; - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - } - $add_20(this$static, $entryIndex(this$static, feature, index_0), isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); -} - -function $add_33(this$static, feature, object){ - var entries, entry, i, isFeatureMap, validator; - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - return false; - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (isFeatureMap?equals_Ljava_lang_Object__Z__devirtual$(entry, object):object == null?entry.getValue() == null:equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - return false; - } - else { - castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); - return true; - } - } - } - } - return $add_21(this$static, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)); -} - -function $add_34(this$static, object){ - var entries, entry, entryFeature, i, otherEntry, validator; - entry = object; - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this$static.owner, entryFeature)) { - if (entryFeature.isUnique() && $contains_12(this$static, entryFeature, entry.getValue())) { - return false; - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), entryFeature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry)) { - return false; - } - else { - castTo($set_11(this$static, i, object), 72); - return true; - } - } - } - } - return $add_21(this$static, object); -} - -function $addAll_12(this$static, feature, index_0, collection){ - var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; - if (collection.size_1() == 0) { - return false; - } - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique()) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - entry = createEntry_5(feature, object); - entryCollection.add_2(entry); - } - } - } - else if (!isFeatureMap) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - entry = createEntry_5(feature, object); - entryCollection.add_2(entry); - } - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - if (collection.size_1() > 1) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - if (!isFeatureMap) { - entry = createEntry_5(feature, collection.iterator_0().next_1()); - entryCollection.add_2(entry); - } - } - return $addAll_8(this$static, $entryIndex(this$static, feature, index_0), entryCollection); -} - -function $addAll_13(this$static, feature, collection){ - var entries, entry, entryCollection, i, isFeatureMap, object, object$iterator, validator; - if (collection.size_1() == 0) { - return false; - } - isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); - entryCollection = isFeatureMap?collection:new BasicEList_0(collection.size_1()); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique()) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - if (!$contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { - entry = createEntry_5(feature, object); - entryCollection.contains(entry) || entryCollection.add_2(entry); - } - } - } - else if (!isFeatureMap) { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - entry = createEntry_5(feature, object); - entryCollection.add_2(entry); - } - } - } - else { - if (collection.size_1() > 1) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (collection.contains(isFeatureMap?entry:entry.getValue())) { - return false; - } - else { - for (object$iterator = collection.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - castTo($set_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); - } - return true; - } - } - } - if (!isFeatureMap) { - entry = createEntry_5(feature, collection.iterator_0().next_1()); - entryCollection.add_2(entry); - } - } - return $addAll_9(this$static, entryCollection); -} - -function $addUnique_11(this$static, feature, index_0, object){ - var prototype_0; - this$static.modCount = -1; - $addUnique_5(this$static, $entryIndex(this$static, feature, index_0), ($clinit_FeatureMapUtil() , prototype_0 = castTo(feature, 66).getFeatureMapEntryPrototype() , prototype_0.createEntry(object))); -} - -function $addUnique_12(this$static, entry){ - var index_0, notification, notifications, oldIsSet; - this$static.modCount = -1; - if ($eNotificationRequired(this$static.owner)) { - index_0 = this$static.size_0; - oldIsSet = this$static.size_0 != 0; - $addUnique_0(this$static, entry); - notification = new ENotificationImpl_3(this$static.owner, 3, this$static.featureID, null, entry, index_0, oldIsSet); - notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); - notifications = $shadowAdd_1(this$static, entry, notifications); - if (!notifications) { - $eNotify(this$static.owner, notification); - } - else { - notifications.add_5(notification); - notifications.dispatch_0(); - } - } - else { - $addUnique_0(this$static, entry); - notifications = entry.inverseAdd_0(this$static.owner, this$static.featureID, null); - !!notifications && notifications.dispatch_0(); - } -} - -function $addUnique_13(this$static, object){ - ++this$static.modCount; - $validate_3(this$static, this$static.size_0, object); - $addUnique_12(this$static, castTo(object, 332)); -} - -function $basicAdd_2(this$static, feature, object, notifications){ - var entries, entry, entry0, i, notification, oldIsSet; - if (object == null) { - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry0 = entries[i]; - if (entry0.getEStructuralFeature() == feature) { - return $basicRemove_0(this$static, entry0, notifications); - } - } - } - entry = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object)); - if ($eNotificationRequired(this$static.owner)) { - oldIsSet = !$isEmpty_1(this$static, feature); - notifications = $basicAdd_0(this$static, entry, notifications); - notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, object, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), oldIsSet):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), object, -1, oldIsSet); - notifications?notifications.add_5(notification):(notifications = notification); - } - else { - notifications = $basicAdd_0(this$static, entry, notifications); - } - return notifications; -} - -function $basicIterator(this$static, feature){ - return new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $basicListIterator_0(this$static, feature){ - return new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $basicListIterator_1(this$static, feature, index_0){ - var i, result; - result = new BasicFeatureMap$FeatureEIterator(feature, this$static); - for (i = 0; i < index_0; ++i) { - $next_16(result); - } - return result; -} - -function $basicRemove_2(this$static, object, notifications){ - var entries, entry, feature, i, match_0, notification; - if (instanceOf(object, 72)) { - return $basicRemove_0(this$static, object, notifications); - } - else { - match_0 = null; - feature = null; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - feature = entry.getEStructuralFeature(); - if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { - match_0 = entry; - break; - } - } - } - if (match_0) { - if ($eNotificationRequired(this$static.owner)) { - notification = feature.isMany()?$createNotification_0(this$static, 4, feature, object, null, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - } - notifications = $basicRemove_2(this$static, match_0, notifications); - } - return notifications; - } -} - -function $basicRemove_3(this$static, feature, object, notifications){ - var count, entries, entry, i, match_0, notification, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - count = 0; - entries = castTo(this$static.data_0, 119); - match_0 = null; - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - match_0 = entry; - break; - } - ++count; - } - } - } - else if (object != null) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - match_0 = entry; - break; - } - ++count; - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (entry.getValue() == null) { - match_0 = entry; - break; - } - ++count; - } - } - } - if (match_0) { - if ($eNotificationRequired(this$static.owner)) { - notification = feature.isMany()?new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 4, feature, object, null, count, true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, object, feature.getDefaultValue(), -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - } - notifications = $basicRemove_2(this$static, match_0, notifications); - } - return notifications; -} - -function $clear_15(this$static, feature){ - var entries, entry, entryCollection, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entryCollection = new BasicEList; - entries = castTo(this$static.data_0, 119); - for (i = this$static.size_0; --i >= 0;) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && $add_21(entryCollection, entry); - } - !$removeAll_4(this$static, entryCollection) && $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, feature.isMany()?$createNotification_0(this$static, 6, feature, ($clinit_Collections() , EMPTY_LIST), null, -1, false):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, null, null, -1, false)); -} - -function $contains_12(this$static, feature, object){ - return $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $contains_13(this$static, feature, object, resolve){ - var entries, entry, i, i0, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - return true; - } - } - } - else if (object != null) { - for (i0 = 0; i0 < this$static.size_0; ++i0) { - entry = entries[i0]; - if (validator.isValid(entry.getEStructuralFeature()) && equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - return true; - } - } - if (resolve) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature()) && maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { - return true; - } - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature()) && entry.getValue() == null) { - return false; - } - } - } - return false; -} - -function $containsAll_1(this$static, feature, collection){ - var i; - for (i = collection.iterator_0(); i.hasNext_0();) { - if (!$contains_12(this$static, feature, i.next_1())) { - return false; - } - } - return true; -} - -function $createNotification_0(this$static, eventType, feature, oldObject, newObject, index_0, wasSet){ - return new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, eventType, feature, oldObject, newObject, index_0, wasSet); -} - -function $entryIndex(this$static, feature, index_0){ - var count, entries, entry, i, result, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - count = 0; - result = this$static.size_0; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (index_0 == count) { - return i; - } - ++count; - result = i + 1; - } - } - if (index_0 == count) { - return result; - } - else { - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); - } -} - -function $get_23(this$static, feature, index_0, resolve){ - var count, entries, entry, i, validator, value_0; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - if (isMany_1(this$static.owner, feature)) { - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (count == index_0) { - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - return entry; - } - else { - value_0 = entry.getValue(); - value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); - return value_0; - } - } - ++count; - } - } - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); - } - else { - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - return entry; - } - else { - value_0 = entry.getValue(); - value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); - return value_0; - } - } - ++count; - } - return feature.getDefaultValue(); - } -} - -function $get_24(this$static, feature, resolve){ - var count, entries, entry, entryFeature, i, result, validator, value_0; - entries = castTo(this$static.data_0, 119); - if (isMany_1(this$static.owner, feature)) { - return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - if (validator.isValid(entryFeature)) { - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - return entry; - } - else if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { - result = new StringBuilder_1(toString_40(entry.getValue())); - while (++i < this$static.size_0) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - (entryFeature == TEXT || entryFeature == CDATA) && $append_11(result, toString_40(entry.getValue())); - } - return createFromString_2(castTo(feature.getEType(), 148), result.string); - } - else { - value_0 = entry.getValue(); - value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0 && (value_0 = $resolveProxy_1(this$static, feature, i, count, value_0)); - return value_0; - } - } - ++count; - } - return feature.getDefaultValue(); - } -} - -function $indexOf_7(this$static, feature, object){ - return $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $indexOf_8(this$static, feature, object, resolve){ - var entries, entry, i, i0, result, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - result = 0; - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - return result; - } - ++result; - } - } - } - else if (object != null) { - for (i0 = 0; i0 < this$static.size_0; ++i0) { - entry = entries[i0]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - return result; - } - ++result; - } - } - if (resolve) { - result = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (maskUndefined(object) === maskUndefined($resolveProxy_0(this$static, castTo(entry.getValue(), 56)))) { - return result; - } - ++result; - } - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (entry.getValue() == null) { - return result; - } - ++result; - } - } - } - return -1; -} - -function $inverseAdd_2(this$static, entry, notifications){ - return entry.inverseAdd_0(this$static.owner, this$static.featureID, notifications); -} - -function $inverseAdd_3(this$static, object, notifications){ - return $inverseAdd_2(this$static, castTo(object, 332), notifications); -} - -function $inverseRemove_2(this$static, entry, notifications){ - return entry.inverseRemove_0(this$static.owner, this$static.featureID, notifications); -} - -function $inverseRemove_3(this$static, object, notifications){ - return $inverseRemove_2(this$static, castTo(object, 332), notifications); -} - -function $isEmpty_1(this$static, feature){ - var entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - return false; - } - } - return true; -} - -function $iterator_2(this$static, feature){ - return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $list(this$static, feature){ - return $clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static); -} - -function $listIterator_3(this$static, feature){ - return instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); -} - -function $listIterator_4(this$static, feature, index_0){ - var i, result; - result = instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); - for (i = 0; i < index_0; ++i) { - $next_16(result); - } - return result; -} - -function $move_5(this$static, targetIndex, sourceIndex){ - var count, entries, entry, feature, featureSourceIndex, featureTargetIndex, i, isValid, maxIndex, result, sourceEntry, validator; - if ($eNotificationRequired(this$static.owner)) { - if (targetIndex != sourceIndex) { - entries = castTo(this$static.data_0, 119); - sourceEntry = entries[sourceIndex]; - feature = sourceEntry.getEStructuralFeature(); - if (isMany_1(this$static.owner, feature)) { - validator = getValidator(this$static.owner.eClass_0(), feature); - featureTargetIndex = -1; - featureSourceIndex = -1; - count = 0; - for (i = 0 , maxIndex = targetIndex > sourceIndex?targetIndex:sourceIndex; i <= maxIndex; ++i) { - if (i == sourceIndex) { - featureSourceIndex = count++; - } - else { - entry = entries[i]; - isValid = validator.isValid(entry.getEStructuralFeature()); - i == targetIndex && (featureTargetIndex = i == maxIndex && !isValid?count - 1:count); - isValid && ++count; - } - } - result = castTo($move_1(this$static, targetIndex, sourceIndex), 72); - featureSourceIndex != featureTargetIndex && $dispatchNotification(this$static, new ENotificationImpl_18(this$static.owner, 7, feature, valueOf_4(featureSourceIndex), sourceEntry.getValue(), featureTargetIndex)); - return result; - } - } - } - else { - return castTo($move(this$static, targetIndex, sourceIndex), 72); - } - return castTo($move_1(this$static, targetIndex, sourceIndex), 72); -} - -function $move_6(this$static, feature, targetIndex, sourceIndex){ - var count, entries, entry, entrySourceIndex, entryTargetIndex, i, result, validator; - if (isMany_1(this$static.owner, feature)) { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - result = null; - entryTargetIndex = -1; - entrySourceIndex = -1; - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - count == targetIndex && (entryTargetIndex = i); - if (count == sourceIndex) { - entrySourceIndex = i; - result = entry.getValue(); - } - ++count; - } - } - if (entryTargetIndex == -1) { - throw toJs(new IndexOutOfBoundsException_0('targetIndex=' + targetIndex + ', size=' + count)); - } - if (entrySourceIndex == -1) { - throw toJs(new IndexOutOfBoundsException_0('sourceIndex=' + sourceIndex + ', size=' + count)); - } - $move_1(this$static, entryTargetIndex, entrySourceIndex); - $eNotificationRequired(this$static.owner) && $dispatchNotification(this$static, $createNotification_0(this$static, 7, feature, valueOf_4(sourceIndex), result, targetIndex, true)); - return result; - } - else { - throw toJs(new IllegalArgumentException_0('The feature must be many-valued to support move')); - } -} - -function $move_7(this$static, feature, index_0, object){ - $move_6(this$static, feature, index_0, $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)); -} - -function $remove_43(this$static, feature, index_0){ - var count, entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (count == index_0) { - $remove_35(this$static, i); - return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); - } - ++count; - } - } - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); -} - -function $remove_44(this$static, feature, object){ - var entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(entry, object)) { - $remove_35(this$static, i); - return true; - } - } - } - } - else if (object != null) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (equals_Ljava_lang_Object__Z__devirtual$(object, entry.getValue())) { - $remove_35(this$static, i); - return true; - } - } - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (entry.getValue() == null) { - $remove_35(this$static, i); - return true; - } - } - } - } - return false; -} - -function $resolve_2(this$static, index_0, entry){ - var affiliatedFeature, affliatedEntry, entries, feature, featureIndex, i, inverseFeatureID, newEntry, notifications, object, opposite, reference, resolved, validator; - feature = entry.getEStructuralFeature(); - if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0) { - object = castTo(entry.getValue(), 49); - resolved = $eResolveProxy(this$static.owner, object); - if (resolved != object) { - newEntry = createEntry_5(feature, resolved); - $assign(this$static, index_0, $validate_3(this$static, index_0, newEntry)); - notifications = null; - if ($eNotificationRequired(this$static.owner)) { - affiliatedFeature = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.owner.eClass_0(), feature); - if (affiliatedFeature != $getEStructuralFeature(this$static.owner.eClass_0(), this$static.featureID)) { - validator = getValidator(this$static.owner.eClass_0(), feature); - featureIndex = 0; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < index_0; ++i) { - affliatedEntry = entries[i]; - validator.isValid(affliatedEntry.getEStructuralFeature()) && ++featureIndex; - } - notifications = new FeatureMapUtil$FeatureENotificationImpl(this$static.owner, 9, affiliatedFeature, object, resolved, featureIndex, false); - notifications.add_5(new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, entry, newEntry, index_0, false)); - } - } - reference = castTo(feature, 18); - opposite = $getEOpposite(reference); - if (opposite) { - notifications = object.eInverseRemove(this$static.owner, $getFeatureID(object.eClass_0(), opposite), null, notifications); - notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, $getFeatureID(resolved.eClass_0(), opposite), null, notifications); - } - else if ((reference.eFlags & $intern_134) != 0) { - inverseFeatureID = -1 - $getFeatureID(this$static.owner.eClass_0(), reference); - notifications = object.eInverseRemove(this$static.owner, inverseFeatureID, null, null); - !castTo(resolved, 49).eInternalContainer() && (notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, inverseFeatureID, null, notifications)); - } - !!notifications && notifications.dispatch_0(); - return newEntry; - } - } - return entry; -} - -function $resolveProxy_0(this$static, eObject){ - return $eResolveProxy(this$static.owner, castTo(eObject, 49)); -} - -function $resolveProxy_1(this$static, feature, entryIndex, index_0, object){ - var entry, notifications, oldObject, resolved; - resolved = $resolveProxy_0(this$static, castTo(object, 56)); - if (maskUndefined(resolved) !== maskUndefined(object)) { - oldObject = castTo(this$static.data_0[entryIndex], 72); - entry = createEntry_5(feature, resolved); - $assign(this$static, entryIndex, $validate_3(this$static, entryIndex, entry)); - if ($eNotificationRequired(this$static.owner)) { - notifications = $createNotification_0(this$static, 9, entry.getEStructuralFeature(), object, resolved, index_0, false); - $add_22(notifications, new ENotificationImpl_3(this$static.owner, 9, this$static.featureID, oldObject, entry, index_0, false)); - $dispatch(notifications); - } - return resolved; - } - return object; -} - -function $set_16(this$static, index_0, object){ - var entries, entry, entryFeature, i, otherEntry, validator; - entry = object; - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this$static.owner, entryFeature)) { - if (entryFeature.isUnique()) { - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (equals_Ljava_lang_Object__Z__devirtual$(otherEntry, entry) && i != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - } - } - else { - validator = getValidator(this$static.owner.eClass_0(), entryFeature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - otherEntry = entries[i]; - if (validator.isValid(otherEntry.getEStructuralFeature()) && i != index_0) { - throw toJs(new IllegalArgumentException_0('The multiplicity constraint is violated')); - } - } - } - return castTo($set_11(this$static, index_0, object), 72); -} - -function $set_17(this$static, newValue){ - $set_15(this$static, instanceOf(newValue, 153)?newValue:castTo(newValue, 1937).featureMap_0()); -} - -function $set_18(this$static, feature, index_0, object){ - var count, currentIndex, entries, entry, i, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - if (isMany_1(this$static.owner, feature)) { - if (feature.isUnique()) { - currentIndex = $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); - if (currentIndex >= 0 && currentIndex != index_0) { - throw toJs(new IllegalArgumentException_0("The 'no duplicates' constraint is violated")); - } - } - count = 0; - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - if (count == index_0) { - return castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); - } - ++count; - } - } - throw toJs(new IndexOutOfBoundsException_0('index=' + index_0 + ', size=' + count)); - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - return $clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?entry:entry.getValue(); - } - } - return null; - } -} - -function $set_19(this$static, feature, object){ - var entries, entry, entryFeature, i, index_0, list, shouldUnset, validator; - if (isMany_1(this$static.owner, feature)) { - list = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)); - $clear_15(list.featureMap, list.feature); - $addAll_14(list, castTo(object, 14)); - } - else { - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - if (validator.isValid(entryFeature)) { - if (entryFeature == ($clinit_XMLTypeFeatures() , TEXT) || entryFeature == CDATA) { - shouldUnset = $shouldUnset(this$static, feature, object); - index_0 = i; - shouldUnset?$remove_35(this$static, i):++i; - while (i < this$static.size_0) { - entry = entries[i]; - entryFeature = entry.getEStructuralFeature(); - entryFeature == TEXT || entryFeature == CDATA?$remove_35(this$static, i):++i; - } - shouldUnset || castTo($set_11(this$static, index_0, createEntry_5(feature, object)), 72); - } - else - $shouldUnset(this$static, feature, object)?$remove_35(this$static, i):castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); - return; - } - } - $shouldUnset(this$static, feature, object) || $add_21(this$static, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))); - } -} - -function $setting(this$static, feature){ - return isMany_1(this$static.owner, feature)?($clinit_FeatureMapUtil() , $isFeatureMap(feature)?new FeatureMapUtil$FeatureFeatureMap(feature, this$static):new FeatureMapUtil$FeatureEList(feature, this$static)):new FeatureMapUtil$FeatureValue(feature, this$static); -} - -function $shadowAdd_1(this$static, entry, notifications){ - var feature, notification, value_0; - feature = entry.getEStructuralFeature(); - value_0 = entry.getValue(); - notification = feature.isMany()?$createNotification_0(this$static, 3, feature, null, value_0, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, 1, feature, feature.getDefaultValue(), value_0, -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - return notifications; -} - -function $shadowAdd_2(this$static, object, notifications){ - return $shadowAdd_1(this$static, castTo(object, 332), notifications); -} - -function $shadowRemove_1(this$static, entry, notifications){ - var feature, notification, value_0; - feature = entry.getEStructuralFeature(); - value_0 = entry.getValue(); - notification = feature.isMany()?$createNotification_0(this$static, 4, feature, value_0, null, $indexOf_8(this$static, feature, value_0, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0), true):$createNotification_0(this$static, feature.isUnsettable()?2:1, feature, value_0, feature.getDefaultValue(), -1, true); - notifications?notifications.add_5(notification):(notifications = notification); - return notifications; -} - -function $shadowRemove_2(this$static, object, notifications){ - return $shadowRemove_1(this$static, castTo(object, 332), notifications); -} - -function $shadowSet_1(this$static, oldObject, newObject, notifications){ - var feature, newValue, notification, oldValue; - if ($eNotificationRequired(this$static.owner)) { - feature = oldObject.getEStructuralFeature(); - oldValue = oldObject.getValue(); - newValue = newObject.getValue(); - notification = $createNotification_0(this$static, 1, feature, oldValue, newValue, feature.isMany()?$indexOf_8(this$static, feature, newValue, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0):-1, true); - notifications?notifications.add_5(notification):(notifications = notification); - } - return notifications; -} - -function $shouldUnset(this$static, feature, value_0){ - var defaultValue; - if (feature.isUnsettable()) { - return false; - } - else if (feature.getUpperBound() != -2) { - defaultValue = feature.getDefaultValue(); - return defaultValue == null?value_0 == null:equals_Ljava_lang_Object__Z__devirtual$(defaultValue, value_0); - } - else - return feature.getEContainingClass() == this$static.owner.eClass_0() && value_0 == null; -} - -function $size_3(this$static, feature){ - var entries, entry, i, result, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - result = 0; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && ++result; - } - return result; -} - -function $toArray_12(this$static, feature){ - return $toArray_13(this$static, feature, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $toArray_13(this$static, feature, resolve){ - var entries, entry, i, result, validator, value_0; - result = new BasicEList; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - value_0 = entry.getValue(); - $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); - } - } - } - return $toArray_9(result); -} - -function $toArray_14(this$static, feature, array){ - return $toArray_15(this$static, feature, array, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); -} - -function $toArray_15(this$static, feature, array, resolve){ - var entries, entry, i, result, validator, value_0; - result = new BasicEList; - validator = getValidator(this$static.owner.eClass_0(), feature); - entries = castTo(this$static.data_0, 119); - $clinit_FeatureMapUtil(); - if (castTo(feature, 66).isFeatureMap_0()) { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - validator.isValid(entry.getEStructuralFeature()) && $add_21(result, entry); - } - } - else { - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - value_0 = entry.getValue(); - $add_21(result, resolve?$resolveProxy_1(this$static, feature, i, result.size_0, value_0):value_0); - } - } - } - return $toArray_10(result, array); -} - -function $unset(this$static, feature){ - var entries, entry, i, removals, validator; - validator = getValidator(this$static.owner.eClass_0(), feature); - removals = null; - entries = castTo(this$static.data_0, 119); - for (i = 0; i < this$static.size_0; ++i) { - entry = entries[i]; - if (validator.isValid(entry.getEStructuralFeature())) { - !removals && (removals = new BasicEList); - $add_21(removals, entry); - } - } - !!removals && $removeAll_4(this$static, removals); -} - -function $validate_3(this$static, index_0, object){ - var eStructuralFeature, result; - if (this$static.modCount == 0) - return object; - result = castTo($validate_0(this$static, index_0, object), 72); - eStructuralFeature = object.getEStructuralFeature(); - if (!eStructuralFeature.isChangeable() || !this$static.featureMapValidator.isValid(eStructuralFeature)) { - throw toJs(new RuntimeException_0("Invalid entry feature '" + eStructuralFeature.getEContainingClass().name_0 + '.' + eStructuralFeature.getName() + "'")); - } - return result; -} - -function BasicFeatureMap(owner, featureID){ - EDataTypeEList.call(this, Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, owner, featureID); - this.wrapper = this; - this.featureMapValidator = getValidator(owner.eClass_0(), $getEStructuralFeature(this.owner.eClass_0(), this.featureID)); -} - -defineClass(75, 585, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, BasicFeatureMap); -_.add_3 = function add_66(index_0, object){ - $add_31(this, index_0, castTo(object, 72)); -} -; -_.add_2 = function add_67(object){ - return $add_34(this, castTo(object, 72)); -} -; -_.addUnique_0 = function addUnique_19(object){ - $addUnique_13(this, castTo(object, 72)); -} -; -_.inverseAdd = function inverseAdd_9(object, notifications){ - return $inverseAdd_3(this, castTo(object, 72), notifications); -} -; -_.inverseRemove = function inverseRemove_9(object, notifications){ - return $inverseRemove_3(this, castTo(object, 72), notifications); -} -; -_.move = function move_20(targetIndex, sourceIndex){ - return $move_5(this, targetIndex, sourceIndex); -} -; -_.resolve = function resolve_9(index_0, entry){ - return $resolve_2(this, index_0, castTo(entry, 72)); -} -; -_.set_2 = function set_37(index_0, object){ - return $set_16(this, index_0, castTo(object, 72)); -} -; -_.shadowAdd = function shadowAdd_2(object, notifications){ - return $shadowAdd_2(this, castTo(object, 72), notifications); -} -; -_.shadowRemove = function shadowRemove_2(object, notifications){ - return $shadowRemove_2(this, castTo(object, 72), notifications); -} -; -_.shadowSet = function shadowSet_2(oldObject, newObject, notifications){ - return $shadowSet_1(this, castTo(oldObject, 72), castTo(newObject, 72), notifications); -} -; -_.validate = function validate_7(index_0, object){ - return $validate_3(this, index_0, castTo(object, 72)); -} -; -_.add_6 = function add_68(feature, object){ - return $add_33(this, feature, object); -} -; -_.addAll_0 = function addAll_35(index_0, collection){ - var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; - uniqueCollection = new BasicEList_0(collection.size_1()); - for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 72); - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this.owner, entryFeature)) { - (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); - } - else { - validator = getValidator(this.owner.eClass_0(), entryFeature); - entries = castTo(this.data_0, 119); - include = true; - for (j = 0; j < this.size_0; ++j) { - otherEntry = entries[j]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - castTo($set_11(this, j, entry), 72); - include = false; - break; - } - } - include && $add_21(uniqueCollection, entry); - } - } - return $addAll_8(this, index_0, uniqueCollection); -} -; -_.addAll = function addAll_36(collection){ - var entries, entry, entry$iterator, entryFeature, include, j, otherEntry, uniqueCollection, validator; - uniqueCollection = new BasicEList_0(collection.size_1()); - for (entry$iterator = collection.iterator_0(); entry$iterator.hasNext_0();) { - entry = castTo(entry$iterator.next_1(), 72); - entryFeature = entry.getEStructuralFeature(); - if (isMany_1(this.owner, entryFeature)) { - (!entryFeature.isUnique() || !$contains_12(this, entryFeature, entry.getValue()) && !$contains_10(uniqueCollection, entry)) && $add_21(uniqueCollection, entry); - } - else { - validator = getValidator(this.owner.eClass_0(), entryFeature); - entries = castTo(this.data_0, 119); - include = true; - for (j = 0; j < this.size_0; ++j) { - otherEntry = entries[j]; - if (validator.isValid(otherEntry.getEStructuralFeature())) { - castTo($set_11(this, j, entry), 72); - include = false; - break; - } - } - include && $add_21(uniqueCollection, entry); - } - } - return $addAll_9(this, uniqueCollection); -} -; -_.addAllUnique_0 = function addAllUnique_15(collection){ - this.modCount = -1; - return $addAllUnique_3(this, this.size_0, collection); -} -; -_.basicAdd_0 = function basicAdd_4(feature, object, notifications){ - return $basicAdd_2(this, feature, object, notifications); -} -; -_.basicRemove = function basicRemove_4(object, notifications){ - return $basicRemove_2(this, object, notifications); -} -; -_.basicRemove_0 = function basicRemove_5(feature, object, notifications){ - return $basicRemove_3(this, feature, object, notifications); -} -; -_.featureMap_0 = function featureMap_0(){ - return this; -} -; -_.get_7 = function get_67(feature, resolve){ - return $get_24(this, feature, resolve); -} -; -_.getEStructuralFeature_0 = function getEStructuralFeature_2(index_0){ - return castTo($get_20(this, index_0), 72).getEStructuralFeature(); -} -; -_.getValue_1 = function getValue_19(index_0){ - return castTo($get_20(this, index_0), 72).getValue(); -} -; -_.getWrapper = function getWrapper(){ - return this.wrapper; -} -; -_.hasInverse = function hasInverse_11(){ - return true; -} -; -_.hasShadow = function hasShadow_2(){ - return true; -} -; -_.isSet_1 = function isSet_13(feature){ - return !$isEmpty_1(this, feature); -} -; -_.newData = function newData_14(capacity){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry$Internal_2_classLit, $intern_163, 332, capacity, 0, 1); -} -; -_.resolveProxy = function resolveProxy_0(eObject){ - return $resolveProxy_0(this, eObject); -} -; -_.set_1 = function set_38(newValue){ - $set_17(this, newValue); -} -; -_.set_3 = function set_39(feature, object){ - $set_19(this, feature, object); -} -; -_.setting = function setting_0(feature){ - return $setting(this, feature); -} -; -_.unset_0 = function unset_9(feature){ - $unset(this, feature); -} -; -var Lorg_eclipse_emf_ecore_util_BasicFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap', 75); -function $checkModCount(this$static){ - if (this$static.featureMap.modCount != this$static.expectedModCount) { - throw toJs(new ConcurrentModificationException); - } -} - -function $hasNext_8(this$static){ - switch (this$static.prepared) { - case 2: - { - return true; - } - - case 1: - { - return false; - } - - case -1: - { - ++this$static.entryCursor; - } - - default:{ - return this$static.scanNext(); - } - - } -} - -function $hasPrevious(this$static){ - switch (this$static.prepared) { - case -2: - { - return true; - } - - case -1: - { - return false; - } - - case 1: - { - --this$static.entryCursor; - } - - default:{ - return this$static.scanPrevious(); - } - - } -} - -function $next_16(this$static){ - var newPreparedResult; - if ($hasNext_8(this$static)) { - $checkModCount(this$static); - if (this$static.resolve_0()) { - newPreparedResult = $resolveProxy_1(this$static.featureMap, this$static.eStructuralFeature, this$static.entryCursor, this$static.cursor, this$static.preparedResult); - this$static.preparedResult = newPreparedResult; - } - this$static.lastCursor = this$static.cursor; - ++this$static.cursor; - ++this$static.entryCursor; - this$static.prepared = 0; - return this$static.preparedResult; - } - else { - throw toJs(new NoSuchElementException); - } -} - -defineClass(1851, 1, $intern_14); -_.forEachRemaining = function forEachRemaining_59(consumer){ - $forEachRemaining(this, consumer); -} -; -_.add_1 = function add_69(o){ - if (this.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - $checkModCount(this); - try { - $add_32(this.featureMap, this.eStructuralFeature, this.cursor, o); - this.expectedModCount = this.featureMap.modCount; - $next_16(this); - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} -; -_.hasNext_0 = function hasNext_49(){ - return $hasNext_8(this); -} -; -_.hasPrevious = function hasPrevious_10(){ - return $hasPrevious(this); -} -; -_.next_1 = function next_49(){ - return $next_16(this); -} -; -_.nextIndex_0 = function nextIndex_11(){ - return this.cursor; -} -; -_.previous_0 = function previous_11(){ - var newPreparedResult; - if ($hasPrevious(this)) { - $checkModCount(this); - this.lastCursor = --this.cursor; - if (this.resolve_0()) { - newPreparedResult = $resolveProxy_1(this.featureMap, this.eStructuralFeature, this.entryCursor, this.cursor, this.preparedResult); - this.preparedResult = newPreparedResult; - } - this.prepared = 0; - return this.preparedResult; - } - else { - throw toJs(new NoSuchElementException); - } -} -; -_.previousIndex = function previousIndex_10(){ - return this.cursor - 1; -} -; -_.remove = function remove_128(){ - if (this.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - $checkModCount(this); - try { - $remove_43(this.featureMap, this.eStructuralFeature, this.lastCursor); - this.expectedModCount = this.featureMap.modCount; - if (this.lastCursor < this.cursor) { - --this.cursor; - --this.entryCursor; - } - --this.lastCursor; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} -; -_.resolve_0 = function resolve_10(){ - return false; -} -; -_.set_1 = function set_40(o){ - if (this.lastCursor == -1) { - throw toJs(new IllegalStateException); - } - $checkModCount(this); - try { - $set_18(this.featureMap, this.eStructuralFeature, this.lastCursor, o); - this.expectedModCount = this.featureMap.modCount; - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 73)) { - throw toJs(new ConcurrentModificationException); - } - else - throw toJs($e0); - } -} -; -_.cursor = 0; -_.entryCursor = 0; -_.expectedModCount = 0; -_.isFeatureMap = false; -_.lastCursor = 0; -_.prepared = 0; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicFeatureEIterator', 1851); -function BasicFeatureMap$FeatureEIterator(eStructuralFeature, featureMap){ - this.eStructuralFeature = eStructuralFeature; - this.featureMap = featureMap; - this.expectedModCount = featureMap.modCount; - this.isFeatureMap = ($clinit_FeatureMapUtil() , castTo(eStructuralFeature, 66).isFeatureMap_0()); - this.validator = getValidator(featureMap.owner.eClass_0(), eStructuralFeature); -} - -defineClass(410, 1851, $intern_14, BasicFeatureMap$FeatureEIterator); -_.scanNext = function scanNext(){ - var entries, entry, size_0; - size_0 = this.featureMap.size_0; - entries = castTo(this.featureMap.data_0, 119); - while (this.entryCursor < size_0) { - entry = entries[this.entryCursor]; - if (this.validator.isValid(entry.getEStructuralFeature())) { - this.preparedResult = this.isFeatureMap?entry:entry.getValue(); - this.prepared = 2; - return true; - } - ++this.entryCursor; - } - this.prepared = 1; - this.lastCursor = -1; - return false; -} -; -_.scanPrevious = function scanPrevious(){ - var entries, entry; - entries = castTo(this.featureMap.data_0, 119); - while (--this.entryCursor >= 0) { - entry = entries[this.entryCursor]; - if (this.validator.isValid(entry.getEStructuralFeature())) { - this.preparedResult = this.isFeatureMap?entry:entry.getValue(); - this.prepared = -2; - return true; - } - } - this.prepared = -1; - this.lastCursor = -1; - return false; -} -; -var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$FeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/FeatureEIterator', 410); -function BasicFeatureMap$ResolvingFeatureEIterator(eStructuralFeature, featureMap){ - BasicFeatureMap$FeatureEIterator.call(this, eStructuralFeature, featureMap); -} - -defineClass(662, 410, $intern_14, BasicFeatureMap$ResolvingFeatureEIterator); -_.resolve_0 = function resolve_11(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_BasicFeatureMap$ResolvingFeatureEIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'BasicFeatureMap/ResolvingFeatureEIterator', 662); -function EContentsEList$1(){ - EContentsEList.call(this, null, null); -} - -defineClass(955, 486, $intern_157, EContentsEList$1); -_.basicList = function basicList_3(){ - return this; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/1', 955); -function EContentsEList$2($anonymous0, $anonymous1){ - EContentsEList.call(this, $anonymous0, $anonymous1); -} - -defineClass(956, 486, $intern_157, EContentsEList$2); -_.resolve_0 = function resolve_12(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$2_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/2', 956); -function EContentsEList$FeatureIteratorImpl$1(){ - EContentsEList$FeatureIteratorImpl.call(this, null, null); -} - -defineClass(954, 279, $intern_158, EContentsEList$FeatureIteratorImpl$1); -_.filter_0 = function filter_4(featureFilter){ -} -; -_.hasNext_0 = function hasNext_50(){ - return false; -} -; -_.hasPrevious = function hasPrevious_11(){ - return false; -} -; -var Lorg_eclipse_emf_ecore_util_EContentsEList$FeatureIteratorImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EContentsEList/FeatureIteratorImpl/1', 954); -function EDataTypeEList$Unsettable(dataClass, owner, featureID){ - EDataTypeEList.call(this, dataClass, owner, featureID); -} - -defineClass(825, 585, $intern_154, EDataTypeEList$Unsettable); -_.didChange = function didChange_2(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_14(){ - return this.isSet; -} -; -_.unset = function unset_10(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EDataTypeEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeEList/Unsettable', 825); -function EDataTypeUniqueEList(dataClass, owner, featureID){ - EDataTypeEList.call(this, dataClass, owner, featureID); -} - -defineClass(1849, 585, $intern_154, EDataTypeUniqueEList); -_.isUnique = function isUnique_8(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList', 1849); -function EDataTypeUniqueEList$Unsettable(dataClass, owner, featureID){ - EDataTypeEList$Unsettable.call(this, dataClass, owner, featureID); -} - -defineClass(1850, 825, $intern_154, EDataTypeUniqueEList$Unsettable); -_.isUnique = function isUnique_9(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList/Unsettable', 1850); -function EObjectContainmentEList$Resolving(dataClass, owner, featureID){ - EObjectContainmentEList.call(this, dataClass, owner, featureID); -} - -defineClass(139, 85, $intern_154, EObjectContainmentEList$Resolving); -_.hasProxies = function hasProxies_4(){ - return true; -} -; -_.resolve = function resolve_13(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Resolving', 139); -function EObjectContainmentEList$Unsettable$Resolving(dataClass, owner, featureID){ - EObjectContainmentEList$Unsettable.call(this, dataClass, owner, featureID); -} - -defineClass(1163, 545, $intern_154, EObjectContainmentEList$Unsettable$Resolving); -_.hasProxies = function hasProxies_5(){ - return true; -} -; -_.resolve = function resolve_14(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable/Resolving', 1163); -function EObjectContainmentWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(748, 16, $intern_154, EObjectContainmentWithInverseEList$Unsettable); -_.didChange = function didChange_3(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_15(){ - return this.isSet; -} -; -_.unset = function unset_11(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable', 748); -function EObjectContainmentWithInverseEList$Unsettable$Resolving(dataClass, owner, featureID, inverseFeatureID){ - EObjectContainmentWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1173, 748, $intern_154, EObjectContainmentWithInverseEList$Unsettable$Resolving); -_.hasProxies = function hasProxies_6(){ - return true; -} -; -_.resolve = function resolve_15(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable/Resolving', 1173); -function EObjectEList$Unsettable(dataClass, owner, featureID){ - EObjectEList.call(this, dataClass, owner, featureID); -} - -defineClass(743, 496, $intern_154, EObjectEList$Unsettable); -_.didChange = function didChange_4(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_16(){ - return this.isSet; -} -; -_.unset = function unset_12(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectEList/Unsettable', 743); -function EObjectResolvingEList(dataClass, owner, featureID){ - EObjectEList.call(this, dataClass, owner, featureID); -} - -defineClass(328, 496, $intern_154, EObjectResolvingEList); -_.hasProxies = function hasProxies_7(){ - return true; -} -; -_.resolve = function resolve_16(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList', 328); -function EObjectResolvingEList$Unsettable(dataClass, owner, featureID){ - EObjectEList$Unsettable.call(this, dataClass, owner, featureID); -} - -defineClass(1641, 743, $intern_154, EObjectResolvingEList$Unsettable); -_.hasProxies = function hasProxies_8(){ - return true; -} -; -_.resolve = function resolve_17(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList/Unsettable', 1641); -function $clinit_EObjectValidator(){ - $clinit_EObjectValidator = emptyMethod; - INSTANCE_9 = new EObjectValidator; -} - -function EObjectValidator(){ -} - -defineClass(1381, 1, {}, EObjectValidator); -var INSTANCE_9; -var Lorg_eclipse_emf_ecore_util_EObjectValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectValidator', 1381); -function EObjectWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ - EObjectEList.call(this, dataClass, owner, featureID); - this.inverseFeatureID = inverseFeatureID; -} - -defineClass(546, 496, $intern_154, EObjectWithInverseEList); -_.getInverseFeatureClass = function getInverseFeatureClass_1(){ - return this.dataClass; -} -; -_.getInverseFeatureID = function getInverseFeatureID_1(){ - return this.inverseFeatureID; -} -; -_.hasInverse = function hasInverse_12(){ - return true; -} -; -_.hasNavigableInverse = function hasNavigableInverse_5(){ - return true; -} -; -_.inverseFeatureID = 0; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList', 546); -function EObjectWithInverseEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1176, 546, $intern_154, EObjectWithInverseEList$ManyInverse); -_.hasManyInverse = function hasManyInverse_3(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/ManyInverse', 1176); -function EObjectWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(625, 546, $intern_154, EObjectWithInverseEList$Unsettable); -_.didChange = function didChange_5(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_17(){ - return this.isSet; -} -; -_.unset = function unset_13(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable', 625); -function EObjectWithInverseEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1175, 625, $intern_154, EObjectWithInverseEList$Unsettable$ManyInverse); -_.hasManyInverse = function hasManyInverse_4(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseEList/Unsettable/ManyInverse', 1175); -function EObjectWithInverseResolvingEList(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(749, 546, $intern_154, EObjectWithInverseResolvingEList); -_.hasProxies = function hasProxies_9(){ - return true; -} -; -_.resolve = function resolve_18(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList', 749); -function EObjectWithInverseResolvingEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseResolvingEList.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(31, 749, $intern_154, EObjectWithInverseResolvingEList$ManyInverse); -_.hasManyInverse = function hasManyInverse_5(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/ManyInverse', 31); -function EObjectWithInverseResolvingEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(750, 625, $intern_154, EObjectWithInverseResolvingEList$Unsettable); -_.hasProxies = function hasProxies_10(){ - return true; -} -; -_.resolve = function resolve_19(index_0, object){ - return $resolve(this, index_0, castTo(object, 56)); -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable', 750); -function EObjectWithInverseResolvingEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ - EObjectWithInverseResolvingEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); -} - -defineClass(1174, 750, $intern_154, EObjectWithInverseResolvingEList$Unsettable$ManyInverse); -_.hasManyInverse = function hasManyInverse_6(){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable$ManyInverse_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable/ManyInverse', 1174); -function kind_0(eStructuralFeature){ - var eClassifier, eReference, instanceClass, inverseEReference, result, upper; - result = 0; - eClassifier = $getEType(eStructuralFeature); - !!eClassifier.getInstanceClass() && (result |= 4); - (eStructuralFeature.eFlags & $intern_149) != 0 && (result |= 2); - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - inverseEReference = $getEOpposite(eReference); - (eReference.eFlags & $intern_134) != 0 && (result |= 32); - if (inverseEReference) { - $getFeatureCount($getEContainingClass(inverseEReference)); - result |= 8; - upper = inverseEReference.upperBound; - (upper > 1 || upper == -1) && (result |= 16); - (inverseEReference.eFlags & $intern_134) != 0 && (result |= 64); - } - (eReference.eFlags & $intern_63) != 0 && (result |= $intern_150); - result |= $intern_137; - } - else { - if (instanceOf(eClassifier, 457)) { - result |= 512; - } - else { - instanceClass = eClassifier.getInstanceClass(); - !!instanceClass && (instanceClass.modifiers & 1) != 0 && (result |= 256); - } - } - (eStructuralFeature.eFlags & 512) != 0 && (result |= 128); - return result; -} - -defineClass(1164, 622, $intern_154); -_.canContainNull = function canContainNull_6(){ - return (this.kind & 1792) == 0; -} -; -_.didChange = function didChange_6(){ - this.kind |= 1; -} -; -_.hasInstanceClass = function hasInstanceClass_3(){ - return (this.kind & 4) != 0; -} -; -_.hasInverse = function hasInverse_13(){ - return (this.kind & 40) != 0; -} -; -_.hasManyInverse = function hasManyInverse_7(){ - return (this.kind & 16) != 0; -} -; -_.hasNavigableInverse = function hasNavigableInverse_6(){ - return (this.kind & 8) != 0; -} -; -_.hasProxies = function hasProxies_11(){ - return (this.kind & $intern_150) != 0; -} -; -_.isContainment = function isContainment_9(){ - return (this.kind & 32) != 0; -} -; -_.isEObject = function isEObject_5(){ - return (this.kind & $intern_137) != 0; -} -; -_.isInstance = function isInstance_49(object){ - return !this.dataClass?this.getEStructuralFeature().getEType().isInstance(object):isInstance(this.dataClass, object); -} -; -_.isSet_0 = function isSet_18(){ - return (this.kind & 2) != 0?(this.kind & 1) != 0:this.size_0 != 0; -} -; -_.isUnique = function isUnique_10(){ - return (this.kind & 128) != 0; -} -; -_.unset = function unset_14(){ - var oldIsSet; - $clear_13(this); - if ((this.kind & 2) != 0) { - if ($eNotificationRequired(this.owner)) { - oldIsSet = (this.kind & 1) != 0; - this.kind &= -2; - $dispatchNotification(this, new ENotificationImpl_4(this.owner, 2, $getFeatureID(this.owner.eClass_0(), this.getEStructuralFeature()), oldIsSet, false)); - } - else { - this.kind &= -2; - } - } -} -; -_.useEquals = function useEquals_15(){ - return (this.kind & 1536) == 0; -} -; -_.kind = 0; -var Lorg_eclipse_emf_ecore_util_EcoreEList$Generic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Generic', 1164); -function EcoreEList$Dynamic(kind, dataClass, owner, eStructuralFeature){ - EcoreEList.call(this, dataClass, owner); - this.kind = kind; - this.eStructuralFeature = eStructuralFeature; -} - -defineClass(1165, 1164, $intern_154, EcoreEList$Dynamic); -_.getEStructuralFeature = function getEStructuralFeature_3(){ - return this.eStructuralFeature; -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEList$Dynamic_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEList/Dynamic', 1165); -function EcoreEMap$1(this$0){ - this.this$01 = this$0; -} - -defineClass(747, 63, $intern_138, EcoreEMap$1); -_.newData = function newData_15(listCapacity){ - return newInstance_11(this.this$01.entryClass, listCapacity); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEMap$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/1', 747); -function EcoreEMap$DelegateEObjectContainmentEList(this$0, entryClass, owner, featureID){ - this.this$01 = this$0; - EObjectContainmentEList.call(this, entryClass, owner, featureID); -} - -defineClass(746, 85, $intern_154, EcoreEMap$DelegateEObjectContainmentEList); -_.didAdd = function didAdd_4(index_0, newObject){ - $doPut(this.this$01, castTo(newObject, 133)); -} -; -_.didClear = function didClear_2(size_0, oldObjects){ - $doClear_0(this.this$01); -} -; -_.didMove = function didMove_1(index_0, movedObject, oldIndex){ - var lastArg; - ++(lastArg = this.this$01 , castTo(movedObject, 133) , lastArg).modCount; -} -; -_.didRemove = function didRemove_3(index_0, oldObject){ - $doRemove(this.this$01, castTo(oldObject, 133)); -} -; -_.didSet = function didSet_2(index_0, newObject, oldObject){ - $doRemove(this.this$01, castTo(oldObject, 133)); - maskUndefined(oldObject) === maskUndefined(newObject) && castTo(oldObject, 133).setHash($hashOf(castTo(newObject, 133).getKey())); - $doPut(this.this$01, castTo(newObject, 133)); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreEMap$DelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/DelegateEObjectContainmentEList', 746); -function EcoreEMap$Unsettable(entryEClass, entryClass, owner, featureID){ - this.initializeDelegateEList(); - this.entryClass = entryClass; - this.entryEClass = entryEClass; - this.delegateEList = null; - this.delegateEList = new EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this, entryClass, owner, featureID); -} - -defineClass(1171, 151, $intern_148, EcoreEMap$Unsettable); -var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable', 1171); -function EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this$1, dataClass, owner, featureID){ - EcoreEMap$DelegateEObjectContainmentEList.call(this, this$1, dataClass, owner, featureID); -} - -defineClass(1172, 746, $intern_154, EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList); -_.didChange = function didChange_7(){ - this.isSet = true; -} -; -_.isSet_0 = function isSet_19(){ - return this.isSet; -} -; -_.unset = function unset_15(){ - var oldIsSet; - $clear_13(this); - if ($eNotificationRequired(this.owner)) { - oldIsSet = this.isSet; - this.isSet = false; - $eNotify(this.owner, new ENotificationImpl_4(this.owner, 2, this.featureID, oldIsSet, false)); - } - else { - this.isSet = false; - } -} -; -_.isSet = false; -var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList', 1172); -function convertToString_2(eDataType, value_0){ - return eDataType.getEPackage().getEFactoryInstance().convertToString(eDataType, value_0); -} - -function copy_1(eObject){ - var copier, result, t; - copier = new EcoreUtil$Copier; - result = $copy_1(copier, eObject); - $copyReferences(copier); - t = result; - return t; -} - -function createFromString_2(eDataType, literal){ - return eDataType.getEPackage().getEFactoryInstance().createFromString(eDataType, literal); -} - -function getConversionDelegateFactory(eDataType){ - var eDataTypeDelegate, eDataTypeDelegate$iterator; - for (eDataTypeDelegate$iterator = getConversionDelegates($getEPackage(eDataType)).iterator_0(); eDataTypeDelegate$iterator.hasNext_0();) { - eDataTypeDelegate = castToString(eDataTypeDelegate$iterator.next_1()); - if ($getEAnnotation(eDataType, eDataTypeDelegate)) { - return $getFactory(($clinit_EDataType$Internal$ConversionDelegate$Factory$Registry() , INSTANCE_5), eDataTypeDelegate); - } - } - return null; -} - -function getConversionDelegates(ePackage){ - var eAnnotation, eDataTypeDelegate, eDataTypeDelegate$array, eDataTypeDelegate$index, eDataTypeDelegate$max, eDataTypeDelegates, result; - if (ePackage) { - eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); - if (eAnnotation) { - eDataTypeDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'conversionDelegates')); - if (eDataTypeDelegates != null) { - result = new ArrayList; - for (eDataTypeDelegate$array = $split_0(eDataTypeDelegates, '\\w+') , eDataTypeDelegate$index = 0 , eDataTypeDelegate$max = eDataTypeDelegate$array.length; eDataTypeDelegate$index < eDataTypeDelegate$max; ++eDataTypeDelegate$index) { - eDataTypeDelegate = eDataTypeDelegate$array[eDataTypeDelegate$index]; - result.array[result.array.length] = eDataTypeDelegate; - } - return result; - } - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function getRootContainer(eObject){ - var count, parent_0, result; - result = eObject; - if (eObject) { - count = 0; - for (parent_0 = eObject.eContainer_0(); parent_0; parent_0 = parent_0.eContainer_0()) { - if (++count > $intern_66) { - return getRootContainer(parent_0); - } - result = parent_0; - if (parent_0 == eObject) { - throw toJs(new IllegalStateException_0('There is a cycle in the containment hierarchy of ' + eObject)); - } - } - } - return result; -} - -function getSettingDelegateFactory(eStructuralFeature){ - var settingDelegate, settingDelegate$iterator; - for (settingDelegate$iterator = getSettingDelegates($getEPackage($getEContainingClass(eStructuralFeature))).iterator_0(); settingDelegate$iterator.hasNext_0();) { - settingDelegate = castToString(settingDelegate$iterator.next_1()); - if ($getEAnnotation(eStructuralFeature, settingDelegate)) - return $getFactory_0(($clinit_EStructuralFeature$Internal$SettingDelegate$Factory$Registry() , INSTANCE_7), settingDelegate); - } - return null; -} - -function getSettingDelegates(ePackage){ - var eAnnotation, result, settingDelegate, settingDelegate$array, settingDelegate$index, settingDelegate$max, settingDelegates; - eAnnotation = ePackage.getEAnnotation('http://www.eclipse.org/emf/2002/Ecore'); - if (eAnnotation) { - settingDelegates = castToString($get_21((!eAnnotation.details && (eAnnotation.details = new EAnnotationImpl$1(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, eAnnotation)) , eAnnotation.details), 'settingDelegates')); - if (settingDelegates != null) { - result = new ArrayList; - for (settingDelegate$array = $split_0(settingDelegates, '\\w+') , settingDelegate$index = 0 , settingDelegate$max = settingDelegate$array.length; settingDelegate$index < settingDelegate$max; ++settingDelegate$index) { - settingDelegate = settingDelegate$array[settingDelegate$index]; - result.array[result.array.length] = settingDelegate; - } - return result; - } - } - return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; -} - -function isAncestor(ancestorEObject, eObject){ - var count, eContainer; - if (eObject) { - if (eObject == ancestorEObject) { - return true; - } - count = 0; - for (eContainer = castTo(eObject, 49).eInternalContainer(); !!eContainer && eContainer != eObject; eContainer = eContainer.eInternalContainer()) { - if (++count > $intern_66) { - return isAncestor(ancestorEObject, eContainer); - } - if (eContainer == ancestorEObject) { - return true; - } - } - } - return false; -} - -function resolve_20(proxy){ - var ePackage, proxyURI, resolvedObject, resource; - proxyURI = castTo(proxy, 49).eProxyURI_0(); - if (proxyURI) { - try { - resolvedObject = null; - ePackage = $getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), $toString_26($trimFragment(proxyURI))); - if (ePackage) { - resource = ePackage.eResource_0(); - !!resource && (resolvedObject = resource.getEObject($toString_7(proxyURI.fragment))); - } - if (!!resolvedObject && resolvedObject != proxy) { - return resolve_20(resolvedObject); - } - } - catch ($e0) { - $e0 = toJava($e0); - if (!instanceOf($e0, 60)) - throw toJs($e0); - } - } - return proxy; -} - -function wrapperClassFor(javaClass){ - return !javaClass?null:(javaClass.modifiers & 1) != 0?javaClass == Z_classLit?Ljava_lang_Boolean_2_classLit:javaClass == I_classLit?Ljava_lang_Integer_2_classLit:javaClass == F_classLit?Ljava_lang_Float_2_classLit:javaClass == D_classLit?Ljava_lang_Double_2_classLit:javaClass == J_classLit?Ljava_lang_Long_2_classLit:javaClass == S_classLit?Ljava_lang_Short_2_classLit:javaClass == B_classLit?Ljava_lang_Byte_2_classLit:Ljava_lang_Character_2_classLit:javaClass; -} - -function $copy_1(this$static, eObject){ - var copyEObject, eAllStructuralFeaturesData, eClass, eClass0, eReference, eStructuralFeature, i, size_0; - if (!eObject) { - return null; - } - else { - copyEObject = (eClass0 = eObject.eClass_0() , !eClass0?null:$getEPackage(eClass0).getEFactoryInstance().create_3(eClass0)); - if (copyEObject) { - $put_11(this$static, eObject, copyEObject); - eClass = eObject.eClass_0(); - for (i = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { - eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); - if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { - if (instanceOf(eStructuralFeature, 322)) { - $copyAttribute(this$static, castTo(eStructuralFeature, 34), eObject, copyEObject); - } - else { - eReference = castTo(eStructuralFeature, 18); - (eReference.eFlags & $intern_134) != 0 && $copyContainment(this$static, eReference, eObject, copyEObject); - } - } - } - eObject.eIsProxy() && castTo(copyEObject, 49).eSetProxyURI(castTo(eObject, 49).eProxyURI_0()); - } - return copyEObject; - } -} - -function $copyAll(this$static, eObjects){ - var object, object$iterator, result, t; - result = new ArrayList_0(eObjects.size_1()); - for (object$iterator = eObjects.iterator_0(); object$iterator.hasNext_0();) { - object = object$iterator.next_1(); - t = $copy_1(this$static, castTo(object, 56)); - !!t && (result.array[result.array.length] = t , true); - } - return result; -} - -function $copyAttribute(this$static, eAttribute, eObject, copyEObject){ - var featureMap, setting, targetEStructuralFeature; - if (eObject.eIsSet_0(eAttribute)) { - $clinit_FeatureMapUtil(); - if ($isFeatureMap(eAttribute)) { - featureMap = castTo(eObject.eGet_0(eAttribute), 153); - $copyFeatureMap(this$static, featureMap); - } - else { - setting = (targetEStructuralFeature = eAttribute , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); - !!setting && $copyAttributeValue(eObject.eGet_0(eAttribute), setting); - } - } -} - -function $copyAttributeValue(value_0, setting){ - setting.set_1(value_0); -} - -function $copyContainment(this$static, eReference, eObject, copyEObject){ - var setting, target, targetEStructuralFeature, upper, value_0; - if (eObject.eIsSet_0(eReference)) { - setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); - if (setting) { - value_0 = eObject.eGet_0(eReference); - upper = eReference.upperBound; - if (upper > 1 || upper == -1) { - target = castTo(value_0, 15); - setting.set_1($copyAll(this$static, target)); - } - else { - setting.set_1($copy_1(this$static, castTo(value_0, 56))); - } - } - } -} - -function $copyFeatureMap(this$static, featureMap){ - var feature, i, size_0, value_0; - for (i = 0 , size_0 = featureMap.size_1(); i < size_0; ++i) { - feature = featureMap.getEStructuralFeature_0(i); - if (instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { - value_0 = featureMap.getValue_1(i); - value_0 != null && $copy_1(this$static, castTo(value_0, 56)); - } - } -} - -function $copyReference(this$static, eReference, eObject, copyEObject){ - var copyReferencedEObject, index_0, isBidirectional, k, position, referencedEObject, setting, source, target, targetEStructuralFeature, upper, value_0; - if (eObject.eIsSet_0(eReference)) { - setting = (targetEStructuralFeature = eReference , !targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature)); - if (setting) { - value_0 = eObject.eGet_1(eReference, this$static.resolveProxies); - upper = eReference.upperBound; - if (upper > 1 || upper == -1) { - source = castTo(value_0, 69); - target = castTo(setting, 69); - if (source.isEmpty()) { - target.clear_0(); - } - else { - isBidirectional = !!$getEOpposite(eReference); - index_0 = 0; - for (k = this$static.resolveProxies?source.iterator_0():source.basicIterator(); k.hasNext_0();) { - referencedEObject = castTo(k.next_1(), 56); - copyReferencedEObject = castTo($get_16(this$static, referencedEObject), 56); - if (!copyReferencedEObject) { - if (this$static.useOriginalReferences && !isBidirectional) { - target.addUnique(index_0, referencedEObject); - ++index_0; - } - } - else { - if (isBidirectional) { - position = target.indexOf_0(copyReferencedEObject); - position == -1?target.addUnique(index_0, copyReferencedEObject):index_0 != position && target.move_0(index_0, copyReferencedEObject); - } - else { - target.addUnique(index_0, copyReferencedEObject); - } - ++index_0; - } - } - } - } - else { - if (value_0 == null) { - setting.set_1(null); - } - else { - copyReferencedEObject = $get_16(this$static, value_0); - copyReferencedEObject == null?this$static.useOriginalReferences && !$getEOpposite(eReference) && setting.set_1(value_0):setting.set_1(copyReferencedEObject); - } - } - } - } -} - -function $copyReferences(this$static){ - var copyEObject, copyFeatureMap, copyFeatureMapSize, copyReferencedEObject, eAllStructuralFeaturesData, eClass, eObject, eReference, eStructuralFeature, entry, entry$iterator, feature, featureMap, featureMapSize, j, k, l, reference, referencedEObject, size_0, targetEStructuralFeature, theOpposite; - for (entry$iterator = new LinkedHashMap$EntrySet$EntryIterator(new LinkedHashMap$EntrySet(this$static)); entry$iterator.next_0 != entry$iterator.this$11.this$01.head;) { - entry = $next_9(entry$iterator); - eObject = castTo(entry.key, 56); - copyEObject = castTo(entry.value_0, 56); - eClass = eObject.eClass_0(); - for (j = 0 , size_0 = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData).length; j < size_0; ++j) { - eStructuralFeature = (eAllStructuralFeaturesData = (eClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(eClass) , eClass.eAllStructuralFeaturesData) , j >= 0 && j < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[j]:null); - if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived()) { - if (instanceOf(eStructuralFeature, 99)) { - eReference = castTo(eStructuralFeature, 18); - (eReference.eFlags & $intern_134) == 0 && (theOpposite = $getEOpposite(eReference) , !(!!theOpposite && (theOpposite.eFlags & $intern_134) != 0)) && $copyReference(this$static, eReference, eObject, copyEObject); - } - else { - $clinit_FeatureMapUtil(); - if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { - copyFeatureMap = (targetEStructuralFeature = eStructuralFeature , castTo(!targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature), 153)); - if (copyFeatureMap) { - featureMap = castTo(eObject.eGet_0(eStructuralFeature), 153); - copyFeatureMapSize = copyFeatureMap.size_1(); - for (k = 0 , featureMapSize = featureMap.size_1(); k < featureMapSize; ++k) { - feature = featureMap.getEStructuralFeature_0(k); - if (instanceOf(feature, 99)) { - referencedEObject = featureMap.getValue_1(k); - copyReferencedEObject = $get_16(this$static, referencedEObject); - if (copyReferencedEObject == null && referencedEObject != null) { - reference = castTo(feature, 18); - if (!this$static.useOriginalReferences || (reference.eFlags & $intern_134) != 0 || !!$getEOpposite(reference)) { - continue; - } - copyReferencedEObject = referencedEObject; - } - if (!copyFeatureMap.add_6(feature, copyReferencedEObject)) { - for (l = 0; l < copyFeatureMapSize; ++l) { - if (copyFeatureMap.getEStructuralFeature_0(l) == feature && maskUndefined(copyFeatureMap.getValue_1(l)) === maskUndefined(copyReferencedEObject)) { - copyFeatureMap.move(copyFeatureMap.size_1() - 1, l); - --copyFeatureMapSize; - break; - } - } - } - } - else { - copyFeatureMap.add_6(featureMap.getEStructuralFeature_0(k), featureMap.getValue_1(k)); - } - } - } - } - } - } - } - } -} - -function EcoreUtil$Copier(){ - LinkedHashMap.call(this); - this.resolveProxies = true; - this.useOriginalReferences = true; -} - -defineClass(1168, 228, $intern_76, EcoreUtil$Copier); -_.resolveProxies = false; -_.useOriginalReferences = false; -var Lorg_eclipse_emf_ecore_util_EcoreUtil$Copier_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/Copier', 1168); -function $hasNext_9(this$static){ - if (this$static.preparedResult == null) { - while (this$static.iterator.hasNext_0()) { - this$static.preparedResult = this$static.iterator.next_1(); - if (!castTo(this$static.preparedResult, 49).eDirectResource()) { - return true; - } - } - this$static.preparedResult = null; - return false; - } - else { - return true; - } -} - -function EcoreUtil$ProperContentIterator(eObject){ - var contents; - contents = eObject.eContents_0(); - this.iterator = instanceOf(contents, 69)?castTo(contents, 69).basicIterator():contents.iterator_0(); -} - -defineClass(745, 1, $intern_6, EcoreUtil$ProperContentIterator); -_.forEachRemaining = function forEachRemaining_60(consumer){ - $forEachRemaining(this, consumer); -} -; -_.hasNext_0 = function hasNext_51(){ - return $hasNext_9(this); -} -; -_.next_1 = function next_50(){ - var result; - $hasNext_9(this); - result = this.preparedResult; - this.preparedResult = null; - return result; -} -; -_.remove = function remove_129(){ - this.iterator.remove(); -} -; -var Lorg_eclipse_emf_ecore_util_EcoreUtil$ProperContentIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ProperContentIterator', 745); -function $clinit_EcoreValidator(){ - $clinit_EcoreValidator = emptyMethod; - $clinit_EObjectValidator(); - INSTANCE_10 = new EcoreValidator; -} - -function EcoreValidator(){ - $clinit_XMLTypeValidator(); -} - -defineClass(1382, 1381, {}, EcoreValidator); -var INSTANCE_10; -var Lorg_eclipse_emf_ecore_util_EcoreValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreValidator', 1382); -function $clinit_FeatureMapUtil(){ - $clinit_FeatureMapUtil = emptyMethod; - NULL_VALIDATOR = new FeatureMapUtil$1; -} - -function createEntry_5(eStructuralFeature, value_0){ - $clinit_FeatureMapUtil(); - var prototype_0; - prototype_0 = castTo(eStructuralFeature, 66).getFeatureMapEntryPrototype(); - $validate_2(prototype_0, value_0); - return prototype_0.createEntry(value_0); -} - -function getValidator(containingClass, eStructuralFeature){ - $clinit_FeatureMapUtil(); - var extendedMetaData, holder, result, validatorMap; - if (!eStructuralFeature) { - return NULL_VALIDATOR; - } - else if (eStructuralFeature == ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__MIXED) || (eStructuralFeature == ANY_TYPE__MIXED || eStructuralFeature == ANY_TYPE__ANY || eStructuralFeature == ANY_TYPE__ANY_ATTRIBUTE) && containingClass != ANY_TYPE) { - return new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature); - } - else { - holder = castTo(eStructuralFeature, 677); - extendedMetaData = holder.getExtendedMetaData_0(); - if (!extendedMetaData) { - $getName_0($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); - extendedMetaData = holder.getExtendedMetaData_0(); - } - validatorMap = (!extendedMetaData.validatorMap && (extendedMetaData.validatorMap = new HashMap) , extendedMetaData.validatorMap); - result = castTo(getEntryValueOrNull($getEntry_0(validatorMap.hashCodeMap, containingClass)), 1942); - !result && $put_6(validatorMap, containingClass, result = new FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature)); - return result; - } -} - -function isMany_1(owner, feature){ - $clinit_FeatureMapUtil(); - var affiliation, affiliationUpperBound, eClass; - if (feature.isMany()) { - return true; - } - else if (feature.getUpperBound() == -2) { - if (feature == ($clinit_XMLTypeFeatures() , TEXT) || feature == CDATA || feature == COMMENT || feature == PROCESSING_INSTRUCTION) { - return true; - } - else { - eClass = owner.eClass_0(); - if ($getFeatureID(eClass, feature) >= 0) { - return false; - } - else { - affiliation = $getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), eClass, feature); - if (!affiliation) { - return true; - } - else { - affiliationUpperBound = affiliation.getUpperBound(); - return (affiliationUpperBound > 1 || affiliationUpperBound == -1) && $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, affiliation)) != 3; - } - } - } - } - else { - return false; - } -} - -var NULL_VALIDATOR; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$Validator_2_classLit = createForInterface('org.eclipse.emf.ecore.util', 'FeatureMapUtil/Validator'); -function FeatureMapUtil$1(){ -} - -defineClass(1260, 1, {1942:1}, FeatureMapUtil$1); -_.isValid = function isValid_2(eStructuralFeature){ - return true; -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/1', 1260); -function $clinit_FeatureMapUtil$BasicValidator(){ - $clinit_FeatureMapUtil$BasicValidator = emptyMethod; - ANY_WILDCARD = ($clinit_Collections() , new Collections$SingletonList('##any')); -} - -function $isIncluded(this$static, feature){ - var featureKind; - if (this$static.wildcards == ANY_WILDCARD) { - featureKind = $getFeatureKind($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature)); - return this$static.isElement?featureKind == 4 && feature != ($clinit_XMLTypeFeatures() , TEXT) && feature != ($clinit_XMLTypeFeatures() , CDATA) && feature != ($clinit_XMLTypeFeatures() , COMMENT) && feature != ($clinit_XMLTypeFeatures() , PROCESSING_INSTRUCTION):featureKind == 2; - } - if (!!this$static.groupMembers && (this$static.groupMembers.contains(feature) || this$static.groupMembers.contains($getGroup($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), feature))) || this$static.groupMembers.contains($getAffiliation(($clinit_ExtendedMetaData() , INSTANCE_11), this$static.containingClass, feature)))) { - return true; - } - if (this$static.wildcards) { - if ($matches(($clinit_ExtendedMetaData() , this$static.wildcards), $getNamespace_0($getExtendedMetaData_1(INSTANCE_11, feature)))) { - featureKind = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature)); - return this$static.isElement?featureKind == 4:featureKind == 2; - } - } - return false; -} - -function FeatureMapUtil$BasicValidator(containingClass, eStructuralFeature){ - $clinit_FeatureMapUtil$BasicValidator(); - var eAllStructuralFeaturesData, feature, feature$iterator, group, i, mixedFeature, size_0; - this.cache = new FeatureMapUtil$BasicValidator$Cache(this); - this.containingClass = containingClass; - this.eStructuralFeature = eStructuralFeature; - this.wildcards = $getWildcards($getExtendedMetaData_1(($clinit_ExtendedMetaData() , INSTANCE_11), eStructuralFeature)); - if (this.wildcards.isEmpty()) { - if ((mixedFeature = $getMixedFeature(INSTANCE_11, containingClass)) == eStructuralFeature) { - this.isElement = true; - this.groupMembers = new ArrayList; - this.wildcards = new UniqueEList; - this.wildcards.add_2('http://www.eclipse.org/emf/2003/XMLType'); - castTo($getType_1($getExtendedMetaData_0(INSTANCE_11, $getEPackage(containingClass)), ''), 26) == containingClass && this.wildcards.add_2($getNamespace(INSTANCE_11, $getEPackage(containingClass))); - for (feature$iterator = $getAllElements(INSTANCE_11, containingClass).iterator_0(); feature$iterator.hasNext_0();) { - feature = castTo(feature$iterator.next_1(), 170); - switch ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, feature))) { - case 4: - { - this.groupMembers.add_2(feature); - break; - } - - case 5: - { - this.wildcards.addAll($getWildcards($getExtendedMetaData_1(INSTANCE_11, feature))); - break; - } - - } - } - } - else { - $clinit_FeatureMapUtil(); - if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { - this.isElement = true; - this.wildcards = null; - this.groupMembers = new ArrayList; - for (i = 0 , size_0 = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData).length; i < size_0; ++i) { - feature = (eAllStructuralFeaturesData = (containingClass.eAllStructuralFeaturesData == null && $getEAllStructuralFeatures(containingClass) , containingClass.eAllStructuralFeaturesData) , i >= 0 && i < eAllStructuralFeaturesData.length?eAllStructuralFeaturesData[i]:null); - for (group = $getGroup($getExtendedMetaData_1(INSTANCE_11, feature)); group; group = $getGroup($getExtendedMetaData_1(INSTANCE_11, group))) { - group == eStructuralFeature && this.groupMembers.add_2(feature); - } - } - } - else if ($getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 1 && !!mixedFeature) { - this.wildcards = null; - this.groupMembers = ($clinit_XMLTypeFeatures() , TEXTUAL_FEATURES); - } - else { - this.wildcards = null; - this.isElement = true; - this.groupMembers = ($clinit_Collections() , new Collections$SingletonList(eStructuralFeature)); - } - } - } - else { - this.isElement = $getFeatureKind($getExtendedMetaData_1(INSTANCE_11, eStructuralFeature)) == 5; - this.wildcards.equals_0(ANY_WILDCARD) && (this.wildcards = ANY_WILDCARD); - } -} - -defineClass(757, 1, {1942:1}, FeatureMapUtil$BasicValidator); -_.isValid = function isValid_3(feature){ - var result; - if (this.eStructuralFeature == feature) - return true; - result = castToBoolean($get_10(this.cache, feature)); - if (result == null) { - if ($isIncluded(this, feature)) { - $put_15(this.cache, feature, ($clinit_Boolean() , TRUE_0)); - return true; - } - else { - $put_15(this.cache, feature, ($clinit_Boolean() , FALSE_0)); - return false; - } - } - else { - return result == ($clinit_Boolean() , TRUE_0); - } -} -; -_.isElement = false; -var ANY_WILDCARD; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator', 757); -function $put_15(this$static, eStructuralFeature, isValid){ - var newCache; - newCache = new FeatureMapUtil$BasicValidator$Cache(this$static.this$11); - $putAll(newCache, this$static.this$11.cache); - $put_9(newCache.hashCodeMap, eStructuralFeature, isValid); - this$static.this$11.cache = newCache; -} - -function FeatureMapUtil$BasicValidator$Cache(this$1){ - this.this$11 = this$1; - HashMap.call(this); -} - -defineClass(758, 43, $intern_76, FeatureMapUtil$BasicValidator$Cache); -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$BasicValidator$Cache_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/BasicValidator/Cache', 758); -function $addAll_14(this$static, collection){ - return $addAll_13(this$static.featureMap, this$static.feature, collection); -} - -function $basicRemove_4(this$static, object, notifications){ - return $basicRemove_3(this$static.featureMap, this$static.feature, object, notifications); -} - -function $clear_16(this$static){ - $clear_15(this$static.featureMap, this$static.feature); -} - -function $isEmpty_2(this$static){ - return $isEmpty_1(this$static.featureMap, this$static.feature); -} - -function FeatureMapUtil$FeatureEList(feature, featureMap){ - this.feature = feature; - this.featureMap = featureMap; -} - -defineClass(501, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 69:1, 95:1}, FeatureMapUtil$FeatureEList); -_.add_3 = function add_70(index_0, object){ - $add_32(this.featureMap, this.feature, index_0, object); -} -; -_.add_2 = function add_71(object){ - return $add_33(this.featureMap, this.feature, object); -} -; -_.addAll_0 = function addAll_37(index_0, collection){ - return $addAll_12(this.featureMap, this.feature, index_0, collection); -} -; -_.addAll = function addAll_38(collection){ - return $addAll_14(this, collection); -} -; -_.addUnique = function addUnique_20(index_0, object){ - $addUnique_11(this.featureMap, this.feature, index_0, object); -} -; -_.basicAdd = function basicAdd_5(object, notifications){ - return $basicAdd_2(this.featureMap, this.feature, object, notifications); -} -; -_.basicGet = function basicGet_6(index_0){ - return $get_23(this.featureMap, this.feature, index_0, false); -} -; -_.basicIterator = function basicIterator_7(){ - return $basicIterator(this.featureMap, this.feature); -} -; -_.basicListIterator = function basicListIterator_15(){ - return $basicListIterator_0(this.featureMap, this.feature); -} -; -_.basicListIterator_0 = function basicListIterator_16(index_0){ - return $basicListIterator_1(this.featureMap, this.feature, index_0); -} -; -_.basicRemove = function basicRemove_6(object, notifications){ - return $basicRemove_4(this, object, notifications); -} -; -_.clear_0 = function clear_66(){ - $clear_16(this); -} -; -_.contains = function contains_67(object){ - return $contains_12(this.featureMap, this.feature, object); -} -; -_.containsAll = function containsAll_15(collection){ - return $containsAll_1(this.featureMap, this.feature, collection); -} -; -_.get_0 = function get_68(index_0){ - return $get_23(this.featureMap, this.feature, index_0, true); -} -; -_.get_6 = function get_69(resolve){ - return this; -} -; -_.indexOf_0 = function indexOf_18(object){ - return $indexOf_7(this.featureMap, this.feature, object); -} -; -_.isEmpty = function isEmpty_34(){ - return $isEmpty_2(this); -} -; -_.isSet_0 = function isSet_20(){ - return !$isEmpty_1(this.featureMap, this.feature); -} -; -_.iterator_0 = function iterator_90(){ - return $iterator_2(this.featureMap, this.feature); -} -; -_.listIterator_0 = function listIterator_33(){ - return $listIterator_3(this.featureMap, this.feature); -} -; -_.listIterator_1 = function listIterator_34(index_0){ - return $listIterator_4(this.featureMap, this.feature, index_0); -} -; -_.move = function move_21(targetIndex, sourceIndex){ - return $move_6(this.featureMap, this.feature, targetIndex, sourceIndex); -} -; -_.move_0 = function move_22(index_0, object){ - $move_7(this.featureMap, this.feature, index_0, object); -} -; -_.remove_2 = function remove_130(index_0){ - return $remove_43(this.featureMap, this.feature, index_0); -} -; -_.remove_1 = function remove_131(object){ - return $remove_44(this.featureMap, this.feature, object); -} -; -_.set_2 = function set_41(index_0, object){ - return $set_18(this.featureMap, this.feature, index_0, object); -} -; -_.set_1 = function set_42(newValue){ - $clear_15(this.featureMap, this.feature); - $addAll_14(this, castTo(newValue, 15)); -} -; -_.size_1 = function size_80(){ - return $size_3(this.featureMap, this.feature); -} -; -_.toArray = function toArray_42(){ - return $toArray_12(this.featureMap, this.feature); -} -; -_.toArray_0 = function toArray_43(array){ - return $toArray_14(this.featureMap, this.feature, array); -} -; -_.toString_0 = function toString_157(){ - var i, stringBuffer; - stringBuffer = new StringBuffer; - stringBuffer.string += '['; - for (i = $basicIterator(this.featureMap, this.feature); $hasNext_8(i);) { - $append_3(stringBuffer, valueOf_7($next_16(i))); - $hasNext_8(i) && (stringBuffer.string += ', ' , stringBuffer); - } - stringBuffer.string += ']'; - return stringBuffer.string; -} -; -_.unset = function unset_16(){ - $clear_15(this.featureMap, this.feature); -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureEList', 501); -function $getFeatureID_0(this$static, expectedClass){ - var containerClass; - if (this$static.featureID == -1 && !!this$static.feature) { - containerClass = this$static.feature.getContainerClass(); - this$static.featureID = !containerClass?$getFeatureID(this$static.notifier.eClass_0(), this$static.feature):this$static.notifier.eDerivedStructuralFeatureID(this$static.feature.getFeatureID_0(), containerClass); - } - return this$static.notifier.eBaseStructuralFeatureID(this$static.featureID, expectedClass); -} - -function FeatureMapUtil$FeatureENotificationImpl(owner, eventType, feature, oldObject, newObject, index_0, wasSet){ - NotificationImpl_2.call(this, eventType, oldObject, newObject, index_0, wasSet); - this.notifier = owner; - this.feature = feature; -} - -defineClass(627, 36, $intern_142, FeatureMapUtil$FeatureENotificationImpl); -_.getFeatureID = function getFeatureID_14(expectedClass){ - return $getFeatureID_0(this, expectedClass); -} -; -_.merge_0 = function merge_5(notification){ - var addedValues, collection, newPositions, notificationEventType, notificationNotifier, positions, removedValues; - switch (this.eventType) { - case 1: - case 2: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.newValue = notification.getNewValue(); - notification.getEventType() == 1 && (this.eventType = 1); - return true; - } - break; - } - - case 3: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 3: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.eventType = 5; - addedValues = new BasicEList_0(2); - $add_21(addedValues, this.newValue); - $add_21(addedValues, notification.getNewValue()); - this.newValue = addedValues; - return true; - } - break; - } - - } - break; - } - - case 5: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 3: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - collection = castTo(this.newValue, 14); - collection.add_2(notification.getNewValue()); - return true; - } - break; - } - - } - break; - } - - case 4: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 3: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.eventType = 1; - this.newValue = notification.getNewValue(); - return true; - } - break; - } - - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - this.eventType = 6; - removedValues = new BasicEList_0(2); - $add_21(removedValues, this.oldValue); - $add_21(removedValues, notification.getOldValue()); - this.oldValue = removedValues; - positions = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [this.position, notification.getPosition_0()]); - this.newValue = positions; - return true; - } - break; - } - - } - break; - } - - case 6: - { - notificationEventType = notification.getEventType(); - switch (notificationEventType) { - case 4: - { - notificationNotifier = notification.getNotifier(); - if (maskUndefined(notificationNotifier) === maskUndefined(this.notifier) && $getFeatureID_0(this, null) == notification.getFeatureID(null)) { - collection = castTo(this.oldValue, 14); - collection.add_2(notification.getOldValue()); - positions = castTo(this.newValue, 48); - newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, positions.length + 1, 15, 1); - arraycopy(positions, 0, newPositions, 0, positions.length); - newPositions[positions.length] = notification.getPosition_0(); - this.newValue = newPositions; - return true; - } - break; - } - - } - break; - } - - } - return false; -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureENotificationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureENotificationImpl', 627); -function FeatureMapUtil$FeatureFeatureMap(feature, featureMap){ - FeatureMapUtil$FeatureEList.call(this, feature, featureMap); - this.wrapper = this; -} - -defineClass(552, 501, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 153:1, 215:1, 1937:1, 69:1, 95:1}, FeatureMapUtil$FeatureFeatureMap); -_.add_6 = function add_72(feature, value_0){ - return $add_33(this.featureMap, feature, value_0); -} -; -_.basicAdd_0 = function basicAdd_6(feature, object, notifications){ - return $basicAdd_2(this.featureMap, feature, object, notifications); -} -; -_.basicRemove_0 = function basicRemove_7(feature, object, notifications){ - return $basicRemove_3(this.featureMap, feature, object, notifications); -} -; -_.featureMap_0 = function featureMap_1(){ - return this; -} -; -_.get_7 = function get_70(feature, resolve){ - return $get_24(this.featureMap, feature, resolve); -} -; -_.getEStructuralFeature_0 = function getEStructuralFeature_4(index_0){ - return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getEStructuralFeature(); -} -; -_.getValue_1 = function getValue_20(index_0){ - return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).getValue(); -} -; -_.getWrapper = function getWrapper_0(){ - return this.wrapper; -} -; -_.isSet_1 = function isSet_21(feature){ - return !$isEmpty_1(this.featureMap, feature); -} -; -_.set_3 = function set_43(feature, object){ - $set_19(this.featureMap, feature, object); -} -; -_.setting = function setting_1(feature){ - return $setting(this.featureMap, feature); -} -; -_.unset_0 = function unset_17(feature){ - $unset(this.featureMap, feature); -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureFeatureMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureFeatureMap', 552); -function FeatureMapUtil$FeatureValue(feature, featureMap){ - this.feature = feature; - this.featureMap = featureMap; -} - -defineClass(1259, 1, $intern_147, FeatureMapUtil$FeatureValue); -_.get_6 = function get_71(resolve){ - return $get_23(this.featureMap, this.feature, -1, resolve); -} -; -_.isSet_0 = function isSet_22(){ - return !$isEmpty_1(this.featureMap, this.feature); -} -; -_.set_1 = function set_44(newValue){ - $set_19(this.featureMap, this.feature, newValue); -} -; -_.unset = function unset_18(){ - $clear_15(this.featureMap, this.feature); -} -; -var Lorg_eclipse_emf_ecore_util_FeatureMapUtil$FeatureValue_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'FeatureMapUtil/FeatureValue', 1259); -function $clinit_XMLTypeFeatures(){ - $clinit_XMLTypeFeatures = emptyMethod; - TEXT = castTo($get_20($getEStructuralFeatures(($clinit_XMLTypePackage() , eINSTANCE_4).xmlTypeDocumentRootEClass), 6), 34); - CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); - COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); - PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); - $getFeatureMapEntryPrototype(TEXT); - $getFeatureMapEntryPrototype(CDATA); - $getFeatureMapEntryPrototype(COMMENT); - $getFeatureMapEntryPrototype(PROCESSING_INSTRUCTION); - TEXTUAL_FEATURES = new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, 1), $intern_151, 170, 0, [TEXT, CDATA])); -} - -var CDATA, COMMENT, PROCESSING_INSTRUCTION, TEXT, TEXTUAL_FEATURES; -var Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'AnyType'); -function InvalidDatatypeValueException(reason){ - RuntimeException_0.call(this, reason); -} - -defineClass(666, 60, $intern_43, InvalidDatatypeValueException); -var Lorg_eclipse_emf_ecore_xml_type_InvalidDatatypeValueException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type', 'InvalidDatatypeValueException', 666); -var Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'ProcessingInstruction'); -var Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'SimpleAnyType'); -var Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit = createForInterface('org.eclipse.emf.ecore.xml.type', 'XMLTypeDocumentRoot'); -function $clinit_XMLTypeFactory(){ - $clinit_XMLTypeFactory = emptyMethod; - eINSTANCE_3 = init_5(); -} - -var eINSTANCE_3; -function $clinit_XMLTypePackage(){ - $clinit_XMLTypePackage = emptyMethod; - eINSTANCE_4 = init_6(); -} - -var eINSTANCE_4; -function $clinit_XMLTypePackage$Literals(){ - $clinit_XMLTypePackage$Literals = emptyMethod; - ANY_TYPE = ($clinit_XMLTypePackage() , eINSTANCE_4).anyTypeEClass; - ANY_TYPE__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 0), 34); - ANY_TYPE__ANY = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 1), 34); - ANY_TYPE__ANY_ATTRIBUTE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 2), 34); - PROCESSING_INSTRUCTION_0 = eINSTANCE_4.processingInstructionEClass; - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 1), 34); - SIMPLE_ANY_TYPE = eINSTANCE_4.simpleAnyTypeEClass; - SIMPLE_ANY_TYPE__RAW_VALUE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 1), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 2), 18); - XML_TYPE_DOCUMENT_ROOT = eINSTANCE_4.xmlTypeDocumentRootEClass; - XML_TYPE_DOCUMENT_ROOT__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 0), 34); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 1), 18); - castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 2), 18); - XML_TYPE_DOCUMENT_ROOT__CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); - XML_TYPE_DOCUMENT_ROOT__COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); - XML_TYPE_DOCUMENT_ROOT__TEXT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 6), 34); - XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); - DATE = eINSTANCE_4.dateEDataType; - DATE_TIME = eINSTANCE_4.dateTimeEDataType; - DURATION = eINSTANCE_4.durationEDataType; - GDAY = eINSTANCE_4.gDayEDataType; - GMONTH = eINSTANCE_4.gMonthEDataType; - GMONTH_DAY = eINSTANCE_4.gMonthDayEDataType; - GYEAR = eINSTANCE_4.gYearEDataType; - GYEAR_MONTH = eINSTANCE_4.gYearMonthEDataType; - NOTATION = eINSTANCE_4.notationEDataType; - QNAME = eINSTANCE_4.qNameEDataType; - TIME = eINSTANCE_4.timeEDataType; -} - -var ANY_TYPE, ANY_TYPE__ANY, ANY_TYPE__ANY_ATTRIBUTE, ANY_TYPE__MIXED, DATE, DATE_TIME, DURATION, GDAY, GMONTH, GMONTH_DAY, GYEAR, GYEAR_MONTH, NOTATION, PROCESSING_INSTRUCTION_0, QNAME, SIMPLE_ANY_TYPE, SIMPLE_ANY_TYPE__RAW_VALUE, TIME, XML_TYPE_DOCUMENT_ROOT, XML_TYPE_DOCUMENT_ROOT__CDATA, XML_TYPE_DOCUMENT_ROOT__COMMENT, XML_TYPE_DOCUMENT_ROOT__MIXED, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION, XML_TYPE_DOCUMENT_ROOT__TEXT; -function AnyTypeImpl(){ - EObjectImpl.call(this); -} - -defineClass(830, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1}, AnyTypeImpl); -_.eGet = function eGet_32(featureID, resolve, coreType){ - switch (featureID) { - case 0: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; - case 1: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); - return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); - case 2: - if (coreType) - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; - } - return $eDynamicGet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_23(otherEnd, featureID, msgs){ - var feature; - switch (featureID) { - case 0: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); - case 1: - return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 69)).basicRemove(otherEnd, msgs); - case 2: - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , $basicRemove_2(this.anyAttribute, otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(this.eStaticClass()), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_31(featureID){ - switch (featureID) { - case 0: - return !!this.mixed && this.mixed.size_0 != 0; - case 1: - return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); - case 2: - return !!this.anyAttribute && this.anyAttribute.size_0 != 0; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_29(featureID, newValue){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_17(this.mixed, newValue); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $set_17(this.anyAttribute, newValue); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_31(){ - return $clinit_XMLTypePackage$Literals() , ANY_TYPE; -} -; -_.eUnset = function eUnset_29(featureID){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_13(this.mixed); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $clear_13(this.anyAttribute); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((this.eFlags & 2) == 0?this.eStaticClass():(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.toString_0 = function toString_158(){ - var result; - if ((this.eFlags & 4) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (mixed: '; - $append_2(result, this.mixed); - result.string += ', anyAttribute: '; - $append_2(result, this.anyAttribute); - result.string += ')'; - return result.string; -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_AnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'AnyTypeImpl', 830); -function $setData_0(this$static, newData){ - this$static.data_0 = newData; -} - -function $setTarget_2(this$static, newTarget){ - this$static.target = newTarget; -} - -function ProcessingInstructionImpl(){ -} - -defineClass(667, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2021:1, 667:1}, ProcessingInstructionImpl); -_.eGet = function eGet_33(featureID, resolve, coreType){ - switch (featureID) { - case 0: - return this.data_0; - case 1: - return this.target; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_32(featureID){ - switch (featureID) { - case 0: - return this.data_0 != null; - case 1: - return this.target != null; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_30(featureID, newValue){ - switch (featureID) { - case 0: - $setData_0(this, castToString(newValue)); - return; - case 1: - $setTarget_2(this, castToString(newValue)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_32(){ - return $clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0; -} -; -_.eUnset = function eUnset_30(featureID){ - switch (featureID) { - case 0: - this.data_0 = null; - return; - case 1: - this.target = null; - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , PROCESSING_INSTRUCTION_0)), $getEStructuralFeature((this.eFlags & 2) == 0?PROCESSING_INSTRUCTION_0:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.toString_0 = function toString_159(){ - var result; - if ((this.eFlags & 4) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (data: '; - $append_3(result, this.data_0); - result.string += ', target: '; - $append_3(result, this.target); - result.string += ')'; - return result.string; -} -; -_.data_0 = null; -_.target = null; -var Lorg_eclipse_emf_ecore_xml_type_impl_ProcessingInstructionImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'ProcessingInstructionImpl', 667); -function $setInstanceType(this$static, newInstanceType){ - this$static.instanceType = newInstanceType; -} - -function $setRawValue(this$static, newRawValue){ - !this$static.mixed && (this$static.mixed = new BasicFeatureMap(this$static, 0)); - $set_19(this$static.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), newRawValue); -} - -function SimpleAnyTypeImpl(){ - AnyTypeImpl.call(this); -} - -defineClass(668, 830, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 843:1, 2022:1, 668:1}, SimpleAnyTypeImpl); -_.eGet = function eGet_34(featureID, resolve, coreType){ - switch (featureID) { - case 0: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; - case 1: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153); - return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).getWrapper(); - case 2: - if (coreType) - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute; - return !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)) , this.anyAttribute.wrapper; - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)); - case 4: - return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))); - case 5: - return this.instanceType; - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eIsSet = function eIsSet_33(featureID){ - switch (featureID) { - case 0: - return !!this.mixed && this.mixed.size_0 != 0; - case 1: - return !(!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).isEmpty(); - case 2: - return !!this.anyAttribute && this.anyAttribute.size_0 != 0; - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)) != null; - case 4: - return createFromString_2(this.instanceType, (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castToString($get_24(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), true)))) != null; - case 5: - return !!this.instanceType; - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_31(featureID, newValue){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_17(this.mixed, newValue); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).set_1(newValue); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $set_17(this.anyAttribute, newValue); - return; - case 3: - $setRawValue(this, castToString(newValue)); - return; - case 4: - $setRawValue(this, convertToString_2(this.instanceType, newValue)); - return; - case 5: - $setInstanceType(this, castTo(newValue, 148)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_33(){ - return $clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE; -} -; -_.eUnset = function eUnset_31(featureID){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_13(this.mixed); - return; - case 1: - (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153)).clear_0(); - return; - case 2: - !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); - $clear_13(this.anyAttribute); - return; - case 3: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_19(this.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), null); - return; - case 4: - $setRawValue(this, convertToString_2(this.instanceType, null)); - return; - case 5: - this.instanceType = null; - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE)), $getEStructuralFeature((this.eFlags & 2) == 0?SIMPLE_ANY_TYPE:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_SimpleAnyTypeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'SimpleAnyTypeImpl', 668); -function XMLTypeDocumentRootImpl(){ - EObjectImpl.call(this); -} - -defineClass(669, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2023:1, 669:1}, XMLTypeDocumentRootImpl); -_.eGet = function eGet_35(featureID, resolve, coreType){ - switch (featureID) { - case 0: - if (coreType) - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed; - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , this.mixed.wrapper; - case 1: - return coreType?(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , this.xMLNSPrefixMap):(!this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $map_1(this.xMLNSPrefixMap)); - case 2: - return coreType?(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , this.xSISchemaLocation):(!this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $map_1(this.xSISchemaLocation)); - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA)); - case 4: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT)); - case 5: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)); - case 6: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT)); - } - return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), resolve, coreType); -} -; -_.eInverseRemove_0 = function eInverseRemove_24(otherEnd, featureID, msgs){ - var feature; - switch (featureID) { - case 0: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_2(this.mixed, otherEnd, msgs); - case 1: - return !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)) , $basicRemove_1(this.xMLNSPrefixMap, otherEnd, msgs); - case 2: - return !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)) , $basicRemove_1(this.xSISchemaLocation, otherEnd, msgs); - case 5: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , $basicRemove_4($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION)), otherEnd, msgs); - } - return feature = castTo($getEStructuralFeature((this.eFlags & 2) == 0?($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT):(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), 66) , feature.getSettingDelegate().dynamicInverseRemove(this, $eSettings(this), featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), otherEnd, msgs); -} -; -_.eIsSet = function eIsSet_34(featureID){ - switch (featureID) { - case 0: - return !!this.mixed && this.mixed.size_0 != 0; - case 1: - return !!this.xMLNSPrefixMap && this.xMLNSPrefixMap.size_0 != 0; - case 2: - return !!this.xSISchemaLocation && this.xSISchemaLocation.size_0 != 0; - case 3: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); - case 4: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); - case 5: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); - case 6: - return !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , !$isEmpty_2($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); - } - return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.eSet = function eSet_32(featureID, newValue){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $set_17(this.mixed, newValue); - return; - case 1: - !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); - $set_14(this.xMLNSPrefixMap, newValue); - return; - case 2: - !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); - $set_14(this.xSISchemaLocation, newValue); - return; - case 3: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__CDATA), castTo(newValue, 14)); - return; - case 4: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__COMMENT), castTo(newValue, 14)); - return; - case 5: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION), castTo(newValue, 14)); - return; - case 6: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $addAll_14($list(this.mixed, XML_TYPE_DOCUMENT_ROOT__TEXT), castTo(newValue, 14)); - return; - } - $eDynamicSet(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID), newValue); -} -; -_.eStaticClass = function eStaticClass_34(){ - return $clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT; -} -; -_.eUnset = function eUnset_32(featureID){ - switch (featureID) { - case 0: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_13(this.mixed); - return; - case 1: - !this.xMLNSPrefixMap && (this.xMLNSPrefixMap = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 1)); - this.xMLNSPrefixMap.delegateEList.clear_0(); - return; - case 2: - !this.xSISchemaLocation && (this.xSISchemaLocation = new EcoreEMap(($clinit_EcorePackage$Literals() , ESTRING_TO_STRING_MAP_ENTRY), Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, this, 2)); - this.xSISchemaLocation.delegateEList.clear_0(); - return; - case 3: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__CDATA))); - return; - case 4: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__COMMENT))); - return; - case 5: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION))); - return; - case 6: - !this.mixed && (this.mixed = new BasicFeatureMap(this, 0)); - $clear_16($list(this.mixed, ($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT__TEXT))); - return; - } - $eDynamicUnset(this, featureID - $getFeatureCount(($clinit_XMLTypePackage$Literals() , XML_TYPE_DOCUMENT_ROOT)), $getEStructuralFeature((this.eFlags & 2) == 0?XML_TYPE_DOCUMENT_ROOT:(!this.eProperties && (this.eProperties = new BasicEObjectImpl$EPropertiesHolderImpl) , this.eProperties).getEClass(), featureID)); -} -; -_.toString_0 = function toString_160(){ - var result; - if ((this.eFlags & 4) != 0) - return $toString_16(this); - result = new StringBuffer_1($toString_16(this)); - result.string += ' (mixed: '; - $append_2(result, this.mixed); - result.string += ')'; - return result.string; -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeDocumentRootImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeDocumentRootImpl', 669); -function $clinit_XMLTypeFactoryImpl(){ - $clinit_XMLTypeFactoryImpl = emptyMethod; - $clinit_EFactoryImpl(); - DOUBLE_POSITIVE_INFINITY = $intern_59; - DOUBLE_NEGATIVE_INFINITY = $intern_60; - FLOAT_POSITIVE_INFINITY = new Float($intern_59); - FLOAT_NEGATIVE_INFINITY = new Float($intern_60); -} - -function $booleanValueOf_0(initialValue){ - initialValue = normalize(initialValue, true); - if ($equals_5('true', initialValue) || $equals_5('1', initialValue)) { - return $clinit_Boolean() , TRUE_0; - } - else if ($equals_5('false', initialValue) || $equals_5('0', initialValue)) { - return $clinit_Boolean() , FALSE_0; - } - throw toJs(new InvalidDatatypeValueException("Invalid boolean value: '" + initialValue + "'")); -} - -function $convertBase64Binary(instanceValue){ - return instanceValue == null?null:encode(instanceValue); -} - -function $convertDouble(instanceValue){ - return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; -} - -function $convertENTITIESBaseToString(instanceValue){ - var i, list, result; - if (instanceValue == null) - return null; - list = castTo(instanceValue, 15); - if (list.isEmpty()) - return ''; - result = new StringBuffer; - for (i = list.iterator_0(); i.hasNext_0();) { - $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); - result.string += ' '; - } - return $substring(result, result.string.length - 1); -} - -function $convertFloat(instanceValue){ - return instanceValue == $intern_59?'INF':instanceValue == $intern_60?'-INF':'' + instanceValue; -} - -function $convertHexBinary(instanceValue){ - return instanceValue == null?null:encode_0(instanceValue); -} - -function $convertIDREFSBase(instanceValue){ - var item_0, item$iterator, result; - if (!instanceValue) - return null; - if (instanceValue.isEmpty()) - return ''; - result = new StringBuffer; - for (item$iterator = instanceValue.iterator_0(); item$iterator.hasNext_0();) { - item_0 = item$iterator.next_1(); - $append_3(result, castToString(item_0)); - result.string += ' '; - } - return $substring(result, result.string.length - 1); -} - -function $convertNMTOKENSBaseToString(instanceValue){ - var i, list, result; - if (instanceValue == null) - return null; - list = castTo(instanceValue, 15); - if (list.isEmpty()) - return ''; - result = new StringBuffer; - for (i = list.iterator_0(); i.hasNext_0();) { - $append_3(result, ($clinit_XMLTypePackage$Literals() , castToString(i.next_1()))); - result.string += ' '; - } - return $substring(result, result.string.length - 1); -} - -function $convertNonNegativeIntegerToString(instanceValue){ - return instanceValue == null?null:toString_40(instanceValue); -} - -function $convertNonPositiveIntegerToString(instanceValue){ - return instanceValue == null?null:toString_40(instanceValue); -} - -function $createBase64Binary(literal){ - var value_0; - if (literal == null) - return null; - value_0 = decode_0(normalize(literal, true)); - if (value_0 == null) { - throw toJs(new InvalidDatatypeValueException("Invalid base64Binary value: '" + literal + "'")); - } - return value_0; -} - -function $createDoubleObject(literal){ - var ch_0, length_0, normalizedLiteral, suffixlength; - if (literal == null) { - return null; - } - else { - normalizedLiteral = normalize(literal, true); - suffixlength = 'INF'.length; - if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { - length_0 = normalizedLiteral.length; - if (length_0 == 4) { - ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); - if (ch_0 == 43) { - return DOUBLE_POSITIVE_INFINITY; - } - else if (ch_0 == 45) { - return DOUBLE_NEGATIVE_INFINITY; - } - } - else if (length_0 == 3) { - return DOUBLE_POSITIVE_INFINITY; - } - } - return __parseAndValidateDouble(normalizedLiteral); - } -} - -function $createENTITIESBase(literal){ - var item_0, item$array, item$index, item$max, result; - if (literal == null) - return null; - result = new ArrayList; - for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, normalize(item_0, true)); - } - return result; -} - -function $createFloatObject(literal){ - var ch_0, length_0, normalizedLiteral, suffixlength; - if (literal == null) { - return null; - } - else { - normalizedLiteral = normalize(literal, true); - suffixlength = 'INF'.length; - if ($equals_5(normalizedLiteral.substr(normalizedLiteral.length - suffixlength, suffixlength), 'INF')) { - length_0 = normalizedLiteral.length; - if (length_0 == 4) { - ch_0 = (checkCriticalStringElementIndex(0, normalizedLiteral.length) , normalizedLiteral.charCodeAt(0)); - if (ch_0 == 43) { - return FLOAT_POSITIVE_INFINITY; - } - else if (ch_0 == 45) { - return FLOAT_NEGATIVE_INFINITY; - } - } - else if (length_0 == 3) { - return FLOAT_POSITIVE_INFINITY; - } - } - return new Float_0(normalizedLiteral); - } -} - -function $createHexBinary(literal){ - var value_0; - if (literal == null) - return null; - value_0 = decode_1(normalize(literal, true)); - if (value_0 == null) { - throw toJs(new InvalidDatatypeValueException("Invalid hexBinary value: '" + literal + "'")); - } - return value_0; -} - -function $createIDREFSBase(literal){ - var item_0, item$array, item$index, item$max, result; - if (literal == null) - return null; - result = new ArrayList; - for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, normalize(item_0, true)); - } - return result; -} - -function $createNMTOKENSBase(literal){ - var item_0, item$array, item$index, item$max, result; - if (literal == null) - return null; - result = new ArrayList; - for (item$array = $split_5(literal) , item$index = 0 , item$max = item$array.length; item$index < item$max; ++item$index) { - item_0 = item$array[item$index]; - $add_3(result, normalize(item_0, true)); - } - return result; -} - -function $createNonNegativeIntegerFromString(initialValue){ - var result; - return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); -} - -function $createNonPositiveIntegerFromString(initialValue){ - var result; - return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); -} - -function XMLTypeFactoryImpl(){ -} - -function init_5(){ - $clinit_XMLTypeFactoryImpl(); - var exception, theXMLTypeFactory; - try { - theXMLTypeFactory = castTo($getEFactory(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 2024); - if (theXMLTypeFactory) { - return theXMLTypeFactory; - } - } - catch ($e0) { - $e0 = toJava($e0); - if (instanceOf($e0, 102)) { - exception = $e0; - $log_3(($clinit_EcorePlugin() , exception)); - } - else - throw toJs($e0); - } - return new XMLTypeFactoryImpl; -} - -defineClass(1919, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1, 2024:1}, XMLTypeFactoryImpl); -_.convertToString = function convertToString_3(eDataType, instanceValue){ - switch (eDataType.getClassifierID()) { - case 7: - case 8: - case 9: - case 10: - case 16: - case 22: - case 23: - case 24: - case 25: - case 26: - case 32: - case 33: - case 34: - case 36: - case 37: - case 44: - case 45: - case 50: - case 51: - case 53: - case 55: - case 56: - case 57: - case 58: - case 60: - case 61: - case 4: - return instanceValue == null?null:toString_40(instanceValue); - case 19: - case 28: - case 29: - case 35: - case 38: - case 39: - case 41: - case 46: - case 52: - case 54: - case 5: - return castToString(instanceValue); - case 6: - return $convertBase64Binary(castTo(instanceValue, 190)); - case 12: - case 47: - case 49: - case 11: - return $convertToString(this, eDataType, instanceValue); - case 13: - return instanceValue == null?null:$toPlainString(castTo(instanceValue, 240)); - case 15: - case 14: - return instanceValue == null?null:$convertDouble($doubleValue(castToDouble(instanceValue))); - case 17: - return $convertENTITIESBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - case 18: - return $convertENTITIESBaseToString(instanceValue); - case 21: - case 20: - return instanceValue == null?null:$convertFloat(castTo(instanceValue, 155).value_0); - case 27: - return $convertHexBinary(castTo(instanceValue, 190)); - case 30: - return $convertIDREFSBase(($clinit_XMLTypePackage$Literals() , castTo(instanceValue, 15))); - case 31: - return $convertIDREFSBase(castTo(instanceValue, 15)); - case 40: - return $convertNonPositiveIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - case 42: - return $convertNMTOKENSBaseToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - case 43: - return $convertNMTOKENSBaseToString(instanceValue); - case 59: - case 48: - return $convertNonNegativeIntegerToString(($clinit_XMLTypePackage$Literals() , instanceValue)); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -_.create_3 = function create_43(eClass){ - var anyType, ePackage, processingInstruction, simpleAnyType, xmlTypeDocumentRoot; - switch (eClass.metaObjectID == -1 && (eClass.metaObjectID = (ePackage = $getEPackage(eClass) , ePackage?$indexOf_6(ePackage.getEClassifiers(), eClass):-1)) , eClass.metaObjectID) { - case 0: - return anyType = new AnyTypeImpl , anyType; - case 1: - return processingInstruction = new ProcessingInstructionImpl , processingInstruction; - case 2: - return simpleAnyType = new SimpleAnyTypeImpl , simpleAnyType; - case 3: - return xmlTypeDocumentRoot = new XMLTypeDocumentRootImpl , xmlTypeDocumentRoot; - default:throw toJs(new IllegalArgumentException_0("The class '" + eClass.name_0 + "' is not a valid classifier")); - } -} -; -_.createFromString = function createFromString_3(eDataType, initialValue){ - var result, result0, result1, result10, result11, result12, result13, result14, result2, result3, result4, result5, result6, result7, result8, result9; - switch (eDataType.getClassifierID()) { - case 5: - case 52: - case 4: - return initialValue; - case 6: - return $createBase64Binary(initialValue); - case 8: - case 7: - return initialValue == null?null:$booleanValueOf_0(initialValue); - case 9: - return initialValue == null?null:valueOf_2(__parseAndValidateInt((result0 = normalize(initialValue, true) , result0.length > 0 && (checkCriticalStringElementIndex(0, result0.length) , result0.charCodeAt(0) == 43)?result0.substr(1):result0), -128, 127) << 24 >> 24); - case 10: - return initialValue == null?null:valueOf_2(__parseAndValidateInt((result1 = normalize(initialValue, true) , result1.length > 0 && (checkCriticalStringElementIndex(0, result1.length) , result1.charCodeAt(0) == 43)?result1.substr(1):result1), -128, 127) << 24 >> 24); - case 11: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE), initialValue)); - case 12: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DATE_TIME), initialValue)); - case 13: - return initialValue == null?null:new BigDecimal_0(normalize(initialValue, true)); - case 15: - case 14: - return $createDoubleObject(initialValue); - case 16: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , DURATION), initialValue)); - case 17: - return $createENTITIESBase(($clinit_XMLTypePackage$Literals() , initialValue)); - case 18: - return $createENTITIESBase(initialValue); - case 28: - case 29: - case 35: - case 38: - case 39: - case 41: - case 54: - case 19: - return normalize(initialValue, true); - case 21: - case 20: - return $createFloatObject(initialValue); - case 22: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GDAY), initialValue)); - case 23: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH), initialValue)); - case 24: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GMONTH_DAY), initialValue)); - case 25: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR), initialValue)); - case 26: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , GYEAR_MONTH), initialValue)); - case 27: - return $createHexBinary(initialValue); - case 30: - return $createIDREFSBase(($clinit_XMLTypePackage$Literals() , initialValue)); - case 31: - return $createIDREFSBase(initialValue); - case 32: - return initialValue == null?null:valueOf_4(__parseAndValidateInt((result2 = normalize(initialValue, true) , result2.length > 0 && (checkCriticalStringElementIndex(0, result2.length) , result2.charCodeAt(0) == 43)?result2.substr(1):result2), $intern_42, $intern_0)); - case 33: - return initialValue == null?null:new BigInteger_4((result3 = normalize(initialValue, true) , result3.length > 0 && (checkCriticalStringElementIndex(0, result3.length) , result3.charCodeAt(0) == 43)?result3.substr(1):result3)); - case 34: - return initialValue == null?null:valueOf_4(__parseAndValidateInt((result4 = normalize(initialValue, true) , result4.length > 0 && (checkCriticalStringElementIndex(0, result4.length) , result4.charCodeAt(0) == 43)?result4.substr(1):result4), $intern_42, $intern_0)); - case 36: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result5 = normalize(initialValue, true) , result5.length > 0 && (checkCriticalStringElementIndex(0, result5.length) , result5.charCodeAt(0) == 43)?result5.substr(1):result5))); - case 37: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result6 = normalize(initialValue, true) , result6.length > 0 && (checkCriticalStringElementIndex(0, result6.length) , result6.charCodeAt(0) == 43)?result6.substr(1):result6))); - case 40: - return $createNonPositiveIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); - case 42: - return $createNMTOKENSBase(($clinit_XMLTypePackage$Literals() , initialValue)); - case 43: - return $createNMTOKENSBase(initialValue); - case 44: - return initialValue == null?null:new BigInteger_4((result7 = normalize(initialValue, true) , result7.length > 0 && (checkCriticalStringElementIndex(0, result7.length) , result7.charCodeAt(0) == 43)?result7.substr(1):result7)); - case 45: - return initialValue == null?null:new BigInteger_4((result8 = normalize(initialValue, true) , result8.length > 0 && (checkCriticalStringElementIndex(0, result8.length) , result8.charCodeAt(0) == 43)?result8.substr(1):result8)); - case 46: - return normalize(initialValue, false); - case 47: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , NOTATION), initialValue)); - case 59: - case 48: - return $createNonNegativeIntegerFromString(($clinit_XMLTypePackage$Literals() , initialValue)); - case 49: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , QNAME), initialValue)); - case 50: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result9 = normalize(initialValue, true) , result9.length > 0 && (checkCriticalStringElementIndex(0, result9.length) , result9.charCodeAt(0) == 43)?result9.substr(1):result9), $intern_161, 32767) << 16 >> 16); - case 51: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result10 = normalize(initialValue, true) , result10.length > 0 && (checkCriticalStringElementIndex(0, result10.length) , result10.charCodeAt(0) == 43)?result10.substr(1):result10), $intern_161, 32767) << 16 >> 16); - case 53: - return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , TIME), initialValue)); - case 55: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result11 = normalize(initialValue, true) , result11.length > 0 && (checkCriticalStringElementIndex(0, result11.length) , result11.charCodeAt(0) == 43)?result11.substr(1):result11), $intern_161, 32767) << 16 >> 16); - case 56: - return initialValue == null?null:valueOf_6(__parseAndValidateInt((result12 = normalize(initialValue, true) , result12.length > 0 && (checkCriticalStringElementIndex(0, result12.length) , result12.charCodeAt(0) == 43)?result12.substr(1):result12), $intern_161, 32767) << 16 >> 16); - case 57: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result13 = normalize(initialValue, true) , result13.length > 0 && (checkCriticalStringElementIndex(0, result13.length) , result13.charCodeAt(0) == 43)?result13.substr(1):result13))); - case 58: - return initialValue == null?null:valueOf_5(__parseAndValidateLong((result14 = normalize(initialValue, true) , result14.length > 0 && (checkCriticalStringElementIndex(0, result14.length) , result14.charCodeAt(0) == 43)?result14.substr(1):result14))); - case 60: - return initialValue == null?null:valueOf_4(__parseAndValidateInt((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result), $intern_42, $intern_0)); - case 61: - return initialValue == null?null:valueOf_4(__parseAndValidateInt(normalize(initialValue, true), $intern_42, $intern_0)); - default:throw toJs(new IllegalArgumentException_0("The datatype '" + eDataType.getName() + "' is not a valid classifier")); - } -} -; -var DOUBLE_NEGATIVE_INFINITY, DOUBLE_POSITIVE_INFINITY, FLOAT_NEGATIVE_INFINITY, FLOAT_POSITIVE_INFINITY; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypeFactoryImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypeFactoryImpl', 1919); -function $$init_13(this$static){ - this$static.anyTypeEClass = null; - this$static.processingInstructionEClass = null; - this$static.simpleAnyTypeEClass = null; - this$static.xmlTypeDocumentRootEClass = null; - this$static.anySimpleTypeEDataType = null; - this$static.anyURIEDataType = null; - this$static.base64BinaryEDataType = null; - this$static.booleanEDataType = null; - this$static.booleanObjectEDataType = null; - this$static.decimalEDataType = null; - this$static.integerEDataType = null; - this$static.intObjectEDataType = null; - this$static.longEDataType = null; - this$static.longObjectEDataType = null; - this$static.intEDataType = null; - this$static.shortEDataType = null; - this$static.shortObjectEDataType = null; - this$static.byteEDataType = null; - this$static.byteObjectEDataType = null; - this$static.dateEDataType = null; - this$static.dateTimeEDataType = null; - this$static.stringEDataType = null; - this$static.doubleEDataType = null; - this$static.doubleObjectEDataType = null; - this$static.durationEDataType = null; - this$static.entitiesBaseEDataType = null; - this$static.normalizedStringEDataType = null; - this$static.tokenEDataType = null; - this$static.nameEDataType = null; - this$static.ncNameEDataType = null; - this$static.entityEDataType = null; - this$static.entitiesEDataType = null; - this$static.floatEDataType = null; - this$static.floatObjectEDataType = null; - this$static.gDayEDataType = null; - this$static.gMonthEDataType = null; - this$static.gMonthDayEDataType = null; - this$static.gYearEDataType = null; - this$static.gYearMonthEDataType = null; - this$static.hexBinaryEDataType = null; - this$static.idEDataType = null; - this$static.idrefEDataType = null; - this$static.idrefsBaseEDataType = null; - this$static.idrefsEDataType = null; - this$static.languageEDataType = null; - this$static.nonPositiveIntegerEDataType = null; - this$static.negativeIntegerEDataType = null; - this$static.nmtokenEDataType = null; - this$static.nmtokensBaseEDataType = null; - this$static.nmtokensEDataType = null; - this$static.nonNegativeIntegerEDataType = null; - this$static.notationEDataType = null; - this$static.positiveIntegerEDataType = null; - this$static.qNameEDataType = null; - this$static.timeEDataType = null; - this$static.unsignedLongEDataType = null; - this$static.unsignedIntEDataType = null; - this$static.unsignedIntObjectEDataType = null; - this$static.unsignedShortEDataType = null; - this$static.unsignedShortObjectEDataType = null; - this$static.unsignedByteEDataType = null; - this$static.unsignedByteObjectEDataType = null; - this$static.isCreated = false; - this$static.isInitialized = false; -} - -function $createExtendedMetaDataAnnotations_0(this$static){ - $addAnnotation(this$static.anySimpleTypeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anySimpleType'])); - $addAnnotation(this$static.anyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyType', 'kind', 'mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'wildcards', '##any', 'name', ':1', 'processing', 'lax'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attributeWildcard', 'wildcards', '##any', 'name', ':2', 'processing', 'lax'])); - $addAnnotation(this$static.anyURIEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'anyURI', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.base64BinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'base64Binary', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.booleanEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.booleanObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'boolean:Object', 'baseType', 'boolean'])); - $addAnnotation(this$static.byteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte'])); - $addAnnotation(this$static.byteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'byte:Object', 'baseType', 'byte'])); - $addAnnotation(this$static.dateEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'date', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.dateTimeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'dateTime', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.decimalEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'decimal', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.doubleEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.doubleObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'double:Object', 'baseType', 'double'])); - $addAnnotation(this$static.durationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'duration', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.entitiesEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES', 'baseType', 'ENTITIES_._base', 'minLength', '1'])); - $addAnnotation(this$static.entitiesBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITIES_._base', 'itemType', 'ENTITY'])); - $addAnnotation(this$static.entityEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ENTITY', 'baseType', 'NCName'])); - $addAnnotation(this$static.floatEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.floatObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'float:Object', 'baseType', 'float'])); - $addAnnotation(this$static.gDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gDay', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonth', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gMonthDayEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gMonthDay', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gYearEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYear', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.gYearMonthEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'gYearMonth', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.hexBinaryEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'hexBinary', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.idEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'ID', 'baseType', 'NCName'])); - $addAnnotation(this$static.idrefEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREF', 'baseType', 'NCName'])); - $addAnnotation(this$static.idrefsEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS', 'baseType', 'IDREFS_._base', 'minLength', '1'])); - $addAnnotation(this$static.idrefsBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'IDREFS_._base', 'itemType', 'IDREF'])); - $addAnnotation(this$static.intEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int'])); - $addAnnotation(this$static.integerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'integer'])); - $addAnnotation(this$static.intObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'int:Object', 'baseType', 'int'])); - $addAnnotation(this$static.languageEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'language', 'baseType', 'token', 'pattern', '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*'])); - $addAnnotation(this$static.longEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long'])); - $addAnnotation(this$static.longObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'long:Object', 'baseType', 'long'])); - $addAnnotation(this$static.nameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'Name', 'baseType', 'token', 'pattern', '\\i\\c*'])); - $addAnnotation(this$static.ncNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NCName', 'baseType', 'Name', 'pattern', '[\\i-[:]][\\c-[:]]*'])); - $addAnnotation(this$static.negativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'negativeInteger', 'baseType', 'nonPositiveInteger', 'maxInclusive', '-1'])); - $addAnnotation(this$static.nmtokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKEN', 'baseType', 'token', 'pattern', '\\c+'])); - $addAnnotation(this$static.nmtokensEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS', 'baseType', 'NMTOKENS_._base', 'minLength', '1'])); - $addAnnotation(this$static.nmtokensBaseEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NMTOKENS_._base', 'itemType', 'NMTOKEN'])); - $addAnnotation(this$static.nonNegativeIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonNegativeInteger', 'baseType', 'integer', 'minInclusive', '0'])); - $addAnnotation(this$static.nonPositiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'nonPositiveInteger', 'baseType', 'integer', 'maxInclusive', '0'])); - $addAnnotation(this$static.normalizedStringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'normalizedString', 'baseType', 'string', 'whiteSpace', 'replace'])); - $addAnnotation(this$static.notationEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'NOTATION', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.positiveIntegerEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'positiveInteger', 'baseType', 'nonNegativeInteger', 'minInclusive', '1'])); - $addAnnotation(this$static.processingInstructionEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'processingInstruction_._type', 'kind', 'empty'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'data'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'target'])); - $addAnnotation(this$static.qNameEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'QName', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.shortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short'])); - $addAnnotation(this$static.shortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'short:Object', 'baseType', 'short'])); - $addAnnotation(this$static.simpleAnyTypeEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'simpleAnyType', 'kind', 'simple'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':3', 'kind', 'simple'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':4', 'kind', 'simple'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', ':5', 'kind', 'simple'])); - $addAnnotation(this$static.stringEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'string', 'whiteSpace', 'preserve'])); - $addAnnotation(this$static.timeEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'time', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.tokenEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'token', 'baseType', 'normalizedString', 'whiteSpace', 'collapse'])); - $addAnnotation(this$static.unsignedByteEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte', 'maxInclusive', '255', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedByteObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedByte:Object', 'baseType', 'unsignedByte'])); - $addAnnotation(this$static.unsignedIntEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt', 'maxInclusive', '4294967295', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedIntObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedInt:Object', 'baseType', 'unsignedInt'])); - $addAnnotation(this$static.unsignedLongEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedLong', 'baseType', 'nonNegativeInteger', 'maxInclusive', '18446744073709551615', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedShortEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort', 'maxInclusive', '65535', 'minInclusive', '0'])); - $addAnnotation(this$static.unsignedShortObjectEDataType, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', 'unsignedShort:Object', 'baseType', 'unsignedShort'])); - $addAnnotation(this$static.xmlTypeDocumentRootEClass, 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['name', '', 'kind', 'mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'elementWildcard', 'name', ':mixed'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xmlns:prefix'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'attribute', 'name', 'xsi:schemaLocation'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'cDATA', 'namespace', '##targetNamespace'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'comment', 'namespace', '##targetNamespace'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'processingInstruction', 'namespace', '##targetNamespace'])); - $addAnnotation(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData', stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['kind', 'element', 'name', 'text', 'namespace', '##targetNamespace'])); -} - -function $createPackageContents_1(this$static){ - if (this$static.isCreated) - return; - this$static.isCreated = true; - this$static.anyTypeEClass = $createEClass(this$static, 0); - $createEAttribute(this$static.anyTypeEClass, 0); - $createEAttribute(this$static.anyTypeEClass, 1); - $createEAttribute(this$static.anyTypeEClass, 2); - this$static.processingInstructionEClass = $createEClass(this$static, 1); - $createEAttribute(this$static.processingInstructionEClass, 0); - $createEAttribute(this$static.processingInstructionEClass, 1); - this$static.simpleAnyTypeEClass = $createEClass(this$static, 2); - $createEAttribute(this$static.simpleAnyTypeEClass, 3); - $createEAttribute(this$static.simpleAnyTypeEClass, 4); - $createEReference(this$static.simpleAnyTypeEClass, 5); - this$static.xmlTypeDocumentRootEClass = $createEClass(this$static, 3); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 0); - $createEReference(this$static.xmlTypeDocumentRootEClass, 1); - $createEReference(this$static.xmlTypeDocumentRootEClass, 2); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 3); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 4); - $createEReference(this$static.xmlTypeDocumentRootEClass, 5); - $createEAttribute(this$static.xmlTypeDocumentRootEClass, 6); - this$static.anySimpleTypeEDataType = $createEDataType(this$static, 4); - this$static.anyURIEDataType = $createEDataType(this$static, 5); - this$static.base64BinaryEDataType = $createEDataType(this$static, 6); - this$static.booleanEDataType = $createEDataType(this$static, 7); - this$static.booleanObjectEDataType = $createEDataType(this$static, 8); - this$static.byteEDataType = $createEDataType(this$static, 9); - this$static.byteObjectEDataType = $createEDataType(this$static, 10); - this$static.dateEDataType = $createEDataType(this$static, 11); - this$static.dateTimeEDataType = $createEDataType(this$static, 12); - this$static.decimalEDataType = $createEDataType(this$static, 13); - this$static.doubleEDataType = $createEDataType(this$static, 14); - this$static.doubleObjectEDataType = $createEDataType(this$static, 15); - this$static.durationEDataType = $createEDataType(this$static, 16); - this$static.entitiesEDataType = $createEDataType(this$static, 17); - this$static.entitiesBaseEDataType = $createEDataType(this$static, 18); - this$static.entityEDataType = $createEDataType(this$static, 19); - this$static.floatEDataType = $createEDataType(this$static, 20); - this$static.floatObjectEDataType = $createEDataType(this$static, 21); - this$static.gDayEDataType = $createEDataType(this$static, 22); - this$static.gMonthEDataType = $createEDataType(this$static, 23); - this$static.gMonthDayEDataType = $createEDataType(this$static, 24); - this$static.gYearEDataType = $createEDataType(this$static, 25); - this$static.gYearMonthEDataType = $createEDataType(this$static, 26); - this$static.hexBinaryEDataType = $createEDataType(this$static, 27); - this$static.idEDataType = $createEDataType(this$static, 28); - this$static.idrefEDataType = $createEDataType(this$static, 29); - this$static.idrefsEDataType = $createEDataType(this$static, 30); - this$static.idrefsBaseEDataType = $createEDataType(this$static, 31); - this$static.intEDataType = $createEDataType(this$static, 32); - this$static.integerEDataType = $createEDataType(this$static, 33); - this$static.intObjectEDataType = $createEDataType(this$static, 34); - this$static.languageEDataType = $createEDataType(this$static, 35); - this$static.longEDataType = $createEDataType(this$static, 36); - this$static.longObjectEDataType = $createEDataType(this$static, 37); - this$static.nameEDataType = $createEDataType(this$static, 38); - this$static.ncNameEDataType = $createEDataType(this$static, 39); - this$static.negativeIntegerEDataType = $createEDataType(this$static, 40); - this$static.nmtokenEDataType = $createEDataType(this$static, 41); - this$static.nmtokensEDataType = $createEDataType(this$static, 42); - this$static.nmtokensBaseEDataType = $createEDataType(this$static, 43); - this$static.nonNegativeIntegerEDataType = $createEDataType(this$static, 44); - this$static.nonPositiveIntegerEDataType = $createEDataType(this$static, 45); - this$static.normalizedStringEDataType = $createEDataType(this$static, 46); - this$static.notationEDataType = $createEDataType(this$static, 47); - this$static.positiveIntegerEDataType = $createEDataType(this$static, 48); - this$static.qNameEDataType = $createEDataType(this$static, 49); - this$static.shortEDataType = $createEDataType(this$static, 50); - this$static.shortObjectEDataType = $createEDataType(this$static, 51); - this$static.stringEDataType = $createEDataType(this$static, 52); - this$static.timeEDataType = $createEDataType(this$static, 53); - this$static.tokenEDataType = $createEDataType(this$static, 54); - this$static.unsignedByteEDataType = $createEDataType(this$static, 55); - this$static.unsignedByteObjectEDataType = $createEDataType(this$static, 56); - this$static.unsignedIntEDataType = $createEDataType(this$static, 57); - this$static.unsignedIntObjectEDataType = $createEDataType(this$static, 58); - this$static.unsignedLongEDataType = $createEDataType(this$static, 59); - this$static.unsignedShortEDataType = $createEDataType(this$static, 60); - this$static.unsignedShortObjectEDataType = $createEDataType(this$static, 61); -} - -function $initializePackageContents_1(this$static){ - var theXMLTypePackage_1; - if (this$static.isInitialized) - return; - this$static.isInitialized = true; - $setName(this$static, 'type'); - $setNsPrefix(this$static, 'ecore.xml.type'); - $setNsURI(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); - theXMLTypePackage_1 = castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); - $add_21($getESuperTypes(this$static.simpleAnyTypeEClass), this$static.anyTypeEClass); - $initEClass(this$static.anyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, 'AnyType', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 1), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'any', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, true, true, true, false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.anyTypeEClass), 2), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'anyAttribute', null, 0, -1, Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, false, false, true, false, false, false); - $initEClass(this$static.processingInstructionEClass, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, 'ProcessingInstruction', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 0), 34), this$static.stringEDataType, 'data', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.processingInstructionEClass), 1), 34), this$static.stringEDataType, 'target', null, 1, 1, Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, false, false, true, false, true, false); - $initEClass(this$static.simpleAnyTypeEClass, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, 'SimpleAnyType', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 0), 34), theXMLTypePackage_1.stringEDataType, 'rawValue', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 1), 34), theXMLTypePackage_1.anySimpleTypeEDataType, 'value', null, 0, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, true, true, true, false, true, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.simpleAnyTypeEClass), 2), 18), this$static.ecorePackage.eDataTypeEClass, null, 'instanceType', 1, 1, Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, false, false, true, false, false, false, false); - $initEClass(this$static.xmlTypeDocumentRootEClass, Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, 'XMLTypeDocumentRoot', false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 0), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, null, false, false, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xMLNSPrefixMap', 0, -1, null, true, false, true, true, false, false, false); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 2), 18), this$static.ecorePackage.eStringToStringMapEntryEClass, null, 'xSISchemaLocation', 0, -1, null, true, false, true, true, false, false, false); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 3), 34), this$static.stringEDataType, 'cDATA', null, 0, -2, null, true, true, true, false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), this$static.stringEDataType, 'comment', null, 0, -2, null, true, true, true, false, false, true); - $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), this$static.processingInstructionEClass, null, 'processingInstruction', 0, -2, null, true, true, true, true, false, false, true); - $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), this$static.stringEDataType, 'text', null, 0, -2, null, true, true, true, false, false, true); - $initEDataType(this$static.anySimpleTypeEDataType, Ljava_lang_Object_2_classLit, 'AnySimpleType', true); - $initEDataType(this$static.anyURIEDataType, Ljava_lang_String_2_classLit, 'AnyURI', true); - $initEDataType(this$static.base64BinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'Base64Binary', true); - $initEDataType(this$static.booleanEDataType, Z_classLit, 'Boolean', true); - $initEDataType(this$static.booleanObjectEDataType, Ljava_lang_Boolean_2_classLit, 'BooleanObject', true); - $initEDataType(this$static.byteEDataType, B_classLit, 'Byte', true); - $initEDataType(this$static.byteObjectEDataType, Ljava_lang_Byte_2_classLit, 'ByteObject', true); - $initEDataType(this$static.dateEDataType, Ljava_lang_String_2_classLit, 'Date', true); - $initEDataType(this$static.dateTimeEDataType, Ljava_lang_String_2_classLit, 'DateTime', true); - $initEDataType(this$static.decimalEDataType, Ljava_math_BigDecimal_2_classLit, 'Decimal', true); - $initEDataType(this$static.doubleEDataType, D_classLit, 'Double', true); - $initEDataType(this$static.doubleObjectEDataType, Ljava_lang_Double_2_classLit, 'DoubleObject', true); - $initEDataType(this$static.durationEDataType, Ljava_lang_String_2_classLit, 'Duration', true); - $initEDataType(this$static.entitiesEDataType, Ljava_util_List_2_classLit, 'ENTITIES', true); - $initEDataType(this$static.entitiesBaseEDataType, Ljava_util_List_2_classLit, 'ENTITIESBase', true); - $initEDataType(this$static.entityEDataType, Ljava_lang_String_2_classLit, 'ENTITY', true); - $initEDataType(this$static.floatEDataType, F_classLit, 'Float', true); - $initEDataType(this$static.floatObjectEDataType, Ljava_lang_Float_2_classLit, 'FloatObject', true); - $initEDataType(this$static.gDayEDataType, Ljava_lang_String_2_classLit, 'GDay', true); - $initEDataType(this$static.gMonthEDataType, Ljava_lang_String_2_classLit, 'GMonth', true); - $initEDataType(this$static.gMonthDayEDataType, Ljava_lang_String_2_classLit, 'GMonthDay', true); - $initEDataType(this$static.gYearEDataType, Ljava_lang_String_2_classLit, 'GYear', true); - $initEDataType(this$static.gYearMonthEDataType, Ljava_lang_String_2_classLit, 'GYearMonth', true); - $initEDataType(this$static.hexBinaryEDataType, getClassLiteralForArray(B_classLit, 1), 'HexBinary', true); - $initEDataType(this$static.idEDataType, Ljava_lang_String_2_classLit, 'ID', true); - $initEDataType(this$static.idrefEDataType, Ljava_lang_String_2_classLit, 'IDREF', true); - $initEDataType(this$static.idrefsEDataType, Ljava_util_List_2_classLit, 'IDREFS', true); - $initEDataType(this$static.idrefsBaseEDataType, Ljava_util_List_2_classLit, 'IDREFSBase', true); - $initEDataType(this$static.intEDataType, I_classLit, 'Int', true); - $initEDataType(this$static.integerEDataType, Ljava_math_BigInteger_2_classLit, 'Integer', true); - $initEDataType(this$static.intObjectEDataType, Ljava_lang_Integer_2_classLit, 'IntObject', true); - $initEDataType(this$static.languageEDataType, Ljava_lang_String_2_classLit, 'Language', true); - $initEDataType(this$static.longEDataType, J_classLit, 'Long', true); - $initEDataType(this$static.longObjectEDataType, Ljava_lang_Long_2_classLit, 'LongObject', true); - $initEDataType(this$static.nameEDataType, Ljava_lang_String_2_classLit, 'Name', true); - $initEDataType(this$static.ncNameEDataType, Ljava_lang_String_2_classLit, 'NCName', true); - $initEDataType(this$static.negativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NegativeInteger', true); - $initEDataType(this$static.nmtokenEDataType, Ljava_lang_String_2_classLit, 'NMTOKEN', true); - $initEDataType(this$static.nmtokensEDataType, Ljava_util_List_2_classLit, 'NMTOKENS', true); - $initEDataType(this$static.nmtokensBaseEDataType, Ljava_util_List_2_classLit, 'NMTOKENSBase', true); - $initEDataType(this$static.nonNegativeIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonNegativeInteger', true); - $initEDataType(this$static.nonPositiveIntegerEDataType, Ljava_math_BigInteger_2_classLit, 'NonPositiveInteger', true); - $initEDataType(this$static.normalizedStringEDataType, Ljava_lang_String_2_classLit, 'NormalizedString', true); - $initEDataType(this$static.notationEDataType, Ljava_lang_String_2_classLit, 'NOTATION', true); - $initEDataType(this$static.positiveIntegerEDataType, Ljava_lang_String_2_classLit, 'PositiveInteger', true); - $initEDataType(this$static.qNameEDataType, Ljava_lang_String_2_classLit, 'QName', true); - $initEDataType(this$static.shortEDataType, S_classLit, 'Short', true); - $initEDataType(this$static.shortObjectEDataType, Ljava_lang_Short_2_classLit, 'ShortObject', true); - $initEDataType(this$static.stringEDataType, Ljava_lang_String_2_classLit, 'String', true); - $initEDataType(this$static.timeEDataType, Ljava_lang_String_2_classLit, 'Time', true); - $initEDataType(this$static.tokenEDataType, Ljava_lang_String_2_classLit, 'Token', true); - $initEDataType(this$static.unsignedByteEDataType, S_classLit, 'UnsignedByte', true); - $initEDataType(this$static.unsignedByteObjectEDataType, Ljava_lang_Short_2_classLit, 'UnsignedByteObject', true); - $initEDataType(this$static.unsignedIntEDataType, J_classLit, 'UnsignedInt', true); - $initEDataType(this$static.unsignedIntObjectEDataType, Ljava_lang_Long_2_classLit, 'UnsignedIntObject', true); - $initEDataType(this$static.unsignedLongEDataType, Ljava_math_BigInteger_2_classLit, 'UnsignedLong', true); - $initEDataType(this$static.unsignedShortEDataType, I_classLit, 'UnsignedShort', true); - $initEDataType(this$static.unsignedShortObjectEDataType, Ljava_lang_Integer_2_classLit, 'UnsignedShortObject', true); - $createResource(this$static, 'http://www.eclipse.org/emf/2003/XMLType'); - $createExtendedMetaDataAnnotations_0(this$static); -} - -function XMLTypePackageImpl(){ - EPackageImpl_0.call(this, 'http://www.eclipse.org/emf/2003/XMLType', ($clinit_XMLTypeFactory() , eINSTANCE_3)); - $$init_13(this); -} - -function init_6(){ - var theXMLTypePackage; - if (isInited_1) - return castTo($getEPackage_0(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 1945); - initializeRegistryHelpers(); - theXMLTypePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 586)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType'):new XMLTypePackageImpl, 586); - isInited_1 = true; - $createPackageContents_1(theXMLTypePackage); - $initializePackageContents_1(theXMLTypePackage); - $put_6(($clinit_EValidator$Registry() , INSTANCE_8), theXMLTypePackage, new XMLTypePackageImpl$1); - $freeze_0(theXMLTypePackage); - $putStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType', theXMLTypePackage); - return theXMLTypePackage; -} - -function initializeRegistryHelpers(){ - register_0(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, new XMLTypePackageImpl$2); - register_0(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, new XMLTypePackageImpl$3); - register_0(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, new XMLTypePackageImpl$4); - register_0(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, new XMLTypePackageImpl$5); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$6); - register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$7); - register_0(Ljava_lang_Boolean_2_classLit, new XMLTypePackageImpl$8); - register_0(Ljava_lang_Byte_2_classLit, new XMLTypePackageImpl$9); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$10); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$11); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$12); - register_0(Ljava_lang_Double_2_classLit, new XMLTypePackageImpl$13); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$14); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$15); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$16); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$17); - register_0(Ljava_lang_Float_2_classLit, new XMLTypePackageImpl$18); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$19); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$20); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$21); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$22); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$23); - register_0(getClassLiteralForArray(B_classLit, 1), new XMLTypePackageImpl$24); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$25); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$26); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$27); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$28); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$29); - register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$30); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$31); - register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$32); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$33); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$34); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$35); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$36); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$37); - register_0(Ljava_util_List_2_classLit, new XMLTypePackageImpl$38); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$39); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$40); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$41); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$42); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$43); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$44); - register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$45); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$46); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$47); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$48); - register_0(Ljava_lang_Short_2_classLit, new XMLTypePackageImpl$49); - register_0(Ljava_lang_Long_2_classLit, new XMLTypePackageImpl$50); - register_0(Ljava_lang_String_2_classLit, new XMLTypePackageImpl$51); - register_0(Ljava_lang_Integer_2_classLit, new XMLTypePackageImpl$52); -} - -defineClass(586, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1, 1945:1, 586:1}, XMLTypePackageImpl); -_.isCreated = false; -_.isInitialized = false; -var isInited_1 = false; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl', 586); -function XMLTypePackageImpl$1(){ -} - -defineClass(1852, 1, {837:1}, XMLTypePackageImpl$1); -_.getEValidator = function getEValidator_0(){ - return $clinit_XMLTypeValidator() , INSTANCE_12; -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/1', 1852); -function XMLTypePackageImpl$10(){ -} - -defineClass(1861, 1, $intern_162, XMLTypePackageImpl$10); -_.isInstance = function isInstance_50(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_42(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/10', 1861); -function XMLTypePackageImpl$11(){ -} - -defineClass(1862, 1, $intern_162, XMLTypePackageImpl$11); -_.isInstance = function isInstance_51(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_43(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/11', 1862); -function XMLTypePackageImpl$12(){ -} - -defineClass(1863, 1, $intern_162, XMLTypePackageImpl$12); -_.isInstance = function isInstance_52(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_44(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/12', 1863); -function XMLTypePackageImpl$13(){ -} - -defineClass(1864, 1, $intern_162, XMLTypePackageImpl$13); -_.isInstance = function isInstance_53(instance){ - return instanceOfDouble(instance); -} -; -_.newArrayInstance = function newArrayInstance_45(size_0){ - return initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, size_0, 7, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/13', 1864); -function XMLTypePackageImpl$14(){ -} - -defineClass(1865, 1, $intern_162, XMLTypePackageImpl$14); -_.isInstance = function isInstance_54(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_46(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/14', 1865); -function XMLTypePackageImpl$15(){ -} - -defineClass(1866, 1, $intern_162, XMLTypePackageImpl$15); -_.isInstance = function isInstance_55(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_47(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/15', 1866); -function XMLTypePackageImpl$16(){ -} - -defineClass(1867, 1, $intern_162, XMLTypePackageImpl$16); -_.isInstance = function isInstance_56(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_48(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/16', 1867); -function XMLTypePackageImpl$17(){ -} - -defineClass(1868, 1, $intern_162, XMLTypePackageImpl$17); -_.isInstance = function isInstance_57(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_49(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/17', 1868); -function XMLTypePackageImpl$18(){ -} - -defineClass(1869, 1, $intern_162, XMLTypePackageImpl$18); -_.isInstance = function isInstance_58(instance){ - return instanceOf(instance, 155); -} -; -_.newArrayInstance = function newArrayInstance_50(size_0){ - return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/18', 1869); -function XMLTypePackageImpl$19(){ -} - -defineClass(1870, 1, $intern_162, XMLTypePackageImpl$19); -_.isInstance = function isInstance_59(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_51(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/19', 1870); -function XMLTypePackageImpl$2(){ -} - -defineClass(1853, 1, $intern_162, XMLTypePackageImpl$2); -_.isInstance = function isInstance_60(instance){ - return instanceOf(instance, 843); -} -; -_.newArrayInstance = function newArrayInstance_52(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, $intern_2, 843, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/2', 1853); -function XMLTypePackageImpl$20(){ -} - -defineClass(1871, 1, $intern_162, XMLTypePackageImpl$20); -_.isInstance = function isInstance_61(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_53(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/20', 1871); -function XMLTypePackageImpl$21(){ -} - -defineClass(1872, 1, $intern_162, XMLTypePackageImpl$21); -_.isInstance = function isInstance_62(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_54(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/21', 1872); -function XMLTypePackageImpl$22(){ -} - -defineClass(1873, 1, $intern_162, XMLTypePackageImpl$22); -_.isInstance = function isInstance_63(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_55(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/22', 1873); -function XMLTypePackageImpl$23(){ -} - -defineClass(1874, 1, $intern_162, XMLTypePackageImpl$23); -_.isInstance = function isInstance_64(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_56(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/23', 1874); -function XMLTypePackageImpl$24(){ -} - -defineClass(1875, 1, $intern_162, XMLTypePackageImpl$24); -_.isInstance = function isInstance_65(instance){ - return instanceOf(instance, 190); -} -; -_.newArrayInstance = function newArrayInstance_57(size_0){ - return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/24', 1875); -function XMLTypePackageImpl$25(){ -} - -defineClass(1876, 1, $intern_162, XMLTypePackageImpl$25); -_.isInstance = function isInstance_66(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_58(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/25', 1876); -function XMLTypePackageImpl$26(){ -} - -defineClass(1877, 1, $intern_162, XMLTypePackageImpl$26); -_.isInstance = function isInstance_67(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_59(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/26', 1877); -function XMLTypePackageImpl$27(){ -} - -defineClass(1878, 1, $intern_162, XMLTypePackageImpl$27); -_.isInstance = function isInstance_68(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_60(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/27', 1878); -function XMLTypePackageImpl$28(){ -} - -defineClass(1879, 1, $intern_162, XMLTypePackageImpl$28); -_.isInstance = function isInstance_69(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_61(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/28', 1879); -function XMLTypePackageImpl$29(){ -} - -defineClass(1880, 1, $intern_162, XMLTypePackageImpl$29); -_.isInstance = function isInstance_70(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_62(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/29', 1880); -function XMLTypePackageImpl$3(){ -} - -defineClass(1854, 1, $intern_162, XMLTypePackageImpl$3); -_.isInstance = function isInstance_71(instance){ - return instanceOf(instance, 667); -} -; -_.newArrayInstance = function newArrayInstance_63(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, $intern_2, 2021, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/3', 1854); -function XMLTypePackageImpl$30(){ -} - -defineClass(1881, 1, $intern_162, XMLTypePackageImpl$30); -_.isInstance = function isInstance_72(instance){ - return instanceOf(instance, 19); -} -; -_.newArrayInstance = function newArrayInstance_64(size_0){ - return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/30', 1881); -function XMLTypePackageImpl$31(){ -} - -defineClass(1882, 1, $intern_162, XMLTypePackageImpl$31); -_.isInstance = function isInstance_73(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_65(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/31', 1882); -function XMLTypePackageImpl$32(){ -} - -defineClass(1883, 1, $intern_162, XMLTypePackageImpl$32); -_.isInstance = function isInstance_74(instance){ - return instanceOf(instance, 162); -} -; -_.newArrayInstance = function newArrayInstance_66(size_0){ - return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/32', 1883); -function XMLTypePackageImpl$33(){ -} - -defineClass(1884, 1, $intern_162, XMLTypePackageImpl$33); -_.isInstance = function isInstance_75(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_67(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/33', 1884); -function XMLTypePackageImpl$34(){ -} - -defineClass(1885, 1, $intern_162, XMLTypePackageImpl$34); -_.isInstance = function isInstance_76(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_68(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/34', 1885); -function XMLTypePackageImpl$35(){ -} - -defineClass(1886, 1, $intern_162, XMLTypePackageImpl$35); -_.isInstance = function isInstance_77(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_69(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/35', 1886); -function XMLTypePackageImpl$36(){ -} - -defineClass(1887, 1, $intern_162, XMLTypePackageImpl$36); -_.isInstance = function isInstance_78(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_70(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/36', 1887); -function XMLTypePackageImpl$37(){ -} - -defineClass(1888, 1, $intern_162, XMLTypePackageImpl$37); -_.isInstance = function isInstance_79(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_71(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/37', 1888); -function XMLTypePackageImpl$38(){ -} - -defineClass(1889, 1, $intern_162, XMLTypePackageImpl$38); -_.isInstance = function isInstance_80(instance){ - return instanceOf(instance, 15); -} -; -_.newArrayInstance = function newArrayInstance_72(size_0){ - return initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/38', 1889); -function XMLTypePackageImpl$39(){ -} - -defineClass(1890, 1, $intern_162, XMLTypePackageImpl$39); -_.isInstance = function isInstance_81(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_73(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/39', 1890); -function XMLTypePackageImpl$4(){ -} - -defineClass(1855, 1, $intern_162, XMLTypePackageImpl$4); -_.isInstance = function isInstance_82(instance){ - return instanceOf(instance, 668); -} -; -_.newArrayInstance = function newArrayInstance_74(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, $intern_2, 2022, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/4', 1855); -function XMLTypePackageImpl$40(){ -} - -defineClass(1891, 1, $intern_162, XMLTypePackageImpl$40); -_.isInstance = function isInstance_83(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_75(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/40', 1891); -function XMLTypePackageImpl$41(){ -} - -defineClass(1892, 1, $intern_162, XMLTypePackageImpl$41); -_.isInstance = function isInstance_84(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_76(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$41_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/41', 1892); -function XMLTypePackageImpl$42(){ -} - -defineClass(1893, 1, $intern_162, XMLTypePackageImpl$42); -_.isInstance = function isInstance_85(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_77(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/42', 1893); -function XMLTypePackageImpl$43(){ -} - -defineClass(1894, 1, $intern_162, XMLTypePackageImpl$43); -_.isInstance = function isInstance_86(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_78(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/43', 1894); -function XMLTypePackageImpl$44(){ -} - -defineClass(1895, 1, $intern_162, XMLTypePackageImpl$44); -_.isInstance = function isInstance_87(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_79(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/44', 1895); -function XMLTypePackageImpl$45(){ -} - -defineClass(1896, 1, $intern_162, XMLTypePackageImpl$45); -_.isInstance = function isInstance_88(instance){ - return instanceOf(instance, 184); -} -; -_.newArrayInstance = function newArrayInstance_80(size_0){ - return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$45_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/45', 1896); -function XMLTypePackageImpl$46(){ -} - -defineClass(1897, 1, $intern_162, XMLTypePackageImpl$46); -_.isInstance = function isInstance_89(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_81(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$46_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/46', 1897); -function XMLTypePackageImpl$47(){ -} - -defineClass(1898, 1, $intern_162, XMLTypePackageImpl$47); -_.isInstance = function isInstance_90(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_82(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$47_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/47', 1898); -function XMLTypePackageImpl$48(){ -} - -defineClass(1899, 1, $intern_162, XMLTypePackageImpl$48); -_.isInstance = function isInstance_91(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_83(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$48_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/48', 1899); -function XMLTypePackageImpl$49(){ -} - -defineClass($intern_47, 1, $intern_162, XMLTypePackageImpl$49); -_.isInstance = function isInstance_92(instance){ - return instanceOf(instance, 184); -} -; -_.newArrayInstance = function newArrayInstance_84(size_0){ - return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$49_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/49', $intern_47); -function XMLTypePackageImpl$5(){ -} - -defineClass(1856, 1, $intern_162, XMLTypePackageImpl$5); -_.isInstance = function isInstance_93(instance){ - return instanceOf(instance, 669); -} -; -_.newArrayInstance = function newArrayInstance_85(size_0){ - return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, $intern_2, 2023, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/5', 1856); -function XMLTypePackageImpl$50(){ -} - -defineClass(1901, 1, $intern_162, XMLTypePackageImpl$50); -_.isInstance = function isInstance_94(instance){ - return instanceOf(instance, 162); -} -; -_.newArrayInstance = function newArrayInstance_86(size_0){ - return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$50_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/50', 1901); -function XMLTypePackageImpl$51(){ -} - -defineClass(1902, 1, $intern_162, XMLTypePackageImpl$51); -_.isInstance = function isInstance_95(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_87(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$51_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/51', 1902); -function XMLTypePackageImpl$52(){ -} - -defineClass(1903, 1, $intern_162, XMLTypePackageImpl$52); -_.isInstance = function isInstance_96(instance){ - return instanceOf(instance, 19); -} -; -_.newArrayInstance = function newArrayInstance_88(size_0){ - return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$52_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/52', 1903); -function XMLTypePackageImpl$6(){ -} - -defineClass(1857, 1, $intern_162, XMLTypePackageImpl$6); -_.isInstance = function isInstance_97(instance){ - return instanceOfString(instance); -} -; -_.newArrayInstance = function newArrayInstance_89(size_0){ - return initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, size_0, 6, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/6', 1857); -function XMLTypePackageImpl$7(){ -} - -defineClass(1858, 1, $intern_162, XMLTypePackageImpl$7); -_.isInstance = function isInstance_98(instance){ - return instanceOf(instance, 190); -} -; -_.newArrayInstance = function newArrayInstance_90(size_0){ - return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/7', 1858); -function XMLTypePackageImpl$8(){ -} - -defineClass(1859, 1, $intern_162, XMLTypePackageImpl$8); -_.isInstance = function isInstance_99(instance){ - return instanceOfBoolean(instance); -} -; -_.newArrayInstance = function newArrayInstance_91(size_0){ - return initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, size_0, 8, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/8', 1859); -function XMLTypePackageImpl$9(){ -} - -defineClass(1860, 1, $intern_162, XMLTypePackageImpl$9); -_.isInstance = function isInstance_100(instance){ - return instanceOf(instance, 217); -} -; -_.newArrayInstance = function newArrayInstance_92(size_0){ - return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); -} -; -var Lorg_eclipse_emf_ecore_xml_type_impl_XMLTypePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.impl', 'XMLTypePackageImpl/9', 1860); -function $clinit_DataValue$Base64(){ - $clinit_DataValue$Base64 = emptyMethod; - var i, i0, i1, i2, i3, i4, i5, j, j0; - base64Alphabet = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); - lookUpBase64Alphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 64, 15, 1); - for (i0 = 0; i0 < 255; i0++) { - base64Alphabet[i0] = -1; - } - for (i1 = 90; i1 >= 65; i1--) { - base64Alphabet[i1] = i1 - 65 << 24 >> 24; - } - for (i2 = 122; i2 >= 97; i2--) { - base64Alphabet[i2] = i2 - 97 + 26 << 24 >> 24; - } - for (i3 = 57; i3 >= 48; i3--) { - base64Alphabet[i3] = i3 - 48 + 52 << 24 >> 24; - } - base64Alphabet[43] = 62; - base64Alphabet[47] = 63; - for (i4 = 0; i4 <= 25; i4++) - lookUpBase64Alphabet[i4] = 65 + i4 & $intern_46; - for (i5 = 26 , j0 = 0; i5 <= 51; ++i5 , j0++) - lookUpBase64Alphabet[i5] = 97 + j0 & $intern_46; - for (i = 52 , j = 0; i <= 61; ++i , j++) - lookUpBase64Alphabet[i] = 48 + j & $intern_46; - lookUpBase64Alphabet[62] = 43; - lookUpBase64Alphabet[63] = 47; -} - -function decode_0(encoded){ - $clinit_DataValue$Base64(); - var b1, b2, b3, b4, base64Data, d1, d2, d3, d4, dataIndex, decodedData, encodedIndex, i, len, numberQuadruple, tmp; - if (encoded == null) - return null; - base64Data = $toCharArray(encoded); - len = removeWhiteSpace(base64Data); - if (len % 4 != 0) { - return null; - } - numberQuadruple = len / 4 | 0; - if (numberQuadruple == 0) - return initUnidimensionalArray(B_classLit, $intern_136, 25, 0, 15, 1); - decodedData = null; - b1 = 0; - b2 = 0; - b3 = 0; - b4 = 0; - d1 = 0; - d2 = 0; - d3 = 0; - d4 = 0; - i = 0; - encodedIndex = 0; - dataIndex = 0; - decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, numberQuadruple * 3, 15, 1); - for (; i < numberQuadruple - 1; i++) { - if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++]) || !isData(d3 = base64Data[dataIndex++]) || !isData(d4 = base64Data[dataIndex++])) - return null; - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; - decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; - decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; - } - if (!isData(d1 = base64Data[dataIndex++]) || !isData(d2 = base64Data[dataIndex++])) { - return null; - } - b1 = base64Alphabet[d1]; - b2 = base64Alphabet[d2]; - d3 = base64Data[dataIndex++]; - d4 = base64Data[dataIndex++]; - if (base64Alphabet[d3] == -1 || base64Alphabet[d4] == -1) { - if (d3 == 61 && d4 == 61) { - if ((b2 & 15) != 0) - return null; - tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 1, 15, 1); - arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex] = (b1 << 2 | b2 >> 4) << 24 >> 24; - return tmp; - } - else if (d3 != 61 && d4 == 61) { - b3 = base64Alphabet[d3]; - if ((b3 & 3) != 0) - return null; - tmp = initUnidimensionalArray(B_classLit, $intern_136, 25, i * 3 + 2, 15, 1); - arraycopy(decodedData, 0, tmp, 0, i * 3); - tmp[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; - tmp[encodedIndex] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; - return tmp; - } - else { - return null; - } - } - else { - b3 = base64Alphabet[d3]; - b4 = base64Alphabet[d4]; - decodedData[encodedIndex++] = (b1 << 2 | b2 >> 4) << 24 >> 24; - decodedData[encodedIndex++] = ((b2 & 15) << 4 | b3 >> 2 & 15) << 24 >> 24; - decodedData[encodedIndex++] = (b3 << 6 | b4) << 24 >> 24; - } - return decodedData; -} - -function encode(binaryData){ - $clinit_DataValue$Base64(); - var b1, b2, b3, dataIndex, encodedData, encodedIndex, fewerThan24bits, i, k, l, lengthDataBits, numberQuartet, numberTriplets, val1, val2, val3; - if (binaryData == null) - return null; - lengthDataBits = binaryData.length * 8; - if (lengthDataBits == 0) { - return ''; - } - fewerThan24bits = lengthDataBits % 24; - numberTriplets = lengthDataBits / 24 | 0; - numberQuartet = fewerThan24bits != 0?numberTriplets + 1:numberTriplets; - encodedData = null; - encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, numberQuartet * 4, 15, 1); - k = 0; - l = 0; - b1 = 0; - b2 = 0; - b3 = 0; - encodedIndex = 0; - dataIndex = 0; - for (i = 0; i < numberTriplets; i++) { - b1 = binaryData[dataIndex++]; - b2 = binaryData[dataIndex++]; - b3 = binaryData[dataIndex++]; - l = (b2 & 15) << 24 >> 24; - k = (b1 & 3) << 24 >> 24; - val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; - val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; - val3 = (b3 & -128) == 0?b3 >> 6 << 24 >> 24:(b3 >> 6 ^ 252) << 24 >> 24; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2 | val3]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 63]; - } - if (fewerThan24bits == 8) { - b1 = binaryData[dataIndex]; - k = (b1 & 3) << 24 >> 24; - val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4]; - encodedData[encodedIndex++] = 61; - encodedData[encodedIndex++] = 61; - } - else if (fewerThan24bits == 16) { - b1 = binaryData[dataIndex]; - b2 = binaryData[dataIndex + 1]; - l = (b2 & 15) << 24 >> 24; - k = (b1 & 3) << 24 >> 24; - val1 = (b1 & -128) == 0?b1 >> 2 << 24 >> 24:(b1 >> 2 ^ 192) << 24 >> 24; - val2 = (b2 & -128) == 0?b2 >> 4 << 24 >> 24:(b2 >> 4 ^ 240) << 24 >> 24; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val1]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | k << 4]; - encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2]; - encodedData[encodedIndex++] = 61; - } - return valueOf_9(encodedData, 0, encodedData.length); -} - -function isData(octect){ - return base64Alphabet[octect] != -1; -} - -function removeWhiteSpace(data_0){ - var i, len, newSize; - newSize = 0; - len = data_0.length; - for (i = 0; i < len; i++) { - data_0[i] == 32 || data_0[i] == 13 || data_0[i] == 10 || data_0[i] == 9 || (data_0[newSize++] = data_0[i]); - } - return newSize; -} - -var base64Alphabet, lookUpBase64Alphabet; -function $clinit_DataValue$HexBin(){ - $clinit_DataValue$HexBin = emptyMethod; - var i, i0, i1, i2, i3, i4; - hexNumberTable = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); - lookUpHexAlphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 16, 15, 1); - for (i0 = 0; i0 < 255; i0++) { - hexNumberTable[i0] = -1; - } - for (i1 = 57; i1 >= 48; i1--) { - hexNumberTable[i1] = i1 - 48 << 24 >> 24; - } - for (i2 = 70; i2 >= 65; i2--) { - hexNumberTable[i2] = i2 - 65 + 10 << 24 >> 24; - } - for (i3 = 102; i3 >= 97; i3--) { - hexNumberTable[i3] = i3 - 97 + 10 << 24 >> 24; - } - for (i4 = 0; i4 < 10; i4++) - lookUpHexAlphabet[i4] = 48 + i4 & $intern_46; - for (i = 10; i <= 15; i++) - lookUpHexAlphabet[i] = 65 + i - 10 & $intern_46; -} - -function decode_1(encoded){ - $clinit_DataValue$HexBin(); - var binaryData, decodedData, i, lengthData, lengthDecode, temp1, temp2; - if (encoded == null) - return null; - lengthData = encoded.length; - if (lengthData % 2 != 0) - return null; - binaryData = $toCharArray(encoded); - lengthDecode = lengthData / 2 | 0; - decodedData = initUnidimensionalArray(B_classLit, $intern_136, 25, lengthDecode, 15, 1); - for (i = 0; i < lengthDecode; i++) { - temp1 = hexNumberTable[binaryData[i * 2]]; - if (temp1 == -1) - return null; - temp2 = hexNumberTable[binaryData[i * 2 + 1]]; - if (temp2 == -1) - return null; - decodedData[i] = (temp1 << 4 | temp2) << 24 >> 24; - } - return decodedData; -} - -function encode_0(binaryData){ - $clinit_DataValue$HexBin(); - var encodedData, i, lengthData, lengthEncode, temp; - if (binaryData == null) - return null; - lengthData = binaryData.length; - lengthEncode = lengthData * 2; - encodedData = initUnidimensionalArray(C_classLit, $intern_44, 25, lengthEncode, 15, 1); - for (i = 0; i < lengthData; i++) { - temp = binaryData[i]; - temp < 0 && (temp += 256); - encodedData[i * 2] = lookUpHexAlphabet[temp >> 4]; - encodedData[i * 2 + 1] = lookUpHexAlphabet[temp & 15]; - } - return valueOf_9(encodedData, 0, encodedData.length); -} - -var hexNumberTable, lookUpHexAlphabet; -function $clinit_DataValue$XMLChar(){ - $clinit_DataValue$XMLChar = emptyMethod; - CHARS = initUnidimensionalArray(B_classLit, $intern_136, 25, $intern_63, 15, 1); - CHARS[9] = 35; - CHARS[10] = 19; - CHARS[13] = 19; - CHARS[32] = 51; - CHARS[33] = 49; - CHARS[34] = 33; - fill_0(CHARS, 35, 38, 49); - CHARS[38] = 1; - fill_0(CHARS, 39, 45, 49); - fill_0(CHARS, 45, 47, -71); - CHARS[47] = 49; - fill_0(CHARS, 48, 58, -71); - CHARS[58] = 61; - CHARS[59] = 49; - CHARS[60] = 1; - CHARS[61] = 49; - CHARS[62] = 33; - fill_0(CHARS, 63, 65, 49); - fill_0(CHARS, 65, 91, -3); - fill_0(CHARS, 91, 93, 33); - CHARS[93] = 1; - CHARS[94] = 33; - CHARS[95] = -3; - CHARS[96] = 33; - fill_0(CHARS, 97, 123, -3); - fill_0(CHARS, 123, 183, 33); - CHARS[183] = -87; - fill_0(CHARS, 184, 192, 33); - fill_0(CHARS, 192, 215, -19); - CHARS[215] = 33; - fill_0(CHARS, 216, 247, -19); - CHARS[247] = 33; - fill_0(CHARS, 248, 306, -19); - fill_0(CHARS, 306, 308, 33); - fill_0(CHARS, 308, 319, -19); - fill_0(CHARS, 319, 321, 33); - fill_0(CHARS, 321, 329, -19); - CHARS[329] = 33; - fill_0(CHARS, 330, 383, -19); - CHARS[383] = 33; - fill_0(CHARS, 384, 452, -19); - fill_0(CHARS, 452, 461, 33); - fill_0(CHARS, 461, 497, -19); - fill_0(CHARS, 497, 500, 33); - fill_0(CHARS, 500, 502, -19); - fill_0(CHARS, 502, 506, 33); - fill_0(CHARS, 506, 536, -19); - fill_0(CHARS, 536, 592, 33); - fill_0(CHARS, 592, 681, -19); - fill_0(CHARS, 681, 699, 33); - fill_0(CHARS, 699, 706, -19); - fill_0(CHARS, 706, 720, 33); - fill_0(CHARS, 720, 722, -87); - fill_0(CHARS, 722, 768, 33); - fill_0(CHARS, 768, 838, -87); - fill_0(CHARS, 838, 864, 33); - fill_0(CHARS, 864, 866, -87); - fill_0(CHARS, 866, 902, 33); - CHARS[902] = -19; - CHARS[903] = -87; - fill_0(CHARS, 904, 907, -19); - CHARS[907] = 33; - CHARS[908] = -19; - CHARS[909] = 33; - fill_0(CHARS, 910, 930, -19); - CHARS[930] = 33; - fill_0(CHARS, 931, 975, -19); - CHARS[975] = 33; - fill_0(CHARS, 976, 983, -19); - fill_0(CHARS, 983, 986, 33); - CHARS[986] = -19; - CHARS[987] = 33; - CHARS[988] = -19; - CHARS[989] = 33; - CHARS[990] = -19; - CHARS[991] = 33; - CHARS[992] = -19; - CHARS[993] = 33; - fill_0(CHARS, 994, 1012, -19); - fill_0(CHARS, 1012, 1025, 33); - fill_0(CHARS, 1025, 1037, -19); - CHARS[1037] = 33; - fill_0(CHARS, 1038, 1104, -19); - CHARS[1104] = 33; - fill_0(CHARS, 1105, 1117, -19); - CHARS[1117] = 33; - fill_0(CHARS, 1118, 1154, -19); - CHARS[1154] = 33; - fill_0(CHARS, 1155, 1159, -87); - fill_0(CHARS, 1159, 1168, 33); - fill_0(CHARS, 1168, 1221, -19); - fill_0(CHARS, 1221, 1223, 33); - fill_0(CHARS, 1223, 1225, -19); - fill_0(CHARS, 1225, 1227, 33); - fill_0(CHARS, 1227, 1229, -19); - fill_0(CHARS, 1229, 1232, 33); - fill_0(CHARS, 1232, 1260, -19); - fill_0(CHARS, 1260, 1262, 33); - fill_0(CHARS, 1262, 1270, -19); - fill_0(CHARS, 1270, 1272, 33); - fill_0(CHARS, 1272, 1274, -19); - fill_0(CHARS, 1274, 1329, 33); - fill_0(CHARS, 1329, 1367, -19); - fill_0(CHARS, 1367, 1369, 33); - CHARS[1369] = -19; - fill_0(CHARS, 1370, 1377, 33); - fill_0(CHARS, 1377, 1415, -19); - fill_0(CHARS, 1415, 1425, 33); - fill_0(CHARS, 1425, 1442, -87); - CHARS[1442] = 33; - fill_0(CHARS, 1443, 1466, -87); - CHARS[1466] = 33; - fill_0(CHARS, 1467, 1470, -87); - CHARS[1470] = 33; - CHARS[1471] = -87; - CHARS[1472] = 33; - fill_0(CHARS, 1473, 1475, -87); - CHARS[1475] = 33; - CHARS[1476] = -87; - fill_0(CHARS, 1477, 1488, 33); - fill_0(CHARS, 1488, 1515, -19); - fill_0(CHARS, 1515, 1520, 33); - fill_0(CHARS, 1520, 1523, -19); - fill_0(CHARS, 1523, 1569, 33); - fill_0(CHARS, 1569, 1595, -19); - fill_0(CHARS, 1595, 1600, 33); - CHARS[1600] = -87; - fill_0(CHARS, 1601, 1611, -19); - fill_0(CHARS, 1611, 1619, -87); - fill_0(CHARS, 1619, 1632, 33); - fill_0(CHARS, 1632, 1642, -87); - fill_0(CHARS, 1642, 1648, 33); - CHARS[1648] = -87; - fill_0(CHARS, 1649, 1720, -19); - fill_0(CHARS, 1720, 1722, 33); - fill_0(CHARS, 1722, 1727, -19); - CHARS[1727] = 33; - fill_0(CHARS, 1728, 1743, -19); - CHARS[1743] = 33; - fill_0(CHARS, 1744, 1748, -19); - CHARS[1748] = 33; - CHARS[1749] = -19; - fill_0(CHARS, 1750, 1765, -87); - fill_0(CHARS, 1765, 1767, -19); - fill_0(CHARS, 1767, 1769, -87); - CHARS[1769] = 33; - fill_0(CHARS, 1770, 1774, -87); - fill_0(CHARS, 1774, 1776, 33); - fill_0(CHARS, 1776, 1786, -87); - fill_0(CHARS, 1786, 2305, 33); - fill_0(CHARS, 2305, 2308, -87); - CHARS[2308] = 33; - fill_0(CHARS, 2309, 2362, -19); - fill_0(CHARS, 2362, 2364, 33); - CHARS[2364] = -87; - CHARS[2365] = -19; - fill_0(CHARS, 2366, 2382, -87); - fill_0(CHARS, 2382, 2385, 33); - fill_0(CHARS, 2385, 2389, -87); - fill_0(CHARS, 2389, 2392, 33); - fill_0(CHARS, 2392, 2402, -19); - fill_0(CHARS, 2402, 2404, -87); - fill_0(CHARS, 2404, 2406, 33); - fill_0(CHARS, 2406, 2416, -87); - fill_0(CHARS, 2416, 2433, 33); - fill_0(CHARS, 2433, 2436, -87); - CHARS[2436] = 33; - fill_0(CHARS, 2437, 2445, -19); - fill_0(CHARS, 2445, 2447, 33); - fill_0(CHARS, 2447, 2449, -19); - fill_0(CHARS, 2449, 2451, 33); - fill_0(CHARS, 2451, 2473, -19); - CHARS[2473] = 33; - fill_0(CHARS, 2474, 2481, -19); - CHARS[2481] = 33; - CHARS[2482] = -19; - fill_0(CHARS, 2483, 2486, 33); - fill_0(CHARS, 2486, 2490, -19); - fill_0(CHARS, 2490, 2492, 33); - CHARS[2492] = -87; - CHARS[2493] = 33; - fill_0(CHARS, 2494, 2501, -87); - fill_0(CHARS, 2501, 2503, 33); - fill_0(CHARS, 2503, 2505, -87); - fill_0(CHARS, 2505, 2507, 33); - fill_0(CHARS, 2507, 2510, -87); - fill_0(CHARS, 2510, 2519, 33); - CHARS[2519] = -87; - fill_0(CHARS, 2520, 2524, 33); - fill_0(CHARS, 2524, 2526, -19); - CHARS[2526] = 33; - fill_0(CHARS, 2527, 2530, -19); - fill_0(CHARS, 2530, 2532, -87); - fill_0(CHARS, 2532, 2534, 33); - fill_0(CHARS, 2534, 2544, -87); - fill_0(CHARS, 2544, 2546, -19); - fill_0(CHARS, 2546, 2562, 33); - CHARS[2562] = -87; - fill_0(CHARS, 2563, 2565, 33); - fill_0(CHARS, 2565, 2571, -19); - fill_0(CHARS, 2571, 2575, 33); - fill_0(CHARS, 2575, 2577, -19); - fill_0(CHARS, 2577, 2579, 33); - fill_0(CHARS, 2579, 2601, -19); - CHARS[2601] = 33; - fill_0(CHARS, 2602, 2609, -19); - CHARS[2609] = 33; - fill_0(CHARS, 2610, 2612, -19); - CHARS[2612] = 33; - fill_0(CHARS, 2613, 2615, -19); - CHARS[2615] = 33; - fill_0(CHARS, 2616, 2618, -19); - fill_0(CHARS, 2618, 2620, 33); - CHARS[2620] = -87; - CHARS[2621] = 33; - fill_0(CHARS, 2622, 2627, -87); - fill_0(CHARS, 2627, 2631, 33); - fill_0(CHARS, 2631, 2633, -87); - fill_0(CHARS, 2633, 2635, 33); - fill_0(CHARS, 2635, 2638, -87); - fill_0(CHARS, 2638, 2649, 33); - fill_0(CHARS, 2649, 2653, -19); - CHARS[2653] = 33; - CHARS[2654] = -19; - fill_0(CHARS, 2655, 2662, 33); - fill_0(CHARS, 2662, 2674, -87); - fill_0(CHARS, 2674, 2677, -19); - fill_0(CHARS, 2677, 2689, 33); - fill_0(CHARS, 2689, 2692, -87); - CHARS[2692] = 33; - fill_0(CHARS, 2693, 2700, -19); - CHARS[2700] = 33; - CHARS[2701] = -19; - CHARS[2702] = 33; - fill_0(CHARS, 2703, 2706, -19); - CHARS[2706] = 33; - fill_0(CHARS, 2707, 2729, -19); - CHARS[2729] = 33; - fill_0(CHARS, 2730, 2737, -19); - CHARS[2737] = 33; - fill_0(CHARS, 2738, 2740, -19); - CHARS[2740] = 33; - fill_0(CHARS, 2741, 2746, -19); - fill_0(CHARS, 2746, 2748, 33); - CHARS[2748] = -87; - CHARS[2749] = -19; - fill_0(CHARS, 2750, 2758, -87); - CHARS[2758] = 33; - fill_0(CHARS, 2759, 2762, -87); - CHARS[2762] = 33; - fill_0(CHARS, 2763, 2766, -87); - fill_0(CHARS, 2766, 2784, 33); - CHARS[2784] = -19; - fill_0(CHARS, 2785, 2790, 33); - fill_0(CHARS, 2790, 2800, -87); - fill_0(CHARS, 2800, 2817, 33); - fill_0(CHARS, 2817, 2820, -87); - CHARS[2820] = 33; - fill_0(CHARS, 2821, 2829, -19); - fill_0(CHARS, 2829, 2831, 33); - fill_0(CHARS, 2831, 2833, -19); - fill_0(CHARS, 2833, 2835, 33); - fill_0(CHARS, 2835, 2857, -19); - CHARS[2857] = 33; - fill_0(CHARS, 2858, 2865, -19); - CHARS[2865] = 33; - fill_0(CHARS, 2866, 2868, -19); - fill_0(CHARS, 2868, 2870, 33); - fill_0(CHARS, 2870, 2874, -19); - fill_0(CHARS, 2874, 2876, 33); - CHARS[2876] = -87; - CHARS[2877] = -19; - fill_0(CHARS, 2878, 2884, -87); - fill_0(CHARS, 2884, 2887, 33); - fill_0(CHARS, 2887, 2889, -87); - fill_0(CHARS, 2889, 2891, 33); - fill_0(CHARS, 2891, 2894, -87); - fill_0(CHARS, 2894, 2902, 33); - fill_0(CHARS, 2902, 2904, -87); - fill_0(CHARS, 2904, 2908, 33); - fill_0(CHARS, 2908, 2910, -19); - CHARS[2910] = 33; - fill_0(CHARS, 2911, 2914, -19); - fill_0(CHARS, 2914, 2918, 33); - fill_0(CHARS, 2918, 2928, -87); - fill_0(CHARS, 2928, 2946, 33); - fill_0(CHARS, 2946, 2948, -87); - CHARS[2948] = 33; - fill_0(CHARS, 2949, 2955, -19); - fill_0(CHARS, 2955, 2958, 33); - fill_0(CHARS, 2958, 2961, -19); - CHARS[2961] = 33; - fill_0(CHARS, 2962, 2966, -19); - fill_0(CHARS, 2966, 2969, 33); - fill_0(CHARS, 2969, 2971, -19); - CHARS[2971] = 33; - CHARS[2972] = -19; - CHARS[2973] = 33; - fill_0(CHARS, 2974, 2976, -19); - fill_0(CHARS, 2976, 2979, 33); - fill_0(CHARS, 2979, 2981, -19); - fill_0(CHARS, 2981, 2984, 33); - fill_0(CHARS, 2984, 2987, -19); - fill_0(CHARS, 2987, 2990, 33); - fill_0(CHARS, 2990, 2998, -19); - CHARS[2998] = 33; - fill_0(CHARS, 2999, 3002, -19); - fill_0(CHARS, 3002, 3006, 33); - fill_0(CHARS, 3006, 3011, -87); - fill_0(CHARS, 3011, 3014, 33); - fill_0(CHARS, 3014, 3017, -87); - CHARS[3017] = 33; - fill_0(CHARS, 3018, 3022, -87); - fill_0(CHARS, 3022, 3031, 33); - CHARS[3031] = -87; - fill_0(CHARS, 3032, 3047, 33); - fill_0(CHARS, 3047, 3056, -87); - fill_0(CHARS, 3056, 3073, 33); - fill_0(CHARS, 3073, 3076, -87); - CHARS[3076] = 33; - fill_0(CHARS, 3077, 3085, -19); - CHARS[3085] = 33; - fill_0(CHARS, 3086, 3089, -19); - CHARS[3089] = 33; - fill_0(CHARS, 3090, 3113, -19); - CHARS[3113] = 33; - fill_0(CHARS, 3114, 3124, -19); - CHARS[3124] = 33; - fill_0(CHARS, 3125, 3130, -19); - fill_0(CHARS, 3130, 3134, 33); - fill_0(CHARS, 3134, 3141, -87); - CHARS[3141] = 33; - fill_0(CHARS, 3142, 3145, -87); - CHARS[3145] = 33; - fill_0(CHARS, 3146, 3150, -87); - fill_0(CHARS, 3150, 3157, 33); - fill_0(CHARS, 3157, 3159, -87); - fill_0(CHARS, 3159, 3168, 33); - fill_0(CHARS, 3168, 3170, -19); - fill_0(CHARS, 3170, 3174, 33); - fill_0(CHARS, 3174, 3184, -87); - fill_0(CHARS, 3184, 3202, 33); - fill_0(CHARS, 3202, 3204, -87); - CHARS[3204] = 33; - fill_0(CHARS, 3205, 3213, -19); - CHARS[3213] = 33; - fill_0(CHARS, 3214, 3217, -19); - CHARS[3217] = 33; - fill_0(CHARS, 3218, 3241, -19); - CHARS[3241] = 33; - fill_0(CHARS, 3242, 3252, -19); - CHARS[3252] = 33; - fill_0(CHARS, 3253, 3258, -19); - fill_0(CHARS, 3258, 3262, 33); - fill_0(CHARS, 3262, 3269, -87); - CHARS[3269] = 33; - fill_0(CHARS, 3270, 3273, -87); - CHARS[3273] = 33; - fill_0(CHARS, 3274, 3278, -87); - fill_0(CHARS, 3278, 3285, 33); - fill_0(CHARS, 3285, 3287, -87); - fill_0(CHARS, 3287, 3294, 33); - CHARS[3294] = -19; - CHARS[3295] = 33; - fill_0(CHARS, 3296, 3298, -19); - fill_0(CHARS, 3298, 3302, 33); - fill_0(CHARS, 3302, 3312, -87); - fill_0(CHARS, 3312, 3330, 33); - fill_0(CHARS, 3330, 3332, -87); - CHARS[3332] = 33; - fill_0(CHARS, 3333, 3341, -19); - CHARS[3341] = 33; - fill_0(CHARS, 3342, 3345, -19); - CHARS[3345] = 33; - fill_0(CHARS, 3346, 3369, -19); - CHARS[3369] = 33; - fill_0(CHARS, 3370, 3386, -19); - fill_0(CHARS, 3386, 3390, 33); - fill_0(CHARS, 3390, 3396, -87); - fill_0(CHARS, 3396, 3398, 33); - fill_0(CHARS, 3398, 3401, -87); - CHARS[3401] = 33; - fill_0(CHARS, 3402, 3406, -87); - fill_0(CHARS, 3406, 3415, 33); - CHARS[3415] = -87; - fill_0(CHARS, 3416, 3424, 33); - fill_0(CHARS, 3424, 3426, -19); - fill_0(CHARS, 3426, 3430, 33); - fill_0(CHARS, 3430, 3440, -87); - fill_0(CHARS, 3440, 3585, 33); - fill_0(CHARS, 3585, 3631, -19); - CHARS[3631] = 33; - CHARS[3632] = -19; - CHARS[3633] = -87; - fill_0(CHARS, 3634, 3636, -19); - fill_0(CHARS, 3636, 3643, -87); - fill_0(CHARS, 3643, 3648, 33); - fill_0(CHARS, 3648, 3654, -19); - fill_0(CHARS, 3654, 3663, -87); - CHARS[3663] = 33; - fill_0(CHARS, 3664, 3674, -87); - fill_0(CHARS, 3674, 3713, 33); - fill_0(CHARS, 3713, 3715, -19); - CHARS[3715] = 33; - CHARS[3716] = -19; - fill_0(CHARS, 3717, 3719, 33); - fill_0(CHARS, 3719, 3721, -19); - CHARS[3721] = 33; - CHARS[3722] = -19; - fill_0(CHARS, 3723, 3725, 33); - CHARS[3725] = -19; - fill_0(CHARS, 3726, 3732, 33); - fill_0(CHARS, 3732, 3736, -19); - CHARS[3736] = 33; - fill_0(CHARS, 3737, 3744, -19); - CHARS[3744] = 33; - fill_0(CHARS, 3745, 3748, -19); - CHARS[3748] = 33; - CHARS[3749] = -19; - CHARS[3750] = 33; - CHARS[3751] = -19; - fill_0(CHARS, 3752, 3754, 33); - fill_0(CHARS, 3754, 3756, -19); - CHARS[3756] = 33; - fill_0(CHARS, 3757, 3759, -19); - CHARS[3759] = 33; - CHARS[3760] = -19; - CHARS[3761] = -87; - fill_0(CHARS, 3762, 3764, -19); - fill_0(CHARS, 3764, 3770, -87); - CHARS[3770] = 33; - fill_0(CHARS, 3771, 3773, -87); - CHARS[3773] = -19; - fill_0(CHARS, 3774, 3776, 33); - fill_0(CHARS, 3776, 3781, -19); - CHARS[3781] = 33; - CHARS[3782] = -87; - CHARS[3783] = 33; - fill_0(CHARS, 3784, 3790, -87); - fill_0(CHARS, 3790, 3792, 33); - fill_0(CHARS, 3792, 3802, -87); - fill_0(CHARS, 3802, 3864, 33); - fill_0(CHARS, 3864, 3866, -87); - fill_0(CHARS, 3866, 3872, 33); - fill_0(CHARS, 3872, 3882, -87); - fill_0(CHARS, 3882, 3893, 33); - CHARS[3893] = -87; - CHARS[3894] = 33; - CHARS[3895] = -87; - CHARS[3896] = 33; - CHARS[3897] = -87; - fill_0(CHARS, 3898, 3902, 33); - fill_0(CHARS, 3902, 3904, -87); - fill_0(CHARS, 3904, 3912, -19); - CHARS[3912] = 33; - fill_0(CHARS, 3913, 3946, -19); - fill_0(CHARS, 3946, 3953, 33); - fill_0(CHARS, 3953, 3973, -87); - CHARS[3973] = 33; - fill_0(CHARS, 3974, 3980, -87); - fill_0(CHARS, 3980, 3984, 33); - fill_0(CHARS, 3984, 3990, -87); - CHARS[3990] = 33; - CHARS[3991] = -87; - CHARS[3992] = 33; - fill_0(CHARS, 3993, 4014, -87); - fill_0(CHARS, 4014, 4017, 33); - fill_0(CHARS, 4017, 4024, -87); - CHARS[4024] = 33; - CHARS[4025] = -87; - fill_0(CHARS, 4026, 4256, 33); - fill_0(CHARS, 4256, 4294, -19); - fill_0(CHARS, 4294, 4304, 33); - fill_0(CHARS, 4304, 4343, -19); - fill_0(CHARS, 4343, 4352, 33); - CHARS[4352] = -19; - CHARS[4353] = 33; - fill_0(CHARS, 4354, 4356, -19); - CHARS[4356] = 33; - fill_0(CHARS, 4357, 4360, -19); - CHARS[4360] = 33; - CHARS[4361] = -19; - CHARS[4362] = 33; - fill_0(CHARS, 4363, 4365, -19); - CHARS[4365] = 33; - fill_0(CHARS, 4366, 4371, -19); - fill_0(CHARS, 4371, 4412, 33); - CHARS[4412] = -19; - CHARS[4413] = 33; - CHARS[4414] = -19; - CHARS[4415] = 33; - CHARS[4416] = -19; - fill_0(CHARS, 4417, 4428, 33); - CHARS[4428] = -19; - CHARS[4429] = 33; - CHARS[4430] = -19; - CHARS[4431] = 33; - CHARS[4432] = -19; - fill_0(CHARS, 4433, 4436, 33); - fill_0(CHARS, 4436, 4438, -19); - fill_0(CHARS, 4438, 4441, 33); - CHARS[4441] = -19; - fill_0(CHARS, 4442, 4447, 33); - fill_0(CHARS, 4447, 4450, -19); - CHARS[4450] = 33; - CHARS[4451] = -19; - CHARS[4452] = 33; - CHARS[4453] = -19; - CHARS[4454] = 33; - CHARS[4455] = -19; - CHARS[4456] = 33; - CHARS[4457] = -19; - fill_0(CHARS, 4458, 4461, 33); - fill_0(CHARS, 4461, 4463, -19); - fill_0(CHARS, 4463, 4466, 33); - fill_0(CHARS, 4466, 4468, -19); - CHARS[4468] = 33; - CHARS[4469] = -19; - fill_0(CHARS, 4470, 4510, 33); - CHARS[4510] = -19; - fill_0(CHARS, 4511, 4520, 33); - CHARS[4520] = -19; - fill_0(CHARS, 4521, 4523, 33); - CHARS[4523] = -19; - fill_0(CHARS, 4524, 4526, 33); - fill_0(CHARS, 4526, 4528, -19); - fill_0(CHARS, 4528, 4535, 33); - fill_0(CHARS, 4535, 4537, -19); - CHARS[4537] = 33; - CHARS[4538] = -19; - CHARS[4539] = 33; - fill_0(CHARS, 4540, 4547, -19); - fill_0(CHARS, 4547, 4587, 33); - CHARS[4587] = -19; - fill_0(CHARS, 4588, 4592, 33); - CHARS[4592] = -19; - fill_0(CHARS, 4593, 4601, 33); - CHARS[4601] = -19; - fill_0(CHARS, 4602, 7680, 33); - fill_0(CHARS, 7680, 7836, -19); - fill_0(CHARS, 7836, 7840, 33); - fill_0(CHARS, 7840, 7930, -19); - fill_0(CHARS, 7930, 7936, 33); - fill_0(CHARS, 7936, 7958, -19); - fill_0(CHARS, 7958, 7960, 33); - fill_0(CHARS, 7960, 7966, -19); - fill_0(CHARS, 7966, 7968, 33); - fill_0(CHARS, 7968, 8006, -19); - fill_0(CHARS, 8006, 8008, 33); - fill_0(CHARS, 8008, 8014, -19); - fill_0(CHARS, 8014, 8016, 33); - fill_0(CHARS, 8016, 8024, -19); - CHARS[8024] = 33; - CHARS[8025] = -19; - CHARS[8026] = 33; - CHARS[8027] = -19; - CHARS[8028] = 33; - CHARS[8029] = -19; - CHARS[8030] = 33; - fill_0(CHARS, 8031, 8062, -19); - fill_0(CHARS, 8062, 8064, 33); - fill_0(CHARS, 8064, 8117, -19); - CHARS[8117] = 33; - fill_0(CHARS, 8118, 8125, -19); - CHARS[8125] = 33; - CHARS[8126] = -19; - fill_0(CHARS, 8127, 8130, 33); - fill_0(CHARS, 8130, 8133, -19); - CHARS[8133] = 33; - fill_0(CHARS, 8134, 8141, -19); - fill_0(CHARS, 8141, 8144, 33); - fill_0(CHARS, 8144, 8148, -19); - fill_0(CHARS, 8148, 8150, 33); - fill_0(CHARS, 8150, 8156, -19); - fill_0(CHARS, 8156, 8160, 33); - fill_0(CHARS, 8160, 8173, -19); - fill_0(CHARS, 8173, 8178, 33); - fill_0(CHARS, 8178, 8181, -19); - CHARS[8181] = 33; - fill_0(CHARS, 8182, 8189, -19); - fill_0(CHARS, 8189, 8400, 33); - fill_0(CHARS, 8400, 8413, -87); - fill_0(CHARS, 8413, 8417, 33); - CHARS[8417] = -87; - fill_0(CHARS, 8418, 8486, 33); - CHARS[8486] = -19; - fill_0(CHARS, 8487, 8490, 33); - fill_0(CHARS, 8490, 8492, -19); - fill_0(CHARS, 8492, 8494, 33); - CHARS[8494] = -19; - fill_0(CHARS, 8495, 8576, 33); - fill_0(CHARS, 8576, 8579, -19); - fill_0(CHARS, 8579, 12293, 33); - CHARS[12293] = -87; - CHARS[12294] = 33; - CHARS[12295] = -19; - fill_0(CHARS, 12296, 12321, 33); - fill_0(CHARS, 12321, 12330, -19); - fill_0(CHARS, 12330, 12336, -87); - CHARS[12336] = 33; - fill_0(CHARS, 12337, 12342, -87); - fill_0(CHARS, 12342, 12353, 33); - fill_0(CHARS, 12353, 12437, -19); - fill_0(CHARS, 12437, 12441, 33); - fill_0(CHARS, 12441, 12443, -87); - fill_0(CHARS, 12443, 12445, 33); - fill_0(CHARS, 12445, 12447, -87); - fill_0(CHARS, 12447, 12449, 33); - fill_0(CHARS, 12449, 12539, -19); - CHARS[12539] = 33; - fill_0(CHARS, 12540, 12543, -87); - fill_0(CHARS, 12543, 12549, 33); - fill_0(CHARS, 12549, 12589, -19); - fill_0(CHARS, 12589, 19968, 33); - fill_0(CHARS, 19968, 40870, -19); - fill_0(CHARS, 40870, 44032, 33); - fill_0(CHARS, 44032, 55204, -19); - fill_0(CHARS, 55204, $intern_64, 33); - fill_0(CHARS, 57344, 65534, 33); -} - -var CHARS; -function RegEx$ParseException(mes){ - RuntimeException_0.call(this, mes); -} - -defineClass(50, 60, $intern_43, RegEx$ParseException); -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParseException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParseException', 50); -function $next_17(this$static){ - var ch_0, low, ret; - if (this$static.offset >= this$static.regexlen) { - this$static.chardata = -1; - this$static.nexttoken = 1; - return; - } - ch_0 = $charAt(this$static.regex, this$static.offset++); - this$static.chardata = ch_0; - if (this$static.context == 1) { - switch (ch_0) { - case 92: - ret = 10; - if (this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - this$static.chardata = $charAt(this$static.regex, this$static.offset++); - break; - case 45: - if ((this$static.options_0 & 512) == 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 91) { - ++this$static.offset; - ret = 24; - } - else - ret = 0; - break; - case 91: - if ((this$static.options_0 & 512) != 512 && this$static.offset < this$static.regexlen && $charAt(this$static.regex, this$static.offset) == 58) { - ++this$static.offset; - ret = 20; - break; - } - - default:if ((ch_0 & 64512) == $intern_64 && this$static.offset < this$static.regexlen) { - low = $charAt(this$static.regex, this$static.offset); - if ((low & 64512) == 56320) { - this$static.chardata = $intern_63 + (ch_0 - $intern_64 << 10) + low - 56320; - ++this$static.offset; - } - } - - ret = 0; - } - this$static.nexttoken = ret; - return; - } - switch (ch_0) { - case 124: - ret = 2; - break; - case 42: - ret = 3; - break; - case 43: - ret = 4; - break; - case 63: - ret = 5; - break; - case 41: - ret = 7; - break; - case 46: - ret = 8; - break; - case 91: - ret = 9; - break; - case 94: - ret = 11; - break; - case 36: - ret = 12; - break; - case 40: - ret = 6; - if (this$static.offset >= this$static.regexlen) - break; - if ($charAt(this$static.regex, this$static.offset) != 63) - break; - if (++this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); - ch_0 = $charAt(this$static.regex, this$static.offset++); - switch (ch_0) { - case 58: - ret = 13; - break; - case 61: - ret = 14; - break; - case 33: - ret = 15; - break; - case 91: - ret = 19; - break; - case 62: - ret = 18; - break; - case 60: - if (this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); - ch_0 = $charAt(this$static.regex, this$static.offset++); - if (ch_0 == 61) { - ret = 16; - } - else if (ch_0 == 33) { - ret = 17; - } - else - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.3')))); - break; - case 35: - while (this$static.offset < this$static.regexlen) { - ch_0 = $charAt(this$static.regex, this$static.offset++); - if (ch_0 == 41) - break; - } - - if (ch_0 != 41) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.4')))); - ret = 21; - break; - default:if (ch_0 == 45 || 97 <= ch_0 && ch_0 <= 122 || 65 <= ch_0 && ch_0 <= 90) { - --this$static.offset; - ret = 22; - break; - } - else if (ch_0 == 40) { - ret = 23; - break; - } - - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.2')))); - } - - break; - case 92: - ret = 10; - if (this$static.offset >= this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - this$static.chardata = $charAt(this$static.regex, this$static.offset++); - break; - default:ret = 0; - } - this$static.nexttoken = ret; -} - -function $parse_3(this$static, regex, options){ - var i, position, ret; - this$static.options_0 = options; - this$static.offset = 0; - this$static.context = 0; - this$static.parennumber = 1; - this$static.regex = regex; - (this$static.options_0 & 16) == 16 && (this$static.regex = stripExtendedComment(this$static.regex)); - this$static.regexlen = this$static.regex.length; - $next_17(this$static); - ret = $parseRegex(this$static); - if (this$static.offset != this$static.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.1')))); - if (this$static.references) { - for (i = 0; i < this$static.references.arrayList.array.length; i++) { - position = castTo($elementAt(this$static.references, i), 584); - if (this$static.parennumber <= position.refNumber) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.2')))); - } - this$static.references.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); - } - return ret; -} - -function $parseAtom(this$static){ - var ch_0, ch2, high, sur, tok; - ch_0 = this$static.nexttoken; - tok = null; - switch (ch_0) { - case 6: - return this$static.processParen(); - case 13: - return this$static.processParen2(); - case 23: - return this$static.processCondition(); - case 22: - return this$static.processModifiers(); - case 18: - return this$static.processIndependent(); - case 8: - $next_17(this$static); - tok = ($clinit_RegEx$Token() , token_dot); - break; - case 9: - return this$static.parseCharacterClass(true); - case 19: - return this$static.parseSetOperations(); - case 10: - switch (this$static.chardata) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - tok = this$static.getTokenForShorthand(this$static.chardata); - $next_17(this$static); - return tok; - case 101: - case 102: - case 110: - case 114: - case 116: - case 117: - case 118: - case 120: - { - ch2 = this$static.decodeEscaped(); - ch2 < $intern_63?(tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2))):(tok = createString_0(decomposeToSurrogates(ch2))); - } - - break; - case 99: - return this$static.processBacksolidus_c(); - case 67: - return this$static.processBacksolidus_C(); - case 105: - return this$static.processBacksolidus_i(); - case 73: - return this$static.processBacksolidus_I(); - case 103: - return this$static.processBacksolidus_g(); - case 88: - return this$static.processBacksolidus_X(); - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - return this$static.processBackreference(); - case 80: - case 112: - tok = $processBacksolidus_pP(this$static, this$static.chardata); - if (!tok) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); - break; - default:tok = createChar(this$static.chardata); - } - - $next_17(this$static); - break; - case 0: - if (this$static.chardata == 93 || this$static.chardata == 123 || this$static.chardata == 125) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); - tok = createChar(this$static.chardata); - high = this$static.chardata; - $next_17(this$static); - if ((high & 64512) == $intern_64 && this$static.nexttoken == 0 && (this$static.chardata & 64512) == 56320) { - sur = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); - sur[0] = high & $intern_46; - sur[1] = this$static.chardata & $intern_46; - tok = createParen(createString_0(valueOf_9(sur, 0, sur.length)), 0); - $next_17(this$static); - } - - break; - default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.4')))); - } - return tok; -} - -function $parseFactor(this$static){ - var ch_0, max_0, min_0, off, tok; - ch_0 = this$static.nexttoken; - switch (ch_0) { - case 11: - return this$static.processCaret(); - case 12: - return this$static.processDollar(); - case 14: - return this$static.processLookahead(); - case 15: - return this$static.processNegativelookahead(); - case 16: - return this$static.processLookbehind(); - case 17: - return this$static.processNegativelookbehind(); - case 21: - $next_17(this$static); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; - case 10: - switch (this$static.chardata) { - case 65: - return this$static.processBacksolidus_A(); - case 90: - return this$static.processBacksolidus_Z(); - case 122: - return this$static.processBacksolidus_z(); - case 98: - return this$static.processBacksolidus_b(); - case 66: - return this$static.processBacksolidus_B(); - case 60: - return this$static.processBacksolidus_lt(); - case 62: - return this$static.processBacksolidus_gt(); - } - - } - tok = $parseAtom(this$static); - ch_0 = this$static.nexttoken; - switch (ch_0) { - case 3: - return this$static.processStar(tok); - case 4: - return this$static.processPlus(tok); - case 5: - return this$static.processQuestion(tok); - case 0: - if (this$static.chardata == 123 && this$static.offset < this$static.regexlen) { - off = this$static.offset; - min_0 = 0; - max_0 = -1; - if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - min_0 = ch_0 - 48; - while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - min_0 = min_0 * 10 + ch_0 - 48; - if (min_0 < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); - } - } - else { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.1')))); - } - max_0 = min_0; - if (ch_0 == 44) { - if (off >= this$static.regexlen) { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.3')))); - } - else if ((ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - max_0 = ch_0 - 48; - while (off < this$static.regexlen && (ch_0 = $charAt(this$static.regex, off++)) >= 48 && ch_0 <= 57) { - max_0 = max_0 * 10 + ch_0 - 48; - if (max_0 < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.5')))); - } - if (min_0 > max_0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.4')))); - } - else { - max_0 = -1; - } - } - if (ch_0 != 125) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.quantifier.2')))); - if (this$static.checkQuestion(off)) { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok)); - this$static.offset = off + 1; - } - else { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok)); - this$static.offset = off; - } - tok.setMin(min_0); - tok.setMax(max_0); - $next_17(this$static); - } - - } - return tok; -} - -function $parseRegex(this$static){ - var parent_0, tok; - tok = $parseTerm(this$static); - parent_0 = null; - while (this$static.nexttoken == 2) { - $next_17(this$static); - if (!parent_0) { - parent_0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); - $addChild_0(parent_0, tok); - tok = parent_0; - } - tok.addChild($parseTerm(this$static)); - } - return tok; -} - -function $parseTerm(this$static){ - var ch_0, concat, tok; - ch_0 = this$static.nexttoken; - if (ch_0 == 2 || ch_0 == 7 || ch_0 == 1) { - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , token_empty; - } - else { - tok = $parseFactor(this$static); - concat = null; - while ((ch_0 = this$static.nexttoken) != 2 && ch_0 != 7 && ch_0 != 1) { - if (!concat) { - concat = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(1)); - $addChild_0(concat, tok); - tok = concat; - } - $addChild_0(concat, $parseFactor(this$static)); - } - return tok; - } -} - -function $processBacksolidus_pP(this$static, c){ - var nameend, namestart, pname, positive; - $next_17(this$static); - if (this$static.nexttoken != 0 || this$static.chardata != 123) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.2')))); - positive = c == 112; - namestart = this$static.offset; - nameend = $indexOf_0(this$static.regex, 125, namestart); - if (nameend < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.3')))); - pname = $substring_1(this$static.regex, namestart, nameend); - this$static.offset = nameend + 1; - return getRange_1(pname, positive, (this$static.options_0 & 512) == 512); -} - -function RegEx$RegexParser(){ -} - -function hexChar(ch_0){ - if (ch_0 < 48) - return -1; - if (ch_0 > 102) - return -1; - if (ch_0 <= 57) - return ch_0 - 48; - if (ch_0 < 65) - return -1; - if (ch_0 <= 70) - return ch_0 - 65 + 10; - if (ch_0 < 97) - return -1; - return ch_0 - 97 + 10; -} - -defineClass(820, 1, {}, RegEx$RegexParser); -_.checkQuestion = function checkQuestion(off){ - return off < this.regexlen && $charAt(this.regex, off) == 63; -} -; -_.decodeEscaped = function decodeEscaped(){ - var c, uv, uv0, v1, v10; - if (this.nexttoken != 10) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - c = this.chardata; - switch (c) { - case 101: - c = 27; - break; - case 102: - c = 12; - break; - case 110: - c = 10; - break; - case 114: - c = 13; - break; - case 116: - c = 9; - break; - case 120: - $next_17(this); - if (this.nexttoken != 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - if (this.chardata == 123) { - v10 = 0; - uv0 = 0; - do { - $next_17(this); - if (this.nexttoken != 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - if ((v10 = hexChar(this.chardata)) < 0) - break; - if (uv0 > uv0 * 16) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.2')))); - uv0 = uv0 * 16 + v10; - } - while (true); - if (this.chardata != 125) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.3')))); - if (uv0 > $intern_165) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.4')))); - c = uv0; - } - else { - v10 = 0; - if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv0 = v10; - $next_17(this); - if (this.nexttoken != 0 || (v10 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv0 = uv0 * 16 + v10; - c = uv0; - } - - break; - case 117: - v1 = 0; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - c = uv; - break; - case 118: - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - $next_17(this); - if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); - uv = uv * 16 + v1; - if (uv > $intern_165) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descappe.4')))); - c = uv; - break; - case 65: - case 90: - case 122: - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.5')))); - } - return c; -} -; -_.getTokenForShorthand = function getTokenForShorthand(ch_0){ - var number, tok; - switch (ch_0) { - case 100: - tok = (this.options_0 & 32) == 32?getRange_0('Nd', true):($clinit_RegEx$Token() , token_0to9); - break; - case 68: - tok = (this.options_0 & 32) == 32?getRange_0('Nd', false):($clinit_RegEx$Token() , token_not_0to9); - break; - case 119: - tok = (this.options_0 & 32) == 32?getRange_0('IsWord', true):($clinit_RegEx$Token() , token_wordchars); - break; - case 87: - tok = (this.options_0 & 32) == 32?getRange_0('IsWord', false):($clinit_RegEx$Token() , token_not_wordchars); - break; - case 115: - tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', true):($clinit_RegEx$Token() , token_spaces); - break; - case 83: - tok = (this.options_0 & 32) == 32?getRange_0('IsSpace', false):($clinit_RegEx$Token() , token_not_spaces); - break; - default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); - } - return tok; -} -; -_.parseCharacterClass = function parseCharacterClass(useNrange){ - var base, c, end, firstloop, name_0, nameend, positive, range, rangeend, tok, tok2, type_0; - this.context = 1; - $next_17(this); - base = null; - if (this.nexttoken == 0 && this.chardata == 94) { - $next_17(this); - if (useNrange) { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(5)); - } - else { - base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - $addRange(base, 0, $intern_165); - tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); - } - } - else { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - } - firstloop = true; - while ((type_0 = this.nexttoken) != 1) { - if (type_0 == 0 && this.chardata == 93 && !firstloop) - break; - firstloop = false; - c = this.chardata; - end = false; - if (type_0 == 10) { - switch (c) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - $mergeRanges(tok, this.getTokenForShorthand(c)); - end = true; - break; - case 105: - case 73: - case 99: - case 67: - c = this.processCIinCharacterClass(tok, c); - c < 0 && (end = true); - break; - case 112: - case 80: - tok2 = $processBacksolidus_pP(this, c); - if (!tok2) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); - $mergeRanges(tok, tok2); - end = true; - break; - default:c = this.decodeEscaped(); - } - } - else if (type_0 == 20) { - nameend = $indexOf_0(this.regex, 58, this.offset); - if (nameend < 0) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); - positive = true; - if ($charAt(this.regex, this.offset) == 94) { - ++this.offset; - positive = false; - } - name_0 = $substring_1(this.regex, this.offset, nameend); - range = getRange_1(name_0, positive, (this.options_0 & 512) == 512); - if (!range) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.3')))); - $mergeRanges(tok, range); - end = true; - if (nameend + 1 >= this.regexlen || $charAt(this.regex, nameend + 1) != 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.1')))); - this.offset = nameend + 2; - } - $next_17(this); - if (!end) { - if (this.nexttoken != 0 || this.chardata != 45) { - $addRange(tok, c, c); - } - else { - $next_17(this); - if ((type_0 = this.nexttoken) == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - if (type_0 == 0 && this.chardata == 93) { - $addRange(tok, c, c); - $addRange(tok, 45, 45); - } - else { - rangeend = this.chardata; - type_0 == 10 && (rangeend = this.decodeEscaped()); - $next_17(this); - $addRange(tok, c, rangeend); - } - } - } - (this.options_0 & $intern_137) == $intern_137 && this.nexttoken == 0 && this.chardata == 44 && $next_17(this); - } - if (this.nexttoken == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - if (base) { - $subtractRanges(base, tok); - tok = base; - } - $sortRanges(tok); - $compactRanges(tok); - this.context = 0; - $next_17(this); - return tok; -} -; -_.parseSetOperations = function parseSetOperations(){ - var ch_0, t2, tok, type_0; - tok = this.parseCharacterClass(false); - while ((type_0 = this.nexttoken) != 7) { - ch_0 = this.chardata; - if (type_0 == 0 && (ch_0 == 45 || ch_0 == 38) || type_0 == 4) { - $next_17(this); - if (this.nexttoken != 9) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.1')))); - t2 = this.parseCharacterClass(false); - if (type_0 == 4) - $mergeRanges(tok, t2); - else if (ch_0 == 45) - $subtractRanges(tok, t2); - else if (ch_0 == 38) - $intersectRanges(tok, t2); - else - throw toJs(new RuntimeException_0('ASSERT')); - } - else { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.2')))); - } - } - $next_17(this); - return tok; -} -; -_.processBackreference = function processBackreference(){ - var refnum, tok; - refnum = this.chardata - 48; - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$StringToken(12, null, refnum)); - !this.references && (this.references = new Vector); - $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refnum)); - $next_17(this); - return tok; -} -; -_.processBacksolidus_A = function processBacksolidus_A(){ - $next_17(this); - return $clinit_RegEx$Token() , token_stringbeginning; -} -; -_.processBacksolidus_B = function processBacksolidus_B(){ - $next_17(this); - return $clinit_RegEx$Token() , token_not_wordedge; -} -; -_.processBacksolidus_C = function processBacksolidus_C(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_I = function processBacksolidus_I(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_X = function processBacksolidus_X(){ - $next_17(this); - return getCombiningCharacterSequence(); -} -; -_.processBacksolidus_Z = function processBacksolidus_Z(){ - $next_17(this); - return $clinit_RegEx$Token() , token_stringend2; -} -; -_.processBacksolidus_b = function processBacksolidus_b(){ - $next_17(this); - return $clinit_RegEx$Token() , token_wordedge; -} -; -_.processBacksolidus_c = function processBacksolidus_c(){ - var ch2; - if (this.offset >= this.regexlen || ((ch2 = $charAt(this.regex, this.offset++)) & 65504) != 64) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.1')))); - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2 - 64); -} -; -_.processBacksolidus_g = function processBacksolidus_g(){ - $next_17(this); - return getGraphemePattern(); -} -; -_.processBacksolidus_gt = function processBacksolidus_gt(){ - $next_17(this); - return $clinit_RegEx$Token() , token_wordend; -} -; -_.processBacksolidus_i = function processBacksolidus_i(){ - var tok; - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 105)); - $next_17(this); - return tok; -} -; -_.processBacksolidus_lt = function processBacksolidus_lt(){ - $next_17(this); - return $clinit_RegEx$Token() , token_wordbeginning; -} -; -_.processBacksolidus_z = function processBacksolidus_z(){ - $next_17(this); - return $clinit_RegEx$Token() , token_stringend; -} -; -_.processCIinCharacterClass = function processCIinCharacterClass(tok, c){ - return this.decodeEscaped(); -} -; -_.processCaret = function processCaret(){ - $next_17(this); - return $clinit_RegEx$Token() , token_linebeginning; -} -; -_.processCondition = function processCondition(){ - var ch_0, condition, noPattern, refno, yesPattern; - if (this.offset + 1 >= this.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.4')))); - refno = -1; - condition = null; - ch_0 = $charAt(this.regex, this.offset); - if (49 <= ch_0 && ch_0 <= 57) { - refno = ch_0 - 48; - !this.references && (this.references = new Vector); - $addElement(this.references, new RegEx$RegexParser$ReferencePosition(refno)); - ++this.offset; - if ($charAt(this.regex, this.offset) != 41) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - ++this.offset; - } - else { - ch_0 == 63 && --this.offset; - $next_17(this); - condition = $parseFactor(this); - switch (condition.type_0) { - case 20: - case 21: - case 22: - case 23: - break; - case 8: - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - break; - default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.5')))); - } - } - $next_17(this); - yesPattern = $parseRegex(this); - noPattern = null; - if (yesPattern.type_0 == 2) { - if (yesPattern.size_2() != 2) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.6')))); - noPattern = yesPattern.getChild(1); - yesPattern = yesPattern.getChild(0); - } - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ConditionToken(refno, condition, yesPattern, noPattern); -} -; -_.processDollar = function processDollar(){ - $next_17(this); - return $clinit_RegEx$Token() , token_lineend; -} -; -_.processIndependent = function processIndependent(){ - var tok; - $next_17(this); - tok = createLook(24, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processLookahead = function processLookahead(){ - var tok; - $next_17(this); - tok = createLook(20, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processLookbehind = function processLookbehind(){ - var tok; - $next_17(this); - tok = createLook(22, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processModifiers = function processModifiers(){ - var add_0, ch_0, mask, tok, v; - add_0 = 0; - mask = 0; - ch_0 = -1; - while (this.offset < this.regexlen) { - ch_0 = $charAt(this.regex, this.offset); - v = getOptionValue(ch_0); - if (v == 0) - break; - add_0 |= v; - ++this.offset; - } - if (this.offset >= this.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); - if (ch_0 == 45) { - ++this.offset; - while (this.offset < this.regexlen) { - ch_0 = $charAt(this.regex, this.offset); - v = getOptionValue(ch_0); - if (v == 0) - break; - mask |= v; - ++this.offset; - } - if (this.offset >= this.regexlen) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.2')))); - } - if (ch_0 == 58) { - ++this.offset; - $next_17(this); - tok = createModifierGroup($parseRegex(this), add_0, mask); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - } - else if (ch_0 == 41) { - ++this.offset; - $next_17(this); - tok = createModifierGroup($parseRegex(this), add_0, mask); - } - else - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.3')))); - return tok; -} -; -_.processNegativelookahead = function processNegativelookahead(){ - var tok; - $next_17(this); - tok = createLook(21, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processNegativelookbehind = function processNegativelookbehind(){ - var tok; - $next_17(this); - tok = createLook(23, $parseRegex(this)); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processParen = function processParen(){ - var p, tok; - $next_17(this); - p = this.parennumber++; - tok = createParen($parseRegex(this), p); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processParen2 = function processParen2(){ - var tok; - $next_17(this); - tok = createParen($parseRegex(this), 0); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processPlus = function processPlus(tok){ - $next_17(this); - if (this.nexttoken == 5) { - $next_17(this); - return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok))); - } - else - return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); -} -; -_.processQuestion = function processQuestion(tok){ - var par; - $next_17(this); - par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); - if (this.nexttoken == 5) { - $next_17(this); - $addChild_0(par, (null , token_empty)); - $addChild_0(par, tok); - } - else { - $addChild_0(par, tok); - $addChild_0(par, (null , token_empty)); - } - return par; -} -; -_.processStar = function processStar(tok){ - $next_17(this); - if (this.nexttoken == 5) { - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(9, tok); - } - else - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); -} -; -_.chardata = 0; -_.context = 0; -_.nexttoken = 0; -_.offset = 0; -_.options_0 = 0; -_.parennumber = 1; -_.references = null; -_.regexlen = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser', 820); -function $decodeEscaped(this$static){ - var c; - if (this$static.nexttoken != 10) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.next.1')))); - c = this$static.chardata; - switch (c) { - case 110: - c = 10; - break; - case 114: - c = 13; - break; - case 116: - c = 9; - break; - case 92: - case 124: - case 46: - case 94: - case 45: - case 63: - case 42: - case 43: - case 123: - case 125: - case 40: - case 41: - case 91: - case 93: - break; - default:throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); - } - return c; -} - -function $getTokenForShorthand(ch_0){ - var number; - switch (ch_0) { - case 100: - return getRange('xml:isDigit', true); - case 68: - return getRange('xml:isDigit', false); - case 119: - return getRange('xml:isWord', true); - case 87: - return getRange('xml:isWord', false); - case 115: - return getRange('xml:isSpace', true); - case 83: - return getRange('xml:isSpace', false); - case 99: - return getRange('xml:isNameChar', true); - case 67: - return getRange('xml:isNameChar', false); - case 105: - return getRange('xml:isInitialNameChar', true); - case 73: - return getRange('xml:isInitialNameChar', false); - default:throw toJs(new RuntimeException_0((number = ch_0 , 'Internal Error: shorthands: \\u' + number.toString(16)))); - } -} - -function $parseCharacterClass(this$static){ - var base, c, end, firstloop, range2, rangeend, tok, tok2, type_0; - this$static.context = 1; - $next_17(this$static); - base = null; - if (this$static.nexttoken == 0 && this$static.chardata == 94) { - $next_17(this$static); - base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - $addRange(base, 0, $intern_165); - tok = (null , ++tokens_0 , new RegEx$RangeToken(4)); - } - else { - tok = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - } - firstloop = true; - while ((type_0 = this$static.nexttoken) != 1) { - if (type_0 == 0 && this$static.chardata == 93 && !firstloop) { - if (base) { - $subtractRanges(base, tok); - tok = base; - } - break; - } - c = this$static.chardata; - end = false; - if (type_0 == 10) { - switch (c) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - $mergeRanges(tok, $getTokenForShorthand(c)); - end = true; - break; - case 105: - case 73: - case 99: - case 67: - c = ($mergeRanges(tok, $getTokenForShorthand(c)) , -1); - c < 0 && (end = true); - break; - case 112: - case 80: - tok2 = $processBacksolidus_pP(this$static, c); - if (!tok2) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.atom.5')))); - $mergeRanges(tok, tok2); - end = true; - break; - default:c = $decodeEscaped(this$static); - } - } - else if (type_0 == 24 && !firstloop) { - if (base) { - $subtractRanges(base, tok); - tok = base; - } - range2 = $parseCharacterClass(this$static); - $subtractRanges(tok, range2); - if (this$static.nexttoken != 0 || this$static.chardata != 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.5')))); - break; - } - $next_17(this$static); - if (!end) { - if (type_0 == 0) { - if (c == 91) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); - if (c == 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); - if (c == 45 && !firstloop && this$static.chardata != 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); - } - if (this$static.nexttoken != 0 || this$static.chardata != 45 || c == 45 && firstloop) { - $addRange(tok, c, c); - } - else { - $next_17(this$static); - if ((type_0 = this$static.nexttoken) == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - if (type_0 == 0 && this$static.chardata == 93) { - $addRange(tok, c, c); - $addRange(tok, 45, 45); - } - else if (type_0 == 0 && this$static.chardata == 93 || type_0 == 24) { - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); - } - else { - rangeend = this$static.chardata; - if (type_0 == 0) { - if (rangeend == 91) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.6')))); - if (rangeend == 93) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.7')))); - if (rangeend == 45) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.8')))); - } - else - type_0 == 10 && (rangeend = $decodeEscaped(this$static)); - $next_17(this$static); - if (c > rangeend) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.ope.3')))); - $addRange(tok, c, rangeend); - } - } - } - firstloop = false; - } - if (this$static.nexttoken == 1) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.cc.2')))); - $sortRanges(tok); - $compactRanges(tok); - this$static.context = 0; - $next_17(this$static); - return tok; -} - -function RegEx$ParserForXMLSchema(){ - RegEx$RegexParser.call(this); -} - -function getRange(name_0, positive){ - var tok, tok0; - if (!ranges_0) { - ranges_0 = new HashMap; - ranges2 = new HashMap; - tok0 = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '\t\n\r\r '); - $putStringValue(ranges_0, 'xml:isSpace', tok0); - $putStringValue(ranges2, 'xml:isSpace', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); - $putStringValue(ranges_0, 'xml:isDigit', tok0); - $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29'); - $putStringValue(ranges_0, 'xml:isDigit', tok0); - $putStringValue(ranges2, 'xml:isDigit', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); - $mergeRanges(tok0, castTo($getStringValue(ranges_0, 'xml:isDigit'), 117)); - $putStringValue(ranges_0, 'xml:isWord', tok0); - $putStringValue(ranges2, 'xml:isWord', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, '-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); - $putStringValue(ranges_0, 'xml:isNameChar', tok0); - $putStringValue(ranges2, 'xml:isNameChar', complementRanges(tok0)); - tok0 = (null , ++tokens_0 , new RegEx$RangeToken(4)); - setupRange(tok0, 'AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3'); - $addRange(tok0, 95, 95); - $addRange(tok0, 58, 58); - $putStringValue(ranges_0, 'xml:isInitialNameChar', tok0); - $putStringValue(ranges2, 'xml:isInitialNameChar', complementRanges(tok0)); - } - tok = positive?castTo($getStringValue(ranges_0, name_0), 136):castTo($getStringValue(ranges2, name_0), 136); - return tok; -} - -function setupRange(range, src_0){ - var i, len; - len = src_0.length; - for (i = 0; i < len; i += 2) - $addRange(range, (checkCriticalStringElementIndex(i, src_0.length) , src_0.charCodeAt(i)), (checkCriticalStringElementIndex(i + 1, src_0.length) , src_0.charCodeAt(i + 1))); -} - -defineClass(1824, 820, {}, RegEx$ParserForXMLSchema); -_.checkQuestion = function checkQuestion_0(off){ - return false; -} -; -_.decodeEscaped = function decodeEscaped_0(){ - return $decodeEscaped(this); -} -; -_.getTokenForShorthand = function getTokenForShorthand_0(ch_0){ - return $getTokenForShorthand(ch_0); -} -; -_.parseCharacterClass = function parseCharacterClass_0(useNrange){ - return $parseCharacterClass(this); -} -; -_.parseSetOperations = function parseSetOperations_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBackreference = function processBackreference_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_A = function processBacksolidus_A_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_B = function processBacksolidus_B_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_C = function processBacksolidus_C_0(){ - $next_17(this); - return $getTokenForShorthand(67); -} -; -_.processBacksolidus_I = function processBacksolidus_I_0(){ - $next_17(this); - return $getTokenForShorthand(73); -} -; -_.processBacksolidus_X = function processBacksolidus_X_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_Z = function processBacksolidus_Z_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_b = function processBacksolidus_b_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_c = function processBacksolidus_c_0(){ - $next_17(this); - return $getTokenForShorthand(99); -} -; -_.processBacksolidus_g = function processBacksolidus_g_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_gt = function processBacksolidus_gt_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_i = function processBacksolidus_i_0(){ - $next_17(this); - return $getTokenForShorthand(105); -} -; -_.processBacksolidus_lt = function processBacksolidus_lt_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processBacksolidus_z = function processBacksolidus_z_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processCIinCharacterClass = function processCIinCharacterClass_0(tok, c){ - return $mergeRanges(tok, $getTokenForShorthand(c)) , -1; -} -; -_.processCaret = function processCaret_0(){ - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 94); -} -; -_.processCondition = function processCondition_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processDollar = function processDollar_0(){ - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, 36); -} -; -_.processIndependent = function processIndependent_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processLookahead = function processLookahead_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processLookbehind = function processLookbehind_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processModifiers = function processModifiers_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processNegativelookahead = function processNegativelookahead_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processNegativelookbehind = function processNegativelookbehind_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processParen = function processParen_0(){ - var tok; - $next_17(this); - tok = createParen($parseRegex(this), 0); - if (this.nexttoken != 7) - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); - $next_17(this); - return tok; -} -; -_.processParen2 = function processParen2_0(){ - throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); -} -; -_.processPlus = function processPlus_0(tok){ - $next_17(this); - return createConcat(tok, ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok))); -} -; -_.processQuestion = function processQuestion_0(tok){ - var par; - $next_17(this); - par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); - $addChild_0(par, tok); - $addChild_0(par, (null , token_empty)); - return par; -} -; -_.processStar = function processStar_0(tok){ - $next_17(this); - return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ClosureToken(3, tok); -} -; -var ranges_0 = null, ranges2 = null; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParserForXMLSchema_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParserForXMLSchema', 1824); -function createOptionString(options){ - var sb; - sb = new StringBuffer_0; - (options & 256) != 0 && (sb.string += 'F' , sb); - (options & 128) != 0 && (sb.string += 'H' , sb); - (options & 512) != 0 && (sb.string += 'X' , sb); - (options & 2) != 0 && (sb.string += 'i' , sb); - (options & 8) != 0 && (sb.string += 'm' , sb); - (options & 4) != 0 && (sb.string += 's' , sb); - (options & 32) != 0 && (sb.string += 'u' , sb); - (options & 64) != 0 && (sb.string += 'w' , sb); - (options & 16) != 0 && (sb.string += 'x' , sb); - (options & $intern_137) != 0 && (sb.string += ',' , sb); - return $intern(sb.string); -} - -function decomposeToSurrogates(ch_0){ - var chs; - chs = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); - ch_0 -= $intern_63; - chs[0] = (ch_0 >> 10) + $intern_64 & $intern_46; - chs[1] = (ch_0 & 1023) + 56320 & $intern_46; - return valueOf_9(chs, 0, chs.length); -} - -function getOptionValue(ch_0){ - var ret; - ret = 0; - switch (ch_0) { - case 105: - ret = 2; - break; - case 109: - ret = 8; - break; - case 115: - ret = 4; - break; - case 120: - ret = 16; - break; - case 117: - ret = 32; - break; - case 119: - ret = 64; - break; - case 70: - ret = 256; - break; - case 72: - ret = 128; - break; - case 88: - ret = 512; - break; - case 44: - ret = $intern_137; - } - return ret; -} - -function parseOptions(){ - var i, options, v; - options = 0; - for (i = 0; i < 'X'.length; i++) { - v = getOptionValue((checkCriticalStringElementIndex(i, 'X'.length) , 'X'.charCodeAt(i))); - if (v == 0) - throw toJs(new RegEx$ParseException('Unknown Option: ' + 'X'.substr(i))); - options |= v; - } - return options; -} - -function quoteMeta(literal){ - var buffer, ch_0, i, len; - len = literal.length; - buffer = null; - for (i = 0; i < len; i++) { - ch_0 = (checkCriticalStringElementIndex(i, literal.length) , literal.charCodeAt(i)); - if ($indexOf_1('.*+?{[()|\\^$', fromCodePoint(ch_0)) >= 0) { - if (!buffer) { - buffer = new StringBuffer_0; - i > 0 && $append_3(buffer, literal.substr(0, i)); - } - buffer.string += '\\'; - $append(buffer, ch_0 & $intern_46); - } - else - !!buffer && $append(buffer, ch_0 & $intern_46); - } - return buffer?buffer.string:literal; -} - -function stripExtendedComment(regex){ - var buffer, ch_0, len, next, offset; - len = regex.length; - buffer = new StringBuffer_0; - offset = 0; - while (offset < len) { - ch_0 = $charAt(regex, offset++); - if (ch_0 == 9 || ch_0 == 10 || ch_0 == 12 || ch_0 == 13 || ch_0 == 32) - continue; - if (ch_0 == 35) { - while (offset < len) { - ch_0 = $charAt(regex, offset++); - if (ch_0 == 13 || ch_0 == 10) - break; - } - continue; - } - if (ch_0 == 92 && offset < len) { - if ((next = (checkCriticalStringElementIndex(offset, regex.length) , regex.charCodeAt(offset))) == 35 || next == 9 || next == 10 || next == 12 || next == 13 || next == 32) { - $append(buffer, next & $intern_46); - ++offset; - } - else { - buffer.string += '\\'; - $append(buffer, next & $intern_46); - ++offset; - } - } - else - $append(buffer, ch_0 & $intern_46); - } - return buffer.string; -} - -function $clinit_RegEx$Token(){ - $clinit_RegEx$Token = emptyMethod; - token_empty = new RegEx$Token(7); - token_linebeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 94)); - ++tokens_0; - new RegEx$Token$CharToken(8, 64); - token_lineend = (++tokens_0 , new RegEx$Token$CharToken(8, 36)); - token_stringbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 65)); - token_stringend = (++tokens_0 , new RegEx$Token$CharToken(8, 122)); - token_stringend2 = (++tokens_0 , new RegEx$Token$CharToken(8, 90)); - token_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 98)); - token_not_wordedge = (++tokens_0 , new RegEx$Token$CharToken(8, 66)); - token_wordbeginning = (++tokens_0 , new RegEx$Token$CharToken(8, 60)); - token_wordend = (++tokens_0 , new RegEx$Token$CharToken(8, 62)); - token_dot = new RegEx$Token(11); - token_0to9 = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(token_0to9, 48, 57); - token_wordchars = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(token_wordchars, 48, 57); - $addRange(token_wordchars, 65, 90); - $addRange(token_wordchars, 95, 95); - $addRange(token_wordchars, 97, 122); - token_spaces = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(token_spaces, 9, 9); - $addRange(token_spaces, 10, 10); - $addRange(token_spaces, 12, 12); - $addRange(token_spaces, 13, 13); - $addRange(token_spaces, 32, 32); - token_not_0to9 = complementRanges(token_0to9); - token_not_wordchars = complementRanges(token_wordchars); - token_not_spaces = complementRanges(token_spaces); - categories = new HashMap; - categories2 = new HashMap; - categoryNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Cn', 'Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Me', 'Mc', 'Nd', 'Nl', 'No', 'Zs', 'Zl', 'Zp', 'Cc', 'Cf', null, 'Co', 'Cs', 'Pd', 'Ps', 'Pe', 'Pc', 'Po', 'Sm', 'Sc', 'Sk', 'So', 'Pi', 'Pf', 'L', 'M', 'N', 'Z', 'C', 'P', 'S']); - blockNames = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_16, 2, 6, ['Basic Latin', 'Latin-1 Supplement', 'Latin Extended-A', 'Latin Extended-B', 'IPA Extensions', 'Spacing Modifier Letters', 'Combining Diacritical Marks', 'Greek', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul Jamo', 'Ethiopic', 'Cherokee', 'Unified Canadian Aboriginal Syllabics', 'Ogham', 'Runic', 'Khmer', 'Mongolian', 'Latin Extended Additional', 'Greek Extended', 'General Punctuation', 'Superscripts and Subscripts', 'Currency Symbols', 'Combining Marks for Symbols', 'Letterlike Symbols', 'Number Forms', 'Arrows', 'Mathematical Operators', 'Miscellaneous Technical', 'Control Pictures', 'Optical Character Recognition', 'Enclosed Alphanumerics', 'Box Drawing', 'Block Elements', 'Geometric Shapes', 'Miscellaneous Symbols', 'Dingbats', 'Braille Patterns', 'CJK Radicals Supplement', 'Kangxi Radicals', 'Ideographic Description Characters', 'CJK Symbols and Punctuation', 'Hiragana', 'Katakana', 'Bopomofo', 'Hangul Compatibility Jamo', 'Kanbun', 'Bopomofo Extended', 'Enclosed CJK Letters and Months', 'CJK Compatibility', 'CJK Unified Ideographs Extension A', 'CJK Unified Ideographs', 'Yi Syllables', 'Yi Radicals', 'Hangul Syllables', 'Private Use', 'CJK Compatibility Ideographs', 'Alphabetic Presentation Forms', 'Arabic Presentation Forms-A', 'Combining Half Marks', 'CJK Compatibility Forms', 'Small Form Variants', 'Arabic Presentation Forms-B', 'Specials', 'Halfwidth and Fullwidth Forms', 'Old Italic', 'Gothic', 'Deseret', 'Byzantine Musical Symbols', 'Musical Symbols', 'Mathematical Alphanumeric Symbols', 'CJK Unified Ideographs Extension B', 'CJK Compatibility Ideographs Supplement', 'Tags']); - nonBMPBlockRanges = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); -} - -function RegEx$Token(type_0){ - this.type_0 = type_0; -} - -function createChar(ch_0){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$CharToken(0, ch_0); -} - -function createClosure(tok){ - ++tokens_0; - return new RegEx$Token$ClosureToken(3, tok); -} - -function createConcat(tok1, tok2){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ConcatToken(tok1, tok2); -} - -function createLook(type_0, child){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ParenToken(type_0, child, 0); -} - -function createModifierGroup(child, add_0, mask){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ModifierToken(child, add_0, mask); -} - -function createParen(child, pnumber){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$ParenToken(6, child, pnumber); -} - -function createString_0(str){ - $clinit_RegEx$Token(); - ++tokens_0; - return new RegEx$Token$StringToken(10, str, 0); -} - -function getCombiningCharacterSequence(){ - $clinit_RegEx$Token(); - var foo; - if (token_ccs) - return token_ccs; - foo = createClosure(getRange_0('M', true)); - foo = createConcat(getRange_0('M', false), foo); - token_ccs = foo; - return token_ccs; -} - -function getGraphemePattern(){ - $clinit_RegEx$Token(); - var base_char, combiner_wo_virama, foo, i, left, virama; - if (token_grapheme) - return token_grapheme; - base_char = (++tokens_0 , new RegEx$RangeToken(4)); - $mergeRanges(base_char, getRange_0('ASSIGNED', true)); - $subtractRanges(base_char, getRange_0('M', true)); - $subtractRanges(base_char, getRange_0('C', true)); - virama = (++tokens_0 , new RegEx$RangeToken(4)); - for (i = 0; i < 11; i++) { - $addRange(virama, i, i); - } - combiner_wo_virama = (++tokens_0 , new RegEx$RangeToken(4)); - $mergeRanges(combiner_wo_virama, getRange_0('M', true)); - $addRange(combiner_wo_virama, 4448, 4607); - $addRange(combiner_wo_virama, 65438, 65439); - left = (++tokens_0 , new RegEx$Token$UnionToken(2)); - $addChild_0(left, base_char); - $addChild_0(left, token_empty); - foo = (++tokens_0 , new RegEx$Token$UnionToken(2)); - foo.addChild(createConcat(virama, getRange_0('L', true))); - foo.addChild(combiner_wo_virama); - foo = (++tokens_0 , new RegEx$Token$ClosureToken(3, foo)); - foo = (++tokens_0 , new RegEx$Token$ConcatToken(left, foo)); - token_grapheme = foo; - return token_grapheme; -} - -function getRange_0(name_0, positive){ - $clinit_RegEx$Token(); - var all, buffer, ci, i, i0, location_0, n, oldLength, r1, ranges, rend, rstart, tok; - if ($size_2(categories) == 0) { - ranges = initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit, $intern_16, 117, categoryNames.length, 0, 1); - for (i0 = 0; i0 < ranges.length; i0++) { - ranges[i0] = (++tokens_0 , new RegEx$RangeToken(4)); - } - buffer = new StringBuffer_0; - for (i = 0; i < blockNames.length; i++) { - r1 = (++tokens_0 , new RegEx$RangeToken(4)); - if (i < 84) { - location_0 = i * 2; - rstart = (checkCriticalStringElementIndex(location_0, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0)); - rend = (checkCriticalStringElementIndex(location_0 + 1, '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.length) , '\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF'.charCodeAt(location_0 + 1)); - $addRange(r1, rstart, rend); - } - else { - location_0 = (i - 84) * 2; - $addRange(r1, nonBMPBlockRanges[location_0], nonBMPBlockRanges[location_0 + 1]); - } - n = blockNames[i]; - $equals_5(n, 'Specials') && $addRange(r1, 65520, 65533); - if ($equals_5(n, 'Private Use')) { - $addRange(r1, 983040, 1048573); - $addRange(r1, 1048576, 1114109); - } - $putStringValue(categories, n, r1); - $putStringValue(categories2, n, complementRanges(r1)); - oldLength = buffer.string.length; - 0 < oldLength?(buffer.string = buffer.string.substr(0, 0)):0 > oldLength && (buffer.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -oldLength, 15, 1))); - buffer.string += 'Is'; - if ($indexOf_1(n, fromCodePoint(32)) >= 0) { - for (ci = 0; ci < n.length; ci++) { - checkCriticalStringElementIndex(ci, n.length); - n.charCodeAt(ci) != 32 && $append(buffer, (checkCriticalStringElementIndex(ci, n.length) , n.charCodeAt(ci))); - } - } - else { - buffer.string += '' + n; - } - setAlias(buffer.string, n, true); - } - setAlias('ASSIGNED', 'Cn', false); - setAlias('UNASSIGNED', 'Cn', true); - all = (++tokens_0 , new RegEx$RangeToken(4)); - $addRange(all, 0, $intern_165); - $putStringValue(categories, 'ALL', all); - $putStringValue(categories2, 'ALL', complementRanges(all)); - !nonxs && (nonxs = new HashMap); - $putStringValue(nonxs, 'ASSIGNED', 'ASSIGNED'); - !nonxs && (nonxs = new HashMap); - $putStringValue(nonxs, 'UNASSIGNED', 'UNASSIGNED'); - !nonxs && (nonxs = new HashMap); - $putStringValue(nonxs, 'ALL', 'ALL'); - } - tok = positive?castTo($getStringValue(categories, name_0), 136):castTo($getStringValue(categories2, name_0), 136); - return tok; -} - -function getRange_1(name_0, positive, xs){ - $clinit_RegEx$Token(); - var range; - range = getRange_0(name_0, positive); - xs && !!range && isRegisterNonXS(name_0) && (range = null); - return range; -} - -function isRegisterNonXS(name_0){ - if (!nonxs) - return false; - return $hasStringValue(nonxs, name_0); -} - -function setAlias(newName, name_0, positive){ - var t1, t2; - t1 = castTo($getStringValue(categories, name_0), 117); - t2 = castTo($getStringValue(categories2, name_0), 117); - if (positive) { - $putStringValue(categories, newName, t1); - $putStringValue(categories2, newName, t2); - } - else { - $putStringValue(categories2, newName, t1); - $putStringValue(categories, newName, t2); - } -} - -defineClass(117, 1, $intern_166, RegEx$Token); -_.addChild = function addChild(tok){ - throw toJs(new RuntimeException_0('Not supported.')); -} -; -_.getChar = function getChar(){ - return -1; -} -; -_.getChild = function getChild(index_0){ - return null; -} -; -_.getString = function getString(){ - return null; -} -; -_.setMax = function setMax(max_0){ -} -; -_.setMin = function setMin(min_0){ -} -; -_.size_2 = function size_81(){ - return 0; -} -; -_.toString_0 = function toString_161(){ - return this.toString_1(0); -} -; -_.toString_1 = function toString_162(options){ - return this.type_0 == 11?'.':''; -} -; -_.type_0 = 0; -var blockNames, categories, categories2, categoryNames, nonBMPBlockRanges, nonxs = null, token_0to9, token_ccs = null, token_dot, token_empty, token_grapheme = null, token_linebeginning, token_lineend, token_not_0to9, token_not_spaces, token_not_wordchars, token_not_wordedge, token_spaces, token_stringbeginning, token_stringend, token_stringend2, token_wordbeginning, token_wordchars, token_wordedge, token_wordend, tokens_0 = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token', 117); -function $addRange(this$static, start_0, end){ - var pos, r1, r2, temp; - if (start_0 <= end) { - r1 = start_0; - r2 = end; - } - else { - r1 = end; - r2 = start_0; - } - pos = 0; - if (this$static.ranges == null) { - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, 2, 15, 1); - this$static.ranges[0] = r1; - this$static.ranges[1] = r2; - this$static.sorted = true; - } - else { - pos = this$static.ranges.length; - if (this$static.ranges[pos - 1] + 1 == r1) { - this$static.ranges[pos - 1] = r2; - return; - } - temp = initUnidimensionalArray(I_classLit, $intern_48, 25, pos + 2, 15, 1); - arraycopy(this$static.ranges, 0, temp, 0, pos); - this$static.ranges = temp; - this$static.ranges[pos - 1] >= r1 && (this$static.sorted = false , this$static.compacted = false); - this$static.ranges[pos++] = r1; - this$static.ranges[pos] = r2; - this$static.sorted || $sortRanges(this$static); - } -} - -function $compactRanges(this$static){ - var base, baseend, result, target; - if (this$static.ranges == null || this$static.ranges.length <= 2) - return; - if (this$static.compacted) - return; - base = 0; - target = 0; - while (target < this$static.ranges.length) { - if (base != target) { - this$static.ranges[base] = this$static.ranges[target++]; - this$static.ranges[base + 1] = this$static.ranges[target++]; - } - else - target += 2; - baseend = this$static.ranges[base + 1]; - while (target < this$static.ranges.length) { - if (baseend + 1 < this$static.ranges[target]) - break; - if (baseend + 1 == this$static.ranges[target]) { - this$static.ranges[base + 1] = this$static.ranges[target + 1]; - baseend = this$static.ranges[base + 1]; - target += 2; - } - else if (baseend >= this$static.ranges[target + 1]) { - target += 2; - } - else if (baseend < this$static.ranges[target + 1]) { - this$static.ranges[base + 1] = this$static.ranges[target + 1]; - baseend = this$static.ranges[base + 1]; - target += 2; - } - else { - throw toJs(new RuntimeException_0('Token#compactRanges(): Internel Error: [' + this$static.ranges[base] + ',' + this$static.ranges[base + 1] + '] [' + this$static.ranges[target] + ',' + this$static.ranges[target + 1] + ']')); - } - } - base += 2; - } - if (base != this$static.ranges.length) { - result = initUnidimensionalArray(I_classLit, $intern_48, 25, base, 15, 1); - arraycopy(this$static.ranges, 0, result, 0, base); - this$static.ranges = result; - } - this$static.compacted = true; -} - -function $intersectRanges(this$static, token){ - var result, src1, src1begin, src1end, src2, src2begin, src2end, tok, wp; - tok = token; - if (tok.ranges == null || this$static.ranges == null) - return; - $sortRanges(this$static); - $compactRanges(this$static); - $sortRanges(tok); - $compactRanges(tok); - result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); - wp = 0; - src1 = 0; - src2 = 0; - while (src1 < this$static.ranges.length && src2 < tok.ranges.length) { - src1begin = this$static.ranges[src1]; - src1end = this$static.ranges[src1 + 1]; - src2begin = tok.ranges[src2]; - src2end = tok.ranges[src2 + 1]; - if (src1end < src2begin) { - src1 += 2; - } - else if (src1end >= src2begin && src1begin <= src2end) { - if (src2begin <= src1begin && src1end <= src2end) { - result[wp++] = src1begin; - result[wp++] = src1end; - src1 += 2; - } - else if (src2begin <= src1begin) { - result[wp++] = src1begin; - result[wp++] = src2end; - this$static.ranges[src1] = src2end + 1; - src2 += 2; - } - else if (src1end <= src2end) { - result[wp++] = src2begin; - result[wp++] = src1end; - src1 += 2; - } - else { - result[wp++] = src2begin; - result[wp++] = src2end; - this$static.ranges[src1] = src2end + 1; - } - } - else if (src2end < src1begin) { - src2 += 2; - } - else { - throw toJs(new RuntimeException_0('Token#intersectRanges(): Internal Error: [' + this$static.ranges[src1] + ',' + this$static.ranges[src1 + 1] + '] & [' + tok.ranges[src2] + ',' + tok.ranges[src2 + 1] + ']')); - } - } - while (src1 < this$static.ranges.length) { - result[wp++] = this$static.ranges[src1++]; - result[wp++] = this$static.ranges[src1++]; - } - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); - arraycopy(result, 0, this$static.ranges, 0, wp); -} - -function $mergeRanges(this$static, token){ - var i, j, k, result, tok; - tok = castTo(token, 136); - $sortRanges(this$static); - $sortRanges(tok); - if (tok.ranges == null) - return; - this$static.sorted = true; - if (this$static.ranges == null) { - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, tok.ranges.length, 15, 1); - arraycopy(tok.ranges, 0, this$static.ranges, 0, tok.ranges.length); - return; - } - result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); - for (i = 0 , j = 0 , k = 0; i < this$static.ranges.length || j < tok.ranges.length;) { - if (i >= this$static.ranges.length) { - result[k++] = tok.ranges[j++]; - result[k++] = tok.ranges[j++]; - } - else if (j >= tok.ranges.length) { - result[k++] = this$static.ranges[i++]; - result[k++] = this$static.ranges[i++]; - } - else if (tok.ranges[j] < this$static.ranges[i] || tok.ranges[j] === this$static.ranges[i] && tok.ranges[j + 1] < this$static.ranges[i + 1]) { - result[k++] = tok.ranges[j++]; - result[k++] = tok.ranges[j++]; - } - else { - result[k++] = this$static.ranges[i++]; - result[k++] = this$static.ranges[i++]; - } - } - this$static.ranges = result; -} - -function $sortRanges(this$static){ - var i, j, tmp; - if (this$static.sorted) - return; - if (this$static.ranges == null) - return; - for (i = this$static.ranges.length - 4; i >= 0; i -= 2) { - for (j = 0; j <= i; j += 2) { - if (this$static.ranges[j] > this$static.ranges[j + 2] || this$static.ranges[j] === this$static.ranges[j + 2] && this$static.ranges[j + 1] > this$static.ranges[j + 3]) { - tmp = this$static.ranges[j + 2]; - this$static.ranges[j + 2] = this$static.ranges[j]; - this$static.ranges[j] = tmp; - tmp = this$static.ranges[j + 3]; - this$static.ranges[j + 3] = this$static.ranges[j + 1]; - this$static.ranges[j + 1] = tmp; - } - } - } - this$static.sorted = true; -} - -function $subtractRanges(this$static, token){ - var result, src_0, srcbegin, srcend, sub_0, subbegin, subend, tok, wp; - if (token.type_0 == 5) { - $intersectRanges(this$static, token); - return; - } - tok = token; - if (tok.ranges == null || this$static.ranges == null) - return; - $sortRanges(this$static); - $compactRanges(this$static); - $sortRanges(tok); - $compactRanges(tok); - result = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.ranges.length + tok.ranges.length, 15, 1); - wp = 0; - src_0 = 0; - sub_0 = 0; - while (src_0 < this$static.ranges.length && sub_0 < tok.ranges.length) { - srcbegin = this$static.ranges[src_0]; - srcend = this$static.ranges[src_0 + 1]; - subbegin = tok.ranges[sub_0]; - subend = tok.ranges[sub_0 + 1]; - if (srcend < subbegin) { - result[wp++] = this$static.ranges[src_0++]; - result[wp++] = this$static.ranges[src_0++]; - } - else if (srcend >= subbegin && srcbegin <= subend) { - if (subbegin <= srcbegin && srcend <= subend) { - src_0 += 2; - } - else if (subbegin <= srcbegin) { - this$static.ranges[src_0] = subend + 1; - sub_0 += 2; - } - else if (srcend <= subend) { - result[wp++] = srcbegin; - result[wp++] = subbegin - 1; - src_0 += 2; - } - else { - result[wp++] = srcbegin; - result[wp++] = subbegin - 1; - this$static.ranges[src_0] = subend + 1; - sub_0 += 2; - } - } - else if (subend < srcbegin) { - sub_0 += 2; - } - else { - throw toJs(new RuntimeException_0('Token#subtractRanges(): Internal Error: [' + this$static.ranges[src_0] + ',' + this$static.ranges[src_0 + 1] + '] - [' + tok.ranges[sub_0] + ',' + tok.ranges[sub_0 + 1] + ']')); - } - } - while (src_0 < this$static.ranges.length) { - result[wp++] = this$static.ranges[src_0++]; - result[wp++] = this$static.ranges[src_0++]; - } - this$static.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, wp, 15, 1); - arraycopy(result, 0, this$static.ranges, 0, wp); -} - -function RegEx$RangeToken(type_0){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.sorted = false; - this.compacted = false; -} - -function complementRanges(token){ - $clinit_RegEx$Token(); - var i, last, len, ret, tok, wp; - if (token.type_0 != 4 && token.type_0 != 5) - throw toJs(new IllegalArgumentException_0('Token#complementRanges(): must be RANGE: ' + token.type_0)); - tok = token; - $sortRanges(tok); - $compactRanges(tok); - len = tok.ranges.length + 2; - tok.ranges[0] == 0 && (len -= 2); - last = tok.ranges[tok.ranges.length - 1]; - last == $intern_165 && (len -= 2); - ret = (++tokens_0 , new RegEx$RangeToken(4)); - ret.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, len, 15, 1); - wp = 0; - if (tok.ranges[0] > 0) { - ret.ranges[wp++] = 0; - ret.ranges[wp++] = tok.ranges[0] - 1; - } - for (i = 1; i < tok.ranges.length - 2; i += 2) { - ret.ranges[wp++] = tok.ranges[i] + 1; - ret.ranges[wp++] = tok.ranges[i + 1] - 1; - } - if (last != $intern_165) { - ret.ranges[wp++] = last + 1; - ret.ranges[wp] = $intern_165; - } - ret.compacted = true; - return ret; -} - -function escapeCharInCharClass(ch_0){ - var number, pre, ret; - switch (ch_0) { - case 91: - case 93: - case 45: - case 94: - case 44: - case 92: - ret = '\\' + String.fromCharCode(ch_0 & $intern_46); - break; - case 12: - ret = '\\f'; - break; - case 10: - ret = '\\n'; - break; - case 13: - ret = '\\r'; - break; - case 9: - ret = '\\t'; - break; - case 27: - ret = '\\e'; - break; - default:if (ch_0 < 32) { - pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); - ret = '\\x' + $substring_1(pre, pre.length - 2, pre.length); - } - else if (ch_0 >= $intern_63) { - pre = (number = ch_0 >>> 0 , '0' + number.toString(16)); - ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); - } - else - ret = '' + String.fromCharCode(ch_0 & $intern_46); - } - return ret; -} - -defineClass(136, 117, {3:1, 136:1, 117:1}, RegEx$RangeToken); -_.toString_1 = function toString_163(options){ - var i, ret, sb; - if (this.type_0 == 4) { - if (this == token_dot) - ret = '.'; - else if (this == token_0to9) - ret = '\\d'; - else if (this == token_wordchars) - ret = '\\w'; - else if (this == token_spaces) - ret = '\\s'; - else { - sb = new StringBuffer; - sb.string += '['; - for (i = 0; i < this.ranges.length; i += 2) { - (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); - if (this.ranges[i] === this.ranges[i + 1]) { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - } - else { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - sb.string += '-'; - $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); - } - } - sb.string += ']'; - ret = sb.string; - } - } - else { - if (this == token_not_0to9) - ret = '\\D'; - else if (this == token_not_wordchars) - ret = '\\W'; - else if (this == token_not_spaces) - ret = '\\S'; - else { - sb = new StringBuffer; - sb.string += '[^'; - for (i = 0; i < this.ranges.length; i += 2) { - (options & $intern_137) != 0 && i > 0 && (sb.string += ',' , sb); - if (this.ranges[i] === this.ranges[i + 1]) { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - } - else { - $append_3(sb, escapeCharInCharClass(this.ranges[i])); - sb.string += '-'; - $append_3(sb, escapeCharInCharClass(this.ranges[i + 1])); - } - } - sb.string += ']'; - ret = sb.string; - } - } - return ret; -} -; -_.compacted = false; -_.sorted = false; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RangeToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RangeToken', 136); -function RegEx$RegexParser$ReferencePosition(n){ - this.refNumber = n; -} - -defineClass(584, 1, {584:1}, RegEx$RegexParser$ReferencePosition); -_.refNumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegexParser$ReferencePosition_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegexParser/ReferencePosition', 584); -function $setPattern(this$static, newPattern, options){ - var rp; - this$static.regex = newPattern; - this$static.options_0 = options; - rp = (this$static.options_0 & 512) == 512?new RegEx$ParserForXMLSchema:new RegEx$RegexParser; - this$static.tokentree = $parse_3(rp, this$static.regex, this$static.options_0); -} - -function RegEx$RegularExpression(regex){ - $setPattern(this, regex, parseOptions()); -} - -defineClass(583, 1, {3:1, 583:1}, RegEx$RegularExpression); -_.equals_0 = function equals_198(obj){ - var r; - if (obj == null) - return false; - if (!instanceOf(obj, 583)) - return false; - r = castTo(obj, 583); - return $equals_5(this.regex, r.regex) && this.options_0 == r.options_0; -} -; -_.hashCode_1 = function hashCode_84(){ - return getHashCode_1(this.regex + '/' + createOptionString(this.options_0)); -} -; -_.toString_0 = function toString_164(){ - return this.tokentree.toString_1(this.options_0); -} -; -_.options_0 = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$RegularExpression_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/RegularExpression', 583); -function RegEx$Token$CharToken(type_0, ch_0){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.chardata = ch_0; -} - -defineClass(223, 117, $intern_166, RegEx$Token$CharToken); -_.getChar = function getChar_0(){ - return this.chardata; -} -; -_.toString_1 = function toString_165(options){ - var number, pre, ret; - switch (this.type_0) { - case 0: - switch (this.chardata) { - case 124: - case 42: - case 43: - case 63: - case 40: - case 41: - case 46: - case 91: - case 123: - case 92: - ret = '\\' + charToString(this.chardata & $intern_46); - break; - case 12: - ret = '\\f'; - break; - case 10: - ret = '\\n'; - break; - case 13: - ret = '\\r'; - break; - case 9: - ret = '\\t'; - break; - case 27: - ret = '\\e'; - break; - default:if (this.chardata >= $intern_63) { - pre = (number = this.chardata >>> 0 , '0' + number.toString(16)); - ret = '\\v' + $substring_1(pre, pre.length - 6, pre.length); - } - else - ret = '' + charToString(this.chardata & $intern_46); - } - - break; - case 8: - this == token_linebeginning || this == token_lineend?(ret = '' + charToString(this.chardata & $intern_46)):(ret = '\\' + charToString(this.chardata & $intern_46)); - break; - default:ret = null; - } - return ret; -} -; -_.chardata = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$CharToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/CharToken', 223); -function RegEx$Token$ClosureToken(type_0, tok){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.child = tok; - this.min_0 = -1; - this.max_0 = -1; -} - -defineClass(309, 117, $intern_166, RegEx$Token$ClosureToken); -_.getChild = function getChild_0(index_0){ - return this.child; -} -; -_.setMax = function setMax_0(max_0){ - this.max_0 = max_0; -} -; -_.setMin = function setMin_0(min_0){ - this.min_0 = min_0; -} -; -_.size_2 = function size_82(){ - return 1; -} -; -_.toString_1 = function toString_166(options){ - var ret; - if (this.type_0 == 3) { - if (this.min_0 < 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '*'; - } - else if (this.min_0 == this.max_0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + '}'; - } - else if (this.min_0 >= 0 && this.max_0 >= 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}'; - } - else if (this.min_0 >= 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',}'; - } - else - throw toJs(new RuntimeException_0('Token#toString(): CLOSURE ' + this.min_0 + ', ' + this.max_0)); - } - else { - if (this.min_0 < 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '*?'; - } - else if (this.min_0 == this.max_0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + '}?'; - } - else if (this.min_0 >= 0 && this.max_0 >= 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',' + this.max_0 + '}?'; - } - else if (this.min_0 >= 0 && this.max_0 < 0) { - ret = this.child.toString_1(options) + '{' + this.min_0 + ',}?'; - } - else - throw toJs(new RuntimeException_0('Token#toString(): NONGREEDYCLOSURE ' + this.min_0 + ', ' + this.max_0)); - } - return ret; -} -; -_.max_0 = 0; -_.min_0 = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ClosureToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ClosureToken', 309); -function RegEx$Token$ConcatToken(t1, t2){ - RegEx$Token.call(this, 1); - this.child = t1; - this.child2 = t2; -} - -defineClass(821, 117, $intern_166, RegEx$Token$ConcatToken); -_.getChild = function getChild_1(index_0){ - return index_0 == 0?this.child:this.child2; -} -; -_.size_2 = function size_83(){ - return 2; -} -; -_.toString_1 = function toString_167(options){ - var ret; - this.child2.type_0 == 3 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+'):this.child2.type_0 == 9 && this.child2.getChild(0) == this.child?(ret = this.child.toString_1(options) + '+?'):(ret = this.child.toString_1(options) + ('' + this.child2.toString_1(options))); - return ret; -} -; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConcatToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConcatToken', 821); -function RegEx$Token$ConditionToken(refno, cond, yespat, nopat){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, 26); - this.refNumber = refno; - this.condition = cond; - this.yes = yespat; - this.no = nopat; -} - -defineClass(1822, 117, $intern_166, RegEx$Token$ConditionToken); -_.getChild = function getChild_2(index_0){ - if (index_0 == 0) - return this.yes; - if (index_0 == 1) - return this.no; - throw toJs(new RuntimeException_0('Internal Error: ' + index_0)); -} -; -_.size_2 = function size_84(){ - return !this.no?1:2; -} -; -_.toString_1 = function toString_168(options){ - var ret; - this.refNumber > 0?(ret = '(?(' + this.refNumber + ')'):this.condition.type_0 == 8?(ret = '(?(' + this.condition + ')'):(ret = '(?' + this.condition); - !this.no?(ret += this.yes + ')'):(ret += this.yes + '|' + this.no + ')'); - return ret; -} -; -_.refNumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ConditionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ConditionToken', 1822); -function RegEx$Token$ModifierToken(tok, add_0, mask){ - RegEx$Token.call(this, 25); - this.child = tok; - this.add_0 = add_0; - this.mask = mask; -} - -defineClass(1823, 117, $intern_166, RegEx$Token$ModifierToken); -_.getChild = function getChild_3(index_0){ - return this.child; -} -; -_.size_2 = function size_85(){ - return 1; -} -; -_.toString_1 = function toString_169(options){ - return '(?' + (this.add_0 == 0?'':createOptionString(this.add_0)) + (this.mask == 0?'':createOptionString(this.mask)) + ':' + this.child.toString_1(options) + ')'; -} -; -_.add_0 = 0; -_.mask = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ModifierToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ModifierToken', 1823); -function RegEx$Token$ParenToken(type_0, tok, paren){ - RegEx$Token.call(this, type_0); - this.child = tok; - this.parennumber = paren; -} - -defineClass(822, 117, $intern_166, RegEx$Token$ParenToken); -_.getChild = function getChild_4(index_0){ - return this.child; -} -; -_.size_2 = function size_86(){ - return 1; -} -; -_.toString_1 = function toString_170(options){ - var ret; - ret = null; - switch (this.type_0) { - case 6: - this.parennumber == 0?(ret = '(?:' + this.child.toString_1(options) + ')'):(ret = '(' + this.child.toString_1(options) + ')'); - break; - case 20: - ret = '(?=' + this.child.toString_1(options) + ')'; - break; - case 21: - ret = '(?!' + this.child.toString_1(options) + ')'; - break; - case 22: - ret = '(?<=' + this.child.toString_1(options) + ')'; - break; - case 23: - ret = '(?' + this.child.toString_1(options) + ')'; - } - return ret; -} -; -_.parennumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$ParenToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/ParenToken', 822); -function RegEx$Token$StringToken(type_0, str, n){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); - this.string = str; - this.refNumber = n; -} - -defineClass(521, 117, {3:1, 117:1, 521:1}, RegEx$Token$StringToken); -_.getString = function getString_0(){ - return this.string; -} -; -_.toString_1 = function toString_171(options){ - return this.type_0 == 12?'\\' + this.refNumber:quoteMeta(this.string); -} -; -_.refNumber = 0; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$StringToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/StringToken', 521); -function $addChild_0(this$static, tok){ - var buffer, ch_0, i, nextMaxLength, previous, size_0; - if (!tok) - return; - !this$static.children && (this$static.children = new Vector); - if (this$static.type_0 == 2) { - $addElement(this$static.children, tok); - return; - } - if (tok.type_0 == 1) { - for (i = 0; i < tok.size_2(); i++) - $addChild_0(this$static, tok.getChild(i)); - return; - } - size_0 = this$static.children.arrayList.array.length; - if (size_0 == 0) { - $addElement(this$static.children, tok); - return; - } - previous = castTo($elementAt(this$static.children, size_0 - 1), 117); - if (!((previous.type_0 == 0 || previous.type_0 == 10) && (tok.type_0 == 0 || tok.type_0 == 10))) { - $addElement(this$static.children, tok); - return; - } - nextMaxLength = tok.type_0 == 0?2:tok.getString().length; - if (previous.type_0 == 0) { - buffer = new StringBuffer_0; - ch_0 = previous.getChar(); - ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); - previous = (++tokens_0 , new RegEx$Token$StringToken(10, null, 0)); - $setElementAt(this$static.children, previous, size_0 - 1); - } - else { - buffer = (previous.getString().length + nextMaxLength , new StringBuffer_0); - $append_3(buffer, previous.getString()); - } - if (tok.type_0 == 0) { - ch_0 = tok.getChar(); - ch_0 >= $intern_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); - } - else { - $append_3(buffer, tok.getString()); - } - castTo(previous, 521).string = buffer.string; -} - -function RegEx$Token$UnionToken(type_0){ - $clinit_RegEx$Token(); - RegEx$Token.call(this, type_0); -} - -defineClass(465, 117, $intern_166, RegEx$Token$UnionToken); -_.addChild = function addChild_0(tok){ - $addChild_0(this, tok); -} -; -_.getChild = function getChild_5(index_0){ - return castTo($elementAt(this.children, index_0), 117); -} -; -_.size_2 = function size_87(){ - return !this.children?0:this.children.arrayList.array.length; -} -; -_.toString_1 = function toString_172(options){ - var ch_0, ch2, i, ret, sb; - if (this.type_0 == 1) { - if (this.children.arrayList.array.length == 2) { - ch_0 = castTo($elementAt(this.children, 0), 117); - ch2 = castTo($elementAt(this.children, 1), 117); - ch2.type_0 == 3 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+'):ch2.type_0 == 9 && ch2.getChild(0) == ch_0?(ret = ch_0.toString_1(options) + '+?'):(ret = ch_0.toString_1(options) + ('' + ch2.toString_1(options))); - } - else { - sb = new StringBuffer; - for (i = 0; i < this.children.arrayList.array.length; i++) { - $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); - } - ret = sb.string; - } - return ret; - } - if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 1), 117).type_0 == 7) { - ret = castTo($elementAt(this.children, 0), 117).toString_1(options) + '?'; - } - else if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 0), 117).type_0 == 7) { - ret = castTo($elementAt(this.children, 1), 117).toString_1(options) + '??'; - } - else { - sb = new StringBuffer; - $append_3(sb, castTo($elementAt(this.children, 0), 117).toString_1(options)); - for (i = 1; i < this.children.arrayList.array.length; i++) { - sb.string += '|'; - $append_3(sb, castTo($elementAt(this.children, i), 117).toString_1(options)); - } - ret = sb.string; - } - return ret; -} -; -var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$Token$UnionToken_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/Token/UnionToken', 465); -function normalize(value_0, collapse){ - var buffer, c, i, length_0, offset, skipSpace, valueArray; - if (value_0 == null) { - return null; - } - length_0 = value_0.length; - if (length_0 == 0) { - return ''; - } - valueArray = initUnidimensionalArray(C_classLit, $intern_44, 25, length_0, 15, 1); - checkCriticalStringBounds(0, length_0, value_0.length); - checkCriticalStringBounds(0, length_0, valueArray.length); - $getChars0(value_0, 0, length_0, valueArray, 0); - buffer = null; - skipSpace = collapse; - for (i = 0 , offset = 0; i < length_0; i++) { - c = valueArray[i]; - $clinit_DataValue$XMLChar(); - if (c <= 32 && (CHARS[c] & 2) != 0) { - if (skipSpace) { - !buffer && (buffer = new StringBuffer_1(value_0)); - $deleteCharAt(buffer, i - offset++); - } - else { - skipSpace = collapse; - if (c != 32) { - !buffer && (buffer = new StringBuffer_1(value_0)); - $replace0(buffer, i - offset, i - offset + 1, String.fromCharCode(32)); - } - } - } - else { - skipSpace = false; - } - } - if (skipSpace) { - if (!buffer) { - return value_0.substr(0, length_0 - 1); - } - else { - length_0 = buffer.string.length; - return length_0 > 0?$substring_1(buffer.string, 0, length_0 - 1):''; - } - } - else { - return !buffer?value_0:buffer.string; - } -} - -function XMLTypeUtil$PatternMatcherImpl(pattern){ - this.regularExpression = new RegEx$RegularExpression(pattern); -} - -defineClass(518, 1, {592:1}, XMLTypeUtil$PatternMatcherImpl); -_.toString_0 = function toString_173(){ - return this.regularExpression.regex; -} -; -var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeUtil$PatternMatcherImpl_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeUtil/PatternMatcherImpl', 518); -function $clinit_XMLTypeValidator(){ - $clinit_XMLTypeValidator = emptyMethod; - $clinit_EObjectValidator(); - INSTANCE_12 = new XMLTypeValidator; - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*')])]); - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[\\i-[:]][\\c-[:]]*')]), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); - new BigInteger_4('-1'); - stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 368, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\c+')])]); - new BigInteger_4('0'); - new BigInteger_4('0'); - new BigInteger_4('1'); - new BigInteger_4('0'); - new BigInteger_4('18446744073709551615'); -} - -function XMLTypeValidator(){ -} - -defineClass(1622, 1381, {}, XMLTypeValidator); -var INSTANCE_12; -var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeValidator_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeValidator', 1622); -function $clinit_ExclusiveRange(){ - $clinit_ExclusiveRange = emptyMethod; - EMPTY_LIST_ITERATOR = new ExclusiveRange$1; -} - -function ExclusiveRange(end){ - $clinit_ExclusiveRange(); - this.first = 0; - this.last = end - 1; - this.step = 1; -} - -defineClass(264, 1, $intern_23, ExclusiveRange); -_.forEach_0 = function forEach_41(action){ - $forEach_0(this, action); -} -; -_.iterator_0 = function iterator_91(){ - return (this.last - this.first) * this.step < 0?EMPTY_LIST_ITERATOR:new ExclusiveRange$RangeIterator(this); -} -; -_.first = 0; -_.last = 0; -_.step = 0; -var EMPTY_LIST_ITERATOR; -var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange', 264); -function $add_35(){ - throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); -} - -function $next_18(){ - throw toJs(new NoSuchElementException); -} - -function $previous_1(){ - throw toJs(new NoSuchElementException); -} - -function $set_20(){ - throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); -} - -function ExclusiveRange$1(){ -} - -defineClass(1068, 1, $intern_14, ExclusiveRange$1); -_.add_1 = function add_73(e){ - castTo(e, 19); - $add_35(); -} -; -_.forEachRemaining = function forEachRemaining_61(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_51(){ - return $next_18(); -} -; -_.previous_0 = function previous_12(){ - return $previous_1(); -} -; -_.set_1 = function set_45(e){ - castTo(e, 19); - $set_20(); -} -; -_.hasNext_0 = function hasNext_52(){ - return false; -} -; -_.hasPrevious = function hasPrevious_12(){ - return false; -} -; -_.nextIndex_0 = function nextIndex_12(){ - return -1; -} -; -_.previousIndex = function previousIndex_11(){ - return -1; -} -; -_.remove = function remove_132(){ - throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); -} -; -var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$1_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/1', 1068); -function $add_36(){ - throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); -} - -function $next_19(this$static){ - var value_0; - if (!(this$static.this$01.step < 0?this$static.next_0 >= this$static.this$01.last:this$static.next_0 <= this$static.this$01.last)) { - throw toJs(new NoSuchElementException); - } - value_0 = this$static.next_0; - this$static.next_0 += this$static.this$01.step; - ++this$static.nextIndex; - return valueOf_4(value_0); -} - -function $previous_2(this$static){ - if (this$static.nextIndex <= 0) - throw toJs(new NoSuchElementException); - --this$static.nextIndex; - this$static.next_0 -= this$static.this$01.step; - return valueOf_4(this$static.next_0); -} - -function $set_21(){ - throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); -} - -function ExclusiveRange$RangeIterator(this$0){ - this.this$01 = this$0; - this.next_0 = this.this$01.first; -} - -defineClass(254, 1, $intern_14, ExclusiveRange$RangeIterator); -_.add_1 = function add_74(e){ - castTo(e, 19); - $add_36(); -} -; -_.forEachRemaining = function forEachRemaining_62(consumer){ - $forEachRemaining(this, consumer); -} -; -_.next_1 = function next_52(){ - return $next_19(this); -} -; -_.previous_0 = function previous_13(){ - return $previous_2(this); -} -; -_.set_1 = function set_46(e){ - castTo(e, 19); - $set_21(); -} -; -_.hasNext_0 = function hasNext_53(){ - return this.this$01.step < 0?this.next_0 >= this.this$01.last:this.next_0 <= this.this$01.last; -} -; -_.hasPrevious = function hasPrevious_13(){ - return this.nextIndex > 0; -} -; -_.nextIndex_0 = function nextIndex_13(){ - return this.nextIndex; -} -; -_.previousIndex = function previousIndex_12(){ - return this.nextIndex - 1; -} -; -_.remove = function remove_133(){ - throw toJs(new UnsupportedOperationException_0('Cannot remove elements from a Range')); -} -; -_.next_0 = 0; -_.nextIndex = 0; -var Lorg_eclipse_xtext_xbase_lib_ExclusiveRange$RangeIterator_2_classLit = createForClass('org.eclipse.xtext.xbase.lib', 'ExclusiveRange/RangeIterator', 254); -function forEach_42(iterable, procedure){ - forEach_44(new AbstractEList$EIterator(iterable), procedure); -} - -function isEmpty_35(iterable){ - if (iterable) - return iterable.isEmpty(); - return !iterable.iterator_0().hasNext_0(); -} - -function isNullOrEmpty(iterable){ - return !iterable || isEmpty_35(iterable); -} - -function forEach_43(iterator, procedure){ - while (iterator.data_0 == null && !iterator.includeRoot?$hasAnyChildren(iterator):iterator.data_0 == null || iterator.size_0 != 0 && castTo(iterator.data_0[iterator.size_0 - 1], 47).hasNext_0()) { - $apply_28(procedure, $next_14(iterator)); - } -} - -function forEach_44(iterator, procedure){ - var i; - i = 0; - while (iterator.cursor != iterator.this$01_2.size_1()) { - $apply_29(procedure, $doNext(iterator), valueOf_4(i)); - i != $intern_0 && ++i; - } -} - -var C_classLit = createForPrimitive('char', 'C'); -var I_classLit = createForPrimitive('int', 'I'); -var Z_classLit = createForPrimitive('boolean', 'Z'); -var J_classLit = createForPrimitive('long', 'J'); -var B_classLit = createForPrimitive('byte', 'B'); -var D_classLit = createForPrimitive('double', 'D'); -var F_classLit = createForPrimitive('float', 'F'); -var S_classLit = createForPrimitive('short', 'S'); -var Lorg_eclipse_elk_core_labels_ILabelManager_2_classLit = createForInterface('org.eclipse.elk.core.labels', 'ILabelManager'); -var Lorg_eclipse_emf_common_util_DiagnosticChain_2_classLit = createForInterface('org.eclipse.emf.common.util', 'DiagnosticChain'); -var Lorg_eclipse_emf_ecore_resource_ResourceSet_2_classLit = createForInterface('org.eclipse.emf.ecore.resource', 'ResourceSet'); -var Lorg_eclipse_emf_common_util_InvocationTargetException_2_classLit = createForClass('org.eclipse.emf.common.util', 'InvocationTargetException', null); -var $entry = ($clinit_Impl() , entry_2); -var gwtOnLoad = gwtOnLoad = gwtOnLoad_0; -addInitFunctions(init); -setGwtProperty('permProps', [[['locale', 'default'], ['user.agent', 'gecko1_8']], [['locale', 'default'], ['user.agent', 'ie10']], [['locale', 'default'], ['user.agent', 'ie8']], [['locale', 'default'], ['user.agent', 'ie9']], [['locale', 'default'], ['user.agent', 'safari']]]); - -// -------------- RUN GWT INITIALIZATION CODE -------------- -gwtOnLoad(null, 'elk', null); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js b/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js deleted file mode 100644 index 10b98052..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk-worker.min.js +++ /dev/null @@ -1,6149 +0,0 @@ -'use strict'; - -// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- -var $wnd; -if (typeof window !== 'undefined') - $wnd = window -else if (typeof global !== 'undefined') - $wnd = global // nodejs -else if (typeof self !== 'undefined') - $wnd = self // web worker - -var $moduleName, - $moduleBase; - -// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- -var g, i, o; - -// -------------- GENERATED CODE -------------- -function nb(){} -function xb(){} -function Fd(){} -function $g(){} -function _p(){} -function yq(){} -function Sq(){} -function Es(){} -function Jw(){} -function Vw(){} -function VA(){} -function dA(){} -function MA(){} -function PA(){} -function PB(){} -function bx(){} -function cx(){} -function vy(){} -function Nz(){} -function Yz(){} -function Ylb(){} -function Ymb(){} -function xmb(){} -function Fmb(){} -function Qmb(){} -function gcb(){} -function ccb(){} -function jcb(){} -function jtb(){} -function otb(){} -function qtb(){} -function _fb(){} -function bpb(){} -function kpb(){} -function ppb(){} -function Gpb(){} -function drb(){} -function dzb(){} -function fzb(){} -function fxb(){} -function Vxb(){} -function Ovb(){} -function byb(){} -function zyb(){} -function Zyb(){} -function _yb(){} -function hzb(){} -function jzb(){} -function lzb(){} -function nzb(){} -function rzb(){} -function zzb(){} -function Czb(){} -function Ezb(){} -function Gzb(){} -function Izb(){} -function Mzb(){} -function bBb(){} -function NBb(){} -function PBb(){} -function RBb(){} -function iCb(){} -function OCb(){} -function SCb(){} -function GDb(){} -function JDb(){} -function fEb(){} -function xEb(){} -function CEb(){} -function GEb(){} -function yFb(){} -function KGb(){} -function tIb(){} -function vIb(){} -function xIb(){} -function zIb(){} -function OIb(){} -function SIb(){} -function TJb(){} -function VJb(){} -function XJb(){} -function XKb(){} -function fKb(){} -function VKb(){} -function VLb(){} -function jLb(){} -function nLb(){} -function GLb(){} -function KLb(){} -function MLb(){} -function OLb(){} -function RLb(){} -function YLb(){} -function bMb(){} -function gMb(){} -function lMb(){} -function pMb(){} -function wMb(){} -function zMb(){} -function CMb(){} -function FMb(){} -function LMb(){} -function zNb(){} -function PNb(){} -function kOb(){} -function pOb(){} -function tOb(){} -function yOb(){} -function FOb(){} -function GPb(){} -function aQb(){} -function cQb(){} -function eQb(){} -function gQb(){} -function iQb(){} -function CQb(){} -function MQb(){} -function OQb(){} -function ASb(){} -function fTb(){} -function kTb(){} -function STb(){} -function fUb(){} -function DUb(){} -function VUb(){} -function YUb(){} -function _Ub(){} -function _Wb(){} -function QWb(){} -function XWb(){} -function jVb(){} -function DVb(){} -function VVb(){} -function $Vb(){} -function dXb(){} -function hXb(){} -function lXb(){} -function gYb(){} -function HYb(){} -function SYb(){} -function VYb(){} -function dZb(){} -function P$b(){} -function T$b(){} -function h1b(){} -function m1b(){} -function q1b(){} -function u1b(){} -function y1b(){} -function C1b(){} -function e2b(){} -function g2b(){} -function m2b(){} -function q2b(){} -function u2b(){} -function S2b(){} -function U2b(){} -function W2b(){} -function _2b(){} -function e3b(){} -function h3b(){} -function p3b(){} -function t3b(){} -function w3b(){} -function y3b(){} -function A3b(){} -function M3b(){} -function Q3b(){} -function U3b(){} -function Y3b(){} -function l4b(){} -function q4b(){} -function s4b(){} -function u4b(){} -function w4b(){} -function y4b(){} -function L4b(){} -function N4b(){} -function P4b(){} -function R4b(){} -function T4b(){} -function X4b(){} -function I5b(){} -function Q5b(){} -function T5b(){} -function Z5b(){} -function l6b(){} -function o6b(){} -function t6b(){} -function z6b(){} -function L6b(){} -function M6b(){} -function P6b(){} -function X6b(){} -function $6b(){} -function a7b(){} -function c7b(){} -function g7b(){} -function j7b(){} -function m7b(){} -function r7b(){} -function x7b(){} -function D7b(){} -function D9b(){} -function b9b(){} -function h9b(){} -function j9b(){} -function l9b(){} -function w9b(){} -function F9b(){} -function hac(){} -function jac(){} -function pac(){} -function uac(){} -function Iac(){} -function Kac(){} -function Sac(){} -function obc(){} -function rbc(){} -function vbc(){} -function Fbc(){} -function Jbc(){} -function Xbc(){} -function ccc(){} -function fcc(){} -function lcc(){} -function occ(){} -function tcc(){} -function ycc(){} -function Acc(){} -function Ccc(){} -function Ecc(){} -function Gcc(){} -function Zcc(){} -function _cc(){} -function bdc(){} -function fdc(){} -function jdc(){} -function pdc(){} -function sdc(){} -function ydc(){} -function Adc(){} -function Cdc(){} -function Edc(){} -function Idc(){} -function Ndc(){} -function Qdc(){} -function Sdc(){} -function Udc(){} -function Wdc(){} -function Ydc(){} -function aec(){} -function hec(){} -function jec(){} -function lec(){} -function nec(){} -function uec(){} -function wec(){} -function yec(){} -function Aec(){} -function Fec(){} -function Jec(){} -function Lec(){} -function Nec(){} -function Rec(){} -function Uec(){} -function Zec(){} -function Zfc(){} -function lfc(){} -function tfc(){} -function xfc(){} -function zfc(){} -function Ffc(){} -function Jfc(){} -function Nfc(){} -function Pfc(){} -function Vfc(){} -function _fc(){} -function fgc(){} -function jgc(){} -function lgc(){} -function Bgc(){} -function ehc(){} -function ghc(){} -function ihc(){} -function khc(){} -function mhc(){} -function ohc(){} -function qhc(){} -function yhc(){} -function Ahc(){} -function Ghc(){} -function Ihc(){} -function Khc(){} -function Mhc(){} -function Shc(){} -function Uhc(){} -function Whc(){} -function dic(){} -function dlc(){} -function blc(){} -function flc(){} -function hlc(){} -function jlc(){} -function Glc(){} -function Ilc(){} -function Klc(){} -function Mlc(){} -function Mjc(){} -function Qjc(){} -function Qlc(){} -function Ulc(){} -function Ylc(){} -function Lkc(){} -function Nkc(){} -function Pkc(){} -function Rkc(){} -function Xkc(){} -function _kc(){} -function gmc(){} -function kmc(){} -function zmc(){} -function Fmc(){} -function Wmc(){} -function $mc(){} -function anc(){} -function mnc(){} -function wnc(){} -function Hnc(){} -function Jnc(){} -function Lnc(){} -function Nnc(){} -function Pnc(){} -function Ync(){} -function eoc(){} -function Aoc(){} -function Coc(){} -function Eoc(){} -function Joc(){} -function Loc(){} -function Zoc(){} -function _oc(){} -function bpc(){} -function hpc(){} -function kpc(){} -function ppc(){} -function pFc(){} -function Ryc(){} -function QCc(){} -function PDc(){} -function xGc(){} -function HGc(){} -function JGc(){} -function NGc(){} -function GIc(){} -function iKc(){} -function mKc(){} -function wKc(){} -function yKc(){} -function AKc(){} -function EKc(){} -function KKc(){} -function OKc(){} -function QKc(){} -function SKc(){} -function UKc(){} -function YKc(){} -function aLc(){} -function fLc(){} -function hLc(){} -function nLc(){} -function pLc(){} -function tLc(){} -function vLc(){} -function zLc(){} -function BLc(){} -function DLc(){} -function FLc(){} -function sMc(){} -function JMc(){} -function hNc(){} -function RNc(){} -function ZNc(){} -function _Nc(){} -function bOc(){} -function dOc(){} -function fOc(){} -function hOc(){} -function hRc(){} -function jRc(){} -function KRc(){} -function NRc(){} -function NQc(){} -function LQc(){} -function _Qc(){} -function cPc(){} -function iPc(){} -function kPc(){} -function mPc(){} -function xPc(){} -function zPc(){} -function zSc(){} -function BSc(){} -function GSc(){} -function ISc(){} -function NSc(){} -function TSc(){} -function NTc(){} -function NVc(){} -function oVc(){} -function SVc(){} -function VVc(){} -function XVc(){} -function ZVc(){} -function bWc(){} -function bXc(){} -function CXc(){} -function FXc(){} -function IXc(){} -function MXc(){} -function UXc(){} -function bYc(){} -function fYc(){} -function oYc(){} -function qYc(){} -function uYc(){} -function pZc(){} -function G$c(){} -function h0c(){} -function N0c(){} -function k1c(){} -function I1c(){} -function Q1c(){} -function f2c(){} -function i2c(){} -function k2c(){} -function w2c(){} -function O2c(){} -function S2c(){} -function Z2c(){} -function v3c(){} -function x3c(){} -function R3c(){} -function U3c(){} -function e4c(){} -function w4c(){} -function x4c(){} -function z4c(){} -function B4c(){} -function D4c(){} -function F4c(){} -function H4c(){} -function J4c(){} -function L4c(){} -function N4c(){} -function P4c(){} -function R4c(){} -function T4c(){} -function V4c(){} -function X4c(){} -function Z4c(){} -function _4c(){} -function _7c(){} -function b5c(){} -function d5c(){} -function f5c(){} -function h5c(){} -function H5c(){} -function Hfd(){} -function Zfd(){} -function Zed(){} -function ged(){} -function Jed(){} -function Ned(){} -function Red(){} -function Ved(){} -function bbd(){} -function mdd(){} -function _fd(){} -function fgd(){} -function kgd(){} -function Mgd(){} -function Ahd(){} -function Ald(){} -function Tld(){} -function xkd(){} -function rmd(){} -function knd(){} -function Jod(){} -function JCd(){} -function Bpd(){} -function BFd(){} -function oFd(){} -function bqd(){} -function bvd(){} -function jvd(){} -function yud(){} -function Hxd(){} -function EBd(){} -function aDd(){} -function MGd(){} -function vHd(){} -function RHd(){} -function wNd(){} -function zNd(){} -function CNd(){} -function KNd(){} -function XNd(){} -function $Nd(){} -function HPd(){} -function lUd(){} -function XUd(){} -function DWd(){} -function GWd(){} -function JWd(){} -function MWd(){} -function PWd(){} -function SWd(){} -function VWd(){} -function YWd(){} -function _Wd(){} -function xYd(){} -function BYd(){} -function mZd(){} -function EZd(){} -function GZd(){} -function JZd(){} -function MZd(){} -function PZd(){} -function SZd(){} -function VZd(){} -function YZd(){} -function _Zd(){} -function c$d(){} -function f$d(){} -function i$d(){} -function l$d(){} -function o$d(){} -function r$d(){} -function u$d(){} -function x$d(){} -function A$d(){} -function D$d(){} -function G$d(){} -function J$d(){} -function M$d(){} -function P$d(){} -function S$d(){} -function V$d(){} -function Y$d(){} -function _$d(){} -function c_d(){} -function f_d(){} -function i_d(){} -function l_d(){} -function o_d(){} -function r_d(){} -function u_d(){} -function x_d(){} -function A_d(){} -function D_d(){} -function G_d(){} -function J_d(){} -function M_d(){} -function P_d(){} -function S_d(){} -function V_d(){} -function Y_d(){} -function h5d(){} -function U6d(){} -function U9d(){} -function _8d(){} -function fae(){} -function hae(){} -function kae(){} -function nae(){} -function qae(){} -function tae(){} -function wae(){} -function zae(){} -function Cae(){} -function Fae(){} -function Iae(){} -function Lae(){} -function Oae(){} -function Rae(){} -function Uae(){} -function Xae(){} -function $ae(){} -function bbe(){} -function ebe(){} -function hbe(){} -function kbe(){} -function nbe(){} -function qbe(){} -function tbe(){} -function wbe(){} -function zbe(){} -function Cbe(){} -function Fbe(){} -function Ibe(){} -function Lbe(){} -function Obe(){} -function Rbe(){} -function Ube(){} -function Xbe(){} -function $be(){} -function bce(){} -function ece(){} -function hce(){} -function kce(){} -function nce(){} -function qce(){} -function tce(){} -function wce(){} -function zce(){} -function Cce(){} -function Fce(){} -function Ice(){} -function Lce(){} -function Oce(){} -function Rce(){} -function Uce(){} -function Xce(){} -function ude(){} -function Vge(){} -function dhe(){} -function s_b(a){} -function jSd(a){} -function ol(){wb()} -function oPb(){nPb()} -function EPb(){CPb()} -function gFb(){fFb()} -function TRb(){SRb()} -function ySb(){wSb()} -function PSb(){OSb()} -function dTb(){bTb()} -function i4b(){b4b()} -function D2b(){x2b()} -function J6b(){D6b()} -function u9b(){q9b()} -function $9b(){I9b()} -function Umc(){Imc()} -function abc(){Vac()} -function ZCc(){VCc()} -function kCc(){hCc()} -function rCc(){oCc()} -function Tcc(){Occ()} -function xkc(){gkc()} -function xDc(){rDc()} -function iDc(){cDc()} -function kwc(){jwc()} -function tJc(){jJc()} -function dJc(){aJc()} -function Pyc(){Nyc()} -function VBc(){SBc()} -function CFc(){yFc()} -function CUc(){wUc()} -function lUc(){fUc()} -function sUc(){pUc()} -function IUc(){GUc()} -function IWc(){HWc()} -function _Wc(){ZWc()} -function fHc(){dHc()} -function f0c(){d0c()} -function B0c(){A0c()} -function L0c(){J0c()} -function LTc(){JTc()} -function sTc(){rTc()} -function KLc(){ILc()} -function wNc(){tNc()} -function PYc(){OYc()} -function nZc(){lZc()} -function q3c(){p3c()} -function Z7c(){X7c()} -function Z9c(){Y9c()} -function _ad(){Zad()} -function kdd(){idd()} -function $md(){Smd()} -function HGd(){tGd()} -function hLd(){NKd()} -function J6d(){Uge()} -function Mvb(a){uCb(a)} -function Yb(a){this.a=a} -function cc(a){this.a=a} -function cj(a){this.a=a} -function ij(a){this.a=a} -function Dj(a){this.a=a} -function df(a){this.a=a} -function kf(a){this.a=a} -function ah(a){this.a=a} -function lh(a){this.a=a} -function th(a){this.a=a} -function Ph(a){this.a=a} -function vi(a){this.a=a} -function Ci(a){this.a=a} -function Fk(a){this.a=a} -function Ln(a){this.a=a} -function ap(a){this.a=a} -function zp(a){this.a=a} -function Yp(a){this.a=a} -function qq(a){this.a=a} -function Dq(a){this.a=a} -function wr(a){this.a=a} -function Ir(a){this.b=a} -function sj(a){this.c=a} -function sw(a){this.a=a} -function fw(a){this.a=a} -function xw(a){this.a=a} -function Cw(a){this.a=a} -function Qw(a){this.a=a} -function Rw(a){this.a=a} -function Xw(a){this.a=a} -function Xv(a){this.a=a} -function Sv(a){this.a=a} -function eu(a){this.a=a} -function Zx(a){this.a=a} -function _x(a){this.a=a} -function xy(a){this.a=a} -function xB(a){this.a=a} -function HB(a){this.a=a} -function TB(a){this.a=a} -function fC(a){this.a=a} -function wB(){this.a=[]} -function MBb(a,b){a.a=b} -function w_b(a,b){a.a=b} -function x_b(a,b){a.b=b} -function YOb(a,b){a.b=b} -function $Ob(a,b){a.b=b} -function ZGb(a,b){a.j=b} -function qNb(a,b){a.g=b} -function rNb(a,b){a.i=b} -function dRb(a,b){a.c=b} -function eRb(a,b){a.d=b} -function z_b(a,b){a.d=b} -function y_b(a,b){a.c=b} -function __b(a,b){a.k=b} -function E0b(a,b){a.c=b} -function njc(a,b){a.c=b} -function mjc(a,b){a.a=b} -function dFc(a,b){a.a=b} -function eFc(a,b){a.f=b} -function nOc(a,b){a.a=b} -function oOc(a,b){a.b=b} -function pOc(a,b){a.d=b} -function qOc(a,b){a.i=b} -function rOc(a,b){a.o=b} -function sOc(a,b){a.r=b} -function $Pc(a,b){a.a=b} -function _Pc(a,b){a.b=b} -function DVc(a,b){a.e=b} -function EVc(a,b){a.f=b} -function FVc(a,b){a.g=b} -function SZc(a,b){a.e=b} -function TZc(a,b){a.f=b} -function c$c(a,b){a.f=b} -function bJd(a,b){a.n=b} -function A1d(a,b){a.a=b} -function J1d(a,b){a.a=b} -function B1d(a,b){a.c=b} -function K1d(a,b){a.c=b} -function L1d(a,b){a.d=b} -function M1d(a,b){a.e=b} -function N1d(a,b){a.g=b} -function d2d(a,b){a.a=b} -function e2d(a,b){a.c=b} -function f2d(a,b){a.d=b} -function g2d(a,b){a.e=b} -function h2d(a,b){a.f=b} -function i2d(a,b){a.j=b} -function Z8d(a,b){a.a=b} -function $8d(a,b){a.b=b} -function g9d(a,b){a.a=b} -function Cic(a){a.b=a.a} -function Dg(a){a.c=a.d.d} -function vib(a){this.d=a} -function eib(a){this.a=a} -function Pib(a){this.a=a} -function Vib(a){this.a=a} -function $ib(a){this.a=a} -function mcb(a){this.a=a} -function Mcb(a){this.a=a} -function Xcb(a){this.a=a} -function Ndb(a){this.a=a} -function _db(a){this.a=a} -function teb(a){this.a=a} -function Qeb(a){this.a=a} -function djb(a){this.a=a} -function Gjb(a){this.a=a} -function Njb(a){this.a=a} -function Bjb(a){this.b=a} -function lnb(a){this.b=a} -function Dnb(a){this.b=a} -function anb(a){this.a=a} -function Mob(a){this.a=a} -function Rob(a){this.a=a} -function iob(a){this.c=a} -function olb(a){this.c=a} -function qub(a){this.c=a} -function Tub(a){this.a=a} -function Vub(a){this.a=a} -function Xub(a){this.a=a} -function Zub(a){this.a=a} -function tpb(a){this.a=a} -function _pb(a){this.a=a} -function Wqb(a){this.a=a} -function nsb(a){this.a=a} -function Rxb(a){this.a=a} -function Txb(a){this.a=a} -function Xxb(a){this.a=a} -function bzb(a){this.a=a} -function tzb(a){this.a=a} -function vzb(a){this.a=a} -function xzb(a){this.a=a} -function Kzb(a){this.a=a} -function Ozb(a){this.a=a} -function iAb(a){this.a=a} -function kAb(a){this.a=a} -function mAb(a){this.a=a} -function BAb(a){this.a=a} -function hBb(a){this.a=a} -function jBb(a){this.a=a} -function nBb(a){this.a=a} -function TBb(a){this.a=a} -function XBb(a){this.a=a} -function QCb(a){this.a=a} -function WCb(a){this.a=a} -function _Cb(a){this.a=a} -function dEb(a){this.a=a} -function QGb(a){this.a=a} -function YGb(a){this.a=a} -function tKb(a){this.a=a} -function CLb(a){this.a=a} -function JMb(a){this.a=a} -function RNb(a){this.a=a} -function kQb(a){this.a=a} -function mQb(a){this.a=a} -function FQb(a){this.a=a} -function ETb(a){this.a=a} -function UTb(a){this.a=a} -function dUb(a){this.a=a} -function hUb(a){this.a=a} -function EZb(a){this.a=a} -function j$b(a){this.a=a} -function v$b(a){this.e=a} -function J0b(a){this.a=a} -function M0b(a){this.a=a} -function R0b(a){this.a=a} -function U0b(a){this.a=a} -function i2b(a){this.a=a} -function k2b(a){this.a=a} -function o2b(a){this.a=a} -function s2b(a){this.a=a} -function G2b(a){this.a=a} -function I2b(a){this.a=a} -function K2b(a){this.a=a} -function M2b(a){this.a=a} -function W3b(a){this.a=a} -function $3b(a){this.a=a} -function V4b(a){this.a=a} -function u5b(a){this.a=a} -function A7b(a){this.a=a} -function G7b(a){this.a=a} -function J7b(a){this.a=a} -function M7b(a){this.a=a} -function Mbc(a){this.a=a} -function Pbc(a){this.a=a} -function lac(a){this.a=a} -function nac(a){this.a=a} -function qcc(a){this.a=a} -function Gdc(a){this.a=a} -function $dc(a){this.a=a} -function cec(a){this.a=a} -function _ec(a){this.a=a} -function pfc(a){this.a=a} -function Bfc(a){this.a=a} -function Lfc(a){this.a=a} -function ygc(a){this.a=a} -function Dgc(a){this.a=a} -function shc(a){this.a=a} -function uhc(a){this.a=a} -function whc(a){this.a=a} -function Chc(a){this.a=a} -function Ehc(a){this.a=a} -function Ohc(a){this.a=a} -function Yhc(a){this.a=a} -function Tkc(a){this.a=a} -function Vkc(a){this.a=a} -function Olc(a){this.a=a} -function pnc(a){this.a=a} -function rnc(a){this.a=a} -function dpc(a){this.a=a} -function fpc(a){this.a=a} -function GCc(a){this.a=a} -function KCc(a){this.a=a} -function mDc(a){this.a=a} -function jEc(a){this.a=a} -function HEc(a){this.a=a} -function FEc(a){this.c=a} -function qoc(a){this.b=a} -function bFc(a){this.a=a} -function GFc(a){this.a=a} -function iGc(a){this.a=a} -function kGc(a){this.a=a} -function mGc(a){this.a=a} -function $Gc(a){this.a=a} -function hIc(a){this.a=a} -function lIc(a){this.a=a} -function pIc(a){this.a=a} -function tIc(a){this.a=a} -function xIc(a){this.a=a} -function zIc(a){this.a=a} -function CIc(a){this.a=a} -function LIc(a){this.a=a} -function CKc(a){this.a=a} -function IKc(a){this.a=a} -function MKc(a){this.a=a} -function $Kc(a){this.a=a} -function cLc(a){this.a=a} -function jLc(a){this.a=a} -function rLc(a){this.a=a} -function xLc(a){this.a=a} -function OMc(a){this.a=a} -function ZOc(a){this.a=a} -function ZRc(a){this.a=a} -function aSc(a){this.a=a} -function I$c(a){this.a=a} -function K$c(a){this.a=a} -function M$c(a){this.a=a} -function O$c(a){this.a=a} -function U$c(a){this.a=a} -function n1c(a){this.a=a} -function z1c(a){this.a=a} -function B1c(a){this.a=a} -function Q2c(a){this.a=a} -function U2c(a){this.a=a} -function z3c(a){this.a=a} -function med(a){this.a=a} -function Xed(a){this.a=a} -function _ed(a){this.a=a} -function Qfd(a){this.a=a} -function Bgd(a){this.a=a} -function $gd(a){this.a=a} -function lrd(a){this.a=a} -function urd(a){this.a=a} -function vrd(a){this.a=a} -function wrd(a){this.a=a} -function xrd(a){this.a=a} -function yrd(a){this.a=a} -function zrd(a){this.a=a} -function Ard(a){this.a=a} -function Brd(a){this.a=a} -function Crd(a){this.a=a} -function Ird(a){this.a=a} -function Krd(a){this.a=a} -function Lrd(a){this.a=a} -function Mrd(a){this.a=a} -function Nrd(a){this.a=a} -function Prd(a){this.a=a} -function Srd(a){this.a=a} -function Yrd(a){this.a=a} -function Zrd(a){this.a=a} -function _rd(a){this.a=a} -function asd(a){this.a=a} -function bsd(a){this.a=a} -function csd(a){this.a=a} -function dsd(a){this.a=a} -function msd(a){this.a=a} -function osd(a){this.a=a} -function qsd(a){this.a=a} -function ssd(a){this.a=a} -function Wsd(a){this.a=a} -function Lsd(a){this.b=a} -function thd(a){this.f=a} -function qtd(a){this.a=a} -function yBd(a){this.a=a} -function GBd(a){this.a=a} -function MBd(a){this.a=a} -function SBd(a){this.a=a} -function iCd(a){this.a=a} -function YMd(a){this.a=a} -function GNd(a){this.a=a} -function EPd(a){this.a=a} -function EQd(a){this.a=a} -function NTd(a){this.a=a} -function qOd(a){this.b=a} -function lVd(a){this.c=a} -function VVd(a){this.e=a} -function iYd(a){this.a=a} -function RYd(a){this.a=a} -function ZYd(a){this.a=a} -function z0d(a){this.a=a} -function O0d(a){this.a=a} -function s0d(a){this.d=a} -function W5d(a){this.a=a} -function cge(a){this.a=a} -function xfe(a){this.e=a} -function Tfd(){this.a=0} -function jkb(){Vjb(this)} -function Rkb(){Ckb(this)} -function Lqb(){Uhb(this)} -function lEb(){kEb(this)} -function A_b(){s_b(this)} -function UQd(){this.c=FQd} -function v6d(a,b){b.Wb(a)} -function moc(a,b){a.b+=b} -function yXb(a){a.b=new Ji} -function vbb(a){return a.e} -function DB(a){return a.a} -function LB(a){return a.a} -function ZB(a){return a.a} -function lC(a){return a.a} -function EC(a){return a.a} -function wC(){return null} -function SB(){return null} -function hcb(){mvd();ovd()} -function zJb(a){a.b.tf(a.e)} -function j5b(a,b){a.b=b-a.b} -function g5b(a,b){a.a=b-a.a} -function PXc(a,b){b.ad(a.a)} -function plc(a,b){G0b(b,a)} -function hp(a,b,c){a.Od(c,b)} -function As(a,b){a.e=b;b.b=a} -function Zl(a){Ql();this.a=a} -function jq(a){Ql();this.a=a} -function sq(a){Ql();this.a=a} -function Fq(a){im();this.a=a} -function Sz(a){Rz();Qz.be(a)} -function gz(){Xy.call(this)} -function xcb(){Xy.call(this)} -function pcb(){gz.call(this)} -function tcb(){gz.call(this)} -function Bdb(){gz.call(this)} -function Vdb(){gz.call(this)} -function Ydb(){gz.call(this)} -function Geb(){gz.call(this)} -function bgb(){gz.call(this)} -function Apb(){gz.call(this)} -function Jpb(){gz.call(this)} -function utb(){gz.call(this)} -function x2c(){gz.call(this)} -function rQd(){this.a=this} -function MPd(){this.Bb|=256} -function tTb(){this.b=new mt} -function fA(){fA=ccb;new Lqb} -function rcb(){pcb.call(this)} -function dCb(a,b){a.length=b} -function Tvb(a,b){Ekb(a.a,b)} -function sKb(a,b){UHb(a.c,b)} -function SMc(a,b){Qqb(a.b,b)} -function vBd(a,b){uAd(a.a,b)} -function wBd(a,b){vAd(a.a,b)} -function GLd(a,b){Uhd(a.e,b)} -function d7d(a){D2d(a.c,a.b)} -function mj(a,b){a.kc().Nb(b)} -function Odb(a){this.a=Tdb(a)} -function Tqb(){this.a=new Lqb} -function gyb(){this.a=new Lqb} -function Wvb(){this.a=new Rkb} -function KFb(){this.a=new Rkb} -function PFb(){this.a=new Rkb} -function FFb(){this.a=new yFb} -function pGb(){this.a=new MFb} -function ZQb(){this.a=new MQb} -function Gxb(){this.a=new Pwb} -function jUb(){this.a=new PTb} -function sDb(){this.a=new oDb} -function zDb(){this.a=new tDb} -function CWb(){this.a=new Rkb} -function HXb(){this.a=new Rkb} -function nYb(){this.a=new Rkb} -function BYb(){this.a=new Rkb} -function fLb(){this.d=new Rkb} -function vYb(){this.a=new Tqb} -function a2b(){this.a=new Lqb} -function wZb(){this.b=new Lqb} -function TCc(){this.b=new Rkb} -function zJc(){this.e=new Rkb} -function uMc(){this.d=new Rkb} -function wdc(){this.a=new xkc} -function vKc(){Rkb.call(this)} -function twb(){Wvb.call(this)} -function oHb(){$Gb.call(this)} -function LXb(){HXb.call(this)} -function L_b(){H_b.call(this)} -function H_b(){A_b.call(this)} -function p0b(){A_b.call(this)} -function s0b(){p0b.call(this)} -function WMc(){VMc.call(this)} -function bNc(){VMc.call(this)} -function EPc(){CPc.call(this)} -function JPc(){CPc.call(this)} -function OPc(){CPc.call(this)} -function w1c(){s1c.call(this)} -function s7c(){Psb.call(this)} -function apd(){Ald.call(this)} -function ppd(){Ald.call(this)} -function lDd(){YCd.call(this)} -function NDd(){YCd.call(this)} -function mFd(){Lqb.call(this)} -function vFd(){Lqb.call(this)} -function GFd(){Lqb.call(this)} -function KPd(){Tqb.call(this)} -function OJd(){hJd.call(this)} -function aQd(){MPd.call(this)} -function SSd(){FId.call(this)} -function rUd(){FId.call(this)} -function oUd(){Lqb.call(this)} -function NYd(){Lqb.call(this)} -function cZd(){Lqb.call(this)} -function R8d(){MGd.call(this)} -function o9d(){MGd.call(this)} -function i9d(){R8d.call(this)} -function hee(){ude.call(this)} -function Dd(a){yd.call(this,a)} -function Hd(a){yd.call(this,a)} -function ph(a){lh.call(this,a)} -function Sh(a){Wc.call(this,a)} -function oi(a){Sh.call(this,a)} -function Ii(a){Wc.call(this,a)} -function Zdd(){this.a=new Psb} -function CPc(){this.a=new Tqb} -function s1c(){this.a=new Lqb} -function QSc(){this.a=new Rkb} -function D2c(){this.j=new Rkb} -function QXc(){this.a=new UXc} -function e_c(){this.a=new d_c} -function YCd(){this.a=new aDd} -function _k(){_k=ccb;$k=new al} -function Lk(){Lk=ccb;Kk=new Mk} -function wb(){wb=ccb;vb=new xb} -function hs(){hs=ccb;gs=new is} -function rs(a){Sh.call(this,a)} -function Gp(a){Sh.call(this,a)} -function xp(a){Lo.call(this,a)} -function Ep(a){Lo.call(this,a)} -function Tp(a){Wn.call(this,a)} -function wx(a){un.call(this,a)} -function ov(a){dv.call(this,a)} -function Mv(a){Br.call(this,a)} -function Ov(a){Br.call(this,a)} -function Lw(a){Br.call(this,a)} -function hz(a){Yy.call(this,a)} -function MB(a){hz.call(this,a)} -function eC(){fC.call(this,{})} -function Ftb(a){Atb();this.a=a} -function zwb(a){a.b=null;a.c=0} -function Vy(a,b){a.e=b;Sy(a,b)} -function LVb(a,b){a.a=b;NVb(a)} -function lIb(a,b,c){a.a[b.g]=c} -function vfd(a,b,c){Dfd(c,a,b)} -function Odc(a,b){rjc(b.i,a.n)} -function Wyc(a,b){Xyc(a).td(b)} -function ERb(a,b){return a*a/b} -function Xr(a,b){return a.g-b.g} -function tC(a){return new TB(a)} -function vC(a){return new yC(a)} -function ocb(a){hz.call(this,a)} -function qcb(a){hz.call(this,a)} -function ucb(a){hz.call(this,a)} -function vcb(a){Yy.call(this,a)} -function fGc(a){LFc();this.a=a} -function c0d(a){kzd();this.a=a} -function bhd(a){Rgd();this.f=a} -function dhd(a){Rgd();this.f=a} -function Cdb(a){hz.call(this,a)} -function Wdb(a){hz.call(this,a)} -function Zdb(a){hz.call(this,a)} -function Feb(a){hz.call(this,a)} -function Heb(a){hz.call(this,a)} -function Ccb(a){return uCb(a),a} -function Edb(a){return uCb(a),a} -function Gdb(a){return uCb(a),a} -function jfb(a){return uCb(a),a} -function tfb(a){return uCb(a),a} -function akb(a){return a.b==a.c} -function Hwb(a){return !!a&&a.b} -function pIb(a){return !!a&&a.k} -function qIb(a){return !!a&&a.j} -function amb(a){uCb(a);this.a=a} -function wVb(a){qVb(a);return a} -function Blb(a){Glb(a,a.length)} -function cgb(a){hz.call(this,a)} -function cqd(a){hz.call(this,a)} -function n8d(a){hz.call(this,a)} -function y2c(a){hz.call(this,a)} -function z2c(a){hz.call(this,a)} -function mde(a){hz.call(this,a)} -function pc(a){qc.call(this,a,0)} -function Ji(){Ki.call(this,12,3)} -function Kz(){Kz=ccb;Jz=new Nz} -function jz(){jz=ccb;iz=new nb} -function KA(){KA=ccb;JA=new MA} -function OB(){OB=ccb;NB=new PB} -function jc(){throw vbb(new bgb)} -function zh(){throw vbb(new bgb)} -function Pi(){throw vbb(new bgb)} -function Pj(){throw vbb(new bgb)} -function Qj(){throw vbb(new bgb)} -function Ym(){throw vbb(new bgb)} -function Gb(){this.a=GD(Qb(She))} -function oy(a){Ql();this.a=Qb(a)} -function Bs(a,b){a.Td(b);b.Sd(a)} -function iw(a,b){a.a.ec().Mc(b)} -function CYb(a,b,c){a.c.lf(b,c)} -function scb(a){qcb.call(this,a)} -function Oeb(a){Wdb.call(this,a)} -function Hfb(){mcb.call(this,'')} -function Ifb(){mcb.call(this,'')} -function Ufb(){mcb.call(this,'')} -function Vfb(){mcb.call(this,'')} -function Xfb(a){qcb.call(this,a)} -function zob(a){lnb.call(this,a)} -function Yob(a){Inb.call(this,a)} -function Gob(a){zob.call(this,a)} -function Mk(){Fk.call(this,null)} -function al(){Fk.call(this,null)} -function Az(){Az=ccb;!!(Rz(),Qz)} -function wrb(){wrb=ccb;vrb=yrb()} -function Mtb(a){return a.a?a.b:0} -function Vtb(a){return a.a?a.b:0} -function Lcb(a,b){return a.a-b.a} -function Wcb(a,b){return a.a-b.a} -function Peb(a,b){return a.a-b.a} -function eCb(a,b){return PC(a,b)} -function GC(a,b){return rdb(a,b)} -function _B(b,a){return a in b.a} -function _Db(a,b){a.f=b;return a} -function ZDb(a,b){a.b=b;return a} -function $Db(a,b){a.c=b;return a} -function aEb(a,b){a.g=b;return a} -function HGb(a,b){a.a=b;return a} -function IGb(a,b){a.f=b;return a} -function JGb(a,b){a.k=b;return a} -function dLb(a,b){a.a=b;return a} -function eLb(a,b){a.e=b;return a} -function zVb(a,b){a.e=b;return a} -function AVb(a,b){a.f=b;return a} -function KOb(a,b){a.b=true;a.d=b} -function DHb(a,b){a.b=new g7c(b)} -function uvb(a,b,c){b.td(a.a[c])} -function zvb(a,b,c){b.we(a.a[c])} -function wJc(a,b){return a.b-b.b} -function kOc(a,b){return a.g-b.g} -function WQc(a,b){return a.s-b.s} -function Lic(a,b){return a?0:b-1} -function SFc(a,b){return a?0:b-1} -function RFc(a,b){return a?b-1:0} -function M2c(a,b){return b.Yf(a)} -function M3c(a,b){a.b=b;return a} -function L3c(a,b){a.a=b;return a} -function N3c(a,b){a.c=b;return a} -function O3c(a,b){a.d=b;return a} -function P3c(a,b){a.e=b;return a} -function Q3c(a,b){a.f=b;return a} -function b4c(a,b){a.a=b;return a} -function c4c(a,b){a.b=b;return a} -function d4c(a,b){a.c=b;return a} -function z5c(a,b){a.c=b;return a} -function y5c(a,b){a.b=b;return a} -function A5c(a,b){a.d=b;return a} -function B5c(a,b){a.e=b;return a} -function C5c(a,b){a.f=b;return a} -function D5c(a,b){a.g=b;return a} -function E5c(a,b){a.a=b;return a} -function F5c(a,b){a.i=b;return a} -function G5c(a,b){a.j=b;return a} -function Vdd(a,b){a.k=b;return a} -function Wdd(a,b){a.j=b;return a} -function ykc(a,b){gkc();F0b(b,a)} -function T$c(a,b,c){R$c(a.a,b,c)} -function RGc(a){cEc.call(this,a)} -function iHc(a){cEc.call(this,a)} -function t7c(a){Qsb.call(this,a)} -function aPb(a){_Ob.call(this,a)} -function Ixd(a){zud.call(this,a)} -function dCd(a){ZBd.call(this,a)} -function fCd(a){ZBd.call(this,a)} -function p_b(){q_b.call(this,'')} -function d7c(){this.a=0;this.b=0} -function aPc(){this.b=0;this.a=0} -function NJd(a,b){a.b=0;DId(a,b)} -function X1d(a,b){a.c=b;a.b=true} -function Oc(a,b){return a.c._b(b)} -function gdb(a){return a.e&&a.e()} -function Vd(a){return !a?null:a.d} -function sn(a,b){return Gv(a.b,b)} -function Fv(a){return !a?null:a.g} -function Kv(a){return !a?null:a.i} -function hdb(a){fdb(a);return a.o} -function Fhd(){Fhd=ccb;Ehd=ond()} -function Hhd(){Hhd=ccb;Ghd=Cod()} -function LFd(){LFd=ccb;KFd=qZd()} -function p8d(){p8d=ccb;o8d=Y9d()} -function r8d(){r8d=ccb;q8d=dae()} -function mvd(){mvd=ccb;lvd=n4c()} -function Srb(){throw vbb(new bgb)} -function enb(){throw vbb(new bgb)} -function fnb(){throw vbb(new bgb)} -function gnb(){throw vbb(new bgb)} -function jnb(){throw vbb(new bgb)} -function Cnb(){throw vbb(new bgb)} -function Uqb(a){this.a=new Mqb(a)} -function tgb(a){lgb();ngb(this,a)} -function Hxb(a){this.a=new Qwb(a)} -function _ub(a,b){while(a.ye(b));} -function Sub(a,b){while(a.sd(b));} -function Bfb(a,b){a.a+=b;return a} -function Cfb(a,b){a.a+=b;return a} -function Ffb(a,b){a.a+=b;return a} -function Lfb(a,b){a.a+=b;return a} -function WAb(a){Tzb(a);return a.a} -function Wsb(a){return a.b!=a.d.c} -function pD(a){return a.l|a.m<<22} -function aIc(a,b){return a.d[b.p]} -function h2c(a,b){return c2c(a,b)} -function cCb(a,b,c){a.splice(b,c)} -function WHb(a){a.c?VHb(a):XHb(a)} -function jVc(a){this.a=0;this.b=a} -function ZUc(){this.a=new L2c(K$)} -function tRc(){this.b=new L2c(h$)} -function Q$c(){this.b=new L2c(J_)} -function d_c(){this.b=new L2c(J_)} -function OCd(){throw vbb(new bgb)} -function PCd(){throw vbb(new bgb)} -function QCd(){throw vbb(new bgb)} -function RCd(){throw vbb(new bgb)} -function SCd(){throw vbb(new bgb)} -function TCd(){throw vbb(new bgb)} -function UCd(){throw vbb(new bgb)} -function VCd(){throw vbb(new bgb)} -function WCd(){throw vbb(new bgb)} -function XCd(){throw vbb(new bgb)} -function ahe(){throw vbb(new utb)} -function bhe(){throw vbb(new utb)} -function Rge(a){this.a=new ege(a)} -function ege(a){dge(this,a,Vee())} -function Fhe(a){return !a||Ehe(a)} -function dde(a){return $ce[a]!=-1} -function Iz(){xz!=0&&(xz=0);zz=-1} -function Ybb(){Wbb==null&&(Wbb=[])} -function ONd(a,b){Rxd(ZKd(a.a),b)} -function TNd(a,b){Rxd(ZKd(a.a),b)} -function Yf(a,b){zf.call(this,a,b)} -function $f(a,b){Yf.call(this,a,b)} -function Hf(a,b){this.b=a;this.c=b} -function rk(a,b){this.b=a;this.a=b} -function ek(a,b){this.a=a;this.b=b} -function gk(a,b){this.a=a;this.b=b} -function pk(a,b){this.a=a;this.b=b} -function yk(a,b){this.a=a;this.b=b} -function Ak(a,b){this.a=a;this.b=b} -function Fj(a,b){this.a=a;this.b=b} -function _j(a,b){this.a=a;this.b=b} -function dr(a,b){this.a=a;this.b=b} -function zr(a,b){this.b=a;this.a=b} -function So(a,b){this.b=a;this.a=b} -function qp(a,b){this.b=a;this.a=b} -function $q(a,b){this.b=a;this.a=b} -function $r(a,b){this.f=a;this.g=b} -function ne(a,b){this.e=a;this.d=b} -function Wo(a,b){this.g=a;this.i=b} -function bu(a,b){this.a=a;this.b=b} -function qu(a,b){this.a=a;this.f=b} -function qv(a,b){this.b=a;this.c=b} -function ox(a,b){this.a=a;this.b=b} -function Px(a,b){this.a=a;this.b=b} -function mC(a,b){this.a=a;this.b=b} -function Wc(a){Lb(a.dc());this.c=a} -function rf(a){this.b=BD(Qb(a),83)} -function Zv(a){this.a=BD(Qb(a),83)} -function dv(a){this.a=BD(Qb(a),15)} -function $u(a){this.a=BD(Qb(a),15)} -function Br(a){this.b=BD(Qb(a),47)} -function eB(){this.q=new $wnd.Date} -function Zfb(){Zfb=ccb;Yfb=new jcb} -function Emb(){Emb=ccb;Dmb=new Fmb} -function Vhb(a){return a.f.c+a.g.c} -function hnb(a,b){return a.b.Hc(b)} -function inb(a,b){return a.b.Ic(b)} -function knb(a,b){return a.b.Qc(b)} -function Dob(a,b){return a.b.Hc(b)} -function dob(a,b){return a.c.uc(b)} -function Rqb(a,b){return a.a._b(b)} -function fob(a,b){return pb(a.c,b)} -function jt(a,b){return Mhb(a.b,b)} -function Lp(a,b){return a>b&&b0} -function Gbb(a,b){return ybb(a,b)<0} -function Crb(a,b){return a.a.get(b)} -function icb(b,a){return a.split(b)} -function Vrb(a,b){return Mhb(a.e,b)} -function Nvb(a){return uCb(a),false} -function Rub(a){Kub.call(this,a,21)} -function wcb(a,b){Zy.call(this,a,b)} -function mxb(a,b){$r.call(this,a,b)} -function Gyb(a,b){$r.call(this,a,b)} -function zx(a){yx();Wn.call(this,a)} -function zlb(a,b){Dlb(a,a.length,b)} -function Alb(a,b){Flb(a,a.length,b)} -function ABb(a,b,c){b.ud(a.a.Ge(c))} -function uBb(a,b,c){b.we(a.a.Fe(c))} -function GBb(a,b,c){b.td(a.a.Kb(c))} -function Zq(a,b,c){a.Mb(c)&&b.td(c)} -function aCb(a,b,c){a.splice(b,0,c)} -function lDb(a,b){return uqb(a.e,b)} -function pjb(a,b){this.d=a;this.e=b} -function kqb(a,b){this.b=a;this.a=b} -function VBb(a,b){this.b=a;this.a=b} -function BEb(a,b){this.b=a;this.a=b} -function sBb(a,b){this.a=a;this.b=b} -function yBb(a,b){this.a=a;this.b=b} -function EBb(a,b){this.a=a;this.b=b} -function KBb(a,b){this.a=a;this.b=b} -function aDb(a,b){this.a=a;this.b=b} -function tMb(a,b){this.b=a;this.a=b} -function oOb(a,b){this.b=a;this.a=b} -function SOb(a,b){$r.call(this,a,b)} -function SMb(a,b){$r.call(this,a,b)} -function NEb(a,b){$r.call(this,a,b)} -function VEb(a,b){$r.call(this,a,b)} -function sFb(a,b){$r.call(this,a,b)} -function hHb(a,b){$r.call(this,a,b)} -function OHb(a,b){$r.call(this,a,b)} -function FIb(a,b){$r.call(this,a,b)} -function wLb(a,b){$r.call(this,a,b)} -function YRb(a,b){$r.call(this,a,b)} -function zTb(a,b){$r.call(this,a,b)} -function rUb(a,b){$r.call(this,a,b)} -function oWb(a,b){$r.call(this,a,b)} -function SXb(a,b){$r.call(this,a,b)} -function k0b(a,b){$r.call(this,a,b)} -function z5b(a,b){$r.call(this,a,b)} -function T8b(a,b){$r.call(this,a,b)} -function ibc(a,b){$r.call(this,a,b)} -function Cec(a,b){this.a=a;this.b=b} -function rfc(a,b){this.a=a;this.b=b} -function Rfc(a,b){this.a=a;this.b=b} -function Tfc(a,b){this.a=a;this.b=b} -function bgc(a,b){this.a=a;this.b=b} -function ngc(a,b){this.a=a;this.b=b} -function Qhc(a,b){this.a=a;this.b=b} -function $hc(a,b){this.a=a;this.b=b} -function Z0b(a,b){this.a=a;this.b=b} -function ZVb(a,b){this.b=a;this.a=b} -function Dfc(a,b){this.b=a;this.a=b} -function dgc(a,b){this.b=a;this.a=b} -function Bmc(a,b){this.b=a;this.a=b} -function cWb(a,b){this.c=a;this.d=b} -function I$b(a,b){this.e=a;this.d=b} -function Unc(a,b){this.a=a;this.b=b} -function Oic(a,b){this.b=b;this.c=a} -function Bjc(a,b){$r.call(this,a,b)} -function Yjc(a,b){$r.call(this,a,b)} -function Gkc(a,b){$r.call(this,a,b)} -function Bpc(a,b){$r.call(this,a,b)} -function Jpc(a,b){$r.call(this,a,b)} -function Tpc(a,b){$r.call(this,a,b)} -function cqc(a,b){$r.call(this,a,b)} -function oqc(a,b){$r.call(this,a,b)} -function yqc(a,b){$r.call(this,a,b)} -function Hqc(a,b){$r.call(this,a,b)} -function Uqc(a,b){$r.call(this,a,b)} -function arc(a,b){$r.call(this,a,b)} -function mrc(a,b){$r.call(this,a,b)} -function zrc(a,b){$r.call(this,a,b)} -function Prc(a,b){$r.call(this,a,b)} -function Yrc(a,b){$r.call(this,a,b)} -function fsc(a,b){$r.call(this,a,b)} -function nsc(a,b){$r.call(this,a,b)} -function nzc(a,b){$r.call(this,a,b)} -function zzc(a,b){$r.call(this,a,b)} -function Kzc(a,b){$r.call(this,a,b)} -function Xzc(a,b){$r.call(this,a,b)} -function Dtc(a,b){$r.call(this,a,b)} -function lAc(a,b){$r.call(this,a,b)} -function uAc(a,b){$r.call(this,a,b)} -function CAc(a,b){$r.call(this,a,b)} -function LAc(a,b){$r.call(this,a,b)} -function UAc(a,b){$r.call(this,a,b)} -function aBc(a,b){$r.call(this,a,b)} -function uBc(a,b){$r.call(this,a,b)} -function DBc(a,b){$r.call(this,a,b)} -function MBc(a,b){$r.call(this,a,b)} -function sGc(a,b){$r.call(this,a,b)} -function VIc(a,b){$r.call(this,a,b)} -function EIc(a,b){this.b=a;this.a=b} -function qKc(a,b){this.a=a;this.b=b} -function GKc(a,b){this.a=a;this.b=b} -function lLc(a,b){this.a=a;this.b=b} -function mMc(a,b){this.a=a;this.b=b} -function fMc(a,b){$r.call(this,a,b)} -function ZLc(a,b){$r.call(this,a,b)} -function ZMc(a,b){this.b=a;this.d=b} -function IOc(a,b){$r.call(this,a,b)} -function GQc(a,b){$r.call(this,a,b)} -function PQc(a,b){this.a=a;this.b=b} -function RQc(a,b){this.a=a;this.b=b} -function ARc(a,b){$r.call(this,a,b)} -function rSc(a,b){$r.call(this,a,b)} -function TTc(a,b){$r.call(this,a,b)} -function _Tc(a,b){$r.call(this,a,b)} -function RUc(a,b){$r.call(this,a,b)} -function uVc(a,b){$r.call(this,a,b)} -function hWc(a,b){$r.call(this,a,b)} -function rWc(a,b){$r.call(this,a,b)} -function kXc(a,b){$r.call(this,a,b)} -function uXc(a,b){$r.call(this,a,b)} -function AYc(a,b){$r.call(this,a,b)} -function l$c(a,b){$r.call(this,a,b)} -function Z$c(a,b){$r.call(this,a,b)} -function D_c(a,b){$r.call(this,a,b)} -function O_c(a,b){$r.call(this,a,b)} -function c1c(a,b){$r.call(this,a,b)} -function cVb(a,b){return uqb(a.c,b)} -function nnc(a,b){return uqb(b.b,a)} -function x1c(a,b){return -a.b.Je(b)} -function D3c(a,b){return uqb(a.g,b)} -function O5c(a,b){$r.call(this,a,b)} -function a6c(a,b){$r.call(this,a,b)} -function m2c(a,b){this.a=a;this.b=b} -function W2c(a,b){this.a=a;this.b=b} -function f7c(a,b){this.a=a;this.b=b} -function G7c(a,b){$r.call(this,a,b)} -function j8c(a,b){$r.call(this,a,b)} -function iad(a,b){$r.call(this,a,b)} -function rad(a,b){$r.call(this,a,b)} -function Bad(a,b){$r.call(this,a,b)} -function Nad(a,b){$r.call(this,a,b)} -function ibd(a,b){$r.call(this,a,b)} -function tbd(a,b){$r.call(this,a,b)} -function Ibd(a,b){$r.call(this,a,b)} -function Ubd(a,b){$r.call(this,a,b)} -function gcd(a,b){$r.call(this,a,b)} -function scd(a,b){$r.call(this,a,b)} -function Ycd(a,b){$r.call(this,a,b)} -function udd(a,b){$r.call(this,a,b)} -function Jdd(a,b){$r.call(this,a,b)} -function Eed(a,b){$r.call(this,a,b)} -function bfd(a,b){this.a=a;this.b=b} -function dfd(a,b){this.a=a;this.b=b} -function ffd(a,b){this.a=a;this.b=b} -function Kfd(a,b){this.a=a;this.b=b} -function Mfd(a,b){this.a=a;this.b=b} -function Ofd(a,b){this.a=a;this.b=b} -function vgd(a,b){this.a=a;this.b=b} -function qgd(a,b){$r.call(this,a,b)} -function jrd(a,b){this.a=a;this.b=b} -function krd(a,b){this.a=a;this.b=b} -function mrd(a,b){this.a=a;this.b=b} -function nrd(a,b){this.a=a;this.b=b} -function qrd(a,b){this.a=a;this.b=b} -function rrd(a,b){this.a=a;this.b=b} -function srd(a,b){this.b=a;this.a=b} -function trd(a,b){this.b=a;this.a=b} -function Drd(a,b){this.b=a;this.a=b} -function Frd(a,b){this.b=a;this.a=b} -function Hrd(a,b){this.a=a;this.b=b} -function Jrd(a,b){this.a=a;this.b=b} -function Ord(a,b){Xqd(a.a,BD(b,56))} -function BIc(a,b){gIc(a.a,BD(b,11))} -function fIc(a,b){FHc();return b!=a} -function Arb(){wrb();return new vrb} -function CMc(){wMc();this.b=new Tqb} -function NNc(){FNc();this.a=new Tqb} -function eCc(){ZBc();aCc.call(this)} -function Dsd(a,b){$r.call(this,a,b)} -function Urd(a,b){this.a=a;this.b=b} -function Wrd(a,b){this.a=a;this.b=b} -function kGd(a,b){this.a=a;this.b=b} -function nGd(a,b){this.a=a;this.b=b} -function bUd(a,b){this.a=a;this.b=b} -function zVd(a,b){this.a=a;this.b=b} -function C1d(a,b){this.d=a;this.b=b} -function MLd(a,b){this.d=a;this.e=b} -function Wud(a,b){this.f=a;this.c=b} -function f7d(a,b){this.b=a;this.c=b} -function _zd(a,b){this.i=a;this.g=b} -function Y1d(a,b){this.e=a;this.a=b} -function c8d(a,b){this.a=a;this.b=b} -function $Id(a,b){a.i=null;_Id(a,b)} -function ivd(a,b){!!a&&Rhb(cvd,a,b)} -function hCd(a,b){return qAd(a.a,b)} -function e7d(a){return R2d(a.c,a.b)} -function Wd(a){return !a?null:a.dd()} -function PD(a){return a==null?null:a} -function KD(a){return typeof a===Khe} -function LD(a){return typeof a===Lhe} -function ND(a){return typeof a===Mhe} -function Em(a,b){return a.Hd().Xb(b)} -function Kq(a,b){return hr(a.Kc(),b)} -function Bbb(a,b){return ybb(a,b)==0} -function Ebb(a,b){return ybb(a,b)>=0} -function Kbb(a,b){return ybb(a,b)!=0} -function Jdb(a){return ''+(uCb(a),a)} -function pfb(a,b){return a.substr(b)} -function cg(a){ag(a);return a.d.gc()} -function oVb(a){pVb(a,a.c);return a} -function RD(a){CCb(a==null);return a} -function Dfb(a,b){a.a+=''+b;return a} -function Efb(a,b){a.a+=''+b;return a} -function Nfb(a,b){a.a+=''+b;return a} -function Pfb(a,b){a.a+=''+b;return a} -function Qfb(a,b){a.a+=''+b;return a} -function Mfb(a,b){return a.a+=''+b,a} -function Esb(a,b){Gsb(a,b,a.a,a.a.a)} -function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} -function Mqd(a,b,c){Rpd(b,kqd(a,c))} -function Nqd(a,b,c){Rpd(b,kqd(a,c))} -function Dhe(a,b){Hhe(new Fyd(a),b)} -function cB(a,b){a.q.setTime(Sbb(b))} -function fvb(a,b){bvb.call(this,a,b)} -function jvb(a,b){bvb.call(this,a,b)} -function nvb(a,b){bvb.call(this,a,b)} -function Nqb(a){Uhb(this);Ld(this,a)} -function wmb(a){tCb(a,0);return null} -function X6c(a){a.a=0;a.b=0;return a} -function f3c(a,b){a.a=b.g+1;return a} -function PJc(a,b){return a.j[b.p]==2} -function _Pb(a){return VPb(BD(a,79))} -function yJb(){yJb=ccb;xJb=as(wJb())} -function Y8b(){Y8b=ccb;X8b=as(W8b())} -function mt(){this.b=new Mqb(Cv(12))} -function Otb(){this.b=0;this.a=false} -function Wtb(){this.b=0;this.a=false} -function sl(a){this.a=a;ol.call(this)} -function vl(a){this.a=a;ol.call(this)} -function Nsd(a,b){Msd.call(this,a,b)} -function $zd(a,b){Cyd.call(this,a,b)} -function nNd(a,b){_zd.call(this,a,b)} -function s4d(a,b){p4d.call(this,a,b)} -function w4d(a,b){qRd.call(this,a,b)} -function rEd(a,b){pEd();Rhb(oEd,a,b)} -function lcb(a,b){return qfb(a.a,0,b)} -function ww(a,b){return a.a.a.a.cc(b)} -function mb(a,b){return PD(a)===PD(b)} -function Mdb(a,b){return Kdb(a.a,b.a)} -function $db(a,b){return beb(a.a,b.a)} -function seb(a,b){return ueb(a.a,b.a)} -function hfb(a,b){return a.indexOf(b)} -function Ny(a,b){return a==b?0:a?1:-1} -function kB(a){return a<10?'0'+a:''+a} -function Mq(a){return Qb(a),new sl(a)} -function SC(a){return TC(a.l,a.m,a.h)} -function Hdb(a){return QD((uCb(a),a))} -function Idb(a){return QD((uCb(a),a))} -function NIb(a,b){return beb(a.g,b.g)} -function Fbb(a){return typeof a===Lhe} -function mWb(a){return a==hWb||a==kWb} -function nWb(a){return a==hWb||a==iWb} -function G1b(a){return Jkb(a.b.b,a,0)} -function lrb(a){this.a=Arb();this.b=a} -function Frb(a){this.a=Arb();this.b=a} -function swb(a,b){Ekb(a.a,b);return b} -function Z1c(a,b){Ekb(a.c,b);return a} -function E2c(a,b){d3c(a.a,b);return a} -function _gc(a,b){Hgc();return b.a+=a} -function bhc(a,b){Hgc();return b.a+=a} -function ahc(a,b){Hgc();return b.c+=a} -function Nlb(a,b){Klb(a,0,a.length,b)} -function zsb(){Wqb.call(this,new $rb)} -function I_b(){B_b.call(this,0,0,0,0)} -function I6c(){J6c.call(this,0,0,0,0)} -function g7c(a){this.a=a.a;this.b=a.b} -function fad(a){return a==aad||a==bad} -function gad(a){return a==dad||a==_9c} -function Jzc(a){return a==Fzc||a==Ezc} -function fcd(a){return a!=bcd&&a!=ccd} -function oid(a){return a.Lg()&&a.Mg()} -function Gfd(a){return Kkd(BD(a,118))} -function k3c(a){return d3c(new j3c,a)} -function y2d(a,b){return new p4d(b,a)} -function z2d(a,b){return new p4d(b,a)} -function ukd(a,b,c){vkd(a,b);wkd(a,c)} -function _kd(a,b,c){cld(a,b);ald(a,c)} -function bld(a,b,c){dld(a,b);eld(a,c)} -function gmd(a,b,c){hmd(a,b);imd(a,c)} -function nmd(a,b,c){omd(a,b);pmd(a,c)} -function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} -function _ud(a){Wud.call(this,a,true)} -function Xg(a,b,c){Vg.call(this,a,b,c)} -function Ygb(a){Hgb();Zgb.call(this,a)} -function rxb(){mxb.call(this,'Head',1)} -function wxb(){mxb.call(this,'Tail',3)} -function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} -function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} -function MGb(a){Hkb(a.xf(),new QGb(a))} -function xtb(a){return a!=null?tb(a):0} -function b2b(a,b){return ntd(b,mpd(a))} -function c2b(a,b){return ntd(b,mpd(a))} -function dAb(a,b){return a[a.length]=b} -function gAb(a,b){return a[a.length]=b} -function Vq(a){return lr(a.b.Kc(),a.a)} -function dqd(a,b){return _o(qo(a.d),b)} -function eqd(a,b){return _o(qo(a.g),b)} -function fqd(a,b){return _o(qo(a.j),b)} -function Osd(a,b){Msd.call(this,a.b,b)} -function q0b(a){B_b.call(this,a,a,a,a)} -function HOb(a){a.b&&LOb(a);return a.a} -function IOb(a){a.b&&LOb(a);return a.c} -function uyb(a,b){if(lyb){return}a.b=b} -function lzd(a,b,c){NC(a,b,c);return c} -function mBc(a,b,c){NC(a.c[b.g],b.g,c)} -function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} -function wfd(a,b,c){bld(c,c.i+a,c.j+b)} -function UOd(a,b){wtd(VKd(a.a),XOd(b))} -function bTd(a,b){wtd(QSd(a.a),eTd(b))} -function Lge(a){wfe();xfe.call(this,a)} -function CAd(a){return a==null?0:tb(a)} -function fNc(){fNc=ccb;eNc=new Rpb(v1)} -function h0d(){h0d=ccb;new i0d;new Rkb} -function i0d(){new Lqb;new Lqb;new Lqb} -function GA(){GA=ccb;fA();FA=new Lqb} -function Iy(){Iy=ccb;$wnd.Math.log(2)} -function UVd(){UVd=ccb;TVd=(AFd(),zFd)} -function _ge(){throw vbb(new cgb(Cxe))} -function ohe(){throw vbb(new cgb(Cxe))} -function che(){throw vbb(new cgb(Dxe))} -function rhe(){throw vbb(new cgb(Dxe))} -function Mg(a){this.a=a;Gg.call(this,a)} -function up(a){this.a=a;rf.call(this,a)} -function Bp(a){this.a=a;rf.call(this,a)} -function Okb(a,b){Mlb(a.c,a.c.length,b)} -function llb(a){return a.ab?1:0} -function Deb(a,b){return ybb(a,b)>0?a:b} -function TC(a,b,c){return {l:a,m:b,h:c}} -function Ctb(a,b){a.a!=null&&BIc(b,a.a)} -function Csb(a){a.a=new jtb;a.c=new jtb} -function hDb(a){this.b=a;this.a=new Rkb} -function dOb(a){this.b=new pOb;this.a=a} -function q_b(a){n_b.call(this);this.a=a} -function txb(){mxb.call(this,'Range',2)} -function bUb(){ZTb();this.a=new L2c(zP)} -function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} -function fKc(a,b){FJc();return b.n.b+=a} -function Tgc(a,b,c){return Rhb(a.g,c,b)} -function LJc(a,b,c){return Rhb(a.k,c,b)} -function r1c(a,b){return Rhb(a.a,b.a,b)} -function jBc(a,b,c){return hBc(b,c,a.c)} -function E6c(a){return new f7c(a.c,a.d)} -function F6c(a){return new f7c(a.c,a.d)} -function R6c(a){return new f7c(a.a,a.b)} -function CQd(a,b){return hA(a.a,b,null)} -function fec(a){QZb(a,null);RZb(a,null)} -function AOc(a){BOc(a,null);COc(a,null)} -function u4d(){qRd.call(this,null,null)} -function y4d(){RRd.call(this,null,null)} -function a7d(a){this.a=a;Lqb.call(this)} -function Pp(a){this.b=(mmb(),new iob(a))} -function Py(a){a.j=KC(VI,nie,310,0,0,1)} -function oAd(a,b,c){a.c.Vc(b,BD(c,133))} -function GAd(a,b,c){a.c.ji(b,BD(c,133))} -function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} -function b7d(a,b){return t2d(a.c,a.b,b)} -function Bv(a,b){return new Qv(a.Kc(),b)} -function Lq(a,b){return rr(a.Kc(),b)!=-1} -function Sqb(a,b){return a.a.Bc(b)!=null} -function pr(a){return a.Ob()?a.Pb():null} -function yfb(a){return zfb(a,0,a.length)} -function JD(a,b){return a!=null&&AD(a,b)} -function $A(a,b){a.q.setHours(b);YA(a,b)} -function Yrb(a,b){if(a.c){jsb(b);isb(b)}} -function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} -function RJc(a,b,c){SJc(a,b,c);return c} -function Eub(a,b,c){a.a=b^1502;a.b=c^kke} -function xHb(a,b,c){return a.a[b.g][c.g]} -function REc(a,b){return a.a[b.c.p][b.p]} -function aEc(a,b){return a.e[b.c.p][b.p]} -function tEc(a,b){return a.c[b.c.p][b.p]} -function OJc(a,b){return a.j[b.p]=aKc(b)} -function k5c(a,b){return cfb(a.f,b.tg())} -function Isd(a,b){return cfb(a.b,b.tg())} -function Sfd(a,b){return a.a0?b*b/a:b*b*100} -function CRb(a,b){return a>0?b/(a*a):b*100} -function G2c(a,b,c){return Ekb(b,I2c(a,c))} -function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} -function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function O6c(a,b,c){a.a+=b;a.b+=c;return a} -function Z6c(a,b,c){a.a*=b;a.b*=c;return a} -function b7c(a,b,c){a.a-=b;a.b-=c;return a} -function a7c(a,b){a.a=b.a;a.b=b.b;return a} -function V6c(a){a.a=-a.a;a.b=-a.b;return a} -function Dic(a){this.c=a;this.a=1;this.b=1} -function xed(a){this.c=a;dld(a,0);eld(a,0)} -function u7c(a){Psb.call(this);n7c(this,a)} -function AXb(a){xXb();yXb(this);this.mf(a)} -function GRd(a,b){nRd();qRd.call(this,a,b)} -function dSd(a,b){LRd();RRd.call(this,a,b)} -function hSd(a,b){LRd();RRd.call(this,a,b)} -function fSd(a,b){LRd();dSd.call(this,a,b)} -function sId(a,b,c){dId.call(this,a,b,c,2)} -function zXd(a,b){UVd();nXd.call(this,a,b)} -function BXd(a,b){UVd();zXd.call(this,a,b)} -function DXd(a,b){UVd();zXd.call(this,a,b)} -function FXd(a,b){UVd();DXd.call(this,a,b)} -function PXd(a,b){UVd();nXd.call(this,a,b)} -function RXd(a,b){UVd();PXd.call(this,a,b)} -function XXd(a,b){UVd();nXd.call(this,a,b)} -function pAd(a,b){return a.c.Fc(BD(b,133))} -function w1d(a,b,c){return V1d(p1d(a,b),c)} -function N2d(a,b,c){return b.Qk(a.e,a.c,c)} -function P2d(a,b,c){return b.Rk(a.e,a.c,c)} -function a3d(a,b){return xid(a.e,BD(b,49))} -function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} -function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} -function ypb(a,b){b.$modCount=a.$modCount} -function MUc(){MUc=ccb;LUc=new Lsd('root')} -function LCd(){LCd=ccb;KCd=new lDd;new NDd} -function KVc(){this.a=new Hp;this.b=new Hp} -function FUd(){hJd.call(this);this.Bb|=Tje} -function t_c(){$r.call(this,'GROW_TREE',0)} -function C9d(a){return a==null?null:cde(a)} -function G9d(a){return a==null?null:jde(a)} -function J9d(a){return a==null?null:fcb(a)} -function K9d(a){return a==null?null:fcb(a)} -function fdb(a){if(a.o!=null){return}vdb(a)} -function DD(a){CCb(a==null||KD(a));return a} -function ED(a){CCb(a==null||LD(a));return a} -function GD(a){CCb(a==null||ND(a));return a} -function gB(a){this.q=new $wnd.Date(Sbb(a))} -function Mf(a,b){this.c=a;ne.call(this,a,b)} -function Sf(a,b){this.a=a;Mf.call(this,a,b)} -function Hg(a,b){this.d=a;Dg(this);this.b=b} -function bAb(a,b){Vzb.call(this,a);this.a=b} -function vAb(a,b){Vzb.call(this,a);this.a=b} -function sNb(a){pNb.call(this,0,0);this.f=a} -function Vg(a,b,c){dg.call(this,a,b,c,null)} -function Yg(a,b,c){dg.call(this,a,b,c,null)} -function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} -function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} -function g4c(a,b){return BD(Wrb(a.b,b),149)} -function i4c(a,b){return BD(Wrb(a.c,b),229)} -function wic(a){return BD(Ikb(a.a,a.b),287)} -function B6c(a){return new f7c(a.c,a.d+a.a)} -function eLc(a){return FJc(),Jzc(BD(a,197))} -function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} -function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} -function qyb(a,b){if(lyb){return}Ekb(a.a,b)} -function F2b(a,b){x2b();return f_b(b.d.i,a)} -function _9b(a,b){I9b();return new gac(b,a)} -function _Hb(a,b){ytb(b,lle);a.f=b;return a} -function Kld(a,b,c){c=_hd(a,b,3,c);return c} -function bmd(a,b,c){c=_hd(a,b,6,c);return c} -function kpd(a,b,c){c=_hd(a,b,9,c);return c} -function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} -function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} -function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function c7d(a,b,c){return C2d(a.c,a.b,b,c)} -function DAd(a,b){return (b&Ohe)%a.d.length} -function Msd(a,b){Lsd.call(this,a);this.a=b} -function uVd(a,b){lVd.call(this,a);this.a=b} -function sYd(a,b){lVd.call(this,a);this.a=b} -function zyd(a,b){this.c=a;zud.call(this,b)} -function YOd(a,b){this.a=a;qOd.call(this,b)} -function fTd(a,b){this.a=a;qOd.call(this,b)} -function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} -function cq(a){this.a=(Xj(a,Jie),new Skb(a))} -function LA(a){!a.a&&(a.a=new VA);return a.a} -function XMb(a){if(a>8){return 0}return a+1} -function Ecb(a,b){Bcb();return a==b?0:a?1:-1} -function Opb(a,b,c){return Npb(a,BD(b,22),c)} -function Bz(a,b,c){return a.apply(b,c);var d} -function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} -function ijb(a,b){var c;c=a.e;a.e=b;return c} -function trb(a,b){var c;c=a[hke];c.call(a,b)} -function urb(a,b){var c;c=a[hke];c.call(a,b)} -function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} -function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} -function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} -function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} -function Bxb(a,b){return Vd(Cwb(a.a,b,true))} -function Cxb(a,b){return Vd(Dwb(a.a,b,true))} -function _Bb(a,b){return eCb(new Array(b),a)} -function HD(a){return String.fromCharCode(a)} -function mz(a){return a==null?null:a.message} -function gRb(){this.a=new Rkb;this.b=new Rkb} -function iTb(){this.a=new MQb;this.b=new tTb} -function tDb(){this.b=new d7c;this.c=new Rkb} -function _Qb(){this.d=new d7c;this.e=new d7c} -function n_b(){this.n=new d7c;this.o=new d7c} -function $Gb(){this.n=new p0b;this.i=new I6c} -function sec(){this.a=new Umc;this.b=new mnc} -function NIc(){this.a=new Rkb;this.d=new Rkb} -function LDc(){this.b=new Tqb;this.a=new Tqb} -function hSc(){this.b=new Lqb;this.a=new Lqb} -function HRc(){this.b=new tRc;this.a=new hRc} -function aHb(){$Gb.call(this);this.a=new d7c} -function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} -function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} -function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} -function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} -function Tod(a,b,c){c=_hd(a,b,11,c);return c} -function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} -function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} -function u7b(a,b){return a.n.a=(uCb(b),b)+10} -function v7b(a,b){return a.n.a=(uCb(b),b)+10} -function dLd(a,b){return b==a||pud(UKd(b),a)} -function PYd(a,b){return Rhb(a.a,b,'')==null} -function E2b(a,b){x2b();return !f_b(b.d.i,a)} -function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} -function h1d(a,b){var c;c=b.Hh(a.a);return c} -function Cyd(a,b){qcb.call(this,gve+a+mue+b)} -function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} -function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} -function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} -function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} -function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} -function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} -function Vp(a,b,c){this.a=a;qc.call(this,b,c)} -function tk(a,b,c){this.c=b;this.b=c;this.a=a} -function ik(a,b,c){return a.d=BD(b.Kb(c),164)} -function j6d(a,b){return a.Aj().Nh().Kh(a,b)} -function h6d(a,b){return a.Aj().Nh().Ih(a,b)} -function Fdb(a,b){return uCb(a),PD(a)===PD(b)} -function dfb(a,b){return uCb(a),PD(a)===PD(b)} -function Dxb(a,b){return Vd(Cwb(a.a,b,false))} -function Exb(a,b){return Vd(Dwb(a.a,b,false))} -function vBb(a,b){return a.b.sd(new yBb(a,b))} -function BBb(a,b){return a.b.sd(new EBb(a,b))} -function HBb(a,b){return a.b.sd(new KBb(a,b))} -function lfb(a,b,c){return a.lastIndexOf(b,c)} -function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} -function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} -function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} -function emc(a,b){return beb(a.a.d.p,b.a.d.p)} -function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} -function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} -function Vxd(a){return a<100?null:new Ixd(a)} -function ecd(a){return a==Zbd||a==_bd||a==$bd} -function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} -function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} -function ujb(a,b){var c;c=b;return !!Awb(a,c)} -function czd(a,b){this.c=a;Pyd.call(this,a,b)} -function fBb(a){this.c=a;nvb.call(this,rie,0)} -function Avb(a,b){Bvb.call(this,a,a.length,b)} -function aId(a,b,c){return BD(a.c,69).lk(b,c)} -function bId(a,b,c){return BD(a.c,69).mk(b,c)} -function O2d(a,b,c){return N2d(a,BD(b,332),c)} -function Q2d(a,b,c){return P2d(a,BD(b,332),c)} -function i3d(a,b,c){return h3d(a,BD(b,332),c)} -function k3d(a,b,c){return j3d(a,BD(b,332),c)} -function tn(a,b){return b==null?null:Hv(a.b,b)} -function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} -function Ldb(a){return !isNaN(a)&&!isFinite(a)} -function Wn(a){Ql();this.a=(mmb(),new zob(a))} -function dIc(a){FHc();this.d=a;this.a=new jkb} -function xqb(a,b,c){this.a=a;this.b=b;this.c=c} -function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} -function $sb(a,b,c){this.d=a;this.b=c;this.a=b} -function Qsb(a){Csb(this);Osb(this);ye(this,a)} -function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} -function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} -function iyb(a){this.a=a;Zfb();Cbb(Date.now())} -function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} -function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} -function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} -function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} -function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} -function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} -function pxb(a){lxb();return es((zxb(),yxb),a)} -function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} -function OEb(a){MEb();return es((REb(),QEb),a)} -function WEb(a){UEb();return es((ZEb(),YEb),a)} -function tFb(a){rFb();return es((wFb(),vFb),a)} -function iHb(a){gHb();return es((lHb(),kHb),a)} -function PHb(a){NHb();return es((SHb(),RHb),a)} -function GIb(a){EIb();return es((JIb(),IIb),a)} -function vJb(a){qJb();return es((yJb(),xJb),a)} -function xLb(a){vLb();return es((ALb(),zLb),a)} -function TMb(a){RMb();return es((WMb(),VMb),a)} -function TOb(a){ROb();return es((WOb(),VOb),a)} -function ePb(a){cPb();return es((hPb(),gPb),a)} -function ZRb(a){XRb();return es((aSb(),_Rb),a)} -function ATb(a){yTb();return es((DTb(),CTb),a)} -function sUb(a){qUb();return es((vUb(),uUb),a)} -function rWb(a){lWb();return es((uWb(),tWb),a)} -function TXb(a){RXb();return es((WXb(),VXb),a)} -function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} -function l0b(a){j0b();return es((o0b(),n0b),a)} -function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function mKb(a,b,c){this.b=a;this.c=b;this.a=c} -function BZb(a,b,c){this.b=a;this.a=b;this.c=c} -function TNb(a,b,c){this.a=a;this.b=b;this.c=c} -function uOb(a,b,c){this.a=a;this.b=b;this.c=c} -function S3b(a,b,c){this.a=a;this.b=b;this.c=c} -function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} -function n9b(a,b,c){this.b=a;this.a=b;this.c=c} -function x$b(a,b,c){this.e=b;this.b=a;this.d=c} -function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} -function LGb(a){var b;b=new KGb;b.e=a;return b} -function iLb(a){var b;b=new fLb;b.b=a;return b} -function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} -function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} -function jbc(a){gbc();return es((mbc(),lbc),a)} -function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} -function Clc(a){Alc();return es((Flc(),Elc),a)} -function Cpc(a){Apc();return es((Fpc(),Epc),a)} -function Kpc(a){Ipc();return es((Npc(),Mpc),a)} -function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} -function $jc(a){Xjc();return es((bkc(),akc),a)} -function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} -function dqc(a){bqc();return es((gqc(),fqc),a)} -function rqc(a){mqc();return es((uqc(),tqc),a)} -function zqc(a){xqc();return es((Cqc(),Bqc),a)} -function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} -function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} -function brc(a){_qc();return es((erc(),drc),a)} -function nrc(a){lrc();return es((qrc(),prc),a)} -function Arc(a){yrc();return es((Drc(),Crc),a)} -function Qrc(a){Orc();return es((Trc(),Src),a)} -function Zrc(a){Xrc();return es((asc(),_rc),a)} -function gsc(a){esc();return es((jsc(),isc),a)} -function osc(a){msc();return es((rsc(),qsc),a)} -function Etc(a){Ctc();return es((Htc(),Gtc),a)} -function qzc(a){lzc();return es((tzc(),szc),a)} -function Azc(a){xzc();return es((Dzc(),Czc),a)} -function Mzc(a){Izc();return es((Pzc(),Ozc),a)} -function MAc(a){KAc();return es((PAc(),OAc),a)} -function mAc(a){kAc();return es((pAc(),oAc),a)} -function vAc(a){tAc();return es((yAc(),xAc),a)} -function DAc(a){BAc();return es((GAc(),FAc),a)} -function VAc(a){TAc();return es((YAc(),XAc),a)} -function $zc(a){Vzc();return es((bAc(),aAc),a)} -function bBc(a){_Ac();return es((eBc(),dBc),a)} -function vBc(a){tBc();return es((yBc(),xBc),a)} -function EBc(a){CBc();return es((HBc(),GBc),a)} -function NBc(a){LBc();return es((QBc(),PBc),a)} -function tGc(a){rGc();return es((wGc(),vGc),a)} -function WIc(a){UIc();return es((ZIc(),YIc),a)} -function $Lc(a){YLc();return es((bMc(),aMc),a)} -function gMc(a){eMc();return es((jMc(),iMc),a)} -function JOc(a){HOc();return es((MOc(),LOc),a)} -function HQc(a){FQc();return es((KQc(),JQc),a)} -function DRc(a){yRc();return es((GRc(),FRc),a)} -function tSc(a){qSc();return es((wSc(),vSc),a)} -function UTc(a){STc();return es((XTc(),WTc),a)} -function UUc(a){PUc();return es((XUc(),WUc),a)} -function aUc(a){$Tc();return es((dUc(),cUc),a)} -function wVc(a){tVc();return es((zVc(),yVc),a)} -function iWc(a){fWc();return es((lWc(),kWc),a)} -function sWc(a){pWc();return es((vWc(),uWc),a)} -function lXc(a){iXc();return es((oXc(),nXc),a)} -function vXc(a){sXc();return es((yXc(),xXc),a)} -function BYc(a){zYc();return es((EYc(),DYc),a)} -function m$c(a){k$c();return es((p$c(),o$c),a)} -function $$c(a){Y$c();return es((b_c(),a_c),a)} -function n_c(a){i_c();return es((q_c(),p_c),a)} -function w_c(a){s_c();return es((z_c(),y_c),a)} -function E_c(a){C_c();return es((H_c(),G_c),a)} -function P_c(a){N_c();return es((S_c(),R_c),a)} -function W0c(a){R0c();return es((Z0c(),Y0c),a)} -function f1c(a){a1c();return es((i1c(),h1c),a)} -function P5c(a){N5c();return es((S5c(),R5c),a)} -function b6c(a){_5c();return es((e6c(),d6c),a)} -function H7c(a){F7c();return es((K7c(),J7c),a)} -function k8c(a){i8c();return es((n8c(),m8c),a)} -function V8b(a){S8b();return es((Y8b(),X8b),a)} -function A5b(a){y5b();return es((D5b(),C5b),a)} -function jad(a){ead();return es((mad(),lad),a)} -function sad(a){qad();return es((vad(),uad),a)} -function Cad(a){Aad();return es((Fad(),Ead),a)} -function Oad(a){Mad();return es((Rad(),Qad),a)} -function jbd(a){hbd();return es((mbd(),lbd),a)} -function ubd(a){rbd();return es((xbd(),wbd),a)} -function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} -function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} -function hcd(a){dcd();return es((kcd(),jcd),a)} -function vcd(a){rcd();return es((ycd(),xcd),a)} -function vdd(a){tdd();return es((ydd(),xdd),a)} -function Kdd(a){Idd();return es((Ndd(),Mdd),a)} -function $cd(a){Ucd();return es((cdd(),bdd),a)} -function Fed(a){Ded();return es((Ied(),Hed),a)} -function rgd(a){pgd();return es((ugd(),tgd),a)} -function Esd(a){Csd();return es((Hsd(),Gsd),a)} -function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} -function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function bPc(a,b){this.c=a;this.a=b;this.b=b-a} -function nYc(a,b,c){this.a=a;this.b=b;this.c=c} -function L1c(a,b,c){this.a=a;this.b=b;this.c=c} -function T1c(a,b,c){this.a=a;this.b=b;this.c=c} -function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} -function zCd(a,b,c){this.a=a;this.b=b;this.c=c} -function IVd(a,b,c){this.e=a;this.a=b;this.c=c} -function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} -function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} -function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} -function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} -function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} -function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} -function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} -function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} -function BD(a,b){CCb(a==null||AD(a,b));return a} -function Nu(a){var b;b=new Rkb;fr(b,a);return b} -function Ex(a){var b;b=new Tqb;fr(b,a);return b} -function Hx(a){var b;b=new Gxb;Jq(b,a);return b} -function Ru(a){var b;b=new Psb;Jq(b,a);return b} -function YEc(a){!a.e&&(a.e=new Rkb);return a.e} -function SMd(a){!a.c&&(a.c=new xYd);return a.c} -function Ekb(a,b){a.c[a.c.length]=b;return true} -function WA(a,b){this.c=a;this.b=b;this.a=false} -function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} -function pzb(){this.a=';,;';this.b='';this.c=''} -function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} -function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} -function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} -function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} -function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} -function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} -function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} -function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} -function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} -function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} -function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} -function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} -function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} -function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} -function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} -function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} -function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} -function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} -function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} -function rCb(a,b){if(!a){throw vbb(new ucb(b))}} -function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} -function dWb(a,b,c){cWb.call(this,a,b);this.b=c} -function pMd(a,b,c){MLd.call(this,a,b);this.c=c} -function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} -function _Gd(a){$Gd();MGd.call(this);this.th(a)} -function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function k2d(a,b,c){MLd.call(this,a,b);this.c=c} -function y1d(){T0d();z1d.call(this,(yFd(),xFd))} -function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} -function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} -function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} -function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} -function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} -function WUd(a,b){var c;c=a.c;VUd(a,b);return c} -function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} -function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} -function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} -function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} -function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} -function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} -function Wq(a,b){this.b=a;this.a=b;ol.call(this)} -function ar(a,b){this.a=a;this.b=b;ol.call(this)} -function vvb(a,b){qvb.call(this,b,1040);this.a=a} -function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} -function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} -function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} -function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} -function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} -function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} -function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} -function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} -function zfe(a){wfe();++vfe;return new ige(0,a)} -function o_b(a){if(a.a){return a.a}return JZb(a)} -function CCb(a){if(!a){throw vbb(new Cdb(null))}} -function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} -function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} -function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} -function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} -function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} -function Bic(a,b){return a.c=b){throw vbb(new rcb)}} -function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} -function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} -function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} -function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} -function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} -function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} -function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} -function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} -function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} -function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} -function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} -function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} -function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} -function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} -function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} -function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} -function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} -function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} -function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} -function x0d(a){Wud.call(this,a,false);this.a=false} -function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} -function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} -function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} -function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} -function nfb(a,b){return dfb(a.substr(0,b.length),b)} -function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} -function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} -function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} -function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} -function xJc(a){var b;b=a;while(b.f){b=b.f}return b} -function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} -function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} -function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} -function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} -function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} -function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} -function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} -function Olb(a,b){return avb(b,a.length),new vvb(a,b)} -function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} -function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} -function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} -function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} -function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} -function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} -function Flb(a,b,c){var d;for(d=0;d=a.g} -function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} -function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} -function gCb(a,b){var c;c=console[a];c.call(console,b)} -function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} -function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} -function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} -function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} -function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} -function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} -function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} -function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} -function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} -function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} -function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} -function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} -function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} -function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} -function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} -function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} -function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} -function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} -function uCb(a){if(a==null){throw vbb(new Geb)}return a} -function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} -function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} -function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} -function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} -function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} -function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} -function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} -function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} -function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} -function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} -function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} -function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} -function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} -function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} -function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} -function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} -function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} -function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} -function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} -function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} -function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} -function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} -function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} -function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} -function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} -function vfb(a){return String.fromCharCode.apply(null,a)} -function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} -function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} -function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} -function ix(a,b){ex();return new gx(new il(a),new Uk(b))} -function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} -function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} -function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} -function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} -function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} -function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} -function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} -function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} -function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} -function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} -function JZb(a){var b;b=P2b(a);if(b){return b}return null} -function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} -function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} -function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} -function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} -function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} -function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} -function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} -function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} -function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} -function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} -function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} -function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} -function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} -function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} -function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} -function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} -function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} -function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} -function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} -function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} -function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} -function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} -function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} -function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} -function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} -function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} -function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} -function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} -function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} -function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} -function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} -function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} -function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} -function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} -function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} -function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} -function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} -function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} -function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} -function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} -function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} -function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} -function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} -function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} -function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} -function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} -function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} -function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} -function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} -function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} -function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} -function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} -function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} -function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} -function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} -function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} -function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} -function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} -function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} -function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} -function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} -function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} -function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} -function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} -function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} -function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} -function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} -function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} -function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} -function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} -function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} -function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} -function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} -function ecb(a){function b(){} -;b.prototype=a||{};return new b} -function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} -function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} -function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} -function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} -function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} -function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} -function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} -function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} -function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} -function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} -function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} -function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} -function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} -function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} -function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} -function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} -function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} -function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} -function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} -function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} -function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} -function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} -function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} -function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} -function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} -function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} -function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} -function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} -function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} -function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} -function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} -function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} -function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} -function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} -function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} -function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} -function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} -function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} -function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} -function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} -function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} -function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} -function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} -function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} -function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} -function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} -function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} -function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} -function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} -function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} -function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} -function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} -function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} -function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} -function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} -function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} -function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} -function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} -function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} -function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} -function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} -function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} -function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} -function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} -function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} -function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} -function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} -function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} -function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} -function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} -function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} -function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} -function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} -function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} -function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} -function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} -function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} -function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} -function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} -function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} -function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} -function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} -function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} -function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} -function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} -function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} -function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} -function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} -function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} -function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} -function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} -function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} -function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} -function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} -function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} -function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} -function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} -function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} -function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} -function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} -function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} -function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} -function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} -function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} -function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} -function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} -function mlb(a){sCb(a.ad?1:0} -function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} -function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} -function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} -function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} -function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} -function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} -function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} -function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} -function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} -function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} -function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} -function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} -function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} -function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} -function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} -function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} -function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} -function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} -function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} -function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} -function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} -function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} -function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} -function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} -function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} -function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} -function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} -function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} -function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} -function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} -function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} -function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} -function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} -function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} -function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} -function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} -function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} -function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} -function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} -function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} -function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} -function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} -function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} -function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} -function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} -function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} -function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} -function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} -function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} -function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} -function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} -function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} -function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} -function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} -function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} -function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} -function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} -function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} -function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} -function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} -function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} -function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} -function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} -function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} -function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} -function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} -function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} -function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} -function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} -function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} -function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} -function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} -function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} -function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} -function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} -function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} -function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} -function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} -function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} -function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} -function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} -function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} -function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} -function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} -function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} -function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} -function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} -function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} -function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} -function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} -function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} -function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} -function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} -function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} -function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} -function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} -function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} -function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} -function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} -function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} -function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} -function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} -function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} -function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} -function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} -function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} -function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} -function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} -function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} -function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} -function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} -function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} -function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} -function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} -function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} -function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} -function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} -function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} -function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} -function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} -function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} -function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} -function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} -function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} -function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} -function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} -function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} -function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} -function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} -function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} -function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} -function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} -function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} -function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} -function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} -function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} -function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} -function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} -function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} -function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} -function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} -function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} -function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} -function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} -function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} -function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} -function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} -function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} -function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} -function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} -function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} -function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} -function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} -function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} -function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} -function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} -function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} -function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} -function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} -function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} -function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} -function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} -function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} -function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} -function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} -function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} -function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} -function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} -function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} -function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} -function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} -function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} -function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} -function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} -function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} -function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} -function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} -function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} -function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} -function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} -function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} -function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} -function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} -function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} -function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} -function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} -function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} -function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} -function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} -function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} -function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} -function ODc(a,b){if(a.pb.p){return -1}return 0} -function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} -function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} -function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} -function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} -function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} -function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} -function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} -function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} -function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} -function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} -function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} -function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} -function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} -function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} -function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} -function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} -function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} -function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} -function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} -function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} -function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} -function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} -function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} -function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} -function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} -function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} -function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} -function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} -function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} -function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} -function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} -function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} -function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} -function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} -function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} -function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} -function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} -function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} -function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} -function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} -function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} -function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} -function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} -function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} -function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} -function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} -function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} -function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} -function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} -function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} -function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} -function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} -function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} -function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} -function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} -function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} -function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} -function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} -function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} -function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} -function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} -function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} -function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} -function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} -function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} -function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} -function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} -function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} -function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} -function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} -function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} -function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} -function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} -function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} -function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} -function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} -function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} -function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} -function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} -function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} -function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} -function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} -function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} -function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} -function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} -function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} -function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} -function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} -function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} -function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} -function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} -function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} -function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} -function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} -function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} -function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} -function uA(a,b){while(b[0]=0){++b[0]}} -function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} -function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} -function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} -function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} -function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} -function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} -function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} -function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} -function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} -function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} -function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} -function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} -function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} -function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} -function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} -function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} -function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} -function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} -function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} -function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} -function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} -function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} -function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} -function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} -function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} -function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} -function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} -function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} -function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} -function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} -function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} -function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} -function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} -function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} -function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} -function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} -function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} -function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} -function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} -function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} -function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} -function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} -function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} -function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} -function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} -function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} -function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} -function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} -function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} -function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} -function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} -function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} -function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} -function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} -function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} -function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} -function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} -function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} -function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} -function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} -function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} -function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} -function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} -function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} -function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} -function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} -function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} -function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} -function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} -function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} -function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} -function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} -function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} -function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} -function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} -function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} -function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} -function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} -function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} -function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} -function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} -function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} -function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} -function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} -function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} -function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} -function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} -function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} -function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} -function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} -function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} -function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} -function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} -function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} -function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} -function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} -function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} -function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} -function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} -function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} -function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} -function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} -function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} -function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} -function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} -function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} -function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} -function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} -function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} -function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} -function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} -function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} -function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} -function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} -function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} -function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} -function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} -function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} -function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} -function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} -function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} -function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} -function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} -function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} -function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} -function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} -function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} -function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} -function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} -function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} -function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} -function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} -function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} -function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} -function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} -function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} -function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} -function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} -function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} -function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} -function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} -function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} -function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} -function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} -function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} -function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} -function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} -function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} -function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} -function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} -function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} -function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} -function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} -function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} -function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} -function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} -function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} -function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} -function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} -function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} -function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} -function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} -function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} -function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} -function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} -function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} -function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} -function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} -function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} -function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} -function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} -function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} -function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} -function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} -function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} -function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} -function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} -function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} -function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} -function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} -function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} -function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} -function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} -function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} -function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} -function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} -function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} -function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} -function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} -function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} -function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} -function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} -function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} -function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} -function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} -function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} -function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} -function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} -function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} -function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} -function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} -function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} -function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} -function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} -function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} -function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} -function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} -function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} -function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} -function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} -function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} -function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} -function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} -function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} -function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} -function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} -function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} -function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} -function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} -function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} -function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} -function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} -function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} -function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} -function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} -function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} -function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} -function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} -function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} -function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} -function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} -function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} -function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} -function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} -function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} -function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} -function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} -function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} -function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} -function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} -function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} -function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} -function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} -function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} -function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} -function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} -function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} -function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} -function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} -function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} -function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} -function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} -function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} -function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} -function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} -function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} -function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} -function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} -function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} -function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} -function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} -function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} -function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} -function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} -function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} -function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} -function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} -function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} -function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} -function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} -function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} -function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} -function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} -function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} -function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} -function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} -function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} -function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} -function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} -function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} -function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} -function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} -function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} -function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} -function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} -function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} -function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} -function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} -function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} -function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} -function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} -function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} -function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} -function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} -function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} -function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} -function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} -function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} -function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} -function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} -function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} -function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} -function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} -function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} -function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} -function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} -function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} -function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} -function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} -function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} -function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} -function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} -function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} -function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} -function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} -function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} -function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} -function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} -function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} -function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} -function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} -function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} -function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} -function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} -function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} -function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} -function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} -function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} -function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} -function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} -function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} -function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} -function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} -function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} -function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} -function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} -function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} -function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} -function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} -function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} -function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} -function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} -function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} -function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} -function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} -function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} -function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} -function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} -function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} -function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} -function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} -function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} -function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} -function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} -function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} -function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} -function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} -function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} -function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} -function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} -function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} -function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} -function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} -function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} -function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} -function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} -function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} -function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} -function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} -function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} -function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} -function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} -function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} -function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} -function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} -function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} -function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} -function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} -function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} -function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} -function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} -function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} -function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} -function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} -function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} -function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} -function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} -function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} -function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} -function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} -function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} -function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} -function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} -function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} -function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} -function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} -function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} -function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} -function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} -function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} -function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} -function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} -function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} -function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} -function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} -function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} -function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} -function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} -function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} -function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} -function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} -function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} -function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} -function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} -function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} -function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} -function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} -function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} -function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} -function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} -function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} -function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} -function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} -function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} -function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} -function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} -function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} -function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} -function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} -function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} -function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} -function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} -function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} -function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} -function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} -function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} -function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} -function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} -function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} -function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} -function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} -function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} -function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} -function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} -function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} -function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} -function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} -function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} -function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} -function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} -function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} -function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} -function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} -function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} -function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} -function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} -function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} -function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} -function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} -function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} -function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} -function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} -function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} -function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} -function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} -function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} -function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} -function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} -function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} -function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} -function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} -function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} -function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} -function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} -function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} -function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} -function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} -function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} -function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} -function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} -function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} -function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} -function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} -function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} -function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} -function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} -function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} -function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} -function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} -function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} -function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} -function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} -function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} -function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} -function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} -function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} -function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} -function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} -function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} -function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} -function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} -function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} -function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} -function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} -function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} -function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} -function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} -function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} -function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} -function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} -function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} -function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} -function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} -function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} -function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} -function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} -function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} -function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} -function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} -function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} -function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} -function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} -function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} -function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} -function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} -function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} -function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} -function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} -function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} -function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} -function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} -function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} -function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} -function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} -function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} -function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} -function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} -function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} -function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} -function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} -function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} -function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} -function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} -function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} -function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} -function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} -function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} -function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} -function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} -function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} -function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} -function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} -function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} -function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} -function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} -function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} -function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} -function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} -function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} -function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} -function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} -function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} -function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} -function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} -function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} -function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} -function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} -function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} -function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} -function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} -function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} -function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} -function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} -function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} -function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} -function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} -function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} -function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} -function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} -function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} -function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} -function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} -function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} -function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} -function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} -function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} -function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} -function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} -function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} -function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} -function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} -function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} -function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} -function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} -function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} -function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} -function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} -function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} -function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} -function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} -function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} -function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} -function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} -function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} -function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} -function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} -function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} -function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} -function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} -function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} -function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} -function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} -function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} -function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} -function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} -function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} -function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} -function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} -function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} -function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} -function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} -function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} -function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} -function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} -function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} -function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} -function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} -function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} -function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} -function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} -function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} -function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} -function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} -function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} -function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} -function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} -function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} -function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} -function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} -function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} -function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} -function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} -function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} -function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} -function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} -function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} -function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} -function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} -function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} -function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} -function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} -function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} -function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} -function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} -function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} -function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} -function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} -function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} -function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} -function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} -function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} -function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} -function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} -function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} -function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} -function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} -function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} -function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} -function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} -function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} -function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} -function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} -function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} -function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} -function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} -function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} -function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} -function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} -function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} -function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} -function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} -function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} -function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} -function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} -function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} -function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} -function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} -function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} -function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} -function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} -function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} -function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} -function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} -function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} -function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} -function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} -function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} -function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} -function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} -function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} -function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} -function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} -function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} -function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} -function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} -function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} -function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} -function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} -function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} -function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} -function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} -function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} -function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} -function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} -function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} -function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} -function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} -function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} -function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} -function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} -function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} -function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} -function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} -function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} -function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} -function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} -function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} -function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} -function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} -function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} -function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} -function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} -function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} -function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} -function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} -function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} -function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} -function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} -function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} -function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} -function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} -function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} -function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} -function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} -function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} -function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} -function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} -function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} -function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} -function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} -function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} -function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} -function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} -function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} -function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} -function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} -function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} -function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} -function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} -function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} -function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} -function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} -function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} -function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} -function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} -function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} -function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} -function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} -function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} -function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} -function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} -function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} -function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} -function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} -function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} -function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} -function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} -function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} -function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} -function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} -function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} -function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} -function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} -function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} -function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} -function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} -function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} -function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} -function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} -function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} -function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} -function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} -function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} -function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} -function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} -function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} -function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} -function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} -function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} -function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} -function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} -function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} -function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} -function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} -function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} -function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} -function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} -function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} -function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} -function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} -function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} -function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} -function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} -function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} -function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} -function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} -function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} -function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} -function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} -function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} -function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} -function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} -function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} -function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} -function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} -function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} -function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} -function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} -function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} -function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} -function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} -function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} -function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} -function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} -function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} -function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} -function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} -function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} -function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} -function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} -function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} -function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} -function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} -function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} -function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} -function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} -function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} -function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} -function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} -function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} -function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} -function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} -function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} -function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} -function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} -function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} -function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} -function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} -function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} -function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} -function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} -function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} -function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} -function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} -function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} -function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} -function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} -function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} -function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} -function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} -function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} -function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} -function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} -function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} -function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} -function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} -function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} -function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} -function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} -function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} -function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} -function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} -function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} -function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} -function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} -function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} -function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} -function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} -function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} -function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} -function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} -function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} -function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} -function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} -function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} -function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} -function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} -function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} -function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} -function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} -function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} -function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} -function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} -function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} -function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} -function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} -function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} -function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} -function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} -function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} -function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} -function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} -function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} -function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} -function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} -function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} -function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} -function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} -function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} -function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} -function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} -function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} -function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} -function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} -function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} -function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} -if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} -function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} -function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} -function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} -function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} -function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} -function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} -function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} -function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} -function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} -function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} -function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} -function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} -function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} -function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} -function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} -function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} -function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} -function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} -function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} -function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} -function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} -function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} -function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} -function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} -function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} -function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} -function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); -// -------------- RUN GWT INITIALIZATION CODE -------------- -gwtOnLoad(null, 'elk', null); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts deleted file mode 100644 index 780a5cfd..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019 TypeFox and others. - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ - -export * from "./elk-api"; -import ElkConstructor from "./elk-api"; -export default ElkConstructor; diff --git a/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js b/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js deleted file mode 100644 index 5973d0aa..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/elk.bundled.js +++ /dev/null @@ -1,6444 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, - defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, - _ref$algorithms = _ref.algorithms, - algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, - workerFactory = _ref.workerFactory, - workerUrl = _ref.workerUrl; - - _classCallCheck(this, ELK); - - this.defaultLayoutOptions = defaultLayoutOptions; - this.initialized = false; - - // check valid worker construction possible - if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { - throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); - } - var factory = workerFactory; - if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { - // use default Web Worker - factory = function factory(url) { - return new Worker(url); - }; - } - - // create the worker - var worker = factory(workerUrl); - if (typeof worker.postMessage !== 'function') { - throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); - } - - // wrap the worker to return promises - this.worker = new PromisedWorker(worker); - - // initially register algorithms - this.worker.postMessage({ - cmd: 'register', - algorithms: algorithms - }).then(function (r) { - return _this.initialized = true; - }).catch(console.err); - } - - _createClass(ELK, [{ - key: 'layout', - value: function layout(graph) { - var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref2$layoutOptions = _ref2.layoutOptions, - layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, - _ref2$logging = _ref2.logging, - logging = _ref2$logging === undefined ? false : _ref2$logging, - _ref2$measureExecutio = _ref2.measureExecutionTime, - measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; - - if (!graph) { - return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); - } - return this.worker.postMessage({ - cmd: 'layout', - graph: graph, - layoutOptions: layoutOptions, - options: { - logging: logging, - measureExecutionTime: measureExecutionTime - } - }); - } - }, { - key: 'knownLayoutAlgorithms', - value: function knownLayoutAlgorithms() { - return this.worker.postMessage({ cmd: 'algorithms' }); - } - }, { - key: 'knownLayoutOptions', - value: function knownLayoutOptions() { - return this.worker.postMessage({ cmd: 'options' }); - } - }, { - key: 'knownLayoutCategories', - value: function knownLayoutCategories() { - return this.worker.postMessage({ cmd: 'categories' }); - } - }, { - key: 'terminateWorker', - value: function terminateWorker() { - this.worker.terminate(); - } - }]); - - return ELK; -}(); - -exports.default = ELK; - -var PromisedWorker = function () { - function PromisedWorker(worker) { - var _this2 = this; - - _classCallCheck(this, PromisedWorker); - - if (worker === undefined) { - throw new Error("Missing mandatory parameter 'worker'."); - } - this.resolvers = {}; - this.worker = worker; - this.worker.onmessage = function (answer) { - // why is this necessary? - setTimeout(function () { - _this2.receive(_this2, answer); - }, 0); - }; - } - - _createClass(PromisedWorker, [{ - key: 'postMessage', - value: function postMessage(msg) { - var id = this.id || 0; - this.id = id + 1; - msg.id = id; - var self = this; - return new Promise(function (resolve, reject) { - // prepare the resolver - self.resolvers[id] = function (err, res) { - if (err) { - self.convertGwtStyleError(err); - reject(err); - } else { - resolve(res); - } - }; - // post the message - self.worker.postMessage(msg); - }); - } - }, { - key: 'receive', - value: function receive(self, answer) { - var json = answer.data; - var resolver = self.resolvers[json.id]; - if (resolver) { - delete self.resolvers[json.id]; - if (json.error) { - resolver(json.error); - } else { - resolver(null, json.data); - } - } - } - }, { - key: 'terminate', - value: function terminate() { - if (this.worker.terminate) { - this.worker.terminate(); - } - } - }, { - key: 'convertGwtStyleError', - value: function convertGwtStyleError(err) { - if (!err) { - return; - } - // Somewhat flatten the way GWT stores nested exception(s) - var javaException = err['__java$exception']; - if (javaException) { - // Note that the property name of the nested exception is different - // in the non-minified ('cause') and the minified (not deterministic) version. - // Hence, the version below only works for the non-minified version. - // However, as the minified stack trace is not of much use anyway, one - // should switch the used version for debugging in such a case. - if (javaException.cause && javaException.cause.backingJsObject) { - err.cause = javaException.cause.backingJsObject; - this.convertGwtStyleError(err.cause); - } - delete err['__java$exception']; - } - } - }]); - - return PromisedWorker; -}(); -},{}],2:[function(require,module,exports){ -(function (global){(function (){ -'use strict'; - -// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- -var $wnd; -if (typeof window !== 'undefined') - $wnd = window -else if (typeof global !== 'undefined') - $wnd = global // nodejs -else if (typeof self !== 'undefined') - $wnd = self // web worker - -var $moduleName, - $moduleBase; - -// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- -var g, i, o; - -// -------------- GENERATED CODE -------------- -function nb(){} -function xb(){} -function Fd(){} -function $g(){} -function _p(){} -function yq(){} -function Sq(){} -function Es(){} -function Jw(){} -function Vw(){} -function VA(){} -function dA(){} -function MA(){} -function PA(){} -function PB(){} -function bx(){} -function cx(){} -function vy(){} -function Nz(){} -function Yz(){} -function Ylb(){} -function Ymb(){} -function xmb(){} -function Fmb(){} -function Qmb(){} -function gcb(){} -function ccb(){} -function jcb(){} -function jtb(){} -function otb(){} -function qtb(){} -function _fb(){} -function bpb(){} -function kpb(){} -function ppb(){} -function Gpb(){} -function drb(){} -function dzb(){} -function fzb(){} -function fxb(){} -function Vxb(){} -function Ovb(){} -function byb(){} -function zyb(){} -function Zyb(){} -function _yb(){} -function hzb(){} -function jzb(){} -function lzb(){} -function nzb(){} -function rzb(){} -function zzb(){} -function Czb(){} -function Ezb(){} -function Gzb(){} -function Izb(){} -function Mzb(){} -function bBb(){} -function NBb(){} -function PBb(){} -function RBb(){} -function iCb(){} -function OCb(){} -function SCb(){} -function GDb(){} -function JDb(){} -function fEb(){} -function xEb(){} -function CEb(){} -function GEb(){} -function yFb(){} -function KGb(){} -function tIb(){} -function vIb(){} -function xIb(){} -function zIb(){} -function OIb(){} -function SIb(){} -function TJb(){} -function VJb(){} -function XJb(){} -function XKb(){} -function fKb(){} -function VKb(){} -function VLb(){} -function jLb(){} -function nLb(){} -function GLb(){} -function KLb(){} -function MLb(){} -function OLb(){} -function RLb(){} -function YLb(){} -function bMb(){} -function gMb(){} -function lMb(){} -function pMb(){} -function wMb(){} -function zMb(){} -function CMb(){} -function FMb(){} -function LMb(){} -function zNb(){} -function PNb(){} -function kOb(){} -function pOb(){} -function tOb(){} -function yOb(){} -function FOb(){} -function GPb(){} -function aQb(){} -function cQb(){} -function eQb(){} -function gQb(){} -function iQb(){} -function CQb(){} -function MQb(){} -function OQb(){} -function ASb(){} -function fTb(){} -function kTb(){} -function STb(){} -function fUb(){} -function DUb(){} -function VUb(){} -function YUb(){} -function _Ub(){} -function _Wb(){} -function QWb(){} -function XWb(){} -function jVb(){} -function DVb(){} -function VVb(){} -function $Vb(){} -function dXb(){} -function hXb(){} -function lXb(){} -function gYb(){} -function HYb(){} -function SYb(){} -function VYb(){} -function dZb(){} -function P$b(){} -function T$b(){} -function h1b(){} -function m1b(){} -function q1b(){} -function u1b(){} -function y1b(){} -function C1b(){} -function e2b(){} -function g2b(){} -function m2b(){} -function q2b(){} -function u2b(){} -function S2b(){} -function U2b(){} -function W2b(){} -function _2b(){} -function e3b(){} -function h3b(){} -function p3b(){} -function t3b(){} -function w3b(){} -function y3b(){} -function A3b(){} -function M3b(){} -function Q3b(){} -function U3b(){} -function Y3b(){} -function l4b(){} -function q4b(){} -function s4b(){} -function u4b(){} -function w4b(){} -function y4b(){} -function L4b(){} -function N4b(){} -function P4b(){} -function R4b(){} -function T4b(){} -function X4b(){} -function I5b(){} -function Q5b(){} -function T5b(){} -function Z5b(){} -function l6b(){} -function o6b(){} -function t6b(){} -function z6b(){} -function L6b(){} -function M6b(){} -function P6b(){} -function X6b(){} -function $6b(){} -function a7b(){} -function c7b(){} -function g7b(){} -function j7b(){} -function m7b(){} -function r7b(){} -function x7b(){} -function D7b(){} -function D9b(){} -function b9b(){} -function h9b(){} -function j9b(){} -function l9b(){} -function w9b(){} -function F9b(){} -function hac(){} -function jac(){} -function pac(){} -function uac(){} -function Iac(){} -function Kac(){} -function Sac(){} -function obc(){} -function rbc(){} -function vbc(){} -function Fbc(){} -function Jbc(){} -function Xbc(){} -function ccc(){} -function fcc(){} -function lcc(){} -function occ(){} -function tcc(){} -function ycc(){} -function Acc(){} -function Ccc(){} -function Ecc(){} -function Gcc(){} -function Zcc(){} -function _cc(){} -function bdc(){} -function fdc(){} -function jdc(){} -function pdc(){} -function sdc(){} -function ydc(){} -function Adc(){} -function Cdc(){} -function Edc(){} -function Idc(){} -function Ndc(){} -function Qdc(){} -function Sdc(){} -function Udc(){} -function Wdc(){} -function Ydc(){} -function aec(){} -function hec(){} -function jec(){} -function lec(){} -function nec(){} -function uec(){} -function wec(){} -function yec(){} -function Aec(){} -function Fec(){} -function Jec(){} -function Lec(){} -function Nec(){} -function Rec(){} -function Uec(){} -function Zec(){} -function Zfc(){} -function lfc(){} -function tfc(){} -function xfc(){} -function zfc(){} -function Ffc(){} -function Jfc(){} -function Nfc(){} -function Pfc(){} -function Vfc(){} -function _fc(){} -function fgc(){} -function jgc(){} -function lgc(){} -function Bgc(){} -function ehc(){} -function ghc(){} -function ihc(){} -function khc(){} -function mhc(){} -function ohc(){} -function qhc(){} -function yhc(){} -function Ahc(){} -function Ghc(){} -function Ihc(){} -function Khc(){} -function Mhc(){} -function Shc(){} -function Uhc(){} -function Whc(){} -function dic(){} -function dlc(){} -function blc(){} -function flc(){} -function hlc(){} -function jlc(){} -function Glc(){} -function Ilc(){} -function Klc(){} -function Mlc(){} -function Mjc(){} -function Qjc(){} -function Qlc(){} -function Ulc(){} -function Ylc(){} -function Lkc(){} -function Nkc(){} -function Pkc(){} -function Rkc(){} -function Xkc(){} -function _kc(){} -function gmc(){} -function kmc(){} -function zmc(){} -function Fmc(){} -function Wmc(){} -function $mc(){} -function anc(){} -function mnc(){} -function wnc(){} -function Hnc(){} -function Jnc(){} -function Lnc(){} -function Nnc(){} -function Pnc(){} -function Ync(){} -function eoc(){} -function Aoc(){} -function Coc(){} -function Eoc(){} -function Joc(){} -function Loc(){} -function Zoc(){} -function _oc(){} -function bpc(){} -function hpc(){} -function kpc(){} -function ppc(){} -function pFc(){} -function Ryc(){} -function QCc(){} -function PDc(){} -function xGc(){} -function HGc(){} -function JGc(){} -function NGc(){} -function GIc(){} -function iKc(){} -function mKc(){} -function wKc(){} -function yKc(){} -function AKc(){} -function EKc(){} -function KKc(){} -function OKc(){} -function QKc(){} -function SKc(){} -function UKc(){} -function YKc(){} -function aLc(){} -function fLc(){} -function hLc(){} -function nLc(){} -function pLc(){} -function tLc(){} -function vLc(){} -function zLc(){} -function BLc(){} -function DLc(){} -function FLc(){} -function sMc(){} -function JMc(){} -function hNc(){} -function RNc(){} -function ZNc(){} -function _Nc(){} -function bOc(){} -function dOc(){} -function fOc(){} -function hOc(){} -function hRc(){} -function jRc(){} -function KRc(){} -function NRc(){} -function NQc(){} -function LQc(){} -function _Qc(){} -function cPc(){} -function iPc(){} -function kPc(){} -function mPc(){} -function xPc(){} -function zPc(){} -function zSc(){} -function BSc(){} -function GSc(){} -function ISc(){} -function NSc(){} -function TSc(){} -function NTc(){} -function NVc(){} -function oVc(){} -function SVc(){} -function VVc(){} -function XVc(){} -function ZVc(){} -function bWc(){} -function bXc(){} -function CXc(){} -function FXc(){} -function IXc(){} -function MXc(){} -function UXc(){} -function bYc(){} -function fYc(){} -function oYc(){} -function qYc(){} -function uYc(){} -function pZc(){} -function G$c(){} -function h0c(){} -function N0c(){} -function k1c(){} -function I1c(){} -function Q1c(){} -function f2c(){} -function i2c(){} -function k2c(){} -function w2c(){} -function O2c(){} -function S2c(){} -function Z2c(){} -function v3c(){} -function x3c(){} -function R3c(){} -function U3c(){} -function e4c(){} -function w4c(){} -function x4c(){} -function z4c(){} -function B4c(){} -function D4c(){} -function F4c(){} -function H4c(){} -function J4c(){} -function L4c(){} -function N4c(){} -function P4c(){} -function R4c(){} -function T4c(){} -function V4c(){} -function X4c(){} -function Z4c(){} -function _4c(){} -function _7c(){} -function b5c(){} -function d5c(){} -function f5c(){} -function h5c(){} -function H5c(){} -function Hfd(){} -function Zfd(){} -function Zed(){} -function ged(){} -function Jed(){} -function Ned(){} -function Red(){} -function Ved(){} -function bbd(){} -function mdd(){} -function _fd(){} -function fgd(){} -function kgd(){} -function Mgd(){} -function Ahd(){} -function Ald(){} -function Tld(){} -function xkd(){} -function rmd(){} -function knd(){} -function Jod(){} -function JCd(){} -function Bpd(){} -function BFd(){} -function oFd(){} -function bqd(){} -function bvd(){} -function jvd(){} -function yud(){} -function Hxd(){} -function EBd(){} -function aDd(){} -function MGd(){} -function vHd(){} -function RHd(){} -function wNd(){} -function zNd(){} -function CNd(){} -function KNd(){} -function XNd(){} -function $Nd(){} -function HPd(){} -function lUd(){} -function XUd(){} -function DWd(){} -function GWd(){} -function JWd(){} -function MWd(){} -function PWd(){} -function SWd(){} -function VWd(){} -function YWd(){} -function _Wd(){} -function xYd(){} -function BYd(){} -function mZd(){} -function EZd(){} -function GZd(){} -function JZd(){} -function MZd(){} -function PZd(){} -function SZd(){} -function VZd(){} -function YZd(){} -function _Zd(){} -function c$d(){} -function f$d(){} -function i$d(){} -function l$d(){} -function o$d(){} -function r$d(){} -function u$d(){} -function x$d(){} -function A$d(){} -function D$d(){} -function G$d(){} -function J$d(){} -function M$d(){} -function P$d(){} -function S$d(){} -function V$d(){} -function Y$d(){} -function _$d(){} -function c_d(){} -function f_d(){} -function i_d(){} -function l_d(){} -function o_d(){} -function r_d(){} -function u_d(){} -function x_d(){} -function A_d(){} -function D_d(){} -function G_d(){} -function J_d(){} -function M_d(){} -function P_d(){} -function S_d(){} -function V_d(){} -function Y_d(){} -function h5d(){} -function U6d(){} -function U9d(){} -function _8d(){} -function fae(){} -function hae(){} -function kae(){} -function nae(){} -function qae(){} -function tae(){} -function wae(){} -function zae(){} -function Cae(){} -function Fae(){} -function Iae(){} -function Lae(){} -function Oae(){} -function Rae(){} -function Uae(){} -function Xae(){} -function $ae(){} -function bbe(){} -function ebe(){} -function hbe(){} -function kbe(){} -function nbe(){} -function qbe(){} -function tbe(){} -function wbe(){} -function zbe(){} -function Cbe(){} -function Fbe(){} -function Ibe(){} -function Lbe(){} -function Obe(){} -function Rbe(){} -function Ube(){} -function Xbe(){} -function $be(){} -function bce(){} -function ece(){} -function hce(){} -function kce(){} -function nce(){} -function qce(){} -function tce(){} -function wce(){} -function zce(){} -function Cce(){} -function Fce(){} -function Ice(){} -function Lce(){} -function Oce(){} -function Rce(){} -function Uce(){} -function Xce(){} -function ude(){} -function Vge(){} -function dhe(){} -function s_b(a){} -function jSd(a){} -function ol(){wb()} -function oPb(){nPb()} -function EPb(){CPb()} -function gFb(){fFb()} -function TRb(){SRb()} -function ySb(){wSb()} -function PSb(){OSb()} -function dTb(){bTb()} -function i4b(){b4b()} -function D2b(){x2b()} -function J6b(){D6b()} -function u9b(){q9b()} -function $9b(){I9b()} -function Umc(){Imc()} -function abc(){Vac()} -function ZCc(){VCc()} -function kCc(){hCc()} -function rCc(){oCc()} -function Tcc(){Occ()} -function xkc(){gkc()} -function xDc(){rDc()} -function iDc(){cDc()} -function kwc(){jwc()} -function tJc(){jJc()} -function dJc(){aJc()} -function Pyc(){Nyc()} -function VBc(){SBc()} -function CFc(){yFc()} -function CUc(){wUc()} -function lUc(){fUc()} -function sUc(){pUc()} -function IUc(){GUc()} -function IWc(){HWc()} -function _Wc(){ZWc()} -function fHc(){dHc()} -function f0c(){d0c()} -function B0c(){A0c()} -function L0c(){J0c()} -function LTc(){JTc()} -function sTc(){rTc()} -function KLc(){ILc()} -function wNc(){tNc()} -function PYc(){OYc()} -function nZc(){lZc()} -function q3c(){p3c()} -function Z7c(){X7c()} -function Z9c(){Y9c()} -function _ad(){Zad()} -function kdd(){idd()} -function $md(){Smd()} -function HGd(){tGd()} -function hLd(){NKd()} -function J6d(){Uge()} -function Mvb(a){uCb(a)} -function Yb(a){this.a=a} -function cc(a){this.a=a} -function cj(a){this.a=a} -function ij(a){this.a=a} -function Dj(a){this.a=a} -function df(a){this.a=a} -function kf(a){this.a=a} -function ah(a){this.a=a} -function lh(a){this.a=a} -function th(a){this.a=a} -function Ph(a){this.a=a} -function vi(a){this.a=a} -function Ci(a){this.a=a} -function Fk(a){this.a=a} -function Ln(a){this.a=a} -function ap(a){this.a=a} -function zp(a){this.a=a} -function Yp(a){this.a=a} -function qq(a){this.a=a} -function Dq(a){this.a=a} -function wr(a){this.a=a} -function Ir(a){this.b=a} -function sj(a){this.c=a} -function sw(a){this.a=a} -function fw(a){this.a=a} -function xw(a){this.a=a} -function Cw(a){this.a=a} -function Qw(a){this.a=a} -function Rw(a){this.a=a} -function Xw(a){this.a=a} -function Xv(a){this.a=a} -function Sv(a){this.a=a} -function eu(a){this.a=a} -function Zx(a){this.a=a} -function _x(a){this.a=a} -function xy(a){this.a=a} -function xB(a){this.a=a} -function HB(a){this.a=a} -function TB(a){this.a=a} -function fC(a){this.a=a} -function wB(){this.a=[]} -function MBb(a,b){a.a=b} -function w_b(a,b){a.a=b} -function x_b(a,b){a.b=b} -function YOb(a,b){a.b=b} -function $Ob(a,b){a.b=b} -function ZGb(a,b){a.j=b} -function qNb(a,b){a.g=b} -function rNb(a,b){a.i=b} -function dRb(a,b){a.c=b} -function eRb(a,b){a.d=b} -function z_b(a,b){a.d=b} -function y_b(a,b){a.c=b} -function __b(a,b){a.k=b} -function E0b(a,b){a.c=b} -function njc(a,b){a.c=b} -function mjc(a,b){a.a=b} -function dFc(a,b){a.a=b} -function eFc(a,b){a.f=b} -function nOc(a,b){a.a=b} -function oOc(a,b){a.b=b} -function pOc(a,b){a.d=b} -function qOc(a,b){a.i=b} -function rOc(a,b){a.o=b} -function sOc(a,b){a.r=b} -function $Pc(a,b){a.a=b} -function _Pc(a,b){a.b=b} -function DVc(a,b){a.e=b} -function EVc(a,b){a.f=b} -function FVc(a,b){a.g=b} -function SZc(a,b){a.e=b} -function TZc(a,b){a.f=b} -function c$c(a,b){a.f=b} -function bJd(a,b){a.n=b} -function A1d(a,b){a.a=b} -function J1d(a,b){a.a=b} -function B1d(a,b){a.c=b} -function K1d(a,b){a.c=b} -function L1d(a,b){a.d=b} -function M1d(a,b){a.e=b} -function N1d(a,b){a.g=b} -function d2d(a,b){a.a=b} -function e2d(a,b){a.c=b} -function f2d(a,b){a.d=b} -function g2d(a,b){a.e=b} -function h2d(a,b){a.f=b} -function i2d(a,b){a.j=b} -function Z8d(a,b){a.a=b} -function $8d(a,b){a.b=b} -function g9d(a,b){a.a=b} -function Cic(a){a.b=a.a} -function Dg(a){a.c=a.d.d} -function vib(a){this.d=a} -function eib(a){this.a=a} -function Pib(a){this.a=a} -function Vib(a){this.a=a} -function $ib(a){this.a=a} -function mcb(a){this.a=a} -function Mcb(a){this.a=a} -function Xcb(a){this.a=a} -function Ndb(a){this.a=a} -function _db(a){this.a=a} -function teb(a){this.a=a} -function Qeb(a){this.a=a} -function djb(a){this.a=a} -function Gjb(a){this.a=a} -function Njb(a){this.a=a} -function Bjb(a){this.b=a} -function lnb(a){this.b=a} -function Dnb(a){this.b=a} -function anb(a){this.a=a} -function Mob(a){this.a=a} -function Rob(a){this.a=a} -function iob(a){this.c=a} -function olb(a){this.c=a} -function qub(a){this.c=a} -function Tub(a){this.a=a} -function Vub(a){this.a=a} -function Xub(a){this.a=a} -function Zub(a){this.a=a} -function tpb(a){this.a=a} -function _pb(a){this.a=a} -function Wqb(a){this.a=a} -function nsb(a){this.a=a} -function Rxb(a){this.a=a} -function Txb(a){this.a=a} -function Xxb(a){this.a=a} -function bzb(a){this.a=a} -function tzb(a){this.a=a} -function vzb(a){this.a=a} -function xzb(a){this.a=a} -function Kzb(a){this.a=a} -function Ozb(a){this.a=a} -function iAb(a){this.a=a} -function kAb(a){this.a=a} -function mAb(a){this.a=a} -function BAb(a){this.a=a} -function hBb(a){this.a=a} -function jBb(a){this.a=a} -function nBb(a){this.a=a} -function TBb(a){this.a=a} -function XBb(a){this.a=a} -function QCb(a){this.a=a} -function WCb(a){this.a=a} -function _Cb(a){this.a=a} -function dEb(a){this.a=a} -function QGb(a){this.a=a} -function YGb(a){this.a=a} -function tKb(a){this.a=a} -function CLb(a){this.a=a} -function JMb(a){this.a=a} -function RNb(a){this.a=a} -function kQb(a){this.a=a} -function mQb(a){this.a=a} -function FQb(a){this.a=a} -function ETb(a){this.a=a} -function UTb(a){this.a=a} -function dUb(a){this.a=a} -function hUb(a){this.a=a} -function EZb(a){this.a=a} -function j$b(a){this.a=a} -function v$b(a){this.e=a} -function J0b(a){this.a=a} -function M0b(a){this.a=a} -function R0b(a){this.a=a} -function U0b(a){this.a=a} -function i2b(a){this.a=a} -function k2b(a){this.a=a} -function o2b(a){this.a=a} -function s2b(a){this.a=a} -function G2b(a){this.a=a} -function I2b(a){this.a=a} -function K2b(a){this.a=a} -function M2b(a){this.a=a} -function W3b(a){this.a=a} -function $3b(a){this.a=a} -function V4b(a){this.a=a} -function u5b(a){this.a=a} -function A7b(a){this.a=a} -function G7b(a){this.a=a} -function J7b(a){this.a=a} -function M7b(a){this.a=a} -function Mbc(a){this.a=a} -function Pbc(a){this.a=a} -function lac(a){this.a=a} -function nac(a){this.a=a} -function qcc(a){this.a=a} -function Gdc(a){this.a=a} -function $dc(a){this.a=a} -function cec(a){this.a=a} -function _ec(a){this.a=a} -function pfc(a){this.a=a} -function Bfc(a){this.a=a} -function Lfc(a){this.a=a} -function ygc(a){this.a=a} -function Dgc(a){this.a=a} -function shc(a){this.a=a} -function uhc(a){this.a=a} -function whc(a){this.a=a} -function Chc(a){this.a=a} -function Ehc(a){this.a=a} -function Ohc(a){this.a=a} -function Yhc(a){this.a=a} -function Tkc(a){this.a=a} -function Vkc(a){this.a=a} -function Olc(a){this.a=a} -function pnc(a){this.a=a} -function rnc(a){this.a=a} -function dpc(a){this.a=a} -function fpc(a){this.a=a} -function GCc(a){this.a=a} -function KCc(a){this.a=a} -function mDc(a){this.a=a} -function jEc(a){this.a=a} -function HEc(a){this.a=a} -function FEc(a){this.c=a} -function qoc(a){this.b=a} -function bFc(a){this.a=a} -function GFc(a){this.a=a} -function iGc(a){this.a=a} -function kGc(a){this.a=a} -function mGc(a){this.a=a} -function $Gc(a){this.a=a} -function hIc(a){this.a=a} -function lIc(a){this.a=a} -function pIc(a){this.a=a} -function tIc(a){this.a=a} -function xIc(a){this.a=a} -function zIc(a){this.a=a} -function CIc(a){this.a=a} -function LIc(a){this.a=a} -function CKc(a){this.a=a} -function IKc(a){this.a=a} -function MKc(a){this.a=a} -function $Kc(a){this.a=a} -function cLc(a){this.a=a} -function jLc(a){this.a=a} -function rLc(a){this.a=a} -function xLc(a){this.a=a} -function OMc(a){this.a=a} -function ZOc(a){this.a=a} -function ZRc(a){this.a=a} -function aSc(a){this.a=a} -function I$c(a){this.a=a} -function K$c(a){this.a=a} -function M$c(a){this.a=a} -function O$c(a){this.a=a} -function U$c(a){this.a=a} -function n1c(a){this.a=a} -function z1c(a){this.a=a} -function B1c(a){this.a=a} -function Q2c(a){this.a=a} -function U2c(a){this.a=a} -function z3c(a){this.a=a} -function med(a){this.a=a} -function Xed(a){this.a=a} -function _ed(a){this.a=a} -function Qfd(a){this.a=a} -function Bgd(a){this.a=a} -function $gd(a){this.a=a} -function lrd(a){this.a=a} -function urd(a){this.a=a} -function vrd(a){this.a=a} -function wrd(a){this.a=a} -function xrd(a){this.a=a} -function yrd(a){this.a=a} -function zrd(a){this.a=a} -function Ard(a){this.a=a} -function Brd(a){this.a=a} -function Crd(a){this.a=a} -function Ird(a){this.a=a} -function Krd(a){this.a=a} -function Lrd(a){this.a=a} -function Mrd(a){this.a=a} -function Nrd(a){this.a=a} -function Prd(a){this.a=a} -function Srd(a){this.a=a} -function Yrd(a){this.a=a} -function Zrd(a){this.a=a} -function _rd(a){this.a=a} -function asd(a){this.a=a} -function bsd(a){this.a=a} -function csd(a){this.a=a} -function dsd(a){this.a=a} -function msd(a){this.a=a} -function osd(a){this.a=a} -function qsd(a){this.a=a} -function ssd(a){this.a=a} -function Wsd(a){this.a=a} -function Lsd(a){this.b=a} -function thd(a){this.f=a} -function qtd(a){this.a=a} -function yBd(a){this.a=a} -function GBd(a){this.a=a} -function MBd(a){this.a=a} -function SBd(a){this.a=a} -function iCd(a){this.a=a} -function YMd(a){this.a=a} -function GNd(a){this.a=a} -function EPd(a){this.a=a} -function EQd(a){this.a=a} -function NTd(a){this.a=a} -function qOd(a){this.b=a} -function lVd(a){this.c=a} -function VVd(a){this.e=a} -function iYd(a){this.a=a} -function RYd(a){this.a=a} -function ZYd(a){this.a=a} -function z0d(a){this.a=a} -function O0d(a){this.a=a} -function s0d(a){this.d=a} -function W5d(a){this.a=a} -function cge(a){this.a=a} -function xfe(a){this.e=a} -function Tfd(){this.a=0} -function jkb(){Vjb(this)} -function Rkb(){Ckb(this)} -function Lqb(){Uhb(this)} -function lEb(){kEb(this)} -function A_b(){s_b(this)} -function UQd(){this.c=FQd} -function v6d(a,b){b.Wb(a)} -function moc(a,b){a.b+=b} -function yXb(a){a.b=new Ji} -function vbb(a){return a.e} -function DB(a){return a.a} -function LB(a){return a.a} -function ZB(a){return a.a} -function lC(a){return a.a} -function EC(a){return a.a} -function wC(){return null} -function SB(){return null} -function hcb(){mvd();ovd()} -function zJb(a){a.b.tf(a.e)} -function j5b(a,b){a.b=b-a.b} -function g5b(a,b){a.a=b-a.a} -function PXc(a,b){b.ad(a.a)} -function plc(a,b){G0b(b,a)} -function hp(a,b,c){a.Od(c,b)} -function As(a,b){a.e=b;b.b=a} -function Zl(a){Ql();this.a=a} -function jq(a){Ql();this.a=a} -function sq(a){Ql();this.a=a} -function Fq(a){im();this.a=a} -function Sz(a){Rz();Qz.be(a)} -function gz(){Xy.call(this)} -function xcb(){Xy.call(this)} -function pcb(){gz.call(this)} -function tcb(){gz.call(this)} -function Bdb(){gz.call(this)} -function Vdb(){gz.call(this)} -function Ydb(){gz.call(this)} -function Geb(){gz.call(this)} -function bgb(){gz.call(this)} -function Apb(){gz.call(this)} -function Jpb(){gz.call(this)} -function utb(){gz.call(this)} -function x2c(){gz.call(this)} -function rQd(){this.a=this} -function MPd(){this.Bb|=256} -function tTb(){this.b=new mt} -function fA(){fA=ccb;new Lqb} -function rcb(){pcb.call(this)} -function dCb(a,b){a.length=b} -function Tvb(a,b){Ekb(a.a,b)} -function sKb(a,b){UHb(a.c,b)} -function SMc(a,b){Qqb(a.b,b)} -function vBd(a,b){uAd(a.a,b)} -function wBd(a,b){vAd(a.a,b)} -function GLd(a,b){Uhd(a.e,b)} -function d7d(a){D2d(a.c,a.b)} -function mj(a,b){a.kc().Nb(b)} -function Odb(a){this.a=Tdb(a)} -function Tqb(){this.a=new Lqb} -function gyb(){this.a=new Lqb} -function Wvb(){this.a=new Rkb} -function KFb(){this.a=new Rkb} -function PFb(){this.a=new Rkb} -function FFb(){this.a=new yFb} -function pGb(){this.a=new MFb} -function ZQb(){this.a=new MQb} -function Gxb(){this.a=new Pwb} -function jUb(){this.a=new PTb} -function sDb(){this.a=new oDb} -function zDb(){this.a=new tDb} -function CWb(){this.a=new Rkb} -function HXb(){this.a=new Rkb} -function nYb(){this.a=new Rkb} -function BYb(){this.a=new Rkb} -function fLb(){this.d=new Rkb} -function vYb(){this.a=new Tqb} -function a2b(){this.a=new Lqb} -function wZb(){this.b=new Lqb} -function TCc(){this.b=new Rkb} -function zJc(){this.e=new Rkb} -function uMc(){this.d=new Rkb} -function wdc(){this.a=new xkc} -function vKc(){Rkb.call(this)} -function twb(){Wvb.call(this)} -function oHb(){$Gb.call(this)} -function LXb(){HXb.call(this)} -function L_b(){H_b.call(this)} -function H_b(){A_b.call(this)} -function p0b(){A_b.call(this)} -function s0b(){p0b.call(this)} -function WMc(){VMc.call(this)} -function bNc(){VMc.call(this)} -function EPc(){CPc.call(this)} -function JPc(){CPc.call(this)} -function OPc(){CPc.call(this)} -function w1c(){s1c.call(this)} -function s7c(){Psb.call(this)} -function apd(){Ald.call(this)} -function ppd(){Ald.call(this)} -function lDd(){YCd.call(this)} -function NDd(){YCd.call(this)} -function mFd(){Lqb.call(this)} -function vFd(){Lqb.call(this)} -function GFd(){Lqb.call(this)} -function KPd(){Tqb.call(this)} -function OJd(){hJd.call(this)} -function aQd(){MPd.call(this)} -function SSd(){FId.call(this)} -function rUd(){FId.call(this)} -function oUd(){Lqb.call(this)} -function NYd(){Lqb.call(this)} -function cZd(){Lqb.call(this)} -function R8d(){MGd.call(this)} -function o9d(){MGd.call(this)} -function i9d(){R8d.call(this)} -function hee(){ude.call(this)} -function Dd(a){yd.call(this,a)} -function Hd(a){yd.call(this,a)} -function ph(a){lh.call(this,a)} -function Sh(a){Wc.call(this,a)} -function oi(a){Sh.call(this,a)} -function Ii(a){Wc.call(this,a)} -function Zdd(){this.a=new Psb} -function CPc(){this.a=new Tqb} -function s1c(){this.a=new Lqb} -function QSc(){this.a=new Rkb} -function D2c(){this.j=new Rkb} -function QXc(){this.a=new UXc} -function e_c(){this.a=new d_c} -function YCd(){this.a=new aDd} -function _k(){_k=ccb;$k=new al} -function Lk(){Lk=ccb;Kk=new Mk} -function wb(){wb=ccb;vb=new xb} -function hs(){hs=ccb;gs=new is} -function rs(a){Sh.call(this,a)} -function Gp(a){Sh.call(this,a)} -function xp(a){Lo.call(this,a)} -function Ep(a){Lo.call(this,a)} -function Tp(a){Wn.call(this,a)} -function wx(a){un.call(this,a)} -function ov(a){dv.call(this,a)} -function Mv(a){Br.call(this,a)} -function Ov(a){Br.call(this,a)} -function Lw(a){Br.call(this,a)} -function hz(a){Yy.call(this,a)} -function MB(a){hz.call(this,a)} -function eC(){fC.call(this,{})} -function Ftb(a){Atb();this.a=a} -function zwb(a){a.b=null;a.c=0} -function Vy(a,b){a.e=b;Sy(a,b)} -function LVb(a,b){a.a=b;NVb(a)} -function lIb(a,b,c){a.a[b.g]=c} -function vfd(a,b,c){Dfd(c,a,b)} -function Odc(a,b){rjc(b.i,a.n)} -function Wyc(a,b){Xyc(a).td(b)} -function ERb(a,b){return a*a/b} -function Xr(a,b){return a.g-b.g} -function tC(a){return new TB(a)} -function vC(a){return new yC(a)} -function ocb(a){hz.call(this,a)} -function qcb(a){hz.call(this,a)} -function ucb(a){hz.call(this,a)} -function vcb(a){Yy.call(this,a)} -function fGc(a){LFc();this.a=a} -function c0d(a){kzd();this.a=a} -function bhd(a){Rgd();this.f=a} -function dhd(a){Rgd();this.f=a} -function Cdb(a){hz.call(this,a)} -function Wdb(a){hz.call(this,a)} -function Zdb(a){hz.call(this,a)} -function Feb(a){hz.call(this,a)} -function Heb(a){hz.call(this,a)} -function Ccb(a){return uCb(a),a} -function Edb(a){return uCb(a),a} -function Gdb(a){return uCb(a),a} -function jfb(a){return uCb(a),a} -function tfb(a){return uCb(a),a} -function akb(a){return a.b==a.c} -function Hwb(a){return !!a&&a.b} -function pIb(a){return !!a&&a.k} -function qIb(a){return !!a&&a.j} -function amb(a){uCb(a);this.a=a} -function wVb(a){qVb(a);return a} -function Blb(a){Glb(a,a.length)} -function cgb(a){hz.call(this,a)} -function cqd(a){hz.call(this,a)} -function n8d(a){hz.call(this,a)} -function y2c(a){hz.call(this,a)} -function z2c(a){hz.call(this,a)} -function mde(a){hz.call(this,a)} -function pc(a){qc.call(this,a,0)} -function Ji(){Ki.call(this,12,3)} -function Kz(){Kz=ccb;Jz=new Nz} -function jz(){jz=ccb;iz=new nb} -function KA(){KA=ccb;JA=new MA} -function OB(){OB=ccb;NB=new PB} -function jc(){throw vbb(new bgb)} -function zh(){throw vbb(new bgb)} -function Pi(){throw vbb(new bgb)} -function Pj(){throw vbb(new bgb)} -function Qj(){throw vbb(new bgb)} -function Ym(){throw vbb(new bgb)} -function Gb(){this.a=GD(Qb(She))} -function oy(a){Ql();this.a=Qb(a)} -function Bs(a,b){a.Td(b);b.Sd(a)} -function iw(a,b){a.a.ec().Mc(b)} -function CYb(a,b,c){a.c.lf(b,c)} -function scb(a){qcb.call(this,a)} -function Oeb(a){Wdb.call(this,a)} -function Hfb(){mcb.call(this,'')} -function Ifb(){mcb.call(this,'')} -function Ufb(){mcb.call(this,'')} -function Vfb(){mcb.call(this,'')} -function Xfb(a){qcb.call(this,a)} -function zob(a){lnb.call(this,a)} -function Yob(a){Inb.call(this,a)} -function Gob(a){zob.call(this,a)} -function Mk(){Fk.call(this,null)} -function al(){Fk.call(this,null)} -function Az(){Az=ccb;!!(Rz(),Qz)} -function wrb(){wrb=ccb;vrb=yrb()} -function Mtb(a){return a.a?a.b:0} -function Vtb(a){return a.a?a.b:0} -function Lcb(a,b){return a.a-b.a} -function Wcb(a,b){return a.a-b.a} -function Peb(a,b){return a.a-b.a} -function eCb(a,b){return PC(a,b)} -function GC(a,b){return rdb(a,b)} -function _B(b,a){return a in b.a} -function _Db(a,b){a.f=b;return a} -function ZDb(a,b){a.b=b;return a} -function $Db(a,b){a.c=b;return a} -function aEb(a,b){a.g=b;return a} -function HGb(a,b){a.a=b;return a} -function IGb(a,b){a.f=b;return a} -function JGb(a,b){a.k=b;return a} -function dLb(a,b){a.a=b;return a} -function eLb(a,b){a.e=b;return a} -function zVb(a,b){a.e=b;return a} -function AVb(a,b){a.f=b;return a} -function KOb(a,b){a.b=true;a.d=b} -function DHb(a,b){a.b=new g7c(b)} -function uvb(a,b,c){b.td(a.a[c])} -function zvb(a,b,c){b.we(a.a[c])} -function wJc(a,b){return a.b-b.b} -function kOc(a,b){return a.g-b.g} -function WQc(a,b){return a.s-b.s} -function Lic(a,b){return a?0:b-1} -function SFc(a,b){return a?0:b-1} -function RFc(a,b){return a?b-1:0} -function M2c(a,b){return b.Yf(a)} -function M3c(a,b){a.b=b;return a} -function L3c(a,b){a.a=b;return a} -function N3c(a,b){a.c=b;return a} -function O3c(a,b){a.d=b;return a} -function P3c(a,b){a.e=b;return a} -function Q3c(a,b){a.f=b;return a} -function b4c(a,b){a.a=b;return a} -function c4c(a,b){a.b=b;return a} -function d4c(a,b){a.c=b;return a} -function z5c(a,b){a.c=b;return a} -function y5c(a,b){a.b=b;return a} -function A5c(a,b){a.d=b;return a} -function B5c(a,b){a.e=b;return a} -function C5c(a,b){a.f=b;return a} -function D5c(a,b){a.g=b;return a} -function E5c(a,b){a.a=b;return a} -function F5c(a,b){a.i=b;return a} -function G5c(a,b){a.j=b;return a} -function Vdd(a,b){a.k=b;return a} -function Wdd(a,b){a.j=b;return a} -function ykc(a,b){gkc();F0b(b,a)} -function T$c(a,b,c){R$c(a.a,b,c)} -function RGc(a){cEc.call(this,a)} -function iHc(a){cEc.call(this,a)} -function t7c(a){Qsb.call(this,a)} -function aPb(a){_Ob.call(this,a)} -function Ixd(a){zud.call(this,a)} -function dCd(a){ZBd.call(this,a)} -function fCd(a){ZBd.call(this,a)} -function p_b(){q_b.call(this,'')} -function d7c(){this.a=0;this.b=0} -function aPc(){this.b=0;this.a=0} -function NJd(a,b){a.b=0;DId(a,b)} -function X1d(a,b){a.c=b;a.b=true} -function Oc(a,b){return a.c._b(b)} -function gdb(a){return a.e&&a.e()} -function Vd(a){return !a?null:a.d} -function sn(a,b){return Gv(a.b,b)} -function Fv(a){return !a?null:a.g} -function Kv(a){return !a?null:a.i} -function hdb(a){fdb(a);return a.o} -function Fhd(){Fhd=ccb;Ehd=ond()} -function Hhd(){Hhd=ccb;Ghd=Cod()} -function LFd(){LFd=ccb;KFd=qZd()} -function p8d(){p8d=ccb;o8d=Y9d()} -function r8d(){r8d=ccb;q8d=dae()} -function mvd(){mvd=ccb;lvd=n4c()} -function Srb(){throw vbb(new bgb)} -function enb(){throw vbb(new bgb)} -function fnb(){throw vbb(new bgb)} -function gnb(){throw vbb(new bgb)} -function jnb(){throw vbb(new bgb)} -function Cnb(){throw vbb(new bgb)} -function Uqb(a){this.a=new Mqb(a)} -function tgb(a){lgb();ngb(this,a)} -function Hxb(a){this.a=new Qwb(a)} -function _ub(a,b){while(a.ye(b));} -function Sub(a,b){while(a.sd(b));} -function Bfb(a,b){a.a+=b;return a} -function Cfb(a,b){a.a+=b;return a} -function Ffb(a,b){a.a+=b;return a} -function Lfb(a,b){a.a+=b;return a} -function WAb(a){Tzb(a);return a.a} -function Wsb(a){return a.b!=a.d.c} -function pD(a){return a.l|a.m<<22} -function aIc(a,b){return a.d[b.p]} -function h2c(a,b){return c2c(a,b)} -function cCb(a,b,c){a.splice(b,c)} -function WHb(a){a.c?VHb(a):XHb(a)} -function jVc(a){this.a=0;this.b=a} -function ZUc(){this.a=new L2c(K$)} -function tRc(){this.b=new L2c(h$)} -function Q$c(){this.b=new L2c(J_)} -function d_c(){this.b=new L2c(J_)} -function OCd(){throw vbb(new bgb)} -function PCd(){throw vbb(new bgb)} -function QCd(){throw vbb(new bgb)} -function RCd(){throw vbb(new bgb)} -function SCd(){throw vbb(new bgb)} -function TCd(){throw vbb(new bgb)} -function UCd(){throw vbb(new bgb)} -function VCd(){throw vbb(new bgb)} -function WCd(){throw vbb(new bgb)} -function XCd(){throw vbb(new bgb)} -function ahe(){throw vbb(new utb)} -function bhe(){throw vbb(new utb)} -function Rge(a){this.a=new ege(a)} -function ege(a){dge(this,a,Vee())} -function Fhe(a){return !a||Ehe(a)} -function dde(a){return $ce[a]!=-1} -function Iz(){xz!=0&&(xz=0);zz=-1} -function Ybb(){Wbb==null&&(Wbb=[])} -function ONd(a,b){Rxd(ZKd(a.a),b)} -function TNd(a,b){Rxd(ZKd(a.a),b)} -function Yf(a,b){zf.call(this,a,b)} -function $f(a,b){Yf.call(this,a,b)} -function Hf(a,b){this.b=a;this.c=b} -function rk(a,b){this.b=a;this.a=b} -function ek(a,b){this.a=a;this.b=b} -function gk(a,b){this.a=a;this.b=b} -function pk(a,b){this.a=a;this.b=b} -function yk(a,b){this.a=a;this.b=b} -function Ak(a,b){this.a=a;this.b=b} -function Fj(a,b){this.a=a;this.b=b} -function _j(a,b){this.a=a;this.b=b} -function dr(a,b){this.a=a;this.b=b} -function zr(a,b){this.b=a;this.a=b} -function So(a,b){this.b=a;this.a=b} -function qp(a,b){this.b=a;this.a=b} -function $q(a,b){this.b=a;this.a=b} -function $r(a,b){this.f=a;this.g=b} -function ne(a,b){this.e=a;this.d=b} -function Wo(a,b){this.g=a;this.i=b} -function bu(a,b){this.a=a;this.b=b} -function qu(a,b){this.a=a;this.f=b} -function qv(a,b){this.b=a;this.c=b} -function ox(a,b){this.a=a;this.b=b} -function Px(a,b){this.a=a;this.b=b} -function mC(a,b){this.a=a;this.b=b} -function Wc(a){Lb(a.dc());this.c=a} -function rf(a){this.b=BD(Qb(a),83)} -function Zv(a){this.a=BD(Qb(a),83)} -function dv(a){this.a=BD(Qb(a),15)} -function $u(a){this.a=BD(Qb(a),15)} -function Br(a){this.b=BD(Qb(a),47)} -function eB(){this.q=new $wnd.Date} -function Zfb(){Zfb=ccb;Yfb=new jcb} -function Emb(){Emb=ccb;Dmb=new Fmb} -function Vhb(a){return a.f.c+a.g.c} -function hnb(a,b){return a.b.Hc(b)} -function inb(a,b){return a.b.Ic(b)} -function knb(a,b){return a.b.Qc(b)} -function Dob(a,b){return a.b.Hc(b)} -function dob(a,b){return a.c.uc(b)} -function Rqb(a,b){return a.a._b(b)} -function fob(a,b){return pb(a.c,b)} -function jt(a,b){return Mhb(a.b,b)} -function Lp(a,b){return a>b&&b0} -function Gbb(a,b){return ybb(a,b)<0} -function Crb(a,b){return a.a.get(b)} -function icb(b,a){return a.split(b)} -function Vrb(a,b){return Mhb(a.e,b)} -function Nvb(a){return uCb(a),false} -function Rub(a){Kub.call(this,a,21)} -function wcb(a,b){Zy.call(this,a,b)} -function mxb(a,b){$r.call(this,a,b)} -function Gyb(a,b){$r.call(this,a,b)} -function zx(a){yx();Wn.call(this,a)} -function zlb(a,b){Dlb(a,a.length,b)} -function Alb(a,b){Flb(a,a.length,b)} -function ABb(a,b,c){b.ud(a.a.Ge(c))} -function uBb(a,b,c){b.we(a.a.Fe(c))} -function GBb(a,b,c){b.td(a.a.Kb(c))} -function Zq(a,b,c){a.Mb(c)&&b.td(c)} -function aCb(a,b,c){a.splice(b,0,c)} -function lDb(a,b){return uqb(a.e,b)} -function pjb(a,b){this.d=a;this.e=b} -function kqb(a,b){this.b=a;this.a=b} -function VBb(a,b){this.b=a;this.a=b} -function BEb(a,b){this.b=a;this.a=b} -function sBb(a,b){this.a=a;this.b=b} -function yBb(a,b){this.a=a;this.b=b} -function EBb(a,b){this.a=a;this.b=b} -function KBb(a,b){this.a=a;this.b=b} -function aDb(a,b){this.a=a;this.b=b} -function tMb(a,b){this.b=a;this.a=b} -function oOb(a,b){this.b=a;this.a=b} -function SOb(a,b){$r.call(this,a,b)} -function SMb(a,b){$r.call(this,a,b)} -function NEb(a,b){$r.call(this,a,b)} -function VEb(a,b){$r.call(this,a,b)} -function sFb(a,b){$r.call(this,a,b)} -function hHb(a,b){$r.call(this,a,b)} -function OHb(a,b){$r.call(this,a,b)} -function FIb(a,b){$r.call(this,a,b)} -function wLb(a,b){$r.call(this,a,b)} -function YRb(a,b){$r.call(this,a,b)} -function zTb(a,b){$r.call(this,a,b)} -function rUb(a,b){$r.call(this,a,b)} -function oWb(a,b){$r.call(this,a,b)} -function SXb(a,b){$r.call(this,a,b)} -function k0b(a,b){$r.call(this,a,b)} -function z5b(a,b){$r.call(this,a,b)} -function T8b(a,b){$r.call(this,a,b)} -function ibc(a,b){$r.call(this,a,b)} -function Cec(a,b){this.a=a;this.b=b} -function rfc(a,b){this.a=a;this.b=b} -function Rfc(a,b){this.a=a;this.b=b} -function Tfc(a,b){this.a=a;this.b=b} -function bgc(a,b){this.a=a;this.b=b} -function ngc(a,b){this.a=a;this.b=b} -function Qhc(a,b){this.a=a;this.b=b} -function $hc(a,b){this.a=a;this.b=b} -function Z0b(a,b){this.a=a;this.b=b} -function ZVb(a,b){this.b=a;this.a=b} -function Dfc(a,b){this.b=a;this.a=b} -function dgc(a,b){this.b=a;this.a=b} -function Bmc(a,b){this.b=a;this.a=b} -function cWb(a,b){this.c=a;this.d=b} -function I$b(a,b){this.e=a;this.d=b} -function Unc(a,b){this.a=a;this.b=b} -function Oic(a,b){this.b=b;this.c=a} -function Bjc(a,b){$r.call(this,a,b)} -function Yjc(a,b){$r.call(this,a,b)} -function Gkc(a,b){$r.call(this,a,b)} -function Bpc(a,b){$r.call(this,a,b)} -function Jpc(a,b){$r.call(this,a,b)} -function Tpc(a,b){$r.call(this,a,b)} -function cqc(a,b){$r.call(this,a,b)} -function oqc(a,b){$r.call(this,a,b)} -function yqc(a,b){$r.call(this,a,b)} -function Hqc(a,b){$r.call(this,a,b)} -function Uqc(a,b){$r.call(this,a,b)} -function arc(a,b){$r.call(this,a,b)} -function mrc(a,b){$r.call(this,a,b)} -function zrc(a,b){$r.call(this,a,b)} -function Prc(a,b){$r.call(this,a,b)} -function Yrc(a,b){$r.call(this,a,b)} -function fsc(a,b){$r.call(this,a,b)} -function nsc(a,b){$r.call(this,a,b)} -function nzc(a,b){$r.call(this,a,b)} -function zzc(a,b){$r.call(this,a,b)} -function Kzc(a,b){$r.call(this,a,b)} -function Xzc(a,b){$r.call(this,a,b)} -function Dtc(a,b){$r.call(this,a,b)} -function lAc(a,b){$r.call(this,a,b)} -function uAc(a,b){$r.call(this,a,b)} -function CAc(a,b){$r.call(this,a,b)} -function LAc(a,b){$r.call(this,a,b)} -function UAc(a,b){$r.call(this,a,b)} -function aBc(a,b){$r.call(this,a,b)} -function uBc(a,b){$r.call(this,a,b)} -function DBc(a,b){$r.call(this,a,b)} -function MBc(a,b){$r.call(this,a,b)} -function sGc(a,b){$r.call(this,a,b)} -function VIc(a,b){$r.call(this,a,b)} -function EIc(a,b){this.b=a;this.a=b} -function qKc(a,b){this.a=a;this.b=b} -function GKc(a,b){this.a=a;this.b=b} -function lLc(a,b){this.a=a;this.b=b} -function mMc(a,b){this.a=a;this.b=b} -function fMc(a,b){$r.call(this,a,b)} -function ZLc(a,b){$r.call(this,a,b)} -function ZMc(a,b){this.b=a;this.d=b} -function IOc(a,b){$r.call(this,a,b)} -function GQc(a,b){$r.call(this,a,b)} -function PQc(a,b){this.a=a;this.b=b} -function RQc(a,b){this.a=a;this.b=b} -function ARc(a,b){$r.call(this,a,b)} -function rSc(a,b){$r.call(this,a,b)} -function TTc(a,b){$r.call(this,a,b)} -function _Tc(a,b){$r.call(this,a,b)} -function RUc(a,b){$r.call(this,a,b)} -function uVc(a,b){$r.call(this,a,b)} -function hWc(a,b){$r.call(this,a,b)} -function rWc(a,b){$r.call(this,a,b)} -function kXc(a,b){$r.call(this,a,b)} -function uXc(a,b){$r.call(this,a,b)} -function AYc(a,b){$r.call(this,a,b)} -function l$c(a,b){$r.call(this,a,b)} -function Z$c(a,b){$r.call(this,a,b)} -function D_c(a,b){$r.call(this,a,b)} -function O_c(a,b){$r.call(this,a,b)} -function c1c(a,b){$r.call(this,a,b)} -function cVb(a,b){return uqb(a.c,b)} -function nnc(a,b){return uqb(b.b,a)} -function x1c(a,b){return -a.b.Je(b)} -function D3c(a,b){return uqb(a.g,b)} -function O5c(a,b){$r.call(this,a,b)} -function a6c(a,b){$r.call(this,a,b)} -function m2c(a,b){this.a=a;this.b=b} -function W2c(a,b){this.a=a;this.b=b} -function f7c(a,b){this.a=a;this.b=b} -function G7c(a,b){$r.call(this,a,b)} -function j8c(a,b){$r.call(this,a,b)} -function iad(a,b){$r.call(this,a,b)} -function rad(a,b){$r.call(this,a,b)} -function Bad(a,b){$r.call(this,a,b)} -function Nad(a,b){$r.call(this,a,b)} -function ibd(a,b){$r.call(this,a,b)} -function tbd(a,b){$r.call(this,a,b)} -function Ibd(a,b){$r.call(this,a,b)} -function Ubd(a,b){$r.call(this,a,b)} -function gcd(a,b){$r.call(this,a,b)} -function scd(a,b){$r.call(this,a,b)} -function Ycd(a,b){$r.call(this,a,b)} -function udd(a,b){$r.call(this,a,b)} -function Jdd(a,b){$r.call(this,a,b)} -function Eed(a,b){$r.call(this,a,b)} -function bfd(a,b){this.a=a;this.b=b} -function dfd(a,b){this.a=a;this.b=b} -function ffd(a,b){this.a=a;this.b=b} -function Kfd(a,b){this.a=a;this.b=b} -function Mfd(a,b){this.a=a;this.b=b} -function Ofd(a,b){this.a=a;this.b=b} -function vgd(a,b){this.a=a;this.b=b} -function qgd(a,b){$r.call(this,a,b)} -function jrd(a,b){this.a=a;this.b=b} -function krd(a,b){this.a=a;this.b=b} -function mrd(a,b){this.a=a;this.b=b} -function nrd(a,b){this.a=a;this.b=b} -function qrd(a,b){this.a=a;this.b=b} -function rrd(a,b){this.a=a;this.b=b} -function srd(a,b){this.b=a;this.a=b} -function trd(a,b){this.b=a;this.a=b} -function Drd(a,b){this.b=a;this.a=b} -function Frd(a,b){this.b=a;this.a=b} -function Hrd(a,b){this.a=a;this.b=b} -function Jrd(a,b){this.a=a;this.b=b} -function Ord(a,b){Xqd(a.a,BD(b,56))} -function BIc(a,b){gIc(a.a,BD(b,11))} -function fIc(a,b){FHc();return b!=a} -function Arb(){wrb();return new vrb} -function CMc(){wMc();this.b=new Tqb} -function NNc(){FNc();this.a=new Tqb} -function eCc(){ZBc();aCc.call(this)} -function Dsd(a,b){$r.call(this,a,b)} -function Urd(a,b){this.a=a;this.b=b} -function Wrd(a,b){this.a=a;this.b=b} -function kGd(a,b){this.a=a;this.b=b} -function nGd(a,b){this.a=a;this.b=b} -function bUd(a,b){this.a=a;this.b=b} -function zVd(a,b){this.a=a;this.b=b} -function C1d(a,b){this.d=a;this.b=b} -function MLd(a,b){this.d=a;this.e=b} -function Wud(a,b){this.f=a;this.c=b} -function f7d(a,b){this.b=a;this.c=b} -function _zd(a,b){this.i=a;this.g=b} -function Y1d(a,b){this.e=a;this.a=b} -function c8d(a,b){this.a=a;this.b=b} -function $Id(a,b){a.i=null;_Id(a,b)} -function ivd(a,b){!!a&&Rhb(cvd,a,b)} -function hCd(a,b){return qAd(a.a,b)} -function e7d(a){return R2d(a.c,a.b)} -function Wd(a){return !a?null:a.dd()} -function PD(a){return a==null?null:a} -function KD(a){return typeof a===Khe} -function LD(a){return typeof a===Lhe} -function ND(a){return typeof a===Mhe} -function Em(a,b){return a.Hd().Xb(b)} -function Kq(a,b){return hr(a.Kc(),b)} -function Bbb(a,b){return ybb(a,b)==0} -function Ebb(a,b){return ybb(a,b)>=0} -function Kbb(a,b){return ybb(a,b)!=0} -function Jdb(a){return ''+(uCb(a),a)} -function pfb(a,b){return a.substr(b)} -function cg(a){ag(a);return a.d.gc()} -function oVb(a){pVb(a,a.c);return a} -function RD(a){CCb(a==null);return a} -function Dfb(a,b){a.a+=''+b;return a} -function Efb(a,b){a.a+=''+b;return a} -function Nfb(a,b){a.a+=''+b;return a} -function Pfb(a,b){a.a+=''+b;return a} -function Qfb(a,b){a.a+=''+b;return a} -function Mfb(a,b){return a.a+=''+b,a} -function Esb(a,b){Gsb(a,b,a.a,a.a.a)} -function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} -function Mqd(a,b,c){Rpd(b,kqd(a,c))} -function Nqd(a,b,c){Rpd(b,kqd(a,c))} -function Dhe(a,b){Hhe(new Fyd(a),b)} -function cB(a,b){a.q.setTime(Sbb(b))} -function fvb(a,b){bvb.call(this,a,b)} -function jvb(a,b){bvb.call(this,a,b)} -function nvb(a,b){bvb.call(this,a,b)} -function Nqb(a){Uhb(this);Ld(this,a)} -function wmb(a){tCb(a,0);return null} -function X6c(a){a.a=0;a.b=0;return a} -function f3c(a,b){a.a=b.g+1;return a} -function PJc(a,b){return a.j[b.p]==2} -function _Pb(a){return VPb(BD(a,79))} -function yJb(){yJb=ccb;xJb=as(wJb())} -function Y8b(){Y8b=ccb;X8b=as(W8b())} -function mt(){this.b=new Mqb(Cv(12))} -function Otb(){this.b=0;this.a=false} -function Wtb(){this.b=0;this.a=false} -function sl(a){this.a=a;ol.call(this)} -function vl(a){this.a=a;ol.call(this)} -function Nsd(a,b){Msd.call(this,a,b)} -function $zd(a,b){Cyd.call(this,a,b)} -function nNd(a,b){_zd.call(this,a,b)} -function s4d(a,b){p4d.call(this,a,b)} -function w4d(a,b){qRd.call(this,a,b)} -function rEd(a,b){pEd();Rhb(oEd,a,b)} -function lcb(a,b){return qfb(a.a,0,b)} -function ww(a,b){return a.a.a.a.cc(b)} -function mb(a,b){return PD(a)===PD(b)} -function Mdb(a,b){return Kdb(a.a,b.a)} -function $db(a,b){return beb(a.a,b.a)} -function seb(a,b){return ueb(a.a,b.a)} -function hfb(a,b){return a.indexOf(b)} -function Ny(a,b){return a==b?0:a?1:-1} -function kB(a){return a<10?'0'+a:''+a} -function Mq(a){return Qb(a),new sl(a)} -function SC(a){return TC(a.l,a.m,a.h)} -function Hdb(a){return QD((uCb(a),a))} -function Idb(a){return QD((uCb(a),a))} -function NIb(a,b){return beb(a.g,b.g)} -function Fbb(a){return typeof a===Lhe} -function mWb(a){return a==hWb||a==kWb} -function nWb(a){return a==hWb||a==iWb} -function G1b(a){return Jkb(a.b.b,a,0)} -function lrb(a){this.a=Arb();this.b=a} -function Frb(a){this.a=Arb();this.b=a} -function swb(a,b){Ekb(a.a,b);return b} -function Z1c(a,b){Ekb(a.c,b);return a} -function E2c(a,b){d3c(a.a,b);return a} -function _gc(a,b){Hgc();return b.a+=a} -function bhc(a,b){Hgc();return b.a+=a} -function ahc(a,b){Hgc();return b.c+=a} -function Nlb(a,b){Klb(a,0,a.length,b)} -function zsb(){Wqb.call(this,new $rb)} -function I_b(){B_b.call(this,0,0,0,0)} -function I6c(){J6c.call(this,0,0,0,0)} -function g7c(a){this.a=a.a;this.b=a.b} -function fad(a){return a==aad||a==bad} -function gad(a){return a==dad||a==_9c} -function Jzc(a){return a==Fzc||a==Ezc} -function fcd(a){return a!=bcd&&a!=ccd} -function oid(a){return a.Lg()&&a.Mg()} -function Gfd(a){return Kkd(BD(a,118))} -function k3c(a){return d3c(new j3c,a)} -function y2d(a,b){return new p4d(b,a)} -function z2d(a,b){return new p4d(b,a)} -function ukd(a,b,c){vkd(a,b);wkd(a,c)} -function _kd(a,b,c){cld(a,b);ald(a,c)} -function bld(a,b,c){dld(a,b);eld(a,c)} -function gmd(a,b,c){hmd(a,b);imd(a,c)} -function nmd(a,b,c){omd(a,b);pmd(a,c)} -function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} -function _ud(a){Wud.call(this,a,true)} -function Xg(a,b,c){Vg.call(this,a,b,c)} -function Ygb(a){Hgb();Zgb.call(this,a)} -function rxb(){mxb.call(this,'Head',1)} -function wxb(){mxb.call(this,'Tail',3)} -function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} -function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} -function MGb(a){Hkb(a.xf(),new QGb(a))} -function xtb(a){return a!=null?tb(a):0} -function b2b(a,b){return ntd(b,mpd(a))} -function c2b(a,b){return ntd(b,mpd(a))} -function dAb(a,b){return a[a.length]=b} -function gAb(a,b){return a[a.length]=b} -function Vq(a){return lr(a.b.Kc(),a.a)} -function dqd(a,b){return _o(qo(a.d),b)} -function eqd(a,b){return _o(qo(a.g),b)} -function fqd(a,b){return _o(qo(a.j),b)} -function Osd(a,b){Msd.call(this,a.b,b)} -function q0b(a){B_b.call(this,a,a,a,a)} -function HOb(a){a.b&&LOb(a);return a.a} -function IOb(a){a.b&&LOb(a);return a.c} -function uyb(a,b){if(lyb){return}a.b=b} -function lzd(a,b,c){NC(a,b,c);return c} -function mBc(a,b,c){NC(a.c[b.g],b.g,c)} -function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} -function wfd(a,b,c){bld(c,c.i+a,c.j+b)} -function UOd(a,b){wtd(VKd(a.a),XOd(b))} -function bTd(a,b){wtd(QSd(a.a),eTd(b))} -function Lge(a){wfe();xfe.call(this,a)} -function CAd(a){return a==null?0:tb(a)} -function fNc(){fNc=ccb;eNc=new Rpb(v1)} -function h0d(){h0d=ccb;new i0d;new Rkb} -function i0d(){new Lqb;new Lqb;new Lqb} -function GA(){GA=ccb;fA();FA=new Lqb} -function Iy(){Iy=ccb;$wnd.Math.log(2)} -function UVd(){UVd=ccb;TVd=(AFd(),zFd)} -function _ge(){throw vbb(new cgb(Cxe))} -function ohe(){throw vbb(new cgb(Cxe))} -function che(){throw vbb(new cgb(Dxe))} -function rhe(){throw vbb(new cgb(Dxe))} -function Mg(a){this.a=a;Gg.call(this,a)} -function up(a){this.a=a;rf.call(this,a)} -function Bp(a){this.a=a;rf.call(this,a)} -function Okb(a,b){Mlb(a.c,a.c.length,b)} -function llb(a){return a.ab?1:0} -function Deb(a,b){return ybb(a,b)>0?a:b} -function TC(a,b,c){return {l:a,m:b,h:c}} -function Ctb(a,b){a.a!=null&&BIc(b,a.a)} -function Csb(a){a.a=new jtb;a.c=new jtb} -function hDb(a){this.b=a;this.a=new Rkb} -function dOb(a){this.b=new pOb;this.a=a} -function q_b(a){n_b.call(this);this.a=a} -function txb(){mxb.call(this,'Range',2)} -function bUb(){ZTb();this.a=new L2c(zP)} -function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} -function fKc(a,b){FJc();return b.n.b+=a} -function Tgc(a,b,c){return Rhb(a.g,c,b)} -function LJc(a,b,c){return Rhb(a.k,c,b)} -function r1c(a,b){return Rhb(a.a,b.a,b)} -function jBc(a,b,c){return hBc(b,c,a.c)} -function E6c(a){return new f7c(a.c,a.d)} -function F6c(a){return new f7c(a.c,a.d)} -function R6c(a){return new f7c(a.a,a.b)} -function CQd(a,b){return hA(a.a,b,null)} -function fec(a){QZb(a,null);RZb(a,null)} -function AOc(a){BOc(a,null);COc(a,null)} -function u4d(){qRd.call(this,null,null)} -function y4d(){RRd.call(this,null,null)} -function a7d(a){this.a=a;Lqb.call(this)} -function Pp(a){this.b=(mmb(),new iob(a))} -function Py(a){a.j=KC(VI,nie,310,0,0,1)} -function oAd(a,b,c){a.c.Vc(b,BD(c,133))} -function GAd(a,b,c){a.c.ji(b,BD(c,133))} -function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} -function b7d(a,b){return t2d(a.c,a.b,b)} -function Bv(a,b){return new Qv(a.Kc(),b)} -function Lq(a,b){return rr(a.Kc(),b)!=-1} -function Sqb(a,b){return a.a.Bc(b)!=null} -function pr(a){return a.Ob()?a.Pb():null} -function yfb(a){return zfb(a,0,a.length)} -function JD(a,b){return a!=null&&AD(a,b)} -function $A(a,b){a.q.setHours(b);YA(a,b)} -function Yrb(a,b){if(a.c){jsb(b);isb(b)}} -function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} -function RJc(a,b,c){SJc(a,b,c);return c} -function Eub(a,b,c){a.a=b^1502;a.b=c^kke} -function xHb(a,b,c){return a.a[b.g][c.g]} -function REc(a,b){return a.a[b.c.p][b.p]} -function aEc(a,b){return a.e[b.c.p][b.p]} -function tEc(a,b){return a.c[b.c.p][b.p]} -function OJc(a,b){return a.j[b.p]=aKc(b)} -function k5c(a,b){return cfb(a.f,b.tg())} -function Isd(a,b){return cfb(a.b,b.tg())} -function Sfd(a,b){return a.a0?b*b/a:b*b*100} -function CRb(a,b){return a>0?b/(a*a):b*100} -function G2c(a,b,c){return Ekb(b,I2c(a,c))} -function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} -function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function O6c(a,b,c){a.a+=b;a.b+=c;return a} -function Z6c(a,b,c){a.a*=b;a.b*=c;return a} -function b7c(a,b,c){a.a-=b;a.b-=c;return a} -function a7c(a,b){a.a=b.a;a.b=b.b;return a} -function V6c(a){a.a=-a.a;a.b=-a.b;return a} -function Dic(a){this.c=a;this.a=1;this.b=1} -function xed(a){this.c=a;dld(a,0);eld(a,0)} -function u7c(a){Psb.call(this);n7c(this,a)} -function AXb(a){xXb();yXb(this);this.mf(a)} -function GRd(a,b){nRd();qRd.call(this,a,b)} -function dSd(a,b){LRd();RRd.call(this,a,b)} -function hSd(a,b){LRd();RRd.call(this,a,b)} -function fSd(a,b){LRd();dSd.call(this,a,b)} -function sId(a,b,c){dId.call(this,a,b,c,2)} -function zXd(a,b){UVd();nXd.call(this,a,b)} -function BXd(a,b){UVd();zXd.call(this,a,b)} -function DXd(a,b){UVd();zXd.call(this,a,b)} -function FXd(a,b){UVd();DXd.call(this,a,b)} -function PXd(a,b){UVd();nXd.call(this,a,b)} -function RXd(a,b){UVd();PXd.call(this,a,b)} -function XXd(a,b){UVd();nXd.call(this,a,b)} -function pAd(a,b){return a.c.Fc(BD(b,133))} -function w1d(a,b,c){return V1d(p1d(a,b),c)} -function N2d(a,b,c){return b.Qk(a.e,a.c,c)} -function P2d(a,b,c){return b.Rk(a.e,a.c,c)} -function a3d(a,b){return xid(a.e,BD(b,49))} -function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} -function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} -function ypb(a,b){b.$modCount=a.$modCount} -function MUc(){MUc=ccb;LUc=new Lsd('root')} -function LCd(){LCd=ccb;KCd=new lDd;new NDd} -function KVc(){this.a=new Hp;this.b=new Hp} -function FUd(){hJd.call(this);this.Bb|=Tje} -function t_c(){$r.call(this,'GROW_TREE',0)} -function C9d(a){return a==null?null:cde(a)} -function G9d(a){return a==null?null:jde(a)} -function J9d(a){return a==null?null:fcb(a)} -function K9d(a){return a==null?null:fcb(a)} -function fdb(a){if(a.o!=null){return}vdb(a)} -function DD(a){CCb(a==null||KD(a));return a} -function ED(a){CCb(a==null||LD(a));return a} -function GD(a){CCb(a==null||ND(a));return a} -function gB(a){this.q=new $wnd.Date(Sbb(a))} -function Mf(a,b){this.c=a;ne.call(this,a,b)} -function Sf(a,b){this.a=a;Mf.call(this,a,b)} -function Hg(a,b){this.d=a;Dg(this);this.b=b} -function bAb(a,b){Vzb.call(this,a);this.a=b} -function vAb(a,b){Vzb.call(this,a);this.a=b} -function sNb(a){pNb.call(this,0,0);this.f=a} -function Vg(a,b,c){dg.call(this,a,b,c,null)} -function Yg(a,b,c){dg.call(this,a,b,c,null)} -function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} -function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} -function g4c(a,b){return BD(Wrb(a.b,b),149)} -function i4c(a,b){return BD(Wrb(a.c,b),229)} -function wic(a){return BD(Ikb(a.a,a.b),287)} -function B6c(a){return new f7c(a.c,a.d+a.a)} -function eLc(a){return FJc(),Jzc(BD(a,197))} -function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} -function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} -function qyb(a,b){if(lyb){return}Ekb(a.a,b)} -function F2b(a,b){x2b();return f_b(b.d.i,a)} -function _9b(a,b){I9b();return new gac(b,a)} -function _Hb(a,b){ytb(b,lle);a.f=b;return a} -function Kld(a,b,c){c=_hd(a,b,3,c);return c} -function bmd(a,b,c){c=_hd(a,b,6,c);return c} -function kpd(a,b,c){c=_hd(a,b,9,c);return c} -function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} -function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} -function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} -function c7d(a,b,c){return C2d(a.c,a.b,b,c)} -function DAd(a,b){return (b&Ohe)%a.d.length} -function Msd(a,b){Lsd.call(this,a);this.a=b} -function uVd(a,b){lVd.call(this,a);this.a=b} -function sYd(a,b){lVd.call(this,a);this.a=b} -function zyd(a,b){this.c=a;zud.call(this,b)} -function YOd(a,b){this.a=a;qOd.call(this,b)} -function fTd(a,b){this.a=a;qOd.call(this,b)} -function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} -function cq(a){this.a=(Xj(a,Jie),new Skb(a))} -function LA(a){!a.a&&(a.a=new VA);return a.a} -function XMb(a){if(a>8){return 0}return a+1} -function Ecb(a,b){Bcb();return a==b?0:a?1:-1} -function Opb(a,b,c){return Npb(a,BD(b,22),c)} -function Bz(a,b,c){return a.apply(b,c);var d} -function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} -function ijb(a,b){var c;c=a.e;a.e=b;return c} -function trb(a,b){var c;c=a[hke];c.call(a,b)} -function urb(a,b){var c;c=a[hke];c.call(a,b)} -function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} -function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} -function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} -function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} -function Bxb(a,b){return Vd(Cwb(a.a,b,true))} -function Cxb(a,b){return Vd(Dwb(a.a,b,true))} -function _Bb(a,b){return eCb(new Array(b),a)} -function HD(a){return String.fromCharCode(a)} -function mz(a){return a==null?null:a.message} -function gRb(){this.a=new Rkb;this.b=new Rkb} -function iTb(){this.a=new MQb;this.b=new tTb} -function tDb(){this.b=new d7c;this.c=new Rkb} -function _Qb(){this.d=new d7c;this.e=new d7c} -function n_b(){this.n=new d7c;this.o=new d7c} -function $Gb(){this.n=new p0b;this.i=new I6c} -function sec(){this.a=new Umc;this.b=new mnc} -function NIc(){this.a=new Rkb;this.d=new Rkb} -function LDc(){this.b=new Tqb;this.a=new Tqb} -function hSc(){this.b=new Lqb;this.a=new Lqb} -function HRc(){this.b=new tRc;this.a=new hRc} -function aHb(){$Gb.call(this);this.a=new d7c} -function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} -function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} -function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} -function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} -function Tod(a,b,c){c=_hd(a,b,11,c);return c} -function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} -function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} -function u7b(a,b){return a.n.a=(uCb(b),b)+10} -function v7b(a,b){return a.n.a=(uCb(b),b)+10} -function dLd(a,b){return b==a||pud(UKd(b),a)} -function PYd(a,b){return Rhb(a.a,b,'')==null} -function E2b(a,b){x2b();return !f_b(b.d.i,a)} -function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} -function h1d(a,b){var c;c=b.Hh(a.a);return c} -function Cyd(a,b){qcb.call(this,gve+a+mue+b)} -function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} -function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} -function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} -function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} -function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} -function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} -function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} -function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} -function Vp(a,b,c){this.a=a;qc.call(this,b,c)} -function tk(a,b,c){this.c=b;this.b=c;this.a=a} -function ik(a,b,c){return a.d=BD(b.Kb(c),164)} -function j6d(a,b){return a.Aj().Nh().Kh(a,b)} -function h6d(a,b){return a.Aj().Nh().Ih(a,b)} -function Fdb(a,b){return uCb(a),PD(a)===PD(b)} -function dfb(a,b){return uCb(a),PD(a)===PD(b)} -function Dxb(a,b){return Vd(Cwb(a.a,b,false))} -function Exb(a,b){return Vd(Dwb(a.a,b,false))} -function vBb(a,b){return a.b.sd(new yBb(a,b))} -function BBb(a,b){return a.b.sd(new EBb(a,b))} -function HBb(a,b){return a.b.sd(new KBb(a,b))} -function lfb(a,b,c){return a.lastIndexOf(b,c)} -function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} -function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} -function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} -function emc(a,b){return beb(a.a.d.p,b.a.d.p)} -function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} -function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} -function Vxd(a){return a<100?null:new Ixd(a)} -function ecd(a){return a==Zbd||a==_bd||a==$bd} -function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} -function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} -function ujb(a,b){var c;c=b;return !!Awb(a,c)} -function czd(a,b){this.c=a;Pyd.call(this,a,b)} -function fBb(a){this.c=a;nvb.call(this,rie,0)} -function Avb(a,b){Bvb.call(this,a,a.length,b)} -function aId(a,b,c){return BD(a.c,69).lk(b,c)} -function bId(a,b,c){return BD(a.c,69).mk(b,c)} -function O2d(a,b,c){return N2d(a,BD(b,332),c)} -function Q2d(a,b,c){return P2d(a,BD(b,332),c)} -function i3d(a,b,c){return h3d(a,BD(b,332),c)} -function k3d(a,b,c){return j3d(a,BD(b,332),c)} -function tn(a,b){return b==null?null:Hv(a.b,b)} -function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} -function Ldb(a){return !isNaN(a)&&!isFinite(a)} -function Wn(a){Ql();this.a=(mmb(),new zob(a))} -function dIc(a){FHc();this.d=a;this.a=new jkb} -function xqb(a,b,c){this.a=a;this.b=b;this.c=c} -function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} -function $sb(a,b,c){this.d=a;this.b=c;this.a=b} -function Qsb(a){Csb(this);Osb(this);ye(this,a)} -function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} -function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} -function iyb(a){this.a=a;Zfb();Cbb(Date.now())} -function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} -function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} -function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} -function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} -function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} -function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} -function pxb(a){lxb();return es((zxb(),yxb),a)} -function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} -function OEb(a){MEb();return es((REb(),QEb),a)} -function WEb(a){UEb();return es((ZEb(),YEb),a)} -function tFb(a){rFb();return es((wFb(),vFb),a)} -function iHb(a){gHb();return es((lHb(),kHb),a)} -function PHb(a){NHb();return es((SHb(),RHb),a)} -function GIb(a){EIb();return es((JIb(),IIb),a)} -function vJb(a){qJb();return es((yJb(),xJb),a)} -function xLb(a){vLb();return es((ALb(),zLb),a)} -function TMb(a){RMb();return es((WMb(),VMb),a)} -function TOb(a){ROb();return es((WOb(),VOb),a)} -function ePb(a){cPb();return es((hPb(),gPb),a)} -function ZRb(a){XRb();return es((aSb(),_Rb),a)} -function ATb(a){yTb();return es((DTb(),CTb),a)} -function sUb(a){qUb();return es((vUb(),uUb),a)} -function rWb(a){lWb();return es((uWb(),tWb),a)} -function TXb(a){RXb();return es((WXb(),VXb),a)} -function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} -function l0b(a){j0b();return es((o0b(),n0b),a)} -function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} -function mKb(a,b,c){this.b=a;this.c=b;this.a=c} -function BZb(a,b,c){this.b=a;this.a=b;this.c=c} -function TNb(a,b,c){this.a=a;this.b=b;this.c=c} -function uOb(a,b,c){this.a=a;this.b=b;this.c=c} -function S3b(a,b,c){this.a=a;this.b=b;this.c=c} -function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} -function n9b(a,b,c){this.b=a;this.a=b;this.c=c} -function x$b(a,b,c){this.e=b;this.b=a;this.d=c} -function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} -function LGb(a){var b;b=new KGb;b.e=a;return b} -function iLb(a){var b;b=new fLb;b.b=a;return b} -function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} -function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} -function jbc(a){gbc();return es((mbc(),lbc),a)} -function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} -function Clc(a){Alc();return es((Flc(),Elc),a)} -function Cpc(a){Apc();return es((Fpc(),Epc),a)} -function Kpc(a){Ipc();return es((Npc(),Mpc),a)} -function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} -function $jc(a){Xjc();return es((bkc(),akc),a)} -function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} -function dqc(a){bqc();return es((gqc(),fqc),a)} -function rqc(a){mqc();return es((uqc(),tqc),a)} -function zqc(a){xqc();return es((Cqc(),Bqc),a)} -function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} -function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} -function brc(a){_qc();return es((erc(),drc),a)} -function nrc(a){lrc();return es((qrc(),prc),a)} -function Arc(a){yrc();return es((Drc(),Crc),a)} -function Qrc(a){Orc();return es((Trc(),Src),a)} -function Zrc(a){Xrc();return es((asc(),_rc),a)} -function gsc(a){esc();return es((jsc(),isc),a)} -function osc(a){msc();return es((rsc(),qsc),a)} -function Etc(a){Ctc();return es((Htc(),Gtc),a)} -function qzc(a){lzc();return es((tzc(),szc),a)} -function Azc(a){xzc();return es((Dzc(),Czc),a)} -function Mzc(a){Izc();return es((Pzc(),Ozc),a)} -function MAc(a){KAc();return es((PAc(),OAc),a)} -function mAc(a){kAc();return es((pAc(),oAc),a)} -function vAc(a){tAc();return es((yAc(),xAc),a)} -function DAc(a){BAc();return es((GAc(),FAc),a)} -function VAc(a){TAc();return es((YAc(),XAc),a)} -function $zc(a){Vzc();return es((bAc(),aAc),a)} -function bBc(a){_Ac();return es((eBc(),dBc),a)} -function vBc(a){tBc();return es((yBc(),xBc),a)} -function EBc(a){CBc();return es((HBc(),GBc),a)} -function NBc(a){LBc();return es((QBc(),PBc),a)} -function tGc(a){rGc();return es((wGc(),vGc),a)} -function WIc(a){UIc();return es((ZIc(),YIc),a)} -function $Lc(a){YLc();return es((bMc(),aMc),a)} -function gMc(a){eMc();return es((jMc(),iMc),a)} -function JOc(a){HOc();return es((MOc(),LOc),a)} -function HQc(a){FQc();return es((KQc(),JQc),a)} -function DRc(a){yRc();return es((GRc(),FRc),a)} -function tSc(a){qSc();return es((wSc(),vSc),a)} -function UTc(a){STc();return es((XTc(),WTc),a)} -function UUc(a){PUc();return es((XUc(),WUc),a)} -function aUc(a){$Tc();return es((dUc(),cUc),a)} -function wVc(a){tVc();return es((zVc(),yVc),a)} -function iWc(a){fWc();return es((lWc(),kWc),a)} -function sWc(a){pWc();return es((vWc(),uWc),a)} -function lXc(a){iXc();return es((oXc(),nXc),a)} -function vXc(a){sXc();return es((yXc(),xXc),a)} -function BYc(a){zYc();return es((EYc(),DYc),a)} -function m$c(a){k$c();return es((p$c(),o$c),a)} -function $$c(a){Y$c();return es((b_c(),a_c),a)} -function n_c(a){i_c();return es((q_c(),p_c),a)} -function w_c(a){s_c();return es((z_c(),y_c),a)} -function E_c(a){C_c();return es((H_c(),G_c),a)} -function P_c(a){N_c();return es((S_c(),R_c),a)} -function W0c(a){R0c();return es((Z0c(),Y0c),a)} -function f1c(a){a1c();return es((i1c(),h1c),a)} -function P5c(a){N5c();return es((S5c(),R5c),a)} -function b6c(a){_5c();return es((e6c(),d6c),a)} -function H7c(a){F7c();return es((K7c(),J7c),a)} -function k8c(a){i8c();return es((n8c(),m8c),a)} -function V8b(a){S8b();return es((Y8b(),X8b),a)} -function A5b(a){y5b();return es((D5b(),C5b),a)} -function jad(a){ead();return es((mad(),lad),a)} -function sad(a){qad();return es((vad(),uad),a)} -function Cad(a){Aad();return es((Fad(),Ead),a)} -function Oad(a){Mad();return es((Rad(),Qad),a)} -function jbd(a){hbd();return es((mbd(),lbd),a)} -function ubd(a){rbd();return es((xbd(),wbd),a)} -function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} -function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} -function hcd(a){dcd();return es((kcd(),jcd),a)} -function vcd(a){rcd();return es((ycd(),xcd),a)} -function vdd(a){tdd();return es((ydd(),xdd),a)} -function Kdd(a){Idd();return es((Ndd(),Mdd),a)} -function $cd(a){Ucd();return es((cdd(),bdd),a)} -function Fed(a){Ded();return es((Ied(),Hed),a)} -function rgd(a){pgd();return es((ugd(),tgd),a)} -function Esd(a){Csd();return es((Hsd(),Gsd),a)} -function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} -function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} -function bPc(a,b){this.c=a;this.a=b;this.b=b-a} -function nYc(a,b,c){this.a=a;this.b=b;this.c=c} -function L1c(a,b,c){this.a=a;this.b=b;this.c=c} -function T1c(a,b,c){this.a=a;this.b=b;this.c=c} -function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} -function zCd(a,b,c){this.a=a;this.b=b;this.c=c} -function IVd(a,b,c){this.e=a;this.a=b;this.c=c} -function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} -function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} -function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} -function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} -function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} -function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} -function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} -function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} -function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} -function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} -function BD(a,b){CCb(a==null||AD(a,b));return a} -function Nu(a){var b;b=new Rkb;fr(b,a);return b} -function Ex(a){var b;b=new Tqb;fr(b,a);return b} -function Hx(a){var b;b=new Gxb;Jq(b,a);return b} -function Ru(a){var b;b=new Psb;Jq(b,a);return b} -function YEc(a){!a.e&&(a.e=new Rkb);return a.e} -function SMd(a){!a.c&&(a.c=new xYd);return a.c} -function Ekb(a,b){a.c[a.c.length]=b;return true} -function WA(a,b){this.c=a;this.b=b;this.a=false} -function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} -function pzb(){this.a=';,;';this.b='';this.c=''} -function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} -function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} -function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} -function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} -function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} -function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} -function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} -function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} -function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} -function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} -function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} -function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} -function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} -function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} -function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} -function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} -function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} -function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} -function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} -function rCb(a,b){if(!a){throw vbb(new ucb(b))}} -function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} -function dWb(a,b,c){cWb.call(this,a,b);this.b=c} -function pMd(a,b,c){MLd.call(this,a,b);this.c=c} -function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} -function _Gd(a){$Gd();MGd.call(this);this.th(a)} -function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} -function k2d(a,b,c){MLd.call(this,a,b);this.c=c} -function y1d(){T0d();z1d.call(this,(yFd(),xFd))} -function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} -function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} -function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} -function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} -function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} -function WUd(a,b){var c;c=a.c;VUd(a,b);return c} -function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} -function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} -function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} -function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} -function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} -function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} -function Wq(a,b){this.b=a;this.a=b;ol.call(this)} -function ar(a,b){this.a=a;this.b=b;ol.call(this)} -function vvb(a,b){qvb.call(this,b,1040);this.a=a} -function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} -function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} -function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} -function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} -function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} -function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} -function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} -function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} -function zfe(a){wfe();++vfe;return new ige(0,a)} -function o_b(a){if(a.a){return a.a}return JZb(a)} -function CCb(a){if(!a){throw vbb(new Cdb(null))}} -function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} -function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} -function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} -function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} -function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} -function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} -function Bic(a,b){return a.c=b){throw vbb(new rcb)}} -function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} -function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} -function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} -function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} -function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} -function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} -function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} -function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} -function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} -function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} -function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} -function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} -function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} -function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} -function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} -function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} -function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} -function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} -function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} -function x0d(a){Wud.call(this,a,false);this.a=false} -function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} -function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} -function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} -function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} -function nfb(a,b){return dfb(a.substr(0,b.length),b)} -function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} -function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} -function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} -function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} -function xJc(a){var b;b=a;while(b.f){b=b.f}return b} -function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} -function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} -function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} -function Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} -function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} -function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} -function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} -function Olb(a,b){return avb(b,a.length),new vvb(a,b)} -function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} -function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} -function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} -function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} -function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} -function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} -function Flb(a,b,c){var d;for(d=0;d=a.g} -function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} -function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} -function gCb(a,b){var c;c=console[a];c.call(console,b)} -function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} -function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} -function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} -function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} -function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} -function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} -function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} -function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} -function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} -function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} -function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} -function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} -function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} -function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} -function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} -function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} -function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} -function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} -function uCb(a){if(a==null){throw vbb(new Geb)}return a} -function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} -function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} -function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} -function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} -function igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)} -function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} -function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} -function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} -function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} -function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} -function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} -function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} -function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} -function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} -function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} -function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} -function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} -function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} -function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} -function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} -function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} -function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} -function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} -function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} -function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} -function vfb(a){return String.fromCharCode.apply(null,a)} -function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} -function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} -function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} -function ix(a,b){ex();return new gx(new il(a),new Uk(b))} -function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} -function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} -function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} -function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} -function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} -function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} -function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} -function Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d} -function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} -function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} -function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} -function JZb(a){var b;b=P2b(a);if(b){return b}return null} -function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} -function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} -function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} -function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} -function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} -function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} -function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} -function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} -function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} -function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} -function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} -function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} -function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} -function tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)} -function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} -function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} -function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} -function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} -function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} -function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} -function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} -function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} -function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} -function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} -function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} -function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} -function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} -function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} -function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} -function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} -function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} -function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} -function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} -function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} -function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} -function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} -function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} -function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} -function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} -function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} -function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} -function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} -function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} -function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} -function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} -function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} -function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} -function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} -function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} -function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} -function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} -function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} -function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} -function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} -function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} -function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} -function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} -function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} -function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} -function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} -function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} -function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} -function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} -function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} -function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} -function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} -function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} -function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} -function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} -function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} -function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} -function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} -function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} -function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} -function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} -function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} -function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} -function ecb(a){function b(){} -;b.prototype=a||{};return new b} -function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} -function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} -function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} -function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} -function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} -function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} -function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} -function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} -function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} -function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} -function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} -function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} -function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} -function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} -function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} -function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} -function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} -function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} -function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} -function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} -function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} -function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} -function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} -function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} -function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} -function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} -function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} -function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} -function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} -function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} -function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} -function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} -function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} -function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} -function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} -function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} -function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} -function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} -function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} -function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} -function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} -function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} -function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} -function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} -function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} -function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} -function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} -function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} -function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} -function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} -function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} -function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} -function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} -function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} -function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} -function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} -function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} -function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} -function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} -function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} -function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} -function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} -function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} -function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} -function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} -function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} -function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} -function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} -function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} -function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} -function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} -function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} -function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} -function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} -function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} -function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} -function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} -function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} -function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} -function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} -function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} -function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} -function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} -function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} -function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} -function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} -function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} -function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} -function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} -function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} -function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} -function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} -function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} -function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} -function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} -function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} -function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} -function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} -function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} -function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} -function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} -function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} -function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} -function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} -function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} -function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} -function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} -function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} -function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} -function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} -function mlb(a){sCb(a.ad?1:0} -function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} -function iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} -function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} -function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} -function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} -function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} -function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} -function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} -function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} -function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} -function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} -function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} -function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} -function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} -function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} -function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} -function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} -function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} -function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} -function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} -function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} -function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} -function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} -function Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}} -function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} -function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} -function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} -function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} -function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} -function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} -function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} -function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} -function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} -function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} -function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} -function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} -function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} -function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} -function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} -function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} -function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} -function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} -function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} -function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} -function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} -function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} -function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} -function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} -function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} -function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} -function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} -function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} -function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} -function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} -function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} -function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} -function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} -function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} -function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} -function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} -function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} -function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} -function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} -function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} -function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} -function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} -function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} -function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} -function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} -function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} -function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} -function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} -function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} -function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} -function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} -function A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b} -function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} -function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} -function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} -function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} -function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} -function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} -function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} -function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} -function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} -function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} -function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} -function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} -function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} -function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} -function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} -function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} -function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} -function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} -function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} -function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} -function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} -function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} -function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} -function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} -function Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0} -function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} -function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} -function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} -function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} -function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} -function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} -function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} -function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} -function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} -function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} -function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} -function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} -function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} -function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} -function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} -function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} -function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} -function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} -function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} -function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} -function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} -function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} -function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} -function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} -function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} -function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} -function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} -function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} -function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} -function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} -function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} -function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} -function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} -function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} -function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} -function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} -function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} -function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} -function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} -function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} -function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} -function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} -function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} -function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} -function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} -function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} -function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} -function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} -function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} -function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} -function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} -function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} -function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} -function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} -function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} -function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} -function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} -function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} -function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} -function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} -function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} -function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} -function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} -function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} -function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} -function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} -function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} -function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} -function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} -function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)} -function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} -function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} -function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} -function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} -function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} -function uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a} -function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} -function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} -function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} -function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} -function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} -function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} -function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} -function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} -function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} -function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} -function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} -function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} -function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} -function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} -function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} -function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} -function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} -function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} -function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} -function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} -function ODc(a,b){if(a.pb.p){return -1}return 0} -function pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')} -function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} -function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} -function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} -function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} -function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} -function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} -function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} -function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} -function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} -function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} -function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} -function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} -function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} -function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} -function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} -function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} -function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} -function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} -function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} -function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} -function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} -function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} -function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} -function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} -function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} -function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} -function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} -function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} -function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} -function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} -function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} -function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} -function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} -function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)} -function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} -function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} -function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} -function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} -function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} -function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} -function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} -function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} -function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} -function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} -function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} -function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} -function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} -function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} -function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} -function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} -function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} -function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} -function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} -function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} -function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} -function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} -function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} -function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} -function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} -function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} -function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} -function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} -function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} -function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} -function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} -function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} -function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} -function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} -function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} -function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} -function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} -function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} -function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} -function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} -function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} -function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} -function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} -function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} -function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} -function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} -function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} -function Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)} -function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} -function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} -function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} -function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} -function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} -function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} -function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} -function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} -function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} -function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} -function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} -function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} -function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} -function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} -function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} -function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} -function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} -function uA(a,b){while(b[0]=0){++b[0]}} -function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} -function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} -function EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d} -function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} -function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} -function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} -function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} -function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} -function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} -function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} -function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} -function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} -function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} -function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} -function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} -function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} -function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} -function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} -function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} -function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} -function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} -function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} -function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} -function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} -function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} -function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} -function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} -function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} -function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} -function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} -function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} -function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} -function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} -function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} -function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} -function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} -function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} -function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} -function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} -function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} -function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} -function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} -function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} -function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} -function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} -function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} -function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} -function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} -function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} -function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} -function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a} -function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} -function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} -function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} -function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} -function Jmc(a){var b;for(b=0;b=14&&b<=16)));return a} -function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} -function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} -function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} -function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} -function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} -function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} -function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} -function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} -function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} -function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} -function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} -function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} -function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} -function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} -function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} -function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} -function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} -function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} -function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} -function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} -function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} -function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} -function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} -function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} -function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} -function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} -function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} -function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} -function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} -function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} -function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} -function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} -function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} -function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} -function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} -function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} -function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} -function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} -function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} -function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} -function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} -function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} -function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} -function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} -function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} -function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} -function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} -function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} -function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} -function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} -function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} -function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} -function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} -function Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null} -function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} -function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} -function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} -function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} -function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} -function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} -function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} -function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} -function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} -function Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} -function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} -function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} -function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} -function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} -function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} -function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} -function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b} -function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} -function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} -function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} -function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} -function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} -function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} -function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} -function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} -function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} -function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} -function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} -function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} -function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} -function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} -function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} -function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} -function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} -function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} -function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} -function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} -function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} -function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} -function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} -function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} -function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} -function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} -function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} -function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} -function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} -function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} -function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} -function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} -function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} -function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} -function yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} -function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} -function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} -function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} -function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} -function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} -function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} -function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} -function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} -function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}} -function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} -function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} -function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} -function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} -function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} -function xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c} -function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} -function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} -function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} -function Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} -function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} -function qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0} -function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} -function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} -function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} -function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} -function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} -function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} -function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} -function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} -function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} -function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} -function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} -function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} -function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} -function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} -function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} -function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} -function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} -function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} -function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} -function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} -function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} -function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} -function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} -function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} -function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} -function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} -function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} -function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} -function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} -function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} -function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} -function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} -function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} -function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} -function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} -function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} -function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} -function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe} -function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} -function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} -function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} -function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} -function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} -function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} -function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} -function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} -function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} -function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} -function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} -function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} -function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} -function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d} -function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} -function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} -function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} -function j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} -function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} -function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} -function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} -function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} -function JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} -function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} -function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} -function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} -function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} -function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} -function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} -function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} -function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} -function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} -function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} -function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} -function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} -function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} -function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} -function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} -function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} -function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} -function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} -function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} -function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} -function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} -function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} -function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} -function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} -function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} -function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} -function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} -function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} -function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} -function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} -function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} -function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} -function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} -function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} -function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} -function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} -function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} -function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} -function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} -function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} -function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} -function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} -function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} -function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} -function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} -function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} -function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} -function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} -function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} -function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} -function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} -function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} -function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1} -function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} -function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} -function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} -function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} -function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} -function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} -function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} -function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} -function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} -function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} -function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} -function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} -function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} -function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} -function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} -function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} -function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} -function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} -function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} -function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} -function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} -function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} -function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} -function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} -function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} -function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} -function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} -function OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} -function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} -function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)} -function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} -function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} -function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} -function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} -function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} -function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} -function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} -function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} -function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} -function bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} -function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} -function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} -function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1} -function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} -function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} -function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} -function xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b} -function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} -function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} -function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} -function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} -function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} -function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} -function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} -function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} -function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} -function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} -function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} -function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} -function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} -function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} -function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} -function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} -function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} -function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} -function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} -function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} -function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} -function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} -function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} -function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} -function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} -function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} -function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} -function Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} -function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} -function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} -function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} -function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} -function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} -function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} -function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} -function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} -function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} -function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} -function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} -function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} -function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} -function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} -function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} -function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} -function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} -function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} -function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} -function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} -function _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} -function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} -function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} -function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} -function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} -function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} -function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} -function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} -function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} -function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} -function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} -function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} -function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} -function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} -function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} -function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} -function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} -function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} -function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} -function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} -function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} -function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} -function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} -function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} -function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} -function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} -function Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} -function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} -function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} -function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} -function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false} -function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} -function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} -function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} -function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} -function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} -function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} -function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} -function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} -function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} -function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} -function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} -function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} -function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} -function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} -function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} -function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f} -function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} -function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} -function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} -function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} -function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} -function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} -function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} -function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} -function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} -function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} -function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} -function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} -function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} -function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} -function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} -function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} -function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} -function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} -function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b} -function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}} -function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} -function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} -function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} -function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} -function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} -function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} -function ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} -function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} -function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} -function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} -function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} -function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} -function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} -function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} -function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} -function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} -function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} -function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} -function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} -function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} -function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} -function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} -function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} -function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} -function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} -function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} -function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} -function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} -function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false} -function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} -function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} -function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} -function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} -function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} -function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} -function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} -function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} -function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} -function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} -function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} -function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} -function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} -function cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} -function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} -function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} -function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} -function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} -function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} -function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} -function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} -function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} -function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} -function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} -function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} -function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} -function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} -function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} -function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} -function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} -function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} -function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} -function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} -function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} -function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} -function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} -function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} -function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c} -function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} -function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} -function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} -function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} -function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} -function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} -function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} -function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} -function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} -function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} -function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} -function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} -function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} -function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} -function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} -function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} -function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} -function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} -function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} -function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} -function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} -function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} -function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} -function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} -function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} -function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} -function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} -function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} -function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} -function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} -function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} -function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} -function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} -function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} -function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} -function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} -function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} -function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} -function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} -function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} -function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} -function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} -function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} -function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} -function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} -function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} -function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} -function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} -function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} -function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} -function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} -function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} -function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} -function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} -function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} -function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} -function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} -function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} -function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} -function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} -function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} -function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} -function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} -function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} -function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} -function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)} -function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} -function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} -function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} -function Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} -function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} -function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f} -function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} -function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} -function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} -function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false} -function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} -function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0} -function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} -function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} -function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} -function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} -function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} -function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} -function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} -function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} -function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} -function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} -function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} -function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} -function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} -function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} -function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} -function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} -function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} -function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} -function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} -function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} -function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} -function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} -function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} -function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null} -function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} -function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} -function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} -function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} -function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} -function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} -function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} -function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} -function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} -function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} -function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} -function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} -function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} -function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} -function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} -function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} -function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} -function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} -function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} -function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} -function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} -function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} -function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} -function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} -function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} -function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} -function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} -function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} -function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} -function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} -function NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} -function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} -function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} -function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} -function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} -function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} -function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} -function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} -function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} -function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} -function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} -function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} -function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} -function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} -function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} -function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} -function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} -function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} -function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} -function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} -function PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} -function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false} -function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g} -function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} -function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} -function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} -function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k} -function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} -function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c} -function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} -function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} -function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} -function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} -function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} -function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}} -function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} -function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} -function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} -function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}} -function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} -function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2} -function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} -function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} -function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} -function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} -function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} -function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} -function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} -function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} -function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} -function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} -function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} -function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} -function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} -function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} -function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} -function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}} -function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} -function lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} -function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} -function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} -function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} -function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} -function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} -function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} -function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} -function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} -function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} -function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} -function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} -function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} -function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} -function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} -function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} -function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} -function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} -function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} -function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} -function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} -function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} -function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} -function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} -function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} -function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} -function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} -function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} -function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} -function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} -function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} -function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} -function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} -function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} -function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} -function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} -function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} -function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} -function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} -function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} -function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} -function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} -function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} -function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} -function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} -function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} -function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} -function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}} -function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} -function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} -function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} -function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} -function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} -function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} -function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} -function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} -function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} -function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} -function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} -function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} -function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} -function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} -function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} -function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} -function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} -function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} -function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} -function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} -function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} -function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} -function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} -function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} -function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} -function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} -function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} -function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} -function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} -function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} -function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} -function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} -function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} -function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} -function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'"'))}return h} -function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} -function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} -function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} -function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} -function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} -function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} -function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} -function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} -function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} -function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} -function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} -function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} -function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} -function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} -function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} -function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} -function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} -function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} -function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} -function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} -function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} -function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e} -function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} -function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} -function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} -function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} -function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} -function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} -function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} -function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} -function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} -function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} -function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} -function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} -function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} -function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} -function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} -function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} -function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} -function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} -function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} -function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} -function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} -function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} -function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} -function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} -function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} -function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} -function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} -function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} -function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} -function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}} -function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} -function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} -function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} -function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} -function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} -function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} -function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} -function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} -function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} -function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} -function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)} -function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} -function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} -function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} -function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} -function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} -function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} -function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} -function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} -function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} -function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} -function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} -function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} -function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} -function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} -function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} -function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} -function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} -function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} -function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} -function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} -function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} -function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} -function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} -function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} -function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} -function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} -function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} -function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} -function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} -function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} -function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} -function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} -function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} -function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} -function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} -function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} -function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} -function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} -function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} -function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} -function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} -function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} -function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} -function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} -function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah} -function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} -function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} -function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} -function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} -function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} -function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} -function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} -function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} -function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} -function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} -function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} -function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} -function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} -function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} -function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} -function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} -function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} -function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} -function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} -function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} -function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} -function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} -function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)} -function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} -function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} -function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} -function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} -function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} -function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} -function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} -function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} -function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} -function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} -function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} -function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} -function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} -function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} -function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} -function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} -function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} -function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} -function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} -function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} -function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0} -function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} -function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c} -function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} -function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} -if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} -function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} -function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} -function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} -function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} -function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} -function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} -function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} -function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} -function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} -function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} -function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} -function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} -function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} -function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} -function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} -function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} -function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} -function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} -function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} -function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} -function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} -function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} -function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} -function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} -function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} -function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} -function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?":dfb(wue,a)?"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); -// -------------- RUN GWT INITIALIZATION CODE -------------- -gwtOnLoad(null, 'elk', null); - -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],3:[function(require,module,exports){ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/******************************************************************************* - * Copyright (c) 2021 Kiel University and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -var ELK = require('./elk-api.js').default; - -var ELKNode = function (_ELK) { - _inherits(ELKNode, _ELK); - - function ELKNode() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, ELKNode); - - var optionsClone = Object.assign({}, options); - - var workerThreadsExist = false; - try { - require.resolve('web-worker'); - workerThreadsExist = true; - } catch (e) {} - - // user requested a worker - if (options.workerUrl) { - if (workerThreadsExist) { - var Worker = require('web-worker'); - optionsClone.workerFactory = function (url) { - return new Worker(url); - }; - } else { - console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); - } - } - - // unless no other workerFactory is registered, use the fake worker - if (!optionsClone.workerFactory) { - var _require = require('./elk-worker.min.js'), - _Worker = _require.Worker; - - optionsClone.workerFactory = function (url) { - return new _Worker(url); - }; - } - - return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); - } - - return ELKNode; -}(ELK); - -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports = ELKNode; -ELKNode.default = ELKNode; -},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ -/** - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -module.exports = Worker; -},{}]},{},[3])(3) -}); diff --git a/doc/d3-hwschematic-assets/elkjs/lib/main.d.ts b/doc/d3-hwschematic-assets/elkjs/lib/main.d.ts deleted file mode 100644 index 780a5cfd..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/main.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019 TypeFox and others. - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ - -export * from "./elk-api"; -import ElkConstructor from "./elk-api"; -export default ElkConstructor; diff --git a/doc/d3-hwschematic-assets/elkjs/lib/main.js b/doc/d3-hwschematic-assets/elkjs/lib/main.js deleted file mode 100644 index f7199e87..00000000 --- a/doc/d3-hwschematic-assets/elkjs/lib/main.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -/******************************************************************************* - * Copyright (c) 2021 Kiel University and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -var ELK = require('./elk-api.js').default; - -var ELKNode = function (_ELK) { - _inherits(ELKNode, _ELK); - - function ELKNode() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, ELKNode); - - var optionsClone = Object.assign({}, options); - - var workerThreadsExist = false; - try { - require.resolve('web-worker'); - workerThreadsExist = true; - } catch (e) {} - - // user requested a worker - if (options.workerUrl) { - if (workerThreadsExist) { - var Worker = require('web-worker'); - optionsClone.workerFactory = function (url) { - return new Worker(url); - }; - } else { - console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); - } - } - - // unless no other workerFactory is registered, use the fake worker - if (!optionsClone.workerFactory) { - var _require = require('./elk-worker.min.js'), - _Worker = _require.Worker; - - optionsClone.workerFactory = function (url) { - return new _Worker(url); - }; - } - - return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); - } - - return ELKNode; -}(ELK); - -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports = ELKNode; -ELKNode.default = ELKNode; \ No newline at end of file diff --git a/doc/d3-hwschematic-assets/elkjs/package.json b/doc/d3-hwschematic-assets/elkjs/package.json deleted file mode 100644 index 5cd49ffe..00000000 --- a/doc/d3-hwschematic-assets/elkjs/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "elkjs", - "version": "0.8.2", - "author": { - "name": "Ulf Rüegg", - "email": "uruurumail@gmail.com" - }, - "description": "Automatic graph layout based on Sugiyama's algorithm. Specialized for data flow diagrams and ports.", - "main": "lib/main", - "types": "lib/main", - "files": [ - "lib" - ], - "repository": { - "type": "git", - "url": "https://github.com/kieler/elkjs.git" - }, - "keywords": [ - "graph", - "layout", - "layered", - "ports", - "dataflow" - ], - "license": "EPL-2.0", - "scripts": { - "test": "mocha test/mocha", - "gradle": "./gradlew lib", - "babel": "babel src/js/ -d build/js/", - "browserifyApi": "browserify build/js/main-api.js -s ELK --outfile lib/elk-api.js", - "browserifyBundle": "browserify build/js/main-node.js -s ELK --outfile lib/elk.bundled.js", - "browserify": "mkdirp lib && npm run browserifyApi && npm run browserifyBundle", - "cp": "cp build/js/elk-worker*.js lib/ && cp build/js/main-node.js lib/main.js && cp typings/*.d.ts lib/", - "js": "npm run babel && npm run browserify && npm run cp", - "build": "npm run gradle && npm run js", - "clean": "./gradlew clean && rm -r lib", - "setDevVersion": "npm version --no-git-tag-version \"$(node -p \"require('./package.json').version\")-dev-$(date '+%Y%m%d')\"" - }, - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.0", - "browserify": "^14.4.0", - "chai": "^4.0.2", - "chai-as-promised": "^7.1.1", - "mkdirp": "^0.5.0", - "mocha": "^10.0.0", - "web-worker": "^1.0.0" - }, - "publishConfig": { - "access": "public", - "tag": "next" - } -} diff --git a/gen/arbiter_gen.dart b/gen/arbiter_gen.dart index db9e376b..ec5f5a9b 100644 --- a/gen/arbiter_gen.dart +++ b/gen/arbiter_gen.dart @@ -8,11 +8,14 @@ // Author: Desmond Kirkpatrick // +// ignore_for_file: unused_element + +import 'dart:async'; import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/arbiter.dart'; -void arbiter_gen() async { +Future arbiterGen() async { const width = 8; final vector = Logic(width: width); diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart index bcd68aec..0cef74de 100644 --- a/gen/fifo_gen.dart +++ b/gen/fifo_gen.dart @@ -12,7 +12,7 @@ import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/fifo.dart'; -void fifo_gen() async { +Future fifoGen() async { final clk = SimpleClockGenerator(10).clk; final reset = Logic()..put(0); diff --git a/gen/generate.dart b/gen/generate.dart index 115df888..c4c117f6 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -14,10 +14,10 @@ import 'one_hot_gen.dart'; import 'rf_gen.dart'; import 'rotate_gen.dart'; -void main() { - arbiter_gen(); - fifo_gen(); - one_hot_gen(); - rf_gen(); - rotate_gen(); +void main() async { + await arbiterGen(); + await fifoGen(); + await oneHotGen(); + await rfGen(); + await rotateGen(); } diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart index d625872e..0d36c847 100644 --- a/gen/one_hot_gen.dart +++ b/gen/one_hot_gen.dart @@ -13,7 +13,7 @@ import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/one_hot.dart'; import 'package:rohd_hcl/src/utils.dart'; -void one_hot_gen() async { +Future oneHotGen() async { const pos = 8; final w = log2Ceil(pos + 1); final mod = BinaryToOneHot(Const(pos, width: w)); diff --git a/gen/rf_gen.dart b/gen/rf_gen.dart index e881c54e..25baf017 100644 --- a/gen/rf_gen.dart +++ b/gen/rf_gen.dart @@ -11,9 +11,8 @@ import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; -import 'package:test/test.dart'; -void rf_gen() async { +Future rfGen() async { const dataWidth = 16; const addrWidth = 4; diff --git a/gen/rotate_gen.dart b/gen/rotate_gen.dart index 9c461ed2..273b66aa 100644 --- a/gen/rotate_gen.dart +++ b/gen/rotate_gen.dart @@ -12,7 +12,7 @@ import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/rotate.dart'; -void rotate_gen() async { +Future rotateGen() async { final rot = RotateLeft( Const(0xf000, width: 16), Const(4, width: 8), diff --git a/gen/trial.dart b/gen/trial.dart new file mode 100644 index 00000000..e69de29b diff --git a/test/arbiter_test.dart b/test/arbiter_test.dart index e196e5e9..adb400ac 100644 --- a/test/arbiter_test.dart +++ b/test/arbiter_test.dart @@ -8,7 +8,6 @@ // Author: Max Korbel // -import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; import 'package:test/test.dart'; diff --git a/test/fifo_test.dart b/test/fifo_test.dart index 95f70b93..93f4f8c5 100644 --- a/test/fifo_test.dart +++ b/test/fifo_test.dart @@ -9,7 +9,6 @@ // import 'dart:async'; -import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; diff --git a/test/rf_test.dart b/test/rf_test.dart index 8fcaf107..0caddad7 100644 --- a/test/rf_test.dart +++ b/test/rf_test.dart @@ -9,7 +9,6 @@ // import 'dart:async'; -import 'dart:io'; import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; diff --git a/test/rotate_test.dart b/test/rotate_test.dart index a984e98f..ed62ea5e 100644 --- a/test/rotate_test.dart +++ b/test/rotate_test.dart @@ -8,8 +8,6 @@ // Author: Max Korbel // -import 'dart:io'; - import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/rohd_hcl.dart'; import 'package:test/test.dart'; From 155ae9b52bb19498dcd86d422e03c25dfbedd397 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 18:25:42 -0700 Subject: [PATCH 18/53] remove empty file --- gen/trial.dart | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 gen/trial.dart diff --git a/gen/trial.dart b/gen/trial.dart deleted file mode 100644 index e69de29b..00000000 From 6d91faec94a4486e14ba05aa7e13c726906baab0 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 18:31:51 -0700 Subject: [PATCH 19/53] updated workflow --- .github/workflows/general.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 6b457e81..a6b32367 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -73,8 +73,8 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh - - name: Install synthesis - run: tool/gh_actions/install_synthesis.sh + - name: Install Schematic support (includes yosys) + run: tool/gh_actions/install_schematic.sh - name: Generate HTML for examples run: tool/gh_actions/create_htmls.sh From b78aba6f48f1cb38c828c0546b244655b42daf1b Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 18:43:47 -0700 Subject: [PATCH 20/53] migrated schem generation to deploy stage --- .github/workflows/general.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index a6b32367..0ecbaa69 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -39,18 +39,12 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh - - name: Install Schematic support (includes yosys) - run: tool/gh_actions/install_schematic.sh - - name: Verify project formatting run: tool/gh_actions/verify_formatting.sh - name: Analyze project source run: tool/gh_actions/analyze_source.sh - - name: Trial generate HTML for examples # Here for testing only - run: tool/gh_actions/create_htmls.sh - - name: Check project documentation run: tool/gh_actions/check_documentation.sh @@ -66,6 +60,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + with: + submodules: recursive - name: Setup Dart uses: dart-lang/setup-dart@v1 From 492d6e8455db8aeac1b51d7b95951ac22fc68694 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 21:10:24 -0700 Subject: [PATCH 21/53] Push documentation of api one directory lower --- .github/workflows/general.yml | 2 +- tool/gh_actions/create_htmls.sh | 2 +- tool/gh_actions/generate_documentation.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 0ecbaa69..87f0ec62 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -81,5 +81,5 @@ jobs: - name: Deploy generated documentation uses: JamesIves/github-pages-deploy-action@v4 with: - folder: doc/api + folder: doc/home/ branch: docs diff --git a/tool/gh_actions/create_htmls.sh b/tool/gh_actions/create_htmls.sh index b6967b80..6b7fc234 100755 --- a/tool/gh_actions/create_htmls.sh +++ b/tool/gh_actions/create_htmls.sh @@ -12,5 +12,5 @@ for i in build/*.v do example=`basename $i .v` ./tool/converters/verilog_html.sh $example - cp build/$example.html doc/api/$example.html + cp build/$example.html doc/home/$example.html done diff --git a/tool/gh_actions/generate_documentation.sh b/tool/gh_actions/generate_documentation.sh index 9d937b6d..fb4bdae5 100755 --- a/tool/gh_actions/generate_documentation.sh +++ b/tool/gh_actions/generate_documentation.sh @@ -19,7 +19,7 @@ set -euo pipefail # output=$(dart doc --validate-links 2>&1 | tee) # We want relative link paths to be OK in the README -output=$(dart doc 2>&1 | tee) +output=$(dart doc -o home/api 2>&1 | tee) echo "${output}" From 6c51f4dd91425896ed4812714249a7355b03bfdf Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 21:18:31 -0700 Subject: [PATCH 22/53] need a home dir --- tool/gh_actions/create_htmls.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tool/gh_actions/create_htmls.sh b/tool/gh_actions/create_htmls.sh index 6b7fc234..a9239664 100755 --- a/tool/gh_actions/create_htmls.sh +++ b/tool/gh_actions/create_htmls.sh @@ -7,6 +7,8 @@ dart gen/generate.dart +mkdir -p doc/home + # Convert Verilog into an HTML-based schematic for each for i in build/*.v do From d6e0700e5c1440abcfd65f4e7546de812b79dad6 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 21:42:54 -0700 Subject: [PATCH 23/53] attempt to link schematic --- .github/workflows/general.yml | 2 +- doc/arbiter.md | 2 ++ tool/gh_actions/create_htmls.sh | 4 +--- tool/gh_actions/generate_documentation.sh | 2 +- tool/gh_actions/install_d3_hwschematic.sh | 3 +-- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 87f0ec62..0ecbaa69 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -81,5 +81,5 @@ jobs: - name: Deploy generated documentation uses: JamesIves/github-pages-deploy-action@v4 with: - folder: doc/home/ + folder: doc/api branch: docs diff --git a/doc/arbiter.md b/doc/arbiter.md index 9814adf3..4f3cdc6c 100644 --- a/doc/arbiter.md +++ b/doc/arbiter.md @@ -5,3 +5,5 @@ ROHD HCL implements a generic `abstract` [`Arbiter`](https://intel.github.io/roh ## Priority Arbiter The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbiter-class.html) is a combinational (stateless) arbiter that always grants to the lowest-indexed request. + +['Schematic'](https://desmonddak.github.io/rohd-hcl/rohd_hcl/PriorityArbiter.html) diff --git a/tool/gh_actions/create_htmls.sh b/tool/gh_actions/create_htmls.sh index a9239664..b6967b80 100755 --- a/tool/gh_actions/create_htmls.sh +++ b/tool/gh_actions/create_htmls.sh @@ -7,12 +7,10 @@ dart gen/generate.dart -mkdir -p doc/home - # Convert Verilog into an HTML-based schematic for each for i in build/*.v do example=`basename $i .v` ./tool/converters/verilog_html.sh $example - cp build/$example.html doc/home/$example.html + cp build/$example.html doc/api/$example.html done diff --git a/tool/gh_actions/generate_documentation.sh b/tool/gh_actions/generate_documentation.sh index fb4bdae5..9d937b6d 100755 --- a/tool/gh_actions/generate_documentation.sh +++ b/tool/gh_actions/generate_documentation.sh @@ -19,7 +19,7 @@ set -euo pipefail # output=$(dart doc --validate-links 2>&1 | tee) # We want relative link paths to be OK in the README -output=$(dart doc -o home/api 2>&1 | tee) +output=$(dart doc 2>&1 | tee) echo "${output}" diff --git a/tool/gh_actions/install_d3_hwschematic.sh b/tool/gh_actions/install_d3_hwschematic.sh index 71d34011..045e03d5 100755 --- a/tool/gh_actions/install_d3_hwschematic.sh +++ b/tool/gh_actions/install_d3_hwschematic.sh @@ -18,8 +18,7 @@ apt-get install -y \ npm \ python3-pip -git clone https://github.com/Nic30/d3-hwschematic.git -cd d3-hwschematic +cd doc/d3-hwschematic npm install npm install --only=dev nom run build From bd93c4ca5a3e7c2ffc6098f0b5b2b4c12711f78d Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 22:14:22 -0700 Subject: [PATCH 24/53] htmls need doc area setup --- .github/workflows/general.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 0ecbaa69..3b38e6fa 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -72,12 +72,12 @@ jobs: - name: Install Schematic support (includes yosys) run: tool/gh_actions/install_schematic.sh - - name: Generate HTML for examples - run: tool/gh_actions/create_htmls.sh - - name: Generate project documentation run: tool/gh_actions/generate_documentation.sh + - name: Generate HTML for examples + run: tool/gh_actions/create_htmls.sh + - name: Deploy generated documentation uses: JamesIves/github-pages-deploy-action@v4 with: From 8c18efcd71ea7789a60d6ff6303571b4bfa9699e Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 22:35:05 -0700 Subject: [PATCH 25/53] partition schem support --- .github/workflows/general.yml | 3 +++ doc/arbiter.md | 2 +- tool/gh_actions/install_d3_hwschematic.sh | 12 ++++++------ tool/gh_actions/install_schematic.sh | 15 +++++---------- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 3b38e6fa..0b1a6dd2 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -72,6 +72,9 @@ jobs: - name: Install Schematic support (includes yosys) run: tool/gh_actions/install_schematic.sh + - name: Install D3 Schematic viewer + run: tool/gh_actions/install_d3_schematic.sh + - name: Generate project documentation run: tool/gh_actions/generate_documentation.sh diff --git a/doc/arbiter.md b/doc/arbiter.md index 4f3cdc6c..98036206 100644 --- a/doc/arbiter.md +++ b/doc/arbiter.md @@ -6,4 +6,4 @@ ROHD HCL implements a generic `abstract` [`Arbiter`](https://intel.github.io/roh The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbiter-class.html) is a combinational (stateless) arbiter that always grants to the lowest-indexed request. -['Schematic'](https://desmonddak.github.io/rohd-hcl/rohd_hcl/PriorityArbiter.html) +['Schematic'](https://desmonddak.github.io/rohd-hcl/PriorityArbiter.html) diff --git a/tool/gh_actions/install_d3_hwschematic.sh b/tool/gh_actions/install_d3_hwschematic.sh index 045e03d5..7ea8c6f6 100755 --- a/tool/gh_actions/install_d3_hwschematic.sh +++ b/tool/gh_actions/install_d3_hwschematic.sh @@ -12,14 +12,14 @@ set -euo pipefail -apt-get update -apt-get install -y \ - git \ - npm \ - python3-pip - cd doc/d3-hwschematic npm install npm install --only=dev nom run build +cd ../.. +mkdir -p doc/api/d3-hwschematic-assets +cp -r doc/d3-hwschematic/node_modules/d3 doc/api/d3-hwschematic-assets +cp -r doc/d3-hwschematic/node_modules/elkjs doc/api/d3-hwschematic-assets +cp doc/d3-hwschematic/dist/d3-hwschematic.{css,js} doc/api/d3-hwschematic-assets + diff --git a/tool/gh_actions/install_schematic.sh b/tool/gh_actions/install_schematic.sh index d6266924..e29fda81 100755 --- a/tool/gh_actions/install_schematic.sh +++ b/tool/gh_actions/install_schematic.sh @@ -12,16 +12,11 @@ set -euo pipefail -cd doc/d3-hwschematic -npm install -npm install --only=dev -npm run build - -cd ../.. -mkdir -p doc/api/d3-hwschematic-assets -cp -r doc/d3-hwschematic/node_modules/d3 doc/api/d3-hwschematic-assets -cp -r doc/d3-hwschematic/node_modules/elkjs doc/api/d3-hwschematic-assets -cp doc/d3-hwschematic/dist/d3-hwschematic.{css,js} doc/api/d3-hwschematic-assets +apt-get update +apt-get install -y \ + git \ + npm \ + python3-pip cd / sudo wget -O oss-cad-suite-build.tgz https://github.com/YosysHQ/oss-cad-suite-build/releases/download/2023-05-12/oss-cad-suite-linux-x64-20230512.tgz From 06e1a6fdcd23e02a8b3749906422d25fe8ed951d Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 22:37:37 -0700 Subject: [PATCH 26/53] sudo issue --- tool/gh_actions/install_schematic.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tool/gh_actions/install_schematic.sh b/tool/gh_actions/install_schematic.sh index e29fda81..9b0d479f 100755 --- a/tool/gh_actions/install_schematic.sh +++ b/tool/gh_actions/install_schematic.sh @@ -12,8 +12,8 @@ set -euo pipefail -apt-get update -apt-get install -y \ +sudo apt-get update +sudo apt-get install -y \ git \ npm \ python3-pip From ab2569064a68f0fecbedfd6426bfa47e22745ab2 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 22:47:32 -0700 Subject: [PATCH 27/53] hw schematic not schematic --- .github/workflows/general.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 0b1a6dd2..96902e1c 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -73,7 +73,7 @@ jobs: run: tool/gh_actions/install_schematic.sh - name: Install D3 Schematic viewer - run: tool/gh_actions/install_d3_schematic.sh + run: tool/gh_actions/install_d3_hwschematic.sh - name: Generate project documentation run: tool/gh_actions/generate_documentation.sh From 2fce1ec76c0727dd4209ff5c508d9cf72afc4f9b Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 22:55:38 -0700 Subject: [PATCH 28/53] npm typo --- tool/gh_actions/install_d3_hwschematic.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/gh_actions/install_d3_hwschematic.sh b/tool/gh_actions/install_d3_hwschematic.sh index 7ea8c6f6..16cbab01 100755 --- a/tool/gh_actions/install_d3_hwschematic.sh +++ b/tool/gh_actions/install_d3_hwschematic.sh @@ -15,7 +15,7 @@ set -euo pipefail cd doc/d3-hwschematic npm install npm install --only=dev -nom run build +npm run build cd ../.. mkdir -p doc/api/d3-hwschematic-assets From 675e0282777754674862601417c6a999304dc801 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 23:02:23 -0700 Subject: [PATCH 29/53] remove quotes --- doc/arbiter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/arbiter.md b/doc/arbiter.md index 98036206..f3fb7837 100644 --- a/doc/arbiter.md +++ b/doc/arbiter.md @@ -6,4 +6,4 @@ ROHD HCL implements a generic `abstract` [`Arbiter`](https://intel.github.io/roh The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbiter-class.html) is a combinational (stateless) arbiter that always grants to the lowest-indexed request. -['Schematic'](https://desmonddak.github.io/rohd-hcl/PriorityArbiter.html) +[Schematic](https://desmonddak.github.io/rohd-hcl/PriorityArbiter.html) From fbe11ae137866c5085315ecf0c337c076a30cfd4 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 23:37:52 -0700 Subject: [PATCH 30/53] each component gets a schematic --- doc/arbiter.md | 2 +- doc/fifo.md | 2 ++ doc/memory.md | 2 ++ doc/rotate.md | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/arbiter.md b/doc/arbiter.md index f3fb7837..83f33606 100644 --- a/doc/arbiter.md +++ b/doc/arbiter.md @@ -6,4 +6,4 @@ ROHD HCL implements a generic `abstract` [`Arbiter`](https://intel.github.io/roh The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbiter-class.html) is a combinational (stateless) arbiter that always grants to the lowest-indexed request. -[Schematic](https://desmonddak.github.io/rohd-hcl/PriorityArbiter.html) +[PriorityArbiter Schematic](https://desmonddak.github.io/rohd-hcl/PriorityArbiter.html) diff --git a/doc/fifo.md b/doc/fifo.md index db19489f..a2417dae 100644 --- a/doc/fifo.md +++ b/doc/fifo.md @@ -29,3 +29,5 @@ There is no guarantee that the `error` signal will hold high once asserted once. ## Occupancy Occupancy information can optionally be generated and provided if `generateOccupancy` is set. The `occupancy` signal will indicate the number of items currently stored in the FIFO. + +[FIFO Schematic](https://desmonddak.github.io/rohd-hcl/Fifo.html) diff --git a/doc/memory.md b/doc/memory.md index a433b1a4..c76b3c92 100644 --- a/doc/memory.md +++ b/doc/memory.md @@ -15,3 +15,5 @@ The `RegisterFile` accepts masks on writes, but not on reads. Currently, `RegisterFile` only generates flop-based memory (no latches). The read path is combinational, so data is provided immediately according to the control signals. + +[RegisterFile Schematic](https://desmonddak.github.io/rohd-hcl/RegisterFile.html) diff --git a/doc/rotate.md b/doc/rotate.md index 2ad05f91..b63900d8 100644 --- a/doc/rotate.md +++ b/doc/rotate.md @@ -60,3 +60,4 @@ Also included are `extension`s for `LogicValue` with a similar rotation API for ```dart LogicValue.ofInt(0xf000, 16).rotateLeft(8); // results in 0x00f0 ``` +[Rotateleft Schematic](https://desmonddak.github.io/rohd-hcl/RotateLeft.html) From 6696b3c6cecbff426b52b40f2f0c5f20f260dec0 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 23:41:34 -0700 Subject: [PATCH 31/53] format complaint --- doc/rotate.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/rotate.md b/doc/rotate.md index b63900d8..4471f2e0 100644 --- a/doc/rotate.md +++ b/doc/rotate.md @@ -60,4 +60,5 @@ Also included are `extension`s for `LogicValue` with a similar rotation API for ```dart LogicValue.ofInt(0xf000, 16).rotateLeft(8); // results in 0x00f0 ``` + [Rotateleft Schematic](https://desmonddak.github.io/rohd-hcl/RotateLeft.html) From 7c7d8886f821e3ffa8f73b2a543b197a9f32ade2 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Fri, 12 May 2023 23:52:42 -0700 Subject: [PATCH 32/53] fix write flushing --- gen/arbiter_gen.dart | 2 +- gen/fifo_gen.dart | 2 +- gen/one_hot_gen.dart | 2 +- gen/rf_gen.dart | 2 +- gen/rotate_gen.dart | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gen/arbiter_gen.dart b/gen/arbiter_gen.dart index ec5f5a9b..4f04b1f5 100644 --- a/gen/arbiter_gen.dart +++ b/gen/arbiter_gen.dart @@ -25,5 +25,5 @@ Future arbiterGen() async { await arb.build(); final res = arb.generateSynth(); - File('build/${arb.definitionName}.v').openWrite().write(res); + File('build/${arb.definitionName}.v').writeAsStringSync(res); } diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart index 0cef74de..99b42392 100644 --- a/gen/fifo_gen.dart +++ b/gen/fifo_gen.dart @@ -32,5 +32,5 @@ Future fifoGen() async { ); await fifo.build(); final res = fifo.generateSynth(); - File('build/${fifo.definitionName}.v').openWrite().write(res); + File('build/${fifo.definitionName}.v').writeAsStringSync(res); } diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart index 0d36c847..a0e7f6e6 100644 --- a/gen/one_hot_gen.dart +++ b/gen/one_hot_gen.dart @@ -24,5 +24,5 @@ Future oneHotGen() async { final mod2 = OneHotToBinary(Const(val, width: pos + 1)); await mod2.build(); final res2 = mod2.generateSynth(); - File('build/${mod2.definitionName}.v').openWrite().write(res2); + File('build/${mod2.definitionName}.v').writeAsStringSync(res); } diff --git a/gen/rf_gen.dart b/gen/rf_gen.dart index 25baf017..cc897a58 100644 --- a/gen/rf_gen.dart +++ b/gen/rf_gen.dart @@ -36,5 +36,5 @@ Future rfGen() async { await rf.build(); final res = rf.generateSynth(); - File('build/${rf.definitionName}.v').openWrite().write(res); + File('build/${rf.definitionName}.v').writeAsStringSync(res); } diff --git a/gen/rotate_gen.dart b/gen/rotate_gen.dart index 273b66aa..940b0d2e 100644 --- a/gen/rotate_gen.dart +++ b/gen/rotate_gen.dart @@ -20,5 +20,5 @@ Future rotateGen() async { ); await rot.build(); final res = rot.generateSynth(); - File('build/${rot.definitionName}.v').openWrite().write(res); + File('build/${rot.definitionName}.v').writeAsStringSync(res); } From 90eaede69c846d46db9052191952ae83056c0a33 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Sat, 13 May 2023 00:04:57 -0700 Subject: [PATCH 33/53] add one-hot codec documentation --- doc/onehot.md | 13 +++++++++++++ gen/one_hot_gen.dart | 13 ++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 doc/onehot.md diff --git a/doc/onehot.md b/doc/onehot.md new file mode 100644 index 00000000..f959fa30 --- /dev/null +++ b/doc/onehot.md @@ -0,0 +1,13 @@ +# One Hot Codecs + +ROHD HCL implements a set of one hot encoder and decoders. + +The encoders take a Logic bitvector, with the constraint that only a single bit is set to '1' and outputs the bit position in binary. + +The decoders take a Logic input representing the bit position to be set to '1', and returns a Logic bitvector with that bit position set to '1', and all others set to '0' + +[BinaryToOneHot Schematic](https://desmonddak.github.io/rohd-hcl/BinaryToOneHot.html) + +[OneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/OneHotToBinary.html) + +[TreeOneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/OneHotToBinary.html) diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart index a0e7f6e6..1d495bce 100644 --- a/gen/one_hot_gen.dart +++ b/gen/one_hot_gen.dart @@ -20,9 +20,16 @@ Future oneHotGen() async { await mod.build(); final res = mod.generateSynth(); File('build/${mod.definitionName}.v').openWrite().write(res); - final val = BigInt.from(2).pow(pos); - final mod2 = OneHotToBinary(Const(val, width: pos + 1)); + + final val2 = BigInt.from(2).pow(pos); + final mod2 = OneHotToBinary(Const(val2, width: pos + 1)); await mod2.build(); final res2 = mod2.generateSynth(); - File('build/${mod2.definitionName}.v').writeAsStringSync(res); + File('build/${mod2.definitionName}.v').writeAsStringSync(res2); + + final val3 = BigInt.from(2).pow(pos); + final mod3 = TreeOneHotToBinary(Const(val3, width: pos + 1)); + await mod3.build(); + final res3 = mod3.generateSynth(); + File('build/${mod3.definitionName}.v').writeAsStringSync(res3); } From 38f01a8117dc049884ca29944ee02ac770819ff7 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Sat, 13 May 2023 00:16:23 -0700 Subject: [PATCH 34/53] quieter generator, fixed onehot doc --- doc/onehot.md | 2 +- tool/converters/verilog_json.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/onehot.md b/doc/onehot.md index f959fa30..905fd801 100644 --- a/doc/onehot.md +++ b/doc/onehot.md @@ -10,4 +10,4 @@ The decoders take a Logic input representing the bit position to be set to '1', [OneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/OneHotToBinary.html) -[TreeOneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/OneHotToBinary.html) +[TreeOneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/TreeOneHotToBinary.html) diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh index 41774a5e..94048574 100755 --- a/tool/converters/verilog_json.sh +++ b/tool/converters/verilog_json.sh @@ -21,7 +21,7 @@ fi; yosys_bin=/oss-cad-suite/bin/yosys module=`basename $1 .v` -$yosys_bin < Date: Tue, 16 May 2023 16:06:20 -0700 Subject: [PATCH 35/53] feedback fixes --- .github/workflows/general.yml | 6 +++-- doc/onehot.md | 2 ++ gen/fifo_gen.dart | 4 +-- gen/one_hot_gen.dart | 26 ++++++++----------- test/one_hot_test.dart | 7 ----- tool/gh_actions/install_d3_hwschematic.sh | 2 +- ...l_schematic.sh => install_opencadsuite.sh} | 2 +- 7 files changed, 21 insertions(+), 28 deletions(-) rename tool/gh_actions/{install_schematic.sh => install_opencadsuite.sh} (95%) diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml index 96902e1c..fe5ddf7c 100644 --- a/.github/workflows/general.yml +++ b/.github/workflows/general.yml @@ -48,6 +48,8 @@ jobs: - name: Check project documentation run: tool/gh_actions/check_documentation.sh + - name: Run project tests + run: tool/gh_actions/run_tests.sh deploy-documentation: name: Deploy Documentation @@ -69,8 +71,8 @@ jobs: - name: Install project dependencies run: tool/gh_actions/install_dependencies.sh - - name: Install Schematic support (includes yosys) - run: tool/gh_actions/install_schematic.sh + - name: Install CAD Suite (includes yosys) + run: tool/gh_actions/install_opencadsuite.sh - name: Install D3 Schematic viewer run: tool/gh_actions/install_d3_hwschematic.sh diff --git a/doc/onehot.md b/doc/onehot.md index 905fd801..d2ae6a31 100644 --- a/doc/onehot.md +++ b/doc/onehot.md @@ -2,6 +2,8 @@ ROHD HCL implements a set of one hot encoder and decoders. +For example, we have an encoder [`BinaryToOneHot`](https://desmonddak.github.io/rohd-hcl/rohd_hcl/BinaryToOneHot-class.html) class, and a couple of implementations of decoder classes like [`OneHotToBinary`](https://desmonddak.github.io/rohd-hcl/rohd_hcl/OneHotToBinary-class.html) and a more performant [`BinaryToOneHot`](https://desmonddak.github.io/rohd-hcl/rohd_hcl/TreeOneHotToBinary-class.html). + The encoders take a Logic bitvector, with the constraint that only a single bit is set to '1' and outputs the bit position in binary. The decoders take a Logic input representing the bit position to be set to '1', and returns a Logic bitvector with that bit position set to '1', and all others set to '0' diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart index 99b42392..25e8850b 100644 --- a/gen/fifo_gen.dart +++ b/gen/fifo_gen.dart @@ -1,8 +1,8 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: BSD-3-Clause // -// one_hot_test.dart -// Test of one_hot codec. +// fifo_gen.dart +// Genarate a FIFO. // // 2023 May 09 // Author: Desmond Kirkpatrick diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart index 1d495bce..b40f3d08 100644 --- a/gen/one_hot_gen.dart +++ b/gen/one_hot_gen.dart @@ -15,21 +15,17 @@ import 'package:rohd_hcl/src/utils.dart'; Future oneHotGen() async { const pos = 8; - final w = log2Ceil(pos + 1); - final mod = BinaryToOneHot(Const(pos, width: w)); - await mod.build(); - final res = mod.generateSynth(); - File('build/${mod.definitionName}.v').openWrite().write(res); + final binaryInput = Logic(width: log2Ceil(pos + 1)); + final m1 = BinaryToOneHot(binaryInput); + await m1.build(); + File('build/${m1.definitionName}.v').writeAsStringSync(m1.generateSynth()); - final val2 = BigInt.from(2).pow(pos); - final mod2 = OneHotToBinary(Const(val2, width: pos + 1)); - await mod2.build(); - final res2 = mod2.generateSynth(); - File('build/${mod2.definitionName}.v').writeAsStringSync(res2); + final onehotInput = Logic(width: pos + 1); + final m2 = OneHotToBinary(onehotInput); + await m2.build(); + File('build/${m2.definitionName}.v').writeAsStringSync(m2.generateSynth()); - final val3 = BigInt.from(2).pow(pos); - final mod3 = TreeOneHotToBinary(Const(val3, width: pos + 1)); - await mod3.build(); - final res3 = mod3.generateSynth(); - File('build/${mod3.definitionName}.v').writeAsStringSync(res3); + final m3 = TreeOneHotToBinary(onehotInput); + await m3.build(); + File('build/${m3.definitionName}.v').writeAsStringSync(m3.generateSynth()); } diff --git a/test/one_hot_test.dart b/test/one_hot_test.dart index ab2fc683..aa88e305 100644 --- a/test/one_hot_test.dart +++ b/test/one_hot_test.dart @@ -8,7 +8,6 @@ // Author: Desmond Kirkpatrick // -import 'dart:io'; import 'dart:math'; import 'package:rohd/rohd.dart'; @@ -36,12 +35,6 @@ void main() { final expected = LogicValue.ofInt(pos, computed.width); expect(computed.value, equals(expected)); } - const pos = 32; - final val = BigInt.from(2).pow(pos); - final mod = OneHotToBinary(Const(val, width: pos + 1)); - await mod.build(); - final res = mod.generateSynth(); - File('${mod.definitionName}.v').openWrite().write(res); }); test('tree_decode', () { // Compute the binary value (or bit position) of a one-hot encoded value diff --git a/tool/gh_actions/install_d3_hwschematic.sh b/tool/gh_actions/install_d3_hwschematic.sh index 16cbab01..ae98fa46 100755 --- a/tool/gh_actions/install_d3_hwschematic.sh +++ b/tool/gh_actions/install_d3_hwschematic.sh @@ -3,7 +3,7 @@ # Copyright (C) 2023 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # -# install_synthesis.sh +# install_d3_hwschematic.sh # GitHub Actions step: Install project dependencies. # # 2023 May 09 diff --git a/tool/gh_actions/install_schematic.sh b/tool/gh_actions/install_opencadsuite.sh similarity index 95% rename from tool/gh_actions/install_schematic.sh rename to tool/gh_actions/install_opencadsuite.sh index 9b0d479f..304d5fb3 100755 --- a/tool/gh_actions/install_schematic.sh +++ b/tool/gh_actions/install_opencadsuite.sh @@ -3,7 +3,7 @@ # Copyright (C) 2023 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause # -# install_synthesis.sh +# install_opencadsuite.sh # GitHub Actions step: Install project dependencies. # # 2023 May 09 From 2a2993d9d214d44ed845bb66905947ba9c92d69e Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Tue, 16 May 2023 17:29:01 -0700 Subject: [PATCH 36/53] redirect links --- doc/arbiter.md | 2 +- doc/memory.md | 2 +- doc/onehot.md | 8 ++++---- doc/rotate.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/arbiter.md b/doc/arbiter.md index 83f33606..37740392 100644 --- a/doc/arbiter.md +++ b/doc/arbiter.md @@ -6,4 +6,4 @@ ROHD HCL implements a generic `abstract` [`Arbiter`](https://intel.github.io/roh The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbiter-class.html) is a combinational (stateless) arbiter that always grants to the lowest-indexed request. -[PriorityArbiter Schematic](https://desmonddak.github.io/rohd-hcl/PriorityArbiter.html) +[PriorityArbiter Schematic](https://intel.github.io/rohd-hcl/PriorityArbiter.html) diff --git a/doc/memory.md b/doc/memory.md index c76b3c92..ff9b2af1 100644 --- a/doc/memory.md +++ b/doc/memory.md @@ -16,4 +16,4 @@ Currently, `RegisterFile` only generates flop-based memory (no latches). The read path is combinational, so data is provided immediately according to the control signals. -[RegisterFile Schematic](https://desmonddak.github.io/rohd-hcl/RegisterFile.html) +[RegisterFile Schematic](https://intel.github.io/rohd-hcl/RegisterFile.html) diff --git a/doc/onehot.md b/doc/onehot.md index d2ae6a31..7e9b6c0a 100644 --- a/doc/onehot.md +++ b/doc/onehot.md @@ -2,14 +2,14 @@ ROHD HCL implements a set of one hot encoder and decoders. -For example, we have an encoder [`BinaryToOneHot`](https://desmonddak.github.io/rohd-hcl/rohd_hcl/BinaryToOneHot-class.html) class, and a couple of implementations of decoder classes like [`OneHotToBinary`](https://desmonddak.github.io/rohd-hcl/rohd_hcl/OneHotToBinary-class.html) and a more performant [`BinaryToOneHot`](https://desmonddak.github.io/rohd-hcl/rohd_hcl/TreeOneHotToBinary-class.html). +For example, we have an encoder [`BinaryToOneHot`](https://intel.github.io/rohd-hcl/rohd_hcl/BinaryToOneHot-class.html) class, and a couple of implementations of decoder classes like [`OneHotToBinary`](https://intel.github.io/rohd-hcl/rohd_hcl/OneHotToBinary-class.html) and a more performant [`TreeBinaryToOneHot`](https://intel.github.io/rohd-hcl/rohd_hcl/TreeOneHotToBinary-class.html). The encoders take a Logic bitvector, with the constraint that only a single bit is set to '1' and outputs the bit position in binary. The decoders take a Logic input representing the bit position to be set to '1', and returns a Logic bitvector with that bit position set to '1', and all others set to '0' -[BinaryToOneHot Schematic](https://desmonddak.github.io/rohd-hcl/BinaryToOneHot.html) +[BinaryToOneHot Schematic](https://intel.github.io/rohd-hcl/BinaryToOneHot.html) -[OneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/OneHotToBinary.html) +[OneHotToBinary Schematic](https://intel.github.io/rohd-hcl/OneHotToBinary.html) -[TreeOneHotToBinary Schematic](https://desmonddak.github.io/rohd-hcl/TreeOneHotToBinary.html) +[TreeOneHotToBinary Schematic](https://intel.github.io/rohd-hcl/TreeOneHotToBinary.html) diff --git a/doc/rotate.md b/doc/rotate.md index 4471f2e0..8cf5d429 100644 --- a/doc/rotate.md +++ b/doc/rotate.md @@ -61,4 +61,4 @@ Also included are `extension`s for `LogicValue` with a similar rotation API for LogicValue.ofInt(0xf000, 16).rotateLeft(8); // results in 0x00f0 ``` -[Rotateleft Schematic](https://desmonddak.github.io/rohd-hcl/RotateLeft.html) +[Rotateleft Schematic](https://intel.github.io/rohd-hcl/RotateLeft.html) From 60a8878115804916e892e359235174cf9e092d0d Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Tue, 16 May 2023 17:52:21 -0700 Subject: [PATCH 37/53] filename not correct inside file --- gen/fifo_gen.dart | 6 +++--- gen/generate.dart | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart index 25e8850b..f4da0066 100644 --- a/gen/fifo_gen.dart +++ b/gen/fifo_gen.dart @@ -14,10 +14,10 @@ import 'package:rohd_hcl/src/fifo.dart'; Future fifoGen() async { final clk = SimpleClockGenerator(10).clk; - final reset = Logic()..put(0); + final reset = Logic(); - final wrEn = Logic()..put(0); - final rdEn = Logic()..put(0); + final wrEn = Logic(); + final rdEn = Logic(); final wrData = Logic(width: 32); final fifo = Fifo( diff --git a/gen/generate.dart b/gen/generate.dart index c4c117f6..ee02cfc2 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -1,8 +1,9 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: BSD-3-Clause // -// rotate_gen.dart -// Generate an example rotator +// generate.dart +// Generate a series of examples for documentation +// Call a generator to create an instance of your component for schematic viewing. // // 2023 May 09 // Author: Desmond Kirkpatrick From 55c6d61abd50f57cbe4df8cb8ad1d35ed6c8d0a7 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Tue, 16 May 2023 17:59:47 -0700 Subject: [PATCH 38/53] line length issue --- gen/generate.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gen/generate.dart b/gen/generate.dart index ee02cfc2..532882de 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -2,8 +2,10 @@ // SPDX-License-Identifier: BSD-3-Clause // // generate.dart -// Generate a series of examples for documentation -// Call a generator to create an instance of your component for schematic viewing. +// Generate a series of examples for documentation. +// +// Call a generator to create an instance of your component for +// schematic viewing. // // 2023 May 09 // Author: Desmond Kirkpatrick From 6d7082dd9be27c6f8e145b980fa9d96ef9251377 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Tue, 16 May 2023 18:38:40 -0700 Subject: [PATCH 39/53] no more puts --- gen/rf_gen.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gen/rf_gen.dart b/gen/rf_gen.dart index cc897a58..9a54e83c 100644 --- a/gen/rf_gen.dart +++ b/gen/rf_gen.dart @@ -24,11 +24,11 @@ Future rfGen() async { final wrPorts = [ for (var i = 0; i < numWr; i++) - DataPortInterface(dataWidth, addrWidth)..en.put(0) + DataPortInterface(dataWidth, addrWidth) ]; final rdPorts = [ for (var i = 0; i < numRd; i++) - DataPortInterface(dataWidth, addrWidth)..en.put(0) + DataPortInterface(dataWidth, addrWidth) ]; final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); From de2f6e69c629d2f3893a39fbd5a72c45a5e448e8 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Tue, 16 May 2023 18:41:52 -0700 Subject: [PATCH 40/53] formatting --- gen/rf_gen.dart | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gen/rf_gen.dart b/gen/rf_gen.dart index 9a54e83c..70541017 100644 --- a/gen/rf_gen.dart +++ b/gen/rf_gen.dart @@ -23,12 +23,10 @@ Future rfGen() async { final reset = Logic(); final wrPorts = [ - for (var i = 0; i < numWr; i++) - DataPortInterface(dataWidth, addrWidth) + for (var i = 0; i < numWr; i++) DataPortInterface(dataWidth, addrWidth) ]; final rdPorts = [ - for (var i = 0; i < numRd; i++) - DataPortInterface(dataWidth, addrWidth) + for (var i = 0; i < numRd; i++) DataPortInterface(dataWidth, addrWidth) ]; final rf = RegisterFile(clk, reset, wrPorts, rdPorts, numEntries: 20); From 1423819da350819edd74ef5cc92d3d6f691ffe41 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Mon, 2 Oct 2023 20:41:31 -0700 Subject: [PATCH 41/53] parallel prefix operations --- .gitignore | 3 +- CONTRIBUTING.md | 19 ++ doc/components/parallel_prefix_operations.md | 15 ++ gen/generate.dart | 2 + gen/parallel_prefix_operations_gen.dart | 29 +++ lib/src/one_hot.dart | 2 +- lib/src/parallel_prefix_operations.dart | 250 +++++++++++++++++++ pubspec.yaml | 1 + test/one_hot_test.dart | 2 +- test/parallel_prefix_operations_test.dart | 236 +++++++++++++++++ 10 files changed, 556 insertions(+), 3 deletions(-) create mode 100644 doc/components/parallel_prefix_operations.md create mode 100644 gen/parallel_prefix_operations_gen.dart create mode 100644 lib/src/parallel_prefix_operations.dart create mode 100644 test/parallel_prefix_operations_test.dart diff --git a/.gitignore b/.gitignore index 5c5e8ba8..106c7238 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ doc/api/ tmp* *.vcd .vscode/ +*~ # Exceptions -!.vscode/extensions.json \ No newline at end of file +!.vscode/extensions.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fb5ec428..af8e36c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -151,3 +151,22 @@ Here are some links to help guide you on style as recommended by Dart: * Design: We recommend following these same guidelines for any of your own packages you may create for the ecosystem, as well. + +## Adding a New Component + +1. Create the dart code for constructing the module in lib/src + +1. Create testing code in test/ + +1. Create a generator in gen + + 1. Add generator to gen/generate.dart + + 1. Run dart gen/generate.dart to make sure generation works. + +1. Add documentation to doc/name.dart + +1. How to test documentation in a dart container + + 1. gh_actions/install_oss_cad_suite.sh + 1. install_d3_hwschematic.sh diff --git a/doc/components/parallel_prefix_operations.md b/doc/components/parallel_prefix_operations.md new file mode 100644 index 00000000..0198e7bd --- /dev/null +++ b/doc/components/parallel_prefix_operations.md @@ -0,0 +1,15 @@ +# Parallel Prefix Operations + +ROHD HCL implements a set of parallel prefix compute operations using +different parallel prefix computation trees. + +For example, we have unary operations like a word 'or' [`OrScan`](https://intel.github.io/rohd-hcl/rohd_hcl/OrScan-class.html) class, and a priority encoder [`PriorityEncoder`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityEncoder-class.html) class. We have simple unary arithmetic operations like an increment [`PPIncr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPIncr-class.html) class, and a decrement [`PPDecr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPDecr-class.html) class. Finally, we have a binary adder [`PPAdder`](https://intel.github.io/rohd-hcl/rohd_hcl/PPadder-class.html) class. + +Each of these operations can be implemented with different ['ParallelPrefix'] types: +- ['Ripple'](https://intel.github.io/rohd-hcl/rohd_hcl/Ripple-class.html) +- ['Sklansky](https://intel.github.io/rohd-hcl/rohd_hcl/Sklansky-class.html) +- ['KoggeStone'](https://intel.github.io/rohd-hcl/rohd_hcl/KoggeStone-class.html) +- ['BrentKung](https://intel.github.io/rohd-hcl/rohd_hcl/BrentKung-class.html) + +[PPAdder_BrentKung Schematic](https://intel.github.io/rohd-hcl/PPAdder_BrentKung.html) + diff --git a/gen/generate.dart b/gen/generate.dart index 066dfc4d..91b3ee58 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -13,6 +13,7 @@ import 'arbiter_gen.dart'; import 'fifo_gen.dart'; import 'one_hot_gen.dart'; +import 'parallel_prefix_operations_gen.dart'; import 'rf_gen.dart'; import 'rotate_gen.dart'; @@ -22,4 +23,5 @@ void main() async { await oneHotGen(); await rfGen(); await rotateGen(); + await parallelPrefixGen(); } diff --git a/gen/parallel_prefix_operations_gen.dart b/gen/parallel_prefix_operations_gen.dart new file mode 100644 index 00000000..81d28c10 --- /dev/null +++ b/gen/parallel_prefix_operations_gen.dart @@ -0,0 +1,29 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// one_hot_gen.dart +// Generate one_hot codecs. +// +// 2023 Oct 02 +// Author: Desmond Kirkpatrick + +import 'dart:io'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/src/parallel_prefix_operations.dart'; + +Future parallelPrefixGen() async { + const n = 8; + final a = Logic(name: 'a', width: n); + final b = Logic(name: 'b', width: n); + + final generators = [Ripple.new, Sklansky.new, KoggeStone.new, BrentKung.new]; + final names = ['Ripple', 'Sklansky', 'KoggeStone', 'BrentKung']; + var i = 0; + for (final ppGen in generators) { + final m1 = PPAdder(a, b, ppGen); + await m1.build(); + File('build/${m1.definitionName}_${names[i]}.v') + .writeAsStringSync(m1.generateSynth()); + i = i + 1; + } +} diff --git a/lib/src/one_hot.dart b/lib/src/one_hot.dart index ed89bdc5..be88376f 100644 --- a/lib/src/one_hot.dart +++ b/lib/src/one_hot.dart @@ -5,7 +5,7 @@ // Implementation of one hot codec for Logic // // 2023 February 24 -// Author: Desmond Kirkpatrick +// Author: Desmond Kirkpatrick import 'dart:math'; import 'package:rohd/rohd.dart'; diff --git a/lib/src/parallel_prefix_operations.dart b/lib/src/parallel_prefix_operations.dart new file mode 100644 index 00000000..ea1e3b4f --- /dev/null +++ b/lib/src/parallel_prefix_operations.dart @@ -0,0 +1,250 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// parallel-prefix_operations.dart +// Implementation of operators using various parallel-prefix trees. +// +// 2023 Sep 29 +// Author: Desmond Kirkpatrick +// Borrowed from https://github.com/stevenmburns/rohd_sklansky.git + +import 'dart:math'; + +import 'package:collection/collection.dart'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/rohd_hcl.dart'; + +/// This computes the power of 2 less than x +int largestPow2LessThan(int x) => pow(2, log2Ceil(x) - 1).toInt(); + +/// ParallePrefix is the core parallel prefix tree structure +class ParallelPrefix extends Module { + final List _oseq = []; + + /// Output sequence value + List get val => _oseq; + + /// ParallePrefix recursion + ParallelPrefix(List inps, String name) : super(name: name) { + if (inps.isEmpty) { + throw Exception("Don't use {name} with an empty sequence"); + } + } +} + +/// Ripple shaped pp tree +class Ripple extends ParallelPrefix { + /// Ripple constructor + Ripple(List inps, Logic Function(Logic, Logic) op) + : super(inps, 'ripple') { + final iseq = []; + + inps.forEachIndexed((i, el) { + iseq.add(addInput('i$i', el, width: el.width)); + _oseq.add(addOutput('o$i', width: el.width)); + }); + + for (var i = 0; i < iseq.length; ++i) { + if (i == 0) { + _oseq[i] <= iseq[i]; + } else { + _oseq[i] <= op(_oseq[i - 1], iseq[i]); + } + } + } +} + +/// Sklansky shaped pp tree +class Sklansky extends ParallelPrefix { + /// Sklansky constructor + Sklansky(List inps, Logic Function(Logic, Logic) op) + : super(inps, 'sklansky') { + final iseq = []; + + inps.forEachIndexed((i, el) { + iseq.add(addInput('i$i', el, width: el.width)); + _oseq.add(addOutput('o$i', width: el.width)); + }); + + if (iseq.length == 1) { + _oseq[0] <= iseq[0]; + } else { + final n = iseq.length; + final m = largestPow2LessThan(n); + final u = Sklansky(iseq.getRange(0, m).toList(), op).val; + final v = Sklansky(iseq.getRange(m, n).toList(), op).val; + u.forEachIndexed((i, el) { + _oseq[i] <= el; + }); + v.forEachIndexed((i, el) { + _oseq[m + i] <= op(u[m - 1], el); + }); + } + } +} + +/// KoggeStone shaped pp tree +class KoggeStone extends ParallelPrefix { + /// KoggeStone constructor + KoggeStone(List inps, Logic Function(Logic, Logic) op) + : super(inps, 'kogge_stone') { + final iseq = []; + + inps.forEachIndexed((i, el) { + iseq.add(addInput('i$i', el, width: el.width)); + _oseq.add(addOutput('o$i', width: el.width)); + }); + + var skip = 1; + + while (skip < inps.length) { + for (var i = inps.length - 1; i >= skip; --i) { + iseq[i] = op(iseq[i - skip], iseq[i]); + } + skip *= 2; + } + + iseq.forEachIndexed((i, el) { + _oseq[i] <= el; + }); + } +} + +/// BrentKung shaped pp tree +class BrentKung extends ParallelPrefix { + /// BrentKung constructor + BrentKung(List inps, Logic Function(Logic, Logic) op) + : super(inps, 'brent_kung') { + final iseq = []; + + inps.forEachIndexed((i, el) { + iseq.add(addInput('i$i', el, width: el.width)); + _oseq.add(addOutput('o$i', width: el.width)); + }); + + // Reduce phase + var skip = 2; + while (skip <= inps.length) { + for (var i = skip - 1; i < inps.length; i += skip) { + iseq[i] = op(iseq[i - skip ~/ 2], iseq[i]); + } + skip *= 2; + } + + // Prefix Phase + skip = largestPow2LessThan(inps.length); + while (skip > 2) { + for (var i = 3 * (skip ~/ 2) - 1; i < inps.length; i += skip) { + iseq[i] = op(iseq[i - skip ~/ 2], iseq[i]); + } + skip ~/= 2; + } + + // Final row + for (var i = 2; i < inps.length; i += 2) { + iseq[i] = op(iseq[i - 1], iseq[i]); + } + + iseq.forEachIndexed((i, el) { + _oseq[i] <= el; + }); + } +} + +/// Or scan based on pp tree +class PPOrScan extends Module { + /// Output sequence value + Logic get out => output('out'); + + /// OrScan constructor + PPOrScan( + Logic inp, + ParallelPrefix Function(List, Logic Function(Logic, Logic)) + ppGen) { + inp = addInput('inp', inp, width: inp.width); + final u = + ppGen(List.generate(inp.width, (i) => inp[i]), (a, b) => a | b); + addOutput('out', width: inp.width) <= u.val.rswizzle(); + } +} + +/// Priority Encoder based on pp tree +class PriorityEncoder extends Module { + /// Output sequence value + Logic get out => output('out'); + + /// PriorityEncoder constructor + PriorityEncoder( + Logic inp, + ParallelPrefix Function(List, Logic Function(Logic, Logic)) + ppGen) { + inp = addInput('inp', inp, width: inp.width); + final u = PPOrScan(inp, ppGen); + addOutput('out', width: inp.width) <= (u.out & ~(u.out << Const(1))); + } +} + +/// Adder based on pp tree +class PPAdder extends Module { + /// Output sequence value + Logic get out => output('out'); + + /// Adder constructor + PPAdder( + Logic a, + Logic b, + ParallelPrefix Function(List, Logic Function(Logic, Logic)) + ppGen) { + a = addInput('a', a, width: a.width); + b = addInput('b', b, width: b.width); + final u = ppGen( + // generate, propagate or generate + List.generate( + a.width, (i) => [a[i] & b[i], a[i] | b[i]].swizzle()), + (lhs, rhs) => [rhs[1] | rhs[0] & lhs[1], rhs[0] & lhs[0]].swizzle()); + addOutput('out', width: a.width) <= + List.generate(a.width, + (i) => (i == 0) ? a[i] ^ b[i] : a[i] ^ b[i] ^ u.val[i - 1][1]) + .rswizzle(); + } +} + +/// Incrementer based on pp tree +class PPIncr extends Module { + /// Output sequence value + Logic get out => output('out'); + + /// Increment constructor + PPIncr( + Logic inp, + ParallelPrefix Function(List, Logic Function(Logic, Logic)) + ppGen) { + inp = addInput('inp', inp, width: inp.width); + final u = ppGen(List.generate(inp.width, (i) => inp[i]), + (lhs, rhs) => rhs & lhs); + addOutput('out', width: inp.width) <= + (List.generate( + inp.width, (i) => ((i == 0) ? ~inp[i] : inp[i] ^ u.val[i - 1])) + .rswizzle()); + } +} + +/// Decrementer based on pp tree +class PPDecr extends Module { + /// Output sequence value + Logic get out => output('out'); + + /// Decrement constructor + PPDecr( + Logic inp, + ParallelPrefix Function(List, Logic Function(Logic, Logic)) + ppGen) { + inp = addInput('inp', inp, width: inp.width); + final u = ppGen(List.generate(inp.width, (i) => ~inp[i]), + (lhs, rhs) => rhs & lhs); + addOutput('out', width: inp.width) <= + (List.generate( + inp.width, (i) => ((i == 0) ? ~inp[i] : inp[i] ^ u.val[i - 1])) + .rswizzle()); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index d643b049..8496ccb9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,6 +10,7 @@ environment: sdk: '>=2.18.0 <3.0.0' dependencies: + collection: ^1.18.0 meta: ^1.9.1 rohd: ^0.5.0 rohd_vf: ^0.5.0 diff --git a/test/one_hot_test.dart b/test/one_hot_test.dart index 3a14edf4..4ce1e4c6 100644 --- a/test/one_hot_test.dart +++ b/test/one_hot_test.dart @@ -5,7 +5,7 @@ // Test of one_hot codec. // // 2023 February 24 -// Author: Desmond Kirkpatrick +// Author: Desmond Kirkpatrick import 'dart:math'; diff --git a/test/parallel_prefix_operations_test.dart b/test/parallel_prefix_operations_test.dart new file mode 100644 index 00000000..d49eba1e --- /dev/null +++ b/test/parallel_prefix_operations_test.dart @@ -0,0 +1,236 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: BSD-3-Clause +// +// parallel-prefix_operations.dart +// Implementation of operations using various parallel-prefix trees. +// +// 2023 Sep 29 +// Author: Desmond Kirkpatrick + +import 'dart:math'; +import 'package:rohd/rohd.dart'; +import 'package:rohd_hcl/src/parallel_prefix_operations.dart'; +import 'package:test/test.dart'; + +void testOrScan(int n, PPOrScan Function(Logic a) fn) { + test('or_scan_$n', () async { + final inp = Logic(name: 'inp', width: n); + final mod = fn(inp); + await mod.build(); + + int computeOrScan(int j) { + var result = 0; + var found = false; + for (var i = 0; i < n; ++i) { + if (found || ((1 << i) & j) != 0) { + result |= 1 << i; + found = true; + } + } + return result; + } + + // put/expect testing + + for (var j = 0; j < (1 << n); ++j) { + final golden = computeOrScan(j); + inp.put(j); + final result = mod.out.value.toInt(); + //print("$j ${result} ${golden}"); + expect(result, equals(golden)); + } + }); +} + +void testPriorityEncoder(int n, PriorityEncoder Function(Logic a) fn) { + test('priority_encoder_$n', () async { + final inp = Logic(name: 'inp', width: n); + final mod = fn(inp); + await mod.build(); + + int computePriorityEncoding(int j) { + for (var i = 0; i < n; ++i) { + if (((1 << i) & j) != 0) { + return 1 << i; + } + } + return 0; + } + + // put/expect testing + + for (var j = 0; j < (1 << n); ++j) { + final golden = computePriorityEncoding(j); + inp.put(j); + final result = mod.out.value.toInt(); + // print("priority_encoder: $j ${result} ${golden}"); + expect(result, equals(golden)); + } + }); +} + +void testAdder(int n, PPAdder Function(Logic a, Logic b) fn) { + test('adder_$n', () async { + final a = Logic(name: 'a', width: n); + final b = Logic(name: 'b', width: n); + + final mod = fn(a, b); + await mod.build(); + + int computeAdder(int aa, int bb) => (aa + bb) & ((1 << n) - 1); + + // put/expect testing + + for (var aa = 0; aa < (1 << n); ++aa) { + for (var bb = 0; bb < (1 << n); ++bb) { + final golden = computeAdder(aa, bb); + a.put(aa); + b.put(bb); + final result = mod.out.value.toInt(); + //print("adder: $aa $bb $result $golden"); + expect(result, equals(golden)); + } + } + }); +} + +BigInt genRandomBigInt(int inBits) { + var nBits = inBits; + var result = BigInt.from(0); + while (nBits > 0) { + final shaveOff = min(16, nBits); + result = + (result << shaveOff) + BigInt.from(Random().nextInt(1 << shaveOff)); + nBits -= shaveOff; + } + return result; +} + +void testAdderRandom( + int n, int nSamples, PPAdder Function(Logic a, Logic b) fn) { + test('adder_$n', () async { + final a = Logic(name: 'a', width: n); + final b = Logic(name: 'b', width: n); + + final mod = fn(a, b); + await mod.build(); + + BigInt computeAdder(BigInt aa, BigInt bb) => + (aa + bb) & ((BigInt.from(1) << n) - BigInt.from(1)); + // put/expect testing + + for (var i = 0; i < nSamples; ++i) { + final aa = genRandomBigInt(n); + final bb = genRandomBigInt(n); + final golden = computeAdder(aa, bb); + a.put(aa); + b.put(bb); + final result = mod.out.value.toBigInt(); + expect(result, equals(golden)); + } + }); +} + +void testIncr(int n, PPIncr Function(Logic a) fn) { + test('incr_$n', () async { + final inp = Logic(name: 'inp', width: n); + final mod = fn(inp); + await mod.build(); + + int computeIncr(int aa) => (aa + 1) & ((1 << n) - 1); + + // put/expect testing + + for (var aa = 0; aa < (1 << n); ++aa) { + final golden = computeIncr(aa); + inp.put(aa); + final result = mod.out.value.toInt(); + //print("incr: $aa $result $golden"); + expect(result, equals(golden)); + } + }); +} + +void testDecr(int n, PPDecr Function(Logic a) fn) { + test('decr_$n', () async { + final inp = Logic(name: 'inp', width: n); + final mod = fn(inp); + await mod.build(); + + int computeDecr(int aa) => (aa - 1) % (1 << n); + + // put/expect testing + + for (var aa = 0; aa < (1 << n); ++aa) { + final golden = computeDecr(aa); + inp.put(aa); + final result = mod.out.value.toInt(); + //print("decr: $aa $result $golden"); + expect(result, equals(golden)); + } + }); +} + +void main() { + tearDown(() async { + await Simulator.reset(); + }); + + group('largest_pow2_less_than', () { + test('largest_pow2_less_than', () async { + expect(largestPow2LessThan(5), equals(4)); + expect(largestPow2LessThan(4), equals(2)); + expect(largestPow2LessThan(3), equals(2)); + }); + }); + + final generators = [Ripple.new, Sklansky.new, KoggeStone.new, BrentKung.new]; + + group('or_scan', () { + for (final n in [7, 8, 9]) { + for (final ppGen in generators) { + testOrScan(n, (inp) => PPOrScan(inp, ppGen)); + } + } + }); + + group('priority_encoder', () { + for (final n in [7, 8, 9]) { + for (final ppGen in generators) { + testPriorityEncoder(n, (inp) => PriorityEncoder(inp, ppGen)); + } + } + }); + + group('adder', () { + for (final n in [3, 4, 5]) { + for (final ppGen in generators) { + testAdder(n, (a, b) => PPAdder(a, b, ppGen)); + } + } + }); + + group('adderRandom', () { + for (final n in [127, 128, 129]) { + for (final ppGen in generators) { + testAdderRandom(n, 10, (a, b) => PPAdder(a, b, ppGen)); + } + } + }); + + group('incr', () { + for (final n in [7, 8, 9]) { + for (final ppGen in generators) { + testIncr(n, (inp) => PPIncr(inp, ppGen)); + } + } + }); + + group('decr', () { + for (final n in [7, 8, 9]) { + for (final ppGen in generators) { + testDecr(n, (inp) => PPDecr(inp, ppGen)); + } + } + }); +} From 0c2686836ccb34378b0e05e3431366f9e1650e3e Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Mon, 2 Oct 2023 22:33:22 -0700 Subject: [PATCH 42/53] doc lint fixes --- CONTRIBUTING.md | 4 ++-- doc/components/parallel_prefix_operations.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index af8e36c4..07d15ac7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -160,9 +160,9 @@ We recommend following these same guidelines for any of your own packages you ma 1. Create a generator in gen - 1. Add generator to gen/generate.dart + 1. Add generator to gen/generate.dart - 1. Run dart gen/generate.dart to make sure generation works. + 1. Run dart gen/generate.dart to make sure generation works. 1. Add documentation to doc/name.dart diff --git a/doc/components/parallel_prefix_operations.md b/doc/components/parallel_prefix_operations.md index 0198e7bd..e159e4b8 100644 --- a/doc/components/parallel_prefix_operations.md +++ b/doc/components/parallel_prefix_operations.md @@ -6,10 +6,10 @@ different parallel prefix computation trees. For example, we have unary operations like a word 'or' [`OrScan`](https://intel.github.io/rohd-hcl/rohd_hcl/OrScan-class.html) class, and a priority encoder [`PriorityEncoder`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityEncoder-class.html) class. We have simple unary arithmetic operations like an increment [`PPIncr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPIncr-class.html) class, and a decrement [`PPDecr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPDecr-class.html) class. Finally, we have a binary adder [`PPAdder`](https://intel.github.io/rohd-hcl/rohd_hcl/PPadder-class.html) class. Each of these operations can be implemented with different ['ParallelPrefix'] types: + - ['Ripple'](https://intel.github.io/rohd-hcl/rohd_hcl/Ripple-class.html) - ['Sklansky](https://intel.github.io/rohd-hcl/rohd_hcl/Sklansky-class.html) - ['KoggeStone'](https://intel.github.io/rohd-hcl/rohd_hcl/KoggeStone-class.html) - ['BrentKung](https://intel.github.io/rohd-hcl/rohd_hcl/BrentKung-class.html) [PPAdder_BrentKung Schematic](https://intel.github.io/rohd-hcl/PPAdder_BrentKung.html) - From 6eb11ffd1bc53b06f517328d670482fcc82e9a3c Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Mon, 2 Oct 2023 22:37:45 -0700 Subject: [PATCH 43/53] doc lint fixes --- CONTRIBUTING.md | 4 ++-- doc/components/parallel_prefix_operations.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index af8e36c4..70cddb18 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -160,9 +160,9 @@ We recommend following these same guidelines for any of your own packages you ma 1. Create a generator in gen - 1. Add generator to gen/generate.dart + 1. Add generator to gen/generate.dart - 1. Run dart gen/generate.dart to make sure generation works. + 1. Run dart gen/generate.dart to make sure generation works. 1. Add documentation to doc/name.dart diff --git a/doc/components/parallel_prefix_operations.md b/doc/components/parallel_prefix_operations.md index 0198e7bd..e159e4b8 100644 --- a/doc/components/parallel_prefix_operations.md +++ b/doc/components/parallel_prefix_operations.md @@ -6,10 +6,10 @@ different parallel prefix computation trees. For example, we have unary operations like a word 'or' [`OrScan`](https://intel.github.io/rohd-hcl/rohd_hcl/OrScan-class.html) class, and a priority encoder [`PriorityEncoder`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityEncoder-class.html) class. We have simple unary arithmetic operations like an increment [`PPIncr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPIncr-class.html) class, and a decrement [`PPDecr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPDecr-class.html) class. Finally, we have a binary adder [`PPAdder`](https://intel.github.io/rohd-hcl/rohd_hcl/PPadder-class.html) class. Each of these operations can be implemented with different ['ParallelPrefix'] types: + - ['Ripple'](https://intel.github.io/rohd-hcl/rohd_hcl/Ripple-class.html) - ['Sklansky](https://intel.github.io/rohd-hcl/rohd_hcl/Sklansky-class.html) - ['KoggeStone'](https://intel.github.io/rohd-hcl/rohd_hcl/KoggeStone-class.html) - ['BrentKung](https://intel.github.io/rohd-hcl/rohd_hcl/BrentKung-class.html) [PPAdder_BrentKung Schematic](https://intel.github.io/rohd-hcl/PPAdder_BrentKung.html) - From 5a0b1b07586b0dec492360e3ee1e75b573321750 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Mon, 2 Oct 2023 22:46:40 -0700 Subject: [PATCH 44/53] remove links to deployment area for now --- doc/components/parallel_prefix_operations.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/components/parallel_prefix_operations.md b/doc/components/parallel_prefix_operations.md index e159e4b8..deeee91e 100644 --- a/doc/components/parallel_prefix_operations.md +++ b/doc/components/parallel_prefix_operations.md @@ -3,13 +3,13 @@ ROHD HCL implements a set of parallel prefix compute operations using different parallel prefix computation trees. -For example, we have unary operations like a word 'or' [`OrScan`](https://intel.github.io/rohd-hcl/rohd_hcl/OrScan-class.html) class, and a priority encoder [`PriorityEncoder`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityEncoder-class.html) class. We have simple unary arithmetic operations like an increment [`PPIncr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPIncr-class.html) class, and a decrement [`PPDecr`](https://intel.github.io/rohd-hcl/rohd_hcl/PPDecr-class.html) class. Finally, we have a binary adder [`PPAdder`](https://intel.github.io/rohd-hcl/rohd_hcl/PPadder-class.html) class. +For example, we have unary operations like a word 'or' [`OrScan`] class, and a priority encoder [`PriorityEncoder`] class. We have simple unary arithmetic operations like an increment [`PPIncr`] class, and a decrement [`PPDecr`] class. Finally, we have a binary adder [`PPAdder`] class. Each of these operations can be implemented with different ['ParallelPrefix'] types: -- ['Ripple'](https://intel.github.io/rohd-hcl/rohd_hcl/Ripple-class.html) -- ['Sklansky](https://intel.github.io/rohd-hcl/rohd_hcl/Sklansky-class.html) -- ['KoggeStone'](https://intel.github.io/rohd-hcl/rohd_hcl/KoggeStone-class.html) -- ['BrentKung](https://intel.github.io/rohd-hcl/rohd_hcl/BrentKung-class.html) +- ['Ripple'] +- ['Sklansky] +- ['KoggeStone'] +- ['BrentKung] -[PPAdder_BrentKung Schematic](https://intel.github.io/rohd-hcl/PPAdder_BrentKung.html) +[PPAdder_BrentKung Schematic] From 78e2c8f0427931e270ef9141f6968cc110ef1334 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Tue, 3 Oct 2023 03:50:49 -0700 Subject: [PATCH 45/53] fix bug in verilog generation for PPAdder flavors --- gen/parallel_prefix_operations_gen.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gen/parallel_prefix_operations_gen.dart b/gen/parallel_prefix_operations_gen.dart index 81d28c10..d1fbee9a 100644 --- a/gen/parallel_prefix_operations_gen.dart +++ b/gen/parallel_prefix_operations_gen.dart @@ -22,8 +22,9 @@ Future parallelPrefixGen() async { for (final ppGen in generators) { final m1 = PPAdder(a, b, ppGen); await m1.build(); - File('build/${m1.definitionName}_${names[i]}.v') - .writeAsStringSync(m1.generateSynth()); + File('build/${m1.definitionName}_${names[i]}.v').writeAsStringSync(m1 + .generateSynth() + .replaceAll('PPAdder', '${m1.definitionName}_${names[i]}')); i = i + 1; } } From 7e6fd8aa8bf3a522572bd2a97489af55b016ebe0 Mon Sep 17 00:00:00 2001 From: "Kirkpatrick, Desmond A" Date: Wed, 4 Oct 2023 18:22:42 -0700 Subject: [PATCH 46/53] updated documentation, clearer naming, using Random() --- doc/components/parallel_prefix_operations.md | 11 ++-- gen/parallel_prefix_operations_gen.dart | 9 +++- lib/src/parallel_prefix_operations.dart | 57 +++++++++++--------- test/parallel_prefix_operations_test.dart | 48 +++++++---------- 4 files changed, 63 insertions(+), 62 deletions(-) diff --git a/doc/components/parallel_prefix_operations.md b/doc/components/parallel_prefix_operations.md index deeee91e..e147c2dc 100644 --- a/doc/components/parallel_prefix_operations.md +++ b/doc/components/parallel_prefix_operations.md @@ -1,15 +1,16 @@ # Parallel Prefix Operations -ROHD HCL implements a set of parallel prefix compute operations using -different parallel prefix computation trees. +ROHD HCL implements a set of parallel prefix compute operations using different parallel prefix computation trees based on the ['ParallePrefix'] node class carrying carry/save or generate/propagate bits. -For example, we have unary operations like a word 'or' [`OrScan`] class, and a priority encoder [`PriorityEncoder`] class. We have simple unary arithmetic operations like an increment [`PPIncr`] class, and a decrement [`PPDecr`] class. Finally, we have a binary adder [`PPAdder`] class. +For example, we have unary operations like a word-level 'or' [`OrScan`] class, and a priority encoder [`PriorityEncoder`] class which computes the position of the first bit set to '1'. We have simple unary arithmetic operations like an increment [`PPIncr`] class, and a decrement [`PPDecr`] class. Finally, we have a binary adder [`PPAdder`] class. For background on basic parallel prefix adder structures, see . -Each of these operations can be implemented with different ['ParallelPrefix'] types: +Each of these operations can be implemented with different ['ParallelPrefix'] tree structures: - ['Ripple'] - ['Sklansky] - ['KoggeStone'] - ['BrentKung] -[PPAdder_BrentKung Schematic] +[ParallelPrefixAdder (BrentKung) Schematic] + +[ParallelPrefixPriorityEncoder (KoggeStone) Schematic] diff --git a/gen/parallel_prefix_operations_gen.dart b/gen/parallel_prefix_operations_gen.dart index d1fbee9a..654550c1 100644 --- a/gen/parallel_prefix_operations_gen.dart +++ b/gen/parallel_prefix_operations_gen.dart @@ -20,11 +20,16 @@ Future parallelPrefixGen() async { final names = ['Ripple', 'Sklansky', 'KoggeStone', 'BrentKung']; var i = 0; for (final ppGen in generators) { - final m1 = PPAdder(a, b, ppGen); + final m1 = ParallelPrefixAdder(a, b, ppGen); await m1.build(); File('build/${m1.definitionName}_${names[i]}.v').writeAsStringSync(m1 .generateSynth() - .replaceAll('PPAdder', '${m1.definitionName}_${names[i]}')); + .replaceAll(m1.definitionName, '${m1.definitionName}_${names[i]}')); + final m2 = ParallelPrefixPriorityEncoder(a, ppGen); + await m2.build(); + File('build/${m2.definitionName}_${names[i]}.v').writeAsStringSync(m2 + .generateSynth() + .replaceAll(m2.definitionName, '${m2.definitionName}_${names[i]}')); i = i + 1; } } diff --git a/lib/src/parallel_prefix_operations.dart b/lib/src/parallel_prefix_operations.dart index ea1e3b4f..ab37b3c5 100644 --- a/lib/src/parallel_prefix_operations.dart +++ b/lib/src/parallel_prefix_operations.dart @@ -17,7 +17,11 @@ import 'package:rohd_hcl/rohd_hcl.dart'; /// This computes the power of 2 less than x int largestPow2LessThan(int x) => pow(2, log2Ceil(x) - 1).toInt(); -/// ParallePrefix is the core parallel prefix tree structure +/// ParallePrefix is the core parallel prefix tree structure node +/// The output is a List of multi-bit Logic vectors (typicall 2-bit) that +/// represent things like carry-save or generate-propagate signaling in adder +/// networks. Each node in a parallel prefix tree transforms a row of inputs +/// to an equal length row of outputs of these multi-bit Logic values. class ParallelPrefix extends Module { final List _oseq = []; @@ -32,7 +36,7 @@ class ParallelPrefix extends Module { } } -/// Ripple shaped pp tree +/// Ripple shaped ParallelPrefix tree class Ripple extends ParallelPrefix { /// Ripple constructor Ripple(List inps, Logic Function(Logic, Logic) op) @@ -54,7 +58,7 @@ class Ripple extends ParallelPrefix { } } -/// Sklansky shaped pp tree +/// Sklansky shaped ParallelPrefix tree class Sklansky extends ParallelPrefix { /// Sklansky constructor Sklansky(List inps, Logic Function(Logic, Logic) op) @@ -83,7 +87,7 @@ class Sklansky extends ParallelPrefix { } } -/// KoggeStone shaped pp tree +/// KoggeStone shaped ParallelPrefix tree class KoggeStone extends ParallelPrefix { /// KoggeStone constructor KoggeStone(List inps, Logic Function(Logic, Logic) op) @@ -110,7 +114,7 @@ class KoggeStone extends ParallelPrefix { } } -/// BrentKung shaped pp tree +/// BrentKung shaped ParallelPrefix tree class BrentKung extends ParallelPrefix { /// BrentKung constructor BrentKung(List inps, Logic Function(Logic, Logic) op) @@ -151,13 +155,13 @@ class BrentKung extends ParallelPrefix { } } -/// Or scan based on pp tree -class PPOrScan extends Module { - /// Output sequence value +/// Or scan based on ParallelPrefix tree +class ParallelPrefixOrScan extends Module { + /// Output [out] is the or of bits of the input Logic get out => output('out'); /// OrScan constructor - PPOrScan( + ParallelPrefixOrScan( Logic inp, ParallelPrefix Function(List, Logic Function(Logic, Logic)) ppGen) { @@ -168,29 +172,30 @@ class PPOrScan extends Module { } } -/// Priority Encoder based on pp tree -class PriorityEncoder extends Module { - /// Output sequence value +/// Priority Encoder based on ParallelPrefix tree +class ParallelPrefixPriorityEncoder extends Module { + /// Output [out] is the bit position of the first '1' in the Logic input + /// Search is counted from the LSB Logic get out => output('out'); /// PriorityEncoder constructor - PriorityEncoder( + ParallelPrefixPriorityEncoder( Logic inp, ParallelPrefix Function(List, Logic Function(Logic, Logic)) ppGen) { inp = addInput('inp', inp, width: inp.width); - final u = PPOrScan(inp, ppGen); + final u = ParallelPrefixOrScan(inp, ppGen); addOutput('out', width: inp.width) <= (u.out & ~(u.out << Const(1))); } } -/// Adder based on pp tree -class PPAdder extends Module { - /// Output sequence value +/// Adder based on ParallelPrefix tree +class ParallelPrefixAdder extends Module { + /// Output [out] the arithmetic sum of the two Logic inputs Logic get out => output('out'); /// Adder constructor - PPAdder( + ParallelPrefixAdder( Logic a, Logic b, ParallelPrefix Function(List, Logic Function(Logic, Logic)) @@ -209,13 +214,13 @@ class PPAdder extends Module { } } -/// Incrementer based on pp tree -class PPIncr extends Module { - /// Output sequence value +/// Incrementer based on ParallelPrefix tree +class ParallelPrefixIncr extends Module { + /// Output is '1' added to the Logic input Logic get out => output('out'); /// Increment constructor - PPIncr( + ParallelPrefixIncr( Logic inp, ParallelPrefix Function(List, Logic Function(Logic, Logic)) ppGen) { @@ -229,13 +234,13 @@ class PPIncr extends Module { } } -/// Decrementer based on pp tree -class PPDecr extends Module { - /// Output sequence value +/// Decrementer based on ParallelPrefix tree +class ParallelPrefixDecr extends Module { + /// Output is '1' subtracted from the Logic input Logic get out => output('out'); /// Decrement constructor - PPDecr( + ParallelPrefixDecr( Logic inp, ParallelPrefix Function(List, Logic Function(Logic, Logic)) ppGen) { diff --git a/test/parallel_prefix_operations_test.dart b/test/parallel_prefix_operations_test.dart index d49eba1e..09da5835 100644 --- a/test/parallel_prefix_operations_test.dart +++ b/test/parallel_prefix_operations_test.dart @@ -12,7 +12,7 @@ import 'package:rohd/rohd.dart'; import 'package:rohd_hcl/src/parallel_prefix_operations.dart'; import 'package:test/test.dart'; -void testOrScan(int n, PPOrScan Function(Logic a) fn) { +void testOrScan(int n, ParallelPrefixOrScan Function(Logic a) fn) { test('or_scan_$n', () async { final inp = Logic(name: 'inp', width: n); final mod = fn(inp); @@ -42,7 +42,8 @@ void testOrScan(int n, PPOrScan Function(Logic a) fn) { }); } -void testPriorityEncoder(int n, PriorityEncoder Function(Logic a) fn) { +void testPriorityEncoder( + int n, ParallelPrefixPriorityEncoder Function(Logic a) fn) { test('priority_encoder_$n', () async { final inp = Logic(name: 'inp', width: n); final mod = fn(inp); @@ -69,7 +70,7 @@ void testPriorityEncoder(int n, PriorityEncoder Function(Logic a) fn) { }); } -void testAdder(int n, PPAdder Function(Logic a, Logic b) fn) { +void testAdder(int n, ParallelPrefixAdder Function(Logic a, Logic b) fn) { test('adder_$n', () async { final a = Logic(name: 'a', width: n); final b = Logic(name: 'b', width: n); @@ -94,20 +95,8 @@ void testAdder(int n, PPAdder Function(Logic a, Logic b) fn) { }); } -BigInt genRandomBigInt(int inBits) { - var nBits = inBits; - var result = BigInt.from(0); - while (nBits > 0) { - final shaveOff = min(16, nBits); - result = - (result << shaveOff) + BigInt.from(Random().nextInt(1 << shaveOff)); - nBits -= shaveOff; - } - return result; -} - void testAdderRandom( - int n, int nSamples, PPAdder Function(Logic a, Logic b) fn) { + int n, int nSamples, ParallelPrefixAdder Function(Logic a, Logic b) fn) { test('adder_$n', () async { final a = Logic(name: 'a', width: n); final b = Logic(name: 'b', width: n); @@ -115,23 +104,23 @@ void testAdderRandom( final mod = fn(a, b); await mod.build(); - BigInt computeAdder(BigInt aa, BigInt bb) => - (aa + bb) & ((BigInt.from(1) << n) - BigInt.from(1)); + LogicValue computeAdder(LogicValue aa, LogicValue bb) => + (aa + bb) & LogicValue.ofBigInt(BigInt.from((1 << n) - 1), n); // put/expect testing for (var i = 0; i < nSamples; ++i) { - final aa = genRandomBigInt(n); - final bb = genRandomBigInt(n); + final aa = Random().nextLogicValue(width: n); + final bb = Random().nextLogicValue(width: n); final golden = computeAdder(aa, bb); a.put(aa); b.put(bb); - final result = mod.out.value.toBigInt(); + final result = mod.out.value; expect(result, equals(golden)); } }); } -void testIncr(int n, PPIncr Function(Logic a) fn) { +void testIncr(int n, ParallelPrefixIncr Function(Logic a) fn) { test('incr_$n', () async { final inp = Logic(name: 'inp', width: n); final mod = fn(inp); @@ -151,7 +140,7 @@ void testIncr(int n, PPIncr Function(Logic a) fn) { }); } -void testDecr(int n, PPDecr Function(Logic a) fn) { +void testDecr(int n, ParallelPrefixDecr Function(Logic a) fn) { test('decr_$n', () async { final inp = Logic(name: 'inp', width: n); final mod = fn(inp); @@ -189,7 +178,7 @@ void main() { group('or_scan', () { for (final n in [7, 8, 9]) { for (final ppGen in generators) { - testOrScan(n, (inp) => PPOrScan(inp, ppGen)); + testOrScan(n, (inp) => ParallelPrefixOrScan(inp, ppGen)); } } }); @@ -197,7 +186,8 @@ void main() { group('priority_encoder', () { for (final n in [7, 8, 9]) { for (final ppGen in generators) { - testPriorityEncoder(n, (inp) => PriorityEncoder(inp, ppGen)); + testPriorityEncoder( + n, (inp) => ParallelPrefixPriorityEncoder(inp, ppGen)); } } }); @@ -205,7 +195,7 @@ void main() { group('adder', () { for (final n in [3, 4, 5]) { for (final ppGen in generators) { - testAdder(n, (a, b) => PPAdder(a, b, ppGen)); + testAdder(n, (a, b) => ParallelPrefixAdder(a, b, ppGen)); } } }); @@ -213,7 +203,7 @@ void main() { group('adderRandom', () { for (final n in [127, 128, 129]) { for (final ppGen in generators) { - testAdderRandom(n, 10, (a, b) => PPAdder(a, b, ppGen)); + testAdderRandom(n, 10, (a, b) => ParallelPrefixAdder(a, b, ppGen)); } } }); @@ -221,7 +211,7 @@ void main() { group('incr', () { for (final n in [7, 8, 9]) { for (final ppGen in generators) { - testIncr(n, (inp) => PPIncr(inp, ppGen)); + testIncr(n, (inp) => ParallelPrefixIncr(inp, ppGen)); } } }); @@ -229,7 +219,7 @@ void main() { group('decr', () { for (final n in [7, 8, 9]) { for (final ppGen in generators) { - testDecr(n, (inp) => PPDecr(inp, ppGen)); + testDecr(n, (inp) => ParallelPrefixDecr(inp, ppGen)); } } }); From 4bbe8a8eef0ea85151553e4834a73b44e5229244 Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Thu, 1 Feb 2024 17:24:03 -0800 Subject: [PATCH 47/53] doc fixes --- CONTRIBUTING.md | 18 ------------------ build/README.md | 1 - doc/components/parallel_prefix_operations.md | 4 ++-- gen/fifo_gen.dart | 4 ---- gen/one_hot_gen.dart | 4 ---- lib/src/parallel_prefix_operations.dart | 8 ++++---- 6 files changed, 6 insertions(+), 33 deletions(-) delete mode 100644 build/README.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 70cddb18..3de02563 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -152,21 +152,3 @@ Here are some links to help guide you on style as recommended by Dart: We recommend following these same guidelines for any of your own packages you may create for the ecosystem, as well. -## Adding a New Component - -1. Create the dart code for constructing the module in lib/src - -1. Create testing code in test/ - -1. Create a generator in gen - - 1. Add generator to gen/generate.dart - - 1. Run dart gen/generate.dart to make sure generation works. - -1. Add documentation to doc/name.dart - -1. How to test documentation in a dart container - - 1. gh_actions/install_oss_cad_suite.sh - 1. install_d3_hwschematic.sh diff --git a/build/README.md b/build/README.md deleted file mode 100644 index 567fed47..00000000 --- a/build/README.md +++ /dev/null @@ -1 +0,0 @@ -This directory is for Verilog output and HTML conversion of components. diff --git a/doc/components/parallel_prefix_operations.md b/doc/components/parallel_prefix_operations.md index e147c2dc..8002ba0a 100644 --- a/doc/components/parallel_prefix_operations.md +++ b/doc/components/parallel_prefix_operations.md @@ -1,8 +1,8 @@ # Parallel Prefix Operations -ROHD HCL implements a set of parallel prefix compute operations using different parallel prefix computation trees based on the ['ParallePrefix'] node class carrying carry/save or generate/propagate bits. +ROHD HCL implements a set of parallel prefix compute operations using different parallel prefix computation trees based on the ['ParallelPrefix'] node class carrying carry/save or generate/propagate bits. -For example, we have unary operations like a word-level 'or' [`OrScan`] class, and a priority encoder [`PriorityEncoder`] class which computes the position of the first bit set to '1'. We have simple unary arithmetic operations like an increment [`PPIncr`] class, and a decrement [`PPDecr`] class. Finally, we have a binary adder [`PPAdder`] class. For background on basic parallel prefix adder structures, see . +For example, we have unary operations like a word-level 'or' [`ParallelPrefixOrScan`] class, and a priority encoder [`ParallelPrefixPriorityEncoder`] class which computes the position of the first bit set to '1'. We have simple unary arithmetic operations like an increment [`ParallelPrefixIncr`] class, and a decrement [`ParallelPrefixDecr`] class. Finally, we have a binary adder [`ParallelPrefixAdder`] class. For background on basic parallel prefix adder structures, see . Each of these operations can be implemented with different ['ParallelPrefix'] tree structures: diff --git a/gen/fifo_gen.dart b/gen/fifo_gen.dart index 04426531..12f6bd6e 100644 --- a/gen/fifo_gen.dart +++ b/gen/fifo_gen.dart @@ -6,10 +6,6 @@ // // 2023 May 09 // Author: Desmond Kirkpatrick -<<<<<<< HEAD -// -======= ->>>>>>> 861c4ad955af5ac6f2099eb3e1270fe83f40ac26 import 'dart:io'; import 'package:rohd/rohd.dart'; diff --git a/gen/one_hot_gen.dart b/gen/one_hot_gen.dart index 02536b4b..eb2a2f35 100644 --- a/gen/one_hot_gen.dart +++ b/gen/one_hot_gen.dart @@ -24,12 +24,8 @@ Future oneHotGen() async { await m2.build(); File('build/${m2.definitionName}.v').writeAsStringSync(m2.generateSynth()); -<<<<<<< HEAD - final m3 = TreeOneHotToBinary(onehotInput); -======= final onehotInput2 = Logic(width: pos + 1); final m3 = TreeOneHotToBinary(onehotInput2); ->>>>>>> 861c4ad955af5ac6f2099eb3e1270fe83f40ac26 await m3.build(); File('build/${m3.definitionName}.v').writeAsStringSync(m3.generateSynth()); } diff --git a/lib/src/parallel_prefix_operations.dart b/lib/src/parallel_prefix_operations.dart index ab37b3c5..4660fbb1 100644 --- a/lib/src/parallel_prefix_operations.dart +++ b/lib/src/parallel_prefix_operations.dart @@ -1,7 +1,7 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: BSD-3-Clause // -// parallel-prefix_operations.dart +// parallel_prefix_operations.dart // Implementation of operators using various parallel-prefix trees. // // 2023 Sep 29 @@ -17,8 +17,8 @@ import 'package:rohd_hcl/rohd_hcl.dart'; /// This computes the power of 2 less than x int largestPow2LessThan(int x) => pow(2, log2Ceil(x) - 1).toInt(); -/// ParallePrefix is the core parallel prefix tree structure node -/// The output is a List of multi-bit Logic vectors (typicall 2-bit) that +/// [ParallelPrefix] is the core parallel prefix tree structure node +/// The output is a List of multi-bit Logic vectors (typically 2-bit) that /// represent things like carry-save or generate-propagate signaling in adder /// networks. Each node in a parallel prefix tree transforms a row of inputs /// to an equal length row of outputs of these multi-bit Logic values. @@ -26,7 +26,7 @@ class ParallelPrefix extends Module { final List _oseq = []; /// Output sequence value - List get val => _oseq; + List get val => UnmodifiableListView(_oseq); /// ParallePrefix recursion ParallelPrefix(List inps, String name) : super(name: name) { From 659037eb53a8915f63202f251d766f6b53045d57 Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Thu, 1 Feb 2024 17:43:23 -0800 Subject: [PATCH 48/53] merge conflict fixes --- gen/generate.dart | 2 ++ lib/src/one_hot.dart | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gen/generate.dart b/gen/generate.dart index 066dfc4d..91b3ee58 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -13,6 +13,7 @@ import 'arbiter_gen.dart'; import 'fifo_gen.dart'; import 'one_hot_gen.dart'; +import 'parallel_prefix_operations_gen.dart'; import 'rf_gen.dart'; import 'rotate_gen.dart'; @@ -22,4 +23,5 @@ void main() async { await oneHotGen(); await rfGen(); await rotateGen(); + await parallelPrefixGen(); } diff --git a/lib/src/one_hot.dart b/lib/src/one_hot.dart index ed89bdc5..be88376f 100644 --- a/lib/src/one_hot.dart +++ b/lib/src/one_hot.dart @@ -5,7 +5,7 @@ // Implementation of one hot codec for Logic // // 2023 February 24 -// Author: Desmond Kirkpatrick +// Author: Desmond Kirkpatrick import 'dart:math'; import 'package:rohd/rohd.dart'; From b198e3c9e472e7bb9f2b3c8498f578d9118f063a Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Thu, 1 Feb 2024 17:53:18 -0800 Subject: [PATCH 49/53] touch file --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9e0e53dd..c0a7859b 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,5 @@ Some examples of component categories include: - Models ---------------- - Copyright (C) 2023 Intel Corporation SPDX-License-Identifier: BSD-3-Clause From 8065052ef0653c39d03a5ecdae03bfba016fdf0c Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Mon, 5 Feb 2024 10:33:35 -0800 Subject: [PATCH 50/53] merge fixes --- conflicts.txt | 34 --------------------------------- doc/onehot.md | 15 --------------- tool/converters/verilog_json.sh | 4 ---- tool/gh_codespaces/run_setup.sh | 5 ----- 4 files changed, 58 deletions(-) delete mode 100644 conflicts.txt delete mode 100644 doc/onehot.md diff --git a/conflicts.txt b/conflicts.txt deleted file mode 100644 index be65baa9..00000000 --- a/conflicts.txt +++ /dev/null @@ -1,34 +0,0 @@ -From https://github.com/intel/rohd-hcl - * branch main -> FETCH_HEAD -Auto-merging .github/workflows/general.yml -Auto-merging doc/components/arbiter.md -CONFLICT (content): Merge conflict in doc/components/arbiter.md -Auto-merging doc/components/memory.md -CONFLICT (content): Merge conflict in doc/components/memory.md -CONFLICT (modify/delete): doc/fifo.md deleted in 861c4ad955af5ac6f2099eb3e1270fe83f40ac26 and modified in HEAD. Version HEAD of doc/fifo.md left in tree. -Auto-merging gen/arbiter_gen.dart -CONFLICT (add/add): Merge conflict in gen/arbiter_gen.dart -Auto-merging gen/fifo_gen.dart -CONFLICT (add/add): Merge conflict in gen/fifo_gen.dart -Auto-merging gen/generate.dart -CONFLICT (add/add): Merge conflict in gen/generate.dart -Auto-merging gen/one_hot_gen.dart -CONFLICT (add/add): Merge conflict in gen/one_hot_gen.dart -Auto-merging gen/rf_gen.dart -CONFLICT (add/add): Merge conflict in gen/rf_gen.dart -Auto-merging gen/rotate_gen.dart -CONFLICT (add/add): Merge conflict in gen/rotate_gen.dart -Auto-merging test/one_hot_test.dart -Auto-merging tool/converters/verilog_html.sh -CONFLICT (add/add): Merge conflict in tool/converters/verilog_html.sh -Auto-merging tool/converters/verilog_json.sh -CONFLICT (add/add): Merge conflict in tool/converters/verilog_json.sh -Auto-merging tool/gh_actions/install_d3_hwschematic.sh -CONFLICT (add/add): Merge conflict in tool/gh_actions/install_d3_hwschematic.sh -Auto-merging tool/gh_actions/install_opencadsuite.sh -CONFLICT (add/add): Merge conflict in tool/gh_actions/install_opencadsuite.sh -Auto-merging tool/gh_codespaces/run_setup.sh -CONFLICT (content): Merge conflict in tool/gh_codespaces/run_setup.sh -Auto-merging tool/synthesize.sh -CONFLICT (add/add): Merge conflict in tool/synthesize.sh -Automatic merge failed; fix conflicts and then commit the result. diff --git a/doc/onehot.md b/doc/onehot.md deleted file mode 100644 index 7e9b6c0a..00000000 --- a/doc/onehot.md +++ /dev/null @@ -1,15 +0,0 @@ -# One Hot Codecs - -ROHD HCL implements a set of one hot encoder and decoders. - -For example, we have an encoder [`BinaryToOneHot`](https://intel.github.io/rohd-hcl/rohd_hcl/BinaryToOneHot-class.html) class, and a couple of implementations of decoder classes like [`OneHotToBinary`](https://intel.github.io/rohd-hcl/rohd_hcl/OneHotToBinary-class.html) and a more performant [`TreeBinaryToOneHot`](https://intel.github.io/rohd-hcl/rohd_hcl/TreeOneHotToBinary-class.html). - -The encoders take a Logic bitvector, with the constraint that only a single bit is set to '1' and outputs the bit position in binary. - -The decoders take a Logic input representing the bit position to be set to '1', and returns a Logic bitvector with that bit position set to '1', and all others set to '0' - -[BinaryToOneHot Schematic](https://intel.github.io/rohd-hcl/BinaryToOneHot.html) - -[OneHotToBinary Schematic](https://intel.github.io/rohd-hcl/OneHotToBinary.html) - -[TreeOneHotToBinary Schematic](https://intel.github.io/rohd-hcl/TreeOneHotToBinary.html) diff --git a/tool/converters/verilog_json.sh b/tool/converters/verilog_json.sh index fe5b780d..f1ff0e75 100755 --- a/tool/converters/verilog_json.sh +++ b/tool/converters/verilog_json.sh @@ -8,10 +8,6 @@ # # 2023 May 09 # Author: Desmond Kirkpatrick -<<<<<<< HEAD -# -======= ->>>>>>> 861c4ad955af5ac6f2099eb3e1270fe83f40ac26 # Executes synthesis given a module name # Assumes .v extension diff --git a/tool/gh_codespaces/run_setup.sh b/tool/gh_codespaces/run_setup.sh index 20beb4ee..252a5aed 100755 --- a/tool/gh_codespaces/run_setup.sh +++ b/tool/gh_codespaces/run_setup.sh @@ -17,13 +17,8 @@ tool/gh_codespaces/install_dart.sh # Install Pub dependencies. tool/gh_actions/install_dependencies.sh -<<<<<<< HEAD -# Install Synthesis tool (yosys). -tool/gh_actions/install_synthesis.sh -======= # Install CAD Suite (includes yosys) tool/gh_actions/install_opencadsuite.sh # Install D3 Schematic viewer tool/gh_actions/install_d3_hwschematic.sh ->>>>>>> 861c4ad955af5ac6f2099eb3e1270fe83f40ac26 From ddce8ed44f1c7e95cb1b3379ed0f8d9ac868f36c Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Mon, 5 Feb 2024 10:54:15 -0800 Subject: [PATCH 51/53] fix conflicts --- .gitignore | 12 +++++++++--- gen/generate.dart | 21 +++++++++------------ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 106c7238..04504631 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# NOTE: Be sure to update .pubignore as well! + # Files and directories created by pub .dart_tool/ .packages @@ -7,13 +9,17 @@ pubspec.lock build/ # Directory created by dartdoc -doc/api/ +doc/api # Other stuff tmp* *.vcd -.vscode/ -*~ +.vscode/* +confapp/.vscode/* +*tracker.json +*tracker.log # Exceptions !.vscode/extensions.json +!confapp/.vscode/extensions.json +!confapp/.vscode/launch.json \ No newline at end of file diff --git a/gen/generate.dart b/gen/generate.dart index 91b3ee58..8adda02b 100644 --- a/gen/generate.dart +++ b/gen/generate.dart @@ -10,18 +10,15 @@ // 2023 May 09 // Author: Desmond Kirkpatrick -import 'arbiter_gen.dart'; -import 'fifo_gen.dart'; -import 'one_hot_gen.dart'; -import 'parallel_prefix_operations_gen.dart'; -import 'rf_gen.dart'; -import 'rotate_gen.dart'; +import 'dart:io'; + +import 'package:rohd_hcl/src/component_config/components/component_registry.dart'; void main() async { - await arbiterGen(); - await fifoGen(); - await oneHotGen(); - await rfGen(); - await rotateGen(); - await parallelPrefixGen(); + Directory('build').createSync(recursive: true); + for (final configurator in componentRegistry) { + final sv = await configurator.generateSV(); + final name = configurator.createModule().definitionName; + File('build/$name.v').writeAsStringSync(sv); + } } From c71c351a095eb732ef7f6f5744e47adc62210dff Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Mon, 5 Feb 2024 10:57:34 -0800 Subject: [PATCH 52/53] removed old one_hot.dart --- lib/src/one_hot.dart | 95 -------------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 lib/src/one_hot.dart diff --git a/lib/src/one_hot.dart b/lib/src/one_hot.dart deleted file mode 100644 index be88376f..00000000 --- a/lib/src/one_hot.dart +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: BSD-3-Clause -// -// one_hot.dart -// Implementation of one hot codec for Logic -// -// 2023 February 24 -// Author: Desmond Kirkpatrick - -import 'dart:math'; -import 'package:rohd/rohd.dart'; -import 'package:rohd_hcl/src/utils.dart'; - -/// Encodes a binary number into one-hot -class BinaryToOneHot extends Module { - /// The [encoded] one-hot result. - Logic get encoded => output('encoded'); - - /// Constructs a [Module] which encodes a 2's complement number [binary] - /// into a one-hot, or thermometer code - BinaryToOneHot(Logic binary) { - binary = addInput('binary', binary, width: binary.width); - addOutput('encoded', width: pow(2, binary.width).toInt()); - encoded <= Const(1, width: encoded.width) << binary; - } -} - -/// Decodes a one-hot number into binary using a for-loop -class OneHotToBinary extends Module { - /// The [binary] decoded result. - Logic get binary => output('binary'); - - /// Constructs a [Module] which decodes a one-hot or thermometer-encoded - /// number [onehot] into a 2s complement number [binary] by encoding - /// the position of the '1' - OneHotToBinary(Logic onehot) { - onehot = addInput('onehot', onehot, width: onehot.width); - addOutput('binary', width: log2Ceil(onehot.width + 1)); - Combinational([ - Case(onehot, conditionalType: ConditionalType.unique, [ - for (var i = 0; i < onehot.width; i++) - CaseItem( - Const(BigInt.from(1) << i, width: onehot.width), - [binary < Const(i, width: binary.width)], - ) - ], defaultItem: [ - binary < Const(binary.width, width: binary.width) - ]) - ]); - } -} - -/// Internal class for binary-tree recursion for decoding one-hot -class _NodeOneHotToBinary extends Module { - /// The [binary] decoded result. - Logic get binary => output('binary'); - - /// Build a shorter-input module for recursion - /// (borrowed from Chisel OHToUInt) - _NodeOneHotToBinary(Logic onehot) { - final wid = onehot.width; - onehot = addInput('onehot', onehot, width: wid); - - if (wid <= 2) { - addOutput('binary'); - //Log2 of 2-bit quantity - if (wid == 2) { - binary <= onehot[1]; - } else { - binary <= Const(0, width: 1); - } - } else { - final mid = 1 << (log2Ceil(wid) - 1); - addOutput('binary', width: log2Ceil(mid + 1)); - final hi = onehot.getRange(mid).zeroExtend(mid); - final lo = onehot.getRange(0, mid).zeroExtend(mid); - final recurse = lo | hi; - final response = _NodeOneHotToBinary(recurse).binary; - binary <= [hi.or(), response].swizzle(); - } - } -} - -/// Module for binary-tree recursion for decoding one-hot -class TreeOneHotToBinary extends Module { - /// The [binary] decoded result. - Logic get binary => output('binary'); - - /// Top level module for computing binary to one-hot using recursion - TreeOneHotToBinary(Logic one) { - final ret = _NodeOneHotToBinary(one).binary; - addOutput('binary', width: ret.width); - binary <= ret; - } -} From 7f7332227ea13420c50204c04ac45a6332d82871 Mon Sep 17 00:00:00 2001 From: "Desmond A. Kirkpatrick" Date: Mon, 5 Feb 2024 11:10:19 -0800 Subject: [PATCH 53/53] reverted to main CONTRIBUTING.md --- CONTRIBUTING.md | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07d15ac7..ccb0d9f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -134,6 +134,21 @@ Here is an example of a recommended file header template: // Author: Max Korbel ``` +#### Adding a New Component + +To add a new component to the library, you can follow the steps below, referencing other components as examples. + +1. Create the dart code for constructing the module in `lib/src`. +1. Create unit tests in `test/`. +1. Create a `Configurator` for the component (enabling things like schematic generation, web-app generation, etc.). + 1. Create a new config in `lib/src/component_config/commponents`. + 1. Update the component registry in `lib/src/component_config/components/component_registry.dart`. +1. Add documentation to `doc/components/name.md`. + +If you would like to generate and view schematics locally, you'll need to have access to some tools. You can either use the dev container (via Codespaces or VS Code) or install the software from `tool/gh_actions/install_opencadsuite.sh` and `tool/gh_actions/install_d3_hwschematic.sh`. Then you can just run `tool/gh_actions/create_htmls.sh`, which will generate component schematic HTML documents in the `build/` directory. + +The `confapp/` directory contains the source code for the Flutter configuration app, if you would like to run that locally. + ### Creating a New Package Not every new contribution has to go directly into the ROHD or ROHD-HCL frameworks! If you have an idea for a reusable piece of hardware, tooling, verification collateral, or anything else that helps the ROHD ecosystem but is somewhat standalone, you can make your own package that depends on ROHD. Building an ecosystem of reusable components is important to the success of ROHD. Reach out if you want some help or guidance deciding if or how you should create a new package. @@ -151,22 +166,3 @@ Here are some links to help guide you on style as recommended by Dart: * Design: We recommend following these same guidelines for any of your own packages you may create for the ecosystem, as well. - -## Adding a New Component - -1. Create the dart code for constructing the module in lib/src - -1. Create testing code in test/ - -1. Create a generator in gen - - 1. Add generator to gen/generate.dart - - 1. Run dart gen/generate.dart to make sure generation works. - -1. Add documentation to doc/name.dart - -1. How to test documentation in a dart container - - 1. gh_actions/install_oss_cad_suite.sh - 1. install_d3_hwschematic.sh